インバース キネマティクス(IK)は、FKよりも簡単なアニメーション手法です。ユーザがチェインのエフェクタを配置してアクションの到達点を定義すると、到達点までの残りのチェインの配置がSoftimageによって計算されます。たとえば、脚を曲げるには、脚の終端エフェクタをドラッグします。残りのチェインはドラッグされたエフェクタの動きをたどります。
脚のエフェクタをブランチ選択して、直立状態から脚が持ち上がるよう移動させています。到達点に達するために必要なジョイント回転が Softimage によって解析されます。
時間を変えながらエフェクタ移動のキーを保存すると、エフェクタの位置に基づいて、ルートからエフェクタまでのジョイントの回転がSoftimageによって解析されます。続けて、他のオブジェクトと同様に、エフェクタの移動もキー設定できます。
同一チェイン上の IK アニメーションと FK アニメーションをブレンドするには、「FK と IK アニメーションのブレンド」を参照してください。
IK を使用すると、簡単にすばやくキャラクタに動きをつけることができますが、不要な動きを補正するために後で微調整しなければならないことがしばしばあります。この問題の原因としては、エフェクタによって設定されるチェインの到達点に対して、チェインが複数通りの到達法をもっていること、または、エフェクタが点から点へと移動するために、FK 使用時のようにはボーンが自然に回転できないことの 2 点が考えられます。Softimage には、このセクションで説明しているように、これらの問題を解決するためのツールが多数用意されています。
IK の起動時には、チェインの動作に多くの問題点が発生します。IK を使った作業を開始する前に理解しておかなければならない基本概念が 2 つあります。チェインのプリファード アングルと、そのレゾリューション プレーンです。
チェインを描画する際には、IK 使用時の動作を予測できるように角度をつけます。この屈曲を、チェインのプリファード アングル(優先角度)と呼びます。 エフェクタを動かすと、Softimage は可能な限りプリファードアングルを維持しようとします。IK の使用時には、ボーンはジョイントのプリファードアングルに逆らって反対側に回転しません。そのため、たとえばキャラクタの肘が不自然な方向に曲がることがなくなります。
わずかに曲げられたチェイン。この屈曲により、IK 使用時にどちら側に曲がるのかが決まります。この状態は、各ボーンのジョイントの優先回転角を示します。
また、ホーム状態を持つことにより、状態を復元できるようになります。つまり、チェインが同じ場所に戻れば、チェインの状態も必ず元に戻ります。
ジョイントのプリファード アングルは、ローカル回転角度です。これらの角度は、選択した IK の動作によって異なり、チェイン全体の動作に影響を与えます。IK の動作の詳細については、「 IK チェインが目標に達する方法を選択する」を参照してください。
3D チェインを使用している場合は、3D ジョイントはボール ジョイントのように動作するため、ジョイントの X、Y、Z のプリファード アングルが使用されます。
2D チェインを使用している場合は、ジョイントの Z のプリファード アングルだけが使用されます。各ジョイント(最初のジョイントを除く)は 1 つのプレーンに残るように拘束され、エフェクタを移動するとローカル Z 軸だけを中心に回転します。
プリファード アングルを変更するには、「 ジョイントのプリファードアングルの変更」を参照してください。
2Dチェインにおけるチェインの軸参照(「 回転の軸参照を拘束する」を参照)は、空間内でエフェクタを移動する際にSoftimageがチェインを維持しようとする平面に対して直角になります。この平面がチェインの通常の向き、つまりレゾリューション プレーンと呼ばれます。エフェクタを必要な位置に移動させるために、IK システムがジョイントの回転を解決(レゾリューション)する空間内にこの平面が存在するためです。
レゾリューション プレーンの概念を理解するために、前に腕を伸ばしてから上腕を曲げてみてください。腕を曲げていくと、肘の部分に角度が形成されます。この角度は、胴体に対して垂直な平面で発生します。肩のジョイントを回転させない限り、この平面(腕のレゾリューション プレーン)は上腕を曲げても静止したままです。
2D チェインのレゾリューション プレーでは、チェイン全体がプレーン内にあります。このプレーンは、2D チェインの最初のジョイント(およびそれ以降のすべてのジョイント)のローカル XY プレーンに対応します。
3D チェインの一般的な方向も、優先回転軸の影響を受けます。ただし、2D チェインのジョイントとは異なり、3D チェインのジョイントは、同じプレーン上に位置する必要はありません。
IK アニメーションの基本操作は、チェインのエフェクタの移動に対してキーを設定することです。Softimage で作成されたチェインのエフェクタの移動は、エフェクタの親(デフォルトではチェインルート)に対してローカルになります。
つまり、シーンのグローバル座標にエフェクタを「固定」させることなく階層全体をドラッグできます。デフォルトの Softimage セットアップでは、ヌルをエフェクタに拘束してアニメートするといった操作は不要です。当然のことながら、エフェクタを階層から削除したり、終端ボーンの子として関連付けることができます。
エフェクタを終端ボーンに関連付けないことにより、そのエフェクタ上に親で移動できるローカル アニメーションを自由に作成できます。しかし、多くのアニメータはエフェクタとボーンをコントロール オブジェクト(コントロール リグ)の個別の階層に拘束するため、スケルトン自体を直接アニメートすることはありません(「キャラクタ リグ」を参照)。
エフェクタが独自のチェインの外にあるオブジェクトの子である場合(つまり、そのエフェクタが別のオブジェクトの親として指定されている場合)は、移動をアニメートするまではそのチェイン内に存在するかのように動作します。 その際、エフェクタはその親のローカル空間でロックされ、親を操作してもコントロールできません。親は、エフェクタ上のアニメーションの「アンカー」として動作し、IK の動作を作成できません(つまり、親はチェインを解析できません)。
IK を起動する方法は、エフェクタを直接操作する方法、エフェクタにキー設定する方法、または[IK に強制](Force IK)オプションを使用する方法があります(「エフェクタの位置を強制する」を参照)。
エフェクタと IK を連携する方法については、「 IK チェインが目標に達する方法を選択する」を参照してください。
エフェクタの移動をアニメートする手法は、IK でチェインをアニメートする方法としては最も基本的です。通常は、エフェクタを直接アニメートするのではなく、エフェクタに拘束されたリグ コントロール オブジェクトをアニメートします。
アニメーションの変換全般の詳細については、「変換をアニメートする」(「アニメーション」)を参照してください。
[Transform]パネルの[移動ツール](Translate)([t])ボタンをクリックするか、[V]キーを押します。
キーフレームアイコンをクリックするか、[K]キーを押すか、[Animation]パネルから[Animation] [キーの設定](Set Key)を選択して、移動の値をキー設定します。
チェインをアニメートするには、エフェクタを別の位置に移動して別のキーを設定することで、タイムライン ポインタを移動し、IK を起動します。
ここで、チェインは、1~10 のフレームでエフェクタの移動をキー設定することによってアニメートされます。間の各フレームのジョイント角度が解析されます。
また、チェインをパスまたはトラジェクトリに拘束することにより移動もできます。
[アニメート]ツールバーで[作成](Create) [パス](Path) [パスの設定](Set Path)を選択し、「 パス上にオブジェクトを設定する」(「アニメーション」)に説明されている手順に従ってください。
シーケンスを再生すると、他のオブジェクトと同じように、エフェクタがパスに沿って移動します。ただし、エフェクタはチェインの一部であるため、エフェクタ以外のチェインにも IK の原理が適用されます。
チェインのプレーンの向きはチェインを描画するときに設定されますが、さまざまな問題を解決するために、複数の方法で向きを変更することもできます。たとえば、チェインの軸参照をデフォルトの Z から変更したり、特定のコンストレイントを使用してチェインを操作し、反転を防ぐことができます。
たとえば、キャラクタの腕として 2 つのジョイントを含むチェインを垂直に描画し、歩行中に自然に前後に振らせることができます。
チェインの向きをコントロールして、チェインの反転の問題を回避できます。チェインの反転は、2D または 3D IK チェインのエフェクタをチェイン ルートの近くに移動させると発生します。この現象が発生した場合、エフェクタが軸参照を横切ると、チェインの一般的な方向が急激に変化します。
この問題の解決方法として、以下の 3 つの方法が考えられます。
チェイン ルートのクリティカル ゾーンを表示する方法。「IK チェインのクリティカル ゾーンを表示する」を参照してください。
チェインのアップベクター(方向)を拘束する方法。「 チェインのアップ ベクター(方向)を拘束する」を参照してください。
チェインの回転の軸参照を拘束する方法。「 回転の軸参照を拘束する」を参照してください。