本開示の以下の実施態様は、コンパニオンロボットまたはデバイスからの、空間的な、ユーザが認識している、第2のスクリーンの投影に関する、デバイス、方法、及びシステムを提供する。しかし、当業者には、本開示が、本明細書に記載される特定の詳細のいくつかまたはすべてを伴わずに実施され得ることが明らかとなる。他の例では、周知のプロセスの操作が、本開示を不必要に不明瞭にしないために、詳細には記載されない。
図1は、本開示の実施態様に係る、バーチャル空間の第2のビューの、ロボットによる投影を示す図である。図示の実施態様では、ユーザ100が、ディスプレイ104上にレンダリングされた、バーチャル空間/環境の第1のビュー116とインタラクトして示されている。いくつかの実施態様では、バーチャル空間は、ビデオゲームのバーチャル空間である。他の実施態様では、バーチャル空間は、限定ではないが、ローカルで実行されるインタラクティブアプリケーション、クラウドで実行されるアプリケーション、クラウドプラットフォーム、ソーシャルネットワーク、ウェブサイト、遠距離通信プラットフォーム、ビデオ会議、オンラインチャットルームなどを含む、ユーザがインタラクトする場合があるバーチャル空間またはバーチャル環境を提供する、任意のタイプのアプリケーションまたはプラットフォームのバーチャル空間である。バーチャル空間をサポートするそのようなアプリケーションまたはプラットフォームが、同じバーチャル空間内で同時にインタラクトする複数のユーザを収容するように構成され得ることを理解されたい。
いくつかの実施態様では、バーチャル空間を生成する、インタラクティブアプリケーション(たとえばビデオゲーム)が、ローカルコンピュータデバイス106によって実行される。コンピュータデバイスは、限定ではないが、ゲーミングコンソール、パーソナルコンピュータ、ラップトップコンピュータ、セットトップボックス、タブレット、携帯電話、ポータブルゲーミングデバイスなどを含む、バーチャル空間を生成するためにインタラクティブアプリケーションを実行するように構成される場合がある、任意の種類のデバイスとすることができる。いくつかの実施態様では、コンピュータデバイス106は、ローカルエリアネットワーク、ワイドエリアネットワーク、WiFi(登録商標)ネットワーク、セルラネットワーク、インターネットなどのネットワークに接続されている。
いくつかの実施態様では、コンピュータデバイス106は、バーチャル空間の第1のビュー116を得るために、ネットワーク(たとえば、インターネット)上で、クラウドサービスのプロバイダと通信するシンクライアントである。すなわち、インタラクティブアプリケーションは、バーチャル空間を生成するために、クラウドサービスプロバイダによって実行され、バーチャル空間の第1のビューを描くビデオデータは、コンピュータデバイス106に対し、ネットワーク(たとえば、インターネット)上でストリーミングされ、コンピュータデバイス106は、次いで、第1のビュー116をディスプレイ104に対してレンダリングするために、ビデオデータを処理する。
いくつかの実施態様では、コンピュータデバイス106の機能性は、ディスプレイ104に組み込まれている。
ディスプレイ104を通して見られるバーチャル空間とインタラクトするために、ユーザ100は、入力デバイス102を操作する場合がある。入力デバイス102は、限定ではないが、コントローラ、モーションコントローラ、キーボード、マウス、トラックパッド、ポインタ、ジョイスティック、ゲーム周辺機器などを含む、バーチャル空間とインタラクトするように、入力を提供するために有用である任意のタイプのデバイスとすることができる。いくつかの実施態様では、バーチャル空間がビデオゲームのバーチャル空間であり、入力デバイス102は、ゲームプレイの、ビデオゲームの場面におけるアクション(たとえば、キャラクタまたは他のバーチャルオブジェクトのアクション)を制御することなどにより、ユーザ100が、ビデオゲームへ入力を提供することを可能にして、ビデオゲームのゲーム状況の変化に影響する。実施例として、限定ではないが、入力デバイスの実施例には、DualShock(登録商標)4 Wireless Controller、PlayStation(登録商標)Move Motion Controller、及びPlaystation(登録商標)VR Aim Controllerなどの、ビデオゲームコントローラデバイスが含まれ得る。
いくつかの実施態様では、画像取得デバイス107は、インタラクトするローカル環境101の画像を取得するように構成されている。画像取得デバイスの一実施例は、PlayStation(登録商標)Cameraである。コンピュータデバイス106は、たとえば、限定ではないが、入力デバイス102などの、ローカル環境101内のオブジェクトの位置/向きを判定するために、取得された画像を処理及び分析するように構成され得る。いくつかの実施態様では、入力デバイス102は、ライトまたは他の認識可能な特徴などの、追跡可能な特徴を含む場合がある。この追跡可能な特徴は、取得された画像内で認識され、追跡され、それにより、ローカル環境101内の入力デバイス102の位置/向きを追跡する。さらに、画像取得デバイス107によって取得された画像は、ユーザ100を識別し、追跡するために、分析される場合がある。
同様に示されているのは、画像取得デバイス110及びプロジェクタ112を含むロボット108である。画像取得デバイス110は、ユーザ100の画像を取得し、この画像は、ユーザ100の視線の方向を判定するために分析される。このユーザ100の視線の方向は、ユーザが見ている方向である。この方向は、ユーザの身体の位置及び姿勢、ユーザの頭の位置、ユーザの目の位置など、ユーザの位置及び移動の態様を追跡し、分析することから判定され得る。本開示の範囲から逸脱することなく、画像分析に基づくユーザの視線の方向を判定するための任意の技術を適用することができる。いくつかの実施態様では、ユーザ100、またはユーザの任意の部位(たとえば、脚、胴、首、目など)は、視線追跡を促進するために、モデル化され得る。いくつかの実施態様では、ユーザの身体の特定の部位が、ユーザ100の視線の方向の追跡を可能にするために、追跡される。いくつかの実施態様では、ユーザの身体の追跡される部位は、視線の方向を判定するために、モデルに適用され得る。ユーザの注視する方向を追跡することを可能にするために、ロボット108が、様々な位置及び向きに移動するように構成され得ることを理解されたい。たとえば、ロボット108は、ロボット108の画像取得デバイス110が、ユーザの目の画像を取得する(または、取得し続ける)ことが可能であるように、ロボット108自体を再配置する場合がある。
様々な実施態様では、視線追跡が、ロボット108を通して、及び/または、システム内の他のデバイスを通して取得された情報の様々な断片によって可能にされ得ることを理解されたい。いくつかの実施態様では、ユーザ100の視線の方向は、ローカル環境101内のロボット108の判定された位置/向きと組み合わせて、ロボット108の画像取得デバイス110によって取得された上述の画像に基づいて判定される。いくつかの実施態様では、ロボット108の位置/向きは、例として、限定ではなく、モーションセンサ(たとえば、加速度計、ジャイロスコープ、磁気計、慣性モーションユニット(IMU))からのデータ、画像取得デバイス110によって取得された画像、ネットワークポジショニング(たとえば、GPS、WiFi(登録商標)のポジショニング)、位置推定と地図生成の同時実行(SLAM:simultaneous localization and mapping)などを含む、ロボット自体によって検知されたか処理された情報に少なくとも部分的に基づいて判定される。いくつかの実施態様では、ロボット108の位置/向きは、画像取得デバイス107によって取得された画像の分析に少なくとも部分的に基づいて判定される。いくつかの実施態様では、ロボット108は、ローカル環境101内に位置する1つまたは複数の磁気エミッタによって放出された1つまたは複数の磁場を検知するように構成された、1つまたは複数の磁気センサを含んでおり、ロボット108の位置/向きは、そのようなデータに少なくとも部分的に基づいて判定され得る。
いくつかの実施態様では、コントローラ102の位置/向きは、判定及び追跡され、この位置/向きは、少なくとも部分的に、ユーザの視線の方向の追跡を可能にするために使用される。様々な実施態様では、コントローラ102の位置/向きは、例として、限定ではなく、画像取得デバイス107によって取得された画像の分析、コントローラ102内のモーションセンサ(たとえば、加速度計、ジャイロスコープ、磁気計、IMU)によって検出されたセンサデータ、1つまたは複数の磁気エミッタによって放出された磁場を検知する1つまたは複数の磁気センサ、コントローラ102に含まれる画像取得デバイスによって取得された画像、ネットワークポジショニングなどを含む、様々な情報に基づいて追跡され得る。ユーザ100の視線の方向は、コントローラ102の位置/向きに対して、または、コントローラ102の位置/向きからのオフセットとして、判定され得る。たとえば、いくつかの実施態様では、コントローラ102の位置/向きは、上述のように判定及び追跡され得、ロボット108の画像取得デバイス110は、コントローラ102及びユーザ100を含む画像を取得する場合がある。ローカル環境101におけるコントローラ102の既知の位置/向きを使用し、また、ロボット108の画像取得デバイス110によって取得された画像を分析することで、コントローラ102に対するユーザ100の視線の方向が判定及び追跡され得る。
いくつかの実施態様では、ロボット108及びコントローラ102の位置/向きは、別々に判定され、この情報を、ロボット108の画像取得デバイス110によって取得されたユーザの画像の分析とともに使用することで、コントローラ102及び/またはロボット108に対するユーザ100の視線の方向が判定され得る。
いくつかの実施態様では、コントローラ102は、ユーザ100による操作の間にユーザ100の画像を取得するように構成された画像取得デバイス(図示せず)を含んでいる(たとえば、コントローラ102がユーザによって保持されている場合に、ユーザ100に向けられるように構成されている)。そのような画像は、コントローラ102によって検出されたセンサデータとともに、ロボット108に送信され得、そのような画像は、ユーザ100の視線の方向を判定するために、ロボット108によって使用される場合がある。
ロボット108は、バーチャル空間の第2のビュー118を、ローカル環境101内の表面上に投影するように構成されたプロジェクタ112を含んでいる。この表面は、ローカル環境101内の任意の適切な表面とすることができ、この表面上に、画像またはビデオを投影することができ、ユーザ100によって見られ得る。いくつかの実施態様では、適切な表面は、実質的に一様であるかほぼ一様な配色の、任意の実質的にフラットな表面とすることができる。適切な表面が、予め規定された最小の寸法またはサイズをも有する場合があることを理解されたい。ロボット108は、部屋などのローカル環境をスキャンして、投影するために適切な1つまたは複数の表面を識別するように構成され得る。例として、限定ではなく、投影のための表面は、壁(たとえば、図示の実施態様における壁120、122、または124)、天井、プロジェクタスクリーン、スクリーン/シェード、カーテン/垂れ布などを含むことができる。
ロボット108は、バーチャル空間の第2のビューを適切な表面上に投影することが可能であるように、ローカル環境内のある位置に移動することができる。たとえば、ロボット108は、投影を妨げる場合がある障害物または他のオブジェクトを避けるように、ロボット108自体を再配置する場合がある。
図示の実施態様では、プロジェクタ112は、バーチャル空間の第2のビュー118を壁120上に投影する。壁120は、ディスプレイデバイス104のディスプレイ表面105に対し、側方にある壁である。すなわち、第1のビュー116がレンダリングされたディスプレイデバイス104のディスプレイ表面105は、ユーザの視線の方向が前方向に向いている場合に、ユーザ100によって見られる前面を規定する。一方、側壁120は、ユーザの視線の方向が(前方向に対しての)横方向に向いている場合に、ユーザ100によって見られる側面を規定する。図示の実施態様では、壁120は、ディスプレイデバイス104のディスプレイ表面105、及び前壁122に対してほぼ垂直である。しかし、他の実施態様では、図示の壁の向きが、互いに対して、及び、ディスプレイデバイス104のディスプレイ表面105に対して、様々である場合があることを理解されたい。
壁120上に投影された第2のビュー118は、第1のビュー116に対し、空間的に調整されるように構成されている。すなわち、第2のビュー118は、第1のビューがレンダリングされる表面と第2のビューがレンダリングされる表面と(たとえば、ディスプレイ104と、ビュー118が投影される壁120の領域119と)の空間的関係によって判定される方式、または空間的関係と類似した方式、または空間的関係に基づく方式で、バーチャル空間の第1のビュー116に(バーチャル空間の場面において)空間的に関連するバーチャル空間のビューを提供する。たとえば、ユーザ100の前のディスプレイ104にレンダリングされる第1のビュー116は、バーチャル空間内のバーチャルビューポイントの視点からの前方向のビューである場合があり、一方、側壁120上に投影される第2のビュー116は、バーチャルビューポイントの視点からの横方向のビューである場合がある。このことは、ディスプレイ104と壁120との、互いに対する位置及び向きに、少なくとも部分的に基づくことができる。
いくつかの実施態様では、バーチャルビューポイントは、バーチャルキャラクタ/人、バーチャル車両、バーチャルウェポンなどの、ユーザ100によってコントロールされるバーチャルオブジェクトの位置によって規定される。バーチャルビューポイントは、バーチャル環境内の位置であり、この位置から、バーチャル環境のビューを生成することができる。
いくつかの実施態様では、第2のビュー118は、ディスプレイ104上の第1のビュー116のレンダリングと関連して、ロボット108によって投影される。
いくつかの実施態様では、第2のビュー118は、ユーザ100の視線の方向が壁120、または、ビュー118が投影されている壁120の投影領域119に向けられている場合に、ロボット108によって投影される。さらに、いくつかの実施態様では、第2のビュー118の投影は、ユーザの視線の方向が壁120、または、ビュー118が投影される壁120の領域119に向けられていない場合に、停止される場合がある。第2のビュー118は、このため、ユーザ100の視線の方向が、第2のビューが投影される壁または領域に向けられているかに応じて、オンデマンドの方式で提供され得る。
いくつかの実施態様では、第2のビュー118の投影は、ユーザの視線の方向が、壁120、または第2のビュー118が投影されている領域119に向けられている方向に変化するか、この方向への閾値を通過したことが判定された際に、作動される。
いくつかの実施態様では、第2のビュー118が壁120上に投影されていない場合、投影される領域は、インジケータまたはマーキングを投影することにより、ユーザ100に知らせられ得る。たとえば、第2のビュー118が表示される領域のアウトライン、またはアウトラインの一部(たとえば、コーナのインジケータ)が、投影されて示され得る。いくつかの実施態様では、この領域の中心のインジケータが投影され得る。限定ではないが、十字線、任意のタイプの形状、ロゴ、ゲームタイトル、ワード(複数可)、文字(複数可)、アイコン、ゲームに関するグラフィック/アイコン(たとえば、キャラクタまたは他のアイテム)、パターン、アニメーションなどを含む、実質的に任意のタイプのマーキングまたはインジケータが、第2のビューが投影される投影領域を示すために、投影され得ることを理解されたい。第2のビュー118が投影される場所を示すことにより、ユーザ100は、望む場合に、第2のビュー118を見るために、どこを見ればいいのかをより容易に判定することができる。
いくつかの実施態様では、第2のビュー118は、コンピュータデバイス106、または、より具体的には、コンピュータデバイス106上で実行するインタラクティブアプリケーションによっても生成される。第2のビュー118を描写するビデオストリーミングが、コンピュータデバイス106からロボット108に送信/ストリーミングされ得、ロボット108のプロジェクタ112は、ビデオストリーミングをレンダリングするように作動され得、それにより、第2のビュー118の投影を規定する。
いくつかの実施態様では、ロボットにより、第2のビューの投影を開始する前に、一定の検証または適正チェックが実施される。たとえば、いくつかの実施態様では、システムは、ユーザが、バーチャル空間など、ディスプレイ上に表示されるメディアとのインタラクションにおいて関与したかを最初に検証する。いくつかの実施態様では、このことは、ユーザがメディアまたはバーチャル空間とインタラクトしているかを確認するために、ユーザの視線の方向の追跡を含む、ユーザの識別及び追跡を伴う場合がある。いくつかの実施態様では、コントローラデバイスは、ユーザとともに識別され、ユーザが、コントローラデバイスを使用することによってインタラクトしているかが判定される。複数の人が存在している場合、システムは、コントローラデバイスの位置を識別すること、及び、どのユーザがコントローラデバイスを操作しているかを判定すること、人の視線の方向を追跡することなどにより、どの人が実際にバーチャル空間とインタラクトしているかを識別する場合がある。
図2は、本開示の実施態様に係る、ディスプレイを通して、及び、ロボットを介して提供される、バーチャル空間のビューの生成を概念的に示す図である。左では、ローカル環境101の上面図が示されており、この図には、ユーザ100が、ディスプレイ104及びロボット108とともに位置している。右では、バーチャル空間200の上面図が概念的に示されており、このバーチャル空間は、いくつかの実施態様では、ビデオゲームまたは他のインタラクティブアプリケーションのバーチャル空間である。いくつかの実施態様では、バーチャル空間200は、ビデオゲームのゲームプレイのアクティビティが行われる、3次元空間である。
レンダリングに関して、バーチャル空間200のビューを提供するために、バーチャルビューポイント202が規定される。このバーチャルビューポイント202は、バーチャル環境のビューが生成されるバーチャル空間200内の位置である。すなわち、バーチャル環境のビューは、バーチャルビューポイント202に視点から生成され得る。図示の実施態様では、第1のビュー116は、バーチャルビューポイント202の視点からの、ビューの円錐台206によって規定される。図示のように、ビューの円錐台206は、バーチャル空間200内の方向204(たとえば、方向204周りに中心付けられている)を有している。ビューの円錐台206は、レンダリングに関して、第1のビュー116で取得されたバーチャル空間200の視野または領域を規定する。
述べたように、図示のビューは、バーチャル空間200の概念的な上面図であり、このため、ビューの円錐台の水平のアスペクトのみが示されている。しかし、ビューの円錐台の垂直のアスペクトが、所望であるビューのアスペクト比に従って、適切なサイズにされることを理解されたい。実施例として、限定ではなく、アスペクト比(高さに対する幅の比)は、本開示の様々な実施態様に応じて、16:9、4:3、3:2などとすることができる。図示の実施態様を参照する説明を簡略化するために、ビューの円錐台の水平のアスペクトが概して参照される。しかし、当業者には、ビューの円錐台の垂直のアスペクトも存在し、ビューの円錐台の水平のアスペクトに関する記述は、通常、垂直のアスペクトにも適用されることを理解されたい。
実施例として、限定ではなく、一般的なコンソールビデオゲームでは、テレビまたは他のディスプレイなどの、通常のディスプレイデバイスに対してレンダリングされるビューに関するビューの円錐台206は、おおよそ、約50度から約70度のレンジの水平な視野(208を参照)を有するように構成されている。いくつかの実施態様では、ビューの円錐台206は、約60度の水平の視野を規定している。他の実施態様では、ビューの円錐台206は、50度未満か、70度より大の、水平の視野を規定している。いくつかの実施態様では、ビューの円錐台206は、約90度の水平の視野を規定している。
いくつかの実施態様では、第2のビュー118は、ビューポイント202を起点とするビューの円錐台212によって規定されるが、方向204に対して回転された方向210を有している。いくつかの実施態様では、方向204と方向210との間の角度(216を参照)は、ディスプレイ表面105と、第2のビューの表示のための投影表面/領域119(たとえば、壁120の領域)との間の空間的関係によって判定される。たとえば、いくつかの実施態様では、角度216は、ディスプレイ104のディスプレイ表面105と、壁120の投影表面119とにそれぞれ垂直な、直行するベクトル間(たとえば、ベクトル220とベクトル222との間)の角度差などの、ディスプレイ表面105と、投影表面119との間の角度関係によって判定される。すなわち、ディスプレイ表面105に対して垂直である第1のベクトル220を考慮すると、投影表面119に対して垂直な第2のベクトル222と交差し、このため、これらベクトル間の角度が、それぞれ、ディスプレイ104上に示されたビュー116と、壁120の領域119上に示されたビュー118とを判定する、ビューの円錐台の方向204と方向210との間の角度216を判定する。
いくつかの実施態様では、角度216は、前述のベクトル間の角度と実質的に同じである。このため、前述のベクトルが互いに対してほぼ垂直である場合、ビューの円錐台の方向204と方向210とは、互いに対してほぼ垂直であり、角度216は、約90度である。すなわち、ディスプレイ104、及び、投影表面が、ディスプレイ104のディスプレイ表面105に対して垂直な側方の表面である場合、バーチャル空間200内の第1のビューの(中心の)方向と第2のビューの(中心の)方向とは、互いに対して垂直となる。別の実施例では、投影表面がディスプレイ104の平面と、約120度の角度で交差する側方の表面である場合、直交するベクトルの交差部分は、約60度の角度を形成し、バーチャル空間内のビューの方向204と方向210との間の角度216は、約60度となる。
交差するベクトルの上述の記載が、垂直なベクトルが交差し得るように、ディスプレイ104と、壁120の投影領域119とがほぼ水平であるか、むしろ、類似のベクトル位置を有する場合に、適用されることを理解されたい。しかし、このケースではないシナリオにおいては、本開示の実施態様によれば、ディスプレイ104と、壁120の投影領域119とにそれぞれ垂直な、交差する垂直な平面が代替され得、それらの交差する角度により、角度216が判定され得る。
類似の関係を記載する別の方法は、第1のビューと第2のビューとの間の角度216が、ディスプレイ表面105の平面と、投影表面119の平面との間の外角226によって判定される、及び/または、外角226に対して正の相関関係にある。ディスプレイ表面105の平面と、投影表面119の平面との間の内角228は、ローカル環境に向いており、一方、外角226の値は、180度から内角228の値を引いたものに等しい。いくつかの実施態様では、角度216は、外角226と同じであるか、実質的に類似である。
いくつかの実施態様では、ビューの円錐台212の水平な視野(214参照)は、ビューの円錐台206の水平な視野(208参照)と同じであるか、実質的に類似している(そして、同様に、それぞれの垂直な視野は、同じであるか、実質的に類似しているものであり得る)。しかし、他の実施態様では、水平な視野214は、水平な視野208(及び、同様に、それぞれの対応する垂直な視野)の角度の値より大であるか、小である角度の値を有する場合がある。たとえば、いくつかの実施態様では、第2のビュー118の投影のサイズは、ディスプレイ104上の第1のビュー116の表示より大である場合があり、したがって、第2のビュー118の視野(水平と垂直との両方を含む)は、第1のビュー116の視野より大である場合がある。逆に、いくつかの実施態様では、第2のビュー118の投影のサイズは、ディスプレイ104上の第1のビュー116の表示より小である場合があり、したがって、第2のビュー118の視野は、第1のビュー116の視野より小である場合がある。すなわち、いくつかの実施態様では、投影された第2のビュー118の視野のサイズは、投影自体のサイズと正の相関関係にある。また、さらに、いくつかの実施態様では、第2のビュー118の視野のサイズは、ディスプレイ104上のレンダリングされた第1のビュー116のサイズに対する第2のビュー118の投影のサイズに依存し、それにより、第2のビューの投影のサイズが、レンダリングされた第1のビューのサイズより大である場合、第2のビューの視野のサイズが、第1のビューの視野のサイズより大であるようになっており、また、第2のビューの投影のサイズが、レンダリングされた第1のビューのサイズより小である場合、第2のビューの視野のサイズが、第1のビューの視野のサイズより小であるようになっている。
いくつかの実施態様では、第2のビュー118の視野のサイズが、ディスプレイ104のディスプレイ表面105に対する投影表面119の配置によって判定される。述べたように、いくつかの実施態様では、ベクトル220は、ディスプレイ表面105に対して垂直であり、投影表面119に対して垂直なベクトル222と交差する。ベクトル220とベクトル222とは、ディスプレイ表面105と投影表面119とのそれぞれに対して水平方向に中心付けられている。ベクトル220は、ディスプレイ表面105との交差ポイントから規定される距離を有しており、ベクトル222は、投影表面105との交差ポイントから規定される距離を有している。いくつかの実施態様では、第2のビュー118の視野のサイズは、ベクトル220とベクトル222とによって規定される距離の相対量によって判定される。たとえば、いくつかの実施態様では、ベクトル222の距離が、ベクトル220の距離に対して増大すると、第2のビュー118の視野が、第1のビュー116の視野に対して減少する(たとえば、ビューの円錐台212の角度214が、ビューの円錐台206の角度208に対して減少する)。逆に、ベクトル222の距離が、ベクトル220の距離に対して減少すると、第2のビュー118の視野が、第1のビュー116の視野に対して増大する(たとえば、ビューの円錐台212の角度214が、ビューの円錐台206の角度208に対して増大する)。直感的に、このことは、第2のビュー118がユーザ100のより近くで投影された際に、第2のビュー118の視野の増大を規定し、第2のビュー118がユーザ100からより離れて投影された際に、第2のビュー118の視野の減少を規定する。
引き続き図2を参照すると、いくつかの実施態様では、第1のビューと第2のビューとの、互いに対する関係は、ディスプレイ104及び投影表面119に対するユーザ100の空間的関係によって判定される。たとえば、いくつかの実施態様では、ユーザ100からディスプレイ104(たとえば、ディスプレイ表面105の中心)に向かうベクトル230が規定され、ユーザ100から投影表面119(たとえば、投影表面119の中心)に向かうベクトル232も規定される。いくつかの実施態様では、ベクトル230とベクトル232との間の角度234は、バーチャル空間200の第1のビューと第2のビューとにそれぞれ関する方向204と方向210との間の角度216を判定する。いくつかの実施態様では、バーチャル空間におけるビュー方向204とビュー方向210との間の角度216は、ローカル環境101におけるベクトル230とベクトル232との間の角度234と同じであるか、実質的に同じである。他の実施態様では、角度216は、角度234に対して、たとえばスケーリング因子によってスケーリングされる。スケーリング因子は、様々な実施態様では、一定であるか可変である場合がある。
いくつかの実施態様では、第2のビュー118の視野のサイズは、ディスプレイ104のディスプレイ表面105、及び投影表面119に対するユーザ100の相対距離によって判定され得る。たとえば、いくつかの実施態様では、ユーザ100から投影表面119までの距離が、ユーザ100からディスプレイまでの距離に対して増大すると、第2のビュー118の視野が、第1のビュー116の視野に対して減少する。換言すると、ベクトル232の距離がベクトル230の距離に対して増大すると、ビューの円錐台212の視野のサイズが減少する。一方、ベクトル232の距離が、ベクトル230の距離に対して減少すると、ビューの円錐台212の視野のサイズが増大する。直感的に、このことは、第2のビュー118がユーザ100のより近くで投影された際に、第2のビュー118の視野がより増大し、第2のビュー118がユーザ100からより離れて投影された際に、第2のビュー118の視野がより小さくなる。
いくつかの実施態様では、第2のビュー118は、第1のビュー116と連続している、及び/または、オーバーラップしているように構成されている。たとえば、第2のビュー118の視野は、第1のビュー116に視野と横方向に連続している、及び/またはオーバーラップしているように構成され得る。図2を参照すると、たとえば、ビューの円錐台206とビューの円錐台212とは、横側を共有する場合があるか、その横側が、互いにオーバーラップする場合がある。ビューの方向204とビューの方向210との間の角度216は、そのような隣接構成及び/またはオーバーラップ構成を規定するように構成され得る。そのような実施態様では、このため、ビューのいずれの隙間もカバーされることなく、第1のビューから第2のビューに移動する、またはその逆の移動の際に、ユーザ100は、バーチャル空間200の隣接する部分を見ることが可能である。
いくつかの実施態様では、第2のビュー118の視野のサイズは、第1のビュー116の視野と隣接する、及び/またはオーバーラップするように、調整されている。いくつかの実施態様では、このことは、前述のように、第2のビュー118の投影のサイズの調整に関して生じる。
いくつかの実施態様では、第1のビュー116と第2のビュー118との間の関係は、バーチャル空間200における予め規定された空間的関係に固定されている。たとえば、第2のビュー118は、バーチャル空間200において、第1のビューに対して予め規定された量だけ回転される。いくつかの実施態様では、ロボット108は、適切な投影表面が、そのような第2のビューに関してローカル環境101内に存在するかを判定するように構成されており、存在する場合、第2のビュー118が投影され得る。適切な投影表面が存在するかを判定することには、ローカル環境内の表面が、ディスプレイ104のディスプレイ表面105の平面に対して垂直であるか、垂直の予め規定されたレンジ内にあるなど、第1のビューがレンダリングされるディスプレイ104に対する適切な向きを有しているかを判定することが含まれ得る。いくつかの実施態様では、適切な投影表面が存在するかを判定することには、潜在的な投影表面が、ディスプレイ104の、予め規定された距離内、または、(最小及び最大の距離を確立する)予め規定された距離レンジ内にあるかを判定することも含まれ得る。
図3は、本開示の実施態様に係る、ディスプレイを通して、及び、ロボットからの投影を介して提供される、バーチャル空間のビューの生成を概念的に示す図である。左では、ローカル環境300の上面図が示されており、この図には、ユーザ100が、ディスプレイ104及びロボット108とともに位置している。図示のように、ローカル環境300は、部屋によって規定され得、また、部屋の壁302及び壁304によって境界が定められている場合がある。右では、バーチャル空間200の上面図が概念的に示されており、この空間は、いくつかの実施態様では、ビデオゲームまたは他のインタラクティブアプリケーションのバーチャル空間である。述べたように、いくつかの実施態様では、バーチャル空間200は、ビデオゲームのゲームプレイのアクティビティが行われる、3次元空間である。
図示の実施態様では、ディスプレイデバイス104は、壁302と壁304とが結合する角のエリアに配置されており、これらの壁の各々に対してある角度で、角から外を向いている。この構成では、壁302と壁304とが、ディスプレイデバイス104のディスプレイ表面105の平面に対して垂直でも平行でもない平面(及び、適切な投影表面)を規定している。むしろ、壁は、この壁を、バーチャル空間の追加のビューをユーザに対して提供するために有用であるようにする方式で、ユーザ100に向けて角度が付されている。
図示のように、バーチャル空間200の第1のビュー116は、ディスプレイ104のディスプレイ表面105を通してレンダリングされる。ロボット108は、バーチャル空間200の第2のビュー118を、投影表面306上に投影する。この投影表面306は、ビデオの投影に適切である、壁302のサブ領域である。すでに記載したように、バーチャル空間200の所与のビューが、バーチャルビューポイントの視点から規定され、バーチャル空間内の所与のビューの方向を有する、バーチャル空間内のビューの円錐台によって規定されている。図示の実施態様では、バーチャル空間200の第1のビュー116は、バーチャル空間内の(ビューの円錐台206の中心を通る)ビューの方向204を有し、バーチャルビューポイント202を起点とする(バーチャルビューポイント202の視点から規定される)ビューの円錐台206によって規定されている。
いくつかの実施態様では、ロボット108によって投影された第2のビュー118は、バーチャル空間内の第1のビュー116に隣接するバーチャル空間200のビューである。すなわち、第2のビュー118を規定するビューの円錐台は、第1のビューを規定するビューの円錐台に隣接している。このことは、図示の実施態様に示されており、この実施態様では、第2のビュー118が、第1のビュー116を規定するビューの円錐台206に隣接する、ビューの円錐台322によって規定されている。第2のビュー118は、このため、第1のビュー116と隣接しており、ディスプレイ104のビュー(第1のビュー)と、投影表面306のビュー(第2のビュー)との間で変移する際に、ユーザ100に、バーチャル空間の連続したビューを与える。ビューの円錐台206は、ビューの方向204及び視野208を有しており、ビューの円錐台322は、ビューの円錐台206に隣接したビューの円錐台322の配置を規定するように構成された、ビューの方向320及び視野324を有している。
ビューの円錐台の横方向の関係が、ローカル環境300におけるレンダリング表面の横方向の関係と一致していることを理解されたい。すなわち、投影表面306が、ディスプレイデバイス104のディスプレイ表面105の左側に対して横方向にあることから、第2のビューを規定するビューの円錐台322は、バーチャル空間における第1のビューを規定するビューの円錐台206の左側に対して横方向にある。
バーチャル空間の第1のビューと第2のビューとが実施態様では隣接するビューである場合があるが、他の実施態様では、第1のビュー116と第2のビュー118とは、本明細書に記載の技術に応じて、本システムの他の態様から判定され得る。たとえば、第1のビュー116に関するビューの方向204と、第2のビュー118に関するビューの方向320との間の角度326は、ディスプレイデバイス104のディスプレイ表面105の平面と、投影表面306(または壁302)の平面との間の外角312によって判定され得る。外角312は、交差するベクトル220とベクトル308との間にある角度310と同じである。ベクトル220とベクトル308とは、それぞれ、ディスプレイ表面105と投影表面306とに対して垂直である。角度326は、第2のビュー118が第1のビュー116に対して回転する量を規定する。
いくつかの実施態様では、角度326は、ベクトル230とベクトル314との間の角度である、角度316によって判定される。ベクトル230とベクトル314とは、ユーザ100から、ディスプレイ表面105の中心と、投影表面306の中心とにそれぞれ向けられている。ベクトル230とベクトル314とは、ディスプレイ104と、ロボットからの投影とのそれぞれを見た際の、ユーザ100の視線の方向を示している。
さらに、第1のビュー116の視野208と、第2のビュー118の視野324とは、本明細書に記載のように、限定ではなく、ディスプレイ104と投影表面306との各々に対するユーザ100の相対距離、ディスプレイ表面105と投影表面306との相対サイズなどを含む、様々な因子に基づいて構成することができる。
図4は、本開示の実施態様に係る、ディスプレイを通して、及び、ロボットからの投影を介して提供される、バーチャル空間のビューの生成を概念的に示す図である。左では、ローカル環境101の上面図が示されており、この図には、ユーザ100が、ディスプレイ104及びロボット108とともに位置している。図示のように、ローカル環境101は、部屋によって規定され得、また、部屋の壁120、122、124、及び400によって境界が定められている場合がある。右では、バーチャル空間200の上面図が概念的に示されており、この空間は、いくつかの実施態様では、ビデオゲームまたは他のインタラクティブアプリケーションのバーチャル空間である。述べたように、いくつかの実施態様では、バーチャル空間200は、ビデオゲームのゲームプレイのアクティビティが行われる、3次元空間である。
図示の実施態様では、後方の壁400が、前壁122と対向して配置されており、ロボット108は、第2のビュー118を後方の壁400上、より具体的には、後方の壁400のある領域である投影表面402上に投影するように構成されている。投影表面402は、ディスプレイデバイス104のディスプレイ表面105と実質的に対向するように構成されている。換言すると、投影表面402を見るために、ユーザ100は、ターンするか、自身の視線の方向を、約180度だけ、ディスプレイ104を向いている状態から後方の壁400に向いている状態、より具体的には、第2のビュー118が投影されている投影表面402に向いている状態に、回転させる。
図示のように、第1のビュー116は、バーチャル空間200内のビューの方向204と視野208とを有する、ビューの円錐台206によって規定されている。第2のビュー118は、バーチャル空間200内のビューの方向412と視野414とを有する、ビューの円錐台410によって規定されている。いくつかの実施態様では、ビューの円錐台410のビューの方向412は、ビューの円錐台206のビューの方向204に対してほぼ逆向きであるか、バーチャル空間200において約180度だけ回転されている。このため、第1のビュー116とは反対側のバーチャル空間200のビューは、第2のビュー118として示され得る。この方式で、ユーザ100は、ディスプレイ104とは逆の/離れた方向を見るために、単にターンすることにより、バーチャル空間200内でユーザの「後方」にあるものを直感的に見ることが可能である。
図5は、本開示の実施態様に係る、バーチャル空間とインタラクトするユーザの視線の方向の追跡を可能にするための、ロボットの移動を示す図である。図示のように、ユーザ100は、位置500において、ローカル環境101内にあり、ディスプレイ104上のバーチャル空間の第1のビュー116を見ている。いくつかの実施態様では、ディスプレイ104は、図示のように、前壁122とほぼ整列している。ユーザ100が位置500に位置し、ディスプレイ104に向いた視線の方向を有する場合、ロボット108は、ユーザ100の視線の方向の検出を可能にするために、ロボットのカメラ110により、ユーザの目のビューを与える位置506に配置されるように構成され得る。すなわち、ロボット108は、ロボット108のカメラ110を、ユーザの目の画像を取得することが可能であるように、ロボット108自体を移動するか再配置することが可能である。
たとえば、ユーザ100がターンするか、位置502に移動すると、ユーザの視線の方向は、たとえば、側壁120に向けられるなど、(ディスプレイ104に向けられた方向に対して)側方に向けられ、これにより、ロボット108は、ロボット108のカメラ110が、ユーザの目の画像を取得することが可能であるように、位置508に移動する場合がある。位置502に移動することにより、ロボット108は、ユーザ100の前方側に位置した状態でほとんどとどまっているように、再配置される。さらに、位置502は、上述のように、ロボット108のプロジェクタ112が、第2のビュー118を側壁120上に投影することを可能にするように、さらに選択される場合がある。
さらに、類似の方式で、ユーザ100がターンするか、位置504へ移動し、ユーザの視線の方向が部屋の後方、または、より具体的には、後方の壁400及び投影表面402に向けられた場合、ロボット108は、ロボット108のカメラ110が、ユーザの目の画像を取得することが可能であるように、位置510に移動する。位置510に移動することにより、ロボット108は、ユーザ100の前方側に位置した状態でほとんどとどまっているように、再配置される。さらに、位置502は、上述のように、ロボット108のプロジェクタ112が、第2のビュー118を後方の壁400上に投影することを可能にするように、さらに選択される場合がある。
ユーザ100の視線の方向の判定及び追跡を可能にするために、ロボット108は、カメラ110から取得された画像を分析し、ユーザの身体、頭部、及び/または目の位置及び向きを識別するために、画像認識技術を採用する場合がある。いくつかの実施態様では、ロボット108は、ユーザの身体、頭部、及び/または目をモデル化し、取得された画像の分析に基づいてモデルをアップデートし、ユーザ100の視線の方向を判定するために、そのモデルをさらに使用するように構成されている。画像分析を使用して、ロボット108は、ユーザが移動またはターンする場合を判定し、ロボット108は、それに応じて、ローカル環境101内でのロボット108の位置を調整して、ユーザの視線の方向の追跡を可能にする。このことには、カメラ110が、ユーザの目を含む画像を取得することが可能であること(すなわち、ユーザの目がカメラ110の視野内にあること)を確実にすることが含まれ得る。
いくつかの実施態様では、ロボット108は、ロボット自体を、ユーザ100に対して予め規定された領域内に配置し、それにより、ユーザの視線の方向の追跡を可能にするように構成されている。視線追跡のための予め規定された領域は、ロボット108のカメラ110が、ユーザの目の画像を取得することが可能であるか、ユーザの視線の方向の正確な追跡を概して可能にするために、ユーザ100の画像を十分に取得することが可能である、ユーザ100に対する領域とすることができる。
いくつかの実施態様では、ロボット108は、可能であれば、ユーザ100から予め規定された距離を維持するように構成されている。このことは、視線追跡のためのユーザの目の画像取得を可能にするために有用である場合があり、また、ユーザが誤ってロボット108に接触するか、ロボット108につまずくことをも防止する場合があり、それにより、ユーザの安全性を確実にする。
さらに、いくつかの実施態様では、ロボット108は、ロボット自体を、ロボット108がバーチャル空間の第2のビューを投影する、投影表面に対して予め規定された領域内に配置するように構成されている。(たとえば、所望のサイズ、及び、その幅/高さ全体にわたる一定の幅/高さを有するなど、投影された際に、適切な寸法を有するように)第2のビューを投影表面に適切に投影するために、ロボット108のプロジェクタ112は、投影表面に対する予め規定された領域内に配置される場合がある。
上述のパラメータの組合せが考えられ得、ロボット108が、このため、ロボット108自体を、ユーザ及び/または投影表面に対する、上述の予め規定された領域の交差部である領域内に配置するように構成され得ることを理解されたい。すなわち、ロボット108は、視線の追跡を可能にする、適切な投影を可能にする、ならびに、ユーザ100及びロボット108の安全性を確実にするなどの、様々な要請を満たすように、ある位置にロボット108自体を移動するように構成され得る。
いくつかの実施態様では、ロボット108は、プロジェクタ112の向きとは独立して、カメラ110の向きの調整を規定するように構成されている。たとえば、カメラ110及び/またはプロジェクタ112は、1つまたは複数の方向において、1つまたは複数の軸に沿うか軸周りなどで、はっきりと区切られる場合がある。この方式で、カメラ110及びプロジェクタ112は、独立して方向が調整され得る。
さらに、いくつかの実施態様では、ロボットは、ユーザがある方向を見る前にロボットが適切な位置に移動できるように、視線予測を採用する。たとえば、いくつかの実施態様では、ロボットには、将来のゲームコンテンツの方向を示す、ビデオゲームからのメタデータが供給される。ロボットは、次いで、第2のビューを投影するために最適に配置されるために、必要に応じて、様々な位置に予測的に移動する場合がある。いくつかの実施態様では、ロボットは、ユーザの将来の視線の方向を予測する、ニューラルネットワークまたは他のマシンラーニング構成体を採用し、ロボットは、それに応じて、予測された将来の視線の方向に基づいて移動する場合がある。
図6は、本開示の実施態様に係る、インタラクティブ環境におけるバーチャル空間のビューの投影を示す図である。図示のように、ユーザ100は、部屋または他のインタラクティブ環境である場合がある、ローカルインタラクティブ環境600内に位置している。ロボット108は、ユーザ100の視線の方向を判定及び追跡するために、そのカメラ110を使用するように構成されている。ロボット108は、プロジェクタ112による画像/ビデオの投影のための投影表面を規定する壁602上に、バーチャル空間のビュー606を示す投影604を写すように、そのプロジェクタ112を使用するようにさらに構成されている。
図示の実施態様では、投影604は、ユーザ100の視線の方向に基づき、ロボット108によって移動可能である。投影604は、ユーザの視線の方向を追跡するように、壁602に沿ってシフトすることができる。いくつかの実施態様では、投影604の位置は、ユーザ100の視線の方向の周りにおおむね中心付けられるように調整される(たとえば、壁602とのユーザの視線の方向の交差部周りに中心付けられる)。この方式で、投影604は、ユーザ100の視線に追従する。
さらに、バーチャル空間のビュー606を規定する、バーチャル空間内のビューの円錐台の方向も、ユーザ100の視線の方向によって判定され得る。いくつかの実施態様では、ビューの円錐台の方向は、ローカル環境600内のユーザ100の視線の方向の変化に実質的に類似する方式で、バーチャル空間内で調整される。このため、ユーザ100が自身の頭部を左にターンさせ、それにより、自身の視線の方向をローカル環境内で左に回転させた場合、バーチャル空間内のビューの円錐台の方向も、等しいか、別様に関連する量だけ左に回転され、それに応じて、投影604を通して提供されるビュー606がアップデートされ、こうして、ユーザの視線の方向が変化すること、及び、投影604自体が、ユーザ100の視線の方向の経路に整列するように移動されることに応じて、ユーザ100によって視認可能なバーチャル空間の領域が変化する。
ユーザ100の視線の方向が変化し、投影604が移動することに応じて、ロボット108自体が、上述したように、継続的な視線追跡及び適切な投影を可能にするために、様々な位置に移動する場合があることを理解されたい。さらに、カメラ110とプロジェクタ112との互いに対する方向は、ロボット108によって規定されるカメラ110とプロジェクタ112との構成に応じて調整される場合がある。いくつかの実施態様では、ロボット108は、ユーザの視線の方向が、ローカル環境600の他の投影表面に移動する場合、隣接する壁608上に投影するなど、投影604を、そのような位置に移動するように構成され得る。
図7は、本開示の実施態様に係る、ローカルなインタラクティブ環境において、テーブルの頂部に位置するロボットを示す図である。図示のように、ロボット108は、テーブル700の頂部に位置している。このテーブル700は、コーヒーテーブル、デスク、ダイニングテーブル、または任意の他のタイプのテーブルとすることができるか、ローカル環境101内の上昇したプラットフォームとすることができる。テーブル700上に上げられることにより、ロボット108は、たとえば、視線追跡の目的のために、ユーザ100の画像を取得するためのより有利なポイントを有する場合がある。ロボット108は、たとえば、ユーザの視線の方向の追跡のため、及び/または、ローカル環境101内の壁または他の表面などの投影表面上に画像/ビデオを投影するために、ロボット108自体をより良好に配置するために、テーブル700の頂部表面をあちこちに移動する場合がある。
いくつかの実施態様では、ロボット108は、テーブル700から落下しないように、ロボット108が維持されるべき境界を判定するために、テーブルの縁部を含み、テーブル700をマッピングするように構成されている。図示の実施態様では、境界702は、そのようなテーブル700のマッピングに基づいて確立される場合がある。さらに、いくつかの実施態様では、ロボット108は、テーブルの縁部で発生し得るものなど、ロボット108が落下しそうである場合を検出するように、構成及び/または配置された、近接センサまたは他のセンサを含むことができる。ロボット108は、こうして、テーブル700からの落下を避けるように構成されつつ、テーブルの表面上に配置された際に移動可能とすることができる。
図示の実施態様では、ロボット108は、第1のビュー116がレンダリング/表示されるディスプレイ104に隣接する投影表面(たとえば、壁の領域)上に、第2のビュー118を投影して示されている。いくつかの実施態様では、図示のような第2のビュー118は、第1のビュー116の延長である場合があり、ユーザ100が、第1のビュー116によって示されるものに隣接するバーチャル空間の領域を見ることを可能にする。本開示の別のところで記載するように、ロボット108が、他の投影表面上に他のビューを投影するように構成され得ることを理解されたい。
図8は、本開示の実施態様に係る、ヘッドマウントディスプレイ(HMD)を通しても見ることができるバーチャル空間のビューを投影するロボットを示す図である。図示の実施態様では、ユーザ800は、ヘッドマウントディスプレイ(HMD)802(バーチャルリアリティ(VR)ヘッドセットとしても知られる)を通して、バーチャル空間を見る。実施例として、限定ではなく、HMDの一実施例が、PlayStation(登録商標)VRのヘッドセットである。いくつかの実施態様では、観察者が、ユーザ800がHMD802を通して何を見ているかを見ることを可能にするために、HMD802上でレンダリングされたビュー(または、その一部)は、ディスプレイデバイス104上にもレンダリングされ得る。このため、ユーザ100は、ディスプレイデバイス104を見ることにより、ユーザ800のビューを見物することが可能である。いくつかの実施態様では、ロボット108は、利用可能な投影表面(たとえば、図示の実施態様の壁124の領域)上に、バーチャル空間の第2のビュー806を投影する場合がある。
第1のビュー804に対する第2のビュー806の空間的関係は、例として、限定ではなく、バーチャル空間内の予め規定された空間的関係に基づくもの、HMD802を通して提供されるビューの、バーチャル空間内のビューポイント/ビューの方向/ビューの円錐台に基づくもの(バーチャル空間内のキャラクタ、車両、または他のオブジェクトから規定される場合がある)、ビュー806が投影される投影表面と、ディスプレイデバイス104のディスプレイ表面105との間の物理的な空間的関係に基づくもの、ローカル環境内の、ディスプレイ104及び投影表面に対する、ユーザ100の位置及び視線の方向に基づくものを含み、前述の方法に従って判定され得る。
いくつかの実施態様では、ディスプレイ104上に示されるビュー804は、HMDユーザ800が実質的にディスプレイ104に向いている場合(たとえば、ユーザ800の視線の方向が実質的にディスプレイ104に向いている場合)、HMD802を通してHMDユーザ800に提供されるビュー(またはビューの一部)に相関するか、バーチャル空間において実質的または方向的に類似している、バーチャル空間のビューを示すように構成されている。すなわち、ビュー804に関するバーチャル空間内のビューの方向は、ユーザ800がディスプレイ104に向いている場合の、HMD上でレンダリングされたビューのビューの方向と類似であるか同じである。この方式で、ディスプレイ104上でレンダリングされたビューは、直感的方式で、HMD802の現実世界での向きに繋げられ、それにより、ユーザ800がディスプレイ104に向いている場合、ユーザ100は、ディスプレイ上で、ユーザ800がHMD802を介して見ているものと類似のビューを見ることができる。
いくつかの実施態様では、このため、ユーザ800が異なる方向を見ている場合、HMD802の向き/位置が変化すると、ロボット108は、ユーザ800が向いている、変更された方向、及び/または、HMD802の変更された向き/位置に基づき、空間的に関連する方式で、HMD802上にレンダリングされたビュー(またはビューの一部)を投影するように構成され得る。たとえば、いくつかの実施態様では、ロボット108は、HMD802上でレンダリングされたビュー(またはビューの一部)を、ユーザ800が向いている場所(または、ユーザ800の視線の方向が向いている場所)に実質的に位置するか、HMD802が向いている場所に実質的に位置する表面上に投影するように構成されている。このため、HMDユーザ800が様々な方向を見ると、HMDユーザ800がHMD802を介して見ているバーチャル空間のビューが、HMDユーザ800が向いている方向に整列された位置で見るように、ユーザ100のために示されるか投影される。
いくつかの実施態様では、HMD802に提供されたバーチャル空間のビューが、コンピュータデバイス106によって生成され、HMD802に送信される場合があることを理解されたい。さらに、コンピュータデバイス106は、第1のビュー804及び第2のビュー806を生成する場合がある。
実施態様が、バーチャル空間の第2のビューの投影に関して記載されているが、いくつかの実施態様では、投影は、他の種類の内容のものとすることができる。いくつかの実施態様では、ロボットは、ビデオゲームに関連する静的コンテンツを投影するように構成され得る。たとえば、ユーザが、特定のタイプの環境(たとえば、ジャングル、海洋、砂漠、都市、山岳、森林、宇宙、スポーツなど)において生じるゲームのレベルをプレイしている場合、ロボットは、特定のタイプの環境に関連する画像/ビデオを投影する場合がある(たとえば、ゲームプレイがジャングルで行われている場合、ジャングルのシーンが投影され、ゲームプレイがアリーナで行われている場合、観客または群衆が投影される、などである)。さらに、いくつかの実施態様では、ロボットは、実施例として、限定ではなく、プレーヤのインベントリ、ゲームメニュー、マップ、メッセージ、ステータス情報、ゲーム広告などを含む、他のゲームに関連するコンテンツを投影することができる。
図9は、本開示の実施態様に係る、様々な特徴を有するローカルな環境に位置するロボットを示す図である。図示の実施態様では、ローカル環境900は、壁902、904、及び906、ならびに、天井908を有する部屋によって規定されている。ディスプレイデバイス104は、壁902に沿って取り付けられており、ウインドウ910は、壁904に規定されており、ドア912は、壁906に規定されている。カウチ914及びランプ916が、部屋内に配置されている。ライト918は、天井908に沿って位置している。
ロボット108は、ローカル環境900をスキャンして、すでに述べたように、バーチャル空間のビューの投影を含む、画像/ビデオの投影のために適切な表面を識別するように構成されている。ロボット108は、投影表面としてのオブジェクトの適正を判定するために、オブジェクトの位置及び形状、ならびに、それらのテクスチャ及びカラーのマッピングを含み、ローカル環境をマッピングするために、当該技術で既知である様々なタイプのセンサ及び技術の任意のものを使用する場合がある。実施例として、限定ではなく、ロボット108は、カメラ/画像取得デバイス、近接センサ(たとえば、赤外線、超音波、フォトレジスタなど)、深度カメラ、領域センサ(たとえば、ステレオカメラ、赤外線、超音波、レーザーなど)、慣性センサ(たとえば、加速度計、ジャイロスコープ、磁気計)、グローバルポジショニングシステム(GPS)などのセンサを使用することができる。さらに、実施例として、限定ではなく、ロボット108は、位置推定と地図生成の同時実行(SLAM)の技術などの技術を使用して、ローカル環境をマッピングすることができる。物体認識技術が、ローカル環境の取得された画像の分析を含む、ローカル環境内のオブジェクトを識別するために、ロボット108によって適用され得る。
引き続き図9を参照すると、ロボット108は、様々な壁及び天井、ディスプレイデバイス104、ウインドウ910、ドア912、カウチ914、ならびにランプ916などの、部屋内のオブジェクトを識別し、認識する場合がある。ロボット108は、そのようなオブジェクトの位置及び向きをマッピングし、投影のために使用することが可能である表面を識別する。たとえば、ロボットは、ディスプレイ104を除く壁902の領域を、投影のために使用できること、ウインドウ910を除き、ランプ916によって妨げられていない壁904の領域を、投影のために使用できること、ドア912を除き、ランプ916によって妨げられていない壁906の領域を、投影のために使用できること、ライト918を除く天井908の領域を、投影のために使用できることを、判定する場合がある。
ロボット108は、オブジェクトのマッピング、及び、ロボット108の様々なセンサハードウェアを通してのローカル環境のリアルタイムの検知を利用して、ローカル環境内の他のオブジェクトとの衝突を回避しつつ、たとえば、視線追跡及び/またはビデオの投影を可能にするために、ロボットによる移動を促進する場合がある。
いくつかの実施態様では、ロボット108は、ディスプレイデバイス104のサイズを判定し、ディスプレイデバイス104のサイズに基づいて、投影のためのパラメータを調整するように構成されている。たとえば、ロボット108から投影される画像/ビデオのサイズは、ある表面に投影している際に、プロジェクタ112のズーム設定、または、ロボット108の位置を調整することなどにより、ディスプレイデバイス104とほぼ同じであるように構成され得る。いくつかの実施態様では、ロボット108のプロジェクタ112によって投影されるビュー(または、対応するビューの円錐台)のサイズは、ロボット108から投影されたビューを見ることに対し、ディスプレイデバイス104上でバーチャル空間を見る場合に、一定の寸法のサイジングを提供するように調整される。換言すると、ディスプレイ104を通して表示されるか、ロボット108による投影を通して表示されるかに関わらず、バーチャル空間のビューのサイジングは一定となる。
図10は、本開示の実施態様に係る、ロボットからの、バーチャル空間の第2のビューを投影するためのシステムを示す図である。いくつかの実施態様では、ロボット108は、ローカル環境の画像を取得するために、そのカメラ110を使用する。ローカル環境の画像は、画像取得データ1000へと処理され、コンピュータデバイス106に送信される。画像取得データ1000は、いくつかの実施態様では、画像フレームのストリームによって規定され得る。コンピュータデバイス106は、バーチャル空間を規定するインタラクティブアプリケーション(たとえば、いくつかの実施態様ではビデオゲーム)を実行する。コンピュータデバイス106は、ディスプレイ104に送信され、ディスプレイ104上でレンダリングされる第1のビデオフィード1010を生成し、それにより、ディスプレイ104を通してバーチャル空間の第1のビューを表示する。
コンピュータデバイス106は、ユーザの視線の方向を判定するために、受信した画像取得データ1000をさらに分析する場合がある。このことは、上述のように、ユーザの頭部、目、身体、脚部など、ユーザの様々な部分を識別し、モデル化し、追跡するために、受領した画像取得データ1000の分析を伴う場合がある。ユーザの視線の方向の追跡に基づき、コンピュータデバイス106は、ユーザが投影表面を見るためにターンしたときを判定する場合がある。また、このことが生じた場合、コンピュータデバイス106は、バーチャル空間の第2のビューを描写する第2のビデオフィード1012を生成し、この第2のビデオフィード1012をロボット108に送信する。ロボット108は、第2のビデオフィード1012を投影表面上に投影し、それにより、バーチャル空間の第2のビューを表示する。
いくつかの実施態様では、第1のビデオフィードと第2のビデオフィードとは、一方がストリーミングされている際に、他方がストリーミングされないように、交互に生成される。しかし、他の実施態様では、第1のビデオフィードと第2のビデオフィードとの両方が同時に生成され得、両方が同時にストリーミングされ得、また、ディスプレイ104とロボット108とによってそれぞれ同時にレンダリングされ得る。
いくつかの実施態様では、画像取得データ1000は、実施例として、限定ではなく、ユーザによるジェスチャまたは動き、表情、ローカル環境内のオブジェクトの識別などを含む、インタラクティブアプリケーションによって利用される場合がある、ユーザまたはローカル環境の他の態様を判定するために、コンピュータデバイスによってさらに分析される場合がある。
追加的に、ロボット108は、ユーザによって話された言葉/サウンドなど、ローカル環境から音声を取得するためのマイクを有する場合がある。取得された音声は、コンピュータデバイス106に送信される音声取得データ1002へと処理される。音声取得データ1002は、実施例として、限定ではなく、インタラクティブアプリケーションに作用する場合がある、ボイスコマンドまたは他の口頭のインタラクティブコンテンツを識別するために、コンピュータデバイス106によって処理され得る。
コンピュータデバイスが、画像取得データ1000及び/または音声取得データ1002を処理/分析する各実施態様が記載されてきたが、他の実施態様では、そのような分析は、ロボット108によって部分的に、または全体として実施され得る。たとえば、いくつかの実施態様では、ロボット108は、取得された画像データを分析して、ユーザの視線の方向を判定するように構成され得る。このデータは、コンピュータデバイス108に送信される視線追跡データ1004としてエンコードされる場合がある。いくつかの実施態様では、ロボット108は、取得された音声データを分析して、ユーザによるボイスコマンドまたは他の口頭のコンテンツを判定するように構成され得る。このデータは、コンピュータデバイス108に送信されるコマンドデータ1006としてエンコードされる場合がある。
別の実施態様では、ロボット108は、インタラクティブアプリケーションに対するリモートクライアントとして動作し、また、第2のビデオフィードを生成するように構成されている(たとえば、バーチャル空間の第2のビューのグラフィックレンダリングを実施する)。これにより、コンピュータデバイス106上での処理の負荷が低減され、また、別様に可能であるよりも高い忠実度の、第2のビューに関するビデオレンダリングが可能になる場合がある。
図11は、本開示の実施態様に係る、ロボットの構成要素を概念的に示す概略図である。図示のように、ロボット1100は、本開示に記載のように、データ及び命令を処理すること、ならびに、ロボット1100の様々なデバイスにコマンドを発して、ロボットに、移動、画像/音声/ビデオの取得、画像/音声/ビデオのレンダリング、または、ロボットが可能である任意の他の機能の実施をさせることを含む、ロボットの様々なデバイス、及び、ロボット1100によって実施される操作を制御するように構成されたコントローラ1102を含んでいる。コントローラ1102は、プログラム指示を実行するように構成された、1つまたは複数のプロセッサ1104(たとえば、マイクロプロセッサ、多目的プロセッサ(GPP)、特定用途向けプロセッサ(ASP)、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、コンプレックス命令セットコンピュータ(CISC)、縮小命令セットコンピュータ(RISC)、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)など)、ならびに、データを貯蔵及び抽出するように構成された、1つまたは複数のメモリデバイス1106(たとえば、揮発性メモリ、不揮発性メモリ、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、SRAM、DRAM、フラッシュメモリ、磁気メモリ、ハードディスク、光ディスクなど)を含んでいる。
トランシーバ1108は、無線または有線接続を介して、データを送信及び/または受信するように構成されている。トランシーバ1108は、1つまたは複数のネットワーク上で通信し、実施例として、限定ではなく、IPベースのプロトコル、Wi−Fi、Bluetooth(登録商標)、NFC、Zigbee(登録商標)、Z−Wave、ANT、UWB、Wireless USB、Sigfox、セルラネットワーク(2G/3G/4G/5Gネットワーク、LTEネットワークなど)、赤外プロトコル(たとえば、IRDAプロトコル)などを含む、当該技術で既知である任意の様々なデータ通信プロトコルを使用する場合がある。
ロボット1100は、実施例として、限定ではなく、ロボット1100によってレンダリングされるバーチャル環境からの音、音楽、スピーチ、メディアプレゼンテーション(たとえば、テレビプログラム、映画、ショーなど)からの音声などを含む、任意の種類の音声を放出することが可能である、1つまたは複数のスピーカ1110を含んでいる。
ロボット1100は、ロボットが配置されたローカル環境からの音を取得するように構成された、1つまたは複数のマイク1112を含んでいる。複数のマイクは、同時に、より多くの方向で、より高い感度を可能にする場合がある。いくつかの実施態様では、マイク1112は、アレイまたは他の予め規定された位置の配置で構成され、それにより、マイクのアレイからの信号を分析して、マイクのアレイに対する音声の発生源の方向を判定することができるようになっている。
ロボット1100は、ローカル環境からの画像/ビデオを取得するように構成された1つまたは複数の画像取得デバイス/カメラ1114を含んでいる。複数の画像取得デバイスは、実施例として、限定ではなく、ローカル環境のより大である領域か複数の領域を同時にカバーすること、及び/または、向上された環境のマッピング、深度分析を可能にするために採用され得る。
1つまたは複数のカメラ1114は、1つまたは複数のアクチュエータ1116により、所与のカメラの方向を調整することを可能にするように、向けられ得る。アクチュエータ1116は、カメラ1114を、回転、平行移動、上昇、下降、傾斜、パン撮り、または、別様に移動もしくは向きの変更を行うように構成され得る。
ロボット1100は、1つまたは複数の深度カメラ1118を含んでいる。深度カメラは、ローカル環境内のオブジェクトに関する深度/測距情報を取得することが可能である。いくつかの実施態様では、深度カメラ1118は、制御された光信号の、ローカル環境内の様々なポイントまでの飛行時間に基づいて距離を判定する飛行時間カメラである。
カメラ1114と同様に、深度カメラ1118は、1つまたは複数のアクチュエータ1116によって向けられ得る。1つまたは複数のアクチュエータ1116は、1つまたは複数のカメラ1114を向けるアクチュエータと同じであるか異なるアクチュエータである場合がある。
ロボット1100は、近くのオブジェクトにロボットが接近していることを検出することが可能である、1つまたは複数の近接センサ1120を含んでいる。近接センサ1120は、ロボット1100の対応する部分に関する接近の検出を可能にするように、ロボット1100上の様々な位置に取り付けられ得る。たとえば、いくつかの実施態様では、少なくとも1つの近接センサが、ロボットの下方部分の近くのオブジェクト(たとえば、ロボット1100が位置するフロア/表面上のオブジェクト)を検出するなどのために、この近位における近接の検出を可能にするように、ロボット1100の下方部分に取り付けられている。いくつかの実施態様では、1つまたは複数の近接センサが、ロボットの中間部分及び上方部分を含む、ロボット1100の他の部分に沿って取り付けられている。近接センサ1120は、ローカル環境内のオブジェクトとの、ロボット1100の衝突を回避すること、近位のオブジェクトの存在を検出すること、ロボットの近位におけるユーザによるジェスチャを検出することなどのために有用とすることができる。
ロボット1100は、グローバルポジショニングシステム(GPS)デバイス/レシーバ1122を含む。GPSデバイス/レシーバ1122は、ロボット1100の、地球上での位置を判定するために、GPS衛星からの情報を受信するように構成されている。
ロボット1124は、ロボット1124の移動及び/または向きの検出が可能である、1つまたは複数の慣性/モーションセンサ1124を含んでいる。慣性/モーションセンサの実施例には、加速度計、磁気計、ジャイロスコープなどが含まれる。
ロボット1124は、ローカル環境内の表面上に画像/ビデオを投影することが可能である、少なくとも1つのプロジェクタ1126を含んでいる。実施例として、限定ではなく、プロジェクタは、LCDプロジェクタ、LEDプロジェクタ、DLPプロジェクタ、LCoSプロジェクタ、ピコプロジェクタなどとすることができる。
ロボット1100は、ロボット1100がローカル環境のあちこちを移動することを可能にするように構成された、複数のホイール/ローラ、たとえば、図示のようなホイール/ローラ1130a及び1130bを含んでいる。ホイール/ローラの1つまたは複数は、ホイール/ローラを回転させ、それにより、ロボット1100の移動に影響するように、アクチュエータ(たとえば、アクチュエータ1132a及び1132b)によって制御され得る。いくつかの実施態様では、ホイール/ローラは、多方向性または無方向性とすることができる。すなわち、2つ以上の方向か、すべての方向における移動をさせるか促すことが可能である。
ロボット1100の様々な構成要素は、ハウジング内に包含され得る。図示の実施態様では、上方ハウジング1134a及び下方ハウジング1134bが含まれている。上方ハウジング1134aは、下方ハウジング1134bに対して回転可能であるように構成されており、複数のベアリング1136によって促される。いくつかの実施態様では、アクチュエータ1138は、上方ハウジング1134aを回転させるように構成されている。様々な実施態様では、ロボット1100の様々な構成要素のいずれかが、上方ハウジング1134aに取り付けられ得るか、上方ハウジング1134a内にあり得、また、上方ハウジング1134aが回転した際に、回転/移動されるように構成されている。一方、様々な構成要素の他のものは、下方ハウジング1134bに取り付けられているか、下方ハウジング1134b内にあり、同時に回転しない。
実施例として、いくつかの実施態様では、カメラ1114、深度カメラ1118、スピーカ1110、及び/またはマイク1112が、上方ハウジング1134aに取り付けられており、一方、プロジェクタ1126が、下方ハウジング1134bに取り付けられている。上方ハウジング1134aに取り付けられた構成要素は、プロジェクタ1126とは独立して、上方ハウジング1134aとともに回転することができる。このことは、ロボット1100が、カメラ1114、深度カメラ1118、スピーカ1110、及び/またはマイク1112とは独立して、プロジェクタ1126を向けることを可能にすることができる。たとえば、このことは、プロジェクタ1126が壁または他の投影表面に向いている間に、カメラ1114、深度カメラ1118、スピーカ1110、及び/またはマイク1112をユーザに向けるために有用である場合がある。
図12Aから図12Gは、本開示の実施態様に係る、ロボットの様々なタイプを示す図である。
図12Aは、本開示の実施態様に係る、円筒形状の本体1200を有するロボットを示している。プロジェクタ1202及びカメラ1204は、本開示の実施態様に従って伸張可能及び/または回転可能なそれぞれのポールに取り付けられている。ロボットは、そのロボットが、複数方向に音声を発することを可能にする複数のスピーカ1206を含む場合がある。明確に示されていないが、ロボットは、下に向いたスピーカをも含む場合がある。ロボットは、ローカル環境のあちこちの、ロボットの推進/移動のためのホイール1208をさらに含んでいる。
図12Bは、本開示の実施態様に係る、プロジェクタ1202及びカメラ1204などの構成要素が取り付けられる場合がある、上方の回転可能な部分1210を有するロボットを示している。ロボットは、任意の種類のデータをレンダリングするように構成され得る、ディスプレイ1212をさらに含んでいる。いくつかの実施態様では、ロボットのディスプレイ1212は、ビデオゲームの間にプレーヤにとって有用な情報を示すために、第2のディスプレイとして使用され得る。ディスプレイ1212は、タッチスクリーンディスプレイとすることができ、タッチスクリーンディスプレイ上のタッチ及びジェスチャを介して、ユーザからの入力を受信することが可能である。ロボットは、さらに、ロボットの推進のために、無限軌道システム1214(タンクトレッドまたはキャタピラトレッドとしても知られている)を採用している。
図12Cは、本開示の実施態様に係る、コントローラ及び/または他のインターフェースデバイスのための保管位置としても機能するように構成されたロボットを示している。図示の実施態様では、ロボットは、コントローラ1220a及び1220b、ならびに、モーションコントローラ1222a及び1222bを保持/保管するように構成されている。ロボットは、クラスプ、クリップ、ストラップ、クランプ、ポケット、穴、凹部などの、コントローラまたは他のインターフェースデバイスを保持するための、様々な種類のデバイスの任意のものを含むことができる。
図12Dは、本開示の実施態様に係る、本体1230及び発信可能なドローン1232を有するロボットを示している。飛行していない場合、ドローン1232は、本体1230上の支持構造1234に置かれている、及び/または固定されている場合がある。支持構造1234は、ドローン1232と、ロボットの本体1230との間でのデータの通信、及び、ドローンのバッテリの充電を可能にするために、ドローン1232の対応するコンタクトと勘合するように構成されたコンタクトを含む場合がある。ドローン1232が、カメラ、深度カメラ、マイク、プロジェクタ、慣性/モーションセンサ、無線トランシーバなど、ドローン1232の操作のために有用である、及び/または、ドローンが飛行中に使用される場合がある、様々な構成要素を含む場合があることを理解されたい。ドローン1232は、本体1230と無線で通信し、本体1230から送信された無線信号を介して制御される場合がある。ドローン1232は、画像取得、音声取得、投影、音声レンダリングなどのために、上昇した、見通しの効くポイントを提供するように、作動され、飛行し得る。
図12Eは、本開示の実施態様に係る、ヒューマノイドデバイスの形状因子を有するロボットを示している。ロボットは、統合され得、カメラ、プロジェクタなどのデバイスを含む場合がある、ヘッド1240を含んでいる。ロボットは、統合され得、アイテムを握る、ジェスチャを実施するなどするように構成されたアーム1242をさらに含んでいる。ロボットは、統合され得、ロボットがローカル環境のあちこちを歩行/走行、または別様に移動することを可能にするように構成されたレッグ1244をさらに含んでいる。
図12Fは、本開示の実施態様に係る、回転可能なボール形状の部分1250を有するロボットを示している。いくつかの実施態様では、ボール形状の部分1250は、カメラ、プロジェクタ、マイクなどの、このボール形状の部分1250に取り付けられた任意のデバイスの方向を変えるように、無方向的に回転され得る。ボール形状の部分1250は、ベース部分1254周りに回転可能である、中間部分1252によって支持されており、それにより、ロボットのデバイスの移動のさらなる柔軟性を提供している。
図12Gは、本開示の実施態様に係る、ホイール1262間に規定された本体1260を有するロボットを示している。いくつかの実施態様では、ホイール1262a及び1626bは、ロボットが遮蔽物または他の不連続部を横断することを可能にするために、本体1260よりも実質的に大であるように、過度に大きくなっている。いくつかの実施態様では、本体1260の重心は、ホイール1262a及び1262bの軸のレベルの下にあるように構成されており、それにより、2つのホイールのみをサポートのために有する一方で、本体1260の向きが容易に維持されるようになっている。
図13は、クライアントシステム1306とインターフェースするHMD102のユーザ1300の一実施例を示しており、クライアントシステム1306が、第2のスクリーン1307と称される第2のスクリーンディスプレイにコンテンツを提供している。クライアントシステム1306は、HMD1302から第2のスクリーン1307へのコンテンツのシェアを処理するための統合電子装置を含む場合がある。他の実施形態は、クライアントシステムと、HMD1302の各々と、第2のスクリーン1307との間でインターフェースする、別のデバイス、モジュール、コネクタを含む場合がある。この概略的な実施例では、ユーザ1300は、HMD1302を装着しており、コントローラを使用してビデオゲームをプレイしている。このコントローラも、指向性インターフェースオブジェクト1304である場合がある。ユーザ1300による、相互に作用するプレイは、HMD1302にインタラクトするように表示される、ビデオゲームコンテンツ(VGC)を提供する。
一実施形態では、HMD1302に表示されているコンテンツは、第2のスクリーン1307にシェアされる。一実施例では、第2のスクリーン1307を見ている人は、ユーザ1300によってHMD1302でインタラクトするようにプレイされるコンテンツを見ることができる。別の実施形態では、別のユーザ(たとえば、プレーヤ2)が、クライアントシステム1306とインタラクトして、第2のスクリーンコンテンツ(SSC)を提供することができる。同様にコントローラ1304とインタラクトするプレーヤ(または、任意のタイプのユーザインターフェース、ジェスチャ、ビデオ、もしくは入力)によって提供される第2のスクリーンコンテンツは、SSCとしてクライアントシステム1306に提供される場合がある。このSSCは、HMD1302から受信したVGCとともに、第2のスクリーン1307上に表示され得る。
したがって、HMDユーザと同じ場所にいるか、離れている場合がある他のユーザによるインタラクテビィティは、HMDユーザと、第2のスクリーン1307上で、HMDユーザによってプレイされるコンテンツを見ている場合があるユーザとの両方にとって、社会的、インタラクティブ、かつ、より没入的であり得る。図示のように、クライアントシステム1306は、インターネット1310に接続され得る。インターネットは、様々なコンテンツソース1320からのコンテンツへのアクセスをクライアントシステム1306に提供することもできる。コンテンツソース1320は、インターネット上でアクセス可能である、任意のタイプのコンテンツを含むことができる。
そのようなコンテンツは、限定ではなく、ビデオコンテンツ、映画コンテンツ、ストリーミングコンテンツ、ソーシャルメディアコンテンツ、ニュースコンテンツ、フレンドコンテンツ、広告コンテンツなどを含むことができる。一実施形態では、クライアントシステム1306は、HMDユーザのためのコンテンツを同時に処理するために使用され得、それにより、ゲームプレイの間、HMDに、インタラクティビティに関連するマルチメディアコンテンツが提供されるようになっている。このため、クライアントシステム106は、ビデオゲームコンテンツに無関係である場合がある他のコンテンツを第2のスクリーンに提供することもできる。クライアントシステム1306は、一実施形態では、コンテンツソース1320の1つから、またはローカルユーザから、またはリモートのユーザから、第2のスクリーンコンテンツを受領することができる。
図14は、本開示の様々な実施形態に係る、ゲームシステム1400のブロック図である。ゲームシステム1400は、ビデオストリーミングを、1つまたは複数のクライアント1410に、ネットワーク1415を介して提供するように構成されている。ゲームシステム1400は、通常、ビデオサーバシステム1420と、オプションのゲームサーバ1425とを含んでいる。ビデオサーバシステム1420は、ビデオストリーミングを、1つまたは複数のクライアント1410に、最低限の品質のサービスで提供するように構成されている。たとえば、ビデオサーバシステム1420は、ビデオゲーム内の状態または視点を変更するゲームコマンドを受信し、この状態の変化を反映した、アップデートされたビデオストリーミングを、最小の遅延時間で、クライアント1410に提供する場合がある。ビデオサーバシステム1420は、これから規定されるフォーマットを含む、幅広い代替的ビデオフォーマットで、ビデオストリーミングを提供するように構成されている場合がある。さらに、ビデオストリーミングは、幅広いフレームレートで、ユーザに提供するために構成されたビデオフレームを含む場合がある。通常のフレームレートは、毎秒30フレーム、毎秒60フレーム、及び、毎秒120フレームである。しかし、より高いかより低いフレームレートが、本開示の代替的実施形態に含まれる。
本明細書では個別に1410A、1410Bなどと称される、クライアント1410は、ヘッドマウントディスプレイ、ターミナル、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話、セットトップボックス、キオスク、無線デバイス、デジタルパッド、スタンドアロンデバイス、手持ちのゲームプレイデバイス、及び/または類似のものを含む場合がある。通常、クライアント1410は、エンコードされたビデオストリーミングを受信し、ビデオストリーミングをデコードし、結果として得られたビデオを、ユーザ、たとえばゲームのプレーヤに提供するように構成されている。エンコードされたビデオストリーミングの受信、及び/または、ビデオストリーミングのデコードのプロセスは、通常、クライアントの受信バッファ内に、個別のビデオフレームを保存することを含んでいる。ビデオストリーミングは、クライアント1410と一体のディスプレイ上、または、モニタもしくはテレビなどの別のデバイス上で、ユーザに提供される場合がある。クライアント1410は、任意選択的に、2人以上のゲームプレーヤをサポートするように構成されている。たとえば、ゲームコンソールは、2人、3人、4人、またはそれより多くのプレーヤを同時にサポートするように構成されている場合がある。これらプレーヤの各々は、別々のビデオストリーミングを受領する場合があるか、単一のビデオストリーミングが、各プレーヤのために特別に生成されたフレームの領域、たとえば、各プレーヤの視点に基づいて生成されたフレームの領域を含む場合がある。クライアント1410は、任意選択的に、地理的に分散されている。ゲームシステム1400に含まれるクライアントの数は、1人または2人から、数千、数万、またはそれより多くの人数まで、様々である場合がある。本明細書で使用される場合、「ゲームプレーヤ」との用語は、ゲームをプレイする人に言及するために使用され、「ゲームプレイデバイス」との用語は、ゲームをプレイするために使用されるデバイスに言及するために使用される。いくつかの実施形態では、ゲームプレイデバイスは、ゲーム体験をユーザに届けるために共同する複数のコンピュータデバイスに言及する場合がある。たとえば、ゲームコンソール及びHMDは、ビデオサーバシステム1420と協同して、HMDを通して見られるゲームを届ける場合がある。一実施形態では、ゲームコンソールは、ビデオサーバシステム1420からビデオストリーミングを受信し、ゲームコンソールは、レンダリングのために、HMDに対し、ビデオストリーミングを進行させるか、ビデオストリーミングにアップデートする。
クライアント1410は、ビデオストリーミングを、ネットワーク1415を介して受信するように構成されている。ネットワーク1415は、電話ネットワーク、インターネット、無線ネットワーク、電力線ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク、プライベートネットワーク、及び/または類似のネットワークを含む、任意のタイプの通信ネットワークである場合がある。通常の実施形態では、ビデオストリーミングは、TCP/IPまたはUDP/IPなどの、標準的なプロトコルを介して通信される。代替的には、ビデオストリーミングは、私有の規格を介して通信される。
クライアント1410の通常の実施例は、プロセッサ、不揮発性メモリ、ディスプレイ、デコーディングロジック、ネットワーク通信能力、及び入力デバイスを備えたパーソナルコンピュータである。デコーディングロジックは、ハードウェア、ファームウェア、及び/または、コンピュータ可読媒体上に貯蔵されたソフトウェアを含む場合がある。ビデオストリーミングをデコード(及びエンコード)するためのシステムは、当該技術ではよく知られており、使用される特定のエンコーディングスキームに応じて様々である。
クライアント1410は、必要とはされていないが、受信されたビデオを変更するために構成されたシステムをさらに含む場合がある。たとえば、クライアントは、さらなるレンダリングを実施する、1つのビデオ画像を別のビデオ画像上にオーバーレイさせる、ビデオ画像をクロッピングする、及び/または類似の操作を実施するように構成されている場合がある。たとえば、クライアント1410は、Iフレーム、Pフレーム、及びBフレームなどの、様々なタイプのビデオフレームを受領し、これらフレームを、ユーザに対するディスプレイのための画像へと処理するように構成されている場合がある。いくつかの実施形態では、クライアント1410の部材が、ビデオストリーミング上のさらなるレンダリング、シェーディング、3−Dへの変換、または類似の操作を実施するように構成されている。クライアント1410の部材は、任意選択的に、2つ以上の音声またはビデオのストリーミングを受信するように構成されている。クライアント1410の入力デバイスには、たとえば、片手のゲームコントローラ、両手のゲームコントローラ、ジェスチャ認識システム、視線認識システム、ボイス認識システム、キーボード、ジョイスティック、ポインティングデバイス、力フィードバックデバイス、モーション及び/または位置検知デバイス、マウス、タッチスクリーン、ニューラルインターフェース、カメラ、これから開発される入力デバイス、及び/または類似のものが含まれる場合がある。
クライアント1410によって受信されたビデオストリーミング(及び、任意選択的には音声ストリーミング)は、ビデオサーバシステム1420によって生成及び提供される。本明細書の別の場所でさらに記載するように、このビデオストリーミングには、ビデオフレームが含まれる(また、音声ストリーミングには、音声フレームが含まれる)。ビデオフレームは、ユーザに対して表示される画像に、有意義に寄与するように構成されている(たとえば、これらビデオフレームは、適切なデータ構造内のピクセル情報を含んでいる)。本明細書で使用される場合、「ビデオフレーム」との用語は、ユーザに対して示される画像に寄与する、たとえば影響するように構成された、支配的な情報を含むフレームに言及するために使用される。「ビデオフレーム」に関する本明細書での教示のほとんどは、「音声フレーム」にも適用され得る。
クライアント1410は、通常、ユーザからの入力を受信するように構成されている。これら入力には、ビデオゲームの状態を変更するか、ゲームプレイに別様に影響するように構成されたゲームコマンドが含まれる場合がある。ゲームコマンドは、入力デバイスを使用して受信され得る、及び/または、クライアント1410上で実行する命令を計算することによって自動的に生成される場合がある。受信されたゲームコマンドは、クライアント1410から、ネットワーク1415を介して、ビデオサーバシステム1420及び/またはゲームサーバ1425に通信される。たとえば、いくつかの実施形態では、ゲームコマンドは、ゲームサーバ1425に、ビデオサーバシステム1420を介して通信される。いくつかの実施形態では、ゲームコマンドの別々のコピーが、クライアント1410から、ゲームサーバ1425及びビデオサーバシステム1420に通信される。ゲームコマンドの通信は、任意選択的には、コマンドの同一性に応じるものである。ゲームコマンドは、任意選択的には、クライアント1410Aから、音声またはビデオストリーミングをクライアント1410Aに提供するために使用される、異なるルートまたは通信チャンネルを通して通信される。
ゲームサーバ1425は、任意選択的に、ビデオサーバシステム1420とは異なるエンティティによって操作される。たとえば、ゲームサーバ1425は、マルチプレイヤゲームのパブリッシャーによって操作される場合がある。この実施例では、ビデオサーバシステム1420は、任意選択的に、クライアントとして、ゲームサーバ1425によって見られ、また、任意選択的に、ゲームサーバ1425の視点から、従来技術のゲームエンジンを実行する従来技術のクライアントであるように見えてくるように構成されている。ビデオサーバシステム1420とゲームサーバ1425との間の通信は、任意選択的には、ネットワーク1415を介して行われる。したがって、ゲームサーバ1425は、複数のクライアントにゲームの状態の情報を送信する、従来技術のマルチプレイヤゲームサーバとすることができ、複数のクライアントの1つは、ゲームサーバシステム1420である。ビデオサーバシステム1420は、ゲームサーバ1425の複数の例と同時に通信するように構成されている場合がある。たとえば、ビデオサーバシステム1420は、様々なユーザに、複数の様々なビデオゲームを提供するように構成され得る。これら様々なビデオゲームの各々は、異なるゲームサーバ1425によってサポートされる、及び/または、異なるエンティティによって発表される場合がある。いくつかの実施形態では、いくつかの地理的に分散されたビデオサーバシステム1420の例は、複数の異なるユーザにゲームビデオを提供するように構成されている。ビデオサーバシステム1420のこれら例の各々は、ゲームサーバ1425の同じ例と通信する場合がある。ビデオサーバシステム1420と、1つまたは複数のゲームサーバ1425との間の通信は、任意選択的には、専用の通信チャンネルを介して行われる。たとえば、ビデオサーバシステム1420は、ゲームサーバ1425に、これら2つのシステム間の通信専用である、高バンド幅のチャンネルを介して接続されている場合がある。
ビデオサーバシステム1420は、少なくとも、ビデオソース1430、I/Oデバイス1445、プロセッサ1450、及び非一時的なストレージ1455を備えている。ビデオサーバシステム1420は、1つのコンピュータデバイスを含む場合があるか、複数のコンピュータデバイスに分散されている場合がある。これらコンピュータデバイスは、任意選択的に、ローカルエリアネットワークなどの通信システムを介して接続されている。
ビデオソース1430は、ビデオストリーミング、たとえば、ストリーミングビデオまたは、動いている写真を形成する一連のビデオフレームを提供するように構成されている。いくつかの実施形態では、ビデオソース1430は、ビデオゲームエンジン及びレンダリングロジックを含んでいる。ビデオゲームエンジンは、プレーヤからゲームコマンドを受信し、受信されたコマンドに基づき、ビデオゲームの状態のコピーを保持するように構成されている。このゲームの状態には、ゲーム環境内のオブジェクトの位置、及び、通常は、視点が含まれる。ゲームの状態には、オブジェクトの特性、画像、色、及び/またはテクスチャも含まれる場合がある。ゲームの状態は、通常、ゲームのルール、及び、移動する、ターンする、攻撃する、焦点を合わせる、インタラクトする、使用する、及び/または類似のものなどのゲームコマンドに基づいて保持される。ゲームエンジンの一部は、任意選択的に、ゲームサーバ1425内に配置される。ゲームサーバ1425は、地理的に分散されたクライアントを使用して、複数のプレーヤから受領したゲームコマンドに基づき、ゲームの状態のコピーを保持する場合がある。これらのケースでは、ゲームの状態は、ゲームサーバ1425によってビデオソース1430に提供され、このゲームの状態のコピーが貯蔵され、レンダリングが実施される。ゲームサーバ1425は、ゲームコマンドを、クライアント1410から、ネットワーク1415を介して直接受信する場合がある、及び/または、ゲームコマンドを、ビデオサーバシステム1420を介して受領する場合がある。
ビデオソース1430は、通常、レンダリングロジック、たとえば、ハードウェア、ファームウェア、及び/または、ストレージ1455などのコンピュータ可読媒体に貯蔵されたソフトウェアを含んでいる。このレンダリングロジックは、ゲームの状態に基づき、ビデオストリーミングのビデオフレームを形成するように構成されている。レンダリングロジックのすべてまたは一部は、任意選択的に、グラフィック処理ユニット(GPU)内に配置されている。レンダリングロジックは、通常、オブジェクト間の3次元の空間的関係を判定するため、及び/または、ゲームの状態及びビューポイントに基づき、適切なテクスチャなどを適用するために構成されたプロセッシングステージを含んでいる。レンダリングロジックは、加工前のビデオを提供する。加工前のビデオは、次いで、クライアント1410に通信される前に通常はエンコードされる。たとえば、加工前のビデオは、Adobe Flash(登録商標)規格、.wav、H.264、H.263、On2、VP6、VC−1、WMA、Huffyuv、Lagarith、MPG−x、Xvid、FFmpeg、x264、VP6−8、realvideo、mp3などに従ってエンコードされる場合がある。エンコーディングプロセスにより、リモートのデバイス上のデコーダに搬送するために任意選択的にパッケージングされたビデオストリーミングが提供される。ビデオストリーミングは、フレームサイズ及びフレームレートによって特徴付けられる。通常のフレームサイズには、800×600、1280×720(たとえば、720p)、1024×768が含まれるが、任意の他のフレームサイズが使用される場合がある。フレームレートは、毎秒あたりのビデオフレームの数である。ビデオストリーミングには、異なるタイプのビデオフレームが含まれる場合がある。たとえば、H.264規格には、「P」フレームと「I」フレームとが含まれる。Iフレームは、ディスプレイデバイス上のすべてのマクロブロック/ピクセルをリフレッシュする情報を含んでおり、一方、Pフレームは、そのサブセットをリフレッシュする情報を含んでいる。Pフレームは、通常、データサイズがIフレームより小である。本明細書で使用される場合、「フレームサイズ」との用語は、フレーム内のピクセル数に言及することが意図されている。「フレームデータサイズ」との用語は、フレームを貯蔵するために必要とされるバイトの数に言及するために使用される。
代替的実施形態では、ビデオソース1430は、カメラなどのビデオ記録デバイスを含んでいる。このカメラは、コンピュータゲームのビデオストリーミングに含めることができる、遅延したビデオ、またはライブビデオを生成するために使用される場合がある。結果として得られるビデオストリーミングは、任意選択的に、レンダリングされた画像と、スチールカメラまたはビデオカメラを使用して記録された画像との両方を、含んでいる。ビデオソース1430は、ビデオストリーミングに含まれる、予め記録されたビデオを貯蔵するように構成された貯蔵デバイスをも含む場合がある。ビデオソース1430は、オブジェクト、たとえば人のモーションまたは位置を検出するように構成された、モーションまたは位置の検知デバイスと、検出されたモーション及び/または位置に基づいて、ゲームの状態を判定するか、ビデオを生成するように構成されたロジックと、をも含む場合がある。
ビデオソース1430は、任意選択的に、他のビデオ上に配置されるように構成されたオーバーレイを提供するように構成されている。たとえば、これらオーバーレイは、コマンドインターフェース、ログイン命令、ゲームプレーヤへのメッセージ、他のゲームプレーヤの画像、他のゲームプレーヤのビデオフィード(たとえば、ウェブカムビデオ)を含む場合がある。タッチスクリーンインターフェースまたは視線検出インターフェースを含むクライアント1410Aの実施形態では、オーバーレイは、バーチャルキーボード、ジョイスティック、タッチパッド、及び/または類似のものを含む場合がある。オーバーレイの一実施例では、プレーヤの声が、音声ストリーム上にオーバーレイされる。ビデオソース1430は、任意選択的に、1つまたは複数の音声ソースをさらに含んでいる。
ビデオサーバシステム1420が、2人以上のプレーヤからの入力に基づいてゲームの状態を維持するように構成されている実施形態では、各プレーヤは、ビューの位置及び方向を含む、異なるビューのポイントを有する場合がある。ビデオソース1430は、任意選択的に、プレーヤの視点に基づき、各プレーヤに、別々のビデオストリーミングを提供するように構成されている。さらに、ビデオソース1430は、異なるフレームサイズ、フレームデータサイズ、及び/またはエンコーディングを、クライアント1410の各々に提供するように構成されている場合がある。ビデオソース1430は、任意選択的に、3−Dビデオを提供するように構成されている。
I/Oデバイス1445は、ビデオサーバシステム1420に関し、ビデオ、コマンド、情報のリクエスト、ゲームの状態、視線の情報、デバイスのモーション、デバイスの位置、ユーザのモーション、クライアントの身元、プレーヤの身元、ゲームコマンド、安全性情報、音声、及び/または類似のものなどの情報を送信及び/または受信するように構成されている。I/Oデバイス1445は、通常、ネットワークカードまたはモデムなどの通信ハードウェアを含んでいる。I/Oデバイス1445は、ゲームサーバ1425、ネットワーク1415、及び/またはクライアント1410と通信するように構成されている。
プロセッサ1450は、本明細書に論じたビデオサーバシステム1420の様々な構成要素内に含まれる、ロジック、たとえばソフトウェアを実行するように構成されている。たとえば、プロセッサ1450は、ビデオソース1430、ゲームサーバ1425、及び/またはクライアント修飾子1460の機能を実施するために、ソフトウェア命令でプログラムされる場合がある。ビデオサーバシステム1420は、任意選択的に、プロセッサ1450の2つ以上の実体を含んでいる。プロセッサ1450は、ビデオサーバシステム1420によって受信されたコマンドを実行するため、または、本明細書に論じたゲームシステム1400の様々な要素の操作を調整するために、ソフトウェア命令でプログラムされる場合もある。プロセッサ1450は、1つまたは複数のハードウェアデバイスを含む場合がある。プロセッサ1450は、電子プロセッサである。
ストレージ1455は、非一時的なアナログ及び/またはデジタルの貯蔵デバイスを含んでいる。たとえば、ストレージ1455は、ビデオフレームを貯蔵するように構成されたアナログ貯蔵デバイスを含む場合がある。ストレージ1455は、コンピュータ可読デジタルストレージ、たとえば、ハードドライブ、光学ドライブ、ソリッドステートストレージを含む場合がある。ストレージ1415は、(たとえば、適切なデータ構造またはファイルシステムにより)ビデオフレーム、疑似フレーム、ビデオフレームと疑似フレームとの両方を含むビデオストリーミング、音声フレーム、音声ストリーミング、及び/または類似のものを貯蔵するように構成されている。ストレージ1455は、任意選択的に、複数のデバイスにわたって分配されている。いくつかの実施形態では、ストレージ1455は、本明細書の別の場所で論じたビデオソース1430のソフトウェア構成要素を貯蔵するように構成されている。これら構成要素は、必要な場合に提供される準備がされたフォーマットで貯蔵されている場合がある。
ビデオサーバシステム1420は、任意選択的に、クライアント修飾子1460をさらに含んでいる。クライアント修飾子1460は、クライアント1410Aまたは1410Bなどのクライアントの能力をリモートで判定するために構成されている。これら能力には、クライアント1410A自体の能力と、クライアント1410Aとビデオサーバシステム1420との間の1つまたは複数の通信チャンネルの能力との両方が含まれ得る。たとえば、クライアント修飾子1460は、ネットワーク1415を通して通信チャンネルをテストするように構成されている場合がある。
クライアント修飾子1460は、マニュアルで、またはオートで、クライアント1410Aの能力を判定する(たとえば、発見する)ことができる。マニュアルでの判定には、クライアント1410Aのユーザと通信し、ユーザに、能力を示すように依頼することが含まれる。たとえば、いくつかの実施形態では、クライアント修飾子1460は、クライアント1410Aのブラウザ内の画像、テキスト、及び/または類似のものを表示するように構成されている。一実施形態では、クライアント1410Aは、ブラウザを含むHMDである。別の実施形態では、クライアント1410Aは、HMDに表示される場合がある、ブラウザを有するゲームコンソールである。表示されるオブジェクトは、ユーザに、クライアント1410Aのオペレーティングシステム、プロセッサ、ビデオデコーダタイプ、ネットワーク接続のタイプ、ディスプレイ解像度などの情報を入力するように要求する。ユーザによって入力された情報は、クライアント修飾子1460に戻すように通信される。
オートの判定は、たとえば、クライアント1410A上のエージェントの実行によって、及び/または、クライアント1410Aにテストビデオを送信することによって行われる場合がある。エージェントは、ウェブページに埋め込まれたか、アドオンとしてインストールされた、java(登録商標) scriptなどのコンピュータ命令を含む場合がある。エージェントは、任意選択的に、クライアント修飾子1460によって提供される。様々な実施形態では、エージェントは、クライアント1410Aの処理力、クライアント1410Aのデコーディング及びディスプレイの能力、クライアント1410Aとビデオサーバシステム1420との間の通信チャンネルの遅延時間の信頼性及びバンド幅、クライアント1410Aのディスプレイのタイプ、クライアント1410Aに存在するファイヤウォール、クライアント1410Aのハードウェア、クライアント1410A上で実行するソフトウェア、クライアント1410A内のレジストリエントリ、及び/または類似のものを見出すことができる。
クライアント修飾子1460は、ハードウェア、ファームウェア、及び/または、コンピュータ可読媒体上に貯蔵されたソフトウェアを含んでいる。クライアント修飾子1460は、任意選択的に、ビデオサーバシステム1420の1つまたは複数の他の要素とは別のコンピュータデバイスに配置されている。たとえば、いくつかの実施形態では、クライアント修飾子1460は、クライアント1410と、ビデオサーバシステム1420の2つ以上の実体との間の通信チャンネルの特性を判定するように構成されている。これら実施形態では、クライアント修飾子によって発見された情報は、ビデオサーバシステム1420のどの実体が、クライアント1410の1つにストリーミングビデオを搬送するためにもっとも適しているかを判定するために使用され得る。
本開示の各実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースであるかプログラム可能な大衆消費電子製品、ミニコンピュータ、メインフレームコンピュータなどを含む、様々なコンピュータシステムの構成で実施される場合がある。本開示は、分散されたコンピュータの環境でも実施され得、ここでタスクが、有線ベースであるか無線のネットワークを通してリンクされたリモートの処理デバイスによって実施される。
上述の実施形態を考慮しつつ、本開示が、コンピュータシステム内に貯蔵されたデータを伴う、様々なコンピュータで実施される操作を採用することができることを理解されたい。これら操作は、物理量の物理的操作を必要とする操作である。本開示の一部を形成する、本明細書に記載の操作のいずれかは、有用なマシン操作である。本開示は、これら操作を実施するためのデバイスまたは装置にも関する。この装置は、要求される目的のために特別に構築することができるか、この装置は、選択的に起動される多目的コンピュータとすることができるか、コンピュータ内に貯蔵されたコンピュータプログラムによって構成することができる。具体的には、様々な多目的マシンは、本明細書の教示に関連して記載されるコンピュータプログラムとともに使用され得るか、様々な多目的マシンは、必要とされる操作を実施するように、より特別な装置を構築するために、より好都合である場合がある。
本開示は、コンピュータ可読媒体上のコンピュータ可読コードとして実施することもできる。コンピュータ可読媒体は、データを貯蔵することができる任意のデータ貯蔵デバイスであり、このデータは、後に、コンピュータシステムによって読み込むことができる。コンピュータ可読媒体の実施例には、ハードドライブ、ネットワークに取り付けられたストレージ(NAS)、リードオンリメモリ、ランダムアクセスメモリ、CD−ROM、CD−R、CD−RW、磁気テープ、ならびに、他の光学、及び、光学ではない、データ貯蔵デバイスが含まれる。コンピュータ可読媒体は、分配される方式で貯蔵及び実施されるように、ネットワークに結合されたコンピュータシステムにわたって分布されたコンピュータ可読有形的媒体を含むことができる。
方法の操作が、特定の順番で記載されているが、他のハウスキーピング操作が、各操作間で実施される場合があるか、各操作が、わずかに異なる時間に行われるように調整される場合があるか、処理に関連付けられた様々なインターバルでの処理操作の発生を可能にするシステムに配置される場合があること、及び、オーバーレイ操作の処理が、所望の方法で実施されることを理解されたい。
前述の開示が、理解を明確にする目的のために、いくらか詳細に記載されているが、一定の変更及び変形が、添付の特許請求の範囲内で実施できることは明らかとなる。したがって、本実施形態は、説明的ものであり、限定的ものではないと解釈され、本開示は、本明細書に与えられる詳細に限定されるものではないが、本開示の範囲内、及び均等の内で、変更される場合がある。