blender液体のモディファイアの使い方【水のシミュレーション】

blenderの様々なモディファイアの中で、結構使い方が難しいと感じるのが、液体のモディファイアです。このモディファイアを使うと重くなってしまうこともあって、私のノートパソコンではリアルタイムでの状況をみながらコントロールすることがあまりできないのもその理由の一つです。

それでも、水やコーヒーなど液体を作りたいということはよくあると思います。この記事では、液体のシミュレーションの基本をできるだけわかりやすく説明していきたいと思います。

液体のモディファイアの使い方

液体のモディファイアを使う際は、3つの異なるコンセプトについて理解しておくとわかりやすいと思います。以下の3つの役割を異なるオブジェクトに割り当てることで、液体や水のアニメーションを作っていきます。

  1. エフェクター
  2. フロー
  3. ドメイン

液体のエフェクターを作る

まずは、1つ目のエフェクターからです。エフェクターは、液体そのものではなく、液体と相互作用を及ぼし合うものを指します。例えば、水を注ぐグラスやコーヒーを入れるカップ、あるいは川の中にある小石なんかもエフェクターで表現するオブジェクトになります。バスタブに浮かぶアヒルのおもちゃもエフェクターです。

ここではシンプルに、水がこぼれたときに落ちる地面を作ります。立方体を変形させて、地面になるような適当なオブジェクトを作ります。

オブジェクトができたら、画面右下のフィジックスタブに行き、「液体(Fluid)」を選択します。その下の設定のタイプのところで「エフェクター(Effector)」を選択します。さらに、エフェクタータイプは「衝突(Collision)」になっていることを確認してください。

もしエフェクターが立体でなく平面の場合は、「Is Planar」というチェックボックスにチェックを入れる必要があります。

液体のフローを作る

続いて、液体のフローです。通常フローというのは流れ(Flow)という意味ですが、blenderでは液体になるオブジェクトという意味合いになります。

まずは適当なオブジェクトを追加します。以下のスクリーンショットでは球体を追加しました。この球体にも液体のモディファイアを入れます。先ほどと同様にフィジックスタブに行き、「液体(Fluid)」をクリックします。

それから、今度はタイプを「フロー(Flow)」に設定し、その下のフロータイプのところで「液体(Liquild)」を選択します。その下の液体の振る舞いのところは「ジオメトリー(Geometry)」を選択します。

ジオメトリーを選択すると、このオブジェクトの形に相当する量の水が出るというアニメーションになります。この場合は球体に入っていた水が、球体を突き抜けて下に向かって出てきます。

液体のドメインを作る

最後に液体のドメインを作っていきます。このドメインというのは、液体のシミュレーションが起こる範囲を設定するものです。エフェクターが存在しない場合は、フローから出た液体は、ドメインの範囲の中で地球上の物理に従った動きをするということになります。

ドメインも、立方体を変形させて作りますが、エフェクターとフローのオブジェクトがすっぽり収まってしまうサイズにするのがポイントです。

オブジェクトを追加したら、フィジックスタブに行き、「液体」を選択した後、タイプを「ドメイン」に設定します。さらに、ドメインタイプのところを「液体(Liquid)」に変えます。

これで液体のモディファイアの3つの役割を3つのオブジェクトに割り当てることができました。

ベイクする

ここで、液体のアニメーションを作るのにもう一手間必要です。ドメインを選択したフィジックスタブをスクロールダウンしていくと、「メッシュ」という項目がありますので、そこにチェックを入れます。そうすることで、レンダーしたときにドメインとして使っているメッシュを見えなくすることができます。

さらに、その下の「キャッシュ」の設定で、タイプを「すべて(All)」に変えます。それからその下の「すべてベイクする(Bake All)」をクリックしてください。ちなみに、下のスクリーンショットは、ドメインの中にあるものが見えるようにワイヤーフレームビューにしています。

この「ベイク」という作業は、液体の振る舞いを計算して決定するというような作業です。ベイクしないで再生してもうまくシミュレーションが行われないことがあるので、設定ができたらベイクしてから再生するようにしましょう。

ベイクするのに少し時間がかかる事がありますが、完了したら再生ボタンを押してアニメーションをプレイします。以下のように、液のシミュレーションができているはずです!

エフェクターとフローを入れ替える

ここで、もう一つ別の液体のシミュレーションを行うために、先ほどベイクするときにクリックしたボタンが、ベイクした後は「Free All」となっているはずなので、クリックしてすべての設定をリリースします。

直方体をフローにする

直方体のフィジックスタブに行き、先ほど「エフェクター」に設定したタイプのところを「フロー」に変えます。その下のフロータイプは「液体」、フロービヘイビアーは「ジオメトリー」を選択します。

ちなみに、ジオメトリーの他の選択肢として、「インフロー」と「アウトフロー」というのがあります。インフローは水道のように水が出続ける状態になり、アウトフローはその逆でシンクのように水が吸い込まれていくエフェクトになります。

球体をエフェクターにする

今度は球体のフィジックスタブに行き、一度液体のモディファイアを消去して、「剛体(Rigid Body)」をクリックし、タイプを「アクティブ(Active)」に設定します。

なぜ剛体のモディファイアを使うかというと、水の中に物体がぽちゃんと落ちるアニメーションを作るためです。剛体モディファイアの詳細については以下の記事で詳しく説明しています。

簡単にいうと、球体が重力に従って落ちるようにするために剛体のモディファイアを入れました。ちなみに液体のモディファイアを先に入れてしまうと同じシミュレーションにならないので、モディファイアの順序についても気にしてみてください。もちろん後から順序を入れ替えることも可能です。

続いて、同じ球体に液体のモディファイアを追加します。今度はタイプを「エフェクター」に設定します。球体は水の中に落ちる固体となるので、エフェクターがふさわしいですよね。

ドメインで設定を完了させる

それができたら、再びドメインとして使っていた大きな直方体のフィジックスタブに行って、すべての設定をベイクします。先ほどと同様に、メッシュのところにチェックが入っているかも確認してくださいね。

ベイクが完了したら、アニメーションを再生してみましょう。球体が液体の中にぽちゃんと落ちると、液体が動き出して小さなしぶきが上がります。

上のスクリーンショットはワイアフレームビューでで見た状態ですが、ソリッドビューで見ると以下のような状態になります。これで液体のアニメーションの完成です!

まとめ

いかがでしたでしょうか?液体のモディファイアは少しややこしいですが、「エフェクト」、「フロー」、「ドメイン」という3つのタイプの役割をしっかりと理解すれば、様々なアニメーションを作ることができるはずです。ぜひいろんなシーンに活用してみてください。