優先順位(HD ソルバ)

3 つの関節優先順位コントロールを使って IK ソリューションの計算方法を変更できます。

関節優先順位の既定値は 0 (ゼロ)です。HD IK ソリューションの多くで、関節の優先順位にこの既定値を使用すると最適です。既定値は、力が適用される場所(エンド エフェクタ)に近い関節は力から遠い関節よりも大きく移動するということを前提にしています。

子 -> 親

この値は、階層全体のルートの優先順位値が 0 (ゼロ)であり、それぞれの子の値はルートからの深さの 10 倍であると仮定して計算されます。ルートで始まる 4 つのオブジェクトで構成される階層では、値は 0、10、20、30 となります。

親 -> 子

この値は、階層全体のルートの優先順位値が 0 (ゼロ)であり、それぞれの子の値はルートからの深さの 10 倍であると仮定して計算されます。ルートで始まる 4 つのオブジェクトで構成される階層では、値は 0、-10、-20、-30 となります。

  • 関節優先順位の既定値は、キネマティク チェーン内のすべての関節が同じ優先順位値を持つ場合には必ず適用されます。キネマティック チェーン内のすべてのオブジェクトに 100 を割り当てても 0 (ゼロ)を割り当ててもまったく同じです。
  • 0、30、200 の優先順位値を持つ 3 つのオブジェクトからなる IK チェーンは、優先順位値を 1、2、3 に変更した場合にも同じ結果になります。

手順

優先順位値を手動でオブジェクトに割り当てるには:

  1. HD IK チェーンでオブジェクトを 選択します。
  2. [階層](Hierarchy)パネルで[オブジェクト パラメータ](Object Parameters)ロールアウトを開きます。
  3. [優先順位](Precedence)編集ボックスに値を入力します。

[子 -> 親](Child->Parent)優先順位をキネマティック チェーン内のすべてのオブジェクトに割り当てるには:

  1. HD IK チェーンですべてのオブジェクトを 選択します。
  2. [階層](Hierarchy)パネルで[オブジェクト パラメータ](Object Parameters)ロールアウトを開きます。
  3. [子 -> 親](Child->Parent)ボタンをクリックします。

[親 -> 子](Parent->Child)優先順位をキネマティック チェーン内のすべてのオブジェクトに割り当てるには:

  1. キネマティック チェーン内のすべてのオブジェクトを 選択します。
  2. [階層](Hierarchy)パネルで[オブジェクト パラメータ](Object Parameters)ロールアウトを開きます。
  3. [親 -> 子](Parent->Child)ボタンをクリックします。

関節の優先順位の既定値をリセットするには:

  1. キネマティック チェーン内のすべてのオブジェクトを 選択します。
  2. [階層](Hierarchy)パネルで[オブジェクト パラメータ](Object Parameters)ロールアウトを開きます。
  3. [優先順位](Precedence)編集ボックスに 0 (ゼロ)の値を設定します。

インタフェース

優先順位を設定する 3 つのコントロールは、次のとおりです。

優先順位

IK チェーン内の任意のオブジェクトに手動で優先順位値を割り当てます。優先度の高い値は低い値よりも先に計算されます。優先順位の値が同じ場合は[子 -> 親](Child->Parent)の順に計算されます。

子 -> 親

子から親の順に関節の優先順位が下がるように自動的に設定します。力が適用されている場所(エンド エフェクタ)に最も近い関節は、そこから離れている関節よりも多く移動します。

ほとんどの場合キネマティック チェーン全体に対して[子 -> 親](Child->Parent)の優先順位を設定します。

[子 -> 親](Child->Parent)は、優先順位の既定値と同様の動作をしますが、処理を戻して手動で設定変更する場合にも柔軟に対応しています。

親 -> 子

親から子の順に関節の優先順位が下がるように自動的に設定します。力が適用されている場所(エンド エフェクタ)に最も近い関節は、そこから離れている関節よりも少なく移動します。

ほとんどの場合キネマティック チェーン全体に対して[子 -> 親](Child->Parent)の優先順位を設定します。