> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Dynamic Latency Input

> Dynamic Latency Input

<Note>Dynamic Latency Input は XBOX コンソールでのみ利用可能です。この機能は PC では利用できず、そのため API は PC プラットフォームでは実装されていません。DLI 用の API は GameInput v.1 以降利用できなくなりましたが、基盤となる同期システムは引き続きサポートされているデバイスで利用できます。タイトルはその特定の呼び出しについて、将来の API バージョンから v.0 にキャストダウンすることでこれらの同期を提供することを選択できます。</Note>

<a id="introductionSection" />

この記事では、Dynamic Latency Input (DLI) がゲーム内デバイスの入力と出力をどのように同期するかについて説明します。*入力ラグ*、または*入力レイテンシー*とは、物理的な入力が発生してから出力が送信されるまでの遅延のことです。ゲームでは、このラグはボタン押下から画面出力までの時間を指します。このレイテンシーを低く保つことは、ユーザーをゲームプレイに引き込み、没入させるために不可欠です。

入力レイテンシーは、ボタンが押されてからゲームがそれを読み取るまでの時間です。DLI はこの式の一部でレイテンシーを削減するために設計された入力アーキテクチャです。

## Dynamic Latency Input の概要

DLI はコントローラーとゲームプラットフォーム間の同期システムです。ゲームの入力呼び出しパターンを評価し、入力呼び出しの直前に最新の入力を配信できるようにコントローラーの報告レートを調整します。以下は入力呼び出しを完了するために必要な主要コンポーネントです。

* ボタンの報告と読み取り頻度を動的に調整できるコントローラー。
* 次の入力が必要な時期を予測するために、ゲームの入力読み取りパターンを監視する機能。
* これらのパターンを使用して、ゲームのニーズに合わせてコントローラーの報告を調整する機能。

## DLI の精度

DLI はサポートされているデバイスが使用されているときに実行されます。次の入力読み取りがいつ発生するかをどの程度正確に予測できているかを監視します。この値は内部的な信頼度として保持されます。予測が一貫して外れている場合、信頼度が低くなりすぎ、DLI は自己無効化します。
信頼度値が低くなる最も一般的な理由は、動作が一貫していないことです。DLI は入力が一定のケイデンスで読み取られると仮定し、それに同期します。一部のゲームでは、DLI を上回るシミュレーションスレッドを使用したり、一貫性のない間隔で入力を読み取ったりします。これらのケースは DLI を混乱させ、同期できる安定したレートを見つけられないため、信頼度を下げます。

<Note>DLI は 125 Hz のケイデンスに制限されています。それより高いケイデンスを試みると DLI は自己無効化します。</Note>

### ヒントを使用して精度を向上させる

低い信頼度値を軽減し DLI を支援するために、入力が同期するタイミングを制御できるヒントをプラットフォームに送信します。[SendInputSynchronizationHint](/reference/input/gameinput/deprecated/interfaces/igameinputdevice/methods/igameinputdevice_sendinputsynchronizationhint) を呼び出すと、DLI は入力読み取りのタイミングを無視し、ヒントの呼び出しに同期します。入力が遅れて到着しないようにするには、次のコードに示すように、各シミュレーションパスの最初の入力読み取りの直前に `SendInputSynchronizationHint` を使用します。

```c++ theme={null}
IGameInputDevice::SendInputSynchronizationHint()
```

## DLI の無効化

現在、入力同期をオフにすることが推奨される状況はありませんが、そのメリットを評価する際に無効化することが役立つ場合があります。次のコードに示すように、[SetInputSynchronizationState](/reference/input/gameinput/deprecated/interfaces/igameinputdevice/methods/igameinputdevice_setinputsynchronizationstate) を使用して DLI を無効化または再有効化します。

```c++ theme={null}
IGameInputDevice::SetInputSynchronizationState(bool enabled)
```

## DLI のパフォーマンス分析

DLI がタイトルに対してどのように動作するかの詳細については、[Dynamic Latency Input のパフォーマンスの分析 (NDA トピック)](/tools/tools-console/pix/pix-input-sync) を参照してください。

## デバイスサポート

DLI はサポートするファームウェアを持つ入力デバイスでのみ実行されます。DLI をサポートするデバイスの詳細については、[GameInputDeviceCapabilities](/reference/input/gameinput/deprecated/enums/gameinputdevicecapabilities) を参照してください。

<a id="seeAlsoSection" />

## リファレンス API ドキュメント

* [GameInput (API 内容)](/reference/input/gameinput/gameinput_members)

## 関連項目

[GameInput の基礎](/build/core-features/common/input/overviews/input-fundamentals)

[GameInput の高度なトピック](/build/core-features/common/input/advanced/input-advanced-topics)

[Input API リファレンス](/reference/input/gc-reference-input-toc)


## Related topics

- [GameInput の高度なトピック](/ja-jp/build/core-features/common/input/advanced/input-advanced-topics.md)
- [XGameStreamingGetStreamAddedLatency](/ja-jp/reference/system/xgamestreaming/functions/xgamestreaminggetstreamaddedlatency.md)
- [Dynamic Power States (DPS)](/ja-jp/build/game-principles/sustainability/dynamic-power-states.md)
- [PFMultiplayerServerDynamicStandbySettings](/ja-jp/services/playfab/api-references/c/pfmultiplayerservertypes/structs/pfmultiplayerserverdynamicstandbysettings.md)
- [PFMultiplayerServerDynamicStandbyThreshold](/ja-jp/services/playfab/api-references/c/pfmultiplayerservertypes/structs/pfmultiplayerserverdynamicstandbythreshold.md)
