LoginSignup
3

More than 3 years have passed since last update.

【Blender】 2.82で流体シミュレーション

Last updated at Posted at 2020-08-13

動作環境

本記事の動作環境は以下の通りです。

項目 環境
OS Windows 10
Blender 2.82

参考サイト

以下の動画、サイトを参考にしております。

参考サイト
シミュレーション解説動画 https://www.youtube.com/watch?v=laao-TTfESg
水マテリアル解説動画 https://www.youtube.com/watch?v=CRNCEaXXTuQ
公式マニュアル https://docs.blender.org/manual/ja/2.82/physics/fluid/introduction.html

全体のワークフロー

Blender 2.82マニュアルより、ワークフローは以下の通り。

  1. ドメインオブジェクトの作成
  2. flowオブジェクトの作成
  3. エフェクタオブジェクトの作成(必要に応じて)
  4. ドメインオブジェクトにマテリアルの割当
  5. 一旦ファイルを保存
  6. シミュレーション用のキャッシュをベイク

outline_2.PNG     outline.gif

ドメインオブジェクトの作成

ドメインオブジェクトとは

シミュレーションを適応させる範囲のこと。

ドメインオブジェクトの作成方法

主な作成方法は以下の通り。

  1. ドメインオブジェクトを追加
  2. 物理演算プロパティ>流体を選択
  3. タイプはドメインを選択
  4. ドメインタイプは液体

domain.PNG

補足:拡散>粘度のプリセット

Blenderでは初期で以下の粘度のプリセットが用意されている。
ドロドロした液体のシミュレーションをしたい場合は使ってみよう。

  • Honey
  • Oil
  • Water

粘度は以下の式で決まるようなので手動で設定することも可能。

 粘度 = ベース × 10 ^ (指数× -1)

domain_2.PNG

参考

https://docs.blender.org/manual/ja/2.82/physics/fluid/type/domain/index.html

flowオブジェクトの作成

flowオブジェクトとは

液体そのもののこと。

flowオブジェクトの作成方法

  1. flowオブジェクトを追加
  2. 物理演算プロパティ>流体を選択
  3. タイプはフローを選択
  4. フロータイプは液体
  5. フローの挙動は任意
  6. 初期速度も任意

flow.PNG

参考

https://docs.blender.org/manual/ja/2.82/physics/fluid/type/flow.html

エフェクタオブジェクトの作成(必要に応じて)

エフェクタオブジェクトとは

障害物のこと。

エフェクタオブジェクトの作成方法

  1. エフェクタオブジェクトを追加
  2. 物理演算プロパティ>流体を選択
  3. タイプはエフェクタを選択
  4. エフェクタータイプはコリジョン

efector.PNG

参考

https://docs.blender.org/manual/ja/2.82/physics/fluid/type/effector.html

ドメインオブジェクトにマテリアルの割当

マテリアルの作成方法

  1. マテリアルを新規作成。
  2. プリンシプルBSDFで以下を設定。

  3. Shift + a > テクスチャ > ノイズテクスチャ を追加

  4. Shift + a > ベクトル > バンプ を追加

  5. 以下を結線

    • ノイステクスチャノードのカラー - バンプノードの高さ
    • バンプノードのノーマル - プリンシプルBSDFのノーマル
  6. 以下を適宜変更して水っぽくする

    • ノイズテクスチャの拡大縮小
    • バンプの強さ
  7. 以下を使用してノイズの位置を変更することができる

    1. Shift + a > ベクトル > マッピング を追加
    2. Shift + a > 入力 > テクスチャ座標 を追加
    3. 以下を結線
      • テクスチャ座標の生成 - マッピングのベクトル(入力)
      • マッピングのベクトル(出力) - ノイズテクスチャのベクトル
  8. マテリアルプロパティ>設定>ブレンドモードをアルファハッシュに変更する

texture.PNG

一旦ファイルを保存

ベイクをする前に一旦ファイルを保存しておきましょう

シミュレーション用のキャッシュをベイク

(キャッシュを)ベイクとは

シミュレーションをレンダリングするための前処理を行うこと。

キャッシュをベイクする方法

以下の方法でベイクができる。
1. ドメインオブジェクトの物理演算プロパティ>設定>データをベイク
2. ドメインオブジェクトの物理演算プロパティ>メッシュ>メッシュをベイク

bake.PNG

キャッシュのパスに日本語が入っているとうまくベイクできないことがあるようなので注意する。

bake_2.PNG

補足:シミュレーションのやり直し方法

パラメータを変えてシミュレーションをやる直したい場合、以下の方法で可能。

  1. ドメインオブジェクトの物理演算プロパティ>メッシュ>メッシュを解放
  2. ドメインオブジェクトの物理演算プロパティ>設定>データを解放

直接2をすることも可能。必要に応じてベイクを開放していけば良さそう。

bake_3.PNG

蛇足:流体シミュレーションは必要か?

水のマテリアルがあれば、ある程度の表現は可能。
必要に応じて物理演算シミュレーションを使うか、モデルファイアで対応するかを決めると良い。

水面の作成方法① Displace モデルファイアー + クラウドテクスチャ + Empty

wave1.gif

以下の方法で作成する。

  1. 平面オブジェクトに水マテリアルを割当
  2. 平面オブジェクトを細分化
  3. Displaceモデルファイアを設定(適応はしない)
    • 強さを小さくしておく (目安:0.1以下)
  4. クラウドテクスチャを作成
  5. スムーズシェードを設定
  6. Emptyを追加
  7. Displaceモデルファイアの設定を以下に変更
    • テクスチャ座標:オブジェクト
    • オブジェクト:Empty
  8. Emptyの位置を適宜変更

displace.PNG
displace_2.PNG

水面の作成方法② Displace モデルファイアー + クラウドテクスチャ + 波モデルファイアー

wave2.gif

スムースシェードを設定するところまでは水面の作成方法と同じ。
以降は以下の手順。

  1. 波モデルファイアーを追加
  2. 位置・減衰・速度・高さ・幅・狭さ などを適宜変更

wave.PNG

水面の作成方法③ 海洋 モデルファイアー

wave3.gif

以下の方法で作成する。

  1. 平面オブジェクトに水マテリアルを割当(ノイズ・バンプノードは不要)
  2. 海洋モデルファイアを設定

特に分割をしなくてもポリゴン数が増えてしまうので注意。
ランダム性が必要でない場合はリピートで対応することでポリゴン数の増加を低減できる。

ocean.PNG

あとがき

静止画で川を作りたくて調べたものの覚書。
水面とか、湖面とか、静止画や簡単な動画程度ならマテリアルかモデルファイア程度でいいかも。
エフェクタを用意して、水しぶきまで表現したいならやっぱり流体シミュレーションかな。
パーティクルなるものも気になる…

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
What you can do with signing up
3