본문 바로가기

게임 개발/이득우의 언리얼 C++

[이득우의 언리얼 C++ 게임개발의 정석] #4. 게임플레이 프레임워크

반응형

이득우의-언리얼-C++-게임개발의-정석-표지

게임이 시작되려면 게임의 규칙, 플레이어, 플레이어가 조종하는 액터가 있어야 한다.
이는 각각 게임 모드, 플레이어 컨트롤러, 폰에 대응한다.

이 3가지 액터를 직접 제작하고 학습해 보자.

<1>. 게임 모드

직접 게임 모드와 폰을 제작&적용해 보자. (ABGameMode, ABPawn)

<1> - 1. 우리가 제작한 게임모드 적용하기

GameModeBase 클래스를 부모로 하는, Pawn 클래스를 부모로 하는 새로운 C++ 클래스를 생성한다.

  툴바의 '창' - '월드 세팅' 윈도우를 열고, Game Mode 섹션에 있는 GameMode Override 항목에서 ABGameMode 선택.

<1> - 2. 우리가 제작한 폰 적용하기

정의 파일에 생성자를 구현함(AABGameMode)

게임 모드의 DefaultPawn 속성에 우리가 제작한 ABPawn을 지정함.(액터를 지정하는 게 아닌, 클래스 정보를 지정하는 것) 플레이어가 여러 명이라면, 미리 만들어두는 것이 아니라, 플레이어가 입장할 때마다 클래스 정보를 기반으로 폰을 생성시키는 게 합리적임   'StaticClass'라는 스태틱 함수를 호출해서 가져올 수 있음.

//ABGameMode.h

class ARENABATTLE_API AABGameMode : public AGameModeBase
{
	GENERATED_BODY()
    
public:
	AABGameMode();  
};
//ABGameMode.cpp

#include "ABGameMode.h"
#include "ABPawn.h"

AABGameMode::AABGameMode()
{
	DefaultPawnClass = AABPawn::StaticClass();
}

 

※ C++의 클래스 이름은 접두사가 붙는다   AABPawn

 

<2>. 플레이어의 입장

플레이어가 입장할 때, '폰'만 배정받는 것이 아닌, '플레이어 컨트롤러' 액터도 같이 배정받는다.

  • 폰 : 실제 눈으로 보이는 꼭두각시
  • 플레이어 컨트롤러 : 폰을 조종하는, 보이지 않는 액터
  • 빙의(Possess) : '플레이어 컨트롤러'가 '폰'을 조종하는 행위

ABPlayerController라는 새로운 플레이어 컨트롤러 생성. 

//ABGameMode.cpp

#include "ABPlayerController.h"

PlayerControllerClass = AABPlayerController::StaticClass();

 

 

 

[이득우의 언리얼 C++ 게임개발의 정석] #5. 폰의 제작과 조작

폰을 조작하기 위해 프로젝트의 입력을 설정하고,입력 값을 폰의 움직임으로 변환하는 폰 무브먼트 컴포넌트를 사용한다.애니메이션 블루프린트를 사용해 애니메이션을 불어넣는 법을 학습한

lbto.tistory.com

 

 

반응형