渋谷ほととぎす通信

エンジニア社長によるUnityとAIのブログ & エンジニアの生存戦略

【初心者向け】UnityのApply Root Motionって何?

【初心者向け】UnityのApply Root Motionって何?

こんにちは、Unityエンジニアのオオバです。

お悩みさん
お悩みさん
  • Apply Root Motionって何?
  • 設定する必要ってある?
  • 重要なパラメーター?
  • オオバ
    オオバ
    本記事ではこれらの悩みを解決します。

    「Apply Root Motion」とはAnimatorコンポーネントのパラメータの1つです。チェックのON/OFFでアニメーションの挙動が大きく変わってくるため、Unityでアニメーション作成するときには必ず理解しておく必要があります。

    そこで本記事ではUnityのApply Root Motionについて初心者でも分かりやすく解説していきます。

    👉DOTweenの教科書を読んでUnityアニメーションをプログラミングしてみよう!

    Apply Root Motionはルート階層の継続した座標更新

    最初に結論をお伝えすると「Apply Root Motion」は ルート階層の継続した座標更新 です。

    ルート階層の継続した座標更新とは、ルート階層のオブジェクトがAnimationClip再生時に座標を継続的に更新すること。

    【初心者向け】UnityのApply Root Motionって何?_0
    ここでいうルート階層のオブジェクトとは、上図のようなAnimatorコンポーネントをセットしたGameObject。 Cube にAnimatorコンポーネントがセットされています。

    CubeがAnimationClipによって座標を継続的に更新できるかどうかを設定するのがApply Root Motionということになるのです。

    Apply Root Motionを適用してみよう

    読むより見るほうが手っ取り早いため、Apply Root Motionを適用したアニメーションを作ってみます。

    【初心者向け】UnityのApply Root Motionって何?_1
    座標(0, 0, 0)から0.5秒かけて(1, 0, 0)に移動するCubeを用意しました。

    Apply Root MotionをOFFの状態で再生

    Apply Root Motionを OFFの状態 で再生してみましょう。
    【初心者向け】UnityのApply Root Motionって何?_2
    Animatorコンポーネントの「Apply Root Motion」のチェックを外しておきます。

    アニメーションを再生すると次のようになります。

    【初心者向け】UnityのApply Root Motionって何?_3

    座標(0, 0, 0)と(1, 0, 0)間の移動を繰り返します。

    まあ予想通りの結果ですよね。このアニメーションがApply Root Motionによってどのように変化するのか見ていきましょう。

    Apply Root Motionのチェックを入れる

    【初心者向け】UnityのApply Root Motionって何?_4
    ではApply Root Motionのチェックを入れてアニメーションを再生してみましょう。

    【初心者向け】UnityのApply Root Motionって何?_5

    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 OFF(移動処理はプログラム)

    【初心者向け】UnityのApply Root Motionって何?_6
    特にキャラの足元に注目してみてください。

    Apply Root Motion ON

    【初心者向け】UnityのApply Root Motionって何?_7
    Apply Root MotionをONにした方が足元が滑っていないため、説得力のあるアニメーションになりますね。

    どちらを採用するかはコスト面、システム面から決めてもらえればと思います。

    ちなみにサンプルのキャラクタはVRoidで作成してUnityで再生してみました。

    使用した走るモーションはオオバが大好きな KAWAII ANIMATIONS 100を使わせてもらっています。おすすめアセットです。

    KAWAII ANIMATIONS 100

    Apply Root Motionのまとめ

    本記事ではApply Root Motionについて解説してきました。「Apply Root Motion」はアニメーションでオブジェクトの座標を更新するかどうかを決める設定です。ONにすると、アニメーションの動きがオブジェクトの位置に適用されます。

    Apply Root Motionを活用することでキャラクタの歩く、走るモーション時の足滑りが軽減されてより自然なアニメーションになります。

    適切にApply Root Motionを使い分けてゲームの品質を上げていきましょう。

    Unityオブジェクトの描画順の制御って難しいですよね。
    この度、Unityの描画順を体系的に学べる「Unity描画順の教科書」を執筆しました。

    Unityの描画順を基礎から学びたい方はぜひ確認してみてください!
    Unity描画順の教科書

    最後まで読んでいただきありがとうございました!
    すばらしいアニメーション開発ライフをお過ごしください。

    オススメ記事
    検証環境
    • Unity6000.0.32.f1