On this page |
要件 ¶
Unreal Chaosインテグレーションを動作させるには、Unreal Engine4.26でChaosインテグレーションをコンパイルする必要があります。 Chaosが有効化されていないUE4.26でもジオメトリコレクションコンポーネントは生成されますが、Chaos Physicsは有効化されません。
HoudiniからUnreal ¶
このテーブルには、HDAで設定することができ、HoudiniデータからUnreal出力への変換時にプラグインによって認識および使用される特別なアトリビュートを載せています。
アトリビュート名 |
オーナー |
型 |
説明 |
---|---|---|---|
|
prim |
int |
プリミティブをジオメトリコレクションのピースとして指定します。値はクラスタリングのレベルを表します。または、0でこの動作が無効になります。 |
|
prim |
int |
プリミティブのクラスタリングインデックスを指定し、同じレベルの複数のピースを異なるグループにグループ化します。 |
|
detail |
float |
クラスタリングのDamage Thresholdを指定します。 |
|
detail |
int |
コリジョンのCollision Typeを指定します。0 = Implicit-Implicit、1 = Particle-Implicitです。 |
|
detail |
int |
コリジョンのImplicit Typeを指定します。0 = Box、1 = Sphere、2 = Capsule、3 = Level Set、4 = None、5 = Convexです。 |
|
detail |
int |
コリジョンのMin Level Set Resolutionを指定します。 |
|
detail |
int |
コリジョンのMax Level Set Resolutionを指定します。 |
|
detail |
int |
コリジョンのMin Cluster Level Set Resolutionを指定します。 |
|
detail |
int |
コリジョンのMax Cluster Level Set Resolutionを指定します。 |
|
detail |
int |
コリジョンのMin Level Set Resolutionを指定します。 |
|
detail |
float |
コリジョンのCollision Object Reduction Percentageを指定します。 |
|
detail |
int |
コリジョンの質量を密度として設定します。0 = 設定解除、1 = 設定です。 |
|
detail |
float |
コリジョンのMassを指定します。 |
|
detail |
float |
コリジョンのMinimum Mass Clampを指定します。 |
|
detail |
float |
コリジョンのCollision Particles Fractionを指定します。 |
|
detail |
int |
コリジョンのMaximum Collision Particlesを指定します。 |
|
prim, detail |
string |
ジオメトリコレクションの名前を指定します。複数のGC出力を区別するのに使用されます。 |
アセットにこれらのアトリビュートを設定すると、生成されたUnreal出力の一部のプロパティや動作を制御したり、上書きすることができます。
Unreal Engine 5アトリビュート ¶
これらは、Unreal Engine 5に固有のアトリビュートです。UE5では、複数の“サイズ固有データ”を指定できます。加えて、“サイズ固有データ”の各エレメントを使用して、コリジョン形状の配列を指定できます。
アトリビュート名 |
オーナー |
型 |
説明 |
---|---|---|---|
|
detail |
int |
クラスタ接続タイプを指定します。0 = Point implicit、1 = MinimalSpanningSubsetDelaunayTriangulation、3 = PointImplicitAugmentedMinimalDelaunayです。 |
|
detail |
サイズ固有データの最大サイズ。複数のサイズ固有データを指定するために必要です。 |
|
|
detail |
各サイズ固有データのコリジョンダメージ閾値 |
|
|
detail |
クラスタリングのDamage Thresholdを指定します。 |
|
|
detail |
コリジョンのImplicit Typeを指定します。0 = None、1 = Box、2 = Sphere、3 = Capsule、4 = Level Setです。 |
|
|
detail |
コリジョンのMin Level Set Resolutionを指定します。 |
|
|
detail |
コリジョンのMax Level Set Resolutionを指定します。 |
|
|
detail |
コリジョンのMin Cluster Level Set Resolutionを指定します。 |
|
|
detail |
コリジョンのMax Cluster Level Set Resolutionを指定します。 |
|
|
detail |
コリジョンのCollision Object Reduction Percentageを指定します。 |
|
|
detail |
コリジョンのCollision Particles Fractionを指定します。 |
|
|
detail |
コリジョンのMaximum Collision Particlesを指定します。 |
|
|
detail |
Collision Margin Fractionを指定します。 |
_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にインポートできます。
アトリビュート名 |
オーナー |
型 |
説明 |
---|---|---|---|
|
detail |
string |
ジオメトリコレクションのパス名 |
|
detail |
string |
入力データが含まれる/生成する必要のあるアクターへのパス。アクターが入力として指定されている場合のみ使用可能。 |
|
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のピース)です。