| On this page |
AnimateステートのフルボディIKツールは、キャラクタリグにフルボディインバースキネマティクスを適用します。これにより、個々のジョイントを操作するのではなく、上位レベルのターゲットを調整することで、キャラクタにポーズを付けられるようになります。このツールを使用すると、ジョイントの自然な挙動を維持しつつ、複雑なキャラクタのポージングやモーション編集を効率化できます。
セットアップ ¶
この例では、フルボディIKツールを使用するためにElectraテストジオメトリをセットアップします:
-
Electra SOPで、 Output パラメータを Skin Surface に設定します。これにより、Electraのシェイプが1番目の出力として、Electraのスケルトンが2番目の出力として出力されます。
-
APEX Pack Character SOPは、Electraのシェイプとスケルトンをキャラクタフォルダ構造に追加します。
-
デフォルトで、 Shape Path は
/Base.shpに、 Skeleton Path は/Base.skelに設定されます。これらは、Electraシェイプとスケルトンがフォルダ構造内にパックされる際、それぞれに適用される名前です。 -
Add FK and Bone Deform Components をオンにします。これによりリグが作成され(名前は Rig Path で
/Base.rigに設定)、キャラクタフォルダ構造に追加されます。 -
キャラクタフォルダ構造は、Rig Treeビューで確認することができます。Rig Treeビューで、 Type を Packed Folders に設定します。
-
-
APEX Map Character SOPは、Electraのリグコントロールをスケルトンのジョイントにマップして、リグにマッピングプロパティを作成します。このマッピングプロパティは、下流の
APEX Configure Character SOPがフルボディIKツール用のキャラクタをセットアップする際に使用されます。
-
Rig Path を
/Base.rigに設定します。 -
Skeleton Path を
/Base.skelに設定します。 -
Map By Name パラメータがオンの場合、同じ名前を持つコントロールとジョイントが自動マッピングされます。
-
コントロールとジョイントを手動でマッピングするには、Map Characterビューアステートに入ります。APEX Map Character SOPを選択し、Displayフラグをオンにしてから、左側のツールバーにある
Show Handleをクリックするか、ビューポートにマウスカーソルを置いてEnterを押します。ビューアステートで、コントロールとスケルトンジョイントの間をクリックします。すると自動的に Mappings マルチパラメータにエントリが作成されます:
キャラクタリグコントロールをスケルトンジョイントにマッピング
-
-
APEX Configure Character SOPは、キャラクタにフルボディIKプロパティを設定します。 Full Body IK をオンにします。
-
APEX Scene Add Character SOPは、アニメーションシーンのキャラクタにキャラクタ要素(シェイプ、スケルトン、リグ)追加します。この手順が必要なのは、フルボディIKツールはリグのようなパックされていないキャラクタ要素ではなく、キャラクタフォルダ構造のパックされたキャラクタで動作するからです。APEX Scene Add Character SOPの Character Name で指定したキャラクタの名前が、AnimateステートのSelection Sets HUDに表示されます。
-
Animateステートに入るには、
APEX Scene Animate SOPを選択し、Displayフラグをオンにしてから、左側のツールバーにある
Animateをクリックするか、ビューポートにマウスカーソルを置いてEnterを押します。
-
フルボディIKツールにするには、上部のツールバーの
をクリックするか、Radialメニュー(ビューポートでCを押す)から Full Body IK を選択します。
キャラクタにポーズを付ける ¶
フルボディIKツールでキャラクタのジョイントを動かすと、それに連動して他のジョイントが引き寄せられます:
ジョイントをピン留めする ¶
ジョイントをピン留めして、その場所から動かないようにすることができます。ジョイントをピン留めするには、ジョイントを選択して、ビューポートでHを押します。ジョイントをピン留めすると、色が変わります(Pin Typeパラメータを参照)。以下の動画では、キャラクタの右手と右足がピン留めされています:
ジョイントをピン留め解除するには、ジョイントを選択して、ビューポートで⌃ Ctrl + Hを押します。
ピン留めされたジョイントの影響を調整する ¶
ピン留めされたジョイントの他のジョイントに対する影響の度合いを調整するには、 Weight および Priority パラメータを変更します。
Priority
Priorityは、フルボディIKでポージングを行なう際に、優先されるジョイントを決定します。優先度が高いジョイントほど、その位置が厳格に強制されます。特定のジョイントにキャラクタのポーズを駆動させたい場合は、それらのジョイントのPriorityを高く設定します。
以下の例では、キャラクタの右手が1のPriorityでピン留めされ、右足が2のPriorityでピン留めされています:
左下の動画では、引っ張れた方の手のPriorityは2に設定されているため、ピン留めされた右足よりも、右手の方に強い影響力を持ちます。右下の動画では、引っ張れた方の手のPriorityは3に設定されているため、ピン留めされた他のジョイントに対してより強い影響力を持ちます。
Note
Priorityが低く設定されたジョイントは、より高く設定されたジョイントを動かすことができません。
Weight
Weightは、あるジョイントが他のジョイントの動きにどれだけ強く影響するかを決定し、ジョイントを除くボディ全体が、そのジョイントに部分的に追従できるようにします。Weightが高いほど、そのジョイントを現在の位置から引き離すのが難しくなります。ジョイントがキャラクタのポーズに与える影響を、Priorityほど厳格にしたくない場合にWeightを指定します。
複数のジョイント間(手、足、頭など)で厳格な優先順位を定め、干渉を解決したい場合は、Priorityを設定します。特定のジョイントの影響力を微調整したい場合は、Weightを設定します(例えば、手首を同じくらいの位置に維持しつつも、ある程度の柔軟性を持たせたい場合など)。
影響を受けるジョイントの数を制限する ¶
あるジョイントの動きから影響を受けるジョイントの数を制限するには、フルボディIKパラメータの Use Depth をオンにして、 Depth の値を設定します。この値は、選択されたジョイントを起点とするスケルトン階層において、影響を受けるジョイントの数を指定します。例えば Depth が3に設定されている場合、キャラクタの手を動かすと、手、肘、肩のジョイントがその影響を受けます:
ポーズを保存する ¶
キャラクタの新しいジョイント位置を保存するには、ジョイントを選択し、ビューポートでEnterを押します。これにより、フルボディIKツールを終了した後も、新しいジョイント位置が保持されます。
パラメータと設定 ¶
Full Body IKパラメータ ¶
以下のパラメータは、パラメータHUD(ビューポートでGを押す)の Full Body IK タブにあります。これらのパラメータは、ピン留めされたジョイントを選択しているときに利用可能です:
パラメータ |
説明 |
|---|---|
Pin Type |
ジョイントをピン留めする方法を指定します。ジョイントの位置、向き、または位置と向きの両方をピン留めすることができます。設定されたピン留めのタイプに応じて、ジョイントの色が変化します:
|
Priority |
フルボディIKでポージングを行なう際に、優先されるジョイントを決定します。優先度が高いジョイントほど、その位置が厳格に強制されます。詳細はピン留めされたジョイントの影響を調整するを参照してください。 |
Weight |
ジョイントが他のジョイントの動きにどれほど強く影響するかを決定します。Weightが高いほど、そのジョイントを現在の位置から引き離すのが難しくなります。詳細はピン留めされたジョイントの影響を調整するを参照してください。 |
Use Depth |
オンのとき、影響を受けるジョイントの数を Depth で指定した値に制限します。オフのとき、ジョイントの動きは、スケルトンの全てのジョイントに影響します。 |
Depth |
Use Depth がオンのとき、選択されたジョイントを起点とするスケルトン階層において、ここで指定した数のジョイントが影響を受けます。 |
Reset Target |
ジョイントパラメータをデフォルト値にリセットします。 |
フルボディIK設定 ¶
以下の設定は、Animate Settings HUD(ビューポートで⌃ Ctrl + Gを押す)の Full Body IK タブにあります:
設定 |
説明 |
|---|---|
Iterations |
実行する計算の反復回数。 |
Tolerance |
フルボディIKソルバに許容される誤差の範囲。一度この範囲から出ると、ソルバは反復から早期終了します。 Tolerance を0に設定すると、ソルバは反復の全回数を実行するようになります。 |
Damping |
値が大きいほど、ターゲットジョイントに到達できない場合でも、より安定した結果が得られます。とはいえ値が大きすぎると、収束させるのに反復回数を増やす必要があります。初期値としては0.5が適しています。 |
Reset Solver |
設定をデフォルト値にリセットします。 |
How to ¶
| To... | Do this |
|---|---|
|
ジョイントをピン留めする |
ジョイントを選択してHを押します。 |
|
ジョイントをピン留め解除する |
ジョイントを選択して⌃ Ctrl + Hを押します。 |
|
ジョイント位置にキーフレームを設定する |
ビューポートでEnterを押します。 |
|
ジョイントの位置または向きをピン留めする |
パラメータHUDの Full Body IK タブで、 Pin Type を設定します。 |
|
影響を受けるジョイントの数を制限する |
パラメータHUDの Full Body IK タブで、 Use Depth をオンにして、 Depth の値を設定します。 |