摇杆与手柄测试
测试 Xbox、PlayStation、Nintendo 手柄或任意 USB、Bluetooth 手柄:每个按键、模拟扳机、摇杆的漂移与圆度以及振动,无需安装任何软件。
请连接手柄并按下任意按键出于隐私考虑,在打开本页面的情况下按下按键之前,浏览器不会显示手柄。如果手柄已经连接,请按一下按键或拨动摇杆。

工作原理

实时显示手柄向浏览器上报的全部信息:每个按键的模拟值和按压次数计数器、以进度条形式填充的扳机、两个摇杆的精确位置以及移动轨迹记录。适用于 Xbox、PlayStation 和 Nintendo 手柄,也适用于系统能识别的任何 USB 或 Bluetooth 手柄、方向盘和飞行摇杆。

用旧的手柄最常见的两种故障是漂移(drift)和按键失灵或抖动:前者是松开摇杆后无法回到中心,后者是按键不再响应或连击。摇杆静止时,到中心的距离应接近零;圆度测试需要贴着边缘转动摇杆,它还会测量摇杆行程在各个方向上是否均匀到位。

示例

axes[0] = 0.0784 · axes[1] = -0.1137r = 0.138摇杆在没有触碰的情况下偏离中心这么远,就说明存在漂移:在死区较小的游戏中,视角或角色会自己移动。
XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE = 78497849 / 32767 ≈ 0.24这是 Microsoft 在 XInput 中为左摇杆建议的死区。小于该值的漂移,在使用死区的游戏中感觉不到,但在为了提高精度而缩小死区的游戏中会被察觉。
buttons[7].value = 0.42RT · R2 · ZR → 42 %Xbox 和 PlayStation 的扳机是模拟的,会上报被按下的程度。Nintendo Pro Controller 的 ZL 和 ZR 是数字的,只会在 0 和 1 之间切换。

使用场景

  • 在申请保修、更换模块或购买二手手柄之前,检查摇杆是否漂移。
  • 逐个验证刚修好或刚清洁过的手柄的按键,并通过计数器发现连击。
  • 在打开游戏之前,确认 Bluetooth 手柄已正确配对并被系统识别。
  • 查看方向盘、街机摇杆或飞行摇杆上报的按键和轴编号,以便在模拟器中进行配置。
  • 测试振动马达是否正常工作。

常见问题

为什么我的手柄不显示?

出于隐私考虑,在页面打开并位于前台的情况下按下按键之前,浏览器不会显示任何手柄。如果仍然不显示,请检查系统是否识别到它:在 Windows 中,运行 joy.cpl 即可打开游戏设备。Steam、DS4Windows 或 reWASD 等程序可能会隐藏原始手柄,转而显示一个虚拟手柄。

如何判断摇杆是否漂移?

松开摇杆,观察 r 值,它表示到中心的距离。正常的摇杆只有百分之几;如果在没有触碰的情况下超过 0.1,或者圆点自己移动,就说明存在漂移。把摇杆推到边缘再松开,重复几次:如果每次回到的位置都不一样,说明弹簧或电位器已经磨损。

圆度误差衡量的是什么?

贴着边缘转动摇杆时,工具会记录在 36 个方向上各自到达的最远点,并计算这些点平均偏离完美圆形的程度。数值较大,说明摇杆在某些方向上达不到最大值,或者超过了最大值。有些手柄会有意放大对角线方向,因此在下结论之前,最好对比同一型号的两个手柄。

映射为“非标准”是什么意思?

浏览器了解最常见手柄的布局,并以相同的按键顺序提供它们,这样才能绘制出手柄图示。当浏览器无法识别某个型号时,会按设备上报的顺序提供按键和轴;它们仍然可以使用,只是没有名称。换一个浏览器或换一种连接方式(例如用 USB 代替 Bluetooth),同一个手柄有时就能被识别。

为什么没有显示振动按钮?

只有当浏览器为该手柄提供振动功能时才会显示。Chrome 和 Edge 为大多数 Xbox 和 PlayStation 手柄提供振动;其他浏览器、某些 Bluetooth 连接以及许多通用手柄,即使手柄带有马达,也不会开放振动功能。

可以测量手柄的延迟或轮询率吗?

无法精确测量。浏览器不会在手柄每次变化时通知页面:页面是每个屏幕帧查询一次,所以每秒看到的变化次数永远不会超过显示器的刷新率。要测量真实的轮询率,需要直接读取设备的工具。