测量与测试
体感传感器
DualSense、DualShock 4 和 Switch Pro 手柄等都带有陀螺仪和加速度计:陀螺仪读取手柄转动的快慢,加速度计读取手柄所受的力,包括重力。Xbox 手柄两者都没有。
传感器读数
“体感”卡片绘制一个与你的手柄姿态相同的 3D 手柄。从它伸出的箭头表示加速度计感受到的力:手柄静止时是竖直向下、大小为 1 g 的重力,手柄受到推动时,箭头会随之变长或变短。弯曲的箭头按陀螺仪的读数(单位为 °/s)绕手柄转动,手柄转得越快,箭头绕得越远、颜色越亮。
旁边是这六个数值在最近五秒内的滚动曲线,陀螺仪和加速度计各占一张图,图的范围随显示的数值扩大或缩小:陀螺仪为 ±90 至 ±2,000 °/s,加速度计为 ±2 至 ±16 g。数值本身,以及由它们推算出的倾斜,显示在手柄的“原始数据”标签页中。
在哪里可以读取
浏览器的 Gamepad API 不传递传感器数据,因此手柄图下方没有“体感”卡片;在 Chrome 和 Edge 中,如果 WebHID 能直接从手柄读取这些数据,“按键”卡片会提供“使用 WebHID”。Windows 应用也能读取。通过蓝牙连接的索尼手柄,只有在切换到完整报告后才会发送这些数据。
倾斜,以及偏航为何会漂移
3D 手柄的转动由陀螺仪在三个轴上的转动同时累加而来。重力使它的倾斜保持准确:只要加速度计的读数接近 1 g,倾斜就会被拉回到重力方向,手柄移动时缓慢校正,静止时在一秒内校正,因此推动或晃动都不会使它歪斜。
偏航,即绕重力方向的转动,没有任何参照来校正,因此可能缓慢偏移。“重新居中”会将偏航归零,以手柄当前的朝向为准。
陀螺仪漂移
静止的陀螺仪读数很少恰好为零。将手柄静置一秒,PadBench 就会测量此时的读数,即它的漂移,并从之后的每次转动中扣除,使 3D 手柄也保持静止。“原始数据”标签页会显示测得的漂移。
校准
传感器发送的是整数,PadBench 根据每种型号传感器的设计量程,将其换算为 °/s 和 g。没有哪个传感器是完全精确的,因此许多手柄存储有自己的校准数据,是出厂时测得的。
通过 WebHID 读取时,PadBench 会应用校准数据给出的比例系数:DualSense 和 DualShock 4 的比例系数取自手柄应请求发送的报告,Switch Pro 手柄的则取自其存储器。陀螺仪静止时的读数不会被扣除,因此你的手柄的漂移会如实显示;不合理的校准数据会被忽略。
Switch 2 Pro 手柄没有存储传感器的比例系数,因此它的数值为近似值;它只存储了陀螺仪静止时的读数,而 PadBench 对所有手柄都不扣除这一读数。Windows 应用读取的体感数据未经校准。未校准的数值也很接近:静止时加速度计的读数仍约为 1 g。每个手柄的“原始数据”标签页会说明它属于哪种情况。