Blenderで無重力アニメーションをやってみましたので、その方法を広めたいと思います。
Blenderで無重力アニメーションを表現するには?
Blenderで無重力アニメーションを表現するにはいくつかポイントがあります。
- オブジェクトに物理演算のRigidBodyをつける
- オブジェクトのRigidBodyのプロパティで必要に応じてAnimatedにチェックをつける
- シーンのGravity(重力)の値を 0 にする
実は無重力のアニメーションを表現するにはシーンの重力を0にすればOKです。シーンの重力を0にするには、プロパティパネルのシーンタブでGravityの値を0にします。
RigidBodyはオブジェクトに質量を与えるBlenderの物理演算機能です。物理演算タブ(Physics)でRigidBodyを設定し必要に応じてAnimatedにチェックをいれておく必要があります。
RigidBodyにAnimatedをつけておかないとオブジェクトに当たり判定がなくなり、オブジェクトをただ通過するだけになります。RigidBodyを使ったアニメーションにかんしては以下の記事でも詳しく解説しています。
Blenderの物理演算にアニメーションを追加し、メダルゲームを検証する。
Blenderのアドオン「CellFracture」を使いオブジェクトを粉砕する
Blenderのアドオン「CellFracture」を使えば、オブジェクトを粉砕する表現ができます。アドオンを使うには次のようにします。
- BlenderメニューのFile→UserPreferences→AddOnタブへとすすむ
- アドオンの検索欄にcellといれ、見つかった「CellFracture」にチェックを入れる
- オブジェクトモード時にツールシェルフのToolタブに、CellFractureという項目があるのでクリックする
- メニューがあらわれるのでとりあえず Own Vertsを選択し OKボタンをおす
- オブジェクトの自動分割がはじまり、となりのレイヤーに分割されたオブジェクトが作成される
BlenderのアドオンCellFractureは機能が多いのでとりあえず、頂点の数だけ分割するOwnVertsを選択。(好きなやつを選ぶ)、CellFractureのポイントは、オブジェクトを分割し、分割されたオブジェクトはひとつひとつが独立しているという点です。
オブジェクトの粉砕を表現場合、Blender上では分割されたオブジェクトひとつひとつにRigidBodyのActiveを設定しておく必要があります。
CellFractureで分割したオブジェクトにArrayモディファイアをつけてもうまくいかない?
たとえばCellFractureを使ってぶちこわしたい壁オブジェクトをつくったとします。それをなんこも作成するのがめんどくさいので、Arrayモディファイアをつかって複製しようとしてもうまくいきません。分解されたオブジェクトをすべて選択してArrayモディファイアを追加しても、オブジェクトのひとつにしかArrayモディファイが適用されず、全体を複製することができません。
粉砕オブジェクトを複製したくなったら、Blenderの標準機能であるオブジェクトの複製を使用します。ショートカットキーはShift + dを使います。何個も複製したいなら、直前の作業を繰り返すShift + Rを使うこともできます。
作成した無重力アニメーションの動画
レンダリングエンジンにCyclesRenderを使った動画をのせておきます。CyclesRenderでアニメーションをレンダリングする場合、グラフィックボードの性能
にもよるとは思いますが、とてつもない時間がかかりますので注意が必要です。レンダリングをもし中止したくなったらEscキーでレンダリングの中断が可能です。
これが作成した動画です。↓
Blender無重力アニメーションまとめ
Blenderで無重力アニメーションを表現するにはプロパティパネルのシーンタブにいきGravityを0にする。なおかつ、オブジェクトに適切にRigidBodyを適用し、必要におうじてAnimatedにチェックを入れキーフレームを追加する。以上がまとめになります。
Blenderの物理演算はつかいどころはよくわからないですが、やっているとちょっとだけ楽しいです。
コメント