GameOs.xvd) に含まれています。ゲームが実行時に使用できる GameInput API バージョンは、GDK のリリース、コンパイルに使用する GameInput のヘッダーとライブラリ、およびゲームと共に GameInput ランタイムを配置するかどうかによって異なります。
XBOX で新しい GameInput API バージョンを使用するには、次の 2 つの方法があります。
- GDK を更新する。 各 GDK リリースには、特定の API バージョンのセットをサポートする GameInput ランタイムが含まれています。
- GameInput ランタイムをサイドロードする。 Microsoft.GameInput NuGet パッケージの GameInput ランタイムをゲームと共に配置して、GDK がサポートするよりも新しい API バージョンを使用します。
サポートされている API バージョン
次の表は、各 GDK リリースで利用できる API バージョンを示しています。
GDK のヘッダーとライブラリは、GDK のリリースに関係なく、v0 API のみを提供します。NuGet パッケージは、October 2025 GDK より前の GDK リリースではサポートされていません。
API v1 以降を使用する
API v1 以降を使用するには、Microsoft.GameInput NuGet パッケージをプロジェクトに追加し、GDK のものではなく、そのパッケージのヘッダーとGameInput.lib を使用してコンパイルおよびリンクします。NuGet パッケージのメジャー バージョンは、そのヘッダーが定義する最も高い API バージョンと一致します。たとえば、4.x パッケージには v4 API が含まれています。詳細については、NuGet を使用した PC およびコンソール向け GameInput を参照してください。
本体にほかに何かをインストールする必要はありません。NuGet パッケージの GameInput.lib とリンクするだけの場合、ゲームは GDK に含まれている GameInput ランタイムを使用し、サポートされている API バージョン の表に示すように、ランタイムがサポートする API バージョンは GDK のリリースによって制限されます。
以前の GDK で API v4 を使用する
October 2025 GDK 以降、October 2026 GDK より前の GDK リリースで API v4 を使用するには、GameInput ランタイムをサイドロードします。- Microsoft.GameInput NuGet パッケージのバージョン 4.0 以降をプロジェクトに追加し、そのヘッダーと
GameInput.libを使用してコンパイルおよびリンクします。 - パッケージの
native\bin\xbox\ディレクトリにあるGameInputRedist.dllを、ゲームの実行可能ファイルと同じディレクトリに配置します。
GameInput.lib とリンクするだけでは不十分です。サイドロードされたランタイムがない場合、ゲームは GDK のランタイムを使用しますが、October 2026 GDK より前のランタイムは API v4 をサポートしていません。その場合、v4 API の要求は E_NOINTERFACE で失敗し、API バージョン v0 から v3 は引き続き動作します。
ランタイムの選択方法
GameInput ランタイムのサイドロードは、PC だけでなく XBOX 本体でもサポートされています。XBOX では、ゲームが初めて GameInput を作成するときに、NuGet パッケージのGameInput.lib が、タイトルにバンドルされている Game OS 内の GameInput ランタイムと、サイドロードされたランタイム (配置されている場合) を比較し、バージョンが高い方のランタイムを使用します。その結果、次のようになります。
- GDK ランタイムより新しいサイドロードされたランタイムにより、新しい API バージョンと修正をゲームで利用できるようになります。
- サイドロードされたランタイムより新しいランタイムを含む GDK リリースにゲームを移行すると、ゲームは GDK ランタイムを使用します。サイドロードされたランタイムを引き続き配置することも、GDK ランタイムより新しくなくなった時点で削除することもできます。
利用可能な API バージョンを確認する
ランタイムがサポートしていない API バージョンをゲームが要求すると、GameInput はE_NOINTERFACE で失敗します。これは、GameInputCreate と QueryInterface の両方に当てはまります。最新の API バージョンがなくてもゲームを実行できる場合は、このエラーを確認して、以前のバージョンの機能にフォールバックします。
関連項目
NuGet を使用した PC およびコンソール向け GameInputGameInput のサイドロード
GameInput API のバージョン管理
1 つのアプリケーションで複数の GameInput API バージョンを使用する
GameInputInitialize
