Pull

Pull を使用すると、ターゲット位置に達するために、ジョイントでキャラクタのスケルトン内の他のジョイント チェーンを移動させることができます。

 

たとえば、左の図では、緑色のロケータは左手首ジョイントに対応するエフェクタを表しています。

 

エフェクタの Reach Translation が最大値に設定された場合でも、キャラクタの腕が短すぎてエフェクタの位置に達しません。

 

エフェクタに追加の Pull コンストレインを適用すると、手首がエフェクタの位置に達するように、ボディの他のジョイント チェーンが、回転および移動します(この場合、脊椎、ヒップ、足)。

ノードに適用される Reach Translation がゼロでない場合、Pull だけが適用されることに注意してください。エフェクタの Reach Translation がゼロである場合、そのエフェクタの Pull 値は考慮されません。

Pull プロパティ

インバース キネマティクス ソルバは、キャラクタのターゲット ポーズを定義するすべてのエフェクタに適用される Pull 設定を満足させようとします。ただし、すべての Pull 値を完全に満たすことができない場合、ソルバでは階層を使用してさまざまなジョイント チェーンの優先度が決定されます。この階層では、ヒップは最も重要なジョイントと見なされます。このヒップに適用する Pull 値は、常に最初に満たされます。その他のジョイントは、キャラクタのスケルトンでのヒップからの距離に従って優先度が決定されます。すなわち、胸の優先度は肩より高く、肩の優先度は肘などより高くなります。

HumanIK によって使用される Pull の優先度のシステムは、次のルールによってまとめることができます。

上で概要を説明した優先度のシステムを利用する以外にも多くの方法があり、HumanIK Pull エンジンを微調整して、キャラクタのボディの不自然なデフォーメーションを防止することができます。たとえば、キャラクタのプロパティを設定し、キャラクタの重心のバランスがとれていない足の間にヒップの位置を制限することができます。詳細については、「キャラクタ プロパティ」と「全般プロパティ」を参照してください。