| On this page | |
| Since | 19.0 |
このノードは、以下を実行します:
-
Muscle Properties SOPノードで作成された物理特性の設定を、
Muscle Solify SOPノードで生成されたジオメトリに適用します。
-
Muscle Constraints Properties Vellum SOPノードによって定義された一連の拘束を、
Muscle Solify SOPノードによって生成されたジオメトリ上に作成します。
-
繊維、収縮、緊張ラインの設定を使用して、筋肉をアニメートします。
-
Vellum solverを使用して、筋肉シミュレーションを計算します。
パラメータ
Simulation
Reset Simulation
筋肉シミュレーションのキャッシュ全体をメモリからクリアします。
Start Frame
筋肉シミュレーションを開始するHoudiniプレイバー上のフレームを設定します。
Integration
First Order
(振り子のような)弧を描く動きでは、拘束予測がその予測を誤り、動きが減衰することがあります。そのような場合に、どのようにVelocityによってポイント位置を前へ前へと積分させていくかを決定します。
Second Order
1次予測を使ってポイントを積分します。1次予測は、過度の跳ね返りを回避します。ソルバがシミュレーション中に衝突を検出した場合、1次予測に戻されます。
Solver
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
オンのとき、追加のコライダーペアを実行する数を指定します。どの衝突においても、完全に解決できない衝突ペアが存在する可能性があります。これらの未解決の衝突ペアがすべて解決されるまで、これらのパスは実行されます。これらのパスはアクティブなコライダーでのみ実行され、新しい衝突検索は実行されないため、非常に軽い計算処理です。
Constraints
これらのパラメータは、さまざまな筋肉拘束を有効および無効にできます。また、これらのパラメータは、筋肉シミュレーションの挙動のトラブルシューティングを行なう際に非常に役立ちます。
Muscle Ends
Muscle Ends拘束が筋肉の両端を拘束するターゲットのタイプを決定します。
Disable
Muscle Ends拘束を、筋肉シミュレーションで無効にします。
Constrain to Nearest Bone
筋肉の両端を最も近いボーンに拘束します。このモードは近接度をベースにしています。
Constrain to Target Animation
筋肉の両端をターゲットアニメーション(入力ボーンアニメーション)に拘束します。このモードでは、筋肉の両端が、 Muscle Flex SOPノードのプロキシアニメーションの動きを追従しようとします。
Enable Muscle to Bone
オンのとき、筋肉シミュレーションに対してMuscle to Bone拘束が有効になります。
Enable Muscle to Muscle
オンのとき、筋肉シミュレーションに対してMuscle to Muscle拘束が有効になります。
Enable Velocity Blending
オンのとき、筋肉シミュレーションに対してVelocity Blend拘束が有効になります。
Activation Attributes
Activation Attributes パラメータは、収縮、隆起、形状変更といった筋肉のアクションをアニメート(トリガ)するアトリビュートを指定します。
筋肉が収縮すると、3つのことが起こります: 1. 収縮 によって、筋肉が繊維の方向に沿って引っ張られ、筋肉自体が圧迫されます。 2. 筋肉はソリッド(四面体で構成されている)のため、体積を維持しようと、側面に沿って 隆起 します。 3. 弛緩している筋肉にはないディテールを収縮している筋肉に追加したい場合は、収縮時の筋肉に使用したい 形状 のターゲットを明確にします。例えば、収縮した筋肉に溝やくぼみを示したい場合などです。
さまざまなアトリビュートを使用して筋肉のアクションを駆動したい場合は、これらのパラメータを使用して、新しいアトリビュートを指定します。例えば、 Bulge のアトリビュートを置き換えると、Muscles Solverがその新しいアトリビュートを探して、筋肉の隆起のアクションをアニメートします。これらのアトリビュートを変更することで、形状、隆起反応(体積の増加)、繊維の収縮に個別に影響を与えることができます。
Contraction
筋肉の 収縮 を駆動するアトリビュートを指定します。デフォルトでは、アトリビュートはmuscletensionです。
Bulge
筋肉の 隆起 を駆動するアトリビュートを指定します。デフォルトでは、アトリビュートはmuscletensionです。
Shape
筋肉の 形状 のターゲットを駆動するアトリビュートを指定します。デフォルトでは、アトリビュートはmuscletensionです。
Forces
Gravity
筋肉に適用する均一な重力を指定します。
Drag
風のフォースに抵抗するポイントの量を指定します。
Velocity Damping
動くボーン(Input 2のアニメートされたボーンサーフェス)の速度が、筋肉に 影響を与える かどうかを決定します。減衰は引き算処理です。 Velocity Damping 値が高い場合、筋肉が取得する速度は 減り 、値が低い場合は転送される速度(エネルギー)の量が 増え ます。
Note
筋肉の速度は、 Muscle Constraint Properties Vellum SOPノードにあるMuscles to Bone拘束のVelocity Blendパラメータで制御されます。
Simulation Cache
Cache Simulation
オンのとき、筋肉のシミュレーションはメモリにキャッシュされます。
Allow Caching To Disk
オンのとき、スキンのシミュレーションはディスクにキャッシュされます。
Cache Memory (MB)
メモリキャッシュの最大サイズを設定します。
Collisions
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ワールドポジションを指定して、オフセットできます。
Multi-Pass
Enable Multi-Pass
オンのとき、特定の条件が満たされるまで、サブステップを繰り返すことができます。現在の条件は、無効化されたポイントが原因でジオメトリが引っかかり、無効化されてないポイントがストレッチを生成することで生じる問題を修正するように設計されています。衝突は常に拘束を未然に防ぐので、結果としてスキンがストレッチします。自動的に無効化されたポイントに隣接したポイントも、過度なストレッチが検出されると、同じように無効化されます。この解決ステップは、ジオメトリが解放されるまで繰り返されます。
Maximum Passes
ここで指定した回数を最大として、サブステップを繰り返します。無効化する必要のあるポイントがなくなると、プロセスは即座に停止します。
Disable Stretch Ratio
ポイントが無効化の対象であるかを判断をするために使用する、解決ステップの終わりにおけるストレッチの量。これは、失敗した衝突が筋肉を引き離している時に、それを検出するためのものです。無効化するポイントを増やすことに失敗すると、通常は筋肉が解放され、ストレッチを続けるよりも良い結果が得られます。
External Collider
External Collider パラメータは、外部コライダーとの衝突が、ソルバによってどのように処理されるかを決定します。
Use External Collider
オンのとき、外部衝突オブジェクトを筋肉に使用できます。
Collider
外部衝突オブジェクトのネットワークパスを指定します。
Primitive Group
コライダープリミティブを含むジオメトリグループを指定します。ジオメトリのサブセットをコライダーとして使用できます。
Use Deforming Geometry
オンのとき、外部衝突オブジェクトはフレームごとに評価されます。
Collision Detection
衝突検出がソルバによってどのように処理されるのかを決定します。
Use Solver Default
デフォルトのポイントからプリミティブへのVellum Solver衝突検出方法を使用します。
Use Volume Collisions
衝突検出が、プリミティブ頂点と符号付き距離フィールド(SDF)の間で発生します。
Use Surface Collisions
衝突検出が、四面体メッシュの境界サーフェスに対して発生します。
-
サーフェスベースのコリジョンが最も精度の高いオプションです。このコリジョンは連続衝突検出に対応しています。つまり、ソルバがフレーム間の頂点の軌跡を検査して、それらの中間フレームにおいてオブジェクトが交差しているかどうかを判断します。この連続衝突検出は、高速移動するオブジェクト間の衝突をソルバで処理することができます。
-
サーフェスベースのコリジョンは、時間軸において変形するジオメトリに対して最良の選択肢となります。
Collision Radius
このパラメータは、筋肉ジオメトリの各ポイントで、筋肉が衝突する衝突オブジェクトの周囲に存在するバブル領域(フォースフィールドなど)が、どのワールド空間単位の距離で存在するかを指定します。
Collision Radius
筋肉との衝突が検出される外部コライダーからの距離を指定します。
Guides
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 Constraints
オンのとき、有効化された取り付け拘束がビューポートステート内で可視化されます。
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
解決された筋肉。筋肉シミュレーションのポイントトランスフォームデータ。
| See also |