On this page |
概要 ¶
このページでは、HoudiniのHeight Fieldツールを使った自然な見た目の地形を生成するための一般的で経験則的なワークフローについて説明しています。 基本的なワークフローとしては、地形の生成は以下の手順を踏みます:
Massing(マッシング:量塊化) ¶
Massing(量塊化、要するにボリューム感を出すこと) は、3次元の広大な構造の地形を遮断するために必要です。山の地形で例えると、山の占有面積をどれほどにするのか、山が取り囲んでいる空間の形状をどうするのか、山の高低をどうするのかを決めます。
Height Fieldに当てはめてみると、これは、最終地形の 全体の特徴 の基礎となる低解像度フィールドを作成することを意味します。 この段階では、表面は滑らかでも凸凹でもどちらでも構いません。後で表面にノイズを追加していきます。
いくつかの方法でボリューム感を出すことができます:
Seeding(シーディング:亜種化) ¶
Seeding(亜種化、要するにバリエーションを加えること) とは、滑らかな表面に少しの擾乱を追加して、より自然な感じを出すための処理のことです。表面が滑らかでないほど、後工程での侵食がより現実的な見た目になります。
単にフィールドだけ全体的にノイズを加えたり、大規模なジオメトリだけ投影しても、目的の侵食を表現するのに十分な“障害物”(流水や土壌が回避して流れるべき特徴部)を作成できないことはよくあります。Seeding(シーディング)は、そのような障害物の追加に役立ちます。
-
投影したジオメトリに少しのHeightfield Noiseを追加します。
-
Heightfield Distort by LayerまたはHeightfield Distort by Noiseを追加します。
役立つテクニックは、(Mountain SOPなどを使って)ランダムにゴツゴツした広大な岩の形状の3Dモデルを作成してから、Height Field上に(減衰のある)マスクをペイントし、そのマスクした領域にその岩ジオメトリを投影することです。次に、そのHeight Field上にDistory by LayerまたはDistort by Noiseを追加します。
Lobing(ロービング:区画化) ¶
たいていの場合、山岳地帯は、もっと小さく区分けすることができ、それぞれの区画のことを ローブ と呼びます。 Lobing(ロービング) とは、低解像度のHeight Fieldを受け取り、Heightfield Erodeを使って、山を小さく区画に分ける処理のことです。
Heightfield Erodeノードの Precipitation(降水量) 、 Cut Angle(カット角度) 、 Sediment Capacity(流送土砂の度合い) を上げることで、侵食作用を強くすることができます。
ロービング前
ロービング後
Remapping(再マッピング) ¶
Remapping(再マッピング) は、何回もMassing/Seeding/Lobingの工程を繰り返すことで色々なレベル(例えば、山麓、低山、高山)を生成するために必要です。
このテクニックは、“Elevation Passes(標高パス)”内に地形を構築することです。上流のHeightfield Erodeの後にHeightfield Remapを追加し、その標高を再マップして、フィールドを垂直に圧迫します。次に、その圧迫した内容の 上に さらにMassing/Seeding/Lobingの工程を繰り返します。
Upsampling(アップサンプリング:高解像度化) ¶
“Lobing”を終えたら、侵食のディテールが細かくなるように解像度を上げたいので、そのHeight Fieldを Upsampling する必要があります。
フィールドの解像度を倍にするには、Heightfield Resampleを使用します(おそらく、最初の段階でフィールドの解像度を高くしたくないでしょうから、この処理を繰り返すことになります)。
Shaping(シェイピング:形状定義) ¶
Shaping は、Heightfield TerraceとHeightfield Clipを使って、地質学的な特徴部を追加するために必要です。
マスクを使えば、山頂を削ったり、特定の領域に段々畑を追加して、より面白い侵食のバリエーションを生成することができます。
Re-seeding(再シーディング) ¶
Re-seeding(再シーディング) とは、高解像度で前述のSeeding処理を繰り返すことです。侵食の方向を変更させるためにもっと障害物を追加したい時に行ないます。
Erosion(侵食) ¶
後は、目的のルックが得られるまでHeightfield Erodeの機能をフルで使用するだけです。色々と設定をいじってみてどのような効果があるのか経験を積みましょう。これが“正しい”設定だというのはありません。 時には極端な設定を試してみてどのような結果が得られるのか見てみましょう。重要な事は、その結果が面白くて自然に見えることです。
ハイレベルなHeightfield Erodeノードの他にも、次のような個々の侵食タイプを表現したノードを使用することもできます: HF Erode Thermal, HF Erode Hydro, HF Precipitation。
おそらく、この工程を数回繰り返すことになるでしょう。
Final(仕上げ) ¶
目的の地形が表現できたら、後は、地形をシェーディングしたり、岩や木の配置を調整します。
Heightfield Quickshadeノードを使えば、簡単に地形に単純なマテリアルをセットアップすることができます。
Heightfield Scatterは、インスタンス用のポイントを地形上に散乱配置することができます。
-
マスクを使って散乱配置を制御することができます。
-
別々のスケールによって重複を回避する階層的な散乱配置を行なうことができます。
-
ポイントにバリエーション用アトリビュートを追加することができるので、例えば、異なる木のタイプや岩形状でポイントをインスタンス化することができます。