次の方法で共有


GameInputHapticInfo (v2)

ハプティクス機能とメタデータについて説明します。

構文

constexpr uint32_t GAMEINPUT_HAPTIC_MAX_LOCATIONS              = 8;
constexpr uint32_t GAMEINPUT_HAPTIC_MAX_AUDIO_ENDPOINT_ID_SIZE = 256;

DEFINE_GUID(GAMEINPUT_HAPTIC_LOCATION_NONE,          0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
DEFINE_GUID(GAMEINPUT_HAPTIC_LOCATION_GRIP_LEFT,     0x08c707c2, 0x66bb, 0x406c, 0xa8, 0x4a, 0xdf, 0xe0, 0x85, 0x12, 0x0a, 0x92);
DEFINE_GUID(GAMEINPUT_HAPTIC_LOCATION_GRIP_RIGHT,    0x155a0b77, 0x8bb2, 0x40db, 0x86, 0x90, 0xb6, 0xd4, 0x11, 0x26, 0xdf, 0xc1);
DEFINE_GUID(GAMEINPUT_HAPTIC_LOCATION_TRIGGER_LEFT,  0x8de4d896, 0x5559, 0x4081, 0x86, 0xe5, 0x17, 0x24, 0xcc, 0x07, 0xc6, 0xbc);
DEFINE_GUID(GAMEINPUT_HAPTIC_LOCATION_TRIGGER_RIGHT, 0xff0cb557, 0x3af5, 0x406b, 0x8b, 0x0f, 0x55, 0x5a, 0x2d, 0x92, 0xa2, 0x20);

struct GameInputHapticInfo
{
    wchar_t  audioEndpointId[GAMEINPUT_HAPTIC_MAX_AUDIO_ENDPOINT_ID_SIZE];
    uint32_t locationCount;
    GUID     locations[GAMEINPUT_HAPTIC_MAX_LOCATIONS];
};

メンバー

audioEndpointId
型: wchar_t

WASAPI ハプティクス オーディオ エンドポイント識別子。

locationCount
型: uint32_t

ハプティクスの位置の数。

locations
型: GUID

ハプティクスの位置の一覧。

解説

ハプティクス対応コントローラーは、ヘッドホンやデスクトップ スピーカーなどの汎用オーディオ デバイスによく似ています。これらは Windows オーディオ システムによって駆動されます。 GameInputHapticInfo 構造により、ハプティクス オーディオ エンドポイントを特定の GameInput デバイスと照合できます。 GetHapticInfo メソッドを使用して、デバイスが準備ができていると報告したら、この情報のクエリを実行できます。

audioEndpointId は、WASAPI またはいくつかの上位レベルのオーディオ API のいずれかを介してハプティクス デバイスにアクセスするために使用できるエンドポイント識別子文字列です。 エンドポイントが開いたら、ハプティクス波形をデバイスにストリーミングするだけです。

従来のオーディオ デバイスには、前方左、前方右、中央などのスピーカーの位置が適切に定義されています。 ハプティクス コントローラーの状況は、デバイスがサラウンド オーディオ システムのメタファーにうまくマップされない物理的な位置でハプティクス フィードバックをサポートする可能性があるため、より微妙です。 既存のオーディオ チャネル インデックスをハプティクスの位置に適応させるために、デバイス固有のマッピングが提供されます。 ハプティクスをサポートするコントローラーの場合、ハプティクスの位置の数は常に 0 より大きくなります。 位置の一覧には、オーディオ チャネル インデックスへの 1 対 1 のマッピングが含まれます。 オーディオとハプティクス エンドポイントの組み合わせを含むエンドポイントのパディングとして使用できる GAMEINPUT_HAPTIC_LOCATION_NONEを除き、繰り返しの位置は許可されません。 説明するために、次の位置の一覧を考えてみましょう:

{ GAMEINPUT_HAPTIC_LOCATION_NONE, GAMEINPUT_HAPTIC_LOCATION_NONE, GAMEINPUT_HAPTIC_LOCATION_GRIP_LEFT, GAMEINPUT_HAPTIC_LOCATION_GRIP_RIGHT }

この例では、チャネル 0 と 1 は使用されず、チャネル 2 と 3 はそれぞれ左グリップと右グリップにマップされます。 ハプティクスの位置の一覧は、今後のバージョンの GameInput で拡張される可能性があります。

要件

ヘッダー: GameInput.h

サポートされているプラットフォーム: Windows

関連項目

GameInput の概要
GetHapticInfo
GameInput
エンドポイント ID 文字列