キーボード入力がlevel BPからしか取れない

環境

自動生成オブジェクトの謎

  • 新規レベルを作ってPlayすると、
    • CameraActorが自動生成される
    • DefaultPawnが自動生成される
  • DefaultPawnは球体をしていて、WASDで動いている。「UE4 謎の球体」で検索すれば前からあるものだと分かる
  • DefaultPawnの消し方はGameModeを作成して設定すればいいが、消してもキー入力は取れなかった

level BPでキー入力を実装

  • printすると意図通り取れている
  • 代わりにさっきまでPlay中に動いていたカメラがWで前進しなくなる
  • これはイベントを消費してしまったと思い、level BPのClass Defaults>Input>Block Inputを見たが既にOFFになっていた
  • Block InputがOFFならカメラに影響がでないはずなので、Block Inputが正常に動いているのか疑問

Player 0設定

  • BP_Pawnなど置いて、Details>Input>Auto Receive InputをDisabledからPlayer 0にするといいよ、というUE4記事はいくつか見かけるが、その設定をしても取れなかった

解決策求む

  • こうすれば解決するというのがあればコメント頂けると助かります!

迂回

  • level BPでは取れているので、キーボード入力はそこで全て受け取って操作キャラなどに流せば避けることはできる

追記:分かってきた 2022/07/15

  • BPでPlayerControllerを作る
  • BPでGameModeを作る
  • Project SettingsでGameModeを設定し、PlayerControllerの箇所も自作のものにする
  • すると、PlayerControllerに書いたキーボード入力処理は取れた
  • 一方、level BPに書いた(今までは有効だった)キーボード入力処理は取れなくなった(イベントの消費)

とりあえず事実のみをメモ。ユーザの入力はPlayerControllerに書く、という作法があるのですね。