본문 바로가기
프로그래밍

👨‍💻 [Unreal] 언리얼 엔진에서 향상된 입력 시스템(Enhanced Input System) 을 활성화하는 방법은 어떻게 되나요?

by 밝음의기둥 2024. 12. 5.
반응형

👨‍💻 안녕하세요, 윌리 프로젝트의 윌리 입니다.

언리얼 엔진에서 향상된 입력 시스템(Enhanced Input System) 을 활성화하는 방법은 어떻게 되는지 간략히 알아보았습니다.


질문 >

언리얼 엔진에서 향상된 입력 시스템(Enhanced Input System) 을 활성화하는 방법은 어떻게 되나요?

답변 >

향상된 입력 시스템(Enhanced Input System)을 활성화하려면 다음 단계를 따르세요. 이 시스템은 언리얼 엔진 5에서 새로운 입력 처리 방식으로 도입되었으며, 이를 사용하려면 관련 플러그인을 활성화하고 설정을 구성해야 합니다.


1. 플러그인 활성화

Enhanced Input System은 플러그인을 활성화해야 사용할 수 있습니다.

  1. 플러그인 메뉴 열기:
    • Edit > Plugins 메뉴를 클릭하여 플러그인 관리 창을 엽니다.
  2. Enhanced Input 검색:
    • 검색창에 Enhanced Input을 입력합니다.
  3. 플러그인 활성화:
    • "Enhanced Input" 플러그인을 찾고 체크박스를 선택해 활성화합니다.
  4. 에디터 재시작:
    • 플러그인을 활성화한 후에는 언리얼 에디터를 다시 시작해야 합니다.

2. 프로젝트 기본 입력 클래스로 전환

향상된 입력 시스템을 사용하려면 프로젝트에서 해당 시스템을 기본 입력 처리 방식으로 설정해야 합니다.

  1. Project Settings 열기:
    • Edit > Project Settings 메뉴를 클릭합니다.
  2. Default Input Class 설정:
    • 왼쪽 메뉴에서 Input을 선택합니다.
    • Default Input ClassEnhanced Player Input으로 변경합니다.

3. Enhanced Input 설정 구성

Input Mapping Context 생성

  1. Input Mapping Context 생성:
    • 콘텐츠 브라우저에서 우클릭 > Input > Input Mapping Context를 선택하여 새 매핑 컨텍스트를 생성합니다.
    • 생성된 매핑 컨텍스트를 열어 키보드, 마우스, 컨트롤러 입력을 정의합니다.
  2. Input Action 생성:
    • 우클릭 > Input > Input Action을 선택하여 입력 동작(Action)을 정의합니다.
    • 예: Jump, Move, Fire 등의 입력 동작 추가.
  3. 키 매핑 설정:
    • Input Mapping Context에서 생성한 Input Action을 선택하고 키보드, 마우스, 또는 컨트롤러 입력을 매핑합니다.

4. 플레이어 컨트롤러에서 매핑 컨텍스트 적용

플레이어 컨트롤러나 캐릭터 클래스에서 매핑 컨텍스트를 활성화해야 합니다.

void AMyPlayerController::BeginPlay()
{
    Super::BeginPlay();

    // Enhanced Input Subsystem 가져오기
    UEnhancedInputLocalPlayerSubsystem* Subsystem = ULocalPlayer::GetSubsystem<UEnhancedInputLocalPlayerSubsystem>(GetLocalPlayer());
    if (Subsystem)
    {
        Subsystem->AddMappingContext(MyMappingContext, 0); // 우선순위 0
    }
}

  • AddMappingContext를 사용하여 특정 Input Mapping Context를 추가합니다.

5. 입력 처리 구현

향상된 입력 시스템은 UEnhancedInputComponent를 통해 입력 처리를 관리합니다.

캐릭터 클래스에서 입력 바인딩

void AMyCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
{
    Super::SetupPlayerInputComponent(PlayerInputComponent);

    UEnhancedInputComponent* EnhancedInput = Cast<UEnhancedInputComponent>(PlayerInputComponent);
    if (EnhancedInput)
    {
        EnhancedInput->BindAction(JumpAction, ETriggerEvent::Started, this, &AMyCharacter::Jump);
        EnhancedInput->BindAction(MoveAction, ETriggerEvent::Triggered, this, &AMyCharacter::Move);
    }
}


장점

  • 동적 입력 체계: 매핑 컨텍스트를 상황에 따라 동적으로 전환할 수 있습니다.
  • 확장성: 복잡한 입력 로직과 다양한 입력 디바이스를 손쉽게 지원.
  • 리매핑: 플레이어가 입력을 자유롭게 변경 가능.

결론

Enhanced Input System은 강력하고 유연한 입력 처리 도구로, 복잡한 입력 로직이나 다양한 입력 장치를 사용하는 게임 개발에 적합합니다. 위 단계를 통해 Enhanced Input을 활성화하고 설정하면, 기존 입력 시스템보다 발전된 기능을 사용할 수 있습니다.


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


🎬 유튜브 채널 🎬

 

위로그@WiLog

📢 안녕하세요, 위로그@WiLog 시청자 여러분, 저는 윌리 입니다. 📢 위로그@WiLog 는 자기주도학습을 목적으로 라이브 스트리밍을 합니다. 📢 1인 게임 개발을 목표로 Unreal과 Blender를 학습 중입니

www.youtube.com

🎬 치지직 채널 🎬

 

위로그 채널 - CHZZK

지금, 스트리밍이 시작됩니다. 치지직-

chzzk.naver.com


반응형