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

このエントリーをはてなブックマークに追加