언리얼 엔진/TIL

TIL - 베이스 캠프 5일차

journey46110 2026. 6. 12. 17:58

오늘은 기존 레벨에서 사용하던 캐릭터의 블루프린터를 복제하여 새 캐릭터를 생성하고, 플레이어 입력이 실제 캐릭터의 이동과 시점 회전, 점프로 연결되는 과정을 학습하였다.

 

먼저 언리얼 엔진 5의 Enhanced Input 시스템을 확인하였다. Input Mapping Context(IMC_Default)는 실제 입력 장치와 Input Action을 연결하는 역할을 하며, Input Action(IA)은 입력 동작 자체를 정의하는 에셋이다. 주요 Input Action으로는 이동을 담당하는 IA_Move, 시점 회전을 담당하는 IA_Look, 점프를 담당하는 IA_Jump가 있었다.

입력을 IA로 전달해주는 IMC

 

위 사진의 IMC_Default를 통해 이동 입력 매핑도 확인하였다. W, A, S, D 키는 각각 전진, 좌측 이동, 후진, 우측 이동에 사용되며, Enhanced Input에서는 Swizzle Input Axis Values와 Negate Modifier를 사용하여 입력값을 이동 벡터(X, Y) 형태로 변환한다는 점을 알 수 있었다.

 

Add Input Mapping의 블루프린트 구조

 

또한 캐릭터가 입력을 사용할 수 있도록 Add Mapping Context를 통해 IMC_Default를 등록하는 과정도 확인하였다. 이를 통해 단순히 Input Action을 생성하는 것만으로는 입력이 동작하지 않으며, Input Mapping Context를 플레이어에게 등록해야 실제 입력이 가능하다는 점을 이해할 수 있었다.

 

012
Camera Input, Movement Input, Jump Input의 블루프린트 구조

 

블루프린트에서는 Camera Input, Movement Input과 Jump Input의 동작 구조를 확인하였다. Camera Input은 마우스 입력을 받아 플레이어의 시점을 회전시키는 기능으로, Add Controller Yaw Input과 Add Controller Pitch Input을 통해 좌우 및 상하 회전을 처리하였다. Movement Input은 키보드 입력을 받아 캐릭터를 이동시키는 기능으로, 현재 컨트롤러가 바라보는 방향을 기준으로 Forward Vector와 Right Vector를 계산한 뒤 Add Movement Input을 통해 실제 이동을 수행하였다. Jump Input은 Space Bar 입력이 IA_Jump를 통해 전달되며, 최종적으로 Jump 함수를 호출하여 캐릭터가 점프하는 구조였다.

 

Default Pawn Class 변경

 

마지막으로 GameMode의 Default Pawn Class를 기존 'BP_ThirdPersonCharacter'에서 새로 만든 'MyCharacter'로 변경하였다. 이를 통해 게임 시작 시 플레이어가 조종할 캐릭터를 지정할 수 있으며, Default Pawn Class에 설정된 캐릭터가 생성되고 PlayerController에 의해 조종된다는 점을 알 수 있었다.

 

오늘 배운 내용의 전체 흐름을 순서대로 정리했다.

게임 시작
↓
GameMode
↓
MyCharacter 생성
↓
PlayerController Possess
↓
Add Mapping Context(IMC_Default)
↓
입력 활성화
↓
IA_Move / IA_Look / IA_Jump
↓
블루프린트 로직 실행
↓
이동 / 시점 회전 / 점프

 

단순히 캐릭터를 움직이는 기능을 구현하는 실습이었지만, 실제로는 Input Mapping, Input Action, 블루프린트, GameMode 등 여러 시스템이 연결되어 동작한다는 점이 인상 깊었다. 평소에는 당연하게 생각했던 이동과 점프 기능도 생각보다 복잡한 구조를 통해 구현된다는 것을 알 수 있었다. 앞으로는 단순히 기능을 사용하는 것에 그치지 않고, 각 노드와 시스템이 왜 필요한지 이해하며 학습해야겠다고 생각했다.

'언리얼 엔진 > TIL' 카테고리의 다른 글

TIL - 베이스캠프 8일차  (0) 2026.06.17
TIL - 베이스캠프 7일차  (0) 2026.06.16
TIL - 베이스캠프 4일차  (0) 2026.06.11
TIL - 베이스캠프 3일차  (0) 2026.06.10
TIL - 베이스캠프 2일차  (0) 2026.06.09