こんにちは。しゅみぶろぐです。
今回はUE5を学習している際に出てきた、Enhanced inputの簡単な仕組みを学んだので解説していきたいと思います。
キー入力を可能にするために使われている仕組みです。
少し複雑な仕組みでしたので初心者が最低限理解しておくべきことをまとめています。
この記事で分かること
・Enhanced Inputの仕組み
・簡単な使い方
UE5のテンプレートでも使用されているものもあるので多くのゲーム制作で利用するものだと思われます。
今回はこちらの動画と公式ページを参考にさせていただきました。ありがとうございます。
Enhanced Inputとは?
簡単に説明
ざっくり言うと、
プレイヤーのキー入力の管理を簡単にしてくれるもの。
です。
入力の管理に加え、単純な押下判定だけでなく「ダブルクリック」「長押し」などにも対応可能です。
またCtrlキーを押したとき、歩行時には「しゃがみ」、ダッシュ時には「滑り込み」のアクションを行うようにタイプ別の異なるアクションを可能にします。
最低限理解しておきたい仕組み
従来の入力システムでは、
W(入力) → MoveForward(動作)
Space → Jump
と直接的に設定していたのに対し、Enhanced Inputでは
W(入力) → IA_Move(定義)
Space → IA_Jump
と定義したアクションをキーと対応させ、
IA_Move(定義) → MoveForward(動作)
IA_Jump → Jump
のように定義内で動作を設定させます。
従来の方法では、行動一つ一つにアクションを設定していました。開発者目線見ずらい…。
しかし、これをEnhanced Inputへと置き換えることでアクション名での管理が可能になります。
見やすく理解がしやすい!しかも入力切替も簡単に!
4ステップ
実際に設定を行うときは以下の4ステップで組み立てます。
1.プレイヤーの行う行動名の定義
↓
2.キー入力と定義の紐づけ
↓
3.宣言と入力設定の適用
↓
4.定義と動作の紐づけ
ここまで理解出来たら、あとは実際に手を動かすだけです!!
実際に使うときは…
実際にキャラクターのジャンプを例に、4ステップと照らし合わせて説明をします。
詳しくは僕が参考させていただいた以下の動画を参考にしてください。
ステップ1,2はBlueprint外で設定を行います。
ステップ1:行動名の定義

ここでは「IA_jump」がそのまま行動名
アクションを作成 = 定義 と考えてください
「Content Browser内で右クリック」→「Input(入力)」→「Input Action(入力アクション)」
から行動名を定義します。ここでつけた名前がそのまま行動名で、作業はこれだけです。
ステップ2:キー入力と定義の紐づけ

「Content Browser内で右クリック」→「Input(入力)」→「Input Mapping Context(入力マッピングコンテキスト)」→「Mappingsのプラス」
から入力設定を行います。
ここでいう入力設定はMapping Contextと呼ばれます。
キー入力と定義したアクションの関係性が設定されたもの
W → IA_Move のような
ステップ3:宣言と入力設定の適用
ここからはBlueprint内での処理に入ります。
まずはEnhanced Inputを使うぞ!っていうことを宣言する必要があります。
ゲーム開始時に入力設定をプレイヤーに登録する作業ですね(ステップ3)。
下のようなノード構成で宣言します。この構成はUE5のテンプレートでも使用されています。

お決まりの準備処理みたいなものです。
最初のうちは「Add Mapping Context」ノード(Mapping Contextを追加するノード)のみ理解しておけば問題ないと思われます。
他のノードは追々理解していきましょう。
ステップ4:定義と動作の紐づけは別に設定

宣言のノードに加え、定義と動作の紐づけは上のように別で行う必要があります。
まとめ
Enhanced Inputとは
プレイヤーのキー入力の管理を簡単にしてくれるもの。
でした。従来のシステムより扱いやすいものとなっています。
簡易的な処理であれば、今回紹介した4ステップでキー操作を実装することができます。
1.プレイヤーの行う行動名の定義
↓
2.キー入力と定義の紐づけ
↓
3.宣言と入力設定の適用
↓
4.定義と動作の紐づけ
参考にさせていただいた動画と重複するところが多くありましたが、皆さんの力になれていたらうれしいです。
それではここまで見ていただきありがとうございました。

コメント