こんにちわ
>どっかからダウンロード
XinputというのはMicrosoftの物でDirectXに含まれてます。
余り意識しなくてもWindows\System32フォルダにありますので("user32"みたいな感じ)
実行できるはずですが、おそらくお使いのPCには無かったのでしょう。
公式からダウンロードしないと、怪しい物もありますので、
一度、正しいものをインストールしてみてはと思いました。
また、XInputには 3 つのバージョンがあります
"Xinput1_4.dll","Xinput9_1_0.dll", "Xinputuap.dll"
既に正式にインストールされている物があるかもしれませんので、
スクリプトを書き換えてみてはいかがでしょうか?
※上記System32フォルダを一度見てみてください
※Xinputuapはありそうな気がします(振動使えませんが)
>jstickやjoyGetPosEX命令では、どうにもできない
古い"winmm.dll"というマルチメディア用のライブラリで動いてます。
XBoxコントローラとは企画が違うので正しく取得できません。
>一般論として、ゲームパッドの挙動
winmmのほかDirectInputというライブラリで認識できる物もあるのですが、
大抵のボタンは認識しますが、ボタンの役割が企画されていなかったので、
コントローラによって入力がバラバラでした。
ですから、ユーザーの方でキーアサインをする必要が出てきてしまいます。
そこでMicrosoftがXboxを出すときに企画化したのがXInputです。
仕様が決まってますから、ユーザーはキーアサインをする必要がありません。
お使いのコントローラは純正ではないですが、おそらく互換機かと思われますので、
Xinputを使用すれば情報が正しく取得出来るはずでございます。
コントローラによってはDirectInputとXInputを切り替えられるもの、
ゲームによってはどちらかを使うようにプログラムされている物があります。
ユーザーさんのハード環境はそれぞれなので、場合分けで対応するか。
"Xboxコントローラ対応"などどれかに絞るのが良いかと思いました。
※余談※
LT、RTはアナログ値と仕様が決まってます。
ボタンと違いはトリガーは新しいゲーム体験をもたらせるわけですね。
たとえば、FPSでエイムする時に浅く押すとゆっくり、
深く押すと素早く照準器を覗き込むなどです。あとカバーアクションとか
コンテストかなりの力作出されてますね。
MSDNに仕様かかれてるので、沢渡さんのスクリプトの関数名を見てみると、
色々と分かるかと思います。
https://learn.microsoft.com/ja-jp/windows/win32/api/xinput/nf-xinput-xinputgetstate