Blenderであそんでみた

3D-CGソフトBlenderの小技や豆知識など。

Blenderの流体シミュレーションで「荒々しい水流/前編」

※記事製作時のバージョン:Blender3.3

 

簡単な見本を作りながら、流体シミュレーションの使い方を紹介していくシリーズ。
第11回は、「荒々しい水流」の作り方です。

第5回の記事「勢いよく水を噴き出す」では、流体の初速を大きくして激しい水の流れを作る方法を解説しました。
今回はそれとは異なり、パーティクルで水しぶきや泡を作るなど、水流の荒々しさを演出的に表現する方法を解説します。

 

今回の記事は長いので、前・後編に分けています。

<前編>

  • 基本の水流を作る
  • 水流に揺らぎをつける

<後編>

  • 水しぶきと泡を追加する
  • 流体の動きを遅くする
  • 参考:さらに細かい水しぶきを作る方法

後編はこちらのリンクからどうぞ。

hainarashi.hatenablog.com

 

これまでの記事で触れた手順やパラメーターなどは、詳しい説明を省略します。
未読の方はこちらからどうぞ。

流体シミュレーション(液体) カテゴリーの記事一覧 - Blenderであそんでみた

 

今回作るのは、こちらのアニメーション(200フレーム)です。

vimeo.com

では、さっそく作ってみましょう。

 

基本の水流を作る

1. 適当な場所にblendファイルを保存する

流体シミュレーションをする場合は、必ず最初にblendファイルを保存しておきます。
blendファイルを保存すると、同じディレクトリに流体シミュレーションのキャッシュも保存されるようになるため、後のファイル管理がしやすくなります。

2. フローの用意

まずはフロー(流体の発生源)オブジェクトを用意します。
今回は平面(Plane)を使います。

①[追加]>[メッシュ]>[平面(Plane)]

②平面の寸法を[X:0.2m]に変更。

③[Ctrl + A]から、スケールを適用。

④平面の回転を[Y:-90°]に変更。

これでフローオブジェクトが用意できました。

 

3. ドメインの用意

次はドメイン(流体シミュレーションの計算領域)オブジェクトを用意します。

①平面を選択した状態で、
 [オブジェクト]>[クイックエフェクト]>[クイック液体]

これで、ドメインオブジェクトが自動で追加されます。

ドメインの物理演算プロパティのパラメーターを、次のように設定します。

  • 設定
    分割の解像度:96
  • キャッシュ
    シミュレーション終了フレーム:200
    タイプ:モジュール
    リジューム可:ON

③タイムラインの[アニメーション終了フレーム]を[200]に設定します。

これで、流体の細かさやアニメーションのフレーム数など、シミュレーションの基本設定ができました。

※ここの設定項目について分からないものがある場合は、「水の塊をばしゃんと落とす/解説編」を参照してください。

ドメインの位置と寸法を、次のように変更します。

  • 位置 X:-3.2m、Z:-1.5m
  • 寸法 X:8m、Y:4m、Z:4m

これが、今回作る流体の範囲になります。

これでドメインが用意できました。

 

4. フローの設定

クイックエフェクトの機能で、平面にもフローの設定が自動で追加されています。
この設定を調整します。

①フロー(平面)の物理演算プロパティのパラメーターを、次のように変更します。

  • 設定
    フローの挙動:流入
  • フローソース
    平面:ON
  • 初期速度:ON
    ノーマル:10m/s

これでフローのシミュレーション設定ができました。

※ここの設定項目について分からないものがある場合は、過去の記事を参照してください。

ついでに、レンダリングでフローが表示されないようにしておきます。

アウトライナーから、平面のカメラマークを[OFF]にします。

これでフロー・ドメイン・その他諸々、シミュレーションの基本設定が完了しました。

 

5. シミュレーションのベイク

では、流体を生成してみましょう。

ドメインの物理演算プロパティから、[データをベイク]をクリックします。

これでシミュレーションが実行され、流体パーティクルが生成されます。

ドメインの物理演算プロパティから、[メッシュ]を[ON]にして、[メッシュをベイク]をクリックします。

これで、流体のメッシュが生成されます。

以上で、基本の水流ができあがりました。
この段階での流体の動きは、下の動画のようになります。

※ここでは分かりやすいように、マテリアルや背景などの設定も済ませてあります。
※この見本はEEVEEでレンダリングしています。

vimeo.com

次は、これを元に「荒々しい水流」の演出を加えていきます。

 

水流に揺らぎをつける

初期状態のフローから発生する流体は揺らぎがなく、不自然な見た目になります。
まずはこれに揺らぎをつけていきます。

流体シミュレーションにはこのような揺らぎをつける機能はないので、フローのメッシュ形状を操作して作ります。

1. フローに凹凸をつける

①フロー(平面)を編集モードにします。

②[Ctrl + R(ループカット)]で、長辺方向を[50]分割、短辺方向を[5]分割します。

③オブジェクトモードに戻り、モディファイアー[ディスプレイス]を追加します。

④ディスプレイスの[新規]ボタンをクリックして、新規テクスチャを作製します。

⑤テクスチャプロパティで、このテクスチャのパラメーターを次のように設定します。

クラウド:シェーダーノードの「ノイズテクスチャ」に相当するテクスチャです。

これでディスプレイスの効果で、フロー(平面)に不規則な凹凸がつきます。

このままでは凹凸が強すぎるので、変形の強さを調整します。

⑥モディファイアープロパティで、ディスプレイスの[強さ]を[0.1]にします。

これで、いい具合の凹凸になります。

次は、この凹凸をアニメーション変化させます。

 

2. フローの凹凸をアニメーション変化させる

①[追加]>[エンプティ]から、適当なエンプティを追加します。

エンプティの種類は何でもOKです。ここでは[十字]を使用しました。

②フロー(平面)を選択し、モディファイアープロパティで、ディスプレイスのパラメーターを次のように変更します。

  • 座標:オブジェクト
  • オブジェクト:Empty

これで、Emptyがディスプレイスの基準点になります。

次は、Emptyにアニメーションを設定します。

③Emptyの[位置]に、次のようにキーフレームを打ちます。

  • フレーム 1 X:0m
  • フレーム 200 X:4m

これで、全フレームを通じてEmptyが移動するようになります。

初期状態では、Emptyの動きは「始動⇒加速⇒減速⇒停止」という速度変化をするので、これを一定の速度に変更します。

④グラフエディターでEmptyのFカーブを表示し、[V]>[ベクトル]と操作します。

これでFカーブが直線状になり、Emptyの移動が一定の速度になります。

Emptyはディスプレイスの基準点なので、Emptyのアニメーションに連動して、フローが波打つように変形します。

これでアニメーションの設定は完了です。
次は、この動きをシミュレーションに反映させます。

 

3. フローの揺らぎをシミュレーションに反映させる

①フロー(平面)のモディファイアーの並びを、[Displase(ディスプレイス)]>[Fluid(流体)]の順に入れ替えます。

これで流体シミュレーションの前にディスプレイスが処理され、フローの揺らぎがシミュレーションに反映されるようになります。

フローの揺らぎをシミュレーションに反映させるには、シミュレーションデータを一度破棄して、再度ベイクする必要があります。

ドメインの物理演算プロパティから[データを解放]をクリックします。

これで、シミュレーションデータが破棄されます。

後は1回目のベイクと同じ手順で、[データをベイク]>[メッシュをベイク]と順にクリックすればOKです。

 

以上で、水流に揺らぎをつける手順は完了です。
この段階での流体の動きは、下の動画のようになります。

vimeo.com

このようにフローに揺らぎをつけると、下に溜まる流体にも細かい波やうねりが加わり、全体的に複雑で躍動感のある動きになります。

 

補足:フローの初速について

今回はこの揺らぎをつけるために、流体の初速を[ノーマル]で設定しています。
初速を[X,Y,Z]で設定した場合は、フローのメッシュ形状を変化させても、発生する流体の動きには影響しません。

 

というわけで前編はここまで。
後編では、次の3つの手順について解説します。

  • 水しぶきと泡を追加する
  • 流体の動きを遅くする
  • 参考:さらに細かい水しぶきを作る方法

以上、「荒々しい水流/前編」でした。

 

twitter

灰ならし (@hainarashi) | Twitter