Houdini 21.0 Height Fieldと地形

段丘化(Terracing)

頂上に近いほど段状の地形を生成します。

On this page

段丘は地形の形態であり、地層ではありません。 河川や海が古い地層を削り取り、平らな階段状の棚を残すことで形成されます。代表的な種類には次のようなものがあります:

河岸段丘に見られる典型的なV字形状は、期間の異なる侵食過程の結果として生じます。 地表に近い部分では、岩石がより長い期間侵食にさらされ、風化が進んでいます。 侵食された物質は谷を滑り落ち、谷底を流れる川によって運び去られます。

段丘(Terrace)と聞くと、峡谷のような巨大な地形を想像するかもしれません。 しかし、段丘は小川の岸辺のような比較的小さな範囲にも見られます。要するに、段丘は地形全体の見た目を向上させ、地質学的な特徴を再現するための優れた手法であると言えます。

Houdiniの段丘(Terrace)は、デフォルト設定のままだとハードエッジがあるので、人工的に見えることが多々あります。 そのため、自然な外観を得るために、通常では他のノードやマスクと組み合わせて使用します。 南アジアの有名な棚田のような人工構造物であっても、わずかなぼかし効果や穏やかな侵食を加えることが理にかなっています。

Houdiniの段丘(Terrace)は常に水平方向に整列され、その向きを変更するデフォルトの方法はありません。 段丘の高さも固定されており、この特徴部をアートディレクションするには独自の解決策が必要です。

段丘の追加

段丘を生成するノードはHeightField Terrace SOPです。 このノードはネットワーク内の任意の場所に追加することができますが、少なくともHeightField Noise SOPなどが適用された地形が必要です。 異なるマスクやパラメータが設定されたHeightField Terrace SOPを複数使用することもできます。

デフォルトでは、このノードは10~100メートルの地形高さの範囲で段丘を生成します。 これはマスク領域であり、地形上に赤い帯域で表示されます。 この帯域を変更するには、HeightField Terrace SOPの Min HeightMax Height のパラメータを変更します。 適切な値がわからない場合は、 Compute Range ボタンをクリックすると良いでしょう。

Fade パラメータを使用することで、地形と段丘をブレンドすることができます。 値を0に設定すると、ブレンド前の純粋な段丘が表示され、1に設定すると、元の地形のみが表示されます。 Terracing セクションを展開すると、そこには Fade Ramp があります。 このランプは、段丘を増やしたり減らしたい箇所を制御することができます。 より柔らかい外観にしたいのであれば、 Smooth Edges の使用も検討してください。

Fade パラメータと同様に、カスタムカーブを適用して異なる高さの段丘を生成することができます。 ただし、ランダムなheight値で段丘を直接作成するパラメータはありません。 これには、独自の解決策が必要です。

Mesa(卓状台地)とCliffs(崖)

HeightField Terrace SOPは、mesacliffsという名前の2つのレイヤを出力します。 これらのレイヤの名前は、 Output Layers セクションで定義されています。 1つ目のレイヤ(mesa)には、段丘の水平方向にカットされた平坦な領域が含まれ、2つ目のレイヤ(cliffs)には、垂直領域が含まれます。 両方のレイヤはマスクでもあるので、例えば、特定の領域のみに岩や植物を散布したい場合などに再利用することができます。

mesaおよびcliffsを調整できるように、 Output Layers セクションには、さらに Slope(勾配) ベースのパラメータが3つ用意されています。 ただし、これらのパラメータの影響は必ずしも目視で分かるとは限りません。 より分かりやすく表示するには、レイヤを単独表示させてパラメータを調整すると良いでしょう。

  1. HeightField Isolate Layer SOPを追加して、入力をそのHeightField Terrace SOPの出力に接続します。

  2. そのHeightField Isolate Layer SOPの青い Display/Render フラグを有効にします。

  3. Layer to Isolate フィールドのデフォルトのエントリを、表示したいレイヤに応じてcliffsなどに置換します。 これで、その選択したレイヤの2D投影が表示されます。

  4. 上流のHeightField Terrace SOPを選択して、 Slope(勾配) 系のパラメータを変更します。 なお、 Mesa Max Slope パラメータはmesaレイヤでのみ動作し、 Cliff Min Slope パラメータはcliffsレイヤ専用です。

HeightField Terrace SOPの Min HeightFade などの他のパラメータを変更して、その変更がどのようにレイヤマスクに影響するのか確認することもできます。 これによって、各パラメータの挙動をより明確に把握できる場合が多いです。

サンプル: 傾斜した段丘

自然界では、段丘は水平方向に整列し、その層は本のページのように積み重なっていることが多いです。 しかし、特にアルプス山脈のような褶曲山地では、傾斜したり褶曲した層を目にすることがあります。 そこでは、アフリカ大陸プレートがヨーロッパプレートに押し寄せ、地殻変動の力がそれらのプレートを押し合って褶曲させます。 その結果、岩石はキャラメルの層のように圧縮されて変形しています。

余談

この大陸移動のもう一つの結果として、地中海はいつか消滅すると言われています。

HeightField Terrace SOPには、褶曲した段丘を作成する機能が備わっておらず、工夫が必要になります。 基本的な考え方は、パターンを用いて段丘のみを変形させて、それを地形に再適用することです。

歪曲パターン

Note

Height Fieldガイドの他の例と同様に、このセットアップでもHeightField SOPと下流のHeightField Noise SOPで構成された基本ネットワークから始めます。

段丘を変形させるにはパターンが必要です。 このパターンのベースは、膨らみ、折り曲げ、特定の傾斜角度を生成するためのカスタマイズ可能なランプまたはカーブです。 複数のパターンを組み合わせて複雑な形状を作成することもできます。

  1. HeightField Pattern SOPを追加します。 1番目 の入力をHeightField Noise SOPの出力に接続します。 これでベースのHeight Fieldにはノイズとパターンの2つの接続が確立されます。

  2. そのHeightField Pattern SOPの青い Display/Render フラグを有効にすると、その操作の結果が表示されます。

  3. デフォルトのパターンは Stars です。 これを変更するには、 Pattern セクションの Pattern ドロップダウンメニューから Ramp を選択します。 これによって、ノコギリ歯状の変形が表示されます。

  4. Ramp Remapping パラメータのグラフは、カスタム曲線を定義したり、 Presets メニューからプリセットを選択することができます。 Hill を選択すると波形パターンが得られます。

  5. Position タブの Size パラメータを600まで上げます。 これは、ベース地形のサイズで、Height Field全体に引き伸ばされたいくつかの山頂を生成します。

  6. 丘や谷の出現位置を制御したい場合は、 Phase を変更してください。 例えば0.5に設定すると、波形がHeight Fieldの長さの50%分だけシフトします。 これは500メートル、すなわち、地形の中間点に相当します。

必要に応じて、例えば、制御点を追加したり、他のプリセットを試してカーブを修正することもできます。

Hight Fieldの減算

現在、ノイズとパターンの2つの個別のHeight Fieldが存在します。 これらを合成するために、HeightField Layer SOPを配置します。 1番目 の入力( Base Terrain )をそのノイズノードの出力に接続します。 2番目 の入力( Terrain to Layer )をそのパターンノードの出力に接続します。 どちらのHeight Fieldも同じレイヤ(heightmask)を共有しているので、地形はシームレスにマージされます。

また、このHeightField Layer SOPの Layer ModeAdd に設定すると、Height Field全体が膨らむことに気付くことでしょう。 ここでの考え方は、レイヤを差し引いて、段丘を適用してから、再びカーブを 加算 することです。 その結果、段丘部分のみが歪んで膨らむようになります。

  • Layer ModeSubtract に設定します。

段丘化(Terracing)

次に段丘を追加します。 ここで変更するのは、段丘を山頂から地面の方へシフトさせるための Min HeightMax Height そして、 Max Step Size のみです。

  1. HeightField Terrace SOPを配置して、 1番目 の入力をそのHeightField Layer SOPの出力に接続します。

  2. Min Height-80Max Height-40に変更します。これによって、段丘が発生する範囲が40メートルとなります。

  3. より多くの岩層を、より薄く生成するために、 Max Step Size8まで下げます。

段丘が赤い帯域で表示され、さらにマスクを適用することで、段丘を特定の領域に制限することができます。

Height Fieldの加算

この手順では、現在の地形に段丘とパターンの両方を加算してマージします。 これによって、HeightField Noise SOPによる地形本来の形状が復元され、段丘のみが波状パターンに追従するようになります。

  1. さらにHeightField Layer SOPを追加します。

  2. 1番目 の入力をそのHeightField Terrace SOPの出力に接続します。 次に、 2番目 の入力をそのHeightField Pattern SOPの出力に接続します。

そのHeightField Layer SOPの Layer ModeAdd に設定すると、そのマージの結果を即座に確認することができます。 歪曲を弱めたい場合は、そのHeightField Pattern SOPの Height パラメータを例えば75まで下げてください。

もちろん、様々なパターンやマスク、Houdiniのツールボックスで提供されているものまで使って実験することもできます。 例えば、直線的な傾斜を得るには、HeightField Pattern SOPのランプパターンの Ramp Remapping パラメータのプリセットから Linear または Smooth を選択することで、傾斜の度合いを制御することができます。

マスクを除去するには、HeightField Mask Clear SOPを追加して、それをネットワークの最後に接続します。

この手法で得られる結果の例を以下に示します。

Height Fieldと地形

生成

  • 地形の生成

    HoudiniのHeight Fieldを用いた基本的なワークフロー。

  • マップからHeight Fieldを生成

    マップからディテールの細かい地形を生成することができます。

  • 単独の山

    必要な場所にカスタムの丘や山を生成します。

  • レイヤ

    レイヤを積み重ねてマスクを適用することで、よりリアルな表現を高めます。

  • 段丘化(Terracing)

    頂上に近いほど段状の地形を生成します。

  • 歪曲(Distortion)

    地形を形作って自然な見た目にします。

  • 地形のペイント

    アーティストの気分で、ご自身で景観をペイントしましょう。

  • 投影

    任意のジオメトリをHeight Fieldの一部に変換します。

  • パッチ(継ぎ合せ)

    パッチ(継ぎ合せ)とカットアウト(切り抜き)を用いて地形を組み立てます。

  • パターン

    基本的なジオメトリパターンからリアルな地形を生成します。

  • リサンプリング

    地形の解像度を段階的に上げます。

  • 様々な特徴部

    地形を変換、エクスポート、特徴豊かにします。

散布

マスク

  • マスキング

    修正したい領域やディテールを加えたい領域を定義します。

  • ライトマスク

    地形上の日照領域からマスクを作成します。

自然現象

VEX

テクスチャ

Shallow Water Solver(浅水ソルバ)