Houdini 20.0 オーシャンと水面

Shallow Water Solverの調整

ソルバを設定して、シミュレーションを最適化します。

Shallow Water Solverには、シミュレーションの制御、エラーの修正、シミュレーションのカスタマイズを行なうための様々なパラメータとオプションが用意されています。

To...Do this

シミュレーション全体の品質を改善する

  • Shallow Water Solverシミュレーションはサブステップに基づいています。不安定な場合は、 Simulation タブを開いて Substeps を上げます。値を高くするとシミュレーションの速度が落ちますが、より正確な結果が得られます。そのパラメータは10ずつ上げると良いでしょう。

波が反射しないようにする

  • デフォルトでは、波はHeight Fieldの境界で反射します。反射しないようにする最も手早い方法は、 Setup タブを開いて、 BoundariesPeriodic に変更することです。すると波はHeight Fieldの境界を通過し、反対側に再び現れるようになります。

  • また、 Damping Layer フォルダ内のパラメータを使って、境界付近の波を減衰させることもできます。これは Boundaries のすべてのタイプで機能します。

    1. Enable Damping Layer をオンにします。

    2. 軸のチェックボックスを使って、波が減衰する方向を選択することができます。

    3. Layer Size 値と Damping Strength 値を高くすると、波が境界に到達する前に波を減衰させることができます。

波の反復、再進入を防ぐ

  • ソルバの Setup タブを開いて BoundariesReflective に変更します。波がHeight Fieldの境界で反射されるようになります。

波の速度を上げる

Note

高速で移動する波は、不安定になる場合があります。 これを修正するには、 Simulation タブに移動して Substeps10ずつ上げます。

  • ソーシングを利用している場合は、 Setup タブに移動して Source Scale を上げます。これでソースの水が増え、流れが速くなります。

  • Setup タブの Gravity パラメータを上げる方法もあります。例えば、9.8*2などのエクスプレッションを入力すれば、値が2倍になります。

  • 値が1より大きい場合、 Time Scale はシミュレーション全体の速度を上げ、その結果フレームごとの流れが大きくなります。

波の速度を下げる

  • ソーシングを利用している場合、 Setup タブに移動して Source Scale を下げ、水のボリュームを小さくします。

  • また Setup で、エクスプレッションを使って Gravity を下げます(9.8*0.25など)。

  • 値が1より小さい場合、 Time Scale はシミュレーション全体の速度を下げ、その結果、フレームごとの流れが小さくなります。

  • Setup タブで、 Max Wave Speed をオンにして波の速度制限を設定します。

より多くの水をソーシングする

  • より大きいsourceマスクを描画します。そうしたマスクの描画方法に関する説明は、Shallow Water Solverページにあります。

  • ソルバの Setup タブで、 Source Scale の値を上げます。

Velocity Diffusion を使用する

  • このパラメータはVelocityフィールドをブラーします。大きい値に設定するほど、水の粘度が高くなります

  • Velocity Diffusion を小さいに値に設定すると、シミュレーションが安定しやすくなります。

フォースマスクを使用する

すべてのマスクレイヤーはソルバの Bindings タブにあります。 Force Mask Layer は事前に設定されていませんが、ワークフローは他のレイヤーと同じです。 以下に、簡単なガイドを載せます。 より複雑なワークフローについては、Shallow Water Solverフィールドページを参照してください。

  1. HeightField Paintなどを使用して、ネットワークのHeightfieldとShallow Water Solverノードの間のどこかに、Height Fieldマスクノードを作成します。

  2. マスクを作成します。

  3. HeightField Copy Layerノードを追加します。

  4. Destination で、forceなど、一意の名前を追加します。ソルバの Bindings タブにリストされている名前はいずれも、使用 しないでください

  5. ソルバの Bindings タブに移動します。 Force Mask Layerforceと入力します。

  6. HeightField Mask Clearノードを追加して、現在のマスクを削除し、ネットワークを正常に保ちます。

アニメーションさせたマスクを使用する

マスクは静的である必要はありません。 例えば、アニメーションされたHeightField Noiseや変形オブジェクトを使用して、ソースマスクを作成することができます。

  • ソルバの SetupConstraint Updates サブペインに移動します。

  • Source FrequencyOnce per Frame に設定して、マスクがアニメーションすることをソルバに伝えます。アニメーションさせたシンクマスクには、 Sink Frequency を使用します。

  • マスクのアニメーションまたは変形が非常に高速な場合は、 Every Substep を選択して精度を上げます。このオプションを使用すると、シミュレーションが劇的に遅くなるので注意してください。

  • 静的なマスクを使用し、代わりに Source Scale をアニメーションすることも可能です。

  1. タイムラインスライダを、ソーシングが開始するフレームまで移動させます。

  2. Source ScaleAlt + クリックしてアニメーションキーを打ちます。

  3. ソーシングが最大になるフレームに移動します。

  4. もう1つキーを打ちます。

マスク名およびレイヤー名を変更する

ソルバの Bindings タブでレイヤー名を変更することができます。

  1. 変更したいレイヤーの新しい名前を入力します。すべての名前が一意であり、ネットワーク内で他に使用されていないことを確認してください。

  2. 元の名前が存在するすべてのノードを更新して、新しいレイヤー名を適用します。

スパイクの発生やボクセルの消失を防ぐ

スパイクの発生やボクセルの消失が起こることがあります。 これは、水が高速で移動するときや、異なる方向に流れる水が衝突する領域でよく起こります。 以下の方法でスパイクを軽減することができます。

  • ソルバの Simulation タブに移動して、 Substeps を上げます。デフォルト値の2倍の20にすることをお勧めします。または、50100などの高い値を試しても良いでしょう。

  • Setup タブに Velocity Diffusion があります。非常に小さい値(< 0.001)にすると、シミュレーションが安定しやすくなります。非常に大きい値では、水の粘度がより高くなります。

  • Setup タブには Max Wave Speed チェックボックスがあります。それをオンにして、速度の制限を数値で設定し、スパイクの発生を低減することもできます。

オーシャンと水面

Shallow Water Solver

オーシャン

波紋ソルバ