(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0008】
以下、添付図面を参照しながら本開示での実施形態を詳細に説明する。なお、図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
【0009】
[システムの概要]
実施形態に係るコンテンツ配信システム1はコンテンツ画像を少なくとも一つのユーザ端末20に配信するコンピュータシステムである。コンテンツ画像とは、人が視覚を通して何らかの情報を認識することができる像のことをいう。コンテンツ画像は動画像(映像)でもよいし静止画でもよい。ユーザ端末20は、コンテンツ配信システム1を利用する人であるユーザによって用いられるコンピュータである。配信とは、通信ネットワークまたは放送ネットワークを経由して情報をユーザに向けて送信する処理のことをいう。本開示では、配信は放送を含み得る概念である。コンテンツ配信システム1は、コンテンツ画像を示す電子データであるコンテンツ画像データを生成して該コンテンツ画像データをユーザ端末に送信する。ユーザ端末20はそのコンテンツ画像データを受信および処理してコンテンツ画像を表示装置上に表示する。
【0010】
図1はコンテンツ配信システム1の適用の一例を示す図である。本実施形態では、コンテンツ配信システム1はサーバ10を備える。サーバ10は、コンテンツ画像を少なくとも一つのユーザ端末20に配信するコンピュータ(コンテンツ配信サーバ)である。サーバ10は通信ネットワークNを介して複数のユーザ端末20と接続する。
図1では5台のユーザ端末20を示すが、ユーザ端末20の個数は限定されない。通信ネットワークNの構成は限定されない。例えば、通信ネットワークNはインターネットを含んで構成されてもよいし、イントラネットを含んで構成されてもよい。
図1に例示するようにユーザ端末20の種類は限定されない。例えば、ユーザ端末20は高機能携帯電話機(スマートフォン)、タブレット端末、ウェアラブル端末(例えば、ヘッドマウントディスプレイ(HMD)、スマートグラスなど)、ラップトップ型パーソナルコンピュータ、携帯電話機などの携帯端末でもよい。あるいは、ユーザ端末20はデスクトップ型パーソナルコンピュータなどの据置型端末でもよい。
【0011】
本開示では、コンテンツ画像は、実写画像と仮想オブジェクトとが組み合わされることで生成される画像である。実写画像とは現実世界を映した画像のことをいい、カメラなどの撮像装置によって得られる。当然ながら実写画像により映された物体(本開示ではこれを「現実オブジェクト」という。)は現実世界に実際に存在する。仮想オブジェクトとは、現実世界(より具体的には、実写画像で表現される領域)には実際に存在せず、コンピュータシステム上でのみ表現される物体のことをいう。仮想オブジェクトは、実写画像とは独立した画像素材を用いて、2次元または3次元のコンピュータグラフィック(CG)によって表現される。仮想オブジェクトの表現方法は限定されない。例えば、仮想オブジェクトはアニメーション素材を用いて表現されてもよいし、実写画像に基づいて本物に近いように表現されてもよい。コンテンツ画像は、現実オブジェクトと仮想オブジェクトとが存在する仮想空間を表現する画像であるともいえる。仮想空間とは、コンピュータ上に表示される画像によって表現される仮想の2次元または3次元の空間のことをいう。見方を変えると、コンテンツ画像は、仮想空間内に設定された仮想カメラから見える風景を示す画像ということができる。仮想カメラは、コンテンツ画像を見るユーザの視線に対応するように仮想空間内に設定される。
【0012】
コンテンツ配信システム1は、実写画像領域と第1仮想オブジェクトとを示すコンテンツ画像によって表現される空間の最遠領域(より具体的には、コンテンツ画像によって表現される仮想空間における最遠領域)を特定する。実写画像領域とは、実写画像で表される領域のことをいう。したがって、現実オブジェクトは実写画像領域内に位置する。最遠領域とは、仮想空間において仮想カメラ(言い換えると、コンテンツ画像を見るユーザ)から最も遠くに位置する領域のことをいう。コンテンツ配信システム1は、第2仮想オブジェクトをその最遠領域に配置する。本開示では、この処理を仮想空間の編集ともいい、第2仮想オブジェクトがさらに配置された仮想空間を「編集された仮想空間」ともいう。「オブジェクトを配置する」とは、オブジェクト(例えば第2仮想オブジェクト)を決められた位置に置くことをいい、オブジェクトの位置の変更を含む概念である。コンテンツ配信システム1は編集された仮想空間を表現するコンテンツ画像を1以上のユーザ端末20上に表示させる。したがって、最終的にユーザによって視認されるコンテンツ画像は、実写画像領域、第1仮想オブジェクト、および第2仮想オブジェクトを含む画像である。
【0013】
コンテンツ配信システム1は様々な目的で用いられてよい。例えば、コンテンツ配信システム1は、ある一人のユーザが他のユーザに向けてライブコンテンツを配信するサービスのために用いられてもよい。このサービスはインターネット生放送ともいわれる。すなわち、コンテンツ配信システム1は配信者から提供されるコンテンツ映像をリアルタイムに視聴者に配信するために用いられてもよい。したがって、コンテンツ画像は、リアルタイムに配信されるライブコンテンツの画像であり得る。あるいは、コンテンツ配信システム1は、過去に撮影されたコンテンツ映像を視聴者に配信するために用いられてもよく、例えば、リアルタイム配信後の所与の期間においてコンテンツを視聴することが可能なタイムシフトのために用いられてもよい。コンテンツ配信システム1は静止画を配信するために用いられてもよい。
【0014】
コンテンツ画像上には、仮想空間内で表現されるユーザの分身であるアバターが表現され得る。アバターは仮想オブジェクトの一例である。コンテンツ画像に含まれるアバターは限定されず、例えば、アバターは、配信者に対応してもよいし、配信者と共にコンテンツに参加すると共に該コンテンツを視聴するユーザである参加者に対応してもよい。参加者は視聴者の一種であるといえる。
【0015】
本実施形態では、ライブコンテンツの配信、すなわちコンテンツ映像のリアルタイム配信を例示する。また、配信者によって用いられるユーザ端末20を配信者端末21といい、視聴者によって用いられるユーザ端末20を視聴者端末22という。
【0016】
[システムの構成]
図2はコンテンツ配信システム1に関連するハードウェア構成の一例を示す図である。一例として、サーバ10はハードウェア構成要素として、プロセッサ101、主記憶部102、補助記憶部103、および通信部104を備える。
【0017】
プロセッサ101は、オペレーティングシステムおよびアプリケーションプログラムを実行する演算装置である。プロセッサの例としてCPU(Central Processing Unit)およびGPU(Graphics Processing Unit)が挙げられるが、プロセッサ101の種類はこれらに限定されない。
【0018】
主記憶部102は、サーバ10を機能させるためのプログラム、プロセッサ101から出力された演算結果などを記憶する装置である。主記憶部102は例えばROM(Read Only Memory)およびRAM(Random Access Memory)のうちの少なくとも一つにより構成される。
【0019】
補助記憶部103は、一般に主記憶部102よりも大量のデータを記憶することが可能な装置である。補助記憶部103は例えばハードディスク、フラッシュメモリなどの不揮発性記憶媒体によって構成される。補助記憶部103は、少なくとも一つのコンピュータをサーバ10として機能させるためのサーバプログラムP1と各種のデータとを記憶する。例えば、補助記憶部103は仮想オブジェクトおよび仮想空間のうちの少なくとも一つに関するデータを記憶してもよい。本実施形態では、コンテンツ配信プログラムはサーバプログラムP1として実装される。
【0020】
通信部104は、通信ネットワークNを介して他のコンピュータとの間でデータ通信を実行する装置である。通信部104は例えばネットワークカードまたは無線通信モジュールにより構成される。
【0021】
サーバ10の各機能要素は、プロセッサ101または主記憶部102の上にサーバプログラムP1を読み込ませてそのプログラムを実行させることで実現される。サーバプログラムP1は、サーバ10の各機能要素を実現するためのコードを含む。プロセッサ101はサーバプログラムP1に従って通信部104を動作させ、主記憶部102または補助記憶部103におけるデータの読み出しおよび書き込みを実行する。このような処理によりサーバ10の各機能要素が実現される。
【0022】
サーバ10は一つまたは複数のコンピュータにより構成され得る。複数のコンピュータが用いられる場合には、通信ネットワークを介してこれらのコンピュータが互いに接続されることで、論理的に一つのサーバ10が構成される。
【0023】
一例として、ユーザ端末20はハードウェア構成要素として、プロセッサ201、主記憶部202、補助記憶部203、および通信部204、入力インタフェース205、出力インタフェース206、および撮像部207を備える。
【0024】
プロセッサ201は、オペレーティングシステムおよびアプリケーションプログラムを実行する演算装置である。プロセッサ201は例えばCPUまたはGPUであり得るが、プロセッサ201の種類はこれらに限定されない。
【0025】
主記憶部202は、ユーザ端末20を機能させるためのプログラム、プロセッサ201から出力された演算結果などを記憶する装置である。主記憶部202は例えばROMおよびRAMのうちの少なくとも一つにより構成される。
【0026】
補助記憶部203は、一般に主記憶部202よりも大量のデータを記憶することが可能な装置である。補助記憶部203は例えばハードディスク、フラッシュメモリなどの不揮発性記憶媒体によって構成される。補助記憶部203は、コンピュータをユーザ端末20として機能させるためのクライアントプログラムP2と各種のデータとを記憶する。例えば、補助記憶部203は仮想オブジェクトおよび仮想空間のうちの少なくとも一つに関するデータを記憶してもよい。
【0027】
通信部204は、通信ネットワークNを介して他のコンピュータとの間でデータ通信を実行する装置である。通信部204は例えばネットワークカードまたは無線通信モジュールにより構成される。
【0028】
入力インタフェース205は、ユーザの操作または動作に基づいてデータを受け付ける装置である。例えば、入力インタフェース205は、キーボード、操作ボタン、ポインティングデバイス、マイクロフォン、センサ、およびカメラのうちの少なくとも一つによって構成される。キーボードおよび操作ボタンはタッチパネル上に表示されてもよい。入力インタフェース205の種類が限定されないことに対応して、入力されるデータは限定されない。例えば、入力インタフェース205はキーボード、操作ボタン、またはポインティングデバイスによって入力または選択されたデータを受け付けてもよい。あるいは、入力インタフェース205は、マイクロフォンにより入力された音声データを受け付けてもよい。あるいは、入力インタフェース205はセンサまたはカメラを用いたモーションキャプチャ機能によって検知されたユーザの非言語行動(例えば、視線、ジェスチャ、表情など)を示すデータをモーションデータとして受け付けてもよい。
【0029】
出力インタフェース206は、ユーザ端末20で処理されたデータを出力する装置である。例えば、出力インタフェース206はモニタ、タッチパネル、HMDおよびスピーカのうちの少なくとも一つによって構成される。モニタ、タッチパネル、HMDなどの表示装置は、処理されたデータを画面上に表示する。スピーカは、処理された音声データで示される音声を出力する。
【0030】
撮像部207は、現実世界を映した画像を撮影する装置であり、具体的にはカメラである。撮像部207は動画像(映像)を撮影してもよいし静止画(写真)を撮影してもよい。動画像を撮影する場合には、撮像部207は映像信号を所与のフレームレートに基づいて処理することで、時系列に並ぶ一連のフレーム画像を動画像として取得する。撮像部207は入力インタフェース205としても機能し得る。
【0031】
ユーザ端末20の各機能要素は、プロセッサ201または主記憶部202の上にクライアントプログラムP2を読み込ませてそのプログラムを実行させることで実現される。クライアントプログラムP2は、ユーザ端末20の各機能要素を実現するためのコードを含む。プロセッサ201はクライアントプログラムP2に従って通信部204、入力インタフェース205、出力インタフェース206、または撮像部207を動作させ、主記憶部202または補助記憶部203におけるデータの読み出しおよび書き込みを行う。この処理によりユーザ端末20の各機能要素が実現される。
【0032】
サーバプログラムP1およびクライアントプログラムP2の少なくとも一つは、CD−ROM、DVD−ROM、半導体メモリなどの有形の記録媒体に固定的に記録された上で提供されてもよい。あるいは、これらのプログラムの少なくとも一つは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。これらのプログラムは別々に提供されてもよいし、一緒に提供されてもよい。
【0033】
図3はコンテンツ配信システム1に関連する機能構成の一例を示す図である。機能構成については、ユーザ端末20を配信者端末21と視聴者端末22とに区別してその機能構成を説明する。
【0034】
サーバ10は機能要素として受信部11、領域特定部12、オブジェクト設定部13、および送信部14を備える。受信部11は、配信者端末21からコンテンツ画像データを受信する機能要素である。領域特定部12は、そのコンテンツ画像データで示される仮想空間(現実オブジェクトおよび第1仮想オブジェクトを含む仮想空間)における最遠領域を特定する機能要素である。オブジェクト設定部13は、その仮想空間の最遠領域に第2仮想オブジェクトを配置する機能要素である。送信部14は、第2仮想オブジェクトがさらに配置された仮想空間を示すコンテンツ画像データを配信者端末21に送信する機能要素である。
【0035】
配信者端末21は機能要素として画像処理部211および送信部212を備える。画像処理部211は、撮像部207により撮影された実写画像に基づくコンテンツ画像データを生成する機能要素である。送信部212はそのコンテンツ画像データをサーバ10に送信する機能要素である。
【0036】
視聴者端末22は機能要素として受信部221および表示制御部222を備える。受信部221は、サーバ10からコンテンツ画像データを受信する機能要素である。表示制御部222はそのコンテンツ画像データを処理して、コンテンツ画像を表示装置上に表示する機能要素である。
【0037】
ユーザ端末20は、或る状況では配信者端末21として機能し、別の状況では視聴者端末22として機能してもよい。したがって、ユーザ端末20は配信者端末21および視聴者端末22の双方の機能要素を備えてもよい。
【0038】
[システムの動作]
図4は実写画像に基づくコンテンツ画像の一例を示す図である。実写画像300は動画像(映像)を構成する一つのフレーム画像でもよいし、1枚の静止画でもよい。実写画像300に対応して、コンテンツ画像400もフレーム画像または静止画であり得る。配信者が屋外で撮影して配信者端末21の撮像部207が実写画像300を生成したとする。実写画像300には、配信者301、ビル302、タワー303、および山304という四つの現実オブジェクトが映っている。配信者301はいちばん手前に位置し、ビル302は配信者301よりも奥に位置し、タワー303はビル302よりも奥に位置し、山304はタワー303よりも奥に位置する。
【0039】
コンテンツ画像400では、実写画像300内の配信者301がアバター401に置き換えられている。このコンテンツ画像400では、実写画像領域は、配信者301に対応するアバター401を除いた部分である。アバター401は第1仮想オブジェクトの一例である。
図4の例では、コンテンツ配信システム1はコンテンツ画像400で表現される仮想空間にさらに、第2仮想オブジェクトの一例である月402を配置し、この編集された仮想空間を示すコンテンツ画像400を視聴者端末22上に表示させる。
【0040】
第2仮想オブジェクトが追加される前のコンテンツ画像400は、配信者端末21で生成されてもよいし、サーバ10で生成されてもよい。いずれにせよ、サーバ10は、実写画像領域と第1仮想オブジェクトとを示すコンテンツ画像によって表現される仮想空間の最遠領域に第2仮想オブジェクトを配置する。そして、サーバ10は編集された仮想空間を示すコンテンツ画像400を視聴者端末22上に表示させる。
【0041】
コンテンツ配信システム1の動作を説明するとともに、本実施形態に係るコンテンツ配信方法について説明する。
図5は、コンテンツ配信システム1の動作を処理フローS1として示すシーケンス図である。以下では、配信者および視聴者がコンテンツ配信システム1にログインしており、配信者が視聴者に向けてコンテンツを配信可能であることを前提とする。また、以下では、画像処理に関して特に説明し、画像と共に配信者端末21から視聴者端末22に送信される音声データに関しては詳細な説明を省略する。
【0042】
ステップS11では、配信者端末21が撮像部207を動作させて撮影を実行する。画像処理部211はその撮影により得られた実写画像300に基づいてコンテンツ画像データを生成する。コンテンツ画像データの生成方法およびデータ構造は限定されない。例えば、画像処理部211は撮像部207から得られた実写画像をコンテンツ画像データに含めてもよい。あるいは、画像処理部211は、実写画像に映った配信者のモーションデータをコンテンツ画像データに含めてもよい。
【0043】
あるいは、画像処理部211は第1仮想オブジェクトに関するデータをコンテンツ画像データの少なくとも一部として設定してもよい。第1仮想オブジェクトは、実写画像に映った配信者に代わって表示されるアバター(すなわち、配信者に対応するアバター)を含んでもよい。配信者に対応するアバターを設定する場合には、画像処理部211は、実写画像に映った該配信者のモーションデータに基づいて該アバターの動作を設定し、その動作を示すモーションデータをコンテンツ画像データに含めてもよい。
【0044】
あるいは、画像処理部211は実写画像に基づいて仮想空間を特定し、その仮想空間に関するデータ(仮想空間データ)をコンテンツ画像データに含めてもよい。仮想空間データは、配信者端末21の位置に対応して設定される仮想カメラの位置を含んでもよい。仮想空間データは、仮想カメラの光軸方向(言い換えると、z方向または奥行き方向)における各オブジェクトの位置に関する情報を含んでもよい。例えば、仮想空間データは、仮想カメラから各オブジェクトまでの距離(すなわち奥行き)を含んでもよい。撮像部207がデプスカメラを用いて構成される場合には、画像処理部211はそのデプスカメラによって測定された実写画像内の各現実オブジェクトまでの距離を取得してもよい。あるいは、画像処理部211は実写画像を機械学習などの手法により解析することで、仮想カメラの光軸方向におけるオブジェクト間の位置関係を算出してもよい。あるいは、画像処理部211は各第1仮想オブジェクトについて設定された位置または奥行きを取得してもよい。
【0045】
ステップS12では、配信者端末21の送信部212がコンテンツ画像データをサーバ10に送信する。サーバ10では受信部11がそのコンテンツ画像データを受信する。送信部212はコンテンツ画像データに対応する音声データもサーバ10に送信する。
【0046】
ステップS13では、サーバ10の領域特定部12が、コンテンツ画像によって表現される仮想空間、すなわち、現実オブジェクトおよび第1仮想オブジェクトが配置された仮想空間を特定する。仮想空間の特定は、仮想空間内での仮想カメラ、1以上の現実オブジェクト、および1以上の第1仮想オブジェクトのそれぞれについて位置を特定する処理と、各現実オブジェクトおよび各第1仮想オブジェクトの寸法を特定する処理とを含み得る。配信者端末21から受信したコンテンツ画像データのデータ構造が限定されないことに対応して、仮想空間の特定方法も限定されない。コンテンツ画像データが仮想空間データを含む場合には、領域特定部12はその仮想空間データに基づいて仮想空間を特定してもよい。仮想空間データが、仮想カメラの光軸方向における各オブジェクトの位置情報を含まない場合には、領域特定部12はコンテンツ画像データに基づいて、各オブジェクトの位置、またはオブジェクト間の位置関係を算出してもよい。コンテンツ画像データが仮想空間データを含まない場合には、領域特定部12は実写画像を機械学習などの手法により解析することで仮想空間を特定してもよい。コンテンツ画像データが第1仮想オブジェクトに関する情報を含まない場合には、領域特定部12はコンテンツ画像に含める第1仮想オブジェクトを取得して、仮想空間内における各第1仮想オブジェクトの位置を設定してもよい。
【0047】
ステップS14では、領域特定部12がその仮想空間における最遠領域を特定する。上述したように、最遠領域は、仮想カメラから最も遠くに位置する領域である。この最遠領域は、仮想空間で最も遠くに位置するオブジェクト(本開示ではこのオブジェクトを「仮の最遠オブジェクト」ともいう。)の位置よりも奥側の領域であり得る。仮の最遠オブジェクトとは、第2仮想オブジェクトが配置されていない仮想空間において、仮想カメラから最も離れた所に位置するオブジェクトのことをいう。例えば、
図4に示すコンテンツ画像400を処理した場合には、領域特定部12は、山304よりも奥側に位置する領域を最遠領域として特定する。すなわち、領域特定部12は空を最遠領域として特定する。あるいは、最遠領域は仮の最遠オブジェクトの位置であり得る。例えば、屋内で撮影された実写画像の背景が、不透明な壁で覆われた場合には、領域特定部12はその壁の位置を最遠領域として特定する。屋外で撮影された実写画像の背景が1以上のオブジェクトで覆われて空が映っていない場合には、領域特定部12は仮の最遠オブジェクトの位置を最遠領域として特定する。屋内で撮影された実写画像の背景が窓の向こう側の風景を含む場合には、領域特定部12はその窓の向こうに存在する仮の最遠オブジェクトの位置を最遠領域として特定するか、あるいは、該仮の最遠オブジェクトの位置よりも奥側の領域(例えば空)を最遠領域として特定する。
【0048】
領域特定部12は、実写画像領域内に位置する現実オブジェクトと第1仮想オブジェクトとの中で、仮想空間の仮想カメラから最も遠くに位置するオブジェクトを仮の最遠オブジェクトとして特定する。そして、領域特定部12は仮の最遠オブジェクトの位置に基づいて最遠領域を特定する。仮の最遠オブジェクトの位置を特定する方法は限定されない。例えば、領域特定部12は、仮想カメラの光軸方向における各オブジェクトの位置に基づいて、仮の最遠オブジェクトおよびその位置を特定してもよい。領域特定部12は、各オブジェクトの奥行きに基づいて、仮の最遠オブジェクトおよびその位置を特定してもよい。あるいは、領域特定部12は画像解析によって現実オブジェクトの輪郭(例えば、地平線、山の稜線、建物の輪郭など)を特定し、その輪郭に基づいて仮の最遠オブジェクトおよびその位置を特定してもよい。あるいは、領域特定部12は機械学習を用いた画像解析によってコンテンツ画像を解析することで仮の最遠オブジェクトおよびその位置を特定してもよい。
【0049】
ステップS15では、サーバ10のオブジェクト設定部13が第2仮想オブジェクトを取得する。第2仮想オブジェクトの取得方法は限定されない。例えば、オブジェクト設定部13は所与の第2仮想オブジェクトを補助記憶部103から読み出してもよく、例えば、コンテンツ配信システム1のユーザ(配信者または視聴者)によって指定された第2仮想オブジェクトを読み出してもよい。あるいは、オブジェクト設定部13は配信者端末21または視聴者端末22から第2仮想オブジェクトのデータを受信することで第2仮想オブジェクトを取得してもよい。
【0050】
第2仮想オブジェクトは任意の物体を表現してよい。第2仮想オブジェクトは1以上の第1仮想オブジェクトのいずれとも異なってもよいし、いずれかの第1仮想オブジェクトと同じでもよい。第2仮想オブジェクトは、現実世界には存在しない物体(例えば、架空のキャラクタ)を表現してもよいし、現実世界に存在する自然物または人工物(例えば、星、人、動物、植物、飛行機、自動車、建物)などを模したものでもよい。複数の視聴者端末22にコンテンツ画像が配信される場合には、第2仮想オブジェクトはそれらの視聴者端末22に共通したものでもよく、この場合には、複数の視聴者は同じ第2仮想オブジェクトを視認することができる。オブジェクト設定部13は複数の第2仮想オブジェクトを取得してもよい。
【0051】
ステップS16では、オブジェクト設定部13が、仮想空間の最遠領域における第2仮想オブジェクトの位置および寸法を決定する。例えば、オブジェクト設定部13は、仮想空間における各オブジェクトの位置および寸法と、コンテンツ画像上で表される各オブジェクトの位置および寸法との少なくとも一方に基づく演算を実行することで、第2仮想オブジェクトの位置および寸法を決定する。複数の第2仮想オブジェクトが取得された場合には、オブジェクト設定部13はそれぞれの第2仮想オブジェクトについて位置および寸法を決定する。
【0052】
第2仮想オブジェクトの位置および寸法のそれぞれについて決定方法は限定されない。例えば、オブジェクト設定部13は、第2仮想オブジェクトの一部がコンテンツ画像上で他のオブジェクト(例えば、仮の最遠オブジェクト)によって隠れるように第2仮想オブジェクトの位置および寸法を設定してもよい。あるいは、オブジェクト設定部13はコンテンツ画像上で第2仮想オブジェクトの全体が見えるように第2仮想オブジェクトの位置および寸法を設定してもよい。あるいは、オブジェクト設定部13はコンテンツ画像上で第2仮想オブジェクトが仮の最遠オブジェクトの陰(背後)から現われるように第2仮想オブジェクトの位置および寸法を設定してもよい。
【0053】
オブジェクト設定部13は、コンテンツ画像上で第2仮想オブジェクトの非現実感を強調させるために、第2仮想オブジェクトの寸法を大きく設定してもよい。例えば、
図4に示すコンテンツ画像400の月402は、現実世界の月の大きさを忠実に表しておらず、意図的に大きく表現されたものである。オブジェクト設定部13は、コンテンツ画像上で第2仮想オブジェクトが他のオブジェクトよりも大きく表現されるように第2仮想オブジェクトの寸法を設定してもよい。例えば、オブジェクト設定部13は、コンテンツ画像上で第2仮想オブジェクトが仮の最遠オブジェクトよりも大きく表現されるように第2仮想オブジェクトの寸法を設定してもよい。あるいは、オブジェクト設定部13は、コンテンツ画像上で第2仮想オブジェクトがすべての現実オブジェクトおよびすべての第1仮想オブジェクトよりも大きく表現されるように第2仮想オブジェクトの寸法を設定してもよい。オブジェクト設定部13は、第2仮想オブジェクトと他のオブジェクト(仮の最遠オブジェクト、現実オブジェクト、または第1仮想オブジェクト)との寸法の大小関係を、コンテンツ画像上での各オブジェクトの最小外接矩形の面積に基づいて決定してもよい。最小外接矩形とは、オブジェクトに外接する矩形の中で面積が最小のもののことをいう。
【0054】
図6は、最遠領域の特定と第2仮想オブジェクトの配置とについての一例を示す図である。この図に示す仮想空間500は、
図4に示すコンテンツ画像400に対応し、仮想カメラ501の位置は配信者端末21の撮像部207に対応する。仮想空間500では、仮想カメラ501に近い側から遠い側に向かって、アバター401(配信者301)、ビル302、タワー303、および山304が位置する。したがって、山304が仮の最遠オブジェクトである。この仮想空間500における最遠領域502は、山304よりも奥側の領域である。より具体的には、最遠領域502は、山304の位置に対応する仮想端面503よりも、仮想カメラ501から離れた領域である。
図6の例では、領域特定部12は仮想空間500の最遠領域502を特定し、オブジェクト設定部13がその最遠領域502内に、第2仮想オブジェクトである月402を配置する。
図4の例では、月402の位置は山304(仮の最遠オブジェクト)によって隠れるように設定されており、月402の寸法は山304よりも大きく設定されている。
【0055】
ステップS17では、オブジェクト設定部13が、第2仮想オブジェクトがさらに配置された仮想空間を示すコンテンツ画像データを生成する。オブジェクト設定部13は、仮想空間内の最遠領域における決定された位置に、第2仮想オブジェクトを、決定された寸法で配置する。複数の第2仮想オブジェクトが存在する場合には、オブジェクト設定部13はそれぞれの第2仮想オブジェクトを最遠領域に配置する。コンテンツ画像データの生成方法およびデータ構造は限定されない。例えば、オブジェクト設定部13は、実写画像と、各オブジェクトを含む仮想空間を示す仮想空間データとを含むコンテンツ画像データを生成してもよい。この場合には、コンテンツ画像データは仮想空間における各オブジェクトの位置および寸法を含んでもよい。あるいは、オブジェクト設定部13は、実写画像と仮想空間内の各オブジェクトとに基づくレンダリングを実行することでコンテンツ画像データを生成してもよい。この場合にはコンテンツ画像データはコンテンツ画像そのものを示す。オブジェクト設定部13は、第2仮想オブジェクトが最遠に位置することを強調または明確にするための視覚効果(例えば、霞などのような、空気遠近法を利用した表現)に関する情報をコンテンツ画像データに追加してもよい。
【0056】
ステップS18では、サーバ10の送信部14が、その仮想空間を示すコンテンツ画像データを視聴者端末22に送信する。視聴者端末22では受信部221がそのコンテンツ画像データを受信する。送信部14はコンテンツ画像データに対応する音声データも視聴者端末22に送信する。
【0057】
ステップS19では、視聴者端末22の表示制御部222がそのコンテンツ画像データを処理して、コンテンツ画像を表示装置上に表示する。サーバ10でレンダリングが実行されていない場合には、表示制御部222はコンテンツ画像データに基づくレンダリングを実行することでコンテンツ画像を表示する。コンテンツ画像データがコンテンツ画像そのものを示す場合には、表示制御部222はそのコンテンツ画像をそのまま表示する。視聴者端末22は、コンテンツ画像の表示に合わせて音声をスピーカから出力する。
【0058】
複数の視聴者端末22にライブコンテンツを提供する場合には、ステップS18において送信部14がそれぞれの視聴者端末22にコンテンツ画像データを送信し、ステップS19では、それぞれの視聴者端末22で表示制御部222がコンテンツ画像を表示する。コンテンツ画像は複数の視聴者端末22で同じであってもよい。すなわち、仮想空間における仮想カメラの位置が複数の視聴者端末22で同じであってもよい。この場合には、複数の視聴者は同じコンテンツ画像を見ることになる。あるいは、コンテンツ画像は複数の視聴者端末22の少なくとも一部において他の視聴者端末22と異なってもよい。すなわち、仮想カメラの位置が複数の視聴者端末22の少なくとも一部において他の視聴者端末22と異なってもよい。この場合には、ライブコンテンツは複数の視聴者のそれぞれの視点で視聴される。
【0059】
ライブコンテンツなどの動画像の配信では、処理フローS1は繰り返し実行される。当然ながら、撮影が進むにつれて実写画像内での現実オブジェクトは変わり得るし、実写画像内での現実オブジェクトの位置、大きさ、および向きの少なくとも一つも変わり得る。いずれにしても、ライブコンテンツの少なくとも一部の時間帯において、各コンテンツ画像(すなわち、各フレーム画像)は、仮想空間の最遠領域に配置された第2仮想オブジェクトを含む。コンテンツ配信システム1は、動画像における第2仮想オブジェクトの表示(言い換えると、時間経過に伴う第2仮想オブジェクトの表示)を考慮して、ステップS16において次のように第2仮想オブジェクトの位置を決定してもよい。
【0060】
例えば、オブジェクト設定部13は、第2仮想オブジェクトが、配信者端末21の撮像部207に対応する仮想カメラに追従するように、仮想空間の最遠領域における第2仮想オブジェクトの位置を決定してもよい。
図7は、このような制御によって得られるコンテンツ画像の変化の一例を示す。
図7の例では、撮像部207をパンニング(panning)したことに伴って、実写画像300上での各現実オブジェクト(配信者301、ビル302、タワー303、および山304)の位置が変わっている。しかし、第2仮想オブジェクトである月402の位置は仮想カメラに追従するように決定されるので、コンテンツ画像400内における月402の位置は変わらない。この場合には、仮想空間において月402と他の現実オブジェクトとの位置関係が変わる。
【0061】
あるいは、オブジェクト設定部13は、第2仮想オブジェクトが現実オブジェクトに追従するように、最遠領域における第2仮想オブジェクトの位置を決定してもよい。第2仮想オブジェクトが追従する現実オブジェクトは、例えば、仮の最遠オブジェクトでもよい。
図8は、このような制御によって得られるコンテンツ画像の変化の一例を示す。
図8の例では、撮像部207をパンニングしたことに伴って、実写画像300上での各現実オブジェクト(配信者301、ビル302、タワー303、および山304)の位置が変わっている。月402の位置は、仮の最遠オブジェクトである山304に追従するように決定されるので、コンテンツ画像400内における月402の位置は山304に合わせて変化する。この場合には、仮想空間における月402と他の現実オブジェクトとの位置関係は結果的に変わらない。
【0062】
あるいは、オブジェクト設定部13は、第2仮想オブジェクトが或る一つの第1仮想オブジェクトに追従するように、最遠領域における第2仮想オブジェクトの位置を決定してもよい。第2仮想オブジェクトが追従する第1仮想オブジェクトは、例えば、配信者に対応するアバターでもよい。
図9は、このような制御によって得られるコンテンツ画像の変化の一例を示す。
図9の例では、配信者301の横方向への移動に合わせて撮像部207をパンニングしたことに伴って、実写画像300上での配信者301と他の現実オブジェクト(ビル302、タワー303、および山304)の位置関係が変わっている。この例では、月402の位置はアバター401に追従するように決定されるので、コンテンツ画像400内におけるアバター401と月402との位置関係は変わらない。この場合には、仮想空間において第2仮想オブジェクトと、追従された第1仮想オブジェクト以外のオブジェクトとの位置関係が変わる。
【0063】
[効果]
以上説明したように、本開示の一側面に係るコンテンツ配信システムは、少なくとも一つのプロセッサを備える。少なくとも一つのプロセッサは、実写画像領域と第1仮想オブジェクトとを示すコンテンツ画像によって表現される空間の最遠領域を特定し、第2仮想オブジェクトを最遠領域に配置し、第2仮想オブジェクトが配置された空間を表現するコンテンツ画像をユーザ端末上に表示させる。
【0064】
本開示の一側面に係るコンテンツ配信方法は、少なくとも一つのプロセッサを備えるコンテンツ配信システムによって実行される。コンテンツ配信方法は、実写画像領域と第1仮想オブジェクトとを示すコンテンツ画像によって表現される空間の最遠領域を特定するステップと、第2仮想オブジェクトを最遠領域に配置するステップと、第2仮想オブジェクトが配置された空間を表現するコンテンツ画像をユーザ端末上に表示させるステップとを含む。
【0065】
本開示の一側面に係るコンテンツ配信プログラムは、実写画像領域と第1仮想オブジェクトとを示すコンテンツ画像によって表現される空間の最遠領域を特定するステップと、第2仮想オブジェクトを最遠領域に配置するステップと、第2仮想オブジェクトが配置された空間を表現するコンテンツ画像をユーザ端末上に表示させるステップとをコンピュータに実行させる。
【0066】
このような側面においては、既に実写画像領域と第1仮想オブジェクトとの双方を含む画像に関して最遠領域が特定され、その最遠領域に第2仮想オブジェクトがさらに配置される。第2仮想オブジェクトをさらに追加することでコンテンツ画像の視覚効果を高めることができる。そして、その視覚効果の補強により、コンテンツ画像の魅力をさらに高めることが可能になる。
【0067】
上記の特許文献1には、ゲーム装置が備える撮像部により取得される現実世界の画像(実世界画像)と、仮想空間を表現した仮想世界画像(仮想画像)とを合成して表示することが記載されている。具体的には、仮想空間が、仮想カメラに近い領域(手前側領域)と、仮想カメラから遠い領域(奥側領域)とに区分され、手前側領域に存在する仮想オブジェクトを表す画像が実世界画像の手前に表示され、奥側領域に存在する仮想オブジェクトが実世界画像の背後に表示される。
【0068】
しかし、この技術は単に実写画像に仮想オブジェクトを合成する手法であり、既に実写画像と仮想オブジェクトとを示す画像に、別の仮想オブジェクトをさらに追加する手法ではない。したがって、特許文献1の技術は、実写画像領域と第1仮想オブジェクトとを示すコンテンツ画像によって表現される空間の最遠領域を特定する処理を実行しない。
【0069】
これに対して、本開示の上記側面においては、既に実写画像領域と第1仮想オブジェクトとの双方を含む画像に関して最遠領域が特定され、その最遠領域に第2仮想オブジェクトがさらに配置されるので、コンテンツ画像の視覚効果を高めることができる。
【0070】
他の側面に係るコンテンツ配信システムでは、少なくとも一つのプロセッサが、実写画像領域内に位置する現実オブジェクトと第1仮想オブジェクトとの中で、空間で最も遠くに位置するオブジェクトを仮の最遠オブジェクトとして特定し、仮の最遠オブジェクトの位置に基づいて最遠領域を特定してもよい。このように仮の最遠オブジェクトの位置を用いることで最遠領域を正確に特定することができる。
【0071】
他の側面に係るコンテンツ配信システムでは、少なくとも一つのプロセッサが、実写画像領域内に位置する現実オブジェクトと第1仮想オブジェクトとの中で、空間で最も遠くに位置するオブジェクトを仮の最遠オブジェクトとして特定し、第2仮想オブジェクトの一部がコンテンツ画像上で仮の最遠オブジェクトによって隠れるように、最遠領域における第2仮想オブジェクトの位置を決定してもよい。第2仮想オブジェクトが仮の最遠オブジェクトの奥側に存在することが明確に表現されるので、第2仮想オブジェクトの視覚効果をさらに高めることができる。その結果、コンテンツ画像の魅力をさらに高めることが可能になる。
【0072】
他の側面に係るコンテンツ配信システムでは、少なくとも一つのプロセッサが、実写画像領域内に位置する現実オブジェクトと第1仮想オブジェクトとの中で、空間で最も遠くに位置するオブジェクトを仮の最遠オブジェクトとして特定し、第2仮想オブジェクトがコンテンツ画像上で仮の最遠オブジェクトよりも大きく表現されるように、第2仮想オブジェクトの寸法を決定してもよい。第2仮想オブジェクトを仮の最遠オブジェクトよりも大きく表示することで、ユーザに非現実感を与えることが可能なコンテンツ画像を提供することができる。
【0073】
他の側面に係るコンテンツ配信システムでは、コンテンツ画像が、配信者端末から複数の視聴者端末に配信されるコンテンツの画像であってもよい。少なくとも一つのプロセッサは、第2仮想オブジェクトが空間の仮想カメラに追従するように、最遠領域における第2仮想オブジェクトの位置を決定してもよい。この処理によって、カメラの向きに関係なく第2仮想オブジェクトが常にコンテンツ画像上に現われるので、ユーザに非現実感を与えることが可能なコンテンツ画像を提供できる。
【0074】
他の側面に係るコンテンツ配信システムでは、コンテンツ画像が、配信者端末から複数の視聴者端末に配信されるコンテンツの画像であってもよい。少なくとも一つのプロセッサは、実写画像領域内に位置する現実オブジェクトに第2仮想オブジェクトが追従するように、最遠領域における第2仮想オブジェクトの位置を決定してもよい。この処理によって第2仮想オブジェクトと現実オブジェクトとの位置関係が維持されるので、第2仮想オブジェクトが現実世界に実在するような感覚をユーザに与えることが可能なコンテンツ画像を提供できる。
【0075】
他の側面に係るコンテンツ配信システムでは、コンテンツ画像が、配信者端末から複数の視聴者端末に配信されるコンテンツの画像であり、第1仮想オブジェクトが、配信者に対応するアバターを含んでもよい。少なくとも一つのプロセッサは、第2仮想オブジェクトがアバターに追従するように、最遠領域における第2仮想オブジェクトの位置を決定してもよい。この処理によって第2仮想オブジェクトとアバターとの位置関係が維持されるので、アバター(配信者)と第2仮想オブジェクトとが一体になったような非現実感をユーザに与えることが可能なコンテンツ画像を提供できる。
【0076】
他の側面に係るコンテンツ配信システムでは、コンテンツ画像が、配信者端末から複数の視聴者端末に配信されるコンテンツの画像であり、第1仮想オブジェクトが、配信者に対応するアバターを含んでもよい。少なくとも一つのプロセッサは、第2仮想オブジェクトが配置された空間を表現するコンテンツ画像を複数の視聴者端末のそれぞれで表示させてもよい。既に実写画像領域とアバターとの双方を含む画像に関して最遠領域が特定され、その最遠領域に第2仮想オブジェクトがさらに配置されるのでライブコンテンツの視覚効果を高めることができる。そして、その視覚効果の補強により、ライブコンテンツの魅力をさらに高めることができる。
【0077】
[変形例]
以上、本開示の実施形態に基づいて詳細に説明した。しかし、本開示は上記実施形態に限定されるものではない。本開示は、その要旨を逸脱しない範囲で様々な変形が可能である。
【0078】
上記実施形態ではコンテンツ配信システム1がサーバ10を用いて構成されたが、コンテンツ配信システムは、サーバ10を用いないユーザ端末間の直接配信に適用されてもよい。この場合には、サーバ10の各機能要素は、いずれかのユーザ端末に実装されてもよく、複数のユーザ端末に分かれて実装されてもよい。これに関連して、コンテンツ配信プログラムはクライアントプログラムとして実現されてもよい。コンテンツ配信システムはサーバを用いて構成されてもよいし、サーバを用いることなく構成されてもよい。
【0079】
本開示において、「少なくとも一つのプロセッサが、第1の処理を実行し、第2の処理を実行し、…第nの処理を実行する。」との表現、またはこれに対応する表現は、第1の処理から第nの処理までのn個の処理の実行主体(すなわちプロセッサ)が途中で変わる場合を含む概念である。すなわち、この表現は、n個の処理のすべてが同じプロセッサで実行される場合と、n個の処理においてプロセッサが任意の方針で変わる場合との双方を含む概念である。
【0080】
少なくとも一つのプロセッサにより実行される方法の処理手順は上記実施形態での例に限定されない。例えば、上述したステップ(処理)の一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの任意の2以上のステップが組み合わされてもよいし、ステップの一部が修正又は削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。
【解決手段】一実施形態に係るコンテンツ配信システムは、少なくとも一つのプロセッサを備える。少なくとも一つのプロセッサは、実写画像領域と第1仮想オブジェクトとを示すコンテンツ画像によって表現される空間の最遠領域を特定し、第2仮想オブジェクトを最遠領域に配置し、第2仮想オブジェクトが配置された空間を表現するコンテンツ画像をユーザ端末上に表示させる。