-Blenderで剛体シミュレーションをするときの手順と注意点-


9. 崩壊させよう(その2)

■ 既にある形状を破片に分解する

ブロック塀のように、パーツの集合体を崩壊させるのは比較的簡単ですが、既にある形状を破壊するにはどうすればよいのでしょうか。
Cell Fracture Add-on を使って、オブジェクトを分割してから崩壊させてみます。

ユーザー設定を使って、Cell Fracture Add-on を有効にします。
すると、画面左のツールシェルフ内に Cell Fracture ボタンが追加されます。
立方体でも良いのですが、多少複雑な形状でも対応していることを見るために、ちょっとだけ複雑な形状を用意します。
このとき、用意する形状は閉じていなければなりません。
(ポリゴンに穴があいていると、どっちが内側でどっちが外側か定義できなくなるので、分割がうまくいかなくなります)
Cell Fracture を実行します。設定できる項目がたくさんありますが、とりあえず左のように設定しました。
元の形状をばらばらにして、さらにばらけたパーツを再分割を繰り返して破壊していきます。数値を大きくしすぎると、ものすごいパーツ数になってしまうので、最初は控えめの数値で試す方が良いでしょう。

Source Limit: 最初の分割を最大で12個にしました。
Noise: ランダム成分が無いと、整然と分割されてしまうので、ある程度の数値を入れておきます。

Recursion: 最初の破片を最大でもう1回再分割します。
Source Limit: 再分割する破片数の上限です。
Clamp Recursion: 再分割によってこのパーツ数に達したら中断します。
Random: 再分割をする確率です。どのパーツから優先的に再分割をするかは隣の選択肢で設定します。(大きいほうから、小さいほうからなど)

Recenter: 前ページと同じ理由で、破片ごとの原点が正しい位置にくるように計算をするようにします。

Next Layer: 破片をどのレイヤーに生成するかです。同じレイヤー上に生成されると混乱するので、次のレイヤーに生成するようにします。

Group: 破片をオブジェクトグループに設定します。これは、後述する理由で設定しておいた方が良いです。
実行すると、2つめのレイヤーにばらばらに分割されたパーツが大量に作成されました。
全てのオブジェクトに対して、剛体シミュレーションの設定をします。前ページと同じように、全ての破片を選択状態にして、アクティブなパーツにたいして1つ剛体設定をして、Copy From Active (アクティブからコピー)を行うのが一番楽だと思います。

破片を選択するにあたっては、グループの設定をしているので、Shift G を使ってグループ選択を利用することもできます。(グループを使う利用は、後述するようにこれ以外にもあります)

注意点としては、元のレイヤーに元の破壊前のオブジェクトが残っています。
レイヤー表示を調整することで、崩壊のシミュレーションの表示を、破壊されたパーツで行うことができました。
(この時点で、レイヤー1に破壊前のオブジェクトが、レイヤー2に破壊後のオブジェクトが重なって存在しています。)

■ 途中から破壊したい

ところが、この状態では途中から破壊を起こそうとしても、ひび割れ状態からスタートしてしまいます。
表示のオン、オフを使って破壊前のオブジェクトと、破壊後のオブジェクトを切り替えようにも、数百ある破片を全部表示切替するの…?と怖気づいてしまいます。

グループを利用して楽に表示の切り替えをしてみます。

最初に、すべてのパーツを Deactiveted (非活性)状態にしておきます。(Copy From Active を うまく使って…)

こうしておくと、何かがぶつかってくる、(もしくはぶつかりそうになるまで)静止して、破壊が始まりません。
床も近くにあるので Deactiveted しておかないといけません。

これで、衝突が起きてから初めて崩壊が起こります。
しかし、特に輪郭線などを表示している場合は、ぶつかる前からひび割れ状態なのをどうにかしなければいけません。

また、厳密には衝突が起きてからではなく、「動いている剛体がすぐ近くに存在したら」非活性状態が解除されてしまうようです。ゆっくりと近づいている物体の場合、ぶつかる直前に崩壊が始まってしまうので、何か別の手立てを考えないといけません。

(目に見える衝突物はダミーで、見えない剛体を使うなど…)
ここで、レイヤー1側だけが表示される状態にして、レイヤー1にエンプティを一つ原点に配置します。
そして、Duplication 機能で、グループのオブジェクトをコピーします。これによって、(レイヤー2にいるはずの)破壊の起きているオブジェクトたちのコピーが、エンプティのいるレイヤー1でも表示されます。
このコピーの表示は、エンプティの表示、非表示を反映しますので、衝突の瞬間に、表示と非表示が入れ替わるようにキーを打ちます。

(表示、非表示も、I キーで キーを打つことができます!)

これで、数百の破片の表示、非表示の制御の代りに、エンプティ1つの制御で済むようになりました。
これで、ぶつかってから初めて破片に分割される表示ができるようになりました。

■ おまけ

残念ながら、スザンヌは閉じていない形状(目のあたりで別パーツの閉じていない形状が使われている)なので、
Cell Fracture ではうまく分割ができません。

inserted by FC2 system