본문 바로가기
Unreal 게임 개발/Unreal Tool 활용

Unreal Enhanced Input (향상된 입력) - 1

by daisy0461 2023. 1. 22.

https://docs.unrealengine.com/5.0/en-US/enhanced-input-in-unreal-engine/

 

Enhanced Input

An overview of the Enhanced Input Plugin.

docs.unrealengine.com

이 도큐먼트를 기반으로 설명한다.

 

위 글을 보면 개요를 간단하게 요약을 하자면

복잡한 Input 또는 컨트롤 재매핑과 같은 고급 기능들을 제공하고

스틱을 사용할 때 무시하는 입력의 정도, 여러개를 같이 입력했을 때 우선순위 등 다양한  설정이 훨씬 쉽 가능하다는 것이다.

 

Edit->Plugins에서 Enhanced Input을 찾아서 체크를 해주고 Unreal을 재시작해주면 된다.

 

이제 Edit -> ProjectSettings에서 Input으로 들어가서 Default Classes를 보면

Default Player Input Class는 PlayerInput, Default Input Component Class는 InputComponent로 되어있다.

이 두가지를 각각

EnhancedPlayerInput과 EnhancedInputComponent로 바꿔주면 된다.

이전에 작업을 했던게 있더라도 모두 상속을 받고 있기 때문에 바꿔도 무관하다.

 

이 Enhanced Input의 특징은 크게 4가지가 있다.

  1. Input Action
    Input Action은 Enhanced Input System과 Code와의 커뮤니케이션이다.
    Input Action은 점프, 문을 열고 닫고, 그리고 걷기, 달리기 등 다양한 상태를 나타낼 수 있다.
    버튼을 누르거나 눌리고 있는 상태 또한 체크가 가능하다.
    최대 3개의 독립적인 부동 소수점 축에 대한 입력 값을 보고할 수 있다.

    예시로 "Pick up"이 있다면 캐릭터가 무엇을 집을 것인지 true/false가 필요하고
    "Walk"는 방향과 속도를 필요로 하기 때문에 2개의 축이 필요하다.

  2. Input Mapping Contexts
    Input Mapping Contexts는 uesr input을 Input Action에 매핑하고 이 작업을 동적으로 추가, 제거 또는 우선순위를 지정할 수 있다.
    예를 들어 O라는 버튼이 문을 열 수 있고 인벤토리에서 아이템을 선택할 수 있는 키로 동시에 지정이 되었다고 하자
    그러면 캐릭터가 문 근처에 있을 때 마다 "Open door" Context를 추가하고
    인벤토리에 들어왔을 시에는 "Open door"보다 우선순위가 높은 "Select" Context를 지정해서 사용할 수 있도록 한다.
    다음과 같이 설정하면 문 근처에서 인벤토리를 열어서 아이템을 선택하고 싶을 때
    "Select"가 우선순위가 높기 때문에 해당 작업이 실행된다.
    인벤토리에서 나가면 "Select"를 제거해서 "Open door"를 사용할 수 있도록 한다.

  3. Modifiers
    Modifiers는 유저의 장치에서 오는 Raw input값을 조정한다.
    Input Mapping Contexts에는 Raw Input(버튼 누르기, 마우스 움직임 등)과 관련된 Modifier가 얼마든지 있을 수 있다.
    Common Modifier의 예시로는 DeadZone(패드 스틱을 움직일 때 센터에서 부터 얼마나 움직여야 실행을 할지 결정),
    프레임에 대한 Input Smoothing, Local에서 World로 Input vector 변환 등이 포함된다.
    또한 자체 Modifier도 만들 수 있다.

  4. Triggers
    Modifiers가 Input을 먼저 조정하고 Trigger에게 넘겨준 값 또는 다른 Input Action값의 크기를 사용하여 Input Action을 활성화할지 결정한다.
    Input Mapping Contexts의 모든 Input Action은 하나 이상의 Trigger를 가질 수 있다.
    예를 들어 사진을 찍으려면 카메라 조작을 위한 입력 동작이 활성화되어있는 동안 사진을 찍기 위해 버튼을 클릭해야할 수도 있다.

    이 4가지 개념들을 결합해서 간단한 것부터 복잡한 것 까지 신속하게 설계하고 설정할 수 있다.
    또한 프로젝트 코드를 변경하지 않고도 이런 작업을 할 수 있다.

'Unreal 게임 개발 > Unreal Tool 활용' 카테고리의 다른 글

Unreal Enhanced Input (향상된 입력) - 3  (0) 2023.01.25
Unreal Enhanced Input (향상된 입력) - 2  (0) 2023.01.24
Unreal PostProcess  (0) 2023.01.10
Unreal foliage  (2) 2023.01.03
Unreal Landscape - 3  (0) 2022.12.29