Unreal Engine

[UnrealEngine] Enhanced Input System

programmer-faust 2025. 8. 1. 22:16
  • 순서
    1. Enhanced Input System이란?
    2. EnhancedInputSystem 헤더파일
    3. Enhanced Input System의 구성요소
    4. Enhanced Input System이 추구하는 설계 원칙
    5. Enhanced Input System의 단점 및 고려사항
  • Enhanced Input System이란?
    1. UnrealEngine5에서 제공하는 새로운 입력시스템이다.
    2. 입력 이벤트를 데이터 자산 기분으로 구성하고, 이를 EnhancedInputComponent를 통해 처리함
    3. 코드/블루프린트 내에서 키와 액션을 직접 바인딩하던 방식에서 Enhanced Input으로 더 많은 추상화 계층과 구조적 관리 방식을 제공함
  • EnhancedInputSystem 헤더파일
    1. "EnhancedInputComponent"
    2. "InputAction"
    3. "EnhancedInputSubsystems"
    4. "InputMappingContext"
  • Enhanced Input System의 구성 요소
    1. Input Action : 유저의 의도/행동을 표현하는 논리적 단위
    2. Input Mapping Context : Input Action과 실제 키보드/마우스/패드 입력을 연결하는 매핑 표
    3. Enhanced Input Component : 실제 게임 플레이 중, Input Action을 바인딩해서 함수를 호출하는 컴포넌트
    4. InputSubsystems : Input Mapping Context를 관리하는 시스템 컨트롤러, 보통 LocalPlayer 단위로 작동
    5. Trigger, Modifier : 입력값을 처리 / 변형하는 부가적 요소
  • Enhanced Input System이 추구하는 설계 원칙
    1. 단순히 입력을 처리하는 시스템이 아니라, 입력을 처리 방식의 구조화와 확장성을 목표로 설계됨
    2. 입력의 추상화 : 물리적인 입력을 직접 처리하지 않고 의도 중심의 액션 단위로 추상화 함
      • 플랫폼이나 디바이스에 독립적인 입력 처리
      • 하나의 동작에 여러 입력 장치를 맵핑 가능
    3. 입력 컨텍스트 기반 전환 : 게임의 상황에 따라 입력을 컨텍스트 단위로 분리하고 필요에 따라 우선순위 기반 병합 및 교체가 가능하도록 설계
      • 모드 전환이 많은 게임에서 코드 복잡도 감소
      • UI/게임/캐릭터 등 입력 분리 가능
    4. 구성 기반 설계 : 입력 액션, 트리거, 모디파이어 등의 구성 요소를 조립하는 방식으로 유연성을 확보함
      • 기능 단위로 쉽게 확장 가능
      • 다양한 입력 조건/필터 조합 가능
    5. 모듈화된 리맵핑 시스템 : 사용자 정의 키 설정을 구현할 수 있도록 InputAction->MappinContext->키 바인딩 구조를 모듈화
      • 키 리맵핑 구현이 쉬움
      • 사용자 접근성 향상
    6. 로컬 플레이어 기반의 입력 처리 : 멀티플레이어 환경에서도 각 LocalPlayer에 대해 독립적으로 입력 컨텍스트와 서브시스템을 할당할 수 있도록 설계
      • 로컬 분할 화면 지원
      • 입력 충돌 최소화
    7. 테스트 가능하고 블루프린트에 친화적 : InpuAction, MappinContext 등이 모두 데이터 자산 기반이기 때문에 코드 없이도 블루프린트 기반 설정 및 테스트가 가능함.
      • 디자이너 친화적인 워크 플로우
      • 빠른 프로토 타이밍
  • Enhanced Input System의 단점 및 고려사항
    • 기존 프로젝트에서는 마이그레이션 작업 필요
    • 설계 구조를 명확히 정하지 않으면 오히려 복잡해짐
    • 블루프린트와 코드를 섞어서 사용할 경우 연동에 주의 필요