Home [UE4] UE4 Class 구조
Post
Cancel

[UE4] UE4 Class 구조

1. 계층 구조

image

2. UObject

자세한 내용은 공식 문서에서 확인!
UE4 공식 문서 - 오브젝트

  • 언리얼의 오브젝트의 베이스 클래스
  • UObject에서 파생되는 클래스에 UCLASS 매크로를 사용해 태그를 해 주면 UObject 처리 시스템에서 인식하게 된다.
  • 클래스에 UObject가 상속되었다면 그 클래스가 언리얼 으보젝트로 선언되었다는 것을 의미
    • 언리얼 오브젝트는 엔진의 관리를 받는 특수한 객체
  • 데이터 저장이 가능
  • 레벨에 배치가 불가능하다

U가 붙는 이유

  • 일반 C++ 클래스와 UClass를 구분하기 위해
  • 일반 C++ 클래스와 다르게 객체를 생성하기 위해서 NewObject<클래스명>() 를 사용해야 한다.

3.AActor

자세한 내용은 공식 문서에서 확인!
UE4 공식 문서 - 액터

Actor 란?

  • 언리얼 엔진의 레벨에 배치할 수 있는 오브젝트를 의미
    • Unity의 GameObject와 비슷
  • 이동, 회전, 스케일과 같은 3D 트랜스폼을 지원하는 범용 클래스
  • 게임 플레이 코드(C++ 또는 블루프린트)를 통해 생성(스폰) 및 소멸이 가능
  • C++에서 AActor는 모든 액터의 베이스 클래스

Actor의 생명 주기

UE4 공식 문서 - 액터의 수명 주기

Actor의 컴포넌트

  • 액터는 씬 컴포넌트 계층 구조를 갖는 것을 지원

UActorComponent 액터 컴포넌트

  • 베이스 컴포넌트이고 액터의 일부로 포함이 가능
  • Tick 가능
  • Actor 컴포넌트는 특정 액터에 연관짓거나, 월드의 특정 지점에 존재하지 않음
  • 일반적으로 개념적 기능(Ex) AI 나 플레이어 입력 해석)과 같은 것에 사용

USceneComponent 씬 컴포넌트

  • 트랜스폼있는 액터 컴포넌트
    • 트랜스폼은 위치, 회전, 스케일로 정의되는 월드상의 포지션을 나타냄
  • 계층 구조 형태로 서로에게 붙일 수 있음
  • 액터의 위치, 회전, 스케일은 계층 구조의 루트에 위치한 씬 컴포넌트에서 취할 수 있다

UPrimitiveComponent 프리미티브 컴포넌트

  • 일정한 형태의(메시 또는 파티클 시스템과 같은) 그래픽적 표현이 있는 씬 컴포넌트를 말함
  • 피직스콜리전 세팅이 들어가 있음

RootComponent 루트 컴포넌트

  • 어느 컴포넌트가 액터의 루트 역할을 할지 나타내는 컴포넌트

    액터 자체에는 트랜스폼 정보가 없다. 대신 루트 컴포넌트의 트랜스폼에 의존하는데

    컴포넌트가
    씬 컴포넌트일 경우, 액터에 트랜스폼 정보를 제공해주고
    아닐 경우, 액터에는 트랜스폼 정보가 없다

    부착된 다른 컴포넌트에는, 부착된 그 컴포넌트를 기준으로 한 트랜스폼 정보가 존재한다

액터의 계층 구조 예제

image

Tick(틱)

  • 언리얼 엔진에서의 액터 업데이트 방법을 의미
  • 모든 액터는 매 프레임, 또는 최소, 또는 사용자 정의 간격마다 틱을 하여 필요한 동작이나 계산을 업데이트 할 수 있다.

    Unity의 Update와 비슷한 개념

  • 액터는 모두 기본적으로 Tick() 함수를 통해 틱 가능

    ActorComponent 역시, TickComponent() 함수를 사용해야 한다는 점이 다르지만,
    기본적으로 업데이트 가능
    자세한 내용은 Components 문서에서 확인 가능하다.

Replication(리플리케이션) 과 액터 소멸

  • 공식 문서에서 확인

4. Pawn

1
폰이란, 월드 내 플레이어에 대한 물리적 표현입니다.

UE4 공식 문서 - Pawn

Pawn 이란?

  • 플레이어나 AI가 제어할 수 있는 모든 액터의 베이스 클래스
  • 월드 내 플레이어나 AI 개체에 대한 물리적 표현

    플레이어나 AI 개체의 시각적인 모습 뿐만 아니라
    콜리전이나 기타 물리적 반응과 같은 측면에서 월드와의 상호작용 방식도 Pawn이 규정한다는 뜻

  • 기본적으로 Controller 와 Pawn에는 1:1 대응 관계

    즉, 각 컨트롤러는 단 하나의 폰만 제어
    마찬가지로 게임 플레이 도중 스폰된 폰이 자동적을 컨트롤러에 빙의(possess)되지 않는다.

Default Pawn 이란?

  • 공식 문서 확인

5. Character

1
Character, 캐릭터는 원래부터 약간의 기본적인 이족보행 운동 기능을 가지고 있는 Pawn 입니다.

Character 란?

  • 캐릭터 움직임 Component를 가지고 있음
  • Pawn 클래스에서 고도로 특화된 클래스
    • 추가된 Component
      • CharacterMovementComponent
      • CapsuleComponent
      • SkeletalMeshComponent
  • 월드에서 걷기, 달리기, 점프 등 가능한 직립 플레이어를 표현하기 위해 디자인 됨
  • 기본적인 네트워킹이나 인풋 모델 구현도 추가되어 있음

SkeletalMeshComponent

  • Pawn과 달리 Character에 존재하는 고급 애니메이션을 위한 Component
  • 관련된 상세 내용은 공식 문서 확인

CapsuleComponent

  • 운동 콜리전에 사용
  • 관련된 상세 내용은 공식 문서 확인

CharacterMovementComponent

  • 관련된 상세 내용은 공식 문서 확인
This post is licensed under CC BY 4.0 by the author.