| On this page |
概要 ¶
このノードは、複数のステップを踏む準静的スタイルのTissueシミュレーションを実行してスキンを変形させます。 この複数のステップに分ける処理のおかげで、順を追って制御しながら、シミュレーションの安定性、品質、および類似したポーズ間の一貫性を最適化することができます。
Armature Deform SOPは、Armature Capture SOPと併せて使用します。
Armature Deform SOPは準静的シミュレーションと変形を実行するのに対して、Armature Capture SOPはシミュレーション用のプロキシジオメトリを用意します。
リアリズムの向上 ¶
Armature Deform SOPは、単にBone Deform SOPを適用するよりもリアルに見える有機組織の変形を実現することができます。
基盤となるOtisソルバで用意されている体積維持機能によって、線形ブレンドスキニング(LBS:Linear Blend Skinning)では実現も近似も困難な非線形変形が生成されます。
LBSとの違いは、ボーンとスキンの間に大きな隙間がある場合に顕著です。
スキンがアーマチュアジオメトリに密着している場合、Armature DeformとLBSの出力差はあまり差が出なくなります。
最適化 ¶
変形処理を高速化するには、スキンメッシュに必要な度合いのディテールのみをプロキシジオメトリに使用してください。
そのディテールの度合いは、Armature Capture SOPの Element Size パラメータで制御します。
Armature Deform SOPを使用して複数のポーズをクックする際の良好なパフォーマンスを得るには、このノードのキャッシュ化の動作に注意してください。 Armature Deform SOPの内部処理(プロキシジオメトリに対するスキンのキャプチャなど)を確実にキャッシュ化するには、Armature Deform SOPの入力のうち、時間依存となるのがAnimated Pose入力だけであるようにしてください。 Armature Deform SOPの他の入力が時間依存だった場合、クック時間が遅くなってしまいます。
解の安定性 ¶
Armature Deform SOPは、内部で準静的スタイルのTissueシミュレーションを実行します。
このシミュレーションは完全にブラックボックスとして扱うことはできません。
妥当な時間内で良好な結果を得るには、 Proxy Geometry to Simulate のプリミティブ(四面体)の数ができるだけ少なくなるようにArmature Capture SOPの Element Size パラメータを十分に大きい値に調整してください。
プロキシジオメトリの四面体の数が百万近くまたはそれ以上あると、Armature Deform SOPのデフォルト設定ではシミュレーションが成功しない可能性があります。
その場合には、Armature Deform SOPの出力は空っぽとなり、Geometry SpreadsheetのPポジションアトリビュートの値にはNANが表示されます。
スキンメッシュに細かいディテールのプロキシジオメトリが必要な場合、シミュレーションを安定させるために、Armature Deform SOPの Steps パラメータと Iterations パラメータの2つの設定を調整すると良いでしょう。 一般的なルールとして、 Element Size パラメータの値を2で割ってプロキシジオメトリのディテールを細かくした場合、 Steps パラメータの値を2倍にして補正してください。 また、 Iterations パラメータの値を大幅に上げてください。その値の加減は、メッシュの接続性に大きく依存します。
シミュレーションに細かいディテールのプロキシジオメトリを使用する場合、以下の提案が役立ちます:
-
Armature Capture SOPの Element Size パラメータを、シミュレーションが成功するレベルまで上げてください。
-
Armature Capture SOPの Element Size パラメータを、複数の段階に進むにつれて徐々に下げてください。
-
それぞれの段階の後に、変形後の結果の品質と安定性を維持するために、 Steps パラメータと Iterations パラメータを上げて補正を試みてください。この操作では、Armature Deform SOPの2番目の出力の変形されたプロキシジオメトリを直接確認するのが役立ちます。
-
MLトレーニング ¶
Armature Deform SOPには様々な応用例があります。 例を挙げると、ML Deformer用のデータセット生成がそうです。 Armature Deform SOPは、トレーニングポーズに基づいてスキン変形を生成することができます。 Armature Deform SOPは、フレームや時間にまったく依存しない準静的シミュレーションを実行するOtisソルバの能力に依存しています。 このおかげで、各ポーズがDOPで時間依存のシミュレーションと複数フレームを必要としていた従来のHoudiniバージョンと比べて効率良くトレーニングポーズを処理することができます。
この時間非依存シミュレーション機能によって、いくつかの方法でトレーニングデータを生成することができます。 フレーム範囲内の各フレームにトレーニングポーズを割り当てて、そのフレーム範囲でArmature Captureを実行することができます。 別の方法としては、SOPでForループを構築することで、すべてのポーズに対してArmature Captureを実行することができます。
より一般的な情報は、機械学習のドキュメントを参照してください。
パラメータ ¶
Steps
Tissueを変形ポーズに適応させるための段階的なステップの数。 目標の変形は、これらのステップで段階的に取り込まれます。 ステップ数が多いほど、その結果はより安定して予測可能になります。
Iterations
各サブステップで実行される最適化パスの回数。 これは、より正確で安定した結果を得るのに役立ちます。
Solve Type
各ステップで実行される解法の種類を決定します。
Quasistatic
各ステップが準静的に解かれます。 これは、動的解法が無限に実行された場合に到達する平衡状態を直接近似します。 各ステップの終わりに拘束状態が適用されます。
Predictive Quasistatic
慣性効果を組み込むように修正された準静的解法で、各ステップの終了状態をより正確に予測します。 この予測型準静的解法は拘束されるため、 Steps パラメータを上げることで最終状態に対する慣性効果を小さくすることができます。
Convergence Scale
ソルバ内で収束を加速化するためのスケール。 この値を上げると、より正確な剛性が得られるようにソルバは収束を速くします。 設定値が高すぎると不安定になる可能性があります。
Solid Rest Scale
シミュレーション中にTissueを人為的に膨張(1より大きい値)または収縮(1より小さい値)させるスケール係数。
Shape Stiffness
局所的な形状変化に対する抵抗の強さを決定します。 値が高いほど抵抗が強くなり、変形が生じにくくなります。
Volume Stiffness
物体が局所的な体積変化に抵抗する強さを決定します。 値が高いほど抵抗が強くなり、体積がより維持されます。 体積の維持は、リアルに見えるTissueシミュレーションにおいて不可欠な要素です。 有機組織をリアルに見せるには、 Volume Stiffness を Shape Stiffness の少なくとも10倍に設定する必要がある場合があります。
Bone Target Strength
プロキシジオメトリには、Animated Pose入力によって変形されるボーンサーフェスを表現するポイントサブセット上にソフト拘束が設定されています。 このパラメータは、そのソフト拘束の強さを制御します。 値が高いほど、拘束されたポイントが目標位置に近づきます。 値を下げると、不安定なシミュレーション結果を回避することができます。
Skin Target Strength
プロキシジオメトリには、Animated Pose入力によって変形されるスキンを表現するポイントサブセット上にソフト拘束が設定されています。 このパラメータは、そのソフト拘束の強さを制御します。 値が高いほど、拘束されたポイントが目標位置に近づきます。 値を下げると、不安定なシミュレーション結果を回避することができます。
Apply Gravity
有効にすると、Tissueは重力の影響を受け、変形したスキンが目に見える形で垂れ下がります。
Gravity
Tissueに影響を与える均一な重力。
Enable Self Collisions
有効にすると、Tissueサーフェスが自己衝突します。
Collision Frequency
衝突検出が実行される頻度。
Collision Stiffness
衝突応答の強さ。
Adaptive Collision Stiffness
有効にすると、相互貫通しているポイントの衝突剛性を徐々に強くして衝突を解消します。 これを有効にすることで、 Collision Stiffness を低く設定することができるため、より滑らかな衝突を実現することができます。
Subdivision Depth
スキンは、細分化したバージョンの四面体メッシュに対してキャプチャされます。 このパラメータは、スキンをキャプチャする前に四面体細分化アルゴリズムをプロキシジオメトリに適用する回数を制御します。 このパラメータは、非常に粗いプロキシジオメトリ( Element Size パラメータの値が大きい)を使用した時のアーティファクトを除去するのに役立ちます。 このパラメータは、値を大きくするとクック時間が指数関数的に長くなってしまうので、可能な限り低く設定してください。 非常に低解像度のプロキシジオメトリを使用する場合を除き、1を超える値を設定する必要はありません。 変形後のスキンが現状のままで良好な場合は、このパラメータを調整する必要はありません。
Attributes to Transform
変形によってトランスフォームされるアトリビュートを指定します。
このフィールドには、アトリビュート名とパターンのリストをスペース区切りで入力することができます。
デフォルトは*で、すべてのアトリビュートが指定されます。
このノードは、ベクトルアトリビュートをそのタイプ情報(ポイント、ベクトル、法線)に応じて変更します。
このリストにPが含まれる/一致する場合、このノードはプリミティブのトランスフォームも回転させます。
Note
このリストにPが含まれているかどうかにかかわらず、このノードは常にPを変更します。
入力 ¶
Skin to Deform
Tissueシミュレーションを受けるプロキシジオメトリによって変形されるスキン。
Proxy Geometry to Simulate
Tissueシミュレーションで使用されるジオメトリ。 そのシミュレーション後に、このジオメトリがスキンを変形させます。
Capture Pose
ボーンサーフェス上のキャプチャウェイト用のキャプチャポーズ。
Animated Pose
変形されるポーズ。 これは使用されず、呼応する出力に渡されます。
出力 ¶
Deformed Skin
Tissueシミュレーションを受けたプロキシジオメトリによって変形されたスキン。
Simulated Proxy Geometry
シミュレーション後のプロキシジオメトリ。
| See also |