Unity/Unity 3D

[Unity 3D] Unity 애니메이션에 대해 알아보자

tangent0426 2024. 7. 31. 19:44
728x90
반응형

Unity를 작업하다가 보면 캐릭터의 움직이는 공격모션을 작업해야 할 시기가 많이 올 수 있습니다. 그만큼 Untiy 3D나 2D에서 애니메이션 게임을 제작하는 데 있어 중요한 작업 중 하나입니다. 이번 시간에는 Unity 애니메이션을 어떻게 적용하는지, 그리고 Unity에서 애니메이션이 무엇인지 알아보도록 하죠

 

애니메이션 개요

 

Unity 애니메이션 시스템은 애니메이션 클럽의 개념에 기반하여 특정 오브젝트의 포지션과 각도, 기타 프로퍼티가 시간에 지남에 따라 어떻게 변화해야 하는지에 대한 정보를 포함하고 있습니다. 또한 Unity가 확장되고 있는 다양한 산업 군 중,애니메이션 영역은 강력한 IP(Intellectual Property)를 기반으로 한 다양한 제작 사례로 주목받고 있는 분야로는 해외에서는 Unity 엔진으로 제작된 디즈니의 Baymax Dreams가 Emmy상을 수상하여 제작 기술로써 Unity 엔진 역시 주목받았었고, 실시간 3D콘텐츠 툴로써 Unity가 가진 가능성을 보여주고 있습니다.

 

애니메이션 클립( Animation Clip)

 

애니메이션 클립(Animation Clip)은 애니메이션 가장 기본단위로 Unity 에디터에서 직접 애니메이션 키를 잡아서 클립을 만드는 방식입니다. 장점으로는 유니티에서 애니메이션 클립을 만드는 것은 비교적 간단한 애니메이션이나 UI 애니메이션을 만들면 쉽기 때문에 사용빈도가 높습니다.

 

애니메이션 컨트롤러는(Animator Controller)

 

애니메이션 컨트롤러(Animator Controller)는 사용할 준비가 된 애니메이션 클립이 있다면 애니메이션을 가져올 컨트롤러가 필요합니다. 대부분의 상황에서는 다수의 애니메이션을 가지고 있으면서 게임상의 조건에 따라서 이들 간의 스위칭이 일어나게 됩니다.(스페이스바를 눌러 걷기 애니메이션에서 점프로 전환이 가능합니다. 그런데 단일 애니메이션 클립을 가지는 경우에도 게임 오브젝트에서는 애니메이션을 사용하기 위해 애니메이터 컨트롤러를 두어야 합니다.)

 

애니메이션 컨트롤러는(Animator Controller)

 

위의 사진은 상태머신을 나타내는 사진으로 애니메이션에서 상태 머신이 중요한 이유는 상대적으로 적은 코딩만으로도 상당히 쉽게 설계 및 업데이트할 수 있기 때문입니다. Unity의 애니메이션 상태 머신은 특정 캐릭터에 관련된 애니메이션 클립 전부를 파악하는 방법과 게임에서 다른 애니메이션을 트리거하기 위한 다양한 이벤트를 구사합니다.

 

 

애니메이션 파라미터(Parameters)는 애니메이터 컨트롤러에서 정의된 변수로서, 스크립트에서 접근하고 값을 할당할 수 있으며 이를 통해 스크립트는 상태 머신을 제어하거나 흐름에 영향을 줍니다. 간단하게 말하자 한 애니메이션에서 다른 애니메이션으로 전환되는 트랜지션이 실행되는 조건의 역할을 합니다.

 

애니메이션 사용법

이제 개요에 설명한 애니메이션 클립(Animation Clip), 애니메이션 컨트롤러(Animator Controller), 애니메이션 파라미터(Parameters)를 이용해서 간단한 애니메이션을 구현해 보겠습니다.

 

우선 애니메이션 클립을 이용해서 도형을 움직이는 간단한 애니메이션을 구현해보겠습니다.

 

 

3D Object – Cube로 오브젝트 생성 후 크기를 조절하여 카메라 앞에 고정합니다.

Inspector창 Animation 컴포넌트 생성합니다.

 

 

애니메이션 클립을 생성합니다.

 

 

애니메이션 클립 창에서 Add Property버튼을 눌러 Transform – Rotation 추가하여

 동작을 만들어줄 프로버티를 추가합니다.

 

 

타임라인의 0 초점과 1분에 마름모 꼴이 추가합니다.

 

0

 

간단한 애니메이션이 추가된 것을 볼 수 있습니다.

 

이번에는 애니메이션 상태전환을 통해서 애니메이션을 구현해 보겠습니다.

 

우선 애셋이나 본인이 생성한 플레이어 물체를 설치하여 Inspector 창에서 Animator 컴포넌트 생성 후 애니메이션 아바타 삽입해 줍니다.(저는 FBX 모델을 가져와서 사용하겠습니다. FBX 모델은 다음에 설명해 드리겠습니다.)

 

 

가져온 모델에서 Rig 태그를 변경하고 Animation Type모드에서 Humanoid로 태그를 변경하고 Apply으로 설정해 줍니다.

 

 

Inspector 창에서 Animator 컴포넌트에 애니메이션 컨트롤러 생성 후 삽입합니다.

 

 

애니메이션 컨트롤러 창으로 들어와 각 노드 4개 생성합니다.

 

 

Inspector창 Motion에서 다운로드한 애니메이션 클립을 삽입해 줍니다.

 

 

노드를 클릭하여 Make Transition으로 각 노드를 연결 및 설정해 줍니다.

 

0

이제 애니메이션 상태가 들어가 있는 것을 볼 수 있습니다.

 

간단한 애니메이션 구동되는 것을 볼 수 있었습니다. 다음에는 에셋인 FBX모델을 이용해서 에셋을 이용한 다양한 애니메이션을 만들어 보겠습니다.

 

읽어주셔서 감사합니다. 구독 부탁드려요^>^

반응형