すあまの備忘録

誰得内容の自分のための非営利目的備忘録ブログ(筆者がわかっても内緒にしてください)

RBDのActiveを連鎖反応させる

よくあるSOP上でSolverを使用してActiveにした場合、ぶつかった破片が反応しないのを解決する方法

SOP Solver上で範囲やタイミング決めるのが楽なのでそれを維持しつつ…なやり方


RBDのActiveを連鎖反応させる

hip fileはこちら

まずはよくあるSOP上でActiveを転送するやり方から

SOP上でActiveの転送を行う

f:id:godofsuama:20200119200116p:plain
全体図

  1. RBD用のObjectにactive = 0を設定

 画像のset_activeOFFの部分

2.タイミング、範囲指定用のObjectにactive = 1を設定

 画像のset_activeONの部分

f:id:godofsuama:20200119200546p:plain

3.SolverでActiveをTransfer

f:id:godofsuama:20200119200654p:plain

4.PackしたPointでactiveアトリビュートを保持する

f:id:godofsuama:20200119200830p:plain

5.DOP Network内でRBD Packed Objectの設定を以下のようにしてシムする

 Initial Object TypeをStatic Objectに変更

 Overwrite AttributeにActiveを追加

f:id:godofsuama:20200119201047p:plain


Activeを連鎖反応させる

f:id:godofsuama:20200119201434p:plain

SOP上でのActiveの転送と同じように

  1. RBD用のObjectにactive = 0を設定し、タイミング、範囲指定用のObjectにactive = 1を設定する

2.PackしたPointでactiveアトリビュートを保持する

3.DOP Network内でRBD Packed Objectの設定を以下のようにしてシムする

 Initial Object TypeをCreate Deforming Static Objectに変更

f:id:godofsuama:20200119201758p:plain

4.SOP Solverを作成して以下の設定にし、接続する

f:id:godofsuama:20200119202026p:plain

5.SOP Solver内を以下のように作成する

f:id:godofsuama:20200119202213p:plain

5-1. Object Mergeを作成し、SOP上で作成したActiveを転送させるObjectを読み込む

5-2. Attribute Transferの第一入力にdop_geometryを接続、第二入力に転送させるObjectを接続

f:id:godofsuama:20200119202533p:plain

5-3. Object Mergeを作成し、DOP内の連鎖させたいObjectを読み込む

(今回はboxというノード名のRBD Packed Object)

5-4. 速い破片からのみ転送させるため、SpeedでGroupを作成する

 length(@v)>=5の部分の閾値は適宜変更

f:id:godofsuama:20200119202800p:plain

5-5.不要な破片を削除する

f:id:godofsuama:20200119202930p:plain

5-6. Attribute Transferを作成して第一、第二に接続

f:id:godofsuama:20200119203106p:plain

二重にAttribute Transferしているのは、それぞれでDistance Thresholdの変更ができたほうが良いため

f:id:godofsuama:20200119203514j:plain