BLOGブログ

2017.10.18UE4UE/ C++

[UE4] プログラムでキー入力を行う方法

こんにちは!新米えんじにゃーの遠藤です!

今回はゲーム中にキーボードやコントローラーなどの入力機器を使わずにプログラムでキー入力を行う方法を紹介します!

まずは一般的な入力イベントを使用方法ですが、例えばゲーム中にキーボードのSpaceBarを入力するとSpaceBarに関連した入力イベントに通知されます。

ThirdPersonテンプレートではプロジェクト設定のInputBindingsでJumpの項目にSpaceキーが設定されているので、実行中にSpaceBarを入力するとInputAction Jumpイベントに通知されそれ以降の処理の結果、キャラクターがジャンプします。

 

 

これを周辺機器などのハードウェアを使わずにソフトウェア的に入力イベントの呼び出しを行ってみます。

PlayerControllerクラスにはモバイルゲームで使うタッチ入力やVRゲームで使うモーションコントローラーの入力を呼べる関数などインプット系の関数が用意されています。

これらの関数はPlayerInputやHMDDeviceのインプット系の関数を呼ぶ処理が書かれています。つまり、これらの関数を呼び出してあげるだけ!簡単!

 

今回はこの中でもInputKeyを呼び出す関数を作り、Blueprintに公開しました。

InputKey関数の引数にそのまま渡しているだけですが、bGamepadは使われていなかったのでMyInputKeyの引数として公開はしていません。

 

Keyを「W」にし、EventTypeを「Pressed」にするとキャラクターは前に歩き出し、「Released」イベントを呼ばない限りは歩き続けます。

Amount Depressedには入力の強弱を0~1の値で入れます。

 

 

入力を継続させる時間や入力の強弱など気を使う部分は多そうですが、簡易的なオートプレイなどでしたら作れそうです!

活用していただけたら幸いです。