Degrees of Freedom

HumanIK 生体力学モデルには、ありえない動作や不自然な動作を避けるため、Biped スケルトンの回転に関していくつかの制限が組み込まれています。たとえば、キャラクタの肘は完全に伸長するまでメイン軸に沿って開くことができますが、後方に曲げることはできません。Degrees of Freedom によって、特定のキャラクタに対するこうした組み込みの回転制限を追加し、そのスケルトンの柔軟性に関して追加のコンストレインを作成できます。

キャラクタの各ノードに対して異なる Degrees of Freedom を設定すると、HumanIK がローカルの X、Y、Z 軸を中心として禁止されている特定の向きに回転しないようにできます。このような制限を考慮するため、インバース キネマティクス ソルバは HIKEffectorSetState で設定された要件を満たすために、キャラクタのスケルトンで他のノードの回転を試みます。

通常、Degrees of Freedom は、MotionBuilder、Maya、3ds Max などのデジタル コンテンツ作成ツールを使用するアーティストまたはアニメータが決定します。軸の向きを視覚化する方法がないと、適切な値の予測は困難です。HumanIK で Degrees of Freedom を使用するのは、アーティストによって事前に決定されたキャラクタの可動範囲の制限をサポートする場合のみとすることをお勧めします。

Degrees of Freedom を設定する

HumanIK では、Degrees of Freedom はキャラクタのキャラクタライゼーションで設定する必要があります。

HIKCharacter の確定後に Degrees of Freedom を設定することはできませんが、HIKGetLimitsfv() 関数を呼び出して、ノードに割り当てられた自由度をいつでも取得できます。このような Degrees of Freedom は、グローバル スペースではなく、常に各ノードのローカル スペースで表されることに注意してください。