Terrain Layer (Terrain レイヤー) は、Terrain (地形) のサーフェスの品質を定義します。Terrain レイヤーは、Terrain のマテリアルが Terrain のサーフェスを描画するために必要なテクスチャやその他のプロパティを保管します。Terrain レイヤーはアセットであるため、複数の Terrain タイルに再利用できます。
Terrain の表面にテクスチャを追加して、色や細部を作成できます。通常、Terrain ゲームオブジェクトは大きいので、表面にタイル状に並べてシームレスに繰り返すテクスチャを持つベースの Terrain レイヤーを使用するのが最適です。それぞれが異なるテクスチャを持つ複数の Terrain レイヤーを使用して、興味深い多様な Terrain サーフェスをビルドできます。
Terrain に最初に適用した Terrain レイヤーは、自動的にベースレイヤーになり、ランドスケープ全体に広がります。他の Terrain レイヤーを使用してエリアをペイントし、草、砂漠、雪などのさまざまなグループの地表をシミュレートできます。草が茂った田園地帯と砂浜の間の徐々に遷移させるには、可変の不透明度を持つテクスチャを適用すると良いでしょう。
Terrain インスペクターで Terrain レイヤーを直接作成するには、Terrain Inspector の上部にあるツールバーのペイントブラシアイコンをクリックし、ドロップダウンメニューから Paint Texture を選択します。Terrain Layers セクションの一番下にある Edit Terrain Layers ボタンをクリックし、Create Layer を選択します。
オーバーレイから Terrain レイヤーを編集するには、以下のようにします。
を選択します。Materials Mode ツールは、Terrain Tools オーバーレイの終了時に表示されます。
を選択します。
Create Layer をクリックすると Select Texture2D ウィンドウが開きます。ここで、Terrain レイヤーの Diffuse (ディフューズ) チャンネルとして使用する画像を選択します。Normal Map (法線マップ) か Mask Map (マスクマップ) テクスチャを Terrain レイヤーに割り当てるには、Project ウィンドウで対応する Terrain レイヤーを選択し、その Inspector ウィンドウを使用します。
また、自動的に Terrain に関連付けられない Terrain レイヤーアセットを作成するには、Project ウィンドウを右クリックし、コンテキストメニューから Create > Terrain Layer を選択します。次に、新しい Terrain レイヤーのさまざまなプロパティを Inspector ウィンドウで設定します。
Terrain レイヤーの数がレンダリングのパフォーマンスに与える影響に関しては、レンダリングのパフォーマンスを参照してください。Terrain タイルに実際にペイントしない Terrain レイヤーを割り当てている場合でも、レンダリングのパフォーマンスに影響する場合があります。
最初は、Terrain には Terrain レイヤーが割り当てられていません。Terrain レイヤーを追加するまで、デフォルトではチェッカーボードのテクスチャを使用します。
プロジェクトで Terrain レイヤーを作成したら、Edit Terrain Layers ボタンをクリックし、Add Layer を選択して Select TerrainLayer ウィンドウを開きます。Terrain Layer を Terrain に追加するには、このウィンドウで Terrain Layer をダブルクリックします。
Terrain Settings で設定されたマテリアルと、使用されているレンダーパイプラインに応じて、Inspector にさまざまなオプション、設定、UI が表示されます。
| プロパティ | ||
|---|---|---|
| 説明 | ||
| Diffuse | Diffuse (ディフューズ) テクスチャは、Terrain レイヤーの通常色のテクスチャを表します。Diffuse テクスチャのアルファチャンネルにはさまざまな用途があり、Terrain を描画するために使用するアクティブなスクリプタブルレンダーパイプラインとシェーダーによって異なります。 例えば HD レンダーパイプライン (HDRP) とユニバーサルレンダーパイプライン (URP) は、滑らかさを表現するためにアルファチャンネルを使用しています。ただし、Terrain レイヤーに Mask Map テクスチャがある場合は、Density の値に対して Diffuse テクスチャのアルファチャンネルを使用します。 |
|
| Color Tint | Diffuse テクスチャを割り当てると、Color Tint という新しいフィールドが Terrain Layer の設定に表示されます。カラーピッカーフィールドをクリックし、使用する色を選択します。 色合い__は、HDRP と URP で利用できる機能です。| ||Opacity as Density| 通常のスプラットマップのウェイトや Mask Map の高さの値ではなく、Terrain レイヤーの Diffuse テクスチャのアルファチャンネルに格納されている値を使って Terrain レイヤーをレンダリングするかどうかを指定します。Unity はアルファチャンネルの値をレイヤーブレンディングのしきい値として使用します。 Opacity as Density__ は HDRP と URP で利用可能な機能です。このオプションは、Terrain の Terrain Lit Material で Enable Height-based Blend オプションを無効にし、Terrain Layer に Diffuse テクスチャと Mask Map テクスチャを割り当てると、各 Terrain レイヤーで利用可能になります。 |
|
| Normal Map | Normal Map テクスチャには、Terrain レイヤーの法線情報が含まれています。Unity はこの情報をライティングの計算に使用します。 • Normal Map テクスチャを割り当てずに Terrain Settings でインスタンシングを有効にすると、Terrain は Terrain ハイトマップから生成された法線を使用します。 • Normal Map テクスチャを割り当て、インスタンシングを有効にすると、Unity はハイトマップから生成された法線の代わりに法線マップテクスチャを使用します。 • たとえ、Terrain レイヤーに Normal Map テクスチャを割り当てた場合でも、Terrain でインスタンシングを無効にすると、ビルトインの Terrain マテリアルは Terrain ジオメトリから生成された法線を使用します。 |
|
| Normal Scale | Normal Map (法線マップ) テクスチャを割り当てると、Terrain Layer 設定で Normal Scale (法線スケール) と呼ばれる新しいフィールドが表示されます。この値は法線マップに存在する法線値のスケール係数として使用されます。値 0 は法線マップに格納されている法線が 0 スケールであることを意味し、値 1 は法線が完全にスケールまたは影響することを意味します。 さまざまな法線スケール値の例と結果: |
|
| Normal Scale = 0 | • 展開した法線値に 0 を乗算します。 • 法線の強度、つまり長さは 0 になり、ライティングの計算には効果がありません。Terrain 上のメッシュ三角形は、ライティングの計算にメッシュ法線を効果的に使用します。 |
|
| Normal Scale = 1 | • 展開した法線の値に 1 を乗算します。 • 法線の強度は 100% になります。 |
|
| Normal Scale = 2 | • 展開した法線値に 2 を乗算します。 • 法線の強度は 200% になり、法線スケールが 1 の法線と比較して 2 倍強調されます。 |
|
| Normal Scale = –1 | • 展開した法線の値に –1 を乗算します。 • 法線の強度は 100% のままですが無効になり、法線の点は、法線スケールが 1 の法線の反対の向きになります。 |
|
| Mask Map | HD レンダーパイプライン (HDRP) およびユニバーサルレンダーパイプライン (URP) の一部である TerrainLit シェーダーは、この Mask Map テクスチャデータを使用します。カスタムの Terrain シェーダーは、アンビエントオクルージョンや高さベースのブレンディングなど、ユーザー定義の目的でこのテクスチャを使用する場合もあります。 HDRP および URP の TerrainLit シェーダーでは、Mask Map テクスチャの RGBA チャンネルは以下に対応しています。 |
|
| R | メタリック | |
| G | Ambient Occlusion | |
| B | 高さ | |
| A | スムースネス (ディフューズアルファは密度になります) | |
| Channel Remapping | Mask Map テクスチャを割り当てると、Channel Remapping (チャンネルの再マッピング) が Terrain Layer 設定に表示されます。ヘッダーの横にある三角形をクリックしてメニューを展開し、マスクマップの RGBA の最小値と最大値を表示できます。Unity はこれらの範囲を使用して、Mask Map テクスチャの各チャンネルの値を再マッピングします。 | |
| Specular | Terrain レイヤーのスペキュラーハイライトの色。 | |
| メタリック | Terrain レイヤーの全体的なメタリック値。 | |
| Smoothness | Terrain レイヤーの全体的なスムースネス値。 | |
| Tiling Settings | Terrain レイヤーが使用するすべてのテクスチャに適用される Tiing Settings (タイリング設定)。 | |
| Size | Terrain 空間のテクスチャのサイズとテクスチャのタイル数。 | |
| Offset | Terrain レイヤーの各テクスチャのサンプル位置に適用される基本オフセット。 | |
Unity は、ランドスケープ全体に加えた最初の Terrain レイヤーを適用します。複数の Terrain レイヤーを加える場合は、Paint Texture ツールを使用して、Terrain に後続のテクスチャを適用します。
Terrain レイヤーなしで新しい Terrain タイルを加えてペイントすると、Unity は自動的に選択した Terrain レイヤーをその新しい Terrain タイルに追加します。これは最初の Terrain レイヤーであるため、そのテクスチャはベースレイヤーになり、Terrain タイル全体を塗りつぶします。
Terrain Inspector で Brushes には、使用可能なブラシと、その下に Brush Size オプションと Opacity オプションが表示されます。これらのツールの詳細は、Terrain の作成と編集を参照してください。
Terrain タイルに割り当てる Terrain レイヤーの数は、レンダラーのパフォーマンスに影響する場合があります。推奨される Terrain レイヤーの最大数は、プロジェクトが使用するレンダーパイプラインによって異なります。
プロジェクトでユニバーサルレンダーパイプライン (URP) またはビルトインレンダーパイプラインを使用する場合は、テクスチャパスごとに 4 つの Terrain レイヤーを使用できます。パスの数に制限はありません。つまり、Terrain レイヤーは数に制限なく使用できますが、パスが増えるごとに Terrain のレンダリングにかかる時間が長くなります。パフォーマンスを最大化するには、各 Terrain タイルを 4 つの Terrain レイヤーに制限します。
プロジェクトに HD レンダーパイプライン (HDRP) を使用する場合は、各 Terrain タイルに最大 8 つの Terrain レイヤーを追加することができ、システムはそれらをシングルパスでレンダリングします。パスを追加することはできません。8 つを超える Terrain レイヤーを加えると、それらは Unity エディターに表示されますが、ランタイムには無視されます。
2021–01–27
Density プロパティの Color Tint と Opacity の情報を更新しました
TerrainLayer