2017年5月30日火曜日

ダイナミクスで壁を破壊!

ちょいとゲーム科の先生から「壁がわれて破片が飛び散るモーションをつくってほしい」と、依頼を受けたので、ダイナミクスを利用してつくってみます。



 
まずは、適当にセグメントを増やした板ポリゴンを準備。



「ジッター」「エッジスライス」「リダクションツール」など利用してランダムな形状に調整します。





次に破片ごとに「Mesh」をわけていきます。地道に「カット」&「ペースト」・・・・
全部で40パーツ・・・ちかれたー



 
つづいて、破片に厚みをつけます。
全ての「Mesh」をアクティブにして全ポリゴンを選択した状態で「押し出し」ツールを実行。
適当な厚みをつけます。



今のままでは、各「Mesh」の「センター」がワールド座標XYZ(0 0 0)となっています。
「アイテム」選択モードで全ての破片「Mesh」を選択し、「編集」>「センターをバウンティングボックスへ」>「センター」を選択します。



 
これで、各「Mesh」の中心に「センター」を配置することができました。



では、破片の「Mesh」に対して「ダイナミクス」を関連付けていきます。
「セットアップ」レイアウトにして「コマンド」>「ダイナミクス」を選択します。
一番上にある「アクティブリジッドボディ」をクリック。



「アイテムリスト」に「solver」というアイテムが追加されてダイナミクスが関連付けられたことが確認できます。



フレーム数の調整をします。下の「設定」をクリック。
表示されるウィンドウの「シーンの終了」と「カレント範囲終了」を30フレームにします。



 
下の▷ボタンを押します。すると破片が重力によって下に落ちていくアニメーションが再生されます。



 
ちょっとこのままでは迫力がないので壊れ方を調整していきます。「アイテムリスト」で「Mesh」を選択している状態で「プロパティ」>「ダイナミクス」の「衝撃」パラメータ をとりあえず図のように調整しました。



そんで、再生!
ええ感じではじけたんじゃないっすかね。。
ちょっと静止画なんでわかり辛いですが。。。



 
よき感じのシミュレーションができたので、この挙動にキャッシュをかけます。
下のキャッシュボタンを押して、開かれるウィンドウで終了フレームを確認してOK!



 
最後に、今回は最終出力がfbxなので各「Mesh」にシミュレーションして演算された挙動をトランスフォームにキーフレームとしてベイクします。
「アニメーション」>「ベイク」をクリック



「アイテムベイク」のウィンドウが表示されるのでそのままOK



 
時間軸を見るとキーフレームがうたれていることが確認できます。
ダイナミクスの挙動がトランスフォームのキーフレームにベイクされたわけです。



この状態で「fbx」を出力、とりあえずプログラム側で問題なく動いてくれたようです。
パラメータで挙動が変わるので色々ためしてみると楽しいよ。

 

0 件のコメント:

コメントを投稿