Houdini 21.0 Height Fieldと地形

様々な特徴部

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

On this page

HoudiniのHeight Fieldには、地形を洗練化、変更、変換、操作するための幅広いノードが備わっています。 この章では、完全なページを必要としないノードを大まかにまとめています。

Note

このページの例における基本セットアップは、常にHeightField SOPHeightField Noise SOPで構成されます。 それらのノードのデフォルト設定のまま作業を進めることができます。

ここでは、より多くの構造を露出させたかったので、HeightField SOPの Grid Space パラメータを1に下げましたが、生成処理を高速化したいのであれば、デフォルト値の2のままでも構いません。

シェルフツール

Houdiniのシェルフは、事前設定済みツールにアクセスする便利な方法であり、サンプルファイルとして活用したり、ご自身の実験の開始点として活用することができます。 Height Fieldに関しては、いくつかのシェルフが利用可能ですが、一部のシェルフを表示するには手動でそれを有効にする必要があります。

デフォルトではTerrain FXシェルフが表示されています。 このシェルフには、作業を開始するためのいくつかの例が含まれています。 例えば、単独の山、クレーターのある月面、砂丘などを作成することができます。

非表示のシェルフツールを表示するには、シェルフに移動します。 そこには、 Lights and CamerasCollision などのタブとボタンがあります。

  1. そのボタンをクリックしてドロップダウンメニューから Shelves を開きます。

  2. UIに表示させたいシェルフ(例えば、 Terrain Tools )を有効にします。

地形シェルフコレクションには、⇥ Tabメニューから素早くアクセスできる全種類のHeight Fieldノードが含まれています。

Height Fieldの変換

Height Fieldは2次元のボリュームグリッドであって、実際のジオメトリではありません。 この特性により、特定のオペレーションが困難または不可能な場合があります。 その反面、ポイントやポリゴンで構成される実際のジオメトリは、より多くのリソースを消費します。

ジオメトリの最大の利点の一つは、あらゆる種類のアトリビュートを生成/追加できることです。 アトリビュートはHoudiniのDNAであり、アトリビュートを使用することでモデル、テクスチャ、レンダリングのあらゆる局面を制御することができます。 また、変換された地形ジオメトリは3次元なのでポイント、ポリゴン、法線を制御することができます。 マスクやレイヤも、Height Fieldのポリゴン表現において Point アトリビュートとして転送されます。

HeightField Noise SOPが適用されたデフォルトのHeight Field SOPは4MBのメモリを消費しますが、標準設定で変換された同じ地形のジオメトリは183MBのメモリを消費します。 ポリゴン数を削減する手法は存在するものの、一般的にその差は非常に大きいです。

変換工程全体の中核となるのは、Convert HeightField SOP です。

変換設定

Convert HeightField SOPには、3つのオプションを持つ Convert to ドロップダウンメニューが備わっています。

Density パラメータによって、変換後のオブジェクトの品質を制御することができます。 値を高く設定するとポリゴン/ボクセル数が増加して、オブジェクトが“重く”なります。 また、HeightField SOPの解像度( Grid Spacing パラメータまたは Grid Samples パラメータ)を考慮する必要があります。 Grid Spacing パラメータの値が小さい状態で Density パラメータを高く設定しても、ディテールは増えません。

再マッピング

HeightField Remap SOPは、別工程でレイヤの値を変更することができます。 地形のheightレイヤに限らず、mask値やその他のレイヤにも適用可能です。 とはいえ、最も多い用途は、heightレイヤの再マッピングです。 これによって、初期値を変更することなく、インタラクティブにまったく異なる景観を作成することができます。 例えば、海面レベルを適用して地形を岩の多い海岸に変えたり、下記の例のように山脈を流れる川を作成することができます。

この考え方は、新しい最小値と最大値を定義してから、ランプを用いてその2つの高さの間にあるすべての値を変化させることです。 あなたが求めている地形が生成されたものの、その地形の輪郭が期待に沿わない場合を想像してみてください。 より多くの峰、より険しい岩肌、より広い谷が欲しいです。 適切なノイズ設定を探す代わりに、HeightField Remap SOPを使用して、カスタムランプなどを活用してheight値を調整することができます。

河床

この例では、山岳地形に河床を追加します。 川は景観の自然条件に沿って流れるので、幅の広い部分と狭い部分が生じます。

  1. HeightField Remap SOPを基本セットアップに追加して、 1番目 の入力を上流のHeightField Noise SOPの出力に接続します。

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

  3. Compute Range ボタンをクリックします。 これによって、地形の高低値が決定され、 Input Min パラメータと Input Max パラメータにその値が入力されます。

その入力値は Output Min パラメータと Output Max パラメータでも確認できます。 この値のペアは、入力と出力が同じになっているので、元の地形を保持します。 入力値を例えば-150100に変更すると、低い部分がマイナスY軸方向にシフトして地形が深くなります。 高い部分も約12メートルほどわずかに低くなります。

ランプの再マッピング

  1. Remap カーブでは、地形の高さ分布に関する情報を指定します。 左端の制御点が最低値を示し、右端の制御点が最高値を示します。 その 左側 の黄色い点を上方向にドラッグすると、地形が完全に平坦になることに気づくでしょう。 これで最小値と最大値が等しくなります。

  2. カーブをクリックするとさらに制御点が追加されます。

  3. そのランプ下にある Point No. パラメータは2に設定されているのはわかります。 その Position パラメータを0.4に、 Value パラメータを0.2に変更します。

  4. さらに制御点を追加します。その制御点の Position パラメータを0.5に、 Value0.2に変更します。

Position パラメータの値は0から1までの範囲で設定することができ、これらはHeight Fieldの寸法に関連付けられています。 この例では、地形の幅は1000メートルです。 つまり、 Position パラメータの0.40.5の値は、それぞれ400メートルと500メートルを示します。 例えば、幅1563メートルのHeight Fieldの場合、結果として得られる2つの値は1563 m * 0.4 = 977.2 mおよび1563 m * 0.5 = 781.5 mとなります。

これで山々の間に平坦な領域が見えることでしょう。 これが河床です。 この領域が平坦なのは、ここでのheight値がすべて等しいからです。

HeightField Crop

HeightField Crop SOPは、既存のHeight Fieldから矩形の切り抜きを作成することができます。 他のジオメトリを接続することもできますが、このノードはクロップ領域を定義するために、このオブジェクトから常に境界ボックスを生成します。

サポートオブジェクトがない場合、 SizeCenterOrientation のパラメータを用いてクロップ領域を定義することができます。

切り抜きを正確に拡大/縮小したい場合は、 Voxel Padding パラメータを使用してください。 このパラメータはプラスとマイナスの値を受け付けます。

Heightfield Cutout by Geometry

地形全体ではなく特定の区画のみが必要な場合があります。 HeightField Crop SOPとの違いは、保持または除去したい領域を定義するために、 あらゆる ジオメトリを使用できる点です。 切り抜きオブジェクトは任意の方法で回転、スケール、移動させることができ、非常に複雑な形状を作成することができます。 アニメーションジオメトリ、変形ジオメトリ、パックジオメトリにも対応しています。

Heightfield Cutout by Geometry SOPには2つの入力があります。

  • 1番目 の入力には、Height Fieldを接続します

  • 2番目 の入力には、切り抜きとして使用したいジオメトリを接続します。

また、様々な Combine モードから選択して穴や区画を作成したり、切り抜きを反転させることもできます。

便利なワークフローとして、Curve SOPで切り抜き領域の輪郭を描画する方法があります。 Curve SOPの Primitive Type パラメータを Polygon に設定して、Transform SOPなどを使用してそのカーブをHeight Fieldの下へ移動させます。 そして、Extrude Volume SOPを接続して、新たに生成されたボリュームが地形全体を囲むようになるまで Depth パラメータを調整します。 このボリュームをHeightField Cutout by Geometry SOPの 2番目 の入力に接続すれば、不規則な形状が得られ、地形を最適化するためにいつでも調整ができるようになります。

HeightField Output

Height Fieldのレイヤをエクスポートしたい場合は、HeightField Output SOPを介してそれらのレイヤをディスプレイスメントマップとして保存することができます。 そこでは考慮すべき事項がいくつかあります。

Note

この簡易ガイドでは、最も基本的な設定のみを説明しています。 ファイル形式、エクスポート方法、色深度オプションの詳細な説明については、そのノードのヘルプを参照してください。

最初の手順では、 Filename を定義します。

Output Type ドロップダウンメニューでは、 Packed Raster または Deep Raster のどちらで書き出したいかを選択することができます。

Packed Raster オプションでは、各レイヤはRGBAカラーチャンネルに書き出されます。 このオプションは、PNGやJPGなどの画像形式で使用してください。 この場合、別々にエクスポート可能なレイヤの枚数は4枚までに制限されます。 Deep Raster オプションでは、各レイヤが別々のディープラスタプレーンとして書き込まれます。 この場合、PICやEXRのようにデータ構造を作成できるファイル形式が必要となります。

地形からすべてのディテールを捉えるためには、 Type パラメータを少なくとも 16 b Floating Point に設定してください。 もっと良い結果を得るためにも、デフォルトの 32 b Floating Point オプションのままにしておくのが良いです。 32 b Floating Point オプションは、Houdiniのレイヤの内部精度に相当します。 16ビットでも32ビットでも、PICやEXRなどの適切なファイル形式が必要です。

マップのカスタム解像度を定義することもできます。 カスタム解像度を定義しなかった場合、画像にはHeight Fieldのボリューム解像度(デフォルト1000×1000)が使用されます。 これは、クロップされたHeight Fieldまたは切り抜きで重要になります。 その場合では、残りの地形には元のサイズの一部しか残らないので、マップが非常に小さくなる可能性があるため、カスタム解像度を使用する方が良いです。

Output Layers セクションでは、エクスポートしたいレイヤを指定します。

  • Packed Raster。各チャンネルにつき1枚のレイヤを追加することができます。利用可能なすべてのレイヤは、カラーチャンネルの横にあるドロップダウンメニューにリストされます。

  • Deep Raster。名前付き画像プレーンとして保存するレイヤを スペース区切りのリスト で指定することができます。 (0,1) Layers にレイヤを指定すると、すべての値が0から1の範囲に再マッピングされます。 (-1,1) Layers を使用したい場合は、マイナス値をサポートしているファイル形式を選択してください。

また、大きなマップを複数のタイルに分割することもできます。 Tile Method ドロップダウンメニューから、サイズによるタイル分割か固定数のタイル分割かを選択します。 File Naming ドロップダウンメニューのデフォルトは UDIM スタイルになっています。これを使用したくない場合はその設定も変更してください。

設定が完了したら、 Save to Disk ボタンをクリックします。

Height Fieldと地形

生成

  • 地形の生成

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

  • マップからHeight Fieldを生成

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

  • 単独の山

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

  • レイヤ

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

  • 段丘化(Terracing)

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

  • 歪曲(Distortion)

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

  • 地形のペイント

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

  • 投影

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

  • パッチ(継ぎ合せ)

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

  • パターン

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

  • リサンプリング

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

  • 様々な特徴部

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

散布

マスク

  • マスキング

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

  • ライトマスク

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

自然現象

VEX

テクスチャ

Shallow Water Solver(浅水ソルバ)