(57)【要約】【解決手段】システムは、インタラクティブアプリケーションを実行し、画像フレームを生成して送信するコンピューティングデバイスと、画像フレームを受信し、画像フレームを提示するヘッドマウントディスプレイ（ＨＭＤ）と、磁気信号を検出する磁気センサを含むコントローラデバイスとを備える。ＨＭＤは、受信した画像フレームに同期される同期符号化を有する磁気信号を放出する磁気エミッタを含む。コントローラデバイスは、検出された磁気信号を処理して、磁気位置データを判定し、同期符号化を読み取り、同期符号化を使用して、同期符号化に基づいて磁気位置データのタイミングを示すタイミングデータを生成し、磁気位置データ及び対応するタイミングデータをコンピューティングデバイスに送信する。コンピューティングデバイスは、磁気位置データ及び対応するタイミングデータを使用して、コントローラデバイスの位置及び／または向きを判定する。【選択図】図４
2021512427.tif 000002
【特許請求の範囲】
【請求項１】
インタラクティブアプリケーションを実行し、事前設定されたフレームレートで画像フレームを生成して送信するコンピューティングデバイスであって、前記画像フレームが、実行中の前記インタラクティブアプリケーションのアプリケーション状態に基づいて生成される、前記コンピューティングデバイスと、
前記コンピューティングデバイスから送信された前記画像フレームを受信し、ヘッドマウントディスプレイ（ＨＭＤ）のディスプレイデバイスを介して前記画像フレームを提示する前記ＨＭＤであって、前記ＨＭＤは、磁気信号を放出する磁気エミッタを含み、前記磁気信号が、前記コンピューティングデバイスから受信した前記画像フレームに同期される同期符号化を有する、前記ＨＭＤと、
前記磁気信号を検出する磁気センサを含むコントローラデバイスであって、前記コントローラデバイスは、検出された前記磁気信号を処理して、前記コントローラデバイスの位置及び／または向きを識別する磁気位置データを判定し、前記コントローラデバイスは、検出された前記磁気信号を更に処理して、前記同期符号化を読み取り、前記コントローラデバイスは、前記同期符号化を使用して、前記磁気位置データに対応するタイミングデータを生成し、前記タイミングデータが、前記同期符号化に基づいて前記磁気位置データのタイミングを示し、前記コントローラデバイスは、前記磁気位置データ、及び対応する前記タイミングデータを前記コンピューティングデバイスに送信する、前記コントローラデバイスとを備え、
前記コンピューティングデバイスは、前記磁気位置データ、及び対応する前記タイミングデータを使用して、前記コントローラデバイスの前記位置及び／または向きを判定し、前記コンピューティングデバイスは、前記コントローラデバイスの前記位置及び／または向きを使用して、実行中の前記インタラクティブアプリケーションの前記アプリケーション状態を更新する、システム。
【請求項２】
前記画像フレームの前記送信が、前記事前設定されたフレームレートに従って、各画像フレームの開始を知らせるタイミング信号を含むビデオ信号の送信によって設定され、
前記磁気信号の前記同期符号化が、前記タイミング信号に同期される、請求項１に記載のシステム。
【請求項３】
前記タイミング信号が垂直同期信号である、請求項２に記載のシステム。
【請求項４】
前記磁気信号の前記同期符号化が、前記磁気信号の周波数または振幅の１つ以上の変調によって設定されている、請求項１に記載のシステム。
【請求項５】
前記変調が、前記タイミング信号に同期された前記磁気信号の変化の繰り返しパターンを設定する、請求項４に記載のシステム。
【請求項６】
対応する前記タイミングデータを生成することが、前記同期符号化を使用して、前記同期符号化からの前記コントローラデバイスのクロックのドリフトを修正することを含む、請求項１に記載のシステム。
【請求項７】
前記コントローラデバイスの前記位置及び／または向きが、前記ＨＭＤに対している、請求項１に記載のシステム。
【請求項８】
前記タイミングデータが、前記磁気位置データを前記画像フレームの前記生成に同期させることを可能にする、請求項１に記載のシステム。
【請求項９】
前記コントローラデバイスは、モーションデータのサンプルを生成する少なくとも１つのモーションセンサを含み、前記コントローラデバイスは、前記同期符号化を使用して、モーションセンサデータのサンプルごとに対応するタイムスタンプを生成し、前記コントローラデバイスは、前記モーションデータのサンプル、及び対応する前記タイムスタンプを前記コンピューティングデバイスに送信し、
前記コンピューティングデバイスは、前記モーションデータのサンプル、及び対応する前記タイムスタンプを使用して、前記コントローラデバイスの位置及び／または向きを判定し、前記コントローラデバイスの前記位置及び／または向きが、実行中の前記インタラクティブアプリケーションの前記アプリケーション状態を更新するために使用される、請求項１に記載のシステム。
【請求項１０】
モーションセンサデータの所与のサンプルの対応する前記タイムスタンプを生成することが、前記同期符号化を使用して、前記同期符号化からの前記コントローラデバイスのクロックのドリフトを修正することを含む、請求項９に記載のシステム。
【請求項１１】
方法であって、
コンピューティングデバイスによってインタラクティブアプリケーションを実行すること、及び前記コンピューティングデバイスによって、事前設定されたフレームレートで画像フレームを生成して送信することであって、前記画像フレームが、実行中の前記インタラクティブアプリケーションのアプリケーション状態に基づいて生成され、送信することと、
ヘッドマウントディスプレイ（ＨＭＤ）によって、前記コンピューティングデバイスから送信された前記画像フレームを受信するとともに、前記ＨＭＤのディスプレイデバイスを介して前記画像フレームを提示すること、及び前記ＨＭＤの磁気エミッタによって、磁気信号を放出することであって、前記磁気信号が、前記コンピューティングデバイスから受信した前記画像フレームに同期される同期符号化を有し、放出することと、
磁気センサを含むコントローラデバイスによって、前記磁気信号を検出すること、及び前記コントローラデバイスによって、検出された前記磁気信号を処理して、前記コントローラデバイスの位置及び／または向きを識別する磁気位置データを判定することを含み、
前記コントローラデバイスは、検出された前記磁気信号を更に処理して、前記同期符号化を読み取り、前記コントローラデバイスは、前記同期符号化を使用して、前記磁気位置データに対応するタイミングデータを生成し、前記タイミングデータが、前記同期符号化に基づいて前記磁気位置データのタイミングを示し、前記コントローラデバイスは、前記磁気位置データ、及び対応する前記タイミングデータを前記コンピューティングデバイスに送信し、
前記コンピューティングデバイスは、前記磁気位置データ、及び対応する前記タイミングデータを使用して、前記コントローラデバイスの前記位置及び／または向きを判定し、前記コンピューティングデバイスは、前記コントローラデバイスの前記位置及び／または向きを使用して、実行中の前記インタラクティブアプリケーションの前記アプリケーション状態を更新する、方法。
【請求項１２】
前記画像フレームの前記送信が、前記事前設定されたフレームレートに従って、各画像フレームの開始を知らせるタイミング信号を含むビデオ信号の送信によって設定され、
前記磁気信号の前記同期符号化が、前記タイミング信号に同期される、請求項１１に記載の方法。
【請求項１３】
前記タイミング信号が垂直同期信号である、請求項１２に記載の方法。
【請求項１４】
前記磁気信号の前記同期符号化が、前記磁気信号の周波数または振幅の１つ以上の変調によって設定されている、請求項１１に記載の方法。
【請求項１５】
前記変調が、前記タイミング信号に同期された前記磁気信号の変化の繰り返しパターンを設定する、請求項１４に記載の方法。
【請求項１６】
対応する前記タイミングデータを生成することが、前記同期符号化を使用して、前記同期符号化からの前記コントローラデバイスのクロックのドリフトを修正することを含む、請求項１１に記載の方法。
【請求項１７】
前記コントローラデバイスの前記位置及び／または向きが、前記ＨＭＤに対している、請求項１１に記載の方法。
【請求項１８】
前記タイミングデータが、前記磁気位置データを前記画像フレームの前記生成に同期させることを可能にする、請求項１１に記載の方法。
【請求項１９】
前記コントローラデバイスは、モーションデータのサンプルを生成する少なくとも１つのモーションセンサを含み、前記コントローラデバイスは、前記同期符号化を使用して、モーションセンサデータのサンプルごとに対応するタイムスタンプを生成し、前記コントローラデバイスは、前記モーションデータのサンプル、及び対応する前記タイムスタンプを前記コンピューティングデバイスに送信し、
前記コンピューティングデバイスは、前記モーションデータのサンプル、及び対応する前記タイムスタンプを使用して、前記コントローラデバイスの位置及び／または向きを判定し、前記コントローラデバイスの前記位置及び／または向きが、実行中の前記インタラクティブアプリケーションの前記アプリケーション状態を更新するために使用される、請求項１１に記載の方法。
【請求項２０】
モーションセンサデータの所与のサンプルの対応する前記タイムスタンプを生成することが、前記同期符号化を使用して、前記同期符号化からの前記コントローラデバイスのクロックのドリフトを修正することを含む、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ヘッドマウントディスプレイとコントローラとの電磁場を介したクロック同期に関する。
【背景技術】
【０００２】
テレビゲーム業界は、長年にわたり多くの変化を遂げてきた。コンピューティング能力の増大に伴い、ビデオゲームの開発者もまた、この向上したコンピューティング能力を活用するゲームソフトウェアを開発してきた。そのために、ビデオゲーム開発者は、高度な演算及び数学的手法を取り入れたゲームをコーディングして、非常に精緻で魅力のあるゲーム体験を生み出している。
【０００３】
ゲームプラットフォームの例には、Ｓｏｎｙ  Ｐｌａｙｓｔａｔｉｏｎ（登録商標）、Ｓｏｎｙ  Ｐｌａｙｓｔａｔｉｏｎ２（登録商標）（ＰＳ２）、Ｓｏｎｙ  Ｐｌａｙｓｔａｔｉｏｎ３（登録商標）（ＰＳ３）、Ｓｏｎｙ  Ｐｌａｙｓｔａｔｉｏｎ４（登録商標）（ＰＳ４）があり、それぞれゲームコンソールの形で販売されている。よく知られているように、ゲームコンソールは、ディスプレイ（一般的にはテレビ）に接続し、手持ち型コントローラを介して、ユーザとのインタラクションを可能にするように設計されている。ゲームコンソールは、ＣＰＵ、集約的なグラフィック演算を処理するためのグラフィックシンセサイザ、ジオメトリ変換を実行するためのベクトル処理部、ならびにその他の接続を提供するハードウェア、ファームウェア、及びソフトウェアを含む専用の処理ハードウェアが備わった設計になっている。更に、ゲームコンソールによってローカルでプレイするために、ゲームコンソールは、ゲームディスクを受け入れることができるよう、光ディスクリーダが備わった設計になっていてもよい。オンラインでゲームをプレイすることも可能であり、ユーザがインターネットを介して他のユーザとインタラクティブに対戦または試合を行うことができる。ゲームの複雑さがプレーヤを魅了し続ける中、ゲームメーカ及びハードウェアメーカは、更なるインタラクティビティとコンピュータプログラムとを可能にするための技術革新を続けている。
【０００４】
コンピュータゲーム業界では、ユーザとゲームシステムとの間のインタラクションを増加させるゲームを開発する傾向が高まっている。インタラクティブな体験をより豊かにする実現法の一つは、プレーヤの動きを追跡し、その動きをゲームの入力として使用するために、ゲームシステムによって動きが追跡される無線式のゲームコントローラを使用することである。一般的に言えば、ジェスチャ入力は、コンピューティングシステム、ビデオゲームコンソール、スマート家電などの電子デバイスを、プレーヤによって行われて電子デバイスによって取り込まれた何らかのジェスチャに反応させることをいう。
【０００５】
インタラクティブな体験をより没入できるものにするもう一つの実現法は、ヘッドマウントディスプレイ（ＨＭＤ）を使用することである。ヘッドマウントディスプレイは、ユーザによって着用され、仮想空間の表示などの様々なグラフィックを提示するように構成され得る。ヘッドマウントディスプレイに提示されるグラフィックは、ユーザの視野の大部分または全体さえも覆うことができる。したがって、ヘッドマウントディスプレイは、ユーザの動きに応答するようにして、仮想環境の３次元リアルタイム表示をレンダリングするので、ＨＭＤは、視覚的に没入感のある仮想現実体験をユーザに提供することができる。ＨＭＤを着用しているユーザは、全方向に自由に移動できるため、ＨＭＤを介して全方向の仮想環境の表示を提供できる。
【０００６】
こうした背景のもと、本開示の実施態様が生じる。
【発明の概要】
【０００７】
本開示の実施態様は、ヘッドマウントディスプレイとコントローラとの電磁場（ＥＭ場）を介したクロック同期に関するデバイス、方法、及びシステムを含む。
【０００８】
ある実施態様では、インタラクティブアプリケーションを実行し、事前設定されたフレームレートで画像フレームを生成して送信するコンピューティングデバイスであって、画像フレームが、実行中のインタラクティブアプリケーションのアプリケーション状態に基づいて生成される、コンピューティングデバイスと、コンピューティングデバイスから送信された画像フレームを受信し、ＨＭＤのディスプレイデバイスを介して画像フレームを提示するヘッドマウントディスプレイ（ＨＭＤ）であって、ＨＭＤは、磁気信号を放出する磁気エミッタを含み、磁気信号が、コンピューティングデバイスから受信した画像フレームに同期される同期符号化を有する、ＨＭＤと、磁気信号を検出する磁気センサを含むコントローラデバイスであって、コントローラデバイスは、検出された磁気信号を処理して、コントローラデバイスの位置及び／または向きを識別する磁気位置データを判定し、コントローラデバイスは、検出された磁気信号を更に処理して、同期符号化を読み取り、コントローラデバイスは、同期符号化を使用して、磁気位置データに対応するタイミングデータを生成し、タイミングデータが、同期符号化に基づいて磁気位置データのタイミングを示し、コントローラデバイスは、磁気位置データ、及び対応するタイミングデータをコンピューティングデバイスに送信する、コントローラデバイスとを備え、コンピューティングデバイスは、磁気位置データ、及び対応するタイミングデータを使用して、コントローラデバイスの位置及び／または向きを判定し、コンピューティングデバイスは、コントローラデバイスの位置及び／または向きを使用して、実行中のインタラクティブアプリケーションのアプリケーション状態を更新する、システムが提供される。
【０００９】
ある実施態様では、画像フレームの送信が、事前設定されたフレームレートに従って、各画像フレームの開始を知らせるタイミング信号を含むビデオ信号の送信によって設定され、磁気信号の同期符号化が、タイミング信号に同期される。
【００１０】
ある実施態様では、タイミング信号が垂直同期信号である。
【００１１】
ある実施態様では、磁気信号の同期符号化が、磁気信号の周波数または振幅の１つ以上の変調によって設定されている。
【００１２】
ある実施態様では、変調が、タイミング信号に同期された磁気信号の変化の繰り返しパターンを設定する。
【００１３】
ある実施態様では、対応するタイミングデータを生成することが、同期符号化を使用して、同期符号化からのコントローラデバイスのクロックのドリフトを修正することを含む。
【００１４】
ある実施態様では、コントローラデバイスの位置及び／または向きが、ＨＭＤに対している。
【００１５】
ある実施態様では、タイミングデータが、磁気位置データを画像フレームの生成に同期させることを可能にする。
【００１６】
ある実施態様では、コントローラデバイスは、モーションデータのサンプルを生成する少なくとも１つのモーションセンサを含み、コントローラデバイスは、同期符号化を使用して、モーションセンサデータのサンプルごとに対応するタイムスタンプを生成し、コントローラデバイスは、モーションデータのサンプル、及び対応するタイムスタンプをコンピューティングデバイスに送信し、コンピューティングデバイスは、モーションデータのサンプル、及び対応するタイムスタンプを使用して、コントローラデバイスの位置及び／または向きを判定し、コントローラデバイスの位置及び／または向きが、実行中のインタラクティブアプリケーションのアプリケーション状態を更新するために使用される。
【００１７】
ある実施態様では、モーションセンサデータの所与のサンプルの対応するタイムスタンプを生成することが、同期符号化を使用して、同期符号化からのコントローラデバイスのクロックのドリフトを修正することを含む。
【００１８】
ある実施態様では、方法であって、コンピューティングデバイスによってインタラクティブアプリケーションを実行すること、及びコンピューティングデバイスによって、事前設定されたフレームレートで画像フレームを生成して送信することであって、画像フレームが、実行中のインタラクティブアプリケーションのアプリケーション状態に基づいて生成される、送信することと、ヘッドマウントディスプレイ（ＨＭＤ）によって、コンピューティングデバイスから送信された画像フレームを受信するとともに、ＨＭＤのディスプレイデバイスを介して画像フレームを提示すること、及びＨＭＤの磁気エミッタによって、磁気信号を放出することであって、磁気信号が、コンピューティングデバイスから受信した画像フレームに同期される同期符号化を有する、放出することと、磁気センサを含むコントローラデバイスによって、磁気信号を検出すること、及びコントローラデバイスによって、検出された磁気信号を処理して、コントローラデバイスの位置及び／または向きを識別する磁気位置データを判定することを含み、コントローラデバイスは、検出された磁気信号を更に処理して、同期符号化を読み取り、コントローラデバイスは、同期符号化を使用して、磁気位置データに対応するタイミングデータを生成し、タイミングデータが、同期符号化に基づいて磁気位置データのタイミングを示し、コントローラデバイスは、磁気位置データ、及び対応するタイミングデータをコンピューティングデバイスに送信し、コンピューティングデバイスは、磁気位置データ、及び対応するタイミングデータを使用して、コントローラデバイスの位置及び／または向きを判定し、コンピューティングデバイスは、コントローラデバイスの位置及び／または向きを使用して、実行中のインタラクティブアプリケーションのアプリケーション状態を更新する、方法が提供される。
【００１９】
本開示の他の態様及び利点は、本開示の原理を一例として図で示す添付の図面と併せて、以下の詳細な説明から明らかになるだろう。
【図面の簡単な説明】
【００２０】
本開示は、添付の図面と併せて以下の説明を参照することによって、よりよく理解され得る。
【００２１】
【図１】本開示の一実施態様による、ヘッドマウントディスプレイ（ＨＭＤ）を介した仮想環境とのインタラクションのためのシステムを示す。
【００２２】
【図２】本開示の実施態様による、ＨＭＤ１０２を通して視聴される仮想空間とインタラクトするためのコントローラデバイス１０４を示す。
【００２３】
【図３】本開示の実施態様による、磁気エミッタ２６０及び磁気センサ２１４を概念的に示す。
【００２４】
【図４】本開示の実施態様による、ＨＭＤ１０２とコントローラデバイス１０４との間で位置／モーションデータを同期させるためのシステムを概念的に示す。
【００２５】
【図５】本開示の実施態様による、画像フレームを生成し、それらをＨＭＤのユーザに提示するためのプロセスを概念的に示す。
【００２６】
【図６】本開示の実施態様による、同期のために離散的な周波数変調が適用された磁気信号を示す。
【００２７】
【図７】本開示の実施態様による、コンピュータ１０６、ＨＭＤ１０２、及びコントローラデバイス１０４のクロック間のドリフトを概念的に示す。
【００２８】
【図８Ａ−１】本開示の一実施態様による、ヘッドマウントディスプレイ（ＨＭＤ）を図示する。
【図８Ａ−２】本開示の一実施態様による、ヘッドマウントディスプレイ（ＨＭＤ）を図示する。
【００２９】
【図８Ｂ】一実施態様による、ＨＭＤユーザがクライアントシステムとインタフェースをとり、クライアントシステムが、セカンドスクリーンと呼ばれるセカンドスクリーンディスプレイにコンテンツを提供する一例を示す。
【００３０】
【図９】本開示の一実施態様による、実行中のビデオゲームに関連したＨＭＤの機能を概念的に示す。
【００３１】
【図１０】本開示の一実施態様によるヘッドマウントディスプレイの構成要素を示す。
【００３２】
【図１１】本開示の種々の実施態様によるゲームシステム１６００のブロック図である。
【発明を実施するための形態】
【００３３】
本開示の以下の実施態様は、ヘッドマウントディスプレイとコントローラとの電磁場を介したクロック同期に関するデバイス、方法、及びシステムを提供する。ただし、本開示は、本明細書に記載されている具体的詳細の一部または全部なしで実施することができることは、当業者には明らかであろう。他の例では、本開示を不必要に不明瞭にしないために、周知のプロセス操作を詳細に記載していない。
【００３４】
種々の実施態様において、方法、システム、画像取り込みオブジェクト、センサ、及び関連するインタフェースオブジェクト（例えば、グローブ、コントローラ、周辺デバイス、プロップ、スマートフォンなど）は、ディスプレイ画面上に実質的にリアルタイムでレンダリングされるように構成されたデータを処理するように構成される。概して、実施態様は、ヘッドマウントディスプレイ（ＨＭＤ）であるディスプレイに関して記載されている。しかし、他の実施態様では、ディスプレイは、セカンドスクリーン、ポータブルデバイスのディスプレイ、コンピュータのディスプレイ、ディスプレイパネル、リモート接続された１人以上の（例えば、コンテンツを視聴している、またはインタラクティブな体験を共有している可能性がある）ユーザのディスプレイ、または同種のものであってもよい。「ディスプレイ」という用語は、一般に、ユーザの目で画像を見ることができるようにするデバイスとしてのディスプレイ画面の使用を含むものと理解されているが、本明細書で使用される「ディスプレイ」という用語は、ユーザが画像を見ることができるようにする任意のタイプのイメージングテクノロジ（例えば、網膜投影、ホログラフィック投影など）を、更に包含し得ることが理解されよう。ある実施態様では、ＨＭＤ１０２は、そのような任意のテクノロジ（例えば、網膜投影機）を介して、仮想画像からの光がユーザの目に表示されるようにする投影デバイスを含む。
【００３５】
ワイヤレスコントローラをサポートするＨＭＤシステムが、電磁気学を用いて、ＨＭＤの基準から位置的にワイヤレスコントローラを追跡することができる。ＨＭＤは、位置的な追跡を受けてもよいが、全く異なる追跡システムを使用してもよい。例えば、ＨＭＤは、カメラベースのＳＬＡＭシステムを使用することがある。コントローラは、ＨＭＤに取り付けられた送信機から放出される電磁波の種々の周波数の振幅を測定することによって、ＨＭＤに対するコントローラの位置及び／または向きを追跡する。このシステムの１つの主要な問題は、コントローラとＨＭＤとのリアルタイムクロック信号が異なる場合があることである。この差異（同期誤差）により、ＨＭＤが移動している（したがって、磁気送信源も移動している）とき、ＨＭＤに提示されるＶＲシーン／ＡＲシーンに仮想コントローラをレンダリングしようとする際に、コントローラ追跡に誤差が生じるようになる。したがって、コントローラとＨＭＤとの間のリアルタイムクロックの差異を同期させる／最小化する必要がある。
【００３６】
一般的には、これらのデバイスは、無線伝送（例えば、ＷｉＦｉ（登録商標）またはブルートゥース）を介してホストコンピュータ（例えば、コンソール）に接続され、その通信に対して種々のレイテンシを有し得る。そのため、コントローラとＨＭＤとの間で、無線伝送を介して、ホストコンピュータ経由で、リアルクロックを一定の精度に同期させることは困難である。
【００３７】
現在の電磁追跡システムは、その磁場をほぼ瞬時に磁気受信機に送信することができる。代表的な磁気受信機は、１００Ｋｈｚ超のレートで磁場のサンプルを読み取る。この機構は、上記の問題を解決するのに利用できる。特別な段階（ＨＭＤ及びコントローラの起動時、またはホストによって指定された時間に１回）の間、ＨＭＤに搭載された電磁送信機を独自の方法で変調し／パルス出力させ、それによってＨＭＤのリアルタイムクロック値を符号化してコントローラに信号で伝えることができる。コントローラの磁気センサは、電磁信号からのリアルタイムクロック値のデコード／復調／非パルス化を行うことができるため、コントローラのリアルタイムクロックをＨＭＤのリアルタイムクロックと同期させるように、報告された信号自体のタイムスタンプを調整することができる。磁気受信機のサンプリングレートが非常に高いため、しかるべき同期の精度は１０マイクロ秒をかなり下回る必要がある。
【００３８】
図１は、本開示の実施態様による、ヘッドマウントディスプレイ（ＨＭＤ）を介した仮想環境とのインタラクションのためのシステムを示す。ＨＭＤは、仮想現実（ＶＲ）ヘッドセット、拡張現実（ＡＲ）ヘッドセット、または複合現実ヘッドセット（ＶＲとＡＲの両方が混じり合ったもの）と呼ばれることもある。本明細書で使用するとき、「仮想現実」（ＶＲ）という用語は、一般に、仮想空間にいる感覚をユーザに提供するために、ＨＭＤの（ユーザによって制御される）動きにリアルタイムで応答するように、ＨＭＤ（またはＶＲヘッドセット）を通して、仮想空間を視聴することを含む、仮想空間／仮想環境とのユーザインタラクションのことをいう。例えば、ユーザは、所与の方向を向いているときに仮想空間の３次元（３Ｄ）表示を見ることができ、ユーザが側方を向き、それによってＨＭＤの向きを同じように変えると、仮想空間のその側方の表示がＨＭＤ上にレンダリングされる。
【００３９】
図示の実施態様では、ヘッドマウントディスプレイ（ＨＭＤ）１０２を装着したユーザ１００が示されている。ＨＭＤ１０２は、眼鏡、ゴーグル、またはヘルメットと同じようにして着用され、ビデオゲームまたは他のコンテンツをユーザ１００に表示するように構成される。ＨＭＤ１０２は、ユーザの目にごく近接して表示機構を提供することにより、ユーザに非常に没入感のある体験を提供する。したがって、ＨＭＤ１０２は、ユーザの視野の大部分、または全体さえも占める表示領域をユーザの目のそれぞれに提供することができ、３次元的な奥行き及び遠近感を伴う視聴を提供することもできる。
【００４０】
図示の実施態様では、ＨＭＤ１０２は、有線接続によってコンピュータ１０６に接続されている。他の実施態様では、ＨＭＤ１０２は、無線接続を介してコンピュータ１０６に接続される。場合によっては、コンピュータは、ＨＭＤの内部に配置され、直接接続されている。コンピュータ１０６は、ゲーム機、パーソナルコンピュータ、ラップトップ、タブレットコンピュータ、モバイルデバイス、携帯電話、タブレット、シンクライアント、セットトップボックス、メディアストリーミングデバイスなどを含むがこれらに限定されない、当技術分野で知られている任意の汎用または専用のコンピュータまたはコンピューティングデバイスであってもよい。ある実施態様では、コンピュータ１０６は、ビデオゲームを実行し、このビデオゲームからビデオ及びオーディオを出力して、ＨＭＤ１０２によるレンダリングが行われるように構成され得る。ある実施態様では、コンピュータ１０６は、ＨＭＤを通して視聴することができる仮想空間／仮想環境を提供する他の任意のタイプのインタラクティブアプリケーションを実行するように構成されている。コンピュータ１０６は、ビデオ及びオーディオをビデオゲームからＨＭＤ１０２に（有線接続または無線接続によって）送信して、そこでレンダリングが行われるように構成されている。コンピュータ１０６は、ＨＭＤ１０２へのデータ送信のための送信機、及びＨＭＤ１０２によって送信されたデータを受信するための受信機を含む送受信機を含み得る。
【００４１】
ある実施態様では、ＨＭＤ１０２は、例えば、ＨＭＤ１０２とコンピュータ１０６の両方が接続されているネットワーク１１２を介してなど、代替の機構またはチャネルを介してコンピュータと通信する場合もある。
【００４２】
ユーザ１００は、コントローラデバイス１０４を操作して、ビデオゲームに入力を与えることができる。コントローラデバイス１０４は、ビデオゲームまたはインタラクティブアプリケーションへ入力を与えるためにユーザ１００によって操作可能な任意のタイプのインタフェースオブジェクトであり得る。限定ではなく一例として、コントローラデバイス１０４は、例えば、ゲームコントローラ、プロップ、周辺機器、グローブ、スマートフォン、タブレットなど、仮想環境またはビデオゲームをインタフェースするための任意のタイプのモーション追跡型オブジェクトであり得る。ユーザがＨＭＤ１０２に表示される仮想現実シーンとインタフェースをとる方法は様々であってよく、コントローラデバイス１０４に加えて他のインタフェースデバイスを使用してもよい。例えば、様々な種類の片手用コントローラ、及び両手用コントローラを使用してもよい。ある実施態様では、コントローラに含まれるライトを追跡することによって、またはコントローラに関連する形状、センサ、及び慣性データを追跡することによって、コントローラを追跡することができる。これらの各種のコントローラ、または実行されて１つ以上のカメラで取り込まれる単純な手のジェスチャさえも使用することによって、ＨＭＤ１０２上に提示された仮想現実環境をインタフェースすること、制御すること、操作すること、この仮想現実環境とインタラクトすること、及びこの仮想現実環境に参加することが可能になる。
【００４３】
カメラ１０８は、ユーザ１００が位置するインタラクティブ環境の画像を取り込むように構成され得る。こうした取り込まれた画像は、ユーザ１００、ＨＭＤ１０２、及びコントローラデバイス１０４の位置及び動きを判定するために分析され得る。ある実施態様では、コントローラデバイス１０４は、コントローラデバイスの位置及び向きの判定、ならびに動きの追跡を可能にするために、追跡され得るライト、及び／または慣性センサ（複数可）／モーションセンサ（複数可）を含む。更に、ＨＭＤ１０２は、ＨＭＤ１０２の位置及び向きの判定及び追跡を可能にするために、追跡され得る１つ以上のライト、及び慣性センサ／モーションセンサを含んでもよい。
【００４４】
カメラ１０８は、インタラクティブ環境から音を取り込むために、１つ以上のマイクロフォンを含んでもよい。マイクロフォンアレイによって取り込まれた音は、音源の位置を特定するために処理され得る。特定された位置からの音は、この特定された位置からではない他の音を排除するために、選択的に利用されまたは処理され得る。更に、カメラ１０８は、複数の画像取込デバイス（例えば、立体視可能な一対のカメラ）、ＩＲカメラ、深さカメラ、及びそれらの組み合わせを含むものとしてよい。
【００４５】
カメラ１０８を介したＨＭＤ１０２及びコントローラデバイス１０４の追跡は、オクルージョン問題の影響を受ける可能性がある。例えば、コントローラデバイス１０４のカメラの視野が遮られるようにして、ユーザが、コントローラデバイス１０４を方向転換させるか、または違うやり方でコントローラデバイス１０４を操作する場合、コントローラデバイスの追跡が損なわれる。同様に、ユーザの動きによって、ＨＭＤ１０２またはその一部のカメラの視野が何らかの形で遮られ、それによってＨＭＤ１０２の追跡に悪影響が及ぶ可能性がある。したがって、外部カメラに依存している視覚追跡システムで起こり得るオクルージョン問題の影響を受けない方法で、ＨＭＤ１０２及びコントローラデバイス１０４を追跡することが望ましい。
【００４６】
したがって、ある実施態様では、ＨＭＤ１０２は、「インサイドアウト」追跡を実行するように構成され、すなわち、ＨＭＤは、ＨＭＤの外部にある感知ハードウェアに依存することなく、空間内でのＨＭＤの位置及び向きを判定し、追跡することができる。例えば、ある実施態様では、ＨＭＤ１０２自体が１つ以上の外向きカメラを含む。このような外向きカメラから取り込まれた画像は、ＨＭＤの追跡を可能にするために、例えば、自己位置推定及び環境地図作成の同時実行（ＳＬＡＭ）技術を用いて処理され得る。ある実施態様では、初期化プロセスの間に、そのようなカメラを介してローカル環境をマッピングするために、ＨＭＤ１０２が使用され得る。例えば、そのような初期化プロセスの間に、ユーザは、ローカル環境全体にわたってＨＭＤ１０２を移動させるように要求されてもよく、その結果、インタラクティブな使用の際のＨＭＤの追跡を容易にするように、そのような外向きカメラを介してローカル環境が取り込まれ、マッピングされてもよい。ＨＭＤ１０２は、様々なモーションセンサ（例えば、加速度計、ジャイロスコープ、磁気計、慣性測定ユニット（ＩＭＵ））を更に含んでもよく、そのようなモーションセンサからのデータを、外向きカメラからの取り込み画像データと組み合わせて使用して、ＨＭＤの追跡を可能にするように、センサフュージョン技術を適用してもよい。
【００４７】
ある実施態様では、コントローラデバイス１０４は、ＨＭＤ１０２に対して追跡される。例えば、ある実施態様では、ＨＭＤ１０２は、磁場を放出する磁気源を含み、コントローラデバイス１０４は、磁場を検出する磁気センサを含み、磁気センサのデータは、ＨＭＤ１０２に対して、そして更にはローカル環境の実空間において両方で、コントローラデバイス１０４の位置及び向きを判定し、追跡するために使用される。このような磁気追跡を用いる構成は、ユーザ１００によって操作される際に、コントローラデバイス１０４がＨＭＤ１０２に近接していることが予想されるので、システムが磁場の干渉を受ける傾向が弱いという点で有利である。
【００４８】
ある実施態様では、コントローラデバイス１０４は、ＨＭＤの外向きカメラを使用して、少なくとも部分的に、ＨＭＤ１０２に対して追跡することもできる。そのような外向きカメラから取り込まれる画像は、インタフェースオブジェクト１０４を含むこともあり、そうした取り込み画像を分析して、少なくとも部分的に、ＨＭＤ１０２に対するインタフェースオブジェクト１０４の位置／向きを判定することができる。
【００４９】
ある実施態様では、コンピュータ１０６は、クラウドゲーム／アプリケーションプロバイダ１１４とネットワーク１１２を介して通信するシンクライアントとして機能する。そのような実施態様では、一般的に言えば、クラウドゲーム／アプリケーションプロバイダ１１４は、ユーザ１０２によってプレイされているビデオゲーム（またはインタラクトさせているアプリケーション）を維持し、実行する。コンピュータ１０６は、ＨＭＤ１０２、コントローラデバイス１０４、及びカメラ１０８からの入力をクラウドゲームプロバイダに送信し、クラウドゲームプロバイダは、この入力を処理して、実行中のビデオゲームのゲーム状態に反映させる。実行中のビデオゲームからの出力、例えば、ビデオデータ、オーディオデータ、及び触覚フィードバックデータなどは、コンピュータ１０６に送信される。コンピュータ１０６は、このデータを更に処理した後に送信する場合もあれば、または関連デバイスに直接データ送信する場合もある。例えば、ビデオストリーム及びオーディオストリームはＨＭＤ１０２に提供されるのに対して、触覚／振動フィードバックコマンドはコントローラデバイス１０４に提供される。
【００５０】
ある実施態様では、ＨＭＤ１０２、コントローラデバイス１０４、及びカメラ１０８は、それ自体が、例えばクラウドゲームプロバイダ１１４と通信するためにネットワーク１１２に接続するネットワークデバイスであってもよい。ある実施態様では、コンピュータ１０６は、ビデオゲーム処理を実行するのではなく、ネットワークトラフィックの通過を促進するルータなどのローカルネットワークデバイスであってもよい。ＨＭＤ１０２、コントローラデバイス１０４、及びカメラ１０８によるネットワークへの接続は、有線式であってもよいし、または無線式であってもよい。
【００５１】
更に、本開示の実施態様は、ヘッドマウントディスプレイに関して記載され得るが、他の実施態様では、本実施態様に従って、ビデオをレンダリングし、及び／またはインタラクティブなシーンまたは仮想環境の表示を提供するように構成され得る、ポータブルデバイス画面（例えば、タブレット、スマートフォン、ラップトップなど）または他の任意のタイプのディスプレイを含むがこれに限定されない、非ヘッドマウントディスプレイを代わりに使ってもよいことが理解されよう。
【００５２】
図２は、本開示の実施態様による、ＨＭＤ１０２を通して視聴される仮想空間とインタラクトするためのコントローラデバイス１０４を示す。概して、コントローラデバイス１０４は、手持ち型であるように、及び／またはユーザの手２００に固定されるように構成されている。ある実施態様では、コントローラデバイス１０４をユーザの手２００に固定するためのストラップ（またはバンド、または他の取り付け機構）が提供される（図示せず）。ある実施態様では、そのようなストラップは、ユーザの手２００の手のひら部分に巻き付き、それによってコントローラデバイス１０４をユーザの手のひらに対して固定するように構成されている。ある実施態様では、そのような手のひらストラップは、ストラップの一部分／一区間をコントローラデバイス１０４の側面に固定し／取り付けながら、使用時にユーザの手のひらを実質的に取り巻くように構成され、それによってコントローラデバイスをユーザの手に固定する。ある実施態様では、ストラップ機構は、コントローラをユーザの手のひらに固定する、ロックされた構成と、ストラップを緩める、及び／またはストラップの一部分をコントローラの本体から遠ざける、解放された構成との間でストラップを切り替えできるようにするロック機構を含む。したがって、ロック機構は、コントローラデバイスを、ユーザの手にしっかりと掴ませるか、またはユーザの手から部分的に解放させることができる。
【００５３】
ある実施態様では、コントローラデバイス１０４は、コントローラデバイス１０４をユーザの手首に固定するためのリストストラップ２５０を含む。
【００５４】
コントローラデバイス１０４は、コントローラデバイス１０４が配置されているローカル環境の３次元実空間内で追跡可能に構成されている。このために、コントローラデバイス１０４は、限定ではなく一例として、１つ以上の加速度計、磁気計、及びジャイロスコープを含む、種々のモーションセンサ／向きセンサ／慣性センサのうちのいずれかを含み得る。更に、コントローラデバイス１０４は、ＨＭＤ１０２中に含まれる磁気エミッタ２６０によって放出される磁場の強度及び／または向きを検出するように構成された１つ以上の磁気センサ２１４（例えば、磁気計、ホール効果センサ、誘導センサなど）を含み得る。モーションセンサ／向きセンサ／慣性センサ及び磁気センサからのデータまたは情報は、コントローラデバイス１０４の位置及び向きを判定し、追跡するために、処理され得る。そのようなデータ処理は、コントローラデバイス１０４及び／またはコンピューティングデバイス１０６及び／またはＨＭＤ１０２によって実行され得る。
【００５５】
図示の実施態様では、コントローラデバイス１０４は、ユーザの手２００によって保持され、または把持されるように構成された主ハウジング２１２を含む。コントローラデバイス１０４は、更に、コントローラデバイス１０４を手に持つときに、ユーザの手２００の親指２０２が自然に降りるであろう位置に配置された親指パッド２１８を含む。ある実施態様では、親指パッドは、タッチベースの入力を提供することができるタッチセンシティブ表面またはタッチパッドである。ある実施態様では、親指パッドは、方向入力を容易にする方向性パッドである。ある実施態様では、親指パッドは、クリック可能であるか、またはボタンと同じように押し込まれることが可能である。
【００５６】
親指パッド２１８は、親指２０２の親指パッド２１８への近接を検出するように構成された近接センサ２３４を更に含む。その際、近接センサ２３４は、ユーザの親指２０２の屈曲量または伸展量を示してもよい。
【００５７】
トリガ２２０は、コントローラデバイス１０４を操作する際に、ユーザの手２００の人差し指２０４によって操作されるように構成されており、一方、トリガ２２２は、ユーザの手２００の中指２０４によって操作されるように構成されている。トリガ２２０及び２２２は、更に、それぞれ近接センサ２３６及び２３８（図２Ｂに示す）を含み、これらの近接センサ２３６及び２３８は、それぞれユーザの人差し指２０４及び中指２０６のトリガ２２０及び２２２への近接を検出するように構成されている。したがって、近接センサ２３６及び２３８は、それぞれ人差し指及び中指の屈曲量または伸展量を示す。すなわち、ユーザの人差し指２０４の屈曲が増加する（伸展が減少する）と、近接センサ２３６までのその近さが増加する。そして、ユーザの人差し指２０４の屈曲が減少する（伸展が増加する）と、近接センサ２３６までのその近さが減少する。同様に、ユーザの中指２０６の屈曲が増加する（伸展が減少する）と、近接センサ２３８までのその近さが増加する。そして、ユーザの中指２０６の屈曲が減少する（伸展が増加する）と、近接センサ２３８までのその近さが減少する。
【００５８】
更に、コントローラデバイス１０４は、近接センサ２４０及び２４２（図２Ｃに示す）を含み、これらの近接センサ２４０及び２４２は、それぞれユーザの薬指２０８及び小指２１０の近接を検出するように、ハウジング２１２の下部に沿った位置に配置される。したがって、近接センサ２４０及び２４２は、それぞれ薬指及び小指の屈曲量または伸展量を示す。すなわち、ユーザの薬指２０８の屈曲が増加する（伸展が減少する）と、近接センサ２４０までのその近さが増加する。そして、ユーザの薬指２０８の屈曲が減少する（伸展が増加する）と、近接センサ２４０までのその近さが減少する。同様に、ユーザの小指２１０の屈曲が増加する（伸展が減少する）と、近接センサ２４２までのその近さが増加する。そして、ユーザの小指２１０の屈曲が減少する（伸展が増加する）と、近接センサ２４２までのその近さが減少する。
【００５９】
コントローラデバイス１０４は、近接センサ２２６、２２８、２３０、及び２３２を有するバンド２２４を更に含む。これらの近接センサは、これらの指が伸ばされたときに、人差し指、中指、薬指、及び小指の指先にそれぞれ近接するように、バンド２２４の構造によって配置される。つまり、ユーザの人差し指２０４の伸展が増加する（屈曲が減少する）と、近接センサ２２６までのその近さが増加する。そして、ユーザの人差し指２０４の伸展が減少する（屈曲が増加する）と、近接センサ２２６までのその近さが減少する。ユーザの中指２０６の伸展が増加する（屈曲が減少する）と、近接センサ２２８までのその近さが増加する。そして、ユーザの中指２０６の伸展が減少する（屈曲が増加する）と、近接センサ２２８までのその近さが減少する。ユーザの薬指２０８の伸展が増加する（屈曲が減少する）と、近接センサ２３０までのその近さが増加する。そして、ユーザの薬指２０８の伸展が減少する（屈曲が増加する）と、近接センサ２３０までのその近さが減少する。ユーザの小指２１０の伸展が増加する（屈曲が減少する）と、近接センサ２３２までのその近さが増加する。そして、ユーザの小指２１０の伸展が減少する（屈曲が増加する）と、近接センサ２３２までのその近さが減少する。
【００６０】
上記の点から見て、コントローラデバイス１０４は、ユーザの人差し指、中指、薬指、及び小指の屈曲／伸展を検出するために、指ごとに２つの近接センサが使用されるように構成され得る。したがって、各指は対応する近接センサ対を有し、センサは、センサが割り当てられた所与の指の屈曲／伸展の平面に実質的に沿って整列しているが、指の可動域の両端に位置している。例えば、センサ２２６及び２３６は、ユーザの人差し指２０４を検出するように構成されており、ユーザの人差し指２０４の屈曲／伸展の平面に実質的に沿って整列している。更に、センサ２２６は、人差し指２０４の遠位端に、伸ばされたときに近接する（または接触する可能性がある）ように配置されるのに対して、センサ２３６は、人差し指２０４の近位端に、伸ばされたときに更に近づいているように配置される。他の指のセンサ対に対しても同様の配置及び位置調整が適用されることを理解されるであろう。
【００６１】
したがって、ある実施態様では、伸ばされたときのユーザの指の遠位端及び近位端に対するセンサそれぞれの位置調整に基づいて、センサ２２６、２２８、２３０、及び２３２は遠位センサであるとされる一方で、センサ２３６、２３８、２４０、及び２４２は近位センサであるとされる。所与の指の近位センサ及び遠位センサの対は、所与の指の姿勢を判定するために合わせて利用される。所与の指の遠位センサ及び近位センサの近接感知範囲は、互いに重なり得ることが理解されよう。したがって、ある実施態様では、指の姿勢が（例えば、コントローラデバイス１０４の構造／形態によって可能にされる）最大限に屈曲した姿勢から最大限に伸展した姿勢に変化するとき、指は、最初に、（遠位センサの検出範囲内ではないので）近位センサのみで検出可能であり、次いで指が、依然として近位センサの検出範囲内にありながら、遠位センサの検出範囲内に入るときに、指は、近位センサ及び遠位センサの両方で検出可能であり、最後に指が、近位センサの検出範囲から離れたとき、指は遠位センサのみで検出可能であり得る。
【００６２】
具体的に示していないが、ある実施態様では、コントローラデバイス１０４は、１つ以上のライトまたは照明オブジェクトを含んでもよく、これは、ローカル環境の取り込み画像において認識され、コントローラデバイス１０４の位置及び向きの追跡を可能にするために追跡され得る。限定ではなく一例として、１つ以上のライトを、コントローラデバイス１０４のバンド２２４、及び／またはコントローラデバイス１０４のハウジング２１２に沿って配置してもよい。
【００６３】
図示のように、ＨＭＤ１０２は、ローカル環境の画像を取り込むように構成された外向きカメラ２６２ａ及び２６２ｂを含み、そうした取り込まれた画像は、ローカル環境でのＨＭＤ１０２の位置／向きを判定するために処理されて分析される。上記のように、ＨＭＤ１０２は、コントローラデバイス１０４の磁気センサ２１４によって感知される磁場を放出するように構成された磁気エミッタ２６０を含む。感知された磁場は、ＨＭＤ１０２に対するコントローラデバイス１０４の位置／向きを判定するのに使用される。
【００６４】
図３は、本開示の実施態様による、磁気エミッタ２６０及び磁気センサ２１４を概念的に示す。ある実施態様では、磁気エミッタ２６０は、３つの垂直な軸に沿って整列するように、互いに垂直な３つのエミッタコイルを含む。エミッタコイルは、同一点を中心とするように同心円状に配置され得る。エミッタコイルのそれぞれは、他のエミッタコイルとは異なる周波数でＡＣ磁場を放出するように構成してもよい。
【００６５】
ある実施態様では、磁気センサ２１４は、３つの垂直な軸に沿って整列するように、互いに垂直な３つのセンサコイルを含む。センサコイルは、同一点を中心とするように同心円状に配置され得る。センサコイルのそれぞれは、磁気エミッタ２６０によって生成された磁場を受け取るように構成され得る。概して、磁気エミッタ２６０によって生成された磁場は、磁気センサ２１４のセンサコイル内に電流を誘導し、この電流は、磁気エミッタ２６０に対する磁気センサ２１４の位置及び／または向き、そして更には、ＨＭＤ１０２に対するコントローラデバイス１０４の位置及び／または向きを判定するために処理される。誘導電流は、放出された磁場の周波数によって生成される時間的に変化する磁束に合わせて時間的に変化する出力電圧を生成することが理解されよう。したがって、所与のセンサコイルにおける誘導電流の周波数を検出して、磁場をもたらしたエミッタコイルを特定することができる。
【００６６】
上記の磁気エミッタ２６０及び磁気センサ２１４を使用することによって、６自由度追跡（６ＤＯＦ）追跡を提供することができる。すなわち、磁気エミッタ２６０に対する磁気センサ２１４の３次元位置を判定して追跡することができ、磁気エミッタ２６０に対する磁気センサ２１４の３次元方位（例えば、ピッチ、ロール、及びヨー）を判定して追跡することができる。拡大解釈すれば、これによって、ＨＭＤ１０２に対するコントローラデバイス１０４の６自由度の追跡が提供される。
【００６７】
コントローラデバイス１０４などのインタフェースオブジェクトを追跡するための磁気追跡の仕組みの使用は有用であり、コントローラの外部カメラベースの追跡は、オクルージョン問題（例えば、ユーザが向きを変え、コントローラのカメラの視野を遮る）の影響を受ける。また、磁気エミッタ２６０がＨＭＤ１０２中に含まれていることによって、コントローラデバイス１０４を追跡するための追加の周辺デバイスが不要となる。
【００６８】
しかしながら、コントローラデバイス１０４の追跡がＨＭＤ１０２を介して実行されており、ユーザ１００が空間内で頭部を動かすときにＨＭＤ１０２自体が移動するため、問題が生じる。平均的なヒューマンユーザは、約３５０度／秒で頭部を極めて容易に回転させることができ、特定の状況では最大約１０００度／秒で頭部を回転させることができる。そして、そのようなヒューマンユーザは、コントローラデバイス１０４を更に速く操作することができる。したがって、ＨＭＤ１０２及びコントローラデバイス１０４からの位置／モーションデータがコンピュータ１０６に伝達され、（ＨＭＤ１０２上への次の表示のために）ＨＭＤ１０２に伝達される次の画像フレームが処理されてレンダリングされるのにかかる時間の間に、ＨＭＤ１０２及び／またはコントローラデバイス１０４は移動している可能性がある。
【００６９】
概して、所与の時点で、コントローラデバイス１０４は、磁気信号感知を介して位置／向きのサンプルを取得し、慣性測定ユニット（ＩＭＵ）サンプルを取得する。その間、ユーザ１００の頭部は動き得る。全ての信号は、将来的にＨＭＤに表示されるときに正しい表示を示すように、ＨＭＤ１０２が次のフレームをレンダリングすることになる位置を予測するカルマンフィルタによってフィルタ処理される。したがって、レンダリングされたフレームレート（例えば１２０Ｈｚ）に合っている最も正確なコントローラの位置を得るためには、コントローラデバイス１０４を追跡している間に、頭部がＨＭＤ１０２も動かしているという事実を考慮することが重要である。また、システムが、ＨＭＤ１０２とコントローラデバイス１０４との間に正確な同期を取れていない場合、システムがコントローラの位置を得る際に、不一致が発生する。それらが同期していない場合、ＨＭＤ１０２の表示におけるコントローラデバイス１０４のレンダリングは、ユーザ１００が動き回るとき、不安定に揺れ動いて見える傾向がある。したがって、ＨＭＤ１０２及びコントローラデバイス１０４からのモーションサンプルが、互いに一致し得るように、またはそれ以外の場合は互いに対して時間的に正確に配列され得るように、２つのシステムを同期させるための正確な方法を有することが重要である。これには、ＨＭＤ１０２及びコントローラデバイス１０４のクロックを同期させること、及び／またはそれらの間のドリフトを修正することが必要とされ得る。
【００７０】
ブルートゥース（登録商標）またはＷｉＦｉ（登録商標）などの無線プロトコルは、過大なオーバーヘッド（例えば１０ｍｓの遅延）を必要とし、データが十分に正確なタイミングで送信／受信されないため、ＨＭＤ１０２とコントローラデバイス１０４との間の同期には適していないことが理解されるであろう。したがって、同期を達成するための他の方法が求められている。
【００７１】
図４は、本開示の実施態様による、ＨＭＤ１０２とコントローラデバイス１０４との間で位置／モーションデータを同期させるためのシステムを概念的に示す。図示の実施態様では、コンピュータ１０６は、インタラクティブアプリケーション（例えば、ビデオゲーム）を実行し、ＨＭＤ１０２に送信される画像フレーム４００を生成する。ある実施態様では、画像フレームの送信は、コンピュータ１０６とＨＭＤ１０２との間の有線接続を介して行われるのに対して、他の実施態様では、送信は無線接続を介して行われる。
【００７２】
ある実施態様では、画像フレーム４００の送信は、画像フレームが、ＨＭＤ１０２のディスプレイを介した提示のために、一定のフレームレートで確実に提供されるように、同期接続を介して行われる。ある実施態様では、画像フレーム４００の送信は、ＨＭＤ１０２のディスプレイによるラスタ走査のためにデータを符号化するビデオ信号によって設定される。ある実施態様では、ビデオ信号は、ＨＭＤ１０２のディスプレイのピクセルのパラメータ（例えば明度、輝度値／強度値など）を設定するデータ信号と、各フレーム、ライン、及びピクセルのデータがいつ開始し、いつ終了するかを設定するタイミング信号とを含む。タイミング信号は、図示の実施態様において概念的に示されている。垂直同期信号４０２は、各画像フレームの開始及び終了を識別する。水平同期信号４０４は、所与の画像フレームの各ラインの開始及び終了を識別する。そして、ピクセルクロック信号４０６は、各ピクセルの開始及び終了を識別し、ビデオ信号のデータ転送速度を設定する。
【００７３】
画像フレーム４００は、一定のフレームレート（例えば、１２０Ｈｚ、２４０Ｈｚなど）で提供されることが理解されよう。したがって、垂直同期信号４０２は、フレームレートに合わせて周期的である。すなわち、垂直同期信号４０２は、フレームレートと同じ一定の周期的レート（または周波数）を有する。そのため、この垂直同期信号４０２は、システム内のデバイス間の同期を可能にする信頼できる信号として使用され得る。
【００７４】
例えば、上記のように、ＨＭＤ１０２の位置及び／または向きは、ＨＭＤ１０２のＩＭＵ、及びＨＭＤ１０２の外向きカメラから取得され、及び／または処理される位置／モーションデータ４０８を使用して追跡され得る。この位置／モーションデータ４０８は、垂直同期信号４０２に基づいて同期させることができる。例えば、位置／モーションデータ４０８は、垂直同期信号４０２に基づいてタイムスタンプ付けされてもよく、その結果、位置／モーションデータ４０８は、垂直同期信号４０２と同期されるタイムスタンプに対応付けられる。
【００７５】
例えば、垂直同期信号４０２は、既知である事前設定された周波数を有し、したがって、この周波数がコンピュータ１０６に同期されるクロックを設定する。例えば、垂直同期信号４０２の周波数が１２０Ｈｚであることは、垂直同期信号４０２の１２０サイクルが、コンピュータ１０６によって判定される１秒の時間を規定することを意味する。ＨＭＤ１０２は、それ自体のクロック（例えば、水晶振動子クロック）を有してもよく、ＨＭＤ１０２のクロックと垂直同期信号４０２との間のドリフトが追跡され得る。位置／モーションデータ４０８には、ＨＭＤ１０２のクロックに基づいて最初にタイムスタンプを付けることができるが、このタイムスタンプを調整して、ＨＭＤ１０２のクロックと垂直同期信号４０２との間の識別されたドリフトを修正できる。このようにして、ＨＭＤ１０２の位置／モーションデータ４０８を、コンピュータ１０６に同期させることができる。位置／モーションデータ４０８は（コンピュータ１０６のクロックに合わせて、本明細書で説明される垂直同期信号４０２を使用することによって）、正しくタイムスタンプ付けされているので、ＨＭＤ位置／モーションデータ４０８は、非同期接続を介してコンピュータ１０６に送信され得ることが理解されよう。このことは、タイムスタンプが適切に同期されているために可能なことであり、たとえコンピュータ１０６によって同期的に受信されなくても、位置／モーションデータを利用して、ＨＭＤ１０２の位置及び／または向きを正確に判定し、及び／または予測することができる。
【００７６】
ある実施態様では、ＨＭＤ１０２の磁気エミッタ２６０は、垂直同期信号４０２と同期し、その結果、コンピュータ１０６と同期するようにして符号化される磁気信号を（ＡＣ電磁場を生成することにより（概念的に参照番号４１０で示される））放出するように構成されている。磁気信号４１０の同期符号化を提供するために、様々な技法を使用できることが理解されよう。
【００７７】
ある実施態様では、磁気エミッタ２６０は、垂直同期信号４０２に同期した周波数で磁気信号４１０を放出するように構成されている。例えば、磁気エミッタ２６０は、連続波（例えば、正弦波、方形波、三角波など）として磁気信号４１０を放出してもよく、磁気信号４１０の振幅の山と谷とが、垂直同期信号４０２と同期するように構成してもよい。限定ではなく一例として、磁気信号４１０は、フレームレートと同じか、またはフレームレートの倍数である周波数を有し得る。ある実施態様では、磁気信号４１０の同期を達成するために、垂直同期信号４０２が使用されて、磁気エミッタ２６０による磁気信号４１０の生成を駆動する。
【００７８】
そのような実施態様では、磁気センサ２１４は、磁気信号４１０を検出し、コントローラデバイス１０４は、磁気信号４１０のピークを検出するように構成され得る。磁気信号４１０の検出されたピークは、上記のように同期され、垂直同期信号４０２との同期を確保するために、コントローラデバイス１０４によってクロック信号として利用され得る。単純な例では、磁気信号４１０が１２０Ｈｚの周波数を有する場合、垂直同期信号４０２及びコンピュータ１０６に合わせて、連続して検出される毎１２０ピークが１秒の時間に等しくなる。存在する場合は、コントローラデバイス１０４のクロックと磁気信号４１０によって設定されたクロックとの間のドリフトを判定し、追跡することができる。
【００７９】
コントローラデバイス１０４は、コントローラデバイス１０４のＩＭＵからＩＭＵデータ４１４を取得し、及び／または処理するように構成され、磁気センサ２１４から磁気データ４１６を取得し、及び／または処理するように構成されている。このデータは、最初は、コントローラデバイス１０４のクロックに基づいてタイムスタンプが付けられてもよいが、このタイムスタンプは、コントローラデバイス１０４のクロックと磁気信号４１０との間の識別されたドリフトを修正するために調整されてもよい。磁気信号４１０は、コンピュータ１０６から発信される垂直同期信号４０２に同期されるので、このようにして、コントローラデバイス１０４のコントローラ位置／モーションデータ４１２を、コンピュータ１０６に同期させることができる。位置／モーションデータ４１２は（コンピュータ１０６のクロックに合わせて、本明細書で説明される磁気信号４１０を使用することによって）、タイムスタンプデータ４１８で正しくタイムスタンプ付けされているので、コントローラ位置／モーションデータ４１２もまた、非同期接続を介してコンピュータ１０６に送信され得ることが理解されよう。このことは、タイムスタンプデータ４１８が適切に同期されているために可能なことであり、たとえコンピュータ１０６によって同期的に受信されなくても、位置／モーションデータを利用して、コントローラデバイス１０４の位置及び／または向きを正確に判定し、及び／または予測することができる。
【００８０】
磁気信号４１０の振幅は距離とともに変化するが（ガウス指数減衰）、磁気信号４１０の周波数は距離とともに変化しないことが理解されるであろう。更に、上記のように、磁気エミッタ２６０は、それぞれが他のコイルの周波数とは異なる所与の周波数で磁気信号を生成する複数のコイル（例えば、３つのコイル）を含み得る。複数の周波数は、磁気センサ２１４によって検出され得、組み合わせて利用されて、よりロバストな同期を提供することができる。
【００８１】
ある実施態様では、磁気信号４１０は、同期符号化のための搬送波として利用される。すなわち、磁気信号４１０は、ＨＭＤ１０２クロックに合わせて（必ずしも垂直同期信号４０２に基づく必要はなく）所与の周波数を有するように生成されるが、垂直同期信号４０２に同期する更なる変調が適用される。したがって、磁気信号４１０は、変調された搬送波として機能し、この変調は、垂直同期信号４０２への同期を可能にする同期データを符号化する。ある実施態様では、変調は、基礎となる搬送波の周波数よりも大幅に低い周波数を有する。例えば、磁気信号４１０は、約２０〜２００ｋＨｚの基礎となる周波数を有していてもよく、一方で、変調は、限定ではなく一例として、２４０Ｈｚの周波数を有する（更にまた、２４０Ｈｚの変調周波数は垂直同期信号４０２に特別に同期しているが、基礎となる２０〜２００ｋＨｚ周波数は同期していない）。
【００８２】
様々な実施態様では、垂直同期信号４０２への同期を可能にするために、コントローラデバイス１０４によって検出され、復号化／復調／処理され得ることを条件に、任意のタイプの変調が同期符号化に適用され得る。ある実施態様では、変調は、垂直同期信号４０２に同期した周期的なデューティサイクルを有する。ある実施態様では、振幅を周期的に循環させること（例えば正弦波など）、振幅をパルス化すること（パルス及び／またはギャップを、垂直同期信号４０２に同期させてもよい）、振幅を周期的に増加または減少させることなどによって、振幅変調が適用される。例えば、図示の実施態様では、磁気信号４１０は、基礎となる振幅ｈ１を有するが、垂直同期信号４０２に同期した規則的な速度で、周期的に振幅をｈ２にスパイクするように変調される。ある実施態様では、周波数を周期的に循環させること（例えば、正弦波など）、離散的な周波数値の間を周期的に変化させることなどによって、周波数変調が適用される。
【００８３】
磁気信号４１０の振幅は、変調された場合でも、磁気センサ２１４からの磁気エミッタ２６０の距離の表示を提供し、その一方で、変調は、垂直同期信号４０２のタイミングを示すことが理解されよう。したがって、磁気信号４１０は、同期の目的で搬送波として使用される。このようにして、コントローラデバイス１０４を追跡するために使用される既存の磁気信号４１０は、適切な同期を可能にするためにも使用される。
【００８４】
ある実施態様では、磁気信号４１０の符号化の検出は、ＩＭＵデータ４１４のサンプリングをトリガする。例えば、磁気信号４１０におけるピーク（例えば、振幅のスパイク）または他の変調イベントの検出は、コントローラデバイス１０４のＩＭＵのサンプリングをトリガして、ＩＭＵデータ４１４及びその関連するタイムスタンプデータを生成するように構成されてもよい。このようにして、ＩＭＵのサンプリングは、上記のように垂直同期信号４０２に同期される符号化された磁気信号４１０に基づいて同期される。
【００８５】
図５は、本開示の実施態様による、画像フレームを生成し、それらをＨＭＤのユーザに提示するためのプロセスを概念的に示す。ＨＭＤモーション／入力データ４０８及びコントローラモーション／入力データ４１２が、コンピュータ１０６に提供される。これらのデータは、本開示に記載されるようにタイムスタンプ付けされ、それらのタイムスタンプが、垂直同期信号４０２に同期されるように調整される。動作５００において、実行中のビデオゲームのゲーム状態（または、ＶＲアプリケーションなど、実行中のインタラクティブアプリケーションのアプリケーション状態）が、ＨＭＤモーション／入力データ４０８及び／またはコントローラモーション／入力データ４１２に基づいて更新される。動作５０２において、更新されたゲーム／アプリケーション状態に基づいて、次の画像フレームがレンダリングされる。これには、生成されたフレームがＨＭＤ１０２のディスプレイにスキャンアウトされ、それによってユーザ１００に見えるようになると予想される時間におけるＨＭＤ１０２及びコントローラデバイス１０４の将来の位置及び向きを予測するために、ＨＭＤ位置／モーションデータ及びコントローラ位置／モーションデータへのカルマンフィルタ処理の適用が必要とされ得る。
【００８６】
生成された画像フレームは、コンピュータ１０６のＶＳＹＮＣである垂直同期信号４０２でスキャンアウトされる。画像フレームは、有線接続または無線接続を介して転送され、その後ＨＭＤ１０２でスキャンされる。動作５０４において、ＨＭＤ１０２ディスプレイは、それ自体のＶＳＹＮＣに応じてスキャンアウトし、視聴のために画像フレームをユーザ１００に提示する。
【００８７】
これらのプロセスは全て時間がかかるため、フレームレンダリングは本質的に予測的なものであることが理解されるであろう。すなわち、フレームのレンダリングは、ＨＭＤ１０２のディスプレイを通じて画像フレームが提示／スキャンアウトされる予定の時刻におけるＨＭＤ１０２及びコントローラデバイス１０４の予測された位置／向きに基づいている。この予測レンダリングは、画像フレームがＨＭＤ１０２でレンダリングされ、転送され、最終的にスキャンアウトされる間に、ユーザの頭部が動いている可能性があり、したがって、レンダリングされた画像フレームがユーザ１００に見えるようになる頃には、ユーザの視界が変化しているために、重要である。したがって、ＨＭＤ１０２及びコントローラデバイス１０４の予測された将来の位置及び向きに基づいて画像フレームを予測的にレンダリングすることにより、画像フレームが、視聴時のユーザの頭部の実際の位置とより良く一致するという点で、より良いユーザ体験が提供される。この予測レンダリングは、ユーザに仮想シーンが提示されたときに、その仮想シーンの知覚される待ち時間を削除するために重要である。
【００８８】
ＨＭＤ位置／モーションデータ４０８及びコントローラ位置／モーションデータ４１２に関連付けられるタイムスタンプデータは、時間の単位で具体的に表現される必要はないが、タイムスタンプデータは、それが関連付けられた位置データまたはモーションデータ（例えば、ＩＭＵデータ、磁気データ、画像ベースの追跡データなど）のタイミングを正確に判定できるものであれば、任意の単位のカウンタなど、任意の数値形式または数値スケールを有するものであってよいことが理解されるべきである。
【００８９】
ある実施態様では、コンピュータ１０６は、システムの様々なデバイス間の既知のオフセットを使用して、ＨＭＤ位置／モーションデータ４０８及びコントローラ位置／モーションデータ４１２を処理するように構成されている。例えば、ＨＭＤ位置／モーションデータ４０８は、垂直同期信号４０２に同期してタイムスタンプ付けされる（例えば、垂直同期信号４０２からのＨＭＤ１０２クロックのドリフトを修正するように調整される）。しかしながら、タイムスタンプは、垂直同期信号４０２が生成され、ＨＭＤ１０２に転送され、ＨＭＤ１０２で処理される（例えば、スキャンインされ、同期のために適用される）ことに起因する遅延を必ずしも解決しない。この遅延は、一定であり、かつ事前設定されているため、コンピュータ１０６は、ＨＭＤ位置／モーションデータ４０８のタイムスタンプを解釈する際に、この遅延をコンピュータ１０６の垂直同期信号４０２からの正規のオフセットとして考慮するように構成されてもよい。すなわち、タイムスタンプは、コンピュータ１０６によって、垂直同期信号４０２から事前設定された量だけオフセットされているものとして処理され得る。
【００９０】
同様にして、コントローラ位置／モーションデータ４１２のタイムスタンプデータ４１８もまた、コンピュータ１０６からコントローラデバイス１０４へ同期情報を伝達する際の遅延を必ずしも解決しなくてもよい。すなわち、垂直同期信号４０２の生成、ＨＭＤ１０２への転送、符号化された磁気信号４１０を生成するためのＨＭＤ１０２による処理、磁気信号４１０の感知及びコントローラデバイス１０４による復号化、ならびに同期のための復号化情報の適用に起因する累積的な遅延がある。この場合も先と同様に、この遅延は、一定であり、かつ事前設定されているため、コンピュータ１０６は、コントローラ位置／モーションデータ４１２のタイムスタンプデータ４１８を解釈する際に、この遅延をコンピュータ１０６の垂直同期信号４０２からの正規のオフセットとして考慮するように構成されてよい。すなわち、タイムスタンプは、コンピュータ１０６によって、この累積的な遅延を反映する事前設定された量だけ垂直同期信号４０２からオフセットされているものとして処理され得る。
【００９１】
図６は、本開示の実施態様による、同期のために離散的な周波数変調が適用された磁気信号を示す。ある実施態様では、磁気信号は、基礎となる搬送波の事前設定された間隔に挿入された種々の周波数のラウンドロビンを採用している。図示の実施態様では、基礎となる搬送波は周波数ｆｄを有する。搬送波は、互いに異なり、周波数ｆｄとは異なる３つの異なる追加周波数に変調される。図示のように、これらの追加周波数は周波数ｆｓ１、ｆｓ２、及びｆｓ３を含む。周波数ｆｓ１、ｆｓ２、及びｆｓ３のタイミングは、垂直同期信号４０２に同期するように構成されている。互いに異なる複数の変調周波数を使用することによって、同期タイミングをより強固に確立することができる。
【００９２】
図７は、本開示の実施態様による、コンピュータ１０６、ＨＭＤ１０２、及びコントローラデバイス１０４のクロック間のドリフトを概念的に示す。図示のように、コンピュータ１０６は、ＣＰＵ７００、クロック７０２（例えば、水晶振動子クロック）、及びＧＰＵ７０４を含む。クロック７０２は、ＣＰＵ７００及びＧＰＵ７０４によって実行される様々な処理動作など、コンピュータ１０６の動作を同期させるためのクロック信号を提供する。説明のために、クロックからのクロック信号が１０ＭＨｚの場合、（コンピュータ１０６のクロック信号に従って）１秒の時間の経過のうちに、クロック信号のサイクル数をカウントするカウンタは、１０００万サイクルをカウントする。ＧＰＵ７０４は、限定ではなく一例として、１２０ＨｚのＶＳＹＮＣ信号を生成する。このＶＳＹＮＣ信号は、コンピュータのクロック７０２の信号に基づいており、それによってクロック７０２の信号に同期している。したがって、ＶＳＹＮＣ信号は、１秒の時間のうちに１２０サイクルを示す。
【００９３】
ＨＭＤ１０２は、プロセス動作を実行するためのＣＰＵ７０６と、ＨＭＤクロック信号を生成するクロック７０８（例えば、水晶振動子クロック）とを含む。ＨＭＤクロック信号は、ＨＭＤ１０２における動作のタイミングを管理する。ＨＭＤクロック信号が公称１０ＭＨｚの周波数で生成されている場合、ＨＭＤクロック信号は、クロック性能のばらつきが原因で、コンピュータクロック信号と正確に一致しない場合がある。すなわち、時間の経過とともに、ＨＭＤクロック７０８は、コンピュータクロック７０２からドリフトする。したがって、一例として、図示の実施態様では、コンピュータクロック７０２の信号は、１秒の時間内で１０００万サイクルを示すが、ＨＭＤクロック７０８の信号は、同じ期間にわたって１０，０００，１００サイクルを示す場合がある。すなわち、ＨＭＤクロック７０８は、コンピュータクロック７０２よりもわずかに速く動作している。しかしながら、クロック間のこのドリフトは、ＨＭＤ１０２でＶＳＹＮＣ信号を使用することによって解決され得る。例えば、ＨＭＤ１０２上のクロックサイクルのカウンタは、ＶＳＹＮＣ信号の１２０サイクルごとに１０，０００，１００をカウントし、それによってＶＳＹＮＣ信号（そして更には、コンピュータのクロック信号）に対するＨＭＤクロック信号のドリフト／誤差を識別することができる。ＩＭＵ７１０からのサンプル、及びＨＭＤ１０２の画像取込デバイス７１２からの画像データ（またはそれから処理された位置／モーションデータ）は、最初はＨＭＤクロック７０８の信号に基づいているタイムスタンプを有する。また一方、これらのタイムスタンプは、ＨＭＤクロック信号の識別されたドリフトに基づいて修正され得る。こういうわけで、位置／モーションデータが、処理のためにコンピュータ１０６に返信されるとき、そのタイムスタンプは、ＶＳＹＮＣ信号及びコンピュータクロック７０２に同期される。限定ではなく一例として、１秒台で収集された位置／モーションデータのタイムスタンプには、最初はカウンタ値１０，０００，１００がタイムスタンプ付けされている場合がある。しかし、これは、１０，０００，０００の値に修正されることになる。
【００９４】
ＨＭＤ１０２の磁気エミッタ７１４は、高周波（例えば、２０〜２００ｋＨｚ）の磁気信号を放出するが、コンピュータ１０６から受信したＶＳＹＮＣ信号と同期して、より低い周波数で変調される（例えば、２４０Ｈｚ変調）。
【００９５】
また、コントローラデバイス１０４は、処理動作のためのＣＰＵ７１６、ＩＭＵ７２０、及び磁気センサ７２２の動作タイミングを含む、コントローラデバイス１０４における動作タイミングを管理するクロック７１８を含む。コントローラクロック７１８からのクロック信号は、コンピュータ１０６のクロック信号からドリフトする可能性がある。例えば、コンピュータのクロック信号に従って１秒の時間のうちに、公称２０ＭＨｚの周波数のコントローラクロック信号が、９，９９９，９００サイクルを示すことがある。したがって、コントローラクロック７１８は、コンピュータクロック７０２よりも遅く動作している。また一方、磁気センサ７２２は磁気エミッタ７１４から磁気信号を受信し、感知された磁気信号が復号化／復調されて、ＶＳＹＮＣ信号に同期された２４０Ｈｚ変調を識別する。この情報を使用して、ＩＭＵ７２０及び磁気センサ７２２からのサンプル（またはそれから処理された位置／モーションデータ）のタイムスタンプは、ＶＳＹＮＣ信号、そして更にはコンピュータクロック７０２信号と同期するように、修正することができる。限定ではなく一例として、１秒台で収集された位置／モーションデータのタイムスタンプには、最初はカウンタ値９，９９９，９００がタイムスタンプ付けされている場合がある。しかし、これは、１０，０００，０００の値に修正されることになる。
【００９６】
ある実施態様では、本システムは、任意選択で、光の速度に等しい磁気信号の速度を考慮に入れてもよい。すなわち、本システムでは、磁気信号がＨＭＤ１０２からコントローラデバイス１０４に伝わるのに必要な時間を考慮することができる。これは、ＨＭＤ１０２とコントローラデバイス１０４との間の現在の距離を概算するために、ＨＭＤ１０２及びコントローラデバイス１０４の前もって知られている位置を使用することを必要とし得ることが理解されよう。ユーザの頭から手までの短い距離（＜２ｍ）にわたっては、磁気信号を送信してから、磁気信号を受信するまでの時間差は非常に小さい（＜７ｎｓ）ことが理解される。したがって、ある実施態様では、この差は、システムのパフォーマンスに大きな影響を与えず、ユーザに気づかれないため、安全に無視できるほど小さい場合がある。
【００９７】
本開示の実施態様は、ＨＭＤ及びコントローラデバイスを含むシステムに関連して説明してきたが、本開示の原理は、仮想画像を表示するデバイス（例えば、スマートフォン、タブレット、他のディスプレイなど）を、他の追跡デバイス（例えば、グローブ、ドローンなど）と共に含む任意のシステムに適用できることが理解されよう。
【００９８】
図８Ａ−１及び図８Ａ−２は、本開示の一実施態様による、ヘッドマウントディスプレイ（ＨＭＤ）を図示する。図８Ａ−１は、具体的には、本開示の実施態様によるＨＭＤの一例であるＰｌａｙｓｔａｔｉｏｎ（登録商標）ＶＲヘッドセットを示す。図示のように、ＨＭＤ１０２は、複数のライト１３００Ａ〜１３００Ｈを含む。これらのライトのそれぞれは、特定の形状を持つように構成され得、同一のまたは異なる色を有するように構成され得る。ライト１３００Ａ、１３００Ｂ、１３００Ｃ、及び１３００Ｄは、ＨＭＤ１０２の前面に配置されている。ライト１３００Ｅ及び１３００Ｆは、ＨＭＤ１０２の側面に配置されている。また、ライト１３００Ｇ及び１３００Ｈは、ＨＭＤ１０２の前面と側面とにまたがるように、ＨＭＤ１０２の角に配置されている。ライトは、ユーザがＨＭＤ１０２を使用するインタラクティブ環境の取り込み画像で識別され得ることが理解されよう。ライトの識別及び追跡に基づいて、インタラクティブ環境におけるＨＭＤ１０２の位置及び向きを判定することができる。更に、画像取込デバイスに対するＨＭＤ１０２の特定の向きに応じて、ライトの一部が見える場合と見えない場合とがあることを理解されよう。また、画像取込デバイスに対するＨＭＤ１０２の向きに応じて、ライト（例えば、ライト１３００Ｇ及び１３００Ｈ）の異なる部分が、画像取り込みのために露出されてもよい。
【００９９】
一実施態様では、ライトは、ＨＭＤの現在の状態を近くの他の者に示すように構成され得る。例えば、ライトの一部または全部を、特定の色の配置、強度の配置を有するように構成してもよく、点滅するように、特定のオン／オフ構成、またはＨＭＤ１０２の現在の状態を示す他の配置を有するように構成してもよい。一例として、ライトは、ビデオゲームのアクティブなゲームプレイ（一般に、アクティブなタイムライン中またはゲームのシーン内で発生するゲームプレイ）中に、メニューインタフェース内の移動またはゲーム設定の設定など、（その間にゲームのタイムラインまたはシーンが非アクティブであり、または一時停止され得る）ビデオゲームの他の非アクティブなゲームプレイの態様とは対照的に、異なる構成を表示するように構成されてもよい。ライトは、ゲームプレイの相対的な強度レベルを示すように構成することもできる。例えば、ゲームプレイの強度が増加するとき、ライトの強さ、または点滅の割合が大きくなるようにしてもよい。このようにして、ユーザの外部の者がＨＭＤ１０２上のライトを見て、ユーザが高度のゲームプレイに積極的に従事しており、その時に邪魔されたくないと望み得ることを理解することができる。
【０１００】
ＨＭＤ１０２は、１つ以上のマイクロフォンを更に含んでもよい。図示の実施態様では、ＨＭＤ１０２は、ＨＭＤ１０２の前面に画定されたマイクロフォン１３０４Ａ及び１３０４Ｂと、ＨＭＤ１０２の側面に画定されたマイクロフォン１３０４Ｃとを含む。マイクロフォンのアレイを利用することによって、マイクロフォンのそれぞれからの音を処理して、音源の位置を判定することができる。この情報は、不要な音源の排除、音源と視覚的な識別との関連付けなどを含む様々な形で利用することができる。
【０１０１】
また、ＨＭＤ１０２は、１つ以上の画像取込デバイスを含んでもよい。図示の実施態様では、ＨＭＤ１０２が、画像取込デバイス１３０２Ａ及び１３０２Ｂを含むことを示す。立体視可能な一対の画像取込デバイスを利用することによって、環境の３次元（３Ｄ）画像及びビデオを、ＨＭＤ１０２の視点から取り込むことができる。そのようなビデオをユーザに提示して、ＨＭＤ１０２を装着している間、ユーザに「ビデオシースルー」機能を提供することができる。すなわち、ユーザは、厳密な意味でＨＭＤ１０２を透かして見ることはできないが、それにもかかわらず、画像取込デバイス１３０２Ａ及び１３０２Ｂ（または、例えば、ＨＭＤ１０２の外側本体に配置された１つ以上の外向き（例えば、前向き）カメラ）によって取り込まれたビデオは、あたかもＨＭＤ１０２を透かして見ているかのように、ＨＭＤ１０２の外部の環境を見ることができるのと同等の機能を提供することができる。このようなビデオは、拡張現実体験を提供するように、仮想要素で拡張してもよく、または、他の形で、仮想要素と組み合わせたり、混合したりしてもよい。図示の実施態様では、２つのカメラをＨＭＤ１０２の前面に示したが、任意の方向に向けられてＨＭＤ１０２に備え付けられた、任意の数の外向きカメラがあり得ることを理解されるであろう。例えば、別の実施態様では、環境の追加のパノラマ画像を取り込むために、ＨＭＤ１０２の側面に取り付けられたカメラがあってもよい。更に、ある実施態様では、そのような外向きカメラを使用して、他の周辺デバイス（例えば、コントローラなど）を追跡してもよい。すなわち、ＨＭＤに対する周辺デバイスの位置／向きを、ＨＭＤ上の、そのような外向きカメラから取り込まれた画像において特定して追跡することができ、その後、ローカル環境におけるＨＭＤの既知の位置／向きを使用して、周辺デバイスの真の位置／向きを判定することができる。
【０１０２】
図８Ｂは、ＨＭＤ１０２のユーザ１００がクライアントシステム１０６とインタフェースをとり、クライアントシステム１０６が、セカンドスクリーン１３０７と呼ばれるセカンドスクリーンディスプレイにコンテンツを提供する一例を示す。クライアントシステム１０６は、ＨＭＤ１０２からセカンドスクリーン１３０７へのコンテンツの共有を処理するための統合された電子機器を含んでもよい。他の実施態様では、クライアントシステムと、ＨＭＤ１０２及びセカンドスクリーン１３０７のそれぞれとの間でインタフェースをとる別個のデバイス、モジュール、コネクタを含んでもよい。この一般的な例では、ユーザ１００はＨＭＤ１０２を着用しており、インタフェースオブジェクト１０４でもあり得るコントローラを使用して、ビデオゲームをプレイしている。ユーザ１００によるインタラクティブプレイによって、ビデオゲームコンテンツ（ＶＧＣ）が生成され、これはＨＭＤ１０２に対してインタラクティブに表示される。
【０１０３】
一実施態様では、ＨＭＤ１０２に表示されているコンテンツは、セカンドスクリーン１３０７に共有される。一例では、セカンドスクリーン１３０７を見ている者が、ユーザ１００によってＨＭＤ１０２中にインタラクティブに再生されているコンテンツを視聴することができる。別の実施態様では、別のユーザ（例えば、プレーヤ２）がクライアントシステム１０６とインタラクトして、セカンドスクリーンコンテンツ（ＳＳＣ）を生成する場合がある。プレーヤがコントローラ１０４（または任意のタイプのユーザインタフェース、ジェスチャ、音声、もしくは入力）ともインタラクトすることによって生成されるセカンドスクリーンコンテンツは、クライアントシステム１０６にＳＳＣとして生成され得、ＳＳＣは、ＨＭＤ１０２から受信されるＶＧＣと共にセカンドスクリーン１３０７上に表示され得る。
【０１０４】
したがって、ＨＭＤユーザと同じ場所にいるか、またはＨＭＤユーザから離れている場合がある他のユーザによるインタラクティビティは、ＨＭＤユーザと、ＨＭＤユーザによって再生されたコンテンツをセカンドスクリーン１３０７上で視聴している場合があるユーザとの両方にとって、ソーシャルで、インタラクティブで、より没入感のあるものとすることができる。図示のように、クライアントシステム１０６は、インターネット１３１０に接続することができる。インターネットは、様々なコンテンツソース１３２０からのコンテンツへのアクセスをクライアントシステム１０６に提供することもできる。コンテンツソース１３２０は、インターネットを介してアクセス可能な任意のタイプのコンテンツを含んでもよい。
【０１０５】
このようなコンテンツは、限定されることなく、ビデオコンテンツ、映画コンテンツ、ストリーミングコンテンツ、ソーシャルメディアコンテンツ、ニュースコンテンツ、フレンドコンテンツ、広告コンテンツなどを含む場合がある。一実施態様では、クライアントシステム１０６は、ＨＭＤがゲームプレイ中のインタラクティビティに関連するマルチメディアコンテンツを提供されるように、ＨＭＤユーザ向けのコンテンツを同時に処理するのに使用され得る。その場合、クライアントシステム１０６は、ビデオゲームコンテンツと無関係であり得る他のコンテンツをセカンドスクリーンに提供することもできる。クライアントシステム１０６は、一実施態様では、コンテンツソース１３２０の１つから、またはローカルユーザもしくはリモートユーザから、セカンドスクリーンコンテンツを受信することができる。
【０１０６】
図９は、本開示の一実施態様による、実行中のビデオゲームまたは他のアプリケーションに関連したＨＭＤ１０２の機能を概念的に示す。実行中のビデオゲーム／アプリケーションは、ビデオゲーム／アプリケーションのゲーム／アプリケーション状態を更新するための入力を受け取るゲーム／アプリケーションエンジン１４２０によって設定される。ビデオゲームのゲーム状態は、例えば、オブジェクトの存在及び位置、仮想環境の状況、イベントのトリガ、ユーザプロファイル、表示の視点など、現在のゲームプレイの様々な態様を設定するビデオゲームの様々なパラメータの値によって、少なくとも部分的に設定することができる。
【０１０７】
図示の実施態様では、ゲームエンジンは、一例として、コントローラ入力１４１４、オーディオ入力１４１６、及びモーション入力１４１８を受け取る。コントローラ入力１４１４は、手持ち型ゲームコントローラ（例えば、Ｓｏｎｙ  ＤＵＡＬＳＨＯＣＫ（登録商標）４ワイヤレスコントローラ、Ｓｏｎｙ  ＰｌａｙＳｔａｔｉｏｎ（登録商標）Ｍｏｖｅモーションコントローラ）、または方向性インタフェースオブジェクト１０４などの、ＨＭＤ１０２とは別のゲームコントローラの操作から設定され得る。一例として、コントローラ入力１４１４は、方向入力、ボタン押下、トリガ起動、動き、ジェスチャ、またはゲームコントローラの操作から処理される他の種類の入力を含み得る。ある実施態様では、ゲームコントローラの動きは、ＨＭＤ１０２の外向きカメラ１４１１を介して追跡され、それによってＨＭＤ１０２に対するゲームコントローラの位置／向きが提供される。オーディオ入力１４１６は、ＨＭＤ１０２のマイクロフォン１４０２から、または画像取込デバイス１４１３に含まれるマイクロフォンから、またはローカル環境内の他の場所から処理され得る。モーション入力１４１８は、ＨＭＤ１０２に含まれるモーションセンサ１４００から、及び／またはＨＭＤ１０２の画像を取り込むときに画像取込デバイス１４１３から、及び／またはＨＭＤ１０２の外向きカメラ１４１１から処理され得る。ゲームエンジン１４２０は、ビデオゲームのゲーム状態を更新するために、ゲームエンジンの構成に従って処理される入力を受け取る。ゲームエンジン１４２０は、ユーザに提示されるコンテンツを設定するために、ゲーム状態データを処理する、種々のレンダリングモジュールに、ゲーム状態データを出力する。
【０１０８】
図示の実施態様では、ビデオレンダリングモジュール１４２２は、ＨＭＤ１０２上での提示のためにビデオストリームをレンダリングするように設定される。ビデオストリームは、ディスプレイ／投影機機構１４１０によって提示され、ユーザの目１４０６によって光学系１４０８を介して視聴され得る。オーディオレンダリングモジュール１４０４は、ユーザにより聴取されるオーディオストリームをレンダリングするように構成されている。一実施態様では、オーディオストリームは、ＨＭＤ１０２に付随するスピーカ１４０４を通して出力される。スピーカ１４０４は、オーディオを提示することができるオープンエアスピーカ、ヘッドホン、または任意の他の種類のスピーカの形を取ることができることを理解されたい。
【０１０９】
一実施態様では、ユーザの視線の追跡を可能にするために、視線追跡カメラ１４１２がＨＭＤ１０２に含まれる。視線追跡カメラは、ユーザの目の画像を取り込み、それを解析してユーザの視線方向を判定する。一実施態様では、ユーザの視線方向に関する情報を利用して、ビデオレンダリングに影響を与えることができる。例えば、ユーザの目が特定の方向を見ていると判定された場合には、ユーザが見ている領域において、更なる細部を、または一層速い更新を提供するなどにより、その方向のビデオレンダリングを優先させ、または強調させることができる。ユーザの視線方向は、ヘッドマウントディスプレイに対して、ユーザが位置している実環境に対して、及び／またはヘッドマウントディスプレイ上でレンダリングされている仮想環境に対して設定され得ることを理解すべきである。
【０１１０】
概して、単独で考えられる場合、視線追跡カメラ１４１２によって取り込まれた画像の分析は、ＨＭＤ１０２に対するユーザの視線方向を提供する。また一方、追跡されたＨＭＤ１０２の位置及び向きと組み合わせて考えられる場合、ＨＭＤ１０２の位置及び向きは、ユーザの頭部の位置及び向きと同義であるので、ユーザの実世界の視線方向を判定することができる。すなわち、ユーザの実世界の視線方向は、ユーザの目の位置の動きを追跡すること、及びＨＭＤ１０２の位置及び向きを追跡することから判定することができる。仮想環境の表示がＨＭＤ１０２上にレンダリングされるとき、ユーザの実世界の視線方向を適用して、仮想環境におけるユーザの仮想世界の視線方向を判定することができる。
【０１１１】
更に、ＨＭＤ１０２、またはユーザによって操作されるインタフェースオブジェクト１０４などの別のデバイスのいずれかに含まれる触覚フィードバックハードウェアに、触覚フィードバックモジュール１４２６が信号を提供するように構成されている。触覚フィードバックは、例えば、振動フィードバック、温度フィードバック、圧力フィードバックなどの様々な種類の触感の形を取り得る。インタフェースオブジェクト１０４は、そのような形の触覚フィードバックをレンダリングするための対応するハードウェアを含むことができる。
【０１１２】
図１０を参照すると、本開示の一実施態様によるヘッドマウントディスプレイ１０２の構成要素を示す図が示されている。ヘッドマウントディスプレイ１０２は、プログラム命令を実行するためのプロセッサ１５００を含む。メモリ１５０２が、記憶の目的で備わっており、メモリ１５０２は、揮発性メモリ及び不揮発性メモリの両方を含んでもよい。ユーザが見ることができる視覚インタフェースを提供するディスプレイ１５０４が含まれる。ヘッドマウントディスプレイ１０２の電源としてバッテリ１５０６が備わっている。モーション検出モジュール１５０８は、磁気計１５１０、加速度計１５１２、及びジャイロスコープ１５１４などの様々な種類の、動きに敏感なハードウェアのいずれかを含み得る。
【０１１３】
加速度計は、加速度と重力による反力とを測定するデバイスである。異なる方向の加速度の大きさと方向とを検出するために、単軸モデル及び多軸モデルを利用できる。加速度計は、傾き、振動、及び衝撃を感知するために使用される。一実施態様では、３つの加速度計１５１２が重力の方向を提供するために使用され、これは２つの角度（世界空間ピッチ及び世界空間ロール）の絶対基準を与える。
【０１１４】
磁気計は、ヘッドマウントディスプレイの近くの磁場の強さと方向を測定する。一実施態様では、３つの磁気計１５１０がヘッドマウントディスプレイ内で使用され、世界空間のヨー角の絶対基準を保証する。一実施態様では、磁気計は、±８０マイクロテスラである地球磁場に及ぶように設計されている。磁気計は金属の影響を受け、実際のヨーに対して単調なヨー測定を提供する。環境中の金属が原因で磁場が歪み、それによってヨー測定において歪みが発生する場合がある。必要に応じて、ジャイロスコープまたはカメラなどの他のセンサからの情報を使用して、この歪みを較正することができる。一実施態様では、ヘッドマウントディスプレイ１０２の傾斜角及び方位角を得るために、加速度計１５１２が磁気計１５１０と共に使用される。
【０１１５】
ある実施態様では、ヘッドマウントディスプレイの磁気計は、他の近くのデバイスの電磁石が非アクティブであるときに読み取られるように構成されている。
【０１１６】
ジャイロスコープは、角運動量の原理に基づいて、向きを測定し、または向きを維持するためのデバイスである。一実施態様では、３つのジャイロスコープ１５１４が、慣性感知に基づいて、それぞれの軸（ｘ、ｙ、及びｚ）にわたる動きについての情報を提供する。ジャイロスコープは、高速回転を検出するのに有用である。ただし、ジャイロスコープは、絶対基準が存在しないと、時間の経過とともにドリフトしてしまう可能性がある。これには、定期的にジャイロスコープをリセットする必要があり、これは、オブジェクトの視覚追跡、加速度計、磁力計などに基づく位置／向きの判定など、他の入手可能な情報を使用して行うことができる。
【０１１７】
実環境の画像及び画像ストリームを取り込むために、カメラ１５１６が備わっている。後向きのカメラ（ユーザがヘッドマウントディスプレイ１０２のディスプレイを見ているときに、ユーザから離れる方向に向けられる）及び前向きのカメラ（ユーザがヘッドマウントディスプレイ１０２のディスプレイを見ているときに、ユーザに向けられる）を含む、複数のカメラをヘッドマウントディスプレイ１０２に含めることができる。更に、実際の環境におけるオブジェクトの立体情報を感知するために、深さカメラ１５１８がヘッドマウントディスプレイ１０２中に含まれてもよい。
【０１１８】
ヘッドマウントディスプレイ１０２は、オーディオ出力を提供するためのスピーカ１５２０を含む。また、周囲環境からの音、ユーザによって行われるスピーチなどを含む、実際の環境からのオーディオを取り込むために、マイクロフォン１５２２が含まれてもよい。ヘッドマウントディスプレイ１０２は、ユーザに触覚フィードバックを提供するための触覚フィードバックモジュール１５２４を含む。一実施態様では、触覚フィードバックモジュール１５２４は、ユーザに触覚フィードバックを提供するように、ヘッドマウントディスプレイ１０２の動き、及び／または振動を引き起こすことができる。
【０１１９】
ＬＥＤ１５２６は、ヘッドマウントディスプレイ１０２の状態の視覚的に示す指標として設けられている。例えば、ＬＥＤは、電池レベル、電源オンなどを示し得る。ヘッドマウントディスプレイ１０２がメモリカードに情報を読み出し、書き込むことを可能にするカードリーダ１５２８が備わっている。周辺デバイスの接続、または他のポータブルデバイス、コンピュータなどの他のデバイスへの接続を可能にするためのインタフェースの一例として、ＵＳＢインタフェース１５３０が含まれる。ヘッドマウントディスプレイ１０２の様々な実施態様では、ヘッドマウントディスプレイ１０２の接続性を高めることを可能にするために、様々な種類のインタフェースのいずれかが含まれ得る。
【０１２０】
無線ネットワーキング技術によってインターネットまたはローカルエリアネットワークへの接続を可能にするために、ＷｉＦｉ（登録商標）モジュール１５３２が含まれる。また、ヘッドマウントディスプレイ１０２は、他のデバイスへの無線接続を可能にするためのブルートゥースモジュール１５３４を含む。他のデバイスへの接続のために、通信リンク１５３６がまた、含まれていてもよい。一実施態様では、通信リンク１５３６は、無線通信のために赤外線伝送を利用する。他の実施態様では、通信リンク１５３６は、他のデバイスとの通信のために、様々な無線または有線の伝送プロトコルのいずれかを利用することができる。
【０１２１】
ユーザに入力インタフェースを提供するために、入力ボタン／センサ１５３８が含まれる。ボタン、タッチパッド、ジョイスティック、トラックボールなど、様々な種類の入力インタフェースのいずれかを含めてもよい。超音波技術を介して他のデバイスとの通信を促進するために、超音波通信モジュール１５４０がヘッドマウントディスプレイ１０２に含まれ得る。
【０１２２】
ユーザからの生理学的データの検出を可能にするために、バイオセンサ１５４２が含まれる。一実施態様では、バイオセンサ１５４２は、ユーザの皮膚を通してユーザの生体電気信号を検出するための１つ以上の乾燥電極を含む。
【０１２３】
ＨＭＤ上でのレンダリングのために、ビデオ入力１５４４が、一次処理コンピュータ（例えば、メインゲームコンソール）からビデオ信号を受信するように構成されている。ある実施態様では、ビデオ入力はＨＤＭＩ（登録商標）入力である。
【０１２４】
上記のヘッドマウントディスプレイ１０２の構成要素は、ヘッドマウントディスプレイ１０２に含まれ得る単なる例示的な構成要素にすぎないものとして説明されている。本開示の様々な実施態様では、ヘッドマウントディスプレイ１０２は、上記の様々な構成要素の一部を含んでもよいし、または含まなくてもよい。ヘッドマウントディスプレイ１０２の実施態様は、本明細書に記載されている本開示の態様を容易にするために、本明細書には記載されていないが、当技術分野で知られている、他の構成要素を追加的に含んでもよい。
【０１２５】
図１１は、本開示の種々の実施態様によるゲームシステム１６００のブロック図である。ゲームシステム１６００は、ネットワーク１６１５を介して１つまたは複数のクライアント１６１０にビデオストリームを提供するように構成される。ゲームシステム１６００は、通常は、ビデオサーバシステム１６２０とオプションのゲームサーバ１６２５とを含む。ビデオサーバシステム１６２０は、ビデオストリームを最小限のサービス品質で１つまたは複数のクライアント１６１０に提供するように構成される。例えば、ビデオサーバシステム１６２０は、ビデオゲーム内の状態または視点を変更するゲームコマンドを受信し、この状態の変更を反映する更新されたビデオストリームを最小の遅延時間でクライアント１６１０に提供することができる。ビデオサーバシステム１６２０は、まだ定義されていないフォーマットを含む多種多様な代替ビデオフォーマットでビデオストリームを提供するように構成され得る。更に、ビデオストリームは、多種多様なフレームレートでユーザに提示するように構成されたビデオフレームを含むことができる。代表的なフレームレートは、毎秒３０フレーム、毎秒６０フレーム、及び毎秒１２０フレームである。しかし、本開示の代替の実施態様では、より高いまたはより低いフレームレートが含まれる。
【０１２６】
本明細書で個々に１６１０Ａ、１６１０Ｂなどと呼ばれるクライアント１６１０は、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話、セットトップボックス、キオスク、無線装置、デジタルパッド、スタンドアロン装置、ハンドヘルドゲームプレイ装置などを含むことができる。通常、クライアント１６１０は、符号化されたビデオストリームを受信し、そのビデオストリームを復号し、結果として生じるビデオをユーザ、例えばゲームのプレーヤに提示するように構成される。通常、符号化されたビデオストリームを受信すること、及び／またはビデオストリームを復号することのプロセスには、個々のビデオフレームをクライアントの受信バッファに格納することが含まれる。ビデオストリームは、クライアント１６１０に一体化したディスプレイ上で、またはモニタもしくはテレビなどの別個の装置上でユーザに提示され得る。クライアント１６１０は、２人以上のゲームプレーヤをサポートするように任意選択で設定される。例えば、ゲームコンソールは、２人、３人、４人、またはそれ以上の同時プレーヤをサポートするように構成されてもよい。これらのプレーヤの各々は、別々のビデオストリームを受信することができ、あるいは単一のビデオストリームが、各プレーヤのために特別に生成された、例えば各プレーヤの視点に基づいて生成されたフレームの領域を含み得る。クライアント１６１０は、任意選択で地理的に分散している。ゲームシステム１６００に含まれるクライアントの数は、１または２から数千、数万、またはそれ以上まで幅広く変わり得る。本明細書で使用するとき、「ゲームプレーヤ」という用語は、ゲームをプレイする者を指すのに使用され、「ゲームプレイデバイス」という用語は、ゲームをプレイするのに使用されるデバイスを指すのに使用される。ある実施態様では、ゲームプレイデバイスは、ゲーム体験をユーザに提供するために協働する複数のコンピューティングデバイスを指すことがある。例えば、ゲームコンソール及びＨＭＤは、ＨＭＤを通して見たゲームを配信するために、ビデオサーバシステム１６２０と協働してもよい。一実施態様では、ゲームコンソールはビデオサーバシステム１６２０からビデオストリームを受信し、ゲームコンソールは、レンダリングのためにビデオストリームをＨＭＤに転送するか、またはビデオストリームを更新して、レンダリングのためにＨＭＤに転送する。
【０１２７】
クライアント１６１０は、ネットワーク１６１５を介してビデオストリームを受信するように構成されている。ネットワーク１６１５は、電話ネットワーク、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、広域ネットワーク、プライベートネットワーク、及び／または同種のものを含む任意の種類の通信ネットワークであり得る。代表的な実施態様では、ビデオストリームは、ＴＣＰ／ＩＰまたはＵＤＰ／ＩＰなどの標準プロトコルを介して通信される。あるいは、ビデオストリームは、プロプライエタリな規格を介して通信される。
【０１２８】
クライアント１６１０の代表的な例は、プロセッサ、不揮発性メモリ、ディスプレイ、復号化ロジック、ネットワーク通信機能、及び入力デバイスを含むパーソナルコンピュータである。復号化ロジックは、ハードウェア、ファームウェア、及び／またはコンピュータ可読媒体に記憶されたソフトウェアを含み得る。ビデオストリームを復号化（及び符号化）するためのシステムは当技術分野において周知であり、使用される特定の符号化方式に応じて変わる。
【０１２９】
クライアント１６１０は、受信したビデオを修正するように構成されたシステムを更に含むことができるが、必ずしもそうである必要はない。例えば、クライアントは、更なるレンダリングを実行して、１つのビデオ画像を別のビデオ画像上にオーバーレイするように、ビデオ画像をクロッピングするように、及び／または同様のことを行うように、構成され得る。例えば、クライアント１６１０は、Ｉフレーム、Ｐフレーム、及びＢフレームなどの各種のビデオフレームを受信して、これらのフレームがユーザに表示するための画像に処理されるように構成され得る。ある実施態様では、クライアント１６１０のメンバは、ビデオストリームに対して更なるレンダリング、シェーディング、３−Ｄへの変換、または同様の動作を実行するように構成される。クライアント１６１０のメンバは、任意選択で、複数のオーディオストリームまたはビデオストリームを受信するように構成される。クライアント１６１０の入力デバイスは、例えば、片手ゲームコントローラ、両手ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、力フィードバック装置、モーション検知装置及び／または位置感知デバイス、マウス、タッチスクリーン、ニューラルインタフェース、カメラ、未開発の入力デバイス、及び／または同種のものを含み得る。
【０１３０】
クライアント１６１０によって受信されるビデオストリーム（及び任意選択でオーディオストリーム）は、ビデオサーバシステム１６２０によって生成されて提供される。本明細書の他の箇所で更に説明するように、このビデオストリームはビデオフレームを含む（オーディオストリームはオーディオフレームを含む）。ビデオフレームは、ユーザに表示される画像に有意義に寄与するように構成される（例えば、それらは適切なデータ構造内にピクセル情報を含む）。本明細書で使用するとき、「ビデオフレーム」という用語は、ユーザに示される画像を、例えば効果的にするのに寄与するように構成されている情報を主に含むフレームを指すために使用される。「ビデオフレーム」に関する本明細書の教示のほとんどは、「オーディオフレーム」に適用することもできる。
【０１３１】
クライアント１６１０は通常、ユーザから入力を受け取るように構成されている。これらの入力は、ビデオゲームの状態を変更するか、または別の方法でゲームプレイに影響を及ぼすように構成されたゲームコマンドを含み得る。ゲームコマンドは、入力デバイスを使用して受信することができ、及び／またはクライアント１６１０上で実行される命令をコンピュータで処理することによって自動的に生成することができる。受信したゲームコマンドは、クライアント１６１０からネットワーク１６１５を介して、ビデオサーバシステム１６２０及び／またはゲームサーバ１６２５に伝達される。例えば、ある実施態様では、ゲームコマンドはビデオサーバシステム１６２０を介してゲームサーバ１６２５に伝達される。ある実施態様では、ゲームコマンドの別個のコピーがクライアント１６１０からゲームサーバ１６２５及びビデオサーバシステム１６２０に伝達される。ゲームコマンドの通信は、任意選択でコマンドの識別情報に依存する。ゲームコマンドは、オーディオストリームまたはビデオストリームをクライアント１６１０Ａに提供するために使用した異なる経路または通信チャネルを通じて、クライアント１６１０Ａから任意選択で通信される。
【０１３２】
ゲームサーバ１６２５は、ビデオサーバシステム１６２０とは異なるエンティティによって任意選択で操作される。例えば、ゲームサーバ１６２５は、マルチプレーヤゲームのパブリッシャによって運営され得る。この例では、ビデオサーバシステム１６２０は、任意選択でゲームサーバ１６２５によってクライアントとして捉えられ、任意選択でゲームサーバ１６２５の視点から見れば、先行技術のゲームエンジンを実行する先行技術のクライアントであるように構成される。ビデオサーバシステム１６２０とゲームサーバ１６２５との間の通信は、任意選択でネットワーク１６１５を介して行われる。したがって、ゲームサーバ１６２５は、ゲーム状態情報を複数のクライアントに送信する従来技術のマルチプレーヤゲームサーバであり得、そのうちの１つがゲームサーバシステム１６２０である。ビデオサーバシステム１６２０は、同時にゲームサーバ１６２５の複数のインスタンスと通信するように構成されてもよい。例えば、ビデオサーバシステム１６２０は、複数の異なるビデオゲームを別々のユーザに提供するように構成することができる。これらの異なるビデオゲームのそれぞれは、異なるゲームサーバ１６２５によってサポートされてもよく、及び／または異なるエンティティによって発行されてもよい。ある実施態様では、ビデオサーバシステム１６２０のいくつかの地理的に分散したインスタンスは、ゲームビデオを複数の異なるユーザに提供するように構成される。ビデオサーバシステム１６２０のこれらのインスタンスのそれぞれは、ゲームサーバ１６２５の同じインスタンスと通信することができる。ビデオサーバシステム１６２０と１つまたは複数のゲームサーバ１６２５との間の通信は、専用の通信チャネルを介して任意選択で行われる。例えば、ビデオサーバシステム１６２０は、これら２つのシステム間の通信専用の高帯域幅チャネルを介して、ゲームサーバ１６２５に接続されてもよい。
【０１３３】
ビデオサーバシステム１６２０は、少なくともビデオソース１６３０、入出力デバイス１６４５、プロセッサ１６５０、及び非一時的記憶装置１６５５を含む。ビデオサーバシステム１６２０は、１つのコンピューティングデバイスを含むか、または複数のコンピューティングデバイスの間に分散され得る。これらのコンピューティングデバイスは、ローカルエリアネットワークなどの通信システムを介して、任意選択で接続される。
【０１３４】
ビデオソース１６３０は、ビデオストリーム、例えばストリーミングビデオまたは動画を形成する一連のビデオフレームを提供するように構成される。ある実施態様では、ビデオソース１６３０はビデオゲームエンジン及びレンダリングロジックを含む。ビデオゲームエンジンは、プレーヤからゲームコマンドを受け取り、受け取ったコマンドに基づいてビデオゲームの状態のコピーを維持するように構成される。このゲーム状態には、ゲーム環境におけるオブジェクトの位置、及び通常は視点が含まれる。またゲーム状態には、オブジェクトの特性、画像、色及び／またはテクスチャが含まれてもよい。ゲーム状態は、通常、ゲームルール、及び移動、ターン、攻撃、フォーカス設定、インタラクト、使用などのゲームコマンドに基づいて維持される。ゲームエンジンの一部は、任意選択でゲームサーバ１６２５内に配置される。ゲームサーバ１６２５は、地理的に分散したクライアントを使用して、複数のプレーヤから受信したゲームコマンドに基づき、ゲームの状態のコピーを維持することができる。これらの場合、ゲーム状態は、ゲームサーバ１６２５によってビデオソース１６３０に提供され、そこでゲーム状態のコピーが記憶され、レンダリングが実行される。ゲームサーバ１６２５は、ネットワーク１６１５を介してクライアント１６１０から直接ゲームコマンドを受信してもよく、及び／またはビデオサーバシステム１６２０を経由してゲームコマンドを受信してもよい。
【０１３５】
ビデオソース１６３０は、通常、レンダリングロジック、例えば、ハードウェア、ファームウェア、及び／または記憶装置１６５５などのコンピュータ可読媒体に格納されたソフトウェアを含む。このレンダリングロジックは、ゲーム状態に基づいて、ビデオストリームのビデオフレームを作成するように構成される。レンダリングロジックの全部または一部は、任意選択でグラフィック処理ユニット（ＧＰＵ）内に配置される。レンダリングロジックは、通常、ゲーム状態及び視点に基づいて、オブジェクト間の３次元空間的関係を決定するため、及び／または適切なテクスチャなどを適用するために構成された処理段階を含む。レンダリングロジックは未処理のビデオを生成し、次いでこのビデオは、クライアント１６１０への通信に先立ち、通常、符号化される。例えば、未処理ビデオは、Ａｄｏｂｅ  Ｆｌａｓｈ（登録商標）規格、．ｗａｖ、Ｈ．２６４、Ｈ．２６３、Ｏｎ２、ＶＰ６、ＶＣ−１、ＷＭＡ、Ｈｕｆｆｙｕｖ、Ｌａｇａｒｉｔｈ、ＭＰＧ−ｘ、Ｘｖｉｄ、ＦＦｍｐｅｇ、ｘ２６４、ＶＰ６−８、ｒｅａｌｖｉｄｅｏ、ｍｐ３、または同種のものに従って符号化されてもよい。符号化プロセスは、リモートデバイス上のデコーダへの配信のために任意選択でパッケージ化されるビデオストリームを生成する。ビデオストリームは、フレームサイズ及びフレームレートによって特徴付けられる。代表的なフレームサイズは、８００×６００、１２８０×７２０（例えば、７２０ｐ）、１０２４×７６８を含むが、他の任意のフレームサイズを使用することができる。フレームレートは、１秒あたりのビデオフレーム数である。ビデオストリームは、様々なタイプのビデオフレームを含み得る。例えば、Ｈ．２６４規格では、「Ｐ」フレーム及び「Ｉ」フレームを含む。Ｉフレームは、ディスプレイデバイス上の全てのマクロブロック／ピクセルをリフレッシュするための情報を含み、一方Ｐフレームはその部分セットをリフレッシュするための情報を含む。通常Ｐフレームは、Ｉフレームよりもデータサイズが小さい。本明細書で使用するとき、「フレームサイズ」という用語は、フレーム内のピクセル数を指すことを意味する。「フレームデータサイズ」という用語は、フレームを格納するのに必要なバイト数を指すのに使用される。
【０１３６】
代替の実施態様では、ビデオソース１６３０は、カメラなどのビデオ記録デバイスを含む。このカメラは、コンピュータゲームのビデオストリームに含めることができる遅延ビデオまたはライブビデオを生成するのに使用することができる。結果として生じるビデオストリームは、レンダリングされた画像と、スチルカメラまたはビデオカメラを使用して記録された画像との両方を任意選択で含む。ビデオソース１６３０はまた、ビデオストリームに含まれる以前に記録されたビデオを記憶するように構成された記憶デバイスを含んでもよい。ビデオソース１６３０はまた、例えば人などのオブジェクトのモーションまたは位置を検出するように構成されたモーション感知デバイスまたは位置感知デバイスと、検出されたモーション及び／または位置に基づいてゲーム状態を判定し、またはビデオを生成するように構成されるロジックとを含み得る。
【０１３７】
ビデオソース１６３０は、他のビデオ上に配置されるように構成されたオーバーレイを提供するように任意選択で構成される。例えば、このようなオーバーレイには、コマンドインタフェース、ログイン命令、ゲームプレーヤへのメッセージ、他のゲームプレーヤの画像、他のゲームプレーヤのビデオフィード（例えば、ウェブカメラビデオ）が含まれ得る。タッチスクリーンインタフェースまたは視線検出インタフェースを含むクライアント１６１０Ａの実施態様では、オーバーレイはバーチャルキーボード、ジョイスティック、タッチパッド、及び／または同種のものを含み得る。オーバーレイの一例では、プレーヤの声がオーディオストリームにオーバーレイされる。ビデオソース１６３０は、任意選択で、１つまたは複数のオーディオソースを更に含む。
【０１３８】
ビデオサーバシステム１６２０が２人以上のプレーヤからの入力に基づいてゲーム状態を維持するように構成されている実施態様では、各プレーヤは表示の位置及び方向を含む異なる視点を有することができる。ビデオソース１６３０は、プレーヤらの視点に基づいて各プレーヤに別々のビデオストリームを提供するように任意選択で設定される。更に、ビデオソース１６３０は、異なるフレームサイズ、フレームデータサイズ、及び／または符号化をクライアント１６１０のそれぞれに提供するように設定してもよい。ビデオソース１６３０は、任意選択で、３−Ｄビデオを供給するように設定される。
【０１３９】
入出力デバイス１６４５は、ビデオサーバシステム１６２０が、ビデオ、コマンド、情報要求、ゲーム状態、視線情報、デバイスモーション、デバイス位置、ユーザモーション、クライアント識別情報、プレーヤ識別情報、ゲームコマンド、セキュリティ情報、オーディオ、及び／または同種のものなどの情報を送信し、及び／または受信するように構成されている。通常、入出力デバイス１６４５は、ネットワークカードまたはモデムなどの通信ハードウェアを含む。入出力デバイス１６４５は、ゲームサーバ１６２５、ネットワーク１６１５、及び／またはクライアント１６１０と通信するように構成される。
【０１４０】
プロセッサ１６５０は、本明細書で論じられるビデオサーバシステム１６２０の様々な構成要素内に含まれるロジック、例えばソフトウェアを実行するように構成される。例えば、ビデオソース１６３０、ゲームサーバ１６２５、及び／またはクライアント修飾子１６６０の機能を実行するために、プロセッサ１６５０は、ソフトウェア命令でプログラムされてもよい。ビデオサーバシステム１６２０は、任意選択でプロセッサ１６５０の複数のインスタンスを含む。プロセッサ１６５０はまた、ビデオサーバシステム１６２０によって受信されたコマンドを実行するために、または本明細書で論じられるゲームシステム１６００の様々な要素の動作を調整するために、ソフトウェア命令でプログラムされてもよい。プロセッサ１６５０は、１つまたは複数のハードウェアデバイスを含むことができる。プロセッサ１６５０は電子的なプロセッサである。
【０１４１】
記憶装置１６５５は、非一時的なアナログ及び／またはデジタルの記憶デバイスを含む。例えば、記憶装置１６５５は、ビデオフレームを記憶するように構成されたアナログ記憶デバイスを含むことができる。記憶装置１６５５は、例えば、ハードドライブ、オプティカルドライブ、またはソリッドステートストレージといったコンピュータ可読デジタル記憶装置を含むことができる。記憶装置１６１５は、ビデオフレーム、アーティフィシャルフレーム、ビデオフレーム及びアーティフィシャルフレームの両方を含むビデオストリーム、オーディオフレーム、オーディオストリーム、及び／または同様のものを記憶するように（例えば、適切なデータ構造またはファイルシステムによって）構成される。記憶装置１６５５は、任意選択で、複数のデバイスの間に分散される。ある実施態様では、記憶装置１６５５は、本明細書の他の箇所で説明されているビデオソース１６３０のソフトウェア構成要素を格納するように構成される。これらの構成要素は、必要に応じてプロビジョニングできるように準備された形式で格納することができる。
【０１４２】
ビデオサーバシステム１６２０は、任意選択で、クライアント修飾子１６６０を更に含む。クライアント修飾子１６６０は、クライアント１６１０Ａまたは１６１０Ｂなどのクライアントの能力をリモートで判定するように構成される。これらの能力には、クライアント１６１０Ａ自体の能力と、クライアント１６１０Ａとビデオサーバシステム１６２０との間の１つまたは複数の通信チャネルの能力との両方を含めることができる。例えば、クライアント修飾子１６６０は、ネットワーク１６１５を介して通信チャネルをテストするように構成されてもよい。
【０１４３】
クライアント修飾子１６６０は、クライアント１６１０Ａの能力を手動または自動で判定する（例えば、発見する）ことができる。手動判定には、クライアント１６１０Ａのユーザと通信すること、及びユーザに能力を提供するように求めることが含まれる。例えば、ある実施態様では、クライアント修飾子１６６０は、クライアント１６１０Ａのブラウザ内に画像、テキスト、及び／または同様のものを表示する構成となっている。一実施態様では、クライアント１６１０Ａはブラウザを含むＨＭＤである。別の実施態様では、クライアント１６１０Ａは、ブラウザを有したゲームコンソールであり、ブラウザはＨＭＤに表示させてもよい。表示されたオブジェクトは、ユーザがクライアント１６１０Ａのオペレーティングシステム、プロセッサ、ビデオデコーダの種類、ネットワーク接続の種類、表示解像度などの情報を入力することを要求する。ユーザによって入力された情報は、クライアント修飾子１６６０に返信される。
【０１４４】
自動判定は、例えば、クライアント１６１０Ａ上でエージェントを実行することによって、及び／またはテストビデオをクライアント１６１０Ａに送信することによって、行うことができる。エージェントは、ウェブページに埋め込まれるか、またはアドオンとしてインストールされるＪａｖａ（登録商標）Ｓｃｒｉｐｔなどのコンピューティング命令を含むことができる。エージェントは、クライアント修飾子１６６０によって任意選択で提供される。様々な実施態様において、エージェントは、クライアント１６１０Ａの処理能力、クライアント１６１０Ａのデコード能力及び表示能力、クライアント１６１０Ａとビデオサーバシステム１６２０との間の通信チャネルの遅延時間の信頼性及び帯域幅、クライアント１６１０Ａのディスプレイタイプ、クライアント１６１０Ａ上に存在するファイアウォール、クライアント１６１０Ａのハードウェア、クライアント１６１０Ａで実行されているソフトウェア、クライアント１６１０Ａ内のレジストリエントリ、及び／または同様のものを見出すことができる。
【０１４５】
クライアント修飾子１６６０は、ハードウェア、ファームウェア、及び／またはコンピュータ可読媒体に格納されたソフトウェアを含む。クライアント修飾子１６６０は、ビデオサーバシステム１６２０の１つまたは複数の他の要素とは別のコンピューティングデバイス上に任意選択で配置される。例えば、ある実施態様では、クライアント修飾子１６６０は、クライアント１６１０とビデオサーバシステム１６２０の複数のインスタンスとの間の通信チャネルの特性を判定するように構成される。これらの実施態様では、クライアント修飾子によって見出された情報を使用して、ビデオサーバシステム１６２０のどのインスタンスが、クライアント１６１０のうちの１つへのストリーミングビデオの配信に最も適しているかを判定することができる。
【０１４６】
本開示の実施態様は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサを用いる家庭用電化製品またはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む様々なコンピュータシステム構成を用いて実施することができる。本開示は、有線ベースのネットワークまたは無線ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境において実施することもできる。
【０１４７】
上記の実施態様を考慮に入れて、本開示は、コンピュータシステムに格納されたデータを必要とする様々なコンピュータ実行動作を使用できることが理解されるべきである。これらの動作は、物理量の物理的処置を必要とする動作である。本開示の一部を形成する本明細書に記載されている動作のいずれも、有用な機械動作である。本開示はまた、これらの動作を実行するためのデバイスまたは装置に関する。装置は必要な目的のために特別に構成することができ、または装置は、コンピュータに記憶されたコンピュータプログラムによって選択的に起動されまたは構成される汎用コンピュータとすることができる。特に、本明細書の教示に従って書かれたコンピュータプログラムと共に、様々な汎用機械を使用することができ、または必要な動作を実行するために、より特殊化した装置を構築することによって、更に便利にすることができる。
【０１４８】
本開示は、コンピュータ可読媒体上のコンピュータ可読コードとして具体化することもできる。コンピュータ可読媒体は、データを記憶することができ、その後コンピュータシステムによって読み取ることができる任意のデータ記憶デバイスである。コンピュータ可読媒体の例には、ハードドライブ、ネットワーク接続ストレージ（ＮＡＳ）、読み取り専用メモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、ならびに他の光学式及び非光学式データ記憶デバイスが含まれる。コンピュータ可読媒体には、コンピュータ可読コードが分散方式で格納され実行されるように、ネットワーク結合コンピュータシステム上に分散されたコンピュータ可読有形媒体が含まれ得る。
【０１４９】
本方法動作を特定の順序で説明したが、他の維持管理動作が動作間で実行されてもよく、または動作がわずかに異なる時間で行われるように動作が調整されてもよく、またはオーバーレイ動作の処理が所望の方法で実行される限り、処理に関連する様々な間隔で処理操作の発生を可能にするシステムに分散されてもよいことが理解されるべきである。
【０１５０】
上記の開示は、理解を明確にするためにある程度詳細に説明したが、添付の特許請求の範囲内で、特定の変更及び修正を実施することができることは明らかであろう。したがって、本実施態様は、限定的ではなく例示的であると見なされるべきであり、本開示は、本明細書に示された詳細に限定されるべきではなく、本開示の範囲及び均等物の範囲内で変更することができる。
【図１】
2021512427.tif 000003
【図２】
2021512427.tif 000004
【図３】
2021512427.tif 000005
【図４】
2021512427.tif 000006
【図５】
2021512427.tif 000007
【図６】
2021512427.tif 000008
【図７】
2021512427.tif 000009
【図８Ａ−１】
2021512427.tif 000010
【図８Ａ−２】
2021512427.tif 000011
【図８Ｂ】
2021512427.tif 000012
【図９】
2021512427.tif 000013
【図１０】
2021512427.tif 000014
【図１１】
2021512427.tif 000015
【国際調査報告】
2021512427.tif 000016
2021512427.tif 000017