ステートマシンの基本
State Machine Transition

アニメーションパラメーター

アニメーションパラメーターは Animator Controller 内で定義され、スクリプトからアクセスしたり値を割り当てることができる変数です。スクリプトをどのように制御するか、もしくはどのようにステートマシンの一連の流れに作用するかを定義します。

例えば、パラメーターの値は アニメーションカーブ と、サウンドエフェクトのピッチを変更するためにスクリプトからアクセスすることができます。同様に、スクリプトは Mecanim によってピックアップされるパラメーターの値も設定することができます。スクリプトは ブレンドツリー を制御するパラメーターを設定することができます。

デフォルトのパラメーター値は、アニメーターウィンドウのパラメーター項目の右上にある + ボタンを使って設定を行うことができます。基本的には 4 つのパラメーターがあります。

  • Int - 整数
  • Float - 小数部分を持つ数値
  • Bool - true、false の値 (チェックボックスで表現されています)
  • Trigger - 遷移によって消費されたときコントローラーによってリセットされる boolean パラメーター(丸ボタンで表現されています)

パラメーターはアニメータークラスの関数を使用してスクリプトから値を割り当てることができます。 SetFloatSetIntSetBoolSetTriggerResetTrigger

以下は、ユーザー入力に基づいてパラメーターを変更するスクリプトの例です。

using UnityEngine;
using System.Collections;

public class SimplePlayer : MonoBehaviour {
    
    Animator animator;
    
    // 初期化に使用します
    void Start () {
        animator = GetComponent<Animator>();
    }
    
    //Update は各フレームに 1 度ずつ呼び出されます
    void Update () {
        float h = Input.GetAxis("Horizontal");
        float v = Input.GetAxis("Vertical");
        bool fire = Input.GetButtonDown("Fire1");

        animator.SetFloat("Forward",v);
        animator.SetFloat("Strafe",h);
        animator.SetBool("Fire", fire);
    }

    void OnCollisionEnter(Collision col) {
        if (col.gameObject.CompareTag("Enemy"))
        {
            animator.SetTrigger("Die");
        }
    }
}


ステートマシンの基本
State Machine Transition