액터 : 월드를 꾸며주는 모든 컴포넌트 또는 리플리케이션의 단위
그러므로 액터의 직렬화를 통해서 네트워크 데이터 동기화도 가능
언리얼 엔진은 모든 단위를 액터로 통제한다.
- 리플리케이션(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 |