Mayaのダイナミクスで円柱状のガラスを破壊してみる
2012 更新
PulldownItの使い方
で書いたやり方の方が出来はかっこいいが、
使用しているmayaのバージョンにより
PulldownItを使えない場合もあるかもしれないので当記事も残しておく。
--------------------------------------------------------------------------------------
普通にやるとまず出来なかったので書いておく。
おそらくだけど出来ない理由は、
「ガラスが厚みを持っていて、その断面によって発生する摩擦を計算するため」
理由は、円柱だと横方向の摩擦が円運動してるからだと思う。
そのせいか非常に重い。
重すぎて「貫通しました」というエラーが出まくって計算が終わらなかった。
【エッジの凸凹】にチェックを入れた場合、まず処理出来ないと思う。
なので
「厚みは後からつければいい」
■■■方法■■■
①【厚みの無い円柱状のガラスを作る】(中は空洞)
②1つだけ頂点を選択して【クラック粉砕】
これは手でエッジ分割して粉砕しても良い。
③ぶつけるオブジェを作り【アクティブリジッドボディの作成】に設定。
⇒ガラスに衝突するモーションをつける。直線的な動きでOK。
⇒アトリビュートエディタ⇒【rigidBody***】⇒【リジッドアクティブボディ】の【アクティブ】のチェックを外す。
④上記②で作成したガラスを【パッシブリジッドボディの作成】に設定。
⇒アトリビュートエディタ⇒【rigidBody***】⇒【リジッドアクティブボディ】の【アクティブ】にチェックを入れる。
アクティブのチェックを外すと、衝撃を受けつつも吹き飛ばなくすることが出来る。
これで再生してちゃんと破壊されるか確認。
⑤動きがOKであれば、モーションをベイクして、ここで初めて厚みをつける。
ベイクは【編集】⇒【キー】⇒【シミュレーションのベイク オプション】で焼き付け。
ちなみに厚みをつける際は「外側に広がるように」しないとベイクしたとしても予期しない動きになる。
また、こうして後から厚みをつけると「法線」が変わってしまうことがある。
これは【アトリビュートの転送】で【法線】に設定すればだいたい直った。
Maya側でコリジョンを少しだけ内側に持てれば良いだけな気はする。
【重力】があるから難しいのかもしれないけど。多分、静止しなくなる。
台座とかを (y = 0 )に配置して、破壊オブジェを乗せてるものがあれば大丈夫かな。
静止摩擦とかきちんと調べれば出来ると思うんだけど、
というか出来ないわけないと思うんだけど出来なかった。
PulldownItの使い方
で書いたやり方の方が出来はかっこいいが、
使用しているmayaのバージョンにより
PulldownItを使えない場合もあるかもしれないので当記事も残しておく。
--------------------------------------------------------------------------------------
普通にやるとまず出来なかったので書いておく。
おそらくだけど出来ない理由は、
「ガラスが厚みを持っていて、その断面によって発生する摩擦を計算するため」
理由は、円柱だと横方向の摩擦が円運動してるからだと思う。
そのせいか非常に重い。
重すぎて「貫通しました」というエラーが出まくって計算が終わらなかった。
【エッジの凸凹】にチェックを入れた場合、まず処理出来ないと思う。
なので
「厚みは後からつければいい」
■■■方法■■■
①【厚みの無い円柱状のガラスを作る】(中は空洞)
②1つだけ頂点を選択して【クラック粉砕】
これは手でエッジ分割して粉砕しても良い。
③ぶつけるオブジェを作り【アクティブリジッドボディの作成】に設定。
⇒ガラスに衝突するモーションをつける。直線的な動きでOK。
⇒アトリビュートエディタ⇒【rigidBody***】⇒【リジッドアクティブボディ】の【アクティブ】のチェックを外す。
④上記②で作成したガラスを【パッシブリジッドボディの作成】に設定。
⇒アトリビュートエディタ⇒【rigidBody***】⇒【リジッドアクティブボディ】の【アクティブ】にチェックを入れる。
アクティブのチェックを外すと、衝撃を受けつつも吹き飛ばなくすることが出来る。
これで再生してちゃんと破壊されるか確認。
⑤動きがOKであれば、モーションをベイクして、ここで初めて厚みをつける。
ベイクは【編集】⇒【キー】⇒【シミュレーションのベイク オプション】で焼き付け。
ちなみに厚みをつける際は「外側に広がるように」しないとベイクしたとしても予期しない動きになる。
また、こうして後から厚みをつけると「法線」が変わってしまうことがある。
これは【アトリビュートの転送】で【法線】に設定すればだいたい直った。
Maya側でコリジョンを少しだけ内側に持てれば良いだけな気はする。
【重力】があるから難しいのかもしれないけど。多分、静止しなくなる。
台座とかを (y = 0 )に配置して、破壊オブジェを乗せてるものがあれば大丈夫かな。
静止摩擦とかきちんと調べれば出来ると思うんだけど、
というか出来ないわけないと思うんだけど出来なかった。