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

Terrain レイヤー

A Terrain Layer is an Asset that defines a Terrain’s surface qualities. A Terrain Layer holds Textures and other properties that the Terrain’s Material uses to render the Terrain surfaces. Because Terrain Layers are Assets, you can reuse them on multiple Terrain tiles.

You can add Textures to the surface of a Terrain to create coloration and fine detail. Terrain GameObjects are often large, so it’s best to use a base Terrain Layer with Textures that tile over the surface and repeat seamlessly. You can use multiple Terrain Layers, each with different Textures, to build up interesting, varied Terrain surfaces.

The first Terrain Layer you apply to a Terrain automatically becomes the base layer and spreads over the whole landscape. You can paint areas with other Terrain Layers to simulate different ground surfaces, such as grass, desert, or snow. To create a gradual transition between grassy countryside and a sandy beach, you might choose to apply Textures with variable opacity.

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

Terrain レイヤーの作成

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

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

To edit terrain layers from an overlay:

  1. In the Terrain Tools overlay, select Materials Mode Material Mode Menu button. Materials Mode tools display at the end of the Terrain Tools overlay.
  2. From the available Materials Mode tools on the Terrain Tools overlay, select Paint Texture Paint Texture.
  3. In the Tool Settings overlay, select Edit Terrain Layers.
Create Layer in Overlays
Create Layer in Overlays

Create Layer をクリックすると Select Texture2D ウィンドウが開きます。ここで、Terrain レイヤーの Diffuse (ディフューズ) チャンネルとして使用する画像を選択します。 Normal Map (法線マップ) か Mask Map (マスクマップ) テクスチャを Terrain レイヤーに割り当てるには、Project ウィンドウで対応する Terrain レイヤーを選択し、その Inspector ウィンドウを使用します。

また、自動的に Terrain に関連付けられない Terrain レイヤーアセットを作成するには、Project ウィンドウを右クリックし、コンテキストメニューから Create > Terrain Layer を選択します。次に、新しい Terrain レイヤーのさまざまなプロパティを Inspector ウィンドウで設定します。

For information about how the number of Terrain Layers affects rendering performance, see Rendering performance. Even assigned Terrain Layers that you don’t actually paint onto the Terrain tile might impact the rendering performance.

Terrain レイヤーの追加

最初は、Terrain には Terrain レイヤーが割り当てられていません。Terrain レイヤーを追加するまで、デフォルトではチェッカーボードのテクスチャを使用します。

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

Terrain レイヤーのプロパティ

Depending on the Material set in the Terrain Settings and the Render Pipeline in use, you might see different options and properties in the Inspector.

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 The Normal Map Texture contains the normal information for your Terrain Layer. Unity uses this information in lighting calculations.

• If you don’t assign a Normal Map Texture and enable instancing in the Terrain Settings, the Terrain uses the normals generated from the Terrain heightmap.

• If you assign a Normal Map Texture and enable instancing, Unity uses the Normal Map Texture instead of the normals generated from the heightmap.

• If you disable instancing on the Terrain, the built-in Terrain Material uses normals generated from the Terrain geometry, even if you assign a Normal Map Texture on the Terrain Layer.
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 レイヤーの最大数は、プロジェクトが使用する レンダーパイプライン によって異なります。

  • If your Project uses the Universal Render Pipeline (URP) or Built-in Render Pipeline, you can use four Terrain Layers per Texture pass, with no limit on the number of passes. This means that though you can to use as many Terrain Layers as you want, each pass increases the time spent rendering the Terrain. For maximum performance, limit each of your Terrain tiles to four Terrain Layers.

  • If your Project uses the High Definition Render Pipeline (HDRP), you can add up to eight Terrain Layers per Terrain tile, and the system renders them in a single pass. No additional passes are possible. If you add more than eight Terrain Layers, they appear in the Unity Editor but are ignored at run time.


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

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

TerrainLayer

Stamp Terrain
Brushes