主にMMDやBlenderの個人的なメモ用です。一部に成人向けの内容を含みます!未成年の方はご覧にならないでください!

Blender 2.82から流体(&気体)シミュレーションがMantaFlowに変わりました。
MantaFlowとは物理ベースの流体シミュレーションフレームワークです。

流体(液体)と気体(煙と火)のシミュレーションを行います。



前書き

流体や気体の元オブジェクトであるフローを設定し、それを囲うようにドメインを設定するのは以前と変わりありません。
Blenderの流体シミュレーションのページに目を通しておくと良いかもしれません。


ドメインはシミュレーションする範囲(空間)であり、同時に障害物でもあります。例えば液体シミュレーションの場合、ドメインに液体が触れると跳ね返ります。(ドメイン外に出ていかない)
フローは流体や煙の発生元などです。

今回は上記の画像の通り、中央のUV球をフローに、囲っているキューブをドメインにします。

流体シミュレーションの流れ

フロー


フローにするUV球を選択し、物理演算プロパティから流体を選択します。
タイプフローにし、設定からフロータイプ液体にします。ここでフロー側の流体か気体かの設定を行います。

フローの挙動ジオメトリにします。ジオメトリとはこの場合、フローオブジェクトの形状自体が液体だという設定です。
流入口にすると蛇口の先のような液体を出力するオブジェクトになります。
流出口と設定するとこのオブジェクトに流体が触れると流体が消滅するようになります。(排水溝のような)

下の初期速度にチェックを入れると流体発生時の初期速度を設定できます。(例えばX軸方向へ液体を飛ばすなど)

ドメイン


ドメインとなるキューブを選択してこちらも物理演算プロパティから流体を選択します。
タイプドメインに指定します。
ドメインタイプがデフォルトでは気体になっているので、液体に切り替えます。ここでドメイン側の流体か気体かの設定を行います。

ドメインタイプ下の分割の解像度でシミュレーション精度を指定できます。
値が大きほど正確ですが計算に時間がかかります。(キャッシュも肥大化する)
逆に値が小さと計算は速いですが、正確性にかけてきます。
最初は小さな値で試してみて結果が悪ければ上げる方が良いでしょう。


マウスホイールで下がってキャッシュという項目まで移動します。
キャッシュパスの欄にキャッシュ先を指定できます。デフォルトでは.blendファイルのあるフォルダか、ユーザーデータ以下に格納されますが、ユーザー名に日本語(2バイト文字)が含まれていると正常に動作しません。ご注意下さい。

タイプリプレイから最終結果に切り替えることでベイクボタンが表示されます。

開始フレーム終了は演算するフレームの指定です。


すべてベイクをクリックするとベイク(計算)が始まります。
ベイク後、スペースキーを押して再生してみるとカラフルな粒子(パーティクル)が下に落ちて広がるはずです。
2.82より前のverと違ってMantaFlowでは単にベイクしてもメッシュは変わりません。
いったん、すべて解放をクリックします。


キャッシュ項目より上のメッシュという項目の左チェックボックスにチェックを入れ、キャッシュ項目からすべてベイクをクリックします。


ドメインオブジェクトが流体の形状に変化しました。
このように流体シミュレーションの場合、ベイクするとドメインが流体の形状になります。
マテリアル設定など(例えば水の色など)はドメインオブジェクトに対して行います。

メッシュを伴わないベイクの方が高速なので、そちらでシミュレーションしてみて結果が良ければメッシュにチェックを入れてベイク、という使い方ができます。


メッシュにチェックを入れてベイクしても、よく見ると粒子(パーティクル)が残っています。
私が試した範囲ではこれらの粒子(パーティクル)はレンダリング時には写りませんでしたが、気になるなら非表示にできます。


ドメインパーティクルプロパティからLiquidという名前のパーティクルがあるのでそれの右のカメラアイコン(レンダリング時に表示/非表示)、スクリーンアイコン(ビューに表示/非表示)をクリックして表示と非表示を切り替えます。
ドメインのもうちょっとだけ詳しい説明

分割の解像度は液体となったドメインのメッシュ密度にも影響します。値が大きいとメッシュが細かくなり、小さいとメッシュが粗くなります。
タイムスケールでシミュレーション速度を変更できます。パンからハチミツが垂れる、などを表現したい場合、ここの数値を操作した方がよりそれらしく見えます。


拡散という項目で液体の粘度などを設定できます。チェックを入れて右のメニューアイコンからプリセットを選択、設定できます。
デフォルトでHoneyOilWaterが用意されています。

気体シミュレーションの流れ

フロー


今回はフロータイプ火炎+煙にします。
フローの挙動流入口にしました。ジオメトリだと炎が一瞬で消えてしまいます。(爆発などの表現ならジオメトリで良いです)

ドメイン


ドメインタイプ気体にしてキャッシュからタイプ最終結果にします。
すべてベイクボタンが表示されるので、ベイクします。


おそらく、上記の画像のようになったはずです。


ただし、表示をレンダーに切り替えてみると炎も煙も表示されません。
気体のシミュレーションの場合、シェーダーノードを操作する必要があります。
プリンシプルボリューム

トップバーからShadingタブを開きます。
ドメインオブジェクトを選択し、マテリアルがなければ画面中央の新規をクリックします。


プリンシプルBSDFノードを選択して[X]キーで削除します。
[Shift]+[A]キーを押してシェーダープリンシプルボリュームを選択、追加してマテリアル出力ボリュームに接続します。


カラーから煙の色を設定できます。
密度から煙の密度を設定できます。
黒体の強度から炎の強さを調整できます。

フローオブジェクトをレンダリング時に写したくない場合


このままだとフローに設定したオブジェクトがレンダリング時に写ります。
写したくない場合、フローオブジェクトに新規マテリアルを設定し、アルファを0に、マテリアルプロパティからブレンドモードアルファハッシュアルファブレンドにします。

アウトライナーからレンダリング時に非表示に設定すると炎、煙まで非表示になってしまうのでご注意下さい。

その他

Blender 2.82(MantaFlow)で湯けむり(Smoke)を作ってみる
上記のページではパーティクルを組み合わせて湯けむりを表現しています。
タグ

Menu

モデル/アクセサリ/素材など

エンコード

コーデック エンコードソフトウェア

その他

波形編集ソフト


【メニュー編集】

管理人/副管理人のみ編集できます