UE4.15のRawInput(DirectInput対応プラグイン)を試す
「4.15の新機能で、DirectInput対応するようになって、この10年ぐらい前のゲームパッドがUE4から使えるようになった」
妹「DirectInputというのは古いやつのことなの?」
「古いやつとも限らないんだけど、XBOX360と同じ規格のやつがXInputで、それ以外は全部DirectInputに対応してる。妹が知ってるやつでいうと、PS3のコントローラーとか、レトロフリークのコントローラーとかはパソコンに接続するとDirectInput対応ゲームパッドとして動く」
「兄はXInput大好き人間なのでこんな記事も書いてたりもするし、DirectInput対応は諸刃の剣っぽい気はするんだけど、でも選択肢が増えたからには試さずにはいられない」
妹「でも兄がもってるやつ、コレはなんとも珍妙なボタン配置になってるね。上が1・2・5で、下が3・4・6って、なんでもうちょっと綺麗に並べなかったんだろ?」
「当時4ボタン式のと6ボタン式との両方のゲームパッドがあって、4ボタンを基本にしつつ、ボタン多いゲームにも対応出来るっていうのがウリだったんだよ。アナログスティックもあったりなかったりした。今売ってるのだとPS3型か、2D/レトロゲーム用のスーファミ型が多い感じ」
「UE4で動かすにはRawInputというプラグインが必要。デフォルトで入ってるけど、チェックを入れないと有効にならない。入力設定で、GenericUSBControllerというのを使えばいい。ボタンは数字通り、Axis1は縦軸、Axis2は横軸に対応してる。ただ今試した感じだと、Axisの動きがちょっと変。押してないのに動くというか。ゲームパッド側の問題かもしれないけど」
妹「Axis2の下にある、Axis3っていうのは何なの?」
「それはゲームパッドによって違う。右スティックとか、LRボタンとか。そもそも縦と横っていうのも、左スティックがある場合はそっちで使うけど、十字キーしかないやつだと十字キーになるし。だから3D用と2D用と2つのゲームパッドを常備してる。3D用のスティックで2DRPGをやるのつらいから」
妹「なんてややこしいんだ……」
「ややこしいんだよ。これだけあってもDirectInputの全規格じゃないから、対応出来てないボタンあるし。DirectInputが流行ってた時でもちゃんと全部対応してるゲームの方が少なかったぐらいだし」
「プロジェクト設定の中にもう1つ、RawInput関連の設定をする場所がある。ここは特殊な仕様のコントローラーの設定に対応するためのもの。例えばAxis4を、一般でいうAxis1として扱う、みたいな設定を作れる。これはVehicleAdvanceテンプレートの初期状態で、レーシングコントローラー用の設定が書いてある」
妹「レーシングコントローラー?」
「兄も持ってはいないんだけど、ハンドルとかレバーとか付いてるやつ。十字キーや3Dスティックとは動かし方とか違うから、特殊な処理が必要になる。そしてそういう特殊なコントローラーはまずXInputにも対応してない。他にも色んなコントローラーに標準対応するために設定データを募集中らしい」