Version: 2022.2
言語: 日本語
Stamp Terrain
Brushes

Terrain レイヤー

Terrain Layer (Terrain レイヤー) は、Terrain (地形) のサーフェスの品質を定義します。Terrain レイヤーは、Terrain のマテリアルが Terrain のサーフェスを描画するために必要な テクスチャ やその他のプロパティを保管します。Terrain レイヤーはアセットであるため、複数の Terrain タイルに簡単に再利用できます。

Terrain (地形)の表面にテクスチャを追加して、色や細部を作成できます。通常、 Terrain (地形)ゲームオブジェクトは大きいので、表面にタイル状に並べてシームレスに繰り返すテクスチャを持つベースのTerrain (地形)レイヤーを使用するのが最適です。それぞれが異なるテクスチャを持つ複数のTerrain (地形)レイヤーを使用して、興味深い多様なTerrain (地形)サーフェスをビルドできます。

Terrain に適用する最初の Terrain レイヤーは、自動的にベース 基本のレイヤーになり、ランドスケープ全体に広がります。さらに、他の Terrain レイヤーを使用してエリアをペイントし、草、砂漠、雪などのさまざまなグループの地表を擬態できます。草が茂った田園地帯と砂浜の間の徐々に遷移させるには、可変の不透明度を持つテクスチャを適用すると良いでしょう。

砂のテクスチャを持つ Terrain
砂のテクスチャを持つ Terrain

Terrain レイヤーの作成

Terrain インスペクターで Terrain レイヤーを直接作成するには、Terrain インスペクターの上部にあるツールバーのペイントブラシアイコンをクリックし、ドロップダウンから Paint Texture を選択します。Terrain Layers セクションの一番下にある Edit Terrain Layers ボタンをクリックし、Create Layer を選択します。

Terrain インスペクターでレイヤーを作成
Terrain インスペクターでレイヤーを作成

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 レイヤーを追加するまで、デフォルトではチェッカーボードのテクスチャを使用します。

プロジェクトで Terrain レイヤーを作成したら、Edit Terrain Layers ボタンをクリックし、Add Layer を選択して Select TerrainLayer ウィンドウを開きます。Terrain Layer を Terrain に追加するには、このウィンドウで Terrain Layer をダブルクリックします。

Terrain レイヤーのプロパティ

Terrain Settings で設定されたマテリアルと、現在使用されているレンダーパイプラインに応じて、Inspector にさまざまなオプション、設定、UI が表示されます。

Inspector の Terrain レイヤーの設定
Inspector の Terrain レイヤーの設定
プロパティ 説明
Diffuse Diffuse (ディフューズ) テクスチャは、Terrain レイヤーの基本色テクスチャです。ディフューズテクスチャのアルファチャンネルには様々な用途があり、それは、Terrain のレンダリングに使用するアクティブなスクリプタブルレンダーパイプラインとシェーダーによります。

例えば、HD レンダーパイプライン (HDRP) とユニバーサルレンダーパイプライン (URP) は、Smoothness にアルファーチャンネルを使用します。ただし、Terrain に Mask Map (マスクマップ) テクスチャがある場合、それは密度の値にディフューズテクスチャは、Terrain レイヤーの基本色テクスチャです。ディフューズテクのアルファチャンネルを使用します。
Color Tint Diffuse テクスチャを割り当てると、 Color Tint という新しいフィールドが Terrain Layer の設定に表示されます。

** Color Tint** は、HDRP と URP で利用できる機能です。
Opacity as Density 通常のスプラットマップのウェイトやマスクマップの高さの値ではなく、Terrain レイヤーのディフューズテクスチャのアルファチャンネルに格納されている値を使って Terrain レイヤーをレンダリングするかどうかを指定します。

** Opacity as Density** は HDRP と URP で利用できる機能です。このオプションは、Terrain の Terrain Lit Material で Enable Height-based Blend オプションを無効にし、Terrain Layer にディフューズテクスチャとマスクマップテクスチャを割り当てると、各 Terrain レイヤーで利用可能になります。
Normal Map Normal Map (法線マップ) テクスチャには Terrain レイヤーの法線情報が含まれており、ライティングの計算ではこの情報が使用されます。

• 法線マップテクスチャを割り当てずに Terrain Settings でインスタンシングを有効にすると、Terrain は Terrain ハイトマップから生成された法線を使用します。

• 法線マップテクスチャを割り当てインスタンシングを有効にすると、Unity はハイトマップから生成された法線の代わりに法線マップテクスチャを使用します。

• たとえ、Terrain レイヤーに法線マップテクスチャを割り当てる場合でも、Terrain でインスタンシングを無効にすると、ビルトインの Terrain マテリアルは Terrain ジオメトリから生成された法線を使用します。
Normal Scale 法線マップテクスチャを割り当てると、Terrain Layer 設定で Normal Scale (法線スケール) と呼ばれる新しいフィールドが表示されます。この値は法線マップに存在する法線値のスケール係数として使用されます。値 0 は法線マップに格納されている法線が 0 スケールであることを意味し、値 1 は法線が完全にスケールされるまたは影響されることを意味します。

異なる Normal Scale 値の例と結果は以下の通りです。
Normal Scale = 0 • 展開した法線の値に 0 を乗算します。
• 法線の強度、つまり長さは 0 になり、ライティングの計算には影響しません。Terrain のメッシュ三角形はライティング計算にメッシュ法線を効果的に使用します。
Normal Scale = 1 • 展開した法線の値に 1 を乗算します。
• 法線の強さは 100% になります。
Normal Scale = 2 • 展開した法線の値に 2 を乗算します。
• 法線の強さは 200% になり、 Normal Scale が 1 の法線の 2 倍明瞭になります。
Normal Scale = –1 • 展開した法線の値に –1 を乗算します。
• 法線の強さは 100% になりますが、ネガティブです。つまり、法線の点は、Normal Scale が 1 の法線の反対方向になります。
Mask Map HD レンダーパイプライン (HDRP) とユニバーサルレンダーパイプライン (URP) の一部である TerrainLit シェーダーは、この Mask Map テクスチャデータを使用します。カスタムの Terrain シェーダーは、ユーザー定義の目的 (アンビエントオクルージョンやハイトベースのブレンディング) にもこのテクスチャを使用する場合があります。

HDRP と URP の TerrainLit シェーダーに対して、マスクマップテクスチャの RGBA チャンネルは以下のように対応します。
R メタリック
G アンビエントオクルージョン
B 高さ
A スムースネス (ディフューズアルファは密度になります)
Channel Remapping マスクマップテクスチャを割り当てると、Channel Remapping (チャンネルの再マッピング) が Terrain Layer 設定に表示されます。ヘッダーの横にある三角形をクリックしてメニューを展開し、マスクマップの RGBA の最小値と最大値を表示できます。Unity はこれらの範囲を使用して、マスクマップテクスチャの各チャンネルの値を再マッピングします。
Specular Terrain レイヤーのスペキュラーハイライトの色。
Metallic Terrain レイヤーの全体的なメタリック値。
Smoothness Terrain レイヤーの全体的なスムースネス値。
Tiling Settings Terrain レイヤーが使用するすべてのテクスチャに適用される Tiing Settings (タイリング設定)。
Size Terrain 空間のテクスチャのサイズとテクスチャのタイル数。
Offset Terrain レイヤーの各テクスチャのサンプル位置に適用される基本オフセット。

Texture のペイント

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 タイルのそれぞれに対し Terrain レイヤー 4 つまでに制限してください。

プロジェクトに HD レンダーパイプライン を使用する場合は、各 Terrain タイルに最大 8 つの Terrain レイヤーを追加することができ、システムはそれらをシングルパスでレンダリングします。パスを追加することはできません。8 つを超える Terrain レイヤーを加えると、それらは Unity エディターに表示されますが、ランタイムには無視されます。


  • 2021–01–27 修正されたページ

  • Density プロパティの Color Tint と Opacity の情報を更新しました。

TerrainLayer

Stamp Terrain
Brushes