상태 머신 기초(State Machine Basics)
상태 머신 전환

애니메이션 파라미터(Animation Parameters)

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

예를 들어, 파라미터의 값을 애니메이션 커브로 업데이트 하고, 스크립트에서 접근하면 음향 효과의 높이를 다양화하여 애니메이션의 일부로 보이게 할 수 있습니다. 이와 비슷하게, 스크립트는 메카님이 선택할 수 있는 파라미터 값을 설정할 수 있습니다. 예를 들어, 스크립트는 파라미터가 블렌드 트리를 제어하도록 설정할 수 있습니다.

기본 파라미터 값은 애니메이터 창의 우측 상단에서 선택할 수 있는 파라미터 영역에서 설정할 수 있습니다. 파라미터 값은 다음의 네 가지 기본 타입 중 하나여야 합니다.

  • Int - 정수(범자연수)
  • Float - 소수점 숫자
  • Bool - 참 또는 거짓 값(체크박스로 나타남)
  • Trigger - 전환(또는 전이)이 되었을 경우 컨트롤러에 의해 초기화되는 boolean 파라미터(원형 버튼으로 나타남)

파라미터는 Animator 클래스의 SetFloat, SetInt, SetBool, SetTriggerResetTrigger 등의 함수를 사용하여 스크립트로 부터 값을 할당 받을 수 있습니다.

다음은 사용자 입력 값과 충돌 검사에 기반하여 파라미터를 수정하는 스크립트 예제입니다.

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


상태 머신 기초(State Machine Basics)
상태 머신 전환