vol.2の続き。
時間の都合で順番が前後しますが、次の回でやるForceが必要です。
Activeの設定
RBD Unpackは全破片のキャッシュに繋がっているとします。
vol.2の最後で話したとおり、ハイポリはないのでProxy GeometryとConstraint Geometryのみ使用します。
そのままだと自重で下から崩れてしまうため、Activeを設定して崩れないようにします。
全体にactive=1
を設定します。
その後、BoundとGroupのBounding Objectの設定で下部をactive=0
にします。
「Enumerate」でidも作成しておきます。
ちなみに全体で148180ピースあります。
DOP
特筆することはないです。
POP Advect by Volume
次の回で作成するForceのVolumeを読み込みます。これで破壊しています。
POP Speed Limit
spinとspeedのmaxを制限しています。ちょっとランダム値をいれます。
Constraint
各Constraint Relationshipの値は1にしています。これはSOPの値をMultiplyするからです。
SOP Solver
Glueの削除
POP Advect by Volumeでは、Glue Constraintの削除ができないのでここで削除します。
Object MergeでDOP内の破片を読み込みます。
../../:rbd_sim/Geometry
Transform Piecesを使用して、Constraint Geometryを動かします。
POP Advect by Volumeで読み込んでいるVelocity Volumeと一緒に作成したSDFを読み込み
そのSDFの内側をGroupにします。
GroupをPointからPrimitiveへPromoteし、動いていないConstraint GeometryへGroupをCopyします。
Softは残るように、Wrangleでグループ内のGlueをbrokenにします。
Softの削除
Softの削除は雑です。
過去記事とかを参考に他の値で切るのもいいでしょう。
最後に不要なグループ等を削除して終わりです。
RBDのキャッシュ
RBDのキャッシュでメッシュは保存しません。ポイントのみ保存します。
単純にキャッシュを取るのが遅くなることとファイルサイズが大きくなって読み込み、確認に時間がかかるからです。
ポイントの数が多ければ画像のように大体の動きもわかります。
ハイポリの整理
マテリアルとか不要なアトリビュート等を整理します。
今回は全部の破片をMergeした後の最初のRBD Unpackから引っ張っています。
「Transform Pieces」で整理したハイポリとキャッシュしたポイントを使用して破片を動かして終わりです。