(57)【要約】      （修正有）【課題】３Ｄ環境においてコンテンツをレンダリングするシステム、方法、デバイス及び他の技法を提供する。【解決手段】クライアントコンピューティングシステム３００は、３Ｄ環境を定義し、３Ｄ環境において仮想オブジェクトを識別する、第1のデータを記憶するメモリサブシステムと、３Ｄ環境内に仮想オブジェクトとともに表示するためにネットワークを介してサードパーティコンテンツに対する要求を送信し、要求に応じてサードパーティコンテンツを受信する通信インターフェースと、仮想オブジェクトが第1のサードパーティコンテンツのセットを表示する第1のモードで、３Ｄ環境の指定された場所に仮想オブジェクトをレンダリングすることを含むディスプレイデバイス上に提示するための３Ｄ環境をレンダリングするためにメモリサブシステムから第1のデータを使用するレンダリングエンジンと、入力処理装置と、仮想オブジェクトマネージャと、を含む。【選択図】図３
2020098618.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングシステムであって、
(i)3次元(3D)環境を定義し、(ii)前記3D環境において仮想オブジェクトを識別する、第1のデータを記憶するように構成されるメモリサブシステムと、
前記3D環境内に前記仮想オブジェクトとともに表示するためにネットワークを介してサードパーティコンテンツに対する要求を送信し、かつ前記要求に応じてサードパーティコンテンツを受信するように構成される通信インターフェースと、
前記仮想オブジェクトが第1のサードパーティコンテンツのセットを表示する第1のモードで前記3D環境の指定された場所に前記仮想オブジェクトをレンダリングすることを含む前記コンピューティングシステムに結合されるディスプレイデバイス上に提示するための前記3D環境をレンダリングするために前記メモリサブシステムから前記第1のデータを使用するように構成される、1つまたは複数のプロセッサを含むレンダリングエンジンと、
前記3D環境における前記仮想オブジェクトとのユーザインタラクションを検出するように構成される、1つまたは複数のプロセッサを含む入力処理装置と、
前記3D環境における前記仮想オブジェクトとの第1のユーザインタラクションの指示を前記入力処理装置から受信し、それに応答して前記仮想オブジェクトが前記第1のサードパーティコンテンツのセットを表示する前記第1のモードから前記仮想オブジェクトが第2のサードパーティコンテンツのセットを表示する第2のモードに前記仮想オブジェクトを遷移させるよう前記レンダリングエンジンに命令するように構成される、1つまたは複数のプロセッサを含む仮想オブジェクトマネージャと
を備える、コンピューティングシステム。
【請求項２】
前記ディスプレイがヘッドマウントディスプレイであり、
前記3D環境が、前記ヘッドマウントディスプレイを使用して閲覧されるように構成される仮想現実(VR)環境である、
請求項1に記載のコンピューティングシステム。
【請求項３】
前記レンダリングエンジンが、前記システムが前記第2のサードパーティコンテンツのセットを取得する前に、前記仮想オブジェクトを前記第1のモードでレンダリングするように構成され、
前記通信インターフェースが、(i)前記仮想オブジェクトとのユーザインタラクションが発生しようとしていると識別すること、または(ii)前記仮想オブジェクトとの前記第1のユーザインタラクションが発生したと識別することに基づいて、前記第2のサードパーティコンテンツのセットに対する要求を送信するように構成される、
請求項1または2に記載のコンピューティングシステム。
【請求項４】
前記第1のサードパーティコンテンツのセットが画像の集合を備え、
前記第1のモードにおいて、前記仮想オブジェクトが、3D幾何学的形状を形成する多角形表面の集合を備え、
前記レンダリングエンジンが、前記多角形表面の集合の各多角形表面上に前記画像の集合からのそれぞれの画像を表示することによって、前記第1のモードにおいて前記仮想オブジェクトをレンダリングするように構成される、
請求項1から3のいずれか一項に記載のコンピューティングシステム。
【請求項５】
前記仮想オブジェクトが前記第1のモードでレンダリングされるとき、前記仮想オブジェクトの前記多角形表面の集合が立方体を形成する、請求項4に記載のコンピューティングシステム。
【請求項６】
前記レンダリングエンジンが、前記仮想オブジェクトを前記第1のモードから前記第2のモードに遷移させる前記仮想オブジェクトマネージャからの命令の受信に応答して、前記第2のサードパーティコンテンツのセットを現すために前記立方体をアニメーション化するように構成される、請求項4または5に記載のコンピューティングシステム。
【請求項７】
前記画像の集合の各画像が、同じトピックまたはエンティティに関連するコンテンツを表す、請求項4から6のいずれか一項に記載のコンピューティングシステム。
【請求項８】
前記入力処理装置が、前記3D環境におけるユーザの現在の閲覧位置を移動させるためのユーザ入力を受信することと、前記ユーザの現在の閲覧位置と前記3D環境における前記仮想オブジェクトの位置との間の関係を検出することとを行うように構成され、
前記仮想オブジェクトマネージャが、前記ユーザの現在の閲覧位置と前記3D環境における前記仮想オブジェクトの前記位置との間の前記関係が1つまたは複数の基準を満たすという判定に基づいて、前記仮想オブジェクトを前記第1のモードから前記第2のモードに遷移させるように構成される、
請求項1から7のいずれか一項に記載のコンピューティングシステム。
【請求項９】
前記ユーザの現在の閲覧位置と前記仮想オブジェクトの前記位置との間の前記関係が、前記ユーザの現在の閲覧位置と前記仮想オブジェクトの前記位置との間の距離であり、前記仮想オブジェクトマネージャが、前記ユーザの現在の閲覧位置と前記3D環境における前記仮想オブジェクトの前記位置との間の前記距離がしきい値距離未満であるという判定に基づいて、前記仮想オブジェクトを前記第1のモードから前記第2のモードに遷移させるように構成される、請求項8に記載のコンピューティングシステム。
【請求項１０】
前記入力処理装置が、前記3D環境におけるユーザの視線の方向を監視することと、前記ユーザの視線が前記仮想オブジェクトの方向にあると識別することに基づいて前記第1のユーザインタラクションを検出することとを行うように構成される、請求項1から9のいずれか一項に記載のコンピューティングシステム。
【請求項１１】
前記仮想オブジェクトマネージャが、前記ユーザの視線が所定の時間長の間前記仮想オブジェクトの方向に維持されたと識別することに基づいて、前記仮想オブジェクトを前記第1のモードから前記第2のモードに遷移させるように構成される、請求項10に記載のコンピューティングシステム。
【請求項１２】
前記入力処理装置が、ハンドベースのコントローラから入力を受信することと、ユーザの視線が前記3D環境における前記仮想オブジェクトの方向にある間に前記ハンドベースのコントローラから受信した第1の入力に基づいて前記第1のユーザインタラクションを検出することとを行うように構成される、請求項1から11のいずれか一項に記載のコンピューティングシステム。
【請求項１３】
前記仮想オブジェクトマネージャが、前記入力処理装置からの前記仮想オブジェクトとの前記第1のユーザインタラクションの前記指示の受信に応答して、前記3D環境の外側のユーザ通知の生成をトリガするようにさらに構成され、前記ユーザ通知が、前記第1のサードパーティコンテンツのセットに関連付けられるトピックまたはエンティティに関連する、請求項1から12のいずれか一項に記載のコンピューティングシステム。
【請求項１４】
前記仮想オブジェクトが前記第2のモードで表示する前記第2のサードパーティコンテンツのセットのタイプは、前記仮想オブジェクトが前記第1のモードで表示する前記第1のサードパーティコンテンツのセットのタイプと異なる、請求項1から13のいずれか一項に記載のコンピューティングシステム。
【請求項１５】
前記仮想オブジェクトが前記第1のモードで表示する前記第1のサードパーティコンテンツのセットの前記タイプが画像であり、前記仮想オブジェクトが前記第2のモードで表示する前記第2のサードパーティコンテンツのセットの前記タイプがビデオまたは3Dモデルである、請求項14に記載のコンピューティングシステム。
【請求項１６】
コンピューティングシステムのディスプレイ上に3次元(3D)環境を表示するステップと、
前記コンピューティングシステムによって、前記3D環境に配置される仮想オブジェクトがサードパーティコンテンツを提示するために適格であることを識別するステップと、
前記コンピューティングシステムによって、前記仮想オブジェクトのための第1のサードパーティコンテンツのセットを取得するステップと、
前記コンピューティングシステムによって、前記仮想オブジェクトが前記第1のサードパーティコンテンツのセットを提示する第1のモードにおいて前記3D環境内の前記仮想オブジェクトをレンダリングするステップと、
前記3D環境における前記仮想オブジェクトとのユーザインタラクションが所定の基準のセットを満たすことを識別するステップと、
前記3D環境における前記仮想オブジェクトとの前記ユーザインタラクションが前記所定の基準のセットを満たすと識別することに応答して、前記仮想オブジェクトが前記第1のサードパーティコンテンツのセットとは異なる第2のサードパーティコンテンツのセットを提示する第2のモードにおいて前記3D環境における前記仮想オブジェクトを再レンダリングするステップと
を備える、コンピュータ実装方法。
【請求項１７】
前記第1のサードパーティコンテンツのセットが画像の集合を備え、前記第1のモードで前記仮想オブジェクトをレンダリングすることが、前記画像の集合からのそれぞれの画像を示す立方体の各面上に前記立方体をレンダリングすることを備え、前記第2のサードパーティコンテンツのセットがビデオを備え、前記第2のモードで前記仮想オブジェクトを再レンダリングすることが、前記3D環境において前記ビデオを再生することを備える、請求項16に記載のコンピュータ実装方法。
【請求項１８】
前記3D環境における前記仮想オブジェクトとの前記ユーザインタラクションまたは別のユーザインタラクションを識別することに応答して、前記コンピューティングシステムとは別個のサーバから前記第2のコンテンツのセットを検索するステップをさらに備える、請求項16または17に記載のコンピュータ実装方法。
【請求項１９】
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
表示するための3次元(3D)環境を提供することと、
前記3D環境に配置される仮想オブジェクトがサードパーティコンテンツを提示するために適格であることを識別することと、
前記仮想オブジェクトのための第1のサードパーティコンテンツのセットを取得することと、
前記仮想オブジェクトが前記第1のサードパーティコンテンツのセットを提示する第1のモードにおいて前記3D環境内の前記仮想オブジェクトをレンダリングすることと、
前記3D環境における前記仮想オブジェクトとのユーザインタラクションが所定の基準のセットを満たすことを識別することと、
前記3D環境における前記仮想オブジェクトとの前記ユーザインタラクションが前記所定の基準のセットを満たすと識別することに応答して、前記仮想オブジェクトが前記第1のサードパーティコンテンツのセットとは異なる第2のサードパーティコンテンツのセットを提示する第2のモードにおいて前記3D環境における前記仮想オブジェクトを再レンダリングすることと
を備える動作を実行させる命令を記憶した1つまたは複数のコンピュータ可読記録媒体と
を備える、コンピューティングシステム。
【請求項２０】
前記第1のサードパーティコンテンツのセットが画像の集合を備え、前記第1のモードで前記仮想オブジェクトをレンダリングすることが、前記画像の集合からのそれぞれの画像を示す立方体の各面上に前記立方体をレンダリングすることを備え、前記第2のサードパーティコンテンツのセットがビデオを備え、前記第2のモードで前記仮想オブジェクトを再レンダリングすることが、前記3D環境において前記ビデオを再生することを備える、請求項19に記載のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、未使用のサードパーティコンテンツの送信を削減し、3D環境においてサードパーティコンテンツを効率的にレンダリングするための技法を含むデータ処理に関する。
【背景技術】
【０００２】
3次元(3D)仮想環境をレンダリングすることができる様々なコンピューティングシステムが開発されている。一例として仮想現実(VR)システムは、ヘッドマウントディスプレイを装着したユーザに提示される3D環境をレンダリングしてもよい。ヘッドマウントディスプレイは、ユーザpがスクリーンおよび表示された3D環境を閲覧する電子ディスプレイスクリーンおよび光学レンズを含んでもよい。本システムは、3D環境をスクリーン上で立体的にレンダリングすることが可能であり、ヘッドマウントディスプレイのレンズを通して閲覧したときにユーザに奥行きの錯覚を与える。VRシステムの中には没入型ユーザ経験を提供するものがあるため、ユーザは自分が仮想環境内に実際に存在するかのように感じる。VRシステムの中には、ユーザが3D環境を見回し、3D環境を動き回り、3D環境内の仮想オブジェクトを操作することを可能にするものがある。
【発明の概要】
【課題を解決するための手段】
【０００３】
本明細書は、ネットワークを介する未使用のサードパーティコンテンツの送信を削減し、3D環境においてサードパーティコンテンツを効率的にレンダリングするためのシステム、方法、デバイス、および他の技法について説明する。一般に、仮想現実システムまたは拡張現実システムなどのクライアントコンピューティングシステムは、1つまたは複数のサードパーティコンテンツ適格(3PCE)仮想オブジェクトを含む3D環境を提示することが可能である。3PCE仮想オブジェクトは、サードパーティコンテンツ(たとえば、3D環境を提供するエンティティとは異なるエンティティによって提供されるコンテンツなど)を3D環境の特定の場所に提示するように構成されるオブジェクト(たとえば、立方体、球体、円柱、または他の幾何学的形状などの3Dオブジェクト)である。3PCE仮想オブジェクトは、オブジェクトに関連付けられる複数の表示モードのうちの1つで任意の所与の時間に表示されてもよい。3PCE仮想オブジェクトとのユーザインタラクションなどのトリガイベントが検出されると、本システムは、オブジェクトをある表示モードから別の表示モードに遷移させることなどによって、仮想オブジェクトを更新してもよい。いくつかの実装形態では、3PCE仮想オブジェクトとのユーザのインタラクションは、オブジェクトによって表示されるサードパーティコンテンツのタイプを変更するために表示されたサードパーティコンテンツに関連付けられる外部リソース(たとえば、ウェブサイトまたはアプリケーション)へのポータル(「ポータルリソース」とも呼ばれる)を開くためにまたは表示されたサードパーティコンテンツに関連する通知を3D環境の外側の外部環境において生成するためにオブジェクトに新しいサードパーティコンテンツのセットを表示させる。
【０００４】
本明細書に記載される主題のいくつかの実装形態は、コンピューティングシステムを含む。コンピューティングシステムは、メモリサブシステムと、通信インターフェースと、レンダリングエンジンと、入力処理装置と、仮想オブジェクトマネージャとを含む。メモリサブシステムは、(i)3次元(3D)環境を定義し、(ii)3D環境において仮想オブジェクトを識別する、第1のデータを記憶するように構成される。通信インターフェースは、3D環境内に仮想オブジェクトとともに表示するためにネットワークを介してサードパーティコンテンツに対する要求を送信し、要求に応じてサードパーティコンテンツを受信するように構成される。レンダリングエンジンは、仮想オブジェクトが第1のサードパーティコンテンツのセットを表示する第1のモードで3D環境の指定された場所に仮想オブジェクトをレンダリングすることを含むコンピューティングシステムに結合されるディスプレイデバイス上に提示するための3D環境をレンダリングするためにメモリサブシステムから第1のデータを使用するように構成される。入力処理装置は、3D環境における仮想オブジェクトとのユーザインタラクションを検出するように構成される。仮想オブジェクトマネージャは、3D環境における仮想オブジェクトとの第1のユーザインタラクションの指示を入力処理装置から受信し、それに応答して仮想オブジェクトが第1のサードパーティコンテンツのセットを表示する第1のモードから仮想オブジェクトが第2のサードパーティコンテンツのセットを表示する第2のモードに仮想オブジェクトを遷移させるようレンダリングエンジンに命令するように構成される。
【０００５】
これらおよび他の実装形態は、以下の特徴のうちの1つまたは複数を任意で含むことが可能である。
【０００６】
ディスプレイはヘッドマウントディスプレイであることが可能である。3D環境は、ヘッドマウントディスプレイを使用して閲覧されるように構成される仮想現実(VR)環境であることが可能である。
【０００７】
レンダリングエンジンは、システムが第2のサードパーティコンテンツのセットを取得する前に、仮想オブジェクトを第1のモードでレンダリングするように構成されてもよい。通信インターフェースは、(i)仮想オブジェクトとのユーザインタラクションが発生しようとしていると識別すること、または(ii)仮想オブジェクトとの第1のユーザインタラクションが発生したと識別することに基づいて、第2のサードパーティコンテンツのセットに対する要求を送信するように構成されてもよい。
【０００８】
第1のサードパーティコンテンツのセットは、画像の集合を含むことが可能である。第1のモードにおいて、仮想オブジェクトは、3D幾何学的形状を形成する多角形表面の集合を含むことが可能である。レンダリングエンジンは、多角形表面の集合の各多角形表面上に、画像の集合からのそれぞれの画像を表示することによって、第1のモードで仮想オブジェクトをレンダリングするように構成されてもよい。
【０００９】
仮想オブジェクトが第1のモードでレンダリングされるとき、仮想オブジェクトの多角形表面の集合は立方体を形成することが可能である。
【００１０】
レンダリングエンジンは、仮想オブジェクトを第1のモードから第2のモードに遷移させる仮想オブジェクトマネージャからの命令の受信に応答して、第2のサードパーティコンテンツのセットを現すために立方体をアニメーション化するように構成されてもよい。
【００１１】
画像の集合は、それぞれ同じトピックまたはエンティティに関連するコンテンツを表すことが可能である。
【００１２】
入力処理装置は、3D環境におけるユーザの現在の閲覧位置を移動させるためのユーザ入力を受信することと、ユーザの現在の閲覧位置と3D環境における仮想オブジェクトの位置との間の関係を検出することとを行うように構成されてもよい。
【００１３】
仮想オブジェクトマネージャは、ユーザの現在の閲覧位置と3D環境における仮想オブジェクトの位置との間の関係が1つまたは複数の基準を満たすという判定に基づいて、仮想オブジェクトを第1のモードから第2のモードに遷移させるように構成されてもよい。
【００１４】
ユーザの現在の閲覧位置と仮想オブジェクトの位置との間の関係は、ユーザの現在の閲覧位置と仮想オブジェクトの位置との間の距離とすることが可能であり、仮想オブジェクトマネージャは、ユーザの現在の閲覧位置と3D環境における仮想オブジェクトの位置との間の距離がしきい値距離未満であるという判定に基づいて、仮想オブジェクトを第1のモードから第2のモードに遷移させるように構成される。
【００１５】
入力処理装置は、3D環境におけるユーザの視線の方向を監視することと、ユーザの視線が仮想オブジェクトの方向にあると識別することに基づいて第1のユーザインタラクションを検出することとを行うように構成されてもよい。
【００１６】
仮想オブジェクトマネージャは、ユーザの視線が所定の時間長の間仮想オブジェクトの方向に維持されたと識別することに基づいて、仮想オブジェクトを第1のモードから第2のモードに遷移させるように構成されてもよい。
【００１７】
入力処理装置は、ハンドベースのコントローラから入力を受信することと、ユーザの視線が3D環境における仮想オブジェクトの方向にある間にハンドベースのコントローラから受信した第1の入力に基づいて第1のユーザインタラクションを検出することとを行うように構成されてもよい。
【００１８】
仮想オブジェクトマネージャは、入力処理装置からの、仮想オブジェクトとの第1のユーザインタラクションの指示の受信に応答して、3D環境の外側のユーザ通知の生成をトリガするようにさらに構成されることが可能であり、ユーザ通知は、第1のサードパーティコンテンツのセットに関連付けられるトピックまたはエンティティに関連する。
【００１９】
仮想オブジェクトが第2のモードで表示する第2のサードパーティコンテンツのセットのタイプは、仮想オブジェクトが第1のモードで表示する第1のサードパーティコンテンツのセットのタイプと異なることが可能である。
【００２０】
仮想オブジェクトが第1のモードで表示する第1のサードパーティコンテンツのセットのタイプは、画像であることが可能である。仮想オブジェクトが第2のモードで表示する第2のサードパーティコンテンツのセットのタイプは、ビデオまたは3Dモデルであることが可能である。
【００２１】
本明細書で開示される主題のいくつかの実装形態は、コンピューティングシステムによって実行される方法を含む。本方法は、コンピューティングシステムのディスプレイ上に3次元(3D)環境を表示するステップと、コンピューティングシステムによって、3D環境に配置される仮想オブジェクトがサードパーティコンテンツを提示するために適格であることを識別するステップと、コンピューティングシステムによって、仮想オブジェクトのための第1のサードパーティコンテンツのセットを取得するステップと、コンピューティングシステムによって、仮想オブジェクトが第1のサードパーティコンテンツのセットを提示する第1のモードにおいて3D環境内の仮想オブジェクトをレンダリングするステップと、3D環境における仮想オブジェクトとのユーザインタラクションが所定の基準のセットを満たすことを識別するステップと、3D環境における仮想オブジェクトとのユーザインタラクションが所定の基準のセットを満たすと識別することに応答して、仮想オブジェクトが第1のサードパーティコンテンツのセットとは異なる第2のサードパーティコンテンツのセットを提示する第2のモードにおいて3D環境における仮想オブジェクトを再レンダリングするステップとを含むことが可能である。
【００２２】
これらおよび他の実装形態は、以下の特徴のうちの1つまたは複数を任意で含むことが可能である。ディスプレイはヘッドマウントディスプレイであることが可能である。3D環境は、ヘッドマウントディスプレイを使用して閲覧されるように構成される仮想現実(VR)環境であることが可能である。仮想オブジェクトは、システムが第2のサードパーティコンテンツのセットを取得する前に、第1のモードでレンダリングされてもよい。本方法は、(i)仮想オブジェクトとのユーザインタラクションが発生しようとしていると識別すること、または(ii)仮想オブジェクトとの第1のユーザインタラクションが発生したと識別することに基づいて、第2のサードパーティコンテンツのセットに対する要求を送信するステップをさらに備えることが可能である。第1のモードにおいて、仮想オブジェクトは、3D幾何学的形状を形成する多角形表面の集合を含むことが可能である。第1のサードパーティコンテンツのセットは、画像の集合を含むことが可能である。第1のモードで仮想オブジェクトをレンダリングすることは、多角形表面の集合の各多角形表面上に画像の集合からのそれぞれの画像をレンダリングすることを含むことが可能である。第1のモードで仮想オブジェクトをレンダリングすることは、画像の集合からのそれぞれの画像を示す立方体の各面上にその立方体をレンダリングすることを含むことが可能である。第2のサードパーティコンテンツのセットはビデオを含むことが可能であり、第2のモードで仮想オブジェクトを再レンダリングすることは、3D環境においてビデオを再生することを含む。第2のモードで仮想オブジェクトを再レンダリングすることは、第2のサードパーティコンテンツのセットを現すために立方体をアニメーション化することを含むことが可能である。画像の集合は、それぞれ同じトピックまたはエンティティに関連するコンテンツを表すことが可能である。本方法は、3D環境におけるユーザの現在の閲覧位置を移動させるためのユーザ入力を受信するステップと、ユーザの現在の閲覧位置と3D環境における仮想オブジェクトの位置との間の関係を検出するステップとをさらに備えることが可能である。第2のモードで仮想オブジェクトを再レンダリングすることは、ユーザの現在の閲覧位置と3D環境における仮想オブジェクトの位置との間の関係が1つまたは複数の基準を満たすという判定に基づくことが可能である。ユーザの現在の閲覧位置と仮想オブジェクトの位置との間の関係は、ユーザの現在の閲覧位置と仮想オブジェクトの位置との間の距離とすることが可能であり、第2のモードで仮想オブジェクトを再レンダリングすることは、ユーザの現在の閲覧位置と3D環境における仮想オブジェクトの位置との間の距離がしきい値距離未満であるという判定に基づくことが可能である。本方法は、3D環境におけるユーザの視線の方向を監視するステップと、ユーザの視線が仮想オブジェクトの方向にあると識別することに基づいて第1のユーザインタラクションを検出するステップとをさらに備えることが可能である。第2のモードで仮想オブジェクトを再レンダリングすることは、ユーザの視線が所定の時間長の間仮想オブジェクトの方向に維持されたと識別することに基づくことが可能である。本方法は、ハンドベースのコントローラから入力を受信するステップと、ユーザの視線が3D環境における仮想オブジェクトの方向にある間にハンドベースのコントローラから受信した第1の入力に基づいて第1のユーザインタラクションを検出するステップとをさらに備えることが可能である。本方法は、仮想オブジェクトとの第1のユーザインタラクションの指示の受信に応答して、3D環境の外側のユーザ通知の生成をトリガするステップをさらに備えることが可能であり、ユーザ通知は、第1のサードパーティコンテンツのセットに関連付けられるトピックまたはエンティティに関連する。仮想オブジェクトが第2のモードで表示する第2のサードパーティコンテンツのセットのタイプは、仮想オブジェクトが第1のモードで表示する第1のサードパーティコンテンツのセットのタイプと異なることが可能である。仮想オブジェクトが第1のモードで表示する第1のサードパーティコンテンツのセットのタイプは、画像であることが可能である。仮想オブジェクトが第2のモードで表示する第2のサードパーティコンテンツのセットのタイプは、ビデオまたは3Dモデルであることが可能である。
【００２３】
本システムは、3D環境における仮想オブジェクトとのユーザインタラクションまたは別のユーザインタラクションを識別することに応答して、コンピューティングシステムとは別個のサーバからコンテンツの第2のセットを検索することができる。
【００２４】
本明細書で開示される主題のいくつかの実装形態は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、本明細書で開示された方法のいずれかを実行させる命令を記憶した1つまたは複数の非一時的コンピュータ可読媒体を含む。
【００２５】
本明細書に記載される主題のいくつかの実装形態は、ある場合には、以下の利点のうちの1つまたは複数を実現してもよい。第1に、コンピューティングシステムは、最初にレンダリングされたときに(たとえば、オブジェクトを異なる表示状態に遷移させるトリガリングイベントが発生する前に)オブジェクト上に表示するために適格なコンテンツのタイプおよび/またはフォーマットを制約することによって、3D環境においてサードパーティコンテンツを含む仮想オブジェクトをより効率的にレンダリングしてもよい。たとえば、いくつかの実装形態では、本システムは、ユーザが表示された画像に関心を表すためにオブジェクトとインタラクションする前に、最大サイズ制約を超えない画像のみをオブジェクト上に表示してもよい。大きすぎる画像または他のタイプのメディアフォーマット(たとえば、オーディオ、ビデオ)は、オブジェクトの初期表示モードでオブジェクト上に表示されるコンテンツのプライマリセットから禁止されてもよい。そのような制約は、オブジェクトをレンダリングするために必要とされる計算需要を低減することによって、オブジェクトが3D環境においてより効率的にレンダリングされるのを助けることが可能である。さらに、タイプおよび/またはフォーマットの制約の結果として適格なサードパーティコンテンツのファイルサイズが縮小されてもよく、コンテンツ配信システムの遠隔サーバからサードパーティコンテンツを配信する速度を上げる。
【００２６】
第2に、トリガイベントが発生するまで特定のフォーマットまたはタイプのサードパーティコンテンツの提示を遅らせることによって、3D環境をレンダリングするクライアントシステム上の計算需要が低減されてもよい。たとえば、ユーザは、3D環境を探索しながら、アイテムの複雑な3Dモデルを見たいと望む場合があるが、3Dモデルは、3D環境においてレンダリングするためには計算コストが高い場合がある。複雑な3Dモデルを直ちに表示する場合のコンピューティングリソースの枯渇を回避するために、3Dモデルは、ユーザが第1のモードで画像を有する仮想オブジェクトと最初にインタラクションした後にのみ表示されてもよく、第1のモードにおいてより軽いフットプリントモデルを使用してユーザのために3Dモデルをプレビューする(たとえば、比較的少数の多角形を有する立方体または他のオブジェクト上に画像を表示する)。
【００２７】
第3に、仮想オブジェクトのセカンダリ表示モードに関連付けられるサードパーティコンテンツに対する要求をトリガリングイベント(たとえば、仮想オブジェクトとのユーザインタラクション、または予想される仮想オブジェクトとのユーザインタラクション)が発生したことが検出されるまで延期させることによって、未使用のサードパーティコンテンツの送信が回避または低減されてもよい。たとえば、ユーザがオブジェクトとインタラクションした後に仮想オブジェクトがビデオを提示するように構成される場合、ビデオはコンテンツ配信システムのサーバからクライアントシステムに直ちに送信されない場合がある。代わりに、いくつかの実装形態では、ビデオはユーザが3D環境内においてオブジェクトとインタラクションした後でのみ送信されてもよい。
【００２８】
第4に、3D環境におけるユーザ経験に対する撹乱は、仮想オブジェクト上に表示するための複数のサードパーティコンテンツを統合し、3D環境の外側でユーザに外部通知を生成することによって低減されてもよい。たとえば、本明細書で説明されるような仮想オブジェクトを使用してサードパーティコンテンツを提示するための技法は、没入型VR経験への混乱を低減してもよい。
【図面の簡単な説明】
【００２９】
【図１】サードパーティコンテンツが3D環境において仮想オブジェクトとともに提示されるために配信される例示的なフレームのブロック図である。
【図２Ａ】3D環境における例示的なサードパーティコンテンツ適格(3PCE)仮想オブジェクトを示す図である。
【図２Ｂ】3D環境における例示的なサードパーティコンテンツ適格(3PCE)仮想オブジェクトを示す図である。
【図２Ｃ】3D環境における例示的なサードパーティコンテンツ適格(3PCE)仮想オブジェクトを示す図である。
【図２Ｄ】3D環境における例示的なサードパーティコンテンツ適格(3PCE)仮想オブジェクトを示す図である。
【図３】コンテンツ配信システムによって指定されたサードパーティコンテンツを示す3D環境をレンダリングするように構成される例示的なクライアントコンピューティングシステムのブロック図である。
【図４Ａ】3D環境において仮想オブジェクトをレンダリングするための例示的なプロセスのフローチャートである。
【図４Ｂ】3D環境において仮想オブジェクトをレンダリングするための例示的なプロセスのフローチャートである。
【図５】クライアントVRシステムとコンテンツ配信システムとの間の例示的なプロセスにおけるインタラクションを示すスイムレーン図である。
【図６】3PCE仮想オブジェクトとのユーザインタラクションの結果として生成された外部通知に関連付けられるコンバージョンに基づいて、3D環境におけるサードパーティコンテンツ選択を評価するための例示的なプロセスのフローチャートである。
【図７】本明細書に記載のコンピュータ実装方法、システム、デバイス、および他の技術に関連して説明した動作を実行するために使用されてもよいコンピュータシステムの概略図である。
【発明を実施するための形態】
【００３０】
図1は、サードパーティコンテンツが、仮想現実環境などの3D環境において仮想オブジェクトとともに提示されるために配信される例示的なフレームワーク100のブロック図である。例示的なフレームワーク100は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはそれらの組合せなどのネットワーク102を含む。ネットワーク102は、3Dアプリケーションサーバ104と、ユーザデバイス106と、サードパーティコンテンツサーバ108と、サードパーティコンテンツ配信システム110(コンテンツ配信システムとも呼ばれる)とを接続する。例示的なフレームワーク100は、多くの異なる3Dアプリケーションサーバ104、ユーザデバイス106、およびサードパーティコンテンツサーバ108を含んでもよい。
【００３１】
ユーザデバイス106は、ネットワーク102を介してリソース(たとえば、3Dアプリケーション)を要求および受信することができる電子デバイスである。例示的なユーザデバイス106は、パーソナルコンピュータ、モバイル通信デバイス、およびネットワーク102を介してデータを送受信することができる他のデバイスを含む。ユーザデバイス106は、通常、ネットワーク102を介するデータの送受信を容易にするためにウェブブラウザなどのユーザアプリケーションを含むが、ユーザデバイス106によって実行されるネイティブアプリケーションも、ネットワーク102を介するデータの送受信を容易にすることができる。
【００３２】
3Dリソース(たとえば、3Dアプリケーション、または3D環境の定義ファイル)は、ユーザデバイス106上の3D環境をレンダリングすることを対象とするリソースである。3Dリソースの例は、仮想現実アプリケーション、ビデオゲーム、複合現実アプリケーション、拡張現実アプリケーション、およびこれらのタイプのアプリケーションのいずれかにおいて表示されてもよい3D環境の定義を含む。3Dリソースは、1つまたは複数の3D環境、および3D環境内の仮想オブジェクトを定義するデータを含んでもよい。3Dリソースは、3Dアプリケーションサーバ104によってユーザデバイス106に提供されてもよい。たとえば、3Dアプリケーションサーバ104は、発行者ウェブサイトをホストするサーバを含むことが可能である。この例では、ユーザデバイス106は、所与の3Dリソースに対する要求を開始することが可能であり、所与の3Dリソースをホストする3Dアプリケーションサーバ104は、3Dリソースをユーザデバイス106に送信することによってその要求に応答することが可能である。いくつかの実装形態では、3Dアプリケーションサーバは、1つまたは複数の定義ファイルをユーザデバイス106に提供することが可能である。定義ファイルは、3D環境をレンダリングするためにユーザデバイス106にインストールされた3Dアプリケーションによって処理されてもよい3D環境を表すデータを含む。
【００３３】
状況によっては、所与の3Dリソースは、サードパーティコンテンツ配信システム110を参照するサードパーティタグまたはサードパーティスクリプトを含むことが可能である。これらの状況では、サードパーティタグまたはサードパーティスクリプトは、所与の3Dリソースがユーザデバイス106によって処理されるときに、ユーザデバイス106によって実行される。サードパーティタグまたはサードパーティスクリプトを実行することにより、ネットワーク102を介してサードパーティコンテンツ配信システム110に送信されるサードパーティコンテンツに対する要求112を生成するようにユーザデバイス106が構成される。たとえば、サードパーティタグまたはサードパーティスクリプトは、ユーザデバイス106がヘッダおよびペイロードデータを含むパケット化データ要求を生成することを可能にすることができる。要求112は、サードパーティコンテンツが要求されているサーバの名前(または、ネットワークの場所)、要求デバイス(たとえば、ユーザデバイス106)の名前(または、ネットワークの場所)、および/またはサードパーティコンテンツ配信システム110が、その要求に応答して提供されるサードパーティコンテンツを選択するために使用することが可能な情報などのデータを含むことができる。要求112は、ユーザデバイス106によって、ネットワーク102(たとえば、遠隔通信ネットワーク)を介してサードパーティコンテンツ配信システム110のサーバに送信される。
【００３４】
要求112は、3Dリソースを指定するデータ、サードパーティコンテンツが提示される仮想オブジェクトの特性を指定するデータ、および仮想オブジェクトが発生する3D環境の特性を指定するデータを含むことが可能である。たとえば、サードパーティコンテンツが提示される仮想オブジェクトの形状または幾何学的形状を指定するデータ、仮想オブジェクトのサイズ(たとえば、長さ、幅、高さ、および/または体積)、3D環境内の仮想オブジェクトの場所、サードパーティコンテンツを受信することが可能である仮想オブジェクト上の適格な面の数、3D環境に関連付けられる記述的キーワード、および/または仮想オブジェクト上での提示のために適格なメディアタイプが、コンテンツ配信システム110に提供されてもよい。
【００３５】
要求112はまた、ユーザが提供した情報、要求が提出された州または地域を示す地理的情報、あるいはサードパーティコンテンツが表示される環境に対するコンテキストを提供する他の情報などの他の情報に関連するデータを含むことが可能である。ユーザデバイス106のモデルを識別する情報、デバイス106の選択能力(たとえば、ハンドベースの制御が仮想オブジェクトを選択するために利用可能であるかどうか、ユーザが3D環境においてレンダリングされたアイテムを選択するためにタップすることができる制御が、ヘッドセット自体において利用可能であるかどうか)、ユーザデバイス106の構成、電子ディスプレイのタイプ(たとえば、VRデバイス106のタッチスクリーンまたはヘッドマウントディスプレイ)などのユーザデバイス106の特性を指定するデータも要求112において提供されてもよい。要求112は、たとえばパケット化ネットワークを介して送信されることが可能であり、要求112自体は、ヘッダおよびペイロードデータを有するパケット化データとしてフォーマットされてもよい。ヘッダは、パケットの宛先を指定することが可能であり、ペイロードデータは、上述の情報のいずれかを含むことが可能である。
【００３６】
サードパーティコンテンツ配信システム110は、要求112の受信、および/または要求112に含まれる情報の使用に応答して、3D環境内の仮想オブジェクト上または仮想オブジェクトの近くに提示されるサードパーティコンテンツを選択する。
【００３７】
いくつかの実装形態では、サードパーティコンテンツ配信システム110は、たとえば相互接続され、要求112に応答してサードパーティコンテンツを識別して配信する、サーバと複数のコンピューティングデバイス114のセットとを含む分散コンピューティングシステムに実装される。複数のコンピューティングデバイス114のセットは、たとえば非常に多数の利用可能なサードパーティコンテンツ(3PC1〜x)のコーパスの中から3PCE仮想オブジェクトによって提示されるために適格なサードパーティコンテンツのセットを識別するためにともに動作する。非常に多数の利用可能なサードパーティコンテンツアイテムは、たとえばサードパーティコーパスデータベース116においてインデックス付けされてもよい。各サードパーティコンテンツインデックスエントリは、対応するサードパーティコンテンツを参照し、および/または対応するサードパーティコンテンツの配信を条件付ける配信パラメータ(DP1〜DPx)(たとえば、選択基準)を含むことが可能である。
【００３８】
いくつかの実装形態では、特定のサードパーティコンテンツの配信パラメータ(たとえば、選択基準)は、サードパーティコンテンツが提示のために適格であるために(たとえば、要求112において指定された3Dリソースまたは用語によって)一致されなければならない配信キーワードを含むことが可能である。配信パラメータはまた、サードパーティコンテンツが提示のために適格であるために要求112が特定の地理的領域(たとえば、国または州)を指定する情報、および/または要求112が特定のタイプのユーザデバイス106で発信されたことを指定する情報を含むことを要求することが可能である。配信パラメータはまた、特定のサードパーティコンテンツを配信するための入札および/または予算を指定することが可能である。
【００３９】
適格なサードパーティコンテンツの識別は、複数のコンピューティングデバイス114のセット内のコンピューティングデバイス間で割り当てられる複数のタスク117a〜117cに分割されてもよい。たとえば、セット内の異なるコンピューティングデバイス114は、要求112に含まれる情報と一致する配信パラメータを有する様々なサードパーティコンテンツを識別するためにサードパーティコーパスデータベース116の異なる部分をそれぞれ分析することが可能である。いくつかの実装形態では、セット内の各所与のコンピューティングデバイス114は、異なるデータ次元(または、次元のセット)を分析し、分析の結果(結果1〜結果3)118a〜118cをサードパーティコンテンツ配信システム110に返すことが可能である。たとえば、セット内のコンピューティングデバイスの各々によって提供された結果118a〜118cは、要求に応答して配信するために適格なサードパーティコンテンツのサブセット、および/または特定の配信パラメータまたは属性を有するサードパーティコンテンツのサブセットを識別してもよい。
【００４０】
サードパーティコンテンツ配信システム110は、要求112の結果に応じて提供されるサードパーティコンテンツの1つまたは複数のインスタンスを選択するために複数のコンピューティングデバイス114のセットから受信した結果118a〜118cを集約し、集約された結果に関連付けられる情報を使用する。たとえば、サードパーティコンテンツ配信システム110は、以下にさらに詳細に説明するように、1つまたは複数のコンテンツ評価プロセスの結果に基づいて、勝利したサードパーティコンテンツのセットを選択することが可能である。次に、サードパーティコンテンツ配信システム110は、ネットワーク102を介して、たとえば3D環境において適格な仮想オブジェクト上に提示するためにユーザデバイス106が勝利したサードパーティコンテンツのセットを3D環境に統合することを可能にする応答データ120(たとえば、応答を表すデジタルデータ)を生成し、送信することが可能である。
【００４１】
いくつかの実装形態では、ユーザデバイス106は、応答データ120に含まれる命令を実行し、応答データ120は、ユーザデバイス106を構成し、ユーザデバイス106が1つまたは複数のサードパーティコンテンツサーバから勝利したサードパーティコンテンツのセットを取得することを可能にする。たとえば、応答データ120内の命令は、ユーザデバイス106に、サードパーティコンテンツサーバ108から所与の勝利したサードパーティコンテンツを取得するためにサードパーティ要求(3PR)121をサードパーティコンテンツサーバ108に送信させるネットワークの場所(たとえば、ユニフォームリソースロケータ(URL))、およびスクリプトを含むことが可能である。要求に応答して、サードパーティコンテンツサーバ108は、所与の勝利したサードパーティコンテンツを3D環境に組み入れさせ、ユーザデバイス106において提示させる、サードパーティデータ(TPデータ)122をユーザデバイス106に送信する。
【００４２】
図2A〜図2Dは、3D環境における例示的なサードパーティコンテンツ適格(3PCE)仮想オブジェクト202を示す図である。一般に、3PCEオブジェクトは、サードパーティコンテンツを3D環境において提示するように構成される仮想オブジェクトである。3PCEオブジェクト上に提示されたコンテンツは、サードパーティコンテンツが提示される3D環境を開発した1つまたは複数のエンティティとは異なる独立した1つまたは複数のサードパーティエンティティ(たとえば、個人、企業、組織など)によって作成され、配布のために利用可能にされてもよい。たとえば、仮想現実ゲームは、ゲーム自体およびその3D環境とは独立して生成されたサードパーティコンテンツ(たとえば、広告)を提示するために3PCE仮想オブジェクトを含んでもよい。
【００４３】
3PCE仮想オブジェクトは、3D環境においてレンダリングされたときに複数の表示モードを有することが可能である。表示モードごとに、仮想オブジェクトは、サードパーティコンテンツの異なるセットを提示してもよく、仮想オブジェクトの形状を定義する異なる3Dモデルを採用してもよく、3D環境の内部および外部の異なるイベント(たとえば、外部通知)、またはこれらの組合せをトリガしてもよい。いくつかの実装形態では、異なる表示モードは、仮想オブジェクト上に(または、仮想オブジェクトに関連して)表示するために異なるタイプまたはフォーマットのサードパーティコンテンツを提供する。たとえば、第1の表示モードでは、仮想オブジェクトの形状を定義する3Dモデルの表面にサードパーティ画像のセットが表示されてもよい。対照的に、第2の表示モードは、テキスト、ビデオ、または仮想オブジェクトとともに提示される別のメディアフォーマットのコンテンツを提供してもよい。ユーザは、たとえばオブジェクトを選択すること、オブジェクトを注視すること、オブジェクトに近づくこと、またはこれらの組合せによって、3PCE仮想オブジェクトとインタラクションしてもよい。いくつかの実装形態では、検出された3PCEオブジェクトとのユーザインタラクションは、あるアクティブな表示モードから別のアクティブな表示モードに遷移させることによって、オブジェクトが表示モードを変更するようにトリガする。したがって、ユーザが第1の表示モードで仮想オブジェクト上に提示されたサードパーティコンテンツに関心を有する場合、ユーザは最初に提示されたサードパーティコンテンツの同じトピックに関連する追加または異なるコンテンツを閲覧するためにオブジェクトを選択してもよい。いくつかの実装形態では、本システムは、ユーザが仮想オブジェクトとインタラクションすることによってコンテンツへの関心を示すまで追加のコンテンツの取得または提示を延期し、それによって3D環境においてレンダリングされないコンテンツ配信システムからのサードパーティコンテンツの送信を低減する。
【００４４】
図2Aを参照すると、3PCE仮想オブジェクト202が第1の表示モードで示される。ここで、オブジェクト202は、立方体の形状の3Dモデルに基づく立方体幾何学的形状を有する。いくつかの実装形態では、仮想オブジェクト202の形状は、仮想オブジェクト202が、やはり配信規格に従ってフォーマットされたサードパーティコンテンツのセットを適切に表示することが可能であることを保証するようにサードパーティコンテンツ配信規格に準拠する。たとえば、サードパーティメディアコンテンツの解像度およびファイルタイプは、配信規格によって指定されてもよく、仮想オブジェクトは、その表面上にサードパーティメディアコンテンツを適切に表示するように形作られてもよい。図2Aが示すように、第1の表示モードでは、仮想オブジェクト202は、立方体の各表面上にそれぞれの画像(たとえば、202a〜c)を示す。第1の表示モードで立方体上に提示された画像の集合は、3D環境が最初にレンダリングされたときにオブジェクト202上に最初に表示されたサードパーティコンテンツのセットであるサードパーティコンテンツのプライマリセットを構成する。いくつかの実装形態では、仮想オブジェクト202は、3D環境においてゆっくりと回転し、ユーザがオブジェクトのすべての側面およびオブジェクトの各側面に提示されたコンテンツを閲覧することを可能にする。
【００４５】
ユーザが3D環境において仮想オブジェクト202とインタラクションするとき、仮想オブジェクト202は、第1の表示モードからオブジェクト202に関連付けられる別の表示モードに遷移してもよい。図2B〜図2Dは、オブジェクト202との検出されたユーザインタラクションに応答して仮想オブジェクト202が遷移してもよい代替表示モードの例示的な表現を示す。図2B〜図2Dにおける表示モードの各々は、オブジェクト202がその表示モードでサードパーティコンテンツをどのように表示するかを示すそれぞれの遷移状態モデルと、その表示モードに関連付けられる任意の補足動作(たとえば、3D環境の外側で通知を生成すること)によって定義されてもよい。たとえば、図2Bに表されるように、仮想オブジェクト202が第2の表示モードに遷移すると、立方体を開いて第2の3Dモデル204を現すために立方体モデルがアニメーション化される。第2の3Dモデル204は、立方体の側面に表示されたサードパーティコンテンツのプライマリセットにトピックにおいて関連してもよい。たとえば、立方体の側面の画像がスポーツカーを示した場合、立方体の内部に現れる第2の3Dモデル204は、同じスポーツカーの3Dモデルであってもよい。
【００４６】
別の例として図2Cは、オブジェクト202とのユーザのインタラクションに応答して立方体が開くときに、ビデオプレーヤ206が立方体の内部に現れる仮想オブジェクト202の第3の表示モードを示す。ビデオプレーヤ206は、セカンダリサードパーティコンテンツをビデオの形式で提示してもよい。ビデオは、ビデオのコンテンツと、第1の表示モードで立方体の表面に表示されたプライマリコンテンツとの間のトピックにおける関係に基づいて選択されてもよい。
【００４７】
別の例として、図2Dは仮想オブジェクト202の第4の表示モードを示す。第4のモードでは、3D環境がレンダリングされるクライアントシステム、コンテンツ配信システム、またはその両方が、3D環境の外側でサードパーティコンテンツに関連する通知を生成する。ユーザが第1の表示モードでオブジェクト202とインタラクションするとき、ユーザの1つまたは複数のアカウントに通知メッセージが自動的に送信されてもよい。通知メッセージは、たとえばサードパーティコンテンツのプライマリセットにおいて示される製品またはサービス、またはサードパーティコンテンツのプライマリセットを提供したサードパーティコンテンツプロバイダに関する追加情報を含んでもよい。通知メッセージは、時にはサードパーティコンテンツのプライマリセットに関連付けられる、またはサードパーティコンテンツプロバイダに関連付けられる外部リソース(たとえば、ウェブサイトまたはアプリケーション)へのリンクを含んでもよい。開発者、ディストリビュータ、コンテンツプロバイダ、およびエンドユーザは、時には3D環境において提示されるネイティブコンテンツからの撹乱を最小限に抑えるために3D環境において直接提示されるサードパーティコンテンツに対する外部通知を好んでもよい。いくつかの実装形態では、仮想オブジェクト202上または仮想オブジェクト202の近くの3D環境内に、ポップアップ通知メッセージ208もまた表示されてもよい。ポップアップ通知メッセージ208は、外部通知において送信された同じメッセージを含んでもよく、外部通知が送信されたという確認を含んでもよく、またはその両方を含んでもよい。
【００４８】
図3は、コンテンツ配信システム350によって指定されたサードパーティコンテンツを示す3D環境をレンダリングするように構成される例示的なクライアントコンピューティングシステム300のブロック図である。いくつかの実装形態では、クライアントコンピューティングシステム300はユーザデバイス、たとえば図1のユーザデバイス106である。コンテンツ配信システム350は、図1のサードパーティコンテンツ配信システム110、図1のサードパーティコンテンツサーバ108として構成されてもよく、またはシステム108と110の両方の態様を含むことが可能である。コンテンツ配信システム350は、一般に1つまたは複数の場所にある1つまたは複数のコンピュータのシステムとして実装されてもよい。クライアントコンピューティングシステム300は、ネットワーク(たとえば、インターネット、ローカルエリアネットワーク、ワイヤレスブロードバンドネットワーク)を介してコンテンツ配信システム350と通信する。図3には示されていないが、クライアントコンピューティングシステム300は、様々な目的のためにコンテンツ配信システム350に加えて他のシステムと通信することが可能である。たとえば、クライアントコンピューティングシステム300は、システム300が3D環境をレンダリングすることを可能にする仮想現実、拡張現実、および/または複合現実アプリケーションを取得するためにオンラインアプリケーションストアまたは開発者サーバ用のサーバと通信してもよい。同様に、クライアントコンピューティングシステム300は、3D環境、たとえば没入型仮想現実ゲームのための定義ファイルを取得するためにオンラインアプリケーションストア用のサーバまたは開発者サーバと通信してもよい。
【００４９】
クライアントコンピューティングシステム300は、組み込まれたサードパーティコンテンツを有する3D環境をレンダリングするように構成されかつ可能にされた様々なコンピューティングシステムのうちのいずれかであることが可能である。いくつかの例では、クライアントコンピューティングシステムは、ヘッドマウントディスプレイを介してユーザが閲覧する仮想現実タイプの3D環境を提示するように構成される。他の例では、クライアントコンピューティングシステム300は、拡張現実環境、複合現実環境、またはゲーム環境などの他のタイプの3D環境を従来の2次元スクリーン上に提示するように構成される。システム300は、1つのデバイスに統合されてもよく、または1つまたは複数の場所における複数の別々に接続された構成要素を含んでもよい。いくつかの実装形態では、クライアントコンピューティングシステム300は、ディスプレイ304、メモリサブシステム306、3D環境レンダリングエンジン308、入力ハンドラ310、仮想オブジェクトマネージャ312、およびネットワークインターフェース314を含む。
【００５０】
ディスプレイ304は、3D環境をユーザに視覚的に表示するように構成される電子ディスプレイである。ディスプレイ304は、異なるタイプのシステムに対して様々な形態をとることが可能である。たとえば仮想現実システムでは、ディスプレイ304は、ディスプレイ304の閲覧スクリーンがユーザの目の数インチ前の場所に固定されたヘッドマウントディスプレイであってもよい。VRシステムでは、ディスプレイ304は、3D環境の立体提示を提供してもよい。ユーザがレンズのセットを通して3D環境の立体提示を閲覧すると、3D環境は奥行きを有するように見えてもよく、したがってユーザは自分が3D環境に没入しているかのように感じる。いくつかの実装形態では、スクリーンはヘッドマウントディスプレイの一体化された構成要素である。他の実装形態では、モバイルユニットのスクリーンをヘッドマウントディスプレイのスクリーンとして使用するヘッドマウントディスプレイを形成するためにスマートフォンまたは他のモバイルユニットがヘッドユニットに取り外し可能に固定される。ディスプレイ304は、たとえば液晶ディスプレイ(LCD)、有機発光ダイオードディスプレイ(OLED)、またはアクティブマトリクスOLED(AMOLED)ディスプレイであってもよい。
【００５１】
メモリサブシステム306は、3D環境を特徴付けるデータを記憶する1つまたは複数のストレージデバイスを含む。3D環境は、3次元においてレンダリングされることが可能な仮想環境である。3D環境の例は、3Dゲームおよびビデオ環境(たとえば、3Dコンサートまたは運動競技のストリームなどのライブまたは記録されたイベントストリーム)を含む。場合によっては、クライアントコンピューティングシステム302のユーザは、(たとえば、仮想現実システムにおいて)環境を見回すように頭を動かすことによって、環境内を移動することによって、環境内のオブジェクトを操作することによって、またはこれらの組合せによって仮想3D環境を探索することができる。クライアントコンピューティングシステム302の他の構成要素は、ストレージデバイスからデータを読出し、書込み、または削除するためにメモリサブシステム306にアクセスしてもよい。
【００５２】
いくつかの実装形態では、3D環境を特徴付けるメモリサブシステム306によって記憶されたデータは、1つまたは複数のサードパーティコンテンツ適格(3PCE)仮想オブジェクトの宣言を含む。3PCE仮想オブジェクトは、様々な適切なプログラミング技法のいずれかを使用して3D環境に対して宣言されてもよい。いくつかの実装形態では、開発者は実行時に、その中で指定された任意のパラメータに従って3D環境内の3PCE仮想オブジェクトをインスタンス化する3D環境用の定義ファイルにタグ、スクリプト、または実行可能コードを挿入することが可能である。たとえば、挿入されたタグ、スクリプト、または実行可能コードは、クライアントコンピューティングシステム302によって処理されると、クライアントコンピューティングシステム302に、コンテンツ配信システム350にサードパーティコンテンツを要求することと、コンテンツ配信システム350から返された(または、コンテンツ配信システム350によって識別された1つまたは複数の他のサードパーティコンテンツサーバから返された)サードパーティコンテンツを有する3Dモデルをレンダリングすることとを行わせるために特定の3Dモデル(たとえば、立方体または球体)にアクセスさせてもよい。開発者は、3D環境用の定義(たとえば、ソースコードまたは実行可能コード)にタグ、スクリプト、または実行可能コードを手動で挿入することが可能であり、または、コードが3D環境を作成するために開発者によって使用されるプログラミング環境または設計環境(たとえば、見たとおりのものが結果に反映される(What You See Is What You Get(WYSIWYG))開発環境)によって自動的に挿入されてもよい。
【００５３】
いくつかの実装形態では、3PCE仮想オブジェクトを宣言するタグ、スクリプト、または実行可能コードは、オブジェクトの1つまたは複数の属性を指定する1つまたは複数のパラメータを含むことが可能である。3PCE仮想オブジェクトの属性は、たとえばオブジェクトが3D環境においてどのように表示されるか、オブジェクトが3D環境内のどこに配置されるか、オブジェクトの適格なタイプまたは幾何学的形状、オブジェクト上に表示するために選択されることが可能なサードパーティコンテンツに対する制約、オブジェクトに関連付けられるインタラクションモデル、オブジェクトに関連付けられる遷移状態モデル、あるいはこれらの2つ以上の組合せを宣言してもよい。いくつかの実装形態では、3PCE仮想オブジェクトは、多くの開発者指定可能な属性によって高度にカスタマイズ可能であることができる。他の実装形態では、3PCE仮想オブジェクトは、比較的少ない開発者指定属性で宣言されてもよく、任意で開発者はより少ないカスタマイズオプションを提供されてもよい。たとえば開発者は、オブジェクトが仮想環境において配置される場所を単に指定し、場合によってはオブジェクトのサイズ(たとえば、オブジェクトの長さ、幅、高さ、および/または体積)をさらに指定するタグ、スクリプト、または実行可能コードによって3PCE仮想オブジェクトを宣言してもよい。オブジェクトの宣言において指定されていない仮想オブジェクトの特性は、デフォルト設定に基づいて、またはオブジェクトに関連付けられるコンテキストに基づいて、クライアントコンピューティングシステム302、コンテンツ配信システム350、またはその両方によって自動的に選択されてもよい。3PCE仮想オブジェクトに関連付けられるコンテキストは、たとえばオブジェクトが配置される3D環境の特性、クライアントコンピューティングシステム302の特性、3D環境を閲覧しているユーザまたはユーザのアカウントの特性、3D環境の開発者の特性または嗜好、あるいはこれらのコンテキストの2つ以上の組合せを含むことが可能である。
【００５４】
3D環境レンダリングエンジン308は、メモリサブシステム306から3D環境の定義を読み出すことと、ディスプレイ304を介して、および任意で1つまたは複数の追加の周辺出力デバイス(たとえば、スピーカ、ハンドコントローラ、触覚フィードバックデバイス)を使用してユーザに提示するための3D環境をレンダリングすることとを行うように構成される、クライアントコンピュータシステム302のサブシステムである。レンダリングエンジン308は、本明細書で説明される動作を実行するように構成されかつ可能にされた1つまたは複数のデータ処理装置(たとえば、プロセッサ)を含むことが可能である。データ処理装置は、レンダリングエンジン308専用であってもよく、クライアントコンピューティングシステム302の他の構成要素と少なくとも部分的に共有されてもよい。いくつかの実装形態では、レンダリングエンジン308は、3D環境定義ファイルを処理し、環境の3D提示をレンダリングする1つまたは複数のグラフィックス処理ユニット(GPU)を含む。たとえば、仮想現実システムのレンダリングエンジン308は、特別に構成されるレンズを通してユーザによって閲覧されるとユーザに没入型3D経験を提供する、3D環境の立体表示を生成するために3D環境の1つまたは複数の定義ファイルを処理してもよい。
【００５５】
入力ハンドラ310は、3D環境がユーザに対してレンダリングされている間に受信されたユーザ入力のための1つまたは複数の入力チャネルを監視するように構成されるクライアントコンピュータシステム302のサブシステムである。入力ハンドラ310は、本明細書で説明される動作を実行するように構成されかつ可能にされた1つまたは複数のデータ処理装置(たとえば、プロセッサ)を含むことが可能である。入力ハンドラ310は、クライアントコンピューティングシステム302の特定の構成に応じて様々なタイプのユーザ入力を検出してもよい。たとえば、基本的な仮想現実(VR)システムは、ヘッドマウントディスプレイユニット内の1つまたは複数の方向センサおよび動きセンサからの信号に基づいてユーザ入力を検出してもよい。方向センサおよび動きセンサは、1つまたは複数の加速度計、コンパス、ジャイロスコープ、磁力計、またはそのようなセンサの組合せを含んでもよい。方向センサおよび動きセンサは、3D VR環境内のユーザの視線の方向を示す信号をリアルタイムで生成することが可能であり、これらの信号は、リアルタイムでユーザの視線の方向を追跡するために入力ハンドラ310によって解釈されてもよい。さらに、クライアントコンピューティングシステム302は、システム302に入力を提供するためにユーザによって作動されてもよい、たとえばハンドベースのコントローラ上またはヘッドマウントディスプレイ上に1つまたは複数のボタンあるいはスイッチを含んでもよい。より高度なVRシステムは、ヘッドマウントディスプレイ上の基準の動きを追跡する、ヘッドマウントディスプレイの外部に配置された動き追跡センサなどの追加のユーザ入力チャネルを提供してもよい。入力ハンドラ310は、たとえば回転および平行移動を含む自由度6におけるユーザの動きを決定するために外部の動きセンサからの信号を解釈することが可能である。
【００５６】
いくつかの実装形態では、入力ハンドラ310は、3D環境内の所定のユーザアクションを検出するためのロジックを含む。所定のユーザアクションは、3D環境における3PCE仮想オブジェクトとのインタラクション、またはユーザが3PCE仮想オブジェクトとインタラクションしようとしている可能性があることを示すアクションを含むことが可能である。たとえば、レンダリングエンジン308は、ユーザの視線の方向を識別するレチクルを3D環境の表示に描画することが可能である。レチクルは、3D環境の表示を乱雑にしたり、VRシステムにおける没入型経験を撹乱したりしないように小さくてもよいが、レチクルは、ユーザの視線の方向に基づいて、3D環境においてターゲットとされたオブジェクトをユーザが視覚的に識別するために有用なフィードバックを提供してもよい。いくつかの実装形態では、入力ハンドラ310は、3PCE仮想オブジェクトとのユーザのインタラクションを検出するためにレクチルを使用してもよい。たとえば、入力ハンドラ310が、所定の時間長(たとえば、あらかじめ指定されたしきい値時間間隔)の間、レチクルが3D環境内の仮想オブジェクト上の位置に保持されたことを検出した場合、入力ハンドラ310は、仮想オブジェクトとのユーザインタラクションの発生を登録し、オブジェクトとのユーザインタラクションの通知を仮想オブジェクトマネージャ312にプッシュしてもよい。いくつかの実装形態では、入力ハンドラ310は、入力ボタンまたはスイッチがアクティブ化されたときにレチクルが仮想オブジェクト上に配置されていると識別することに基づいて、仮想オブジェクトとのユーザインタラクションを検出する。いくつかの実装形態では、入力ハンドラ310は、たとえば3D環境におけるユーザの現在の閲覧位置が3D環境におけるオブジェクトの位置のしきい値距離内にある場合、レチクルが仮想オブジェクト上に配置されていると識別することによりユーザの視線がオブジェクトに向けられていると識別することに基づいて仮想オブジェクトとのユーザインタラクションを検出する。レンダリングエンジン308はまた、アクションをトリガするためにユーザがオブジェクトをどのくらいの時間注視しなければならないか、たとえばオブジェクトが表示モードを遷移するまでどれくらいかを示すプログレスバーを3PCE仮想オブジェクトの上、オブジェクトの近く、または3D環境内に描画してもよい。
【００５７】
いくつかの実装形態では、本システム302は、ユーザが3PCE仮想オブジェクトとインタラクションしようとしている可能性があることを示すユーザ入力のパターンを監視してもよい。入力ハンドラ310は、ユーザが3PCE仮想オブジェクトとインタラクションしようとしている可能性があることを示す所定のユーザアクション(たとえば、ユーザ入力のパターン)を表すルールまたは他のロジックを記憶してもよい。入力ハンドラ310が、所定のユーザ入力のパターンのうちの1つと一致するユーザ入力のパターンを検出すると、入力ハンドラ310は、フラグを送出して、仮想オブジェクトマネージャ312にユーザがオブジェクトとインタラクションしようとしていることを示す通知をプッシュしてもよい。たとえば、仮想オブジェクトマネージャ314に関して以下でさらに説明するように、システムが仮想オブジェクトとのユーザインタラクションの可能性を示すフラグを送出するとき、フラグは、オブジェクトを仮想オブジェクトのセカンダリモードで表示するためにセカンダリサードパーティコンテンツの検索をトリガしてもよい。したがって、セカンダリコンテンツは、オブジェクトとのユーザの実際のインタラクションの前に検索されてもよいが、セカンダリコンテンツは、ユーザのアクションが、セカンダリコンテンツを現すためにオブジェクトと実際にインタラクションする意図を示すまで延期される。したがって、入力ハンドラ310が、ユーザが仮想オブジェクトとインタラクションしたこと、または仮想オブジェクトとインタラクションする可能性が高いことを検出するまでセカンダリコンテンツの送信を延期することによって、セカンダリコンテンツに対するネットワーク送信およびローカルストレージ要求が低減されてもよい。
【００５８】
仮想オブジェクトマネージャ312は、3D環境に現れる3PCE仮想オブジェクトを管理するクライアントコンピュータシステム302のサブシステムである。仮想オブジェクトマネージャ312は、本明細書で説明される動作を実行するようにプログラムされた1つまたは複数の場所にある1つまたは複数のデータ処理装置(たとえば、プロセッサ)として実装されてもよい。データ処理装置は、仮想オブジェクトマネージャ312専用であってもよく、仮想オブジェクトマネージャ312とクライアントコンピュータシステム302の1つまたは複数の他の構成要素との間で共有されてもよい。
【００５９】
いくつかの実装形態では、3D環境が最初にロードされ、システム302上でレンダリングされるとき、レンダリングエンジン308は、3D環境用の定義ファイルを構文解析し、3D環境内に現れるように宣言された任意の3PCE仮想オブジェクトを識別し、各3PCE仮想オブジェクトをインスタンス化するために仮想オブジェクトマネージャ312を呼び出す。仮想オブジェクトマネージャ312を呼び出す際、レンダリングエンジン308は、オブジェクト宣言において指定された任意のパラメータの値をマネージャ312に渡すことが可能である。オブジェクトごとに仮想オブジェクトマネージャ312は、オブジェクトの外部の表面上に表示するためのサードパーティ画像などのオブジェクト上に最初に表示するための少なくともそれぞれの第1のサードパーティコンテンツのセットを取得する。いくつかの実装形態では、仮想オブジェクトマネージャ312は、コンテンツ配信システム350にサードパーティコンテンツを要求するために、ネットワークインターフェース314を使用してオブジェクト上に提示するためのサードパーティコンテンツを取得する。次いで、仮想オブジェクトマネージャ312は、3PCE仮想オブジェクトの幾何学的形状、およびオブジェクト上に表示するために選択されたサードパーティコンテンツを表す3Dモデルを3D環境において提示するためにレンダリングエンジン308に戻る。いくつかの実装形態では、サードパーティコンテンツはテキストである。いくつかの実装形態では、サードパーティコンテンツは、1つまたは複数の画像、ビデオ、またはその両方である。次いで、レンダリングエンジン308は、ユーザに提示するために3D環境内に仮想3Dオブジェクトを描画する。
【００６０】
いくつかの実装形態では、仮想オブジェクトマネージャ312は、3D仮想環境における3PCE仮想オブジェクトとの検出されたユーザインタラクションに対する応答を処理するようにさらに構成される。たとえば、仮想環境におけるユーザのアクションが、ユーザが3PCE仮想オブジェクトとインタラクションした、またはインタラクションしようとしている可能性があることを示すユーザアクションの所定のセットと一致することを検出すると、入力ハンドラ310は、オブジェクトとのユーザインタラクションまたは予想されるユーザインタラクションにどのように応答するかを決定するために仮想オブジェクトマネージャ312を呼び出してもよい。仮想オブジェクトマネージャ312への呼出しにおいて、入力ハンドラ310は、インタラクションまたは予想されるインタラクションのターゲットであるオブジェクトの識別子を渡してもよく、さらにオブジェクトとのインタラクションのタイプを特徴付ける情報(たとえば、視線および選択、拡張された視線、ハンドベースのオブジェクト操作)を渡してもよい。仮想オブジェクトマネージャ312は、オブジェクトとの所与のユーザインタラクションにどのように応答するか、またはオブジェクトとの予想されるユーザインタラクションにどのように応答するかを決定するために入力ハンドラ310から渡された情報を使用してもよい。いくつかの実装形態では、仮想オブジェクトマネージャ312は、仮想環境内で検出された3PCEオブジェクトとのユーザインタラクションまたは予想されるユーザインタラクションのログを維持し、そのログは、3D仮想環境における3PCEオブジェクトとのユーザインタラクションのパターンを分析するコンテンツ配信システム350または別のシステムに自動的および定期的に報告される。したがって、仮想オブジェクトマネージャ312が、入力ハンドラ310から3PCE仮想オブジェクトとのユーザインタラクションまたは予想されるユーザインタラクションの指示を受信すると、仮想オブジェクトマネージャ312は、インタラクションのタイムスタンプ、インタラクションのターゲットオブジェクト、およびインタラクションに関連付けられるコンテキストなどのインタラクションに関する顕著な情報をキャプチャするエントリをログに追加することが可能である。
【００６１】
3PCE仮想オブジェクトは、オブジェクトに関連付けられる複数のモードの1つでアクティブ化されてもよい。いくつかの実装形態では、3PCEオブジェクトは、プライマリモードとセカンダリモードとを有する。プライマリモードでは、オブジェクトはサードパーティコンテンツのプライマリセットを表示する。セカンダリモードでは、オブジェクトは、可能な遷移状態モデルのセットから選択された特定の遷移状態モデルを使用してクライアントコンピュータシステム302のユーザに情報を提供する。図4Bを参照して以下にさらに詳細に説明するように、各遷移状態モデルは、オブジェクトがセカンダリモードで、サードパーティコンテンツのプライマリセットに関する追加情報を提示するそれぞれの技法を表す。
【００６２】
たとえば、3PCE仮想オブジェクトは、第1の遷移状態モデルを使用してサードパーティコンテンツのセカンダリセットを提示するように構成される。サードパーティコンテンツのセカンダリセットは、サードパーティコンテンツのプライマリセットとは異なってもよいが、依然としてサードパーティコンテンツのプライマリセットに関連付けられる同じトピックまたはエンティティに関連する。サードパーティコンテンツのセカンダリセットはまた、第1のサードパーティコンテンツのセットとは異なるタイプ(たとえば、メディアフォーマット)を有していてもよい。たとえば、第1のモードにおいて、3PCE仮想オブジェクトは、サードパーティコンテンツのプライマリセットとして特定の製品またはサービスに関連する画像の集合を示してもよい。第2のモードでは、プライマリコンテンツは、サードパーティコンテンツのセカンダリセットとして特定の製品またはサービスに関するビデオに置き換えられてもよい。ビデオは2Dビデオでもよく、いくつかの実装形態では没入型の360度ビデオであってもよい。
【００６３】
代替で、第2の遷移状態モデルを使用して、3PCE仮想オブジェクトは、サードパーティコンテンツのプライマリセットに関連付けられるトピックまたはエンティティに関する外部通知を生成するように構成される。外部通知は、ショートメッセージサービス(SMS)テキストメッセージにおける通知、ソーシャルメディアメッセージ、電子メールメッセージ、あるいはスマートフォンまたは他のモバイルデバイスまたはコンピューティングシステムの通知リストに表示された通知などの3D環境の外側で(たとえば、異なるアプリケーションにおいて、および/または異なるデバイス上で)ユーザに提供される通知である。
【００６４】
代替で、第3の遷移状態モデルを使用して、3PCE仮想オブジェクトは、サードパーティコンテンツのプライマリセットに関連するトピックまたはエンティティに関連付けられる外部宛先へのポータルを提供するように構成される。たとえば、オブジェクトは、サードパーティコンテンツのプライマリセットに関連するトピックまたはエンティティに関連付けられる特定のウェブサイトを示すポップアップフレーム、サードパーティコンテンツのプライマリセットに関連するトピックまたはエンティティに関連付けられるアプリケーションを示すポップアップフレームを表してもよく、サードパーティコンテンツのプライマリセットに関連するトピックまたはエンティティに関連付けられる異なる3D環境にユーザを誘導してもよい。いくつかの実装形態では、3PCE仮想オブジェクトのセカンダリモードは、サードパーティコンテンツのセカンダリセットを提示することと、外部通知をユーザに送信することとの両方を行う仮想オブジェクトなどの2つ以上の遷移状態モデルの態様を提供してもよい。
【００６５】
所与の3PCEオブジェクトに割り当てられた遷移状態モデルは、クライアントコンピューティングシステム302の仮想オブジェクトマネージャ312、コンテンツ配信システム350の遷移状態モデルセレクタ368、またはその両方によって選択されてもよい。いくつかの実装形態では、オブジェクトが第1のモードでサードパーティコンテンツのプライマリセットを表示する間、入力ハンドラ310からの3PCE仮想オブジェクトとのユーザインタラクションの指示の受信に応答して、仮想オブジェクトマネージャ312は、オブジェクトに割り当てられた遷移状態モデルと、遷移状態モデルに関連付けられるパラメータ(たとえば、セカンダリサードパーティコンテンツのセット、通知メッセージ、外部環境へのポインタ)を識別する。次いで、仮想オブジェクトマネージャ312は、識別された遷移状態モデルおよび遷移状態モデルの識別されたパラメータを使用して3PCEオブジェクトを第1のモードから第2のモードに遷移させるようレンダリングエンジン308に指示する。それに応答して、レンダリングエンジン308は、識別された遷移状態モデルを使用して、および遷移状態モデルに関連付けられる指定されたパラメータに従って第2のモードでオブジェクトを再レンダリングする。たとえば、第1の遷移状態モデルを使用して、および3D環境における3PCEオブジェクトとのユーザインタラクションに応答してレンダリングエンジン308は、第1のモードから第2のモードにモーフィングまたは他の方法で遷移するために仮想オブジェクトをアニメーション化してもよい。3D幾何学モデルの表面上に表示されるプライマリサードパーティコンテンツ(たとえば、画像)は、除去され、セカンダリサードパーティコンテンツ(たとえば、ビデオ)に置き換えられてもよい。
【００６６】
クライアントコンピューティングシステム302は、コンテンツ配信システム350にメッセージを送信し、コンテンツ配信システム350からメッセージを受信する。コンテンツ配信システム350は、1つまたは複数の場所に1つまたは複数のコンピュータ(たとえば、データ処理装置)として実装されてもよい。一般に、コンテンツ配信システム350は、クライアントコンピューティングシステム302において3D環境において3PCE仮想オブジェクトとともに表示するためにサードパーティコンテンツを選択するように構成される。コンテンツ配信システム350は、たとえばインターネットまたはローカルエリアネットワークなどのネットワークを介してクライアントシステム302にコンテンツを送信することによって、選択されたサードパーティコンテンツをクライアントコンピュータシステム302にとって利用可能にする。コンテンツ配信システム350は、フロントエンドサーバ352、サードパーティコンテンツデータベース354、コンテンツセレクタ366、遷移状態モデルセレクタ368、選択基準を記憶する第1のデータリポジトリ370、エンドユーザアカウントおよびプロファイル情報を記憶する第2のデータリポジトリ372、ならびにサードパーティコンテンツプロバイダアカウントおよびプロファイル情報を記憶する第3のデータリポジトリ374の1つまたは複数を含むことが可能である。
【００６７】
フロントエンドサーバ352は、コンテンツ配信システム350との間で情報を送受信するように構成される。フロントエンドサーバ352は、コンテンツ配信システム350が通信ネットワーク(たとえば、インターネット)を介して他のコンピュータとインタラクションするためのインターフェースを提供する。たとえば、図3は、クライアントコンピューティングシステム352と通信するフロントエンドサーバ352を示す。フロントエンドサーバ352は、サードパーティコンテンツに対する要求を受信し、受信した要求の初期処理を実行し、要求から導出された情報をコンテンツ配信システム350の他の適切な構成要素に転送し、要求に応じてシステム350が生成する応答を送信する。いくつかの実装形態では、フロントエンドサーバ352は、コンテンツ配信システム350と、パブリック(たとえば、インターネット)またはプライベート(たとえば、ローカルエリアネットワーク)のいずれかであってもよい1つまたは複数のネットワークとの間の相互接続を提供するネットワークインターフェースを含む。ネットワークインターフェースは、たとえばパケット化ネットワークを介してデータを送受信するように構成される1つまたは複数のネットワークインターフェースカードを含んでもよい。
【００６８】
コンテンツデータベース354は、サードパーティコンテンツのインデックスを維持するデータベースまたは他のタイプのデータリポジトリである。サードパーティコンテンツ自体もまた、コンテンツデータベース354によって記憶されてもよく、コンテンツ配信システム350によってコンテンツデータベース354の外部に記憶されてもよく、コンテンツ配信システム350の外側の1つまたは複数の他のシステムに記憶されてもよい。一般に、コンテンツデータベース354は、たとえば3PCE仮想オブジェクト上に提示するためにサードパーティコンテンツに対する要求に応答して、コンテンツ配信システム350がクライアントシステムに返すために利用可能なサードパーティコンテンツのセットを識別する。いくつかの実装形態では、サードパーティコンテンツは、サードパーティコンテンツプロバイダ(たとえば、広告主)によって独立して作成され、次いでエンドユーザへのターゲッティングされた配信のためにコンテンツ配信システム350に提出される。いくつかの実装形態では、コンテンツプロバイダは、コンテンツ配信システム350のコンテンツ作成プラットフォームまたはサービスを使用してサードパーティコンテンツを作成してもよい。サードパーティコンテンツは、テキスト、画像、ビデオとしてまたは他のメディアフォーマットで提供されてもよい。
【００６９】
いくつかの実装形態では、コンテンツデータベース354は、プライマリサードパーティコンテンツおよびセカンダリサードパーティコンテンツのインデックス356、358をそれぞれ含む。プライマリサードパーティコンテンツは、オブジェクトが第1のモードにあるときに仮想オブジェクト上に提示するように指定されたコンテンツである。セカンダリサードパーティコンテンツは、オブジェクトが第2のモードにあるときに仮想オブジェクト上に提示するように指定されたコンテンツである。いくつかの実装形態では、3PCE仮想オブジェクトの第1のモードは、オブジェクトがクライアントコンピューティングシステム302のために比較的低い計算コストで3D環境において提示される「低電力」モードである。低電力モードは、プライマリサードパーティコンテンツに対する1つまたは複数の指定された制約に準拠するプライマリサードパーティコンテンツのみをオブジェクト上に表示することによって少なくとも部分的に達成されてもよい。制約は、たとえばプライマリサードパーティコンテンツの許容可能なフォーマットおよびサイズを定義してもよい。たとえば、指定された解像度を有する画像は、許容可能なサードパーティコンテンツとみなされる場合があるが、ビデオは、プライマリサードパーティコンテンツとして許容できないものとみなされる場合がある。むしろビデオは、たとえばセカンダリサードパーティコンテンツとしてのみ許可される場合がある。したがって、プライマリサードパーティコンテンツをクライアントコンピューティングシステム302に送信する際に費やされる帯域幅が、セカンダリサードパーティコンテンツよりも少なくてもよい。さらに、プライマリサードパーティコンテンツを3D環境において提示することは、セカンダリサードパーティコンテンツを提示するよりもクライアントコンピューティングシステム302の計算集約度がより低い場合がある。
【００７０】
プライマリおよびセカンダリサードパーティコンテンツインデックス356、358は、個々のコンテンツアイテムを関連するコンテンツアイテムのセットにグループ化してもよい。たとえば、第1の表示モードでは、3PCE仮想オブジェクトは立方体幾何学的形状を有してもよく、それぞれのプライマリサードパーティコンテンツアイテムを立方体の6つの面のそれぞれに表示する。コンテンツ配信システム350は、立方体の面のすべてまたは一部に表示するために関連する、または重複するコンテンツアイテムを選択してもよい。たとえば、特定のサードパーティコンテンツプロバイダによって提出された関連する画像のセットは、立方体上に表示するためにクライアントコンピューティングシステム302に返されてもよく、あるいは共通のトピックまたはエンティティに関連するようにアルゴリズム的に決定された関連する画像のセットが、立方体上に表示するためにプライマリサードパーティコンテンツインデックス356を使用して選択されかつ返されてもよい。いくつかの実装形態では、コンテンツデータベース354は、プライマリサードパーティコンテンツをセカンダリサードパーティコンテンツにマッピングしてもよい。第1の表示モードで3PCE仮想オブジェクト上に表示するためにプライマリサードパーティコンテンツの特定のセットが選択された場合、コンテンツセレクタ366は、オブジェクトに対して選択されたプライマリサードパーティコンテンツの特定のセットにマッピングされる第2の表示モードで同じ仮想オブジェクトに対してセカンダリサードパーティコンテンツのみを選択してもよい。たとえば、サードパーティコンテンツのプライマリセットは、サードパーティコンテンツプロバイダによって提供される製品またはサービスに関連する画像のセットを含んでもよく、マッピングされたセカンダリサードパーティコンテンツアイテムは、同じ商品またはサービスに関する1つまたは複数のビデオであってもよい。コンテンツセレクタ366は、第2の表示モードで仮想オブジェクトとともに表示するために戻すマッピングされたセカンダリサードパーティコンテンツアイテムのうちの1つまたは複数を選択してもよく、それによって所与の仮想オブジェクトによって提示されるプライマリサードパーティコンテンツとセカンダリサードパーティコンテンツとの間のトピックにおける関係を維持する。
【００７１】
いくつかの実装形態では、コンテンツデータベース354は、それぞれのサードパーティコンテンツインデックス356および358に加えてデータを記憶する。たとえば、コンテンツデータベース354は、サードパーティコンテンツ属性360、外部通知362、ポータルパラメータ364、またはこれらの複数を表すデータ構造を記憶してもよい。
【００７２】
サードパーティコンテンツ属性データストア360は、インデックス356、358に表されるサードパーティコンテンツアイテムの属性を示すデータを記憶する。一例として、所与のサードパーティコンテンツアイテムの属性は、サードパーティコンテンツアイテムの記述キーワード、コンテンツアイテムを提出したサードパーティコンテンツプロバイダの一意の識別子、コンテンツアイテムのフォーマットまたはタイプ(たとえば、テキスト、オーディオ、画像、ビデオ)、およびコンテンツアイテムの履歴パフォーマンスメトリック(たとえば、インプレッション数、クリックスルー率、コンバージョン率)が含むことが可能である。属性は、個々のコンテンツアイテムまたはコンテンツアイテムのグループに割り当てられることが可能である。属性は、コンテンツ配信システム350によって自動的に決定されてもよく、(たとえば、コンテンツ配信システム350のエージェント、または対応するサードパーティコンテンツプロバイダのエージェントによって)手動で入力されてもよい。いくつかの実装形態では、コンテンツセレクタ366は、サードパーティコンテンツ要求に応答してサードパーティコンテンツアイテムを選択するためにデータストア360からの属性を使用する。たとえば、サードパーティコンテンツのためにクライアントコンピューティングシステム302から送信される要求は、クライアントシステム302のエンドユーザに関する情報を示すコンテキストデータ、サードパーティコンテンツが仮想オブジェクトにレンダリングされる3D環境、3D環境が実行されるアプリケーション、および/またはクライアントシステム302のハードウェア構成を含むことが可能である。コンテンツセレクタ366は、サードパーティ要求のコンテキストと、「勝利した」サードパーティコンテンツ、すなわち要求に応答して返されるサードパーティコンテンツを選択するための手順の一部としてデータストア360によって示されるサードパーティコンテンツ属性とを比較することが可能である。
【００７３】
外部通知データストア362は、サードパーティコンテンツアイテムに関連付けられる外部通知を表すデータを記憶する。クライアントシステム302が、仮想オブジェクト上に表示されるプライマリサードパーティコンテンツアイテムに示されるトピックまたはエンティティに関する追加情報をユーザに提供するために外部通知を利用する遷移状態モデルを採用した場合、コンテンツ配信システム350は、クライアントシステム302に、および/あるいはクライアントシステム302のユーザに関連付けられる1つまたは複数のアカウントに、外部通知を返してもよい。データストア362は、通知メッセージを対応するサードパーティコンテンツアイテム、サードパーティコンテンツアイテムのグループ、またはサードパーティコンテンツプロバイダにマッピングする1つまたは複数の通知メッセージおよびデータを定義するデータを含んでもよい。第1の表示モードで3PCE仮想オブジェクトとのユーザインタラクションの指示を受信すると、コンテンツ配信システム350はユーザに提供するためにデータストア362から通知メッセージを選択する。選択された通知メッセージは、仮想オブジェクト上に表示されたサードパーティコンテンツのプライマリセットにマッピングされてもよく、サードパーティコンテンツのプライマリセットと選択された通知メッセージは、同じサードパーティコンテンツプロバイダとのそれらの相互接続に基づいて少なくとも間接的に関連していてもよい。たとえば、立方体が製品またはサービスを表すサードパーティ画像を示す第1の表示モードでユーザが3PCE立方体とインタラクションしたという指示に基づいて、コンテンツ配信システム350の通知コントローラは、1つまたは複数のチャネル(たとえば、電子メール、SMS、アプリケーションレベルの通知サービス、オペレーティングシステムレベルの通知サービス)を介してユーザに提示するために通知メッセージを送信してもよい。
【００７４】
いくつかの実装形態では、データストア362は、通知メッセージ用のテンプレートを定義するデータを含む。テンプレートは、エンドユーザに固有の情報が、または3PCE仮想オブジェクトとの特定のユーザインタラクションのコンテキストに基づいて追加されてもよい、テキストメッセージ内のフィールドを含んでもよい。たとえば、「$name:このエキサイティングな機会をお見逃しなく!当社のウェブサイトwww.example.comをご覧ください」と述べる通知テンプレートは、オブジェクトとのインタラクションが通知をトリガしたクライアントコンピューティングシステム302のエンドユーザの第1の名前が追加される(たとえば、置き換えられる)ことが可能である$nameフィールドを含む。いくつかの実装形態では、通知は、たとえばウェブページのターゲットURL、またはたとえばユーザの電話または他のデバイスにインストールされた特定のアプリケーションのターゲットURIを指定するハイパーリンクを含むことが可能である。通知コントローラは、ターゲットURLを有するハイパーリンクが配置された外部通知メッセージの生成をもたらした3PCE仮想オブジェクトとの特定のユーザインタラクションを一意に識別する署名を含むターゲットURLを生成してもよい。ユーザがターゲットURLを選択すると、一意の署名を含む要求がコンテンツ配信システム350に送信されてもよい。コンテンツ配信システム350は、ユーザがURLを選択したことを記録することが可能であり、次いで対応するサードパーティコンテンツプロバイダによって操作されるウェブサイトのなどの宛先リソースにデバイスをリダイレクトするユーザデバイス(たとえば、クライアントシステム302)に命令(たとえば、スクリプト)を返す。
【００７５】
ポータルパラメータデータストア364は、プライマリサードパーティコンテンツまたはサードパーティコンテンツプロバイダに関連付けられるポータルリソースを識別するデータを含む。配信システム350は、クライアントシステム302からのポータルリソースの要求に応答して、ポータルリソース、またはポータルリソースへのポインタを選択してクライアントコンピューティングシステム302に返すためにデータストア364にアクセスする。クライアントシステム302は、たとえば第1の表示モードでの3PCE仮想オブジェクトとのユーザインタラクションの検出に応答して、ポータルリソースを要求してもよい。ポータルリソースは、一般的にリソースへのポータルを提供するオブジェクトの3D環境とは別個であり、3D環境内のウィンドウ内にレンダリングされるか、3D環境とは別にレンダリングされるリソースである。たとえば、ポータルリソースは、ユーザが3D環境において3PCE仮想オブジェクトとインタラクションするときにウェブブラウザにおいて自動的に起動されるウェブサイトであってもよい。ウェブサイトは、3D環境におけるウェブブラウザウィンドウにおいて提示されてもよく、3D環境の外側で別個に起動されてもよい。いくつかの実装形態では、ポータルリソースは、クライアントシステム302にインストールされたサードパーティアプリケーションである。ユーザが3D環境において3PCE仮想オブジェクトとインタラクションするとき、アプリケーションは3D環境のウィンドウ内で起動してもよく、ユーザは3D環境からアプリケーションに自動的に取り出されてもよい。いくつかの実装形態では、ポータルリソースは別の3D環境である。たとえば、ユーザが第1の3D環境において3PCE仮想オブジェクトとインタラクションするとき、クライアントシステム302は、自動的に第1の3D環境を離れ、オブジェクトとのユーザインタラクションが発生したときに、オブジェクトに示されたプライマリコンテンツによって識別されるトピックまたはエンティティに関連する第2の3D環境をレンダリングしてもよい。データストア364は、ポータルリソースに関連するパラメータ、およびインデックス356および358において参照されるサードパーティコンテンツにポータルリソースをリンクする(たとえば、マッピングする)データを記憶する。コンテンツ配信システム352のポータルコントローラは、たとえばユーザがインタラクションした仮想オブジェクト上に示されるサードパーティコンテンツにマッピングされていることに基づいて、クライアントシステム302を導くために特定のリソースを選択するための適格なポータルリソースを決定するためにデータストア364にアクセスしてもよい。
【００７６】
コンテンツセレクタ366は、たとえば3PCE仮想オブジェクトとともに表示するためのプライマリまたはセカンダリサードパーティコンテンツなどの要求に対して勝利したサードパーティコンテンツを選択するコンテンツ配信システム350の構成要素である。勝利したサードパーティコンテンツを決定するためにコンテンツセレクタ366は、要求に関連付けられる様々な選択基準に関して適格なサードパーティコンテンツアイテムを評価する。選択基準は、要求において指定されたキーワードまたは他のコンテキストデータを含んでもよい。いくつかの実装形態では、選択基準は、クライアントシステム302のエンドユーザの関心および嗜好、サードパーティコンテンツプロバイダのプロファイルデータ、ならびに仮想オブジェクトが提示される3D環境に関する情報を示すプロファイルデータを含む。選択基準324は、要求に応答して3PCE仮想オブジェクト上に、または3PCE仮想オブジェクトによって表示するためにサードパーティコンテンツプロバイダが、選択されて返されるプロバイダのサードパーティコンテンツに対して支払う予定の価格を示す、サードパーティコンテンツプロバイダによって記述される入札をさらに含むことが可能である。コンテンツセレクタ366は、選択基準324を所与のサードパーティコンテンツ要求に適用し、勝利したサードパーティコンテンツを選択するために評価プロセスを実行する。
【００７７】
コンテンツ配信システム350はまた、遷移状態モデルセレクタ368を含むことが可能である。遷移状態モデルセレクタ368は、3D環境において3PCE仮想オブジェクトに遷移状態モデルを割り当てるように構成される。遷移状態モデルは、3PCE仮想オブジェクトが第1の表示モードから第2の表示モードに変化するときに実行される動作のタイプを表す。仮想オブジェクトの第2の表示モードは、一般にオブジェクトとのユーザインタラクションが発生するまでは非アクティブ(たとえば、非表示)であり、次いでオブジェクトに割り当てられた遷移状態モデルによって定義される動作の実行をトリガする。たとえば、第1の遷移状態モデルは、セカンダリサードパーティコンテンツが、オブジェクトとのユーザインタラクションに応答して仮想オブジェクト上に表示されることを提供してもよい。第2の遷移状態モデルは、オブジェクトとのユーザインタラクションに応答して3D環境の外側でユーザに送信される外部通知を提供してもよい。第3の遷移状態モデルは、オブジェクトとのユーザインタラクションに応答して起動されるポータルリソースを提供してもよい。遷移状態モデルセレクタ368は、どの遷移状態モデルを3PCE仮想オブジェクトに適用するかを決定する。いくつかの実装形態では、遷移状態モデルセレクタ368は、オブジェクトに割り当てる遷移状態モデルをランダムに選択する。いくつかの実装形態では、遷移状態モデルセレクタ368は、オブジェクトに関連付けられるコンテキストに基づいてオブジェクトに割り当てる遷移状態モデルを選択する。適切な遷移状態モデルは、クライアントシステム302の機能、エンドユーザの嗜好、サードパーティコンテンツプロバイダの嗜好、オブジェクトが配置される3D環境の開発者の嗜好、またはこれらのコンテキストの複数のものに基づいて選択されてもよい。
【００７８】
いくつかの実装形態では、遷移状態モデルセレクタ368は、オブジェクトに割り当てる遷移状態モデルを選択するためにルールのセットを適用する。たとえば、遷移状態モデルセレクタ368はまず、(たとえば、インストールされたプラグインに関する情報を取得するためにクライアントシステムをポーリングするインストールされたプラグインへのクライアントシステムのマッピングを含むインデックスを検索する、またはコンテンツに対する要求からインストールされたプラグインに関する情報を取得することによって、)ポータルリソースを起動するために必要なプラグインがクライアントシステム302にインストールされているかどうかをチェックしてもよい。プラグインがインストールされている場合、遷移状態モデルセレクタ368は、ポータルリソースを使用する遷移状態モデルをオブジェクトに割り当ててもよい。プラグインがインストールされていない場合、別の遷移状態モデルが選択されてもよい。いくつかの実装形態では、サードパーティコンテンツまたは開発者は、どの遷移状態モデルを所与のオブジェクトに適用するべきか、またはどの遷移状態モデルがサードパーティコンテンツのプライマリセットに関連付けられるべきかを指定してもよい。
【００７９】
図4Aおよび図4Bは、3D環境において仮想オブジェクトをレンダリングするための例示的なプロセス400のフローチャートである。クライアントプロセス400は、クライアントシステム302(図3)などのクライアントコンピュータシステムによって実行されてもよい。いくつかの実装形態では、クライアントコンピューティングシステムは、ヘッドマウントディスプレイを通じて提示される没入型3D環境をレンダリングする仮想現実システムである。
【００８０】
ステージ402において、クライアントシステムは3D環境をロードする。3D環境は、3次元においてレンダリングされることが可能な仮想環境である。3D環境の例は、3Dゲームおよびビデオ環境(たとえば、3Dコンサートまたは競技イベントのストリームなどのライブまたは記録されたイベントストリーム)を含む。場合によっては、ユーザは、(たとえば、仮想現実システムにおいて)環境を見回すために頭を動かすことによって、環境内を移動することによって、環境内のオブジェクトを操作することによって、またはこれらの組合せによって仮想3D環境を探索することが可能である。3D環境は、クライアントのメモリサブシステムに記憶された1つまたは複数の定義ファイルにおいて定義されてもよい。いくつかの実装形態では、定義ファイルは、3D環境の視覚的表示を生成するためにレンダリングエンジンによって解釈または実行され(ステージ404)、3D環境の視覚的表示は、特定のタイプのクライアントシステムのための適切なディスプレイ上に提示されてもよい。たとえば、仮想現実システムにおいてヘッドマウントディスプレイが採用されてもよい。
【００８１】
ステージ406において、クライアントシステムは、3D環境に配置されるサードパーティコンテンツ適格(3PCE)仮想オブジェクトを識別する。3PCE仮想オブジェクトは、たとえば3D環境の定義ファイル内にタグ、スクリプト、または実行可能コードを提供することによって宣言されてもよい。クライアントシステムがタグ、スクリプト、または実行可能コードを解釈または実行すると、レンダリングエンジンは、3D環境において指定された任意のパラメータに従って3PCE仮想オブジェクトをインスタンス化してもよい。たとえば、開発者は、3D環境における仮想オブジェクトの形状、サイズ、および場所を示すパラメータ値を指定してもよい。これらおよび他の属性は、オブジェクト上に提示するためのサードパーティコンテンツを選択するためにまたはオブジェクトの遷移状態モデルを選択するために、それぞれコンテンツ配信システムにおけるコンテンツセレクタ、クライアントシステムまたはコンテンツ配信システムにおける遷移状態モデルセレクタ、あるいはその両方によって使用されてもよい。
【００８２】
3PCEオブジェクトは複数の表示モードに関連付けられてもよく、各表示モードは、オブジェクトがサードパーティコンテンツを表示する方法を定義する、あるいは表示モードが起動されたときにオブジェクトに関連付けられる動作を定義する、それぞれの遷移状態モデルに対応する。いくつかの実装形態では、3PCEオブジェクトは、最初ではデフォルト表示モードで起動される。たとえば、デフォルトの表示モードでは、3PCE仮想オブジェクトは比較的基本的なサードパーティコンテンツのプライマリセット(たとえば、画像)を示してもよく、これは3D環境において比較的低い計算コストでレンダリングされてもよい。オブジェクトは、オブジェクトとの持続的なユーザインタラクションなどの所定のイベントの検出時に1つまたは複数の他の表示モードに遷移してもよい。
【００８３】
ステージ408において、クライアントシステムは、第1の表示モードで仮想オブジェクト上に表示するためにサードパーティコンテンツのプライマリセットを取得する。サードパーティコンテンツのプライマリセットを検索するためにクライアントシステムは要求を生成してコンテンツ配信システムに送信する。要求は、サードパーティコンテンツの選択のための任意の明示的な制約と、コンテンツ配信システムのコンテンツセレクタがサードパーティコンテンツのプライマリセットの選択を容易にするために使用してもよいコンテキストデータとを含むことが可能である。いくつかの実装形態では、サードパーティコンテンツのプライマリセットは、それぞれが同じサードパーティコンテンツプロバイダによる配信のために利用可能になったコンテンツアイテムのグループである。一例として、仮想オブジェクトは、第1の表示モードでその面の各々にそれぞれの画像を提示する立方体であってもよい。サードパーティコンテンツのプライマリセットは、立方体の各面に表示するために割り当てられたそれぞれの画像を含んでもよく、各画像は、共通のトピック(たとえば、サードパーティコンテンツプロバイダによって宣伝される製品またはサービス)に関連する。
【００８４】
ステージ410において、レンダリングエンジンは、3D環境における仮想オブジェクトの表示を生成する。本システムは最初に、コンテンツ配信システムから検索されたサードパーティコンテンツのプライマリセットを提示する第1の表示モードでオブジェクトをレンダリングしてもよい。
【００８５】
ステージ412において、クライアントシステムは、ユーザが第1の表示モードで仮想オブジェクトとインタラクションするためにシステムに入力を提供したことを検出する。クライアントシステムは、1つまたは複数のユーザ入力モードを監視する入力ハンドラを含むことが可能であり、ユーザ入力が3PCE仮想オブジェクトを対象とすると決定された場合、本システムは仮想オブジェクトマネージャにアラートを送出してもよい。たとえば、VRシステムでは、入力ハンドラは、ユーザのディスプレイのレチクルが少なくともしきい値の時間長の間オブジェクトに焦点を維持しているかどうかを検出してもよい。レチクルが少なくともしきい値の時間長の間オブジェクトに焦点を合わせている場合(ユーザの視線が少なくともしきい値の時間長の間オブジェクトの方向に維持されていることを示す)、入力ハンドラは、仮想オブジェクトとのユーザインタラクションが検出されたことを示すメッセージを仮想オブジェクトマネージャに渡してもよい。
【００８６】
ステージ414において、入力ハンドラからユーザが3D環境において仮想オブジェクトとインタラクションしたことを示すメッセージの受信に応答して、仮想オブジェクトマネージャは第1の表示モードから第2の表示モードへの仮想オブジェクトの遷移を決定する。図4Bは、仮想オブジェクトのいくつかの可能な遷移を示すステージ414の拡大図を示す。クライアントシステムまたはコンテンツ配信システムにおける遷移状態セレクタは、たとえばエンドユーザ、3D環境開発者、および/またはサードパーティコンテンツのプライマリセットを提出したサードパーティコンテンツプロバイダによって指定される任意の明示的な制約に基づいて、所与の仮想オブジェクトにどの遷移モデルが適用されるかを決定してもよい。追加でまたは代替で、遷移状態セレクタは、ランダムにまたはオブジェクト、3D環境、およびクライアントシステムの技術的機能に関連付けられる暗黙のコンテキストに基づいて、所与の仮想オブジェクトにどの遷移モデルが適用されるかを決定してもよい。たとえば、第1のモデルの下では(416)、仮想オブジェクトは、サードパーティコンテンツのプライマリセットをサードパーティコンテンツの異なる第2のセットに置き換えることによって第1の表示モードから遷移してもよい。ステージ418において、クライアントシステムは、コンテンツ配信システムからサードパーティコンテンツのセカンダリセットを取得する。ステージ420において、クライアントシステムのレンダリングエンジンは、サードパーティコンテンツのセカンダリセットを示すために仮想オブジェクトを再レンダリングする。いくつかの実装形態では、サードパーティコンテンツのセカンダリセットのタイプまたはフォーマットは、サードパーティコンテンツのプライマリセットのタイプまたはフォーマットとは異なってもよい。いくつかの実装形態では、仮想オブジェクトの幾何学的形状を定義する3Dモデルは、オブジェクトによって提示されるサードパーティコンテンツのセットとともに変化してもよい。たとえば、より多くの多角形表面を有するより複雑な仮想オブジェクトは、第1の表示モードよりも第2の表示モードでレンダリングされてもよい。クライアントシステムは、コンテンツ配信システムに新しい3Dモデルを要求し受信してもよい。いくつかの実装形態では、仮想オブジェクトの第1の表示モードと第2の表示モードとの間の遷移は、オブジェクトの視覚的外観を円滑に変更するために仮想オブジェクトをアニメーション化することを含む。
【００８７】
第2の遷移モデルの下で(422)、仮想オブジェクトとのユーザインタラクションは、1つまたは複数の外部通知を生成するためにクライアントシステム、コンテンツ配信システム、またはその両方をトリガする。外部通知は、通知をトリガするためにユーザがインタラクションした仮想オブジェクトを含む3D環境の外側でクライアントシステムのユーザに提供される通知である。ユーザは3D環境、特に没入型の3D仮想現実環境において最小限の撹乱を好む傾向があるので、外部通知は、ユーザが3D環境においてセッションを完了した後に3D環境において遭遇したことをサードパーティコンテンツのユーザに思い出させるための効果的な方法である可能性がある。たとえば、通知メッセージは、ユーザの電子メールアカウント、テキストメッセージングアカウント、RSSフィード、OSレベルの通知サービス、アプリケーションレベルの通知サービス、またはこれらの複数にプッシュされてもよい。特に、仮想オブジェクトとのユーザのインタラクションは、ステージ424において、1つまたは複数の外部環境への通知の生成および送信をトリガする。いくつかの実装形態では、ステージ426において、通知メッセージがユーザのアカウントに送信されているか、または送信されたことを確認するために確認メッセージが仮想オブジェクト上またはその近傍に表示されてもよい。
【００８８】
第3の遷移モデルの下で(428)、仮想オブジェクトとのユーザのインタラクションは、クライアントシステムが外部リソースにポータルすることをトリガする(ステージ430)。オブジェクトの外部リソースはコンテンツ配信システムにおいて指定されてもよく、たとえばオブジェクトとのユーザのインタラクションの検出に応答して、仮想オブジェクトが最初にインスタンス化されたとき、または別のときにクライアントシステムのリソースを識別してもよい。一例としてクライアントシステムは、外部リソースが提示されるアプリケーション(たとえば、ウェブブラウザ)を自動的に起動することによって、外部リソースへのポータルとしてもよい。いくつかの実装形態では、3D環境が閉じられ、注意が外部リソース(たとえば、ウェブブラウザに表示されたウェブサイト)にリダイレクトされる。外部リソースは、仮想オブジェクトが第1の表示モードで表示するサードパーティコンテンツのプライマリセットに関連してもよい。いくつかの実装形態では、クライアントシステムは、たとえば仮想オブジェクトに示されるサードパーティコンテンツのプライマリセットを提出したのと同じサードパーティコンテンツプロバイダによる配信のために提出された異なる3D環境を起動することによって外部リソースへのポータルとする。
【００８９】
図5は、クライアントVRシステム502とコンテンツ配信システム504との間の例示的なプロセス500におけるインタラクションを示すスイムレーン図である。
【００９０】
ステージ506において、VRシステム502は、3PCE仮想オブジェクトが3D環境内に存在すると宣言されたことを識別する。オブジェクトは、たとえば3D環境用の1つまたは複数の定義ファイル内のタグ、スクリプト、または実行可能コードによって宣言されてもよい。
【００９１】
ステージ508において、VRシステム502は、サードパーティコンテンツに対する要求を生成し、コンテンツ配信システム504に送信する。識別された仮想オブジェクトは、たとえば異なるサードパーティコンテンツが表示される複数の表示モードに関連付けられてもよい。いくつかの実装形態では、VRシステム502は、サードパーティオブジェクトの最初に起動された表示モードで表示されるサードパーティコンテンツのプライマリセットのみを最初に検索する。他の表示モードが起動されたときに表示されてもよいサードパーティコンテンツの他のセットの検索は、ユーザが仮想オブジェクトとインタラクションするまで、またはユーザが仮想オブジェクトとインタラクションしようとしている可能性があることをシステム502が検出するまで延期されてもよい。したがって、仮想オブジェクトは、最初はより高速にロードされてもよく、任意のセカンダリサードパーティコンテンツは実際に必要とされるまで(または、おそらく必要とされるまで)検索されなくてもよく、それによってコンテンツ配信システム504からVRシステム502へのサードパーティコンテンツの不必要な送信を回避する。
【００９２】
ステージ510において、コンテンツ配信システム504は、サードパーティコンテンツに対する要求を受信し、初期表示モードで仮想オブジェクトのサードパーティコンテンツのプライマリセットを選択する。ステージ512において、コンテンツ配信システム504は、ネットワークを介してサードパーティコンテンツをVRシステム502に送信する。ステージ514において、VRシステムは、選択されたプライマリコンテンツを受信し、プライマリサードパーティコンテンツでテクスチャ化された仮想オブジェクトをレンダリングする。
【００９３】
ステージ516において、コンテンツ配信システム504は、仮想オブジェクトの第2の表示モードのためのパラメータを決定する。第2のモードパラメータは、仮想オブジェクトが第1の表示モードから第2の表示モードにどのように遷移するか、および第2の表示モードに遷移した結果を示す。いくつかの実装形態では、第2のモードパラメータは、仮想オブジェクトに適用するべき1つまたは複数の遷移モデルを指定する。たとえば、コンテンツ配信システムの遷移モデルセレクタは、仮想オブジェクトに選択された遷移モデルを割り当ててもよく、それはオブジェクトが第1の表示モードから第2のモードに遷移したときにセカンダリサードパーティコンテンツがプライマリサードパーティコンテンツを仮想オブジェクト上で置き換えるかどうか、オブジェクトが第1の表示モードから第2の表示モードに遷移したときに外部通知が生成されるかどうか、およびオブジェクトが第1の表示モードから第2の表示モードに遷移したときに仮想オブジェクトが初期3D環境から外部リソースへのポータルを提供するかどうかを示す。
【００９４】
ステージ518において、コンテンツ配信システム518は、第2のモードパラメータをサードパーティコンテンツサーバ504に送信する。いくつかの実装形態では、VRシステム502は、可能な遷移モデルの各々を運ぶためのローカルロジックを含む。次いで、VRシステム502に送信される第2のモードパラメータは、単に選択された遷移モデルの表示を含んでもよい。他の実装形態では、VRシステム502は、仮想オブジェクトとのユーザインタラクションの検出に応答してコードを実行するために命令を用いてスクリプトまたは他の実行可能コードをVRシステム502に送信してもよい。いくつかの実装形態では、図5に示されるように、コンテンツ配信システム500は、ユーザが仮想オブジェクトとインタラクションする前にステージ516および518を実行する。したがって、VRシステムは、オブジェクトとのユーザインタラクションを検出すると、第2のモードパラメータに従ってオブジェクトを即座に遷移する準備ができている。このようにして、本システムは、オブジェクトとのユーザのインタラクションに応答し、オブジェクトを第2の表示モードに遷移させる際の待ち時間を低減してもよい。しかしながら、他の実施形態では、VRシステム502は、仮想オブジェクトとのユーザインタラクションが実際に検出された後、またはオブジェクトとのユーザインタラクションが発生しようとしているとVRシステム502が検出した後に、コンテンツ配信システム504に第2のモードパラメータを要求してもよい。
【００９５】
ステージ520において、VRシステム502は仮想オブジェクトとのユーザインタラクションを検出し、ユーザインタラクションのエントリはVRシステム502においてログに記録される(ステージ522)。ステージ524において、仮想オブジェクトとのユーザのインタラクションの識別に基づいて、VRシステム502は、第2のモードパラメータに従って仮想オブジェクトを第1の表示モードから第2の表示モードに遷移させる。VRシステム502は、分析のためにユーザインタラクションをコンテンツ配信システムに定期的に報告することが可能である。したがって、ステージ526において、ユーザインタラクションのログは、傾向について分析され、サードパーティコンテンツアイテムの性能メトリクスを評価するためにコンテンツ配信システム504に送信される(ステージ528)。
【００９６】
いくつかの実装形態では、コンテンツ配信システムは、3D環境における仮想オブジェクトとのユーザインタラクションに応答して生成された外部通知のコンバージョンを追跡することによって3PCE仮想オブジェクトに関連付けられるサードパーティコンテンツの性能を評価してもよい。「コンバージョン」は、3D環境における3PCE仮想オブジェクトとのインタラクションから生じる通知に関して、ユーザが取ってもよい特定のアクションを指す。たとえば、ユーザが通知を閲覧した場合、通知において提供されたハイパーリンクをユーザが選択した場合、またはユーザが通知に記載されている製品またはサービスに関連するトランザクション(たとえば、購入トランザクション)を完了した場合、コンバージョンが登録されてもよい。
【００９７】
この目的を達成するために図6は、3PCE仮想オブジェクトとのユーザインタラクションの結果として生成された外部通知に関連付けられるコンバージョンに基づいて、3D環境におけるサードパーティコンテンツ選択を評価するための例示的なプロセス600のフローチャートを示す。いくつかの実装形態では、プロセス600は、コンテンツ配信システム350(図3)のなどのコンテンツ配信システムによって実行される。
【００９８】
ステージ602において、本システムは、ユーザが3D環境において3PCE仮想オブジェクトとインタラクションしたことを識別する。本システムは、仮想オブジェクトに適用される遷移状態モデルを決定する。遷移状態モデルによって指定された場合、本システムは、3D環境におけるオブジェクト上に表示されるサードパーティコンテンツのプライマリセットに関する追加情報を提供するために外部通知を生成することが可能である(ステージ604)。いくつかの実装形態では、本システムは、生成された外部通知、外部通知の生成をもたらしたユーザインタラクション、およびユーザインタラクションに関連付けられるコンテキストデータを識別する(たとえば、データベースサブシステム内の)ログにエントリを記録する。その後、本システムは、通知に関連付けられるコンバージョンアクションの指示を受信してもよい(ステージ606)。たとえば、通知メッセージにおけるハイパーリンクのユーザの選択は、クライアントシステムに、ハイパーリンクのユーザの選択を示すメッセージをコンテンツ配信システムに送信させてもよい。コンバージョンアクションの指示を受信すると、本システムは、コンバージョンアクションと、対応する通知メッセージ、および通知メッセージをトリガしたユーザインタラクションイベントと相関させる(ステージ608)。いくつかの実装形態では、指示されたコンバージョンアクションに基づいて、本システムは、3D環境においてオブジェクトとのユーザインタラクションが発生した時点で、仮想オブジェクト上に表示されたサードパーティコンテンツに割り当てられたスコアを調整する。スコアは、将来サードパーティコンテンツ要求に返すコンテンツを決定する際に、コンテンツセレクタによって使用されてもよい。いくつかの実装形態では、スコアは、コンテンツ配信システムが、コンバージョンアクションの結果としてスコアが割り当てられるサードパーティコンテンツを選択する可能性を高めるように調整される(ステージ610)。
【００９９】
図7は、コンピュータシステム700の概略図である。システム700は、いくつかの実装形態による、上記に記載のコンピュータ実装方法、システム、デバイス、および他の技法のうちのいずれかに関連して説明した動作を実行するために使用されてもよい。システム700は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどの様々な形態のデジタルコンピュータを含むことが意図されている。システム700はまた、携帯情報端末、セルラー電話、スマートフォン、および他の同様のコンピューティングデバイスなどのモバイルデバイスを含むことが可能である。さらに、本システムは、ユニバーサルシリアルバス(USB)フラッシュドライブなどのポータブル記憶媒体を含むことが可能である。たとえば、USBフラッシュドライブは、オペレーティングシステムおよび他のアプリケーションを記憶してもよい。USBフラッシュドライブは、別のコンピューティングデバイスのUSBポートに挿入されてもよいワイヤレストランスミッタまたはUSBコネクタなどの入力/出力構成要素を含むことが可能である。システム700は、プロセッサ710、メモリ720、ストレージデバイス730、および入力/出力デバイス740を含む。構成要素710、720、730、および740の各々は、システムバス750を使用して相互接続される。プロセッサ710は、システム700内での実行のための命令を処理することができる。本プロセッサは、いくつかのアーキテクチャのうちの任意のものを使用して設計されてもよい。たとえば、プロセッサ710は、CISC(複合命令セットコンピュータ)プロセッサ、RISC(縮小命令セットコンピュータ)プロセッサ、またはMISC(最小命令セットコンピュータ)プロセッサであってもよい。
【０１００】
いくつかの実装形態では、プロセッサ710はシングルスレッドプロセッサである。別の実装形態では、プロセッサ710はマルチスレッドプロセッサである。プロセッサ710は、入力/出力デバイス740上にユーザインターフェースのグラフィカル情報を表示するためにメモリ720またはストレージデバイス730に記憶された命令を処理することができる。
【０１０１】
メモリ720はシステム700内の情報を記憶する。一実装形態では、メモリ720はコンピュータ可読媒体である。一実装形態では、メモリ720は揮発性メモリユニットである。別の実装形態では、メモリ720は不揮発性メモリユニットである。
【０１０２】
ストレージデバイス730はシステム400の大容量ストレージを提供することができる。一実装形態では、ストレージデバイス730はコンピュータ可読媒体である。様々な異なる実装形態では、ストレージデバイス730は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイスであってもよい。
【０１０３】
入力/出力デバイス740はシステム400に入力/出力動作を提供する。一実装形態では、入力/出力デバイス740はキーボードおよび/またはポインティングデバイスを含む。別の実装形態では、入力/出力デバイス740はグラフィカルユーザインターフェースを表示するための表示ユニットを含む。
【０１０４】
記載された特徴は、デジタル電子回路において、またはコンピュータハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せにおいて実装されてもよい。本装置は、たとえばプログラム可能なプロセッサによる実行のために機械可読ストレージデバイスなどの情報媒体に有形に組み込まれたコンピュータプログラム製品において実装されることが可能であり、方法ステップは、入力データを操作して出力を生成することによって、説明された実装形態の機能を実行するために命令のプログラムを実行するプログラム可能なプロセッサによって実行されてもよい。説明される特徴は、データストレージシステムからデータおよび命令を受信し、データストレージシステムに少なくとも1つのデータおよび命令を送信するように結合される少なくとも1つのプログラム可能なプロセッサと、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含むプログラム可能なシステム上で実行可能な1つまたは複数のコンピュータプログラムにおいて、有利に実装されてもよい。コンピュータプログラムは、あるアクティビティを実行するためにまたは特定の結果をもたらすためにコンピュータにおいて直接的または間接的に使用されることが可能な命令のセットである。コンピュータプログラムは、コンパイル型言語またはインタプリタ型言語を含む任意の形式のプログラミング言語で記述されることが可能であり、スタンドアロンプログラムとしてあるいはモジュール、コンポーネント、サブルーチン、またはコンピューティング環境での使用に適した他のユニットとして任意の形態で配置されてもよい。
【０１０５】
命令のプログラムを実行するために適したプロセッサは、一例として汎用マイクロプロセッサおよび専用マイクロプロセッサの両方、および任意の種類のコンピュータの唯一のプロセッサまたは複数のプロセッサのうちの1つを含む。一般に、プロセッサは、読出し専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリである。一般に、コンピュータはまた、データファイルを記憶するための1つまたは複数の大容量ストレージデバイスを含むか、またはそれと通信するために動作可能に結合され、そのようなデバイスは、内蔵ハードディスクおよびリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびに光ディスクなどを含む。コンピュータプログラム命令およびデータを有形に組み込むために適したストレージデバイスは、一例としてEPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクやリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含むすべての形態の不揮発性メモリを含む。プロセッサおよびメモリは、ASIC(特定用途向け集積回路)によって補完されることが可能であり、またはそれに組み込まれることが可能である。
【０１０６】
ユーザとのインタラクションを提供するためにユーザに情報を表示するためのCRT(ブラウン管)やLCD(液晶ディスプレイ)モニタなどのディスプレイデバイスと、ユーザがコンピュータに入力を提供することが可能であるキーボード、およびマウスやトラックボールなどのポインティングデバイスを備えたコンピュータに機能が実装されてもよい。さらに、そのようなアクティビティは、タッチスクリーンフラットパネルディスプレイおよび他の適切なメカニズムを介して実装されてもよい。
【０１０７】
特徴は、データサーバなどのバックエンド構成要素を含む、あるいはアプリケーションサーバまたはインターネットサーバなどのミドルウェア構成要素を含む、あるいはグラフィカルユーザインターフェースまたはインターネットブラウザを備えたクライアントコンピュータなどのフロントエンド構成要素を含む、あるいはそれらの組合せを含むコンピュータシステムにおいて実装されてもよい。本システムの構成要素は、通信ネットワークなどの任意の形態または媒体のデジタルデータ通信によって接続されてもよい。通信ネットワークの例は、ローカルエリアネットワーク("LAN")、ワイドエリアネットワーク("WAN")、ピアツーピアネットワーク(アドホックまたは静的メンバを有する)、グリッドコンピューティングインフラストラクチャ、およびインターネットを含む。
【０１０８】
コンピュータシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは一般に互いに遠隔であり、典型的には記述されたものなどのネットワークを通じて相互作用する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【０１０９】
本明細書は、多くの具体的な実装形態の詳細を含むが、これらは、任意の発明の範囲または特許請求される可能性のある範囲を限定するものではなく、むしろ特定の発明の特定の実装形態に特有の特徴の説明として解釈されるべきである。別個の実装形態の文脈において本明細書で説明される特定の特徴もまた、単一の実装形態において組み合わせて実装されてもよい。逆に、単一の実装形態の文脈において説明される様々な特徴はまた、複数の実装形態において個別に、または任意の適切なサブコンビネーションにおいて実装されてもよい。さらに、特徴は、特定の組合せにおいて作用するものとして上記で説明されており、当初はそのように主張されているものであっても、場合によっては請求された組合せからの1つまたは複数の特徴を組合せから切り出すことが可能であり、請求された組合せは、サブコンビネーションまたはサブコンビネーションのバリエーションを対象としてもよい。
【０１１０】
同様に、動作は特定の順序で図面に示されるが、これは、望ましい結果を達成するためにそのような動作が示された特定の順序または逐次的な順序で実行されること、あるいは図示されたすべての動作が実行されることを必要とするものとして理解されるべきではない。特定の状況では、マルチタスク処理および並列処理が有利な場合がある。さらに、上述の実装形態における様々なシステム構成要素の分離は、すべての実装形態においてそのような分離を必要とするものとして理解されるべきではなく、記載されたプログラム構成要素およびシステムは、一般に単一のソフトウェア製品にともに統合されるか、または複数のソフトウェア製品にパッケージ化されてもよいことが理解されるべきである。
【０１１１】
したがって、本主題の特定の実装形態が説明された。他の実装形態は、以下の請求項の範囲内にある。場合によっては、請求項に列挙されたアクションは異なる順序で実行され、依然として望ましい結果を達成することが可能である。さらに、添付の図面に示されるプロセスは、望ましい結果を達成するために示された特定の順序または逐次的な順序を必ずしも必要としない。特定の実装形態では、マルチタスク処理および並列処理が有利な場合がある。
【符号の説明】
【０１１２】
100  フレームワーク
102  ネットワーク
104  3Dアプリケーションサーバ
106  ユーザデバイス
108  サードパーティコンテンツサーバ
110  サードパーティコンテンツ配信システム
112  要求
114  複数のコンピューティングデバイス
116  サードパーティコーパスデータベース
117a〜117c  タスク
118a〜118c  結果
120  応答データ
121  サードパーティ要求(3PR)
122  サードパーティデータ(TPデータ)
202  サードパーティコンテンツ適格(3PCE)仮想オブジェクト
202a〜c  画像
204  第2の3Dモデル
206  ビデオプレーヤ
208  ポップアップ通知メッセージ
300  クライアントコンピューティングシステム
302  クライアントコンピューティングシステム
304  ディスプレイ
306  メモリサブシステム
308  3D環境レンダリングエンジン
310  入力ハンドラ
312  仮想オブジェクトマネージャ
314  ネットワークインターフェース
350  コンテンツ配信システム
352  フロントエンドサーバ
354  サードパーティコンテンツデータベース
356  インデックス
358  インデックス
360  サードパーティコンテンツ属性/サードパーティコンテンツ属性データストア
362  外部通知/外部通知データストア
364  ポータルパラメータ/ポータルパラメータデータストア
366  コンテンツセレクタ
368  遷移状態モデルセレクタ
370  第1のデータリポジトリ
372  第2のデータリポジトリ
374  第3のデータリポジトリ
400  プロセス/クライアントプロセス
500  プロセス
502  クライアントVRシステム
504  コンテンツ配信システム/サードパーティコンテンツサーバ
518  コンテンツ配信システム
600  プロセス
700  システム
710  プロセッサ
720  メモリ
730  ストレージデバイス
740  入力/出力デバイス
750  システムバス
【図１】
2020098618.tif 000003
【図２Ａ】
2020098618.tif 000004
【図２Ｂ】
2020098618.tif 000005
【図２Ｃ】
2020098618.tif 000006
【図２Ｄ】
2020098618.tif 000007
【図３】
2020098618.tif 000008
【図４Ａ】
2020098618.tif 000009
【図４Ｂ】
2020098618.tif 000010
【図５】
2020098618.tif 000011
【図６】
2020098618.tif 000012
【図７】
2020098618.tif 000013
【手続補正書】
【提出日】令和2年2月14日(2020.2.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピューティングシステムであって、
(i)3次元(3D)環境を定義し、かつ(ii)前記3D環境において仮想オブジェクトを識別する第1のデータを記憶するように構成されるメモリサブシステムと、
前記3D環境内に前記仮想オブジェクトとともに表示するためにネットワークを介してサードパーティコンテンツに対する要求を送信し、かつ前記要求に応じてサードパーティコンテンツを受信するように構成される通信インターフェースと、
前記メモリサブシステムおよび前記通信インターフェースとインタラクトするように1つまたは複数のデータ処理装置であって、
コンピューティングシステムのディスプレイ上に、3次元(3D)環境を表示することと、
前記3D環境に含まれる仮想オブジェクトとのユーザインタラクションの前に、前記コンピューティングシステムによって前記3D環境において、前記仮想オブジェクトが第1のサードパーティコンテンツのセットを提示する、第1の表示モードにおける前記仮想オブジェクトをレンダリングすることであって、前記第1の表示モードが、前記第1の表示モードにおいて前記仮想オブジェクトをレンダリングするための第1の計算要求を有する、レンダリングすることと、
前記仮想オブジェクトが前記第1の表示モードにおいてレンダリングされる間に、前記3D環境における前記仮想オブジェクトとのユーザインタラクションに応答して、前記3D環境における前記仮想オブジェクトの表示を、前記第1のサードパーティコンテンツのセットとは異なる第2のサードパーティコンテンツのセットを提示する、第2の表示モードに遷移させることであって、前記第2の表示モードが、前記第1の表示モードにおける前記仮想オブジェクトをレンダリングするための前記第1の計算要求よりも高い、前記仮想オブジェクトをレンダリングするための第2の計算要求を有する、遷移させることと
を備える動作を実施するように構成される、1つまたは複数のデータ処理装置と
を備える、コンピューティングシステム。
【請求項２】
前記ディスプレイがヘッドマウントディスプレイであり、
前記3D環境が、前記ヘッドマウントディスプレイを使用して閲覧されるように構成される仮想現実(VR)環境である、
請求項1に記載のコンピューティングシステム。
【請求項３】
前記1つまたは複数のデータ処理装置が、
前記システムが前記第2のサードパーティコンテンツのセットを取得する前に、前記仮想オブジェクトを前記第1の表示モードでレンダリングし、
前記第1の表示モードにおいて前記3D環境における前記仮想オブジェクトとのユーザインタラクションが発生しようとしていると識別することに基づいて、前記第2のサードパーティコンテンツのセットに対する要求を送信する
動作を実施するように構成される、請求項1に記載のコンピューティングシステム。
【請求項４】
前記第1のサードパーティコンテンツのセットが画像の集合を備え、
前記第1の表示モードにおいて、前記仮想オブジェクトが、3D幾何学的形状を形成する多角形表面の集合を備え、
前記1つまたは複数のデータ処理装置が、前記多角形表面の集合の各多角形表面上に前記画像の集合からのそれぞれの画像を表示することによって、前記第1の表示モードにおいて前記仮想オブジェクトをレンダリングする動作を実施するように構成される、
請求項1に記載のコンピューティングシステム。
【請求項５】
前記仮想オブジェクトが前記第1の表示モードでレンダリングされるとき、前記仮想オブジェクトの前記多角形表面の集合が立方体を形成する、請求項4に記載のコンピューティングシステム。
【請求項６】
前記1つまたは複数のデータ処理装置が、
前記仮想オブジェクトの前記レンダリングを前記第1の表示モードから前記第2の表示モードに遷移させる命令の受信に応答して、前記第2のサードパーティコンテンツのセットを現すために前記立方体をアニメーション化する
動作を実施するように構成される、請求項4に記載のコンピューティングシステム。
【請求項７】
前記画像の集合の各画像が、同じトピックまたはエンティティに関連するコンテンツを表す、請求項4に記載のコンピューティングシステム。
【請求項８】
前記1つまたは複数のデータ処理装置が、
前記3D環境内のユーザの現在の閲覧位置を移動させるためのユーザ入力を受信し、
前記ユーザの現在の閲覧位置と前記第1の表示モードにおける前記3D環境における前記仮想オブジェクトの前記レンダリングの位置との間の関係を検出し、
前記3D環境内の前記ユーザの現在の閲覧位置と前記3D環境における前記仮想オブジェクトの前記レンダリングの前記位置との間の前記関係が1つまたは複数の基準を満たすという判定に基づいて、前記3D環境における前記仮想オブジェクトの前記レンダリングを前記第1の表示モードから前記第2の表示モードに遷移させる
動作を実施するように構成される、請求項1に記載のコンピューティングシステム。
【請求項９】
前記3D環境内の前記ユーザの現在の閲覧位置と前記3D環境における前記仮想オブジェクトの前記レンダリングの前記位置との間の前記関係が、前記3D環境内の前記ユーザの現在の閲覧位置と前記3D環境における前記仮想オブジェクトの前記レンダリングの前記位置との間の距離であり、前記仮想オブジェクトマネージャが、前記ユーザの現在の閲覧位置と前記仮想オブジェクトの前記レンダリングの前記位置との間の前記距離が前記3D環境内でしきい値距離未満であるという判定に基づいて、前記3D環境における前記仮想オブジェクトの前記レンダリングを前記第1の表示モードから前記第2の表示モードに遷移させるように構成される、請求項8に記載のコンピューティングシステム。
【請求項１０】
前記1つまたは複数のデータ処理装置が、
前記3D環境におけるユーザの視線の方向を監視し、
前記ユーザの視線が前記仮想オブジェクトの前記レンダリングの方向にあると識別することに基づいて、前記3D環境における前記第1のユーザインタラクションを検出する
動作を実施するように構成される、請求項1に記載のコンピューティングシステム。
【請求項１１】
前記1つまたは複数のデータ処理装置が、前記3D環境における前記ユーザの視線が所定の時間長の間前記仮想オブジェクトの方向に維持されたと識別することに基づいて、前記仮想オブジェクトの前記レンダリングを前記第1の表示モードから前記第2の表示モードに遷移させる動作を実施するように構成される、請求項10に記載のコンピューティングシステム。
【請求項１２】
前記1つまたは複数のデータ処理装置が、
ハンドベースのコントローラから入力を受信し、
ユーザの視線が前記3D環境における前記仮想オブジェクトの前記レンダリングの方向にある間に前記ハンドベースのコントローラから受信した第1の入力に基づいて、前記3D環境における前記第1のユーザインタラクションを検出する
動作を実施するように構成される、請求項1に記載のコンピューティングシステム。
【請求項１３】
前記1つまたは複数のデータ処理装置が、
前記第1の表示モードにおける前記仮想オブジェクトの前記レンダリングのとの前記3D環境における前記ユーザインタラクションに応答して、前記3D環境の外側のユーザ通知の生成をトリガすることであって、前記ユーザ通知が、前記第1の表示モードにおける前記仮想オブジェクトの前記レンダリングにおける、前記3D環境において表示される前記第1のサードパーティコンテンツのセットに関連付けられるトピックまたはエンティティに関連する、請求項1に記載のコンピューティングシステム。
【請求項１４】
前記仮想オブジェクトが前記第1の表示モードで表示する前記第1のサードパーティコンテンツのセットの前記タイプが画像であり、前記仮想オブジェクトが前記第2の表示モードで表示する前記第2のサードパーティコンテンツのセットの前記タイプがビデオまたは3Dモデルである、請求項1に記載のコンピューティングシステム。
【請求項１５】
コンピューティングシステムのディスプレイ上に3次元(3D)環境を表示するステップと、
前記3D環境に含まれる仮想オブジェクトとのユーザインタラクションの前に、前記コンピューティングシステムによって前記3D環境において、前記仮想オブジェクトが第1のサードパーティコンテンツのセットを提示する、第1の表示モードにおける前記仮想オブジェクトをレンダリングするステップであって、前記第1の表示モードが、前記第1の表示モードにおいて前記仮想オブジェクトをレンダリングするための第1の計算要求を有する、ステップと、
前記仮想オブジェクトが前記第1の表示モードにおいてレンダリングされる間に、前記3D環境における前記仮想オブジェクトとのユーザインタラクションに応答して、前記3D環境における前記仮想オブジェクトの表示を、前記第1のサードパーティコンテンツのセットとは異なる第2のサードパーティコンテンツのセットを提示する、第2の表示モードに遷移させるステップであって、前記第2の表示モードが、前記第1の表示モードにおける前記仮想オブジェクトをレンダリングするための前記第1の計算要求よりも高い、前記仮想オブジェクトをレンダリングするための第2の計算要求を有する、ステップと
を備える、コンピュータ実装方法。
【請求項１６】
前記第1のサードパーティコンテンツのセットが画像の集合を備え、前記第1の表示モードで前記仮想オブジェクトをレンダリングすることが、前記画像の集合からのそれぞれの画像を示す立方体の各面上に前記立方体をレンダリングすることを備え、前記第2のサードパーティコンテンツのセットがビデオを備え、前記第1の表示モードから前記第2の表示モードに前記仮想オブジェクトを遷移させることが、前記3D環境において前記ビデオを再生することを備える、請求項15に記載のコンピュータ実装方法。
【請求項１７】
前記第1の表示モードにおける前記仮想オブジェクトの前記3D環境における前記レンダリングとの前記ユーザインタラクションまたは別のユーザインタラクションを識別することに応答して、前記コンピューティングシステムとは別個のサーバから前記第2のコンテンツのセットを検索するステップをさらに備える、請求項15に記載のコンピュータ実装方法。
【請求項１８】
ハンドベースのコントローラから入力を受信するステップと、
ユーザの視線が前記3D環境における前記仮想オブジェクトの前記レンダリングの方向にある間に前記ハンドベースのコントローラから受信した第1の入力に基づいて、前記3D環境における前記第1のユーザインタラクションを検出するステップと
をさらに備える、請求項15に記載のコンピュータ実装方法。
【請求項１９】
前記3D環境内のユーザの現在の閲覧位置を移動させるためのユーザ入力を受信するステップと、
前記ユーザの現在の閲覧位置と前記第1の表示モードにおける前記3D環境における前記仮想オブジェクトの前記レンダリングの前記位置との間の関係を検出するステップと、
前記3D環境内の前記ユーザの現在の閲覧位置と前記3D環境における前記仮想オブジェクトの前記レンダリングの前記位置との間の前記関係が1つまたは複数の基準を満たすという判定に基づいて、前記3D環境における前記仮想オブジェクトの前記レンダリングを前記第1の表示モードから前記第2の表示モードに遷移させるステップと
をさらに備える、請求項15に記載のコンピュータ実装方法。
【請求項２０】
前記3D環境内の前記ユーザの現在の閲覧位置と前記3D環境における前記仮想オブジェクトの前記レンダリングの前記位置との間の前記関係が、前記3D環境内の前記ユーザの現在の閲覧位置と前記3D環境における前記仮想オブジェクトの前記レンダリングの前記位置との間の距離であり、前記仮想オブジェクトマネージャが、前記ユーザの現在の閲覧位置と前記仮想オブジェクトの前記レンダリングの前記位置との間の前記距離が前記3D環境内でしきい値距離未満であるという判定に基づいて、前記3D環境における前記仮想オブジェクトの前記レンダリングを前記第1の表示モードから前記第2の表示モードに遷移させるように構成される、請求項19に記載のコンピュータ実装方法。
【外国語明細書】
2020098618000001.pdf