IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ソニー コンピュータ エンタテインメント ヨーロッパ リミテッドの特許一覧

特許7353081仮想環境をマッピングする装置および方法
<>
  • 特許-仮想環境をマッピングする装置および方法 図1
  • 特許-仮想環境をマッピングする装置および方法 図2
  • 特許-仮想環境をマッピングする装置および方法 図3
  • 特許-仮想環境をマッピングする装置および方法 図4
  • 特許-仮想環境をマッピングする装置および方法 図5
  • 特許-仮想環境をマッピングする装置および方法 図6
  • 特許-仮想環境をマッピングする装置および方法 図7
  • 特許-仮想環境をマッピングする装置および方法 図8
  • 特許-仮想環境をマッピングする装置および方法 図9
  • 特許-仮想環境をマッピングする装置および方法 図10
  • 特許-仮想環境をマッピングする装置および方法 図11
  • 特許-仮想環境をマッピングする装置および方法 図12
  • 特許-仮想環境をマッピングする装置および方法 図13
  • 特許-仮想環境をマッピングする装置および方法 図14A
  • 特許-仮想環境をマッピングする装置および方法 図14B
  • 特許-仮想環境をマッピングする装置および方法 図14C
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-21
(45)【発行日】2023-09-29
(54)【発明の名称】仮想環境をマッピングする装置および方法
(51)【国際特許分類】
   A63F 13/52 20140101AFI20230922BHJP
   G06T 19/00 20110101ALI20230922BHJP
【FI】
A63F13/52
G06T19/00 A
【請求項の数】 16
【外国語出願】
(21)【出願番号】P 2019127457
(22)【出願日】2019-07-09
(65)【公開番号】P2020022740
(43)【公開日】2020-02-13
【審査請求日】2022-04-21
(31)【優先権主張番号】1811555.0
(32)【優先日】2018-07-13
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】506379415
【氏名又は名称】ソニー インタラクティブ エンタテインメント ヨーロッパ リミテッド
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】ニコラス アンソニー エドワード ライアン
(72)【発明者】
【氏名】ヒュー アレクサンダー ディンズデール スペンサー
(72)【発明者】
【氏名】アンドリュー スワン
(72)【発明者】
【氏名】サイモン アンドリュー セント ジョン ブリスリン
(72)【発明者】
【氏名】プリトパル シン パンサー
【審査官】槙 俊秋
(56)【参考文献】
【文献】米国特許第8233664(US,B2)
【文献】米国特許第8401242(US,B2)
【文献】米国特許第9179153(US,B2)
【文献】米国特許第10198792(US,B2)
【文献】米国特許出願公開第2013/0072299(US,A1)
【文献】米国特許出願公開第2015/0371440(US,A1)
【文献】国際公開第2017/066029(WO,A1)
【文献】米国特許出願公開第2017/0157512(US,A1)
【文献】米国特許出願公開第2015/0217196(US,A1)
【文献】REMATAS,Konstantinoset al.,“Soccer on Your Tabletop”,2018 IEEE/CVF Conference on Computer Vision and PatternRecognition(CVPR 2018):Salt Lake City, Utah, USA, 18-22 June 2018,米国,2018 IEEE,IEEEComputer Society 2018,2018年06月18日,p.4738-4747,ISBN 978-1-5386-6421-6,<DOI: 10.1109/CVPR.2018.00498>
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00-13/98
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
仮想環境をマッピングする方法であって、
プロセッサが、ビデオゲームタイトルによって出力されたビデオ画像の第1シーケンスを取得するステップと、
プロセッサが、前記ビデオ画像が生成されたゲーム内仮想カメラ位置の対応するシーケンスを取得するステップと、
プロセッサが、前記ビデオ画像を生成しながら、前記ビデオゲームが使用する深度バッファに対する深度バッファ値の対応するシーケンスを取得するステップと、
プロセッサが、複数のビデオ画像のそれぞれと得られた前記シーケンスの対応する深度バッファ値のそれぞれについて、各ビデオ画像内の所定の位置の集合に対応する深度値の選択された所定の集合に対応するマッピングポイントを取得するステップとを含み、
深度値とビデオ画像位置の各ペアについて、マッピングポイントは、深度値に基づく仮想カメラ位置からの距離、および仮想カメラの相対位置と各ビデオ画像位置に基づく位置を有し、それにより、ビデオ画像の前記第1シーケンスに対応するマッピングポイントのマップデータセットを取得
プロセッサが、前記ビデオゲームによる出力のために、少なくとも第1のマップデータセットの前記マッピングポイントの一部またはすべてのグラフィカル表現を生成するステップをさらに含む、
方法。
【請求項2】
各ビデオ画像内の前記所定の位置の集合は、各画像を横切る1つ以上の水平線からサンプリングされたピクセルを含む、請求項1に記載の方法。
【請求項3】
各ビデオ画像内の前記所定の位置の集合は、前記ビデオ画像の領域全体にわたる位置のサンプリング分布を含む、請求項1または2に記載の方法。
【請求項4】
プロセッサが、各ビデオ画像内の前記所定の位置の集合で色情報を取得するステップと、
プロセッサが、前記色情報を対応する生成された前記マッピングポイントに関連付けるステップと
をさらに含む、請求項1から3のいずれかに記載の方法。
【請求項5】
プロセッサが、前記ビデオゲームによって出力されるビデオ画像の第1シーケンスを記録するステップと、
プロセッサが、前記ビデオ画像を作成するために使用されるゲーム内仮想カメラ位置の対応する前記シーケンスを記録するステップと、
プロセッサが、前記ビデオ画像の生成しながら前記ビデオゲームで使用される深度バッファに対する深度バッファ値の対応する前記シーケンスを記録するステップと、
プロセッサが、前記マッピングポイントを記録するステップと、
プロセッサが、ゲーム仮想カメラ位置、デプスバッファ値、およびマッピングポイントのシーケンスをビデオ画像の前記第1シーケンスの記録に関連付けるステップと
をさらに含む、請求項1から4のいずれかに記載の方法。
【請求項6】
プロセッサが、深度バッファ値シーケンスをエンコードするビデオ画像の第2シーケンスを生成するステップをさらに含む、請求項5に記載の方法。
【請求項7】
プロセッサが、同じ前記ビデオゲームの別のインスタンスから発生するビデオ画像、仮想カメラ位置、および深度バッファ値のシーケンスを使用して生成された1つ以上の追加マップデータセットを取得するステップをさらに含む、請求項1から6のいずれかに記載の方法。
【請求項8】
プロセッサが、前記ビデオゲームによる出力のために、少なくとも1つの前記追加マップデータセットの前記マッピングポイントの一部またはすべてのグラフィカル表現を生成するステップをさらに含む、請求項に記載の方法。
【請求項9】
ビデオ画像のシーケンスは、対応する仮想カメラ位置と深度バッファ値のシーケンスが関連付けられている、第1のビデオ記録から取得される、請求項1から7のいずれかに記載の方法。
【請求項10】
深度バッファ値の対応するシーケンスは、深度バッファ値のシーケンスをエンコードすることによって生成された第2のビデオ記録から取得される、請求項9に記載の方法。
【請求項11】
前記マッピングポイントは、ビデオ画像のシーケンスを含む第1のビデオ記録、または深度バッファ値のシーケンスを含む第2のビデオ記録に関連付けられたデータから取得される、請求項9または10に記載の方法。
【請求項12】
プロセッサが、前記第1のビデオ記録を用いて表示するための少なくとも第1のマップデータセットのマッピングポイントの一部またはすべてのグラフィック表現を含むマップの少なくとも一部を生成するステップと、
プロセッサが、ユーザインターフェイスを使用して表示マップ上の位置を選択するステップと、
プロセッサが、表示マップ上の選択された位置に最も近い対応するカメラ位置をもつビデオフレームを選択することにより、前記第1のビデオ記録の再生位置を制御するステップと
をさらに含む、請求項9から11のいずれかに記載の方法。
【請求項13】
プロセッサが、前記第1のビデオ記録を用いて表示するための少なくとも第1のマップデータセットのマッピングポイントの一部またはすべてのグラフィカル表現を含む第1のマップの少なくとも一部を生成するステップと、
プロセッサが、同じ前記ビデオゲームタイトルで出力され同じゲーム内座標系を共有する異なるビデオ画像のシーケンスの異なるビデオ記録に関連付けられた少なくとも第2のマップデータセットのマッピングポイントの一部またはすべてのグラフィック表現を含む第2のマップの少なくとも一部を生成するステップと、
プロセッサが、前記第1のビデオ記録の再生中に前記第1のマップの少なくとも一部を表示するステップであって、その表示された部分は、表示されたビデオ画像に関連付けられた現在の仮想カメラ位置を少なくとも含む、表示するステップと、
プロセッサが、前記第2のマップのそれぞれの部分がゲーム内座標系での現在の仮想カメラ位置の所定の範囲内にある場合、前記第1のビデオ記録の再生中に前記第2のマップの少なくとも一部を表示するステップと
をさらに含む、請求項9から12のいずれかに記載の方法。
【請求項14】
プロセッサが、ユーザが前記第2のマップの表示された部分と相互作用するかどうかを検出するステップと、
そうであれば、プロセッサが、対応する第2のビデオの再生に切り替えるステップと
をさらに含む、請求項13に記載の方法。
【請求項15】
コンピュータシステムに請求項1から14のいずれかに記載の方法を実行させるように適合されたコンピュータ実行可能な命令を有するコンピュータ読み取り可能な媒体。
【請求項16】
エンターテインメントデバイスであって、
ビデオゲームタイトルによって出力されたビデオ画像の第1シーケンスを取得するように構成されたビデオデータプロセッサと、
前記ビデオ画像が生成されたゲーム内仮想カメラ位置の対応するシーケンスを取得するように構成されたカメラ位置データプロセッサと、
前記ビデオ画像を生成しながら、前記ビデオゲームが使用する深度バッファに対する深度バッファ値の対応するシーケンスを取得するように構成された深度データプロセッサと、
複数のビデオ画像のそれぞれと得られた前記シーケンスの対応する深度バッファ値のそれぞれについて、各ビデオ画像内の所定の位置の集合に対応する深度値の選択された所定の集合に対応するマッピングポイントを取得するように構成されたマッピングデータプロセッサとを含み、
深度値とビデオ画像位置の各ペアについて、マッピングポイントは、深度値に基づく仮想カメラ位置からの距離、および仮想カメラの相対位置と各ビデオ画像位置に基づく位置を有し、それにより、ビデオ画像の前記第1シーケンスに対応するマッピングポイントのマップデータセットを取得
前記エンターテインメントデバイスは、前記ビデオゲームによる出力のために、前記マップデータセットの前記マッピングポイントの一部またはすべてのグラフィカル表現を生成するように構成される、
エンターテインメントデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想環境をマッピングする装置および方法に関する。
【背景技術】
【0002】
ビデオゲームのプレイヤは、立ち往生の場合においてゲーム内で前進し、あるいは追加の特徴の発見を望み、あるいは例えば個人のベストスコアを更新すべく自身の現状のプレイを改善するために、支援を望むことが多い。
【0003】
支援の1つのソースは、ゲーム環境のマップである。ただし、そのようなマップは、特に高レベルの詳細が必要な場合、またはゲーム環境が大きい場合、作成するのが面倒である。オプションとして、ゲーム開発者は、仮想的に高度にある仮想カメラ位置からゲーム環境をレンダリングしてマップを作成することもできるが、それでは環境内の個々の特徴が小さすぎるか不明瞭であるという欠点がある。多くの場合、マップ上では距離は縮尺通りであるが、関心のあるポイントや他のオブジェクトは縮尺通りではない。
【0004】
さらに、環境全体のマップでは、詳細なタイプおよび/またはマップの魅力を高めるようなユーザ経験への関連性が提供されないことがある。
【0005】
その一方で、ビデオの制作者による解説付きのゲーム内映像のビデオキャプチャ(例えば、YouTube(登録商標)におけるウォークスルー(walk-through)やスピードラン(speed-run))が、ガイドまたはエンターテイメントとして人気があるが、所望の情報の提供ならびに/あるいは視聴者が望む特定の動作の説明または実演について、解説者に依存している。所与のビデオについて、関連の情報が視聴者を満足させるように提供されるかどうかを容易に予測することはできず、ビデオを見ても所望の解答が明らかにならない場合、欲求不満につながる。こういった省略された情報は、ゲーム内のプレイヤの位置であるかもしれない。結果として、ビデオゲームに関する支援を望む視聴者にとって、そのようなビデオの恩恵は、きわめて変動し得る。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、これらの問題への対処またはこれらの問題の軽減を追求する。
【課題を解決するための手段】
【0007】
第1の態様においては、請求項1に記載の仮想環境をマッピングする方法が提供される。
【0008】
別の態様においては、請求項16に記載のエンターテインメントデバイスが提供される。
【0009】
本発明のさらなるそれぞれの態様および特徴は、添付の特許請求の範囲に定められる。
【図面の簡単な説明】
【0010】
次に、本発明の実施形態を、添付の図面を参照して、あくまでも例として説明する。
図1】本発明の実施形態によるビデオ記録装置、ビデオ再生装置、およびイベント分析器のうちの1つ以上として動作することができるエンターテイメント機器の概略図である。
図2】本発明の実施形態によるビデオ記録装置、ビデオ再生装置、およびイベント分析器を含むシステムの概略図である。
図3】本発明の実施形態によるビデオ記録方法のフロー図である。
図4A】本発明の実施形態によるビデオ画像を示している。
図4B】本発明の実施形態によるビデオ画像に対応する深度バッファ情報を示している。
図5】本発明の実施形態による深度バッファ情報および追加データのための画像符号化方式を示している。
図6】本発明の実施形態によるビデオ再生方法のフロー図である。
図7】本発明の実施形態による統計的に有意なゲーム内イベントのグラフィック表現によるビデオの増補を示している。
図8】本発明の実施形態によるイベント分析方法のフロー図である。
図9】本発明の実施形態によるゲーム映像のビデオ記録について可能な増補の典型的な図である。
図10】本発明の実施形態によるゲーム映像のビデオ記録について可能な増補の典型的な図である。
図11】本発明の実施形態によるゲーム映像のビデオ記録について可能な増補の典型的な図である。
図12】本発明の実施形態によるゲーム映像のビデオ記録について可能な増補の典型的な図である。
図13】本発明の実施形態による仮想環境をマッピングする方法のフロー図である。
図14A】本発明の実施形態によるビデオ画像におけるポイントの所定の集合に対して深度情報を取得する処理を示している。
図14B】本発明の実施形態によるビデオ画像におけるポイントの所定の集合に対して深度情報を取得する処理を示している。
図14C】本発明の実施形態によるマップ空間におけるポイントのマッピングを示している。
【発明を実施するための形態】
【0011】
仮想環境をマッピングする装置および方法が開示される。以下の説明においては、本発明の実施形態の完全な理解をもたらすために、いくつかの具体的な詳細が提示される。しかしながら、これらの具体的な詳細が、本発明の実施において必ずしも使用されなくてよいことは、当業者にとって明らかであろう。反対に、当業者にとって公知の具体的詳細は、必要に応じて、分かり易さの目的で省略されている。
【0012】
図1が、Sony(登録商標)PlayStation 4(登録商標)エンターテイメント機器の全体的なシステムアーキテクチャを概略的に示している。システムユニット10は、システムユニットに接続することができる種々の周辺機器を備える。
【0013】
システムユニット10は、加速処理装置(APU)20を備え、加速処理装置(APU)20は、中央処理装置(CPU)20Aとグラフィック処理装置(GPU)20Bとを備える単一のチップである。APU20は、ランダムアクセスメモリ(RAM)ユニット22にアクセスする。
【0014】
APU20は、随意によりI/Oブリッジ24を介してバス40と通信し、I/Oブリッジ24は、個別の構成要素であっても、APU20の一部であってもよい。
【0015】
ハードディスクドライブ37ならびに互換性のある光ディスク36A上のデータにアクセスするように動作することができるBlu-ray(登録商標)ドライブ36などのデータストレージコンポーネントが、バス40に接続される。さらに、RAMユニット22は、バス40と通信することができる。
【0016】
随意により、補助プロセッサ38もバス40へと接続される。補助プロセッサ38を、オペレーティングシステムを実行し、あるいはサポートするために設けることができる。
【0017】
システムユニット10は、必要に応じて、オーディオ/ビジュアル入力ポート31、Ethernet(登録商標)ポート32、Bluetooth(登録商標)無線リンク33、Wi-Fi(登録商標)無線リンク34、または1つ以上のユニバーサルシリアルバス(USB)ポート35を介して周辺機器と通信する。オーディオおよびビデオを、HDMI(登録商標)ポートなどのAV出力39を介して出力することができる。
【0018】
周辺機器として、PlayStation Eye(登録商標)などの単眼または立体ビデオカメラ41、PlayStation Move(登録商標)などの杖状のビデオゲームコントローラ42およびDualShock 4(登録商標)などの従来からの手持ち型のビデオゲームコントローラ43、PlayStation Portable(登録商標)およびPlayStation Vita(登録商標)などの携帯型のエンターテイメント機器44、キーボード45および/またはマウス46、例えばリモコンの形態のメディアコントローラ47、ならびにヘッドセット48を挙げることができる。プリンタまたは3Dプリンタ(図示せず)など、他の周辺機器も同様に考慮することができる。
【0019】
GPU20Bは、随意によりCPU20Aと連携して、AV出力39を介して出力されるビデオ画像およびオーディオを生成する。随意により、オーディオを、オーディオプロセッサ(図示せず)と連係して生成することができ、あるいはオーディオプロセッサによって生成することができる。
【0020】
ビデオ、および随意によりオーディオを、テレビ受像機51に提示することができる。テレビ受像機がサポートしているのであれば、ビデオは立体であってもよい。オーディオを、ステレオ、5.1サラウンドサウンド、または7.1サラウンドサウンドなどのいくつかのフォーマットのうちの1つにてホームシネマシステム52に提示することができる。同様に、ビデオおよびオーディオを、ユーザ60が装着しているヘッドマウントディスプレイユニット53に提示することができる。
【0021】
動作において、エンターテイメント機器は、FreeBSD 9.0の変種などのオペレーティングシステムをデフォルトとする。オペレーティングシステムは、CPU20A、補助プロセッサ38、または両者の混合物上で動作することができる。オペレーティングシステムは、PlayStation Dynamic Menuなどのグラフィカルユーザインタフェースをユーザに提供する。このメニューにより、ユーザは、オペレーティングシステムの機能にアクセスし、ゲームおよび随意による他のコンテンツを選択することができる。
【0022】
ここで図2も参照すると、上述のエンターテイメント機器10は、適切なソフトウェア命令の下で、本発明の一実施形態によるビデオ記録装置(210A)および/またはビデオ再生装置(210B)として動作することができる。随意により、エンターテイメント機器は、記録/再生の役割とは別、または記録の役割と一体的に、イベント分析器220として動作することもできる。他の実施例において、イベント分析器は、リモートサーバであってよく、さらには/あるいはビデオ再生装置は、携帯電話機もしくはタブレット、PC、スマートTV、セットトップボックス、または種々さまざまなビデオゲームコンソールなど、エンターテイメント機器10とは異なる形態の機器であってよい。
【0023】
装置が別々の機器である場合、それらはインターネットを介して(例えば、必要に応じてEthernet(登録商標)またはWifi(登録商標)ポート32、34を使用し、あるいはセルラーモバイルデータを使用して)通信することができる。
ここで図3も参照すると、ビデオ記録装置210Aは、以下のビデオ記録方法に従って動作することができる。
【0024】
第1のステップs310は、ビデオゲームによって出力されたビデオ画像の第1のシーケンスを記録することを含む。例えば、PlayStation 4は、最後のN分間のゲームプレイを記憶することを可能にするデータループにて現在のビデオ画像出力のビデオを日常的に保存し、ここでNは、例えば20分間であってよい。その後に、ユーザ入力、ゲーム内イベント、またはスケジュールされたイベントに応答して、そのようなビデオデータを、データループにおける上書き時に失われることがないように、エンターテイメント機器のディスクドライブまたはネットワークを介したリモートホストなどの長期のストレージにコピーすることもできる。
【0025】
第2のステップs320は、ビデオゲームによって使用される深度バッファのための深度バッファ値のシーケンスを記録することを含む。深度バッファは、仮想シーンのどの部分がお互いの前方にあり、したがって最終的にレンダリングされた画像においてお互いを遮る可能性があるかを計算するときに、エンターテイメント機器によって使用される。したがって、深度バッファは、レンダリングされた画像の各々のピクセルについて深度データを提供することができる。
【0026】
次いで、一実施形態においては、レンダリングされた画像の対応するピクセルの深度データのアレイを、深度画像として扱うことができる。したがって、例えば8ビットまたは16ビットの深度値を、レンダリングされた画像に対応する8ビットまたは16ビットのグレースケール画像として記憶することができる。深度画像は、対応するビデオ画像と同じ解像度を有することができ、あるいは低解像度バージョン(例えば、ピクセルが1/4である50%サイズ)を使用することができる。
【0027】
したがって、例えば、3つの8ビットデータチャンネル(例えば、赤色、緑色、および青色)を有する従来からの画像フォーマットの場合、8ビットの深度値が1つのデータチャンネルを占めることができ、あるいは16ビットの深度値が2つのデータチャンネルを占めることができる。
【0028】
図4Aが、レンダリングされた画像を示している一方で、図4Bが、2つのデータチャンネルにおける対応する深度画像を示している。
【0029】
したがって、深度バッファ値のシーケンスを記録するステップは、記録された深度バッファの各々のインスタンスについて、深度画像の複数の画像データチャンネルのうちの少なくとも1つを使用して深度画像を生成することを含むことができる。
【0030】
深度バッファ値のシーケンスを記録するための別の手法は、本明細書において後述される。
【0031】
第3のステップs330は、ビデオ画像を生成するために使用されたゲーム内仮想カメラ位置のシーケンスを記録することを含む。仮想カメラ位置は、出力ビデオ画像をレンダリングするときに使用されたカメラの位置である。位置を、ゲーム世界座標系を基準とした絶対位置、および/または所定の原点を有するグローバル座標系に対する絶対位置として定義することができる(例えば、この後者の場合、最初の出力ビデオ画像における仮想カメラの場所を原点に設定でき、後のカメラ位置をこの原点に対する位置とすることができる)。随意により、必要に応じて、その場所におけるカメラの向き/回転、視野、焦点距離、最も近い描画距離、最も遠い描画距離、などのうちの1つ以上など、追加のカメラ位置情報を提供することができる。
【0032】
仮想カメラ位置データを、本明細書において後述されるように、別個のデータストリームとして記録でき、あるいは符号化された深度データに関連付けられたメタデータとして記録することができるが、代案として、複数の画像データチャンネルのうちの深度バッファ値の記録に使用されていない別のチャンネルにデータを符号化することによって記録してもよい。したがって、例えば、赤色および緑色のチャンネルが深度データを符号化するために使用されるRGB画像において、青色のチャンネルを使用してカメラ位置データを符号化することができる。したがって、本発明の一実施形態において、ゲーム内仮想カメラ位置データは、それぞれの画像データチャンネル内の高コントラストブロックとして空間的に記録される。
【0033】
また、随意により、ゲームが一人称視点からのものではない(すなわち、プレイヤが概念的にも仮想カメラ位置になく、むしろ画面上にアバターが表示されている)場合に、プレイヤの位置、ならびに随意によりプレイヤの向き/回転、速度、モード(例えば、ランニング/ウォーキング)、および/またはポーズも、仮想ビデオカメラ位置データの記録に使用される方式と同じ1つ以上の座標方式を使用して記録することができる。やはり、これも、別個のデータストリームまたはメタデータであってよく、あるいは例えば仮想カメラデータと一緒に同様のやり方で画像内に符号化されてよい。
【0034】
ビデオ画像のカラーチャンネル内に深度データを符号化する第1の例において、図5が、図4Aの画像と同じ画像について、図4Bに示した深度データに対応して、深度データを赤色および緑色チャンネルに符号化し、カメラ/プレイヤ位置データを青色チャンネルに符号化するそのようなRGB画像を示している。画像のグレースケール再現のために、ブロッキーな特徴が、青色チャンネルにおけるカメラ位置データおよび随意によるプレイヤ位置データなどの空間符号化を表すことを、理解できるであろう。ブロックサイズは、符号化された画像のマクロブロックに対応していても、あるいは符号化される情報の量に応じた任意のサイズであってもよい。ブロックサイズの下限は、ビデオの記録、必要に応じたホスティング/保存/ストリーミング、および再生の際に使用される画像の圧縮/解凍後に確実に復元できるブロックサイズによって定まると考えられる。やはり画像のグレースケール再現のために、地形の縞模様が、16ビットの距離値が増加するにつれて緑色値を0~255の間で循環させる緑色チャンネル内の16ビットの深度データの下位8ビットによって引き起こされることを、理解できるであろう。この例において、R、G、およびBチャンネルの選択は任意である。したがって、この補足データを、ビデオゲームによって出力されるビデオ画像シーケンスと並列して進む第2の画像シーケンスとして提供することができる。
【0035】
しかしながら、この方式は、オンラインのストリーミングビデオでしばしば見られる高い圧縮率の影響を受ける可能性がある。したがって、深度バッファデータおよび随意による他のデータを記録するための好ましい代案の手法一式を、次に説明する。
【0036】
本発明の一実施形態においては、2つのカラービデオが記録され、すなわち、すでに説明したとおりのレンダリングおよび表示されたシーンのカラービデオと、16ビットの深度データを符号化するカラービデオとが記録され、16ビットの深度データを符号化するカラービデオは、典型的には以下のフォーマット、すなわち
・16ビットのビット深度における4:0:0モノクロームでのMain 4:4:4 16 Intraプロファイルを使用するH.265ビデオ、または
・16ビットのビット深度における4:4:4クロマサンプリングでのMain 4:4:4 16 Intraプロファイルを使用するH.265ビデオ、または
・16ビットにおける4:0:0または4:4:4でのHigh Throughput 4:4:4 16 Intraプロファイルなどの同様のフォーマットのビデオ
(これらは、例えばこれらのプロファイルをサポートするHEVCバージョンまたは同等の符号化方式である)、ならびに/あるいは
・16ビットの深度バッファがh264、AV9、h265、などを用いる通常のビデオのように記憶することができる3つのカラーチャンネル(例えば、RGB値)へと変換されるUCLカラービデオ
のうちの1つに基づく。
【0037】
その内容が本明細書に援用されるFabrizio Pece、Jan Kautz、およびTim Weyrichの「Adapting Standard Video Codecs for Depth Streaming」、Joint Virtual Reality Conference of EuroVR - EGVE (2011)、編集人R.Blach、S.Coquillart、M.D'Cruz、A.Steed、およびG.Welchにおいてライブアクションビデオに関連して説明されているように、UCLカラービデオは、深度データ(カラーデータとして扱われる)の弾力的な圧縮を可能にする。
【0038】
要約すると、UCLカラービデオフォーマットにおいては、第1のカラーチャンネルの上位8ビットが、おおよその深度値を提供するための16ビットの深度データからの線形マッピングである。次に、第2および第3のカラーチャンネルが、16ビットの深度データにも適用され、位相は異なるが深度データの量子化レベルの少なくとも2倍の周期(例えば、256のレベルを有する8ビットの深度の場合、周期は512以下になると考えられる)を有するマッピング(例えば、三角波)である。位相差により、それらは、関数の空間周期に関して相補的な高分解能の深度情報を符号化する。その後に、第1のチャンネルにおけるマッピングを逆にして大まかな深度値をもたらし、次いで第1のチャンネルからの値に応じて第2および第3のチャンネルのうちの典型的には一方のマッピングを逆にすることによって大まかな値を調整するための相対の深度値を得ることによって、深度情報を回復することができる。
【0039】
同様に考慮され得る別のフォーマットにおいては、16ビットの深度データが、損失の多いやり方で8ビットに圧縮され、第1のカラーチャンネルの上位8ビットに格納される。次に、第1の補正層(例えば、元の深度層と第1のカラーチャンネル内のデータの解凍バージョンとの間の差)が、第2のカラーチャンネルの上位8ビットに格納される。最後に、第2の補正層(例えば、元の深度層と補正層を使用して補正されたときの第1のカラーチャンネル内のデータの解凍バージョンとの間の差)が、第3のカラーチャンネルの上位8ビットに格納される。あるいは、単一の補正ステップのための補正データを、それぞれの上位8ビットにおいて第2および第3の両方のカラーチャンネルの間に格納することができる。
【0040】
換言すると、どちらのフォーマットでも、8ビットの第1のチャンネルが、大まかではあるが全体的な深度値をもたらす一方で、8ビットの第2および第3のチャンネルが、大まかな推定値を調整するためのより高い解像度の深度情報を提供する。
【0041】
やはりいずれの場合も、ビデオコーデックが例えば10ビットの色深度を含む場合に、各々のチャンネルの8ビットが、ビデオ圧縮に対してさらにロバストである。
【0042】
したがって、とりわけ、どちらの場合においても、元の深度データの16ビットが、ホストデータ方式における24ビットの符号化された深度データ(RGBデータ、あるいはYUV、YCoCg、YCbCr、などの同様のデータ)として格納され、好ましくはそれらのビットは、ホストデータ方式の少なくとも最下位ビットを含まないが、いくつかの方式は異なるチャンネルに異なる数のビットを割り当て、したがって随意により、あまり好ましくはないが、少なくとも1つのチャンネル(ただし、全てのチャンネルではない)が符号化された深度データによって占められてもよいことを、理解できるであろう。当然ながら、深度情報における潜在的な誤差を許容でき、あるいは予想される圧縮方式がビット値に影響を及ぼさない(あるいは、視覚的に許容できる程度の影響しか及ぼさない)場合、符号化された深度データは、一部または全てのカラーチャンネルのそれぞれのビットの全てを占めてもよい。
【0043】
とりわけ、上記の概要がカラーチャンネルに言及している一方で、いくつかのカラー符号化方式では、全てのチャンネルが色自体に対応しているわけではない(例えば、或るチャンネルは輝度を表すことができる)が、いずれにせよ、全体としての方式は、色空間における点を定めるように働き、この意味において、チャンネルは本明細書においてカラーチャンネルと呼ばれ、あるいは色空間記述子チャンネルとも呼ばれる。
【0044】
3つのチャンネルにおける16ビットの深度データおよび8ビットへの圧縮が、全て例示にすぎないことを理解できるであろう。より一般的には、UCLカラービデオにおいて、Nビットの深度データ(Nは、典型的には16)を、色空間記述子チャンネル毎にMビット(Mは、典型的には8)へと符号化することができ、典型的にはM<Pであって、Pはホストデータ方式におけるそれぞれのチャンネルの本来のビット深度であり、MはPよりも好ましくは1ビット、より好ましくは2ビット少ない。使用されるカラーチャンネルの数は、典型的には3(例えば、YUV)であるが、違ってもよい(例えば、CMYK)。
【0045】
したがって、より一般的には、深度バッファ値のシーケンスを符号化することは、第1のビット深度の深度データを、選択されたビデオ方式によって使用される複数の色空間記述子チャンネルにまたがって、第1のチャンネルが第1の精度レベルまで深度を表すデータを符号化し、後続のチャンネルまたは後続の各々のチャンネルが第1のチャンネルのデータとの組み合わせにおいて第2のより高いレベルまで深度を表すデータを符号化するように、符号化することを含む。したがって、典型的には、この符号化において、各々のチャンネルにおける深度データは、それぞれのチャンネルのビット長よりも短いビット長に符号化されるが、これは必須ではない。
【0046】
したがって、レンダリングされた環境のカラービデオおよび深度データのカラー符号化ビデオの両方を、例えば1名以上の視聴者へとストリーミングされるように、h.265などの従来からのビデオ符号化技術によって符号化および/または圧縮することができ、深度情報の量子化は、典型的には、レンダリングされたビデオにおけるカラーデータと同じように(または、それ以上に)ロバストなやり方で保存されると考えられる。
【0047】
随意により、送信および同期を容易にするために、2つのビデオを(そうでないにもかかわらず)立体視ペアとして符号化してもよい。第4のステップs340は、仮想カメラ位置および随意によるプレイヤ位置についての方式と同様の方式を使用して、1つ以上のゲーム内イベントおよびそれらのそれぞれのゲーム内位置を記録することを含む。どのようなゲーム内イベントをこのやり方で記録するかの選択は、設計者によって行われると考えられるが、典型的には、クラッシュ/キャラクタの死亡、本物またはコンピュータベースの対戦相手の追い越し/殴打、ユーザのゲーム内状態の変化(例えば、装備する武器などの変更、車におけるナイトロックスブーストの使用)、およびプレイヤの選択(障害物を避けるために左または右に曲がる、またはそれを飛び越えることを選択する、など)のうちの1つ以上を含むことができる。この後者の場合、選択は、場所に基づいても(例えば、障害物または経路選択)、あるいは論理的(例えば、ゲーム内キャラクタでダイアログツリーをナビゲートするとき)であってもよい所定のゲーム内決定ポイントに関連付けられてよい。場所に基づく選択の場合、いつ選択に応答するかに関するユーザの多様性のために、行われた選択は、決定の後の分析を支援するために、ユーザまたはカメラの位置よりもむしろ、ゲーム内決定ポイントの位置に関連付けられ得る。これに代え、あるいはこれに加えて、そのような決定は、どのビデオ画像を選択データに関連付けることができるのかについての予測可能性をもたらすために、ユーザによってなされたとき、またはゲーム内決定ポイントが仮想カメラに対する最も近い描画位置もしくは仮想カメラとの何らかの他の所定の関係(例えば、所定の距離の範囲内)にあるときに符号化されてよく、あるいは選択データは、これら2つの瞬間の間の各々の画像について(あるいは同様に、カメラおよび/またはユーザのアバターがゲーム内決定ポイントの所定の距離の範囲内にあるビデオフレームについて)符号化されてよい。場所特有のイベントに加えて、進行中のイベントも記録され得る。したがって、随意により、各々のビデオ画像について、現在の1つ以上のユーザ入力(例えば、押されたボタン、または関連する入力値)も同様のやり方で記録して、ユーザのゲームとの対話のおおよその記録をもたらすことができ、同様に、ユーザのゲーム内位置(例えば、アバター位置)を、カメラ位置と異なる場合に進行中のイベントとして扱うことができる。本明細書において後述されるように、この記録ステップが、典型的にはゲームプレイの最中に行われ、ゲームプレイから直接生じるイベントを反映する一方で、これに代え、あるいはこれに加えて、そのようなゲーム内イベントの記録ステップは、ビデオ画像および他のデータが出力された後、かつ随意によりそれらがブロードキャスト/ストリーミングされた後に行われ、すなわち本明細書における技術と互換性のあるビューアを使用してビデオを後に視聴する視聴者は、事後に自身のゲーム内イベントを定義するために利用することができる充分な情報を有する。その後に、これらを、必要に応じて、本明細書において後述されるように、更新されたビデオを再投稿し、あるいは中央サーバに送信することによって、共有することができる。
【0048】
上述のように、データは、ビデオゲームによって出力されたビデオ画像のシーケンスの各々について記録されるが、一般に、出力ビデオ画像自体のシーケンスの一部としては記録されず、代わりにビデオ画像として符号化された少なくとも深度データを有するデータの並列シーケンスとして記録される。
【0049】
好ましいカラービデオ符号化手法において、仮想カメラ位置ならびに随意によるアバター位置および/またはゲーム内イベント位置など、カラーデータチャンネル内に符号化されているものとして本明細書において説明される他の情報は、色符号化による深度ビデオ(あるいは、潜在的にはレンダリングされた出力のビデオ、または潜在的には両者(冗長性をもたらすため、あるいは例えばビデオの同期ストリーミングを助けるべく両者において個々のオーバーヘッドを減らし、もしくはバランスさせるため))において別個のデータストリームとして保存され得る。
【0050】
例えば、このデータを、2つのビデオのうちの1つにそれぞれ関連付けられた1つ以上の拡張可能なメタデータプラットフォームストリームなどに格納することができる。あるいは、選択されたビデオ方式は、このデータを収容し得るユーザフィールドを含み得る。
【0051】
したがって、第5のステップS350において、深度バッファ値シーケンスは、ビデオ画像の第2のシーケンスとして符号化され、第6のステップS360において、ゲーム内仮想カメラ位置シーケンスは、ビデオ画像の第1および第2のシーケンスの少なくとも一方(典型的には、ビデオ画像の第2のシーケンス)に関連付けられる。
【0052】
さらなる随意によるステップにおいて、ビデオゲームの識別子も、(プレイヤの位置およびユーザの選択などのやはり符号化される随意による追加情報のいずれかと共に)一方または両方のビデオ画像シーケンスに関連付けられる。
【0053】
識別子は、ビデオシーケンスの後の分析を、ビデオシーケンスが記録されたゲームの画像に基づく認識を必要とせずに可能にする。識別子は、単にプレーンテキストでのゲームの名称であってよく、あるいはゲームに関連付けられた固有の発行番号であってよい。簡単にするために、識別子は、例えばゲームの所有権をホストビデオゲームコンソールに関連付けられた管理サービスに登録する目的のためにすでにゲームに関連付けられている識別子に対応することができる。
【0054】
随意により、1つ以上のゲーム内イベントおよびそれらのそれぞれのゲーム内位置が、ビデオゲームの識別子に関連付けられる。
【0055】
次いで、ゲーム内イベント、それらのそれぞれのゲーム内位置、およびビデオゲームの識別子を、随意により、本明細書において後述されるように、そのようなデータをビデオ記録装置として機能する複数のクライアント装置から受信して、データの統計的に有意な特徴を識別するイベント分析器220として動作することができるリモートサーバにアップロードすることができる。
【0056】
これに代え、あるいはこれに加えて、ゲーム内イベントおよびそれらのそれぞれのゲーム内位置を、補足画像シーケンスのカラーチャンネルにおいて深度バッファ値シーケンス、ゲーム内仮想カメラ位置シーケンス、およびビデオゲームの識別子と一緒に符号化することにより、このやり方でビデオゲームの識別子と(やはり)関連付けることができる。これにより、ゲーム内イベントの特定のインスタンスを特定のビデオ記録に関連付けることができる。
【0057】
随意により、ビデオゲームの各々の記録された画像シーケンス(ビデオ記録)は、随意によりイベント分析器へと送信されてよい固有のビデオIDを有することができる。次いで、イベントデータを、固有のビデオIDと関連付けてイベント分析器へと送信することができる。その後に、イベント分析器は、随意により、イベントデータを、統計的分析に加えて、固有のビデオIDを送信したビデオ再生装置に送り返すことができる。
【0058】
同様に、随意により、深度バッファ値シーケンスならびに/あるいはゲーム内仮想カメラ位置シーケンスおよび他の随意によるデータのいずれか(プレイヤアバター位置など)も、固有のビデオIDと関連付けてイベント分析器にアップロードすることができる。
【0059】
全ての補足データがこのやり方でアップロードされる場合、それは、本明細書において前述したように符号化された並列なビデオ記録として、あるいはこのやり方で符号化するためのサーバ用の別々のデータ要素として、サーバに提供され得る。
【0060】
続いて、ビデオ再生装置がビデオ記録内に見出される固有のビデオIDを送信するとき、それは、例えば本明細書において前述したように符号化された並列のビデオ記録として、全ての補足データを受信することができる。
【0061】
これに代え、あるいはこれに加えて、ビデオレコーダは、最初に並列ビデオ記録をオンラインホスト(YouTube(登録商標)またはTwitch(登録商標)など)にアップロードし、ホストされた記録に関連するURLを取得し、このURLをゲームのビデオ記録のユーザフィールドに埋め込んだ後に、このビデオ記録をオンラインホストにさらにアップロードすることができる。同様に、ビデオ名として固有のビデオIDを使用して並列ビデオ記録をオンラインホストにアップロードした後に、ビデオレコーダは、オンラインホストとの検索語として後に使用されるように、ビデオIDをビデオ記録のユーザフィールドに埋め込むことができる。
【0062】
いずれの場合も、固有のビデオIDまたはURLが元のビデオに(例えば、ビデオのユーザフィールドにおいて)関連付けられたままである限りにおいて、本明細書に開示の技術を実行するように構成されたビデオ再生機器は、イベント分析器への要求またはオンラインホストからの並列なホストされたビデオへのアクセスのいずれかによって所望の補足データにアクセスできるが、ビデオ自体は他の点では従来のままであり、これらの技術に関する非標準の補足データをさらに処理および送信する特別な考慮を必要とせずに、従来または過去の機器およびアプリケーションによる処理および送信が可能である。
【0063】
ここで図6を参照すると、ビデオ再生装置210Bは、以下のビデオ再生方法に従って動作することができる。
【0064】
第1のステップs610は、ビデオ画像のシーケンスを含むビデオゲームのプレイセッションの第1のビデオ記録を取得することを含む。これは、ビデオファイルのダウンロード、YouTube(登録商標)またはTwitch(登録商標)などのWebサービス用のビデオストリームのストリーミング、あるいはすでに再生装置のローカルメモリ(HDD37またはBD ROM 36/36Aなど)にあるビデオ記録へのアクセスなどの任意の適切な手段によって行われ得る。
【0065】
第2のステップs620は、深度バッファ値シーケンスを符号化することによって生成された第2のビデオ記録(本明細書におけるH.265およびUCLの例など)を取得することを含む。
【0066】
第3のステップs630は、取得されたビデオ記録のうちの少なくとも1つに関連付けられたゲーム内仮想カメラ位置シーケンスを、例えばビデオ記録、またはメタデータ拡張、あるいはユーザフィールドによってもたらされるデータファイルとして取得することを含む。随意により、アバター位置およびゲーム内イベントデータなどの追加のデータも含まれ得る。
【0067】
あるいは、符号化されたデータ、および/または他のデータシーケンス(カメラ位置、アバター位置、イベント位置、など)のうちの1つ以上を含むそのような並列ビデオ記録は、受信されたビデオ記録のデータフィールドから取得されてイベント分析器サーバへと提出される固有のビデオIDを参照することによってアクセスされ得、あるいはデータホスティングサービスからのデータにアクセスするために使用される受信されたビデオ記録のデータフィールドから取得されるURLまたは検索語を参照することによってアクセスされ得る。
【0068】
補足データは、その全体がダウンロードされてもよく、あるいは補足データがジャストインタイムのやり方でもたらされるようにビデオゲームのビデオ記録(さらには、必要に応じて、深度データビデオ)と同じレートでストリーミングされてもよいことを、理解できるであろう。随意により、補足データを、所定のフレームオフセット(例えば、ビデオゲームのビデオ記録に対して予め1、2、3またはそれ以上のフレーム)でストリーミングすることで、ビデオゲームの対応するビデオの受信に備えて処理済み情報を準備し、さらには/あるいは補足データの後続のフレームの受信に依存すると考えられる補足データのための平滑化、平均化、または誤り訂正機能を提供するための充分な処理時間をもたらすことができる。これは、ビデオゲームのビデオ記録をその始まりにおいて所望の所定の数の空白フレームで引き延ばすことによって達成でき、あるいはビデオゲームのビデオ記録の再生を所望の所定の数のフレームだけ遅らせることによって達成することができる。このような処理時間のオフセットを、随意により、ゲーム映像と深度ビデオとを、深度ビデオがゲーム映像より先の所定の1つ以上のフレームであるように立体視ペアとして符号化する場合にも実施することができる。
【0069】
上述したように、随意により、ゲーム内イベントデータをこの段階で取得することによって、後のそのゲーム内イベント自体に応答した増補(例えば、辿った経路またはユーザのコメントの表示)を可能にすることができる。
【0070】
しかしながら、これに代え、あるいはこれに加えて、随意によるさらなるステップS635が、統計的に有意なゲーム内イベントおよびゲーム内イベント位置を示すデータを取得することを含む。本明細書の他の箇所で説明されるように、このデータは、イベント分析器からファイルとして取得され、あるいは再生時にビデオプレイヤへとストリーミングされる。データは、典型的には、例えばイベントの重要性に関するデータおよび随意による他の統計データ(さらには、典型的には、イベントをどのようにグラフィカルに表すかの選択を助けるためのイベントの種類なども)など、ゲーム内イベント分析データを示すデータを含む。
【0071】
前述したように、どのゲーム内イベントが記録されるかの選択は、設計者によってなされていてよく、クラッシュ、キャラクタの死亡、相手を追い越し、もしくは殴打すること、または実際に相手に追い越され、もしくは殴打されること、ユーザのゲーム内状態の変化、プレイヤの選択、および/またはプレイヤの入力のうちの1つ以上を含むことができる。上述のように、これらのイベント自体に基づく増補が提供され得る。しかしながら、随意により、このデータは、本明細書の他の場所で説明されるように分析され得、次いで、この分析に関連するデータが、イベント位置に関連付けられ得る。
【0072】
データが特定のゲーム内位置を表示するビデオ再生の前にファイルとして後にダウンロードされる場合、イベント位置を、イベント分析データをいつ使用するかを決定するために使用することができる一方で、これに代え、あるいはこれに加えて、データがビデオゲームの記録の再生に同期して後にストリーミングされる場合、イベント分析データを、ビデオゲームの記録がいつイベント位置に達するかに従って、随意により記録におけるその瞬間のカメラ位置または随意によるプレイヤアバター位置からの所定のオフセットに関して、ストリーミングすることができる。
【0073】
次に、第4のステップS640が、ゲーム内イベント位置に対応する第1のビデオ記録(ゲーム映像)の現在のビデオ画像内の位置を、関連するゲーム内仮想カメラ位置および第2の深度ビデオから得られた復号後の深度バッファ値に応じて計算することを含む。
【0074】
したがって、ビデオゲームの現在表示されているビデオ画像について、ゲーム内またはグローバル座標系を使用するカメラの位置が既知であり、表示ビデオ画像内のピクセルの深度データが既知であり、あるいは関連の深度データから補間できる場合、基本的に、ビデオゲームの現在表示されているビデオ画像内の各ピクセルのゲーム内またはグローバル(X、Y、Z)座標を決定することができる。したがって、現在表示されているビデオ画像内のゲーム内イベントの位置を決定することができる。
【0075】
とくには、所与のイベントについて、現在の表示ビデオ画像内の対応するX、Y座標が、イベントのZ座標よりも近いZ座標を有すると決定された場合、基本的に、そのイベントは、ビデオ画像内に描かれた仮想環境内のオブジェクトによって表示ビデオ画像の現在の視点から隠される。
【0076】
この情報を使用して、第5のステップs650において、ビデオ再生機器は、計算された位置に応じて、ゲーム内イベントのグラフィカル表現で現在のビデオ画像を増補することができる。とくに、ビデオ再生機器は、表示された環境の構成要素が現時点においてゲームイベントの位置とビデオによって提示された視点との間にあるかどうかに基づいて、ゲーム内イベントのグラフィック表現の一部または全部を隠すかどうかを決定できる。例えば、ビデオ再生機器は、ポインタとして機能する四面体などの単純なポリゴンベースのオブジェクトをレンダリングする準備をし、次いで四面体がビデオ画像を記録した仮想カメラの現在の視点から適切に隠されて、ビデオの環境内に自然に埋め込まれているように見えるように、ビデオ画像のZ値を使用して最終的なレンダリングにおいて四面体についていわゆるzカリングを実行することができる。したがって、この技術は、深度バッファ値に応じて、ビデオ画像の前景要素によって引き起こされる計算位置でのグラフィック表現の遮蔽を計算することを含むことができる。
【0077】
再生機器は、得られたゲーム内イベントの全てを増補しなくてもよい。例えば、視聴者は、どの種類のイベントを表示するかを切り替えることができ、あるいはイベントしきい値を設定することができる(例えば、スコアにしきい値超を加えるイベントだけを表示する)。同様に、再生機器は、再生設定に応じて、統計的に有意なインイベントまたはサブセットを示し、あるいは統計的に有意なイベントまたはサブセットだけを示すことができる。
【0078】
図7が、図4Aの典型的なビデオ画像におけるこの増補を示している。この図において、他のプレイヤの経路が示されている(例えば、とくに速いプレイヤおよび遅いプレイヤがそれぞれ赤色または青色の軌跡で示されている)。グレースケールでの再現のために、各々の軌跡の特定の意味は、本発明の理解に必要ではない。とりわけ、拡大部分に見られるように、軌跡データのZ位置がビデオ画像における特徴のZ位置を超えるため、軌跡が環境の特徴の背後に消えている。
【0079】
図7には、車両の横滑りやブレーキなどのイベントを示す単純なポリゴンオブジェクト(この場合は、四面体)も示されている。この目的のために、随意により固有のテクスチャを有するより複雑で視覚的に訴求力のある情報量の多いインジケータオブジェクトを使用することができ、典型的には、異なるそれぞれのグラフィック表現が、対応する異なるイベント種類について使用されることを、理解できるであろう。x、y、z位置がインジケータオブジェクトからの所定の方向の線と交差するビデオピクセルの明るさを減少させることによって、ビデオゲーム環境内にインジケータオブジェクトの見かけの影を生じさせ、インジケータオブジェクトの見かけの没入を改善するなど、他のグラフィック効果を適用できることを、理解できるであろう。同様に、ビデオ再生機器は、ビデオの有効解像度または圧縮率を分析し、これに実質的に一致するようにインジケータオブジェクトの有効解像度を(例えば、レンダリングされたオブジェクトをピクセル化し、さらには/あるいはぼかすことによって)低下させることで、インジケータオブジェクトをより背景ビデオ画像の一部であるように見せることができる。
【0080】
随意により、ビデオ再生機器は、ビデオ記録に関連付けられたゲーム内プレイヤ位置シーケンスも取得することができる。やはり前述したように、これは、別個のファイルまたはストリーム内にあっても、あるいは並列画像シーケンス内に符号化されていてもよい。次いで、増補の段階は、ビデオ内の現在のプレイヤ位置と1つ以上のイベント位置との間の関係を表示することを含むことができる。これは、プレイヤ位置とイベント位置との間の距離/カウントダウン値を示し、プレイヤ位置とイベント位置との間に線、矢印、または経路を追加し、プレイヤ位置とイベント位置との間の距離が所定のしきい値の範囲内であるときにのみイベントに関連するインジケータオブジェクトを示し、もしくはフェードインさせる、などの形態をさまざまに取り得る。
【0081】
ここで図8に目を向けると、イベント分析器220として動作するサーバは、以下のイベント分析方法に従って動作することができる。
【0082】
第1のステップS810は、ビデオゲーム識別子ならびに1つ以上の関連のゲーム内イベントおよびそれらのそれぞれのゲーム内位置を複数のビデオゲーム機器(ビデオ記録装置として機能する)からそれぞれ受信することを含む。したがって、本明細書において前述したように、イベント分析器は、ゲーム内イベントおよびゲームにおけるそれらの発生場所を識別する特定のビデオゲームに関するデータを、複数のビデオゲーム機器から受信する。
【0083】
本明細書において前述したように、随意により、イベント分析器は、ビデオ記録装置によって記録された他の補足データのいずれかを、固有のビデオ記録IDと共に受信することができる。
【0084】
次に、第2のステップS820は、ビデオゲーム識別子に関連付けられたゲーム内イベントの1つ以上の態様、およびそれらのそれぞれのゲーム内位置に関する分析を実行し、統計的に有意なゲーム内イベントを識別することを含む。
【0085】
これは、例えば、同様の種類の複数のイベントの地理空間分析を実行することで、ホットスポット、コールドスポット、ならびにその種類のイベントまたは特定の位置におけるイベントの特定のインスタンスについてのプレイヤの集団の行動を示す他のグループ統計を識別することによって行われ得る。
【0086】
地理空間分析の典型的な形態は、既知のGetis-Ord-Gi*統計であり得る。この分析は、特徴をそれらの隣人に対して評価するため、類似の特徴のクラスタは、大域的な評価に対して重要性を得、したがってホットスポットとして識別される。必要に応じて、コールドスポットを逆のやり方で識別することができる。
【0087】
イベントについての重要性の側面を、重み付けによって選択することができる。したがって、例えば、レースゲームにおいてユーザがブレーキをかける場所に関連するゲーム空間内の地点の組を、各地点に関連するそれぞれの最終的なラップタイムに従って重み付けすることができる。
【0088】
次いで、分析は、各地点について別々にzスコア(例えば、やはり大きな重みを有した隣人がどのくらい多いかを反映する)と、この地点が異常であるかどうかを示すp値とを生成する。
【0089】
これらの分析を、特定のゲームタイトルについて周期的に、かつ/またはそのゲームについてのより多くのデータの受信に応答して(例えば、必要に応じて、1個、10個、100個、1,000個、10,000個、または100,000個の追加データセットを受け取った後に)実行することができる。
【0090】
使用される重み付けに応じて、イベントまたはイベント種類の異なる態様を、このやり方で別々に分析できることを、理解できるであろう。例えば、ブレーキのイベントを、ラップタイムまたはラップが完了したかどうか、車種、またはユーザの人口統計に関して分析することができる。
【0091】
この目的のために、セッションデータと呼ぶことができるゲームプレイに関する他の情報、すなわちゲームプレイ自体におけるイベントではなく、難易度設定、プレイヤのスキルレベルまたは使用された装備、レベルの完了後に決定された最終的な結果(時間、スコア、実績、ランキング、など)、などのゲームプレイに関する情報も、ビデオ記録装置によって記録できることを、理解できるであろう。したがって、レベルの一部のみがビデオ記録される場合、ビデオ記録装置は、随意により、たとえビデオ記録自体が終えられた場合でも、ひとたびレベル(または、そのような値を得るための他の論理点)に達すると、そのようなデータをビデオ記録に添えることができる。そのようなセッションデータを、別々のファイルとして記憶することができ、あるいはゲームビデオ記録または並列ビデオ記録内に任意の適切なやり方で符号化することができる。例えば、セッションデータは、並列ビデオ記録の始まりまたは終わりの1つ以上のフレームとして含まれ得る。
【0092】
そのような地理空間分析に代え、あるいはそれに加えて、ユーザ生成イベントマーカまたはユーザIDを、特定のアップロードされたイベントデータの組に関連付けることができる。
【0093】
これにより、イベント分析器は、例えばユーザのユーザIDに関連付けられたユーザの友人リストにおいて発見されたプレイヤなどの特定の個人に対応するイベントデータを提供することができる。このようにして、プレイヤのより大きな集団の統計的分析に代え、あるいはそれに加えて、再生の視聴者の友人からの個々の選択およびイベントを、ビデオの増補、および/または友人グループだけに限定された地理空間分析として示すことができる。
【0094】
この原理を、例えばeスポーツチームがパフォーマンスデータの単なるオーバーレイによって競争相手によってポストされたビデオを増補できるよう、ユーザが作成したマーカにより、氏族、チーム、および他の自己特定グループに拡張することも可能である。
【0095】
さらに拡張すると、地理空間分析を、プレイヤの異なる集団について複数回実行して、場所(例えば、全国統計)ならびに年齢および性別などの人口統計に基づく分析を提供することができる。そのような情報は、一般に、各々のユーザIDに関連して保持されている登録詳細から入手可能である。
【0096】
いずれにしても、分析に続いて、第3のステップS830は、ビデオ再生機器から、ビデオゲーム識別子と、ゲーム内仮想カメラ位置およびゲーム内プレイヤ位置のうちの少なくとも一方とを受信することを含む。
【0097】
したがって、ビデオ記録装置からのデータの受信に加えて、イベント分析サーバは、1つ以上のビデオ再生装置からのデータ要求も受信する。要求は、イベント分析器が参照すべきデータセットを認識できるように、ビデオ内のビデオゲームを識別する(これは、例えばイベント分析サーバがただ1つのゲームだけをサポートすることに専念しており、したがってこのサーバへの要求送信行為が関連のビデオゲームおよびデータセットの識別を構成する場合、黙示であり得る)。
【0098】
要求は、ゲーム内仮想カメラ位置およびゲーム内プレイヤ位置のうちの少なくとも一方をさらに含む。データがどのようにビデオ再生装置に送り返されるかに応じて、これは異なる形態をとることができる。レベル全体(あるいは、レベルまたは領域のセグメント/ブランチなど)のデータをダウンロードする場合、レベルの識別は、関連データを取得するのに必要な範囲でカメラ/プレイヤの位置を識別するのに役立つ。
【0099】
一方で、データがストリーミングされている場合、ビデオストリームの表示されたフレーム(または、随意により、アクセスおよびネットワークのレイテンシを考慮した所定の数だけ前のフレーム)に対応するカメラ/プレイヤの現在位置が使用され得る。これは、各ユーザがどのようにゲームをプレイするか、およびどのイベントを経験するか(滑らかな運転ではなく、自動車のクラッシュまたは故障など)に起因して個々のビデオ間で異なる可能性が高く、どのイベントが現在のビデオ表示に関連するのかの予測を難しくしかねないと考えられるビデオ内のイベントの進行を、受信したデータストリームが追跡することを可能にする。
【0100】
レベル毎およびフレーム毎のやり方での位置更新の間に、時間または距離に基づく位置の周期的な更新(例えば、N秒またはMメートル毎(ここでNおよびMは予め定められた値))など、いくつかの方式を本技術内で採用することができる。随意により、再生中にイベントに遭遇したときに該当のイベントについてのデータを受け取るために対応するカメラまたはプレイヤ位置がイベント分析器へと送信されるように、トリガを、ゲームプレイの最中のイベントの発生時に対応して、ビデオ記録装置によってビデオ自体の中(例えば、フラグまたはユーザフィールドの値)に符号化することができる。
【0101】
いずれにしても、それに応答して、第4のステップS840において、イベント分析サーバは、受信したビデオゲーム識別子に関連し、(上述のように、レベル、周期的な時間または距離、あるいは現在または差し迫るビデオフレームに対応する)少なくとも1つの受信した位置の所定の距離の範囲内のゲーム内位置を有する1つ以上の識別された統計的に有意なゲーム内イベントに関する分析データを選択する。所定の距離は、イベントのインジケータオブジェクトがあたかもゲーム内レンダリングの一部であるかのように見え得るように、ビデオゲームの描画距離であり得るが、原則として、受信した位置からの任意の所定の距離であり得る。
【0102】
分析データの選択は、1つ以上の原理に従い得る。例えば、イベントにとって最も重要なデータが選択され得る(例えば、左または右に曲がる選択肢がユーザに提示され、右に曲がるプレイヤの95%がレベルをクリアする一方で、左に曲がるプレイヤの95%がレベルをクリアできない場合、決定イベントのこの態様は、自動車の60%が右に曲がり、オートバイの60%が左に曲がるかどうかよりも重要である)。あるいは、ビデオ内のプレイヤの見かけの選択/イベントに関するデータが、優先的に選択され得る。同様に、最も一般的なイベント、最も一般的ではないイベント、または追い越しではなくクラッシュなどの好ましいイベントを探すなど、ビデオの視聴者によって設定された好みに関するデータが選択され得る。
【0103】
最後に、第5のステップS850において、イベント分析サーバは、ゲーム内イベント分析データおよびそのゲーム内位置を示すデータを、ビデオ再生装置に送信する。次に、前述のように、ビデオ再生装置は、図7に示したように、そのデータを使用してビデオ用の増補レイヤを構築することができる。
【0104】
ゲーム内イベントの位置はそれ自体がゲームの規則および環境によって制約されるので、イベント分析サーバによって受信された累積イベントデータは、そのゲームに矛盾しない(例えば、追い越しに関連する全てのイベントは、レースのコースまたは少なくともゲーム内で追い越しが合法である位置に対応する位置にある)ことを、理解できるであろう。結果として、イベント分析データに関連付けられた場所および現在のビデオ内のカメラ/プレイヤに関連付けられた場所が、(図7のように)互いに矛盾せず、かつビデオ内のゲーム環境に矛盾せず、したがってたとえイベント分析サーバおよびビデオ再生装置がゲーム内の実際の仮想環境についての明確な知識/モデルを持ち得なくても、自然に相互作用するように見える。
【0105】
原則として、ビデオゲームコンソールが、ビデオ記録装置およびビデオ再生装置の両方として動作することができ、したがってユーザが、自身のプレイを、上に重ね合わせられる統計的イベントデータの恩恵を受けつつほぼ即座にレビューできることを、理解できるであろう。さらに、ビデオゲームコンソールは、原則として、イベント分析サーバとしても動作することができ、例えばプロのeスポーツ選手などの一人のユーザによるプレイの履歴記録を分析して、プレイの傾向を識別するのを助けることができる。
【0106】
上記の技術の変種も想定され得る。
【0107】
例えば、ビデオ圧縮がカラービット深度を効果的に減少させることが一般的である。これにより、色のわずかに平坦な領域が生じるが、ほとんどのビデオへの影響は限定的である。しかしながら、カラーチャンネルが深度データを符号化するために使用されている場合、この圧縮は深度データに大きな影響を及ぼし得る。
【0108】
考えられる解決策として、チャンネル内の上位のビットだけ(例えば、8ビットのチャンネルにおける6ビット、10ビットのチャンネルにおける8ビット、あるいは120ビットのチャンネルにおける10ビットだけ)を使用することが挙げられる
【0109】
別の解決策は、16ビットの深度値が、圧縮によって影響される下位ビットを別々に有する2つの8ビットのチャンネルにまたがって符号化される場合に、実際には、深度値の中位ビットが損なわれる可能性があることに注目する。しかしながら、ビットが2つのカラーチャンネルの間で交互にされる場合(例えば、ビット1(深度)がビット1(緑色)になり、ビット2(深度)がビット1(青色)になり、ビット3(深度)がビット2(緑色)になり、ビット4(深度)がビット2(青色)になり、以下同様)には、深度データの下位ビットだけが、このやり方での圧縮の影響を受けると考えられる。
【0110】
受信した分析データの使用は、ビデオ撮影されたゲームのスタイルに適するようにさまざまであってよい。例えば、ゲーム内の特定の時点においてプレイヤが人気のある選択をしたか、あるいは人気のない選択をしたかを単に説明する解説を提供することが、いくつかの場合に適用可能であり得る一方で、多数のプレイヤの位置に関する大量のグラフィック的に複雑な統計が、他のゲームにおいては適切であり得る。
【0111】
同様に、(ビデオ再生装置自体にはゲームがインストールされておらず、ビデオ再生装置がゲームについての情報またはゲームのためのアセットを有していないかもしれないため)ビデオ再生装置がビデオ内の特定のゲームにグラフィック的に一致してイベントを強調表示するグラフィックアセットを有するように、イベント分析サーバが、受信ビデオゲーム識別子に応答してグラフィックデータ(インジケータ幾何学形状、テクスチャ、など)を提供することができる。
【0112】
説明は、深度データの並列ビデオ記録の使用に言及しており、カメラおよびイベントデータなどもその並列ビデオ記録のデータチャンネル内に符号化されることを示唆しているが、原理的に、そのようなデータは、データの一部または全てがゲームプレイのビデオ記録に直接含まれるように、ユーザデータフィールドをサポートするビデオコーデックのそのようなフィールドに含まれ得る。これは、ビデオが本技術に対応するように(例えば、そのようなデータフィールドを保持し、あるいはそれらに劣化を伴う圧縮を適用しないことによって)構成された非レガシーサービスによってホストされる場合に選択肢であり得る。
【0113】
本明細書に記載の技術は、他のプレイヤが辿った経路(例えば、図7に示されるとおり)および他の情報を、これらを適切な深度で表示すべく深度バッファおよびゲーム内仮想カメラ位置を使用して、レースのコースまたは任意の他の横断され得る仮想環境に重ねて表示することを可能にする。
【0114】
これらの技術が、いくつかの用途に関してゲームプレイのビデオ記録の増補を容易にすることができることを、理解できるであろう。例えば、解説および分析を提供するグラフィックスを、eスポーツの報道の上に重ねることができる。
【0115】
他の例として、ユーザがユーザのビデオの再生に仮想オブジェクトを追加できることが挙げられる。仮想オブジェクトは、例えば、マーカであってよく、あるいはテキスト付きの3D吹き出しの形態のメッセージであってよい。典型的には、ユーザは、仮想オブジェクトまたはグラフィック効果が提供される事後のゲーム内イベントを定義する。
【0116】
例えば、図9に示されるように、レースのコースを完走するプレイヤのビデオを見ているときに、視聴者は、プレイヤがジャンプした地点に「すばらしいジャンプ!(awesome jump!)」などのメッセージを残すことができ、あるいはジャンプのピーク高さを示すことができる。そのようなイベントを示すために選択されたオブジェクトがそれ自体3Dである場合、それらはビデオ内の環境に矛盾しない位置および向きを有し、したがって、それらはあたかも元々取り込まれた映像の一部のように見える。一例は、図10に示されるように、隠された宝物を指す元のプレイヤまたは後のビデオの視聴者によって設定された矢印である。
【0117】
別の例において、プレイヤまたは視聴者は、「デスゾーン(death zone)」オプションを表示するという選択肢を有し得る。「デスゾーン」は、仮想環境内の空間の影付きの部分(図11においてハッチングされた領域によって示されている)として表示され、多くのプレイヤが殺されたマップ内の領域を表す。ゲームプレイの最中に、深度ビデオに格納された深度データを使用して、デスゾーンを、環境の現在のビューに関して正しい深度で現れるようにレンダリングすることができる。これは、(例えば、eスポーツにおいて)そのプレイヤがゲームをプレイしているのを見ている観客によってオンにされ得る。
【0118】
別の例においては、図7に関連して示したやり方と同様のやり方で、仮想オブジェクトは、成功したプレイヤが辿った経路であり得る。別の例において、仮想オブジェクトは、例えばゲーム内の敵の位置を示すインジケータであり得る。さらに別の例において、仮想オブジェクトは、武器の有効範囲を示すことができる(図12において、遠方への武器の有効性を示す色分けされたストリップとして見て取ることができる)。eスポーツの観客は、例えば、プレイヤが殺されたときに敵がどこにいるのかを確認するために、これらをオンにすることを望むかもしれない。
【0119】
したがって、原理的には、ビデオを増補する目的でゲーム内のイベントをプレイの最中に記録することができる一方で、より一般的には、ゲームイベント、したがって仮想オブジェクトまたはグラフィック効果を、(オフラインまたはライブで)記録が生成された後に記録に関連付け、プレイの最中に記録されたゲーム内イベントと同一のやり方で、別の可能な増補のデータ源または層として取り扱うことができることを、より一般的に理解できるであろう。
【0120】
したがって、ビデオ、深度、およびカメラ位置の並列データセットとの互換性を有するビデオビューアは、元のプレイヤによって記録が行われて出力された後に、ユーザによる現在の画像におけるゲームイベントの配置場所の選択に基づいて、追加のゲーム内イベント(コメント、オブジェクト、または領域のうちの1つ、あるいは上記の他のオーバーレイなど)を定義すべき場所を計算でき、このx、y位置が、それぞれのビデオ画像内のカメラ視点からの深度値(距離)に対応し、したがって追加のゲーム内イベントを関連のデータにおいて(他のゲーム内イベントデータと同様のやり方で)カメラ自体と同じ基準点に対して定義することを可能にすることを、理解できるであろう。
【0121】
本明細書では「ビデオ記録」および「ビデオ画像のシーケンス」に言及しているが、これらが(例えば、ウェブベースのホストまたはストリーミングサーバにアップロードされた)事前記録されたビデオも、(やはり、例えばストリーミングサーバにアップロードされた)ライブビデオも包含することを、理解できるであろう。いずれの場合でも、得られた映像を増補する能力は、ゲーム映像のビデオ記録と、深度データおよびカメラデータの並列記録との組み合わせに基づく。
【0122】
したがって、例えばPS NOW(登録商標)などのストリーミングゲームサービスは、ライブゲーム内で仮想オブジェクトをレンダリングするために使用することができるカラービデオおよび深度符号化ビデオの両方を出力することができる。例えば、ローカルコンソールにおける第2のプレイヤが、第1のプレイヤの経験を増補および/または視覚的に説明することによって参加することができる。
【0123】
ここで説明する方法を、ソフトウェア命令あるいは専用ハードウェアの包含または置換によって必要に応じて適切に構成される従来からのハードウェア上で実行できることを、理解できるであろう。
【0124】
したがって、従来からの同等の機器の既存の部分への必要な適応を、フロッピー(登録商標)ディスク、光ディスク、ハードディスク、PROM、RAM、フラッシュメモリ、あるいはこれらの記憶媒体または他の記憶媒体の任意の組み合わせなどの非一時的な機械可読媒体に記憶されたプロセッサ実行可能命令を含むコンピュータプログラム製品の形態で実施でき、あるいはASIC(特定用途向け集積回路)またはFPGA(フィールドプログラマブルゲートアレイ)または従来からの同等の機器の適応において使用するために適した他の設定可能回路として、ハードウェアにて実現することができる。さらに、そのようなコンピュータプログラムを、Ethernet、無線ネットワーク、Internet、あるいはこれらのネットワークまたは他のネットワークの任意の組み合わせなどのネットワーク上のデータ信号を介して送信することができる。
【0125】
したがって、ビデオ記録装置のためのハードウェアは適切なソフトウェア命令の下で動作するPlayStation 4などの従来からのコンピューティングデバイスであってよく、そのようなコンピューティングデバイスは、ビデオゲームによって出力されるビデオ画像の第1のシーケンスをビデオストレージ手段(例えば、HDD37)に記録するように構成され、ビデオゲームによって使用された深度バッファのための深度バッファ値のシーケンスを記録するように(例えば、適切なソフトウェア命令によって)構成され、ビデオ画像の生成に使用されたゲーム内仮想カメラ位置のシーケンスを記録するように(例えば、適切なソフトウェア命令によって)構成され、1つ以上のゲーム内イベントおよびそれらのそれぞれのゲーム内位置を記録するように(例えば、適切なソフトウェア命令によって)構成された記録プロセッサ(例えば、適切なソフトウェア命令の下で動作するCPU20A)と、深度バッファ値のシーケンスを符号化するビデオ画像の第2のシーケンスを生成するように構成されたビデオ生成プロセッサ(例えば、やはり適切なソフトウェア命令の下で動作するCPU20A)と、ゲーム内仮想カメラ位置のシーケンスをビデオ画像の第1および第2のシーケンスの少なくとも一方に関連付けるように(例えば、適切なソフトウェア命令によって)構成された関連付けプロセッサとを備える。いずれの場合も、適切なソフトウェア命令は、本明細書に記載の方法および技術を必要に応じて実行する。
【0126】
同様に、ビデオ再生装置のためのハードウェアは、適切なソフトウェア命令の下で動作するPlayStation 4などの従来からのコンピューティングデバイスであってよく、そのようなコンピューティングデバイスは、ビデオ画像のシーケンスを含むビデオゲームプレイセッションの第1のビデオ記録を取得するように構成され、深度バッファ値のシーケンスを符号化することによって生成された第2のビデオ記録を取得するように(例えば、適切なソフトウェア命令によって)構成され、前記取得されるビデオ記録の少なくとも一方に関連付けられたゲーム内仮想カメラ位置のシーケンスを取得するように構成された再生プロセッサ(例えば、適切なソフトウェア命令の下で動作するCPU20A)と、ゲーム内仮想カメラ位置をイベント分析器へともたらすように構成され、統計的に有意なゲーム内イベントおよびゲーム内イベント位置を表すデータを取得するように(例えば、適切なソフトウェア命令によって)構成された分析プロセッサ(例えば、適切なソフトウェア命令の下で動作するCPU20A)と、関連付けられたゲーム内仮想カメラ位置および復号された深度バッファ値に応じて、ゲーム内イベント位置に対応する第1のビデオ記録の現在のビデオ画像における位置を計算するように構成された位置計算プロセッサ(例えば、適切なソフトウェア命令の下で動作するCPU20A)と、計算された位置に応じて統計的に有意なゲーム内イベントのグラフィック表示で現在のビデオ画像を増補するように構成された増補プロセッサ(例えば、適切なソフトウェア命令の下で動作するCPU20Aおよび/またはGPU20B)と、を備える。やはり、いずれの場合も、適切なソフトウェア命令は、本明細書に記載の方法および技術を必要に応じて実行する。
【0127】
最後に、同様に、イベント分析器は、適切なソフトウェア命令の下で動作するサーバまたはPlayStation 4などの従来からのコンピューティングデバイスであってよく、そのようなコンピューティングデバイスは、受信部(例えば、適切なソフトウェア命令の下でCPU20Aと協力して動作するEthernet(登録商標)ポート32)と、分析プロセッサ(例えば、適切なソフトウェア命令の下で動作するCPU20A)と、選択プロセッサ(例えば、適切なソフトウェア命令の下で動作するCPU20A)と、送信部(例えば、適切なソフトウェア命令の下でCPU20Aと協力して動作するEthernet(登録商標)ポート32)とを備え、受信部は、ビデオゲーム識別子ならびに1つ以上の関連付けられたゲーム内イベントおよびそれらのそれぞれのゲーム内位置を複数のビデオ記録装置からそれぞれ受信するように構成され、分析プロセッサは、ビデオゲーム識別子に関連付けられたゲーム内イベントおよびそれらのそれぞれのゲーム内位置の1つ以上の側面について分析を実行し、統計的に有意なゲーム内イベントを識別するように構成され、受信部は、ビデオゲーム識別子ならびにゲーム内仮想カメラ位置およびゲーム内プレイヤ位置の少なくとも一方をビデオ再生装置から後に受信するように構成され、選択プロセッサは、受信されたビデオゲーム識別子に関連付けられ、少なくとも1つの受信された位置の所定の距離の範囲内のゲーム内位置を有する1つ以上の識別された統計的に有意なゲーム内イベントを選択するように構成され、送信部は、ゲーム内イベントおよびそのゲーム内位置を表すデータをビデオ再生装置へと送信するように構成される。やはり、いずれの場合も、適切なソフトウェア命令は、本明細書に記載の方法および技術を必要に応じて実行する。
【0128】
前述のように、ビデオ記録装置、ビデオ再生装置、およびイベント分析器は、3つの別々の装置、または任意の組み合わせの2つの別々の装置、または3つの態様の全てを備える単一の装置であってよい。
【0129】
したがって、システム(200)は、本明細書に記載のビデオ記録装置と、ビデオ再生装置およびイベント分析器のうちの1つ以上とを、別々の装置として含むことができ、あるいは単一の装置内に含むことができる。原理的に、システムは、同様に、本明細書に記載のビデオ再生装置をイベント分析器と一緒に備えることができる。
【0130】
上記の技術および装置を使用して、ユーザが自身のゲームプレイを記録し、YouTube(登録商標)およびTwitch(登録商標)などの公衆のアクセスが可能なホスト(あるいは、潜在的には、或る種のビデオゲームコンソールに関連付けられたネットワークの管理者に属するホストなどの私的なホスト)にアップロードでき、後に、本明細書に記載の技術を必要に応じて実行する機器またはアプリケーションを使用するそのビデオの視聴者が、他のプレイヤがどのようにゲームをプレイしたかに関する情報で増補されたゲームをプレイするユーザのビデオを見ることができ、したがってゲームにおけるユーザの決定、成功、および失敗の背景、ならびにより豊かな視聴体験を生成する機能が提供されることを、理解できるであろう。
【0131】
本明細書で前述したように、ゲームのプレイヤと潜在的には当該ゲームのビデオ記録の視聴者との両方にとって有用な情報源は、ゲームのユーザ体験または同様にゲームのビデオ記録に関するマップである。
【0132】
ここで図13を参照すると、この問題に対処または軽減するために、仮想環境(図4A、7、9、10~12に示されているゲーム環境など)をマッピングする方法は次のとおりである。
【0133】
第1のステップs1310では、例えば本明細書で前述したように、ゲームを実行しながらエンターテイメントデバイスから直接画像データにアクセスすることにより、あるいは前述のように生成されたビデオ記録から画像データにアクセスすることにより、ビデオゲームタイトルによって出力されたビデオ画像の第1シーケンスを取得する。
【0134】
第2のステップs1320では、例えば、本明細書で前述したように、ゲームを実行しながらエンターテインメントデバイスから直接関連データにアクセスすることにより、あるいは、出力画像のビデオ記録から、またはビデオ記録に関連付けられたデータから、または深度情報を含む別個のビデオ記録に埋め込まれた奥行き情報を含むデータから、または仮想カメラ位置を対応するビデオ画像に関連付けるのに役立つ任意の他の適切な手段から、関連データにアクセスすることにより、ビデオ画像が生成されたゲーム内仮想カメラ位置の対応するシーケンスを取得する。
【0135】
第3のステップs1330では、例えば、本明細書で前述したように、ゲームを実行しながらエンターテインメントデバイスから直接関連する深度バッファデータにアクセスすることにより、あるいは、その出力画像のビデオ記録に関連付けられたデータから例えば別個のデータファイルの形で、またはここで説明するような任意の適切な技術を使用して深度データをエンコードするのに役立つ第2のビデオ記録から、関連する深度バッファデータにアクセスすることにより、ビデオ画像を生成しながら、ビデオゲームが使用する深度バッファに対する深度バッファ値の対応するシーケンスを取得する。
【0136】
次に、第4のステップS1340において、複数のビデオ画像のそれぞれと得られたシーケンスの対応する深度バッファ値のそれぞれについて、サブステップs1342は、各ビデオ画像内の所定の位置の集合に対応する深度値の選択された所定の集合に対応するマッピングポイントを取得することを含む。ここで、深度値とビデオ画像位置の各ペアについて、マッピングポイントは、深度値に基づく仮想カメラ位置からの距離、および仮想カメラの相対位置と各ビデオ画像位置に基づく位置を有する。
【0137】
マッピングポイントは、マップポイントの距離と方向に対応するマップ位置を計算することにより取得してもよい。ここで方向は、仮想カメラの光学中心とビデオ画像内のそれぞれの選択位置との間の距離に基づき、距離は、仮想カメラの位置とビデオ画像内の選択された位置に対応する深度値とに基づく。
【0138】
図14A-Cは、画像の中心線の画素を含む所定の位置の集合のための処理を示す。図14Aでは、グレースケール画像要素は深度値に対応し、暗い値はより遠くにある。これらの要素の正確な性質は、本発明の理解にとって重要ではないことが理解されよう。上述のように、所定の位置の集合1410は、画像の中心線に沿ったピクセルの集合である。この集合は、画素の全体または部分集合をサンプリングしてもよく、したがって例えば任意のN個の画素を含んでもよい。ここでNは、非限定的な例として、1、2、3、...10などあってもよい。
【0139】
上部の円1420は現在の仮想カメラの位置を示し、下部の円1430は2Dマッピングの場合の仮想カメラの位置を示す(たとえば、標高をゼロに設定するか、同等のことであるが、仮想カメラの場所で仮想地面の現在のレベルを減算することによる)。この例では、仮想カメラの視野は円の各々から発する二つのラインの間の角度で示される。
【0140】
図14Bに示されるように、所定の集合内の各ピクセルの対応する深度値が取得される。深度値情報の解像度が画像解像度よりも低い場合、深度値情報の有効解像度に対応するNピクセル毎の規則的サンプリングを代わりに使用してもよいことが理解されよう。
【0141】
図14Cに示されるように、次いで、得られた深度値とともに画像内のサンプルピクセルの相対位置および仮想カメラの位置に基づいて、マップ空間1450においてマップポイントを特定する。
【0142】
典型的には、マップはゲーム内座標系の原点に関して生成される。したがって、マップポイントは、ゲーム座標系での仮想カメラの位置と、深度値によって示される仮想カメラからの距離と方向、仮想カメラによって取得された画像内のピクセル位置に基づいてマップに対して計算されてもよい。
【0143】
オプションとして、計算された方向は、仮想カメラの視野をさらに考慮してもよい。異なる視野を持つ仮想カメラは、仮想カメラの光軸からの異なる角度に対応する画像内の同じピクセル位置にある。代替的に、視野は固定または想定してもよく、及び/又は視野の効果により、マップを生成する目的のために無視することができる計算内で倍率が課される。
【0144】
同様に、計算された方向は、オプションで仮想カメラの方向をさらに考慮してもよく、それにより、仮想カメラの光軸に対するサンプルピクセルの見かけの方向がカメラ自体の光軸の方向に追加される。この場合、仮想カメラの向きは、仮想カメラの位置とともに取得されてもよい。ただし、特定のゲームでは、仮想カメラの向きが固定または想定されている場合があるため、追加のデータや計算を必要としない場合がある。
【0145】
いずれの場合でも、マップポイントは、仮想カメラの視点から、選択された画像ピクセルで示される方向に、対応する深度データで示される距離で効果的に投影され、マップ空間上のゲーム内座標系内に配置される。
【0146】
その結果、連続する画像の過程にわたって、ビデオ画像の第1シーケンスに対応するマッピングポイントのマップデータセットが取得される。
【0147】
なお、画像データ、深度データと仮想カメラの位置(およびオプションとして向きと視野)、データは、ゲームを実行しながらゲームから直接取得したり、または本明細書に記載の技術のいずれかを使用してエンコードされた、ゲームのビデオ記録に関連付けられた符号化データから取得してもよいことが理解されるであろう。したがって、マップデータセットは、ゲームをプレイしながらまたはここで説明する手法に従ってビデオを再生する間にマップポイントを計算することによって取得することができる。
【0148】
本明細書で以下に記載されるように、マップデータセットは、本明細書に記載された技術のいずれかを用いて、同様にゲームのビデオ記録に関連付けて記録してもよく、それによって再生装置がマップポイント自体を計算する必要がなくなることが理解されよう。
【0149】
上述のように、それぞれのビデオ画像内のサンプル位置の1つの所定の集合は、画像の中心線を含み、これは典型的には仮想カメラの光軸と交差する。しかしながら、より一般的には、所定の位置の集合は、例えば中心線と位置、および中心線の上下の所定の距離または割合、または(中心線が使用されない場合)画像の上部または下部に対して所定の位置または比率で、画像内のピクセルの1つまたは複数の水平線に沿ったサンプリングを含んでもよい。
【0150】
したがって、たとえば、画像の下部から25%上にある水平線は、中心線に含まれない可能性のある地形の特徴を取得する可能性が高い。一方、画像の下部から75%上にある水平線は、関連する空中の特徴またはマップのトップダウンビューから予想されるその他の特徴を取得するかもしれない。たとえば中心線は木の幹と交差するかもしれないが、ユーザがマップで見ることを期待する木の枝/林冠とは交差しない。
【0151】
複数の水平線を使用して画像をサンプリングする場合、水平線の絶対的、相対的、またはランク付けの高さは、結果的に得られるマップポイントに関連付けられてもよい。その結果、マップポイントがマップ空間内の同じ位置に生成される場合、オプションとして、絶対的、相対的、またはランク付けで最高の水平線に関連付けられたマップポイントのみを保持してもよい。あるいは、マップポイントが異なる絶対的または相対的、ランク付けの高さを持っている場合、同じ位置の複数のマップポイントを保持してもよい。
【0152】
代替的または追加的に、それぞれのビデオ画像内のサンプル位置の1つの所定の集合は、ビデオ画像の領域にわたるサンプリング分布位置を含む。したがって、例えば、画素の規則的な配列を(例えば水平方向にN番目の画素毎で垂直方向にM番目の画素毎に(ここでNは前述した通りであり、Mも同様である))サンプリングしてもよい。明らかに、深度情報がピクセル解像度よりも低い解像度である場合、サンプリングは、深度情報の解像度に対応する有効解像度でピクセルを選択してもよい。
【0153】
この場合、マップ空間内の画像フレームに対してポイントクラウドを生成してもよい。マッピングポイントの方向は、ビデオゲームの光軸に対する左右方向だけでなく、高度も有する。その結果、マップの3D 表現を内部で生成することができる。所望であれば、そのようなマップは依然として2Dで(つまり、標高情報を無視して)提示されてもよいが、代替的にポイントクラウドは、マッピングされた領域の3D近似をレンダリングするための基礎として使用することができる。
【0154】
代替的または追加的に、マップの所定の2Dエリア内のポイントクラウド内の最高標高値は、複数の水平ラインにわたるサンプリングについて前述した方法と同様の方法で、マップポイントに関連付けて格納され、高さ値を提供してもよい。
【0155】
マップデータセットに含まれる可能性のある追加情報は、(たとえば、一人称視点ゲームの場合)仮想ビデオカメラの連続した位置および/または(たとえば、三人称視点のゲームの場合)ユーザのアバタの位置を含んでもよく、それにより、マップ内のユーザの位置の軌跡を記録することもできるようになる。
【0156】
本発明の実施形態では、更なるステップは、各ビデオ画像内の所定の位置の集合において色情報を取得すること、および得られた色情報を対応する生成されたマッピングポイントに関連付けることを含む。
【0157】
言い換えれば、マップ上のポイントは、ビデオゲーム環境内の対応するポイントと同じ色に関連付けられてもよく、これにより、マップの後続のグラフィカル表示を、縮小スケールのトップダウンの視点から見たようなビデオゲーム環境に似せることができる。
【0158】
このプロセスを支援するために、図14Cを再度参照すると、マッピングポイントは、スクリーン上の対応するポイントだけでなく、(前述したように、カメラ位置、深度情報、およびカメラからサンプルポイントを通って仮想環境までのビューの方向に基づいて計算される)マッピングポイントへの仮想カメラの光軸からの投影線に沿ったポイントにも関連付けられることが理解される。したがって、図14Cを参照すると、マップポイントは、画像上の深度情報に対応するリンクを持つラインの終端点、および画面上のサンプルピクセルと仮想カメラの光軸の相対位置に対応する方向、前述のように、仮想カメラの位置1420から発するラインを表すのに対して、それぞれがカメラと終端点の間の明確な視線を表すことから、これらのラインに沿ったポイントに対する色情報を利用できること、そしてこれらのラインの下の任意の表示面の対応する位置に対する色情報をマップ内の対応する各位置のために(たとえばマップ-ピクセル毎に、あるいはPを1、2、3、...10などとしてPマップ-ピクセル毎に)サンプリングすることができることが理解されよう。
【0159】
このようにして、現在の仮想カメラ位置で見える不明瞭な地形の色がサンプリングされ、マップの色付けに使用される。
【0160】
画像の中心線の下の適切な位置の水平線の場所の使用、および/または画像の領域にわたるサンプル分布の使用、またはより一般的には仮想地形の角度に対して平行ではないがどこかでその代わりに収束して仮想環境の地面/地形で終了する視線になるであろう視線のサンプリングを使用することも理解されよう。したがって、終端点だけで色情報を取り込む状況では、地形に関連する色情報ならびに潜在的には高められた建物、樹木などの機能を用いてマップを投入するだけで十分である。
【0161】
したがって、マップは、サンプル位置の所定の集合を通して取得された仮想カメラからの視線の終端点を示すマッピングポイントデータ、およびオプションとして視線の下の地形の可視成分の単純な色データ、及び/又は、同様にオプションとしてマッピングポイント自身に関連付けられたカラーデータを含む、複数のタイプのデータを有することが理解されるだろう。
【0162】
上述したように、結果として得られた記憶された色情報によって、ゲームに見られる環境に似ているマップまたはマップインターフェースを生成することができる。これは、表示された環境のレンダリングされたテクスチャを効果的にサンプルし、サンプリングされたテクスチャをマップデータ内の対応する位置に格納するからである。
【0163】
この情報をビデオゲーム自体で使用して、ゲームプレイ中に表示するためのゲーム内のユーザの個人的で潜在的にユニークな旅を反映するマップを生成する一方で、潜在的にはマッピングポイントと、より一般的には本明細書で説明されるようなマッピングポイントおよびオプションの色情報を含むマップデータセットとを本明細書で前述した種類のビデオゲーム画像の記録に関連付けて記録してもよい。
【0164】
したがって、本発明の一実施形態では、マッピング方法は、本明細書で説明する技法のいずれかを使用して、ビデオゲームによって出力されるビデオ画像の第1シーケンスを記録するステップと、本明細書に記載の技術のいずれかを使用して、ビデオ画像を作成するために使用されるゲーム内の仮想カメラ位置の対応するシーケンスを記録するステップと、本明細書に記載された技術のいずれかを使用して、ビデオ画像を作成しながら、ビデオゲームによって使用される深度バッファの深度バッファ値の対応するシーケンスを記録するステップと、本明細書に記載された技術のいずれかを使用して、イベントデータ、カメラデータ等の補助データに関して、マッピングポイントを記録するステップと、本明細書で前述したように、ゲーム内の仮想カメラ位置、深度バッファ値およびマッピングポイントのシーケンスをビデオ画像の第1シーケンスの記録に関連付けるステップとを含む。
【0165】
前述のように、深度バッファ値を記録するための技法の1つは、深度バッファ値シーケンスをエンコードするビデオ画像の第2シーケンスを生成することを含む。前述のように、ビデオ画像の第2シーケンスは、位置およびオプションとして向きを含む仮想ビデオカメラ情報、イベントデータ、および/または、マッピングポイント、マッピングポイントの標高情報、マッピングポイントの色情報(および/または単にマップ色情報)などのような対応する補助データを収容することができることが理解されるであろう。
【0166】
しかしながら、ビデオ画像の第1シーケンスの記録に関連付けられた別個のデータファイルの使用など前述の技法のいずれかを代わりに使用してもよいことが理解されよう。
【0167】
マッピングポイント、オプションとしてマッピングポイントの標高情報、マッピングポイントの色情報および/または単にマップ色情報を含むマップデータセットをプレイの単一のインスタンスの間に(たとえば、プレイの当該インスタンスに対応するビデオシーケンスに直接関連付けて)生成してもよく、その代わりにあるいはそれに加えて、エンターテインメントデバイスを用いてローカルに、またはサーバにリモートに保存してもよく、それによって、連続したプレイインスタンスがこのマップデータセットに追加され、プレイの単一のインスタンスを超えて広がる仮想環境のユーザの探索の累積記録が作成されることもまた理解されるであろう。
【0168】
プレイの個々のインスタンスから取得されたマッピングは、共通のゲーム内座標系を共有するので、組み合わせることが可能である。
【0169】
プレイの個々のインスタンスが同じユーザから来るか、同じエンターテインメントデバイスから来ることもあることが理解されるであろう。従って、本発明の実施形態では、複数のユーザからのマップデータセットは、必要に応じてマッピングポイントまたはより一般的には所与のユーザに関連付けられたヌルまたは未実装のポイント以外のマップデータポイントと組み合わせてもよく、それによって時には交差または重複することがある複数のマップの曖昧さをユーザが解消することができる。
【0170】
このようにして、たとえば、ユーザは自分のマップを友人のマップと比較し、異なる友人がどこで共有される体験またはユニークな体験をしたかを確認してもよい。
【0171】
同様に、この方法では、エンターテインメントデバイスまたはサーバは、当該環境の複数のエクスプローラによって生成されたマップデータセットを集約することによって、たとえば環境が手続き的に生成された場合、そうでなければ簡単にマップすることができない環境のより完全なマップを蓄積することができる。
【0172】
したがって、マッピング方法は、同じビデオゲームの別個のインスタンスから生じるビデオ画像、仮想カメラ位置、および深度バッファ値のシーケンスを使用して生成された1つまたは複数の追加のマップデータセットを取得することを含んでもよい。この場合、「別個のインスタンス」とは、同じユーザが同じデバイスでビデオゲームをプレイする別個のインスタンス、異なるユーザが同じデバイスでビデオゲームをプレイする別個のインスタンス、または(任意のユーザによる)別のデバイスでビデオゲームをプレイする別個のインスタンスを等しく意味する。明らかに「ビデオゲーム」自体は、異なるデバイスでプレイする場合、同じビデオゲームタイトルの異なるインストールであってもよい。
【0173】
次に、たとえばビデオゲームによる出力のために、少なくとも第1のマップデータセットのマッピングポイントの一部またはすべてのグラフィカル表現を生成することができる。
【0174】
上記の説明では、マップデータセットの生成、より一般的には画像、深度情報、カメラ情報、およびオプションとしてビデオゲーム自体から直接取得された色情報などのその他の情報を使用してマップデータセットによって使用されるマッピングデータポイントの生成を説明した。しかし、本明細書で説明するように、ゲームからのビデオ画像は、深度情報、カメラ情報、およびオプションとして他の情報とともに、ここで説明したいくつかの手法のいずれかを使用して、ソースビデオゲーム自体とは無関係に後続の再生のために記録することができることが理解されよう。
【0175】
その結果、ビデオゲームタイトルによって出力されるビデオ画像の第1のシーケンスを取得するステップ(s1310)、ビデオ画像が作成されたゲーム内仮想カメラ位置の対応するシーケンスを取得するステップ(s1320)、およびビデオ画像の作成中にビデオゲームで使用される深度バッファに対するデプスバッファ値の対応するシーケンスを取得するステップ(s1330)は、ビデオゲーム画像および(ここで説明したような深度情報およびその他の補助データをエンコードする第2のビデオ記録などの)関連ファイルのビデオ記録からこの情報を取得することによってすべて実現することができることが理解されるだろう。
【0176】
その結果、ビデオ画像のシーケンスは、対応する仮想カメラ位置と深度バッファ値のシーケンスが関連付けられている第1のビデオ記録から取得することができる。必ずしもそうではないが典型的には、本明細書で説明されるように、深度バッファ値の対応するシーケンスは、深度バッファ値のシーケンスをエンコードすることにより生成された第2のビデオ記録から取得される。
【0177】
したがって、この記録された情報を使用する再生デバイスは、このデータを使用してマッピングポイントを同様に取得し、前述のように画像、深度、カメラデータからそれらを計算することにより、同等のマップデータセットを構築することができる。再生デバイスは、マップデータを用いて記録された情報の再生を増強する、またはそれを別途提示することができる。
【0178】
その代わりにまたはそれに加えて、本明細書に前述したように、エンターテインメントデバイスは、前述のようなマッピングポイント、オプションとして標高データ、色データ等を含むマッピングデータセットを記録してもよく、より一般的には、本明細書に記載の任意の適切な技術を用いて、マッピングポイントをイベントデータやカメラデータに類似する補助データとして単に記録してもよい。それによって、そのデータは、ビデオ画像のシーケンスを含む第1のビデオ記録、またはオプションとして、典型的にはこれらのビデオのいずれかの内にエンコードされることによって、深度バッファ値のシーケンスを含む第2のビデオ記録のいずれかに関連付けられるようになる。
【0179】
このように、有利なことには、再生デバイスがマッピングポイント、オプションとして高度データ、色データ等にアクセスできるような方法で、まだ表示されていない画像データに対応するマップの少なくとも一部に対して、マッピングポイントまたはマップデータセットを含めることができる(すなわち、ビデオに示されている現在位置に対応するマップ情報だけでなく、そうでなければその現在位置の前または後ろの位置の画像/深度/カメラ情報を必要とするであろうアクセスマップ情報)。
【0180】
結果として、再生デバイスは、第1のビデオ記録を用いて表示するための少なくとも第1のマップデータセットのマッピングポイントの一部またはすべてのグラフィカル表現を含むマップの少なくとも一部を生成することができ、マップの一部はまだそのビデオに表示されていないシーンに対応する可能性がある。
【0181】
ビデオ記録におけるシーンを実際に要約するマップの一部またはすべてを表示することにより、そのマップをビデオ記録の制御用のユーザインターフェイスとして使用することが可能になる。
【0182】
例えば、始点Aから終点Bへの旅のビデオ記録において、マップはその旅行中にユーザに示されるカメラ位置をたどるパスに似ているであろう。
【0183】
その結果、マウスポインタ、スライダ、またはジョイスティックで制御されるレチクルなどの適切なユーザインターフェイスを使用することにより、表示されたマップ上の位置を選択できる。そして、この意図した位置は、ビデオ再生内の望ましい位置に対するプロキシとして機能することができる。
【0184】
結果として、対応するカメラ位置が表示マップ上の選択された位置に最も近いビデオフレームを選択することにより、第1のビデオ記録の再生位置を制御することが可能になる。
【0185】
このようにして、たとえば、ユーザは開始点Aから終了点Bまでの旅のビデオをダウンロードし、旅を要約したマップを(最初のインターフェイスとして、またはオプションとしてビデオ再生に重畳するか横に配置したオーバーレイとして)表示することができる。その後、ユーザは、マップ内のポイントをクリックすると再生がビデオ記録の対応する部分にジャンプする。
【0186】
同様に、所与の表示されたビデオフレームに関連付けられた現在のカメラ位置をマップ上に示すことができ、それによってビデオの視聴者は見ているものをマップ上の位置に容易に関連付けることができるようになる。マップと直接的に相互作用することの代わりにあるいはそれに加えて、例えば、従来の早送りまたは巻き戻し制御を使用する場合、これはユーザがビデオの再生を通じてナビゲートすることを支援することもできる。
【0187】
前述したように、ゲームプレイの複数のインスタンスからのマップデータセットを組み合わせることができる。したがって、現在のビデオの再生がビデオに関連付けられたマップデータを使用することができる一方、ゲームプレイの他のインスタンスからのマップデータセットを(たとえば中央サーバから)アクセスすることができる。アクセスする典型的なマップデータセットは、異なるスコアまたは他の測定可能な成果をもつ同じユーザ、またはそのゲームをプレイする現在のビデオのプレイヤの友人、またはそのゲームをプレイする現在のビデオの視聴者の友人、またはそのゲームに対する地方、地域、あるいはグローバルのリーダーボードのトッププレイヤなど閲覧者に関心をもつ可能性があるとして同定された他のプレイヤ、または現在のビデオ記録内のイベントデータとは異なるビデオ記録内のイベントデータを持っているプレイヤ(たとえば、現在表示されたレースビデオには、現在の表示位置の近くに関連するクラッシュのイベントがないが、別のビデオには、現在の表示位置の近くに関連するクラッシュのイベントがある)によって獲得されてもよい。
【0188】
これらの追加のプレイヤまたはプレイインスタンスの一つ以上からマップデータセットに対するマップの少なくとも一部のグラフィカル表示を容易に現在のビデオ用のマップと連結して含めてもよい。マッピングポイントが同じゲーム内座標系を共有するからである。
【0189】
従ってマッピング方法は、第1のビデオ記録を用いて表示するための少なくとも第1のマップデータセットのマッピングポイントのいくつかまたはすべてのグラフィック表現を含む第1のマップの少なくとも一部を生成するステップと、同じビデオゲームのタイトルによって出力され、同じゲーム内座標系を共有するビデオ画像の異なるシーケンスの異なるビデオ記録に関連付けられた少なくとも第2のマップデータセットのマッピングポイントの一部またはすべてのグラフィカル表現を含む第2のマップの少なくとも一部を生成するステップと、第1のビデオ記録の再生中に第1のマップの少なくとも一部を表示するステップであって、表示された部分は、表示されたビデオ画像に関連付けられた少なくとも現在の仮想カメラ位置を含む、表示するステップと、第2のマップのそれぞれの部分がゲーム内座標系の現在の仮想カメラ位置の所定の範囲内にある場合、第1のビデオ記録の再生中に第2のマップの少なくとも一部を表示するステップとを含んでもよい。
【0190】
このようにして、別の利用可能なビデオに描かれたゲームプレイが現在のビデオの視聴者にとって仮想ゲーム環境の同一または類似のエリアで発生するとき、現在のビデオの視聴者が別個のマップ(例えば、別のビデオにおけるプレイヤの動きに対応する異なる蛇行トラック)を見ることができる。
【0191】
続いて、本発明の実施形態では、再生デバイスは、ユーザが第2のマップの表示部分と相互作用するかどうかを検出してもよく、その場合、対応する第2のビデオの再生に切り替えてもよい。
【0192】
このように、視聴者は、これらのビデオが互いのしきい値の近接内にある仮想環境からのシーンを示すことをこれらのビデオに対応するマップが示唆している場合、これらのビデオ間をホッピングすることによって、異なるプレイヤの視点から仮想環境をナビゲートすることができる。
【0193】
第2マップとのユーザの相互作用は第1のマップとの相互作用に類似してもよい。すなわち、第2のビデオは、仮想カメラの位置が第2のマップ上で選択された位置に最も良く対応するフレームで始まる。代替的または追加的に、ユーザは、2つのマップ上のマッピングポイント間、または2つのマップ上の仮想カメラ位置の間で最も近いポイントでビデオストリームを切り替えたいという要望を示してもよい。こうして、例えば、ユーザは、マッピングポイントまたはカメラ位置が実質的に交差するとき(すなわち、ビデオの各プレイヤがパスを横切るとき)、ビデオストリームを切り替えたいという要望を示してもよい。
【0194】
これは、それぞれのゲーム内での旅の対応する場所で異なるプレイヤの記録へのホッピングによって、視聴者にゲーム環境のビデオ記録を閲覧する自由を与える。
【0195】
本明細書で前述したように、マップおよび拡張ビデオ記録は、視聴者の友人または元のプレイヤの友人によって行われたビデオ記録、またはプレイヤによって行われた最高のランキングを有するビデオ記録、または最大の「いいね」または視聴者の他の指標、承認などを有するビデオ記録など、合理的な基準に基づいた、より広範な資料のコーパスから選択してもよい。
【0196】
1つの可能性は、マルチプレイヤオンラインゲーム内のプレイヤのグループがそれぞれゲームの独自の視点を記録し、これらのビデオをグループとして関連付けることである。続いて、ここで説明する手法を使用して、これらのビデオをグループストーリーの物語を生成するのに適したルールに従って視聴することができる。そのため、たとえば、2人のビデオのマップが交差するように2人のプレイヤが集まったデスマッチゲームでは、プレイヤの1人が他のプレイヤを殺した場合、ユーザが勝利したプレイヤのビデオを見ているなら、そのビデオは継続するが、ユーザが打ち負かされたプレイヤのビデオを見ているなら、そのビデオは、2人のプレイヤのそれぞれのカメラ位置が最も近いポイントで、オプションとして殺害イベントの後に、勝利したプレイヤのビデオに切り替わる。この場合、たとえば、そのような相互作用の性質を示すためにイベント情報もエンコードされる。同様に、レースゲームでは、ビデオの再生は、たとえば現在のリーダーを追い越す人に切り替えることができる。
【0197】
本明細書で前述したように、本明細書で説明する方法は、ソフトウェア命令によって、または専用ハードウェアの包含または置換によって適切に適合された従来のハードウェアで実行できることが理解されよう。したがって、従来の同等の装置の既存の部品に対して必要な適応は、前述のように、任意の適切な手段によって記憶または搬送されるプロセッサ実行可能命令を含むコンピュータプログラム製品の形で実装することができる。
【0198】
したがって、例えば、本明細書で説明されるマッピング技術を実装するように動作可能なエンターテインメントデバイスのハードウェアは、適切なソフトウェア命令に従って動作するPlayStation 4などの従来のコンピューティングデバイスであってもよく、ビデオゲームタイトルによって出力されるビデオ画像の第1のシーケンスを取得するように(たとえば適切なソフトウェア命令により)構成されたビデオデータプロセッサ(CPU20Aおよび/またはGPU20Bなど);ビデオ画像が作成されたゲーム内仮想カメラ位置の対応するシーケンスを取得するように構成されたカメラ位置データプロセッサ(CPU20Aおよび/またはGPU20Bなど);ビデオ画像の作成中にビデオゲームで使用される深度バッファの深度バッファ値の対応するシーケンスを取得するように構成されたデプスデータプロセッサ(CPU20Aおよび/またはGPU20Bなど);および得られたシーケンスの複数のビデオの各々と対応する深度バッファ値について、それぞれのビデオ画像内の所定の位置の集合に対応する深度値の選択された所定の集合に対応するマッピングポイントを得るように(例えば適切なソフトウェア命令によって)構成されたマッピングデータプロセッサ(CPU20A及び/又はGPU20Bなど)を含み、深度値とビデオ画像位置の各ペアについて、マッピングポイントは、深度値に基づく仮想カメラ位置からの距離、および仮想カメラの相対位置と各ビデオ画像位置に基づく位置を有し、それにより、ビデオ画像の第1のシーケンスに対応するマッピングポイントのマップデータセットを取得する。
【0199】
これは、本明細書および特許請求の範囲に記載された様々な技術に対応した上記ハードウェアにおけるバリエーションが本発明の範囲内で考えられ、以下のものが含まれるがこれらに限定されないことが当業者には明らかであろう。
【0200】
-それぞれの画像を横切る1つ以上の水平線からサンプリングされたピクセルを含む所定の位置の集合;
【0201】
-ビデオ画像の領域全体にわたる位置のサンプリング分布を含む所定の位置の集合;
【0202】
-各ビデオ画像内の所定の位置の集合で色情報を取得し、色情報を対応する生成されたマッピングポイントに関連付けるように構成されたカラープロセッサ(CPU20Aおよび/またはGPU20Bなど)。
【0203】
-ビデオゲームによって出力されるビデオ画像の第1シーケンスを記録し、ビデオ画像を作成するために使用されるゲーム内仮想カメラ位置の対応するシーケンスを記録し、(たとえば、深度バッファ値シーケンスをエンコードするビデオ画像の第2シーケンスを生成することによって)ビデオ画像を生成しながらビデオゲームで使用される深度バッファに対する深度バッファ値の対応するシーケンスを記録し、マッピングポイントを記録し(オプションとしてカラーデータ、標高データなどをマッピングし)、ゲーム仮想カメラ位置、デプスバッファ値、およびマッピングポイントのシーケンスをビデオ画像の第1のシーケンスの記録に関連付けるように適合された本明細書で説明されたハードウェア;
【0204】
-同じビデオゲームの別のインスタンスから発生するビデオ画像、仮想カメラ位置、および深度バッファ値のシーケンスを使用して生成された1つ以上の追加マップデータセットを取得するように構成されたマッププロセッサ(適切なソフトウェア命令で動作するCPU20Aおよび/またはGPU20Bなど);
【0205】
-ビデオゲームによる出力のために、少なくとも第1のマップデータセットのマッピングポイントの一部またはすべてのグラフィカル表現を生成するように構成されたグラフィカル出力プロセッサ(適切なソフトウェア命令の下で動作するCPU20Aおよび/またはGPU20Bなど);
【0206】
-対応する仮想カメラ位置と深度バッファ値のシーケンスが関連付けられている、第1のビデオ記録から取得されるビデオ画像のシーケンス;
【0207】
-深度バッファ値のシーケンスをエンコードすることによって生成された第2のビデオ記録から取得される、深度バッファ値の対応するシーケンス;
【0208】
-ビデオ画像のシーケンスを含む第1のビデオ記録、または深度バッファ値のシーケンスを含む第2のビデオ記録に関連付けられたデータから取得されるマッピングポイント;
【0209】
-第1のビデオ記録を用いて表示するための少なくとも第1のマップデータセットのマッピングポイントの一部またはすべてのグラフィック表現を含むマップの少なくとも一部を生成し、ユーザインターフェイスを使用して表示マップ上の位置を選択し、表示マップ上の選択された位置に最も近い対応するカメラ位置をもつビデオフレームを選択することにより、第1のビデオ記録の再生位置を制御するように構成されたマップインターフェースプロセッサ(適切なソフトウェア命令の下で動作するCPU20Aおよび/またはGPU20Bなど);
【0210】
-第1のビデオ記録を用いて表示するための少なくとも第1のマップデータセットのマッピングポイントの一部またはすべてのグラフィカル表現を含む第1のマップの少なくとも一部を生成し、同じビデオゲームタイトルで出力され同じゲーム内座標系を共有する異なるビデオ画像のシーケンスの異なるビデオ記録に関連付けられた少なくとも第2のマップデータセットのマッピングポイントの一部またはすべてのグラフィック表現を含む第2のマップの少なくとも一部を生成し、第1のビデオ記録の再生中に第1のマップの少なくとも一部を表示し、その表示された部分は、表示されたビデオ画像に関連付けられた現在の仮想カメラ位置を少なくとも含み、第2のマップのそれぞれの部分がゲーム内座標系での現在の仮想カメラ位置の所定の範囲内にある場合、第1のビデオ記録の再生中に第2のマップの少なくとも一部を表示するように構成されたマップインターフェースプロセッサ(適切なソフトウェア命令の下で動作するCPU20Aおよび/またはGPU20Bなど);ここで、マップインターフェースプロセッサは、ユーザが第2のマップの表示された部分と相互作用するかどうかを検出し、そうであれば、対応する第2のビデオの再生に切り替えるように構成される。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14A
図14B
図14C