ボタンの同時押しでUEnhancedInputComponent::BindAction()に渡した関数を実行したい

お世話になっております。

> はじめに、BindAction()のTriggerEventにETriggerEvent::Startedを渡したところ、Xを押すだけでデリゲートが実行されてしまいました。

> Xを押すだけで、None -> Ongoing の状態になるようです。

以下の手順でテストを行ったところ、こちらでは再現が取れませんでしたので、ランタイムでInput Actionを生成する手順に問題があるのかもしれません。C++版Third Personテンプレートなどを利用して、簡易な再現プロジェクトをご提供いただくことは可能でしょうか。

  1. C++版Third Personテンプレートでプロジェクトを作成
  2. Input Action 「IA_Shift」をbool値で作成
  3. Input Mapping Context「IMC_Default」を開いて、IA_Shiftを追加して、左Shiftキーをマッピング
  4. JumpのスペースバーにChorded Actionを追加し、「IA_Shift」を指定

C++版Third Personテンプレートは、ETriggerState::StartedにBindActionを行っており、

EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Started, this, &ACharacter::Jump); EnhancedInputComponent->BindAction(JumpAction, ETriggerEvent::Completed, this, &ACharacter::StopJumping);ご報告いただいたものと同じ症状が起こるのであれば、左Shiftキーを押しただけでキャラクターがStartedを受け取ってジャンプするはずなのですが、そのような挙動は見られず、本来の仕様通りに動作するという結果となりました。

> ボタン同時押しでデリゲートを1度だけ実行させたい場合に適切な方法は何でしょうか?

本来はETriggerEvent::Startedで取れるはずですが、うまくいかないとなりますと、もう一つの方法としてXとYの両方のInputActionのトリガーに「Pressed(UInputTriggerPressedクラス)」を追加するということが考えられます。この設定を行えば、ボタン同時押し続けによるETriggerEvent::Triggeredの連続実行が防げるようになるはずです。

以上、よろしくお願いいたします。