シンプルなアクションゲームを作ってみよう10-ゲームの舞台を作成する-

記事内に広告が含まれています。

シンプルなアクションゲームを作ってみようの第10回です。

今回はキャラクターが移動するゲームの舞台を作成していきます。

前回はカメラがキャラクターを追いかけるようにしました。

シンプルなアクションゲームを作ってみよう9-カメラがキャラクターを追いかけるようにする-
シンプルなアクションゲームでカメラがキャラクターを追いかけるようにしていきます。

シンプルなアクションゲームを作ってみようの他の記事は

シンプルなアクションゲームを作ってみよう

シンプルなアクションゲームを作るのを通してUnityの使い方を学ぶカテゴリです。

から参照出来ます。

スポンサーリンク

ゲームの舞台を作成する

今回作成するゲームの舞台はプリミティブな図形を使って作っていきます。

プリミティブな図形とは、Unityで元々用意されているCube等のオブジェクトの事です。

ゲームの舞台を配置する親のゲームオブジェクトを作成

ゲームの舞台をヒエラルキーにどんどん追加していってもいいんですが、どうせならゲームの舞台全体をまとめる親ゲームオブジェクトを作成し、その中に舞台を作った方が楽です。

それは管理しやすいというのもありますが、ゲームの舞台を全部同時に移動や回転をしたい場合は親のゲームオブジェクトに対して行うだけで、子のゲームオブジェクトが全て親にしたがって変化するからです(子のゲームオブジェクトは親のゲームオブジェクトの相対位置や回転になっている為)。

親のゲームオブジェクトを作成します。

ヒエラルキーウインドウ内で右クリックからCreate Emptyを選択し、名前をEnvironmentとします。

ゲームの舞台全体の親ゲームオブジェクトを作成する

EnvironmentのインスペクタでTransformの右の3つの丸を押し、Resetを選択してリセットします。

EnvironmentのTransformをリセットする

これでゲームの舞台の親のゲームオブジェクトが出来たので、後はゲームの舞台に使用するゲームオブジェクトをEnvironmentの子要素として作成していくだけです。

これから作成していく舞台とまったく同じものを作る必要はありませんが、同じように作った方がこの後の記事でも読み進めやすいかもしれません。

全体の床を作成する

まずはStage1シーンのゲームの床を作成しますが、これは既にPlaneとして作っているのでこれを使います。

PlaneをマウスでドラッグしてEnvironmentの子要素に移動させ、名前をWholeFloorとします。

Planeの名前をWholeFloorにしてEnvironmentの子要素に移動させる

WholeFloorのインスペクタでTransformのScaleのXYZを全て2にします。

WholeFloorのScaleのXYZを全て2にする

Cubeで床の作成

次にCubeを使って普通の床を作成していきます。

Environmentを選択し、右クリックから3D Object→Cubeを選択し、名前をFloorとします。

Floorを選択した状態でCtrl+Dキーを2回押し、Floorを3つにします。

Floorを3つに複製した状態

Floorは以下のようにTransformを設定します。

FloorのTransformの設定

Floor(1)は以下のようにTransformを設定します。

Floor(1)のTransformの設定

Floor(2)は以下のようにTransformを設定します。

Floor(2)のTransformの設定

これらを設定するとシーンビューで以下のようになります。

ゲームの舞台に3つのFloorを追加した時のシーンビュー

Floorは地面として使うのでGroundレイヤーを設定しています。

坂を作成する

Floorを作りましたが、Floorに上る事が出来ません。

そこで坂を作ってFloorに上れるようにします。

坂の形状はUnityのプリミティブ図形では存在していないので、スタンダードアセットにある坂のプレハブを使用して坂を作成します。

プレハブとは?

プレハブはゲームオブジェクトにコンポーネントを取り付けたものです。

これをヒエラルキーにドラッグ&ドロップしてゲームオブジェクトとして使用したり、スクリプトを使ってプレハブからインスタンス生成して、シーンに登場させることも出来ます。

プレハブは、色々な機能を取り付けたゲームオブジェクトをあらかじめアセットとしてProjectウインドウの中に用意しておくものという感じです。

なので同じ機能を持ったゲームオブジェクトを大量に使いたい時に便利です。

坂のプレハブはAssets/Standard Assets/Prototyping/Prefabs/RampPrototype04×02×02.prefab

を使います。

これをEnvironmentにドラッグ&ドロップしてEnvironmentの子要素に配置し、名前をSlopeとします。

坂のプレハブをEnvironmentの子要素に配置する

Slopeを選択し、Ctrl+Dキーを押して複製します。

Slopeゲームオブジェクトを複製する

SlopeのインスペクタのTransformは以下のようにします。

Floorに上る為の坂1

Slope(1)のインスペクタのTransformは以下のようにします。

Floorに上る為の床2

ここまででシーンビューでは以下のような感じで表示されます。

Floorに上れる坂を設置した光景

マテリアルを設定する

次にFloorにマテリアルを設定します。

マテリアルはゲームオブジェクトの素材を決定するものです。

マテリアルを入れるフォルダをAssetsフォルダ内にMaterialsという名前で作成します。

Assets/Materilasフォルダ内で右クリックしCreate→Materialを選択し、名前をFloorとします。

Floorマテリアルを作成する

Floorマテリアルを選択し、インスペクタでAlbedoの横の白色の部分を押し、色を緑色に変更します。

マテリアルの色を変更する

ヒエラルキーのFloorゲームオブジェクトを選択し、Shiftキーを押しながらFloor(2)ゲームオブジェクトを選択するとFloorからFloor(2)までのゲームオブジェクト全てを選択出来ます。

Shiftキーを押しながらゲームオブジェクトを選択すると、最初に選択したゲームオブジェクトから次に選択したゲームオブジェクトの間のゲームオブジェクト全てを選択出来ます。

離れているゲームオブジェクトを複数選択したい場合は、Ctrlキーを押しながらゲームオブジェクトを選択する事で複数のゲームオブジェクトを選択することも出来ます。

その状態で、FloorマテリアルをインスペクタのAdd Componentボタンの少し下あたりにドラッグ&ドロップします。

複数のゲームオブジェクトにFloorマテリアルを同時に設定する

こうすると今選択したFloorの3つのゲームオブジェクト全てに同じマテリアルを適用出来ます。

個別のゲームオブジェクトに適用したい場合は、マテリアルをヒエラルキーのゲームオブジェクトにドラッグ&ドロップしてもいいですし、ゲームオブジェクトのインスペクタのMesh RendererのMaterialsのElementの+を押してマテリアルを追加する事も出来ます。

Mesh RendererのMaterialsにマテリアルを設定する方法

Floorにマテリアルを設定したのでシーンビューでは以下のような感じで表示されます。

Floorゲームオブジェクトが全て緑色になった

カメラの距離を変更する

坂や床ゲームオブジェクトを設置したことで、カメラがうまくキャラクターを写せない時もあります。

そこでMain Cameraの設定を少し変更します。

MainCameraの設定を変えてキャラクターが写るようにする

少し上からの視点になりました。

カメラの視点をずらしキャラクターが写りやすいようにする

実行して確認する

ゲームの舞台が出来たので、キャラクターを移動させて坂を上って床を歩けるか確認してみましょう。

上のようになりました。

終わりに

今回はゲームの舞台を作成しました。

次回は作ったゲームの舞台に物理的なマテリアルを設定していきます。

タイトルとURLをコピーしました