언리얼 엔진/개념 정리

개념 정리 - 액터(이동)

journey46110 2026. 6. 15. 17:06

I. 액터 이동을 위한 블루프린트 클래스 생성

1) 새 블루프린트 클래스 생성

① 콘텐츠 브라우저 → 우클릭 → 블루프린트 클래스 생성

블루프린트 클래스 생성

② 부모 클래스로 액터 선택

 

2) Static Mesh 추가

① 블루프린트 → 추가 → 스태틱 메시 컴포넌트

스태틱 메시 컴포넌트

② 디테일 패널 → 원하는 메시 선택

스태틱 메시 추가

③ Viewport에 배치

배치 예시

 

II. 무브먼트 컴포넌트 사용 - 액터 이동

1) InterpToMovement

- 지정한 지점을 따라 자동 이동하는 컴포넌트

- 별도 블루프린트 작성 없이 이동 가능

 

① InterpToMovement 컴포넌트 추가

InterpToMovement 컴포넌트

② Control Point 설정

- 이동할 위치 지정

디테일 패널 - 컨트롤 - 컨트롤 포인트

③ Behavior Type → Ping Pong 설정

- 지정한 위치를 반복 이동함

디테일 패널 - 비헤이비어

④ 결과

01
두 지점을 반복으로 이동함

 

2) FloatingPawnMovement

- Pawn을 간단하게 이동시키는 컴포넌트

- 중력이나 점프 기능 없음

- 드론, 비행체, 차량 등에 사용

 

① Pawn 클래스를 상속받는 블루프린트 클래스 생성

Pawn 클래스 상속

② Static Mesh 추가

예시

③ FloatingPawnMovement 컴포넌트 추가

FloatingPawnMovement 컴포넌트

- 속도 옵션 조절 가능

디테일 패널 - 플로팅 폰 무브먼트

④ Tick 이벤트에서 AddMovementInput 사용

Add Movement Input 사용

이동 구조

Event Tick
↓
AddMovementInput
↓
FloatingPawnMovement
↓
액터 이동

⑤ 결과

01
Tick마다 지정한 방향으로 이동함

 

 

III. 컴포넌트 미사용 - 액터 이동

1) Tick 이벤트와 SetActorLocation 활용

① 움직일 새 액터 생성

기존 액터 복사 → InterpToMovement 컴포넌트 삭제

새 액터

② 사용할 변수 생성

사용할 변수

StartLocation

- 액터의 시작 위치 저장

Velocity

- 이동 방향 및 속도 저장

Y축 속도 100

MoveDistance

- 액터가 이동할 최대 거리

시작점부터 최대 거리 100

 

③ 시작 위치 초기화

- 시작 시 StartLocation 변수에 시작 위치 저장

시작 위치 초기화

④ Tick 이벤트

DeltaSeconds 사용

- 이전 프레임과 현재 프레임 사이의 시간

- 속도 x DeltaSeconds 사용 시 다른 환경(30FPS, 60FPS, 144FPS)에서 동일한 속도로 이동 가능

→ Velocity × DeltaSeconds = 거리(벡터)

→ GetActorLocation으로 현재 위치(벡터) 가져옴

→ 두 벡터 더함

→ SetActorLocation으로 위치(벡터) 갱신

Tick마다 현재 위치에서 지정한 방향으로 이동

⑤ 이동 거리 제한

Distance(Vector) 사용

- 현재 위치와 시작 위치 사이의 거리를 계산

현재 위치와 시작 위치 거리 계산

- Branch 사용

Branch

- 조건 Distance >= Move Distance(시작 위치부터 최대 거리)

Distance (Vector) >= Move Distance

- True인 경우 Velocity(Vector) 반전 == 움직이는 방향 반전

- False인 경우 방향 유지

True - Velocity 반전

⑥ 블루프린트 정리

Sequence

- 이동 처리와 거리 체크를 동시에 실행해야 하기 때문에 사용

최종 블루프린트

구조

Tick
↓
Sequence
├─ 거리 체크
└─ 위치 이동

⑦ 결과

01
방향을 바꿔가며 이동함

2) Timeline 활용

- 시간에 따라 값을 자동으로 생성하는 기능

 

① 움직일 새 액터 생성

새 액터

 

② 사용할 변수 생성

사용할 변수

StartLocation

- 시작 위치(벡터)

 

EndLocation

- 도착 위치(벡터)

 

③ 현지 위치 초기화 및 목표 위치 설정

- Get Actor Location 사용 현재 위치(벡터) 저장

- vector끼리 add해서 도착 위치(벡터) 저장

위치 설정

④ Timeline 생성

- 노드 추가

Timeline

- Float Track 추가

Float 트랙 추가

- Key 생성

Key 추가

③ 전체 시간 및 값 저장

예시

- Loop 활성화

Loop 활성화

④ Lerp 사용

- 두 값 사이를 자연스럽게 보간하는 함수

- Alpha는 보간 비율, A에서 B까지 얼마나 가까워졌는지 결정하는 값

최종 블루 프린트

이동 구조

Timeline
↓
Alpha 값 생성
↓
Lerp(Vector)
↓
SetActorLocation
⑤ 결과
Float 트랙에 따라서

- 갈 때는 천천히 이동

- 올 때는 급격히 이동

01
두 지점 사이를 반복 이동함

 

3) SINd 활용

① 시작 위치를 저장할 벡터 타입 StartLocation 변수 생성
BeginPlay에서 시작 위치를 변수로 저장한다.

Start Location

② SINd 노드 사용

SINd 함수는 입력한 값을 각도로 계산하고, 이에 대한 사인(Sine) 값을 반환한다.

반환값 1 ~ -1에 이동 거리를 곱하고, 벡터로 만든 뒤, StartLocation과 벡터합을 구해서 액터의 위치를 정한다.

이를 통해, 액터가 시작 위치를 기준으로 일정 거리만큼 좌우(또는 원하는 축 방향)로 자연스럽게 왕복 이동한다.

Then1과 연결된 노드
움직이는 플랫폼, 떠다니는 아이템, 장애물 등에 자주 활용된다.
 

IV. 액터 회전

① 회전 액터 생성

액터를 상속받는 블루프린트 클래스 생성 → Static Mesh 추가

새 액터

② 회전 구현

- Tick 사용

- Local과 World 두 가지가 있음

- Z = 1 설정 == Z축을 기준으로 회전

Local / World

③ Local과 World의 차이점

Add Actor Local Rotation

- 액터 자신의 축 기준 회전

- 객체가 기울어져 있어도 자신의 축 기준으로 회전

 

Add Actor World Rotation

- 월드 좌표 기준 회전

- 액터의 기울기와 상관 없음