今回の記事はHoudiniでのプロシージャルな地形生成機能についての紹介となります。
Houdiniでのプロシージャルな地形生成は、シェイプをレイヤー化し、ノイズを追加し、侵食シミュレーションを実行してデジタル風景の外観を定義できるHeightfield ノードのコレクションを用いて行うことができます。 この作業はコンポジットに似ていますが、すべての作業を3Dで行うことになります。
Houdiniは、地形を生成し、形成するためのさまざまなジオメトリノードを提供しています。 これらのツールは2Dボリュームを使用して地形を表します。各ボクセルには、高さフィールドと呼ばれるそのグリッドポイントでの地形の高さが含まれています。 ジオメトリネットワークを通過するデータには複数の高さフィールドを含めることができます。 Terrain desktopを使用して、これらのツールにアクセスできます。
Houdiniビューポートでは、2D高さフィールドを3Dサーフェスとして視覚化することができ、マスクフィールドは3Dサーフェス上に赤い色合いとして表示されます。 高さフィールドをレンダリングするにはMantraでの手続きがあり、これをダイナミックシミュレーションのコリジョンサーフェイスとして使用することができます。
パターン
Heightfieldノードを配置してベース解像度を定義した後、Heightfield Patternノードを使用すると、いくつかのスターターシェイプにアクセスできます。 線形、同心円、または放射状のランプ、線形のステップ、星やボロノイなどの放射状に対称な形状を設定できます。
これらの図形をぼかして歪ませることで、Terrain を始めるためのシェイプを作ることができます。 要素を結合してレイヤーを作成すると、さらに複雑な形状を作ることもできます。
ノイズ
Terrianを実行するとき、自然な外観のレイヤーにノイズを追加することができます。 Perlin、Sinusoid、Worleyなどの多種ある種類の中からノイズから選択できます。 これにより、地形にリアルさが加わり、数多くある種類のノイズをさまざまな形で組み合わせることで、さまざまなリアリティある地形を生成することができます。
マスク
Heightfield ツールは、各ボクセルにマスクレイヤーを含む、2次型の2Dボリュームも使用します。 ほとんどのTerrainノードは、ノードによって変更される地形を制御するマスクレイヤーを含めた2番目の入力を持っています。
さまざまな方法を使用して生成されたマスクは、ディティールを追加する際に役立ちます。 また、高さフィールドにマスクを描画したり、ペイントすることもできます。
浸食
Heightfield Erodeノードは、雨量、土壌の浸食性、浸水率および堆積物の蓄積をシミュレートする変数としてのエントレインメント率を使用します。 このノードは、再生中に反復して動作します。
また、最初のフレームには浸食の影響が見かけ上はありませんので、 タイムラインで再生を押して、侵食をシミュレーションする必要があります。
エクスポートオプション
ゲームエンジンなどの別のアプリケーションに地形をエクスポートするには、いくつかの方法があります。 Heightfield Outputノードを使用して、高さ情報をレイヤーにエクスポートすることや、マスクレイヤーをイメージとしてディスクに貼り付け、これらをテクスチャとして取り込むこともできます。
また、Houdini Digital Assetを作成して、UE4などのアプリケーションでHoudini Engineプラグインを使用して開くこともできます。 UE4では、Unrealのbuilt-in Terrainツールと相互作用するデジタルアセットを設定することもできます。