On this page |
TabメニューからMPM Configureのサンプルがいくつか利用可能です。 これらは、学習目的でノードネットワークを配置するシェルフツールに似ています。 MPM Configure Water Glass サンプルは、“液体”の Water マテリアルタイプの使い方を示したものです。 1つのグラスから別のグラスに注がれる水をシミュレーションする単純なノードネットワークを配置します。
重要なノード ¶
water
これは、 Water マテリアルプリセットを使用したMPM Sourceです。
anim_glass
これはMPM Colliderで、 Animated (Rigid) コライダータイプを使用します。
これにより、ソルバによるコライダーの補間が非常に正確になります。保持するVDBが1つだけで、トランスフォーム間を補間するため、コライダーで非常に正確な衝突と粘着性が得られます。
また、
MPM Containerの Particle Separation パラメータで定義したデフォルトの解像度を上書きするために、 Voxel Size を
0.001
に下げています。
この解像度の増加により、水がグラスの薄い壁から漏れなくなります。
Friction も0に変更されているため、水はサーフェス上を自由に移動することができます。
static_glass
これはMPM Colliderで、 Static コライダータイプを使用します。
これにより、ソルバによるコライダーの補間が非常に正確になります。保持するVDBが1つだけで、トランスフォーム間を補間するため、コライダーで非常に正確な衝突と粘着性が得られます。
また、
MPM Containerの Particle Separation パラメータのデフォルトの解像度を上書きするために、 Voxel Size を
0.001
に下げています。
この解像度の増加により、水がグラスの薄い壁から漏れなくなります。
Friction も0に変更されているため、水はサーフェス上を自由に移動することができます。
merge_colliders
このノードは2つのコライダーを結合し、それからMPM Solverに渡します。
mpmcontainer
MPM Containerは、 Particle Separation パラメータを使用してシミュレーションの解像度を定義します。
mpmsolver
これはシーンの解を求めるMPM Solverです。
Collisions タブの Enable Particle-Level Collisions がオンになっていることに注意してください。
これにより、マテリアルポイントに対して2つ目の衝突ステップを直接実行できるようになります。
計算量はいくらか増えますが、衝突の精度は高まります。
また、マテリアルがデフォルトで指定したサブステップ数よりも多くを必要する場合の不安定さを修復するために、 Material Condition を少し下げています。
このサンプルから学ぶこと ¶
-
MPM Colliderで Voxel Size をオフにすると、グラスの上部が消えることが分かります。 グラスは非常に薄いため、ソルバ内で適切に表現するためには Voxel Size を小さくする必要があるからです。
-
Enable Particle-Level Collisions をオフにすると、水がグラスを通り抜けるのが分かります。 シミュレーションのグローバル解像度が粗すぎるため、グラスの薄い壁を適切にとらえることができません。 この場合、パーティクルがガラスを通り抜けないようにする唯一の方法は、パーティクルレベルの補正です。
-
MPM Solverの Visualize タブを見ると、 Color From Attribute がオンになっているのが分かります。 これが速度アトリビュートを見て、水がどのくらい速く動いているかを示します。