(57)【要約】インタラクティブアプリケーションの仮想シーンへのアクセスを提供するための方法及びシステムでは、インタラクティブアプリケーションの選択を受信する。選択に応答して、アプリケーションの仮想シーンが提供される。仮想シーン内で検出されたユーザのインタラクティビティは、仮想シーン内の視覚的オプションとの予測されたインタラクションを識別するために処理される。処理は、視覚的オプションのうちの１つに対する選択が近いことを示すアクションの閾値に到達するまで継続する。閾値の達成に基づき、近く選択されると識別された視覚的オプションに関連付けられた第２の仮想シーンがプリロードされる。第２の仮想シーンは、第２の仮想シーンに関連付けられた視覚的オプションが選択されたとき、ユーザのインタラクションのために第２の仮想シーンの完全なレンダリングを可能にするように、プリロードされたコンテンツを使用して実行される。【選択図】図７Ａ
2021513702.tif 000002
【特許請求の範囲】
【請求項１】
ユーザのインタラクション用のインタラクティブアプリケーションの選択を受信し、前記選択により、前記インタラクティブアプリケーションの仮想シーンのコンテンツがユーザによって着用されたヘッドマウントディスプレイ（ＨＭＤ）上にレンダリングするために提供され、前記仮想シーンの前記コンテンツは、前記インタラクティブアプリケーションの追加の仮想シーンにアクセスするための視覚的オプションを含むものであり、
前記仮想シーン内の前記ユーザのインタラクティビティを検出し、前記検出されたインタラクティビティは視覚的オプションとの予測されたインタラクションを識別するために処理され、前記処理は、前記ユーザが前記仮想シーン内でインタラクションを行っている間、前記視覚的オプションのうちの１つに対する選択が近いことを示すアクションの閾値への到達まで継続するものであり、
前記閾値への到達が達成されたことに基づいて選択が近いと識別された前記視覚的オプションに関連付けられた第２の仮想シーンをプリロードし、
前記第２の仮想シーンに関連付けられた前記視覚的オプションが前記ユーザによって選択されたときに前記ユーザによるインタラクティビティのために前記第２の仮想シーンの完全なレンダリングが可能となるように前記プリロードされたコンテンツを使用して前記第２の仮想シーンを実行し、
前記仮想シーン及び前記第２の仮想シーンが前記インタラクティブアプリケーションの一部であり、かつ、各動作がプロセッサによって実行される、方法。
【請求項２】
前記第２の仮想シーンのコンテンツの前記プリロードは、前記閾値の到達を検出してかつ前記ユーザが前記視覚的オプションを選択する前に実行される、請求項１に記載の方法。
【請求項３】
前記閾値への到達では、
前記仮想シーン内の前記ユーザの前記インタラクティビティの間に取り込まれた複数のインタラクティブインジケータの各インタラクティブインジケータを識別し、
前記複数のインタラクティブインジケータが前記第２の仮想シーンに関連付けられた前記視覚的オプションに対する選択が近いことを表す前記閾値に近づいたときを判定するために、前記複数のインタラクティブインジケータの各インタラクティブインジケータをアクションの重みについて継続的に評価する、請求項１に記載の方法。
【請求項４】
前記プリロードでは、更に、
前記ユーザが前記仮想シーンとのインタラクションを継続して行っている間、前記第２の仮想シーンの前記プリロード中に複数のインタラクティブインジケータの各インタラクティブインジケータを継続して評価し、前記継続された評価が、前記複数のインタラクティブインジケータを通じて提供された前記ユーザの前記予測されたインタラクションが前記第２の仮想シーンに関連付けられた前記視覚的オプションに継続的に向けられていることを検証するために使用される、請求項１に記載の方法。
【請求項５】
前記複数のインタラクティブインジケータの前記継続された評価が前記視覚的オプションに対する前記選択が近いことについて前記選択の切り替えを検出したとき、前記第２の仮想シーンの前記コンテンツの前記プリロードを中断する、請求項４に記載の方法。
【請求項６】
更に、前記第２の仮想シーンの前記プリロードされたコンテンツを所定の期間維持し、
前記所定の期間の経過時に前記第２の仮想シーンの前記プリロードされたコンテンツをアンロードし、前記第２の仮想シーンの前記プリロードされたコンテンツの前記アンロードが、前記所定の期間中に前記第２の仮想シーンに関連付けられた前記視覚的オプションにユーザのインタラクティビティが向けられていないときに実行される、請求項５に記載の方法。
【請求項７】
前記複数のインタラクティブインジケータの前記継続された評価が前記視覚的オプションに対する前記選択が近いことの前記選択の切り替えを検出したとき、プリロードされた前記第２の仮想シーンの前記コンテンツをアンロードする、請求項４に記載の方法。
【請求項８】
前記仮想シーン内の前記ユーザのインタラクティビティを継続して監視し、前記監視されたインタラクティビティが、前記仮想シーン内の第２の視覚的オプションに対する選択を示すアクションの前記閾値への到達まで処理され、前記第２の視覚的オプションが第３の仮想シーンに関連付けられている、請求項３に記載の方法。
【請求項９】
前記プリロードでは、前記第３の仮想シーンのコンテンツをプリロードする、請求項８に記載の方法。
【請求項１０】
前記視覚的オプションが、インタラクティブボタン、インタラクティブ仮想オブジェクトの画像、インタラクティブテキストコンテンツ及びインタラクティブフローティングメニューのうちの１つ以上を含む、請求項１に記載の方法。
【請求項１１】
前記インタラクティブインジケータが、視線、前記仮想シーン内の前記ユーザの移動、ウェアラブルデバイスで装飾された身体部分の動き、及び制御トリガのいずれか１つまたは組み合わせを含む、請求項１に記載の方法。
【請求項１２】
前記仮想シーンに含まれる前記視覚的オプションが前記仮想シーンに固有である、請求項１に記載の方法。
【請求項１３】
ヘッドマウントディスプレイのユーザからインタラクティブアプリケーションの選択を受信し、前記選択により、前記インタラクティブアプリケーションの仮想シーンのコンテンツが前記ユーザによって着用された前記ヘッドマウントディスプレイ上にレンダリングするために提供され、前記仮想シーンの前記コンテンツは、前記インタラクティブアプリケーションの追加の仮想シーンにアクセスするための視覚的オプションを含むものであり、
前記インタラクティブアプリケーションのために維持された前記ユーザの使用履歴を分析し、前記使用履歴の前記分析では、前記仮想シーン内の前記ユーザの前記インタラクティビティの間の前記仮想シーン内で利用可能な複数の視覚的オプションからの第１の視覚的オプションに対する前記ユーザによる選択が近いことの予測のために使用され、
前記分析に基づき、前記ユーザによって選択が近いと予測された前記第１の視覚的オプションに関連付けられた前記インタラクティブアプリケーションの第２の仮想シーンをプリロードし、
前記仮想シーン内の前記ユーザのインタラクティビティを監視し、前記ユーザの前記インタラクティビティは、前記ユーザが前記仮想シーン内でインタラクションを行っている間に前記視覚的オプションのうちの特定の１つに対する選択が近いことを示すアクションの閾値に達するまで継続的に処理され、
選択が近いと識別された前記視覚的オプションのうちの前記特定の１つと、プリロードされている前記第２の仮想シーンに関連付けられた前記第１の視覚的オプションとが一致するか否かを判定し、
選択が近いと識別された前記視覚的オプションのうちの前記特定の１つが前記第１の視覚的オプションと一致した場合、前記第１の視覚的オプションが前記ユーザによって選択されたときに前記ユーザによるインタラクティビティのために前記第２の仮想シーンの完全なレンダリングが可能になるように前記プリロードされたコンテンツを使用して前記第２の仮想シーンを実行する、方法。
【請求項１４】
前記閾値への到達では、
前記仮想シーン内の前記ユーザの前記インタラクティビティの間に取り込まれた複数のインタラクティブインジケータの各インタラクティブインジケータを識別し、
前記複数のインタラクティブインジケータが前記視覚的オプションのうちの前記特定の１つに対する前記選択が近いことを表す前記閾値に近づいたときを判定するために、前記複数のインタラクティブインジケータの各インタラクティブインジケータをアクションの重みについて継続的に評価する、請求項１３に記載の方法。
【請求項１５】
前記第１の視覚的オプションに対する選択が近いことの予測では、前記使用履歴内に取り込まれた前記仮想シーン内のインタラクティビティの間に前記視覚的オプションを選択する際に前記ユーザが従う選択パターンを決定して前記第１の視覚的オプションを前記ユーザの次の近い選択として識別し、前記第１の視覚的オプションは、前記インタラクティブアプリケーションの前のセッション中に前記ユーザによって未だ選択されていない視覚的オプションである、請求項１３に記載の方法。
【請求項１６】
前記第１の視覚的オプションに対する選択が近いことの予測では、
前記使用履歴内に取り込まれた前記仮想シーン内のインタラクティビティの間に前記視覚的オプションを選択する際に前記ユーザが従う選択パターンを決定して前記第１の視覚的オプションを前記ユーザの次の近い選択として識別し、前記第１の視覚的オプションは、前記インタラクティブアプリケーションの前記仮想シーンに前記ユーザがアクセスした回数のうちの大部分で前記ユーザによって選択された視覚的オプションである、請求項１３に記載の方法。
【請求項１７】
選択が近いと識別された前記視覚的オプションのうちの前記特定の１つが前記第１の視覚的オプションと一致しない場合、
前記視覚的オプションのうちの前記特定の１つに関連付けられた第３の仮想シーンを識別し、
前記仮想シーン内のインタラクションの間に前記ユーザによって選択が近いと予測された前記視覚的オプションのうちの前記特定の１つに関連付けられた前記インタラクティブアプリケーションの前記第３の仮想シーンのプリロードを行う、請求項１３に記載の方法。
【請求項１８】
前記第３の仮想シーンのプリロードでは、前記第２の視覚的オプションに関連付けられた前記第３の仮想シーンをプリロードする前に前記第２の仮想シーンをアンロードする、請求項１７に記載の方法。
【請求項１９】
前記第３の仮想シーンのプリロードでは、前記第２の仮想シーンをアンロードする前に所定の期間、前記第２の仮想シーンを維持し、前記第２の仮想シーンの前記アンロードは、前記仮想シーン内の前記ユーザのインタラクティビティの間に前記第１の視覚的オプションに向けた前記ユーザによる前記選択が近いことが検出されなかったときに実行される、請求項１７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、サーバ上で実行されるインタラクティブアプリケーションに関連し、特に、インタラクティブアプリケーションの様々なシーンまたは部分に対するより高速なアクセスのショートカットを提供することを対象とする。
【背景技術】
【０００２】
関連技術の説明
コンピュータ技術の発展により、クラウドベースの処理、ビデオゲーム技術などの発展がもたらされた。クラウドベースの処理（すなわち、高性能グラフィックスプロセッサ、メモリ、ならびに他の処理及び通信リソースを使用した）の発展により、望ましいだけではなく最適でもあるインタラクティブ体験がユーザに提示される。例えば、クラウドベースのシステムは、ビデオゲームなどのインタラクティブアプリケーションの実行に対して制限のない処理能力及びシステムリソースを提供する。ビデオゲームの場合、クラウドベースのシステムにより、圧倒的な範囲の従来型及び新型のビデオゲームが、ユーザが自分のデバイスをアップグレードする必要なくアクセス及びプレイできるように利用可能となる。これらのクラウドベースのシステムでは、リモートクライアントにコンテンツをストリーミングすることが可能であり、大部分の処理は、分散され得るサーバ上で行われる。従って、ゲーミングなどのクラウドベースのインタラクティブアプリケーションがますます人気になっている。その理由は、ユーザにとっては複雑なハードウェア制約を伴わずにより多くのビデオゲームタイトルにアクセスするのがより容易であり、ゲームサプライヤにとっては集中化された場所からゲームコードを管理するのがより容易であるということが見いだされからである。
【０００３】
より個人的なレベルでは、クラウドベース型のシステムのリモートサーバ上で、またはゲームコンソールもしくはローカルコンピュータなどのローカルデバイス上で利用可能なコンテンツをユーザが選択し、そのコンテンツとのインタラクションを行うのを支援するためのデバイスが開発されている。例えば、ヘッドマウントディスプレイ（ＨＭＤ）が開発され、人気が高まっている。ＨＭＤは、ＨＭＤのディスプレイ上に提示されたコンテンツとのインタラクションをユーザに行わせることにより、ユーザが、没入型ゲーミング体験などの没入型インタラクティブ体験をすることが可能になるためである。同様に、ユーザがインタラクティブコンテンツへの入力を提供するのを支援するために、コントローラなどの各種の入力デバイスが開発されている。クラウドシステムにより、処理の大部分がサーバレベルで行われ、より新しいデバイスを個々のシステムレベルではなくクラウドレベルで簡単に統合することができるため、より新しいデバイスを導入することがより簡単になる。
【０００４】
インタラクティブアプリケーションを見るか、またはインタラクションを行うためにユーザがインタラクティブアプリケーションを選択すると、インタラクティブアプリケーションの第１のシーンからコンテンツがユーザに提供される。ユーザがコンテンツとのインタラクションを行って次のシーンに進行すると、ユーザは、第２のシーンが完全にロードされるまで待機する必要がある。一部のアプリケーションにはグラフィックを多用するコンテンツが含まれることから、多くの場合、その待機することが気になってしまい、望ましい体験の低下につながる。
【０００５】
本発明の実施形態はこの背景においてなされたものである。
【発明の概要】
【０００６】
本発明の実施形態は、システムのサーバ上で実行されるインタラクティブアプリケーションの様々なシーンへのより高速なアクセスを可能にするショートカットを提供するために使用される方法及びシステムを開示する。仮想シーン内で利用可能な視覚的オプションは、追加の仮想シーンにアクセスするために使用される。追加の仮想シーンのそれぞれへのより高速なアクセスは、仮想シーン内の様々な視覚的オプションとのユーザの予測されたインタラクションに基づき、対応する追加の仮想シーンのコンテンツをプリロードすることによって提供される。様々な視覚的オプションに関連付けられた追加の仮想シーンのプリロードされたコンテンツは、対応する視覚的オプションがユーザによって選択されると直ちに、ユーザのインタラクティビティのために対応する仮想シーンの完全なレンダリングを可能にするために実行の準備がなされる。プリロードにより、ユーザを必要以上に待機させることなく様々な仮想シーンのコンテンツにより高速にアクセスすることが可能になる。システムは、サーバと通信するヘッドマウントディスプレイ（ＨＭＤ）を含む。このサーバは、ネットワークを介してアクセスされるクラウドベースのシステムの一部とすることができる。ＨＭＤは、インタラクティブアプリケーションの仮想シーンをレンダリングするように構成される。システムは、クラウドシステムに利用可能なリソースを使用して、ユーザのインタラクション用の複数のオンラインの、インタラクティブアプリケーション（例えば、シングルユーザアプリケーションでもあり、マルチユーザユーザアプリケーションでもある、ビデオゲームアプリケーション及び他のインタラクティブアプリケーション）をホスティングするように構成される。
【０００７】
システムは、インタラクティブアプリケーションの選択を検出し、これに応答して、最初の仮想シーンのコンテンツをレンダリングのためにユーザのＨＭＤに提供する。仮想シーンは視覚的オプションを含み、各視覚的オプションは、インタラクティブアプリケーションの個別の仮想シーンにアクセスするように構成される。システムは、仮想シーン内のユーザのインタラクティビティを追跡し、そのインタラクティビティを処理して、仮想シーンに含まれる様々な視覚的オプションとの予測されたインタラクションを識別する。この処理は、特定の視覚的オプションに対する選択を示すアクションの閾値に到達するまでユーザのインタラクティビティを評価する。到達した閾値に基づき、システムは、特定の視覚的オプションに関連付けられた対応する仮想シーンのコンテンツを識別し、プリロードする。ユーザが特定の視覚的オプションを選択する前にプリロードが行われるため、ユーザが特定の視覚的オプションを選択したとき、プリロードされたコンテンツが、ユーザによるインタラクティビティのために対応する仮想シーンの完全なレンダリングを可能にするために実行される。
【０００８】
一実施形態では、方法が提供される。その方法では、ヘッドマウントディスプレイを着用しているユーザからユーザのインタラクションのためにインタラクティブアプリケーションの選択を受信する。この選択により、インタラクティブアプリケーションの仮想シーンのコンテンツが、ヘッドマウントディスプレイ上にレンダリングするために提供される。仮想シーンのコンテンツは、インタラクティブアプリケーションの追加の仮想シーンにアクセスするための視覚的オプションを含む。仮想シーン内のユーザのインタラクティビティが検出される。仮想シーン内で検出されたインタラクティビティは、仮想シーン内の視覚的オプションとの予測されたインタラクションを識別するために処理される。処理は、ユーザが仮想シーン内でインタラクションを行っている間、仮想シーン内で利用可能な視覚的オプションのうちの１つに対するイミネントセレクション（imminent selection）、つまり次にあるいはすぐに選択される蓋然性が高い（選択蓋然性が高い）こと、または、近く（あるいは間近に）選択されること、を示すアクションの閾値に到達するまで継続する。閾値の達成に基づき、選択が近いと識別された視覚的オプションに関連付けられた第２の仮想シーンがプリロードされる。第２の仮想シーンは、第２の仮想シーンに関連付けられた視覚的オプションがユーザによって選択されたとき、ユーザのインタラクションのために第２の仮想シーンの完全なレンダリングを可能にするようにプリロードされたコンテンツを使用して実行される。仮想シーン及び第２の仮想シーンは、インタラクティブアプリケーションの一部である。
【０００９】
別の実施形態では、方法が提供される。方法は、ヘッドマウントディスプレイ（ＨＭＤ）のユーザからインタラクティブアプリケーションの選択を受信する。この選択により、インタラクティブアプリケーションの仮想シーンのコンテンツが、ユーザによって着用されたＨＭＤ上にレンダリングするために提供される。仮想シーンのコンテンツは、インタラクティブアプリケーションの追加の仮想シーンにアクセスするための視覚的オプションを含む。インタラクティブアプリケーションのために維持されたユーザの使用履歴が分析される。分析は、仮想シーン内のユーザのインタラクティビティの間の仮想シーン内で利用可能な複数の視覚的オプションからの第１の視覚的オプションに対する選択されることが近いことを予測するために使用される。ユーザによって選択が近いと予測された第１の視覚的オプションに関連付けられた第２の仮想シーンがプリロードされる。仮想シーン内のユーザのインタラクティビティが監視される。監視されたインタラクティビティは、ユーザが仮想シーン内でインタラクションを行っている間、視覚的オプションのうちの特定の１つに対する選択が近いことを示すアクションの閾値に到達するまで継続的に処理される。方法は、選択が近いと識別された視覚的オプションのうちの特定の１つが、プリロードされている第２の仮想シーンに関連付けられた視覚的オプションと一致するかどうかを判定する動作によって継続する。視覚的オプションのうちの特定の１つが第２の仮想シーンに関連付けられた第１の視覚的オプションと一致した場合、仮想シーン内のインタラクティビティの間に第１の視覚的オプションがユーザによって選択されたとき、ユーザによるインタラクティビティのために第２の仮想シーンの完全なレンダリングを可能にするためにプリロードされた第２の仮想シーンのコンテンツを実行する。
【００１０】
本発明の他の態様及び利点は、添付図面と併せて、本発明の原理を例として示す以下の詳細な説明から当業者にとって明らかとなるであろう。
【００１１】
本発明は、そのさらなる利点と共に、添付の図面と併せて以下の説明を参照することによって最も良く理解され得る。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態に従った、仮想シーン内の各種の視覚的オプションにてユーザによって提供された合図を評価して後続の仮想シーンをプリロードするために使用される例示的なシステムの簡略ブロック図を示す。
【図２】本発明の実施形態に従った、ユーザによって提供された視覚的合図に応答して、インタラクティブアプリケーションの特定の仮想シーンの識別、選択、ロード及び実行を行うためのアプリケーションプリローダモジュールを採用した例示的なシステムアーキテクチャを示す。
【図３】本発明の一実施形態における、ユーザインタフェース上にレンダリングされた仮想ホームシーン上に提供された各種のオプションの単純なブロック図を示す。
【図３Ａ】本発明のいくつかの実施形態における、インタラクティブアプリケーション内のユーザのインタラクションの間にアクセスすることができる様々な仮想シーンの例を示す。
【図３Ｂ】本発明のいくつかの実施形態における、インタラクティブアプリケーション内のユーザのインタラクションの間にアクセスすることができる様々な仮想シーンの例を示す。
【図３Ｃ】本発明のいくつかの実施形態における、インタラクティブアプリケーション内のユーザのインタラクションの間にアクセスすることができる様々な仮想シーンの例を示す。
【図３Ｄ】本発明のいくつかの実施形態における、インタラクティブアプリケーション内のユーザのインタラクションの間にアクセスすることができる様々な仮想シーンの例を示す。
【図４】本発明の一実施形態における、図３Ａの仮想シーン内のユーザのインタラクティビティを処理することによって計算されたインタラクション予測の例を示す。
【図５Ａ】本発明のいくつかの実施形態における、図３Ａの最初の仮想シーン内に提供された各種の視覚的オプションにてユーザから検出された合図に基づき、時間の経過に伴って動的に調整される確率グラフの例を示す。
【図５Ｂ】本発明のいくつかの実施形態における、図３Ａの最初の仮想シーン内に提供された各種の視覚的オプションにてユーザから検出された合図に基づき、時間の経過に伴って動的に調整される確率グラフの例を示す。
【図５Ｃ】本発明のいくつかの実施形態における、図３Ａの最初の仮想シーン内に提供された各種の視覚的オプションにてユーザから検出された合図に基づき、時間の経過に伴って動的に調整される確率グラフの例を示す。
【図５Ｄ】本発明のいくつかの実施形態における、図３Ａの最初の仮想シーン内に提供された各種の視覚的オプションにてユーザから検出された合図に基づき、時間の経過に伴って動的に調整される確率グラフの例を示す。
【図５Ｅ】本発明のいくつかの実施形態における、インタラクティブアプリケーションとのインタラクションの間にユーザが移動した後続の仮想シーン（例えば、シーンＢ）内に提供された各種の視覚的オプションにてユーザから検出された合図に基づき、時間の経過に伴って調整される確率グラフの例を示す。
【図５Ｆ】本発明のいくつかの実施形態における、インタラクティブアプリケーションとのインタラクションの間にユーザが移動した後続の仮想シーン（例えば、シーンＢ）内に提供された各種の視覚的オプションにてユーザから検出された合図に基づき、時間の経過に伴って調整される確率グラフの例を示す。
【図６Ａ】本発明のいくつかの実施形態における、インタラクティブアプリケーションの各種のシーンのマッピングを示す。
【図６Ｂ】本発明のいくつかの実施形態における、インタラクティブアプリケーションの各種のシーンのマッピングを示す。
【図７Ａ】本発明の異なる実施形態に従った、インタラクティブアプリケーションの仮想シーンをプリロードするために使用される方法の処理動作を示す。
【図７Ｂ】本発明の異なる実施形態に従った、インタラクティブアプリケーションの仮想シーンをプリロードするために使用される方法の処理動作を示す。
【図８】本発明の他の実施形態に従った、各種の仮想シーンからコンテンツを受信するために使用されるヘッドマウントディスプレイの構成要素を示す。
【図９】本発明の各種の実施形態に従った、ゲームシステムなどの例示的なインタラクティブアプリケーションシステムの簡略ブロック図を示す。
【図１０】本発明の一実施形態に従った、ネットワークを介して地理的に分散及び接続されたユーザに情報のコンテンツ及びサービスを供給するための例示的な情報サービスプロバイダアーキテクチャを示す。
【発明を実施するための形態】
【００１３】
以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細が記載されている。しかしながら、これらの具体的な詳細の一部または全てを用いずに本発明が実施され得ることが当業者にとって明らかであろう。他の例では、本発明が不明瞭なものとならないように、周知のプロセスステップについては詳細に説明していない。
【００１４】
本発明の各種の実施形態によれば、ヘッドマウントディスプレイ（ＨＭＤ）を着用しているユーザは、例えば、ユーザアカウントを通じてクラウドシステム上のローカルサーバまたはリモートサーバにアクセスし、ビデオゲームなどのインタラクティブアプリケーションを選択する。要求に応答して、サーバは、インタラクティブアプリケーションの仮想シーンを識別し、ＨＭＤの表示画面上にレンダリングするために仮想シーンのコンテンツを提供する。仮想シーンは、インタラクティブアプリケーションの第１の仮想シーン、またはインタラクティブアプリケーションの前のセッション中にユーザがいた最後の仮想シーンであってもよく、サーバは、ユーザについて格納された以前のセッションの現在の状態に基づいて仮想シーンを識別してもよい。要求をサービスすることの一部として、サーバは、仮想シーンを識別するために、要求に含まれるユーザの識別子を使用してユーザの前のセッション（存在する場合）からインタラクティブアプリケーションの現在の状態を読み出す。インタラクティブアプリケーションの仮想シーンからのコンテンツは、インタラクションのためにユーザに提供される。仮想シーンは、インタラクティブアプリケーションの他の仮想シーンにアクセスするための１つ以上の視覚的オプションを含む。仮想シーン内でユーザによって提供されたインタラクティビティは、仮想シーンに含まれる各種の視覚的オプションとの予測されたインタラクションを識別して仮想シーン内の仮想オプションのうちの特定の１つに対して選択が近いと識別するために処理される。ユーザのインタラクティビティによって識別された仮想オプションのうちの特定の１つに関連付けられた第２の仮想シーンが識別され、プリロードされる。第２の仮想シーンのプリロードが先に行われるため、第２の仮想シーンに関連付けられている視覚的オプションのうちの特定の１つをユーザが実際に選択したときには、第２の仮想シーンのプリロードされたコンテンツが実行され、ユーザは、待機することなく第２の仮想シーンにアクセスし、この仮想シーンとのインタラクションを開始することが可能になる。
【００１５】
インタラクティビティの処理により、システムは、仮想シーンのコンテンツとのインタラクションの間に各種のアクションを通じて表現された特定の視覚的オプションに向けられたユーザの現在の関心を決定することができる。現在の関心は、仮想シーンのコンテンツとのユーザのインタラクションの間に取り込まれた複数のインタラクティブインジケータのそれぞれを評価してユーザによる選択が近い対象として特定の視覚的オプションを識別することによって決定される。システムは、各種のインタラクティブインジケータ（合図の形で提供される）を使用して視覚的オプションに対する選択を予測し、そのような予測に基づいてユーザのインタラクションのためにインタラクティブアプリケーションの後続の仮想シーンを用意する。
【００１６】
視覚的オプションに対する予測された選択に関連付けられた仮想シーンのコンテンツをプリロードすると、システムは、ユーザのインタラクティビティを継続して処理して、ユーザが特定の視覚的オプションへの関心を継続して表現しているか、それとも異なる視覚的オプションに切り替えたかを判定する。システムがその視覚的オプションから異なる視覚的オプションへの選択が近い対象が移行したことを検出すると、システムは、その変化を動的に判定し、異なる視覚的オプションに対応する異なる仮想シーンをプリロードする。いくつかの実施形態では、異なる仮想シーンをプリロードすることの一部として、システムは、対応する視覚的オプションにおけるユーザの最初の関心に応答して既にプリロードされた第２の仮想シーンをアンロードしてもよい。
【００１７】
いくつかの実施形態では、ユーザが各種の仮想シーンを通じて進行するにつれて、ロード及び実行された最初の仮想シーンのうちの特定のいくつかが、メモリ使用量を削減するためにアンロードされてもよい。アンロードされた仮想シーンのうちの特定のいくつかは、後続の仮想シーン内で利用可能な視覚的オプションに基づいていてもよい。
【００１８】
ＨＭＤを介して見ることができる仮想空間は広大である。その結果、ナビゲートするには多くのコンテンツをユーザのためにロードする必要がある。さらに、ＨＭＤ内に提示されたコンテンツは、三次元（３Ｄ）空間内に提供されてビュー錐台を提供する。いくつかの実施形態では、ビュー錐台（カメラなどの、キャプチャリングの視野とも呼ばれる）は、表示画面上に投影される３Ｄモデル化された世界の空間領域として定義される。これは通常、視界のピラミッドの錐台（すなわち、平行面によりピラミッド頂部が切断されている）を取ることで取得される。三次元フォーマットの性質上、ユーザが完全に没入型の体験をするためには、多くのコンテンツをロードする必要がある。従って、あるコンテンツが現在ＨＭＤにてレンダリングされていない場合でも、ユーザが３Ｄ空間内で移動するときにユーザにとって利用可能となるように、そのコンテンツをキャッシュ及びロードし、新しいフレームを生成するように処理する準備をする必要がある。これは、二次元（２Ｄ）環境には当てはまらない。２Ｄ環境では、ユーザが見る必要のある全てのコンテンツを全てのフレームが有する。例えば、２Ｄ環境でキャラクタを移動させた場合、単一のフレームを使用してそのような情報を取り込み、ユーザに提示することができる。しかしながら、３Ｄ環境では、そのような細部は、複数のフレームにおいて取り込まれ、ユーザにとって利用可能となるようにする必要がある。
【００１９】
従って、各種の実施形態によれば、システムリソースの最適な使用量を確保しつつ完全に没入型の体験をユーザに提供するために、システムは、視線方向、移動方向、仮想シーン内の動き、ウェアラブルデバイスを着用しているユーザの身体の一部の伸長、コントローラを使用したトリガなどの、ユーザの各種の合図を収集し、これらの合図を処理して、視覚的オプションの選択、仮想オブジェクトに向かう移動方向などを含む、仮想シーン内のユーザの次の移動または選択を予測する。視覚的オプションの選択の予測に基づき、視覚的オプションに関連付けられた異なる仮想シーンのコンテンツが、異なる仮想シーンにアクセスするための視覚的オプションに対するユーザの選択に先立ってプリロードされ、メモリ内にキャッシュされることにより、コンテンツを容易にレンダリングし、ユーザのインタラクションに利用可能とすることができる。
【００２０】
任意の仮想シーン用のコンテンツは、アートワーク、３Ｄグラフィックス、３Ｄ動的キャラクタ、人工知能（ＡＩ）キャラクタなどの、グラフィックを多用するコンテンツを含む。いくつかの実施形態では、コンテンツに関連したデータは、様々なキャラクタまたはオブジェクトの制御された移動のバリエーションを含む、コンテンツのバリエーションを生成して、様々なビューのためにコンテンツのバリエーションをレンダリングできるようにするランダムジェネレータの技術を使用するグラフィックスプロセッサへの入力として提供される。合図の評価に基づいて仮想シーンをプリロードすることにより、システムは、必要なコンテンツのみをユーザのインタラクションのために適時にプリロードし、アクセスされないかあるいは必要のないコンテンツをロードし過ぎないようにすることができる。各種の実施形態により、システムは、ユーザの待機時間を最小限にしつつネットワーク及びシステムリソースを上手に割り当て、ユーザにとって最適なインタラクティブ体験をもたらすことができる。
【００２１】
本明細書で説明される各種の実施形態の他の利点は、当業者にとって明らかになるであろう。本発明の全体的な理解に関して、特定の実施形態について各種の図面を参照して以下に説明する。
【００２２】
図１は、ゲームアプリケーションなどのインタラクティブアプリケーションのコンテンツを求める要求を検出するために使用されるシステムの簡略ブロック図を示す。各種の実施形態はゲームアプリケーションに関して詳細に説明されているが、実施形態はゲームアプリケーションに制限されず、バーチャルツアーなどの、他の種類のインタラクティブアプリケーションにも拡張できることが留意されるべきである。要求は、ユーザによって着用されたヘッドマウントディスプレイ（ＨＭＤ）などの、ユーザのクライアントデバイスから受信される。ＨＭＤ１０４は、アプリケーションサーバ１１２などのサーバに通信可能に接続されている。アプリケーションサーバ１１２は、ＨＭＤ１０４に対してローカルであってもよく、またはネットワーク１１０を介してアクセスすることができるリモートサーバとすることができる。例示的なネットワークは、ローカルエリアネットワーク、ワイドエリアネットワーク、ワイヤレスローカルエリアネットワーク、パーソナルエリアネットワーク、メトロポリタンエリアネットワークを含み、またはネットワークは、１つ以上のリモートデータセンター内に分散されたサーバ、ゲームコンソールなどを含むクラウドネットワークの一部とすることができ、インターネットなどのネットワーク１１０を経由してアクセスすることができる。サーバ１１２（すなわち、クラウドサーバ）は、データセンター内の複数のサーバのうちの１つでもよい。
【００２３】
ＨＭＤ１０４は、処理モジュール（すなわち、プロセッサ）、メモリ、及びコンピューティングデバイス（例えば、コンソール）またはネットワーク経由でアクセスされるサーバに接続するためのネットワークまたは通信接続を含み、サーバ側アプリケーションと通信するための適切なアプリケーションプログラミングインタフェース（ＡＰＩ）を含む。いくつかの実施形態では、ＨＭＤ１０４のプロセッサは、スタンドアロンで実行され得るか、または有線もしくは無線接続を通じてローカルサーバコンピューティングデバイス（例えば、コンピュータ１０６）に接続することによってサーバ側アプリケーションとのインタラクションを行い得るクライアント側アプリケーションを実行することができる。他の実施形態では、ＨＭＤ１０４は、ネットワーク接続を使用してネットワーク１１０に接続し、アプリケーションプログラミングインタフェース（ＡＰＩ）を使用して、リモートサーバ１１２（例えば、リモートクラウドサーバ）上にホスティングされたサーバ側アプリケーションと通信するか、またはこのサーバ側アプリケーションにアクセスしてもよい。従来の実施形態のように、ネットワーク接続は、有線または無線接続とすることができる。各種の実施形態は、図１のＨＭＤ１０４に制限されず、他のクライアントデバイス（例えば、シンクライアント、汎用コンピュータ、専用コンピュータ、ゲームコンソール、パーソナルコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、モバイルコンピューティングデバイス、ポータブルゲーミングデバイス、携帯電話、スマートフォン、セットトップボックス、ストリーミングメディアインタフェース／デバイス、スマートテレビもしくはネットワーク化されたディスプレイ、またはローカルもしくはリモートで利用可能なサーバに接続してインタラクティブアプリケーションにアクセスするために使用することができる任意の他のコンピューティングデバイス）も含むことができる。
【００２４】
使用されるネットワーク接続及び／または通信プロトコルにより、ＨＭＤ１０４は、サーバ（複数可）と通信して、マルチメディアコンテンツのビデオフレームのストリーム（複数可）を含むコンテンツをサーバ（複数可）から受信することが可能になる。サーバ（複数可）によってストリーミングされるビデオフレームには、サーバ側でエンコーダを使用して圧縮をかけてもよい。従って、ＨＭＤ１０４は、サーバ（複数可）（例えば、アプリケーションサーバ）によって送信されたアプリケーションコンテンツを表すビデオフレームのストリーム（複数可）を展開するためのデコーダを含んでもよく、ＨＭＤ１０４の表示画面上に画像をレンダリングしてもよい。レンダリングされた画像は、ゲームアプリケーションなどのインタラクティブアプリケーションの現在の状態を識別する。アプリケーションの現在の状態は、ＨＭＤがアプリケーションサーバ（複数可）からのオーディオ及び／またはビデオデータを受信し、復号し、レンダリングし、ユーザ入力をアプリケーションサーバ（複数可）に返信するように主として機能することにより、アプリケーションサーバ（複数可）上で実質的に維持及び実行される。
【００２５】
本出願において使用されるようなアプリケーションサーバは、ローカルサーバコンピューテイングデバイス（例えば、コンピュータ１０６）、コンソールサーバ、仮想コンピュータ、クラウドサーバ１１２、デジタルメディアサーバ、ゲーム開発者もしくはゲームスポンサーもしくはアプリケーション開発者もしくはアプリケーション提供者のストアフロントを提供するために使用されるサーバ、ウェブサーバ、端末サーバ、リモートサーバ、または使用中にユーザがアクセスし、インタラクションを行うことができるインタラクティブアプリケーションを実行するための処理リソースを提供しもしくは割り当てる、１つ以上のインタラクティブアプリケーション（例えば、ゲームアプリケーション、バーチャルツアーなど）をホスティングすることが可能である任意の他の種類もしくは形式のサーバコンピューティングデバイスであってもよい。アプリケーションサーバは、特定の種類の通信プロトコルに従ったＡＰＩコールを使用して、ビデオフレーム内のデータを圧縮し、圧縮されたビデオフレームをデータストリームにおいてＨＭＤに転送するためのエンコーダを含んでもよい。
【００２６】
アプリケーションサーバ（例えば、コンピュータ１０６、クラウドサーバ１１２など）は、ユーザから受信した要求に基づき、ユーザアカウントで利用可能である各種のインタラクティブアプリケーション（例えば、ゲーム、バーチャルツアーなど）を実行し、インタラクティブアプリケーションの現在の状態を識別し、ＨＭＤにてレンダリングするためにインタラクティブアプリケーションのうちの特定の１つから適切なコンテンツを提供する。コンテンツは、画像データ、オーディオデータ、触覚データなどを含むストリーミングビデオデータを含む。ＨＭＤを介して提供されたユーザ入力は、アプリケーションサーバにて受信及び処理されて、インタラクティブアプリケーションの結果に影響を与える。インタラクティブアプリケーションの結果は、インタラクティブアプリケーションの現在の状態を提供する。インタラクティブアプリケーションは、シングルユーザまたはマルチユーザアプリケーションであってもよく、サーバは、ユーザから受信した要求において識別され、仮想シーンのコンテンツを提供するインタラクティブアプリケーションをインスタンス化することにより、ユーザによるインタラクションを促進する。仮想シーンは、ユーザについて維持されるインタラクティブアプリケーションの現在の状態に対応してもよい。
【００２７】
いくつかの実施形態では、コンピュータ１０６内への統合、または外部への搭載のいずれかがなされたカメラ１０８が、ユーザがＨＭＤ１０４上に提供されたコンテンツとのインタラクションを行っている間にユーザの画像を取り込むために使用されてもよい。カメラ１０８は、画像を取り込むための信号を受信し、その後の処理に画像を提供するために、コンピュータ１０６及び／またはＨＭＤ１０４に通信可能に接続されてもよい。いくつかの実施形態では、インタラクティブアプリケーションの結果に影響を及ぼすために、取り込まれたユーザの画像が使用されてもよい。
【００２８】
本明細書で説明されるシステムアーキテクチャを使用して実行された動作は、ユーザにとって、特定のコンテンツに高速にアクセスすることを可能にするために１つ以上のサーバ及び／または実行プラットフォームに求める技術的動作を構成する。仮想シーンのコンテンツをＨＭＤにそれを送信する前に圧縮するために、任意の数の圧縮技術がサーバによって連携されてもよい。圧縮技術は、標準エンコーダを使用してもよい。これにより、ＨＭＤ上の標準デコーダは、次いで、ユーザがコンテンツとのインタラクションを行うことができるように、ＨＭＤ上の画像、ビデオ、及びオーディオデータにアクセスし、それらを復号及びレンダリングすることが可能になる。インタラクティブアプリケーションの実行の管理及びＨＭＤへのコンテンツの配信は、複数の指示サーバ、サービス品質テスタまたはエンジンなどを必要とし得る。これらの動作及びタスクは、ゲームをリモートで実行し、広い地形にわたって分散されたＨＭＤ１０４にデータを供給している間、ストリーミング及び低レイテンシのために設計された専用サーバコンピュータを利用してもよい。実施形態をＨＭＤ１０４に関して説明したが、実施形態は、他のウェアラブルデバイス、モバイルコンピューティングデバイス、パーソナルコンピューティングデバイスなどを含む他のクライアントコンピューティングデバイスに拡張されてもよい。
【００２９】
システムの全体的な理解に関して、本発明の特定の実施形態について他の図面を参照して以下に説明する。
【００３０】
図２は、コンテンツを求める要求に応答して、コンテンツを識別し、処理し、検証し、そのコンテンツをユーザに提供するために各種のアプリケーションモジュールを連携させる例示的なアプリケーションサーバ１１２を示す。アプリケーションサーバ１１２は、例えば、ユーザアカウントデータ処理モジュール１１３及びアプリケーションプリローダモジュール１１５を含む。ユーザアカウントデータ処理モジュール１１３は、ユーザからの要求を検証するために使用される。検証では、要求が有効なユーザからのものであることを保証するために、要求に含まれるユーザのユーザ識別子を識別し、かつ、サーバ１１２上のユーザアカウントデータベース１３１内に保持されたユーザアカウントと照合してユーザ識別子を検証する。ユーザの検証が成功すると、要求は、処理のためにアプリケーションプリローダモジュール１１５に転送される。アプリケーションプリローダモジュール１１５は、インタラクティブアプリケーションを求める要求を処理し、インタラクティブアプリケーションの適切な仮想シーンをロードし、キャッシュし、実行し、インタラクティブアプリケーションの関連コンテンツをレンダリングのためにクライアントデバイスに提供するように構成される。
【００３１】
いくつかの実施形態では、アプリケーションプリローダモジュール１１５は、インタラクティブアプリケーションの適切なコンテンツを提供する前に、要求のさらなる検証を実行してもよい。さらなる検証の一部として、インタラクティブアプリケーションのアプリケーション識別子を要求から抽出してもよく、抽出された識別子をアプリケーションデータストア１３３と照合して検証して、（ａ）要求がアプリケーションデータストア１３３において利用可能であるアプリケーションを求めるものかどうかの判定、及び（ｂ）ユーザがアプリケーションへのアクセスを許可されているかどうかの判定を行ってもよい。要求の検証が成功すると、アプリケーションプリローダモジュール（またはさもなければ「プリローダモジュール」と呼ばれる）１１５は、ユーザに提示するためのインタラクティブアプリケーションからの仮想シーンを識別することの要求を処理する。
【００３２】
ユーザが初めてインタラクティブアプリケーションを選択したとき、インタラクティブアプリケーションの一番初めの仮想シーンがユーザに提供される。一番初めの仮想シーンは、インタラクション用のアプリケーションを設定するためにオプションをユーザに提供する仮想「ホーム」シーンであってもよい。オプションは、ユーザのインタラクション用のアプリケーションを設定するために、カスタマイズオプション及び設定オプションを含んでもよい。アプリケーションを設定するための前述のオプションに加えて、インタラクティブアプリケーションからの１つ以上の仮想シーンもホームシーン内に提供されてもよい。１つ以上の仮想シーンを選択及び提供して、ユーザがアプリケーションの仮想シーンのうちの選択式の１つを「サンプリング」することができるようにしてもよい。インタラクティブアプリケーションへの後続のアクセス中、ホームシーン内で提供され得る１つ以上の仮想シーンは、最後の仮想シーン及び／または頻繁にアクセスされる仮想シーンであってもよい。
【００３３】
インタラクティブアプリケーションは、複数の仮想シーンを含んでもよく、各仮想シーンは、インタラクティブアプリケーションの追加の仮想シーンにアクセスするための複数の視覚的オプションを有する。各仮想シーン内で提供された視覚的オプションは、特定の仮想シーンに固有のものであり、ある場合には、ユーザに固有であってもよい。視覚的オプションにより、ユーザは、インタラクティブアプリケーション内の１つ以上の追加の仮想シーンにアクセスすることができる。
【００３４】
図３は、ユーザのインタラクション用のアプリケーションにユーザが最初にアクセスするときにユーザに提供され得る例示的な仮想「ホーム」シーン３００の簡略ブロック図を示す。ホームシーン３００は、ユーザのインタラクション用のアプリケーションをユーザが最初に設定するのを支援するための設定メニューオプション３０１、ユーザがコンテンツの明るさ、レンダリングの速度、コンテンツの明瞭度、仮想シーン内でインタラクションを行うために使用される仮想オブジェクト、インタラクティブアプリケーション内でユーザを表現するためのアバターなどの、インタラクティブアプリケーションのいくつかの態様をユーザがカスタマイズできるようにするためのユーザカスタマイズオプション３０２を含む。設定オプション（３０１、３０２）に加えて、インタラクティブセッションを中止または終了するために「中止」（または終了）オプション３１５が提供されてもよい。また、追加のオプション（複数可）３０３、３０４及び３０５が、それぞれ、仮想シーンＡ、Ｂ及びＣのうちの特定の１つにアクセスするために提供されてもよい。ホームシーン３００内に提供される仮想シーンのうちの特定の１つは、インタラクティブアプリケーションの連続的または非連続的な仮想シーンであってもよい。例えば、ユーザが初めてアプリケーションを選択している例では、図３に示したように、ホームシーン内に提供され得る仮想シーンは、アプリケーションの先頭からの仮想シーンの連続的なセットを含んでもよい。前のセッションにおいてユーザがアプリケーションとのインタラクションを行っていた例では、ホームシーン内に提供されたオプションは、非連続的な仮想シーンのためのものであってもよい。例えば、ホームシーン内に提供された仮想シーンのオプションは、ユーザによって、もしくはユーザの社会的な知り合いである他のユーザ、アプリケーション関連の知り合い、ユーザと同一の属性を有する他のユーザ、もしくは同様の人口動態を共有する他のユーザによって、または同一の共同体もしくは地理などから頻繁にアクセスされる仮想シーンを含んでもよい。ある場合には、先頭からの仮想シーンの連続的ないくつかにアクセスするためのオプションを初めに含めることによってユーザについてホームシーンを動的に調整し、１つ以上のインタラクティブセッションの後、ユーザの、または他のユーザのお気に入りの仮想シーンまたはインタラクションが度々行われた仮想シーンのうちの一部を含むようにホームシーンを更新してもよい。ユーザの選択に関連する情報は、使用履歴データベース１３５内に維持され、ユーザの後続の各インタラクティブセッション中にアプリケーションのホームシーンに入れるために使用されてもよい。
【００３５】
再度図２を参照すると、ホームシーン内の各種のオプションにおけるユーザの選択は、アプリケーションの設定及びカスタマイズのために、かつユーザのインタラクションの間に使用される。最初のアプリケーション設定後、プリローダモジュール１１５の仮想シーンセレクタサブモジュール１１７は、アプリケーションの仮想シーンを選択し、ユーザのインタラクションのために仮想シーンの関連コンテンツを提示する。ユーザが以前にアプリケーションとのインタラクションを行っていた場合、仮想シーンセレクタ１１７は、アプリケーションの現在の状態に基づいて仮想シーンを識別してもよい。例えば、仮想シーンセレクタ１１７は、使用履歴データベース１３５とのインタラクションを行って、ユーザの以前のインタラクティブセッションからアプリケーションの現在の状態を取得し、ユーザに提示するための適切な仮想シーンを識別してもよい。仮想シーンにおけるユーザのインタラクションは、アプリケーションの進行を促すために使用される。
【００３６】
インタラクティブアプリケーションの仮想シーン内のユーザのインタラクションは、インタラクション予測器モジュール１１９によって実質的にリアルタイムで受信され、処理される。インタラクションは、仮想シーン内に提供された１つ以上の視覚的オプションに向けたユーザの予測されたインタラクションを識別するために処理され、１つ以上の視覚的オプションは、アプリケーションの追加の仮想シーンにアクセスするために使用される。視覚的オプションは、ボタン、ドアの仮想画像、エレベータの仮想画像、一続きの階段の仮想画像などの、仮想オブジェクトのインタラクティブ画像、もしくはシーンのインタラクティブ画像、または様々な仮想シーンにアクセスするためのオプションのフローティングメニューの形態であってもよい。
【００３７】
図３Ａ〜３Ｄは、他の仮想シーンにアクセスするためのインタラクティブアプリケーションの仮想シーン内で利用可能な視覚的オプションのいくつかの例を示す。例えば、図３Ａは、インタラクティブアプリケーションの仮想シーンであるシーンＡ  ３０３を示す。シーンＡは、ホームシーンの後のインタラクティブアプリケーションの第１の仮想シーンであってもよく、ユーザがホームシーン内のオプションを使用して設定動作を完了した後に提供されてもよく、または仮想シーンは、ユーザの最後のセッションから取得されたインタラクティブアプリケーションの状態に基づいて提供されてもよく、もしくはホームシーン内でユーザによって選択されたオプションに応答して提供されてもよい。シーンＡは、アプリケーションの様々な仮想シーンにアクセスするための複数の視覚的オプションを含む。視覚的オプションは、仮想シーン内に分散させてもよく、視錐台（すなわち、視野）に基づいて見えてもよい。例えば、仮想シーン内の視覚的オプションは、仮想シーンＢにアクセスするための仮想ドア３０４の画像、仮想シーンＣにアクセスするためのエレベータドア３０５の画像、仮想シーンＧにアクセスするためのシーン３１０の画像、及び一組の視覚的オプションであって、これらに関連付けられた仮想シーンにアクセスするためにフローティングメニュー３１１内に提供された一組の視覚的オプションを含んでもよい。例えば、フローティングメニュー３１１は、ホームシーン（シーンＤ  ３０６）に戻るためのインタラクティブ視覚的オプション、お気に入りのシーン（シーンＥ  ３０７）、次のシーン（シーンＦｎ  ３０８）または以前のシーン（シーンＦｐ  ３０９）にアクセスするためのインタラクティブ視覚的オプションなどを含んでもよい。当然のことながら、図３Ａに示され、フローティングメニュー３１１内に示されたオプションは単なる例であり、インタラクティブアプリケーションの各種の仮想シーンにユーザがアクセスできるように、類似または異なる種類の、より少ないか、またはより多い視覚的オプションが提供されてもよい。
【００３８】
ＨＭＤ１０４のディスプレイ上にレンダリングされたアプリケーションのコンテンツにユーザがインタラクションを提供している間、インタラクションは、視覚的オプションとの予測インタラクションを判定するために処理される。各種の視覚的オプションにおける予測インタラクションは、予測されたインタラクションが閾値を超えたかどうか、及びインタラクションの閾値が、ユーザによる選択が近いことになる視覚的オプションのうちの特定の１つを示しているかどうかを判定するために一定期間にわたって累積される。一実施形態では、仮想シーン内でユーザによって提供された予測インタラクションは、視線方向、仮想シーン内でのユーザのアバターまたはユーザの表現の移動、動きの方向、ウェアラブルデバイス、コントローラのトリガなどを追跡することによって判定することができる仮想シーンへのユーザの手の伸長、または様々な視覚的オプションに向けたユーザの関心を示す任意の他の合図（すなわち、信号）を含んでもよい。ここで、これらのインタラクションは、視覚的オプションを実際には選択せずにユーザによって提供されたアクションである。例えば、アプリケーションの仮想シーン内のユーザのインタラクティビティの処理は、ユーザの視線が視覚的オプション３０４（すなわち、仮想シーンＢ（例えば、ファンゾーン）へのアクセスを提供するドアの仮想画像）に向けられていることを検出してもよい。処理の一部として、インタラクション予測器モジュール１１９は、全ての視覚的オプションに向けたユーザのインタラクティビティを累積し、累積されたインタラクティビティを使用して、仮想シーン内の視覚的オプションのうちの特定の１つに対してユーザによる近くなされる選択を予測し、対応する仮想シーンをユーザのインタラクションのためにプリロードしてもよい。視覚的オプションのうちの特定の１つに対するユーザによる選択が近いという予測の詳細について、図４を参照して詳細に論じる。
【００３９】
図３Ｂは、図３Ａに示した仮想シーンＡ  ３０３内で利用可能な視覚的オプションとの予測されたインタラクションの評価に基づいて選択が近いと識別された視覚的オプションのうちの特定の１つに関連付けられた仮想シーンの一例を示す。図３Ｂに示した例では、予測されたインタラクションの処理により、視覚的オプション３０４に向けられるユーザにより近くなされる選択が識別され、対応する仮想シーンがファンゾーン（すなわち、仮想シーンＢ）に対して識別された。この例では、仮想シーンＢは、シーンＡに対して連続的または非連続的な仮想シーンであってもよい。インタラクション予測器モジュール１１９は、ユーザが仮想シーン内でインタラクションを行っている間にユーザのインタラクティビティを継続的に処理して、仮想シーン内のユーザのインタラクティビティにおいて検出された様々なアクションを識別してもよい。処理に基づき、インタラクション予測器モジュール１１９は、ユーザが実際にユーザのインタラクションのために視覚的オプション３０４を選択した場合にシーンＢのコンテンツがユーザにとって利用可能となるようにプリロードし、キャッシュし、準備を整えるために仮想シーンＢを識別する。
【００４０】
同様に、エレベータ３０５の画像の形態の視覚的オプションが、仮想シーンＣにアクセスするためにシーンＡ内に提供されてもよい。エレベータオプションは、仮想シーンの状況に基づき、さらにはインタラクティブアプリケーションの仮想環境内のユーザの位置及び進行に基づき、仮想シーンＡ内に提供される。例えば、現在シーンＡ内にレンダリングされている仮想シーンが高層ビルの一部である場合、ユーザがアプリケーションの仮想コンテンツとのインタラクションの間に高層ビルのフロア（例えば、１階、ロビー）に入ったことを検出すると、エレベータオプション３０５が提供されてもよい。高層ビルの他の階へのアクセスは、高層ビルを含むアプリケーションのコンテンツとのユーザのインタラクションに基づき、エレベータオプション３０５を介して提供されてもよい。ユーザがインタラクティブアプリケーション内にいることが検出されたフロア階に応じて、エレベータオプション３０５は、高層ビルの他のフロアの仮想シーンへのアクセスを提供してもよい。例えば、ユーザが最上フロアにいることが検出されたとき、エレベータオプションは、高層ビルのより下のフロア階へのアクセスを提供する。同様に、ユーザが高層ビルの地下にいることが検出された場合、エレベータオプションは、高層ビルのより上の階のフロアへのアクセスを提供してもよい。他の実施形態では、エレベータオプション３０５の代わりに、高層ビルの高層階または低層階にアクセスするための階段オプション（図３Ａには図示せず）がユーザに提供されてもよい。
【００４１】
図３Ｃは、高層階フロアにアクセスするために図３ＡのシーンＡ内の視覚的オプション３０５（すなわち、エレベータの画像）を使用してユーザによってアクセスされる、ホテルのビルの高層階の例示的な仮想シーンであるシーンＣ’を示す。仮想シーンであるシーンＣ’は、廊下の両側にあるゲストルームにアクセスするためのドア付きの廊下を示す。オプションの一部（例えば、ゲストルームへのドア）は、図３Ｃに示した視覚的角度からは完全に見えない場合がある。しかしながら、仮想シーンＣ’内の視覚的オプションに関連付けられた仮想シーンのコンテンツは、ユーザが視覚的オプションのそれぞれ１つとのインタラクションを行う場合にユーザにとって容易に利用可能にする必要がある。ユーザが仮想シーンとのインタラクションを行う（例えば、頭をゲストルームへのドアの方向に動かすか、または特定のゲストルームのドアに向かって移動するか、または視覚的オプションに向かって手を伸長させる）とき、そのアクションがシーンＣ’内の視覚的オプションに対する選択が近いことを示しているかどうかを判定するためにユーザのインタラクティビティが評価される。ユーザは、追跡可能なウェアラブルデバイスを着用していてもよく、または着用していなくてもよい。インタラクション予測器１１９は、ＨＭＤ内に組み込まれたセンサを使用して、またはＨＭＤの外部にあるセンサを使用して、またはユーザの手に着用されたウェアラブルデバイスを追跡することによってユーザの手を追跡してもよい。視覚的オプションに対する選択が近いことを識別する、予測されたインタラクションの評価に基づき、対応する仮想シーンのコンテンツが、ユーザのインタラクションのためにプリロードされる。
【００４２】
高層階フロアの仮想シーンＣ’の視覚的オプション（例えば、ゲストルームまたはスイートルームへのドア）を提供することに加えて、シーンＣ’に固有の１つ以上の追加の視覚的オプションも提供される。例えば、図３Ｃに示した、仮想シーンであるシーンＣ’は、他のフロア階（ビルの階数及びユーザが自分のいることが分かった現在の階に応じた、高層階フロアと低層階フロアとの両方）にアクセスするためのエレベータオプション３０５ａ及びフローティングメニューオプション３１１ａを含む。このフローティングメニューオプションは、ホームオプション及びお気に入りのシーンオプションなどの、その中に提供された各種のオプションにアクセスするために使用され得る。図３Ｃに提供された例では、フローティングメニューオプション３１１ａは、シーンＡ内に提供されたオプションよりも少ないオプションを提供するように示されている。しかしながら、同じ量及び種類のオプション、またはより少ないか、もしくはより多い数もしくは種類のオプションがフローティングメニューオプション３１１ａ内に提供されてもよい。
【００４３】
図３Ｄは、図３ＡのシーンＡ内に提供されたエレベータオプション３０５を使用してアクセスされ得る別の例の仮想シーンであるシーンＣ’’３０５ｂを示す。仮想シーンであるシーンＣ’’は、ユーザが仮想シーンＡからエレベータオプション３０５を選択してロビーよりも下の階にアクセスしたときの、高層ビルの（例えば、居住用集合住宅またはレストランもしくはホテルもしくはオフィスビルの）地下である。一例では、シーンＡは、集合住宅またはレストランもしくはホテルもしくはオフィスビルであってもよく、ユーザは、下に向かうというエレベータオプション３０５を既に選択ずみであってもよい。あるいは、エレベータオプション３０５の代わりに、ユーザは、高層ビルのロビーから下に行くという階段オプションとのインタラクションを既に行っていてもよい。ユーザはまた、現在の仮想シーンであるシーンＡ３０３内で利用可能なエレベータオプション３０５または階段オプション以外の視覚的オプション（例えば、以前のシーン、次のシーン、お気に入りのシーン、最も難しいシーンなど）を選択して、地下シーンＣ’’３０５ｂにアクセスしてもよい。いずれの場合も、ユーザにはシーンＣ’’３０５ｂが提示されるが、これは未完成の地下階のビューである。地下シーンＣ’’または任意の他の仮想シーンにアクセスするための他の手法は、インタラクティブアプリケーションの進行、ユーザのスキルレベル、特定の勝利、またはこのような仮想シーンにアクセスするためにユーザにとって利用可能なツールに基づいていてもよい。シーンＣ’’は、このシーン内に描写された仮想地下シーンに固有の視覚的オプションを提供する。例えば、図３Ｄに提示されたビューの方向に提供された視覚的オプションは、上のフロアにアクセスするための一続きの階段３１１ｂを含み、このフロアは、ビルのロビーにアクセスするための１階であってもよい。地下はビルの最も低い部分であるため、さらに下に行くためのオプションは提供されない。さらに、シーンＡから地下にアクセスするためにエレベータオプション３０５が使用されたことから、エレベータオプションはシーンＣ’’内にも提供される（図３Ｄには図示せず）。図３Ｄに示した例では、フローティングメニューオプションはのオプション数は、図３Ａに提供されたオプション数よりも少ない。しかしながら、他の例では、フローティングメニューオプションは、高層ビルの外側の好ましい仮想シーンを含む任意の他の仮想シーンにユーザがアクセスできるように、追加のオプションを含むように提供されてもよい。プリローダモジュール１１５は、ユーザのインタラクションに間に合うようにインタラクティブアプリケーションの適切な仮想シーンを識別及びプリロードし、その仮想シーンは、インタラクティブアプリケーションへのアクセスを求める要求から、または対応する視覚的オプションに対する近くなされる選択から識別される。
【００４４】
プリローダモジュールが仮想シーンのコンテンツをどのように識別及びプリロードするかの詳細について以下に説明する。プリローダモジュール１１５は、複数のサブモジュールを連携させてインタラクティブアプリケーションの各種の仮想シーンの識別及びプリロードを支援することにより、視覚的シーンのうちのそれぞれ１つが、対応する視覚的オプションがユーザによって選択されたときにユーザのインタラクションに間に合うように完全にレンダリングされることを可能にする。プリローダモジュール１１５の仮想シーンセレクタ１１７は、インタラクティブアプリケーションにアクセスすることの要求に応答して、または現在の仮想シーンとは異なる仮想シーンにアクセスすることの要求に応答して、ユーザに提供するための仮想シーンを識別するために使用される。仮想シーンセレクタ１１７は、要求内で提供された情報を使用して、どの仮想シーンをユーザに提供するかを決定してもよい。要求は、ユーザがインタラクティブアプリケーションの先頭から開始することを望んでいることを示してもよい。このような場合、前のセッション中にユーザがアプリケーションを選択し、そのアプリケーションとのインタラクションを行い、インタラクティブアプリケーションの現在の状態がユーザについてのインタラクティブアプリケーションの使用履歴データに格納されている場合でも、仮想画面セレクタ１１７は、インタラクティブアプリケーションの第１の仮想シーンをサーバ上にロードし、第１の仮想シーンのコンテンツをレンダリングのためにクライアントデバイスに提供する。第１の仮想シーンは、図３に示したように、アプリケーションを設定するための最初のホームシーンであってもよく、または最初のホームシーンの直後の仮想シーンであってもよい。
【００４５】
あるいは、仮想シーンセレクタ１１７は、使用履歴データベースからインタラクティブアプリケーションの現在の状態を読み出し、その現在の状態に関する仮想シーンに関連する情報をロードのためにシーンローダ１２３に提供してもよい。履歴が存在しない場合、インタラクティブアプリケーションは先頭から開始される。
【００４６】
シーンローダ１２３は、シーンセレクタ１１７によって提供された仮想シーン情報を使用して、アプリケーションデータストア１３３内のアプリケーションに照会し、仮想シーンのコンテンツを取得する。仮想シーンのために取得されたコンテンツは、仮想シーンを実行するために必要なコード及びデータを含む。仮想シーンのコンテンツがロードされ、アプリケーションサーバ内のメモリ内にキャッシュされ、コードを実行するためにシーン実行エンジン１２５に信号が送信されることにより、ユーザのインタラクションのために仮想シーンをレンダリングすることが可能になる。仮想シーンからのコンテンツは、レンダリングのために、適切なＡＰＩを使用してネットワーク１１０を経由してＨＭＤ１０４に転送される。コンテンツの一部として、仮想シーンのコンテンツに固有の１つ以上の視覚的オプションも読み出され、レンダリングのためにＨＭＤに提供される。
【００４７】
仮想シーンにおけるユーザのインタラクションが追跡され、アプリケーションの進行に影響を与えるために使用される。インタラクション予測器１１９は、アプリケーションの仮想シーン内のユーザのインタラクティビティを継続的に処理して、仮想シーン内の特定の視覚的オプションへのユーザの関心を示すユーザのアクションを判定する。各アクションは、インタラクティブインジケータを識別する。例えば、ユーザが仮想シーンのコンテンツとのインタラクションを行うとき、特定の方向に頭を動かすユーザのアクションを使用して、視線インジケータを識別してもよい。同様に、仮想シーン内の特定のオブジェクト（例えば、視覚的オプション）に向かって移動するユーザのアクションは、移動インジケータなどを識別するために使用されてもよい。仮想シーン内のユーザのインタラクションに基づいて識別されたこれらのインジケータのそれぞれには、異なる重みが与えられてもよい。いくつかの実施形態では、時間的属性、位置属性などに基づいて異なる重みが各インタラクティブインジケータに与えられてもよい。例えば、視線インジケータには、ユーザの視線が特定の方向に継続した時間に基づいて異なる重みが与えられてもよい。その結果、ユーザの視線が特定の方向に長時間継続した場合、視線インジケータに与えられる重みを、ユーザが特定の視線方向に視線を向けた時間に対応するように徐々に増加させてもよい。同様に、ユーザが仮想シーン内で移動する場合、特定の方向の移動インジケータには、ユーザが特定の方向への移動を継続したことに基づき、さらには視覚的オプションに接近したことに基づき、異なる重みが与えられてもよい。ユーザが視覚的オプションに近づくほど、移動インジケータに与えられる重みが大きくなる。
【００４８】
図４は、インタラクション予測器モジュール１１９が、図３Ａの仮想シーン内のユーザのインタラクティビティを経時的に監視し、ユーザのインタラクティビティから識別されたインタラクティブインジケータを評価することにより、視覚的オプションに対するユーザの近くなされる選択を予測して、対応する仮想シーンをユーザのインタラクションのためにプリロードする場合の一例を示す。インタラクション予測器１１９は、ユーザの各種のアクションから識別されたインタラクションインジケータを評価する。次いで、このインタラクション予測器は、時間の経過に伴って仮想シーン内のユーザのインタラクティビティの間に検出されたユーザのアクションに基づき、異なるインタラクティブインジケータについて異なるアクションの重みを与える。次いで、インタラクション予測器１１９は、仮想シーン内の特定の視覚的オプションに対する選択が近いことを表す閾値にインタラクティブインジケータが近づくときを判定する。ここで、特定の視覚的オプションは第２の仮想シーンに関連付けられている。仮想シーン内の各視覚的オプションは、アプリケーションの個別の仮想シーンに関連付けられ、その仮想シーンへのアクセスを提供することに留意されるべきである。例えば、図３Ａの仮想シーンを描写した図４を参照すると、視覚的オプション３０４はシーンＢへのアクセスを提供し、視覚的オプション３０５はシーンＣへのアクセスを提供し、視覚的オプション３０６はシーンＤへのアクセスを提供し、視覚的オプション３０７はシーンＥへのアクセスを提供し、他も同様である。
【００４９】
いくつかの実施形態では、近くなされる選択は、複数のインタラクティブインジケータのそれぞれに関連付けられたアクションの重みを累積することにより、その累積的なアクションの重みが仮想シーン内の視覚的オプションに対するユーザの選択が近いことを判定する閾値に近づくときを判定するために計算される。インタラクション予測器モジュール１１９は、閾値計算器エンジン１２１を連携させて、インタラクション予測器モジュール１１９によって識別された各種のインタラクティブインジケータを累算し、累算されたインタラクティブインジケータが閾値に近づくときを判定してもよい。図４に示すように、インタラクション予測器モジュール１１９は、時刻ｔ０にて、ユーザの視線方向が、例えば、仮想シーンＡ  ３０３内の視覚的オプション３０５（エレベータの画像）に向けられていることを検出する。さらに、インタラクション予測器モジュール１１９は、ユーザが視覚的オプション３０５に向かって移動していることを検出してもよい。この情報は、インタラクティブインジケータの累積表現を生成する閾値計算器エンジン１２１に提供される。その結果、時間ｔ０について、閾値計算器エンジン１２１によって生成された累積的なインタラクティブインジケータは、（Ｇ１Ｗ１＋Ｍｗ１）と表される。式中、Ｇ１は、方向１の（すなわち、視覚的オプション３０５に向かう）視線のインタラクティビティを表し、ｗ１は、時刻ｔ０における視線のインタラクティビティに与えられた重みであり、Ｍ１は、方向１の移動のインタラクティビティである。時刻ｔ１にて、インタラクション予測器モジュール１１９は、視線活動及び移動活動を含むユーザのインタラクティビティが継続して視覚的オプション３０５に向けられていることを検出する。さらに、時刻ｔ１にて、ユーザは、視覚的オプション３０５に向かう方向１に手を伸長させた。その結果、時刻ｔ１にて、閾値計算器エンジン１２１によって生成された累積的なインタラクティブインジケータは、（Ｇ１ｗ２＋Ｍ１ｗ２＋ＨＥ１ｗ１）と表される。式中、ＨＥ１は、方向１に手を伸長させた活動を表し、ｗ２は、時刻ｔ１における各種の活動に与えられた重みである。各インタラクティブインジケータに与えられる重みは、仮想シーンとのユーザのインタラクティビティの間、インタラクティブインジケータのそれぞれ１つが何時に識別されたかに基づいていてもよい。視線のインタラクティビティと移動のインタラクティビティとの両方が時間ｔ０にて識別されたため、両方のインタラクティブインジケータには、時刻ｔ０について同一の重みｗ１が与えられる。
【００５０】
各インタラクティブインジケータには各時刻にて同一の重みが与えられているが、それらは単なる例として提供されていることに留意されるべきである。評価中の各累積期間について、より大きいか、またはより小さい重みが、異なるインタラクティブインジケータに与えられてもよい。例えば、視線インジケータに与えられた重みは、移動インジケータに与えられた重みよりも大きい場合があり、逆もまた同様である。従って、インタラクション予測器１１９は、いくつかの既定の規則に従って、仮想シーン内のユーザのインタラクティビティから識別された各インタラクティブインジケータのアクションの重みを識別及び調整してもよい。インタラクション予測器モジュール１１９は、仮想シーンとのユーザのインタラクションの間、インタラクティブインジケータを継続して評価する。その評価に基づき、時刻ｔ２にて、閾値計算器エンジン１２１によって生成された累積的なインタラクティブインジケータは、（Ｇ１ｗ３＋Ｍ１ｗ３＋ＨＥ１ｗ２）と表され得る。式中、ｗ３は、これらのインジケータのそれぞれが時刻ｔ３にて方向１のままであるため、視線及び移動インジケータに与えられた重みである。手伸長インジケータは、視線インジケータ及び移動インジケータよりも後の時刻に検出されたため、手伸長インジケータに与えられた重みは異なることに留意されたい。いくつかの実施形態では、手伸長インジケータが最初に検出されたときにそれに与えられる重みは、視線及び／または移動インジケータが最初に検出されたときと同じであってもよい。
【００５１】
インタラクティブインジケータの累積値を計算することに加えて、閾値計算器エンジン１２１は、累積的なアクションの重みを比較して、各種のインタラクティブインジケータの累積的なアクションの重みが既定の閾値に近づいたか否かを判定する。その評価に基づき、各種のインタラクティブインジケータの累積的なアクションの重みが時刻ｔ２にて既定の閾値に到達した場合があり、ユーザにより近くなされる選択が視覚的オプション３０５であると示していることが判定され得る。これに応答して、閾値計算器エンジン１２１は、図４において、視覚的オプション３０５がユーザにより近く選択される対象であったことを示すために、インタラクション予測器１１９に信号を送信する。それに応じて、視覚的オプション３０５に関連付けられた第２の仮想シーンを選択し、ロードし、キャッシュし、準備しておくことにより、プリローダモジュールは、ユーザとのインタラクションのために第２の仮想シーンを完全にレンダリングすることを可能にするために、視覚的オプション３０５がユーザによって選択されたときに第２の仮想シーンのコードを実行することができる。従って、その評価に基づき、ユーザがインタラクションを行っている仮想シーン内で利用可能である様々な視覚的オプションに関連付けられた各種の仮想シーンは、対応する仮想シーンへの適時のアクセスをユーザに提供するために各種の準備完了状態に保たれる。各種の準備完了状態は、例えば、選択、ロード、キャッシュ及び実行を含む。前述の状態は単なる例であり、より少ないか、またはより多い数の状態が考察されてもよい。
【００５２】
仮想シーンである図３ＡのシーンＡは、ユーザのインタラクションのために現在アクセスされているため、シーンＡは「実行」状態にある。上記のように、シーンＡは、複数の仮想シーン（例えば、シーンＢ、Ｃ、Ｄ、Ｅ、Ｆ及びＧ）にアクセスするための各種の視覚的オプションを提供する。その結果、複数の仮想シーンのそれぞれは、「選択」状態にある。仮想シーンＡにおけるユーザのインタラクションの間に検出されたインタラクティブインジケータの評価に基づき、仮想シーンＡからアクセスすることができる複数の仮想シーンのそれぞれの状態が動的に更新される。インタラクティブインジケータの評価、及び検出されたインタラクティブインジケータに関連付けられたアクションの重みの累積は、確率グラフを生成するために使用される。確率グラフは、仮想シーンＡからアクセスすることができる各種の仮想シーンの状態の視覚的表現を提供する。ここで状態は、各種の視覚的オプションに向けられた合図を介してユーザによって表現された変化しつつある関心に一致するように時間の経過に伴って動的に調整される。
【００５３】
図５Ａ〜図５Ｆは、図３ＡのシーンＡ内で利用可能である様々な視覚的オプションに向けてユーザによって提供された合図の評価に基づいてプロットされた確率グラフの例を示す。図５Ａは、仮想シーンＡの視覚的合図が１回目に評価された後の確率グラフを示す。インタラクティブアプリケーションのシーンＡに関連付けられた視覚的オプションが選択される確率は、シーンＡが既に選択されており、かつユーザのインタラクション用のコンテンツを提供するように現在実行されているため、最も高くなる。加えて、各種の視覚的オプションを通じてシーンＡから直接アクセスすることができる仮想シーンは、少なくとも選択状態に設定される。選択状態は、仮想シーンＡ内に提供された視覚的オプションとのインタラクションを行うことにより、ユーザがそれらの仮想シーンのうちの任意の１つにいつでもアクセスできることを示す。従って、仮想シーンＢ、Ｃ、Ｄ  Ｅ、Ｆｎ、Ｆｐ及びＧは、少なくとも選択状態にある。加えて、仮想シーンＨ、Ｉ及びＪは、低い確率スコアを有するように示されている。というのも、これらの仮想シーンに直接アクセスするための視覚的オプションは、シーンＡ内に全く提供されていないためである。これらの仮想シーンは、他の仮想シーンを通じてアクセス可能であってもよく、またはユーザにとって利用可能なツールまたはオプションなどの他の手段を通じてアクセスすることができる。
【００５４】
さらに、ユーザにより近くなされる選択は、仮想シーンＢ（例えば、ファンゾーン仮想シーン）に関連付けられた視覚的オプション３０４に向けられていることに留意されたい。１回目の評価に基づき、インタラクション予測器１１９は、視覚的オプション３０４に関連付けられた仮想シーンに関連する情報を仮想シーンセレクタ１１７に提供する。仮想シーンセレクタ１１７は、視覚的オプション３０４に関連付けられた仮想シーンであるシーンＢを識別し、この情報をシーンローダ１２３に提供して、シーンＢのインスタンスを識別し、シーンＢ用のコードをメモリ内にプリロードし、それをキャッシュして、仮想シーンＢの準備を整える。シーンＢは、ここで「準備」状態に設定される。
【００５５】
仮想シーンＡにおいてユーザのインタラクティブインジケータを評価することに加えて、インタラクション予測器１１９は、ユーザが仮想シーンＡ内にいるときにユーザがインタラクションを行うことを好む任意の仮想シーンを決定するために、ユーザの使用履歴データベース１３５に照会するように使用履歴分析器１２７モジュールに信号を送ってもよい。その照会に基づき、使用履歴分析器１２７は、ユーザが仮想シーンＡ内にいるときにユーザが通常インタラクションを行うフローティングメニュー３１１から、シーンＤに関連付けられた視覚的オプション３０６を識別してもよい。
【００５６】
使用履歴分析器１２７によって提供された情報は仮想シーンセレクタ１１７にも提供され、この仮想シーンセレクタは、シーンＤに関連する情報をシーンローダ１２３に転送する。それにより、シーンローダ１２３は、シーンＤのインスタンスを識別し、シーンＤ用のコードをメモリ内にプリロードし、それをキャッシュし、仮想シーンＤの準備を整えることができる。その結果、仮想シーンＢに加えて、仮想シーンＤも準備状態に保たれる。従って、１回目の評価の後、仮想シーンＡは実行状態にあり、仮想シーンＢ及びＤは準備状態にあり、他方、仮想シーンＣ、Ｅ、Ｆｎ、Ｆｐ及びＧは選択状態にある。
【００５７】
図５Ｂは、視覚的合図の２回目の評価の後のシーンＡの確率グラフを示す。２回目の評価中、インタラクション予測器１１９は、シーンＢに関連付けられた視覚的オプション３０４からシーンＣに関連付けられた視覚的オプション３０５への、インタラクティブインジケータを介して表現されたユーザの興味の移行を検出する。例えば、図４においてＧ２として移行が識別され、その移行には重みｗ１が与えられる。図４に示した例では、視線は視覚的オプション３０５から視覚的オプション３０４に移行するように示されているが、視覚的オプション３０４から視覚的オプション３０５への同じ種類の移行が検出されてもよい。その結果、確率グラフは、シーンＢの累積スコアの下方への移行とシーンＣの累積スコアの上方への移行を示すように調整される。シーンＡ及びシーンＤの累積スコアは、図５Ｂに示すように引き続き同一のレベルにある。２回目の評価中に検出されたユーザの関心の移行により、仮想シーンＢ及びＣの状態が調整される。いくつかの実施形態では、状態の調整により、シーンＢのコード及びデータがメモリからアンロードされることによってシーンＢが準備状態から選択状態にダウングレードされ、同時にシーンＣのコード及びデータがメモリ内にアップロードされることによってシーンＣが選択状態から準備状態に上昇する。このような調整は、インタラクティブインジケータの評価に基づいて様々な仮想シーンのコンテンツが頻繁にメモリ内にロードされ、メモリからアンロードされるように見える場合があるが、各評価が既定の閾値で定義された期間に及ぶため、そのような調整の頻度は低い。既定の閾値で定義された期間は、評価が各種の視覚的オプションにおけるユーザの長時間にわたる関心を取り込み、ユーザの一時的な関心を取り込まないことを保証する。これはまた、不要なコード及びデータをメモリから除去しつつ必要なコード及びデータのみが適切な時点でメモリ内にロードされているため、システムの処理リソースが最適に使用されることも保証する。
【００５８】
図５Ｃは、３回目の評価後、ユーザがシーンＡからのコンテンツとのインタラクションを行っているときの確率グラフを示す。この図では、ユーザの合図は、現在、シーンＣに関連付けられた視覚的オプション３０５ではなく、シーンＧに関連付けられた視覚的オプション３１０に向けられている。その結果、シーンＧの計算された累積スコアが増加し、シーンＣの累積スコアが減少する。シーンＧ及びシーンＣの計算された累積スコアが移行することにより、仮想シーンＣがメモリからアンロードされて選択状態にある間、仮想シーンＧが現在ロードされ、準備できていることを示すために、シーンＧ及びシーンＣの各状態が確率グラフにおいて動的に調整される。
【００５９】
ユーザが仮想シーンＡのコンテンツとのインタラクションを行っている間、各種の視覚的オプションにおけるユーザの合図を継続して監視することにより、累積スコアに対する、従って視覚的オプションのそれぞれ１つに関連付けられた各種の仮想シーンのステータスに対する調整が生じ得る。図５Ｄは、仮想シーンＡ内のユーザのインタラクティビティの間に検出された各種の視覚的インジケータの計算された累積スコアに基づき、４回目の評価の後に仮想シーンＡからアクセスすることができる各種の仮想シーンのステータスを示す。図５Ｄに示した４回目の評価の後の確率グラフは、図５Ａに示した１回目の評価の後の確率グラフと類似している。仮想シーンのステータスは、アクセスのための準備が完了した各種の状態を識別する。
【００６０】
図５Ｅは、５回目の評価の後の確率グラフを示す。５回目の評価の後、シーンＡ内の視覚的オプション３０４を選択することによってユーザが仮想シーンＢにアクセスしたと判定される。その結果、５回目の評価に従って、仮想シーンＡの累積スコアは下がり、仮想シーンＢの累積スコアは上がる。これにより、シーンＡのステータスが「実行」状態から「準備」状態にダウングレードされ、仮想シーンＢのステータスが「準備」状態から「実行」状態に上昇する。仮想シーンＡは、所定の期間、またはユーザがインタラクティブアプリケーション内にさらに進行するまで、または仮想シーンＢから仮想シーンＡに関連付けられた視覚的オプションにアクセスするユーザの頻度が高いことが使用履歴から判定された場合、準備状態に維持されてもよい。一方、仮想シーンＢから仮想シーンＡに関連付けられた視覚的オプションにアクセスするユーザの頻度が低い場合、仮想シーンＡのステータスは、「実行」状態から「選択」状態にダウングレードされてもよい。
【００６１】
仮想シーンのうちの特定の１つに対するユーザの選択を使用履歴内に維持することに加えて、使用履歴はまた、様々なユーザについての使用選択を維持してもよい。様々なユーザの使用履歴をインタラクティブアプリケーションの仮想シーンについて取得し、ユーザのインタラクションのために仮想シーンのうちの特定の１つを用意するために使用することができる。例えば、ユーザは、インタラクティブアプリケーションに初めてアクセスしていてもよく、インタラクティブアプリケーションのための使用履歴を全く持っていない。結果として、様々なユーザの使用履歴は、ユーザについて各種の準備完了段階にて各種の仮想シーンを得るために使用されてもよい。
【００６２】
ユーザがアプリケーション内で１つの仮想シーンから別の仮想シーンに進行するとき、ユーザは、以前にアクセスした仮想シーンのうちの特定の１つにアクセスすることができない場合がある。これは、現在の仮想シーンから以前にアクセスした仮想シーンのうちの特定の１つへの直接リンク（すなわち、視覚的オプション）の欠如による場合がある。この場合、以前にアクセスされた仮想シーンは非連続的である。その結果、例えば、図５Ａ〜図５Ｄの確率グラフ内の仮想シーンＨ〜Ｊに示されているように、現在の仮想シーンのアクセス中、そのような仮想シーンの累積スコアは低下し、そのような仮想シーンのステータスは「利用不可」に設定される。利用不可に設定された仮想シーンは、メモリ内に保持されるか、または他の仮想シーン用の空間を確保するためにメモリからアンロードされてもよい。
【００６３】
他の実施形態では、仮想シーンＢは、以前は仮想シーンＡからアクセス可能ではなかった仮想シーン（例えば、仮想シーンＨ〜Ｊ）のうちの特定の１つへの視覚的オプションを介したアクセスを提供してもよい。その結果、これらの仮想シーン（すなわち、仮想シーンＨ〜Ｊ）は、「選択」状態にあるように示される。同様に、仮想シーンＢは、仮想シーンＡからアクセス可能であった仮想シーンのうちの他の特定のいくつかへのアクセスを提供しなくてもよい。その結果、それらの仮想シーン（例えば、仮想シーンＥ、Ｆｎ、Ｆｐ及びＧ）は、図５Ｅに示したように、アンロードされるか、または「利用不可」状態に設定されるかのいずれかとなる。
【００６４】
図５Ｆは、６回目の評価の後のユーザの例示的な確率グラフを示す。示されているように、ユーザは、仮想シーンＢに継続してアクセスしている。その結果、仮想シーンＢは実行しているように示される。図５Ｆを参照して論じた仮想シーンＢは、図５Ｆの仮想シーンＢが図３Ｂに示されていない追加の視覚的オプションを含むように示されているため、図３Ｂの仮想シーンＢとはわずかに異なることに留意されたい。仮想シーンＢから仮想シーンのうちの特定の１つにユーザによってアクセスされる頻度に基づくと、仮想シーンＡ及びＤについて計算された累積スコアは高い。その結果、仮想シーンＡ及びＤがロードされ、「準備」状態にあるように示される。仮想シーンＢ内で利用可能な視覚的オプションに基づき、仮想シーンＣ、Ｆｎ、Ｆｐ、Ｈ及びＪは、「選択」状態にあるように示される。さらに、仮想シーンＢ内のユーザのインタラクティビティから検出されたインタラクティブインジケータの評価に基づき、仮想シーンＩの累積スコアが高くなるように計算され、仮想シーンＩがロードされ、「準備」状態に設定される。従って、現在の仮想シーンからアクセスすることができる各種の仮想シーンの累積スコアが動的に計算され、計算された累積スコアに従って仮想シーンの状態が調整される。従って、ユーザが特定の仮想シーンにアクセスするために視覚的オプションを選択したとき、その特定の仮想シーンが実行のために準備及びロードされ、そのコンテンツが遅延を伴わずにユーザにとって利用可能となる。これにより、システムは、現時点において必要な仮想シーンのうちの特定のいくつかの必要なコード及びデータのみをロードし、現時点で必要のない仮想シーンのうちの特定の他のいくつかのコード及びデータをロードしないようにすることができる。
【００６５】
図６Ａ及び図６Ｂは、いくつかの実施形態における、アプリケーションの仮想シーン内の各種のリンクの例を示す。アプリケーションは、複数の仮想シーンを含んでもよく、連続する各仮想シーンは、以前の仮想シーン内で提供された視覚的オプションを使用して、またはアプリケーションの現在の状態に基づいてアクセスされる。図６Ａは、一実施形態における、連続的な仮想シーンへのアクセスが現在の仮想シーンから提供されるアプリケーションの各種の仮想シーンの簡略リンケージグラフを示す。例えば、仮想シーンＢ、Ｃ及びＤには仮想シーンＡからアクセスすることができ、逆もまた同様である。仮想シーンＪ及びＨには、仮想シーンＢからアクセスすることができ、逆もまた同様であり、仮想シーンＧ及びＩには仮想シーンＣからアクセスすることができ、逆もまた同様であり、仮想シーンＥ及びＦには仮想シーンＤからアクセスすることができ、逆もまた同様である。
【００６６】
一方、図６Ｂは、他の実施形態における、アプリケーションの各種の仮想シーンのより相互に関連したリンケージグラフを示す。この実施形態では、連続する仮想シーンまたは以前の仮想シーンへのアクセスを有することに加えて、連続的または非連続的である１つ以上の仮想シーンから各種の仮想シーンにアクセスすることができる。例えば、仮想シーンＡは、仮想シーンＢ、Ｃ、Ｄ、Ｅ、Ｆ及びＧへのアクセスを提供し、これらの仮想シーンのそれぞれは、仮想シーンＡへのアクセスを提供する。仮想シーンＢは、仮想シーンＡ、Ｄ、Ｅ、Ｆ、Ｈ、Ｉ及びＪへのアクセスを提供し、これらの仮想シーンは、仮想シーンＢへのアクセスを提供する。仮想シーンＣは、仮想シーンＡ、Ｄ及びＨへのアクセスを提供し、これらの仮想シーンは、仮想シーンＣへのアクセスを提供する。仮想シーンＤは、仮想シーンＡ、Ｂ、Ｃ及びＪへのアクセスを提供する。仮想シーンＥ及びＦは、それぞれ、仮想シーンＡ及びＢへのアクセスを提供する。仮想シーンＩは、仮想シーンＬへのアクセスを提供し、逆もまた同様である。ユーザが各種の仮想シーンを通じて進行し、より遠くに移動し、特定の仮想シーンからより遠くに離れるにつれて、その特定の仮想シーンへの直接アクセスがより制限されるようになるか、または存在しなくなる。そのようなシナリオでは、特定の仮想シーンは、ユーザがいる現在の仮想シーン内で利用可能な、ボタン、オブジェクトの画像、シーンの画像、フローティングメニューなどの視覚的オプションを介してアクセスされる。視覚的オプションにより、ユーザは１つの仮想シーンから別の連続的または非連続的な仮想シーンにジャンプすることができる。様々な仮想シーンに関連付けられた視覚的オプションをユーザが選択した時点で様々な仮想シーンからコンテンツがユーザに提供されることを保証するために、プリローダモジュールは、インタラクティブインジケータを事前に評価し、適切なコンテンツを適時にプリロードする。このような事前の評価に基づき、ユーザの体験が損なわれることなくシステムリソースが保存される。
【００６７】
図７Ａは、一実施形態における、インタラクティブアプリケーションの仮想シーンをプリロードするために使用される各種の方法動作を示す。方法は動作６１０にて開始され、このとき、インタラクティブアプリケーションの選択がサーバにて受信される。インタラクティブアプリケーションは、複数の仮想シーンを含んでもよく、連続する各仮想シーンは、インタラクティブアプリケーションの自然な経過を通じて、または仮想シーン内に提供された視覚的オプションを通じてアクセスされる。インタラクティブアプリケーションの選択に応答して、インタラクティブアプリケーションの仮想シーンのコンテンツが識別され、ヘッドマウントディスプレイにてレンダリングするために提供される。仮想シーンを実行するためのコード及びデータがアップロードされ、キャッシュされ、実行され、実行からのコンテンツがレンダリングのために提供される。仮想シーンにおけるユーザのインタラクティビティは、仮想シーン内の視覚的オプションとの予測されたインタラクションを識別するために処理される。処理は、動作６２０に示したように、視覚的オプションのうちの１つに対する近くなされる選択を示すアクションの閾値に到達するまで継続する。インタラクティブインジケータの評価では、仮想シーン内の視覚的オプションのうちの特定の１つに対するユーザによる選択の可能性を決定するために、視覚的オプションのそれぞれにおける重み付けされたアクションについて累積スコアを計算する。
【００６８】
操作６３０に示したように、その評価に基づき、選択が近いと識別された視覚的オプションに関連付けられたインタラクティブアプリケーションの第２の仮想シーンがプリロードされる。動作６４０に示したように、第２の仮想シーンに関連付けられた視覚的オプションをユーザが選択したときにユーザが第２の仮想シーンのコンテンツにアクセスするように、プリロードされたコンテンツを使用して第２の仮想シーンが実行される。第２の仮想シーンをプリロードすることは、ユーザが視覚的オプションとのインタラクションを行って追加の仮想シーンを選択することができるように、第２の仮想シーンに固有の視覚的オプションをロードする。合図を評価し、適切な仮想シーンをプリロードするプロセスは、ユーザが仮想シーンとのインタラクションを継続するとき、及び現在のセッション中にインタラクティブアプリケーションの各種の仮想シーンを通じてユーザが進行するときに継続する。
【００６９】
図７Ｂは、他の実施形態における、インタラクティブアプリケーションの仮想シーンをプリロードするために使用される各種の方法動作を示す。方法は動作６５０にて開始され、このとき、インタラクティブアプリケーションの選択がサーバにて受信される。インタラクティブアプリケーションは、複数の仮想シーンを含み、各仮想シーンは、インタラクティブアプリケーションの自然な経過を通じて、または仮想シーン内に提供された視覚的オプションを通じてのいずれかでアクセスされる。インタラクティブアプリケーションの選択に応答して、インタラクティブアプリケーションの仮想シーンのコンテンツが識別され、選択を提供したユーザによって着用されたヘッドマウントディスプレイ上でレンダリングするために提供される。コンテンツは、アプリケーションの追加の仮想シーンにアクセスするための視覚的オプションを含む。
【００７０】
動作６５５に示したように、仮想シーンを提供すると、第２の仮想シーンを識別してプリロードするように、アプリケーションのために維持されたユーザの使用履歴が分析される。使用履歴は、ユーザがアクセスした仮想シーン、及び仮想シーンが選択されたモード（例えば、自然な進行または視覚的オプションの選択）の全てを識別するアプリケーションのユーザの前のインタラクティブセッションを維持する。分析に基づき、前のインタラクティブセッション中にユーザによって以前に選択されなかった仮想シーン内の特定の視覚的オプションに関連付けられた第２の仮想シーンが識別されてもよい。ユーザによって選択され得なかった２つ以上の視覚的オプションが仮想シーン内に存在する場合があり、分析は、現在もしくは前のインタラクティブセッション中のユーザが従う各種の視覚的オプションに対する選択の順序に基づいて特定の視覚的オプションに関連付けられた第２の仮想シーンを識別してもよく、または複数のユーザが従う各種の視覚的オプションに対する選択の順序に基づいていてもよく、または選択されなかった視覚的オプションからランダムに選択されてもよい。複数のユーザは、ユーザの社会的な知り合いであってもよく、またはユーザに関連付けられた１つ以上の属性に基づいて識別されてもよい。あるいは、分析に基づき、ユーザが頻繁にアクセスした仮想シーン内の視覚的オプションが識別されてもよく、頻繁にアクセスされた視覚的オプションに関連付けられた第２の仮想シーンが識別される。
【００７１】
動作６６０に示したように、第２の仮想シーンを実行するためのコード及びデータは、仮想シーンのコンテンツとのユーザの現在のインタラクションの間の第２の仮想シーンに関連付けられた第１の視覚的オプションに対する選択が近いとの予測に基づいてプリロードされる。動作６６５に示したように、視覚的オプションのうちの特定の１つについて、仮想シーンとのユーザのインタラクションの間に検出された複数のインタラクティブインジケータのそれぞれに与えられたアクションの重みがアクションの重みの閾値に到達するまで、仮想シーン内のユーザのインタラクティビティが評価される。インタラクティブインジケータについて計算された累積スコアは、視覚的オプションのうちの特定の１つにユーザが表現した関心を示す。視覚的オプションの一致が存在するかどうかを判定するために、近く選択されると識別された視覚的オプションのうちの特定の１つが、プリロードされた仮想シーンに関連付けられた第１の視覚的オプションと比較される。
【００７２】
その判定に基づき、動作６７５に示したように、第１の視覚的オプションがユーザによって選択されたとき、プリロードされた第２の仮想シーンが、ユーザのインタラクションのために第２の仮想シーンの完全なレンダリングを可能にするためにプリロードされたコンテンツを使用して実行される。第２の仮想シーンのプリロードでは、ユーザが第２の仮想シーン内の視覚的オプションとのインタラクションを行って追加の仮想シーンにアクセスできるようにするために、第２の仮想シーンに固有の視覚的オプションをロードする。合図を評価し、適切な仮想シーンをロードするプロセスは、ユーザが仮想シーンとのインタラクションを行うとき、及び現在のセッション中にインタラクティブアプリケーションの各種の仮想シーンを通じてユーザが進行するときに継続する。
【００７３】
本明細書で説明される各種の実施形態は、インタラクティブアプリケーションの仮想シーンとのユーザのインタラクションの間に検出されたインタラクティブインジケータを使用して仮想シーンのうちの特定の１つにユーザが表現した関心を検出すること、及びユーザのインタラクションのためにプリロードされた特定の仮想シーンに関連付けられた視覚的オプションをユーザが選択することを予想して、特定の仮想シーンを先にプリロードする。例えば、オブジェクトに向けたユーザの関心は、通常、オブジェクトに向けられたユーザの特定のインタラクティブインジケータを単に観察及び評価することにより、ユーザが実際にそのオブジェクトを選択する前に判断することができる。例えば、ユーザは、単に、オブジェクトの方向に視線を向けること、もしくはオブジェクトに向かって、もしくはオブジェクトの方向に移動すること、または仮想シーンへと手を伸長させること、コントローラのトリガなどにより、オブジェクトを選択せずにオブジェクトに対する関心を表現してもよい。このようなインジケータは、オブジェクトへのユーザの関心を判断するために評価することができる。本明細書で論じられる各種の実施形態では、仮想シーン内のユーザのインタラクションから検出されたインジケータに基づき、特定の視覚的オプションに関連付けられた特定の仮想シーンをプリロードし、キャッシュし、準備しておく。その結果、特定の仮想シーンにアクセスするための視覚的オプションをユーザが実際に選択した場合、その特定の仮想シーンは既に実行されているため、ユーザが待機する必要なく、さらにはシステムのコンピューティングリソースに不要な負担をかけることなく、仮想シーンのコンテンツへのアクセスを適時的にユーザに提供することができる。各種の実施形態の他の利点は当業者にとって明らかであろう。
【００７４】
図８を参照すると、本発明の実施形態に従った、ヘッドマウントディスプレイ１０４の構成要素を示す図が示されている。ヘッドマウントディスプレイ１０４は、プログラム命令を実行するためのプロセッサ７００を含む。メモリ７０２は、ストレージ目的のために提供され、揮発性メモリと不揮発性メモリとの両方を含んでもよい。ユーザが見ることができる視覚的インタフェースを提供するディスプレイ７０４が含まれる。ヘッドマウントディスプレイ１０４用の電源としてバッテリ７０６が提供される。動き検出モジュール７０８は、磁力計７１０、加速度計７１２及びジャイロスコープ７１４などの、様々な種類の動き検知ハードウェアのいずれかを含んでもよい。
【００７５】
加速度計は、加速度及び重力に誘起された反力を測定するためのデバイスである。単軸及び多軸モデルは、異なる方向における加速度の大きさ及び方向を検出するために利用可能である。加速度計を使用して、傾き、振動及び衝撃を検知する。一実施形態では、３つの加速度計７１２を使用して２つの角度（ワールド空間ピッチ及びワールド空間ロール）についての絶対参照を与える、重力の方向を提供する。
【００７６】
磁力計は、ヘッドマウントディスプレイの付近の磁場の強さ及び方向を測定する。一実施形態では、３つの磁力計７１０は、ヘッドマウントディスプレイ内で使用され、ワールド空間ヨー角度についての絶対参照を保証する。一実施形態では、磁力計は、±８０マイクロテスラである、地磁気にわたるように設計される。磁力計は、金属の影響を受け、実際のヨーに関して単調であるヨー測定を提供する。磁場は、環境内の金属により歪む場合があり、これによってヨー測定に歪みが生じる。必要であれば、この歪みは、ジャイロスコープまたはカメラなどの他のセンサからの情報を使用して較正することができる。一実施形態では、加速度計７１２は、磁力計７１０と共に使用され、ヘッドマウントディスプレイ１０４の傾き及び方位を取得する。
【００７７】
ジャイロスコープは、角運動量の原理に基づき、向きを測定または維持するためのデバイスである。一実施形態では、３つのジャイロスコープ７１４は、慣性検知に基づいてそれぞれの軸（ｘ、ｙ及びｚ）にわたる動きについての情報を提供する。ジャイロスコープは、高速回転を検出する際に有用である。しかしながら、ジャイロスコープは、絶対参照が存在しなくても、経時的にドリフトする可能性がある。これは、ジャイロスコープを定期的にリセットすることを必要とするが、これは、オブジェクトの視覚追跡、加速度計、磁力計などに基づく位置／向きの決定などの、他の利用可能な情報を使用して行うことが可能である。
【００７８】
実環境の画像及び画像ストリームを取り込むためにカメラ７１６が提供される。後ろ向きのカメラ（ユーザがヘッドマウントディスプレイ１０４のディスプレイを見ているときにユーザから離れる方に向けられる）、及び前向きのカメラ（ユーザがヘッドマウントディスプレイ１０４のディスプレイを見ているときにユーザに向けられる）を含む、２つ以上のカメラがヘッドマウントディスプレイ１０４に含まれてもよい。加えて、深度カメラ７１８が、実環境におけるオブジェクトの深度情報を検知するためにヘッドマウントディスプレイ１０４に含まれてもよい。
【００７９】
ヘッドマウントディスプレイ１０４は、オーディオ出力を提供するためのスピーカ７２０を含む。また、周囲環境からの音、ユーザによって発せられた音声などを含む、実環境からの音を取り込むためにマイクロホン７２２が含まれてもよい。ヘッドマウントディスプレイ１０４は、触覚フィードバックをユーザに提供するための触覚フィードバックモジュール７２４を含む。一実施形態では、触覚フィードバックモジュール７２４は、触覚フィードバックをユーザに提供するように、ヘッドマウントディスプレイ１０４の動き及び／または振動を生じさせることが可能である。
【００８０】
ＬＥＤ７２６は、ヘッドマウントディスプレイ１０４のステータスの視覚的インジケータとして提供される。例えば、ＬＥＤは、バッテリレベル、電源投入などを示してもよい。カードリーダ７２８は、ヘッドマウントディスプレイ１０４がメモリカードとの間で情報を読み出し、書き込むことを可能にするために提供される。周辺デバイスの接続、または他のポータブルデバイス、コンピュータなどの他のデバイスへの接続を可能にするためのインタフェースの一例としてＵＳＢインタフェース７３０が含まれる。ヘッドマウントディスプレイ１０４の各種の実施形態では、様々な種類のインタフェースのいずれかが、ヘッドマウントディスプレイ１０４のより高い接続性を可能にするために含まれてもよい。
【００８１】
ＷｉＦｉモジュール７３２は、無線ネットワーク技術を介してインターネットへの接続を可能にするために含まれる。また、ヘッドマウントディスプレイ１０４は、他のデバイスへの無線接続を可能にするためにＢｌｕｅｔｏｏｔｈモジュール７３４を含む。また、他のデバイスへの接続のために通信リンク７３６が含まれてもよい。一実施形態では、通信リンク７３６は、無線通信のために赤外線伝送を利用する。他の実施形態では、通信リンク７３６は、他のデバイスとの通信のために各種の無線または有線伝送プロトコルのいずれかを利用してもよい。
【００８２】
入力ボタン／センサ７３８は、ユーザに入力インタフェースを提供するために含まれる。ボタン、タッチパッド、ジョイスティック、トラックボールなどの、様々な種類の入力インタフェースのいずれかが含まれてもよい。超音波技術によって他のデバイスとの通信を容易にするために、超音波通信モジュール７４０がヘッドマウントディスプレイ１０４に含まれてもよい。
【００８３】
バイオセンサ７４２は、ユーザからの生理学的データの検出を可能にするために含まれる。一実施形態では、バイオセンサ７４２は、ユーザの皮膚を通じてユーザの生体電気信号を検出するための１つ以上の乾燥電極を含む。
【００８４】
ヘッドマウントディスプレイ１０４の前述の構成要素は、ヘッドマウントディスプレイ１０４に含まれ得る単なる例示的な構成要素として説明されてきた。本発明の各種の実施形態では、ヘッドマウントディスプレイ１０４は、各種の前述の構成要素の一部を含んでもよく、含まなくてもよい。ヘッドマウントディスプレイ１０４の実施形態は、本明細書に説明されるような本発明の態様を容易にする目的のために、ここでは説明されていないが、当該技術分野において既知である他の構成要素を追加で含んでもよい。
【００８５】
当業者は、本発明の各種の実施形態において、前述のハンドヘルドデバイスが各種のインタラクション機能を提供するためにディスプレイ上に表示されるインタラクティブアプリケーションと併せて利用され得ることを理解するであろう。本明細書で説明される例示的な実施形態は、単に例として提供されるものであり、限定として提供されるものではない。
【００８６】
図９は、本発明の各種の実施形態に従った、ゲームシステム８００のブロック図である。ゲームシステム８００は、ネットワーク８１５を介して１つ以上のクライアント８１０にビデオストリームを提供するように構成される。ネットワークは、図２に示したネットワーク１１０に類似している。ゲームシステム８００は、通常、ビデオサーバシステム８２０及び任意選択のゲームサーバ８２５を含む。ビデオサーバシステム８２０は、最小限のサービス品質で１つ以上のクライアント８１０にビデオストリームを提供するように構成される。例えば、ビデオサーバシステム８２０は、ビデオゲーム内の状態または視点を変更するゲームコマンドを受信し、クライアント８１０に、この変更を直ちに反映する更新されたビデオストリームを、最小の遅延時間で提供してもよい。ビデオサーバシステム８２０は、未だ定義されていないフォーマットを含む、多種多様な代替ビデオフォーマットでビデオストリームを提供するように構成されてもよい。さらに、ビデオストリームは、多種多様なフレームレートでユーザに提示するように構成されたビデオフレームを含んでもよい。典型的なフレームレートは、毎秒３０フレーム、毎秒６０フレーム、及び毎秒８２０フレームである。ただし、本発明の他の実施形態には、より高いか、またはより低いフレームレートが含まれる。
【００８７】
本明細書で８１０Ａ、８１０Ｂなどと個々に呼ばれるクライアント８１０は、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話機、セットトップボックス、キオスク、無線デバイス、デジタルパッド、スタンドアロンデバイス、ハンドヘルドゲームプレイデバイス、及び／または同様のものを含んでもよい。典型的には、クライアント８１０は、符号化されたビデオストリームを受信し、ビデオストリームを復号し、得られたビデオをユーザ、例えば、ゲームのプレイヤーに提示するように構成される。符号化されたビデオストリームを受信するプロセス、及び／またはビデオストリームを復号するプロセスは、通常、個々のビデオフレームをクライアントの受信バッファに格納する。ビデオストリームは、クライアント８１０に統合されたディスプレイ上またはモニタもしくはテレビなどの別個のデバイス上でユーザに提示されてもよい。クライアント８１０は、任意選択で、２人以上のゲームプレイヤーをサポートするように構成される。例えば、ゲームコンソールは、２人、３人、４人またはそれ以上の同時プレイヤーをサポートするように構成されてもよい。これらのプレイヤーの各人が、別個のビデオストリームを受信してもよく、または単一のビデオストリームが、各プレイヤーについて特別に生成された、例えば、各プレイヤーの視点に基づいて生成されたフレームの領域を含んでもよい。クライアント８１０は、任意選択で地理的に分散される。ゲームシステム８００に含まれるクライアントの数は、１つもしくは２つから数千、数万、またはそれ以上に大きく変動し得る。本明細書で使用される「ゲームプレイヤー」という用語は、ゲームをプレイする人を指すために使用され、「ゲームプレイデバイス」という用語は、ゲームをプレイするために使用されるデバイスを指すために使用される。いくつかの実施形態では、ゲームプレイデバイスは、ゲームの体験をユーザに届けるために協働する複数のコンピューティングデバイスを指し得る。例えば、ゲームコンソール及びＨＭＤは、ビデオサーバシステム８２０と協働して、ＨＭＤを通して見えるゲームを供給してもよい。一実施形態では、ゲームコンソールは、ビデオサーバシステム８２０からビデオストリームを受信し、ゲームコンソールは、レンダリングのためにＨＭＤにビデオストリームを転送するか、またはビデオストリームに更新する。
【００８８】
クライアント８１０は、ネットワーク８１５を介してビデオストリームを受信するように構成される。ネットワーク８１５は、電話網、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、プライベートネットワーク、及び／または同様のものを含む任意の種類の通信ネットワークであってもよい。典型的な実施形態では、ビデオストリームは、ＴＣＰ／ＩＰまたはＵＤＰ／ＩＰなどの標準プロトコルを介して通信される。あるいは、ビデオストリームは、独自の規格を介して通信される。
【００８９】
クライアント８１０の典型的な例は、プロセッサ、不揮発性メモリ、ディスプレイ、復号ロジック、ネットワーク通信機能、及び入力デバイスを含むパーソナルコンピュータである。復号ロジックは、ハードウェア、ファームウェア、及び／またはコンピュータ可読媒体上に格納されたソフトウェアを含んでもよい。ビデオストリームを復号（及び符号化）するためのシステムは、当該技術分野において周知であり、使用される特定の符号化スキームに応じて異なる。
【００９０】
クライアント８１０は、必須ではないが、受信したビデオを修正するように構成されたシステムをさらに含んでもよい。例えば、クライアントは、さらなるレンダリングを実行すること、１つのビデオ画像を別のビデオ画像上にオーバーレイすること、ビデオ画像をクロッピングすること、及び／または同様のことを行うように構成されてもよい。例えば、クライアント８１０は、Ｉフレーム、Ｐフレーム及びＢフレームなどの様々な種類のビデオフレームを受信し、これらのフレームを処理してユーザに表示するための画像にするように構成されてもよい。いくつかの実施形態では、クライアント８１０のメンバーは、ビデオストリームに対するさらなるレンダリング、シェーディング、３−Ｄへの変換、または同様の動作を実行するように構成される。クライアント８１０のメンバーは、任意選択で、２つ以上のオーディオまたはビデオストリームを受信するように構成される。クライアント８１０の入力デバイスは、例えば、片手用ゲームコントローラ、両手用ゲームコントローラ、ジェスチャ認識システム、視線認識システム、音声認識システム、キーボード、ジョイスティック、ポインティングデバイス、フォースフィードバックデバイス、動き及び／または位置検知デバイス、マウス、タッチスクリーン、ニューラルインタフェース、カメラ、未だ開発されていない入力デバイス、及び／または同様のものを含んでもよい。
【００９１】
クライアント８１０によって受信されたビデオストリーム（及び任意選択でオーディオストリーム）は、ビデオサーバシステム８２０によって生成され、提供される。本明細書の他の箇所でさらに説明されるように、このビデオストリームはビデオフレームを含む（さらに、オーディオストリームはオーディオフレームを含む）。ビデオフレームは、ユーザに表示される画像に有効に寄与する（例えば、それらは適切なデータ構造内にピクセル情報を含む）ように構成される。本明細書で使用する「ビデオフレーム」という用語は、ユーザに示される画像に寄与する、例えば、効果を与えるように構成された情報を主として含むフレームを指すために使用される。「ビデオフレーム」に関する本明細書の教示の大部分は、「オーディオフレーム」にも適用することができる。
【００９２】
クライアント８１０は、典型的には、ユーザからの入力を受信するように構成される。これらの入力は、ビデオゲームの状態を変化させるように、またはそれ以外の場合はゲームプレイに影響を与えるように構成されたゲームコマンドを含んでもよい。ゲームコマンドは、入力デバイスを使用して受信することができ、かつ／またはコンピューティング命令をクライアント８１０上で実行することによって自動的に生成されてもよい。受信したゲームコマンドは、クライアント８１０からネットワーク８１５を介してビデオサーバシステム８２０及び／またはゲームサーバ８２５に通信される。例えば、いくつかの実施形態では、ゲームコマンドは、ビデオサーバシステム８２０を介してゲームサーバ８２５に通信される。いくつかの実施形態では、ゲームコマンドの別個のコピーは、クライアント８１０からゲームサーバ８２５及びビデオサーバシステム８２０に通信される。ゲームコマンドの通信は、任意選択でコマンドの識別子に依存する。ゲームコマンドは、オーディオまたはビデオストリームをクライアント８１０Ａに提供するために使用されたものとは異なる経路または通信チャネルを通じて、クライアント８１０Ａから任意選択で通信される。
【００９３】
ゲームサーバ８２５は、任意選択で、ビデオサーバシステム８２０とは異なるエンティティによって運営される。例えば、ゲームサーバ８２５は、マルチプレイヤーゲームのパブリッシャーによって運営されてもよい。この例では、ビデオサーバシステム８２０は、任意選択で、ゲームサーバ８２５によってクライアントとして見られ、任意選択で、ゲームサーバ８２５の視点からは従来技術のゲームエンジンを実行する従来技術のクライアントであると見えるように構成される。ビデオサーバシステム８２０とゲームサーバ８２５との間の通信は、任意選択で、ネットワーク８１５を介して行われる。このように、ゲームサーバ８２５は、ゲームステート情報を複数のクライアントに送信する従来技術のマルチプレイヤーゲームサーバとすることができ、この複数のクライアントのうちの１つがゲームサーバシステム８２０である。ビデオサーバシステム８２０は、同時にゲームサーバ８２５の複数のインスタンスと通信するように構成されてもよい。例えば、ビデオサーバシステム８２０は、異なるユーザに複数の異なるビデオゲームを提供するように構成することができる。これらの異なるビデオゲームのそれぞれは、異なるゲームサーバ８２５によってサポートされてもよく、かつ／または異なるエンティティによって発行されてもよい。いくつかの実施形態では、ビデオサーバシステム８２０の地理的に分散されたいくつかのインスタンスは、複数の異なるユーザにゲームビデオを提供するように構成される。ビデオサーバシステム８２０のこれらのインスタンスのそれぞれは、ゲームサーバ８２５の同じインスタンスと通信してもよい。ビデオサーバシステム８２０と１つ以上のゲームサーバ８２５との間の通信は、任意選択で、専用の通信チャネルを介して行われる。例えば、ビデオサーバシステム８２０は、これらの２つのシステム間の通信に専用の高帯域幅チャネルを介してゲームサーバ８２５に接続されてもよい。
【００９４】
ビデオサーバシステム８２０は、少なくともビデオソース８３０、Ｉ／Ｏデバイス８４５、プロセッサ８５０、及び非一時的ストレージ８５５を含む。ビデオサーバシステム８２０は、１つのコンピューティングデバイスを含んでもよく、または複数のコンピューティングデバイス間に分散されてもよい。これらのコンピューティングデバイスは、任意選択で、ローカルエリアネットワークなどの通信システムを介して接続される。
【００９５】
ビデオソース８３０は、例えば、ストリーミングビデオまたは動画を形成する一連のビデオフレームといったビデオストリームを提供するように構成される。いくつかの実施形態では、ビデオソース８３０は、ビデオゲームエンジン及びレンダリングロジックを含む。ビデオゲームエンジンは、プレイヤーからゲームコマンドを受信し、受信したコマンドに基づいてビデオゲームのステートのコピーを維持するように構成される。このゲームステートは、ゲーム環境内のオブジェクトの位置、及び典型的には視点を含む。ゲームステートはまた、オブジェクトの特性、画像、色及び／またはテクスチャを含んでもよい。
【００９６】
ゲームステートは、典型的には、ゲームルールと、移動、回転、攻撃、フォーカス設定、インタラクション、使用及び／または同様のものなどのゲームコマンドとに基づいて維持される。ゲームエンジンの一部は、任意選択で、ゲームサーバ８２５内に配置される。ゲームサーバ８２５は、地理的に分散されたクライアントを使用する複数のプレイヤーから受信したゲームコマンドに基づき、ゲームのステートのコピーを維持してもよい。これらの場合、ゲームステートは、ゲームサーバ８２５によってビデオソース８３０に提供され、そこでゲームステートのコピーが格納され、レンダリングが実行される。ゲームサーバ８２５は、ネットワーク８１５を介してクライアント８１０から直接ゲームコマンドを受信してもよく、かつ／またはビデオサーバシステム８２０を介してゲームコマンドを受信してもよい。
【００９７】
ビデオソース８３０は、典型的には、レンダリングロジック、例えば、ハードウェア、ファームウェア、及び／またはストレージ８５５などのコンピュータ可読媒体上に格納されたソフトウェアなどを含む。このレンダリングロジックは、ゲームステートに基づいてビデオストリームのビデオフレームを作成するように構成される。レンダリングロジックの全部または一部は、任意選択で、グラフィックス処理ユニット（ＧＰＵ）内に配置される。レンダリングロジックは、典型的には、ゲームステート及び視点に基づき、オブジェクト間の三次元空間関係を決定するように、かつ／または適切なテクスチャなどを適用するように構成された処理ステージを含む。レンダリングロジックは未処理のビデオを生成する。次いで、このビデオは、通常、クライアント８１０に通信する前に符号化される。例えば、未処理のビデオは、Ａｄｏｂｅ  Ｆｌａｓｈ（登録商標）規格、．ｗａｖ、Ｈ．２６４、Ｈ．２６３、Ｏｎ２、ＶＰ６、ＶＣ−１、ＷＭＡ、Ｈｕｆｆｙｕｖ、Ｌａｇａｒｉｔｈ、ＭＰＧ−ｘ．Ｘｖｉｄ．ＦＦｍｐｅｇ、ｘ２６４、ＶＰ６−８、リアルビデオ、ｍｐ３などに従って符号化されてもよい。符号化プロセスは、リモートデバイス上のデコーダに供給するために任意選択でパッケージ化されたビデオストリームを生成する。ビデオストリームは、フレームサイズ及びフレームレートによって特徴付けられる。典型的なフレームサイズには、８００×６００、１２８０×７２０（例えば、７２０ｐ）、１０２４×７６８が含まれるが、任意の他のフレームサイズが使用されてもよい。フレームレートは、１秒当たりのビデオフレームの数である。ビデオストリームは、異なる種類のビデオフレームを含んでもよい。例えば、Ｈ．２６４規格は、「Ｐ」フレーム及び「Ｉ」フレームを含む。Ｉフレームは、表示デバイス上の全てのマクロブロック／ピクセルをリフレッシュするための情報を含むのに対し、Ｐフレームは、そのサブセットをリフレッシュするための情報を含む。Ｐフレームは、典型的には、Ｉフレームよりもデータサイズが小さい。本明細書で使用する「フレームサイズ」という用語は、フレーム内の画素数を指すことを意味する。「フレームデータサイズ」という用語は、フレームを格納するために必要なバイト数を指すために使用される。
【００９８】
他の実施形態では、ビデオソース８３０は、カメラなどのビデオ録画デバイスを含む。このカメラは、コンピュータゲームのビデオストリームに含めることができる遅延ビデオまたはライブビデオを生成するために使用されてもよい。得られたビデオストリームは、任意選択で、レンダリングされた画像と、スチルカメラまたはビデオカメラを使用して録画された画像との両方を含む。ビデオソース８３０はまた、ビデオストリームに含めるために以前に録画されたビデオを格納するように構成されたストレージデバイスを含んでもよい。ビデオソース８３０はまた、オブジェクト、例えば、人物の動きまたは位置を検出するように構成された動きまたは位置検知デバイス、ならびに検出された動き及び／または位置に基づいてゲームステートを決定する、またはビデオを生成するように構成されたロジックを含んでもよい。
【００９９】
ビデオソース８３０は、任意選択で、他のビデオ上に配置されるように構成されたオーバーレイを提供するように構成される。例えば、これらのオーバーレイは、コマンドインタフェース、ログインインストラクション、ゲームプレイヤーへのメッセージ、他のゲームプレイヤーの画像、他のゲームプレイヤーのビデオフィード（例えば、ウェブカメラビデオ）を含んでもよい。タッチスクリーンインタフェースまたは視線検出インタフェースを含むクライアント８１０Ａの実施形態では、オーバーレイは、仮想キーボード、ジョイスティック、タッチパッド及び／または同様のものを含んでもよい。オーバーレイの一例では、プレイヤーの音声がオーディオストリーム上にオーバーレイされる。ビデオソース８３０は、任意選択で、１つ以上のオーディオソースをさらに含む。
【０１００】
ビデオサーバシステム８２０が２人以上のプレイヤーからの入力に基づいてゲームステートを維持するように構成される実施形態では、各プレイヤーは、ビューの位置及び方向を含む異なる視点を有してもよい。ビデオソース８３０は、任意選択で、各プレイヤーの視点に基づいて別個のビデオストリームを各プレイヤーに提供するように構成される。さらに、ビデオソース８３０は、異なるフレームサイズ、フレームデータサイズ、及び／または符号化をクライアント８１０のそれぞれに提供するように構成されてもよい。ビデオソース８３０は、任意選択で、３−Ｄビデオを提供するように構成される。
【０１０１】
Ｉ／Ｏデバイス８４５は、ビデオサーバシステム８２０が、ビデオ、コマンド、情報の要求、ゲームステート、視線情報、デバイスの動き、デバイスの位置、ユーザの動き、クライアント識別子、プレイヤー識別子、ゲームコマンド、セキュリティ情報、オーディオ、及び／または同様のものなどの情報を送信及び／または受信するように構成される。Ｉ／Ｏデバイス８４５は、典型的には、ネットワークカードまたはモデムなどの通信ハードウェアを含む。Ｉ／Ｏデバイス８４５は、ゲームサーバ８２５、ネットワーク８１５及び／またはクライアント８１０と通信するように構成される。
【０１０２】
プロセッサ８５０は、本明細書で論じられるビデオサーバシステム８２０の各種の構成要素内に含まれるロジック、例えば、ソフトウェアを実行するように構成される。例えば、プロセッサ８５０は、ビデオソース８３０、ゲームサーバ８２５及び／またはクライアントクォリファイア８６０の機能を実行するためにソフトウェア命令を用いてプログラムされてもよい。ビデオサーバシステム８２０は、任意選択で、プロセッサ８５０の２つ以上のインスタンスを含む。プロセッサ８５０はまた、ビデオサーバシステム８２０によって受信されたコマンドを実行するために、または本明細書で論じられるゲームシステム８００の各種の要素の動作を連動させるために、ソフトウェア命令を用いてプログラムされてもよい。プロセッサ８５０は、１つ以上のハードウェアデバイスを含んでもよい。プロセッサ８５０は、電子プロセッサである。
【０１０３】
ストレージ８５５は、非一時的なアナログ及び／またはデジタルストレージデバイスを含む。例えば、ストレージ８５５は、ビデオフレームを格納するように構成されたアナログストレージデバイスを含んでもよい。ストレージ８５５は、コンピュータ可読デジタルストレージ、例えば、ハードドライブ、光学ドライブまたはソリッドステートストレージを含んでもよい。ストレージ８１５は、ビデオフレーム、人工フレーム、ビデオフレームと人工フレームとの両方を含むビデオストリーム、オーディオフレーム、オーディオストリーム、及び／または同様のものを格納するように（例えば、適切なデータ構造またはファイルシステムによって）構成される。ストレージ８５５は、任意選択で、複数のデバイス間に分散される。いくつかの実施形態では、ストレージ８５５は、本明細書の他の箇所で論じられるビデオソース８３０のソフトウェア構成要素を格納するように構成される。これらの構成要素は、必要なときにプロビジョニングされるように準備がなされたフォーマットで格納されてもよい。
【０１０４】
ビデオサーバシステム８２０は、任意選択で、クライアントクォリファイア８６０をさらに含む。クライアントクォリファイア８６０は、クライアント８１０Ａまたは８１０Ｂなどのクライアントの能力をリモートで判定するように構成される。これらの能力は、クライアント８１０Ａ自体の能力と、クライアント８１０Ａとビデオサーバシステム８２０との間の１つ以上の通信チャネルの能力との両方を含むことができる。例えば、クライアントクォリファイア８６０は、ネットワーク８１５を経由して通信チャネルをテストするように構成されてもよい。
【０１０５】
クライアントクォリファイア８６０は、クライアント８１０Ａの能力を手動または自動で判定する（例えば、見出す）ことができる。手動判定は、クライアント８１０Ａのユーザと通信し、ユーザに能力を提供するように依頼する。例えば、いくつかの実施形態では、クライアントクォリファイア８６０は、クライアント８１０Ａのブラウザ内に画像、テキスト及び／または同様のものを表示するように構成される。一実施形態では、クライアント８１０Ａは、ブラウザを含むＨＭＤである。別の実施形態では、クライアント８１０Ａは、ＨＭＤ上に表示され得るブラウザを有するゲームコンソールである。表示されたオブジェクトは、クライアント８１０Ａのオペレーティングシステム、プロセッサ、ビデオデコーダの種類、ネットワーク接続の種類、ディスプレイ解像度などの情報をユーザが入力することを要求する。ユーザによって入力された情報は、クライアントクォリファイア８６０に返信される。
【０１０６】
自動判定は、例えば、クライアント８１０Ａ上のエージェントの実行によって、かつ／またはクライアント８１０Ａへのテストビデオの送信によって行われてもよい。エージェントは、ウェブページに埋め込まれるか、またはアドオンとしてインストールされたＪａｖａスクリプトなどのコンピューティング命令を含んでもよい。エージェントは、任意選択で、クライアントクォリファイア８６０によって提供される。各種の実施形態では、エージェントは、クライアント８１０Ａの処理パワー、クライアント８１０Ａの復号及び表示能力、クライアント８１０Ａとビデオサーバシステム８２０との間の通信チャネルの遅延時間の信頼性及び帯域幅、クライアント８１０Ａの表示方式、クライアント８１０Ａ上に存在するファイアウォール、クライアント８１０Ａのハードウェア、クライアント８１０Ａ上で実行するソフトウェア、クライアント８１０Ａ内のレジストリエントリ、及び／または同様のものを知ることができる。
【０１０７】
クライアントクォリファイア８６０は、ハードウェア、ファームウェア、及び／またはコンピュータ可読媒体上に格納されたソフトウェアを含む。クライアントクォリファイア８６０は、任意選択で、ビデオサーバシステム８２０の１つ以上の他の要素とは別個のコンピューティングデバイス上に配置される。例えば、いくつかの実施形態では、クライアントクォリファイア８６０は、クライアント８１０とビデオサーバシステム８２０の２つ以上のインスタンスとの間の通信チャネルの特性を判定するように構成される。これらの実施形態では、クライアントクォリファイアによって見出された情報を使用して、ビデオサーバシステム８２０のどのインスタンスがクライアント８１０のうちの１つにストリーミングビデオを供給するのに最も適しているかを判定することができる。
【０１０８】
図１０は、様々なゲームへのアクセスを提供する際に使用され得る情報サービスプロバイダアーキテクチャの実施形態を示す。情報サービスプロバイダ（ＩＳＰ）９０２は、ネットワーク９５０を介して地理的に分散され、接続されたユーザ９００に多数の情報サービスを供給する。ネットワーク９５０は、図１または図２のネットワーク１１０と同様であってもよい。ゲームへの高速アクセスを提供することに関して各種の実施形態が論じられてきたが、実施形態は、インタラクティブアプリケーションとのインタラクションの間にユーザによって取得された１つ以上の視覚的合図または他のツールもしくはアプリケーションポイントまたは賞もしくは報酬を使用してアクセス可能である様々なレベルのコンテンツを含むことができるコンテンツを提供する、仮想ツアーなどの他のインタラクティブアプリケーションへの高速アクセスを提供するように拡張することができる。例えば、ＩＳＰ９０２は、ゲームなどの１種類のみのサービス、またはゲーム、株価の更新、放送メディア、ニュース、スポーツ、ゲーミングなどの様々なサービスを供給することができる。加えて、各ＩＳＰによって供されるサービスは動的であってもよく、すなわち、任意の時点でサービスを追加または排除することができる。従って、特定の個人に特定の種類のサービスを提供するＩＳＰは、時間の経過に伴って変わり得る。例えば、ユーザが地元にいる間はユーザの付近のＩＳＰによってユーザにサービスを行ってもよく、ユーザは、ユーザが異なる街に移動したときは異なるＩＳＰによってユーザにサービスを行ってもよい。地元のＩＳＰは、接続モジュールを通じて、必要な情報及びデータをユーザのゲーミングまたはアクセスプロファイルから新しいＩＳＰに転送することになり、その結果、ユーザ情報が新しい街までユーザに「追従」し、データがユーザにより近づき、データによりアクセスしやすくする。別の実施形態では、ユーザについての情報を管理するマスタＩＳＰと、マスタＩＳＰからの制御の下でユーザと直接的にインタフェースするサーバＩＳＰとの間で、マスタ−サーバ関係が確立されてもよい。別の実施形態では、クライアントが世界中を移動するにつれて（すなわち、ユーザに割り当てられたデータセンターの切り替えの間）データが１つのＩＳＰから別のＩＳＰに転送され、そのような転送は、ユーザにサービスするためにより良好な位置にあるＩＳＰ９０２を、これらのサービスを供給するＩＳＰとするために、それぞれのＩＳＰによって提供されるサービスの互換性に基づいていてもよい。
【０１０９】
ＩＳＰ９０２は、ネットワークを経由して顧客にコンピュータベースのサービスを提供するアプリケーションサービスプロバイダ（ＡＳＰ）９０６を含む。ＡＳＰモデルを使用して供されるソフトウェアは、オンデマンドソフトウェアまたはソフトウエアアズアサービス（ＳａａＳ）と呼ばれることもある。特定のアプリケーションプログラム（顧客関係管理など）へのアクセスを提供する簡単な形式は、ＨＴＴＰなどの標準プロトコルの使用によるものである。アプリケーションソフトウェアは、例えば、ベンダのシステムに常駐し、ＨＴＭＬを使用するウェブブラウザを通じて、またはベンダによって提供された専用クライアントソフトウェアによって、またはシンクライアントなどの他のリモートインタフェースを介してユーザによってアクセスされる。
【０１１０】
広い地理的地域にわたって供給されるサービスは、多くの場合にはクラウドコンピューティングを使用する。クラウドコンピューティングは、動的にスケーラブルであり、かつ多くの場合には仮想化されたリソースがインターネット経由のサービスとして提供されるコンピューティングのスタイルである。ユーザは、ユーザをサポートする「クラウド」のテクノロジインフラストラクチャの専門家である必要はない。クラウドコンピューティングは、インフラストラクチャアズアサービス（ＩａａＳ）、プラットフォームアズアサービス（ＰａａＳ）、及びソフトウエアアズアサービス（ＳａａＳ）などの様々なサービスに分けることができる。クラウドコンピューティングサービスは、多くの場合には、ウェブブラウザからアクセスされる共通のビジネスアプリケーションをオンラインで提供するが、ソフトウェア及びデータはサーバ上に格納される。クラウドという用語は、インターネットがコンピュータネットワーク図にどのように描かれているかに基づき、（例えば、サーバ、ストレージ、及びロジックを使用した）インターネットのメタファとして使用され、メタファが隠す複雑なインフラストラクチャの抽象的概念である。
【０１１１】
さらに、ＩＳＰ９０２は、ゲームクライアントによってシングル及びマルチプレイヤービデオゲームをプレイするために使用されるゲーム処理サーバまたはプロバイダ（ＧａＰＳ）９０８を含む。インターネット経由でプレイされる大部分のビデオゲームは、ゲームサーバへの接続を介して動作する。通常、ゲームはプレイヤーからのデータを収集し、それを他のプレイヤーに配信する専用サーバアプリケーションを使用する。これは、ピアツーピア構成よりも効率的かつ効果的であるが、サーバアプリケーションをホスティングするための別のサーバが必要となる。別の実施形態では、ＧａＰＳは、プレイヤーとそれぞれのゲームプレイデバイスとの間の通信を確立し、集中化されたＧａＰＳに依存せずに情報を交換する。
【０１１２】
専用ＧａＰＳは、クライアントとは独立して実行されるサーバである。このようなサーバは、通常、データセンター内に位置付けられた専用ハードウェア上で実行され、より大きい帯域幅及び専用の処理パワーを提供する。専用サーバは、大部分のＰＣベースのマルチプレイヤーゲームのためのゲームサーバをホスティングするのに好ましい方法である。大規模なマルチプレイヤーオンラインゲームは、通常ゲームタイトルを所有するソフトウェア会社によってホスティングされた専用サーバ上で実行されて、その専用サーバがコンテンツを管理及び更新することを可能にする。
【０１１３】
放送処理サーバまたはプロバイダ（ＢＰＳ）９１０は、視聴者にオーディオまたはビデオ信号を配信する。非常に狭い範囲の視聴者への放送はナローキャスティングと呼ばれることもある。放送配信の最終工程は、信号が聴取者または視聴者にどのように達するかであり、信号は、ラジオ局またはテレビ局と同様にアンテナ及び受信機に地上波で到来し得るか、または局を介してケーブルテレビもしくはケーブルラジオ（もしくは「無線ケーブル」）を通じて到来し得るか、またはネットワークから直接到来し得る。インターネットはまた、特に信号及び帯域幅を共有できるマルチキャストを用いて、ラジオまたはテレビのいずれかを受信者に届けてもよい。歴史的に、放送は、全国放送または地域放送などの地理的領域によって区切られてきた。しかしながら、高速インターネットの普及に伴い、コンテンツは世界のほぼ全ての国に到達し得るため、放送は地域によって定められない。
【０１１４】
ストレージサービスプロバイダ（ＳＳＰ）９１２は、コンピュータストレージ空間及び関連する管理サービスを提供する。ＳＳＰは定期的なバックアップ及びアーカイビングも供する。ストレージをサービスとして供することにより、ユーザは必要に応じてより多くのストレージを注文できる。別の大きな利点は、ＳＳＰにバックアップサービスが含まれており、コンピュータのハードドライブに障害が発生してもユーザが全てのデータを失うことがないことである。さらに、複数のＳＳＰは、ユーザデータの全部または一部のコピーを有することができ、ユーザがどこに位置するか、またはデータにアクセスするために使用されているデバイスとは無関係に、ユーザは効率的な手法でデータにアクセスすることができる。例えば、ユーザは、家のコンピュータ内の個人的ファイルにアクセスすることができ、さらに、ユーザが移動している間は携帯電話内の個人的ファイルにアクセスすることができる。
【０１１５】
通信プロバイダ９１４は、ユーザに接続性を提供する。ある種類の通信プロバイダは、インターネットへのアクセスを供するインターネットサービスプロバイダ（ＩＳＰ）である。ＩＳＰは、ダイヤルアップ、ＤＳＬ、ケーブルモデム、ファイバ、無線、または専用の高速インターコネクトなどのインターネットプロトコルデータグラムの供給に適したデータ伝送技術を使用して顧客を接続する。通信プロバイダは、電子メール、インスタントメッセージング及びＳＭＳテキストメッセージなどのメッセージングサービスも提供することができる。通信プロバイダの別の種類は、インターネットへの直接のバックボーンアクセスを提供することによって帯域幅またはネットワークアクセスを販売するネットワークサービスプロバイダ（ＮＳＰ）である。ネットワークサービスプロバイダは、電気通信会社、データ通信業者、無線通信プロバイダ、インターネットサービスプロバイダ、高速インターネットアクセスを提供するケーブルテレビ事業者などで構成され得る。
【０１１６】
データエクスチェンジ９０４は、ＩＳＰ９０２内のいくつかのモジュールを相互接続し、ネットワーク９５０を介してこれらのモジュールをユーザ９００のクライアントデバイス９２０に接続する。データエクスチェンジ９０４は、ＩＳＰ９０２の全てのモジュールが近接している小さい領域をカバーすることができ、または様々なモジュールが地理的に分散しているときには大きな地理的領域をカバーすることができる。例えば、データエクスチェンジ９０４は、データセンターのキャビネット内の高速ギガビットイーサネット（登録商標）（もしくはより高速のもの）、または大陸間仮想エリアネットワーク（ＶＬＡＮ）を含むことができる。
【０１１７】
ユーザ９００は、それぞれのクライアントデバイス９２０を用いてリモートサービスにアクセスする。このクライアントデバイスは、少なくともＣＰＵ、メモリ（図示せず）、ディスプレイ及びＩ／Ｏを含む。クライアントデバイスは、ＰＣ、携帯電話、ネットブック、タブレット、ゲーミングシステム、ＰＤＡなどとすることができる。一実施形態では、ＩＳＰ１０７０は、クライアントによって使用されるデバイスの種類を認識し、採用された通信方法を調整する。他の場合には、クライアントデバイスは、ＨＴＭＬなどの標準的な通信方法を使用して、ＩＳＰ１０７０にアクセスする。
【０１１８】
本発明の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む各種のコンピュータシステム構成を用いて実施されてもよい。本発明はまた、有線ベースのネットワークまたは無線ネットワークを通じてリンクされるリモート処理デバイスによってタスクが実行される、分散型コンピューティング環境で実施することができる。
【０１１９】
上記の実施形態を念頭に置いて、本発明は、コンピュータシステム内に格納されたデータに関連した各種のコンピュータ実装動作を採用できることが理解されるべきである。これらの動作は、物理量の物理的操作を必要とする動作である。本発明の一部を構成する本明細書で説明されるいずれの動作も有用な機械動作である。本発明はまた、これらの動作を実行するためのデバイスまたは装置に関する。装置は、必要とされる目的のために特別に構成することができ、または装置は、コンピュータ内に格納されたコンピュータプログラムによって選択的に起動または構成された汎用コンピュータとすることができる。特に、本明細書の教示に従って記述されたコンピュータプログラムを用いて各種の汎用機械を使用することができ、または必要とされる動作を実行するためにより特殊化された装置を構築することがより便利であり得る。
【０１２０】
発明はまた、コンピュータ可読媒体上のコンピュータ可読コードとして具現化することができる。あるいは、コンピュータ可読コードは、上記で説明されたデータエクスチェンジ相互接続を使用してサーバからダウンロードされてもよい。コンピュータ可読媒体は、データを格納することができる任意のデータストレージデバイスであり、データは、その後、コンピュータシステムによって読み出すことができる。コンピュータ可読媒体の例には、ハードドライブ、ネットワーク接続ストレージ（ＮＡＳ）、リードオンリーメモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、ならびに他の光学及び非光学データストレージデバイスが含まれる。コンピュータ可読媒体は、コンピュータ可読コードが分散方式で格納され、実行されるように、ネットワーク結合コンピュータシステム上に分散されたコンピュータ可読有形媒体を含むことができる。
【０１２１】
方法動作が特定の順序で説明されたが、他のハウスキーピング操作が動作の間に実行されてもよく、または動作が、わずかに異なる時刻に生じるように調整されてもよく、もしくはオーバーレイ動作の処理が所望の手法で実行される限り、処理に関連する様々な間隔で処理動作の発生を可能にするシステム内に分散されてもよいことが理解されるべきである。
【０１２２】
前述の発明は、理解を明確にするために幾分詳細に説明されてきたが、添付された特許請求の範囲内である変更及び修正を実施できることは明らかであろう。従って、本実施形態は、例示的であり、限定的ではないとみなされるべきであり、本発明は本明細書で与えられた詳細に限定されるものではなく、説明される実施形態の範囲及び均等物内で修正されてもよい。
【０１２３】
ゲーミングコンソールの例示的なシステムアーキテクチャ全体について本明細書で説明する。例示的なゲーミングコンソールは、本発明の実施形態を実装するためのコントローラと互換性を有し得る、Ｓｏｎｙ（登録商標）Ｐｌａｙｓｔａｔｉｏｎ３（登録商標）（ＰＳ３）またはＰｌａｙｓｔａｔｉｏｎ４（登録商標）（ＰＳ４）エンターテインメントデバイスを含んでもよい。ＰＳ３ゲーミングコンソールシステムアーキテクチャが詳細に説明されるが、本明細書で説明される各種の実施形態が、異なるゲーミングコンソールまたはコンピューティングデバイスのシステムアーキテクチャに拡張可能であることに留意されるべきである。システムユニットが提供され、このシステムユニットには各種の周辺デバイスが接続可能である。システムユニットは、図１のクラウドゲームミングシステム３００と類似している。システムユニットは、ＰＳ３にあるような８コアプロセッサ、またはＰＳ４にあるようなマルチコアプロセッサであり得るプロセッサ、ＰＳ３にあるようなＲａｍｂｕｓ（登録商標）ダイナミックランダムアクセスメモリ（ＸＤＲＡＭ）ユニット、またはＰＳ４にあるようなＧＤＤＲ５などのグラフィックスダイナミックランダムアクセスメモリ、ＰＳ３にあるような専用ビデオランダムアクセスメモリ（ＶＲＡＭ）ユニットを有するリアリティシンセサイザグラフィックスユニット（例えば、５５０ＭＨｚ  ＧＰＵ）、またはＰＳ４及びＰＳ４  Ｐｒｏにおける共有グラフィックスメモリを有する８００もしくは９００ＭＨｚ  ＧＰＵ、ならびにＩ／Ｏブリッジを含む。システムユニットはまた、Ｉ／Ｏブリッジを通じてアクセス可能な、ディスク及び着脱可能スロットインハードディスクドライブ（ＨＤＤ）から読み出すためのＢｌｕＲａｙ（登録商標）ディスクリードオンリーメモリ（ＢＤ−ＲＯＭ（登録商標））（光学）ディスクリーダを含む。任意選択で、システムユニットはまた、Ｉ／Ｏブリッジを通じて同様にアクセス可能である、コンパクトフラッシュ（登録商標）メモリカード及びメモリスティック（登録商標）メモリカードなどを読み出すためのメモリカードリーダ、ならびに、ＰＳ４では、ゲームを記録するための内蔵ＤＶＲを含む。
【０１２４】
Ｉ／Ｏブリッジはまた、６つのユニバーサルシリアルバス（ＵＳＢ）２．０ポート、ギガビットイーサネットポート、ＩＥＥＥ８０２．１１ｂ／ｇ無線ネットワーク（Ｗｉ−Ｆｉ）ポート、及び最大で７つのＢｌｕｅｔｏｏｔｈ接続をサポートする能力を有するＢｌｕｅｔｏｏｔｈ（登録商標）無線リンクポートに接続する。
【０１２５】
動作中、Ｉ／Ｏブリッジは、１つ以上のゲームコントローラ（ＰＳ３にあるようなＤｕａｌＳｈｏｃｋ３コントローラ、またはＰＳ４にあるようなＰＳ４  ＤｕａｌＳｈｏｃｋ４コントローラなど）からのデータを含む、全ての無線、ＵＳＢ、及びイーサネットデータを扱う。例えば、ユーザがゲームをプレイしているとき、Ｉ／Ｏブリッジは、Ｂｌｕｅｔｏｏｔｈリンクを介してゲームコントローラからデータを受信し、それを（ＰＳ３における）プロセッサまたは（ＰＳ４における）マルチコアプロセッサに送り出し、プロセッサまたはマルチコアプロセッサは、それに応じてゲームの現在のステートを更新する。さらに、他の画像センサ及び移動センサは、ユーザのゲームプレイ中に取り込まれたデータをＩ／Ｏブリッジに提供し、Ｉ／Ｏブリッジは、そのデータをそれぞれのプロセッサに送り出す。ゲームコントローラ（例えば、ＰＳ４のゲームコントローラ）は、ゲームを共有するための共有ボタンオプション、クリック可能なタッチパッド、再充電可能なバッテリ（リチウムイオンまたは他の種類）などを含む。
【０１２６】
無線、ＵＳＢ及びイーサネットポートはまた、ゲームコントローラに加えて、リモコン、キーボード、マウス、Ｓｏｎｙ  Ｐｌａｙｓｔａｔｉｏｎ  Ｐｏｒｔａｂｌｅ（登録商標）エンターテインメントデバイスなどのポータブルエンターテインメントデバイス、ＥｙｅＴｏｙ（登録商標）ビデオカメラなどのビデオカメラ、マイクロホンヘッドセット、及び着脱可能ハードドライブなどの他の周辺デバイスのための接続性を提供する。従って、このような周辺デバイスは、原則として、無線でシステムユニットに接続されてもよく、例えば、ポータブルエンターテインメントデバイスはＷｉ−Ｆｉアドホック接続を介して通信してもよく、他方、マイクロホンヘッドセットはＢｌｕｅｔｏｏｔｈリンクを介して通信してもよい。
【０１２７】
これらのインタフェースのプロビジョニングは、Ｐｌａｙｓｔａｔｉｏｎ３デバイスが、デジタルビデオレコーダ（ＤＶＲ）、セットトップボックス、デジタルカメラ、ポータブルメディアプレイヤー、ボイスオーバＩＰ電話、携帯電話、プリンタ、及びスキャナなどの他の周辺デバイスとの互換性も潜在的に有することを意味する。
【０１２８】
加えて、レガシーメモリカードリーダは、ＵＳＢポートを介してシステムユニットに接続されてもよく、Ｐｌａｙｓｔａｔｉｏｎ（登録商標）またはＰｌａｙｓｔａｔｉｏｎ２（登録商標）デバイスによって使用される種類のメモリカードの読み出しを可能にする。
【０１２９】
本実施形態では、ゲームコントローラは、Ｂｌｕｅｔｏｏｔｈリンクを介してシステムユニットと無線で通信するように動作可能である。しかしながら、ゲームコントローラは、その代わりに、ＵＳＢポートに接続することができ、それによって、ゲームコントローラのバッテリを充電する電力も提供する。１つ以上のアナログジョイスティック及び従来の制御ボタンに加えて、ゲームコントローラは、各軸における平行移動及び回転に対応した、６つの自由度における動きに反応する。結果として、ゲームコントローラのユーザによるジェスチャ及び移動は、従来のボタンまたはジョイスティックコマンドに加えて、またはそれらの代わりに、ゲームへの入力として変換され得る。任意選択で、Ｐｌａｙｓｔａｔｉｏｎ（商標）ポータブルデバイスなどの、他の無線対応の周辺デバイスがコントローラとして使用されてもよい。Ｐｌａｙｓｔａｔｉｏｎ（商標）ポータブルデバイスの場合、追加のゲームまたは制御情報（例えば、制御命令またはライブの数）がデバイスの画面上に提供されてもよい。ダンスマット（図示せず）、ライトガン（図示せず）、ハンドル及びペダル（図示せず）、または即答クイズゲームのための１つまたは複数の大型ボタン（同様に図示せず）などの特注品のコントローラなどの、他の代替的または補助的な制御デバイスも使用されてもよい。
【０１３０】
リモコンはまた、Ｂｌｕｅｔｏｏｔｈリンクを介してシステムユニットと無線で通信するように動作可能である。リモコンは、ＢｌｕＲａｙ（商標）ディスクＢＤ−ＲＯＭリーダの動作のために、さらにディスクコンテンツのナビゲーションのために好適な制御を備える。
【０１３１】
ＢｌｕＲａｙ（商標）ディスクＢＤ−ＲＯＭリーダは、従来の記録済みのコンパクトディスク（ＣＤ）及び記録可能なＣＤ、ならびにいわゆるスーパーオーディオＣＤに加えて、Ｐｌａｙｓｔａｔｉｏｎ及びＰｌａｙＳｔａｔｉｏｎ２デバイスとの互換性を有するコンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）を読み出すように動作可能である。ＢｌｕＲａｙ（商標）ディスクＢＤ−ＲＯＭリーダはまた、従来の記録済みのＤＶＤ及び記録可能なＤＶＤに加えて、ＰｌａｙＳｔａｔｉｏｎ２（商標）及びＰｌａｙＳｔａｔｉｏｎ３（商標）デバイスとの互換性を有するデジタルバーサタイルディスクリードオンリーメモリ（ＤＶＤ−ＲＯＭ）を読み出すように動作可能である。ＢｌｕＲａｙ（商標）ディスクＢＤ−ＲＯＭリーダは、さらに、従来の記録済みのＢｌｕ−Ｒａｙディスク及び記録可能なＢｌｕ−Ｒａｙディスクのみならず、ＰｌａｙＳｔａｔｉｏｎ３デバイスとの互換性を有するＢＤ−ＲＯＭを読み出すように動作可能である。
【０１３２】
システムユニットは、ディスプレイ及び１つ以上のラウドスピーカを有するモニタまたはテレビセットなどのディスプレイ及びサウンド出力デバイスへのオーディオ及びビデオコネクタを通じて、Ｐｌａｙｓｔａｔｉｏｎ３またはＰｌａｙｓｔａｔｉｏｎ４デバイスによって生成または復号のいずれかがなされたオーディオ及びビデオをリアリティシンセサイザグラフィックスユニットを介して供給するように動作可能である。オーディオコネクタは、従来のアナログ及びデジタル出力を含んでもよく、他方、ビデオコネクタは、コンポーネントビデオ、Ｓビデオ、コンポジットビデオ、及び１つ以上の高解像度マルチメディアインタフェース（ＨＤＭＩ（登録商標））出力を様々に含んでもよい。結果として、ビデオ出力は、ＰＡＬもしくはＮＴＳＣなどのフォーマットにあってもよく、または７２０ｐ、１０８０ｉもしくは１０８０ｐの高解像度、及び４Ｋ、ＨＤＲにあってもよい。
【０１３３】
オーディオ処理（生成及び復号など）は、プロセッサによって実行される。例えば、Ｐｌａｙｓｔａｔｉｏｎ３デバイスのオペレーティングシステムは、Ｄｏｌｂｙ（登録商標）５．１サラウンドサウンド、Ｄｏｌｂｙ（登録商標）シアターサラウンド（ＤＴＳ）、及びＢｌｕ−Ｒａｙ（登録商標）ディスクからの７．１サラウンドサウンドの復号をサポートする。
【０１３４】
本実施形態では、ビデオカメラは、ＣＭＯＳ（相補型金属酸化物半導体）画像センサ（ただし、電荷結合素子（ＣＣＤ）画像センサも使用され得る）、ＬＥＤインジケータ、ならびにハードウェアベースのリアルタイムデータ圧縮及び符号化装置を含むことにより、圧縮されたビデオデータは、システムユニットによる復号のために、イントラ画像ベースのＭＰＥＧ（ｍｏｔｉｏｎ  ｐｉｃｔｕｒｅ  ｅｘｐｅｒｔ  ｇｒｏｕｐ）規格などの適切なフォーマットで送信され得る。カメラＬＥＤインジケータは、例えば、不利な照明条件を示すために、システムユニットからの適切な制御データに応答して発光するように配列されている。ビデオカメラの実施形態は、ＵＳＢ、Ｂｌｕｅｔｏｏｔｈ、Ｗｉ−Ｆｉ通信ポートを介してシステムユニットに様々に接続してもよい。ビデオカメラの実施形態は、１つ以上の関連するマイクロホンを含んでもよく、オーディオデータを送信することも可能であってもよい。ビデオカメラの実施形態では、ＣＣＤは、高解像度ビデオの取り込みに適した分解能を有してもよい。使用中、ビデオカメラによって取り込まれた画像は、例えば、ゲーム内に組み込まれてもよく、またはゲーム制御入力として解釈されてもよい。
【０１３５】
一般に、システムユニットの通信ポートのうちの１つを介してビデオカメラまたはリモコンなどの周辺デバイスとのデータ通信が正常に行われるように、デバイスドライバなどの、１つの適切なソフトウェアが提供されるべきである。デバイスドライバ技術は公知であり、ここで詳細に説明しないが、当業者は、デバイスドライバまたは同様のソフトウェアインタフェースが説明される本実施形態において必要とされ得ることを理解するであろうと言えることに留める。
【０１３６】
プロセッサは、メモリコントローラ及びデュアルバスインタフェースコントローラを含む外部入力及び出力構造、パワープロセッシングエレメントと称されるメインプロセッサ、シナジスティックプロセッシングエレメント（ＳＰＥ）と称される８つのコプロセッサ、及びエレメント相互接続バスと称される上記の構成要素を接続する環状データバス、の４つの基本構成要素を含むアーキテクチャを有する。プロセッサの総浮動小数点性能は、Ｐｌａｙｓｔａｔｉｏｎ２デバイスのエモーションエンジンの６．２ＧＦＬＯＰＳと比較して、２１８ＧＦＬＯＰＳである。
【０１３７】
パワープロセッシングエレメント（ＰＰＥ）は、３．２ＧＨｚの内部クロックにより動作する双方向同時マルチスレッディングパワー準拠のＰｏｗｅｒＰＣコア（ＰＰＵ）に基づいている。このコアは、５１２ｋＢのレベル２（Ｌ２）キャッシュ及び３２ｋＢのレベル１（Ｌ１）キャッシュを含む。ＰＰＥは、１クロックサイクル当たり８つの単一位置演算が可能であり、３．２ＧＨｚにおいて２５．６ＧＦＬＯＰＳに変換する。ＰＰＥの主要な役割は、計算負荷の大部分を扱うシナジスティックプロセッシングエレメントのコントローラとして機能することにある。動作中、ＰＰＥは、ジョブキューを保持し、シナジスティックプロセッシングエレメントのジョブをスケジュールしており、その進捗を監視する。結果として、各シナジスティックプロセッシングエレメントはカーネルを実行する。カーネルの役割は、ジョブを取り出して、これを実行し、ＰＰＥと同期させることにある。
【０１３８】
各シナジスティックプロセッシングエレメント（ＳＰＥ）は、各シナジスティックプロセッシングユニット（ＳＰＵ）及び各メモリフローコントローラ（ＭＦＣ）を含み、さらに、ＭＦＣは、各ダイナミックメモリアクセスコントローラ（ＤＭＡＣ）、各メモリ管理ユニット（ＭＭＵ）及びバスインタフェース（図示せず）を含む。各ＳＰＵは、３．２ＧＨｚにおいてクロック動作し、原則として４ＧＢに拡張可能な、２５６ｋＢのローカルＲＡＭを含むＲＩＳＣプロセッサである。各ＳＰＥは、単精度性能の理論的な２５．６ＧＦＬＯＰＳを示す。ＳＰＵは、単一のクロックサイクルにおいて、４つの単精度浮動小数点部、４つの３２ビット数、８つの１６ビット整数または１６個の８ビット整数を処理することができる。同一のクロックサイクルにおいて、ＳＰＵはまた、メモリ演算を実行することができる。ＳＰＵは、システムメモリＸＤＲＡＭ１４２６に直接アクセスしない。ＳＰＵによって形成された６４ビットアドレスはＭＦＣに渡され、ＭＦＣは、そのＤＭＡコントローラに対し、エレメント相互接続バス及びメモリコントローラを介してメモリにアクセスするように指示する。
【０１３９】
エレメント相互接続バス（ＥＩＢ）は、上記のプロセッサエレメント、すなわちＰＰＥ、メモリコントローラ、デュアルバスインタフェース、及び８つのＳＰＥ、合計して１２個のパーティシパントを接続する、プロセッサの内部の論理的に環状の通信バスである。パーティシパントは、クロックサイクルごとに８バイトのレートでバスに対する読み出し及び書き込みを同時に行うことができる。以前に述べたように、各ＳＰＥは、より長い読み出し及び書き込みシーケンスをスケジューリングするためのＤＭＡＣを含む。ＥＩＢは、４つのチャネルを備え、そのうち２つは時計回り方向であり、残り２つは反時計回り方向である。結果として、１２個のパーティシパントについて、任意の２つのパーティシパント間の最長のステップ方式のデータフローは、適切な方向で６ステップとなる。従って、パーティシパント間のアービトレーションを通じて完全に利用された場合、１２個のスロットの理論上のピーク瞬間ＥＩＢ帯域幅は、１クロック当たり９６Ｂとなる。これは、３．２ＧＨｚ（ギガヘルツ）のクロックレートにおける３０７．２ＧＢ／ｓ（ギガバイト／秒）の理論上のピーク帯域幅に等しい。
【０１４０】
メモリコントローラは、Ｒａｍｂｕｓ  Ｉｎｃｏｒｐｏｒａｔｅｄによって開発されたＸＤＲＡＭインタフェースを含む。メモリコントローラは、２５．６ＧＢ／ｓの理論上のピーク帯域幅を有するＲａｍｂｕｓ  ＸＤＲＡＭ１４２６とインタフェースする。
【０１４１】
デュアルバスインタフェースは、Ｒａｍｂｕｓ  ＦｌｅｘＩＯ（登録商標）システムインタフェースを含む。インタフェースは、５つの経路が受信用、７つの経路が送信用である、それぞれが８ビット幅である１２個のチャネルに編成される。これにより、コントローラを介したプロセッサとＩ／Ｏブリッジとの間、及びコントローラを介したリアリティシンセサイザグラフィックスユニットの間で、理論上のピーク帯域幅が６２．４ＧＢ／ｓ（送信３６．４ＧＢ／ｓ、受信２６ＧＢ／ｓ）が得られる。
【０１４２】
プロセッサによってリアリティシンセサイザグラフィックスユニットに送信されるデータは通常、表示リストを含み、これは、頂点を描画し、ポリゴンにテクスチャを貼り付け、照明条件を指定するなどのための一連のコマンドである。
【０１４３】
実施形態は、現実世界のユーザをさらに良好に識別し、アバターまたはシーンの活動を指示するために深度データを取り込むことを含んでもよい。オブジェクトは、人が保持しているものとすることができ、または人の手とすることもできる。この説明では、用語「深度カメラ」及び「三次元カメラ」は、二次元画素情報のみならず距離または深度情報を取得することが可能である任意のカメラを指す。例えば、深度カメラは、制御された赤外線照明を利用して距離情報を取得することができる。別の例示的な深度カメラは、２台の基準カメラを使用して距離情報を三角測量によって求める立体カメラ対とすることができる。同様に、用語「深度検知デバイス」は、距離情報と共に二次元画素情報を取得可能である任意の種類のデバイスを指す。
【０１４４】
三次元画像における最新の進歩により、リアルタイムのインタラクティブコンピュータのアニメーションの可能性を広げる機会が与えられている。特に、新たな「深度カメラ」は、通常の二次元ビデオ画像に加えて三次元の取り込み及びマッピングを行う能力を提供する。新たな深度データにより、本発明の実施形態では、他のオブジェクトの背後を含む、ビデオシーン内の各種の場所に、コンピュータによって生成されたオブジェクトをリアルタイムで配置することが可能になる。
【０１４５】
その上、本発明の実施形態は、ユーザに対してリアルタイムのインタラクティブゲーミング体験を提供する。例えば、ユーザは、コンピュータによって生成された各種のオブジェクトとリアルタイムでインタラクションを行うことができる。さらに、ビデオシーンは、ユーザの体験を向上させるようにリアルタイムで変更することができる。例えば、コンピュータによって生成されたコスチュームをユーザの服の上に装着させることができ、コンピュータによって生成された光源を利用してビデオシーン内に仮想の影を投影することができる。よって、本発明の実施形態及び深度カメラを使用して、ユーザは、自分のリビングルーム内でインタラクティブ環境を体験することができる。通常のカメラと同様に、深度カメラは、ビデオ画像を含む複数の画素についての二次元データを取り込む。これらの値は、画素についての色値であり、通常は、各画素についての赤、緑、及び青（ＲＧＢ）の値である。この方式では、カメラによって取り込まれたオブジェクトは、モニタ上では二次元オブジェクトとして見える。
【０１４６】
本発明の実施形態形態はまた、分散化された画像処理構成について考察する。例えば、本発明は、ＣＰＵ内またはＣＰＵ及び他の１つの素子内など、１つの場所またはさらには２つの場所内で行われる取り込まれた画像及び表示画像の処理に限定されない。例えば、入力画像処理は、処理を実行することができる関連のＣＰＵ、プロセッサまたはデバイス内でそのまま容易に行うことができ、基本的には、画像処理の全てを、相互接続システム全体に分散させることができる。従って、本発明は、いずれかの特定の画像処理ハードウェア回路及び／またはソフトウェアに限定されない。本明細書で説明される実施形態は、汎用ハードウェア回路及び／またはソフトウェアのいずれかの特定の組み合わせにも、処理構成要素によって実行される命令についてのいずれかの特定のソースにも限定されない。
【０１４７】
上記の実施形態を念頭に置いて、本発明は、コンピュータシステムに格納されたデータに関連した各種のコンピュータ実装動作を採用し得ることが理解されるべきである。これらの動作は、物理量の物理的操作を必要とする動作を含む。通常、必須ではないが、これらの量は、格納され、変換され、組み合わされ、比較され、さもなければ操作されることが可能な電気または磁気信号の形をとる。さらに、実行される操作は、多くの場合、作成すること、識別すること、判定すること、または比較することなどの用語で参照される。
【０１４８】
本発明の一部を構成する本明細書で説明される動作はいずれも有用な機械動作である。本発明はまた、これらの動作を実行するためのデバイスまたは装置に関する。装置は、必要とされる目的のために特別に構成することができ、または装置は、コンピュータに格納されたコンピュータプログラムによって選択的に起動または構成された汎用コンピュータとすることができる。特に、本明細書の教示に従って記述されたコンピュータプログラムを用いて各種の汎用機械を使用することができ、または必要とされる動作を実行するためにより特殊化された装置を構築することがより便利であり得る。
【０１４９】
上述の発明は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースの、またはプログラム可能な家庭用電化製品、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成によって実施されてもよい。本発明はまた、通信ネットワークを通じてリンクされたリモート処理デバイスによってタスクが実行される分散型コンピューティング環境で実施されてもよい。
【０１５０】
本発明はまた、コンピュータ可読媒体上のコンピュータ可読コードとして具現化されてもよい。コンピュータ可読媒体は、電磁搬送波を含む、後でコンピュータシステムによって読み出すことが可能なデータを格納することができる任意のデータストレージデバイスである。コンピュータ可読媒体の例には、ハードドライブ、ネットワーク接続ストレージ（ＮＡＳ）、リードオンリーメモリ、ランダムアクセスメモリ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、ならびに他の光学及び非光学データストレージデバイスが含まれる。コンピュータ可読媒体はまた、コンピュータ可読コードが分散方式で格納及び実行されるように、ネットワーク結合コンピュータシステム上に分散させることができる。
【０１５１】
前述の発明は、理解を明確にするために幾分詳細に説明されてきたが、添付された特許請求の範囲内である変更及び修正が実施され得ることは明らかであろう。従って、本実施形態は例示的であって限定的ではないとみなされるべきであり、本発明は本明細書に与えられた詳細に限定されるものではなく、添付された特許請求の範囲及び均等物の範囲内で修正され得る。
【図１】
2021513702.tif 000003
【図２】
2021513702.tif 000004
【図３】
2021513702.tif 000005
【図３Ａ】
2021513702.tif 000006
【図３Ｂ】
2021513702.tif 000007
【図３Ｃ】
2021513702.tif 000008
【図３Ｄ】
2021513702.tif 000009
【図４】
2021513702.tif 000010
【図５Ａ】
2021513702.tif 000011
【図５Ｂ】
2021513702.tif 000012
【図５Ｃ】
2021513702.tif 000013
【図５Ｄ】
2021513702.tif 000014
【図５Ｅ】
2021513702.tif 000015
【図５Ｆ】
2021513702.tif 000016
【図６Ａ】
2021513702.tif 000017
【図６Ｂ】
2021513702.tif 000018
【図７Ａ】
2021513702.tif 000019
【図７Ｂ】
2021513702.tif 000020
【図８】
2021513702.tif 000021
【図９】
2021513702.tif 000022
【図１０】
2021513702.tif 000023
【国際調査報告】
2021513702.tif 000024
2021513702.tif 000025
2021513702.tif 000026
2021513702.tif 000027