动态延迟输入仅在 XBOX 主机上可用,PC 上不提供该功能,因此 PC 平台上的 API 未实现。自 GameInput v.1 起,DLI 的 API 也不再可用,但底层同步系统在受支持的设备上仍然可用。游戏仍可以选择使用这些同步,方法是在该特定调用中将后续 API 版本向下强制转换回 v.0。
动态延迟输入概述
DLI 是控制器与游戏平台之间的同步系统。它评估游戏的输入调用模式,并调整控制器的上报速率,从而在输入调用发生前及时提供最新输入。完成一次输入调用需要以下关键组件。- 一款能够动态调整上报频率并读取按键的控制器。
- 能监视游戏的输入读取模式,以预测下一次输入的时机。
- 能利用这些模式调整控制器的上报,使其与游戏的需求保持一致。
DLI 的准确性
在使用受支持的设备时,DLI 会运行。它会监视自己预测下一次输入读取发生时机的准确程度,并将该值作为内部的“置信度”保存。如果预测持续偏离,置信度会变得过低,DLI 会自行禁用。 低置信度最常见的原因是行为不一致。DLI 假定输入按稳定的节奏读取并与其同步。有些游戏使用超过 DLI 步频的模拟线程,或以不规律的间隔读取输入。这些情况会让 DLI 无所适从并降低其置信度,因为它找不到稳定的速率进行同步。DLI 的节奏上限为 125 Hz。尝试更高的节奏会导致 DLI 自行禁用。
使用提示来提高准确性
为缓解低置信度并协助 DLI,可以向平台发送提示,让你控制输入的同步时机。当你调用 SendInputSynchronizationHint 时,DLI 会忽略输入读取的时序,转而与该提示调用同步。为确保输入不会滞后,请在每次模拟循环的首次输入读取之前使用SendInputSynchronizationHint,如以下代码所示。
