特許第6746801号(P6746801)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ユニティ アイピーアール エイピーエスの特許一覧

特許67468013Dコンテンツの作成、放送、および視聴
<>
  • 特許6746801-3Dコンテンツの作成、放送、および視聴 図000002
  • 特許6746801-3Dコンテンツの作成、放送、および視聴 図000003
  • 特許6746801-3Dコンテンツの作成、放送、および視聴 図000004
  • 特許6746801-3Dコンテンツの作成、放送、および視聴 図000005
  • 特許6746801-3Dコンテンツの作成、放送、および視聴 図000006
  • 特許6746801-3Dコンテンツの作成、放送、および視聴 図000007
  • 特許6746801-3Dコンテンツの作成、放送、および視聴 図000008
  • 特許6746801-3Dコンテンツの作成、放送、および視聴 図000009
  • 特許6746801-3Dコンテンツの作成、放送、および視聴 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6746801
(24)【登録日】2020年8月7日
(45)【発行日】2020年8月26日
(54)【発明の名称】3Dコンテンツの作成、放送、および視聴
(51)【国際特許分類】
   A63F 13/86 20140101AFI20200817BHJP
   A63F 13/30 20140101ALI20200817BHJP
   A63F 13/358 20140101ALI20200817BHJP
   A63F 13/497 20140101ALI20200817BHJP
   A63F 13/53 20140101ALI20200817BHJP
   A63F 13/52 20140101ALI20200817BHJP
   G06T 19/00 20110101ALI20200817BHJP
【FI】
   A63F13/86
   A63F13/30
   A63F13/358
   A63F13/497
   A63F13/53
   A63F13/52
   G06T19/00 A
【請求項の数】17
【全頁数】24
(21)【出願番号】特願2019-551761(P2019-551761)
(86)(22)【出願日】2017年12月9日
(65)【公表番号】特表2020-515316(P2020-515316A)
(43)【公表日】2020年5月28日
(86)【国際出願番号】IB2017001645
(87)【国際公開番号】WO2018104791
(87)【国際公開日】20180614
【審査請求日】2019年6月20日
(31)【優先権主張番号】62/432,321
(32)【優先日】2016年12月9日
(33)【優先権主張国】US
(31)【優先権主張番号】62/551,130
(32)【優先日】2017年8月28日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】519206586
【氏名又は名称】ユニティ アイピーアール エイピーエス
【氏名又は名称原語表記】UNITY IPR APS
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】マイヒル、アダム
【審査官】 上田 泰
(56)【参考文献】
【文献】 米国特許出願公開第2008/0274798(US,A1)
【文献】 米国特許出願公開第2009/0082095(US,A1)
【文献】 米国特許出願公開第2006/0148551(US,A1)
【文献】 特開2006−081895(JP,A)
【文献】 特表2016−510530(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24,13/00−13/98
H04N 21/00−21/858
G06T 19/00
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のコンピュータプロセッサと、
1つまたは複数のコンピュータメモリと、
前記1つまたは複数のコンピュータメモリに組み込まれた1つまたは複数のモジュールと
を備えるシステムであって、
前記1つまたは複数のモジュールは、ビデオセッションのカスタムバージョンが少なくとも1つの視聴者デバイス上での提示のために作成されることを可能にするための動作を実行するように前記1つまたは複数のコンピュータプロセッサを構成し、前記動作は、
ライブまたは記録されたビデオフィードから生成されたゲームメタデータを受信することであって、前記ゲームメタデータは、前記ライブまたは記録されたビデオフィードに関連する三次元モデリングデータを含む、前記ゲームメタデータを受信すること、
複数の視聴者デバイスから収集された視聴者メタデータを受信することであって、前記視聴者メタデータは、複数の視聴者デバイス上での前記ビデオセッションの提示に対する複数の視聴者の複数の応答に関する情報を含む、前記視聴者メタデータを受信すること、
前記ゲームメタデータおよび前記視聴者メタデータに基づいて追加ゲームメタデータを作成することであって、前記追加ゲームメタデータは、前記三次元モデリングデータに基づく新しいカメラアングルまたは異なるカメラアングルのうちの少なくとも一方に関連するカメラデータを含み、前記追加ゲームメタデータの作成は、撮影モジュールの自動撮影機能を呼び出すことにより実施され、前記自動撮影機能は、前記ビデオセッションの伝送に挿入される遅延の間にゲームイベントのショットの構図を自動的に設定すること、および前記提示の間にゲームイベントが発生する前に前記ショットへ自動的に遷移することを含む、前記追加ゲームメタデータを作成すること、
前記少なくとも1つの視聴者デバイス上での前記ビデオセッションのカスタムバージョンの少なくともほぼリアルタイムでの提示のために、前記追加ゲームメタデータを前記ゲームメタデータに統合すること
を含む、システム。
【請求項2】
前記追加ゲームメタデータの作成は、カメラ制御ツールを介してユーザによって実行され、前記カメラ制御ツールは、前記三次元モデリングデータによってモデル化された環境内でユーザがカメラを制御して新しいカメラを作成することを可能にする、請求項1に記載のシステム。
【請求項3】
前記動作は、前記ゲームメタデータに関する情報を、ユーザインタフェースの第1の領域に提示すること、および前記視聴者メタデータに関する情報を、前記ユーザインタフェースの第2の領域に提示することをさらに含む、請求項2に記載のシステム。
【請求項4】
前記視聴者メタデータは、視聴されているゲームレベル、視聴されているゲームオブジェクト、視聴のために使用されているカメラ、フォローされているゲームイベント、または視聴者の反応のうちの少なくとも1つに関する情報を含む、請求項1に記載のシステム。
【請求項5】
前記ビデオセッションは、eスポーツビデオセッションであり、前記動作は、
複数のプレーヤーデバイスから収集されたゲームデータを受信することであって、前記ゲームデータは、前記複数のプレーヤーデバイスに関連する複数のプレーヤーによって実行された複数のアクションを表し、前記複数のアクションの各々は、前記ビデオセッションにおいてプレイされているゲームの環境の態様を変化させる前記複数のプレーヤーによって実行されたアクションである、前記ゲームデータを受信すること、
ゲームサーバへの伝送のために前記ゲームデータを前記ゲームメタデータと同期させること
をさらに含む、請求項1に記載のシステム。
【請求項6】
記動作は、前記視聴者を指すカメラから収集されたカメラデータに少なくとも部分的に基づいて前記視聴者の反応を判定することをさらに含む、請求項に記載のシステム。
【請求項7】
コンピュータにより実装されたデプロイメントプロセスを介して1つまたは複数のコンピュータメモリに1つまたは複数のモジュールを組み込むことを含む方法であって、前記1つまたは複数のモジュールは、ビデオセッションのカスタムバージョンが少なくとも1つの視聴者デバイス上での提示のために作成されることを可能にするための動作を実行するように1つまたは複数のコンピュータプロセッサを構成し、前記動作は、
ライブまたは記録されたビデオフィードから生成されたゲームメタデータを受信することであって、前記ゲームメタデータは、前記ライブまたは記録されたビデオフィードに関連する三次元モデリングデータを含む、前記ゲームメタデータを受信すること、
複数の視聴者デバイスから収集された視聴者メタデータを受信することであって、前記視聴者メタデータは、複数の視聴者デバイス上での前記ビデオセッションの提示に対する複数の視聴者の複数の応答に関する情報を含む、前記視聴者メタデータを受信すること、
前記ゲームメタデータおよび前記視聴者メタデータに基づいて追加ゲームメタデータを作成することであって、前記追加ゲームメタデータは、前記三次元モデリングデータに基づく新しいカメラアングルまたは異なるカメラアングルのうちの少なくとも一方に関連するカメラデータを含み、前記追加ゲームメタデータの作成は、撮影モジュールの自動撮影機能を呼び出すことにより実施され、前記自動撮影機能は、前記ビデオセッションの伝送に挿入される遅延の間にゲームイベントのショットの構図を自動的に設定すること、および前記提示の間にゲームイベントが発生する前に前記ショットへ自動的に遷移することを含む、前記追加ゲームメタデータを作成すること、
前記少なくとも1つの視聴者デバイス上での前記ビデオセッションのカスタムバージョンの少なくともほぼリアルタイムでの提示のために、前記追加ゲームメタデータを前記ゲームメタデータに統合すること
を含む、方法。
【請求項8】
前記追加ゲームメタデータの作成は、カメラ制御ツールを介してユーザによって実行され、前記カメラ制御ツールは、前記三次元モデリングデータによってモデル化された環境内でユーザがカメラを制御して新しいカメラを作成することを可能にする、請求項に記載の方法。
【請求項9】
前記動作は、前記ゲームメタデータに関する情報を、ユーザインタフェースの第1の領域に提示すること、および前記視聴者メタデータに関する情報を、前記ユーザインタフェースの第2の領域に提示することをさらに含む、請求項に記載の方法。
【請求項10】
前記視聴者メタデータは、視聴されているゲームレベル、視聴されているゲームオブジェクト、視聴のために使用されているカメラ、フォローされているゲームイベント、または視聴者の反応のうちの少なくとも1つに関する情報を含む、請求項に記載の方法。
【請求項11】
前記ビデオセッションは、eスポーツビデオセッションであり、前記動作は、
複数のプレーヤーデバイスから収集されたゲームデータを受信することであって、前記ゲームデータは、前記複数のプレーヤーデバイスに関連する複数のプレーヤーによって実行された複数のアクションを表し、前記複数のアクションの各々は、前記ビデオセッションにおいてプレイされているゲームの環境の態様を変化させる前記複数のプレーヤーによって実行されたアクションである、前記ゲームデータを受信すること、
ゲームサーバへの伝送のために前記ゲームデータを前記ゲームメタデータと同期させること
をさらに含む、請求項に記載の方法。
【請求項12】
前記動作は、前記視聴者を指すカメラから収集されたカメラデータに少なくとも部分的に基づいて前記視聴者の反応を判定することをさらに含む、請求項10に記載の方法。
【請求項13】
プロセッサによって実行されると、ビデオセッションのカスタムバージョンが少なくとも1つの視聴者デバイス上での提示のために作成されることを可能にするための動作をプロセッサに実行させるプロセッサ実行可能命令を格納する非一時的マシン可読媒体であって、前記動作は、
ライブまたは記録されたビデオフィードから生成されたゲームメタデータを受信することであって、前記ゲームメタデータは、前記ライブまたは記録されたビデオフィードに関連する三次元モデリングデータを含む、前記ゲームメタデータを受信すること、
複数の視聴者デバイスから収集された視聴者メタデータを受信することであって、前記視聴者メタデータは、複数の視聴者デバイス上での前記ビデオセッションの提示に対する複数の視聴者の複数の応答に関する情報を含む、前記視聴者メタデータを受信すること、
前記ゲームメタデータおよび前記視聴者メタデータに基づいて追加ゲームメタデータを作成することであって、前記追加ゲームメタデータは、前記三次元モデリングデータに基づく新しいカメラアングルまたは異なるカメラアングルのうちの少なくとも一方に関連するカメラデータを含み、前記追加ゲームメタデータの作成は、撮影モジュールの自動撮影機能を呼び出すことにより実施され、前記自動撮影機能は、前記ビデオセッションの伝送に挿入される遅延の間にゲームイベントのショットの構図を自動的に設定すること、および前記提示の間にゲームイベントが発生する前に前記ショットへ自動的に遷移することを含む、前記追加ゲームメタデータを作成すること、
前記少なくとも1つの視聴者デバイス上での前記ビデオセッションのカスタムバージョンの少なくともほぼリアルタイムでの提示のために、前記追加ゲームメタデータを前記ゲームメタデータに統合すること
を含む、非一時的マシン可読媒体。
【請求項14】
前記追加ゲームメタデータの作成は、カメラ制御ツールを介してユーザによって実行され、前記カメラ制御ツールは、前記三次元モデリングデータによってモデル化された環境内でユーザがカメラを制御して新しいカメラを作成することを可能にする、請求項13に記載の非一時的マシン可読媒体。
【請求項15】
前記動作は、前記ゲームメタデータに関する情報を、ユーザインタフェースの第1の領域に提示すること、および前記視聴者メタデータに関する情報を、前記ユーザインタフェースの第2の領域に提示することをさらに含む、請求項14に記載の非一時的マシン可読媒体。
【請求項16】
前記視聴者メタデータは、視聴されているゲームレベル、視聴されているゲームオブジェクト、視聴のために使用されているカメラ、フォローされているゲームイベント、または視聴者の反応のうちの少なくとも1つに関する情報を含む、請求項13に記載の非一時的マシン可読媒体。
【請求項17】
前記ビデオセッションは、eスポーツビデオセッションであり、前記動作は、
複数のプレーヤーデバイスから収集されたゲームデータを受信することであって、前記ゲームデータは、前記複数のプレーヤーデバイスに関連する複数のプレーヤーによって実行された複数のアクションを表し、前記複数のアクションの各々は、前記ビデオセッションにおいてプレイされているゲームの環境の態様を変化させる前記複数のプレーヤーによって実行されたアクションである、前記ゲームデータを受信すること、
ゲームサーバへの伝送のために前記ゲームデータを前記ゲームメタデータと同期させること
をさらに含む、請求項13に記載の非一時的マシン可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施形態は、概してマルチプレーヤーコンピュータゲームに関し、より具体的には、3Dコンテンツを作成、放送、および視聴するためのシステムおよび方法に関する。
【背景技術】
【0002】
ビデオゲームプレーヤーがオンラインマルチプレーヤーゲームをリアルタイムでプレイすることを可能にするための様々なツールが存在し、それによってネットワーク上に分布する複数のビデオゲームプレーヤーが同じビデオゲーム内で同時に交流する。さらに、プレイしていないユーザがゲームを視聴したり、ゲームの表示を解説とともに放送したりするために存在するツールがある。これらのプレイしていないユーザは、「ホスト」または「キャスター」と呼ばれ、彼らの放送はゲームのキャスティングである。多くのサードパーティが、Twitch(登録商標)やYouTube(登録商標)などのウェブサイトを介して、キャストされたゲームにチャンネルを合わせて視聴することが可能である。
【0003】
サードパーティの視聴者にとって残念なことに、放送の映像品質は、カメラの安定性、ショットの構図、カメラのカットなどの点でしばしば非常に劣悪である。キャスターは大抵、撮影の訓練を受けておらず、ゲームのアクションをキャプチャするために自由に使えるツールは非常に限られている。最も人気のあるツールは、コンピュータのマウスで制御されるカメラであるが、このツールはしばしば途切れた映像を提供する。さらに多くの場合、キャスターは表示の制御を全く持たず、プレーヤーのカメラ(例えば、任意の瞬間にプレーヤーによって使用されるカメラビュー)を使用してキャストを作成しなければならず、これは視聴し難い。ゲームから直接(例えばキャスターなしで)アクションを見ている視聴者は、プレーヤーのカメラのうちの1つから見る以外の選択肢がない。さらに、従来的なゲーム放送のもう一つの欠点は、その出力が、撮影を制御したり、「視聴数」、「いいね」、およびコメントを超えて意味のある視聴者フィードバックを提供したりする能力を持たない標準的なビデオプレーヤーで視聴可能な標準的なビデオストリームであることである。
【図面の簡単な説明】
【0004】
添付の図面の様々なものは、本開示の例示的な実施形態を単に示すものであり、その範囲を限定すると見なすことはできない。本開示のさらなる特徴および利点は、添付の図面と併せて、以下の詳細な説明から明らかになるであろう。
図1】一実施形態による、eスポーツデバイスおよび関連する周辺機器を含むeスポーツシステムの一例のコンポーネント図である。
図2A】一実施形態による、オンラインマルチプレーヤーコンピュータゲーム(例えば、eスポーツゲーム)が提供される例示的なネットワークにおけるeスポーツシステムを示す図である。
図2B】一実施形態による、実世界のイベントのブロードキャストが提供される例示的なネットワークにおけるeスポーツシステムを示す図である。
図3A】一実施形態による、ビデオ共有サイトを介した視聴者への配信および提示のためのeスポーツゲームの高精細放送コンテンツを作成するための例示的な方法を示す図である。
図3B】一実施形態による、ビデオ共有サイトを介した視聴者への配信および提示のためのeスポーツゲームの高精細放送コンテンツを作成するための例示的な方法を示す図である。
図3C】一実施形態による、eスポーツイベントの高精細放送コンテンツのための撮影を表示および制御するための例示的な方法を示す図である。
図3D】一実施形態による、eスポーツイベントの高精細放送コンテンツのための撮影を表示および制御するための例示的な方法を示す図である。
図4】一実施形態による、本明細書で説明される様々なハードウェアアーキテクチャと併せて使用され得る例示的なソフトウェアアーキテクチャを示すブロック図である。
図5】一実施形態に従って、マシン可読媒体(例えば、マシン可読記憶媒体)から命令を読み取り、本明細書で論じる方法の任意の1つまたは複数を実行することができる、例示的な実施形態によるマシンの構成要素を示すブロック図である。
【発明を実施するための形態】
【0005】
本明細書で提供される見出しは単に便宜上のものであり、使用される用語の範囲または意味に必ずしも影響を与えるわけではない。図中の類似の番号は類似の構成要素を示す。
以下の説明は、本開示の例示的な実施形態を具体化するシステム、方法、技術、命令シーケンス、および計算機プログラム製品を含む。以下の説明では、説明の目的で、本発明の主題の様々な実施形態の理解を促すために、多数の具体的な詳細が述べられている。しかしながら、本発明の主題の実施形態がこれらの具体的な詳細なしで実施されてもよいことは当業者には明らかであろう。一般に、よく知られている命令インスタンス、プロトコル、構造、および技術は必ずしも詳細に示されていない。
【0006】
本明細書に記載のシステムおよび方法は、リアルタイムで(または少なくともほぼリアルタイムで)ゲーム環境から映像品質の高いビデオ出力を生成する手段を提供し、ビデオ出力は、視聴体験を豊かにするために視聴者によって使用され得るメタデータを含む。さらに、本明細書で提供されるシステムおよび方法は、視聴者にゲーム放送を表示し、メタデータを操作することを可能にするツールを提供し、視聴者からデータを収集してリアルタイムでゲームおよびゲームキャスターにフィードバックを提供するように構成されたプレーヤーコンポーネントを記述する。
【0007】
本明細書に記載のシステムおよび方法により、キャスターは、オーディオ、ビデオ、およびゲームのメタデータを活用して高い映像品質を提供し、視聴体験を豊かにするゲーム放送を、ゲーム環境からリアルタイムで作成することができる。さらに、本明細書で提供されるシステムおよび方法は、視聴者にゲーム放送を表示し、視聴者がメタデータを操作することを可能にする視聴者ツールを提供し、視聴者からデータを収集してゲームおよびゲームキャスターにリアルタイムでフィードバックを提供するように構成された視聴モジュールを記述する。別の実施形態によれば、視聴モジュールは、以前に記録されたゲームまたは以前に記録されたゲームの放送を表示し、メタデータを操作することを可能にするツールを視聴者に提供し、視聴者からデータを収集してゲームに対してフィードバックを提供するように構成されている。別の実施形態によれば、視聴モジュールは、(例えば3D環境データから)3D環境を表示し、メタデータおよび3D環境を操作することを可能にするツールを視聴者に提供し、視聴者からデータを収集して、3D環境データのジェネレータに対してフィードバックを提供するように構成されている。3D環境データは、ライブ3Dモデルデータ、実世界環境のライブ3Dレンダリング(例えばライブ3D写真測量)、予め記録された3Dモデルデータ、および現実世界環境の予め記録された3Dレンダリング(例えば記録3D写真測量)を含むことができる。本明細書の説明全体を通して、eスポーツという用語は、一般に、リアルタイムで生成されたネットワーク化されたマルチプレーヤーゲームのためのデータを含む3Dコンテンツを指し、これにより、ネットワーク上に分布する複数のビデオゲームプレーヤーが同時に同じビデオゲーム内で交流し(例えば、アマチュアオンラインゲーミングおよび競技プロフェッショナルオンラインゲーミング)、そしてこの用語は3D環境データを含む。
【0008】
図1は、例示的なeスポーツデバイス102および関連する周辺機器のコンポーネント図である。例示の実施形態では、eスポーツデバイス102は、ユーザ110によって操作されるコンピューティングデバイスである。ユーザ110は、オンラインマルチプレーヤーゲーム(例えば、eスポーツゲーム)のプレーヤー、またはeスポーツゲームに関連する様々な放送機能を提供する放送キャスター(または単に「キャスター」)、または放送のサードパーティの視聴者であり得る。eスポーツデバイス102は、1つまたは複数のディスプレイデバイス104(例えば、従来のコンピュータモニタ、VRウェアラブルデバイスなど)および1つまたは複数の入力デバイス106(例えば、キーボード、マウス、ハンドヘルドまたはウェアラブルポインティングデバイス、カメラデバイス、モーション追跡デバイスなど)を含む。eスポーツデバイス102は、メモリ120、1つまたは複数の中央処理装置(CPU)122、1つまたは複数のグラフィック処理装置(GPU)124、および1つまたは複数のネットワークアダプタ126(例えば、eスポーツゲームに使用されるネットワーク接続を提供する有線または無線ネットワークアダプタ)も含む。
【0009】
例示的実施形態では、eスポーツデバイス102は、eスポーツゲームをユーザ110に提示するゲームエンジン130(例えば、CPU122またはGPU124によって実行される)を含む。ゲームエンジン130は、本明細書で説明されるようにeスポーツゲームのための様々な放送機能を提供するeスポーツモジュール140を含む。eスポーツモジュール140は、ライブゲームモジュール142、キャスティングモジュール144、視聴モジュール146、および撮影モジュール148を含み、これらの各々は、ゲームエンジン130内で、またはそうでなければゲームエンジン130と通信して実装される。ライブゲームモジュール142、キャスティングモジュール144、視聴モジュール146、および撮影モジュール148の各々、ならびにゲームエンジン130は、動作中、CPU122またはGPU124によって実行される、メモリ120内に存在するコンピュータ実行可能命令を含む。ゲームエンジン130は、ディスプレイデバイス104と通信し、さらに入力デバイス106などの他のハードウェアと通信する。ライブゲームモジュール142、キャスティングモジュール144、視聴モジュール146、および撮影モジュール148、あるいはeスポーツモジュール140全体は、ゲームエンジン130内に直接統合されてもよく、または外部のソフトウェアとして実装されてもよい(例えば、プラグイン、または他の独立したソフトウェア)。さらに、図1では、ライブゲームモジュール142、キャスティングモジュール144、視聴モジュール146、および撮影モジュール148は別個のモジュールとして示されているが、実際にはこれらのモジュールは任意の方法で組み合わせることができ、個別のコードモジュールとして実装されるのではなく、ゲームモジュールのためのコード内で直接統合されてもよい。
【0010】
例示的実施形態では、ライブゲームモジュール142は、ユーザ110が、ライブまたは記録されたオンラインビデオゲームセッション(または単に「eスポーツセッション」)および3D環境データ(例えば、リアルタイムの写真測量法を用いた実際に記録されたフットボールゲーム)を有するライブまたは記録された実世界セッションまたはイベントを視聴し、参加することを可能にする一連のツールを1または複数のユーザ110に提供し、これは、本明細書に記載されるようなeスポーツシステムのための機能を提供する。一実施形態によれば、キャスティングモジュール144は、本明細書で説明されるようなeスポーツシステムに従って、ユーザ110がオンラインeスポーツセッション(または記録されたeスポーツセッション)の態様を記録および放送(例えばメタデータを含む)することを可能にするツールのセットを提供する。ユーザ110(例えばキャスター)は、eスポーツゲームに完全に参加しているか、またはeスポーツゲームの視聴者であり得る。メタデータは、本明細書で説明するようにユーザ110に機能を提供するためにライブゲームモジュール142および視聴モジュール146によって使用されることができるデータを含む。キャスティングモジュール144は、ユーザが高度なカメラ技術を使用して1つまたは複数のカメラを制御することを可能にするために、ユーザ110に撮影ツールを(例えば、撮影モジュール148を使用して)提供し得る。
【0011】
一実施形態によれば、視聴モジュール146は、(例えば、キャスティングモジュール144、視聴モジュール146、撮影モジュール148、またはライブゲームモジュール142を使用して)他のユーザ110によって作成されたセッションからのデータおよびビデオを含む、オンラインeスポーツセッション(または記録されたeスポーツセッション)からのゲームデータを表示および操作するため、および視聴中にユーザ110から(例えば、視聴されているゲームレベル、視聴されているゲームオブジェクト、視聴のために用いられているカメラ、フォローされているイベント、特定のカメラおよび特定のカメラアングルからの視聴期間、視聴されているプレーヤー、視聴されているバトル、ショットの構図、マウスポジションなどの、ユーザのアクションまたは行動に関するリアルタイムデータを含む)視聴者メタデータを収集するためのツールをユーザ110に提供する。この視聴者データから、eスポーツモジュールは、視聴者がどのカメラを好むか、彼らがどの程度早くカメラを切り替えるか、ゲームの開始とゲームの終了に対しどのアングルを好むか、および任意の所与のシナリオが発生したときにどのアングルを好むかを決定することができる。収集された視聴者データは、本明細書では「視聴者メタデータ」と呼ばれることがある。いくつかの実施形態において、視聴モジュール146は、カメラデバイス(別個に図示されていない)を利用して、ユーザ110(例えば、放送コンテンツの視聴者)のビデオフィードをキャプチャし、ゲームプレイ中のユーザ110の目の動きおよび頭の動きを追跡して(例えば、視聴者が任意の所与の時間に自分の目の焦点を合わせている場所を近似する)、ビデオフィードおよび/または追跡された目の動きデータを視聴者メタデータに追加するようにする。いくつかの実施形態によれば、追跡された目の動きまたは頭の動きは、eスポーツセッション内でカメラを制御するために使用されて、ユーザが頭(または目)の動きでカメラの動きを直接制御することを可能とする仮想現実ヘッドマウントディスプレイデバイスまたは拡張現実ヘッドマウントディスプレイデバイスと同様の頭部追跡カメラモードを有効にすることができる。いくつかの実施形態において、視聴モジュール146は、視聴者のビデオフィードを分析して、ゲームプレイ中の視聴者の表情を判定することができる。そのような視聴者メタデータは、eスポーツセッションにおいてプレーヤーによって使用されるeスポーツデバイス102に送り返されてもよく、プレーヤーに視聴者について知らせるために(例えば、プレーヤーに、視聴者の30%が彼の戦いを見ていること、または、視聴者がプレーヤー「X」を最も見ていること、または、視聴者がドローンカメラから戦いを見ることを好むこと、または、視聴者が平均時間間隔「Y」秒でカメラビューを切り替えることを知らせるために)、または、ユーザが特定の反応(例えば、驚き、恐怖、娯楽、悲しみなど)を示したことを知らせるために、プレーヤーに提示されてもよい。いくつかの実施形態では、視聴者メタデータは、ネットワークを介して中央リポジトリ(例えば、図において別個に示されていないデータベース)に、格納および(例えば、広告主および開発者による)後の使用のために送信され得る。いくつかの実施形態では、視聴モジュール146は、視聴者メタデータ、ゲームデータ、およびカメラメタデータをキャプチャ、記録、およびタイムスタンプすることができる。一実施形態によれば、タイムスタンプ付き視聴者メタデータは、タイムスタンプ付きゲームデータおよびカメラメタデータとアラインされる。タイムスタンプ付きデータは、開発者または広告主によって、任意の所与のレスポンス(例えば、「Xレスポンスの両側の1秒間にメタデータストリームに何があったか?」などのクエリが、タイムスタンプ付きデータを含むデータベースに送られることがあり、ここで「X」は測定可能な視聴者の反応を表す)、および特定のゲームイベント、カメライベント、およびキャスターアクションに対する視聴者の反応に対するキャプチャウィンドウを定義することを含むデータ間の関係を決定するために後に使用され得る。
【0012】
一実施形態によれば、撮影モジュール148は、ライブゲームモジュール142、キャスティングモジュール144、および視聴モジュール146に、オンラインeスポーツセッションを表示および記録するための一組の撮影ツールを提供する。撮影モジュール148がどのようにツールを提供するかについての詳細は、本明細書においてeスポーツシステムの説明と共に提供される。一実施形態によれば、撮影ツールは、ゲーム環境において仮想カメラを作成し、位置決めし、配向し、およびそのプロパティを変更するためのツールを含む。ツールは、ユーザが撮影モジュール148によって実施される撮影機能を制御するためのグラフィカルユーザインタフェース、撮影機能の一部または全部を自動化して実行するための自動撮影ツール、および(例えばアプリケーションインタフェースまたはAPIを介した)撮影機能のセット、並びに撮影メタデータを作成してデバイス出力に埋め込むためのツールを含み得る。一実施形態によれば、撮影ツールは、ユーザが(例えばジョイスティックまたはマウスを介して)カメラを直接動かすことなく所望のショットを可能にする高レベルのメカニズムで機能する。メカニズムは、手続き型構成、ショット評価、衝突回避、および動的フォロー動作が含まれる。
【0013】
図2Aは、オンラインマルチプレーヤーコンピュータゲーム(例えば、eスポーツゲーム)が提供される例示的ネットワーク280におけるeスポーツシステム200を示す。例示的実施形態では、eスポーツシステム200は、キャスティングデバイス210、2つのプレーヤーデバイス220A、220B(集合的にはプレーヤーデバイス220)、視聴者デバイス230、ビデオ共有サイト240、オンラインゲームサーバ250、およびオンラインレンダリングサービス260を含み、各々が共有ネットワーク280(例えばインターネット)で通信している。ネットワーク280は、有線および無線ネットワークを含む。キャスティングデバイス210、プレーヤーデバイス220、および視聴者デバイス230は、eスポーツデバイス102と同様であってもよい。ゲームプレーヤー、キャスター、および視聴者の数は変化し得る。オンラインゲームサーバ250は、ゲームエンジン130と同様であり得るが、ゲームサーバ機能を提供するために特に構成されたサーバゲームモジュール(図では別個に示されていない)を含む。オンラインレンダリングサービス260は、クラウドレンダリングまたはレンダリングファームとしても知られるグラフィックレンダリングサービスを提供するインターネットベースのサービスであってもよい。
【0014】
例示的実施形態では、eスポーツセッションがオンラインビデオゲームである場合、オンラインゲームは、オンラインゲーム用のクライアントーサーバ方法を使用してセットアップされてもよく、オンラインゲームサーバ250は、正式バージョンのゲームを実行し、クライアント(例えば、プレーヤーデバイス220上のライブゲームモジュール142)は、(例えば、ゲームエンジン130を介して)ゲームのローカルバージョンを実行する。プレーヤーデバイス220およびゲームサーバ250は、eスポーツセッション中にゲームデータを交換するネットワーク280を介して通信し、プレーヤー222A、222B(集合的にはプレーヤー222)のためのリアルタイムゲーム環境を作成する。オンラインゲームサーバ250は、プレーヤーデバイス220のライブゲームモジュール142を介してすべてのプレーヤー222からゲームデータを収集し、正式バージョンのゲームを有することができる。ライブゲームモジュール142クライアントは、ローカルバージョンのゲームを(例えば各プレーヤーデバイス上で)実行し、ゲームサーバ250からのデータ(例えば他のプレーヤー222からのゲームデータを含む)を受け入れて、正式バージョンとしてのサーバデータを使用してローカルバージョンのゲームを更新し、矛盾がある場合にサーバデータがローカルデータをオーバーライドするようにする。
【0015】
例示的実施形態では、デバイス210、220、230の主な機能を示す目的で、デバイス210、220、230の各々でアクティブであるeスポーツモジュール140のモジュールが図2Aに示されている。しかしながら、本明細書に記載されている様々なモジュールのうちの任意のものが、デバイス210、220、230のうちの任意のもの上で動作していてもよいことを理解されたい。例えば、動作中、プレーヤーデバイス220A、220Bは、eスポーツゲームをプレイしている間、プレーヤー222A、222Bによってそれぞれ操作され、ライブゲームモジュール142は、(例えば、オンラインゲームサーバ250と通信し、プレーヤー222にゲーム環境を提供し、およびプレーヤー222がゲームと対話することを可能とするために)各デバイス上でアクティブである。キャスター212は、キャスティングデバイス210を操作して(例えば様々な視聴者232、242に)eスポーツゲーム用の放送コンテンツを提供し、キャスティングモジュール144、視聴モジュール146、および撮影モジュール148は、キャスティングデバイス210上でアクティブである。キャスティングモジュール144、視聴モジュール146、および撮影モジュール148は、放送コンテンツを作成するためのツールをキャスターに提供するためにアクティブである。視聴者232は、視聴者デバイス230を操作して、視聴者デバイス230上でアクティブな視聴モジュール146および撮影モジュール148を介してキャスター212によって生成された放送コンテンツを消費する。視聴モジュール146および撮影モジュール148は、視聴者232にゲームのビューおよびカメラの何らかの映像制御を提供するために専らアクティブである。これは、ビデオ共有サイト240から見ている視聴者242と同様である。
【0016】
例示的実施形態では、(例えばキャスティングデバイス210を介して)キャスター212によって提供された放送コンテンツは、様々なビデオ共有サイト240を介して視聴者242に提示され得る。ビデオ共有サイト240は、YouTube(登録商標)、Twitch(登録商標)、または他のそのようなビデオ共有ウェブサイトなどのオンラインコンテンツプロバイダを含み得る。図2Aに示されるように、ビデオ共有サイト240は、放送コンテンツおよび他の機能を視聴者242に対して提示するために使用され得る、視聴モジュール146もしくは撮影モジュール148などのeスポーツモジュール140またはeスポーツモジュール140の構成要素も含み得る。例えば、撮影モジュール148は、eスポーツゲームの視聴を制御するための撮影ツールを視聴者242に提供するために、(例えばプラグインとして)ビデオ共有サイト240内に実装され得る。いくつかの実施形態では、表示されるべきビデオコンテンツ内にゲームメタデータが存在する場合、視聴ツールおよび撮影ツールは、ビデオ共有サイト240のユーザインタフェースにおいてのみ可視である。撮影モジュール148は、ゲームメタデータを使用して撮影機能を実行する。一実施形態によれば、ビデオ共有サイト240上のeスポーツモジュール140内の視聴モジュール146は、ユーザのデバイス上でローカルにレンダリングすることの一部または全部を実行することができる。別の実施形態によれば、ユーザの映像視聴選択は、遠隔で(例えばクラウドレンダリングサービスにおいて)そして必要に応じて(例えばオンザフライで)レンダリングされ、レンダリングされたビデオは、ビデオ共有サイト240を介してユーザに送信される。さらに別の実施形態によれば、eスポーツセッション(記録された、またはライブeスポーツセッション)内で固定数の手続き型カメラがアクティブであり、各手続き型カメラからのビューがリモートで(例えば、クラウドレンダリングサービスで)レンダリングされて、レンダリングされたビデオストリームとしてビデオ共有サイト240に送信され、視聴者がレンダリングされたビデオストリームのどれを見るかを(例えば、視聴モジュール146または撮影モジュール148で)選択できるようにする。クラウドレンダリングを有する手続き型カメラを有することは、カメラを制御しながらでも、レンダリング能力の低いデバイス(例えば、携帯電話または古いコンピュータ)が高いレンダリング品質を見ることを可能にする。
【0017】
図2Bは、実世界のイベント(例えば、ライブまたは記録されたスポーツイベント、またはライブまたは記録された非スポーツイベント)が提供される例示的なネットワーク280におけるeスポーツシステム200を示す。例示的実施形態では、eスポーツシステム200は、キャスティングデバイス210、2つの視聴者デバイス230A、230B(集合的には視聴者デバイス230)、オンラインゲームサーバ250、およびデータベース290を含み、各々が共有ネットワーク280(例えばインターネット)で通信している。eスポーツシステム200は、現実世界のイベント254からの3Dデータおよびビデオを提供する外部3Dビデオ記録システム252に接続されている。キャスティングデバイス210、および視聴者デバイス230は、eスポーツデバイス102と同様であってもよい。キャスター210および視聴者(232、242)の数は変化し得る。オンラインゲームサーバ250は、ゲームエンジン130と同様であり得るが、ライブまたは記録されたイベントから3Dデータを放送するなどのゲームサーバ機能を提供するために特に構成されたサーバゲームモジュール(図では別個に示されていない)を含む。3Dビデオ記録システム252は、オンラインゲームサーバ250を介して視聴者およびキャスター210に放送されるべき実世界のイベント254から3D環境データを生成するように構成されている。3Dビデオ記録システム252は、後で再放送するためにデータベース290に3D環境データを記録するようにも構成されている。3Dビデオ記録システム252は、3D環境データを様々な方法で生成することができ、例えば、システム252は、1つまたは複数の特殊なカメラを使用して環境からの3Dデータを直接記録するか、または複数の標準的なビデオカメラを使用して異なるアングルからイベント254を記録し、次いで複数のビデオストリームから3Dデータを生成する方法を使用できる。
【0018】
例示的実施形態では、デバイス210、230、240の主な機能を示す目的で、デバイス210、230、240の各々でアクティブであるeスポーツモジュール140のモジュールが図2Bに示されている。しかしながら、本明細書に記載されている様々なモジュールのうちの任意のものが、デバイス210、230、240のうちの任意のもの上で動作していてもよいことを理解されたい。例えば、動作中、キャスター212は、キャスティングデバイス210を操作して(例えば様々な視聴者232、242に)eスポーツセッション用の放送コンテンツを提供し、キャスティングモジュール144、視聴モジュール146、および撮影モジュール148は、キャスティングデバイス210上でアクティブである。キャスティングモジュール144、視聴モジュール146、および撮影モジュール148は、放送コンテンツを作成するためのツールをキャスターに提供するためにアクティブである。視聴者232は、視聴者デバイス230を操作して、キャスター212によって生成された、オンラインサーバ250から直接の放送コンテンツを消費し、視聴モジュール146および撮影モジュール148はアクティブである。視聴モジュール146および撮影モジュール148は、視聴者232に現実世界のイベント254のビューおよびカメラの何らかの映像制御を提供するために専らアクティブである。これは、ビデオ共有サイト240から見ている視聴者242と同様である。
【0019】
図3Aおよび3Bは、ビデオ共有サイト240を介した視聴者242、および視聴者デバイス230上の視聴者232に配信し提示するためのeスポーツゲームの高品質放送コンテンツを作成するための例示的な方法を示す。例示的な実施形態では、方法300は、図2Aおよび図2Bに示されているネットワーク化された環境内のeスポーツシステム200によって実行される。方法300は、プレーヤー222が、それぞれのプレーヤーデバイス220のライブゲームモジュール142を使用してオンラインゲームをアクティブにプレイするときに実行される。動作310において、ライブゲームモジュール142は、ユーザ入力デバイス106からの(例えば、ジョイスティック、キーボード、マウス、ヘッドマウントディスプレイ、ハンドトラッキングデバイスなどからの)ユーザ入力を記録してゲームサーバ250に送信する。ゲームサーバ250は、すべてのプレーヤー222から受信したゲームデータを使用して正式バージョンのゲームを構築し、次にこの正式なゲームからのゲームデータをすべてのユーザデバイス220に配布し戻す。ライブゲームモジュール142は、クライアントとサーバとの間の通信で発生するネットワークレイテンシの影響を低減するために、ゲームコードをローカルで実行してクライアント側での予測を実行する。ライブゲームモジュール142は、また、ゲームコードを実行して、サーバ250からのゲームデータ(例えば、他のリモートプレーヤーデバイス220からの、およびサーバ250上の正式なゲームからのゲームデータ)を、ローカルゲームデータと統合し、組み合わせデータをディスプレイデバイス104に表示する。ライブゲームモジュール142は、ゲームサーバ250から視聴者メタデータを受信もし、このデータをプレーヤー222へ表示する。
【0020】
動作312において、例示的実施形態では、キャスティングデバイス210上のキャスティングモジュール144は、ゲームサーバ250からゲームデータ(すべてのゲームメタデータおよび視聴者メタデータを含む)を受信する。キャスティングモジュール144は、動作312においてゲームデータ(ゲームメタデータを含む)および視聴者メタデータを受信し、動作314においてオンラインゲームサーバ250からのゲームデータを使用してローカルバージョンのゲームを作成してキャスター212に表示する。キャスティングモジュール144は、ゲームデータを使用して、作動中のゲーム全体の環境を作成し提示する。キャスティングモジュール144は、ユーザインタフェースを介してキャスティングカメラ制御ツールを表示して(例えば、撮影モジュール148を介して)バーチャル撮影者を制御してカメラショットを作成し指示する。撮影モジュール148およびキャスティングモジュール144は、ゲームメタデータを使用してカメラ制御ツールを作成して追加する。さらに、視聴者メタデータは、キャスター212および他のプレーヤー222に表示され視聴者232、242についてのフィードバックを与える。キャスティングモジュール144は、グラフィカルユーザインタフェース(GUI)を介してキャスター212にキャスティングツールを表示する。キャスティングツールは、キャスター212がゲーム環境内でカメラを制御し、ネットワーク280を介してeスポーツセッションのカスタムバージョン(例えばキャスターからのカメラ制御データを含む)を作成(例えば記録)、送信(例えばブロードキャスト)することを可能にする。ツールは、キャスター212が、例えば、任意の既存のゲームカメラからeスポーツセッションを見ること、ゲーム内に新たなカメラを作成して任意の位置からeスポーツセッションを見ること、およびカメラを制御するのを助けるために撮影モジュール148を従事させることを可能にするユーザインタフェース(UI)要素を含む。カメラ位置およびスクリーン構成は、撮影モジュール148によって完全にまたは部分的に制御することができる。本明細書の説明全体を通して、用語「構図」および「構成」は、スクリーンショット(例えば、eスポーツゲームまたは3Dシーンのビデオショット)内の視覚要素の配置または配列を指す。キャスティングモジュール144は、eスポーツセッションの高品質ビデオを作成するために、ゲームメタデータおよび撮影モジュール148を使用してゲーム内のカメラを制御する。撮影モジュール148は、自動合成を用いて、キャスターからの指示を使用してゲームアクションのショットを構成する。撮影モジュール148によって使用される自動構成は、規則に基づくものとすることができ(例えば、撮影構成規則を使用して)、人工知能によって制御することができる。一実施形態によれば、各ゲームは、各キャラクターおよびシナリオに利用可能な角度およびショットの種類を定義するデータおよび命令を有することになる(例えば、データおよび命令は、ゲーム作成時にゲーム開発者によって決定され得る)。プレイに際し、キャスターは、クローズアップ、ワイド、ドローンショット、セキュリティーカメラ、フォローカメラなどの利用可能な異なるショットスタイル、およびキャラクターA、キルショット、レベルアップ、スプリントなどの異なる被写体やイベントから選択することが可能となる。キャスターは、撮影モジュール148によって実行されるカメラの種類および被写体/イベントの迅速な選択のためにキャスティングデバイス210を使用して、任意の状況において良好なショットを生み出す。動作316において、キャスティングモジュール144は、eスポーツセッションビデオについてのキャスターからのリアルタイムのオーディオおよびビデオ解説を記録もする。動作318において、キャスティングモジュール144は、キャスターからのリアルタイムのオーディオおよびビデオ解説とともに、各瞬間におけるすべての記録カメラの位置およびプロパティ(以下、カメラメタデータと呼ぶ)を含むセッションのための出力を生成し、これはゲームデータを含む。いくつかの実施形態では、キャスティングモジュールの出力は、各フレームについてのカメラの位置および向きならびにレンズ設定のすべてを含み得る。いくつかの実施形態では、より高いレベルのカメラコマンドが送信されてもよい(例えば、「プレーヤーXのショットをクローズアップ」、「プレーヤーYのワイドショット」)。そのため、撮影モジュール148は、より高レベルのコマンドを処理するために利用されてもよい。いくつかの実施形態では、オンラインレンダリングサービス260は、より高レベルのコマンドを処理するなどのために撮影モジュール148を含むことができる。いくつかの実施形態において、オンラインゲームサーバ250は、ゲームデータをオンラインレンダリングサービス260に直接送信してもよく、それによってレイテンシを低減する。
【0021】
例示的実施形態では、動作320において、キャスティングモジュール144が出力をパッケージ化し、ネットワーク280を介してデータをオンラインレンダリングサービス260に送信する。動作322において、レンダリングサービス260は、ゲームデータおよびカメラメタデータを使用して、キャスター212によって選択され、撮影モジュール148によって作成された構成カメラショットを用いてゲームのキャスティングビデオ(例えば、ビデオストリーム)をレンダリングする。動作324において、レンダリングされたキャスティングビデオおよびゲームデータはビデオ共有サービス240に送信されて視聴者242に表示される。動作326において、ビデオ共有サービス240上の視聴モジュール(別個に図示されていないが、視聴モジュール146と同様であり得る)は、キャスティングビデオと共にゲームメタデータを表示し、ビデオが表示されている間に視聴者メタデータを収集する。ビデオ共有サービス240は、キャスティングビデオおよびゲームメタデータ(例えば、すべてのキャスターメタデータを含む)を受信して表示する。視聴モジュール146は、メタデータを使用して、マルチプレーヤーゲームのビデオフィードで従来利用可能ではなかった情報(例えば、ゲームバージョン、レベル、現在の画面上でアクティブなキャラクター、ミッション進行、ゲーム状態、プレイ時間、購入など)を表示する。撮影モジュール148は、メタデータを使用して、例えば現在の被写体、画面上のアニメーション、レンズタイプ(例えば、望遠、ノーマル、ワイド)、カメラアングルなどの情報を表示することができる。動作327において、視聴モジュールは、ゲームデータと視聴者メタデータとを同期させる。
【0022】
動作328において、例示的実施形態では、ビデオ共有サービス240上の視聴モジュール146は、ユーザインタフェースを介して視聴者からデータも収集し、ゲームキャスター212およびゲームプレーヤー222用のeスポーツデバイス(プレーヤーデバイス220、キャスティングデバイス210、視聴者デバイス230、およびビデオ共有サイト240上の視聴モジュール146を含む)に配信するためにそのデータ(例えば視聴者メタデータ)をリアルタイムでネットワーク280を介してオンラインゲームサーバ250に送信する。いくつかの実施形態では、オンラインゲームサーバ250は、後の処理のために視聴者メタデータを収集し格納することもできる。プレーヤーデバイス220内のライブゲームモジュール142は、視聴者メタデータを使用して、セッション中にユーザ情報を表示し、ゲームプレイに影響を及ぼすことができる。同様に、キャスティングデバイス210内のライブゲームモジュール142は、視聴者メタデータを使用して、セッション中に視聴者情報を表示し、キャスター212のeスポーツセッションの記録に影響を与えることができる。
【0023】
いくつかの実施形態では、オンラインレンダリングサービス260によって提供されるレンダリングサービスは、キャスティングデバイス210上のローカルレンダリングモジュール(別個に描かれていない)によって提供されてもよい。言い換えれば、動作320、322、および324は、ローカルレンダリングモジュールによってキャスティングデバイス210上でローカルに実行され得る。
【0024】
いくつかの実施形態において、方法300によって生成された放送コンテンツは、キャスター212によってローカルに視聴されてもよい。言い換えれば、動作324、326、327、および328は、視聴モジュール146によってキャスティングデバイス210上で局所的に実行されてもよい。このように、キャスター212は、視聴者242および232としても機能する。そのような実施形態では、キャスター212は視聴者232に類似し、キャスティングデバイス210は視聴者デバイス230に類似し、視聴者232が撮影モジュール148を用いてカメラを直接制御し、結果として生じるビデオを直接見ることができるようにする。
【0025】
いくつかの実施形態では、人間のキャスター212は、キャスティングデバイス210上で実行され、動作314および316を実行する自動バージョンの撮影モジュール148と置き換えられてもよい。言い換えれば、自動撮影モジュール148は、ゲームサーバ250からゲームデータおよび視聴者メタデータを受信する。自動撮影モジュール148は、ゲームデータおよび視聴者メタデータを使用して(例えば、キャスティングデバイス上のライブゲームモジュール142を使用して)ゲームのローカルバージョンを作成する。自動撮影モジュール148は、キャスティングビデオを作成するためにショットを選択および構成するための人工知能(例えば、機械学習およびニューラルネットワーク)を使用する人工知能(AI)制御の撮影者を含む。自動撮影モジュール148は、各瞬間における記録カメラの位置およびプロパティ(例えば、時間1に対するプロパティを有するカメラX、時間2に対するプロパティを有するカメラX、時間3に対するプロパティを有するカメラYなど)を含むセッションのための出力を生成する。キャスティングモジュール144は、カメラメタデータをゲームデータと共にパッケージ化し、ネットワークを介してそのデータをオンラインレンダリングサービス260に送信する。レンダリングサービス260は、ゲームデータおよびカメラメタデータを使用して、自動撮影モジュール148の指示に基づいてゲームのキャスティングビデオをレンダリングする。キャスティングビデオおよびゲームデータは、ビデオ共有サービス240に送信されて視聴者242に表示される。ビデオ共有サービスウェブサイト上の特別な視聴モジュールは、キャスティングビデオと共にゲームメタデータを表示し、ビデオが表示されている間に視聴者メタデータを収集する。動作328に従って、視聴者メタデータはビデオ共有サイト240上の視聴モジュール146からキャスティングデバイス210上の自動撮影モジュール148へ送信される。キャスティングデバイス210内の自動撮影モジュール148は、視聴者メタデータを使用してeスポーツセッションの記録に影響を与えることができる。
【0026】
一実施形態によれば、自動撮影モジュール148がゲームサーバ250からゲームデータを受信すると、自動撮影モジュール148は(例えばレンダリングサービス260への)出力を遅延させる。遅延は、任意の時間の量であり得るが、通常の遅延は2秒または3秒である。遅延の結果として、任意の視聴者(例えば、キャスティングデバイス210を介したキャスター212、ビデオ共有サイト240を介した視聴者242、および視聴者デバイス230を介した視聴者232)が、ゲームビデオのわずかに遅延されたバージョンを見る一方で、自動撮影モジュール148は、ゲームサーバ250からのリアルタイムデータを有する。これにより、カメラは(自動撮影者モジュール148を介して)遅延の量について「未来を見通す」ことができる。遅延の間、自動撮影者モジュール148は、イベント(例えば、爆発、プレーヤーの死亡、待ち伏せ、プレーヤーに向けて発射されたショットなど)についてのゲームデータを検索し、(例えば、位置決めおよび構図によって)1つまたは複数のカメラをゲーム環境に配置し、任意の発見されたイベントをカバーし、次に、イベントが発生する前に(例えば、視聴者/キャスターによって見られる前に)そのイベントのカメラショットへ遷移し、従って、視聴者の視点から今まさに発生しようとしているイベントの適切に配置かつ構成されたショットを作成する。視聴者/キャスターの視点からみると、カメラは常にイベントのアクションの直前に到着し、イベントを取り巻くアクションの良好な視野を視聴者に提供する。
【0027】
この遅延により、ゲーム開発者は、彼らのゲーム内で任意の重要なゲームイベント(例えば、ゲーム作成中に開発者によって重要であると定義されたイベント、および実行時に人工知能によって重要であると決定されたイベント)を優先することが可能となる。遅延は、人工知能またはライブイベント放送局が特定のアクションが重要であると決定し、かつタグ付けすることを可能にするので、ライブの実世界イベント(例えば、フットボールの試合、ホッケーの試合、サッカーの試合、スポーツ以外のライブの実世界イベントを含む)を視聴する場合にも有用である。それは、視聴者232、242またはキャスター212が、自動撮影モジュール148がゲームイベントおよびアクションを検索し、それに従って撮影方法を調整するか、またはゲームイベントおよびアクションを無視するかを選択することを可能にする。言い換えれば、自動撮影モジュール148は、「遅延モード」を有することができ、それにより、遅延モードをオンにすることは、モジュール148に、ゲームイベントおよびアクションに従ってゲームを撮影させ(例えば、カメラの配置、構図、およびカット)、表示させる。例えば、ゲーム中またはライブの実世界イベント中に、視聴者232、242またはキャスター212は、デフォルトの撮影に対し彼らの好ましいカメラタイプ(例えば、「プレーヤー#3をクローズアップ」)を選択することができ、自動撮影モジュール148は、優先度の高いイベントまたはアクションが発生した場合、このデフォルトのカメラタイプから切り離す。あるいは、遅延モードをオフにすることは、ゲームを撮影している間、モジュール148にイベントおよびアクションを無視させるであろう。eスポーツの視聴に関する最大の問題の1つは、どのようにすべての視聴者にゲームを最適に提示するかであるため、遅延は有用である。
【0028】
図3Cおよび図3Dは、視聴者デバイス230上でのライブeスポーツイベント(例えば、フットボールの試合)の高品質放送コンテンツの映像視聴を制御するための例示的な方法を示す。例示の実施形態では、方法380は、図2Bに示されているネットワーク化された環境内のeスポーツシステム200によって実行される。動作340において、eスポーツシステム200は、外部の3Dビデオ記録システム252からゲームデータ(3Dデータおよびビデオを含む)を受信し、ゲームデータは、実世界のイベント254の記録からのものである。この実施形態では、ゲームデータという用語は、実世界のイベント254からの3Dデータおよびビデオを含む。動作342において、視聴モジュール146は、ゲームデータを受信する。動作344において、視聴モジュール146は、ゲームデータを使用して、実世界のイベントの3D表現を作成し表示する。3D表現は、高または低ポリゴン数メッシュを有することができ、高または低解像度テクスチャリングを有することができる。視聴モジュール146は、ユーザインタフェースを介して視聴者のためのカメラ制御ツールを表示する。制御ツールは、ビデオを作成するために、カメラショットを作成し指示するようにバーチャル撮影者を制御するために視聴者によって使用される。動作346において、視聴者は、ツール(例えば手続き型カメラ)を使用して、イベント254のビデオ記録のための命令を生成する。カメラ位置、カメラカット、および構図は、撮影モジュール148によって完全にまたは部分的に制御される。動作348において、視聴モジュール146は、各瞬間におけるすべての記録カメラの位置およびプロパティ(例えば、カメラデータ)を含み、かつさらに3Dデータを含む、イベントについての出力を生成する。動作350において、視聴デバイスは、ゲームデータおよびカメラデータからの3Dデータを使用して、視聴者の撮影の指示に基づいて、イベントのビデオをレンダリングする。別の実施形態によれば、視聴デバイスは、ゲームデータおよびカメラデータをパッケージ化し、レンダリングのために外部レンダリングサービスに送信する。動作352において、視聴モジュール146は、ビデオを表示し、ビデオが視聴されている間に視聴者メタデータを収集する。動作354において、視聴モジュールは、ゲームデータを視聴者メタデータと同期させる。動作356において、視聴者メタデータは、外部システム252に(例えばリアルタイムで)フィードバックされる。
【0029】
図4は、本明細書に記載の様々なハードウェアアーキテクチャと併せて使用することができる例示的なソフトウェアアーキテクチャ402を示すブロックダイアグラムである。図4は、ソフトウェアアーキテクチャの非限定的な例であり、本明細書に記載の機能を容易にするために他の多くのアーキテクチャが実装され得ることが理解されよう。ソフトウェアアーキテクチャ402は、とりわけ、プロセッサ510、メモリ530、および入力/出力(I/O)コンポーネント550を含む、図5のマシン500のようなハードウェア上で実行することができる。代表的なハードウェア層404が示されており、これは、例えば、図5のマシン500を表すことができる。代表的なハードウェア層404は、関連する実行可能な命令408を有する処理ユニット406を含む。実行可能な命令408は、本明細書で説明される方法、モジュールなどの実装形態を含む、ソフトウェアアーキテクチャ402の実行可能な命令を表す。ハードウェア層404は、実行可能な命令408も有するメモリ/ストレージ410として示されるメモリおよび/または記憶モジュールも含む。ハードウェア層404は、他のハードウェア412も含み得る。
【0030】
図4の例示的アーキテクチャでは、ソフトウェアアーキテクチャ402は、各層が特定の機能を提供する層のスタックとして概念化することができる。例えば、ソフトウェアアーキテクチャ402は、オペレーティングシステム414、ライブラリ416、フレームワークまたはミドルウェア418、アプリケーション420、およびプレゼンテーション層444などの層を含むことができる。動作上、アプリケーション420および/または層内の他のコンポーネントは、ソフトウェアスタックを介してアプリケーションプログラミングインタフェース(API)コール424を呼び出し、メッセージ426として応答を受信することができる。示された層は本質的に代表的なものであり、全てのソフトウェアアーキテクチャが全ての層を有するわけではない。例えば、いくつかのモバイルまたは特殊用途のオペレーティングシステムは、フレームワーク/ミドルウェア418を提供しないかもしれないが、他のものはそのような層を提供するかもしれない。他のソフトウェアアーキテクチャは、追加の層または異なる層を含み得る。
【0031】
オペレーティングシステム414は、ハードウェアリソースを管理し、共通のサービスを提供することができる。オペレーティングシステム414は、例えば、カーネル428、サービス430、およびドライバ432を含み得る。カーネル428は、ハードウェア層と他のソフトウェア層との間の抽象化層として機能することができる。例えば、カーネル428は、メモリ管理、プロセッサ管理(例えば、スケジューリング)、コンポーネント管理、ネットワーキング、セキュリティ設定などを担当してもよい。サービス430は、他のソフトウェア層に他の共通サービスを提供することができる。ドライバ432は、基礎となるハードウェアを制御またはインタフェースすることを担当し得る。例えば、ドライバ432は、ハードウェア構成に応じて、ディスプレイドライバ、カメラドライバ、ブルートゥース(登録商標)ドライバ、フラッシュメモリドライバ、シリアル通信ドライバ(例えば、ユニバーサルシリアルバス(USB)ドライバなど)、Wi−Fi(登録商標)ドライバ、オーディオドライバ、電源管理ドライバなどを含み得る。
【0032】
ライブラリ416は、アプリケーション420および/または他のコンポーネントおよび/または層によって利用され得る共通のインフラストラクチャを提供することができる。ライブラリ416は、典型的には、他のソフトウェアモジュールが、基礎となるオペレーティングシステム414の機能(例えば、カーネル428、サービス430、および/またはドライバ432)と直接インタフェースするよりも簡単な方法でタスクを実行することを可能にする機能を提供し得る。ライブラリ416は、メモリ割り当て機能、文字列操作機能、数学的機能などの機能を提供することができるシステムライブラリ434(例えば、C標準ライブラリ)を含むことができる。さらに、ライブラリ416は、メディアライブラリ(例えば、MPEG4、H.264、MP3、AAC、AMR、JPG、およびPNGなどの様々なメディアフォーマットの提示および操作をサポートするためのライブラリ)、グラフィックライブラリ(例えば、ディスプレイ上の2Dおよび3Dグラフィックコンテンツをレンダリングするために使用できるOpenGLフレームワーク)、データベースライブラリ(例えば、様々なリレーショナルデータベース機能を提供できるSQLite)、ウェブライブラリ(例えば、ウェブブラウジング機能を提供することができるWebKit)などのAPIライブラリ436を含むことができる。ライブラリ416は、アプリケーション420および他のソフトウェアコンポーネント/モジュールに、他の多くのAPIを提供するための多種多様な他のライブラリ438も含み得る。
【0033】
フレームワーク418(ミドルウェアとも呼ばれる)は、アプリケーション420および/または他のソフトウェアコンポーネント/モジュールによって使用され得るより高いレベルの共通インフラストラクチャを提供する。例えば、フレームワーク/ミドルウェア418は、様々なグラフィックユーザインタフェース(GUI)機能、高レベルのリソース管理、高レベルの位置識別サービスなどを提供することができる。フレームワーク/ミドルウェア418は、アプリケーション420および/または他のソフトウェアコンポーネント/モジュール(それらのうちのいくつかは特定のオペレーティングシステムまたはプラットフォームに固有のもの)によって使用され得る広範囲の他のAPIを提供し得る。
【0034】
アプリケーション420は、ビルトインアプリケーション440および/またはサードパーティアプリケーション442を含む。代表的なビルトインアプリケーション440の例は、連絡先アプリケーション、ブラウザアプリケーション、ブックリーダーアプリケーション、ロケーションアプリケーション、メディアアプリケーション、メッセージングアプリケーション、および/またはゲームアプリケーションを含み得るが、それらに限定されない。サードパーティアプリケーション442は、特定のプラットフォームのベンダ以外のエンティティによるAndroid(登録商標)またはiOS(登録商標)ソフトウェア開発キット(SDK)を用いて開発されたアプリケーションを含むことができ、iOS(登録商標)、Android(登録商標)、Windows(登録商標)フォン、または他のモバイルオペレーティングシステムなどのモバイルオペレーティングシステム上で実行されるモバイルソフトウェアであり得る。サードパーティアプリケーション442は、本明細書に記載の機能を容易にするために、オペレーティングシステム414などのモバイルオペレーティングシステムによって提供されるAPIコール424を呼び出すことができる。
【0035】
アプリケーション420は、ビルトインオペレーティングシステム機能(例えば、カーネル428、サービス430、および/またはドライバ432)、ライブラリ416、またはフレームワーク/ミドルウェア418を使用して、システムのユーザと対話するためのユーザインタフェースを作成することができる。代替的に、または追加的に、いくつかのシステムでは、ユーザとの対話は、プレゼンテーション層444などのプレゼンテーション層を介して行われ得る。これらのシステムでは、アプリケーション/モジュールの「ロジック」は、ユーザと対話するアプリケーション/モジュールの態様から切り離すことが可能である。
【0036】
あるソフトウェアアーキテクチャは、仮想マシンを使用する。図4の例では、これは仮想マシン448によって示されている。仮想マシン448は、アプリケーション/モジュールがハードウェアマシン(例えば、図5のマシン500など)上で実行されているかのように実行することができるソフトウェア環境を作成する。仮想マシン448は、キャスターオペレーティングシステム(例えば、図4のオペレーティングシステム414)によってキャストされ、通常、必ずというわけではないが、仮想マシン448の動作ならびにキャスターオペレーティングシステム(例えば、オペレーティングシステム414)とのインタフェースを管理する仮想マシンモニタ446を有する。オペレーティングシステム(OS)450、ライブラリ452、フレームワーク454、アプリケーション456、および/またはプレゼンテーション層458などのソフトウェアアーキテクチャが仮想マシン448内で実行される。仮想マシン448内で実行されるソフトウェアアーキテクチャのこれらの層は、前述の対応する層と同じでもよく、または異なっていてもよい。
【0037】
図5は、マシン可読媒体(例えば、マシン可読記憶媒体)から命令を読み取り、本明細書で論じる方法の任意の1つまたは複数を実行することができる、ある例示的な実施形態によるマシン500の構成要素を示すブロック図である。具体的には、図5は、その中でマシン500に本明細書で論じられる方法のうちの任意の1つまたは複数を実行させるための命令516(例えば、ソフトウェア、プログラム、アプリケーション、アプレット、アプリ、または他の実行可能なコード)が実行され得るコンピュータシステムの例示の形態におけるマシン500の概略図を示す。このように、命令516は、本明細書に記載のモジュールまたはコンポーネントを実装するために使用され得る。命令516は、一般的なプログラムされていないマシン500を、説明された方法で説明され示された機能を実行するようにプログラムされた特定のマシン500に変換する。代替の実施形態では、マシン500は、スタンドアロンデバイスとして動作するか、または他のマシンに結合されてもよい(例えばネットワーク接続されてもよい)。ネットワーク化されたデプロイメントでは、マシン500は、サーバ−クライアントネットワーク環境ではサーバ機器またはクライアント機器のキャパシティで、またはピアツーピア(または分散)ネットワーク環境ではピア機器として動作することができる。マシン500は、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットコンピュータ、ラップトップコンピュータ、ネットブック、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、エンターテイメントメディアシステム、携帯電話、スマートフォン、モバイルデバイス、ウェアラブルデバイス(例えばスマートウォッチ)、スマートホームデバイス(例えばスマート電化製品)、その他のスマートデバイス、ウェブ電化製品、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジ、またはマシン500によってとられるべき動作を指定する命令516を順次または他の方法で実行することができる任意のマシンを含み得るが、これに限定されない。さらに、単一のマシン500のみが示されているが、「マシン」という用語は、命令516を個別にまたは共同で実行して本明細書で論じる方法のうちの任意の1つまたは複数を実行するマシンの集合も含むものと解釈されるべきである。
【0038】
マシン500は、バス502を介するなどして互いに通信するように構成され得るプロセッサ510、メモリ530、および入力/出力(I/O)コンポーネント550を含み得る。例示の実施形態では、プロセッサ510(例えば、中央処理装置(CPU)、縮小命令セット計算(RISC)プロセッサ、複合命令セット計算(CISC)プロセッサ、グラフィック処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、無線周波数集積回路(RFIC)、他のプロセッサ、またはそれらの任意の適切な組み合わせ)は、例えば、命令516を実行することができるプロセッサ512およびプロセッサ514を含み得る。用語「プロセッサ」は、同時に命令を実行することができる2つ以上の独立したプロセッサ(時に「コア」と呼ばれる)を含むことができるマルチコアプロセッサを含むことを意図している。図5は、複数のプロセッサを示すが、マシン500は、単一のコアを有する単一のプロセッサ、複数のコアを有する単一のプロセッサ(例えば、マルチコアプロセッサ)、単一のコアを有する複数のプロセッサ、複数のコアを有する複数のプロセッサ、またはそれらの任意の組み合わせを含み得る。
【0039】
メモリ530は、メインメモリ532、スタティックメモリ534、または他のメモリ記憶装置などのメモリ、ならびにストレージユニット536を含むことができ、両方ともバス502を介するなどして、プロセッサ510にアクセス可能である。ストレージユニット536およびメモリ532、534は、本明細書に記載の方法または機能のうちの任意の1つまたは複数を具体化する命令516を格納する。命令516は、マシン500によるその実行中、メモリ532、534内、ストレージユニット536内、プロセッサ510のうちの少なくとも一つ内(例えば、プロセッサのキャッシュメモリ内)、またはそれらの任意の適切な組合せ内に、完全にまたは部分的に存在し得る。従って、メモリ532、534、ストレージユニット536、およびプロセッサ510のメモリは、マシン可読媒体の例である。
【0040】
本明細書で使用される「マシン可読媒体」は、命令およびデータを一時的または恒久的に格納することができるデバイスを意味し、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、バッファメモリ、フラッシュメモリ、光学メディア、磁気メディア、キャッシュメモリ、他の種類の記憶装置(例えば、消去可能プログラマブルリードオンリーメモリ(EEPROM))および/またはそれらの任意の適切な組み合わせを含み得るが、これらに限定されない。「マシン可読媒体」という用語は、命令516を格納することができる単一の媒体または複数の媒体(例えば、集中型または分散型データベース、または関連するキャッシュおよびサーバ)を含むと解釈されるべきである。「マシン可読媒体」という用語は、マシン(例えば、マシン500)による実行のための命令(例えば、命令516)を格納することができる任意の媒体、または複数の媒体の組み合わせを含むものとし、命令は、マシン500の1つまたは複数のプロセッサ(例えば、プロセッサ510)により実行されると、マシン500に本明細書に記載の方法のうちの任意の1つまたは複数を実行させる。したがって、「マシン可読媒体」は、単一の記憶装置またはデバイス、ならびに複数の記憶装置またはデバイスを含む「クラウドベースの」記憶システムまたは記憶ネットワークを指す。用語「マシン可読媒体」は、それ自体信号を除外する。
【0041】
入力/出力(I/O)コンポーネント550は、入力を受信し、出力を提供し、出力を生成し、情報を送信し、情報を交換し、測定値を捕捉するなどのための多種多様な構成要素を含み得る。特定のマシンに含まれる特定の入力/出力(I/O)コンポーネント550は、マシンの種類に依存する。例えば、携帯電話などの携帯機器は、タッチ入力デバイスまたは他のそのような入力機構を含む可能性があり、ヘッドレスサーバ機器は、そのようなタッチ入力デバイスを含まない可能性が高いであろう。入力/出力(I/O)コンポーネント550は、図5には示されていない他の多くの構成要素を含み得ることが理解されよう。入力/出力(I/O)コンポーネント550は、単に以下の説明を単純化するために機能に従ってグループ化されており、そのグループ化は決して限定的なものではない。様々な例示的実施形態では、入力/出力(I/O)コンポーネント550は、出力コンポーネント552および入力コンポーネント554を含み得る。出力コンポーネント552は、視覚的構成要素(例えば、プラズマディスプレイパネル(PDP)、発光ダイオード(LED)ディスプレイ、液晶ディスプレイ(LCD)、プロジェクタ、または陰極線管(CRT))、音響部品(例えばスピーカ)、触覚部品(例えば振動モータ、抵抗機構)、その他の信号発生器などを含み得る。入力コンポーネント554は、英数字入力構成要素(例えば、キーボード、英数字入力を受け取るように構成されたタッチスクリーン、フォトオプティカルキーボード、または他の英数字入力構成要素)、ポイントベースの入力構成要素(例えば、マウス、タッチパッド、トラックボール、ジョイスティック、モーションセンサ、またはその他のポインティングデバイス)、触覚入力コンポーネント(例えば、物理ボタン、タッチまたはタッチジェスチャの位置および/または力を提供するタッチスクリーン、またはその他の触覚入力構成要素)、音声入力部品(例えば、マイク)などを含み得る。
【0042】
さらなる例示的実施形態では、入力/出力(I/O)コンポーネント550は、他の様々なコンポーネントの中で、バイオメトリックコンポーネント556、モーションコンポーネント558、環境コンポーネント560、または位置コンポーネント562を含み得る。例えば、バイオメトリックコンポーネント556は、表情(例えば、手の表情、顔の表情、声の表情、身体のジェスチャ、または目の動き)を検出し、生体信号(例えば、血圧、心拍数、体温、発汗、または脳波)を測定し、人物を識別(例えば、音声識別、網膜識別、顔識別、指紋識別、または脳波に基づく識別)する等のための構成要素を含み得る。モーションコンポーネント558は、加速度センサ構成要素(例えば、加速度計)、重力センサ構成要素、回転センサ構成要素(例えば、ジャイロスコープ)などを含み得る。環境コンポーネント560は、例えば、照明センサ構成要素(例えば、光度計)、温度センサ構成要素(例えば、周囲温度を検出する1つまたは複数の温度計)、湿度センサ構成要素、圧力センサ構成要素(例えば、気圧計)、音響センサ構成要素(例えば、背景雑音を検出する1つまたは複数のマイクロフォン)、近接センサ構成要素(例えば、近くの物体を検出する赤外線センサ)、ガスセンサ(例えば、安全のために有害ガスの濃度を検出するための、または大気中の汚染物質を測定するためのガス検出センサ)、または周囲の物理的環境に対応する標示、測定値、または信号を提供することができる他の構成要素を含み得る。位置コンポーネント562は、位置センサ構成要素(例えば、全地球測位システム(GPS)受信機部品)、高度センサ構成要素(例えば、高度が導出され得る気圧を検出する高度計または気圧計)、方位センサ構成要素(例えば、磁力計)などを含み得る。
【0043】
通信は、多種多様な技術を使用して実施することができる。入力/出力(I/O)コンポーネント550は、カップリング582およびカップリング572を介してそれぞれマシン500をネットワーク580またはデバイス570に結合するように動作可能な通信コンポーネント564を含み得る。例えば、通信コンポーネント564は、ネットワーク580とインタフェースするためのネットワークインタフェース構成要素または他の適切なデバイスを含み得る。さらなる例では、通信コンポーネント440は、有線通信構成要素、無線通信構成要素、セルラ通信構成要素、近距離無線通信(NFC)構成要素、Bluetooth(登録商標)構成要素(例えば、Bluetooth(登録商標)LowEnergy)、Wi−Fi(登録商標)構成要素、および他のモダリティを介して通信を提供するための他の通信構成要素を含み得る。デバイス570は、他のマシンまたは多種多様な周辺デバイス(例えば、ユニバーサルシリアルバス(USB)を介して結合された周辺デバイス)のうちのいずれかであり得る。
【0044】
さらに、通信コンポーネント564は、識別子を検出するか、または識別子を検出するように動作可能な構成要素を含み得る。例えば、通信コンポーネント564は、無線周波数識別(RFID)タグリーダ構成要素、NFCスマートタグ検出構成要素、光学式リーダ構成要素(例えば、ユニバーサルプロダクトコード(UPC)バーコードなどの1次元バーコード、QuickResponse(QR)コード、Aztecコード、DataMatrix、Dataglyph、MaxiCode、PDF417、UltraCode、UCCRSS−2Dバーコードなどの多次元バーコード、およびその他の光学コードを検出するための光学センサ)、または音響検出コンポーネント(例えば、タグ付きオーディオ信号を識別するためのマイク)を含み得る。さらに、通信コンポーネント564を介して、インターネットプロトコル(IP)ジオロケーションによる位置、Wi−Fi(登録商標)信号三角測量による位置、特定の位置を示すことができるNFCビーコン信号を検出することによる位置などのような、様々な情報が導出され得る。
【0045】
本発明の主題の概要を特定の例示的な実施形態を参照して説明したが、本開示のより広い範囲の実施形態から逸脱することなく、これらの実施形態に対して様々な修正および変更を加えることができる。本発明の主題のそのような実施形態は、単に便宜上、個々にまたは集合的に「発明」という用語によって本明細書において言及され得るが、これは、本出願の範囲を、任意の単一の開示または発明概念(もし実際に複数が開示されているならば)に自発的に限定することを意図するものではない。
【0046】
本明細書に示された実施形態は、当業者が開示された教示を実施することを可能にするために十分に詳細に記載されている。本開示の範囲から逸脱することなく、構造的および論理的な置換および変更を行うことができるように、他の実施形態が使用され、かつそこから導出されることが可能である。従って、詳細な説明は限定的な意味で解釈されるべきではなく、様々な実施形態の範囲は添付の特許請求の範囲とそのような特許請求の範囲が権利を与える等価物の全範囲によってのみ定義される。
【0047】
本明細書で使用されるとき、用語「または」は、包括的または排他的な意味で解釈され得る。さらに、本明細書で単一のインスタンスとして説明されているリソース、動作、または構造のために複数のインスタンスを提供することができる。さらに、様々なリソース、動作、モジュール、エンジン、およびデータストア間の境界はいくぶん任意であり、特定の動作は特定の例示的な構成のコンテキストで示される。機能の他の割り当ても想定されており、本開示の様々な実施形態の範囲内にあり得る。一般に、例示的な構成において別々のリソースとして提示された構造および機能は、組み合わされた構造またはリソースとして実装され得る。同様に、単一のリソースとして提示された構造および機能は、別々のリソースとして実装されてもよい。これらおよび他の変形、修正、追加、および改良は、添付の特許請求の範囲によって表される本開示の実施形態の範囲内に含まれる。従って、本明細書および図面は、限定的な意味ではなく例示的な意味で考慮されるべきである。
図1
図2A
図2B
図3A
図3B
図3C
図3D
図4
図5