Houdini 19.5 流体

誘導させた海の波

On this page

PressureとVelocityは、Ocean Spectrumなどの外部ソースからシミュレーションに注入することができます。 この目的のために、FLIP Solver SOPノードには Boundary Flow 入力が用意されています。 Ocean Spectrumのセットアップとそのソルバの4番目の入力のおかげで、誘導させた海の波のシミュレーションを作成することができます。

Ocean Spectrumのセットアップ

Ocean Spectrumは、パーティクルを動かすVelocityフィールドを作成します。 パラメータ設定は提案にすぎません。波を作成する方法のヒントとしてお読みください。 様々な設定を自分なりに自由に試してください。

  1. Ocean Spectrum SOPノードを追加して、パラメータエディタを開きます。

  2. 十分なディテールが得られて小さい波も得られるように Resolution Exponent8に設定します。このパラメータは、スペクトルの品質レベルと見なすことができます。

  3. Ocean Spectrumのスケールは、 Grid Size によって制御されます。この値がドメインのXZサイズより小さい場合、スペクトルはタイル化され、繰り返しやスケールのミスマッチが目立ってしまいます。ここでは値を35に設定し、ドメインのXZ平面全体を覆うようにします。

Wind

  1. Wind タブを開きます。

  2. Spectrum TypePhilips に設定します。

  3. 任意: Direction90とか他の角度に設定します。

  4. Speed8m/sと入力します。

  5. Directional Bias3に変更して、様々な方向に動く縦横の波の一部を除去します。

  6. Directional Movement0.3に設定して、風の反対方向に動く波の数を増やします。このパーティクルの逆流が、前進するパーティクルと衝突して、砕け波を生成します。

Amplitude

ここで関係のあるパラメータは Scale です。 Scale が大きすぎると、例えば、波の高さと速度が食い違うなど、望ましくない効果になることがあります。

  • Scale1.4に設定します。

Ocean Evaluateのセットアップ

Ocean Evaluate SOPノードを追加して、その2番目の入力をOcean Spectrumの出力に接続します。 Ocean Evaluateノードの1番目の入力はrequired(必須)とタグ付けされていますが、ここに変形ジオメトリを追加することは必須ではありません。 最後に、Ocean Evaluateノードの出力をFLIP Solverの4番目の入力(Boundary Flow)に接続します。 この接続は、波のVelocityやPressureをFLIP流体パーティクルに転送します。

Geometry

スペクトルのルックを評価するには、 Preview Grid をオンにします。 さらにOcean Evaluateノードの Render/Display フラグをオンにすると、プレビューグリッドが表示されます。 これで、スペクトルを微調整できるようになります。

Volumes

  1. Surface SDF をオンにします。

  2. Velocity をオンにします。

  3. Hydrostatic Pressure をオンにします(ソルバの TypeVelocity Driven の場合、その必要はありません)。

水平方向の Size 値はドメインの寸法(ここでは20mx20m)よりも大きくする必要があります。

  • Size.XSize.Z25Size.Y15に設定します。

Uniform Sampling により、ボリュームのボクセルが必ず立方体になります。 By Size を選択して、 Div Size パラメータのロックを解除します。 値が小さいほどディテールが多く作成されますがシミュレーションが遅くなります。 値は約0.1で十分です。

流体のセットアップ

FLIP Container SOPノードは、シミュレーションドメインの寸法と解像度を定義します。 ドメインは、例えばXZ平面で20mx20mなど十分な大きさにしてください。 さらに、高い波をとらえられるほど十分な高さを設定してください。 10m程度の値から始めてみましょう。 Domain ▸ Size パラメータを変更する代わりに、Box SOPノードをコンテナの入力に接続するのも良いでしょう。 ドメインの寸法は、ジオメトリノードを介した方が制御しやすいかもしれません。

Note

SOP FLIP流体の場合、ドメインは必ずしもボックス形状である必要はありません。 球や円柱さらには変形するシェイプなど、閉じたジオメトリであれば、ほぼすべてのジオメトリでドメインを定義することができます。

Particle Separation は、流体の解像度と、最終的にはパーティクルの数を決定します。 値が小さいほど、最終的に取得するボクセルとパーティクルが多くなります。 ボクセルとパーティクルが多くなることはつまり、シミュレーション時間が長くなり、メモリ使用量も増えることになります。 その代わり、ディテールと小さい波も多くなります。 ドメインのサイズを考えると、プレビューには0.2から0.1程度の値が適切で、シミュレーション時間も短くて済みます。 最終バージョンでは、0.05を使用します。

  1. FLIP Solver SOPを追加します。

  2. コンテナの3つの出力を、ソルバの最初の3つの入力に接続します。

  3. Ocean Evaluateノードの出力を、FLIP Solverノードの4番目の入力に接続します。

  4. Boundary Behavior セクションに移動します。最も重要なのは使用したい Type で、 Velocity Driven または Pressure Driven を選択します。このシーンには“正解”も“不正解”もなく、 Type はほとんど好みの問題です。 Pressure Driven を使ったシーンは、乱れが大きく、飛沫も多い傾向があります。

Note

外部のVelocityまたはPressureのソースを使用するシーンでは、ソルバの Waterline オプションをオフにしてください。

ノードの青い Display/Render フラグをオンにすると、Houdiniがスペクトル波に基づいて水面を作成します。 ドメインの外側を取り囲むパーティクルの帯域も識別できます。 この領域に、新しいパーティクルがソーシングされます。 パーティクルは、ドメインの内部にぶつかると、削除されます。 この出たり入ったりの流れが平衡を作り、(別のソースからパーティクルが追加されない限り)シミュレーションを通してパーティクル数をほぼ一定に保ちます。

Note

パーティクルをサーフェス化すると、ドメイン周囲のソース帯域もサーフェス化され、メッシュが広がります。 そのソース帯域を削除したいのであれば、SOPのクリップ機能を使用してください。

パーティクルシミュレーションを保存する

流体をシミュレーションして、その結果をコンピュータのメモリにキャッシュ化することができます。 FLIP Solverのデフォルトのキャッシュ上限は5,000MBで、通常では長いシミュレーションや複雑なシミュレーションには不十分です。 プロジェクトを終了すると、その結果も失われます。 十分なRAMがあり、シミュレーションをコンピュータのメモリ内に保存したい場合は、以下の操作を行ないます:

  • FLIP Solverの Simulation タブを開いて、 Cache Memory (MB) の値を上げます。

お勧めは、シミュレーションをディスクに保存することです:

  1. ソルバの後にFile Cache SOPノードを追加します。

  2. その入力を、ソルバの1番目の出力に接続します。

  3. Base Folder のエントリを維持する場合は、geo下のプロジェクトディレクトリ($HIP)にキャッシュファイルがあります。

  4. Save to Disk (UIがロックされます)または Save to Disk in Background (UIが反応できる状態になります)をクリックします。

  5. Load from Disk が自動的にオンになり、タイムラインをスクラブすると、ビューポートで結果を確認することができます。

Note

File Cacheは、1番目の出力からパーティクルのみを保存します。 コンテナおよび衝突情報もキャッシュ化したい場合は、各出力にFile Cacheノードを追加する必要があります。

シミュレーション結果

波が動いたり砕けたりするのを観察することができます。 波はドメインの境界で消えてなくなり、新しいパーティクルがドメイン周囲のソース帯域からソーシングされます。 以下のビデオは、 TypePressure Driven に設定したシミュレーションの例です。

このクリップでは、 TypeVelocity Driven です。波の飛沫が減り、海面が穏やかになっています。

See also

流体

初心者向け

パーティクル流体(SOP)

粘度のある流体(SOP)

FLIP構成ツール(SOP)

最適化(SOP)

DOPワークフロー

パーティクル流体(DOP)

粘度のある流体(DOP)

オーシャン(DOP)

最適化

  • 流体の圧縮

  • 流体シミュレーションの分散

    Distributeシェルフツールは、HQueueを使用して複数マシンのファーム上で並列処理ができるように、オブジェクトのシミュレーションネットワークをセットアップします。