【UE5】Set Input Mode Game And UI で遭遇した問題
- FirstPersonテンプレートで確認するための準備
- Set Input Mode Game And UIで発生する問題
- UIにフォーカス時、InputActionが発動しない?
- 最初にビューポート画面を一度クリックしないといけない問題
FirstPersonテンプレートで確認するための準備
ゲーム起動後すぐに Input Mode が変更されるように、 BP_FirstPersonCharacter内のBeginPlayにSet Input Mode Game And UIノードを繋げます。
Set Input Mode Game And UIで発生する問題
MouseCaptureModeが変更される
Set Input Mode Game And UIノードを使用後、以下のようなログが表示されます。

CaptureDuringMouseDownというものに変更されている?
CaptureDuringMouseDownはマウスクリック中にのみマウスの動きを認識してくれるようです。
試してみると、BP_FirstPersonCharacterの視点移動はマウスクリック中しかできなくなりました。
MouseCaptureModeを変更する

Set Input Mode Game And UIノードの直後にSet Viewport Mouse Capture Modeノードを使用して、常に、マウスキャプチャーされるようにしてみました。
BP_FirstPersonCharacterの視点移動はマウスクリックをせずとも可能になりました。
ShowMouseCursorをオンにしてた場合は?
以下の記事でも触れていますが、ShowMouseCursorをOnにした状態だと、マウスによる視点移動入力はマウスクリック中にしか反応しませんでした。
make-study.hatenablog.com
UIにフォーカス時、InputActionが発動しない?
UIにフォーカスされている場合、InputActionを受け付けない問題に遭遇しました。
Widgetをクリックしたり、Set Input Mode Game And UIでIn Widget to FocusにWidgetを設定することでUIにフォーカスさせることができますが、この状態だとInputActionが発動しないようです。

UIへのフォーカスを外す
Set Focus to Game Viewportノードを使用することでUIへのフォーカスを外すことが可能です。
これにより、InputActionが呼ばれるようになりました。
最初にビューポート画面を一度クリックしないといけない問題
※ゲーム起動後すぐにSet Input Mode Game And UIを使用していた場合のお話です。
ゲームをビューポート上でプレイする場合、最初にマウスをビューポート画面でクリックしないとマウスやキーボードの入力を受け取ってくれません。スタンドアローンでプレイする場合は、最初にクリックしないといけないという問題は起きません。なのであまり気にしなくていいのかもしれません。
ちなみにSet Input Mode Game Onlyを使っている場合、この問題は起きません。
どうしても気になる場合
Set Input Mode Game And UIノードのIn Widget to Focusを指定したり、Set Focus to Game Viewportノードを使用したりすることで、画面を一度クリックしなきゃいけない問題は防げたりします。