CGBoxの一部の記事にはアフィリエイト広告が含まれております。
【Unity】Terrainを使って地形生成する方法
![](https://cgbox.jp/wp-content/uploads/2023/09/67b56144f58df74a6043a92ea79ab049-2.jpg)
こんにちは!Unityで地形を作る時、ひとつひとつオブジェクトを置いて作っていませんか?
小さいマップなら大丈夫ですが、大きなマップになってくると重たくなりますし何より手間ですよね。
UnityにはTerrainという地形を生成する機能が用意されています!
本記事ではそのTerrainを使って地形を生成する方法を解説していきます。
Terrainとは
![](https://cgbox.jp/wp-content/uploads/2023/09/26b3c947e1d52331ffa8c06c39088a83.jpg)
Terrainとは、地形生成に特化したモデリング機能です。
Unityエディタ上でペイントのように直感的に使うことができ、
簡単に山のような起伏のある地形を作ることができます。
地形の見た目を変えるテクスチャはアセットストアで無料で手に入りますし、
Terrainを使いこなせれば個人開発でも広大なマップを作ることができます。
Terrainの使い方
ここからは実際にTerrainで地形を作っていきましょう。
以下のような手順で作り方を解説していきます。
- Terrainを作成する
- 地形を作る
- 地形にテクスチャを設定する
- Terrainによる地形の当たり判定
Terrainを作成する
まずはTerrainを作成しましょう。
ヒエラルキー上で右クリック→3DObject→Terrainを選択します。
![](https://cgbox.jp/wp-content/uploads/2023/09/c68a28da97aced84f4d12f0e514acdda.png)
このようにTerrainが作成されます。
![](https://cgbox.jp/wp-content/uploads/2023/09/1ff70d8d5e814f06a329d18978042c55.png)
Terrainのインスペクターを開くと下の画像の赤線のところに、5つのアイコンがあると思います。
このタブでは左から順番に下のような設定ができます。
- 隣接するTerrainの新規作成
- Terrainの形状やテクスチャの設定
- 木などを編集
- 草などを編集
- Terrainのサイズなどの詳細設定
![](https://cgbox.jp/wp-content/uploads/2023/09/11868d235cb3dd8745d53bc2d3ecfd95.png)
さてここから地形を作っていくのですが、デフォルトのサイズでは少し大きくて扱いにくいです。
一番右の詳細設定タブを開いて、「Terrain Width」と「Terrain Length」を見てみると
デフォルトでは1000になっています。
ここを両方100に変更しましょう。
![](https://cgbox.jp/wp-content/uploads/2023/09/Animation16.gif)
これで扱いやすいサイズになりました。
![](https://cgbox.jp/wp-content/uploads/2023/09/dd824fc8f865d7ea9fcb2e0d624b415c.png)
地形を作る
Terrainが作成できたので、ここから山の地形を作ってみましょう。
地形を作成するには左から2番目の「Paint Terrain」のタブを開きます。
![](https://cgbox.jp/wp-content/uploads/2023/09/ee4be23aa60acabd95a482e28bcd6fee.png)
Paint Textureとなっているところをクリックして開きましょう。
山を作るには「Raise or Lower Terrain」を使います。
これはブラシで塗るように、地形の起伏を上げ下げして山を作ることができます。
![](https://cgbox.jp/wp-content/uploads/2023/09/1207d7307c70c2e3a92602c8f3d0abef.png)
Brushesのところで、起伏の形状を指定できます。
下のブラシの種類を試してみましょう。
![](https://cgbox.jp/wp-content/uploads/2023/09/e0a0f0b6cfb2b8d1858167a2d448229a.png)
シーンビューにマウスカーソルを持っていくと、このように作る形状が透明で表示されます。
この状態でクリックすると起伏を作ることができます。
![](https://cgbox.jp/wp-content/uploads/2023/09/c96c049b55fa1873c22db8d1d706d25b.jpg)
クリックで小さい起伏ができ、長押しすると大きい起伏ができるのですが、デフォルトの設定だと
少し押しただけで高くなりすぎてしまうかと思います。
![](https://cgbox.jp/wp-content/uploads/2023/09/Animation18.gif)
そんなときはOpacityの値を小さくしてみましょう。
Opacityの値を小さくすると地形の上昇幅も小さくなります。
![](https://cgbox.jp/wp-content/uploads/2023/09/98ee02a203688f284fe6d711df53cd5a.png)
Opacityを10に設定して試してみます。
先ほどよりもゆるやかな起伏の上昇になり、山が作りやすくなりました。
![](https://cgbox.jp/wp-content/uploads/2023/09/Animation19.gif)
また、起伏を下げたい時はShiftキーを押しながらクリックすることで下げることができます。
![](https://cgbox.jp/wp-content/uploads/2023/09/Animation20.gif)
これがブラシで「塗る」ように地形を作る方法です。
スタンプで「型押し」するように地形を作る機能も用意されていますので簡単に紹介します。
Raise or Lower TerrainからStamp Terrainに変更しましょう。
![](https://cgbox.jp/wp-content/uploads/2023/09/8bd4edc05ffdb843b06d661f6e453543.png)
スタンプを使う前に、Stamp Heightからスタンプの高さを指定しておきましょう。
Brushesを選んで、シーンビュー内でクリックすることで地形をスタンプすることができます。
![](https://cgbox.jp/wp-content/uploads/2023/09/Animation21-1.gif)
地形にテクスチャを設定する
地形の形を作れるようになったので、次はテクスチャを貼ってリアルな見た目にしていきましょう。
Terrainに使えるアセットはUnityアセットストアで無料で提供されています。
今回は下の「Terrain Textures Pack Free」を使います。
![](https://assetstorev1-prd-cdn.unity3d.com/key-image/b7c76a5b-3d56-4f31-8702-04d7e00e6444.jpg?v=1)
Terrain Textures Pack FreeをUnityにインポートします。
インポートできたら、Terrainのインスペクター内、PaintTextureの項目を選択します。
![](https://cgbox.jp/wp-content/uploads/2023/09/92f73755af8140346c91772a264e6967.png)
下のように、Edit Terrain LayersからCreate Layerを選択します。
すると先ほどインポートしたテクスチャーが表示されますので、Terrainに適用したいものを選びましょう。
これでテクスチャが設定できました。
![](https://cgbox.jp/wp-content/uploads/2023/09/Animation22.gif)
さらに、一部のテクスチャーを別のものにすることも可能です。
再びEdit Terrain LayersからCreate Layerを選択します。
先ほどとは別のテクスチャーを選択すると新しくレイヤーが追加されます。
追加されたレイヤーを選択してからシーンビューでクリックすると、新たなテクスチャーで塗ることができました。
![](https://cgbox.jp/wp-content/uploads/2023/09/Animation23.gif)
ちなみに、木も同じようにしてEditTreesから3Dモデルを選択して作ることができます。
![](https://cgbox.jp/wp-content/uploads/2023/09/19a2d94c30493391ccff3af0512a732c.png)
Terrain Textures Pack Freeには木のモデルが含まれていないので
木のアセットを別にインポートすれば作ることができます。
下の無料の木のアセットを使って木の生成も同じように試してみましょう!
![](https://assetstorev1-prd-cdn.unity3d.com/key-image/1eab65df-f07b-40b1-b4e1-3bca34ebf3c4.jpg?v=1)
Terrainによる地形の当たり判定
Terrainを作ると、Terrain Colliderコンポーネントが自動で追加されているはずです。
このColliderが作成したTerrainの地形に合わせて当たり判定をつけてくれます。
![](https://cgbox.jp/wp-content/uploads/2023/09/1dc28fe0c6915c21a1980b80bc1a286c.png)
試しにCubeを上空に置いて当たり判定を見てみましょう。
![](https://cgbox.jp/wp-content/uploads/2023/09/Animation24.gif)
確かに山の形状に合わせて当たり判定がついていますね。
自分で複雑な地形に当たり判定をつけるのは大変なので、Terrainの便利さが分かります。
地形データを取り込む
日本各地の地形データの3DモデルをUnityに取り込めるアセットが無料公開されています。
![](https://assetstorev1-prd-cdn.unity3d.com/key-image/d50fec1e-394a-4193-a48e-ffe7ce71ef16.jpg?v=1)
こちらの「PLATEAU SDK for Unity」は国土交通省が公開しているもので、
日本の街がテーマのゲーム開発やシミュレーションに使えるように作られています。
詳しい使い方については下の特集サイトから見ることができます。
![](https://unity-assetstorev2-prd.storage.googleapis.com/cdn-origin/images/logo.png?v=1)
おすすめアセット
地形の無料アセット
Terrain Toolkit 2017
![](https://cgbox.jp/wp-content/uploads/2023/09/dee14bc9ff34051dc414d0198e8c7707-1024x543.jpg)
![](https://assetstorev1-prd-cdn.unity3d.com/key-image/afdc8fa5-d6bd-4715-8c55-0d094d662843.jpg?v=1)
こちらはパラメータを調整するだけで、地形を自動生成してくれる無料アセットです。
Terrainの基本機能だけで地形を全て作ろうとすると、大きなマップだと大変です。
こちらのアセットを使えば、大まかな地形を自動生成で作り詳細部分を
Terrainの基本機能で調整する、といった効率的な地形の作り方ができますよ!
地形の有料アセット
Gaia 2021 – Terrain & Scene Generator
![](https://assetstorev1-prd-cdn.unity3d.com/key-image/ee201868-3fda-4439-bc2a-d3b781be55f7.jpg?v=1)
こちらは地形生成で最も有名といってもいいアセットのGaiaです。
Terrainの使い方をベースに地形を自動生成でき、草木や建物なんかも配置してくれます。
ポストエフェクトやライティングまでいい感じに設定してくれる便利アセットです。
まとめ
以上、Terrainを使って地形を生成する方法を解説してきました!
Terrainは最初は少し慣れが要りますが、使いこなせれば様々なマップを作ることができます。
アセットの力も借りながらマップを効率よく作っていきたいですね!