본문 바로가기

Unreal/Udemy 강의

Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 3-21

GameMode

뷰포트에서 우클릭을 하면 여기에서 플레이라는 기능을 통하여 원하는 곳에서 플레이어를 스폰할 수 있다.

하지만 현 상태에서 게임 플레이를 누르면 캐릭터가 있는 위치에서만 플레이가 가능하다.

이는 언리얼에서는 우리가 어떤 캐릭터를 사용하고자 하는지 모르기 때문에 발생하는 문제이다.

이를 위해 게임모드 클래스를 사용하게 된다.

 

게임모드란 기본적으로 레벨에 들어가서 게임 규칙을 관리하는 액터이다.

누가 어디에 스폰해야 하는지, 플레이어에게 어떤 클래스를 아용하는지, 그 밖에 게임 작동 방식을 의미한다.

간단히 말해 특정 게임 또는 특정 경기의 규칙과 같다.

게임모드는 좌측 상단에서 설정할 수 있다.

프로젝트 세팅에 있는 GameMode 항목은 프로젝트 전체에 대한 설정으로 프로젝트에서 생성한 모든 레벨에 대한 기본 게임 모드이다.

월드 오버라이드에 있는 GameMode 항목은 특정 레벨에 대한 게임모드로, 현재 BP_LearningKitGameMode를 오버라이드에서 사용중이다.

해당 게임모드는 처음에 Kit 에셋을 프로젝트로 생성하면서 포함되어있던 GameMode이다.

 

우리는 오버라이드된 GameMode 말고 새롭게 생성을 해주고자 한다.

생성을 눌러주면 여러항목이 뜨는데 여기서 가장 기본적인 Gamemodebase를 선택해주고 이어서 생성해준다.

블루프린트 클래스이기에 마찬가지로 접두어로 BP를 붙이게 된다.

 

해당 BP 클래스에서 디테일 탭을 보면 클래스 항목이있다.

여기서 디폴트 폰 클래스가 우리가 기본적으로 스폰에 사용할 폰 클래스이다.

따라서 여기에 우리가 만들었던 3인칭 클래스를 할당해주면 된다.

 

이제 GameMode 클래스를 새롭게 만들었으니 이를 적용해주어야 한다.

따라서 현재 오버라이드 되어있는 BP_LearningKitGameMode를 없애준다.

 

하지만 여전히 여기에서 플레이 기능이 동작하지 않는다.

이는 캐릭터가 여전히 우리 레벨에 존재하며, 또한 플레이어 스타트가 없기 때문이다.

따라서 액터 배치 패널에서 플레이어 스타트를 가져오고, 캐릭터를 없애주면 된다.

 

이제 기본적으로는 플레이어 스타트 위치에서 플레이를 시작하고, 또는 여기에서 플레이 기능을 통해 원하는 곳에서 플레이를 시작할 수 있다.