Houdini 20.0 Unreal

Chaos(ジオメトリコレクション)

On this page

要件

Unreal Chaosインテグレーションを動作させるには、Unreal Engine4.26でChaosインテグレーションをコンパイルする必要があります。 Chaosが有効化されていないUE4.26でもジオメトリコレクションコンポーネントは生成されますが、Chaos Physicsは有効化されません。

HoudiniからUnreal

このテーブルには、HDAで設定することができ、HoudiniデータからUnreal出力への変換時にプラグインによって認識および使用される特別なアトリビュートを載せています。

アトリビュート名

オーナー

説明

unreal_gc_piece

prim

int

プリミティブをジオメトリコレクションのピースとして指定します。値はクラスタリングのレベルを表します。または、0でこの動作が無効になります。

unreal_gc_cluster

prim

int

プリミティブのクラスタリングインデックスを指定し、同じレベルの複数のピースを異なるグループにグループ化します。

unreal_gc_clustering_damage_threshold

detail

float

クラスタリングのDamage Thresholdを指定します。

unreal_gc_collisions_collision_type

detail

int

コリジョンのCollision Typeを指定します。0 = Implicit-Implicit、1 = Particle-Implicitです。

unreal_gc_collisions_implicit_type

detail

int

コリジョンのImplicit Typeを指定します。0 = Box、1 = Sphere、2 = Capsule、3 = Level Set、4 = None、5 = Convexです。

unreal_gc_collisions_min_level_set_resolution

detail

int

コリジョンのMin Level Set Resolutionを指定します。

unreal_gc_collisions_max_level_set_resolution

detail

int

コリジョンのMax Level Set Resolutionを指定します。

unreal_gc_collisions_min_cluster_level_set_resolution

detail

int

コリジョンのMin Cluster Level Set Resolutionを指定します。

unreal_gc_collisions_max_cluster_level_set_resolution

detail

int

コリジョンのMax Cluster Level Set Resolutionを指定します。

unreal_gc_collisions_min_level_set_resolution

detail

int

コリジョンのMin Level Set Resolutionを指定します。

unreal_gc_collisions_collision_object_reduction_percentage

detail

float

コリジョンのCollision Object Reduction Percentageを指定します。

unreal_gc_collisions_mass_as_density

detail

int

コリジョンの質量を密度として設定します。0 = 設定解除、1 = 設定です。

unreal_gc_collisions_mass

detail

float

コリジョンのMassを指定します。

unreal_gc_collisions_minimum_mass_clamp

detail

float

コリジョンのMinimum Mass Clampを指定します。

unreal_gc_collisions_collision_particles_fraction

detail

float

コリジョンのCollision Particles Fractionを指定します。

unreal_gc_collisions_maximum_collision_particles

detail

int

コリジョンのMaximum Collision Particlesを指定します。

unreal_gc_name

prim, detail

string

ジオメトリコレクションの名前を指定します。複数のGC出力を区別するのに使用されます。

アセットにこれらのアトリビュートを設定すると、生成されたUnreal出力の一部のプロパティや動作を制御したり、上書きすることができます。

Unreal Engine 5アトリビュート

これらは、Unreal Engine 5に固有のアトリビュートです。UE5では、複数の“サイズ固有データ”を指定できます。加えて、“サイズ固有データ”の各エレメントを使用して、コリジョン形状の配列を指定できます。

アトリビュート名

オーナー

説明

unreal_gc_clustering_cluster_connection_type

detail

int

クラスタ接続タイプを指定します。0 = Point implicit、1 = MinimalSpanningSubsetDelaunayTriangulation、3 = PointImplicitAugmentedMinimalDelaunayです。

unreal_gc_collisions_max_size

detail

float, float

サイズ固有データの最大サイズ。複数のサイズ固有データを指定するために必要です。

unreal_gc_collisions_damage_threshold

detail

int, int

各サイズ固有データのコリジョンダメージ閾値

unreal_gc_collisions_collision_type_X

detail

int, int

クラスタリングのDamage Thresholdを指定します。_Xによって、サイズ固有データのインデックスを指定します。

unreal_gc_collisions_implicit_type_X

detail

int, int

コリジョンのImplicit Typeを指定します。0 = None、1 = Box、2 = Sphere、3 = Capsule、4 = Level Setです。_Xによって、サイズ固有データのインデックスを指定します。

unreal_gc_collisions_min_level_set_resolution_X

detail

int, int

コリジョンのMin Level Set Resolutionを指定します。_Xによって、サイズ固有データのインデックスを指定します。

unreal_gc_collisions_max_level_set_resolution_X

detail

int, int

コリジョンのMax Level Set Resolutionを指定します。_Xによって、サイズ固有データのインデックスを指定します。

unreal_gc_collisions_min_cluster_level_set_resolution_X

detail

int, int

コリジョンのMin Cluster Level Set Resolutionを指定します。_Xによって、サイズ固有データのインデックスを指定します。

unreal_gc_collisions_max_cluster_level_set_resolution_X

detail

int, int

コリジョンのMax Cluster Level Set Resolutionを指定します。_Xによって、サイズ固有データのインデックスを指定します。

unreal_gc_collisions_collision_object_reduction_percentage_X

detail

float, float

コリジョンのCollision Object Reduction Percentageを指定します。_Xによって、サイズ固有データのインデックスを指定します。

unreal_gc_collisions_collision_particles_fraction_X

detail

float, float

コリジョンのCollision Particles Fractionを指定します。_Xによって、サイズ固有データのインデックスを指定します。

unreal_gc_collisions_maximum_collision_particles_X

detail

int, int

コリジョンのMaximum Collision Particlesを指定します。_Xによって、サイズ固有データのインデックスを指定します。

unreal_gc_collisions_collision_margin_fraction_X

detail

float, float

Collision Margin Fractionを指定します。_Xによって、サイズ固有データのインデックスを指定します。

_Xを含むアトリビュート内のXは、サイズ固有データのインデックスを表します。さらに、一部のコリジョンアトリビュートは値または値の配列のいずれかです。インデックスiのエレメントは、インデックスiのコリジョンオブジェクトの値を表します。

値は、下位互換のため、その値だけを含むサイズ1の値の配列と同一です。

_X接尾辞を追加しない場合、インデックス0と同等になります。

複数のサイズ固有データを使用したい場合は、unreal_gc_collisions_max_sizeアトリビュートを使用して指定する必要があります。例えば、アトリビュートunreal_gc_collisions_max_size = {1234, 12345}およびunreal_gc_collisions_collision_type_1 = {0, 1}のシーケンスは、2つのサイズ固有データを持つジオメトリコレクションがあり、2番目のサイズ固有データには、2つのコリジョン形状(一方はImplicit-Implicitのコリジョンタイプ、もう一方はParticle-Implicitのコリジョンタイプ)があることを意味します。

UnrealからHoudini

以下のアトリビュートに加えて、上の表のすべての出力アトリビュートをHoudiniにインポートできます。

アトリビュート名

オーナー

説明

unreal_input_gc_name

detail

string

ジオメトリコレクションのパス名

unreal_actor_path

detail

string

入力データが含まれる/生成する必要のあるアクターへのパス。アクターが入力として指定されている場合のみ使用可能。

unreal_level_path

detail

string

アクターを生成する必要のある/入力データを含むレベルへのパス。アクターが入力として指定されている場合のみ使用可能。

ジオメトリコレクション

ジオメトリコレクションの出力は、ゼロ以外のunreal_gc_piece Primitiveアトリビュートを持つパックプリミティブから生成されます。unreal_gc_pieceアトリビュートと共にVoronoi Fractureノードを使用することで、スピードと結果のバランスをうまく取ることをお勧めします。

すべてのunreal_gc_piece値のセットは、連番になっている必要があります。つまり、値Xのunreal_gc_pieceが存在する場合、値(X - 1)のunreal_gc_pieceがなくてはなりません。

Voronoi Fractureまたは好みのツールを使用して、Houdiniのジオメトリを最大のダメージ閾値に破砕することをお勧めします。その後、目的のクラスタレベルに合わせた値でunreal_gc_pieceを各グループに適用します。

以下のサンプルのHDAでは、立方体を3つの異なるレベルに破砕し、その後プラグインで処理するために出力しています。

ネットワークのAttribute Wrangle内部は、このようになっています。

HDAの結果は次のようになります。

期待通り、出力には3つのレベルが含まれていることが分かります(Level 0は除く)。

HDA出力に複数のジオメトリコレクションが含まれる場合は、アトリビュートunreal_gc_nameを追加して、目的の各ジオメトリコレクションに固有の名前を付ける必要があります。これにより、ジオメトリコレクションが名前で分割されるようになります。

粉砕とクラスタリング

上で行なったように手動で粉砕を追加するのに加え、RBD Material FractureノードとRBD Clusterノードを組み合わせて使用することもできます。 unreal_gc_clusterは、同じレベルの複数のピースをジオメトリコレクションの異なるグループにグループ化するために、クラスタリングインデックスを指定するPrimitiveアトリビュートです。

現在のところ、正確なジオメトリコレクション階層の完全な制御はサポートされていません(ただし通常その必要はありません)。

以下のサンプルでは、立方体を取得し、それをRBD Material Fractureを使って破砕し、RBD Clusterを使用してピースのグループをランダムにクラスタリングしています。

unreal_gc_pieceは、最初に1に初期化されます。

クラスタリング後、クラスタリングされたピースのレベルを更新します。

“name_gc”を使用してパック化します(nameアトリビュートはRBDノードによって上書きされるため)。

結果は2つのレベルを含むジオメトリコレクションです。2つのピースクラスタ(レベル2のピース)と、クラスタの一部ではない2つのピース(レベル1のピース)です。

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システムとエミッターを使用して、複雑なエフェクトやパーティクルシステムを作成できます。