| On this page | |
| Since | 19.0 |
このノードは、入力のソリッドMuscleジオメトリ上にmuscletensionPointアトリビュートをセットアップしてアニメーションさせて、シミュレーション中の筋肉の屈曲アクションを駆動させます。
このmuscletensionPointアトリビュートは、Muscle Solverで使用され、入力の四面体メッシュに異方性スケールを適用したり、 押しつぶし ます。
この異方性スケールは、
Fiber Groom SOPノードで生成される
materialWPointベクトルアトリビュートで定義された 筋繊維方向 に沿って適用されます。
筋肉を押しつぶす時のその筋肉の屈曲の 度合い またはその収縮の強さは、
Muscles Properties SOPノードのFiber Strengthパラメータで設定された
fiberstiffnessPointアトリビュートで決まります。
muscletensionPointアトリビュートは、fiberstiffnessPointアトリビュートの乗数のように機能します。
筋肉が収縮すると、体積維持の力も作用して、筋肉の腱以外の領域が 膨らみます 。
この 体積スケールフォース は、
Muscles Properties SOPノードのFiber Volume Scaleパラメータで設定された
fibervolumescalePointアトリビュートで生成されます。
このノードを使用することで、主な3つのMuscleセットアップのタスクを行なうことができます:
-
Muscleジオメトリ(
muscle_idPrimitiveアトリビュート)をMuscle Tension Lines(
autoflex_idPrimitiveアトリビュート)にリンクして、自動屈曲タイミングを駆動します。 -
Muscleが完全に屈曲した状態(
muscletensionPointアトリビュート)と見なされるMuscle Tension Lineの 長さ (restlengthとlengthのPrimitiveアトリビュート)のアクティベーション率を調整します。これは、屈曲していると見なすか見なさないかの 閾値 を設定します。 -
ショットアニメーション中に筋肉が収縮と弛緩を試みる タイミング を決める際に
Muscle Solverで使用される
muscletensionPointアトリビュートをアニメーションさせます。この収縮/弛緩は、Muscle Tension Lines単独またはMuscle Flex系パラメータのキーフレームと組み合わせることで、 自動的に 駆動させることができます。ソルバには、Muscleをアクティブにするタイミングとそれらのパラメータ値に打ったキーフレームの大きさを伝えることができます。
Activation Ratio(アクティベーション率)を理解する ¶
筋肉アクティベーションシステムは、 Activation Ratio が1より大きいのかそれとも1以下なのかに基づいて、異なる反応を示します。
筋肉アクティベーションシステムは、 Activation Ratio を(現行長/自然長)の3乗として計算します。
この3次関係によって、アクティブと非アクティブの遷移を筋肉内で非線形に行なうことができます。
この挙動を理解することが、筋肉を上手く制御する上で重要になります。
Activation Ratioが1以下に設定されている場合 - 緊張ラインが縮むと筋肉がアクティブになります。筋肉は、その緊張ラインが自然長に到達または超えると完全に弛緩します。選択した値は、その遷移範囲に影響します。例えば、 Activation Ratio を0.01に設定すると、遷移範囲が99%の幅になり、筋肉のアクティベーションの変化が非常に緩やかになります。それに対して、 Activation Ratio を0.99に設定すると1%の狭い遷移範囲が生成され、非アクティブからアクティブへの遷移が急になります。これは、肘を曲げる上腕二頭筋など、関節を曲げる筋肉(屈筋)で期待される挙動です。
Activation Ratioが1より大きく設定されている場合 - 緊張ラインが伸びると筋肉がアクティブになります。この関係では、緊張ラインが伸びると筋肉の反応がより顕著になるので、最適な結果を得るには自然長を慎重にバランス良く調整する必要があります。これは、膝を伸ばす大腿四頭筋など、関節を伸ばす筋肉(伸筋)で期待される挙動です。
How to
| To... | Do this |
|---|---|
|
必要な入力を Muscle Flex SOP に接続する。 |
Warning Muscle Flex SOP ノードの 3番目の入力 Muscle Tension Linesを接続しなかった場合、Muscleの |
|
Muscle Flex SOP でパラメータを構築する。 |
|
|
MuscleをMuscle Tension Lineにリンクする |
|
|
Muscle Flexアクティベーション閾値を調整する |
|
|
筋収縮の調整と筋張力のアニメーション |
重要事項
|
ステート ¶
ビューポート内での Muscle Flex SOP ステートは、本質的に 選択 ステートです。 1個以上のMuscleを選択してからEnterを押すと、それらのMuscleが現行選択になります。 プレイバーのタイムラインを任意のフレームまでスクラブさせてから、現行選択に対してアクションを実行します。
ホットキーまたは操作 |
アクション |
|---|---|
1を押す |
現在選択されているMuscle(s)の |
0を押す |
現在選択されているMuscle(s)の |
|
現在選択されているMuscle(s)の |
Kを押す |
現在の時間で選択したMuscle(s)の |
Set Keyframe
現在選択されているMuscleの Muscle ID パラメータ(Flexコントロール)にキーを設定します。 Kホットキーでも可能。
Set Flex to 0
現在選択されているMuscleの Muscle ID パラメータ値を0に設定します。 0ホットキーでも可能。
Set Flex to 1.0
現在選択されているMuscleの Muscle ID パラメータ値を1.0に設定します。 1ホットキーでも可能。
Assign Links with Symmetry
有効にすると、Activation Linksパラメータを使用してMuscle Tension LineをMuscleに割り当てて、そのMuscleが対称モデルの一部だった場合、そのモデルの反対側の呼応するMuscleが正しいMuscle Tension Lineに自動的にリンクされます。
Link Selected Muscles to Muscle Tension Line
現在選択されているMuscleを現在選択されているMuscle Tension Lineにリンクします。 Lホットキーでも可能。
Unlink Selected Muscles from Muscle Tension Line
現在選択されているMuscleと現在選択されているMuscle Tension Lineをリンク解除します。
ビジュアライゼーション |
ビューポートステート |
|---|---|
Muscle選択 |
ビューポートステートでは、Muscleを直接選択することができます。 これは、ホットキーを使用してビューポートステートで筋肉の屈曲をアニメーションさせる時に役立ちます。 |
Muscleアクティベーション |
Display > Muscle Tension Visualizer パラメータを使うと、キャラクタのショットアニメーションを再生しながら筋肉とその筋張力レベルの有効性を確認することができます。アニメーション中に筋肉の色が変化して
|
アトリビュート ¶
|
|
point |
時間の経過と共に可変するMuscle Flex値をPointトランスフォームとして格納します。 |
パラメータ ¶
Attribute
すべてのMuscle Flex設定が格納されるアトリビュートの名前を指定します。
Muscle Flex ¶
このタブには、 Muscle Flex パラメータがリストされます。
このタブ上のパラメータは、入力のMuscleジオメトリ上のmuscle_idアトリビュートを検出することで自動的に生成されます。
Muscle Flex SOPノードの 1番目の入力 で見つかったmuscle_id毎にfloatパラメータが生成されます。
これらのパラメータ名は、簡単に識別できるようにmuscle_idの名前と同じになっています。
ビューポートでは、筋肉の色が変化して、筋張力または 筋肉の屈曲 の度合いを示します。 Muscle Flex パラメータ値に キーフレーム を打つことで、アクティブにする/しないのタイミングをMuscleに伝えることができます。
Muscleをシミュレーションに取り込む時、その筋収縮はmuscletension( Muscle Flex 系パラメータ)と四面体に適用されている繊維スケールフォース(
Muscles Properties SOPノードの
fiberstiffnessアトリビュート)の組み合わせで駆動されます。
Muscleは、筋繊維方向(Fiber Groom SOPノードの
materialWPointベクトルアトリビュート)にスケールします。
Muscle Flexアニメーションは、以下の3つの方法のどれかで制御することができます:
-
Activation Linksを使用して、
Muscle Tension Lineを Muscle Flex パラメータに割り当てる方法。
-
このタブ内のそれぞれの Muscle Flex パラメータに直接キーフレームを打つ方法。
-
1と2を組み合わせて使用する方法。
Muscle & TissueセットアップでMuscle Tension Linesを使用した場合、ショットアニメーション全体で( Muscle Flex パラメータを介して)Muscle毎にmuscletensionにキーフレームを打つ必要はありません。Muscle Tension Linesが自動的にmuscletension値を変更してくれます。
Muscle Tension Linesが自動的に筋収縮の多くを自動化してくれるものの、必要に応じて Muscle Flex パラメータにいくつかキーフレームを追加することで、Muscle Tension Linesが生成するプログラム的なmuscletension値を調整することができます。
Muscleのmuscletensionをキーフレーム値とそれを駆動させるMuscle Tension Lineの両方で制御した場合、強い値の方が採用されます。
例えば、Muscle Tension Lineから検出されたmuscletensionが0.5で、キーフレームを打った Muscle Flex 値が0.75の場合、キーフレームの値が採用されます。
常に大きい方の値が取得されます。
このノードは、アニメーションとパラメータ設定を維持できるように、入力のMuscleジオメトリ(1番目の入力)で見つかったmuscle_id名をキャッシュ化します。
以下のボタンは、ジオメトリ系ノードが既に Muscle Flex SOP ノードに接続された 後 にMuscleを追加または削除するイベントで、このキャッシュを更新/リセットすることができます。
Detect New
入力Muscleジオメトリ上で見つかった新しいmuscle_idを追加し、それらをパラメータリストに追加します。
Remove Unused
このタブにリストされている Muscle Flex パラメータに該当するmuslce_idが入力Muscleジオメトリ上に存在しなかった場合、その Muscle Flex パラメータを削除します。
Reset All
現在のすべての Muscle Flex パラメータと Activation Links パラメータをデフォルト値にリセットし、内部キャッシュリストを再構築します。
Warning
Reset All のクリックでも、既存の Muscle Flex チャンネルアニメーションが削除されます。
Muscle Flex パラメータをリストします。
これらのパラメータ名は入力Muscleジオメトリ(1番目の入力)に応じて順応します。
ここにリストされた各パラメータは、それと同じ名前の入力muscle_idから派生します。
Muscle Flex 値が0なら筋肉は緩和ソフトボディとしてシミュレーションされるのに対して、1.0の値は筋張力を最大限にし筋肉の収縮と硬化を引き起こします。
Muscle Tension Lines ¶
このタブには、 Activation Ratio パラメータがリストされ、
Muscle Tension Lines SOPノードがこのノードの 3番目の入力 (Input 3)に接続されている場合にのみ有効化されます。
Muscle Tension Lineが1個以上のMuscleにリンクされている時、その長さの変化を使用してMuscle上のmuscletensionアトリビュートが駆動されます。
それと同時に、キーフレームを打ったmuscletensionをMuscle Tension Lineとして使用することができます。
2つのmuscletensionのうち大きい方の値が最終的にmuscletensionアトリビュートに適用されます。
Muscle Tension Lines タブ > Activation Ratio セクションのパラメータでは、Muscle Tension Line毎にMuscleアクティベーション閾値を設定することができます。
この比率になる長さの変化が完全に緊張したMuscleにマッピングされます。
例えば、L_Bicepパラメータの値が0.75で、そのL_BicepがL_Bicep Muscle Tension Lineにリンクされている場合、そのL_Bicep Muscle Tension Lineの長さがrest_lengthの75%に到達すると、L_Bicep Muscleのmuscletensionは1.0になります。
このパラメータの値を2.0に設定した場合、Muscle Tension Lineがrest_lengthの200%に到達すると、L_Bicep Muscleのmuscletensionも1.0になります。
Evaluate at Frame
Muscle Flexがアクティブになるショットアニメーション内のフレーム番号を指定します。
このノードは、入力のMuscle Tension Line(3番目の入力)からautoflex_idPrimitiveアトリビュートを検出してキャッシュ化します。
以下のボタンは、Muscle Tension Lines SOPノードが既に Muscle Flex SOP ノードに接続された 後 にMuscle Tension Lineを追加または削除するイベントで、このキャッシュを更新/リセットすることができます。
Detect New
入力の Muscle Tension Lines SOP ノード上で見つかった新しいautoflex_idを追加し、それらをパラメータリストに追加します。
Remove Unused
このタブにリストされている Activation Ratio パラメータに該当するautoflex_idが入力の Muscle Tension Lines SOP ノード上に 存在しなかった 場合、その Activation Ratio パラメータを削除します。
Reset All
現在のすべての Activation Ratio パラメータをデフォルト値にリセットし、内部キャッシュリストを再構築します。
このセクションのパラメータは、
Muscle Tension Lines SOPノード上の
autoflex_idアトリビュートを検出することで自動的に生成されます。
Muscle Flex SOPノードの 3番目の入力 (Input 3)で見つかったautoflex_id毎にfloatパラメータが生成されます。
これらのパラメータ名は、簡単に識別できるようにautoflex_idの名前と同じになっています。
Activation Ratio パラメータ値は、最大収縮が起きる長さ比率を示します。
この比率は、該当するMuscle Tension(筋緊張)ラインの自然長に対する比率(length/restlength)です。
例えば、1.5の値は、元々の自然長の1.5倍の長さになった時に筋肉が収縮します。
Activation Links ¶
このタブでは、(muscle_id別に)個々のMuscleをMuscle Tension Line(autoflex_id)にリンクしてショットアニメーション全体でmuscletension値の変動を駆動させることができるパラメータがリストされます。
Muscle Tension Lines SOPノードを Muscle Flex SOP ノードの 3番目の入力 (Input 3)に接続してから Muscle Flex タブ内の Detect New をクリックすることで、このリストのパラメータを生成することができます。
Muscleが完全に屈曲した状態(muscletensionPointアトリビュート)と見なされるMuscle Tension Lineの 長さ (restlengthとlengthのPrimitiveアトリビュート)のアクティベーション率を調整することができます。
これは、屈曲していると見なすか見なさないかの 閾値 を設定します。
Deform ¶
これらのパラメータは、単にその場でmuscletensionアニメーションを確認できるように入力のアニメーションソース(通常では、アニメーションボーンジオメトリ)を使用して ポイント変形 を入力のMuscleに適用します。
Muscle Solverは静的なTポーズ位置しか考慮しないので、この変形アニメーションは、あくまで参考用です。
Output Integrity
Point DeformやDelta Mushは、なにかしら非常に品質の悪い四面体や反転した四面体を生成してしまう可能性があります。 Output Integrity パラメータオプションは、そのような低品質な変形結果を解消するのに役立ちます。
Simple Deformation
Muscle四面体メッシュの内側にある不正な四面体の修正を試みません。
Compute Quasistatic Corrections
内部で準静的なシミュレーションを実行して、Muscle四面体メッシュの内側にある不正な四面体を修正します。
ほとんどのMuscleシミュレーションでは、このオプションは、結局のところMuscle Solverで 使用されない モーションに対して余計に計算時間を増やすため、不要です。
しかし、 Muscle Flxe SOP の出力に高品質な変形が必要な場合では、余計に整合性を合わせるメリットがある場合があります。
Deformation Style
Muscle変形の実行方法を決めます。
Point Deform
変形ラティス(ポイントクラウド)を使用して、そのラティスの各ポイントがMuscle四面体メッシュの隣接ポイントを キャプチャ して影響を与える領域でMuscle変形を駆動させます。 そのポイントが近いほど、影響が大きいです(Elendtメタボール方程式から計算されます)。
Use BoneCapture Weights
Muscleジオメトリのスキンウェイト(boneCapture Pointアトリビュート)と KineFX Skeleton パラメータで指定されたスケルトンを使用して、Muscle変形を駆動させます。
KineFX Skeleton
Muscle変形を駆動させたいKineFXスケルトンのパスを指定します。
このパラメータは、 Deformation Style が Use BoneCapture Weights に設定されている場合にのみ利用可能です。
KineFX Rest Skeleton
静止トランスフォームを用意できるようにKineFX Restスケルトンのパスを指定します。
このパラメータは、 Deformation Style が Use BoneCapture Weights に設定されている場合にのみ利用可能です。
Deform タブ > Point Deformセクション内のパラメータを使用することで、ポイント変形パラメータを調整することができます。 Muscle Solverの用途では、Muscle End領域として指定されたMuscle上の領域のみが重要です。 これらの領域がターゲットの拘束領域として作用します。
このノードでは、Muscleの動きをプロキシアニメーションを使って“その場で”確認できるようにするために、MuscleがPoint Deform SOPによって変形されます。 そうしないと、このノードのアニメーション出力は、ソルバで無視されます。 ただし、この考えには例外が1つあります。 Muscle Solver Vellum SOPのMuscle Ends拘束には、Muscleをアニメーションソースに取り付けるモードが2つあります。 Muscleを一番近くにあるボーンジオメトリに取り付けたり(Muscle Constraint Properties SOP > Muscle to Boneタブを参照)、アニメーションポジションをターゲットとして扱うことでMuscleの両端を“Pin To Animation”拘束のように動作させることができます。 後者の場合では、このノードから出力されるプロキシアニメーションをアニメーションソースとして使用することができます。
Radius
ポイント影響力の最大検索半径。
Point Deformを参照してください。
Minimum Points
ポイント影響力の検索するポイントの最小数。
Point Deformを参照してください。
Maximum Points
ポイント影響力の検索するポイントの最大数。
Point Deformを参照してください。
Rigid Projection
有効にすると、計算されたローカルトランスフォームに含まれているシアーを取り除き、リジッドトランスフォームのみを残します。
Point Deformを参照してください。
Recompute Affected Normals
有効にすると、変形ポイントと未変形ポイントの両方を含んだ四面体から影響を受ける法線が自動的に再計算されます。
Point Deformを参照してください。
Bypass Tension Lines Deformation
有効にすると、ラインの位置をそのまま使用します。 MuscleTension Linesを外部でアニメーションまたは変形させる場合は、これを使用します。
Enable Delta Mush
有効にすると、このノードは、ポイント変形を適用する時にMuscleの形状の維持を試みます。
Delta Mushを参照してください。
Delta Mush Iterations
Muscleに適用する平滑化の反復回数を指定します。 この反復回数が多いほど、滑らかな結果が得られます。
このパラメータは、 Enable Delta Mush が有効な場合にのみ利用可能です。
Delta Mushを参照してください。
T-Pose Source
ポイント変形に使用されるRestポーズの派生元を指定します。
Use Initialization Frame
アニメーションソースの時間を Initialization Frame までずらして、そのフレームでフリーズされたジオメトリをキャプチャポジションのRestポーズとして使用します。
From Attribute
T-Pose Attribute をキャプチャポジションのRestポーズとして使用します。 この設定は、フレーム1のTポーズになっているのにも関わらず、ボーンが原点に配置されていないことが原因で、それらのボーンがMuscleからオフセットされているように見える時に役立ちます。
Initialization Frame
アニメーションソースジオメトリを維持またはフリーズしてからそれをRestポーズとして使用するフレーム(時間)を指定します。
このパラメータは、 T-Pose が Use Initialization Frame に設定されている場合にのみ利用可能です。
T-Pose Attribute
キャプチャポジションのRestポーズが指定された(このノードの2番目の入力の)Pointアトリビュートの名前。
このパラメータは、 T-Pose が From Attribute に設定されている場合にのみ利用可能です。
Display ¶
以下のパラメータは、このノードのビューポートステートでMuscle Flex変形をどのように表示するのかを決めます。
Muscle Tension Visualizer
有効にすると、Muscle Flexパラメータによってアニメーションされるmuscletensionアトリビュートにカラービジュアライザが適用されます。
灰色は、筋張力が弱く、赤色は筋張力が強いことを示します。
Bone Geometry
有効にすると、ビューポートステートでアニメーションソースジオメトリ(このノードの2番目の入力)が表示されます。 これは、ほとんどの場合がアニメーションボーンジオメトリです。
Bone Color
ビューポートステートでの Bone Geometry のRGBカラーを設定します。
Muscle Tension Lines
有効にすると、ビューポートステートでMuscle Tension Lines(このノードの3番目の入力)が表示されます。
入力 ¶
Input 1
ソリッドMuscleジオメトリ。
Input 2
アニメーションソースジオメトリ(たいていの場合はアニメーションボーンジオメトリ)とプリロール。
Input 3
Muscle Tension Lines(autoflex_id、length、restlength)。
出力 ¶
Output 1
アニメーションするmuscletensionが含まれたソリッドMuscleジオメトリ。
| See also |