Gamepad
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
Gamepad はゲームパッド API のインターフェイスで、それぞれのゲームパッドやその他のコントローラーを定義し、ボタン押下や軸位置や ID といった情報にアクセスできるようにします。
Gamepad オブジェクトを取得する方法は 2 つあります。 gamepadconnected または gamepaddisconnected イベントの gamepad プロパティか、 Navigator.getGamepads() から返される配列の任意の位置から取得します。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| 21 | 12 | 29 | 10.1 | 25 | 10.3 | |
| Gamepad.axes は インターフェイスのプロパティで、機器(例えばアナログスティック)上に存在する軸を持つコントロールを表す配列を返します。 | 21 | 12 | 29 | 10.1 | 25 | 10.3 |
| Gamepad.buttons は インターフェイスのプロパティで、機器上に存在するボタンを表す gamepadButton オブジェクトの配列を返します。 | 21 | 12 | 29 | 10.1 | 25 | 10.3 |
| Gamepad.connected は インターフェイスのプロパティで、ゲームパッドがシステムに接続されているかどうかを示す論理値を返します。 | 25 | 12 | 29 | 10.1 | 25 | 10.3 |
| Gamepad.id は インターフェイスのプロパティで、コントローラーに関するいくつかの情報を含む文字列を返します。 | 21 | 12 | 29 | 10.1 | 25 | 10.3 |
| Gamepad.index は インターフェイスのプロパティで、現在システムに接続されているそれぞれの機器の整数の固有番号(自動採番)の整数を返します。 | 21 | 12 | 29 | 10.1 | 25 | 10.3 |
| Gamepad.mapping は Gamepad インターフェイスのプロパティで、ブラウザーが機器のコントロールを既知のレイアウトに再マップしたかどうかを示す文字列を返します。 | 21 | 12 | 29 | 10.1 | 25 | 10.3 |
secure_context_required 実験的 安全なコンテキストが必要 | 86 | 86 | 91 | | 86 | |
| Gamepad.timestamp は Gamepad インターフェイスのプロパティで、このゲームパッドのデータが最後に更新された時刻を表す DOMHighResTimeStamp を返します。 | 21 | 12 | 29 | 10.1 | 25 | 10.3 |
| GamepadButton インターフェイスは、ゲームパッドなどのコントローラーの各ボタンを定義します。このインターフェイスによって、コントローラー上で使用できるボタンの状態を確認することができます。 | 21 | 12 | 29 | 10.1 | 25 | 10.3 |
| GamepadButton.pressed は GamepadButton インターフェイスのプロパティで、現在ボタンが押されている (true) か、押されていない (false) かを示す論理値を返します。 | 21 | 12 | 29 | 10.1 | 25 | 10.3 |
secure_context_required 実験的 安全なコンテキストが必要 | 86 | 86 | 91 | | 86 | |
| GamepadButton.value は GamepadButton インターフェイスのプロパティで、トリガーなど、現代の多くのゲームパッドにおけるアナログボタンの現在の状態を表すために使用する double 値を返します。 | 21 | 12 | 29 | 10.1 | 25 | 10.3 |
| GamepadEvent はゲームパッド API のインターフェイスで、システムに接続されているゲームパッドへの参照が含まれています。これは、ゲームパッドイベント Window.gamepadconnectedevent と Window.gamepaddisconnectedevent が応答として発生するものです。 | 21 | 12 | 29 | 10.1 | 25 | 10.3 |
| GamepadEvent.gamepad は GamepadEvent インターフェイスのプロパティで、Gamepad オブジェクトを返し、発生した Window.gamepadconnectedevent イベントと Window.gamepaddisconnectedevent イベントの関連するゲームパッドデータへのアクセスを提供します。 | 21 | 12 | 29 | 10.1 | 25 | 10.3 |
| GamepadEvent() コンストラクターは、新しい GamepadEvent オブジェクトを作成します。 | 35 | 12 | 29 | 10.1 | 35 | 10.3 |
secure_context_required 実験的 安全なコンテキストが必要 | 86 | 86 | 91 | | 86 | |
| Navigator.getGamepads() メソッドは Gamepad の配列を返します。それぞれがこの端末に接続されているゲームパッドを表します。 | 35 | 12 | 29 | 10.1 | 35 | 10.3 |
getGamepads (secure context required) 実験的 安全なコンテキストが必要 | 86 | 86 | 91 | | 86 | |
| gamepadconnected イベントは、ゲームパッドが接続されたことをブラウザーが検出したとき、またはゲームパッドのボタン/軸が初めて使用されたときに発生します。 | 143 | 143 | 89 | 16 | 143 | 16 |
| gamepaddisconnected イベントは、ゲームパッドが切断されたことをブラウザーが検出したときに発行されます。 | 143 | 143 | 89 | 16 | 143 | 16 |
| その他 | ||||||
html.elements.iframe.allow.gamepad 実験的 | | | 91 | | | |
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ベンダープレフィックス付きで対応: webkit (21)
- ベンダープレフィックス付きで対応: webkit (25)
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- ブラウザの実験的フラグを有効にする必要があります
- このブラウザでは部分的にしか実装されていません
- このバージョンで機能が削除されました (143)
- ongamepadconnected`イベントハンドラプロパティがサポートされていない。バグ 40175074 を参照のこと。
- このブラウザでは部分的にしか実装されていません
- このバージョンで機能が削除されました (143)
- ongamepadconnected`イベントハンドラプロパティがサポートされていない。バグ 40175074 を参照のこと。
- このブラウザでは部分的にしか実装されていません
- このバージョンで機能が削除されました (89)
- ongamepadconnected`イベントハンドラプロパティがサポートされていない。バグ 1697093 を参照のこと。
- このブラウザでは部分的にしか実装されていません
- このバージョンで機能が削除されました (16)
- ongamepadconnected`イベントハンドラプロパティがサポートされていない。バグ 223860 を参照のこと。
- このブラウザでは部分的にしか実装されていません
- このバージョンで機能が削除されました (143)
- ongamepadconnected`イベントハンドラプロパティがサポートされていない。バグ 40175074 を参照のこと。
- このブラウザでは部分的にしか実装されていません
- このバージョンで機能が削除されました (16)
- ongamepadconnected`イベントハンドラプロパティがサポートされていない。バグ 223860 を参照のこと。
- このブラウザでは部分的にしか実装されていません
- このバージョンで機能が削除されました (143)
- ongamepaddisconnected`イベントハンドラプロパティはサポートされていない。バグ 40175074 を参照のこと。
- このブラウザでは部分的にしか実装されていません
- このバージョンで機能が削除されました (143)
- ongamepaddisconnected`イベントハンドラプロパティはサポートされていない。バグ 40175074 を参照のこと。
- このブラウザでは部分的にしか実装されていません
- このバージョンで機能が削除されました (89)
- ongamepaddisconnected`イベントハンドラプロパティはサポートされていない。バグ 1697093 を参照のこと。
- このブラウザでは部分的にしか実装されていません
- このバージョンで機能が削除されました (16)
- ongamepaddisconnected`イベントハンドラプロパティがサポートされていない。バグ223860を参照のこと。
- このブラウザでは部分的にしか実装されていません
- このバージョンで機能が削除されました (143)
- ongamepaddisconnected`イベントハンドラプロパティはサポートされていない。バグ 40175074 を参照のこと。
- このブラウザでは部分的にしか実装されていません
- このバージョンで機能が削除されました (16)
- ongamepaddisconnected`イベントハンドラプロパティがサポートされていない。バグ223860を参照のこと。
- このブラウザでは部分的にしか実装されていません
- デフォルトのallowlistは(仕様で要求されている)`self`の代わりに`*`である。
基本構文
window.addEventListener('gamepadconnected', (e) => {
console.log('Controller connected:', e.gamepad.id);
});
function update() {
const gp = navigator.getGamepads()[0];
if (gp) console.log('A button:', gp.buttons[0].pressed);
requestAnimationFrame(update);
} 実務での使いどころ
-
Gamepad の活用
安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
注意点
- 古いブラウザでは対応していない場合がある。
アクセシビリティ
- スクリーンリーダーでの読み上げを確認すること。