ヘッドマウントディスプレイ(HMD)のビデオゲームの表示の減速の原因を決定することを含む、人による追跡装置のオクルージョンの影響を低減するシステム及び方法を記載する。いくつかの実施形態においては、システム及び方法は、顔検出と、ステレオもしくは三次元再構成とを使用して、HMDを装着しているユーザがいる部屋を歩いている他の人を特定する。システム及び方法は、観客がカメラの前を歩いているのが検出されたのでユーザの追跡は低品質であると、ユーザに警告する。カメラを使用して、ユーザが携帯しているHMD及び/またはハンドヘルドコントローラの動きを追跡することによって、ユーザの動きを追跡する。様々な実施形態において、観客を特定するために、カメラの露出が変更される。いくつかの実施形態においては、ユーザを追跡する品質が落ちると、カメラの露出を変更する。
図1Aは、ユーザ102のアウトサイドイン追跡を示すシステム100の実施形態の図である。ユーザは、本明細書では、プレイヤと呼ばれることもある。システム100は、カメラ104、ゲームコンソール106、ハンドヘルドコントローラ108、及び、HMD110を含む。カメラ104の例には、デプスカメラ、カムコーダ、ビデオカメラ、デジタルカメラ、または、画像を記録またはキャプチャできる任意の他の光学機器等が含まれる。ゲームコンソール106の例には、ビデオゲームを表示するためにビデオ信号または画像データを出力する電子デバイス、デジタルデバイス、または、コンピュータデバイスが含まれる。ハンドヘルドコントローラ108の例には、ユーザ102がビデオゲームとインタラクトするために使用する入力装置が含まれる。ビデオゲームは、HMD110の1つまたは複数のディスプレイ画面に表示され、HMD110は、ユーザ102が頭部に装着し、ユーザ102の目を覆う。HMD110の例には、仮想現実(VR)画像または拡張現実(AR)画像を表示するディスプレイデバイスが含まれる。ゲームコンソール106は、通信媒体112を介してHMD110に結合される。本明細書に記載する通信媒体の例には、例えば、ケーブル、1つまたは複数の導電体等の有線媒体、または、Wi−Fi(商標)、Bluetooth(登録商標)、無線周波数(RF)等の無線媒体が含まれる。さらに、カメラ104は、通信媒体114を介してゲームコンソール106に結合される。また、ハンドヘルドコントローラ108は、通信媒体116を介してゲームコンソール106に結合される。
ゲームコンソール106は、ゲームコードを実行して、ビデオゲームの画像データを生成する。画像データは、HMD110の1つまたは複数のディスプレイ画面に画像をレンダリングするために、通信媒体112を介してHMD110に転送される。ユーザ102は、HMD110に表示された画像を見て、ハンドヘルドコントローラ108を使用して、ビデオゲームに入力を行う。さらに、ユーザ102は、ビデオゲームのプレイ中に、例えば、部屋、建物の階床、事務所、家、アパート等、現実世界環境のある場所から他の場所に移動する。ユーザ102は、ハンドヘルドコントローラ108も動かし、及び/または、ハンドヘルドコントローラ108の1つまたは複数のボタンを選択する。ハンドヘルドコントローラ108の1つまたは複数のボタンが選択されると、1つまたは複数の入力信号が、ハンドヘルドコントローラによって生成される。
カメラ104は、カメラ104の視野(FOV)118内にある、例えば、HMD110及びハンドヘルドコントローラ108等、任意の現実世界の物体の画像をキャプチャする。例えば、カメラ104は、HMD110上、及び、ハンドヘルドコントローラ108上の、例えば、発光ダイオード(LED)等の光源が発する光の画像、または、例えば、反射テープ等の他のマーカの画像をキャプチャする。FOV118は、カメラ104が画像をキャプチャできる現実世界の全ての物体を含む。いくつかの実施形態においては、カメラ104は、HMD110とハンドヘルドコントローラ108との画像をキャプチャすることに加えて、ユーザ102の画像をキャプチャする。カメラ104は、画像の画像データを、通信媒体114を介してゲームコンソール106に送信する。ゲームコンソール106のプロセッサは、カメラ104から受信した画像データを処理して、HMD110及びコントローラ108の位置及び向きを決定する。プロセッサの例には、特定用途向け集積回路(ASIC)、プログラム可能論理デバイス(PLD)、中央処理装置(CPU)、マイクロプロセッサ、マルチコアプロセッサ、または、任意の他の処理ユニット等が含まれる。
入力信号が、ハンドヘルドコントローラ108から通信媒体116を介してゲームコンソール106に送信される。ゲームコンソール106のプロセッサは、入力信号、HMD110の位置及び向き、及び/または、ハンドヘルドコントローラ108の位置及び向きから、ビデオゲームのゲームコードの次のゲーム状態を決定する。ゲーム状態は、HMD110に表示するビデオゲームの画像の位置及び向きと、ビデオゲーム内のシーンとを含む。例えば、ユーザ102が、頭を左から右、または、右から左に動かして、HMD110を動かすと、ビデオゲームのシーンは、動きの前にはシーンに見られなかった仮想物体を含む。シーンは、仮想物体、色、テクスチャ、強度レベル、仮想物体の場所、幅、長さ、次元、背景、仮想物体の数、仮想物体のサイズ等によって形成される。仮想物体の例には、車、アバター、家、犬、剣、ナイフ、銃、または、現実世界に存在しない任意の他の物体等が含まれる。
いくつかの実施形態においては、図1Aに示す形のハンドヘルドコントローラ108ではなく、例えば、剣の形のハンドヘルドコントローラ、銃の形のハンドヘルドコントローラ、スティックの形のハンドヘルドコントローラ、MOVE(商標)ハンドヘルドコントローラ等、他の形状のハンドヘルドコントローラが、ビデオゲームをプレイするユーザ102によって使用される。
様々な実施形態において、ゲームコンソール106ではなく、以下にさらに記載する任意の他の種類のコンピューティングデバイスが使用される。
図1Bは、ユーザ102のアウトサイドイン追跡を示すシステム130の実施形態の図である。システム130は、HMD132、ハンドヘルドコントローラ134、コンピューティングデバイス136、及び、プロジェクタ138A、138Bを含む。コンピューティングデバイス136の例には、ラップトップコンピュータ、デスクトップコンピュータ、ゲームコンソール、スマートフォン等が含まれる。プロジェクタの例には、本明細書で使用される場合、微小電気機械システム(MEMS)の鏡とレーザ光源とを有するプロジェクタ、レーザ光源を有するプロジェクタ、赤外線光源を有するプロジェクタ、または、光を投影して現実世界環境の体積をスキャンするプロジェクタ等が含まれる。HMD132は、光センサ140を有し、光センサ140は、HMD132内に小さいブロックとして示される。ハンドヘルドコントローラ134も、光センサ142を有し、光センサ142は、ハンドヘルドコントローラ134内に小さいブロックとして示される。HMD132は、通信媒体112を介してコンピューティングデバイス136に接続され、ハンドヘルドコントローラ134は、通信媒体116を介してコンピューティングデバイス136に接続される。
プロジェクタ138A、138Bは、光を発して、環境内の体積を走査する。例えば、プロジェクタ138Aは、FOV140Aを有し、FOV140Aは、プロジェクタ138Aが発する光によって走査される体積である。他の例としては、プロジェクタ138Bは、FOV140Bを有し、FOV140Bは、プロジェクタ138Bが発する光によって走査される体積である。プロジェクタ138A、138Bによって走査される環境内の体積は、プロジェクタ138Aが発する光によって走査される体積とプロジェクタ138Bが発する光によって走査される体積との組み合わせである。
光センサ132は、プロジェクタ138A、138Bが発する光を感知して、電気信号を生成し、その電気信号を、通信媒体112を介してコンピューティングデバイス136に送信する。同様に、光センサ142は、プロジェクタ138A、138Bが発する光を感知して、電気信号を生成し、その電気信号を、通信媒体116を介してコンピューティングデバイス136に送信する。コンピューティングデバイス136のプロセッサは、HMD132の位置及び向きを、通信媒体112を介して受信した電気信号から計算し、ハンドヘルドコントローラ134の位置及び向きを、通信媒体116を介して受信した電気信号から計算する。
いくつかの実施形態においては、2つのプロジェクタ138A、138Bの代わりに、任意の他の数、例えば、1、3、4等の数のプロジェクタが、ユーザ102がビデオゲームをプレイしている環境で使用される。
様々な実施形態において、ハンドヘルドコントローラ134の代わりに、ハンドヘルドコントローラ108(図1A)が使用され、カメラ104(図1A)も使用されて、ハンドヘルドコントローラ108及びHMD132の位置及び向きを決定する。
いくつかの実施形態においては、プロジェクタ138A、138Bの代わりに、または、それらに加えて、超音波エミッタが使用される。さらに、HMD132は、光センサの代わりに、または、光センサに加えて、超音波センサを含み、ハンドヘルドコントローラ134は、光センサの代わりに、または、光センサに加えて、超音波センサを含む。
図1Cは、ユーザ102のインサイドアウト追跡を示すシステム150の実施形態の図である。システム150は、HMD152、ハンドヘルドコントローラ154、及び、コンピューティングデバイス136を含む。HMD152は、例えば、慣性センサ、1つまたは複数のデプスカメラ、及び/または、近接センサ等、HMD152の位置及び向きを決定するための1つまたは複数の位置及び向き測定装置を含む。例えば、HMD152は、1つまたは複数のデプスカメラを有し、各デプスカメラは、現実世界環境の方を向くレンズを有して、現実世界環境にある、例えば、壁、テーブル、椅子、ランプ等、現実世界の物体とハンドヘルドコントローラ154との画像をキャプチャする。近接センサの例は、例えば、赤外線放射等、電磁放射を発し、現実世界環境, 例えば、部屋の壁156A、156B、部屋にいる他の人、部屋の中の現実世界の物体等から帰る信号である、リターン信号の変化を感知するセンサである。慣性センサの例には、磁力計、加速度計、及び、ジャイロスコープが含まれる。同様に、ハンドヘルドコントローラ154は、ハンドヘルドコントローラ154の位置及び向きを決定するための1つまたは複数の位置及び向き測定装置を含む。HMD152は、接続媒体112を介してコンピューティングデバイス136に接続され、ハンドヘルドコントローラ154は、接続媒体116を介してコンピューティングデバイス136に接続される。
HMD152の1つまたは複数の位置及び向き測定装置は、HMD152の動きに基づいて、電気信号を生成し、その電気信号を、通信媒体112を介してコンピューティングデバイス136に送信する。さらに、ハンドヘルドコントローラ154の1つまたは複数の位置及び向き測定装置は、ハンドヘルドコントローラ154の動きに基づいて、電気信号を生成し、その電気信号を、通信媒体116を介してコンピューティングデバイス136に送信する。コンピューティングデバイス136のプロセッサは、電気信号をHMD152から受信し、電気信号に基づいて、HMD152の位置及び向きを計算する。同様に、コンピューティングデバイス136のプロセッサは、電気信号をハンドヘルドコントローラ154から受信して、ハンドヘルドコントローラ154の位置及び向きを電気信号に基づいて計算する。
いくつかの実施形態においては、1つまたは複数の位置及び向き測定装置に加えて、カメラ104(図1A)を使用して、ハンドヘルドコントローラ154及びHMD152の画像をキャプチャする。これらの実施形態において、ハンドヘルドコントローラ154とHMD152は、それぞれ、光源または他のマーカを有する。
様々な実施形態において、1つまたは複数の位置及び向き測定装置に加えて、HMD152は、光センサ132を有し、ハンドヘルドコントローラ154は、光センサ142を有する。さらに、システム150は、HMD152及びハンドヘルドコントローラ154の位置及び向きを決定するためにプロジェクタ138A、138Bを含む。
図2Aは、ユーザ102がいてビデオゲームをプレイする現実世界環境200の実施形態の図である。現実世界環境200は、例えば、椅子202、テーブル204、ランプ206、テレビ208、箱210等、現実世界の物体を含む。環境200は、観客212も含む。ユーザ102は、HMD152を装着しており、HMD152は、現実世界環境200を向いているレンズを有するカメラ214を有する。カメラ214は、FOV216を有し、FOV216は、カメラ214が見る現実世界環境200の部分で、カメラ214は、環境200のその部分の1つまたは複数の画像をキャプチャする。例えば、カメラ214は、観客212、椅子202、テレビ208、ランプ206、及び、テーブル204の画像をキャプチャする。カメラ214は、FOV216の外側にある箱210の画像をキャプチャできない。観客212は、FOV216を妨害している。例えば、カメラ202は、観客212によってFOV216から妨害されているランプ206とユーザ102との間の奥行を決定できない。カメラ202によるランプ206のビューは、観客212によって妨害されている。他の例としては、カメラ202の代わりに、または、カメラ202に加えて、近接センサが使用される実施形態においては、近接センサは、観客212によってFOV216から妨害されているランプ206からユーザ102の距離及び向きを表す電気信号を生成できない。
図2Bは、ユーザ102がいて、アウトサイドイン追跡がカメラ104によって行われる現実世界環境220の実施形態の上面図である。環境220は、ユーザ102、観客212、ソファ222、HMD110、ハンドヘルドコントローラ108、及び、カメラ104を含む。ソファ222は、現実世界の物体の例である。カメラ104は、FOV224を有し、FOV224は、ユーザ102、観客212、HMD110、ハンドヘルドコントローラ108、及び、ソファ222の画像をキャプチャするカメラ104のビューである。例えば、ユーザ102、観客212、HMD110、ハンドヘルドコントローラ108、及び、ソファ222等、全ての現実世界の全ての物体が、FOV224内にあることに注意すべきである。
カメラ104は、追跡可能なFOV226も有し、FOV226は、FOV224より体積が小さい。例えば、追跡可能なFOV226は、FOV224がカバーする床の表面積に比べて、環境220の床のより小さい表面積を有する。追跡可能なFOV226は、FOV224の一部分である。追跡可能なFOV226は、ユーザ102、HMD110、ハンドヘルドコントローラ108、及び、観客212を含む。カメラ104は、動作すると、追跡可能なFOV226内の現実世界の物体の画像をキャプチャできる。いくつかの実施形態においては、カメラ104は、FOV224内にあるが、追跡可能なFOV226の外側にある現実世界の物体に焦点を合わせることができない。焦点の欠如によって、カメラ104は、FOV224内にあるが、追跡可能なFOV226の外側にある現実世界の物体の鮮明な画像をキャプチャすることができない。鮮明な画像は、画像の鮮明さの所定の閾値レベルを超え、不鮮明な画像は、所定の閾値レベルを超えない。閾値レベルは、カメラ104のメモリデバイスに記憶され、カメラ104のプロセッサによって実施される。カメラ104は、追跡可能なFOV226内にある現実世界の物体に焦点を合わせて、現実世界の物体の画像をキャプチャできる。
観客212は、HMD110及びハンドヘルドコントローラ108を追跡可能なFOV226から妨害していない。例えば、HMD110は、HMD110の画像をキャプチャするカメラ104のレンズから見える。他の例としては、ハンドヘルドコントローラ108も、ハンドヘルドコントローラ108の画像をキャプチャするカメラ104のレンズから見える。
図2Cは、観客212がHMD110及びハンドヘルドコントローラ108をカメラ104の追跡可能なFOV226から妨害している環境220の上面図である。例えば、ユーザ102、HMD110、ハンドヘルドコントローラ108、及び、観客212等の現実世界の物体は、追跡可能なFOV226内にある。しかしながら、観客212が、ハンドヘルドコントローラ108の前に立って、ハンドヘルドコントローラ108の1つまたは複数の部分のビューを遮っている。ハンドヘルドコントローラ108のビューは、カメラ104のレンズからのビューである。ハンドヘルドコントローラ108の1つまたは複数の部分のビューが遮られている時、カメラ104は、ハンドヘルドコントローラ108の1つまたは複数の部分の画像をキャプチャできない。同様に、観客212は、HMD110の前に立って、HMD110の1つまたは複数の部分のビューを遮っている。HMD110のビューは、カメラ104のレンズからのビューである。HMD110の1つまたは複数の部分のビューが遮られている時、カメラ104は、HMD110の1つまたは複数の部分の画像をキャプチャできない。例えば、コンピューティングデバイス136のプロセッサは、カメラ104のFOVの画像をカメラ104から通信媒体114を介して受信し、その画像から、現実世界環境の方を向いているHMD110の前面にあるマーカの数等、HMD110上のマーカの数が、所定のマーカ数より少ないかかどうかを判断する。所定の数のマーカが、HMD110の前面等、所定の部分にある。画像内のマーカの数が所定のマーカ数より少ないと判断されると、コンピューティングデバイス136のプロセッサは、HMD110上のマーカの1つまたは複数がオクルージョンされ、観客212が、追跡可能なFOV226を妨害していると決定する。他方、マーカ数が所定のマーカ数と一致等、所定のマーカ数未満でないと判断されると、コンピューティングデバイス136のプロセッサは、観客212が追跡可能なFOV226を妨害していないと判断する。
図3Aは、ユーザ102がいて、インサイドアウト追跡がHMD152によって行われる環境の実施形態300の上面図である。環境300は、ユーザ102、観客212、ソファ222、HMD152、ハンドヘルドコントローラ108、及び、ランプ206を含む。HMD152内に実装されるカメラ202は、FOV304を有し、FOV304は、ランプ206、ハンドヘルドコントローラ108、及び、壁308の画像をキャプチャするカメラ202のビューである。例えば、ランプ206、ハンドヘルドコントローラ108、及び、壁308等の現実世界の物体はFOV304内にあることに注意すべきである。しかしながら、環境300の、例えば、壁308B、壁308C、及び、壁308D等、残りの壁は、FOV304の外側にある。
カメラ202は、追跡可能なFOV306も有し、FOV306は、FOV304より体積が小さい。例えば、追跡可能なFOV306は、FOV304がカバーする床の表面積と比べて、環境300の床のより小さい表面積を有する。追跡可能なFOV306は、FOV304の一部分である。追跡可能なFOV306は、ハンドヘルドコントローラ108及び壁308Aを含む。カメラ202は、動作されると、追跡可能なFOV306内の現実世界の物体の画像をキャプチャできる。いくつかの実施形態においては、カメラ202は、FOV304内にあるが、追跡可能なFOV306の外側にある現実世界の物体に焦点を合わせることができない。焦点の欠如により、カメラ202は、FOV304内にあるが、追跡可能なFOV306の外側にある現実世界の物体の鮮明な画像をキャプチャすることがでない。鮮明な画像は、画像の鮮明さの所定の制限を超え、不鮮明な画像は、所定の制限を超えない。所定の制限は、カメラ202のメモリデバイスに記憶され、カメラ202のプロセッサによって実施される。カメラ202は、追跡可能なFOV306内の現実世界の物体に焦点を合わせて、現実世界の物体の画像をキャプチャできる。
観客212は、追跡可能なFOV306内の、例えば、壁308A等の現実世界の物体を妨害しておらず、妨害されていない現実世界の物体は、カメラ202及びコンピューティングデバイス136(図1C)によって使用されて、HMD152の位置及び向きを決定する。例えば、観客212は、追跡可能なFOV306の外側にいて、HMD152の近接センサが発する電磁波が、壁308Aに到達してHMD152に戻るのを妨害しておらず、HMD152のデプスカメラのレンズを通して見える壁308Aのビューを遮っていない。他の例としては、観客212が追跡可能なFOV306内にいない時、HMD152の近接センサが発する電磁波はいずれも壁308AによってHMD152の方に反射され、近接センサによって感知される。さらに他の例として、観客212が追跡可能なFOV306内にいない時、カメラ202のレンズは、壁308Aが見える。
図3Bは、観客212がHMD152の追跡可能なFOV306を妨害している環境300の上面図である。例えば、ハンドヘルドコントローラ108及び観客212等の現実世界の物体は、追跡可能なFOV306内にある。しかしながら、観客212は、ハンドヘルドコントローラ108の前に立って、壁308Aの1つまたは複数の部分のビューをHMD152から遮っている。壁308Aのビューは、カメラ202のレンズからのビューである。コンピューティングデバイス136(図1C)のプロセッサが環境300内のHMD152の位置及び向きを決定するのを可能にする壁308Aの1つまたは複数の部分の画像をカメラ202はキャプチャできない。同様に、観客212は、HMD152の前に立って、壁308Aの1つまたは複数の部分のビューを遮っている。同様に、観客212は、HMD152の近接センサが発する電磁波を遮っており、電磁波は、壁308Aの一部に到達できず、壁308Aの一部から近接センサの方に反射することができない。
図3Cは、環境220の実施形態の図である。ユーザ102は、HMD110を装着している。HMD110の1つまたは複数のディスプレイ画面上に、HMD110のプロセッサは、ビデオゲームの画像350をレンダリングする。画像350には、ユーザ102のアバター352がいる。カメラ104の追跡可能なFOV226は、カメラ104とユーザ102との間に立っている観客212によって妨害されている。例えば、カメラ104は、HMD110の一部分の画像をキャプチャできない。説明すると、カメラ104は、HMD110上の、例えば、光源、反射テープ等、任意のマーカの画像をキャプチャできない。カメラ105とHMD110の1つまたは複数の部分との間には見通し線が無い。さらに、他の例としては、カメラ104は、ハンドヘルドコントローラ108の一部分の画像をキャプチャできない。カメラ105とハンドヘルドコントローラ108の1つまたは複数の部分との間には、見通し線が無い。
観客212の妨害によって、カメラ104は、HMD110の1つまたは複数の部分の画像をキャプチャできない。カメラ104がHMD110の1つまたは複数の部分の画像をキャプチャできない時間中、コンピューティングデバイス136のプロセッサは、画像を使用して、HMD110の位置及び向きを計算できない。
同様に、観客212の妨害によって、カメラ104は、ハンドヘルドコントローラ108の1つまたは複数の部分の画像をキャプチャできない。ハンドヘルドコントローラ108の1つまたは複数の部分の画像をキャプチャできない時間、コンピューティングデバイス136のプロセッサは、画像を使用して、ハンドヘルドコントローラ108の位置及び向きを計算できない。
図4Aは、カメラ104の追跡可能なFOV226を妨害していない位置から追跡可能なFOV226を妨害している位置への観客212の位置の変化を示す環境220の実施形態の図である。ユーザ102が、HMD110の1つまたは複数のディスプレイ画面に表示されるビデオゲームをプレイしている時、観客212は、ソファ222に座っている。しばらくした後、観客212は、立ち上がって、ユーザ102の横の位置に向かって歩く。観客212は、歩き続けて、ドア402を通って環境220を出る。カメラ104がHMD110の1つまたは複数の部分が見えないように観客212がカメラ104のビューを遮る時、追跡可能なFOV226は、観客212に妨害されている。同様に、いくつかの実施形態においては、カメラ104がハンドヘルドコントローラ108の1つまたは複数の部分が見えないように観客がカメラ104のビューを遮る時、ハンドヘルドコントローラ108が位置する追跡可能なFOV226の一部分が、観客212に妨害されている。
図4Bは、カメラ104のレンズからの環境220のビュー410の実施形態の図である。例えば、ビュー410は、カメラ104のディスプレイデバイスに表示される。ビュー410は、HMD110、ハンドヘルドコントローラ108、ユーザ102、観客212、及び、ソファ222の画像を含む。HMD110は、その表面に、HMD110の位置及び向きの決定を容易にする412A、412B、412C、412D、412Eとラベル付けされたマーカを有する。いくつかの実施形態においては、マーカ412A〜412Eは、HMD110の一部分である。
観客212がFOV224内にいるが、追跡可能なFOV226の外側にいる時、カメラ104は、観客212の顔を検出して、観客212をユーザ102に対して特定する。いくつかの実施形態においては、観客212が追跡可能なFOV226の外側であるが、FOV224内にいる時、観客212の顔の画像をキャプチャすることに加えて、または、その代わりに、観客212が追跡可能なFOV226内に入った後、カメラ104が観客212の顔を検出し、観客212の顔の画像をキャプチャする。
カメラ104は、観客212の顔の画像をキャプチャし、その画像を、通信媒体114(図1A)を介してコンピューティングデバイス136(図1B)に送信する。コンピューティングデバイス136のプロセッサは、顔の画像から、画像が、コンピューティングデバイス136のメモリデバイス内、または、HMD110(図1A)、HMD132(図1B)、もしくは、HMD152(図1C)が結合されているクラウドコンピューティングネットワーク内のユーザ特定(ID)データベースに事前に記憶された画像と一致するかどうかを判断する。HMD110、HMD132、または、HMD152は、ルータを介してクラウドコンピューティングネットワークに結合される。コンピューティングデバイス136のプロセッサは、顔の画像が事前に記憶された画像と一致すると判断すると、事前に記憶された画像に、例えば、マッピングされた、リンクされた、対応する等、関連付けられたユーザIDを有するとして、観客212を特定する。コンピューティングデバイス136のプロセッサは、ユーザIDを、通信媒体112(図1A)を介してHMD110に送信する。HMD110のプロセッサは、ユーザIDを受信すると、ユーザIDをHMD110の1つまたは複数のディスプレイ画面に表示し、それによって、ユーザ102は、観客212を認識でき、観客212がHMD110の位置及び向きが決定しない理由であると判断できる。位置及び向きが決定しないと、ゲーム状態に影響を与える。例えば、コンピューティングデバイス136のプロセッサは、最初に、HMD110の位置及び向きを決定しないと、次のゲーム状態を決定できない。HMD110の位置及び向きが、ゲームコードに入力されて、次のゲーム状態を決める。
図4Cは、焦点領域422と他の焦点領域424とを有するカメラ104のビュー420を示す実施形態の図である。焦点領域422は、マーカ412A〜412Eの画像と、マーカ426A及び426Bの画像とを含む。マーカ426A及び426Bは、ハンドヘルドコントローラ108の表面に位置する。マーカ426A及び426Bの例には、光源と反射テープが含まれる。いくつかの実施形態においては、マーカ426A〜426Bは、ハンドヘルドコントローラ108の一部である。ビュー420は、カメラ104のレンズを通したビューである。例えば、ビュー420は、カメラ104のディスプレイデバイス上にカメラ104のプロセッサによって表示される。
カメラ104は、焦点領域422及び424に焦点を合わせる。例えば、カメラ104の超音波エミッタは、音波を生成し、その音波をFOV224の方に送る。HMD110、ハンドヘルドコントローラ108、及び、観客212がFOV224内にいる時、音波は、HMD110、ハンドヘルドコントローラ108、及び、観客212から反射される。カメラ104の音検出器が、反射音波を検出して、電気信号を生成する。電気信号は、音検出器からカメラ104のプロセッサに送信される。カメラ104のプロセッサは、HMD110及びコントローラ108から反射された音波の振幅が観客212から反射された音波の振幅より大きいかかどうかを判断する。HMD110から反射された音波の振幅が観客212から反射された音波の振幅より大きいと判断すると、カメラ104のプロセッサは、カメラ104の露出制御機構を制御して、マーカ412A〜412Eの画像に焦点を合わせる。説明すると、カメラ104のプロセッサは、カメラ104内の開口駆動部に信号を送信して、モータの動きを制御し、モータは、回転して、カメラ104内の開口絞りの位置を変化させ、カメラ104の開口の直径を変化させる。モータは、カメラ104内に配置される。さらに、カメラ104のプロセッサは、カメラ104内のシャッタ駆動部に信号を送信して、カメラ104の駆動機構に電流信号を提供し、駆動機構は、ある量の電磁場を生成し、電磁場は、カメラ104のシャッタが開閉する速度を変える。開口絞りとシャッタ絞りとの制御は、焦点領域422に焦点を合わせるのを助ける。同様に、ハンドヘルドコントローラ108から反射される音波の振幅が観客212から反射される音波の振幅より大きいと判断すると、プロセッサは、露出制御機構を制御して、マーカ426A及び426Bの画像に焦点を合わせて、焦点領域424を生成する。
カメラ104が焦点領域422及び424に焦点を合わせると、複数の光センサを含む光検出器システムが、マーカ412A〜412Eとマーカ426A及び426Bとの画像をキャプチャして、電気信号を生成し、電気信号は、光検出器システムからカメラ104のプロセッサに送信される。カメラ104のプロセッサは、電気信号をコンピューティングシステム136(図1B)のプロセッサに通信媒体114(図1A)を介して送信する。コンピューティングシステム136のプロセッサは、電気信号から、HMD110の位置及び向きとハンドヘルドコントローラ108の位置及び向きとを決定する。例えば、電気信号の強度は、HMD110の位置を規定する。説明すると、強度の第1の値が強度の第2の値より大きい時、第1の値が光検出器システムによって検出された時のHMD110の位置は、第2の値が光検出器システムによって検出された時のHMD110の位置よりカメラ104に近い。さらに、例として、カメラ104がキャプチャした画像のマーカ412A〜412Eの向きは、現実世界環境220のHMD110の向きと同じである。同様に、例として、電気信号の強度は、ハンドヘルドコントローラ108の位置を規定する。説明すると、強度の第1の値が強度の第2の値より大きい時、第1の値が光検出器システムによって検出された時のハンドヘルドコントローラ108の位置は、第2の値が光検出器システムによって検出された時のハンドヘルドコントローラ108の位置よりカメラ104に近い。さらに、例として、カメラ104がキャプチャした画像のマーカ426A及び426Bの向きは、現実世界環境220のハンドヘルドコントローラ108の向きと同じである。
いくつかの実施形態においては、HMD110は、HMD110の位置及び向きの決定を可能にする任意の他の数、例えば、3、7、10、20等のマーカを含む。同様に、様々な実施形態において、ハンドヘルドコントローラ108は、ハンドヘルドコントローラ108の位置及び向きの決定を可能にする任意の他の数、例えば、3、7、10、20等のマーカを含む。
様々な実施形態において、HMD110上のマーカは、図4Bに示すのと異なる配置で付けられる。同様に、幾つかの実施形態において、ハンドヘルドコントローラ108上のマーカは、図4Bに示すのと異なる配置で付けられる。
図5Aは、観客が追跡可能なFOV226を妨害していることをユーザ102に通知する方法500の実施形態のフローチャートである。方法500は、コンピューティングデバイス136(図IB及び1C)のプロセッサによって実行される。
方法500の動作502において、コンピューティングデバイス136のプロセッサは、HMD及びハンドヘルドコントローラを追跡する。例えば、コンピューティングデバイス136のプロセッサは、HMD110の位置及び向きとハンドヘルドコントローラ108(図1A)の位置及び向き、または、HMD132の位置及び向きとハンドヘルドコントローラ134(図1B)の位置及び向き、並びに、HMD152の位置及び向きとハンドヘルドコントローラ154(図1C)の位置及び向きを決定する。HMD110及びハンドヘルドコントローラ108の位置及び向きを決定する例は、前述した。他の例としては、コンピューティングデバイス136のプロセッサは、HMD110及びハンドヘルドコントローラ108の画像をキャプチャするように、通信媒体114(図1A)を介して信号をカメラ104のプロセッサに送信する。カメラ104のプロセッサは、信号を受信すると、光検出器システムに画像をキャプチャするように命令する。光検出器システムは、HMD110及びハンドヘルドコントローラ108から反射される光から電気信号を生成する。電気信号は、処理されて、画像の画像データを生成し、画像データは、カメラ104のプロセッサによって通信媒体114を介してコンピューティングデバイス136のプロセッサに送信される。コンピューティングデバイスのプロセッサは、HMD110及びハンドヘルドコントローラ108の位置及び向きを、例えば、光の強度等を用いることによって、上記のように画像データから決定する。画像データは、レンダリングされて画像を表示するデータである。HMD及びハンドヘルドコントローラを追跡する例を、図4Cを用いて示す。HMD及びハンドヘルドコントローラに焦点を合わせて、HMD及びハンドヘルドコントローラを追跡する。
方法500の動作504において、観客212(図4A)がFOV224(図4A)内にいるかどうかが判断される。例えば、コンピューティングデバイス136のプロセッサは、音波を生成して現実世界環境220に向けて送るように超音波エミッタにコマンドを送信するように、通信媒体114(図1A)を介してカメラ104のプロセッサに命令を送信する。プロセッサは、命令を受信すると、コマンドを送信する。超音波エミッタは、コマンドを受信すると、音波を生成し、放射する。音波は、観客212からカメラ104の音検出器に向かって反射される。音検出器は、反射音波から電気信号を生成し、その電気信号をカメラ104のプロセッサに送信する。カメラ104のプロセッサは、通信媒体114を介してコンピューティングデバイス136のプロセッサに電気信号を送信する。コンピューティングデバイス136のプロセッサは、電気信号の振幅が所定の振幅閾値より大きいかかどうかを判断する。電気信号の振幅が所定の振幅閾値より大きいと判断すると、コンピューティングデバイス136のプロセッサは、観客がFOV224内にいると判断する。他方、電気信号の振幅が所定の振幅閾値以下であると判断すると、コンピューティングデバイス136のプロセッサは、観客が、例えば、FOV224の外側にいる等、FOV224内にいないと判断する。他の例としては、コンピューティングデバイス136のプロセッサは、音波を生成して現実世界環境300(図3A)に向けて送るようにカメラ202の超音波エミッタにコマンドを送信するように、通信媒体112(図1C)を介してカメラ202(図2A)のプロセッサに命令を送信する。プロセッサは、命令を受信すると、コマンドを送信する。カメラ202の超音波エミッタは、コマンドを受信すると、音波を生成、放射する。音波は、観客212からカメラ202の音検出器に向かって反射される。カメラ202の音検出器は、反射音波から電気信号を生成し、その電気信号をカメラ202のプロセッサに送信する。カメラ202のプロセッサは、通信媒体112を介してコンピューティングデバイス136のプロセッサに電気信号を送信する。コンピューティングデバイス136のプロセッサは、観客212がFOV304内にいるかFOV304の外側にいるかを、観客212がFOV224内にいるかFOV224の外側にいるかを判断するために前述したのと同じように判断する。
観客212がFOV224内にいないと判断すると、動作502が繰り返される。例えば、コンピューティングデバイス136のプロセッサは、観客212がFOV224内にいないと判断すると、HMD110及びハンドヘルドコントローラ108の追跡を続ける。
他方、観客212がFOV224内にいると判断すると、方法500の動作506において、観客212を特定可能かどうか判断される。例えば、観客212がFOV224内にいると判断すると、コンピューティングデバイス136のプロセッサは、通信媒体114を介してカメラ104のプロセッサに、観客212を含む現実世界環境220の画像をキャプチャするように指示する。カメラ104がキャプチャした現実世界環境220の画像から、コンピューティングデバイス136のプロセッサは、画像内の観客212の表現の品質が所定の品質閾値より高いかどうかを判断する。例えば、コンピューティングデバイス136のプロセッサは、観客212の表現の品質が画像内の背景と、画像にキャプチャされた現実世界の他の物体とから観客212を区別するのに十分であるかどうかを判断する。説明すると、コンピューティングデバイス136のプロセッサは、観客212の顔の輪郭が画像の背景から区別されるかどうかを判断する。画像の背景は、現実世界環境220の壁、現実世界環境220内のソファ222、及び、例えば、窓、絵画等を含む他の現実世界の物体を含む。観客212の表現の品質が画像内の背景と画像でキャプチャされた他の現実世界の物体とから観客212を区別するのに十分であると判断すると、コンピューティングデバイス136のプロセッサは、観客212の表現の品質は所定の品質閾値を超えると判断する。他方、観客212の表現の品質が画像内の背景と画像でキャプチャされた他の現実世界の物体とから観客212を区別するのには十分でないと判断すると、コンピューティングデバイス136のプロセッサは、観客212の表現の品質は所定の品質閾値を超えず、観客212は特定できないと判断する。観客212の表現の品質が所定の品質閾値を超えると判断すると、コンピューティングデバイス136のプロセッサは、観客の表現がユーザIDデータベースに予め記憶された画像と一致するかどうかを判断する。さらに、観客の表現がユーザIDデータベースに予め記憶された画像と一致すると判断すると、コンピューティングデバイス136のプロセッサは、観客212のユーザIDにアクセスし、観客212は特定可能であると判断する。
他の例としては、観客212がFOV224内にいると判断すると、コンピューティングデバイス136のプロセッサは、観客212が声を出した時、観客212の音声をキャプチャするようにHMD110の録音装置に命じるように、通信媒体112(図1A)を介してHMD110のプロセッサに命令する。プロセッサは、観客212の音声をキャプチャするようにHMD110のマイクロフォンにコマンドを送信する。マイクロフォンが音声をキャプチャし、音声を電気信号に変換し、電気信号は、HMD110のアナログデジタルコンバータ(A−Dコンバータ)によって、アナログ形式からデジタル形式に変換され、HMD110の音声メモリデバイスに音声データとして記憶される。HMD110のプロセッサは、HMD110の音声メモリデバイスから音声データにアクセスし、その音声データを、通信媒体112を介してコンピューティングデバイス136のプロセッサに送信する。コンピューティングデバイス136のプロセッサは、音声データがユーザIDデータベースに予め記憶された音声データと一致するかどうかを判断する。説明すると、コンピューティングデバイス136のプロセッサは、音声データの、例えば、音色、高さ等のパラメータが、予め記憶された音声データのパラメータと一致するかどうかを判断する。音声データは、コンピューティングデバイス136のメモリデバイスのユーザIDデータベースに予め記憶されている。予め記憶された音声データは、例えば、ユーザIDと1対1の関係を有する、ユーザIDにリンクされる、ユーザIDとのマッピングを有する等、ユーザIDに関連付けられる。パラメータがユーザIDデータベースに予め記憶されたパラメータと一致すると判断すると、コンピューティングデバイス136のプロセッサは、観客212のユーザIDにアクセスし、観客212は特定可能であると判断する。さらに、パラメータがユーザIDデータベースに予め記憶されたパラメータに一致しないと判断すると、コンピューティングデバイス136のプロセッサは、観客212は特定できないと判断する。
さらに別の例として、観客212の表現と観客212の音声データとの両方を使用して、観客212が特定可能かどうかを判断する。例えば、観客212の表現の品質が画像内の背景と画像でキャプチャされた他の現実世界の物体とから観客212を区別するのに十分でないと判断すると、及び/または、音声データに関連付けられたパラメータがユーザIDデータベースに予め記憶されたパラメータに一致しないと判断すると、コンピューティングデバイス136のプロセッサは、観客212は特定できないと判断する。他方、観客の表現がユーザIDデータベースに予め記憶された画像に一致し、且つ、音声データに関連付けられたパラメータがユーザIDデータベースに予め記憶されたパラメータと一致すると判断すると、コンピューティングデバイス136のプロセッサは、観客212は特定可能であると判断する。
動作506において、観客212は特定可能であると判断すると、HMD110及びハンドヘルドコントローラ108を追跡する動作502が繰り返される。他方、動作506において、観客212は特定できないと判断すると、方法500の動作508が実行される。例えば、コンピューティングデバイス136のプロセッサは、音波を生成し、その音波を現実世界環境220に向かって送るように超音波エミッタにコマンドを送信するように、通信媒体114(図1A)を介してカメラ104のプロセッサに命令を送信する。カメラ104のプロセッサは、命令を受信すると、コマンドを送信する。超音波エミッタは、コマンドを受信すると、音波を生成し、放射する。音波は、観客212からカメラ104の音検出器に向かって反射される。音検出器は、反射音波から電気信号を生成し、その電気信号をカメラ104のプロセッサに送信する。カメラ104のプロセッサは、通信媒体114を介してコンピューティングデバイス136のプロセッサに電気信号を送信する。コンピューティングデバイス136のプロセッサは、電気信号の振幅が所定の振幅制限より大きいかかどうかを判断する。
電気信号の振幅が所定の振幅制限より大きいと判断すると、コンピューティングデバイス136のプロセッサは、観客は追跡可能なFOV226内にいると判断する。他方、電気信号の振幅が所定の振幅制限以下であると判断すると、コンピューティングデバイス136のプロセッサは、例えば、観客はFOV226の外側にいる等、観客は追跡可能なFOV226内にはいなと判断する。いくつかの実施形態においては、追跡可能なFOV226に関連付けられた所定の振幅制限は、FOV224に関連付けられた所定の振幅閾値より大きさが大きいことに注意すべきである。例えば、FOV224に関連付けられた所定の振幅閾値を超える観客212から反射された電気信号の振幅は、追跡可能なFOV226に関連付けられた所定の振幅制限を超えない場合がある。この場合、観客212は、FOV224内にいるが、追跡可能なFOV226の外側にいる。
他の例としては、コンピューティングデバイス136のプロセッサは、音波を生成し、その音波を現実世界環境300に向かって送るようにカメラ202の超音波エミッタにコマンドを送信するように、通信媒体112(図1B)を介してHMD152のカメラ202のプロセッサ(図2A)に命令を送信する。命令を受信すると、カメラ202のプロセッサは、コマンドを送信する。コマンドを受信すると、超音波エミッタは、音波を生成し、放射する。音波は、観客212からカメラ202の音検出器に向かって反射される。音検出器は、反射音波から電気信号を生成し、その電気信号をカメラ202のプロセッサに送信する。カメラ202のプロセッサは、観客212が追跡可能なFOV306内にいるかどうかを判断するために、電気信号を、通信媒体112を介してコンピューティングデバイス136のプロセッサに送信する。観客212が追跡可能なFOV306内にいるかどうかの判断は、観客212が追跡可能なFOV226内にいるかどうかの判断に関して前述したのと同じように行われる。
観客212が追跡可能なFOV226内にいないと判断すると、動作502が繰り返される。他方、観客212が追跡可能なFOV226内にいると判断すると、方法500の動作510で、観客212が、追跡可能なFOV226内にいる時、特定可能かどうかが判断される。例えば、観客212が追跡可能なFOV226内にいると判断すると、コンピューティングデバイス136のプロセッサは、観客212を含む現実世界環境220の画像をキャプチャするように、通信媒体114を介してカメラ104のプロセッサに指示する。カメラ104がキャプチャした現実世界環境220の画像から、コンピューティングデバイス136のプロセッサは、動作506で前述したように、画像内の観客212の表現の品質が所定の品質閾値より高いかかどうかを判断する。観客212の表現の品質が所定の品質閾値を超えると判断すると、コンピューティングデバイス136のプロセッサは、観客の表現がユーザIDデータベースに予め記憶された画像と一致するかどうかを判断する。さらに、観客の表現がユーザIDデータベースに予め記憶された画像と一致すると判断すると、コンピューティングデバイス136のプロセッサは、観客212のユーザIDにアクセスし、観客212は特定可能であると判断する。
他の例としては、観客212が追跡可能なFOV226内にいると判断すると、コンピューティングデバイス136のプロセッサは、観客212が声を出した時、観客212の音声をキャプチャするようにHMD110の録音装置に命令するようにHMD110のプロセッサに通信媒体112(図1A)を介して指示する。プロセッサは、観客212の音声をキャプチャするようにHMD110のマイクロフォンにコマンドを送信する。動作506で前述した同じプロセスが実行される。説明すると、観客212の音声から生成された音声データに関連付けられたパラメータがユーザIDデータベースに予め記憶されたパラメータと一致すると判断すると、コンピューティングデバイス136のプロセッサは、観客212のユーザIDにアクセスし、観客212は特定可能であると判断する。さらに、パラメータがユーザIDデータベースに予め記憶されたパラメータと一致しないと判断すると、コンピューティングデバイス136のプロセッサは、観客212は特定できないと判断する。
さらに他の例として、動作506で前述したように、観客212の表現と観客212の音声データとの両方を使用して、観客212が特定可能かどうかを判断する。
動作510において観客212は特定可能であると判断すると、HMD110及びハンドヘルドコントローラ108を追跡する動作502が繰り返される。他方、動作510において、観客212は特定できないと判断すると、図5Bに関して記載したように、方法500の動作512が繰り返される。
図5Bは、図5Aの方法500のフローチャートの続きである。動作512において、観客212がカメラ104の追跡可能なFOV226を妨害しているかどうかを判断する。例えば、マーカ412A、または、マーカ412B、または、マーカ412C、または、マーカ412D、または、マーカ412E、または、マーカ412A、412B、412C、412、412Eの2つ以上の組み合わせから反射する光を観客212が遮っているかどうかが判断される。説明すると、カメラ104は、観客212と、マーカ412A〜412Eのうちの1つまたは複数との表現を含む画像をキャプチャし、その画像をコンピューティングデバイス136のプロセッサに送信する。コンピューティングデバイス136のプロセッサは、マーカ412A、または、マーカ412B、または、マーカ412C、または、マーカ412D、または、マーカ412E、または、マーカ412A、412B、412C、412D、412Eの2つ以上の組み合わせのいずれかの部分が画像にキャプチャされているかどうかを判断する。プロセッサは、画像にキャプチャされたマーカ412A、または、マーカ412B、または、マーカ412C、または、マーカ412D、または、マーカ412Eの形状と、マーカの予め記憶された形状とを比較する。いくつかの実施形態においては、全てのマーカ412A〜412Eは同じ形状を有することに注意すべきである。画像でキャプチャされたマーカの部分の形状が予め記憶されたマーカの形状と一致しないと判断すると、コンピューティングデバイス136のプロセッサは、画像はマーカ全体を含まず、マーカの一部分が観客212によってオクルージョンされていると判断する。他方、画像のマーカ412A、412B、412C、412D、または、412Eの形状が予め記憶されたマーカの形状と一致すると判断すると、コンピューティングデバイス136のプロセッサは、画像がマーカ全体を含むと判断する。コンピューティングデバイス136のプロセッサは、マーカ412A、412B、412C、412D、412Eの各々の形状が予め記憶された形状と一致する画像内のマーカの数が、予め記憶された数と等しいかかどうかを判断する。マーカ412A、412B、412C、412D、412Eの各々の形状が予め記憶された形状と一致する画像内のマーカ412A、412B、412C、412D、412Eの数が予め記憶された数と等しいと判断すると、コンピューティングデバイス136のプロセッサは、観客212が追跡可能なFOV226のHMD110を妨害していないと判断する。予め記憶された形状と予め記憶された数とは、コンピューティングデバイス136のメモリデバイス内に記憶されることに注意すべきである。
他の説明として、カメラ104は、観客212とHMD110との表現を含む画像をキャプチャし、その画像をコンピューティングデバイス136のプロセッサに送信する。コンピューティングデバイス136のプロセッサは、HMD110のいずれかの部分が画像にキャプチャされているかどうかを判断する。プロセッサは、画像にキャプチャされたHMD110の形状と予め記憶されたHMD110の形状とを比較する。画像にキャプチャされたHMD110の一部分の形状が予め記憶されたHMD110の形状に一致しないと判断すると、コンピューティングデバイス136のプロセッサは、画像はHMD110全体を含まず、HMD110の一部分が観客212によってオクルージョンされていると判断する。他方、画像のHMD110の形状が予め記憶されたHMD110の形状と一致すると判断すると、コンピューティングデバイス136のプロセッサは、その画像はHMD110全体を含むと判断する。画像がHMD110全体を含むと判断すると、コンピューティングデバイス136のプロセッサは、観客212は追跡可能なFOV226のHMD110を妨害していないと判断する。他方、画像がHMD110全体を含まないと判断すると、コンピューティングデバイス136のプロセッサは、観客212が追跡可能なFOV226内のHMD110を妨害していると判断する。
他の例としては、観客212が、マーカ426A、または、マーカ426B、または、マーカ426Aと426Bの両方から反射された光を遮っているかどうかが判断される。説明すると、カメラ104は、観客212の表現と、マーカ426A及び/またはマーカ426Bとの表現を含む画像をキャプチャし、その画像をコンピューティングデバイス136のプロセッサに送信する。コンピューティングデバイス136のプロセッサは、マーカ426A、または、マーカ426B、または、マーカ426Aと426Bの両方のいずれかの部分が画像にキャプチャされているかどうかを判断する。プロセッサは、画像にキャプチャされてたマーカの形状とマーカの所定の形状とを比較する。画像にキャプチャされたマーカ426Aまたは426Bの形状がマーカの所定の形状と一致しないと判断すると、コンピューティングデバイス136のプロセッサは、その画像はマーカ全体を含まず、マーカの一部分が観客212によってオクルージョンされていると判断する。他方、画像のマーカ426Aまたは426Bの形状がマーカの所定の形状と一致すると判断すると、コンピューティングデバイス136のプロセッサは、画像はマーカ全体を含むと判断する。コンピューティングデバイスのプロセッサは、マーカ426Aと426Bの各々の形状が所定の形状と一致する画像のマーカの数が所定のマーカ数と等しいかどうかを判断する。マーカ426Aと426Bの各々の形状が所定の形状と一致する画像のマーカ426Aと426Bとの数が所定の数と等しいと決定すると、コンピューティングデバイス136のプロセッサは、観客212は追跡可能なFOV226内のハンドヘルドコントローラ108を妨害していないと判断する。所定の形状と所定の数とはコンピューティングデバイス136のメモリデバイス内に記憶されていることに注意すべきである。
他の説明として、カメラ104は、観客212とハンドヘルドコントローラ108との表現を含む画像をキャプチャし、その画像をコンピューティングデバイス136のプロセッサに送信する。コンピューティングデバイス136のプロセッサは、ハンドヘルドコントローラ108のいずれかの部分が画像にキャプチャされているかどうかを判断する。プロセッサは、画像にキャプチャされたハンドヘルドコントローラ108の形状と予め記憶されたハンドヘルドコントローラ108の形状と比較する。画像にキャプチャされたハンドヘルドコントローラ108の部分の形状が予め記憶されたハンドヘルドコントローラ108の形状と一致しないと判断すると、コンピューティングデバイス136のプロセッサは、その画像はハンドヘルドコントローラ108全体を含まず、ハンドヘルドコントローラ108の一部分が観客212によってオクルージョンされていると判断する。他方、画像のハンドヘルドコントローラ108の形状が予め記憶されたハンドヘルドコントローラ108の形状と一致すると判断すると、コンピューティングデバイス136のプロセッサは、その画像はハンドヘルドコントローラ108全体を含むと判断する。画像がハンドヘルドコントローラ108全体を含むと判断すると、コンピューティングデバイス136のプロセッサは、観客212は追跡可能なFOV226内のハンドヘルドコントローラ108を妨害していないと判断する。他方、画像がハンドヘルドコントローラ108全体を含まないと判断すると、コンピューティングデバイス136のプロセッサは、観客212は追跡可能なFOV226内のハンドヘルドコントローラ108を妨害していると判断する。
他の例としては、プロジェクタ138A、138B(図1B)が発する光がHMD132(図1B)の光センサ132(図1B)によって検出されないかどうかが判断される。説明すると、コンピューティングデバイス136(図1B)のプロセッサは、所定の時間より長い間、電気信号を光センサ140の1つまたは複数から受信していないかかどうかを判断する。プロジェクタ138A、138Bが発する光が光センサ140によって検出されると、電気信号が光センサ140の1つまたは複数によって生成される。観客212がプロジェクタ138A、138Bの1つまたは複数の追跡可能なFOVを妨害している時、光センサ140の1つまたは複数は、電気信号を生成しない。電気信号は、生成されると、HMD132の光センサ140から通信媒体112(図1B)を介してコンピューティングデバイス136のプロセッサに送信される。しかしながら、電気信号が光センサ140の1つまたは複数によって生成されない時、電気信号の送信は起こらず、よって、コンピューティングデバイス136のプロセッサによる電気信号の受信も起こらない。所定の時間より長い間、電気信号が光センサ140の1つまたは複数から受信されていないと判断すると、コンピューティングデバイス136のプロセッサは、観客212がプロジェクタ138A、138Bの1つまたは複数の追跡可能なFOVを妨害していると判断する。
他の例としては、HMD152のカメラ214(図2A)は、カメラ214の前の現実世界環境300の画像をキャプチャする。画像は、観客212の画像を含む。HMD152のプロセッサは、その画像を、通信媒体112を介してコンピューティングデバイス136のプロセッサに送信する。コンピューティングデバイス136のプロセッサは、画像と、コンピューティングデバイス136のメモリデバイスに記憶された、例えば、人の形状、男性の形状、女性の形状等、所定の形状とから、画像が観客212の表現を含むと判断する。例えば、コンピューティングデバイス136のプロセッサは、画像内の観客212の表現の形状と、所定の形状とを比較し、表現の形状と所定の形状との間に一致があると判断すると、プロセッサは、画像は観客212の表現を含むと判断する。他方、一致が生じていないと判断すると、コンピューティングデバイス136のプロセッサは、画像は観客212の表現を含まないと判断する。画像が観客212の表現を含むと判断すると、コンピューティングデバイス136のプロセッサは、観客212は追跡可能なFOV306(図3A及び3B)を妨害していると判断する。他方、画像が観客212の表現を含まないと判断すると、コンピューティングデバイス136のプロセッサは、観客212は追跡可能なFOV306を妨害していないと判断する。
観客212が追跡可能なFOV226内のHMD110及び/またはハンドヘルドコントローラ108を妨害していないと判断すると、コンピューティングデバイス136のプロセッサは、HMD110及びハンドヘルドコントローラ108を追跡する動作502を引き続き行う。他方、観客212が追跡可能なFOV226内のHMD110及び/またはハンドヘルドコントローラ108を妨害していると判断すると、方法500の動作514において、観客212が特定可能かどうかを判断する。例えば、観客212が追跡可能なFOV226内のHMD110及び/またはハンドヘルドコントローラ108を妨害していると判断すると、コンピューティングデバイス136のプロセッサは、通信媒体114を介してカメラ104のプロセッサに観客212を含む現実世界環境220の画像をキャプチャするように指示する。カメラ104がキャプチャした現実世界環境220の画像から、コンピューティングデバイス136のプロセッサは、動作506で前述したように、画像内の観客212の表現の品質が所定の品質閾値より高いかかどうかを判断する。観客212の表現の品質が所定の品質閾値を超えると判断すると、コンピューティングデバイス136のプロセッサは、観客212の表現がユーザIDデータベースに予め記憶された画像と一致するかどうかを判断する。さらに、観客212の表現がユーザIDデータベースに予め記憶された画像と一致すると判断すると、コンピューティングデバイス136のプロセッサは、観客212のユーザIDにアクセスし、観客212は特定可能であると判断する。
他の例としては、観客212が追跡可能なFOV306(図3A)内のHMD110及び/またはハンドヘルドコントローラ108を妨害していると判断すると、コンピューティングデバイス136のプロセッサは、通信媒体112を介してカメラ202のプロセッサ(図2A)に観客212を含む現実世界環境300(図3A)の画像をキャプチャするように指示する。カメラ202がキャプチャした現実世界環境300の画像から、コンピューティングデバイス136のプロセッサは、動作506で前述したように、画像内の観客212の顔の表現の品質が所定の品質閾値より高いかかどうかを判断する。画像内の観客212の顔の表現が所定の品質閾値より高い時、観客212は、HMD152の近くにいることに注意すべきである。観客212の顔の表現の品質が所定の品質閾値を超えると判断すると、コンピューティングデバイス136のプロセッサは、観客212の顔の表現がユーザIDデータベースに予め記憶された画像と一致するかどうかを判断する。さらに、観客212の顔の表現がユーザIDデータベースに予め記憶された画像と一致すると判断すると、コンピューティングデバイス136のプロセッサは、観客212のユーザIDにアクセスし、観客212は特定可能であると判断する。
さらに他の例として、観客212が追跡可能なFOV226内のHMD110及び/またはハンドヘルドコントローラ108を妨害していると判断すると、コンピューティングデバイス136のプロセッサは、観客212が声を出した時、観客212の音声をキャプチャするようにHMD110またはHMD140(図1B)の録音装置に命令するように通信媒体112(図1A)を介してHMD110またはHMD140のプロセッサに指示する。HMD110のプロセッサは、観客212の音声をキャプチャして、キャプチャした音声データを生成するようにHMD110またはHMD140のマイクロフォンにコマンドを送信する。キャプチャされた音声データは、HMD110またはHMD140のプロセッサからコンピューティングデバイス136のプロセッサに通信媒体112を介して送信される。動作506で前述されたのと同じプロセスが、その後、実行される。説明すると、観客212の音声から生成された音声データに関連付けられたパラメータがユーザIDデータベースに予め記憶されたパラメータと一致すると判断すると、コンピューティングデバイス136のプロセッサは、観客212のユーザIDにアクセスし、観客212は特定可能であると判断する。さらに、パラメータがユーザIDデータベースに予め記憶されたパラメータに一致しないと判断すると、コンピューティングデバイス136のプロセッサは、観客212は特定できないと判断する。
さらに他の例として、動作506で前述したように、観客212の表現と観客212の音声データとの両方を使用して観客212が特定可能かどうかを判断する。
他の例としては、カメラ104のプロセッサは、カメラ104内の開口駆動部に信号を送信してモータの動きを制御し、モータは回転して、カメラ104の開口の直径が大きくなるように、カメラ104内の開口絞りの位置を変更する。その直径は、HMD110及びハンドヘルドコントローラ108を追跡するためにHMD110及びハンドヘルドコントローラ108の画像が動作502(図5A)でキャプチャされる時のカメラ104の開口部の直径より大きくなる。さらに、カメラ104のプロセッサは、駆動機構に電流信号を提供するようにカメラ104内のシャッタ駆動部に信号を送信して、駆動機構は、ある量の電磁場を生成し、電磁場は、カメラ104のシャッタが開閉する速度を増加させる。シャッタ速度は、動作502(図5A)でHMD110及びハンドヘルドコントローラ108の画像をキャプチャするのに使用されるシャッタ速度と比較して増加する。シャッタ速度は、カメラ104の開口部の直径が増加した結果として、カメラ104に入る光の量が増えるのを補償するために増加する。開口部の直径とシャッタ速度とは、HMD110及びハンドヘルドコントローラ108への焦点の量と比較して、より観客212の顔に焦点を合わせるように動作514で変更されて、観客212の顔の画像をキャプチャする。いくつかの実施形態においては、開口部の直径とシャッタ速度とは、HMD110及びハンドヘルドコントローラ108とに焦点を合わせる代わりに、観客212の顔に焦点を合わせるように動作514で変更されて、観客212の顔の画像をキャプチャする。観客212の顔への焦点の量を増加させてカメラ104によってキャプチャされた画像は、カメラ104のプロセッサから通信媒体114を介してコンピューティングデバイス136のプロセッサに送信される。コンピューティングデバイス136のプロセッサは、観客212の顔の画像が、例えば、ユーザIDデータベースの顔の画像等、予め記憶された画像に一致するかどうかを判断する。さらに、観客212の顔の画像がユーザIDデータベースに予め記憶された画像に一致すると判断すると、コンピューティングデバイス136のプロセッサは、観客212のユーザIDにアクセスして、観客212は特定可能であると判断する。他方、観客212の顔の画像がユーザIDデータベースに予め記憶された画像に一致しないと判断すると、コンピューティングデバイス136のプロセッサは、観客212は特定できないと判断する。
他の例としては、観客212の顔の画像と観客212の音声データとを使用して、観客212が特定可能かどうかを判断する。例えば、観客212の音声から生成された音声データに関連付けられたパラメータが、ユーザIDデータベースに予め記憶されたパラメータと一致すると判断すると、及び/または、観客212の顔のキャプチャされた画像がユーザIDデータベースに予め記憶された画像と一致すると判断すると、コンピューティングデバイス136のプロセッサは、観客212のユーザIDにアクセスして、観客212は特定可能であると判断する。他方、音声データに関連付けられたパラメータがユーザIDデータベースに予め記憶されたパラメータと一致せず、観客212の顔のキャプチャされた画像がユーザIDデータベースに予め記憶された画像と一致しないと判断すると、コンピューティングデバイス136のプロセッサは、観客212は特定できないと判断する。
動作514で観客212は特定できないと判断すると、方法500の動作516が行われる。動作516において、コンピューティングデバイス136のプロセッサは、HMD110の1つまたは複数のディスプレイ画面に及び/またはHMD110の放音装置を介して通知を提供するように、通信媒体112(図1A)を介してHMD110のプロセッサに命令を送信する。命令を受信すると、HMD110のプロセッサは、通知を提供する。例えば、通知は、観客212が追跡可能なFOV226を妨害しているというメッセージの表示と、ユーザ102に観客212を特定するようにという要求の表示とを含む。他の例としては、通知は、観客212が追跡可能なFOV226を妨害している結果、ビデオゲームの表示の品質係数が低下しているというメッセージの表示を含む。さらに別の例として、HMD110のプロセッサは、観客212の顔を表示して、ユーザ102に観客212を特定するように要求し、また、観客212が追跡可能なFOV226を妨害しているというメッセージを表示する。さらに他の例として、命令を受信すると、HMD110のプロセッサは、HMD110の音声メモリデバイスに記憶された観客212の音声データにアクセスして、HMD110のデジタルアナログコンバータを制御して、音声データをアナログ形式の電気信号に変換する。音声データは、コンピューティングデバイス136のプロセッサから通信媒体112を介してHMD110のプロセッサによって受信され、HMD110に記憶される。HMD110のプロセッサは、さらに、HMD110の1つまたは複数のスピーカを含むスピーカシステムを制御して、電気信号を音声信号に変換して観客の音声を、スピーカシステムを通して出力する。音声は、観客212を特定する音声要求に含められる。音声要求は、HMD110のプロセッサによって生成される。ユーザ102は、要求内に含められた音声によって観客212を特定するように通知される。
様々な実施形態において、音波を放射するために使用する超音波エミッタの代わりに、光エミッタを使用して、光を放射し、光検出器システムを使用して、現実世界の物体から反射される光を検出する。FOV224に関連付けられた光強度振幅閾値を用いて反射される光の強度を使用して、現実世界の物体がFOV224内にあるかどうかを判断する。さらに、追跡可能なFOV226に関連付けられた光強度振幅制限を用いて反射される光の強度を使用して、現実世界の物体が追跡可能なFOV226内にあるかどうかを判断する。
いくつかの実施形態においては、動作514は、動作506及び508の代わりに行われることに注意すべきである。例えば、図5Bの動作514に関して前述したように、図5Aの動作504で、観客212がFOV224内にいると判断すると、カメラ104の露出が変更される。他の例としては、図5Bの動作514に関して前述したように、図5Aの動作508において、観客212が追跡可能なFOV226内にいると判断すると、カメラ104の露出が変更される。幾つかの実施形態において、図5Bの動作514に関して前述したように、カメラ104の露出は、例えば、所定の時間間隔等、周期的に変更されて、観客212を特定する。例えば、コンピューティングデバイス136のプロセッサは、周期的な時間間隔で、または、時々等、非周期的な時間間隔で、カメラ104の露出を変更して観客212を特定するようにカメラ104のプロセッサに命令を送信する。
図5Cは、図5Bの方法500のフローチャートの続きである。動作518において、観客212の識別情報がユーザ102から受信されたかどうかを判断する。例えば、コンピューティングデバイス136のプロセッサは、動作516の通知に応答して、ユーザ102が、例えば、観客212のユーザID、観客212の名前等、観客212を特定する入力を、ハンドヘルドコントローラ108を介してHMD110のプロセッサに提供したかどうかを判断する。説明すると、ユーザ102は、HMD110の1つまたは複数のディスプレイ画面に表示された様々な英数字を、ハンドヘルドコントローラ108を介して選択して、観客212の名前を選択する。入力を受信すると、HMD110のプロセッサは、通信媒体112を介して入力をコンピューティングデバイス136のプロセッサに送信する。入力を受信すると、コンピューティングデバイス136のプロセッサは、観客212の識別情報がユーザ102から受信されたと判断する。いくつかの実施形態においては、HMD110のプロセッサは、観客212の識別情報がユーザ102から受信されるまで、動作516の通知の提供を続ける。
図5Bの動作514に戻って、観客212が特定できないと判断すると、図5Cの方法500の動作520が行われる。動作520中、ユーザ102は、観客212が追跡可能なFOV226内のHMD110及び/またはハンドヘルドコントローラ108を妨害していることを通知される。例えば、コンピューティングデバイス136のプロセッサは、HMD110の1つまたは複数のディスプレイ画面に及び/またはHMD110の放音装置を介して通知を提供するように、通信媒体112(図1A)を介してHMD110のプロセッサに命令を送信する。命令を受信すると、HMD110のプロセッサは、通知を提供する。例えば、通知は、観客212が追跡可能なFOV226を妨害しているというメッセージの表示を含み、そのメッセージは、ユーザ102に対して観客212を特定する観客212のユーザIDを含む。さらに、通知は、観客212が追跡可能なFOV226を妨害しないように観客212に移動を求めるようにというユーザへのメッセージを含む。他の例としては、HMD110のプロセッサは、観客212のユーザIDを表示し、観客212が追跡可能なFOV226を妨害しているというメッセージも表示する。さらに、通知は、観客212が追跡可能なFOV226を妨害しないように観客212に移動を求めるようにというユーザ102へのメッセージを含む。さらに他の例として、命令を受信すると、HMD110のプロセッサは、HMD110の音声メモリデバイスに記憶された予め録音された音声データにアクセスし、HMD110のデジタルアナログコンバータを制御して、予め録音された音声データをアナログ形式の電気信号に変換する。HMD110のプロセッサは、さらに、HMD110のスピーカシステムを制御して、電気信号を音声信号に変換し、ユーザIDを有する観客212が追跡可能なFOV226を妨害していることをユーザ102に示す音声を出力する。他の例としては、命令を受信すると、HMD110のプロセッサは、HMD110の音声メモリデバイスに記憶された予め録音された音声データにアクセスし、HMD110のデジタルアナログコンバータを制御して、予め録音された音声データを電気信号に変換する。HMD110のプロセッサは、さらに、HMD110のスピーカシステムを制御して、電気信号を音声信号に変換して、ユーザIDを有する観客212が追跡可能なFOV226を妨害していることをユーザ102に示す音声と、追跡可能なFOV226を妨害しないように観客212に移動を求める音声も出力する。動作520の後、動作502が繰り返される。
いくつかの実施形態においては、観客212は、自分が追跡可能なFOV226を妨害していることを、HMD110の音媒体を介して通知される。これらの実施形態において、図5Bの動作512と516との間に、または、動作516と520との間に、または、動作512と520との間に、または、動作520と502との間に、コンピューティングデバイス136のプロセッサは、HMD110の放音装置を介して通知を提供するように通信媒体112(図1A)を介してHMD110のプロセッサに命令を送信する。命令を受信すると、観客212が装着するHMDのプロセッサが、通知を提供する。例えば、命令を受信すると、HMD110のプロセッサは、HMD110の音声メモリデバイスに記憶された、及び/または、命令内で受信された音声情報にアクセスし、HMD110のデジタルアナログコンバータを制御して、音声情報をアナログ形式の電気信号に変換する。HMD110のプロセッサは、さらに、HMD110のスピーカシステムを制御して、電気信号を音声信号に変換し、観客212の音声を、スピーカシステムを介して出力する。音声は、観客212に追跡可能なFOV226を妨害しないようにということを示す音声要求に含められる。音声要求は、HMD110のプロセッサによって生成される。観客212は、音声要求に含められた音声によって、追跡可能なFOV226を妨害しないように移動するよう通知される。
幾つかの実施形態において、観客212は、自分が追跡可能なFOV226を妨害していることを、コンピューティングデバイス136に結合されたテレビまたはコンピュータモニタ等のディスプレイデバイスを介して通知される。例えば、図5Bの動作512と516との間に、または、動作516と520との間に、または、動作512と520との間に、または、動作520と502との間に、コンピューティングデバイス136のプロセッサは、ディスプレイデバイスのディスプレイ画面及び/またはディスプレイデバイスの1つまたは複数のオーディオスピーカ等のスピーカシステムを介して通知を提供するように、有線通信媒体または無線通信媒体等の通信媒体を介してコンピューティングデバイス136に結合されたディスプレイデバイスのプロセッサに命令を送信する。コンピューティングデバイス136をディスプレイデバイスに結合する有線通信媒体の例は、高精細マルチメディアインターフェース(HDMI(登録商標))ケーブルである。命令を受信すると、ディスプレイデバイスのプロセッサは、通知を表示する。説明すると、命令を受信すると、ディスプレイデバイスのプロセッサは、ディスプレイデバイスのディスプレイ画面に、観客212が追跡可能なFOV226を妨害していることを表示し、観客212に追跡可能なFOV226の外側に移動するように要求する。他の説明として、命令を受信すると、ディスプレイデバイスのプロセッサは、ディスプレイデバイスのディスプレイ画面に、観客212が追跡可能なFOV226を妨害していることを表示し、観客212に移動するように要求する。他の説明として、音声情報を含む命令を受信すると、ディスプレイデバイスのプロセッサは、ディスプレイデバイスのデジタルアナログコンバータを制御して、音声情報を電気信号に変換する。ディスプレイデバイスのプロセッサは、さらに、ディスプレイデバイスのスピーカシステムを制御して、電気信号を音声信号に変換し、ディスプレイデバイスのスピーカシステムを介して音声を出力する。音声は、観客212に追跡可能なFOV226を妨害しないようにということを示す音声要求に含められる。音声要求は、ディスプレイデバイスのプロセッサによって生成される。観客212は、追跡可能なFOV226を妨害しないように移動することを音声要求に含められた音声によって通知される。
様々な実施形態において、観客212も、頭部にHMDを装着しており、観客212は、観客212が追跡可能なFOV226を妨害していることを観客212が装着したHMDを介して通知される。例えば、図5Bの動作512と516との間に、または、動作516と520との間に、または、動作512と520との間に、または、動作520と502との間に、コンピューティングデバイス136のプロセッサは、観客212が装着したHMDを介して観客212に通知を提供するように、観客212が装着したHMDに結合された通信媒体を介して観客212が装着したHMDのプロセッサに命令を送信する。観客212が装着したHMDに結合される通信媒体は、通信媒体112(図1A)の構造及び機能と同じ構造及び機能である。命令を受信すると、観客212が装着したHMDのプロセッサは、観客212が装着したHMDに通知を表示する、及び/または、通知を示す音声を生成する。説明すると、通知は、観客212が追跡可能なFOV226を妨害しており、観客212は追跡可能なFOV226を妨害しないように移動すべきであるというメッセージとして、ディスプレイデバイスのディスプレイ画面に表示される。他の説明として、通知は、観客212が追跡可能なFOV226を妨害している結果、ユーザ102がプレイしているビデオゲームの表示の品質係数が低下しており、観客212は追跡可能なFOV226を妨害しないように移動すべきであるというメッセージとして、ディスプレイデバイスのディスプレイ画面に表示される。他の説明として、音声情報を含む命令を受信すると、観客212が装着したHMDのプロセッサは、観客212が装着したHMDのデジタルアナログコンバータを制御して、音声情報を電気信号に変換する。観客212が装着したHMDのプロセッサは、さらに、観客212が装着したHMDのスピーカシステムを制御して、電気信号を音声信号に変換し、観客212が装着したHMDの1つまたは複数のオーディオスピーカ等のスピーカシステムを介して音声を出力する。音声は、観客212に追跡可能なFOV226を妨害しないように示す音声要求に含められる。音声要求は、観客212が装着したHMDのプロセッサによって生成される。観客212は、追跡可能なFOV226を妨害しないように移動することを要求に含められた音声によって通知される。
いくつかの実施形態においては、方法500は、コンピューティングデバイス136のプロセッサの代わりに、または、それに加えて、クラウドコンピューティングネットワークの1つまたは複数のプロセッサによって実行される。クラウドコンピューティングネットワークの1つまたは複数のプロセッサは、HMD110(図1A)、HMD132(図1B)、または、HMD152(図1C)にルータを介して結合される。
図5A〜図5Cの実施形態の一部は、HMDに関して記載したが、実施形態は、本明細書に記載のハンドヘルドコントローラにも等しく適用されることに注意すべきである。
図6Aは、例えば、HMD110(図1A)またはHMD132(図1B)またはHMD152(図1C)等、HMDの1つまたは複数の画面に表示される通知602の実施形態の図である。通知602は、観客212の顔の画像603を有し、例えば、カメラ104(図1A)またはプロジェクタ138A、138B(図1B)またはカメラ202(図2A)等、追跡装置の、例えば、追跡可能なFOV226等の追跡可能なFOVの前を観客212が歩いており、追跡に影響を及ぼし得ることをユーザ102に示す。
図6Bは、例えば、HMD110(図1A)またはHMD132(図1B)またはHMD152(図1C)等、HMDの1つまたは複数の画面に表示される他の通知604の実施形態の図である。通知604は、観客212の顔の画像603を有し、観客212が追跡装置の追跡可能なFOVの前を歩いていることをユーザ102に示す。さらに、通知604は、通知の一部である画像603から観客212を特定するようにというユーザ102への要求を含む。
図6Cは、例えば、HMD110(図1A)またはHMD132(図1B)またはHMD152(図1C)等、HMDの1つまたは複数の画面に表示される通知606の実施形態の図である。通知606は、観客212の顔の画像603と、追跡装置の追跡可能なFOVを妨害している他の観客の顔の他の画像607とを有する。通知は、観客212と他の観客とが追跡装置の追跡可能なFOVの前を移動しており、その動きが、追跡装置の、例えば、焦点、品質等の追跡の忠実度を低下させ得ることをユーザ102に示す。
図6Dは、例えば、HMD110(図1A)またはHMD132(図1B)またはHMD152(図1C)等、HMDの1つまたは複数の画面に表示される他の通知608の実施形態の図である。通知608は、観客212の顔の画像603と、他の観客の顔の画像607とを有し、観客212と他の観客とが追跡装置の追跡可能なFOVの前を移動しており、その動きが、追跡の忠実度を低下させ得ることをユーザ102に示す。さらに、通知は、画像603から観客212を特定し、且つ、画像607から他の観客を特定するようにというユーザ102への要求を含む。観客の画像603及び607は、通知の一部である。
図6Eは、例えば、HMD110(図1A)またはHMD132(図1B)またはHMD152(図1C)等、HMDの1つまたは複数の画面に表示される通知610の実施形態の図である。通知610は、例えば、観客212の名前「ジョン」等のユーザIDを有し、観客212が追跡装置の追跡可能なFOVを妨害していることをユーザ102に示す。通知610は、追跡装置の追跡可能なFOVを妨害しないようにジョンに移動することを依頼するようにというユーザ102へのメッセージを含む。
図6Fは、例えば、HMD110(図1A)またはHMD132(図1B)またはHMD152(図1C)等、HMDの1つまたは複数の画面に表示される通知612の実施形態の図である。通知612は、例えば、観客212の名前「ボブ」等のユーザIDを有し、観客212がユーザ102の前にいることをユーザ102に示す。通知612は、さらに、追跡装置の追跡に影響を及ぼし得ることをユーザ102に示す。通知612は、HMDのプロセッサがボブに追跡装置の追跡可能なFOVを妨害しないように移動することを依頼するのを許可するユーザ102へのメッセージをさらに含む。通信媒体116(図1A)を介してハンドヘルドコントローラ108のボタンの指示選択を受信すると、コンピューティングデバイス136のプロセッサは、通信媒体112(図1A)を介してHMD110のプロセッサに命令を送信する。命令を受信すると、HMD110のプロセッサは、追跡装置の追跡可能なFOVを妨害しないように移動することをボブに要求する音声を発するように放音装置に命令する。
図6Gは、HMD110の1つまたは複数のディスプレイ画面に表示される画像350の実施形態の図である。画像350は、通知630を含む。通知630は、追跡装置の追跡可能なFOVが観客212によって妨害されて追跡の品質が低下していることを示す。通知630は、ビデオゲームの画像350内に埋め込まれる。
図7は、HMD110の1つまたは複数のディスプレイ画面に表示される画像の実施形態の図である。画像700は、ユーザ102によるビデオゲームのプレイのタイムライン702と、例えば、妨害線等の妨害インジケータ704とを含む。タイムライン702は、時点t1、t2、t3、t4、t5、t6、t7、t8、t9、及び、t10を時系列でプロットする。さらに、タイムライン702に沿って、例えば、観客212もしくは他の観客、または、観客212と他の観客の両方等、一人または複数の観客による妨害を示す妨害インジケータ704がプロットされる。例えば、時点t2では、観客212と他の観客の両方が、追跡可能なFOV226内のHMD110及び/またはハンドヘルドコントローラ108を妨害している。他の例としては、時点t4とt5との間に、観客212が追跡可能なFOV226内のHMD110及び/またはハンドヘルドコントローラ108を妨害している。さらに他の例として、時点t8とt9との間に、他の観客が、追跡可能なFOV226内のHMD110及び/またはハンドヘルドコントローラ108を妨害している。
画像700は、HMD110のプロセッサによってレンダリングされ、HMD110の1つまたは複数のディスプレイ画面に表示される。コンピューティングデバイス136のプロセッサは、観客212もしくは他の観客、または、観客212と他の観客の両方が、追跡可能なFOV226内のHMD110及び/またはハンドヘルドコントローラ108を妨害しているかどうかを判断し、両方の観客のユーザIDを判断する。さらに、ある時点で、観客が追跡可能なFOV226内のHMD110及び/またはハンドヘルドコントローラ108を妨害していると判断され、その時点が、コンピューティングデバイス136のメモリデバイスのプロセッサによって記録される。例として、時点は、例えば、インターネット、または、イントラネット、または、ローカルエリアネットワーク、または、広域ネットワーク、または、それらの組み合わせ等、または、クラウドコンピューティングネットワーク等、コンピュータネットワークからコンピューティングデバイス136のプロセッサによって取得される。例えば、コンピューティングデバイス136のプロセッサは、コンピューティングデバイス136のオペレーティングシステムのクロックをネットワークタイムプロトコル(NTP)サーバのクロックと同期し、ネットワークタイムプロトコル(NTP)サーバは、コンピューティングデバイス136のプロセッサによってコンピュータネットワークを介してアクセスされる。コンピューティングデバイス136のプロセッサは、タイムライン702のタイムラインデータと、妨害インジケータ704のデータとを含む画像700の画像データを生成する。例えば、妨害インジケータ704は、例えば、のこぎり波等の複数の波を含み、複数の波は、例えば、観客が追跡装置の追跡可能なFOVを妨害しているとコンピューティングデバイス136のプロセッサが判断する時等、妨害時の観客による妨害を示す。さらに、コンピューティングデバイス136のプロセッサによって生成される画像データは、追跡装置の追跡可能なFOVを妨害している観客のユーザIDを妨害インジケータ704に沿って示すユーザIDデータを含む。
コンピューティングデバイス136のプロセッサは、画像700の画像データを、通信媒体112(図1A)を介してHMD110のプロセッサに送信する。HMD110のプロセッサは、ユーザ102が見るHMD110の1つまたは複数のディスプレイ画面に画像700を生成するために画像データをレンダリングする。
いくつかの実施形態においては、ビデオゲームのゲームプレイ中、追跡装置の追跡可能なFOV226の、例えば、HMD110及び/またはハンドヘルドコントローラ108等の追跡可能なFOVが妨害されたと判断すると、コンピューティングデバイス136のプロセッサは、ユーザ102のユーザアカウントに追加のクレジットを与えることを決定する。例えば、マルチプレイヤゲームにおいて、コンピューティングデバイス136のプロセッサが、ユーザ102は追跡可能なFOVを妨害されたが、例えば、ビデオゲームの他のプレイヤ等の他のユーザは、追跡可能なFOVを妨害されていないと判断する。そう判断すると、コンピューティングデバイス136のプロセッサは、他のユーザと比較して、例えば、追加のゲームポイント、追加のプレイ時間等、追加のクレジットをユーザ102に与える。説明すると、例えば、ユーザ102と他のユーザ等、両方のユーザが、ビデオゲームのプレイにx時間割り当てられている時、ユーザ102が装着しているHMD900の動きを追跡している追跡装置の追跡可能なFOVが妨害され、他のユーザが装着しているHMD900の動きを追跡している他の追跡装置の他の追跡可能なFOVは妨害されていないと判断すると、コンピューティングデバイス136のプロセッサは、ビデオゲームをプレイするために、ユーザ102にx+y時間割り当て、他のユーザにはx時間割り当てる。
図8Aは、ビデオゲームの連続画像が、例えば、HMD110(図1A)またはHMD132(図1B)または、HMD152(図1C)等、HMDの1つまたは複数のディスプレイ画面に表示されるフレームレートの変化を示すグラフ800の実施形態である。グラフ800は、時点tに対して、フレーム毎秒(FPS)で測定されるフレームレートをプロットする。グラフ800は、プロット802を有する。プロット802は、観客212がユーザ102の近くで追跡装置の追跡可能なFOV内を歩いているが追跡可能なFOVを妨害していない時点から、観客212が追跡可能なFOVを妨害している時点、さらに、観客212がもはや追跡可能なFOVを妨害していない時点までのフレームレートをプロットする。観客212が追跡可能なFOVを妨害せずに追跡可能なFOV内にいる時間中、フレームレートは、例えば、30フレーム毎秒、60フレーム毎秒等、通常のフレームレートである。例えば、時点txまで、HMD110のプロセッサは、HMD110の1つまたは複数のディスプレイ画面に通常のフレームレートでビデオゲームの画像を表示する。追跡可能なFOVの妨害が無い時、ビデオゲームの状態は、カメラ104(図1A)がキャプチャしたHMD110とハンドヘルドコントローラ108との画像に基づいて、コンピューティングデバイス136のプロセッサによって生成される。状態は、HMD110の動きに基づいて、または、ハンドヘルドコントローラ108の動きに基づいて、または、それらの組み合わせに基づいて、生成される。例えば、ビデオゲームの画像の画角は、HMD110がユーザ102によって動かされると、変化する。ビデオゲームの状態を実施するビデオゲームデータは、コンピューティングデバイス136のプロセッサから通信媒体112を介してHMD110のプロセッサに送信される。ビデオゲームデータの例には、ビデオゲームの仮想物体の色、テクスチャ、及び、陰影と、ビデオゲームの背景の色、テクスチャ、及び、陰影等が含まれる。HMD110のプロセッサは、ビデオゲームデータをレンダリングして、HMD110の1つまたは複数のディスプレイ画面に通常のフレームレートでビデオゲームの画像を表示する。
他方、追跡可能なFOVが、例えば、時点txと時点tyとの間等、ある時間、観客212によって妨害される時、ビデオゲームの状態は、HMD110の動きに基づいて、ハンドヘルドコントローラ108の動きに基づいて、または、それらの組み合わせに基づいて、コンピューティングデバイス136のプロセッサによって低速で生成される。低速は、通常のフレームレートを達成する状態の生成速度よりも低い。追跡可能なFOVが観客212によって妨害されると、HMD110の少なくとも一部分、及び/または、ハンドヘルドコントローラ108の少なくとも一部分が、追跡装置に検出されない。例えば、カメラ104は、HMD110及び/またはハンドヘルドコントローラ108に焦点を合わせることができない。他の例としては、カメラ104は、HMD110のマーカ412A〜412Eの少なくとも1つに焦点を合わせることができない。さらに他の例として、カメラ104は、マーカ412A〜412Eの少なくとも1つの画像をキャプチャできない。さらに他の例として、カメラ104は、ハンドヘルドコントローラ108のマーカ426A及び426Bの少なくとも1つの画像をキャプチャできない。ゲーム状態が低速で生成される時、コンピューティングデバイス136のプロセッサは、通信媒体112を介してビデオゲームデータをHMD110のプロセッサに転送する。HMD110のプロセッサは、ビデオゲームデータを受信し、例えば、5フレーム毎秒等、通常のフレームレートより低いフレームレートで画像を生成する。このような低いフレームレートの結果、ビデオゲームをプレイしている間、ユーザ102によるビデオゲーム体験が最適にはならない。いくつかの実施形態においては、状態が生成されるフレームレートまたは速度は、品質係数の一例である。様々な実施形態において、HMD110及び/またはハンドヘルドコントローラ108の位置及び向きを決定する速度は、品質係数の一例である。
図8Bは、観客212が妨害した結果、シーン850におけるジャンプを示すHMD110を介して見えるシーン850の実施形態の図である。HMD110が位置Aにある時、シーン850の部分852がユーザ102に対してHMD110に表示される。HMD110が位置Aから位置Bに動き、位置C、さらに、位置Dに移りながら、追跡可能なFOVが観客212によって妨害されると、シーン850の部分854が、HMD110に表示される。部分854は、部分852が表示された直後に、表示される。これは、妨害の結果、部分856の表示に対応するHMD110の位置及び向きが決定できないからである。追跡可能なFOVが観客212によって妨害されていない時、シーン850の部分856が、部分852が表示された後にHMD110に表示され、部分856が表示された後、部分854がHMD110に表示される。観客212が追跡可能なFOVを妨害すると、部分852から部分854にジャンプする。品質係数の他の例は、本明細書に記載のように、シーン850の部分の表示の順序である。シーン850の2つの部分の間のシーン850の部分の1つが、HMD110に表示されない時、品質係数が低下する。
ユーザ102は、シーン850に没入し、品質係数の変化の理由が分からない。ユーザ102は、没入すると、現実世界で何が起こっているか分からない。コンピューティングデバイス136のプロセッサは、品質係数の変化は観客212の妨害の結果であることを識別し、ユーザ102にその事を通知する。
図9は、HMD110(図1A)またはHMD132(図1B)または、HMD152(図1C)の例であるHMD900の実施形態の図である。HMD900は、プロセッサ902、ディスプレイ画面904、画像メモリデバイス906、録音装置908、放音装置910、インタフェース912、超音波エミッタ930、及び、超音波検出器932を含む。本明細書で使用される場合、プロセッサは、中央処理装置、または、マイクロプロセッサ、または、マイクロコントローラ、または、特定用途向け集積回路(ASIC)、または、プログラム可能論理デバイス(PLD)である。さらに、本明細書で使用する場合、メモリデバイスは、リードオンリメモリ(ROM)、または、ランダムアクセスメモリ(RAM)、または、RAM及びROMの両方を含むデバイスである。メモリデバイスの例には、フラッシュメモリ、独立冗長ディスクアレイ(RAID:redundant array of independent disks)、ハードディスク等が含まれる。本明細書で使用される場合、ディスプレイ画面の例には、液晶ディスプレイ(LCD)画面、発光ダイオード(LED)ディスプレイ画面、プラズマディスプレイ画面等が含まれる。本明細書で使用される場合、インタフェースの例には、データのパラレル転送のためのパラレルインタフェース、ユニバーサルシリアルバス(USB)インタフェース、無線媒体を介した通信のための、例えば、Bluetooth(商標)、Wi−Fi(商標)、RF等、無線伝送プロトロコルを実施する回路等が含まれる。録音装置908は、マイクロフォン914、アナログデジタルコンバータ916、フィルタ918、及び、音声メモリデバイス920を含む。さらに、放音装置910は、音声メモリデバイス920及びスピーカシステム922を含み、スピーカシステム922は、1つまたは複数のスピーカを含む。
プロセッサ902は、画像メモリデバイス906に記憶された画像データにアクセスし、画像データをレンダリングして、例えば、ビデオゲームの画像、通知の画像、ビデオゲームの画像に含められた通知の画像等、画像をディスプレイ画面904に表示する。画像データは、ビデオゲームまたは通知の画像データである。画像データは、コンピューティングデバイス136のプロセッサから通信媒体112(図1A)及びインタフェース912を介して受信される。
さらに、プロセッサ902は、例えば、イネーブル信号等の信号をマイクロフォン914に送信して、マイクロフォン914を有効にして、観客212の音声を集めて、その音声を電気信号に変換する。電気信号は、次に、アナログデジタルコンバータ916によってアナログ形式からデジタル形式に変換されてデータを生成する。データは、フィルタ912によってフィルタリングされて、データからノイズを除去して、フィルタリングされたデータを生成する。フィルタリングされたデータは、音声メモリデバイス920に記憶される。いくつかの実施形態においては、プロセッサ902は、音声メモリデバイス920からフィルタリングされたデータにアクセスし、コンピューティングデバイス136のメモリデバイスに予め記憶された音声データとフィルタリングされたデータとを比較するために、インタフェース912を介してフィルタリングされたデータをコンピューティングデバイス136のプロセッサに送信する。
プロセッサ902は、音声データをコンピューティングデバイス136のプロセッサから通信媒体112及びインタフェース912を介して受信し、その音声データを音声メモリデバイス920に記憶する。コンピューティングデバイス136のプロセッサから受信される音声データの例には、追跡可能なFOVが妨害しないように移動するようにという観客212への通知が含まれる。
プロセッサ920は、フィルタリングされたデータ、及び/または、音声メモリデバイス920に記憶された音声データにアクセスして、フィルタリングされたデータ及び/または音声データをデジタルアナログコンバータ924に提供する。デジタルアナログコンバータ924は、フィルタリングされたデータ及び/または音声データをデジタル形式からアナログ形式に変換して電気信号を生成する。スピーカシステム922は、電気信号を音声に変換し、その音声を現実世界環境220(図2B)に出力する。
プロセッサ920は、信号を超音波エミッタ930に送信する。信号を受信すると、超音波エミッタ930は、本明細書に記載の現実世界環境に超音波を放射する。現実世界環境から反射した超音波は、超音波検出器932によって検出されて電気信号を生成する。電気信号は、アナログ形式からデジタル形式に変換された後、超音波検出器932からプロセッサ902に送信される。プロセッサ902は、デジタル形式にされた電気信号であるデータを受信し、そのデータを、本明細書に記載の現実世界環境の、例えば、HMD110、観客212、ハンドヘルドコントローラ108等、現実世界の物体と追跡装置との間の距離を決定するために、インタフェース912を介してコンピューティングデバイス136のプロセッサに送信する。
いくつかの実施形態においては、プロセッサ902の代わりに、任意の他の数のプロセッサを使用して、プロセッサ902によって行われる本明細書に記載の機能を実行する。
様々な実施形態において、録音装置908は、フィルタ918を含まず、アナログデジタルコンバータ916は、音声メモリデバイス920に接続される。
図10は、カメラ104(図1A)、または、HMD152(図2A)のカメラ202(図2A)の例であるカメラ1000の実施形態の図である。カメラ1000は、プロセッサ1002、露出制御機構1004、インタフェース1006、メモリデバイス1022、及び、光検出器システム1030を含み、光検出器システム1030は、本明細書に記載の現実世界環境から反射される光を検出する複数の光センサを含む。露出制御機構1004は、露出装置1008、モータ1010、駆動機構1012、開口駆動部1014、及び、シャッタ駆動部1016を含む。開口駆動部1014の例には、1つまたは複数のトランジスタが含まれる。シャッタ駆動部1016の例には、1つまたは複数のトランジスタが含まれる。さらに、モータ1010の例には、ステッピングモータが含まれる。駆動機構1012の例には、コイルが含まれる。露出装置1008は、開口絞り1018及びシャッタ絞り1020を含む。
プロセッサ1002は、カメラ1000の、例えば、開口絞り1018間に形成される開口部の大きさの増加、開口部の大きさの減少、シャッタ絞り1020の開閉速度の増加、速度の減少等、露出を変更するように、コンピューティングデバイス136のプロセッサからインタフェース1006を介して命令を受信する。プロセッサ1002は、命令を受信すると、開口駆動部1014に信号を送信する。開口駆動部1014は、信号を受信すると、電流信号を生成し、モータ1010に送信する。モータ1010は、電流信号を受信すると、回転して、開口絞り1018の開口の直径を変えて、カメラ1000の焦点深度をさらに変更する。例えば、より小さい直径を有する開口等、開口を狭くするには、焦点深度は、例えば、より大きい直径を有する開口等、広い開口に比べて、より大きくなる。さらに、命令を受信すると、プロセッサ1002は、他の信号を生成し、その信号をシャッタ駆動部1016に送信する。他の信号を受信すると、シャッタ駆動部1016は、ある量の電流信号を生成し、その電流信号を駆動機構1012に送信する。駆動機構1012は、電流信号を受信すると、ある量の電磁場を生成して、シャッタ絞りをある速度で開閉して、カメラ1000の光検出器システム1030によって検出される光の量を制御する。
さらに、光検出器システム1030がキャプチャした画像はいずれも、プロセッサ1002によってメモリデバイス1002に記憶される。画像は、プロセッサ1002によってメモリデバイス1002からアクセスされ、インタフェース1006を介してコンピューティングデバイス136のプロセッサに送信される。
図11は、コンピューティングデバイス136の実施形態の図である。コンピューティングデバイス136は、プロセッサ1102、メモリデバイス1104、インタフェース1106、インタフェース1108、及び、インタフェース1110を含む。プロセッサ1102及びメモリデバイス1104の様々な機能をここに記載する。さらに、プロセッサ1102は、カメラ1000(図10)のプロセッサ1002とインタフェース1106を介して通信する。プロセッサ1102は、HMD900のプロセッサ902とインタフェース1108を介して通信し、プロセッサ1102は、例えば、ハンドヘルドコントローラ108(図1A)、ハンドヘルドコントローラ134(図1B)、または、ハンドヘルドコントローラ154(図1C)等のハンドヘルドコントローラとインタフェース1110を介して通信する。
図12は、HMD110(図1A)またはHMD152(図1C)の例であるHMD1200の等角図である。HMD1200は、ユーザ102が装着する時、ユーザの頭部の後ろにくるバンド1202、1204を含む。さらに、HMD1200は、例えば、スピーカ等のイヤホン1206A、1206Bを含み、イヤホン1206A、1206Bは、例えば、ビデオゲームのゲームコード、ゲームプログラム、仮想環境生成プログラム等のコンピュータプログラムの実行によって生成される、例えば、ゲーム環境、仮想ツアー環境等の仮想環境に関連付けられた音を出す。HMD1200は、HMD1200のディスプレイ画面に表示される仮想環境をユーザが見るのを可能にするレンズ1208A、1208Bを含む。溝1280は、ユーザ102の鼻に載って鼻でHMD1200を支持する。
いくつかの実施形態においては、HMD1200は、ユーザ102がサングラス、眼鏡、または、老眼鏡を装着するのと同じように、ユーザ102によって装着される。
図13は、本開示に記載の実施形態による、ビデオゲームのインタラクティブゲームプレイのシステムを示す。HMD900を装着しているユーザ102が示される。HMD900は、眼鏡、ゴーグル、または、ヘルメットと同じように装着され、ビデオゲームまたは他のコンテンツをユーザ102に表示するように構成される。HMD900は、ユーザ102の目のすぐ近くの表示機構(例えば、光学素子及びディスプレイ画面)とHMD900に配信されるコンテンツのフォーマットとによって、ユーザ102に没入型体験を提供する。一例において、HMD900は、ユーザ102の各目に対して表示領域を提供し、表示領域は、ユーザ102の視野の大部分または全体を占めることもある。
一実施形態においては、HMD900は、コンピューティングデバイス136に接続される。コンピューティングデバイス136への接続は、有線または無線である。コンピューティングデバイス136は、一実施形態においては、ゲームコンソール、パーソナルコンピュータ、ラップトップ、タブレット、モバイルデバイス、スマートフォン、タブレット、シンクライアント、セットトップボックス、メディアストリーミングデバイス、スマートテレビ等を含むが、これらに限らない任意の一般的または専用コンピュータである。いくつかの実施形態においては、HMD900は、例えば、インターネット、イントラネット、ローカルエリアネットワーク、広域ネットワーク等、コンピュータネットワーク1310に直接、接続し、これは、個別のローカルコンピュータを必要とすること無く、クラウドゲーミングを可能にする。一実施形態においては、コンピューティングデバイス136は、ビデオゲーム(及び、他のデジタルコンテンツ)を実行し、HMD900によるレンダリングのために、ビデオゲームからビデオ及び音声を出力する。コンピューティングデバイス136は、本明細書ではクライアントシステムと呼ぶこともあり、これは、一例においては、ビデオゲームコンソールである。
コンピューティングデバイス136は、いくつかの実施形態においては、ローカルまたはリモートのコンピュータであり、コンピュータは、エミュレーションソフトウェアを実行する。クラウドゲーミングの実施形態において、コンピューティングデバイス136は、リモートであり、データセンタで仮想化される複数のコンピューティングサービスによって表され、データセンタでは、ゲームシステム/論理が、仮想化されて、コンピュータネットワーク1310を通してユーザ102に配信される。
ユーザ102は、ハンドヘルドコントローラ108を操作して、仮想環境への入力を行う。一例において、ハンドヘルドコントローラ108は、例えば、ユーザ102がいる現実世界環境等、環境の画像をキャプチャする。これらのキャプチャされた画像を分析して、ユーザ102、HMD900、及び、ハンドヘルドコントローラ108の位置と動きを決定する。一実施形態においては、ハンドヘルドコントローラ108は、ライト(単数または複数)を含み、ライトを追跡して、ハンドヘルドコントローラ108の位置及び向きを決定する。さらに、以下により詳細に記述するように、一実施形態においては、HMD900は、1つまたは複数のライトを含み、そのライトをマーカとして追跡して、仮想環境の表示中、ほぼリアルタイムで、HMD900の位置及び向きを決定する。
ハンドヘルドコントローラ108は、一実施形態においては、現実世界環境からの音をキャプチャする1つまたは複数のマイクロフォンを含む。マイクロフォンアレイがキャプチャした音を処理して、音源の位置を特定する。特定された位置からの音が、選択的に利用または処理されて、特定された位置からではない他の音を除外する。さらに、一実施形態においては、ハンドヘルドコントローラ108またはHMD900は、複数の撮像装置(例えば、立体視カメラ)、赤外線(IR)カメラ、デプスカメラ、及び、これらの組み合わせを含む。
いくつかの実施形態においては、コンピューティングデバイス136は、コンピューティングデバイス136の処理ハードウェアでローカルにゲームを実行する。ゲームまたはコンテンツは、物理的媒体の形態等の任意の形態(例えば、デジタルディスク、テープ、カード、サムドライブ、ソリッドステートチップまたはカード等)で、または、コンピュータネットワーク1310からダウンロードして取得される。
いくつかの実施形態においては、コンピューティングデバイス136は、クラウドゲーミングプロバイダ1312とコンピュータネットワーク1310を介して通信するクライアントとして機能する。クラウドゲーミングプロバイダ1312は、ユーザ102がプレイしているビデオゲームを維持、実行する。コンピューティングデバイス136は、HMD900及びハンドヘルドコントローラ108からクラウドゲーミングプロバイダ1312に入力を送信し、クラウドゲーミングプロバイダ1312は、入力を処理して、実行しているビデオゲームのゲーム状態に影響を与える。ビデオデータ、音声データ、及び、触覚フィードバックデータ等の実行しているビデオゲームからの出力は、コンピューティングデバイス136に送信される。コンピューティングデバイス136は、さらに、送信前にデータを処理する、または、関連する装置にデータを直接送信する。例えば、ビデオストリーム及び音声ストリームは、HMD900に提供され、振動フィードバックコマンドが、ハンドヘルドコントローラ108に提供される。
一実施形態においては、HMD900及びハンドヘルドコントローラ108は、コンピュータネットワーク1310に接続して、クラウドゲーミングプロバイダ1312と通信するネットワーク化されたデバイスである。例えば、コンピューティングデバイス136は、ビデオゲーム処理を行わずネットワークトラフィックの通過を促進するルータ等のローカルネットワークデバイスである。HMD900及びハンドヘルドコントローラ108のコンピュータネットワーク1310への接続は、有線または無線である。
いくつかの実施形態においては、HMD900で実行されるコンテンツ、または、ディスプレイデバイス1314に表示可能なコンテンツは、コンテンツソース1316のいずれかから取得される。コンテンツソースの例は、例えば、ダウンロード可能なコンテンツ及び/またはストリーミングコンテンツを提供するインターネットのウェブサイトを含んでよい。ある例においては、コンテンツは、映画、ゲーム、静的/動的コンテンツ、写真、ソーシャルメディアコンテンツ、ソーシャルメディアウェブサイト、仮想ツアーコンテンツ、漫画コンテンツ等、任意の種類のマルチメディアコンテンツを含んでよい。
一実施形態においては、ユーザ102は、HMD900でビデオゲームをプレイしており、このようなコンテンツは、没入型の三次元(3D)インタラクティブコンテンツである。HMD900上のコンテンツは、ユーザ102がプレイしている間、ディスプレイデバイス1314に共有される。一実施形態においては、ディスプレイデバイス1314に共有されるコンテンツは、ユーザ102の近くで、または、リモートで、他のユーザが、ユーザ102のゲームプレイを同時に見るのを可能にする。さらに別の実施形態においては、ディスプレイデバイス1314でユーザ102のゲームプレイを見ている他のユーザは、ユーザ102とインタラクティブに参加する。例えば、ディスプレイデバイス1314でゲームプレイを見ている他のユーザは、ゲームシーンのキャラクタを制御し、フィードバックを行い、交流を行い、及び/または、(テキスト、音声、アクション、ジェスチャによって等)コメントを提供し、これによって、HMD900を装着していない他のユーザがユーザ102と交流することが可能になる。
図14は、本開示に記載の実施形態による、HMD1400を示す。HMD1400は、HMD132(図1B)の例である。図に示すように、HMD1400は、複数の光センサ1402A〜H、J及びKを含む(例えば、ここで、1402K及び1402Jは、HMDヘッドバンドの後部または後ろ側を向いて位置している)。これらの光センサの各々は、特定の形及び/または位置を有するように構成される。光センサ1402A、1402B、1402C、及び、1402Dは、HMD1400の、例えば、前側等、前面に配置される。光センサ1402E及び1402Fは、HMD1400の側面に配置される。また、光センサ1402G及び1402Hは、HMD900の前面と側面にわたるように、HMD1400の角に配置される。
光センサ1402A〜H、J、及び、Kの1つまたは複数によって検出されるレーザビームの1つまたは複数に基づいて、現実世界環境のHMD1400の位置が決定される。光センサの一部は、プロジェクタ138Aと138B(図1B)のうちの1つに対するHMD1400の特定の向きによって、ビームを検出できないことをさらに理解されよう。いくつかの実施形態においては、慣性センサが、HMD1400に配置され、光センサ1302A〜H、J、及び、Kの代わりに位置に関するフィードバックを提供する。いくつかの実施形態においては、光センサ1302A〜H、J、及び、Kと慣性センサとは、協働して、位置/動作データの混合と選択とを可能にする。
HMD1400は、一実施形態においては、1つまたは複数のマイクロフォンをさらに含む。図示の実施形態のおいては、HMD1400は、HMD1400の前面に位置するマイクロフォン1404A及び1404Bと、HMD1400の側面に位置するマイクロフォンとを含む。マイクロフォンアレイを利用することによって、各マイクロフォンからの音を処理して、音源の位置を決定する。この情報は、不要な音源の除外、音源と視覚的特定との関連付け等を含む、様々な方法で利用される。
いくつかの実施形態においては、HMD1400は、1つまたは複数の撮像装置を含む。図示の実施形態において、HMD1400は、撮像装置1406A及び1406Bを含むことが示されている。いくつかの実施形態においては、立体視撮像装置を利用することによって、現実世界環境の3D画像及びビデオが、HMD1400の視点からキャプチャされる。このようなビデオが、ユーザ102に提示されて、HMD1400を装着するユーザ102に、「ビデオシースルー」能力を提供する。すなわち、ユーザ102は、厳密な意味でHDM1400を透かして見ることはできないが、にもかかわらず、撮像装置1406A及び1406Bによってキャプチャされたビデオは、HMD1400の外部の現実世界環境を、まるでHMD1400を透かして見ているのと機能的に同じものを提供する。
このようなビデオは、一実施形態においては、仮想要素で拡張されて、拡張現実体験を提供する、または、他の様式で、仮想要素と混合、または、融合される。図示の実施形態においては、2つのカメラを、HMD1400の前面に示しているが、外部を向いている任意の数のカメラがあってよい、または、1つのカメラをHMD1400に設置して、任意の方向に向けてよいことは理解されよう。例えば、他の実施形態においては、環境の追加のパノラマ画像をキャプチャするためにHMD1400の側面に取り付けられたカメラがあってよい。
図15は、ユーザ102が操作するHMD900にビデオゲームコンテンツをレンダリングできるクライアントシステム1502を用いたゲームプレイの一例を示す。この例においては、HMD900に提供される、例えば、ゲームコンテンツ等の仮想物体の状態は、リッチ・インタラクティブ3D空間にある。上記のように、仮想物体の状態が、クライアントシステム1502にダウンロードされる、または、一実施形態においては、クラウド処理システムによって実行される。クラウドゲーミングサービス1532は、ユーザのユーザアカウントのデータサービス1504を含み、ユーザは、特定のゲーム1530へのアクセス、他の友達との体験の共有、コメントの投稿、及び、自分のアカウント情報の管理を許可される。
クラウドゲーミングサービス1532は、特定のユーザアカウントのためのゲームデータ1506を記憶し、ユーザアカウントは、ゲームプレイ中、将来のゲームプレイ中、ソーシャルメディアネットワークへの共有中に使用可能であってよく、または、トロフィ、賞、ステータス、ランキング等の記憶に使用されてよい。ソーシャルデータ1508は、クラウドゲーミングサービス1532によって管理される。一実施形態において、ソーシャルデータ1508は、別個のソーシャルメディアネットワークによって管理され、ソーシャルメディアネットワークは、コンピュータネットワーク1310を通してクラウドゲーミングサービス1532とインタフェースされる。コンピュータネットワーク1310を介して、任意の数のクライアントシステム1510が、コンテンツへのアクセスと他のユーザとのインタラクションとのために接続される。
引き続き、図15の例に関して、HMD900で見られる3Dインタラクティブシーンは、3Dビューで示されるキャラクタ等のゲームプレイ、または、他の仮想環境を含む。例えば、P1等の一つのキャラクタが、HMD900を装着しているユーザ102によって制御される。この例は、二人のプレイヤ間のバスケットボールシーンを示す、ユーザ102は、3Dビューで、他のキャラクタに対してボールをダンクシュートしている。他のキャラクタは、ゲームのAI(人工知能)キャラクタであってよい、または、他のプレイヤ(Pn)(複数可)によって制御されてよい。HMD900を装着しているユーザ102は、使用している空間を動いているのが示されており、HMD900は、ユーザ102の頭部の動き及び体の位置に基づいて動く。カメラ104は室内のディスプレイデバイス1514の上に位置するとして示されているが、HMD900を使用するために、カメラ104はHMD900の画像をキャプチャできる任意の場所に置かれる。従って、HMD900にレンダリングされるコンテンツは、カメラ104の視点からHMD900が位置する方向に依存するので、ユーザ102は、カメラ104及びディスプレイデバイス1514から約90度回転されて示される。言うまでもなく、HMD900を使用中、ユーザ102は、HMD900によってレンダリングされる動的な仮想シーンを利用するために必要に応じて、動き、頭部を回転させ、様々な方向を見ている。
図16を参照すると、本開示に記載の実施形態による、HMD1600の構成要素の例の図が示されている。HMD1600は、図1Aに示すHMD110、または、図1BのHMD132、または、図1CのHMD152の例である。有効にされる構成及び機能に応じて、より多くのまたはより少ない構成要素が含まれてよい、または、HMD1600から除外されてよいことは理解すべきである。HMD1600は、HMD1600のプロセッサが実行しているように本明細書に記載のプログラム命令を実行するためのプロセッサ1602を含む。HMD1600のメモリデバイス1604が、記憶のために提供され、一実施形態においては、揮発性メモリと不揮発性メモリの両方を含む。ディスプレイ1606が、ユーザ102が見る視覚インタフェースを提供するためにHMD1600内に含まれる。
ディスプレイ1606は、1つの単一のディスプレイ画面によって、または、ユーザ102の片目ごとに別々のディスプレイ画面の形態で規定される。2つのディスプレイ画面が備えられる時、左目用と右目用のビデオコンテンツを別々に提供することが可能である。片目ごとにビデオコンテンツを別々に提示することは、例えば、3Dコンテンツのより優れた没入型制御を提供する。本明細書に記載するように、一実施形態においては、第2画面は、一方の目のための出力を使用することによって、HMD1600の第2画面コンテンツを提供され、次に、2次元(2D)形式で表示するために、コンテンツをフォーマットする。一方の目は、一実施形態においては、左目用ビデオフィードであるが、他の実施形態においては、右目用ビデオフィードである。
電池1608はHMD1600の電源として備えられる。他の実施形態においては、電源は電力に対するコンセント接続を含む。他の実施形態においては、電力へのコンセント接続と電池1608とが備えられる。動作検出モジュール1610は、磁力計1612、加速度計1614、及び、ジャイロスコープ1616等の様々な種類の動作検知ハードウェアのいずれかを含む。
加速度計1614は、加速度及び重力により誘発される反力を測定する装置である。単軸及び多軸(例えば、6軸)のモデルは、異なる方向の加速度の大きさ及び方向を検出できる。加速度計1614は、傾斜、振動、及び衝撃を感知するために使用される。一実施形態においては、3つの加速度計を使用して重力の方向を提供し、重力の方向は、2つの角度(世界空間ピッチ及び世界空間ロール)の絶対基準を与える。
磁力計1612は、HMD1600の近傍で磁場の強さと方向とを測定する。一実施形態においては、磁力計はHMD1600内で使用され、世界空間ヨー角度の絶対基準を保証する。一実施形態においては、磁力計1612は、±80マイクロテスラである地球磁場にわたるように設計される。磁力計は、金属の影響を受け、実際のヨーと単調であるヨー測定値を提供する。磁場は、環境の中の金属のために歪められ、このことがヨー測定の歪みを生じさせる。必要に応じて、この歪みは、ジャイロスコープまたはカメラ等の他のセンサからの情報を使用して、較正される。一実施形態においては、加速度計1614は、磁力計1612と共に使用されて、HMD1600の傾斜とアジマスとを取得する。
ジャイロスコープ1616は、角運動量の原理に基づいて向きを測定または維持する装置である。一実施形態においては、3つのジャイロスコープが慣性感知に基づいて各軸(x、y、z)に対する移動に関する情報を提供する。ジャイロスコープは高速回転を検出するのに役立つ。しかしながら、ジャイロスコープは、絶対基準が存在しなければ、経時的にドリフトする。ドリフトを低減するために、ジャイロスコープは周期的にリセットされる。リセットは、物体の視覚的追跡、加速度計、磁力計等に基づいた位置/向きの決定等、他の利用できる情報を使用して行ってよい。
カメラ1618は、現実世界環境の画像及び画像ストリームをキャプチャするために備えられる。一実施形態においては、後ろを向いている(ユーザがHMD1600のディスプレイを見ている時にユーザから離れる方に向けられた)カメラと、前を向いている(ユーザがHMD1600のディスプレイを見ている時にユーザの方に向けられた)カメラとを含む複数のカメラが(任意選択で)HMD1600に含まれる。さらに、いくつかの実施形態においては、デプスカメラ1620が、現実世界環境の物体の奥行情報を感知するためにHMD1600に含まれる。
HMD1600は、音声出力を提供するためのスピーカ1622を含む。また、一実施形態においては、マイクロフォン1624が、周囲環境からの音、ユーザが行う発話等を含む、現実世界環境からの音声をキャプチャするために含まれる。いくつかの実施形態においては、HMD1600は、ユーザ102に触覚フィードバックを提供するための触覚フィードバックモジュール1626を含む。一実施形態においては、触覚フィードバックモジュール1626は、ユーザに触覚フィードバックを提供するようにHMD1600の動き及び/または振動を起こすことができる。
光センサ1630が、ビームの1つまたは複数を検出するために備えられる。カードリーダ1632が備えられて、HMD1600が、メモリカードの情報を書き込み、メモリカードから情報を読み取るのを可能にする。USBインタフェース1634が、周辺装置の接続、または、他のポータブルデバイス、コンピュータ、ゲームコンソール等、他のデバイス等への接続を可能にするインタフェースの一例として含まれる。HMD1600の様々な実施形態において、様々な種類のインタフェースのいずれかが、HMD1600のより良い接続性を可能にするように含まれてよい。
いくつかの実施形態においては、Wi−Fiモジュール1636が、無線ネットワーキング技術を介したコンピュータネットワークへの接続を可能にするために含まれる。また、一実施形態においては、HMD1600は、他のデバイスへの無線接続を可能にするために、Bluetoothモジュール1638を含む。通信リンク1640は、他のデバイスへの接続のために含まれる。一実施形態においては、通信リンク1640は無線通信のために赤外線伝送を利用する。他の実施形態においては、通信リンク1640は、他のデバイスとの通信のために様々な無線または有線の伝送プロトコルのいずれかを利用する。
入力ボタン/センサ1642は、ユーザに入力インタフェースを提供するために含まれる。ボタン、ジェスチャ、タッチパッド、ジョイスティック、トラックボール等の様々な種類の入力インタフェースのいずれかが含まれてよい。一実施形態においては、超音波通信モジュール1644が、超音波技術を介して他のデバイスとの通信を容易にするためにHMD1600に含まれる。
いくつかの実施形態においては、バイオセンサ1646は、ユーザ102からの、生理学的データの検出を可能にするために含まれる。一実施形態においては、バイオセンサ1646は、ユーザ/プロファイル等を識別するために、ユーザの皮膚を通したユーザの生体電気信号の検出、声検出、目の網膜検出のための1つまたは複数の乾式電極を含む。
HMD1600の上記の構成要素は、HMD1600に含まれてよい単に例示的な構成要素として記載した。本開示に記載した様々な実施形態においては、HMD1600は様々な上記の構成要素の一部を含むこともあれば、含まないこともある。HMD1600の実施形態はさらに、本明細書に記載した本発明の態様を容易にするために、本明細書には記載していないが、当分野で既知の他の構成要素を含んでよい。
一実施形態においては、HMD1600は、発光ダイオードを含み、発光ダイオードは、光センサ1630に追加して用いられて、HMD1600の位置及び/または向きを決定する。例えば、HMD1600が位置する環境内にあるLED及びカメラを用いて、光センサ1630と本明細書に記載の方法とを用いて決定された位置及び/または向きを確認または否定する。
本開示に記載の様々な実施形態において、上記ハンドヘルドデバイスは、ディスプレイに表示されるインタラクティブアプリケーションと併せて利用されて、様々なインタラクティブ機能を提供することを当業者は理解されよう。本明細書に記載の例示的な実施形態は、制限としてではなく、例としてのみ提供される。
一実施形態においては、本明細書においては、クライアント及び/またはクライアントデバイスは、HMD、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話、セットトップボックス、キオスク、ワイヤレスデバイス、デジタルパッド、スタンドアロンデバイス、ハンドヘルドゲームプレイデバイス等を含んでよい。典型的に、クライアントは、符号化ビデオストリームを受信し、ビデオストリームを復号し、結果として生じたビデオを、ユーザ、例えば、ゲームのプレイヤに提示するように構成される。符号化ビデオストリームを受信するプロセス、及び/または、ビデオストリームを復号するプロセスは、典型的に、個々のビデオフレームをクライアントの受信バッファに記憶することを含む。ビデオストリームは、クライアントに一体化されたディスプレイ上で、または、モニタもしくはテレビ等の別個のデバイス上で、ユーザ102に提示されてよい。
クライアントは、任意選択で複数のゲームプレイヤに対応するように構成される。例えば、ゲームコンソールは、2、3、4、または、それ以上の同時プレイヤ(例えば、P1、P2、...Pn)をサポートするように構成されてよい。これらのプレイヤの各々は、ビデオストリームを受信もしくは共有し、または、1つのビデオストリームは、各プレイヤに合わせて特に生成された、例えば、各プレイヤの視点に基づいて生成された、フレームの領域を含み得る。任意の数のクライアントが、ローカル(例えば、同じ場所にいる)、または、地理的に分散している。ゲームシステムに含まれるクライアントの数は、1もしくは2から、何千、何万、または、それ以上と大きく異なる。本明細書では、「ゲームプレイヤ」という用語は、ゲームをプレイする人を指して使用され、「ゲームプレイデバイス」という用語は、ゲームをプレイするのに使用されるデバイスを指して使用される。いくつかの実施形態においては、ゲームプレイデバイスは、協力してゲーム体験をユーザに配信する複数のコンピューティングデバイスを指してよい。
例えば、ゲームコンソール及びHMDは、ビデオサーバシステムと協働して、HMDを通して見るゲームを配信する。一実施形態においては、ゲームコンソールは、ビデオサーバシステムからビデオストリームを受信し、ゲームコンソールは、ビデオストリームまたはビデオストリームに対するアップデートをレンダリングのためにHMD及び/またはテレビに転送する。
さらに、HMDは、ビデオゲームコンテンツ、映画コンテンツ、ビデオクリップコンテンツ、ウェブコンテンツ、広告コンテンツ、コンテストコンテンツ、ギャンブルゲームコンテンツ、電話会議/ミーティングコンテンツ、ソーシャルメディアコンテンツ(例えば、投稿、メッセージ、メディアストリーム、友達イベント、及び/または、ゲームプレイ)、ビデオ部分及び/または音声コンテンツ、ブラウザ及びアプリケーションを介してインターネット経由でソースから消費するようにされたコンテンツ、及び、任意の種類のストリーミングコンテンツ等、生成または使用される任意の種類のコンテンツを見る、及び/または、それらとインタラクトするために使用される。当然、上記に列挙したコンテンツは、制限ではなく、HMDで視聴できる、または、画面もしくはHMDの画面にレンダリングできる限り、任意の種類のコンテンツがレンダリングできる。
一実施形態においては、クライアントは、受信したビデオを変更するシステムをさらに含む。例えば、クライアントは、1つのビデオ画像を他のビデオ画像にオーバーレイするため、ビデオ画像をトリミングするため等、さらなるレンダリングを行う。他の例としては、クライアントは、Iフレーム、Pフレーム、及び、Bフレーム等、様々な種類のビデオフレームを受信し、これらのフレームを、ユーザに表示する画像に処理する。いくつかの実施形態においては、クライアントのメンバーは、さらなるレンダリング、シェーディング、3Dへの変換、2Dへの変換、歪み除去、サイジング等の操作をビデオストリームに対して行うように構成される。クライアントのメンバーは、任意選択で、複数の音声ストリームまたはビデオストリームを受信するように構成される。
クライアントの入力装置は、例えば、片手ゲームコントローラ、両手ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、力フィードバックデバイス、動作及び/または位置感知デバイス、マウス、タッチスクリーン、神経インタフェース、カメラ、今後開発される入力装置等を含む。
いくつかの実施形態においては、ビデオソースは、ストレージ等のコンピュータ可読媒体に記憶される、例えば、ハードウェア、ファームウェア、及び/または、ソフトウェアのレンダリングロジックを含む。このレンダリングロジックは、ゲーム状態に基づいてビデオストリームのビデオフレームを作成するように構成される。レンダリングロジックの全てまたは一部は任意選択で1つまたは複数のグラフィックスプロセッシングユニット(GPU)内に配置される。レンダリングロジックは、典型的に、ゲーム状態及び視点に基づいて、物体間の3次元空間関係を決定するために、及び/または、適切なテクスチャ等を適用するために構成された処理段階を含む。レンダリングロジックは、符号化される未処理ビデオを生成する。例えば、未処理ビデオは、Adobe Flash(登録商標)規格、HTML−5、.wav、H.264、H.263、On2、VP6、VC−1、WMA、Huffyuv、Lagarith、MPG−x、Xvid、FFmpeg、x264、VP6−8、real video、mp3等に従って符号化される。符号化プロセスによって、ビデオストリームを生成し、ビデオストリームは、任意選択でデバイスのデコーダに配信するためにパッケージ化される。ビデオストリームはフレームサイズ及びフレームレートで特徴付けられる。典型的なフレームサイズは、800x600、1280x720(例えば、720p)、1024x768、1080pを含むが、任意の他のフレームサイズが使用されてよい。フレームレートは1秒あたりのビデオフレーム数である。一実施形態においては、ビデオストリームは異なる種類のビデオフレームを含む。例えば、H.264規格は「P」フレーム及び「I」フレームを含む。Iフレームは、ディスプレイデバイス上の全てのマクロブロック/ピクセルをリフレッシュするための情報を含み、Pフレームはそのサブセットをリフレッシュするための情報を含む。Pフレームは典型的にはIフレームよりもデータサイズが小さい。本明細書では、「フレームサイズ」という用語はフレーム内のピクセル数を指す。用語「フレームデータサイズ」は、フレームを記憶するために必要とされるバイト数を指して使用される。
いくつかの実施形態においては、クライアントは、汎用コンピュータ、専用コンピュータ、ゲームコンソール、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、モバイルコンピューティングデバイス、携帯ゲーム機、セルラーフォン、セットトップボックス、ストリーミングメディアインタフェース/デバイス、スマートテレビもしくはネットワーク化ディスプレイ、または、本明細書に規定されるクライアントの機能を達成するように構成できる任意の他のコンピューティングデバイスである。一実施形態においては、クラウドゲーミングサーバは、ユーザによって利用されているクライアントデバイスの種類を検出するように、且つ、ユーザのクライアントデバイスに適切なクラウドゲーミング体験を提供するように構成される。例えば、画像設定、音声設定、及び、他の種類の設定が、ユーザのクライアントデバイスに合わせて最適化されてよい。
図17は、情報サービスプロバイダアーキテクチャの実施形態を示す。情報サービスプロバイダ(ISP)1702は、地理的に分散され、コンピュータネットワーク1310を介して接続されたユーザ1700−1、1700−2、1700−3、1700−4等に多数の情報サービスを配信する。ユーザ1700−1または1700−2また1700−3、および1700−4のうちのいずれの代わりにも、ユーザ102が、多数の情報サービスを受信することに注意すべきである。一実施形態においては、ISPは株価更新等の一種類のサービス、または、放送媒体、ニュース、スポーツ、ゲーム等の様々なサービスを配信する。さらに、各ISPによって提供されるサービスは動的である、すなわち、サービスは任意の時点で追加または取り除くことができる。従って、特定の種類のサービスを特定の個人に提供するISPは経時的に変化し得る。例えば、ユーザは、ユーザが地元にいる間、ユーザに近接するISPによってサービスを提供され、ユーザが異なる都市に旅行すると、異なるISPによってサービスを提供される。地元のISPは必要な情報及びデータを新しいISPに転送し、これによりユーザの情報は新しい都市までユーザを「追いかけ」、データをユーザにより近く、よりアクセスしやすくする。別の実施形態においては、マスタ−サーバ関係が、ユーザの情報を管理するマスタISPと、マスタISPからの制御下でユーザと直接、インタフェースするサーバISPとの間に確立される。他の実施形態においては、クライアントが世界を動き回ると、データはあるISPから他のISPに転送され、ユーザにサービスを提供するためにより良い位置にあるISPが、これらのサービスを提供するISPになる。
ISP1702は、コンピュータネットワーク1310を介して顧客にコンピュータベースのサービスを提供するアプリケーションサービスプロバイダ(ASP)1706を含む。ASPモデルを使用して提供されるソフトウェアは、オンデマンドソフトウェアまたはサービス型ソフトウェア(SaaS)とも呼ばれる。(顧客関係管理等の)特定のアプリケーションプログラムにアクセスを提供する簡略な形式は、HTTP等の標準プロトコルの使用による。アプリケーションソフトウェアはベンダのシステムに存在し、ベンダによって提供される専用クライアントソフトウェア、またはシンクライアント等の他のリモートインタフェースによって、HTMLを使用するウェブブラウザを通してユーザによってアクセスされる。
地理的に広いエリアにわたって配信されるサービスは、クラウドコンピューティングを使用することが多い。クラウドコンピューティングは、動的にスケラブルで、多くの場合仮想化されたリソースがコンピュータネットワーク1310を介してサービスとして提供されるコンピューティングの形式である。ユーザは、ユーザをサポートする「クラウド」の技術インフラの専門家である必要はない。一実施形態においては、クラウドコンピューティングは、インフラとしてのサービス(IaaS)、プラットフォームとしてのサービス(PaaS)、及び、ソフトウェアとしてのサービス(SaaS)等の異なるサービスに分けられる。クラウドコンピューティングサービスは、ウェブブラウザからアクセスされる共通ビジネスアプリケーションをオンラインで提供することが多く、ソフトウェア及びデータはサーバに記憶される。クラウドという用語は、インターネットがコンピュータネットワーク図でどのように描かれているのかに基づいて(例えば、サーバ、ストレージ、及び、論理を使用する)インターネットの隠喩として使用され、インターネットが隠している複雑なインフラの抽象概念である。
さらに、ISP1702は、シングルプレーヤビデオゲーム及びマルチプレーヤビデオゲームをプレイするゲームクライアントが使用するゲーム処理サーバ(GPS)1708を含む。インターネットを介してプレイされる大部分のビデオゲームは、ゲームサーバへの接続を介して動作する。典型的に、ゲームは、プレイヤからデータを収集し、他のプレイヤにデータを分散する専用のサーバアプリケーションを使用する。これはピアツーピア構成より効率が良く且つ効果的であるが、サーバアプリケーションをホストするために別個のサーバを必要とする。他の実施形態においては、GPSが、プレイヤ間に通信を確立し、各プレイヤのゲームプレイデバイスは集中型GPSに依存することなく情報を交換する。
専用GPSは、クライアントから独立して実行するサーバである。このようなサーバは通常、データセンタにある専用ハードウェアで実行され、より多くの帯域幅及び専用処理力を提供する。専用サーバは、大部分のPCベースのマルチプレイヤゲームにとってゲームサーバをホストする好ましい方法である。大量マルチプレーヤオンラインゲームは、ゲームタイトルを所有するソフトウェア企業によって通常ホストされる専用サーバで実行し、専用サーバがコンテンツを制御し、更新することを可能にする
放送処理サーバ(BPS)1710は音声信号またはビデオ信号を視聴者に分配する。非常に狭い範囲の視聴者に対する放送はナローキャスティングと呼ばれることがある。放送分配の最後の行程は、信号が聴取者または視聴者にどのように達するのかであり、信号はラジオ局またはテレビ局と同様に無線でアンテナ及び受信器まで来てよい、または、局を介してもしくはネットワークから直接、ケーブルテレビもしくはケーブルラジオ(もしくは「無線ケーブル」)を通って来てよい。インターネットも、特に信号及び帯域幅を共有可能にするマルチキャスティングで、ラジオまたはテレビのいずれかを受信者にもたらしてよい。歴史的に、放送は全国放送または地域放送等の地理的地域によって区切られてきた。しかしながら、高速インターネットの拡散により、コンテンツは世界のほとんどすべての国に到達し得るので、放送は地理によって規定されない。
ストレージサービスプロバイダ(SSP)1712はコンピュータ記憶スペース及び関係する管理サービスを提供する。SSPは定期的なバックアップ及びアーカイビングも提供する。サービスとしてストレージを提供することによって、ユーザは必要に応じてより多くのストレージを注文できる。他の主要な長所は、SSPはバックアップサービスを含み、ユーザは、ユーザのコンピュータのハードドライブが故障した場合、全てのデータを失わないという点である。さらに、いくつかの実施形態においては、複数のSSPがユーザーデータの完全または部分的なコピーを有し、ユーザがいる場所やデータにアクセスするために使用するデバイスに関わりなく、ユーザは、効率的にデータにアクセスできる。例えば、ユーザは、自宅のコンピュータでだけでなく、移動中、携帯電話でも、個人ファイルにアクセスできる。
通信プロバイダ1714は、ユーザに接続機能を提供する。1つの種類の通信プロバイダは、インターネットへのアクセスを提供するインターネットサービスプロバイダ(ISP)である。ISPは、ダイヤルアップ、DSL、ケーブルモデム、ファイバ、無線、または専用高速相互接続等の、インターネットプロトコルデータグラムを配信するのに適したデータ伝送技術を使用して、ISPの顧客を接続する。通信プロバイダは、電子メール、インスタントメッセージ、及び、SMSテキストメッセージ等、メッセージングサービスも提供できる。他の種類の通信プロバイダは、インターネットに直接バックボーンアクセスを提供することによって帯域幅またはネットワークアクセスを販売するネットワークサービスプロバイダ(NSP)である。ネットワークサービスプロバイダは、一実施形態においては、電気通信企業、データキャリヤ、無線通信プロバイダ、インターネットサービスプロバイダ、高速インターネットアクセスを提供するケーブルテレビ事業者等を含む。
データ交換部1704は、ISP1702内部の幾つかのモジュールを相互接続し、これらのモジュールを、ネットワーク1310を介してユーザ1700に接続する。データ交換部1704は、ISP1702の全てのモジュールが近接している小さいエリアをカバーする、または、異なるモジュールが地理的に分散している時、大きい地理的エリアをカバーする。例えば、データ交換部1788はデータセンタのキャビネット内の高速ギガビットイーサネット(登録商標)(もしくはより高速)、または、大陸間仮想エリアネットワーク(VLAN)を含む。
ユーザ1700は、クライアントデバイス1720を用いてリモートサービスにアクセスする。クライアントデバイス1720は、少なくともCPU、ディスプレイ、及び入力/出力(I/O)装置を含む。クライアントデバイスは、パーソナルコンピュータ(PC)、携帯電話、ネットブック、タブレット、ゲームシステム、パーソナルデジタルアシスタント(PDA)等であってよい。一実施形態においては、ISP1702は、クライアントが使用するデバイスの種類を認識し、採用する通信方法を調整する。他の場合、クライアントデバイスは、HTML等の標準的な通信方法を使用して、ISP1702にアクセスする。
上記実施形態は、例えば、仮想現実、拡張現実等のインタラクティブなコンテンツに適用でき、インタラクティブなコンテンツは、例えば、他の人々とインターネットを介して通信するコンピュータプログラム、ゲームコード、仮想現実シーンを表示するためのコンピュータプログラム、拡張現実シーンを表示するためのコンピュータプログラム等のプログラムアプリケーションを実行することによって生成されることに注意すべきである。いくつかの実施形態においては、ビデオゲームは、仮想現実コンテンツまたは拡張現実コンテンツの一例である。
本開示に記載の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータ等を含む様々なコンピュータシステム構成で実践されてよい。本開示に記載の実施形態は、有線ベースまたは無線のネットワークを通してリンクされるリモート処理装置によってタスクが行われる分散コンピューティング環境でも実践できる。
上記の実施形態を念頭に、本開示に記載の実施形態はコンピュータシステムに記憶されるデータを伴う様々なコンピュータ実施操作を採用できることは理解すべきである。これらの操作は、物理量の物理的な操作を要する操作である。本開示に記載の実施形態の一部を形成する本明細書に記載の操作はいずれも、有用な機械操作である。本開示に記載のいくつかの実施形態は、これらの操作を行うデバイスまたは装置にも関する。装置は、必要とされる目的のために特に構築されてよい、または、装置は、コンピュータに記憶されたコンピュータプログラムによって選択的に作動もしくは構成される汎用コンピュータであってよい。特に、様々な汎用機械が、本明細書の教示に従って作成されたコンピュータプログラムと共に使用できる、または、必要とされる操作を行うためにより専門化した装置を構築するとより便利な場合がある。
本開示に記載のいくつかの実施形態は、コンピュータ可読媒体上でコンピュータ可読コードとしても実現できる。コンピュータ可読媒体は、データを記憶する任意のデータ記憶装置であり、そのデータは、後にコンピュータシステムによって読み取ることができる。コンピュータ可読媒体の例には、ハードドライブ、NAS、ROM、RAM、CD−ROM、CD−R、CD−RW、磁気テープ、光学データ記憶装置、非光学データ記憶装置等が含まれる。コンピュータ可読媒体は、コンピュータ可読コードが分散式で記憶、実行されるように、ネットワークで結合されたコンピュータシステムを介して分散されるコンピュータ可読有形媒体を含み得る。
いくつかの実施形態においては、本明細書に記載の実施形態のいずれもが、残りの実施形態のいずれかと組み合わせられることに注意すべきである。
さらに、上記実施形態の一部はゲーム環境に関して記載したが、いくつかの実施形態においては、ゲームの代わりに、例えば、テレビ会議環境等の他の環境が使用される。
方法操作は特定の順序で記載したが、他のハウスキーピング操作が、操作間に行われてよい、または、操作は、わずかに異なる時点に生じるように調整されてよい、または、オーバーレイ操作の処理が所望のように実行される限り、処理と関連付けられた様々な間隔で処理操作の発生を可能にするシステムに分散されてよいことを理解すべきである。
本開示に記載の上記実施形態は理解を明確にするために多少詳細に記載したが、ある一定の変更及び修正が添付の特許請求の範囲内で実施できることは明らかとなろう。従って、本実施形態は制限的ではなく説明的なものとみなされるべきであり、実施形態は、本明細書に示される詳細に限定されず、添付の特許請求の範囲及び同等物の範囲内で変更されてよい。