読者です 読者をやめる 読者になる 読者になる

妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

UE4.15のRawInput(DirectInput対応プラグイン)を試す

入力 UE4.15

f:id:una_unagi:20170119223000p:plain

「4.15の新機能で、DirectInput対応するようになって、この10年ぐらい前のゲームパッドがUE4から使えるようになった」

妹「DirectInputというのは古いやつのことなの?」

「古いやつとも限らないんだけど、XBOX360と同じ規格のやつがXInputで、それ以外は全部DirectInputに対応してる。妹が知ってるやつでいうと、PS3のコントローラーとか、レトロフリークのコントローラーとかはパソコンに接続するとDirectInput対応ゲームパッドとして動く」

game-ss.hatenablog.com

「兄はXInput大好き人間なのでこんな記事も書いてたりもするし、DirectInput対応は諸刃の剣っぽい気はするんだけど、でも選択肢が増えたからには試さずにはいられない」

妹「でも兄がもってるやつ、コレはなんとも珍妙なボタン配置になってるね。上が1・2・5で、下が3・4・6って、なんでもうちょっと綺麗に並べなかったんだろ?」

「当時4ボタン式のと6ボタン式との両方のゲームパッドがあって、4ボタンを基本にしつつ、ボタン多いゲームにも対応出来るっていうのがウリだったんだよ。アナログスティックもあったりなかったりした。今売ってるのだとPS3型か、2D/レトロゲーム用のスーファミ型が多い感じ」

f:id:una_unagi:20170119225732p:plain
f:id:una_unagi:20170119230505p:plain

「UE4で動かすにはRawInputというプラグインが必要。デフォルトで入ってるけど、チェックを入れないと有効にならない。入力設定で、GenericUSBControllerというのを使えばいい。ボタンは数字通り、Axis1は縦軸、Axis2は横軸に対応してる。ただ今試した感じだと、Axisの動きがちょっと変。押してないのに動くというか。ゲームパッド側の問題かもしれないけど」

妹「Axis2の下にある、Axis3っていうのは何なの?」

「それはゲームパッドによって違う。右スティックとか、LRボタンとか。そもそも縦と横っていうのも、左スティックがある場合はそっちで使うけど、十字キーしかないやつだと十字キーになるし。だから3D用と2D用と2つのゲームパッドを常備してる。3D用のスティックで2DRPGをやるのつらいから」

妹「なんてややこしいんだ……」

「ややこしいんだよ。これだけあってもDirectInputの全規格じゃないから、対応出来てないボタンあるし。DirectInputが流行ってた時でもちゃんと全部対応してるゲームの方が少なかったぐらいだし」

f:id:una_unagi:20170119232809p:plain

「プロジェクト設定の中にもう1つ、RawInput関連の設定をする場所がある。ここは特殊な仕様のコントローラーの設定に対応するためのもの。例えばAxis4を、一般でいうAxis1として扱う、みたいな設定を作れる。これはVehicleAdvanceテンプレートの初期状態で、レーシングコントローラー用の設定が書いてある」

妹「レーシングコントローラー?」

「兄も持ってはいないんだけど、ハンドルとかレバーとか付いてるやつ。十字キー3Dスティックとは動かし方とか違うから、特殊な処理が必要になる。そしてそういう特殊なコントローラーはまずXInputにも対応してない。他にも色んなコントローラーに標準対応するために設定データを募集中らしい」