初めにマスクを作成します。
Height Fieldで作成した地形にHeightField mask by Featureそ接続します。
[HeightField mask by Feature]
このノードは、山と谷、雪が配置される領域、樹木が成長する領域を分離するのに便利です。
ノードには、マスクを作成するために使用できるいくつかの異なる基準があります。 複数の基準がオンの場合、最終マスクは異なる機能のマスクが交差した部分になります。
Mask by Slope
地形の勾配(スロープ)に基づいてマスクを生成します。
Mask by Height
地形の高さに基づいてマスクを生成します。
Mask by Curvature
最小曲率値と最大曲率値に基づいてマスクを作成します。
Mask by Direction
特定の地点で地形面が直面する「水平」方向に基づいてマスクを作成します。
今回はSlopeとHeightを組み合わせて樹木を生やす部分のマスクを作成しました。
このままだと単なるHFのマスクでしかないので、これを1つのレイヤーとしてコピーします。
ノードとしてはHeighrField Copy Layerを追加します。
SourceをMaskにし、grassという名前のLayerとしてコピーします。
これで既存のマスクはgrassレイヤーとして保存されたので、HeighrField Layer Clearを追加します。
次にHeightField Scatterを追加します。
このノードはMask Layerを指定し、その部分にPointを配置します。
先ほど、grassレイヤーを作成したので、MaskLayerでgrassを選択し、Densityを調整します。
L-Systemで配置するものを用意しました。
これをCopy to Pointノードを使用して、先ほど作成したポイントに配置します。
各ポイントに変化を持たせたい、例えば、木の大きさをランダムに変更したい場合はAttribute Randomizeを追加します。
pscaleがランダムになるように設定します。
これで木の大きさがMinとMaxの間でランダムに変化するようになりました。
これで最初にご紹介したように地形上に作成したマスクを使用してオブジェクトを配置することができました。