Animator ControllerのLayerを使ってモーションを一部だけブレンドしたり加算したりする方法をまとめます。
- Animator ControllerのLayerとは?
- Overrideブレンドで一部のボーンだけを他のモーションに置き換える
- Additiveブレンドで再生中のモーションに他のモーションを加算する
- 関連
Unity2019.1.10
Animator ControllerのLayerとは?
Animator ControllerにはLayersというタブがあり、ここからアニメーションの「レイヤー」を追加できます。
レイヤーには大きくの機能二つあります。
一つ目は一部のボーンだけを他のモーションに置き換える機能です。
つまり「上半身だけを他のモーションに差し替える」といったことができます。
もう一つは再生中のモーションに他のモーションを加算する機能です。
Overrideブレンドで一部のボーンだけを他のモーションに置き換える
さてAnimator ControllerのLayerにはBlendingという設定項目があります。
これをOverrideにすると一部のボーンだけを他のモーションに差し替えることができます。
Overrideモードの具体的な設定手順については、Avatar Maskの知識も必要になってくるため、別の記事で説明しています。
Additiveブレンドで再生中のモーションに他のモーションを加算する
さて次にAdditiveブレンドモードで再生中のモーションにほかのモーションを加算してみます。
いま、走りモーション中にダメージモーションに遷移することを考えます。
レイヤーを用いずに実装すると、次のように一度立ち止まってダメージモーションに遷移します。
場合によってはこれでもいいかもしれませんが、立ち止まらずにダメージを受けるようにしたい場合には不適切です。
このような場合、BlendingをAdditiveにしたレイヤーを作成し、このレイヤーでダメージモーションを再生します。
このときWeightはどちらのレイヤーも1に設定しておくことを忘れないようにしてください。
このように設定すると、Baseレイヤーで再生中のモーションに対してAdditiveレイヤーのモーションが加算されます。
したがって次のように走りながらダメージを受けるモーションを再生できます。