ゲーム開発ツールのUnityを少しづつ勉強中。Unityのアセットストアで購入したアドベンチャーゲーム制作アセットAdventure Creatorの公式サイトに掲載されている英語のチュートリアルを翻訳しながら進行中。
今回はシーンの切り替えのチュートリアルPart1で勉強した内容を実際に作って確認してみたいと思います。
チュートリアル-シーンの切り替え-Roomシーンの作成
RoomとFieldという2つのシーンを作成してそれぞれシーンを行き来できるようにしてみましょう。
新しいゲームの作成
こちらの手順を参考に新しいゲームの設定ファイルを作成します。メニュー:Adventure Creator > New Game Wizardを選択。今回はポイント&クリックでプレイヤーキャラクターの移動を行います。
Playerキャラクターの設定
プレイヤーキャラクターを設定します。今回もロボットKyleを使用します。[AC Game Editor]ウインドウ > [Settings]タブ:Settings manager > Character settings > Player: にRobot Kyleプレハブを割り当てます。
Roomシーンの作成
ではRoomシーンを作成しましょう。まずはシーン構成を作成。メニュー:File > New Sceneを選択。[AC Game Editor]ウインドウ > [Scene]タブ:Scene manager > Organise room objects: > [With folders]ボタンをクリック。
プリミティブ形状を組み合わせてこんな感じになりました。北側にシーン移動用のドアを付けてあります。
ゲームカメラを配置しましょう。[AC Game Editor]ウインドウ > [Scene]タブ:Scene manager > Scene prefabs > Camera > [GameCamera]ボタンをクリック。部屋の南西の天井近くにカメラを配置。Game Cameraをデフォルトカメラに設定します。[AC Game Editor]ウインドウ > [Scene]タブ:Scene manager > Scene settings > Default camera: フィールドにGameCameraをに割り当てます。
では次にポイント&クリックを実行するためのオブジェクトを用意します。[AC Game Editor]ウインドウ > [Scene]タブ:Scene manager > Scene prefabs > Navigation > [NavMesh]ボタンをクリック。
作成されたNavMeshプレハブの設定をします。[Hierarchy]ウィンドウ > _Navigation > _NavMesh > NavMeshプレハブを選択。[Inspector]ウィンドウ > Mesh Collider > Meshフィールドの右側の◎をクリック。ファイル選択ウィンドウが開いたらPlaneを選択ます。
[AC Game Editor]ウインドウ > [Scene]タブ:Scene manager > Scene settings > Default NavMesh: フィールドに作成したNavMeshプレハブを割り当てます。
ではゲームを実行してナビゲーション機能を確認してみましょう。マウスでクリックした場所に向かってキャラクターが移動します。[Scene]ビューで確認するとクリックした位置とキャラクターの位置の間に青色で移動線が表示されます。
床オブジェクトをPlaneで作成した場合、PlaneとNavMeshが同じ座標に重なっているとクリックしてもキャラクターが移動せず、ナビゲーションが機能しませんでした。その場合はNavMeshのY座標を少し移動するか、PlaneオブジェクトのLayerを”Ignore Raycast”に変更すると解決しました。
最後にカメラがキャラクターの方に向きを変える設定を追加しましょう。
[Hierarchy]ウィンドウ > _Cameras > _GameCameras > GameCameraを選択。[Hierarchy]ウィンドウ > Game Camera (Script)コンポーネント > Spin rotationパネル > Lock?のチェックを外し。Affected by: [Look At Target]に設定。Field of Viewパネル > Lock?のチェックを外します。Field of Viewはキャラクターの位置に合わせてカメラの視野角が変化します。
これで大体Roomシーンの作成が出来上がりました。ここまでできたがったものをWebGLでビルドしてみました。
マウスクリックした場所にキャラクターが移動します。カメラの動きがあると画面全体に動きが出るのでいい感じです。
次回はフィールドシーンを作成を行いたいと思います。