[英]How to customize gamepad controller joystick output sensitivity in Windows 10
我一直在广泛寻找一种方法来改变 Windows中游戏手柄的灵敏度。 在大多数游戏中,操纵杆的灵敏度太高,所以除非我非常小心轻柔地按下操纵杆,否则它总是会发送最大的 output,因此我的角色将始终全速移动。
我尝试使用AutoHotKey动态更改 output,但事实证明您需要一个特殊的驱动程序来更改 output。
然后我尝试使用 Windows Gamepad Calibration 菜单进行思考,但是 25 y/o 控制面板没有提供任何调整灵敏度的选项。
接下来我想到的是校准文件中的 go 并手动更改值以降低灵敏度,但我能找到的只是这个参考文档,我在其中尝试查看是否可以访问和更改与校准相关的注册表值,但是我什至在我的注册表中找不到“GameInput”文件夹。
具有供应商 ID (VID) VVVV、产品 ID (PID) PPPP、使用页面 UUUU 和使用 ID XXXX 的设备的映射将从注册表中的此位置读取:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GameInput\Devices\VVVVPPPPUUUUXXXX
你们有没有人找到解决这个问题的方法? 我很惊讶我的搜索结果如此之少。
如果有必要,我会很乐意做一些AHK/Python/Powershell编码来解决这个问题。
提前致谢!
考虑使用仿真软件(x360、DS4Windows 等),通过易于配置的软件层将您的输入命令发送到 go。 此类软件往往允许调整灵敏度、盲区和其他选项。 请参见下面的 x360ce(右)和 DS4Windows(左)的屏幕截图。
根据游戏的编码方式,它可以通过多种方式读取操纵杆输入。 虽然操纵杆处理大部分是标准化的,但流行的标准包括 XInput、DInput(旧版)、Steam Input(如果使用 Steam)或直接作为 USB 设备(不确定这有多常见,但我已经看到了)。
Windows 内置的 joy.cpl 校准工具会影响使用 XInput/DInput 技术的控制器,一些游戏会忽略这些设置。 它的校准功能也相当有限,所以我会推荐上面简短回答中提到的工具,但可以手动调整这些设置。
在继续之前,我建议阅读我对类似问题的回答,其中包含有关这些特定注册表项的详细信息: https://superuser.com/a/1699020/322062
不过,在较高级别上,要手动校准 Windows joy.cpl,请执行以下操作:
导航到相应 controller、 HKEY_CURRENT_USER\System\CurrentControlSet\Control\MediaProperties\PrivateProperties\DirectInput\VID_<VendorID>&PID_<ProductID>\Calibration\0\Type\Axes\<NUM>
的注册表项。 如果您无法确定哪个键对应于您的 controller,我会推荐 Nirsoft 的一款名为“USBDeview”的工具。
修改映射到 12 字节二进制值的Calibration
键(编码为<MIN> <MID> <MAX>
)。 例如,假设我们希望 y 轴Calibration
在 30-70 范围内,用于有缺陷的模拟摇杆,摇杆为 45 居中。 然后我们Calibration
映射的12个字节应该设置为<1E 00 00 00> <2D 00 00 00> <46 00 00 00>
对于那些好奇的人,您可以通过将调试器连接到游戏并检查加载的 DLL 并设置断点来了解游戏如何读取 controller 输入。
I was having issues with my controller when playing Star Wars Jedi: Fallen Order , and found that the game loads XInput.dll, DInput.dll, HID.dll files. 有趣的是,使用 PS4 游戏杆时会调用 HID.dll,因此忽略 Windows joy.cpl 校准设置。 使用 DS4Windows 会导致调用 XInput.dll 函数,同时修复校准问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.