动态延迟输入

使用本主题了解动态延迟输入(DLI)如何同步游戏内设备的输入和输出。 输入滞后时间(即输入延迟)的定义是发生物理输入和发送输出之间的延迟。 在游戏中,是指按下按钮和屏幕输出之间的时间。 保持低延迟对于保持游戏使用者参与度并使其沉浸在游戏中来说至关重要。

整体输入延迟中的一部分是按钮按下到游戏读取到该操作之间的时间。 动态延迟输入是一种用于减少公式中这部分延迟的输入体系结构。

动态延迟输入概述

动态延迟输入 (DLI) 是控制器和游戏平台之间的一种同步系统。 它可评估游戏的输入呼叫模式,并调整控制器的报告速率,以便在输入呼叫前传递最新输入。 以下是完成一次输入调用所需的关键组件。

  • 可动态调整其报告频率和按钮读取频率的控制器。
  • 能够监视游戏输入读取模式,以便预测需要下一个输入的时间。
  • 能够使用这些模式调整控制器报告,以适应游戏需求。

DLI 准确性

使用支持的设备时,DLI 会运行。 它会监测对下一次输入读取的发生时间的预测效果。 并保留相关值作为内部置信度。 如果预测始终不正确,置信度会变得过低,DLI 将自行禁用。 置信度值低的最常见原因是行为不一致。 DLI 假定以一致节奏读取输入并与其同步。 某些游戏使用了速度超过 DLI 的模拟线程或以不一致的时间间隔读取输入。 这些情况会使 DLI 混乱并降低其置信度,因为它无法找到稳定的同步速率。

注意

DLI 限制为 125Hz 的频率。 尝试高于该值的节奏将导致 DLI 禁用自身。

使用提示提高准确度

若要提高置信度值并协助 DLI,向平台发送提示,以便能够控制输入同步时间。 调用 SendInputSynchronizationHint 后,DLI 将忽略输入读取计时,与提示调用进行同步。 若要确保输入不延迟,应在每次模拟通关时首次预期输入读取即将发生之前调用SendInputSynchronizationHint

IGameInputDevice::SendInputSynchronizationHint()

禁用 DLI

目前没有建议关闭输入同步的情况,但禁用它有助于优势评估。 使用 SetInputSynchronizationState 禁用或重新启用 DLI。

IGameInputDevice::SetInputSynchronizationState(bool enabled)

分析 DLI 性能

有关 DLI 如何针对标题执行的更多信息,请参阅分析动态延迟输入性能(NDA 主题)要求授权

设备支持

DLI 仅在具有支持固件的输入设备上运行。 有关支持 DLI 的设备的更多信息,请参阅 GameInputDeviceCapabilities

另请参阅

GameInput 基础知识

高级 GameInput 主题

输入 API 参考