SpeedTree
Wind Zone

草とその他の詳細について

terrain システムは、その表面を覆う草の茂みや、岩のような他の小さなオブジェクトを作成できます。草は個々のかたまりを表す 2D 画像を使ってレンダリングされます。一方、他の詳細を表すオブジェクトは標準のメッシュから生成されます。

草を加えた地形
草を加えた地形

草やその他の詳細を加える

ツールバーの details ボタンで草/詳細のペインティングができます。

最初は、terrain が利用できる草や詳細はありませんが、インスペクターで Edit Details ボタンをクリックすると、表示されるメニュー上に Add Grass TextureAdd Detail Mesh オプションが表示されます。ウィンドウが表示され、terrain に追加するアセットの選択ができます。

grass のウィンドウはこのようになっています。

Add Grass Texture ウィンドウ
Add Grass Texture ウィンドウ

Detail Texture は草を表現するテクスチャです。2–3 の適切なテクスチャがアセットストアからダウンロード可能な Unity の Standard Assets に含まれています。また、ユーザー自身で作成することも可能です。テクスチャは単純に、空白部分のアルファを 0 に設定した小さな画像です。(もちろん “Grass” はただの総称にすぎません。画像を使い花、藪、そしておそらく、有刺鉄線コイルのような人工的なオブジェクトを表現することも可能です。)

Min WidthMin HeightMax Width そして Max Height 値は、生成された草の塊のサイズ上限と下限を指定します。本物らしくみせるために、草はしみのちらばりなどのランダムなノイズまじりの模様で生成されます。

Noise Spread 値は、もう一つ別のパッチのおおよそのサイズを制御します。値を高くすると、設定されたエリアがよりバリエーション豊かになります(技術メモ:ノイズは実際は Perlin noise を使って生成されます。地形とノイズ画像の x、y 位置のスケーリングを参照して、ノイズが広がります)。草の別パッチは、周辺部よりも中心部でより “健康” になるように考慮されており、 Healthy/Dry Color 設定により、カラーを使って草の健康度を表示できます。

最後に、 Billboard オプションが有効の場合、草画像は常に回転します。ですから、常にカメラに正面を向けることになります。このオプションは密集した草原を表現したい場合に便利ですが、草が側面から見える可能性が無くなるため、平面であることがはっきり判ってしまいます。ただし、草がまばらな場合には、個別に回転するのが明白に判ってしまうので、少し奇妙な効果が発生してしまいます。

岩など詳細なメッシュは、選択ウィンドウは以下のとおりです。

Add Detail Mesh ウィンドウ
Add Detail Mesh ウィンドウ

Detail プロパティーは、プロジェクトからプレハブを選択して使用され、個々のインスタンスは Random WidthRandom Height の値によってスケールされます。Noise SpreadHealthy/Dry Color の値は草でおこなったのと同様な動作をします (岩のようなオブジェクトに適用したときは “healthy” の意味が多少広範囲になりますが)。Render ModeGrassVertex Lit を設定することができます。Grass モードでは、シーン内の詳細オブジェクトのインスタンスは、グラステクスチャのように平らに 2D 画像に収められます。Vertex Lit モードでは、詳細オブジェクトはシーン内でソリッドな、頂点リットオブジェクトのようにレンダリングされます。

SpeedTree
Wind Zone