On this page

プラグインは、UnrealからHoudiniアセットへデータを送信する、各種入力をサポートしています。 入力に加えられた変更は、自動的にHoudiniアセットにプッシュされ、評価され、出力が再クックされます。

現在のところ、Houdini Engine for Unrealは以下の入力タイプをサポートしています:

Houdini 20.0で、以前利用可能だった入力タイプの一部が廃止され、既存のものに統合されました。

入力タイプによって、入力がHoudiniに送信できるオブジェクト/データのタイプが制限されることはありません。 例えば、 World Input は、Houdiniにランドスケープを送信することも、 Asset Input のように他のHoudini Asset Actorを選択して接続することもできます。

これらは、プラグイン入力が現在サポートしているオブジェクトのタイプです。

入力を作成する

UnrealからHoudiniへデータを送信するための入力は、2通りの方法を使用して作成することができます。

SOPタイプのアセットに通常のノード入力を使用するか、アセットのOperator Pathパラメータにオブジェクトパス入力を作成します。

ノード入力

設計上、SOPにはジオメトリを渡すためのノードコネクタがあります。 このため、SOPタイプのアセットには、ジオメトリを入力するためのノードコネクタも含めることができます。 それらの入力は、アセットのOperator Type PropertiesダイアログでMinimum InputsおよびMaximum Inputs値を変更することで設定できます。

このようにして作成されるすべての入力は、Input Detailsパネルにリストされ、それらの名前はOperator Type PropertiesダイアログのInput/Outputタブで変更できます。

オブジェクトパス入力

オブジェクトパス入力は、Houdiniノードへのパスを受け入れるOperator Pathパラメータから作成されます。 ジオメトリを入力するためには、 Op FilterAny Object または Any SOP に設定する必要があります。 ジオメトリがこのパラメータに割り当てられると、Houdini Engineはその入力ジオメトリを表現する適切なHoudiniノードを作成します。 アセットはこれらのノードを使用して、ジオメトリにアクセスします。

Operator Pathパラメータは手動で作成することもできますが、最も簡単な作成方法は、 Object Merge SOP を作成し、そのObject (objpath)パラメータをアセットレベルにエクスポーズする(アクセス可能にする)ことです。 ジオメトリはObject Merge SOPの出力からアクセスすることができ、Unrealでは Parameter Detailsパネル の入力として表示されます。

これらのパラメータは通常タイプのパラメータなので、Detailsパネルでアセットの他のパラメータと混在して表示されますが、挙動はノード入力と同じになります。

これらは、 Objectタイプ アセットでも SOPタイプ アセットでも、ジオメトリを入力するために使用できますが、SOPタイプアセットではノード入力接続を直接使用する方が一般的です。 ノード入力とは異なり、Keep World Transformオプションをオブジェクトパス入力に設定することはできません。

詳細は、Operator Pathパラメータを参照してください。

デフォルトの入力タイプを設定する

UnrealでHDAをインスタンス化する際、デフォルトで、入力タイプはgeometryに設定されます。

入力名(SOP入力の場合)またはObject Pathパラメータラベル(オブジェクトパス入力の場合)を、特定のキーワードを含むように変更することで、異なるデフォルトの入力タイプを設定することができます:

  • 名前に curve が含まれている場合、デフォルトの入力タイプはCurve Inputになります。

  • 名前に landscape、terrain または heightfield が含まれている場合、デフォルトの入力タイプはWorld Inputになります。

  • 名前に world または outliner が含まれている場合、デフォルトの入力タイプはWorld Inputになります。

  • 名前に asset または hda が含まれている場合、デフォルトの入力タイプはWorld Inputになります。

  • 上記のどの条件にも当てはまらない場合、デフォルトの入力タイプはGeometry Inputになります。

デフォルトの入力タイプは後から変更でき、使用されるのはHDAの最初のインスタンス化のときだけです。

Input Detailsパネル

アセットにノード入力がある場合、アセットのDetailsパネルの Houdini Inputs では、Arrayにすべてがリストされます。 入力タイプは、ドロップダウンメニューを使用して変更することができます。 するとDetailsパネルが更新されて、その入力タイプのオプションやパラメータを修正できるようになります。

入力がオブジェクトパス入力の場合、その詳細、オプション、パラメータがDetailsパネルの Houdini Parameters 部分に同じようにリストされます。

Keep World Transform

すべての入力タイプにKeep World Transformチェックボックスがあり、ジオメトリ/アセットのトランスフォームがどのようにUnrealからHoudiniにマーシャリングされるかを制御します。 ジオメトリが入力を通してHoudiniにマーシャリングされる場合、 Object Merge ノードがアセットとジオメトリを接続します。 ノード入力では、 Object Merge ノードはHoudini Engineによって自動的に作成され、オブジェクトパス入力のObject Mergeと同じようにセットアップされます。

  • Keep World Transformがオンの場合、入力を接続するのに使用される Object Merge のTransformパラメータはINTO_THIS_OBJECTに設定され、マーシャリングされたジオメトリはAsset ActorのUnreal TransformをHoudiniで使用するようになります。

  • オフの場合、 Object Merge のTransformパラメータはNONEに設定され、ジオメトリはHoudiniでAsset ActorのUnreal Transformを無視するようになり、原点にあるかのように扱われます。

要するに、UnrealでAsset Actorが(10, 10, 10)にある場合、Keep World Transformがオンであれば、HoudiniでジオメトリのTransformは(10, 10, 10)になり、Keep World Transformがオフであれば(0, 0, 0)になります。

Pack Geometry Before Merging

Pack Geometry Before Mergingチェックボックスは、 Geometry Inputおよび World Inputで使用可能です。

オンの場合、入力のすべての異なるメッシュおよびオブジェクトは、アセットの入力に結合される前に個別にパック化されます。 これにより、個々のオブジェクトをHoudiniでパックプリミティブとして使用できるようになるため、オブジェクトのインスタンス化と区別が容易になります。 しかし、HDAがどのようにセットアップされているかによっては、問題が発生する可能性もあります(パックプリミティブにポイントを正確にばら撒くことができないなど)。

オフの場合、入力のすべての入力メッシュおよびオブジェクトは単一のジオメトリに結合されます。

Export Input as References

オンの場合、入力ジオメトリはHoudiniで作成されず、代わりに、“unreal_instance”アトリビュートがソースアセットのパスに設定されたポイントに置き換えられます。

このオプションは、完全なジオメトリをHoudiniに送る必要のないときに使用すると便利です。 そのような操作は、負荷が大きくなる可能性があるからです。 そうしたシナリオの1つは、HDAを作成し、特定の領域に入力ジオメトリの複数のインスタンスをランダムにばら撒きたいような場合です。

呼応するオプションが入力で有効になっている場合、作成されたポイントクラウドに追加のアトリビュートを含めることもできます:

  • 使用されるマテリアル(unreal_material)

  • 回転とスケールを含む完全なトランスフォーム(P、rot、scale)

  • 境界ボックス(bbox_minおよびbbox_max)

レベルおよびアクターのパスもWorld Inputに存在します。

入力参照に回転/スケールを追加する

入力でExport Input as Referencesが有効の場合、ジオメトリを表すポイントには回転のrotとスケールのscaleという、floatのベクトル型アトリビュート2つを持ちます。 rotは4要素、“scale”は3要素です。 それらの値は、呼応するUnrealオブジェクトでTransformデータによって使用されます。

これを有効にしておくと便利なのは、実際の入力ジオメトリをHoudiniに送ることなく、入力の方向とスケールに関する情報をHDAに取り込みたい場合です。

入力参照に境界ボックスの最小/最大を追加する

入力でExport Input as Referencesが有効の場合、ジオメトリを表すポイントには、unreal_bbox_minunreal_bbox_maxという2つのfloatベクトルアトリビュートがあります。 これら2つのベクトルには、それぞれ3つのエレメントがあります。 これらは、入力の軸に沿った境界ボックスの2つの頂点の位置を示します。

これを有効にしておくと便利なのは、実際の入力ジオメトリをHoudiniに送ることなく、入力の寸法に関する情報をHDAに取り込みたい場合です。

入力参照にマテリアルを追加する

入力のExport Input as Referencesが有効の場合、ジオメトリを表すポイントは、入力ジオメトリに取り付けられたマテリアルアセットへのパスを示す文字列アトリビュートを持ちます。 これらのアトリビュートには、unreal_materialunreal_material1unreal_material2などの名前が付けられます。

Export LODs

Export LODsチェックボックスは、 Geometry Inputおよび World Inputで使用可能です。

これは、入力のメッシュのいずれかが複数のLODレベルを持つ場合のみ有効になります。 オンのとき、各メッシュのすべてのLODレベルはHoudiniにマーシャリングされ、それぞれがLODグループに割り当てられます。

Export Sockets

Export Socketsチェックボックスは、 Geometry Inputおよび World Inputで使用可能です。

オンの場合、入力のアセットのすべてのソケットはHoudiniにマーシャリングされ、ソケットグループでポイントとして使用することができます。詳細は、メッシュソケットを参照してください。

Export Colliders

Export Collidersチェックボックスは、 Geometry Inputおよび World Inputで使用可能です。

オンの場合、呼応するunreal_collision_グループを使用して、入力メッシュ上の単純なコライダーが、グループ化されたジオメトリとしてHoudiniに作成されます。

Prefer Nanite Fallback Mesh

Prefer Nanite Fallback Meshチェックボックスは、 Geometry Inputで使用できます。

これがオンで、ジオメトリ入力としてNaniteメッシュが使用されている場合、Houdiniはフル解像度のNaniteメッシュではなく、フォールバックメッシュを使用とします。

この設定のデフォルトの状態は、HoudiniEngineプラグイン設定のPrefer Nanite Fallback Meshチェックボックスと同じです。

入力タイプ

Geometry Input

Geometry Inputは、Unrealアセット(コンテンツブラウザ)からHoudiniにデータをマーシャリングするのに使用します。そのためには、コンテンツブラウザの1つまたは複数のUnrealアセットをHoudiniにドラッグアンドドロップするか、ドロップダウンメニューから1つのアセットを選択するかのいずれかを行ないます。詳細は、Geometry Input設定を参照してください。

複数のジオメトリが入力として設定されている場合、入力ジオメトリプリミティブで作成されるUnrealからHoudiniのアトリビュートunreal_input_mesh_nameを使用して、ジオメトリをデジタルアセット内で区別することができます。

複数のジオメトリアセットを入力に追加するには、+ Addボタンをクリックして、入力スロットを追加します。

現在のスロットに一列に表示されたアイコンを使用すると、以下のことができます。

  • 現在の選択を使用する

  • 入力オブジェクトをブラウズする

  • 現在の入力オブジェクトをリセットする

  • 現在の入力オブジェクトのトランスフォームオフセットを編集する

  • 入力オブジェクトを編集、複製、削除する

  • ジオメトリ入力オブジェクトを削除する

ジオメトリ入力で選択した各アセットには、独自のTransform Offsetがあります。このTransform Offsetを使用すると、入力の各アセットを個別に移動、回転、スケールして、正規化されていないアセットや不正確な位置のピボットポイントなどを補正することができます。 Transform Offsetメニューを開くには、cube with coordinatesアイコンを選択します。

Geometry Inputを通してマーシャリングされたUnrealジオメトリには、対応するHoudiniノードに、以下のようなUnrealからHoudiniのアトリビュートが含まれます:

  • unreal_material

  • unreal_face_smoothing_mask

  • unreal_lightmap_resolution (detail)

  • unreal_input_mesh_name

  • unreal_input_source_file

これらの標準のHoudiniアトリビュートも含まれます:

  • ポイント位置のP

  • 頂点法線のN

  • 頂点カラーのCd

  • UVセットのuvuvX

Object Path Parameters 入力を使用する際は、デフォルト値を有効なUnrealアセット参照に設定することで、ジオメトリ入力で使用するデフォルトオブジェクトを事前に設定することができます。

データテーブルは、Geometry inputを使用してインポートすることができます: データは、Houdiniでポイントクラウドとして使用でき、各ポイントはデータテーブルの列を表します。 それぞれの変数は、unreal_data_table_X_NAMEという名前のアトリビュートとして使用できます。Xは変数のインデックス、NAMEはその名前です。

unreal_data_table_rowstructアトリビュートも作成され、データテーブルによって使用される構造体を示します。unreal_object_pathアトリビュートには、ソースのデータテーブルアセットへのパスが格納されます。

データテーブルで使用される構造体のプロパティのいずれかの型が数値型であった場合、Houdiniで適切な数値型に変換されます。

Houdiniで利用可能なint型は、符号あり/符号なし8ビット、符号あり16ビット、符号あり32ビット、符号あり64ビットです。16ビット符号なしint型は、32ビット符号ありint型に変換されます。32ビット符号なしint型は、64ビット符号ありint型に変換されます。64ビット符号なしint型は、64ビット符号ありint型に強制的に変換されます。Houdiniには符号なしの64ビット以上のint型がないためです。この場合、オーバーフローが起こる可能性があります。

Houdiniは、単精度および倍精度の浮動小数点型をサポートしているため、浮動小数点型のプロパティはすべて直接変換されます。

Unrealにネイティブな以下の集約型は、Houdiniでタプルに変換されます。各コンポーネントは、上記のルールに従って数値型に変換されます。

  • すべてのネイティブのベクトルタイプ(X、Y、Z、Wの順番)

  • 回転(ロール、ピッチ、ヨーの順番)

  • トランスフォーム(3つの3コンポーネントベクトルに分割)

  • カラーとリニアカラー(R、G、B、Aの順番)

bool型は、0または1の値の符号あり8ビットint型に変換されます。

他のすべてのプロパティは、Houdiniで文字列アトリビュートに変換されます。

Note

変数名は、アトリビュートに変換される前にサニタイズ(無害化)されます。変数名内の無効な文字は、アンダースコアに置き換えられます。

カーブの編集方法に関する詳細は、カーブを参照してください。

World Input

World Inputを使用すると、ワールド内の任意のアクターをアセットの入力に接続できます。

Start Selection を選択すると、Detailsパネルがロックされ、入力に接続するアクターを選択できるようになります。 選択したら、 Use Current Selection を再度選択します。ボタンの下に現在の選択が表示されます。

World Inputは境界セレクタモードでも動作します。オンのとき、選択されたアクターが境界セレクタになり、境界ボックス内にあるすべてのアクターを入力に送ります。 そのモードでは、World Inputに2つのリストが表示されます。

  • 境界セレクタとして機能するアクター用

  • Houdiniに送られる選択されたアクター用

境界セレクタを自動的に更新するオプションもあります。オンのとき、プラグインが境界内の新規/削除されたアクターを定期的にチェックして、変更が検出された場合には入力を更新し、HDAを再クックします。

World Inputはさまざまなアクターのタイプをサポートしています:

  • Meshコンポーネント付きの通常のアクター

  • インスタンサー

  • ランドスケープ

  • フォリッジ

  • Houdini Asset Actor

  • BSPブラシ

  • ランドスケープスプラインとSpline Meshコンポーネント

  • レベルインスタンスとPacked Levelアクター

World Inputとしてインポートされたインスタンサーはパックプリミティブとして、ランドスケープはHeight Fieldとして作成されます。Houdini Asset Actorは、対応するオプションがオンのとき、Houdiniで直接接続されます。

World Inputを使用すると、Unreal SplineコンポーネントをHoudiniのカーブ入力として使用することもできます。Splineコンポーネント付きのアクターが選択されている場合、SplineはHoudiniで Curve に変換されます。

Unreal Splineコンポーネントは、Houdiniでは動作を1:1で再現できないため、リニアカーブに再サンプリングされます。スプラインの微調整された位置は、Houdiniの対応するCurve SOPにCVとして送られます。

Unreal Spline Resolutionパラメータを使用すると、再サンプルに使用されるサンプルの長さを選択して、これらのポイントをHoudiniに送ることができます。デフォルト値は50で、Unrealで50cm毎にスプラインポイントを抽出して、Houdiniにマーシャリングします。0に設定すると、スプラインのコントロールポイントのみがマーシャリングされます。

詳細は、Unreal Splineコンポーネントを参照してください。

World Input を通してマーシャリングされたUnrealランドスケープには、対応するHoudiniノードに、以下のようなUnrealからHoudiniのアトリビュートが含まれていま:

  • unreal_input_mesh_name

  • unreal_vertex_index

  • unreal_lightmap_resolution

  • unreal_lightmap_color

  • unreal_material

  • unreal_material_hole

これらの標準のHoudiniアトリビュートも含まれます:

  • ポイント位置のP

  • ポイント法線のN

  • UV座標のuv

入力ランドスケープのActor/ComponentタグはプリミティブアトリビュートとしてHoudiniに送信されます。接頭辞はunreal_uproperty_tag_で、その後にタグの名前が続きます。

Export Selected Landscape Components Only がオンの場合、現在選択されているランドスケープコンポーネントのみがHoudiniにエクスポートされます。オフの場合は、ランドスケープ全体がマーシャリングされます。 詳細は、World Input設定を参照してください。

World Inputを通してマーシャリングされたUnrealメッシュには、対応するHoudiniノードに、以下のようなUnrealからHoudiniのアトリビュートが含まれています:

  • unreal_material

  • unreal_face_smoothing_mask

  • unreal_lightmap_resolution

  • unreal_input_mesh_name

  • unreal_input_source_file

  • unreal_actor_path

以下の標準のHoudiniアトリビュートも含まれます:

  • ポイント位置のP

  • 頂点法線のN

  • 頂点カラーのCd

  • UVセットのuvuvX

World Inputを通してマーシャリングされたUnreal Splineコンポーネントには、呼応するHoudiniノードに、以下のような標準のHoudiniアトリビュートが設定されます:

  • 位置のP

  • 回転のrot

  • スケールのscale

選択したオブジェクトのActorおよびComponentタグに、プリミティブグループが作成されます。

Directly Connect HDAs in Houdini オプションをオンにして、World Inputを使用して別のHoudini Asset Actorをエクスポートすると、Houdiniアセットが別のHoudiniアセットの入力に直接接続されます。 両方のアセットがHoudiniで直接接続され、UnrealとHoudini間の余分なデータ転送を防ぐため、これはより効率的です。 これはまた、すべてのオリジナルのアトリビュートとデータを維持し、両方のアプリケーション間の変換で失われないようにするのにも役立ちます。

オフのとき、Unreal出力(メッシュ、インスタンスなど)は入力にエクスポートされます。

詳細は、World Input設定を参照してください。

Curve Input

Curve Inputを使用すると、カーブデータをUnrealからHoudiniにマーシャリングできます。Detailsパネルで、Houdiniで入力に接続されている、作成されたCurve SOPのパラメータをセットアップすることができます。詳細は、カーブ設定を参照してください。

単一の入力に複数のカーブオブジェクトを作成することができます。現在の入力で Add ボタンを使用します。 Clear All ボタンを使用すると、すべての作成されたカーブを削除できます。

追加されるカーブはそれぞれ、いくつものカーブが重なることのないよう、前回の位置からわずかにオフセットされたデフォルトの位置に作成されます。 オフセットの増分をリセットするには、 Reset Curve Offset ボタンを押します。

Houdiniでは各カーブに独自のカーブが作成され、入力で他のカーブのノードと結合されます。

Curve Inputを介してHoudiniに送られるカーブでは、以下の標準のHoudiniアトリビュートが対応するHoudiniノードに設定されます。

  • 位置のP

  • 回転のrot

  • スケールのscale

Curve Inputでは、Unrealスプラインコンポーネントと同様、Spline Point Editorにアクセスできるようになりました。 カーブの選択されているコントロールポイントのトランスフォームを手動で編集することができます。

Unreal

はじめよう

基本

Houdini Engineを使用する

リファレンス

Houdini Engine for Unreal Engineは、HoudiniのテクノロジーをUnrealに統合できるプラグインです。 Session SyncとNode Syncは、Houdiniのライブセッションと相互作用するためのHoudini Engineプラグインの2つの機能です。

このプラグインを使用すると、Houdiniの強力かつ柔軟なプロシージャルワークフローを、Houdiniデジタルアセットを通してUnreal Engineで実現できます。 アーティストはエディタ内でアセットパラメータをインタラクティブに調整して、Unrealアセットを入力として使用することができます。 その後、Houdiniのプロシージャルエンジンがアセットを“クック”し、その結果をエディタで使用できるようになります。ベイクする必要はありません。

一般情報:

互換性:

現在のところ、プラグインにはUE5.3、5.2、5.1、5.0、UE4.27、UE4.26向けにビルドされたバイナリがあり、Houdiniの最新のプロダクションビルドにリンクされています。

プラグインのソースコードは、UE5.3、5.2、5.1、5.0、UE4.27、UE4.26のこのリポジトリで利用可能です。

Note

UE5.1およびUE5.0は、同じソースファイル/ブランチを使用し、5.0ソースは5.1でも使用できるようになっています。

サポートおよびバグのレポート:

便利なリンク:

SessionSync

Houdini Engine SessionSync機能を使用すると、GUIを使ってHoudini内で実行されているHoudini Engineのセッションに接続することができます。 通常のHoudini Engineワークフローのすべての機能と、Session Sync固有の追加機能をサポートしています。

Houdini Engineは非UIバージョンのHoudiniを使用しますが、Session SyncではHoudiniのユーザインターフェースを通してHoudiniセッションを確認したり、操作することができます。 また、UnrealやHoudiniで加えた変更は同期されるため、どちらのプログラムでも変更を加えても、同じ結果が得られます。

NodeSync

NodeSyncは、UnrealとHoudini Session Sync間のアセット共有を可能にする、Houdini Engine for Unrealプラグインの機能です。スケルタルメッシュとスタティックメッシュで機能します。

専用のHDAを使用することなく、Unrealにデータを送信したり、Unrealからデータを受信することができます。アクターに加えて、スタティックメッシュやスケルタルメッシュでも機能します。

Houdini Niagara

Houdini-Niagaraプラグインを使用すると、HoudiniNiagara Data Interfaceを使用して、HoudiniとUnrealのNiagaraシステム間でポイントクラウドデータを交換することができます。 Houdiniのアトリビュートデータを、HoudiniPointCacheアセットとしてエクスポートできます。 これらをUnrealにインポートし、Niagaraシステムとエミッターを使用して、複雑なエフェクトやパーティクルシステムを作成できます。