언리얼 기초 10 Game Mode

Game Mode

언리얼의 Third Person 템플릿을 플레이하면 우린 기본 마네킹 캐릭터를 조작할 수 있다.

하지만 레벨(맵, 스테이지)상에는 아무 캐릭터도 배치되어 있지 않다.

게임 설정에 이미 우리가 조작할 기본 캐릭터의 클래스가 등록되어있기 때문. 게임이 실행되면 이를 동적으로 생성해준다.

화면 우측 하단 -> World Setting탭 -> Game Mode -> GameMode Override에

“Umzark01GameMode”라는 옵션이 선택되어있다 Umzark01은 필자의 프로젝트 명이다.

GameMode에서 이 기본 캐릭터를 설정을 해주며, 이외에도 게임 관련 기본 세팅이 이루어진다, 아래와 같다

  • Default Pawn Class – 플레이어가 사용할 기본 캐릭터
  • HUD Class – 게임의 UI를 위한 기본 클래스
  • Player Controller Class – 플레이어 입력을 처리하는 클래스
  • Game State Class – 게임의 현 상황, 커스터마이징 가능, 스테이지 몇인지, 플레이 타임이 얼마나 됐는지 등
  • Player State Class – 플레이어의 현 상황, 커스터마이징 가능, 유저 이름, 점수 등
  • Spectator Class – 플레이중이 아닌 유저가 있다면 그 유저의 상황, 잘 안씀.

Game Mode는 유니티의 Game Instance와 비슷한 개념일지 모르겠다.

단지 Game Instance는 유저가 게임을 키고 끄는 사이 단 하나만 존재한다면 Game Mode는 게임 레벨(스테이지, 씬, 지역)마다 따로 존재할 수 있다.

설정

위의 World Setting -> GameMode Override에 해당 레벨에 대한 게임모드가 정의되어있지 않으면 화면 상단 -> Edit -> Project Setting -> Maps & Mode 항목에서 Default Game Mode에 정의된 GameMode가 사용된다.

Default Pawn Class 등 앞서 말한 설정 내역들이 보인다.

Umzark01GameMode 자체는 C++ 클래스이다. Content Browser -> C++ Classes -> Umzark01(필자의 프로젝트명) 폴더에 보면 있다.

언리얼 프로젝트의 모든 것은 클래스로 되어있으며 그것은 C++ 클래스이거나 블루 프린트 파일이다.

모든 블루 프린트 파일도 결국 C++클래스의 자식인 C++ 클래스이다. 언리얼에서 직접 사용할 수 있는 C++ 클래스.

GameMode의 경우 게임화면에 직접 나타나는 객체(Actor)가 아니기 때문에 굳이 블루프린트화 될 필요는 없다. 다만 마네킹을 유저의 기본 캐릭터로 사용한다는 설정이 저 C++클래스에 하드 코딩 되어있으므로 우리만의 GameMode를 블루 프린트로 따로 만들자.

우리가 사용할 블루프린트 폴더 생성

Content Browser -> Content 폴더 -> 우측 여백 우클릭 -> New Folder -> 원하는 폴더명 입력(Blueprints)

게임모드 블루 프린트 생성

생성한 폴더 진입 -> 여백 오른 클릭 -> BluePrint Class -> Game Mode Base -> 이름 설정(BP_UmzarkGameMode)

만들어진 게임모드에 기본 캐릭터(Default Pawn)에 기본 마네킹 설정

만들어진 블루프린트 더블클릭 -> 블루프린트 에디트 화면 우측 Default Pawn Class -> (경우에 따라 Open Full Blueprint Editor을 클릭해줘야 편집창 보임) -> BP_ThirdPersonCharacter 선택 -> Compile -> Save (좌측 상단 디스크 아이콘)

레벨 뷰 탭의 World Setting에 해당 게임 모드 등록

이후 플레이 해보면 이전과 같이 우린 여자 마네킹을 조작할 수 있다.

Leave a Comment