Maya2017 ボクセル落下粉砕遊び

どうも!Maya太郎です。

今回はお遊びネタとして「簡単粉砕」の機能の紹介をします。
Bullet(物理シミュレーション)の機能を使って
前回Maya2017update3のMASH改良点(中空のボクセル化)
作ったボクセルモデルを粉砕するお遊びです。

一つ一つの機能を説明するととても長くなるので
今回はBulletの機能は説明しません。

単純な一本道の作業工程のみの紹介です。
ですので小ネタとしてお読みくださいね。

Mashを使って作成した、球状のボクセルオブジェクト…

これを簡単な設定で粉砕してしまうお遊びです。
Mashのノード関係(ヒストリー)をすべて消去し、ただのオブジェクトとして扱えるようにしておきます。
メッシュ分離などをして、個々のBOXオブジェクトに分離しておいてください。

Bulletのシミュレーションを行う前に、前処理として
・個々のボクセルのピボット(中心点)を個々のオブジェクトの中心に設定しておく
・トランスフォームのフリーズ
を必ず行ってください。前処理が不十分だとシミュレーションがおかしな結果になる場合があります。

地面からすこし高い場所に移動させます。

「FX」→「Bullet」→「リジッドセット」
複数のオブジェクトを一つの塊として物理シミュレーションを行う機能です。
バラバラに粉砕するオブジェクトを事前に一つの塊として扱う場合に使います。

適用すると作成されるBulletSolverノードの…

アトリビュート設定を何カ所か行います。

まず、地表への衝突を有効に…
(重力はすでに自動的に有効になっているので、地面に落下して衝突することになります)

衝突シェイプタイプのデフォルト設定が「ボックス」なのは
本来、衝突判定を簡素化するためのバウンディングボックスとしての
意味合いなのですが
今回、形状自体がボクセルのため
ここは「ボックス」のままで問題ありません。

粘着のシェイプをオンに。
ボクセル同士がある程度粘着している(簡単に分離しない)状態にしておきます。
「粘着の無効化のしきい値」を超える力が加わった時に
ボクセル同士の結合が解かれる(粉砕)という設定です。
今回ここの微調整は行いませんが…

シミュレーション前に、再生スピードを
「すべてのフレームを再生」にすることを忘れずに…

この状態で再生ボタンをおすと、
Bulletのシミュレーションが開始されます。
複雑な設定はしていませんが、
重力による落下
地表への衝突
衝突の衝撃で粘着が無効になりバラバラに
破片は地表で四散

というアニメーションが簡単にできます。
適当な設定でもこの程度ならワンタッチで作れます!

作業の休憩時などに
遊びで楽しんでいただければ…という目的での紹介でした。

では!