Blenderであそんでみた

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

Blenderの流体シミュレーションで「勢いよく水を噴き出す」

f:id:hainarashi:20210315220431j:plain

※記事製作時のバージョン:Blender2.91

 

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

 

これまでの記事で触れた手順やパラメーターなどは、詳しい説明を省略します。

未読の方はこちらからどうぞ。

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

 

実践「勢い良く水を噴き出す」

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

vimeo.com

 

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

 

まずはシミュレーションの前準備。

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

f:id:hainarashi:20201105101742j:plain

blendファイル保存

 

2. 追加 > メッシュ > ICO

3. ICO球を選択した状態で
 オブジェクト > クイックエフェクト > クイック液体

4. ドメイン > キャッシュ

  • シミュレーション終了フレーム > 150
  • タイプ > モジュール
  • リジューム可能 > ON

5. アニメーション終了フレーム > 150

f:id:hainarashi:20210215215940j:plain

前準備

 

6. フロー > 設定 > フローの挙動 > 流入

f:id:hainarashi:20210315221947j:plain

フローを流入口に

 

以上で前準備は終了。
ここからが今回の本題です。

 

7. ドメインの寸法を、 X : 8.45m , Y : 4.8m に変更

8. フローの位置を、 X : -1.7m , Z : 0.7m に変更

9. フローのスケールを、 X , Y , Z すべて 0.5 に変更

f:id:hainarashi:20210315222708j:plain

トランスフォームを変更

 

10. フロー > 初期速度 > ON

11. フロー > 初期速度 > 初期 X > 7m/s

これで液体が横方向に勢い良く噴き出すようになります。

f:id:hainarashi:20210315223357j:plain

初期速度

 

12. フロー > 初期速度 > 初期 X に、下記のキーフレームを打つ

  • 60フレーム > 7m/s
  • 95フレーム > 0m/s

これで60フレームから95フレームにかけて、液体の勢いが弱まるようになります。
95フレーム以降は、自由落下的に液体が流れ出すだけになります。

f:id:hainarashi:20210315223941j:plain

初期速度にキーフレームを打つ

 

13. フロー > 設定 > フローを使用 に、下記のキーフレームを打つ

  • 100フレーム > ON
  • 101フレーム > OFF

これで101フレーム以降は、液体が発生しなくなります。

f:id:hainarashi:20210315224335j:plain

フローを使用にキーフレームを打つ

 

14. ドメイン > 設定 > ボーダーコリジョン > 左 > OFF

これでドメインの左側の面から、液体が消失するようになります。

f:id:hainarashi:20210315231249j:plain

ボーダーコリジョン

 

15. ドメイン > 設定 > 分割の解像度 > 96

16. ドメイン > 液体 > メッシュ > ON

f:id:hainarashi:20210315230728j:plain

分割の解像度とメッシュ

 

以上でシミュレーションの設定は完了。
マテリアルや背景などの設定をしたら完成です。

f:id:hainarashi:20210315220431j:plain

完成

 

今回使用した機能の解説

初期速度

フローから発生する流体の初速です。
X,Y,Z の各方向に対して個別に設定できます。
初速が大きいほど流体の発生量も多くなります(水道の蛇口をひねるのと似たイメージ)。

フローのタイプがジオメトリでも使えます。

 

ボーダーコリジョン

ドメインの境界が閉じているか、開いているかを面ごとに設定します。

  • ON:閉じている面。そこに当たった流体は跳ね返る。
  • OFF:開いている面。流体はそこから流れ去るように消失する。

面の向きは次のように対応しています。

  • 前:Y-側 後:Y+側
  • 右:X+側 左:X-側
  • 上:Z+側 下:Z-側

f:id:hainarashi:20210314091738j:plain

ボーダーコリジョンの向き

 

流体シミュレーションの座標系

流体シミュレーションは、ドメインのローカル座標系に基づいて処理されます。
仮にドメインを傾けた場合、液体は見た目の斜め下に向かって落下するようになります。

f:id:hainarashi:20210314091120j:plain

ドメインの回転

 

フローの初期速度の方向や、ボーダーコリジョンの面の向きも、ドメインのローカル座標系に基づいて処理されるので、ドメインの回転のままに変化します。
ドメインを回転させるのは、感覚的に扱いにくくなるだけなので、基本的に行いません。

もし「上に向かって液体が落下する」というようなシーンを作りたい場合は、シーンの重力を変更するか、フォースフィールドを使います。
※これらの設定の仕方は、ずーっと先の記事で扱う予定です。

 

 

以上、「勢いよく水を噴き出す」でした。

 

※添削・構成アドバイス:相方

 

twitter

灰ならし (@hainarashi) | Twitter