On this page |
概要
Vellum Fluidは、Vellumフレームワークにシームレスに統合されています。
Vellum Fluidは、異なる拘束タイプ(Pressure、Struts、Cloth、Tetrahedral、Shape Match)の他のVellumオブジェクトと相互作用させることができます。
ただし、HairとStringの拘束タイプは対応していません。
シミュレーション内のすべての相互作用は、単一のVellum Solver DOPを介して実行することができます。
Tip
Vellum Fluidと絡めて相互作用をシミュレーションする場合(Clothは別で以下のTipを参照)、Vellum Solverに移動して、 Substeps を5
から10
、 Constraint Iterations を20
、 Smoothing Iterations を0
から始めてください。
Tip
Vellum SolverのFluidsセクションの Viscosity / Surface Tension の値を高くした場合、 Substeps を10
から20
の間にしてください。
流体と布のシミュレーションについても同じです。
Vellum Fluidと Vellum Fluidとの相互作用
Vellum Fluidと Vellum Fluidとの相互作用の例は、水と油です。
以下のセットアップでは、2個の異なる流体エミッターを使用します。
上記の動画は、高解像度シミュレーションの例です。
別の方法として、Vellum Configure Grain SOPノードの Phase アトリビュートを使用する方法もあります。
Phase セットアップについてもっと知りたいのであれば、流体の位相ページを参照してください。
ウォータープールを追加する
-
ネットワークエディタで、 OBJ レベルで
Box SOPノードを追加します。
-
ノードの名前を
water
に変更して、その中に入ります。 -
Box SOP の Size を
2, 0.07, 1.5
に設定します。 -
ボックスを地面に乗せるために、 Center.Y を
0.035
に変更します。
水を作成する
-
OBJ レベルに移動し、 water ノードを選択します。
-
Vellum シェルフから、 Vellum Grains を選択します。
-
water ノードの中に入り、Vellum Configure Grainノードを選択します。
-
Type を Fluid に設定し、 Particle Size の値を
0.015
に下げて、パーティクルの数を調整します。 -
Packing Density を
2
に設定し、パーティクルをソースジオメトリに合わせます。 -
Mass を Calculate Uniform に設定します。
-
Jitter Scale をオンにして
0.25
に設定し、不規則なパターンになるようにします。 -
Viscosity をオンにして
0.3
、 Surface Tension をオンにして5
と入力します。
油滴を追加する
-
OBJ レベルに移動し、
Geometry OBJノードを作成します。
-
ノードの名前を
oil
に変更して、その中に入ります。 -
Sphere(Primitive) SOPノードを4個追加して、それらを
ツールでランダムに配置します。 Center.Y は
0.3
から0.6
の間になるようにします。 -
球の Uniform Scale を約
0.15
のランダムな値に調整します。 -
Merge SOPノードを作成し、そこにそれらの球を接続します。
-
Merge SOPノードを選択し、 Display/Render フラグをオンにします。
油を作成する
-
OBJ レベルで、 oil ノードを選択します。
-
Vellum シェルフから、 Vellum Grains を選択します。
-
oil ノードの中に入り、Vellum Configure Grainノードを選択します。
-
Type を Fluid に設定し、 Particle Size の値を
0.015
に下げて、パーティクルの数を調整します。 -
Packing Density を
2
に設定し、パーティクルをソースジオメトリに合わせます。 -
Jitter Scale をオンにして、デフォルト値のままにします。
-
Mass を Calculate Uniform に設定します。
-
Density を
700
に設定して、油滴が水面に浮くようにします。 -
Viscosity をオンにして
5
、 Surface Tension をオンにして10
に変更します。
水と油を取り囲む
-
OBJ レベルに戻り、もう1個Box SOPノードを追加します。
-
ノードの名前を
container
に変更します。 -
container ノードの中に入り、Box SOPの Size を
2, 2, 1.5
、 Center.Y を1
に設定します。 -
OBJ レベルで、containerノードを選択します。
-
Collisions シェルフタブから、 Static Object を選択します。
-
container ノードの Display/Render フラグをオフにして、非表示にします。
ソルバを調整する
-
OBJ レベルに戻り、
DOP Networkの中に入ります。
-
Vellum Solverノードを選択します。
-
Time Scale に
0.5
と入力して、現象が印象的に見えるようにします。 -
Substeps を
10
、 Constraint Iterations を20
、 Smoothing Iterations を0
に設定します。
シーンをシミュレーションします。 油滴が落ちて、ミルククラウンが作られます。 最初のフレームの間、流体は混じり合っているように見えますが、すぐに分かれて上昇します。 しばらくすると、水面のところどころに油が浮いているのが見えてきます。 高解像度シミュレーションをする場合は、 Particle Size の値を下げてください。
Vellum Grainと Vellum Fluidとの相互作用
Vellum Fluidと Vellum Grainとの相互作用の例は、水と砂です。 上記の動画は、高解像度シミュレーションの例です。
このシーンには、Vellum FluidとVellum Fluidとの相互作用のセットアップを利用できますが、設定をいくつか変える必要があります。
砂を作成する
-
oil ノードの名前を
sand
に変更します。 -
Vellum Configure Grain SOPノードを選択します。
-
Particle Size に
0.008
と入力して、パーティクルの数を制御します。 -
Packing Density を
1
にリセットします。 -
Jitter Scale をオンにして、デフォルト値のままにします。
-
Type を Grain 、 Density を
1700
に設定し、乾いた砂用の値にします。 -
Physical Attributes 下の Friction(摩擦) 系と Weight(ウェイト) 系のパラメータをオンにします。
水を修正する
-
water ネットワークの中に入り、 box1 ノードを選択します。
-
Size.Y を
0.02
、 Center.Y を0.01
に設定します。 -
Vellum Configure Grain SOPノードを選択します。
-
Particle Size を
0.008
に変更して、パーティクルの数を制御します。 -
Viscosity に
0.1
、 Surface Tension に15
と入力します。 -
Repulsion Weight をオンにして、
0.01
に下げ、Vellum FluidとVellum Grainを相互作用させます。
ソルバを調整する
-
OBJ レベルに戻り、
DOP Networkの中に入って、Vellum Solverノードを選択します。
-
Substeps を
5
、 Constraint Iterations を20
に変更します。 -
Advanced に移動します。 Open CL セクションの OpenCL Neighbor Search をオフにして、Vellum FluidとVellum Grainを相互作用させます。
砂の団子が水に落ちて破裂し、平らな砂の“山”が残ります。水は砂と相互作用を続け、砂が浅く広がります。
Vellum ClothとVellum Fluidとの相互作用
Vellum FluidとVellum Clothとの相互作用の例は、液体を受け止める布です。 Vellum Cloth、Vellum Fluid、Vellum Solverを微調整することで、さまざまな結果を得られます。 上記の動画は、高解像度シミュレーションの例です。
Clothオブジェクトを作成する
-
Grid SOPオブジェクトから始めます。
-
名前を
cloth
に変更して、その中に入ります。 -
Size を
2.5,2.5
に設定します。 -
Rows と Columns を
50
に変更して、解像度を上げます。 -
OBJ レベルに戻り、
cloth
ノードを選択します。 -
Vellum シェルフから、 Vellum Cloth を選択します。
Vellum Clothを調整して、境界ポイントをピン留めする
-
ビューポート内でViewモードの状態( ⎋ Escを押して)で、2を押してTopビューに切り替えます。
-
cloth オブジェクトの内に入って、
Vellum Constraints SOPノードを選択します。
-
Constraint Type を Cloth に変更します。
-
Pin Points の横にある
をクリックして、グリッドのすべての境界頂点を選択します。
-
Enterで選択を確定します。
-
ビューポート内で1を押してPerspビューに戻ります。
以下の手順に従ってエミッターを作成する
-
ネットワークエディタで OBJ レベルに戻ります
-
Sphere(Create) SOPで放出オブジェクトを作成します。
-
ノードの名前を
emitter
に変更して、その中に入ります。 -
Sphere SOPの Uniform Scale を
0.25
に設定します。 -
Y軸に沿って球を上方に動かして、グリッドの上の方へ配置します。
Vellum Fluidを設定する
-
もう一度 OBJ レベルに戻ります。 emitter ノードを選択したままにしておきます。
-
Vellum シェルフから、 Vellum Grains を選択します。
-
もう一度 emitter の中に入り、Vellum Configure Grain SOPノードを選択します。
-
Type を Fluid に変更します。
-
Particle Size に
0.02
と入力します。この値を後で微調整すれば、パーティクルの数を増やすことができます。 -
Jitter Scale をオンにします。今回はデフォルト値を使用します。
-
Viscosity をオンにして、
0.1
と入力します。 -
Surface Tension をオンにして、
10
と入力します。
コンテナを作成する
-
OBJ レベルで、Box SOPノードを作成し、その名前を
container
に変更します。 -
container ノードを選択します。
-
container ノードの中に入り、Box SOPの Uniform Scale を
2.5
に設定します。 -
OBJ レベルで、containerノードを選択します。
-
Collisions シェルフタブから、 Static Object を選択します。
-
container ノードの Display/Render フラグをオフにして、非表示にします。
ソルバを調整する
-
OBJ レベルに戻り、DOP Networkノードの中に入ります。
-
vellumsolver1 を選択します。
-
Time Scale で、
0.5
と入力して速度を落とします。 -
Substeps を
10
に変更します。
その他のアイデア
Vellum FluidとVellumオブジェクトとの相互作用の他の典型的な例は以下のようなものがあります
-
水中に落ちる果物(Vellum SoftbodyとVellum Fluid)
-
水面に浮かぶビーチボール(Vellum BalloonとVellum Fluid)
-
水に流される砂の城(Vellum GrainとVellum Fluid)
-
水風船(Vellum BalloonとVellum Fluid)
-
水面の泡(Vellum FluidとVellum Fluid)
-
ホースの中を流れる水(Vellum SoftbodyとVellum Fluid)
-
タブレット洗剤(Vellum SoftbodyとVellum Fluid)
サンプルファイル
Vellum Fluid-Fluid Interaction
このサンプルでは、例えば水と油のように異なる粘度と表面張力が設定された2つのVellum Fluidを相互作用させる方法について説明しています。
Vellum Fluid-Grains Interaction
このサンプルでは、Vellum Grainと相互作用するVellum Fluidの作り方について説明しています。 必ずVellum Solver DOPノードの Advanced ▸ OpenCL Neighbor Search を無効にしてください。 これは、シミュレーションがパーティクルを消さないようにするのに必要です。
Vellum Fluid-Cloth Interaction
このサンプルでは、Vellum Clothに相互作用するVellum Fluidの作り方について説明しています。