サイトアイコン ほろほろりドットコム

[Blender 2.9] ドメイン [流体シミュレーション]

Blender 流体 物理シミュレーション ドメイン 3DCG 気体 液体

[Blender 2.9] 流体シミュレーション 『ドメイン』タイプの機能と使い方のご紹介

今回の記事は、Blenderでの『流体シミュレーション』の[ドメイン]タイプの設定についてです。

『流体シミュレーション』の基本的な使い方や、どんな機能があるのかをざっくりとまとめたページもありますので、そもそもの『流体シミュレーション』についてという基本的な所を知りたい方には、下記記事から御覧になることをおススメします。

『ドメイン』オブジェクトには、「シミュレーション全体」が含まれています。

「ドメイン」というその名の通り、「流体シミュレーションの領域」を決定するのに使用されます。

domainとは

領地、領土、(知識・思想・活動などの)領域、分野、…界、(土地の)完全所有権

引用元: domainの意味・使い方・読み方 | Weblio英和辞書

そのため、流体シミュレーションは、ドメインから切り離す事が出来ません。シミュレーションは離れることなく、ドメインの設定に応じて、辺と衝突するか、消失して描画されなくなります。

[気体]タイプのドメインのシミュレーション例
[液体]タイプのドメインのシミュレーション例

大規模なドメインには、より高い解像度とより長いベイク時間が必要であること注意してください。シミュレーションがその中に納まるだけの大きさにする必要がありますが、シミュレーションの計算に時間が掛かりすぎる程大きくしないでください。

※2020年12月28日 加筆修正を行いました。
※2021年1月8日 加筆修正を行いました。
※2021年1月18日 画像を変更しました。

目次

ドメインオブジェクトの作成方法

ドメインを作成するには、

  1. Cube(立方体)を追加し、シミュレーションを実行する領域を囲むまでCubeをトランスフォームします。もちろん、平行移動、回転、スケーリングは全て可能です。
[追加]>[メッシュ]>[Cube]を選択
3Dビューポート上に追加したCubeを変形
  1. Cubeを流体ドメインに変換するには、[プロパティエディター]>[物理演算プロパティ]タブで[流体]をクリックし、流体タイプとして[ドメイン]を選択します。
[プロパティエディター]>[物理演算プロパティ]>[流体]
[流体]>[タイプ]で[ドメイン]を選択

他の形状のメッシュオブジェクトもドメインオブジェクトとして使用できますが、流体シミュレータは『バウンディングボックス』をドメインの境界として使用します。つまり、ドメインの実際の形状はバウンディングボックスの形状そのまま長方形になります。

各メッシュオブジェクトと『バウンディングボックス』

※ちなみに、『バウンディングボックス』は、[プロパティエディター]>[オブジェクトプロパティ]>[ビューポート表示]>[バウンド]([ボックス]選択状態で)を有効にすると可視化できます。

バウンディングボックスの表示/非表示の切り替え

各パネルの概要

詳しいご紹介は後述しますとして、各パネル毎にざっとどんな機能を持っているのかをご紹介します。

[設定(Settings)]

[ドメインタイプ(Domain Type)]

流体ドメインは、液体または、気体の流れを制御できます。

ドメインタイプを動的に変更する事は出来ません。

[液体]ドメインオブジェクトと[液体]フローオブジェクト
[気体]ドメインオブジェクトと[火炎+煙]フローオブジェクト

[分割の解像度(Resolution Divisions)]

流体ドメインは、流体の「ピクセル」を構成する「ボクセル」と呼ばれる多くの「セル」に細分されます。この設定は、ドメイン内のサブディビジョンの数を制御します。サブディビジョンの数を増やすことは、高解像度の流体を作成する1つの方法です。

解像度は、「サブディビジョン」で定義されているため、ドメインが大きい程、小さなドメインと同等の解像度を得るには、より多くのディビジョンが必要になります。例えば、64の[分割の解像度]を持つ1メートルの立方体と一致するためには、2メートルの立方体には128の分割が必要になります。基本分割として使用される寸法は、オブジェクトのバウンディングボックスの最長寸法です。

以下の[液体]タイプのドメインの例では、より分かりやすいように[メッシュ]も有効にして試しています。

[液体]タイプで[分割の解像度]を”32″に設定
[液体]タイプで[分割の解像度]を”64″に設定
[液体]タイプで[分割の解像度]を”128″に設定
[気体]タイプで[分割の解像度]を”32″に設定
[気体]タイプで[分割の解像度]を”64″に設定
[気体]タイプで[分割の解像度]を”128″に設定

ボクセルのサイズを視覚化するために、3Dビューポートに表示される小さな立方体で[分割の解像度]をプレビューして、これらの分割のサイズを表示できます。

[分割の解像度]の分割サイズを3Dビューポート上で確認

[タイムスケール(Time Scale)]

シミュレーションの速度を制御します。値を低くすると「スローモーション」シミュレーションになり、値を大きくするとシミュレーションをより速く進めることが出来ます(静止レンダリングで使用する流体を生成するのに適しています)。

[タイムスケール]を”0.5″に設定
[タイムスケール]を”1.0″に設定
[タイムスケール]を”2.0″に設定

[CFL数(CFL Number)]

グリッドセルごとの最大速度を決定し、タイムステップ毎にグリッドセルで計測されます。流体は、1つのタイムステップでのみこの速度まで移動できます。このしきい値を超えると、ソルバーはシミュレーションステップを細分化します。

一般に、CFL(Courant-Friedrichs-Lewy)の数値が大きいほど、シミュレーションステップの数と計算時間が最小限に抑えられます。それでも、高速の流体の流れに対しては、物理的に正確な動作が得られません。CFLの数値が小さいほど、フレームあたりのシミュレーションステップが多くなり、シミュレーション時間は長くなりますが、高速での動作はより正確になります(例えば、高速の流体の流れが障害物に衝突します)。

[CFL数]を下げる時は、タイムステップの最大数を増やし、同様に、[CFL数]を増やす場合は、最小タイムステップ数を調整する必要があります。

[適応タイムステップを使用(Use Adaptive Time Steps)]

フレーム毎に複数のシミュレーションステップを実行するタイミングをソルバーが自動的に決定できるようにします。これは、タイムステップの最大数と最小数、現在の[フレームレート]、および[タイムスケール]に依存します。

[フレームレート]

[最大タイムステップ(Timesteps Maximum)]

フレーム毎に許可されるタイムステップの最大数。必要に応じて、ソルバーはシミュレーションステップをこの数のサブステップに分解します。

[最小(Minimum)]

フレーム毎に許可されるタイムステップの最小数。ソルバーは常に、フレーム毎に少なくともこの数のシミュレーションステップを実行します。

タイムステップの違いは、以下の様に、フローソースオブジェクトが移動するような場合に顕著に違いが出るかと思います。

[最大タイムステップ]を”4″、[最小]を”1″に設定
[最大タイムステップ]を”16″、[最小]を”8″に設定

[シーンの重力を使用 X(Using Scene Gravity X)]、[Y]、[Z]

デフォルトでは、流体ソルバーはグローバルシーン重力を使用します。この動作は、シーン設定で無効にすることが出来ます。グローバル重力を無効にすると、流体重力オプションが有効になります。

シーン設定にあるグローバル重力は、[プロパティエディター]>[シーンプロパティ]>[重力]のチェックを外すと無効に出来ます。

[プロパティエディター]>[シーンプロパティ]>[重力]

以下の例は、グローバル重力を無効にして、ドメインの設定の方で重力の操作を行ったものですが、シーン設定のグローバル重力の方で設定しても、もちろん同様の動作になります。

[X: 0]、[Y: 0]、[Z: 9.81]に設定
[X: 5]、[Y: 0]、[Z: 0]に設定

[空の空間(Empty Space)]

[ドメインタイプ]が[気体]の場合のみ出現する項目。

レンダリングを最適化するためにボクセルが空のスペースとみなされる値。

[障害物内で削除(Delete In Obstacle)]

ドメイン内の障害物と交差する液体の量を取り除きます。

エフェクターオブジェクトとして、UV球を追加して、この項目のチェックの有無で比較してみました。

[Delete In Obstacle]チェック有り
[Delete In Obstacle]チェック無し

[データをベイク(Bake Data)]、[データを解放(Free Data)]

この項目は、[モジュール]のキャッシュタイプを使用している場合にのみ使用できます。

[データをベイク]は、流体シミュレーションのベースをシミュレートしてドライブに保存します。気体シミュレーションと液体シミュレーションの両方で、これに加えて改良を加える事ができます(例えば、気体シミュレーションでは[ノイズ]を追加でき、液体シミュレーションでは[メッシュ]またはセカンダリパーティクル、あるいはその両方を追加できます)。

進行状況がステータスバーに表示されます。[Esc]キーを押すと、シミュレーションが一時停止します。

シミュレーションがベイク処理されたら、[データを開放]を押してキャッシュを削除できます。[データをベイク]プロセスを一時停止、または再開することが出来ます。

[ボーダーコリジョン(Border Collisions)]

ドメインのどちら側が流体をドメインに「通過」させ、シミュレーションの残りの部分に影響を与えずにドメインを非表示にし、どちら側が流体を偏向させるかを制御します。

以下の6方向それぞれで制御することが出来ます。

  • [前(Front)]
  • [後(Back)]
  • [右(Right)]
  • [左(Left)]
  • [上(Top)]
  • [下(Bottom)]
全てにチェック有り
[下]のみチェック有り
[前]、[後]、[右]、[左]、[上]にチェック有り

[適応ドメイン(Adaptive Domain)]

[ドメインタイプ]が[気体]の場合のみ出現する項目。

有効にすると、ドメインは気体に最適になるように適用的に縮小し、シミュレーションから気体を含まないボクセルを残すことで計算時間を節約します。[追加する解像度]を使用しない限り、適応ドメインは元のドメインの境界を超える事はありません。

[適応ドメイン]チェック無し
[適応ドメイン]チェック有り

[追加する解像度(Add Resolution)]

ドメインの外側に追加するボクセルの数。

例えば、元々のドメインとして設定しているCubeのサイズが以下のような大きさだとします。

ドメイン用に設置したCube

この項目に”0″を設定した場合、[適応ドメイン]を有効にしたことによって、ドメインオブジェクトの範囲が縮小することはあっても、拡大する事はありません。ですが、”1″以上の数値例えば”512″などを設定した場合には、ドメインオブジェクトの範囲が拡大する場合があります。逆に言うと、ドメインオブジェクトのCubeの大きさを超えた範囲までシミュレーションしたい場合は、この項目の数値を”1″以上に設定してください。

[追加する解像度]に”0″を設定
[追加する解像度]に”512″を設定

[余白(Margin)]

ボクセルで測定された、気体の周囲に残す余分なスペースの量。非常に高速で移動する気体では、適応境界によって気体が遮断されるのを防ぐために、より大きな余白が必要になる場合がありますが、これにより、計算する必要のあるボクセル数が増えることに注意して下さい。

[余白]を”2″で設定
[余白]を”24″で設定

[しきい値(Threshold)]

ボクセルが空であると見なされ、適応ドメインがシミュレーションからボクセルを切り取る事が出来るようになる前に、ボクセルに含まれる可能性のある最小量のガス。

[しきい値]を”0.000001″に設定
[しきい値]を”0.500000″に設定

[気体(Gas)]

[ドメインタイプ]が[気体]の場合のみ出現する項目。

[密度の浮力(Buoyancy Density)]

煙の密度を元にした浮力(大きな値で速く煙が上昇)。

[密度の浮力: 5]
[密度の浮力: -5]

[ヒート(Heat)]

煙のヒート値を元にした浮力(大きな値で速く煙が上昇)。

どうやら、[ヒート]の値が正か負かによって、煙や炎の放出される方向が決まるようです。

[密度の浮力: 5]、[ヒート: 5]に設定
[密度の浮力: 5]、[ヒート: 1]に設定
[密度の浮力: -5]、[ヒート: 5]に設定
[密度の浮力: 5]、[ヒート: -5]に設定
[密度の浮力: -5]、[ヒート: -1]に設定
[密度の浮力: -5]、[ヒート: -5]に設定

[渦度(Vorticity)]

煙の乱気流の量を制御します。値を大きくすると小さな渦がたくさん発生し、値を小さくすると形状が滑らかになります。

[渦度]を”0.0″に設定
[渦度]を”0.5″に設定
[渦度]を”1.0″に設定

[消滅(Dissolve)]

時間の経過とともに煙が消えるようにします。

[消滅]チェック有り
[消滅]チェック無し

[時間(Time)]

フレーム内の煙の消散速度(小さな値で速く煙が消滅)。

[時間: 5]
[時間: 50]

[低速(Slow)]

煙が対数関数的な方法で消失します。最初は速く、後は長く残ります。

[時間: 50]、[低速]チェック有り
[時間: 50]、[低速]チェック無し

[ノイズ(Noise)]

気体シミュレーションにノイズを追加すると、ベースの上に詳細なシミュレーションが作成されます。これにより、全体的な流体の動きを変えることなく、気体(つまり、火または煙、あるいはその両方)にディテール(詳細)を追加する事ができます。

流体ノイズは、流体シミュレーション用のウェーブレット乱流の実装です。

インターフェースの一部を有効にするだけでなく、[ノイズ]をチェックする事で、どのシミュレーションデータを読み取るかをキャッシュに知らせる事ができます。例えば、ノイズが有効になっているが、読み取るノイズシミュレーションデータがない場合、空のドメインが表示されます。このチェックボックスはキャッシュをリセットせず、ビューを基本解像度とノイズビューの間で切り替えるために使用できます。

[ノイズ]チェック有り
[ノイズ]チェック無し

[Upres 係数(Upres Factor)]

ノイズの解像度を向上させる係数。この係数で、([分割の解像度]に対し)スケールアップします。

[Upres 係数: 1]
[Upres 係数: 5]

[ノイズの方法(Noise Method)]

ノイズを作成するために使用される方法。[Wavelet]乱流は現在利用可能な唯一の方法です。

[強さ(Strength)]

ノイズの強さ。値が高い程、渦の乱れが大きくなります。

[強さ: 0]
[強さ: 10]

[スケール(Scale)]

ノイズのスケール。値が大きい程、渦が大きくなります。

[スケール: 0]
[スケール:10]

[時間(Time)]

ノイズのアニメーション時間。この値は、ノイズフィールドが評価される場所に影響を与えます。シードとして使用して、ウェーブレットノイズに、他の点では同じである2つのドメインでわずかに異なる見た目を与える事が出来ます。

[分割の解像度][Upres 係数]は同等ではありません。これらの解像度設定のさまざまな組み合わせを使用する事により、様々なスタイルの煙を取得できます。

多くの[Upres 係数]分割を使用した低分割シミュレーションは、一般にリアル世界のスケールでは小さく見え、火災プルームを達成するために使用できます。

[時間: 0.1]
[時間: 10.0]

[ノイズをベイク(Bake Noise)]、[ノイズを解放(Free Noise)]

この項目は、[モジュール]タイプのキャッシュを使用している場合にのみ使用できます。

進行状況がステータスバーに表示されます。[Esc]キーを押すと、シミュレーションが一時停止します。

シミュレーションがベイク処理されたら、[ノイズを解放]を押すことでキャッシュを削除できます。[ノイズをベイク]プロセスを一時停止または再開することができます。

[火炎(Fire)]

[反応速度(Reaction Speed)]

燃料の燃焼速度。値を大きくすると炎が小さくなり(燃料が非常に遠くまで燃える前に燃焼します)、値を小さくすると炎が大きくなります(燃料が完全に消費される前に更に流動する時間があります)。

[反応速度: 0.01]
[反応速度: 2]

[炎の煙(Flame Smoke)]

燃焼した燃料をシミュレートするために自動的に生成される余分な煙の量。この煙は、[火炎+煙]フローオブジェクトを使用した時に最もよく見えます。

[炎の煙: 0]
[炎の煙: 4]

[渦度(Vorticity)]

[渦度]に加える、炎の渦度。

[渦度: 0]
[渦度: 1]

[最大温度(Temperature Maximum)]

炎の最高温度。値を大きくすると、炎の上昇が速くなります。

[最小(Minimum)]

炎の最低温度。値を大きくすると、炎の上昇が速くなります。

[最大温度: 1.0]、[最小: 0.5]
[最大温度: 5.0]、[最小: 2.5]

[炎のカラー(Flame Color)]

燃やされた燃料によって生成される煙の色。

例として、青い煙を作ってみます。

[炎のカラー]を操作して作った青い煙

『カラーピッカー』を操作して、色を指定するのですが、この時、[V](Value)の値をかなり上げないと、表示される色が暗くて分かりづらいです。

[炎のカラー]の『カラーピッカー』を操作
memo: レンダリング時に煙の色を反映させるには?

[炎のカラー]で作った色をレンダリングで反映させたい場合、『シェーダーエディター』上で[ボリューム情報]ノードの[カラー]ソケットから読み込めます。

『シェーダーエディター』上で[ボリューム情報]ノードから煙の色を読み込んでレンダリング

ちなみに、[ボリューム情報]ノードの代わりに、[属性]ノードの[名前]プロパティに”color”と入力した[カラー]ソケットからも同じ情報が読み込めます。どちらのノードを使っても大丈夫です。

[属性]ノードの[名前]プロパティに”color”と入力したもの

[液体(Liquid)]

[ドメインタイプ]が[液体]の場合のみ出現する項目。

[液体]設定は、シミュレーションを構成するパーティクルの動作を制御します。

[液体]チェックボックスを有効にすると、シミュレーション用の『パーティクルシステム』が自動的に作成されます。この『パーティクルシステム』は、シミュレーションの流れを視覚化します。液体パーティクルの視覚化はオプションです。流体シミュレーションでは、パーティクルシステムが接続されていない全てのフィールドも使用されます。

[液体]のチェックボックスを有効にすると作成される特殊な『パーティクルシステム』

液体チェックボックスを無効にすると、アタッチされているパーティクルシステムとその設定が削除されます。

[液体]のチェックの有無による表示の変化

ちなみに、[パーティクルプロパティ]上からもパーティクルシステムが消えています。

memo: レンダリング時に液体を表示させるには?

実は、この流体シミュレーションで作成された液体ですが、[液体]を有効にして液体パーティクルを作成しただけの、このデフォルトのままの状態では液体はレンダリング時に表示されません。

自動で作成された液体パーティクル”Liquid”

ちゃんと表示するには、もう少し設定を弄る必要があります。

表示する方法には、次の2つの方法があります。

  • [液体]で作成された液体パーティクルの[レンダー]の設定を変更する方法。
  • 後述する[メッシュ]をベイクする方法。
[液体]で作成された液体パーティクルの[レンダー]の設定を変更する方法
[メッシュ]をベイクする方法

後者の[メッシュ]をベイクして表示する方法はそのまま[メッシュ]を有効化にしてベイクすれば良いだけです。

[メッシュ]を有効化にしてベイク

正直、[メッシュ]をベイクする方法の方が簡単に(ただしベイクに時間はかかります)出来ると思うのですが、やってみたいとおっしゃる方の為に、[液体]で作成された液体パーティクルの[レンダー]の設定を変更する方法についてもご紹介させていただきます。

  1. まず、適当なメッシュオブジェクトを作成します。適当に”LiquidObject”という名前に変更しておきます。
  1. “LiquidObject”のマテリアルを適当に作成します。
  1. ドメインオブジェクトで”Liquid”と名付けられている液体パーティクル設定の[レンダー]>[レンダリング方法]を[オブジェクト]へ変更し、[インスタンスオブジェクト]に先ほど作成したオブジェクト名を設定します。
  1. このままレンダリングすると、液体パーティクルの『エミッター』であるドメインオブジェクトのCubeのメッシュしか映らないので、[レンダー]>[エミッターを表示]のチェックを外しておきます。
  1. この状態でレンダリングしますと、液体パーティクル1つ1つが”LiquidObject”で表示されます。

ちなみに、『パーティクルシステム』の[レンダー]パネルの設定については、下記記事にて詳しくご紹介させていただいておりますので、よろしければ併せてご覧ください。

[シミュレーション方法(Simulation Method)]

液体パーティクルのシミュレーション方法を決定します。

[FLIPの比率(FLIP Ratio)]

[シミュレーション方法]に[FLIP]を選択している場合のみ表示される項目。

液体パーティクルの速度を更新する時に使用するFLIP速度。

値が”1.0″の場合、完全にFLIPベースのシミュレーションになります。完全にFLIPベースのシミュレーションは、より混沌としたスプラッシュを生成し、大量の液体をシミュレートする場合に適しています。

小さい値を使用すると、動作の乱れが少なくなり、スプラッシュが微妙になります。これは、液体が小規模であると想定されるシーンをシミュレートする場合に最適です。

[FLIPの比率: 0]
[FLIPの比率: 1]

[システム最大(System Maximum)]

シミュレーションで許可される流体パーティクルの最大数。

このフィールドが”0″以外の値に設定されている場合、シミュレーションにはこの数を超える流体パーティクルが含まれることはありません。

それ以外の場合、つまり値が”0″の場合、ソルバーは必要に応じて常に新しいパーティクルをサンプリングします。

[システム最大: 0]
[システム最大: 5000]

[パーティクル半径(Particle Radius)]

グリッドセル単位での1つの液体パーティクルの半径。

この値は、パーティクルによって覆われる領域の量を表します。したがって、パーティクルの周囲の領域が液体と見なされる量を決定します。

半径を大きくすると、パーティクルがより多くの領域をカバーできるようになります。これにより、空の部分、より多くのグリッドセルが液体としてタグ付けされます。

シミュレーションが望ましくない、物理的に正確でない方法でボリュームをリークまたは増加しているように見える場合は常に、この値を調整する事をお勧めします。つまり、液体が消えたように見える場合は、この値を増やす必要があります。また、生成される液体が多すぎる場合は、逆の事が当てはまります。

[パーティクル半径: 1]
[パーティクル半径: 2]

[サンプリング(Sampling)]

パーティクルをサンプリングする時に使用される係数。

値が高い程、より多くのパーティクルがサンプリングされます。パーティクルの再サンプリングは、シミュレーションの全てのステップで発生することに注意してください。

[サンプリング: 1]
[サンプリング: 5]

[ランダムさ(Randomness)]

新しいパーティクルは、このフィールドで制御できる位置にランダム性を付けてサンプリングされます。

値が高い程、流入領域で液体パーティクルがよりランダムにサンプリングされます。値が”0.0″の場合、全ての新しいパーティクルは、対応するグリッドセル内で均一にサンプリングされます。

層流(ランダム性がほとんどない)、またはより乱流(ランダム性が高い)を作成する場合、この値が役立ちます。

[ランダムさ]の数値を操作

[パーティクル数最大(Particles Maximum)]

グリッドセルあたりの液体パーティクルの最大数。

シミュレーション中、セル内の液体パーティクルの数は変動する可能性があります。パーティクルは他のセルに流れ込むか、狭い帯域の外に移動すると削除される可能性があります。再サンプリングは、この最大値を考慮して新しいパーティクルを追加します。

この値は、セルあたりのパーティクルの上限しきい値を設定します。また、シミュレーションに含まれる可能性のあるパーティクルの数を見積もるのにも適しています(グリッドの解像度も考慮する必要があります)。これは、ベイク処理の前やシミュレーションを計画する時に役立ちます。

[最小(Minimum)]

グリッドセルあたりの液体パーティクルの最小数。最大パーティクルしきい値と同様に、この値は、セル毎に少なくとも一定量のパーティクルが存在することを保証します。

[パーティクル数最大: 4]、[最小: 1]
[パーティクル数最大: 16]、[最小: 8]

[さざ波の幅(Narrow Band Width)]

パーティクル(さざ波)の幅。(大きい値でさざ波とパーティクル数が増加)。

液体パーティクルが流入出来る狭帯域のグリッドセル単位の幅を制御します。

値を大きくすると、帯域が厚くなり、流入領域がパーティクルで完全に満たされる可能性があります。シミュレーションの目的が液体パーティクルを視覚化することでない限り、パーティクルが増えるとシミュレーションが遅くなるため、帯域幅を大幅に大きくしない事をオススメします。

状況によっては、この値を増やすと、シミュレーションが漏れ出しているように見える時に、ボリュームを作成するのに役立ちます。他の全ての場合では、液体の表面にほとんどのディテール(詳細)が含まれ、液体内のパーティクルをシミュレートすることはコンピューティングリソースの最適な使用法ではないため、狭帯域を出来るだけ薄く保つ事が最善です。

狭帯域は、流体シミュレーション用の狭帯域FLIPの実装です。

[さざ波の幅: 1]
[さざ波の幅: 5]

[分割障害物(Fractional Obstacles)]

流体/障害物(二次障害物)でより細かい解像度を有効にします。

この項目は、障害物がドメイン内で傾斜している場合に発生する「ステッピング効果」を低減します。また、障害物の上を液体がよりスムーズに流れるようにします。

[分割障害物]チェック無し
[分割障害物]チェック有り

[障害物との距離(Obstacle Distance)]

流体と障害物がどれだけ離れているかを決定します。

この値を使用して、傾斜した障害物上でより流動的な動きを実現できます。障害物の傾斜に応じて、この値を大きくすると、液体パーティクルが障害物上をよりよく流れるようになります。このフィールドを負の値に設定すると、流体が障害物の内側に向かって移動します。

[障害物との距離: -5.0]
[障害物との距離: 0.5]
[障害物との距離: 5.0]

[しきい値(Threshold)]

障害物のしきい値。

流体が障害物セル内に流入可能な量を決定します(大きな値で境界セルが障害物としてタグ付けされやすくなり、境界のスムージングエフェクトが減ります)。

[しきい値:0.05]
[しきい値: 1.00]

[拡散(Diffusion)]

液体の拡散は、液体の物理的特性を定義し、次に液体がその環境とどのように相互作用するかを定義します。拡散の主な要因は、粘度と表面張力です。これらのプロパティを調整して、水、油、蜂蜜、またはその他の液体のように動作する仮想液体を作成出来ます。様々な物質の拡散を変更するためのいくつかのプリセットが事前定義されており、プリセットメニューで変更できます。[拡散]の設定は、パネルヘッダーで有効/無効を切り替える事が出来ます。

プリセットメニューの表示

[Fluid Presets]

  • [Honey]
プリセットメニューから[Honey]を選択した時のパラメータ
プリセットの[Honey]でシミュレーション
  • [Oil]
プリセットメニューから[Oil]を選択した時のパラメータ
プリセットの[Oil]でシミュレーション
  • [Water]
プリセットメニューから[Water]を選択した時のパラメータ
プリセットの[Water]でシミュレーション

粘度(Viscosity)

粘度とは、流体の「厚さ」を指し、実際には、特定の表面積のオブジェクトを特定の速度で移動させるのに必要な力を指します。

粘度を決定するのに必要な数値の入力を簡略化するために、基数とその数値の指数を入力して科学的記数法で値を入力することにより、粘度を変更します。

ちなみに、その粘度のBlenderでの詳しい扱われ方や、いくつかの流体を例に取り、数値として表した表等が、Blenderの公式マニュアルに掲載されていますので、ご興味ありましたら是非ご覧ください。

[ベース(Base)]

粘度値の基数。

粘度の設定は、10の([指数]*-1)乗の値で決まる。

[指数(Exponent)]

粘度値の負の指数(5*10^-6などの小さい値を入れて簡素化)。

シミュレータは、「流動」しない材料などの非流体には適していません。粘度を非常に大きな値に設定するだけでは、剛体の動作は発生しませんが、不安定になる可能性があります。

[表面張力(Surface Tension)]

グリッド単位の表面張力。値が高い程、表面張力の高い液体が生成されます。

[表面張力: 0]
[表面張力: 50]

[パーティクル(Particles)]

[飛沫(Spray)]

セカンダリパーティクルシミュレーション中に飛沫パーティクルを作成します。飛沫パーティクルは、より大きなスプラッシュがあるときに液面上の空気中を飛んでいるように見えるパーティクルです。

[泡沫(Foam)]

セカンダリパーティクルシミュレーション中に泡沫パーティクルを作成します。泡沫パーティクルは、液面上を移動するだけのパーティクルです。

[気泡(Bubbles)]

セカンダリパーティクルシミュレーション中に気泡パーティクルを作成します。気泡パーティクルは、液面下を移動するパーティクルです。

液体を表す[メッシュ]
[メッシュ]と[飛沫]
[メッシュ]と[泡沫]
[メッシュ]と[気泡]

セカンダリパーティクルタイプを有効にすると、そのタイプのパーティクルの『パーティクルシステム』も作成されます。パーティクルタイプを無効にすると、設定を含むこの『パーティクルシステム』が削除されます。

各タイプのセカンダリパーティクルを有効化
有効にしたタイプのパーティクルの『パーティクルシステム』が作成される

[統合エクスポート(Combined Export)]

同じパーティクルシステムに入る必要のあるパーティクルタイプを選択します。

このオプションは、シミュレーションの結果には影響しません。パーティクルシステムがパーティクル設定で割り当てられる方法を変更するだけです。

次の項目から選択できます。

例えば、[飛沫+泡沫+気泡]を選択した場合、3つのパーティクルが纏められます。

[飛沫+泡沫+気泡]を選択した場合
[オフ]を選択し、[飛沫]、[泡沫]、[気泡]を有効化した場合

[Upres 係数(Upres Factor)]

パーティクルシミュレーションの解像度を向上させる係数。

この係数で、([分割の解像度]に対し)スケールアップします。

[Upres 係数: 1]
[Upres 係数: 3]

[波頭ポテンシャル最大(Wave Crest Potential Maximum)]

流体セルを波頭としてマークするための上限クランプしきい値。値が高い程、マークされるセルが少なくなります。

[最小(Minimum)]

流体セルを波頭としてマークするための下限クランプしきい値。値を小さくすると、セルがよりマークされます。

[波頭ポテンシャル最大: 8]、[最小: 2]
[波頭ポテンシャル最大: 100]、[最小: 50]

[混入空気ポテンシャル最大(Trapped Air Potential Maximum)]

空気が閉じ込められている流体セルをマークするための上限クランプ閾値。値が高い程、マークされるセルが少なくなります。

[最小(Minimum)]

空気が閉じ込められている流体セルをマークするための下限クランプしきい値。値を小さくすると、セルがよりマークされます。

[混入空気ポテンシャル最大: 20]、[最小: 6]
[混入空気ポテンシャル最大: 100]、[最小: 50]

[運動エネルギーポテンシャル最大(Kinetic Energy Potential Maximum)]

最大運動エネルギーポテンシャル。

セルがもうパーティクルを発生しなくなることを示す、流体の速度上限(大きな値で全体的にパーティクルが減ります)。

[最小(Minimum)]

最小運動エネルギーポテンシャル。

セルがパーティクルの発生を開始することを示す、流体の速度下限(小さな値で全体的にパーティクルが増えます)。

[運動エネルギーポテンシャル最大: 5]、[最小: 1]
[運動エネルギーポテンシャル最大: 100]、[最小: 50]

[ポテンシャル半径(Potential Radius)]

各セルのポテンシャルを計算するための半径。

値が大きい程遅くなりますが、潜在的なグリッドが滑らかになります。

[ポテンシャル半径: 1]
[ポテンシャル半径: 4]

[パーティクル更新半径(Particle Update Radius)]

各パーティクルの位置更新を計算するための半径。値が高い程遅くなりますが、パーティクルの移動は少なくなります。

[波頭パーティクルサンプリング(Wave Crest Particle Sampling)]

フレーム毎の波頭セル毎に生成されるパーティクルの最大数。

[波頭パーティクルサンプリング: 10]、[混入空気パーティクルサンプリング: 0]
[波頭パーティクルサンプリング: 1000]、[混入空気パーティクルサンプリング: 0]

[混入空気パーティクルサンプリング(Trapped Air Particle Sampling)]

フレーム毎に閉じ込められた空気セル毎に生成されるパーティクルの最大数。

[波頭パーティクルサンプリング: 0]、[混入空気パーティクルサンプリング: 10]
[波頭パーティクルサンプリング: 0]、[混入空気パーティクルサンプリング: 1000]

[パーティクル寿命最大(Particle Life Maximum)]

パーティクルの寿命の上限。

[最小(Minimum)]

パーティクルの寿命の下限。

[パーティクル寿命最大: 1]、[最小: 1]
[パーティクル寿命最大: 100]、[最小: 80]

[気泡の浮力(Bubble Buoyancy)]

気泡を発生させる浮力の量。

値が高いと、気泡は主に上向きに移動します。

[気泡の浮力: 0.5]
[気泡の浮力: 2.0]

[気泡を流す力(Bubble Drag)]

流体とともに気泡を移動させる抗力の量。

値が高いと主に流体と共に気泡が移動します。

[気泡を流す力: 0.6]
[気泡を流す力: 1.5]

[境界のパーティクル数(Particles in Boundary)]

[境界のパーティクル数: 削除]
[境界のパーティクル数: 押し戻す]

[パーティクルをベイク(Bake Particles)]、[パーティクルを解放(Free Particles)]

この項目は、[モジュール]タイプのキャッシュを使用している場合にのみ使用できます。

進行状況がステータスバーに表示されます。

[Esc]キーを押すと、シミュレーションが一時停止します。

シミュレーションがベイク処理されたら、[パーティクルを解放]を押してキャッシュを削除できます。[パーティクルをベイク]処理を一時停止または再開することが出来ます。

memo: レンダリング時にセカンダリパーティクルを表示させるには?

デフォルトの設定では、[レンダリング方法]は[ハロー]となっていますので、

Sprayパーティクルの[レンダリング方法]が[ハロー]の場合のビューポート上の表示

そのままではレンダリングで、セカンダリパーティクルは表示されません。

Sprayパーティクルの[レンダリング方法]が[ハロー]の場合のレンダリング時の表示

ですが、普通の『パーティクルシステム』と同様に、[レンダー]パネルでの設定次第で、レンダリング時の表示を変更することが出来ます。

簡単に方法をご紹介します(「memo: レンダリング時に液体を表示させるには?」とほぼ同じ手順です)。

  1. まずは適当なメッシュオブジェクトを作成します。適当に”SprayObject”と名付けます。
[細分化]を”1″に設定したICO球”SprayObject”
  1. マテリアルを適当に変更します。
“SprayObject”用に作成したマテリアル
  1. 後は、ドメインオブジェクトの”Spray”のパーティクル設定を変更します。[レンダー]>[レンダリング方法]を[オブジェクト]に変更し、[インスタンスオブジェクト]に先程作成したオブジェクト名を設定してください。
Sprayパーティクルの[レンダリング方法]が[オブジェクト]の場合のビューポート上の表示
  1. この設定でレンダリングしますと、パーティクルが表示されています。
Sprayパーティクルの[レンダリング方法]が[オブジェクト]の場合のレンダリング時の表示

ちなみに、『パーティクルシステム』の[レンダー]パネルの設定については、下記記事にて詳しくご紹介させていただいておりますので、よろしければ併せてご覧ください。

[メッシュ(Mesh)]

液体メッシュは、液体パーティクルに加えて、液体シミュレーションを視覚化する別の方法です(液体パーティクルでの視覚化の方法は、「memo: レンダリング時に液体を表示させるには?」を参考にしてください)。

[メッシュ]チェック無し
[メッシュ]チェック有り

これは液体パーティクルから直接生成され、多くの場合、基本の[分割の解像度]よりも高い解像度を使用します。

インターフェイスの一部を有効にするだけでなく、[メッシュ]をチェックすると、読み取るシミュレーションデータをキャッシュに知らせることが出来ます。例えば、[メッシュ]が有効になっているが、読み取るメッシュシミュレーションデータがない場合、元のドメインが表示されます。このチェックボックスはキャッシュをリセットせず、元のドメインとベイク処理された液体メッシュの間でビューを切り替えるために使用できます。

[メッシュ]のチェック切替で液体メッシュの表示切替(メッシュシミュレーションデータがベイクされている場合)

メッシュの形状は、これらすべてのパラメータの組み合わせに依存する事に注意することが重要です。例えば、[パーティクル半径]を変更すると、凹面の値の解釈が異なります。

[Upres 係数(Upres Factor)]

メッシュの解像度を向上させる係数。

この係数で、([分割の解像度]に対し)スケールアップします(つまり、メッシュは基本シミュレーションよりもこの倍大きくなります)。

[Upres 係数: 1]
[Upres 係数: 5]

[パーティクル半径(Particle Radius)]

グリッドセル単位での1つの液体パーティクルの半径。

この値は、パーティクルによって覆われる領域の量を表し、したがって、パーティクルの周囲の領域が液体と見なされる量を決定します。半径を大きくすると、パーティクルがより多くの領域をカバーできるようになります。これにより、メッシュが液体パーティクルの周囲により多くのボリュームをカバーするようになります。

この項目は、液体ドメインの設定で説明されているのと同じ[パーティクル半径]を参照します。ただし、メッシュの場合は、パーティクルの半径を単独で解釈すると便利です。1つは、メッシュの解像度が[Upres 係数]によって基本解像度と異なる場合があることです。別の理由として、単一の液体パーティクルの周りのメッシュサイズを制御出来る事が望ましい場合が多い事が挙げられます。

[パーティクル半径: 1]
[パーティクル半径: 5]

[速度ベクトルを使用(Use Speed Vectors)]

このチェックボックスを有効にすると、速度ベクトル(メッシュ頂点速度)が生成され、ドライブに保存されます。これらは、コンポジットノードで画像ベースのモーションブラーを計算するために使用できます。

[速度ベクトルを使用]チェック有り
[速度ベクトルを使用]チェック無し
memo: [速度ベクトルを使用]して『モーションブラー』をする方法

この方法を使う前に、まず気を付けて欲しいのが、[ボリューム形式]の設定です。この[ボリューム形式]が[OpenVDB]になっていると、上手く『モーションブラー』できませんので、ご注意ください。

参考ページ: T78442 Mantaflow: motion blur does not work on liquids cached with OpenVDB format

  1. まず、[速度ベクトルを使用]を有効にして、ベイクします。
[速度ベクトルを使用]にチェック
  1. [レンダーエンジン]を[Cycles]にします。
[レンダーエンジン: Cycles]
  1. [パス]>[データ]>[ベクトル]を有効にします。
[パス]>[データ]>[ベクトル]にチェック
  1. レンダリングします。
シミュレーションをレンダリング
  1. [コンポジター]で、以下の様にノードを組みます。
[コンポジター]でノードを組んでモーションブラーをする
  1. [画像エディター]で、[Viewer Node]を選択し、画像を保存します。
[コンポジター]で編集した内容を[画像エディター]で読み込み、保存

[生成メッシュ(Mesh Generator)]

この項目は、メッシュの精度を決定します。

[最終結果(Final)]は、[プレビュー(Preview)]よりも高品質のメッシュを生成し、より多くの構成オプションを提供します。これは、高速ですが、それほどスムーズではありません。

[生成メッシュ: プレビュー]での[メッシュ]パネルの表示
[生成メッシュ: 最終結果]での[メッシュ]パネルの表示

[正のスムージング(Smoothing Positive)]

[生成メッシュ]が[最終結果]でなければ表示されない項目です。

正のメッシュスムージングの反復。

値を大きくすると、メッシュの輪郭がますます滑らかになります。さらに高い値は、細部(小さな液滴など)がメッシュ化されるのを防ぐことが出来ます。

[負(Negative)]

[生成メッシュ]が[最終結果]でなければ表示されない項目です。

負のメッシュスムージングの反復。

値を大きくすると、メッシュの輪郭がシャープになります。高い値はデティールを保持しますが、メッシュの輪郭はより不規則になります(例えば、単一のメッシュパーティクルは丸みが少なくなり、側面がより平坦になります)。

[正のスムージング: 1]、[負: 1]
[正のスムージング: 10]、[負: 1]
[正のスムージング: 1]、[負: 10]

[上部の凹面(Concavity Upper)]

[生成メッシュ]が[最終結果]でなければ表示されない項目です。

上部メッシュの凹面境界。

値が高いと、凹状の領域が滑らかになり、塗りつぶされる傾向があります。

[下限(Lower)]

[生成メッシュ]が[最終結果]でなければ表示されない項目です。

下部メッシュの凹面境界。

値が高いと、凹状の領域が滑らかになり、塗りつぶされる傾向があります。

上部の凹面が大きい下部の凹面を使用すると、歪んだ非多様体メッシュが生成される可能性があります。この種のメッシュに価値を見出さない限り、そのような凹面の値の組み合わせは避ける必要があります。

自分でも試してみたのですが、恐らく公式ドキュメントの例の方がわかりやすいです。気になった方はそちらをご覧になられることをおすすめします。

外部記事リンク: Mesh > Concavity Upper, Concavity Lower

[上部の凹面: 1.00]、[下限: 0.00]
[上部の凹面: 1.00]、[下限: 0.50]
[上部の凹面: 1.00]、[下限: 1.00]
[上部の凹面: 2.50]、[下限: 0.00]
[上部の凹面: 2.50]、[下限: 1.25]
[上部の凹面: 2.50]、[下限: 2.50]

[メッシュをベイク(Bake Mesh)]、[メッシュを解放(Free Mesh)]

この項目は、[モジュール]タイプのキャッシュを使用している場合にのみ使用できます。

進行状況がステータスバーに表示されます。[Esc]キーを押すと、シミュレーションが中止されます。

シミュレーションがベイク処理されたら、[メッシュを解放]を押して、キャッシュを削除できます。[メッシュをベイク]プロセスを一時停止または再開することが出来ます。

[ガイド(Guides)]

流体ガイドは、シミュレーションに力を加えるために使用されます。それらは単純な外力のようなものですが、流体の物理的に正確な流れを維持しようとします。[ガイド]パネルを使用すると、ガイド力をグローバルに、つまりドメイン全体で調整できます。[ガイド]を有効にすると、流体ソルバーがより正確な、但し計算コストの高い圧力ソルバーステップを使用する様になります。

ベイク処理されたガイドオブジェクトが無い場合、またはガイドドメインがアタッチされていない場合でも、ガイドが有効になっていると、流体ソルバーはより高価な圧力ガイドアルゴリズムを実行します。したがって、シミュレーションでガイドを使用する明確な意図がある場合にのみ、[ガイド]を有効にすることをおススメします。

流体ガイドは、流体のプライマルデュアル最適化の実装です。

[ガイド]は、[速度のソース]のタイプによって使い方が異なるので、[速度のソース]の項で使い方のご紹介をさせて頂きます。

[ウェイト(Weight)]

ガイドウェイト。

大きい値でラグが大きくなります。

[ウェイト: 1]
[ウェイト: 2]

[サイズ(Size)]

この設定は、ガイドが生成する渦のサイズを決定します。ガイドサイズ(ブラー半径または「ベータ」ガイド値とも呼ばれます)が大きい程、渦が大きくなります。

[サイズ: 1]
[サイズ: 5]

[速度係数(Velocity Factor)]

すべてのガイド速度にこの係数が掛けられます。つまり、ドメインオブジェクトと同じサイズのガイドグリッドのすべてのセルに、この係数が掛けられます。

[速度係数: 1]
[速度係数: 5]

[速度のソース(Velocity Source)]

ガイド速度は、ドメイン内を移動するオブジェクトまたは他の流体ドメインから取得できます。

この項目については、↓の動画を大いに参考にさせて頂きました。

[ドメイン(Domain)]

別の流体ドメインをガイド速度ソースとして使用する場合、このドメインの解像度は異なり、タイプも異なる場合があります(例えばガイドドメインはガスタイプであり、ガイド効果のある実際のドメインは液体タイプ、など)。ドメインを速度ソースとして使用するには、このドメインをベイク処理済みにしておく必要があります。

[速度のソース]に[ドメイン]を選択した場合の使用例をご紹介します。

  1. 例えばですが、まず、同じサイズのドメインオブジェクトとフローオブジェクトをそれぞれ同じ位置に重ねるように設置するとします。
ドメインオブジェクトとフローオブジェクトをそれぞれ2つ用意
  1. どちらか片方をベイクします。今回は気体タイプの方にしました。
気体タイプをベイク
  1. もう片方の方の液体タイプ、こちらは[ガイド]を有効にして、[速度のソース]を[ドメイン]に設定、[ガイドの親]に気体タイプのドメインを設定します。
[ガイド]パネルの設定
  1. 液体タイプのドメインもベイクするのですが、その際、[キャッシュディレクトリ]を気体タイプのドメインとは別のディレクトリに設定しておいてください。
液体タイプのドメインの[キャッシュ]設定
気体タイプのドメインの[キャッシュ]設定
  1. 液体タイプのドメインもベイク出来たら、シミュレーション結果を確認してみます。液体の動きが、気体のように上に吹き上がるような動きになっているのがお分かりになるかと思います。
液体タイプのベイクをした結果

ちなみにですが、使用例とは逆の、液体タイプのドメインから気体タイプのドメインへも勿論可能です。

https://horohorori.com/wp-content/uploads/2020/12/fluid_simulation_type_gas_domain_guides_smoke_sample.mkv
液体タイプのドメインから気体タイプのドメインへガイドしたシミュレーション

[エフェクター(Effector)]

ドメイン内の全てのエフェクターオブジェクトは、グローバルガイド速度グリッドの対象と見なされます。エフェクターオブジェクトがベイク処理されると、流体ドメインの解像度を変更することは出来なくなります。

[速度のソース]に[エフェクター]を選択した場合の使用例をご紹介します。

  1. まずは、ドメインオブジェクトと、フローオブジェクト以外に、エフェクターオブジェクトを1つ用意します。今回は、カーブと共に『カーブモディファイアー』を併用しています。
カーブに沿って変形させたオブジェクトをエフェクターとして用意

ちなみに、『カーブモディファイアー』について、詳しくは下記記事をご覧ください。

  1. エフェクターオブジェクトの[設定]>[エフェクタータイプ]を、[ガイド]に変更してください。
エフェクターオブジェクトとして設定
  1. このエフェクターオブジェクトの動作(移動や回転、拡縮)を決め、キーフレームを打っておきます。
カーブに沿って移動する簡単なアニメーションを作成
  1. ドメインオブジェクトの[ガイド]を有効にして、[速度のソース]を[エフェクター]に設定してください。
ドメインオブジェクトの[ガイド]を有効化し、[速度のソース]を[エフェクター]に設定
  1. 後はベイクするだけです。エフェクターオブジェクトの動作に影響を受けた動作をすると思います。
ベイクした結果

[キャッシュ]>[タイプ]が[モジュール]である場合、ベイクの順番は『ガイド』が先で『データ』が後です。順番を逆にしようとしても、[ガイド]を有効にした時点で警告が出るので分かるかと思いますが念の為、ご注意ください。

[ガイド]を有効化した場合に[データをベイク]の上に出現する警告文

[ガイドの親(Guide Parent)]

ドメインを速度ソースとして使用する場合、このフィールドはガイドドメインオブジェクトを選択するのに役立ちます。

[ガイドをベイク(Bake Guides)]、[ガイドを解放(Free Guides)]

この項目は、[モジュール]タイプのキャッシュを使用し、尚且つ[速度のソース]で[エフェクター]を使用している場合にのみ使用できます。

[ガイドをベイク]は、エフェクターオブジェクトの頂点速度をドライブに書き込みます。これは、流体シミュレーションをベイク処理する前に使用することを目的としています。

進行状況がステータスバーに表示されます。[Esc]キーを押すと、シミュレーションが一時停止します。

シミュレーションがベイクされたら、[ガイドを解放]を押してキャッシュを削除できます。[ガイドをベイク]プロセスを一時停止または再開することが出来ます。

[コレクション(Collections)]

[フロー(Flow)]

設定されている場合、指定されたコレクション内のオブジェクトのみが、このドメイン内のフローオブジェクトとして機能する事が許可されます。

[エフェクター(Effector)]

設定されている場合、指定されたコレクション内のオブジェクトのみが、このドメイン内のエフェクターオブジェクトとして機能する事が許可されます。

[キャッシュ(Cache)]

[キャッシュ]パネルは、流体シミュレーションをベイク処理するために使用されます。シミュレーションの結果を保存するため、再計算する必要はありません。

ベイクには多くの計算能力(時間)が必要です。シーンによっては、ベイクプロセスに十分な時間を割り当てることをおススメします。

メッシュにモディファイアーがある場合、レンダリング設定は、メッシュを流体ソルバーにエクスポートするために使用されます。設定によっては、計算時間とメモリ使用量が指数関数的に増加する場合があります。例えば、『サブディビジョンサーフェスモディファイアー』(を使ったオブジェクト)を障害物として使用する移動メッシュを使用する場合、オフにするか、細分化レベルを低くすることで、シミュレーション時間を短縮できる場合があります。セットアップ/リグが正しい場合は、いつでも設定を増やして、よりリアリスティックな結果を得ることができます。

流体シミュレーションは、他の全ての物理シミュレーションと違い、独自のキャッシュを使用します。

ちなみに、他の全ての物理シミュレーションでは、『General Baking』オペレーターというタイプを使います。『General Baking』オペレーターについて、詳しくは下記記事をご覧ください。

[キャッシュディレクトリ(Cache directory)]

ベイク処理されたシミュレーションファイルを保存するディレクトリ。

このディレクトリ内には、各シミュレーションタイプ(メッシュ、パーティクル、ノイズなど)に、シミュレーションデータを含む独自のディレクトリがあります。

[キャッシュディレクトリ]

[タイプ(Type)]

キャッシュのタイプによって、キャッシュをベイクする方法が決まります。

[全て]と違い、[モジュール]の場合は[キャッシュ]パネルにベイク処理を行うボタンが出現しません。

[タイプ: モジュール]
[タイプ: 全て]

[モジュール]の場合、各パネルに分散されています。

[タイプ: モジュール]の場合の[設定]パネルの表示
[タイプ: モジュール]の場合の[パーティクル]パネルの表示
[タイプ: モジュール]の場合の[メッシュ]パネルの表示

ちなみにですが、[モジュール]の場合にはベイクする順番にお気を付けください。例えば、『データ』より先に『メッシュ』のベイクをしようとしても出来ません。ベイクボタンの上に警告が表示されます。

『データ』がベイクされていない時に『メッシュ』のベイクボタン上に表示される警告文

[開始フレーム(Frame Start)]

シミュレーションを開始するフレーム。これがベイク処理される最初のフレームです。

[終了(End)]

シミュレーションを停止するフレーム。これがベイク処理される最後のフレームです。

シミュレーションは、[キャッシュ]パネルの[開始フレーム]と[終了]のフレームの間の正のフレームに対してのみ計算されます。デフォルトのフレーム範囲よりも長いシミュレーションが必要な場合は、終了フレームを変更する必要があります。

[オフセット(Offset)]

キャッシュからシミュレーションをロードするときに使用されるフレームオフセット。シミュレーションをベイク処理する時は考慮されず、ロードする時にのみ考慮されます。

[リジューム可能(Is Resumable)]

一時停止後にベイクを再開できるように、追加のデータが保存されます。ドライブに書き込まれるデータが増えるため、高解像度でベイク処理する場合は、このオプションを有効にしないことをおススメします。

[ボリューム形式(Format Volumes)]

ボリュームメトリックデータのキャッシュに使用するファイルフォーマットの選択。

[メッシュ(Meshes)]

[ドメインタイプ]が[液体]の場合のみ出現する項目。

メッシュキャッシュファイルのファイルフォーマット。

[全てベイク(Bake All)]、[全て解放(Free All)]

このオプションは、キャッシュの[タイプ]で[全て]を選択している場合のみ使用できます。[全てベイク]は、設定の全てのパラメーターを考慮してシミュレーションを実行します(つまり、キャッシュの[タイプ]が[モジュール]の時に個別にベイクできる全てのステップを一度にベイクします)。

進行状況がステータスバーに表示されます。[Esc]キーを押すと、シミュレーションが中止されます。

シミュレーションがベイク処理されたら、[全て解放]を押してキャッシュを削除できます。最も重要なキャッシュファイルのみがドライブに保存される為、[全てベイク]プロセスを一時停止または再開することはできません。

[詳細設定(Advanced)]

[圧縮形式(Compression Volumes)]

[ボリューム形式]で[OpenVDB]のフォーマットを選択している場合のみ表示されます。

OpenVDBキャッシュファイルを書き込むときに使用される圧縮方法。

[高精度ボリューム(Precision Volumes)]

[ボリューム形式]で[OpenVDB]のフォーマットを選択している場合のみ表示されます。

OpenVDBキャッシュファイルを書き込むときに使用される精度レベル。

[Mantaflowスクリプトをエクスポート(Export Mantaflow Script)]

シーンをベイク処理するときに、シミュレーションをスタンドアローンのMantaflowスクリプトとしてエクスポートします(「データのベイク処理」でエクスポート)。通常、MantaflowGUIの使用方法を知っている開発者と上級ユーザーのみがこの機能を利用します。有効にするには、[トップバー]>[Blender]>[システム]>[デバックメニュー]で、[デバック値]”3001″を入力します。

[トップバー]>[Blender]>[システム]>[デバックメニュー]
[デバック値]”3001″を入力
出現した[Mantaflowスクリプトをエクスポート]

ちなみに、有効化してベイク処理した場合、ディレクトリに新たに”script”というディレクトリが追加され、中に”.py”拡張子のファイルが保存されます。

ベイク後、ディレクトリに作成された”script”ディレクトリ
“script”ディレクトリ内の拡張子”.py”のファイル

[フィールドの重み(Field Weights)]

これらの設定は、『重力』と『フォースフィールド』が流体に与える影響の大きさを決定します。

[風]と[渦]のフォースフィールドを併用した[気体]のシミュレーション
[乱流]のフォースフィールドを併用した[液体]のシミュレーション

『重力』や各『フォースフィールド』についての詳細は、下記記事をご覧ください。

[ビューポート表示(Viewport Display)]

[幅(Thickness)]

現在表示されているグリッドの厚さをスケーリングする係数。

[幅: 1]
[幅: 50]

[補間(Interpolation)]

流体グリッドの視覚化に使用する補間方法。

[補間: リニア]
[補間: 三次式]
[補間: 近接]

[ボクセル毎のスライス数(Slice Per Voxel)]

ボクセル毎に生成するスライスの数を決定します。

[ボクセル毎のスライス数: 0.1]
[ボクセル毎のスライス数: 5.0]

[スライス(Slicing)]

ドメインオブジェクトの単一の2Dセクションのみをレンダリングします。

[座標軸(Axis)]

[座標軸: 自動]

[位置(Position)]

それぞれのドメイン側の長さに対するスライスの位置。

[位置]

[グリッドライン(Gridlines)]

[補間]が[近接]である場合のみ操作できる項目です。

グリッド線を表示して、流体ドメインの現在のスライスの元になるセルを区別します。

[グリッドライン]を有効化した場合の3Dビューポート上の表示
[グリッドライン]を有効化した場合の3Dビューポート上の表示 拡大ver

[グリッド表示(Grid Display)]

シミュレーションフィールドの視覚化には、特定のカラーマップを使用します。これは、デバッグ中またはシミュレーションをより高度に調整する時に役立ちます。例えば、火災シミュレーションの実際の色がビューポートにほとんど表示されない場合、カラープロファイルを変更すると、炎の実際のサイズを確認するのに役立ちます。

カラーマップの設定その1
カラーマップの設定その2

[フィールド(Field)]

表示オプション(密度、燃料、熱など)で使用されるシミュレーションフィールド。

次から選択できます。

[フィールド: ヒート]
[フィールド: 燃料]
[フィールド: 炎]
[フィールド: 密度]

[スケール(Scale)]

選択したシミュレーションフィールドをこの値でスケーリングします。

[スケール: 1]
[スケール: 5]

[ベクトル表示(Vector Display)]

ベクトルフィールドの視覚化オプション。

[表示方法(Display As)]

[MACグリッド(MAC Grid)]

ベクトルフィールドを「Marker-And-Cell グリッド」として表示することを選択します。

[表示方法: MACグリッド]

MAC法

MAC(Marker And Cell)法は、非圧縮性流体の解析手法の一種です。

ナビエ・ストークス方程式、およびナビエ・ストークス方程式の発散と連続の式から得られる圧力方程式を連立して、計算を行います。

もとは質量を持たないマーカー粒子を配置し、これらの動きをラグランジュ的に求めながら、各方程式をオイラー座標系の計算格子(Cell)上で説いていたため、このような名前がついています。

現在では、マーカー粒子は自由表面を扱う場合にのみ配置され、自由表面が含まれない問題に対してはセル上での計算のみが行われます。

引用元: MAC法
[X]/[Y]/[Z]

MACグリッドの個々のX/Y/Zコンポーネントを表示します。

[流線(Streamlines)]

ベクトルを「流線」として表示することを選択します。

[表示方法: 流線]
[ニードル(Needle)]

ベクトルを「針」として表示することを選択します。

[表示方法: ニードル]

[ベクトルの長さ(Magnitude)]

[表示方法]が[流線]か[ニードル]でのみ出現する項目。

表示ベクトルを、それらが表すベクトルの大きさでスケーリングします。

[ベクトルの長さ] チェック有り
[ベクトルの長さ] チェック無し

[フィールド(Field)]

表示ベクトル(流体速度、外力など)で表されるベクトルフィールド。

次から選択できます。

[スケール(Scale)]

ビューポートでこのサイズでベクトルをスケーリングします。

[スケール: 1]
[スケール: 2]

[詳細設定(Advanced)]

[グリッドライン]が有効な状態のみ表示される項目。

グリッドラインの高度なカラーリングオプション。

[カラーグリッドライン(Color Gridlines)]

[ハイライト範囲(Highlight Range)]

範囲内の表示されたグリッドの値でセルを強調表示します。下限と上限(両端を含む)の間の値は、範囲内にあるとみなされます。

[グリッド表示]が有効な場合のみ表示される項目。

[下限(Lower Bound)]

強調表示範囲の下限。

[上限(Upper Bound)]

強調表示範囲の上限。

[下限: 0]、[上限: 1]
[下限: 0.01]、[上限: 0.3]
[カラー(Color)]

セルを強調するために使用される色。

[カラー]を赤に設定
[カラー]を青に設定
[セルタイプ(Cell Type)]

特定のタイプのセルのみを強調表示することを選択します。

次から選択できます。

流出口用のフローオブジェクトとしてUV球、流入口用のフローオブジェクトとして立方体、フォースフィールドを付与したエンプティ、障害物用のエフェクターオブジェクトとしてトーラスを設置してみました。

UV球(流出口)、立方体(流入口)、エンプティ、トーラス(エフェクター)

これで試してみたところ、それぞれのタイプのセルが強調されました。少し解釈の仕方に迷っているのが[エンプティ]なのですが、オブジェクトとかの”エンプティ”ではなく、言葉そのまま”空”という意味なのでしょうか…?

[セルタイプ: 流出口]
[セルタイプ: 流入口]
[セルタイプ: エンプティ]
[セルタイプ: 障害物]
[セルタイプ: 流体]
[フラグ(Flags)]

グリッドラインにフラグを付けます。

[カラーグリッドライン: フラグ]

参考にさせて頂いたサイト・ページ一覧

Blenderに関する記事や作品をまとめたページ作りました!

Blender Note
モバイルバージョンを終了