スケルトン アニメーションの作成方法
スケルトンを使用すると、キャラクタのジオメトリを作成する前にキャラクタの完全なアニメーション シーケンスを作成することができます。
Animation > IK > New Skeleton を使用してスケルトンを作成してから、Animation > IK > Add IK Handle
、Animation > Tools > Create Constraint
、および Animation > Keyframe > Set Keyframe
または Animation > Keyframe > Auto Keyframe
の順に選択して、キャラクタを回転パラメータと移動パラメータでアニメーション化します。
このキャラクタの階層ジオメトリはアニメーションとは無関係に作成できます。また、Animation > Editors > Skeletons の順に選択して、この階層にある DAG ノードをジョイント DAG ノードに変更できます。その後、Animation > Edit > Overlay Skeleton
の順に選択して、アニメーションや、その他のスケルトン属性を、モデル内の対応する Joint ノードに対してオーバーレイさせることができます。
Select the root of the skeleton that is to be copied.
Animation > Tools > Bone Style
を選択してボーン スタイルを指定します。
ボーンのスタイルには、次の図のようにさまざまな種類があります。
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 1 と Skeleton 2 はトポロジの観点からは同等です。
上のダイアグラムでは、同じトポロジを持つスケルトンが、非ジョイントDAGノードをJointノードの上位、下位、あるいは同等の位置にグループ化できるということを表しています。DAG ノードの階層からスケルトンを決定する場合、非ジョイントの DAG ノードは無視されます。
場合によっては、2 つのスケルトンが同じトポロジを持っていても、そのトポロジの意味が異なることがあります。たとえば、2 つのスケルトンに 2 本のブランチがあり、それぞれのブランチは腰、ひざ、足首を表す 3 つのジョイントがグループ化された Joint ノードであるとします。この場合、片方のスケルトンでは最初のブランチ(分岐)が右脚を表しているのに対して、もう片方では左脚を表しています。
Overlay skeleton を使用して、スケルトンの間でアニメーションをコピーすると、左脚のアニメーションは右脚にコピーされ、右脚のアニメーションは左脚にコピーされます。アニメーションをそれぞれ適切なブランチに確実にコピーするには、SBD ウィンドウのタイトル バーにある SBD スワップ アイコンを使用するか、と矢印キー(Windows)または
と矢印キー(Mac)を組み合わせて使用して、SBD ウィンドウ内でのブランチの位置を交換します。
Animation > IK > New Skeleton の順に選択して、ピボット ポイントまたはジョイント位置によって定義されるスケルトンを作成します。
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 ハンドルを表示、非表示にする方法
インバース キネマティクスの IK ハンドルを使用すると、スケルトンの特定の部位の動きを、その他の部位の動きを妨げることなく制御することができます。
Animation > IK > Add IK Handle
は、IK ハンドルを一度に 1 つずつスケルトンに追加する連続アクション ツールです。シングルチェーン ハンドルを追加するには、このツールのオプション ボックスで Single-chain を選択します。次に、ルート ジョイントを選択し、最後にエンド エフェクタ ジョイントを選択します。操作の完了後もこのツールはアクティブなままになるので、続けてスケルトンの他の部分を選択し、IK ハンドルを追加できます。
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.)
Pick a descendant joint as the end-effector of the single chain (multi-chain or spline) handle. Pick an end joint.
Pick a curve node as the target of the spline handle. Pick the curve.
モデリング ウィンドウでは、次のような方法で、スプライン ハンドルを制御することができます。
ルート ハンドルが選択されている場合、
マスター ハンドルが選択されている場合、Transform > Rotate を選択してから
を使用してチェーンをねじることができます。
スケルトンのシェイプを制御する必要があるが、空間内での位置は制御しないという場合、スプライン IK を使用できます。これは、異なるロケーションにある、たくさんの似たようなオブジェクトのシェイプを 1 つのカーブで制御する場合に便利な機能です。そのためには、
Animation > IK > Set Rest Pose を使用して中間ポーズを定義します。
シングルチェーン IK ソルバでは、すべての固有のソリューションの開始点となるレスト ポーズを使用します。レスト ポーズは、IK ソリューションに初期値を提供する、各ジョイントの値のセットです。
各スケルトン ジョイントは、ジョイントの移動、回転、X、Y、および Z 値のレスト値を「記憶」します。レスト ポーズは、同じようなスケルトンにコピーおよびミラーコピーすることができます。レスト ポーズに戻す方法の詳細については、「ジョイントと IK スケルトンをレスト ポーズに戻す」を参照してください。
あるいは、IK ハンドルを選択して IK チェインのすべてのジョイントにレスト ポーズを設定することもできます。
スケルトンを中間位置に戻すには、Animation > IK > Assume Rest Pose を使用します。
各スケルトン ジョイントは、ジョイントの移動、回転、X、Y、および Z 値のレスト値を持つことができます。ジョイントまたは標準ノードを中間ポーズに戻す(つまり、移動、回転、X、Y、および Z の値をゼロに設定する)こともできます。
レスト ポーズと中間ポーズは既定では同じです。レスト ポーズは、Animation > IK > Set Rest Pose の順に選択して変更できます。詳細については、「IK スケルトンの中間ポーズの作成」を参照してください。
IK チェーンのすべてのジョイントの IK ハンドルを選択してレスト ポーズに戻すこともできます。
Windows > Information > Information window メニュー項目を使用して、詳細を表示します。
IK ハンドル名。このフィールドは編集可能です。
IK ハンドルのバウンディング ボックスを非表示にします。
IK ハンドルを非表示にします。
ハンドルの移動の座標値。ここでは、Control type オプションで TRANSLATION ONLY が選択されているため、この座標だけが編集可能になっています。ここでは、回転とスケールはハンドルの動作を制御するためには使用されません。
ハンドルの回転ピボットの座標値。
ハンドルのローカル軸の座標値。
ハンドルのスケール ピボットの座標値。
リム軸とプレーン インジケータで構成される、ハンドルのバウンディング ボックスの最小値および最大値。
バウンディング ボックスのサイズ。サイズ = 最大値 - 最小値です。
IK ハンドルの種類。Single、Multi、Spline のいずれかになります。
IK ハンドルの ON、OFF を切り換えるには、これらのボタンをクリックします。IK ハンドルを OFF にしても、このハンドルは表示されたままですが、IK チェーンに対して何の影響もありません。ハンドルを完全に非表示にするには、IK handle セクションの最上部にある Invisible オプションをクリックします。
IK ハンドルによる影響を受けるスケルトン階層の最上位にあるジョイント。
IK ハンドルによる影響を受けるスケルトン階層の最下位にあるジョイント。
シングルチェーン IK ハンドルには 3 つの制御レベルがあり、Control type ポップアップ メニューからアクセスできます。
Pole order フィールドでは、ポール軸の回転に適用する 2 つの自由度を選択できます。上記のプレーンの回転の例では、スケルトンは XY 平面上に描かれています。この場合、IK ハンドルが作成されると、ポール軸は自動的にZ軸に沿って(つまり、スケルトン プレーンに対して垂直に)位置付けられ、Pole order は(Z)XY になります。これは、ポール軸が IK ハンドルの Z 軸に対して平行に作成され、Z 軸を示す青色で表示されることを意味します。ポール軸の方向を調整する場合は、ポール軸に対してローカル X 回転角度および Y 回転角度を使用します。
IK ハンドル ソリューションは座標系の方向に従って動作します。座標系は、ジョイント(LOCAL)またはシーン(WORLD)の方向のどちらかになります。
レスト ポジションにある IK チェーンの方向を変える必要がない場合は、既定の Translation Only オプションを使用するだけで、スケルトンをアニメーション化できます。たとえば、単純な 2 本足のキャラクタの脚が歩行サイクル中に一定の方向を向いている、つまり膝が常に前方を向いている場合、その脚の IK ハンドルに必要な操作は移動だけです。
しかし、同じ 2 本脚のキャラクタを「O脚」または「X脚」に見せる必要がある場合、またはキャラクタを踊らせる場合は、両脚のスケルトン プレーンを回転させる必要があります。この場合は、Information Window で両脚のハンドルについて Plane Rotation オプションを選択し、これに合わせて Plane rotate フィールドを調節します。
「Plane/Pole Rotation」を使用してポール軸の回転角度を調整する必要があるのは、スケルトン チェーンの多様な動きをシーンでアニメーション化する場合だけです。特に、チェーンのリム軸がポール軸に接近すると、チェーンが不必要に「フリッピング」してしまうことがあります。一般に、ポール軸を移動またはアニメーション化するときは、ハンドルのリム軸がシーン内で近づきすぎないようにします。
チェーン上にシングルチェーン IK ハンドルを作成すると、レスト ポジションのスケルトン プレーンに対して垂直にポール軸が作成されます。チェーンがこの位置から大きくねじ曲げられていない場合、つまりチェーンのリム軸がポール軸に接近していない場合は、ポール軸を既定の位置に置いたまま、スケルトンをアニメーション化できます。チェーンが大きくねじ曲げられる場合は、チェーンの急激な反転を防ぐために、ポール軸を調整するか、反転を避けるようにアニメーション化する必要があります。
次の 2 つの胴体の例では、POLE/PLANE ROTATION を使用して異なる腕の動きを実現する方法を説明します。
この例では、2 つの胴体はまったく同一で、両方とも左腕に IK ハンドルが付加されています。Plane rotate の既定値は 90 度です。Pole rotate Y と Z の既定値は 0 度です。左側の胴体には飲み物を飲む動作をさせ、右側の胴体には腕を跳ね上げる動作を実行させます。
シングルチェーン ハンドルのルート ジョイントが非均等スケールを継承している場合、プレーンのワールド空間方向が正しく機能しません。
Run IK でモーションブラー補正オプションを使用してください。このオプションは、ジャンプ付近のモーション ブラー サンプル ポイントにキーフレームを追加挿入します。
どの IK ハンドルを表示するかを制御する方法
IK ハンドルの ON(有効)と OFF(無効)を切り替えることができます。
以下を行うことができます。
IK ハンドルが OFF の場合、このハンドルは存在していないとみなされます。このハンドルを選択することはできません。個々の IK ハンドルの ON、OFF の切り替えは、Information Window で行います。
Edit > Duplicate > Mirror で、軸プレーンを基準に階層の対称コピーを作成することができます。
これはスケルトンに対して通常の階層と同様に機能し、IK ハンドル、コンストレイン、レスト ポーズ、リミット、アニメーションおよびセレクション ハンドルがミラーコピーされます。
この機能では、以下を行うことができます。
(これに対して、Layers > Symmetry はインスタンスによってシンメトリを作成するので、ジオメトリは実際には複製されません)。
(これに対して、Layers > Symmetry は任意のプレーンのシンメトリを作成するので、ジオメトリのシンメトリだけが作成され、リーフ レベルだけが影響を受けます)。
Mirror は、原点にキャラクタを作成し、ミラーリングが完了した後にキャラクタの変形とクラスタへのアタッチメントを行うような場合に最も効力を発揮します。
Edit > Duplicate > Mirror を選択して Mirror Options ウィンドウを開きます。ここで、2 種類のミラーリング タイプと 3 つのミラーリング プレーンを選択できます。
ソース ブランチとなるブランチを選択します。ツールはブランチを複製し、新しいブランチにノードをミラーリングします。
選択されたブランチの兄弟として新しいブランチが作成されます。新しいブランチは、オプション ボックス(Mirror Across settings)で定義されたプレーンに基づいてミラーリングされます。ブランチ上のすべての IK ハンドル、コンストレイン、アニメーションおよびスケルトンも複製、ミラーリングされます。
ブランチを選択してから Mirror の項目を選ぶこともできます。
既存のブランチをミラーリング先として選択します(ツールに作成させるのではなく)。ジオメトリはこのオプションではミラーリングされません。
1 番目のブランチのシェイプが、2 番目のブランチのミラーとして変更されます。1 番目のブランチ上にあった、すべての IK ハンドル、コンストレイン、アニメーションおよびスケルトンが、2 番目のブランチに基づいてミラーコピーされた新しいオブジェクトに置き換えられます。
Mirror によって、ワールド座標空間において、3 つのミラーリング プレーンを提供します。このオプションは、ミラー操作で使用されるプレーンを指定します。
Animation > IK > Run IK を実行すると、スケルトンにアタッチされたマルチチェーン IK ハンドルを使用したアニメーションが作成され、アニメーションがレンダリング可能になります。
これで、コンストレインされたアニメーションのすべてのフレームに、スケルトン アニメーションを表示できます。この操作の最後で、このスケルトンは IK ハンドルを使用してアニメーション化されます。