Contents

[유니티 내가 볼려고 정리]애니메이션

   Jun 1, 2023     2 min read     - Comments

유니티 메카님 (Unity Mecanim)


유니티의 메카님은 애니메이션 시스템으로, 게임 캐릭터의 동작을 관리하고 제어하는 데 사용됩니다. 이것은 게임 개발자들이 캐릭터 애니메이션을 손쉽게 구현하고 관리할 수 있도록 해줍니다.


기본 개념


  • 메카님은 유니티의 애니메이션 시스템으로, 애니메이션을 제어하기 위해 사용됩니다.
  • 애니메이션 클립들을 상태 기계(State Machine)라고 불리는 구조로 관리합니다.
  • 상태 기계는 다양한 애니메이션 상태와 상태 전환을 정의하며, 캐릭터 동작을 제어하는 핵심 요소입니다.


애니메이션 컨트롤러


  • 애니메이션 컨트롤러는 애니메이션 클립들을 관리하고 제어하는 데 사용됩니다.
  • 유니티 에디터에서 애니메이션 컨트롤러를 생성하고, 상태 기계를 설정하며, 각 상태에 애니메이션 클립을 연결할 수 있습니다.
  • 상태 간의 전환을 제어하는 조건들도 설정할 수 있습니다.

애니메이션 컨트롤러 생성


상태 기계 (State Machine)


  • 상태 기계는 애니메이션 상태와 상태 전환을 정의하는 그래프 구조입니다.
  • 각 상태는 특정한 애니메이션 클립을 가지며, 해당 상태로 진입하기 위한 조건을 설정할 수 있습니다.
  • 상태 기계를 통해 캐릭터의 동작을 논리적으로 제어하고, 여러 상태 간의 전환을 자연스럽게 처리할 수 있습니다.

상태 기계


애니메이션 블렌딩 (Animation Blending)


  • 애니메이션 블렌딩은 두 개 이상의 애니메이션 클립을 혼합하여 자연스러운 전환 효과를 만들어줍니다.
  • 유니티에서는 블렌드 트리 (Blend Tree)라는 기능을 통해 다양한 애니메이션 클립들을 혼합하고 가중치를 조절할 수 있습니다.
  • 블렌드 트리를 사용하여 캐릭터의 동작을 다양하게 변화시킬 수 있습니다.


파라미터 (Parameters)


  • 상태 기계 내에서 사용되는 파라미터들은 애니메이션 전환을 제어하는 데 사용됩니다.
  • 예를 들어, 캐릭터의 이동 속도에 따라 걷는 동작과 달리는 동작을 전환하기 위해 “Speed”라는 파라미터를 사용할 수 있습니다.
  • 파라미터들은 코드에서 제어하거나, 유니티 에디터의 애니메이션 컨트롤러에서 조작할 수 있습니다.


3D 애니메이션


  • 원스킨 모델 (One-Skin Model) 모델의 표면에 하나의 스킨 혹은 텍스처를 적용하는 방식입니다. 이를 통해 모델의 외형을 정의하고 색상, 질감 등을 나타낼 수 있습니다. 원스킨 모델은 간단하고 경제적인 방법으로 모델링을 구현할 수 있으며, 주로 단순한 형태의 오브젝트나 캐릭터에 사용됩니다.

  • 스켈레톤 애니메이션 (Skeleton Animation) 3D 모델의 움직임을 제어하기 위해 사용되는 기술입니다. 이는 모델에 뼈대와 관절 구조를 부여하여 모델의 각 부분을 제어하고, 애니메이션을 생성합니다. 스켈레톤 애니메이션은 각 관절의 회전과 이동을 조작하여 캐릭터나 오브젝트가 자연스럽게 움직이도록 만듭니다.

  • 리깅 (Rigging) 3D 모델에 스켈레톤을 적용하는 과정으로, 모델을 움직일 수 있는 뼈대와 관절 구조를 생성합니다. 이를 통해 모델의 다양한 부분을 제어하고 애니메이션을 생성할 수 있습니다. 리깅은 모델의 각 부분에 가중치를 할당하여 뼈대의 움직임에 따라 부분적인 변형을 적용합니다. 이러한 가중치 맵핑을 통해 스켈레톤 애니메이션을 통해 모델을 움직일 수 있습니다. 리깅은 정확하고 자연스러운 애니메이션을 만들기 위해 중요한 단계입니다.


아바타


매핑

매핑

유니티는 정한 규칙의 인간형 스켈레톤일 경우 자동 적용된다.

애니메이션 합성


project창에서 Create - Avatar Mask를 눌러 생성한다. 아바타 마스크는 애니메이션 사용할 부분만 정할 수 있다. 예를 들어 총을 사용하는 부분은 상반신만 필요하므로 아래 그림처럼 적용할 수 있다.

Avatar Mask

Animator창에서 +를 눌러 새로운 레이어를 만든다. 위에서 만든 Avatar Mask를 Mask 부분에 적용 시킬 수 있다.


IK(Inverse Kinematics)


컴퓨터 그래픽과 애니메이션에서 원하는 엔드 이펙터 위치에 따라 오브젝트의 위치와 방향을 결정하는 데 사용되는 또 다른 기법입니다. 애니메이션에서 IK는 일반적으로 캐릭터의 팔다리나 환경과 상호작용하는 오브젝트의 동작을 제어하는 데 사용됩니다.

IK에서 애니메이터가 엔드 이펙터의 원하는 위치 및 방향(예: 손 또는 발)을 지정하면 IK 솔버가 해당 위치에 도달하기 위해 필요한 조인트 회전을 계산합니다. 애니메이터는 개별 조인트를 조작하는 대신 최종 포즈에 집중할 수 있으므로 보다 자연스럽고 사실적인 모션을 구현할 수 있습니다.

IK는 손을 뻗거나 잡거나 오브젝트와 상호작용하는 등의 작업을 애니메이션화할 때 특히 유용합니다. 특정 신체 부위를 더 유연하게 제어할 수 있어 복잡한 모션과 상호작용을 더 쉽게 애니메이션화할 수 있습니다.