Transform

김민수·2025년 1월 22일

언리얼 C++

목록 보기
12/32

1. Transform

언리얼 엔진에서 Actor(액터)는 월드에 존재하는 모든 오브젝트를 의미하는데 이 오브젝트들의하는데 이 오브젝트들의 위치, 회전, 크기를 정의하는 데이터 구조다.

(1) 위치 (Location)

  • 월드에서 액터의 위치를 나타낸다.
  • FVector 구조체로 표현된다.
  • 예를 들어 FVector(150.0f, 50.0f, 300.0f)는 x축으로 150, y축으로 50, z축으로 300만큼 떨어진 위치를 의미한다.

(2) 회전 (Rotation)

  • 액터가 향하고 있는 방향을 나타낸다.
  • FRotator(Pitch, Yaw, Roll)로 표현된다.
    • Pitch: y축 기준으로 앞뒤 방향의 기울어짐
    • Yaw: z축 기준으로 좌우 방향의 회전
    • Roll: x축 기준으로 좌우 기울기

(3) 크기 (Scale)

  • 액터의 크기의 비율을 나타낸다.
  • FVector 구조체로 표현되며, 기본값은 1.0f다.


2. FTransform 구조체

  • FTransform은 위치, 회전, 크기를 하나로 관리할 수 있는 구조체다.
    1. Translation: 액터의 위치 정보를 나타내고, FVector로 저장된다.
    2. Rotation: 액터의 회전 정보를 나타내고, FRotator로 저장된다.
    3. Scale3D: 크기 정보를 나타내고, FVector로 저장된다.


3. 좌표계

🌍 월드 좌표계 (World Space)

  • 게임 월드 전체를 기준으로 절대적인 좌표계를 의미한다.
    • SetActorLocation(): 액터의 위치를 월드 기준으로 설정한다.
    • GetActorLocation(): 월드 기준으로 액터의 위치를 가져온다.

🏡 로컬 좌표계 (Local Space)

  • 부모 액터나 부모 컴포넌트의 Transform을 기준으로 계산되는 상대 좌표계를 의미한다.
    • 예: 부모 액터가 회전하면, 자식 액터는 부모의 회전에 따라 자신의 좌표도 영향을 받는다.


4. Transform의 부모-자식 관계의 연관성

부모-자식 구조

  • 액터는 루트 컴포넌트를 기준으로 다른 컴포넌트와 Attach(부착) 관계를 형성한다.
  • 부모 컴포넌트가 이동·회전·크기가 변경될 경우, 자식 컴포넌트도 이에 따라 움직인다.

함수

  • GetRelativeTransform() : 부모 기준으로 자식의 상대 위치, 회전, 크기를 반환한다.
  • SetRelativeLocation(), SetRelativeRotation() : 부모를 기준으로 자식의 위치나 회전을 조정한다.
profile
안녕하세요

0개의 댓글