1. 액터 이동을 위한 블루프린트 클래스 생성하기
1-1. 새 블루프린트 클래스 생성

액터로 블루 프린트 클래스 하나 만들어줍니다.
1-2. 메시(Static Mesh) 컴포넌트 설정

스태틱 메시 컴포넌트

Floor 클릭

2. 무브먼트 컴포넌트 활용
대표적으로 3가지 있습니다.
1. Character Movement Component
- 보행, 점프, 중력, 충돌 처리 등 캐릭터 행동에 특화된 컴포넌트입니다.
- 캐릭터 액터에 사용합니다.
- 기본 입력 매핑(WASD, Space) 등으로 쉽게 이동 가능합니다.
2. Floating Pawn Movement
- 단순 부유 이동, 복잡한 물리 중력 계산 없이 AddMovementInput 등을 통해 이동합니다.
- 폰 액터에 사용합니다.
- 캐릭터 형태가 아닌 간단한 오브젝트를 부유, 이동시키기에 편리합니다.
3. Interp To Movement
- 지정된 포인트(Waypoints) 사이를 정해진 속도나 보간(Interpolation) 방식으로 움직이는 컴포넌트입니다.
- Ease In/Out, Linear, Ping, Pong 같은 다양한 이동 방식을 옵션으로 지정 가능합니다.
2-1. InterpToMovement

간단하게 보간이란 점과 점 사이를 연결한다는 의미입니다.

컨트롤 포인트 배열 크기 늘려줍니다.

z축 100, 안건드리고, 비헤이비어에서 비헤이비어 타입 Ping Pong으로 설정합니다.

캐릭터 앞에 배치합니다.

잘 움직입니다.
2-1. FloatingPawnMovement

이번에는 폰으로 생성합니다.

스태틱 메쉬 컴포넌트 추가하고, car 검색해서 넣어줍니다.

플로팅 폰 무브먼트 컴포넌트 추가해주시면 됩니다.

뷰포트에 배치 했습니다. 크리가 너무 커서 0.5로 줄였습니다.

하지만 실행해도 해당 액터는 움직이지 않습니다. 분명 최대 속도 가속 등등이 이미 들어가 있습니다.
여기서 폰 액터는 입력이 들어와야만 움직일 수 있습니다.
움직임을 받아보겠습니다.

car 이벤트 그래프 입니다.
add movement input 추가하시고

이렇게 y는 1로 만들어서 실행하겠습니다.

디테일 패널도 만져주시고 실행하시면

잘갑니다.
3. 컴포넌트 없이 이동시키기
3-1. Tick 이벤트와 SetActorLocation / AddActorWorldOffset

기존의 무빙액터 복사해서 2로 이름 지어줍니다.

원래있던 컴포넌트를 지워줍니다.

위에 2개 변수는 이미 있고, 밑에 3가지 변수만 새로 만들어줍니다.

이렇게 노드연결 합니다.
Get Actor Location은 해당 액터의 위치정보를 가져올겁니다.(뷰포트 배치시)

이렇게 만들겠습니다.
Tick 이벤트는 DeltaSeconds을 반환합니다. DeltaSeconds는 매 프레임 사이의 걸리는 시간을 의미합니다.
속도*DeltaSeconds(시간) = 거리 나오고,
액터의 현제 위치와 더해주고, Set Actor Location으로 점점 이동시켜주는 로직입니다.
Velocity의 기본값 y값을 10 줘서 실행하면 y축으로 계속 이동할것입니다.
하지만 지금은 계속 y축만 이동을 하고 있습니다. 다시 돌아오게 만들려면

먼저 MoveDistance의 기본값을 100으로 줍니다.

최종적인 모습은 이렇게 됩니다.
하나하나 살펴보겠습니다.

시퀸스 위쪽 부터 보겠습니다.
Branch의 조건은
Distance(Vector)의 값이 MoveDistance모다 크거나 같으면 True 입니다.
Distance(Vector)은 Start Location값과 현제 액터의 위치를 받아와서 이동 거리를 측정하고, 그걸 최대 이동거리와 비교하고 있는 로직입니다.
즉, 최대 이동거리만큼 이동했다면 Branch가 true 조건을 실행합니다.
Branch True면 Velocity의 값을 바꿔주고 있습니다.
이건 Velocity를 get 해서 Negate Vector로 값을 바꾼값을 다시 Set하고있습니다.
여기까지가 매 틱마다 시퀸스 0번이 하는 역할이고,

나머지 밑은 이제 움직이는 로직입니다.
하지만 이렇게 만들면 문제가 발생합니다.
StartLocation 부터 100, -100 총 200의 거리를 움직이는 문제가 발생합니다.

저는 이렇게 해결했습니다.
100만큼 거리를 이동하면 Start Location의 값을 바꿔주게끔 해서
항상 100만큼의 거리만 이동하도록 만들었습니다.
3-2. 타임라인(TimeLine) 활용
TimeLine은 시간에 따른 값 변화를 곡선으로 다룰 수 있어, 스크립트로 구현하기 힘든 부드러운 이동을 간단히 처리 가능합니다.

BP_Car2로 복사

컴포넌트도 지워주고

요것만 남겨줍니다.

변수 두개 만들어주시고

이렇게 연결합니다
Start Location은 현제 액터 위치
End Location은 Y로 + 500 된 위치 입니다

addtimeline 찾아서 만들고

더블클릭합니다.

그럼 이렇게 타임라인 창이 나오는데, ㅌ느랙 눌러서 float 트랙 추가

그럼 그래프가 나옵니다. 그래픽 우클릭 눌러서 키추가 (0, 0), (2.5, 2), (3, 0) 3개 만들어줍니다.

2.5 키 우클릭해서 자동

요렇게 그래프가 만들어집니다.

그다음 이렇게 연결만 해주면 됩니다.
Lerp는 선형보간인데,
아까 보간이 두 점을 연결해 주는 선이었다면, 선형보간은 그것을 예측해서 이어주는 선을 만든다고 생각하시면 됩니다.
Alpha는 보간 비율을 의미합니다. A에서부터 B까지 얼마나 가까워졌는지 결정하는 값입니다.
이렇게 만들면 자동차 액터가 앞으로 천천히 움직이다 빠르게 돌아오는 것을 확인 할 수 있습니다.
4. 액터 회전

새로 BP_RotatingActor 만들고

스태틱 메쉬 컴포넌트 추가하고 SM_Bottinton 추가합니다.

요렇게 Add Actor Local Rotation, Add Actor World Rotation 2가지가 있습니다.
이상태에서는 뷰포트에서 똑같이 회전을 합니다만,

이렇게 액터를 회전하고 비교하면 다르다는 것을 확인 할 수 있습니다.
Add Actor Local Rotation은 기준축이 액터입니다. > 액터가 기울어도 액터를 기준으로 한 축
Add Actor World Rotation은 기준축이 월드입니다. > 액터가 기울어도 영향을 받지 않음
무슨 차이인지 실행하시면 확 차이가 느껴지실 겁니다.
'언리얼 기본' 카테고리의 다른 글
| 콜리전 (0) | 2026.02.13 |
|---|---|
| 액터의 상호작용 - 오버랩, 충돌 이벤 (0) | 2026.02.09 |
| 애니메이션 블루프린트와 블렌드 스페이스 (0) | 2026.02.03 |
| 플레이어 캐릭터 만들기 (0) | 2026.02.02 |
| 언리얼엔진 액터(Actor)의 종류와 배치 (1) | 2026.01.31 |