(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022089817
(43)【公開日】2022-06-16
(54)【発明の名称】動画用アプリケーションプログラム、動画のオブジェクト描画方法、動画配信システム、動画配信サーバ及び動画配信方法
(51)【国際特許分類】
G06T 13/40 20110101AFI20220609BHJP
H04N 7/15 20060101ALI20220609BHJP
H04N 21/431 20110101ALI20220609BHJP
H04L 67/131 20220101ALI20220609BHJP
H04L 65/401 20220101ALI20220609BHJP
【FI】
G06T13/40
H04N7/15 170
H04N21/431
H04L67/131
H04L65/401
【審査請求】未請求
【請求項の数】1
【出願形態】OL
(21)【出願番号】P 2022037710
(22)【出願日】2022-03-11
(62)【分割の表示】P 2020053114の分割
【原出願日】2020-03-24
【新規性喪失の例外の表示】新規性喪失の例外適用申請有り
(71)【出願人】
【識別番号】504437801
【氏名又は名称】グリー株式会社
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】山内 洋典
(72)【発明者】
【氏名】山本 宗学
(72)【発明者】
【氏名】倉淵 彩
(57)【要約】
【課題】複数のキャラクタが描画された動画を配信する際のコンピュータへの負荷を軽減する。
【解決手段】動画配信システム11は、ホストユーザの動きが反映される第1アバターオブジェクトと、ホストユーザに参加要請を行ったゲストユーザの動きが反映される第2アバターオブジェクトを動画の描画空間にレンダリングする第1画像処理部と、ホストユーザに参加要請を行ったゲストユーザに対応する第3アバターオブジェクトを、第1アバターオブジェクト及び第2アバターオブジェクトよりも描画の処理負荷が少ないオブジェクトデータを用いてレンダリングする第2画像処理部とを備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
コンピュータを、
第1ユーザの動きが反映される第1キャラクタオブジェクトと、前記第1ユーザに参加要請を行った第2ユーザの動きが反映される第2キャラクタオブジェクトとを動画の描画空間にレンダリングする第1画像処理部と、
前記第1ユーザに参加要請を行った第3ユーザに対応する第3キャラクタオブジェクトを、前記第1キャラクタオブジェクト及び前記第2キャラクタオブジェクトよりも描画の処理負荷が少ないオブジェクトデータを用いてレンダリングする第2画像処理部として機能させる
動画用アプリケーションプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動画用アプリケーションプログラム、動画のオブジェクト描画方法、動画配信システム、動画配信サーバ及び動画配信方法に関する。
【背景技術】
【0002】
従来から、ユーザの動きに基づくキャラクタ動画を含む動画を配信するシステムが知られている(例えば、特許文献1参照)。このシステムでは、動画処理装置が第1の声優の顔及び体の動きの検出結果を取得するとともに、第2の声優の顔及び体の動きの検出結果を取得する。さらに動画処理装置は、取得した検出結果に基づき、第1キャラクタの3次元情報及び第2キャラクタの3次元情報に基づきレンダリングを行って第1キャラクタの動画及び第2キャラクタが動画を生成し、それらの動画を合成する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、ユーザの動きをキャラクタの3次元モデルデータに適用すること、背景等とともにキャラクタをレンダリングすること等を、複数のキャラクタについて実行するとなると、動画生成装置の処理負荷は大きくなる。このため、複数のキャラクタを含む共演動画を生成する処理にかかる負荷の軽減が求められている。
【0005】
本発明は、上記実情に鑑みてなされたものであり、ユーザの動きが反映されるオブジェクトを複数含む動画を描画又は配信するコンピュータへの負荷を軽減することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決する動画用アプリケーションプログラムは、コンピュータを、第1ユーザの動きが反映される第1キャラクタオブジェクトと、前記第1ユーザに参加要請を行った第2ユーザの動きが反映される第2キャラクタオブジェクトとを動画の描画空間にレンダリングする第1画像処理部と、前記第1ユーザに参加要請を行った第3ユーザに対応する第3キャラクタオブジェクトを、前記第1キャラクタオブジェクト及び前記第2キャラクタオブジェクトよりも描画の処理負荷が少ないオブジェクトデータを用いてレンダリングする第2画像処理部として機能させる。
【0007】
上記課題を解決する動画配信システムは、第1ユーザの動きが反映される第1キャラクタオブジェクトと、前記第1ユーザに参加要請を行った第2ユーザの動きが反映される第2キャラクタオブジェクトとを動画の描画空間にレンダリングする第1画像処理部と、前記第1ユーザに参加要請を行った第3ユーザに対応する第3キャラクタオブジェクトを、前記第1キャラクタオブジェクト及び前記第2キャラクタオブジェクトよりも描画の処理負荷が少ないオブジェクトデータを用いてレンダリングする第2画像処理部とを備える。
【0008】
上記課題を解決する動画配信サーバは、第2ユーザが用いる第2ユーザ装置から、第1ユーザに対応する第1キャラクタオブジェクトが含まれる動画への参加要請を受け付ける第1受付部と、第3ユーザが用いる第3ユーザ装置から、前記動画への参加要請を受け付ける第2受付部と、前記第2ユーザ装置から、前記第2ユーザの動きが反映されたモーションデータを含むアニメーション構成データを受信する第1受信部と、前記アニメーション構成データを前記第1ユーザが用いる第1ユーザ装置及び前記第3ユーザ装置に送信する第1送信部と、前記第3ユーザ装置から、前記第1キャラクタオブジェクトよりも描画の処理負荷が少ないオブジェクトデータを描画するための簡易データを受信する第2受信部と、前記簡易データを前記第1ユーザ装置及び前記第2ユーザ装置に送信する第2送信部と、を備える。
【0009】
上記課題を解決する動画配信方法は、第2ユーザが用いる第2ユーザ装置から、第1ユーザに対応する第1キャラクタオブジェクトが含まれる動画への参加要請を受け付ける第1受付ステップと、第3ユーザが用いる第3ユーザ装置から、前記動画への参加要請を受け付ける第2受信ステップと、前記第2ユーザ装置から、前記第2ユーザの動きが反映されたモーションデータを含むアニメーション構成データを受信する第1受信ステップと、前記アニメーション構成データを前記第1ユーザが用いる第1ユーザ装置及び前記第3ユーザ装置に送信する第1送信ステップと、前記第3ユーザ装置から、前記第1キャラクタオブジェクトよりも描画の処理負荷が少ないオブジェクトデータを描画するための簡易データを受信する第2受信ステップと、前記簡易データを前記第1ユーザ装置及び前記第2ユーザ装置に送信する第2送信ステップと、を実行する。
【発明の効果】
【0010】
本発明によれば、複数のキャラクタが描画された動画を配信する際のコンピュータへの負荷を軽減することができる。
【図面の簡単な説明】
【0011】
【
図1】動画配信システムの第1実施形態を示す模式図。
【
図2】同実施形態のサーバに格納されるユーザ管理情報を示す図。
【
図3】同実施形態における現実空間でのユーザ装置とユーザとの位置関係を示す模式図。
【
図4】同実施形態における仮想空間でのアバターオブジェクトの配置を示す模式図。
【
図5】同実施形態における配信画面の一例を示す図。
【
図6】同実施形態における配信画面の一例を示す図。
【
図7】同実施形態における参加待機列の構造を示す概念図。
【
図8】同実施形態におけるゲストユーザのアバターオブジェクトの位置を示す概念図。
【
図9】同実施形態におけるコラボレーション配信の手順を示す模式図。
【
図10】同実施形態におけるコラボレーション配信の手順を示すシーケンスチャート。
【
図11】同実施形態におけるコラボレーション配信の手順を示すシーケンスチャート。
【
図12】同実施形態における配信画面の一例を示す図。
【
図13】同実施形態における配信画面の一例を示す図。
【
図14】同実施形態における配信画面の一例を示す図。
【
図15】同実施形態における配信画面の一例を示す図。
【
図16】動画配信システムの第2実施形態におけるコラボレーション配信の手順を示す模式図。
【
図17】同実施形態におけるコラボレーション配信の手順を示すシーケンスチャート。
【
図18】同実施形態におけるコラボレーション配信の手順を示すシーケンスチャート。
【発明を実施するための形態】
【0012】
(第1実施形態)
以下、動画配信システムの第1実施形態について説明する。
図1に示すように、動画配信システム11は、ユーザ装置12とサーバ13とを備える。動画配信システム11は、複数のユーザ装置12とサーバ13との間でネットワーク14を介してデータを送受信することによりユーザ装置12に動画を表示するシステムである。ユーザ装置12には、動画を視聴及び配信するための動画アプリケーションプログラムがインストールされている。以下、動画を配信するユーザを「配信ユーザ」、配信ユーザによって配信された動画を視聴するユーザを「視聴ユーザ」といい、これらを区別しない場合には単に「ユーザ」という。
【0013】
ユーザ装置12は、スマートフォン(多機能電話端末)、タブレット端末、パーソナルコンピュータ、コンソールゲーム機、ヘッドマウントディスプレイ等のウェアラブルコンピュータ、及びこれらの装置以外の動画を再生可能な情報処理装置である。
【0014】
ユーザ装置12は、コンピュータプロセッサ20、メモリ21、ストレージ22(記憶媒体)、通信インターフェース(I/F)23を備える。コンピュータプロセッサ20は、ストレージ22又はそれ以外のストレージからオペレーティングシステムやその他のプログラムをメモリ21にロードし、メモリ21から取り出した命令を実行する演算装置である。コンピュータプロセッサ20は、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、NPU(Neural network Processing Unit)等の1乃至複数の演算回路である。通信I/F23は、ネットワーク14を介して、サーバ13及び他のユーザ装置12とデータを送受信することができる。ネットワーク14は、ローカルエリアネットワーク、インターネット等、各種のネットワークを含む。通信I/F23は、ハードウェア、ソフトウェア、又はこれらの組み合わせとして実装される。
【0015】
メモリ21は、コンピュータプロセッサ20が直接的に読み出し及び書き込みが可能な主記憶装置(記録媒体)であり、半導体メモリ等から構成される。ストレージ22は、補助記憶装置(記録媒体)であり、例えば、磁気ディスク、光ディスク、半導体メモリ等の記憶媒体である。ストレージ22は、複数のストレージを組み合わせて用いることもできる。ストレージ22には、動画アプリケーションプログラム22A、アバターオブジェクトを描画するためのアバターデータ22B、オブジェクト情報22Cが格納されている。
【0016】
動画アプリケーションプログラム22Aは、ユーザの指示に応じて、ユーザ自身が動画を配信する配信モードと、他の配信ユーザが配信する動画を視聴する視聴モードとに切り替えられる。
【0017】
アバターデータ22Bは、アバターオブジェクトを描画するための3次元モデルデータである。ユーザ装置12は、動画アプリケーションプログラム22Aを起動した場合等、アバターデータ22Bをサーバ13から所定のタイミングで取得する。アバターデータ22Bは、アバターオブジェクト本体を描画するためのデータ、アバターオブジェクト本体に適用されるテクスチャデータ等を含んでいる。アバターオブジェクト本体を描画するためのデータには、ポリゴンデータ、アバターオブジェクトの動作を表現するための骨格データ(ボーン)等が含まれる。アバターデータ22Bには、複数のアバターオブジェクト本体のデータを含んでいる。テクスチャデータには、アバターオブジェクトに対して適用可能な複数のパーツデータが含まれている。例えば「目」、「眉」、「耳」、「服」等のカテゴリ毎に複数のパーツデータが準備されている。ユーザは、複数のアバターオブジェクトの中から一つのアバターオブジェクトを選択する。また、パーツデータを選択し、アバターオブジェクト本体に適用して、ユーザ独自のアバターオブジェクトを作成する。ユーザによって選択されたアバターオブジェクト本体とパーツデータとの組み合わせは、ストレージ22に記録される。
【0018】
オブジェクト情報22Cは、所定のタイミングでサーバ13からダウンロードされるデータである。オブジェクト情報22Cは、仮想空間にレンダリングされるオブジェクトであって、アバターオブジェクト以外のオブジェクトに関する情報である。アバターオブジェクト以外のオブジェクトは、視聴ユーザからアバターオブジェクト又は配信ユーザに贈られるギフトオブジェクトを含む。ギフトオブジェクトには、エフェクトオブジェクトと、装着オブジェクトと、通常オブジェクトとが含まれる。エフェクトオブジェクトは、配信動画の視聴画面全体の印象に影響を与えるオブジェクトであり、例えば紙吹雪を模したオブジェクトや、花火を模したオブジェクト等である。装着オブジェクトは、アバターオブジェクトの特定の部位と関連付けて表示画面に表示されるオブジェクトである。装着オブジェクトは、例えば、装着オブジェクトに装着されるアクセサリー(帽子、めがね等)、衣服(Tシャツなど)、コスチューム、及びこれら以外のアバターオブジェクトに装着可能なオブジェクトである。装着オブジェクトは、視聴ユーザから提供された後、配信ユーザに選択されることによってアバターオブジェクトに装着される。通常オブジェクトは、仮想空間内に物体として配置される装着オブジェクト以外のギフトオブジェクトであって、例えばぬいぐるみや花束を模したオブジェクトである。
【0019】
また、オブジェクトは、物理的挙動を行うオブジェクトであってもよい。具体的には、オブジェクトは、重力による落下、力の付与による運動等といった物理的挙動をシミュレーションするものであってもよい。物理挙動オブジェクトには、物理的挙動をシミュレーションするためのコンポーネント(プログラム)が、実行可能に関連付けられている。
【0020】
また、ユーザ装置12は、センサユニット24、スピーカ25、マイク26、操作部27、ディスプレイ28を備える。センサユニット24、スピーカ25、マイク26、操作部27及びディスプレイ28の少なくとも一つは、コンピュータプロセッサ20と同じ装置として設けられていてもよく、コンピュータプロセッサ20を備える装置に接続するかたちで設けられていてもよい。
【0021】
センサユニット24は、ユーザの表情の変化を示すフェイスモーション、及びセンサユニット24に対するユーザの身体の相対位置の変化を示すボディモーションを検出するセンサ群である。フェイスモーションは、瞬きや口の開閉等の動きを含む。例えば、センサユニット24は、ユーザに向かって赤外線を出射する出射部及びユーザの顔等に反射した赤外線を検出する赤外線カメラと、ユーザの顔を撮影するカメラ及びカメラが撮影したデータを画像処理する画像処理部との少なくとも一方を有する。センサユニット24は、例えば検出を開始したときの初期状態からの表情の変化や、相対位置の変化を検出する。又は、センサユニット24は、これ以外のセンサであってもよいし、例えば、加速度センサやジャイロセンサ等といった上記のセンサ以外のセンサをさらに組み合わせてもよい。以下、フェイスモーションの検出データ、及びボディモーションの検出データを「モーションデータ」という。
【0022】
スピーカ25は、音声データを音声に変換して出力する。マイク26は、ユーザが発話した音声を入力し、音声データに変換する。操作部27は、ディスプレイ28と一体化されたタッチパネルや、ユーザ装置12の筐体等に設けられた操作ボタン、キーボード、マウス、コントローラ等である。ディスプレイ28は、コンピュータプロセッサ20の出力指示に応じて、各種画像を出力する。
【0023】
コンピュータプロセッサ20は、ストレージ22に記憶された動画アプリケーションプログラム22Aを実行することにより、アプリケーション管理部20A、モーションデータ管理部20B、表示制御部20Cとして機能する。アプリケーション管理部20Aは、動画アプリケーションプログラムを管理する。アプリケーション管理部20Aは、操作部27を通じて入力されたユーザの要求又はサーバ13からの要求等を入力して、それらの要求の内容に応じて、モーションデータ管理部20B又は表示制御部20Cへ要求を出力する。また、アプリケーション管理部20Aは、モーションデータ管理部20B及び表示制御部20Cからの要求をサーバ13へ送信したり、サーバ13から受信した各種データをストレージ22に記録したりする。アプリケーション管理部20Aによって実現される機能の一例としては、配信中の動画の画面全体又はその一部をキャプチャして得た画像データを「写真」として保存する撮影機能がある。
【0024】
モーションデータ管理部20Bは、センサユニット24からモーションデータを取得し、表示制御部20Cに出力する。
表示制御部20Cは、配信モードにおいて、アバターデータ22Bにモーションデータを適用する。また、表示制御部20Cは、アバターオブジェクト、アバターオブジェクト以外のオブジェクトを表示する場合はそのオブジェクトを含めてレンダリングを行う。ここでいうレンダリングは、透視投影、隠面消去(ラスタ化)等が含まれる描画処理をいう。レンダリングは、これらのうち少なくとも一つの処理であってもよい。また、上記の処理に加えて、シェーディング、テクスチャマッピング等の処理を含んでいてもよい。また、表示制御部20Cは、レンダリングされた画像を用いてアニメーションを生成する。さらに、表示制御部20Cは、アニメーションと、視聴ユーザのユーザ装置12から送信された投稿メッセージ又はサーバ13から送信された通知、操作ボタン等のGUI(Graphical User Interface)パーツ等とを合成した(又は重畳した)動画データをディスプレイ28に出力する。
【0025】
また、表示制御部20Cは、マイク26から入力した音声データ及び音声及び動画データをエンコードする。アプリケーション管理部20Aは、エンコードしたデータをサーバ13に送信する。
【0026】
また、表示制御部20Cは、視聴モードにおいて、サーバ13からエンコードされた動画データ及び音声データを受信する。また、表示制御部20Cは、受信したデータをデコードし、動画データと音声データとを同期させてディスプレイ28及びスピーカ25に出力する。
【0027】
次にサーバ13について説明する。サーバ13は、動画を配信するためのサービスを提供するサービス提供者等が用いるものである。サーバ13は、コンピュータプロセッサ30と、メモリ31と、ストレージ32と、通信I/F33とを備えている。コンピュータプロセッサ30は、ユーザ装置12のコンピュータプロセッサ20と同様な構成である。コンピュータプロセッサ30は、複数の演算回路を組み合わせて構成されていてもよい。また、メモリ31、ストレージ32、通信I/F33は、ユーザ装置12と同様な構成である。サーバ13は複数の装置から構成されていてもよく、コンピュータプロセッサ30、メモリ31、ストレージ32、通信I/F33はそれらの装置に分散されて設けられていてもよい。
【0028】
ストレージ32には、配信プログラム32Aが格納されている。コンピュータプロセッサ20は、配信プログラム32Aを実行することにより、配信管理部30A、購入処理部30Bとして機能する。
【0029】
配信管理部30Aは、ユーザ装置12から受信した各種データをストレージ32に記憶するとともに、ユーザ装置12から受信した購入要求等に基づき、購入処理部30Bに要求を出力する。さらに、配信管理部30Aは、ユーザ装置12から要求されたデータをストレージ32等から取得してユーザ装置12に送信する。具体的には、配信管理部30Aは、ユーザ装置12からの要求に応じて、配信中の動画のリストを送信する。配信管理部30Aは、リストの中からリクエストされた動画の識別情報をユーザ装置12から受信すると、配信要求を、リクエストされた動画の配信ユーザが用いるユーザ装置12に対して送信する。また、配信管理部30Aは、配信中の動画に対して視聴ユーザから投稿された投稿メッセージ等を受信する。さらに配信管理部30Aは、受信した投稿メッセージを、配信ユーザのユーザ装置12及び視聴ユーザのユーザ装置12に送信する。投稿メッセージには、メッセージの内容の他、視聴ユーザの識別情報(ユーザのアカウント名等)、投稿日時等が含まれる。また、配信管理部30Aは、視聴ユーザが動画の視聴を開始したときに、例えば「ユーザAさん入室しました」の通知メッセージを配信ユーザのユーザ装置12及び視聴ユーザのユーザ装置12に送信する。ユーザ装置12は、受信した通知メッセージを投稿メッセージの表示欄に表示する。
【0030】
配信管理部30Aは、動画を視聴する視聴ユーザが用いるユーザ装置12から、視聴中の動画へのオブジェクトの表示要求を受信する。表示要求が行われるオブジェクトは仮想空間内に表示されるオブジェクトであって、視聴ユーザから、ギフトオブジェクトのほか、動画を好評価する評価オブジェクト、配信ユーザを応援するための応援オブジェクト等を含む。ギフトオブジェクトは、視聴ユーザに関連付けられた対価を支払うことによって表示要求を行うものである。表示要求を行うための対価は、複数の種類がある。例えば、視聴や動画配信等のユーザの行為により動画アプリケーション内で付与されるポイントを対価とするギフトオブジェクト(無償オブジェクト)や、動画アプリケーション外でも使用可能な通貨を対価とするギフトオブジェクト(有償オブジェクト)がある。ギフトオブジェクトは、表示要求に応じて表示がなされた場合に対価を支払うものであってもよい。配信管理部30Aは、視聴ユーザのユーザ装置12から受信したギフトオブジェクトの表示要求を、ギフトオブジェクトの識別情報とともに配信ユーザのユーザ装置12に送信する。サーバ13は、ギフトオブジェクトの表示要求がサーバ13によって受け付けられたとき、又は表示要求に対する配信ユーザによる所定の操作がなされたとき等、所定のタイミングで、「ユーザBさんが花火を贈りました」等の通知メッセージを配信ユーザのユーザ装置12及び視聴ユーザのユーザ装置12に送信する。ユーザ装置12は、受信したギフトオブジェクトに関する通知メッセージを投稿メッセージの表示欄に表示する。
【0031】
購入処理部30Bは、ユーザの操作にしたがって、オブジェクトの購入処理を行う。購入処理には、動画アプリケーションプログラム内で利用可能なコイン、ポイント、チケット等の対価(媒体)を支払って、オブジェクトを入手する購入が含まれる。また、購入処理には、オブジェクトの交換、売却、譲渡の処理を含めてもよい。また、購入処理部30Bは、対価が支払われることにより、複数のオブジェクトの中から所定数のオブジェクトが選択される抽選(ガチャ)を実行するようにしてもよい。購入処理部30Bは、購入されたオブジェクトを、ユーザによって保有されるものとしてユーザ装置12又はサーバ13に記録する。購入可能なオブジェクトの売上は、例えば配信ユーザ及びサービス提供者に分配される。
【0032】
次に、サーバ13のストレージ32に格納された各種のデータについて説明する。ストレージ32には、ユーザ管理情報32B、アバターデータ32C、オブジェクト情報32Dが格納されている。
【0033】
ユーザ管理情報32Bは、動画アプリケーションプログラムを用いるユーザに関する情報である。アバターデータ32Cは、各ユーザに対応付けられたアバターオブジェクトを描画するためのデータであって、ユーザ装置12の要求に応じて、ユーザ装置12に送信される。オブジェクト情報32Dは、ギフトオブジェクトを描画するためのデータであって、ユーザ装置12の要求に応じて、ユーザ装置12に送信される。オブジェクト情報32Dには、ポリゴンデータ等のギフトオブジェクトを描画するためのデータの他、ギフトオブジェクトの属性情報が含まれる。
【0034】
図2を参照して、ユーザ管理情報32Bについて詳述する。ユーザ管理情報32Bは、ユーザ毎に記憶されている。ユーザ管理情報32Bは、ユーザの識別情報(ユーザIDやパスワード)、コイン、ポイント等を含む。コインは、ユーザによって購入されたものである。ポイントは、配信や視聴を行ったとき、イベントに参加したとき、又はオブジェクト等を売却したとき等、所定のタイミングでユーザに付与される。
【0035】
次に
図3を参照して、ユーザ装置12を用いた動画の配信方法について説明する。なお、動画の配信及び視聴に用いられるユーザ装置12を、スマートフォンとして説明する。配信ユーザ100は、少なくとも自身の顔がセンサユニット24の検出範囲101に含まれるようにユーザ装置12と対峙して、配信アプリケーションプログラムを実行する。このとき、配信ユーザ100は、配信アプリケーションプログラムを配信モードにする。
【0036】
配信ユーザ100が用いるユーザ装置12は、センサユニット24から出力されたモーションデータをアバターデータ22Bに適用して、アニメーションを生成する。ユーザ装置12のディスプレイ28には、生成したアニメーション及びGUIパーツ等を含む動画が表示される。仮想空間の仮想カメラの角度は、ユーザの操作に基づき変更することができる。アバターオブジェクトの位置は、配信ユーザ100とセンサユニット24との相対距離Lに応じて変化する。相対距離Lの変化は、
図4中、x軸正方向、x軸負方向、z軸正方向及びz軸負方向の距離の変化として検出される。
【0037】
視聴ユーザ102のディスプレイ28には、配信ユーザ100のユーザ装置12から送信されたデータに基づく動画が表示される。視聴ユーザ102は、動画に対してギフトオブジェクトを贈るための操作等を行い、ユーザ装置12は、ギフトオブジェクトの表示要求をサーバ13に送信する。サーバ13は、ユーザ装置12から受信したギフトオブジェクトの表示要求を、配信ユーザ100のユーザ装置12に送信する。配信ユーザ100のユーザ装置12は、表示要求に基づいて、ギフトオブジェクトをレンダリングしたアニメーションをサーバ13に送信する。
【0038】
(動作)
次に、コラボレーション配信機能(共演機能)について説明する。視聴ユーザ102は、配信中の動画に自身に対応するアバターオブジェクトを表示させるコラボレーション配信に参加することができる。コラボレーション配信に参加するにあたり、視聴ユーザ102が用いるユーザ装置12は、サーバ13を介して、コラボレーション配信を許可する設定で配信をしている配信ユーザ100が用いるユーザ装置12に参加要請を送信する。配信ユーザ100が参加要請を承認すると、配信ユーザ100がホストユーザ103(
図3参照)、参加要請を行った視聴ユーザ102がゲストユーザ104(
図3参照)となり、ホストユーザ103に対応するアバターオブジェクトとゲストユーザ104に対応するアバターオブジェクトとが動画に表示される。なお、コラボレーション配信を許可する設定をしていない配信ユーザ100が配信する動画には、参加要請を行うことができない。
【0039】
図4を参照して、ホストユーザ103に対応するアバターオブジェクト及びゲストユーザ104に対応するアバターオブジェクトのレンダリング方法について説明する。ホストユーザ103に対応するアバターオブジェクト110及びゲストユーザ104のアバターオブジェクト111は、予め決められた初期位置に配置される。例えば、アバターオブジェクト110は、仮想カメラ118からみて左側の位置に配置され、アバターオブジェクト111は、仮想カメラ118からみて右側の位置に配置される。これにより、ディスプレイ28に表示される画面上でも、アバターオブジェクト110は画面の左側、アバターオブジェクト111の右側にそれぞれ表示される。
【0040】
アバターオブジェクト110には、その正面から法線方向に延びる正面方向112、高さ方向113、及び幅方向114からなる座標軸が設定されている。同様に、アバターオブジェクト111にも、正面方向115、高さ方向116、及び幅方向117からなる座標軸が設定されている。アバターオブジェクト110,111は立ち姿勢で描画されている。また、アバターオブジェクト110,111は、正面方向112,115、及び幅方向114,117に変位可能である。但し、仮想空間内でアバターオブジェクト110,111が変位可能な可動範囲は限られており、ホストユーザのアバターオブジェクト110は仮想カメラ118からみて左側の領域、ゲストユーザのアバターオブジェクト111は仮想カメラ118からみて右側の領域である。アバターオブジェクト110,111の位置が入れ替わることはできない。
【0041】
コラボレーション配信においては、共演相手と同じポーズをとったり、「相合傘」等のコラボレーション配信向けのギフトオブジェクトと合わせて記念写真を撮影したいという視聴ユーザ又は配信ユーザのニーズがある。また、共演相手に対する親近感を表現したり、撮影機能を利用して記念写真としての画像データを取得したりする場合等に、アバターオブジェクト110,111を互いに接近させることができれば多彩な表現が可能となり理想的である。しかし、ユーザの動作に応じて仮想空間内のアバターオブジェクトを隣のアバターオブジェクトに近付けることは、現実世界において近隣に存在する人物に近づく場合のように容易にはできない。
【0042】
例えば、アバターオブジェクト110,111を、各々の正面方向112,115が平行になるようにレンダリングした場合は、一方のユーザが、自身のアバターオブジェクトを他方のユーザのアバターオブジェクトに近付けることは難しい。その理由の一つは、センサユニット24は正面に存在する物体の動きに対して最も精度がよく、正面から側方へ離れるに従い精度が低下してしまうためである。このため、ユーザが、自身の身体を傾ける等の幅方向(
図3中z軸正方向及びz軸負方向)に沿った動作を行っても、センサユニット24の検出結果に正確に反映されないことがある。その場合、アバターオブジェクト110,111がユーザの意図する通りに動作しない。また、センサユニット24の精度に関わらず、ユーザが、頭部及び頭部以外の身体を同時に動かす等、複雑な動作を行うと、アバターオブジェクト110,111がユーザの意図する通りに動作しない場合がある。
【0043】
本実施形態では、アバターオブジェクト110,111は、それらの正面方向112,115が、隣り合うアバターオブジェクト110,111側に傾くようにレンダリングされる。換言すると、アバターオブジェクト110,111は、それらの正面方向112,115に沿ったベクトルが仮想カメラ118の位置に近づくに伴い接近するようにレンダリングされる。より具体的には、仮想カメラ118の正面方向XCと平行な方向とアバターオブジェクト110,111の正面方向112,115とがなす角度のうち、小さい角度θの大きさは、0°超90°未満である。角度θは、5°以上45°以下が好ましく、10°以上30°未満がより好ましい。
【0044】
現実空間においてホストユーザ103及びゲストユーザ104が、ユーザ装置12の正面にいる状態を維持したままユーザ装置12に対して
図3中x軸正方向に移動すると、仮想空間内のアバターオブジェクト110,111は正面方向112,115に沿って移動する。アバターオブジェクト110,111の正面方向112,115は、隣のアバターオブジェクト側に傾いているため、アバターオブジェクト110,111は移動に伴い互いに接近する。つまり、ホストユーザ103及びゲストユーザ104は、ユーザ装置12の正面に位置した状態を維持したままユーザ装置12との間の相対距離Lを短くすればよいため、アバターオブジェクト110,111同士を接近させるための動作が行いやすく、アバターオブジェクト110,111にも意図通りの動作を行わせることが可能となる。逆に、共演相手に対して遠ざかりたい場合には、そのユーザはユーザ装置12から遠ざかればよい。これにより、アバターオブジェクト110,111を近付けた状態から元の状態に戻ることができる。また、共演相手に対して「驚く」、「興ざめする(引く)」等の感情を表現することも可能となる。よって、共演相手に対する接近する動作や離れる動作を簡単に行うことができるので、動画における表現方法を多彩にすることができる。
【0045】
なお、
図4では、説明の便宜上、アバターオブジェクト110,111の画面奥行方向(X軸負方向)の位置を同一としたが、それらの奥行方向の位置は異なっていてもよい。例えば、アバターオブジェクト110が、アバターオブジェクト111よりも仮想カメラ118からみて手前に位置してもよい。このアバターオブジェクト110,111の前後関係は、常に維持されるようにしてもよい。これにより、アバターオブジェクト110,111が接近することで、画面上で腕などの身体の一部が重なって見える場合でも、アバターオブジェクト110の身体の一部を常に手前に描画することで、一方のアバターオブジェクト110の身体の一部が、他方のアバターオブジェクト111の身体の一部を通過する等の違和感のある表現を抑制することができる。
【0046】
また、アバターオブジェクト110,111のZ軸に沿った相対距離について許容される下限値を予め設定してもよい。そして、アバターオブジェクト110,111の相対距離が下限値に到達した後に、ユーザがさらにユーザ装置12に近づいたとしてもアバターオブジェクト110,111は近付かないようにしてもよい。
【0047】
図5は、初期状態のコラボレーション配信画面130を示す。コラボレーション配信画面130では、ホストユーザ103のアバターオブジェクト110と、ゲストユーザ104のアバターオブジェクト111とは、正面を向きつつ互いの方向に(内側に)体を傾けた状態で描画されている。
【0048】
図6は、ホストユーザ103及びゲストユーザ104の少なくとも一方が、ユーザ装置12の正面の位置を維持したままユーザ装置12に接近したときのコラボレーション配信画面131である。アバターオブジェクト110,111は接近した状態で描画されている。例えばホストユーザ103及びゲストユーザ104がユーザ装置12に近づくと、アバターオブジェクト110,111は仮想カメラ118に近づく。このとき、
図6に示すように、アバターオブジェクト110,111は大きく描画されてもよいし、アバターオブジェクト110,111の大きさを変更しなくてもよい。
【0049】
次に、三人以上のアバターオブジェクトを動画画面に表示するコラボレーション配信機能について説明する。三人以上のアバターオブジェクトが表示されるコラボレーション配信は、複数のユーザ装置12の各々から参加要請がサーバ13を介して送信され、配信ユーザが用いるユーザ装置12によりそれらの参加要請が承認された場合に開始される。参加要請が承認された視聴ユーザのアバターオブジェクトは、参加待機列に追加される。
【0050】
図7に示すように、サーバ13は、参加待機列135に、参加要請が承認されたアバターオブジェクト(共演アバター)の識別情報136,137を順に追加する。新たな参加要請が承認された場合には、参加待機列135の後尾に新たなアバターオブジェクトの識別情報138を追加する。また、サーバ13は、所定のタイミングで、先頭の識別情報136に対応するアバターオブジェクトのレンダリングをユーザ装置12に実行させ、参加待機列135で待機中のアバターオブジェクトの順番を繰り上げる。
【0051】
図8は、ホストユーザのアバターオブジェクト110と、ゲストユーザのアバターオブジェクト111,140,141の画面上での表示位置を模式的に示している。
図5及び
図6と同様に、第1ゲストユーザのアバターオブジェクト111は、ホストユーザのアバターオブジェクト110の右側の第1表示位置145Aに表示される。第1表示位置145Aに表示されるアバターオブジェクト110は、3次元モデルデータを用いて描画される。また、第1表示位置145Aに表示されるアバターオブジェクト110は、第1ゲストユーザが用いるユーザ装置12から送信されたモーションデータが反映される。つまり、第1ゲストユーザの身体の動きに合わせて、アバターオブジェクト111が動作する。
【0052】
第1ゲストユーザの次に参加要請が承認された第2ゲストユーザのアバターオブジェクト140は、アバターオブジェクト110,111の後方のうち左側の第2表示位置145Bに表示される。第2ゲストユーザの次に参加要請が承認された第3ゲストユーザのアバターオブジェクト141は、後方右側の第3表示位置145Cに表示される。
【0053】
第2表示位置145B及び第3表示位置145Cに表示されるアバターオブジェクト140,141は、第1表示位置145Aに表示されるアバターオブジェクト111に比べて描画の処理負荷が少ない画像が用いられる。以下、ホストユーザのアバターオブジェクト110や第1表示位置145Aに表示されるアバターオブジェクト111を描画するために用いられるモデルデータを第1描画データといい、第2表示位置145B及び第3表示位置145Cに表示されるアバターオブジェクト140,141を描画するために用いられるモデルデータを第2描画データという。
【0054】
第2描画データには、例えば、アバターオブジェクト140,141の画像をキャプチャした2次元データが用いられる。2次元のデータは、ホストユーザのユーザ装置12で作成される。ホストユーザのユーザ装置12は、ゲストユーザのアバターオブジェクトの識別情報に基づいてアバターデータ22Bを用いて3次元のアバターオブジェクトのデータを作成するとともに、そのデータを2次元化することによって2次元のデータを作成する。なお、2次元のデータは、アバターオブジェクト140,141に対応するゲストユーザが用いるユーザ装置12から送信されたものであってもよく、視聴ユーザのユーザ装置12がアバターデータ22Bを用いて生成したものであってもよい。また、第2描画データは、画面に表示する際の処理負荷が3次元のアバターオブジェクトよりも少なくなるデータであればよく、ポリゴン数を低減させた3次元モデルデータ、又は2次元のポリゴンデータが用いられてもよい。
【0055】
第1表示位置145Aに表示されたアバターオブジェクト111は、制限条件が満たされると、第1表示位置145Aから移動する。このとき、アバターオブジェクト111は、上方に移動することによって退出するが、下方、右側、左側、画面奥方向、画面手前方向に移動して画面から退出させてもよい。又は移動中のアバターオブジェクト111を表示することなく、消去してもよい。制限条件は、アバターオブジェクト111が第1表示位置145Aに表示されてから移動するまでの時間が予め設定された一定時間に到達することである。又は、制限条件は、それ以外であってもよい。例えば、ホストユーザがユーザ装置12で画面上の操作オブジェクト等を操作すること、ゲストユーザがユーザ装置12で画面上の操作オブジェクト等を操作すること、ホストユーザ及びゲストユーザが対戦するゲームでホストユーザが勝利又は敗北すること等である。
【0056】
アバターオブジェクト111が第1表示位置145Aから上方向に移動して画面から退出すると、参加待機列135で待機中のアバターオブジェクトの順番が繰り上がり、第2表示位置145Bに表示されたアバターオブジェクト140が、第1表示位置145Aに表示される。また、第3表示位置145Cに表示されたアバターオブジェクト141が、第2表示位置145Bに表示される。
【0057】
図9は、コラボレーション配信の概念図である。ホストユーザも含めて三人以上のアバターオブジェクトが表示されるコラボレーション配信が開始されると、コラボレーション配信の参加者のユーザ装置12は、モーションデータや音声データ等の各種データを送受信し合い、受信したデータに基づきレンダリングを行う。具体的には、配信ユーザが用いるユーザ装置である配信ユーザ装置12Aは、モーションデータ、カメラデータ、ギフトオブジェクトデータ、及び音声データ等を含むアニメーション構成データ(以下、単に構成データ120という)をサーバ13に送信する。カメラデータは、配信ユーザ装置12Aで設定された仮想カメラ118に関するデータである。カメラデータは、仮想空間内のオブジェクトを撮影する仮想カメラ118の撮影手法に関する情報であり、仮想カメラの位置や向きを含む。
【0058】
ギフトオブジェクトデータは、レンダリングを行うギフトオブジェクトの識別情報、ギフトオブジェクトの位置等である。音声データは、配信ユーザ装置12Aがマイク26を介して入力した音声のデータである。また、構成データ120にアバターオブジェクトの識別情報を含めてもよい。
【0059】
また、配信ユーザ装置12Aは、第1ゲストユーザが用いるユーザ装置である配信ユーザ装置12Bから、配信ユーザ装置12Bが送信した構成データ120を受信する。
第1ゲストユーザが用いるユーザ装置である配信ユーザ装置12Bは、構成データ120をサーバ13に送信する。また、第2ゲストユーザが用いるユーザ装置である配信ユーザ装置12Cは、モーションデータ、カメラデータ、ギフトオブジェクトデータを送信しない。配信ユーザ装置12Cは、音声データを含む簡易データ121をサーバ13に送信する。
【0060】
配信ユーザ装置12A~12Cは、サーバ13を介して構成データ120及び簡易データ121を受信すると、それらに基づいてレンダリングを行い、アニメーションを生成する。つまり、配信ユーザ装置12Aから送信された構成データ120に基づき、ホストユーザに対応するアバターオブジェクトを生成し、そのアバターオブジェクトにモーションデータを適用し、アバターオブジェクトをホストユーザの動きに合わせて動作させたアニメーションを生成する。また、配信ユーザ装置12Bから送信された構成データ120に基づき、第1ゲストユーザに対応するアバターオブジェクトを生成し、そのアバターオブジェクトにモーションデータを適用し、アバターオブジェクトを第1ゲストユーザの動きに合わせて動作させたアニメーションを生成する。なお、配信ユーザ装置12A,12Bは、ホストユーザに対応するアバターオブジェクトの本体の識別データ及びテクスチャデータの識別情報を適宜サーバ13に送信している。配信ユーザ装置12A~12Cは、それらの情報をサーバ13から適宜受信して、ホストユーザ及び第1ゲストユーザに対応するアバターオブジェクトを作成し、アバターオブジェクトにモーションデータを適用する。
【0061】
また、配信ユーザ装置12Aは、生成した動画をエンコードして、サーバ13に送信する。サーバ13は、動画を視聴中の視聴ユーザのユーザ装置である視聴ユーザ装置12Dにエンコードした動画データ122を送信する。
【0062】
(動作)
次に、
図10及び
図11を参照して、ホストユーザと複数のゲストユーザとが共演する場合の処理手順について説明する。
【0063】
図10に示すように、まず、ホストユーザが用いる配信ユーザ装置12Aは、コラボレーション配信(コラボ配信)を許可する動画(コラボ許可動画)の配信を開始する(ステップS10)。第1ゲストユーザが用いる配信ユーザ装置12B及び第2ゲストユーザが用いる配信ユーザ装置12Cは、ユーザの操作に基づきサーバ13に参加要請を送信する(ステップS11,ステップS12)。なお、参加申請は、ユーザの識別情報とともに送信される。また、ここでは、参加要請をアバターオブジェクトの識別情報とともに送信する場合について説明する。
【0064】
サーバ13は、受信した参加要請に基づき、コラボレーション配信に参加するアバターオブジェクトの識別情報を参加待機列に追加する(ステップS13)。参加待機列に含まれているアバターオブジェクトは、仮想空間にレンダリングされていないアバターオブジェクトである。参加待機列に追加されたアバターオブジェクトが、仮想空間にレンダリングされるとそのアバターの識別情報が待機列から除外される。
【0065】
サーバ13は、参加申請の通知を、参加申請を行った視聴ユーザの識別情報とともに配信ユーザ装置12Aに送信する(ステップS14)。配信ユーザ装置12Aは、参加要請をサーバ13から受信すると、参加要請の承認画面をディスプレイ28に表示して、参加要請の承認及び否認(又は待機)の選択を求める。参加要請が承認されると、配信ユーザ装置12Aは、参加要請を承認する(ステップS15)。このとき、配信ユーザ装置12Aは、承認した視聴ユーザの識別情報をサーバ13に送信する。
【0066】
サーバ13は、参加要請が承認された視聴ユーザを追加した参加者リストをゲストユーザの配信ユーザ装置12B,12Cに加え、ホストユーザの配信ユーザ装置12Aに送信する(ステップS16)。
【0067】
第2ゲストユーザの配信ユーザ装置12Cは、参加者リストを参照して参加要請が承認されたか否かを判定する。配信ユーザ装置12Cは、第2ゲストユーザの参加要請が承認されたと判定すると、簡易データ121をサーバ13に送信する(ステップS17)。このとき、第2ゲストユーザのアバターオブジェクトの識別情報を簡易データに含めて、又は簡易データとは別に送信してもよい。
【0068】
サーバ13は、第2ゲストユーザの配信ユーザ装置12Cから受信した簡易データ121を、ホストユーザの配信ユーザ装置12A、第1ゲストユーザの配信ユーザ装置12Bに送信する(ステップS18)。
【0069】
また、ホストユーザの配信ユーザ装置12Aは、構成データ120をサーバ13に送信する(ステップS19)。サーバ13は、配信ユーザ装置12Aから受信した構成データ120を、ゲストユーザの配信ユーザ装置12B,12Cに送信する(ステップS20)。
【0070】
また、第1ゲストユーザの配信ユーザ装置12Bは、構成データ120をサーバ13に送信する(ステップS21)。サーバ13は、配信ユーザ装置12Aから受信した構成データ120を、ホストユーザの配信ユーザ装置12A及び第2ゲストユーザの配信ユーザ装置12Cに送信する(ステップS22)。
【0071】
ホストユーザの配信ユーザ装置12Aは、自身の構成データ120、配信ユーザ装置12Bから受信した構成データ120、及び配信ユーザ装置12Cから受信した簡易データ121に基づき、アニメーションを表示し、エンコードする(ステップS23)。そして、エンコードした動画データを視聴ユーザ装置12Dに送信する(ステップS27)。
【0072】
また、配信ユーザ装置12Bは、自身の構成データ120、配信ユーザ装置12Aから受信した構成データ120、及び配信ユーザ装置12Cから受信した簡易データ121に基づき、アニメーションを表示する(ステップS25)。さらに、配信ユーザ装置12Cは、自身の簡易データ121、配信ユーザ装置12A,12Bから受信した構成データ120に基づき、アニメーションを表示する(ステップS26)。
【0073】
なお、配信ユーザ装置12Cが簡易データ121を送信するタイミング、及び配信ユーザ装置12A,12Bが構成データ120を送信するタイミングの順番は特に限定されない。また、ステップS16において、サーバ13は参加者リストをホストユーザの配信ユーザ装置12Aに送信するようにしたが、これを省略してもよい。
【0074】
次に
図11を参照して、ゲストユーザの順番が入れ替わる場合について説明する。
第1ゲストユーザの配信ユーザ装置12Bは、制限条件が満たされると退出申請を送信する(ステップS30)。退出申請は、アバターオブジェクトの識別情報とともに送信される。サーバ13は、退出申請を受信すると、アバターオブジェクトの識別情報に基づき、参加待機列を更新する(ステップS31)。つまり、参加待機列で待機中のアバターオブジェクトの順番を繰り上げる。
【0075】
また、サーバ13は、退出申請を送信した第1ゲストユーザに対応するアバターオブジェクトの識別情報を参加者リストから除外して更新し、更新した参加者リストを配信ユーザ装置12A~12Cに送信する(ステップS32,ステップS33)。ホストユーザの配信ユーザ装置12Aでは、参加者リストから除外されたアバターオブジェクトを画面から退出させる退出アニメーションをディスプレイ28に表示し、退出アニメーションを音声データ等とともにエンコードする(ステップS36)。そして、エンコードしたデータを視聴ユーザ装置12Dに送信する(ステップS38)。視聴ユーザ装置12Dは、エンコードされたデータを受信し、退出アニメーションをディスプレイ28に表示する(ステップS39)。なお、コラボレーション配信から退出すると、第1ゲストユーザのユーザ装置12は、視聴ユーザ装置12Dとなる。
【0076】
また、第1ゲストユーザの配信ユーザ装置12B及び第2ゲストユーザの配信ユーザ装置12Cは、受信した参加者リストに基づき、第1ゲストユーザに対応するアバターオブジェクトを画面から退出させる退出アニメーションをディスプレイ28に表示する(ステップS34、S35)。ここでは、参加者リストには、第2ゲストユーザのみしか含まれていない場合について説明する。
【0077】
第1ゲストユーザのアバターオブジェクトが退出したことにより、第2ゲストユーザの順番が繰り上がる。第2ゲストユーザの配信ユーザ装置12Cは、繰り上げ後のアニメーションをディスプレイ28に表示する(ステップS40)。繰り上げ後のアニメーションでは、第1表示位置145Aに、第2ゲストユーザに対応するアバターオブジェクトが表示され、第1ゲストユーザに対応するアバターオブジェクトが消去されている。また、第1ゲストユーザは、アバターオブジェクトを退出させることにより、ゲストユーザではなくなり、再び参加要請を行わない限りは視聴ユーザとなる(
図11では、便宜上、ステップS34、ステップS35以降も第1ゲストユーザの配信ユーザ装置12Bとして示す)。
【0078】
また、配信ユーザ装置12Cは、構成データ120をサーバ13に送信する(ステップS41)。サーバ13は、配信ユーザ装置12Cから受信した構成データ120を、ホストユーザの配信ユーザ装置12Aに送信する(ステップS42)。
【0079】
配信ユーザ装置12Aは、繰り上げ後の繰り上げ後のアニメーションをディスプレイ28に表示し、繰り上げ後のアニメーションをエンコードする(ステップS43)。また、配信ユーザ装置12Aは、エンコードした動画データを視聴ユーザ装置12Dに送信する(ステップS44)。
【0080】
第2ゲストユーザの配信ユーザ装置12Cは、自身の構成データ120、ホストユーザの配信ユーザ装置12Aから送信された構成データ120(
図11では図示略)に基づいて、繰り上げ後のアニメーションを表示する(ステップS45)。また、アバターオブジェクトが退出することで視聴ユーザとなった第1ゲストユーザのユーザ装置12(配信ユーザ装置12B)及び視聴ユーザ装置12Dでは、配信ユーザ装置12Aから送信された動画データに基づき、繰り上げ後のアニメーションを表示する(ステップS46)。なお、コラボレーション配信から退出したとき、退出したユーザのユーザ装置12には、動画の視聴画面ではなく、ホーム画面を表示してもよい。つまり、ユーザ装置12は、コラボレーション配信に参加した動画の配信ルームをいったん退出する。ホーム画面では、配信中の動画のリスト等が表示され、リスト内の動画を選択することにより動画の視聴を開始することができる。
【0081】
なお、
図11の例では、参加者リストに第2ユーザの次のユーザが参加しない場合について説明したが、参加者リストに、コラボレーション配信に参加した第3ゲストユーザに関する識別情報が含まれる場合には、ステップS42において第3ゲストユーザに対応するユーザ装置12にも構成データ120を送信する。また、第3ゲストユーザのユーザ装置12は、順番に応じて、構成データ120又は簡易データ121をサーバ13に送信する。
【0082】
次に、
図12~
図15を参照して、ユーザ装置12に表示される画面について説明する。
図12は、配信ユーザが用いるユーザ装置12に表示される配信画面150である。視聴ユーザがユーザ装置12を用いて参加要請を送信するための操作を行うと、配信画面150には承認要請ウィンドウ152が表示される。承認要請ウィンドウ152には、承認を待機(否認)する待機ボタン154、及び承認を行う承認ボタン153が表示されている。承認ボタン153が選択されると、ユーザ装置12は、参加リストに、参加要請を行ったユーザに対応するアバターオブジェクトの識別情報を追加する。
【0083】
図13は、配信ユーザのユーザ装置12に表示される配信画面160である。なお、視聴ユーザが用いるユーザ装置12にも同様の画面が表示される。配信画面160は、3人のゲストユーザのアバターオブジェクト111,140,141が表示されている。アバターオブジェクト110,111は、仮想空間内で3次元モデルとして描画されている。また、アバターオブジェクト110,111には、ホストユーザ及びゲストユーザのモーションデータが反映されている。アバターオブジェクト140,141は、2次元データであって、アバターオブジェクト140,141には、ゲストユーザのモーションデータが反映されていない。
【0084】
図14に示すように、アバターオブジェクト111に対する制限条件が成立すると、アバターオブジェクト111が画面上方へ移動する退出アニメーションが表示される。これによって、第1表示位置145Aが空いた状態となる。
【0085】
次いで
図15に示すように、繰り上げ後のアニメーションが表示される。つまり、第2表示位置145Bに表示されたアバターオブジェクト140が、消去、又は画面上方に向かって移動して画面から退出する。そして、第1表示位置145Aに、第2表示位置145Bに表示されていたアバターオブジェクト140が、画面上方から下方に向かって移動するように表示される。また、第3表示位置145Cに表示されていたアバターオブジェクト141は、第2表示位置145Bに配置されている。参加待機列135に待機中のアバターオブジェクトが無い場合には、第3表示位置145Cは空いた状態となる。なお、繰り上げ後のアニメーションでの演出は、アバターオブジェクトが画面上方から下方に向かって移動すること以外の演出であってもよい。第1表示位置145Aに位置するアバターオブジェクトは、3次元データのオブジェクトのアニメーションとして表示されるとともに、アバターオブジェクトにはモーションデータが適用される。
【0086】
このように画面の奥行方向の後方に2次元モデルで描画されていたアバターオブジェクトが3次元モデルとして新たに描画されるとき、画面内で急に表示態様が変わると違和感がある。このため、第2表示位置145Bに表示されていた2次元モデルに基づくアバターオブジェクトを画面外に退出させ、3次元モデルに基づくアバターオブジェクトとして画面内に戻して描画する。これにより、視聴ユーザ及び配信ユーザに違和感を与えることを抑制することができる。
【0087】
次に、本実施形態の効果について説明する。
(1)コラボレーション配信に参加するユーザ装置12は、ホストユーザの動きが反映されるアバターオブジェクトと、ホストユーザに参加要請を行った第1ゲストユーザの動きが反映されるアバターオブジェクトを動画の描画空間にレンダリングする。また、ユーザ装置12は、ホストユーザに参加要請を行った第2ゲストユーザに対応するアバターオブジェクトを、ホストユーザに対応するアバターオブジェクト及び第1ゲストユーザに対応するアバターオブジェクトよりも描画の処理負荷が少ないオブジェクトデータを用いてレンダリングする。このため、第2ゲストユーザに対応するアバターオブジェクトのレンダリング処理にかかる負荷が軽減されるので、3つ以上のアバターオブジェクトを描画する場合であっても、描画処理にかかる負荷を軽減することができる。また、第2ゲストユーザのユーザ装置12からは、モーションデータを含まない簡易データ121が送信されるので、ユーザ装置12間で送受信されるデータ量を低減することができる。
【0088】
(2)第2ゲストユーザに対応するアバターオブジェクトは、静止状態で動画に表示される。このため、第2ゲストユーザに対応するアバターオブジェクトのレンダリング処理にかかる負荷が軽減される。
【0089】
(3)ホストユーザに対応するアバターオブジェクト及び第1ゲストユーザに対応するアバターオブジェクトと、第2ゲストユーザに対応するアバターオブジェクトとは異なる領域に配置される。このため、第2ゲストユーザに対応するアバターオブジェクトが、ホストユーザに対応するアバターオブジェクト及び第1ゲストユーザに対応するアバターオブジェクトとは異なる表示態様で描画されていることが、視聴ユーザ及びゲストユーザに認識されやすくなる。これにより、第2ゲストユーザに対応するアバターオブジェクトがホストユーザに対応するアバターオブジェクト等と異なる表示態様となる要因が、通信障害、アプリケーションプログラムのバグ等であるとのユーザの誤解を抑制することができる。
【0090】
(4)簡易データ121で描画されていたアバターオブジェクトが3次元モデルとして新たに描画されるとき、アバターオブジェクトを画面外に退出させ、3次元モデルに基づくアバターオブジェクトとして画面内に戻して描画する。これにより、視聴ユーザ及び配信ユーザにコラボ配信の出演者の変更に伴う画面変更の違和感を与えることを抑制することができる。
【0091】
(5)ホストユーザ及びゲストユーザは、ユーザ装置12との相対距離Lを縮めることにより、ホストユーザに対応するアバターオブジェクトとゲストユーザに対応するアバターオブジェクトとを近付けることができる。このため、動画において多彩な表現が可能になる。
【0092】
(6)ホストユーザのユーザ装置12は、アニメーションを含む動画データをエンコードして、サーバ13に送信する。このため、視聴ユーザのユーザ装置12にかかるレンダリング処理の負荷を軽減することができる。
【0093】
(第2実施形態)
次に、動画配信システムの第2実施形態について説明する。なお、第1実施形態では、ホストユーザのユーザ装置12が動画データをエンコードして送信する映像配信方式であるのに対し、本実施形態では視聴者のユーザ装置側でアバターオブジェクトをレンダリングする。以下、第1実施形態と同様の部分については同一符号を付してその詳細な説明を省略する。
【0094】
図16に示すように、視聴者のユーザ装置側でアバターオブジェクトをレンダリングするクライアント側レンダリング方式では、視聴ユーザ装置12Dは、エンコードされた動画データを受信するのではなく、サーバ13から構成データ120及び簡易データ121を含むデータ123を受信して、データ123に基づいてオブジェクトのレンダリングを行う。視聴ユーザ装置12Dは、オブジェクトをレンダリングした画像を用いてアニメーションを生成し、サーバ13から受信した投稿メッセージ等を合成して、動画をディスプレイ28に表示する。
【0095】
(動作)
次に、
図17及び
図18を参照して、ホストユーザと複数のゲストユーザとが共演する場合の処理手順について説明する。
【0096】
図17に示すように、コラボ許可配信開始(ステップS10)、ゲストユーザのユーザ装置12による参加要請(ステップS11,ステップS12)、サーバ13による参加待機列への追加(ステップS13)、参加要請の通知(ステップS14)、参加リスト送信(ステップS14~ステップS16)を第1実施形態と同様に行う。参加者リストの送信(ステップS16A)では、サーバ13は、視聴ユーザ装置12Dにも参加者リストを送信する。
【0097】
また、第1実施形態と同様に、ホストユーザ及びゲストユーザからなる参加者の間での簡易データの送信(ステップS17、ステップS18)、構成データ120の送信(ステップS19~ステップS22)を行う。
【0098】
配信ユーザ装置12A~12Cは、受信した構成データ120及び簡易データ121に基づき、アニメーションを表示する(ステップS23、25、26)。また、ホストユーザの配信ユーザ装置12Aは、構成データ120及び簡易データ121をサーバ13を介して視聴ユーザ装置12Dに送信する(ステップS50)。視聴ユーザ装置12Dは、サーバ13から受信した構成データ120及び簡易データ121を含むデータ123に基づきレンダリングを行い、アニメーションを生成してディスプレイ28に表示する(ステップS51)。
【0099】
図18に示すように、退出申請(ステップS30)、参加待機列の更新(ステップS31)、参加リスト送信(ステップS32)を第1実施形態と同様に行う。ここでも参加者リストの送信(ステップS33A)では、サーバ13は、視聴ユーザ装置12Dにも参加者リストを送信する。
【0100】
また、コラボレーション配信に参加する配信ユーザ装置12A~12Cでは退出アニメーションが表示される(ステップS34~S36)。さらに、視聴ユーザ装置12Dは、受信した参加者リストに基づいて、退出アニメーションを表示する(ステップS37)。
【0101】
さらに、順番が繰り上げられた第2ゲストユーザのユーザ装置12から送信された構成データ120は、コラボレーション配信に参加する配信ユーザ装置12A~12Cに加え、視聴ユーザのユーザ装置12にも送信される(ステップS41~ステップS43)。
【0102】
そして、配信ユーザ装置12A~12C、及び視聴ユーザ装置12Dは、構成データ120及び簡易データ121に基づき、オブジェクトのレンダリングを行い、繰り上げ後のアニメーションを表示する(ステップS45,ステップS55~56)。なお、コラボレーション配信から退出したとき、退出したユーザのユーザ装置12には、動画の視聴画面ではなく、ホーム画面を表示してもよい。
【0103】
第2実施形態によれば、第1実施形態の(1)~(6)の効果に加え、以下の効果が得られる。
(7)視聴ユーザのユーザ装置12は、アニメーション構成データをサーバ13から受信して、オブジェクトをレンダリングし、アニメーションを生成する。このため、ホストユーザのユーザ装置12が、アニメーションをエンコードする必要が無いためホストユーザのユーザ装置12にかかる負荷を軽減することができる。
【0104】
上記実施形態は、以下のように変更して実施することができる。上記実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
・上記実施形態では、アバターオブジェクトは、正面方向112,115、及び幅方向114,117(
図4参照)に変位可能であるとしたが、これに代えて若しくは加えて、ユーザの顔の高さ位置の変化に基づき高さ方向113,116の位置を変更してもよい。
【0105】
・上記実施形態では、サーバ13が、仮想空間にレンダリングするアバターオブジェクトの順番を管理するようにした。これに代えて若しくは加えて、配信ユーザ装置12Aが仮想空間にレンダリングするアバターオブジェクトの順番を管理するようにしてもよい。又は、配信ユーザ装置12Aのみではなく、配信ユーザ装置12A~12Cの各々が管理するようにしてもよい。
【0106】
・上記実施形態では、サーバ13が、参加者リストを管理し、各ユーザ装置12に送信するようにした。これに代えて若しくは加えて、配信ユーザ装置12Aが管理するようにしてもよい。
【0107】
・上記実施形態では、第2表示位置及び第3表示位置に表示されるアバターオブジェクトに対応するゲストユーザのユーザ装置12は、音声データを送信するようにした。これに代えて、第2表示位置及び第3表示位置に表示されるアバターオブジェクトに対応するゲストユーザのユーザ装置12は、第2描画データを送信して、音声データを送信しなくてもよい。これによれば、サーバ13を介したユーザ装置12間の通信量をさらに低減することができる。
【0108】
・上記実施形態では、ユーザ装置12には、動画を視聴及び配信するための動画アプリケーションプログラムがインストールされているものとした。これに代えて、動画を視聴するためのアプリケーションプログラムと、動画を配信するためのアプリケーションプログラムとを別のアプリケーションプログラムとしてもよい。配信を行う場合には配信アプリケーションプログラムを用いて動画を配信する。視聴を行う場合には視聴アプリケーションプログラムを用いて動画を視聴する。ギフトオブジェクトの表示要求は、視聴アプリケーションプログラムを用いて行う。
【0109】
・上記実施形態では、ユーザ装置12がアバターオブジェクトやギフトオブジェクトのレンダリングを行うようにした。これに代えて若しくは加えて、サーバ13が、アバターオブジェクトやギフトオブジェクトのレンダリングを行ってもよい。また、サーバ13は、オブジェクトをレンダリングした画像を用いてアニメーションを生成し、ユーザ装置12に配信するようにしてもよい。
【0110】
・モーションデータ管理部20Bは、センサユニット24から、ユーザの表情の変化、頭部の動き、センサユニット24に対するユーザの相対位置を検出した検出データを取得するとしたが、このうち少なくとも一つのパラメータを取得するものであってもよい。個々の場合、センサユニット24が取得できない検出データについて、ユーザ装置12であってもよい。また、モーションデータ管理部20Bは、ユーザの表情の変化、頭部の動き及びユーザの相対位置の少なくとも一つに加えて、若しくは代えて、頭部の動作以外の動きを検出した検出データ等のその他の検出データを取得してもよい。
【0111】
・上記実施形態では、アバターオブジェクト110,111が変位可能な可動範囲は限られており、アバターオブジェクト110,111の位置が入れ替わることはできないとした。これに代えて、ホストユーザ、及びゲストユーザの動きに合わせて、アバターオブジェクト110,111の位置を入れ替え可能としてもよい。
【0112】
・上記実施形態では、第2表示位置145B及び第3表示位置145Cに表示されるアバターオブジェクトに、モーションデータを適用してもよい。この態様において、簡易データ121に、モーションデータが含められる。
【0113】
さらに、第2表示位置145B及び第3表示位置145Cに表示されるアバターオブジェクトを、3次元データに基づくアバターオブジェクトとし、そのアバターオブジェクトにモーションデータを適用してもよい。この態様においては、コラボレーション配信に参加するホストユーザ以外の全てのユーザが第1ゲストユーザとなる。第1ゲストユーザのユーザ装置12の間では、構成データ120が送受信され、自身の構成データ120と他のユーザの構成データ120とに基づき、各ユーザ装置12においてオブジェクトがレンダリングされ、動画が生成される。
【0114】
・動画に表示される仮想空間は、拡張現実(AR;Augmented Reality)の空間であってもよい。例えば、ユーザ装置12のカメラが撮影した現実世界の画像に、アバターオブジェクト及びギフトオブジェクト等を重ねて表示してもよい。この態様においては、ホストユーザのユーザ装置12のカメラが撮像した画像を背景画像とする。
【0115】
・上記実施形態では、ユーザの動作をアバターオブジェクトに適用した。しかし、動画を生成する際の処理負荷を軽減するという観点では、現実世界の複数のユーザの動画を一つの画面に合成したコラボレーション配信とすることもできる。この場合、コラボレーション配信において、一つの画面に表示されるユーザの一部が、動画として表示され、他のユーザが静止画として表示されてもよい。
【0116】
・上記実施形態では、ユーザ装置12は、スマートフォン、携帯電話機、タブレット端末、パーソナルコンピュータ、コンソールゲーム機、ヘッドマウントディスプレイ等のウェアラブルコンピュータ等の情報処理装置とした。これに代えて、ユーザ装置12は、情報処理装置の少なくとも一つと、入力装置及び出力装置から構成されるシステムであってもよい。例えば、ユーザ装置12は、コンピュータプロセッサ20等を備えるコンソールゲーム機と、これと別体に設けられたセンサユニット24、操作部27であるコントローラ、スピーカ25、ディスプレイ28等が相互にデータを送受信可能なシステムであってもよい。また、ユーザ装置12は、パーソナルコンピュータ等の情報処理装置と、これと別体に設けられたセンサユニット24、操作部27であるコントローラ、スピーカ25、ディスプレイ28であるウェアラブルディスプレイ等が相互にデータを送受信可能なシステムであってもよい。又は、動画を配信するユーザ装置12に代えて、動画配信用のスタジオに設けられたシステムであって、情報処理装置、センサユニット24、操作部27、スピーカ25、ディスプレイ28を備えたシステムを、動画を配信するシステムとして用いてもよい。
【0117】
・上記実施形態では、センサユニット24をユーザ装置12側に設けたが、センサユニット24の少なくとも一部を、配信ユーザの身体に装着したり、配信ユーザの近傍に設けたりしてもよい。例えば、センサユニット24は、赤外線等の検出光を所定間隔で出射する出射部と、配信ユーザの身体に装着され、検出光を受光して検出結果をコンピュータプロセッサ20に送信する受光部とから構成してもよい。又は、センサユニット24は、配信ユーザの身体に装着されたマーカーを検出するカメラ等から構成してもよい。
次に、上記実施形態及び別例から把握できる技術的思想について以下に追記する。
[1]
コンピュータを、
第1ユーザの動きが反映される第1キャラクタオブジェクトと、前記第1ユーザに参加要請を行った第2ユーザの動きが反映される第2キャラクタオブジェクトとを動画の描画空間にレンダリングする第1画像処理部と、
前記第1ユーザに参加要請を行った第3ユーザに対応する第3キャラクタオブジェクトを、前記第1キャラクタオブジェクト及び前記第2キャラクタオブジェクトよりも描画の処理負荷が少ないオブジェクトデータを用いてレンダリングする第2画像処理部として機能させる、動画用アプリケーションプログラム。
[2]
前記第2画像処理部は、前記第3キャラクタオブジェクトに前記第3ユーザの動きを反映せず静止状態で表示する、[1]に記載の動画用アプリケーションプログラム。
[3]
前記第2画像処理部は、前記第3キャラクタオブジェクトを、前記第1キャラクタオブジェクト及び前記第2キャラクタオブジェクトを含む領域とは異なる領域に表示する、[1]又は[2]に記載の動画用アプリケーションプログラム。
[4]
前記第1画像処理部は、前記第2キャラクタオブジェクトを第1表示位置にレンダリングし、
前記第2画像処理部は、前記第3キャラクタオブジェクトを第2表示位置にレンダリングするとともに、
前記第1画像処理部は、前記第2キャラクタオブジェクトに関する制限条件が成立したとき、前記第2キャラクタオブジェクトを前記第1表示位置から退出させ、前記第3キャラクタオブジェクトを前記第1表示位置にレンダリングする、[1]~[3]のいずれか1項に記載の動画用アプリケーションプログラム。
[5]
前記第1画像処理部は、前記第2キャラクタオブジェクトに関する制限条件が成立したとき、前記第2キャラクタオブジェクトをユーザが用いるディスプレイに表示される画面から退出させ、3次元モデルデータに基づく第2キャラクタオブジェクトを前記第1表示位置にレンダリングする、[4]に記載の動画用アプリケーションプログラム。
[6]
前記第1画像処理部は、
前記第1キャラクタオブジェクト及び前記第2キャラクタオブジェクトを、それらの正面方向に沿ったベクトルが、隣り合うキャラクタオブジェクト側に傾くようにレンダリングし、
前記第1ユーザの正面方向への移動量及び第2ユーザの正面方向への移動量に基づいて、前記第1キャラクタオブジェクト及び前記第2キャラクタオブジェクトをそれらの正面方向に沿って移動させる、[1]~[5]のいずれか1項に記載の動画用アプリケーションプログラム。
[7]
前記第2画像処理部は、前記第3キャラクタオブジェクトを、仮想カメラを基準とした奥行方向の情報を低減又は省略したデータを用いて描画する、[1]~[6]のいずれか1項に記載の動画用アプリケーションプログラム。
[8]
前記コンピュータを、
前記第1ユーザの動きを示すモーションデータ、前記第2ユーザの動きを示すモーションデータ、前記第3キャラクタオブジェクトを描画するための簡易データに基づきアニメーションを生成する第1アニメーション生成部と、
前記アニメーションをエンコードして、エンコードしたデータを、動画を配信するサーバに送信するエンコード部としてさらに機能させる、[1]~[7]のいずれか1項に記載の動画用アプリケーションプログラム。
[9]
前記コンピュータを、
動画を配信するサーバから、前記第1ユーザの動きを示すモーションデータ、前記第2ユーザの動きを示すモーションデータ、前記第3キャラクタオブジェクトを描画するための簡易データを含むアニメーション構成データを受信する構成データ受信部と、
前記アニメーション構成データに基づいて、前記第1キャラクタオブジェクト、前記第2キャラクタオブジェクト及び前記第3キャラクタオブジェクトを含むアニメーションを生成する第2アニメーション生成部として機能させる、[1]~[8]のいずれか1項に記載の動画用アプリケーションプログラム。
[10]
コンピュータが、
第1ユーザの動きが反映される第1キャラクタオブジェクトと、前記第1ユーザに参加要請を行った第2ユーザの動きが反映される第2キャラクタオブジェクトを動画の描画空間にレンダリングする第1画像処理ステップと、
前記第1ユーザに参加要請を行った第3ユーザに対応する第3キャラクタオブジェクトを、前記第1キャラクタオブジェクト及び前記第2キャラクタオブジェクトよりも描画の処理負荷が少ないオブジェクトデータを用いてレンダリングする第2画像処理ステップとを実行する、動画のオブジェクト描画方法。
[11]
第1ユーザの動きが反映される第1キャラクタオブジェクトと、前記第1ユーザに参加要請を行った第2ユーザの動きが反映される第2キャラクタオブジェクトとを動画の描画空間にレンダリングする第1画像処理部と、
前記第1ユーザに参加要請を行った第3ユーザに対応する第3キャラクタオブジェクトを、前記第1キャラクタオブジェクト及び前記第2キャラクタオブジェクトよりも描画の処理負荷が少ないオブジェクトデータを用いてレンダリングする第2画像処理部とを備える、動画配信システム。
[12]
第2ユーザが用いる第2ユーザ装置から、第1ユーザに対応する第1キャラクタオブジェクトが含まれる動画への参加要請を受け付ける第1受付部と、
第3ユーザが用いる第3ユーザ装置から、前記動画への参加要請を受け付ける第2受付部と、
前記第2ユーザ装置から、前記第2ユーザの動きが反映されたモーションデータを含むアニメーション構成データを受信する第1受信部と、
前記アニメーション構成データを前記第1ユーザが用いる第1ユーザ装置及び前記第3ユーザ装置に送信する第1送信部と、
前記第3ユーザ装置から、前記第1キャラクタオブジェクトよりも描画の処理負荷が少ないオブジェクトデータを描画するための簡易データを受信する第2受信部と、
前記簡易データを前記第1ユーザ装置及び前記第2ユーザ装置に送信する第2送信部と、を備える、動画配信サーバ。
[13]
第2ユーザが用いる第2ユーザ装置から、第1ユーザに対応する第1キャラクタオブジェクトが含まれる動画への参加要請を受け付ける第1受付ステップと、
第3ユーザが用いる第3ユーザ装置から、前記動画への前記参加要請を受け付ける第2受信ステップと、
前記第2ユーザ装置から、前記第2ユーザの動きが反映されたモーションデータを含むアニメーション構成データを受信する第1受信ステップと、
前記アニメーション構成データを前記第1ユーザが用いる第1ユーザ装置及び前記第3ユーザ装置に送信する第1送信ステップと、
前記第3ユーザ装置から、前記第1キャラクタオブジェクトよりも描画の処理負荷が少ないオブジェクトデータを描画するための簡易データを受信する第2受信ステップと、
前記簡易データを前記第1ユーザ装置及び前記第2ユーザ装置に送信する第2送信ステップと、を実行する、動画配信方法。
【符号の説明】
【0118】
11…動画配信システム、
12…ユーザ装置
13…サーバ。