Project SettingsのInputから入力デバイスのキーを受け取れるようにする方法
任意のBlueprintクラスからも入力ノードを作ることでデバイスからのinputの受付が行えますが、
ここでは、Project SettingsのInput欄から入力デバイスキーを受けとってみたいと思います。
Inputからデバイスのキー入力を受け取る
上部メニューの設定 → プロジェクト設定を選択し、左部のメニューからinputを選択して、
Input欄を表示させてください。
Input欄を表示させたら、Bindingの欄からActionMappingsのプラスボタンを押して、
Binding Eventを追加します。
ActionMappingsはキーが入力された時・キーが離された時に呼ばれるイベントで、
キーが押されている時のイベントは処理することができません。
新規アクションマッピングと書かれている欄には、キー入力が行われた際に呼ばれるイベント名を入力します。
noneと書かれている項目ををクリックすると、そのイベントに割当てるキーを入力する一覧が現れます。
ゲームパッドやAndroidの戻るボタンなど、様々なキーを割り当てることができます。
続いて、Axis Mappingsのイベントを追加します。
Axis Mappingsはキー入力中に毎フレームごとに呼ばれるイベントです。
ActionMappingsと同じようにイベントを追加してください。
すると、新しくScaleという入力項目が追加されます。
Scaleにカーソルを合わせると、軸の値の累計時にマッピングに使用する乗数と表示されます。
今回の例では、キーが押された時に左右にキャラクタを移動させたいので、キーに1・-1を割り当てています。
このscale値を移動に利用します。
割り当てたイベントをBlurprint上で呼び出す
上図で作ったイベントをBlueprint上で呼び出してみたいと思います。
今回は、プレイヤーを移動させるためのイベントを作ったので、PaperCharacterを継承したクラス内で呼び出します。
まず、右クリックを押して、LeftRightMovingと入力し、先ほど作ったLeftRightMovingイベントノードを呼び出します。
返却値のAxisValueにScaleに入力した値が返ってくるので、AddMovementInputノードのScaleValueに繋ぎます。
これで、キー入力を受けとってプレイヤーを左右に移動させることができました。
UnrealEngine4.19で確認しています。
2018/4/27