UnrealEngine

Actor 개념 정리

Ms_Tony 2022. 12. 18. 23:42

액터 : 월드를 꾸며주는 모든 컴포넌트 또는 리플리케이션의 단위

그러므로 액터의 직렬화를 통해서 네트워크 데이터 동기화도 가능

언리얼 엔진은 모든 단위를 액터로 통제한다.

  • 리플리케이션(Replication) : 네트워크 게임에서 서로 동기화하는 작업
  • 월드(레벨) : 게임에서의 맵을 표현하는 언리얼엔진의 단위
  • 스폰 : 월드에 액터를 실시간으로 추가하는 행위 / 월드 상에 액터 클래스를 전달받아서 액터 클래스에 맞는 새로운 오브젝트를 만드는 행위
  • 액터 내부에느 액터의 이동 방법, 렌더링 방법 등을 제어하는 데 사용할 수 있는 ActorComponents Collections가 포함되어 있음.

언리얼에서 컴포넌트의 개념

  • 액터는 기능별로 존재하진 않음.
    • ex. 포인트라이트 액터에는 포인트라이트 컴포넌트만 들어가있는 액터
  • 기능이 컴포넌트로 구분이 되어있고, 해당 컴포넌트들이 액터에 부착(Attach)되는 형태
  • 하나의 액터 안에 여러개의 컴포넌트를 조합해서 나만의 액터를 만들 수도 있음.
  • 액터 안에서 서로의 컴포넌트들이 상호작용을 이루게 됨.

기초적인 액터 개념에 대해서 살펴보자

  • 액터 클래스 : 컨텐츠 브라우저에서 우리가 원하는 커스텀 액터 클래스를 만들 수 있다. / 개별적인 에셋으로 존재하거나 엔진에 내장되어 있다.
    • CDO(Class Default Object)를 의미함.
  • 액터 오브젝트 : 월드 아웃라이너에서 확인 / 액터 오브젝트는 Level Asset에 나열되서 저장된다.
    • 레벨에 인스턴스된 액터를 의미함.
    • 레벨에 인스턴스를 생성하는 행위를 Spawn이라고 합니다.
  • 블루프린트 클래스 : 부모 클래스->선택한 클래스를 상속받는 액터 클래스를 만든다.

액터 이벤트

  • Construction Script : BeginPlay와 비슷하지만, 이 함수는 액터를 직접 배치할 때와 디테일의 값을 변경할 때 호출된다.(게임이 실행될 때는 호출하지않음.)
    • 동적 스폰을 통해 생성할 때는 Construction Script -> BeginPlay가 호출된다.
  • BeginPlay : 게임이 시작 될 때, BeginPlay가 정의가 된 액터들은 딱 한번만 호출한다.(초기화)
  • Tick : 게임 시뮬레이션을 한번 돌 때마다 호출되는 함수. 지속적으로 값을 바꾸는 작업을 할 때 사용.
    • 60 프레임 : 1초에 60번 계산을 한다.
  • End Play : 액터가 삭제 될 때 호출되는 이벤트
    • EndPlayReason : 액터가 삭제되는 이유
  • PostInitializeComponents : 액터에 속한 모든 컴포넌트의 세팅이 완료됬을 때 호출되는 함수.
  • Collision OnComponent Begin Overlap : 액터가 충돌이 일어나는 시점에 발생하는 이벤트
  • Collision OnComponent End Overlap : 액터가 충돌이 끝난 시점에 발생하는 이벤트
  • ActorBeginOverlap : 내가 가지고 있는 하위 컴포넌트 중에 begin overlap이 발생하면, 같이 호출되는 이벤트
  • Custom Event : 엔진에서 제공하는 이벤트가 아닌, 프로그래머가 직접 이벤트를 생성하여 로직을 작성하여 원할 때 호출할 수 있도록 작성할 수 있다.

액터에서 파생되어 제공되는 언리얼 클래스

  • Pawn : 액터를 상속 받아서 만든 클래스
    • 빙의(Possess)하여 컨트롤러에서 입력을 받을 수 있는 액터
    • 플레이어나 AI가 제어할 수 있는 모든 액터의 Base Class이며, 물리적 표현임.
    • 플레이어의 시각적인 모습 뿐만 아니라 Collision 또는 기타 물리적 반응과 같은 측면에서 월드와의 상호작용 방식을 규정합니다.
    • Controller와 Pawn은 1:1 대응관계
      • 단, 게임 플레이 도중 스폰된 Pawn은 자동으로 Controller에 Possess되지 않고, 명시적으로 Possess해야 합니다.
  • Character : Pawn을 상속 받아서 만든 클래스
    • 기본적인 동작들이 구현되어 있는 클래스 (걷기, 달리기, 점프 등)
  • Player Controller :
    • Pawn에 빙의(Possess)되어 행동 조작을 담당하는 클래스
    • 키 입력을 받음
    • 플레이어 컨트롤러가 Pawn을 조종한다.
  • Actor Component : 언리얼엔진은 엔진의 기능을 컴포넌트 단위로 액터에게 제공해준다.

'UnrealEngine' 카테고리의 다른 글

UnrealEngine 5 Subsystem  (0) 2023.08.12
GameplayTag  (0) 2023.02.06
GameAbilitySystem 기본  (0) 2023.01.01