どうも音無サノトです(^^)
週末のゲーム制作記事になります。
前回まではユニティちゃんを走らせたので、今度は地形を制作してその上を走らせてみようと思います。
進捗報告
- Terrain機能を学習し地形を制作した
作業内容
Unityには地形を生成できるTerrainという機能がついています。
それを使って簡単にステージを作ってみようと思います。
Terrainの追加
まず前回、ユニティちゃんをインポートしたプロジェクトに新しいシーンを作成します。
名前を「Unitychan_Terrain」にします。

HierarchyのCreateから3D Object > Terrain を選択します。

するとTerrainが追加されます。

Terrainの設定を見てみます。
Inspectorウィンドウにある歯車のマークのところで基本的な情報を見てみます。

赤枠で囲んだところが基本的な情報です。それぞれ次のようになります。
| 設定 | 内容 |
|---|---|
| Terrain Width | 地形の幅 |
| Terrain Length | 地形の長さ |
| Terrain Height | 地形の最大の高さ |
デフォルトでは1000平方メートルの地形ということになっています。
Terrainの名前を「Field」に変更しておきます。

Terrainの編集
次にこの地形に高低差をつけていきたいと思います。
ブラシのアイコンをクリックします。すると以下のようにいくつかのブラシが選択できます。

それぞれのブラシの概要は次のような感じです。
| ブラシ名 | 内容 |
|---|---|
| Raise or Lower Terrain | 地形の高低差をつける。クリックで隆起させ、Shift を押しながらで沈降させる。 |
| Paint Texture | 地面にテクスチャを塗ることができる。 |
| Set Height | 指定した高さに一定に高低差をつけることができる。 |
| Smooth Height | 高さを滑らかにする。 |
| Stamp Terrain | 指定した高さに、そのブラシの形をクリックでスタンプの様に隆起させる。 |
これらのブラシを使って地形を作成していきます。
Raise or Lower Terrain
クリックをしながらマウスを動かすことでブラシで山を描くように隆起させることができます。マウスをゆっくり動かすと高めの山を作れます。

Shift キーを押しながらで、沈降させることができます。

下の様に大まかに山の形を作りました。
向こう側に高い山があるイメージです。

Paint Texture
作成した地形にテクスチャを貼って質感を出していきます。
まず Asset Store で「Terrain Textures Pack Free」をダウンロードし、テクスチャを用意します。Asset Store を利用するため Unity のアカウントでログインする必要があります。
Unity は無料でも豊富な Assets があるのがいいところです(^^♪

ダウンロードが完了しますと、Download のところが Import に変わるので、そこをクリックします。
インポートが完了すると Assets フォルダに TerrainTexturesPackFree が追加されます。

Terrainのブラシツールを「Paint Texture」に変更し、Terrain LayersにあるCreate Lyaerをクリックします。

Select Texture2Dというウィンドウが出てきますので、先ほどインポートしたテクスチャを選択します。「grass」を検索して「GrassUV01」を選択します。

すると下のようにTerrain全体にテクスチャを貼りつけることができます。

AssetsフォルダにTerrain Layerが追加されるので名前を「Grass01」に変更し、「Terrain Lyaer」というフォルダを作ってその中に入れておきます。

今度はブラシで地面の色を変えてみましょう。
また先ほどと同じようにTerrain Layerを追加します。今度は「GroundCracked01」というテクスチャを選択します。

Terrain Layerの名前を「GroundCracked01」に変更してフォルダに入れておきます。

Terrain Layersで追加したレイヤーを選択。

お好みのブラシでTerrain上でクリックすれば、そのテクスチャを塗ることができます。

Set Height
Set Heightのブラシを使うとHeightで指定した高さに均一に盛り上げることができます。
逆に盛り上げた部分を設定した高さまで低くすることもできます。
ちなみにHeightに数値を指定して、隣のFlattenボタンを押すとTerrain上をその高さにすることができます。
やり直したいときとかは0を指定してFlattenを押す方がUndoするより速いかもしれません。

なにもない地面を均一に隆起させました。

Smooth Height
Smooth Heightブラシを使って高低差を滑らかにします。

Blur Directionの数値でぼかしの具合を変えられます。
実際に数値を変えて実験したところ、マイナス値の方がより滑らかになりました。

Stamp Terrain
Stamp Terrainブラシはそのブラシの形をスタンプみたいにペタンと押せる機能です。
今回はStamp Heightを5にして星形の形を押してみました。

するとこんな感じ。

これで一通りのブラシの使い方は学んだかなと思います。
木や草などをいれる
今度は地形に木や草をいれていきます。
まずは木から。
Unity Asset Storeから「Realistic Tree 9」をインポートします。

インポートが終わったらTerrainのProjectウィンドウで木のアイコンのところをクリックします。
そこのEdit Trees...を選択してAdd Treeをクリックします。

Add Treeのウィンドウが開くので、そこにインポートしたTree9の中にあるプレハブを選択してドラッグ&ドロップします。

完了したら右下のAddを押しましょう。
これで選択したプレハブがTreesに追加されます。

後はブラシで塗っていけば木が生成されます。

それぞれ以下の項目で設定を変更できます。
Brush Size:ブラシのサイズ
Tree Density:木が生成される密度

さらにTree Heightのランダムのチェックを外して自分で値を設定すれば大きさも変えられます。

下の様な感じで大きさが変わります。
試しに10とか大きい値を入れてみたのですが勝手に2に設定されてしまいました。
2倍の大きさまでが最大の値の様です。

同じ要領で別の木も追加していきます。

今度は草を入れていこうと思います。
Unity Asset Storeで「Grass Flowers Pack Free」をインポートします。

インポートが完了したら今度はお花のアイコンを選択します。
下の方にあるEdit Detairs...からAdd Grass Textureをクリックします。

するとAdd Grass Textureウィンドウが開くので、そこにインポートしたGrassFlowersのテクスチャをドラッグ&ドロップで設定し右下のAddをクリックします。

するとDetaisに「grass01」が追加されました。

後はお好みのブラシで画面に描画していきます。
このときの注意として、草が小さすぎて画面に描画されていないように見えますが、拡大されるとちゃんと描画されています。
何回も塗ると大量の草を発生させるので動作が重くなるので気を付けてください。

ちゃんとみたいならMain Cameraを移動させて確認するか、キャラクターを設置してその場所まで歩いていくのがいいかと思います。

他に方法あるのかな・・・?
次回予告
- 地形制作の続き
- ユニティちゃんを走らせてみる
今回までで大まかな地形の制作は学んだのですがもう少しだけ続きをやっていき、その後にユニティちゃんを召還してみようと思います。
本日は以上となります。最後まで読んでいただきありがとうございました!