アニメーションを同じステート内でブレンドしながら変更する方法です。
複数のアニメーション間を0-1の数値で表現できるのでいろいろと便利です。
まずは新しいステートを作ります。ここではRun_endとしました。
作成したステートを右クリック->Create BlendTree in State を選択します
するとMotionのところがBlend Tree になるので、これをダブルクリック
+ボタン-Add Motion Field を押してモーションを追加します
モーションを追加すると自動的にブレンドパラメーターを設定してくれます。
アニメーションのブレンドは"Blend"というパラメータを変更することで行います。
animator.SetFloat("Blend", [0f-1f]);
アニメーションのあるオブジェクトに下記を張り付けて
moveSpeedスライダーバーを動かすとモーションが滑らかにブレンドします。
AnimationBrendTreeTest.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AnimationBrendTreeTest : MonoBehaviour
{
[SerializeField,Range(0,1)] float m_moveSpeed=0f;
Animator m_animator;
// Start is called before the first frame update
void Start()
{
m_animator = GetComponent<Animator>();
}
// Update is called once per frame
void Update()
{
m_animator.SetFloat("Blend", m_moveSpeed);
}
}