スキルセット
「技術ブログをやってるんだし、せっかくならスキルセットを載せたら?」
と、ふと思い立ったので、自分を振り返りつつスキルセットをまとめました。
Unityを使ってゲーム開発をしているし、どうせやるならとスキルセットを確認できるゲームをWebGLでビルドしました。クリックするとロードが始まります。(多少時間がかかります)
WebGL2.0をサポートしているブラウザ(Chrome, FireFox, Opera)とそれ以外(Safariなど)では見え方が変わります。
また、スマートフォンではカクカクになるので、できればPCでご覧ください。
クレジット
上のゲーム内ではマルセさん作成の『にゃしぃフォント改二』を使わせていただきました。ありがとうございます。
このスキルセットの持ち主
「todoって誰やねん」とお思いのそこのあなた、よかったら私のプロフィールもご覧ください。
ざっくり言うと、Unityを使ってスマホアプリ開発やUnityのアセット開発をしているフリーランスのデベロッパーです。
「この人何ができるんだろう?」って部分が分かるようにこのスキルセットを作ってみました。
スキルのレベルについて
ゲーム内でもそうですが、スキルのレベルについては以下の目安で設定しています。
☆☆☆☆☆ 星0個 未経験のスキル
★☆☆☆☆ 星1個 チュートリアルやトレーニングを完了したレベル(知識はある)
★★☆☆☆ 星2個 サポートがあればできる(指針を示してもらった方がいいもの)
★★★☆☆ 星3個 自分でできる(指針が分かり、必要な情報も分かる)
★★★★☆ 星4個 人に教えられる(指針を示し、フィードバックを与えられる)
★★★★★ 星5個 その道のプロレベル
レベル4とレベル5の間がかなり離れているような気もしますが、大体の目安なのでこれでいきます。
スキルセット
ゲーム内ではレベルを表示するだけだったので、具体的に何をやったか、何ができるかを補足しつつスキルセットをまとめます。
IT全般
IT業界の会社で働いた後、フリーランスになりました。
ゴリゴリのプログラミング案件はそこまで多くなく、パッケージソフトウェアの導入やリプレースなどをやってました。ITのプロジェクトの進め方については、胃が痛い思いをたくさんしたので身にしみています。
開発に関しては会社でというよりは趣味でやっていたところが大きいです。Unityでの開発はそれ自体がゲームみたいで楽しいですね。
プログラミング言語
触って何かを作ったことがあるプログラミング言語は以下のものがあります。
Java
スキルレベル:★★★☆☆
Android向けにアプリを1本リリースしました。作ったのはゲームっぽく勉強時間を管理できるアプリです。
オブジェクト指向はJavaで学びました。
C#
スキルレベル:★★★★☆
これはUnityで使っています。スマホ向けアプリを2本リリースし、Unity用のEditor拡張アセットを2つ販売しています。
このブログでもチュートリアルを作成したので、初心者向けに教えることができます。
ほぼ毎日のようにこんにちはする言語なので、多分これが一番慣れていると思います。
Jython
スキルレベル:★★☆☆☆
会社にいたときに使いました。JVM上でPythonが使えるスクリプト言語です。超ざっくり言うとJavaのライブラリを使えるPython。超便利。
Javaアプリケーションのカスタマイズ部分をJythonで実装しました。
VBA
スキルレベル:★★★☆☆
これも会社にいたときに。自分の業務効率改善にも使いましたし、導入したパッケージとお客さんが業務で使うExcelシートをつなぐ部分を作ったりも。
C
スキルレベル:★★☆☆☆
大学時代、実験で使う自作レーザー電源の制御部分でマイコンを使っていて、その制御部分をC言語で実装しました。といってもググって見つけたサンプルをカスタマイズしただけなので、「できる!」と胸を張って言いにくい部分でもあります。
余談ですが、C言語に慣れるために「苦しんで覚えるC言語」という本を研究室に持ち込んでいたら後輩から「えっ……todoさんってそういう……(察し)」みたいに言われました。いや、たまたま図書館にあったのがこれだっただけだからね?
FORTRAN
スキルレベル:★★★☆☆
これも大学時代に使いました。惑星の軌道計算のシミュレーション、レーザーの周波数に関して強度分布のシミュレーションをするときにFORTRANを使っていたんです。科学分野の計算だとシンプルで扱いやすい印象の言語です。
会社で先輩に「何かプログラミング言語触ったことある?」と聞かれて「FORTRANを使ったことがあります」と言ったら「フォwwwーwwwトwwwラwwwwンwww」とめっちゃ草生やされた思い出。
Swift
スキルレベル:★★☆☆☆
Unityを使っている息抜きに使いました。3DダンジョンRPGの原型をSwiftで作ったので、多少は触れます。
ここで作った3DダンジョンRPGを発展させて、UnityのEditor拡張アセットである『Ariadne – 3D Dungeon Maker』を作りました。ええ、宣伝です。
PHP
スキルレベル:★★☆☆☆
ブログのテンプレート作成や、カスタマイズで使っています。今振り返ればテンプレート作成なんて無茶、よくやったなぁ……。
ブログ構築・運営
スキルレベル:★★★☆☆
フリーランスになった直後は色々と試行錯誤していたので、ブログ運営にも手を出していました。なんだかんだ5個ぐらい立ち上げたので流れはつかめたと思います。
その経験もあってか、この技術ブログを作ることができました。
Unityスキル
Unityを使ってゲームを何本か作成したので、企画、設計、実装、リソース準備、リリースまで一通り経験しました。
スキルのカテゴリについてはUnityのマニュアルを参考に分けています。
ゲームデザイン
スキルレベル:★★★★☆
ゲームデザインはゲームのコンセプトや雰囲気、ルールの設計部分のつもりで分けています。
初心者に向けて、どんなことを決める必要があるか、ユーザにどんな部分を楽しんで欲しいのか、などのコンセプト部分の決め方は教えられます。
設計
スキルレベル:★★★★☆
こちらは実装部分の設計を意図しています。どんな機能を使って振る舞いを表現するのか、その実装方法はどうするのか、などの部分ですね。
テスト
スキルレベル:★★★★☆
ゲームデザイン、設計で決めた振る舞いが意図した通りに表現されているかのテストは得意です。会社にいた頃からテストケースの作成は血反吐を吐くレベルでやってましたので(白目)
個人的にはテストが一番大事だと思います。ユーザの体験に直結する部分ですものね。
初心者向けに、設計とテストの対応、テストの合格基準をどう決めるかなども教えられます。
デバッグ
スキルレベル:★★★★☆
会社にいた頃からトラブルシューティングは得意でした(白目)
全体の流れを理解して、本来はこうなるべきだけど今はこうなってる、とか、エラーの出力元を追って原因を突き止める、というのは得意です。……書いていて思いましたが、基本事項でしたね。基本を押さえているということでひとつ。
グラフィック作成
デザイナーですとは口が裂けても言えませんが、PhotoshopやIllustratorは一通り扱えます。
Photoshop
スキルレベル:★★★☆☆
Unityで使う画像リソースの作成、ブログのアイキャッチ画像の作成など、ほぼ毎日のように使っています。
レイヤースタイルで飾りつけしていくのが好きです。
Illustrator
スキルレベル:★★★☆☆
こちらもUnityで使う画像リソースの作成で使っています。画面サイズに合わせて複数の画像が必要な場合はこちらを使っていることが多いです。ベクター画像べんり。
リリース
スキルレベル:★★★★☆
iOS/Androidアプリのリリース、WebGLでのリリースなら経験ありです。これらのプラットフォームであれば一通り初心者にも教えることができます。
PS4やXBOX、Steamあたりは残念ながらリリース未経験なので、これから勉強します。
動画作成
PV作成や、チュートリアル動画の作成ができます。このブログでも例えばカメラワークのチュートリアルで動画を作成しました。
Premiere Pro
スキルレベル:★★★☆☆
動画編集ソフトのAdobe Premiere Proも使えます。といってもメインはAfter Effectsを使っていて、こちらは長さの調整や音入れがメインです。
After Effects
スキルレベル:★★★☆☆
動画に文字を入れたり、エフェクトをつけたりする場合はAfter Effectsを使っています。
Unityでパーティクルを使うときにも考え方を応用できるので、これはやってて良かったと思います。
アセット管理
Unity内でアセットファイルを管理する際の方法についてです。
AssetBundle
スキルレベル:★★☆☆☆
できるけど使わないで済むならそれで済ませたい機能。
ネットワーク経由でAssetBundleをダウンロードして……みたいなことはリリースしたアプリの中では実装していないのでレベル2です。
Addressable Asset System
スキルレベル:★★★☆☆
まだ正式リリースされていないパッケージのスキルというのも変な感じですが、Preview版のパッケージを使ってアプリを1本リリースしました。
正式版が出たら速攻でキャッチアップします。
2D
スキルレベル:★★★★☆
2Dのアプリを1本リリースしています。スプライトの設定やアニメーションの設定、コライダーの実装など、一通りできます。
初心者向けに2Dゲームの作り方を教えることもできます。
グラフィクス
Unityでグラフィクスに関する技能です。
ライティング
スキルレベル:★★★☆☆
Realtime GIと Baked GIの使い分け、プラットフォームのパフォーマンスに応じたライティングの調整、Probeを使って動くオブジェクトへのライティングの反映など、一通りのことができます。
カメラ
スキルレベル:★★★★☆
Unity内でカメラを扱うときに、現実で使われるカメラワークをベースに扱うことができます。映画などのカメラワークにはそれぞれ表現したい意図があり、意図に合わせたカメラワークの選択ができます。
このブログでチュートリアルを作ったので、初心者の方にも教えることができます。
マテリアル
スキルレベル:★★★☆☆
オブジェクトにテクスチャを貼って、ノーマルマップでデコボコ感を出して、必要に応じて発光させて……と一通りのことはできます。
が、マテリアルとシェーダーについては知れば知るほど奥深いもので、なかなか自信を持って「できる!」と言いにくい部分でもあります。
シェーダー
スキルレベル:★★☆☆☆
マテリアルと同様に奥深さを感じてレベル2です。「コンピュートシェーダーについて説明してください」と言われたら詰まるレベル。GPU上で処理させます、なんてのはまだ実装したことがありません。
流石に自分でシェーダースクリプトを1から書くことはできず、既存のStandardShaderをベースにカスタマイズするくらいが関の山。というかShader Forgeのアセットを使ってシェーダーを作っちゃうことが多いです。
パーティクル
スキルレベル:★★★☆☆
After Effectsを使ってることもあり、ある程度触ることができます。
物理エンジン
スキルレベル:★★★★☆
3Dオブジェクトの物理的な運動や、衝突について一通り扱うことができます。
このブログでも物理エンジンを使った初心者向けチュートリアルを作成したので、教えることができます。
記事についてもRigidbodyやColliderについては解説記事を作成してあります。
スクリプト
UnityではC#を使って処理を実装しています。
ゲーム用スクリプト
スキルレベル:★★★★☆
ゲーム内の処理を一通り実装できます。メッセージシステムを使ってオブジェクト間でメッセージのやり取りをしたり、コルーチンでゲーム内の処理を制御したり、デバッグしやすいようにメッセージを出力したり……とこれも基本事項でした。基本的なことはできます。
Editor拡張
スキルレベル:★★★★☆
Editor拡張スクリプトを使ってアセットを2つ販売しています。3DダンジョンRPGを作れるEditor拡張は個人的にお気に入り。
Excelで作成したデータをUnityに取り込んで、ScriptableObjectを使ってデータを保持する、なんてことも得意です。
マルチプレイヤー
スキルレベル:☆☆☆☆☆
同時に多人数が遊べるようなゲームはまだ作ったことがありません。
オンラインでランキングを登録するゲームはスマホアプリ向けにリリースしました。これは下の方で別枠にしています。
ネットワーク
スキルレベル:★★☆☆☆
外部のサーバ等と通信するゲームについては、先述のランキング登録をするゲームを作りました。
マルチプレイヤーを実装するためのネットワーキングという意味ではまだ触れていないこともあるため、レベル2にしています。
オーディオ
オーディオに関する技術です。
管理
スキルレベル:★★★☆☆
Unity内でオーディオを管理するのはできます。オレオレサウンドマネージャを作って音声管理をしたりもしました。
CRIWAREなどのミドルウェアは扱ったことがありません。
作成
スキルレベル:★☆☆☆☆
オーディオファイルを作る方はあまり……。大学時代にバンドを組んでライブをやったり、コード理論などを勉強したりもしましたが、ゲーム音楽として使えるかと言うと……。あくまで趣味レベルなのでレベル1にしています。
アニメーション
スキルレベル:★★★☆☆
3Dオブジェクトのアニメーション、2Dのアニメーションの両方ができます。3Dに関してはBlenderなどのモデリングソフトの中でアニメーションを作成し、UnityではAnimationControllerで制御するのがメインですね。
UIのアニメーションをスクリプト内から定義することもできます。iTweenを使って実装したこともありますし、コルーチンで自作アニメーションを作ることもあります。
タイムライン
スキルレベル:★★★☆☆
カメラの動き、キャラクターの動きをタイムラインで制御し、ゲームのオープニングとして使いました。
カメラワークと組み合わせて考えることで、意図した演出を作ることができます。
UI
スキルレベル:★★★★☆
テキストや画像の表示、ボタンの配置と制御、パーツのレイアウトなど、一通りのことができます。アニメーションの部分でもちょっと触れましたが、UI自体をアニメーションさせることも好きです。
ナビゲーション
スキルレベル:★☆☆☆☆
今回スキルセットをまとめるにあたって「そういえば使ってなかったなー」と気付きました。確かUnityの使い始めの頃にナビゲーション機能に触れてそのままになっていたような……。
何かゲームを作ってレベル上げします。
Unity Ads
スキルレベル:★★★☆☆
リリースしたスマホアプリにUnity Adsを組み込みました。リワード広告を使って、広告を見たかどうかによって処理を分けることができます。
VR/AR
スキルレベル:☆☆☆☆☆
興味はあるけどまだ手を出せていないスキル。
まずはデバイスを準備しないとなぁ……。オススメがあれば教えてください。
アセットストアへの公開
アセットのリリース
スキルレベル:★★★★☆
Unityのアセットを3つ販売しています。なので、作成から販売までのプロセスは人に伝えることができます。
オンラインランキング
GameSparks
スキルレベル:★★★☆☆
GameSparksが提供するクラウドのバックエンドサービスを使ってオンラインランキングの機能を実装しました。
スキルセットについては以上です。結構細かく分野を分けたのでそれに応じて振り返りもできました。
資格など
Unityに関して活かせそうな資格もありました。
中学理科、高校理科(物理)の教員免許
まさかの教員免許。でも民間企業に就職したのよね。
教育という意味ではUnityのトレーニングに関して「教えるのが得意です」と言えるかも。
このブログでも初心者向けチュートリアルの記事を作成したりもしたので、教材開発が特に好きです。
色彩検定(1級)
まさかの色彩検定。多くの人にとって見やすいゲームとなるようなユニバーサルデザインを意識して画面の配色を調整できます。
あとは画面内の配色などから、表現したい雰囲気と色彩が合っているかなども確認できます。
カラーコーディネーター検定1級(商品色彩)
まさかのカラーコーディネーター。商品色彩はプロダクトデザインに関する分野です。
物理的な商品に比重が置かれていますが、木材や石材の種類についても触れているので、テクスチャを作成する際の参考になっています。
商品を置く店舗空間での照明についても触れており、Unityでライティングを調整する際にも役立っています。
私があなたに貢献できること
これらのスキルを使ってあなたに貢献できるのは、Unityのトレーニング、Unityを使った開発サポートです。
あなたが頭の中に思い描いているゲームを作るためのお手伝いをします。
このブログのサービス内容としてまとめてみたので、ぜひご覧くださいな。
さて、このページを見たあなたも、スキルセットをUnityのゲームで作ってみよう!
他の人がやってないから、きっと目立つこと間違いなし!