On this page | |
Since | 19.0 |
このノードは、 Skin Solify SOPノードによって生成されたジオメトリ(スキンサーフェスやスキンソリッド)に一連の拘束を作成し、 Skin Properties SOPノードで定義された設定を使用してその拘束を駆動してから、 Vellum solverを使ってスキンのシミュレーション(2回目のパスの皮下組織)を計算します。
Skinパス(Skin Surface LayerとSkin Solid Layer)のシミュレーションの際は、Tissue Surface Layerとの次のような拘束関係を理解しておくことが重要です:
パラメータ ¶
Solver ¶
Reset Simulation
スキンのシミュレーションのキャッシュ全体をメモリからクリアします。
Initialization Frame
スキンのシミュレーションを開始するHoudiniプレイバー上のフレームを設定します。
Integration
(振り子のような)弧を描く動きでは、拘束予測がその予測を誤り、動きが減衰することがあります。そのような場合に、どのようにVelocityによってポイント位置を前へ前へと積分させていくかを決定します。
First Order
1次予測を使ってポイントを積分します。1次予測は、過度の跳ね返りを回避します。ソルバがシミュレーション中に衝突を検出した場合、1次予測に戻されます。
Second Order
2次予測を使ってポイントを積分します。2次予測は、弧を描く動きをさらに補い、システム内のエネルギーをより多く維持します。
Solve Iterations ¶
Time Scale
Vellum Solverの実効時間のスケール乗数を指定します。この値を使用すると、バレットタイムのようなエフェクトを作成できます。Vellum Solverの物理計算が、Houdiniのプレイバーとは異なる時間軸で実行されます。値を2に設定すると、スキンが2倍速で落下し、0.1に設定すると、0.1倍速で落下するようになります。
Substeps
ここで指定したサブステップの数で、シミュレーションの各フレームを分割します。高速移動での衝突や急激なフォースに対しては、サブステップを上げる必要があります。
Tip
スキンの伸縮が非常に大きい場合は、サブステップを上げて試すことをお勧めします。
Constraint Iterations
各サブステップ内で、ここで指定した回数だけ拘束が実行されます。剛性の高い拘束を収束させるには、この反復回数を上げる必要があります。 Constraint Iterationsは、収束が早いガウス・ザイデル法を使用します。 しかし、剛性が高すぎたり、不可能な構成が原因で完全に収束しなかった場合、正しくない見た目の三角形が生成されてしまいます。
Smoothing Iterations
各サブステップ内で、ここで指定した回数だけスムージングが実行されます。 Smoothing Iterationsは、収束は遅いものの、残ったエラーが穏やかに広がるヤコビ法を使用しています。 Smoothing Iterations のデフォルトの10回でもエラーは滑らかになりますが、 Constraint Iterations の値が非常に大きい場合は、回数をさらに増やす必要があります。
Collisions ¶
Enable Collisions
オンの時、スキンの外部および自己衝突が有効になります。 Skin Surface Layerのみが衝突します。
Collision Radius Scale
皮下組織とスキンの間の空間のスケール乗数を指定します。 Tissue Solver Vellum SOPノードの Visualize ▸ Tissue Collision Radius パラメータを使用すると、この空間をビューポートで可視化できます。
Ground Plane
オンの時、衝突のグランドプレーンを作成します。 これは、大きく柔らかい尾を床に打ち付けるクリーチャを作成するときに便利です。 平らな面では不十分な場合は、External Collisionsパラメータを使って外部コライダーを用います。
Ground Position
グランドプレーンのXYZワールドポジションを指定して、オフセットできます。
Collision Passes
シミュレーションで、ここで指定した回数だけ衝突が実行されます。 衝突は、拘束のイテレーションと交互に行なわれます。衝突は処理が重いので、大きい数を設定しないようにすることをお勧めします。 Collision Passes を10に設定すれば、ほとんどのケースでうまくいきますが、代わりに substeps を使用することをお勧めします。品質を上げるには、Substepsを使う方が効果的です。
Post Collision Passes
ここで指定した回数だけ、最終ラウンドの衝突検出が実行されます。
Polish Passes
オンの時、追加のコライダーペアを実行する数を指定します。 どの衝突においても、完全に解決できない衝突ペアが存在する可能性があります。未解決の衝突ペアがすべて解決されるまで、これらのパスは実行されます。アクティブなコライダーでのみこれらのパスは実行され、新しい衝突検索は実行されないため、非常に軽い計算処理です。
オンの時、外部衝突オブジェクトをスキンに使用できます。
Collider
外部衝突オブジェクトのネットワークパスを指定します。
Primitive Group
コライダープリミティブを含むジオメトリグループを指定します。
以下のアトリビュートは、拘束を構築する時の静止位置として使用するアトリビュートをソルバに伝えます。
通常では、tpose
アトリビュートはシミュレーションジオメトリと2番目の入力ジオメトリの両方に存在しています。
T-Pose Attribute
スキン拘束を構築する時にキャラクタの静止位置または Tポーズ を派生させるアトリビュートを指定します。 通常では、このアトリビュートはこのノードのシミュレーションジオメトリにあります。
Attach Geometry T-Pose Attribute
スキン Attachment 拘束を構築する時にキャラクタの静止位置または Tポーズ を派生させるアトリビュートを指定します。 通常では、このアトリビュートはこのノードの2番目の入力ジオメトリにあります。
Forces ¶
Gravity
スキンに適用する均一な重力を指定します。
Drag
風のフォースに抵抗するポイントの量を指定します。
Simulation Cache ¶
Cache Simulation
オンの時、スキンのシミュレーションはメモリにキャッシュされます。
Allow Caching To Disk
オンの時、スキンのシミュレーションはディスクにキャッシュされます。
Cache Memory (MB)
メモリキャッシュの最大サイズを設定します。
Advanced ¶
Rigid Group
スキンのシミュレーションに含める剛体スキンポイントグループの名前を指定します。 スキンの一部を可能な限り硬く皮下組織のサーフェスレイヤーに付着させ、滑りを無視する必要がある場合は、 Group SOPノードを作成し、それを Skin Solidify SOPノードに接続し、それを使用してスキンネットワークの剛体スキンポイントグループを定義します。 このような剛体スキンポイントグループを定義する場合は、Group SOPで定義した Group Name をこのパラメータフィールドに入力してください。
Rigid Stiffness
リジッドポイントを付着先ジオメトリ(皮下組織サーフェス)に堅くまたは緩く付着させる度合いを決めます。
Rigid Damping Ratio
Attach拘束を適用した時のエネルギーの消失量を決めます。 これによって、リジッドポイントをどれだけ自由に、または、どれだけ遅く付着させるかを制御することができます。
Tip
リジッドポイントに高周波の微震が発生した場合、 Rigid Damping Ratio を上げたり、または、 Rigid Stiffness を下げることで、そのような微震を軽減させることができます。
Sliding Method
Skin Solid Layerを滑らせる時、Tissue Surface Layerのジオメトリ上の次に近い位置を検索する際に使用される滑りメソッドを指定します。
Closest Point
投影した滑り位置から、ターゲットジオメトリ上の一番近いポイントを選択します。この手法は高速ですが、Tissue Surface Layerのジオメトリにある凹部分を不適切に飛ばす可能性があります。
Traverse Polygons
現在の皮下組織レイヤープリミティブから開始し、継続的に外部へ操作して、周辺のプリミティブ上で一番近いポイントを検索します。処理が重い手法ですが、凹状の皮下組織サーフェスレイヤージオメトリをうまく制御できます。
Traverse Triangles (Optimized)
凹部分をうまく制御できる点では Traverse Polygons と同様ですが、特別な三角形距離関数を使用しているため、何倍も高速です。
Dual Sliding Method Mask
有効にすると、二重メソッドマスクとして作用させるPointアトリビュートの名前を指定します。 マスクアトリビュート値が0以下のポイントは、 Closest Point スライディングを採用します。 マスクアトリビュート値が0より大きいポイントは、 Traverse Triangles スライディングを採用します。 このマスクアトリビュートが見つからなかった場合、そのマスク値は0と見なされるので、 Closest Point が使用されます。
ARAP Volume Preservation (Optimized)
オンの場合、Scale-Invariant ARAPモデルを使用して、最適化された体積維持をスキンに適用しますつまり、プリミティブの形状が変更されるとき、入力スキンVolume Stiffness(solidvolumestiffness
アトリビュート)は無視され、無限大の剛性がボリュームに適用されます。オフの場合、ソルバは追加のボリューム拘束を処理することになります(解決の効率が低下します)。 Volume Stiffness がShape Stiffnessより弱い場合は、異常が生じる可能性もあります。 ARAP Volume Preservation (Optimized) は、デフォルトでオンになっています。
Warning
このパラメータは、 オン にしておくことを強くお勧めします。そうしないと、特に Shape Stiffness が Volume Stiffness を越える場合、スキンの挙動が不安定になる可能性があります。
デフォルトでは、このノードの2番目の入力(Input 2)で指定された内部付着ジオメトリ(通常では、皮下組織の外側サーフェス)が剛体で静的な変形ジオメトリとして扱われ、そのアニメーション位置に ハード Attachリレーションシップ(ピン)が構築されます。 ただし、 Relax Internal Geometry パラメータを有効にすると、その内部付着ジオメトリは代わりにそのアニメーション位置に ソフト Attach(ばね)リレーションシップを構築します。 これによって、シミュレーションされたスキンジオメトリが力を出して、内部付着ジオメトリが動的に反応するようになります。
Pin Stiffness Multiplier
内部付着ジオメトリとアニメーション位置との間に持たせる ソフト または ハード のAttachリレーションシップをマスクする際に使用可能なアトリビュートの名前を指定します。 このPointアトリビュートの値が0の箇所では、スキンの内側サーフェスと内部付着ジオメトリのアニメーション位置の間での付着は0となります。 その箇所の内部付着ジオメトリは、(Gravityを含む)どのフォースにも自由に反応するようになります。 このPointアトリビュートの値が1の箇所では、その内部付着ジオメトリのアニメーション位置のばね剛性は非常に強くなり、ハードピン拘束を使用するのと同様になります。
このパラメータは、 Relax Internal Geometry が 有効 になっている場合にのみ利用可能です。
Solid Stiffness
動的に作用できるようにすると、四面体で構成された内部ジオメトリ(Tissue Solid Layerなど)は、この剛性値を使用してその形状に影響を与えます。
Solid Damping
動的に作用できるようにすると、四面体で構成された内部ジオメトリ(Tissue Solid Layerなど)は、この減衰比を使用してその形状の変化に抵抗します。
Surface Stiffness
動的に作用できるようにすると、三角形で構成された内部ジオメトリ(Tissue Exterior Surface Layerなど)は、この剛性値を使用してその形状に影響を与えます。
Surface Damping
動的に作用できるようにすると、三角形で構成された内部ジオメトリ(Tissue Exterior Surface Layerなど)は、この減衰比を使用してその形状の変化に抵抗します。
Enable Multi-Pass
オンの時、特定の条件が満たされるまで、サブステップを繰り返すことができます。現在の条件は、無効化されたポイントが原因でジオメトリが引っかかり、無効化されてないポイントがストレッチを生成することで生じる問題を修正するように設計されています。衝突は常に拘束を未然に防ぐので、結果としてスキンがストレッチします。自動的に無効化されたポイントに隣接したポイントも、過度なストレッチが検出されると、同じように無効化されます。この解決ステップは、ジオメトリが解放されるまで繰り返されます。
Maximum Passes
ここで指定した回数を最大として、サブステップを繰り返します。無効化する必要のあるポイントがなくなると、プロセスは即座に停止します。
Disable Stretch Ratio
ポイントが無効化の対象であるかを判断をするために使用する、解決ステップの終わりにおけるストレッチの量。これは、失敗した衝突がスキンを引き離している時に、それを検出するためのものです。無効化するポイントを増やすことに失敗すると、通常はスキンが解放され、ストレッチを続けるよりも良い結果が得られます。
Visualize ¶
Internal Attach Geometry
オンの時、Skinパス内のTissue LayersとCore Layersがビューポートに表示されます。
Attachment Vector
オンの時、Skin Surface LayerとTissue Surface Layer間の付着がピンク色のベクトル線として表示されます。 Skin Solid LayerとTissue Surface Layer間の付着は、緑色のベクトル線として表示されます。
Collision Geometry
オンの時、すべての外部衝突オブジェクト(グランドプレーンを含む)が、ビューポート上で青でハイライト表示されます。
Outliers
オンの時、Skin Suface Layerの外側にあるすべてのMuscleポイントとTissueポイントは、ビューポート上でピンク色の球として表示されます。
Tip
MuscleポイントまたはTissueポイントがスキンのサーフェスを突き抜けている場合、以下の値を調整することで、その突き抜けを解消することができます:
-
Tissue Solidify SOPノードのSurface Offsetパラメータの値。
-
Skin Solidify SOPノードのSkin Thicknessパラメータの値。
-
Muscle Solidify SOPノードの入力Muscleジオメトリのサイズ。
Outlier Scale
ビューポートステートでの Outlier のピンクの球のサイズのスケール乗数を指定します。
入力 ¶
Input 1
スキンジオメトリ。これには、Skin Surface Layer(ポリゴン)とSkin Solid Layer(四面体)を含みます。
Input 2
内部付着ジオメトリ。Tissueシミュレーションキャッシュ。
出力 ¶
Output 1
Skinシミュレーションのポイントトランスフォームデータ。
See also |