おおまかな形状の作成
モニュメントバレーやキャニオランズ国立公園などのアメリカ合衆国西部などに存在する、差別侵食により形成されるメサ(Mesa)やビュート(Butte)と呼ばれる卓上台地をつくります。
1.従来のSOPを使用してモデリングをしてからHeightFieldに投影
まずアプローチとして考えられるのは、従来のSOPでモデリングをしてからHeightFieldProjectで投影する方法です。概ねの台地の形状を思い通りに形づくりたい場合に最適なアプローチです
シンプルな制作例として、Curveノードで底部の形状を自由に描いて形づくってから複数回PolyExtrudeをくり返し、上方向に盛り上げていきます。当然ながら、より複雑な形状にモデリングをしたい場合はさらにPolySplitやEditを駆使して自由にモデリングをすることができます
-
Houdini 16の新たなインターフェイスで追加されたラディアルメニューを利用すればシーンビューでも自由に機能を選択でき、効率的にモデリングをすることが可能です
-
あくまでも投影用のジオメトリであるため、この段階でUVやトポロジーを気にする必要はまったくありません。また、ディテールはこの後に付加していくため今はおおまかな形状のみで問題ありません。納得のいく形状になったら、HeightField Projectを使用してHeightFieldに投影をします
2.最初からHeightFieldを利用
別のアプローチとして、最初からHeightFieldで形状をつくるという方法があります。まずHeightFieldノードで基となるHeightFieldを作成したら、HeightField Mask Noiseノードでノイズによってマスクを定義します
-
この際、Noise Typeを「Worley(cellular)F1」を選択すると簡単にそれらしいマスクを作成することができます。また、Post ProcessingにあるGainパラメータやBiasパラメータを調整して、くっきりとした境界をもつマスクにしておきます
-
このマスク部分を上に持ち上げるだけでは地面との境界が垂直になってしまい不自然になるため、HeightField Mask Blurノードを2回使用してマスクを広げてから境界をぼかし、HeightField Layer ノードでLayer ModeパラメータをAddにしてマスク同士を加算します
それからHeightField Noiseノードでマスク部分にのみノイズがかかるようにして上に持ち上げれば台地が出来上がります。具体的な形状を指定する必要がなく、プロシージャルに配置をしたい場合にはこちらのアプローチが便利です。今回の例では、手前に見える大きなメサとビュートのみ前者のアプローチを使い、奥にある数々の台地を後者のアプローチでつくりました
自然なノイズの付加
地形を制作する上で必要不可欠であるノイズを加えて適度に歪ませ、自然な形状にしていきます。
1.ノイズの追加
-
HeightField Noiseノードを使用してノイズを加えます。内部的にUnified Noise Static VOPを使用しているためFractalのタイプなども含めたノイズの細かい制御まで可能で、さらに発展させてCenter NoiseやPost Processingなどのパラメータを追加することにより思い通りのノイズに調整でき、非常に扱いやすくなっています
-
HeightField Noiseノードは高さの情報に対して値を加減算してY軸方向にのみ歪めるものですが、HeightField Distortノードを接続すると二次元平面に沿って元の形状を移動させてさらに歪めることができます。特に砂丘などに見られる、風に運ばれて波打ったような形状をした地面も容易に作成することができます
2.ノイズをより自然な見た目に編集
NoiseやDistortを一度適用しただけだと場合によっては少々幾何学的で不自然な結果に見えがちなため、HeightField Mask NoiseノードやHeightField Mask by Featureノードでマスクを定義してから部分的にノイズをかけるということを複数回にわたってくり返すことで、より自然な見た目にすることができます
3.段丘を追加
HeightField Terraceノードを使用すると卓状台地や棚田に見られるような階段状の段丘を容易に作成することができます。これに関しては、一度適用するだけの完全に等間隔な結果こそが実際の地形通りの望ましい結果ということもありますが、場合によってはノイズと同様に同じ箇所に数回適用してバラつきを与えることで自然な結果にすることができます
一度Terraceを適用した箇所は元の傾斜の情報を失ってしまうため、同じながれで複数回適用するのではなく、それぞれ適用したものをHeightField Layerノードで重ねる必要があります。マスクは自動的に作成されているため、Replaceモードで第3入力に第1入力と同じものを接続するだけで問題ありません。Terraceによって平らになりすぎたりノイズが一様になりすぎていても、この後に侵食の効果を適用させる箇所についてはまだ形状が変化するため、あまり細かく気にすることなく次に進むことにします