TA

TA 3강 / 좌표계, Transform, 이동, 회전, 스케일

jh009 2026. 6. 25. 11:07

게임 오브젝트가 3D 공간 안에서 어떻게 배치되고 변형되는지 학습

좌표계

3D 공간에서는 위치를 표현하기 위해 X, Y, Z 세 축을 사용

Location = (300, 100, 50)

X 방향으로 300 
Y 방향으로 100 
Z 방향으로 50

 


World Coordinate

World 좌표는 게임 전체 공간을 기준으로 하는 좌표

World Location = (1000, 0, 0)

게임 월드의 기준점에서 X 방향으로 1000만큼 떨어져 있다는 뜻
상황 예시
Actor의 절대 위치 확인 GetActorLocation()
특정 위치에 오브젝트 생성 SpawnActor
두 Actor 사이 거리 계산 Target - Start
전체 맵 기준 위치 저장 Save Data, Map Data

Local Coordinate

오브젝트 자신을 기준으로 하는 좌표

Actor가 바라보는 방향과 자신의 축을 기준으로 판단

상황 예시
캐릭터가 바라보는 방향으로 이동 Forward Movement
무기 Socket 기준 이펙트 생성 Weapon Socket VFX
자식 오브젝트 배치 Parent / Child
회전된 오브젝트 기준 이동 AddActorLocalOffset

 

Actor가 회전하면 Actor의 Local X, Local Y, Local Z축도 함께 회전

→ 같은 X 이동이라도 World X 이동과 Local X 이동은 결과가 달라질 수 있음

 

World X 이동은 항상 월드의 X축 방향으로 이동
Local X 이동은 Actor 자신의 X축 방향, 즉 Actor가 바라보는 방향 기준으로 이동


World와 Local의 차이

구분 기준 의미
World 게임 전체 공간 레벨의 고정된 축
Local 오브젝트 자신 Actor의 회전과 방향 기준

 

Actor를 Yaw 90도로 회전시킨 뒤 이동한다고 가정

  • World X 이동 = 게임 월드의 X축 방향으로 이동
  • Local X 이동 = Actor 자신이 바라보는 방향 기준으로 이동

Relative Coordinate

부모 오브젝트를 기준으로 하는 좌표


World 이동과 Local 이동 비교

두 함수는 모두 Actor를 이동시키지만 기준이 다름

AddActorWorldOffset(FVector(100.0f, 0.0f, 0.0f));
AddActorLocalOffset(FVector(100.0f, 0.0f, 0.0f));
함수 기준
AddActorWorldOffset 월드 좌표 기준 이동
AddActorLocalOffset Actor 자신의 로컬 좌표 기준 이동

 

Actor가 회전하지 않았다면 두 이동이 비슷하게 보일 수 있지만, Actor를 Yaw 90도로 회전시키면 차이가 명확해짐


Transform

오브젝트가 공간 안에서 어떻게 배치되어 있는지를 나타내는 값

 

세 가지 정보로 구성

  • Location
  • Rotation
  • Scale

Location (오브젝트의 위치)

Current Location = (0, 0, 0)
Movement         = (100, 0, 0)

Next Location = Current Location + Movement
Next Location = (100, 0, 0)

 

Rotation (오브젝트의 회전)

의미
Pitch 위 / 아래 방향 회전
Yaw 좌 / 우 방향 회전
Roll 좌우로 기울어지는 회전

 

Scale (오브젝트의 크기 배율)

Scale 값 의미
(1, 1, 1) 원래 크기
(2, 2, 2) 전체 2배 크기
(0.5, 0.5, 0.5) 전체 절반 크기
(2, 1, 1) X축 방향으로만 2배
(1, 1, 0.5) Z축 방향으로만 절반

 

Scale은 단순히 크기만 바꾸는 값이 아님

실제 프로젝트에서는 여러 요소에도 영향을 줄 수 있음

- Collision 크기
- 물리 반응
- 애니메이션
- 머티리얼 타일링
- 이펙트 크기
- 배치 간격

 

비균등 Scale은 주의

Uniform Scale     = (2, 2, 2)
Non-uniform Scale = (2, 1, 0.5)

메시가 늘어나 보이거나, 충돌 크기와 시각적 크기가 어긋나는 문제를 만들 수 있음

Unreal Transform 관련 함수

목적 함수
현재 위치 가져오기 GetActorLocation()
현재 회전 가져오기 GetActorRotation()
현재 스케일 가져오기 GetActorScale3D()
위치 설정 SetActorLocation()
회전 설정 SetActorRotation()
스케일 설정 SetActorScale3D()
월드 기준 이동 AddActorWorldOffset()
로컬 기준 이동 AddActorLocalOffset()
월드 기준 회전 AddActorWorldRotation()
로컬 기준 회전 AddActorLocalRotation()

 


Viewport

Unreal Editor에서 개발자나 아티스트가 레벨을 바라보고 편집하는 작업 화면 (작업자가 보는 화면)

- Actor의 위치
- Actor의 회전
- Actor의 스케일
- Move / Rotate / Scale Gizmo
- World / Local 좌표 전환
- Perspective View
- Camera View

Camera

실제 게임 화면을 결정하는 Actor (플레이어가 보는 화면)

Camera도 Actor이기 때문에 Transform을 가짐

Camera Location = 카메라가 어디에 있는가
Camera Rotation = 카메라가 어느 방향을 바라보는가

Viewport와 Camera의 차이

구분 Viewport Camera
목적 에디터에서 월드 편집 실제 게임 화면 결정
사용자 개발자 / 아티스트 플레이어 / 게임 로직
기준 작업자의 편집 시점 Camera Actor
결과 에디터 작업 화면 플레이 화면

 

'TA' 카테고리의 다른 글

TA 6강 / 디자인 기초 1, 2  (0) 2026.07.10
TA 5강 / 기초 물리  (0) 2026.07.02
TA 4강 / 각도와 삼각함수 기초  (0) 2026.07.02
TA 2강 / Vector  (0) 2026.06.19
TA 1강 / TA이해하기  (0) 2026.06.11