Home [UE4] Actor란
Post
Cancel

[UE4] Actor란

언리얼 엔진 공식 문서 - 액터

1. Actor 란?

  • 액터란, 레벨에 배치할 수 있는 오브젝트
  • 액터는 이동, 회전, 스케일과 같은 3D 트랜스폼을 지원하는 범용 클래스
  • C++ 또는 BluePrint를 통해 생성(스폰) 및 소멸 가능
  • C++에서 AActor는 모든 액터의 베이스 클래스
  • 액터는 트랜스폼 데이터를 직접 저장하지 않고, 액터의 루트 컴포넌트에 트랜스폼 데이터가 존재하는 경우 그 데이터를 사용한다.

액터 생성

언리얼 엔진 공식 문서 - 액터 스폰하기

  • AActor 클래스 인스턴스를 새로 생성하는 것을 Spawn(스폰) 이라 한다.
    • 범용 함수 SpawnActor()나, 그 특수 템플릿 버전을 사용하면 된다

Actor의 생명 주기

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

2. 액터의 컴포넌트

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

UActorComponent 액터 컴포넌트

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

USceneComponent 씬 컴포넌트

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

UPrimitiveComponent 프리미티브 컴포넌트

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

RootComponent 루트 컴포넌트

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

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

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

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

액터의 계층 구조 예제

image

3. Tick(틱)

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

    Unity의 Update와 비슷한 개념

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

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

4. Replication(리플리케이션)

  • Replication (리플리케이션)은 네트워크 멀티플레이어 게임 처리시 월드의 동기화 상태를 유지하는 데 사용.
  • 모든 클라이언트에서의 게임 상태에 대한 완벽 제어를 가능하게 하기 위해, 프로퍼티 값과 함수 호출 둘 다 리플리케이트시킬 수 있다.

5. 액터의 소멸

  • 액터는 일반적으로 가비지 콜렉팅되지 않는데, 월드 오브젝트가 액터 레퍼런스 목록을 저장하기 때문이다.
  • 액터는 Destroy() 를 호출하여 명시적으로 소멸시킬 수 있습니다.
    그러면 레벨에서 제거되어 pending kill (킬 대기) 상태로 마킹, 잠시 후 다음 가비지 컬렉션 때 지워진다는 뜻입니다.
This post is licensed under CC BY 4.0 by the author.