0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Mantaflow × Blender のための流体力学

Posted at

第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 = (ρ * v * L) / μ
  • Re:レイノルズ数(無次元)
  • ρ:流体の密度(kg/m³)
  • v:流速(m/s)
  • L:代表長さ(m)
  • μ:動粘度(Pa·s)

意味:

層流(滑らか)か乱流(渦巻く)かを判別する指標
Re < 2000:層流、Re > 4000:乱流

CG応用:

  • 渦の大きさ、煙の不規則さや揺らぎに関係
  • Mantaflowでは「Viscosity(粘性)」や「Vorticity(渦度)」に関係

✅ 3. Froude数(フルード数)

数式:

Fr = v / sqrt(g * L)
  • 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 すべての流体現象のベース(煙・水・炎)

🧪 応用演習(例)

  1. 「水柱を落とす」:水の落下、跳ね返りの再現(初学者向け)
  2. 「コップに水を注ぐ」:Inflow+障害物の相互作用(中級)
  3. 「炎と煙が絡むドラゴンの息」:Fire+Smoke合成(上級)
  4. 「リアルな泡としぶき」:液体パーティクルとマテリアル調整

✅【液体用: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 TensionLiquid 項目の中

🔍 実例セット:水柱を落とすシーン

項目 設定値
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(炎や煙の表現に)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?