H16.5でFlipに追加されたAir機能を使ってみる


どうもご無沙汰しています。篠島です。今回はHoudini 16.5で追加されたAirの機能について説明したいと思います。

 

今回のサンプルファイルです。
Bubble.zip

 

Houdiniのテストでは良く Pig_head や Rubber_toy が切り刻まれ、溶かされ、バラバラにスライスされ・・・・と彼らは色んなR&Dテストでいじめられています。今回は泡の実験ということで人型モデルのトミー君をいじめてみることにしました。

泡のテストということで・・・、トミー君の首を切断し、水中に埋め、溺死シーンを作成してみました。このシーンを作るにあたり、すこし手抜きをしまして、トミー君のサイズを10倍にスケールしてあります。なので作られる泡も巨大な物になっています・・・。

泡を作る上でのポイントは以下の通りです

  • 泡はパーティクル内部にある空洞によって作られる。(Sink等でパーティクルを取り除き空間を作る)
  • Flip SolverのReseed ParticleをOFFにする。
  • Narrow BandはOFFにする。
  • Velocity Transfer は Swirly Kernelにする。
  • AirタブでEnforce Air Incompressibility をONにする。
  • Particle Fluid SurfaceのMethodはSpherical。Erosion Scaleを0にする。 Preserve BubblesをONにする。

 

Sink等でパーティクルを取り除き空間を作る

一番手っ取り早く泡を作るのが、Flipの一部をSinkによって無くしてしまう事でしょう。泡っぽくするために、Sinkで一瞬の間だけパーティクルを消すのが良いと思います。トミー君の例ではSinkずっと存在していますが・・・。そしてその空洞が非圧縮の空気として扱われます。

 

Reseed ParticlesをOFFにする

Flip Solver にある Reseed Particles をOFFにします。この設定は何かというと、Flipは基本的にボリュームベースなので、一つのボクセルに対しパーティクルが存在するのかと言うのが設定により決まり、もしボクセル内のパーティクルが少なすぎる(Sinkでパーティクル削除した時など)に Reseed Particles がONだとせっかく消去したパーティクルがこの機能によってパーティクルが泡のある場所に追加されてしまいます。

以下のビデオで Reseeding の ON と OFF の違いをテストしてみました。薄っぺらいコンテナを作り、真ん中でSinkによりゴッソリとパーティクルを削除しています。
Reseed ParticlesがONだとシミュレーション中にパーティクルが泡の内部に追加されていっているのが確認できると思います。

 

Narrow BandはOFFにする

ONだと下のようにうまくシミュレーションされません。

試しに Narrow Band がONの状態で、Reseed ParticlesをONにしてみると下の様になります。

 

Velocity Transfer は Swirly Kernelにする

Flip Solverの設定を下の図のようにSwirly Kernelにします。

 

Enforce Air IncompressibilityをONにする

これをしないと始まりません。

 

Particle Fluid Surfaceの設定

MethodはSphericalにして、Erosion Scaleを0にする。

Preserve BubblesをONにする

Particle Fluid Surface で Preserve Bubbles というパラメーターがHoudini 16.5.289 から追加されました。Houdini 16.5リリース当初はこのパラメーターが無かったために、メッシュを作成する時にせっかくシミュレーションした空気がFluid Compressノードによって消失していました。なので泡を表現するにはFluid Compressノードを無効にするしか方法が無かったのですが、Houdini 16.5.289からはこのパラメーターにより、Fluid Compressを有効にしたままで泡の部分にきちんとメッシュを貼ってくれます。