« 流体シミュレーション | トップページ | 流体シミュレーション(その3) »

流体シミュレーション(その2)

Fluid_blender2

下から噴出す噴水を作ってみました。これなら水圧で潰されないでしょ。(;´∀`)
噴水にすると水が激しく飛び散るので、屈折を使ってるとレンダリング時間がかなり長くかかります。この画像では1時間半ほどかかりました。面倒ですけど、しかたないですよね。(´・ω・`)


さて、今回はD|Sで設置したフィギュアを障害物として書き出し、Blenderで流体シミュレーションをした結果をまたD|Sに取り込んでレンダリングするまでの手順をご紹介しようと思います。

Fluid_step1まずD|Sで適当なフィギュアを呼び出してポーズをとらせます。今回はCBA3にAiko19を適用したフィギュアを使用しています。これに上から水の塊を落としてみることにします。


Fluid_step2ポーズが決まったらOBJにエクスポートします。プリセットはBlenderを使用しますが、座標軸の変換はせずにX,Y,Zそのままで書き出します。今回は障害物を体積として指定するため、メッシュが閉じている必要があります。Use Bone Weldでグループのつなぎ目を結合し、グループを書き出さずに単一オブジェクトとしてエクスポートするように設定します。


Fluid_step3書き出したOBJをBlenderでインポートします。インポートするときの設定はこんな感じ。すべてデフォルトのままで良いです。


Fluid_step4インポートが終わると、こんなふうにフィギュアが単一オブジェクトとしてシーンに追加されると思います。このフィギュアの上方に流体を作ってみることにしましょう。


Fluid_step5

水の塊にはIcoSphereを使うことにします。シーンにIcoSphereを追加し、フィギュアの上のほうに配置します。


Fluid_step6追加した球に流体の属性を与えます。ObjectパネルのPhysicsを選び、Fluidを指定します。これで球は流体として判断されます。


Fluid_step7 フィギュアに障害物の属性を与えます。同じようにFluidを指定してから、ObstacleをONにすると障害物として判定されます。フィギュアは閉じたメッシュなので、判定基準をVolume(体積)に設定します。


Fluid_step8

最後にシミュレーション範囲を作成します。Cubeを追加し、フィギュアと球を内包するように大きさを調整します。このCubeの内側が流体シミュレーションを行う範囲となり、流体はこのCubeの外側に出ることはありません。
流体の解像度は50に設定してあります。解像度を上げると流体のリアリティがあがりますが、メモリ消費量が爆発的に増えますし、計算時間も長くかかります。Start/Endにはシミュレーションする時間を秒単位で指定します。今回は5秒間に設定してみました。
AdタブのRealworld-SizeにはDomainに指定したCubeの実世界での大きさをメートルで指定します。直方体の場合には最も長い辺のサイズになります。


Fluid_step9

ここまで設定したら、BAKEを押すとシミュレーションが開始されます。水が障害物にぶつかっていく様子が計算中にも表示されますので、見ていても面白いです。

計算が終わったら、左右の矢印キーでアニメーションフレームを変化させ、気に入った形になったところを選んでOBJにエクスポートします。


Fluid_step10

エクスポートするときの設定はこのようになります。流体はDomainに対するモディファイアとして登録されていますので、書き出すときにはApply ModifierをONにする必要があります。


Fluid_step11

あとは書き出したOBJをD|Sにインポートしてレンダリングするだけです。インポートするときのオプションは、サイズや座標軸などをエクスポートした時のものと同じように設定します。意外と簡単ですよね。ヽ(´ー`)ノ

流体の指定でInflowを設定したメッシュを入れると、蛇口から水が出るような状態も作ることができます。次回は蛇口の作り方について書きたいと思います。(最初の画像の噴水はInflowで作っています。)

|

« 流体シミュレーション | トップページ | 流体シミュレーション(その3) »

Blender」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




« 流体シミュレーション | トップページ | 流体シミュレーション(その3) »