Unityエンジニアになるには?技術力の身に着け方と実績の作り方

Unityは無料で使えるゲーム制作エンジンです。アセットストアを活用することによってスクリプトを書かずともゲームが作れる手軽な一面を持っています。ゲーム開発に携われるUnityエンジニアになるために必要なものを、今回の記事では取り上げていきます。併せてUnityの需要にも注目し、実績の作り方も紹介していきます。
コンテンツ [表示]
- 1Unityによるゲーム開発と他分野での需要
- 1.1Unityは無料で試せるゲーム制作エンジン
- 1.2ゲーム開発の需要は伸びる
- 1.3ゲーム開発以外でも活躍するUnity
- 1.4ゲーム分野以外の公式パートナーを見てみよう
- 2Unityエンジニアに必要なもの
- 2.1Unityや開発環境に関する知識
- 2.2最低限C#はおさえる
- 2.3他のプログラム言語も触れておきたい
- 2.4なにより実績が必要
- 2.5学習への意欲
- 3Unityエンジニアの実績作りを考える
- 3.1成果物をポートフォリオに加えよう
- 3.2ゲーム開発であれば全てを作る必要はない
- 3.3学習中でもポートフォリオ作成に意識を
- 3.4実際の案件をのぞいてみよう
- 4ゲーム開発関連の実績作り
- 4.1個人開発であればデザイン系のスキルも欲しい
- 4.2チームによる開発はよい経験に
- 4.3モバイル向け作品の公開はコストが必要に
- 4.4働く形にこだわりすぎない
- 5まとめ
Unityによるゲーム開発と他分野での需要
物理演算を搭載したUnityは2Dや3Dを問わず、様々なゲームの開発に利用されています。3Dモデルをそのまま流用できる利便性の高さから、ゲーム開発以外の分野でも需要が高いです。
まずはUnityの特色である導入のしやすさを見ていきましょう。
Unityは無料で試せるゲーム制作エンジン
Unityは年間10万北米ドル以上の収益がなければ無料で利用できます。その際は個人向けのライセンスを取ることになります。
年間で調達した資金に関する規制もありますが、いまからUnityに触れるという方は気にしなくて良いでしょう。
チュートリアルなどの学習ルートも用意されているので、初心者の方でも気軽にゲーム制作を体験することができます。
また、Unityの強みの一つであるアセットストアをのぞくことによって「どのようなゲームのジャンルにどのようなアセットがあるか」チェックすることができます。
ダウンロードやインストールの段階で面倒くさいと感じ投げ出したい気持ちがあるなら、ゲーム制作につきものの試行錯誤に耐えられないと思いますのでゲーム開発はあきらめた方がいいでしょう。
公式サイトからUnityをダウンロードし、学習用の作品を手掛けるまでの道筋は様々なサイトで取り上げられ紹介されています。「初歩的な情報が無さすぎてつまずく」ということは無いはずです。
ゲーム開発の需要は伸びる
ゲーム開発以外でも力を発揮するとはいえUnityの本領はゲーム開発です。Unityエンジニアへの一歩を踏み出す前に、将来的なゲーム開発の需要について考えてみましょう。
Unityの強みの一つはマルチプラットフォームです。PS4やXbox Series X/S、Switchやモバイル向けのゲームを製作することができます。
コンシューマー向けとモバイル向けのゲーム制作過程が全く同じというわけではありませんが、どちらかの開発経験が無駄になるということはありません。
一部アセットを流用することはあるでしょうし、根幹を成すプログラムの言語がC#であることに変わりはないのです。
需要の面でNFTゲームの存在も忘れてはいけません。筆者が興味のあるNBA Top ShotやCryptoKittiesの内容を見てみると、ランダム性と投資を掛け合わせているような内容で「ゲームの腕に比例して勝てる」イメージはありません。
これからNFTゲームが増えていくにつれよりゲーム性が高く、暗号資産に興味がない人でも遊びたくなるような作品が求められていくでしょう。ゲーム開発の需要は増すばかりです。
NFTにつきましてはこちらにも関連記事がありますので、ご参考ください。
ゲーム開発以外でも活躍するUnity
先ほど触れた通り、Unityにはゲーム開発以外にも活躍の場があります。3Dモデルと相性が良く、読みこんだデータの中をゲーム感覚で動き回れる機能が建築分野のシミュレーションとマッチします。
CADやBIMといった建築関連のデータを専用のアプリでUnityに読みこみ、その中でシミュレーションを行います。データの中を一人称視点で歩き回ったり、内装やライティングを変更してみたり、必要な建築資材の計算を行います。
また、ARやVRとも親和性があるため、アセットストアで検索してみると膨大な数のAR用アセットがヒットします。
もちろん『AR』という文字列にヒットした無関係のアセットもあるでしょうが、4,000件に近いヒット数からはUnityとARの密接な関係がうかがえます。
あらかじめ作成した3Dモデルを読みこむという点では製造業とも縁があります。シミュレーションを行うため、自社で物理演算を搭載したアプリケーションを開発するメーカーもあるでしょうが、一から全て開発するのは専用の人員が必要となり大変です。
Unityが使えるのなら『ライセンス契約+Unityで読みこめる形でのデータ出力+場合によってはアセット購入』という形で済みます。
資金に余裕のある企業でも効率化の観点から自社で開発せずにUnityを使うケースもあるでしょう。
ゲーム分野以外の公式パートナーを見てみよう
公式ページで紹介されているUnityのパートナーを見ていきましょう。ここで取り上げるパートナーは主に製造業関連となっています。
・Configit……日本語の情報が見つからなかったため筆者個人の翻訳となりますが、製造会社向けの設計や設定を行っています。有名なクライアントにはジャガーやフィリップスなどがあります
・Interact……先ほど取り上げたAR/VRに関連しています。ほかにもAR/VR関連の企業は存在しますが、Unityと連携が取れることが分かっていればコストも抑えやすくそれが強みとなります
画像に載っている企業が全てというわけではなく、多くの企業がUnityを使っています。元々Unityは外国の企業なので、パートナー企業も外国のものが多いです。
Unityエンジニアに必要なもの
ゲーム開発に携われるUnityエンジニアに必要なものを考えていきましょう。ここではスクリプトが書け、独力で何らかのゲームが製作できるエンジニアを想定しています。
Unityや開発環境に関する知識
独力にせよチームで開発するにせよ、Unityによるゲーム開発環境を整えないことには話が始まりません。
UnityはWindowsのほかmacやLinuxでも利用できますが、汎用性や初心者における導入のしやすさを考えるとWindows版が良いと思われます。赤い枠で囲んであるところです。
物理演算を搭載している関係上、あまりにも3D描画能力の低いPCではUnityがうまく動かないこともあるので気をつけましょう。
Unity本体のバージョン管理を行うUnityHubの導入も含め、開発環境を整える意識をもっておきましょう。
最低限C#はおさえる
Unityで使われるのはオブジェクト指向言語であるC#です。確かにアセットを組み合わせることによって、スクリプトを作成することなくゲームを作ることも可能ですが、エンジニアを名乗るためにはC#の習得は欠かせません。
先ほど取り上げた開発環境の話にも近いですが、Unityではスクリプトを開く際にどのような形で開くかPreferencesによって設定できます。
C#を扱うのであればMicrosoftのVisual Studioを導入し、連携するようにしておくと良いでしょう。
評価の高いテキストエディタを使うのも良いですが、Visual Studioの補完機能によってかなり楽ができます。タイプミスや書き忘れによるエラーも防いでくれます。
Visual Studioの利用にはマイクロソフトアカウントが必要になりますが、本格的なゲーム開発を始める前に導入しておきたいところです。
他のプログラム言語も触れておきたい
プログラムを触り続けるのであれば、Unityで使うC#だけではなく他の言語にも手を出したいところです。エンジニアとしての仕事の幅が広がります。
上記の画像はオブジェクト指向言語についてざっくりまとめたものです。筆者は「C#で遊んだことのある」程度のスキルなので正確性に欠けるかも知れませんがC#を取り巻くイメージとしてはこんな感じかと思います。
本格的な開発の道に進むのであれば、JavaやC++。Webサービスに関わるのであればPHPやJava Script。
昨今のニーズや学習のしやすさをふまえて選ぶのならRubyやPython。Appleが好きで仕方ないのならSwiftといった感じでしょうか。Pythonは暗号資産やNFTに使われるブロックチェーンとも関係しています。
学習サイトの中にはゲーム感覚でプログラミングを試せるコンテンツを用意しているところもありますので、気になる言語で遊んでみてはいかがでしょうか。
なにより実績が必要
いまからUnityの学習を始めようという方には厳しい言葉となりますが、エンジニアになるためにはなにより実績が必要です。
ここでいう実績とは「○○に何年通った」「〇〇で何年働いた」というものではなく「どれだけ作品を作ったか(携わったか)」となります。
学校や仕事の年数もいくらかの目安となりますが、基本的にはポートフォリオに加えた成果物で判断されると思って下さい。
いくら有名な学校を卒業し企業で勤続年数があっても「手掛けた作品、携わった作品はありません」となっては、ゲーム開発者を求める企業側も判断が困ります。
面接の最中に「それでは20分あげますので作品を作って下さい」みたいな話にはなりません。コードを即興で書いたとしてもその場でコードが読めて良し悪しを判断できる担当者がいないと意味がありません。
Unityエンジニアの実績作りに関してはのちほど詳しく取り上げます。
学習への意欲
Unityエンジニアとしてプログラムに触れる以上、継続的な学習が望まれます。Unityを動かすC#を例にとっても、ラムダ式が途中で追加されるなど仕様は一定ではありません。
独学にせよ何らかの学習サービスを利用するにせよ、スキルアップのために学習を続ける姿勢は欲しいところです。
学習への意欲が低いと自分の可能性をせばめてしまいますし、効率的なやり方が生まれてもそれに気付かず無駄の多いやり方を続けてしまうケースも出てきます。
Unityエンジニアの実績作りを考える
先ほども触れた通り、エンジニアとしての実績は正社員としての勤続年数を意味するわけではありません。
作品を提出したり、携わった作品を紹介したりすれば、採用側は求めているスキルをもっているか判断することができます。
実績として紹介できる作品がなければ採用側は判断することすらできません。たとえあなたが未熟な作品と感じていても、提出することによって「ここまでならできそうだ」と採用側は判断できます。
とにもかくにも作品を提出しなければ、そのスタートラインにすら立てないのです。実際に実績(作品)作りをしていく際に意識したいことを取り上げていきます。
成果物をポートフォリオに加えよう
自身でスクリプトを書くUnityエンジニアを目指すのであれば、実際にゲームとして動作するものを用意しないといけません。
いくらオリジナリティあふれる作品を手掛けていても「エラーのために動かない」のでは意味がありません。場合によっては「なぜエラーまみれの動かない作品を提出したの?」と思われてしまいます。
スクリプト単体のエラー、Unityでのテストプレイ時に出るエラー、作品としてビルドしプレイした時に出るエラーと段階的に問題は浮上し、その全てを解決する必要があります。
エラーを取り除き、作品としてプレイできるゲームができたら自信をもってポートフォリオに加えましょう。作品の判断は採用側がしてくれます。
作品を提出すればたとえ自分の望む結果が生まれなくても、フィードバックがもらえることもあり、エンジニアとしての将来に生かすことができます。
ゲーム開発であれば全てを作る必要はない
あなたが独力でゲーム開発を目指す時、ゲームを構成する全ての要素を作る必要はありません。(サンプル画像は専門性の高いBGMをアセットストアで検索したものです)
専門性の高いグラフィック(特に3D)や音楽まで全てこなせる方もいるかも知れませんが、企業側が求めるのは「独力でゲームを開発できる人」ではなく「担当分野できっちり仕事をしてくれる人」です。
「今からUnityとC#とグラフィックと音楽制作の勉強を一から始めるぞ!」と高すぎるハードルを設定するタイプより「まずはスクリプトを少しずつ理解し書けるようにする」と足元を固めていくタイプの方が企業から好まれるでしょう。
全てを一からやろうとすると、途中で投げ出す可能性がはね上がってしまいます。専門性の高い分野はアセットを利用しても良いでしょう。
ただし利用したアセットに関する申告はポートフォリオに盛りこみましょう。いくら無料のアセットでも「このアセットは自分で作りました」みたいな顔をするのは著作権的な問題が出てきます。
無料アセットに関しては「どこまで無料で使って良いか」ガイドラインが定められているケースが多いですが、入手した無料アセットを自作アセットとして公開するのは間違いなくアウトです。
もしストアで入手したアセットを自作したかのように振る舞う人がいたら、著作権に対する意識の低さを企業側が問題視するでしょう。
学習中でもポートフォリオ作成に意識を
チュートリアルや学習用のコンテンツを利用している間に、いくつか作品ができると思います。ガイド通りに作れば誰でも作れるような代物なので、基本的にはポートフォリオに追加することはできません。
ただし、学習用のテンプレート的な素材でもオリジナルの味付けをし、独自のスクリプトを書き、新たなゲーム性を追加できればその発想は評価対象となるでしょう。
また、学習用の作品を作りながら「ここに新たな要素を追加すればゲーム性が高まるのでは?」「効果音を差し替えるだけでもコミカルになるのでは?」とオリジナリティを加える意識をもっていると、のちのポートフォリオ作成がはかどるかも知れません。
https://assetstore.unity.com/?locale=ja-JP