オブジェクトを崩壊させる際に、オブジェクトの結合を破らなければいけない。
オブジェクトを結合させているのは、Glueというアトリビュートで、Objectの中のGlue strengthyというパラメーターで制御できる。
Glue Strength...The amount of accumulated force required to break a glue bond. A value of -1 will prevent the bond from ever breaking. A value of 0 will cause the bond to break with the first external force.
"接着結合を切断するために必要な累積力の量。 -1の値は、どのような破壊からも結合を防ぐことができます。 0の値は、最初の外部の力と共に、結合の崩壊を引き起こします。"
http://www.sidefx.com/docs/houdini11.0/nodes/dop/rbdobject
つまり、壁に球がぶつかる前までは、-1でキーを打って、ぶつかる瞬間は5、その後は再び-1に戻すことによって、壁の接着力を維持し、ぶつかる瞬間だけ結合を弱めて、崩壊させる。
ただし、うまくいかないため、RBDstateというノードを追加して、そのパラメーターで制御する。
http://www.sidefx.com/docs/houdini11.0/nodes/dop/rbdstate
1fではGlue Strengthは-1、9fも-1でキーを打つ。
Set Alwaysに変更しておく。
7fで5に変更。結合が弱まり、壁に穴を開けることができる。
Glue strengthを0のままでおこなったシミュレーション
結合が弱くぐらぐらになっている。
上記キーフレームアニメーションを行ったシミュレーション
自然に突き抜けていく。
ちなみに、両方のシミュレーションともに壁が地面としっかり結合しているのは、Glue to Objectというアトリビュートで対象を地面に設定しているため。
Glue to Object...The name of an object to glue to. If this is blank, the object is glued to no other object and acts normally. If it is the name of another RBD Object which it mutually affects, this object becomes glued to the other object. Its relative position to the other object is maintained by the solver.
"接着するオブジェクトの名前を指定します。これが空白の場合は、オブジェクトが他のオブジェクトに接着され、正常に動作します。それが相互に影響を与える別のRBDのオブジェクトの名前である場合、このオブジェクトは他のオブジェクトにくぎ付けになる。他のオブジェクトへの相対的な位置をソルバによって維持されています。"
http://www.sidefx.com/docs/houdini11.0/nodes/dop/rbdobject
0 件のコメント:
コメントを投稿