Blenderであそんでみた

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

Blenderの流体シミュレーションで「障害物を置く」

f:id:hainarashi:20210919193450j:plain

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

 

簡単な見本を作りながら、流体シミュレーションの使い方を紹介していくシリーズ。
第8回は、「障害物を置く」やり方です。

 

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

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

流体シミュレーション(液体) カテゴリーの記事一覧 - 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 : 2m , Z : 0m
  • スケール X : 4.0 , Y : 2.0 , Z : 3.0

8. フローのトランスフォームを変更

  • 位置 X : 4m , Z : 1.5m
  • スケール X , Y , Z : すべて 0.2

f:id:hainarashi:20210920161012j:plain

ドメインとフローのトランスフォームを変更

 

9. ドメイン > 設定

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

  • 初期 X : -6m/s , Z : 2m/s

これで液体が斜め上方向に噴き出すようになります。
また、ドメインの下側の面から液体が消失するようになります。

f:id:hainarashi:20210920162101j:plain

ボーダーコリジョンと初期速度

 

11. 追加 > メッシュ > モンキー(スザンヌ

スザンヌを配置します。
この段階ではまだ障害物ではなく、液体はスザンヌを素通りします。

f:id:hainarashi:20210921213620j:plain

スザンヌを配置

 

12. スザンヌ > 物理演算を追加

これでスザンヌは障害物になり、液体がぶつかるようになります。

f:id:hainarashi:20210921214132j:plain

スザンヌを障害物にする

 

13. 追加 > メッシュ > 立方体

  • 位置 Z : -2.5m
  • スケール  X : 3.0 , Y : 3.0

14. 立方体 > 物理演算を追加

これで床ができます。

f:id:hainarashi:20210921214631j:plain

床を配置

 

15. 追加 > メッシュ > 平面

  • 位置 X : 6m , Z : -2.7m
  • スケール X , Y , Z すべて : 3.0
  • スムーズシェード

f:id:hainarashi:20210921215147j:plain

平面を追加

 

16. 平面 > モディファイアーを追加

これで平面から格子(グレーチング)を作成します。
液体がボーダーコリジョンで消失する様子を目立たなくするため、この格子を配置しています。
飾りなので、障害物の設定はしません。
液体は素通りしますが、液体の動きや飛沫にまぎれて目立ちません。
このような手法もあるという見本です。

f:id:hainarashi:20210921150614j:plain

平面から格子を作成

 

17. スザンヌに以下の処理をする

  • スムーズシェード
  • モディファイアーを追加 > サブディビジョンサーフェス

f:id:hainarashi:20210921221002j:plain

スザンヌのスムーズ処理

 

18. ドメイン > 液体 > メッシュ > ON
ドメインのキャッシュのタイプがモジュールなので、メッシュもベイクが必要です。

f:id:hainarashi:20210921221122j:plain

メッシュ

 

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

f:id:hainarashi:20210919193450j:plain

完成

 

今回使用した機能の解説

エフェクター > コリジョン(障害物)

エフェクターは、流体の流れに影響を与えるオブジェクトです。
エフェクターには「コリジョン」と「ガイド」の2つのタイプがあり、コリジョンが障害物です。
デフォルトがコリジョンなので、今回はコリジョンを選択する操作はありませんでした。

ガイドについては、今後の記事で解説します。

f:id:hainarashi:20210921200318j:plain

エフェクタータイプ

 

今回使用した立方体のように、コリジョンドメインからはみ出していてもOKです。
ドメインの中に含まれる部分が障害物の働きをします。

 

モディファイアーの順番について

「初速にノーマルを使う」 で解説したように、流体シミュレーションはモディファイアーの並び順で処理されます。

今回、スザンヌのモディファイアーは

  1. 流体シミュレーション
  2. サブディビジョンサーフェス

の順で設定しました。
これはベイク時間が延びるのを防ぐためです。

この順番を逆にすると、先にサブティビジョンサーフェスが処理されてシミュレーションで計算する頂点数が増えるため、ベイク時間が長くなります。


なお今回の設定では、シミュレーションの後でスムーズ処理をしているので、流体とスザンヌの間には少し隙間ができます。
しかし液体が激しく動くので、この程度の隙間はまったく見えなくなります。

 

EEVEEでのマテリアル設定

今回の見本画像は、EEVEEでレンダリングしています。
「水の塊をばしゃんと落とす」実践編 でも触れましたが、透過系の液体のレンダリングは、Cyclesの方が向いています。
しかし、アニメーションの場合は動きでディテールがまぎれるため、EEVEEで充分な場合もあります。

f:id:hainarashi:20210921171532j:plain

CyclesとEEVEEの比較

 

EEVEEでの水のレンダリングは、色に深みが無く、奥行きや立体感が物足りない感じになります。
そこでレイヤーウェイトを使ってベースカラーに変化を付けると、質感を改善することができます。
レイヤーウェイトの係数は0.5~0.7くらいが良いです。

f:id:hainarashi:20210921172830j:plain

レイヤーウェイトを使ったベースカラーの設定

 

EEVEEで液体の屈折表現をするには専用の設定が必要です。
詳しくはこちらの記事を参照してください。

hainarashi.hatenablog.com

 

 

以上、「障害物を置く」でした。

 

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

 

twitter

灰ならし (@hainarashi) | Twitter

 

参考サイト

Effector — Blender Manual