スケルトン、インバース キネマティクス アニメーションを作成する

スケルトン アニメーションの作成方法

スケルトンの概要

スケルトンを使用すると、キャラクタのジオメトリを作成する前にキャラクタの完全なアニメーション シーケンスを作成することができます。

Animation > IK > New Skeleton を使用してスケルトンを作成してから、Animation > IK > Add IK HandleAnimation > Tools > Create Constraint、および Animation > Keyframe > Set Keyframe または Animation > Keyframe > Auto Keyframe の順に選択して、キャラクタを回転パラメータと移動パラメータでアニメーション化します。

このキャラクタの階層ジオメトリはアニメーションとは無関係に作成できます。また、Animation > Editors > Skeletons の順に選択して、この階層にある DAG ノードをジョイント DAG ノードに変更できます。その後、Animation > Edit > Overlay Skeleton の順に選択して、アニメーションや、その他のスケルトン属性を、モデル内の対応する Joint ノードに対してオーバーレイさせることができます。

スケルトンを複製するには

  1. Animation > IK > New Skeleton の順に選択して、スケルトンを作成します。インバース キネマティクス(Animation > IK > Add IK Handle を使用)、または標準のアニメーション ツールを使用して、スケルトンをアニメーション化します。
  2. Animation > IK > New Skeleton、または Skeleton editor (Animation > Editors > Skeletons)の順に選択して、最初の既存モデルのスケルトンとトポロジが同じスケルトンをもう 1 つ作成します。
  3. Animation > Edit > Overlay Skeleton を選択します。次のプロンプトが表示されます。
    Select the root of the skeleton that is to be copied.
    
  4. スケルトンのルートを定義する Joint ノードを選択して、コピーするスケルトンを選択します。SBD ウィンドウからこのジョイントを選択するか、あるいはモデリング ウィンドウでジョイントを選択することができます。

Animation > Tools > Bone Style を選択してボーン スタイルを指定します。

ボーンのスタイルには、次の図のようにさまざまな種類があります。

  1. Joint ノードが選択されると、次のプロンプトが表示されます。
    Select the root of the skeleton to be copied to.
    Pick the root node of the destination skeleton that is to receive the same animation and skeleton attributes as the source skeleton.
    

    デスティネーションのスケルトンを選択すると、デスティネーション スケルトンの対応する Joint ノードにコピーされます。コピーされるものは、コピー元スケルトンのそれぞれの Joint ノードにある座標変換およびアニメーションです。

    ジョイント情報の詳細については、「Animation > Editors > Skeletons」を参照してください。

    さらに、ほかのジョイント情報と共に、ジョイントのリミットもデスティネーション スケルトンの対応する Joint ノードにコピーされます。

トポロジの観点からのスケルトンの一致

Skeleton 1 の各 Joint ノードの子 Joint ノードの数が Skeleton 2 の各 Joint ノードと同じであれば、この 2 つのスケルトンのトポロジは同じとみなされます。下の SBD ウィンドウのダイアグラムでは、Skeleton 1Skeleton 2 はトポロジの観点からは同等です。

上のダイアグラムでは、同じトポロジを持つスケルトンが、非ジョイントDAGノードをJointノードの上位、下位、あるいは同等の位置にグループ化できるということを表しています。DAG ノードの階層からスケルトンを決定する場合、非ジョイントの DAG ノードは無視されます。

場合によっては、2 つのスケルトンが同じトポロジを持っていても、そのトポロジの意味が異なることがあります。たとえば、2 つのスケルトンに 2 本のブランチがあり、それぞれのブランチは腰、ひざ、足首を表す 3 つのジョイントがグループ化された Joint ノードであるとします。この場合、片方のスケルトンでは最初のブランチ(分岐)が右脚を表しているのに対して、もう片方では左脚を表しています。

Overlay skeleton を使用して、スケルトンの間でアニメーションをコピーすると、左脚のアニメーションは右脚にコピーされ、右脚のアニメーションは左脚にコピーされます。アニメーションをそれぞれ適切なブランチに確実にコピーするには、SBD ウィンドウのタイトル バーにある SBD スワップ アイコンを使用するか、と矢印キー(Windows)またはと矢印キー(Mac)を組み合わせて使用して、SBD ウィンドウ内でのブランチの位置を交換します。

スケルトンを作成する

Animation > IK > New Skeleton の順に選択して、ピボット ポイントまたはジョイント位置によって定義されるスケルトンを作成します。

Joint ノードを作成するには

Animation > IK > New Skeleton の順に選択してスケルトンを作成します。

ジョイントを 1 つ作成するたびに、SBD(Scene Block Diagram)に DAG ノードが 1 つ追加されます。また、モデリング ウィンドウには、このジョイントと直前のジョイントをつなぐボーンが描かれます。

描画が終了したら、Edit > Duplicate > Mirror の順に選択して、このスケルトンをコピーおよびミラーすることで、元のスケルトンを反転させた複製を作成できます。

また、Skeleton Editor (Animation > Editors > Skeletons)でジョイントの状態を切り替えて、既存の DAG ノードを Joint ノードにしたり、Joint ノードを標準 DAG ノードにすることもできます。

New skeleton を使用しているときにモデリング ウィンドウをクリックすると、そのたびにアクティブ Joint ノードの子ノードである新しいジョイントが作成され、この 2 つのジョイントの間にボーンが作成されます。

このようにしてジョイント DAG ノードを作成するたびに、ジョイント DAG ノードのピボット位置が最後にウィンドウでクリックした位置に設定されます(キーボードからピボット位置を入力して、新しいジョイント DAG ノードを作成することもできます)。

ボーンを作成するには

ボーンは、Joint ノードとそれに一番近い上位 Joint ノードの間に作成され、2 つの Joint ノードの回転ピボット ポイントを結び付けます。ボーンのシェイプを変更したり(Animation > Tools > Bone Style を参照)、ボーンをまったく表示しないようにできます(Animation > Show > Skeletons を参照)。

3D ボーンの実際のサイズは、ピボット ポイント間の距離によって定義されます。ボーンの大きい方の端は、ボーンの上位にあるジョイント DAG ノードの回転ピボット ポイントの位置を示し、小さい方の端は、同じボーンの下位にあるジョイント DAG ノードの回転ピボット ポイントの位置を示します。ボーンはピボット ポイントによって定義されるので、Transform > Local > Set Pivot の順に選択してボーンの長さを変更できます。

アプリケーション ウィンドウで数回クリックすると、ジョイントのチェーンを作成できます。階層構造を作成する場合は、キーボードにある 4 つの矢印キーのいずれかとキーを組み合わせて使って、Joint ノード階層の中を移動することができます。

スケルトン ボーンを表示する

アプリケーション ウィンドウでスケルトンのボーンとそれに関連付けられたコンストレインまたは IK ハンドルを表示、非表示にする方法

  1. Animation > IK > New Skeleton または Skeleton Editor (Animation > Editors > Skeletons)の順に選択してスケルトンを作成します。スケルトンは骨のようなジオメトリで表示されます。
  2. Animation > Show > Skeletons を選択して、これらのボーンを非表示にします。すべてのウィンドウにあるスケルトンがすべて表示されなくなります。再度表示するには、もう一度メニューを選択します。

スケルトンに IK ハンドルを追加する

インバース キネマティクスの IK ハンドルを使用すると、スケルトンの特定の部位の動きを、その他の部位の動きを妨げることなく制御することができます。

Animation > IK > Add IK Handle は、IK ハンドルを一度に 1 つずつスケルトンに追加する連続アクション ツールです。シングルチェーン ハンドルを追加するには、このツールのオプション ボックスで Single-chain を選択します。次に、ルート ジョイントを選択し、最後にエンド エフェクタ ジョイントを選択します。操作の完了後もこのツールはアクティブなままになるので、続けてスケルトンの他の部分を選択し、IK ハンドルを追加できます。

IK ハンドルを追加するには

  1. Animation > IK > Add IK Handle を選択するか、そのアイコンをクリックします。
  2. 次のプロンプトが表示されます。
    Pick a joint as the root of a single-chain (multi-chain or spline) handle.
    Pick a root joint to start the handle. (You can drag a pick box around a joint to select it.)
    
  3. 次のプロンプトが表示されます。
    Pick a descendant joint as the end-effector of the single chain (multi-chain or spline) handle.
    Pick an end joint.
    
  4. スプライン ハンドルは作成したが、新規カーブを作成するための Create Curve を選択しなかった場合は、次のプロンプトが表示されます。
    Pick a curve node as the target of the spline handle.
    Pick the curve.
    
  5. ハンドルの作成が完了すると、別のハンドルを作成するように指示するプロンプトが表示されます。
  6. ハンドル パラメータの表示、変更、切り替えを行う場合は、Information Window を開いて該当するハンドルを選択します。
  7. ハンドルに関するリミットやジョイント情報は Skeleton Editor で編集できます。ハンドルに関する情報を参照するには、Skeleton Editor (Animation > Editors > Skeletons)の List Type ポップアップ メニューから Handles を選択します。

制限事項

スプライン ハンドル使用上の注記

モデリング ウィンドウでは、次のような方法で、スプライン ハンドルを制御することができます。

ルート ハンドルが選択されている場合、

マスター ハンドルが選択されている場合、Transform > Rotate を選択してから を使用してチェーンをねじることができます。

スケルトンのシェイプを制御するには

スケルトンのシェイプを制御する必要があるが、空間内での位置は制御しないという場合、スプライン IK を使用できます。これは、異なるロケーションにある、たくさんの似たようなオブジェクトのシェイプを 1 つのカーブで制御する場合に便利な機能です。そのためには、

  1. スケルトンのルート ジョイントを、対象となるオブジェクトにコンストレインします。
  2. スプライン ハンドルを作成します。

IK スケルトンの中間ポーズの作成

Animation > IK > Set Rest Pose を使用して中間ポーズを定義します。

シングルチェーン IK ソルバでは、すべての固有のソリューションの開始点となるレスト ポーズを使用します。レスト ポーズは、IK ソリューションに初期値を提供する、各ジョイントの値のセットです。

各スケルトン ジョイントは、ジョイントの移動、回転、X、Y、および Z 値のレスト値を「記憶」します。レスト ポーズは、同じようなスケルトンにコピーおよびミラーコピーすることができます。レスト ポーズに戻す方法の詳細については、「ジョイントと IK スケルトンをレスト ポーズに戻す」を参照してください。

IK スケルトンの中間ポーズを作成するには

  1. Animation > IK > New Skeleton の順に選択して、スケルトンを作成します。
  2. Animation > Pick > Joint と必要な Transform ツールを使用して、必要に応じてスケルトンを配置します。
  3. Animation > IK > Set Rest Pose を選択します。

あるいは、IK ハンドルを選択して IK チェインのすべてのジョイントにレスト ポーズを設定することもできます。

ジョイントと IK スケルトンをレスト ポーズに戻す

スケルトンを中間位置に戻すには、Animation > IK > Assume Rest Pose を使用します。

各スケルトン ジョイントは、ジョイントの移動、回転、X、Y、および Z 値のレスト値を持つことができます。ジョイントまたは標準ノードを中間ポーズに戻す(つまり、移動、回転、X、Y、および Z の値をゼロに設定する)こともできます。

注:

レスト ポーズと中間ポーズは既定では同じです。レスト ポーズは、Animation > IK > Set Rest Pose の順に選択して変更できます。詳細については、「IK スケルトンの中間ポーズの作成」を参照してください。

スケルトンを中間ポーズまたはレスト ポーズに戻す方法

  1. Animation > IK > Set Rest Pose の順に選択してレスト ポーズを作成します。
  2. Animation > Pick > JointTransform ツールを使用して、必要に応じてスケルトンを再配置します。
  3. Animation > IK > Assume Rest Pose を選択して、スケルトンをレスト ポーズに戻します。

    IK チェーンのすべてのジョイントの IK ハンドルを選択してレスト ポーズに戻すこともできます。

IK ハンドルに関する情報を入手する

Windows > Information > Information window メニュー項目を使用して、詳細を表示します。

IK ハンドルに関する情報を入手するには

  1. IK ハンドルを選択します。
  2. Windows > Information > Information Window を選択します。
Name

IK ハンドル名。このフィールドは編集可能です。

Bounding Box

IK ハンドルのバウンディング ボックスを非表示にします。

Invisible

IK ハンドルを非表示にします。

Layer
Translate

ハンドルの移動の座標値。ここでは、Control type オプションで TRANSLATION ONLY が選択されているため、この座標だけが編集可能になっています。ここでは、回転とスケールはハンドルの動作を制御するためには使用されません。

Rotate Pivot

ハンドルの回転ピボットの座標値。

Local Axes

ハンドルのローカル軸の座標値。

Scale Pivot

ハンドルのスケール ピボットの座標値。

Bounding Box Min/Max/Size

リム軸とプレーン インジケータで構成される、ハンドルのバウンディング ボックスの最小値および最大値。

Bounding Box Size

バウンディング ボックスのサイズ。サイズ = 最大値 - 最小値です。

Handle Type

IK ハンドルの種類。Single、Multi、Spline のいずれかになります。

On/Off

IK ハンドルの ON、OFF を切り換えるには、これらのボタンをクリックします。IK ハンドルを OFF にしても、このハンドルは表示されたままですが、IK チェーンに対して何の影響もありません。ハンドルを完全に非表示にするには、IK handle セクションの最上部にある Invisible オプションをクリックします。

root

IK ハンドルによる影響を受けるスケルトン階層の最上位にあるジョイント。

end-effector

IK ハンドルによる影響を受けるスケルトン階層の最下位にあるジョイント。

Control type

シングルチェーン IK ハンドルには 3 つの制御レベルがあり、Control type ポップアップ メニューからアクセスできます。

  • TRANSLATION ONLY: これは既定の制御設定で、IK のほとんどの基本的な用途に使用できます。TRANSLATION ONLY とは、IK ハンドルの移動チャンネルを移動またはアニメーション化のみできるという意味です。
  • PLANE ROTATION : この設定では、IK ハンドルをさらに細かく制御することができます。PLANE ROTATION ではスケルトン プレーンを回転させることができます。スケルトン プレーンとは、IK ハンドル内のジョイントを含む平面です。IK ハンドルのジョイントのすべてが同一平面上に含まれていない場合は、最も適合している平面が選択されます。このオプションを選択すると、Plane rotate ボックスの値を使用して IK ハンドルを回転できるようになります。この結果、プレーン インジケータ、スケルトン プレーンの順に方向を変更して、スケルトン チェーンにさらに複雑な動きをさせることができます。
  • IK ハンドルを選択し、Rotate ツール(Transform > Rotate)で を使うと、プレーン軸の回転角度を制御することもできます。
  • PLANE/POLE ROTATION : この設定では、新しいオプション セットを使用して、より高度で特殊な IK ハンドルの制御を行うことができます。移動とプレーンの回転を組み合わせて使用した場合、IK ソリューションが予想外の反転をすることがあります。このような場合、2 つの Pole rotate のボックスの値を設定して、スケルトン プレーンに対するポールの方向が変わらないように、スケルトンのプレーンを修正します。
  • マウスの中ボタンと右ボタンを使って、IK ソリューションのポール軸とその投影線を回転できます。

Pole order フィールドでは、ポール軸の回転に適用する 2 つの自由度を選択できます。上記のプレーンの回転の例では、スケルトンは XY 平面上に描かれています。この場合、IK ハンドルが作成されると、ポール軸は自動的にZ軸に沿って(つまり、スケルトン プレーンに対して垂直に)位置付けられ、Pole order は(Z)XY になります。これは、ポール軸が IK ハンドルの Z 軸に対して平行に作成され、Z 軸を示す青色で表示されることを意味します。ポール軸の方向を調整する場合は、ポール軸に対してローカル X 回転角度および Y 回転角度を使用します。

Orientation

IK ハンドル ソリューションは座標系の方向に従って動作します。座標系は、ジョイント(LOCAL)またはシーン(WORLD)の方向のどちらかになります。

IK ハンドルにプレーンの回転設定を使用する

レスト ポジションにある IK チェーンの方向を変える必要がない場合は、既定の Translation Only オプションを使用するだけで、スケルトンをアニメーション化できます。たとえば、単純な 2 本足のキャラクタの脚が歩行サイクル中に一定の方向を向いている、つまり膝が常に前方を向いている場合、その脚の IK ハンドルに必要な操作は移動だけです。

しかし、同じ 2 本脚のキャラクタを「O脚」または「X脚」に見せる必要がある場合、またはキャラクタを踊らせる場合は、両脚のスケルトン プレーンを回転させる必要があります。この場合は、Information Window で両脚のハンドルについて Plane Rotation オプションを選択し、これに合わせて Plane rotate フィールドを調節します。

PLANE/POLE ROTATION オプションの使用

「Plane/Pole Rotation」を使用してポール軸の回転角度を調整する必要があるのは、スケルトン チェーンの多様な動きをシーンでアニメーション化する場合だけです。特に、チェーンのリム軸がポール軸に接近すると、チェーンが不必要に「フリッピング」してしまうことがあります。一般に、ポール軸を移動またはアニメーション化するときは、ハンドルのリム軸がシーン内で近づきすぎないようにします。

チェーン上にシングルチェーン IK ハンドルを作成すると、レスト ポジションのスケルトン プレーンに対して垂直にポール軸が作成されます。チェーンがこの位置から大きくねじ曲げられていない場合、つまりチェーンのリム軸がポール軸に接近していない場合は、ポール軸を既定の位置に置いたまま、スケルトンをアニメーション化できます。チェーンが大きくねじ曲げられる場合は、チェーンの急激な反転を防ぐために、ポール軸を調整するか、反転を避けるようにアニメーション化する必要があります。

複雑なシングルチェーンの例

次の 2 つの胴体の例では、POLE/PLANE ROTATION を使用して異なる腕の動きを実現する方法を説明します。

この例では、2 つの胴体はまったく同一で、両方とも左腕に IK ハンドルが付加されています。Plane rotate の既定値は 90 度です。Pole rotate Y と Z の既定値は 0 度です。左側の胴体には飲み物を飲む動作をさせ、右側の胴体には腕を跳ね上げる動作を実行させます。

  1. 左側の飲み物を飲む動作ではポールを回転させる必要がないため、Pole rotate YPole rotate Z は0、Plane rotate は 90 度のままにします。
  2. 右側の腕を跳ね上げる動作では、Plane rotate を 0 に変更し、Pole rotate Y を -90、Pole rotate Z を 0 に設定します。
  3. IK ハンドルを選択した状態で、Transform > Move を選択して腕を上方向にドラッグし、飲む動作をシミュレーションします。
  4. Information Window を開きます。
  5. 右側の胴体の腕を上に動かし続けて、腕が跳ね上がる動作をさせます。ある点で、左腕のリム軸がポール軸と交差すると、左腕がひょいと動くのがわかります。左側の胴体の左腕は、ポール軸が前方を指していて、腕のリム軸はポール軸に近づかないために反転しません。

制限事項

IK ハンドルの表示、非表示を切り替える

どの IK ハンドルを表示するかを制御する方法

IK ハンドルを表示するには

Animation > Show > IK Handles の順に選択して、IK ハンドルの表示の ON、OFF を切り換えます。

IK ハンドルを有効または無効にするには

IK ハンドルの ON(有効)と OFF(無効)を切り替えることができます。

以下を行うことができます。

IK ハンドルが OFF の場合、このハンドルは存在していないとみなされます。このハンドルを選択することはできません。個々の IK ハンドルの ON、OFF の切り替えは、Information Window で行います。

  1. Active オプションを使用している場合は、IK ハンドルを選択します。
  2. Animation > IK > IK Handles On/Off を選択して、オブションのセットアップに従って IK ハンドルの ON と OFF を切り替えます。

ミラーコピーの作成

Edit > Duplicate > Mirror で、軸プレーンを基準に階層の対称コピーを作成することができます。

これはスケルトンに対して通常の階層と同様に機能し、IK ハンドル、コンストレイン、レスト ポーズ、リミット、アニメーションおよびセレクション ハンドルがミラーコピーされます。

この機能では、以下を行うことができます。

Edit > Duplicate > Mirror を選択して Mirror Options ウィンドウを開きます。ここで、2 種類のミラーリング タイプと 3 つのミラーリング プレーンを選択できます。

ミラーリングタイプ: Duplicate

ソース ブランチとなるブランチを選択します。ツールはブランチを複製し、新しいブランチにノードをミラーリングします。

  1. Edit > Duplicate > Mirror を選択します。
  2. 階層のブランチを選択します。

    選択されたブランチの兄弟として新しいブランチが作成されます。新しいブランチは、オプション ボックス(Mirror Across settings)で定義されたプレーンに基づいてミラーリングされます。ブランチ上のすべての IK ハンドル、コンストレイン、アニメーションおよびスケルトンも複製、ミラーリングされます。

    注:

    ブランチを選択してから Mirror の項目を選ぶこともできます。

ミラーリング タイプ: Reshape

既存のブランチをミラーリング先として選択します(ツールに作成させるのではなく)。ジオメトリはこのオプションではミラーリングされません。

  1. Edit > Duplicate > Mirror を選択します。
  2. シェイプを変更するブランチを選択します。
  3. ミラーのソースにする別のブランチを選択します。

    1 番目のブランチのシェイプが、2 番目のブランチのミラーとして変更されます。1 番目のブランチ上にあった、すべての IK ハンドル、コンストレイン、アニメーションおよびスケルトンが、2 番目のブランチに基づいてミラーコピーされた新しいオブジェクトに置き換えられます。

Mirror Across

Mirror によって、ワールド座標空間において、3 つのミラーリング プレーンを提供します。このオプションは、ミラー操作で使用されるプレーンを指定します。

  1. Edit > Duplicate > Mirror を選択して Mirror Options ウィンドウを開きます。
  2. 使用するプレーンを XY、YZ または XZ から選択します。

IK を実行してアニメーションをレンダリングする

Animation > IK > Run IK を実行すると、スケルトンにアタッチされたマルチチェーン IK ハンドルを使用したアニメーションが作成され、アニメーションがレンダリング可能になります。

  1. Animation > IK > New Skeleton の順に選択して、スケルトンを作成します。
  2. Animation > IK > Add IK Handle を選択して、スケルトンのさまざまなジョイントに IK ハンドルをアタッチします。
  3. Alias のアニメーション ツールを使用して、IK ハンドルをアニメーション化します。
  4. アニメーションの第 1 フレームとなるように、スケルトンをセットアップします。
  5. スケルトンのルートを選択して Animation > IK > Run IK を選択します。

これで、コンストレインされたアニメーションのすべてのフレームに、スケルトン アニメーションを表示できます。この操作の最後で、このスケルトンは IK ハンドルを使用してアニメーション化されます。