今回はBlenderで基本的な流体シミュレーションの使い方についてご紹介していきたいと思います。
流体シミュレーションとは
上記のような水を表現したい時に利用する機能が、流体シミュレーションとなっています。
上記の場合アドオンを利用していますが、本記事のBlenderの流体シミュレーションを用いれば上図のようなことも行うことができます。
流体シミュレーションを利用せずに水を表現することも下記の記事のようにできますが、用途が限られてくるため注意が必要です。
Blender 蛇口から流れる水の作り方【液体シミュレーション無し】 - TomoGのごちゃまぜ倉庫
液体シミュレーションの使い方
次節からBlenderの流体シミュレーションの基本的な使い方をご紹介していきたいと思いますが、注意点として本記事でご紹介している手順はあくまで一例です。
ドメイン、流入口、障害物の設置など順番は問題ないため、自分がやりやすい順番を見つけることをオススメします。本記事でご紹介している順番はあくまで筆者が行っている順番となります。
ドメインの用意
まず流体シミュレーションを行う範囲を決めるためにもドメインを作成します。これは煙シミュレーションと同じようなものとなっています。
Blender 煙シミュレーションの基本的な方法 - TomoGのごちゃまぜ倉庫
ドメインを設定するために、まずはオブジェクトを設置します。このオブジェクトは基本的に立方体で問題ありません。
この作成した立方体に上図のように物理演算タブから液体を選択してください。するとタイプという項目が出てくるため、この項目をドメインに、そして出てくるドメインタイプを液体に設定してください。
これで大まかなドメインの設定は完了となります。このドメインが主に流体シミュレーションを調整する場所なので、値を変更して試してみてください。
流入口の用意
次に流体シミュレーションを行う時、重要になるその液体が出てくる場所を決定します。この液体が出てくる場所を流入口と呼び、この流入口のオブジェクトも何でも問題ないのですが本記事では分かりやすく球にしたいと思います。
この流入口のオブジェクトを選択後、上図のように物理演算タブを開き、液体を選択しタイプはフローを選択してください。
そしてフロータイプを液体に、フローの挙動を流入口に設定してください。
障害物の用意
次に水をただ流すだけでいうのは少ないと思います。基本的には水の落下などを妨げる障害物があると思います。この障害物を作っていきたいと思います。
何でもいいのでオブジェクトを作成、上図のようにそのオブジェクトの物理演算タブ>液体を選択した後、タイプをエフェクターに、エフェクタータイプをコリジョンに設定してください。
次にサーフェスの厚さを変更してください。これは各自の環境に依るものなので、次節のベイク結果を見ながら調整を行います。
ベイク
次に今まで設定してきたシミュレーション内容をベイクしていきたいと思いますが、Blender2.82以降で流体シミュレーションのベイクが大きく異なりました。そのため、ベイクを複数回行いますので分けています。ご注意ください。
データをベイク
まず初めにデータをベイクする必要があります。これは今まで設定した流体シミュレーションの結果をプレビューするような感覚となっています。
上図のようにドメインオブジェクトの物理演算タブにある【データをベイク】というボタンを選択してください。
そして画面をワイヤーフレームにした後アニメーションを再生してみると、上図のように流体シミュレーションが見られるようになります。
この状態がもし問題なければ次項へ、もし直したい部分があれば、【データをベイク】ボタンが解放に代わっていると思うので、そこを押してデータを解放し再度設定を行ってください。
メッシュをベイク
次に先ほどプレビューした流体を実際にメッシュにしていくというベイクがあります。このベイクをしないと、液体としてレンダリングすることができないため必ず行う必要があります。
上図のようにドメインオブジェクトの物理演算タブにある【メッシュをベイク】というボタンを選択してください。
すると上図のように流体シミュレーションがメッシュに変更されると思います。
パーティクルをベイク
最後に、これは気泡や霧などのパーティクルを設定したい・した方が行うベイクとなります。
上図のようにドメイン設定したオブジェクトの物理演算タブにあるパーティクル項目を選択してください。するとその項目上部に、【霧】、【泡沫】、【気泡】というチェック項目があると思います。ここで追加したいパーティクルにチェックを入れてください。
チェックを入れた後は上図のように【パーティクルをベイク】というボタンを選択してください。
シェーダー設定
最後に、このままだと液体の形をしたメッシュはできますがシェーダーが未設定のため液体に見えないと思います。
そのため、ドメインに選択したオブジェクトに液体用のシェーダーを設定してください。すると流体シミュレーションで生成されたメッシュにも液体用のシェーダーが設定されます。
ベイク時間の変更
流体シミュレーションを行っていると最初から設定されているフレームでは足りない・長い場合があると思います。
そのような場合ベイク時間を変更することで、作業時間の短縮を目指すことができます。
上図のようにドメインオブジェクトの物理演算タブにキャッシュという項目があり、その項目の中に開始フレームと終了という項目があります。
この値を変更することで、ベイクする時間を変更することができるようになっています。レンダリング時間に合わせて変更してみてください。
問題・解決方法
次に流体シミュレーションを行う時、筆者に起こった問題、その解決方法についてご紹介していきたいと思います。
データをベイクしても何も表示されない
このデータをベイクしても何も表示されない問題が複数回筆者は経験しました。解決方法はよくわからないというのが正直なところです。
ただ、筆者は下記のようなことを行い解決しています。
・上図の位置にある【ボーダーコリジョン】の全項目のチェック、【液体】項目のチェック
・ドメインの再設定
・Blenderの再起動
を行いました。
※追記
何も表示されないという状態ですが、分割の解像度が低すぎると表示されないという情報を頂きました。
分解の解像度は上図の位置にある値で、小さすぎると表示されませんでした。そのため、デフォルトの値から下げすぎないようご注意ください。
また、上図のパーティクル半径を変更することでも表示されなくなる可能性があります。
同じ状態でもパーティクルが表示されない時や表示されるときもあるためわかり次第確定させていきたいと思います。
障害物が機能しない
障害物が機能しない場合は、障害物に設定したオブジェクトの物理演算タブにある【サーフェスの厚さ】が小さいことが問題の場合が多いです。
そのため、【サーフェスの厚さ】の値を大きくしてみてください。
参考動画
本記事ではBlenderで流体シミュレーションの基本的な使い方についてご紹介しました。
リアルな背景や描画を行う時、物理演算は必須となり、その中でも流体シミュレーションは使う頻度が多いので、ぜひ本記事を参考にしてみてください。
本記事は以上です。お疲れさまでした。