[UE5] Gameplay Framework

Jaeyoung Ko·2025년 2월 3일

UE에서 게임을 만드는 작업은

  • Level을 구성하는 작업
  • gameplay를 설계하는 작업

크게 두 가지로 나눠볼 수 있다.

이 때, gameplay 설계에 관해서 UE는 Gameplay Framework를 제공한다.


GameMode

GameMode는 게임 진행에 참고해야 할 핵심요소로서 게임의 틀을 잡아주는 역할을 한다.

  • player 입장 마다 player에 대해 점검을 하고
  • player가 조종할 actor, 곧 Pawn을 생성하여 전달한다.



PlayerController

GameMode는 플레이어가 입장할 때 PlayerController 액터를 함께 해벚앟ㄴ다.

현실 세계의 플레이어를 대변하는 무형의 액터로, 플레이어가 폰을 조종하는 역할을 맡으며,

이밪ㅇ 시 배정되는데 배정된 PlayerController는 변경할 수 없다.



Pawn

Pawn은 PlayerController에게 조종을 당하는 액터로, 플레이어가 PlayerController를 통해 폰에 제어권을 갖고 조종하는 것을 Possess라고 한다.



UE 에디터에서 Play 버튼을 누르면, 해당 레벨에 입장하여 다음 순서로 액터 생성과 게임플레이 설정이 갖춰진다.

  1. PlayerController의 생성
  2. Pawn의 생성
  3. PlayerController를 통한 Pawn에 대한 Possess
  4. 게임 레벨 시작

이에 더불어 플레이어가 게임에 입장하는 것을 Login으로 명명하여,

로그인 완료 시, GameMode에서 PostLogin() 이벤트 함수가 호출된다.



PostLogin()

이 이벤트 함수에서 pawn을 생성하고, pawn에 대한 possess 작업이 일어난다.




cf. C++가 아닌 BP로 만들어진 클래스를 사용하려고 할 때,


	// set default pawn class to our Blueprinted character
	static ConstructorHelpers::FClassFinder<APawn> BP_Pawn_C(TEXT("/Game/../../../[이름].[이름]_C"));
	if (PlayerPawnBPClass.Class != NULL)
	{
		DefaultPawnClass = BP_Pawn_C.Class;
	}
	

ConstructorHelpers의 FClassFinder를 사용하고 경로에 대해 '_C' 접미사를 붙여 가져와야 한다.

profile
안녕하세요, 고재영입니다. 언제나 즐겁게 살려고 노력합니다.

0개의 댓글