0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Flip Solver [Mardini2024]

Last updated at Posted at 2024-05-11

これはMardini2024のDay17 Flip Solverの動画を視聴してまとめたものです。

動画

image.png

公式のサンプルファイル

Day16 Ocean Spectrum | Day17 Flip Solver | Day18 APEX Scene Animate

Flip Solverノードは、流体シミュレーションを行うことができます

Flip Solverのヘルプ

image.png

要約

  • Flip Solverノードは、SOPレベルのノードで流体シミュレーションを行います
  • Flip Containerノードで、シミュレーションの基本的なDomain(境界)と初期設定を行います
  • Flip Collideノードを使ってコライダーを追加できます
  • Flip Boundaryノードを使ってソースやシンクを設定できます
  • Viscosity(粘度)やDensity(密度)などのAttributeを追加し、流体の振る舞いを制御できます
  • Fluid Compressノードで出力データのサイズを削減し、ディスクに保存できます
  • Flip Solverノードの中に入るとフォースの追加や高度な設定が行えます
  • SideFXのプリセット(Flip Configure)として溶岩やタンク、海洋レイヤーなど、様々なプリセットが用意されています

サンプルファイル

image.png

FLIP SPLVERノード内に2つのネットワークが構築されています。

Viscosity(粘度)サンプル

image.png

image.png

Waterline(水面)貯水サンプル

image.png

image.png

ダイナミクスとFlip Solver

御存知の通りHoudiniには、ダイナミクスのコンテキスト(DOP)があります。

image.png

最近、SideFXは、ダイナミクスソルバーへのアクセスを提供するSOPレベルのノードを作成しています。そのうちの1つがFlip Solverノードです。

Flip Solverを作成し、中に入るとダイナミクスネットワークを含んでいることがわかります。

image.png

SOPレベルで作業でき、多くのツールを使用できます。

Flip Solver + Flip Container

Flip Containerノードは、Flip Solverの基本的な境界を設定するものです。
Flip Solverに入力する3つのソースを、このノードが提供します。

image.png

接続するとエラーは解消されます。しかしキャッシュのための青いバーの表示はされますが、実際にはまだ何も起こっていない状態です。

image.png

image.png

このFlip Containerは、粒子分離やドメインなどを設定します。シミュレーションを行う際、ドメインの外に出るものはすべてシミュレーションから除外されます。
また、密度、表面張力、粘度、その他のAttributeの設定も含まれています。

image.png

Flip Solverを見てみると、Particle Separationはグレーアウトしています。これは上流のFlip ContainerからParticle Separationを取得するためです。チェックボックスを有効にすることで、明示的に指定することもできます。

image.png

WaterlineタブからWaterlineを有効にすると水面を追加することができます。

image.png

image.png

水面はFlip Containerのサイズに依存します。たとえばDomainのサイズを半分にすると、表示される領域が狭くなります。

image.png

Flip Solver + Flip Collide コライダーの追加

Flip Collideを利用してコライダーを追加していきます。このノードの便利なところは、先程のノード間に差し込んで、使用したいコライダーを選択するだけよいというところです。

image.png

ラバートイをトランスフォームで斜め上に動くキーフレームのアニメーションを付けます。
image.png

Flip Collideは入力に基づいてボリュームを生成しています。

image.png

そしてFlip Solverに入力するとコライダーとなり水面とのFlip衝突が簡単にできるようになります!

image.png

Flip Solver + Flip Boundary ソースとシンクの追加

もしも水面がない場所(flipsolverで先程チェックしたWaterlineを無効にしてください)で水源を調達したい場合は、Flip Solverの4番目の入力がBoundary Flowを利用します。

image.png

使い方はジオメトリを接続するだけです。ここではSphereを接続しています。

image.png

シミュレーションを開始すると、落下する水球ができます。しかし、まるごと落下してしまうのはシミュレーション用のソースとしては微妙です。そこでFlip Boundaryノードを使用します。

image.png

image.png

継続的に水が流れ続けます。
これがFlip Boundaryのtypeのひとつです。

そしてもうひとつのtypeがシンク機能です。
image.png

まず、Flip SolverのCollisionタブでGroundPlaneを有効にします。

image.png

展開すると、GroundPlaneの高さを変更できるので少し下げます。

image.png

image.png

次に追加でTypeをSinkにしたFlip Boundaryノードを差し込みます。

image.png

今度はPoly Extrudeを適用したTubeを入力します。するとこのTubeに触れたエリアから水がシンクに流れるようにシミュレーションから削除されます。

image.png

その他の設定とビジュアライゼーション

image.png

通常のDOP上でアクセスできる設定が他にもまだあります。

  • Air Incompressibility(エアの非圧縮性)は、水タンクのような例で上昇する気泡を作成するのに役立ちます
  • Enforce Particle Separationは、パーティクルが自分自身で崩壊していて、流体の体積が失われている場合に便利です
  • Detect Droplets(ドロップレットの検出)は、主粒子の塊から離れて移動している粒子を検出するのに便利です
  • Velocity Transferのタイプを変えて飛沫を上げたり、渦を巻いたりできます
  • Visualizationタブ内ではポイントを球体とするかのチェックボックスや色の設定があります
  • Advancedタブでは、パーティクルナローバンドのチェックボックスがあります。これは、先ほどのWaterlineを使用している場合に便利です。表面下のすべてのパーティクルを実際にはシミュレートしないように、ナローバンドを持ちたい場合などで有効です

Attributeの追加

・特定のソース(この例ではSphere)にAttributeを追加する場合

SphereのTypeをPolygon、Frequencyを50、Scaleを2倍にします
image.png

ここから粘度を追加していきます。

Attribute Noiseノードを使用してviscosity(粘度)を設定します。型はFloatです。
image.png

リマップ範囲を有効にして、振幅を1000程度、Post-ProcessのMinimumを0.1に設定します。
image.png

image.png

まだこの状態では粘度は反映されていません。そこでFlip Containerノードの粘度を有効にして、Varying Viscosityも有効にします。

image.png

image.png

Densityを設定する場合も同様の手順で設定します。
image.png

流体シミュレーションでDensityが設定されていると低密度のパーティクルが上部に上昇し、重いパーティクルが下部に沈みます。

Flip Solver + Fluid Compress シミュレーションの設定と出力

シミュレーションを出力する場合は、Fluid Compressを使用します。

image.png

このノードはディスク上で占めるサイズを削減します。

image.png

Flip Solver + Particle Fluid Surface シミュレーションの設定と出力

さきほど出力したファイルキャッシュが出力されたら、Fluid Surface Particle Fluid Surfaceを使用します。

再び、3つの入力を接続します。

image.png

image.png

ここではFlip SolverからParticle Separationを取得します。つまり一番上流にあるFlip ContainerのParticle Separationを変更するだけで、ここの解像度も変更されます。
このようにシミュレーションデータの多くは、他のノードから取得される情報を利用していることがあります。

高度な使用法とプリセット

Flip Solverノードをダブルクリックして中に入ると、フォースにアクセスできます。

image.png

たとえば、Pop Windなどを使用できます。
Amplitudeを上げると風の影響を与えることができます。

image.png

image.png

より高度なユーザーの場合は、ノードのロックを解除してDOPを自由にカスタマイズすることも可能です。
image.png

image.png

またSideFXはいくつかのプリセットを用意してくれています。

Tabを押してFlip Configureと入力するといくつかの候補が出てきます。
image.png

それぞれConfigure Flip!(ラバートイのFlip)、Configure Lava(溶岩)、Configure Tank(貯槽)、Configure Beach Tank(ビーチ)、Configure Ocean Layer(海洋)、Configure Wave Tank(波)が用意されています。

Configure Lava(溶岩)を呼び出した場合の例:以下のネットワークができます

image.png

image.png

image.png

まとめ

Flip Solverノードは、SOP上で流体シミュレーションを行うことができます。SideFXが用意してくれているプリセットを学ぶことで、よりFlip Solverノードの使い方をより深く理解できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?