[UE5] 공격 기능 구현 4 - 애니메이션 구현 (루트 본, 루트 모션 애니메이션이란?)
루트 본, 루트 모션 애니메이션이란 무엇인가
구현 목표
마우스 좌클릭으로 공격 애니메이션을 재생하고 다른 캐릭터에게 대미지를 입히는 기능 구현하기
구현해야 할 것들
- 마우스 좌클릭 입력 시 실행할 공격 함수 구현(UE5의 향상된 입력 사용)
- 캐릭터가 사용할 무기 클래스 구현
- 공격과 피격 매커니즘 구현
- 공격 시 재생할 애니메이션과 몽타주 구현 <- 오늘 할 것
오늘 할 것은 공격할 때 사용할 캐릭터의 애니메이션 구현이다. 애니메이션은 아직 아리까리한 부분이 많아서 다음 단계에 따라 하나하나 되짚어가며 만들어보려고 한다.
- 루트 본, 루트 모션 애니메이션이란 무엇인가?
- Mixamo에서 다운받은 에셋을 언리얼 엔진에서 활용하는 방법
- 애니메이션 몽타주와 애니메이션 블루프린트
위 단계들 중 오늘은 1, 2번에 대해 간단하게 써 보겠다.
루트 모션 애니메이션에 대해
공식 문서가 있지만 머리에 잘 안들어와서 천천히 읽어보며 정리해 보았다.
루트 본이란?
Root Bone 이라는 단어를 직역하면 ‘근본 뼈’ 가 된다. 그 말대로 루트 본은 캐릭터의 전체 뼈대의 기준점으로 사용된다. 즉, 팔과 다리와 같이 특정 부의를 나타내는 뼈가 아니라 3D 공간에서 캐릭터의 전체 위치를 정의하는 뼈라는 것이다.
루트 모션 애니메이션이란?
루트 모션 애니메이션은 말 그대로 루트 본을 움직이는 애니메이션이다. 루트 본이 존재하는 스켈레탈 메시 에셋이라고 하더라도, 애니메이션 에셋이 그 루트 본을 움직여주지 않으면 무용지물일 것이다.
애니메이션에 에셋에 루트 본이 어떻게 움직여야 하는지에 대한 데이터가 없는, 즉 루트 모션 애니메이션이 아닌 경우, 캐릭터는 한 장소에 고정된 채로 애니메이션이 재생된다.
고정되어 있으므로 이와 같이 애니메이션 재생이 종료되면 고정된 장소로 돌아와 버린다는 것이다.
반면 애니메이션 에셋에 루트 본 데이터가 있는, 루트 모션 애니메이션을 사용할 경우 어떻게 될까?
아까 루트 본은 3D 공간에서 캐릭터의 전체 위치를 정의하는 뼈라고 했다. 따라서, 애니메이션에 의해 루트 본이 움직이면, 실제 캐릭터의 위치도 애니메이션에 따라 함께 변화하게 된다.
루트 모션 애니메이션을 쓰는 이유는?
루트 모션 애니메이션을 사용하지 않는 경우, 애니메이션 재생과는 별개로 캐릭터 이동은 따로 구현해야 한다.
걷기 동작 정도야 따로 구현할 수도 있겠지만, 동작이 복잡해질수록 구현하기도 어려워질 것이다.
반면 루트 모션 애니메이션을 사용하면 캐릭터의 이동과 애니메이션의 재생이 함께 이루어지므로 구현하기도 훨씬 쉬워지고, 애니메이션에서 이동한 거리만큼 실제로 이동하게 되므로 움직임도 자연스럽게 보이게 된다.
Mixamo 에셋 활용하기
루트 모션 애니메이션에 대해 알아보았으니 다음으론 실제로 사용해볼 차례이다.
애니메이션을 직접 만들기는 어렵고 어디선가 에셋을 가져와야 하는데 아주 좋은 서비스가 있다는 것을 알게 되어서 소개한다.
알 사람은 이미 다 알고 있겠지만 어도비에서 운영하는 Mixamo 라는 서비스이다.
2024년 8월 기준으로 비영리 사용은 물론 상업적으로도 사용이 가능하다는 점이 매우 큰 장점이다.
다만, 믹사모에서 다운받은 에셋을 그대로 언리얼 엔진으로 가지고 오면 문제가 발생하게 된다.
에셋 디테일 패널에서 루트 모션 활성화 를 체크하는 순간 뭔가 동작이 이상해지는 걸 볼 수 있는데 이건 루트 본이 Hips로 자동 지정되기 때문이다.
이를 해결하는 방법은 똑똑한 사람들이 이미 만들어 두었다.
블렌더 플러그인인데 블렌더 4.0 버전에서 정상 작동하는 것을 확인했다.
플러그인 설치하고 어떻게 구동하는지 몰라서 한참 헤맸는데 엄청 코딱지만한 메뉴 안에 숨어있으므로 잘 찾아서 누르자.
숨어있는 화살표를 누르고 Mixamo 탭으로 들어가면 다음과 같은 창이 뜬다.
주의할 점은, Apply Rotation 은 체크 해제 하고 변환해야 한다는 것.
변환한 파일을 다시 언리얼 엔진에 임포트해보면 다음과 같이 루트 본이 추가되어, 루트 모션 활성화를 선택해도 정상적으로 애니메이션이 재생되는 모습을 볼 수 있다.
다음 목표
루트 본과 루트 모션 애니메이션이 뭔지, 에셋을 어디서 구할 수 있는지, 구한 에셋을 어떻게 언리얼 엔진에 가져올 수 있는지를 알아보았다.
다음 목표는 가져온 에셋을 실제로 게임에 적용하기 위해, 애니메이션 몽타주와 애니메이션 블루프린트를 제작하는 것이다.