유니티에서 애니메이터(Animator)는 3D 및 2D 오브젝트에 애니메이션을 제어하기 위해 사용하는 컴포넌트이다. 애니메이터는 애니메이션 컨트롤러(Animator Controller)와 연동하여 여러 가지 애니메이션 상태와 전환을 관리한다. 단순히 그림을 교체하는 애니메이션뿐만이 아니라 시간단위의 동작들을 정의한다고 볼 수 있다.
Animator Controller
여러 애니메이션 클립과 상태(State), 그리고 상태 간의 전환(Transition)을 정의하는 에셋
Animation Clip
실제로 오브젝트의 움직임을 정의하는 데이터
Parameters
애니메이션 상태 전환에 사용할 수 있는 값들이다. (예: Bool, Int, Float, Trigger)
Layers
여러 애니메이션 레이어를 사용하여 복잡한 애니메이션을 구현할 수 있다.
Avatar
모델의 리깅 정보를 담고 있으며, 애니메이션 데이터가 적용될 구조를 결정한다.
애니메이션 이벤트는 애니메이션 클립의 특정 프레임에서 함수(메서드)를 호출할 수 있도록 하는 기능이다. 주로 캐릭터의 공격 타이밍, 효과음 재생, 이펙트 실행 등 타이밍이 중요한 동작을 제어할 때 사용한다.
애니메이션 클립 선택
Project 창에서 Animation Clip을 더블클릭하여 Animation 창을 연다.
이벤트 추가
Animation 창의 타임라인에서 특정 프레임에 우클릭 → "Add Animation Event" 선택.
함수 입력
Inspector에서 호출하고자 하는 함수명을 입력한다.
해당 함수는 애니메이션이 적용된 오브젝트의 스크립트에 public 메서드로 작성해야 한다.
public void OnAttackEvent()
{
// 공격 이펙트 재생 등 원하는 동작 구현
}
함수는 public이어야 하며, 파라미터로 float, int, string, Object 한 가지만 받을 수 있다. (파라미터 없이도 가능)
애니메이션 이벤트는 재생 중에만 동작한다.
애니메이션 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 한 가지만 받을 수 있다.