IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ バルブ コーポレーションの特許一覧

特開2024-156652Bluetooth(登録商標)低エネルギー(BLE)モードで動作可能なゲームコントローラ
<>
  • 特開-Bluetooth(登録商標)低エネルギー(BLE)モードで動作可能なゲームコントローラ 図1A
  • 特開-Bluetooth(登録商標)低エネルギー(BLE)モードで動作可能なゲームコントローラ 図1B
  • 特開-Bluetooth(登録商標)低エネルギー(BLE)モードで動作可能なゲームコントローラ 図2
  • 特開-Bluetooth(登録商標)低エネルギー(BLE)モードで動作可能なゲームコントローラ 図3
  • 特開-Bluetooth(登録商標)低エネルギー(BLE)モードで動作可能なゲームコントローラ 図4
  • 特開-Bluetooth(登録商標)低エネルギー(BLE)モードで動作可能なゲームコントローラ 図5
  • 特開-Bluetooth(登録商標)低エネルギー(BLE)モードで動作可能なゲームコントローラ 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024156652
(43)【公開日】2024-11-06
(54)【発明の名称】Bluetooth(登録商標)低エネルギー(BLE)モードで動作可能なゲームコントローラ
(51)【国際特許分類】
   H04W 84/10 20090101AFI20241029BHJP
   H04W 84/00 20090101ALI20241029BHJP
   A63F 13/24 20140101ALI20241029BHJP
   A63F 13/327 20140101ALI20241029BHJP
   A63F 13/428 20140101ALI20241029BHJP
   G06F 3/01 20060101ALI20241029BHJP
   G06F 3/04883 20220101ALI20241029BHJP
   G06F 3/16 20060101ALI20241029BHJP
   G09G 5/00 20060101ALI20241029BHJP
   G09G 5/373 20060101ALI20241029BHJP
   G09G 5/37 20060101ALI20241029BHJP
   H04W 88/06 20090101ALI20241029BHJP
【FI】
H04W84/10 110
H04W84/00 110
A63F13/24
A63F13/327
A63F13/428
G06F3/01 510
G06F3/04883
G06F3/16 630
G09G5/00 510H
G09G5/00 550X
G09G5/00 555D
G09G5/00 520V
G09G5/373 300
G09G5/00 550D
G09G5/00 550C
G09G5/37 600
H04W88/06
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024098440
(22)【出願日】2024-06-19
(62)【分割の表示】P 2021557603の分割
【原出願日】2020-03-24
(31)【優先権主張番号】16/370,656
(32)【優先日】2019-03-29
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ANDROID
(71)【出願人】
【識別番号】517160525
【氏名又は名称】バルブ コーポレーション
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】パルマー、オースティン
(72)【発明者】
【氏名】ランティンガ、サム
(72)【発明者】
【氏名】ブラウン、ナサニエル
(72)【発明者】
【氏名】ワートン、コレイ
(57)【要約】      (修正有)
【課題】ハンドヘルドコントローラは、動作可能でない場合にゲームコントローラ入力に課され得る任意のオペレーティングシステム制限を回避する。
【解決手段】ハンドヘルドコントローラは、BLEモードで動作するときに、ビデオゲームストリーミングのために使用されるクライアントアプリケーションを実行するBLEデバイスとペアリングする。ゲームプレー中、ビデオゲームは、ホストコンピュータ上で実行され、プレーヤーは、ユーザ入力をゲームコントローラに提供して、ビデオゲームのアスペクトを制御する。そのようなユーザ入力に応答して、ゲームコントローラは、ゲームコントローラの無線器を介して、コントローラ入力データをBLEデバイスに送信する。プレーヤーは、ゲームコントローラ上の入力ジェスチャーを使用して、BLEモードでゲームコントローラを動作させることと、受信機モードでゲームコントローラを動作させることとを切り替える。
【選択図】図1A
【特許請求の範囲】
【請求項1】
ハンドヘルドビデオゲームコントローラであって、
プロセッサと、
無線器と、
コンピュータ実行可能命令を記憶するメモリであって、前記プロセッサによって実行されるときに、前記コンピュータ実行可能命令が、前記ハンドヘルドビデオゲームコントローラに、
前記ハンドヘルドビデオゲームコントローラによって受信された第1のユーザ入力に少なくとも部分的に基づいて、
前記ハンドヘルドビデオゲームコントローラの1つ以上の電気コンポーネントに電力を供給することによって始動させること、および
Bluetooth(登録商標)低エネルギー(BLE)モードで動作することを判定することと、
前記メモリ内に記憶されたデータに少なくとも部分的に基づいて、前記ハンドヘルドビデオゲームコントローラが以前に接続したBLEデバイスを判定することと、
前記無線器を介して、クライアントアプリケーションを実行する前記BLEデバイスとの無線接続を確立することと、
前記BLEデバイスとは異なるホストコンピュータ上で実行するビデオゲームのアスペクトを制御するための第2のユーザ入力を受信することと、
前記無線器を介してコントローラ入力データを前記BLEデバイスに送信することであって、前記コントローラ入力データが、前記第2のユーザ入力に少なくとも部分的に基づく、送信することと、を行わせる、メモリと、を備える、ハンドヘルドビデオゲームコントローラ。
【請求項2】
前記コンピュータ実行可能命令が、前記プロセッサによって実行されるときに、前記ハンドヘルドビデオゲームコントローラに、
受信機モードで前記ハンドヘルドビデオゲームコントローラを動作させるためのコマンドに対応する第3のユーザ入力を受信することと、
前記メモリに記憶された前記データに少なくとも部分的に基づいて、前記ハンドヘルドビデオゲームコントローラが以前に接続した無線受信機を判定することであって、前記無線受信機が、前記BLEデバイスとは異なる、判定することと、
前記無線器を介して、前記無線受信機との無線接続を確立することと、
前記ホストコンピュータ上で実行する前記ビデオゲームの追加のアスペクトを制御するための第4のユーザ入力を受信することと、
前記無線器を介して、追加のコントローラ入力データを前記無線受信機に送信することであって、前記追加のコントローラ入力データが、前記第4のユーザ入力に少なくとも部分的に基づく、送信することと、をさらに行わせる、請求項1に記載のハンドヘルドビデオゲームコントローラ。
【請求項3】
前記第3のユーザ入力が、前記受信機モードで前記ハンドヘルドビデオゲームコントローラを動作させるための前記コマンドに対応するジェスチャーを含む、請求項2に記載のハンドヘルドビデオゲームコントローラ。
【請求項4】
前記BLEモードで動作することを判定することは、前記第1のユーザ入力が、前記BLEモードで動作させるためのコマンドに対応するジェスチャーを含むと判定することを含む、請求項1に記載のハンドヘルドビデオゲームコントローラ。
【請求項5】
前記コンピュータ実行可能命令は、前記プロセッサによって実行されるときに、前記ハンドヘルドビデオゲームコントローラに、
前記ジェスチャーは、前記ハンドヘルドビデオゲームコントローラが以前に接続した複数のBLEデバイスの中で前記BLEデバイスに関連付けられていると判定することと、
前記ジェスチャーに少なくとも部分的に基づいて、前記複数のBLEデバイスの中で前記BLEデバイスを識別することと、をさらに行わせる、請求項4に記載のハンドヘルドビデオゲームコントローラ。
【請求項6】
前記BLEデバイスを判定することは、前記BLEデバイスを、前記ハンドヘルドビデオゲームコントローラが前記第1のユーザ入力を受信する以前に最後に接続されたBLEデバイスとして識別することを含む、請求項1に記載のハンドヘルドビデオゲームコントローラ。
【請求項7】
方法であって、
ハンドヘルドビデオゲームコントローラによって、第1のユーザ入力を受信することと、
前記第1のユーザ入力に少なくとも部分的に基づいて、
前記ハンドヘルドビデオゲームコントローラを始動すること、および
Bluetooth低エネルギー(BLE)モードで前記ハンドヘルドビデオゲームコントローラを動作させることを判定することと、
前記ハンドヘルドビデオゲームコントローラのメモリに記憶されたデータに少なくとも部分的に基づいて、前記ハンドヘルドビデオゲームコントローラが以前に接続したBLEデバイスを判定することと、
前記ハンドヘルドビデオゲームコントローラの無線器を介して、前記ハンドヘルドビデオゲームコントローラによって、クライアントアプリケーションを実行する前記BLEデバイスとの無線接続を確立することと、
前記ハンドヘルドビデオゲームコントローラによって、前記BLEデバイスとは異なるホストコンピュータ上で実行するビデオゲームのアスペクトを制御するための第2のユーザ入力を受信することと、
前記ハンドヘルドビデオゲームコントローラによって、前記無線器を介して、コントローラ入力データを前記BLEデバイスに送信することであって、前記コントローラ入力データが、前記第2のユーザ入力に少なくとも部分的に基づく、送信することと、を含む、方法。
【請求項8】
前記ハンドヘルドビデオゲームコントローラによって、受信機モードで前記ハンドヘルドビデオゲームコントローラを動作させるためのコマンドに対応する第3のユーザ入力を受信することと、
前記ハンドヘルドビデオゲームコントローラの前記メモリに記憶された前記データに少なくとも部分的に基づいて、前記ハンドヘルドビデオゲームコントローラが以前に接続した無線受信機を判定することであって、前記無線受信機が、前記BLEデバイスとは異なる、判定することと、
前記ハンドヘルドビデオゲームコントローラによって、前記無線器を介して前記無線受信機との無線接続を確立することと、
前記ハンドヘルドビデオゲームコントローラによって、前記ホストコンピュータ上で実行する前記ビデオゲームの追加のアスペクトを制御するための第4のユーザ入力を受信することと、
ゲームコントローラを介する前記ハンドヘルドによって、前記無線を介して、追加のコントローラ入力データを前記無線受信機に送信することであって、前記追加のコントローラ入力データが、前記第4のユーザ入力に少なくとも部分的に基づく、送信することと、をさらに含む、請求項7に記載の方法。
【請求項9】
前記BLEモードで前記ハンドヘルドビデオゲームコントローラを動作させることを前記判定することは、前記第1のユーザ入力が、前記BLEモードで前記ハンドヘルドビデオゲームコントローラを動作させるためのコマンドに対応するジェスチャーを含むと判定することを含む、請求項7に記載の方法。
【請求項10】
前記ジェスチャーが、前記ハンドヘルドビデオゲームコントローラの第1のボタンおよび第2のボタンを含む複数のボタンの組み合わせの押下として、前記ハンドヘルドビデオゲームコントローラにより検出されるマルチボタンジェスチャーを含む、請求項9に記載の方法。
【請求項11】
前記BLEデバイスを前記判定することは、
前記ジェスチャーが、前記ハンドヘルドビデオゲームコントローラが以前に接続した複数のBLEデバイスの中で、前記BLEデバイスに関連付けられていると判定することと、
前記ジェスチャーに少なくとも部分的に基づいて、前記複数のBLEデバイスの中で、前記BLEデバイスを識別することと、を含む、請求項9に記載の方法。
【請求項12】
前記BLEデバイスを前記判定することは、前記BLEデバイスを、前記ハンドヘルドビデオゲームコントローラが前記第1のユーザ入力の前記受信する前に最後に接続されたBLEデバイスとして識別することを含む、請求項7に記載の方法。
【請求項13】
前記BLEモードで前記ハンドヘルドビデオゲームコントローラを動作させることを前記判定することは、
前記BLEモードを、前記ハンドヘルドビデオゲームコントローラが前記第1のユーザ入力を前記受信する前に最後に動作された動作モードとして識別することを含む、請求項12に記載の方法。
【請求項14】
ハンドヘルドビデオゲームコントローラのプロセッサによって実行されるときに、前記ハンドヘルドビデオゲームコントローラに動作を実行させるコンピュータ実行可能命令を記憶する1つ以上の非一時的コンピュータ可読媒体であって、前記動作が、
第1のユーザ入力を受信することと、
前記第1のユーザ入力に少なくとも部分的に基づいて、
前記ハンドヘルドビデオゲームコントローラに給電すること、および
Bluetooth低エネルギー(BLE)モードで前記ハンドヘルドビデオゲームコントローラを動作させることを判定することと、
前記ハンドヘルドビデオゲームコントローラのメモリに記憶されたデータに少なくとも部分的に基づいて、前記ハンドヘルドビデオゲームコントローラが以前に接続したBLEデバイスを判定することと、
前記ハンドヘルドビデオゲームコントローラの無線器を介して、クライアントアプリケーションを実行する前記BLEデバイスとの無線接続を確立することと、
前記BLEデバイスとは異なるホストコンピュータ上で実行するビデオゲームのアスペクトを制御するための第2のユーザ入力を受信することと、
前記無線器を介して、コントローラ入力データを前記BLEデバイスに送信することであって、前記コントローラ入力データが、前記第2のユーザ入力に少なくとも部分的に基づく、送信することと、を含む、1つ以上の非一時的コンピュータ可読媒体。
【請求項15】
前記動作が、
受信機モードで前記ハンドヘルドビデオゲームコントローラを動作させるためのコマンドに対応する第3のユーザ入力を受信することと、
前記ハンドヘルドビデオゲームコントローラの前記メモリに記憶された前記データに少なくとも部分的に基づいて、前記ハンドヘルドビデオゲームコントローラが以前に接続した無線受信機を判定することであって、前記無線受信機が、前記BLEデバイスとは異なる、判定することと、
前記無線器を介して前記無線受信機との無線接続を確立することと、
前記ホストコンピュータ上で実行する前記ビデオゲームの追加のアスペクトを制御するための第4のユーザ入力を受信することと、
前記無線器を介して、追加のコントローラ入力データを前記無線受信機に送信することであって、前記追加のコントローラ入力データが、前記第4のユーザ入力に少なくとも部分的に基づく、送信することと、をさらに含む、請求項14に記載の1つ以上の非一時的コンピュータ可読媒体。
【請求項16】
前記BLEモードで前記ハンドヘルドビデオゲームコントローラを動作させることを前記判定することは、前記第1のユーザ入力が、前記BLEモードで前記ハンドヘルドビデオゲームコントローラを動作させるためのコマンドに対応するジェスチャーを含むと判定することを含む、請求項14に記載の1つ以上の非一時的コンピュータ可読媒体。
【請求項17】
前記ジェスチャーが、前記ハンドヘルドビデオゲームコントローラの第1のボタンおよび第2のボタンを含む複数のボタンの組み合わせの押下として、前記ハンドヘルドビデオゲームコントローラによって検出されるマルチボタンジェスチャーを含む、請求項16に記載の1つ以上の非一時的コンピュータ可読媒体。
【請求項18】
前記BLEデバイスを前記判定することは、
前記ジェスチャーが、前記ハンドヘルドビデオゲームコントローラが以前に接続した複数のBLEデバイスの中で、前記BLEデバイスに関連付けられていると判定することと、
前記ジェスチャーに少なくとも部分的に基づいて、前記複数のBLEデバイスの中で、前記BLEデバイスを識別することと、を含む、請求項16に記載の1つ以上の非一時的コンピュータ可読媒体。
【請求項19】
前記BLEデバイスを前記判定することは、前記BLEデバイスを、前記ハンドヘルドビデオゲームコントローラが前記第1のユーザ入力の前記受信する前に最後に接続されたBLEデバイスとして識別することを含む、請求項14に記載の1つ以上の非一時的コンピュータ可読媒体。
【請求項20】
前記ハンドヘルドビデオゲームコントローラを前記BLEモードで動作させることを前記判定することは、
前記BLEモードを、前記ハンドヘルドビデオゲームコントローラが前記第1のユーザ入力を前記受信する前に最後に動作された動作モードとして識別することを含む、請求項14に記載の1つ以上の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本願は、2019年3月29日に出願された「GAME CONTROLLER OPERABLE IN BLUETOOTH LOW ENERGY (BLE) MODE」と題する米国特許出願第16/370,656号に対する優先権を主張するPCT出願であり、これは、その全体が参照により本明細書によって組み込まれる。
【技術分野】
【0002】
[背景技術]
家庭内ビデオゲームストリーミングは、ビデオゲームが家庭環境内の他所の別のコンピュータ(ホストコンピュータ)上で実際に実行している間、1つのコンピュータ(ターゲットデバイス)上でビデオゲームをプレーすることを可能にする。例示的なセットアップとしては、ビデオゲームを実行し、ビデオゲームデータ(例えば、オーディオおよびビデオデータ)を取り込み、ホームネットワーク経由でビデオゲームデータをリビングルームのテレビ(ターゲットデバイス)にストリーミングする、自宅事務所に設置されたパーソナルコンピュータ(PC)(ホストコンピュータ)が挙げられる。このシナリオでは、プレーヤーは、ハンドヘルドビデオゲームコントローラを使用して、ビデオゲームコンテンツがテレビ上に描画されている間に、リビングルームの長いすからビデオゲームをプレーすることができる。リビングルームのテレビが適切な受信機を備えていない場合、ハブデバイスが、PCからビデオゲームデータを受信し、オーディオ/ビデオインターフェース経由でビデオゲームデータをリビングルームのテレビに提供する仲介者としての役目を果たし得る。このハブデバイスはまた、ゲームコントローラからコントローラ入力データを受信し、コントローラ入力データを上り方向にPCに提供することもできる。他のセットアップとしては、ユニバーサルシリアルバス(USB)ドングルを無線受信機として使用する場合があり、このドングルは、ラップトップなどの、好適なUSBポートを備えたターゲットデバイスにプラグ接続することができる。ドングルは、ゲームコントローラによって提供されたコントローラ入力データを受信し、ホームネットワーク経由でPCからビデオゲームデータをストリーミングするターゲットデバイス上でのゲームプレーを可能にする。これらおよび他のセットアップを使用すると、プレーヤーは、ビデオゲームがその環境内の他のどこかのホストコンピュータ上で実際に実行している間、家中に設置された複数の異なるデバイス上でビデオゲームをプレーすることができる。
【0003】
今日、ゲームが家庭用電子デバイス(例えば、タブレットコンピュータ、スマートフォン等)にストリーミングされるのを可能にしたいという需要があり、その需要は、消費者間のいたるところに存在する。また、プレーヤーが、単一のビデオゲームセッションの最中であっても、デバイス間で切り替えるのを可能にすることも同時に要求されている。例えば、プレーヤーは、タブレットコンピュータ上でビデオゲームをプレーし始めたい場合があり、その後、リビングルームのテレビ上でそのビデオゲームをプレーすることに切り替えたい場合がある。その間中、ユーザは、これらの様々なターゲットデバイス上でビデオゲームをプレーするために使用可能である好みのビデオゲームコントローラを持ち歩きたい場合がある。
【0004】
セキュリティ上の理由、またはそれ以外の理由のために、オペレーティングシステム(OS)ベンダーは、それらのOSを実行するデバイスに接続することが許可されるいくつかのタイプの周辺装置(例えば、ゲームコントローラ)に制限を課す。Apple社のiOSは、iOS機器に接続するためにMFi認定されているゲームパッドのみを許可しているため、例示的である。これは、iOS機器上でビデオゲームをストリーミングするためには、プレーヤーがMFi認定されていないゲームコントローラを使用することができないことを意味する。代わりに、そのプレーヤーは、iOS機器上でビデオゲームをストリーミングし、ハンドヘルドビデオゲームコントローラを用いてそのゲームをプレーするために、MFi認定されている、多くの場合多少性能の劣るゲームパッドを使用せざるを得ない。Androidなどの他の普及しているOSのデバイスは、特定のゲームコントローラに接続する場合があるが、そのOSは、ゲームコントローラのすべての特徴および機能性をサポートしていない場合がある。例えば、そのOSは、ガイド/メニューボタン入力または戻るボタン入力がゲームコントローラ上で作動されたときに、これらのボタン入力を解釈することができない場合がある。さらに、USBドングルを、側面の厚みの薄いタブレットまたはスマートフォンに差し込むことは、ドングルがある対象物によってぶつけられた場合、そのデバイスまたはそのドングルが損傷を受けやすくなるため、それほど望ましい解決策にはならない。そもそも、ドングルの使用をサポートしていないデバイスがいくつか存在する。加えて、ユーザが、ビデオゲームを異なるターゲットデバイスにストリーミングさせるために、あるデバイスから別のデバイスにドングルを持ち歩く必要があるときに、ドングルを紛失したり、または置き忘れることが多い。
【0005】
これらの考慮事項に照らしてみると、今日の家庭内ビデオゲームストリーミング環境体系は、ほとんどのビデオゲームコントローラを用いて動作するターゲットデバイスの限定されたサブセットに制限され、それ以外の場合では、プレーヤーが、他のターゲットデバイスを用いて、多少性能の劣るゲームコントローラを使用せざるを得ない。本明細書で行われる開示は、これらおよび他の考慮事項に関連して提示される。
【図面の簡単な説明】
【0006】
添付の各図を参照して、詳細な説明が記載される。各図において、参照番号の左端数字は、参照番号が最初に現れる図を識別する。異なる図における同じ参照番号の使用は、類似または同一の構成要素または特徴を示す。
【0007】
図1A】Bluetooth低エネルギー(BLE)モードでゲームコントローラを動作させるときの、ビデオゲームを第1のターゲットデバイスにストリーミングさせる例示的な技術を示す概略図である。
【0008】
図1B】受信機モードでゲームコントローラを動作させるときの、ビデオゲームを第2のターゲットデバイスにストリーミングさせる例示的な技術を示す概略図である。
【0009】
図2】ホストコンピュータとして使用可能な例示的なクライアントマシンのコンポーネント、例示的なゲームコントローラのコンポーネント、および例示的なBLEデバイスのコンポーネントを示す略図である。
【0010】
図3】少なくともBLEモードおよび受信機モードを含む異なるモードでゲームコントローラを動作させるために、ゲームコントローラのユーザによって提供され得る例示的なジェスチャーを示す略図である。
【0011】
図4】複数の動作モードのうちの1つでハンドヘルドビデオゲームコントローラを動作させるための例示的なプロセスのフロー図である。
【0012】
図5】ホストコンピュータ上で実行するビデオゲームをストリーミングさせ、ゲームコントローラからBLE経由でコントローラ入力データを受信するためのBLEデバイスを動作させるための例示的なプロセスのフロー図である。
【0013】
図6】ホストコンピュータとは別個のゲームコントローラからコントローラ入力データを受信しながら、ホストコンピュータ上で実行するビデオゲームをターゲットデバイスにストリーミングさせるためのそのホストコンピュータを動作させるための例示的なプロセスのフロー図である。
【発明を実施するための形態】
【0014】
とりわけ、ビデオゲームデータをBluetooth低エネルギー(BLE)デバイスにストリーミングさせるための、およびプレーヤーがBLEゲームコントローラを使用してそのようなBLEデバイス上でビデオゲームをプレーすることを可能にするための技術、デバイス、およびシステムが、本明細書に記載される。具体的には、ハンドヘルドビデオゲームコントローラは、他のモードの中で、BLEモードで動作可能であり、他の場合にゲームコントローラ入力上で課される可能性がある任意のオペレーティングシステム(OS)制限を回避する方法で、コントローラ入力データをターゲットBLEデバイスに送信するのを可能にする。BLE無線器は、今日のワイヤレス家庭用電子デバイスにおいて広く普及しているため、-ゲームコントローラ入力上の既知のOS制限を回避する手段としてBLEプロトコルを使用して-コントローラ入力データをBLEデバイスに提供する能力は、ビデオゲームストリーミングのために使用されるデバイスおよびプラットフォームの環境体系を拡張する。すなわち、-ゲームコントローラ入力に課されたそれらのOSの制限のために、これまでビデオゲームストリーミングのためのターゲットデバイスとして使用不可能だった-BLEデバイスは、現在、BLEゲームコントローラを用いたビデオゲームストリーミングのためのターゲットデバイスとして、使用可能である。
【0015】
本明細書に開示される実施形態によれば、ハンドヘルドビデオゲームコントローラは、無線通信機、および異なるモードで動作させるためのロジックを含む。この異なる動作モードは、少なくともBLEモードおよび受信機モードを含む。BLEモードで動作するときに、ハンドヘルドビデオゲームコントローラは、ビデオゲームストリーミングのために使用されるクライアントアプリケーションを実行するBLEデバイスとの無線接続を確立する。ゲームプレー中、ビデオゲームは、ホストコンピュータ上で実行され、プレーヤーは、ユーザ入力をゲームコントローラに提供して、ビデオゲームのアスペクトを制御する。そのようなユーザ入力に応答して、ゲームコントローラは、無線器を介して、コントローラ入力データをBLEデバイスに送信する。このようにして、BLEインターフェースは、(例えば、ホームネットワーク経由で)ビデオゲームストリーミングを可能にするための、BLE可能ゲームコントローラとホストコンピュータとの間の側波帯通信経路として使用可能である。この側波帯通信経路は、BLEデバイスのOSが、他の場合では、ビデオゲームコントローラ周辺装置およびそれらの対応するコントローラ入力データに課され得る任意のOS制限を効果的に回避する。
【0016】
受信機モードで動作するときに、ハンドヘルドビデオゲームコントローラは、ゲームコントローラの無線器を使用して、非BLEプロトコルを利用する無線受信機との無線接続を確立する。ゲームプレー中、ビデオゲームのアスペクトを制御するためのユーザ入力に応答して、ゲームコントローラは、無線器を介して、コントローラ入力データを無線受信機に送信することができる。この無線受信機は、プレーヤーがビデオゲームをプレーするのを望む任意のターゲットデバイスに接続されるか、またはその中に組み込まれることができる。無線受信機が前述のBLEデバイスとは異なるデバイスに接続されるか、またはその中に組み込まれる場合、ゲームコントローラ上でモードを切り替えることにより、プレーヤーがターゲットデバイスの間を切り替え、その結果、ビデオゲームは、環境内の異なる場所(例えば、家の異なる部屋)でプレーすることができる。いくつかの実施形態では、無線受信機は、ゲームコントローラがBLEモードにあるときに、ターゲットデバイスとして使用可能である同じBLEデバイスに接続されるか、またはその中に組み込まれることができる。後者のシナリオでは、プレーヤーは、単一のBLEデバイス上でビデオゲームをプレーすることができるが、性能上の理由、またはそれ以外の理由により、BLEモードでゲームコントローラを使用することと、受信機モードでゲームコントローラを使用することとの間で切り替えることができる。例えば、BLE経由のストリーミングデータは、受信機モードで使用可能な低遅延WiFiプロトコルなどの、より高性能ではないその特定の他の非BLE無線プロトコルであることが知られているため、プレーヤーは、受信機モードでゲームコントローラを動作させることに切り替えて、受信機モードを使用する性能向上を利用することができる(例えば、入力遅延を経験せずに、より多くのゲームコントローラを同じ無線受信機に接続するために、またはプレーヤーがうまく実行するために迅速に反応しなければならない、より遅延依存のビデオゲームをプレーするために、など)。一方、プレーヤーは、例えば、プレーヤーがタブレットまたはスマートフォンなどの異なる(例えば、よりポータブル/モバイルの)デバイスを使用してビデオゲームをプレーすることを望む場合に、ゲームコントローラをBLEモードで動作させることに復帰したい場合がある。モード間の切り替えは、ハンドヘルドビデオゲームコントローラへのジェスチャーによる入力を介して(例えば、ボタンの特定の組み合わせを必要とするマルチボタンジェスチャーを使用して)、有効にすることができる。
【0017】
また、クライアントアプリケーション(本明細書では、ときどき「クライアントアプリ」と呼ばれる)が本明細書に開示され、これは、BLEデバイスにダウンロードされ、そこの上で実行されて、ホストコンピュータからBLEデバイスへのビデオゲームストリーミングを可能にし、BLEデバイスを介して、ハンドヘルドビデオゲームコントローラからホストコンピュータにコントローラ入力データの受け渡しを可能にすることができる。すなわち、クライアントアプリケーションは、BLEモードでのハンドヘルドビデオゲームコントローラの使用をサポートして、ゲームコントローラの特徴へのフルアクセスを提供する。このセットアップでは、ドングルまたは別の外部無線受信機の使用を必要とせず、これは、プレーヤーが、容易に紛失するかまたは損傷を受ける可能性があるドングルを持ち歩く必要がないなどの利点をもたらすことができる。BLEデバイス上で実行可能であるクライアントアプリは、BLEデバイスが、BLEモードで動作するハンドヘルドビデオゲームコントローラから無線器経由でコントローラ入力データを受信するように構成する特別仕様のBLE特性を含むことができる。ユーザは、BLEデバイスをローカルエリアネットワーク(LAN)に接続することができ、その結果、BLEデバイスは、コントローラ入力データを送信することができ、それは、ゲームコントローラから、ビデオゲームを実行しているホストコンピュータに受信される。
【0018】
ビデオゲームを実行するホストコンピュータは、BLEデバイスおよびハンドヘルドビデオゲームコントローラと環境内に一緒に設置され得、またはホストコンピュータは、地理的に離れた場所(例えば、「クラウド内に」置かれているサーバコンピュータ)にリモートで設置されてもよい。ホストコンピュータが、BLEデバイスおよびゲームコントローラが設置されている環境に対してローカルである場合、ホストコンピュータは、BLEデバイスが接続されている同じLANに接続されてもよい。ホストコンピュータは、ビデオゲームクライアントを使用して、ビデオゲームセッション中にビデオゲームを実行することができる。ゲームプレー中、ホストコンピュータは、仲介機器から(例えば、BLEモードで動作するゲームコントローラに接続されたBLEデバイスから)コントローラ入力データを受信し、ホストコンピュータのビデオゲームクライアントは、コントローラ入力データを、その後、ホストコンピュータ上で実行するビデオゲームによって処理されるビデオゲーム入力データに変換することができる。ビデオゲームクライアントは、それが実行しているビデオゲームに固有の入力ライブラリにフックして、コントローラ入力データを、ビデオゲームによって使用可能な何かに変換することができる。ゲームプレー中に各フレームを描画すると、ビデオゲームクライアントは、ビデオゲームデータ(例えば、オーディオおよびビデオデータ)を取り込み、ホストコンピュータは、LAN経由で、ビデオゲームデータを、BLEデバイスなどのターゲットデバイスに送信する。BLEデバイスは、ゲームプレー中のプレーヤーによる消費のために、オーディオおよびビデオデータを(例えば、スピーカーおよびディスプレイを介して)出力する。
【0019】
本明細書に開示される技術およびシステムにより、プレーヤーが、BLEデバイス上で走るOSのタイプにかかわらず、BLEデバイスを、ビデオゲームストリーミングのためのターゲットデバイスとして利用することが可能になる。これは、BLEデバイスとともにOS認証されたゲームパッドを使用する必要があることよりもより柔軟性および汎用性が高く、これにより、互換性のあるゲームコントローラを、はるかに小さいゲームコントローラセットに限定される。開示された技術およびシステムにより、接続されたBLEデバイスにストリーミングされるビデオゲームをプレーするための任意のタイプのBLE可能なゲームコントローラを仮想的に使用することが可能になり、ゲームコントローラが、BLEインターフェース経由でコントローラ入力データを被接続BLEデバイスに送信するための、本明細書に記載されているBLE可能無線器およびロジックを含む限り、ビデオゲームのプレーヤーは、好みのゲームコントローラを使用することを楽しむことができる。さらに、異なるモードでハンドヘルドビデオゲームコントローラを動作させることの間で、-すなわち、BLEモードと受信機モードとの間で-切り替えるためのプレーヤーの能力により、ユーザが、ある環境内の任意の所望のターゲットデバイス上でビデオゲームをプレーし、単一のゲームセッション中であっても、これらのデバイスの間を切り替えることが可能になる。これにより、ドングルを受容するためのUSBポートを有さないBLEデバイス上でのストリーミングゲームへの扉が開かれ、ビデオゲームストリーミングの柔軟性および利便性が向上する。ハンドヘルドビデオゲームコントローラを受信機モードで動作させるための持続される能力(例えば、無線器経由で、コントローラ入力データを、非BLEプロトコルを利用する無線受信機に送信することによって)は、低性能のBLE接続と比較して、プレーヤーに、より低遅延の接続オプションを提供し、その結果、プレーヤーは、例えば、より多くのゲームコントローラを接続するか、または入力遅延依存のビデオゲームをプレーすることができる。
【0020】
図1Aは、Bluetooth低エネルギー(BLE)モードでゲームコントローラを動作させるときの、ビデオゲームを第1のターゲットデバイスにストリーミングさせる例示的な技術を示す概略図である。図1Bは、受信機モードでゲームコントローラを動作させるときの、ビデオゲームを第2のターゲットデバイスにストリーミングさせる例示的な技術を示す概略図である。したがって、図1Aおよび1Bは、ハンドヘルドビデオゲームコントローラ102の異なる動作モードを対比するように示されている。図1Aおよび1Bは、遠隔システム104(場合によっては、「遠隔コンピューティングシステム」104と呼ばれる)を含む。この遠隔システム104は、図1Aおよび1Bに示されたクライアントマシン106などのクライアントマシンに、プログラム(およびコンテンツ)を配信(例えば、ダウンロード)するためのプラットフォームとして機能するか、またはそのプラットフォームにアクセスすることができる。これらのプログラム(およびコンテンツ)には、ビデオゲーム(またはビデオゲームプログラム)が含まれ得る。クライアントマシン106は、クライアントマシン106の通信インターフェースを介して、コンピュータネットワーク108経由で遠隔システム104と通信することができる。このコンピュータネットワーク108は、インターネット、他のタイプのデータおよび/または音声ネットワーク、有線インフラストラクチャ(例えば、同軸ケーブル、光ファイバケーブル等)、無線インフラストラクチャ(例えば、無線周波数(RF)、移動通信、衛星等)、および/または他の接続技術を表すか、または含み得るが、これらに限定されない。したがって、クライアントマシン106は、任意の好適な通信プロトコルを使用して、ローカルエリアネットワーク(LAN)の一部である無線アクセスポイント(WAP)110を介して、遠隔システム104にデータを送信/受信する。遠隔システム104は、場合によっては、コンピュータネットワーク108を介して維持およびアクセスされるネットワークアクセス可能なコンピューティングプラットフォームの一部であってもよい。このようなネットワークアクセス可能コンピューティングプラットフォームは、「オンデマンドコンピューティング」、「サービスとしてのソフトウェア(SaaS)」、「プラットフォームコンピューティング」、「ネットワークアクセス可能プラットフォーム」、「クラウドサービス」、「データセンタ」などの用語を使用して言及される場合がある。
【0021】
クライアントマシン106は、パーソナルコンピュータ(PC)を表す場合があるが、そのクライアントマシンは、PCの構成に限定されない。すなわち、クライアントマシン106は、PC、デスクトップコンピュータ、ラップトップコンピュータ、携帯電話(例えば、スマートフォン)、タブレットコンピュータ、携帯型情報端末(PDA)、ウェアラブルコンピュータ(例えば、仮想現実(VR)ヘッドセット、拡張現実感(AR)ヘッドセット、スマートグラス等)、車載(例えば、車内)コンピュータ、テレビ(スマートテレビ)、セットトップボックス(STB)、ゲームコンソール、および/または任意の同様のコンピューティングデバイスを含む、ビデオゲームを実行するように構成された任意の好適なタイプのコンピューティングデバイスとして実装され得るが、これらに限定されない。クライアントマシン106は、ある環境112内に、1つ以上の追加のデバイスとともに設置されてもよい。クライアントマシン106が設置される環境112は、住宅もしくは他の敷地、自動車、または任意の類似の環境であってもよい。このような環境としては、例えば、前述のハンドヘルドビデオゲームコントローラ102(場合によっては、本明細書では、「ゲームコントローラ」102、または「ハンドヘルドコントローラ」102と呼ばれる)、WAP110、BLEデバイス114、テレビ116、および無線受信機118を、Internet of Things(IoT)デバイスなどの他の可能なデバイス、他の家庭用電子デバイス等を含んでもよい。
【0022】
一般に、図1Aおよび1Bに示されたクライアントマシン106は、プレーヤー120が実行することができるコンピューティングデバイスを表し、「ホストコンピュータ」として、プログラム(例えば、ビデオゲーム)およびそのクライアントマシン上の他のソフトウェアを実行することができる。すなわち、本明細書で使用されるときの「ホストコンピュータ」は、プレーヤー120がそのホストコンピュータ上でビデオゲームをプレーしているかどうか、またはそのホストコンピュータがビデオゲームデータをターゲットデバイスにストリーミングしているかどうかにかかわらず、ビデオゲームを実行しているコンピュータを意味する。「ユーザ120」、「プレーヤー120」、および/または「ゲーマー120」という用語は、本明細書では、区別なく使用され得、コンピューティングデバイスを使用してビデオゲームをプレーしているユーザを指す場合がある。簡単に図2を参照すると、クライアントマシン106は、他のコンポーネントの中でもとりわけ、中央処理装置(CPU)およびグラフィック処理装置(GPU)、ディスプレイ202、メモリ204(または非一時的コンピュータ可読媒体204)、および通信インターフェース206などの1つ以上のプロセッサ200を含む。図2の例示的なクライアントマシン106は、クライアントマシン106がディスプレイ202を含むことを示唆しているが、クライアントマシン106は、実際には、ディスプレイを省略してもよく、かつ/または周辺のディスプレイに結合されてもよい。
【0023】
メモリ204(または非一時的コンピュータ可読媒体204)には、揮発性および不揮発性メモリ、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実装された取り外し可能および取り外し不可能な媒体が含まれ得る。そのようなメモリとしては、限定されるものではないが、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多目的ディスク(DVD)もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、RAIDストレージシステム、または所望の情報を記憶するために使用され得、コンピューティングデバイスによってアクセスされ得る、任意の他の媒体が挙げられる。コンピュータ可読媒体204は、コンピュータ可読記憶媒体(「CRSM」)として実装され得、そのコンピュータ可読記憶媒体は、メモリ204上に記憶された命令を実行するためのプロセッサ200によってアクセス可能である任意の利用可能な物理的媒体であってもよい。1つの基本的な実装形態では、CRSMは、ランダムアクセスメモリ(「RAM」)およびフラッシュメモリを含み得る。他の実施態様では、CRSMには、読み出し専用メモリ(「ROM」)、電気的に消去可能なプログラマブル読み出し専用メモリ(「EEPROM」)、または所望の情報を記憶するために使用され得、プロセッサ200によってアクセスされ得る、任意の他の有形媒体が含まれ得るが、これらに限定されない。
【0024】
メモリ204には、他のモジュールの便益のために、クライアントマシン106の内部でハードウェアを管理し、そのクライアントマシンに結合されるように構成されたオペレーティングシステムモジュール208が含まれ得る。クライアントマシン106はまた、メモリ204内にインストールされたビデオゲームクライアント210も有し得る。このビデオゲームクライアント210は、ビデオゲーム(またはビデオゲームプログラム)などのプログラムを起動および実行するように構成されている実行可能クライアントアプリケーションを表し得る。言い替えると、ビデオゲームクライアント210には、クライアントマシン106上でビデオゲームをプレーするために使用可能であるゲームソフトウェアが含まれ得る。ビデオゲームクライアント210がインストールされた状態で、クライアントマシン106は、コンピュータネットワーク108経由で遠隔システム104からビデオゲームを受信(例えば、ダウンロード、ストリーミング等)し、ビデオゲームクライアント210を介してビデオゲームを実行するための能力を有し得る。この目的のために、ビデオゲームがクライアントマシン106上でのダウンロードおよび実行のために別々に購入することができる直接購入モデル、サブスクリプションベースモデル、ビデオゲームがある期間のレンタルまたはリースされるコンテンツ配信モデルなどの任意のタイプのコンテンツ配信モデルを利用することができる。したがって、クライアントマシン106は、ビデオゲームライブラリ214内に、ビデオゲーム212などの1つ以上のビデオゲームを含むことができる。これらのビデオゲームは、ビデオゲームクライアント210をロードすることによって、取り出され、そして実行され得る。一例では、プレーヤー120は、ビデオゲームクライアント210をロードし、ビデオゲーム212を選択してビデオゲーム212の実行を開始することによって、彼らがビデオゲームライブラリ214を購入およびダウンロードした複数のビデオゲームのうちの1つをプレーすることを選択することができる。ビデオゲームクライアント210は、プレーヤー120などのユーザが資格情報(例えば、ユーザアカウント、パスワード等)を使用して、ビデオゲームサービスにログインすることを可能にすることができる。
【0025】
ビデオゲームクライアント210はまた、ビデオゲームをターゲットデバイスにストリーミングし、ゲームコントローラ102などのゲームコントローラによって生成されたコントローラ入力データを受信および処理するように構成されたストリーミングコンポーネント216を含むものとしても示されている。これは、プレーヤー120が、ホストコンピュータとしての役割を果たすクライアントマシン106から環境112内の任意のターゲットデバイスにストリーミングされたビデオゲーム212をプレーしているときに生じ得る。いくつかの実施形態では、プレーヤー120がクライアントマシン106以外のターゲットデバイス上でビデオゲーム212をプレーすることを望む場合、プレーヤー120などのユーザは、ユーザ入力をクライアントマシン106に提供して、ストリーミングコンポーネント216を呼び出す。クライアントマシン106に関して示されたような同じまたは類似のコンポーネント(およびそれらの関連する機能性)が、遠隔システム104において(またはそれによって)実装されて、環境112に関してビデオゲームをローカルに実行せずに、遠隔システム104から環境112内のネットワークで結ばれたデバイスへの直接のビデオゲームデータのストリーミングを可能にすることができることを理解されたい。すなわち、遠隔システム104は、いくつかの実施形態では、ビデオゲームを実行し、コンピュータネットワーク108経由でビデオゲームデータをターゲットデバイスにストリーミングするホストコンピュータとして機能することができる。
【0026】
ゲームコントローラ102は、図2に示すように、制御部(例えば、ジョイスティック、トラックパッド、引き金、押下ボタン等)、潜在的には任意の他のタイプの入力または出力デバイスなどの、1つ以上の入力/出力(I/O)デバイス218であってもよい。例えば、I/Oデバイス218は、ユーザ音声入力などのオーディオ入力を受信するための1つ以上のマイクロフォンを含んでもよい。いくつかの実施態様では、1つ以上のカメラ、または他のタイプのセンサが、ハンドヘルドコントローラ102の運動などのジェスチャーによる入力を受信するための入力デバイスとして機能することができる。いくつかの実施形態では、追加の入力デバイスが、キーボード、キーパッド、マウス、タッチスクリーン、ジョイスティック、制御ボタンなどの形態で提供され得る。入力デバイスは、音量を増加/減少させるための基本音量制御ボタン、ならびに電源およびリセットボタンなどの制御機構をさらに含み得る。
【0027】
一方、出力デバイスは、ディスプレイ、光素子(例えば、LED)、触覚の知覚を作り出すバイブレーター、スピーカー(例えば、ヘッドホン)などを含み得る。例えば、電源がオンであるときなどの状態を示すための単純な光素子(例えば、LED)も存在し得る。いくつかの例が提供されたが、ハンドヘルドコントローラ102は、追加的または代替的に、任意の他のタイプの出力デバイスを含んでもよい。場合によっては、1つ以上の出力デバイスによる出力は、入力デバイスのうちの1つ以上によって受信された入力に基づいてもよい。例えば、制御部の作動により、制御部に隣接した(例えば、真下に)、または任意の他の場所に設置されたバイブレーターによる触覚応答の出力を得ることができる。
【0028】
加えて、ハンドヘルドコントローラ102は、ネットワークおよび/または別のデバイスへの無線接続を容易にするための1つ以上の通信インターフェース220を含むことができる。この通信インターフェース220は、異なるモードでのゲームコントローラ102の動作をサポートするための複数のタイプの無線または無線技術を実装することができる。例えば、通信インターフェース220は、本明細書に記載されているように、BLEモードまたは受信機モードで動作し、2つの動作モードの間を切り替えるように構成されている無線器を実装することができる。すなわち、本明細書に記載されているように、単一の無線器が、その無線器をBLEモードまたは受信機モードで動作させるコードを実行することができる。しかしながら、通信インターフェース220は、Wi-Fi無線器、BLE無線器、携帯無線器などの複数の無線器を実装してもよいことを理解されたい。いくつかの実施形態では、別個の無線器を利用して、それぞれのモードで動作することができ、例えば、WiFi無線器を利用して受信機モードで動作し、またBLE無線器を利用してBLEモードで動作することができる。ハンドヘルドコントローラ102は、ネットワーク、接続された周辺デバイス、または他の無線ネットワークと通信するプラグインネットワークデバイスへの有線接続を容易にする物理ポートをさらに含み得ることを理解されたい。
【0029】
例示された実施態様では、ハンドヘルドコントローラは、1つ以上のプロセッサ222およびメモリ224(またはコンピュータ可読媒体224)をさらに含む。いくつかの実装形態では、プロセッサ222は、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、CPUおよびGPUの両方、マイクロプロセッサ、デジタル信号プロセッサ、または当該技術分野で既知の他の処理ユニットもしくは構成要素を含み得る。代替的にまたは追加的に、本明細書に記載されている機能性は、1つ以上のハードウェアロジックコンポーネントによって、少なくとも部分的に実行され得る。例えば、非限定的に、使用されることができるハードウェア論理構成要素の例示的なタイプは、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップシステム(SOC)、複合プログラマブル論理デバイス(CPLD)などを含む。追加的に、プロセッサ222の各々は、プログラムモジュール、プログラムデータ、および/または1つ以上のオペレーティングシステムも格納し得る、その独自のローカルメモリを保有し得る。
【0030】
メモリ224は、揮発性および不揮発性メモリ、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するための任意の方法または技術で実装された取り外し可能および取り外し不可能な媒体が挙げられ得る。そのようなメモリとしては、限定されるものではないが、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多目的ディスク(DVD)もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、RAIDストレージシステム、または所望の情報を記憶するために使用され得、コンピューティングデバイスによってアクセスされ得る、任意の他の媒体が挙げられる。メモリ224は、コンピュータ可読記憶媒体(「CRSM」)として実装され得、それは、メモリ224上に記憶された命令を実行するために、プロセッサ222によってアクセス可能である任意の利用可能な物理媒体であってもよい。1つの基本的な実装形態では、CRSMは、ランダムアクセスメモリ(「RAM」)およびフラッシュメモリを含み得る。他の実施態様では、CRSMには、読み出し専用メモリ(「ROM」)、電気的に消去可能なプログラマブル読み出し専用メモリ(「EEPROM」)、または所望の情報を記憶するために使用され得、プロセッサ222によってアクセスされ得る、任意の他の有形媒体が含まれ得るが、これらに限定されない。
【0031】
命令、データ記憶などのいくつかのモジュールは、メモリ224内に記憶され、プロセッサ222上で実行するように構成され得る。いくつかの例示的な機能モジュールは、メモリ224に記憶され、プロセッサ222上で実行されるように示されているが、同じ機能性は、別の方法として、ハードウェア、ファームウェアで、またはシステムオンチップ(SOC)として実装され得る。
【0032】
オペレーティングシステムモジュール226は、他のモジュールの有益性のために、ハンドヘルドコントローラ102内でハードウェアを管理し、ハンドヘルドコントローラ102に連結されるように構成され得る。加えて、メモリ224は、ネットワーク通信モジュール228を記憶してもよく、そのネットワーク通信モジュールは、ハンドヘルドコントローラ102が、通信インターフェース220を介して、図1Aおよび1Bで導入されたBLEデバイス114または無線受信機118、ゲームコンソール等の1つ以上の他のデバイスと通信するのを可能にする。メモリ224は、ハンドヘルドコントローラ上で、またはハンドヘルドコントローラ102が結合するコンピューティングデバイス上で実行するゲーム(または他のアプリケーション)に関連付けられたデータを記憶するためのゲームセッションデータベース230をさらに含むことができる。メモリ224はまた、ハンドヘルドコントローラ102が結合するデバイスに関連付けられたデータを記憶するデバイス記録データベース232を含むこともできる。このデバイス記録データベース232は、最新の接続によって順序付けられた、以前に接続されたデバイスの履歴を保持することができ、その結果、ゲームコントローラ102は、ゲームコントローラ102が任意の所与の事例において最後に接続された最後の既知のデバイスを判定することができる。メモリ224は、コントローラ入力データをゲームに関連する別のデバイスに送信することによって、ハンドヘルドコントローラ102をゲームコントローラとして機能させるように構成するゲーム制御命令234と、ハンドヘルドコントローラ102を他の非ゲームデバイスのコントローラとして機能させるように構成するユニバーサル制御命令236と、をさらに記憶することができる。
【0033】
メモリ224は、ユーザ入力に基づいて(例えば、プレーヤー120によって提供されるジェスチャーに基づいて)、ゲームコントローラ102の動作モードを判定および実施するように構成された動作モードコンポーネント238をさらに記憶することができる。例えば、以下にさらに詳細に説明されるように、プレーヤー120は、複数のボタンの第1の組み合わせを押下することなどによって第1のジェスチャーを提供して、ハンドヘルドコントローラ102をBLEモードに設定することができ、また複数のボタンの第2の組み合わせを押下することなどによって第2のジェスチャーを提供して、ハンドヘルドコントローラ102を受信機モードに設定することができる。この動作モードコンポーネント238はまた、ゲームコントローラ102のローカルメモリ224に、使用された最後のモードを記憶することもできる。このようにして、ゲームコントローラ102の起動時に、特定のモードが、ジェスチャーを介してプレーヤー120によって呼び出されない場合、動作モードコンポーネント238は、ゲームコントローラ102が動作した最後のモードを判定することができ、起動時にそのモードで動作させることができる。
【0034】
ゲームコントローラ102は、タッチセンサ(例えば、容量性タッチセンサ、抵抗性タッチセンサ、赤外線タッチセンサ、音響音波を利用して指の接近を検出するタッチセンサ等)、力感知抵抗器(FSR)、運動センサ(例えば、1つ以上のジャイロスコープを含む慣性測定装置(IMU)、および/もしくは加速度計、および/もしくは磁力計、ならびに/または特徴追跡などに使用されるように構成されたコンパス、カメラもしくは3Dセンサ等)を含む1つ以上のセンサ240をさらに含み得るが、これらに限定されない。
【0035】
BLEデバイス114は、図2に示すように、プロセッサ242、ディスプレイ244、メモリ246、および通信インターフェース248などの、クライアントマシン106と同様のコンポーネントを含み得、それらのコンポーネントは、クライアントマシン206を参照して説明されたプロセッサ200、ディスプレイ202、メモリ204、および通信インターフェース206と同様であってもよい。BLEデバイス114の通信インターフェース248は、(その名称が暗示するように)BLEインターフェース経由でゲームコントローラ102からコントローラ入力データを受信するための無線器を含む。この無線器はまた、WiFi経由で環境内のWAP110とデータを送信/受信するようにも構成され得、かつ/または通信インターフェース248は、環境内のWAP110とデータを送信/受信するための専用のWiFi無線器を含むことができる。
【0036】
BLEデバイス114のメモリ246は、他のモジュールの便益のために、内部でハードウェアを管理し、BLEデバイス114に結合されるように構成されるオペレーティングシステム250を含むことができる。BLEデバイス114はまた、クライアントアプリケーション252(または「クライアントアプリ」252)をダウンロードして、クライアントアプリ252をメモリ246に記憶することができる。クライアントアプリ252は、ビデオゲームストリーミングのためのターゲットデバイスとして機能するように、BLEデバイス114を構成するストリーミングコンポーネント254を含む。このようにして、BLEデバイス114は、ビデオゲーム212を実行しているホストコンピュータ(例えば、クライアントマシン106)からストリーミングされたビデオゲームデータを受信し、BLEデバイス114の出力デバイス(例えば、ディスプレイ244およびスピーカー)を介して、オーディオおよびビデオデータを出力する。BLEデバイス114はまた、クライアントアプリ252を使用して、無線器経由でゲームプレー中にゲームコントローラ102によって送信されるコントローラ入力データの受信機としての役割も果たす。クライアントアプリ252は、BLEデバイス114が結合するデバイスに関連付けられたデータを記憶するデバイス記録データベース256をさらに維持することができる。これにより、BLEデバイス114がセキュリティおよび/または認証資格情報を保持し、ゲームコントローラ102などの以前に接続されたデバイスとペアリングすることを可能にすることができる。
【0037】
ゲームコントローラ102がBLEモードでどのように動作して、BLEデバイス114へのビデオゲームストリーミングを可能にすることができるかを示すために、再び図1Aを参照する。最初に、プレーヤー120は、クライアントマシン106およびBLEデバイス114をホームネットワークに接続する(例えば、これらのデバイスをWAP110に接続することによって)。プレーヤー120はまた、ゲームコントローラ102を、クライアントアプリ252を実行するBLEデバイス114とペアリングもする。このペアリング動作は、ゲームコントローラ102をBLEペアリングモードにするゲームコントローラ102に、ユーザ入力を提供するプレーヤー120によって達成することができる。BLEデバイス114上で実行するクライアントアプリ252は、BLEモードで動作するゲームコントローラ102から、無線器経由でコントローラ入力データを受信するようにBLEデバイス114を構成する特別仕様のBLE特性を含んでもよい。BLEのプロファイルおよびサービスによって使用されるデータは、「特性」と呼ばれる。したがって、プロファイルおよびアプリケーションは、特性の通信のために、BLEプロトコルスタック内の汎用属性プロファイル(GATT)層とインターフェース接続する。BLE「プロファイル」は、Bluetooth通信のアスペクトに関する仕様である。プロファイルは、無線通信を使用して提供されるサービスを有効にする構成および機能を定義する。いくつかの実施形態では、クライアントアプリ252は、ゲームコントローラ102がBLEペアリングモードに入ったことに応答して、通知を提供することができ、その通知は、ゲームコントローラ102がBLEデバイス114に接続したいことをプレーヤー120に示す。プレーヤー120は、この接続要求を受け入れるBLEデバイスにユーザ入力を提供して、BLEインターフェース経由で2つのデバイスをペアリングすることができる。
【0038】
ゲームコントローラ102は、動作モードコンポーネント238を介して、プレーヤー120がBLE経由でゲームコントローラ102をBLEデバイス114とペアリングすることに応答して、デフォルトでBLEモードで動作することができる。代替的に、プレーヤー120は、BLEモードでゲームコントローラ102を動作させるためのコマンドに対応するユーザ入力をゲームコントローラ102に提供することができる。いずれの場合でも、ゲームコントローラ102は、ゲームコントローラ102の無線器を使用して、クライアントアプリ252を実行するBLEデバイス114との無線回線を確立することができる。
【0039】
プレーヤー120はまた、クライアントマシン106のビデオゲームクライアント210上で実行しているビデオゲーム212のためのビデオゲームセッションを開始することもできる。ビデオゲームクライアント210を走らせている複数のクライアントマシンがある場合には、クライアントアプリ252は、ビデオゲーム212をストリーミングするためのホストコンピュータとして、ユーザがどのクライアントマシンに接続したいかを問い合わせているプレーヤー120に追加の通知を提供することができる。プレーヤー120は、クライアントマシン106などの特定のクライアントマシンを選択することができ、ストリーミング接続は、この時点でセットアップされる。このようにして接続を確立することには、認証または承認手順(例えば、デジタルハンドシェーキング、資格情報検証等)が含まれ得る。
【0040】
ゲームプレー中、各フレームについて、クライアントマシン106(ホストコンピュータ)上で実行するビデオゲームクライアント210は、ビデオゲームデータ122を取り込み、LAN経由で(例えば、WAN110を介して)ビデオゲームデータをBLEデバイス114に送信する。これは、ホストコンピュータのビデオゲームクライアント210が、ビデオゲーム212ウインドウの状態を取り込み、ビデオおよびオーディオデータをビットに符号化し、符号化されたビットをBLEデバイス114に送信することができ、BLEデバイス114上で実行しているクライアントアプリ252は、それらのビットを復号化して、フレームのビデオゲームコンテンツをレンダリングし、そのスピーカーを介して(またはBLEデバイス114に接続されたヘッドホンを介して)オーディオを出力することを含み得る。ビデオデータの符号化は、H.264ビデオ符号化、および低遅延ネットワークプロトコルを使用して符号化されたデータを送信することを含み得る。一例では、クライアントマシン106は、低遅延のために有線(例えば、イーサネット)接続を介してWAP110に接続され得、WAP110は、符号化されたデータを無線でBLEデバイス114に送信し得、その結果、BLEデバイス114は、WiFiプロトコルを使用して、その無線器を介して、符号化されたデータを受信する。ストリーミング解像度およびビットレートは、プレーヤー120によって構成可能であり得る。例えば、5ギガヘルツ(GHz)ネットワーク経由では、毎秒60フレーム(FPS)のフレームレートで1080p以上(例えば、4K)の解像度を利用することができる。
【0041】
プレーヤー120は、ターゲットデバイスとして機能するBLEデバイス114上でビデオゲームコンテンツを消費する。特に、BLEデバイス114は、ビデオゲーム212を実行しておらず、すなわち、ホストコンピュータ-今の場合、クライアントマシン106-は、ビデオゲーム212を実行しているデバイスである。BLEデバイス114は、プレーヤー120による消費のために、BLEデバイス114の適切な出力デバイスを介して処理(例えば、復号化)および出力されるビデオゲームデータ122(例えば、オーディオおよびビデオデータ)を単に受信するだけのシンクライアントとして効果的に機能する。ゲームプレー中、プレーヤー120は、(ゲームコントローラがBLEモードで動作しているときに、BLEデバイス114に接続されている)ゲームコントローラ102を使用して、ビデオゲーム入力を提供する。したがって、ビデオゲーム212のアスペクトを制御するためのゲームコントローラ102によって検出されたユーザ入力に応答して、ゲームコントローラ102は、ゲームコントローラ102の無線器を介して、コントローラ入力データ124をBLEデバイス114に送信する。BLEデバイス114上で実行しているクライアントアプリ252は、コントローラ入力データ124を受信し、BLEデバイス114に、LAN経由で(例えば、WAP110を介して)コントローラ入力データ124をホストコンピュータ(例えば、クライアントマシン106)に転送させる。コントローラ入力データ124が、BLE経由で、BLEデバイス114上で実行しているクライアントアプリ252にルーティングされている方法は、ゲームコントローラ入力での任意のOS制限を効果的に回避し、その結果、これらのOS制限は、BLEデバイス114上でビデオゲーム212をストリーミングし、かつ/またはビデオゲーム212をプレーするためにゲームコントローラ102をゲームパッドとして使用するプレーヤー120の能力を阻害しない。
【0042】
コントローラ入力データ124を受信したことに応答して、クライアントマシン106上で実行しているビデオゲームクライアント210は、現在実行しているビデオゲーム212に基づいて、かつプレーヤー120の好みに基づいて、受信されたコントローラ入力データ124を、ビデオゲーム212(すなわち、ビデオゲームコード)が処理することができるビデオゲーム入力に変換する方法を判定することができる。デフォルトで、ゲームコントローラ102(および/またはそのコントローラ入力データ)は、その現在の動作モードにかかわらず、マウスおよびキーボードとして「表示」され得る。クライアントマシン106が、通常の場合、入力デバイスとしてマウスおよびキーボードを利用することを考慮すると、これは、コントローラ入力データを、ビデオゲーム212を実行しているホストコンピュータ(例えば、クライアントマシン106)に提供する最も簡単な方法であり得る。いくつかの実施形態では、ゲームコントローラ102は、BLEデバイス114およびLANを介して、ゲームコントローラ102の生の状態をクライアントマシン106に送信することができ、ビデオゲームクライアント210は、ゲームコントローラ102の生の状態を解釈し、ビデオゲーム212コードに投入することができる適切なビデオゲーム入力にその状態を再マッピングすることができる。いくつかの実施形態では、ビデオゲーム開発者は、様々なタイプのコントローラからのコントローラ入力データ124をビデオゲームのために好適なビデオゲーム入力に再マッピングする(またはそれ以外では、変換する)ゲームコントローラ構成を指定することができるアプリケーションプログラミングインターフェース(API)を利用することができる。ビデオゲームクライアント210はまた、様々なゲームコントローラメーカーから市販されているコントローラなどの様々なタイプのゲームコントローラ間で変換することもできる。いくつかの実施形態では、一連の抽出を使用して、コントローラ入力データ124を取得し、ユーザが気付かない透明な状態で、そのデータ124をパケットに変換し、それらのパケットは、あたかもそれらのパケットがクライアントマシン106のマウスおよびキーボードから受信されたかのように、LAN経由で送信される。このようにして、ビデオゲーム212を実行しているホストコンピュータに関するゲームコントローラ102の遠隔性は、ユーザが気付かない透明な状態に保たれる。いくつかの実施形態では、ビデオゲームクライアント210は、ホストコンピュータ上で実行しているビデオゲーム212の入力ライブラリ(または複数の入力ライブラリ)にフックして、コントローラ入力データ124をビデオゲーム212が使用することができるデータに変換する方法を判定することができる。これにより、ビデオゲームクライアント210が、ビデオゲーム212コードからの機能呼び出しを阻止して、ゲームコントローラ状態を読み込み、ビデオゲーム212が見ることを期待しているコントローラ状態に戻ることができ、これは、ゲームコントローラ102の状態を、異なるタイプのゲームコントローラの状態に再マッピングすることを意味し得る。
【0043】
コントローラ入力データ124をビデオゲーム入力に変換した後、ビデオゲーム入力は、ビデオゲーム212コードに投入されてビデオゲーム212のアスペクトを制御し、これにより、次のフレームに、制御されたビデオゲームのアスペクトを組み込ませ、再度、これを取り込み、ターゲットデバイスにストリーミングし、そのターゲットデバイスは、今の場合、BLEデバイス114である。このようにして、ビデオゲームストリーミングは、本明細書に記載されているように、ビデオゲームデータ122をBLEデバイス114に向けて下流へ転送し、コントローラ入力データ124をクライアントマシン106に向けて上流へ転送することによって継続する。
【0044】
いつでも、プレーヤー120は、ゲームコントローラ102の動作モードを切り替えることを決定することができる。これは、テレビ116などの異なるターゲットデバイス上でビデオゲーム212をプレーすること、またはBLEよりも低遅延であり得る異なる無線プロトコルを有効にすることを含む様々な理由によって、行われてもよいが、これらに限定されない。図1Bは、ユーザが、受信機モード(場合によっては、「非BLEモード」、「WiFiモード」、または「ドングルモード」とも呼ばれる)でゲームコントローラ102を動作させるように切り替えたシナリオを例示する。図1Bの例では、ゲームコントローラ102が受信機モードで動作するときに、無線受信機118が、導管として使用され、コントローラ入力データ124は、そこを通って、ホストコンピュータに向かって上流へ転送され、ビデオゲームデータ122は、そこを通って、ターゲットデバイスに向かって下流へ転送される。したがって、いくつかの実施形態では、無線受信機118は、データが1つ以上のデバイスから到着し、データが1つ以上のデバイスに送信される集束場所として機能するハブのようにより多く働き得る。
【0045】
無線受信機118が、以前にゲームコントローラ102に接続されていない場合、プレーヤー120は、ゲームコントローラ102を無線受信機118とペアリングするためのペアリング動作を開始することができる。プレーヤー120は、ユーザ入力をゲームコントローラ102に提供して、それを無線受信機ペアリングモードに設定し得、プレーヤー120は、検証コードを入力するように促されて、ゲームコントローラ102と無線受信機118との間の接続を完了することができる。例えば、無線受信機118がオーディオ/ビデオインターフェース経由でテレビ116に接続されている場合、テレビ116が適切な入力にトグルで切り替えられると、無線受信機118は、検証コードを有する通知をテレビ116の画面上に表示して、セットアップを完了することができる。
【0046】
プレーヤー120が、非BLEプロトコル(例えば、WiFi)を利用する無線受信機118を用いて、無線器経由でゲームコントローラ102をペアリングすることに応答して、ゲームコントローラ102は、動作モードコンポーネント238を介して、デフォルトで、受信機モードで動作することができる。代替的に、プレーヤー120は、受信機モードでゲームコントローラ102を動作させるためのコマンドに対応するユーザ入力をゲームコントローラ102に提供することができる。それぞれのデバイスがゲームコントローラ102にすでに知られている場合、動作モード間を切り替えるときに、追加のペアリング動作を行う必要はない。代わりに、受信機モードでゲームコントローラ102を動作させるためのコマンドに対応するユーザ入力が検出されると、ゲームコントローラ102は、そのデバイス記録データベース232を調べて、ゲームコントローラ102が、ユーザ入力を受信する前に最後に接続された最後の既知の無線受信機を判定して、コントローラを受信機モードに設定することができる。これは同様に、さらに、反対方向にも作用する(例えば、BLEモードに切り替えるときに、デバイス記録データベース232を調べて、最後の既知のBLEデバイスを判定する)。いずれの場合においても、図1Bに示すように、ゲームコントローラ102は、ゲームコントローラ102の無線器を使用して(例えば、WiFi経由で)、無線回線を無線受信機118と確立することができ、データの転送は、コントローラ入力データ124が、BLEデバイス114ではなく無線受信機118を介してホストコンピュータに転送されることを除いて、BLEモードでゲームコントローラを動作させる例と同様である。上述したように、BLEモードでゲームコントローラ102を動作させることと比較して、受信機モードは、異なる無線通信プロトコルを利用して、ゲームコントローラ102から無線受信機118にコントローラ入力データ124を転送させることができる。この非BLE通信プロトコルは、いくつかの実施形態では、2.4GHz帯で動作するエンハンスドショックバースト(ESB)ベースのプロトコルを表し得る。
【0047】
したがって、図1Aおよび1Bに図示してあるように、開示されたハンドヘルドビデオゲームコントローラ102は、互いに異なるそれぞれの無線プロトコルを利用する複数の異なるモードで動作するように構成されている。BLEモードは、性能がより低いモードであり得るが、クライアントマシン106などのホストコンピュータからビデオゲーム212をストリーミングするためのターゲットデバイスとして使用され得るタイプのデバイスに関して、より高い柔軟性を提供するモードであり得る。これは、受信機モードが、ゲームコントローラ入力上のOS制限によって、いくつかのBLEデバイスとともに使用することができない場合があるという事実、および/またはこれらのデバイスが、無線受信機118などの周辺無線受信機との接続をサポートしていないという事実に、少なくとも部分的に起因するものである。受信機モードに切り替えるためのゲームコントローラ102の能力は、著しい入力遅延を導入することなしにBLEデバイス114に接続することができるいくつかのゲームコントローラと比較して、受信機モードで使用されるより性能の高い無線プロトコルにより、プレーヤー120がより多くのゲームコントローラ102を無線受信機118に接続するのを可能にする状況において有用である。例えば、BLEモードでは、クライアントマシン106のオペレーティングシステム208は、ゲームコントローラ102に対して10ミリ秒の更新レート(コントローラ入力データ124を読み出すための期間)を利用することができ、またプレーヤー120が友人とともにプレーするために第2のゲームコントローラをBLEデバイス114に接続しようとする場合、オペレーティングシステム208は、任意のより速い更新レートで追加のゲームコントローラに対応するには、上記の更新レートがBLEモードでは十分な無線帯域幅を有さないため、追加のゲームコントローラに対して22ミリ秒の更新レートを割り当てることができる。これは、ビデオゲームで競合する2名のプレーヤーのうちの1名は、入力遅延を経験し、プレーヤー達がパフォーマンスを競うことを妨げる状況を引き起こす可能性がある。BLEプロトコルのこの固有の制限に対処するために、プレーヤーは、かれらのゲームコントローラを受信機モードに切り替えて、無線受信機118を介して、ビデオゲームをストリーミングすることができ、これは、複数のゲームコントローラに対応するための好適な帯域幅を有するより小さい遅延の接続を提供し得る。
【0048】
本明細書の他所に記述されているように、無線受信機118は、ターゲットデバイス上の対応するポートにプラグで差し込むドングル(例えば、USBドングル)として実装されてもよい。場合によっては、BLEデバイス114は、そのようなポートを含むことができ、これは、プレーヤー120(または複数のプレーヤー)が、同じターゲットデバイス、すなわち、BLEデバイス114上でビデオゲームをプレーしながら、無線プロトコル間を切り替えることができることを意味する。すなわち、プレーヤー120は、BLEモードでゲームコントローラ102を動作させながら、BLEデバイス114上でビデオゲームのプレーを開始し、その後、受信機モードでゲームコントローラ102を動作させるように切り替えてもよい。モードを切り替えると、無線受信機がBLEデバイス114に接続され、またはそのBLEデバイス中に組み込まれている場合、ビデオゲームデータ122は、ホストコンピュータからBLEデバイス114にストリーミングされ続けるが、コントローラ入力データ124は、コントローラ入力データ124がBLEデバイス114の無線器を介してBLEプロトコル経由で受信される代わりに、BLEデバイス114に接続され、またはそのBLEデバイス中に組み込まれている無線受信機118を介して非BLEプロトコル(例えば、WiFi)経由で受信される。
【0049】
図3は、少なくともBLEモードおよび受信機モードを含む異なるモードでゲームコントローラを動作させるために、ゲームコントローラのユーザによって提供され得る例示的なジェスチャーを示す略図である。この例示的なゲームコントローラ102は、ゲームコントローラ102の正面に押下可能なボタン300(1)~(4)を含み得、Xボタン300(1)、Yボタン300(2)、Aボタン300(3)、およびBボタン300(4)が含まれる。プレーヤー120は、ジェスチャー302(1)~(4)、または異なるジェスチャーを含むユーザ入力を提供することができる。ジェスチャー302(1)~(4)は、押下可能なボタン300およびガイドボタン304(場合によっては、「Steam(登録商標)ボタン」304または「メニューボタン」304と呼ばれる)のうちの複数のボタンの特定の組み合わせを含むマルチボタンジェスチャーを表す。例えば、プレーヤー120は、複数のボタンの第1の組み合わせ(例えば、Yボタン300(2)およびガイドボタン304)を押すことによって、第1のジェスチャー302(1)(第1のマルチボタンジェスチャー302(1))を提供して、ハンドヘルドコントローラ102をBLEペアリングモードに設定することができる。プレーヤー120は、ゲームコントローラ102がまだBLEデバイス114とペアリングされていない場合、および彼/彼女がビデオゲーム212をBLEデバイス114にストリーミングし、BLEモードでゲームコントローラ102を動作させてビデオゲーム212をプレーすることを望む場合、この第1のジェスチャー302(1)を提供することができる。
【0050】
プレーヤー120は、複数のボタンの第2の組み合わせ(例えば、Bボタン300(4)およびガイドボタン304)を押すことによって、第2のジェスチャー302(2)(第2のマルチボタンジェスチャー302(2))を提供して、ハンドヘルドコントローラ102をBLEモードに設定することができる。プレーヤー120は、ゲームコントローラ102が以前にBLEデバイス114などのBLEデバイスとペアリングされたことがあった場合、ゲームセッションの開始時に、この第2のジェスチャー302(2)を提供することができる。プレーヤー120が受信機モードでビデオゲームをプレーしているときなどの異なるシナリオでは、プレーヤー120は、恐らくゲームセッションの最中に、第2のジェスチャー302(2)を提供して、受信機モードでゲームコントローラ102を動作させることから、BLEモードでゲームコントローラ102を動作させることに切り替えることができる。プレーヤー120がBLEモードでビデオゲームをプレーしているときなどのさらに異なるシナリオでは、プレーヤー120は、その環境112内で、第2のジェスチャー302(2)を提供して、第1のBLEデバイス(例えば、BLEデバイス114)から第2のBLEデバイスに切り替えることができる。例えば、ゲームコントローラ102のデバイス記録データベース232を使用して、ゲームコントローラ102が過去に接続したことがある、ゲームコントローラ102に知られている異なるBLEデバイスを検索することができる。いくつかの実施形態では、特定のジェスチャーを使用して、デバイス記録データベース232内の異なるBLEデバイスを呼び出すことができる。この場合、プレーヤー120は、1つのジェスチャー(例えば、Bボタン300(4)およびガイドボタン304)を提供して、デバイス記録データベース232の中で最近使用されたBLEデバイスに接続することができ、また別のジェスチャー(例えば、開始ボタンおよびガイドボタン304)を提供して、デバイス記録データベース232の中で次の最近使用されたBLEデバイスに接続することができる。プレーヤー120は、デバイスを通じてトグルで切り替えて所望のBLEデバイスに到達する必要性を回避するために、これらのジェスチャーを再度呼び出す必要があり得る。
【0051】
プレーヤー120は、複数のボタンの第3の組み合わせ(例えば、Xボタン300(1)およびガイドボタン304)を押すことによって、第3のジェスチャー302(3)(第3のマルチボタンジェスチャー302(3))を提供して、ハンドヘルドコントローラ102を受信機ペアリングモードに設定することができる。プレーヤー120は、ゲームコントローラ102が未だに無線受信機118とペアリングされていない場合、ならびに、プレーヤーが、環境112内のターゲットデバイスに接続されている無線受信機118に彼/彼女がビデオゲーム212をストリーミングすること、および受信機モードでゲームコントローラ102を動作させてビデオゲーム212をプレーすることを望んでいる場合、この第3のジェスチャー302(3)を提供することができる。
【0052】
プレーヤー120は、複数のボタンの第4の組み合わせ(例えば、Aボタン300(3)およびガイドボタン304)を押すことによって、第4のジェスチャー302(4)(第4のマルチボタンジェスチャー302(4))を提供して、ハンドヘルドコントローラ102を受信機モードに設定することができる。プレーヤー120は、ゲームコントローラ102が以前に無線受信機118などの無線受信機とペアリングされたことがあった場合、ゲームセッションの開始時に、この第4のジェスチャー302(4)を提供することができる。プレーヤー120がBLEモードでビデオゲームをプレーしているときなどの異なるシナリオでは、プレーヤー120は、恐らくゲームセッションの最中に、第4のジェスチャー302(4)を提供して、BLEモードでゲームコントローラ102を動作させることから、受信機モードでゲームコントローラ102を動作させることに切り替えることができる。プレーヤー120が受信機モードでビデオゲームをプレーしているときなどのさらに異なるシナリオでは、プレーヤー120は、その環境112内で、第4のジェスチャー302(4)を提供して、第1の無線受信機(例えば、無線受信機118)から第2の無線受信機に切り替えることができる。例えば、ゲームコントローラ102のデバイス記録データベース232を使用して、ゲームコントローラ102が過去に接続したことがある、ゲームコントローラ102に知られている異なる無線受信機を検索することができる。いくつかの実施形態では、特定のジェスチャーを使用して、デバイス記録データベース232内の異なる無線受信機を呼び出すことができる。この場合、プレーヤー120は、1つのジェスチャー(例えば、Aボタン300(3)およびガイドボタン304)を提供して、デバイス記録データベース232の中で最近使用された無線受信機に接続することができ、また別のジェスチャー(例えば、戻りボタンおよびガイドボタン304)を提供して、デバイス記録データベース232の中で次の最近使用された無線受信機に接続することができる。プレーヤー120は、デバイスを通じてトグルで切り替えて所望の無線受信機に到達する必要性を回避するために、これらのジェスチャーを再度呼び出す必要があり得る。
【0053】
いくつかの実施形態では、プレーヤー120は、好みを設定して、起動時に優先デバイス(例えば、優先BLEデバイスおよび/または優先無線受信機)に接続することができ、プレーヤー120は、現在の動作モード(すなわち、BLEモードまたは受信機モード)に応じて、ジェスチャー302(2)または302(4)を使用してデバイス間をトグルで切り替えることができる。追加的に、または別の方法として、前述したように、デバイス記録データベース232を使用して、ゲームコントローラ102がジェスチャー302を受信する前に最後に接続された最後の既知のデバイス(例えば、最後の既知のBLEデバイスおよび/または最後の既知の無線受信機)を判定することができる。起動時に、デバイス記録データベース232は、接続されたデバイスの履歴を永続的な(不揮発性)メモリに保持して、起動時に最後の既知のデバイスに接続することができる。デバイス記録データベース232は、以前に接続されたデバイスのアドレス、ならびに、以前の接続解除後にこれらのデバイスとの無線回線を確立するために使用されるセキュリティおよび/または認証情報(例えば、キー、パスコード、資格情報等)を保持することができる。追加的に、または別の方法として、ゲームコントローラ102の動作モードコンポーネント238は、ローカルメモリ224内に、使用された最後の動作モード(例えば、BLEモードまたは受信機モード)を長く残すことができ、プレーヤー120がジェスチャー302のうちの1つを提供しないときに、最後に使用された動作モードを起動時に復帰させることができる。いくつかの実施形態では、プレーヤー120がクライアントアプリ252を新規BLEデバイスにダウンロードするときはいつでも、プレーヤー120は、(例えば、第1のジェスチャー302(1)をゲームコントローラ102に提供することによって)プレーヤーのゲームコントローラ102をBLEデバイスに接続する可用性についての通知を受け取ることができる(例えば、クライアントアプリ252を介して)。同様に、プレーヤー120が、クライアントアプリ252を実行しているBLEデバイスに無線受信機118を接続するときはいつでも、プレーヤー120は、(例えば、第3のジェスチャー302(3)をゲームコントローラ102に提供することによって)プレーヤーのゲームコントローラ102を無線受信機に接続する可用性についての通知を受け取ることができる(例えば、クライアントアプリ252を介して)。
【0054】
特定のマルチボタンジェスチャー302が図3に示されているが、これらは、単なる例示的なジェスチャーであり、他のジェスチャーを実装して、同様の機能性を提供することができる。例えば、トップバンパー制御部などの特定の制御部に関連付けられたタッチセンサは、スワイプジェスチャーを検出することができる。このようにして、一方向(例えば、左から右)スワイプ、または第1の制御(例えば、左バンパー)上でのスワイプは、BLEモードでゲームコントローラ102を動作させるためのコマンドに対応し得、これに対して、反対方向(例えば、右から左)スワイプ、または第2の制御(例えば、右バンパー)上でのスワイプは、受信機モードでゲームコントローラ102を動作させるためのコマンドに対応し得る。他のジェスチャーとして、ゲームコントローラ102のマイクロフォンによって検出される音声ジェスチャーを含む、このタイプの機能の可能性として想定される。例えば、プレーヤー120は、「BLEモード」と発声して、ゲームコントローラ102をBLEモードに設定することができ、またはプレーヤー120は、「受信機モード」と発声して、ゲームコントローラ102を受信機モードに設定することができる。
【0055】
本明細書に記載されているプロセスは、論理的なフロー図の集合として例示されており、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせ(本明細書では、「ロジック」と呼ばれる)で実装され得る一連の動作を表す。ソフトウェアの文脈では、ブロックは、コンピュータ実行可能命令を表し、コンピュータ実行可能命令は、1つ以上のプロセッサによって実行されるとき、列挙された操作を実施する。一般に、コンピュータ実行可能命令は、特定の機能を実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。操作が記載される順序は、限定として解釈されることを意図するものではなく、任意のいくつかの記載されたブロックは、プロセスを実装するために任意の順序でおよび/または並行して組み合わされ得る。
【0056】
図4は、複数の動作モードのうちの1つでハンドヘルドビデオゲームコントローラ102を動作させるための例示的なプロセス400のフロー図である。考察を目的として、プロセス400は、以前の図を参照して説明される。
【0057】
402において、ゲームコントローラ102は、電源オフ状態から電源オン状態に移行することによって、起動することができる。電源オン状態では、電力が、電源(例えば、1つ以上のバッテリー)からゲームコントローラ102の1つ以上の電気コンポーネントに供給される。ブロック402において、ゲームコントローラ102を起動することは、ゲームコントローラ102が第1のユーザ入力を受信することに基づき得る(例えば、それに応答する)。例えば、図3に示されるガイドボタン304などの電源ボタンを押して、ゲームコントローラ102を起動する(電源オンする、または立ち上げる)。
【0058】
404において、ゲームコントローラ102のロジックは、ブロック402で受信された第1のユーザ入力が、ゲームコントローラ102のメモリ224に記憶され、事前定義されたジェスチャーなどのジェスチャーを含むかどうかを判定することができる。404において、ブロック402で受信された第1のユーザ入力が、ジェスチャーを含んでいない(例えば、プレーヤー120が、ゲームコントローラ102を電源オンするために、ガイドボタン304などの電源ボタンを単に押しただけでよい)と判断された場合、プロセス400は、ブロック404からブロック406への「いいえ」ルートに従い得る。
【0059】
406において、ゲームコントローラ102のロジックは、複数の動作モードの中で、ゲームコントローラ102が最後に動作した特定の動作モードでゲームコントローラ102を動作すると判定することができる。例えば、複数の動作モードは、本明細書に記載されているように、BLEモードおよび受信機モードを含むことができる。ブロック406において、ゲームコントローラ102のロジックは、動作モードコンポーネント238によって維持されたデータを検索し、ブロック402で第1のユーザ入力を受信してゲームコントローラ102を起動する前に、これらのモードのどちらが最後に(最近)使用されてゲームコントローラ102を動作させたかを判定することができる。BLEモードが、ゲームコントローラ102が動作した最後のモードとして識別された場合、BLEモードが、ブロック406において選択される。受信機モードが、ゲームコントローラ102が動作した最後のモードとして識別された場合、受信機モードが、ブロック406において選択される。
【0060】
408において、ゲームコントローラ102のロジックは、ゲームコントローラ102が以前に接続したことがあるデバイス(例えば、BLEデバイスまたは無線受信機)と判定することができる。具体的には、ブロック408において、ロジックは、ゲームコントローラ102のメモリ224に記憶されたデータ(例えば、デバイス記録データベース232から)に少なくとも部分的に基づいて、ブロック402で第1のユーザ入力を受信してゲームコントローラ102を起動する前に、ハンドヘルドビデオゲームコントローラが最後に接続されたデバイスを識別することができる。ゲームコントローラ102のメモリ224に記憶されたこれらのデバイスは、特定の動作モード(例えば、BLEモードまたは無線受信機モードのうちの少なくとも一方)に関連付けられることができる。これは、ブロック408において、デバイスを選択するためのフィルタリング基準として使用することができる。すなわち、BLEモードが、ブロック406で使用された最後のモードとして選択された場合、最近接続されたBLEデバイス114が、ブロック408において識別および選択され得る。これに対して、受信機モードが、ブロック406で使用される最後のモードとして選択された場合、最近接続された無線受信機118が、ブロック408において識別および選択され得る。
【0061】
410において、動作モードおよびデバイスが選択された状態で、ゲームコントローラ102は、適切なプロトコルを使用して、ゲームコントローラ102の無線器を介して、選択されたデバイスとの無線接続を確立することができる。例えば、BLEモードでの動作する場合、ゲームコントローラ102は、BLEプロトコルを使用して、ゲームコントローラ102の無線器を介してクライアントアプリケーション252を実行するBLEデバイス114との無線接続を確立することができる。しかしながら、受信機モードで動作する場合、ゲームコントローラ102は、非BLEプロトコル(例えば、WiFi)を使用して、ゲームコントローラ102の無線器を介して無線受信機118との無線接続を確立することができる。無線接続を確立することは、データを送信することができる無線回線(例えば、認証、ハンドシェーキング等を確立すること)を含み得る。これは、デバイスの無線信号(および、場合によっては、無線信号の強度)を識別することを含み得る。
【0062】
412において、ゲームコントローラ102は、ゲームコントローラ102がBLEデバイス114または無線受信機118などの、ブロック410において接続されたデバイスとは異なるホストコンピュータ(例えば、クライアントマシン106)上で実行するビデオゲームのアスペクトを制御するための第2のユーザ入力を受信することができる。例えば、クライアントマシン106は、ビデオゲーム212を実行していてもよく、ターゲットデバイスにビデオゲームデータ122をストリーミングしていてもよい。BLEモードで動作する場合、ターゲットデバイスは、ゲームコントローラ102が、ブロック410において接続されているBLEデバイス114であってもよい。受信機モードで動作する場合、ターゲットデバイスは、ゲームコントローラ102が、ブロック410において接続されている無線受信機118に接続されたデバイス(例えば、テレビ116)であってもよい。プレーヤー120は、ユーザ入力をゲームコントローラ102に提供すること(例えば、ゲームコントローラ102上で制御部を動作させること、運動センサ等によって検出されるように、ゲームコントローラ102を移動させること)によってビデオゲームをプレーしていてもよい。
【0063】
414において、ゲームコントローラ102は、ゲームコントローラ102が、ブロック410において接続されているデバイスにコントローラ入力データ124を送信することができる。また、動作モードに応じて、コントローラ入力データ124の受信デバイスは、BLEデバイス114または無線受信機118であってもよい。BLEモードで動作する場合、コントローラ入力データ124は、BLEプロトコルを使用して、ゲームコントローラ102の無線器を介してBLEデバイス114に送信され得る。受信機モードで動作する場合、コントローラ入力データ124は、非BLEプロトコル(例えば、WiFi)を使用して、ゲームコントローラ102の無線器を介して無線受信機118に送信され得る。コントローラ入力データ124は、ブロック412で受信されたユーザ入力に基づくことができ、任意の好適なフォーマットでパッケージされ得る。
【0064】
いくつかの実施形態では、BLEモードで動作するとき、ゲームコントローラ102のロジックは、特別仕様のBLE特性を使用して、コントローラ入力データ124を生成し、その結果、そのコントローラ入力データは、BLEデバイス114上で実行しているクライアントアプリケーション252によって受信され得る。これは、コントローラ入力データ124内の特性を伝達するために、BLEプロトコルスタック内のGATT層とインターフェース接続するBLEプロファイルを含み得る。
【0065】
ブロック404に戻って参照すると、ブロック402で受信された第1のユーザ入力がジェスチャー(例えば、図3を参照して説明されたようなマルチボタンジェスチャー)を含むと判定された場合、プロセス400は、ブロック404からブロック416への「はい」ルートに従い得る。
【0066】
416において、ゲームコントローラ102のロジックは、検出されたジェスチャーのタイプを判定することができる。例えば、ゲームコントローラ102のメモリ224は、図3を参照して説明されたジェスチャー302(1)~(4)などの複数の所定のジェスチャーを記憶することができる。これらの例示的なジェスチャー302は、ペアリングジェスチャー(例えば、ジェスチャー302(1)および302(3)は、ペアリングジェスチャーである)、ならびにモード選択ジェスチャー(例えば、ジェスチャー302(2)および302(4)は、モード選択ジェスチャーである)に分類することができる。ブロック416において、ジェスチャーは、ペアリングジェスチャーとして判定される場合、プロセス400は、ブロック416からブロック418に進むことができ、そこでは、ゲームコントローラ102のロジックは、ペアリングジェスチャーに関連付けられた特定のモードでゲームコントローラ102を動作すると判定する。例えば、ジェスチャーが図3のペアリングジェスチャー302(1)である場合、ロジックは、BLEモードで動作すると判定することができ、一方、ジェスチャーが図3のペアリングジェスチャー302(3)である場合、ロジックは、受信機モードで動作すると判定することができる。
【0067】
420において、ブロック418で選択されている動作モードに基づいて、ゲームコントローラ102のロジックは、ゲームコントローラが未だに接続されていないそのモードのための新規のデバイス(すなわち、新規デバイス)と判定することができる。BLEモードについて、これは、BLEデバイス114上で実行しているクライアントアプリ252を通じて、BLEペアリングモードに投入される新規のBLEデバイス114であり得る。受信機モードについて、これは、本明細書に記載されているように、受信機ペアリングモードに投入される新規の無線受信機118であり得る。
【0068】
新規のデバイスがブロック420で識別および選択された状態で、ブロック410~414は、上述のように、実行され得るが、新規に識別されたデバイスに関して実行され得る。すなわち、ゲームコントローラ102は、新規デバイスとの無線接続を確立し(ブロック410)、ホストコンピュータ上で実行しているビデオゲームのアスペクトを制御するための(第2の)ユーザ入力を受信し(ブロック412)、(第2の)ユーザ入力に基づいて、適切なプロトコルを使用して無線器経由で接続されたデバイスにコントローラ入力データ124を送信することができる(ブロック414)。
【0069】
ブロック416に戻って参照すると、ジェスチャーがモード選択ジェスチャーとして判定された場合、プロセス400は、ブロック416からブロック422に進むことができ、そこでは、ゲームコントローラ102のロジックは、モード選択ジェスチャーに関連付けられた特定のモードでゲームコントローラ102を動作すると判定する。例えば、ジェスチャーが図3のモード選択ジェスチャー302(2)である場合、ロジックは、BLEモードで動作すると判定することができ、一方、ジェスチャーが図3のモード選択ジェスチャー302(4)である場合、ロジックは、受信機モードで動作すると判定することができる。
【0070】
424において、ゲームコントローラ102のロジックは、ジェスチャーが、複数のデバイスの中で、ゲームコントローラ102が以前に接続したことがある特定のデバイスに関連付けられているかどうかを判定することができる。例えば、ゲームコントローラ102のメモリ224に記憶されたデータ(例えば、デバイス記録データベース232)は、ゲームコントローラ102が以前に接続したことがあるデバイスのリストを維持することができる。これらのデバイスは、ブロック422で選択された動作モードに基づいて、フィルタリングされ得る。ジェスチャーが、選択された動作モードに関連付けられたデバイスのうちの1つに固有である場合、プロセス400は、ブロック424からブロック426への「はい」ルートに従い得、そこでは、そのジェスチャーに関連付けられたデバイスが、選択され得る。例えば、プレーヤー120は、1つのジェスチャー(例えば、Bボタン300(4)およびガイドボタン304)を提供して、デバイス記録データベース232の中で最近使用されたBLEデバイスに接続することができ、別のジェスチャー(例えば、開始ボタンおよびガイドボタン304)を提供して、デバイス記録データベース232の中で次の最近使用されたBLEデバイスに接続することができる。検出されたこれらのジェスチャーのうちのどちらか一方に応じて、そのジェスチャーに関連付けられたデバイスが、ブロック426において、識別されたデバイスとして選択され得る。本明細書に記載されているように、同様のロジックが、受信機モードに適用される。
【0071】
ブロック424において、ジェスチャーがデバイス固有でない(例えば、ジェスチャーが、選択された動作モードに関連付けられたデバイスのうちの1つに固有でない)場合、プロセス400は、ブロック424からブロック428への「いいえ」ルートに従い得、そこでは、ロジックは、ゲームコントローラ102が、ブロック402で第1のユーザ入力を受信してゲームコントローラ102を起動する前に、最後に接続されたデバイスを選択する。すなわち、そのジェスチャーが特段のデバイス固有のジェスチャーでない限り、最近接続されたデバイスが、ブロック428において選択され得る。BLEモードでは、このデバイスは、ゲームコントローラ102が、ブロック402で第1のユーザ入力を受信してゲームコントローラ102を起動する前に、最後に接続されたBLEデバイス114である。受信機モードでは、このデバイスは、ゲームコントローラ102が、ブロック402で第1のユーザ入力を受信してゲームコントローラ102を起動する前に、最後に接続された無線受信機118である。
【0072】
ブロック428またはブロック426のいずれかに続いて、ブロック410~414は、上述したように実行され得るが、ブロック428またはブロック426で識別および選択されたデバイスに関して実行され得る。すなわち、ゲームコントローラ102は、選択されたデバイスとの無線接続を確立し(ブロック410)、ホストコンピュータ上で実行しているビデオゲームのアスペクトを制御するための(第2の)ユーザ入力を受信し(ブロック412)、(第2の)ユーザ入力に基づいて、適切なプロトコルを使用して無線器経由でコントローラ入力データ124を接続されたデバイスに送信することができる(ブロック414)。
【0073】
図5は、ホストコンピュータ上で実行しているビデオゲームをストリーミングさせ、ゲームコントローラ102からBLE経由でコントローラ入力データを受信するために、BLEデバイス114を動作させるための例示的なプロセス500のフロー図である。考察を目的として、プロセス500は、以前の図を参照して説明される。
【0074】
502において、BLEデバイス114(環境112のLANに接続されている)は、クライアントアプリ252を実行することができる。このクライアントアプリ252は、ビデオゲームストリーミングのためのターゲットデバイスとして機能し、また接続されたゲームコントローラ102(例えば、BLE経由で接続される)によって提供されるコントローラ入力データのためのハブデバイスとして機能するように、BLEデバイス114を構成することができる。
【0075】
504において、ホストコンピュータ(例えば、BLEデバイス114とともに、環境112内に置かれたクライアントマシン106)上でのビデオゲーム212の実行中に、BLEデバイス114は、LAN経由で(例えば、WAP110を介して)、ホストコンピュータ(例えば、クライアントマシン106)からストリーミングされたビデオゲームデータ122を受信することができる。
【0076】
506において、BLEデバイス114は、BLEデバイス114の出力デバイス(例えば、ディスプレイ244およびスピーカー)を介して、オーディオおよびビデオデータ(例えば、オーディオおよびビデオデータを含むビデオゲームデータ122)を出力することができる。
【0077】
508において、BLEデバイス114-ハブデバイスとして機能する-は、BLEプロトコルを使用して、BLEデバイス114の無線器経由でコントローラ入力データ124を、接続されたゲームコントローラ102から受信することができる。クライアントアプリ252を介して利用可能な特別仕様のBLE特性は、ゲームコントローラ入力に対するいかなるOS制限も回避する方法で、コントローラ入力データを受信することを可能にすることができる。
【0078】
510において、BLEデバイス114は、それがゲームコントローラ102から受信したコントローラ入力データ124を、ビデオゲーム212を実行しているホストコンピュータ(例えば、クライアントマシン106)に送信することができる。コントローラ入力データ124は、BLEデバイス114から、LAN経由で(例えば、WAP110を介して)ホストコンピュータに送信され得る。
【0079】
図6は、ホストコンピュータとは別個のゲームコントローラからコントローラ入力データを受信しながら、ホストコンピュータ上で実行するビデオゲームをターゲットデバイスにストリーミングさせるためのそのホストコンピュータを動作させるための例示的なプロセス600のフロー図である。考察を目的として、プロセス600は、以前の図を参照して説明される。
【0080】
602において、ホストコンピュータ(例えば、クライアントマシン106、遠隔システム104等)は、ビデオゲームクライアント210を使用して、ビデオゲーム212を実行することができる。ビデオゲームクライアント210は、プレーヤー120がホストコンピュータそれ自体の上でビデオゲームをプレーすることを可能にし、かつ/またはビデオゲーム212をターゲットデバイスにストリーミングさせること(例えば、ストリーミングコンポーネント216を介して)を可能にするように構成され得る。
【0081】
604において、ビデオゲームクライアント210は、ホストコンピュータ上で実行しているビデオゲーム212の入力ライブラリ(または複数の入力ライブラリ)にフックして、コントローラ入力データ124を、ビデオゲーム212によって使用可能であるデータに変換する方法を判定することができる。これは、ビデオゲームクライアント210が、ビデオゲーム212コードからの関数呼び出しを阻止して、ゲームコントローラ状態を読み込み、ビデオゲーム212が見ることを期待しているコントローラ状態に戻ることができ、これは、接続されたゲームコントローラ102の状態を、異なるタイプのゲームコントローラの状態に再マッピングすることを含み得る。
【0082】
606において、ホストコンピュータは、ビデオゲームクライアント210によって取り込まれたビデオゲームデータ122を、LAN経由で、ターゲットデバイスに送信することができる。本明細書に記載されているように、ゲームコントローラ102の動作モードに応じて、これは、ビデオゲームデータ122を、BLEモードである間にBLEデバイス114に、または受信機モードである間に無線受信機118(ターゲットデバイスに接続され、または組み込まれた無線受信機118)に、送信することを含み得る。本明細書に記載されているように、ビデオゲームデータ122は、オーディオおよびビデオデータを含んでもよく、またこのデータは、LAN経由の送信のために符号化されてもよい。
【0083】
608において、ホストコンピュータは、送信デバイスから、LAN経由で、コントローラ入力データ124を受信することができる。また、ゲームコントローラ102の動作モードに応じて、コントローラ入力データ124の送信デバイスは、BLEモード中ではBLEデバイス114であってもよく、または受信機モード中では無線受信機118であってもよい。
【0084】
610において、ビデオゲームクライアント210は、コントローラ入力データ124を、ビデオゲーム212コードが理解/処理することができるビデオゲーム入力に変換することができる。ブロック610におけるこの変換は、ビデオゲームのためのフックされた入力ライブラリに少なくとも部分的に基づくことができる。ブロック610におけるこの変換は、同様に、プレーヤー120が、変換されるコントローラ入力データ124をどのくらい好むかに関して、ビデオゲームクライアント210に知られているプレーヤーの120の好みなどの他の要因に基づくことができる。いくつかの実施形態では、ブロック610における変換は、コントローラ入力データ124を、ビデオゲーム212コードに投入することができる適切なビデオゲーム入力に再マッピングすることを含み得る。いくつかの実施形態では、ビデオゲーム開発者は、彼らがゲームコントローラ構成を具体化することができ、コントローラ入力データ124を、様々なタイプのコントローラから、彼らのビデオゲームに好適なビデオゲーム入力に再マッピング(ないし変換)するAPIを利用することができる。したがって、ビデオゲームクライアント210は、ブロック610における再マッピングのために、そのようなゲームコントローラ構成を利用することができる。ビデオゲームクライアント210はまた、様々なゲームコントローラメーカーから市販されているコントローラなどの異なるタイプのゲームコントローラ間、および場合によっては、マウスとキーボード入力との間で変換することもできる。
【0085】
612において、ビデオゲームクライアント210は、ビデオゲーム入力(コントローラ入力データ124から変換された)をビデオゲーム212コードに「投入」して、ホストコンピュータ上で実行しているビデオゲーム212のアスペクトを制御することができる。例えば、プレーヤー制御された文字にジャンプさせるビデオゲーム入力により、プレーヤー制御された文字に、ターゲットデバイスにストリーミングされる後続のいくつかのフレームの進行に伴ってジャンプさせることができる。
【0086】
主題は、構造的特徴に固有の言語で説明されているが、添付の特許請求の範囲で定義された主題が必ずしも説明された特定の特徴に限定されないことを理解されたい。むしろ、特定の特徴は、特許請求の範囲を実装する例示的な形態として開示される。
図1A
図1B
図2
図3
図4
図5
図6
【手続補正書】
【提出日】2024-07-10
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ハンドヘルドコントローラであって、
プロセッサと、
無線器と、
コンピュータ実行可能命令を記憶するメモリとを備え、前記コンピュータ実行可能命令が前記プロセッサにより実行されると、前記ハンドヘルドコントローラに、
前記ハンドヘルドコントローラによ受信されたユーザ入力がジェスチャーを含むことを判定し、
前記ジェスチャーが前記ハンドヘルドコントローラの複数の動作モードのうちの1つの動作モードに関連付けられたモード選択ジェスチャーであることを判定し、前記動作モードは第2の無線プロトコルに関連付けられ、
前記ジェスチャーが前記動作モードに関連付けられたモード選択ジェスチャーであることを判定することに少なくとも部分的に基づいて、
第1の無線プロトコルの使用から前記第2の無線プロトコルの使用に切り替え、前記第1の無線プロトコルは前記第2の無線プロトコルと異なり、
前記無線器を使用して、コントローラ入力データを前記第2の無線プロトコルを使用するように構成されたデバイスに送信すること、を行わせる、ハンドヘルドコントローラ。
【請求項2】
前記コンピュータ実行可能命令が前記プロセッサによ実行されると、前記ハンドヘルドコントローラに、
前記動作モードに少なくとも部分的に基づいて、前記ハンドヘルドコントローラが以前に接続したデバイスのリストをフィルタリングして、前記動作モードに関連付けられた前記フィルタリングされたデバイスのリストを取得し、
前記フィルタリングされたデバイスのリストから前記デバイスを選択し、
前記コントローラ入力データを前記デバイスに送信する前に前記デバイスとの無線接続を確立すること、をさらに行わせる、請求項1に記載のハンドヘルドコントローラ。
【請求項3】
前記ジェスチャーが前記動作モードに関連付けられた前記モード選択ジェスチャーであることを判定することは、前記ジェスチャーが複数のモード選択ジェスチャーのうちの第1のモード選択ジェスチャーであることを判定することを含み、
前記複数のモード選択ジェスチャーは、前記第1のモード選択ジェスチャーと、前記複数の動作モードのうちの第2の動作モードに関連付けられた第2のモード選択ジェスチャーとを少なくとも含む、請求項に記載のハンドヘルドコントローラ。
【請求項4】
前記ジェスチャーは、
前記ハンドヘルドコントローラのタッチセンサにより検出されたスワイプジェスチャ、
前記ハンドヘルドコントローラのマイクロフォンにより検出された音声ジェスチャー、又は、
前記ハンドヘルドコントローラの複数のボタンの組み合わせの押下として前記ハンドヘルドコントローラにより検出されたマルチボタンジェスチャー、のうちの少なくとも1つを含む、請求項1に記載のハンドヘルドコントローラ。
【請求項5】
前記コンピュータ実行可能命令前記プロセッサによ実行されると、前記ハンドヘルドコントローラに、
前記ハンドヘルドコントローラにより受信された第2のユーザ入力が第2のジェスチャーを含むことを判定し、
前記第2のジェスチャーが前記複数の動作モードのうちの第2の動作モードに関連付けられた第2のモード選択ジェスチャーであることを判定し、前記第2の動作モードは前記第1の無線プロトコルに関連付けられており、
前記第2のジェスチャーが前記第2の動作モードに関連付けられた前記第2のモード選択ジェスチャーであることを判定することに少なくとも部分的に基づいて、前記無線器を使用して、第2のコントローラ入力データを前記第1の無線プロトコルを使用するように構成された第2のデバイスに送信すること、をさらに行わせる、請求項に記載のハンドヘルドコントローラ。
【請求項6】
前記動作モードは、Bluetooth(登録商標)LowEnergy(BLE)モードを含み、
前記第2の無線プロトコルは、BLEプロトコルを含む、請求項1に記載のハンドヘルドコントローラ。
【請求項7】
前記ハンドヘルドコントローラは、ビデオゲームのアスペクトを制御するように構成されたゲームコントローラである、請求項1に記載のハンドヘルドコントローラ
【請求項8】
ンドヘルドコントローラによって、前記ハンドヘルドコントローラにより受信されたユーザ入力がジェスチャーを含むことを判定し、
前記ハンドヘルドコントローラによって、前記ジェスチャーが前記ハンドヘルドコントローラの複数の動作モードのうちの1つの動作モードに関連付けられたモード選択ジェスチャーであることを判定し、前記動作モードは第2の無線プロトコルに関連付けられ、
前記ジェスチャーが前記動作モードに関連付けられたモード選択ジェスチャーであることを判定することに少なくとも部分的に基づいて、
前記ハンドヘルドコントローラによって、第1の無線プロトコルの使用から前記第2の無線プロトコルの使用に切り替え、前記第1の無線プロトコルは前記第2の無線プロトコルと異なり、
前記ハンドヘルドコントローラによって、前記ハンドヘルドコントローラの無線器を使用して、コントローラ入力データを前記第2の無線プロトコルを使用するように構成されたデバイスに送信すること、を含む方法。
【請求項9】
前記ハンドヘルドコントローラによって、前記ジェスチャーがデバイス固有のジェスチャーであることを判定し、
前記ハンドヘルドコントローラによって、前記デバイスと前記デバイス固有のジェスチャーとの関連付けに少なくとも部分的に基づいて、前記デバイスを選択し、
前記ハンドヘルドコントローラによって、前記デバイスへの前記コントローラ入力データの送信前に、前記デバイスとの無線接続を確立すること、をさらに含む請求項に記載の方法。
【請求項10】
前記ハンドヘルドコントローラによって、前記ジェスチャーがデバイス固有のジェスチャーではないことを判定し、
前記ハンドヘルドコントローラによって、前記ハンドヘルドコントローラが前記ユーザ入力を受信する前に前記デバイスに最後に接続されていたことに少なくとも部分的に基づいて、前記デバイスを選択し、
前記ハンドヘルドコントローラによって、前記デバイスへの前記コントローラ入力データの送信前に、前記デバイスとの無線接続を確立すること、をさらに含む請求項に記載の方法。
【請求項11】
前記ジェスチャーが前記動作モードに関連付けられた前記モード選択ジェスチャーであることを判定することは、前記ジェスチャーが複数のモード選択ジェスチャーのうちの第1のモード選択ジェスチャーであることを判定することを含み、
前記複数のモード選択ジェスチャーは、前記第1のモード選択ジェスチャーと、前記複数の動作モードのうちの第2の動作モードに関連付けられた第2のモード選択ジェスチャーとを少なくとも含む、請求項に記載の方法。
【請求項12】
前記ジェスチャーは、
前記ハンドヘルドコントローラのタッチセンサにより検出されたスワイプジェスチャ、
前記ハンドヘルドコントローラのマイクロフォンにより検出された音声ジェスチャー、又は、
前記ハンドヘルドコントローラの複数のボタンの組み合わせの押下として前記ハンドヘルドコントローラにより検出されたマルチボタンジェスチャー、のうちの少なくとも1つを含む、請求項に記載の方法。
【請求項13】
前記ハンドヘルドコントローラによって、前記ハンドヘルドコントローラにより受信された第2のユーザ入力が第2のジェスチャーを含むことを判定し、
前記ハンドヘルドコントローラによって、前記第2のジェスチャーが前記複数の動作モードのうちの第2の動作モードに関連付けられた第2のモード選択ジェスチャーであることを判定し、前記第2の動作モードは前記第1の無線プロトコルに関連付けられており、
前記第2のジェスチャーが前記第2の動作モードに関連付けられた前記第2のモード選択ジェスチャーであることを判定することに少なくとも部分的に基づいて、前記ハンドヘルドコントローラによって、前記無線器を使用して、第2のコントローラ入力データを前記第1の無線プロトコルを使用するように構成された第2のデバイスに送信すること、をさらに含む請求項に記載の方法。
【請求項14】
前記動作モードは、Bluetooth Low Energy(BLE)モードを含み、
前記第2の無線プロトコルは、BLEプロトコルを含む、請求項8に記載の方法
【請求項15】
ハンドヘルドコントローラによって、前記ハンドヘルドコントローラにより受信されたユーザ入力がジェスチャーを含むことを判定し、
前記ハンドヘルドコントローラによって、前記ジェスチャーが前記ハンドヘルドコントローラの複数の動作モードのうちの1つの動作モードに関連付けられたペアリングジェスチャーであることを判定し、前記動作モードは第2の無線プロトコルに関連付けられ、
前記ジェスチャーが前記動作モードに関連付けられたペアリングジェスチャーであることを判定することに少なくとも部分的に基づいて、
前記ハンドヘルドコントローラによって、第1の無線プロトコルの使用から前記第2の無線プロトコルの使用に切り替え、前記第1の無線プロトコルは前記第2の無線プロトコルと異なり、
前記ハンドヘルドコントローラによって、前記ハンドヘルドコントローラの無線器を使用して、コントローラ入力データを前記第2の無線プロトコルを使用するように構成されたデバイスに送信すること、を含む方法
【請求項16】
前記ジェスチャーが前記動作モードに関連付けられた前記ペアリングジェスチャーであることを判定することは、前記ジェスチャーが複数のペアリングジェスチャーのうちの第1のペアリングジェスチャーであることを判定することを含み、
前記複数のペアリングジェスチャーは、前記第1のペアリングジェスチャーと、前記複数の動作モードのうちの第2の動作モードに関連付けられた第2のペアリングジェスチャーとを少なくとも含む、請求項15に記載の方法
【請求項17】
前記ハンドヘルドコントローラによって、前記デバイスが前記第2の無線プロトコルに関連付けられたペアリングモードに設定されていることに少なくとも部分的に基づいて、前記デバイスを識別し、
前記ハンドヘルドコントローラによって、前記デバイスへの前記コントローラ入力データの送信前に、前記デバイスとの無線接続を確立すること、をさらに含む請求項15に記載の方法
【請求項18】
前記ハンドヘルドコントローラによって、前記ハンドヘルドコントローラにより受信された第2のユーザ入力が第2のジェスチャーを含むことを判定し、
前記ハンドヘルドコントローラによって、前記第2のジェスチャーが前記複数の動作モードのうちの第2の動作モードに関連付けられた第2のペアリングジェスチャーであることを判定し、前記第2の動作モードは前記第1の無線プロトコルに関連付けられており、
前記第2のジェスチャーが前記第2の動作モードに関連付けられた前記第2のペアリングジェスチャーであることを判定することに少なくとも部分的に基づいて、前記ハンドヘルドコントローラによって、前記無線器を使用して、第2のコントローラ入力データを前記第1の無線プロトコルを使用するように構成された第2のデバイスに送信すること、をさらに含む請求項15に記載の方法
【請求項19】
前記ハンドヘルドコントローラは、ビデオゲームのアスペクトを制御するように構成されたゲームコントローラである、請求項15に記載の方法
【請求項20】
前記動作モードは、Bluetooth Low Energy(BLE)モードを含み、
前記第2の無線プロトコルは、BLEプロトコルを含む、請求項15に記載の方法
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0086
【補正方法】変更
【補正の内容】
【0086】
主題は、構造的特徴に固有の言語で説明されているが、添付の特許請求の範囲で定義された主題が必ずしも説明された特定の特徴に限定されないことを理解されたい。むしろ、特定の特徴は、特許請求の範囲を実装する例示的な形態として開示される。
以下に、本願の当初の特許請求の範囲に記載された発明を付記する。
[1]
ハンドヘルドビデオゲームコントローラであって、
プロセッサと、
無線器と、
コンピュータ実行可能命令を記憶するメモリであって、前記プロセッサによって実行されるときに、前記コンピュータ実行可能命令が、前記ハンドヘルドビデオゲームコントローラに、
前記ハンドヘルドビデオゲームコントローラによって受信された第1のユーザ入力に少なくとも部分的に基づいて、
前記ハンドヘルドビデオゲームコントローラの1つ以上の電気コンポーネントに電力を供給することによって始動させること、および
Bluetooth(登録商標)低エネルギー(BLE)モードで動作することを判定することと、
前記メモリ内に記憶されたデータに少なくとも部分的に基づいて、前記ハンドヘルドビデオゲームコントローラが以前に接続したBLEデバイスを判定することと、
前記無線器を介して、クライアントアプリケーションを実行する前記BLEデバイスとの無線接続を確立することと、
前記BLEデバイスとは異なるホストコンピュータ上で実行するビデオゲームのアスペクトを制御するための第2のユーザ入力を受信することと、
前記無線器を介してコントローラ入力データを前記BLEデバイスに送信することであって、前記コントローラ入力データが、前記第2のユーザ入力に少なくとも部分的に基づく、送信することと、を行わせる、メモリと、を備える、ハンドヘルドビデオゲームコントローラ。
[2]
前記コンピュータ実行可能命令が、前記プロセッサによって実行されるときに、前記ハンドヘルドビデオゲームコントローラに、
受信機モードで前記ハンドヘルドビデオゲームコントローラを動作させるためのコマンドに対応する第3のユーザ入力を受信することと、
前記メモリに記憶された前記データに少なくとも部分的に基づいて、前記ハンドヘルドビデオゲームコントローラが以前に接続した無線受信機を判定することであって、前記無線受信機が、前記BLEデバイスとは異なる、判定することと、
前記無線器を介して、前記無線受信機との無線接続を確立することと、
前記ホストコンピュータ上で実行する前記ビデオゲームの追加のアスペクトを制御するための第4のユーザ入力を受信することと、
前記無線器を介して、追加のコントローラ入力データを前記無線受信機に送信することであって、前記追加のコントローラ入力データが、前記第4のユーザ入力に少なくとも部分的に基づく、送信することと、をさらに行わせる、[1]に記載のハンドヘルドビデオゲームコントローラ。
[3]
前記第3のユーザ入力が、前記受信機モードで前記ハンドヘルドビデオゲームコントローラを動作させるための前記コマンドに対応するジェスチャーを含む、[2]に記載のハンドヘルドビデオゲームコントローラ。
[4]
前記BLEモードで動作することを判定することは、前記第1のユーザ入力が、前記BLEモードで動作させるためのコマンドに対応するジェスチャーを含むと判定することを含む、[1]に記載のハンドヘルドビデオゲームコントローラ。
[5]
前記コンピュータ実行可能命令は、前記プロセッサによって実行されるときに、前記ハンドヘルドビデオゲームコントローラに、
前記ジェスチャーは、前記ハンドヘルドビデオゲームコントローラが以前に接続した複数のBLEデバイスの中で前記BLEデバイスに関連付けられていると判定することと、
前記ジェスチャーに少なくとも部分的に基づいて、前記複数のBLEデバイスの中で前記BLEデバイスを識別することと、をさらに行わせる、[4]に記載のハンドヘルドビデオゲームコントローラ。
[6]
前記BLEデバイスを判定することは、前記BLEデバイスを、前記ハンドヘルドビデオゲームコントローラが前記第1のユーザ入力を受信する以前に最後に接続されたBLEデバイスとして識別することを含む、[1]に記載のハンドヘルドビデオゲームコントローラ。
[7]
方法であって、
ハンドヘルドビデオゲームコントローラによって、第1のユーザ入力を受信することと、
前記第1のユーザ入力に少なくとも部分的に基づいて、
前記ハンドヘルドビデオゲームコントローラを始動すること、および
Bluetooth低エネルギー(BLE)モードで前記ハンドヘルドビデオゲームコントローラを動作させることを判定することと、
前記ハンドヘルドビデオゲームコントローラのメモリに記憶されたデータに少なくとも部分的に基づいて、前記ハンドヘルドビデオゲームコントローラが以前に接続したBLEデバイスを判定することと、
前記ハンドヘルドビデオゲームコントローラの無線器を介して、前記ハンドヘルドビデオゲームコントローラによって、クライアントアプリケーションを実行する前記BLEデバイスとの無線接続を確立することと、
前記ハンドヘルドビデオゲームコントローラによって、前記BLEデバイスとは異なるホストコンピュータ上で実行するビデオゲームのアスペクトを制御するための第2のユーザ入力を受信することと、
前記ハンドヘルドビデオゲームコントローラによって、前記無線器を介して、コントローラ入力データを前記BLEデバイスに送信することであって、前記コントローラ入力データが、前記第2のユーザ入力に少なくとも部分的に基づく、送信することと、を含む、方法。
[8]
前記ハンドヘルドビデオゲームコントローラによって、受信機モードで前記ハンドヘルドビデオゲームコントローラを動作させるためのコマンドに対応する第3のユーザ入力を受信することと、
前記ハンドヘルドビデオゲームコントローラの前記メモリに記憶された前記データに少なくとも部分的に基づいて、前記ハンドヘルドビデオゲームコントローラが以前に接続した無線受信機を判定することであって、前記無線受信機が、前記BLEデバイスとは異なる、判定することと、
前記ハンドヘルドビデオゲームコントローラによって、前記無線器を介して前記無線受信機との無線接続を確立することと、
前記ハンドヘルドビデオゲームコントローラによって、前記ホストコンピュータ上で実行する前記ビデオゲームの追加のアスペクトを制御するための第4のユーザ入力を受信することと、
ゲームコントローラを介する前記ハンドヘルドによって、前記無線を介して、追加のコントローラ入力データを前記無線受信機に送信することであって、前記追加のコントローラ入力データが、前記第4のユーザ入力に少なくとも部分的に基づく、送信することと、
をさらに含む、[7]に記載の方法。
[9]
前記BLEモードで前記ハンドヘルドビデオゲームコントローラを動作させることを前記判定することは、前記第1のユーザ入力が、前記BLEモードで前記ハンドヘルドビデオゲームコントローラを動作させるためのコマンドに対応するジェスチャーを含むと判定することを含む、[7]に記載の方法。
[10]
前記ジェスチャーが、前記ハンドヘルドビデオゲームコントローラの第1のボタンおよび第2のボタンを含む複数のボタンの組み合わせの押下として、前記ハンドヘルドビデオゲームコントローラにより検出されるマルチボタンジェスチャーを含む、[9]に記載の方法。
[11]
前記BLEデバイスを前記判定することは、
前記ジェスチャーが、前記ハンドヘルドビデオゲームコントローラが以前に接続した複数のBLEデバイスの中で、前記BLEデバイスに関連付けられていると判定することと、
前記ジェスチャーに少なくとも部分的に基づいて、前記複数のBLEデバイスの中で、前記BLEデバイスを識別することと、を含む、[9]に記載の方法。
[12]
前記BLEデバイスを前記判定することは、前記BLEデバイスを、前記ハンドヘルドビデオゲームコントローラが前記第1のユーザ入力の前記受信する前に最後に接続されたBLEデバイスとして識別することを含む、[7]に記載の方法。
[13]
前記BLEモードで前記ハンドヘルドビデオゲームコントローラを動作させることを前記判定することは、
前記BLEモードを、前記ハンドヘルドビデオゲームコントローラが前記第1のユーザ入力を前記受信する前に最後に動作された動作モードとして識別することを含む、[12]に記載の方法。
[14]
ハンドヘルドビデオゲームコントローラのプロセッサによって実行されるときに、前記ハンドヘルドビデオゲームコントローラに動作を実行させるコンピュータ実行可能命令を記憶する1つ以上の非一時的コンピュータ可読媒体であって、前記動作が、
第1のユーザ入力を受信することと、
前記第1のユーザ入力に少なくとも部分的に基づいて、
前記ハンドヘルドビデオゲームコントローラに給電すること、および
Bluetooth低エネルギー(BLE)モードで前記ハンドヘルドビデオゲームコントローラを動作させることを判定することと、
前記ハンドヘルドビデオゲームコントローラのメモリに記憶されたデータに少なくとも部分的に基づいて、前記ハンドヘルドビデオゲームコントローラが以前に接続したBLEデバイスを判定することと、
前記ハンドヘルドビデオゲームコントローラの無線器を介して、クライアントアプリケーションを実行する前記BLEデバイスとの無線接続を確立することと、
前記BLEデバイスとは異なるホストコンピュータ上で実行するビデオゲームのアスペクトを制御するための第2のユーザ入力を受信することと、
前記無線器を介して、コントローラ入力データを前記BLEデバイスに送信することであって、前記コントローラ入力データが、前記第2のユーザ入力に少なくとも部分的に基づく、送信することと、を含む、1つ以上の非一時的コンピュータ可読媒体。
[15]
前記動作が、
受信機モードで前記ハンドヘルドビデオゲームコントローラを動作させるためのコマンドに対応する第3のユーザ入力を受信することと、
前記ハンドヘルドビデオゲームコントローラの前記メモリに記憶された前記データに少なくとも部分的に基づいて、前記ハンドヘルドビデオゲームコントローラが以前に接続した無線受信機を判定することであって、前記無線受信機が、前記BLEデバイスとは異なる、判定することと、
前記無線器を介して前記無線受信機との無線接続を確立することと、
前記ホストコンピュータ上で実行する前記ビデオゲームの追加のアスペクトを制御するための第4のユーザ入力を受信することと、
前記無線器を介して、追加のコントローラ入力データを前記無線受信機に送信することであって、前記追加のコントローラ入力データが、前記第4のユーザ入力に少なくとも部分的に基づく、送信することと、をさらに含む、[14]に記載の1つ以上の非一時的コンピュータ可読媒体。
[16]
前記BLEモードで前記ハンドヘルドビデオゲームコントローラを動作させることを前記判定することは、前記第1のユーザ入力が、前記BLEモードで前記ハンドヘルドビデオゲームコントローラを動作させるためのコマンドに対応するジェスチャーを含むと判定することを含む、[14]に記載の1つ以上の非一時的コンピュータ可読媒体。
[17]
前記ジェスチャーが、前記ハンドヘルドビデオゲームコントローラの第1のボタンおよび第2のボタンを含む複数のボタンの組み合わせの押下として、前記ハンドヘルドビデオゲームコントローラによって検出されるマルチボタンジェスチャーを含む、[16]に記載の1つ以上の非一時的コンピュータ可読媒体。
[18]
前記BLEデバイスを前記判定することは、
前記ジェスチャーが、前記ハンドヘルドビデオゲームコントローラが以前に接続した複数のBLEデバイスの中で、前記BLEデバイスに関連付けられていると判定することと、
前記ジェスチャーに少なくとも部分的に基づいて、前記複数のBLEデバイスの中で、前記BLEデバイスを識別することと、を含む、[16]に記載の1つ以上の非一時的コンピュータ可読媒体。
[19]
前記BLEデバイスを前記判定することは、前記BLEデバイスを、前記ハンドヘルドビデオゲームコントローラが前記第1のユーザ入力の前記受信する前に最後に接続されたBLEデバイスとして識別することを含む、[14]に記載の1つ以上の非一時的コンピュータ可読媒体。
[20]
前記ハンドヘルドビデオゲームコントローラを前記BLEモードで動作させることを前記判定することは、
前記BLEモードを、前記ハンドヘルドビデオゲームコントローラが前記第1のユーザ入力を前記受信する前に最後に動作された動作モードとして識別することを含む、[14]に記載の1つ以上の非一時的コンピュータ可読媒体。
【外国語明細書】