PythonのプログラマにXBoxコントローラの入力をシミュレートさせます。 可能であればアナログの親指スティックとオン/オフボタンの両方。PythonでXBoxコントローラの入力をシミュレート
私はここに、たとえば、Pythonでのctypesでキーボード入力をシミュレートに関するトピックを見つけました: Python simulate keydown
は、それは通常のキーボードやマウスの「KeyDownイベント」に似て、それをシミュレートすることは可能ですか?同じ問題を抱えて
PythonのプログラマにXBoxコントローラの入力をシミュレートさせます。 可能であればアナログの親指スティックとオン/オフボタンの両方。PythonでXBoxコントローラの入力をシミュレート
私はここに、たとえば、Pythonでのctypesでキーボード入力をシミュレートに関するトピックを見つけました: Python simulate keydown
は、それは通常のキーボードやマウスの「KeyDownイベント」に似て、それをシミュレートすることは可能ですか?同じ問題を抱えて
場合誰かがこのスレッドを見つける:
は私がvJoy、pyVJoyとx360ceで問題を解決しました。
vJoyは、入力デバイスをシミュレートするSDKとドライバを提供します。ジョイスティック、ゲームパッドなどを持つことができます。 PyvJoyでは、これらのドライバにアクセスし、Python内部の入力をシミュレートすることができます。 https://github.com/tidzo/pyvjoy pyvJoyは "アナログ"スティックに0〜32767の値を使用します。 たとえば、xboxコントローラの左手のつまみを中立位置にするには、XAxisとYAxisを32767の1/2に入れます。
0と1の間の入力値を持つ私にとっては、この値。 私のコードでは、それはちょっと次のようになります。
MAX_VJOY = 32767
self.j = pyvjoy.VJoyDevice(1)
def play_function(self,X,Y,Z,XRot):
self.j.data.wAxisX = int(X * self.MAX_VJOY)
self.j.data.wAxisY = int(Y * self.MAX_VJOY)
self.j.data.wAxisZ = int(Z * self.MAX_VJOY)
self.j.data.wAxisXRot = int(XRot * self.MAX_VJOY)
j.update()
ます。また、「バイナリ」/「デジタル」ボタンをこのように更新することができ、pyvjoyのgithubのページには、さらにいくつかの例があります。 キャリブレーションのために、このジョイスティックのアプリを使用してみてください:http://www.planetpointy.co.uk/joystick-test-application/
最後の部分はX360CEを使用して、何んであることはXInputのデバイスにvJoy「DigitalInput」Devideを回しています。したがって、PC /ゲームでは、実際のXbox 360またはXbox Oneコントローラと考えられます。この最後の部分のみが唯一の公式Xboxのコントローラを許可するいくつかのゲームのために必要とされ、GTA 5 のようにあなたはここからX360CEを取得することができます。http://www.x360ce.com/
このすべてが組み合わさは私のpythonを通じてこれらのゲームをプレイすることができます。 WASDを使用してニューラルネットワークをトレーニングすることは、ボタンが押した場合に1または0しか許可しないため、常に極端に機能するため、うまく機能しないことを知りました。これらのコントロールを使用すると、よりスムーズなゲームコントロールを得ることができます。