Maya初心者向け リジッドセットで粉砕シミュレーション

どうも!Maya太郎です。
過去記事「Maya2017 ボクセル落下粉砕遊び」
ボクセルオブジェクトの粉砕遊びを行いました。
今回は、粉砕に使用した「リジッドセット」をもう少し説明を交えて紹介します。


粉砕オブジェクトの用意

過去記事でも紹介した粉砕エフェクトを利用して作成します。
Maya初心者向け 「粉砕」機能で遊ぶ②破片をカッコ良くしたい!(過去記事リンク)
球体ポリゴンを作成し、ヒストリーを消去します。
ヒストリーが残っていると、次の粉砕機能が使えません。

「エフェクト」→「粉砕(オプション)」

「ソリッド粉砕」を選びます。
細かな設定は、お好みで構いません。(割愛)

設定によっては真っ黒なオブジェクト表示になります。
(おそらく破片の厚さ設定にマイナスの数値を使っているため)
ポリゴンが裏向きになっているだけなので
ポリゴンを反転すればいいです。

ポリゴンを反転させると通常表示に戻ります。

アウトライナで確認すると、solidShatterという名のグループノードの階層下に
多くの破片がぶら下がっている構造になっています。


リジッドセットを使う

グループノード(この場合はsolidShatter)を選択し
「Bullet」→「リジッドセット」

アウトライナにbulletSolverというノードが出来てるので選択

アトリビュートエディタから
いくつかの設定を行います。
「地表プレーン」にチェックを入れて、地表面での衝突判定をオンに…

タブを切り替えて
衝突アトリビュートの衝突シェイプタイプを「ボックス」から「ハル」へ

プリファレンスで再生スピードを「すべてのフレームを再生」にしておくことを忘れずに

再生ボタンを押してシミュレーションを行うと
いきなり空中で分解してしまいました。


粘着

初期状態の「粘着のシェイプ」をオンにします。
これは破片同士に粘着属性を持たせることで
結合状態を維持させる機能です。

デフォルト設定のままでは、粘着が弱い場合も多々あります。
そういう場合は落下中に分解する感じになります。

「粘着無効化のしきい値」を上げます。

しきい値を上げすぎると結合が強力で
今度は粉砕しない状態になります。

しきい値が弱いと空中分解
しきい値が強いと壊れない…
設定が難しいです…

もっと上級を目指すなら上部のパラメータを駆使するべきですが…

今回は「衝突シェイプのマージン」をゼロにしました。
これは、破片同士が密着している初期状態の隙間のマージン設定です。
破片が接触している場合は、ゼロにするようにMayaヘルプで書いていたので

そのようにやってみました。

するとどうにか落下後に粉砕する状態になりました。
ちょっと迫力ないですけど、今回はこれでいいか…(妥協)


シミュレーション結果をAlembicで書き出す

シミュレーションの結果は、破片一つ一つのアニメーションをべイクするよりも
Alembicなどのキャッシュファイルに書き出した方が管理しやすい場合が多いです。

今回は詳細割愛しますが、破片オブジェクトを選択し、Alembicで書き出します。

 


新規シーンでAlembicを読み込む

分かりやすい使い方としては新規シーンを作成し
Alembicファイルを読み込むことです。

 


まとめ

サンプルに迫力無いのが残念ですが、慣れれば簡単に 落ちる→割れるの
シミュレーションが出来るようになります。
市販のプラグインだと、もっとすごいものが出来るんですけど…

 

では!