4月からUnityを学び始めるあなたへ!Unity学習の“あるある失敗”を避ける方法を3人の先生が伝授!
こんにちは、Unity Japanのコミュニティ・アドボケイトの田村幸一です。私は普段、Unityを広く世の中に伝える、広報的な役回りをしています。
この春、新しい門出を迎えた方々、おめでとうございます。4月は、ゲーム専門学校や大学のサークル、企業研修などでUnityに初めて触れる人が多い時期です。私たちは、そんな「Unity1年生」の方たちの不安な気持ちをサポートして、制作を楽しんでもらいたいと思っています。
そこで、普段から専門学校などでUnityの指導している3人の先生に、Unityを学ぶ上で失敗しやすい点や陥りやすいミス、またそれらをどう乗り越えたらいいのかを伺いました。
今回の記事を踏まえて、多くの人たちがUnityを楽しみ、制作に没頭できたらと願っています!
ゲーム制作の楽しさに触れる。困ったらすぐに相談する。それがUnity上達の近道
──普段は、どのような人たちにUnityを教えていますか?
HAL東京のゲーム学部教員として、学生にUnityを教えています。入学者のほとんどがゲーム制作は未経験で、授業で初めてUnityに触れることも多いです。
──HAL東京では、どのようにゲーム制作を学んでいくのでしょうか。
1年生では、Unityを使ってゲームをつくる楽しさを教えつつ、プログラミング言語の「C#」を学びます。2年生では、Unityは一旦使わず、オブジェクト指向プログラミングと2D・3Dゲームのプログラミングを学びます。3年生では、さらに高度なプログラミングを学びつつ、コンテスト応募作品や就職作品をつくります。4年生では、VRゲームやAIプログラミングなどの技術研究を行ったり、集大成となる卒業制作に取組みます。
実際の企業の現場のように、デザイナーやサウンドなど、他学科と連携したチーム制作を多く経験することも特長です。
──Unity1年生の人たちに、よく見かける失敗を教えてください。
Unityは基本的にC#で制御しますので、C#のコーディングでつまずきやすいです。そのなかでも「そもそも、どのようにコーディングしたらいいかわからない」「バグの対処法がわからない」という悩みが多いですね。
また、特に苦戦するのが、Visual Studioのコーディングです。標準のUnityと比べ、Visual Studioを組み合わせることで、より生産性の高い開発環境を実現できます。しかし、難しいコードが多いので、解決に結び付けられない学生が多いです。
──そのような失敗を乗り越えるためには、どうしたらいいのでしょうか。
まずは、エラーコードを調べたり、ネットの記事を参照してみてください。そのうえで、先生やゲーム制作経験者へすぐに相談することをオススメします。たまに、「できないことを怒られるかも」と不安に感じ、なかなか相談に来られない学生がいます。でも、相談したほうが原因をいち早く特定でき、レベルアップにも繋がります。
学ぶ環境において、できないことを責める人はいません。先生やゲーム制作経験者をどんどん使い倒すくらいの勢いで相談してほしいですね。
──村瀬さんが学生に指導するなかで、心がけていることはありますか?
一つは、ゲーム制作の楽しみを味わってもらうことを大事にしています。1年生はプログラミング経験がないので、複雑なコードは書けません。まずは、アセットを組み合わせたり、オブジェクトを動かしたりして、楽しさを伝えるように心がけています。
もう一つは、学内発表会の場を大切にしています。HAL東京では年に一度、ゲーム学部だけでなく、他の学部の人たちも交えた進級制作展を行います。特に普段はゲームを制作していない学生から、「こんなのが作れるなんてすごい!」「このゲーム面白い!」と純粋な感想をもらうことができます。
一方で、自信たっぷりにゲームを制作したけれど、あまり良い反応がもらえず、「来年頑張ります」と気合いを入れ直す学生もいました。作品を体験してくれた人からの反応は、良くも悪くも、次の制作へのモチベーションになりますね。
──最後に、これからUnityを学んでいく人たちにエールをお願いします。
まずは、ゲーム制作の楽しさを体験してほしいなと思います。難しいプログラミングは一旦おいて、まずは小さな作品を完成させて、友人に遊んでもらう。その時の反応が、次の制作につながります。
私は高校生の時に、初めてゲームを制作しました。ただキーを押す「もぐらたたきゲーム」で簡単な制作でしたが、完成した時は嬉しかったです。でも、もっと嬉しかったのは友人に「すごいな!」と言って、遊んでもらえたことでした。
まずは制作してみて、友人に見せ、反応をもらい、次の原動力にしていく。そうやってUnityを学び続けてください。
レベルアップのポイントは「エラーの原因を知ること」
──普段はどのような人たちにUnityを教えていますか?
Unity1年生の方たちに関わるところでは、制作者のみなさんに「ひよこ本」の愛称で知られているUnity入門書の共著者です。初心者の読者から、本の感想にくわえて、「Unityの学習でつまずくところ」を聞く機会も多いですね。
また、普段はユニティ・テクノロジーズ・ジャパンのスタッフとして、Unityを導入する企業さま向けのトレーニング業務にも従事しています。Unityはゲーム制作で使われるツールだと思われる方もまだまだ多いと思います。しかし、最近はゲーム制作以外で使われることが多いですね。
たとえば、建築や自動車の企業では、Unityのリアルタイム3D技術が活用されています。建築分野ではBIM(※)の情報をUnityに取り込み、建築物のモデルを仮想空間上で忠実に再現することができ、建設のシュミレーションなどに役立てられます。自動車分野ではデザインの検証や機械学習を用いた走行シミュレーションといった用途で進んでいます。
それぞれの企業がUnityで「達成したいこと」を伺い、内容をカスタマイズした講座を開くんです。
※:BIM(Building Information Modeling):建築物を3D空間で構築し、建設に必要な情報を一元管理する方法のこと。コスト計算や目安納期の算出などが容易になり、建築プロセスの効率化を目的に普及が進んでいる。
──Unity1年生の人たちに、よく見かける失敗を教えてください。
エラーの特定ができずに、制作を諦めてしまうことですね。Unityから「エラー」として応答がきたときに、「なぜそれが起きているのか」がわからないわけです。
エラーの原因は、「プログラミングコードの間違い」か「Unityエディタの設定ミス」であることが多いです。
特にプログラミングコードは、ゲーム制作において全てのコードを書く必要はなくなってきましたが、自分の表現を突き詰めるうえでも、適宜書き換えるようなケースは必ず出てきます。Unity本体の勉強はもちろんのこと、使用されるプログラミング言語の「C#」の勉強もしっかり進めなくてはなりませんね。
──企業でUnityを使い始める人でよく見られる失敗はありますか?
企業でUnityを始める方は、もともとエンジニアとして働いていたり、3Dモデリングツールの「Maya」でモデリングの経験があったり、一定のプログラミング知識をもっていたりする人が多いです。それまでの知識や経験がUnityの学習の邪魔をしてしまっていることも多いです。ただし、一度「Unityの常識」を理解すると上達は早いですね。
──そのようなUnityに慣れていない人たちに、どのように指導しているのでしょうか。
口で説明するよりも、実際にUnityを動かして体感してもらうことを意識しています。Unityは色の変化やアニメーション、UIボタンの反映など、リアルタイムで確認できるツールです。画面でどのように変化したかを見てもらってから、原理を説明するようにしています。
──Unityを学んでいくなかで、荒川さんが考える「最も大切なこと」は何でしょうか。
創りたいものの手段として、Unityを学ぶことです。最初は、わからないことが多くて、挫折することもあると思います。でも、ありがたいことにいろんな人たちが、Unityに関する情報をネットで公開してくれています。
それらの情報をもとに、プログラムを書き換えたり、Unity上でオブジェクトを動かしたり、トライを重ねるごとに上達していくはずです。
ただ、ネットの記事を参照する時には、記事の公開日に気をつけてください。情報が古く、Unityのバージョンが異なると、そのまま使うことができませんから。
そして、先ほどもお話したように、Unityは様々な分野で使われています。もし、Unity以外の知識、たとえば機械学習やロボットの知識などにも興味があればUnity内でシミュレーションが可能です。そのため、興味あることはUnity以外のことも積極的に学びましょう。
結果的に、Unityでできる可能性が広がるでしょう。実は、私も最近は機械学習やロボットシミュレーションに関する勉強をしています。
──最後に、これからUnityを学んでいく人たちにエールをお願いします。
まずは、どれほど小さなゲーム作品でも、勇気をもって世の中に公開してみてください。そこから、さまざまな出会いがあったり、可能性が広がったりします。モチベーションの高い仲間と出会う、就職につながるなど、思ってもみなかったチャンスに巡り合えるかもしれません。
私も「ひよこ本」を初めて書いた時には、「私が入門書を書いてもいいのだろうか」「ちゃんと読者の役に立つのだろうか」と不安でした。でも、一歩踏み出してみると、Unityのバージョンアップがある度に出版させてもらえるほどに需要があったんです。
ゲーム作品を発表すれば、少なくとも実績になりますし、勉強会や交流会でも紹介でき、参加者からリアクションがもらえます。それらの意見から改善点が見つかり、スキルも上がります。まずは恐れずに、公開してみてください!
仕事として続けるなら「コンピューターの理解」も欠かせない
──普段は、どのような人たちにUnityを教えていますか?
日本工学院八王子専門学校で、2年制と4年制のゲームクリエイター科でUnityを教えています。
──日本工学院八王子専門学校では、どのようにゲーム制作を学んでいくのでしょうか。
1年生前期では、ゲーム開発基礎としてプログラミングを教え、後期ではUnityで簡単な3Dゲームなどを制作します。2年生では、Unityの高度な使い方を学んだり、逆にUnityを使わずに3Dゲームを制作する方法を学んだりしながら、制作したゲームをコンテストに応募したり、イベントで展示したりします。
3年生では、シェーダープログラミングやネットワークプログラミングを学びつつ、就職作品の制作に取り組みます。そして4年生では、学んだことを活かして卒業制作に尽力します。
──1年生の「あるあるな失敗」を教えてください。
CPUやメモリなどといった、コンピューターに関する理解ができていないまま学習を進めてしまうケースが多いですね。
簡単なインディーゲームやカジュアルゲームの制作でしたら、コンピューターに関する深い知識を扱うことは少ないでしょう。しかし、大作ゲームの制作に携わったり、ゲーム企業へ就職したい人は、絶対必要となる知識です。プロの現場ではそれらを考慮した制作が前提となってきます。
たいていの人たちにとって、コンピューターの勉強は苦しいもの。Unityの勉強はリアルタイムで動くので楽しいですが、コンピューターの勉強は実践とは直結せず、「お勉強感」が強いですから。でも、その知識をつけることは、将来役に立ちます。
──Unityを学び始めた人たちに、よく見かける失敗を教えてください。
ネットワーク対戦ゲームや、オープンワールドゲームをいきなり制作しようとしてしまうことですね。
というのも、今の若い世代は、初めて触れるゲーム機がPlayStationの新型やスマートフォンということもあります。初心者が取り組むにはぴったりの「もぐらたたき」や「玉転がし」といったシンプルなゲームを、そもそも知らないのです。
──そんな生徒たちに、どのように指導しているのでしょうか。
ゲームがどのように進化してきたかを知る、「ゲームの歴史」の授業があります。でも、若い世代にとっては昔話を聞いているようで、なかなか理解してもらえず(笑)、苦戦していますね。
まずは、シンプルなゲームで、「面白さの本質」をつかんでもらえるよう指導しています。現在のネットワーク対戦ゲームやオープンワールドゲームは、いかにプレイを継続してもらうかが考え込まれていて、とても複雑な仕様です。いきなりそれらを真似るのではなく、シンプルなゲームで「面白さ」をつかめれば、技術がなくとも機能の組み合わせで、市販品にも負けないゲームが制作できます。
──Unityを学ぶ上で「最も大切なこと」は何だと考えますか?
Unityはゲームクリエイターの道具にすぎません。
Unityの豊富な機能やアセットに頼り切ってしまうと、見た目だけが綺麗なゲームになってしまいます。いわゆる「アセットゲーム」という呼び方もありますよね。そうではなく、あくまでゲーム制作の基礎を学び、面白さをつかみながら、しっかりとプログラミングとコンピューターについても勉強を重ねることが大切です。
──最後に、これからUnityを学んでいく人たちにエールをお願いします。
ここ数年、ゲーム制作未経験者にとっては、とても良い時代になったと思います。私が学生の頃は、優秀な人が真剣に3年間勉強しても、初期のPlayStation程度のゲームが制作できるか、できないかでした。
でも、今はUnityがあるため、1〜2年勉強すればクオリティの高いゲームが作れます。関連するネット記事や書籍も多いため、やる気があれば成長し放題。ぜひ、基礎を学びつつ、制作を楽しんでください。