流体コンテナは流体が存在する空間を定義した 2D または 3D の四角形の境界で、流体エフェクトは流体コンテナの外側では存在できません。流体コンテナは、ダイナミック流体エフェクトや非ダイナミック流体エフェクトの基本コンポーネントです。大海原のエフェクトにはコンテナは不要です。詳細については、大海原のエフェクトを参照してください。
流体コンテナは 3D のグリッドに分割されており、これらのグリッドの各ユニットをボクセルと呼びます。
最初に作成したときは、流体コンテナは空の状態になっています。流体エフェクトを作成するには、コンテナにコンテンツを追加してから、コンテナのアトリビュートを変更して流体の外観と動作を修正する必要があります。詳細については、流体コンテナのコンテンツを定義するを参照してください。
3D の流体はサイズが非常に大きくなり、ダイナミック流体の動作でのソルバの実行速度が非常に遅くなることがあります。これは 3D の流体を定義するのに特別なデータが必要となるためです。多くの場合は、もっと簡単でメモリの使用量が少ない 2D の流体で目的のエフェクトを実現することができます。
流体エフェクトのシミュレーション スピードを高め、メモリの使用量を低減するには、サイズ自動変更(Auto Resize)アトリビュートをオンにします。サイズ自動変更を使用すると、流体エフェクトが拡大または縮小するときに、流体コンテナの境界のサイズがダイナミックに変更されます。詳細については、流体コンテナのサイズがダイナミックに変更されるように設定するを参照してください。
流体コンテナの中にさらにコンテナを配置することはできますが、流体が互いに作用することはありません。
流体コンテナの作成については、「エミッタを使用して流体コンテナを作成する」を参照してください。
流体コンテナの修正については、「流体を変更する」を参照してください。
2D の流体コンテナは、深度がボクセル 1 個分の 3D 流体コンテナです。ボクセルのサイズは、コンテナの Z 方向のサイズによって決まります。
Z 方向のサイズが大きくなると、その方向の密度(Density)はより不透明になります。Z 方向の寸法をアニメートすることにより、完全な 3D の流体をレンダーするときのような余分な時間をかけずに、流体の中を移動するオブジェクトの 3D エフェクトを模倣することができます。
3D の流体コンテナは、深度がボクセル 2 個以上の流体コンテナです。
流体エミッタ(Fluid Emitter)を使用して、流体コンテナに流体プロパティ(密度(Density)、温度(Temperature)、燃料(Fuel)、カラー(Color))を追加することができます。流体エミッタは、シミュレーションの再生時に流体プロパティの値を作成し、グリッドの各ボクセルをこの値に変更します。流体エミッタが値を放出するには、エミッタは流体コンテナの境界内に存在していなければなりません。
密度(Density)、速度(Velocity)、温度(Temperature)、燃料(Fuel)、カラー(Color)といった流体プロパティのいずれか、またはすべての値をコンテナに設定して、流体エフェクトを定義します。
目的のエフェクトの種類と、そのエフェクトがダイナミックであるか非ダイナミックであるかによって、これらのプロパティを定義する方法は異なります。詳細については、流体コンテナのコンテンツを定義するを参照してください。
密度(Density)は、実世界における流体のマテリアルプロパティ(物質)を表します。これは、流体のジオメトリとみなすことができます。密度(Density)値が最も高いところは、より不透明に見えます。密度(Density)だけを使用して非ダイナミック流体エフェクトを作成することも、密度を速度(Velocity)およびその他のプロパティと統合して物理計算シミュレーションを作成することもできます。
速度(Velocity)はコンテナ内の密度(Density)、温度(Temperature)、燃料(Fuel)、カラー(Color)の値を移動させて、ダイナミック流体の動作に作用します。速度(Velocity)にはマグニチュードと方向の値があります。方向(Direction)は移動する流体の値のパスを定義します。
物理計算シミュレーションの場合、シミュレーションに適用するフォースに基づいて速度の値が計算されます。ただし、プロパティ値をコンテナに収めるために速度(Velocity)をフォースとして使用して、固定の速度(Velocity)パスを設定することもできます。
ダイナミック流体をシミュレートするには速度(Velocity)が必要です。
温度(Temperature)は、ダイナミック流体の動作に作用して、ダイナミック流体を上昇させたり反応させたりします。
ダイナミック流体では、密度(Density)と燃料(Fuel)を統合して、反応が発生し得る流体を作成します。密度(Density)値は反応させる物質を、燃料(Fuel)値は反応の状態を表します。温度(Temperature)は、燃料(Fuel)を燃焼させて、反応(たとえば、爆発エフェクト)を開始させることができます。反応時は、密度(Density)値と燃料(Fuel)値は反応が完了するまで徐々に小さくなっていきます。
カラー(Color)は密度(Density)にカラーを適用します。カラー(Color)は密度(Density)があるところにだけ表示されます。
以下の例は、密度(Density)、温度(Temperature)、燃料(Fuel)、速度(Velocity)の値を統合して、炎の物理計算シミュレーションを作成したものです。
流体にカラーを適用するには、次の 3 つの方法があります。
流体にシェーダが組み込まれているので、流体に対して効率的にカラーを適用できます。
グリッドを使用すると、各ボクセルのどこにカラーを配置するかを制御できます。カラーをダイナミックに動作させることもできます。つまり、複数のカラーを相互に作用させたり混ぜ合わせたりすることができます。
流体の内部ライトとアンビエント ライトのカラー値を設定して、流体のカラーに作用させることができます。また、シャドウの不透明度(Shadow Opacity)やセルフ シャドウ(Self Shadow)などその他のライティング アトリビュートも、流体のカラーに作用します。
非ダイナミック エフェクトではグラディエントまたはスタティック グリッドとして定義したプロパティだけを使用しますが(値は変化しない)、ダイナミック エフェクトではグラディエントで定義した流体プロパティとダイナミック グリッドで定義した流体プロパティを統合することができます。
たとえば、密度(Density)でダイナミック グリッド(Dynamic Grid)を使用するように設定して、密度(Density)の動きに影響を与える一定の速度(Velocity)を単一の方向に追加するということが可能です。速度(Velocity)のマグニチュードと方向はシミュレーションが進んでも変化しませんが、ソルバの実行結果として密度(Density)値は変化します。