IK チェインが目標に達する方法を選択する

 
 
 

チェインのエフェクタを移動してインバースキネマティクスを呼び出す場合、Softimage はソルバを使用します。ソルバとは、エフェクタが目的地までたどり着く経路を決定するためのアルゴリズムです。理想的なジョイントの角度変化を計算することにより経路を求めます。Softimage が使用するソルバのタイプと、ジョイントの回転を計算するためのソルバ アングル手法の両方を選択することができます。

チェインの動作を変更するには

  1. チェインのボーンのいずれかを選択して[Ctrl]+[R]キーを押し、[Kinematic Chain]プロパティ エディタを開きます。

  2. [ソルバ](Solver)リストを使用して、チェインの動作を変更します。チェインでは、[SI|3D ソルバ]または[XSI ソルバ]の 2 種類のソルバを選択できます(どちらを選択するかは、次のセクションを参照)。

  3. IK を使用してジョイントの回転を計算するには、[ソルバ角度](Solver Angle)の 3 種類の方法から 1 つを選択します(3 種類の方法から選択する方法の詳細については、「ソルバ角度によるジョイントの回転の計算」を参照)。

ソルバの選択

[SI|3D ソルバ]または[XSI ソルバ]のいずれかを使用できます。どちらのソルバを選択しても、簡単にもう一方のソルバに切り替えることができます。同じチェイン上にあるさまざまなソルバが異なる状況で最適に機能することがわかれば、[ソルバ]オプションにキー設定(アニメーション アイコンをクリック)して、特殊なフレームでのソルバ間の切り替えをアニメートすることさえもできます。

  • [SI|3D ソルバ](SI|3D Solver)は、SOFTIMAGE|3D と同じアルゴリズムを使用し、SOFTIMAGE|3D との互換性を確保します。SOFTIMAGE|3D から Softimage に読み込みたいシーンがある場合は、このソルバを使用して、両方のプログラムでチェインに対して必ず同じ方法で角度が計算されるようにする必要があります。

  • [XSI ソルバ](XSI Solver)は、エフェクタの移動時に通常すばやく結果を表示するアルゴリズムを使用します。XSI ソルバは、Softimage アーキテクチャに基づいているため、SOFTIMAGE|3D とは異なるエレメント(回転制限およびアップベクターコンストレイント)または SOFTIMAGE|3D には存在しないエレメント(ジョイントの硬さ、擬似ルート、ボーンの回転など)で効果的に機能します。XSI ソルバは、SI|3D ソルバよりも効果的にチェインを安定化し、解析する方法を知っています。

    Softimage だけで作業していれば、このソルバを使用するのが効率的でしょう。

ソルバ角度によるジョイントの回転の計算

チェインを描画する場合、各ジョイントでの角度は、そのチェインの「ホームステート」(プリファードアングルとも呼ばれます)として表示されます。IKを使用する場合、これらのプリファードアングルがIKソルバの最初の解析結果として使用されます。IK ソルバはこれらの角度を読み取り、結果を計算します。この結果は、読み取った角度と到達点の位置(および、任意のアップベクターまたは軸参照コンストレイント)によって異なります。詳細については、「プリファード アングル」を参照してください。

IK を使用してジョイントの回転を計算するには、[ソルバ角度](Solver Angle)の次の 3 種類の方法から 1 つを選択します。

  • [ジョイント回転を使用(SI|3D の挙動)](Use Joint Rotations (SI|3D Behavior))は、IK(ボーンの回転(FK)など)以外の方法でジョイント角度が変更された場合、プリファード アングルを更新し、それ以降の IK ジョイントの計算に影響を与えます。これは、SOFTIMAGE|3D での動作と同じで、SOFTIMAGE|3D から読み込まれたチェインの場合、自動的にこの動作が前提となります。この方法では、IK と FK の優先度は同じです。つまり、IK の方がやや予測が困難な場合があります。

    サブチェインを IK で解析する場合、このサブチェインのエクスプレッションは無視されます。それ以外の場合、チェインを直接操作して加えた変更(変換を使用)よりもエクスプレッションが優先され、F カーブ(またはその他のローカル方向制御)よりも直接操作による変更が優先されます。

  • [ジョイント プロパティの優先回転を使用](Use Preferred Rotations from Joint Properties)では、ジョイントのプリファード アングルに基づいて、回転値が計算されます。ボーンのプリファード アングルはユーザが設定した内容のままになります。これは、ジョイントの回転が常に予測できることを意味します。つまり、任意のエフェクタ位置は、必ず同じ回転値になります。

    この方法では、IK の優先度は FK より上です。FK だけがボーンのプリファード アングルを変更し、IK はユーザの設定に応じて常に正しい方向に曲がります。

    このジョイントの回転モードに固定してプリファードアングルを変更するには、[Kinematic Joint]プロパティエディタから操作を行います(「 ジョイントのプリファードアングルの変更」を参照。[IKに強制]がオンの場合はこの操作結果を確認できます)。

  • [各解像度ステップ毎にジョイント回転を再使用](Reuse Joint Rotation at Every Resolution Step)では、プリファード アングルが無視され、ジョイントの現在の角度に基づいて回転値が計算されます(最後に曲げた方向に曲げ続けます)。チェインを FK で操作してから、次に IK で操作した場合、チェインはプリファード アングルに戻りません。チェインがその長さいっぱいに伸ばされた場合、エフェクタをルートの方へ移動すると、チェインは一方向に曲がります。

    IK を使用すると予測不可能な動作が起こる可能性があるため、この方法が実用的なのは FK の場合だけです。したがって、この方法はポーズツーポーズのアニメーションを実行する場合のオプションです。もちろん、IK を使用すれば、チェインを必要な場所にほぼ正確に配置でき、その後、ボーンを回転(FK)させたり、ボーンの回転をキー入力したりすることができます。

エフェクタの位置を強制する

[Kinematic Chain]プロパティエディタで[IKに強制](Force IK)オプションを選択すると、[Kinematic Joint]プロパティページからプリファードアングルを変更するたびにIKが起動されます(「 ジョイントのプリファードアングルの変更」を参照)。これにより、チェイン上の IK の効果をすばやく確認できます。

[IK に強制](Force IK)により、実際にアニメーションを追加したりエフェクタを操作したりせずに、IK 解析によるボーン操作の影響をテストすることができます。

[IK に強制](Force IK)を選択すると、まだアニメートされていない場合に、エフェクタを一時的に固定することができます。したがって、任意の[ソルバ角度](Solver)を使用して、[Kinematic Joint]プロパティエディタでプリファードアングルを編集することも、あるいはボーンをインタラクティブに回転させることもできます。

ソルバのエラーしきい値の設定

長いチェイン(特に、3D チェイン)をアニメートすると、ソルバのエラー許容範囲が広くなりすぎたり、チェインのエフェクタが他の場所に突然出現することがあります。3D チェインに硬さと回転制限を設定している場合は、これが問題となることもあります。

この問題を解決するには、ソルバのエラーしきい値を小さくします。つまり、ソルバがチェインの角度を解析する際の歪曲をほとんど許可しないようにします。

エラーしきい値は、以下に影響を与えます。

  • SI|3D または XSI ソルバを使用する 2 つ以上のボーンが含まれた 3D チェイン

  • SI|3D ソルバを使用する 3 つ以上のボーンが含まれた 2D チェイン

ソルバのエラー許容範囲を変更するには

  1. チェインの[Kinematic Chain]プロパティ ページを開きます。

  2. エラーしきい値の[タイプ](User Defined)として[ユーザ定義](Type)を選択します。

  3. 問題が発生しなくなるまで、[しきい値](Threshold)を小さくします。この値は Softimage 単位で、1 は 1 グリッドの正方形を指します。

    チェインの長さに対して相対的なしきい値を設定する必要があります。つまり、問題を解決するため、チェインが短いほど設定する値を小さくする必要があります。

    また、ビューでカメラをズーム イン/ズーム アウトする度合いも考慮する必要があります。たとえば、チェインに近接するようにズーム インする場合は、非常に小さな値を使用する必要があります。

    ソルバがチェインを計算する速度は、チェインの長さとしきい値の組み合わせによる影響を受けます。チェインの長さに対して相対的なしきい値を小さくすると、計算には多くの時間がかかります。たとえば、長いチェインに大きなしきい値を設定した場合の計算時間は、短いチェインに小さなしきい値を設定した場合と同じになります。

    注:値が小さすぎると、ソルバは結果を算出できず、エフェクタは IK 到達点に達しません。