Unity 5でコインプッシャーゲームを作ろう(前編)

2015年7月22日(水)
古波倉 正隆(こはぐら まさたか)

前回は第1回ということで、Unityの基礎知識と最新版Unity5の新機能、インストール方法を解説しました。今回からは、前編・中編・後編の3回に渡ってUnity5を使った実際のゲーム製作を解説していきます。

本連載で製作するのは「コインプッシャーゲーム」です。皆さんもゲームセンターのメダルコーナーでよく見かけると思いますが、あらかじめフィールド上に配置されている大量のコインを、「プッシャー」と呼ばれる往復運動を繰り返す台を利用して当たり口へと落とすゲームです。完成のイメージは図1のようになります。

筆者が作成したコインプッシャーゲーム

図1:筆者が作成したコインプッシャーゲーム

前編の今回は、Unityの基本操作とコインプッシャーゲームの基礎部分の製作方法を解説します。具体的には、以下のことを習得します。

  1. 新規プロジェクトの作成
  2. Unityの基本操作を学ぶ(画面の見方、操作方法)
  3. コインプッシャーの土台を作る(オブジェクトをシーン上に生成)
  4. コインに物理演算を加える(インスペクタでRigidbodyを付けてみる)
  5. ゲームの視点を調整する(MainCameraの調整)
  6. コインに色をつける(マテリアルの作成と貼り付け)
  7. 作成したシーンを保存

それでは、さっそくコインプッシャーゲームの製作を始めましょう。

新規プロジェクトの作成

まず、プロジェクトを新規作成します。Unity5を起動するとプロジェクトの管理画面が表示されるので、画面右上にある青いボタン[NewProject]をクリックしてください(図2)。

プロジェクトの管理画面

図2:プロジェクトの管理画面

図3の画面が表示されるので、任意のプロジェクト名とプロジェクトの保存場所を決定してください。そして、画面左下の[3D][2D]という項目では[3D]を選びましょう。これらを設定したら、右下の青いボタン[Createproject]をクリックします。これで新規プロジェクトが作成できました。

プロジェクトの新規作成

図3:プロジェクトの新規作成

Unityの基本操作を学ぶ(画面の見方、操作方法)

ゲーム製作を進める前に、Unityの基本的な操作を解説します。まず、エディタ画面の右上にあるボタンが[Default]になっているかどうかを確認してください(図4)。ここでUnityのエディタのレイアウトをどのようにするか選ぶことができます。今回の連載では、Defaultで解説・製作していきます。

エディタのレイアウトの確認

図4:エディタのレイアウトの確認

Unityのエディタ画面は、いくつかのウィンドウから構成されています(図5)。

エディタのレイアウト

図5:エディタのレイアウト

Project(プロジェクト)

ゲームで使用する素材(3Dモデルや音、画像などの全ての素材)やスクリプトを保存する場所です。

Scene(シーン)

ゲームの中にオブジェクトをどのように配置するか、また配置したオブジェクトを直接移動したり回転させたりといった作業ができる場所です。

Hierarchy(ヒエラルキー)

Unityでは、「シーン」という単位でゲームシーンを製作していきます。ヒエラルキーウィンドウには、そのシーンの中で使用されているオブジェクトの一覧を表示します。ここでは、シーンに含まれているゲーム再生時のカメラ(MainCamera)と光源(DirectionalLight)の2つのオブジェクトが表示されています。

CameraPreview(カメラプレビュー)

ゲーム再生時の視点です。MainCameraの位置を変更すると、CameraPreviewが変化します。

Inspector(インスペクタ)

オブジェクトに物理演算を付加する「Rigidbody」などの各種機能を追加できます。また、シーン上に配置されているオブジェクトの場所や大きさを直接数値で設定できます。

TransformTools(トランスフォームツールズ)(図6)

シーン内のオブジェクトを直接操作できるツールです。左から順番に説明します(カッコ書きのアルファベットはショートカットキーです)。

TransformTools

図6:TransformTools

Hand(Q) シーン内をマウスで移動
Translate(W) オブジェクトをシーン内で移動
Rotate(E) オブジェクトを回転
Scale(R) オブジェクトを拡大・縮小
Rect(T) オブジェクトを面で拡大・縮小

なお、Handを選択時に[alt]キーを押しながらドラッグすると「手」のマークが「目」のマークに切り替わり、シーンの見る角度を変更できます。

Play/Pause/StepButtons(プレイ/ポーズ/ステップボタン)(図7)

ゲームの動作を制御するボタンです。左から順番に説明します(カッコ書きのアルファベットはショートカットキーです)。

Play/Pause/StepButtons

図7:Play/Pause/StepButtons

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の生成

図8:Cubeの生成

シーンウィンドウ内に立方体(Cube)が生成されます。Cubeを選択して、インスペクタウィンドウでCubeのScale(大きさ)をX=5、Y=1、X=5に設定して土台を平たくしましょう(図9)。

インスペクタでCubeの大きさを変更した結果

図9:インスペクタでCubeの大きさを変更した結果

しかし、「Cube」という名前のままでは、シーンウィンドウにオブジェクトを配置していくにつれて、どれがコインプッシャーの土台なのか分かりにくくなってしまいます(図10)。オブジェクトを配置するときは、同時に名前も付けてあげるようにしましょう。

それぞれのオブジェクトに名前を付けなかった結果

図10:それぞれのオブジェクトに名前を付けなかった結果

オブジェクトの名前はインスペクタウィンドウで変更するか(図11)、ヒエラルキーウィンドウに表示されているオブジェクト名の上で右クリックして表示される[Rename]を選択すると変更できます(図12)。

インスペクタウィンドウでの名前の変更

図11:インスペクタウィンドウでの名前の変更

ヒエラルキーウィンドウでの名前の変更

図12:ヒエラルキーウィンドウでの名前の変更

コインに物理演算を加える(Rigidbodyを付ける)

次にコインを作成していきます。土台を作ったときと同じ要領で[Hierarchy]→[Create]→[3DObject]→[Cylinder]を選択してください。シーンウィンドウに円柱のオブジェクトが作成されるので、コインの形にするために厚さを薄くします。円柱を選択して、インスペクタウィンドウでScaleをX=1、Y=0.1、Z=1に設定しましょう(図13)。また、オブジェクトの名前も「Coin」に変更しておきます。

コインを生成

図13:コインを生成

続いて、このコインに物理演算を付加します。コインのインスペクタウィンドウ下部にある[AddComponent]をクリックして表示されるメニューから[Physics]→[Rigidbody]を選択すると、コインにRigidbodyが付加されます(図14)。

CoinにRigidbodyを付けたあとのインスペクタ

図14:CoinにRigidbodyを付けたあとのインスペクタ

rigidbodyはオブジェクトに物理演算を適用するための機能です。これを追加するだけで、自然落下運動などの物理運動を再現してくれます。

それでは、Rigidbodyを付けるとどうなるかを実際に確認してみます。再生ボタンをクリックすると、コインが土台に向かって落ちていきます。そこでもう一度、CoinのRigidbodyを見てみましょう。Rigidbodyの中にある「UseGravity」で、オブジェクトに重力をかけるかどうかを選択できます。図14ではチェックが付いているので、オブジェクトに重力がかかり自然落下するようになっています。

しかし、自然落下したのは良いのですが、何か不自然です。コインが土台に対して少し浮いている状態で止まってしまいました(図15)。

再生すると不自然に浮くコイン

図15:再生すると不自然に浮くコイン

ここで、コインだけに注目してみましょう。コインを選択した状態を見てみると、コインの回りに球のような形で緑の枠が表示されています(図16)。この緑の枠は、コインの「当たり判定」を示しています。

コインの当たり判定

図16:コインの当たり判定

当たり判定とは、オブジェクトが他のオブジェクトと接触したかどうかを判定するための機能です。コインの当たり判定が球のような形になっており、コインの見た目と当たり判定が一致しないためにこのような現象が起こっています。

そこで、コインの形状と一致するように当たり判定を調整します。まず、SphereColliderを削除します。インスペクタウィンドウの「CapsuleCollider」の右にある歯車アイコンをクリックして、[RemoveComponent]を選択します(図17)。

CapsuleColliderを削除

図17:CapsuleColliderを削除

そして、コインにRigidbodyを付けたのと同じ要領でコインのインスペクタウィンドウ下部から[AddComponent]→[Physics]→[MeshCollider]を選択し、[Convex]にチェックを入れてください。これで、コインと当たり判定が同じ形になりました(図18)。

コインの当たり判定とコインの形状が一致した

図18:コインの当たり判定とコインの形状が一致した

この状態で再生ボタンを押すと、今度は正しく土台にコインが接地するようになります(図19)。

土台とコインが正しく接地する

図19:土台とコインが正しく接地する

動作を確認したら、もう一度再生ボタンを押して再生を止めるクセを付けておきましょう。再生中にオブジェクトを移動・生成してから再生を止めると、移動・生成がされなかったことになります。動作を確認し終わったあとは、忘れずに再生を止めてください。

ゲームの視点を調整する(MainCameraの調整)

ヒエラルキーウィンドウの「MainCamera」を調整することでゲームの視点を調整できます。現在の視点は土台の高さとほとんど同じになっています(図20)。

調整前のカメラの位置

図20:調整前のカメラの位置

これをもう少し上から見下ろすように、カメラの位置を調整してみましょう。ヒエラルキーウィンドウのMainCameraをクリックして、トランスフォームツールズの「Translate」(左から2番目)をクリックします。MainCameraから矢印が出てきますので、この矢印をドラッグすることでカメラを移動できます。

まず、カメラをy軸の正の方向に動かしてカメラの位置を上げ、土台とカメラが近づくようにカメラをz軸方向に移動させます。そして、トランスフォームツールズの「Rotate」(左から3番目)をクリックします。今度はMainCameraに3色の円が描かれます。この円をクリックしながら移動させることでカメラの角度を変更できます(図21)。土台がカメラの中心になるようにx軸に回転させてみましょう。カメラ位置の調整前後で、見え方が変化したことが分かると思います。

トランスフォームツールズ:rotateクリック時

図21:トランスフォームツールズ:rotateクリック時

調整後のカメラの位置

図22:調整後のカメラの位置

コインに色をつける(マテリアルの作成と貼り付け)

土台とコインの色が両方とも「白」で見辛いので、コインに色を付けて見やすくしましょう。みなさんはコインの色といったら何色を思い浮かべるでしょうか。筆者はやはり「黄色」のイメージです。そこで、コインの色を黄色に変えてみます。

まず、プロジェクトウィンドウで[Project]→[Create]→[Material]を選択すると(図23)、Assetsフォルダの中に「NewMaterial」というマテリアルのファイルが作成されるので、名前を「Coin」に変更します(図24)。

マテリアルの作成

図23:マテリアルの作成

マテリアルの作成後、Assetsの中にcoinマテリアルが現れる

図24:マテリアルの作成後、Assetsの中にcoinマテリアルが現れる

次に、Coinマテリアルを選択してインスペクタウィンドウの「MainMaps」にある「Albedo」の右隣の白色部分をクリックして、好きな色を設定しましょう(図25)。

マテリアルのインスペクタ

図25:マテリアルのインスペクタ

色を設定したら、Coinのマテリアルファイルをドラッグ&ドロップでCoinに貼り付けます。すると、シーン上のコインが設定した色に変更されます。なお、ドラッグ&ドロップで貼り付けるには、以下の3種類の方法があります(図26)。

  1. CoinマテリアルをヒエラルキーウィンドウのCoinにドラッグ&ドロップ
  2. CoinマテリアルをシーンウィンドウのCoinにドラッグ&ドロップ
  3. CoinマテリアルをCoinのインスペクタウィンドウにドラッグ&ドロップ
マテリアルをドラッグ&ドロップで貼り付ける方法

図26:マテリアルをドラッグ&ドロップで貼り付ける方法

これで、オブジェクトに色を付けられるようになりました。

作成したシーンを保存

今回の解説はここまでとなります。最後にこれまでの作業を保存しておきましょう。メニューバーから[File]→[SaveScene]を選択してください。ショートカットキーはWinが[Ctrl]+[S]、Macは[command]+[S]です。これで編集したシーンを保存できます(図27)。

Sceneの保存方法(メニューバーから選択する場合)

図27:Sceneの保存方法(メニューバーから選択する場合)

保存する際は名前を付ける必要がありますが、筆者は「CoinGame.unity」と名付けました。保存すると、Assetsフォルダの中に「CoinGame」というUnityのロゴが付いたファイルが作成されます(図28)。これがシーンファイルです。いつUnityやパソコンがフリーズしても良いように、編集した度に保存することを心がけてください。

シーン保存後、Unityロゴのファイルが生成される

図28:シーン保存後、Unityロゴのファイルが生成される

これで、Unityの基本操作ができるようになりました。次回からは、Unityのスクリプトを書いて行きます。

著者
古波倉 正隆(こはぐら まさたか)
琉球大学大学院、IGDA 琉球大学代表

2歳の頃から叔父の影響でファミコンを触り始める。5歳の頃に初代ぷよぷよにハマり、そこからゲーム好きが開花。ノベルゲーム以外の幅広いジャンルをプレイしてきた。 大学ではゲーム開発者向けコミュニティ IGDA琉球大学 を設立し、ゲーム開発者向けに講演会やゲームジャムを開催している。 好きなゲームは KOEI 三国志・信長シリーズ、KONAMI 系音ゲなどなど。
個人ブログ(masakoha’s room) : http://www.masakoha.com/

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています