fc2ブログ

凛(kagring)のUE5/UE4とゲーム制作と雑記ブログ

2016 年から UE4 / 2021年から UE5 を触り始めました。勉強したもののメモ用ブログです。ゲーム制作に関するメモや雑記とか色々あります。C++ での Qt、Unity もほんの少しあります。

2023年01月 | ARCHIVE-SELECT | 2023年03月

| PAGE-SELECT |

≫ EDIT

UE5 「Enhanced Input」で同時入力(〇〇を押しながら△△)を実装する(Chorded Actionc、Input Action、Input Mapping Context)

「Enhanced Input」で同時入力(〇〇を押しながら△△)を実装する方法です。
「〇〇ボタンを押しながら△△ボタン」を実装する方法ですね。

こちらを参考にさせていただきました。

・EnhancedInput で同時押しを実現する
https://massa8080.hatenablog.com/entry/2022/10/16/010247

公式ドキュメントはこちら。

・Enhanced Input プラグイン
https://docs.unrealengine.com/4.26/ja/InteractiveExperiences/Input/EnhancedInput/

「〇〇ボタンを押しながら△△ボタン」を実装するには
〇〇ボタンに該当するインプットアクション(Input Action)と、
△△ボタンに該当するインプットアクション(Input Action)と
それを割り当てるインプットマッピングコンテキスト(Input Mapping Context)を用意
します。
EnhancedInput同時押し003
こんな感じですね。
「IA_BLOG_SHIFT」が〇〇ボタンに該当するインプットアクション。
「IA_BLOG_BUTTON」が△△ボタンに該当するインプットアクション。
「IMC_BLOG」がそれらを割り当てるインプットマッピングコンテキストになります。

まずは「〇〇押しながら」に該当する「IA_BLOG_SHIFT」の中身です。
EnhancedInput同時押し000
「押しながら」なので「Triggers」に「Hold」として追加しておきます。
すぐに判定を行いたいので「Hold Time Threshold」は「0.0」にしておきます。

次に「△△ボタン」に該当する「IA_BLOG_BUTTON」の中身です。
EnhancedInput同時押し001
押すだけであれば「Triggers」は「Pressed」だけでいいと思います。
今回同時押しにあたって「Triggers」に「Chorded Action」を指定します。
その際に「Chord Action」には「〇〇押しながら」に該当する「IA_BLOG_SHIFT」を指定します。

「Triggers」の「Chorded Action」はこんな感じの機能になるようです。

同時押しを実現するためには Triggers の設定値 Chorded Action を使用します。
Chorded Action は Input Action をトリガーするためには、他の Input Action がトリガーされていることを条件とするという設定になります(Input Action 1 をトリガーするには Input Action 2 がトリガーされていないといけないといった設定が可能)。

「Chord Action」で指定したインプットアクションの条件も加味される。といったもののようです。

これでインプットアクションの設定は終了です。
次にインプットマッピングコンテキストでインプットアクションを割り当てます。

インプットマッピングコンテキストである「IMC_BLOG」の中身はこんな感じになります。
EnhancedInput同時押し002
基本的なものと同じでインプットアクションを登録して該当するキーを割り当てるだけになります。
「Triggers」についてはインプットアクション側で設定しているので、こちらでは特に何も設定していません。

「IA_BLOG_SHIFT」には「〇〇ボタン押しながら」の「〇〇ボタン」にしたい入力を設定します。
「IA_BLOG_BUTTON」には「△△ボタン」にしたい入力を設定します。

これで同時押しの判定が正常にされるようです。

インプットマッピングコンテキスト(Input Mapping Context)でも「Triggers」は設定できるのですが
インプットアクション(Input Action)のほうと混在するとわかりにくくなってしまうので、
今回はインプットアクション(Input Action)のみに「Triggers」を設定して実装をしてみました。

| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑

| PAGE-SELECT |