Terrain エディターの操作
Tutorial
·
Beginner
·
+10XP
·
60 mins
·
(14)
Unity Technologies

Unity の Terrain (地形作成) エディターを使用すると、詳細でリアルな地形を作成することができます。用意されている Terrain ツールを使えば、最適なランドスケープを簡単に効率よくデザインすることができます。このチュートリアルでは、特定のツールやテクニックを使用して地形を作成し、カスタマイズする方法を学びます。景観形成、樹木の追加、そしてブラシを使ってテクスチャ、樹木、草のようなディテールを地形に加えることができます。このチュートリアルを終える頃には、地形作成エディターがいかに強力で多機能であるか、また、プロジェクト用にカスタマイズされた地形をいかに簡単に作成できるかをしっかりと理解していることでしょう。
Languages available:
1. プロジェクトの準備
まず、新規に作成した Universal Render Pipeline(URP)プロジェクトに空のシーンを作成します。ただし、Terrain エディターは 3D、HDRP、URP のいずれのプロジェクトのテンプレートでも作業が可能です。なお、2D プロジェクトのテンプレートでは、地形エディターは使用できません。保存した自分のプロジェクトで練習することをお勧めします。それ以外の場合は、Unity Hub から新規に URP プロジェクトを作成して、このチュートリアルに従ってください。まず、新しい Terrain ゲームオブジェクトを作成しましょう。
2. Terrain (地形) の作成
Unity で Terrain エディターを使用するには、まず Terrain ゲームオブジェクトを作成する必要があります。
1. トップメニューのドロップダウンから、GameObject > 3D Object > Terrain の順に選択します。これにより、シーンに新しい Terrain ゲームオブジェクトが追加されます。

地形を作成すると、対応する Terrain アセットが Project ウィンドウに追加されます。

地形は大きくて平らな平面になります。Hierarchy ウィンドウで Terrain ゲームオブジェクトを選択すると、Inspector に Terrain ツールが表示されます。

Inspector の Terrain コンポーネントにある 5 つのアイコンのツールバーには、隣接する地形を作成したり、地形の特徴を彫刻のように造形したり、地形にテクスチャマップをペイントしたりするためのオプションが用意されています。木だけでなく、草や花、岩などのディテールを追加することができます。また、選択した地形の一般的な設定を変更することもできます。
3. 隣接する地形の作成
地形のデフォルトサイズは、メッシュの解像度が正方形で、縦横が 1000 メートルとなっています。 タイル状のグリッドシステムを使って地形を拡張したい場合は、Create Neighbor Terrains ボタンを使って拡張することができます。
1. まず、Inspector の Terrain ツールバーの最初のボタンである Create Neighbor Terrains ボタンを選択します。次に、Scene ウィンドウにマウスを置くと、新しいグリッドが表示され、地形の北、南、東、西を示す 4 つの象限が表示されています。

2. Scene ウィンドウで、隣接する象限のアウトラインを選択すると、 隣接する Terrain (地形) を追加することができます。地形が新たに作成されると、それに付随するゲームオブジェクトが Hierarchy 内に徐々に作成されていきます。

この技術を使えば、プロジェクトに必要な広さや狭さの範囲で、広大な範囲の地形作成タイルを作成することができます。このチュートリアルでは、隣接する Terrains を 2×2、つまり 2000 × 2000m の偶数グリッドに設定しています。

4. 地形のスカルプティングを実行
Paint Terrain ツールには、スカルプティングからスムージング、追加エフェクトの適用まで、さまざまな機能をご用意しております。ここでは、Paint Terrain ツールについて、さらに詳しくご紹介します。
1. Terrain ツールバーの 2 番目のボタンである Paint Terrain ツールを選択します。「Raise or Lower Terrain」というタイトルのドロップダウンメニューを選択すると、利用可能なオプションのリストが表示されます。このドロップダウンメニューでは、さまざまなペイントやスカルプティングのツールにアクセスできます。まず、Raise or Lower Terrain ツールのオプションを見てみましょう。

Scene ウィンドウでは、マウスカーソルがどこにあっても、円筒形のオブジェクトがホバリングしているのが見えます。これは、地形のスカルプティングを可能にするデフォルトのブラシです。

2. Scene ウィンドウで円筒形のブラシを有効にして、左クリックで選択し、マウスでドラッグして地形を持ち上げます。ブラシの感度が非常に高く、地形の高さが非常に早く上がることがすぐにわかるでしょう。ブラシの微調整は次のステップで行いますが、とりあえず Shift キーを押しながらマウスで左クリックすると、地形が地面の高さまで下がります。

3. ブラシの設定を微調整して、ブラシの強さを下げてみましょう。Inspector で Opacity を 15 に下げます。これはブラシの強さに影響し、マウスでスカルプティングしたときに地形を盛り上げる速さを遅くします。さらに、Brush Size を 50 にしてみましょう。これで、Scene ウィンドウのブラシカーソルの形が変わり、幅広で平らな円になりました。Paint Terrain ツールでマウスをクリックし、地形に沿ってドラッグして、地形のスカルプトを続けます。地形をより正確にコントロールしながら、効果的にスカルプトしたり、盛り上げたりすることができます。

4. 次に、ブラシの形状を変えてみましょう。Inspector の内蔵ブラシのパレットから別のブラシを選択し、さまざまなブラシの形状でスカルプティングする練習をします。Opacity や Brush Sizes の調整も練習しておきましょう。

5. Brush Size や Opacity の違いによる様々なブラシ形状の組み合わせの可能性を試し、ユニークな形の山脈を造形します。ヒントとしては、キーボードの開始括弧と閉じ括弧 ( [ ] ) を使って、スカルプティング中にブラシのサイズを大きくしたり小さくしたりする練習をしてください。

6. 地形を特定の高さにスカルプトするには、 Terrain Brush メニューのドロップダウンを選択し、Set Height を選択します。次に、Height の値を 55(または同様の高さの値)に設定します。ブラシの形状、サイズ、不透明度を選択し、シーン内にカーソルを置きます。次に、地形の上をクリックアンドドラッグして、その特徴をスカルプします。Terrain の地形は、標高を特定の Set Height の値に制限して、台地になります。これは峡谷、河川敷、岩盤などを作成する際に特に有効です。

7. 地形の粗いエッジを滑らかにしたり、地形を滑らかにするには、Terrain Brush メニューのドロップダウンを選択し、Smooth Height を選択します。いずれかのブラシを使ってスカルプティングすると、地形のギザギザしたエッジが徐々に滑らかになります。Opacity を上げると、スカルプティング時の滑らかさが増します。

8. Stamp Terrain ツールを使って地形を調整するには、Terrain Brush メニューのドロップダウンを選択し、Stamp Terrain を選択します。Stamp Terrain を使用してブラシでスカルプティングすると、地形は Stamp Height プロパティで指定された設定の高さに適合しますが、既存の地形の高さのある標高地形の一部を残し、両方の高さが混ざった状態の形状を作成します。Stamp Height を高めに設定し、シーンにカーソルを置いて、マウスを 1 回クリックしてスタンプを適用します。

5. 地形テクスチャの概要
Paint Texture ツールを使用すると、詳細でリアルなテクスチャを地形にペイントすることができます。Paint Texture ツールは、マテリアルレイヤーを使って地形の表面に直接テクスチャをペイントすることができます。複数のマテリアルレイヤーを組み合わせて積み重ねることで、非常に詳細なテクスチャを実現することができます。地形は非常に大きくなることがあるため、マテリアルテクスチャは通常、シームレスなエッジを持つタイルとして用意されており、不必要に大きなイメージのマテリアルを使用せずに、ランドスケープ全体に繰り返しパターンを描くことができます。地形用のサンプルテクスチャマテリアルをセットアップするには、自分でイメージテクスチャを用意するか、サンプルマテリアルをプロジェクトの Assets フォルダーにダウンロードする必要があります。ここでは、アセットストアからダウンロード可能なサンプルテクスチャを使用します。
6. サンプルテクスチャを使ってみよう
マテリアルテクスチャのアセットをプロジェクトに導入するには、様々なオプションがあります。このチュートリアルでは、「Standard Assets」と呼ばれるおなじみの方法で、アセットストアからサンプルテクスチャをダウンロードしました。いくつかの Standard Assets フォルダーはプロジェクトに役立ちますが、必要としない追加項目もあります。そのため、地形に関連する選択したフォルダーのみをインポートします。
1. トップメニューのドロップダウンから、 Window > Asset Store と選択してウィンドウを開きます。
2. 「Standard Assets」を検索して選択し、Import を選択します。

3. Import Unity Package のポップアップウィンドウが表示されます。すべての三角形を折りたたみ、すべてのチェックボックスの選択を None にして解除します。次に、Environment フォルダーの SpeedTree フォルダーと TerrainAssets フォルダーのみを選択して、Import を選択します。

これで、地形のテクスチャを含むサンプルの環境アセットを利用する準備が整いました。
7. 地形のテクスチャのペイント
Terrain Layers を使って、地形にテクスチャをペイントしていきます。
1. Hierarchy ウィンドウで Terrain を選択した状態で、Inspector の Paint Terrain のペイントブラシツールを選択し、ドロップダウンメニューのオプションを Paint Texture に設定します。Edit Terrain Layers ボタンを選択し、Create Layer を選択します。

2. プロジェクトに保存されている 2D アセットの全コレクションを含む Select Texture2D のポップアップウィンドウが表示されます。検索フィールドに「albedo」と入力して検索すると、地形の 2D サンプルの表面テクスチャが整理されて表示されます。「GrassRockyAlbedo」というラベルの付いたテクスチャを選択します。

3. GrassRockyAlbedo テクスチャが、選択された地形に Terrain レイヤーとして均一に追加されました。

4. 同じ Terrain レイヤーを他の隣接する Terrain 象限に適用するには、まず Hierarchy ウィンドウで Terrain tile ゲームオブジェクトを選択し、Inspector の Edit Terrain Layers ボタンを選択し、Add Layer を選択します。

5. Select TerrainLayer のポップアップウィンドウが表示されます。レイヤーを選択する際には、どのレイヤーにすでに表面テクスチャが関連付けられているかを判断して、該当するレイヤーを選択します。なお、このレイヤーには 1 つの表面テクスチャしか割り当てられていませんが、このチュートリアルの後のステップで、レイヤーに追加のテクスチャを追加します。

6. 引き続き、残りの各 Terrain に Terrain レイヤーを追加します。

7. 地形にズームインして、テクスチャの詳細をより明確に表示します。繰り返されるタイル状のパターンを識別できるようになったことに注目してください。

8. 追加の表面テクスチャを適用して、地形にさらに詳細をペイントしましょう。最初に Edit Terrain Layers ボタンを選択し、次に Add Layer メニューを選択し、最後に表面テクスチャを追加するという先ほどの手順を繰り返して、 GrassHillAlbedo、CliffAlbedo、SandAlbedo のテクスチャを追加します。

9. Terrain レイヤーを選択して、地形に表面テクスチャの組み合わせをペイントする練習をします。Brush Size と Opacity を調整して、詳細でユニークなブレンドを実現してください。

8. 樹木と詳細ブラシの使用
Tree ツールは、IDV Inc. のサードパーティ製品である「SpeedTree」を認識し、あらかじめ Tree (樹木) のアセットとモデリングソフトウェアを提供しています。これらのブラシを使うことで、樹木や葉、草、岩などを地形の上に直接ペイントすることができ、オブジェクトモデルを個別に配置する作業を軽減することができます。SpeedTree アセットは、標準アセットに含まれており、あらかじめプロジェクトにインポートされています。また、アセットストアでは、市販の樹木や植生のパッケージを販売しています。
9. SpeedTree を使ってみる
アセットストアから無料の SpeedTrees パッケージをダウンロードしてインストールし、パッケージマネージャーを使ってアセットをプロジェクトに直接インポートすることで、あなたのプロジェクトで SpeedTree モデルを無償でお試しいただけます。
1. Webブラウザから、Unity アセットストアで無料の SpeedTrees パッケージを検索し、Add to My Assets ボタンを選択してください。

2. パッケージマネージャーから、まず Download ボタンを選択し、ダウンロードが完了したら Import ボタンを選択します。最後に、Import Unity Packages のポップアップウィンドウから再度 Import ボタンを選択すると、SpeedTrees Package がプロジェクトに保存されます。

SpeedTrees を地形の上にペイントする前に、まず SpeedTrees のマテリアルを再生成し、Universal Render Pipeline(URP)プロジェクトで動作するようにする必要があります。これはちょっとした調整で簡単にできます。
3. Project ウィンドウの Assets フォルダ内にある Free_SpeedTrees フォルダーに移動します。次に、「Broadleaf_desktop.spm」という名前の最初の樹木のアセットを選択します。 Inspector で Apply & Generate Materials ボタンを選択します。

4. 前のステップを繰り返して、Broadleaf_Mobile、Conifer_Desktop、Palm_Desktop という名前の残りの Trees マテリアルを再生成します。これで、地形の上に樹木を適用する準備が整いました。
10. Paint Trees ツールの使用
Paint Trees ブラシツールは、Paint Terrain ブラシツールと同じように動作しますが、ブラシを動作させるためには、まず樹木のメッシュを定義する必要があります。
1. Hierarchy ウィンドウで Terrain を選択した状態で、Terrain ツールバーの 3 番目のボタンである Paint Trees ツールを選択します。Edit Trees ボタンを選択して、ドロップダウンメニューから Add Tree を選択します。

2. Add Tree のポップアップウィンドウが表示されます。Tree Prefab フィールドの右側にある Object Loader の丸いボタンを選択して、樹木のモデルを選択します。

3. Select GameObject のポップアップウィンドウが表示されます。「Broadleaf_Desktop」というラベルの付いた樹木のメッシュを選択し、Add Tree ウィンドウの Add ボタンを選択して、Paint Trees ブラシツールに木のモデルを読み込みます。

4. これで、地形の上に樹木をペイントする準備ができました。Brush Size と Tree Density の設定を調整して、樹木を配置する密集度またはまばらさを決定します。また、Random Tree Height のチェックボックスを選択し、スライダーの範囲を調整することで、ランダム性の範囲を広くしたり狭くしたりします。各樹木がランダムに回転して配置されるように、Random Tree Rotation のチェックボックスを有効にしておき、最後にスライダーを調整して樹木の Color Variation を増減させます。Scene ウィンドウの地形の上にカーソルを置いた状態で、マウスをクリックおよびドラッグして、木を選択的に地形の上にペイントします。Shift キーを押しながらペイントすると、樹木が削除されます。

5. Brush Size と Tree Density の値を調整を行い、森や列の木立をペイントする練習をします。

11. ディテールのペイント
Paint Details ブラシツールは、Paint Trees と Terrain ブラシツールを Paint Details ブラシツールとほとんど同じように動作しますが、ブラシを動作させるためには、同様にまず詳細メッシュを定義する必要があります。この例では、草のディテールをペイントします。
1. Hierarchy ウィンドウで Terrain を選択した状態で、Terrain ツールバーの 4 番目のボタンである Paint Details ツールを選択します。Edit Details ボタンを選択して、ドロップダウンメニューから Add Grass Texture を選択します。

2. Add Grass Texture のポップアップウィンドウが表示されます。Detail Texture フィールドの右にあるObject Loader の丸いボタンを選択して、草のテクスチャを選択します。

3. Select Texture2D のポップアップウィンドウが表示されます。検索フィールドに「grass」と入力して、「GrassFrond01AlbedoAlpha」というラベルの付いた草のメッシュを選択します。次に、Add Grass Texture ウィンドウの Add ボタンを選択して、Paint Details ブラシツールに草のテクスチャを読み込みます。

4. これで、草のテクスチャを地形にペイントする準備が整いました。Brush Size と Target Strength の設定を調整して、草のテクスチャのサイズと密度を設定します。Scene ウィンドウの地形にカーソルを置いた状態で、マウスをクリックおよびドラッグして、草のテクスチャを地形に選択的にペイントします。ディテールを削除するには、Shift キーを押しながらペイントします。

12. Terrain 設定ツール
Terrain Settings では、地形の特徴を確認したり、地形の調整を行うことができます。
1. Hierarchy ウィンドウで Terrain を選択した状態で、Terrain ツールバーの 5 番目で最後のボタンである Terrain Settings ツールを選択します。

このチュートリアルでは、このセクションを詳しく説明しませんが、Basic Terrain のカテゴリーを含め「地形」には調整や変更が可能な追加設定(Tree & Detail Objects、Wind Settings、Mesh Resolution、Holes Settings、Texture Resolutions、Lighting など)があることがお分かりいただけると思います。.
13. 次のステップ
Terrain エディターは、広大で詳細、複雑で設定可能な地形のランドスケープを素早く作成できる強力なツールです。練習すれば、丘、山、高原、谷などを簡単に創造的に造形できるようになります。スカルプティングやペイント、テクスチャの追加など、ユニークで多様な地形の作成にチャレンジしてみてください。ほんの少しの努力で、あなたのランドスケープはリアルでクリエイティブな生き生きとした地形になるでしょう。