ボディトランスフォームとはキャラクターの重心です。これは Mecanim のリターゲティングエンジンに使用され、最も安定したディスプレイスメントモデルを提供します。ボディの向きは下半身と上半身のボディの向きの平均で、アバターの T ポーズを基準にします。
ボディトランスフォームと向きは アニメーションクリップ に保存されます (アバターに設定された マッスルの定義 を使用)。これらは、アニメーションクリップ に保存される唯一のワールド空間カーブです。その他すべて (マッスルカーブと IK ゴール (手足)) は、ボディトランスフォームを基準にして保存されます。
ルートトランスフォームは ボディトランスフォームを Y 平面上へ投影したもので、ランタイムに計算されます。ルートトランスフォームの変化はフレームごとに計算されます。このトランスフォームの変化をゲームオブジェクトに適用する事で、オブジェクトが移動します。
アニメーションクリップエディターの設定 (Root Transform Rotation、Root Transform Position (Y)、Root Transform Position (XZ)) を使って、ルートトランスフォームへのボディトランスフォームからの投影方法を制御できます。これらの設定によって、ボディトランスフォームの一部をルートトランスフォームに転送できます。例えば、動作の Y 位置をルートモーション (軌道) の一部とするか、ポーズ (ボディトランスフォーム) の一部とするか (Bake into Pose) を自由に決められます。
Bake into Pose:__ボディトランスフォーム (またはポーズ) の向きを保ちます。ルートの向きは一定で、動作後は同じ向きになります。つまり、その アニメーションクリップ__ でゲームオブジェクトの向きは変化しません。
このオプションは、同じような開始/終了時のルート方向を持つアニメーションクリップにのみ使用してください。このオプションに適した アニメーションクリップ には UI の緑のライトが表示されます。真っ直ぐに歩いたり走ったりする動作にはこれが適しています。
Based Upon:クリップの向きを設定できます。Body Orientation を使用すると、クリップの向きはボディの前方ベクトルに従います。このデフォルト設定は、ほとんどのモーションキャプチャ (Mocap) データ (歩く、走る、ジャンプなど) で正しく機能しますが、ボディの前方ベクトルに対して直角の動き (航空機から地上に向かって射撃を行う機銃掃射など) の場合は正しく機能しません。このような場合は、Offset 設定を使って手動で向きを調整できます。Original を使うと、インポートしたクリップに指定したオフセットの値を自動的に追加します。通常、キーフレームが設定されたデータとともに使用し、アーティストが設定した通りの向きにします。
Offset: Based Upon でこのオプションが有効な場合にオフセットを入力します。
ここでも、Root Transform Rotation の説明と同じ考え方を適用します。
Bake Into Pose: 動作の Y コンポーネントはボディトランスフォーム (ポーズ) の値を保ちます。ルートトランスフォームの Y コンポーネントは一定で、動作後の Y コンポーネントのルート位置は 0 になります。したがって、このクリップではゲームオブジェクトの高さは変化しません。この場合も、Y 軸の動きをポーズにベイクするのに適切なクリップに緑のライトが表示されます。
ほとんどの アニメーションクリップ ではこの設定を有効にします。ゲームオブジェクト の高さを変更するクリップ (例えば上下にジャンプする場合など) のみ、これを無効にします。
ノート: Y 位置に Bake Into Pose を設定すると、Animator.gravityWeight が有効になります。有効な場合は gravityWeight = 1、無効な場合は 0 です。gravityWeight はステート間を遷移するときにのみクリップにブレンドされます。
Based Upon:____Root Transform Rotation と同様に、Original または Mass Center (Body) から選択できます。さらに、Feet オプションがあり、高さが変わる (Bake Into Pose が無効の) アニメーションクリップ で役に立ちます。Feet を使用すると、Root Transform Position Y はすべてのフレームで最も低い足の Y 位置に合わせます。これにより、ブレンドされる場所を常に足の付近に保ち、ブレンドや遷移のときに宙に浮いてしまう問題を回避できます。
Offset:____Root Transform Rotation と同様に、Offset 設定を使用して アニメーションクリップ の高さを手動で調整できます。
この場合も、Root Transform Rotation や Root Motion Position (Y) と同じ考え方を適用します。
Bake Into Pose は通常、動作後の位置 (XZ) を 0 にして “Idle” にしたい場合に使用します。これにより、何度も評価を繰り返すことが原因で値の小さな変化量が蓄積されていくのを防止できます。また、Based Upon が Original に設定されたキーフレームを持つクリップに使用し、アーティストが設定した位置に動かすこともできます。
Loop Pose は (ブレンドツリーまたは遷移におけるポーズのブレンドのように)、ルートトランスフォームを参照することで行います。ルートトランスフォームを計算したら、ポーズはそれを基準にします。開始/終了フレーム間の相対的なポーズの差が計算され、クリップの 0–100% の範囲に割り当てられます。
これは本質的にヒューマノイドルートモーションと同様に機能しますが、ルートトランスフォームを計算/予測するためにボディトランスフォームを使用するのではなく、ルートノード に設定されている Transform を使用します。ポーズ (ルートモーションのボーンの下で変化するすべてのボーン) はルートトランスフォームを基準に決まります。