유니티 애니메이션 – 유니티로 게임을 만들기 위해서는 애니메이션을 구현해야만 합니다. 게임 안에서 동적으로 움직이는 게임 오브젝트들 대부분이 애니메이션을 가지고 있기 때문입니다.

2D슈팅 게임에서 비행선이 움직일 때도 그냥 화면 좌표상의 위치만 변경되는 것이 아니라 비행선이 왼쪽으로 움직일 때는 왼쪽으로 약간 기우는 애니메이션이, 그리고 오른쪽으로 움직일 떄는 역시 비행선이 오른쪽 방향으로 기우는 듯한 애니메이션 효과가 적용되어야 더 게임이 실감이 납니다.

몬스터나 플레이어 캐릭터와 같은 생물형 캐릭터나 로봇과 같은 인공적인 형태의 캐릭터가 움직일 때도 역시 애니메이션이 필요합니다. 

두 개의 애니메이션 관련 유니티 컴포넌트

그런데 이러한 애니메이션을 이용하기 위해 컴포넌트를 찾아 보면 애니메이 컴포넌트 (Animation Component)와 애니메이 컴포넌트 (Animator Component)라는 두 개의 비슷한 이름을 가진 컴포넌트가 존재하는 것을 알 수 있습니다. 둘 다 애니메이션과 관련된 것 같은데 도대체 어떤 것을 사용해야 할까요?

유니티 애니메이션 컴포넌트 (Animation)

우선 애니메이션 (Animation) 컴포넌트에 대해 알아 보겠습니다. 유니티 엔진의 발전 단계를 염두에 두고 보면 애니메이션 컴포넌트는 비교적 오래 전부터 존재했습니다. 이 컴포넌트는 유니티의 게임 오브젝트에 직접 붙여서 사용합니다. 그런 다음 이 컴포넌트의 속성으로 다양한 애니메이션 클립을 직접 붙여서 사용할 수 있게 되어 있습니다. 

유니티 애니메이션 컴포넌트
애니메이션 컴포넌트 – 출처: 유니티 매뉴얼

이는 유니티가 현재 사용하고 있는 최신 애니메이션 시스템이 도입되기 전에 사용했던 방식입니다. 오래된 방식이기 때문에 사실은 최신 유니티 버전에서는 없애도 되겠지만 오래된 유니티 버전으로 만든 게임과의 하위 호환성 (backward-compatibility) 때문에 그대로 놔둔 것입니다. 따라서 특별한 이유가 없다면 유니티에서 애니메이션을 구현할 때 이 오래된 방식을 사용할 필요는 없습니다.

유니티 애니메이터 컴포넌트 (Animator)

유니티에서 권장하는 애니메이션 구현용 컴포넌트는 바로 이 애니메이터 (Animator) 컴포넌트입니다. 애니메이터 컴포넌트는 (앞에서 설명한 구버전의) 애니메이션 컴포넌트와 달리 애니메이션 클립(clip)을 직접 연결해서 사용하지 않습니다. 대신 애니메이터 컨트롤러 (Animator Controller) 라는 이름을 가진 특별한 애니메이션 제어용 에셋을 연결해서 사용하도록 되어 있습니다. 

유니티 애니메이터 컴포넌트
애니메이터 컴포넌트 – 출처: 유니티 매뉴얼

이 애니메이터 컨트롤러는 다음과 같은 역할을 합니다.

  • 어떤 클립(animation clip)들을 사용해야 하는지를 지정
  • 게임 오브젝트의 상태 변화에 따른 자동적인 애니메이션 교체와 관련한 규칙 지정
  • 두 개의 애니메이션을 서로 섞어서 자연스러운 전환을 만들어내기 위한 애니메이션 블랜딩에 관한 설정

따라서 유니티 애니메이터 컴포넌트를 사용하기 위해서는 반드시 이 컨트롤러를 만들고 셋업해야만 합니다. 사용 방법은 구버전에 비해 다소 복잡해 보이지만 훨씬 강력한 기능을 가지고 있습니다. 따라서 사용 방법을 잘 익혀 두시는 것이 좋을 것입니다.

더 공부할 자료 - 개발 능력 다양화를 위한 학습의 필요성

유니티 엔진의 대안으로서, 인디 개발자들에게 선풍적인 인기를 끌고 있는 엔진이 바로 고도 엔진입니다. 혹시 고도 엔진을 배워 보려고 하신다면, 다음의 온라인 강의를 체크해 보시기 바랍니다.

초보자를 위한 고도엔진 게임 개발 입문