Unity 5でコインプッシャーゲームを作ろう(前編)
前回は第1回ということで、Unityの基礎知識と最新版Unity5の新機能、インストール方法を解説しました。今回からは、前編・中編・後編の3回に渡ってUnity5を使った実際のゲーム製作を解説していきます。
本連載で製作するのは「コインプッシャーゲーム」です。皆さんもゲームセンターのメダルコーナーでよく見かけると思いますが、あらかじめフィールド上に配置されている大量のコインを、「プッシャー」と呼ばれる往復運動を繰り返す台を利用して当たり口へと落とすゲームです。完成のイメージは図1のようになります。
前編の今回は、Unityの基本操作とコインプッシャーゲームの基礎部分の製作方法を解説します。具体的には、以下のことを習得します。
- 新規プロジェクトの作成
- Unityの基本操作を学ぶ(画面の見方、操作方法)
- コインプッシャーの土台を作る(オブジェクトをシーン上に生成)
- コインに物理演算を加える(インスペクタでRigidbodyを付けてみる)
- ゲームの視点を調整する(MainCameraの調整)
- コインに色をつける(マテリアルの作成と貼り付け)
- 作成したシーンを保存
それでは、さっそくコインプッシャーゲームの製作を始めましょう。
新規プロジェクトの作成
まず、プロジェクトを新規作成します。Unity5を起動するとプロジェクトの管理画面が表示されるので、画面右上にある青いボタン[NewProject]をクリックしてください(図2)。
図3の画面が表示されるので、任意のプロジェクト名とプロジェクトの保存場所を決定してください。そして、画面左下の[3D][2D]という項目では[3D]を選びましょう。これらを設定したら、右下の青いボタン[Createproject]をクリックします。これで新規プロジェクトが作成できました。
Unityの基本操作を学ぶ(画面の見方、操作方法)
ゲーム製作を進める前に、Unityの基本的な操作を解説します。まず、エディタ画面の右上にあるボタンが[Default]になっているかどうかを確認してください(図4)。ここでUnityのエディタのレイアウトをどのようにするか選ぶことができます。今回の連載では、Defaultで解説・製作していきます。
Unityのエディタ画面は、いくつかのウィンドウから構成されています(図5)。
Project(プロジェクト)
ゲームで使用する素材(3Dモデルや音、画像などの全ての素材)やスクリプトを保存する場所です。
Scene(シーン)
ゲームの中にオブジェクトをどのように配置するか、また配置したオブジェクトを直接移動したり回転させたりといった作業ができる場所です。
Hierarchy(ヒエラルキー)
Unityでは、「シーン」という単位でゲームシーンを製作していきます。ヒエラルキーウィンドウには、そのシーンの中で使用されているオブジェクトの一覧を表示します。ここでは、シーンに含まれているゲーム再生時のカメラ(MainCamera)と光源(DirectionalLight)の2つのオブジェクトが表示されています。
CameraPreview(カメラプレビュー)
ゲーム再生時の視点です。MainCameraの位置を変更すると、CameraPreviewが変化します。
Inspector(インスペクタ)
オブジェクトに物理演算を付加する「Rigidbody」などの各種機能を追加できます。また、シーン上に配置されているオブジェクトの場所や大きさを直接数値で設定できます。
TransformTools(トランスフォームツールズ)(図6)
シーン内のオブジェクトを直接操作できるツールです。左から順番に説明します(カッコ書きのアルファベットはショートカットキーです)。
Hand(Q) | シーン内をマウスで移動 |
---|---|
Translate(W) | オブジェクトをシーン内で移動 |
Rotate(E) | オブジェクトを回転 |
Scale(R) | オブジェクトを拡大・縮小 |
Rect(T) | オブジェクトを面で拡大・縮小 |
なお、Handを選択時に[alt]キーを押しながらドラッグすると「手」のマークが「目」のマークに切り替わり、シーンの見る角度を変更できます。
Play/Pause/StepButtons(プレイ/ポーズ/ステップボタン)(図7)
ゲームの動作を制御するボタンです。左から順番に説明します(カッコ書きのアルファベットはショートカットキーです)。
Play(Win[Ctrl]+[P]、Mac[command]+[P]) | ゲームを再生 |
---|---|
Pause(Win[Shift]+[Ctrl]+[P]、Mac[Shift]+[command]+[P]) | ゲームを一時停止 |
Step(Win[alt]+[Ctrl]+[P]、Mac[alt]+[command]+[P]) | ゲームを1コマ単位(1フレーム単位)で再生 |
コインプッシャーの土台を作る(オブジェクトをシーン上に生成)
それでは、Unity上にコインプッシャーの土台を作ってみましょう。エディタ画面左のヒエラルキーウィンドウで[Hierarchy]→[Create]→[3DObject]→[Cube]を選択します(図8)。
シーンウィンドウ内に立方体(Cube)が生成されます。Cubeを選択して、インスペクタウィンドウでCubeのScale(大きさ)をX=5、Y=1、X=5に設定して土台を平たくしましょう(図9)。
しかし、「Cube」という名前のままでは、シーンウィンドウにオブジェクトを配置していくにつれて、どれがコインプッシャーの土台なのか分かりにくくなってしまいます(図10)。オブジェクトを配置するときは、同時に名前も付けてあげるようにしましょう。
オブジェクトの名前はインスペクタウィンドウで変更するか(図11)、ヒエラルキーウィンドウに表示されているオブジェクト名の上で右クリックして表示される[Rename]を選択すると変更できます(図12)。
コインに物理演算を加える(Rigidbodyを付ける)
次にコインを作成していきます。土台を作ったときと同じ要領で[Hierarchy]→[Create]→[3DObject]→[Cylinder]を選択してください。シーンウィンドウに円柱のオブジェクトが作成されるので、コインの形にするために厚さを薄くします。円柱を選択して、インスペクタウィンドウでScaleをX=1、Y=0.1、Z=1に設定しましょう(図13)。また、オブジェクトの名前も「Coin」に変更しておきます。
続いて、このコインに物理演算を付加します。コインのインスペクタウィンドウ下部にある[AddComponent]をクリックして表示されるメニューから[Physics]→[Rigidbody]を選択すると、コインにRigidbodyが付加されます(図14)。
rigidbodyはオブジェクトに物理演算を適用するための機能です。これを追加するだけで、自然落下運動などの物理運動を再現してくれます。
それでは、Rigidbodyを付けるとどうなるかを実際に確認してみます。再生ボタンをクリックすると、コインが土台に向かって落ちていきます。そこでもう一度、CoinのRigidbodyを見てみましょう。Rigidbodyの中にある「UseGravity」で、オブジェクトに重力をかけるかどうかを選択できます。図14ではチェックが付いているので、オブジェクトに重力がかかり自然落下するようになっています。
しかし、自然落下したのは良いのですが、何か不自然です。コインが土台に対して少し浮いている状態で止まってしまいました(図15)。
ここで、コインだけに注目してみましょう。コインを選択した状態を見てみると、コインの回りに球のような形で緑の枠が表示されています(図16)。この緑の枠は、コインの「当たり判定」を示しています。
当たり判定とは、オブジェクトが他のオブジェクトと接触したかどうかを判定するための機能です。コインの当たり判定が球のような形になっており、コインの見た目と当たり判定が一致しないためにこのような現象が起こっています。
そこで、コインの形状と一致するように当たり判定を調整します。まず、SphereColliderを削除します。インスペクタウィンドウの「CapsuleCollider」の右にある歯車アイコンをクリックして、[RemoveComponent]を選択します(図17)。
そして、コインにRigidbodyを付けたのと同じ要領でコインのインスペクタウィンドウ下部から[AddComponent]→[Physics]→[MeshCollider]を選択し、[Convex]にチェックを入れてください。これで、コインと当たり判定が同じ形になりました(図18)。
この状態で再生ボタンを押すと、今度は正しく土台にコインが接地するようになります(図19)。
動作を確認したら、もう一度再生ボタンを押して再生を止めるクセを付けておきましょう。再生中にオブジェクトを移動・生成してから再生を止めると、移動・生成がされなかったことになります。動作を確認し終わったあとは、忘れずに再生を止めてください。
ゲームの視点を調整する(MainCameraの調整)
ヒエラルキーウィンドウの「MainCamera」を調整することでゲームの視点を調整できます。現在の視点は土台の高さとほとんど同じになっています(図20)。
これをもう少し上から見下ろすように、カメラの位置を調整してみましょう。ヒエラルキーウィンドウのMainCameraをクリックして、トランスフォームツールズの「Translate」(左から2番目)をクリックします。MainCameraから矢印が出てきますので、この矢印をドラッグすることでカメラを移動できます。
まず、カメラをy軸の正の方向に動かしてカメラの位置を上げ、土台とカメラが近づくようにカメラをz軸方向に移動させます。そして、トランスフォームツールズの「Rotate」(左から3番目)をクリックします。今度はMainCameraに3色の円が描かれます。この円をクリックしながら移動させることでカメラの角度を変更できます(図21)。土台がカメラの中心になるようにx軸に回転させてみましょう。カメラ位置の調整前後で、見え方が変化したことが分かると思います。
コインに色をつける(マテリアルの作成と貼り付け)
土台とコインの色が両方とも「白」で見辛いので、コインに色を付けて見やすくしましょう。みなさんはコインの色といったら何色を思い浮かべるでしょうか。筆者はやはり「黄色」のイメージです。そこで、コインの色を黄色に変えてみます。
まず、プロジェクトウィンドウで[Project]→[Create]→[Material]を選択すると(図23)、Assetsフォルダの中に「NewMaterial」というマテリアルのファイルが作成されるので、名前を「Coin」に変更します(図24)。
次に、Coinマテリアルを選択してインスペクタウィンドウの「MainMaps」にある「Albedo」の右隣の白色部分をクリックして、好きな色を設定しましょう(図25)。
色を設定したら、Coinのマテリアルファイルをドラッグ&ドロップでCoinに貼り付けます。すると、シーン上のコインが設定した色に変更されます。なお、ドラッグ&ドロップで貼り付けるには、以下の3種類の方法があります(図26)。
- CoinマテリアルをヒエラルキーウィンドウのCoinにドラッグ&ドロップ
- CoinマテリアルをシーンウィンドウのCoinにドラッグ&ドロップ
- CoinマテリアルをCoinのインスペクタウィンドウにドラッグ&ドロップ
これで、オブジェクトに色を付けられるようになりました。
作成したシーンを保存
今回の解説はここまでとなります。最後にこれまでの作業を保存しておきましょう。メニューバーから[File]→[SaveScene]を選択してください。ショートカットキーはWinが[Ctrl]+[S]、Macは[command]+[S]です。これで編集したシーンを保存できます(図27)。
保存する際は名前を付ける必要がありますが、筆者は「CoinGame.unity」と名付けました。保存すると、Assetsフォルダの中に「CoinGame」というUnityのロゴが付いたファイルが作成されます(図28)。これがシーンファイルです。いつUnityやパソコンがフリーズしても良いように、編集した度に保存することを心がけてください。
これで、Unityの基本操作ができるようになりました。次回からは、Unityのスクリプトを書いて行きます。