Blender 2.82(MantaFlow)を利用して温泉の湯けむり(湯気)を作ってみます。

このページではNuKasaさんが配布されている露天風呂を利用させてもらいます。
上記モデルのBlenderへの読み込みはこちらをご覧下さい

デフォルト画面から中央のcubeオブジェクトを削除し、露天風呂モデルを読み込んでプロパティシェルフからMMDタブ→Separate By Materialsで材質ごとにオブジェクトを分割した状態です。
このモデルの水面オブジェクトを湯けむり(スモーク)の発生源にします。

画面右下のプロパティから物理演算プロパティタブを開き、流体ボタンをクリックします。
流体→タイプからフローを選択し、設定→フロータイプが煙であることを確認します。

フローの挙動を流入口に設定します。

水面オブジェクトに戻り、パーティクルタブを開いて右上の+ボタンからパーティクルを追加します。
放射から終了フレームを250(ドメインのシミュレーション終了フレームと同じに)に設定します。
寿命を40程度にします。
寿命は発生するパーティクルが消えるまでのフレーム数です。値が大きいとなかなか消えず、小さいとすぐに消えます。
寿命のランダム化を0.700程度に設定します。
これは寿命をランダムにするオプションです。
物理演算→力→ブラウン運動の値を10.000程度に設定します。
ブラウン運動は木の葉が揺れ落ちる動きなどを再現できるものです。
フィールドの重みの重力の値を0.000にします。
フィールドの重みは発生するパーティクルに重力や風などの影響をどれほど受けるか、という設定です。
重力を0にすることで、重力の影響を受けずに上に舞い上がります。

回転にチェックを入れ、ランダム化の値を0.5程度に設定します。
発生するパーティクルがランダムに回転します。

[Space]キーを押して再生すると、パーティクルが舞い上がって消えるのが確認できるはずです。

このままだと発生したパーティクルまでレンダリングされてしまうので消してしまいます。
レンダー→レンダリング方法をなしに設定します。

このページではNuKasaさんが配布されている露天風呂を利用させてもらいます。
上記モデルのBlenderへの読み込みはこちらをご覧下さい
完成例 |
動画ファイルへのリンク |
流体(気体)シミュレーションがBlender2.82よりMantaFlowになりましたが、流体や気体の元オブジェクトであるフローを設定し、それを囲うようにドメインを設定するのは以前と変わりありません。
Blenderの流体シミュレーションのページに目を通しておくと良いかもしれません。
Blenderの流体シミュレーションのページに目を通しておくと良いかもしれません。

デフォルト画面から中央のcubeオブジェクトを削除し、露天風呂モデルを読み込んでプロパティシェルフからMMDタブ→Separate By Materialsで材質ごとにオブジェクトを分割した状態です。
このモデルの水面オブジェクトを湯けむり(スモーク)の発生源にします。

画面右下のプロパティから物理演算プロパティタブを開き、流体ボタンをクリックします。
流体→タイプからフローを選択し、設定→フロータイプが煙であることを確認します。

フローの挙動を流入口に設定します。
流体(気体)の演算空間である、ドメインを設定します。

3Dビュー画面上でShift+Aからメッシュ→立方体を選択し、ドメインとなるオブジェクトを作成します。
水面オブジェクトを囲うように大きさや位置を調整しますが、湯けむりを再現したいので上部空間に余裕を持たせます。
なお、ドメインのサイズが小さい方がベイク(物理演算の焼き込み)が高速でシミュレーションがより正確になるのであまり大き過ぎるのも問題です。

物理演算プロパティタブを開き、流体ボタンをクリックします。
流体→タイプからドメインを選択し、設定→ドメインタイプが気体であることを確認します。
分割の解像度を16程度に下げます。
分割の解像度は、値が大きいほど正確なシミュレーションができますが、ベイクに時間がかかりキャッシュ量が増えます。

下の方にあるキャッシュからキャッシュの保存先の指定や、シミュレーションの開始フレーム、終了フレームを指定できます。
当たり前ですがシミュレーションする時間が長いほどベイクにも時間がかかります。
上図では終了フレームがデフォルトの50ですが、250に設定しておきましょう。

プロパティのマテリアルタブから新規ボタンをクリックしてマテリアルを新規に作成します。

中段にある、ボリュームからプリンシプルボリュームを選択します。
カラーから煙の色を設定できるので、白色にしておきます。

サーフェスのプリンシプルBSDFをクリックしてリンク→削除を選択して削除します。
削除しておかないと正しくレンダリングされません。


この状態でドメインからベイクしても画像の通りになってしまい、湯けむりとは言い難いものです。

消滅のチェックボックスをONにすると少しそれらしくなりましたが煙の動きが少なく、やはり湯けむりっぽくありません。
湯けむりらしくするためにフローにパーティクルを設定します。

3Dビュー画面上でShift+Aからメッシュ→立方体を選択し、ドメインとなるオブジェクトを作成します。
水面オブジェクトを囲うように大きさや位置を調整しますが、湯けむりを再現したいので上部空間に余裕を持たせます。
なお、ドメインのサイズが小さい方がベイク(物理演算の焼き込み)が高速でシミュレーションがより正確になるのであまり大き過ぎるのも問題です。

物理演算プロパティタブを開き、流体ボタンをクリックします。
流体→タイプからドメインを選択し、設定→ドメインタイプが気体であることを確認します。
分割の解像度を16程度に下げます。
分割の解像度は、値が大きいほど正確なシミュレーションができますが、ベイクに時間がかかりキャッシュ量が増えます。

下の方にあるキャッシュからキャッシュの保存先の指定や、シミュレーションの開始フレーム、終了フレームを指定できます。
当たり前ですがシミュレーションする時間が長いほどベイクにも時間がかかります。
上図では終了フレームがデフォルトの50ですが、250に設定しておきましょう。

プロパティのマテリアルタブから新規ボタンをクリックしてマテリアルを新規に作成します。

中段にある、ボリュームからプリンシプルボリュームを選択します。
カラーから煙の色を設定できるので、白色にしておきます。

サーフェスのプリンシプルBSDFをクリックしてリンク→削除を選択して削除します。
削除しておかないと正しくレンダリングされません。


この状態でドメインからベイクしても画像の通りになってしまい、湯けむりとは言い難いものです。

消滅のチェックボックスをONにすると少しそれらしくなりましたが煙の動きが少なく、やはり湯けむりっぽくありません。
湯けむりらしくするためにフローにパーティクルを設定します。

水面オブジェクトに戻り、パーティクルタブを開いて右上の+ボタンからパーティクルを追加します。
放射から終了フレームを250(ドメインのシミュレーション終了フレームと同じに)に設定します。
寿命を40程度にします。
寿命は発生するパーティクルが消えるまでのフレーム数です。値が大きいとなかなか消えず、小さいとすぐに消えます。
寿命のランダム化を0.700程度に設定します。
これは寿命をランダムにするオプションです。
物理演算→力→ブラウン運動の値を10.000程度に設定します。
ブラウン運動は木の葉が揺れ落ちる動きなどを再現できるものです。
フィールドの重みの重力の値を0.000にします。
フィールドの重みは発生するパーティクルに重力や風などの影響をどれほど受けるか、という設定です。
重力を0にすることで、重力の影響を受けずに上に舞い上がります。

回転にチェックを入れ、ランダム化の値を0.5程度に設定します。
発生するパーティクルがランダムに回転します。

[Space]キーを押して再生すると、パーティクルが舞い上がって消えるのが確認できるはずです。

このままだと発生したパーティクルまでレンダリングされてしまうので消してしまいます。
レンダー→レンダリング方法をなしに設定します。
タグ
最新コメント