GameInput の概要
GameInput は、一貫性のある 1 つのインターフェイスを介してすべての種類の入力デバイスを公開する次世代の入力 API です。 単純なプログラミング モデルを使用して設計されているので、簡単に使用することができます。 GameInput は、可能な限り最高のパフォーマンスを実現するために一から構築されています。 GameInput API の主な機能は次のとおりです。
可用性
GameInput は Xbox で GDK 経由、PC は NuGet 経由で利用できます。 Windows 10 19H1 (2019 年 5 月の更新) に戻る古いバージョンの Windows がサポートされています。
一貫性
GameInput は、キーボード、マウス、ゲームパッド、その他のゲーム コントローラーからの出力を、共通の時間ベースに同期して、統一された 1 つの入力モデルで公開します。 これらのデバイスからの入力を処理するコードはほぼ同じであり、多くの同じ関数を使用しますが、異なるフィルターを適用されます。 これにより、入力コードに大きな変更を加えることなく、追加の入力デバイスのサポートを簡単に追加できます。
機能
GameInput は、従来のすべての入力 API (XInput、DirectInput、Raw Input、ヒューマン インターフェイス デバイス (HID)、WinRT API) の機能のスーパーセットであり、さらに独自の新機能が追加されています。 GameInput の機能は、単純な固定形式のゲームパッドの状態から詳細な低レベルの未加工デバイスへのアクセスまで広範囲にわたります。 入力は、ポーリングまたはイベント駆動型のコールバックを使用して取得できます。 触覚フィードバックとフォース フィードバックが完全にサポートされ、サード パーティー デバイスの SDK を簡単に GameInput に追加で記述してカスタム デバイス機能へのアクセスを提供できます。
性能
GameInput は、入力待機時間とリソース使用量を最小限に抑えるために、まったく新しい直接メモリ アクセス (DMA) アーキテクチャに基づいて構築されています。 ほぼすべての API 関数は、100% スレッド セーフですが、ロックフリーであり、厳密にパフォーマンスが保証されています。 このため、これらの API 関数は、レンダー スレッドなどの時間依存のコンテキストから安全に呼び出すことができます。 高度なアプリケーションは GameInput の内部的な非同期作業キューのスケジュールを直接制御して、どのスレッドがどのような頻度で作業を行うかを制御できます。
使いやすさ
GameInput は使いやすさを最優先して設計されました。 一般的な入力タスクのほとんどは、わずか数行のコードで実装できます。
概要
GameInput は、すべての Microsoft プラットフォーム (以前のバージョンの Windows を含む) に対してサポートを提供し、従来の API よりもパフォーマンスに優れているため、ターゲット プラットフォームに関係なくすべての新しいコードに推奨される API です。
注意
Xbox One 用の Microsoft Game Development Kit (GDK) で開発されたゲームの場合、GameInput は利用可能な唯一の入力 API です。
PC を対象とするゲームを開発している場合は、 Microsoft.GameInput] NuGet パッケージから GameInput をインストールする必要があります。
GameInput API の詳細については、まず「GameInput の基礎」を参照してください。
既存のコードベースから入力コードを移植する場合は、「GameInput 移植ガイド」で API 固有のガイダンスを参照してください。