Terrain (地形) に色と細かいディテールを作成するには、サーフェスにテクスチャを加えます。Terrain オブジェクトは一般的に大きいので、継ぎ目なく繰り返すテクスチャを使用し、それをサーフェス上にタイル状に並べるのが通常の方法です。繰り返すテクスチャは一般的にキャラクターの視点からは目立たない、地面近くにあります。
1 つのテクスチャでも景色の背景レイヤーとして機能しますが、追加テクスチャでエリアをペイントして、草、砂漠、雪などの異なる地面の様子にすることができます。例えば、草の茂る田舎と砂浜の間を徐々に遷移させるには、変化可能な不透明なテクスチャを適用します。
Terrain Layer (Terrain レイヤー) は、Terrain の指定したサーフェスを定義する情報のコンテナです。Terrain マテリアルが Terrain サーフェスを描画するために必要なテクスチャやその他のプロパティなどのデータを保管します。Terrain レイヤーは アセット であるため、複数の Terrain タイルに簡単に再利用できます。
Terrain インスペクターから Terrain レイヤーを直接作成するには、Terrain インスペクターの上部にあるツールバーのペイントブラシアイコンをクリックし、ドロップダウンから Paint Texture を選択します。Terrain Layers セクションの一番下にある Edit Terrain Layers ボタンをクリックし、Create Layer を選択します。
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 レイヤーを作成したら、Edit Terrain Layers ボタンをクリックし、Add Layer を選択して Select TerrainLayer ウィンドウを表示します。Terrain Layer を Terrain に追加するには、このウィンドウで Terrain Layer をダブルクリックします。
Terrain Settings で設定されたマテリアルと、現在使用されているレンダリングパイプラインに応じて、ここではさまざまなオプション、設定、UI が表示されます。
ビルトインレンダラーとテレインマテリアルに使用できるオプションは以下のとおりです。
Diffuse (ディフューズ) テクスチャは、Terrain レイヤーの基本のカラーテクスチャ/カラーチャンネルを表します。
Normal Map (法線マップ) テクスチャには Terrain レイヤーの法線情報が含まれており、ライティングの計算ではこの情報が使用されます。法線マップテクスチャを割り当てずにTerrain Settings (Terrain 設定) でインスタンシングを有効にすると、Terrain は Terrain ハイトマップから生成された法線を使用します。法線マップテクスチャを割り当て、インスタンシングを有効にすると、Unity はハイトマップから生成された法線の代わりに法線マップテクスチャを使用します。たとえ、Terrain レイヤーに法線マップテクスチャを割り当てた場合でも、Terrain でインスタンシングを無効にすると、ビルトインの Terrain マテリアルは Terrain ジオメトリから生成された法線を使用します。
Normal Map (法線マップ) テクスチャを割り当てると、Terrain Layer 設定で Normal Scale (法線スケール) と呼ばれる新しいフィールドが表示されます。この値は法線マップに存在する法線値のスケール係数として使用されます。値 0 は法線マップに格納されている法線が 0 スケールであることを意味し、値 1 は法線が完全にスケールまたは影響することを意味します。
HD レンダーパイプライン (HDRP) の一部である TerrainLit シェーダーは、この Mask Map (マスクマップ) テクスチャデータを使用します。カスタムの Terrain シェーダーは、ユーザー定義の目的にもこのテクスチャを使用する場合があります。
HDRP の TerrainLit シェーダーに関し、Mask Map テクスチャの RGBA チャンネルは以下に対応しています。
マスクマップテクスチャを割り当てると、Channel Remapping (チャンネルの再マッピング) が表示されます。Channel Remapping の横にある三角形をクリックしてメニューを展開し、マスクマップの RGBA チャンネルの最小値と最大値を表示できます。Unity はこれらの範囲を使用して、マスクマップテクスチャの各チャンネルの値を再マッピングします。
Terrain レイヤーのスペキュラーハイライトの色。
Terrain レイヤーの全体的なメタリック値。範囲は 0 から 1 です。
Terrain レイヤー全体のスムースネス値。範囲は 0 から 1 です。
Terrain レイヤーが使用するすべてのテクスチャに適用される Tiing Settings (タイリング設定)。
Unity は、風景全体に加えた最初の Terrain レイヤーを適用します。複数の Terrain レイヤーを加える場合は、Paint Texture ツールを使用して、Terrain に後続のテクスチャを適用します。
Terrain レイヤーなしで新しい Terrain タイルを加えてペイントすると、Unity は自動的に選択した Terrain レイヤーをその新しい Terrain タイルに追加します。これは最初に加えた Terrain レイヤーであるため、そのテクスチャはベースレイヤーになり、Terrain タイル全体を塗りつぶします。
Terrain Inspector の Brushes には、使用可能なブラシと、その下にある 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 で更新された機能