스테이트 머신 기초
스테이트 머신 트랜지션

애니메이션 파라미터

애니메이션 파라미터는 애니메이션 컨트롤러 내에서 정의된 변수로서, 스크립트를 통해 값을 할당하거나 접근할 수 있습니다. 따라서 스크립트로 스테이트 머신의 흐름에 영향을 주거나 제어할 수 있게 됩니다.

예를 들어, 파라미터 값이 animation curve에 의해 갱신될 수 있고, 또한 스크립트를 통해 접근할 수 있으므로 사운드 효과의 피치같은 것을 마치 애니메이션의 부분처럼 변경시킬 수 있습니다. 마찬가지로 이 스크립트는 Mecanim 의해 선택되는 파라미터의 값도 설정할 수 있습니다. 예를 들어, 스크립트는 Blend Tree를 제어하는 파라미터를 설정할 수 있습니다.

디폴트 파라미터 값은 애니메이터 창의 왼쪽 아래에 있는 파라미터 섹션을 사용하여 설정할 수 있습니다. 기본적으로 4개의 파라미터 유형이 있습니다:

  • Int - 정수
  • Float - 소수 부분이 있는 숫자
  • Bool - true 또는 false 값 (represented by a checkbox)
  • Trigger - 트랜지션에 의해 쓰여지면 컨트롤러에 의해 리셋되는 불리언 파라미터 (represented by a circle button)

파라미터는 Animator 클래스의 함수들을 사용하여 스크립트에서 그 값을 할당할 수 있습니다: SetFloat, SetInt(../ScriptReference/Animator.SetInteger.html), SetBool(../ScriptReference/Animator.SetBool.html), SetTrigger, ResetTrigger.

아래의 코드는 사용자 입력과 충돌 감지에 따라 파라미터를 수정하는 스크립트 예제입니다.

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");
        }
    }
}


스테이트 머신 기초
스테이트 머신 트랜지션