ゲーム開発ツールのUnityを少しづつ勉強中。Unityのアセットストアで購入したアドベンチャーゲーム制作アセットAdventure Creatorの公式サイトに掲載されている英語のチュートリアルを翻訳しながら進行中。
前回はRoomシーンの作成を行いました。今回はFieldシーンを作成します。
Fieldシーンを作成します。Roomシーンと同じくまずはシーン構成を作成。メニュー:File > New Sceneを選択。[AC Game Editor]ウインドウ > [Scene]タブ:Scene manager > Organise room objects: > [With folders]ボタンをクリック。
Terrainツールを使ってこんな感じのフィールドを作成。地面の境界部分を盛り上げて山脈に見えるように編集しました。
今回はテクスチャ画像をAsset StoreのフリーアセットからYughues Free Ground Materialsを使用しました。
FieldシーンにもGameCameraを配置しましょう。今回は三人称視点用のGameCamera を使ってみます。[AC Game Editor]ウインドウ > [Scene]タブ:Scene manager > Scene prefabs > Camera > [GameCamera Third-person]ボタンをクリック。
Game Cameraをデフォルトカメラに設定します。[AC Game Editor]ウインドウ > [Scene]タブ:Scene manager > Scene settings > Default camera: フィールドにGameCameraをに割り当てます。
さて、キャラクター移動用のNavMeshですが Terrainツールで作成したオブジェクトはAdventure CreatorのNavNeshに割り当てられないので、Unityのナビメッシュ機能を使用します。。[AC Game Editor]ウインドウ > [Scene]タブ:Scene manager > Scene settings > pathfinding method: > [Unity Nabigation]を選択します。
TerrainオブジェクトのNaviMeshを作成しましょう。メニュー:Window > Navigationを選択。[Navigation]ウィンドウ > [Bake]タブに切り替え、[Bake]ボタンをクリックするとNavMesh生成の計算が始まります。
NavMeshの計算が終わると[Scene]ビューにNavMeshが表示されます。
作成したNavMeshを機能させるにはオブジェクトのLayerを変更する必要があります。Terrainオブジェクトを選択した状態で[Inspector]ウィンドウ > Layer > [NavMesh]に設定します。
とりあえず、この辺でゲームを再生して動作を確認してみましょう。ちゃんとTerrainオブジェクトのでこぼこに合わせてキャラクターが移動していますね。
GameCameraの位置と動きを調整しましょう。ゲームを再生した状態で[Hierarchy]ウィンドウ > _Cameras > _GameCameras > GameCameraThirdPersonを選択。[Inspector]ウィンドウ > Game Camera Third Person (Script)コンポーネントのパラメータを調整します。今回は次のように調整しました。
マウスドラッグの操作設定は[Spin Rotation]パネルで水平方向、[Pitch Rotation]パネルで垂直方向の視点移動のパラメータが調整できます。今回は水平方向のみ視点移動できるようにしました。
ゲームの再生中に変更したパラメータはゲームを停止すると再生前のパラメータに戻ってしまうので、コンポーネント名の右側にあるアイコンをクリック > Copy Componentを選択してパラメータをコピー。ゲームを停止してからもう一度コンポーネント名の右側にあるアイコンをクリック > Paste Component Valuesを選択すれば、パラメータを張り付けることができます。
Fieldシーンもそれらしく出来上がったのでWebGLでビルドしてみました。
マウスドラッグで水平方向に視点移動ができます。実はマウスをダブルクリックするとキャラクターが走ることに気が付きました!しかしモーションと移動速度がずれているようで不自然です。これはあらためて調整したいと思います。
というわけで、やっとRoomシーンとFieldシーンが出来上がったので次回はいよいよシーン切り換えを行ってみたいと思います。