Mayaのダイナミクスで円柱状のガラスを破壊してみる

2012 更新
PulldownItの使い方
で書いたやり方の方が出来はかっこいいが、
使用しているmayaのバージョンにより
PulldownItを使えない場合もあるかもしれないので当記事も残しておく。
--------------------------------------------------------------------------------------
普通にやるとまず出来なかったので書いておく。
おそらくだけど出来ない理由は、

「ガラスが厚みを持っていて、その断面によって発生する摩擦を計算するため」

理由は、円柱だと横方向の摩擦が円運動してるからだと思う。
そのせいか非常に重い。
重すぎて「貫通しました」というエラーが出まくって計算が終わらなかった。
【エッジの凸凹】にチェックを入れた場合、まず処理出来ないと思う。
なので


「厚みは後からつければいい」


■■■方法■■■
①【厚みの無い円柱状のガラスを作る】(中は空洞)
②1つだけ頂点を選択して【クラック粉砕】
 これは手でエッジ分割して粉砕しても良い。

③ぶつけるオブジェを作り【アクティブリジッドボディの作成】に設定。
 ⇒ガラスに衝突するモーションをつける。直線的な動きでOK。
 ⇒アトリビュートエディタ⇒【rigidBody***】⇒【リジッドアクティブボディ】の【アクティブ】のチェックを外す。

④上記②で作成したガラスを【パッシブリジッドボディの作成】に設定。
 ⇒アトリビュートエディタ⇒【rigidBody***】⇒【リジッドアクティブボディ】の【アクティブ】にチェックを入れる。
アクティブのチェックを外すと、衝撃を受けつつも吹き飛ばなくすることが出来る。
 
これで再生してちゃんと破壊されるか確認。

⑤動きがOKであれば、モーションをベイクして、ここで初めて厚みをつける。
 ベイクは【編集】⇒【キー】⇒【シミュレーションのベイク オプション】で焼き付け。

ちなみに厚みをつける際は「外側に広がるように」しないとベイクしたとしても予期しない動きになる。
また、こうして後から厚みをつけると「法線」が変わってしまうことがある。
これは【アトリビュートの転送】で【法線】に設定すればだいたい直った。


Maya側でコリジョンを少しだけ内側に持てれば良いだけな気はする。
【重力】があるから難しいのかもしれないけど。多分、静止しなくなる。
台座とかを (y = 0 )に配置して、破壊オブジェを乗せてるものがあれば大丈夫かな。

静止摩擦とかきちんと調べれば出来ると思うんだけど、
というか出来ないわけないと思うんだけど出来なかった。