Houdini 21.0 Height Fieldと地形

散布: SOP

地形を風景に変換します。

On this page

Scattering(散布)は、その文字通りで、地形に命を吹き込む重要なテクニックです。 散布を用いることで、風景に数千ものオブジェクトを配置して、リアルなルックを表現することができます。 投影のページで、サイズが変化するボックスを地形上に散布して山脈を生成する基本的な例を既にご覧になっていると思います。 その投影シーンでは、この散布処理の柔軟性を説明しています。 しかしながら、この章ではそれにとどまらず景観、森林、草原、そして完全な生態系の生成を扱います。

散布は植物の追加や森林の作成に役立つだけではありません。 山の垂直面を装飾するのにも活用することができます。 これらの部分は、技術的な理由でHeight Fieldシステムで考慮されていません。 別の発想として、岩、石、砂利を地形の地面に追加すれば良いです。 あるいは、河床を小石で覆うのも良いでしょう。

Tip

現在のところ、Houdini Labsチームは、Height Field用のワールドビルディングシステムを開発中です。 バイオーム システムは自然界の法則と仕組みを利用して、現実的で制御可能な環境を生成します。

このガイドは4ページに分かれています:

初期の検討事項

景観にオブジェクトを配置していく前に、全体のシーン作成工程の最終段階であるレンダリングについて、少し時間を取って考えてみましょう。 このような初期段階でそれを考えておくのが良い理由は、HoudiniにはシーンをSolarisに取り込む手段が複数用意されているからです。

おそらく最も便利な方法は、Height Fieldが存在するSOP環境内ですべての散乱処理を完結させることです。 その後、そのシーン全体をSolarisにインポートすることで、HoudiniのKarmaエンジンでそのシーンをレンダリングすることができます。 先ほど言ったとおり便利な方法ではありますが、まったく最善の方法とは言えません。 メモリ、パフォーマンス、シーン構成を考慮すると、ワークフローを分割することを推奨します。 したがって、SOP内で実行可能な(あるいは実行すべき)処理とSolarisで行なう方が良い処理を区別することが重要です。

Note

この例では、地形とポイントはHoudiniの obj レベルで作成されています。 これは、(いつものことですが)シーンを組み立てる一つの方法に過ぎません。 別の一般的な方法は、Solaris内でSOP Create LOPを使用して、すべてを stage レベルで管理できるようにすることです。

スケール

スケールは、散布を考慮する上で最も重要な検討事項の一つです。 デフォルトのHeight Fieldが1000m×1000mのサイズであることを常に念頭に置いてください。 このような巨大なスケールでの作業に慣れていない場合は、大きすぎる木や岩を作成しないように注意してください。

スケールの感覚を把握するために、参照用オブジェクトを追加すると便利です。 例えば、樹木の平均的な高さ、大きな岩の直径、建物の寸法などを示すために、異なるサイズのオブジェクトを作成すると良いでしょう。

基本的なセットアップ

このセットアップに必要なノードはわずか数個です。 このガイドでは、地形の作成からKarmaでのレンダリングまでの手順を説明しています。 また、インスタンス化をSOP内ではなくSolaris内で直接行なう方が(通常では)優れている理由についても学習します。 まずは地形の作成から始めましょう。

  1. Houdiniの obj レベルで、⇥ Tabキーを押してタブメニューを開きます。 hfとタイプして、 HeightField を選択すると、事前設定済みのGeometry OBJが作成されます。 そのノードをダブルクリックして中に入ります。 このノードの中にはHeightfield SOPがあります。

  2. Heightfield Noise SOPを追加して、 1番目 の入力をそのHeightfield SOPの出力に接続します。 このHeightfield Noise SOPは、以下に示すように丘や谷のある実際の地形を生成します。

散布ポイント

散布ポイントは、プレースホルダのようなもので、インスタンスオブジェクトが出現する位置を定義します。 散布ポイントには、インスタンス/プロトタイプを駆動させるアトリビュート(例えば、orientpscale)を格納することもできます。 インスタンス化とは、オブジェクトを散布ポイントにコピーする処理のことです。 Heightfield Scatter SOPは、インスタンスオブジェクト(s)を配置するポイントを作成します。

  • 散布ポイントは、常に SOPネットワーク 内で作成し、その後に Solaris へ転送します。

  • インスタンス化は、 Solaris 内で直接行なうべきです。

このノードを作成するために、以下の手順に従ってください:

  1. Heightfield Scatter SOPを追加します。

  2. そのHeightfield Scatter SOPの 1番目 の入力をそのHeightfield Noise SOPの出力に接続します。

  3. 青い Display/Render フラグを有効にして、その結果を表示します。

これによって、密に覆われた地形が得られます。 Heightfield Scatter SOPには、もっと多くのバリエーションを得るためのパラメータがいくつか用意されています。 Scattering セクションには、ポイント/インスタンスの数を間接的に制御可能な Covering パラメータがあります。 実際のポイント数を指定したいのであれば、 Scatter Method パラメータを Total Points using Mask Layer に設定します。 その後、 Total Point Count パラメータを設定します。

その他のパラメータの説明については、HeightField Scatter SOPのヘルプを参照してください。

マスキング

マスクを使用することで、起こり得る均一な見た目を解消し、密度にばらつきのある領域を作成することができます。 maskレイヤを使用することで、そのマスクで覆われた領域のみにポイントを生成することができます。 マスクの色の濃淡は、ポイントクラウドの密度も決定します。 Houdiniの地形システムで用意されている あらゆる マスキングメソッドを利用することができます。 別の方法としては、VEXスクリプトを記述することで、独自のマスクを作成することができます。

自然な見た目のマスクを手っ取り早く取得する方法として、Heightfield Mask Noise SOPの使用が挙げられます。

  1. Heightfield Mask Noise SOPを追加して、その入力を地形を生成するHeightField Noise SOPの出力に接続します。

  2. そのHeightfield Mask Noise SOPの出力をそのHeightfield Scatter SOPの 2番目 の入力に接続します。

すると、Heightfield Scatter SOPの Mask Layer パラメータが有効になり、 Add a Mask Paint ボタンをクリックできるようになります。 そのボタンをクリックすると、HoudiniがHeightField Paint SOPを追加するので、そのノードを使って独自のマスクをペイントすることができます。

Tip

個別に マスクノード を使用したくないのであれば、そのHeightField Noise SOPの出力をそのHeightfield Scatter SOPの 2番目 の入力に接続しても構いません。 これによって、Height Fieldに含まれているデフォルトのmaskレイヤにアクセスすることができます。

Height Fieldと地形

生成

  • 地形の生成

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

  • マップからHeight Fieldを生成

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

  • 単独の山

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

  • レイヤ

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

  • 段丘化(Terracing)

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

  • 歪曲(Distortion)

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

  • 地形のペイント

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

  • 投影

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

  • パッチ(継ぎ合せ)

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

  • パターン

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

  • リサンプリング

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

  • 様々な特徴部

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

散布

マスク

  • マスキング

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

  • ライトマスク

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

自然現象

VEX

テクスチャ

Shallow Water Solver(浅水ソルバ)