【Unity】アニメーションクリップのプロパティを理解する


冒頭_アニメーションクリッププロパティ1

以前の記事で「Loop Matchインジケータ」について触れた際に、さらっとアニメーションクリップのプロパティについて扱いました。よろしければ以下の記事も合わせてご覧になっていただけると幸いです。

【Unity】Blenderで作成したアニメーションのループをスムーズにする方法

今回は各種プロパティについて検証、解説を行い理解を深めていこうと思います。

プロパティ_インスペクター
プロパティ各種

*アニメーションクリップを用いた簡単なアニメーション作成については以下の記事をご覧ください。

【Unity】アニメーションクリップを用いてオブジェクトを動かす方法

本稿は以下の記事様を参考にさせていただいております

UnityのAnimationClipのルートモーションの設定

 

公式のマニュアルはこちら

 

ユニティちゃんライセンス
本稿はユニティちゃんライセンス条項の元に提供されています。

下準備

今回は以下のアセットに含まれているアニメーションクリップを用いています。

アセット_参考画像
Mixed Motion

Mixed Motion

アニメーションクリップ_アセット_参考画像2
Raw Mocap Data for Mecanim

Raw Mocap Data for Mecanim

比較のためアニメーションを入れて動かすオブジェクトを2つ用意します。今回はUnityちゃんを2人並べて配置します。

下準備_Unityちゃん2人
UnityちゃんNo.1、No.2

次にアニメーターコントローラーを2つ用意します。追加手順はProjectウィンドウより[Create]->[Animator Controller]の手順です。

アニメーターコントローラー追加手順
アニメーターコントローラー追加手順

詳しい使用方法は以下の記事をご覧ください。

【Unity】Animator Controllerを用いたアニメーション切り替え方法

アニメーターコントローラー内の構成は以下の通りです。

アニメーターコントローラー_内部_配置
アニメーターコントローラー構成

今回は基本的にUnityちゃんNo.1のプロパティを調整して検証を行っていきます。

Loop Time

LoopTime_プロパティ

「Loop Time」は名前の通りアニメーションをループさせるものです。

LoopTime_比較
LoopTime 比較

チェックを入れた方のみループ変遷しています。

*LoopTimeの効果をわかりやすくするためアニメーターコントローラーにおける、Transitionの「Has Exit Time」を外しています。

Loop Pose

続いて「Loop Pose」です。これはアニメーションのループ変遷を滑らかにするものです。

LoopPose_比較
Loop Pose 比較

Unityちゃんのがループ変遷する際の顔の向きに注目してみてください。No.1のループ変遷の滑らかさがわかると思います。

Cycle Offset

アニメーションを特定のタイミングで始めたい場合こちらの数値を設定します。

数値の範囲は「0~1」です。今回は0.3で設定しています。

Loop_CycleOffset_比較
Cycle Offset 比較

アニメーションが30%程変遷した時のポーズがスタートの状態であることが確認できます。

Root Transform Rotation

Root Transform Rotation_プロパティ

アニメーションの回転の制御に関するプロパティです。

Bake Into Pose

Bake Into Pose」にチェックを入れるとオブジェクトの向きが、アニメ―ションによる回転に左右されなくなります。

Rotation_Bake Into Pose ON_比較
Bake Into Pose ON 比較

Loop Time」の例でもお気づきの方もいらっしゃるかもしれません。角度の付くアニメーションをループさせた時、「Bake Into Pose」で固定しない限り、アニメーション終了時のポーズ角度から次のアニメーションをスタートさせます。

注意して設定を行いましょう。

Based Upon・Offset

Based Upon」はルートが何に基づいて回転していくのかを設定するものです。

  • Original→アニメーションクリップの設定通り
  • Body Orientation→ボディの前方ベクトルに合わせる
Rotation_Based Upon_比較
Based Upon 比較

No.1の方がボディを前方に向けることを最優先にしているため少し傾いていることがわかります。

 

Offset」はルートの回転のオフセット値です。設定するとオブジェクトがその角度分向きを変えた状態でアニメーションがスタートします。

Offsetを「90」に設定したものが以下の通りです。

Rotation_Offset90_比較
Offset90 比較

UnityちゃんNo.1が90°向きを変えた状態でアニメーションが開始していることがわかります。

Root Transform Position(Y)

Root Transform Position(Y)_プロパティ

Root Transform Position(Y)」はアニメーションにおけるY軸座標上の制御に関するプロパティです。シーンビューでは少しわかりづらいのでアニメーションクリップのサンプル画面も交えて確認していきます。

Bake Into Pose

チェックを入れるとアニメーションの基準点が固定され、アニメーションによるY軸座標の変化がなくなります

Root Y_Bake Into Pose_比較
Bake Into Pose 比較

見た目上はオブジェクトが縦に移動しているように見えても、ルートポジションは0のままです。基準のポジションが変わることはありません。

サンプル画面で確認してみます。

*基準点はオブジェクトの下にあるサークルのことを指します。

「Bake Into Pose」が有効化されている場合は基準点は変化しません無効化されている場合はオブジェクトと一緒に基準点も変化していることがわかります。

ループアニメーションをつくっているとアニメーションが上下に逸れていったりするケースがあります。そういった際に有効化するとアニメーションの矯正ができます。

高さが変化するアニメーション(ジャンプ等)を制御する際はチェックを外しておくといいでしょう。というのは仮にコライダーがついていた場合、思わぬあたり判定が発生してしまう恐れがあるためです。

Bake Into Pose (Y)例:コライダー
Bake Into Pose (Y)例:コライダー

オブジェクトはよけているように見えても、コライダーの高さは変わらないためです。

Based Upon・Offset

Based Upon」はY軸座標の基準点が何に基づいているかを設定するプロパティです。種類としては以下の3つです

  • Original→アニメーションクリップのデフォルト設定
  • Center of Mass→重心
  • Feet→足元

Offset」はアニメーションクリップの高さを調整できます。

-1で上方+1で下方に位置が変化していくので注意して設定して下さい。

Root Transform Position(XZ)

Root Transform Position(X,Z)_プロパティ

Root Transform Position(XZ)」はアニメーションのにおけるX,Z軸座標上の制御に関するプロパティです。ここでもアニメーションクリップのサンプル画面を確認していきます。

Bake Into Pose

有効にすると、Y軸同様アニメーション基準点が固定され、アニメーションによるX,Z軸座標の変化がなくなります

Root XZ_Bake into pose_比較(solo)
Bake into pose(XZ)

Y軸の時と同様に、見た目上はオブジェクトが移動しているように見えても、ルートポジションは変化しません

サンプル画面で確認してみます。

これもY軸の時と同様に、Bake Into Poseが有効化されている場合は基準点は変化しません。無効化されている場合はオブジェクトと一緒に基準点も変化していることがわかります。

アニメーションをループさせてみるとわかりやすいです。

Root XZ_Bake into pose ON OFF_ループ比較1
Bake into pose ON OFF ループ比較

基準点が変わらない場合は、1回1回初期位置に戻ってアニメーションループを行います。それに対し基準点が変化し続ける場合はオブジェクトが前方に進み続けていることが確認できます。

Based Uponの種類はRoot Transform Position(Y)と同様です。

Mirror

Mirrorはその名の通りアニメーションを反転するプロパティです。

Mirror_ON
Mirror

UnityちゃんNo.1とNo.2がそれぞれ対称のアニメーション変遷を行っていることが確認できます。

まとめ

いかがでしたでしょうか。今回はアニメーションクリップのプロパティについてご紹介してきました。

各プロパティについて1つ1つ紹介してきましたが、もちろん組み合わせて効果を発揮するケースも多く存在します。

アニメーションに違和感を感じた際には今回ご紹介したプロパティの調整を行ってみてください。意外と簡単に問題が改善されるかもしれません。


アイキャッチ_アニメーションクリッププロパティ

この記事はいかがでしたか?よければシェアをお願いします。

Massuuuu