Houdini 20.0 Unreal ランドスケープ

Houdiniからランドスケープを生成する

Houdiniでランドスケープを生成し、それをUnrealにインポートする方法。

On this page

このワークフローでは、Houdiniでランドスケープをセットアップし、それをUnrealにインポートする方法を説明します。この例では、崖のある山のランドスケープを作成します。

このワークフローで学ぶ重要な点:

基本的なランドスケープを作成する

  1. Geometry SOPを作成し、Surface Operatorネットワークビューで作業するためにその中に入ります。

  2. Subnetwork SOPを作成し、Landscape_Generationという名前を付けます。そのフォルダで作業するために、そのノードをダブルクリックします。

  3. Heightfield SOPノードを作成します。

  4. Heightfield SOP ノードを選択し、Displayフラグをオンにしたら、 パラメータエディタ を開きます。

  5. パラメータエディタ で、 Initial Mask パラメータを1に変更します。

    • これにより、ランドスケープ全体をマスクとして使用し、ベースマテリアルなどを適用できるようになります。

  6. Heightfield Copy Layer SOPを作成し、その入力を Heightfield SOPノード の出力に接続します。

  7. Heightfield Copy Layer SOP ノードのパラメータで、 Destination パラメータに base と入力します。

    • 後でこのレイヤーを使用して、Unreal Engineでベースマテリアルを作成します。

  8. Heightfield Noise SOPを作成し、そのinput1を Heightfield Copy Layer SOPノード の出力に接続します。

  9. Heightfield Noise SOP ノードのパラメータで、以下の操作を行ないます:

    • Amplitude パラメータで、250と入力します。

    • Element Size で、800と入力します。

    • Noise Type で、ドロップダウンメニューを Perlin Flow に変更します。

    • Max Octaves で、3.5と入力します。

    • これにより、わずかに角度とバリエーションが加わったランドスケープが作成されます。

マスクを使用して崖を作成する

  1. Heightfield Mask by Feature SOPを作成し、その入力を Heightfield Noise SOPノード の出力に接続します。

  2. Heightfield Mask by Feature SOP ノードのパラメータで、以下の操作を行ないます:

    • Min Slop Angle パラメータで、15と入力します。

    • Max Slope Angle で、90と入力します。

    • このマスクによって、ランドスケープに崖や尾根を生成できます。

  3. Heightfield Terrace SOPを作成し、input1とinput2を Heightfield Mask by Feature SOPノード の出力に接続します。

  4. Heightfield Terrace SOP ノードのパラメータで、以下の操作を行ないます。

    • Min Height で、-50と入力します。

    • Fade で、0.5と入力します。

    • Max Step Size で、15と入力します。

  5. Heightfield Layer Clear SOPを作成し、その入力を Heightfield Terrace SOPノード の出力に接続します。

    • これにより、マスク選択がクリアされます。

  6. Heightfield Flow Field SOPを作成し、その入力を Heightfield Layer Clear SOPノード の出力に接続します。

  7. Heightfield Flow Field SOP ノードのパラメータで、以下の操作を行ないます:

    • Rain Amount で、0.5と入力します。

    • Rain Density で、0.25と入力します。

    • Smoothing Iterations で、20と入力します。

    • Adjust Height で、チェックボックスをオンにして、0.3と入力します。

これで、層になった崖と侵食のあるランドスケープになりました。

侵食用のマスクを作成する

  1. Mask by Feature SOPを作成し、その入力と Heightfield Flow Field SOPノード の出力を接続します。

  2. Heightfield Mask by Feature SOP ノードのパラメータで、以下の操作を行ないます:

    • Invert Mask をオンにします。

    • Mask by Occlusion をオンにします。

    • Minimum Occlusion で、0.75と入力します。

    • Maximum Occlusion で、0.9と入力します。

  3. Heightfield Copy Layer SOPを作成し、その入力を Heightfield Mask by Featureノード の出力に接続します。

  4. Heightfield Copy Layer SOP ノードのパラメータで、 Destination パラメータで erosion と入力します。

  5. Heightfield Layer Clear SOPを作成し、その入力を Heightfield Copy Layer SOPノード の出力に接続します。

    • これにより、マスク選択がクリアされます。

レイヤーをクリーンアップする(オプション)

Houdiniでは、nameと呼ばれるPrimitiveアトリビュートのHeight Fieldは、Unreal Engineでランドスケープレイヤーとして文字列を使用します。これらのアトリビュートをクリーンアップして、HDAを整理しておくとよいでしょう。

  1. Heightfield Flow Field SOP を選択します。

  2. Geometry Spreadsheetタブ で、プリミティブを選択します。

    • ワークフローの間に作成されたアトリビュート名のリストが表示されます。

    Note

    Unreal EngineにHeight Fieldを適切に転送するには、Houdini Engineのheight nameアトリビュートをエクスポートする必要があります。

  3. Blast SOPを作成し、その入力を Heightfield Copy By Layer SOPノード の出力に接続します。

  4. Blast SOP ノードのパラメータの、 Group パラメータで、@name=cliff @name=flowdir.x @name=flowdir.y @name=flowdir.z @name=mesa @name=water @name=flowと入力します。

    • これにより、不要なアトリビュート名が削除され、Unreal Engineはそれらのレイヤーを読み込まなくなります。

Note

マスクのnameアトリビュートを削除 しない ようにしてください。削除すると、Heightfieldノードが適切に機能しなくなります。

レイヤーを視覚化する(オプション)

レイヤーをUnreal Engineにエクスポートする前に、 Heightfield Visualize SOPを使用して、表示されるレイヤーを視覚化しましょう。

Note

どのHeightfield SOPでも、レイヤーおよびカラーのセットアップはUnrealマテリアルにエクスポートおよび転送されません。これらは完全にHoudini内での視覚化用です。

  1. Heightfield Visualize SOPを作成し、その入力を Blastノード の出力に接続します。

  2. Heightfield Visualize SOP ノードのパラメータで、以下の操作を行ないます:

    • Layer 9 で、ドロップダウンメニューからerosionを選択します。カラーをorangeに変更します。

    • Layer 8 で、ドロップダウンメニューからbaseを選択します。カラーをgreenに変更します。

様々なレイヤーと、それがランドスケープに与える影響を確認できます。

  • erosionレイヤーは、浸食用のマスクの作成時に設定されます。

  • baseレイヤーは、ランドスケープ全体を選択します。

これで、 Heightfield Visualize SOPノード を削除することができます。

Unrealマテリアルを作成する

Primにunreal_materialを追加すると、Unrealの既存のマテリアルを生成したランドスケープに割り当てることができます。その後、Unrealマテリアルパスを文字列としてソースに設定し、HDAに割り当てることができます。

詳細は、マテリアルを参照してください。

Unrealでマテリアルをセットアップする

  1. Unrealで、新しいマテリアルを作成し、Landscape_Materialと名前を付けます。

  2. マテリアルグラフで、⇥ Tabをクリックし、2つのConstant3Vectorを作成します。

    1. 1つ目の定数のカラーを オレンジ色 に変更します。

    2. 2つ目の定数のカラーを 緑色 に変更します。

  3. ⇥ Tabをクリックし、LandscapeLayerBlendを作成します。

    1. Detailsパネルで、 Layers の横の+記号を選択し、2つの配列エレメントを追加します。

    2. インデックス0で、ドロップダウンタブを展開し、名前をerosionに変更します。

      • Blend TypeLB Alpha Blend に変更します。

    3. インデックス1で、名前をbaseに変更します。

      • Blend TypeLB Alpha Blend に変更します。

  4. オレンジ色の定数カラー の白の出力を、 Layer erosion 入力に接続します。

    1. 緑色の定数カラー の白の出力を、 Layer base 入力に接続します。

    2. Landscape Layer Blend 出力を Emissive Color 入力に接続します。

  5. コンテンツドロワーで、Landscape_Materialクリックし、 Copy Reference を選択します。

    • これは後で、 Attribute Create SOP にペーストするのに必要です。

Houdiniでマテリアルをセットアップする

  1. Houdiniで、 Attribute Create SOPを作成し、その入力を Blast SOPノード の出力に接続します。

  2. Attribute Create SOP ノードのパラメータで、以下の操作を行ないます:

    • Name で、unreal_materialと入力します。

    • Class で、 Primitive を選択します。

    • Type で、 String を選択します。

    • String で、Unrealマテリアルパスをペーストします。

  3. Houdiniで、 Output Geometry SOPを作成し、その入力を Attribute Create SOPノード の出力に接続します。

これでHoudiniのセットアップが完了し、HDAにエクスポートする準備が整いました。

HDAの設定をエクスポートする

  1. ジオメトリビューに入り、Landscape_Generationサブネットワークをクリックし、 Create Digital Asset を選択します。

  2. ポップアップウィンドウで、 Asset Label 名をLandscape Generationに変更します。

    • 別の設定も好みに合わせて変更できます。

  3. Edit Operator Type Properties ポップアップウィンドウで、 Existing Parameters タブを見つけます。

    • Heightfield SOPノードからパラメータをエクスポーズ(アクセス可能に)して、それらをUnreal Engineで変更することができます。

  4. Heightfield SOP で、Grid Samplesパラメータを Existing Parameters タブにドラッグします。

    1. Heightfield Noise SOP でも同様にして、AmplitudeElement Sizeパラメータをドラッグします。

    • これで、3つのパラメータが追加されたはずです。

  5. Acccept を選択します。

Unrealにインポートする

Houdini Engine for Unrealセッションを実行していることを確認します。詳細は、セッションを参照してください。

  1. Unrealで、Landscape_Generation HDAをインポートします。

  2. HDAをクリックし、 Instantiate at the origin を選択します。

これで、Unrealでランドスケープが生成され、適切なマテリアルが割り当てられました。

また、Detailsパネルの Houdini Parameters セクションにエクスポーズ(アクセス可能に)したパラメータが表示されるので、Unreal Engine内でランドスケープをさらに編集することもできます。

See also

ランドスケープ

はじめよう

ランドスケープスプライン

ワークフロー

ランドスケープを使用すると、プロシージャルなノードベースのワークフローを介して、Houdiniで地形や自然環境を作成したり操作することができます。その後、それをUnreal Engineに取り込んで、さらに編集、レンダリング、ベイクすることができます。Houdiniで生成されたランドスケープは、非常に詳細かつダイナミックで、複雑な地形を作成できます。

特長と機能

  • HoudiniのHeight Fieldツールを使用して、Hydro(水)、Thermal(熱)、Flow(流れ)といった侵食をシミュレートします。

このビデオは、Houdiniを使用して、ファークライ5で活用されているランドスケープ機能をいくつか紹介したものです:

  • Houdini Engine for Unrealは、ランドスケープをHeight Field、ポイント、またはメッシュとして読み込みます。

  • ランドスケープレイヤーの作成、テクスチャの作成、マテリアルの生成を行ないます。

  • Unrealからランドスケープを取り込み、Houdini Engineを使用してスタティックメッシュに変換します。

  • Houdiniのばら撒き機能

  • PDGを使用して、大規模なワールドをより小さなサイズに分割し、素早いシミュレーションやチームのコラボレーションに役立てます。

  • ランドスケープで入力と出力をエクスポーズ(アクセス可能に)して、他のHDA間でもシームレスにやり取りできるようにします。

    • 例えば、カーブで制御される川のツールを使用できます。ランドスケープがカーブに作用して、川の流れをガイドし、川のツールによってランドスケープが侵食されます。

関連情報

以下は、ランドスケープを作成する前に理解しておくべきノードおよびコンセプトです: