ecsimsw

Mecanim 본문

Mecanim

JinHwan Kim 2019. 2. 23. 22:50

Animation - Mecanim

- 유니티에서 애니메이션을 지원하는 두가지 방식 (Legacy Animation / Mecanim Animation) 중 Mecanim 방식으로 애니메이션을 다루는 방법을 공부하였다.
  • Legacy Animation
    - legacy는 메카님 애니메이션이 도입되기 이전에 사용된, 3D Animation Tool에서 제작한 애니메이션을 다루는 방식이다. 유니티 Docs에서는 새로운 프로젝트의 경우 Mecanim 방식을 사용하도록 권장하고 있으나 빠른 속도로 인해 아직도 많이 사용되고 있다.
  • Mecanim Animation
    - Mecanim은 legacy보다 이후에 지원되는 애니메이션 제어 시스템이다. 메카님은 휴머노이드형 모델의 뼈대를 기준으로 애니메이션을 동작시켜, 뼈대 구조만 일치하면 다른 모델도 바로 적용이 가능한 "리타겟팅" 기능이 제공된다.

      이와달리 휴머노이드형 모델이 아닌 비인간형 모델 역시 리타겟팅 없이, 메카님 방식으로 처리할 수 있는데 이는 Generic animation 이라고 하여 Animation 타입을 선택하여 진행한다.

  • Humanoid
    - 인간형 모델의 애니메이션을 처리하려면 인스펙터의 rig에서 type을 humanoid로 해야한다. 뼈대 매칭이 성공하면 configure 옆에 체크가, 실패하면 x 모양이 표시된다.
      configure를 누르면 아바타 모델의 뼈대를 매핑하는 정보를 불러오고 수정할 수 있다. 실선으로 둘러싸인 원은 necessary bone, 점선으로 뚤러싸인 원은 optional bone을 의미한다.

      Mapping 옆의 Muscles & setting 을 누르면 관절을 미리 움직여 볼 수 있다.
  • Animator / Controller
    - Animator 컴포넌트는 게임 오브젝트가 어떤 애니메이션을 취할지 지정하는데 사용된다. 보통 Animation 컴포넌트는 Legacy, Animator 컴포넌트는 Mecanim 방식에 사용된다.
    - Controller는 메카님을 애니메이션을 조건에 따라 적용하거나, 다른 애니메이션을 전환하는 과정을 설계할 수 있는 인터페이스를 제공한다.
      Asset - Create - Animation Controller를 선택하여 생성한다.
      아래처럼 등록된 애니메이션 클립을 Play 메소드를 이용하여 재생한다. 첫번째 인자는 실행할 클립 이름, 두번째 인자는 layer 설정 (-1은 지정된 이름의 클립 실행을 의미), 세번째 인자는 애니메이션 시작 위치 지정 (애니메이션 전체 길이를 1로) 를 파라미터로 받는다.
    Animator animator = GetComponent<Animator>(); animator.Play("m_weapon_shoot", -1, 0);
  • State machine
    - state machine를 이용하여 애니메이션간의 관계를 설정할 수 있다.
      윈도우는 ALT를 눌른 후 드래그 하는 것으로 State 창의 시선을 옮기고, A를 누르는 것으로 모든 애니메이션 상태 관계도를 한눈에 확인할 수 있다.

'Etc > Unity' 카테고리의 다른 글

Blend Tree  (0) 2019.02.25
Transition  (0) 2019.02.24
Input Class / Input Manager / GetKey / GetButton  (0) 2019.02.22
Dedicated server / Host  (0) 2019.02.21
Audio Listener / Audio source / Audio Clip  (0) 2019.02.10
Comments