【文献】
“PoKeMoN GO”,電撃Nintendo,株式会社KADOKAWA,2016年 4月21日,第16巻, 第6号,p.58
(58)【調査した分野】(Int.Cl.,DB名)
前記制御部は、前記第2撮像部の撮影した前記操作者のジェスチャー、文字、または図形のいずれかに基づいて前記アバターを制御することを特徴とする請求項1に記載の動画合成装置。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態について図面を用いて説明する。
【0013】
図1を参照し、本実施形態の動画合成装置を含む動画配信システムの全体的な構成について説明する。本動画配信システムは、動画合成装置1と動画配信サーバ3で構成される。
【0014】
動画合成装置1は、動画合成装置1の撮影した実写映像に3次元のコンピュータグラフィックスキャラクタ(アバター)を合成し、拡張現実(Augmented Reality)動画(以下、「AR動画」と称する)を生成する。
【0015】
動画配信サーバ3は、動画合成装置1からAR動画を受信して、AR動画を視聴者端末9に配信する。動画配信サーバ3は、受信したAR動画をリアルタイムで配信(いわゆる生放送)してもよいし、AR動画を蓄積しておき、視聴者端末9からの要求に応じてAR動画を配信してもよい。
【0016】
動画配信システムは、アバター管理サーバ5およびコメント管理サーバ7を備えてもよい。
【0017】
アバター管理サーバ5は、アバターの3次元データを管理する。動画合成装置1は、アバター管理サーバ5が提供するアバターのパーツを組み合わせて、自分用のアバターを生成してもよい。
【0018】
コメント管理サーバ7は、視聴者端末9からAR動画に対するコメントを受信し、そのコメントを動画合成装置1および他の視聴者端末9に配信する。
【0019】
動画合成装置1、動画配信サーバ3、アバター管理サーバ5、コメント管理サーバ7、および視聴者端末9は、ネットワークを介して通信可能に接続される。
【0020】
図2および
図3を参照し、動画合成装置1の生成するAR動画について説明する。
【0021】
動画合成装置1は、撮影方向が互いに逆向きのアウトカメラとインカメラ、マイク、タッチパネル、および自己位置を検出するための各種センサ(例えば、加速度センサ、ジャイロセンサなど)を備える。動画合成装置1として、アウトカメラおよびインカメラを備えたスマートフォンおよびタブレットなどの携帯端末を利用できる。
【0022】
図2に示すように、配信者200は、動画合成装置1を持ち、アウトカメラで配信者200が見ている風景を撮影し、インカメラで配信者200自身を撮影する。動画合成装置1は、アウトカメラで撮影した実写映像にアバター100を合成したAR動画を生成する。動画合成装置1は、インカメラで撮影した配信者200の表情をアバター100の表情に反映する。例えば、配信者200が話しているとき、動画合成装置1は、インカメラで撮影した配信者200の顔をフェイストラッキングし、アバター100の口を配信者200の口に合わせて動かす。動画合成装置1は、配信者200の頭の動きをアバター100に反映してもよいし、配信者200のジェスチャーをアバター100に反映してもよい。これにより、配信者200は、自身の眼前に広がる風景を撮影しながら、アバター100を制御できる。
【0023】
動画合成装置1は、アバター100を実空間に対応した座標系に固定し、映像にアバター100を合成する。
図3に示すように、アウトカメラの撮影方向を右にパンしたときも、アバター100は実空間内に存在する物と同様に、映像の左方向に移動する。
【0024】
[動画合成装置の構成]
図4を参照し、動画合成装置1の構成例について説明する。同図に示す動画合成装置1は、空間測定部11、初期配置部12、アバター制御部13、合成部14、位置検出部15、インカメラ16、アウトカメラ17、入力部18、表示部19、通信制御部20、および記憶部21を備える。動画合成装置1が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは動画合成装置1が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。例えば、スマートフォンにアプリケーションをインストールし、スマートフォンを動画合成装置1として機能させてもよい。
【0025】
空間測定部11は、アバターを配置する実空間の3次元空間情報を測定し、実空間に対応する実空間座標系を設定し、アバターを配置可能な領域(以下、「アバター配置可能領域」と称する)を検出する。例えば、アウトカメラ17で実空間の動画を撮影し、単眼カメラを用いたマーカーレスARの技術により、撮影場所の実空間の3次元空間情報を測定できる。空間測定部11は、測定で得られた3次元空間情報のうち、例えば床などの平坦部分をアバター配置可能領域として検出する。空間測定部11がアバター配置可能領域として検出する箇所は、アバターを配置しても不自然でない場所ならば、地面に対して傾いていてもよく、凸凹のある場所でもよい。
【0026】
動画合成装置1がデプスカメラまたはステレオカメラを備える場合、空間測定部11は、デプスカメラの測定結果またはステレオ画像から3次元空間情報を得てもよい。空間測定部11は、測定した3次元空間情報を記憶部21に記憶する。
【0027】
初期配置部12は、空間測定部11の検出したアバター配置可能領域内にアバターが存在するように、アバターの初期位置を決定する。例えば、アウトカメラ17で撮影した実空間の映像に、アバター配置可能領域を示す図形(例えば、床の範囲を示す枠など)を重畳した画像を表示し、配信者にアバターの初期位置の指定を促す。配信者がアバター配置可能領域内をタップすると、初期配置部12は、タップされた位置の実空間座標系の座標を算出し、アバターの初期位置として決定する。初期配置部12は、アバター配置可能領域の任意の位置にアバターを配置してもよい。配信者が動画合成装置1を振ったときは、ランダムでアバターの位置を変更してもよい。
【0028】
アバター制御部13は、インカメラ16で撮影した配信者の顔をフェイストラッキングし、配信者の表情をアバターの表情に反映させる。アバター制御部13は、配信者がメニュー等で入力した操作に従ってアバターを制御してもよい。アバター制御部13は、動画合成装置1の移動に基づきアバターの姿勢および位置を制御してもよい。例えば、配信者が風景を撮影しながら前方に移動しているときは、アバターを前方に向けて、アバターを歩かせる。
【0029】
合成部14は、実空間座標系にアバターを配置し、アウトカメラ17で撮影した映像にアバターを合成し、AR動画を生成する。AR動画は、表示部19で表示されるとともに、通信制御部20から動画配信サーバ3へ送信される。合成部14は、AR動画を記憶部21に蓄積してもよい。なお、アバターのレンダリングに必要なデータは、アバター管理サーバ5から受信し、記憶部21に記憶しておく。事前に記憶部21に記憶されたアバターのデータを用いてもよい。
【0030】
位置検出部15は、実空間座標系における動画合成装置1自身の位置および向き(アウトカメラ17の位置および向きでもある)を検出する。合成部14は、位置検出部15の検出した位置および向きに基づいてアバターをレンダリングする。
【0031】
インカメラ16は、配信者(動画合成装置1の操作者でもある)を撮影する。
【0032】
アウトカメラ17は、AR動画として発信したい風景および被写体を撮影する。
【0033】
入力部18は、動画合成装置1の備えるタッチパネルからの操作を受け付ける。
【0034】
表示部19は、タッチパネルにアウトカメラ17で撮影した実写映像にアバターを合成したAR動画を表示する。アバターを操作するための各種ボタンを表示してもよい。
【0035】
通信制御部20は、AR動画を動画配信サーバ3へ送信する。
【0036】
[アバターの初期配置]
図5を参照し、アバターの初期配置処理の一例について説明する。
【0037】
図5に示す処理は、配信者がAR動画を生成する前に、実空間座標系におけるアバターの位置を決定する際に実行される。
【0038】
配信者は、動画合成装置1を起動し、アウトカメラ17でアバターを配置する場所の動画を撮影し、アバターを配置する場所の3次元空間情報を取得する(ステップS11)。具体的には、アプリケーションを起動してスマートフォンを動画合成装置1として動作させ、アウトカメラ17でアバターを配置する平らな場所を撮影する。配信者は、動画合成装置1を少し動かしながら配置場所を撮影する。動画合成装置1の動きおよび撮影した動画から検出できる特徴点の動きから3次元空間情報を取得し、アバターの配置を許可するアバター配置可能領域を検出する。ここでは、平坦な「床」をアバター配置可能領域として検出する。
【0039】
空間測定部11が3次元空間情報を取得し、床を検出すると、表示部19は、アウトカメラ17で撮影した映像に床を示す図形を重畳して表示する(ステップS12)。例えば、
図6に示すように、アウトカメラ17で撮影した映像に床の位置を示す枠110を重畳して表示する。
【0040】
配信者が枠110内をタップすると、
図7に示すように、アバター制御部13は、タップされた位置にアバター100を配置する(ステップS13)。タップされた位置の実空間座標系における座標をアバターの立ち位置の座標とする。枠110内の別の場所をタップし直すと、新たにタップされた位置をアバターの立ち位置とする。実空間座標系におけるアバターの座標が定まると、合成部14は、アウトカメラ17で撮影した実写映像にアバターを重畳して表示する。以降は、アバターが実空間内に存在するかのように、アバターは実写映像に重畳表示される。例えば、
図7の状態からアウトカメラ17の撮影方向を上にチルトすると、
図8に示すように、アバター100の立ち位置は実空間内に固定されたままでアバター100の上半身が表示される。アウトカメラ17の撮影方向を左右にパンしたときも、アバター100の立ち位置は実空間内に固定されたままで、アバター100は、実写映像に重畳表示される。
【0041】
アバター100が表示されているときに、アバター100をドラッグしてアバター100の立ち位置を調整してもよい。例えば、
図8に示すように、アバター100が表示されているとき、配信者がアバター100をタップして指を画面に沿って左右に動かすと、アバター100の立ち位置を左右に移動させる。配信者が指を上下に動かすと、アバター100の立ち位置を奥行き方向または手前方向に移動させる。アバター100を前後左右に動かすとき、床と認識された範囲を超えないように、アバター100の移動を停止する。
【0042】
配信者が動画合成装置1を振ったときに、初期配置部12はアバターの立ち位置をランダムで決めてもよい。配信者が動画合成装置1を傾けたときに、初期配置部12はアバターの立ち位置を動画合成装置1の傾きに応じて移動してもよい。例えば、配信者が動画合成装置1を右に傾けると、アバター100を右方向に移動させ、動画合成装置1を手前に倒すと、アバター100を手前方向に移動させる。
【0043】
インカメラ16で撮影した配信者の画像に基づいてアバターの立ち位置を調整してもよい。例えば、配信者が右を向くと、アバターの立ち位置を右に移動させる。配信者が下を向くと、アバターの立ち位置を手前方向に移動させる。
【0044】
配信者がアバターの位置を決めると、初期配置部12は、配信者の操作に応じて、アバターのサイズおよび向きを決定する(ステップS14)。例えば、配信者がタッチパネルを上下フリックすると、アバターのサイズを拡大・縮小する。配信者がタッチパネルを左右フリックすると、アバターの向きを回転する。配信者がタッチパネルを2本指でタップすると、アバターのサイズおよび向きを最初の大きさおよび向きにリセットする。
【0045】
アバターの立ち位置の床に、畳、絨毯、ステージなどのオブジェクトを配置してもよい。足元のオブジェクトとして高さのある台を配置した場合は、アバターの立ち位置を台の高さ分上昇させる。
【0046】
アバターの初期の位置を中心として、所定の範囲内の床部分をアバターが自由に移動できるようにしてもよい。例えば、配信者の沈黙がしばらく続いたときに、アバターが所定の範囲内をうろうろ歩くよう制御されてもよい。
【0047】
[AR動画の生成]
配信者がアバターの初期配置を終えると、動画合成装置1は、インカメラ16による配信者の撮影を開始し、AR動画の生成を開始する。
【0048】
図9を参照し、AR動画の生成処理の一例について説明する。
【0049】
アウトカメラ17が風景を撮影すると同時に(ステップS21)、インカメラ16が配信者を撮影する(ステップS22)。マイクは動画に付随させる音声を集音する。
【0050】
位置検出部15は、動画合成装置1の位置および向きを検出する(ステップS23)。
【0051】
アバター制御部13は、インカメラ16の撮影した配信者の映像に基づき、アバターの表情と姿勢を制御する(ステップS24)。アバター制御部13の処理の詳細は後述する。
【0052】
合成部14は、アウトカメラ17で撮影した実写映像にアバターを合成してAR動画を生成する(ステップS25)。
【0053】
[アバターの制御]
図10を参照し、アバター制御部13によるアバターの表情と姿勢の制御処理の一例について説明する。
【0054】
アバター制御部13は、配信者が移動中であるか否か判定する(ステップS31)。配信者が移動中であるか否かは、位置検出部15で検出した動画合成装置1の動きに基づいて判定できる。
【0055】
配信者が移動中の場合(ステップS31のYES)、アバターが位置固定状態であるか否か判定する(ステップS32)。アバターが位置固定状態であるとは、実空間座標系におけるアバターの位置を動かさない状態である。配信者が移動してもアバターの立ち位置は動かさない。アバターが位置固定状態でないときは、実空間座標系における動画合成装置1とアバターの間を所定の距離に保ち、動画合成装置1の移動に合わせてアバターの位置を移動させる。配信者つまり動画合成装置1が移動すると、アバター制御部13は配信者の移動に合わせてアバターの位置を移動させる。アバターの移動については後述する。
【0056】
アバターの位置固定状態の解除は、
図11に示すタッチパネルに表示された位置固定ボタン130を操作することで変更できる。アバターが位置固定状態のときに、位置固定ボタン130が操作されると、アバターの位置固定を解除する。アバターが位置固定されていないときに、位置固定ボタン130が操作されると、アバターを位置固定状態とする。
【0057】
配信者が移動中でない場合(ステップS31のNO)、あるいはアバターの位置が固定されている場合(ステップS32のYES)、アバター制御部13は、表情ボタンが操作されたか否かを判定する(ステップS33)。本実施形態では、
図11に示すように、タッチパネルに表情ボタン120A,120B,120Cを表示している。表情ボタン120A,120B,120Cのそれぞれは、大笑い、泣き、怒りの表情に対応する。
【0058】
表情ボタン120A,120B,120Cが操作された場合(ステップS33のYES)、アバター制御部13は、アバターの表情を操作された表情ボタン120A,120B,120Cに応じた表情に変更する(ステップS34)。大げさな表情のアニメーションを用意しておき、表情ボタンの操作に応じてアバターにアニメーションさせることで、より明確に感情を表現することができる。アバターの表情を変更するだけでなく、アバターにジェスチャーをさせてもよい。例えば、泣くの表情ボタンが操作されたとき、手で涙を拭くジェスチャーをアバターにさせる。
【0059】
アバターの姿勢(アバターの向きを含む)を制御するためのボタンをタッチパネルに表示してもよい。例えば、アバターを振り向かせるためのボタン、アバターの顔または上半身を右または左に向けるためのボタンなどをタッチパネルに表示してもよい。これらのボタンが操作されると、アバター制御部13は、アバターの姿勢を操作されたボタンに応じた姿勢に変更する。
【0060】
メニューからアバターの表情および姿勢を制御できてもよい。例えば、タッチパネルの端をスワイプしてメニューバーを出現させて、アバターにさせたい表情や姿勢に対応する項目を選択する。
【0061】
インカメラ16で撮影したハンドサインでアバターを制御できてもよい。アバター制御部13は、ハンドサインとアバターの制御内容(表情および姿勢など)を関連つけておき、インカメラ16で撮影した動画から特定のハンドサインを検出した場合、検出したハンドサインに応じてアバターを制御する。例えば、インカメラ16で握りこぶしを撮影したときはアバターに怒りの表情をさせる。
【0062】
インカメラ16で撮影した文字または図形でアバターを制御できてもよい。アバター制御部13は、インカメラ16で撮影した動画から特定の文字または図形を検出した場合、検出した文字等に応じてアバターを制御する。例えば、紙に「笑って」と記載しておき、インカメラ16でその紙を撮影してアバターに笑った表情をさせる。
【0063】
動画合成装置1の動きでアバターを制御できてもよい。アバター制御部13は、動画合成装置1の動きとアバターの制御内容を関連つけておき、位置検出部15の検出した動画合成装置1の動きに応じてアバターを制御する。例えば、動画合成装置1が傾けられたときは、アバターにお辞儀をさせる。動画合成装置1が傾けられるとアウトカメラ17で撮影する風景が傾いてしまうので、傾きを検出する直前に撮影された動画の1フレームを背景として、静止画にお辞儀するアバターを合成してもよい。静止画の代わりに、傾きを検出する直前の数秒程度の動画を背景としてもよい。
【0064】
アバター制御部13は、配信者に取り付けたセンサからの情報に基づいてアバターを制御してもよいし、キーボードなどの外部入力装置でアバターを制御してもよい。センサおよび入力装置と動画合成装置1とは無線により通信する。
【0065】
表情ボタンが操作されない場合(ステップS33のYES)、アバター制御部13は、インカメラ16で撮影した配信者の顔をフェイストラッキングし、配信者の表情をアバターに反映する(ステップS35)。インカメラ16で撮影した配信者の表情をアバターに反映させることで、配信者の手を煩わすことなく、アバターを表情豊かに制御することができる。
【0066】
アバター制御部13は、マイクで集音した配信者の音声に基づき、アバターにしゃべる動きをさたり、表情および姿勢を変えたり、振り向かせたりしてもよい。
【0067】
配信者が移動中であって(ステップS31のYES)、アバターが位置固定状態ではない場合(ステップS32のNO)、アバター制御部13は、アバター100を配信者の進行方向に向けて(ステップS36)、アバター100の立ち位置を進行方向に移動させる(ステップS37)。具体的には、アバター制御部13は、実空間座標系における動画合成装置1の位置とアバターの立ち位置との間の距離が所定の間隔に保たれるように、アバターの位置を移動する。アバター制御部13は、配信者(動画合成装置1)が前進すると配信者から離れるようにアバターを移動し、配信者が後退すると配信者に近づくようにアバターを移動し、配信者が立ち止まるとアバターを立ち止まらせる。なお、アバターの移動とは独立して、ステップS33からステップS35の処理を行ってもよい。具体的には、ステップS37の処理の後に、ステップS33の処理を実行してもよい。
【0068】
アバター制御部13は、アバターの向きを固定してもよいし、アバターの向きをアバターの進行方向に向けてもよい。例えば、アバターの位置を固定せず、アバターの向きを固定した場合、
図11の状態で配信者が前進すると、アバター制御部13は、アバターの向きを動画合成装置1の方向に向けたまま、アバターを後退させる。アバターの位置を固定せず、アバターの向きも固定しない場合、
図11の状態で配信者が前進すると、アバター制御部13は、
図12に示すように、アバターの向きを進行方向に向けて、アバターを前進させる。
【0069】
マイクが配信者以外の人の音声を集音していた場合、アバター制御部13は、アバターをその音声の方向に向けてもよい。
【0070】
アバターの移動先が床でないとき、例えば移動先が壁のとき、アバター制御部13は、アバターを移動させずに、床の端で立ち止まらせてもよい。配信者が道を歩きながらAR動画を配信するとき、空間測定部11は、アウトカメラ17の映像から進行方向の平坦部分を検出し、アバター制御部13は、アバターを進行方向の平坦部分に移動させる。これにより、配信者が道を歩きながらAR動画を配信しているとき、アバターが道を歩いているようなAR動画を生成できる。
【0071】
アバターが位置固定状態でない場合、配信者が移動中でなくても、アウトカメラ17の撮影方向を左右にパンしたときは、アバター制御部13は、撮影方向に合わせてアバターを左右に移動させてもよい。
【0072】
以上説明したように、本実施形態によれば、アウトカメラ17で実写動画を撮影するとともに、インカメラ16で配信者を撮影し、アバター制御部13がインカメラ16で撮影した配信者の画像に基づいてアバターを制御し、合成部14が実空間座標系の所定位置にアバターを配置して実写動画にアバターを合成することにより、配信者は、眼前の風景を撮影しながら、自身の表情を反映させたアバターを合成したAR動画を生成できる。インカメラ16で撮影した配信者の顔をフェイストラッキングしてアバターに反映させることで、表情豊かなアバターを合成できる。
【0073】
本実施形態によれば、空間測定部11が撮影場所の3次元空間情報を取得してアバターの配置を許可するアバター配置可能領域を検出し、初期配置部12がアバター配置可能領域にアバターを配置して実空間座標系における前記アバターの位置を決定することにより、アバターの立ち位置を決めるためのマーカーを設置することなく、実空間にアバターを固定できる。
【0074】
本実施形態によれば、アバター制御部13が動画合成装置1の実空間座標系における位置に応じてアバターの実空間座標系における位置を移動することにより、配信者が動画合成装置1を持って歩きながら撮影すると、配信者の移動に合わせて移動するアバターを合成したAR動画を生成できる。
【0075】
なお、本実施形態では、動画合成装置1がAR動画の生成を行ったが、サーバが、動画合成装置1が、アウトカメラ17の撮影した実写動画およびインカメラ16の撮影した画像などのAR動画の生成に必要なデータを送信し、サーバまたはクラウドでAR動画を生成してもよい。
【解決手段】アウトカメラ17で実写動画を撮影するとともに、インカメラ16で配信者を撮影し、アバター制御部13がインカメラ16で撮影した配信者の画像に基づいてアバターを制御するとともに、動画合成装置1の実空間座標系における位置に応じてアバターの実空間座標系における位置を移動し、合成部14が実空間座標系の所定位置にアバターを配置して実写動画にアバターを合成する。