컨텐츠 검색
[UE5 BP] _#12. 언리얼 엔진 다양한 움직임 구현 방식 정리(Movement Components / Timeline / Tick 이동 / 회전)

2025. 12. 2. 14:59Unreal Engine/개념

1. UE5 기본 Movement Component 유형 정리

Movement Component는 액터 또는 폰이 “어떻게 움직이는지”를 정의하는 핵심 요소다.
각 컴포넌트는 목적이 명확하므로 상황에 맞게 선택해야 한다.

1.1 Character Movement Component

✔ 무엇을 위한 컴포넌트인가?

  • 사람이 걷고, 뛰고, 점프하고, 떨어지고, 계단 올라가는 '캐릭터' 특유의 움직임을 구현하기 위한 이동 엔진.
  • 단순한 벡터 이동이 아니라, 지면 경사 처리, 마찰, 중력, 브레이크, 공중 이동 제약 같은 모든 로직이 이미 구현되어 있다.

✔ 동작 원리의 핵심

  • 입력 벡터가 매 프레임 누적되어 가속도(Acceleration)를 생성한다.
  • 가속도 → 속도 → 이동 위치 순서로 물리적으로 계산된다.
  • 캐릭터의 Capsule Component를 기준으로 충돌 검사.

1.2 Floating Pawn Movement

‘지면’이나 ‘중력’ 같은 현실적인 이동 규칙이 필요 없고,
공중을 부드럽게 미끄러지듯 움직이는 오브젝트를 만들 때 사용되는 움직임 컴포넌트

✔ 무엇을 위한 컴포넌트인가?

  • “바닥을 걸어 다닐 필요 없는 단순한 이동체”
    예: 드론, UFO, 로봇 구체, 단순 AI 등

✔ 동작 원리

  • 입력 → 가속도(Acceleration) 적용 → 속도 → 이동
  • 중력 X
  • UpdatedComponent만 이동, 붙어 있는 컴포넌트 충돌은 무시

✔ 제공 옵션

  • Max Speed : 이동 가능한 최대 속도
  • Acceleration : 입력을 받았을 때 얼마나 빨리 가속되는가
  • Deceleration : 입력을 놓았을 때 얼마나 빠르게 감속하는가
  • Turning Boost : 방향을 급하게 틀 때 반응성을 높이는 보정값

✔ 특징

  • CharacterMovement보다 로직이 매우 단순
  • “떠 있는 물체”에 딱 맞음
    •  

Floating Pawn Movement 컴포넌트의 디테일 설정
Floating Pawn Movement 컴포넌트의 이벤트 그래프

1.3 Interp To Movement Component

경로를 따라 자동으로 이동하는 물체를 만들고 싶을 때 사용한다.

✔ 무엇을 위한 컴포넌트인가?

  • 패트롤 로봇, 움직이는 발판, 자동문, 엘리베이터, 왕복 이동 플랫폼 등
    정해진 포인트들을 따라 일정한 시간 동안 움직이는 오브젝트

✔ 동작 원리

  • Control Point 리스트를 설정
  • Duration(이동 시간)을 설정
  • Behavior Type(Loop Reset, Ping-Pong 등)을 선택
  • Tick마다 보간 계산하여 루트 컴포넌트 이동

✔ 특징

  • “이동 규칙”을 거의 자동으로 실행
  • 블루프린트 로직을 별로 짤 필요가 없음

Interp To Movement 컴포넌트의 디테일 설정

1.4 Projectile Movement Component

총알이나 미사일을 만들고 싶을 때 사용하는 이동 방식.

✔ 무엇을 위한 컴포넌트인가?

  • “물리 기반 투사체” 이동
  • 속도 + 중력 + 반사(Bounce) + 유도(Homing)

✔ 동작 원리

  • 초기 속도 → Tick에서 계속 위치 갱신
  • UpdatedComponent가 시뮬레이션 중인 경우, 이후부터는 물리 엔진이 주도권을 가짐

✔ 특징

  • 가장 빠르고 단순한 직선 투사체도
  • 물리 속성 가진 유도 미사일까지
    모두 처리 가능

1.5 Rotating Movement Component

이동이 아니라 회전에 특화된 컴포넌트.

✔ 무엇을 위한 컴포넌트인가?

  • 코인 회전
  • 풍차 날개
  • 돌아가는 장식 오브젝트

✔ 특징

  • Tick 기반 회전 자동 처리
  • 충돌 검사 없음
  • 매우 간단하지만 자주 사용됨

2. Movement Component 없이 직접 이동하기 (Tick 기반)

2.1 동작 원리

Tick → DeltaSeconds 제공
→ “속도 × Delta Seconds = 프레임 독립 이동량”

NextLocation = CurrentLocation + Velocity * DeltaSeconds
SetActorLocation(NextLocation)

✔ 특징

  • 완전히 자유롭다.
    중력, 가속도, 회전, 경사 처리 등 모든 로직을 직접 구현할 수 있다.
  • 대신 모든 것을 직접 만들어야 하기 때문에 릭이나 예상치 못한 움직임이 발생하기 쉽다.

로봇이 타고있는 것이 컴포넌트 없이 적용한 액터 이동이다.

3. Timeline 기반 보간 이동

Timeline은 “시간에 따른 값 변화”를 만드는 도구이다.
특히 움직임을 애니메이션처럼 조절하고 싶을 때 매우 유용하다.

 

3.1 Timeline이 하는 일

  • 트랙(float, vector, color)을 만들어
  • 그래프 형태로 변화값을 만들고
  • Update(매 프레임) 핀이 전달받아
  • 그 값을 Lerp 같은 노드로 보내 자연스럽게 이동시킨다.

3.2 Timeline + Lerp 이동 방식

StartLocation → EndLocation
이동하는 비율을 Alpha로 표현

Lerp(StartLocation, EndLocation, Alpha)

Alpha는 0~1 사이를 움직이며
곡선을 사용하면 Ease In / Ease Out도 가능하다.

 

✔ 언제 사용?

  • 문 열리는 애니메이션
  • 서서히 오르는 플랫폼
  • UI 애니메이션
  • 자연스러운 속도 변화가 필요한 오브젝트 움직임

✔ 장점

  • 매우 직관적
  • Curve 조절로 자연스러운 움직임 구현 가능
  • 복잡한 로직 없이도 고품질 애니메이션 느낌의 이동 가능
  •  

로봇의 앞에 보이는 차의 움직임이 타임라인을 적용한 액터의 이동이다.

이미지를 보면 타임라인의 그래프처럼 천천히가다가 갑자기 속도가 빨라지는 것을 볼 수 있다.

4. 액터 회전 방식 이해하기

4.1 월드 축(World Rotation)

  • 월드 기준으로 회전
  • Actor가 바라보는 방향과 상관없이 동일한 기준점 사용
  • 예: 태양, 풍력발전기, 지형 전체를 도는 오브젝트

4.2 로컬 축(Local Rotation)

  • Actor 자신의 축 기준
  • 즉, 액터가 회전하고 방향이 바뀌어도 그 방향을 따라 감

예: 캐릭터 머리 회전
캐릭터가 어딜 보든 그 방향을 기준으로 고개를 돌린다.

 

(좌): 객체 축 기준 회전 / (우): 월드 축 기준 회전