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