[Blender 2.8] 煙や炎、水やオイルの表現が出来る『流体シミュレーション』の、機能と使い方のご紹介
今回の記事は、Blenderの『物理シミュレーション』の1つ、『流体シミュレーション』についてです。
※2021年1月8日 画像を変更しました。
目次
『流体シミュレーション』とは?
まず、『流体シミュレーション』では、「液体」と「気体」の2種類のシミュレーションが出来ます。
- 液体シミュレーション …水やオイルの流れをシミュレート
- 気体シミュレーション …煙や炎の流れをシミュレート
そして、その「液体」、「気体」のシミュレーションをコントロールするために、『ドメイン』、『フロー』、『エフェクター』という3種類のオブジェクトを使用します。
- ドメイン …シミュレーションの全体を含む領域の定義、管理をするために使用します。
- フロー …シミュレーションで「液体」や「気体」を発生または削除するために使用します。
- エフェクター …シミュレーション内での障害物、または動きに影響を与えるガイドとして使用します。
『液体シミュレーション』
流体物理演算は、「液体」、水やオイル(特に水)の物理的特性をシミュレートするために使用されます。
『気体シミュレーション』
ガス、または煙のシミュレーションは、流体システムのサブセットであり、煙を構成する物など、空中の個体、液体パーティクル、およびガスの収集をシミュレートするために使用できます。
空気の流体の動きをシミュレートし、レンダリングに使用できる他の流体、または浮遊粒子(煙など)の密度、熱、速度を表すアニメーション化されたボクセルテクスチャを生成します。
ガスまたは煙は、『メッシュオブジェクト』または『パーティクルシステム』からドメイン内で放出されます。
『パーティクルシステム』について、詳しくは下記記事をご覧ください。
『ドメイン』
流体シミュレーションの場合、シミュレーションが占めるスペースを定義する『ドメイン』が必要です。この『ドメイン』が無ければ、流体シミュレーションは始まりません。
『ドメイン』は、シミュレーション全体が含まれています。「流体シミュレーションのほとんど全てを管理している」と言っても過言ではありません。「流体シミュレ―ションの領域」を決定し、「流体シミュレーション全体のベイク処理」もこのドメインで行います。また、ドメイン設定では、グローバルシミュレーションパラメータ(「粘度」や「重力」など)を定義できます。
各設定項目について、詳しくは「『ドメイン』の設定項目」の項ををご覧ください。
『フロー』
『フロー』は、「流体の発生」または「流体の削除」を行うオブジェクトをマークすることが出来ます。
各設定項目について、詳しくは「『フロー』の設定項目」の項をご覧ください。
『エフェクター』
『エフェクター』は、「障害物」または「流体の動作のガイド」としてオブジェクトをマークすることが出来ます。煙や炎、水の動きは、『エフェクター』オブジェクトの影響を受ける可能性があります。
例えば、下記の動画の岩や土台となっている砂浜部分、波を発生させているオブジェクトが『エフェクター』オブジェクトです。
各設定項目について、詳しくは「『エフェクター』の設定項目」の項をご覧ください。
他の物理シミュレーションとの相互的な影響
煙や炎、水の動きは、シーンの『重力』と『フォースフィールド』の影響も受けます。ですが逆に、ドメイン内の気流は、[流体フロー](v2.82での[煙のフロー])タイプの『フォースフィールド』を介して他の物理シミュレーションに影響を与える可能性もあります。
『重力』と『フォースフィールド』について、詳しくは下記記事をご覧ください。
簡単な使い方
『液体シミュレーション』と『気体シミュレーション』の、それぞれのタイプでの一番シンプルで基本的、且つ、簡単な使い方をご紹介します。本当に少し試してみたい方向けです。
『液体シミュレーション』タイプの簡単な使い方
- フローソースとなるオブジェクトを用意します。メッシュオブジェクトであれば何でも良いです。
- [オブジェクト]→[クイックエフェクト]→[クイック液体]を選択します。
- 後は、アニメーション再生([スペースキー])するだけ。
『気体シミュレーション』タイプの簡単な使い方
- 『液体シミュレーション』の方と同様、フローオブジェクトを用意します。メッシュオブジェクトであれば何でも良いです。
- [オブジェクト]→[クイックエフェクト]→[クイック煙]を選択します。
- 後は、アニメーション再生([スペースキー])するだけ。
少し手の込んだ使い方
もう少し色々な項目の数値を弄って使いたい方向けの使い方をご紹介します。
- まず、ドメインオブジェクトとなるメッシュオブジェクト(必ず直方体の形状で)を用意します。
- [プロパティエディター]>[物理演算プロパティ]で[流体]をクリックし、[タイプ]で[ドメイン]を選択、[ドメインタイプ]では、『液体シミュレーション』をするには[液体]を、『気体シミュレーション』をするには[気体]を選択します。
- ドメインオブジェクトの中にフローオブジェクトを設置します。こっちは、メッシュオブジェクトであれば何でも良いです。
- フローオブジェクトの方で、[プロパティエディター]>[物理演算プロパティ]で[流体]をクリックし、[タイプ]で[フロー]を選択、[フロータイプ]では、『液体シミュレーション』をするには[液体]を、『気体シミュレーション』をするには[煙]または[火炎 + 煙]または[火炎]を選択します。
- フローオブジェクト用に使用しているメッシュオブジェクトの、ジオメトリ分しか流体を発生させない場合は[フローの挙動]で[ジオメトリ]を選択、ずっと領域内に流入させ続けたいなら[流入口]、領域内から流出させたいなら[流出口]を選択します。
- (必要であれば)エフェクターオブジェクトを設置します。こちらも、メッシュオブジェクトであれば何でも良いです。
- エフェクターオブジェクトの方で、[プロパティエディター]>[物理演算プロパティ]で[流体]をクリックし、[タイプ]で[エフェクター]を選択します。
- [エフェクタータイプ]を選択する時、単なる障害物として扱いたいなら[コリジョン]、流体の動きを制御するガイドとして扱いたいなら[ガイド]を選択します。([ガイド]を選択した場合、ドメインオブジェクトの方でも設定が必要なので、詳しくはドメインの[ガイド]>[速度のソース]の項でご紹介している使い方もご参照ください。)
- フローオブジェクトやエフェクターオブジェクトを位置や回転、拡縮アニメーションさせたい場合、キーフレームを打っておきます。
- ベイク処理をします。ベイク処理はドメインオブジェクトの[プロパティエディター]で行います。ですが、気を付けて欲しいのが、ドメインの[キャッシュ]>[タイプ]の設定によって、ベイクの方法が若干異なる点です。
- ベイクが済んだら、再生([スペースキー])してみましょう。
- やってみて、解像度が足りなければ、ドメインの[設定]>[分解の解像度]の値を大きくして、ベイクし直してみましょう(ただし、大きすぎるとベイクに時間がかかりますのでご注意ください)。
各タイプの設定項目について
『ドメイン』の設定項目
『フロー』の設定項目
『エフェクター』の設定項目
参考にさせて頂いたサイト・ページ一覧
- Fluid — Blender Manual
- Blender Physics -Mantaflow- Chapter 1- Simple Flow – YouTube
- Blender Physics /Mantaflow Chapter 2 -Shading Volumetrics – YouTube
- Cinematic Fire Simulation – Blender Physics / Mantaflow – Chapter 3 – YouTube
- Blender 2.9/ Mantaflow Chapter 4 – Liquid Simulations – YouTube
- Blender Tutorial – Gradient Fire Animation (2.83) – YouTube
- 【Blender2.9】簡単な流体シミュレーションの作り方【チュートリアル】 – YouTube
- Blender Tutorial – Mantaflow Guides Smoke & Fluid Simulations – YouTube
- the New Blender Fluid Simulator is AWESOME – MantaFlow Tutorial – YouTube
- ♯09 炎と煙のシミュレーション 勇者のBlender物理 – YouTube
モディファイアー関連の記事のご紹介
この記事の他にも、Blenderの様々なモディファイアーについて、機能や使い方を私自身も試しながらではありますが、ご紹介させていただいております。よろしければ、こちらも併せてご覧ください。
変更
- データ転送
- メッシュキャッシュ
- メッシュ連番キャッシュ
生成
変形
- アーマチュア
- スムーズ
- スムーズ(修正)
- スムーズ(ラプラシアン)
シミュレート
- コリジョン
- ダイナミックペイント