Unreal Engine 5에서 Character, Player Controller, 그리고 Game Mode는 게임 내 캐릭터의 움직임과 상호작용, 그리고 게임 로직을 제어하는 핵심 요소입니다. 이 세 가지는 서로 긴밀하게 연결되어 게임플레이를 구성하는 데 필수적인 역할을 합니다.
Character는 주로 플레이어나 NPC(Non-Player Character)를 나타내는 클래스입니다. 캐릭터 클래스는 이동, 점프, 공격과 같은 동작을 처리하기 위한 다양한 기능을 포함합니다. Character는 기본적으로 Capsule Component(캡슐 콜리전)와 Mesh(3D 모델), Character Movement Component(캐릭터 이동 컴포넌트)를 포함하며, 이러한 구성 요소들은 캐릭터의 충돌, 시각적 표현, 이동 방식을 제어합니다. 예를 들어, 캐릭터가 앞으로 걷는 경우, Character Movement Component가 키보드 입력을 받아 캐릭터를 특정 속도로 이동시킵니다.
캐릭터 예제를 보면, 만약 플레이어가 W 키를 눌렀을 때 캐릭터가 앞으로 이동하도록 하고 싶다면, 캐릭터 클래스에서 입력을 받아 이동 함수를 호출합니다. 이때 “Add Movement Input”이라는 함수를 사용해 캐릭터를 앞으로 이동시킵니다. 이를 통해 플레이어의 입력에 따라 캐릭터가 상호작용하고 움직일 수 있습니다.
Player Controller는 플레이어의 입력을 받아 이를 처리하고 캐릭터에 전달하는 역할을 합니다. 즉, 마우스나 키보드와 같은 입력 장치로부터 오는 명령을 해석하여 캐릭터가 어떻게 행동할지를 결정하는 중요한 클래스입니다. Player Controller는 단순히 입력을 처리하는 것뿐만 아니라, HUD(헤드업 디스플레이)를 업데이트하거나 게임 내에서 카메라를 제어하는 데도 사용됩니다. 플레이어가 화면을 클릭하거나 캐릭터를 회전시키는 등 다양한 상호작용을 할 때 Player Controller가 이를 처리합니다.
Player Controller의 예를 들어 보면, 만약 플레이어가 마우스 오른쪽 버튼을 눌렀을 때 캐릭터가 달리기 모드로 전환되도록 하고 싶다면, Player Controller 클래스에서 마우스 입력을 감지하고 캐릭터의 속도를 증가시키는 로직을 실행할 수 있습니다. 이렇게 Player Controller는 입력과 캐릭터의 동작을 연결하는 중간 다리 역할을 합니다.
Game Mode는 게임의 전반적인 규칙과 흐름을 관리하는 클래스입니다. 게임의 시작, 종료, 리셋 같은 이벤트를 관리하며, 플레이어가 게임에 어떻게 참가하고 승리 조건이 무엇인지와 같은 규칙을 정의합니다. Game Mode는 기본적으로 플레이어가 어떤 캐릭터로 시작할지, 어느 Player Controller를 사용할지, 그리고 HUD가 어떻게 표시될지를 결정합니다. 게임의 전체적인 룰과 흐름을 관리하는 중심 클래스라고 할 수 있습니다.
예를 들어, Game Mode에서 게임이 시작될 때 특정 캐릭터가 플레이어로 등장하도록 설정할 수 있습니다. 또한 게임의 승리 조건을 설정하는데, 예를 들어 플레이어가 특정 점수에 도달하면 게임이 종료되도록 할 수 있습니다. 이렇게 Game Mode는 게임의 기본 구조와 규칙을 정의하고 관리하는 중요한 역할을 합니다.
세 가지 개념을 종합한 예제를 생각해보면, 플레이어가 W 키를 누르면 Player Controller가 이를 감지해 캐릭터가 앞으로 이동하는 명령을 보냅니다. 이때 Character 클래스는 이동을 처리하고, Game Mode는 이러한 게임의 흐름이 전체적으로 어떻게 이루어질지를 관리합니다.