본문 바로가기
유니티

[유니티] 애니메이션 리타겟팅 (여러 애니메이션 돌려쓰기)

by 인디제이 2025. 3. 29.

 

Mixamo에서 원하는 애니메이션을 다운로드한다.

미리 보기로 어떤 모션인지 보기 위해 With Skin으로 다운로드하는 것이 좋다.

  • With Skin 옵션을 선택하면 애니메이션과 함께 캐릭터 모델이 포함되어 있어서, 애니메이션이 어떻게 적용되는지 미리 확인할 수 있다.

 

 

 

1. 애니메이션 설정하기

 

다운로드한 FBX 파일을 유니티에 임포트하고, 애니메이션의 인스펙터에 들어간다.

 

애니메이션을 유니티의 캐릭터 모델에 맞게 설정하기 위해

Rig 탭에서 Animation TypeGenericHumanoid로 변경한다.

  • Generic: 기계나 동물처럼 비인간형 캐릭터에 적합한 설정이다.
  • Humanoid: 사람처럼 두 팔, 두 다리, 머리 구조를 가진 캐릭터에 적합하며, 유니티의 애니메이션 리타겟팅(Animation Retargeting) 기능을 활용할 수 있다.

변경 후 Apply 버튼을 눌러 설정을 저장한다.

 

 

 

2. 애니메이션 복사 및 적용

 

다운로드한 FBX 파일에는 캐릭터 모델과 애니메이션이 함께 들어 있다.

  • 애니메이션만 따로 사용하기 위해 Ctrl + D를 눌러 복사한다.
  • 복사된 애니메이션 파일의 이름을 StumbleHit으로 변경했다.

 

 

 

  • Animator 창을 열고, StumbleHit 애니메이션을 드래그하여 넣는다.
  • StumbleHit 애니메이션과 Run 애니메이션을 연결한다.

 

 

 

플레이어의 Animation 창에 StumbleHit가 들어간 것을 볼 수 있다.

 

 

 

3. 애니메이션 전환 설정

 

기본적으로 애니메이션이 끝날 때까지 기다리는 Exit Time이 설정되어 있다.

  • 장애물이나 울타리에 부딪혔을 때 StumbleHit 애니메이션이 즉시 실행되도록 하기 위해 Has Exit Time 체크를 해제한다.

 

Has Exit Time이 설정되어 있으면, 애니메이션이 끝날 때까지 다음 애니메이션으로 전환되지 않는다.

달리다가 부딪힌 순간 바로 비틀거려야 하는데, Has Exit Time이 체크되어 있으면 이상하게 보일 것이다.

 

또한 Trigger 타입의 Hit 파라미터를 생성하고, 애니메이션 전환 조건으로 설정했다.

 

여기서 문제가 하나 생겼다.

 

 

StumbleHit 애니메이션이 끝나고 다시 Run 애니메이션으로 돌아갈 때 플레이어가 계속 회전하는 문제다.

이는 애니메이션의 루트 모션(Root Motion)이 활성화된 상태에서 이동 또는 회전 데이터가 계속 적용되기 때문이다.

 

 

 

  • Mixamo에서 다운로드한 애니메이션의 인스펙터 Animation 탭으로 이동한다.
  • Root Transform Position Root Transform RotationBake Into Pose 옵션을 모두 체크한다.

이 설정을 적용하면 애니메이션이 자신의 루트 포지션을 고정한 채 재생되므로, 불필요한 이동이나 회전이 방지된다.

 

 

 

오류가 발생한다면 유니티 공식 문서를 참고한다. ↓↓

휴머노이드 애니메이션을 사용한 모델 임포트 - Unity 매뉴얼

 

휴머노이드 애니메이션을 사용한 모델 임포트 - Unity 매뉴얼

이 페이지에는 Unity의 애니메이션 시스템에 사용할 모델을 임포트하는 데 관한 설명이 포함되어 있습니다. 애니메이션 시스템에 사용할 모델을 생성하는 데 관한 자세한 내용은 애니메이션용

docs.unity3d.com