前回の記録: グラスを作る | Cycles Renderを試す 01
今回は前回作ったグラスに水を注いでみたいと思います. Blenderの流体シミュレーションを用いることで,水の複雑な動きから,細かく飛び散った水しぶきまでを簡単に再現することが出来ます. まるでピッチャーから水を注いでいるような場面を作って行きましょう.
水を注ぐには
知っておくこと
- 範囲: Domain
- 障害物: Obstacle
- 水源: Fluid, Inflow
範囲
まずはシミュレーションする範囲(Domain)を決めます. オブジェクトモード(Tabキーで切り替え),ワイヤフレーム表示(Zキーで切り替え)にしたら,Shift+AキーのMeshからCubeを選択して立方体を追加しましょう. 立方体を適当な大きさまでスケール(Sキー)したら,グラスが収まるように位置を合わせましょう(Gキーを押すか,矢印をドラッグして位置を調整しましょう).
投影法は平行投影(Num5キーで切り替え)にし,Num1キーで正面からの眺めにすると位置を合わせやすいです. 下の画像の様に,グラスの底が水槽(Domain)の底に乗っているような位置がベストです.
Sキーに続けてYキーを押すことで,Y軸に沿ってのみスケール出来るようになります. 今回使う水槽に奥行きはそれほど必要ではないため,下の画像の様に可能な限り小さくしておくことでシミュレーションに要する時間を削減出来ます.
さて,適当な大きさの直方体を用意できたので,これを水槽(Domain)として使うために必要な設定を行ってみましょう. 直方体を右クリックで選択して,インスペクタのフィジックス(Physics)タブを開きましょう. ボールが跳ねているマークのタブです.
Blenderで物理シミュレーションを行う時にはこのタブから各種設定を行います. 今回は流体(Fluid)シミュレーションを行いたいので"Fluid"を選択します.
Type:の欄にある"None"をクリックすると,現在選択中のオブジェクトにどの役割を与えるかを選択するための一覧が表示されます.
"役割"と書きましたが,これは最初に説明した"範囲","障害物","水源"のどれかを指します. 今選択している直方体は"範囲(Domain)"にしたいので,"Domain"を選択しましょう.
Domainの設定項目を調整することで,どのような流体シミュレーションを行うのかを細かく設定することが出来ます. 各項目をすべて展開(▶をクリック)したら次の設定を変更しましょう. 太字の数値は変更が必要な部分です.
- Resolution:
- Final: 180
- Preview: 100
- Time:
- Start: 0.000
- End: 2.000
- Viscosity Presetes: Water
- Real World Size: 0.500
- Surface:
- Smooth: 2.000
- Subdivisions: 2
- Generate: 0.100
障害物
障害物は前回作ったグラスです. グラスを右クリックで選択したら,Domainと同様,PhysicsインスペクタからFluidを選択しましょう. 今回Type:は"Obstacle(障害物)"を選択します.
変更の必要な設定項目は下記です.
- Volume Initialization: Both
水源
今回,水源には球体を用います. 球から横方向に水がこぼれてゆけば,まるでピッチャーから水が注がれているように見えることでしょう. 下に完成イメージを載せました. 水の出ているピンポン球が水源(Inflow)です.
Shift+AキーのMeshからUV Sphereを選択して球を追加しましょう. 球をグラスの斜め上まで移動させたら,スケールで球を小さくします. この時の球の大きさが,そのまま水の大きさ(こぼれ落ちる太さ)になります. 上の画像を参考に,球の大きさを決めましょう.
さて,お好みの大きさになった所で,PhysicsインスペクタからFluidを選択し,この球を水源(Inflow)として設定して行きます.
変更の必要な設定項目は下記です.
- Inflow Velocity:
- X: 0.700
- Y: 0.000
- Z: 0.000
Bake - シミュレーションの実行
Domain(範囲)を右クリックで選択して,Physicsインスペクタを表示すると"Bake"と書かれたボタンが見えます.
このボタンを押すと,シミュレーションに必要な計算が実行されます. このレンダリング前の計算(下処理)をBakeと呼びます. Bakeボタンにはこの処理に必要なメモリ容量も記されています. 上画像の場合,326.7MBのメモリが必要とあります. もし,この数値が大きすぎる場合にはDomainの直方体をスケールで小さくするか,Resolutionの値を小さくし,適切なメモリ容量になるよう微調整します.
準備が整ったらCmd+S(WindowsはCtrl+S)キーで念のため保存をしてからBakeボタンをクリックしましょう. するとヘッダー(レンダリングエンジン表示欄横)にプログレスバーが表示されます. 水が1フレームずつ計算され,その結果がワークスペースに順次表示されて行きます. Bakeが完了すると,次のようなシミュレーション結果を得られます.
以上で,流体シミュレーションは完了です! 水のこぼれ方が気に入らない場合はDomainのReal World Sizeや水源の位置,大きさを調整したり,初期速度のX値を0.700から変更してBakeしてみましょう. 次は流体の見た目を設定してみましょう.
流体を水にする
BakeするとDomainが流体になります. Domain(流体)を右クリックで選択したらインスペクタのマテリアルを開きましょう.
"New"をクリックするとマテリアルが表示されます. "Diffuse BSDF"を"Glass BSDF"へと変更したら,IOR(屈折率)を1.333に設定しましょう. これでほぼ常温の水の屈折率を再現出来ます.
色も白へと変更すると良いでしょう. 試しにShift+Zキーでレンダリングを行ってみると,シミュレートした流体がまさに水のように見えるはずです.
上の画像では見やすさのため,背景に青いパネルを置きました. さて,次回は水が落ちる一瞬を切り取って,レンダリングするまでを記録する予定です.
レンダリング | Cycles Renderを試す 03
6670994829987371754
https://www.storange.jp/2016/07/cycles-render-02.html
https://www.storange.jp/2016/07/cycles-render-02.html
流体シミュレーション | Cycles Renderを試す 02
2016-07-08T10:39:00+09:00
https://www.storange.jp/2016/07/cycles-render-02.html
Hideyuki Tabata
Hideyuki Tabata
200
200
72
72