Terrain (地形) は、草の塊や他の小さなオブジェクト (岩など) にその表面を覆われている場合があります。Unityは、必要な LOD (Level of Detail) とパフォーマンスに応じて、テクスチャ化したクアッドや完全なメッシュを使用してこれらのオブジェクトをレンダリングします。現在、Grass とその他のディテールは、ビルトインレンダリングパイプライン と ユニバーサルレンダーパイプライン (URP) でのみ機能し ます。
テクスチャ化したクワッドの Billboard プロパティーを有効にすると、自動的にカメラを向くようにすることができます。これは、ゲーム開発で草を効果的に表現するためのとても一般的な方法です。
ディテールのメッシュに対しては、Render Mode プロパティーを Vertex Lit か Grass のいずれかに設定します。
草とディテールのペイントを有効にするには、ツールバーの Paint Details ボタンを選択します。
最初は、Terrain に利用できる草やディテールはありませんが、Inspector ウィンドウで Edit Details ボタンをクリックすると、Add Grass Texture と Add Detail Mesh オプションが表示されます。いずれかのオプションを選択すると、ウィンドウが表示され、Terrain をペイントするアセットの選択ができます。
Grass のウィンドウは以下のようになっています。
Detail Texture は草を表現するテクスチャです。テクスチャは Asset Store からテクスチャをダウンロードしたり、独自のテクスチャを作成することができます。テクスチャは空白部分のアルファ値を 0 に設定した小さな画像です。“草” は総称にすぎません。テクスチャを使って花や、有刺鉄線コイルのような人工的なオブジェクトを表現することも可能です。
Min Width (幅の最小値)、Max Width (幅の最大値)、Min Height (高さの最小値)、Max Height (高さの最大値) は、生成される草の塊のサイズの上限と下限を指定します。本物らしく見せるために、草はベアーパッチ (はげた部分) が散在するランダムなノイズまじりの模様で生成されます。
Noise Spread 値は、ベアーパッチと草の多いパッチのおおよそのサイズを制御します。値を大きくすると、指定した領域内のばらつきがさらに多くなります。ノイズは実際は パーリンノイズ アルゴリズムを使って生成され、Noise Spread は、Terrain とノイズ画像の X、Y 位置間に適用されるスケールを示します。草の別パッチは、周辺部よりも中心部でより “健康” になるように考慮されており、 Healthy Color (健康的な色) と Dry Color (乾燥色) で設定された色は草の健康度を示します。
最後に、Billboard オプションを有効にすると、草の画像は常に カメラ を向くように回転します。これは、草の密集した草原を表示したい場合に便利です。なぜなら、密集した草は 2 次元であり、側面から見えないからです。ただし、草がまばらな場合には、個別の草の塊が回転するのが判ってしまうので、奇妙な効果が発生してしまいます。
岩石などのディテールメッシュの場合、ウィンドウは次のようになります。
Add Detail Mesh を使用して、プロジェクトからプレハブを選択します。Unity は Min Width (幅の最小値) と Max Width (幅の最大値) の範囲と Min Height (高さの最小値) と Max Height (高さの最大値) の範囲をランダムにスケールします。Unity は X 軸と Z 軸の両方に幅のスケールを使用し、Y 軸には高さのスケールを使用します。 Noise Spread、Healthy Color、Dry Color の値は、草の場合と同じように機能します。
Render Mode を Vertex Lit または Grass に設定できます。
2019–11–25 修正されたページ
レンダリングパイプラインに関する情報を追加