> ## 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.

# GameInput の概要

> GameInput は、XBOX コンソールおよび Windows 10 以降でゲームパッド、キーボード、マウス、その他のコントローラーに対応する、GDK の統合入力 API です。

<a id="introductionSection" />

GameInput は、あらゆる種類の入力デバイスを単一の一貫したインターフェイスで公開する次世代の入力 API です。使いやすいシンプルなプログラミングモデルで設計されています。GameInput は最高のパフォーマンスを提供するためにゼロから構築されています。GameInput API の主な機能は次のとおりです。

* **可用性**

  GameInput は、Microsoft Game Development Kit (GDK) を介した XBOX と、NuGet を介した PC で利用できます。Windows 10 19H1 (2019 年 5 月更新) まで遡る古いバージョンの Windows もサポートされています。

* **一貫性**

  GameInput は、キーボード、マウス、ゲームパッド、およびその他のゲームコントローラーからの入力を、共通の時間基準に同期された単一の統合された入力モデルを通じて公開します。これらのデバイスからの入力を処理するコードはほぼ同一で、多くの同じ関数を使用し、異なるフィルターを適用します。この一貫性により、入力コードを大きく変更することなく、追加の入力デバイスのサポートを簡単に追加できます。

* **機能性**

  GameInput は、XInput、DirectInput、Raw Input、Human Interface Device (HID)、および WinRT API などのすべての従来の入力 API の機能的スーパーセットであり、独自の新機能も追加します。GameInput の機能は、単純な固定形式のゲームパッド状態から、詳細な低レベルの生デバイスアクセスまで多岐にわたります。ポーリングまたはコールバックを通じて、イベント駆動型の方法で入力を取得できます。触覚、センサー、フォースフィードバックが完全にサポートされています。開発者は、GameInput 上にサードパーティのデバイス SDK を簡単に作成して、カスタムデバイス機能へのアクセスを提供できます。

* **パフォーマンス**

  GameInput は、可能な限り低い入力レイテンシーとリソース使用量を実現するために、Windows ハードウェアインターフェイス上に直接構築されています。ほぼすべての API 関数はロックフリーで、厳格なパフォーマンス保証があり、100% スレッドセーフです。この設計により、レンダースレッドなどの時間的にセンシティブなコンテキストからも安全に呼び出せます (最大の例外は GameInputCreate 呼び出しです)。高度なアプリケーションは、GameInput の内部非同期ワークキューのスケジューリングを直接制御し、どのスレッドがどのくらいの頻度で作業を行うかを制御できます。

* **保守性**

  GameInput ランタイムの新しいバージョンは、v.0 から現行までのすべての API バージョンをサポートし、ゲームはどのバージョンの API で開発されたかを指定できます。このバージョン管理は、新しい機能と改善を伴う GameInput の新バージョンがリリースされても、ゲームが期待どおりに動作し続けることを意味します。さらに、Windows プラットフォームが発展するにつれて、新しくリリースされた HW デバイスのサポートやプラットフォーム側の修正など、古いタイトルもクオリティオブライフの改善を享受します。

* **使いやすさ**

  GameInput は使いやすさを最優先に設計されました。ほとんどの一般的な入力タスクはわずか数行のコードで実装できます。

<a id="gettingStartedSection" />

## 始め方

ターゲットプラットフォームに関係なく、すべての新しいコードには GameInput API を使用してください。GameInput は、以前のバージョンの Windows を含むすべての Microsoft プラットフォームでのサポートを提供し、レガシー API と比較して優れたパフォーマンスを提供します。

<Note>XBOX One 向けの GDK で開発されたゲームでは、GameInput が利用可能な唯一の入力 API です。</Note>

PC をターゲットとするゲームを開発している場合は、[Microsoft.GameInput](https://www.nuget.org/packages/Microsoft.GameInput) NuGet パッケージから GameInput をインストールしてください。

GameInput API の詳細については、[GameInput の基礎](/build/core-features/common/input/overviews/input-fundamentals) から始めてください。

既存のコードベースから入力コードを移植する場合、または GameInput の拡張機能の一部を並行して適用する予定の場合は、API 固有のガイダンスについて [GameInput 移植ガイド](/build/core-features/common/input/porting/input-porting) を参照してください。

<a id="seeAlsoSection" />

## 関連項目

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

[NuGet を使用した PC 向け GameInput](/build/core-features/common/input/overviews/input-nuget)

[GameInput 移植ガイド](/build/core-features/common/input/porting/input-porting)

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

[Microsoft Game Development Kit](/services/playfab/sdks/platforms/gdk)


## Related topics

- [概要](/ja-jp/build/core-features/common/input/overviews/index.md)
- [GameInput の触覚](/ja-jp/build/core-features/common/input/hardware/input-hardware-haptics.md)
- [XInput から GameInput への移植](/ja-jp/build/core-features/common/input/porting/input-porting-xinput.md)
- [GameInputGamepadButtons](/ja-jp/reference/input/gameinput/enums/gameinputgamepadbuttons.md)
- [GameInputMouseButtons](/ja-jp/reference/input/gameinput/enums/gameinputmousebuttons.md)
