GameProgrammar's Night

ゲームプログラム系の覚え書き

UnrealEngine4で2Dゲームを作ろう! その14 DirectInputプラグイン作った編

github.com

前回紹介したJoystickPluginは問題が発覚したために、結局自作しました。

ひとまず、

katze.hatenablog.jp

を参考にソースからビルドしてUE4に追加してください。
通常のゲームパッドイベントとして受け取れるようにしましたので、すぐに使えると思います。

とはいえ、ボタン配置がパッドごとに違うDirectInputゲームパッドを扱うにはもう少し手を入れる必要があるので開発は続けます。

詳しい使い方は、近いうちに記事にします。

JoystickPluginの問題

 あれからソースをさらに読み込んだ所、JoystickPluginは入力の取得をActorのTickタイミングで行っていることがわかりました。
 ちょっとこれは問題で、ゲームジャンルによっては致命的な問題となりかねません。

 ゲームパッドなどのデバイス入力は、全Actorが動く前に取得するのが望ましいです。
 UE4もその辺りの事情は当然わかっているので、独自入力デバイスをさしこんで、しかるべきタイミングで入力取得メソッドを呼んでくれる仕組み*1があります。それに沿った形で実装したプラグインとなっています。
 その辺りのソースを読んでいたら、キーイベント放出あたりの事情も理解できたので、通常のゲームパッドイベントと統合できたという感じです。