ニュース

Top  >   22. アニメーション・Timeline  >   Q, キャラクターの「歩き」と「走り」を速度に合わせて滑らかに変えたい

Q, キャラクターの「歩き」と「走り」を速度に合わせて滑らかに変えたい

2026/03/18

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

A,結論

「Blend Tree(ブレンドツリー)」を使用します。

原因 / 背景

  • 2つのアニメーションを、パラメータの数値(速度など)に応じて中間の動きを合成できるためです。
  • 見た目の問題に見えても、Controller やパラメータ設計が原因のことが多いです。

実装 / 手順

  1. Animatorウィンドウで右クリック>Create State>From New Blend Treeを作成し、2つのモーションを登録します。
  2. Animation Clip、Animator Controller、遷移条件を順番に確認してください。

サンプルコード

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 3-5 向けバナー 1Level 3-5 向けバナー 2