ステージの作り方2:テレイン(Terrain)で地形を作る

前回ステージに霧を追加したところ、ずいぶん雰囲気が出てきました。次は実際のステージとなる地形をUnityの「テレイン(Terrain)」という機能を使って作っていきます。

※フォグを出したままだとすごく編集しづらいので、一旦OFFにしておいてください。

スポンサーリンク

アセットの導入

さて、まず今回は地形を作っていくのですが、その地形に貼るテクスチャが欲しいのでアセットストアから適当なアセットをダウンロードしてインポートしましょう。

ここでは「Grass And Flowers Pack 1」という無料の草花&地面テクスチャのアセットを導入することにしました。

ステージの構想

では次に、ステージを作る前にどういうステージにしたらよいかを考えます。今回はシンプルにゾンビを撃ちまくるゲームにしたいので、次のようなステージを考えました。

ゾンビスレイヤーのステージの構想

前方からゾンビの群れが迫ってきて、プレイヤーの後ろ側のエリアにゾンビが入ったらアウト、という感じにすることにしました。

また、プレイヤーがどこまでも移動できてしまっては困るので、ゾンビだけが通過できる「見えない壁」を設けてプレイヤーの移動範囲を制限することにしました。こうすればプレイヤーがステージの端まで移動して落っこちるということはなくなります。

テレイン(Terrain)による地形の作り方

そうしたら次はテレインを使ってステージの地形を作っていきましょう。テレインについては別のページ「Terrainでステージを作る」でも紹介しているので詳しくは説明しませんが、Unity2019になって少しインスペクターの画面が変わった部分もありますので、ざっとおさらいしておきましょう。

完成形は次のような地形です。

テレインで作った地形の例

テレイン(Terrain)の作成と設定

まずはシーンにテレインを作成します。ヒエラルキーを右クリックして、「3Dオブジェクト」→「Terrain(地形)」を選択してください。そうすると白い板状のだだっ広いオブジェクトが出現します。それがテレインです。

作れたらテレインを選択してインスペクターを開き、歯車マークをクリックします。すると下の方に「メッシュ解像度」というグループがあり、そこでこのテレインの大きさを調整できるので、「横幅」「奥行」をそれぞれ100m、「高さ」を50mに設定しましょう(下図)。デフォルトだと1km四方もあるのでデカすぎます…。

テレイン(Terrain)の設定

※ちなみにテレインは普通のゲームオブジェクトとは違ってトランスフォームからはサイズを変えられないので注意してください。また、この後テレインを編集した後にサイズを変えると地形が変になるので、一度サイズを決めたらなるべく変更しないようにしましょう。

テレインにテクスチャを塗る

できたら次はテレイン全体にテクスチャを適用します。テレインのインスペクタの筆マークをクリックし、その下のドロップダウンメニューから「Paint Texture」を選択します。

そうすると下の図のような画面になるので、「Terrain(地形)レイヤーを編集」→「Create Layer」を選択して先ほどインポートしたアセットのテクスチャを選択してください。

テレインの「Paint Texture」画面

そうするとテレインのテクスチャレイヤーが新しく作られて一番目のレイヤーに設定されます。一番目のレイヤーはテレイン全体に適用されるので覚えておきましょう。

もし別のテクスチャを塗りたくなったら、新しいテクスチャレイヤーを作成し、画面下側にあるブラシを選んで直接テレインにテクスチャを塗ってください。

テレインの地形を盛り上げる

テクスチャを塗れたら今度は地形を盛り上げていきます。ドロップダウンメニューで「Raise or Lower Terrain」を選択し、ブラシを選んでサイズや不透明度を設定して、テレインの盛り上げたい部分をなぞるようにしてみてください。

テレインの「Raise or Lower Terrain」画面

そうすると地形がモリモリっと盛り上がっていくのが分かると思います。ブラシや不透明度を変えると違う感じの地形を作れるので色々試してみましょう。

これで地形が完成しました。ただしせっかく草花のテクスチャをインポートしたので、やる気のある方は「Terrainでステージを作る」で紹介したように草を生やしてみると更に見栄えが良くなると思います。

見えないバリアを作る

お次はプレイヤーの移動を制限するバリアを作ります。ステージに適当なキューブを作り、サイズを薄く引き伸ばしてプレイヤーが移動できる範囲を囲うようにしましょう。できたら、キューブのコライダーとトランスフォームだけ残してメッシュレンダラーなどは削除してしまってください。

それで、このままではプレイヤーだけでなくゾンビまで通れなくなってしまうので、レイヤーを設定してゾンビだけがこのバリアを通れるようにします。

新しく「Barrier」というレイヤーを作り(メニューバーの「編集」→「プロジェクト設定」→「Tags and Layers」)、すべてのバリアに設定してください。そうしたら、同じくプロジェクト設定の「物理」の下の方にあるチェックマークでEnemyとBarrierが交わるところだけチェックを外してください(下図)。

レイヤー同士の当たり判定の設定

こうすることでEnemyレイヤーのゲームオブジェクトとBarrierレイヤーのゲームオブジェクトとの間の物理演算が行われなくなります。

ナビメッシュをベイク(生成)する

ここまでできたら、ゾンビが自動で移動できる範囲を決める「ナビメッシュ(NavMesh)」を生成しておきましょう。ナビメッシュのベイクのやり方は「コライダーとナビメッシュの設定」に書いてあるので復習しておいてください。

実際にベイクしてみると下の画像のようになります。

ベイクしたナビメッシュの例

ゾンビ生成オブジェクトとゲームオーバーゾーンを配置する

最後に以前作った敵キャラ生成オブジェクトゲームオーバーゾーンをステージに配置します。EnemySpawnerの値は適当に変更しておいてください。

これでステージが完成しました!


次のページ→準備中…