라이라 입력 세팅

라이라(Lyra)에서 입력 세팅 시스템을 사용하여 다양한 일반 입력 환경설정 설정을 해결하는 방법을 간략하게 설명합니다.

Choose your operating system:

Windows

macOS

Linux

라이라의 입력 세팅 시스템(Input Settings System) 은 게임에서 발생하는 입력 환경설정 설정과 관련된 다양한 문제를 해결하도록 설계되었습니다. 이 시스템은 개선된 입력 시스템을 기반으로 합니다.

UGameFeatureAction_AddInputConfig

게임 피처 액션 환경설정 메뉴

UGameFeatureAction_AddInputConfigPlayerMappableInputConfig 데이터 에셋 등록을 담당하는 게임 피처 액션(Game Feature Action) 입니다. PlayerMappableInputConfigs에는 'W' 키를 눌러 캐릭터를 앞으로 이동하는 것과 같이, 로컬 플레이어에 추가할 입력 매핑이 포함되어 있습니다.

즉, 각 게임 피처 플러그인은 그 경험에 사용되는 자체 키 바인딩 세트를 등록합니다. 입력 매핑은 게임 피처 플러그인이 로드될 때마다 등록됩니다. 따라서, 메인 메뉴 등에서 현재 활성화되어 있지 않더라도 사용자가 모든 경험에 대해 키 바인딩을 변경할 수 있습니다.

입력 매핑은 연결된 게임 피처가 활성화될 때까지 플레이어에 대해 '활성화'되지 않습니다. 매핑은 해당 플랫폼 조건이 충족될 때만 활성화됩니다. 예를 들어, 마우스 및 키보드 매핑은 연결된 SupportsMouseAndKeyboard 플랫폼 특성이 있는 경우에만 활성화됩니다.

플랫폼 특성 매핑

이러한 플랫폼 특성은 특히 플랫폼에서 사용 가능한 입력이 바뀔 수 있는 경우 플랫폼별 입력 매핑을 정의하는 데 유용할 수 있습니다. 예를 들어, 최신 모바일 플랫폼에는 콘솔 플랫폼의 컨트롤러보다 사용할 수 있는 물리적 버튼이 더 적습니다.

유형(Type) 필드는 입력 디바이스가 변경될 때 매핑 환경설정을 변경하도록 기존 함수 기능을 확장하려는 경우에 유용합니다. 일반 입력 시스템의 OnInputMethodChanged 델리게이트를 통해 이러한 작업을 할 수 있습니다.

ULyraSettingsLocal

게임 피처가 입력 환경설정을 등록하면, 입력 환경설정이 게임 세팅에 저장됩니다. 세팅에서는 모든 입력 매핑과 현재 활성화된 입력 매핑을 인식합니다. ULyraInputComponent 는 이렇게 등록된 입력 환경설정을 사용하여 플레이어가 초기화될 때 개선된 입력에 매핑을 추가합니다.

세팅에는 매핑 환경설정이 활성화되거나 비활성화되는 경우에 대한 콜백이 있습니다. 따라서 로컬 플레이어가 있는 모든 항목에서 해당 정보에 액세스할 수 있고, 이는 게임플레이 상황뿐 아니라 세팅 메뉴를 업데이트하는 경우에도 유용할 수 있습니다.

현재 등록된 입력 매핑과 커스텀 키 바인드를 보유하는 것 외에도, 세팅에서는 조준 민감도나 축 반전 같은 경험에 대한 모든 수정 사항을 정할 수도 있습니다. 그러면 입력 모디파이어(Input Modifier)에서 이러한 세팅을 사용하여 원하는 입력 동작을 구현할 수 있습니다.

라이라 입력 모디파이어

입력 모디파이어(Input Modifier)는 입력 트리거로 보내기 전에 원시 입력값을 변경하는 프리 프로세서입니다. 라이라에서는 이 방식으로 게임패드 민감도와 데드존, 조준 지원 같은 세팅을 적용합니다. 사용자 세팅 ULyraInputModifierGamepadSensitivity 를 기반으로 게임패드 민감도를 적용하는 방법을 예로 들어보겠습니다.

먼저, '조준 민감도'에 대한 데이터 에셋인 ULyraAimSensitivityData 를 정의했습니다. 이렇게 하면 게임패드 민감도 열거형이 관련된 float 스칼라 값에 매핑됩니다. 데이터 에셋에 이를 정의하면, 여러 위치에서 재사용할 수 있을 뿐 아니라 디자이너나 게임플레이 프로그래머가 이 값에 쉽게 액세스할 수 있습니다.

ModifyRaw_Implementation 함수는 모든 입력 조작을 수행하는 함수입니다. 이 함수는 const UEnhancedPlayerInput* 파라미터를 받으므로, 이를 사용하여 소유한 로컬 플레이어를 가져올 수 있습니다. 소유한 플레이어를 가져오면, 해당 플레이어에 연결된 세팅을 가져올 수 있습니다. 이 세팅에서 현재 게임패드 민감도 세팅을 가져와 조준 민감도 데이터 에셋에서 조회하여 스케일 조절 기준이 되는 float 값을 가져올 수 있습니다.