(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022180368
(43)【公開日】2022-12-06
(54)【発明の名称】VR観戦のための拡大された視野再レンダリング
(51)【国際特許分類】
A63F 13/86 20140101AFI20221129BHJP
A63F 13/428 20140101ALI20221129BHJP
A63F 13/52 20140101ALI20221129BHJP
A63F 13/53 20140101ALI20221129BHJP
A63F 13/211 20140101ALI20221129BHJP
A63F 13/213 20140101ALI20221129BHJP
G06F 3/01 20060101ALI20221129BHJP
H04L 67/131 20220101ALI20221129BHJP
H04N 21/234 20110101ALI20221129BHJP
【FI】
A63F13/86
A63F13/428
A63F13/52
A63F13/53
A63F13/211
A63F13/213
G06F3/01 510
H04L67/131
H04N21/234
【審査請求】有
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2022133794
(22)【出願日】2022-08-25
(62)【分割の表示】P 2020107710の分割
【原出願日】2016-06-13
(31)【優先権主張番号】62/175,278
(32)【優先日】2015-06-14
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100099324
【弁理士】
【氏名又は名称】鈴木 正剛
(72)【発明者】
【氏名】スティーブン オスマン
(72)【発明者】
【氏名】ドミニク マリンソン
(57)【要約】
【課題】ヘッドマウントディスプレイにおいて仮想現実観戦するためのビデオゲームの広視野再レンダリングを提供する。
【解決手段】ゲーミングサーバによって、プレイヤクライアントデバイスからゲーム状態データを受信する。ゲーム状態データは、プレイヤクライアントデバイスによって実行されるビデオゲームの第1のインスタンスのゲーム状態から定義付けられ、ゲーミングサーバによって、受信されたゲーム状態データ及びビュー方向データをゲーミングサーバによって実行されるビデオゲームの第2のインスタンスに適用され、広視野(FOV)観戦者動画が生成される。動画サーバは、観戦者クライアントデバイスからビュー方向データを受信する。ビュー方向データは、ヘッドマウントディスプレイ(HMD)の追跡された姿勢から確定されるものであり、動画サーバによって、ビュー方向データを適用して、広FOV観戦者動画の一部分を特定する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
ゲーミングサーバによって、プレイヤクライアントデバイスからゲーム状態データを受信し、前記ゲーム状態データは、前記プレイヤクライアントデバイスによって実行されるビデオゲームの第1のインスタンスのゲーム状態から定義付けられるものであり、
前記ゲーミングサーバによって、前記受信されたゲーム状態データ及びビュー方向データを前記ゲーミングサーバによって実行される前記ビデオゲームの第2のインスタンスに適用して、広視野(FOV)観戦者動画を生成し、
動画サーバによって、観戦者クライアントデバイスからビュー方向データを受信し、前記ビュー方向データは、ヘッドマウントディスプレイ(HMD)の追跡された姿勢から確定されるものであり、
前記動画サーバによって、前記ビュー方向データを適用して、前記広FOV観戦者動画の一部分を特定し、前記広FOV観戦者動画の前記一部分は、前記広FOV観戦者動画の全エリアよりも小さい前記広FOV観戦者動画のサブエリアであり、
前記観戦者クライアントデバイスに前記広FOV観戦者動画の前記一部分をストリーミングして、前記HMDにおいてレンダリングする、方法。
【請求項2】
前記ゲーム状態データが、前記プレイヤクライアントデバイスと通信しているコントローラデバイスから定義付けられる入力データ、1つもしくは複数のゲーム状態変数のうちの1つまたは複数の値、乱数または擬似乱数種、オブジェクトまたはプロパティの状態に対する更新のうちの1つあるいは複数を含む、請求項1に記載の方法。
【請求項3】
前記ゲーム状態データを前記ビデオゲームの前記第2のインスタンスに適用することで、前記ビデオゲームの前記第1のインスタンスの前記ゲーム状態と実質的に類似する前記ビデオゲームの前記第2のインスタンスのゲーム状態が作り出される、請求項1に記載の方法。
【請求項4】
前記広FOV観戦者動画が、前記プレイヤクライアントデバイスによって前記ビデオゲームの前記第1のインスタンスからレンダリングされた一次動画の視野よりも大きい視野を有する、請求項1に記載の方法。
【請求項5】
前記ビュー方向データは、前記HMDが配置される観戦者環境における前記HMDの向きを特定する、請求項1に記載の方法。
【請求項6】
前記HMDの前記追跡された姿勢が、前記HMDの少なくとも1つの慣性センサから及び/または前記観戦者環境の撮像された画像の分析から確定される、請求項5に記載の方法。
【請求項7】
前記広FOV観戦者動画が、ストレージデバイスに記憶され、
前記ビュー方向データの適用には、前記ストレージデバイスから前記広FOV観戦者動画を取り出すことが含まれる、
請求項1に記載の方法。
【請求項8】
前記方法は、前記HMDにおける前記広FOV観戦者動画の前記一部分の前記レンダリングが、前記ビデオゲームの前記第1のインスタンスの実質的なライブ観戦を可能にするように、実質的にリアルタイムで行われる、請求項1に記載の方法。
【請求項9】
ゲーミングサーバによって、プレイヤクライアントデバイスからゲーム状態データを受信し、前記ゲーム状態データは、前記プレイヤクライアントデバイスによって実行されるビデオゲームの第1のインスタンスのゲーム状態から定義付けられるものであり、前記受信すること、
前記ゲーミングサーバによって、観戦者クライアントデバイスからビュー方向データを受信し、前記ビュー方向データは、ヘッドマウントディスプレイ(HMD)の追跡された姿勢から確定されるものであり、
前記ゲーミングサーバによって、前記受信されたゲーム状態データ及び前記ビュー方向データを前記ゲーミングサーバによって実行される前記ビデオゲームの第2のインスタンスに適用して観戦者動画を生成し、
前記観戦者クライアントデバイスに前記観戦者動画をストリーミングして前記HMDにレンダリングを行う、方法。
【請求項10】
前記ゲーム状態データが、前記プレイヤクライアントデバイスと通信しているコントローラデバイスから定義付けられる入力データ、1つもしくは複数のゲーム状態変数のうちの1つまたは複数の値、乱数または擬似乱数種、オブジェクトまたはプロパティの状態に対する更新のうちの1つあるいは複数を含む、請求項9に記載の方法。
【請求項11】
前記ゲーム状態データを前記ビデオゲームの前記第2のインスタンスに適用することで、前記ビデオゲームの前記第1のインスタンスの前記ゲーム状態と実質的に類似する前記ビデオゲームの前記第2のインスタンスのゲーム状態が作り出される、請求項9に記載の方法。
【請求項12】
前記観戦者動画が、前記プレイヤクライアントデバイスによって前記ビデオゲームの前記第1のインスタンスからレンダリングされた一次動画の視野よりも大きい視野を有する、請求項9に記載の方法。
【請求項13】
前記ビュー方向データは、前記HMDが配置される観戦者環境における前記HMDの向きを特定する、請求項9に記載の方法。
【請求項14】
前記HMDの前記追跡された姿勢が、前記HMDの少なくとも1つの慣性センサから及び/または前記観戦者環境の撮像された画像の分析から確定される、請求項13に記載の方法。
【請求項15】
前記方法は、前記HMDにおける前記観戦者動画の前記レンダリングが、前記ビデオゲームの前記第1のインスタンスの実質的なライブ観戦を可能にするように、実質的なリアルタイムで行われる、請求項9に記載の方法。
【請求項16】
少なくとも1つのプロセッサ及び少なくとも1つのメモリを有する少なくとも1つのサーバコンピュータを含むシステムであって、前記少なくとも1つのサーバコンピュータはゲーミングサーバと動画サーバとを含むものであり、
前記ゲーミングサーバは、プレイヤクライアントデバイスからゲーム状態データを受信するように構成され、前記ゲーム状態データは、前記プレイヤクライアントデバイスによって実行されるビデオゲームの第1のインスタンスのゲーム状態から定義付けられるものであり、
前記ゲーミングサーバは、前記受信されたゲーム状態データ及び前記ビュー方向データを前記ゲーミングサーバによって実行される前記ビデオゲームの第2のインスタンスに適用して、広視野(FOV)観戦者動画を生成するようにさらに構成され、
前記動画サーバは、観戦者クライアントデバイスからビュー方向データを受信するように構成され、前記ビュー方向データは、ヘッドマウントディスプレイ(HMD)の追跡された姿勢から確定されるものであり、
前記動画サーバは、前記ビュー方向データを適用して、前記広FOV観戦者動画の一部分を特定するようにさらに構成され、前記広FOV観戦者動画の前記一部分は、前記広FOV観戦者動画の全エリアよりも小さい前記広FOV観戦者動画のサブエリアであり、
前記動画サーバは、前記観戦者クライアントデバイスに前記広FOV観戦者動画の前記一部分をストリーミングして前記HMDにレンダリングするようにさらに構成されている、システム。
【請求項17】
前記ゲーム状態データが、前記プレイヤクライアントデバイスと通信しているコントローラデバイスから定義付けられる入力データ、1つもしくは複数のゲーム状態変数のうちの1つまたは複数の値、乱数または擬似乱数種、オブジェクトまたはプロパティの状態に対する更新のうちの1つあるいは複数を含む、請求項16に記載のシステム。
【請求項18】
前記ゲーム状態データを前記ビデオゲームの前記第2のインスタンスに適用することで、前記ビデオゲームの前記第1のインスタンスの前記ゲーム状態と実質的に類似する前記ビデオゲームの前記第2のインスタンスのゲーム状態が作り出される、請求項16に記載のシステム。
【請求項19】
前記広FOV観戦者動画が、前記プレイヤクライアントデバイスによって前記ビデオゲームの前記第1のインスタンスからレンダリングされた一次動画の視野よりも大きい視野を有する、請求項16に記載のシステム。
【請求項20】
前記ビュー方向データが、前記HMDが配置される観戦者環境における前記HMDの向きを特定し、
前記HMDの前記追跡された姿勢が、前記HMDの少なくとも1つの慣性センサから及び/または前記観戦者環境の撮像された画像の分析から確定される、
請求項16に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
優先権の主張
本出願は、「Wide Field of View Re-rendering for VR Spectating」と題された2015年6月14日出願の米国特許仮出願第62/175,278号明細書の優先権を主張するものであり、その開示は、参照することによって本明細書に組み込まれている。
【0002】
本開示は、ヘッドマウントディスプレイ(HMD:head-mounted display)において仮想現実(VR:virtual reality)観戦するためのビデオゲームの拡大された視野再レンダリングを提供すること、ならびに関連の装置及び方法に関する。
【背景技術】
【0003】
ビデオゲーム産業は、長年にわたり多くの変化を見てきた。コンピューティングパワーが拡大されるにつれて、ビデオゲームの開発者は、同様に、コンピューティングパワーのこれらの増加の利点を活かすゲームソフトを創造してきた。この目的のために、ビデオゲーム開発者は、洗練された操作及び数学を組み込んでいるゲームをコード化して、非常に詳細で魅力的なゲーミング体験を作り出してきた。
【0004】
例示的なゲーミングプラットフォームには、SonyのPlaystation(登録商標)、SonyのPlaystation2(登録商標)(PS2)、SonyのPlaystation3(登録商標)(PS3)、及びSonyのPlaystation4(登録商標)(PS4)が含まれ、それらはそれぞれ、ゲームコンソールの形態で販売されている。よく知られているように、ゲームコンソールは、ディスプレイ(通常は、テレビ)に接続され、ハンドヘルドコントローラを通じてユーザ対話を可能にするように設計されている。ゲームコンソールは、CPU、集中的なグラフィックス操作を処理するためのグラフィックスシンセサイザ、ジオメトリ変換を行うためのベクトルユニットを含む、特殊化した処理ハードウェア、及び他のグルーハードウェア、ファームウェア、ならびにソフトウェアとともに設計されている。ゲームコンソールは、ゲームコンソールを通じてローカルプレイのゲームディスクを受け取るための光学ディスクリーダとともにさらに設計され得る。オンラインゲーミングも可能であり、ここでは、ユーザは、インターネット(Internet)を介して対話形式で他のユーザを相手にプレイする、または他のユーザとともにプレイすることができる。ゲームが複雑であると、プレイヤは興味をそそられ続けるので、ゲーム及びハードウェア製造業者は、さらなる対話性及びコンピュータプログラムを可能にするために革新を続けている。
【0005】
コンピュータゲーミング産業における成長傾向は、ユーザとゲーミングシステムとの間の対話を増やすゲームを開発することである。より豊かな対話型体験を達成する1つのやり方は、ゲーミングシステムによってその移動が追跡されるワイヤレスゲームコントローラを使用して、プレイヤの移動を追跡し、これらの移動をゲームについての入力として使用することである。一般に言えば、ジェスチャ入力は、コンピューティングシステム、ビデオゲームコンソール、スマート機器などの電子デバイスを、プレイヤによって行なわれ、電子デバイスによって捕捉される、いくつかのジェスチャに反応させることを示す。
【0006】
より没入感のある対話型体験を達成する別のやり方は、ヘッドマウントディスプレイを使用することである。ヘッドマウントディスプレイは、ユーザによって装着され、仮想空間のビューなど、様々なグラフィックスを提示するように構成され得る。ヘッドマウントディスプレイに提示されるグラフィックスは、ユーザの視野の大部分またはすべてをもカバーすることができる。したがって、ヘッドマウントディスプレイは、ユーザに、視覚的に没入感のある体験を提供することができる。
【0007】
この産業における別の成長傾向は、クラウドベースのゲーミングシステムの開発に関わる。そのようなシステムは、ゲームアプリケーションを実行するリモート処理サーバを含んでよく、ユーザから入力を受け取り、ディスプレイに動画をレンダリングするように構成可能なローカルシンクライアントと通信する。いくつかの実施態様においては、リモート処理サーバは、ゲーミングコンソールの物理ハードウェア、またはゲームコンソールのハードウェアを複製するそのようなハードウェアを含むことができる。他の実施態様においては、リモート処理サーバは、ゲーミングコンソールのハードウェアをエミュレートする仮想マシンを定義付けることができる。
【発明の概要】
【0008】
本開示の実施形態は、この文脈において生じる。
【0009】
本開示の実施態様は、ヘッドマウントディスプレイ(HMD)において仮想現実(VR)観戦するためのビデオゲームの広視野再レンダリングを提供するのに使用される方法及びシステムを含む。
【0010】
観戦者は、ユーザのゲームプレイの再生動画を視聴しているとき、通常、元のプレイヤの視点から生成され録画された動画を視聴する。しかしながら、HMDなどのデバイスは、観戦者に移動の自由度を与え、また通常の再生動画を観戦するときには利用されない移動追跡も提供する。しかしながら、本開示の実施態様によれば、クラウドサーバにおいて(たとえば、クラウドの中のゲームコンソールハードウェアにおいて)実行し、プレイヤのゲームエンジンからストリーミングされるゲーム状態を入力として受諾し、ゲームの広視野(たとえば、150度以上)をレンダリングするためにそのゲーム状態を使用するゲームエンジンのカスタムビルドが提供される。次いで、広視野レンダリングは、ゲームセッションのリアルタイムストリーミング及び/または事前録画済みの再生のために使用され得る。本開示のいくつかの実施態様によれば、実際のゲームは、ゲームエンジンのネットワーク化されたバージョンにその状態をストリーミングするように修正され得る。
【0011】
本開示の実施態様は、次の便益を含む、既存の方法及びシステムに対するいくつかの利点を提供する。ゲームエンジンは、それ自体の状態を、クラウドにおいて動作するゲームエンジンのコピーに最小変換によりストリーミングすることができ、そのため、プレイヤのゲームエンジン及びクラウドベースのゲームエンジンの内部状態は一貫し得る。VRゲームのプレイヤは、そのゲームエンジンが、最小量のプレイヤマシンのリソースを必要とする、ネットワークを介した更新を単に送信しているにすぎず、ゲームのプレイヤのコピーが、更新の送信は別として、プレイヤの体験の最適化に完全に特化することができるので、プレイヤの体験に対する中断または劣化はほとんどないと考えてよい。
【0012】
ゲームエンジンのカスタムビルドであるサーバベースのコードは、それが、ゲームにおいて使用される実際のエンジンであるので、リプレイ用のゲームを忠実に再現するのに最も適している。サーバベースのコードは、それが、プレイヤの体験の質には影響を及ぼさないので、必要ならば、そのレンダリングを行うのにゲームのプレイヤのコピーよりも長くかかってもよい。実際、サーバベースのコードは、元のプレイヤのレンダリング処理に適用されるものと同じリアルタイムレンダリング制約を受ける必要がなく、また、より多くの処理リソース及び/または追加の処理サイクルを提供することができるので、観戦者レンダリングの品質は、元のプレイヤのレンダリングの品質を上回ることができる。さらには、クライアント及びサーバは、本質的に同じゲーム(しかし、異なるバージョン)を実行するように構成されているので、高品質ストリーミングを実装するための開発コストを削減し得る。
【0013】
いくつかの実施態様によれば、次の動作:ゲーミングサーバによって、プレイヤクライアントデバイスからゲーム状態データを受信するステップであって、ゲーム状態データが、プレイヤクライアントデバイスによって実行されるビデオゲームの第1のインスタンスのゲーム状態から定義付けられる、ステップ;ゲーミングサーバによって、受信されたゲーム状態データ及びビュー方向データをゲーミングサーバによって実行されるビデオゲームの第2のインスタンスに適用して、広視野(FOV:field of view)観戦者動画を生成するステップ;動画サーバによって、観戦者クライアントデバイスからビュー方向データを受信するステップであって、ビュー方向データが、ヘッドマウントディスプレイ(HMD)の追跡された姿勢から確定される、ステップ;動画サーバによって、ビュー方向データを適用して、広FOV観戦者動画の一部分を特定するステップであって、広FOV観戦者動画の一部分が、広FOV観戦者動画の全エリアよりも小さい広FOV観戦者動画のサブエリアである、ステップ;観戦者クライアントデバイスに広FOV観戦者動画の一部分をストリーミングして、HMDにおいてレンダリングするステップを含む、方法が提供される。
【0014】
いくつかの実施態様においては、ゲーム状態データは、プレイヤクライアントデバイスと通信しているコントローラデバイスから定義付けられる入力データ、1つもしくは複数のゲーム状態変数のうちの1つまたは複数の値、乱数または擬似乱数種、オブジェクトまたはプロパティの状態に対する更新のうちの1つあるいは複数を含む。
【0015】
いくつかの実施態様においては、ゲーム状態データをビデオゲームの第2のインスタンスに適用すると、ビデオゲームの第1のインスタンスのゲーム状態と実質的に類似するビデオゲームの第2のインスタンスのゲーム状態が作り出される。
【0016】
いくつかの実施態様においては、広FOV観戦者動画は、プレイヤクライアントデバイスによってビデオゲームの第1のインスタンスからレンダリングされた一次動画の視野よりも大きい視野を有する。
【0017】
いくつかの実施態様においては、ビュー方向データは、HMDが配置される観戦者環境におけるHMDの向きを特定する。
【0018】
いくつかの実施態様においては、HMDの追跡された姿勢は、HMDの少なくとも1つの慣性センサから及び/または観戦者環境の撮像された画像の分析から確定される。
【0019】
いくつかの実施態様においては、広FOV観戦者動画が、ストレージデバイスに記憶され、ビュー方向データを適用するステップが、ストレージデバイスから広FOV観戦者動画を取り出すステップを含む。
【0020】
いくつかの実施態様においては、方法の動作は、HMDにおける広FOV観戦者動画の一部分のレンダリングが、ビデオゲームの第1のインスタンスの実質的なライブ観戦を可能にするように、実質的なリアルタイムに行われる。
【0021】
いくつかの実施態様によれば、ゲーミングサーバによって、プレイヤクライアントデバイスからゲーム状態データを受信するステップであって、ゲーム状態データが、プレイヤクライアントデバイスによって実行されるビデオゲームの第1のインスタンスのゲーム状態から定義付けられる、ステップ;ゲーミングサーバによって、観戦者クライアントデバイスからビュー方向データを受信するステップであって、ビュー方向データが、ヘッドマウントディスプレイ(HMD)の追跡された姿勢から確定される、ステップ;ゲーミングサーバによって、受信されたゲーム状態データ及びビュー方向データをゲーミングサーバによって実行されるビデオゲームの第2のインスタンスに適用して、観戦者動画を生成するステップ;観戦者クライアントデバイスに観戦者動画をストリーミングして、HMDにおいてレンダリングするステップを含む、方法が提供される。
【0022】
いくつかの実施態様においては、ゲーム状態データは、プレイヤクライアントデバイスと通信しているコントローラデバイスから定義付けられる入力データ、1つもしくは複数のゲーム状態変数のうちの1つまたは複数の値、乱数または擬似乱数種、オブジェクトまたはプロパティの状態に対する更新のうちの1つあるいは複数を含む。
【0023】
いくつかの実施態様においては、ゲーム状態データをビデオゲームの第2のインスタンスに適用すると、ビデオゲームの第1のインスタンスのゲーム状態と実質的に類似するビデオゲームの第2のインスタンスのゲーム状態が作り出される。
【0024】
いくつかの態様においては、観戦者動画は、プレイヤクライアントデバイスによってビデオゲームの第1のインスタンスからレンダリングされた一次動画の視野よりも大きい視野を有する。
【0025】
いくつかの実施態様においては、ビュー方向データは、HMDが配置される観戦者環境におけるHMDの向きを特定する。
【0026】
いくつかの実施態様においては、HMDの追跡された姿勢は、HMDの少なくとも1つの慣性センサから及び/または観戦者環境の撮像された画像の分析から確定される。
【0027】
いくつかの実施態様においては、方法の動作は、HMDにおける観戦者動画のレンダリングが、ビデオゲームの第1のインスタンスの実質的なライブ観戦を可能にするように、実質的なリアルタイムに行われる。
【0028】
いくつかの実施態様においては、少なくとも1つのプロセッサ及び少なくとも1つのメモリを有する少なくとも1つのサーバコンピュータを含むシステムが提供され、この少なくとも1つのサーバコンピュータは、ゲーミングサーバと動画サーバとを含み、ゲーミングサーバは、プレイヤクライアントデバイスからゲーム状態データを受信するように構成され、ゲーム状態データは、プレイヤクライアントデバイスによって実行されるビデオゲームの第1のインスタンスのゲーム状態から定義付けられ、ゲーミングサーバは、受信されたゲーム状態データ及びビュー方向データをゲーミングサーバによって実行されるビデオゲームの第2のインスタンスに適用して、広視野(FOV)観戦者動画を生成するようにさらに構成され、動画サーバは、観戦者クライアントデバイスからビュー方向データを受信するように構成され、ビュー方向データは、ヘッドマウントディスプレイ(HMD)の追跡された姿勢から確定され、動画サーバは、ビュー方向データを適用して、広FOV観戦者動画の一部分を特定するようにさらに構成され、広FOV観戦者動画の一部分は、広FOV観戦者動画の全エリアよりも小さい広FOV観戦者動画のサブエリアであり、動画サーバは、観戦者クライアントデバイスに広FOV観戦者動画の一部分をストリーミングして、HMDにおいてレンダリングするようにさらに構成されている。
【0029】
いくつかの実施態様においては、ゲーム状態データは、プレイヤクライアントデバイスと通信しているコントローラデバイスから定義付けられる入力データ、1つもしくは複数のゲーム状態変数のうちの1つまたは複数の値、乱数または擬似乱数種、オブジェクトまたはプロパティの状態に対する更新のうちの1つあるいは複数を含む。
【0030】
いくつかの実施態様においては、ゲーム状態データをビデオゲームの第2のインスタンスに適用すると、ビデオゲームの第1のインスタンスのゲーム状態と実質的に類似するビデオゲームの第2のインスタンスのゲーム状態が作り出される。
【0031】
いくつかの実施態様においては、広FOV観戦者動画は、プレイヤクライアントデバイスによってビデオゲームの第1のインスタンスからレンダリングされた一次動画の視野よりも大きい視野を有する。
【0032】
いくつかの実施態様においては、ビュー方向データは、HMDが配置される観戦者環境におけるHMDの向きを特定し、HMDの追跡された姿勢は、HMDの少なくとも1つの慣性センサから及び/または観戦者環境の撮像された画像の分析から確定される。
【0033】
本開示の他の態様及び利点は、本開示の原理を例として示す添付の図面と併せて次の詳細な説明から明白になるであろう。
【0034】
本開示は、添付の図面と併せて次の説明を参照することによって、より良く理解され得る。
【図面の簡単な説明】
【0035】
【
図1】本開示の一実施形態によるビデオゲームの対話型ゲームプレイのためのシステムを示す。
【
図2】本開示の一実施形態による、ヘッドマウントディスプレイ(HMD)を示す。
【
図3】本開示の一実施形態による、実行中のビデオゲームと関連してHMDの機能を概念的に示す。
【
図4】ヘッドマウントディスプレイ(HMD)において観戦するために広視野(FOV)再レンダリングを提供するためのシステムを示す。
【
図5】観戦者がHMDにおいて視聴するのに利用可能な拡大された視野を示す。
【
図6】本開示の実施態様による、仮想環境における仮想ビューポイントの移動を示す、ビデオゲームの仮想環境の俯瞰図を示す。
【
図7】HMDにおいて観戦するために広視野を提供するためのシステムを示す。
【
図8】ユーザが回転させている頭部及び視野の付随する変化の俯瞰図を示す。
【
図9】本開示の一実施形態によるヘッドマウントディスプレイの構成要素を示す。
【
図10】本開示の様々な実施形態による、ゲームシステム1400のブロック略図である。
【発明を実施するための形態】
【0036】
本開示の次の実施態様は、ヘッドマウントディスプレイ(HMD)において仮想現実(VR)観戦のためにビデオゲームの広視野の再レンダリングを提供するための方法及びシステムを提供する。
【0037】
1つの実施形態においては、方法、システム、画像撮像オブジェクト、センサ、及び関連のインターフェースオブジェクト(たとえば、グローブ)は、ディスプレイ画面において実質的なリアルタイムにレンダリングされるように構成されているデータを処理するように構成されている。ディスプレイは、ヘッドマウントディスプレイ(HMD)のディスプレイ、第2の画面のディスプレイ、ポータブルデバイスのディスプレイ、コンピュータディスプレイ、ディスプレイパネル、あるいは1人または複数人のリモートに結び付けられた(たとえば、コンテンツを視聴している、または対話型体験において共有している可能性がある)ユーザのディスプレイなどとすることができる。
【0038】
しかしながら、本開示が、これらの特定の詳細の一部またはすべてなくても実施可能であることは当業者には明らかであろう。他の例においては、よく知られている方法動作については、本開示を不必要に不明瞭にしないようにするために、詳細には説明していない。
【0039】
図1は、本開示の一実施形態による、ビデオゲームの対話型ゲームプレイのためのシステムを示している。ヘッドマウントディスプレイ(HMD)102を装着しているユーザ100が示されている。HMD102は、眼鏡、ゴーグル、またはヘルメットと同様の方式で装着され、ビデオゲームまたは他のコンテンツをユーザ100に対して表示するように構成されている。HMD102は、ユーザの目のすぐ近くにディスプレイ機構を設けることにより、ユーザに非常に没入感のある体験を提供する。したがって、HMD102は、ユーザの視野の大部分またはさらには全体を占めるユーザの目のそれぞれに表示領域を提供することができる。
【0040】
1つの実施形態においては、HMD102は、コンピュータ106に接続され得る。コンピュータ106との接続は、ワイヤードであっても、またはワイヤレスであってもよい。コンピュータ106は、ゲーミングコンソール、パーソナルコンピュータ、ラップトップ、タブレットコンピュータ、モバイルデバイス、セルラフォン、タブレット、シンクライアント、セットトップボックス、メディアストリーミングデバイスなどを含むが、これらに限定されない、当技術分野においては知られている任意の汎用または専用のコンピュータとすることができる。1つの実施形態においては、コンピュータ106は、ビデオゲームを実行し、HMD102によるレンダリングのために動画及び音声をビデオゲームから出力するように構成され得る。
【0041】
ユーザ100は、入力をビデオゲームに提供するようにグローブインターフェースオブジェクト104を操作することができる。加えて、カメラ108は、ユーザ100が位置する対話型環境の画像を撮像するように構成され得る。これらの撮像された画像は、ユーザ100、HMD102、及びグローブインターフェースオブジェクト104の位置ならびに移動を確定するために分析され得る。1つの実施形態においては、グローブインターフェースオブジェクト104は、それの位置及び向きを確定するために追跡され得るライトを含む。加えて、HMD102は、HMD102の位置及び向きを確定するために追跡され得る1つまたは複数のライトを含んでもよい。カメラ108は、対話型環境から音を捕捉するための1つまたは複数のマイクロフォンを含むことができる。マイクロフォンアレイによって捕捉された音は、音源の位置を特定するために処理され得る。特定された位置からの音は、特定された位置からではない他の音を除外するために選択的に利用され、または処理され得る。さらには、カメラ108は、複数の画像撮像デバイス(たとえば、カメラの立体対)、IRカメラ、深さカメラ、及びそれらの組合せを含むように定義付けられ得る。
【0042】
別の実施形態においては、コンピュータ106は、クラウドゲーミングプロバイダ112とネットワークを介して通信するシンクライアントとして機能する。クラウドゲーミングプロバイダ112は、ユーザ102によってプレイされているビデオゲームを維持し、実行する。コンピュータ106は、HMD102、グローブインターフェースオブジェクト104、及びカメラ108からの入力をクラウドゲーミングプロバイダに送信し、クラウドゲーミングプロバイダは、その入力を処理して、実行中のビデオゲームのゲーム状態に影響を及ぼす。動画データ、音声データ、及び触覚フィードバックデータなどの実行中のビデオゲームからの出力は、コンピュータ106に送信される。コンピュータ106は、関連のデバイスに、さらにそのデータを処理してから送信しても、またはそのデータを直接、送信してもよい。たとえば、動画及び音声のストリームは、HMD102に提供され、一方、振動フィードバックコマンドは、グローブインターフェースオブジェクト104に提供される。
【0043】
1つの実施形態においては、HMD102、グローブインターフェースオブジェクト104、及びカメラ108はそれら自体、クラウドゲーミングプロバイダ112と通信するためにネットワーク110に接続するネットワーク化されたデバイスとすることができる。たとえば、コンピュータ106は、普通なら、ビデオゲーム処理を行わないが、ネットワークトラフィックの通過を容易にする、ルータなど、ローカルネットワークデバイスであってよい。HMD102、グローブインターフェースオブジェクト104、及びカメラ108によるネットワークへの接続は、ワイヤードであっても、またはワイヤレスであってもよい。
【0044】
加えて、本開示における実施形態については、ヘッドマウントディスプレイを参照して説明することができるが、他の実施形態においては、本実施形態による対話型シーンもしくは仮想環境の動画をレンダリングし、及び/または表示を実現するように構成され得るテレビ、プロジェクタ、LCD表示画面、ポータブルデバイス画面(たとえば、タブレット、スマートフォン、ラップトップなど)、または任意の他のタイプのディスプレイを含むが、これらに限定されない非ヘッドマウントディスプレイに置き換えることが可能であることは認識されるであろう。
【0045】
図2は、本開示の一実施形態によるヘッドマウントディスプレイ(HMD)を示している。図示されるように、HMD102は、複数のライト200A~200Hを含む。これらのライトはそれぞれ、特定の形状を有するように構成でき、同一のまたは異なる色を有するように構成できる。ライト200A、200B、200C、及び200Dは、HMD102の前面に配置されている。ライト200E及び200Fは、HMD102の側面に配置されている。またライト200G及び200Hは、HMD102の前面及び側面にまたがるように、HMD102の隅部に配置されている。ライトは、ユーザがHMD102を使用する対話型環境の撮像された画像において特定され得ることは認識されるであろう。ライトの特定及び追跡に基づいて、対話型環境の中のHMD102の位置及び向きが確定され得る。ライトのうちのいくつかが、画像撮像デバイスに対するHMD102の特定の向きに応じて、目に見える場合も、または目に見えない場合もあることはさらに認識されるであろう。また、ライト(たとえば、ライト200G及び200H)の異なる部分は、画像撮像デバイスに対するHMD102の向きに応じて、画像撮像のために露出され得る。
【0046】
1つの実施形態においては、ライトは、HMDの現在の状況を近くの他の人に示すように構成され得る。たとえば、ライトのうちのいくつかまたはすべては、特定の色構成、輝度構成を有するように構成され、点滅し、特定のオン/オフ構成設定、またはHMD102の現在の状況を示す他の構成を有するように構成され得る。例として、ライトは、ビデオゲームの活発なゲームプレイ(概して、活発なタイムライン中、またはゲームのシーン内で生じるゲームプレイ)と、メニューインターフェースをナビゲートしている、またはゲーム設定を構成設定しているなどの(その間、ゲームタイムラインまたはシーンは、不活発である、または休止している場合がある)ビデオゲームの他の活発でないゲームプレイ様相との間の異なる構成設定を表示するように構成され得る。ライトはまた、ゲームプレイの相対強度レベルを示すようにも構成され得ることもある。たとえば、ゲームプレイの強度が上昇すると、光の輝度または点滅の速度が、上昇し得る。この方式においては、ユーザの外部の人は、HMD102上のライトを見て、ユーザが、激しいゲームプレイに積極的に関わっており、その瞬間においては、邪魔されることを望んでいない可能性があることを理解することができる。
【0047】
HMD102は、追加として、1つまたは複数のマイクロフォンを含むことができる。例示の実施形態においては、HMD102は、HMD102の前面に画定されたマイクロフォン204A及び204B、ならびにHMD102の側面に画定されたマイクロフォン204Cを含む。マイクロフォンアレイを利用することによって、マイクロフォンのそれぞれからの音は、音源の位置を確定するために処理され得る。この情報は、望ましくない音源の排除、音源と視覚的特定との関連付けなどを含む様々なやり方で利用され得る。
【0048】
HMD102はまた、1つまたは複数の画像撮像デバイスを含んでもよい。例示の実施形態においては、HMD102は、画像撮像デバイス202A及び202Bを含むように示されている。画像撮像デバイスの立体対を利用することによって、環境の三次元(3D:three-dimensional)画像及び動画が、HMD102の視点から撮像され得る。そのような動画が、ユーザに提示されて、ユーザに、HMD102を装着しながら「動画シースルー(video see-through)」能力を提供することができる。つまり、ユーザは、厳密な意味ではHMD102を通して見ることはできないのであるが、それでも、画像撮像デバイス202A及び202Bによって撮像される動画は、あたかもHMD102を通して見ているかのようにHMD102の外部の環境を見ることができることに匹敵する機能を提供することができる。そのような動画は、仮想要素により拡張されて、拡張された現実体験をもたらすことができ、または他のやり方で仮想要素と結合されても、もしくはブレンドされてもよい。例示の実施形態においては、2つのカメラがHMD102の前面に示されているが、HMD102に据え付けられた任意の数の外部に面したカメラが、任意の方向に向けられて存在し得ることは理解されるであろう。たとえば、別の実施形態においては、HMD102の側面に取り付けられて、環境の追加的なパノラマ画像撮像を行うカメラが存在してもよい。
【0049】
図3は、本開示の一実施形態による、実行中のビデオゲームと関連するHMD102の機能を概念的に示している。実行中のビデオゲームは、入力を受信してビデオゲームのゲーム状態を更新するゲームエンジン320によって定義付けられる。ビデオゲームのゲーム状態は、オブジェクトの存在及び位置、仮想環境の条件、イベントのトリガ、ユーザプロファイル、ビュー視点などの現在のゲームプレイの様々な様相を定義付けるビデオゲームの様々なパラメータの値によって、少なくとも一部は定義付けられ得る。
【0050】
例示の実施形態においては、ゲームエンジンは、例として、コントローラ入力314、音声入力316、及びモーション入力318を受信する。コントローラ入力314は、ハンドヘルドゲーミングコントローラ(たとえば、SonyのDUALSHOCK(登録商標)4のワイヤレスコントローラ、SonyのPlaystation(登録商標)Moveモーションコントローラ)、またはグローブインターフェースオブジェクト104など、HMD102とは別個のゲーミングコントローラの操作から定義付けられ得る。例として、コントローラ入力314は、方向性入力、ボタン押し、トリガアクティブ化、移動、ジェスチャ、またはゲーミングコントローラの操作から処理される他の種類の入力を含むことができる。音声入力316は、HMD102のマイクロフォン302から、または画像撮像デバイス108の中に、もしくはローカル環境の他の場所に含まれているマイクロフォンから処理され得る。モーション入力318は、HMD102に含まれているモーションセンサ300から、またはHMD102の画像を撮像するときの画像撮像デバイス108から処理され得る。ゲームエンジン320は、ゲームエンジンの構成設定に従って処理される入力を受信して、ビデオゲームのゲーム状態を更新する。ゲームエンジン320は、ゲーム状態データを、そのゲーム状態データを処理してユーザに提示されることになるコンテンツを定義付ける様々なレンダリングモジュールに出力する。
【0051】
例示の実施形態においては、動画レンダリングモジュール322は、HMD102において提示するための動画ストリームをレンダリングするように定義付けられる。動画ストリームは、ディスプレイ/プロジェクタ機構310によって提示でき、ユーザの目306によって光学系308を通して見ることができる。音声レンダリングモジュール304は、ユーザが聴くための音声ストリームをレンダリングするように構成されている。1つの実施形態においては、音声ストリームは、HMD102に関連付けられたスピーカ304を通して出力される。スピーカ304が、オープンエアースピーカ、ヘッドフォン、または音声を提示することができる任意の他の種類のスピーカの形態を取ることができることは認識すべきである。
【0052】
1つの実施形態においては、視線追跡カメラ312が、HMD102の中に含まれて、ユーザの視線の追跡を可能にする。視線追跡カメラは、ユーザの目の画像を撮像し、その画像は、ユーザの視線方向を確定するために分析される。1つの実施形態においては、ユーザの視線方向についての情報を利用して、動画レンダリングに影響を及ぼすことができる。たとえば、ユーザの目が特定の方向を見ていると確定された場合には、その方向のための動画レンダリングが、たとえばユーザが見ている領域においてより詳細なまたはより速い更新を提供することによって、優先または強調され得る。ユーザの視線方向が、ヘッドマウントディスプレイに対して、ユーザが中に位置している実環境に対して、及び/またはヘッドマウントディスプレイにおいてレンダリングされている仮想環境に対して定義付けられ得ることは認識すべきである。
【0053】
大まかに言えば、視線追跡カメラ312によって撮像される画像の分析は、単独で考えられる場合、HMD102に対するユーザの視線方向を提供する。しかしながら、HMD102の追跡位置と向きとの組合せで考えられる場合、HMD102の位置及び向きがユーザの頭部の位置及び向きと同義であるので、ユーザの現実世界の視線方向が確定され得る。つまり、ユーザの現実世界の視線方向は、ユーザの目の場所的な移動を追跡すること、ならびにHMD102の位置及び向きを追跡することから確定され得る。仮想環境のビューがHMD102においてレンダリングされるとき、ユーザの現実世界の視線方向は、仮想環境の中のユーザの仮想世界の視線方向を確定するために適用され得る。
【0054】
加えて、触覚フィードバックモジュール326が、HMD102、またはコントローラ104などのユーザによって操作される別のデバイスのいずれかに含まれている触覚フィードバックハードウェアに信号を提供するように構成されている。触覚フィードバックは、振動フィードバック、温度フィードバック、圧力フィードバックなどの様々な種類の触感の形態を取ることができる。
【0055】
現在のところ、ゲームリプレイを共有するためのストリーミングサービスは、非常に普及している。DualShock(登録商標)4ワイヤレスコントローラは、そのような共有を可能にするためにコントローラ上に直接、「共有ボタン」を含む。本開示の実施態様は、HMD/VRヘッドセットを使用して、リプレイを探索したい人のための共有リプレイを改善する。本開示の実施態様は、非常に広い視野によりゲームリプレイのレンダリングを提供して、観戦者が、HMDを使用して自由に自分の頭部を動かし、目新しい有利なポイントからリプレイを視聴することを可能にする。従来のストリーミング手法は、リプレイを元のプレイヤが視聴していたことのみに限定し、それにより、ビュー方向は、観戦者の頭部の場所及び向きとは無関係になり、HMDを使用する観戦者がその頭部を動かした場合、何も変化しないことになる。
【0056】
本開示の実施態様は、HMDの中の目新しいビューポイントをサポートするのに十分な広視野における動画レンダリングを提供する。クラウドサーバ(たとえば、クラウドの中のコンソールゲーミングハードウェア、たとえばPlayStation(商標登録)4ハードウェアにおいて)動作し、元のプレイヤのゲームエンジンからストリーミングされるゲーム状態を入力として受諾し、次いで、そのゲームセッションのリアルタイムストリーミング及び/または事前録画された再生に使用され得る、ゲームの極めて広い視野(たとえば、150度強)ビューにレンダリングするためにそのゲーム状態を使用するゲームエンジンのカスタムビルドである。極めて広い視野が、HMDの視野を超えており、それにより、HMDを装着した観戦者がリプレイの中で見回すことが可能になることは認識されるであろう。実際のゲームは、エンジンのネットワーク化されたバージョンにその状態をストリーミングするように構成されている。
【0057】
図4は、ヘッドマウントディスプレイ(HMD)において観戦するためのプレイヤのゲームプレイ動画の広視野(FOV)再レンダリングを提供するためのシステムを示している。
【0058】
プレイヤのビデオゲームビルド400は、プレイヤ405による対話型ゲームプレイのためのプレイヤコンピューティングデバイス402によって実行される。プレイヤコンピューティングデバイス402は、コンソールゲーミングデバイス(たとえば、PlayStation(登録商標)4)、パーソナルコンピュータ、ラップトップ、セットトップボックス、ポータブルゲーミングデバイス(たとえば、PlayStation(登録商標)Vita)、タブレット、スマートフォン、またはビデオゲームを実行するように構成され得る少なくとも1つのプロセッサ及びメモリを有する任意の他のコンピューティングデバイスとすることができる。プレイヤコンピューティングデバイス402は、ディスプレイデバイス404に接続でき、このディスプレイデバイス404の上に、プレイヤのビデオゲームビルドのゲームプレイ動画がレンダリングされる。様々な実施態様においては、ディスプレイデバイス404は、テレビ、モニタ、LCDディスプレイ、HMD、または動画コンテンツが提示され得る任意の他のタイプのディスプレイデバイスであってよい。いくつかの実施態様においては、ディスプレイデバイス404は、(たとえば、ラップトップコンピュータ、ポータブルゲーミングデバイス、タブレットなどにあるような)コンピューティングデバイス402と一体化される。
【0059】
プレイヤのビデオゲームビルド400は、ゲームをプレイする人によって使用される。プレイヤのビデオゲームビルド400は、テレビ、HMD、またはゲームビルド400と互換性のある任意の他のタイプのディスプレイにレンダリングするように構成され得る。ゲームビルド400は、ビデオゲームのシーングラフの変化を確定し、ネットワーク406を介してそれらをストリーミングするように構成されている。シーングラフ(またはゲーム状態)は、ゲームの仮想世界/環境の状態、及び任意の仮想オブジェクト/キャラクタを含む、対話型ゲームプレイを定義付けるビデオゲームの状態を記述する。ゲームビルド400によるシーングラフのストリーミングが、ビデオゲームの実際の動画フィードのストリーミングを伴うのではなく、むしろビデオゲームの仮想世界の状態を記述するシーングラフを伴うことに留意すべきである。
【0060】
ストリーミングされ得るシーングラフ(またはゲーム状態)データ408の例は、以下:仮想世界の中のオブジェクトの作成と破壊(例として、キャラクタが仮想世界に生成された場合、その情報は、ストリーミングされる可能性もあり得る)、その世界の中のオブジェクトの場所及び向き、その世界のレンダリング設定に対する変更(たとえば、光及び粒子エミッタは、シーングラフの中のオブジェクトであってよいが、直接的に埋め込まれない他の効果が存在する場合があり、例として、プレイヤの画面は、プレイヤが大きなダメージを受けているので、血に染まった状態になる場合がある。)を含む。
【0061】
引き続き
図4を参照すると、クラウドレンダリングサービス410が、ユーザのゲームプレイの広視野再レンダリングを行うために設けられる。クラウドレンダリングサービス410は、画面または入力デバイスの接続もしくは通信を必要としないビデオゲームのビルドであるレンダリングビルド412を含む。レンダリングビルド412は、プレイヤのゲームビルド400からストリーミングされたゲーム状態データ408を受信し、ゲーム状態データ408を処理して、頭部追跡を伴うHMDにおけるレンダリングに適している広視野動画を生成する。レンダリングビルド412によってレンダリングされる広視野動画は、HMDが提供する視野を超えており、それにより、再生中にHMDを通じた動的ビューが可能になる。
【0062】
ビデオゲームのレンダリングビルド412は、プレイヤのゲームビルド400と同じ制約を受ける必要がない。たとえば、レンダリングビルド412は、必ずしもリアルタイムで動作する必要も、またはプレイヤのゲームビルド400と同じもしくは類似するハードウェアセットアップ(たとえば、ゲームコンソール)において動作する必要もない。レンダリングビルド412は、ゲームプレイ中にプレイヤのゲームビルド400に利用可能であったよりも多くのリソース(すなわち、プレイヤコンピューティングデバイス402のリソースよりも多い)により、レンダマシンにおいて動作し得る。
【0063】
レンダリングビルド412は、広視野動画414を生成し、レンダリングされた動画414を動画サーバ416に送信する。動画サーバ416はレンダリングビルド412からアップロードされた動画を受信し、1人または複数人の観戦者/ユーザ428に視聴されるようにネットワーク406を介してその動画を供給する。広FOV動画は、動画ストレージ418に記憶されて、観戦者428が、自らがその動画を視聴したいと指示するとき、動画サーバ416によって読み出され得る。いくつかの実施態様においては、広FOV動画は、実質的にリアルタイムで動画サーバ416によって供給されて、つまり、プレイヤ405が、ビデオゲームのプレイヤのゲームビルド400をプレイしているとき、プレイヤのゲームビルド400は、リアルタイムでゲーム状態データ408を同時にストリーミングし、ひいては、ゲーム状態データ408は、リアルタイムでレンダリングゲームビルド412によって処理されて広FOV動画414を生成し、広FOV動画414は、観戦者に対してレンダリングするためのビューアアプリケーション422にリアルタイムでストリーミングされる。これにより、観戦者に、プレイヤのゲームプレイが生じると、それの(遅延処理を受けて)実質的リアルタイムライブ視聴体験がもたらされる。
【0064】
他の実施態様においては、操作のうちのいずれも、非リアルタイム方式で行うことができる。たとえば、ゲーム状態データ408は、プレイヤコンピューティングデバイス402において記憶されて、プレイヤのゲームプレイセッションが完了した後にレンダリングゲームビルド412に送信され得る場合もあり、レンダリングゲームビルド412による広FOV動画のレンダリングは、非リアルタイムの形で行われてもよく、及び/またはレンダリングされた広FOV動画414は、後に読み出すために動画ストレージ418に記憶されてもよい。
【0065】
動画サーバ416は、様々な動画ストリーミング技術のうちのいずれかにより、広FOV動画414をストリーミングするように構成され得る。ストリーミングされた動画は、セキュリティと帯域幅管理との両方の目的のために、暗号化され、ならびに符号化され/圧縮されてもよい。例示の実施態様においては、広FOV動画414のストリーミングは、広FOV動画をディスプレイデバイス426にレンダリングして観戦者428に視聴されるために、動画サーバ416による動画データストリーム420の生成、及び動画データストリーム420のビューアアプリケーション422への送信によって定義付けられる。ビューアアプリケーション422は、観戦者428に視聴されるために、広FOV動画414の動画コンテンツをディスプレイデバイス426にレンダリングできるようにするために、動画データストリーム420を解読し、及び/または復号し/解凍する。
【0066】
ビューアアプリケーション422は、ビューアコンピューティングデバイス424において動作することができる。ビューアコンピューティングデバイス422(たとえば、コンピュータ、ゲーミングコンソール、セットトップボックス、クライアントコンピュータなど)は、ディスプレイデバイス426(たとえば、LCDディスプレイ、HMDなど)と通信し、それに動画データストリームの動画コンテンツをレンダリングする。いくつかの実施態様においては、ビューアコンピューティングデバイス422及びディスプレイデバイス426は、単一のデバイスに一体化され、一方、他の実施態様においては、それらは、リンクされている別個のデバイスである。
【0067】
広FOV動画414は、ビデオゲームのためのディスプレイデバイス426を通じて利用可能な公称視野を超える視野によりレンダリングされる。たとえば、ディスプレイデバイス426がHMDである実施態様においては、広FOV動画414は、HMDの視野を超える視野においてレンダリングされる。したがって、ディスプレイデバイス426を通じて表示される動画コンテンツは、広FOV動画において利用可能な全視野に対してクロップされる。クロッピングは、HMD及び/または観戦者の追跡された移動から確定される観戦者のビュー方向に従うことができる。広FOV動画は、HMDの視野よりも広視野においてレンダリングされたので、広FOV動画を視聴する人は、自分の頭部を動かして、ゲームの異なる部分を視聴することができる。これにより、観戦者は、たとえば、横へと視線をそらし、元のゲームプレイヤが気付いていない場合がある敵の接近に気を付けることが可能になる。
【0068】
したがって、本開示の実施態様は、観戦者が、別のプレイヤのゲームプレイ体験の動画をリプレイすることを可能にするが、観戦者に、ゲームの仮想環境を見回し、その新規ビューが提供される可能性を与える追加の機能を含むシステム及び方法を提供する。現在のストリーミングサービスは、現在、プレイヤの画面にあるもののスクリーンショットを撮像し、それらを観戦者に送信し、それにより、観戦者は、プレイヤが見ているものを正確に見ることになる。しかしながら、観戦者には、そのようなシステムにおける元のプレイヤのビューと異なるビューは何ら与えられない。本開示の実施態様は、観戦者が、第1のプレイヤが見ているものを正確に見ることを可能にするだけでなく、観戦者が自分の頭部を動かし、追加のビューを見ることを可能にする。いくつかの実施態様においては、観戦者ビューはまた、たとえば第1の人のキャラクタの背後を辿るビューポイントからの、第3の人のビューなど、異なる有利なポイントからのものである場合もあり得る。
【0069】
いくつかの実施態様においては、観戦者ビューポイントは、第1のプレイヤのキャラクタまたはビューポイントの位置に繋がれる場合もあり得るが、観戦者はまた、観戦者が移動することができる範囲内で第1のプレイヤのキャラクタ/ビューポイントに対して限定された空間/自由度を有することも可能になる。たとえば、観戦者位置は、第1のプレイヤのキャラクタ/ビューポイントの、一定の所定の距離内にとどまるように構成可能になる。
【0070】
図5は、本開示の実施態様による、観戦者が視聴するためにレンダリングされ、利用可能にされる拡大された視野を示している。例示の実施態様においては、ヘッドマウントディスプレイ(HMD)502は、観戦者500に、約100度(水平)視野を提供する。つまり、HMD502のディスプレイハードウェアは、HMDが装着されたとき、画面は、観戦者の視野の約100度を占めるように構成されている。約100度の公称HMD視野が、ほんの一例として設けられていること、及び様々な実施態様においては、HMDが、約100度よりも大きい視野または小さい視野を有してもよいことを認識すべきである。それにもかかわらず、HMDは、HMDの特定のディスプレイハードウェア構成設定(たとえば、ディスプレイサイズ、光学系、及びユーザの目に対する位置決め)によって定義付けられる公称視野を有し、したがって、ビデオゲームの仮想環境のビューを提示するHMD上のディスプレイのための動画コンテンツは、公称HMD視野に一致する仮想環境の視野を提供するように構成され得る。
【0071】
本開示の実施態様によれば、広FOV動画は、HMD502の視野よりも広視野においてレンダリングされる。例として、広FOV動画は、参照記号504において概念的に例示されている、約150度視野においてレンダリング可能になる。他の実施態様においては、広FOV動画は、広FOV動画の視野がHMD502の視野よりも大きい限り、150度よりも小さいまたは大きい視野においてレンダリング可能になる。動画の視野が、動画が生成されるビデオゲームの仮想環境における視野によって定義付けられることを認識すべきである。
【0072】
動画の視野がHMDの視野よりも大きいときには、動画プレイヤ/ビューア(たとえば、ビューアアプリケーション422)を利用して、より広い150度レンダリング504から100度ビュー部分508をレンダリングして、観戦者500が視聴するためにHMD502において表示することができる。最初の状態においては、観戦者500の視野508は、元のプレイヤの元の視野506と同じであってもよく、それにより、観戦者500は、ゲームプレイ中、(元のプレイヤが、同じタイプのHMDデバイスなど、実質的に同じ視野能力を有するデバイスにおいて自身のゲームプレイを視聴していたとすれば)元のプレイヤが見たものを見ることになることが認識されるであろう。つまり、広FOV動画に対する観戦者のビュー方向512は、広FOV動画に対する元のプレイヤのビュー方向510と一致し得る。
【0073】
しかしながら、観戦者の視野508は、その最初の場所からHMD502の検出された移動に応答して、元のプレイヤの視野506からシフトされ得る。注記したように、HMDの場所及び移動は、慣性センサ、及びHMD502上のフィーチャ/オブジェクト(可能性として照明される)の視覚的追跡を含む様々な技術を利用して検出され得る。したがって、広FOV動画の観戦者の視野は、HMDの姿勢の検出された変化(たとえば、回転、向き、及び/または場所の変化)に応答してシフトされ得る。言い換えれば、広FOV動画に対する観戦者500のビュー方向は、HMD502の検出された移動によって確定される観戦者500の検出された移動に応答して、広FOV動画に対する元のプレイヤのビュー方向から逸脱する場合がある。元のプレイヤのものから広FOV動画に対する観戦者のビュー方向512の逸脱は、最初の姿勢からのHMD502の姿勢の逸脱に相関し得る。したがって、観戦者が自分の頭部の方向をより変えるにつれて、観戦者のビュー方向512は、元のプレイヤの元のビュー方向510からますます逸脱し、したがって、観戦者の視野508は、元のプレイヤの視野506から(ビュー方向の逸脱の方向に)ますますシフトされる。
【0074】
説明の実施態様においては、元のプレイヤが観戦者と実質的に同じタイプのHMDデバイスを使用してビデオゲームを視聴するシナリオが考慮されているが、他の実施態様においては、元のプレイヤは、観戦者と同じタイプのデバイスを使用して元のゲームプレイを視聴している必要がないことは認識すべきである。たとえば、元のゲームプレイは、テレビにおいてレンダリングされていてもよく、その場合においては、広FOV動画に対する元のプレイヤの視野506は、観戦者の視野508よりも小さくてよい。
【0075】
いくつかの実施態様においては、広FOV動画の視野504は、同心円状に元のプレイヤの視野を包含するようにレンダリングされ、ここで、元のプレイヤの視野(参照記号506において示されている)は、広FOV動画のより広視野504内で中央に位置決めされる。つまり、等価な視野部分が、元のプレイヤの視野の両側に提供されることになる。一例として、再度、水平視野を考慮すると、同心円レンダリングが、元のプレイヤの視野506の左に及び右にレンダリングされることになる等価な追加の視野部分を提供することになる。この概念はまた、元のプレイヤの視野の上下のビュー部分にも適用され得る。ビデオゲームのレンダリングビルドが、この方式において広FOV動画を生成するように構成され得ることを認識すべきである。
【0076】
他の実施形態においては、広FOV動画の視野504は、非同心円状にレンダリング可能であり、それにより、元のプレイヤの視野506は、動画のより広視野504の中心に必ずしも位置決めされるとは限らなくなる。つまり、非等価な視野部分が、元のプレイヤの視野の両側に設けられ得る。すなわち言い換えれば、広FOV動画の中央ビュー方向は、元のプレイヤの視野の中央ビュー方向から逸脱してもよい。たとえば、元のプレイヤの視野の右に対する視野部分は、元のプレイヤの視野の左に対する視野部分よりも大きい場合があり得る。これは、観戦者が、元のプレイヤの視野の右に対してより多くのコンテンツを見ることを、元のプレイヤの視野の左に対して同等のコンテンツを視聴することができることを犠牲にして、可能にすることができる。このシナリオにおいては、広FOV動画の中央ビュー方向は、元のプレイヤの視野のものから(右に)逸脱する。
【0077】
同心円レンダリングスキームからどの方向にどの程度逸脱すべきであるかどうかは、ビデオゲームのゲーム状態に基づいて、ビデオゲームのレンダリングビルドによって確定することができる。いくつかの実施態様においては、元のプレイヤのものから広FOV動画のための中央ビュー方向の逸脱は、実質的に、元のプレイヤの視野がゲームプレイ中に移動している/移動していた方向にある。言い換えれば、元のプレイヤの視野がビデオゲームの仮想空間における右に移動していた場合には、広FOV動画の中央ビュー方向は、元のプレイヤのビュー方向に比較して右にシフトされることになり、それによって、レンダリングされた広FOV動画における元のプレイヤの視野の左よりも右に対して、より大きい視野部分が提供される。そのような構成設定は、元のプレイヤの視野がゲームプレイ中に移動していた方向が、その方向において(この場合においては、右に向かって)対象の何かを示すことがあるので望ましい場合があり、そのため、観戦者は、その方向にあるものを見るために方向を変える可能性が高い場合がある。いくつかの実施態様においては、中央ビュー方向の逸脱量は、元のプレイヤの視野の変化率に基づいている(たとえば、正に相関している)。
【0078】
様々な実施態様においては、様々な他のゲーム状態要因のうちのいずれも、広FOV動画のための同心円レンダリングスキームからの逸脱を確定すると考えることができる。これらは、限定するものではないが、ビデオゲームの仮想空間内の様々な地理的領域に関連付けられる活動、仮想空間におけるオブジェクトの移動、仮想空間における対象の領域またはオブジェクトなどを含むことができる。
【0079】
概して、水平に拡大される広視野が、本明細書においては参照されているが、広視野が、やはり垂直に拡大されるビューを包含し得ることは認識されるであろう。本明細書に説明される実施態様のすべてにおいては、拡大された視野のゲームプレイ動画は、水平方向と垂直方向との両方に拡大されて、観戦者が、元のプレイヤに視聴されていなかった可能性がある仮想空間の部分を選択的に視聴することを可能にすることができることが企図される。
【0080】
図6は、本開示の実施態様による、仮想環境における仮想ビューポイントの移動を示す、ビデオゲームの仮想環境の俯瞰図を示している。最初の時間T
0においては、仮想ビューポイント602が、仮想環境600の中の場所P
0において定義付けられる。仮想ビューポイント602は、仮想環境600内の位置を定義付け、そこから仮想環境600のプレイヤのビューが提示される。つまり、仮想環境600のプレイヤのビューは、仮想ビューポイント602の視点から提示される。仮想ビューポイント602は、いくつかの実施態様においては、キャラクタ、車両、またはビデオゲームのゲームプレイ中にプレイヤによって制御される他のオブジェクトの位置と一致し得る。
【0081】
他の実施態様においては、仮想ビューポイント602は、そのようなオブジェクトに近接し得る。いくつかの実施態様においては、仮想ビューポイント602は、(たとえば、背中越しの有利なポイントを提供する)元のプレイヤのビューポイントに対する所定の位置にあってもよい。いくつかの実施態様においては、仮想ビューポイント602は、ビデオゲームのゲームプレイ中のプレイヤのビューポイントの位置に近接する及び/またはその位置を取り囲む領域603内に位置していてもよい。領域603が、プレイヤビューポイントを取り囲む三次元領域であってもよいことは認識されるであろう。仮想ビューポイント602は、HMDの移動または他のコントローラデバイスからの入力など、制御入力に従って領域603内で移動するように許可され得る。
【0082】
示されているように、時間T0においては、仮想ビューポイント602は、場所P0に位置し、ビデオゲームのプレイヤに、角度604によって指示される仮想環境600のビューを与える。しかしながら、観戦するためのプレイヤのゲームプレイの広FOVレンダリングは、プレイヤの視野よりも、角度606によって指示されている、より大きい視野を観戦するために利用可能にされる。したがって、仮想環境600の追加の領域608は、観戦者による観戦中の視聴に利用可能である。これは、観戦者が、ゲームプレイ中の元のプレイヤが見ていなかった仮想環境600からのコンテンツを視聴することができ得ることを意味する。たとえば、仮想ビューポイント602の位置がP0にある時間T0においては、元のプレイヤは、仮想環境600の中のオブジェクト610の一部分612のみを見ていた可能性がある。しかしながら、広FOVレンダリングが観戦者に利用可能であるので、元のプレイヤのビュー方向から逸脱するように観戦者が自分のビュー方向を右に変える場合、観戦者は、オブジェクト610の追加の部分614を見ることができる。元のプレイヤは、オブジェクト610のこの追加の部分614をみることができなかった。
【0083】
後続の時間T1においては、ビューポイント602は、場所P1に移動し(たとえば、プレイヤが、前方向に自分のキャラクタを移動させた結果として)、したがって、プレイヤの視野は、角度616によって示され、観戦者に利用可能な視野は、角度618によって示されている。さらなる後続の時間T2においては、ビューポイント602は、場所P2に移動し(たとえば、プレイヤが右に自分のキャラクタの方向を変えた結果として)、したがって、プレイヤの視野は、角度620によって示され、観戦者に利用可能な視野は、角度622によって示されている。オブジェクト624は、観戦者の利用可能な視野の一部ではあるもののプレイヤの視野の中には見られなかった、領域626に位置している。
【0084】
本明細書において論じられているいくつかの実施態様においては、プレイヤ及び観戦者によって使用されるハードウェアデバイスの視野は、たとえば、ゲームプレイ/観戦にHMDをともに使用するときなどは同じである。しかしながら、いくつかの実施態様においては、たとえば、プレイヤがテレビにおいてビデオゲームを視聴するとき、及び観戦者がHMDを使用してプレイヤのゲームプレイを視聴するときなどは、プレイヤの視野は、観戦者のものよりも小さくてよいことが理解されるであろう。この場合においては、観戦者の視野は、観戦者が、プレイヤが見ているよりも多くを見ることをすでに可能にすることになり、上記に企図された拡大されたFOV動画によれば、観戦者はまた、コンテンツの追加の部分を見るために自分のビュー方向を変更することができることになる。
【0085】
論じてきたいくつかの実施態様においては、拡大された(たとえば、150度)レンダリングの視聴部分は、観戦者の頭部の移動に応答して、拡大されたレンダリングの異なる部分を表示するようにシフトされる。しかしながら、観戦者が自分の頭部の方向を変えるとき、観戦者の目は、何らかの軸の周りを回転する。そのため、観戦者の頭部の移動に応答してより忠実なレンダリングを作り出すために、いくつかの実施態様においては、ゲームの特殊化されたビルドが、頭部追跡情報を使用して観戦者ビューをレンダリングする(たとえば、クラウドにおける)ライブを実行している可能性がある。
【0086】
図7は、本開示の実施態様による、元のプレイヤによって元々視聴されていたものに追加的なビデオゲームシーンの部分を観戦者が視聴する能力を含んだ、観戦者のために動画をレンダリングするためのシステムを示している。プレイヤ700は、プレイヤコンピュータ704において実行するビデオゲームをプレイする。実行中のビデオゲームは、プレイヤ700によって操作されるコントローラ702など、1つまたは複数の入力デバイスから受信される入力データ710を処理するゲームエンジン708を定義付ける。ゲームエンジン708は、HMD、テレビ、または他のタイプのディスプレイとすることができるプレイヤディスプレイ706にレンダリングされる動画コンテンツを生成する。
【0087】
ビデオゲームが、それに関連付けられるゲーム状態を有することを理解すべきである。しかし、その状態の、フレームからフレームに、普通はそれのサブセットのみが変化し、それのほとんどが、例としてコントローラ入力に基づいて、変化することになる。したがって、ビデオゲームのアルゴリズムが確定的である場合には、ビデオゲームに使用されている乱数種(たとえば、ビデオゲームは、擬似乱数生成器によって生成される乱数を使用する)が共有される場合には、ビデオゲームの観戦者バージョンは、プレイヤと同じゲームを実行することが可能になる。そのような実施態様は、
図7を引き続き参照して示されている。ビデオゲームの観戦者バージョンは、観戦者ゲームサーバ720において実行される。ビデオゲームの実行中の観戦者バージョンは、プレイヤコンピュータ704からネットワーク714を介して受信される入力データ716及び/またはゲーム状態データ718を処理することができるゲームエンジン722を定義付ける。ビデオゲームのプレイヤバージョンと同じ乱数種から始めると、ビデオゲームの観戦者バージョンに同じ入力が提供される限り、ビデオゲームの観戦者バージョンは、プレイヤのゲームと同じ出力を作り出すことになる。
【0088】
したがって、ゲームエンジン722は、同じ入力が提供されるとき、ゲームエンジン708と同じ出力を作り出すことができる。例示の実施態様においては、ゲームエンジン722は、入力データ716を受信し、この入力データ716は、ゲームエンジン708によって受信される入力データ710を含むことができ(たとえば、入力データ710は、コントローラデバイス702によって受信されるユーザ入力から生成されている)、ゲームエンジン708からの乱数/種データをさらに含むことができる。いくつかの実施態様においては、ゲームエンジン722は、ゲームエンジン708からゲーム状態データ718を受信することができ、それは、そのゲーム状態を直接、更新するためにゲームエンジン722によって適用され得る。
【0089】
したがって、ゲームが確定的である場合には、観戦者750が、プレイヤ700が見ているものを正確に観戦することができることが必要になるという唯一の状態は、ゲームに入った入力及び乱数種である。そのような実施態様は、それには、たとえば、60Hz/120Hzにおいて1080p動画をストリーミングするよりもはるかに少ないデータ帯域幅が必要であるので、有利である。プレイヤのものと同じビデオゲームの観戦者バージョンが提供され、ゲームが少なくとも実質的に確定的である場合には、ゲーム状態を更新することが必要なデータのみがストリーミングされるので、観戦者は、はるかに少ないデータにより観戦することができる。したがって、ゲームストリーミングの目的で、ビデオゲームのプレイヤのバージョンは、動画を一斉通信するのでなく、ゲーム状態の更新を送信することができる。次いで、ビデオゲームの観戦者の(実質的に)複製のコピーを実行するサーバは、プレイヤが画面上で見たものを再現し、さらには、元のゲームプレイ中には生成されなかった目新しいビューポイントを提供することが可能になる。
【0090】
次は、ゲーム状態に影響を及ぼす入力タイプの例である:(1)プレイヤ入力-たとえば、コントローラ入力(ボタン押し、ジョイスティック移動、モーションコントローラ移動など);(2)乱数入力-選択されたすべての乱数を送信することが可能になるか、またはサーバが、プレイヤのシステムと同じ乱数生成アルゴリズムを有する場合には、種データを提供することのみ必要であることが可能になり、次いで、サーバは、それが擬似乱数アルゴリズムであると仮定して、同じ一連の乱数を生成することになる;(3)サードパーティ入力-たとえば、ネットワークゲームをプレイしているとき(たとえば、フレームごとに、プレイヤは、敵または他のプレイヤが位置しているところについての更新情報を受信することができる)。これらはすべて、プレイヤ700が自分のプレイヤコンピュータ704に有する、または有していたゲーム状態を観戦者ゲームエンジン722が再現することを可能にするために、観戦者ゲームサーバ720に提供可能になる入力である。
【0091】
代替として、プレイヤのコンピュータ704は、(また、1080pよりもかなり低い帯域幅も使用することになる)内部ゲーム状態を簡潔にパッケージ化し、パッケージ化された内部ゲーム状態を観戦者ゲームサーバ720に送信するように構成可能になる。ゲーム状態は、ゲームエンジン708によって処理される、入力の解釈結果を有する。たとえば、プレイヤがコントローラを前方に押したとき、その結果は、キャラクタが距離のx単位を移動したこととすることができ、したがって、ゲーム状態は、キャラクタが距離のx単位を移動したことを示すことになる。
【0092】
したがって、ゲームのプレイヤのバージョンは、そのゲーム状態を送信することが可能になり、またはゲーム状態に影響を及ぼした入力データを送信し、相手側で観戦者ゲームサーバ720にゲーム状態を再現させる(たとえば、観戦者ゲームサーバ720が観戦者に同じボタンをプッシュするように、ボタンプッシュを送信する)ことが可能になる。ゲーム状態に影響を及ぼす入力データのみが送信された場合には、ゲームは、少なくとも幾分、確定的であるべきであり、したがって、同じ入力の場合、ビデオゲームの観戦者のバージョンは、実質的に同じ出力を生み出すことになる。
【0093】
いくつかの実施態様においては、入力は、マルチスレッド処理のためのスケジューリングエンジンなどの項目をさらに含むことができる。たとえば、マルチスレッドゲームにおいては、システムが操作Bの前に操作Aを行う場合、それが操作Aを行う前に操作Bを行う場合とは異なる結果をもたらすことがある。一例として、操作Aがプレイヤの場所の更新を必要とし、操作Bが敵の人工知能(AI:artificial intelligence)の実行を必要とする場合、一方が、最初にプレイヤのキャラクタの場所を移動させたときには、敵は、彼が敵のビューの中へと移動したので、彼を見ることができ、したがって、ここで、敵は、方向を変えて射撃を開始し得ることが可能になる。しかしながら、一方では、最初に敵がプレイヤのキャラクタの前に更新された場合には、プレイヤはまだ、敵のビューの外にいるので、敵は、プレイヤをまだ見ることができない。
【0094】
したがって、特定の操作の実行順序は、ゲーム状態結果に影響をもたらすことがあるときには、観戦者ゲームサーバ720に提供される入力は、マルチスレッド処理のスケジューリングのためのデータを含むことができる。したがって、入力に基づいたゲーム状態を再現するためには、ゲームは、ある程度までは確定的であるべきであり、入力は、特定の操作が行われる順序を含んで、システムをより確定的にする助けとなることができる。これらのシステムの利点は、観戦目的のためにサーバに至るまで送信されることが必要なデータ量を低減させることである。
【0095】
観戦者ゲームサーバ720上のゲームエンジン722は、プレイヤのコンピュータシステム704からの受信された入力データ716またはゲーム状態データ718に基づいて、拡大された(たとえば、150度)視野(FOV)ゲームプレイ動画724をレンダリングする。上記に論じられた実施態様によれば、観戦者は、プレイヤが元々見ていたものを越えて見ることができる。たとえば、観戦者コンピュータ740は、拡大されたFOV動画724の一部分のストリーミング再生を管理するためのストリーミングマネージャ742を含んでもよい。観戦者コンピュータ740は、たとえば、観戦中にHMD748の画像を撮像するカメラ746からの撮像された画像データに(少なくとも一部)基づいて、観戦者750が装着しているHMD748の姿勢を追跡するように構成されたHMD追跡モジュール744を含む。観戦者コンピュータ740は、動画サーバ726に観戦者750のビュー方向を示すビュー方向データ734を送信することができる。観戦者ビューアアプリケーション728は、ビュー方向データ734を処理して、観戦者のための視野を定義付け、適切な動画データ736を生成し、HMD748にレンダリングするために観戦者コンピュータ740のストリーミングマネージャ742に送信する。
【0096】
いくつかの実施態様においては、入力データ716及び/またはゲーム状態データ718が、ライブストリーミングのために観戦者ゲームサーバ720にアップロードされ得ることは認識されるであろう。一方、他の実施態様においては、入力データ及び/またはゲーム状態データは、アップロードされ、後の使用のために記憶され得る。
【0097】
したがって、いくつかの実施態様においては、プレイヤシステム704は、観戦者ゲームサーバ720にゲーム状態更新情報を送信する。観戦者ゲームサーバ720は、動画を超広拡大視野によりステレオでレンダリングする(HMD観戦の場合、たとえば、元のゲームプレイは、通常の非HMD(非ステレオ)ディスプレイ上にあった可能性がある)。ビュー方向データ734に基づいて確定される拡大された視野のサブセットビューは、観戦者コンピュータ740にストリーミングされる。他の実施態様においては、静的(立体的)拡大FOV動画732は、後の観戦者視聴のために動画ストレージ730に記憶され得る。
【0098】
しかしながら、他の実施態様においては、観戦者750のビュー方向データ738(たとえば、HMD姿勢データ)は、観戦者ゲームサーバ722に送信でき、この観戦者ゲームサーバ722は、ビュー方向データ738を処理して、観戦者の視野にとって適切な動画コンテンツを、ビュー方向データ738を使用してゲームエンジン722を実行することによって、直接、生成する。
図7を参照すると、そのような動画は、HMD748にレンダリングするために、観戦者コンピュータ740に動画サーバ726によってストリーミングされ得る。そのような実施態様においては、観戦者の視野を越えた領域のレンダリングは、観戦者のビュー方向が、すでに、ビデオゲームの観戦者ゲームサーバ720の実行によって説明されているとき必要でない。
【0099】
さらには、観戦者の視野のために生成される動画コンテンツは、元のプレイヤに視聴されたものよりも高い忠実度においてレンダリングされ得る。たとえば、観戦者の動画は、ビデオゲームのより高い忠実性の視聴体験を提供する、より高いフレームレート、上昇した詳細レベル、より大きく補間されたモーションなどにおいてレンダリングされ得る。これは、特に、元のプレイヤのものとは異なる観戦者ビューをレンダリングする場合とすることができる。プレイヤのセッションの場合、プレイヤの視野の特定の部分のグラフィカル忠実度は、優先されておらず、たとえば、他の部分を有利にしていてもよい。しかし、観戦者のビューの場合、特に観戦者がそのような部分を見ている場合には、観戦者動画のために、それらのグラフィカル忠実度は、上昇及び/または優先され得る。
【0100】
いくつかの実施態様においては、広FOVレンダリングを保存する代わりに、ゲーム状態が保存される。つまり、観戦者ゲームサーバ720は、ゲーム状態それ自体をアーカイブする。観戦者コンピュータ740は、観戦者ゲームサーバ720に接続し、ビュー方向データ738(たとえば、観戦者の目/HMDの場所/姿勢データなどの頭部追跡情報)を観戦者ゲームサーバ720に送信することができる。観戦者ゲームサーバは、観戦者の頭部追跡情報、及びプレイヤのゲーム状態を処理し、観戦者の視点からのプレイヤの行為の結果を再レンダリングすることができる。したがって、レンダリングは、ライブ、またはオンデマンドで行なうことができる。ゲームエンジン722のゲーム状態は、ゲーム状態のアーカイブに基づいてリアルタイムで更新されるが、レンダリングは、観戦者のビューポイントに基づいて行われ、それにより、完全に新しいビューポイントが可能になる。
【0101】
いくつかの実施態様においては、休止機能が設けられ、ここで、観戦者は、ゲーム状態の更新を停止することができるが、観戦者は、依然として、仮想空間の自分のビューを調整すること、またはさらには仮想空間内の新規位置に移動し、異なる視点から仮想空間を吟味することができる。
【0102】
いくつかの実施態様においては、観戦者は、ゲームの仮想空間内でプレイヤの位置とは異なる位置に移動することができる。これは、以前には生成されなかった興味深いビューを提供することができる。しかし、いくつかの場合においては、観戦者がメインプレイヤキャラクタからあまりに遠くはぐれた場合(たとえば、AIキャラクタは、まだトリガされていないので、不活発である場合があり得る)、これは、メインプレイヤキャラクタからあまりに遠く離れたところから視聴した場合にゲームの中には面白くないものがある場合もあるので、あまり理想的ではない可能性もあり得る。しかしながら、全ゲーム世界が常にライブである場合には、これは、観戦者に面白い体験を提供する可能性もあり得る。
【0103】
ビデオゲームの再レンダリングを提供する実施態様は、観戦者が自分の頭部を移動させる、またはその方向を変えたとき、頭部移動及び回転のすべての視差効果などを提供することができるので、より忠実な3D体験を提供することができる。観戦者の頭部が移動し、回転したとき、観戦者の平行移動し回転した頭部場所/向きを説明する正確な画像を提供することができる。観戦者の目の瞳孔距離(目と目の間の距離)についての正しい画像をレンダリングし、観戦者が有するHMDの具体的なモデルについてレンダリングすることがさらに可能である。
【0104】
再レンダリングは、観戦者(たとえば、観戦者コンピュータ)に、クラウドまたはローカルのいずれかで起こり得る。観戦者にローカルに再レンダリングを行う1つの便益は、これが、動画のストリーミングよりも少ないデータ帯域幅を必要とする入力データまたはゲーム状態のストリーミングしか必要としないことである。ローカルに再レンダリングを行う第2の利点は、観戦者HMD姿勢の検出された変化と、そのような変化に応答する再レンダリングされた視覚提供との間のレイテンシが著しく低減し得ることである。
【0105】
いくつかの実施態様においては、広/拡大FOVレンダリングは、クラウドにおいて行うことができ、それにより、動画は記憶でき、次いで広/拡大FOVのサブセットビューは、観戦者にストリーミングされ得る。
【0106】
いくつかの実施態様においては、ビデオゲームに対する修正が、本明細書において特定される機能を可能するために行われてもよいことが認識されるであろう。
【0107】
プレイヤのゲームビルド(HMDであっても、または非HMDのゲームであってもよい)は、それが、定期的に(たとえば、120回/秒)クラウドにゲーム状態データをアップロードするように、ゲーム状態をストリーミングするように修正され得る。時間周期は、更新が送信される頻度、及び更新そのものの割合の観点で柔軟性があり、たとえば、1/60秒のゲーム状態増分を送信することが可能になるが、それらを60個にパッケージ化し、一度に1秒それらを送信することが可能になり、または10フレームごとのゲーム状態増分を送信し、したがって、ゲーム状態更新の1/10を送信し、10フレームにわたって補間される必要があるゲーム状態要素のうちのいくつかにフラグ付けすることが可能になる。
【0108】
したがって、ゲームビルドは、一部のものを補間するが、他のものを補間しないようにコード化され得る。あらゆるフレームの価値が送信されるべき特定のデータが存在する場合がある一方、他のデータは補間でき、そのため、データの1/10が送信され、クラウドシステムは、残りを補間する。たとえば、実際のゲーム状態を共有している場合、プレイヤがどこにいて、彼がどちらを向いているかを知ることは非常に重要になり得、したがって、そのためのデータのあらゆるフレームの価値が送信され、一方、誰かが銃を撃ち、画面を横切って進む弾丸が存在する場合、弾丸は、直線に進む場合もあり得、したがって、ゲームビルドは、弾丸の場所に10フレーム毎のデータ価値のうち1つを与え、残りが補間されることになることを予想するように構成され得ることもある。したがって、異なるものに異なるデータレートを有することが可能になる。どのものにどのデータレートを適用すべきであるかの決定は、ルックアップテーブルから確定され得ることになる。
【0109】
観戦者のゲームビルドは、クラウドまたはローカルの観戦者マシンにおいて実行するように構成され得る。ゲーム状態データがプレイヤのゲームビルドによって提供される実施態様においては、ゲーム状態を更新するゲームの部分は、観戦者のビルドには、それがすでにこれらの更新された状態を受信しており、それらに基づいて観戦者のビューをレンダリングすることになっているので必要ではない。
【0110】
プレイヤのゲームビルド及び観戦者のゲームビルドについてのゲームビルドに対する上記の修正により、それが再現を行う実際のゲームであるため、元のプレイヤが何を見ていたかについて非常に高い品質の再現を提供することが可能である。
【0111】
本開示の実施態様は、ゲームストリームをアップロードするプレイヤのシステムが、全動画をアップロードする必要はないが、ゲーム状態情報をアップロードすることができ、クラウドサーバまたは観戦者のコンソールのいずれかが、そのゲーム状態を受諾し、画像をレンダリングすることができるという利点を提供する。クラウドサーバの場合においては、クラウドサーバは、動画をレンダリングし、それを観戦者にストリーミングする。レンダリングがクラウドサーバによって行われない場合には、クラウドサーバは、単にゲーム状態を観戦者コンソールに配布する。
【0112】
いくつかのクラウドゲーミング実施態様においては、プレイヤ入力は、クラウドゲーミングサーバに送信され、このクラウドゲーミングサーバは、それらの入力を取得し、ゲームを実行し、動画をレンダリングし、それをプレイヤに戻すようにストリーミングする。この場合においては、観戦者は、動画ストリームを受信し、観戦者は、観戦者がどちらを見ているかを示す追加の入力を有することが可能になる。したがって、サーバは、プレイヤと観戦者の両方から入力(たとえば、観戦者からのカメラ方向、及びプレイヤからの入力)を受信することができ、次いで、ゲームをレンダリングし、それを観戦者に送信する。
【0113】
図8は、本開示の実施態様による、仮想空間のユーザのビューの中の変化を明示する、ビデオゲームの仮想空間の文脈における(観戦者)ユーザの頭部の俯瞰図を示している。ユーザの頭部802は、仮想空間におけるユーザのビューポイントならびに仮想空間における最初のビュー方向(参照記号806)を定義付ける最初の姿勢(位置及び向き)において示されている。そのため、ユーザの頭部の最初の姿勢においては、ユーザには、仮想空間800の最初の視野808が与えられる。注記したように、ユーザの頭部の姿勢は、ユーザが装着しているHMDの姿勢の追跡、ユーザの実環境におけるユーザの頭部の撮像された画像の分析、ユーザの頭部の他のオブジェクト/センサの追跡などを含む様々な頭部追跡方法から確定され得る。
【0114】
例示の実施態様においては、ユーザは、自分の頭部の方向を変え、したがって、仮想空間800における更新されたビュー方向810を定義付ける。いくつかの実施態様においては、ユーザは、回転軸804の周りで自分の頭部を回転させることができ、一方、他の実施態様においては、ユーザは、(追加としてまたは代替として)自分の頭部を平行移動させるようにして動かすことができる。したがって、ビューポイントは、変化することがあり、ビュー方向は、更新されたビュー方向810に変化する。それに応じて、ユーザのビューは、更新された視野812へと回転角度だけ回転している。
【0115】
ユーザ(観戦者)がプレイヤのゲームプレイを観戦しているとき、そのような更新された視野812を生成するためには、観戦者の頭部の姿勢情報は、追跡され、ビデオゲームの観戦者バージョンに伝達され、このビデオゲームの観戦者バージョンは、姿勢情報を実行し処理して、更新された視野812を生成する。したがって、観戦者は、プレイヤのゲームプレイセッションを観戦しながら、プレイヤのビューのものとは異なる仮想空間の部分を視聴することができる。
【0116】
図9を参照すると、本開示の一実施形態により、ヘッドマウントディスプレイ102の構成要素を示す略図が示されている。ヘッドマウントディスプレイ102は、プログラム命令を実行するためのプロセッサ1300を含む。メモリ1302が、ストレージの目的で設けられ、揮発性メモリと不揮発性メモリの両方を含むことができる。ユーザが視聴することができる仮想インターフェースを提供するディスプレイ1304が含まれている。バッテリ1306は、ヘッドマウントディスプレイ102のための電源として設けられる。モーション検出モジュール1308は、磁力計1310、加速度計1312、及びジャイロスコープ1314など、様々な種類のモーション感応ハードウェアのうちのいずれかを含んでよい。
【0117】
加速度計は、加速度、及び重力誘起反力を測定するためのデバイスである。単一の及び複数の軸モデルが、異なる方向における加速度の大きさ及び方向を検出するのに利用可能である。加速度計は、傾斜、振動、及び衝撃を感知するのに使用される。1つの実施形態においては、3つの加速度計1312を使用して、2つの角度(ワールド空間ピッチ及びワールド空間ロール)の絶対基準を与える重力の方向を提供する。
【0118】
磁力計は、ヘッドマウントディスプレイの近傍における磁場の強度及び方向を測定する。1つの実施形態においては、3つの磁力計1310が、ヘッドマウントディスプレイ内で使用され、ワールド空間ヨー角度の絶対基準を確保する。1つの実施形態においては、磁力計は、±80マイクロテスラの地球磁場にまたがるように設計されている。磁力計は、金属による影響を受け、単調なヨー測定に実際のヨーを提供する。磁場は、環境における金属に起因して歪曲でき、それにより、ヨー測定における歪曲が生じる。必要に応じて、この歪曲は、ジャイロスコープまたはカメラなどの他のセンサからの情報を使用して較正可能である。1つの実施形態においては、加速度計1312は、ヘッドマウントディスプレイ102の傾斜及び方位を得るために、磁力計1310と一緒に使用される。
【0119】
いくつかの実施態様においては、ヘッドマウントディスプレイの磁力計は、他の近くのデバイスの中の電磁石が不活発である時の間、読み取られるように構成されている。
【0120】
ジャイロスコープは、角運動量の原理に基づいて、向きを測定する、または維持するためのデバイスである。1つの実施形態においては、3つのジャイロスコープ1314が、慣性感知に基づいて、それぞれの軸(x、y、及びz)を横切る移動に関する情報を提供する。ジャイロスコープは、高速回転を検出する際の助けとなる。しかしながら、ジャイロスコープは、絶対基準の存在なしで経時的にドリフトし得る。これには、ジャイロスコープを定期的に再設定することが必要であり、それは、オブジェクトの視覚追跡、加速度計、磁力計などに基づいた場所/向きの確定など、他の利用可能な情報を使用して行うことができる。
【0121】
カメラ1316は、実環境の画像及び画像ストリームを撮像するために設けられる。後ろ向きの(ユーザがヘッドマウントディスプレイ102のディスプレイを視聴しているとき、ユーザから離れるように方向付けられた)カメラと、前向きの(ユーザがヘッドマウントディスプレイ102のディスプレイを視聴しているとき、ユーザに向かうように方向付けられた)カメラとを含む、複数のカメラが、ヘッドマウントディスプレイ102の中に含まれていてよい。加えて、深さカメラ1318は、現実環境におけるオブジェクトの深さ情報を感知するために、ヘッドマウントディスプレイ102の中に含まれていてもよい。
【0122】
ヘッドマウントディスプレイ102は、音声出力を提供するためのスピーカ1320を含む。また、マイクロフォン1322が、周囲環境からの音、ユーザによってなされる発話などを含む、実環境からの音声を捕捉するために含まれていてもよい。ヘッドマウントディスプレイ102は、ユーザに触覚フィードバックを提供するための触覚フィードバックモジュール1324を含む。1つの実施形態においては、触覚フィードバックモジュール1324は、ユーザに触覚フィードバックを提供するようにするために、ヘッドマウントディスプレイ102の移動及び/または振動を生じさせることができる。
【0123】
LED1326は、ヘッドマウントディスプレイ102の状況の視覚的インジケータとして設けられる。たとえば、LEDは、バッテリレベル、電源オンなどを示すことができる。カードリーダ1328は、ヘッドマウントディスプレイ102が、メモリカードとの間で情報を読み取り、書き込むことができるようにするために設けられる。USBインターフェース1330は、周辺デバイスの接続、または他のポータブルデバイス、コンピュータなどの他のデバイスへの接続を可能にするためのインターフェースの一例として含まれている。ヘッドマウントディスプレイ102の様々な実施形態においては、様々な種類のインターフェースのうちのいずれかが、ヘッドマウントディスプレイ102のより大きい接続性を可能にするために含まれていてよい。
【0124】
WiFiモジュール1332は、ワイヤレスネットワーキング技術を介してインターネットまたはローカルエリアネットワークへの接続を可能にするために含まれている。また、ヘッドマウントディスプレイ102は、他のデバイスとのワイヤレス接続を可能にするためのBluetooth(登録商標)モジュール1334を含む。通信リンク1336もまた、他のデバイスとの接続のために含まれていてもよい。1つの実施形態においては、通信リンク1336は、赤外線伝送を利用して、ワイヤレス通信する。他の実施形態においては、通信リンク1336は、様々なワイヤレスまたはワイヤードの伝送プロトコルのうちのいずれかを利用して、他のデバイスと通信することができる。
【0125】
入力ボタン/センサ1338は、ユーザに入力インターフェースを提供するために含まれている。ボタン、タッチパッド、ジョイスティック、トラックボールなどの様々な種類の入力インターフェースのうちのいずれかが、含まれていてよい。超音波通信モジュール1340が、超音波技術を介して他のデバイスとの通信を容易にするためにヘッドマウントディスプレイ102に含まれていてよい。
【0126】
バイオセンサ1342は、ユーザからの生理学的データの検出を可能にするために含まれている。1つの実施形態においては、バイオセンサ1342は、ユーザの皮膚を介してユーザの生体電気信号を検出するための1つまたは複数のドライ電極を含む。
【0127】
動画入力1344は、HMDにおけるレンダリングのための一次処理コンピュータ(たとえば、メインゲームコンソール)から動画信号を受信するように構成されている。いくつかの実施態様においては、動画入力は、HDMI(登録商標)入力である。
【0128】
ヘッドマウントディスプレイ102の前述の構成要素は、ヘッドマウントディスプレイ102の中に含まれ得る単なる例示的な構成要素として説明されている。本開示の様々な実施形態においては、ヘッドマウントディスプレイ102は、様々な上述の構成要素のうちの一部を含んでいても、または含んでいなくてもよい。ヘッドマウントディスプレイ102の実施形態は、加えて、本明細書に説明されている本開示の態様を容易にする目的で、本明細書では、説明されていないが、当技術分野において知られている他の構成要素を含んでもよい。
【0129】
図10は、本開示の様々な実施形態による、ゲームシステム1400のブロック略図である。ゲームシステム1400は、ネットワーク1415を介して1つまたは複数のクライアント1410に動画ストリームを提供するように構成されている。ゲームシステム1400は、典型的には、動画サーバシステム1420と、オプションのゲームサーバ1425を含む。動画サーバシステム1420は、1つまたは複数のクライアント1410に対する動画ストリームに最小のサービス品質を提供するように構成されている。たとえば、動画サーバシステム1420は、ビデオゲーム内でビューの状態またはポイントを変化させるゲームコマンドを受信し、クライアント1410に、状態のこの変化を最小の遅延時間に対して反映させる更新済み動画ストリームを提供することができる。動画サーバシステム1420は、まだ定義付けるべきフォーマットを含む、多種多様な代替の動画フォーマットにおける動画ストリームを提供するように構成され得る。さらには、動画ストリームは、多種多様なフレームレートにおいて、ユーザに提示するように構成された動画フレームを含むことができる。典型的なフレームレートは、毎秒30フレーム、毎秒60フレーム、及び毎秒120フレームであるが、より高い、またはより低いフレームレートが、本開示の代替の実施形態に含まれている。
【0130】
本明細書においては、個々に1410A、1410Bなどと称されるクライアント1410には、ヘッドマウントディスプレイ、端末、パーソナルコンピュータ、ゲームコンソール、タブレットコンピュータ、電話器、セットトップボックス、キオスク、ワイヤレスデバイス、デジタルパッド、スタンドアロンデバイス、及び/またはハンドヘルドゲームプレイングデバイスなどを挙げることができる。典型的には、クライアント1410は、符号化された動画ストリームを受信し、動画ストリームを復号し、結果として生じる動画をユーザ、たとえば、ゲームのプレイヤに提示するように構成されている。符号化された動画ストリームを受信する、及び/または動画ストリームを復号する処理は、典型的には、クライアントの受信バッファに個々の動画フレームを記憶することを含む。動画ストリームは、クライアント1410と一体のディスプレイにおいて、またはモニタもしくはテレビなどの別個のデバイスにおいて、ユーザに提示され得る。クライアント1410は、オプションで、複数人のゲームプレイヤをサポートするように構成されている。たとえば、ゲームコンソールは、2人、3人、または4人以上の同時プレイヤをサポートするように構成され得る。これらのプレイヤはそれぞれ、別個の動画ストリームを受信することができ、または単一の動画ストリームは、特に、プレイヤごとに生成された、たとえば、各プレイヤのビューポイントに基づいて生成された、1つのフレームの領域を含むことができる。クライアント1410は、オプションで、地理的に分散されている。ゲームシステム1400に含まれているクライアントの数は、1もしくは2から数千、または数万以上まで、大きく異なっていてよい。本明細書に使用されるとき、「ゲームプレイヤ」という用語は、ゲームをプレイする人を示すのに使用され、「ゲームプレイングデバイス」という用語は、ゲームをプレイするのに使用されるデバイスを示すのに使用される。いくつかの実施形態においては、ゲームプレイングデバイスは、ユーザにゲーム体験をもたらすのに協働する複数のコンピューティングデバイスを示す場合がある。たとえば、ゲームコンソール及びHMDは、動画サーバシステム1420と協働して、HMDを介して視聴されるゲームを配信することが可能である。1つの実施形態においては、ゲームコンソールは、動画サーバシステム1420から動画ストリームを受信し、ゲームコンソールは、HMDに対して、動画ストリームを転送し、または動画ストリームに更新してレンダリングする。
【0131】
クライアント1410は、ネットワーク1415を介して動画ストリームを受信するように構成されている。ネットワーク1415は、電話網、インターネット、ワイヤレスネットワーク、電力線網、ローカルエリアネットワーク、広域ネットワーク、及び/またはプライベートネットワークなどを含む、任意のタイプの通信ネットワークとすることができる。典型的な実施形態においては、動画ストリームは、TCP/IPまたはUDP/IPなどの標準プロトコルを介して伝達される。代替として、動画ストリームは、独自の標準を介して伝達される。
【0132】
クライアント1410の一典型的例は、プロセッサ、不揮発性メモリ、ディスプレイ、復号論理機構、ネットワーク通信機能、及び入力デバイスを備えるパーソナルコンピュータである。復号論理機構は、ハードウェア、ファームウェア、及び/またはコンピュータ可読媒体において記憶されているソフトウェアを含むことができる。動画ストリームを復号する(及び符号化する)ためのシステムは、当技術分野においてはよく知られており、使用される特定の符号化スキームに応じて変わる。
【0133】
クライアント1410は、必須ではないが、受信された動画を修正するように構成されたシステムをさらに含んでもよい。たとえば、クライアントは、さらにレンダリング行うこと、別の動画画像に1つの動画画像をオーバーレイすること、及び/または動画画像をクロップすることなどを行なうように構成され得る。たとえば、クライアント1410は、Iフレーム、Pフレーム、及びBフレームなど、様々なタイプの動画フレームを受信し、これらのフレームを処理して画像にして、ユーザに表示するように構成され得る。いくつかの実施形態においては、クライアント1410の一メンバは、動画ストリームにおいてさらなるレンダリング、シェーディング、または3Dへの変換などの操作を行なうように構成されている。クライアント1410の一メンバは、オプションで、複数の音声ストリームまたは動画ストリームを受信するように構成されている。クライアント1410の入力デバイスは、たとえば、片手ゲームコントローラ、両手ゲームコントローラ、ジェスチャ認識システム、視線認識システム、声認識システム、キーボード、ジョイスティック、ポインティングデバイス、力フィードバックデバイス、モーション及び/または位置感知デバイス、マウス、タッチ画面、神経インターフェース、カメラ、及び/またはまだ開発すべき入力デバイスなどを含むことができる。
【0134】
クライアント1410によって受信される動画ストリーム(及びオプションで音声ストリーム)は、動画サーバシステム1420によって生成され、提供される。本明細書において他の場所でさらに説明されているように、この動画ストリームは、動画フレームを含む(及び音声ストリームは、音声フレームを含む)。動画フレームは、ユーザに表示される画像に有意に寄与するように構成されている(たとえば、動画フレームは、適切なデータ構造体にピクセル情報を含む)。本明細書において使用されるとき、「動画フレーム」という用語は、ユーザに示される画像に寄与する、たとえば、その画像をもたらすように構成されている情報を主に含むフレームを示すのに使用される。「動画フレーム」に関する本明細書における教示のほとんどは、「音声フレーム」にも適用可能である。
【0135】
クライアント1410は、典型的には、ユーザから入力を受信するように構成されている。これらの入力は、ビデオゲームの状態を変更する、またはそうでなければゲームプレイに影響を及ぼすように構成されたゲームコマンドを含むことができる。ゲームコマンドは、入力デバイスを使用して受信でき、及び/またはクライアント1410において実行するコンピューティング命令によって自動的に生成され得る。受信されたゲームコマンドは、クライアント1410からネットワーク1415を介して動画サーバシステム1420及び/またはゲームサーバ1425に伝達される。たとえば、いくつかの実施形態においては、ゲームコマンドは、動画サーバシステム1420を介してゲームサーバ1425に伝達される。いくつかの実施形態においては、ゲームコマンドの別個のコピーが、クライアント1410からゲームサーバ1425及び動画サーバシステム1420に伝達される。ゲームコマンドの伝達は、オプションで、コマンドの特性によって決まる。ゲームコマンドは、オプションで、クライアント1410Aから、音声ストリームまたは動画ストリームをクライアント1410Aに提供するのに使用される異なるルートまたは通信チャネルを介して伝達される。
【0136】
ゲームサーバ1425は、オプションで、動画サーバシステム1420とは異なるエンティティによって操作される。たとえば、ゲームサーバ1425は、マルチプレイヤゲームの製作会社によって操作され得る。この例においては、動画サーバシステム1420は、オプションで、ゲームサーバ1425によってクライアントとして視聴され、オプションで、従来技術のゲームエンジンを実行する従来技術のクライアントであるようにゲームサーバ1425のビューポイントからは見えるように構成されている。動画サーバシステム1420とゲームサーバ1425との間の通信は、オプションで、ネットワーク1415を介して行なわれる。したがって、ゲームサーバ1425は、複数のクライアントにゲーム状態情報を送信する従来技術のマルチプレイヤゲームサーバとすることができ、そのうちの1つが、ゲームサーバシステム1420である。動画サーバシステム1420は、同時に、ゲームサーバ1425の複数のインスタンスと通信するように構成され得る。たとえば、動画サーバシステム1420は、複数の異なるビデオゲームを異なるユーザに提供するように構成され得る。これらの異なるビデオゲームはそれぞれ、異なるゲームサーバ1425によってサポートされ、及び/または異なるエンティティによって制作され得る。いくつかの実施形態においては、動画サーバシステム1420のいくつかの地理的に分散されたインスタンスは、ゲーム動画を複数の異なるユーザに提供するように構成されている。動画サーバシステム1420のこれらのインスタンスはそれぞれ、ゲームサーバ1425の同じインスタンスと通信することができる。動画サーバシステム1420と1つまたは複数のゲームサーバ1425との間の通信は、オプションで、専用の通信チャネルを介して行なわれる。たとえば、動画サーバシステム1420は、これらの2つのシステム間の通信に専用の高帯域幅チャネルを介してゲームサーバ1425に接続され得る。
【0137】
動画サーバシステム1420は、少なくとも、動画ソース1430、I/Oデバイス1445、プロセッサ1450、及び非一時的ストレージ1455を備える。動画サーバシステム1420は、1つのコンピューティングデバイスを含んでいても、または複数のコンピューティングデバイスの中に分散されていてもよい。これらのコンピューティングデバイスは、オプションで、ローカルエリアネットワークなどの通信システムを介して接続される。
【0138】
動画ソース1430は、動画ストリーム、たとえば、ストリーミング動画、または映画を形成する一連の動画フレームを提供するように構成されている。いくつかの実施形態においては、動画ソース1430は、ビデオゲームエンジン及びレンダリング論理機構を含む。ビデオゲームエンジンは、プレイヤからのゲームコマンドを受信し、受信されたコマンドに基づいて、ビデオゲームの状態のコピーを維持するように構成されている。このゲーム状態は、ゲーム環境におけるオブジェクトの部分、ならびに典型的にはビューポイントを含む。ゲーム状態はまた、オブジェクトのプロパティ、画像、色、及び/またはテクスチャを含んでもよい。ゲーム状態は、典型的には、ゲームルール、ならびに移動する、方向を変える、攻撃する、焦点を定める、対話する、及び/または使用するなどのゲームルールに基づいて維持される。ゲームエンジンの一部は、オプションで、ゲームサーバ1425内に配置される。ゲームサーバ1425は、地理的分散クライアントを使用して複数のプレイヤから受信されたゲームコマンドに基づいて、ゲームの状態のコピーを維持することができる。これらの場合においては、ゲーム状態は、ゲームサーバ1425によって動画ソース1430に提供され、ここで、ゲーム状態のコピーが記憶され、レンダリング行なわれる。ゲームサーバ1425は、ネットワーク1415を介してクライアント1410から直接、ゲームコマンドを受信することができ、及び/または動画サーバシステム1420を介してゲームコマンドを受信することができる。
【0139】
動画ソース1430は、典型的には、レンダリング論理機構、たとえば、ハードウェア、ファームウェア、及び/またはストレージ1455などのコンピュータ可読媒体において記憶されているソフトウェアを含む。このレンダリング論理機構は、ゲーム状態に基づいて、動画ストリームの動画フレームを作成するように構成されている。レンダリング論理機構のすべてまたは一部は、オプションで、グラフィックス処理ユニット(GPU:graphics processing unit)内に配置される。レンダリング論理機構は、典型的には、ゲーム状態及びビューポイントに基づいて、オブジェクト間の三次元の空間的関係を確定するように、及び/または適切なテクスチャなどを適用するように構成された処理段階を含む。レンダリング論理機構は、生の動画を生み出し、次いで、この生の動画は、普通は、クライアント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が挙げられるが、任意の他のフレームサイズが使用されてもよい。フレームレートは、1秒当たりの動画フレームの数である。動画ストリームは、異なるタイプの動画フレームを含むことができる。たとえば、H.264標準は、「P」フレーム及び「I」フレームを含む。Iフレームは、ディスプレイデバイス上のすべてのマクロブロック/ピクセルをリフレッシュするための情報を含み、一方、Pフレームは、そのサブセットをリフレッシュするための情報を含む。Pフレームは、典型的には、データサイズがIフレームよりも小さい。本明細書において使用されるとき、「フレームサイズ」という用語は、一フレーム内のピクセル数を示すように意味される。「フレームデータサイズ」という用語は、フレームを記憶するのに必要なバイト数を示すように意味される。
【0140】
代替の実施形態においては、動画ソース1430は、カメラなどの動画録画デバイスを含む。このカメラは、コンピュータゲームの動画ストリームに含まれている場合がある遅延のまたはライブの動画を生成するのに使用され得る。結果として生じる動画ストリームは、オプションで、レンダリングされた画像と、スチールカメラまたは動画カメラを使用して録画される画像との両方を含む。動画ソース1430はまた、動画ストリームに含まれることになるあらかじめ録画された動画を記憶するように構成されたストレージデバイスを含むことができる。動画ソース1430はまた、オブジェクト、たとえば、人のモーションもしくは場所を検出するように構成されたモーションまたはポジショニング感知デバイスと、検出されたモーション及び/または場所に基づいて、ゲーム状態を確定し、または動画を生み出すように構成された論理機構とを含むことができる。
【0141】
動画ソース1430は、オプションで、他の動画に置かれるように構成されたオーバーレイを提供するように構成されている。たとえば、これらのオーバーレイは、コマンドインターフェース、ログイン命令、ゲームプレイヤへのメッセージ、他のゲームプレイヤの画像、他のゲームプレイヤの動画フィード(たとえば、ウェブカム動画)を含むことができる。タッチ画面インターフェース、または視線検出インターフェースを含むクライアント1410Aの実施形態においては、オーバーレイは、仮想キーボード、ジョイスティック、及び/またはタッチパッドなどを含んでもよい。オーバーレイの1つの例においては、プレイヤの声は、音声ストリームにオーバーレイされる。動画ソース1430は、オプションで、1つまたは複数の音声ソースをさらに含む。
【0142】
動画サーバシステム1420が、複数人のプレイヤからの入力に基づいて、ゲーム状態を維持するように構成されている実施形態においては、各プレイヤは、ビューの場所及び方向を含む異なるビューポイントを有し得る。動画ソース1430は、オプションで、各プレイヤの別個の動画ストリームを、彼らのビューポイントに基づいて提供するように構成されている。さらには、動画ソース1430は、クライアント1410のそれぞれに、異なるフレームサイズ、フレームデータサイズ、及び/または符号化を提供するように構成され得る。動画ソース1430は、オプションで、3D動画を提供するように構成されている。
【0143】
I/Oデバイス1445は、動画サーバシステム1420が、動画、コマンド、情報の要求、ゲーム状態、視線情報、デバイスモーション、デバイス位置、ユーザモーション、クライアント特性、プレイヤ特性、ゲームコマンド、セキュリティ情報、及び/または音声などの情報を送信及び/または受信するように構成されている。I/Oデバイス1445は、典型的には、ネットワークカードまたはモデムなどの通信ハードウェアを含む。I/Oデバイス1445は、ゲームサーバ1425、ネットワーク1415、及び/またはクライアント1410と通信するように構成されている。
【0144】
プロセッサ1450は、本明細書において論じられている動画サーバシステム1420の様々な構成要素内に含まれている論理機構、たとえば、ソフトウェアを実行するように構成されている。たとえば、プロセッサ1450には、動画ソース1430、ゲームサーバ1425、及び/またはクライアントクオリファイア1460の機能を行なうために、ソフトウェア命令がプログラミングされ得る。動画サーバシステム1420は、オプションで、プロセッサ1450の複数のインスタンスを含む。プロセッサ1450もまた、動画サーバシステム1420によって受信されるコマンドを実行するため、または本明細書において論じられているゲームシステム1400の様々な要素の動作を調整するために、ソフトウェア命令がプログラミングされ得る。プロセッサ1450は、1つまたは複数のハードウェアデバイスを含むことができる。プロセッサ1450は、電子プロセッサである。
【0145】
ストレージ1455は、非一時的アナログ及び/またはデジタルストレージデバイスを含む。たとえば、ストレージ1455は、動画フレームを記憶するように構成されたアナログストレージデバイスを含むことができる。ストレージ1455は、コンピュータ可読デジタルストレージ、たとえば、ハードドライブ、光学ドライブ、またはソリッドステートストレージを含むことができる。ストレージ1415は、動画フレーム、人工フレーム、動画フレームと人工フレームの両方を含む動画ストリーム、音声フレーム、及び/または音声ストリームなどを記憶するように(たとえば、適切なデータ構造体またはファイルシステムによって)構成されている。ストレージ1455は、オプションで、複数のデバイスの中に分散されている。いくつかの実施形態においては、ストレージ1455は、本明細書において他の場所で論じられている動画ソース1430のソフトウェアコンポーネントを記憶するように構成されている。これらのコンポーネントは、必要に応じて、プロビジョニングされる準備ができているフォーマットで記憶され得る。
【0146】
動画サーバシステム1420は、オプションで、クライアントクオリファイア1460をさらに備える。クライアントクオリファイア1460は、クライアント1410Aまたはクライアント1410Bなどのクライアントの機能をリモートで確定するように構成されている。これらの機能は、クライアント1410Aそれ自体の機能、ならびにクライアント1410Aと動画サーバシステム1420との間の1つまたは複数の通信チャネルの機能の両方を含むことができる。たとえば、クライアントクオリファイア1460は、ネットワーク1415を介して通信チャネルをテストするように構成され得る。
【0147】
クライアントクオリファイア1460は、クライアント1410Aの機能を手動でまたは自動的に確定する(たとえば、発見する)ことができる。手動確定は、クライアント1410Aのユーザと通信すること、及びユーザに機能を提供するように求めることを含む。たとえば、いくつかの実施形態においては、クライアントクオリファイア1460は、画像、及び/またはテキストなどをクライアント1410Aのブラウザ内に表示するように構成されている。1つの実施形態においては、クライアント1410Aは、ブラウザを含むHMDである。別の実施形態においては、クライアント1410Aは、HMDにおいて表示され得るブラウザを有するゲームコンソールである。表示されたオブジェクトは、ユーザが、クライアント1410Aのオペレーティングシステム、プロセッサ、動画復号器タイプ、ネットワーク接続のタイプ、ディスプレイ解像度などの情報を入力することを要求する。ユーザによって入力される情報は、クライアントクオリファイア1460に戻るように伝達される。
【0148】
自動確定は、たとえば、クライアント1410Aにおけるエージェントの実行によって、及び/またはテスト動画をクライアント1410Aに送信することによって行なうことができる。エージェントは、ウェブページに埋め込まれ、またはアドオンとしてインストールされるジャバスクリプトなどのコンピューティング命令を含むことができる。エージェントは、オプションで、クライアントクオリファイア1460によって提供される。様々な実施形態においては、エージェントは、クライアント1410Aの処理パワー、クライアント1410Aの復号及び表示機能、クライアント1410Aと動画サーバシステム1420との間の通信チャネルの遅延時間信頼性及び帯域幅、クライアント1410Aのディスプレイタイプ、クライアント1410Aにおいて存在するファイアウォール、クライアント1410Aのハードウェア、クライアント1410Aにおいて実行するソフトウェア、及び/またはクライアント1410A内のレジストリエントリを見つけ出すことができる。
【0149】
クライアントクオリファイア1460は、ハードウェア、ファームウェア、及び/またはコンピュータ可読媒体において記憶されているソフトウェアを含む。クライアントクオリファイア1460は、オプションで、動画サーバシステム1420の1つまたは複数の他の要素とは別個のコンピューティングデバイスにおいて配置される。たとえば、いくつかの実施形態においては、クライアントクオリファイア1460は、クライアント1410と動画サーバシステム1420の複数のインスタンスとの間の通信チャネルの特徴を確定するように構成されている。これらの実施形態においては、クライアントクオリファイアによって発見される情報は、動画サーバシステム1420のどのインスタンスが、クライアント1410のうちの1つに対するストリーミング動画の配信に最も適しているかを確定するのに使用され得る。
【0150】
本開示の実施形態は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースのまたはプログラマブルの家庭用電化製品、マイクロコンピュータ、及びメインフレームコンピュータなどを含む様々なコンピュータシステム構成形態により実施され得る。本開示はまた、タスクが、ワイヤベースのまたはワイヤレスのネットワークを介してリンクされているリモート処理デバイスによって行なわれる、分散型コンピューティング環境においても実施され得る。
【0151】
上記実施形態を考慮すると、本開示は、コンピュータシステムにおいて記憶されているデータを伴う様々なコンピュータ実装動作を採用することができることを理解すべきである。これらの動作は、物理量の物理操作を必要とする動作である。本開示の一部を形成する本明細書において説明されている動作のうちのいずれも、有用なマシン動作である。本開示はまた、これらの動作を行なうためのデバイスまたは装置にも関する。装置は、特には、所要の目的で構築でき、または装置は、コンピュータにおいて記憶されているコンピュータプログラムによって選択的にアクティブ化または構成設定される汎用コンピュータとすることができる。具体的には、様々な汎用マシンは、本明細書における技法に従って記述されるコンピュータプログラムとともに使用でき、または所要の動作を行なうために、より特殊化された装置を構築することがより便利である場合もある。
【0152】
本開示はまた、コンピュータ可読媒体上のコンピュータ可読コードとして具現化され得る。コンピュータ可読媒体は、データを記憶することができる任意のデータストレージデバイスであり、このデータは、その後、コンピュータシステムによって読み取ることが可能である。コンピュータ可読媒体の例には、ハードドライブ、ネットワークアタッチドストレージ(NAS:network attached storage)、読み取り専用メモリ、ランダムアクセスメモリ、CD-ROM、CD-R、CD-RW、磁気テープ、ならびに他の光学及び非光学データストレージデバイスが挙げられる。コンピュータ可読媒体は、ネットワーク結合コンピュータシステムを介して分散されているコンピュータ可読有形媒体を含むことができ、それにより、コンピュータ可読コードは、分散される形で記憶され、実行されることになる。
【0153】
方法動作を特定の順序で説明したが、オーバーレイ動作の処理が、所望のやり方で行なわれる限り、他のハウスキーピング動作が動作間で行なうことができ、または動作が、それらがわずかに異なる時に行なわれるように調整可能であり、もしくは処理に関連付けられる様々な間隔で処理動作の発生を可能にするシステムにおいて分散され得ることを理解すべきである。
【0154】
前述の開示は、理解を明確にする目的で、いくらか詳細に説明されているが、特定の変更及び修正が、添付の特許請求の範囲の範囲内で実施され得ることは明白であろう。したがって、本実施形態は、例示的と見なすべきであり、制限的とは見なすべきではなく、本開示は、本明細書において与えられる詳細に限定するものではなく、本開示の範囲及び等価物内で修正され得る。
【手続補正書】
【提出日】2022-09-12
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
クラウドレンダリングサービスによって、第1のクライアントデバイスから状態データを受信し、前記状態データは、前記第1のクライアントデバイスによって実行されるコンピュータプログラムの第1のビルドの状態から定義付けられるものであり、
前記クラウドレンダリングサービスによって、第2のクライアントデバイスからビュー方向データを受信し、前記ビュー方向データは、ヘッドマウントディスプレイ(HMD)の追跡された姿勢から確定されるものであり、
前記クラウドレンダリングサービスによって、前記受信された状態データ及び前記ビュー方向データを前記コンピュータプログラムの第2のビルドに適用して、広視野(FOV)観戦者動画を生成し、
前記ビュー方向データを適用して、前記広視野(FOV)観戦者動画の一部分を特定し、前記広視野(FOV)観戦者動画の前記一部分は、前記広視野(FOV)観戦者動画の全エリアよりも小さい前記広視野(FOV)観戦者動画のサブエリアであり、
前記第2のクライアントデバイスに前記広視野(FOV)観戦者動画の前記一部分をストリーミングして、前記HMDにおいてレンダリングし、
前記HMDにおける前記広視野(FOV)観戦者動画の前記一部分の前記レンダリングが、前記コンピュータプログラムの前記第1のビルドのライブ観戦を可能にするように、リアルタイムで実行される、方法。
【請求項2】
前記状態データが、前記第1のクライアントデバイスと通信しているコントローラデバイスから定義付けられる入力データ、1つもしくは複数の状態変数のうちの1つまたは複数の値、乱数または擬似乱数種、オブジェクトまたはプロパティの状態に対する更新のうちの1つあるいは複数を含む、請求項1に記載の方法。
【請求項3】
前記状態データを前記コンピュータプログラムの前記第2のビルドに適用することで、前記コンピュータプログラムの前記第1のビルドの前記状態と類似する前記コンピュータプログラムの前記第2のビルドの状態が作り出される、請求項1に記載の方法。
【請求項4】
前記広視野(FOV)観戦者動画が、前記第1のクライアントデバイスによって前記コンピュータプログラムの前記第1のビルドからレンダリングされた一次動画の視野よりも大きい視野を有する、請求項1に記載の方法。
【請求項5】
前記ビュー方向データは、前記HMDが配置される観戦者環境における前記HMDの向きを特定する、請求項1に記載の方法。
【請求項6】
前記HMDの前記追跡された姿勢が、前記HMDの少なくとも1つの慣性センサから及び/または前記観戦者環境の撮像された画像の分析から確定される、請求項5に記載の方法。
【請求項7】
前記広視野(FOV)観戦者動画が、ストレージデバイスに記憶され、
前記ビュー方向データの適用には、前記ストレージデバイスから前記広視野(FOV)観戦者動画を取り出すことが含まれる、
請求項1に記載の方法。
【請求項8】
少なくとも1つのプロセッサ及び少なくとも1つのメモリを有する少なくとも1つのサーバコンピュータを含むシステムであって、前記少なくとも1つのサーバコンピュータはクラウドレンダリングサービスを実装するものであり、
前記クラウドレンダリングサービスは、第1のクライアントデバイスから状態データを受信し、前記状態データは、前記第1のクライアントデバイスによって実行されるコンピュータプログラムの第1のビルドの状態から定義付けられるものであり、
前記クラウドレンダリングサービスは、第2のクライアントデバイスからビュー方向データを受信し、前記ビュー方向データは、ヘッドマウントディスプレイ(HMD)の追跡された姿勢から確定されるものであり、
前記クラウドレンダリングサービスは、前記受信された状態データ及び前記ビュー方向データを前記コンピュータプログラムの第2のビルドに適用して、広視野(FOV)観戦者動画を生成し、
前記クラウドレンダリングサービスは、ビュー方向データを適用して、前記広視野(FOV)観戦者動画の一部分を特定し、前記広視野(FOV)観戦者動画の前記一部分は、前記広視野(FOV)観戦者動画の全エリアよりも小さい前記広視野(FOV)観戦者動画のサブエリアであり、
前記クラウドレンダリングサービスは、前記第2のクライアントデバイスに前記広視野(FOV)観戦者動画の前記一部分をストリーミングして、前記HMDにおいてレンダリングし、
前記クラウドレンダリングサービスは、前記HMDにおける前記広視野(FOV)観戦者動画の前記一部分の前記レンダリングが、前記コンピュータプログラムの前記第1のビルドのライブ観戦を可能にするように、リアルタイムで動作する、システム。
【請求項9】
前記状態データが、前記第1のクライアントデバイスと通信しているコントローラデバイスから定義付けられる入力データ、1つもしくは複数の状態変数のうちの1つまたは複数の値、乱数または擬似乱数種、オブジェクトまたはプロパティの状態に対する更新のうちの1つあるいは複数を含む、
請求項8に記載のシステム。
【請求項10】
前記状態データを前記コンピュータプログラムの前記第2のビルドに適用することで、前記コンピュータプログラムの前記第1のビルドの前記状態と類似する前記コンピュータプログラムの前記第2のビルドの状態が作り出される、請求項8に記載のシステム。
【請求項11】
前記広視野(FOV)観戦者動画が、前記第1のクライアントデバイスによって前記コンピュータプログラムの前記第1のビルドからレンダリングされた一次動画の視野よりも大きい視野を有する、請求項8に記載のシステム。
【請求項12】
前記ビュー方向データが、前記HMDが配置される観戦者環境における前記HMDの向きを特定する、請求項8に記載のシステム。
【請求項13】
前記HMDの前記追跡された姿勢が、前記HMDの少なくとも1つの慣性センサから及び/または前記観戦者環境の撮像された画像の分析から確定される、請求項12に記載のシステム。
【請求項14】
前記広視野(FOV)観戦者動画が、ストレージデバイスに記憶され、前記ビュー方向データの適用には、前記ストレージデバイスから前記広視野(FOV)観戦者動画を取り出すことが含まれる、請求項8に記載のシステム。