On this page |
Vellum Solverは、Vellumの計算を単純化したDOPネットワークのラッパーです。
ほとんどのVellum SOPsと同様に、これは3つの入力を持ったSOPです。
1番目の入力には、計算するサーフェスジオメトリを指定します。
2番目の入力は、1番目と同じ数のポイントで、各ポイントがポイント番号またはid
アトリビュートのどちらかで呼応している必要があります。
この2番目の入力には、拘束リレーションシップを表現した特別なプリミティブを指定します。
拘束とは、ポイント間の接続性をどのように定義して制御するのかを示したものであり、Vellum Constraints SOPを使って、この拘束を作成することができます。
ネットワークエディタのTabメニューには、Vellum Configure Clothなどの共通セットアップを呼び出すマクロがいくつか用意されていることに注目してください。
3番目の入力には、衝突ジオメトリを指定します。
衝突ジオメトリは、フレーム間でトポロジーが一致している必要があります。
さらに、いくつかのタイプのパックジオメトリを認識することができます。
Vellum Solverの中に入ってDOPノードを追加することで、特別なフォースを適用することができます。 さらに、Vellum Constraint Property DOPを使えば、内部ノードを利用しているソルバの拘束プロパティを調整することもできます。
パラメータ
Solver
Timescale
Vellumソルバの実効時間をスケールします。 これを使用することで、Bullet時間のような効果を出すことができて、Houdiniのプレイバーとは異なる時間レートでVellumソルバの物理計算が実行されます。 値を2にすると、布が2倍速で落下するようになり、0.1にすると、0.1倍速で遅くなります。
Substeps
各フレームをこのサブステップの数で分割します。 高速移動する衝突オブジェクトまたは急なフォースには、サブステップを上げる必要があります。
デフォルトのサブステップだと、非常に挑戦的な設定になっており、もしVellum Solverがあまりにも伸縮が大きいようでしたら、 通常だとサブステップを2とか5に上げると、ちょうど良く始めることができるでしょう。
Constraint Iterations
各サブステップ内で、この回数だけ拘束が実行されます。 硬い拘束を収束させるには、この反復回数を上げる必要があります。 最初に設定する目安はジオメトリの直径です。要するに、一番遠くのポイントまでのエッジの数です。
Smoothing Iterations
Constraint Iterationsは、収束が早いガウス・ザイデル法をデフォルトで使用しています。 しかし、剛性が高すぎたり、不可能な設定が原因で完全に収束しなかった場合、ひどい見た目の三角形でエラーを残してしまいます。 Smoothing Iterationsは、収束が遅いけど、もっと感じの良い方法でエラーを残すヤコビ法を使用しています。 デフォルトの10回は、エラーを滑らかにしますが、全体的な Constraint Iterations の回数が非常に多い場合は、この回数も上げる必要があります。
Collisions
Enable Collisions
衝突検出を行なうかどうかを制御します。
Self Collisions
自己衝突を検出するかどうかを制御します。
Ground Plane
シミュレーションに地面を追加します。この地面は青いグリッドで可視化されます。
Ground Position
地面の中心の位置。
Collision Passes
実行する衝突検出パスの数。この衝突検出パスは、拘束反復と交互に行なわれます。 衝突検出は処理が重いので、この数を最小限に抑えるのが良いです。 しかし、交互に頻繁に処理することによって、小さいColliderが非伸縮拘束に対して無駄に負荷をかけてしまうテントポールのような現象を回避するのに役立ちます。 実際に試してみると、ほとんどの状況において10が適切であることが分かり、品質を上げるならサブステップを上げることで解決されることが多いです。
Post Collision Passes
すべての拘束が実行された後に、最後決戦の衝突検出が行なわれます。 衝突が最も目立つ失敗モードになる場合が多くて、次のフレームでは交差していないジオメトリから開始できるのが理想です。 そのため、最終クリーンアップのパスによって、それらの要件を成し遂げることができます。 私どもは、このパスの数は"積み上げる層の数 + 2"が妥当であると分かりました。 これによって、下側にあるColliderが、その上に積み上げられた層を完全に波立てるようにする伝搬させることができます。
Polish Passes
ある衝突パスにおいて、ある衝突ペアが完全に解決できないことがあります。 この数だけ追加したColliderペアのパスは、その衝突ペアが解決されるまで実行されます。 これらのパスはアクティブなColliderに対してのみ実行されるので(そして、新しい衝突検索が実行されないので)、非常に計算が軽いです。
Layer Shock
layer
整数Pointアトリビュートを使って、異なる層の布に属するポイントを示すことができます。
この番号が大きいほど、上層の布を参照します。
Layer Shockは、衝突を評価する際に、低いレイヤー番号ほど何倍も重くするので、高いレイヤー番号が低いレイヤー番号をよけるようになります。
他のダイナミクスは、このレイヤー番号の影響を受けません。
レイヤー番号の差分は、その2つの布間のレイヤーの数に関係なく修正されます。
この差分によって、一方向のシミュレーション、完全双方向のシミュレーションの制御方法が決まります。
Forces
Gravity
適用する均一な重力。
Wind
均一な風の方向。これは抵抗力なので、ゼロの風は、静止空気のように作用し、すべてを遅くさせます。 値を上げると、布が最大でそのスピードまで速くなります。
Wind Drag
パーティクルが風のフォースに抵抗する強さ。 この強さは、Vellum Constraints SOPで指定したNormal DragとTangent Dragでスケールされて、向きによって異なる抵抗力が設定されます。
Friction
Static Threshold
完全摩擦が適用される閾値。 接線Velocityと法線インパルスの比率がこの閾値未満の時、接線Velocityが完全に摩擦から除去されます。 これは、重力だけでスライド可能な勾配角度のtan()のようなものです。
Dynamic Scale
Static Thresholdが失敗した場合、これは、動摩擦によって接線Velocityが減少する割合を制御します。
Enable External
外部ジオメトリとの干渉に適用する摩擦効果の度合いに対するスケール係数。
Enable Self
自己ジオメトリとの干渉に適用する摩擦効果の度合いに対するスケール係数。
Ground Static Scale
地面の静摩擦に対するスケール係数。これは、摩擦のない地面の生成に役立ちます。
Ground Dynamic Scale
地面の動摩擦に対するスケール係数。これは、摩擦のない地面の生成に役立ちます。
Simulation
Reset Simulation
シミュレーションキャッシュ全体をクリアします。
Cache Enabled
シミュレーションをメモリ内にキャッシュ化するかどうかを制御します。
Cache Memory (MB)
メモリキャッシュの最大サイズ。
Start Frame
シミュレーションを開始するHoudiniプレイバーのフレーム番号。
Simulation Type
シミュレーションのスタイル。
Quasistatic
フレーム毎にシミュレーションが入力を受け取って、指定したフレーム数だけ順再生します。 最終結果は、そのフレーム分の結果になります。 フレームからフレームの干渉は存在しません。
Dynamic
フレーム毎に前フレームから計算され、入力は最初のフレームのセットアップでのみ使用されます。
Quasistatic Frames
Quasistatic(準静的)シミュレーションに対して事前処理しておくフレーム数。
Clear Dynamics
Velocityなどのすべての動的フォースと状態が出力から削除されます。 これによって、例えばドレープが完了した時に、クリーンな状態の出力で新規シミュレーションを開始することができます。
Advanced
Target
シミュレーションメッシュ上のポイントに Pin to Target をマークすることで、そのポイントをターゲットアニメーションに追従させることができます。 デフォルトでは、このターゲットは1番目の入力になっています。 しかし、何かしらの場合において、ターゲットにしたいアニメーションが他のSOPノード上にあれば、ここでそれを指定することができます。
Target Path
シミュレーションポイントをターゲットアニメーションに設定する時に参照するノードのパス。
ポイントとシミュレーションポイントは、ポイント番号またはid
で一対一で一致させてください。
Integration
Velocityによってポイント位置を前へ前へ積分させていく時、振り子のような弧を描く動きだと、拘束予測がその予測を誤ってその動きが減衰していまいます。 2次プリディクタ(予測器)は、そのような弧を描く動きをもっと補って、システム内のエネルギーをもっと維持させます。
どのような場合でも、干渉が検出されれば、このシステムは、過度の跳ね返りを回避するために、1次プリディクタに戻します。
Max Acceleration
色々な加速度制限オプションを使うことで、シミュレーションが非現実的なフォースの追従にあまりこだわらないようにさせることができます。 加速度制限オプションを使わないと、大きなエネルギースパイクが発生してしまうことがあります。
Fallback to First Order Integration on Collision
ポイントが Max Acceleration を超過すると、鋭くて不連続な干渉の信号が出ていれば、2次予測が誤って、跳ね返りの形式で間違った動きを追加してしまうことが多いです。 この場合では、影響を受けるポイントに対しては、1次の積分に戻されます。
Limit Acceleration in Velocity Update
パーティクルのVelocityがダイナミクスの何かの結果として変更可能な量を制限します。 これは、なにか瞬間的な動きが大きなフォースとして認識されないのを回避することができるので、 パーティクルが遠くに飛んでいってしまわないようにするのに役立ちます。
Limit Displacement on Collision
衝突を解決する時に、その衝突補正が加速度の量よりも大きくパーティクルを動かしてしまう場合に、その効果を制限します。 モデルの一部が布にひっかかって、ありえないような形で布を引っ張ってしまう時は、潔く失敗するのが望ましいです。
Visualize
Show Collision
衝突オブジェクトを青いワイヤーフレームで表示します。
Show Guide Geometry
ソルバから補助的なガイドジオメトリを表示します。
Geometry
Thickness
ジオメトリからpscale
の球を描画します。
このジオメトリが既に解決していて、overlap_self
アトリビュートが設定されていれば、実際に有効な厚みがシアンで描画されます。
これは、元々の厚みがあまりにも太すぎたのではないのか検出するのに役立ちます。
その余分な厚みはシミュレーションでは無視されますが、ただ干渉が遅くなります。
Extrude
球を使用するのではなくて、ジオメトリを反対方向にオフセットさせて厚みを描画します。
Failed Self Collision
失敗した自己干渉を赤い球で描画します。 これらのポイントも、それらのポイントに繋がっているエッジも三角形も、もはや自身のジオメトリと干渉しなくなります。
Failed External Collision
失敗した外部干渉をオレンジの球で描画します。 これらのポイントも、それらのポイントに繋がっているエッジも三角形も、もはや外部ジオメトリと干渉しなくなります。
Welds
weld
アトリビュートによって意味的に接合されたポイントを描画します。
これらのポイントは、自動分解オプションの使用またはweld
を-1に設定することで、計算中に分解させることができます。
Radius Scale
厚みを薄くすれば、可視化した球が場合によっては消えてしまいます。 これは、その可視化した球にスケールをかけて、それを表示できるようにします。
Constraints
Group
拘束を別々のグループに追加します。 これによって、特定のグループのみを可視化することができます。
Pin to Target
ターゲットアニメーションにピン留めされたポイント上に球を描画します。
Stitch Points
縫合されたポイント上に縫合拘束を描画します。
Attach to Geometry
外部ジオメトリに取り付けられたポイントに対して、取り付け拘束を描画します。
Radius
拘束ガイドは、オブジェクトの厚みでスケールされないので、これは絶対スケールでサイズを指定することができます。
Visualization
False Color Mode
青から赤の赤外線カラーを使って、拘束の特性を可視化します。
None
オリジナルカラーのままにします。
Stretch Stress
拘束によって適用された最大伸縮力に応じたカラー。
Bend Stress
拘束によって適用された最大屈曲力に応じたカラー。
Stretch Distance
拘束の伸縮長に応じたカラー。
Stretch Ratio
元の長さと現行伸縮長の比率に応じたカラー。
Bend Angle
曲げ角度のズレ角度に応じたカラー。
Stretch Plastic Flow
伸縮塑性流動の量に応じたカラー。
Bend Plastic Flow
屈曲塑性流動の量に応じたカラー。
Display Visualization Geometry
拘束だけでなく、シミュレーションジオメトリも擬色を付けるかどうか切り替えます。
Max Stretch Stress
最大伸縮圧力が最大カラーとなるようにスケールします。
Max Bend Stress
最大屈曲圧力が最大カラーとなるようにスケールします。
Max Stretch Distance
最大伸縮長が最大カラーとなるように設定します。
Max Stretch Ratio
最大伸縮率が最大カラーとなるように設定します。
Max Bend Angle
最大屈曲角度が最大カラーとなるように設定します。
Max Stretch Plastic Flow
最大伸縮塑性流動が最大カラーとなるように設定します。
Max Bend Plastic Flow
最大屈曲塑性流動が最大カラーとなるように設定します。
Examples
The following examples include this node.
SimpleCrowdCloth Example for Agent Vellum Unpack geometry node
このサンプルでは、Vellum Solverを使って、群衆キャラクタの布をシミュレーションする単純なワークフローを説明しています。
See also |