Lyra の 入力設定システム は、各種ゲームで発生する、入力構成セットアップに関わる多くの共通問題を解決するために設計されました。これは 拡張入力システム をベースにしています。
UGameFeatureAction_AddInputConfig

UGameFeatureAction_AddInputConfig は、拡張入力の PlayerMappableInputConfig データ アセットの登録を処理する Game Feature アクション です。PlayerMappableInputConfigs にはローカル プレイヤーに追加される入力マッピングが含まれます。たとえば「W」キーを押すとキャラクターが前進するなどがあります。
つまり、各ゲーム機能プラグインは、ゲーム エクスペリエンスを実現するために、独自のキー バインディング セットを登録するということです。入力マッピングはゲーム機能プラグインがロードされるたびに登録されます。つまり、メインメニューなどでその時点でアクティブではない場合でも、ユーザーが使いやすいようにキーバインディングを変更できます。
関連 Game Feature がアクティブになるまで、入力マッピングは「アクティブ化」されません。マッピングは、使用するプラットフォーム条件が満たされた場合にのみ、アクティブになります。たとえば、関連する SupportsMouseAndKeyboard
プラットフォーム特性がある場合にのみ、マウスとキーボード マッピングがアクティブになります。

これらのプラットフォーム特性は、プラットフォーム固有の入力マッピング、特に多様な入力を利用できるようなプラットフォームを定義する場合に便利です。たとえば、最新のモバイル プラットフォームでは、使用する物理ボタンは、コンソール プラットフォームのコントローラーよりも少なくなります。
[Type (タイプ)] フィールドは、入力デバイスが変わったときにマッピング構成を変更するために既存の機能を拡張する場合に役に立ちます。Common Input Subsystem (共通入力サブシステム) の OnInputMethodChanged
デリゲートで実行できます。
ULyraSettingsLocal
Game Feature が入力コンフィグを登録すると、それらはゲーム設定に格納されます。この設定ですべての入力マッピングとその時点でアクティブであるものがわかります。ULyraInputComponent
はこれらの登録されたコンフィグを使用して、プレイヤーが初期化されたときにマッピングを拡張入力に追加します。
これらの設定には、ローカル プレイヤーのあらゆる要素がこの情報にアクセスできるように、マッピング コンフィグがアクティブ/非アクティブになったときのコールバックがあります。ゲームプレイ状況で、さらに設定メニューの更新時に役に立ちます。
その時点で登録された入力マッピングとカスタム キーバインドを保持しながら、設定には、狙いの感度や見ている方向の軸の反転など、エクスペリエンスに対する変更を定義する場所が用意されています。これらの設定は入力モディファイアで使用でき、期待する入力動作を実装できます。
Lyra 入力モディファイア
入力モディファイアは、raw 入力の値を、入力トリガーに送信する前に変更するプリプロセッサーです。これは Lyra がゲームパッドの感度、デッドゾーン、狙いの支援などの設定を適用する方法です。一例として、ユーザーの設定 ULyraInputModifierGamepadSensitivity
に基づいてゲームパッドの感度を適用する方法を説明します。
まず、「狙いの感度」に対するデータ アセット ULyraAimSensitivityData
を定義しています。これはゲームパッドの感度の列挙型を関連する float スカラー値にマップします。データ アセットでこれを定義すると、複数の場所で再利用できる機能になります。さらにデザイナーやゲームプレイ プログラマーが値に簡単にアクセスできるようになります。
ModifyRaw_Implementation
関数は入力操作すべてを実行するものです。この関数は const UEnhancedPlayerInput*
パラメータをとるので、これを使用して所有するローカル プレイヤーを取得できます。所有するプレイヤーを取得すると、そのプレイヤーの関連設定が得られます。ここから、その時点のゲームパッドの感度設定を取得し、さらにスケーリングするための float 値を取得するため Aim Sensitivity データ アセットを検索できます。