JP7222121B2 - ストーリー内のオブジェクトの感情適合性を管理する方法およびシステム - Google Patents

ストーリー内のオブジェクトの感情適合性を管理する方法およびシステム Download PDF

Info

Publication number
JP7222121B2
JP7222121B2 JP2021573582A JP2021573582A JP7222121B2 JP 7222121 B2 JP7222121 B2 JP 7222121B2 JP 2021573582 A JP2021573582 A JP 2021573582A JP 2021573582 A JP2021573582 A JP 2021573582A JP 7222121 B2 JP7222121 B2 JP 7222121B2
Authority
JP
Japan
Prior art keywords
interest
shot
objects
determining
quality
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021573582A
Other languages
English (en)
Other versions
JP2022536510A (ja
Inventor
マイヒル、アダム
ラビュート、グレゴリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unity IPR ApS
Original Assignee
Unity IPR ApS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Unity IPR ApS filed Critical Unity IPR ApS
Publication of JP2022536510A publication Critical patent/JP2022536510A/ja
Application granted granted Critical
Publication of JP7222121B2 publication Critical patent/JP7222121B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5252Changing parameters of virtual cameras using two or more virtual cameras concurrently or sequentially, e.g. automatically switching between fixed virtual cameras when a character changes room or displaying a rear-mirror view in a car-driving game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • A63F13/525Changing parameters of virtual cameras
    • A63F13/5258Changing parameters of virtual cameras by dynamically adapting the position of the virtual camera to keep a game object or game character in its viewing frustum, e.g. for tracking a character or a ball
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/63Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by the player, e.g. authoring using a level editor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/98Detection or correction of errors, e.g. by rescanning the pattern or by human intervention; Evaluation of the quality of the acquired patterns
    • G06V10/993Evaluation of the quality of the acquired pattern
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/49Segmenting video sequences, i.e. computational techniques such as parsing or cutting the sequence, low-level clustering or determining units such as shots or scenes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6661Methods for processing data by generating or executing the game program for rendering three dimensional images for changing the position of the virtual camera
    • A63F2300/6669Methods for processing data by generating or executing the game program for rendering three dimensional images for changing the position of the virtual camera using a plurality of virtual cameras concurrently or sequentially, e.g. automatically switching between fixed virtual cameras when a character change rooms
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6661Methods for processing data by generating or executing the game program for rendering three dimensional images for changing the position of the virtual camera
    • A63F2300/6684Methods for processing data by generating or executing the game program for rendering three dimensional images for changing the position of the virtual camera by dynamically adapting its position to keep a game object in its viewing frustrum, e.g. for tracking a character or a ball
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/41Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/44Event detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Studio Devices (AREA)
  • Processing Or Creating Images (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Analysis (AREA)

Description

本明細書で開示する主題は、概して、コンピュータシステムの技術分野に関し、より具体的には、自動化シネマトグラフィの仮想オブジェクトの重要度および感情適合性を管理するためのコンピュータシステムおよび方法に関する。
マルチプレーヤビデオゲーム環境は、満足のいくように撮影するのが難しい。これは、プレーヤの動きおよびゲームのアクションの予測不可能性に加えて、ゲーム要素が素早く変化することによる。非ビデオゲーム環境では、カメラは、典型的には、関心のある被写体およびイベントの事前の知識(または少なくとも被写体およびイベントの予測可能性の高い確率)を用いて位置付けられる。これは特に、場所がある程度予測できるゲームの重要なイベントを捉えるために、複数のカメラが通常所定の場所(または所定のトラック)に所定の視点で配置されるスポーツ競技に当てはまる。カメラはしばしばゴールまたはネットの近くに置かれ、そうすることで得点の変化にまつわる重要なイベントを撮像する。アクションが事前に分かっていなくても、競技場(またはコート)の物理的なサイズの制限によりゲームのアクションすべてを撮像するために必要なカメラの台数が制限される。しかし、ビデオゲームは、通常、ユーザが完全にコントロールする莫大な環境を伴い、考え得る経路およびアクションのほぼ無限の集合を有する。未知の状況で予測不可能な動作主を高品質で撮影できるようにすることは困難である。また、関心のあるイベントの多くはしばしば同時に起こるため、どのイベントを撮影するべきか、どのように撮影するべきか、どれくらいの長さにするかを決定するのは困難となる。さらに、自動化シネマトグラフィの分野内に欠けている重要な態様として、ゲームオブジェクトの重要度および感情適合性を管理するための仕組みがある。
本発明の例示的な実施形態のさらなる特徴および利点は、添付の図面と併せて理解される以下の詳細な説明から明らかになるであろう。
一実施形態による、ストーリーマネージャデバイスを示す概略図である。 一実施形態による、ストーリーマネージャデバイスを使用するストーリーマネージャ方法を示す概略図である。 一実施形態による、ストーリーマネージャデバイスを使用するストーリー管理のための方法を示す概略図である。 一実施形態による、ストーリーマネージャデバイスを使用するシネマトグラフィ方法を示す概略図である。 一実施形態による、ストーリーマネージャデバイスを使用するディレクタ方法を示す概略図である。 本明細書に記載の様々なハードウェアアーキテクチャと組み合わせて使用され得る例示的なソフトウェアアーキテクチャを示すブロック図である。 いくつかの例示的な実施形態による、機械可読媒体(例えば、機械可読記憶媒体)から命令を読み込み、本明細書で論じる方法論のうちの任意の1つまたは複数を実行するように構成されたマシンのコンポーネントを示すブロック図である。
添付の図面全体を通して、同様の特徴が同様の参照番号によって識別されることに留意されたい。
以下の記載は、本開示の例示的な実施形態を個別にまたは組み合わせて含む、例示的なシステム、方法、技法、命令シーケンス、およびコンピューティングマシンプログラム製品を説明する。以下の記載では、説明の目的で、発明的主題の様々な実施形態の理解を提供するために、多数の特定の詳細が示されている。しかしながら、発明的主題の様々な実施形態がこれらの特定の詳細なしで実施され得ることは、当技術分野の当業者には明らかであろう。
本明細書の説明全体を通して使用される「環境」という用語は、2Dデジタル環境(例えば、2Dビデオゲーム環境、2Dシミュレーション環境、2Dコンテンツ作成環境など)、3Dデジタル環境(例えば、3Dゲーム環境、3Dシミュレーション環境、3Dコンテンツ作成環境、仮想現実環境など)、およびデジタル(例えば、仮想)コンポーネントと実世界コンポーネントの両方を含む拡張現実環境を含むと理解される。
本明細書の説明全体を通して使用される「ゲームオブジェクト」という用語は、環境内の任意のデジタルオブジェクトまたはデジタル要素を含むと理解される。ゲームオブジェクトは、環境内のほぼすべてのものを(例えば、対応するデータ構造で)表現することができ、それは、3Dモデルテクスチャ(model textures)、背景(例えば、地形、空など)、ライト(lights)、カメラ、エフェクト(例えば、サウンドおよびビジュアル)、アニメーションなどを伴う、3Dモデル(例えば、キャラクタ、武器、シーン要素(例えば、建物、木、車、宝物など))を含む。「ゲームオブジェクト」という用語はまた、個々のゲームオブジェクトのリンクされたグループを含むとも理解され得る。ゲームオブジェクトは、オブジェクトのプロパティと挙動とを定義するデータに関連付けられている。
本明細書で使用される「アセット(asset)」、「ゲームアセット」、および「デジタルアセット」という用語は、ゲームオブジェクトを説明するために使用することができる、またはプロジェクト(例えば、ゲーム、映画、ソフトウェアアプリケーションを含む)の態様を説明するために使用することができる任意のデータを含むと理解される。例えば、アセットには、画像、3Dモデル(テクスチャ、リギング(rigging)など)、3Dモデルのグループ(例えば、シーン全体)、オーディオサウンド、ビデオ、アニメーション、3Dメッシュなどのためのデータを含めることができる。アセットを記述するデータは、ファイル内に格納されてもよく、ファイルのコレクション内に含まれてもよく、1つのファイル(例えば、圧縮ファイル)に圧縮されて格納されてもよく、または、メモリ内に格納されてもよい。アセットを記述するデータを使用して、ランタイム時にゲーム内の1つまたは複数のゲームオブジェクトをインスタンス化することができる。
本明細書の説明全体を通して使用される「ランタイム(runtime)」という用語は、プログラム(例えば、アプリケーション、ビデオゲーム、シミュレーションなど)がランされている(running)かまたは実行している(例えば、プログラミングコードを実行している)時間を含むと理解されるべきである。この用語は、人間のユーザによって、または人工知能エージェントによってビデオゲームがプレイされている時間を含むと理解されるべきである。
本明細書で使用される「クライアント」および「アプリケーションクライアント」という用語は、ネットワークを介したアクセスを含む、サーバ上のデータおよびサービスにアクセスするソフトウェアクライアントまたはソフトウェアアプリケーションを含むと理解される。
ビデオゲームに関連するビデオのフレーム内の関心オブジェクト(objects of interest)のシネマティックショット(cinematic shot)の品質を決定するための動作を開示する。ビデオゲーム内からのオブジェクトの集合の中から、複数の関心オブジェクトを決定する。ゲーム状態データ(game state data)をゲームから受信し、ゲーム状態データは、少なくとも、ゲーム内で発生するイベントの集合を記述する。複数の関心レベル値を決定する。複数の関心レベル値は、複数の関心オブジェクトに関連する複数のカテゴリに対応し、複数の関心レベル値はゲーム状態データに基づく。複数の関心オブジェクトについて、複数の枯渇値(starvation value)を決定する。複数の枯渇値のそれぞれは、複数の関心オブジェクトのうちの1つの関心オブジェクトが前の複数のフレームで可視状態である時間量の累積合計に反比例する。複数の関心オブジェクトについて、複数の緊急度値(urgency value)を決定する。複数の緊急度値のそれぞれは、関心オブジェクトに関連する複数の関心レベル値および枯渇値に基づいており、緊急度値はフレーム内で関心オブジェクトを見る緊急度の尺度を表す。フレームに関連するシネマトグラフィの管理で使用するために、データ構造を生成する。データ構造は、複数の関心レベル値および複数の緊急度値の探索(looking up)を可能にする。
本発明は、これらの方法を実行するデータ処理システムと、データ処理システム上で実行されるとシステムにこれらの方法を実行させるコンピュータ可読媒体とを含む、本明細書に記載の1つまたは複数の動作または複数の動作のうちの1つまたは複数の組み合わせを実行する装置を含み、それら動作または動作の組み合わせは、非定型および非従来型の動作を含む。
ここで図面に目を向けると、本発明の実施形態による、ストーリー(story)内のオブジェクトの感情適合性(emotional relevance)を管理するための、非定型もしくは非従来型の複数のコンポーネントもしくは複数の動作、またはそのようなコンポーネントもしくは動作の組み合わせを含む、システムおよび方法が図示されている。多くの実施形態において、ストーリー内のオブジェクトの感情適合性を管理するためのストーリーマネージャシステムが提供される。
一実施形態により、図1Aに示されているのは、ストーリーマネージャシステム100である。ストーリーマネージャシステム100はストーリーマネージャデバイス102を含み、ストーリーマネージャデバイス102は1つまたは複数の中央処理装置(CPU : central processing unit)103と、グラフィクス処理装置(GPU : graphics processing unit)105とを含む。CPU103は任意のタイプのプロセッサであり、多数の処理要素(図示せず)を含むプロセッサアセンブリであり、メモリ101にアクセスしてそれに格納される複数の命令を取得し、その命令を実行する。その命令の実行時に、複数の命令は、ストーリーマネージャデバイス102に、本明細書で(例えば、図1B、図2、図3および図4を参照して)説明される一連のタスクを実行させることを実現する。メモリ101は、ランダムアクセスメモリ、読み取り専用または書き換え可能なメモリ、内部プロセッサキャッシュなどの任意のタイプのメモリデバイスとすることができる。
ストーリーマネージャデバイス102は、また、処理デバイスによって読み取り可能なデータ信号の形態で情報を入力するための、例えば、キーボードまたはキーパッド、マウス、ポインティングデバイス、カメラ、マイクロフォン、ハンドヘルドデバイス(例えば、ハンドモーショントラッキングデバイス)、タッチスクリーンなどの1つまたは複数の入出力デバイス108を含む。ストーリーマネージャデバイス102は、コンピュータモニタ、(例えば、タブレットまたはスマートフォンの)タッチスクリーン、およびヘッドマウントディスプレイ(HMD : head‐mounted display)のレンズまたはバイザー(例えば、仮想現実(VR : virtual reality)もしくは拡張現実(AR : augmented reality)HMD)など、1つまたは複数のディスプレイデバイス109をさらに含み、これらは、ビデオ、ビデオゲーム環境、統合開発環境および仮想シミュレーション環境を含むデジタルコンテンツを表示するように構成され得、仮想オブジェクトを実世界の景色と組み合わせて表示するようにも構成され得る。ディスプレイデバイス109は、1つまたは複数のGPU105、および任意選択で、CPU103により駆動または制御される。GPU105は、ディスプレイデバイス109を介した出力のレンダリングを高速化するのを支援するグラフィック出力の態様を処理する。ストーリーマネージャデバイス102はまた、ネットワークを介して通信するための1つまたは複数のネットワークデバイス107(例えば、有線または無線ネットワークアダプタ)を含む。
ストーリーマネージャデバイス102内のメモリ101は、ディスプレイデバイス109と、また、入力デバイス108などの他のハードウェアとも通信してユーザ130にアプリケーションを提示する(例えば、ビデオゲームを提示する)ゲームエンジン104(例えば、CPU103またはGPU105によって実行される)を含み得るアプリケーション114(例えば、ビデオゲーム、シミュレーション、または他のソフトウェアアプリケーション)を格納するように構成することができる。ゲームエンジン104は、典型的には、以下を提供する1つまたは複数のモジュールを含む:ユーザにアプリケーション環境(例えば、ビデオゲームまたはシミュレーション環境)を提供するための、ゲームオブジェクトのアニメーション物理的現象、ゲームオブジェクトの衝突検出、レンダリング、ネットワーキング、サウンド、アニメーションなど。アプリケーション114は、本明細書で説明する様々なストーリーマネージャシステムの機能性を提供するストーリーマネージャ110を含む。アプリケーション114は、本明細書で説明する様々なシネマトグラフィディレクタシステムの機能性を提供するディレクタモジュール(director module)112を含み得る。アプリケーション114は、本明細書で説明する様々なシネマトグラフィシステムの機能性を提供するシネマトグラフィモジュール(cinematography module)116を含み得る。ゲームエンジン104、ストーリーマネージャ110、ディレクタモジュール112、シネマトグラフィモジュール116およびアプリケーション114のそれぞれは、動作中(例えば、図1B、図2、図3および図4に関して説明される動作を行うとき)CPU103、および任意選択でGPU105によって実行される、メモリ101に存在するコンピュータ実行可能命令を含む。ゲームエンジン104は、ゲームエンジンなどのランタイムプログラムを作成するために、動作中にCPU103によって、および任意選択でGPU105を用いて実行される、メモリ101に存在するコンピュータ実行可能命令を含む。アプリケーション114は、ビデオゲームなどのランタイムアプリケーションプログラムを作成するために、動作中にCPU103によって、および任意選択でGPU105を用いて実行される、メモリ101に存在するコンピュータ実行可能命令を含む。ゲームエンジン104、ストーリーマネージャ110、ディレクタモジュール112およびシネマトグラフィモジュール116を直接アプリケーション114内に統合してもよく、または外部のソフトウェア(例えば、プラグイン)として実装してもよい。
一実施形態により、図1Bに示されているのは、ストーリーマネージャモジュール110、シネマトグラフィモジュール116およびディレクタモジュール112の間の例示的なデータの流れである。説明の便宜上、3つの個別のモジュールとして示されているが、3つの個別のモジュール(例えば、110、112および116)を1つの単一モジュール内に実装してもよいことが当業者によって理解されるであろう。一実施形態によれば、ストーリーマネージャモジュール110、シネマトグラフィモジュール116およびディレクタモジュール112は、アプリケーション114のランタイムバージョンなど、アプリケーションの実行中(例えば、ビデオゲームのゲームプレイ中)に存在するモジュールである。一実施形態によれば、また図2を参照して説明される方法200で以下詳しく説明するように、ストーリーマネージャモジュール110はアプリケーション114に関係する環境(例えば、ゲームレベル)内で複数の関心オブジェクト(OI : object of interest)を決定し、各OIについて、感情品質値(emotional quality value)、複数の分類された関心レベル、および緊急度値を含むOIデータ120を決定する。一実施形態によれば、また図3を参照して説明される方法300で以下詳しく説明するように、シネマトグラフィモジュール116は、決定されたOIを追跡し(follow)、決定された関心オブジェクトの(例えば、フレームについて)カメラショット(camera shot)の構図を決めるために、環境内に複数の仮想カメラを分散させる。仮想カメラの分散は、少なくとも部分的には、ストーリーマネージャモジュール110によって決定される感情品質値、分類された関心レベル、および緊急度値に基づく。分散された仮想カメラは構図が決められたカメラショットを時間の経過とともに記録する。シネマトグラフィモジュール116は、少なくとも部分的には、ストーリーマネージャモジュール110によって決定された感情品質値、分類された関心レベル、および緊急度値に基づいて、各仮想カメラの各ショットのショット品質も決定し得る。シネマトグラフィモジュール116は、複数の潜在的な仮想カメラショットのリストを含む仮想カメラショットデータ122を出力し、各ショットはショット品質値、合計感情品質値、およびショット内で可視状態である関心オブジェクトのリストを含む関連データを有する。一実施形態によれば、また図4を参照して説明される方法400に関して詳しく説明されるように、ディレクタモジュール112は最適なショット長さと、ショット間の遷移品質の尺度とを決定する。ディレクタモジュール112は、次に、ショット品質、遷移品質および感情品質に基づいて、複数の潜在的ショットから最終的ショットを選択し得る。
一実施形態により、図2に示されているのは、実行中アプリケーション114(例えば、アプリケーション114のランタイムバージョン)内の関心オブジェクト(OI)を決定するとともに、関心オブジェクトの関心品質および感情品質を決定するための方法200である。一実施形態により、アプリケーション114はストーリーマネージャデバイス102で実行中であり得、ビデオゲーム体験をユーザに提供中であり得る。実行中アプリケーション114は、フレームをディスプレイデバイス109に連続的に(例えば、毎秒60フレーム、毎秒90フレーム、または任意の他のフレームレート)レンダリングして表示するためのデータを生成し得る。実行中アプリケーション114は環境内でゲームオブジェクトを生成、削除してもよく、ゲームオブジェクトはフレーム間で変更することができる(例えば、動く、外見を変える、消えるなど)。実行中アプリケーション114は、また、環境内にイベント(例えば、起こすアクション)を生成してもよく、これはゲームオブジェクトを含むことができる。
一実施形態によれば、方法200の動作202において、実行中アプリケーション114は、環境内の既存のゲームオブジェクトの集合の中から、複数の関心オブジェクト(OI)を決定する。決定されたOIは、環境内の位置に関する値(例えば、3D座標)を含み、ゼロよりも大きいサイズを有し、環境内に置かれた仮想カメラによって潜在的に見ることができるゲームオブジェクトである。複数の決定されたOIは、アプリケーション114が環境内のゲームオブジェクトを変更するにつれて(例えば、ゲームプレイ中)、フレーム間で変更することができる。一実施形態によれば、あるフレームに関連する時点で存在するOIを、本明細書においてアクティブOIという。一実施形態によれば、アクティブOIはストーリーマネージャシステム100の潜在的なカメラターゲットと見なされる。一実施形態によれば、動作202は低頻度で起こり(例えば、すべてのフレームについてではなく)、OIの決定に関わる計算処理を削減することによりストーリーマネージャシステム100のパフォーマンスを改善し得る。一実施形態によれば、動作204から214は、ランタイム中にアプリケーション114によって生成される各フレームについて少なくとも1回行われる。一実施形態によれば、実行中アプリケーション114によって、OIについての関心カテゴリのリストが提供され、各カテゴリは、そのカテゴリの関心レベルを記述する値、そのカテゴリの関心レベル値の減衰率(rate of decay)を記述するレート関数、およびあるイベントに対するそのカテゴリの最大値を記述する関心レベルの最大のうちの1つまたは複数を含むことができる。OIについて多数の関心カテゴリが存在することができ、各カテゴリは各カテゴリおよび各OIについて異なる減衰率および異なる最大を有する。カテゴリの関心レベルとは、そのカテゴリに関する関連OIに対する関心を記述する値である。一実施形態によれば、関心レベル値および関心レベルの減衰率関数は、アプリケーション114を用いて(例えば、アプリケーション開発者により)予め決定されて、含まれ得る。カテゴリは、アプリケーション114内のストーリー(例えば、ビデオゲームのストーリー)の態様と、シネマトグラフィの態様とに関係付けられ得る。OIに関連した関心カテゴリおよびその値は、フレーム毎に(例えば、ゲームプレイのセッション中などの時間にわたり)、実行中アプリケーション114内のストーリーに関するOIに対する関心を記述する。OIに関連するカテゴリはゲーム内のイベントに関連付けることができ、イベントは、OIに直接影響する実行中アプリケーション114内のアクション、OIの近くで起こるアプリケーション内のアクション、および活動がカテゴリに関連するOIの活動のうちのいずれかを含むことができる。一実施形態によれば、関心レベル値に高い値の減衰率を使用すると、イベントに対する関心レベル値を早急に(例えば、あるフレームから次のフレームまでに)低下させるイベントを記述することができる。同様に、関心レベル値に低い値の減衰率を使用すると、イベントに対する関心レベルをゆっくり低下させるイベントを記述することができる。例えば、実行中アプリケーション114内の発砲イベントは、発砲イベントが早急に減衰する高い初期関心値を有することができるように、減衰率に大きな値をもつ大きな関心レベル値を有し得る。別の例として、OIの瞬間移動イベントは、瞬間移動イベントに関連する関心レベルが発砲イベントに関連する関心レベルよりも長く続き得るように、減衰率が低い値である大きな関心レベル値を有し得る。カテゴリの関心の最大値の例として、3回連射の発砲に関わるイベントは、1回の発砲に関わるイベントよりも高い関心値を有することができるが、3回連射の発砲に関わるイベントの関心値は、イベントに関連する最大値を超えることはできない。一実施形態によれば、ストーリーマネージャモジュール110は、ゲームイベントの正確性に関してアグノスティック(agnostic)である。
一実施形態によれば、方法200の動作204の一部として、実行中アプリケーション114は、ゲームイベントおよびOI活動に基づいて、各OIについて分類された関心レベルの各カテゴリレベル値を更新し得る。更新は1フレームにつき1回(例えば、フレーム毎)、またはそれより低い頻度で行い得る。動作204の一部として、各フレームについて、ストーリーマネージャモジュール110はOIに対する合計関心の値を計算し、ここで合計関心値はOIに関連するすべてのカテゴリにおける関心値の総計である。
一実施形態によれば、アプリケーション114がゲームであり、ゲームの挙動が各状態について異なる複数のゲームプレイ状態(例えば、「こっそり動く」状態、「発見された」状態、「完全な戦闘」状態など)を有することに基づき、各状態についてOI優先度マップが提供される。状態のOI優先度マップは、状態に固有の複数の関心値を含む(例えば、各OIおよび関連イベントの各カテゴリの関心値を含む)。ゲームプレイ状態および関連OI優先度マップの数に制限はない。例えば、ゲームの「こっそり動く」状態のOI優先度マップは、「発見された」状態のOI優先度マップとは異なる関心値を有することができる。「こっそり動く」状態での1回の薬莢の落下は、そのイベントが大きな音で、「発見された」へのゲームプレイ状態の切り換えに繋がる可能性があるため、高い関心をもつ。しかし、1回の薬莢の落下イベントは、事態がより激しい「完全な戦闘」状態においては非常に低い優先度である。一実施形態によれば、各OIは、各OI優先度マップおよび各カテゴリについて、関心値、減衰率および最大を有する。
一実施形態によれば、方法200の動作206において、ストーリーマネージャモジュール110はOIの感情品質を記述するn次元感情ベクトルを提供し、ここで「n」は任意の正の整数(例えば、3次元感情ベクトル、4次元感情ベクトルなど)である。感情ベクトル内の各次元はOIの感情の態様を記述し得る。一実施形態によれば、感情ベクトルは、ショット構図(例えば、動作312で)およびショットの長さ(例えば、動作402で)を変更して、ディスプレイデバイス109の外部視聴者(例えば、ゲームのプレーヤ)に感情を伝えるために使用し得る。感情の態様は、幸せ、恐怖、驚き、悲しみ、怒り、嫌悪などを含み得る。一実施形態によれば、感情の単一値は、感情ベクトル内の個々の値(例えば、n個の個々の値の総計、またはn個の個々の値を二乗した総計、または任意の他の種類のn個の個々の値の総計)を使用して計算し得る。一実施形態によれば、感情に関する情報の不存在を表す感情ベクトル値は、ゼロにし得る。ストーリーマネージャモジュール110は、OIに関連する感情状態を示すために、ゲームイベントおよび複数のアクティブOIのアクションに基づいて、各フレームで感情ベクトルの個々の値を変更し得る。例えば、OIに関連する感情ベクトルは、同じフレーム内の他のOIによって修正され得る。我々は、この定義について詳しく説明する必要があるかもしれない。例えば、OI(例えば、ゲーム内の特定のキャラクタ)はあるフレームで「3」の感情値を有するかもしれないが、後のフレームで合計感情値が「6」の第2のOI(例えば、モンスター)が出現すると、フレームの合計感情値が3から9に増える。
一実施形態によれば、方法200の動作208において、ストーリーマネージャモジュール110は、各OIについて分類された関心レベルのそれぞれに、時間ベースの減衰関数(例えば、方法200の動作204に関して説明するとおり)を適用する。一実施形態によれば、動作208は、1フレームにつき1回行ってもよく、またはそれより少ない頻度で(例えば、2または3フレーム毎に1回)行ってもよい。減衰関数は、OIをストーリーマネージャシステム100にとって関心をもたせないように、または重要ではないように思わせるために、時間の経過とともに(例えば、複数のフレームにわたって)OIの関心レベル値を低くする役割を果たし得る。
一実施形態によれば、方法200の動作210において、ストーリーマネージャモジュール110は各OIについて枯渇値を決定する。枯渇値は、OIが画面上に(例えば、ディスプレイデバイス109に表示されるカメラビューに)見えないことに基づいて、時間の経過とともに(例えば、複数のフレームにわたって)増加し、OIが画面上に見えることに基づいて時間の経過とともに減少するOIに関連するスカラー量である。枯渇値は、OIを可視画面に登場させる欲求の尺度であり、欲求はOIが可視画面から離れる時間量とともに増加し、OIが画面上にあるときには減少する。枯渇値は、いくつかのOIを画面上で可視状態にするのに役立ち得る。一実施形態によれば、動作210は1フレームにつき1回行ってもよく、またはそれより少ない頻度で(例えば、2または3フレーム毎に1回)行ってもよい。
一実施形態によれば、方法200の動作212において、各OIについて、ストーリーマネージャモジュール110は分類された複数の関心レベルと複数の枯渇値とを組み合わせて、本明細書で緊急度値と呼ばれる値を作成する。組み合せは任意の数学的な方法(例えば、線形結合、平均化、他)を使用して行い得る。OIの緊急度値は、(例えば、ストーリーの観点から)ある瞬間にOIを画面上に(例えば、ディスプレイデバイス上に表示されるカメラビューに)表示させる緊急度の尺度を表す。一実施形態によれば、動作212は1フレームにつき1回行ってもよく、またはそれより低い頻度で(例えば、2または3フレーム毎に1回)行ってもよい。一実施形態によれば、OIの緊急度値はそのOIの枯渇値の重み付きバージョン(weighted version)であり得、重みは分類された関心レベルによって決定される。枯渇値および関心レベルの大きい値を有するOIは、同じ枯渇値を有するが関心レベルの値が小さい第2のOIよりも大きな緊急度を有し得る。緊急度値は、より関心のあるOIをディスプレイ画面で可視状態にさせる欲求を高める。
一実施形態によれば、方法200の動作214において、ストーリーマネージャモジュール110は、すべてのアクティブOIについて分類されたすべての関心レベル値の合計関心値を確認する。OIの合計関心値がゼロに等しいことに基づいて、ストーリーマネージャモジュール110は、合計関心値がゼロのままであった時間量を決定する。OIの合計関心値が閾値時間においてゼロに等しいことに基づいて、ストーリーマネージャモジュール110は、(例えば、そのOIがそれ以上潜在的なカメラターゲットと見なされないように)そのOIをOIの集合の中から除去する。閾値時間は(例えば、ゲームの開発者により)予め決定され得る。一実施形態によれば、動作214は任意選択であり、行わなくてもよい。
一実施形態によれば、各フレームについて、ストーリーマネージャモジュール110は各OIのデータを含む出力を提供する。データはOIの緊急度値、分類された関心レベル値および感情品質値を含む。一実施形態によれば、ストーリーイベント、分類された関心レベル、および減衰関数は、アプリケーションまたはゲームに関するシステム100の挙動を修正するために(例えば、ゲーム開発者により)調整することのできるパラメータである。
一実施形態により、図3に示されているのは、シネマトグラフィモジュール116によって行われ得る方法300である。方法300において、動作302で、シネマトグラフィモジュール116はストーリーマネージャモジュール110から出力データ(例えば、動作202から動作214までに出力されるデータ)を受信する。出力データはアクティブOIに関するデータを含む。動作302の一部として、シネマトグラフィモジュール116は、環境内で既存の仮想カメラを使用するか、または新たな仮想カメラを作成して、すべてのアクティブOIが少なくとも1つの仮想カメラに収まるようにし得る(例えば、それによって1つのOIが1つの仮想カメラのビュー内にある)。OIがそれを収める仮想カメラをもたないことに基づいて、シネマトグラフィモジュール116は新たな仮想カメラを作成し得、それにより新たな仮想カメラがOIを収めるように位置付けられる(例えば、OIを仮想カメラのビュー内にする)。一実施形態によれば、動作302はフレーム毎に起こってもよく、またはより長い期間にわたって(例えば、多くのフレーム後に)起こってもよい。一実施形態によれば、動作302中、新たな仮想カメラは新たなOIの生成(例えば、イベントおよびゲームプレイのためにアプリケーション114によって生成される)に基づいて作成され得る。一実施形態によれば、動作302で使用される仮想カメラの設定は、テンプレートおよびルールに基づいていてもよく、アプリケーション114で予め決定されていてもよい(例えば、プログラミング命令を介してアプリケーション114にプログラミングされる)。仮想カメラの設定は、カメラのレンズ特性を記述する値、および被写体フレーミングアルゴリズム(subject framing algorithms)、および被写体追跡アルゴリズムなどを含み得る。被写体フレーミングアルゴリズムおよび被写体追跡アルゴリズムは、カメラにOIを追跡させ、OIに関連する次のデータ、すなわち、位置、サイズ、向きおよび感情ベクトルのうちの少なくとも1つまたは複数を入力として取得する動的アルゴリズムであり得る。
一実施形態によれば、方法300の動作304において、OIに関連する各仮想カメラはカメラ設定を使用して、(例えば、OIがフレームからフレームへとゲームの環境を移動するとき)フレームのショット内でOIを追跡して構図を決める。構図を決めることは、ルールまたはテンプレートに基づいて、仮想カメラのカメラショット内に要素(例えば、OIおよび他のゲームオブジェクトを含む)を配置することを含む。一実施形態によれば、動作304の一部として、仮想カメラが移動できることに基づいて、仮想カメラは、フレームの位置を移動させること(例えば、環境内の3D座標で)、フレームの3つの直交軸で回転させること、およびフレームに関するカメラ特性を修正することのうちの1つまたは複数をすることによってOIを追跡する。追跡することは、フレーム内にOIの構図を維持することを含む。一実施形態によれば、動作304の一部として、仮想カメラが固定されていることに基づいて、固定カメラは回転およびカメラ特性の修正を使用して、OIが視界から出て行き(例えば、オブジェクトの背後に移動して)、構図の可能性がなくなるまで、フレーム内のOIの構図を維持する。
一実施形態によれば、方法300の動作306において、1つまたは複数の追加OIがフレームの仮想カメラからのショットに入ることに基づいて(例えば、追加OIが仮想カメラの標的OIに近づくことに基づいて)、シネマトグラフィモジュール116は、仮想カメラからのショットについて、フレーム内に1つまたは複数の追加OIを含めるように構図を変え得る(例えば、グループ構図アルゴリズムを使用して、OIのグループの構図を決める)。
一実施形態によれば、方法300の動作308で、シネマトグラフィモジュール116は、フレームについて、各仮想カメラのショット品質を決定する。ショット品質とはスカラー量であり得、ルールに基づいて決定され得る。ショット品質は、ショット内で可視状態である1つまたは複数のOIの緊急度値、ショット内で可視状態である1つまたは複数のOIのサイズと位置、およびカメラ視錐台(camera frustum)内のオクルージョン(occlusion)の尺度のうちの1つまたは複数の関数であり得る。一実施形態によれば、ショット品質はショット内のOIの緊急度値の値に正比例し、高い緊急度値は高いショット品質値に関連する。例えば、高い緊急度値を有しかつフレーム内で大きいOIは、緊急度値が低く構図が良くない(例えば、脇にずれた)第2のOIよりも高いショット品質を有し得る。一実施形態によれば、ショット内にOIのオクルージョンがあることに基づいて、そのショットのショット品質値は下がる。一実施形態によれば、動作308は1フレームにつき1回行ってもよく、またはそれより低い頻度で(例えば、2または3フレーム毎に1回)行ってもよい。
一実施形態によれば、方法300の動作310において、シネマトグラフィモジュール116は、ショット内のすべてのOIのn次元の感情状態ベクトルを組み合わせて、そのショットの合計感情品質値を決定する。一実施形態によれば、n次元の感情状態ベクトルを組み合わせることは、ベクトル和、平方和、重み付け和、平均化などを含み得る。一実施形態によれば、動作310は1フレームにつき1回行ってもよく、またはそれより低い頻度で(例えば、2または3フレーム毎に1回)行ってもよい。
方法300の動作312において、仮想カメラからのショットについての合計感情品質の値が所定の一組の範囲のうちのある範囲内にあることに基づいて、シネマトグラフィモジュール116は仮想カメラの設定を、その範囲についてショットの感情品質を反映するように変更し得る。設定の変更は、その範囲のシネマトグラフィルールに従って行い得る。例えば、感情が高ぶっている瞬間(例えば、ある範囲内であるかまたは閾値より大きい、大きな合計感情品質値を有するフレーム)中には、ダッチカメラ回転(dutch camera rotation)(例えば、カメラのz軸を中心とするカメラ回転)または低カメラアングルを導入し得る。一実施形態によれば、動作312は1フレームにつき1回行ってもよく、またはそれより低い頻度で(例えば、2または3フレーム毎に1回)行ってもよい。
一実施形態によれば、方法300は、ディスプレイデバイス109に表示されるフレームに使用することのできる複数の仮想カメラショット(例えば、各アクティブOIが複数のカメラショットのうちの少なくとも1つに含まれる)を提供する。一実施形態によれば、複数の仮想カメラショットの各ショットは次の関連データ、すなわち、ショット品質値、合計感情品質値、およびそのショット内で可視状態である特定のOIを記述するOIターゲットリストのうちの1つまたは複数を含む。
一実施形態により、図4に示されているのは、次のフレームとして(例えば、次に表示されるゲームフレームとして)表示するために、方法300で生成される複数の潜在的ショットからショットを選択する方法400である。方法400はディレクタモジュール112によって行われ得る。一実施形態によれば、方法400の動作402において、ディレクタモジュール112は、シネマトグラフィモジュール116から出力データ(例えば、動作302から動作312までに出力されるデータ)を受信し、かつ任意選択でストーリーマネージャモジュール110からの出力データ(例えば、動作202から動作214までに出力されるデータ)を受信する。出力データは仮想カメラショットおよび関連データのリストを含む。一実施形態によれば、方法400の動作402の一部として、最適なショットの長さが計算される。ショットの長さは、仮想カメラ間の編集またはカットなく、表示されるフレームの連続集合が存在する時間を含み得る。最適なショットの長さは、アプリケーション114の所定のルールのセットに基づいて決定され得る。ルールは、各ショットが時間の経過とともに(例えば、各フレームで)最適なショットの長さを決定するための合計感情品質値を使用し得る、アプリケーション114の感情品質(例えば、ストーリー/ゲームのエモーショナルアーク(emotional arc))に基づいたショットの長さのルールを含み得る。
一実施形態によれば、方法400の動作404において、シネマトグラフィモジュール116によって(例えば、方法300の間に)生成される複数の仮想カメラショットのそれぞれは、現行表示フレームと比較され、遷移品質等級(transition quality rating)が与えられる。複数の仮想カメラショットのうちの1つの遷移品質等級は、現行表示フレームとその1つの仮想カメラショットとの間の遷移(例えば、切り換え)のコストの尺度である。一実施形態によれば、コストは、コストを決定するためのルールを含み得るコスト関数を用いて決定される。一実施形態によれば、方法400の動作404の一部として、複数の遷移コスト関数は、ディレクタモジュール112によって遷移品質等級について計算される。ルールは、現行表示フレームショットの長さと最適なショットの長さ(例えば、動作402で決定されるとおり)との差に基づいてコストを決定することを含み得、差が小さいと遷移品質等級が高くなる。一実施形態によれば、ルールは連続性ルールを含み得、あるショットへの遷移がシネマトグラフィライン(cinematography line)(例えば、ディレクタライン)を交差するかどうかを決定することと、似すぎているショットシーケンスに対してより低い遷移品質を与えるジャンプカット評価(jump cut evaluation)を決定することとを含む。
一実施形態によれば、方法400の動作406において、複数の遷移コスト関数を組み合わせて(例えば、調整可能なルール重み付けに従い)、各仮想カメラショットについて1つのショット遷移品質等級を決定する。一実施形態によれば、方法400の動作408において、ディレクタモジュール112は、(例えば、ディスプレイデバイスに)表示するためのショットを選択する。選択は、方法300で生成された複数の潜在的ショットからの各ショットの合計品質値を決定することを含み、合計品質値は、遷移品質値(例えば、動作406から)、感情品質値(例えば、動作310から)およびショット品質値(例えば、動作308から)を含む。選択は、合計品質値が最も大きいショットを表示することを含む。一実施形態によれば、選択されたショットはアクティブショット(例えば、次の現行表示フレームとしてディスプレイデバイス109に表示されるショット)になる。新たなアクティブショットが前のアクティブショットと異なることに基づいて、アクティブショットのショットの長さはゼロにリセットされ得る。
以下の実施例は、様々な実施形態の非制限的な実施例である。
実施例1。ビデオゲームに関連したビデオのフレーム内で複数の関心オブジェクトのシネマティックショット品質を決定するための複数の動作を行い、該動作は、ビデオゲーム内からのオブジェクトの集合の中から複数の関心オブジェクトを決定することと、少なくともゲーム内で起こるイベントの集合を記述するゲーム状態データを、ゲームから受信することと、複数の関心オブジェクトに関連する複数のカテゴリに対応する複数の関心レベル値を決定することであって、複数の関心レベル値はゲーム状態データに基づく、決定することと、フレームに関連するシネマトグラフィの管理で使用するために、複数の関心レベル値の探索を可能にするデータ構造を生成することと、を含む。
実施例2。実施例1の複数の動作であって、該動作は、複数の関心オブジェクトについて、複数の枯渇値を決定することであって、複数の枯渇値のそれぞれは、複数の関心オブジェクトのうちの1つの関心オブジェクトが前の複数のフレームで可視状態である時間量の累積合計に反比例する、決定することと、データ構造が複数の枯渇値の探索をさらに可能にすること、のうちの1つまたは複数をさらに含む。
実施例3。実施例1~2のいずれかの複数の動作であって、該動作は、複数の関心オブジェクトについて、複数の緊急度値を決定することであって、複数の緊急度値のそれぞれは、関心オブジェクトに関連する複数の関心レベル値および枯渇値に基づいており、緊急度値はフレーム内で関心オブジェクトを見る緊急度の尺度を表す、決定することと、データ構造が複数の緊急度値の探索をさらに可能にすること、のうちの1つまたは複数をさらに含む。
実施例4。実施例1~3のいずれかの複数の動作であって、該動作は、それぞれが複数の関心オブジェクトのうちの1つの関心オブジェクトの感情状態を記述する複数の多次元状態ベクトルを決定することと、仮想カメラからのショットの合計感情品質値の決定で使用するために、複数の多次元感情状態ベクトルを提供すること、のうちの1つまたは複数をさらに含む。
実施例5。実施例1~4のいずれかの複数の動作において、ショットの合計感情品質の値がある範囲内であることに基づいて、所定のシネマトグラフィルールに基づいて感情品質を反映するようにショットを変更するために、仮想カメラのパラメータおよび設定を変更する。
実施例6。実施例1~5のいずれかの複数の動作であって、該動作は、それぞれが複数の関心オブジェクトのうちから1つの関心オブジェクトを追跡するように構成された複数の仮想カメラを作成することと、複数の仮想カメラのそれぞれについて、仮想カメラによって追跡される関心オブジェクトのショットをフレーミングすることであって、ショットのフレーミングは関心オブジェクトに対応するデータ構造内で緊急度値を探索することと、緊急度値、ショット内の関心オブジェクトの位置およびショット内の関心オブジェクトのサイズのうちの1つまたは複数に基づいて、関心オブジェクトのショットの品質を決定することとを含む、フレーミングすることと、をさらに含む。
実施例7。実施例1~6のいずれかの複数の動作であって、該動作は、複数の仮想カメラからのショットを前のフレームからのアクティブショットと比較することと、ショットとアクティブショットとの間の遷移の品質の尺度を決定することとを含み、品質の尺度は、アクティブショットの感情品質、ショット品質値およびショットの長さのうちの1つまたは複数についての遷移の尺度を含む。
実施例8。実施例1~7のいずれかの複数の動作であって、該動作は、複数の仮想カメラからアクティブショットになるショットを選択することを含み、選択は、ショットの感情品質値、ショットのショット品質値、およびショットの遷移の品質の尺度のうちの少なくとも1つに基づく。
実施例9。実施例1~8の複数の動作であって、該動作は、第2の関心オブジェクトがショットに入ることに基づいて、ショット内に第2の関心オブジェクトを含むようにカメラショットの構図を変えることを含む。
実施例10。1つまたは複数のコンピュータプロセッサと、1つまたは複数のコンピュータメモリと、1つまたは複数のコンピュータメモリに組み込まれるストーリーマネージャモジュールとを備えるシステムであって、該ストーリーマネージャモジュールは実施例1~9のいずれかの複数の動作を行うように1つまたは複数のコンピュータプロセッサを構成する。
実施例11。一組の命令を備えるコンピュータ可読媒体であって、該一組の命令は実施例1~9の複数の動作のいずれかを行うように1つまたは複数のコンピュータプロセッサを構成する。
別個のデータ信号接続を介して互いに通信する個別のコンポーネントのグループとしてブロック図に示されているが、様々な実施形態は、いくつかのコンポーネントが、ハードウェアまたはソフトウェアシステムの所与の機能または動作によって実装されており、図示されているデータパスの多くが、コンピュータアプリケーションまたはオペレーティングシステム内のデータ通信によって実装されている、ハードウェアおよびソフトウェアコンポーネントの組み合わせによって提供され得ることが当業者によって理解されるであろう。したがって、図示された構造は、本発明の様々な実施形態を教示することの効率のために提供される。
本開示は、方法として実行することができ、システム、コンピュータ可読媒体、または電気信号もしくは電磁信号で具体化することができることに留意されたい。上記に記載され、添付の図面に示されている実施形態は、例示のみを目的としている。本開示から逸脱することなく修正を行うことができることは、当技術分野の当業者には明らかであろう。このような修正は、可能な変形と見なされ、本開示の範囲内にある。
特定の実施形態は、論理またはいくつかのコンポーネント、モジュール、もしくはメカニズムを含むものとして本明細書に記載されている。モジュールは、ソフトウェアモジュール(例えば、機械可読媒体または送信信号で具体化されたコード)またはハードウェアモジュールのいずれかを構成し得る。「ハードウェアモジュール」は、特定の動作を実行できる有形のユニットであり得、特定の物理的な方法で構成または配置され得る。様々な例示的な実施形態では、1つまたは複数のコンピュータシステム(例えば、スタンドアロンコンピュータシステム、クライアントコンピュータシステム、またはサーバコンピュータシステム)またはコンピュータシステムの1つまたは複数のハードウェアモジュール(例えば、プロセッサまたはプロセッサのグループ)は、本明細書に記載される特定の動作を実行するように動作するハードウェアモジュールとして、ソフトウェア(例えば、アプリケーションまたはアプリケーション部分)によって構成され得る。
いくつかの実施形態では、ハードウェアモジュールは、機械的、電子的、またはそれらの任意の適切な組み合わせで実装され得る。例えば、ハードウェアモジュールには、特定の動作を実行するように永続的に構成された専用の回路またはロジックを含んでもよい。例えば、ハードウェアモジュールは、フィールドプログラマブルゲートアレイ(FPGA : field‐programmable gate array)または特定用途向け集積回路(ASIC : application specific integrated circuit)などの専用プロセッサであってもよい。ハードウェアモジュールはまた、特定の動作を実行するためにソフトウェアによって一時的に構成されるプログラマブルロジックまたは回路を含んでもよい。例えば、ハードウェアモジュールは、汎用プロセッサまたは他のプログラム可能なプロセッサ内に含まれるソフトウェアを含んでもよい。そのようなソフトウェアは、少なくとも一時的に、汎用プロセッサを専用プロセッサに変換し得る。ハードウェアモジュールを機械的に、専用の恒久的に構成された回路に、または一時的に構成された回路(例えば、ソフトウェアによって構成された)に実装する決定は、コストおよび時間の考慮によって決定され得ることが理解されよう。
したがって、「ハードウェアモジュール」という句は、特定の方法で、または本明細書に記載の特定の動作を実行するように、物理的に構築された、恒久的に構成された(例えば、ハードワイヤード)、または一時的に構成された(例えば、プログラムされた)エンティティである、有形のエンティティを包含すると理解されるべきである。本明細書で使用される場合、「ハードウェア実装モジュール」は、ハードウェアモジュールを指す。ハードウェアモジュールが一時的に構成される(例えば、プログラムされる)実施形態を考慮すると、ハードウェアモジュールのそれぞれは、任意のある時点で構成またはインスタンス化される必要はない。例えば、ハードウェアモジュールが、専用プロセッサになるようにソフトウェアによって構成された汎用プロセッサを含む場合、その汎用プロセッサは、異なる時間にそれぞれ異なる専用プロセッサ(例えば、異なるハードウェアモジュールを含む)として構成され得る。したがって、ソフトウェアは、例えば、ある時点で特定のハードウェアモジュールを構成し、異なる時点で異なるハードウェアモジュールを構成するように、1つまたは複数の特定のプロセッサを構成し得る。
ハードウェアモジュールは、他のハードウェアモジュールに情報を提供したり、他のハードウェアモジュールから情報を受信したりすることができる。したがって、説明されたハードウェアモジュールは、通信可能に結合されていると見なされ得る。複数のハードウェアモジュールが同時に存在する場合、通信は、2つ以上のハードウェアモジュール間または2つ以上のハードウェアモジュールのうちでの信号送信(例えば、適切な回路およびバスを介した)によって実現され得る。複数のハードウェアモジュールが異なる時間に構成またはインスタンス化される実施形態では、そのようなハードウェアモジュール間の通信は、例えば、複数のハードウェアモジュールがアクセスできるメモリ構造内の情報の格納および取得によって実現され得る。例えば、1つのハードウェアモジュールは、動作を実行し、その動作の出力を、それが通信可能に結合されているメモリデバイスに格納し得る。次に、さらなるハードウェアモジュールが、後で、メモリデバイスにアクセスして、格納された出力を取得および処理し得る。ハードウェアモジュールはまた、入力デバイスまたは出力デバイスとの通信を開始し得、リソース上で動作することができる(例えば、情報の収集)。
本明細書に記載の例示的な方法の様々な動作は、関連する動作を実行するように一時的に(例えば、ソフトウェアによって)または恒久的に構成された1つまたは複数のプロセッサによって、少なくとも部分的に実行され得る。一時的または恒久的に構成されているかどうかにかかわらず、そのようなプロセッサは、本明細書に記載の1つまたは複数の動作または機能を実行するように動作する、プロセッサ実装モジュールを構成し得る。本明細書で使用される場合、「プロセッサ実装モジュール」は、1つまたは複数のプロセッサを使用して実装されたハードウェアモジュールを指す。
同様に、本明細書に記載の方法は、少なくとも部分的にプロセッサで実装され得、特定の1つまたは複数のプロセッサがハードウェアの例である。例えば、方法の動作の少なくともいくつかは、1つまたは複数のプロセッサまたはプロセッサ実装モジュールによって実行され得る。さらに、1つまたは複数のプロセッサは、「クラウドコンピューティング」環境または「サービスとしてのソフトウェア」(SaaS : software as a service)での関連する動作のパフォーマンスをサポートするように動作し得る。例えば、複数の動作の少なくともいくつかは、(プロセッサを含むマシンの例として)コンピュータのグループによって実行され得、これらの動作には、ネットワーク(例えば、インターネット)および1つまたは複数の適切なインターフェース(例えば、アプリケーションプログラムインターフェース(API : application program interface))を介してアクセスすることができる。
特定の動作のパフォーマンスは、単一のマシン内に存在するだけでなく、複数のマシンに展開されるプロセッサ間で分散され得る。いくつかの例示的な実施形態では、プロセッサまたはプロセッサ実装モジュールは、単一の地理的場所(例えば、住居環境、オフィス環境、またはサーバファーム内)に配置され得る。他の例示的な実施形態では、プロセッサまたはプロセッサ実装モジュールは、いくつかの地理的位置に分散され得る。
図5は、例示的なソフトウェアアーキテクチャ702を示すブロック図700であり、ソフトウェアアーキテクチャ702は、ゲーミングエンジン701と、ストーリーマネージャシステムの複数のコンポーネントと、の両方または一方を提供するために、本明細書に記載の様々なハードウェアアーキテクチャと併せて使用され得る。図5は、ソフトウェアアーキテクチャの非限定的な例であり、本明細書に記載の機能を可能にするために、他の多くのアーキテクチャが実装され得ることが理解されよう。ソフトウェアアーキテクチャ702は、とりわけ、プロセッサ810、メモリ830、および入出力(I/O)コンポーネント850を含む、図6のマシン800などのハードウェア上で実行され得る。代表的なハードウェア層704が示され、例えば、図6のマシン800を表すことができる。代表的なハードウェア層704は、関連付けられている実行可能命令708を有する処理ユニット706を含む。実行可能命令708は、本明細書に記載の方法、モジュールなどの実装を含む、ソフトウェアアーキテクチャ702の実行可能命令を表す。ハードウェア層704はまた、実行可能命令708も含むメモリ/ストレージ710を含む。ハードウェア層704はまた、他のハードウェア712を備え得る。
図5の例示的なアーキテクチャでは、ソフトウェアアーキテクチャ702は、各層が特定の機能を提供する層のスタックとして概念化され得る。例えば、ソフトウェアアーキテクチャ702は、オペレーティングシステム714、ライブラリ716、フレームワークまたはミドルウェア718、アプリケーション720、およびプレゼンテーション層744などの層を含み得る。動作上、アプリケーション720およびレイヤ内の他のコンポーネントまたはアプリケーション720もしくはレイヤ内の他のコンポーネントは、ソフトウェアスタックを介してアプリケーションプログラミングインターフェース(API)コール724を呼び出し、メッセージ726として応答を受信し得る。示されている層は、本質的に代表的なものであり、すべてのソフトウェアアーキテクチャにすべての層があるわけではない。例えば、いくつかのモバイルまたは専用オペレーティングシステムは、フレームワーク/ミドルウェア718を提供しなくてもよいが、他のものはそのような層を提供してもよい。他のソフトウェアアーキテクチャは、追加の層または異なる層を含み得る。
オペレーティングシステム714は、ハードウェアリソースを管理し、共通のサービスを提供し得る。オペレーティングシステム714は、例えば、カーネル728、サービス730、およびドライバ732を含み得る。カーネル728は、ハードウェア層と他のソフトウェア層との間の抽象化層として機能し得る。例えば、カーネル728は、メモリ管理、プロセッサ管理(例えば、スケジューリング)、コンポーネント管理、ネットワーキング、セキュリティ設定などを担い得る。サービス730は、他のソフトウェア層に他の共通サービスを提供し得る。ドライバ732は、基礎となるハードウェアの制御またはインターフェースを担い得る。例えば、ドライバ732は、ハードウェア構成に応じて、ディスプレイドライバ、カメラドライバ、Bluetooth(登録商標)ドライバ、フラッシュメモリドライバ、シリアル通信ドライバ(例えば、ユニバーサルシリアルバス(USB : Universal Serial Bus)ドライバ)、Wi‐Fi(登録商標)ドライバ、オーディオドライバ、電力管理ドライバなどを含んでもよい。
ライブラリ716は、アプリケーション720および/または他のコンポーネントおよび/または層によって使用され得る共通のインフラストラクチャを提供し得る。ライブラリ716は、典型的には、他のソフトウェアモジュールが、基礎となるオペレーティングシステム714の機能(例えば、カーネル728、サービス730および/またはドライバ732)と直接インターフェースするよりも簡単な方法でタスクを実行できるようにする機能を提供する。ライブラリ816は、メモリ割り当て関数、文字列動作関数、数学関数などの複数の関数(functions)を提供し得るシステムライブラリ734(例えば、C標準ライブラリ)を含み得る。さらに、ライブラリ716は、メディアライブラリ(例えば、MPEG4、H.264、MP3、AAC、AMR、JPG、PNGなどの様々なメディアフォーマットの提示および動作をサポートするためのライブラリ)、グラフィックスライブラリ(例えば、ディスプレイに2Dおよび3Dグラフィックコンテンツをレンダリングするために使用され得るOpenGLフレームワーク)、データベースライブラリ(例えば、様々なリレーショナルデータベース機能を提供し得るSQLite)、Webライブラリ(例えば、Webブラウジング機能を提供するWebKit)などの、APIライブラリ736を含み得る。ライブラリ716はまた、アプリケーション720および他のソフトウェアコンポーネント/モジュールに他の多くのAPIを提供するために、多種多様な他のライブラリ738を含み得る。
フレームワーク718(ミドルウェアとも呼ばれる)は、アプリケーション720および他のソフトウェアコンポーネント/モジュールまたはアプリケーション720もしくは他のソフトウェアコンポーネント/モジュールによって使用され得る高レベルの共通インフラストラクチャを提供する。例えば、フレームワーク/ミドルウェア718は、様々なグラフィックユーザインターフェース(GUI)機能、高レベルのリソース管理、高レベルの位置情報サービスなどを提供し得る。フレームワーク/ミドルウェア718は、アプリケーション720および他のソフトウェアコンポーネント/モジュールまたはアプリケーション720もしくは他のソフトウェアコンポーネント/モジュールによって利用され得る広範囲の他のAPIを提供し得、それらのいくつかは、特定のオペレーティングシステムまたはプラットフォームに固有であり得る。
アプリケーション720は、ビルトインアプリケーション740およびサードパーティアプリケーション742の両方または一方を含む。代表的なビルトインアプリケーション740の例には、連絡先アプリケーション、ブラウザアプリケーション、ブックリーダアプリケーション、ロケーションアプリケーション、メディアアプリケーション、メッセージングアプリケーション、および/またはゲームアプリケーションが含まれ得るが、これらに限定されない。サードパーティアプリケーション742には、特定のプラットフォームのベンダー以外のエンティティによってAndroid(登録商標)またはiOS(登録商標)ソフトウェア開発キット(SDK : software development kit)を使用して開発されたアプリケーションが含まれ得、サードパーティアプリケーション742は、iOS(登録商標)、Android(商標)、Windows(登録商標)Phone、またはその他のモバイルオペレーティングシステムなどのモバイルオペレーティングシステムでランされるモバイルソフトウェアであり得る。サードパーティアプリケーション742は、本明細書に記載の機能を可能にするために、オペレーティングシステム714などのモバイルオペレーティングシステムによって提供されるAPIコール724を呼び出し得る。
アプリケーション720は、ビルトインオペレーティングシステム機能(例えば、カーネル728、サービス730および/またはドライバ732)、ライブラリ716、またはフレームワーク/ミドルウェア718を使用して、システムのユーザと対話するためのユーザインターフェースを作成し得る。代替して、または追加して、いくつかのシステムでは、ユーザとの対話は、プレゼンテーション層744などのプレゼンテーション層を介して発生し得る。これらのシステムでは、アプリケーション/モジュールの「ロジック」を、ユーザと対話するアプリケーション/モジュールの態様から分離することができる。
一部のソフトウェアアーキテクチャは、仮想マシンを使用する。図5の例では、これは仮想マシン748によって示されている。仮想マシン748は、アプリケーション/モジュールがハードウェアマシン(例えば、図6のマシン800など)上で実行されているかのように実行することができるソフトウェア環境を作成する。仮想マシン748は、ホストオペレーティングシステム(例えば、オペレーティングシステム714)によってホストされ、典型的には、常にではないが、仮想マシン748の動作ならびにホストオペレーティングシステム(すなわち、オペレーティングシステム714)とのインターフェースを管理する仮想マシンモニタ746を有する。ソフトウェアアーキテクチャは、オペレーティングシステム(OS)750、ライブラリ752、フレームワーク754、アプリケーション756、および/またはプレゼンテーション層758などの仮想マシン748内で実行される。仮想マシン748内で実行されるソフトウェアアーキテクチャのこれらの層は、前述の対応する層と同じであってもよく、または異なっていてもよい。
図6は、いくつかの例示的な実施形態による、機械可読媒体(例えば、機械可読記憶媒体)から命令を読み込み、本明細書で論じる方法論のうちの任意の1つまたは複数を実行するように構成されたマシン800の複数のコンポーネントを示すブロック図である。いくつかの実施形態では、マシン800は、ストーリーマネージャデバイス102に類似している。具体的には、図6は、コンピュータシステムの例示的形態におけるマシン800の図表示を示しており、そのコンピュータシステム内で、本明細書で論じる複数の方法論のうちの任意の1つまたは複数をマシン800に実施させるための複数の命令816(例えば、ソフトウェア、プログラム、アプリケーション、アプレット、アプリまたは他の実行可能コード)が実行されてもよい。したがって、複数の命令816は、本明細書に記載の複数のモジュールまたは複数のコンポーネントを実装するために使用され得る。命令は、一般的なプログラムされていないマシンを、記載の方法で説明かつ図示された機能を実行するようにプログラムされた特定のマシンに変換する。代替実施形態では、マシン800は、スタンドアロンデバイスとして動作するかまたは他のマシンに接続(例えば、ネットワーク化)されてもよい。ネットワーク化された構成では、マシン800は、サーバ/クライアントネットワーク環境内のサーバマシンもしくはクライアントマシンの能力内で、またはピアツーピア(もしくは分散型)ネットワーク環境内のピアマシンとして動作してもよい。マシン800は、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC : personal computer)、タブレットコンピュータ、ラップトップコンピュータ、ネットブック、セットトップボックス(STB : set‐top box)、携帯情報端末(PDA : personal digital assistant)、エンタテインメントメディアシステム、携帯電話、スマートフォン、モバイルデバイス、ウェアラブルデバイス(例えば、スマートウォッチ)、スマートホームデバイス(例えば、スマート家電)、他のスマートデバイス、ウェブアプライアンス、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジ、または順次または別の方法で、マシン800によってとられるべき複数の動作を指定する複数の命令816を実行することができる任意のマシンを含んでもよいが、これらに限定されない。さらに、単一のマシン800のみが示されているが、「マシン」という用語は、本明細書で論じる複数の方法論のうちの任意の1つまたは複数を行うために個別にまたは共同で複数の命令816を実行するマシンの集合体も含むものとする。
マシン800は、バス802を介するなどして互いに通信するように構成されてもよい、プロセッサ810、メモリ830、および入出力(I/O)コンポーネント850を含んでもよい。例示的な実施形態では、プロセッサ810(例えば、中央処理装置(CPU)、縮小命令セット計算(RISC : reduced instruction set computing)プロセッサ、複合命令セット計算(CISC : complex instruction set computing)プロセッサ、グラフィック処理装置(GPU)、デジタル信号プロセッサ(DSP : digital signal processor)、特定用途向け集積回路(ASIC)、無線周波数集積回路(RFIC : radio‐frequency integrated circuit)、他のプロセッサまたはそれらの任意の好適な組み合わせ)は、例えば、命令816を実行してもよいプロセッサ812およびプロセッサ814を含んでもよい。「プロセッサ」という用語は、命令を同時に実行してもよい2つ以上の独立したプロセッサ(場合により「コア」と称する)を含んでもよいマルチコアプロセッサを含むことを意図している。図6は、マルチプロセッサを示すが、マシン800は、シングルコアを有するシングルプロセッサ、マルチコアを有するシングルプロセッサ(例えば、マルチコアプロセッサ)、シングルコアを有するマルチプロセッサ、マルチプルコアを有するマルチプロセッサまたはそれらの任意の組み合わせを含んでもよい。
メモリ/ストレージ830は、メインメモリ832、スタティックメモリ834、または他のメモリなどのメモリ、およびストレージユニット836を含み得、これらは両方とも、バス802を介するなどして、プロセッサ810にアクセス可能である。ストレージユニット836およびメモリ832、834は、本明細書に記載の複数の方法論または機能のいずれか1つまたは複数を具体化する複数の命令816を格納する。命令816はまた、マシン800による実行中、完全にまたは部分的に、メモリ832、834内、ストレージユニット836内、少なくとも1つのプロセッサ810内(例えば、プロセッサのキャッシュメモリ内)またはそれらの任意の好適な組み合わせ内に存在してもよい。したがって、メモリ832、834、ストレージユニット836およびプロセッサ810のメモリは、機械可読媒体838の例である。
本明細書で使用される場合、「機械可読媒体」は、命令およびデータを一時的または恒久的に記憶することができる装置を意味し、ランダムアクセスメモリ(RAM : random‐access memory)、読み取り専用メモリ(ROM : read‐only memory)、バッファメモリ、フラッシュメモリ、光媒体、磁気媒体、キャッシュメモリ、他の種類のストレージ(例えば、消去可能プログラマブル読み出し専用メモリ(EEPROM : erasable programmable read‐only memory))および/またはそれらの任意の好適な組み合わせを含んでもよいが、これらに限定されない。「機械可読媒体」という用語は、複数の命令816を記憶することができる単一の媒体または複数の媒体(例えば、集中型もしくは分散型データベースまたは関連付けられているキャッシュおよびサーバ)を含むように解釈されるべきである。「機械可読媒体」という用語はまた、マシン(例えば、マシン800)によって実行するための複数の命令(例えば、複数の命令816)を格納することができる任意の媒体、または複数の媒体の組み合わせを含むと解釈され、命令は、マシン800の1つまたは複数のプロセッサ(例えば、プロセッサ810)によって実行されると、マシン800に、本明細書に記載されている、非定型もしくは非従来型の方法論もしくは動作、または方法論もしくは動作の非定型もしくは非従来型の組み合わせを含む、任意の1つまたは複数の方法論または動作を実行させる。したがって、「機械可読媒体」は、単一のストレージ装置またはデバイス、ならびに複数のストレージ装置またはデバイスを含む「クラウドベースの」ストレージシステムまたはストレージネットワークを指す。「機械可読媒体」という用語は、信号自体を除外する。
入出力(I/O)コンポーネント850は、入力を受信し、出力を提供し、出力を生成し、情報を送信し、情報を交換し、測定値を取り込むなどのための多種多様なコンポーネントを含んでもよい。特定のマシンに含まれる特定の入出力(I/O)コンポーネント850は、マシンの種類に依存することとなる。例えば、携帯電話などのポータブルマシンは、タッチ入力デバイスまたは他のそのような入力機構を含む可能性が高い一方で、ヘッドレスサーバマシンは、そのようなタッチ入力デバイスを含まない可能性が高い。入出力(I/O)コンポーネント850は、図6には示されていない他の多くのコンポーネントを含んでもよいことが理解されよう。入出力(I/O)コンポーネント850は、単に以下の議論を単純化するために機能に従ってグループ化されており、そのグループ化は決して限定的ではない。様々な例示的な実施形態では、入出力(I/O)コンポーネント850は、出力コンポーネント852および入力コンポーネント854を含み得る。出力コンポーネント852は、視覚的コンポーネント(例えば、プラズマディスプレイパネル(PDP : plasma display panel)、発光ダイオード(LED : light emitting diode)ディスプレイ、液晶ディスプレイ(LCD : liquid crystal display)、プロジェクタ、またはブラウン管(CRT : cathode ray tube)などのディスプレイ)、音響コンポーネント(例えば、スピーカ)、触覚コンポーネント(例えば、振動モータ、抵抗機構)、他の信号発生器などを含んでもよい。入力コンポーネント854は、英数字入力コンポーネント(例えば、キーボード、英数字入力を受信するように構成されたタッチスクリーン、光学式キーボードまたは他の英数字入力コンポーネント)、ポイントベースの入力コンポーネント(例えば、マウス、タッチパッド、トラックボール、ジョイスティック、モーションセンサまたは他のポインティング器具)、触覚入力コンポーネント(例えば、物理的ボタン、タッチまたはタッチジェスチャの位置と力または位置もしくは力を提供するタッチスクリーン、または他の触覚入力コンポーネント)、音声入力コンポーネント(例えば、マイクロフォン)などを含んでもよい。
さらなる例示的な実施形態では、入出力(I/O)コンポーネント850は、他の多様なコンポーネントの中から、バイオメトリックコンポーネント856、モーションコンポーネント(motion components)858、環境コンポーネント860または位置コンポーネント862を含んでもよい。例えば、バイオメトリックコンポーネント856は、表情(例えば、手の表現、顔の表情、声の調子、身体のジェスチャまたはアイトラッキング)を検出し、生体信号(例えば、血圧、心拍数、体温、発汗または脳波)を測定し、人物を識別する(例えば、音声識別、網膜識別、顔識別、指紋識別または脳波図に基づく識別)などのコンポーネントを含んでもよい。モーションコンポーネント858は、加速度センサコンポーネント(例えば、加速度計)、重力センサコンポーネント、回転センサコンポーネント(例えば、ジャイロスコープ)などを含んでもよい。環境コンポーネント860は、例えば、照度センサコンポーネント(例えば、光度計)、温度センサコンポーネント(例えば、周囲温度を検出する1つまたは複数の温度計)、湿度センサコンポーネント、圧力センサコンポーネント(例えば、気圧計)、音響センサコンポーネント(例えば、バックグラウンドノイズを検出する1つまたは複数のマイクロフォン)、近接センサコンポーネント(例えば、近くの物体を検出する赤外線センサ)、ガスセンサ(例えば、安全のために有害ガスの濃度を検出するか大気中の汚染物質を測定するためのガス検出センサ)、または周囲の物理的環境に対応する指標、測定値もしくは信号を提供してもよい他のコンポーネントを含んでもよい。位置コンポーネント862は、位置センサコンポーネント(例えば、全地球測位システム(GPS : global position system)受信機コンポーネント)、高度センサコンポーネント(例えば、高度計または高度が導出され得る気圧を検出する気圧計)、方位センサコンポーネント(例えば、磁力計)などを含んでもよい。
通信は、多種多様な技術を使用して実施してもよい。入出力(I/O)コンポーネント850は、カップリング882およびカップリング872を介して、それぞれネットワーク880またはデバイス870にマシン800を接続するように動作可能な通信コンポーネント864を含んでもよい。例えば、通信コンポーネント864は、ネットワーク880とインターフェースするためのネットワークインターフェースコンポーネントまたは他の適切なデバイスを含んでもよい。さらなる例では、通信コンポーネント864は、有線通信コンポーネント、無線通信コンポーネント、セルラー方式通信コンポーネント、近距離通信(NFC : near field communication)コンポーネント、Bluetooth(登録商標)コンポーネント(例えば、Bluetooth(登録商標) Low Energy)、Wi‐Fi(登録商標)コンポーネント、および他のモダリティを介した通信を提供するための他の通信コンポーネントを含んでもよい。デバイス870は、他のマシンまたは多種多様な周辺デバイス(例えば、ユニバーサルシリアルバス(USB : universal serial bus)を介して接続された周辺デバイス)のうちのいずれかであってもよい。
さらに、通信コンポーネント864は、識別子を検出してもよいか、または識別子を検出するように動作可能なコンポーネントを含んでもよい。例えば、通信コンポーネント864は、無線周波数識別(RFID : radio frequency identification)タグリーダコンポーネント、NFCスマートタグ検出コンポーネント、光学式リーダコンポーネント(例えば、ユニバーサルプロダクトコード(UPC : universal product code)バーコードなどの一次元バーコードを検出するための光学センサ、クイックレスポンス(QR : quick response)コード、Aztecコード、Data Matrix、Dataglyph、MaxiCode、PDF417、Ultra Code、UCC RSS‐2Dバーコード、および他の光学コードなどの多次元バーコード)、または音響検出コンポーネント(例えば、タグ付き音声信号を識別するためのマイクロフォン)を含んでもよい。加えて、インターネットプロトコル(IP : internet protocol)地理的位置情報による位置、Wi‐Fi(登録商標)信号三角測量による位置、特定の位置を示し得るNFCビーコン信号を検出することによる位置など、様々な情報は、通信コンポーネント862を介して導出されてもよい。
本明細書を通して、複数のインスタンスは、単一のインスタンスとして説明されているコンポーネント、動作または構造を実装してもよい。1つまたは複数の方法の個々の動作は、別々の動作として図示および説明されているが、個々の動作のうちの1つまたは複数は、同時に実行されてもよく、動作が図示の順序で実行される必要はない。例示的な構成において別々のコンポーネントとして提示された構造および機能は、組み合わされた構造またはコンポーネントとして実装されてもよい。同様に、単一のコンポーネントとして提示された構造および機能は、別々のコンポーネントとして実装されてもよい。これらおよび他の変形、修正、追加および改良は、本明細書の主題の範囲内に含まれる。
本明細書に示された実施形態は、開示された教示を当業者が実施することを可能にするために十分に詳細に記載されている。本開示の範囲を逸脱することなく、構造上ならびに論理上の置き換えおよび変更を行い得るように、上記の記載から他の実施形態を利用し、引き出すことができる。したがって、「発明を実施するための形態」は、限定的な意味で解釈されるべきではなく、様々な実施形態の範囲は添付の特許請求の範囲とそのような特許請求の範囲が権利を与える等価物の全範囲によってのみ定義される。
本明細書で使用される場合、「または」という用語は、包括的または排他的な意味で解釈され得る。さらに、本明細書で単一インスタンスとして説明されているリソース、動作または構造のために複数インスタンスが提供され得る。加えて、様々なリソース、動作、モジュール、エンジンおよびデータストアの間の境界は、若干任意であり、特定の動作は、特定の例示的な構成の文脈で示されている。機能の他の割り当てが想定され、本開示の様々な実施形態の範囲内に含まれてもよい。一般に、例示的な構成において別々のリソースとして提示された構造および機能は、組み合わされた構造またはリソースとして実装されてもよい。同様に、単一のリソースとして提示された構造および機能は、別々のリソースとして実装されてもよい。これらおよび他の変形、修正、追加および改良は、添付の特許請求の範囲によって表される本開示の実施形態の範囲内に含まれる。したがって、本明細書および図面は、限定的な意味ではなく、例示的なものとして認識されるべきである。

Claims (18)

  1. 1つまたは複数のコンピュータプロセッサと、
    1つまたは複数のコンピュータメモリと、
    前記1つまたは複数のコンピュータメモリに組み込まれるストーリーマネージャモジュールと、を備えるシステムであって、
    前記ストーリーマネージャモジュールは、ビデオゲームに関連するビデオの複数のフレーム内でランタイムにおいて関心オブジェクトのシネマティックショット品質を決定するための複数の動作を行うように構成されており、前記複数の動作は、
    前記ビデオゲーム内からのオブジェクトの集合の中から前記複数のフレームのうちの1つのフレーム内で複数の関心オブジェクトを決定するステップと、
    少なくとも前記ゲーム内で起こるイベントの集合を記述するゲーム状態データを、前記ゲームから受信するステップと、
    前記複数の関心オブジェクトに関連する複数のカテゴリに対応する複数の関心レベル値を決定するステップであって、前記複数の関心レベル値は前記ゲーム状態データに基づく、前記複数の関心レベル値を決定するステップと、
    前記複数のフレームのうちの前記フレームに関連するシネマトグラフィの管理で使用するために、前記複数の関心レベル値の探索を可能にするデータ構造を生成するステップと、
    前記ランタイムにおいて前記フレーム内で前記複数の関心オブジェクトについて複数の枯渇値を決定するステップであって、前記複数の枯渇値のそれぞれは、前記複数の関心オブジェクトのうちの1つの関心オブジェクトが前記複数のフレームのうちの前の複数のフレームで可視状態である時間量の累積合計に反比例し、前記データ構造は、前記複数の枯渇値の探索をさらに可能にする、前記複数の枯渇値を決定するステップと、を含む、システム。
  2. 前記複数の動作は、
    前記複数の関心オブジェクトについて、複数の緊急度値を決定するステップであって、前記複数の緊急度値のそれぞれは、関心オブジェクトに関連する前記複数の関心レベル値および前記枯渇値に基づいており、前記緊急度値は、前記フレーム内で前記関心オブジェクトを見る緊急度の尺度を表す、前記複数の緊急度値を決定するステップをさらに含み、
    前記データ構造は、前記複数の緊急度値の探索をさらに可能にする、請求項に記載のシステム。
  3. 前記複数の動作は、
    複数の多次元状態ベクトルを決定するステップであって、前記複数の多次元状態ベクトルのそれぞれは、前記複数の関心オブジェクトのうちの1つの関心オブジェクトの感情状態を記述する、前記複数の多次元状態ベクトルを決定するステップと、
    仮想カメラからのショットの合計感情品質値の決定で使用するために、前記複数の多次元感情状態ベクトルを提供するステップと、をさらに含む、請求項1に記載のシステム。
  4. 前記ショットの前記合計感情品質の値がある範囲内にあることに基づいて、所定の複数のシネマトグラフィルールに基づいて前記感情品質を反映するように前記ショットを変更するために、仮想カメラの複数のパラメータおよび複数の設定を変更する、請求項に記載のシステム。
  5. 前記複数の動作は、
    複数の仮想カメラを作成するステップであって、前記複数の仮想カメラのそれぞれは、前記複数の関心オブジェクトから1つの関心オブジェクトを追跡するように構成されている、前記複数の仮想カメラを作成するステップと、
    前記複数の仮想カメラのそれぞれについて、前記仮想カメラによって追跡される前記関心オブジェクトのショットをフレーミングするステップであって、
    前記ショットのフレーミングは、
    前記関心オブジェクトに対応する前記データ構造内で緊急度値を探索するステップと、
    前記緊急度値、前記ショット内の前記関心オブジェクトの位置、および前記ショット内の前記関心オブジェクトのサイズのうちの1つまたは複数に基づいて、前記関心オブジェクトの前記ショットの品質を決定するステップと、を含む、
    前記関心オブジェクトのショットをフレーミングするステップと、をさらに含む、請求項に記載のシステム。
  6. 前記複数の動作は、
    前記複数の仮想カメラからのショットを前のフレームからのアクティブショットと比較して、前記ショットと前記アクティブショットとの間の遷移の品質の尺度を決定するステップとを含み、
    前記品質の尺度は、前記アクティブショットの感情品質、ショット品質値、およびショットの長さのうちの1つまたは複数についての遷移の尺度を含む、請求項に記載のシステム。
  7. 前記複数の動作は、
    前記複数の仮想カメラから前記アクティブショットになるショットを選択するステップを含み、
    前記選択は、前記ショットの感情品質値、前記ショットのショット品質値、および前記ショットの遷移の品質の尺度のうちの少なくとも1つに基づく、請求項に記載のシステム。
  8. 前記複数の動作は、第2の関心オブジェクトが前記ショットに入ることに基づいて、前記ショット内に前記第2の関心オブジェクトを含むようにカメラショットの構図を変えるステップを含む、請求項に記載のシステム。
  9. 1つまたは複数のコンピュータプロセッサによって実行されると、前記1つまたは複数のコンピュータプロセッサに、ビデオゲームに関連するビデオの複数のフレーム内でランタイムにおいて関心オブジェクトのシネマティックショット品質を決定するための複数の動作を行わせる一組の命令を備える非一時的なコンピュータ可読媒体であって、前記複数の動作は、
    前記ビデオゲーム内からのオブジェクトの集合の中から前記複数のフレームのうちの1つのフレーム内で複数の関心オブジェクトを決定するステップと、
    少なくとも前記ゲーム内で起こるイベントの集合を記述するゲーム状態データを、前記ゲームから受信するステップと、
    前記複数の関心オブジェクトに関連する複数のカテゴリに対応する複数の関心レベル値を決定するステップであって、前記複数の関心レベル値は前記ゲーム状態データに基づく、前記複数の関心レベル値を決定するステップと、
    前記複数のフレームのうちの前記フレームに関連するシネマトグラフィの管理で使用するために、前記複数の関心レベル値の探索を可能にするデータ構造を生成するステップと、
    前記ランタイムにおいて、前記フレーム内で前記複数の関心オブジェクトについて複数の枯渇値を決定するステップであって、前記複数の枯渇値のそれぞれは、前記複数の関心オブジェクトのうちの1つの関心オブジェクトが前記複数のフレームのうちの前の複数のフレームで可視状態である時間量の累積合計に反比例し、前記データ構造は、前記複数の枯渇値の探索をさらに可能にする、前記複数の枯渇値を決定するステップと、を含む、非一時的なコンピュータ可読媒体。
  10. 前記複数の動作は、
    前記複数の関心オブジェクトについて、複数の緊急度値を決定するステップであって、前記複数の緊急度値のそれぞれは、関心オブジェクトに関連する前記複数の関心レベル値および前記枯渇値に基づいており、前記緊急度値は、前記フレーム内で前記関心オブジェクトを見る緊急度の尺度を表す、前記複数の緊急度値を決定するステップをさらに含み、
    前記データ構造は、前記複数の緊急度値の探索をさらに可能にする、請求項に記載の非一時的なコンピュータ可読媒体。
  11. 前記複数の動作は、
    複数の多次元状態ベクトルを決定するステップであって、前記複数の多次元状態ベクトルのそれぞれは、前記複数の関心オブジェクトのうちの1つの関心オブジェクトの感情状態を記述する、前記複数の多次元状態ベクトルを決定するステップと、
    仮想カメラからのショットの合計感情品質値の決定で使用するために、前記複数の多次元感情状態ベクトルを提供するステップと、をさらに含む、請求項に記載の非一時的なコンピュータ可読媒体。
  12. 前記ショットの前記合計感情品質の値がある範囲内にあることに基づいて、所定の複数のシネマトグラフィルールに基づいて前記感情品質を反映するように前記ショットを変更するために、仮想カメラの複数のパラメータおよび複数の設定を変更する、請求項11に記載の非一時的なコンピュータ可読媒体。
  13. 前記複数の動作は、
    複数の仮想カメラを作成するステップであって、前記複数の仮想カメラのそれぞれは、前記複数の関心オブジェクトから1つの関心オブジェクトを追跡するように構成されている、前記複数の仮想カメラを作成するステップと、
    前記複数の仮想カメラのそれぞれについて、前記仮想カメラによって追跡される前記関心オブジェクトのショットをフレーミングするステップであって、
    前記ショットのフレーミングは、
    前記関心オブジェクトに対応する前記データ構造内で緊急度値を探索するステップと、
    前記緊急度値、前記ショット内の前記関心オブジェクトの位置、および前記ショット内の前記関心オブジェクトのサイズのうちの1つまたは複数に基づいて、前記関心オブジェクトの前記ショットの品質を決定するステップと、を含む、
    前記関心オブジェクトのショットをフレーミングするステップと、をさらに含む、請求項10に記載の非一時的なコンピュータ可読媒体。
  14. 前記複数の動作は、
    前記複数の仮想カメラからのショットを前のフレームからのアクティブショットと比較して、前記ショットと前記アクティブショットとの間の遷移の品質の尺度を決定するステップとを含み、
    前記品質の尺度は、前記アクティブショットの感情品質、ショット品質値、およびショットの長さのうちの1つまたは複数についての遷移の尺度を含む、請求項13に記載の非一時的なコンピュータ可読媒体。
  15. 前記複数の動作は、
    前記複数の仮想カメラから前記アクティブショットになるショットを選択するステップを含み、
    前記選択は、前記ショットの感情品質値、前記ショットのショット品質値、および前記ショットの遷移の品質の尺度のうちの少なくとも1つに基づく、請求項14に記載の非一時的なコンピュータ可読媒体。
  16. 1つまたは複数のコンピュータプロセッサを使用して、ビデオゲームに関連するビデオの複数のフレーム内でランタイムにおいて関心オブジェクトのシネマティックショット品質を決定するための複数の動作を行うことを含む方法であって、前記複数の動作は、
    前記ビデオゲーム内からのオブジェクトの集合の中から前記複数のフレームのうちの1つのフレーム内で複数の関心オブジェクトを決定するステップと、
    少なくとも前記ゲーム内で起こるイベントの集合を記述するゲーム状態データを、前記ゲームから受信するステップと、
    前記複数の関心オブジェクトに関連する複数のカテゴリに対応する複数の関心レベル値を決定するステップであって、前記複数の関心レベル値は前記ゲーム状態データに基づく、前記複数の関心レベル値を決定するステップと、
    前記複数の関心オブジェクトについて、複数の枯渇値を決定するステップであって、前記複数の枯渇値のそれぞれは、前記複数の関心オブジェクトのうちの1つの関心オブジェクトが前記複数のフレームのうちの前の複数のフレームで可視状態である時間量の累積合計に反比例する、前記複数の枯渇値を決定するステップと、
    前記複数の関心オブジェクトについて、複数の緊急度値を決定するステップであって、前記複数の緊急度値のそれぞれは、関心オブジェクトに関連する前記複数の関心レベル値および前記枯渇値に基づいており、前記緊急度値は、前記複数のフレームのうちの前記フレーム内で前記関心オブジェクトを見る緊急度の尺度を表す、前記複数の緊急度値を決定するステップと、
    前記ランタイムにおいて前記フレームに関連するシネマトグラフィの管理で使用するために、前記ランタイムにおいて前記複数の関心レベル値、前記複数の枯渇値および前記複数の緊急度値の探索を可能にするデータ構造を生成するステップと、を含む、方法。
  17. 前記複数の動作は、
    複数の多次元状態ベクトルを決定するステップであって、前記複数の多次元状態ベクトルのそれぞれは、前記複数の関心オブジェクトのうちの1つの関心オブジェクトの感情状態を記述する、前記複数の多次元状態ベクトルを決定するステップと、
    仮想カメラからのショットの合計感情品質値の決定で使用するために、前記複数の多次元感情状態ベクトルを提供するステップと、
    前記ショットの前記合計感情品質の値がある範囲内にあることに基づいて、所定の複数のシネマトグラフィルールに基づいて前記感情品質を反映するように前記ショットを変更するために、仮想カメラの複数のパラメータおよび複数の設定を変更するステップと、をさらに含む、請求項16に記載の方法。
  18. 前記複数の動作は、
    複数の仮想カメラを作成するステップであって、前記複数の仮想カメラのそれぞれは、前記複数の関心オブジェクトから1つの関心オブジェクトを追跡するように構成されている、前記複数の仮想カメラを作成するステップと、
    前記複数の仮想カメラのそれぞれについて、前記仮想カメラによって追跡される前記関心オブジェクトのショットをフレーミングするステップであって、
    前記ショットのフレーミングは、
    前記関心オブジェクトに対応する前記データ構造内で緊急度値を探索するステップと、
    前記緊急度値、前記ショット内の前記関心オブジェクトの位置、および前記ショット内の前記関心オブジェクトのサイズのうちの1つまたは複数に基づいて、前記関心オブジェクトの前記ショットの品質を決定するステップと、を含む、
    前記関心オブジェクトのショットをフレーミングするステップと、
    前記複数の仮想カメラからのショットを前のフレームからのアクティブショットと比較して、前記ショットと前記アクティブショットとの間の遷移の品質の尺度を決定するステップであって、前記品質の尺度は、前記アクティブショットの感情品質、ショット品質値、およびショットの長さのうちの1つまたは複数についての遷移の尺度を含む、前記遷移の品質の尺度を決定するステップと、
    前記複数の仮想カメラから前記アクティブショットになるショットを選択するステップであって、前記選択は、前記ショットの感情品質値、前記ショットのショット品質値、および前記ショットの遷移の品質の尺度のうちの少なくとも1つに基づく、前記アクティブショットになるショットを選択するステップと、をさらに含む、請求項16に記載の方法。
JP2021573582A 2019-06-12 2020-06-12 ストーリー内のオブジェクトの感情適合性を管理する方法およびシステム Active JP7222121B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962860741P 2019-06-12 2019-06-12
US62/860,741 2019-06-12
PCT/EP2020/066296 WO2020249726A1 (en) 2019-06-12 2020-06-12 Method and system for managing emotional relevance of objects within a story

Publications (2)

Publication Number Publication Date
JP2022536510A JP2022536510A (ja) 2022-08-17
JP7222121B2 true JP7222121B2 (ja) 2023-02-14

Family

ID=71092545

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021573582A Active JP7222121B2 (ja) 2019-06-12 2020-06-12 ストーリー内のオブジェクトの感情適合性を管理する方法およびシステム

Country Status (4)

Country Link
US (1) US20200391109A1 (ja)
JP (1) JP7222121B2 (ja)
CN (1) CN114126728A (ja)
WO (1) WO2020249726A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11869135B2 (en) 2020-01-16 2024-01-09 Fyusion, Inc. Creating action shot video from multi-view capture data
US11252398B2 (en) * 2020-01-16 2022-02-15 Fyusion, Inc. Creating cinematic video from multi-view capture data
US11943565B2 (en) * 2021-07-12 2024-03-26 Milestone Systems A/S Computer implemented method and apparatus for operating a video management system

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000516371A (ja) 1996-08-02 2000-12-05 マイクロソフト コーポレイション バーチャルシネマトグラフィの方法及びシステム
JP2009240576A (ja) 2008-03-31 2009-10-22 Konami Digital Entertainment Co Ltd ゲーム画像送信装置、ゲーム画像送信装置の制御方法、及びプログラム
WO2010008373A1 (en) 2008-07-14 2010-01-21 Silicon Knights Inc. Apparatus and methods of computer-simulated three-dimensional interactive environments
JP2013208226A (ja) 2012-03-30 2013-10-10 Konami Digital Entertainment Co Ltd ゲーム装置、ゲーム装置の制御方法、及びプログラム
US20140113718A1 (en) 2012-04-26 2014-04-24 Riot Games, Inc. Systems and methods that enable a spectator's experience for online active games
EP2829307A2 (en) 2013-07-25 2015-01-28 Square Enix Co., Ltd. Image processing program, image processing device and image processing method
JP2015159395A (ja) 2014-02-24 2015-09-03 Kddi株式会社 カメラワーク情報生成装置、カメラワーク情報生成方法およびコンピュータプログラム
JP2018147002A (ja) 2017-03-01 2018-09-20 任天堂株式会社 画像処理プログラム、画像処理システム、画像処理装置および画像処理方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7951000B2 (en) * 2005-05-06 2011-05-31 Microsoft Corporation Dynamic frame system
US20070087798A1 (en) * 2005-10-13 2007-04-19 Elliot Mcgucken Morality system and method for video game: system and method for creating story, deeper meaning and emotions, enhanced characters and AI, and dramatic art in video games
GB2458910A (en) * 2008-04-01 2009-10-07 Areograph Ltd Sequential image generation including overlaying object image onto scenic image
US8425325B2 (en) * 2009-02-06 2013-04-23 Apple Inc. Automatically generating a book describing a user's videogame performance
US8613646B2 (en) * 2011-01-21 2013-12-24 Henk B. Rogers Systems and methods for controlling player characters in an interactive multiplayer story
US20150165310A1 (en) * 2013-12-17 2015-06-18 Microsoft Corporation Dynamic story driven gameworld creation
US9997199B2 (en) * 2014-12-05 2018-06-12 Warner Bros. Entertainment Inc. Immersive virtual reality production and playback for storytelling content
US20160266740A1 (en) * 2015-01-19 2016-09-15 Dane Glasgow Interactive multi-media system
US10042506B2 (en) * 2015-03-19 2018-08-07 Disney Enterprises, Inc. Interactive story development system and method for creating a narrative of a storyline
US9552520B1 (en) * 2015-07-07 2017-01-24 Disney Enterprises, Inc. Systems and methods for automatic key frame extraction and storyboard interface generation for video
EP3688997A4 (en) * 2017-09-29 2021-09-08 Warner Bros. Entertainment Inc. PRODUCTION AND CONTROL OF CINEMATIC CONTENT IN RESPONSE TO A USER'S EMOTIONAL STATE
US11090568B1 (en) * 2018-03-27 2021-08-17 Electronic Arts Inc. Dynamic gameplay session content generation system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000516371A (ja) 1996-08-02 2000-12-05 マイクロソフト コーポレイション バーチャルシネマトグラフィの方法及びシステム
JP2009240576A (ja) 2008-03-31 2009-10-22 Konami Digital Entertainment Co Ltd ゲーム画像送信装置、ゲーム画像送信装置の制御方法、及びプログラム
WO2010008373A1 (en) 2008-07-14 2010-01-21 Silicon Knights Inc. Apparatus and methods of computer-simulated three-dimensional interactive environments
JP2013208226A (ja) 2012-03-30 2013-10-10 Konami Digital Entertainment Co Ltd ゲーム装置、ゲーム装置の制御方法、及びプログラム
US20140113718A1 (en) 2012-04-26 2014-04-24 Riot Games, Inc. Systems and methods that enable a spectator's experience for online active games
EP2829307A2 (en) 2013-07-25 2015-01-28 Square Enix Co., Ltd. Image processing program, image processing device and image processing method
JP2015159395A (ja) 2014-02-24 2015-09-03 Kddi株式会社 カメラワーク情報生成装置、カメラワーク情報生成方法およびコンピュータプログラム
JP2018147002A (ja) 2017-03-01 2018-09-20 任天堂株式会社 画像処理プログラム、画像処理システム、画像処理装置および画像処理方法

Also Published As

Publication number Publication date
US20200391109A1 (en) 2020-12-17
JP2022536510A (ja) 2022-08-17
CN114126728A (zh) 2022-03-01
WO2020249726A1 (en) 2020-12-17

Similar Documents

Publication Publication Date Title
JP6746801B2 (ja) 3dコンテンツの作成、放送、および視聴
US10717004B2 (en) Method and system for real-time animation generation using machine learning
JP7222121B2 (ja) ストーリー内のオブジェクトの感情適合性を管理する方法およびシステム
US10599560B2 (en) Method and system for improved performance of a video game engine
CN115698907A (zh) 共享增强现实系统
US11951390B2 (en) Method and system for incremental topological update within a data flow graph in gaming
US11786823B2 (en) System and method for creating personalized game experiences
US11017605B2 (en) Method and system for addressing and segmenting portions of the real world for visual digital authoring in a mixed reality environment
US11986729B2 (en) Method and system for retargeting a human component of a camera motion
JP7189288B2 (ja) リモートデバイス上に大型3dモデルを表示するための方法およびシステム
US11232623B2 (en) Method and system for creating a neural net based lossy renderer
US20220414984A1 (en) Volumetric data processing using a flat file format
US11344812B1 (en) System and method for progressive enhancement of in-app augmented reality advertising
US11875088B2 (en) Systems and methods for smart volumetric layouts
US11863863B2 (en) System and method for frustum context aware digital asset suggestions

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20220126

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220126

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230125

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230202

R150 Certificate of patent or registration of utility model

Ref document number: 7222121

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150