ニュース

Top  >   22. アニメーション・Timeline  >   Q, キャラクターの歩きと走りを滑らかにつなげたい

Q, キャラクターの歩きと走りを滑らかにつなげたい

2026/03/18

メインコンテンツへスキップ
< すべてのカテゴリに戻る

A,結論

「Blend Tree(ブレンドツリー)」を使います。
 Animatorの遷移だけでは急な切り替わりになりますが、Blend Treeなら速度に応じて中間の動きを合成できるためです。

実装 / 手順

  1. Animatorウィンドウで右クリック>Create State>From New Blend Treeを作成し、パラメータで制御します。
  2. サンプルコードでは、移動入力から得られる速度を Mathf.SmoothDamp で滑らかに補間し、その値を Animator の Speed パラメータに渡しています。

サンプルコード

using UnityEngine;

[RequireComponent(typeof(Animator))]
public class LocomotionAnimatorController : MonoBehaviour
{
    [SerializeField] private string speedParameter = "Speed";
    [SerializeField] private float blendSmoothTime = 0.1f;

    private Animator _animator;
    private float _currentSpeed;
    private float _velocity;

    private void Awake()
    {
        _animator = GetComponent<Animator>();
    }

    public void SetMoveAmount(float targetSpeed)
    {
        _currentSpeed = Mathf.SmoothDamp(_currentSpeed, targetSpeed, ref _velocity, blendSmoothTime);
        _animator.SetFloat(speedParameter, _currentSpeed);
    }
}

※ 実機確認が必要な項目は、Editor だけで判断せず対象デバイスでも必ず動作確認してください。

難易度:Level 3(中級)
対象プラットフォーム:PC,Android,iOS,Unity
関連キーワード:アニメーション,ブレンド,滑らか,遷移

Level 1-2 向けバナーLevel 3-5 向けバナー 1Level 3-5 向けバナー 2