[UnrealEngine] Gameplay Framework


https://docs.unrealengine.com/5.3/ko/gameplay-framework-in-unreal-engine/

게임플레이 프레임워크

언리얼 엔진의 게임플레이 프레임워크는 프로젝트의 빌딩 블록 역할을 하는 여러 클래스와 컴포넌트를 제공합니다.


액터

레벨에 배치하거나 스폰할 수 있는 오브젝트의 기본 클래스는 액터입니다. 액터에는 액터의 이동 방식과 렌더링 방식을 제어하는 데 사용할 수 있는 액터 컴포넌트 컬렉션이 포함될 수 있습니다. 액터는 플레이 도중 네트워크를 통해 프로퍼티 및 함수 호출의 리플리케이션을 지원합니다.


카메라

카메라는 플레이어가 월드를 보는 방식과 같은 플레이어의 시점을 나타냅니다. 플레이어 컨트롤러는 카메라 클래스를 지정하고 플레이어가 월드를 보는 위치와 방향을 계산하는 데 사용되는 카메라 액터를 인스턴스화합니다.


폰 클래스는 "플레이어 또는 AI가 제어할 수 있는 액터들"의 베이스 클래스입니다. 폰은 월드 내에서 플레이어 또는 AI 엔티티의 물리적 표현입니다. 캐릭터는 걸어 다닐 수 있는 특수한 유형의 폰입니다. 기본적으로 컨트롤러와 폰은 "일대일 관계"로, 각 컨트롤러는 주어진 시간에 하나의 폰만 제어할 수 있습니다.


컨트롤러

컨트롤러는 캐릭터처럼 "폰 또는 폰에서 파생된 클래스(캐릭터)"를 빙의하여 그 동작을 제어할 수 있는 비물리적 액터입니다. "플레이어 컨트롤러"는 인간이 폰을 제어하는 데 사용되며, "AI 컨트롤러"는 폰의 인공 지능을 구현하는 데 사용됩니다. 컨트롤러는 Possess 함수를 사용하여 폰을 제어하고, UnPossess 함수를 사용하여 폰의 제어권을 포기할 수 있습니다.


게임플레이 타이머

게임플레이 타이머지연 후 또는 일정 시간 동안 이벤트를 트리거하는 특정 함수 포인터에 대한 비동기 콜백을 생성합니다.


게임모드

게임 프레임워크의 베이스는 게임모드입니다. 레벨이 게임플레이를 위해 초기화될 때 AgameModeBase 액터가 인스턴스화됩니다. 게임모드는 게임의 규칙을 설정하며, 서버에만 인스턴스화되고 클라이언트에는 존재하지 않습니다.


플러그인

게임 기능 및 모듈형 게임플레이 플러그인은 개발자가 프로젝트에 독립형 기능을 만들 수 있도록 도와줍니다. 이러한 플러그인은 프로젝트의 코드베이스를 깔끔하고 읽기 쉽게 유지하며 관련 없는 기능 간의 우발적인 상호 작용이나 종속성을 방지합니다.


사용자 인터페이스

사용자 인터페이스(UI) 및 헤드업 디스플레이(HUD)는 플레이어에게 게임에 대한 정보를 제공하고 경우에 따라 플레이어가 게임과 상호 작용할 수 있도록 하는 방식입니다.


프레임워크 클래스 관계

thumbnail

게임은 GameMode(규칙)와 GameState(상태)로 구성됩니다. 게임에 참여하는 인간 플레이어는 PlayerController입니다. 게임에서 Pawn(Character)에 빙의하여 레벨에 물리적으로 표현할 수 있습니다. PlayerController는 플레이어에게 입력 컨트롤, HUD, PlayerCameraManager를 제공합니다.

Leave a comment