On this page | |
Since | 19.0 |
このノードは、以下を実行します:
-
Muscle Properties SOPノードで作成された物理特性の設定を、 Muscle Solify SOPノードで生成されたジオメトリに適用します。
-
Muscle Constraints Properties Vellum SOPノードによって定義された一連の拘束を、 Muscle Solify SOPノードによって生成されたジオメトリ上に作成します。
-
繊維( Muscle Properties SOP)、収縮( Muscle Flex SOP)、緊張ライン( Muscle Tension Lines SOP)の設定を使用して、筋肉をアニメーションさせます。
-
組み込まれている Vellum Solverを使用して、Muscleシミュレーションを計算します。
パラメータ ¶
Simulation ¶
Reset Simulation
Muscleシミュレーションのキャッシュ全体をメモリからクリアします。
Start Frame
Muscleシミュレーションを開始するHoudiniプレイバー上のフレームを設定します。
Integration
First Order
(振り子のような)弧を描く動きでは、拘束予測がその予測を誤り、動きが減衰することがあります。そのような場合に、どのようにVelocityによってポイント位置を前へ前へと積分させていくかを決定します。
Second Order
1次予測を使ってポイントを積分します。1次予測は、過度の跳ね返りを回避します。ソルバがシミュレーション中に衝突を検出した場合、1次予測に戻されます。
Precision
Muscle Solver Vellum SOP ノードにアトリビュートを格納するのに使用される精度およびメモリ量を変更します。
Unchanged
入力によって決定されたストレージタイプを使用します。
32-bit
筋肉アトリビュートのストレージタイプを、32ビット整数(4バイト)ストレージに設定します。
64-bit
筋肉アトリビュートのストレージタイプを、64ビット整数(8バイト)ストレージに設定します。
Vellum Time Scale
Vellum Solverの実効時間のスケール乗数を指定します。この値を使用すると、バレットタイムのようなエフェクトを作成できます。 Vellum Solverの物理計算が、Houdiniのプレイバーとは異なる時間軸で実行されます。値を2に設定すると、筋肉が2倍速で落下し、0.1に設定すると、0.1倍速で落下するようになります。
Vellum Substeps
ここで指定したサブステップの数で、シミュレーションの各フレームを分割します。 高速移動での衝突や急激なフォースに対しては、サブステップを上げる必要があります。
Tip
筋肉の伸縮が非常に大きい場合は、サブステップを上げて試すことをお勧めします。
Vellum Collision Passes
シミュレーションで、ここで指定した回数だけ衝突が実行されます。 衝突は、拘束のイテレーションと交互に行なわれます。衝突は処理が重いので、大きい数を設定しないようにすることをお勧めします。
Collision Passes を10に設定すれば、ほとんどのケースでうまくいきますが、それよりも substeps の使用をお勧めします。 品質を上げるには、Substepsを使う方が効果的です。
Constraint Iterations
各サブステップ内で、ここで指定した回数だけ拘束が実行されます。 剛性の高い拘束を収束させるには、この反復回数を上げる必要があります。
Constraint Iterationsは、収束が早いガウス・ザイデル法を使用します。 しかし、剛性が高すぎたり、不可能な構成が原因で完全に収束しなかった場合、目立つエラーとして崩れた三角形のようなものが残ってしまいます。
Smoothing Iterations
各サブステップ内で、ここで指定した回数だけスムージングが実行されます。
Smoothing Iterationsは、収束は遅いものの、残ったエラーが穏やかに広がるヤコビ法を使用しています。 Smoothing Iterations のデフォルトの10回でもエラーは滑らかになりますが、 Constraint Iterations の値が非常に大きい場合は、回数をさらに増やす必要があります。
Post Collision Passes
ここで指定した回数だけ、最終ラウンドの衝突検出が実行されます。
Polish Passes
オンの時、追加で実行するコライダーペアパスの数を指定します。 衝突パスでは、完全に解決できない衝突ペアが存在する可能性があります。 これらの未解決の衝突ペアがすべて解決されるまで、これらのパスは実行されます。 これらのパスはアクティブなコライダーでのみ実行され、新しい衝突検索は実行されないため、この処理は非常に軽いです。
以下のパラメータは、様々な筋肉拘束を有効および無効にすることができます。 また、これらのパラメータは、Muscleシミュレーションの挙動のトラブルシューティングを行なう際に非常に役立ちます。
以下のアトリビュートは、拘束を構築する際に静止位置として使用するアトリビュートをソルバに伝えます。
通常では、tpose
アトリビュートはシミュレーションジオメトリと2番目の入力ジオメトリの両方に存在します。
Muscle T-Pose Attribute
静止位置または Tポーズ として使用するアトリビュートを指定します。 このアトリビュートはシミュレーションジオメトリ(Input 1)で見つけることができます。
Bone T-Pose Attribute
静止位置または Tポーズ として使用するアトリビュートを指定します。 このアトリビュートは2番目の入力ジオメトリ(Input 2)で見つけることができます。
以下のパラメータでは、収縮、隆起、形状変化といった筋肉のアクションをアニメーション(トリガー)するアトリビュートを指定します。
筋肉が収縮すると、3つのことが起こります:
1. 収縮(Contraction)_ によって、筋肉が繊維の方向に沿って引っ張られ、筋肉自体が圧迫されます。
2. 筋肉は(四面体で構成された)ソリッドのため、体積を維持しようと、側面に沿って 隆起(Bulge) します。
3. 弛緩している筋肉にはないディテールを収縮している筋肉に追加したい場合は、収縮時の筋肉に使用したい 形状(Shape) のターゲットを明確にします。例えば、収縮した筋肉に溝や窪みを出したい場合などです。
色々なアトリビュートを使用して筋肉のアクションを駆動したい場合は、これらのパラメータを使用して、新しいアトリビュートを指定します。 例えば、 Bulge のアトリビュートを置き換えると、Muscles Solverがその新しいアトリビュートを探して、筋肉の隆起のアクションをアニメーションさせます。 これらのアトリビュートを変更することで、形状、隆起反応(体積の増加)、繊維の収縮に個別に影響を与えることができます。
Contraction
筋肉の 収縮 を駆動するアトリビュートを指定します。デフォルトでは、このアトリビュートはmuscletension
です。
Muscle Flex SOPノードを使用することで、時間の経過と共に Muscle Tension Lineで駆動されるmuscletension
値をオーバーライドすることができます。
Bulge
筋肉の 隆起 を駆動するアトリビュートを指定します。デフォルトでは、このアトリビュートはmuscletension
です。
独自 の Bulge アトリビュートを指定した場合、 Muscle Flex SOPノードを使用することで、その指定したアトリビュートをアニメーションさせて、時間の経過と共に筋肉のfibervolumescale
(0 = Fiber Volume Scale なし、1 = Fiber Volume Scaleパラメータの現行値の100%)値を駆動させることができます。
Shape
筋肉の 形状 のターゲットを駆動するアトリビュートを指定します。デフォルトでは、このアトリビュートはmuscletension
です。
独自 の Shape アトリビュートを指定した場合、 Muscle Flex SOPノードを使用することで、その指定したアトリビュートをアニメーションさせて、時間の経過と共に筋肉のtargetshape
(0 = 100%のtpose
、1 = 100%のtargetshape
)値を駆動させることができます。
Gravity
筋肉に適用する均一な重力を指定します。
Drag
風のフォースに抵抗するポイントの量を指定します。
Velocity Damping
動くボーン(Input 2のアニメーションされたボーンサーフェス)の速度が、筋肉に 影響を与える かどうかを決定します。減衰は引き算処理です。 Velocity Damping 値が高い場合、筋肉が取得する速度は 減り 、値が低い場合は転送される速度(エネルギー)の量が 増え ます。
Note
筋肉の速度は、 Muscle Constraint Properties Vellum SOPノードにあるMuscles to Bone拘束のVelocity Blendパラメータで制御されます。
Cache Simulation
オンの時、筋肉のシミュレーションはメモリにキャッシュされます。
Allow Caching To Disk
オンの時、スキンのシミュレーションはディスクにキャッシュされます。
Cache Memory (MB)
メモリキャッシュの最大サイズを設定します。
Collisions ¶
以下のパラメータは、衝突がソルバによってどのように処理されるのかを決定します。
Self Collisions
オンの時、筋肉ジオメトリの自己衝突が有効になります。自己衝突では、筋肉は貫通せず、筋肉そのものの上に折り畳まれます。例えば、舌を丸めるような感じです。
Muscle to Muscle Collisions
オンの時、筋肉ソリッド間の衝突が有効になります。
Bone Collisions
オンの時、筋肉ソリッドとボーンサーフェス間の衝突が有効になります。
Bone Collision Radius
この値は、筋肉ジオメトリの各ポイントで、筋肉が衝突するボーンの周囲に存在するバブル領域(フォースフィールドなど)が、どのワールド空間単位の距離で存在するかを指定します。
Tip
Bone Collision Radius 値は小さめにしておくことをお勧めします。
Note
筋肉ごと の衝突半径は、 Muscle Constraint Properties Vellum SOPノードのCollision Scaleパラメータで制御されます。
Enable Ground Plane
オンの時、衝突地面を作成します。これは、大きく柔らかい尾を床に打ち付けるクリーチャを作成するときに便利です。 平らな面では不十分な場合は、External Colliderパラメータを使って筋肉の外部コライダーオブジェクトを用います。
Ground Position
衝突地面のXYZワールドポジションを指定して、オフセットできます。
Enable Multi-Pass
オンの時、特定の条件が満たされるまで、サブステップを繰り返すことができます。 現在の条件は、無効化されたポイントが原因でジオメトリが引っかかり、無効化されてないポイントがストレッチを生成することで生じる問題を修正するように設計されています。 衝突は常に拘束を未然に防ぐので、結果としてスキンがストレッチします。 自動的に無効化されたポイントに隣接したポイントも、過度なストレッチが検出されると、同じように無効化されます。 この解決ステップは、ジオメトリが解放されるまで繰り返されます。
Maximum Passes
ここで指定した回数を最大として、サブステップを繰り返します。無効化する必要のあるポイントがなくなると、プロセスは即座に停止します。
Disable Stretch Ratio
ポイントが無効化の対象であるかを判断をするために使用する、解決ステップの終わりにおけるストレッチの量。 これは、失敗した衝突が筋肉を引き離している時に、それを検出するためのものです。 無効化するポイントを増やすことに失敗すると、通常は筋肉が解放され、ストレッチを続けるよりも良い結果が得られます。
以下のパラメータは、外部コライダーとの衝突が、ソルバによってどのように処理されるかを決定します。
Guides ¶
以下のパラメータは、 Muscles Solver Vellum SOP ビューポートステートで、選択した筋肉の物理特性、フォース、拘束を可視化します。
Warning
ガイドをオンにすると、処理が非常に重くなります。 例えば、 Attachment Constraints の可視化によって、ソルバのスピードが大幅に下がります。 ガイドの使用は控えめにしましょう。
Muscle Coloring
ビューポートステートで可視化する筋肉の物理特性、フォース、拘束を決定します。
Off
ビューポートステートで何も可視化されません。
Muscle Ends
筋肉のEnd Regionsの領域を、カラフルなヒートマップとして可視化します。
Muscle to Bone
Muscle to Bone拘束によって拘束された筋肉の領域を、カラフルなヒートマップとして可視化します。
Muscle Tension
個々の筋肉によって使用される筋肉の緊張の量を、ボーンアニメーション中フレーム単位で可視化します。
Tendon Mask
筋肉のTendon Mask Radiusの領域を、赤の筋肉の上に白の領域として可視化します。
Fiber Direction
オンの時、繊維の方向のベクトル線がビューポートステート内の筋肉に表示されます。
Display Bones
オンの時、アニメーションされたボーンサーフェスが、ビューポートステート内でガイドジオメトリとして表示されます。
Bone Color
アニメーションされたボーンサーフェスのガイドジオメトリが、ビューポートステートに表示されるときの色を設定します。
オンの時、有効化されたAttachment拘束がビューポートステート内で可視化されます。
Point Radius
Muscle Ends や Collision Radius などに使用される、ポイントベースの可視化した球のサイズを制御します。
Muscle To Muscle
オンの時、Muscle to Muscle拘束の取り付けを筋肉間の接続線として可視化します。
Muscle To Muscle Color
Muscle to Muscle拘束の接続線の色を指定します。
Muscle Ends
オンの時、Muscle Ends拘束が影響を与える筋肉のサーフェス上のポイントを、小さい球として可視化します。
Muscle Ends Color
Muscle Ends拘束のポイントの球の色を指定します。
Muscle to Bone
オンの時、Muscle to Bone拘束の取り付けを筋肉とボーン間の接続線として可視化します。
Muscle To Bone Color
Muscle to Bone拘束の接続線の色を指定します。
Muscle Glue
オンの時、Muscle Glue拘束の取り付けを筋肉間の接続線として可視化します。
Muscle Glue Color
Muscle Glue拘束の接続線の色を指定します。
Collision Geometry
外部コライダーをビューポートで可視化します。
Collision Geometry Color
外部コライダーの可視化の色を指定します。
Collision Radius
筋肉の周囲の衝突半径の領域を、筋肉サーフェス上のポイントの周囲に一連の球として可視化します。
Disabled Collisions
すべての無効化された外部コライダーを可視化します。
入力 ¶
Input 1
筋肉。筋肉のmuscles_ids
、プロパティ、拘束、繊維ベクトル、autoflex_ids
、muscletension
を含む四面体メッシュ。
Input 2
ボーン。アニメーションされたポリゴンボーンサーフェス。
Input 3
アクティベーションアトリビュート参照。オプションの収縮参照プリミティブ。
例えば、このソルバのネットワークに Muscle Flex SOPノードをコピーし、muscletension
を使用する代わりに、そのノードを使用して形状や隆起アトリビュートをアニメーションできます。
出力 ¶
Output 1
解決された筋肉。Muscleシミュレーションのポイントトランスフォームデータ。
See also |