Unityの地形の作り方
Unityでゲームを作る際、地面や起伏といった地形を作成する作業が必要になってくることが多い。
そこで今回はTerrainを使用した地形の作り方を紹介していく。
Unityの地形の作り方
テクスチャー素材の準備Terrainの使用方法
テクスチャー素材の適用方法
目次にもどる
テクスチャー素材の準備
地形を作る素材となるテクスチャー素材を準備する必要がある。
今回は以下のフリーアセット(2024年1月現在は無料)を使って説明を行っていく。
上の素材でもいいし、自分のお気に入りのテクスチャー素材でもいいのでインポートしておこう。
目次にもどるTerrainの使用方法
TerrainとはUnityの地形モデリング機能のことである。
Terrainの出し方は以下の通り。
ヒエラルキー欄で右クリック→3D Object→Terrainのように選択する。
これでTerrainのゲームオブジェクトが作成され、シーンビューやゲームビューを確認すれば以下のように地形の土台が作成されているのがわかる。
Terrainはデフォルトではサイズが大きすぎるので小さくしたい(サイズが大きすぎると動作が重くなる)。だが、インスペクター欄でTransformのScaleを変更してもサイズを変更できないので注意。
サイズを変更する場合、インスペクター欄のTerrainのコンポーネントで、5つあるアイコンのうち一番右にある「Terrain Settings」のアイコンを選択する。
アイコンの下の内容が切り替わるので確認する。Mesh Resolution(On Terrain Data)の項目で「Terrain Width」と「Terrain Length」の値が1000になっているのが確認できる。この値が大きすぎるので100に変更する。
横幅と奥行きが小さくなったのが確認できる。
同じくMesh Resolution(On Terrain Data)の項目でDetail Resolutionの値が1024の値となっているのが確認できる。この値は解像度を示しており値が高すぎるとやはり重くなる可能性がある。よって今回は半分の512に設定する(ゲームをより軽くしたいならさらに小さくしてもいい)。
続いてTerrainの5つのアイコンがある部分に戻り、左から2番目の「Paint Terrain」を選択する。
アイコンのすぐ下の項目で「Raise or Lower Terrain」を選択する(自分の場合はデフォルトでそうなっていた)。
Brushesの項目があるので、そこで使いたいブラシを選択する。
シーンビューを見て、Terrainのゲームオブジェクトにブラシで起伏をつけて地形を作っていく。
クリックするとその部分が盛り上がる。長押しするとその時間に応じて地形が大きく盛り上がっていく。
盛り上げた部分をへこませたい場合にはシフトボタン+クリック OR 長押しでOKだ。
また、Brush Sizeの値を変えることでブラシで影響を与える部分の大きさを指定できる。Opacityの値を変えることでクリック OR 長押しで盛り上がる大きさを指定できる。
作業をしつつ、ブラシの種類、Brush Size、Opacityを自分に合うように調整して好きなように地形を作ってみよう。
目次にもどるテクスチャー素材の適用方法
最初にインポートしたテクスチャー素材を作成した地形に適用する方法を紹介していく。
まずプロジェクトビューの任意の場所で右クリックし、Create→Terrain Layerのように選択する。
これでTerrain Layerが作成されるので今回は「Mountain」という名前にした。
「Mountain」のインスペクター欄のDiffuseの項目の右のSelectボタンを選択する。
使用するテクスチャーを選択する。今回はインポートした素材の中でGround textures pack/Ground 01/diffuse.toaのものを選択した。
Terrainのゲームオブジェクトのインスペクターを選択し、5つのアイコンのうち、左から2番目のアイコンを選択し、アイコンのすぐ下の項目を「Raise or Lower Terrain」から「Paint Texture」に変更する。
下の項目にTerrain Layersというものがあり、「Edit Terrain Layers」というボタンがあるので選択し、Add Layerを選び、先ほど作成した「Mountain」のTerrain Layerを選択する。
すると地形に色や質感をつけ、山のようなマップが作成できる。
以上のような地形の作り方をすれば簡単に起伏を作ることができる。以下のようにキャラクターを移動させることも可能だ。