On this page |
Ripple Solver SOPは、サーフェス上を伝搬する波紋をシミュレーションすることができます。 これを使用することで、濡れた地面に落ちた雨滴による波紋、海上を操舵するクルーズによる波紋をシミュレーションすることができます。 Ripple Solverは平坦なサーフェスに対して最も上手く動作しますが、キャラクタなどの任意のジオメトリにも使用可能です。 これは、布や皮膚に対して漫画のような効果を作成するのに役立ちます。 しかし、Ripple Solverは複雑なジオメトリに適用すると縮退ポリゴンを生成することがよくあります。 この場合、パラメータを注意して調整するようにしてください。
2種類のフォースが波の進展に影響を与えます:
-
Wave Speed 値は、波がサーフェス上を移動する速さを制御します。
-
Rest Spring 値は、タイムステップ毎にサーフェスを静止形状の方へ引っ張ります。値が高いほど波が早く消散し、サーフェス全体が波のエネルギーを失なって、最終的に静止形状に落ち着きます。
波紋を生成するには、 Rest Geometry と Displaced Geometry が必要です。 Rest Geometry は、すべてのポイントが静止位置にある時にジオメトリがどのように見えるべきかを示し、その状態では、波紋はサーフェス上に発生しません。 Displaced Geometry は、静的変位を使用した場合では、初期段階でポイントが空間内をどのように変位するのかを示し、アニメーションする変位を使用した場合では、時間の経過と共にポイントがどのように変位するのかを示します。
Displaced Geometry を使用してポイントの変位を指定することに加え、 Collide Geometry を取り入れることで、波紋を生成することもできます。 Collide Geometry は、衝突時に初期ジオメトリのサーフェスを変形させます。 これには、他のオブジェクトによって波紋が生成される一般的な場面を想定した直感的なインターフェースが備わっています。
波はポイントの変位によって生成されるので、その振幅は、ジオメトリの各部分の厚みを指定することでクランプすることができ、その変位は、各ポイントで指定された厚みを超えないようになります。
入力 ¶
Rest Geometry
すべてのポイントが静止位置にあるジオメトリ。このジオメトリ上に波紋が生成されます。 この入力ジオメトリ用のオプションのPointアトリビュートのリストは Attributes を参照してください。
Displaced Geometry
静止ジオメトリの変位を示したジオメトリ。
このジオメトリ構造は、静止ジオメトリと必ず同じでなければなりません。
この入力が空っぽの場合、ソルバは、1番目の入力を変位ジオメトリとして使用し、その1番目の入力のrest
アトリビュートを静止ジオメトリとして使用します。
Collide Geometry
シミュレーション中に波紋ジオメトリと衝突させてそこから波紋を生成するジオメトリ。 この入力が空っぽの場合、衝突は発生しません。
Note
サーフェスジオメトリとの衝突は、サーフェスを内側に(つまり、マイナスの法線方向へ)歪みを生じさせるだけなので、 魚が水中から空中に飛び出すといった用途には対応できません。
出力 ¶
Geometry with Simulated Ripples
シミュレーション結果を反映するためにポイント位置が操作された静止ジオメトリ。
アトリビュート ¶
rest |
平衡状態でのポイントの位置を示したベクトル。 Displaced Geometry 入力が空っぽの場合、このベクトルが静止位置と見なされ、これを使用して、シミュレーション中の各ポイントの変位量が決まります。 このアトリビュートが存在しなかった場合、ポイントの位置が代用されます。その場合、他のオブジェクトとの衝突以外でポイントの変位は発生しません。 |
|
wavespeed |
このポイントを伝搬する波の速さを示した0から1の間の浮動小数点。 波の速度の決まり方は、 Wave Speed パラメータを参照してください。 このアトリビュートが存在しなかった場合、デフォルトは1です。 このアトリビュートの名前はこのアトリビュートの名前はカスタマイズすることができます。 |
|
restspring |
ポイントを平衡状態に押し戻すために適用される静止スプリングフォースの強さを示した0から1までの浮動小数点値。 静止スプリングの強さの決まり方は、 Rest Spring パラメータを参照してください。 このアトリビュートが存在しなかった場合、デフォルトは1です。 このアトリビュートの名前はカスタマイズすることができます。 |
|
conservation |
1秒後毎にこのポイント上で保持されるVelocity量を示した0から1までの浮動小数点値。 保持の決まり方は、 Conservation パラメータを参照してください。 このアトリビュートが存在しなかった場合、デフォルトは1です。 このアトリビュートの名前はカスタマイズすることができます。 |
|
thickness |
このポイントでのジオメトリの厚みを示したプラスの数値。 これは、ポイントでの波の高さをクランプし、衝突による歪みの量を決めるのに使用されます。 このアトリビュートが存在しなかった場合、ポイントの厚みは Thickness タブの設定で決まります。 |
パラメータ ¶
Reset Simulation
シミュレーションキャッシュ全体をクリアします。
Start Frame
シミュレーションは、Houdiniプレイバー上のこのフレームから開始します。
Setup ¶
Wave Type
サーフェス上のポイントがどのように移動して波を生成するのかを决めます。
Vector
すべてのポイントは、空間内の全方向に自由に移動することができます。
Normal
ポイントは、静止法線方向にのみ移動することができます。
CFL Condition
適応サブステップの保持性を調整します。 1未満の値は、必要なサブステップよりも小さいサブステップを生成し、1より大きい値は大きいサブステップを生成します。
CFLの値が大きいほど、自動的に計算される値が最大値に近くなるため、危険になる可能性があります。
Wave Speed
波紋がポイントからポイントへ移動する速さで、ジオメトリの平均エッジ長に比例します。
各ポイントでのwavespeed
の決まり方は、 Wave Speed Scale Mode パラメータを参照してください。
Wave Speed Scale Mode
各ポイントでのwavespeed
を設定する方法を决めます。
No Scaling
定数の Wave Speed に設定します。
Use Attribute
Wave Speed Attribute の名前のアトリビュート値に設定します。
Scale Attribute
定数の Wave Speed と Wave Speed Attribute の名前のアトリビュート値の積に設定します。
Wave Speed Attribute
wavespeed
の決定に使用されるアトリビュートの名前。
各ポイントでのwavespeed
の決まり方は、 Wave Speed Scale Mode パラメータを参照してください。
Rest Spring
ポイントを静止位置に戻そうとするスプリンの強さを决めます。 波の速度の計算は、変位フィールドの曲率しか見ていないので、これはジオメトリを静止情報に復元しません。
全体の変位は、波の速度によって維持されます。 静止スプリングを追加すると、ポイントが静止位置に引っ張られ、その反動で新しい波紋が発生する場合があります。
各ポイントでのrestspring
の決まり方は、 Rest Spring Scale Mode パラメータを参照してください。
Rest Spring Scale Mode
各ポイントでのrestspring
の設定方法を决めます。
No Scaling
定数の Rest Spring に設定します。
Use Attribute
Rest Spring Attribute の名前のアトリビュート値に設定します。
Scale Attribute
定数の Rest Spring と Rest Spring Attribute の名前のアトリビュート値の積に設定します。
Rest Spring Attribute
restspring
を決めるのに使用されるアトリビュートの名前。
各ポイントでのrestspring
の決まり方は、 Rest Spring Scale Mode パラメータを参照してください。
Conservation
Conservationは、このシステム内で保持されるエネルギー量を决めます。 Velocityはこの比率で直接修正されます。 これは、1秒後のアニメーションで保持されるVelocityの割合を指定します。
1
の値は、Velocityが失われないことを意味し、0.5
はVelocityが1秒後に50%になることを意味し、0
はVelocityがどのフレームでもゼロになることを意味します。
Note
0から1の範囲外のConservation値は数学的な意味がないので、常に0から1の範囲にクランプされます。
各ポイントでのconservation
の決まり方は、 Conservation Scale Mode パラメータを参照してください。
Conservation Scale Mode
各ポイントでのconservation
の設定方法を决めます。
No Scaling
定数の Conservation に設定します。
Use Attribute
Conservation Attribute の名前のアトリビュート値に設定します。
Scale Attribute
定数の Conservation と Conservation Attribute の名前のアトリビュート値の積に設定します。
Conservation Attribute
conservation
の決定に使用されるアトリビュートの名前。
各ポイントでのconservation
の決まり方は、 Conservation Scale Mode パラメータを参照してください。
Use Input as Animated Displacement
このチェックボックスを有効にすると、変位ジオメトリと静止ジオメトリとのポイントの位置の差分が、すべてのフレームでそのポイントの変位として扱われます。 このチェックボックスを無効にすると、最初のフレームの変位のみがシミュレーションで取得されます。
このオプションは、適切にセットアップしないと危険です。 例えば、アニメーションしない変位ジオメトリに対してこのオプションを有効にすると、すべてのフレームでエネルギーがこのシステムに加算されていき、変位ポイントがその変位方向に無限大に飛んでいってしまいます。
Simulation ¶
Min Substep
このシステムを安定に保つのに実行する必要があるサブステップ数に関係なく、最低でもこのサブステップ数が実行されます。
Max Substep
この数よりも多いサブステップは実行されません。
しかし、これが原因でこのシステムが不安定になる場合、このシステムを安定に保つためにwavespeed
やrestspring
の値がクランプされます。
これが発生したことをレポートするために、 Substep Clamped 出力アトリビュートには1
が設定されます。
Global Substep
シミュレーションレベルでのグローバルサブステップを制御します。 サブステップされたジオメトリをエクスポートする必要がある場合は、 Global Substeps を使用するのが最適です。 これはフレームあたりのメモリ量が増えますが、各フレームの最終結果だけでなく、すべてのサブステップが保持されます。
Cache Simulation
シミュレーションをメモリにキャッシュ化するかどうかを制御します。
Cache Memory (MB)
メモリキャッシュの最大サイズ。
Thickness ¶
Max Thickness
各ポイントでの最大の厚み。
thickness
アトリビュートが存在しない、且つ、 Thickness From Geometry が無効な場合、すべてのポイントの厚みがこの値に設定されます。
他には、 Thickness From Geometry が有効な場合、計算された厚みの値は、このMax Thicknessを超えません。
キャラクタなどの複雑なジオメトリに関しては縮退ポリゴンを回避するために、Max Thicknessを下げることをおすすめします。
Thickness From Geometry
このチェックボックスを有効にすると、ポイントの厚みの値は静止ジオメトリから再計算されます。
Thickness Multiplier
元の厚み評価値に対してこの値を乗算します。 これによって、過大推定された厚みによるアーティファクトを抑制することができます。
Median of Neighbors
このチェックボックスを有効にすると、計算されるポイントの厚み値は、隣接するポイントの厚みの中央値になります。 これによって、厚み計算時の計算誤差による外れ値を排除することができます。
Use Blur
厚み計算時にブラーを適用するかどうかを制御します。
Blurring Iterations
このチェックボックスを有効にすると、計算されるポイントの厚み値は、この反復回数だけブラーが適用されます。 これによって、ジオメトリ全体の厚みの値が滑らかになります。
Ray Offset
厚みを決定するレイキャストを実行する時のその光線の原点を調整する量。 値が小さいほど精度が良くなりますが、自己交差エラーが発生する可能性が高くなります。
Clamping ¶
Enable Clamping
有効にすると、ポイントの変位がそのポイントの厚みを超えないようにクランプが実行されます。
Soft Clamp
ソフトクランプが実行される0
から厚みまでの変位範囲を示した0
から1
の間の値。
Soft Clampが高いほど、スケールダウンされる変位の範囲が広くなります。逆も然り。
Soft Clampは、変位がポイントの厚みに近い時に視覚的な精度を犠牲にして遷移を滑らかにすることができます。
Soft Clamp Falloff
0
から2
までの値。これは、Soft Clampの範囲の倍の範囲です。
これは、厚みの値より低くクランプしたい厚みを超えた変位の範囲に対して使用されます。
通常では、1
から2
の間のフォールオフによって、変位がポイントの厚みに近い時に遷移を滑らかにすることができます。
Output ¶
Use Substep Clamped
このチェックボックスを有効にすると、ソルバからsubstepclamped
フィールドがエクスポートされます。
このフィールドは、 Max Substep がこのシステムを不安定にしていることが原因で Wave Speed または Rest Spring がクランプされているかどうかを示します。
Substep Clamped
エクスポートされるsubstepclamped
フィールドのカスタム名。
Use Thickness
このチェックボックスを有効にすると、ソルバからthickness
フィールドがエクスポートされます。
このフィールドには、シミュレーションで使用された各ポイントでの厚み値が格納されます。
Thickness
エクスポートされるthickness
フィールドのカスタム名。
Use Displacement
有効にすると、ソルバからdisplacement
フィールドがエクスポートされます。
このフィールドには、 Clamping 前の各ポイントでの変位値が格納されます。
このフィールドは、 Wave Type がVector
に設定されている場合はベクトル、 Wave Type がNormal
に設定されている場合はスカラーです。
Displacement
エクスポートされるdisplacement
フィールドのカスタム名。
Use Velocity
このチェックボックスを有効にすると、ソルバからv
フィールドがエクスポートされます。
このフィールドには、各ポイントでのVelocityベクトルが格納されます。
Velocity
エクスポートされるv
フィールドのカスタム名。
Show Rest Warning
このチェックボックスを有効にすると、 Displaced Geometry が空っぽだった場合、 Rest Geometry にrest
アトリビュートが見つからなかった場合に警告を出します。
Note
このような構成は技術的に有効なので、あなたがセットアップに自信があるのであれば、このオプションを無効にしてください。
Show Guide Geometry
このチェックボックスを有効にすると、コリジョンを視覚化するために Collide Geometry のワイヤーフレームガイドが表示されます。
Examples ¶
RippleFlippy Example for Ripple Solver geometry node
このサンプルでは、Ripple Solver SOPを使用して、アニメーションするジオメトリをグリッドに衝突させて波紋を生成する方法を説明しています。