개발자로/Unreal

[Unreal4] 게임플레이 프레임워크

ReasonyB 2022. 8. 12. 16:18

Pawn : 월드의 대리인 역할을 하는 Actor. Pawn은 Controller에 의해 Possess 가능하며,  입력을 쉽게 받을 수 있도록 구성 가능하고, 여러가지 다양한 플레이어 같은 동작을 할 수 있다. 폰은 인간형이라 가정되지 않음.

Character : 캐릭터는 인간형 Pawn. 기본적으로 콜리전에 쓸 CapsuleComponenet와 CharacterMovementComponent가 들어있음. 기본적인 인간형 동작을 할 수 있으며, 네트워크를 통해 부드러운 이동 리플리케이션 가능, 에니메이션 관련 함수성도 약간 있음.

 

Controller : 컨트롤러는 Pawn에 대한 지시를 담당하는 Actor. 보통 두 가지, AIController와 PlayerController. 컨트롤러는 Pawn에 possess되어 그 폰을 제어할 수 있습니다.

PlayerController : 플레이어 컨트롤러 Pawn과 그것을 제어하는 플레이어를 잇는 인터페이스. PlayerController는 본질적으로 사람 플레이어의 의지를 나타냄.

AIController : AIController는 말 그대로 Pawn을 제어하는 의지를 시뮬레이션이 재현.

 

HUD : Heads-Up Display의 준말. 여러 게임에서 볼 수 있는 머리 위에 뜨는 화면 표시기 같은 것으로, 생명력, 탄환 수, 총 조준선 등이 표시됩니다. PlayerController에는 보통 이와 같은 것이 하나씩 있습니다.

Camera : PlayerCameraManager는 플레이어의 눈을 나타내며, 그 동작을 관리. 각 PlayerController에 보통 하나씩.

 

GameMode : 게임이라는 것의 개념은 두 개의 클래스로 나눔. 게임 모드와 게임 스테이트는 게임의 규칙이나 승리조건 같은 것이 포함된 게임의 정의. 서버에만 존재. 보통은 플레이 도중 바뀌는 데이터는 많이 없어야하며, 클라이언트에서 알아야하는 트랜션트(휘발성) 데이터는 반드시 없어야 함.

GameState : 접속된 플레이어 목록, 점수, 체크 게임에서 말들의 위치, 오픈 월드 게임에서 완료한  퀘스트 목록등과 같은 것이 포함될 수 있는 게임 상태가 포함. 최신상태 유지를 위해 자유롭게 리플리케이트 가능.

PlayerState :  인간 플레이어 또는 플레이어인 척 하는 봇과 같은 게임 참여자의 상태. 게임의 일부로써 존재하는 플레이어가 아닌 AI에는 PlayerState가 없음. PlayerState에 적합한 예제 데이터라면, 플레이어 이름, 점수, MOBA 게임 류에서의 대전상대 레벨, CTF게임에서 플레이어가 현제 깃발 운반중인지 여부 등. 모든 플레이어에 대한 PlayerState는 모든 머신에 존재, 동기화 상태 유지를 위해 자유로이 리플리케이트 가능.

 

PlayerController

<Join>

GameMode

GameState

<Contain>

HUD

Input

PlayerCameraManager

<Possess>

Pawn - AIController can possess