다양한 게임 장르와 멀티 플레이까지 지원할 수 있도록 설계된 언리얼 프레임워크 다양한 클래스가 있지만, 게임플레이 프레임워크의 핵심 3가지 클래스는 게임모드, 플레이어 컨트롤러, 폰 이다.
게임모드
게임의 규칙을 관리하는 클래스, 눈에 보이지 않는 액터다.
게임 플레이 중 사건이 발생할 때 게임 진행의 심판 역할, 플레이어 입장을 준비하는 역할을 한다.
게임모드 클래스를 생성한 후 적용하는 방법이 두가지가 있다.
프로젝트 세팅 - Maps & Modes에서 설정하는 방법.
이 방법은 해당 레벨의 월드 세팅에 지정된 게임 모드가 없을 때 프로젝트 세팅의 게임 모드가 적용이 된다.
월드 세팅에서 설정하는 방법.
이 방법은 해당 레벨에만 특정 게임모드를 지정할 수 있다.
플레이어 컨트롤러
실질적으로 게임에 입장하는 플레이어 클래스, 가상 세계에서 플레이어를 대변하는 무형의 액터다.
플레이어 컨트롤러는 플레이어와 1:1로 소통하면서 폰을 조작할 수 있다.
플레이어가 입장할 때 마다 배정이 되고 배정된 플레이어 컨트롤러는 변경이 불가하다.
폰
플레이어 컨트롤러에게 조종당하는 액터다.
플레이어 컨트롤러는 정신, 폰은 육체의 개념으로 플레이어는 플레이어 컨트롤러를 통해서 현재 조종하는 폰을 버리고 다른 폰에 빙의가 가능하다.
레벨에 배치된 개체들과 충돌하면서 상호 작용하는 역할이다.
인간형 폰(= 캐릭터) 구현
폰에 Capsule Component, SkeletalMesh Component, FloatingPawnMovement Component, SpringArm Component, Camera Component를 붙이면 인간형 폰인 캐릭터가 된다.
Capsule Component
충돌 처리를 위한 컴포넌트다. 루트 컴포넌트의 역할도 겸한다.
특정 메시의 길이를 측정하고자 하면, 해당 애셋을 Viewport에 드래그 드랍.
Viewport 좌상단 Perspective 버튼 클릭 > Front 선택.
원하는 시작 위치에 마우스 휠 버튼 누르고, 끝 위치에 드래그 하면 cm 단위 값이 나옴.
돌아가고자 하면 Front 버튼 클릭 > Perspective로 변경.
SkeletalMesh Component
캐릭터 렌더링과 애니메이션을 담당한다.
FloatingPawnMovement Component
플레이어의 입력에 따라 캐릭터의 움직임을 담당한다.
캐릭터에서는 CharacterMovement Component를 사용한다.
CharacterMovement Component에는 점프와 같은 중력의 영향을 받는 움직임 제공하고 걷기 이외에도 기어가기, 날아가기, 수영하기 등의 다양한 움직임 모드를 제공한다.
멀티 플레이 환경에서 캐릭터들 간의 움직임을 자동으로 동기화한다.
SpringArm Component
3인칭 시점으로 카메라 구도를 편리하게 설정할 수 있도록 돕는 컴포넌트다.
카메라 지지대의 길이와 컴포넌트의 회전을 설정하면 된다.
Camera Component
가상 세계의 모습을 플레이어 화면에 전송해주는 컴포넌트다.
'언리얼 + cpp' 카테고리의 다른 글
| 언리얼 C++ (새로 알게 된 지식들) (0) | 2025.10.24 |
|---|---|
| 언리얼 C++ (Reflection, Delegate) (0) | 2025.10.23 |
| 언리얼 C++ 공부(CDO, GC) (0) | 2025.10.20 |
| 언리얼C++ 11일차(파티클, 사운드) (0) | 2025.09.26 |
| 언리얼C++ 10일차(UI 애니메이션, Widget Component) (0) | 2025.09.25 |