JP2020514920A - 自動化されたカメラコリジョンおよび構図保存のための方法およびシステム - Google Patents

自動化されたカメラコリジョンおよび構図保存のための方法およびシステム Download PDF

Info

Publication number
JP2020514920A
JP2020514920A JP2019551265A JP2019551265A JP2020514920A JP 2020514920 A JP2020514920 A JP 2020514920A JP 2019551265 A JP2019551265 A JP 2019551265A JP 2019551265 A JP2019551265 A JP 2019551265A JP 2020514920 A JP2020514920 A JP 2020514920A
Authority
JP
Japan
Prior art keywords
camera
virtual camera
target
obstacle
module
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.)
Granted
Application number
JP2019551265A
Other languages
English (en)
Other versions
JP6967603B2 (ja
JP2020514920A5 (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 JP2020514920A publication Critical patent/JP2020514920A/ja
Publication of JP2020514920A5 publication Critical patent/JP2020514920A5/ja
Application granted granted Critical
Publication of JP6967603B2 publication Critical patent/JP6967603B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • 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/25Output arrangements for video game devices
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • 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/65Methods for processing data by generating or executing the game program for computing the condition of a game character
    • 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/6653Methods for processing data by generating or executing the game program for rendering three dimensional images for altering the visibility of an object, e.g. preventing the occlusion of an object, partially hiding an object
    • 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
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Studio Devices (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本明細書では、3D仮想環境内のカメラコライダおよびショット構図保存のためのシステムおよび方法であって、対象をフィルム化するときに、仮想手続き型カメラがオブジェクトの後ろに引っかかること、またはオブジェクト内に入り込むことを防止しつつ、同時にカメラショット内の対象のスクリーン構図も維持する、システムおよび方法が記載されている。

Description

本開示は、自動化されたシネマトグラフィのためのソフトウェアツールの分野に関する。
3D仮想シネマトグラフィのワールドには、様々なシナリオでシーンを撮影するための手続き型カメラが存在する。手続き型カメラは、シーンとその中のオブジェクトに何らかの方法で適合するようにプログラムされる。例えば、シーンを撮影するために、手続き型カメラは、3D環境を通じて対象に追従しながら、その対象に対して距離および固定方位を維持することができる。しかしながら、様々なシナリオ(例えば、運動中の対象、運動中の他の3Dオブジェクトなど)を撮影する手続き型カメラでは、対象がいくつかの中間にあるオブジェクトによってカメラ視野から遮蔽されたり、所望のショット構図から外れたりする事例が多く存在する。場合によっては、対象に追従するカメラが、対象に追従しようとしているときにオブジェクトの後ろに引っかかることがあり、または対象に対してある特定のショットを維持するために対象内に入り込むことがある。
上記の問題が重要になり得る手続き型カメラの一例は、ビデオゲームの録画およびブロードキャストであり、非プレイ中のホストは、自身の、リアルタイムのオンラインマルチプレイヤビデオゲームの視野をコメントと共に観覧およびブロードキャストする。これらの非プレイ中のユーザは、「ホスト」と呼ばれ、彼らのブロードキャストはゲームのホスティングである。多くの第三者が、Twitch(登録商標)およびYouTube(登録商標)などのウェブサイトを介して、ホストされたゲームを選局し観覧することができる。ホストは、手続き型カメラを使用して、ビデオゲームを録画し、上に記載される手続き型カメラの難しさは、シネマトグラフィック(例えば、ショット構図、カメラカットなど)の品質の低下と、ビデオゲームの視聴者のユーザ体験の低下につながる。
本開示のさらなる特徴および利点は、添付の図面と組み合わせて、以下の詳細な説明から明らかになるであろう。
一実施形態による、コライダモジュールおよび構図モジュールを含む、ビデオゲームシネマトグラフィシステムを例示する概略図である。 一実施形態による、構図標的ゾーンおよびその周りの境界ゾーンを示すスクリーンショットを例示する概略図である。 一実施形態による、従属構図を示す概略図である。 一実施形態による、構図方法を示すフローチャートである。 一実施形態による、カメラのコライダスパイクを示す概略図である。 一実施形態による、コライダの方法を示すフローチャートである。 一実施形態による、コライダの方法の開始を示すフローチャートである。 一実施形態による、コライダの方法を示すフローチャートである。 一実施形態による、コライダの方法を示すフローチャートである。 一実施形態による、コライダの方法を示すフローチャートである。 一実施形態による、コライダモジュールがカメラを移動させて、オブジェクトを回避する、仮想環境の概略ダイアグラムである。 一実施形態による、コライダの方法を示すフローチャートである。 一実施形態による、コライダの方法を示すフローチャートである。 一実施形態による、コライダモジュールがカメラを移動させて、オブジェクトを回避する、仮想環境の概略ダイアグラムである。 遮蔽オブジェクトがスクリーンを横切って移動し、対象を被覆するカメラスクリーンの概略ダイアグラムである。 遮蔽オブジェクトがスクリーンを横切って移動し、対象を被覆するカメラスクリーンの概略ダイアグラムである。 遮蔽オブジェクトがスクリーンを横切って移動し、対象を被覆するカメラスクリーンの概略ダイアグラムである。 ステート駆動カメラのユーザインターフェースパネルを例示するスクリーンショットである。 ゲーム中のステートの動的に入力されたドロップダウンリストを例示するスクリーンショットである。 カメラボタンをクリックした結果を例示するスクリーンショットである。 どのようにステート駆動カメラを一緒にブレンドすることができるかを例示するスクリーンショットである。 優先度に関する制御を備えたステート駆動カメラに曝されるすべてのカメラのユーザ定義リストを例示するスクリーンショットである。 単一のステート駆動カメラシステムの全体的な優先度に関する制御を例示するスクリーンショットである。 ユーザによって着用された例示的なヘッドマウントディスプレイ(HMD)のダイアグラムである。 本明細書に記載される様々なハードウェアアーキテクチャと併せて使用され得る例示的なソフトウェアアーキテクチャを例示するブロックダイアグラムである。 機械可読媒体(例えば、機械可読記憶媒体)から命令を読み出し、本明細書で論じられる方法論のうちのいずれか1つ以上を実施するように構成されたいくつかの例示的な実施形態による、機械900の構成要素を例示するブロックダイアグラムである。
添付の図面全体を通して、同様の特徴は同様の参照番号によって識別されることが留意されよう。
以下の説明および図面は、本開示を例示するものであり、本開示を限定するものと解釈されるべきではない。本開示の完全な理解を提供するために、多くの具体的な詳細を記載する。しかしながら、ある特定の例では、本開示の説明を不明瞭にすることを回避するために、当業者に周知の詳細については記載しない。
本明細書では、3D仮想環境内のカメラコライダ(camera colliders)およびショット構図保存のためのシステムおよび方法であって、対象をフィルム化するときに、仮想手続き型カメラがオブジェクトの後ろに引っかかったり、オブジェクト内に入り込むことを防止しつつ、同時にカメラショット内の対象のスクリーン構図も維持する、システムおよび方法が記載されている。
用語:本明細書の説明全体を通じて、「対象」という用語は、フィルム化の間に仮想カメラの所望される主な対象物(例えば、対象は多くの場合、カメラの焦点である)である、3D仮想環境内のオブジェクトを指す。
ここで図面に移ると、本開示の実施形態による、カメラコリジョンおよび構図保存のためのシステムおよび方法が例示されている。図1は、ゲームエンジンデバイスおよび関連する周辺装置を含むビデオゲームシネマトグラフィデバイス(video game cinematography device)の構成要素ダイアグラムである。例示的な実施形態では、ビデオゲームシネマトグラフィデバイスは、ユーザによって動作されるコンピューティングデバイスである。ユーザは、オンラインマルチプレイヤゲーム(例えば、eスポーツゲーム)のプレイヤであっても、ビデオゲームに関連付けられた様々なブロードキャスト機能を提供するブロードキャストホスト(または単に「ホスト」)であってもよい。ビデオゲームシネマトグラフィデバイスは、1つ以上のディスプレイデバイス(例えば、従来のコンピュータモニタ、VRウェアラブルデバイスなど)と、1つ以上の入力デバイス(例えば、キーボード、マウス、ハンドヘルドポインティングデバイス、タッチスクリーンなど)とを含む。ビデオゲームシネマトグラフィデバイスはまた、メモリ、1つ以上の中央処理ユニット(CPU)、1つ以上のグラフィック処理ユニット(GPU)、および1つ以上のネットワークアダプタ(例えば、ビデオゲームのために使用されるネットワーク接続を提供する有線または無線ネットワークアダプタ)を含む。
例示的な実施形態では、ビデオゲームシネマトグラフィデバイスは、ビデオゲーム(またはシミュレーション)をユーザに提示する(例えば、CPUまたはGPUによって実行される)ゲーム用エンジンを含む。ゲーム用エンジンは、コライダモジュールおよび構図モジュールを含み、これらは、本明細書に記載されるようなシネマトグラフィックな機能性を提供する。構図モジュールおよびコライダモジュール、ならびにゲーム用エンジンの各々は、動作中にCPUまたはGPUによって実行される、メモリ内に存在するコンピュータ実行可能命令を含む。ゲーム用エンジンは、ディスプレイデバイスと通信し、かつまた、入力デイバス(複数可)などの他のハードウェアと通信する。構図モジュールおよびコライダモジュールは、ゲーム用エンジン内に直接統合され得るか、または外部ソフトウェア(例えば、プラグインまたは他の独立したビデオ処理ソフトウェア)として実装され得る。
一実施形態によれば、構図モジュールは、仮想カメラの方位を変更して、(本明細書で標的ゾーンと称される)カメラスクリーン上の特定のエリア内の(本明細書で対象標的または単に標的と称される)対象の特定の部分を保持する。本明細書に記載される方法は、スクリーン空間内で標的の位置を維持するための非常に高性能で正確な方法である。構図モジュールは、標的を所望の標的ゾーン内に位置決めるように、いかに迅速にカメラを方位付けるかを定義するために、時間ベースの追跡速度と、カメラスクリーン内の境界ボックスとを含む。本明細書に記載される構図モジュールは、カメラの方位を制御するが、対象までのカメラの距離を制御する必要はなく、かつしたがって、カメラの位置を(絶対3D空間または対象に対する位置のいずれかで)制御する他のシステムと共に使用され得る。
多くの実施形態に従って、かつ図2Aおよび図2Bに示されるものは、ショット構図モジュールの境界を含有するカメラスクリーンである。対象の構図は、カメラスクリーンの2次元空間の特定のエリア内に対象を設置することによって定義される。特定のエリアは、標的ゾーンと称される。ショットのフィルム化中に、構図モジュールは、カメラの方位を動的に変更して、標的を標的ゾーン内に保持する。図に見られるように、カメラスクリーン上の標的ゾーンは、いくつかの境界のセットによって定義される。視覚化されると、スクリーンの3つの領域、すべてのソフト境界内にある標的ゾーン、ソフト境界とハード境界との間の空間を占有するソフト境界ゾーン、およびハード境界ゾーンの外側の空間を占有するハード境界ゾーン、として現れる。境界(ひいては、標的ゾーン)は、ユーザによって定義されるか、またはシネマトグラフィの規則を使用する自動化された手順によって選ばれる場合もある。
いくつかの実施形態では、対象は、複数の標的を含む構図対象であり得、これらの各々は、独立して移動し得る。例えば、構図対象は、チームの2人以上のプレイヤ、またはプレイヤと固定された位置もしくは他の非プレイヤオブジェクトを含み得る。構図モジュールは、カメラを使用して、構図対象を追跡し、(例えば、質量中心タイプの演算として)構図対象またはその標的の場所および方位の側面に基づいて、カメラを位置決め、方位付ける。構図対象を論理グループとして使用することができ、かつ「LookAt」として使用することができ、他のユーザが視認する標的としての構図対象の使用を可能にする。いくつかの実施形態では、構図対象の位置は、構図対象の標的のすべてを含む境界ボックスの中心に設定され得る(例えば、構図対象の標的の位置および半径から計算される)。
いくつかの実施形態では、構図対象内の各標的には、構図対象に対するカメラの位置および方位に影響を与え得る相対的重み付けを与えることができる。例えば、先頭のチームメンバーを別のチームメンバーよりも高く重み付けすることによって、チームキャプテンまたはグループを率いるチームメンバーに向かってカメラを傾斜させることができ、例えば、カメラが焦点の中心をより高く重み付けされたチームメンバーにより向かってシフトすることを引き起こす。いくつかの実施形態では、構図対象の各標的の重み付けは、特定の標的によって取られたアクションに基づいて動的に変化し得る。例えば、1人のチームメンバーが敵を射撃しているときに、第2のチームメンバーが遊休状態で異なる方向を見ている場合、活動中のチームメンバーをより高く重み付けすることができる。いくつかの実施形態では、平均方位は、標的の方位を表す四元数の正規化された加重和である。そのため、かつ例えば、標的の同時に起きるアクションは、カメラが焦点の中心を活動中のチームメンバーにより向かってシフトし、カメラの方位を活動中のチームメンバーの方位に向かって(例えば、活動中のプレイヤの発射方向により向かって)シフトすることを引き起こす場合がある。
いくつかの実施形態では、構図モジュールは、構図対象を、それらの位置に基づいて、動的に自動フレーム調整し得る。例えば、オブジェクトが離れて移動する場合、構図モジュールは、構図対象内の標的のすべてを含むように、視野またはカメラの位置を調節することができる。いくつかの実施形態では、構図モジュールは、初期のカメラの位置に基づいて、構図対象の境界ボックスを作成し、占有するスクリーン空間を評価し得る。いくつかの実施形態では、スクリーン空間の寸法は、構図対象を視認するユーザによって指定され得る(例えば、水平および垂直両方のカメラ寸法)。カメラは、その視野を調節して、個々の標的が移動するときに構図対象を再フレーム調整することができる。いくつかの実施形態では、再フレーム調整は、カメラを(例えば、カメラの標的の中心軸に沿って)構図対象に向かって、またはそれから離れる方向に移動させることによって達成され得る。いくつかの実施形態では、カメラの再位置決めをある期間にわたって行い、それによって、むらのある遷移を回避するように、再フレーム調整アクションにダンピングを適用することができる。
図3は、対象が象であり、対象標的が象の右眼である、標的ゾーン境界を有する対象構図の一例を示している。本例の標的ゾーンは、カメラスクリーンの右上部分のエリアである。
一実施形態に従って、標的がこれらの3つのゾーンの各々にある場合の構図モジュールの挙動は、以下のように特徴付けられる。
標的ゾーン−標的が標的ゾーン内にある場合、カメラの方位付けは行われず、構図モジュールは、カメラスクリーンの標的の位置を監視し続ける。
ソフト境界ゾーン−標的がソフト境界とハード境界との間であると判定される場合、構図モジュールは、カメラを所望の水平および垂直追跡速度で方位付けて、カメラを標的ゾーンに移動させる。追跡速度は、スクリーン空間内で定義される。
ハード境界ゾーン−標的は、いずれのハード境界線も越えることはできない。ハード境界線のうちの1つを越えた標的は、構図モジュールが、標的に最も近いハード境界の縁部にカメラを瞬時に方位付けることを引き起こす。このアクションには時間遅延はなく(例えば、時定数はゼロである)、カメラは、その位置が境界を越えた検出されると、瞬時に移動する。
図2および図3は、水平境界および垂直境界の対称的な位置決めのように見えるものを示しているが、これらの境界を、ゾーンのサイズが左/右および上/下の両方で非対称になり得るように、対称に位置決めする必要はない。さらに、図2および図3は、矩形の標的ゾーン、矩形のソフト境界ゾーン、および矩形のハード境界を作成する、互いに直角で線形の境界のように見えるものを示しており、図2Bに示されるように、境界は非線形であり得、ゾーンの形状は任意の形状を有し得る。
本明細書に記載される追跡方法は、スクリーン空間の垂直軸および水平軸の両方に沿った分離追跡を可能にする。加えて、追跡方法は、各境界に対して時定数を使用して、標的が標的ゾーン内に移動するように、構図モジュールがカメラを再方位付けるために使用し得る時間の量を判定する。3つの記載されるゾーンでは、構図モジュールは、所望の構図からの偏差を検出した場合(すなわち、標的が標的ゾーンの外側にある場合)にのみカメラを調節する。さらに、ソフト境界ゾーン内のカメラの再方位付けは、境界からの偏差の量に基づいた段階的な応答である。再方位付けの速度は、標的ゾーンの境界からの距離に関する。この手法は、標的が標的ゾーンに近づけば近づくほど、カメラの反応が緩徐になる(逆もまた同様)ため、カメラの動きに対する人間のリアルな感覚を可能にする。これは、人間によって制御されるカメラの動きと同様である。
一実施形態では、本方法は、単精度浮動小数点演算を使用し、高品質の結果を生み出す。単精度浮動小数点演算を使用するため、倍精度浮動小数点演算を用いた演算と比較して、計算の負担が低減される。これは、ショット構図を複数のカメラで同時に行わなければならない状況では非常に有用である。例えば、シーン内に複数のカメラがある場合、高性能コンピュータを使用することなく、この方法を使用して、各カメラの特定の構図を同時に維持することができる。同じ理由で、本明細書に記載される構図方法は、計算能力がデスクトップ/ラップトップコンピュータよりも低いことがあるモバイルデバイスでも非常に実用的である。単精度のみを使用して浮動小数点の正確さを保つために、すべての計算はカメラ座標空間(例えば、カメラに対するローカル座標)内で実施される。また、スクリーン上の対象の位置およびカメラの方位を判定するためにオイラー角と三角法とを使用する代わりに、すべての方位および回転の値は、四元数と単位長さベクトルとを使用して計算される。
一実施形態に従って、かつ図4に示されるものは、構図方法であり、各カメラの、標的を標的ゾーン内に保持するための構図モジュールの動作順序は、以下のとおりである。
最初に、構図モジュールは、標的の位置を3Dワールド座標から3Dカメラ空間座標に変換する。次いで、構図モジュールは、標的の3Dカメラ座標を2Dカメラビューポート空間の位置(例えば、カメラスクリーンの位置)に変換する。次いで、構図モジュールは、スクリーン空間内の標的の位置を選択された標的ゾーンと比較する。ビューポート空間内の選択された標的ゾーン(例えば、中央境界領域)が標的を含有しない場合、構図モジュールは、カメラ方位を再調節しなければならない。しかしながら、ビューポート空間が標的を含有している場合、カメラ方位を調節する必要はなく、構図モジュールは、ステップ1に戻って、標的の位置を監視することができる。カメラ方位を再調節するために、構図モジュールは、カメラが、標的を所望の構図標的ゾーン内に入れる最も短い経路上で回転するように、標的から最も近い供給された境界の縁部上の点を見つける。次いで、構図モジュールは、2つのベクトル、1つ目は、カメラ原点から標的までのベクトル、2つ目は、カメラ原点から前のステップで計算された境界上の点までのベクトル、を演算する。両方のベクトルは、カメラ座標で計算される。次いで、構図モジュールは、水平追跡の基準として使用するために2つのベクトルを右軸に投影し、垂直追跡の基準として使用するために2つのベクトルを上軸に投影する。次いで、構図モジュールは、四元数を使用した平滑な運動のために、2つのベクトル間の角度を判定し、その値を使用して、時定数追跡値をスケーリングする。
次いで、構図モジュールは、演算された角度から右軸および上軸を中心として四元数回転を作成する。次いで、構図モジュールは、結果として生じる四元数を使用して、要求された量だけカメラを回転させる。
構図モジュールは、この追跡処理を2回、1回はハード追跡境界に、もう1回は更新ごとにソフト追跡境界に適用する(ハード境界の追跡時間は、即時を意味するゼロである)。
また、コンポーザモジュールは、静止したカメラおよび移動する対象を有するシステム、移動するカメラおよび静止した対象を有するシステム、またはカメラおよび対象の両方が運動中であるシステムに適用され得ることに留意されたい。
一実施形態に従って、かつ本明細書に記載されるものは、(一部がコライダモジュール内に埋め込まれた)コライダシステムであり、それによって、コライダモジュールがカメラを移動させて(例えば、位置を変更して)、オブジェクトが標的をカメラの標的ゾーンから遮蔽している3D環境内でオブジェクトを回避するコライダシステムは、構図モジュールシステムを使用して、(カメラの方位を変更することによって)ショットの構図を維持しながら、カメラの位置を移動させて、遮蔽オブジェクトを回避する。
一実施形態に従って、かつ図5に示されるように、コライダモジュールは、カメラのコライダスパイクを作成する。コライダスパイクは、カメラから延在し、ある距離にわたって外方に到達するロッドである。カメラは、複数の角度で延在する複数のコライダスパイクを有し得る。コライダスパイクの長さおよびカメラから延在する方向は、ユーザによって定義され得、コライダスパイクごとに異なり得る。各コライダスパイクはまた、調節可能なダンピングを有し得る。ダンピングは、コライダスパイクが侵害されたとき(すなわち、3D環境内でオブジェクトに接触したとき)に有効になり、コライダスパイクがもはや侵害されていない(すなわち、もはや3D環境内でオブジェクトと接触しない)位置にコライダモジュールがカメラを戻す速度を参照する。ハードダンピングは、侵害された位置から侵害されていない位置までカメラを迅速に移動させる一方、ソフトダンピングは、侵害された位置から侵害されていない位置まで戻ってカメラを緩徐に移動させる。コライダダンピングは、カメラとオブジェクトとの間の衝突から何らかの不快な突然さを取り除く。コライダスパイクを、ダンピングを用いて必要以上に長くすることができ、視認者が気付かないであろうほど平滑に衝突を回避することができる。ダンピングなしでは、カメラは非常に不安定に作用する場合があり、すぐに停止/開始するなどの可能性がある。
コライダモジュールシステムの挙動は、カメラと、遮蔽オブジェクトと、ショットの対象との間で発生する遮蔽のタイプに依存する。一実施形態に従って、かつ図6A〜図6Gに示されるように、本明細書に記載されるコライダシステムは、少なくとも2つの異なるタイプの遮蔽に応答する。第1のタイプの遮蔽は、遮蔽オブジェクトに対するカメラ本体の位置に関係し、かつより具体的には、オブジェクトがカメラ本体に十分に近く、1つ以上のコライダスパイクを侵害する(すなわち、オブジェクトがコライダスパイクの長さ以内に来る)場合に発生する。1つ以上のコライダスパイクが侵害されると、コライダモジュールは、コライダスパイクを侵害されていない状況に戻すために、カメラの位置を変更する。これを行うために、コライダモジュールは、侵害されたコライダスパイクの方向に沿って、カメラを遮蔽オブジェクトから離れる方向に移動させる。侵害されたコライダスパイクは、3D仮想空間内のベクトル方向と考慮され得る。例えば、カメラがその左側に侵害されたスパイクを有する場合、コライダモジュールは、コライダスパイクがオブジェクトによってもはや侵害されなくなるまで、カメラを(例えば、コライダスパイクのベクトル方向に沿って)右に移動させる。いくつかの実施形態では、コライダスパイクは、カメラと標的との間に自動的に含まれ、カメラから標的までの距離の一部またはすべてに延在し、それによって、介在するオブジェクトに基づいて、遮蔽をトリガする。複数のコライダスパイクが侵害された場合、コライダモジュールは、すべての侵害されたスパイクを排除するために、カメラを移動させる。換言すれば、コライダモジュールは、複数のコライダスパイク方向のベクトル和の方向に沿ってカメラを移動させる。一実施形態に従って、コライダモジュールは、構図モジュールを使用して、カメラが運動している間(例えば、侵害されたスパイクを修正している間)に、対象の構図視野が保たれることを保証する。コライダモジュールがカメラ本体の位置を調節する一方、構図モジュールは同時にカメラ方位を調節して、構図標的を標的ゾーン内に保持する。
一実施形態によれば、構図の保存を伴う第2のタイプの遮蔽があり、標的ゾーン内からの対象の視認は、カメラと対象との間に位置決めされたオブジェクトによって遮蔽される。この第2の状況では、コライダモジュールは、カメラ原点から対象標的(例えば、対象上の点)まで延在する線(「標的光線」と称される)を3D環境内に投影する。この標的光線は通常、(例えば、ユーザがスクリーンの縁部の標的ゾーンでショットを構図すると決定した場合)対象標的と標的ゾーンを介してカメラ構図モジュールで調節可能であるため、スクリーンの中心を通過しない。標的光線は、3D環境内のベクトルであると考えられ得る。
一実施形態に従って、標的光線が侵害されると(例えば、オブジェクトが標的光線と交差すると)、コライダモジュールは、カメラがもはやオブジェクトによって遮蔽されなくなり、標的光線がもはや侵害されていない位置にカメラが位置するまで、標的光線に沿って(例えば、標的光線ベクトル方向に沿って)カメラを対象に向かって移動させる。いくつかの実施形態では、この動きは、単一のフレーム内で起こる(例えば、カメラが新しい位置にジャンプする)。換言すると、カメラは、適切な構図で対象のクリアなショットが得られるまで、コライダモジュールによって前方に移動する(例えば、構図モジュールを使用して、カメラが位置を移動させるときに標的を標的ゾーン内に維持する)。一実施形態によれば、標的光線の長さは、対象標的に到達する前で終端するように、カメラから対象までの距離よりも短くてもよい。対象標的に到達する前で終端する標的光線は、対象に非常に近いオブジェクトと交差する可能性を排除するため、良好なショットを維持しながら迂回させることはできない。短い標的光線もまた、コライダモジュールがカメラを対象の非常に近くまでズームさせる可能性を排除するため、(例えば、極端なクローズアップを回避するために)意味のある構図が不可能になる。標的光線の長さを、対象標的を越えて突出し、反対側に現れるように定義することもでき、標的光線と対象の背後のオブジェクトとの交差が可能になる。
一実施形態に従って、かつ図6Dのフローチャートに示されるように、コライダモジュールは、標的光線が侵害される前にカメラを元の位置に向かって押し戻すことによって、元のカメラの高さを保つよう試みる。いくつかの実施形態では、この動きは、単一のフレーム内で起こる(例えば、カメラが、以下の方法によって判定される新しい位置にジャンプする)。他の実施形態では、カメラを押し戻すための以下の方法は、あまり頻繁に行われず、これは、計算の負荷を下げるのに役立つ場合がある。これを行うために、コライダモジュールは、光線(本明細書では陰の光線(negative ray)と称する)を、陰の光線が元のカメラの高さで定義された水平面と接するまで、陰の方向(例えば、標的から離れる方向)にカメラ軸に沿って投射し返す。障害物を介在させずに元のカメラの高さの平面に到達することができる場合は、陰の光線が元のカメラの高さの平面と交差する点にカメラを置き、終了する(例えば、図6Aの点「A」に行く)。障害物に遭遇した場合、コライダモジュールは、以下のステップを行う。ステップ1、陰の光線が障害物に命中する点で障害物法線によって定義される平面に陰の光線を投影する。ステップ2、障害物法線によって定義された平面への陰の光線の投影として、新しい光線方向を定義する。(例えば、2つの障害物が接する線に沿った点で陰の光線が障害物に命中した場合)内側角部について特殊なケースを開始し、新しい光線方向として、その交差線に陰の光線の投影を行う。新しい光線方向が元のカメラの高さの平面のほうに向かっていない場合、ただそこでカメラをそのままにして、カメラの高さを保つようにするモードを終了する。ステップ4、コライダモジュールは、光線を新しい光線方向に延在させて、元のカメラの高さの平面に到達するか、別の障害物に命中するか、または現在の障害物の境界ボックスの縁部に到達したときに停止する。元のカメラの高さの平面に到達した場合、この点でカメラをそのままにして終了する(例えば、図6Aの点「A」に行く)。反復の最大回数に到達した場合、この点でカメラをそのままにして終了する(例えば、図6Aの点「A」に行く)。別の障害物に到達した場合、ステップ1に戻って新しい反復を始める(例えば、図6Dの点「C」に行く)。現在の障害物の境界ボックスの縁部に到達した場合、カメラ軸を標的からここまでの方向として再定義し、元のカメラの高さを保つようにする新しい反復を始める(例えば、図6Dの点「D」に行く)。
一実施形態に従って、かつ図6Eに示されるものは、図6Dに記載される方法を使用したカメラの動きを示す仮想環境の概略ダイアグラムである。この例では、第1のフレームにおいて、障害物が標的光線を不明瞭にする場合、カメラは位置0(位置0)にある。第2のフレームをシミュレートして描画する前に、コライダモジュールは、カメラを位置1(位置1)に移動させて、障害物を回避する。しかしながら、位置1は、標的に非常に近く、依然として障害物を回避しながらも、元のカメラの高さは維持しない。したがって、コライダモジュールは、カメラをカメラの元の位置に戻そうと試みるが、その位置はオブジェクトによってブロックされる。次いで、コライダモジュールは、位置2(位置2)でオブジェクトの頂部に到達するまで、カメラをオブジェクトの壁に押し上げる。次いで、コライダモジュールは、カメラ軸が再び標的に向くようにカメラを回転させ、次いで、元のカメラの高さの平面で位置3(位置3)になるまで、カメラを押し戻す。位置1〜位置3までのこの動きは、単一の標準ビデオフレーム内で実施され得る。
一実施形態に従って、かつ図6Fのフローチャートに示されるように、コライダモジュールは、標的光線が侵害される前にカメラを元の位置に向かって押し戻すことによって、元のカメラの距離を保つよう試みる。いくつかの実施形態では、この動きは、単一のフレーム内で起こる(例えば、カメラが、以下の方法によって判定される新しい位置にジャンプする)。他の実施形態では、カメラを押し戻すための以下の方法は、あまり頻繁に行われず、これは、計算の負荷を下げるのに役立つ場合がある。これを行うために、コライダモジュールは、光線(本明細書では陰の光線と称する)を、陰の光線が標的からの元のカメラの距離で定義された垂直面と接するまで、陰の方向(例えば、標的から離れる方向)にカメラ軸に沿って投射し返す。障害物を介在させずに元のカメラの距離の平面に到達することができる場合は、陰の光線が元のカメラの距離の平面と交差する点にカメラを置き、終了する(例えば、図6Aの点「A」に行く)。障害物に遭遇した場合、コライダモジュールは、以下のステップを行う。ステップ1、陰の光線が障害物に命中する点で障害物法線によって定義される平面に陰の光線を投影する。ステップ2、障害物法線によって定義された平面への陰の光線の投影として、新しい光線方向を定義する。(例えば、2つの障害物が接する線に沿った点で陰の光線が障害物に命中した場合)内側角部について特殊なケースを開始し、新しい光線方向として、その交差線に陰の光線の投影を行う。新しい光線方向が元のカメラの距離の平面のほうに向かっていない場合、ただそこでカメラをそのままにして、カメラの距離を保つようにするモードを終了する。ステップ4、コライダモジュールは、光線を新しい光線方向に延在させて、元のカメラの距離の平面に到達するか、別の障害物に命中するか、または現在の障害物の境界ボックスの縁部に到達したときに停止する。元のカメラの距離の平面に到達した場合、この点でカメラをそのままにして終了する(例えば、図6Aの点「A」に行く)。反復の最大回数に到達した場合、この点でカメラをそのままにして終了する(例えば、図6Aの点「A」に行く)。別の障害物に到達した場合、ステップ1に戻って新しい反復を始める(例えば、図6Fの点「F」に行く)。現在の障害物の境界ボックスの縁部に到達した場合、カメラ軸を標的からここまでの方向として再定義し、元のカメラの高さを保つようにする新しい反復を始める(例えば、図6Fの点「G」に行く)。
一実施形態に従って、かつ図6Gに示されるものは、図6Fに記載される方法を使用したカメラの動きを示す仮想環境の概略ダイアグラムである。この例では、第1のフレームにおいて、障害物が標的光線を不明瞭にする場合、カメラは位置0(位置0)にある。第2のフレームをシミュレートして描画する前に、コライダモジュールは、カメラを位置1(位置1)に移動させて、障害物を回避する。しかしながら、位置1は、標的に非常に近く、依然として障害物を回避しながらも、標的に対して元のカメラの距離は維持しない。したがって、コライダモジュールは、カメラをカメラの元の位置に戻そうと試みるが、オブジェクトによってブロックされる。本方法によれば、コライダモジュールは、位置2(位置2)でオブジェクトの頂部に到達するまで、カメラをオブジェクトの壁に押し上げる。次いで、コライダモジュールは、カメラ軸が再び標的に向くようにカメラを回転させ、次いで、元のカメラの距離の平面で位置3(位置3)になるまで、カメラを押し戻す。位置1〜位置3までのこの動きは、単一の標準ビデオフレーム内で起こり得る。
オブジェクトの遮蔽に対するコライダモジュールの反応の一例として、図7A、図7B、および図7Cは、遮蔽オブジェクトがカメラスクリーンを横切って左から右に移動する3つの遮蔽シナリオを示している。図7Aでは、遮蔽オブジェクトは、スクリーンの左側のみを被覆し、象のどの部分も遮蔽しない。その場合、コライダモジュールは、カメラを移動させないことになる。図7Bでは、遮蔽オブジェクトは、スクリーンの左側のスクリーンエリアのほとんどを被覆し、象の大部分を遮蔽するが、対象標的は遮蔽しない。この場合もまた、これによりコライダモジュールがカメラを移動させることはない。しかしながら、図7Cでは、遮蔽オブジェクトは、スクリーンのほとんどを被覆し、最終的にカメラスクリーンの右上の対象標的を被覆する。遮蔽オブジェクトは、対象標的を被覆するため、標的光線と交差し、コライダモジュールが、遮蔽オブジェクトを越えるように、カメラを対象に向かって移動させることになる。
いくつかの実施形態では、コライダモジュールは、遮蔽された視線に基づいて反応するかどうか、およびいつ反応するかを判定する場合、最小障害物距離を利用し得る。障害物とカメラとの間の距離に基づいて、いくつかの遮蔽オブジェクトが無視されることがある(例えば、カメラ位置の変更なし)。例えば、近くのオブジェクトは、カメラからの最小障害物距離よりも短い場合、それらが前景を迅速に通過する可能性が高いため、無視されることがある。いくつかの実施形態では、遮蔽された視線に基づいて反応するかどうかを判定する際に、オブジェクトのサイズ、カメラもしくは標的の現在の軌道および速度、または遮蔽オブジェクトおよびカメラの現在の軌道および速度に基づく計算された遮蔽時間などの追加の要因を使用することができる。
一実施形態によれば、コライダモジュールおよび本明細書でメタカメラと称される特別なカメラを使用したカメラショット評価のための方法が提供される。メタカメラは、各々がサブショットを生み出す複数のサブカメラを含有する高レベルカメラである。サブカメラの各々は、コライダモジュールを含み得るか、またはそれを使用し得る。メタカメラは、各サブカメラが任意のタイプのサブショットを有するように設定することができる(例えば、メタカメラは、任意のタイプの映画のテーマに追従する必要はない)。例えば、サブカメラは、「顔から5メートル下がり、1メートル下に」対象から手続きとしてオフセットされ得るか、ワールド内の固定されたカメラであり得るか、サブカメラと対象との間の位置および角度の任意の数の制約/関係を有するフリールックカメラであり得る。
メタカメラは、任意のタイプのサブカメラ構成に対して完全にオープンであるが、サブカメラがテーマ内に設定されており、そのため、それらのすべてが何らかの概念的な類似性を有する場合、より効率的な場合がある。一実施形態によれば、メタカメラは、すべてのサブカメラが単一の概念的なタイプのカメラショット(例えば、ヘッドショット、ワイドショット、ロングショットなど)のバリエーションであるサブショットを有するように設定され得る。例えば、メタカメラは、サブショットの各々が対象のヘッドショットのバリエーションであったように、「ヘッドショット」メタカメラとして設定され得る。ヘッドショットサブカメラの各々は、ヘッドショットの異なるバリエーションを作成するための異なるパラメータ(例えば、異なる角度、距離、対象からの視野)を有することになる。
一実施形態によれば、メタカメラは、(例えば、コンピュータプログラムで)実装されると、含有するすべてのサブカメラのショット品質を評価し、それらをランク付けし、最も高い品質のランク付けを有する単一のサブショットを提供する。より具体的には、メタカメラは、トリガされると、サブカメラのすべてを起動させ、それらの各々で分析を迅速に実施して、「ショット品質」を判定し、次いで、最も高い品質のサブカメラのみを運転する。これは、最大で1フレームの遅延を伴って非常に迅速に起こる。
一実施形態では、ショット品質を以下のように判定することができる。各サブカメラには最初、パーフェクトスコアが与えられている。サブカメラの初期化(例えば、サブカメラのコライダモジュールが起動された)後、サブカメラのコライダモジュールのアクションに基づいて、サブカメラのスコアが調節される。コライダモジュールがサブカメラを移動させなければならない場合(例えば、サブカメラが対象を見ることをブロックされているか、またはサブショットの途中に何かがあるため)、スコアは下方に調節される。スコア調節量は、コライダモジュールによってカメラがどれだけ移動されたかに依存する。サブカメラがコライダモジュールから動いた後でも対象のショットを得ることができない場合、ショットは失敗と判定される(例えば、スコアはゼロに調節され得る)。高いスコア(例えば、パーフェクトスコアに近い)を有するサブカメラは、より低いスコアを有するサブカメラよりも移動が少ない。コライダモジュールによって移動されていないサブカメラ(例えば、パーフェクトショットを有する)は、最高位にランク付けされ、パーフェクトスコアを保有する。
いくつかの実施形態では、ショット品質を判定する際に、いくつかの基準を考慮に入れる。これらの基準には、例えば、(もしあれば)遮蔽の持続期間中に(例えば、持続期間が長ければ長いほど、ショット品質が低下する)、(例えば、コライダモジュールがカメラを移動させなければならなかった場合)標的がカメラの視点から遮蔽されているかどうか、(例えば、コライダモジュールからの衝突解消により)カメラがその理想的な位置、カメラから標的までの距離(例えば、以下に記載される)、ショット構図(例えば、ショットが境界内にあるかどうか)、ゲームコンテキストにおける標的の重要度(例えば、特定のゲームプレイヤなどの標的は、ゲームロジックによって、もしくは直接ゲームのプレイヤによって重要度でランク付けされ得る)からずれているかどうか、または特定のショットを選ぶことによって映画の規則が守られているかどうか(例えば、映画の規則は複数のショットにわたって適用することができ、かつそのため、これは、新しいショットが映画の規則に違反しているかどうかなど、1つ以上の以前のショットに依存する)、が含まれる。
いくつかの実施形態では、コライダモジュールは、特定のサブカメラの視界を選択する際の要因として、ショット優先度およびショット品質の両方を利用し得る。例えば、ショット優先度には、どのチームメンバーもしくはエリアが(例えば、最も効果的なプレイヤ、もしくはゲームの中心にある特定の場所に焦点を合わせている)サブカメラの視野内に存在するか、または(例えば、プレイヤ間の戦いに焦点を合わせているか、もしくはプレイヤがゲームで目的とされるオブジェクトを手に入れるときに)プレイヤもしくはゲームによって行われている現在のアクションの性質などの要因が含まれ得る。そのため、特定のサブカメラの視界を選択するために、ショット優先度をショット品質と共に重み付けすることができる。いくつかの実施形態では、ショット品質またはショット優先度に基づいて、ランダム化を適用することができる。例えば、複数のサブカメラが同様のスコアのショット品質またはショット優先度を有する場合、コライダモジュールは、選択するサブカメラ視認をランダム化し、それによって、ショット品質またはショット優先度を必ずしも犠牲にすることなく、様々なカメラの視界を提供することができる。
いくつかの実施形態では、コライダモジュールは、標的距離を識別し、その標的距離に基づいて、様々なサブカメラのショット品質を評価する。例えば、ユーザは、アクションの20ヤードの視界を好む場合がある。そのため、コライダモジュールは、標的距離に基づいてサブカメラを選択し、より遠く離れたまたはより近くのものを越えて約20ヤードのサブカメラの視界を重み付けする。いくつかの実施形態では、コライダモジュールは、標的距離をショット品質の要因として評価する際に(例えば、標的距離の何らかの所定の倍数まで)線形減衰を利用し得る。
いくつかの実施形態では、オービタルトランスポーザが標的上の追従カメラで利用される。構図モジュールは、位置デルタ、ベクトル、またはワールドヘディング(world heading)、複数のブレンドモード、および軸ごとのダンピング制御に基づいて、ヘディングバイアスに対する追加の制御を追加することができる。構成可能なガウシアンフィルタを使用して、速度判定を平滑化することができる。ある特定の即時の動き(例えば、車が停止するときの小さな急な動きもしくはひきつき)を鈍化させるか、または平滑化し、標的のより重要な動きにカメラの視界の焦点を合わせることが有利な場合がある。ローパスガウシアンフィルタを利用して、かかる小さな動きを平滑化することができる。
いくつかの実施形態では、構図モジュールは、対象距離に基づいてカメラの視野を自動的に調節して、オブジェクトをスクリーン上で同じサイズに保持することができる。例えば、構図モジュールは、(例えば、追従カメラの)視野を調節して、標的のヘッドのサイズをある特定のサイズのものに維持することができる。そのため、距離が変化したり、キャラクタが動き回ったりする場合であっても、カット間のオブジェクトサイズを制御することができる。いくつかの実施形態では、標的距離と共に、フレームカバレッジのワールドサイズを構成することができる。構図モジュールは、視野を動的に調節して、サイズを標的距離に維持することができる。ダンピング設定により、一時的な変化のきつさを制御が可能になる場合がある。
いくつかの実施形態では、構図モジュールは、ステート駆動カメラ視認を利用して、カメラおよびアニメーションステートのコードなしのリンクを提供することができる。開発者は、様々なアニメーションに対して異なるカメラ挙動をトリガすることができる。例えば、キャラクタが全力疾走するときに「ハンドヘルドカメラ」をトリガすることができる。アニメーション標的が設定されると(例えば、アニメーションシーケンスが開発者によって標的として設定されると)、構図モジュールは、そのアニメーション標的に関連付けられたアニメーションステートマシンをスキャンして、階層ステートを検索し、(例えば、すべての階層レベルの)すべてのステートを有するテーブルを作成する。次いで、構図モジュールは、特定の仮想カメラを各ステートに関連付ける。関連付けは、各ステートを特定の仮想カメラに接続することを可能にするユーザインターフェースを介して行われ得るか、または関連付けを、ある特定のタイプのすべてのステートが特定の仮想カメラに接続されるように、規則に基づけることができる。ゲーム中に、ステートが活動中になると、次いで、関連付けられた仮想カメラが構図モジュールによって起動される。特定のステートに関連付けられた仮想カメラがない場合、そのステート遷移は無視され、現在活動中のカメラが残る。いくつかの実施形態では、仮想カメラの遷移のために、カスタムブレンドされた規則を提供することができる。
何が起きても常に対象を良好な角度にカットすることができるシステムを作成するために、メタカメラと、コライダモジュールと、ショット評価との間のこの機能性により、各々が複数のサブカメラを含有する複数のメタカメラを作成することが可能である。
図8Aは、ステート駆動カメラのユーザインターフェースパネルを例示するスクリーンショットである。このパネルにより、ユーザがアニメーションステートと仮想カメラとの間のリンク、ならびにショット間のブレンドを制御することを可能になる。
図8Bは、(例えば、ユーザがステートボタンをクリックしたときの)ゲーム中のステートの動的に入力されたドロップダウンリストを例示するスクリーンショットである。ユーザは、リスト内で利用可能な任意のステートを選ぶことができる。
図8Cは、カメラボタンをクリックした結果を例示するスクリーンショットである。カメラをクリックすると、シーン内のすべてのカメラが表示され、ユーザが任意のカメラを選んで、それを任意の選ばれたステートにリンクさせることが可能になる。これにより、(例えば、ユーザがコード化することなく)任意の特定のステートと任意の特定のカメラとのリンクが可能になる。
図8Dは、(例えば、カメラ1のショットからカメラ2のショットへ)どのようにステート駆動カメラを一緒にブレンドすることができるかを例示するスクリーンショットである。ブレンドは、図の中でカスタムブレンドと称される構成要素を使用して、このユーザインターフェースでユーザによって定義され得る。
図8Eは、優先度に関する制御を備えたステート駆動カメラに曝されるすべてのカメラの(例えば、どのカメラがステート駆動カメラによって見られるかを定義する)ユーザ定義リストを例示するスクリーンショットである。これは、図の中で子仮想カメラと称される。これは、ユーザが各カメラの優先度を制御し、よりよい明瞭さを提供することを可能にする。
図8Fは、単一のステート駆動カメラシステムの全体的な優先度に関する制御を例示するスクリーンショットである。いくつかの実施形態では、同じゲームで作動している多くのステートカメラ駆動システムが存在し得、各々は他のシステムに対して優先度を有し、それらの子カメラは各ステート駆動カメラシステムの下で独自の優先度を有する。
図9は、ユーザ(または「着用者」)1200によって着用された例示的なヘッドマウントディスプレイ(HMD)1202のダイアグラムである。例示的な実施形態では、ユーザ1200(例えば、ゲーム開発者またはゲームプレイヤ)は、HMD1202を着用しながら、VR環境または拡張現実(AR)コンテンツ(例えば、複合現実環境)を体験する。例示的な実施形態では、HMDデバイス1202は、着用者1200の現実世界の視認を不明瞭にし得、かつ完全な仮想環境を着用者1200に表示し得る不透明なバイザ1208を含み得る。他の実施形態では、HMDデバイス1202は、透明または半透明のバイザ(または「レンズ」(複数可)108を含み、それを介して、着用者1200は、自身の周り(本明細書では「現実世界」とも称される)を視認する。バイザ1208は、例示の目的で透明として図9に例示されているが、上に記載されるように、いくつかの実施形態では、バイザ1208は、不透明であってもよいことを理解されたい。
例示的な実施形態では、HMD1202はまた、バイザ1208上にグラフィックス(例えば、仮想オブジェクト)をレンダリングするディスプレイデバイス1218を含む。そのため、バイザ1208は、「スクリーン」または表面として作用し、その上にディスプレイデバイス1218の出力が現れ、それを介して着用者1200は仮想コンテンツを体験する。いくつかの実施形態では、HMD1202は、バイザを介して2つの異なる投影(例えば、各眼に1つ)を提示することができる。ディスプレイデバイス1218は、1つ以上のGPU1206またはホログラフィック投影ユニット(HPU)によって駆動または制御される。GPU1206は、ディスプレイデバイス1218を介した出力のレンダリングの高速化に役立つグラフィカル出力の態様を処理する。
例示的な実施形態では、HMDデバイス1202はまた、本明細書に記載される動作および方法のうちのいくつかを実行し得る1つ以上の中央処理ユニット(CPU)1205を含む。HMDデバイス1202はまた、(例えば、ユーザ1200の耳1216を介して)着用者1200にオーディオ出力を提示するように構成されたオーディオデバイス1212(例えば、別個に示されていないスピーカ)を含む。別個に示されていないが、HMDデバイス1202はまた、本明細書に記載されるHMDと他のコンピューティングデバイスとの間の通信を容易にする有線または無線ネットワークアダプタ(例えば、Wi−Fi、Bluetooth、セルラ)を含む。
いくつかの実施形態では、HMDデバイス1202は、デジタルカメラデバイス1210を含む。デジタルカメラデバイス(または単に「カメラ」)1210は、着用者1200の視野(FOV)の少なくとも一部を捕捉するように方位付けられた前向きビデオ入力デバイスである。換言すれば、カメラ1210は、HMDデバイス1202の方位に基づいて、現実世界の視野角(例えば、着用者1200が、バイザ1208を通して見るときに着用者1200のFOV内に見るものと同様のもの)を捕捉または「見る」。カメラデバイス1210は、ユーザ1200の周りの現実世界のデジタルビデオ(例えば、着用者1200の周りの視野、周辺視認、または360度の視認)を捕捉するように構成され得る。カメラデバイス1210を使用して、ユーザ1200の周りの現実世界環境のデジタルビデオを捕捉することができる。いくつかの実施形態では、デジタルカメラデバイス1210からの出力は、(例えば、不透明なバイザの実施形態では)バイザ1208上に投影され得、(例えば、カメラ出力に追加される)追加の仮想コンテンツを含むこともできる。いくつかの実施形態では、カメラ1210は、深度カメラであり得るか、またはHMDデバイス1202は、ユーザ1200のFOV内のオブジェクトの深度情報を捕捉する深度センサを別様に含み得る。
いくつかの実施形態では、HMDデバイス1202は、1つ以上のセンサ(別個に図示せず)を含み得るか、またはセンサと(例えば、同様に着用者1200が着用するリスト型ウェアラブルデバイスとの近距離無線通信(NFC)を介して)有線もしくは無線通信で連結され得る。例えば、HMD1202は、HMD1202の位置もしくは方位、または近くの現実世界のオブジェクトの位置を判定するように構成された運動または位置センサを含み得る。いくつかの実施形態では、HMDデバイス1202は、音声入力(例えば、ユーザ1200の発話音声)を捕捉するためのマイクを含み得る。
いくつかの実施形態では、HMD1202は、Oculus Rift(商標)、The HTC Vive(商標)、The Playstation VR(商標)などのような仮想現実HMDと同様のものであり得る。いくつかの実施形態では、HMD102は、Google Glass(登録商標)、Microsoft HoloLens(登録商標)、Magic Leap(商標)HMD、Meta(商標)HMDなどのような拡張現実HMDと同様のものであり得る。いくつかの実施形態では、HMD1202はまた、全地球測位システム(GPS)受信機(例えば、ユーザデバイス1202のGPSの場所を判定するため)、生体認証センサ(例えば、ユーザ1200の生体認証データの捕捉するため)、運動もしくは位置センサ(例えば、ユーザ1200もしくは他のオブジェクトの位置データを捕捉するため)、深度カメラ(例えば、LIDARを使用)、または音声マイク(例えば、音声データを捕捉するため)など、1つ以上のセンサ(図示せず)を含み得る。いくつかのセンサは、HMD1202の外部にある場合があり、HMD1202と無線通信するように構成され得る(例えば、Microsoft Kinect(登録商標)、Vive Tracker(商標)、MITのLidarセンサ、またはMITの無線感情検出器で使用されるものなど)。
いくつかの実施形態では、ユーザ1200は、1つ以上の手追跡デバイス(「ハンドヘルド」)(図9には別個に示されていない)(例えば、各手に1つ)を保持することができる。ハンドヘルドは、ユーザの手の絶対的または相対的な位置および方位に関する情報を提供し、かつ手のジェスチャ情報を捕捉することなどができる。ハンドヘルドは、HMD1202と(例えば、有線または無線通信を介して)直接動作するように構成され得る。いくつかの実施形態では、ハンドヘルドは、Oculus Touch(商標)ハンドコントローラ、HTC Vive(商標)ハンドトラッカ、またはPlaystation VR(商標)ハンドコントローラであり得る。ハンドヘルドはまた、ハンドヘルドに組み込まれた1つ以上のボタンまたはジョイスティックを含み得る。他の実施形態では、ユーザ1200は、Manus VR(オランダ)により市販されているものなど、1つ以上のウェアラブル型手追跡デバイス(例えば、運動追跡手袋、図示せず)を着用することができる。さらに他の実施形態では、例えば、Leap Motion,Inc.カリフォルニア州の法人)によって市販されているものなどの、手位置センサ(図示せず、例えば、光学的方法を使用して、ユーザの手の位置および方位を追跡する)を介したハンドヘルドまたはウェアラブル型手追跡デバイスなしで、またはそれに加えて、ユーザ1200の手の運動を追跡することができる。かかる手追跡デバイス(例えば、ハンドヘルド)は、動作中にユーザの手のうちの1つ以上の位置を追跡する。
図9に示されるように、動作中、例示的な実施形態では、HMD1202は、着用者の頭部1204の上、および着用者1200の両眼1214の上に装着される。着用者1200には、本明細書に記載されるHMD1202およびハンドヘルドを介して体験され得る仮想環境または複合現実環境が提示され得る。さらに、本明細書に記載されるように、本明細書に記載されるシステム(図9に別個に示されない)をHMD1202と併せて使用することができる。例えば、構図ジュールおよびコライダモジュールを使用して、第2の仮想環境内で1つ以上の仮想カメラを制御することができ、1つ以上の仮想カメラの出力は、HMD1202を介して体験される仮想環境または複合現実環境内の仮想スクリーンを介して着用者1200に表示される。仮想スクリーンは、環境内に浮動している(例えば、着用者1200の運動に対して固定されている)か、仮想環境または複合現実環境内のオブジェクトにピン留めされていてもよい。例えば、複合現実環境では、仮想スクリーンは、現実世界の壁への拡張現実仮想投影であり得る。仮想現実環境では、仮想スクリーンは、仮想の壁への仮想投影であり得る。第2の仮想環境は、ビデオゲーム環境(ライブまたは録画)、3Dシミュレーション環境、および3D映画環境を含む、仮想カメラが動作し得る(例えば、コライダモジュールおよび構図モジュールによって制御される)任意の3D仮想環境を含み得る。そのため、着用者1200は、部屋のソファに座りながら、ソファの近くの壁に投影された仮想スクリーンを観覧する複合現実環境を体験することができ、仮想スクリーンは、(例えば、ライブオンラインのマルチプレイヤビデオゲームの)ライブビデオゲーム環境を表示し、それによって、ライブビデオゲーム環境の視界が、コライダモジュールおよび構図モジュールによって制御されるビデオゲーム環境内の1つ以上の仮想カメラを通して見られる。
本明細書では、ある特定の実施形態が、論理またはいくつかの構成要素、モジュール、または機構を含むものとして記載されている。モジュールは、ソフトウェアモジュール(例えば、機械可読記憶媒体もしくは伝送信号で具体化されるコード)またはハードウェアモジュールのいずれかを構築し得る。「ハードウェアモジュール」は、ある特定の動作を実施することができる有形のユニットであり、ある特定の物理的な方法で構成または配置され得る。様々な例示的な実施形態では、1つ以上のコンピュータシステム(例えば、スタンドアロンコンピュータシステム、クライアントコンピュータシステム、もしくはサーバコンピュータシステム)またはコンピュータシステムの1つ以上のハードウェアモジュール(例えば、プロセッサもしくは一群のプロセッサ)は、本明細書に記載される、ある特定の動作を実施するように動作するハードウェアモジュールとして、ソフトウェア(例えば、アプリケーションまたはアプリケーション部分)によって構成され得る。
いくつかの実施形態では、ハードウェアモジュールは、機械的に、電子的に、またはこれらの任意の好適な組み合わせで実装され得る。例えば、ハードウェアモジュールは、ある特定の動作を実施するように永続的に構成された専用の回路または論理を含み得る。例えば、ハードウェアモジュールは、フィールドプログラム可能なゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)などの専用プロセッサであり得る。ハードウェアモジュールはまた、ある特定の動作を実施するために、ソフトウェアによって一時的に構成されたプログラム可能な論理または回路を含み得る。例えば、ハードウェアモジュールは、汎用プロセッサまたは他のプログラム可能なプロセッサ内に包含されたソフトウェアを含み得る。ハードウェアモジュールを、専用および永続的に構成された回路、または一時的に構成された(例えば、ソフトウェアによって構成された)回路に機械的に実装する決定は、コストおよび時間の考慮によって進められ得ることが理解されよう。
したがって、「ハードウェアモジュール」という表現は、ある特定の方法で動作するか、または本明細書に記載されるある特定の動作を実施するように、物理的に構築されるか、永続的に構成される(例えば、配線で接続される)か、または一時的に構成される(例えば、プログラムされる)実体である有形の実体を包含するように理解されるべきである。本明細書で使用される場合、「ハードウェア実装モジュール」とは、ハードウェアモジュールを指す。ハードウェアモジュールが一時的に構成される(例えば、プログラムされる)実施形態を考慮すると、ハードウェアモジュールの各々は、時間内の任意の1つのインスタンスにおいて構成またはインスタンス化される必要はない。例えば、ハードウェアモジュールが、特定用途向けプロセッサになるように、ソフトウェアによって構成された汎用プロセッサを含む場合、汎用プロセッサは、異なる時間にそれぞれ異なる特定用途向けプロセッサ(例えば、異なるハードウェアモジュールを含む)として構成され得る。したがって、ソフトウェアは、例えば、時間の1つのインスタンスにおいて特定のハードウェアモジュールを構築し、時間の異なるインスタンスにおいて異なるハードウェアモジュールを構築するように、特定のプロセッサ(複数可)を構成し得る。
ハードウェアモジュールは、他のハードウェアモジュールに情報を提供し、他のハードウェアモジュールから情報を受信することができる。したがって、記載されるハードウェアモジュールは、通信可能に連結されていると見なされ得る。複数のハードウェアモジュールが同時に存在する場合、通信は、ハードウェアモジュールのうちの2つ以上の間で、またはそれらの中で信号伝送を介して(例えば、適切な回路およびバスを介して)達成され得る。複数のハードウェアモジュールが異なる時間において構成またはインスタンス化される実施形態では、かかるハードウェアモジュール間の通信は、例えば、複数のハードウェアモジュールがアクセス権を有するメモリ構造内の情報の記憶および検索を通じて達成され得る。例えば、1つのハードウェアモジュールは、動作を実施し、その動作の出力を通信可能に連結されたメモリデバイスに記憶することができる。次いで、さらなるハードウェアモジュールが、その後になって、メモリデバイスにアクセスして、記憶された出力を検索および処理することができる。ハードウェアモジュールはまた、入力デバイスまたは出力デバイスとの通信を開始することができ、リソースに対して動作(例えば、情報の収集)することができる。
本明細書に記載される例示的な方法の様々な動作は、少なくとも部分的に、関連する動作を実施するように(例えば、ソフトウェアによって)一時的に構成されるか、または永続的に構成される1つ以上のプロセッサによって実施され得る。一時的または永続的に構成されるかどうかにかかわらず、かかるプロセッサは、本明細書に記載される1つ以上の動作または機能を実施するように動作するプロセッサ実装モジュールを構築し得る。本明細書で使用される場合、「プロセッサ実装モジュール」とは、1つ以上のプロセッサを使用して実装されるハードウェアモジュールを指す。
同様に、本明細書に記載される方法は、少なくとも部分的にプロセッサ実装型であり得、特定のプロセッサ(複数可)は、ハードウェアの一例である。例えば、ある方法の動作のうちの少なくともいくつかを、1つ以上のプロセッサまたはプロセッサ実装モジュールによって実施することができる。さらに、1つ以上のプロセッサはまた、「クラウドコンピューティング」環境で、または「サービスとしてのソフトウェア」(SaaS)として関連する動作の性能をサポートするように動作し得る。例えば、動作のうちの少なくともいくつかを、(プロセッサを含む機械の例として)一群のコンピュータによって実施することができ、これらの動作は、ネットワーク(例えば、インターネット)、および1つ以上の適切なインターフェース(例えば、アプリケーションプログラムインターフェース(API))を介してアクセス可能である。
ある特定の動作の性能を、単一の機械内にあるだけでなく、いくつかの機械にわたって展開されるプロセッサ間で分散させることができる。いくつかの例示的な実施形態では、プロセッサまたはプロセッサ実装モジュールは、単一の地理的な場所(例えば、家庭環境、オフィス環境、またはサーバファーム内)に位置し得る。他の例示的な実施形態では、プロセッサまたはプロセッサ実装モジュールを、いくつかの地理的な場所にわたって分散させることができる。
図10は、本明細書に記載される様々なハードウェアアーキテクチャと併せて使用され得る例示的なソフトウェアアーキテクチャ802を例示するブロックダイアグラム800である。図8は、ソフトウェアアーキテクチャの非限定的な例であり、本明細書に記載される機能性を容易にするために、多くの他のアーキテクチャを実装することができることが理解されよう。ソフトウェアアーキテクチャ802は、とりわけ、プロセッサ910、メモリ930、および入出力(I/O)構成要素950を含む、図11の機械900などのハードウェアで実行することができる。代表的なハードウェア層804が例示されており、これは、例えば、図11の機械900を表し得る。代表的なハードウェア層804は、関連付けられた実行可能命令808を有する処理ユニット806を含む。実行可能命令808は、本明細書に記載される方法、モジュールなどの実装を含む、ソフトウェアアーキテクチャ802の実行可能命令を表す。ハードウェア層804はまた、メモリ/記憶装置810を含み、これはまた、実行可能命令808を含む。ハードウェア層804はまた、他のハードウェア812を備え得る。
図8の例示的なアーキテクチャでは、ソフトウェアアーキテクチャ802は、各層が特定の機能性を提供する層のスタックとして概念化され得る。例えば、ソフトウェアアーキテクチャ802は、オペレーティングシステム814、ライブラリ816、フレームワークまたはミドルウェア818、アプリケーション820、およびプレゼンテーション層844などの層を含むことができる。動作上では、アプリケーション820および/または層内の他の構成要素は、ソフトウェアスタックを通じてアプリケーションプログラミングインターフェース(API)呼824を呼び出し、応答をメッセージ826として受信することができる。例示されている層は本質的に代表的なものであり、すべてのソフトウェアアーキテクチャがすべての層を有するわけではない。例えば、一部のモバイルまたは専用オペレーティングシステムは、フレームワーク/ミドルウェア818を提供しない場合があるが、その他はそのような層を提供する場合がある。他のソフトウェアアーキテクチャには、追加または異なる層を含む場合がある。
オペレーティングシステム814は、ハードウェアリソースを管理し、かつ共通サービスを提供することができる。オペレーティングシステム814は、例えば、カーネル828、サービス830、およびドライバ832を含むことができる。カーネル828は、ハードウェア層と他のソフトウェア層との間の抽象化層として機能することができる。例えば、カーネル828は、メモリ管理、プロセッサ管理(例えば、スケジューリング)、構成要素管理、ネットワーキング、セキュリティ設定などを担当してもよい。サービス830は、他のソフトウェア層に他の共通サービスを提供してもよい。ドライバ832は、基礎となるハードウェアを制御またはそれとインターフェース接続する役割を果たしてもよい。例えば、ドライバ832は、ディスプレイドライバ、カメラドライバ、Bluetooth(登録商標)ドライバ、フラッシュメモリドライバ、シリアル通信ドライバ(例えば、ユニバーサルシリアルバス(USB)ドライバ)、Wi−Fi(商標登録)ドライバ、音声ドライバ、電源管理ドライバなどを含むことができ、ハードウェア構成によって異なる。
ライブラリ816は、アプリケーション820および/または他の構成要素および/または層によって使用され得る共通のインフラストラクチャを提供することができる。ライブラリ816は、典型的には、他のソフトウェアモジュールが、基礎となるオペレーティングシステム814の機能性(例えば、カーネル828、サービス830、および/またはドライバ832)と直接インターフェース接続するよりも容易な様式でタスクを実施することを可能にする機能性を提供する。ライブラリ816は、メモリ割り当て機能、ストリング操作機能、数学的機能などの機能を提供することができるシステムライブラリ834(例えば、標準Cライブラリ)を含むことができる。加えて、ライブラリ816は、メディアライブラリ(例えば、MPEG4、H.264、MP3、AAC、AMR、JPG、PNGなどの様々なメディアフォーマットの提示および操作をサポートするライブラリ)、グラフィックスライブラリ(例えば、2Dおよび3Dグラフィックコンテンツをレンダリングするために使用され得るOpenGLフレームワーク)、データベースライブラリ(例えば、様々なリレーショナルデータベース機能を提供し得るSQLite)、ウェブライブラリ(例えば、ウェブブラウジング性能を提供し得るWebkit)などのAPIライブラリ836を含むことができる。ライブラリ816はまた、多くの他のAPIをアプリケーション820および他のソフトウェア構成要素/モジュールに提供するために、多種多様な他のライブラリ838を含むことができる。
フレームワーク818(ミドルウェアとも呼ばれることもある)は、アプリケーション820および/または他のソフトウェア構成要素/モジュールによって使用され得る高レベルの共通のインフラストラクチャを提供する。例えば、フレームワーク/ミドルウェア818は、様々なグラフィックユーザインターフェース(GUI)機能、高レベルのリソース管理、高レベルの位置特定サービスなどを提供することができる。フレームワーク/ミドルウェア818は、アプリケーション820および/または他のソフトウェア構成要素/モジュールによって利用され得る広範囲の他のAPIを提供することができ、そのうちのいくつかは、特定のオペレーティングシステムまたはプラットフォームに特有のものであり得る。
アプリケーション820は、組み込みアプリケーション840および/またはサードパーティアプリケーション842を含む。代表的な組み込みアプリケーション840の例は、コンタクトアプリケーション、ブラウザアプリケーション、ブックリーダアプリケーション、場所のアプリケーション、メディアアプリケーション、メッセージングアプリケーション、および/またはゲームアプリケーションを含むことができるが、これらに限定されない。サードパーティアプリケーション842は、特定のプラットフォームのベンダ以外のエンティティによってAndroid(商標)またはIOS(商標)のソフトウェア開発キット(SDK)を使用して開発された任意のアプリケーションを含むことができ、IOS(商標)、Android(商標)、Windows(登録商標)Phone、または他のモバイルオペレーティングシステムなどのモバイルオペレーティングシステム上で実行しているモバイルソフトウェアであり得る。サードパーティアプリケーション842は、本明細書で説明する機能性を容易にするために、オペレーティングシステム814のようなモバイルオペレーティングシステムによって提供されるAPI呼824を呼び出すことができる。
アプリケーション820は、システムのユーザと対話するためのユーザインターフェースを作成するために、組み込みオペレーティングシステム機能(例えば、カーネル828、サービス830、および/またはドライバ832)、ライブラリ816、またはフレームワーク/ミドルウェア818を使用することができる。代替的に、または追加的に、いくつかのシステムでは、ユーザとの相互作用はプレゼンテーション層844などのプレゼンテーション層を通じて行われてもよい。これらのシステムでは、アプリケーション/モジュールの「ロジック」は、ユーザと対話するアプリケーション/モジュールの態様から分離され得る。
いくつかのソフトウェアアーキテクチャは、仮想機械を使用する。図8の例では、これは仮想機械848によって例示されている。仮想機械848は、アプリケーション/モジュールが、ハードウェア機械(例えば、図11の機械900など)上で実行しているかのように実行することができるソフトウェア環境を作成する。仮想機械848は、ホストオペレーティングシステム(例えば、オペレーティングシステム814)によってホストされ、典型的には、必ずしもそうではないが、仮想機械モニタ846を有し、これは仮想機械848の動作、ならびにホストオペレーティングシステム(すなわち、オペレーティングシステム814)とのインターフェース接続を管理する。ソフトウェアアーキテクチャは、オペレーティングシステム(OS)850、ライブラリ852、フレームワーク854、アプリケーション856、および/またはプレゼンテーション層858などの仮想機械848内で実行する。仮想機械848内で実行するソフトウェアアーキテクチャのこれらの層は、先に説明した対応する層と同じであってもよいし、異なっていてもよい。
図11は、機械可読媒体(例えば、機械可読記憶媒体)から命令を読み出し、本明細書で論じられる方法論のうちのいずれか1つ以上を実施するように構成されたいくつかの例示的な実施形態による、機械900の構成要素を例示するブロックダイアグラムである。いくつかの実施形態では、機械110はHMD102に類似している。具体的には、図11は、コンピュータシステムの例示的な形態における機械900の図表示を示しており、その中で、機械900に本明細書で論じられる方法論のうちのいずれか1つ以上を実施するための命令916(例えば、ソフトウェア、プログラム、アプリケーション、アプレット、アプリ、または他の実行可能なコード)が実行されてもよい。このように、命令916は、本明細書で説明するモジュールまたは構成要素を実装するために使用することができる。命令は、一般的なプログラムされていない機械を、説明および例示された機能を説明された方式で遂行するようにプログラムされた特定の機械に変換する。代替の実施形態では、機械900は、スタンドアロンデバイスとして動作するか、または他の機械に結合(例えば、ネットワーク接続)されてもよい。ネットワーク化された展開では、機械900は、サーバクライアントネットワーク環境におけるサーバ機械またはクライアント機械の容量で、またはピアツーピア(または分散)ネットワーク環境におけるピア機械として動作することができる。マシン900は、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットコンピュータ、ラップトップコンピュータ、ネットブック、セットトップボックス(STB)、携帯情報端末(PDA)、エンターテインメントメディアシステム、携帯電話、スマートフォン、モバイルデバイス、ウェアラブルデバイス(例えば、スマートウォッチ)、スマートホームデバイス(例えば、スマート家電)、他のスマートデバイス、Webアプライアンス、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジ、または機械900によって行われるアクションを順次または他の方法で指定する命令916を実行することができる任意の機械を含むことができるが、これらに限定されるものではない。さらに、単一の機械900のみが例示されているが、「機械」という用語は、本明細書で論じられる方法論のうちのいずれか1つ以上を実施するために命令916を個別にまたは共同で実行する機械の集合も含むものとする。
機械900は、バス902を介してなど互いに通信するように構成され得るプロセッサ910、メモリ930、および入力/出力(I/O)構成要素950を含むことができる。例示的な一実施形態では、プロセッサ910(例えば、中央処理装置(CPU)、縮小命令セット計算(RISC)プロセッサ、複合命令セット計算(CISC)プロセッサ、グラフィックス処理装置(GPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、無線周波数集積回路(RFIC)、別のプロセッサ、またはそれらの任意の適切な組み合わせ)は、例えば、命令916を実行することができるプロセッサ912およびプロセッサ914を含むことができる。「プロセッサ」という用語は、命令を同時に実行することができる2つ以上の独立したプロセッサ(「コア」と呼ばれることもある)を含むことができるマルチコアプロセッサを含むことを意図している。図11は、複数のプロセッサを示しているが、機械900は、単一のコアを有する単一のプロセッサ、複数のコアを有する単一のプロセッサ(例えば、マルチコアプロセッサ)、単一のコアを有する複数のプロセッサ、複数のコアを有する複数のプロセッサ、またはそれらの任意の組み合わせを含むことができる。
メモリ/記憶媒体930は、メインメモリ932、スタティックメモリ934、または他のメモリなどのメモリ、およびバス902などを介して両方ともプロセッサ910にアクセス可能な記憶装置936を含むことができる。記憶装置936およびメモリ932、934は、本明細書で説明する方法論または機能のうちのいずれか1つ以上を具現化する命令916を記憶する。命令916は、機械900による実行中に、メモリ932、934内、記憶装置936内、プロセッサ910のうちの少なくとも1つ内(例えば、プロセッサのキャッシュメモリ内)、またはそれらの任意の適切な組み合わせ内に、完全にまたは部分的に存在することもできる。したがって、メモリ932、934、記憶装置936、およびプロセッサ910のメモリは、機械可読媒体938の実施例である。
本明細書で使用されているように、「機械可読記憶媒体」は、命令およびデータを一時的に、または永続的に記憶することができるデバイスを意味し、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、バッファメモリ、フラッシュメモリ、光媒体、磁気媒体、キャッシュメモリ、他のタイプの記憶装置(例えば、消去可能プログラマブル読み取り専用メモリ(EEPROM)および/またはこれらの任意の適切な組み合わせを含むことができるが、これらに限定されるものではない。「機械可読記憶媒体」という用語は、命令916を記憶することができる単一の媒体または複数の媒体(例えば、集中型または分散型データベース、または関連するキャッシュおよびサーバ)を含むと解釈されるべきである。「機械可読記憶媒体」という用語はまた、機械(例えば、機械900)による実行のための命令(例えば、命令916)を記憶することができる任意の媒体または複数の媒体の組み合わせを含むものとし、その結果、命令は、機械900の1つ以上のプロセッサ(例えば、プロセッサ910)によって実行されたときに、機械900に本明細書で説明される方法論のうちのいずれか1つ以上を実施させる。したがって、「機械可読記憶媒体」は、単一の記憶機器またはデバイス、ならびに複数の記憶機器またはデバイスを含む「クラウドベースの」記憶システムまたは記憶ネットワークを指す。「機械可読媒体」という用語は、機械可読媒体および送信媒体、例えば、信号を含む。
入力/出力(I/O)構成要素950は、入力を受け取り、出力を提供し、出力を生成し、情報を送信し、情報を交換し、測定値をキャプチャするなどの多種多様な構成要素を含むことができる。特定の機械に含まれている特定の入力/出力(I/O)構成要素950は、機械のタイプに依存する。例えば、携帯電話などのポータブル機にはタッチ入力デバイスまたはその他のそのような入力メカニズムを含む可能性があるが、ヘッドレスサーバ機械にはそのようなタッチ入力デバイスを含まない可能性がある。入力/出力(I/O)構成要素950は、図11に示していない他の多くの構成要素を含み得ることが理解されるであろう。入力/出力(I/O)構成要素950は、以下の議論を単純化するためだけの機能性に従ってグループ化され、グループ化は決して限定的ではない。様々な例示的な実施形態では、入力/出力(I/O)構成要素950は、出力構成要素952および入力構成要素954を含むことができる。出力構成要素952は、視覚構成要素(例えば、プラズマディスプレイパネル(PDP)、発光ダイオード(LED)ディスプレイ、液晶ディスプレイ(LCD)、プロジェクタ、またはブラウン管(CRT)などのディスプレイ、音響構成要素(例えば、スピーカ)、触覚構成要素(例えば、振動モータ、抵抗機構)、その他の信号発生器などを含むことができる。入力構成要素954は、英数字入力構成要素(例えば、キーボード、英数字入力を受信するように構成されたタッチスクリーン、光キーボード、または他の英数字入力構成要素)、ポイントベースの入力構成要素(例えば、マウス、タッチパッド、トラックボール、ジョイスティック、モーションセンサ、または別のポインティング機器)、触知入力構成要素(例えば、物理ボタン、タッチまたはタッチジェスチャの位置および/または力を提供するタッチスクリーン、またはその他の触知入力構成要素)、音声入力構成要素(例えば、マイク)などを含むことができる。
さらなる例示的な実施形態では、入力/出力(I/O)構成要素950は、幅広い他の構成要素の中でも、生体認証構成要素956、運動構成要素958、環境構成要素960、または位置構成要素962を含むことができる。例えば、生体認証構成要素956は、表情(例えば、手の表情、顔の表情、声の表情、身体のジェスチャ、または視線追跡)を検出し、生体信号(例えば、血圧、心拍数、体温、汗、または脳波)を測定し、人(例えば、音声識別、網膜識別、顔識別、指紋識別、または脳波に基づく識別)を識別するなどのための構成要素を含むことができる。運動構成要素958は、加速度センサ構成要素(例えば、加速度計)、重力センサ構成要素、回転センサ構成要素(例えば、ジャイロスコープ)などを含むことができる。環境構成要素960は、例えば、照度センサ構成要素(例えば、光度計)、温度センサ構成要素(例えば、周囲温度を検出する1つ以上の温度計)、湿度センサ構成要素、圧力センサ構成要素(例えば、気圧計)、音響センサ構成要素(例えば、バックグラウンドノイズを検出する1つ以上のマイク)、近接センサ構成要素(例えば、近くの物体を検出する赤外線センサ)、ガスセンサ(例えば、安全のために、または大気中の汚染物質を測定するために、有害ガスの濃度を検出するガス検出センサ)、または周囲の物理的環境に対応する表示、測定、または信号を提供することができる他の構成要素を含むことができる。位置構成要素962は、場所センサ構成要素(例えば、全地球測位システム(GPS)受信機構成要素)、高度センサ構成要素(例えば、高度が導出され得る気圧を検出する高度計または気圧計)、方位センサ構成要素(例えば、磁力計)などを含むことができる。
通信は、多種多様な技術を使用して実装され得る。入力/出力(I/O)構成要素950は、カップリング982およびカップリング972を介して機械900をネットワーク980またはデバイス970に結合するように動作可能な通信構成要素964を含むことができる。例えば、通信構成要素964は、ネットワーク980とインターフェース接続するためのネットワークインターフェース構成要素または他の適切なデバイスを含み得る。さらなる例では、通信構成要素964は、有線通信構成要素、無線通信構成要素、セルラ通信構成要素、近距離無線通信(NFC)構成要素、Bluetooth(登録商標)構成要素(例えば、Bluetooth(登録商標)Low Energy)、Wi−Fi(登録商標)構成要素、および他のモダリティを介した通信を提供する他の通信構成要素を含むことができる。デバイス970は、別の機械または多種多様な周辺デバイス(例えば、ユニバーサルシリアルバス(USB)を介して結合された周辺デバイス)のいずれかであり得る。
さらに、通信構成要素964は、識別子を検出するか、または識別子を検出するように動作可能な構成要素を含むことができる。例えば、通信構成要素964は、無線周波数識別(RFID)タグリーダ構成要素、NFCスマートタグ検出構成要素、光学リーダ構成要素(例えば、統一商品コード(UPC)バーコードなどの1次元バーコード、クイックレスポンス(QR)コード、アズテックコード、DATA Matrix、Dataglyph、MaxiCode、PDF417、Ultra Code、UCC RSS−2Dバーコードなどの多次元バーコード、およびその他の光学コード)、または音響検出構成要素(例えば、タグ付き音声信号を識別するためのマイク)を含むことができる。加えて、インターネットプロトコル(IP)地理的場所を介する場所、Wi−Fi(登録商標)信号三角測量を介する場所、特定の場所を表示することができるNFCビーコン信号の検出を介する場所など、通信構成要素962を介して様々な情報を導き出すことができる。
この明細書全体を通して、複数のインスタンスは、単一のインスタンスとして記述された構成要素、動作、または構造を実装することができる。1つ以上の方法の個々の動作は別個の動作として図示および説明されているが、個々の動作の1つ以上を同時に実施することができ、図示の順序で動作を実施する必要はない。例示的な構成で個別の構成要素として提示される構造および機能性は、組み合わせた構造または構成要素として実装され得る。同様に、単一の構成要素として提示されている構造および機能性は、個別の構成要素として実装され得る。これらおよび他の変形、修正、追加および改良は、本明細書中の主題の範囲内に入る。
本明細書に例示される実施形態は、当業者が開示された教示を実施することを可能にするのに十分な詳細に記載される。他の実施形態を用いて、本開示の範囲から逸脱することなく構造的および論理的な置換および変更を行うことができるように、その他の実施形態を使用してもよい。したがって、詳細な説明は限定的な意味で解釈されるべきではなく、様々な実施形態の範囲は、添付の特許請求の範囲、およびそのような特許請求の範囲が権利を有する均等物によってのみ定義される。
本明細書で使用される「または」という用語は、包括的または排他的な意味で解釈され得る。さらに、本明細書で単一のインスタンスとして説明されるリソース、動作、または構造に対して複数のインスタンスが提供されてもよい。追加的には、様々なリソース、動作、モジュール、エンジン、およびデータストア間の境界は、いくらか任意的であり、特定の動作は、特定の例示的な構成のコンテキストで示されている。機能性の他の割り当てが想定されており、本開示の様々な実施形態の範囲内に含まれ得る。一般に、例示的な構成で個別のリソースとして提示されている構造および機能性は、組み合わせた構造またはリソースとして実装され得る。同様に、単一のリソースとして提示されている構造および機能性は、個別のリソースとして実装され得る。これらおよび他の変形、修正、追加、および改良は、添付の特許請求の範囲によって表される本開示の実施形態の範囲内に入る。したがって、明細書および図面は、制限的な意味ではなく、例示的な意味で見なされるべきである。

Claims (21)

  1. システムであって、
    1つ以上のコンピュータプロセッサと、
    1つ以上のコンピュータメモリと、
    前記1つ以上のコンピュータメモリに組み込まれた構図モジュールと、を備え、前記構図モジュールが、仮想カメラの方位を変更して、前記仮想カメラのスクリーン上の標的ゾーン内に対象の一部分を保持するための動作を実施するように構成されており、前記動作が、
    ソフト境界を前記標的ゾーンに関連付けることと、
    ハード境界を前記標的ゾーンに関連付けることと、
    前記対象の前記部分が前記ソフト境界と前記ハード境界との間の場所まで移動したとの検出に基づいて、前記カメラを再方位付けるための追跡時間を判定することであって、前記追跡時間の前記判定が、前記対象の前記標的ゾーンからの偏差の量に基づく、判定することと、前記カメラの前記方位の前記変更を実施して、前記追跡時間にわたって前記対象を前記標的ゾーンに連れ戻すことと、を含む、システム。
  2. 前記対象の前記部分が前記ソフト境界と前記ハード境界との間の前記場所まで移動したとの前記検出が、前記仮想カメラに対する2D空間における四元数、単位長さベクトル、および単精度浮動小数点演算を使用して実施される、請求項1に記載のシステム。
  3. 前記対象の前記部分が、前記標的ゾーンに関連付けられた前記ハード境界を越えた場所まで移動したとの検出に基づいて、追跡速度をゼロに設定することと、前記方位の前記変更を実施して、前記対象を前記ハード境界の縁部に実質的に瞬時に連れ戻すことと、をさらに含む、請求項1または2に記載のシステム。
  4. 前記仮想カメラに関連付けられた標的光線上で前記仮想カメラを前方に移動させて、前記標的光線を侵害している障害物を回避するように構成されたコライダモジュールをさらに備え、前記標的光線が、3Dカメラ原点から、前記カメラスクリーン上の前記標的ゾーンを通って、前記対象の前記部分に関連付けられた3D座標まで延在する、請求項1〜3のいずれか一項に記載のシステム。
  5. 前記コライダモジュールが、前記仮想カメラを、前記障害物が前記標的光線を侵害する前に、前記仮想カメラに関連付けられた元の高さまで、前記標的光線に関連付けられた後方ベクトル方向に移動させるようにさらに構成されており、前記移動が、一連のステップの反復を含み、前記一連のステップが、
    陰の光線を、前記陰の光線が前記元の高さで定義された水平面と接するまで、前記標的から離れる方向にカメラ軸に沿って投射することと、
    前記障害物または遭遇する第2の障害物に基づいて、前記陰の光線を、前記陰の光線が前記障害物または前記第2の障害物に命中する点で、障害物法線によって定義される平面に投影することと、
    前記障害物または前記第2の障害物の前記障害物法線によって定義される前記平面への前記陰の光線の投影として、新しい光線方向を定義することと、
    新しい光線を前記新しい光線方向に延在させ、前記水平面に到達するか、または第3の障害物に命中するか、または前記第3の障害物の境界ボックスの縁部に到達すると停止させることと、
    前記第3の障害物に到達することに基づいて、前記仮想カメラの前記移動を反復することと、
    前記境界ボックスの前記縁部に到達することに基づいて、前記カメラ軸を、前記標的から現在のカメラの場所への方向として再定義し、前記仮想カメラの前記移動を反復することと、を含む、請求項4に記載のシステム。
  6. 前記1つ以上のコンピュータメモリに組み込まれた追加の構図モジュールおよび追加のコライダモジュールをさらに備え、前記追加の構図モジュールおよび前記追加のコライダモジュールが、追加の仮想カメラの方位および位置を変更して、前記追加の仮想カメラに関連付けられた標的ゾーン内に前記対象の前記部分を保持するための動作を実施するように構成されており、前記仮想カメラおよび前記追加の仮想カメラが、メタカメラを備え、前記メタカメラが、前記仮想カメラによって捕捉された前記対象の前記部分のショットのスコア、および前記追加の仮想カメラによって捕捉された前記対象の前記部分のショットのスコアに基づいて、前記仮想カメラまたは前記追加の仮想カメラのいずれかを選択するように構成されている、請求項4または5に記載のシステム。
  7. 前記仮想カメラによって捕捉された前記ショットの前記スコア、または前記追加の仮想カメラによって捕捉された前記ショットの前記スコアが、少なくとも、前記コライダモジュール、前記追加のコライダモジュール、前記構図モジュール、または前記追加の構図モジュールの活動によって判定され、前記活動が、
    前記仮想カメラおよび前記追加の仮想カメラに与えられた変位の量、および
    前記仮想カメラおよび前記追加の仮想カメラに与えられた回転の量、を含む、請求項6に記載のシステム。
  8. 方法であって、
    仮想カメラの方位を変更して、前記仮想カメラのスクリーン上の標的ゾーン内に対象の一部分を保持するための動作を実施することを含み、前記動作が、
    ソフト境界を前記標的ゾーンに関連付けることと、
    ハード境界を前記標的ゾーンに関連付けることと、
    前記対象の前記部分が前記ソフト境界と前記ハード境界との間の場所まで移動したとの検出に基づいて、前記カメラを再方位付けるための追跡時間を判定することであって、前記追跡時間の前記判定が、前記対象の前記標的ゾーンからの偏差の量に基づく、判定することと、前記カメラの前記方位の前記変更を実施して、前記追跡時間にわたって前記対象を前記標的ゾーンに連れ戻すことと、を含む、方法。
  9. 前記対象の前記部分が前記ソフト境界と前記ハード境界との間の前記場所まで移動したとの前記検出が、前記仮想カメラに対する2D空間における四元数、単位長さベクトル、および単精度浮動小数点演算を使用して実施される、請求項8に記載の方法。
  10. 前記対象の前記部分が、前記標的ゾーンに関連付けられた前記ハード境界を越えた場所まで移動したとの検出に基づいて、追跡速度をゼロに設定することと、前記方位の前記変更を実施して、前記対象を前記ハード境界の縁部に実質的に瞬時に連れ戻すことと、をさらに含む、請求項8または9に記載の方法。
  11. 前記仮想カメラに関連付けられた標的光線上で前記仮想カメラを前方に移動させて、前記標的光線を侵害している障害物を回避するように構成されたコライダモジュールをさらに備え、前記標的光線が、3Dカメラ原点から、前記カメラスクリーン上の前記標的ゾーンを通って、前記対象の前記部分に関連付けられた3D座標まで延在する、請求項8〜10のいずれか一項に記載の方法。
  12. 前記コライダモジュールが、前記仮想カメラを、前記障害物が前記標的光線を侵害する前に、前記仮想カメラに関連付けられた元の高さまで、前記標的光線に関連付けられた後方ベクトル方向に移動させるようにさらに構成されており、前記移動が、一連のステップの反復を含み、前記一連のステップが、
    陰の光線を、前記陰の光線が前記元の高さで定義された水平面と接するまで、前記標的から離れる方向にカメラ軸に沿って投射することと、
    前記障害物または遭遇する第2の障害物に基づいて、前記陰の光線を、前記陰の光線が前記障害物または前記第2の障害物に命中する点で、障害物法線によって定義される平面に投影することと、
    前記障害物または前記第2の障害物の前記障害物法線によって定義される前記平面への前記陰の光線の投影として、新しい光線方向を定義することと、
    新しい光線を前記新しい光線方向に延在させ、前記水平面に到達するか、または第3の障害物に命中するか、または前記第3の障害物の境界ボックスの縁部に到達すると停止させることと、
    前記第3の障害物に到達することに基づいて、前記仮想カメラの前記移動を反復することと、
    前記境界ボックスの前記縁部に到達することに基づいて、前記カメラ軸を、前記標的から現在のカメラの場所への方向として再定義し、前記仮想カメラの前記移動を反復することと、を含む、請求項11に記載の方法。
  13. 前記1つ以上のコンピュータメモリに組み込まれた追加の構図モジュールおよび追加のコライダモジュールをさらに備え、前記追加の構図モジュールおよび前記追加のコライダモジュールが、追加の仮想カメラの方位および位置を変更して、前記追加の仮想カメラに関連付けられた標的ゾーン内に前記対象の前記部分を保持するための動作を実施するように構成されており、前記仮想カメラおよび前記追加の仮想カメラが、メタカメラを備え、前記メタカメラが、前記仮想カメラによって捕捉された前記対象の前記部分のショットのスコア、および前記追加の仮想カメラによって捕捉された前記対象の前記部分のショットのスコアに基づいて、前記仮想カメラまたは前記追加の仮想カメラのいずれかを選択するように構成されている、請求項11または12に記載の方法。
  14. 前記仮想カメラによって捕捉された前記ショットの前記スコア、または前記追加の仮想カメラによって捕捉された前記ショットの前記スコアが、少なくとも、前記コライダモジュール、前記追加のコライダモジュール、前記構図モジュール、または前記追加の構図モジュールの活動によって判定され、前記活動が、
    前記仮想カメラおよび前記追加の仮想カメラに与えられた変位の量、および
    前記仮想カメラおよび前記追加の仮想カメラに与えられた回転の量、を含む、請求項13に記載の方法。
  15. 命令のセットを記憶する非一時的機械可読媒体であって、前記命令が、1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに仮想カメラの方位を変更して、前記仮想ケイム(came)のスクリーン上の標的ゾーン内に対象の一部分を保持するための動作を実施させ、前記動作が、
    ソフト境界を前記標的ゾーンに関連付けることと、
    ハード境界を前記標的ゾーンに関連付けることと、
    前記対象の前記部分が前記ソフト境界と前記ハード境界との間の場所まで移動したとの検出に基づいて、前記カメラを再方位付けるための追跡時間を判定することであって、前記追跡時間の前記判定が、前記対象の前記標的ゾーンからの偏差の量に基づく、判定することと、前記カメラの前記方位の前記変更を実施して、前記追跡時間にわたって前記対象を前記標的ゾーンに連れ戻すことと、を含む、非一時的機械可読媒体。
  16. 前記対象の前記部分が前記ソフト境界と前記ハード境界との間の前記場所まで移動したとの前記検出が、前記仮想カメラに対する2D空間における四元数、単位長さベクトル、および単精度浮動小数点演算を使用して実施される、請求項15に記載の非一時的機械可読媒体。
  17. 前記対象の前記部分が、前記標的ゾーンに関連付けられた前記ハード境界を越えた場所まで移動したとの検出に基づいて、追跡速度をゼロに設定することと、前記方位の前記変更を実施して、前記対象を前記ハード境界の縁部に実質的に瞬時に連れ戻すことと、をさらに含む、請求項15または16に記載の非一時的機械可読媒体。
  18. 前記仮想カメラに関連付けられた標的光線上で前記仮想カメラを前方に移動させて、前記標的光線を侵害している障害物を回避するように構成されたコライダモジュールをさらに備え、前記標的光線が、3Dカメラ原点から、前記カメラスクリーン上の前記標的ゾーンを通って、前記対象の前記部分に関連付けられた3D座標まで延在する、請求項15〜17のいずれか一項に記載の非一時的機械可読媒体。
  19. 前記コライダモジュールが、前記仮想カメラを、前記障害物が前記標的光線を侵害する前に、前記仮想カメラに関連付けられた元の高さまで、前記標的光線に関連付けられた後方ベクトル方向に移動させるようにさらに構成されており、前記移動が、一連のステップの反復を含み、前記一連のステップが、
    陰の光線を、前記陰の光線が前記元の高さで定義された水平面と接するまで、前記標的から離れる方向にカメラ軸に沿って投射することと、
    前記障害物または遭遇する第2の障害物に基づいて、前記陰の光線を、前記陰の光線が前記障害物または前記第2の障害物に命中する点で、障害物法線によって定義される平面に投影することと、
    前記障害物または前記第2の障害物の前記障害物法線によって定義される前記平面への前記陰の光線の投影として、新しい光線方向を定義することと、
    新しい光線を前記新しい光線方向に延在させ、前記水平面に到達するか、または第3の障害物に命中するか、または前記第3の障害物の境界ボックスの縁部に到達すると停止させることと、
    前記第3の障害物に到達することに基づいて、前記仮想カメラの前記移動を反復することと、
    前記境界ボックスの前記縁部に到達することに基づいて、前記カメラ軸を、前記標的から現在のカメラの場所への方向として再定義し、前記仮想カメラの前記移動を反復することと、を含む、請求項18に記載の非一時的機械可読媒体。
  20. 前記1つ以上のコンピュータメモリに組み込まれた追加の構図モジュールとおよび追加のコライダモジュールをさらに備え、前記追加の構図モジュールおよび前記追加のコライダモジュールが、追加の仮想カメラの方位および位置を変更して、前記追加の仮想カメラに関連付けられた標的ゾーン内に前記対象の前記部分を保持するための動作を実施するように構成されており、前記仮想カメラおよび前記追加の仮想カメラが、メタカメラを備え、前記メタカメラが、前記仮想カメラによって捕捉された前記対象の前記部分のショットのスコア、および前記追加の仮想カメラによって捕捉された前記対象の前記部分のショットのスコアに基づいて、前記仮想カメラまたは前記追加の仮想カメラのいずれかを選択するように構成されている、請求項18または19に記載の非一時的機械可読媒体。
  21. 機械可読命令を搬送する機械可読媒体であって、前記命令が、1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、請求項8〜14のいずれか一項に記載の方法を行わせる、機械可読媒体。
JP2019551265A 2017-03-17 2018-03-16 自動化されたカメラコリジョンおよび構図保存のための方法およびシステム Active JP6967603B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201762473107P 2017-03-17 2017-03-17
US62/473,107 2017-03-17
US201762525037P 2017-06-26 2017-06-26
US62/525,037 2017-06-26
US201762551134P 2017-08-28 2017-08-28
US62/551,134 2017-08-28
PCT/EP2018/056768 WO2018167319A1 (en) 2017-03-17 2018-03-16 Method and system for automated camera collision and composition preservation

Publications (3)

Publication Number Publication Date
JP2020514920A true JP2020514920A (ja) 2020-05-21
JP2020514920A5 JP2020514920A5 (ja) 2020-07-27
JP6967603B2 JP6967603B2 (ja) 2021-11-17

Family

ID=61750107

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019551265A Active JP6967603B2 (ja) 2017-03-17 2018-03-16 自動化されたカメラコリジョンおよび構図保存のための方法およびシステム

Country Status (8)

Country Link
US (2) US20180276874A1 (ja)
EP (1) EP3596617A1 (ja)
JP (1) JP6967603B2 (ja)
CN (1) CN110431600A (ja)
BR (1) BR112019019060B1 (ja)
CA (1) CA3056269C (ja)
RU (1) RU2745828C1 (ja)
WO (1) WO2018167319A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11508116B2 (en) 2017-03-17 2022-11-22 Unity IPR ApS Method and system for automated camera collision and composition preservation

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9332285B1 (en) 2014-05-28 2016-05-03 Lucasfilm Entertainment Company Ltd. Switching modes of a media content item
CN108415639B (zh) * 2018-02-09 2022-02-25 腾讯科技(深圳)有限公司 视角调整方法、装置、电子装置及计算机可读存储介质
US10709979B2 (en) * 2018-06-11 2020-07-14 Nintendo Co., Ltd. Systems and methods for adjusting a stereoscopic effect
US10692271B1 (en) * 2018-12-13 2020-06-23 Advanced Micro Devices, Inc. Robust ray-triangle intersection
US10967267B2 (en) * 2019-08-06 2021-04-06 Roblox Corporation Changing a camera view in an electronic game
CN110689570B (zh) * 2019-09-29 2020-11-27 北京达佳互联信息技术有限公司 虚拟形象直播方法、装置、电子设备及存储介质
US11928789B2 (en) * 2019-12-19 2024-03-12 Zf Friedrichshafen Ag Vehicle vision system
CN111870963B (zh) * 2020-08-05 2023-10-27 网易(杭州)网络有限公司 游戏观战方法、装置和电子设备
CN114385299A (zh) * 2022-01-12 2022-04-22 北京字跳网络技术有限公司 页面显示控制方法、装置、移动终端及存储介质
CN115193038A (zh) * 2022-07-26 2022-10-18 北京字跳网络技术有限公司 一种交互控制方法、装置、电子设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0785312A (ja) * 1993-09-20 1995-03-31 Toshiba Corp 3次元動画作成装置
JP2002163676A (ja) * 2000-11-28 2002-06-07 Namco Ltd ゲームシステム及びプログラム
JP2004187806A (ja) * 2002-12-09 2004-07-08 Square Enix Co Ltd ビデオゲーム装置、ビデオゲームの進行制御方法、プログラム及び記録媒体
JP2004329463A (ja) * 2003-05-06 2004-11-25 Nintendo Co Ltd ゲーム装置および仮想カメラの制御プログラム
JP2009059111A (ja) * 2007-08-30 2009-03-19 Square Enix Holdings Co Ltd 画像生成装置及び方法、並びにプログラム及び記録媒体
JP2011215886A (ja) * 2010-03-31 2011-10-27 Namco Bandai Games Inc プログラム、情報記憶媒体、及び、画像生成装置
JP2012511999A (ja) * 2008-12-17 2012-05-31 株式会社ソニー・コンピュータエンタテインメント 追跡システムにおける角度誤差の補正
JP2012104021A (ja) * 2010-11-12 2012-05-31 Konami Digital Entertainment Co Ltd 画像処理装置、画像処理プログラム、及び画像処理方法
JP2014235596A (ja) * 2013-06-03 2014-12-15 任天堂株式会社 情報処理プログラム、情報処理システム、情報処理装置、および情報処理方法

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6670957B2 (en) * 2000-01-21 2003-12-30 Sony Computer Entertainment Inc. Entertainment apparatus, storage medium and object display method
US7256817B2 (en) * 2000-10-26 2007-08-14 Fujinon Corporation Following device
US6995788B2 (en) * 2001-10-10 2006-02-07 Sony Computer Entertainment America Inc. System and method for camera navigation
JP4366023B2 (ja) * 2001-03-16 2009-11-18 インターナショナル・ビジネス・マシーンズ・コーポレーション ビデオ・イメージの部分イメージ領域抽出方法、部分イメージ領域抽出システム、部分イメージ領域抽出のためのプログラム、抽出されたビデオ・イメージの配信方法およびコンテンツ作成方法
JP3843242B2 (ja) * 2002-02-28 2006-11-08 株式会社バンダイナムコゲームス プログラム、情報記憶媒体、およびゲーム装置
JP2003334382A (ja) * 2002-05-21 2003-11-25 Sega Corp ゲーム装置、画像処理装置及び画像処理方法
JP3813945B2 (ja) * 2003-05-07 2006-08-23 任天堂株式会社 ゲーム装置およびゲームプログラム
JP3700857B2 (ja) * 2004-03-03 2005-09-28 コナミ株式会社 ゲームプログラム及びゲーム装置
JP4412715B2 (ja) * 2004-05-07 2010-02-10 株式会社バンダイナムコゲームス プログラム、情報記憶媒体および画像生成システム
JP4123187B2 (ja) * 2004-05-13 2008-07-23 ソニー株式会社 アニメーション生成装置、アニメーション生成方法およびアニメーション生成プログラム
US7720580B2 (en) * 2004-12-23 2010-05-18 Donnelly Corporation Object detection system for vehicle
US9327191B2 (en) * 2006-05-08 2016-05-03 Nintendo Co., Ltd. Method and apparatus for enhanced virtual camera control within 3D video games or other computer graphics presentations providing intelligent automatic 3D-assist for third person viewpoints
US8277316B2 (en) * 2006-09-14 2012-10-02 Nintendo Co., Ltd. Method and apparatus for using a common pointing input to control 3D viewpoint and object targeting
EP2154481A4 (en) * 2007-05-31 2014-09-10 Panasonic Ip Corp America PICTURE RECORDING DEVICE, SERVER FOR PROVIDING ADDITIONAL INFORMATION AND SYSTEM FOR FILING SUPPLEMENTARY INFORMATION
JP5390093B2 (ja) * 2007-12-21 2014-01-15 任天堂株式会社 ゲームプログラムおよびゲーム装置
JP4425963B2 (ja) * 2008-03-14 2010-03-03 株式会社コナミデジタルエンタテインメント 画像生成装置、画像生成方法、および、プログラム
US9248376B2 (en) * 2008-09-30 2016-02-02 Nintendo Co., Ltd. Computer-readable storage medium having stored game program therein, and game apparatus
US9299184B2 (en) * 2009-04-07 2016-03-29 Sony Computer Entertainment America Llc Simulating performance of virtual camera
WO2011096252A1 (ja) * 2010-02-02 2011-08-11 コニカミノルタホールディングス株式会社 画像処理システム、画像処理方法、およびプログラム
CN103080976B (zh) * 2010-08-19 2015-08-05 日产自动车株式会社 三维物体检测装置和三维物体检测方法
DE102010042063B4 (de) * 2010-10-06 2021-10-28 Robert Bosch Gmbh Verfahren und Vorrichtung zum Bestimmen von aufbereiteten Bilddaten über ein Umfeld eines Fahrzeugs
JP5714393B2 (ja) * 2011-04-13 2015-05-07 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理方法及び情報処理システム
US9147122B2 (en) * 2012-05-31 2015-09-29 Qualcomm Incorporated Pose estimation based on peripheral information
JP5843721B2 (ja) * 2012-07-26 2016-01-13 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲーム制御方法およびゲームシステム
WO2015154004A1 (en) * 2014-04-05 2015-10-08 Sony Computer Entertainment America Llc Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters
WO2016151925A1 (ja) * 2015-03-26 2016-09-29 富士フイルム株式会社 追尾制御装置、追尾制御方法、追尾制御プログラム、及び、自動追尾撮影システム
EP3285476A4 (en) * 2015-04-14 2018-09-19 Sony Corporation Image processing device, image processing method, and image processing system
JP6074525B1 (ja) * 2016-02-12 2017-02-01 株式会社コロプラ 仮想空間における視界領域調整方法、およびプログラム
US10148876B1 (en) * 2016-07-26 2018-12-04 360fly, Inc. Panoramic video cameras, camera systems, and methods that facilitate handling multiple video streams while tracking an object
US10688392B1 (en) * 2016-09-23 2020-06-23 Amazon Technologies, Inc. Reusable video game camera rig framework
JP6967603B2 (ja) 2017-03-17 2021-11-17 ユニティ アイピーアール エイピーエスUnity Ipr Aps 自動化されたカメラコリジョンおよび構図保存のための方法およびシステム

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0785312A (ja) * 1993-09-20 1995-03-31 Toshiba Corp 3次元動画作成装置
JP2002163676A (ja) * 2000-11-28 2002-06-07 Namco Ltd ゲームシステム及びプログラム
JP2004187806A (ja) * 2002-12-09 2004-07-08 Square Enix Co Ltd ビデオゲーム装置、ビデオゲームの進行制御方法、プログラム及び記録媒体
JP2004329463A (ja) * 2003-05-06 2004-11-25 Nintendo Co Ltd ゲーム装置および仮想カメラの制御プログラム
JP2009059111A (ja) * 2007-08-30 2009-03-19 Square Enix Holdings Co Ltd 画像生成装置及び方法、並びにプログラム及び記録媒体
JP2012511999A (ja) * 2008-12-17 2012-05-31 株式会社ソニー・コンピュータエンタテインメント 追跡システムにおける角度誤差の補正
JP2011215886A (ja) * 2010-03-31 2011-10-27 Namco Bandai Games Inc プログラム、情報記憶媒体、及び、画像生成装置
JP2012104021A (ja) * 2010-11-12 2012-05-31 Konami Digital Entertainment Co Ltd 画像処理装置、画像処理プログラム、及び画像処理方法
JP2014235596A (ja) * 2013-06-03 2014-12-15 任天堂株式会社 情報処理プログラム、情報処理システム、情報処理装置、および情報処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11508116B2 (en) 2017-03-17 2022-11-22 Unity IPR ApS Method and system for automated camera collision and composition preservation

Also Published As

Publication number Publication date
RU2745828C1 (ru) 2021-04-01
BR112019019060B1 (pt) 2021-01-19
CN110431600A (zh) 2019-11-08
JP6967603B2 (ja) 2021-11-17
US20180276874A1 (en) 2018-09-27
WO2018167319A1 (en) 2018-09-20
US11508116B2 (en) 2022-11-22
CA3056269C (en) 2021-07-13
BR112019019060A2 (pt) 2020-04-22
EP3596617A1 (en) 2020-01-22
CA3056269A1 (en) 2018-09-20
US20200357164A1 (en) 2020-11-12

Similar Documents

Publication Publication Date Title
JP6967603B2 (ja) 自動化されたカメラコリジョンおよび構図保存のための方法およびシステム
US11266915B2 (en) Systems and methods for creating, broadcasting, and viewing 3D content
US10996811B2 (en) Augmented reality user interface control
KR20230107844A (ko) 개인화된 아바타 실시간 모션 캡처
US9799141B2 (en) Display device, control system, and control program
JP7222121B2 (ja) ストーリー内のオブジェクトの感情適合性を管理する方法およびシステム
US10846901B2 (en) Conversion of 2D diagrams to 3D rich immersive content
CN117957043A (zh) 控制时尚物品上的ar游戏
US20220058823A1 (en) Method and system for displaying a large 3d model on a remote device
US20230154445A1 (en) Spatial music creation interface
KR20230073336A (ko) 가상 아이웨어 빔들을 사용한 증강 현실 게이밍
US20240176920A1 (en) Systems and methods for smart volumetric layouts
US20240073402A1 (en) Multi-perspective augmented reality experience
US20230410441A1 (en) Generating user interfaces displaying augmented reality graphics

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: 20190925

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200610

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200610

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201028

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20201104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201110

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210203

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210510

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210713

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210816

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: 20211012

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211025

R150 Certificate of patent or registration of utility model

Ref document number: 6967603

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150