以下の詳細な説明は、例示の目的で多くの特定の詳細を含むが、当業者であれば、以下の詳細に対する多くの変形及び変更が本開示の範囲内にあることを理解するであろう。したがって、以下に記載される本開示の態様は、一般性を失うことなく、かつ制限を課すことなく、この説明に続く特許請求の範囲に記載される。
概して、本開示のさまざまな実施形態は、HMDに実装されるようなVR視聴環境を視聴するユーザへデータ及び/または情報を提供するシステム及び方法を記述し、そこでデータ及び/または情報は、対応するユーザのペリフェラルゾーンに位置し、そこで新規の情報またはデータが視聴するために利用可能であるときに、ユーザの注目は、ペリフェラルゾーンに向けられる。データ及び/または情報は、ユーザのゲームプレイをサポートするように構成される位置に基づくコンパニオンインタフェース内に提供されることができる。結果として、本開示の実施形態は、位置に基づくコンパニオンインタフェースを通してゲームアプリケーションのさらなる使用を提供する。たとえば、ゲームアプリケーションは、VR視聴環境のアクティブゾーン内に提示されるレガシータイプの、二次元ゲームアプリケーションであり得、コンパニオンインタフェースは、このアクティブゾーンの外側に位置するペリフェラルゾーン内に提示される。1つの実施形態において、コンパニオンインタフェースは、ユーザのゲームプレイにおけるキャラクタの位置に基づき生成されるコンテキストに関連する情報(たとえば、メッセージング、支援情報など)を含む。この情報は、1人以上のユーザのゲームプレイ中に定期的に収集されるスナップショットに基づき、そこでスナップショットは、対応するユーザのゲームプレイについてのメタデータ及び/または情報を含み、スナップショットに対応するゲームアプリケーション内のジャンプポイントにおいて対応するゲームアプリケーションの別のインスタンスを有効にするように構成可能である。
位置に基づく情報は、ユーザのゲームプレイ中に定期的に収集されるスナップショットのために生成されるパラメータを定義することを備える。特に、スナップショットは、ユーザのゲームプレイについてのメタデータ及び/または情報を含み、このスナップショットに対応するゲームアプリケーション内のジャンプポイントにおいて対応するゲームアプリケーションの別のインスタンスを有効にするように構成可能である。またコンテキストに関連する情報は、同一のゲームアプリケーションをプレイする他のユーザのそのゲームプレイ中に収集される情報を含む。その方式において、ユーザは、ユーザの現在の進度(たとえば、ゲーム世界内の位置など)に基づきコンテキストに関連する情報を受信することが可能である。たとえば、コンテキストに関連する情報は、ユーザのゲームプレイに支援を提供することが可能であり、そこでこの情報は、ゲームプレイ位置、過去のゲームプレイ、及び予測されたゲームプレイに基づくことができる。さらに、コンパニオンインタフェースを使用して、ユーザからのメッセージを作成することが可能である。
さまざまな実施形態の上記の一般的な理解により、さまざまな図面を参照して実施形態の例の詳細をここに説明する。
本明細書全体を通して、「ビデオゲーム」または「ゲームアプリケーション」への参照は、入力コマンドの実行を通して指示されるいずれかのタイプのインタラクティブアプリケーションを表現することを意味する。例示的な目的のみのために、インタラクティブアプリケーションは、ゲーム、ワードプロセッシング、ビデオ処理、ビデオゲーム処理などのためのアプリケーションを含む。さらに、用語、ビデオゲーム及びゲームアプリケーションは、置換可能である。
図1Aは、本開示の1つの実施形態に従い、HMDを通して実装されるようにVR視聴環境においてゲームアプリケーションをプレイするユーザのゲームプレイをサポートするように構成される位置に基づくコンパニオンインタフェースを実装するために使用されるシステム10を示し、そこでコンパニオンインタフェースは、対応するユーザのペリフェラルゾーン内に提示されることができ、そこでペリフェラルゾーンは、メインコンテンツ(たとえば、ゲームアプリケーション、ビデオコンテンツなど)を提示するアクティブゾーンの外側にある。ゲームアプリケーションは、本開示の1つの実施形態に従い、ローカルコンピューティングデバイス上で、またはクラウドゲームネットワーク経由で実行することが可能である。コンパニオンインタフェースを使用して、ゲームアプリケーションをプレイする他のユーザによるインタラクションについての、情報を提供することができる、及び/またはコンテンツ(たとえば、クエスト及び/またはチャレンジなど)を作成することができる。
図1Aに示されるように、ゲームアプリケーションは、ユーザ5のクライアントデバイス100において(たとえば、ゲーム実行エンジン111において)ローカルに実行することができる、またはクラウドゲームネットワークもしくはゲームクラウドシステムのバックエンドゲームサーバ205において動作するバックエンドゲーム実行エンジン211において実行することができる。ゲーム実行エンジン211は、ゲームサーバ205の多くのゲームプロセッサ201のうちの1つの内で動作することができる。いずれの事例においても、クラウドゲームネットワークは、ゲームアプリケーションをプレイする1人以上のユーザのゲームプレイをサポートする位置に基づくコンパニオンインタフェースを提供するように構成される。さらに、ゲームアプリケーションは、シングルプレイヤーモードまたはマルチプレイヤーモードにおいて実行することができ、そこで本発明の実施形態は、両方の動作モードへマルチプレイヤー強化(たとえば、支援、通信など)を提供する。また、ゲームアプリケーションのゲームプレイは、HMD102を通して実装されるようにVR視聴環境内に提示されることができる。
いくつかの実施形態において、クラウドゲームネットワークは、ホストマシンのハイパーバイザ上で実行する複数の仮想マシン(VM)を含むことができ、1つ以上の仮想マシンは、シングルプレイヤービデオゲームまたはマルチプレイヤービデオゲームのサポートにおけるホストのハイパーバイザに利用可能であるハードウェアリソースを利用するゲームプロセッサモジュール201を実行するように構成される。他の実施形態において、クラウドゲームネットワークは、複数のユーザをサポートする複数のローカルコンピューティングデバイスをサポートするように構成され、そこで各ローカルコンピューティングデバイスは、シングルプレイヤービデオゲームまたはマルチプレイヤービデオゲームなどの、ビデオゲームのインスタンスを実行することができる。たとえば、マルチプレイヤーモードにおいて、ビデオゲームは、ローカルに実行しながら、同時にクラウドゲームネットワークは、各ローカルコンピューティングデバイスから情報(たとえば、ゲームステートデータ)を受信し、その結果、ローカルコンピューティングデバイスのうちの1つ以上の全体を通してその情報を分散させるので、各ユーザは、マルチプレイヤービデオゲームのゲーム環境内で他のユーザ(たとえば、ビデオゲーム内の対応するキャラクタを通して)とインタラクトすることが可能である。その方式において、クラウドゲームネットワークは、マルチプレイヤーゲーム環境内の各ユーザについてのゲームプレイを調整し、組み合わせる。
示されるように、システム10は、複数のインタラクティブゲームアプリケーションへのアクセスを提供するゲームプロセッサモジュール201を実行するゲームサーバ205を含む。ゲームサーバ205は、前述されるように、クラウド内で利用可能である、いずれかのタイプのサーバコンピューティングデバイスであり得、1つ以上のホスト上で実行する1つ以上の仮想マシンとして構成されることができる。たとえば、ゲームサーバ205は、ゲームプロセッサ201をサポートする仮想マシンを管理することができる。またゲームサーバ205は、ユーザ5への追加のサービス及び/またはコンテンツを提供するように構成される。たとえば、ゲームサーバは、さらに以下に説明されるように、コンテキストに関連する情報を生成する、及び/または受信する目的のためにユーザ5へ表示可能であるコンパニオンインタフェースを提供するように構成可能である。
クライアントデバイス100は、インターネットなどのネットワーク150経由でゲームアプリケーションへのアクセスを要求するために、及びゲームサーバ205により実行され、ユーザ5と関連する表示装置12へ配信される、ビデオゲームまたはゲームアプリケーションのインスタンスをレンダリングために構成される。たとえば、ユーザ5は、ゲームプロセッサ201上で実行するゲームアプリケーションのインスタンスとクライアントデバイス100を通してインタラクトすることができる。また、クライアントデバイス100は、前述されるように、ゲームアプリケーションのローカルな実行のために構成されるゲーム実行エンジン111を含むことができる。クライアントデバイス100は、ゲームコントローラ6、タブレットコンピュータ11、キーボード、及びビデオカメラにより取り込まれるジェスチャ、マウス、タッチパッドなどのような、さまざまなタイプの入力デバイスからの入力を受信することができる。クライアントデバイス100は、ネットワーク150経由でゲームサーバ205に接続することが可能である少なくともメモリ及びプロセッサモジュールを含むいずれかのタイプのコンピューティングデバイスであり得る。クライアントデバイス100のいくつかの例は、ビデオゲームのインスタンスを実行するためにゲームサーバ205とインタラクトすることが可能である、パーソナルコンピュータ(PC)、ゲームコンソール、ホームシアターデバイス、汎用コンピュータ、モバイルコンピューティングデバイス、タブレット、電話、またはいずれかの他のタイプのコンピューティングデバイスを含む。
クライアントデバイス100は、レンダリングされた画像を受信するために、及びディスプレイ12及び/またはHMD102上にレンダリングされた画像を表示する(たとえば、VRコンテンツ198を表示する)ために構成される。たとえば、クラウドベースのサービスを通して、レンダリングされた画像は、ユーザ5と関連するゲームサーバ205のゲーム実行エンジン211上で実行するゲームアプリケーションのインスタンスにより配信されることができる。別の例において、ローカルゲーム処理を通して、レンダリングされた画像は、ローカルゲーム実行エンジン111により配信されることができる。いずれの事例においても、クライアントデバイス100は、ゲームプレイを駆動するために使用される入力コマンドを通すような、ユーザ5のゲームプレイと関連する実行エンジン211または111とインタラクトするように構成される。
さらに、クライアントデバイス100は、ゲームアプリケーションをプレイするときに、ゲームサーバ205とインタラクトし、ユーザ5のゲームプレイのスナップショットを取り込み、格納するように構成され、そこで各スナップショットは、ゲームプレイに関連する情報(たとえば、ゲームステートなど)を含む。たとえば、スナップショットは、ユーザ5のゲームプレイのゲーム世界内のキャラクタの位置に対応する位置に基づく情報を含むことができる。さらに、スナップショットは、対応するユーザが、スナップショットの取込みに対応するゲームアプリケーション内のジャンプポイントにおいて、セーブされたゲームプレイにジャンプすることを可能にする。このように、ユーザ5は、選択されたスナップショットに対応するジャンプポイントにおいて自身がセーブしたゲームプレイにジャンプすることが可能であるか、別のユーザは、ユーザ5のゲームプレイにジャンプすることができるか、ユーザ5は、選択されたスナップショットに対応するジャンプポイントにおいて別のユーザのセーブしたゲームプレイにジャンプすることができる。さらに、クライアントデバイス100は、ゲームサーバ205とインタラクトし、コンパニオンインタフェースジェネレータ213から位置に基づくコンパニオンインタフェースを表示するように構成され、そこでコンパニオンインタフェースは、支援情報、メッセージング、インタラクティブクエスト及びチャレンジなどのような、コンテキストに関連するコンテンツを受信する、及び/または生成するように構成される。別の実施形態において、コンパニオンインタフェースジェネレータ113は、ユーザ5に対してローカルにある。特に、他のユーザのゲームプレイ中に取り込まれる情報と同様に、ゲームプレイに関連する位置に基づく情報などの、ユーザ5のゲームプレイ中に取り込まれるスナップショット内に含まれる情報は、コンテキストに関連するコンテンツを生成するために使用される。
さらに特に、ゲームサーバ205のゲームプロセッサ201は、ゲームアプリケーションをプレイするときに、ユーザ5のゲームプレイのスナップショットを生成する、及び/または受信するように構成される。たとえば、スナップショットは、ゲームプロセッサ201へネットワーク150経由で出力され、配信される、クライアントデバイス100上のローカルゲーム実行エンジン111により生成されることができる。加えて、スナップショットは、ゲームプロセッサ201内でゲーム実行エンジン211により、たとえば、エンジン211上で実行するゲームアプリケーションのインスタンスにより、生成されることができる。加えて、他の仮想マシンと関連するゲームサーバ205の他のゲームプロセッサは、他のユーザのゲームプレイと関連するゲームアプリケーションのインスタンスを実行するように、またこれらのゲームプレイ中にスナップショットを取り込むように構成され、そこでこの追加情報を使用して、コンテキストに関連する情報を作成することができる。
スナップショットジェネレータ212は、ユーザ5のゲームプレイから生成される複数のスナップショットを取り込むように構成される。各スナップショットは、対応するスナップショットと関連するビデオゲーム内のポイントから開始するビデオゲームのインスタンスの実行を可能にする情報を提供する。スナップショットは、ユーザ5によるゲームアプリケーションのゲームプレイ中に自動的に生成される。各スナップショットの部分は、実施形態において、独立して構成される、またはデータストア140の下で構成される関連するデータベースに格納される。別の実施形態において、スナップショットは、ユーザ5によりインストラクションを通じて手動で生成されることができる。その方式において、対応するスナップショットの選択を通して、いずれかのユーザは、対応するスナップショットと関連するゲームアプリケーション内のポイントにおいてユーザ5のゲームプレイにジャンプすることができる。加えて、複数のゲームアプリケーションをプレイする他のユーザのゲームプレイのスナップショットも取り込まれることができる。このように、ゲームプロセッサ201は、対応するスナップショットに基づき、いずれかのユーザのセーブされたゲームプレイにジャンプすることを可能にするために、データベース140内の情報にアクセスするように構成される。すなわち、要求するユーザは、スナップショットを生成して、セーブした元のユーザのゲームプレイのゲームキャラクタを使用して、選択されたスナップショットに対応するジャンプポイントにおいてビデオゲームをプレイし始めることが可能である。
スナップショットの作成及び使用についての完全な考察は、「Method And System For Saving A Snapshot of Game Play And Used To Begin Later Execution Of The Game Play By Any User As Executed On A Game Cloud System」と題する、米国出願第15/411,421号内に提供され、これは、その全体を参照により先に援用された。スナップショットの作成及び実装の簡単な説明は、以下に続く。
特に、各スナップショットは、スナップショットに対応するゲームアプリケーション内のポイントにおいて開始するゲームアプリケーションのインスタンスの実行を可能にするメタデータ及び/または情報を含む。たとえば、ユーザ5のゲームプレイにおいて、スナップショットは、ゲームアプリケーションの進行中に、たとえば、レベルの最中に、特定のポイントにおいて生成されることができる。関連するスナップショット情報をデータベース140の1つ以上のデータベースに格納する。ポインタを使用して、特定のスナップショットに対応する各データベースにおいて情報を関連させることが可能である。その方式において、ユーザ5のゲームプレイを経験したい別のユーザ、または自身の前のゲームプレイを再度経験したい同一のユーザ5は、関心のゲームアプリケーション内のポイントに対応するスナップショットを選択することができる。
各スナップショットにおけるメタデータ及び情報は、ユーザのゲームプレイに関する追加の情報を提供することができる、及び/またはこれに関する追加の情報を提供するために分析されることができる。たとえば、スナップショットは、ユーザ(たとえば、ユーザのキャラクタ)がゲームアプリケーション内のどこにいたか、ユーザがゲームアプリケーション内のどこにいるか、ユーザが何をしたか、ユーザがどんなアセット及びスキルを貯めたか、及びユーザがゲームアプリケーション内のどこに行きたいかを決定するのを援助することができる。この追加の情報を使用して、ユーザのゲームプレイに基づくクエスト及び/またはチャレンジを生成することができ、そこでクエスト及び/またはチャレンジは、ゲームアプリケーション内に含まれない。たとえば、ユーザは、ユーザのゲームプレイ(たとえば、最小限の武器を使用してボスを倒す)を模倣するクエスト及び/またはチャレンジを作成する、アセット及び達成パラメータ(たとえば、負及び正)を定義することができる。ユーザは、同一の制約(たとえば、最小限の武器)によってクエストを試行し、このクエストに勝つ(たとえば、ボスを倒す)ことを他のユーザに挑戦させることができる。
スナップショットは、そのポイントにおいてレンダリングされるシーンのスナップショット画像を含む。スナップショット画像をスナップショット画像データベース146内に格納する。タイムラインにおけるサムネイルの形式で提示されるスナップショット画像は、1つの実施形態において、ビデオゲームを通してユーザによる進度に対応するポイントにおいてユーザのゲームプレイ内へビューを提供する。
さらに特に、スナップショットは、そのポイントにおけるゲームのステートを定義するゲームステートデータをも含む。たとえば、ゲームステートデータは、ゲームキャラクタ、ゲームオブジェクト、ゲームオブジェクト属性、ゲーム属性、ゲームオブジェクトステート、グラフィックオーバーレイなどを含むことができる。その方式において、ゲームステートデータは、ビデオゲーム内の対応するポイントに存在したゲーム環境の生成を可能にする。またゲームステートデータは、CPU、GPU、メモリ、レジスタ値、プログラムカウンタ値、プログラマブルDMAステート、DMAについてバッファリングされたデータ、オーディオチップステート、CD-ROMステートなどのステートのような、ゲームプレイをレンダリングするために使用されるあらゆるデバイスのステートを含むことができる。またゲームステートデータは、実行可能なコードのどの部分がそのポイントからビデオゲームを実行するためにロードされる必要があるかを識別することができる。すべてのゲームステートデータを取り込み、格納する必要はないが、スナップショットに対応するポイントにおいてゲームを開始する実行可能なコードのために十分であるデータだけを取り込み、格納する必要がある。ゲームステートデータをゲームステートデータベース145に格納する。
またスナップショットは、ユーザがセーブしたデータを含む。一般的に、ユーザがセーブしたデータは、対応するユーザについてのビデオゲームをパーソナライズする情報を含む。これは、ユーザのキャラクタと関連する情報を含むため、ビデオゲームは、そのユーザへ一意であり得るキャラクタ(たとえば、体型、外観、衣服、武器など)によってレンダリングされる。その方式において、ユーザがセーブしたデータは、対応するユーザのゲームプレイについてキャラクタの生成を可能にし、そこでキャラクタは、スナップショットと関連するビデオゲーム内のポイントに対応するステートを有する。たとえば、ユーザがセーブしたデータは、ゲームをプレイするときにユーザ5が選択したゲーム難易度、ゲームレベル、キャラクタ属性、キャラクタ位置、残存ライフ数、利用可能な残機数、アーマー、トロフィー、タイムカウンタ値、及び他のアセット情報などを含むことができる。またユーザがセーブしたデータは、たとえば、ユーザ5を識別するユーザプロファイルデータを含むことができる。ユーザがセーブしたデータをデータベース141に格納する。
加えて、スナップショットは、人工知能(AI)モジュール215により生成されるランダムシードデータをも含む。ランダムシードデータは、元のゲームコードの部分ではないことがあるが、ゲーム環境をユーザへよりリアルに、及び/または魅力的にみせるためにオーバーレイに加えられることができる。すなわち、ランダムシードデータは、ユーザのゲームプレイに対応するポイントに存在するゲーム環境についての追加の特徴を提供する。たとえば、AIキャラクタをオーバーレイにランダムに生成し、提供することができる。AIキャラクタは、ゲームをプレイするいかなるユーザとも関連しないが、ゲーム環境に配置され、ユーザのエクスペリエンスを向上させる。図解のように、これらのAIキャラクタは、都市のシーンにおいて通りをランダムに歩くことができる。加えて、他のオブジェクトをオーバーレイ内に生成し、提示することができる。たとえば、背景における雲、及び空間を通り飛ぶ鳥をオーバーレイ内に生成し、提示することができる。ランダムシードデータをランダムシードデータベース143に格納する。
その方式において、ユーザ5のゲームプレイを経験したい別のユーザは、関心のビデオゲーム内のポイントに対応するスナップショットを選択することができる。たとえば、ユーザによるノードグラフ内のタイムラインまたはノードに提示されるスナップショット画像の選択は、ゲームプロセッサ201のジャンプ実行エンジン216が対応するスナップショットにアクセスし、このスナップショットに基づきビデオゲームの別のインスタンスをインスタンス化し、このスナップショットに対応するビデオゲーム内のポイントにおいて開始するビデオゲームを実行することを可能にする。その方式において、スナップショットは、要求するユーザがスナップショットに対応するポイントにおいてユーザ5のゲームプレイにジャンプすることを可能にする。加えて、ユーザ5は、他のユーザのゲームプレイにアクセスすることができる、または対応するスナップショットを使用して同一の、もしくは他のゲームアプリケーションにおける自身の前のゲームプレイにアクセスすることさえできる。特に、ユーザ5によるスナップショットの選択(たとえば、タイムラインにおいて、またはメッセージを通じてなど)は、対応するゲームアプリケーションにおいて対応するスナップショットを取り込んだポイントにおいて対応するゲームアプリケーションを実行し始めるために、実行エンジン216がさまざまなデータベースから(たとえば、データベース140から)スナップショット(たとえば、メタデータ及び/または情報)を収集することを可能にする。
ゲームプロセッサ201は、1つの実施形態において、ゲームアプリケーションをプレイするときにユーザ5のゲームプレイをサポートするコンパニオンインタフェースを生成するように構成される、位置に基づくコンパニオンアプリケーションジェネレータ213を含む。別の実施形態において、同様に構成されるコンパニオンアプリケーションジェネレータ113は、ユーザ5へローカルにある。いずれの事例においても、ジェネレータ213または113を使用して、ユーザ5のゲームプレイに基づくユーザ5へ配信される、またはこのユーザから受信されるコンテキストに関連する情報(たとえば、支援情報、メッセージなど)を作成することが可能であり、そこでコンテキストに関連する情報は、位置に基づく情報(たとえば、スナップショット)を使用して作成される。またコンテキストに関連する情報は、ゲームアプリケーションをプレイする他のユーザのゲームプレイから収集される情報に基づくことができる。たとえば、実施形態において、位置に基づく情報は、この情報が複数のゲームプレイの観測及び/または分析を通して決定されることができるように、クラウドソーシング環境内の同一のゲームアプリケーションをプレイする複数のユーザの現在の、及び/または過去のゲームプレイに基づくことができる。その方式において、クラウドソーシングコンテンツは、ゲームプレイ中に見出されることができ、そこでコンテンツは、同一のゲームアプリケーションをプレイする他のプレイヤーに有用である、または向上したユーザエクスペリエンスをこれらの他のユーザへ与えることができる。コンテキストに関連する情報は、ユーザのフレンドから生成されることができる。ユーザは、孤立してゲームアプリケーションをプレイする(たとえば、単独でプレイする)ことができ、第一ユーザのゲームプレイを進める際に、または向上したユーザエクスペリエンスを提供するために有用であるコンパニオンインタフェースを通して情報を受信することができる。ユーザは、同時に(たとえば、孤立して、またはマルチプレイヤーモードにおいて、)ゲームアプリケーションをプレイするすべてのフレンドのグループとプレイすることができ、そこで情報は、フレンド間のリアルタイムインタラクションを提供する。
特に、ジェネレータ213または113は、ゲームプレイの特定のコンテキスト(たとえば、キャラクタの現在の位置、ゲームステート情報など)についての特定のゲームアプリケーション(たとえば、スナップショットに基づき)のためにユーザ5のゲームプレイの進度を決定し、またユーザ5のゲームプレイを表示するデバイスとは異なるデバイス11上に表示可能であるコンパニオンインタフェースに配信されることができるコンテキストに関連する情報を決定するように構成可能である。たとえば、コンテキストに関連する情報は、ゲームアプリケーションを通して進行する際に支援を与える情報を提供することができる。コンテキストに関連する情報は、ユーザ5のゲームプレイがどこに行くかを予測するように構成される、予測エンジン214により提供される情報を考慮することができ、この情報は、キャラクタがどのエリアを訪れるか、どのタスクがゲームプレイを進めるのに必要とされるか、ゲームプレイを進めるためにどのアセット(たとえば、必要とされたタスクを成し遂げるために必要とされるアセット)が必要とされるかなどを含むように構成される。
一般的に、セカンダリ情報は、HMDに実装される環境などの、VR視聴環境のアクティブゾーンに提示されるメインコンテンツとインタラクトしている、対応するユーザのペリフェラルゾーン内に提供されることができる。VR視聴環境は、1つの実施態様においてバックエンドサーバに、またはローカルにVRコンテンツエンジン199に、VRコンテンツエンジン299によって生成されることができる。またコンパニオンインタフェースに提示されるセカンダリ情報を使用して、ユーザ5は、アクティブゾーンに提示されるゲームアプリケーションをプレイするユーザのゲームプレイに関連する支援情報、またはメインコンテンツに関連する他の情報(たとえば、メインコンテンツとして提示される映画内の俳優に関連する情報)などのような、コンテキストに関連するコンテンツを作成することができる。
1つの実施形態において、コンパニオンインタフェースは、表示及びインタラクション用にデバイス11(たとえば、タブレット)へ配信され、そこでデバイス11は、ユーザ5のインタラクションのためにゲームアプリケーションを実行する、及び/またはこのゲームアプリケーションの実行をサポートするように構成されるクライアントデバイス100とは異なることができる。たとえば、第一通信チャネルは、ゲームサーバ205とクライアントデバイス100との間に確立されることができ、別個の、第二通信チャネルは、ゲームサーバ205とデバイス11との間に確立されることができる。別の実施形態において、セカンダリ情報(たとえば、コンパニオンインタフェース)を、表示及びインタラクション用にHMD102へ配信する。
図1Bは、本開示の1つの実施形態に従い、対応するユーザへローカルに実行する1つ以上のゲームアプリケーションをプレイする1人以上のユーザにゲーム制御を提供するシステム106Bを示し、そこでバックエンドサーバサポート(たとえば、ゲームサーバ205を通してアクセス可能である)は、HMD102に実装されるようなVR視聴環境に提示される対応するユーザのゲームプレイをサポートする位置に基づくコンパニオンインタフェースを実装することができ、そこでコンパニオンインタフェースまたはその中に提示される情報は、VR視聴環境内のペリフェラルゾーンに提示される。1つの実施形態において、システム106Bは、対応するユーザのゲームプレイをサポートする位置に基づくコンパニオンインタフェースを実装する、図1Aのシステム10、及び図2のシステム200と連携して動作し、そこですべてのコンポーネントは、明確さのために示されない。ここで図面を参照して、同様の参照番号は、同一の、または対応する部分を示す。
図1Bに示されるように、複数のユーザ115(たとえば、ユーザ5A、ユーザ5B...ユーザ5N)は、複数のゲームアプリケーションをプレイし、そこで各ゲームアプリケーションは、対応するユーザの対応するクライアントデバイス100(たとえば、ゲームコンソール)上でローカルに実行される。加えて、複数のユーザ115のそれぞれは、先に導入され、表示用にコンパニオンインタフェースを受信する、及び/または生成するように構成される、デバイス11及び/またはHMD102へのアクセスを有し、そこでコンパニオンインタフェースは、前述されるような、対応するゲームアプリケーションをプレイする対応するユーザについてのセカンダリ情報(たとえば、コンテキストに関連する情報)を提供し、そこでセカンダリ情報は、表示されるようなVR視聴環境のアクティブゾーン内に提示されるメインコンテンツを視聴するユーザのペリフェラルゾーン内に提示される。各クライアントデバイス100は、対応するゲームアプリケーションのローカルな実行を同様に行うように構成されることができる。たとえば、ユーザ5Aは、対応するクライアントデバイス100上で第一ゲームアプリケーションをプレイすることができ、そこで第一ゲームアプリケーションのインスタンスは、対応するゲームタイトル実行エンジン111により実行される。第一ゲームアプリケーションを実装するゲームロジック126A(たとえば、実行可能なコード)は、対応するクライアントデバイス100上に格納され、第一ゲームアプリケーションを実行するために使用される。例示目的のために、ゲームロジックは、対応するクライアントデバイス100へ、ポータブルメディア(たとえば、フラッシュドライブ、コンパクトディスクなど)を通して、またはネットワークを通して配信される(たとえば、インターネット150を通してゲームプロバイダからダウンロードされる)ことができる。加えて、ユーザ5Bは、対応するクライアントデバイス100上で第二ゲームアプリケーションをプレイし、そこで第二ゲームアプリケーションのインスタンスは、対応するゲームタイトル実行エンジン111により実行される。第二ゲームアプリケーションは、ユーザ5Aについて実行する第一ゲームアプリケーション、または異なるゲームアプリケーションと同一であり得る。第二ゲームアプリケーションを実装するゲームロジック126B(たとえば、実行可能なコード)は、前述されるように対応するクライアントデバイス100上に格納され、第二ゲームアプリケーションを実行するために使用される。さらに、ユーザ115Nは、対応するクライアントデバイス100上で第Nゲームアプリケーションをプレイし、そこで第Nゲームアプリケーションのインスタンスは、対応するゲームタイトル実行エンジン111により実行される。第Nゲームアプリケーションは、第一もしくは第二ゲームアプリケーションと同一であり得る、または完全に異なるゲームアプリケーションであり得る。第三ゲームアプリケーションを実装するゲームロジック126N(たとえば、実行可能なコード)は、前述されるように対応するクライアントデバイス100上に格納され、第Nゲームアプリケーションを実行するために使用される。
前述されるように、クライアントデバイス100は、ゲームコントローラ、タブレットコンピュータ、キーボード、ビデオカメラにより取り込まれるジェスチャ、マウス、タッチパッドなどのような、さまざまなタイプの入力デバイスからの入力を受信することができる。クライアントデバイス100は、ネットワーク150経由でゲームサーバ205に接続することが可能である少なくともメモリ及びプロセッサモジュールを含む、いずれかのタイプのコンピューティングデバイスであり得る。また、対応するユーザのクライアントデバイス100は、ローカルに、またはリモートに実行するゲームタイトル実行エンジン111により実行される、レンダリングされた画像を生成するために、及びディスプレイ(たとえば、ディスプレイ11、HMD102など)上にレンダリングされた画像を表示するために構成される。たとえば、レンダリングされた画像は、ユーザ5Aのクライアントデバイス100上で実行する第一ゲームアプリケーションのインスタンスと関連することができる。たとえば、対応するクライアントデバイス100は、ゲームプレイを駆動するために使用される入力コマンドなどを通して、対応するユーザのゲームプレイを実装するためにローカルに、またはリモートに実行されるような対応するゲームアプリケーションのインスタンスとインタラクトするように構成される。
1つの実施形態において、クライアントデバイス100は、ゲームアプリケーションをプレイする、対応するユーザについてシングルプレイヤーモードで動作する。ゲームサーバ205を介してバックエンドサーバサポートは、本開示の1つの実施形態に従い、以下に説明されるような、対応するユーザのゲームプレイをサポートする、位置に基づくコンパニオンインタフェースサービスを提供することができる。
別の実施形態において、複数のクライアントデバイス100は、特定のゲームアプリケーションを各プレイする、対応するユーザについてマルチプレイヤーモードで動作する。その事例において、ゲームサーバを介してバックエンドサーバサポートは、マルチプレイヤー処理エンジン119などを通して、マルチプレイヤー機能性を提供することができる。特に、マルチプレイヤー処理エンジン119は、特定のゲームアプリケーションについてマルチプレイヤーゲームセッションを制御するために構成される。たとえば、マルチプレイヤー処理エンジン119は、マルチプレイヤーセッションコントローラ116と通信し、これは、マルチプレイヤーゲームセッションに参加するユーザ及び/またはプレイヤーのそれぞれとの通信セッションを確立し、維持するように構成される。その方式において、セッション中のユーザは、マルチプレイヤーセッションコントローラ116により制御されるように、相互と通信することが可能である。
さらに、マルチプレイヤー処理エンジン119は、各ユーザの対応するゲーム環境内でユーザ間のインタラクションを可能にするために、マルチプレイヤーロジック118と通信する。特に、ステート共有モジュール117は、マルチプレイヤーゲームセッションにおいて各ユーザについてのステートを管理するように構成される。たとえば、ステートデータは、特定のポイントにおいて対応するユーザについてのゲームプレイの(ゲームアプリケーションの)ステートを定義するゲームステートデータを含むことができる。たとえば、ゲームステートデータは、ゲームキャラクタ、ゲームオブジェクト、ゲームオブジェクト属性、ゲーム属性、ゲームオブジェクトステート、グラフィックオーバーレイなどを含むことができる。その方式において、ゲームステートデータは、ゲームアプリケーション内の対応するポイントに存在するゲーム環境の生成を可能にする。またゲームステートデータは、CPU、GPU、メモリ、レジスタ値、プログラムカウンタ値、プログラマブルDMAステート、DMAについてバッファリングされたデータ、オーディオチップステート、CD-ROMステートなどのステートのような、ゲームプレイをレンダリングするために使用されるあらゆるデバイスのステートを含むことができる。またゲームステートデータは、実行可能なコードのどの部分がそのポイントからビデオゲームを実行するためにロードされる必要があるかを識別することができる。ゲームステートデータは、図1A及び図2のデータベース140内に格納されることができ、ステート共有モジュール117によりアクセス可能である。
さらに、ステートデータは、対応するプレイヤーについてビデオゲームをパーソナライズする情報を含むユーザがセーブしたデータを含むことができる。これは、ユーザによりプレイされるキャラクタと関連する情報を含むため、ビデオゲームは、そのユーザへ一意であり得るキャラクタ(たとえば、位置、体型、外観、衣服、武器など)によってレンダリングされる。その方式において、ユーザがセーブしたデータは、対応するユーザのゲームプレイについてキャラクタの生成を可能にし、そこでこのキャラクタは、対応するユーザが現在経験しているゲームアプリケーション内のポイントに対応するステートを有する。たとえば、ユーザがセーブしたデータは、ゲームをプレイするときに対応するユーザ115Aが選択したゲーム難易度、ゲームレベル、キャラクタ属性、キャラクタ位置、残存ライフ数、利用可能な残機数、アーマー、トロフィー、タイムカウンタ値などを含むことができる。またユーザがセーブしたデータは、たとえば、対応するユーザ115Aを識別するユーザプロファイルデータを含むことができる。ユーザがセーブしたデータをデータベース140に格納することができる。
その方式において、ステート共有データ117及びマルチプレイヤーロジック118を使用してマルチプレイヤー処理エンジン119は、マルチプレイヤーゲームセッションに参加するユーザの各ゲーム環境内にオブジェクト及びキャラクタをオーバーレイ/挿入することが可能である。たとえば、第一ユーザのキャラクタを第二ユーザのゲーム環境内へオーバーレイ/挿入する。これは、マルチプレイヤーゲームセッションにおけるユーザ間のインタラクションを、自身の各ゲーム環境のそれぞれを介して(たとえば、画面上に表示されるように)可能にする。
加えて、ゲームサーバ205を介してバックエンドサーバサポートは、コンパニオンアプリケーションジェネレータ213により生成されるコンパニオンインタフェースを通して提供される、位置に基づくコンパニオンアプリケーションサービスを提供することができる。別の実施形態において、コンパニオンアプリケーションジェネレータ113は、ユーザ5へローカルにあり、同様に構成される。先に導入されるように、ジェネレータ213及び/または113は、ユーザ5へ配信される、またはこのユーザから受信されるコンテキストに関連する情報(たとえば、支援情報、メッセージなど)を含む、セカンダリ情報を作成するように構成される。この情報は、特定のアプリケーションについてユーザ5のゲームプレイに基づき(たとえば、スナップショットに提供される情報に基づき)生成されることができる。その方式において、ジェネレータ213または113は、ユーザ5のゲームプレイのコンテキストを決定することが可能であり、またデバイス11(たとえば、ユーザ5のゲームプレイを表示するデバイスとは異なる)またはHMD102上に表示可能であるコンパニオンインタフェースに配信可能であるコンテキストに関連する情報を提供する(ユーザ5のゲームプレイの表示と同時に起こる)ことが可能である。
図1Cは、本開示の1つの実施形態に従い、クラウドゲームネットワーク経由で実行されるようなそれぞれのVR視聴環境においてゲームアプリケーションをプレイする1人以上のユーザ115(たとえば、ユーザ5L、5M...5Z)へゲーム制御を提供するシステム106Cを示し、そこでバックエンドサーバサポートは、対応するユーザのペリフェラルゾーン内に位置する対応するユーザのゲームプレイをサポートする位置に基づくコンパニオンインタフェースを実装することができ、そこで新規の情報またはデータが視聴するために利用可能であるときに、ユーザの注目は、ペリフェラルゾーンに向けられる。いくつかの実施形態において、クラウドゲームネットワークは、ホストマシンのハイパーバイザ上で実行する複数の仮想マシン(VM)を含むゲームクラウドシステム210であり得、1つ以上の仮想マシンは、ホストのハイパーバイザに利用可能であるハードウェアリソースを利用するゲームプロセッサモジュールを実行するように構成される。1つの実施形態において、システム106Cは、対応するユーザのゲームプレイをサポートする位置に基づくコンパニオンインタフェースを実装する、図1Aのシステム10、及び/または図2のシステム200と連携して動作する。ここで図面を参照して、同様の参照番号は、同一の、または対応する部分を示す。
示されるように、ゲームクラウドシステム210は、複数のインタラクティブビデオゲームまたはゲームアプリケーションへのアクセスを提供するゲームサーバ205を含む。ゲームサーバ205は、クラウド内で利用可能である、いずれかのタイプのサーバコンピューティングデバイスであり得、1つ以上のホスト上で実行する1つ以上の仮想マシンとして構成されることができる。たとえば、ゲームサーバ205は、ユーザについてのゲームアプリケーションのインスタンスをインスタンス化するゲームプロセッサをサポートする仮想マシンを管理することができる。このように、複数の仮想マシンと関連するゲームサーバ205の複数のゲームプロセッサは、複数のユーザ115のゲームプレイと関連するゲームアプリケーションの複数のインスタンスを実行するように構成される。その方式において、バックエンドサーバサポートは、複数の対応するユーザへ複数のゲームアプリケーションのゲームプレイの媒体(たとえば、ビデオ、オーディオなど)のストリーミングを提供する。
複数のユーザ115は、ネットワーク150を介してゲームクラウドシステム210にアクセスし、そこでユーザ(たとえば、ユーザ5L、5M...5Z)は、対応するクライアントデバイス100’を介してネットワーク150にアクセスし、そこでクライアントデバイス100’は、図1Aから図1Bのクライアントデバイス100(たとえば、ゲーム実行エンジン111などを含む)と同様に構成されることができる、または計算機能性(たとえば、ゲーム実行エンジン211を含む)を提供するバックエンドサーバとインタフェースで接続することになっているシンクライアントとして構成されることができる。加えて、複数のユーザ115のそれぞれは、先に導入され、表示用にコンパニオンインタフェースを受信する、及び/または生成するように構成される、デバイス11またはHMD102へのアクセスを有し、このコンパニオンインタフェースは、前述されるような、VR視聴環境内に提示される対応するゲームアプリケーションをプレイする対応するユーザのペリフェラルゾーン内にセカンダリ情報(たとえば、コンテキストに関連する情報)を提供する。特に、対応するユーザ5Lのクライアントデバイス100’は、インターネットなどのネットワーク150経由でゲームアプリケーションへのアクセスを要求するために、及びゲームサーバ205により実行され、対応するユーザ5Lと関連する表示装置へ配信される、ゲームアプリケーション(たとえば、ビデオゲーム)のインスタンスをレンダリングするために構成される。たとえば、ユーザ5Lは、ゲームサーバ205のゲームプロセッサ上で実行するゲームアプリケーションのインスタンスとクライアントデバイス100’を通してインタラクトすることができる。さらに特に、ゲームアプリケーションのインスタンスは、ゲームタイトル実行エンジン211により実行される。ゲームアプリケーションを実装するゲームロジック(たとえば、実行可能なコード)は、前述される、データストア140を通して格納され、アクセス可能であり、ゲームアプリケーションを実行するために使用される。ゲームタイトル処理エンジン211は、示されるように、複数のゲームロジック177を使用して複数のゲームアプリケーションをサポートすることが可能である。
前述されるように、クライアントデバイス100’は、ゲームコントローラ、タブレットコンピュータ、キーボード、ビデオカメラにより取り込まれるジェスチャ、マウス、タッチパッドなどのような、さまざまなタイプの入力デバイスからの入力を受信することができる。クライアントデバイス100’は、ネットワーク150経由でゲームサーバ205に接続することが可能である少なくともメモリ及びプロセッサモジュールを含む、いずれかのタイプのコンピューティングデバイスであり得る。また、対応するユーザのクライアントデバイス100’は、ローカルに、またはリモートに実行するゲームタイトル実行エンジン211により実行される、レンダリングされた画像を生成するために、及びディスプレイ上にレンダリングされた画像を表示するために構成される。たとえば、レンダリングされた画像は、ユーザ5Lのクライアントデバイス100’上で実行する第一ゲームアプリケーションのインスタンスと関連することができる。たとえば、対応するクライアントデバイス100’は、ゲームプレイを駆動するために使用される入力コマンドなどを通して、対応するユーザのゲームプレイを実装するためにローカルに、またはリモートに実行されるような対応するゲームアプリケーションのインスタンスとインタラクトするように構成される。
別の実施形態において、前述される、マルチプレイヤー処理エンジン119は、ゲームアプリケーションについてマルチプレイヤーゲームセッションを制御することを提供する。特に、マルチプレイヤー処理エンジン119がマルチプレイヤーゲームセッションを管理するときに、マルチプレイヤーセッションコントローラ116は、マルチプレイヤーセッション内のユーザ及び/またはプレイヤーのそれぞれとの通信セッションを確立し、維持するように構成される。その方式において、セッション中のユーザは、マルチプレイヤーセッションコントローラ116により制御されるように、相互と通信することが可能である。
さらに、マルチプレイヤー処理エンジン119は、各ユーザの対応するゲーム環境内でユーザ間のインタラクションを可能にするために、マルチプレイヤーロジック118と通信する。特に、ステート共有モジュール117は、マルチプレイヤーゲームセッションにおいて各ユーザについてのステートを管理するように構成される。たとえば、ステートデータは、前述されるように、特定のポイントにおいて対応するユーザ115Aについてのゲームプレイの(ゲームアプリケーションの)ステートを定義するゲームステートデータを含むことができる。さらに、前述されるように、ステートデータは、対応するプレイヤーについてビデオゲームをパーソナライズする情報を含むユーザがセーブしたデータを含むことができる。たとえば、ステートデータは、ユーザのキャラクタと関連する情報を含むため、ビデオゲームは、そのユーザへ一意であり得るキャラクタ(たとえば、体型、外観、衣服、武器など)によってレンダリングされる。その方式において、ステート共有データ117及びマルチプレイヤーロジック118を使用してマルチプレイヤー処理エンジン119は、マルチプレイヤーゲームセッションに参加するユーザの各ゲーム環境内にオブジェクト及びキャラクタをオーバーレイ/挿入することが可能である。これは、マルチプレイヤーゲームセッションにおけるユーザ間のインタラクションを、自身の各ゲーム環境のそれぞれを介して(たとえば、画面上に表示されるように)可能にする。
加えて、ゲームサーバ205を介してバックエンドサーバサポートは、コンパニオンアプリケーションジェネレータ213により生成されるコンパニオンインタフェースを通して提供される、位置に基づくコンパニオンアプリケーションサービスを提供することができる。別の実施形態において、コンパニオンアプリケーションジェネレータ113は、ユーザ5へローカルにあり、同様に構成される。先に導入されるように、ジェネレータ213及び/または113は、対応するユーザ(たとえば、ユーザ5L)へ配信される、またはこのユーザから受信されるコンテキストに関連する情報(たとえば、支援情報、メッセージなど)を作成するように構成される。この情報は、特定のアプリケーションについてユーザのゲームプレイに基づき(たとえば、スナップショットに提供される情報に基づき)生成される。その方式において、ジェネレータ213及び/または113は、対応するユーザのゲームプレイのコンテキストを決定することが可能であり、またデバイス11(たとえば、ユーザ5Lのゲームプレイを表示するデバイスとは異なる)及び/またはHMD102上に表示可能であるコンパニオンインタフェースに配信可能であるコンテキストに関連する情報を提供する(たとえば、ユーザ5のゲームプレイの表示と同時に起こる)ことが可能である。
図1Dは、本発明の実施形態に従い、VRコンテンツの生成(たとえば、ゲームアプリケーション及び/またはビデオゲーム、ビデオコンテンツなどの実行)、及びユーザ5と関連するVR視聴環境のアクティブゾーン内のVRコンテンツとしてのメインコンテンツの提示、及びこのアクティブゾーンの外側にあるペリフェラルゾーン内のセカンダリ情報の生成及び/または提示と併せてHMD102の機能を概念的に示す。いくつかの実施態様において、VRコンテンツエンジン199は、前述されるように、HMD102に通信可能にカップリングされるローカライズされたクライアントデバイス100(図示せず)上で実行される。たとえば、アプリケーションを実行するVRコンテンツエンジン199は、ビデオゲームを実行するゲームエンジンであり得、ビデオゲームのゲームステートを更新する入力を受信するように構成される。ゲームエンジンは、前述されるような、ゲームコンソール、またはバックエンドゲームサーバであり得る。ビデオゲームのゲームステートは、オブジェクトの存在及び位置、仮想環境の条件、イベントのトリガリング、ユーザプロファイル、ビューパースペクティブ、ユーザ5により取られるアクション、コントローラアクション、視線追跡情報などの、現在のゲームプレイのさまざまな態様を定義する、ビデオゲームのさまざまなパラメータの値により、少なくとも部分的に、定義されることが可能である。
図示された実施形態において、VRコンテンツエンジン199は、例として、コントローラ入力161、オーディオ入力162及び動き入力163を受信する。コントローラ入力161は、ハンドヘルドゲームコントローラ6(たとえば、Sony DUALSHOCK(登録商標)4無線コントローラ、Sony PlayStation(登録商標)Moveモーションコントローラー)、またはウェアラブルグローブインタフェースコントローラなどのようなウェアラブルコントローラのような、HMD102とは異なるゲームコントローラの動作から定義されることができる。例として、コントローラ入力161は、ゲームコントローラの動作から処理される、向き入力、ボタン押下、トリガ起動、動き、ジェスチャまたは他の種類の入力を含むことができる。オーディオ入力162は、HMD102のマイクロホン151から、または画像キャプチャ装置108内に含まれるマイクロホン、もしくはローカルシステム環境内の他の箇所から処理されることが可能である。動き入力163は、HMD102内に含まれる動きセンサ159から、またはそれがHMD102の画像を取り込む場合に画像キャプチャ装置108から処理されることが可能である。たとえば、動きセンサ159は、ユーザ5の頭部の動きと関連するHMD102の加速度データを取り込むように構成される慣性センサを含むことができる。加えて、画像キャプチャ装置108は、ユーザ5の頭部の動きを監視する頭部追跡のために構成されることができる。その方式において、頭部の動き、及び/または目の動きを追跡することにより、頭部及び/または目がユーザと関連するVR視聴環境内のペリフェラルゾーン方向に向けられるときに、セカンダリデータは、VR視聴環境を視聴するユーザの視野(FOV)内に提示されることができる。VRコンテンツエンジン199(たとえば、ゲームアプリケーションを実行する)は、ビデオゲームのゲームステートを更新するためにゲームエンジンの構成に従い処理される入力を受信する。エンジン199は、ユーザ5に提示されるコンテンツを定義するようにゲームステートデータを処理するさまざまなレンダリングモジュールへゲームステートデータを出力する。
図示された実施形態において、ビデオレンダリングモジュール183は、HMD102上に提示されるときにユーザ5に三次元VRエクスペリエンスを与える、VRコンテンツ198を含むビデオストリームをレンダリングするように定義される。HMD102内の光学系170のレンズは、VRコンテンツ198を視聴するために構成される。HMD102がユーザ5により装着されるときに、光学系170のレンズが表示画面175とユーザ5の目160との間にあるように、表示画面175は、光学系170のレンズの背部に配置される。その方式において、ビデオストリームは、表示画面/プロジェクタ機構175により提示され、ユーザ5の目160により光学系170を通して視聴されることができる。HMDユーザ5は、たとえば、HMDを装着し、ゲームプレイ用のビデオゲームを選択することにより、インタラクティブVRコンテンツ(たとえば、VRビデオソース、ビデオゲームコンテンツなど)とインタラクトすることを選ぶことができる。ビデオゲームからのインタラクティブ仮想現実(VR)シーンは、HMDの表示画面175上でレンダリングされる。その方式において、HMDは、ユーザの目のすぐ近くにHMDの表示機構をプロビジョニングすることによりゲームプレイにユーザ5が完全に没入することを可能にする。コンテンツをレンダリングするためにHMDの表示画面に画定される表示領域は、ユーザ5の視野の大部分または全体さえ占有することができる。たとえば、メインコンテンツをVR視聴環境のアクティブゾーン内に提示する。典型的に、各目は、1つ以上の表示画面を視聴する光学系170の関連したレンズによりサポートされる。
オーディオレンダリングモジュール182は、ユーザ5が聴くためのオーディオストリームをレンダリングするように構成される。1つの実施形態において、オーディオストリームは、HMD102と関連するスピーカ152を通して出力される。オーディオを提示することが可能である、オープンエアスピーカ、ヘッドホン、またはいずれかの他の種類のスピーカの形態をスピーカ152が取ることができることを理解するであろう。
1つの実施形態において、視線追跡カメラ165は、HMD102内に含まれ、ユーザ5の視線の追跡を可能にする。1つの視線追跡カメラ165のみを含むが、1つより多い視線追跡カメラを用いて、ユーザ5の視線を追跡することができることに留意するべきである。視線追跡カメラは、ユーザの目の画像を取り込み、これらの画像は、ユーザ5の視線の向きを決定するために分析される。1つの実施形態において、ユーザ5の視線の向きについての情報を利用して、ビデオレンダリングに影響を与えることが可能である。たとえば、ユーザの目が特定の向きを見ていると判定される場合に、つぎにその向きについてのビデオレンダリングは、たとえば、ユーザ5が見ている領域内のより詳細な、またはより高速な更新を提供することにより、優先順位付けされる、または強調されることが可能である。1つの実施形態において、ユーザ5の視線がメインコンテンツを提示するアクティブゾーン外側のペリフェラルゾーンに向けられることを検出するときに、セカンダリ情報は、ユーザのFOVに提示される。ヘッドマウントディスプレイに関して、ユーザ5が置かれる実環境に関して、及び/またはヘッドマウントディスプレイ上にレンダリングされている仮想環境に関して、ユーザ5の視線の向きを定義することが可能であることを理解するであろう。
概して、視線追跡カメラ192により取り込まれる画像の分析は、単独で検討される場合、HMD102に関するユーザ5の視線の向きを提供する。しかしながら、HMD102の追跡された位置及び方向と組み合わせて検討される場合、ユーザ5の実世界の視線の向きは、HMD102の位置及び方向がユーザの頭部の位置及び方向と同義であると決定されることが可能である。すなわち、ユーザ5の実世界の視線の向きは、ユーザの目の位置の動きを追跡すること、ならびにHMD102の位置及び方向を追跡することから決定されることが可能である。仮想環境のビューをHMD102上でレンダリングするときに、ユーザ5の実世界の視線の向きを適用し、仮想環境内のユーザ5の仮想世界の視線の向きを決定することが可能である。
加えて、触覚フィードバックモジュール181は、HMD102、またはコントローラ6などのHMDユーザ5により操作される別のデバイスのいずれか一方に含まれる触覚フィードバックハードウェアへ信号を提供するように構成される。触覚フィードバックは、振動フィードバック、温度フィードバック、圧力フィードバックなどのような、さまざまな種類の触感の形態を取ることができる。
別の実施形態において、メタデータ167は、VRコンテンツエンジンから生成され、HMD102を通して実装されるようなVR視聴環境においてメインコンテンツを視聴するユーザへ配信されるセカンダリコンテンツを決定するために使用される。たとえば、メタデータ167は、ユーザによりプレイされるゲームアプリケーションのゲーム環境におけるキャラクタの現在の位置を決定することができ、そこでセカンダリコンテンツ(たとえば、コンテキストに関連する情報)は、キャラクタの位置情報に基づきペリフェラルゾーン内のユーザへの表示のために生成される。
図2は、本開示の実施形態に従い、ゲームクラウドシステム(GCS)210に格納されるゲームアプリケーションのアクセス及びプレイを可能にするシステム図200を示す。概して、ゲームクラウドシステムGCS210は、ネットワーク220経由で動作するクラウドコンピューティングシステムであり、複数のユーザをサポートすることができる。加えて、GCS210は、複数のユーザのゲームアプリケーションのゲームプレイ中に生成されるスナップショットをセーブするように構成され、そこでスナップショットを使用して、スナップショットに対応するゲームアプリケーション内のポイントにおいて開始する、要求するユーザについてのゲームアプリケーションのインスタンスを開始することが可能である。たとえば、スナップショットジェネレータ212は、ゲームアプリケーションをプレイする1人以上のユーザのゲームプレイのスナップショットを生成する、及び/または取り込むために構成される。スナップショットジェネレータ212は、ゲームサーバ205の外部で、または内部で実行することができる。加えて、スナップショットの使用を通じてGCS210は、ユーザがゲームアプリケーションを通してナビゲートし、ゲームアプリケーションの過去及び未来のシーンをプレビューすることを可能にする。さらに、スナップショットは、要求するユーザが対応するスナップショットを通じてビデオゲーム内の選択されたポイントにジャンプし、別のユーザのゲームプレイを経験することを可能にする。また、GCSは、HMD(図示せず)を通して実装されるようなユーザ5と関連するVR視聴環境のアクティブゾーンの外側にあるペリフェラルゾーン内にセカンダリコンテンツを提示するように構成されることができ、そこでアクティブゾーンは、メインコンテンツを提示する。たとえば、セカンダリコンテンツは、VR視聴環境に表示されるようなゲームアプリケーションをプレイするユーザ5のゲームプレイをサポートする情報を提供するコンパニオンインタフェースに提示されることができる。さらに特に、システム200は、GCS210、1つ以上のソーシャルメディアプロバイダ240、及びユーザデバイス230を含み、これらのすべては、ネットワーク220(たとえば、インターネット)を介して接続される。1つ以上のユーザデバイスは、ネットワーク220に接続され、GCS210及びソーシャルメディアプロバイダ240により提供されるサービスにアクセスすることができる。
1つの実施形態において、ゲームクラウドシステム210は、ゲームサーバ205、ビデオレコーダ271、タグプロセッサ273、及びアカウントマネージャ274を含み、アカウントマネージャは、ユーザプロファイルマネージャ、ゲーム選択エンジン275、ゲームセッションマネージャ285、ユーザアクセスロジック280、ネットワークインタフェース290、及びソーシャルメディアマネージャ295を含む。GCS210は、一般的にデータストア140に格納されることができる、ゲームステートストア、ランダムシードストア、ユーザがセーブしたデータストア、スナップショットストアなどの、複数のゲームストレージシステムをさらに含むことができる。他のゲームストレージシステムは、ゲームコードストア261、記録されたゲームストア262、タグデータストア263、ビデオゲームデータストア264、及びゲームネットワークユーザストア265を含むことができる。1つの実施形態において、GCS210は、ゲームアプリケーション、サービス、ゲーム関連のデジタルコンテンツ、ならびにシステム、アプリケーション、ユーザ及びソーシャルネットワーク間の相互接続性を提供することが可能であるシステムである。GCS210は、ネットワークインタフェース290を介してソーシャルメディアマネージャ295を通してユーザデバイス230及びソーシャルメディアプロバイダ240と通信することができる。ソーシャルメディアマネージャ295は、1人以上のフレンドを関連付けるように構成されることができる。1つの実施形態において、各ソーシャルメディアプロバイダ240は、ユーザソーシャルネットワーク接続を示す少なくとも1つのソーシャルグラフ245を含む。
ユーザU0は、ゲームセッションマネージャ285を介してGCS210により提供されるサービスにアクセスすることが可能であり、そこでユーザU0は、図1のユーザ5を表現することができる。たとえば、アカウントマネージャ274は、GCS210へのユーザU0による認証及びアクセスを可能にする。アカウントマネージャ274は、メンバーユーザについての情報を格納する。たとえば、各メンバーユーザについてのユーザプロファイルは、アカウントマネージャ274により管理されることができる。その方式において、メンバー情報は、認証目的のためにアカウントマネージャ274により使用されることが可能である。たとえば、アカウントマネージャ274を使用して、メンバーユーザに関連するユーザ情報を更新し、管理することができる。加えて、メンバーユーザにより所有されるゲームタイトルは、アカウントマネージャ274により管理されることができる。その方式において、これらのゲームアプリケーションを所有するいずれかのメンバーユーザへ、データストア264内に格納されるゲームアプリケーションを利用可能にする。
1つの実施形態において、ユーザ、たとえば、ユーザU0は、ネットワーク220経由の接続を通じてユーザデバイス230としてGCS210及びソーシャルメディアプロバイダ240により提供されるサービスにアクセスすることが可能である。ユーザデバイス230は、有線の、または無線の、ポータブルの、またはポータブルではない、プロセッサ及びメモリを含むいずれかのタイプのデバイスを含むことが可能である。1つの実施形態において、ユーザデバイス230は、スマートフォン、タブレットコンピュータ、またはポータブルフォームファクタにタッチスクリーン機能を提供するハイブリッドの形態であり得る。1つの例示的なデバイスは、オペレーティングシステムを実行し、ネットワーク220経由で取得されることができ、またローカルポータブルデバイス(たとえば、スマートフォン、タブレット、ラップトップ、デスクトップなど)上で実行されることができるさまざまなアプリケーション(app)へのアクセスを備える携帯電話機を含むことが可能である。
ユーザデバイス230は、ユーザU0についてのインタフェースとして機能し、GCS210及びソーシャルメディアプロバイダ240から受信される入力コマンド236、及び表示データ及び/または情報235を送信するディスプレイ232を含む。ディスプレイ232は、フラットパネルディスプレイ、ブラウン管(CRT)、またはディスプレイをレンダリングすることが可能である他のデバイスにより一般に提供されるタッチスクリーン、またはディスプレイとして構成されることが可能である。代替に、ユーザデバイス230は、デスクトップコンピュータまたはラップトップコンピュータに類似する、デバイスとは別のそのディスプレイ232を含むことが可能である。さらに別の代替の実施形態において、ユーザデバイス230は、VR視聴環境のアクティブゾーン内にメインコンテンツ、及びこのアクティブゾーン外側のペリフェラルゾーン内にセカンダリコンテンツを提示する表示機能を提供するHMDを含むことが可能である。追加のデバイス231(たとえば、図1Aのデバイス11)は、位置に基づくコンパニオンインタフェースを実装する目的のためにユーザU0に利用可能であり得る。
1つの実施形態において、ユーザデバイス130は、GCS210と通信し、ユーザU0がゲームアプリケーションをプレイすることを可能にするように構成される。いくつかの実施形態において、GCS210は、ホストマシンのハイパーバイザ上で実行する複数の仮想マシン(VM)を含むことができ、1つ以上の仮想マシンは、ホストのハイパーバイザに利用可能であるハードウェアリソースを利用するゲームプロセッサモジュールを実行するように構成される。たとえば、ユーザU0は、ゲーム選択エンジン275を介してビデオゲームデータストア264において利用可能であるゲームアプリケーションを選択する(たとえば、ゲームタイトルなどにより)ことができる。ゲームアプリケーションをシングルプレイヤーゲーム環境内で、またはマルチプレイヤーゲーム環境内でプレイすることができる。その方式において、選択されたゲームアプリケーションは、GCS210上でゲームサーバ205による実行のために有効にされ、ロードされる。1つの実施形態において、ユーザデバイス230がGCS210からゲームビデオフレーム235のストリームを受信するように、ゲームプレイは、主にGCS210において実行され、ゲームプレイを駆動するためのユーザ入力コマンド236は、GCS210へ返送される。ストリーミングゲームプレイから受信したビデオフレーム235をユーザデバイス230のディスプレイ232に示す。他の実施形態において、GCS210は、複数のユーザをサポートする複数のローカルコンピューティングデバイスをサポートするように構成され、そこで各ローカルコンピューティングデバイスは、シングルプレイヤーゲームアプリケーションまたはマルチプレイヤーゲームアプリケーションなどの、ゲームアプリケーションのインスタンスを実行することができる。たとえば、マルチプレイヤーゲーム環境において、ゲームアプリケーションは、ローカルに実行しながら、同時にクラウドゲームネットワークは、各ローカルコンピューティングデバイスから情報(たとえば、ゲームステートデータ)を受信し、その結果、ローカルコンピューティングデバイスのうちの1つ以上の全体を通してその情報を分散させるため、各ユーザは、マルチプレイヤーゲームアプリケーションのゲーム環境内で他のユーザ(たとえば、ビデオゲーム内の対応するキャラクタを通して)とインタラクトすることが可能である。その方式において、クラウドゲームネットワークは、マルチプレイヤーゲーム環境内の各ユーザについてのゲームプレイを調整し、組み合わせる。
1つの実施形態において、ユーザU0がプレイするために利用可能なゲームタイトルを選択した後に、選択されたゲームタイトルについてのゲームセッションは、ユーザU0によりゲームセッションマネージャ285を通して開始されることができる。最初に、ゲームセッションマネージャ285は、データストア140内のゲームステートストアにアクセスし、もしあれば、ユーザU0によりプレイされた最後のセッションのセーブされたゲームステート(選択されたゲームについての)を取得するため、ユーザU0は、前のゲームプレイの停止ポイントからゲームプレイを再開することが可能である。再開または開始ポイントを識別すると、ゲームセッションマネージャ285は、ゲームプロセッサ201内のゲーム実行エンジンに通知し、ゲームコードストア261から選択されたゲームタイトルのゲームコードを実行することができる。ゲームセッションを開始した後に、ゲームセッションマネージャ285は、ネットワークインタフェース290を介してユーザデバイス、たとえば、ユーザデバイス230へゲームビデオフレーム235(すなわち、ストリーミングビデオデータ)を渡すことができる。
ゲームプレイ中に、ゲームセッションマネージャ285は、ゲームプロセッサ201、録画エンジン271、及びタグプロセッサ273と通信し、ゲームプレイまたはゲームプレイセッションの録画(たとえば、ビデオ)を生成する、またはセーブすることができる。1つの実施形態において、ゲームプレイのビデオ録画は、ゲームプレイ中に入力される、または提供されるタグコンテンツ、及び他のゲーム関連のメタデータを含むことが可能である。またタグコンテンツを、スナップショットを介してセーブすることができる。ゲームプレイのビデオ録画は、そのゲームプレイに対応するいずれかのゲームメトリックとともに、録画されたゲームストア262内にセーブされることができる。いずれかのタグコンテンツをタグデータストア263内にセーブすることができる。
ゲームプレイ中に、ゲームセッションマネージャ285は、ゲームサーバ205のゲームプロセッサ201と通信し、ゲームアプリケーションの対応するゲームプレイの結果に影響を与えるために使用されるユーザ入力コマンド236を配信し、取得することができる。ユーザU0により入力される入力コマンド236は、ユーザデバイス230からGCS210のゲームセッションマネージャ285へ送信されることができる。入力コマンド236は、ゲームプレイを駆動するために使用される入力コマンドを含み、タグコンテンツ(たとえば、テキスト、画像、ビデオ録画クリップなど)を含むように、ユーザインタラクティブ入力を含むことができる。ゲーム入力コマンドは、いずれかのユーザプレイメトリック(ユーザがゲームをどのくらいプレイしているかなど)と同様に、ゲームネットワークのユーザストアに格納されることができる。ゲームアプリケーションについてのゲームプレイに関連する選択情報を使用して、ユーザに利用可能であり得る複数の特徴を有効にすることができる。
ゲームプレイが複数のユーザによりGCS210上で実行されるため、これらのゲームプレイから生成され、格納される情報は、特にゲームプレイをGCS210経由で実行するときに、いずれかの要求するユーザが他のユーザのゲームプレイを経験することを可能にする。特に、GCS210のスナップショットジェネレータ212は、GCS210を通してゲームアプリケーションをプレイするユーザのゲームプレイにより生成されるスナップショットをセーブするように構成される。ユーザU0の事例において、ユーザデバイスは、ユーザU0がゲームプレイ中にゲームアプリケーションと関わることを可能にするインタフェースを提供する。ユーザU0によるゲームプレイのスナップショットをGCS210上に生成し、セーブする。スナップショットジェネレータ212は、図2に示されるようなゲームサーバ205の外部で実行することができる、または図1Aに示されるようにゲームサーバ205の内部で実行することができる。
加えて、これらのゲームプレイから収集される情報を使用して、対応するコンパニオンアプリケーションにユーザU0へ提供されるコンテキストに関連する情報を生成することができる。たとえば、先に導入されるような、コンパニオンアプリケーションジェネレータ213は、ユーザU0のゲームプレイをサポートするように構成される位置に基づくコンパニオンインタフェースを実装するために構成され、そこでコンパニオンインタフェースは、ユーザU0のゲームプレイにおけるキャラクタの位置に基づき生成されるコンテキストに関連する情報(たとえば、メッセージング、支援情報、支援のオファーなど)を含む。コンパニオンアプリケーションジェネレータ213は、図2に示されるようにゲームサーバ205の外部で実行することができる、または図1Aに示されるようにゲームサーバ205の内部で実行することができる。これらの実施態様において、コンテキストに関連する情報は、このコンテキストに関連する情報を含む、コンパニオンアプリケーションインタフェースの表示のためにユーザデバイス231へネットワーク220経由で配信されることができる。別の実施形態において、コンパニオンアプリケーションジェネレータ213は、ユーザに対してローカルである(たとえば、ユーザデバイス231内に実装される)ことができ、コンテキストに関連する情報を生成すること、及び表示することの両方のために構成されることができる。この実施態様において、ユーザデバイス231は、ローカルネットワーク経由で(または外部ネットワーク220を通して)ユーザデバイス230と直接に通信し、コンパニオンアプリケーションインタフェースを実装することができ、そこでユーザデバイス231は、位置に基づく情報をユーザデバイス231へ配信することができ、そこでデバイス230は、コンテキストに関連する情報を含むコンパニオンアプリケーションインタフェースを生成し、表示するために構成される。
さらに、ユーザデバイス230は、ユーザU0または別のユーザのゲームプレイにおいて生成されるスナップショットを使用してゲームアプリケーション内の選択されたポイントへのジャンプを可能にするインタフェースを提供するように構成される。たとえば、ジャンプゲーム実行エンジン216は、対応するスナップショットにアクセスし、このスナップショットに基づきゲームアプリケーションのインスタンスをインスタンス化し、スナップショットに対応するゲームアプリケーション内のポイントにおいて開始するゲームアプリケーションを実行するために構成される。その方式において、スナップショットは、要求するユーザが、スナップショットに対応するポイントにおいて対応するユーザのゲームプレイにジャンプすることを可能にする。たとえば、ユーザU0は、いずれかの他のユーザのゲームプレイを経験することが可能である、または自身のゲームプレイに戻り、レビューする及び/またはリプレイすることが可能である。すなわち、要求するユーザは、対応するゲームプレイのスナップショットを介して、そのゲームプレイで使用され、そのゲームプレイに対応するキャラクタを使用して、ゲームアプリケーションをプレイする。ジャンプゲーム実行エンジン216は、図2に示されるようにゲームサーバ205の外部で実行することができる、または図1Aに示されるようにゲームサーバ205の内部で実行することができる。
図3から図9は、VR視聴環境(たとえば、HMDに実装されるような)に表示されるような、ゲームアプリケーションをプレイするユーザのコンテキスト内で説明され、そこでセカンダリ情報は、メインコンテンツを提示するアクティブゾーンの外側にあるペリフェラルゾーンに提示され、そこでユーザの注目は、新規の情報が利用可能であるときにペリフェラルゾーンに向けられる。一般に、ゲームアプリケーションは、ユーザ入力に応答するいずれかのインタラクティブゲームであり得る。いくつかの実施形態において、この情報は、ユーザのゲームプレイをサポートするように構成される、位置に基づくコンパニオンインタフェース内に提供される。
本開示の1つの実施形態に従い、ネットワーク経由で通信するゲームサーバ及びクライアントデバイスのさまざまなモジュールの詳細な説明に関して、ここでVR視聴環境においてセカンダリコンテンツ(たとえば、データ及び/または情報)を提供する方法は、図3Aの流れ図300Aに関連して説明される。いくつかの実施形態において、セカンダリコンテンツは、VR視聴環境(たとえば、HMDにより実装されるような)内のゲームアプリケーションをプレイするユーザのゲームプレイをサポートするように構成されるコンパニオンインタフェース内に提供される。たとえば、流れ図300の方法は、図1Aから図1D及び図2のコンパニオンアプリケーションジェネレータ213または113により少なくとも部分的に実行されることができる。
図3Aに開示されるような本発明の実施形態は、バックエンドゲームサーバに実装されることができ、本発明の他の実施形態は、ゲームアプリケーションを実行し、ユーザのゲームプレイのサポートにセカンダリコンテンツを提供するために構成されるゲームプロセッサを含むローカルユーザシステム内の実装に良く適している。たとえば、コンパニオンインタフェースは、ローカルの、かつ隔離されたシステム内に実装されることができる、または別のネットワーク経由でバックエンドゲームサーバにより生成され、セカンダリコンテンツの生成及び提示のために使用されることができる。
305において、この方法は、HMDの3Dディスプレイを通じて提示されるような、ユーザのVR視聴環境内にアクティブゾーンを画定することを備える。1つの実施形態において、VR視聴環境は、物理的環境内のユーザの物理的方向と関連し、そこでHMDは、ユーザのこの方向(たとえば、視聴方向)からキューを得て、VR視聴環境のどの部分を表示するかを判定する。たとえば、ユーザについての方向の初期状態に基づき3D物理座標系を確立することにより、仮想3D物理座標系も確立することが可能である。図のように、ユーザの方向が0度にあるときに、同じく0度であるVR視聴環境のビューをHMDが表示するように、0度は、物理座標系と仮想座標系との間に対応することができる。ユーザが自身の頭部を(すなわち、視方向に)回転させる場合に、HMDに表示されるようなVR視聴環境も回転する。
310において、方法は、メインコンテンツをVR視聴環境のアクティブゾーン内に配置することを備える。1つの実施態様において、VR視聴環境は、アクティブゾーン内に主視聴領域を含むように構成される。たとえば、2D画面は、アクティブゾーン内に、ビデオコンテンツ(たとえば、映画などの)、2Dゲームアプリケーション(たとえば、レガシービデオゲーム、2D表示用に設計された現在のビデオゲーム)などのようなメインコンテンツとして2Dコンテンツを表示するように構成されることができる。
VR視聴環境内に、アクティブゾーンは、変更されないで残り、メインコンテンツを連続して提示する。このように、ユーザの方向がアクティブゾーンから離れて変更する場合に、VR視聴環境のHMDに表示されるコンテンツは、メインコンテンツと異なることができ、さまざまな他のデータを含むことができる。たとえば、メインコンテンツを提示する2D画面は、公園設定、ダウンタウン都市設定、屋外設定、屋内設定などのようなVR環境全体内に配置されることができる。ユーザが最初にメインコンテンツを視聴し、その後にその方向が変わると、周囲のVR視聴環境を視聴するように、ユーザの方向が物理的環境を通して回転する場合に、VR環境全体をHMDに表示することができる。
315において、方法は、アクティブゾーンの外側に1つ以上のペリフェラルゾーンを画定することを備える。ペリフェラルゾーンは、アクティブゾーンのちょうど外側に位置する場合があり、ユーザがメインコンテンツをアクティブゾーン内で視聴しているときは、ユーザの典型的な視野(FOV)内で、視聴可能ではない、またはわずかに視聴可能である(たとえば、オーバラップ)ことができる。すなわち、アクティブゾーンは、ユーザのFOVと密接に対応することができる。その方式において、ユーザは、HMDに表示されるようなVR視聴環境内のビュー内にペリフェラルゾーンを持ってくるため、自身の方向を快適に変更することができる。
1つの実施形態において、ペリフェラルゾーンは、メインコンテンツを含まず、代替に他のさまざまなコンテンツを提示することができる。特に、320において、方法は、セカンダリコンテンツをVR視聴環境の1つのペリフェラルゾーン内に配置することを備える。セカンダリコンテンツは、メインコンテンツと異なり、メインコンテンツをサポートすることができる。たとえば、セカンダリコンテンツは、メインコンテンツに関連する追加情報(たとえば、メインコンテンツとして提示される映画内の俳優についての情報、ユーザのゲームプレイ内のゲームキャラクタについての情報など)を提供することができる。1つの実施形態において、セカンダリコンテンツは、HMDを通して視聴されるようなVR環境においてゲームアプリケーションをプレイするユーザのゲームプレイをサポートするコンパニオンインタフェースに提示されるデータ及び/または情報を含む。図3Bに関して、コンパニオンインタフェースを以下により完全に説明する。
ユーザがメインコンテンツに集中している場合に、何回もユーザは、1つ以上のペリフェラルゾーン内のセカンダリコンテンツの存在に気付かない。セカンダリコンテンツは、ユーザに関心を持たせる及び/または有用であり得る。たとえば、ゲームアプリケーションをプレイするコンテキスト内で、セカンダリコンテンツは、ゲームプレイを進める方向に支援を設けることができる(たとえば、ユーザがボスと現在戦っている場合に、このボスを倒すことについての秘訣を提供する)。本発明の実施形態は、1つ以上のペリフェラルゾーン内に提示されるセカンダリコンテンツへユーザの注目を向けるのを援助する。特に、325において、方法は、セカンダリコンテンツに新規のデータエントリと併せてアクティブゾーン内にアトラクタを表示することを備える。このアトラクタは、メインコンテンツと同時に提示される。
さらに、アトラクタは、セカンダリコンテンツを含むペリフェラルゾーンへユーザの注目を向ける方式で提示される。たとえば、1つの実施形態において、アトラクタをメインコンテンツと異なる平面に表示することができる。別の実施形態では、アトラクタは、ユーザのFOV内で積極的に動き、ユーザの注目をとらえることができる。さらに別の実施形態において、アトラクタは、メインコンテンツとは異なる色を有するように表示される、またはセカンダリコンテンツが利用可能であることを示すと直ちに識別可能である。さらに別の例において、アトラクタは、目を引く方式(たとえば、目立つ色、目立つ輪郭、点滅など)で提示されることができる。
さらに別の実施形態において、アトラクタは、1つ以上のアイコンであり得、そこで各アイコンは、どの種類のコンテンツがペリフェラルゾーンに提示されているかを示す。理想的には、アイコンは、容易に一見してパースするため、ユーザは、アイコンを見分けることが可能であり、どのタイプのセカンダリコンテンツが視聴するために利用可能であるかを知ることが可能である。たとえば、電球アイコンは、セカンダリコンテンツが秘訣を含むことを示すことが可能である。別の例において、ドクロマークのアイコンは、ボスへ特有の情報(たとえば、ボスを倒すために有用な)がセカンダリコンテンツとしてペリフェラルゾーン内に提供されることを示すことができる。さらに別の例において、折り畳まれた角のある紙のアイコンは、セカンダリコンテンツがペリフェラルゾーンにおいて利用可能であり、フレンドが残したメモを含むことを示すことができる。セカンダリコンテンツのタイプに関連のある、さらに他のアイコンをサポートし、企図する。
330において、方法は、アクティブゾーンに向けられる第一方向から第一ペリフェラルゾーンに向けられる第二方向へHMDの回転を検出することを備える。すなわち、ユーザは、メインコンテンツに集中しており、したがって、物理的環境内の第一方向に向けられる。アトラクタの使用を通じてセカンダリコンテンツのアウェアネスに基づき、ユーザは、セカンダリコンテンツを視聴したい可能性があり、したがって、VR視聴環境のペリフェラルゾーン内でセカンダリコンテンツを視聴するために、自身の方向を変える。たとえば、HMDが頭部にしっかりと取り付けられる場合に、ユーザの頭部は、第二方向に回転し、対応して、HMDは、第一方向から第二方向へ回転する。特に、セカンダリコンテンツは、VR視聴環境内の第一ペリフェラルゾーンに向けられる第二方向にHMDの回転が到達するときに表示される。セカンダリコンテンツは、新規のデータ、または新規に提示されたデータ、またはユーザにとって関心のあるデータを含むことができる。セカンダリコンテンツは、HMDを通して提示されるように、ユーザのFOV内に表示される。
335において、メインコンテンツを一時停止する。特に、第二方向において、HMDは、VR視聴環境内にセカンダリコンテンツを表示し、メインコンテンツは、HMDにより表示されるような視聴環境内でユーザには見えない場合がある、あるいは少なくともあまり見えない。さらに、ユーザの注目は、目下セカンダリコンテンツに集中している。その事例において、メインコンテンツがそのプレイまたは表示を続ける(たとえば、ゲームアプリケーションを実行する、ビデオコンテンツ、たとえば映画などを再生する)場合に、ユーザは、セカンダリコンテンツに集中している間にメインコンテンツに表示されているものに気付かない可能性がある。たとえば、ユーザがゲームアプリケーションにおいてレベルの最後にボスと戦っている間に、ユーザは、セカンダリコンテンツを視聴することを選択することができる。ゲームアプリケーションの実行を自動的に一時停止することにより、ユーザのFOVの少なくとも部分的に外側に目下あるアクティブゾーン内に提示されるようなボスのバトル(ボスと戦っているキャラクタの瀕死の状態に関して)を続ける代替に、メインコンテンツを一時停止する。
1つの実施形態において、ユーザの方向がメインコンテンツを視聴することが可能である位置方向へ(たとえば、第一方向へ)再度戻るときに、メインコンテンツを継続する、またはこのメインコンテンツの一時停止を解除する。特に、方法は、第二方向から第一方向へのHMDの回転を検出することを備える。たとえば、ユーザは、セカンダリコンテンツを視聴し終え、メインコンテンツを再度視聴したい、及び/またはメインコンテンツとインタラクトしたい。このように、視聴者は、自身の頭部(及びHMD)を回転させ、メインコンテンツを視聴することが可能である位置へ戻る(たとえば、第一方向へ戻る)ことができる。そのポイントにおいて、メインコンテンツの一時停止を解除する、またはこのメインコンテンツを再開する(たとえば、ゲームアプリケーションの実行を再開する、ビデオコンテンツを再開する、映画の再生を再開するなど)。特に、HMDの3Dディスプレイを通して提示されるような、ユーザのFOV内に目下あるアクティブゾーン内に、再開されたメインコンテンツを表示する。
図3Bは、本開示の1つの実施形態に従い、対応するユーザのゲームプレイをサポートするコンパニオンアプリケーションの位置に基づくコンパニオンインタフェースを生成する(たとえば、コンパニオンインタフェースを生成する)方法におけるステップを示す流れ図300Bであり、そこでコンパニオンインタフェースは、対応するユーザのペリフェラルゾーンに位置する。すなわち、ユーザと関連するVR視聴環境のペリフェラルゾーン内に提示されるセカンダリコンテンツは、コンパニオンインタフェースを含む。流れ図300Bは、ゲームアプリケーションを実行する動作、及びゲームアプリケーションをプレイするユーザのゲームプレイの位置に基づく情報を生成する動作を有する。さらに、流れ図300Bは、セカンダリコンテンツとしてコンパニオンインタフェースを提供するバックエンドサーバの観点から説明されるが、他の実施形態は、前述されるように、流れ図300Bへのわずかな変更によってユーザへローカルなコンパニオンインタフェースを提供するのに良く適している。
特に、動作350において、方法は、ユーザのゲームプレイと関連してゲームアプリケーションの第一インスタンスをインスタンス化することを備える。前述されるように、1つの実施形態において、ゲームアプリケーションのインスタンスは、ユーザのクライアントデバイスにおいてローカルに実行されることが可能である。他の実施形態において、ゲームアプリケーションのインスタンスは、バックエンドゲームサーバのバックエンドゲーム実行エンジンにおいて実行することができ、そこでサーバは、クラウドゲームネットワークまたはゲームクラウドシステムの部分であり得る。動作355において、方法は、ユーザ(たとえば、第一ユーザ)によるインタラクションについての第一通信チャネル経由でコンピューティングデバイス(たとえば、第三コンピューティングデバイス)へユーザのゲームプレイを表現するデータを配信することを備える。通信チャネルは、たとえば、インターネットなどのネットワークを通じて、実装されることができる。このように、レンダリングされた画像は、第三コンピューティングデバイスにおける表示用に配信されることができ、そこでレンダリングされた画像は、ユーザのゲームプレイと関連して行われる入力コマンドに応答してゲームアプリケーションのインスタンスによって生成される。
動作360Aにおいて、方法は、ユーザのゲームプレイにおけるキャラクタについての位置に基づく情報を決定することを備える。特に、位置に基づく情報は、ゲームアプリケーションと関連するゲーム世界においてユーザのゲームプレイにおけるキャラクタの位置に関連して作成される。位置に基づく情報は、前述されるような、ユーザのゲームプレイ中に生成される、取り込まれる、及び/または格納されるスナップショット内に含まれることができる。たとえば、各スナップショットは、キャラクタの位置に関連して生成されるメタデータ及び/または情報を含む。1つの実施形態において、メタデータ及び/または情報は、スナップショットに対応するゲームアプリケーション内のポイントにおいて開始する(たとえば、ゲームプレイ内のキャラクタの位置を反映する、スナップショットを捕捉したときのゲームプレイのステートに対応するジャンプポイントにおいて開始する)ゲームアプリケーションのインスタンスの実行を可能にするように構成される。1つの実施形態において、スナップショットを使用して、クエスト/チャレンジであるジャンプゲームをインスタンス化することができる。たとえば、ゲームステートデータがゲームプレイにおいて対応するポイントに存在したゲーム環境の生成を可能にするように、スナップショットは、ゲームプレイの位置に基づく情報、及び対応するポイントにおいてゲームプレイのステートを定義するゲームステートデータを含む(たとえば、ゲームステートデータはゲームキャラクタ、ゲームオブジェクト、オブジェクト属性、グラフィックオーバーレイ、キャラクタのアセット、キャラクタのスキルセット、キャラクタについてのゲームアプリケーション内のタスク達成の履歴、ゲーム世界内のキャラクタの現在の地理的位置、ユーザのゲームプレイ内のゲームアプリケーションを通した進度、キャラクタのゲームプレイの現在のステータスなどを含む)。スナップショットは、ユーザについてゲームアプリケーションをパーソナライズするために使用される、ユーザがセーブしたデータを含むことができ、そこでデータは、ゲームプレイにおいてキャラクタをパーソナライズする情報(たとえば、体型、外観、衣服、武器、ゲーム難易度、ゲームレベル、キャラクタ属性など)を含むことができる。また、スナップショットは、前述されるような、ゲームステートに関連するランダムシードデータを含むことができる。
特に、動作360Bにおいて、方法は、ユーザのゲームプレイ中にゲームアプリケーションから生成される複数のスナップショットを取り込むことを備える。スナップショット内に含まれる情報は、セカンダリコンテンツの生成のために使用されることができる。このように、ゲームアプリケーションに関連する追加のコンテンツを、及びいくつかの事例においてはゲームアプリケーションの実行に依存する追加のコンテンツを、新規に生成することができる。これは、1人以上のユーザによるインタラクションについてのゲームアプリケーションに関連する、コンテンツ量及びコンテンツ範囲を増加させる。
365において、方法は、第一ユーザのゲームプレイのサポートにおける特徴を提供するコンパニオンインタフェース(たとえば、コンテキストに関連する情報を含む)を生成することを備え、ユーザ、またはいずれかの他の視聴者がゲームアプリケーションをプレイする間にユーザへ一般的に有用である情報へリアルタイムにアクセスすることを可能にする。特に、コンパニオンインタフェースは、ユーザのゲームプレイと同時にHMDを通して実装されるようにVR視聴環境内に、提示される、またはセカンダリコンテンツを提供する。たとえば、インタフェースを通して提供される情報がユーザのゲームプレイをサポートするように、コンパニオンインタフェースは、リアルタイムに生成され、ユーザのゲームプレイと同時に配信される。その方式において、ユーザのゲームプレイは、セカンダリコンテンツ(たとえば、コンパニオンインタフェースにより提供される情報)によって拡張されることができる。
図4Aから図4Cは、物理的環境内のユーザのさまざまな方向においてHMDを通じてVR視聴環境を視聴するユーザを示す図である。特に、頭部の回転を図において説明し、そこで頭部の回転は、HMDの回転と関連し、VR視聴環境内での動き(たとえば、何を表示するか)を決定する。図4Aから図4Cは、VR視聴環境を視聴するときの左方向への(たとえば、水平方向に)ユーザの頭部の回転を示し、本明細書に記述される同じ原理は、右方向、または上方向、または下方向、またはそれらのいずれかの組み合わせ(たとえば、水平方向及び/または垂直方向)へのユーザの頭部の回転に適用可能である。前述されるように、カメラセンサ及び/または動きセンサを使用して、前述されるような、HMDを通して実装されるようなVR視聴環境内側でのユーザインタフェース(UI)の動きを決定するために、頭部及び/またはHMDの動きを追跡する。たとえば、カメラセンサは、HMDのヘッドセット上の光センサを使用して追跡することを提供するように構成される。1つの実施態様において、カメラセンサは、シームレスユーザエクスペリエンスを提供するために1秒毎に約1,000回、HMDのヘッドセットを追跡するように構成される。その方式において、頭部の前部と同様に頭部の後部を追跡することが可能である。他の実施形態では、アイトラッキング技術を使用して、頭部の回転を検出する。
図4Aは、本開示の1つの実施形態に従い、快適な回転範囲でユーザ5の頭部407の回転を示す身体状態図400Aである。ユーザは、本開示の1つの実施形態に従い、HMD102を通してVR視聴環境を視聴する。1つの実施態様において、100度のFOVをHMD102内に提示する。垂直軸410は、この軸410沿いの向きにユーザの頭部407を向けるように、ユーザの0度またはニュートラル方向を示す。加えて、頭部407の方向、及び対応してHMD102は、VR視聴環境内に何を提示するかを決定する。すなわち、VR視聴環境内の視聴者(たとえば、ユーザ)の方向は、物理的環境内のユーザの方向に基づく。図4Aに示されるように、ユーザ5の頭部407は、左方向に、30度の角度で快適に回転する。線411は、垂直軸410から30度オフセットである向きに向けられる。図4Aから図4Cにおいて、頭部407が回転する間、身体405が回転しないように、ユーザ5の身体405が同一の位置に残ることに留意する。HMD102は、ニュートラル方向から軸410沿いにオフセットである、対応する方向に関してVR視聴環境を表示する。
図4Bは、本開示の1つの実施形態に従い、最大回転範囲でユーザ5の頭部407の回転を示す身体状態図400Bであり、そこでユーザは、HMD102を介してVR視聴環境を視聴する。特に、ユーザ5の頭部407は、左方向に、55度の角度で回転し、身体405の回転なしでユーザ5に可能な例示的な最大回転を表現する。確かに、特定のユーザについての最大回転は、図4Bに表現したものより大きい、または小さい場合があり、そこで図4Bに提示される回転は、例示目的のために使用される。線412は、垂直軸410から55度オフセットである、物理環境内の向きに向けられる。HMD102は、ニュートラル方向から軸410沿いにオフセットである、対応する方向に関してVR視聴環境を表示する。
図4Cは、本開示の1つの実施形態に従い、HMD102を介してVR視聴環境を視聴するユーザ5の頭部407の可能な動きの範囲を示し、そこで動きの範囲は、図4Aから図4Bに示されるような頭部回転の快適な動きの範囲及び最大の動きの範囲を示す。示されるように、線411は、垂直軸410から30度オフセットであり、そこで垂直軸は、頭部407及びHMD102のニュートラル(たとえば、0度)方向と関連し、左方向への、また右方向への快適な頭部の回転を表現する。示されるように、線412は、垂直軸410から55度オフセットであり、左方向への、また右方向への例示的な最大の頭部の回転を表現する。図4Cに示されるように、身体405の回転なしで、典型的な頭部407及びHMD102の位置は、HMD102内のVR視聴環境の対応する提示に加えて利用可能であると仮定される。
図5Aは、本開示の1つの実施形態に従い、HMD102を通してVR視聴環境を視聴するユーザ5の頭部407の典型的な動きの範囲にわたり干渉されるユーザの視野(FOV)420を示す。頭部407(及び対応してHMD102)の典型的な動きの範囲を図4Cに先に導入し、そこで身体405は、固定された方向にある。図5Aに示されるように、頭部の方向は、ニュートラル方向(たとえば、0度)において前方向に面し、そこで動きの範囲は、快適な動きの範囲(たとえば、0度から30度左方向及び右方向)、及び頭部回転の最大の動きの範囲(たとえば、0度から55度左方向及び右方向)を示す。
特に、ユーザのFOV420は、約94度である。これは、VR視聴環境内で同様の仮想FOV範囲に(たとえば、物理的環境とVR視聴環境との間で1対1の関係に)変換することができる。すなわち、VR視聴環境の対応するビューは、ユーザ5の方向、及びFOV420の方向に対応するHMD102に表示される。このように、FOV420は、線413A間にわたり、これらの両方は、先に導入される、垂直軸410から約47度(たとえば、左方向及び右方向)に位置する。たとえば、FOV420の左端のエッジ421Aは、線413A上に位置し、垂直軸410の左方向に対して約47度オフセットである。また、FOV420の右端のエッジ421Bは、線413A上に位置し、垂直軸410のほぼ右方向に対して約47度オフセットである。
図5Bは、本開示の1つの実施形態に従い、HMD102を通してVR視聴環境を視聴するユーザの頭部407の典型的な動きの範囲にわたり干渉されるユーザ5のFOV420を示し、そこで頭部407の方向は、快適に旋回する(たとえば、30度旋回する)。頭部407(及び対応してHMD102)の典型的な動きの範囲を図4Cに先に導入し、そこで身体405は、固定された方向にある(たとえば、軸410方向に向けられる)。図5Bに示されるように、頭部407の方向は、ニュートラル方向(たとえば、軸410沿いに0度)から30度オフセットである。典型的な動きの範囲は、快適な動きの範囲(たとえば、0度から30度左方向及び右方向)、及び頭部回転の最大の動きの範囲(たとえば、0度から55度左方向及び右方向)を示し、そこで身体は、固定された方向(0度方向)にある。
さらに特に、FOV420の中心が線411沿いに位置し、垂直軸410から30度オフセットであるように、ユーザ5のFOV420も回転する。VR視聴環境の対応するビューは、図5Bに示される、ユーザ5の方向、及びFOV420の方向に対応するHMD102に表示される。このように、FOV420の左端のエッジ421Aは、垂直軸410の左方向に対して77度オフセットに位置する。FOV420の右端のエッジ420Bは、垂直軸410の右方向に対して約17度オフセットに位置する。
図5Cは、本開示の1つの実施形態に従い、HMD102を通してVR視聴環境を視聴するユーザの頭部407の典型的な動きの範囲にわたり干渉されるユーザ5のFOV420を示し、そこで頭部407の方向は、その最大回転に旋回する(たとえば、快適ではない55度旋回する)。頭部407(及び対応してHMD102)の典型的な動きの範囲を図4Cに先に導入し、そこで身体405は、固定された方向にあり(たとえば、軸410方向に向けられ)、頭部は、快適な動きの範囲(たとえば、0度から30度左方向及び右方向)で、及び/または頭部回転の最大の動きの範囲(たとえば、0度から55度左方向及び右方向)で回転することができる。
さらに特に、FOV420の中心が線412沿いに位置し、垂直軸410から左方向へ55度オフセットであるように、ユーザ5のFOV420も回転する。VR視聴環境の対応するビューは、図5Cに示される、ユーザ5の方向、及びFOV420の方向に対応するHMD102に表示される。このように、FOV420の左端のエッジ421Aは、ここで垂直軸410の左方向に対して102度オフセットに位置する。FOV420の右端のエッジ420Bは、垂直軸410の左方向に対して約8度オフセットに位置する。
1つの実施形態において、ユーザのVR視聴環境と関連するアクティブゾーンは、物理的環境内でHMDの第一方向とアライメントを取る。たとえば、ユーザの頭部407がニュートラル方向にありながら、アクティブゾーンのビューがHMD102のディスプレイにより提示されるように、アクティブゾーンは、垂直軸410沿いにセンタリングされることができる。たとえば、ユーザのFOVは、アクティブゾーンを囲む、またはアクティブゾーンと密接にアライメントを取ることができる(たとえば、アクティブゾーン及びFOVは約94度である)。加えて、ペリフェラルゾーン(たとえば、第一ペリフェラルゾーン)は、物理的環境内のHMDの第二方向とアライメントを取ることができる。例示目的のみのために、ペリフェラルゾーンは、図5Cに部分的に示されてもよく、またユーザ5の頭部407がその最大に(たとえば、左方向に55度)旋回するときに見ることができる。先に導入されるように、セカンダリコンテンツは、ペリフェラルゾーン内に提示される。このように、ユーザ5の頭部407の方向がニュートラル位置にある(たとえば、0度方向に向けられる)ときに、ペリフェラルゾーンは、ユーザ5のFOV420のちょうど外側に位置し、見ることができない場合がある(またはわずかにそうである)。ペリフェラルゾーンは、前述されるように、頭部がニュートラル方向から離れて回転するときに見ることができるようになる。
図5Dは、本開示の1つの実施形態に従い、VR視聴環境内の異なるゾーンを示す図500Dであり、そこでゾーンは、HMDを通してVR視聴環境を視聴するユーザの方向に関連して画定される。これらのゾーンは、94度の典型的なFOVに関連して画定され、実装される他の画定されたFOVについての異なる角度範囲を補うことができる。さらに、これらのゾーンは、VR視聴環境内に画定されるような、中心(たとえば、ユーザの位置)から0.5メートルの最小範囲、及び20メートルの最大範囲を有することができる。これらのゾーンは、頭部407、及び対応してHMD102の水平方向の回転によって示されるが、頭部の水平方向の、及び/または垂直方向のいずれかのタイプの回転のために画定されることが可能である。
図5Dに示されるように、アクティブゾーン510は、0度のニュートラル方向などに、VR視聴環境内でセンタリングされ、約94度(たとえば、中心の左方向及び右方向に対して47度オフセット)にわたる。2Dゲームアプリケーション、ビデオコンテンツなどのような、メインコンテンツをアクティブゾーン内に提示することができる。またメインコンテンツは、3Dゲームアプリケーション、ビデオコンテンツなどを含む、3Dコンテンツを含むことができる。
1つ以上のペリフェラルゾーン520も示され、そこでペリフェラルゾーンは、アクティブゾーン510の外側に位置する。いくつかの実施態様では、これらのゾーンは、オーバラップすることができる。たとえば、ユーザがアクティブゾーンに(たとえば、ニュートラル方向に)集中しているときに、ペリフェラルゾーン520は、ユーザのFOVのちょうど外側に位置することができる。示されるように、ペリフェラルゾーン520は、アクティブゾーン510からオフセットにあり、中心(たとえば、軸410)の左方向に対してオフセットにある角度47度から77度の間に位置する。別のペリフェラルゾーン520は、アクティブゾーン510からオフセットにあり、中心(たとえば、軸410)の右方向に対してオフセットにある角度47度から77度の間に位置する。たとえば、ペリフェラルゾーンは、また身体405を回転させずに、頭部407の最大回転を表現する、中心から約55度(左方向及び右方向)オフセットにある角度にセンタリングされることができる。
また1つ以上の快適ではないペリフェラルゾーン530を示し、そこでゾーン530は、ペリフェラルゾーン520の外側に位置する。示されるように、ペリフェラルゾーン530は、アクティブゾーン510からオフセットにあり、中心(たとえば、軸410)の左方向に対してオフセットにある角度77度から102度の間に位置する。別の快適ではないペリフェラルゾーン530は、アクティブゾーン510からオフセットにあり、中心(たとえば、軸410)の右方向に対してオフセットにある角度77度から102度の間に位置する。たとえば、快適ではないペリフェラルゾーン530は、また身体405を回転させずに、とても快適ではない頭部407の回転を表現する、中心から約90度(左方向及び右方向)オフセットにある角度にセンタリングされることができる。いくつかの事例において、身体は、快適ではないペリフェラルゾーン530をHMD102内のビューに持ってくるようにわずかに回転することができる。
さらに、好奇心ゾーン540は、アクティブゾーン510の背部に示される。すなわち、ユーザ5は、好奇心ゾーン540の部分の表示を可能にする方向へHMD102を回転させるために、自身の身体405を旋回させなければならない。好奇心ゾーンは、アクティブゾーン510に提示されるメインコンテンツに関連してもよいし、しなくてもよい、いずれかのタイプのコンテンツを含むことができる。
図6Aから図6Cは、HMDを通じてVR視聴環境を視聴するユーザのアクティブゾーン510に関するペリフェラルゾーンの例示的な位置を示す。ペリフェラルゾーンの位置は、図6Aから図6Cに余すところなく述べられることを意図されず、ニュートラル位置からオフセットにあるHMDのさまざまな水平方向の、及び/または垂直方向の回転と関連しているアクティブゾーン510の外側のさまざまな位置を含むことができる。
特に、図6Aは、本開示の1つの実施形態に従い、HMDを通してVR視聴環境を視聴するユーザのアクティブゾーン510を示し、そこでアクティブゾーンは、メインコンテンツを提示し、そこでセカンダリコンテンツは、ペリフェラルゾーンに示される。例示として、アクティブゾーン510は、16:9のアスペクト比によって表示されることができるが、他のアスペクト比をもサポートし、そこでアスペクト比は、幅と高さ(たとえば、視聴領域、表示領域、ディスプレイなどの)との間の関係を定義する。示されるように、ペリフェラルゾーン520Aは、アクティブゾーン510の外側に位置する。この事例において、ペリフェラルゾーン520Aは、アクティブゾーン510より上に位置する。たとえば、ユーザは、上方向に頭部を回転させ、または傾け、HMDに表示されるようなVR視聴環境のペリフェラルゾーン520Aをビュー内に持ってくることができる。前述されるように、セカンダリコンテンツ(たとえば、コンパニオンインタフェースを通して提示されるような)は、ペリフェラルゾーン520A内の提示のために利用可能である。
図6Bは、本開示の1つの実施形態に従い、HMDを通してVR視聴環境を視聴するユーザのアクティブゾーン510を示し、そこでアクティブゾーンは、メインコンテンツを提示し、そこでセカンダリコンテンツは、ペリフェラルゾーンにおいて利用可能である。示されるように、ペリフェラルゾーン520Bは、アクティブゾーン510の外側に位置する。この事例において、ペリフェラルゾーン520Bは、アクティブゾーン510の側部に位置し、さらに特にアクティブゾーン510の左方向に位置する。他の事例において、ペリフェラルゾーンは、アクティブゾーン510の右方向に位置することができる。たとえば、ユーザは、左方向に頭部を回転させ、HMDに表示されるようなVR視聴環境のペリフェラルゾーン520Bをビュー内に持ってくることができる。前述されるように、セカンダリコンテンツ(たとえば、コンパニオンインタフェースを通して提示されるような)は、ペリフェラルゾーン520B内の提示のために利用可能である。
図6Cは、本開示の1つの実施形態に従い、HMDを通してVR視聴環境を視聴するユーザのアクティブゾーン510を示し、そこでアクティブゾーンは、メインコンテンツを提示し、そこでセカンダリコンテンツは、1つ以上のペリフェラルゾーンにおいて利用可能である。示されるように、ペリフェラルゾーン520Cは、アクティブゾーン510の外側に位置する。この事例において、ペリフェラルゾーン520Cは、アクティブゾーン510より下で、このアクティブゾーンの右方向に位置する。たとえば、ユーザは、下方向に、またわずかに右方向に頭部を回転させ、または傾け、HMDに表示されるようなVR視聴環境のペリフェラルゾーン520Cをビュー内に持ってくることができる。前述されるように、セカンダリコンテンツ(たとえば、コンパニオンインタフェースを通して提示されるような)は、ペリフェラルゾーン520C内の提示のために利用可能である。加えて、別のペリフェラルゾーン520Dも、アクティブゾーン510の外側に位置し、そこでこの事例において、ゾーン520Dは、アクティブゾーン510より下で、このアクティブゾーンの左方向に位置する。たとえば、ユーザは、下方向に、またわずかに左方向に頭部を回転させ、または傾け、HMDに表示されるようなVR視聴環境のペリフェラルゾーン520Dをビュー内に持ってくることができる。前述されるように、他の、または追加のセカンダリコンテンツ(たとえば、コンパニオンインタフェースを通して提示されるような)は、ペリフェラルゾーン520D内の提示のために利用可能である。このように、図6Cに示されるように、ゾーン520C及び520Dにおいて異なるセカンダリコンテンツをユーザへ利用可能にする。
実施形態において、組み合わされる図7Aから図7Cは、ユーザの頭部が回転してセカンダリコンテンツを視聴するときの、HMDを通してVR視聴環境を視聴するユーザのFOVを示す。特に、セカンダリコンテンツは、VR視聴環境内に提示されるようなメインコンテンツ上に位置するペリフェラルゾーン730内に位置する。セカンダリコンテンツは、ユーザが自身の注目をペリフェラルゾーン730へ向ける(たとえば、HMDを回転させる)ときに視聴可能になる。
特に、図7Aは、本開示の1つの実施形態に従い、HMDを通してVR視聴環境を視聴するユーザのFOV710Aを示し、そこでFOV710Aは、メインコンテンツ720を提示するユーザのアクティブゾーンを含み、ペリフェラルゾーン730の一部を含むことができる。FOV710Aは、水平軸706、及び垂直軸705によって示され、これらの両方は、FOV内でセンタリングされる(たとえば、FOVの中心を規定する)。
示されるように、メインコンテンツ720は、武器を装備したキャラクタの右方向に位置する女性キャラクタを示すシーンを含み、両方のキャラクタは、岩場の上に立っており、街の通りを見下ろしている。女性キャラクタの右方向に位置する、シーンにおいて地平線上で一番高い建物を示す。加えて、角度座標系は、メインコンテンツを示すFOVが変わる可能性があっても、変わらないメインコンテンツ720内に定義される。特に、水平線750は、ニュートラル方向(たとえば、0度の頭部回転)から規定されるような、メインコンテンツ720の水平角を規定する。図7Aにおいて、水平線750は、例示目的のために、垂直軸705の周囲でセンタリングされ、そこでユーザの頭部は、ニュートラル位置にあり、メインコンテンツ720を完全に視聴する。示されるように、FOV710Aは、垂直軸705から47度オフセットにある左方向に対する角度から、垂直軸705から47度オフセットにある右方向に対する角度へ水平方向にわたる。加えて、FOV710Aは、垂線755により示されるような、水平軸706から上方向に約30度オフセットにあり、水平軸706から下方向に約30度オフセットにある鉛直角から垂直方向にわたる。
さらに、FOV710Aは、メインコンテンツ720を完全に含むために、図7Aにより画定されるアクティブゾーンの外側で、このアクティブゾーンより上に位置するペリフェラルゾーン730のエッジを含む。前述されるように、ペリフェラルゾーンは、セカンダリコンテンツ(たとえば、コンパニオンインタフェースを通して提示されるような)を提示するように構成されることができる。図7Aに示されるように、ペリフェラルゾーン730が、HMDにより表示されるようなアクティブゾーンの外側に位置するため、視聴可能なセカンダリコンテンツがない。
図7Bは、本開示の1つの実施形態に従い、HMDを通してVR視聴環境を視聴するユーザのFOV710Bを示し、そこでユーザの頭部は、FOVがメインコンテンツを提示するユーザのアクティブゾーンの部分を含むようにニュートラル方向から上方向に傾き、またアクティブゾーンの外側に、かつアクティブゾーンより上に位置するペリフェラルゾーン730のすべてを含み、そこでペリフェラルゾーンは、セカンダリコンテンツ(たとえば、コンパニオンインタフェースを通して提示されるような)を提示するように構成されることができる。
示されるように、表示されるメインコンテンツ720は、空の領域を大きく、ならびに女性キャラクタ及び武器を装備したキャラクタを小さく示す。たとえば、女性キャラクタ及び武器を装備したキャラクタが立っている岩の露頭の大部分をFOV710Bに示さない。加えて、FOV710Bは、水平軸706及び垂直軸705によって示され、これらの両方は、FOV内でセンタリングされる(たとえば、FOVの中心を規定する)。しかしながら、ここでFOV710Bの中心は、図7Aに示されるFOV710Aの中心(たとえば、女性キャラクタの右方向の腰部に近接して)より高い(たとえば、地平線上で一番高い建物の頂部に近接して)。
加えて、角度座標系は、メインコンテンツ720内に定義され、図7Bに変更されずにある。しかしながら、HMDがペリフェラルゾーン730を示す上方向に回転するため、鉛直角を大きく垂線755に示す。たとえば、FOV710Bは、線755により示されるように、メインコンテンツの水平方向の中心からオフセットした40度上方向の角度に空を大きく示す。
加えて、HMDの回転のために、ペリフェラルゾーン730をFOV710Bにここで完全に示す。先に導入されるように、ペリフェラルゾーン730は、セカンダリコンテンツを含む。この事例において、セカンダリコンテンツは、ゲームアプリケーションをプレイするユーザのゲームプレイをサポートするコンパニオンインタフェースに提示される。特に図7Cは、ペリフェラルゾーン730に提示される図7Bに最初に導入されるセカンダリコンテンツのさらに詳細な図である。たとえば、ペリフェラルゾーン730は、ユーザのゲームプレイ内のキャラクタの位置を示す、レーダマッピング740を含むコンパニオンインタフェースを備える。キャラクタは、対応するゲームアプリケーションのゲーム世界または環境の表現を提供するレーダマッピング740の中心に位置することができる。マッピング740は、レーダマッピング内のオブジェクト間の向きの関係(たとえば、向き及び距離)を示すことができる。さらに、レーダマッピング740は、ゲーム世界内に位置するオブジェクト/特徴、ならびにユーザ及び他のプレイヤーのキャラクタの位置を含むことができる。
統計値、インベントリ、データ、ローカライズされたマッピング、ラジオプレゼンテーションなどのような追加情報743を提示することができる。たとえば、セカンダリコンテンツは、マッピング740の中心に位置するキャラクタの筋力を強調表示し、筋力の定義を提供することができる。また他のバーデータ745(たとえば、残存ライフ、アーマー耐久性、及び食料品の蓄え)は、ペリフェラルゾーン730内に提示されることができる。
実施形態において、組み合わされる図8Aから図8Cは、ユーザの頭部が回転してセカンダリコンテンツを視聴するときの、HMDを通してVR視聴環境を視聴するユーザのFOVを示す。特に、セカンダリコンテンツは、VR視聴環境内に提示されるようなメインコンテンツの左方向にあるペリフェラルゾーン830に位置する。セカンダリコンテンツは、ユーザが自身の注目をペリフェラルゾーン830へ向ける(たとえば、HMDを回転させる)ときに視聴可能になる。
特に、図8Aは、本開示の1つの実施形態に従い、HMDを通してVR視聴環境を視聴するユーザのFOV710Aを示し、そこでFOVは、メインコンテンツを提示するユーザのアクティブゾーンを含み、ペリフェラルゾーン830の一部を含むことができる。FOV710Aは、図7Aに最初に導入されるが、ここでメインコンテンツを提示するアクティブゾーン側部にペリフェラルゾーン830を含む。FOV710Aは、水平軸706及び垂直軸705によって示され、これらの両方は、FOV内でセンタリングされる(たとえば、女性キャラクタの腰部のほぼ右方向に、また犬と女性キャラクタとの間に位置するFOVの中心を規定する)。また、角度座標系は、水平線750及び垂線755によって示されるような、変わらないメインコンテンツ720内に定義される。
さらに、FOV710Aは、メインコンテンツ720を完全に含むために、図8Aにより画定されるアクティブゾーンの外側に、かつ側部に位置するペリフェラルゾーン830のエッジを含む。前述されるように、ペリフェラルゾーンは、セカンダリコンテンツ(たとえば、コンパニオンインタフェースを通して提示されるような)を提示するように構成されることができる。たとえば、FOV710Aは、メインコンテンツ720を提示するアクティブゾーンの左方向に位置するペリフェラルゾーン830のエッジを含む。図8Aに示されるように、ペリフェラルゾーン730が、HMDにより表示されるようなアクティブゾーンの外側に位置するため、視聴可能なセカンダリコンテンツがない。
図8Bは、本開示の1つの実施形態に従い、HMDを通してVR視聴環境を視聴するユーザのFOV710Cを示し、そこでユーザの頭部は、ユーザのFOVがメインコンテンツを提示するユーザのアクティブゾーンの部分を含むように、ニュートラル方向から側部へ(たとえば、左方向へ)回転し、またアクティブゾーンの外側に、かつ側部に位置するペリフェラルゾーン830のすべてを含み、そこでペリフェラルゾーンは、セカンダリコンテンツ(たとえば、コンパニオンインタフェースを通して提示されるような)を提示するように構成されることができる。
示されるように、図8Bに表示されるメインコンテンツ720は、メインコンテンツ720の中心の右方向に位置するシーンを示さない。たとえば、FOV710Aに以前に示される(及び女性キャラクタの右方向に位置する)木々は、図8BのFOV710Cに示されない。加えて、ここでFOV710Cの中心は、左方向で、かつ若干上方向へのHMDの回転を示す、武器を装備したキャラクタの左方向に位置する。
加えて、角度座標系は、メインコンテンツ720内に規定され、図8Bに変更されずにある。しかしながら、HMDが、ペリフェラルゾーン830を示すように、左方向に、かつ若干上方向に回転するため、FOV710Cの垂直方向の中心は、線750上でほぼ水平角30度に位置し、FOV710Cの水平方向の中心は、線755上でほぼ鉛直角10度に位置する。
加えてここで、HMDの回転のために、ペリフェラルゾーン830をFOV710Cに完全に示す。先に導入されるように、ペリフェラルゾーン730は、セカンダリコンテンツを含む。この事例において、セカンダリコンテンツは、ゲームアプリケーションをプレイするユーザのゲームプレイをサポートするコンパニオンインタフェースに提示される。特に、図8Cは、ペリフェラルゾーン830に提示される図8Bに最初に導入されるセカンダリコンテンツのさらに詳細な図である。たとえば、ペリフェラルゾーン830は、ユーザのゲームプレイ内のキャラクタの位置を示す、レーダマッピング840を含むコンパニオンインタフェースを備える。マッピング840は、それらが同一の情報を含む場合に、図7Cのマッピング740に類似することができるが、異なるペリフェラルゾーンに提示される。キャラクタは、対応するゲームアプリケーションのゲーム世界または環境の表現を提供するレーダマッピング840の中心に位置することができる。マッピング840は、レーダマッピング内のオブジェクト間の向きの関係(たとえば、向き及び距離)を示すことができる。さらに、レーダマッピング840は、ゲーム世界内に位置するオブジェクト/特徴、ならびにユーザ及び他のプレイヤーのキャラクタの位置を含むことができる。
統計値、インベントリ、データ、ローカライズされたマッピング、ラジオプレゼンテーションなどのような追加情報843を提示することができる。たとえば、セカンダリコンテンツは、マッピング840の中心に位置するキャラクタの筋力を強調表示し、筋力の定義を提供することができる。また他のバーデータ845(たとえば、残存ライフなど)は、ペリフェラルゾーン830内に提示されることができる。
図9は、本開示の1つの実施形態に従い、HMDを介してVR視聴環境を視聴するユーザのアクティブゾーン905及びペリフェラルゾーン930を示す図であり、そこでアトラクタ930は、アクティブゾーン905に提示され、ペリフェラルゾーン930に提示される情報にユーザの注目を向ける。前述されるように、アクティブゾーン905は、メインコンテンツを含むことができ、ペリフェラルゾーン930は、セカンダリコンテンツを含むことができる。さらに特に、メインコンテンツは、VR視聴環境の第一焦点面910に表示されることができ、そこでメインコンテンツは、2D情報(たとえば、2Dゲームアプリケーション、ビデオコンテンツなど)を含むことができる。加えて、メインコンテンツの一部は、他の実施形態において、第一焦点面910に表示されることができる。
また、アトラクタ930(たとえば、矢印)は、VR視聴環境内の第二焦点面(たとえば、第二2D平面)920に表示されることができる。1つの実施態様において、第二2D焦点面920は、ユーザの視聴位置に対応するVR視聴環境の中心へ第一2D焦点面910より近い。
アトラクタは、ユーザの注目を集めるように設計されるいずれかの方式において提示されることができる。図9は、1つのこのような実施態様を示し、そこでアトラクタ930は、焦点面920内で動くように示される。たとえば、アトラクタ930は、第一位置(表現アトラクタ930Aにより示される)、第二位置(表現アトラクタ930Bにより示される)、第三位置(表現アトラクタ930Cにより示される)、第四位置(表現アトラクタ930Dにより示される)などに示される。これらの表現は、焦点面920にわたるアトラクタ930の動き(たとえば、後方向及び前方向、または繰り返し右方向から左方向のみ、または繰り返し左方向から右方向のみ)を示す。加えて、アトラクタ930の動き及び向き(たとえば、ペリフェラルゾーン930に向けて左方向に向ける)は、ペリフェラルゾーン930に向けて左方向にユーザの注目を向けるのを援助する。
実施形態において、いずれかのタイプのアトラクションの動きを企図する。すなわち、実施形態において、3D視聴環境の軸のうちの1つ以上における動きのいずれかの組み合わせを企図する。たとえば、図9は、アトラクタ930の垂直方向の動き、及び水平方向の動きを1つの焦点面内に示す。別の例において、アトラクタ930は、垂直方向に、水平方向に、及びz方向に(または焦点面910方向へ、またこの焦点面から離れてなどの、ページ内に、またこのページ外に)動くことができる。1つの実施形態において、アトラクタは、セカンダリコンテンツを含むペリフェラルゾーンの向きに水平方向に動く。たとえば、図9において、アトラクタ930は、右方向から左方向へ動き、いかなる垂直方向の動きもなしで動く。図9の例において、アトラクタ930は、ペリフェラルゾーン830Bに到達すると消えることができ、つぎに焦点面920内のペリフェラルゾーンの右方向のどこかに再度出現し、その後ペリフェラルゾーン830Bの方向へ再度動く。
一方、特定の実施形態は、メインコンテンツを提示するアクティブゾーンの外側にあるVR視聴環境のペリフェラルゾーン内にセカンダリコンテンツの提示を実演するために提供され、そこでセカンダリコンテンツは、ゲームアプリケーションをプレイするユーザのゲームプレイをサポートするコンパニオンインタフェースを含むことができる。本開示を読んだ当業者は、本開示の趣旨及び範囲内に入る追加の実施形態を実現するであろう。
広範な地域にわたり配信される、本実施形態のゲームへのアクセスを提供するような、アクセスサービスがクラウドコンピューティングを使用することが多いことに留意するべきである。クラウドコンピューティングは、動的スケーラブルで、仮想化されたリソースがインターネット上のサービスとしてしばしば提供されるコンピューティングのスタイルである。ユーザは、ユーザをサポートする「クラウド」のテクノロジインフラストラクチャの専門家である必要はない。クラウドコンピューティングは、インフラストラクチャアズアサービス(IaaS)、プラットフォームアズアサービス(PaaS)、及びソフトウエアアズアサービス(SaaS)などの異なるサービスに分けられることができる。クラウドコンピューティングサービスは、ウェブブラウザからアクセスされるオンラインで、ビデオゲームなどの共通のアプリケーションをしばしば提供し、ソフトウェア及びデータは、クラウド内のサーバに格納される。クラウドという用語は、インターネットがコンピュータネットワーク図にどのように描かれているかに基づいて、インターネットのメタファとして使用され、メタファが隠す複雑なインフラストラクチャの抽象的概念である。
ゲーム処理サーバ(GPS)(または簡単に「ゲームサーバ」)は、シングルプレイヤービデオゲーム及びマルチプレイヤービデオゲームをプレイするためにゲームクライアントにより使用される。インターネット上でプレイされるほとんどのビデオゲームは、ゲームサーバへの接続を介して動作する。通常、ゲームはプレイヤーからのデータを収集し、それを他のプレイヤーに配布する専用サーバアプリケーションを使用する。これは、ピアツーピア構成よりも効率的かつ効果的であるが、サーバアプリケーションをホストするには別のサーバが必要となる。別の実施形態では、GPSは、プレイヤーとそれぞれのゲームプレイデバイスとの間の通信を確立し、集中GPSに頼ることなく情報を交換する。
専用GPSは、クライアントとは独立して実行されるサーバである。これらのようなサーバは、通常、データセンターに配置された専用ハードウェアで実行され、より多くの帯域幅と専用の処理能力を提供する。専用サーバは、ほとんどのPCベースのマルチプレイヤーゲームのためのゲームサーバをホストするのに好ましい方法である。大規模多人数同時参加型オンラインゲームは、通常ゲームタイトルを所有するソフトウェア会社がホストする専用サーバで実行され、コンテンツを制御及び更新することができる。
ユーザは、少なくともCPU、ディスプレイ及びI/Oを含む、クライアントデバイスを使用してリモートサービスにアクセスする。クライアントデバイスは、PC、携帯電話、ネットブック、PDAなどであり得る。一実施形態では、ゲームサーバ上で実行するネットワークは、クライアントによって使用されるデバイスの種類を認識し、採用する通信方法を調整する。他の場合には、クライアントデバイスは、HTMLなどの標準的な通信方法を使用して、インターネット経由でゲームサーバ上のアプリケーションにアクセスする。
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラマブル家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含むさまざまなコンピュータシステム構成によって実施し得る。本開示はまた、有線ベースまたは無線ネットワークを通ってリンクされる、遠隔処理デバイスによりタスクが実施される、分散型コンピューティング環境で実践されることが可能である。
所与のビデオゲームが特定のプラットフォーム、及び特定の関連したコントローラデバイスのために開発されることができることを理解するであろう。しかしながら、本明細書に提示されるようなゲームクラウドシステムを介してこのようなゲームを利用可能にするときに、ユーザは、異なるコントローラデバイスによってビデオゲームにアクセスすることができる。たとえば、ゲームは、ゲームコンソール及びその関連したコントローラのために開発されている可能性があるが、ユーザは、キーボード及びマウスを利用するパーソナルコンピュータからゲームのクラウドベースのバージョンにアクセスすることができる。このようなシナリオにおいて、入力パラメータ構成は、ユーザの利用可能なコントローラデバイス(この事例において、キーボード及びマウス)により生成されることが可能である入力から、ビデオゲームの実行のために許容可能である入力へのマッピングを定義することが可能である。
別の例において、ユーザは、タブレットコンピューティングデバイス、タッチスクリーンスマートフォン、または他のタッチスクリーン駆動型デバイスを介してクラウドゲームシステムにアクセスすることができる。この事例において、クライアントデバイス及びコントローラデバイスは、入力が検出されたタッチスクリーンの入力/ジェスチャとして提供されながら、同一のデバイス内に合わせて一体化される。このようなデバイスについて、入力パラメータ構成は、ビデオゲームについてのゲーム入力に対応する特定のタッチスクリーン入力を定義することができる。たとえば、ボタン、十字キー、または他のタイプの入力素子は、ビデオゲームの実行中に表示され、またはオーバーレイされ、ユーザがゲーム入力を生成するためにタッチすることが可能であるタッチスクリーン上の位置を示すことができる。特定の向きにおけるスワイプなどのジェスチャ、または特定のタッチモーションもゲーム入力として検出されることができる。1つの実施形態において、たとえば、ビデオゲームのゲームプレイを開始する前に、タッチスクリーン上での制御の操作へユーザを慣れさせるために、ゲームプレイ用のタッチスクリーンを介して入力を提供する方法を示す、チュートリアルをユーザへ提供することが可能である。
いくつかの実施形態では、クライアントデバイスは、コントローラデバイスについての接続ポイントとして機能する。すなわち、コントローラデバイスは、無線または有線接続を介してクライアントデバイスと通信し、コントローラデバイスからクライアントデバイスへ入力を送信する。クライアントデバイスは、これらの入力を順に処理し、その後ネットワーク(たとえば、ルータなどのローカルネットワークデバイスを介してアクセスされる)を介してクラウドゲームサーバへ入力データを送信することができる。しかしながら、他の実施形態において、コントローラ自体は、ネットワークを介してクラウドゲームサーバへ直接に入力を通信する能力を有し、これらのような入力を最初にクライアントデバイスを通して通信する必要がない、ネットワーク化されたデバイスであり得る。たとえば、コントローラは、ローカルネットワークデバイス(前述のルータなど)に接続し、クラウドゲームサーバへデータを送信し、このクラウドゲームサーバからデータを受信することができる。したがって、クライアントデバイスは依然として、クラウドベースのビデオゲームからビデオ出力を受信し、それをローカルディスプレイ上にレンダリングすることを必要とされ得る一方で、入力レイテンシは、コントローラがクラウドゲームサーバへネットワーク経由で入力を直接送信することを可能にすることで減少することができ、クライアントデバイスをバイパスすることが可能である。
1つの実施形態において、ネットワーク化されたコントローラ及びクライアントデバイスは、特定のタイプの入力をコントローラからクラウドゲームサーバへ直接に、また他のタイプの入力をクライアントデバイスを介して送信するように構成されることが可能である。たとえば、検出がコントローラ自体から離れた任意の追加のハードウェアまたは処理に依存しない入力は、コントローラからクラウドゲームサーバへネットワークを介して直接に送信され、クライアントデバイスをバイパスすることが可能である。これらのような入力は、ボタン入力、ジョイスティック入力、埋め込み型動き検出入力(たとえば、加速度計、磁力計、ジャイロスコープ)などを含むことができる。しかしながら、追加のハードウェアを利用する、またはクライアントデバイスによる処理を必要とする入力は、クライアントデバイスによりクラウドゲームサーバへ送信されることが可能である。これらは、クラウドゲームサーバへ送信する前に、クライアントデバイスにより処理されることができるゲーム環境から取り込まれたビデオまたはオーディオを含むことができる。加えて、コントローラの動き検出ハードウェアからの入力は、取り込まれたビデオと併せてクライアントデバイスにより処理され、コントローラの位置及び動きを検出することができ、その後、クライアントデバイスによりクラウドゲームサーバへ通信される。さまざまな実施形態に従いコントローラデバイスもクライアントデバイスから、またはクラウドゲームサーバから直接にデータ(たとえば、フィードバックデータ)を受信することができることを理解するであろう。
本明細書に記載される実施形態がいずれかのタイプのクライアントデバイス上で実行されることができることを理解されたい。いくつかの実施形態では、クライアントデバイスは、ヘッドマウントディスプレイ(HMD)である。
図10は、本開示の実施形態に従う、ヘッドマウントディスプレイ1050の構成要素を示す図である。ヘッドマウントディスプレイ1050は、プログラムインストラクションを実行するためのプロセッサ1000を含む。メモリ1002は、ストレージ目的のために提供され、揮発性メモリ及び不揮発性メモリの両方を含むことができる。ユーザが見ることができる視覚インタフェースを提供するディスプレイ1004を含む。ヘッドマウントディスプレイ1050についての電源としてバッテリ1006を提供する。動き検出モジュール1008は、磁力計1010A、加速度計1012、及びジャイロスコープ1014などの、さまざまな種類の動き感知性ハードウェアのいずれかを含むことができる。
加速度計は、加速度及び重力に誘起された反力を測定するための装置である。単軸及び多軸モデルは、異なる向きにおける加速度の大きさ及び向きを検出するために利用可能である。加速度計を使用して、傾き、振動、及び衝撃を感知する。1つの実施形態において、3つの加速度計1012を使用して2つの角度(ワールド空間ピッチ及びワールド空間ロール)について絶対参照を与える、重力の向きを提供する。
磁力計は、ヘッドマウントディスプレイの近くの磁場の強さ及び向きを測定する。1つの実施形態において、3つの磁力計1010Aは、ヘッドマウントディスプレイ内で使用され、ワールド空間ヨー角度についての絶対参照を確保する。1つの実施形態において、磁力計は、±80マイクロテスラである、地磁気にわたるように設計される。磁力計は、金属の影響を受け、実際のヨーに関して単調であるヨー測定を提供する。磁場は、ヨー測定に歪みを引き起こす、環境内の金属により歪む可能性がある。必要であれば、この歪みは、ジャイロスコープまたはカメラなどの他のセンサからの情報を使用して較正されることが可能である。1つの実施形態において、加速度計1012は、磁力計1010Aと併せて使用され、ヘッドマウントディスプレイ1050の傾き及び方位を取得する。
ジャイロスコープは、角運動量の原理に基づき、方向を測定する、または維持するための装置である。1つの実施形態において、3つのジャイロスコープ1014は、慣性感知に基づきそれぞれの軸(x、y及びz)にわたる動きについての情報を提供する。ジャイロスコープは、高速回転を検出する際に有用である。しかしながら、ジャイロスコープは、絶対参照が存在しなくても、経時的にドリフトすることが可能である。これは、定期的にジャイロスコープをリセットすることを必要とし、これは、オブジェクトの視覚追跡、加速度計、磁力計などに基づく位置/方向決定などの、他の利用可能な情報を使用して行われることが可能である。
実環境の画像及び画像ストリームを取り込むためのカメラ1016を提供する。1つより多いカメラは、ヘッドマウントディスプレイ1050内に含まれ、後ろ向きであるカメラ(ユーザがヘッドマウントディスプレイ1050のディスプレイを見ているときにユーザとは別の方向に向けられる)、及び前向きであるカメラ(ユーザがヘッドマウントディスプレイ1050のディスプレイを見ているときにユーザ方向へ向けられる)を含むことができる。加えて、デプスカメラ1018は、実環境におけるオブジェクトの奥行き情報を感知するためにヘッドマウントディスプレイ1050に含まれることができる。
1つの実施形態において、HMDの前面上に一体化されるカメラを使用して、安全についての警告を提供することができる。たとえば、ユーザが壁またはオブジェクトに接近している場合に、ユーザに警告することができる。1つの実施形態において、この使用は、室内の物理的オブジェクトの輪郭図によって提供され、それらの存在をユーザに警告することができる。輪郭は、たとえば、仮想環境内のオーバーレイであり得る。いくつかの実施形態において、HMDユーザは、床などにオーバーレイされる、基準マーカーへのビューを提供されることができる。たとえば、マーカーは、ユーザがゲームをプレイする部屋のどこが中心であるかの基準をユーザに提供することができる。これは、たとえば、ユーザが部屋の中で壁または他のオブジェクトに衝突することを回避するためにどこを動くべきかの視覚情報をユーザに提供することができる。また触覚警告、及び/または音声警告をユーザへ提供し、ユーザがHMDを装着し、HMDを用いてゲームをプレイするまたはコンテンツをナビゲートするときについてのさらなる安全性を提供することが可能である。
ヘッドマウントディスプレイ1050は、オーディオ出力を提供するためのスピーカ1020を含む。また、周囲環境からの音、ユーザにより生じる音声などを含む、実環境から音を取り込むためのマイクロホン1022を含むことができる。ヘッドマウントディスプレイ1050は、触覚フィードバックをユーザへ提供するための触覚フィードバックモジュール1024を含む。1つの実施形態において、触覚フィードバックモジュール1024は、触覚フィードバックをユーザへ提供するために、ヘッドマウントディスプレイ1050の動き及び/または振動を引き起こすことが可能である。
LED1026は、ヘッドマウントディスプレイ1050のステータスの視覚インジケータとして提供される。たとえば、LEDは、バッテリレベル、電源投入などを示すことができる。カードリーダー1028は、ヘッドマウントディスプレイ1050がメモリーカードへ、またこのメモリーカードからの情報を読み出し、書き込むことを可能にするために提供される。ペリフェラルデバイスの接続、または他のデバイス、たとえば、他のポータブルデバイス、コンピュータなどへの接続を可能にするためのインタフェースの1つの例としてUSBインタフェース1030を含む。ヘッドマウントディスプレイ1050のさまざまな実施形態において、さまざまな種類のインタフェースのいずれかは、ヘッドマウントディスプレイ1050のより高い接続性を可能にするために含まれることができる。
Wi-Fiモジュール1032は、無線ネットワーク技術を介してインターネットへの接続を可能にするために含まれる。また、ヘッドマウントディスプレイ1050は、他のデバイスへの無線接続を可能にするためにBluetooth(登録商標)モジュール1034を含む。また通信リンク1036は、他のデバイスへの接続のために含まれることができる。1つの実施形態において、通信リンク1036は、無線通信用の赤外線伝送を利用する。他の実施形態において、通信リンク1036は、他のデバイスとの通信のためにさまざまな無線または有線伝送プロトコルのいずれかを利用することができる。
入力ボタン/センサ1038は、ユーザについて入力インタフェースを提供するために含まれる。ボタン、タッチパッド、ジョイスティック、トラックボールなどのような、さまざまな種類の入力インタフェースのいずれかを含むことができる。超音波技術を介して他のデバイスとの通信を促進するためのヘッドマウントディスプレイ1050に、超音波通信モジュール1040を含むことができる。
バイオセンサ1042は、ユーザからの生理学的データの検出を可能にするために含まれる。1つの実施形態において、バイオセンサ1042は、ユーザの皮膚を通してユーザの生体電気信号を検出するための1つ以上の乾燥電極を含む。
ヘッドマウントディスプレイ1050の前述の構成要素は、ヘッドマウントディスプレイ1050内に含まれることができる単なる例示的な構成要素として記述されている。本開示のさまざまな実施形態において、ヘッドマウントディスプレイ1050は、さまざまな前述の構成要素のいくつかを含んでもよいし、含まなくてもよい。ヘッドマウントディスプレイ1050の実施形態は、本明細書に記載されるような本開示の態様を容易にする目的のために、現在記述されていないが、当該技術分野において既知である他の構成要素を追加で含むことができる。
当業者は、本開示のさまざまな実施形態において、前述のハンドヘルドデバイスが、さまざまなインタラクティブ機能を提供するためにディスプレイ上に表示されるインタラクティブアプリケーションと併せて利用されることができることを理解するであろう。本明細書に記載される例示的な実施形態は、単に例として提供するものであり、限定として提供するものではない。
図11は、本開示のさまざまな実施形態に従う、ゲームシステム1100のブロック図である。ゲームシステム1100は、ネットワーク1115を介して1つまたは複数のクライアント1110にビデオストリームを提供するように構成される。ゲームシステム1100は、通常、ビデオサーバシステム1120及び任意選択のゲームサーバ1125を含む。ビデオサーバシステム1120は、最小限のサービス品質で1つまたは複数のクライアント1110にビデオストリームを提供するように構成される。たとえば、ビデオサーバシステム1120は、ビデオゲーム内のビューのステートまたは視点を変更するゲームコマンドを受信し、クライアント1110に、この変更をステートに反映する更新されたビデオストリームを、最小遅延時間で提供し得る。ビデオサーバシステム1120は、まだ定義されていないフォーマットを含む、多種多様な代替ビデオフォーマットでビデオストリームを提供するように構成し得る。さらに、ビデオストリームは、多種多様なフレームレートでユーザに提示するために構成されたビデオフレームを含み得る。典型的なフレームレートは、毎秒30フレーム、毎秒60フレーム、及び毎秒820フレームである。ただし、本開示の代替の実施形態には、より高いまたはより低いフレームレートが含まれる。
本明細書で、1110A、1110Bなどと個々に呼ばれるクライアント1110は、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話機、セットトップボックス、キオスク、無線デバイス、デジタルパッド、スタンドアロンデバイス、ハンドヘルドゲームプレイデバイス、及び/または同様のものを含み得る。典型的には、クライアント1110は、符号化されたビデオストリーム(すなわち、圧縮された)を受信し、ビデオストリームを復号し、得られたビデオをユーザ、たとえば、ゲームのプレイヤーに提示するように構成される。符号化されたビデオストリームを受信するプロセス、及び/またはビデオストリームを復号するプロセスは、通常、個々のビデオフレームをクライアントの受信バッファに格納することを含む。ビデオストリームは、クライアント1110に統合されたディスプレイ上またはモニタもしくはテレビなどの別個のデバイス上でユーザに提示し得る。クライアント1110は、任意選択で、複数のゲームプレイヤーをサポートするように構成される。たとえば、ゲームコンソールは、2人、3人、4人またはそれ以上の同時プレイヤーをサポートするように構成し得る。これらのプレイヤーの各人は、別個のビデオストリームを受信し得るか、または単一のビデオストリームは、各プレイヤーに対して特別に生成された、たとえば、各プレイヤーの視点に基づいて生成されたフレームの領域を含み得る。クライアント1110は、任意選択で地理的に分散される。ゲームシステム1100に含まれるクライアントの数は、1つもしくは2つから数千、数万、またはそれ以上に大きく変動し得る。本明細書で使用する「ゲームプレイヤー」という用語は、ゲームをプレイする人を指すために使用され、「ゲームプレイデバイス」という用語は、ゲームをプレイするために使用されるデバイスを指すために使用される。いくつかの実施形態では、ゲームプレイデバイスは、協働してゲームエクスペリエンスをユーザに配信する複数のコンピューティングデバイスを指し得る。たとえば、ゲームコンソール及びHMDは、ビデオサーバシステム1120と協働して、HMDを介して表示されるゲームを配信し得る。一実施形態では、ゲームコンソールは、ビデオサーバシステム1120からビデオストリームを受信し、ゲームコンソールは、レンダリングのためにHMDに、ビデオストリームを転送する、またはビデオストリームへ更新する。
クライアント1110は、ネットワーク1115を介してビデオストリームを受信するように構成される。ネットワーク1115は、電話網、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、プライベートネットワーク、及び/または同様のものを含む任意のタイプの通信ネットワークとし得る。典型的な実施形態では、ビデオストリームは、TCP/IPまたはUDP/IPなどの標準プロトコルを介して通信される。あるいは、ビデオストリームは、独自の規格を介して通信される。
クライアント1110の典型的な例は、プロセッサ、不揮発性メモリ、ディスプレイ、復号化ロジック、ネットワーク通信能力、及び入力デバイスを含むパーソナルコンピュータである。復号化ロジックは、ハードウェア、ファームウェア、及び/またはコンピュータ可読媒体に格納されたソフトウェアを含み得る。ビデオストリームを復号(及び符号化)するためのシステムは、当該技術分野において周知であり、使用される特定の符号化スキームに応じて異なる。
クライアント1110は、必須ではないが、受信ビデオを修正するために構成されたシステムをさらに含み得る。たとえば、クライアントは、さらなるレンダリングを実行する、1つのビデオ画像をもう1つのビデオ画像にオーバーレイする、ビデオ画像をクロッピングする、及び/または同様のことをするように構成し得る。たとえば、クライアント1110は、Iフレーム、Pフレーム、及びBフレームなどのさまざまなタイプのビデオフレームを受信し、これらのフレームをユーザへの表示のための画像に処理するように構成し得る。いくつかの実施形態では、クライアント1110のメンバーは、ビデオストリームに対するさらなるレンダリング、シェーディング、3Dへの変換、または同様の動作を実行するように構成される。クライアント1110のメンバーは、任意選択で、複数のオーディオまたはビデオストリームを受信するように構成される。クライアント1110の入力デバイスは、たとえば、ワンハンドゲームコントローラ、ツーハンドゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、フォースフィードバックデバイス、動き及び/または位置感知デバイス、マウス、タッチスクリーン、ニューラルインターフェース、カメラ、まだ開発されていない入力デバイス、及び/または同様のものを含み得る。
クライアント1110によって受信されたビデオストリーム(及び任意選択でオーディオストリーム)は、ビデオサーバシステム1120によって生成され、提供される。本明細書の他の箇所でさらに説明されるように、このビデオストリームはビデオフレームを含む(及びオーディオストリームはオーディオフレームを含む)。ビデオフレームは、ユーザに表示される画像に有意義に貢献する(たとえば、それらは適切なデータ構造内にピクセル情報を含む)ように構成される。本明細書で使用する「ビデオフレーム」という用語は、ユーザに表示される画像に貢献する、たとえば、効果を与えるように構成された情報を主に含むフレームを指すために使用される。「ビデオフレーム」に関する本明細書の教示のほとんどは、「オーディオフレーム」にも適用されることができる。
クライアント1110は、典型的には、ユーザからの入力を受信するように構成される。これらの入力は、ビデオゲームのステートを変更するように、またはそれ以外の場合はゲームプレイに影響を与えるように構成されたゲームコマンドを含み得る。ゲームコマンドは、入力デバイスを使用して受信することができる、及び/またはクライアント1110上で実行するインストラクションを計算することによって自動的に生成し得る。受信したゲームコマンドは、クライアント1110からネットワーク1115を介してビデオサーバシステム1120及び/またはゲームサーバ1125に通信される。たとえば、いくつかの実施形態では、ゲームコマンドは、ビデオサーバシステム1120を介してゲームサーバ1125に通信される。いくつかの実施形態では、ゲームコマンドの別個のコピーは、クライアント1110からゲームサーバ1125及びビデオサーバシステム1120に通信される。ゲームコマンドの通信は、任意選択でコマンドのIDに依存する。ゲームコマンドは、オーディオまたはビデオストリームをクライアント1110Aに提供するために使用されたものとは異なる経路または通信チャネルを介して、クライアント1110Aから任意選択で通信される。
ゲームサーバ1125は、任意選択で、ビデオサーバシステム1120とは異なるエンティティによって運営される。たとえば、ゲームサーバ1125は、マルチプレイヤーゲームのパブリッシャーによって運営し得る。この例では、ビデオサーバシステム1120は、任意選択で、ゲームサーバ1125によってクライアントとして見なされ、任意選択で、ゲームサーバ1125の視点から、従来技術のゲームエンジンを実行する従来技術のクライアントであるように見えるように構成される。ビデオサーバシステム1120とゲームサーバ1125との間の通信は、任意選択で、ネットワーク1115を介して行われる。このように、ゲームサーバ1125は、ゲームステート情報を複数のクライアントに送信する従来技術のマルチプレイヤーゲームサーバとすることができ、そのうちの1つがゲームサーバシステム1120である。ビデオサーバシステム1120は、同時にゲームサーバ1125の複数のインスタンスと通信するように構成し得る。たとえば、ビデオサーバシステム1120は、異なるユーザに複数の異なるビデオゲームを提供するように構成されることができる。これらの異なるビデオゲームの各々は、異なるゲームサーバ1125によってサポートし得る、及び/または異なるエンティティによってパブリッシュし得る。いくつかの実施形態では、ビデオサーバシステム1120の地理的に分散された複数のインスタンスは、複数の異なるユーザにゲームビデオを提供するように構成される。ビデオサーバシステム1120のこれらのインスタンスの各々は、ゲームサーバ1125の同じインスタンスと通信し得る。ビデオサーバシステム1120と1つまたは複数のゲームサーバ1125との間の通信は、任意選択で、専用の通信チャネルを介して行われる。たとえば、ビデオサーバシステム1120は、これらの2つのシステム間の通信に専用の高帯域幅チャネルを介してゲームサーバ1125に接続し得る。
ビデオサーバシステム1120は、少なくともビデオソース1130、I/Oデバイス1145、プロセッサ1150、及び非一時的なストレージ1155を備える。ビデオサーバシステム1120は、1つのコンピューティングデバイスを含み得るか、または複数のコンピューティングデバイス間に分散し得る。これらのコンピューティングデバイスは、任意選択で、ローカルエリアネットワークなどの通信システムを介して接続される。
ビデオソース1130は、たとえば、ストリーミングビデオまたは動画を形成する一連のビデオフレームなどのビデオストリームを提供するように構成される。いくつかの実施形態では、ビデオソース1130は、ビデオゲームエンジン及びレンダリングロジックを含む。ビデオゲームエンジンは、プレイヤーからゲームコマンドを受信し、受信したコマンドに基づいてビデオゲームのステートのコピーを維持するように構成される。このゲームステートは、ゲーム環境内のオブジェクトの位置と、典型的には視点を含む。ゲームステートはまた、オブジェクトの特性、画像、色及び/またはテクスチャを含み得る。
ゲームステートは、典型的には、ゲームルールと、移動、回転、攻撃、フォーカス設定、インタラクト、使用及び/または同様のものなどのゲームコマンドに基づいて維持される。ゲームエンジンの一部は、任意選択で、ゲームサーバ1125内に配置される。ゲームサーバ1125は、地理的に分散したクライアントを使用する複数のプレイヤーから受信したゲームコマンドに基づいて、ゲームのステートのコピーを維持し得る。これらの場合、ゲームステートは、ゲームサーバ1125によってビデオソース1130に提供され、そこでゲームステートのコピーが格納され、レンダリングが実行される。ゲームサーバ1125は、ネットワーク1115を介してクライアント1110から直接ゲームコマンドを受信し得て、及び/またはビデオサーバシステム1120を介してゲームコマンドを受信し得る。
ビデオソース1130は、典型的には、レンダリングロジック、たとえば、ハードウェア、ファームウェア、及び/またはストレージ1155などのコンピュータ可読媒体に格納されたソフトウェアなどを含む。このレンダリングロジックは、ゲームステートに基づいてビデオストリームのビデオフレームを作成するように構成される。レンダリングロジックの全部または一部は、任意選択で、グラフィックス処理ユニット(GPU)内に配置される。レンダリングロジックは、典型的には、ゲームステート及び視点に基づいて、オブジェクト間の三次元空間関係を決定するために、及び/または適切なテクスチャなどを適用するために構成された処理段階を含む。レンダリングロジックは生のビデオを生成し、生のビデオは通常、クライアント1110と通信する前に符号化される。たとえば、生のビデオは、Adobe Flash(登録商標)規格、.wav、H.264、H.263、On2、VP6、VC-1、WMA、Huffyuv、Lagarith、MPG-x.Xvid.FFmpeg、x264、VP6-8、RealVideo、mp3などに従って符号化し得る。符号化処理は、リモートデバイス上のデコーダに提供するために、任意選択でパッケージ化されたビデオストリームを生成する。ビデオストリームは、フレームサイズ及びフレームレートによって特徴付けられる。任意の他のフレームサイズを使用し得るが、典型的なフレームサイズには、800×600、1280×720(たとえば、720p)、1024×768がある。フレームレートは、1秒あたりのビデオフレームの数である。ビデオストリームは、異なるタイプのビデオフレームを含み得る。たとえば、H.264規格は、「P」フレーム及び「I」フレームを含む。Iフレームは、表示装置上のすべてのマクロブロック/ピクセルをリフレッシュするための情報を含み、Pフレームは、そのサブセットをリフレッシュするための情報を含む。Pフレームは、典型的には、Iフレームよりもデータサイズが小さい。本明細書で使用する「フレームサイズ」という用語は、フレーム内のピクセル数を指すことを意味する。「フレームデータサイズ」という用語は、フレームを格納するために必要なバイト数を指すために使用される。
代替の実施形態では、ビデオソース1130は、カメラなどのビデオ録画デバイスを含む。このカメラは、コンピュータゲームのビデオストリームに含めることができる遅延ビデオまたはライブビデオを生成するために使用し得る。得られたビデオストリームは、任意選択で、レンダリングされた画像と、スチルカメラまたはビデオカメラを使用して録画された画像の両方を含む。ビデオソース1130はまた、ビデオストリームに含めるために以前に録画されたビデオを格納するように構成されたストレージデバイスを含み得る。ビデオソース1130はまた、オブジェクト、たとえば、人物の動きまたは位置を検出するように構成された動きまたは位置感知デバイス、ならびに検出された動き及び/または位置に基づいてゲームステートを決定する、またはビデオを生成するように構成されたロジックを含み得る。
ビデオソース1130は、任意選択で、他のビデオに配置されるように構成されたオーバーレイを提供するように構成される。たとえば、これらのオーバーレイは、コマンドインタフェース、ログインインストラクション、ゲームプレイヤーへのメッセージ、他のゲームプレイヤーの画像、他のゲームプレイヤーのビデオフィード(たとえば、ウェブカメラビデオ)を含み得る。タッチスクリーンインターフェースまたは視線検出インタフェースを含むクライアント1110Aの実施形態では、オーバーレイは、仮想キーボード、ジョイスティック、タッチパッド、及び/または同様のものを含み得る。オーバーレイの一例では、プレイヤーの音声がオーディオストリーム上にオーバーレイされる。ビデオソース1130は、任意選択で、1つまたは複数のオーディオソースをさらに含む。
ビデオサーバシステム1120が複数のプレイヤーからの入力に基づいてゲームステートを維持するように構成される実施形態では、各プレイヤーは、ビューの位置及び向きを含む異なる視点を有し得る。ビデオソース1130は、任意選択で、各プレイヤーに対して、各プレイヤーの視点に基づいて別個のビデオストリームを提供するように構成される。さらに、ビデオソース1130は、異なるフレームサイズ、フレームデータサイズ、及び/または符号化をクライアント1110のそれぞれに提供するように構成し得る。ビデオソース1130は、任意選択で、3Dビデオを提供するように構成される。
I/Oデバイス1145は、ビデオサーバシステム1120が、ビデオ、コマンド、情報要求、ゲームステート、視線情報、デバイス動作、デバイス位置、ユーザ動作、クライアントID、プレイヤーID、ゲームコマンド、セキュリティ情報、オーディオ、及び/または同様のものなどの情報を送信及び/または受信するように構成される。I/Oデバイス1145は、典型的には、ネットワークカードまたはモデムなどの通信ハードウェアを含む。I/Oデバイス1145は、ゲームサーバ1125、ネットワーク1115、及び/またはクライアント1110と通信するように構成される。
プロセッサ1150は、本明細書で論じられるビデオサーバシステム1120のさまざまな構成要素内に含まれるロジック、たとえば、ソフトウェアを実行するように構成される。たとえば、プロセッサ1150は、ビデオソース1130、ゲームサーバ1125、及び/またはクライアントクォリファイア1160の機能を実行するために、ソフトウェアインストラクションによってプログラムし得る。ビデオサーバシステム1120は、任意選択で、プロセッサ1150の複数のインスタンスを含む。プロセッサ1150はまた、ビデオサーバシステム1120によって受信されたコマンドを実行するために、または本明細書で論じられるゲームシステム1100のさまざまな要素の動作を調整するために、ソフトウェアインストラクションによってプログラムし得る。プロセッサ1150は、1つまたは複数のハードウェアデバイスを含み得る。プロセッサ1150は、電子プロセッサである。
ストレージ1155は、非一時的なアナログ及び/またはデジタルストレージデバイスを含む。たとえば、ストレージ1155は、ビデオフレームを格納するように構成されたアナログストレージデバイスを含み得る。ストレージ1155は、コンピュータ可読デジタルストレージ、たとえば、ハードドライブ、光学ドライブ、またはソリッドステートストレージを含み得る。ストレージ1155は、ビデオフレーム、人工フレーム、ビデオフレームと人工フレームの両方を含むビデオストリーム、オーディオフレーム、オーディオストリーム、及び/または同様のものを格納するように(たとえば、適切なデータ構造またはファイルシステムによって)構成される。ストレージ1155は、任意選択で、複数のデバイス間に分散される。いくつかの実施形態では、ストレージ1155は、本明細書の他の箇所で論じられるビデオソース1130のソフトウェア構成要素を格納するように構成される。これらの構成要素は、必要なときにプロビジョニングされる準備ができるフォーマットに格納し得る。
ビデオサーバシステム1120は、任意選択で、クライアントクォリファイア1160をさらに含む。クライアントクォリファイア1160は、クライアント1110Aまたは1110Bなどのクライアントの能力を遠隔で判定するために構成される。これらの能力は、クライアント1110A自体の能力、及びクライアント1110Aとビデオサーバシステム1120との間の1つまたは複数の通信チャネルの能力の両方を含むことができる。たとえば、クライアントクォリファイア1160は、ネットワーク1115を介して通信チャネルをテストするように構成し得る。
クライアントクォリファイア1160は、クライアント1110Aの能力を手動または自動で判定する(たとえば、見出す)ことができる。手動判定は、クライアント1110Aのユーザと通信し、ユーザに能力を提供するように依頼することを含む。たとえば、いくつかの実施形態では、クライアントクォリファイア1160は、クライアント1110Aのブラウザ内に画像、テキスト、及び/または同様のものを表示するように構成される。一実施形態では、クライアント1110Aは、ブラウザを含むHMDである。別の実施形態では、クライアント1110Aは、ブラウザを有するゲームコンソールであり、HMD上に表示し得る。表示されたオブジェクトは、ユーザがクライアント1110Aのオペレーティングシステム、プロセッサ、ビデオデコーダタイプ、ネットワーク接続のタイプ、ディスプレイ解像度などのような情報を入力することを要求する。ユーザによって入力された情報は、クライアントクォリファイア1160に返信される。
自動判定は、たとえば、クライアント1110A上のエージェントの実行によって、及び/またはクライアント1110Aへのテストビデオの送信によって行い得る。エージェントは、ウェブページに埋め込まれるか、またはアドオンとしてインストールされるJava(登録商標)スクリプトなどのコンピューティングインストラクションを含み得る。エージェントは、任意選択で、クライアントクォリファイア1160によって提供される。さまざまな実施形態では、エージェントは、クライアント1110Aの処理能力、クライアント1110Aの復号化及び表示能力、クライアント1110Aとビデオサーバシステム1120との間の通信チャネルの遅延時間の信頼性及び帯域幅、クライアント1110Aのディスプレイタイプ、クライアント1110A上に存在するファイアウォール、クライアント1110Aのハードウェア、クライアント1110A上で実行するソフトウェア、クライアント1110A内のレジストリエントリ、及び/または同様のものを発見することができる。
クライアントクォリファイア1160は、ハードウェア、ファームウェア、及び/またはコンピュータ可読媒体に格納されたソフトウェアを含む。クライアントクォリファイア1160は、任意選択で、ビデオサーバシステム1120の1つまたは複数の他の要素とは別個のコンピューティングデバイス上に配置される。たとえば、いくつかの実施形態では、クライアントクォリファイア1160は、クライアント1110とビデオサーバシステム1120の複数のインスタンスとの間の通信チャネルの特性を判定するように構成される。これらの実施形態では、クライアントクォリファイアによって見出された情報を使用して、ビデオサーバシステム1120のどのインスタンスがクライアント1110の1つにストリーミングビデオを配信するのに最適なのかを判定することができる。
本明細書に定義されるさまざまな実施形態が、本明細書に開示されるさまざまな特徴を使用して、特定の実施態様に組み合わされる、または組み立てられることができることを理解するであろう。したがって、提供される例は、さまざまな要素を組み合わせて、さらに多くの実施態様を定義することにより可能であるさまざまな実施態様に限定されず、いくつかの可能な例であるに過ぎない。いくつかの例において、いくつかの実施態様は、開示された、または均等な実施態様の趣旨から逸脱することなく、より少ない要素を含むことができる。
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラマブル家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含むさまざまなコンピュータシステム構成によって実施し得る。本開示の実施形態はまた、有線ベースまたは無線ネットワークを通ってリンクされる、遠隔処理デバイスによりタスクが実施される、分散型コンピューティング環境で実践されることが可能である。
上記の実施形態を念頭に置いて、本開示の実施形態がコンピュータシステムに格納されたデータを含むさまざまなコンピュータ実装の動作を使用し得ることを理解されたい。これらの動作は、物理量の物理的操作を必要とする動作である。本開示の実施形態の部分を形成する、本明細書に記載されているあらゆる動作は、有用な機械動作である。本発明の実施形態はまた、これらの動作を実行するためのデバイスまたは装置に関する。装置は、必要とされる目的のために特別に構成されることができ、または装置は、コンピュータに格納されたコンピュータプログラムによって選択的に起動または構成された汎用コンピュータとすることができる。具体的には、本明細書の教示に従って書かれたコンピュータプログラムとともにさまざまな汎用機械を使用することができ、または必要とされる動作を実行するより特殊化した装置を構築する方がより便利であり得る。
本開示は、コンピュータ可読媒体上のコンピュータ可読コードとして具体化されることもできる。コンピュータ可読媒体は、データを格納することができる任意のデータストレージデバイスであり、このデータは、その後、コンピュータシステムによって読み取られることができる。コンピュータ可読媒体の例には、ハードドライブ、ネットワーク接続ストレージ(NAS)、リードオンリメモリ、ランダムアクセスメモリ、CD-ROM、CD-R、CD-RW、磁気テープ、ならびに他の光学及び非光学データストレージデバイスが含まれる。コンピュータ可読媒体は、コンピュータ可読コードが分散方式で格納され、実行されるように、ネットワーク結合コンピュータシステム上に分散されるコンピュータ可読有形媒体を含むことができる。
方法動作が特定の順序で説明されているが、他のハウスキーピング操作が動作の間に実行し得る、または動作が、わずかに異なる時間に生じるように調整し得る、もしくはオーバーレイ動作の処理が所望の方法で実行される限り、処理に関連するさまざまな間隔で処理動作の発生を可能にするシステムに分散し得ることを理解されたい。
前述の本開示は、理解を明確にするために幾分詳細に説明されてきたが、添付の特許請求の範囲内である種の変更及び修正を実施し得ることは明らかであろう。したがって、本実施形態は例示的であって限定的ではないと見なされるべきであり、本開示の実施形態は本明細書に記載された詳細に限定されるものではなく、添付の特許請求の範囲及び均等物の範囲内で修正し得る。