どうも! Maya太郎です。
Maya2018で追加されたMASH新ノード「Dynamics」を使った作例。
今回は「お皿の盛り付け」をダイナミクスを使って行ってみました。
まず、今回盛り付けるプリミティブ五種類を用意します。
事前に色をつけておきました。
すべて選択して
「MASH」→「MASHネットワーク作成」
最初は一種類のプリミティブしか表示されません。
残るプリミティブ(球や円柱など)は後ほど表示させます。
配分方法を「球面」にします。
実は今回の作例の場合
うまく盛り付けられるのであれば
どの配分タイプでもかまいません。
球面配分と同時に
「ポイント数」つまりプリミティブの数を増やします。
(後ほど、もっと増やす事になりますが)
ここで、「IDノード」を追加します。
すると、さきほど複数選択していた他のプリミティブ形状が
均等に混ざるようになりました。
ここで本題のDynamicsノードを追加します。
「地表」が生成されました。
アニメーションを再生すると「地表」で衝突したプリミティブが散らばります。
受け皿を作ります。
ポリゴン球の上部を削除し…
押し出しで厚みをつけます。
落ちるプリミティブをこの皿で受け止めるのですが、配置は必ず
「地表」の上に来るようにしましょう。
(理由は説明しなくともお解りかと思います)
受け皿の衝突判定は
MASH_BulletSolverノードを選択し
アトリビュート内の「コライダ(衝突)オブジェクト」に、皿オブジェクトをアウトライナからドラッグします。
コライダ(衝突)オブジェクトに皿オブジェクトが登録されていることを確認します。
プリミティブ達の衝突シェイプを「凸型ハル」に変更します。
さまざまな形状のプリミティブを使っているので
この設定により、個々のプリミティブの外観形状に近い衝突判定をします。
(その分、処理が遅くなります)
アニメーション再生をすると、このとおり。
60個のプリミティブでは物足りないという場合は
配分設定に戻って、増やす事も可能です。
(マシンパワーとの相談で)
300個に増やします。
プリミティブ同士がめり込んでいます。
プリミティブ同士がめり込んでいても、
シミュレーション開始直後に
重ならないように自動的に処理をしてるようです。
皿の大きさや配分タイプや個数をお好みで調整する事で
このような盛り付けをダイナミクス演算で自動的に作る事が可能です。
(しかも慣れれば簡単です)
MASHに不慣れな方も
ぜひお試しくださいね。
では!