以下、添付図面を参照しながら本開示での実施形態を詳細に説明する。なお、図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
[システムの概要]
実施形態に係るコンテンツ配信システム1はコンテンツ画像を少なくとも一つのユーザ端末20に配信するコンピュータシステムである。コンテンツ画像とは、人が視覚を通して何らかの情報を認識することができる像のことをいう。コンテンツ画像は動画像(映像)でもよいし静止画でもよい。ユーザ端末20は、コンテンツ配信システム1を利用する人であるユーザによって用いられるコンピュータである。配信とは、通信ネットワークまたは放送ネットワークを経由して情報をユーザに向けて送信する処理のことをいう。本開示では、配信は放送を含み得る概念である。コンテンツ配信システム1は、コンテンツ画像を示す電子データであるコンテンツ画像データを生成して該コンテンツ画像データをユーザ端末に送信する。ユーザ端末20はそのコンテンツ画像データを受信および処理してコンテンツ画像を表示装置上に表示する。
図1はコンテンツ配信システム1の適用の一例を示す図である。本実施形態では、コンテンツ配信システム1はサーバ10を備える。サーバ10は、コンテンツ画像を少なくとも一つのユーザ端末20に配信するコンピュータ(コンテンツ配信サーバ)である。サーバ10は通信ネットワークNを介して複数のユーザ端末20と接続する。図1では5台のユーザ端末20を示すが、ユーザ端末20の個数は限定されない。通信ネットワークNの構成は限定されない。例えば、通信ネットワークNはインターネットを含んで構成されてもよいし、イントラネットを含んで構成されてもよい。図1に例示するようにユーザ端末20の種類は限定されない。例えば、ユーザ端末20は高機能携帯電話機(スマートフォン)、タブレット端末、ウェアラブル端末(例えば、ヘッドマウントディスプレイ(HMD)、スマートグラスなど)、ラップトップ型パーソナルコンピュータ、携帯電話機などの携帯端末でもよい。あるいは、ユーザ端末20はデスクトップ型パーソナルコンピュータなどの据置型端末でもよい。
本開示では、コンテンツ画像は、実写画像と仮想オブジェクトとが組み合わされることで生成される画像である。実写画像とは現実世界を映した画像のことをいい、カメラなどの撮像装置によって得られる。当然ながら実写画像により映された物体(本開示ではこれを「現実オブジェクト」という。)は現実世界に実際に存在する。仮想オブジェクトとは、現実世界(より具体的には、実写画像で表現される領域)には実際に存在せず、コンピュータシステム上でのみ表現される物体のことをいう。仮想オブジェクトは、実写画像とは独立した画像素材を用いて、2次元または3次元のコンピュータグラフィック(CG)によって表現される。仮想オブジェクトの表現方法は限定されない。例えば、仮想オブジェクトはアニメーション素材を用いて表現されてもよいし、実写画像に基づいて本物に近いように表現されてもよい。コンテンツ画像は、現実オブジェクトと仮想オブジェクトとが存在する仮想空間を表現する画像であるともいえる。仮想空間とは、コンピュータ上に表示される画像によって表現される仮想の2次元または3次元の空間のことをいう。見方を変えると、コンテンツ画像は、仮想空間内に設定された仮想カメラから見える風景を示す画像ということができる。仮想カメラは、コンテンツ画像を見るユーザの視線に対応するように仮想空間内に設定される。
コンテンツ配信システム1は、第1仮想オブジェクトの公称寸法を仮想空間内の基準オブジェクトの公称寸法との相対的関係が維持されるように該第1仮想オブジェクトを該仮想空間内に配置する。「オブジェクトを配置する」とは、オブジェクト(例えば第1仮想オブジェクト)を決められた位置に置くことをいい、オブジェクトの位置の変更を含む概念である。コンテンツ配信システム1は第1仮想オブジェクトが配置された仮想空間を表現するコンテンツ画像をユーザ端末20上に表示させる。第1仮想オブジェクトとは、その仮想空間に追加される仮想オブジェクトのことをいう。基準オブジェクトとは、仮想空間内に配置する第1仮想オブジェクトの寸法を決めるために用いられるオブジェクトのことをいう。基準オブジェクトは現実オブジェクトでもよいし仮想オブジェクトでもよい。
公称寸法とは、オブジェクトそのものの属性として設定されており且つ一般に公開されている寸法のことをいう。したがって、ユーザなどの人々は任意の情報源にアクセスしてその公称寸法を知ることができる。本実施形態では公称寸法の具体例として高さを示すが、公称寸法は他の長さを示してもよい。例えば公称寸法は幅を示してもよい。公称寸法は複数の長さの組合せ(例えば、高さと幅との組合せ)であってもよい。オブジェクトが人または人型のキャラクタであれば、高さを身長といい、幅を身幅と言い換えることができる。本実施形態では、第1仮想オブジェクトの公称寸法を「第1公称寸法」といい、基準オブジェクトの公称寸法を「基準公称寸法」という。現実オブジェクトを例に説明すると、エベレストの公称寸法(高さ)は8848mであり、東京タワーの公称寸法(高さ)は333mである。「公称寸法の相対的関係」とは、二つのオブジェクト間での公称寸法の大小関係のことをいい、比率で表すことができる。例えば、東京タワーの公称寸法とエッフェル塔(高さは324m)との公称寸法との相対的関係は、1.03(≒333/324)、0.97(≒324/333)、333:324、324:333などのように数学的に表すことができる。
第1仮想オブジェクトと基準オブジェクトとの間の公称寸法の相対的関係が維持されるように第1仮想オブジェクトが仮想空間内に配置されるので、これら二つのオブジェクト間の寸法の大小関係は公称寸法に従う。したがって、コンテンツ画像上では第1仮想オブジェクトが違和感なく表示される。言い換えると、第1仮想オブジェクトの大きさをその公称寸法に従ってリアルにユーザに見せることができる。
コンテンツ配信システム1は様々な目的で用いられてよい。例えば、コンテンツ配信システム1は、ある一人のユーザが他のユーザに向けてライブコンテンツを配信するサービスのために用いられてもよい。このサービスはインターネット生放送ともいわれる。すなわち、コンテンツ配信システム1は配信者から提供されるコンテンツ映像をリアルタイムに視聴者に配信するために用いられてもよい。したがって、コンテンツ画像は、リアルタイムに配信されるライブコンテンツの画像であり得る。あるいは、コンテンツ配信システム1は、過去に撮影されたコンテンツ映像を視聴者に配信するために用いられてもよく、例えば、リアルタイム配信後の所与の期間においてコンテンツを視聴することが可能なタイムシフトのために用いられてもよい。コンテンツ配信システム1は静止画を配信するために用いられてもよい。
コンテンツ画像上には、仮想空間内で表現されるユーザの分身であるアバターが表現され得る。アバターは仮想オブジェクトの一例である。コンテンツ画像に含まれるアバターは限定されず、例えば、アバターは、配信者に対応してもよいし、配信者と共にコンテンツに参加すると共に該コンテンツを視聴するユーザである参加者に対応してもよい。参加者は視聴者の一種であるといえる。
本実施形態では、ライブコンテンツの配信、すなわちコンテンツ映像のリアルタイム配信を例示する。また、配信者によって用いられるユーザ端末20を配信者端末21といい、視聴者によって用いられるユーザ端末20を視聴者端末22という。
[システムの構成]
図2はコンテンツ配信システム1に関連するハードウェア構成の一例を示す図である。一例として、サーバ10はハードウェア構成要素として、プロセッサ101、主記憶部102、補助記憶部103、および通信部104を備える。
プロセッサ101は、オペレーティングシステムおよびアプリケーションプログラムを実行する演算装置である。プロセッサの例としてCPU(Central Processing Unit)およびGPU(Graphics Processing Unit)が挙げられるが、プロセッサ101の種類はこれらに限定されない。
主記憶部102は、サーバ10を機能させるためのプログラム、プロセッサ101から出力された演算結果などを記憶する装置である。主記憶部102は例えばROM(Read Only Memory)およびRAM(Random Access Memory)のうちの少なくとも一つにより構成される。
補助記憶部103は、一般に主記憶部102よりも大量のデータを記憶することが可能な装置である。補助記憶部103は例えばハードディスク、フラッシュメモリなどの不揮発性記憶媒体によって構成される。補助記憶部103は、少なくとも一つのコンピュータをサーバ10として機能させるためのサーバプログラムP1と各種のデータとを記憶する。例えば、補助記憶部103は仮想オブジェクトおよび仮想空間のうちの少なくとも一つに関するデータを記憶してもよい。本実施形態では、コンテンツ配信プログラムはサーバプログラムP1として実装される。
通信部104は、通信ネットワークNを介して他のコンピュータとの間でデータ通信を実行する装置である。通信部104は例えばネットワークカードまたは無線通信モジュールにより構成される。
サーバ10の各機能要素は、プロセッサ101または主記憶部102の上にサーバプログラムP1を読み込ませてそのプログラムを実行させることで実現される。サーバプログラムP1は、サーバ10の各機能要素を実現するためのコードを含む。プロセッサ101はサーバプログラムP1に従って通信部104を動作させ、主記憶部102または補助記憶部103におけるデータの読み出しおよび書き込みを実行する。このような処理によりサーバ10の各機能要素が実現される。
サーバ10は一つまたは複数のコンピュータにより構成され得る。複数のコンピュータが用いられる場合には、通信ネットワークを介してこれらのコンピュータが互いに接続されることで、論理的に一つのサーバ10が構成される。
一例として、ユーザ端末20はハードウェア構成要素として、プロセッサ201、主記憶部202、補助記憶部203、および通信部204、入力インタフェース205、出力インタフェース206、および撮像部207を備える。
プロセッサ201は、オペレーティングシステムおよびアプリケーションプログラムを実行する演算装置である。プロセッサ201は例えばCPUまたはGPUであり得るが、プロセッサ201の種類はこれらに限定されない。
主記憶部202は、ユーザ端末20を機能させるためのプログラム、プロセッサ201から出力された演算結果などを記憶する装置である。主記憶部202は例えばROMおよびRAMのうちの少なくとも一つにより構成される。
補助記憶部203は、一般に主記憶部202よりも大量のデータを記憶することが可能な装置である。補助記憶部203は例えばハードディスク、フラッシュメモリなどの不揮発性記憶媒体によって構成される。補助記憶部203は、コンピュータをユーザ端末20として機能させるためのクライアントプログラムP2と各種のデータとを記憶する。例えば、補助記憶部203は仮想オブジェクトおよび仮想空間のうちの少なくとも一つに関するデータを記憶してもよい。
通信部204は、通信ネットワークNを介して他のコンピュータとの間でデータ通信を実行する装置である。通信部204は例えばネットワークカードまたは無線通信モジュールにより構成される。
入力インタフェース205は、ユーザの操作または動作に基づいてデータを受け付ける装置である。例えば、入力インタフェース205は、キーボード、操作ボタン、ポインティングデバイス、マイクロフォン、センサ、およびカメラのうちの少なくとも一つによって構成される。キーボードおよび操作ボタンはタッチパネル上に表示されてもよい。入力インタフェース205の種類が限定されないことに対応して、入力されるデータは限定されない。例えば、入力インタフェース205はキーボード、操作ボタン、またはポインティングデバイスによって入力または選択されたデータを受け付けてもよい。あるいは、入力インタフェース205は、マイクロフォンにより入力された音声データを受け付けてもよい。あるいは、入力インタフェース205はセンサまたはカメラを用いたモーションキャプチャ機能によって検知されたユーザの非言語行動(例えば、視線、ジェスチャ、表情など)を示すデータをモーションデータとして受け付けてもよい。
出力インタフェース206は、ユーザ端末20で処理されたデータを出力する装置である。例えば、出力インタフェース206はモニタ、タッチパネル、HMDおよびスピーカのうちの少なくとも一つによって構成される。モニタ、タッチパネル、HMDなどの表示装置は、処理されたデータを画面上に表示する。スピーカは、処理された音声データで示される音声を出力する。
撮像部207は、現実世界を映した画像を撮影する装置であり、具体的にはカメラである。撮像部207は動画像(映像)を撮影してもよいし静止画(写真)を撮影してもよい。動画像を撮影する場合には、撮像部207は映像信号を所与のフレームレートに基づいて処理することで、時系列に並ぶ一連のフレーム画像を動画像として取得する。撮像部207は入力インタフェース205としても機能し得る。
ユーザ端末20の各機能要素は、プロセッサ201または主記憶部202の上にクライアントプログラムP2を読み込ませてそのプログラムを実行させることで実現される。クライアントプログラムP2は、ユーザ端末20の各機能要素を実現するためのコードを含む。プロセッサ201はクライアントプログラムP2に従って通信部204、入力インタフェース205、出力インタフェース206、または撮像部207を動作させ、主記憶部202または補助記憶部203におけるデータの読み出しおよび書き込みを行う。この処理によりユーザ端末20の各機能要素が実現される。
サーバプログラムP1およびクライアントプログラムP2の少なくとも一つは、CD-ROM、DVD-ROM、半導体メモリなどの有形の記録媒体に固定的に記録された上で提供されてもよい。あるいは、これらのプログラムの少なくとも一つは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。これらのプログラムは別々に提供されてもよいし、一緒に提供されてもよい。
図3はコンテンツ配信システム1に関連する機能構成の一例を示す図である。機能構成については、ユーザ端末20を配信者端末21と視聴者端末22とに区別してその機能構成を説明する。
サーバ10は機能要素として受信部11、オブジェクト設定部12、および送信部13を備える。受信部11は、配信者端末21からコンテンツ画像データを受信する機能要素である。オブジェクト設定部12は、コンテンツ画像によって表現される仮想空間内に仮想オブジェクトを配置する機能要素である。送信部13は、仮想オブジェクトが配置された仮想空間を示すコンテンツ画像データを配信者端末21に送信する機能要素である。
サーバ10は機能要素としてさらに収集部14を備えてもよい。収集部14は、インターネット上の電子文書を周期的に検索または取得することで、コンテンツ配信システム1で用いられる可能性があるオブジェクトの公称寸法を予め収集する機能要素である。すなわち、収集部14はクローラ(crawler)として機能する。収集部14はオブジェクトを一意に特定する識別子を用いた検索によって公称寸法を取得する。収集の対象となるオブジェクトは現実オブジェクトおよび仮想オブジェクトの少なくとも一方を含み、第1仮想オブジェクトおよび基準オブジェクトの少なくとも一方を含み得る。したがって、取得される公称寸法は第1公称寸法および基準公称寸法の少なくとも一方を含み得る。オブジェクトの識別子の構成は限定されず、例えば識別子はオブジェクトの名称で表されてもよいし、アルファベットおよび数字の少なくとも一方を用いて表されてもよい。収集部14は、収集した公称寸法に関する情報を寸法データとして寸法データベース30に予め格納する。寸法データベース30は補助記憶部103内に構築されてもよいし、サーバ10とは別のコンピュータ上に構築されてもよい。収集部14が必須の構成要素ではないことに対応して、寸法データベース30もコンテンツ配信システム1における必須の要素ではない。
寸法データの各レコードはオブジェクトの識別子および公称寸法を含み、寸法種別をさらに含んでもよい。寸法種別は、一つのオブジェクトが複数の寸法を有する場合に用いることができる。架空の怪獣であるゴジラ(登録商標)を例にとると、映画などの作品内で設定されたゴジラ(登録商標)の寸法(例えば50m、118.5m、300mなど)、ゴジラ(登録商標)の演者が着る着ぐるみの寸法(例えば2mなど)などの様々な公称寸法が存在する。寸法種別は、一つのオブジェクトについて複数の公称寸法を関連付けるために用いられる。
配信者端末21は機能要素として画像処理部211および送信部212を備える。画像処理部211は、撮像部207により撮影された実写画像に基づくコンテンツ画像データを生成する機能要素である。送信部212はそのコンテンツ画像データをサーバ10に送信する機能要素である。
視聴者端末22は機能要素として受信部221および表示制御部222を備える。受信部221は、サーバ10からコンテンツ画像データを受信する機能要素である。表示制御部222はそのコンテンツ画像データを処理して、コンテンツ画像を表示装置上に表示する機能要素である。
ユーザ端末20は、或る状況では配信者端末21として機能し、別の状況では視聴者端末22として機能してもよい。したがって、ユーザ端末20は配信者端末21および視聴者端末22の双方の機能要素を備えてもよい。
[システムの動作]
図4は実写画像に基づくコンテンツ画像300のいくつかの例を示す図である。実写画像は動画像(映像)を構成する一つのフレーム画像でもよいし、1枚の静止画でもよい。実写画像に対応して、コンテンツ画像300もフレーム画像または静止画であり得る。配信者が屋外で撮影して配信者端末21の撮像部207が実写画像を生成したとする。コンテンツ画像300は、実写画像で表される領域である実写画像領域と、戦士301および巨人302という二つの仮想オブジェクトとを示す。戦士301および巨人302のうちの少なくとも一つはユーザに対応するアバターであってもよい。実写画像領域内には、道路311と複数のビル312という複数の現実オブジェクトが映っている。巨人302の身長(公称寸法)は戦士301の身長(公称寸法)の2倍であるとする。戦士301および巨人302の一方が第1仮想オブジェクトであり、他方が基準オブジェクトであるとする。図4の例(a),(b),(c)のいずれにおいても、戦士301および巨人302は道路311上に立っている。
コンテンツ配信システム1は戦士301と巨人302との間の身長の相対的関係が1:2であることに基づいて、その相対的関係を維持するように戦士301および巨人302を仮想空間内に配置する。この結果、図4の例(a)のように戦士301と巨人302が横並びになった場合(厳密には、仮想カメラからの距離が戦士301と巨人302とで同じ場合)には、コンテンツ画像300上での巨人302の見かけの長さも戦士301の2倍になる。
図4の例(b)は、コンテンツ画像300が状態(a)であるときに配信者端末21の撮像部207をティルティング(tilting)したことに伴って、仮想カメラがさらに上方に向いた場面を示す。例(b)では、身長が低い戦士301は顔の半分程度しか映っていないが、身長が戦士301の2倍ある巨人302は身体の半分以上が映っている。
図4の例(c)は、巨人302が戦士301よりも奥に位置する場面を示す。これは、仮想空間において巨人302が戦士301よりも仮想カメラから離れていることを意味する。コンテンツ配信システム1は戦士301と巨人302との間の身長の相対的関係が1:2であることに基づいて、その相対的関係を維持するように戦士301および巨人302を仮想空間内に配置する。この場面でも、巨人302は戦士301との公称寸法の相対的関係と、仮想空間上での戦士301との位置関係とを反映して表示される。
第1仮想オブジェクトが配置される前のコンテンツ画像は、配信者端末21で生成されてもよいし、サーバ10で生成されてもよい。いずれにせよ、サーバ10は、コンテンツ画像内で、第1仮想オブジェクトと基準オブジェクトとの間の公称寸法の相対的関係が維持されるように、仮想空間内に第1仮想オブジェクトを配置する。そして、サーバ10は、第1仮想オブジェクトおよび基準オブジェクトが配置された仮想空間を示すコンテンツ画像を視聴者端末22上に表示させる。基準オブジェクトは、第1仮想オブジェクトを仮想空間内に配置しようとする際に既に仮想空間内に存在してもよいし、第1仮想オブジェクトと同時にまたはその後に仮想空間内に配置されてもよい。
コンテンツ配信システム1の動作を説明するとともに、本実施形態に係るコンテンツ配信方法について説明する。図5は、コンテンツ配信システム1の動作を処理フローS1として示すシーケンス図である。以下では、配信者および視聴者がコンテンツ配信システム1にログインしており、配信者が視聴者に向けてコンテンツを配信可能であることを前提とする。また、以下では、画像処理に関して特に説明し、画像と共に配信者端末21から視聴者端末22に送信される音声データに関しては詳細な説明を省略する。
ステップS11では、配信者端末21が撮像部207を動作させて撮影を実行する。画像処理部211はその撮影により得られた実写画像に基づいてコンテンツ画像データを生成する。コンテンツ画像データの生成方法およびデータ構造は限定されない。例えば、画像処理部211は撮像部207から得られた実写画像をコンテンツ画像データに含めてもよい。あるいは、画像処理部211は、実写画像に映った配信者のモーションデータをコンテンツ画像データに含めてもよい。
あるいは、画像処理部211は仮想オブジェクトに関するデータをコンテンツ画像データの少なくとも一部として設定してもよい。仮想オブジェクトは、実写画像に映った配信者に代わって表示されるアバター(すなわち、配信者に対応するアバター)を含んでもよい。配信者に対応するアバターを設定する場合には、画像処理部211は、実写画像に映った該配信者のモーションデータに基づいて該アバターの動作を設定し、その動作を示すモーションデータをコンテンツ画像データに含めてもよい。
あるいは、画像処理部211は実写画像に基づいて仮想空間を特定し、その仮想空間に関するデータ(仮想空間データ)をコンテンツ画像データに含めてもよい。仮想空間データは、配信者端末21の位置に対応して設定される仮想カメラの位置を含んでもよい。仮想空間データは、仮想カメラの光軸方向(言い換えると、z方向または奥行き方向)における各オブジェクトの位置に関する情報を含んでもよい。例えば、仮想空間データは、仮想カメラから各オブジェクトまでの距離(すなわち奥行き)を含んでもよい。撮像部207がデプスカメラを用いて構成される場合には、画像処理部211はそのデプスカメラによって測定された実写画像内の各現実オブジェクトまでの距離を取得してもよい。あるいは、画像処理部211は実写画像を機械学習などの手法により解析することで、仮想カメラの光軸方向におけるオブジェクト間の位置関係を算出してもよい。あるいは、画像処理部211は各仮想オブジェクトについて設定された位置または奥行きを取得してもよい。
ステップS12では、画像処理部211が、オブジェクトが配置される位置を指定する。例えば、画像処理部211はその位置に関するユーザ入力を受け付けてもよいし、ライブコンテンツのシナリオに基づいてオブジェクトの位置を指定してもよい。位置が指定されるオブジェクトは限定されない。例えば、画像処理部211は第1仮想オブジェクトの位置を指定してもよいし、他の仮想オブジェクトの位置を指定してもよい。画像処理部211は、指定されたオブジェクトの位置をコンテンツ画像データに含める。
ステップS13では、配信者端末21の送信部212がコンテンツ画像データをサーバ10に送信する。サーバ10では受信部11がそのコンテンツ画像データを受信する。送信部212はコンテンツ画像データに対応する音声データもサーバ10に送信する。
ステップS14では、サーバ10のオブジェクト設定部12が、コンテンツ画像によって表現される仮想空間を特定する。仮想空間の特定は、仮想空間内での仮想カメラ、1以上の現実オブジェクト、および、もしあれば1以上の仮想オブジェクトのそれぞれについて位置を特定する処理と、この段階での各現実オブジェクト(および、もしあれば各仮想オブジェクト)の寸法を特定する処理とを含み得る。配信者端末21から受信したコンテンツ画像データのデータ構造が限定されないことに対応して、仮想空間の特定方法も限定されない。コンテンツ画像データが仮想空間データを含む場合には、オブジェクト設定部12はその仮想空間データに基づいて仮想空間を特定してもよい。仮想空間データが、仮想カメラの光軸方向における各オブジェクトの位置情報を含まない場合には、オブジェクト設定部12はコンテンツ画像データに基づいて、各オブジェクトの位置、またはオブジェクト間の位置関係を算出してもよい。コンテンツ画像データが仮想空間データを含まない場合には、オブジェクト設定部12は実写画像を機械学習などの手法により解析することで仮想空間を特定してもよい。
ステップS15では、オブジェクト設定部12が第1仮想オブジェクトを取得する。第1仮想オブジェクトの取得方法は限定されない。オブジェクト設定部12は第1仮想オブジェクトを補助記憶部103から読み出してもよい。例えば、オブジェクト設定部12は配信者または視聴者によって指定された第1仮想オブジェクトを読み出してもよいし、ライブコンテンツのシナリオに基づいて第1仮想オブジェクトを読み出してもよい。あるいは、オブジェクト設定部12は配信者端末21または視聴者端末22から第1仮想オブジェクトのデータを受信することで第1仮想オブジェクトを取得してもよい。
第1仮想オブジェクトは任意の物体を表現してよい。第1仮想オブジェクトは、現実世界には存在しない物体(例えば、架空のキャラクタ)を表現してもよいし、現実世界に存在する自然物または人工物(例えば、星、人、動物、植物、飛行機、自動車、建物)などを模したものでもよい。第1仮想オブジェクトは、配信者または参加者に対応するアバターでもよい。
ステップS16では、オブジェクト設定部12が第1公称寸法を取得する。オブジェクト設定部12は、取得された第1仮想オブジェクトの識別子を用いた検索によって第1公称寸法を取得する。オブジェクト設定部12は第1仮想オブジェクトの各種情報を含むモデルデータを記憶する記憶部を検索することで第1公称寸法を取得してもよい。モデルデータの各レコードはオブジェクトの識別子および公称寸法を含み、寸法種別をさらに含んでもよい。モデルデータを記憶する装置は限定されず、例えば補助記憶部103でもよいし、サーバ10が通信ネットワークNを介してアクセス可能なデータベースでもよい。このデータベースはコンテンツ配信システム1内に設けられてもよいし、コンテンツ配信システム1とは異なるコンピュータシステムに設けられてもよい。あるいは、オブジェクト設定部12は寸法データベース30を検索して、第1仮想オブジェクトの識別子に対応する公称寸法を取得してもよい。第1仮想オブジェクトについて複数の公称寸法が設定されている場合には、オブジェクト設定部12は識別子および寸法種別に合致する第1公称寸法を取得する。寸法種別は、ユーザ(配信者または視聴者)によって設定されてもよいし、ライブコンテンツのシナリオに基づいて設定されてもよい。
ステップS17では、オブジェクト設定部12が基準オブジェクトを選択して基準公称寸法を取得する。基準オブジェクトの選択方法は限定されない。例えば、オブジェクト設定部12は仮想空間内の現実オブジェクト(すなわち、実写画像領域内に映っている現実オブジェクト)を基準オブジェクトして選択してもよい。あるいは、オブジェクト設定部12は仮想空間内に既に配置されている仮想オブジェクト、または仮想空間にこれから配置される仮想オブジェクトを基準オブジェクトして選択してもよい。オブジェクト設定部12は基準オブジェクトを、ユーザ(配信者または視聴者)に基づいて選択してもよいし、ライブコンテンツのシナリオに基づいて選択してもよい。基準オブジェクトは、配信者または参加者に対応するアバターでもよい。オブジェクト設定部12は、選択した基準オブジェクトの公称寸法を基準公称寸法として取得する。オブジェクト設定部12は、第1公称寸法に関して上述した様々な手法のうちの一つを用いて基準公称寸法を取得することができる。
ステップS18では、オブジェクト設定部12が、第1公称寸法と基準公称寸法との相対的関係を維持するように第1仮想オブジェクトおよび基準オブジェクトを仮想空間に配置する。この処理により、仮想空間内での第1仮想オブジェクトおよび基準オブジェクトのそれぞれの寸法はその相対的関係に拘束される。
基準オブジェクトが仮想オブジェクトである場合には、オブジェクト設定部12は、仮想空間における第1仮想オブジェクトおよび基準オブジェクトのそれぞれの公称寸法と、仮想空間内の他のオブジェクトの公称寸法との相対的関係を維持しなくてもよい。例えば、仮想空間Vが第1仮想オブジェクト、第2仮想オブジェクトである基準オブジェクト、および別オブジェクト(これは現実オブジェクトでも仮想オブジェクトでもよい。)を含むとする。そして、第1仮想オブジェクト、基準オブジェクト、および別オブジェクトの公称高さがそれぞれ3m、2m、10mであるとする。この場合、オブジェクト設定部12は第1公称寸法と基準公称寸法との相対的関係を維持するので、仮想空間V内での第1仮想オブジェクトと基準オブジェクトとの高さの比は3:2である。しかし、オブジェクト設定部12は、仮想空間V内での第1仮想オブジェクト、基準オブジェクト、および別オブジェクトの比を3:2:10にしなくてもよい。一例として、オブジェクト設定部12は仮想空間V内での第1仮想オブジェクトおよび基準オブジェクトの高さをそれぞれ15m、10mと設定してもよい。この場合には、仮想空間V内での第1仮想オブジェクト、基準オブジェクト、および別オブジェクトの高さの比は3:2:2になる。
基準オブジェクトが仮想オブジェクトである場合には、オブジェクト設定部12は、仮想空間における第1仮想オブジェクトおよび基準オブジェクトのそれぞれの公称寸法と、仮想空間内の他のオブジェクトの公称寸法との相対的関係を維持してもよい。上記の仮想空間Vを例に説明すると、オブジェクト設定部12は第1仮想オブジェクトおよび基準オブジェクトの高さをそれぞれ3m、2mと設定する。したがって、仮想空間V内での第1仮想オブジェクト、基準オブジェクト、および別オブジェクトの高さの比は3:2:10になる。
このように、仮想空間において、第1仮想オブジェクトおよび基準オブジェクトのそれぞれの公称寸法と、他のオブジェクトの公称寸法との関係は任意に設定されてよい。また、第1仮想オブジェクトおよび基準オブジェクトの公称寸法を寸法種別に応じて設定することも可能である。したがって、一つの第1仮想オブジェクトを様々な大きさでコンテンツ画面上に映すことができる。例えば、人間の隣に同程度の大きさのゴジラ(登録商標)を配置したり、東京タワーの隣に同程度の大きさのゴジラ(登録商標)を配置したりすることができる。現実オブジェクトの大きさと整合するように人型のアバターの身長を設定することで(すなわち、人間の一般的な身長に合わせてアバターの大きさを設定することで)、現実感のあるコンテンツ画像を提供してもよい。
オブジェクト設定部12は、第1仮想オブジェクトおよび基準オブジェクトを同じオブジェクト上に接するように位置させてもよい。すなわち、オブジェクト設定部12は第1仮想オブジェクトおよび基準オブジェクトが接地するオブジェクトを合わせてもよい。図4の例(a)~(c)はいずれも、オブジェクト設定部12が戦士301および巨人302を道路311上に位置させることで得られるコンテンツ画像300を示す。第1仮想オブジェクトおよび基準オブジェクトが接地するオブジェクトは平坦でなくてもよく、例えば、坂道のように傾斜していてもよいし、階段のように段状になっていてもよい。
オブジェクト設定部12は第1仮想オブジェクトおよび基準オブジェクトのそれぞれの全体(全身)がコンテンツ画像内に収まるように、これらのオブジェクトのそれぞれについて位置および寸法を設定してもよい。オブジェクト設定部12は、第1仮想オブジェクトおよび基準オブジェクトのそれぞれがアバターである場合にこの処理を実行してもよい。オブジェクト設定部12はすべてのアバター(具体的には、配信者およびすべての参加者のアバター)の全身がコンテンツ画像内に収まるようにそれぞれのアバターの位置および寸法を設定してもよい。もちろんこれらの場合でも、オブジェクト設定部12は第1公称寸法と基準公称寸法との相対的関係を維持する。
ステップS19では、オブジェクト設定部12が、第1仮想オブジェクトおよび基準オブジェクトが配置された仮想空間を示すコンテンツ画像データを生成する。コンテンツ画像データの生成方法およびデータ構造は限定されない。例えば、オブジェクト設定部12は、実写画像と、各オブジェクトが配置された仮想空間を示す仮想空間データとを含むコンテンツ画像データを生成してもよい。この場合には、コンテンツ画像データは仮想空間における各オブジェクトの位置および寸法を含んでもよい。あるいは、オブジェクト設定部12は、実写画像と仮想空間内の各オブジェクトとに基づくレンダリングを実行することでコンテンツ画像データを生成してもよい。この場合にはコンテンツ画像データはコンテンツ画像そのものを示す。
ステップS20では、サーバ10の送信部13が、その仮想空間を示すコンテンツ画像データを視聴者端末22に送信する。視聴者端末22では受信部221がそのコンテンツ画像データを受信する。送信部13はコンテンツ画像データに対応する音声データも視聴者端末22に送信する。
ステップS21では、視聴者端末22の表示制御部222がそのコンテンツ画像データを処理して、コンテンツ画像を表示装置上に表示する。サーバ10でレンダリングが実行されていない場合には、表示制御部222はコンテンツ画像データに基づくレンダリングを実行することでコンテンツ画像を表示する。コンテンツ画像データがコンテンツ画像そのものを示す場合には、表示制御部222はそのコンテンツ画像をそのまま表示する。視聴者端末22は、コンテンツ画像の表示に合わせて音声をスピーカから出力する。
複数の視聴者端末22にライブコンテンツを提供する場合には、ステップS20において送信部13がそれぞれの視聴者端末22にコンテンツ画像データを送信し、ステップS21では、それぞれの視聴者端末22で表示制御部222がコンテンツ画像を表示する。コンテンツ画像は複数の視聴者端末22で同じであってもよい。すなわち、仮想空間における仮想カメラの位置が複数の視聴者端末22で同じであってもよい。この場合には、複数の視聴者は同じコンテンツ画像を見ることになる。あるいは、コンテンツ画像は複数の視聴者端末22の少なくとも一部において他の視聴者端末22と異なってもよい。すなわち、仮想カメラの位置が複数の視聴者端末22の少なくとも一部において他の視聴者端末22と異なってもよい。この場合には、ライブコンテンツは複数の視聴者のそれぞれの視点で視聴される。
ライブコンテンツなどの動画像の配信では、処理フローS1は繰り返し実行される。当然ながら、撮影が進むにつれて実写画像内での現実オブジェクトは変わり得るし、実写画像内での現実オブジェクトの位置、大きさ、および向きの少なくとも一つも変わり得る。いずれにしても、各コンテンツ画像(すなわち、各フレーム画像)において第1公称寸法と基準公称寸法との相対的関係が維持される。処理フローS1の繰り返しの少なくとも一部においてステップS12が省略されてもよい。
[マーカの表示]
上述したように、コンテンツ画像内にはユーザに対応するアバターが表示されてもよく、例えば配信者および1以上の参加者のアバターが表示され得る。コンテンツ画像が多くのアバターを含む場合には、配信者または参加者がコンテンツ画像内の自分のアバターを見失う可能性がある。配信者および各参加者が自分のアバターを視認できるように、オブジェクト設定部12は、配信者および参加者のユーザ端末20に表示されるコンテンツ画像データに、ユーザのアバターに関連付けて表示されるマーカの情報を含めてもよい。マーカは、或る一つのアバターを他のアバターと区別させるための表現のことをいう。配信者または参加者のユーザ端末20では、表示制御部222がそのコンテンツ画像データを処理することで、該ユーザ端末20のユーザのアバターに関連付けてマーカを表示する。オブジェクト設定部12は、表示されるコンテンツ画像内に閾値以上のアバターが表示される場合に限って、コンテンツ画像内にマーカを表示させてもよい。閾値は任意に設定されてよく、例えば、10、20などでもよい。マーカを表示する際には、オブジェクト設定部12は、第1公称寸法と基準公称寸法との相対的関係を維持するための処理を実行しなくてもよい。
図6は、マーカが表されたコンテンツ画像の一例を示す図である。コンテンツ画像400上には配信者および多数の参加者に対応する多数のアバター410が表示され、さらに、一つのアバター410に関連付けられたマーカ420が表示されている。マーカ420が付加されたアバター410に対応するユーザは、そのマーカ420を頼りにコンテンツ画像内の自分のアバター410を操作して、他のアバター410(すなわち、他のユーザ)と交流(例えば、握手、ハイタッチ、抱擁など)することができる。
[効果]
以上説明したように、本開示の一側面に係るコンテンツ配信システムは、少なくとも一つのプロセッサを備える。少なくとも一つのプロセッサは、実写画像領域を含むコンテンツ画像を取得し、第1仮想オブジェクトの第1公称寸法と、基準オブジェクトの基準公称寸法とを取得し、第1公称寸法と基準公称寸法との相対的関係が維持されるように、コンテンツ画像によって表現される空間内に第1仮想オブジェクトおよび基準オブジェクトを配置し、第1仮想オブジェクトおよび基準オブジェクトが配置された空間を表現するコンテンツ画像をユーザ端末上に表示させる。
本開示の一側面に係るコンテンツ配信方法は、少なくとも一つのプロセッサを備えるコンテンツ配信システムによって実行される。コンテンツ配信方法は、実写画像領域を含むコンテンツ画像を取得するステップと、第1仮想オブジェクトの第1公称寸法と、基準オブジェクトの基準公称寸法とを取得するステップと、第1公称寸法と基準公称寸法との相対的関係が維持されるように、コンテンツ画像によって表現される空間内に第1仮想オブジェクトおよび基準オブジェクトを配置するステップと、第1仮想オブジェクトおよび基準オブジェクトが配置された空間を表現するコンテンツ画像をユーザ端末上に表示させるステップとを含む。
本開示の一側面に係るコンテンツ配信プログラムは、実写画像領域を含むコンテンツ画像を取得するステップと、第1仮想オブジェクトの第1公称寸法と、基準オブジェクトの基準公称寸法とを取得するステップと、第1公称寸法と基準公称寸法との相対的関係が維持されるように、コンテンツ画像によって表現される空間内に第1仮想オブジェクトおよび基準オブジェクトを配置するステップと、第1仮想オブジェクトおよび基準オブジェクトが配置された空間を表現するコンテンツ画像をユーザ端末上に表示させるステップとをコンピュータに実行させる。
このような側面においては、第1仮想オブジェクトと基準オブジェクトとの間の公称寸法の関係がコンテンツ画像上に反映されるので、第1仮想オブジェクトをユーザに違和感なく見せることができる。言い換えると、第1仮想オブジェクトの大きさをその公称寸法に従ってリアルにユーザに見せることができる。その結果、コンテンツ画像の魅力をより高めることが可能になる。
上記の特許文献1には、50×30画素などのような、仮想オブジェクトの外接矩形サイズを取得し、その外接矩形の領域に対して画素のスコアを計算し、そのスコアに基づいて仮想オブジェクトを重畳することが記載されている。
しかし、この技術は画素で示される寸法を考慮するものであって、オブジェクトの公称寸法を用いていない。したがって、特許文献1の技術は、第1仮想オブジェクトの第1公称寸法と、基準オブジェクトの基準公称寸法との相対的関係が維持されるように、空間内に第1仮想オブジェクトおよび基準オブジェクトを配置する処理を実行しない。
これに対して、本開示の上記側面においては、第1公称寸法と基準公称寸法との相対的関係が維持されるように、第1仮想オブジェクトおよび基準オブジェクトが空間内に配置される。したがって、実写画像と仮想オブジェクトとを含むコンテンツ画像において、該仮想オブジェクトをユーザに違和感なく見せることができる。
他の側面に係るコンテンツ配信システムでは、少なくとも一つのプロセッサが、第1仮想オブジェクトおよび基準オブジェクトのそれぞれの全体がコンテンツ画像内に収まるように、空間内に第1仮想オブジェクトおよび基準オブジェクトを配置してもよい。これらのオブジェクトの全体(全身)をコンテンツ画像上に映すことで、コンテンツ画像の視覚効果を高めることができる。
他の側面に係るコンテンツ配信システムでは、少なくとも一つのプロセッサが、第1仮想オブジェクトおよび基準オブジェクトが同じオブジェクト上に接するように、空間内に第1仮想オブジェクトおよび基準オブジェクトを配置してもよい。これらの2オブジェクトが接地するオブジェクトを合わせることで、コンテンツ画像の視覚効果を高めることができる。
他の側面に係るコンテンツ配信システムでは、少なくとも一つのプロセッサが、第1仮想オブジェクトおよび基準オブジェクトのうちの少なくとも一つのオブジェクトについて複数の公称寸法を記憶するデータベースを参照し、第1仮想オブジェクトについて複数の公称寸法が存在する場合には、該複数の公称寸法のうちの一つの公称寸法を第1公称寸法として取得し、基準オブジェクトについて複数の公称寸法が存在する場合には、該複数の公称寸法のうちの一つの公称寸法を基準公称寸法として取得してもよい。或るオブジェクトについて複数の公称寸法を用意し、その複数の候補の中から一つの公称寸法を選択することで、該オブジェクトを様々な大きさでコンテンツ画像上に映すことができる。
他の側面に係るコンテンツ配信システムでは、少なくとも一つのプロセッサが、インターネット上の電子文書から、第1公称寸法および基準公称寸法のうちの少なくとも一つの公称寸法を予め収集して、該少なくとも一つの公称寸法をデータベースに予め格納し、コンテンツ画像の取得に応答して、第1公称寸法および基準公称寸法のうちの少なくとも一つをデータベースから取得してもよい。この仕組みによって公称寸法が自動的に収集されるので、人手に頼ることなく公称寸法を短時間で蓄積することができる。
他の側面に係るコンテンツ配信システムでは、コンテンツ画像が、配信者端末から複数の視聴者端末にリアルタイムに配信されるライブコンテンツの画像であり、第1仮想オブジェクトが、配信者に対応するアバターであってもよい。配信者に対応するアバターと基準オブジェクトとの間の公称寸法の関係がコンテンツ画像上に反映されるので、そのアバターをユーザに違和感なく見せることができる。その結果、ライブコンテンツの魅力をさらに高めることができる。
他の側面に係るコンテンツ配信システムでは、基準オブジェクトが、配信者とは異なる参加者に対応するアバターであってもよい。配信者および参加者のアバター間の公称寸法の関係がコンテンツ画像上に反映されるので、これらのアバターをユーザに違和感なく見せることができる。その結果、ライブコンテンツの魅力をさらに高めることができる。
[変形例]
以上、本開示の実施形態に基づいて詳細に説明した。しかし、本開示は上記実施形態に限定されるものではない。本開示は、その要旨を逸脱しない範囲で様々な変形が可能である。
上記実施形態ではコンテンツ配信システム1がサーバ10を用いて構成されたが、コンテンツ配信システムは、サーバ10を用いないユーザ端末間の直接配信に適用されてもよい。この場合には、サーバ10の各機能要素は、いずれかのユーザ端末に実装されてもよく、複数のユーザ端末に分かれて実装されてもよい。これに関連して、コンテンツ配信プログラムはクライアントプログラムとして実現されてもよい。コンテンツ配信システムはサーバを用いて構成されてもよいし、サーバを用いることなく構成されてもよい。
本開示において、「少なくとも一つのプロセッサが、第1の処理を実行し、第2の処理を実行し、…第nの処理を実行する。」との表現、またはこれに対応する表現は、第1の処理から第nの処理までのn個の処理の実行主体(すなわちプロセッサ)が途中で変わる場合を含む概念である。すなわち、この表現は、n個の処理のすべてが同じプロセッサで実行される場合と、n個の処理においてプロセッサが任意の方針で変わる場合との双方を含む概念である。
少なくとも一つのプロセッサにより実行される方法の処理手順は上記実施形態での例に限定されない。例えば、上述したステップ(処理)の一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの任意の2以上のステップが組み合わされてもよいし、ステップの一部が修正又は削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。