게임플레이 프레임워크 (언리얼 공식 문서)
Gameplay Framework in Unreal engine | Unreal Engine 5.8 Documentation | Epic Developer Community
Unreal Engine provides several core game systems such as game mode, player state, controllers, pawns, cameras, and so on.
dev.epicgames.com
- 레벨에 배치하거나 스폰할 수 있는 오브젝트의 기본 클래스는 **액터
- 액터 컴포넌트 컬렉션이 포함
- 액터 플레이 도중 네트워크 통해 프로퍼티 및 함수 호출의 리플리케이션지원
- 리플리케이션 : 서버에서 클라로 값을 복제해주는 시스템, 동기화 위해
- 카메라 통해 가상의 공간 볼 수 있음 (필수적), 플레이어가 월드를 볼 수 있음
- 플레이어가 월드를 보는 위치와 방향 계산 : 카메라 액터를 별도로 두거나 컴포넌트함
- 폰(Pawn) 클래스 : 제어 당하는, 입력을 통해 움직임 당하는 것. 플레이어나 AI 엔티티의 물리적 표현
- 캐릭터는 걸어 다닐 수 있는 특수유형의 폰
- 기본적으로 컨트롤러와 폰은 일대일 관계, 각 컨트롤러는 주어진 시간에 하나의 폰만 제어 가능
- 컨트롤러는 비물리적 액터. 폰 또는 폰에서 파생된 클래스 소유(빙의)하여 동작 제어하는 비물리적 액터
- 플레이어 컨트롤러는 가상공간 안에서 플레이어 대신하는 액터

게임모드
- 겜임의 규칙과 기본 캐릭터 결정, 컨트롤러 등을 결정하는 게임모드
https://dev.epicgames.com/documentation/unreal-engine/game-mode-and-game-state-in-unreal-engine?application_version=5.4
Game Mode and Game State in Unreal Engine | Unreal Engine 5.4 Documentation | Epic Developer Community
Overview of the Game Mode and Game State in Unreal Engine
dev.epicgames.com
플레이어 컨트롤러
- 눈에 보이지 않는 액터이며, 영혼으로 생각
- 플레이어의 의지(입력)을 나타냄
- 플레이어의 입력을 가장 먼저 받음
- 플레이어 컨트롤러는 Pawn(폰), Character(캐릭터), 소유(Posses)할 수 있음. / 한 번에 하나씩 폰 소유 가능, 한 폰에서 다른 폰으로 이동 가능
https://dev.epicgames.com/documentation/unreal-engine/controllers-in-unreal-engine?application_version=5.4
Controllers in Unreal Engine | Unreal Engine 5.4 Documentation | Epic Developer Community
An overview of Controllers in Unreal Engine
dev.epicgames.com
폰 (Pawn)
- 가상세계 투영되는 캐릭터
- 플레이어의 의지 반영해서 시각적으로 피드백 주는 대상
- 플레이어 컨트롤러가 소유하는 몸체
- 플레이어 컨트롤러가 입력을 먼저 받고, 그 뒤로 폰이 입력을 전달 받음
캐릭터 (Character)
- 캐릭터 유형은 폰의 확장 버전 / 폰 + 움직임 기능
- 걸어다니는 유형의 특별한 폰
게임 흐름 개요
https://dev.epicgames.com/documentation/unreal-engine/game-flow-overview?application_version=4.27
Gameplay Framework in Unreal engine | Unreal Engine 5.8 Documentation | Epic Developer Community
Unreal Engine provides several core game systems such as game mode, player state, controllers, pawns, cameras, and so on.
dev.epicgames.com
캐릭터가 생성되는 과정 (로그인 시스템)
- 게임 흐름 개요(언리얼 공식 문서)
- 게임 모드의 Default Pawn Class에 설정된 캐릭터(폰) 타입을 생성
- 캐릭터를 생성한 후에 배치할 위치는 Player Start 물체의 위치/회전 값을 참고해 배치
- 캐릭터를 생성하면서 플레이어 컨트롤러도 생성
- 플레이어 컨트롤러와 캐릭터가 모두 생성되면 플레이어 컨트롤러를 캐릭터에 빙의 처리
- 빙의 후 폰에 배치된 카메라를 카메라 관리자에 전달 → 메인 카메라(시야)로 사용됨
- 그 이후부터 플레이어(사용자, 게이머)가 입력을 전달할 수 있게 됨
이 과정으로 캐릭터 생성을 해볼거임.

블루프린트 클레스에서 게임모드베이스 :" 플레이중인 게임을 정의, 게임 규칙 정의, 게임 유형의 다양한 측면 정의
게임모드 설정해야함.

생성한 게임모드로 여기서 규칙 설정하면된다.

캐릭터는 컴포넌트가 어느정도 체계가 잡혀있다.
액터 타입 설정하고 그러면, 충돌해야하니까 충돌 컴포넌트, 방향 컴포넌트, 매시 컴포넌트, 이동 기능 컴포넌트

네트워크 처리도 다 끝나있는 컴포넌트이다. 알아서 동기화가 되어있다.
어느정도 기능이 다 있을 것이다.
매시는 시각적인 피드백을 제공하는 대표적인 컴포넌트 스켈레탈 매시 컴포넌트 : 뼈대가있는, 뼈대기반으로 처리하느 컴포넌트

피벗 *(Pivot) - 기준점
피벗이 올라가있다. 일반 물체는 가운데이지만 휴머노이드 (인간형) 은 발 밑에있다.
끌어내리고 x축 앞에보게 해야함.

cm 이다. 88 만큼내리면 된다.

그럼 캡슐의 아래끝지점이랑 발끝이랑 맞는다 88
Rotation 에 Z 축에서 -90 하면 ?

저걸 누르면, 플레이어 컨트롤러랑 뷰포트랑 연결된거 빠져나올 수 있음
폰이랑 컨트롤러 끊는 옵션이다.



SpringArm 을 추가하면 뷰포트를 보면 빨간색 선이 생겼는데 이건 보통 셀카봉 느낌이다. 지미집 카메
보통 이름은 Camera Boom 으로 수정함

카메라를 추가하여, 카메라의 위치를 조절하였다.,



게임모드는 자기가 가지고 있는 클레스에 대한 객체를 만든다. 플레이어 컨트롤러도 이때 같이 만들어짐
게임모드가 실행이 되서 아래와같이 생성이 된다.

unreal engine main to beginplay : 게임 루프 하는 것
입력하고 업뎃하고 랜더하고 언리얼 도 함.
호출을 시각적으로 보여준다.
매커니즘 흐름을 잘 알려준다.
이제 입력을 해야함.
게임모드에 지정한 값 - 클래스 타입을 지정했음 -> 타입을 기반으로 실제 객체 생성함
근데 이거 C++ 에서 안댐
클래스 타입을 지정하는거임 아까 게임모드에서 한것
RTTI를 두고 했었는데 이런식으로 하려면 타입에 생성자까지 뭐시기 해야하는 것
언리얼ㄹ이 자랑 할만한거 언리얼 프로퍼티 시스템
리플렉션에 대해서 알아두면 좋음, 굉장히 복잡한 내용이다.
향상된 입력 시스템 (유니티랑 사용방법이 비슷함, 동작 매커니즘이)
https://dev.epicgames.com/documentation/unreal-engine/enhanced-input-in-unreal-engine
Enhanced Input in Unreal Engine | Unreal Engine 5.8 Documentation | Epic Developer Community
An overview of the Enhanced Input Plugin in Unreal Engine
dev.epicgames.com

입력 액션 (Input Action)
이동을 먼저 처리한다.
Action 카테고리의 Value Type에서 입력 액션을 통해 얻어낼 값이 무엇이냐 정의를 해줘야한다.
방향키 이동을 할것이고 축방향사용할 것임 y축, x 축


2차원으로 만들어주고 저장, 액션은 이게 끝임
이게 확장성이 좋은 이유는, 같은 액션으로 방향키 키보드에 대응(매핑) 시킬 수 있고 조이스틱에도 대응시킬 수 있다.
값을 2차원으로 전달해줄거야 라는게 끝임
입력 매핑 컨텍스트 (Input Mapping Context)
뭐가 붙을진 모르겠지만 입력 대응 설정 해줄것임.
축 표현할때 XYZ 축으로 순서를 잡는다
W키는 Y에 해당하고 순서는 2번째임.
W 전달하는 하드웨어는 키이다. 2차원으로 제공하지않음, 0과 1로만 전달함. 그럼 1차원값임
X,Y 로 전달하게 됌
W는 Y키로 가게 되는데. YXZ 로 순서를 바꿔줘야함.
Modifier 에서 입력값 순서를 바꿔줄 수 있음
Swizzle Input Axis Values 1차원 입력을 2차원으로 바꿔줄 때 좋다
W는 Y축의 + 값임.
Y축의 +로 사용되면 댐

WSAD 키 서래정
S 입력은 Y에 -를 대응해줘야함.
전달 받은 값음 0, 1 이라 부호를 바꾸어줘야함. Negate는 부호를 뒤집는 것
이제 캐릭터에 적용시킬거임
BP_Character 의 EventGraph를 열어 추가
캐릭터에서 입력처리하려면 컨트롤러의 힘을 빌려야함
향상된 입력 시스템 (싱글톤)
게임플레이 엔진에서 쓸때 초기화가 명확히 끝나서 안전함
서브시스템을 상속받을 수 있다.
왜 입력이 XYZ 순서로 들어오냐, 외적
좌표축을 순서대로 표시할때 XYZ로 표기한다. 편의상..
외적

'Unreal' 카테고리의 다른 글
| [Unreal Blueprint] 머티리얼 피격 효과 (0) | 2026.09.23 |
|---|---|
| [Unreal Blueprint] 공격 (0) | 2026.09.21 |
| [Unreal Blueprint] 카메라 매니저 (0) | 2026.09.21 |
| 애니메이션 블루프린트 링크 (0) | 2026.09.17 |