TIL

[UE5] 블루프린트 액터 이동 및 회전의 모든 것

think95592 2026. 4. 13. 17:46

언리얼 엔진에서 오브젝트를 움직이는 방법은 단순한 좌표 이동부터 컴포넌트 활용까지 매우 다양합니다. 오늘은 기초적인 액터 생성부터 3가지 주요 무브먼트 컴포넌트, 그리고 타임라인을 활용한 정교한 이동까지 정리해 보겠습니다.

1. 액터 이동을 위한 기본 설정

1-1. 블루프린트 클래스 생성

  • 콘텐츠 브라우저 우클릭블루프린트 클래스 선택
  • 부모 클래스: Actor (이름: BP_MovingActor)

1-2. 스태틱 메시(Static Mesh) 추가

  • [이미지 1: 컴포넌트 창에서 Static Mesh 추가하는 모습]
  • 컴포넌트 탭에서 +추가 → Static Mesh를 선택합니다.
  • 디테일 패널 혹은 콘텐츠 드로어에서 SM_Modules_Floor를 검색하여 뷰포트로 드래그 앤 드롭합니다.


2. 무브먼트 컴포넌트 3종 세트 활용

컴포넌트를 사용하면 복잡한 물리 계산 없이도 목적에 맞는 이동을 쉽게 구현할 수 있습니다.

컴포넌트 이름 주요 특징 권장 사용처
Character Movement 보행, 점프, 중력 등 물리 처리 특화 플레이어 및 적 NPC 캐릭터
Floating Pawn Movement 중력 없는 부유 이동, 간단한 입력 처리 비행체, 공중에 떠 있는 몬스터
Interp To Movement 지정된 포인트(Waypoints) 사이를 보간 이동 움직이는 발판, 순찰하는 엘리베이터

2-1. Floating Pawn Movement 구현

  • 클래스 생성: Pawn을 상속받는 BP_Car 생성 후 SM_PowerCar 메시 추가.
  • 컴포넌트 추가: FloatingPawnMovement 추가 후 디테일 패널에서 Max Speed 조정.
  • 로직 구성: Event Tick에서 Add Movement Input 노드를 사용하여 Y축 이동 구현.

2-2. Interp To Movement (핑퐁 이동)

  • 컨트롤 포인트: 디테일 패널에서 인덱스 2개 추가 (0번: 현재 위치, 1번: X축 +100).
  • 비헤이비어: 타입을 Ping Pong으로 설정하여 왕복 운동 구현.


3. 컴포넌트 없이 스크립트로 이동시키기

직접 노드를 짜면 이동 로직을 세밀하게 제어할 수 있습니다.

3-1. Tick과 Delta Seconds 활용

  • 핵심 변수: StartLocation(Vector), Velocity(Vector), MoveDistance(Float)
  • Delta Seconds의 중요성: 프레임이 달라도 모든 PC에서 일정한 속도를 유지하기 위해 속도 값에 반드시 곱해줘야 합니다.
  • 로직: Sequence 노드를 사용하여 [거리 체크]와 [위치 업데이트]를 동시에 수행합니다.

3-2. 타임라인(Timeline)과 Lerp 활용

타임라인은 커브를 통해 훨씬 부부드러운 움직임을 만듭니다.

  • Lerp(선형 보간): A와 B 사이의 값을 Alpha(0~1) 비율로 계산합니다.
  • 커브 설정: 타임라인에서 0초(값 0) -> 1.5초(값 10) -> 3초(값 0)로 키를 찍고 **Auto(자동)**로 곡선을 부드럽게 만듭니다.


4. 액터 회전 (Local vs World)

회전은 Add Actor Local/World Rotation 노드 하나로 구현 가능하지만, 기준 좌표계의 차이를 이해하는 것이 중요합니다.

Local vs World 차이점

  • Local Rotation: 내 축 기준. 내가 기울어져 있으면 기울어진 상태의 내 위아래(Yaw/Roll/Pitch) 축을 기준으로 돕니다.
  • World Rotation: 세상 기준. 내가 아무리 기울어져 있어도 나침반의 동서남북(절대 좌표) 축을 기준으로 돕니다.

 

Video Project 1.mp4
5.54MB

마치며 오늘 실습을 통해 언리얼 엔진에서 물체를 움직이는 다양한 방법을 익혔습니다. 상황에 따라 가장 효율적인 방법을 선택하는 안목을 기르는 것이 중요할 것 같습니다.