Houdini 20.5 Unreal

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

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出力の一部のプロパティと挙動を制御およびオーバーライドすることができます。

アトリビュート名

オーナー

説明

unreal_gc_piece

Primitive

int

プリミティブをGeometryCollectionピースとして指定します。 この値はクラスタリングレベルを示し、0はこの挙動を無効にします。

unreal_gc_cluster

Primitive

int

同じレベルの複数のピースを別々のグループに分けるためのプリミティブクラスタリングインデックスを指定します。

unreal_gc_clustering_damage_threshold

Detail

float

クラスタリングダメージ閾値を指定します。

unreal_gc_collisions_collision_type

Detail

int

コリジョンタイプを指定します。0 = Implicit-Implicit, 1 = Particle-Implicit。

unreal_gc_collisions_implicit_type

Detail

int

コリジョン暗黙タイプを指定します。0 = Box, 1 = Sphere, 2 = Capsule, 3 = Level Set, 4 = None, 5 = Convex。

unreal_gc_collisions_min_level_set_resolution

Detail

int

コリジョン最小レベルセット解像度を指定します。

unreal_gc_collisions_max_level_set_resolution

Detail

int

コリジョン最大レベルセット解像度を指定します。

unreal_gc_collisions_min_cluster_level_set_resolution

Detail

int

コリジョン最小クラスタレベルセット解像度を指定します。

unreal_gc_collisions_max_cluster_level_set_resolution

Detail

int

コリジョン最大クラスタレベルセット解像度を指定します。

unreal_gc_collisions_min_level_set_resolution

Detail

int

コリジョン最小レベルセット解像度を指定します。

unreal_gc_collisions_collision_object_reduction_percentage

Detail

float

コリジョンオブジェクト削減割合を指定します。

unreal_gc_collisions_mass_as_density

Detail

int

コリジョン質量を密度として設定します。0 = unset, 1 = set。

unreal_gc_collisions_mass

Detail

float

コリジョン質量を指定します。

unreal_gc_collisions_minimum_mass_clamp

Detail

float

コリジョン最小質量クランプを指定します。

unreal_gc_collisions_collision_particles_fraction

Detail

float

コリジョンパーティクル割合を指定します。

unreal_gc_collisions_maximum_collision_particles

Detail

int

コリジョン最大コリジョンパーティクルを指定します。

unreal_gc_name

Primitive, Detail

string

GeometryCollectionの名前を指定します。 複数のGC出力を区別するのに使用されます。

ジオメトリコレクション - Unreal Engine 5

以下のアトリビュートはUnrel Engine5特有のものです。 UE5では、複数の“Size Specific Data”を指定することができます。 さらに、“Size Specific Data”の各エレメントには、コリジョンシェイプの配列を指定することができます。

アトリビュート名

オーナー

説明

unreal_gc_clustering_cluster_connection_type

Detail

int

クラスタリング接続タイプを指定します。0 = Point implicit, 1 = MinimalSpanningSubsetDelaunayTriangulation, 3 = PointImplicitAugmentedMinimalDelaunay。

unreal_gc_collisions_max_size

Detail

float, float

Size Specific Dataの最大サイズ。 複数のSize Specific Dataを指定する必要があります。

unreal_gc_collisions_damage_threshold

Detail

int, int

各Size Specific Dataのコリジョンダメージ閾値。

unreal_gc_collisions_collision_type_X

Detail

int, int

クラスタリングダメージ閾値を指定します。 _Xには、Size Specific Dataのインデックスを指定します。

unreal_gc_collisions_implicit_type_X

Detail

int, int

コリジョン暗黙タイプを指定します。0 = None, 1 = Box, 2 = Sphere, 3 = Capsule, 4 = Level Set。 _Xには、Size Specific Dataのインデックスを指定します。

unreal_gc_collisions_min_level_set_resolution_X

Detail

int, int

コリジョン最小レベルセット解像度を指定します。 _Xには、Size Specific Dataのインデックスを指定します。

unreal_gc_collisions_max_level_set_resolution_X

Detail

int, int

コリジョン最大レベルセット解像度を指定します。 _Xには、Size Specific Dataのインデックスを指定します。

unreal_gc_collisions_min_cluster_level_set_resolution_X

Detail

int, int

コリジョン最小クラスタレベルセット解像度を指定します。 _Xには、Size Specific Dataのインデックスを指定します。

unreal_gc_collisions_max_cluster_level_set_resolution_X

Detail

int, int

コリジョン最大クラスタレベルセット解像度を指定します。 _Xには、Size Specific Dataのインデックスを指定します。

unreal_gc_collisions_collision_object_reduction_percentage_X

Detail

float, float

コリジョンオブジェクト削減割合を指定します。 _Xには、Size Specific Dataのインデックスを指定します。

unreal_gc_collisions_collision_particles_fraction_X

Detail

float, float

コリジョンパーティクル割合を指定します。 _Xには、Size Specific Dataのインデックスを指定します。

unreal_gc_collisions_maximum_collision_particles_X

Detail

int, int

コリジョン最大コリジョンパーティクルを指定します。 _Xには、Size Specific Dataのインデックスを指定します。

unreal_gc_collisions_collision_margin_fraction_X

Detail

float, float

コリジョンマージン割合を指定します。 _Xには、Size Specific Dataのインデックスを指定します。

_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に取り込まれます:

アトリビュート名

オーナー

説明

unreal_input_gc_name

Detail

string

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

unreal_actor_path

Detail

string

入力データを含んだ/生成させたいアクターのパス。 Actorが入力として指定されている場合にのみ利用可能です。

unreal_level_path

Detail

string

アクターが生成される、または、入力データが含まれたレベルのパス。 Actorが入力として指定されている場合にのみ利用可能です。

Unreal

はじめよう

基本

Houdini Engineを使用する

スクリプト

リファレンス