[Unreal Engine] 루트 모션(Root Motion)

2024. 4. 3. 21:04· 언리얼
목차
  1. 루트 모션(Root Motion)
  2. 모션 워핑 (Motion Warping)

루트 모션(Root Motion)

보통 애니메이션은 프로그램 상에서 이동시키지 않고, 자체적으로 이동하는 경우가 많습니다. 예를 들어, 걷는 애니메이션이 있는데 애니메이션 상에서도 위치가 변한다거나, 점프 애니메이션에서 높이가 변동하는 경우 등이 존재합니다.

이러한 애니메이션은 보기엔 좋으나 실제로 적용할 경우 문제가 발생할 수가 있습니다. 예를 들어, 캐릭터가 이동하면서 걷기 애니메이션을 실행한다고 가정해보겠습니다. 캐릭터의 캡슐 컴포넌트, 즉 콜리전은 플레이어가 원하는 방향으로 이동하는데, 걷기 애니메이션이 재생하니 캐릭터 메시가 콜리전을 벗어납니다. 그리고 애니메이션 재생이 완료되면 캐릭터는 다시 콜리전 위치로 미끄러져 돌아갈 것입니다. 이는 비쥬얼적인 면에서도 보기 안좋고, 충돌 체크 등의 계산이 캡슐 컴포넌트 중심으로 동작하기 때문에 큰 문제가 됩니다.

공격 애니메이션을 실행하면 기존 콜리전 위치에서 벗아난다.

루트 모션(Root Motion)은 스켈레톤의 루트 본(Root bone)의 애니메이션을 기준으로 하는 캐릭터의 동작을 의미합니다. 대부분의 게임 내 애니메이션은 캐릭터 루트의 정지 상태를 유지하는 사이클을 통해 처리되자만, 항상 그렇지는 않습니다. 이런 경우를 위해, 캐릭터에서 루트의 모션을 취한 다음, 캐릭터의 캡슐에 대신 적용해줘야 합니다.

캐릭터의 애니메이션과 캡슐이 함께 움직이는 것을 확인할 수 있다.


모션 워핑 (Motion Warping)

모션 워핑(Motion Warping)은 실시간으로 특정 공간적 제약을 충족하기 위해 애니메이션을 동적으로 조정하는 데 사용되는 기술입니다. 이는 미리 정의된 애니메이션이 다양한 환경 조건이나 대화형 이벤트에 적응하여 보다 현실적이고 상황에 맞는 캐릭터 움직임을 보장해야 하는 시나리오에서 특히 유용합니다.

공격을 실행했을 때의 타겟팅 시스템을 예시로 들 수 있습니다. 일부 게임에서는 적 캐릭터를 타겟팅하여 공격 시, 캐릭터의 애니메이션이 실행되는 동안 타겟팅된 캐릭터 쪽으로 방향을 고정하도록 구현되기도 합니다.

공격 모션이 실행되는 동안 타겟을 향해 방향을 고정한다.

Notify - Root Motion Notify

모션 워핑 설정

  • Warp Target Name: 워핑이 영향을 미칠 대상 개체나 bone을 지정합니다.
  • Warp Point Anim Provider: 워프 포인트를 제공할 애니메이션 소스를 선택할 수 있습니다.
  • Warp Point Anim Transform: 애니메이션에서 워프 포인트의 변환 값을 조정할 수 있습니다.
  • Warp Translation: 선택하면 변환 워핑이 활성화됩니다. 즉, 대상의 위치가 조정됩니다.
  • Ignore ZAxis: 선택하면 Z축(일반적으로 수직 이동)이 뒤틀림의 영향을 받지 않게 됩니다.
  • Mode: 선형과 같은 워핑의 보간 모드를 정의하는 설정입니다.
  • Warp Rotation: 활성화하면 대상의 회전을 워핑의 일부로 수정할 수 있습니다.
  • Rotation Type: 특정 방향을 향하는 등 회전 수정 방법을 선택할 수 있습니다.

모션 워핑은 동시에 이동과 방향을 하도록 설정할 수 없습니다. 두 가지를 모두 수행하기 위해선 두 가지의 모션 워핑을 동시에 수행해야 합니다.

모션 워핑을 적용한 몽타주
공격 애니메이션이 실행되는 일부 타임라인에 캐릭터가 움직이는 방향으로 이동한다.

저작자표시 (새창열림)

'언리얼' 카테고리의 다른 글

[Unreal Engine] IK 리타겟팅(IK Retargeting)  (0) 2024.04.03
[Unreal Engine] 애니메이션(Animation)  (0) 2024.04.03
[Unreal] 언리얼 오브젝트(UObject)  (0) 2024.04.02
[Unreal] 블루프린트 시스템 (Blueprint System)  (0) 2024.04.02
[Unreal Engine] 블루프린트 (Blueprint)  (0) 2024.03.28
  1. 루트 모션(Root Motion)
  2. 모션 워핑 (Motion Warping)
'언리얼' 카테고리의 다른 글
  • [Unreal Engine] IK 리타겟팅(IK Retargeting)
  • [Unreal Engine] 애니메이션(Animation)
  • [Unreal] 언리얼 오브젝트(UObject)
  • [Unreal] 블루프린트 시스템 (Blueprint System)
NewtronVania
NewtronVania
개발 내용과 지식을 정리한 블로그입니다.
Newtron의 프로그래밍 블로그개발 내용과 지식을 정리한 블로그입니다.
NewtronVania
Newtron의 프로그래밍 블로그
NewtronVania
전체
오늘
어제
  • 분류 전체보기 (74)
    • 언리얼 (7)
      • 포트폴리오 (1)
    • 유니티 (2)
    • 코딩테스트 (27)
    • 프로그래밍 이론 (38)
      • 디자인 패턴 (25)
      • 알고리즘 (5)
      • 컴퓨터 그래픽스 (2)
      • AI (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 모션 워핑
  • 코딩테스트
  • DP
  • 행동 트리
  • 강화학습
  • 게임 구현
  • Unreal
  • 백준
  • A* 알고리즘
  • 디자인 패턴
  • 게임 역사
  • 언리얼 오브젝트
  • 유한 상태 머신
  • q-learning
  • Strategy
  • 언리얼 엔진
  • Algorithm
  • 알고리즘
  • 비트마스킹
  • AI
  • daijkstra
  • behaviour tree
  • 전략 패턴
  • Templet Method
  • q-learing
  • UObject
  • 루트 모션
  • 다이나믹 프로그래밍
  • 단어 검색
  • CS

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
NewtronVania
[Unreal Engine] 루트 모션(Root Motion)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.