第1章:流体の基礎とBlenderでの表現
内容 |
解説 |
Blenderでの対応 |
流体とは? |
流れる物質(液体・気体)の力学的挙動 |
Domain・Flow・Effector の概念 |
連続体仮説 |
粒子でなく「滑らかな場」として扱う |
メッシュベース/ボクセル表現 |
状態変数 |
密度ρ、圧力p、速度v、温度Tなど |
Mantaflowの内部計算対象 |
非圧縮性流体 |
密度が一定(∇・v = 0) |
Mantaflowでは非圧縮液体が前提 |
第2章:流体の運動と力学モデル
内容 |
解説 |
Blender応用例 |
連続の式(質量保存) |
∂ρ/∂t + ∇・(ρv) = 0 |
流体が消失しない仕組み |
運動量保存(Navier-Stokes式) |
ρ(∂v/∂t + v・∇v) = -∇p + μ∇²v + f |
ドメイン内の速度場の計算 |
外力fの効果 |
重力や圧力勾配など |
重力の設定、温度・煙の立ち上がり |
粘性μ |
流れの滑らかさに影響 |
粘性の高い液体(シロップなど)再現 |
第3章:数値解法とMantaflowアルゴリズム
内容 |
解説 |
Blenderへの反映 |
ボクセル分割 |
ドメインを3D格子に分割して計算 |
解像度(Resolution)設定に対応 |
MACグリッド |
速度をセルの境界で定義 |
圧力解法の精度向上 |
圧力投影法 |
∇・v = 0を満たすよう圧力調整 |
Mantaflowの内部ステップ |
時間積分(Euler法など) |
微小時間Δtごとの更新 |
ベイク時に実行 |
第4章:流体の種類とモデリング技術
種類 |
特徴 |
Mantaflow設定 |
液体(Liquid) |
表面張力・しぶき・泡など |
Flow Type: Liquid |
気体(Gas) |
拡散・対流・温度差で上昇 |
Flow Type: Smoke/Fire |
境界条件 |
固定壁・通過可能壁・反射 |
Effectorのタイプ指定 |
入出力条件 |
Inflow / Outflow の物理設定 |
流れの連続性の確保 |
第5章:応用シーン別の構築技法
シーン例 |
使用要素 |
解説 |
ダム決壊 → 流下 |
高密度メッシュ・重力流れ |
Domain + Flow + Effector(Wall) |
水槽で泡が上昇 |
粘性+速度バイアス |
気泡風パーティクルとLiquid合成 |
炎と煙の上昇流 |
温度・燃料・冷却率 |
Fireシミュレーション(Gas) |
海面の波 |
MantaflowでなくOcean Modifier |
Mantaflowとは独立系統 |
第6章:物理パラメータとアニメ制御
パラメータ名 |
役割 |
調整のコツ |
Resolution Divisions |
計算格子の粗密 |
64〜256程度が実用範囲 |
Viscosity(粘性) |
ドロドロ or サラサラ |
小:水、大:ハチミツ |
Surface Tension |
表面張力(液滴の丸み) |
0.0〜5.0程度で調整 |
Time Scale |
時間の速さ |
スローモーション演出などに使う |
Mesh |
液体の表面生成 |
Flip Fluidsのような再メッシングにも対応 |
第7章:数式とCGの橋渡し
数式 |
物理意味 |
CGでの使いどころ |
Bernoulliの式 |
エネルギー保存 |
パイプ内流れの速度差に応用 |
Reynolds数 |
流れの層流・乱流の指標 |
粘性と速度のスケール決定 |
Froude数 |
重力と慣性の比 |
波・しぶきの大きさ調整 |
差分法 |
離散化による数値解法 |
時間と空間の更新ステップ |
Navier-Stokes解法 |
非線形項+圧力場の扱い |
Mantaflowの心臓部 |
✅ 1. Bernoulliの式(ベルヌーイの定理)
数式(定常・非粘性・非圧縮流体の近似)
P + 0.5 * ρ * v^2 + ρ * g * h = 定数
-
P
:圧力(Pa)
-
ρ
:密度(kg/m³)
-
v
:速度(m/s)
-
g
:重力加速度(9.81 m/s²)
-
h
:高さ(m)
意味:
エネルギー保存の法則(位置エネルギー + 運動エネルギー + 圧力エネルギーは保存される)
CG応用:
- 噴水やパイプ流などで、狭い場所=速い流れ=圧力が低い → 吸い込まれる描写などに
- 高さを変えると流速が変化する → 滝や放水表現に使用
✅ 2. Reynolds数(レイノルズ数)
数式:
-
Re
:レイノルズ数(無次元)
-
ρ
:流体の密度(kg/m³)
-
v
:流速(m/s)
-
L
:代表長さ(m)
-
μ
:動粘度(Pa·s)
意味:
層流(滑らか)か乱流(渦巻く)かを判別する指標
→ Re < 2000
:層流、Re > 4000
:乱流
CG応用:
- 渦の大きさ、煙の不規則さや揺らぎに関係
- Mantaflowでは「Viscosity(粘性)」や「Vorticity(渦度)」に関係
✅ 3. Froude数(フルード数)
数式:
-
Fr
:フルード数(無次元)
-
v
:流速(m/s)
-
g
:重力加速度(m/s²)
-
L
:代表長さ(m)
意味:
重力と慣性のバランス。波や水柱が立ち上がる条件を評価
CG応用:
-
波やしぶきの挙動、ジャンプする水の高さ
- 水柱が高く立つか、水平に流れるかを演出で調整できる
✅ 4. 差分法(数値流体の基礎)
時間更新の例(陽解法の一例)
f(t + Δt) = f(t) + Δt * df/dt
-
f(t)
:状態量(例:速度、位置など)
-
Δt
:時間ステップ
-
df/dt
:時間微分(変化量)
意味:
連続的な変化を離散ステップで近似計算
→ コンピュータが解けるように流体方程式を刻んで進める
CG応用:
- Mantaflow内部の時間積分ステップ
- 解像度が粗すぎると安定しない(CFL条件など)
✅ 5. Navier-Stokes方程式(ナビエ・ストークス方程式)
数式(運動量保存)
∂v/∂t + (v · ∇)v = -∇P/ρ + ν∇²v + F
-
∂v/∂t
:加速度(時間変化)
-
(v · ∇)v
:対流項(移動による変化)
-
-∇P/ρ
:圧力勾配による加速
-
ν∇²v
:粘性による拡散(ν = 動粘度)
-
F
:外力(重力、浮力、渦度付加など)
意味:
流体の運動方程式。粘性・圧力・外力・拡散のすべてを含む。
CG応用:
-
Mantaflowの中心計算(煙、水、炎すべてに共通)
-
Vorticity
, Pressure
, Viscosity
などがこの式の各項に対応
🔧まとめ(一覧)
数式名 |
数式(プレーンテキスト) |
主なCG応用場面 |
Bernoulliの式 |
P + 0.5 * ρ * v^2 + ρ * g * h = 定数 |
高速流・噴水・水圧表現 |
Reynolds数 |
Re = (ρ * v * L) / μ |
渦の発生、粘性の表現 |
Froude数 |
Fr = v / sqrt(g * L) |
波・しぶき・水跳ね |
差分法(時間更新) |
f(t + Δt) = f(t) + Δt * df/dt |
Mantaflow内部ステップ |
Navier-Stokes式 |
∂v/∂t + (v · ∇)v = -∇P/ρ + ν∇²v + F |
すべての流体現象のベース(煙・水・炎) |
🧪 応用演習(例)
-
「水柱を落とす」:水の落下、跳ね返りの再現(初学者向け)
-
「コップに水を注ぐ」:Inflow+障害物の相互作用(中級)
-
「炎と煙が絡むドラゴンの息」:Fire+Smoke合成(上級)
-
「リアルな泡としぶき」:液体パーティクルとマテリアル調整
✅【液体用:Mantaflow パラメータ一覧と推奨値】
パラメータ名 |
数値例 |
単位・意味 |
解説・目安 |
Resolution Divisions |
64〜256 |
解像度(ボクセル数) |
高いほど滑らか・重くなる(128以上でリアル) |
Time Scale |
1.0(標準) 0.5(スロー) |
時間スケール |
アニメのスピード制御に有効 |
Viscosity Base |
0.0〜10.0 |
粘性(0で水、10でハチミツ) |
流れやすさ・ドロドロ感を調整 |
Surface Tension |
0.0〜5.0 |
表面張力 |
滴の丸みや分離をコントロール |
Particle Radius |
1.0〜2.0 |
液体パーティクルの大きさ |
粗さとレンダ品質のバランス |
Mesh Radius Factor |
1.0〜1.5 |
メッシュの膨張係数 |
液体の体積感の微調整に |
Sampling Substeps |
1〜4 |
時間ステップ補間 |
高速で動く流れの補間用(2以上推奨) |
Smoothing |
0〜5 |
メッシュの滑らかさ |
スパイクを抑えるなら2〜3 |
✅【気体・煙・炎用:Mantaflow パラメータ一覧と推奨値】
パラメータ名 |
数値例 |
単位・意味 |
解説・目安 |
Resolution Divisions |
64〜128 |
グリッド解像度 |
解像度が低いと煙が粗い |
Time Scale |
1.0(通常) 0.8(ゆったり) |
時間スケール |
炎や煙の立ち上がり速度に影響 |
Flame Rate |
1.0〜2.0 |
炎の強さ |
高すぎると派手すぎる |
Fuel Amount |
1.0〜5.0 |
燃料量 |
煙や火の密度に影響 |
Temperature Difference |
1.0〜10.0 |
温度差 |
上昇流の強さに対応(5〜7で自然) |
Smoke Density |
1.0〜3.0 |
煙の密度 |
高いと黒く重い煙になる |
Dissolve Time |
0(しない)〜100 |
煙の消滅時間(F) |
消える煙には 40〜80程度を指定 |
Vorticity |
1.0〜3.0 |
渦の強さ |
風のような動きを強調 |
✅【境界条件と制御パラメータ】
設定名 |
推奨値 |
意味と役割 |
Domain Type |
Liquid / Gas |
液体か気体かを選択 |
Cache Type |
Modular / Replay / All |
計算と再生の形式。Modularが標準 |
Start/End Frame |
1〜250(任意) |
シミュレーションの期間 |
Gravity |
(0, 0, -9.81) |
地球上での標準値 |
Effector Type |
Collision / Guiding / Force |
障害物や誘導体として機能 |
Inflow/Outflow Rate |
0〜5.0 |
流れの強さや水源の供給量 |
🧠【Blenderでの設定場所メモ】
-
Domain
オブジェクト → Physics
タブ → Fluid
→ Domain Type → Liquid / Gas
-
Flow
オブジェクト → Flow Type(Liquid / Smoke) → Flow Behavior(Inflow / Geometry)
-
Effector
→ Type: Collision / Guide / Force Field
-
Cache
→ ベイク形式、フレーム範囲など
-
Viscosity
/ Surface Tension
→ Liquid
項目の中
🔍 実例セット:水柱を落とすシーン
項目 |
設定値 |
Resolution |
128 |
Viscosity |
0.0 |
Surface Tension |
1.0 |
Flow Type |
Inflow(水柱) |
Effector |
Collision(床) |
Time Scale |
1.0 |
Frame Range |
1〜120 |
Gravity |
(0, 0, -9.81) |
✅【1. 長さ・時間・質量の基本単位】
物理量 |
単位記号 |
Blenderでの意味例 |
長さ |
m |
オブジェクトのサイズ(1 Blender unit ≒ 1 m) |
時間 |
s |
シミュレーションの経過時間、アニメーションフレーム |
質量 |
kg |
密度から換算、慣性に影響 |
✅【2. 速度・加速度・密度・粘性】
物理量 |
単位 |
解説・使用例 |
速度 v
|
m/s |
水や煙の流れの速さ(例:自由落下速度) |
加速度 a
|
m/s² |
重力加速度 g = 9.81 m/s²
|
密度 ρ
|
kg/m³ |
水:1000、空気:約1.225 |
動粘性係数 ν
|
m²/s |
水:約 1×10⁻⁶、ハチミツ:10⁻² 〜 10⁻³ |
動圧 P
|
Pa(N/m²) |
壁面や水中の圧力 |
✅【3. 表面張力・粘性・力】
物理量 |
単位 |
解説・目安例 |
表面張力 σ
|
N/m |
水:約 0.0728 N/m(20℃) |
動粘性係数 ν = μ / ρ
|
m²/s |
粘度 μ は Pa·s(Ns/m²) |
圧力 P
|
Pa |
P = F/A :面積あたりの力 |
力 F
|
N |
F = m·a で質量×加速度 |
✅【4. 流量・流速・Reynolds数(レイノルズ数)】
物理量 |
単位 |
解説・使用例 |
体積流量 Q
|
m³/s |
単位時間あたりの流れる体積 |
流速 v
|
m/s |
Q = A·v (A:断面積) |
レイノルズ数 Re
|
無次元 |
Re = ρ·v·L / μ :流れの層流/乱流の判定に使用 |
温度 T
|
K または ℃ |
気体の上昇流の生成条件に影響(MantaflowのFlame) |
✅【5. 重要な近似式・関係式】
⬛ ベルヌーイの定理(非粘性・定常流)
$$
P + \frac{1}{2} \rho v^2 + \rho g h = \text{const}
$$
→ 流速が速いと圧力が下がる(吹き上がり、噴水など)
⬛ レイノルズ数
$$
\mathrm{Re} = \frac{\rho v L}{\mu}
$$
- $\mathrm{Re} < 2000$:層流(静かに流れる)
- $\mathrm{Re} > 4000$:乱流(激しく揺れる)
🎓 補足:Blenderの流体は単位系が省略されがちですが、
- 1 Blender Unit = 1m
- 時間スケール1.0 = 実時間1秒
- 密度1000 ≒ 水
として扱うと現実の流体に近くなります。
例:水柱 1m 高さ → 速度 v ≈ √(2gh) ≈ 4.4 m/s
🔧 応用:CGでの演出的チューニング
目的 |
調整項目 |
推奨アプローチ |
スローに流す |
Time Scale ↓ |
0.5〜0.8 に設定 |
ねっとり液体 |
Viscosity ↑ |
3.0〜10.0(チョコ、ハチミツなど) |
滴がまとまる |
Surface Tension ↑ |
3.0〜5.0 |
渦を強調した煙 |
Vorticity ↑ |
2.0〜3.0(炎や煙の表現に) |