CommonUI プラグイン は、Enhanced Input アクションを限定的にサポートします。
UE 5.2 の時点で、拡張入力のサポートは CommonUI の他の機能ほど十分にテストされていません。現時点では、この機能を使用するタイトルのシッピングは推奨していません。
1. 必要な設定
このページでは、CommonUI について次の設定ステップを実行済みであることを前提としています。
CommonUI プラグインと Enhanced Input プラグインの両方を有効にする。
ビューポート クラスを CommonGameViewportClient に設定する。
Accept や Back アクション用に InputData を設定する。
2. CommonUI の拡張入力を有効にする
CommonUI プラグインと Enhanced Input プラグインを有効にしたら、[Project Settings (プロジェクト設定)] を開いて [Game (ゲーム)] > [Common Input Settings (共通入力設定)] の順に移動し、[Enable Enhanced Input Support (拡張入力サポートを有効)] を true に設定します。これにより、2 つのプラグインが連携するためのサポートが有効になります。
3. CommonUI 用の Enhanced Input アクションを設定する
Enhanced Input アクションは、継続中 のイベントや トリガー済み のイベントなどの特殊なバリアントを含む入力イベントを、どこへでもバインドすることができます。ただし、FaceButtonTop、Accept、Back などの UI アクション バインディングの大部分をグローバルにバインドすることは、予期しないタイミングでのユーザーの入力の結果として意図しないイベントが発生する可能性があるため、望ましくなく、無秩序となります。CommonUI では、この問題を 汎用的なアクション で解決します。汎用的なアクションは UI 要素にバインドされますが、CommonUI の拡張入力イベントをトリガーしません。
CommonUI 内に Enhanced Input アクションを設定するには、次の手順を実行します。
コンテンツ ブラウザで汎用的な 入力アクション を作成し、「
IA_UI_GenericAccept
」という名前を付けます。入力アクションに PlayerMappableKeySettings を追加します。
PlayerMappableKeySettings の [Settings (設定)] で、ICommonMappingContextMetadataInterface を実装するオブジェクトに [Metadata (メタデータ)] フィールドを設定します。
CommonUI 以外のものに対して入力アクション メタデータが必要になる場合があります。そのため、柔軟性を保つ目的で
ICommonMappingContextMetadataInterface
を実装するクラスを使用することをお勧めします。コンテンツ ブラウザで右クリックし、[Miscellaneous (その他)] > [Data Asset (データ アセット)] をクリックしてデータ アセットを作成します。
データ アセット クラスとして
ICommonMappingContextMetadataInterface
を実装するメタデータ クラスを選択します。「Metadata UI_IA_GenericMetadata」という名前を付けます。UCommonMappingContextMetadata をデフォルトとして使用するか、カスタム仕様のアセット クラスを使用することができます。UI_IA_GenericMetadata を開き、設定を次のように編集します。
Is Generic Input Action: True
Per Action Enhanced Input Metadata: IA_UI_GenericAccept
Nav Bar Priority: 10
CommonUI で入力アクションがブロードキャストされないようにするには、Is Generic Input Action にチェックを入れます。
このデータ アセットは、CommonUI アクション データを設定できるメタデータ オブジェクトを提供します。すでに CommonUI に慣れている場合は、CommonUI のデータ テーブルの Nav Bar Priority 設定を見たことがあるかもしれません。UCommonInputMetadata から継承することにより、追加のメタデータで入力アクションを拡張することもできます。
Per Action Enhanced Input Metadata を使用すると、アクションごとに 1 つのアセットを作成するのではなく、1 つのアセットで複数のアクション用のメタデータを処理することができます。
ステップ 5 ~ 6 を繰り返しますが、今回は Is Generic Input Action のチェックをオフにします。このメタデータの名前を「
UI_IA_SpecificMetadata
」にします。これにより、汎用的ではない任意の入力アクションで使用できるメタデータ クラスになります。入力アクションを開きます。メタデータを UI_IA_GenericMetadata に設定します。入力アクションに、CommonUI で機能するために必要な情報がすべて含まれるようになりました。
メタデータの Is Generic Input Action が有効になっていない入力アクションの場合、他の入力アクションのように入力をイベントにバインドすることができます。
4. CommonUI の入力マッピング コンテキスト (IMC) を作成する
CommonUI の入力マッピング コンテキスト (IMC) は、他の IMC と同様に動作します。入力マッピング コンテキストを作成するには、コンテンツ ブラウザを右クリックして、[Input (入力)] > [Input Mapping Context (入力マッピング コンテキスト)] の順にクリックします。次の図は、CommonUI で使用する IMC の例です。
UI に IMC が使用されていることを明確にするため、「IMC_UI_GenericActions
」のような名前にすることをお勧めします。
5. CommonUI で入力アクションと入力マッピング コンテキストを使用する
入力アクションは、以前に DataTableRows を使用して入力情報を指定したすべての場所で使用できます。主な例を以下に示します。
CommonButtonBase。
これは、UI ではない入力アクションのキーを表示できます。
共通 UI 入力データ。ここでデフォルトのナビゲーション アクションが定義されます。
これらの設定が表示されない場合は、[CommonUI の Enable Enhanced Input (拡張入力を有効)] 設定が true になっていることを確認します。
アクティブ化可能なウィジェットでは、IMC を指定してアクティブ化や非アクティブ化の際に適用したり削除したりすることができます。構成を整えるため、他の最上位のゲーム IMC を適用する場合は必ず汎用的な UI IMC を適用することをお勧めします。