(57)【要約】【課題】リアルタイムコンテンツと共に楽しむことのできるお絵かき体験を提供する。【解決手段】本発明の一態様によれば、端末は、判定部と、計算部と、描画部とを含む。判定部は、第１および第２のオブジェクトが描画終了状態であるか否かをそれぞれ、端末によって取得された第１のユーザ入力およびサーバから受信された第２のユーザ入力の履歴に基づいて判定する。計算部は、第１および第２のオブジェクトがそれぞれ描画終了状態である場合に、第１および第２のオブジェクトにそれぞれ設定された運動パラメータに基づいて第１および第２のオブジェクトの軌道をそれぞれ計算する。描画部は、第１および第２のオブジェクトがそれぞれ描画終了状態である場合に、計算された第１および第２のオブジェクトの軌道に基づいて第１および第２のオブジェクトをリアルタイムコンテンツの映像データに重畳して再描画する。【選択図】      図２
2020140684.tif 000002
【特許請求の範囲】
【請求項１】
リアルタイムコンテンツを再生可能な端末であって、
前記リアルタイムコンテンツの配信時に起動可能なお絵かきアプリケーションにおいて第１のオブジェクトを描画するための第１のユーザ入力を取得する取得部と、
前記第１のユーザ入力をサーバへ送信する送信部と、
前記リアルタイムコンテンツを再生する他の端末によって取得された、第２のオブジェクトを描画するための第２のユーザ入力を前記サーバから受信する受信部と、
前記第１のオブジェクトが描画未了状態であるか描画終了状態であるかを前記第１のユーザ入力の履歴に基づいて判定し、前記第２のオブジェクトが描画未了状態であるか描画終了状態であるかを前記第２のユーザ入力の履歴に基づいて判定する判定部と、
前記第１のオブジェクトが前記描画終了状態である場合に、前記第１のオブジェクトに設定された運動パラメータに基づいて前記第１のオブジェクトの軌道を計算し、前記第２のオブジェクトが前記描画終了状態である場合に、前記第２のオブジェクトに設定された運動パラメータに基づいて前記第２のオブジェクトの軌道を計算する計算部と、
前記第１のオブジェクトが前記描画終了状態である場合に、計算された前記第１のオブジェクトの軌道に基づいて前記第１のオブジェクトを、前記サーバから受信され、または前記端末によって作成されたリアルタイムコンテンツの映像データに単位時間毎に重畳して再描画し、前記第２のオブジェクトが前記描画終了状態である場合に、計算された前記第２のオブジェクトの軌道に基づいて前記第２のオブジェクトを前記単位時間毎に前記リアルタイムコンテンツの映像データに重畳して再描画する描画部と
を具備する、端末。
【請求項２】
前記取得部は、前記第１のユーザ入力を前記単位時間毎に取得し、
前記送信部は、前記第１のユーザ入力を前記単位時間毎に前記サーバへ送信し、
前記受信部は、前記第２のユーザ入力を前記単位時間毎に前記サーバから受信し、
前記描画部は、前記第１のオブジェクトが前記描画未了状態である場合に、前記単位時間毎に前記第１のユーザ入力に基づいて前記第１のオブジェクトを前記リアルタイムコンテンツの映像データに重畳して再描画し、前記第２のオブジェクトが前記描画未了状態である場合に、前記単位時間毎に前記第２のユーザ入力に基づいて前記第２のオブジェクトを前記リアルタイムコンテンツの映像データに重畳して再描画する、
請求項１に記載の端末。
【請求項３】
前記計算部は、前記第１のオブジェクトおよび前記第２のオブジェクトが前記描画終了状態であって、かつ前記第１のオブジェクトおよび前記第２のオブジェクトが衝突する場合に、前記第１のオブジェクトおよび前記第２のオブジェクトの衝突時の運動パラメータに基づいて前記第１のオブジェクトおよび前記第２のオブジェクトの衝突後の運動パラメータを更新する、請求項１に記載の端末。
【請求項４】
リアルタイムコンテンツを配信可能なサーバであって、
前記リアルタイムコンテンツの映像データを前記リアルタイムコンテンツのソースとなる第１の端末から受信し、前記リアルタイムコンテンツの配信時に起動可能なお絵かきアプリケーションにおいて第１のオブジェクトを描画するための第１のユーザ入力を前記リアルタイムコンテンツを再生する第２の端末から受信する受信部と、
前記第１のオブジェクトが描画未了状態であるか描画終了状態であるかを前記第１のユーザ入力の履歴に基づいて判定する判定部と、
前記第１のオブジェクトが前記描画終了状態である場合に、前記第１のオブジェクトに設定された運動パラメータに基づいて前記第１のオブジェクトの軌道を計算する計算部と、
前記第１のオブジェクトが前記描画終了状態である場合に、計算された前記第１のオブジェクトの軌道に基づいて前記第１のオブジェクトを単位時間毎に前記リアルタイムコンテンツの映像データに重畳して再描画する描画部と、
描画された前記第１のオブジェクトを重畳した前記リアルタイムコンテンツの映像データを前記第１の端末および前記第２の端末へ送信する送信部と
を具備する、サーバ。
【請求項５】
前記受信部は、前記第１のユーザ入力を前記単位時間毎に前記第２の端末から受信し、
前記描画部は、前記第１のオブジェクトが前記描画未了状態である場合に、前記単位時間毎に前記第１のユーザ入力に基づいて前記第１のオブジェクトを前記リアルタイムコンテンツの映像データに重畳して再描画し、
前記送信部は、描画された前記第１のオブジェクトを重畳した前記リアルタイムコンテンツの映像データを前記第１の端末および前記第２の端末へ送信する、
請求項４に記載のサーバ。
【請求項６】
前記受信部は、さらに、前記お絵かきアプリケーションにおいて第２のオブジェクトを描画するための第２のユーザ入力を前記リアルタイムコンテンツを再生する第３の端末から受信し、
前記判定部は、さらに、前記第２のオブジェクトが描画未了状態であるか描画終了状態であるかを前記第２のユーザ入力の履歴に基づいて判定し、
前記計算部は、前記第２のオブジェクトが前記描画終了状態である場合に、前記第２のオブジェクトに設定された運動パラメータに基づいて前記第２のオブジェクトの軌道を計算し、
前記描画部は、前記第２のオブジェクトが前記描画終了状態である場合に、計算された前記第２のオブジェクトの軌道に基づいて前記第２のオブジェクトを単位時間毎に前記リアルタイムコンテンツの映像データに重畳して再描画し、
前記送信部は、描画された前記第２のオブジェクトを重畳した前記リアルタイムコンテンツの映像データを前記第１の端末、前記第２の端末および前記第３の端末へ送信する、
請求項４または請求項５に記載のサーバ。
【請求項７】
前記計算部は、前記第１のオブジェクトおよび前記第２のオブジェクトが前記描画終了状態であって、かつ前記第１のオブジェクトおよび前記第２のオブジェクトが衝突する場合に、前記第１のオブジェクトおよび前記第２のオブジェクトの衝突時の運動パラメータに基づいて前記第１のオブジェクトおよび前記第２のオブジェクトの衝突後の運動パラメータを更新する、請求項６に記載のサーバ。
【請求項８】
リアルタイムコンテンツを再生可能な端末であって、
前記リアルタイムコンテンツを再生する第１の端末によって取得された、前記リアルタイムコンテンツの配信時に起動可能なお絵かきアプリケーションにおいて第１のオブジェクトを描画するための第１のユーザ入力をサーバから受信する受信部と、
前記第１のオブジェクトが描画未了状態であるか描画終了状態であるかを前記第１のユーザ入力の履歴に基づいて判定する判定部と、
前記第１のオブジェクトが前記描画終了状態である場合に、前記第１のオブジェクトに設定された運動パラメータに基づいて前記第１のオブジェクトの軌道を計算する計算部と、
前記第１のオブジェクトが前記描画終了状態である場合に、計算された前記第１のオブジェクトの軌道に基づいて前記第１のオブジェクトを、前記サーバから受信され、または前記端末によって作成されたリアルタイムコンテンツの映像データに単位時間毎に重畳して再描画する描画部と
を具備する、端末。
【請求項９】
前記受信部は、さらに、前記リアルタイムコンテンツを再生する第２の端末によって取得された、前記お絵かきアプリケーションにおいて第２のオブジェクトを描画するための第２のユーザ入力を前記サーバから受信し、
前記判定部は、さらに、前記第２のオブジェクトが描画未了状態であるか描画終了状態であるかを前記第２のユーザ入力の履歴に基づいて判定し、
前記計算部は、前記第２のオブジェクトが前記描画終了状態である場合に、前記第２のオブジェクトに設定された運動パラメータに基づいて前記第２のオブジェクトの軌道を計算し、
前記描画部は、前記第２のオブジェクトが前記描画終了状態である場合に、計算された前記第２のオブジェクトの軌道に基づいて前記第２のオブジェクトを単位時間毎に前記リアルタイムコンテンツの映像データに重畳して再描画する、
請求項８に記載の端末。
【請求項１０】
前記計算部は、前記第１のオブジェクトおよび前記第２のオブジェクトが前記描画終了状態であって、かつ前記第１のオブジェクトおよび前記第２のオブジェクトが衝突する場合に、前記第１のオブジェクトおよび前記第２のオブジェクトの衝突時の運動パラメータに基づいて前記第１のオブジェクトおよび前記第２のオブジェクトの衝突後の運動パラメータを更新する、請求項９に記載の端末。
【請求項１１】
リアルタイムコンテンツを再生可能な端末を、
前記リアルタイムコンテンツの配信時に起動可能なお絵かきアプリケーションにおいて第１のオブジェクトを描画するための第１のユーザ入力を取得する手段、
前記第１のユーザ入力をサーバへ送信する手段、
前記リアルタイムコンテンツを再生する他の端末によって取得された、第２のオブジェクトを描画するための第２のユーザ入力を前記サーバから受信する手段、
前記第１のオブジェクトが描画未了状態であるか描画終了状態であるかを前記第１のユーザ入力の履歴に基づいて判定し、前記第２のオブジェクトが描画未了状態であるか描画終了状態であるかを前記第２のユーザ入力の履歴に基づいて判定する手段、
前記第１のオブジェクトが前記描画終了状態である場合に、前記第１のオブジェクトに設定された運動パラメータに基づいて前記第１のオブジェクトの軌道を計算し、前記第２のオブジェクトが前記描画終了状態である場合に、前記第２のオブジェクトに設定された運動パラメータに基づいて前記第２のオブジェクトの軌道を計算する手段、
前記第１のオブジェクトが前記描画終了状態である場合に、計算された前記第１のオブジェクトの軌道に基づいて前記第１のオブジェクトを、前記サーバから受信され、または前記端末によって作成されたリアルタイムコンテンツの映像データに単位時間毎に重畳して再描画し、前記第２のオブジェクトが前記描画終了状態である場合に、計算された前記第２のオブジェクトの軌道に基づいて前記第２のオブジェクトを前記単位時間毎に前記リアルタイムコンテンツの映像データに重畳して再描画する手段
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リアルタイムコンテンツの配信時に起動可能なアプリケーションに関する。
【背景技術】
【０００２】
非特許文献１に記載されたアプリケーションでは、ユーザの描いた線がオブジェクトとして仮想空間に出現する。そして、このオブジェクトは、例えば水などの他の既定のオブジェクトとともに、あたかも現実空間における物体であるかのように仮想空間内で動く（例えば落下する）ように表現される。
【０００３】
このように、ユーザが描いた線や絵をオブジェクトとして仮想空間に出現させ、それをあたかも現実空間における物体であるかのように仮想空間内で動かすことは、従来の静的なお絵かきアプリケーションとは異なるユーザ体験を生み出す可能性がある。
【０００４】
非特許文献１に記載されたアプリケーションは、単独の端末、例えばスマートフォンな、によって実行される。特許文献１には、オンラインシステムにおける複数端末間の表示画面の同期制御方法が提案されている。具体的には、プレイヤ端末３０２と観戦者端末３０１とにオブジェクト表示制御のための同一の表示制御アルゴリズムを適用し、ゲームサーバ１００から当該表示制御アルゴリズムの入力情報を提供することで、ゲームサーバ１００は、観戦者端末３０１に対して常にゲームオブジェクトの位置情報を送信し続けることなく表示同期制御が実現できることが記載されている。
【０００５】
また、動画などのコンテンツの生放送（配信）サービスの分野では、観客がコメントを投稿し、配信者が投稿されたコメントに反応するという双方向的な視聴体験が可能である。近年では、いわゆるギフト機能を実装した生放送サービスも提案されているが、これも双方向的な視聴体験に寄与すると考えられる。
【０００６】
さらに、一部の生放送サービスでは、従来のライブ動画と共に楽しむことのできるゲームが実験的に提供されている。例えば非特許文献２には、釣りをするシロクマをクリックおよびタップで操作しアイテムを釣り上げ、それに応じて得られるポイントを配信者と観客との間で競うことのできるゲームが紹介されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−００３５８４号公報
【非特許文献】
【０００８】
【非特許文献１】「Ｈａｐｐｙ  Ｇｌａｓｓ」、［ｏｎｌｉｎｅ］、［２０１９年２月１１日検索］、インターネット、＜ＵＲＬ：ｈｔｔｐ：／／ｐｌａｙ．ｇｏｏｇｌｅ．ｃｏｍ／ｓｔｏｒｅ／ａｐｐｓ／ｄｅｔａｉｌｓ？ｉｄ＝ｃｏｍ．ｇａｍｅ５ｍｏｂｉｌｅ．ｌｉｎｅａｎｄｗａｔｅｒ＆ｈｌ＝ｊａ＞
【非特許文献２】「つりっくまとは」、［ｏｎｌｉｎｅ］、［２０１９年２月１１日検索］、インターネット、＜ＵＲＬ：ｈｔｔｐ：／／ｄｉｃ．ｎｉｃｏｖｉｄｅｏ．ｊｐ／ａ／つりっくま＞
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、リアルタイムコンテンツと共に楽しむことのできるお絵かき体験を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の態様によれば、端末は、リアルタイムコンテンツを再生可能であって、取得部と、送信部と、受信部と、判定部と、計算部と、描画部とを含む。取得部は、リアルタイムコンテンツの配信時に起動可能なお絵かきアプリケーションにおいて第１のオブジェクトを描画するための第１のユーザ入力を取得する。送信部は、第１のユーザ入力をサーバへ送信する。受信部は、リアルタイムコンテンツを再生する他の端末によって取得された、第２のオブジェクトを描画するための第２のユーザ入力をサーバから受信する。判定部は、第１のオブジェクトが描画未了状態であるか描画終了状態であるかを第１のユーザ入力の履歴に基づいて判定し、第２のオブジェクトが描画未了状態であるか描画終了状態であるかを第２のユーザ入力の履歴に基づいて判定する。計算部は、第１のオブジェクトが描画終了状態である場合に、第１のオブジェクトに設定された運動パラメータに基づいて第１のオブジェクトの軌道を計算し、第２のオブジェクトが描画終了状態である場合に、第２のオブジェクトに設定された運動パラメータに基づいて第２のオブジェクトの軌道を計算する。描画部は、第１のオブジェクトが描画終了状態である場合に、計算された第１のオブジェクトの軌道に基づいて第１のオブジェクトを、サーバから受信され、または端末によって作成されたリアルタイムコンテンツの映像データに単位時間毎に重畳して再描画し、第２のオブジェクトが描画終了状態である場合に、計算された第２のオブジェクトの軌道に基づいて第２のオブジェクトを単位時間毎にリアルタイムコンテンツの映像データに重畳して再描画する。
【００１１】
本発明の第２の態様によれば、サーバは、リアルタイムコンテンツを配信可能であって、受信部と、判定部と、計算部と、描画部と、送信部とを含む。受信部は、リアルタイムコンテンツの映像データをリアルタイムコンテンツのソースとなる第１の端末から受信し、リアルタイムコンテンツの配信時に起動可能なお絵かきアプリケーションにおいて第１のオブジェクトを描画するための第１のユーザ入力をリアルタイムコンテンツを再生する第２の端末から受信する。判定部は、第１のオブジェクトが描画未了状態であるか描画終了状態であるかを第１のユーザ入力の履歴に基づいて判定する。計算部は、第１のオブジェクトが描画終了状態である場合に、第１のオブジェクトに設定された運動パラメータに基づいて第１のオブジェクトの軌道を計算する。描画部は、第１のオブジェクトが描画終了状態である場合に、計算された第１のオブジェクトの軌道に基づいて第１のオブジェクトを単位時間毎にリアルタイムコンテンツの映像データに重畳して再描画する。送信部は、描画された第１のオブジェクトを重畳したリアルタイムコンテンツの映像データを第１の端末および第２の端末へ送信する。なお、この態様に係るサーバにおいて、第２の端末は、配信者端末であってもよいし、観客端末であってもよい。前者の場合には第１の端末および第２の端末は同一であり、後者の場合には第１の端末および第２の端末は異なる。
【００１２】
本発明の第３の態様によれば、端末は、リアルタイムコンテンツを再生可能であって、受信部と、判定部と、計算部と、描画部とを含む。受信部は、リアルタイムコンテンツを再生する第１の端末によって取得された、リアルタイムコンテンツの配信時に起動可能なお絵かきアプリケーションにおいて第１のオブジェクトを描画するための第１のユーザ入力をサーバから受信する。判定部は、第１のオブジェクトが描画未了状態であるか描画終了状態であるかを第１のユーザ入力の履歴に基づいて判定する。計算部は、第１のオブジェクトが描画終了状態である場合に、第１のオブジェクトに設定された運動パラメータに基づいて第１のオブジェクトの軌道を計算する。描画部は、第１のオブジェクトが描画終了状態である場合に、計算された第１のオブジェクトの軌道に基づいて第１のオブジェクトを、サーバから受信され、または端末によって作成されたリアルタイムコンテンツの映像データに単位時間毎に重畳して再描画する。
【発明の効果】
【００１３】
本発明によれば、リアルタイムコンテンツと共に楽しむことのできるお絵かき体験を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】第１の実施形態に係る配信者端末および観客端末を含むライブ動画配信システムを例示するブロック図。
【図２】第１の実施形態に係る配信者端末を例示するブロック図。
【図３】図２の配信者端末によって作成されるライブ動画を例示する図。
【図４】図３のライブ動画の配信中であってお絵かきアプリケーションが起動されているときに、図２の配信者端末および観客端末の出力装置に表示される画面を例示する図。
【図５】図３のライブ動画の配信中であってお絵かきアプリケーションが起動されているときに、図２の配信者端末および観客端末の出力装置に表示される画面を例示する図。
【図６】図３のライブ動画の配信中であってお絵かきアプリケーションが起動されているときに、図２の配信者端末および観客端末の出力装置に表示される画面を例示する図。
【図７】図２の配信者端末の動作を例示するフローチャート。
【図８】第２の実施形態に係る動画配信サーバを例示するブロック図。
【図９】図８の動画配信サーバの動作を例示するフローチャート。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら実施形態の説明を述べる。なお、以降、説明済みの要素と同一または類似の要素には同一または類似の符号を付し、重複する説明については基本的に省略する。例えば、複数の同一または類似の要素が存在する場合に、各要素を区別せずに説明するために共通の符号を用いることがあるし、各要素を区別して説明するために当該共通の符号に加えて枝番号を用いることもある。
【００１６】
なお、実施形態の説明では、リアルタイムコンテンツとしてライブ動画を仮定するが、リアルタイムコンテンツは動画とは異なる種類のコンテンツ（例えば、静止画、テキスト、など）であってもよい。また、ライブ動画とは、動画ソース（例えば、配信者端末）から動画配信サーバへのアップロードと、その配信とがリアルタイムに行われる動画全般を指しており、その題材は特に限定されない。具体的には、ライブ動画は、配信者による単なる撮影動画（例えば、自撮り動画、定点カメラの映像、ドライブレコーダーの映像、など）、配信者の実演（例えば、配信者による、歌唱、ダンスなどのパフォーマンス、ゲームプレイ、トーク、など）を撮影した動画、配信者が例えばゲームなどの対象について実況／解説を行う実況動画、配信者の分身であるアバターが存在する仮想空間の映像を仮想カメラにより撮影したＶＲ（Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ）動画、などであり得る。
【００１７】
（第１の実施形態）  
第１の実施形態に係る配信者端末および観客端末は、図１に例示されるライブ動画配信システムに組み込むことができる。このシステムは、実施形態に係る配信者端末１００と、観客端末２００と、動画配信サーバ３００とを含む。動画配信サーバ３００は、各種端末と例えばインターネットなどのネットワーク経由で接続されており、互いにデータを送受信し得る。また、動画配信サーバ３００は、他の図示されないサーバ、例えばＷｅｂサーバ、コメントサーバ、などともネットワーク経由で接続され、互いにデータを送受信し得る。
【００１８】
配信者端末１００、観客端末２００および動画配信サーバ３００は、以下に説明するように、ライブ動画配信サービスを授受するための基本的な機能を有する。
【００１９】
配信者端末１００は、逐次、例えば配信者端末１００に接続されたカメラ／マイクロフォンによって生成された映像／音声データをエンコードし、エンコード済み（マルチメディア）データを動画配信サーバ３００へ送信（アップロード）する。
【００２０】
配信者端末１００は、コンピュータなどの電子デバイス、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、モバイル端末（例えば、タブレット、スマートフォン、ラップトップ、フィーチャーフォン、ポータブルゲーム機、など）、ＶＲ端末、ＡＲ(Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ)端末、ゲーム機、テレビ受像機（インターネットテレビを含む）、などであり得るが、これらに限られない。
【００２１】
動画配信サーバ３００は、配信者端末１００からエンコード済みデータを受信し、これに対して、例えば、再エンコード、ＨＬＳ（ＨＴＴＰ  （Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）  Ｌｉｖｅ  Ｓｔｒｅａｍｉｎｇ）形式への変換、などの加工を必要に応じて行う。動画配信サーバ３００は、（加工後の）エンコード済みデータを配信者端末１００および観客端末２００へ配信する。すなわち、動画配信サーバ３００は、ライブ動画を含むリアルタイムコンテンツを配信可能なサーバである。
【００２２】
観客端末２００は、動画配信サーバ３００からエンコード済みデータを受信し、これをデコードし、ライブ動画（音声を含む）を再生する。すなわち、観客端末２００は、ライブ動画を含むリアルタイムコンテンツを再生可能な端末である。配信者端末１００も、観客端末２００と同様に、動画配信サーバ３００からエンコード済みデータを受信し、これをデコードし、ライブ動画を再生し得る。或いは、配信者端末１００は、動画配信サーバ３００からエンコード済みデータを受信せず、自ら作成したライブ動画の映像データを再生してもよい。すなわち、配信者端末１００は、ライブ動画を含むリアルタイムコンテンツのソースであるとともにこれを再生可能な端末であり得る。
【００２３】
なお、観客端末２００は、逐次、図示されないコメントサーバからライブ動画に対して当該観客端末２００の操作者もしくはその他の観客、または配信者によって投稿されたコメントデータを受信し、当該コメントデータの示すコメントをライブ動画に重畳して表示してもよい。コメントは、ライブ動画の表示領域の右端から左端に向かって移動するように所定時間に亘って表示されてよい。他方、観客端末２００は、ユーザからのテキスト入力に基づいてライブ動画に投稿するコメントデータを生成し、コメントサーバへ送信し得る。これにより、配信者および観客は、ライブ動画の配信中であってもテキストベースでコミュニケーションを取ることが可能となる。
【００２４】
観客端末２００は、配信者端末１００と同様の電子デバイスであり得る。ただし、観客端末２００は、ライブ動画のソースではないので、入力装置としてのカメラ／マイクロフォンから外部の映像／音声データを取り込んだり、これをエンコードして動画配信サーバ３００へ送信したりする能力は必要とされない。
【００２５】
そして、第１の実施形態に係る配信者端末１００および観客端末２００は、かかるライブ動画配信サービスを授受するための基本的な機能に加えて、当該ライブ動画の配信時に起動可能なお絵かきアプリケーションを実行する機能を有する。
【００２６】
このお絵かきアプリケーションは、配信者のみが起動できるものであってもよいし、課金などの条件付きまたは無条件で観客が起動できるものであってもよいし、図１のライブ動画配信システムの運営者が起動できるものであってもよい。また、お絵かきの参加者は、１人（例えば配信者）のみであってもよいし、２人以上であってもよい。
【００２７】
このお絵かきアプリケーションの具体的態様は、特に制限されないが、例えば参加者によって描画されたオブジェクトの全部または一部が、当該オブジェクトに設定された運動パラメータに従って運動、例えば落下しているかのように動的に再描画されるものであり得る。また、かかるアプリケーションにおいて、運動中のオブジェクト同士が衝突した場合には、一方の運動が他方の運動に影響を与え、また他方の運動が一方の運動に影響を与えることで、両方の軌道が変化してもよい。
【００２８】
第１の実施形態では、お絵かきの参加者の端末（配信者端末１００または観客端末２００）は、それぞれ取得したユーザ入力を互いに動画配信サーバ３００を介して送信し合う。そして、各端末は、自ら取得したユーザ入力と動画配信サーバ３００を介して受信したユーザ入力とに基づいて、お絵かき処理を分散的に行う。すなわち、各端末は、各オブジェクトの状態（例えば、描画終了／未了状態、運動パラメータ（例えば、運動の種類、初期位置、初速、加速度、初期回転角、運動開始時間）、外観パラメータ（例えば、形状、テクスチャ）、など）を管理し、描画終了後のオブジェクトの軌道を計算し、各オブジェクトの状態および軌道に応じたお絵かき画面をライブ動画の映像データに重畳して描画する。なお、ユーザ入力は、動画配信サーバ３００に限らず他のサーバ、例えばアプリケーションサーバを介してやり取りされてもよい。
【００２９】
なお、後述するように、第２の実施形態では、動画配信サーバ３００が、各端末からユーザ入力を受信し、お絵かき処理を集中的に行う。すなわち、動画配信サーバ３００は、各オブジェクトの状態を管理し、描画終了後のオブジェクトの軌道を計算し、各オブジェクトの状態および軌道に応じたお絵かき画面をライブ動画の映像データに重畳して描画してこれを各端末へ送信する。なお、ここで説明したお絵かき処理またはその一部は、動画配信サーバ３００に限らず他のサーバ、例えばアプリケーションサーバによって行われてもよい。
【００３０】
なお、図１において示される各装置の数は、例示に過ぎない。例えば、観客端末２００の数は、時々刻々と変化するので、０となることがあり得るし、数百、数千となることもあり得る。また、図のライブ動画配信システムは、複数のライブ動画を並列的に生放送することができるので、配信者端末１００の数も複数となり得る。さらに、図１に示されないＷｅｂサーバ、コメントサーバなどがさらに設けられてもよい。
【００３１】
以下、図２乃至図６を用いて、配信者端末１００の構成について詳しく説明する。なお、以降の説明では、配信者がお絵かきに参加することを前提としているが、配信者に加えて、または配信者の代わりに観客がお絵かきに参加してもよく、かかる場合の端末の構成についても必要に応じて説明を加える。
【００３２】
配信者端末１００は、コンピュータであって、例えば、入出力制御、通信制御、そしてお絵かき処理を行うプロセッサを含む。ここで、プロセッサは、典型的にはＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）および／またはＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であるが、マイコン、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、またはその他の汎用または専用のプロセッサなどであってもよい。
【００３３】
また、配信者端末１００は、かかる処理を実現するためにプロセッサによって実行されるプログラムおよび当該プロセッサによって使用されるデータ、例えばユーザ入力（イベントデータ）、映像データ、アプリケーションデータ（例えば、描画されたオブジェクトの管理に必要とされるデータ）、などを一時的に格納するメモリを含んでいる。メモリは、かかるプログラム／データが展開されるワークエリアを有するＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を含み得る。
【００３４】
なお、配信者端末１００は、全てのデータをオンメモリの状態で扱ってもよいし、一部のデータが補助記憶装置に退避されていてもよい。補助記憶装置は、例えば、配信者端末１００に内蔵または外付けされたＨＤＤ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、フラッシュメモリなどであってもよいし、配信者端末１００からアクセス可能なデータベースサーバであってもよい。
【００３５】
また、配信者端末１００は、複数のコンピュータの組み合わせであってよい。例えば、配信者端末１００の機能部、例えば図２に示される機能部が別個のコンピュータに分散して実装されてもよい。
【００３６】
次に、図２を用いて配信者端末１００の構成例の説明を続ける。図２の配信者端末１００は、通信Ｉ／Ｆ（インタフェース）  １０１と、入力装置１０２と、出力装置１０３と、受信データ取得部１１１と、デコーダ１１２と、映像データ記憶部１１３と、出力制御部１１４と、ユーザ入力取得部１１５と、送信制御部１１６と、オブジェクト管理部１１７と、描画状態判定部１１８と、軌道計算部１１９と、描画部１２０と、映像データ取得部１２１と、エンコーダ１２２とを含む。
【００３７】
通信Ｉ／Ｆ  １０１は、ネットワーク経由で、外部装置、例えば、動画配信サーバ３００またはその他のサーバ、などと通信をするためのモジュールであり得る。例えば、通信Ｉ／Ｆ  １０１は、Ｗｉ−Ｆｉモジュール、４Ｇモジュール、５Ｇモジュール、などの一部または全部を含み得る。通信Ｉ／Ｆ  １０１は、配信者端末１００に内蔵されてもよいし、配信者端末１００に外付けされてもよい。
【００３８】
通信Ｉ／Ｆ  １０１は、共通のライブ動画を再生する他の端末において取得された、お絵かきに関するユーザ入力（イベントデータ）、例えばお絵かきアプリケーションにおいてオブジェクトを描画するための入力（描画入力）、を動画配信サーバ３００からネットワーク経由で受信し、これを受信データ取得部１１１へ送る。また、通信Ｉ／Ｆ  １０１は、ライブ動画の映像データを動画配信サーバ３００からネットワーク経由で受信し、これを受信データ取得部１１１へ送ってもよい。
【００３９】
通信Ｉ／Ｆ  １０１は、ユーザ入力取得部１１５によって取得された、お絵かきに関するユーザ入力（イベントデータ）、例えば描画入力、を送信制御部１１６から受け取り、これを動画配信サーバ３００へネットワーク経由で送信する。
【００４０】
さらに、通信Ｉ／Ｆ  １０１は、ライブ動画のエンコードされた映像データを送信制御部１１６から受け取り、これを動画配信サーバ３００へネットワーク経由で送信する。なお、観客端末２００の通信Ｉ／Ｆはかかる機能を必要としない。
【００４１】
入力装置１０２は、例えば、タッチスクリーン、キーボード、マウス、テンキー、マイクロフォン、カメラ、慣性センサ、などであり得る。入力装置１０２は、配信者端末１００に内蔵されてもよいし、配信者端末１００に外付けされてもよい。
【００４２】
入力装置１０２は、お絵かきの参加者としての配信者からお絵かきに関する操作、例えばストローク、タッチ、タップ、スワイプ、ドラグ、クリック、などを受け付け、これに応じたユーザ入力（イベントデータ）を発生する。そして、入力装置１０２は、このユーザ入力をユーザ入力取得部１１５へ送る。
【００４３】
なお、入力装置１０２は、オブジェクトが描画される過程が視聴可能となるように、ユーザ入力を単位時間毎に発生させてユーザ入力取得部１１５へ送ってもよい。ここで、単位時間は、お絵かきアプリケーションのフレーム時間であってよい。このフレーム時間は、ライブ動画のフレーム時間と同一であってもよいし、異なっていてもよい。例えば、お絵かきアプリケーションのフレームレートをライブ動画のフレームレートよりも低くすることで、参加者間の同期を容易にするとともに、配信者端末１００および観客端末２００における処理負荷を軽減できる。
【００４４】
また、例えば入力装置１０２としてのカメラは、配信者または他の被写体を撮影して映像データを生成する。そして、この入力装置１０２は、映像データを映像データ取得部１２１へ送る。かかる映像データは、特に限定されないが、例えば図３に示される配信者の自撮り映像であってもよい。なお、観客端末２００の入力装置はかかる機能を必要としない。
【００４５】
出力装置１０３は、少なくともディスプレイを含み、このほかにスピーカ、バイブレータ、などを含んでもよい。出力装置１０３は、配信者端末１００に内蔵されてもよいし、配信者端末１００に外付けされてもよい。
【００４６】
出力装置１０３は、出力制御部１１４から映像データを受け取り、これを出力（表示）する。また、出力装置１０３は、出力制御部１１４から音声データを受け取ってこれを出力してもよい。
【００４７】
受信データ取得部１１１は、例えば前述のプロセッサに相当し得る。受信データ取得部１１１は、ライブ動画のエンコードされた映像データを通信Ｉ／Ｆ  １０１から取得し、これをデコーダ１１２へ送る。また、受信データ取得部１１１は、このライブ動画を再生する他の端末において取得された、お絵かきに関するユーザ入力、例えば描画入力、を通信Ｉ／Ｆ  １０１から例えば単位時間毎に取得し、これをオブジェクト管理部１１７へ送る。
【００４８】
デコーダ１１２は、例えば前述のプロセッサまたは専用の回路に相当し得る。デコーダ１１２は、ライブ動画のエンコードされた映像データを受信データ取得部１１１から受け取る。デコーダ１１２は、エンコードされた映像データを適切なコーデックに従ってデコードして映像データを再生する。なお、デコーダ１１２は、ビデオデコーダに加えて音声デコーダを含んでいてもよい。デコーダ１１２は、再生した映像データを映像データ記憶部１１３に書き込む。
【００４９】
映像データ記憶部１１３は、例えば前述のメモリに相当し得る。映像データ記憶部１１３は、デコーダ１１２によって再生された、ライブ動画の映像データを保存する。お絵かきアプリケーションの非実行時には、この映像データは、出力制御部１１４によって適時、すなわち当該映像データに対応する出力タイミングの到来前に、読み出される。他方、お絵かきアプリケーションの実行時に、この映像データは、後述されるように、描画部１２０によってお絵かき画面を重畳して更新される。そして、お絵かき画面が重畳された、ライブ動画の映像データは、出力制御部１１４によって適時に読み出される。
【００５０】
出力制御部１１４は、例えば前述のプロセッサに相当し得る。出力制御部１１４は、映像データ記憶部１１３に保存された映像データを適時に読み出し、これを出力装置１０３へ送る。
【００５１】
ユーザ入力取得部１１５は、例えば前述のプロセッサに相当し得る。ユーザ入力取得部１１５は、お絵かきに関するユーザ入力、例えば描画入力、を入力装置１０２から例えば単位時間毎に取得する。ユーザ入力取得部１１５は、このユーザ入力を送信制御部１１６およびオブジェクト管理部１１７へ送る。
【００５２】
送信制御部１１６は、例えば前述のプロセッサに相当し得る。送信制御部１１６は、ユーザ入力取得部１１５によって取得されたユーザ入力、例えば描画入力、をユーザ入力取得部１１５から受け取り、これを通信Ｉ／Ｆ  １０１へ例えば単位時間毎に送る。
【００５３】
また、送信制御部１１６は、ライブ動画のエンコードされた映像データをエンコーダ１２２から受け取り、これを通信Ｉ／Ｆ  １０１へ送る。なお、観客端末２００の送信制御部はかかる機能を必要としない。
【００５４】
オブジェクト管理部１１７は、例えば前述のプロセッサに相当し得る。オブジェクト管理部１１７は、受信データ取得部１１１およびユーザ入力取得部１１５から、お絵かきに関するユーザ入力、例えば描画入力、を受け取り、各参加者によって描画されている／されたオブジェクトの状態を管理する。
【００５５】
具体的には、オブジェクト管理部１１７は、受け取ったユーザ入力に基づいて、例えば、オブジェクトの運動パラメータを設定したり、オブジェクトの外観パラメータを設定したりする。
【００５６】
例えば、オブジェクト管理部１１７は、参加者がオブジェクトを描画するときの始点を当該オブジェクトの初期位置として設定してもよい。また、オブジェクト管理部１１７は、例えば、ユーザ入力、オブジェクトの外観パラメータ、などに応じて、当該オブジェクトの運動の種類、例えば、オブジェクトを運動させるか／静止（固定）させるか、運動させる場合には、例えば落下などの等加速度運動、等速直線運動、またはこれらの組み合わせ、などのいずれであるか、を設定してもよい。さらに、オブジェクトを運動させる場合には、オブジェクト管理部１１７は、例えば、ユーザ入力（例えば、描画終了時になされたフリックの方向および／または速度）、オブジェクトの外観パラメータ、などに応じて、オブジェクトの初速（ベクトル）、加速度（ベクトル）、初期回転角（ベクトル）、などを設定してもよい。なお、オブジェクトの運動によりオブジェクトの姿勢（回転角）を変更しない場合には、オブジェクトの初期回転角を管理する必要はない。また、加速度は、等速直線運動、または落下のような加速度が既知である等加速度運動を扱う場合であれば、固定可能であるためオブジェクト毎に設定する必要はない。
【００５７】
また、オブジェクト管理部１１７は、例えばユーザ入力としてのストロークに基づいて、オブジェクトの形状を表現する（曲）線データを設定してもよい。線の太さ、またはテクスチャは、ユーザ入力により変更可能であってよい。オブジェクト管理部１１７は、オブジェクトが描画される過程が視聴可能となるように、当該オブジェクトに関するユーザ入力を単位時間毎に取得し、線データを更新してもよい。
【００５８】
さらに、オブジェクト管理部１１７は、描画終了状態と判定されていないオブジェクトについてのユーザ入力を描画状態判定部１１８に与え、描画状態判定部１１８にこのオブジェクトが描画終了状態であるか描画未了状態であるかを判定させる。オブジェクト管理部１１７は、描画状態判定部１１８による判定結果に従って、オブジェクトの描画終了フラグまたは描画未了フラグを有効／無効に設定する。
【００５９】
ここで、オブジェクト管理部１１７は、オブジェクトが描画終了状態であると判定されたタイミングに基づいて、当該オブジェクトを運動させる場合の運動開始時間を設定してもよい。例えば、オブジェクト管理部１１７は、オブジェクトが描画終了状態であると判定されてから一定時間、例えば１フレーム後に、当該オブジェクトの運動開始時間を設定してもよい。なお、この一定時間は、例えば、ユーザ入力、オブジェクトの外観パラメータ、などに応じて可変であってもよい。
【００６０】
加えて、オブジェクト管理部１１７は、描画終了状態と判定されたオブジェクトの運動パラメータを軌道計算部１１９に与え、当該オブジェクトの軌道を計算させる。これにより、オブジェクトの所定時間後の位置および姿勢が計算される。なお、オブジェクトの運動によりオブジェクトの姿勢を変更しない場合には、オブジェクトの姿勢を計算する必要はない。そして、オブジェクト管理部１１７は、オブジェクトの描画に必要なデータ、例えばオブジェクトの外観パラメータ、例えば描画されるフレームにおけるオブジェクトの位置（および姿勢）を示すデータ、などを描画部１２０へ送る。
【００６１】
描画状態判定部１１８は、例えば前述のプロセッサに相当し得る。描画状態判定部１１８は、描画終了状態であると判定されていない各オブジェクトに関するユーザ入力をオブジェクト管理部１１７から受け取り、この履歴に基づいて、当該オブジェクトが描画未了状態であるか描画終了状態であるかを判定する。描画状態判定部１１８は、各オブジェクトについての判定結果を返す。
【００６２】
例えば、描画状態判定部１１８は、ある参加者の端末からの描画入力が所定期間に亘って途絶えた場合に、当該描画入力に対応付けられるオブジェクトが描画終了状態であると判定してもよい。また、描画状態判定部１１８は、ある参加者の端末において描画入力後に連続してダブルタップ、フリック、ダブルクリック、などがなされた場合に、当該描画入力に対応付けられるオブジェクトが描画終了状態であると判定してもよい。
【００６３】
軌道計算部１１９は、例えば前述のプロセッサに相当し得る。軌道計算部１１９は、描画終了状態であると判定されたオブジェクトの運動パラメータをオブジェクト管理部１１７から受け取り、これに基づいて当該オブジェクトの軌道を計算する。軌道計算部１１９は、各オブジェクトの所定時間後の位置（および姿勢）を示すデータをオブジェクト管理部１１７に返す。
【００６４】
具体的には、軌道計算部１１９は、各オブジェクトの運動の種類に応じて、当該オブジェクトの軌道、すなわち所与の時間における位置（および姿勢）、を計算するための関数を選択し、当該関数に当該オブジェクトの運動パラメータに含まれる要素、例えば、初速、加速度、初期回転角、などと、運動開始からの経過時間とを代入する。なお、運動開始からの経過時間は、例えばこの所与の時間から運動開始時間を差し引くことで導出可能である。
【００６５】
さらに、軌道計算部１１９は、複数のオブジェクトが衝突する場合に、これらの衝突後の運動パラメータを更新し、オブジェクト管理部１１７へ通知してもよい。すなわち、軌道計算部１１９は、第１のオブジェクトおよび第２のオブジェクトが衝突する場合に、第１のオブジェクトおよび第２のオブジェクトの衝突時の運動パラメータに基づいて第１のオブジェクトおよび第２のオブジェクトの衝突後の運動パラメータを更新し得る。軌道計算部１１９は、例えば、この衝突における反発係数、および運動量保存則を利用して、両オブジェクトの衝突後の速度および回転角を算出し、衝突時点から新たな運動を開始したものとして、これらの運動パラメータにおける運動開始時間、初速、初期回転角、などを更新し得る。
【００６６】
描画部１２０は、例えば前述のプロセッサに相当し得る。描画部１２０は、少なくとも描画終了状態にあるオブジェクトの状態を示すデータをオブジェクト管理部１１７から受け取る。描画部１２０は、単位時間毎に、映像データ記憶部１１３からリアルタイムコンテンツの映像データを読み出し、当該映像データに重畳してお絵かき画面を描画する。
【００６７】
例えば、描画部１２０は、描画終了状態にあるオブジェクト毎に、計算された当該オブジェクトの軌道に基づいて、当該オブジェクトを単位時間毎にライブ動画の映像データに重畳して再描画する。これにより、例えば、図４乃至図６に示されるように、丸形のオブジェクトが落下し（図４）、お椀型のオブジェクトに衝突して軌道を変え（図５）、そして再び落下する（図６）、といった演出が可能となる。なお、お椀型のオブジェクトは、図４乃至図６の例では固定されているが、これも落下またはその他の運動をするように描画されてもよい。
【００６８】
他方、描画部１２０は、描画未了状態にあるオブジェクト毎に、当該オブジェクトに対応する最新の描画入力に基づいて、当該オブジェクトを単位時間毎にライブ動画の映像データに重畳して再描画してもよい。これにより、オブジェクトが完成に近づく様子をライブ動画の視聴者および配信者が共有できる。ただし、描画部１２０が描画未了状態にあるオブジェクトを描画することは必須ではない。
【００６９】
映像データ取得部１２１は、例えば前述のプロセッサに相当し得る。ライブ動画の映像データを例えば入力装置１０２としてのカメラまたはその他の映像ソースから取得し、これをエンコーダ１２２へ送る。なお、観客端末２００は映像データ取得部１２１に相当する機能部を必要としない。
【００７０】
エンコーダ１２２は、例えば前述のプロセッサまたは専用の回路に相当し得る。エンコーダ１２２は、ライブ動画の映像データを映像データ取得部１２１から受け取り、これを適切なコーデックに従ってエンコードする。そして、エンコーダ１２２は、ライブ動画のエンコードされた映像データを送信制御部１１６へ送る。なお、観客端末２００はエンコーダ１２２に相当する機能部を必要としない。
【００７１】
なお、配信者および／または観客は、お絵かきに参加せずに参加者によるお絵かきを視聴することもできる。かかる配信者および／または観客向けの配信者端末１００および／または観客端末２００は、当該配信者自身および／または観客自身からのお絵かきに関するユーザ入力を扱う必要がないので、前述のユーザ入力取得部１１５および送信制御部１１６の機能の一部または全部を必要としない。
【００７２】
次に、図７を用いて、配信者端末１００の動作を説明する。図７の動作は、ステップＳ２０１から開始する。
【００７３】
ステップＳ２０１において、入力装置１０２およびユーザ入力取得部１１５は、描画入力（および他のユーザ入力）を取得し、送信制御部１１６および通信Ｉ／Ｆ  １０１はこれを動画配信サーバ３００へ送信する。他方、通信Ｉ／Ｆ  １０１および受信データ取得部１１１は、他の端末において取得された描画入力（および他のユーザ入力）を受信する（ステップＳ２０２）。ステップＳ２０１およびステップＳ２０２の後に、処理はステップＳ２０３へ進む。なお、ステップＳ２０１およびステップＳ２０２は、図７とは逆の順序で実行されてもよいし、並列的に実行されてもよい。
【００７４】
ステップＳ２０３において、オブジェクト管理部１１７は、管理対象となるオブジェクトのうち未選択の１つを選択する。このとき、オブジェクト管理部１１７は、必要に応じて、このオブジェクトの運動パラメータおよび／または外観パラメータを、ステップＳ２０１において取得されたユーザ入力、またはステップＳ２０２において受信されたユーザ入力に基づいて設定してもよい。
【００７５】
次に、描画状態判定部１１８は、ステップＳ２０３において選択されたオブジェクトが描画未了状態であるか描画終了状態であるかを判定する（ステップＳ２０４）。このオブジェクトが描画未了状態であると判定されれば処理はステップＳ２０５へ進み、そうでなければ処理はステップＳ２０６へ進む。なお、オブジェクトが過去に実行されたステップＳ２０４において既に描画終了状態であると判定されている場合には、ステップＳ２０４がスキップされステップＳ２０６が実行されてもよい。
【００７６】
ステップＳ２０５において、描画部１２０は、ステップＳ２０１において取得された描画入力、またはステップＳ２０２において受信された描画入力に基づいて、ステップＳ２０３において選択されたオブジェクトをライブ動画の映像データに重畳して再描画する。ステップＳ２０５の後に、処理はステップＳ２０８へ進む。なお、前述のように、描画部１２０は描画未了状態にあるオブジェクトを描画しなくてもよく、この場合にはステップＳ２０５は省略されてもよい。
【００７７】
ステップＳ２０６において、軌道計算部１１９は、ステップＳ２０３において選択されたオブジェクトの運動パラメータに基づいて、当該オブジェクトの軌道を計算する。そして、描画部１２０は、ステップＳ２０３において選択されたオブジェクトを、ステップＳ２０６において計算された軌道（およびこのオブジェクトの外観パラメータ）に基づいて、ライブ動画の映像データに重畳して再描画する（ステップＳ２０７）。ステップＳ２０７の後に、処理はステップＳ２０８へ進む。
【００７８】
ステップＳ２０８において、オブジェクト管理部１１７は、管理対象となる全てのオブジェクトが選択済みであるか否かを判定する。全てのオブジェクトが選択済みであるならば処理はステップＳ２０９へ進み、そうでなければ処理はステップＳ２０３に戻る。
【００７９】
ステップＳ２０９において、出力制御部１１４および出力装置１０３はステップＳ２０３乃至ステップＳ２０８のループを通じて描画された１単位時間分のお絵かき画面が重畳されたライブ動画の映像データを出力する。ステップＳ２０９の後に、処理はステップＳ２０１に戻る。
【００８０】
以上説明したように、第１の実施形態に係る端末は、リアルタイムコンテンツの配信時に起動可能なお絵かきアプリケーションに関するユーザ入力を取得し、当該リアルタイムコンテンツを再生中の他の端末へサーバを介して送信する。そして、各端末は、自ら取得したユーザ入力および／またはサーバを介して受信したユーザ入力に基づいて、各オブジェクトの状態を管理し、描画終了後のオブジェクトの軌道を計算し、各オブジェクトの状態および軌道に応じたお絵かき画面をリアルタイムコンテンツの映像データに重畳して描画する。故に、この端末によれば、リアルタイムコンテンツの配信者および視聴者が、当該リアルコンテンツと共に楽しむことのできる新規なお絵かき体験を提供することができる。
【００８１】
（第２の実施形態）
第２の実施形態では、動画配信サーバ３００が、各端末からユーザ入力を受信し、お絵かき処理を集中的に行う。故に、配信者端末１００および観客端末２００は、お絵かきに関するユーザ入力を取得し、動画配信サーバ３００へ送信する以外の機能を必要としない。故に、配信者端末１００（および観客端末２００）から、図２のオブジェクト管理部１１７、描画状態判定部１１８、軌道計算部１１９、および描画部１２０は省略され得る。
【００８２】
次に、図８を用いて、第２の実施形態に係る動画配信サーバ３００の構成について詳しく説明する。
【００８３】
動画配信サーバ３００は、コンピュータであって、配信者端末１００および／または観客端末２００と同様のハードウェア構成、例えばプロセッサおよびメモリ、を有し得る。また、動画配信サーバ３００は、複数のコンピュータの組み合わせであってよい。例えば、動画配信サーバ３００の機能部、例えば図８に示される機能部が別個のコンピュータに分散して実装されてもよい。
【００８４】
次に、図８を用いて動画配信サーバ３００の構成例の説明を続ける。図８の動画配信サーバ３００は、通信Ｉ／Ｆ  ３０１と、受信データ取得部３１１と、デコーダ３１２と、映像データ記憶部３１３と、送信制御部３１６と、オブジェクト管理部３１７と、描画状態判定部３１８と、軌道計算部３１９と、描画部３２０と、エンコーダ３２１とを含む。
【００８５】
図８の受信データ取得部３１１、デコーダ３１２、描画状態判定部３１８、軌道計算部３１９および描画部３２０は、それぞれ図２の受信データ取得部１１１、デコーダ１１２、描画状態判定部１１８、軌道計算部１１９および描画部１２０と同一または類似の構成であってよいので説明を省略する。
【００８６】
通信Ｉ／Ｆ  ３０１は、前述の通信Ｉ／Ｆ  １０１と同様のハードウェアであり得る。通信Ｉ／Ｆ  ３０１は、動画配信サーバ３００に内蔵されてもよいし、動画配信サーバ３００に外付けされてもよい。
【００８７】
通信Ｉ／Ｆ  ３０１は、共通のライブ動画を再生する各端末において取得された、お絵かきに関するユーザ入力、例えば描画入力、を動画配信サーバ３００からネットワーク経由で受信し、これを受信データ取得部３１１へ送る。また、通信Ｉ／Ｆ  ３０１は、ライブ動画の映像データを配信者端末１００からネットワーク経由で受信し、これを受信データ取得部３１１へ送ってもよい。
【００８８】
通信Ｉ／Ｆ  ３０１は、ライブ動画のエンコードされた映像データを送信制御部３１６から受け取り、これを当該ライブ動画を再生中の各端末へネットワーク経由で送信する。お絵かきアプリケーションの実行時には、この映像データには描画部３２０によってお絵かき画面が重畳されている。
【００８９】
映像データ記憶部３１３は、例えば前述のメモリに相当し得る。映像データ記憶部３１３は、デコーダ３１２によって再生された、ライブ動画の映像データを保存する。お絵かきアプリケーションの非実行時には、この映像データは、エンコーダ３２１によって適時、すなわち当該映像データに対応する送信タイミングの到来前に、読み出される。他方、お絵かきアプリケーションの実行時に、この映像データは、後述されるように、描画部３２０によってお絵かき画面を重畳して更新される。そして、お絵かき画面が重畳された、ライブ動画の映像データは、エンコーダ３２１によって適時に読み出される。
【００９０】
送信制御部３１６は、ライブ動画のエンコードされた映像データをエンコーダ３２１から受け取り、これを通信Ｉ／Ｆ  ３０１へ送る。なお、前述のように、お絵かきアプリケーションの実行時には、この映像データには描画部３２０によってお絵かき画面が重畳されている。
【００９１】
オブジェクト管理部３１７は、例えば前述のプロセッサに相当し得る。オブジェクト管理部３１７は、受信データ取得部３１１から、お絵かきに関するユーザ入力、例えば描画入力、を受け取り、各参加者によって描画されている／されたオブジェクトの状態を管理する。ここで、オブジェクト管理部３１７によって行われる処理は、基本的に前述のオブジェクト管理部１１７と同一または類似であってよい。
【００９２】
エンコーダ３２１は、例えば前述のプロセッサまたは専用の回路に相当し得る。エンコーダ３２１は、映像データ記憶部３１３に保存された映像データを適時に読み出し、これを適切なコーデックに従ってエンコードする。そして、エンコーダ３２１は、ライブ動画のエンコードされた映像データを送信制御部３１６へ送る。
【００９３】
次に、図９を用いて、動画配信サーバ３００の動作を説明する。なお、図９のステップＳ４０３、ステップＳ４０５およびステップＳ４０６は、図７のステップＳ２０４、ステップＳ２０６およびステップＳ２０７とそれぞれ同一または類似の処理であってよいので説明を省略する。図９の動作は、ステップＳ４０１から開始する。
【００９４】
通信Ｉ／Ｆ  ３０１および受信データ取得部３１１は、各端末において取得された描画入力（および他のユーザ入力）を受信する（ステップＳ４０１）。ステップＳ４０１の後に、処理はステップＳ４０２へ進む。
【００９５】
ステップＳ４０２において、オブジェクト管理部３１７は、管理対象となるオブジェクトのうち未選択の１つを選択する。このとき、オブジェクト管理部３１７は、必要に応じて、このオブジェクトの運動パラメータおよび／または外観パラメータを、ステップＳ４０１において受信されたユーザ入力に基づいて設定してもよい。
【００９６】
ステップＳ４０４において、描画部３２０は、ステップＳ４０１において取得された描画入力に基づいて、ステップＳ４０２において選択されたオブジェクトをライブ動画の映像データに重畳して再描画する。ステップＳ４０４の後に、処理はステップＳ４０７へ進む。なお、前述のように、描画部３２０は描画未了状態にあるオブジェクトを描画しなくてもよく、この場合にはステップＳ４０４は省略されてもよい。
【００９７】
ステップＳ４０７において、オブジェクト管理部３１７は、管理対象となる全てのオブジェクトが選択済みであるか否かを判定する。全てのオブジェクトが選択済みであるならば処理はステップＳ４０８へ進み、そうでなければ処理はステップＳ４０２に戻る。
【００９８】
ステップＳ４０８において、エンコーダ３２１はステップＳ４０２乃至ステップＳ４０７のループを通じて描画された１単位時間分のお絵かき画面が重畳されたライブ動画の映像データをエンコードし、送信制御部３１６および通信Ｉ／Ｆ  ３０１はこれを各端末へ送信する。ステップＳ４０８の後に、処理はステップＳ４０１に戻る。
【００９９】
以上説明したように、第２の実施形態に係るサーバは、リアルタイムコンテンツの配信時に起動可能なお絵かきアプリケーションに関するユーザ入力をお絵かきの参加者の各端末から受信する。そして、このサーバは、受信したユーザ入力に基づいて、各オブジェクトの状態を管理し、描画終了後のオブジェクトの軌道を計算し、各オブジェクトの状態および軌道に応じたお絵かき画面をリアルタイムコンテンツの映像データに重畳して描画する。それから、このサーバは、お絵かき画面を重畳した、リアルタイムコンテンツの映像データを、当該リアルタイムコンテンツを再生中の各端末へ送信する。故に、このサーバによれば、リアルタイムコンテンツの配信者および視聴者が、当該リアルコンテンツと共に楽しむことのできる新規なお絵かき体験を提供することができる。なお、本実施形態において、サーバは必ずしも全てのお絵かき処理を担当せずともよく、サーバおよび端末は必要に応じてお絵かき処理を分担してもよい。
【０１００】
（変形例）  
なお、実施形態の説明では、オブジェクトおよびリアルタイムコンテンツが２Ｄ画像ないし映像であることとした。しかしながら、これらは、３Ｄ画像ないし映像であってもよい。例えば、ＶＲ、ＡＲまたはＭＲ（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）などの３次元空間において、２次元または３次元のオブジェクトが運動するように描画されてもよい。
【０１０１】
また、実施形態の説明では、ライブ動画の配信時に実行されるお絵かきアプリケーションについて説明したが、ライブ動画以外のコンテンツ、例えば、予め作成され動画配信サーバに保存されている動画の映像データの再生時に、当該動画の観客がかかるお絵かきアプリケーションを実行できるようにしてもよい。また、オブジェクトが予め埋め込まれたリアルタイムコンテンツまたは非リアルタイムコンテンツを配信し、その配信時にかかるお絵かきアプリケーションを実行できるようにしてもよい。この場合に、コンテンツに予め埋め込まれたオブジェクトと当該コンテンツを視聴しながらお絵かきに参加する配信者および／または観客が描いたオブジェクトとが衝突等の相互作用するように描画されてもよい。
【０１０２】
上述の実施形態は、本発明の概念の理解を助けるための具体例を示しているに過ぎず、本発明の範囲を限定することを意図されていない。実施形態は、本発明の要旨を逸脱しない範囲で、様々な構成要素の付加、削除または転換をすることができる。
【０１０３】
上述の実施形態では、いくつかの機能部を説明したが、これらは各機能部の実装の一例に過ぎない。例えば、１つの装置に実装されると説明された複数の機能部が複数の別々の装置に亘って実装されることもあり得るし、逆に複数の別々の装置に亘って実装されると説明された機能部が１つの装置に実装されることもあり得る。
【０１０４】
上記各実施形態において説明された種々の機能部は、回路を用いることで実現されてもよい。回路は、特定の機能を実現する専用回路であってもよいし、プロセッサのような汎用回路であってもよい。
【０１０５】
上記各実施形態の処理の少なくとも一部は、例えば汎用のコンピュータに搭載されたプロセッサを基本ハードウェアとして用いることでも実現可能である。上記処理を実現するプログラムは、コンピュータで読み取り可能な記録媒体に格納して提供されてもよい。プログラムは、インストール可能な形式のファイルまたは実行可能な形式のファイルとして記録媒体に記憶される。記録媒体としては、磁気ディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、半導体メモリなどである。記録媒体は、プログラムを記憶でき、かつ、コンピュータが読み取り可能であれば、何れであってもよい。また、上記処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ（サーバ）上に格納し、ネットワーク経由でコンピュータ（クライアント）にダウンロードさせてもよい。
【符号の説明】
【０１０６】
１００・・・配信者端末
１０１，３０１・・・通信Ｉ／Ｆ
１０２・・・入力装置
１０３・・・出力装置
１１１，３１１・・・受信データ取得部
１１２，３１２・・・デコーダ
１１３，３１３・・・映像データ記憶部
１１４・・・出力制御部
１１５・・・ユーザ入力取得部
１１６，３１６・・・送信制御部
１１７，３１７・・・オブジェクト管理部
１１８，３１８・・・描画状態判定部
１１９，３１９・・・軌道計算部
１２０，３２０・・・描画部
１２１・・・映像データ取得部
１２２，３２１・・・エンコーダ
２００・・・観客端末
３００・・・動画配信サーバ
【図１】
2020140684.tif 000003
【図２】
2020140684.tif 000004
【図３】
2020140684.tif 000005
【図４】
2020140684.tif 000006
【図５】
2020140684.tif 000007
【図６】
2020140684.tif 000008
【図７】
2020140684.tif 000009
【図８】
2020140684.tif 000010
【図９】
2020140684.tif 000011