まさたか)Tweet前回は第1回ということで、Unityの基礎知識と最新版Unity5の新機能、インストール方法を解説しました。3回に渡ってUnity5を使った実際のゲーム製作を解説していきます。本連載で製作するのは「コインプッシャーゲーム」です。皆さんもゲームセンターのメダルコーナーでよく見かけると思いますが、あらかじめフィールド上に配置されている大量のコインを、「プッシャー」と呼ばれる往復運動を繰り返す台を利用して当たり口へと落とすゲームです。完成のイメージは図1のようになります。図1:筆者が作成したコインプッシャーゲーム前編の今回は、Unityの基本操作とコインプッシャーゲームの基礎部分の製作方法を解説します。具体的には、以下のことを習得します。新規プロジェクトの作成Unityの基本操作を学ぶ(画面の見方、操作方法)コインプッシャーの土台を作る(オブジェクトをシーン上に生成)コインに物理演算を加える(インスペクタでRigidbodyを付けてみる)ゲームの視点を調整する(MainCameraの調整)コインに色をつける(マテリアルの作成と貼り付け)作成したシーンを保存それでは、さっそくコインプッシャーゲームの製作を始めましょう。新規プロジェクトの作成まず、プロジェクトを新規作成します。Unity5を起動するとプロジェクトの管理画面が表示されるので、画面右上にある青いボタン[NewProject]をクリックしてください(図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)シーン内のオブジェクトを直接操作できるツールです。左から順番に説明します(カッコ書きのアルファベットはショートカットキーです)。図6:TransformToolsHand(Q)シーン内をマウスで移動Translate(W)オブジェクトをシーン内で移動Rotate(E)オブジェクトを回転Scale(R)オブジェクトを拡大・縮小Rect(T)オブジェクトを面で拡大・縮小なお、Handを選択時に[alt]キーを押しながらドラッグすると「手」のマークが「目」のマークに切り替わり、シーンの見る角度を変更できます。Play/Pause/StepButtons(プレイ/ポーズ/ステップボタン)(図7)ゲームの動作を制御するボタンです。左から順番に説明します(カッコ書きのアルファベットはショートカットキーです)。図7:Play/Pause/StepButtonsPlay(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)。図8:Cubeの生成シーンウィンドウ内に立方体(Cube)が生成されます。Cubeを選択して、インスペクタウィンドウでCubeのScale(大きさ)をX=5、Y=1、X=5に設定して土台を平たくしましょう(図9)。図9:インスペクタでCubeの大きさを変更した結果しかし、「Cube」という名前のままでは、シーンウィンドウにオブジェクトを配置していくにつれて、どれがコインプッシャーの土台なのか分かりにくくなってしまいます(図10)。オブジェクトを配置するときは、同時に名前も付けてあげるようにしましょう。図10:それぞれのオブジェクトに名前を付けなかった結果オブジェクトの名前はインスペクタウィンドウで変更するか(図11)、ヒエラルキーウィンドウに表示されているオブジェクト名の上で右クリックして表示される[Rename]を選択すると変更できます(図12)。図12:ヒエラルキーウィンドウでの名前の変更コインに物理演算を加える(Rigidbodyを付ける)次にコインを作成していきます。土台を作ったときと同じ要領で[Hierarchy]→[Create]→[3DObject]→[Cylinder]を選択してください。シーンウィンドウに円柱のオブジェクトが作成されるので、コインの形にするために厚さを薄くします。円柱を選択して、インスペクタウィンドウでScaleをX=1、Y=0.1、Z=1に設定しましょう(図13)。オブジェクトの名前も「Coin」に変更しておきます。続いて、このコインに物理演算を付加します。コインのインスペクタウィンドウ下部にある[AddComponent]をクリックして表示されるメニューから[Physics]→[Rigidbody]を選択すると、コインにRigidbodyが付加されます(図14)。図14:CoinにRigidbodyを付けたあとのインスペクタrigidbodyはオブジェクトに物理演算を適用するための機能です。これを追加するだけで、自然落下運動などの物理運動を再現してくれます。それでは、Rigidbodyを付けるとどうなるかを実際に確認してみます。再生ボタンをクリックすると、コインが土台に向かって落ちていきます。そこでもう一度、CoinのRigidbodyを見てみましょう。Rigidbodyの中にある「UseGravity」で、オブジェクトに重力をかけるかどうかを選択できます。図14ではチェックが付いているので、オブジェクトに重力がかかり自然落下するようになっています。自然落下したのは良いのですが、何か不自然です。コインが土台に対して少し浮いている状態で止まってしまいました(図15)。図15:再生すると不自然に浮くコインここで、コインだけに注目してみましょう。コインを選択した状態を見てみると、コインの回りに球のような形で緑の枠が表示されています(図16)。この緑の枠は、コインの「当たり判定」を示しています。当たり判定とは、オブジェクトが他のオブジェクトと接触したかどうかを判定するための機能です。コインの当たり判定が球のような形になっており、コインの見た目と当たり判定が一致しないためにこのような現象が起こっています。そこで、コインの形状と一致するように当たり判定を調整します。SphereColliderを削除します。インスペクタウィンドウの「CapsuleCollider」の右にある歯車アイコンをクリックして、[RemoveComponent]を選択します(図17)。図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軸に回転させてみましょう。カメラ位置の調整前後で、見え方が変化したことが分かると思います。図22:調整後のカメラの位置コインに色をつける(マテリアルの作成と貼り付け)土台とコインの色が両方とも「白」で見辛いので、コインに色を付けて見やすくしましょう。みなさんはコインの色といったら何色を思い浮かべるでしょうか。筆者はやはり「黄色」のイメージです。そこで、コインの色を黄色に変えてみます。プロジェクトウィンドウで[Project]→[Create]→[Material]を選択すると(図23)、Assetsフォルダの中に「NewMaterial」というマテリアルのファイルが作成されるので、名前を「Coin」に変更します(図24)。図24:マテリアルの作成後、Assetsの中にcoinマテリアルが現れる次に、Coinマテリアルを選択してインスペクタウィンドウの「MainMaps」にある「Albedo」の右隣の白色部分をクリックして、好きな色を設定しましょう(図25)。図25:マテリアルのインスペクタ色を設定したら、Coinのマテリアルファイルをドラッグ&ドロップでCoinに貼り付けます。すると、シーン上のコインが設定した色に変更されます。ドラッグ&ドロップで貼り付けるには、以下の3種類の方法があります(図26)。CoinマテリアルをヒエラルキーウィンドウのCoinにドラッグ&ドロップCoinマテリアルをシーンウィンドウのCoinにドラッグ&ドロップCoinマテリアルをCoinのインスペクタウィンドウにドラッグ&ドロップ図26:マテリアルをドラッグ&ドロップで貼り付ける方法これで、オブジェクトに色を付けられるようになりました。今回の解説はここまでとなります。最後にこれまでの作業を保存しておきましょう。メニューバーから[File]→[SaveScene]を選択してください。ショートカットキーはWinが[Ctrl]+[S]、Macは[command]+[S]です。これで編集したシーンを保存できます(図27)。図27:Sceneの保存方法(メニューバーから選択する場合)保存する際は名前を付ける必要がありますが、筆者は「CoinGame.unity」と名付けました。保存すると、Assetsフォルダの中に「CoinGame」というUnityのロゴが付いたファイルが作成されます(図28)。これがシーンファイルです。いつUnityやパソコンがフリーズしても良いように、編集した度に保存することを心がけてください。図28:シーン保存後、Unityロゴのファイルが生成されるこれで、Unityの基本操作ができるようになりました。次回からは、Unityのスクリプトを書いて行きます。琉球大学代表2歳の頃から叔父の影響でファミコンを触り始める。5歳の頃に初代ぷよぷよにハマり、そこからゲーム好きが開花。ノベルゲーム以外の幅広いジャンルをプレイしてきた。設立し、ゲーム開発者向けに講演会やゲームジャムを開催している。ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。IT会員サービスの概要とメリットをチェック他にもこの記事が読まれています開発ツールイベントGitHub、エンタープライズ向けのイベントを国内で開催。VeloCloudが選ばれる理由SD-WANとはなにか。Linuxエンジニア育成への思いF5とNGINXの組み合わせで、サービス公開をよりセキュアに。ITがお届けするポッドキャストです。