CGBoxの一部の記事にはアフィリエイト広告が含まれております。
【Blender3.0】流体:リアルな液体の作成方法を紹介

こんにちは!
Blenderの使い方や機能、ノウハウについてまとめているUEDAです。
自分のためのアウトプットの意味合いもありますが、読んだ方の参考になれば嬉しいです。
今回は流体内の〔液体〕の使い方を紹介していきます。
リアルな液体を作るのに最適な機能になります。
液体だけではなくクリームなどの粘り気があるものも再現できます。
YouTubeでも解説動画をアップしているので、こちらもぜひ活用してみてください!
海を作る方法については以下の記事でまとめています。
▼【海をシミュレートできるモディファイアー】はコチラ!

下準備
まず液体を作る準備をしていきましょう。
〔ドメイン〕と〔フロー〕を追加します。
もちろん〔クイックエフェクト〕を使ってもらっても大丈夫です!
これについてはコチラの流体に関する基礎的な記事でまとめているので、分からない方はコチラを読んでみてください。
▼【流体の基礎編】はコチラ!

〔ドメイン〕の設定は、〔ドメインタイプ:液体〕に変更します。
〔フロー〕は、〔フロータイプ:液体〕と〔フローの挙動:流入口〕に変更します。
〔フローの挙動〕は忘れがちなので気を付けましょう!
この手順に関しては他の流体と変わりありません。
難しいのは様々なパラメーターを使っての調整です。
とりあえずこれで再生してみましょう。
液体らしきものが垂れてくればひとまずOKです!
再生してもダメだという方は、以下のリンク先を参考にしてみてください。
パーティクルとメッシュ
再生した所で〔煙〕や〔炎〕とは違い、粒々(パーティクル)が発生してしまいました。
これはもちろんパーティクルなので、レンダリングされません。
これで大体の液体の形状、動きを把握して後にメッシュを可視化してレンダリングとなります。
最初にこれを知らないと液体を作りたいのに何が何やらになります。
一旦、試しにメッシュ化させてみましょう!
下部の方に〔メッシュ〕とあるので、これにチェックマークを付けます。
これが後にレンダリングされる部分になります。
重たくはなるので、スペックによりますが常時オンだと作業がし辛いです。
〔メッシュ〕については後で解説しますが、先に読みたい方は以下のリンクからどうぞ。
ボーダーコリジョン
気体との違いについて〔液体〕という設定項目があるのと、〔ボーダーコリジョン〕が有効になっていることが挙げられます。
〔液体〕について詳しくは次の項で説明していきます。
〔ボーダーコリジョン〕は、流体がドメインや他のシミュレーションと衝突した際の動作を設定できます。
基本的には有効で構わないと思いますが、ドメインで反射させたくない場合などは無効にしてみてください。
液体
液体内の項目は以下のようになっています。
- シミュレーション方法
- FLIPの比率
- システム最大
- パーティクル半径
- サンプリング
- ランダムさ
- パーティクル数最大/最小
- さざ波の幅
- 分割障害物
- 粘度
- 拡散
- パーティクル
- メッシュ
シミュレーション方法
〔シミュレーション方法〕は、液体のシミュレーション方法を設定できます。
〔FLIP〕と〔APIC〕の2種類があります。
見てわかるくらいの違いがありますが、毎回どちらとも試してみるのがよいのではないでしょうか。
一応公式のマニュアルでは以下のような違いが紹介されていました。
FLIP:空気中に分散したパーティクルの多くで非常に派手なシミュレーションを生成します。
EPIC:非常にエネルギッシュなだけでなく、より安定したシミュレーションを生成します。液体内の渦はFLIPよりよく保存されます。
FLIPの比率
〔FLIPの比率〕は、液体のシミュレーションに関する項目になります。
値が大きい場合にはランダム性の高い水しぶきを発生させます。
一方で値が小さい場合には、ランダム性が落ちてまとまりのある液体になります。
以下のリンク先が分かりやすい動画でまとめているので、参考にしてみてください。
システム最大
〔システム最大〕は、シミュレーション時に使用するパーティクルの数に制限を設定できます。
設定した値以上のパーティクルが発生しないようになります。
”0”の場合は無限に発生させ続けてくれます。
デフォルトで”0”なので基本的には変更しなくて大丈夫ですが、液体の量に対して制限を設けたい場合は使用してみてください。
パーティクル半径
〔パーティクル半径〕は、グリッドセル当たりのパーティクルの半径を設定できます。
基本的には変更の必要がない項目のようです。
正確にシミュレーションできていないと感じた時に調整することで、よりよい結果得られるようです。
サンプリング
〔サンプリング〕は、パーティクルの密度を設定できます。
値が大きくなるほどより多くのパーティクルが生成されます。
ランダムさ
〔ランダムさ〕は、液体の乱流具合を設定することができます。
値が大きいほど乱れて複雑になっています。
以下のリンク先ではより詳しく解説しているので、興味のある方は読んでみてください。
パーティクル最大/最小
〔パーティクル最大/最小〕は、一定範囲のパーティクルの上限と下限を設定することができます。
この値を設定することでシミュレーションの全体的な雰囲気を掴みつつ、処理を軽くすることができます。
ベイクする完成前などはこの値を低く設定することで効率化を図ることができます。
さざ波の幅
〔さざ波の幅〕は、処理を軽くするために用いられる値です。
値を低くすることで、外観に影響のないパーティクルを削減することができます。
なので、値を大きくすることはオススメできないようです。
一応公式では上記のような説明になっていましたが、単純に液体に厚みが欲しい場合には値を大きくすることが有効です。
液体の規模が大きい場合はこの値を下げることで処理を軽くできるので、利点が大きそうです。
詳しくは以下のリンクを読めば理解できます。
分割障害物
〔分割障害物〕は、コリジョンを持つオブジェクトとの衝突を滑らかにする機能です。
この機能を有効にすると〔障害物との距離〕と〔しきい値〕を設定することができます。
〔障害物との距離〕は、そのままどのくらいの距離感で衝突するかを設定できます。
〔しきい値〕は、何を制御しているのかよく分からなかったのです。
ですが値を変更することで見た目が変わったので、色々と試してみてください。
粘度
〔粘度〕は、オンにすることで液体に粘りを与えることができます。
値を”0.000”にしても微小な粘度はあるので、要らない場合はオフにする必要があります。
値を大きくするほど粘り気が上昇します。
拡散
〔拡散〕は、オンにすることで粘度と表面張力を与えることができます。
先ほどは直感的に、簡易的に設定することができましたが、コチラでは数値を用いて設定することができます。
〔ベース〕と〔指数〕の組み合わせで物質の粘度を作成します。
この表の運動粘度を用いていくのですが、例えば水は〔ベース〕の値が”1.002”で、〔指数〕の値が”6”となります。
詳しい解説は以下のリンクを読んだ方が手っ取り早いです。
またプリセットも用意されており、拡散の右側より選択することができます。
〔表面張力〕は、値を大きくするほど表面張力が強くなります。
パーティクル
〔パーティクル〕では、飛沫と泡沫、気泡を作り出すことができます。
この項目だけでパラメーターが多いので、別の具体的な何かのチュートリアルと共に紹介していこうかと思います。
▼【飛沫・泡沫・気泡を作成】はコチラ!
・ただいま準備中。
メッシュ
〔メッシュ〕では、パーティクルで生成した液体シミュレーションを可視化することができます。
この形状がレンダリングされる最終結果になります。
チェックマークを付けることで有効にすることができます。
以下の項目で可視化されたメッシュに変更を加えることができます。
パーティクルには影響がない項目になります。
- Upres係数
- パーティクル半径
- 生成メッシュ
- 正/負のスムージング
- 上部/下限の凹面
Upres係数
〔Upres係数〕は、メッシュの解像度を設定できます。
値を大きくすると分割されてより詳細になっていきます。
ドメイン内の〔分割の解像度〕での設定と合わさるので、双方のバランスを見ながら調整してみてください。
パーティクル半径
〔パーティクル半径〕は、パーティクルの半径どこまでを液体とするかを設定できます。
先ほど紹介した機能と同じなようですが、目に見えてより分かりやすい気がします。
〔Upres係数〕と組み合わることでこのような形状の液体が作成できました。
[ Upres係数:3 パーティクル半径:0.600 ]
生成メッシュ
〔生成メッシュ〕は、メッシュの精度に関する生成方法を設定できます。
最終結果 | 低速で高品質で、スムージングに関するパラメーターが使用可能 |
プレビュー | 高速で低品質 |
正/負のスムージング
〔正/負のスムージング〕は、それぞれのスムージングの反復回数を設定できます。
それぞれの特徴があり一長一短の性能となっています。(以下は値を大きくした場合)
正のスムージング | アウトラインがスムーズになるが、詳細が曖昧 |
負のスムージング | 詳細が綺麗に出るが、アウトラインがボロボロ |
公式マニュアルの画像が分かりやす方ので貼っておきます。
上部/下限の凹面
〔上部/下限の凹面〕は、上下それぞれのメッシュの凹型を結合しやすくする設定ができます。
値を大きくすることで結合しやすくなります。
イマイチわかり辛い機能ですが、”上部の方が下部の値よりも大きくしないとメッシュが歪む”と”同じ値にすると非常に細かいメッシュが生成される”を覚えておけば大丈夫なようです。
細かい組み合わせに関してはコチラの画像が参考になります。
小さくて見にくい場合は出典先の画像を開いて見てください。画質もいいので拡大しても見やすいです。
水のマテリアル
このままだと真っ白なオブジェクトのままなので、液体にマテリアルを設定してみましょう。
先ほど解説した〔メッシュ〕をオンにして、ベイクしてから読んでください
レンダービューに変更すると、このような状態かと思います。
基本的には他のオブジェクト同様にノードを使用して、外観を整えていきます。
▼【ノードの使い方~基礎編~】はコチラ!

完成形はこんな感じになります。
簡単にそれっぽいものになるので、他のものにも使ってみてください。
またここから広げていって更なる液体マテリアルを作ってもらえればと思います。
まずは液体のベースとなる部分を作っていきます。
〔シェーダー〕→〔グラスBSDF〕と〔透過BSDF〕をミックスします。
〔係数〕は”0.200”で透過BSDFの影響が出すぎないように設定します。
次に表面の揺らぎ感をテクスチャで作ります。
〔テクスチャ〕→〔ノイズテクスチャ〕と〔ボロノイテクスチャ〕を追加して接続します。
〔マッピング〕操作が簡単になるので、マッピングも追加しておきます。
〔マッピング〕の追加は〔Node Wrangler〕を使いましょう!
▼【ノード操作に必須のアドオン】はコチラ!

〔マッピング〕のスケールを各々のオブジェクトに合わせて調整してみてください。
次にこのままだとベースの色が微妙なので〔コンバーター〕→〔カラーランプ〕を追加して、水色気味に調整します。
最後に表面に凹凸を追加してよりそれっぽくしてみましょう。
〔ベクトル〕→〔バンプ〕を〔グラスBSDF〕に接続します。
表面の凹凸は〔テクスチャ〕→〔ノイズテクスチャ〕で作成します。
細かい調整は好みで行ってみてください。
これで完成になるので、最後のノードツリーを貼っておきます。
コリジョン
液体を使う場合は〔コリジョン〕も欠かすことができません。
〔コリジョン〕は、オブジェクトに流体との衝突判定を加えたり、流体の流れに影響を与えるための機能です。
液体を流したり、溜めたりしたい場合に対象のオブジェクトにコリジョンを設定する必要があります。
例えば、コップに水を入れるシミュレーションを作りたいとします。
この場合はコップに〔コリジョン〕を設定することで、コップから水が流出することなく貯めることができます。
コリジョンは〔エフェクター〕内の機能になります。
詳しくは以下の記事を読んでみてください。
▼【流体:エフェクター ~コリジョンとガイド~】はコチラ!

因みに物理演算の〔コリジョン〕とは異なります。
▼【コリジョンでオブジェクト同士を衝突】はコチラ!

流体オブジェクトを制作するのに便利なアドオン
最後に流体を作る際に便利なアドオンを紹介していきます。
流体はテストに時間がかかりますし、設定項目も多いのでアドオンを導入することで効率化できます。
Flip Fluids – 流体シミュレーションを支援!

Blenderの流体よりもより詳細にハイクオリティな液体を作ることができるアドオン。
他の色の液体と混ぜたりと、標準機能にはない機能も搭載されております。
詳細は以下の記事を参考にしてみてください。

噴水・滝・水道などの「水」に関するアセットパック

こちらはアドオンではありませんが、「水」に関するアセットやマテリアルが含まれたパックになります。
植物で有名なアドオン「Botaniq」と同じ人が販売しているアドオンで、テクスチャを利用してリアルなオブジェクトを制作することが可能です。
気になる人はぜひ参考にしてみてください。

まとめ
以上になります。お疲れ様でした。
リアルな液体を作り出せるだけあって、パラメーターが複雑で難しいですね。
他のチュートリアルもこなしていくのがよいかと思います。
細かい分からない所があれば、この記事をまた要所要所で読んでもらえれば幸いです。
その他の流体やリジッドボディ・ソフトボディについて知りたい人は以下の記事にまとまっているので、参考にしてみてください。
