(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-22
(45)【発行日】2024-05-30
(54)【発明の名称】拡張現実技術を用いたコンテンツを提供するためのプログラム、システム、及び方法
(51)【国際特許分類】
G06T 19/00 20110101AFI20240523BHJP
A63F 13/655 20140101ALI20240523BHJP
A63F 13/525 20140101ALI20240523BHJP
【FI】
G06T19/00 600
A63F13/655
A63F13/525
(21)【出願番号】P 2020018837
(22)【出願日】2020-02-06
【審査請求日】2022-12-16
【新規性喪失の例外の表示】特許法第30条第2項適用 令和1年12月23日、https://apps.apple.com/jp/app/id1481536391 令和2年1月17日、https://play.google.com/store/apps/details?id=com.showroom.showstage
(73)【特許権者】
【識別番号】599115217
【氏名又は名称】株式会社 ディー・エヌ・エー
(74)【代理人】
【識別番号】100125195
【氏名又は名称】尾畑 雄一
(72)【発明者】
【氏名】杉山 敦
【審査官】岡本 俊威
(56)【参考文献】
【文献】特表2019-535210(JP,A)
【文献】特開2018-171455(JP,A)
【文献】特開平10-198821(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
A63F 13/00-13/98
(57)【特許請求の範囲】
【請求項1】
拡張現実技術を用いたコンテンツを提供するためのプログラムであって、1又は複数のコンピュータに、
現実カメラを介した現実空間の画像を取得する処理と、
前記現実カメラに連動するように、仮想空間に含まれる仮想カメラを制御する処理と、
前記現実空間の画像に対して前記仮想カメラを介した前記仮想空間の画像を重ねた拡張現実画像を生成及び表示する処理と、を実行させ、
前記仮想カメラを制御する処理は、前記仮想空間に含まれる所定オブジェクトに基づく所定領域外に前記仮想カメラが位置するように、前記現実カメラに対する前記仮想カメラの相対的な位置を調整することを含
み、
前記所定領域は、前記所定オブジェクトを囲う第1領域、及び、前記所定オブジェクトの所定位置よりも下側の第2領域を含み、
前記所定位置は、キャラクタとして構成される前記所定オブジェクトの腰の位置であり、
前記仮想カメラを制御する処理は、
前記現実カメラに連動する前記仮想カメラの前記第2領域内への進入に応じて、前記現実カメラに対する前記仮想カメラの相対的な位置を、上方向に移動させること、及び、
前記仮想カメラの前記第2領域内への進入に応じた前記現実カメラに対する前記仮想カメラの相対的な位置の上方向への移動に伴って前記仮想カメラが前記第1領域内に進入する場合に、前記現実カメラに対する前記仮想カメラの相対的な位置を水平方向に移動させること、を含む、
プログラム。
【請求項2】
前記仮想カメラを制御する処理は、前記現実カメラに連動する前記仮想カメラの前記所定領域内への進入に応じて、前記所定領域外に前記仮想カメラが位置するように、前記現実カメラに対する前記仮想カメラの相対的な位置を調整することを含む、
請求項1のプログラム。
【請求項3】
前記仮想カメラを制御する処理は、前記所定領域外に前記仮想カメラが位置するように前記現実カメラに対する前記仮想カメラの相対的な位置を調整した後に、前記所定領域外に前記仮想カメラが位置する限りにおいて、前記現実カメラに対する前記仮想カメラの相対的な位置を調整前の位置に戻すことを含む、
請求項1又は2のプログラム。
【請求項4】
前記仮想カメラを制御する処理は、前記所定オブジェクトが第1の種類のオブジェクトである場合に、前記第2領域外に前記仮想カメラが位置するように前記仮想カメラの相対的な位置を調整する一方、前記所定オブジェクトが第2の種類のオブジェクトである場合に、前記第2領域外に前記仮想カメラが位置するように前記仮想カメラの相対的な位置を調整しないことを含む、
請求項
1ないし
3のプログラム。
【請求項5】
1又は複数のコンピュータプロセッサを備え、拡張現実技術を用いたコンテンツを提供するためのシステムであって、
前記1又は複数のコンピュータプロセッサは、読取可能な命令の実行に応じて、
現実カメラを介した現実空間の画像を取得する処理と、
前記現実カメラに連動するように、仮想空間に含まれる仮想カメラを制御する処理と、
前記現実空間の画像に対して前記仮想カメラを介した前記仮想空間の画像を重ねた拡張現実画像を生成及び表示する処理と、を実行し、
前記仮想カメラを制御する処理は、前記仮想空間に含まれる所定オブジェクトに基づく所定領域外に前記仮想カメラが位置するように、前記現実カメラに対する前記仮想カメラの相対的な位置を調整することを含
み、
前記所定領域は、前記所定オブジェクトを囲う第1領域、及び、前記所定オブジェクトの所定位置よりも下側の第2領域を含み、
前記所定位置は、キャラクタとして構成される前記所定オブジェクトの腰の位置であり、
前記仮想カメラを制御する処理は、
前記現実カメラに連動する前記仮想カメラの前記第2領域内への進入に応じて、前記現実カメラに対する前記仮想カメラの相対的な位置を、上方向に移動させること、及び、
前記仮想カメラの前記第2領域内への進入に応じた前記現実カメラに対する前記仮想カメラの相対的な位置の上方向への移動に伴って前記仮想カメラが前記第1領域内に進入する場合に、前記現実カメラに対する前記仮想カメラの相対的な位置を水平方向に移動させること、を含む、
システム。
【請求項6】
1又は複数のコンピュータによって実行され、拡張現実技術を用いたコンテンツを提供するための方法であって、
現実カメラを介した現実空間の画像を取得する工程と、
前記現実カメラに連動するように、仮想空間に含まれる仮想カメラを制御する工程と、
前記現実空間の画像に対して前記仮想カメラを介した前記仮想空間の画像を重ねた拡張現実画像を生成及び表示する工程と、を備え、
前記仮想カメラを制御する工程は、前記仮想空間に含まれる所定オブジェクトに基づく所定領域外に前記仮想カメラが位置するように、前記現実カメラに対する前記仮想カメラの相対的な位置を調整することを含
み、
前記所定領域は、前記所定オブジェクトを囲う第1領域、及び、前記所定オブジェクトの所定位置よりも下側の第2領域を含み、
前記所定位置は、キャラクタとして構成される前記所定オブジェクトの腰の位置であり、
前記仮想カメラを制御する工程は、
前記現実カメラに連動する前記仮想カメラの前記第2領域内への進入に応じて、前記現実カメラに対する前記仮想カメラの相対的な位置を、上方向に移動させること、及び、
前記仮想カメラの前記第2領域内への進入に応じた前記現実カメラに対する前記仮想カメラの相対的な位置の上方向への移動に伴って前記仮想カメラが前記第1領域内に進入する場合に、前記現実カメラに対する前記仮想カメラの相対的な位置を水平方向に移動させること、を含む、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、拡張現実(AR:Augmented Reality)の技術を用いたコンテンツを提供するためのプログラム、システム、及び方法に関するものである。
【背景技術】
【0002】
従来、拡張現実技術を適用した様々なデジタルコンテンツ(以下、ARコンテンツと言うことがある。)が提供されている(例えば、下記特許文献1を参照)。こうしたコンテンツでは、スマートフォン等の装置が有するカメラによって撮影される撮影画像(現実空間の画像)に対して仮想空間の画像が重ねられた拡張現実画像が生成及び表示される。また、典型的には、仮想空間における視点に対応する仮想カメラは、現実のカメラに連動するように(現実のカメラの動きを追従するように)制御される。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来のARコンテンツにおいて、現実のカメラに連動するように仮想カメラを制御するだけでは、適切な拡張現実画像が生成されない場合が考えられる。例えば、仮想空間における仮想カメラの位置によっては、当該仮想空間に含まれるキャラクタ等のオブジェクトが適切に表示されない場合が考えられる。
【0005】
本発明の実施形態は、適切な拡張現実画像の生成及び表示を支援することを目的の一つとする。本発明の実施形態の他の目的は、本明細書全体を参照することにより明らかとなる。
【課題を解決するための手段】
【0006】
本発明の一実施形態に係るプログラムは、拡張現実技術を用いたコンテンツを提供するためのプログラムであって、1又は複数のコンピュータに、現実カメラを介した現実空間の画像を取得する処理と、前記現実カメラに連動するように、仮想空間に含まれる仮想カメラを制御する処理と、前記現実空間の画像に対して前記仮想カメラを介した前記仮想空間の画像を重ねた拡張現実画像を生成及び表示する処理と、を実行させ、前記仮想カメラを制御する処理は、前記仮想空間に含まれる所定オブジェクトに基づく所定領域外に前記仮想カメラが位置するように、前記現実カメラに対する前記仮想カメラの相対的な位置を調整することを含む。
【0007】
本発明の一実施形態に係るシステムは、1又は複数のコンピュータプロセッサを備え、拡張現実技術を用いたコンテンツを提供するためのシステムであって、前記1又は複数のコンピュータプロセッサは、読取可能な命令の実行に応じて、現実カメラを介した現実空間の画像を取得する処理と、前記現実カメラに連動するように、仮想空間に含まれる仮想カメラを制御する処理と、前記現実空間の画像に対して前記仮想カメラを介した前記仮想空間の画像を重ねた拡張現実画像を生成及び表示する処理と、を実行し、前記仮想カメラを制御する処理は、前記仮想空間に含まれる所定オブジェクトに基づく所定領域外に前記仮想カメラが位置するように、前記現実カメラに対する前記仮想カメラの相対的な位置を調整することを含む。
【0008】
本発明の一実施形態に係る方法は、1又は複数のコンピュータによって実行され、拡張現実技術を用いたコンテンツを提供するための方法であって、現実カメラを介した現実空間の画像を取得する工程と、前記現実カメラに連動するように、仮想空間に含まれる仮想カメラを制御する工程と、前記現実空間の画像に対して前記仮想カメラを介した前記仮想空間の画像を重ねた拡張現実画像を生成及び表示する工程と、を備え、前記仮想カメラを制御する工程は、前記仮想空間に含まれる所定オブジェクトに基づく所定領域外に前記仮想カメラが位置するように、前記現実カメラに対する前記仮想カメラの相対的な位置を調整することを含む。
【発明の効果】
【0009】
本発明の様々な実施形態は、適切な拡張現実画像の生成及び表示を支援する。
【図面の簡単な説明】
【0010】
【
図1】本発明の一実施形態に係るコンテンツ提供端末10を含むネットワークの構成を概略的に示す構成図。
【
図2】ライブ空間動画を再生する際に、コンテンツ提供端末10によって実行される処理を例示するフロー図。
【
図3】仮想空間(オブジェクト)が配置される様子を説明するための図。
【
図5】ライブ空間動画の再生中において、コンテンツ提供端末10によって実行される処理を例示するフロー図。
【
図6】キャラクタを構成する各メッシュの境界ボックスを例示する図。
【
図7】仮想カメラがローアングル領域に位置する場合の仮想カメラの制御を説明するための図。
【
図8】仮想カメラVPがキャラクタCHの腰の高さhよりも高い位置にある状態の拡張現実画像50を例示する図。
【
図9】仮想カメラVPが、カメラ131の位置に対応する基準点RPから上方向に移動してキャラクタCHの腰の高さhよりも高い位置にある状態の拡張現実画像50を例示する図。
【
図10】仮想カメラがめり込み領域に位置しており、且つ、ローアングル領域への進入に応じた仮想カメラの上方向への移動の直後でない場合の仮想カメラの制御を説明するための図。
【
図11】仮想カメラVPが境界ボックスBBの外側に位置する状態の拡張現実画像50を例示する図。
【
図12】仮想カメラVPが、カメラ131の位置に対応する基準点RPから視線方向の反対方向に移動して境界ボックスBBの外側の位置にある状態の拡張現実画像50を例示する図。
【
図13】仮想カメラがめり込み領域に位置しており、且つ、ローアングル領域への進入に応じた仮想カメラの上方向への移動の直後である場合の仮想カメラの制御を説明するための図。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、本発明の実施形態について説明する。各図面において、同一の又は類似する構成要素に対しては同一の参照符号が付され得る。
【0012】
図1は、本発明の一実施形態に係るコンテンツ提供端末10を含むネットワークの構成を概略的に示す構成図である。端末10は、図示するように、インターネット等の通信ネットワーク20を介してコンテンツ管理サーバ30と通信可能に接続されている。コンテンツ提供端末10は、拡張現実(AR)の技術を用いたARコンテンツを提供するための機能を有し、本発明のシステムの全部又は一部を実装する装置の一例である。
【0013】
コンテンツ提供端末10は、一般的なコンピュータとして構成されており、
図1に示すように、CPU及びGPU等を含むコンピュータプロセッサ11と、メインメモリ12と、入出力I/F13と、通信I/F14と、ストレージ(記憶装置)15と、各種センサ16とを備え、これらの各構成要素が図示しないバス等を介して電気的に接続されている。
【0014】
コンピュータプロセッサ11は、ストレージ15等に記憶されている様々なプログラムをメインメモリ12に読み込んで、当該プログラムに含まれる各種の命令を実行する。メインメモリ12は、例えば、DRAM等によって構成される。
【0015】
入出力I/F13は、例えば、タッチパネル、コントローラ等の情報入力装置、マイクロフォン等の音声入力装置、カメラ131等の画像入力装置を含む。また、入出力I/F13は、ディスプレイ等の画像出力装置(表示装置)、スピーカー等の音声出力装置を含む。
【0016】
通信I/F14は、ネットワークアダプタ等のハードウェア、各種の通信用ソフトウェア、及びこれらの組み合わせとして実装され、有線又は無線の通信を実現できるように構成されている。
【0017】
ストレージ15は、例えば磁気ディスク又はフラッシュメモリ等によって構成される。ストレージ15は、オペレーティングシステムを含む様々なプログラム及び各種データ等を記憶する。ストレージ15が記憶するプログラムは、アプリケーションマーケット等からダウンロードされてインストールされ得る。本実施形態において、ストレージ15が記憶するプログラムは、本発明の一実施形態に係るコンテンツ提供用プログラム40を含む。コンテンツ提供用プログラム40は、コンテンツ提供端末10を、拡張現実技術を用いたARコンテンツを提供するための装置として機能させるためのプログラムである。
【0018】
各種センサ16は、例えば、加速度センサ、ジャイロセンサ(角速度センサ)、地磁気センサ等によって構成されるモーションセンサを含む。コンテンツ提供端末10は、こうしたモーションセンサによって検知される情報に基づいて、端末10自体の様々な動きを判定することができる。
【0019】
コンテンツ管理サーバ30は、一般的なコンピュータとしての構成を有する。コンテンツ管理サーバ30は、コンテンツ提供端末10が提供するARコンテンツに関する様々な情報を記憶及び管理する。例えば、コンテンツ管理サーバ30は、ユーザ毎のコンテンツに関する情報、及び、コンテンツを提供するための各種データ(例えば、コンテンツ自体、及び、仮想空間のデータ等)等を管理する。コンテンツ管理サーバ30は、それぞれが一般的なコンピュータとしての構成を有する複数のサーバ装置を用いて構成され得る。
【0020】
例えば、コンテンツ提供端末10は、コンテンツ提供用プログラム40の起動に応じて、対応するユーザのコンテンツに関する情報及び各種データ等をコンテンツ管理サーバ30から取得する。また、例えば、コンテンツ提供端末10は、コンテンツ提供用プログラム40の実行中において、各種データ等をコンテンツ管理サーバ30から取得し、及び、ユーザに対するコンテンツの提供状況(例えば、ゲームの進行状況等)等をコンテンツ管理サーバ30に対して送信する。なお、本実施形態において、コンテンツ提供端末10は、コンテンツ管理サーバ30との通信なしでARコンテンツを提供するように構成することができ、この場合、コンテンツ管理サーバ30は不要となり得る。
【0021】
次に、本実施形態のコンテンツ提供端末10が有する機能について説明する。
図1に示すように、コンテンツ提供端末10のコンピュータプロセッサ11は、メインメモリ12に読み込まれたプログラム(例えば、コンテンツ提供用プログラム40)に含まれる命令を実行することによって、画像生成表示部111、及び、コンテンツ制御部112として機能するように構成されている。
【0022】
画像生成表示部111は、コンテンツに関する画像の生成及び表示に関する様々な処理を実行するように構成されている。例えば、画像生成表示部111は、カメラ131を介した現実空間の画像を取得し、取得した現実空間の画像に対して、仮想空間に含まれる仮想カメラを介した当該仮想空間の画像を重ねた拡張現実画像を生成及び表示するように構成されている。仮想空間は、例えば、三次元の仮想空間として構成される。
【0023】
本実施形態において、仮想空間に含まれる仮想カメラは、現実のカメラ131に連動するように制御される。例えば、画像生成表示部111は、カメラ131(端末10)の動き(位置及び傾き(姿勢)の変化等)に従って仮想空間内を動くように仮想カメラを制御する。こうした仮想カメラの制御は、現実空間と仮想空間との対応関係を確立するための制御と言うこともでき、トラッキングと呼ばれることもある。仮想カメラは、仮想空間における視点と言うこともできる。
【0024】
また、画像生成表示部111は、仮想空間に含まれる所定オブジェクトに基づく所定領域外に仮想カメラが位置するように、カメラ131に対する仮想カメラの相対的な位置を調整するように構成されている。例えば、画像生成表示部111は、カメラ131に連動する仮想カメラに対してオフセットを設定する(カメラ131の位置に対応する基準点から特定の方向へ特定の距離だけ離れた位置を仮想カメラの位置とする)ことによって、カメラ131に対する仮想カメラの相対的な位置の調整を行うように構成される。
【0025】
コンテンツ制御部112は、コンテンツの制御に関する様々な処理を実行する。例えば、コンテンツが拡張現実技術を用いた動画(例えば、キャラクタ等の仮想的なオブジェクトが現実空間において登場するような動画等)である場合、コンテンツ制御部112は、複数の動画の中からユーザによって指定された動画をコンテンツ管理サーバ30に対して要求し、当該動画をサーバ30から受信して再生するように構成される。また、例えば、コンテンツが拡張現実技術を用いたゲームである場合、コンテンツ制御部112は、ユーザ(ゲームのプレイヤ)による操作入力に応じて当該ゲームの進行を制御するように構成される。
【0026】
このように、本実施形態におけるコンテンツ提供端末10は、カメラ131を介した現実空間の画像に対して、当該カメラ131に連動する仮想カメラを介した仮想空間の画像を重ねた拡張現実画像を生成及び表示し、当該仮想空間に含まれる所定オブジェクトに基づく所定領域外に仮想カメラが位置するように、カメラ131に対する仮想カメラの相対的な位置を調整するから、こうした領域内に仮想カメラが位置することによって不適切な画像が生成及び表示されることを抑制する。つまり、コンテンツ提供端末10は、適切な拡張現実画像の生成及び表示を支援する。
【0027】
本実施形態において、カメラ131に対する仮想カメラの相対的な位置の調整は、様々な態様で実現され得る。例えば、画像生成表示部111は、カメラ131に連動する仮想カメラの所定領域内への進入に応じて、当該所定領域外に仮想カメラが位置するように、カメラ131に対する仮想カメラの相対的な位置を調整する(例えば、仮想カメラを所定領域外に移動させる)ように構成され得る。こうした構成は、仮想カメラの所定領域内への進入に応じた当該仮想カメラの位置の調整を可能とする。
【0028】
また、画像生成表示部111は、所定領域外に仮想カメラが位置するようにカメラ131に対する仮想カメラの相対的な位置を調整した後に、当該所定領域外に仮想カメラが位置する限りにおいて、カメラ131に対する仮想カメラの相対的な位置を調整前の位置に戻すように構成され得る。例えば、画像生成表示部111は、カメラ131に連動する仮想カメラに対してオフセットを設定した後に、当該オフセットを段階的に/一時に解消する(カメラ131の位置に対応する基準点に向けて仮想カメラを段階的に/一時に移動させる)ように構成される。こうした構成は、カメラ131に対する仮想カメラの相対的な位置の調整後、当該仮想カメラを通常の位置に戻すことを可能とする。
【0029】
本実施形態において、所定オブジェクトは、仮想空間に含まれる様々な種類のオブジェクトを含み、例えば、これらに限定されないが、キャラクタ、人工物(建築物等)、及び自然物(樹木等)を含む。例えば、所定オブジェクトが仮想空間内を動くキャラクタ等のオブジェクトとして構成される場合には、当該所定オブジェクトに基づく所定領域もまた仮想空間内を移動し得る。
【0030】
本実施形態において、上記所定領域は、所定オブジェクトに基づく様々な領域を含み得る。例えば、所定領域は、当該所定オブジェクトを囲う領域を含む。当該領域は、例えば、所定オブジェクトの境界を定める境界ボックス(例えば、軸平行境界ボックス(AABB)、又は、有向境界ボックス(OBB)等)、又は、当該境界ボックスに基づく領域(境界ボックスよりも若干大きい/小さい領域)等として構成される。こうした構成は、所定オブジェクトを囲う領域内に仮想カメラが位置する(例えば、仮想カメラが所定オブジェクトにめり込む)ことによって不適切な拡張現実画像となってしまうこと(例えば、所定オブジェクトが適切に表示されないこと等)を抑制する。
【0031】
また、画像生成表示部111は、所定オブジェクトを囲う領域への仮想カメラの進入に応じて、カメラ131に対する仮想カメラの相対的な位置を、当該仮想カメラの視線の方向の反対の方向に移動させるように構成され得る。こうした構成は、仮想カメラの視線に対応する直線に沿って当該仮想カメラを移動させるから、仮想カメラを介した画像の変化が小さくなり、この結果、仮想カメラの移動に伴ってユーザに生じ得る違和感が低減される。
【0032】
また、例えば、所定領域は、所定オブジェクトの所定位置よりも下側の領域を含む。例えば、所定位置は、キャラクタとして構成される所定オブジェクトの腰の位置を含む。例えば、画像生成表示部111は、所定オブジェクトの所定位置よりも下側の領域への仮想カメラの進入に応じて、カメラ131に対する仮想カメラの相対的な位置を、上方向(例えば、鉛直上方向、又は、斜め上方向等)に移動させるように構成され得る。こうした構成は、所定オブジェクトの所定位置よりも下側の領域内に仮想カメラが位置することによって不適切な拡張現実画像となってしまうこと(例えば、キャラクタの腰の位置よりも低い視点からのローアングルの画像となってしまうこと等)を抑制する。
【0033】
また、画像生成表示部111は、所定オブジェクトの所定位置よりも下側の領域への仮想カメラの進入に応じたカメラ131に対する仮想カメラの相対的な位置の上方向への移動に伴って当該仮想カメラが所定オブジェクトを囲う領域に進入する場合に、カメラ131に対する仮想カメラの相対的な位置を水平方向に移動させるように構成され得る。こうした構成は、所定オブジェクトを囲う領域外に移動する仮想カメラが、所定オブジェクトの所定位置よりも下側の領域へ再度進入してしまうことを抑制する。
【0034】
本実施形態において、所定オブジェクトの種類に応じて、仮想カメラの制御を変化させるようにしてもよい。例えば、画像生成表示部111は、所定オブジェクトが第1の種類のオブジェクト(例えば、ローアングルが好ましくないキャラクタ)である場合に、所定位置よりも下側の領域外に仮想カメラが位置するように当該仮想カメラの相対的な位置を調整する一方、所定オブジェクトが第2の種類のオブジェクト(例えば、ローアングルでも問題ないキャラクタ)である場合に、こうした仮想カメラの相対的な位置の調整を行わないように構成され得る。こうした構成は、所定オブジェクトの種類に応じた仮想カメラの制御を可能とし、この結果、端末10に対する負荷が軽減され得る。
【0035】
次に、このような機能を有する本実施形態のコンテンツ提供端末10の一態様としての具体例について説明する。この例において、コンテンツ提供端末10は、仮想空間において行われるライブ・公演(コンサート、ギグ、パフォーマンス、又はショー等と呼ばれることもある。)に対応するライブ空間動画をユーザに対して提供する。当該動画は、現実空間の画像に対して仮想空間の画像が重ねられた拡張現実画像を含むように構成される。
【0036】
この例において、ライブ空間動画は、コンテンツ管理サーバ30から所定の日時(ライブ・公演の開催日時)に生配信される。例えば、ユーザは、予めチケットを購入したライブ空間動画を、その開催日時において、コンテンツ提供端末10を介して視聴することができる。なお、こうした動画の生配信に代えて、又は、これに加えて、予め記憶されている動画をユーザからの要求に応じて配信するようにしてもよい。
【0037】
図2は、ライブ空間動画を再生する際に、コンテンツ提供端末10によって実行される処理を例示するフロー図である。これらの処理は、ユーザによる特定の動画の再生(仮想的なライブ空間(ライブ会場)への入室)の要求に応じて実行される。端末10は、まず、図示するように、対応するライブ空間動画におけるオブジェクト情報を取得する(ステップS100)。オブジェクト情報は、ライブ空間動画における仮想空間に含まれるオブジェクトに関する情報であり、コンテンツ管理サーバ30から取得される。仮想空間に含まれるオブジェクトは、パフォーマーとしてのキャラクタ(所定オブジェクト)を含み、オブジェクト情報は、当該キャラクタの3Dモデルを含む。オブジェクトは、キャラクタ以外の様々な種類のオブジェクト(例えば、ステージ、スクリーン等の設備に対応するオブジェクト等)を含み得る。
【0038】
続いて、端末10は、カメラ131を介して入力される現実空間の画像(撮影画像)における平面を認識し(ステップS110)、認識した平面に基づいて、現実空間に対して仮想空間(オブジェクト)を配置する(ステップS120)。
【0039】
図3は、仮想空間(オブジェクト)が配置される様子を説明するための図である。
図3の上側の画像45は、カメラ131を介して入力される現実空間の撮影画像であり、この例では、テーブルTBの上面が含まれている。
図3の下側の画像50は、撮影画像45に対して、オブジェクトとしてのキャラクタCHが含まれる仮想空間が配置された拡張現実画像である。拡張現実画像50は、現実空間の画像に対して仮想空間の画像が重ねられているとも言える。この例では、撮影画像45におけるテーブルTBの上面が平面として認識され、拡張現実画像50では、当該テーブルTBの上面にキャラクタCHが立っている。
【0040】
図4は、仮想空間を説明するための図である。図示するように、この例では、右方向をX軸、上方向をY軸、及び、手前方向をZ軸とする三次元の座標系が仮想空間におけるワールド座標系として定義される。そして、ワールド座標系のXZ平面が、現実空間の撮影画像において認識された平面に対応付けられ、キャラクタCHは、当該XY平面上に配置される。また、仮想空間における視点となる仮想カメラVPが所定位置に配置され、当該仮想カメラVPの位置及び視線VLの方向は、カメラ131(端末10)の動きに連動するように制御される。こうした仮想カメラVPの制御は、カメラ131を介した撮影画像、及び、モーションセンサによって検知される情報等に基づいて行われる。なお、仮想空間において、キャラクタCH、及び、仮想カメラVP等の位置を基準としたローカル座標系も管理され得る。
【0041】
図2のフロー図に戻り、こうして現実空間に対して仮想空間(オブジェクト)が配置されると、次に、端末10は、ライブ空間動画を再生する(ステップS130)。当該動画の再生は、所定の終了条件が成立するまでの間、継続する(ステップS140においてNO)。動画の再生では、カメラ131を介した現実空間の画像に対して、当該カメラ131に連動する仮想カメラを介した仮想空間の画像が重ねられた拡張現実画像が繰り返し生成及び表示される。仮想空間の画像において、キャラクタは、その3Dモデルに基づいて描画され、コンテンツ管理サーバ30から受信する動きデータ(3Dモデルのアニメーション情報等)に基づいて動作する。また、動画の再生では、コンテンツ管理サーバ30から受信する音声が出力される。
【0042】
この例では、動画の再生中において、カメラ131に連動する仮想カメラは、キャラクタに基づく所定領域外となるように制御される。
図5は、動画の再生中において、コンテンツ提供端末10によって実行される処理を例示するフロー図である。これらの処理は、所定のタイミングで繰り返し実行され、例えば、生成及び表示される拡張現実画像に対応するフレーム単位で実行される。端末10は、まず、図示するように、キャラクタの腰の高さ、及び、当該キャラクタを構成する各メッシュの境界ボックスの位置を取得する(ステップS200)。
【0043】
この例において、キャラクタの腰の高さは、キャラクタ情報に含まれるボーン情報に基づいて判定され、具体的には、キャラクタに含まれる複数のボーンのうち、背骨に相当するボーンの下端部の高さが、キャラクタの腰の高さ(ワールド座標系におけるY座標)として判定される。なお、本実施形態の他の例では、これに代えて、キャラクタの重心の位置が腰の位置として利用され、又は、キャラクタ毎に腰の高さが固定値として予め設定される。
【0044】
また、キャラクタを構成する各メッシュの境界ボックスは、この例では、軸平行境界ボックス(AABB)として定義され、キャラクタのメッシュ情報に基づいて特定される。例えば、キャラクタが、頭部に対応する第1メッシュ、及び、胴体部に対応する第2メッシュの2つのメッシュによって構成される場合には、
図6に示すように、頭部を囲う第1境界ボックスBB1、及び、胴体部を囲う第2境界ボックスBB2の2つの境界ボックスが特定され、これらの境界ボックスBBの位置(ワールド座標系における座標)が取得される。
【0045】
図5のフロー図に戻り、続いて、端末10は、仮想カメラの位置及び視線の方向を取得する(ステップS210)。上述したように、仮想カメラは、カメラ131に連動するように制御され、ステップS210では、その時点における仮想カメラの位置及び視線の方向(ワールド座標系における座標及び方向ベクトル)が取得される。
【0046】
そして、端末10は、仮想カメラが、その位置を調整する必要がある位置調整要領域(所定領域)内に位置しているか否かを判定する(ステップS220)。この例において、位置調整要領域は、キャラクタの腰の高さよりも低い「ローアングル領域」、及び、キャラクタを構成する各メッシュの境界ボックスの内側に対応する「めり込み領域」の2つの領域である。仮想カメラが位置調整要領域内に位置している場合には(ステップS220においてYES)、以下に述べるように、仮想カメラの位置が調整される。
【0047】
まず、仮想カメラがローアングル領域内に位置している場合には(ステップS230においてYES)、端末10は、仮想カメラを上方向に移動させる(ステップS240)。この例では、具体的には、キャラクタの腰の高さと、仮想カメラの高さとの差分に基づいて、キャラクタの腰の高さよりも若干上の高さとなるように、仮想カメラが上方向(鉛直上方向)に移動する。なお、本実施形態の他の例では、この場合の仮想カメラの移動量は固定値とされ得る。
【0048】
図7は、仮想カメラがローアングル領域内に位置する場合の仮想カメラの制御を説明するための図である。図示するように、キャラクタCHの腰の高さhよりも高い位置にある仮想カメラVP(
図7(A))が、カメラ131に連動して移動することにより、キャラクタCHの腰の高さhよりも低い位置に進入すると(
図7(B))、仮想カメラVPは、カメラ131の位置に対応する基準点RPから上方向に移動し、キャラクタCHの腰の高さhよりも高い位置となる(
図7(C)))。なお、カメラ131の位置に対応する基準点RPから仮想カメラVPまでの方向及び距離は、仮想カメラVPに対して設定されたオフセットとして管理される。
【0049】
図8は、仮想カメラVPがキャラクタCHの腰の高さhよりも高い位置にある状態(
図7(A))における拡張現実画像50を例示し、
図9は、キャラクタCHの腰の高さhよりも低い位置に進入した仮想カメラVPが、カメラ131の位置に対応する基準点RPから上方向に移動してキャラクタCHの腰の高さhよりも高い位置にある状態(
図7(C))における拡張現実画像50を例示する。仮想カメラVPが、カメラ131の位置に対応する基準点RPから上方向に移動すると、現実空間の画像と仮想空間の画像との位置関係が上下方向にずれる。この結果、
図8及び
図9の拡張現実画像50において、仮想空間におけるキャラクタCHの表示は同様である一方、現実空間におけるテーブルTBの表示は、
図8の拡張現実画像50のテーブルTBと比較して、
図9の拡張現実画像50のテーブルTBの方が上側に位置する。このように、この例では、現実空間の画像と仮想空間の画像との位置関係に上下方向のずれが生じるものの、ローアングルのキャラクタを含む不適切な画像の生成及び表示が抑制される。
【0050】
図5のフロー図に戻り、続いて、仮想カメラがめり込み領域内に位置している場合には(ステップS250においてYES)、さらに、端末10は、ローアングル領域への進入に応じた仮想カメラの上方向への移動(ステップS240)の直後であるか否かを判定する(ステップS260)。そして、こうした仮想カメラの上方向への移動の直後でない場合には(ステップS260においてNO)、端末10は、仮想カメラを、現在の視線方向の反対方向に移動させる(ステップS270)。この例では、仮想カメラの現在の位置から、当該仮想カメラの視線方向の反対方向に向けた直線とめり込み領域(境界ボックス)との交点までの距離に基づいて、めり込み領域(境界ボックス)の若干外側の位置となるように、仮想カメラを視線方向の反対方向に移動させる。なお、本実施形態の他の例では、この場合の仮想カメラの移動量は固定値とされ得る。
【0051】
図10は、仮想カメラがめり込み領域(境界ボックス)内に位置しており、且つ、ローアングル領域への進入に応じた仮想カメラの上方向への移動の直後でない場合の仮想カメラの制御を説明するための図である。図示するように、境界ボックスBBの外側に位置する仮想カメラVP(
図10(A))が、カメラ131に連動して移動することにより、境界ボックスBBの内側に進入すると(
図10(B))、仮想カメラVPは、カメラ131の位置に対応する基準点RPから、視線VLの方向の反対方向に移動し、境界ボックスBBの外側の位置となる(
図10(C)))。なお、上述したように、カメラ131の位置に対応する基準点RPから仮想カメラVPまでの方向及び距離は、仮想カメラVPに対して設定されたオフセットとして管理される。
【0052】
図11は、仮想カメラVPが境界ボックスBBの外側に位置する状態(
図10(A))における拡張現実画像50を例示し、
図12は、境界ボックスBBの内側に進入した仮想カメラVPが、カメラ131の位置に対応する基準点RPから視線方向の反対方向に移動して境界ボックスBBの外側の位置にある状態(
図10(C))における拡張現実画像50を例示する。仮想カメラVPが、カメラ131の位置に対応する基準点RPから視線方向の反対方向に移動すると、現実空間の画像と仮想空間の画像との位置関係が視線方向にずれる。この結果、
図11及び
図12の拡張現実画像50において、仮想空間におけるキャラクタCHの表示は同様である一方、現実空間におけるテーブルTBの表示は、
図11の拡張現実画像50のテーブルTBと比較して、
図12の拡張現実画像50のテーブルTBの方が手前に位置する(拡大される)。このように、この例では、現実空間の画像と仮想空間の画像との位置関係に視線方向のずれが生じるものの、キャラクタの内部にめり込んだ仮想カメラからの不適切な画像の生成及び表示が抑制される。
【0053】
図5のフロー図に戻り、一方、仮想カメラがめり込み領域に位置しており、且つ、ローアングル領域への進入に応じた仮想カメラの上方向への移動(ステップS240)の直後である場合には(ステップS260においてYES)、端末10は、仮想カメラを水平方向に移動させる(ステップS280)。この例では、仮想カメラの現在の位置から、当該仮想カメラの視線方向の反対方向に向けた直線の水平成分に対応する直線とめり込み領域(境界ボックス)との交点までの距離に基づいて、めり込み領域(境界ボックス)の若干外側の位置となるように、仮想カメラを水平方向に移動させる。なお、本実施形態の他の例では、この場合の仮想カメラの移動量は固定値とされ得る。
【0054】
図13は、仮想カメラがめり込み領域(境界ボックス)内に位置しており、且つ、ローアングル領域への進入に応じた仮想カメラの上方向への移動の直後である場合の仮想カメラの制御を説明するための図である。図示するように、仮想カメラVPは、キャラクタの腰の高さhよりも低い位置になると(
図13(A))、カメラ131の位置に対応する基準点RPから上方向に移動し、キャラクタの腰の高さhよりも高い位置となる。そして、上方向に移動した仮想カメラVPの位置が、境界ボックスBBの内側である場合(
図13(B))、仮想カメラVPは、その時点の位置(上方向への移動の直後の位置)から、視線VLの方向の反対方向の水平成分に対応する方向に移動し、境界ボックスBBの外側の位置となる(
図13(C)))。なお、上述したように、カメラ131の位置に対応する基準点RPから仮想カメラVPまでの方向及び距離は、仮想カメラVPに対して設定されたオフセットとして管理される。
【0055】
例えば、ローアングル領域に位置する仮想カメラの視線の方向が上方向に近い場合には、当該視線方向の反対方向(下方向に近い方向)に仮想カメラが移動すると、仮想カメラは、再度、ローアングル領域に進入してしまう可能性がある。しかし、この例では、こうした場合に仮想カメラは水平方向に移動することになるから、再度のローアングル領域への進入が回避され得る。
【0056】
このように、仮想カメラが位置調整要領域内に位置する場合に当該仮想カメラの位置が調整されて仮想カメラに対するオフセットが設定されると、仮想カメラは、当該オフセットが維持された状態で(カメラ131の位置に対応する基準点との位置関係を維持したまま)カメラ131に連動するように制御される。
【0057】
図5のフロー図に戻り、一方、仮想カメラが位置調整要領域内に位置していない場合には(ステップS220においてNO)、端末10は、仮想カメラに対してオフセットが設定されているか否かを判定する(ステップS290)。
【0058】
そして、仮想カメラに対するオフセットが設定されている場合には(ステップS290においてYES)、端末10は、仮想カメラを、カメラ131の位置に対応する基準点の方向に移動させる(ステップS300)。この例では、仮想カメラは、現在の位置から基準点の方向に所定距離だけ移動する。その後、位置調整要領域外に位置している限りにおいて、仮想カメラは、カメラ131に対応する基準点に向けて所定距離だけ繰り返し移動することになるから、最終的には、仮想カメラの位置は当該基準点の位置となり、オフセットが解消される。
【0059】
上述した例において、キャラクタの種類(例えば、身に着けている衣装の種類等)に応じて、ローアングル領域への進入に応じた仮想カメラの上方向への移動制御の要否を判断するようにしてもよい。この場合、キャラクタの種類(または、当該移動制御の要否)に関する情報は、コンテンツ管理サーバ30から取得されるオブジェクト情報に含まれるようにしてもよい。
【0060】
上述した例では、ローアングル領域及びめり込み領域の2つの領域を、仮想カメラの位置の調整が必要な位置調整要領域としたが、これらの領域のいずれか一方のみを位置調整要領域としてもよい。また、本実施形態の他の例では、ローアングル領域及びめり込み領域以外の様々な領域が、位置調整要領域として適用され得る。
【0061】
上述した例では、仮想カメラがローアングル領域に位置する場合に、仮想カメラを鉛直上方向に移動させるようにしたが、斜め上方向に移動させるようにしてもよい。また、ローアングル領域は、キャラクタの腰の高さよりも低い領域としたが、キャラクタの腰の位置を頂点とした円錐/角錐の形状を有する領域としてもよい。
【0062】
上述した例では、仮想カメラがめり込み領域に位置する場合に、仮想カメラを視線方向の反対方向に移動させるようにしたが、その他の方向に移動させるようにしてもよい。
【0063】
上述した例では、ARコンテンツとしてライブ空間動画を例示したが、本実施形態におけるARコンテンツは、これに限定されず、その他の動画、又は、ゲーム等の様々なコンテンツとして構成され得る。
【0064】
以上説明した本実施形態のコンテンツ提供端末10は、カメラ131を介した現実空間の画像に対して、当該カメラ131に連動する仮想カメラを介した仮想空間の画像を重ねた拡張現実画像を生成及び表示し、当該仮想空間に含まれる所定オブジェクト(例えば、キャラクタ)に基づく所定領域(例えば、ローアングル領域及びめり込み領域)外に仮想カメラが位置するように、カメラ131に対する仮想カメラの相対的な位置を調整するから、こうした領域内に仮想カメラが位置することによって不適切な画像が生成及び表示されることを抑制する。つまり、コンテンツ提供端末10は、適切な拡張現実画像の生成及び表示を支援する。
【0065】
本発明の他の実施形態において、コンテンツ提供端末10が有する機能の少なくとも一部は、端末10とコンテンツ管理サーバ30とが協働することによって実現され、又は、コンテンツ管理サーバ30によって実現され得る。
【0066】
本明細書で説明された処理及び手順は、明示的に説明されたもの以外にも、ソフトウェア、ハードウェアまたはこれらの任意の組み合わせによって実現される。例えば、本明細書で説明される処理及び手順は、集積回路、揮発性メモリ、不揮発性メモリ、磁気ディスク等の媒体に、当該処理及び手順に相当するロジックを実装することによって実現される。また、本明細書で説明された処理及び手順は、当該処理・手順に相当するコンピュータプログラムとして実装し、各種のコンピュータに実行させることが可能である。
【0067】
本明細書中で説明された処理及び手順が単一の装置、ソフトウェア、コンポーネント、モジュールによって実行される旨が説明されたとしても、そのような処理または手順は複数の装置、複数のソフトウェア、複数のコンポーネント、及び/又は複数のモジュールによって実行され得る。また、本明細書において説明されたソフトウェアおよびハードウェアの要素は、それらをより少ない構成要素に統合して、またはより多い構成要素に分解することによって実現することも可能である。
【0068】
本明細書において、発明の構成要素が単数もしくは複数のいずれか一方として説明された場合、又は、単数もしくは複数のいずれとも限定せずに説明された場合であっても、文脈上別に解すべき場合を除き、当該構成要素は単数又は複数のいずれであってもよい。
【符号の説明】
【0069】
10 コンテンツ提供端末
20 通信ネットワーク
30 コンテンツ管理サーバ
11 コンピュータプロセッサ
111 画像生成表示部
112 コンテンツ制御部
13 入出力I/F
131 カメラ
15 ストレージ
40 コンテンツ提供用プログラム
45 撮影画像
50 拡張現実画像
BB 境界ボックス
RP 基準点
VL 視線
VP 仮想カメラ