kwivaro웹 도구
UNREAL · UI · 게임 시스템

조작키 안내 UI를 IMC에서 자동으로 뽑기

게임 클라이언트 개발자2026-09-105분

조작키 안내 화면을 손으로 관리하면 키를 바꿀 때마다 안내도 따로 고쳐야 하고, 결국 실제 조작과 어긋난다. 그래서 안내를 실제 입력 매핑(IMC)에서 자동 생성하기로 했다.

데이터 소스는 IMC

UInputMappingContext(IMC_Default)의 매핑을 덤프해 안내를 만든다.IA_Move(WASD), IA_Attack(LMB), IA_Burst(E), IA_Interaction(F)처럼 Enhanced Input 액션과 키가 이미 IMC에 다 있으니, 그걸 그대로 읽으면 리바인딩이나 매핑 변경이 안내에 자동 반영된다.

UE5.7에서 매핑 접근 경로가 바뀌었다

예전 mappings 프로퍼티가 deprecated돼서, 아래처럼 default_key_mappings를 거쳐야 한다.

# 예전: imc.get_editor_property('mappings')  # deprecated
imc.get_editor_property('default_key_mappings').get_editor_property('mappings')

IMC에 없는 키는 따로 합쳐야 한다

IMC 매핑만으로는 안내가 실제 조작과 어긋난다. PlayerController::InputKey에 하드코딩된 키 (F10 설정, T 퀵슬롯 휠, I 인벤토리, ESC 일시정지 등)는 IMC에 없기 때문이다. 그래서 IMC 매핑 + 하드코딩 키를 합쳐서 표시했다. 위젯은 URetrieveGamePanelWidget 서브클래스로, 카테고리별 색상으로 구분했다.

배운 점

안내 UI를 데이터 소스(IMC)에서 파생시키면 리바인딩·매핑 변경이 자동으로 반영돼 어긋날 일이 준다.

단, 코드에 하드코딩된 키는 IMC에 안 잡힌다. 두 출처를 합쳐야 화면 안내가 실제 조작과 일치한다. 그리고 UE5.7부터 IMC 매핑 접근 경로가 default_key_mappings 아래로 바뀐 점도 기억해 둘 것.