こんにちは、Unityエンジニアのオオバです。
「Apply Root Motion」とはAnimatorコンポーネントのパラメータの1つです。チェックのON/OFFでアニメーションの挙動が大きく変わってくるため、Unityでアニメーション作成するときには必ず理解しておく必要があります。
そこで本記事ではUnityのApply Root Motionについて初心者でも分かりやすく解説していきます。
👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!
Apply Root Motionはルート階層の継続した座標更新
最初に結論をお伝えすると「Apply Root Motion」は ルート階層の継続した座標更新 です。
ルート階層の継続した座標更新とは、ルート階層のオブジェクトがAnimationClip再生時に座標を継続的に更新すること。
ここでいうルート階層のオブジェクトとは、上図のようなAnimatorコンポーネントをセットしたGameObject。 Cube にAnimatorコンポーネントがセットされています。
CubeがAnimationClipによって座標を継続的に更新できるかどうかを設定するのがApply Root Motionということになるのです。
Apply Root Motionを適用してみよう
読むより見るほうが手っ取り早いため、Apply Root Motionを適用したアニメーションを作ってみます。
座標(0, 0, 0)から0.5秒かけて(1, 0, 0)に移動するCubeを用意しました。
Apply Root MotionをOFFの状態で再生
Apply Root Motionを OFFの状態 で再生してみましょう。
Animatorコンポーネントの「Apply Root Motion」のチェックを外しておきます。
アニメーションを再生すると次のようになります。
座標(0, 0, 0)と(1, 0, 0)間の移動を繰り返します。
まあ予想通りの結果ですよね。このアニメーションがApply Root Motionによってどのように変化するのか見ていきましょう。
Apply Root Motionのチェックを入れる
ではApply Root Motionのチェックを入れてアニメーションを再生してみましょう。
Apply Root MotionをONにするとオブジェクトの座標が継続的に更新されるようになります。
つまりApply Root MotionはAnimationClipでオブジェクトの座標を更新することができる設定ということです。
どんなときにApply Root Motionを使う?
ではどんなケースでApply Root Motionを有効にすべきなのでしょうか?参考に2つの有効なケースを紹介します。
1.テイストに合わせたアニメーションと座標更新
1つはAnimationClipで座標を変更したいときです。AnimationClipの他にはプログラムでアニメーションを実装する方法があります。
例えばDOTweenを使ったアニメーションではどうしても機械的な動きになってしまいがちです。
しかし AnimationClip & Apply Root Motion の場合、自由度が格段に高くなるため、ゲームのテイストに合わせたアニメーションと座標更新が可能になります。
アニメーションがが分岐する場合、DOTweenならプログラムを変えるだけですが、AnimationClipの場合は分岐の数だけ作成する必要が出てくるので注意です。
2.足滑りが気になる時
2つ目は足滑りが気になるときです。
キャラクターを歩く、走らせる時アニメーションと移動は別で動かすことがあります。するとどうしても足が地面とずれてしまし滑って見えてしまいます。
Apply Root Motion ONとOFFを見比べてみましょう。わかりやすくするためにアニメーション再生スピードを半分にしています。
特にキャラの足元に注目してみてください。
Apply Root MotionをONにした方が足元が滑っていないため、説得力のあるアニメーションになりますね。
どちらを採用するかはコスト面、システム面から決めてもらえればと思います。
ちなみにサンプルのキャラクタはVRoidで作成してUnityで再生してみました。
使用した走るモーションはオオバが大好きな KAWAII ANIMATIONS 100を使わせてもらっています。おすすめアセットです。

Apply Root Motionのまとめ
本記事ではApply Root Motionについて解説してきました。「Apply Root Motion」はアニメーションでオブジェクトの座標を更新するかどうかを決める設定です。ONにすると、アニメーションの動きがオブジェクトの位置に適用されます。
Apply Root Motionを活用することでキャラクタの歩く、走るモーション時の足滑りが軽減されてより自然なアニメーションになります。
適切にApply Root Motionを使い分けてゲームの品質を上げていきましょう。

筆者のXをフォローしよう
Unityオブジェクトの描画順の制御って難しいですよね。
この度、Unityの描画順を体系的に学べる「Unity描画順の教科書」を執筆しました。
Unityの描画順を基礎から学びたい方はぜひ確認してみてください!
→ Unity描画順の教科書
最後まで読んでいただきありがとうございました!
すばらしいアニメーション開発ライフをお過ごしください。
- Unity6000.0.32.f1