Version: 2018.4
Stamp Terrain
Brushes

Terrain Layers

Terrain (地形) に色と細かいディテールを作成するには、サーフェスにテクスチャを加えます。Terrain オブジェクトは一般的に大きいので、継ぎ目なく繰り返すテクスチャを使用し、それをサーフェス上にタイル状に並べるのが通常の方法です。繰り返すテクスチャは一般的にキャラクターの視点からは目立たない、地面近くにあります。 

1 つのテクスチャでも景色の背景レイヤーとして機能しますが、追加テクスチャでエリアをペイントして、草、砂漠、雪などの異なる地面の様子にすることができます。例えば、草の茂る田舎と砂浜の間を徐々に遷移させるには、変化可能な不透明なテクスチャを適用します。

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

Terrain Layer (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 Layer (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 で設定されたマテリアルと、現在使用されているレンダリングパイプラインに応じて、ここではさまざまなオプション、設定、UI が表示されます。

Inspector の Terrain レイヤーの設定
Inspector の Terrain レイヤーの設定

ビルトインレンダラーとテレインマテリアルに使用できるオプションは以下のとおりです。

  • Diffuse テクスチャ
  • Normal Map テクスチャ
  • Normal Scale
  • Mask Map テクスチャ
  • Channel Remapping 範囲
  • Specular カラー
  • Metallic 値
  • Smoothness 値
  • Tiling Settings

Diffuse

Diffuse (ディフューズ) テクスチャは、Terrain レイヤーの基本のカラーテクスチャ/カラーチャンネルを表します。

Normal Map

Normal Map (法線マップ) テクスチャには Terrain レイヤーの法線情報が含まれており、ライティングの計算ではこの情報が使用されます。法線マップテクスチャを割り当てずにTerrain Settings (Terrain 設定) でインスタンシングを有効にすると、Terrain は Terrain ハイトマップから生成された法線を使用します。法線マップテクスチャを割り当て、インスタンシングを有効にすると、Unity はハイトマップから生成された法線の代わりに法線マップテクスチャを使用します。たとえ、Terrain レイヤーに法線マップテクスチャを割り当てた場合でも、Terrain でインスタンシングを無効にすると、ビルトインの Terrain マテリアルは Terrain ジオメトリから生成された法線を使用します。

Normal Scale

Normal Map (法線マップ) テクスチャを割り当てると、Terrain Layer 設定で Normal Scale (法線スケール) と呼ばれる新しいフィールドが表示されます。この値は法線マップに存在する法線値のスケール係数として使用されます。値 0 は法線マップに格納されている法線が 0 スケールであることを意味し、値 1 は法線が完全にスケールまたは影響することを意味します。

インスペクターの Normal Scale フィールド
インスペクターの Normal Scale フィールド

Mask Map

HD レンダーパイプライン (HDRP) の一部である TerrainLit シェーダーは、この Mask Map (マスクマップ) テクスチャデータを使用します。カスタムの Terrain シェーダーは、ユーザー定義の目的にもこのテクスチャを使用する場合があります。

HDRP の TerrainLit シェーダーに関し、Mask Map テクスチャの RGBA チャンネルは以下に対応しています。

  • R — メタリック
  • G — アンビエントオクルージョン
  • B — 高さ
  • A — スムースネス (ディフューズ アルファは密度になります)

Channel Remapping

マスクマップテクスチャを割り当てると、Channel Remapping (チャンネルの再マッピング) が表示されます。Channel Remapping の横にある三角形をクリックしてメニューを展開し、マスクマップの RGBA チャンネルの最小値と最大値を表示できます。Unity はこれらの範囲を使用して、マスクマップテクスチャの各チャンネルの値を再マッピングします。

インスペクターの Channel Remapping の範囲
インスペクターの Channel Remapping の範囲

Specular

Terrain レイヤーのスペキュラーハイライトの色。

Metallic

Terrain レイヤーの全体的なメタリック値。範囲は 0 から 1 です。

Smoothness

Terrain レイヤー全体のスムースネス値。範囲は 0 から 1 です。

Tiling Settings

Terrain レイヤーが使用するすべてのテクスチャに適用される Tiing Settings (タイリング設定)。

  • Size — Terrain 空間のテクスチャのサイズとテクスチャのタイル数。
  • Offset — Terrain レイヤーの各テクスチャのサンプル位置に適用される基本オフセット。

Texture Painting

Unity は、風景全体に加えた最初の Terrain レイヤーを適用します。複数の Terrain レイヤーを加える場合は、Paint Texture ツールを使用して、Terrain に後続のテクスチャを適用します。

Terrain レイヤーなしで新しい Terrain タイルを加えてペイントすると、Unity は自動的に選択した Terrain レイヤーをその新しい Terrain タイルに追加します。これは最初に加えた Terrain レイヤーであるため、そのテクスチャはベースレイヤーになり、Terrain タイル全体を塗りつぶします。

Terrain InspectorBrushes には、使用可能なブラシと、その下にある Brush Size オプションと Opacity オプションが表示されます。これらのツールの詳細は、Terrain の作成と編集 を参照してください。

パフォーマンス

Terrain タイルに割り当てる Terrain レイヤーの数は、レンダラーのパフォーマンスに影響する場合があります。

ビルトインレンダラーと 軽量レンダラーパイプライン はそれぞれテクスチャパスごとに 4 つの Terrain レイヤーをサポートします。パス数に制限はありません。つまり、Terrain レイヤーを好きな数だけ使用することが可能ですが、パスが増えるごとに Terrain のレンダリングに要する時間が増加します。最高のパフォーマンスを得るには、Terrain タイルのそれぞれに対し Terrain レイヤー 4 つまでに制限してください。

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


  • 2019–01–29 編集レビュー を行って修正されたページ

  • 2018.3 で更新された機能

Stamp Terrain
Brushes