On this page |
MPMネットワークは次の4個のコンポーネントで構成します: MPM Source、
MPM Collider、
MPM Container、
MPM Solver。
その最初の3個のノードをそれぞれMPMソルバに接続すれば良いので、セットアップはとても簡単です。
MPM Source ¶
MPM Sourceは、ジオメトリメッシュまたはボリュームからMPMパーティクルを生成し、シミュレーションで使用するマテリアルタイプを定義します。
Material Preset パラメータは、このノードを配置した時にまず最初に注目すべき重要なパラメータです。
このパラメータには、新しいシミュレーションをセットアップする際にすぐにでも開始できるプリセットマテリアルの選択肢が用意されています。
この選択肢には、次のマテリアルタイプが含まれています: Snow(雪)、Soil(土)、Mud(泥)、Concrete(コンクリート)、Metal(金属)、Jello(ゼリー)、Rubber(ゴム)、Water(水)、Honey(蜂蜜)、Sand(砂)。
マテリアルタイプによってシミュレーションが遅かったり速かったりします。
例えば、コンクリートは雪や水よりもはるかに硬いので、より多くのサブステップが必要で、シミュレーションに時間がかかります。
同じシミュレーション内にソースマテリアルが複数存在する場合、そのサブステップ数は、最も硬いマテリアルによって決まります。
次に設定すべきことは、放出を1回だけそれとも断続的に放出するのかです。 これは、 Emission Type ドロップダウンメニューを使用して Once または Continuous のどちらかに設定します。


MPM Collider ¶
MPM Colliderには3つのタイプのコライダーがあります: Static、Animated(Rigid)、Animated(Deforming)。
また、マテリアルがコライダーに当たった時に跳ね返るのか、それとも、削除されるのか選択することができます。
VDBコライダーのみがサポートされていることに注意してください。
このノードは、メッシュからVDB表現を生成したり、直接VDBを接続することができます。
To... | Do this |
---|---|
静的コライダーをセットアップする |
Collider Type パラメータを Static に設定します。 これが最も効率が良いので、デフォルトのMPMコライダーになっています。
このコライダーは、シミュレーション中にメモリ内で単一 |
トランスフォームコライダーをセットアップする |
これは、アニメーションするコライダーに対して最も効率が良く、サブステップ毎にフレーム間でトランスフォームが補間されるので非常に精度が良いです。
このコライダーは、単一 |
変形コライダーをセットアップする |
このコライダータイプは Animated (Rigid) よりも処理が重いので、実際に変形が行なわれている場合にのみ、これを使用してください。
このコライダーは、 |
マテリアルをコライダーに引っ付ける |
Material セクションには、 Friction パラメータと Sticky パラメータがあります。
その Sticky パラメータの値を このサンプルは、TabメニューからMPM Configure Rolling Snowballサンプルを配置することで確認することができます。 |
MPM Container ¶
MPM Containerは、MPMシミュレーションの解像度と開始フレームを定義します。
つまり、このMPM Containerは、MPM計算に関係するすべてのMPMノードに接続しなければなりません。
MPM Source、
MPM Collider、
MPM Solverには、どれもこのノードに接続するための入力が用意されています。
別の手段として、それらのノードの MPM Container パラメータ内に依存関係リンクを使うことでもMPMコンテナに接続することができます。
この方法を採用する場合、ネットワークエディタの View メニューの Dependency Link セクションにある Show for Selected Nodes を有効にすることで、依存関係が視覚的に分かります。
Resolution セクションはシミュレーション全体の解像度を決めるのに使用されるグローバルのパーティクル間隔を設定する場所なので、そのセクション内のパラメータは非常に重要です。
Particle Separation パラメータは、ソースの詳細レベルだけでなくコライダーの詳細レベルまでも設定します。
Grid Scale パラメータは、その Particle Separation に乗算して、バックグラウンドグリッドのボクセル幅dx
を定義します。
デフォルト値の2
は、平均して1ボクセルあたり8
個のパーティクルを詰めます。
必要に応じて、シミュレーションコンテナに境界を追加することができます。 デフォルトでは、コンテナには境界がありませんが、境界を定義することで、マテリアルパーティクルがその境界に接触した時に跳ね返ったり削除されるようにすることができて便利です。 このノードの Boundaries セクションで、その境界を定義することができます。
MPM Solver ¶
MPM Solverは、1番目の入力と2番目の入力のそれぞれに渡されたソースとコライダーに基づいて、シーンを計算する実作業を行ないます。
このノードには2つのタイプのサブステップがあります: Global Substeps と Substeps Min/Max 。
Global Substeps は、各シミュレーションフレームのDOPサブステップの数です。
パフォーマンス上の理由で、通常ではこれを1
のままにすべきですが、断続的に滑らかな放出を実現したいのであれば、この値を増やすと良いでしょう。
Substeps Min/Max は、サブステップの最小数と最大数の制限を設定します。
MPMソルバは、マテリアルのタイプと速度に基づいて、最も低いサブステップ数を動的に選択します。
デフォルトでは最大値が10,000に設定されていますが、必ずしも10,000が使用されるわけではありません。
出力されたジオメトリの実際のサブステップ数はDetailアトリビュートで確認することができます。
そのデフォルト値が高いのは、コンクリートや金属などの硬いマテリアルを考慮しているためです。そのようなマテリアルでは、より多くのサブステップが必要で、処理が遅くなることが予想されます。
必要に応じて、 Forces セクションで重力、空気抵抗、風などのフォースを適用することができます。 摩擦や粘着性を制御する追加パラメータを持った地面を有効にすることもできます。これは、斜面を滑り落ちる雪などのシミュレーションをしたい場合に役に立ちます。
Visualize タブのパラメータでは、コンテナ、コライダー、地面、バックグラウンドグリッドを表示することができます。
MPM Solverの中に入ってカスタムフォースを追加することもできます。
このネットワークは、フレーム毎に1回評価されます。
可能であれば、Gas OpenCLノードを使用した方がホストからOpenCLデバイスに不要なコピーが回避されるので、VEXノードよりもパフォーマンスが向上します。
詳細は、トラブルシューティングのページを参照してください。