1週間でちゃんと完成する「初めてのゲームづくり」でオススメの進め方(無料のUnity活用編)
みなさん、こんにちは!
ユニティ・テクノロジーズ・ジャパンの田村幸一です。季節はすっかり夏ですね。お子さんがいるご家庭では「夏休みの自由研究」が話題にのぼることもあるでしょう。
このnoteを読んでみようと開いてくれたということは、自由研究でも、その他に何かしらきっかけがあって、お子さんやご自身が「自分もゲームを作ってみたい」と思いついたからでしょうか。プログラミングを覚えるきっかけにも、ゲームはうってつけですね。
今回のnoteでは、初めてのゲームづくりを想定して、1週間でちゃんと完成して遊ぶためのステップをまとめました。「何かに熱中してみたい!」という方にもおすすめです。
1日目:1週間の計画を把握しよう(オリエンテーション)
まずは今回の計画を紹介します。これからチャレンジすることを把握しましょう。
1週間の予定はこんな感じで、作るゲームは「玉転がし」です。
これはUnityの公式チュートリアルの中で一番簡単に作れるものです。玉を転がして黄色いアイテムを集めて、すべて取りきればゴール、障害物に当たるとやり直し……というゲームです。
「こういうのじゃなくて、自分が考えるかっこいいゲームを作りたいんだ!」と思う人もいるかもしれません。
しかし、ゲームを開発したことのないあなたが、規模が大きなものや複雑なものをいきなり作ることはできないでしょう。
でも、悲観することはありません。今回の「玉転がし」のようにシンプルなゲームでも自分で作れば楽しくプレイできますし、さらにはアイディアひとつでより面白いゲームに仕上げることもできます。
今日、ぼくからあなたに伝えたいことは、以下の3つです。
1.見た目が不格好でも、多少のバグがあったとしても、最初のゲーム作りでは気にしなくていいのです。チュートリアルをそのまま真似るので問題ありません。まずはゲームをひとつ完成させて、友達や家族にプレイしてもらえるようにしましょう。
2.最初のゲーム作りでは規模は小さく、そしてシンプルに保ちましょう。あなたのスキル以上のゲームは作れません。まずは自分が作れるゲームを目指しましょう。スキルの組み合わせを徐々に増やすことで、より大きく複雑なゲームも作れるようになります。
3.「課題が難しかった」「仕事や勉強が忙しかった」「他の面白いゲームについハマった」などで、ゲーム開発を投げ出してしまう人は少なくありません。まずは、自分が作るゲームが完成するまでは、その開発だけに集中しましょう。今回のチャレンジは1日30分~1時間くらいで終わるので、無理なく取り組めると思います。
今日はこれで終わりですが、もし時間に余裕があるなら『まんがでわかるゲーム開発ソフトUnity』という漫画をぜひ一読してみてください。ゲーム開発について楽しく理解が進むと思いますよ。
2日目:Unityをインストールしよう
ゲームをつくるにはさまざまな方法がありますが、おすすめしたいのはゲーム開発用ソフト(ゲームエンジン)を用いることです。ここでは、2005年に誕生して、アマチュアからプロまで世界中の人に活用されている「Unity(ユニティ)」を使ってみましょう。
個人利用なら無料でダウンロードして使えますし、未来のゲーム作りでも役に立ちますから、覚えておいて損はありませんよ!
Unityのインストールは、これから使うPCのOSが、Windowsなのか、Macなのかによって異なります。詳しくは、下記のページにまとめているので、選んでみてください。
また、インストールガイドでは「Unity ID」を作ることを勧めていますが、この後のゲーム作りにも必要なので、ID登録をお願いします。その際には有効なメールアドレスが必要になります。メールが見られれば、どのようなものでも構いません。
無事にUnityはインストールできたでしょうか?
ここまででも慣れない作業が続いて、疲れたかもしれませんね。まずは、おつかれさまでした!
2日目は、明日から付き合うことになる「チュートリアル」のページにログインするところまででゴールにしましょう。下記のページに飛んだら……“Sign in with your Unity ID”を押して、先ほど作ったUnity IDのメールアドレスとパスワードを入力してください。
ぶじにログインできたら、今日はおしまいです。明日からはいよいよ、ゲーム作りです!
3日目:Unityの基本操作を学ぼう
【今日の目標】
プロジェクトを作成する
エディターのレイアウトを統一する
インターフェースの使い方
Scene ビューの移動方法
Bolt のインストール
今日から本格的にチュートリアルの開始です。
まずは上記の5項目を完了させましょう。これら項目のほとんどは、Unityの基本操作を学ぶ内容になっています。
■プロジェクトを作成する
ここでは「プロジェクト」と「シーン」という2つの用語が登場します。
ゲーム全体の構成を「プロジェクト」、ゲームの各部を構成する独立した各場面や各ステージを「シーン」と呼びます。
これを理解した上で、新規プロジェクトを作成し、シーンの保存の仕方を学びましょう。
■エディターのレイアウトを統一する
これから先Unityエディターを操作するにあたり、エディターのレイアウトをチュートリアルと合わせておくと分かりやすくなるので、レイアウトを変更する方法を理解しておきましょう。
■インターフェースの使い方
Unityを起動すると、メイン画面が表れます。主に5つの要素から構成されており、実際にプログラムコードを書き込む(=スクリプト制作)以外の操作は、ほとんどこの5つの要素のいずれかで行えます。
1. シーン(Scene)ビュー
シーンビューには制作中のゲーム世界(シーン)が表示され、自由な位置・角度から眺めることができます。
2. ゲーム(Game)ビュー
ゲームビューはゲーム画面です。 ゲームプレイヤーは基本的にこの画面を見ながらゲームをプレイします。 また、ゲームの操作性(ユーザーインターフェイス)などの操作はこの画面で行います。
3. インスペクター(Inspector)ビュー
シーンの中で選択肢中のオブジェクト(※シーン内に配置されるすべての要素)が持つ属性を表示・編集するためのビューです。 属性には座標やメッシュといった外見上のものから、衝突判定や物理制御に関するパラメーターなどもあり、その他ユーザー定義のものもここに表示されます。 Unity5.5 以降では、インスペクタービューのタブにサービス(Services)ビューが表示されることがあります。
4. ヒエラルキー(Hierarchy)ビュー
シーン内に存在するオブジェクトの一覧が表示されます。 編集中のシーン内でオブジェクトをコピー/ペーストしたり、適切な名前をつけて整理することもできます。
5. プロジェクト(Project)ブラウザー
制作中のプロジェクト(ゲーム全体)に含まれるシーン、スクリプト、グラフィックやサウンドなどのデータ、その他のリソースがファイル単位で表示されます。ここに出来合いのスクリプトセット、アートアセット、シェーダーなどを「パッケージ」単位でインポートすることもできます。
■Sceneビューの移動方法
まずは基本操作として、Sceneビューに立方体を表示して、それをぐりぐりと動かしてみましょう。ヒエラルキービューで「Cube」を作成した後に、シーンビューを選択して、以下の操作を試してみましょう。
マウスホイール:Sceneビューの拡大・縮小
右クリックを押しながらドラッグ:視点を回転
真ん中クリックを押しながらドラッグ:Sceneビューの平行移動
オブジェクトをダブルクリック:指定のオブジェクトにフォーカス
■Bolt のインストール
ゲーム作りには「プログラミング」が欠かせません。基本はすべて「プログラミング言語」を使い、文字を記述して、コンピューターに指示を与えます。しかし、初心者であれば、ただ文字だけの羅列を前にするのは、とっつきにくくて難しいものです。
そこで、「ビジュアルスクリプティング」というやり方で、今回はプログラミングをできるようにしてみます。この方法は、あらかじめプログラミングが書き込まれたパーツ同士を結ぶなどして、コードを書いてプログラミングしなくても、同じようなことができるものです。
そのためには、Unityの「追加機能置き場」であるAsset Store(アセットストア)から、ビジュアルスクリプティングが可能になるツールをインストールします。今回は、おすすめしたい「Bolt」というツールを用います。使用手順に沿って、インストールしてみましょう。これで、Unityの画面をどのように見るか、玉転がしのために必要なツールのインストールはどうするか、など、今後のゲーム作りでも最初に整える部分が学べました。今日はここまで。お疲れ様でした!
4日目:ゲームステージを作ってみよう
【今日の目標】
・地面の作成
・床の色を塗る
・壁の作成
・オブジェクトの整理
今日からはいよいよゲームの中身を作っていきます。まずは昨日までにやったことを忘れないように、軽くチュートリアルを眺めておさらいをしておくといいでしょう。
今回の一区切りは「地面の作成」から「オブジェクトの整理」まで。玉が転がる地面、床、壁といった、いわゆる「フィールド」が固まっていきますよ。
■地面の作成
ボールを転がす地面を作り、設定を行います。 オブジェクトの位置を設定する方法もここで学びます。
オブジェクトについて、あらためて書くと、Unityではシーン内に配置される全ての要素を「GameObject(ゲームオブジェクト)」と呼びます。
ゲームオブジェクトには、目に見える 3D メッシュ、ライト(照明)、物理オブジェクト、 あるいは目に見えないサウンド、ゲーム内の動作(トリガー)など様々な形がありますが、共通しているのは自分で挙動を管理でき、スクリプトを割り当てて制御できることです。
「ゲーム」を抜いて、単にオブジェクトと呼ぶことも多いです。
さて、地面の作成は、ヒエラルキービューの Createを押し、さらに"3D Object" → "Plane" を選択します。(また「オブジェクト」が出てきましたね。Unityは各所に英語が使われていることもあるので、わからないときは同時に意味も調べてみると、勉強にもなってよいですよ!)
さらにつくった地面の大きさも調整してみましょう。詳しくは、チュートリアルの続きで!
■床の色を塗る
つくった床に色を塗ってみましょう!
Unity でモデルに色を塗る方法は2つ用意されています。一つは「テクスチャの設定」です。モデルの表面に、色や柄が描かれたものを貼り付けるイメージですね。
もう一つは「モデル全体の色の設定」です。 そのモデルそのものの色をそっくり塗り尽くしてしまうイメージです。
これらの「色」や「反射」といった材質は、Material(材質)ファイルで管理しています。このチュートリアルでは、Materialファイルの作り方を学べます。
■壁の作成
ボールが転がって地面から落ちてしまわないように、ステージの四方に壁を作ります。 オブジェクトのサイズを変更したり、回転させたりする方法もここで学びます。
ここまで使ってきたCube、Material、サイズの調整といった機能をつかいます!
■オブジェクトの整理
ちょっといろいろな要素が増えてきたので、シーン内がごちゃついてきたはずです。
このままだと、どこに何があるのかがわかりにくくなって、後々で面倒になります。工作をするときに机が散らかっていたら、カッターやテープをその都度探したりして、時間もかかって気持ちも下がってしまいますよね。
そこで、「空のオブジェクト」を使用して、オブジェクトを整理してみます。この整理整頓が済んだら、今日はおしまいです。お疲れ様でした!
5日目:プレイヤーを作ってみよう
【今日の目標】
・プレイヤーの追加
・物理演算機能の追加
・カメラを動かす
本日はメインディッシュといえるほどのパートといえそうです。ついに、地面を転がるボール=自分の分身’(プレイヤー)を作成します。
今日の目標は「プレイヤーの追加」から「カメラを動かす」までいきましょう。ここまで出来ると、フィールドを玉が転がるようになります。たったこれだけと思えるような作業の裏側にも、いろいろな要素が絡んでいることがわかるでしょう。
■プレイヤーの追加
このチュートリアルからいよいよビジュアルスクリプティングの実践が始まります。ここではキーボードからの入力を受け取る方法を学びます。
シーンにプレイヤーを置き、それが動くための指示(物理挙動)を追加していきます。3日目に追加した「Bolt」が役立つときがきましたよ!
■物理演算機能の追加
前のチュートリアルで追加した Rigidbody コンポーネントに力を加えてボールを動かすための物理演算機能を追加していきます。
これもビジュアルスクリプティングで実現できます。
■カメラを動かす
今はゲーム画面が固定されているままなので、ゲームを遊ぶ人にとっては全体が把握しにくかったり、ボールと一緒に動いている感じが、まだうまく表現できていません。
そこで、プレイヤーをカメラが追いかけるような動きをビジュアルスクリプティングで実現しましょう。
ステージ内を自由に走り回るボールができたら、今日はおしまいです。お疲れ様でした!
6日目:ゲーム的要素を加えてみよう
【今日の目標】
・Item オブジェクトの追加
・残りのアイテム数を表示する
・クリア時の UI の作成
・ぶつかってはいけない壁の作成
初めてのゲーム作りも、もう一踏ん張り!
今日はフィールドを転がるだけだった玉に、しっかりとゲーム要素を載せていきましょう。プレイヤーが回収するアイテムを地面に置いていく行程や、ぶつかるとゲームオーバーになってしまう壁の作成へ進みます。
■Item オブジェクトの追加
この「玉転がし」ゲームでは、プレイヤーがすべてのアイテムを回収できたらクリアになります。そこで、そのアイテムを地面に置いていきます。
同じアイテムをいくつも置くときに便利な機能が「Prefab」です。また、アイテムとプレイヤーが触れたことを判定するためにタグ、トリガー、分岐などの機能を使います。さらに、回収されたアイテムを消す=オブジェクトを削除する方法もここで学びます。
■残りのアイテム数を表示する
地面に残っているアイテムの数を画面に表示する機能を追加します。
Unity で UI を扱うための Canvas や、UI コンポーネントについてもここで触れます。
■クリア時の UI の作成
「玉転がし」は、地面にあるアイテムをプレイヤーが全て回収したらクリアとなります。
クリアした時にそれがわかるような表示をしてみましょう。
■ぶつかってはいけない壁の作成
さらにゲームを面白くするための要素として、「ぶつかってはいけない壁」をゲームに追加してみましょう。 絶妙な位置に配置すれば、ゲームの難易度をアップできます!ただし、難しくしすぎたり、アイテムと重なってしまわないように注意。
「Item オブジェクトの追加」から「ぶつかってはいけない壁の作成」まで終われば、あなたがイチからこの世界に作り上げた、玉転がしゲームの完成です!
早速遊んでみて、挙動が狙ったようにできているか、確かめてみましょう。
……と、ここで終わりでもよいのですが、ここまではあくまでチュートリアル。せっかくの練習台とはいえ、明日はあなただけのオリジナル要素を少し足してみてはいかがでしょう。
7日目:あなたのアイディアを盛り込んでみよう
チュートリアルに沿って作ったゲームでも、最後の味付けを変えれば、あなただけのオリジナルゲームといえるのです。
ボールやアイテムの色を変えてみる、ゲームオーバーになる壁を増やしてみる、などなど。自分で遊んで見ながら「もっと楽しくなるにはどうすればいいだろう?」と、アイディアを出して、そして実装してみてください。
これで、あなただけのオリジナルな「玉転がし」ゲームが、まずはできました!おめでとうございます!完成させられたあなたは、もう立派なゲームクリエイターのひとりです。
これから:自分で調べて、自分で動かす
初めてのUnityでのゲーム作り、終えてみていかがでしょう?
もっと練習したい、もっといろんなものを作ってみたいと思う人は、次はこのチュートリアルをおすすめします。
なんと3Dの世界を遊ぶ、移動型のゲームです!
このゲームではプレイヤーキャラクターの「John Lemon」を操作することが鍵で、キャラクター操作やアニメーション制御を学べます。また、完成したステージをシーンに配置し、どのように照明で照らすか、敵キャラやカメラを制御するかも学べ、「Roll a Boll(玉転がし)」より、さらに「ゲームっぽい作品」を仕上げることができるようになるでしょう。
『John Lemon's Haunted Jaunt』までチュートリアルを進めると、実は「簡単な仕組みの組み合わせでゲームを作ることができる」ということに気づくはずです。
つまり、理解の難易度の高いことを学ぶより、簡単な仕組みをたくさん学び、それらの組み合わせをたくさん試すことが、初心者を卒業する第一歩なんです。
そこで、「John Lemon’s Haunted Jaunt」のほかにも、いくつかのUnity入門書をオススメします。数千円かかりますが、複数のチュートリアルを手元ですぐ確認できると、学びも早くなります。
「Unityの教科書 Unity 2021完全対応版」「Unity2021入門」は、最新版に近いUntiyエディタで3Dゲーム・2Dゲームを作るためのサンプルがいくつか用意されています。これらの入門書を一通り実践するだけでも、初心者にとっては十分な勉強になるはずです。
また、Unityは日本はもちろん、世界中に利用者が居ますから、彼らが各々でブログやSNSなどで情報を発信していたり、あるいはUnityを使う人でつながるコミュニティも各地に点在します。ゲームづくりでわからないことがあれば、まず検索で調べてみると、解決策に出会えることもあります。
ここでは開発者のコミュニティを、ひとつご紹介しましょう。
ユーザーでありUnityアンバサダーでもある「ないち」さんが運営するコミュニティで、コミュニケーションツールの「Slack」上で展開されています。招待制(=要申し込み)ですが、どなたでも無料で参加できます。
「自己紹介」チャンネルでは新規参加者がほぼ毎日投稿しているほか、質問・雑談が飛び交う賑やかなコミュニティです。初心者の方も安心して質問できると思います。
なお、このコミュニティに限らず、ユーザーコミュニティで質問する際に、考えて欲しいことがあります。
ユーザーコミュニティで質問に答えてくれる方は、義務としてその活動をやっているわけではなく、多くの人々は「Unityを使う仲間」として、「お互いに助け合い」という気持ちで質問したり答えたりしています。そうすることで、互いが勉強してUnityについて理解を深めることができるのです。
つまり、誰かがあなただけのために奉仕しているのではありません。仮に、不特定多数の方から寄せられる質問に答える人が1人しか存在しないコミュニティを想像してみてください。何の報酬も無しにその人はずっと質問に答えること、コミュニティに居続けることは可能でしょうか?
人間には限界があります。そして、その1人が回答しなくなると、そのコミュニティが崩壊することは想像に難くないでしょう。
コミュニティが大きくなることは、誰かの質問を解決できるチャンスが増える一方で、そこには多くの人の多大な時間と労力が費やされており、それらはあなただけのために存在しているのではない……ということを忘れないでください。
そして、あなたの質問に答えてくれる人は、その人があなたのためにその人の時間を費やしてくれている……という感謝の気持ちも忘れないようにしてください。
真摯に、謙虚に、それでいてわくわくに満ちたゲームづくりの世界を、これからも楽しんでいってくださいね。日々の積み重ねの先に、あなたの頭の中にあるゲームを、自由に実現させる日が必ず来ます。