Version: Unity 6.0 (6000.0)
言語 : 日本語
アニメーションステート
ステートマシンの遷移

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

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

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

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

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

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

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

using UnityEngine;
using System.Collections;

public class SimplePlayer : MonoBehaviour {
    
    Animator animator;
    
    // Use this for initialization
    void Start () {
        animator = GetComponent<Animator>();
    }
    
    // Update is called once per frame
    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");
        }
    }
}


アニメーションステート
ステートマシンの遷移