On this page | |
Since | 19.0 |
このノードは、 Tissue Solidify SOPノードによって生成されたジオメトリ(TissueとCoreのサーフェスレイヤーとソリッドレイヤー)に一連の拘束を作成し、 Tissue Properties SOPノードで定義された設定を使用してその拘束を駆動してから、 Vellum solverを使って皮下組織のシミュレーション(1回目のパスの皮下組織)を計算します。
Tissueパス(Tissue LayerとCore Layer)のシミュレーションの際は、ボーン、筋肉、それら自体のレイヤー間との次のような拘束関係を理解しておくことが重要です:
パラメータ ¶
Solver ¶
Reset Simulation
皮下組織のシミュレーションのキャッシュ全体をメモリからクリアします。
Initialization Frame
皮下組織のシミュレーションを開始するHoudiniプレイバー上のフレームを設定します。
Integration
(振り子のような)弧を描く動きでは、拘束予測が予測を誤り、動きが減衰することがあります。そのような場合に、どのようにVelocityによってポイント位置を前へ前へと積分させていくかを決定します。
First Order
1次予測を使ってポイントを積分します。1次予測は、過度の跳ね返りを回避します。ソルバがシミュレーション中に衝突を検出した場合、1次予測に戻されます。
Second Order
2次予測を使ってポイントを積分します。2次予測は、弧を描く動きをさらに補い、システム内のエネルギーをより多く維持します。
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 の値が非常に大きい場合は、回数をさらに増やす必要があります。
Enable Collisions
オンの時、皮下組織レイヤーの外部および自己衝突が有効になります。 ただし、Tissue Surface Layerしか衝突しません。
Collide with Muscle and Bones
オンの時、皮下組織はソリッド筋肉ジオメトリやボーンサーフェスと衝突します。
Collision Radius Scale
皮下組織とスキンの間の空間のスケール乗数を指定します。 このノードの 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ノードを作成して、それを皮下組織ネットワークの Tissue Solidify SOPノードに接続し、皮下組織ネットワークに剛体の皮下組織ポイントグループを定義します。 このような剛体の皮下組織ポイントグループを定義する場合は、このパラメータフィールドに、Group SOPで定義した Group Name を入力してください。
Rigid Stiffness
リジッドポイントをボーンサーフェスと筋肉ソリッドジオメトリに堅くまたは緩く付着させる度合いを指定します。
Rigid Damping Ratio
Attach拘束を適用した時のエネルギーの消失量を決めます。 これによって、リジッドポイントをどれだけ自由に、または、どれだけ遅く付着させるかを制御することができます。
Tip
リジッドポイントに高周波の微震が発生した場合、 Rigid Damping Ratio を上げたり、または、 Rigid Stiffness を下げることで、そのような微震を軽減させることができます。
Sliding Method
Tissue Surface Layerを滑らせる時、ボーンサーフェスと筋肉ソリッドジオメトリ上の次に近い位置を検索する際に使用される、滑りの手法を指定します。
Closest Point
投影した滑り位置から、ターゲットジオメトリ上の一番近いポイントを選択します。 この手法は高速ですが、ボーンサーフェスと筋肉ソリッドジオメトリにある凹部分を不適切に飛ばす可能性があります。
Traverse Polygons
現在のボーンサーフェスと筋肉ソリッドプリミティブから開始し、継続的に外側へ走査して、周辺のプリミティブ上で一番近いポイントを検索します。 処理が重い手法ですが、凹状のTissue Surface Layerジオメトリをうまく制御できます。
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
動的に作用できるようにすると、四面体で構成された内部付着ジオメトリ(筋肉メッシュなど)は、この剛性値を使用してその形状に影響を与えます。
このパラメータは、 Relax Internal Geometry が 有効 になっている場合にのみ利用可能です。
Solid Damping
動的に作用できるようにすると、四面体で構成された内部付着ジオメトリ(筋肉メッシュなど)は、この減衰比を使用してその形状の変化に抵抗します。
このパラメータは、 Relax Internal Geometry が 有効 になっている場合にのみ利用可能です。
Surface Stiffness
動的に作用できるようにすると、三角形で構成された内部付着ジオメトリ(ボーンジオメトリなど)は、この剛性値を使用してその形状に影響を与えます。
このパラメータは、 Relax Internal Geometry が 有効 になっている場合にのみ利用可能です。
Surface Damping
動的に作用できるようにすると、三角形で構成された内部付着ジオメトリ(ボーンジオメトリなど)は、この減衰比を使用してその形状の変化に抵抗します。
このパラメータは、 Relax Internal Geometry が 有効 になっている場合にのみ利用可能です。
Enable Multi-Pass
オンの時、特定の条件が満たされるまで、サブステップを繰り返すことができます。現在の条件は、無効化されたポイントが原因でジオメトリが引っかかり、無効化されてないポイントがストレッチを生成することで生じる問題を修正するように設計されています。衝突は常に拘束を未然に防ぐので、結果として皮下組織がストレッチします。自動的に無効化されたポイントに隣接したポイントも、過度なストレッチが検出されると、同じように無効化されます。この解決ステップは、ジオメトリが解放されるまで繰り返されます。
Maximum Passes
ここで指定した回数を最大として、サブステップを繰り返します。無効化する必要のあるポイントがなくなると、プロセスは即座に停止します。
Disable Stretch Ratio
ポイントが無効化の対象であるかを判断をするために使用する、解決ステップの終わりにおけるストレッチの量。これは、失敗した衝突が皮下組織を引き離している時に、それを検出するためのものです。無効化するポイントを増やすことに失敗すると、通常は皮下組織が解放され、ストレッチを続けるよりも良い結果が得られます。
Visualize ¶
Collision Geo
オンの時、すべての外部衝突オブジェクト(グランドプレーンを含む)が、ビューポート上で青でハイライト表示されます。
Tissue Collision Radius
オンの時、皮下組織とスキンの間の空間がビューポートで可視化されます。
Attachment
オンの時、皮下組織レイヤーとコアレイヤー間の取り付けのベクトル線が、ビューポートのジオメトリ上に金色の線として表示されます。
入力 ¶
Input 1
皮下組織ジオメトリ。 ここには、Tissue Surface Layer(ポリゴン)、Tissue Solid Layer(四面体)、Core Surface Layer(ポリゴン)、Core Solid Layer(四面体)を含めます。
Input 2
Internal Attach Geometry。 筋肉シミュレーションのキャッシュとアニメーションされたボーンジオメトリ
出力 ¶
Output 1
皮下組織シミュレーションポイントトランスフォームデータ。
See also |