[Unity] 애니메이터(Animator) 정리

Lumos Velog·2025년 7월 3일
0

Animator

유니티에서 애니메이터(Animator)는 3D 및 2D 오브젝트에 애니메이션을 제어하기 위해 사용하는 컴포넌트이다. 애니메이터는 애니메이션 컨트롤러(Animator Controller)와 연동하여 여러 가지 애니메이션 상태와 전환을 관리한다. 단순히 그림을 교체하는 애니메이션뿐만이 아니라 시간단위의 동작들을 정의한다고 볼 수 있다.




구성 요소

  • Animator Controller
    여러 애니메이션 클립과 상태(State), 그리고 상태 간의 전환(Transition)을 정의하는 에셋

  • Animation Clip
    실제로 오브젝트의 움직임을 정의하는 데이터

  • Parameters
    애니메이션 상태 전환에 사용할 수 있는 값들이다. (예: Bool, Int, Float, Trigger)

  • Layers
    여러 애니메이션 레이어를 사용하여 복잡한 애니메이션을 구현할 수 있다.

  • Avatar
    모델의 리깅 정보를 담고 있으며, 애니메이션 데이터가 적용될 구조를 결정한다.




이벤트(Animation Event)

애니메이션 이벤트는 애니메이션 클립의 특정 프레임에서 함수(메서드)를 호출할 수 있도록 하는 기능이다. 주로 캐릭터의 공격 타이밍, 효과음 재생, 이펙트 실행 등 타이밍이 중요한 동작을 제어할 때 사용한다.

  • 애니메이션 클립 선택
    Project 창에서 Animation Clip을 더블클릭하여 Animation 창을 연다.

  • 이벤트 추가
    Animation 창의 타임라인에서 특정 프레임에 우클릭 → "Add Animation Event" 선택.

  • 함수 입력
    Inspector에서 호출하고자 하는 함수명을 입력한다.
    해당 함수는 애니메이션이 적용된 오브젝트의 스크립트에 public 메서드로 작성해야 한다.

public void OnAttackEvent()
{
    // 공격 이펙트 재생 등 원하는 동작 구현
}

함수는 public이어야 하며, 파라미터로 float, int, string, Object 한 가지만 받을 수 있다. (파라미터 없이도 가능)

애니메이션 이벤트는 재생 중에만 동작한다.




State

애니메이션 State란 Animator Controller 내에서 정의된 개별 애니메이션의 묶음 상태를 의미한다. 각 상태는 하나의 애니메이션 클립과 연결되며, 캐릭터의 동작(Idle, Run, Jump 등)을 구분하는 단위가 된다.

기본적으로 애니메이션 클립을 등록하는 방법과 동일하나, 조금 더 시각적으로 깔끔하게 나타내서 문제를 미연에 방지 할 수 있다.




생성

  • Animator Controller 생성
    프로젝트 패널에서 우클릭 → Create → Animator Controller 선택.

  • Animator 컴포넌트 추가
    원하는 오브젝트 선택 후 Inspector에서 Add Component → Animator 선택.

  • 애니메이션 클립 추가
    Animator Controller를 더블클릭하여 Animator 창에서 애니메이션 클립을 상태(State)로 추가.

  • 파라미터 등록 및 상태 전환
    Animator 창에서 Parameters 탭에서 파라미터를 추가하고, 상태 간의 전환 조건(Conditions)을 설정.




스크립트 작성

스크립트에서 제어할 때는 다음과 같이 Animator 컴포넌트를 가져와 파라미터 값을 변경할 수 있다.

Animator animator;
void Start()
{
    animator = GetComponent<Animator>();
}
void Update()
{
    animator.SetBool("isRun", true); // Bool 파라미터를 true로 설정
    animator.SetFloat("Speed", 1.0f); // Float 파라미터 값 설정
    animator.SetTrigger("Jump"); // Trigger 파라미터 발동
}



주의 사항

  • 오브젝트에 Animator 컴포넌트와 Animator Controller가 제대로 연결되어 있는지 확인 필요.

  • 파라미터 값과 Transition 조건을 다시 확인.

  • Trigger는 한 번 발동 후 자동으로 초기화됨을 유의해야 함.

  • 이벤트 함수는 public이어야 하며, 파라미터로 float, int, string, Object 한 가지만 받을 수 있다.

0개의 댓글