On this page |
要件 ¶
Unreal Chaosインテグレーションを動作させるには、Unreal Engine4.26でChaosインテグレーションをコンパイルする必要があります。 Chaosが有効化されていないUE4.26でもジオメトリコレクションコンポーネントは生成されますが、Chaos Physicsは有効化されません。
ジオメトリコレクションの出力 ¶
ジオメトリコレクションの出力は、ゼロ以外の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のピース)です。

アトリビュート ¶
Houdini to Unreal ¶
このテーブルには、HDA内で設定する特殊なアトリビュートを載せており、このプラグインは、HoudiniデータをUnreal出力に変換する時にそれらのアトリビュートを認識します。 アセット上にこれらのアトリビュートをセットアップすることで、生成されるUnreal出力の一部のプロパティと挙動を制御およびオーバーライドすることができます。 詳細は、アトリビュートとグループを参照してください。
ジオメトリコレクション ¶
アセット上に以下のアトリビュートを設定すると、生成されたUnreal出力の一部のプロパティと挙動を制御およびオーバーライドすることができます。
アトリビュート名 |
オーナー |
型 |
説明 |
---|---|---|---|
|
Primitive |
int |
プリミティブをGeometryCollectionピースとして指定します。 この値はクラスタリングレベルを示し、0はこの挙動を無効にします。 |
|
Primitive |
int |
同じレベルの複数のピースを別々のグループに分けるためのプリミティブクラスタリングインデックスを指定します。 |
|
Detail |
float |
クラスタリングダメージ閾値を指定します。 |
|
Detail |
int |
コリジョンタイプを指定します。0 = Implicit-Implicit, 1 = Particle-Implicit。 |
|
Detail |
int |
コリジョン暗黙タイプを指定します。0 = Box, 1 = Sphere, 2 = Capsule, 3 = Level Set, 4 = None, 5 = Convex。 |
|
Detail |
int |
コリジョン最小レベルセット解像度を指定します。 |
|
Detail |
int |
コリジョン最大レベルセット解像度を指定します。 |
|
Detail |
int |
コリジョン最小クラスタレベルセット解像度を指定します。 |
|
Detail |
int |
コリジョン最大クラスタレベルセット解像度を指定します。 |
|
Detail |
int |
コリジョン最小レベルセット解像度を指定します。 |
|
Detail |
float |
コリジョンオブジェクト削減割合を指定します。 |
|
Detail |
int |
コリジョン質量を密度として設定します。0 = unset, 1 = set。 |
|
Detail |
float |
コリジョン質量を指定します。 |
|
Detail |
float |
コリジョン最小質量クランプを指定します。 |
|
Detail |
float |
コリジョンパーティクル割合を指定します。 |
|
Detail |
int |
コリジョン最大コリジョンパーティクルを指定します。 |
|
Primitive, Detail |
string |
GeometryCollectionの名前を指定します。 複数のGC出力を区別するのに使用されます。 |
ジオメトリコレクション - Unreal Engine 5 ¶
以下のアトリビュートはUnrel Engine5特有のものです。 UE5では、複数の“Size Specific Data”を指定することができます。 さらに、“Size Specific Data”の各エレメントには、コリジョンシェイプの配列を指定することができます。
アトリビュート名 |
オーナー |
型 |
説明 |
---|---|---|---|
|
Detail |
int |
クラスタリング接続タイプを指定します。0 = Point implicit, 1 = MinimalSpanningSubsetDelaunayTriangulation, 3 = PointImplicitAugmentedMinimalDelaunay。 |
|
Detail |
Size Specific Dataの最大サイズ。 複数のSize Specific Dataを指定する必要があります。 |
|
|
Detail |
各Size Specific Dataのコリジョンダメージ閾値。 |
|
|
Detail |
クラスタリングダメージ閾値を指定します。
|
|
|
Detail |
コリジョン暗黙タイプを指定します。0 = None, 1 = Box, 2 = Sphere, 3 = Capsule, 4 = Level Set。
|
|
|
Detail |
コリジョン最小レベルセット解像度を指定します。
|
|
|
Detail |
コリジョン最大レベルセット解像度を指定します。
|
|
|
Detail |
コリジョン最小クラスタレベルセット解像度を指定します。
|
|
|
Detail |
コリジョン最大クラスタレベルセット解像度を指定します。
|
|
|
Detail |
コリジョンオブジェクト削減割合を指定します。
|
|
|
Detail |
コリジョンパーティクル割合を指定します。
|
|
|
Detail |
コリジョン最大コリジョンパーティクルを指定します。
|
|
|
Detail |
コリジョンマージン割合を指定します。
|
_X
を含んだアトリビュート内のX
は、Size Specific Dataのインデックスを示します。
さらに、一部のコリジョンアトリビュートは、値または値の配列のどちらにも対応しています。
インデックスi
のエレメントは、インデックスi
でのコリジョンオブジェクトの値を示します。
値は、下位互換のために、その値のみを含んだサイズ1の値配列と同等です。
_X
接尾辞を追加しなかった場合、それはインデックス0
と同等になります。
2つ以上のSize Specific Dataを指定したい場合、unreal_gc_collisions_max_size
アトリビュートを使用して指定する必要があります。
例えば、unreal_gc_collisions_max_size = {1234, 12345}
やunreal_gc_collisions_collision_type_1 = {0, 1}
のアトリビュートシーケンスは、2つのSize Specific Dataを持つGeometryCollectionを意味し、
その2つ目のSize Specific Dataには2つのコリジョンシェイプがあります: 1つ目のコリジョンシェイプのタイプはImplicit-Implicit、2つ目のコリジョンシェイプタイプはParticle-Implicitです。
Unreal to Houdini ¶
このテーブルには、UnrealデータをHoudniに取り込む時にこのプラグインによって生成される特別なアトリビュートを載せています。 詳細は、アトリビュートとグループを参照してください。
ジオメトリコレクション ¶
上記のテーブルのすべての出力アトリビュート、さらに以下のアトリビュートがHoudiniに取り込まれます:
アトリビュート名 |
オーナー |
型 |
説明 |
---|---|---|---|
|
Detail |
string |
ジオメトリコレクションのパス名。 |
|
Detail |
string |
入力データを含んだ/生成させたいアクターのパス。 Actorが入力として指定されている場合にのみ利用可能です。 |
|
Detail |
string |
アクターが生成される、または、入力データが含まれたレベルのパス。 Actorが入力として指定されている場合にのみ利用可能です。 |