※記事製作時のバージョン:Blender3.3
簡単な見本を作りながら、流体シミュレーションの使い方を紹介していくシリーズ。
第12回は、「荒々しい水流」の作り方・後編です。
今回の記事は長いので、前・後編に分けています。
<前編>
- 基本の水流を作る
- 水流に揺らぎをつける
<後編>
- 水しぶきと泡を追加する
- 流体の動きを遅くする
- 参考:さらに細かい水しぶきを作る方法
前編を未読の方はこちらのリンクからどうぞ。
では、前編の続きから始めます。
水しぶきと泡を追加する
1. 水しぶきや泡のパーティクルを生成する
水しぶきや泡は、流体シミュレーションのパーティクル機能で作ります。
※マニュアルでは、水しぶきや泡を作るパーティクルのことを「二次パーティクル(secondary particle)」と表記しています。元々の流体の動きをシミュレーションするパーティクルに対する、追加のパーティクルという意味のようです。
①ドメインの物理演算プロパティの[パーティクル]のパラメーターを、次のように設定します。
- 飛沫・泡沫・気泡:すべてON
- 波頭パーティクルサンプリング:20
- 混入空気パーティクルサンプリング:5
- パーティクル寿命最大:15
各パラメーターについて、ざっくり解説しておきます。
飛沫・泡沫・気泡
追加で生成するパーティクルの種類です。
それぞれ次のような違いがあります。
- 飛沫(Spray):空中を移動する水しぶき
- 泡沫(Foam):流体の表面を移動する泡
- 気泡(Bubbles):流体の内部を移動する泡
これらは個別にON・OFFを切り替えられます。
ここでは3種類とも使用するので、すべてONにしています。
パーティクルサンプリング
パーティクルの発生量を設定するパラメーターです。
初期値のままだと流体が埋め尽くされるほどのパーティクルが発生するので、かなり低めの数値にする必要があります。
なお「波頭」と「混入空気」は、流体の中でパーティクルが発生する場所として判定される部分のこと・・・らしいです。
詳しい仕組みは、まだ私も理解できていません。
パーティクル寿命
名前の通り、パーティクルの寿命です。
この数値が大きいと、消滅する以上にパーティクルが発生してどんどん増えてしまうので、パーティクルサンプリングと合わせて調整します。
パラメーターの解説は以上です。
では、見本の作製に戻りましょう。
②[パーティクルをベイク]をクリックします。
これで、水しぶきや泡のパーティクルが生成されます。
パーティクルは、そのままではレンダリングに表示されません。
レンダリングで水しぶきや泡を表示するには、パーティクルをオブジェクトに変換します。
2. パーティクルをオブジェクトに変換する
まず、変換用のオブジェクトを用意します。
今回はICO球(Icosphere)を使います。
①編集の邪魔にならない適当な位置に、ICO球を追加します。
- [追加]>[メッシュ]>[ICO球(Icosphere)]
- 細分化:1
②ICO球の表示を[スムーズシェード]にします。
③アウトライナーから、ICO球のカメラマークを[OFF]にします。
ICO球はパーティクルの変換に使用するだけなので、レンダリングは非表示にしておきます。
④ICO球のマテリアルを、下の画像のように設定します。
※このマテリアル設定についての詳細は、「コップに水を注ぐ/後編」で解説しています。
これで変換用のオブジェクトが用意できました。
次は、パーティクルをICO球に変換します。
ドメインのパーティクルプロパティを開くと、
[Liquid(流体)、Spray(飛沫)、Foam(泡沫)、Bubbles(気泡)]
の4つのパーティクルシステムが用意されています。
今回は[Spray(飛沫)・Foam(泡沫)・Bubbles(気泡)]の3つを、すべて同じICO球に変換します。
個別に同じ設定をするのは操作性が悪いので、この3つをひとまとめにします。
⑤ドメインの物理演算プロパティから、パーティクルの[統合エクスポート]を[飛沫 + 泡沫 + 気泡]に変更します。
パーティクルプロパティに戻ると、[Spray + Foam + Bubbles]という1つのパーティクルシステムに統合されています。
これで準備はOKです。
※このパーティクルシステムの統合は、他にもいろいろな組み合わせパターンがあり、用途に合わせて自由に切り替えることができます。
⑥パーティクルシステムの[Spray + Foam + Bubbles]を選択し、[レンダー]のパラメーターを次のように設定します。
これで水しぶきや泡がICO球に変換され、レンダリングで表示されるようになります。
以上で、水しぶきと泡を追加する手順は完了です。
この段階での流体の動きは、下の動画のようになります。
流体の動きは変わりませんが、水しぶきと泡が加わると、より激しい水流の雰囲気が出ます。
これでほぼ完成ですが、最後にもうひと工夫を加えます、
流体の動きを遅くする
ダムの放水、巨大な滝、激しい荒波など、スケールの大きい水流は動きがゆっくりに見えます。
そのイメージの応用で、流体の動きを遅くすると、流体のスケールの大きさや重々しさを演出することができます。
流体の動きの速さは、ドメインのパラメーターで設定します。
シミュレーションをベイクした状態ではドメインのパラメーターを変更できないので、一度ベイクを破棄する必要があります。
①ドメインの物理演算プロパティから[データを解放]をクリックします。
これで、シミュレーションデータが破棄されます。
では、流体の動きを遅くしましょう。
②[タイムスケール]を[0.5]に変更します。
これで、シミュレーション内の時間がゆっくり進むようになります。
操作する設定はこれだけです。
後は[データをベイク]、[パーティクルをベイク]、[メッシュをベイク]をクリックして、全データを再ベイクすれば完了です。
流体の動きが遅くなり、重々しく、より荒々しい感じになりました。
以上でシミュレーションの設定は完了。
マテリアルや背景などの設定をしたら完成です。
(この見本ではすでに設定していますが。)
なお、Cyclesでレンダリングすると下のようになります。
参考:さらに細かい水しぶきを作る方法
コンポジットを使って、水しぶきや泡の周囲にノイズを合成すると、さらに細かい水しぶき(水煙)を表現できます。
ここでは、コンポジットを下の画像のように設定しています。
※Cycles用の設定です。EEVEEでレンダリングする場合は調整が必要です。
私はコンポジットに関してはまだまだ修行中なので、もっと良い手法や設定があると思います。
これはひとつの作例として、参考までにどうぞ。
モーションブラーだとどうなる?
モーションブラーを使えば、コンポジットを使うよりも手軽に水煙を表現できるのでは?
と考えて試した結果がこちらです。
※変化が見えやすいように、床の色とサイズを変えてあります。
よく見ると、ありえない形にモーションの軌跡が伸びています。
どうやら流体シミュレーションのパーティクルは、モーションブラーではうまく処理できないようです。
残念!
以上、「荒々しい水流/後編」でした。