On this page |
SOPベースのFLIP流体には、固定粘度と可変粘度の両方に対応した粘度ソルバが用意されています。 次の例は、固定粘度を使ってハチミツスプーンから流れ落ちるハチミツをシミュレーションしたものです。時間の経過とともに、何層もらせん状に積み重なっていくのが分かります。
ハチミツの見た目と粘度は、水分量によって変わります:水分量が多いほど糖度が下がり、ハチミツの粘度も低くなります。また、温度も粘度に影響します。 寒い環境では、ハチミツの粘度は高くなる傾向があり、固形状になることもあります。 ハチミツの可変的な特性により、ViscosityやSurface Tensionなどのパラメータには幅広い値を設定することになるでしょう。 必ずしも実世界の測定値に頼る必要はありませんが、参考にすることをお勧めします。
このビデオは、以下で説明している設定と値を入力した場合のシミュレーション結果です。ゆっくり流れながら、らせん状に何層も積み重なっていく典型的なハチミツの効果が確認できます。
ジオメトリのセットアップ ¶
このサンプルのセットアップには、地面オブジェクトと典型的な木製のハチミツスプーンが含まれています。 FLIPは主に川、滝、海などの大規模な場面に使用するので、この流体タイプでは必ずスケールを考慮してください。 一方で、FLIP粘度ソルバの品質は小規模のシミュレーションにも有効です。 十分な量のパーティクルを得るためには、適切なサイズのオブジェクトが必要です。 シェーダを適用する際は、スケールを上げることを検討してください。
-
ネットワークビューの obj レベルで、⇥ Tabを押してTABメニューを開きます。そこからGeometry SOPノードを作成し、その中に入ります。ここにシミュレーションネットワークを作成していきます。
-
ハチミツスプーンは回転掃引させたオブジェクトになっていて、好きなようにモデリングして構いませんが、サイズは十分な大きさにしてください:このシーンでは、スプーンの長さは3.5メートルになっています。Transform SOPノードを使用して、オブジェクトの位置、スケール、向きを設定します。
-
地面オブジェクトを追加します。Box SOPノードを使用し、Transformノードをもう1個追加してスケールします。
-
Merge SOPを追加し、その入力にハチミツスプーンと地面のノードを接続します。このノードによって、両方のオブジェクトが単一オブジェクトとして扱われるようになります。
時間設定 ¶
タイミングは、粘度の高い流体のシミュレーションで中心的な役割を果たします。 粘度と流れる速度のバランスをうまく取ることが重要です。 粘度が低すぎて、流れる速度が速すぎると、流体は適切な層を形成せず、しばらくすると溶け込んでしまいます。 また、流れが非常に遅い流体では、パーティクル流体のサーフェスにチラツキが発生しやすくなります。
1つの方法は、FLIP Solver SOPを使用し、 Quality ▸ Time Scale 値を下げることです。 また、シミュレーションのフレームレートを変更する方法もあります。
-
GUIの左下コーナーにある Global Animation Options… アイコンをクリックして、設定を開きます。
-
Animation ▸ FPS で
50
と入力します。シミュレーションを25 FPSで再生すると、流体の速度が半分になります。これは、ソルバの Time Scale を0.5
に設定した場合と同じ効果です。 -
最後に、シミュ―ション全体の長さを決めます。これも Global Animation Options… 内で行なうことができ、 Animation ▸ End を
380
に設定します。
実際には、 Time Scale の変更と FPS の変更には若干の違いがあります。 このプロジェクトでFPSの方法を使用したのは、その方がやや滑らかに仕上がるからです。
ソースアニメーション ¶
現実世界のスケールでシミュレーションをセットアップすると、ソースオブジェクトがあまりにも小さすぎて、十分な量のパーティクルを作成することができません。 スケールを上げてソースオブジェクトを十分な大きさにし、ハチミツが上手く流れるようにします。
-
ソースオブジェクトはSphere SOPで、 Uniform Scale は
0.125
に設定されています。 -
Sphereノードの Center を使用して、スプーンより約
2
ユニット上にその球を配置します。
スプーンと柄の一部にハチミツをかけているかのように、Sphereをアニメーションさせます。 スプーンの向きに合わせて、 Center パラメータのX値またはZ値をアニメーションさせます。
-
フレーム
97
に移動して、Sphereの初期位置を設定します。 -
Center をAlt + クリックして、アニメーションキーを打ちます。
-
フレーム
209
に移動したら、Sphereノードを右に動かして、もう1つキーを打ちます。 -
フレーム
334
に移動したら、Sphereノードを左に動かして、さらに1つキーを打ちます。
FLIP流体のセットアップ ¶
シミュレーション全体のセットアップは、短いノードチェーンで構成されています。
FLIP Container SOPノードは、シミュレーションドメインのサイズとプロパティに加えて、パーティクルとボクセルの数も定義します。 原則として、パーティクルが多いほどディテールは細かくなり、シミュレーション時間が長いほどメモリ使用量が増えます。
-
FLIP Containerノードを追加します。
-
ボクセルおよびパーティクルの数は、 Particle Separation で決まります。ソースオブジェクトであるSphereの半径はわずか
0.125
なので、 Particle Separation はかなり小さくしなければなりません。0.008
の値に設定すると、十分な量のパーティクルを生成することができます。 -
シミュレーションのメモリ使用量をなるべく低く抑えるために、 Size は流体と十分なバッファのみが含まれるように設定します。パーティクルがドメインに触れて削除されることがないようにしてください。
-
Surface Tension は流体を収縮させたり、滑らかにしたりします。チェックボックスをオンして、
150
と入力します。 -
Viscosity は流体のタイプを定義します。チェックボックスをオンにします。このシーンのハチミツの Viscosity は
2000
です。粘度を高くして、どろりとした挙動にしたい場合は、この値を上げます。
FLIP Source: Velocity SOPノードは、FLIP Containerの設定に基づいて流体を作成します。
-
FLIP Source: Velocityノードを追加します。
-
その最初の入力と、FLIP Containerの3つの出力を接続します。
-
4番目の入力( Geometry to Source )をSphereに接続します。
-
Additional Velocity を
0,-1,0
に設定し、下向きの流れを作成します。
FLIP Collide SOPを介して、ハチミツスプーンと地面オブジェクトは流体と相互作用します。
-
FLIP Collideノードを追加します。
-
その最初の3つの入力と、FLIP Sourceの3つの出力を接続します。
-
4番目の入力( Geometry to Source )をMergeノードに接続します。
FLIP Solver SOPはシミュレーションの中核要素であり、変更する必要があるのは1つのパラメータだけです。
-
FLIP Solverノードを追加します。
-
その最初の3つの入力と、FLIP Collideの3つの出力を接続します。
-
Advanced ▸ Enable Particle Narrow Band をオフにします。
オプションのソルバ設定もいくつかあります。
-
パーティクルをポイントとして表示させたい場合は、 Visualization ▸ Points as Spheres をオフにします。
-
また、 Visualization で Show Collision をオフにすると、衝突メッシュを非表示にすることができます。
-
Narrow Band(狭帯域)は通常必要ないので、 Advanced タブを開き、 Enable Particle Narrow Band をオフにします。
See also |