루트 모션 애니메이션을 사용하면 애니메이션 데이터로 캐릭터 무브먼트를 제어하여 레벨에서 보다 사실적인 무브먼트를 연출할 수 있습니다.
이 문서에서는 루트 모션의 개요와 호환 가능한 애니메이션에서 루트 모션을 활성화하는 방법을 살펴봅니다.
전제 조건
개요
레벨 내에서 캐릭터는 여러 컴포넌트로 구성됩니다. 캐릭터 무브먼트는 종종 캐릭터의 무브먼트 컴포넌트에 의해 제어되며, 애니메이션 재생이 그 위에 레이어로 추가되어 모션의 비주얼 피드백을 커뮤니케이션합니다.
아래는 블루프린트 뷰포트 에디터에서 스켈레탈 메시 컴포넌트와 캡슐 컴포넌트로 렌더링된 캐릭터의 예시입니다.

루트 본
애니메이션은 본으로 구성되는 스켈레탈 메시의 스켈레톤으로 제어됩니다. 루트 본 은 스켈레톤의 기반을 구성하는 본입니다. 다른 본과 달리 루트 본은 팔이나 다리 등 스켈레탈 메시의 엘리먼트를 나타내기 위해 빌드되지 않는 전체 스켈레탈 구조의 레퍼런스 포인트입니다. 일부 애니메이션에는 루트 본의 애니메이션 데이터가 없습니다. 이러한 애니메이션은 정적으로 유지되며 스켈레톤과 애니메이션을 단일 포인트에 유지합니다. 다른 애니메이션은 루트 본을 애니메이팅하여 애니메이션의 디스플레이스먼트를 3D 공간에서 따릅니다.
다음은 루트 본이 하이라이트된 스켈레탈 메시의 예시입니다.

루트 모션
캐릭터 무브먼트가 없는 경우, 스테이셔너리 루트 본이 있는 애니메이션은 실제 무브먼트나 디스플레이스먼트 없이 제자리에서 재생됩니다.

위 애니메이션과 같이 일부 애니메이션은 스테이셔너리 루트 본을 갖지만 다른 애니메이션에는 루트 본에 할당된 무브먼트가 있습니다.
다음은 루트 본에 무브먼트 데이터가 있는 애니메이션의 예시입니다. 빨간색 선 은 시작 위치부터 현재 위치까지 루트 본의 트래킹된 디스플레이스먼트를 나타냅니다.

하지만 루트 본에 애니메이션 데이터를 포함하는 애니메이션은 기본적으로 캐릭터 무브먼트에 영향을 미치지 않으며, 먼저 루트 모션(Root Motion) 프로퍼티로 활성화되어야 합니다.
![]() |
![]() |
---|---|
루트 모션 없음 | 루트 모션 사용 |
루트 모션이 활성화되어 있지 않은 경우, 애니메이션은 스켈레탈 메시를 루트 본에서 떨어뜨려서 캐릭터와 멀어지도록 애니메이팅합니다(와이어프레임 캡슐로 표시). 스켈레탈 메시가 캐릭터와 떨어지면 애니메이션 주기 끝에 시작 위치로 다시 스냅됩니다. 애니메이션의 루트 모션이 활성화된 경우, 루트 본 모션 데이터가 캐릭터 무브먼트를 제어할 수 있으며 캐릭터를 루트 본의 무브먼트에 따라 끌어당깁니다.
캐릭터 무브먼트를 루트 모션으로 제어함으로써 애니메이션이 캐릭터의 이전 애니메이션 루프에서 마지막 위치에서 반복적으로 루프할 수 있습니다. 아래는 반복적인 애니메이션 주기의 예시입니다.

루트 모션 활성화하기
루트 모션 기능을 활성화하고 사용하려면 우선 스켈레톤에 루트 본이 있어야 하며, 루트 본이 애니메이팅된 애니메이션이 있어야 합니다.
애니메이션 시퀀스
각 개별 애니메이션 시퀀스 또는 몽타주는 루트 모션을 활성화 하도록 토글되어야 합니다. 이 프로퍼티는 애니메이션 시퀀스 에디터(Animation Sequence Editor)의 에셋 디테일(Asset Details) 패널에서 수정할 수 있습니다.

다음은 애니메이션 시퀀스 에셋 편집 시 볼 수 있는 '루트 모션' 관련 프로퍼티의 목록과 설명입니다.
프로퍼티 | 설명 |
---|---|
루트 모션 활성화(Enable Root Motion) | 활성화한 경우, 루트 모션 데이터가 추출됩니다. 애니메이션 블루프린트의 '클래스 디폴트(Class Defaults)' 프로퍼티 루트 모션 모드(Root Motion Mode) 를 사용하여 루트 모션 추출 방식을 정의합니다. |
루트 모션 루트 잠금(Root Motion Root Lock) | 루트 모션 추출 시 루트 본을 정의된 위치에 잠급니다. 루트 본을 잠그는 위치 옵션은 다음과 같습니다. 레퍼런스 포즈(Ref Pose): 루트 본을 스켈레탈 메시의 레퍼런스 포즈 위치에 잠급니다. 애님 첫 프레임(Anim First Frame): 루트 본을 선택된 애니메이션의 첫 프레임 위치에 잠급니다. 0(Zero): 루트 본 위치를 메시에 상대적인 좌표 0,0,0에 잠급니다. |
루트 강제 잠금(Force Root Lock) | 활성화한 경우, 루트 모션 이 활성화되어 있지 않더라도 루트 본을 강제로 잠급니다. |
정규화 루트 모션 스케일 사용(Use Normalized Root Motion Scale) | 활성화한 경우, 정규화된 스케일을 추출된 루트 모션에 적용합니다. FVector(1.0, 1.0, 1.0). |
애니메이션 블루프린트
개별 애니메이션 시퀀스의 파라미터에서 루트 모션을 활성화한 후에는 시퀀스가 애니메이션 블루프린트에서 처리되어 오브젝트의 애니메이션을 제어하는 방식을 결정해야 합니다. 애니메이션 블루프린트 내의 루트 모션을 처리하는 방법에는 몇 가지가 있습니다. 이러한 옵션에 액세스하려면 애니메이션 블루프린트 에디터(Animation Blueprint Editor) 툴바 에서 클래스 디폴트 를 클릭합니다. 이렇게 하면 루트 모션 모드 프로퍼티가 드롭다운 메뉴와 함께 포함된 디테일(Details) 패널이 열립니다.

옵션은 다음과 같습니다.
이름 | 설명 |
---|---|
루트 모션 추출 안 함(No Root Motion Extraction) | 루트 모션이 변경되지 않고 유지됩니다(루트 본에 적용됨). |
루트 모션 무시(Ignore Root Motion) | 루트 모션이 추출되어 루트 본에서 제거되지만 캐릭터에는 적용되지 않습니다. |
모든 루트 모션 추출(Root Motion from everything) | 최종 캐릭터 포즈에 기여하는 각 루트 모션 활성화 애니메이션 에셋에서 루트 모션을 추출합니다. 추출된 루트 모션은 포즈에 기여하는 소스 에셋의 가중치를 기반으로 블렌딩됩니다. |
몽타주에서만 루트 모션 추출(Root Motion from Montages Only) | 루트 모션이 루트 모션 활성화 애니메이션 몽타주에서만 추출됩니다. |
루트 모션을 활성화하는 데는 퍼포먼스 비용이 들어갑니다.
모든 루트 모션 추출 또는 몽타주에서 루트 모션 추출 을 활성화하면 '애니메이션 그래프(Animation Graph)'가 워커 스레드 대신 게임 스레드에서 업데이트됩니다. 게임 스레드에서 작업이 늘어나면 퍼포먼스 문제가 발생할 수 있습니다.
결과
루트 모션이 애니메이션에서 활성화되고 애니메이션 블루프린트에서 루트 모션 추출 적용 메서드가 정의되면 애니메이션이 재생 도중 무브먼트 컴포넌트를 제어합니다.
캐릭터의 피직스 상태가 루트 모션 동안 고려됩니다. 예를 들어 캐릭터가 X축 및 Y축을 따라 걷기 또는 낙하 중인 경우 루트 모션의 Z축이 무시되며 중력이 적용됩니다. 이 캐릭터는 낙하하거나, 경사로로 내려가거나, 계단을 오릅니다. 캐릭터가 바인딩되지 않은 상태로 비행 중이면 전체 루트 모션이 적용되고 중력이 무시됩니다.
이는 Movement Mode 노드로 캐릭터 블루프린트 내에서 정의 및 조정됩니다.
루트 모션 디버깅
다음은 루트 모션 애니메이션 작업과 관련된 디버깅 프로퍼티입니다.
애니메이션 시퀀스 에디터
에디터의 뷰포트에서 애니메이션 시퀀스로 작업하는 동안 디버깅 목적으로 유용한 여러 기능을 사용할 수 있습니다.
캐릭터의 스켈레톤을 스켈레탈 메시 위에 오버레이로 렌더링하려면 캐릭터(Character) 탭으로 이동하여 본(Bones) 브레이크아웃 메뉴를 엽니다. 본 그리기(Bone Drawing) 헤더에서 모든 계층구조(All Hierarchy) 를 선택합니다. 이 옵션은 전체 스켈레톤을 렌더링하며, 루트 본은 빨간색으로 렌더링됩니다. 루트 본이 트랜스폼되고 있는 중이므로 빨간색 선이 루트 본의 원점과 현재 위치 사이에 렌더링됩니다.
다음은 모든 계층구조 본 그리기 모드를 활성화한 예시입니다.

빨간색 선 은 루트 모션 활성화로 인한 루트 본 디스플레이스먼트를 나타냅니다. 루트 모션이 활성화된 애니메이션 도중 디스플레이스먼트의 양을 보고 루트 본의 무브먼트를 트래킹할 수 있습니다.
루트 모션 애니메이션의 재생 세팅을 변경하려면 캐릭터 탭으로 이동하여 애니메이션(Animation) 브레이크아웃 메뉴를 엽니다. 루트 모션 헤더에서 아래와 같은 프리뷰 재생 옵션을 토글할 수 있습니다.
옵션 | 이미지 | 설명 |
---|---|---|
무시(Ignore) | ![]() |
루트 모션을 무시하고 애니메이션을 스태틱 세팅으로 재생합니다. |
루프(Loop) | ![]() |
루트 모션 재생을 활성화하고 이전 루프의 끝에서 시작하여 애니메이션을 계속 루프합니다. |
루프 및 리셋(Loop and Reset) | ![]() |
루트 모션 재생을 활성화하고 모든 루프의 루트 본 원점에서 시작하여 애니메이션을 계속 루프합니다. |
콘솔 명령
런타임 동안 콘솔 명령 으로 캐릭터의 캡슐 컴포넌트를 활성화하여 표시할 수 있습니다.
콜리전 컴포넌트는 캐릭터 오브젝트가 아니지만, 콜리전 컴포넌트를 통해 쉽고 빠르게 캐릭터 오브젝트를 메시와 분리하여 시각화할 수 있습니다.
게임이 에디터에서 실행 중일 때 백틱(`) 키를 눌러 콘솔 명령 창을 활성화합니다.
콘솔 명령 show collision
을 입력하고 Enter 키를 누릅니다.