フォワード キネマティックによるアニメーション

階層を操作する既定の方法では、フォワード キネマティックと呼ばれる手法が使用されます。

この技法では次の基本原則が採用されます。

階層のオブジェクトは、他のものとまったく同じようにアニメートすることができます。[オート キー](Auto Key)ボタンをオンに切り替え、さまざまなフレームで階層のメンバを変換します。しかし、階層のアニメートでは注意すべき特殊な点がいくつかあります。

リンクと基点の作用

2 つのオブジェクトがリンクされると、子オブジェクトは親オブジェクトを基準に相対的な位置、回転、スケールの変換を保持します。これらの変換は親オブジェクトの基点から子オブジェクトの基点までで測定されます。

たとえば、次の図の 2 つのボックスについて考えます。大きいボックスは、小さいボックスの親です。リンクの作用を説明するために、基点とボックス間のリンクを示します。リンクは親の基点から始まり、子の基点までをつないでいます。子の基点を親子間の関節と考えることができます。

基点でリンクされている親オブジェクトと子オブジェクト

親オブジェクトを回転すると、子オブジェクトの位置と方向が影響を受けます。

子オブジェクトを回転しても親オブジェクトは影響を受けません。

リンクは親から子へ変換を伝える一方向の導管となります。親を移動、回転、またはスケールすると、子も同じだけ移動、回転、スケールされます。階層は一方向であるため、子の移動、回転、スケールは親にまったく影響しません。

結果として、子に加えられた変換は親から継承したすべての変換とともに子に適用されます。

親オブジェクトをアニメート

親から子へは変換だけが伝えられます。移動、回転、またはスケールを使用して親オブジェクトをアニメートすると、親と親にアタッチされたサブツリーがアニメートされます。

親のモディファイヤと作成パラメータのアニメートは子孫には影響しません。

ルート親を移動させると階層全体が移動します。

親オブジェクトの回転はすべての子オブジェクトに伝わります。

子オブジェクトをアニメート

フォワード キネマティックの場合、子は親へのリンクによる制限を受けません。親から独立して子を移動、回転、またはスケールできます。

階層の最後の子オブジェクトを移動しても、直前のオブジェクトには影響しません。

階層の中間にある子オブジェクトを回転させるとすべての子孫に影響しますが、親には影響しません。

チェーンの末尾の子を動かして親オブジェクトを操作する場合は、インバース キネマティックを使用します。

階層を操作

子オブジェクトは親の変換を継承し、親は階層のルート オブジェクトまでのすべての先祖の変換を継承します。フォワード キネマティックではこのような継承方法を採用しているため、階層の位置決めとアニメートをトップダウン方式で行う必要があります。

脚の階層の操作

図中のリンクされたマネキンについて考えます。マネキンの右足が、横にあるサッカー ボールの上にのった状態にするには、次の手順を実行します。

  1. 脚全体がサッカー ボールの上になるように右腿を 回転します。
  2. 足がサッカー ボールの上に近づくように右のむこうずねを 回転します。
  3. サッカー ボールの上部と平行になるように右足を 回転します。
  4. 足が正しく配置できるまで手順 1 から 3 を繰り返します。

オブジェクトの変換は常にモーションの影響を受ける最も高いレベルの親から開始して、階層の最後の子まで順に作業を進めます。

フォワード キネマティックを使用すると、階層内のすべてのオブジェクトの配置をかなり正確に制御できます。しかし、この処理は大きく複雑な階層の場合には面倒なことがあります。このような状況では、インバース キネマティックを使用できます。