以下、図面を参照しながら、本発明の実施形態について説明する。
図1は、本発明の一実施形態に係る動画配信システム1のネットワークの構成を概略的に示す構成図である。動画配信システム1は、図示するように、動画配信サーバ10と、当該動画配信サーバ10とインターネット等のネットワーク20を介して通信可能に接続されたユーザ端末30とを備える。図1においては、1つのユーザ端末30のみが図示されているが、動画配信システム1は、複数のユーザ端末30を備える。サーバ10は、配信ユーザが提供するリアルタイムの動画を視聴ユーザに配信する動画配信サービスを、ユーザ端末30を介して提供する。本実施形態において、ユーザ端末30のユーザは、配信ユーザとして動画を配信することができ、また、視聴ユーザとして他のユーザによって配信される動画を視聴することもできる。
動画配信サーバ10は、一般的なコンピュータとして構成されており、図1に示すように、CPU(コンピュータプロセッサ)11と、メインメモリ12と、ユーザI/F13と、通信I/F14と、ストレージ(記憶装置)15とを備え、これらの各構成要素が図示しないバス等を介して電気的に接続されている。
CPU11は、ストレージ15等に記憶されている様々なプログラムをメインメモリ12に読み込んで、当該プログラムに含まれる各種の命令を実行する。メインメモリ12は、例えば、DRAM等によって構成される。
ユーザI/F13は、ユーザとの間で情報をやり取りするための各種の入出力装置を含む。ユーザI/F13は、例えば、キーボード、ポインティングデバイス(例えば、マウス、タッチパネル等)等の情報入力装置、マイクロフォン等の音声入力装置、カメラ等の画像入力装置を含む。また、ユーザI/F13は、ディスプレイ等の情報出力装置、スピーカー等の音声出力装置を含む。
通信I/F14は、ネットワークアダプタ等のハードウェア、各種の通信用ソフトウェア、及びこれらの組み合わせとして実装され、ネットワーク20等を介した有線又は無線の通信を実現できるように構成されている。
ストレージ15は、例えば磁気ディスク、フラッシュメモリ等によって構成される。ストレージ15は、オペレーティングシステムを含む様々なプログラム、及び各種データ等を記憶する。
本実施形態において、動画配信サーバ10は、それぞれが上述したハードウェア構成を有する複数のコンピュータを用いて構成され得る。例えば、サーバ10は、1又は複数のサーバ装置によって構成され得る。
このように構成された動画配信サーバ10は、ウェブサーバ及びアプリケーションサーバとしての機能を有し、ユーザ端末30にインストールされているウェブブラウザ及びその他のアプリケーション(例えば、動画配信サービス用のアプリケーション)からの要求に応答して各種の処理を実行し、当該処理の結果に応じた画面データ(例えば、HTMLデータ)及び制御データ等をユーザ端末30に送信する。ユーザ端末30では、受信したデータに基づくウェブページ又はその他の画面が表示される。
ユーザ端末30は、一般的なコンピュータとして構成されており、図1に示すように、CPU(コンピュータプロセッサ)31と、メインメモリ32と、ユーザI/F33と、通信I/F34と、ストレージ(記憶装置)35とを備え、これらの各構成要素が図示しないバス等を介して電気的に接続されている。
CPU31は、ストレージ35等に記憶されている様々なプログラムをメインメモリ32に読み込んで、当該プログラムに含まれる各種の命令を実行する。メインメモリ32は、例えば、DRAM等によって構成される。
ユーザI/F33は、ユーザとの間で情報をやり取りするための各種の入出力装置である。ユーザI/F33は、例えば、キーボード、ポインティングデバイス(例えば、マウス、タッチパネル等)等の情報入力装置、マイクロフォン等の音声入力装置、カメラ等の画像入力装置を含む。また、ユーザI/F33は、ディスプレイ等の情報出力装置、スピーカー等の音声出力装置を含む。
通信I/F34は、ネットワークアダプタ等のハードウェア、各種の通信用ソフトウェア、及びこれらの組み合わせとして実装され、ネットワーク20等を介した有線又は無線の通信を実現できるように構成されている。
ストレージ35は、例えば磁気ディスク又はフラッシュメモリ等によって構成される。ストレージ35は、オペレーティングシステムを含む様々なプログラム及び各種データ等を記憶する。ストレージ35が記憶するプログラムは、アプリケーションマーケット等からダウンロードされてインストールされ得る。
本実施形態において、ユーザ端末30は、スマートフォン、タブレット端末、ウェアラブルデバイス、パーソナルコンピュータ、及びゲーム専用端末等として構成され得る。
このように構成されたユーザ端末30のユーザは、ストレージ35等にインストールされているウェブブラウザ又はその他のアプリケーションを介した動画配信サーバ10との通信を実行することによって、動画配信サーバ10が提供する動画配信サービスを利用することができる。
次に、本実施形態の動画配信システム1が有する機能について説明する。図2は、動画配信サーバ10及びユーザ端末30がそれぞれ有する機能を概略的に示すブロック図である。サーバ10は、図示するように、様々な情報を記憶及び管理する情報記憶管理部41と、動画配信サービスの基本機能を制御する基本機能制御部43と、動画の配信を制御する動画配信制御部45と、動画上への画像オブジェクトの配置を管理するオブジェクト配置管理部47とを有する。これらの機能は、CPU11及びメインメモリ12等のハードウェア、並びに、ストレージ15等に記憶されている各種プログラムやデータ等が協働して動作することによって実現され、例えば、メインメモリ12に読み込まれたプログラムに含まれる命令をCPU11が実行することによって実現される。また、図2に示すサーバ10の機能の一部又は全部は、サーバ10とユーザ端末30とが協働することによって実現され、又は、ユーザ端末30によって実現され得る。例えば、オブジェクト配置管理部47の機能の一部又は全部は、サーバ10とユーザ端末30とが協働することによって実現され、又は、ユーザ端末30によって実現され得る。
ユーザ端末30は、図2に示すように、様々な情報を記憶及び管理する情報記憶管理部51と、動画配信サービスにおける視聴機能を制御する視聴機能制御部53と、動画配信サービスにおける配信機能を制御する配信機能制御部55とを有する。これらの機能は、CPU31及びメインメモリ32等のハードウェア、並びに、ストレージ35等に記憶されている各種プログラムやデータ等が協働して動作することによって実現され、例えば、メインメモリ32に読み込まれたプログラムに含まれる命令をCPU31が実行することによって実現される。また、図2に示すユーザ端末30の機能の一部又は全部は、サーバ10とユーザ端末30とが協働することによって実現され、又は、サーバ10によって実現され得る。例えば、視聴機能制御部53及び配信機能制御部55の機能の一部又は全部は、サーバ10とユーザ端末30とが協働することによって実現され、又は、サーバ10によって実現され得る。
サーバ10の情報記憶管理部41は、ストレージ15等において様々な情報を記憶及び管理する。情報記憶管理部41は、例えば、図2に示すように、動画配信サービスのユーザに関する情報を管理するユーザ情報テーブル411と、個別の動画配信に関する情報を管理する配信情報テーブル412と、画像オブジェクトに関する情報を管理するオブジェクト情報テーブル413とを有する。詳しくは後述するが、画像オブジェクトは、本実施形態の動画配信サービスにおいて、視聴ユーザが動画上に配置するためのオブジェクトである。
サーバ10の基本機能制御部43は、動画配信サービスの基本機能の制御に関する様々な処理を実行する。例えば、基本機能制御部43は、基本機能に関する様々な画面のHTMLデータ又は制御データをユーザ端末30に送信し、ユーザ端末30で表示される当該画面を介したユーザによる操作入力に応答して様々な処理を実行し、当該処理の結果に応じたHTMLデータ又は制御データをユーザ端末30に送信する。基本機能制御部43によって制御される基本機能は、例えば、ログイン認証(ユーザ認証)、課金制御、ユーザ管理(例えば、ユーザ情報テーブル411の更新等)、及び、個別の動画配信の管理(例えば、配信情報テーブル412の更新等)を含む。
サーバ10の動画配信制御部45は、動画の配信の制御に関する様々な処理を実行する。例えば、動画配信制御部45は、配信ユーザが提供するリアルタイムの動画を複数の視聴ユーザの各々に配信する処理を実行する。具体的には、動画配信制御部45は、例えば、配信ユーザのユーザ端末30から送信されるリアルタイムの動画の動画データを受信し、当該受信した動画データを視聴ユーザのユーザ端末30に送信する。こうしたリアルタイムの動画の配信は、例えば、ストリーミング方式を用いて行われる。
本実施形態の動画配信サービスにおいて配信される動画は、例えば、配信ユーザのユーザ端末30のディスプレイ等を介して表示される表示画面に対応する動画(以下、「画面動画」と言うことがある。)を含む。当該画面動画は、配信ユーザのユーザ端末30のスピーカー等を介して出力される音声を含む。また、同じく配信される動画は、例えば、配信ユーザのユーザ端末30のカメラ等を介して撮影される動画(以下、「撮影動画」と言うことがある。)を含む。当該撮影動画は、配信ユーザのユーザ端末30のマイクロフォン等を介して入力される音声を含む。
サーバ10のオブジェクト配置管理部47は、動画上への画像オブジェクトの配置の管理に関する様々な処理を実行する。例えば、オブジェクト配置管理部47は、視聴ユーザのユーザ端末30による、画像オブジェクトを動画上に配置するための配置要求の受付に応じて、配信ユーザのユーザ端末30に対して画像オブジェクトの動画上への配置を指示する。
ユーザ端末30の情報記憶管理部51は、ストレージ35等において様々な情報を記憶及び管理する。例えば、情報記憶管理部51は、ユーザが利用可能な画像オブジェクトに関する情報を記憶する。
ユーザ端末30の視聴機能制御部53は、動画配信サービスの視聴機能の制御に関する様々な処理を実行する。当該視聴機能は、ユーザ端末30のユーザが視聴ユーザとして他のユーザによって配信される動画を視聴するための機能である。例えば、視聴機能制御部53は、動画配信サーバ10から送信される動画データを受信し、当該受信した動画データに基づいて、配信ユーザが提供するリアルタイムの動画を表示(再生)する。
本実施形態において、視聴機能制御部53は、動画の配信中において、画像オブジェクトを動画上に配置するための配置要求を視聴ユーザから受け付ける。当該配置要求は、視聴ユーザによって特定された画像オブジェクトに関する情報を含む。例えば、視聴機能制御部53は、ユーザ端末30において表示される画面を介して、視聴ユーザによる画像オブジェクトの特定、及び、特定された画像オブジェクトの配置要求を受け付ける。
ユーザ端末30の配信機能制御部55は、動画配信サービスの配信機能の制御に関する様々な処理を実行する。当該配信機能は、ユーザ端末30のユーザが配信ユーザとして動画を配信するための機能である。例えば、配信機能制御部55は、リアルタイムの動画の動画データを生成し、当該生成した動画データを動画配信サーバ10に送信する。例えば、配信される動画が画面動画である場合において、配信機能制御部55は、ユーザ端末30のディスプレイ等を介して表示される表示画面に対応する画面動画の動画データをリアルタイムに生成し、当該生成した動画データを動画配信サーバ10に送信する。また、例えば、配信される動画が撮影動画である場合において、配信機能制御部55は、ユーザ端末30のカメラ等を介して撮影される撮影動画の動画データをリアルタイムに生成し、当該生成した動画データを動画配信サーバ10に送信する。
本実施形態において、配信機能制御部55は、画像オブジェクトを動画上に配置するための配置要求の受付に応じて、視聴ユーザによって特定された画像オブジェクトを動画上に配置する。例えば、配信機能制御部55は、サーバ10のオブジェクト配置管理部47からの画像オブジェクトの配置指示に応答して、視聴ユーザによって特定された画像オブジェクトを動画上に配置する。例えば、配信される動画が画面動画である場合には、配信機能制御部55は、オブジェクト配置管理部47からの画像オブジェクトの配置指示に応答して、ユーザ端末30における表示画面上に画像オブジェクトを表示する。この結果、ユーザ端末30の表示画面に対応する画面動画上に画像オブジェクトが配置され、当該画像オブジェクトが配置された画面動画が複数の視聴ユーザに配信される。
このように、本実施形態における動画配信システム1は、視聴ユーザからの要求に応答して、配信中の動画上に、視聴ユーザによって特定された画像オブジェクトを配置する。従って、視聴ユーザは、視聴中の動画上への画像オブジェクトの配置を介して他のユーザとのコミュニケーションを楽しむことができる。
動画上に配置される画像オブジェクトは、動画上に表示可能な様々なオブジェクトを含む。例えば、画像オブジェクトは、静止画像、又は、アニメーション効果を有する静止画像として構成される。画像オブジェクトは、例えば、動画配信サービスの提供事業者等によってユーザに提供される。また、画像オブジェクトは、例えば、ユーザによる入力操作に応じて生成され、例えば、ユーザによる手書き入力に応じて生成される。
本実施形態において、視聴ユーザによって特定された画像オブジェクトは、動画上の特定の位置又は任意の位置に配置され得る。例えば、サーバ10のオブジェクト配置管理部47又はユーザ端末30の配信機能制御部55は、画像オブジェクトを配置する動画上の位置を所定のルールに従って決定する(ランダムに位置を決定することを含む)ように構成され得る。
また、視聴ユーザが、画像オブジェクトを配置する動画上の位置を特定するようにしても良い。この場合、視聴ユーザのユーザ端末30の視聴機能制御部53が受け付ける配置要求は、画像オブジェクトに関する情報に加えて、視聴ユーザによって特定された動画上の位置に関する情報を含む。当該配置要求の受付に応じて、(サーバ10のオブジェクト配置管理部47による配置指示を介して)配信ユーザのユーザ端末30の配信機能制御部55が、視聴ユーザによって特定された画像オブジェクトを、視聴ユーザによって特定された動画上の位置に配置する。視聴ユーザは、例えば、ユーザ端末30において動画を表示する動画表示領域に対するタッチ操作又はクリック操作等によって、対応する動画上の位置を特定する。動画上の位置は、例えば、当該動画表示領域における座標として特定される。
本実施形態において、動画上に配置する画像オブジェクトは、例えば、視聴ユーザが複数の画像オブジェクトの中から選択することによって特定される。この場合、ユーザ端末30の視聴機能制御部53は、例えば、画像オブジェクトの配置要求を視聴ユーザから受け付けるときに、複数の画像オブジェクト(例えば、視聴ユーザが保有する画像オブジェクト)を視聴ユーザに提示し、当該提示した複数の画像オブジェクトの中からの視聴ユーザによる画像オブジェクトの選択を受け付ける。
また、本実施形態において、視聴ユーザによる入力操作に基づいて画像オブジェクトが生成され、当該生成された画像オブジェクトが、動画上に配置される画像オブジェクトとして特定され得る。例えば、視聴ユーザによる手書き入力に基づいて画像オブジェクトが生成され(例えば、手書き入力の軌跡に対応する図形等が画像オブジェクトとして生成される)、当該生成した画像オブジェクトが動画上に配置する画像オブジェクトとして特定される。この場合、ユーザ端末30の視聴機能制御部53が受け付ける配置要求は、例えば、手書き入力に基づいて生成された画像オブジェクトの画像データを含む。また、当該手書き入力を、ユーザ端末30において動画を表示する動画表示領域に対して行うようにしても良い。この場合、当該動画表示領域に対する手書き入力の位置が、画像オブジェクトを配置する動画上の位置として特定され得る。
本実施形態において、ユーザ端末30の視聴機能制御部53は、配置要求の受付に応じて、視聴ユーザに対して配置要求の受付を通知するように構成され得る。当該通知により、画像オブジェクトの配置要求を行った視聴ユーザは、画像オブジェクトの配置が動画上に反映されるよりも前に、配置要求の受付を認識できる。この結果、画像オブジェクトの配置が動画上に反映されないことを理由として、画像オブジェクトの配置要求が視聴ユーザによって不要に繰り返されることが抑制される。
また、視聴機能制御部53は、所定の時間内に受付可能な配置要求の数を制限するように構成され得る。例えば、視聴機能制御部53は、1の視聴ユーザについて、前回の画像オブジェクトの配置要求からの経過時間が所定の時間(例えば、3秒)以内である画像オブジェクトの配置要求を受け付けないように構成され得る。
また、本実施形態において、ユーザ端末30の配信機能制御部55は、動画上に配置されている画像オブジェクトを消去する(非表示とする)ように構成され得る。例えば、配信機能制御部55は、動画上に配置されてからの経過時間が、予め設定されている配置継続時間(例えば、5秒)に到達したオブジェクトを消去するように構成され得る。
本実施形態において、上述した配置継続時間は、画像オブジェクト毎に設定され得る(この場合、少なくとも一部の画像オブジェクト間で異なる配置継続時間が設定され得る)。例えば、配置継続時間は、表示サイズが大きい画像オブジェクトほど短い時間が設定される。また、配置継続時間は、視聴ユーザ毎に設定され得る(この場合、少なくとも一部の視聴ユーザ間で異なる配置継続時間が設定され得る)。例えば、配置継続時間は、動画配信サービスにおけるランクが高い(例えば、動画の配信回数が増えるほどランクが高くなる)視聴ユーザほど長い時間が設定される。こうした配置継続時間に基づいて画像オブジェクトを消去する処理は、配信機能制御部55とサーバ10のオブジェクト配置管理部47とが協働することによって実現され得る。
また、例えば、配信機能制御部55は、配信ユーザによる動画上に配置されている画像オブジェクトを消去するための消去要求に応答して、動画上に配置されている画像オブジェクトを消去するように構成され得る。例えば、配信機能制御部55は、動画上に配置されている複数の画像オブジェクトのうち配信ユーザによって特定された画像オブジェクトを消去し、又は、動画上に配置されている複数のオブジェクトの全てを消去する。
また、本実施形態において、配信機能制御部55は、配信ユーザによる動画上に配置されている画像オブジェクトの動画上の位置を変更するための位置変更要求に応答して、動画上に配置されている画像オブジェクトの動画上の位置を変更する(オブジェクトを移動させる)ように構成され得る。例えば、配信機能制御部55は、動画上に配置されている複数の画像オブジェクトのうち配信ユーザによって特定された画像オブジェクトを、配信ユーザによって特定された動画上の位置まで移動させる。
次に、このような機能を有する本実施形態の動画配信システム1の動作について具体例を用いて説明する。この具体例の動画配信サービスにおいては、配信ユーザのユーザ端末30の表示画面に対応する画面動画が、リアルタイムの動画として視聴ユーザのユーザ端末30に配信される。こうした画面動画の配信は、「画面の生配信」等と呼ばれることがある。
図3は、この例において、ユーザ情報テーブル411が管理する情報の一例を示す。ユーザ情報テーブル411は、動画配信サービスのユーザに関する情報を管理し、図示するように、個別のユーザを識別する「ユーザID」に対応付けて、アカウント名、年齢、性別等のユーザの基本的な情報である「基本情報」、このユーザによる動画配信の履歴に関する情報である「配信履歴情報」、このユーザによる他のユーザが配信する動画の視聴履歴に関する情報である「視聴履歴情報」、このユーザが保有するスタンプに関する情報である「保有スタンプ情報」等の情報を管理する。
ユーザ情報テーブル411において管理される情報のうち、基本情報は、動画配信サービスに新規登録(アカウント作成)するとき等のタイミングでユーザによって入力された情報が設定され、その後、ユーザによる指示に応じて適宜に更新される。また、配信履歴情報及び視聴履歴情報は、ユーザによる動画の配信及び視聴に応じて適宜に更新される。
この具体例において、スタンプは、視聴ユーザが動画上に配置するための画像オブジェクトである。ユーザは、様々な契機でスタンプを取得することができる。例えば、ユーザは、スタンプを、有償で購入することができ、また、無償で獲得することができる。
図4は、この例において、配信情報テーブル412が管理する情報の一例を示す。配信情報テーブル412は、個別の動画配信に関する情報を管理し、図示するように、個別の動画配信を識別する「配信ID」に対応付けて、動画を配信する配信ユーザを識別する「配信ユーザID」、この配信の「配信タイトル」、この配信の「配信状況」等の情報を管理する。配信状況は、例えば、配信する動画を視聴する視聴ユーザの数(現在値及び最大値等)、及び配信継続時間等の情報を含む。
配信情報テーブル412において管理される情報のうち、配信ID、配信ユーザID及び配信タイトルは、動画の配信が開始されるときに設定される。また、配信状況は、動画の配信中に適宜に更新される。
図5は、この例において、オブジェクト情報テーブル413が管理する情報の一例を示す。オブジェクト情報テーブル413は、動画配信サービスの提供事業者が提供する個別のスタンプに関する情報を管理し、図示するように、個別のスタンプを識別する「スタンプID」に対応付けて、このスタンプの「画像データ」、「表示時間」等の情報を管理する。詳しくは後述するが、表示時間は、スタンプが動画上に配置されてから消去されるまでの時間(配置継続時間)を示す。
以下、この具体例における動画配信システム1の動作について説明する。まず、配信ユーザが画面動画の配信を開始するまでの動作について説明する。図6は、動画配信サービスのユーザが当該サービスを利用するときの起点となるメイン画面60の一例を示す。このメイン画面60は、例えば、動画配信サービス用のアプリケーションがユーザ端末30上で起動されたとき、又は、サーバ10が提供する動画配信サービス用のウェブサイトにユーザ端末30がウェブブラウザを介してアクセスしたとき等に表示される。
メイン画面60は、図6に示すように、お薦めの動画を表示する推奨領域61と、配信中の動画を一覧表示する動画一覧領域62とを有し、下端に基本メニュ領域100が配置されている。推奨領域61及び動画一覧領域62に表示される動画に関する情報には、動画のタイトル(配信タイトル。図6の例では「YYY」、「XXX」等と表示されている。)、及び、配信ユーザ情報が含まれる。ユーザは、推奨領域61及び動画一覧領域62に表示されている動画の何れかを選択することにより、視聴ユーザとして、当該動画の視聴を開始することができる。
基本メニュ領域100は、動画配信サービスを利用するときの基本となるメニュによって構成されており、メイン画面60以外の主要な画面においても同様に配置されている。基本メニュ領域100は、具体的には、メイン画面60を表示するためのメインメニュ102と、ユーザや動画を検索するための検索メニュ104と、動画の配信を開始するための配信メニュ106と、ユーザに対するお知らせを表示するためのお知らせメニュ108と、自身のユーザページ(マイページ)を表示するためのマイページメニュ109とによって構成されている。
ユーザが検索メニュ104を選択すると、例えば、キーワード等を用いて他のユーザ又は動画を検索するための検索用画面が表示される。また、ユーザがマイページメニュ109を選択すると、ユーザ自身のユーザページ(マイページ)を表示するマイページ画面が表示され、ユーザは当該画面を介して、例えば、自身の基本情報等を閲覧及び編集することができ、又、配信履歴や視聴履歴を閲覧することができる。
ユーザが配信メニュ106を選択すると、図7に例示する配信準備画面70がユーザ端末30に表示される。配信準備画面70は、図示するように、配信タイトルを入力するためのタイトル入力領域72と、「配信開始!」と表示された配信開始ボタン74とを有し、下端に基本メニュ領域100が配置されている。この配信準備画面70は、ユーザが動画の配信の開始を指示するための画面である。
ユーザが、タイトル入力領域72に所望の配信タイトル(例えば、「ゲームXの生配信!」等)を入力した上で、配信開始ボタン74を選択すると、配信準備画面70が閉じられて、画面動画の配信が開始される。具体的には、ユーザ端末30における表示画面に対応する画面動画の動画データの生成及びサーバ10への送信が開始される。画面動画の配信が開始されると、視聴ユーザの要求に応答して、サーバ10から当該視聴ユーザのユーザ端末30に当該画面動画の動画データが送信されるようになる。なお、配信の開始に応じて、配信管理テーブル412に新たなレコードが作成される。
図8は、動画の配信中において配信ユーザのユーザ端末30に表示される配信画面80の一例を示す。当該配信画面80は、配信開始ボタン74が選択されて配信準備画面70が閉じられたときに表示される。この具体例では、動画の配信中において、動画配信サービス用のアプリケーション等のプログラムはバックグラウンドで動作し、配信画面80の画面全体に対応する表示領域210には、例えば、OSのホーム画面、又は、起動中の他のアプリケーションの画面が表示される。
配信画面80には、図8に示すように、画面上端のコメント入力領域82、その左下側のカメラ画像表示領域84、並びに、画面右下隅の設定ボタン86及び終了ボタン88が、それぞれ表示領域210に重畳して配置されている。コメント入力領域82は、ユーザが文字列等のコメントを入力できるように構成されている。また、カメラ画像表示領域84は、配信ユーザのユーザ端末30のフロントカメラ等を介して入力される画像(具体的には、例えば、配信ユーザの映像)が表示される。
ユーザが設定ボタン86を選択すると、図示しない設定用画面を介して各種の配信設定を行うことができる。例えば、マイクの無効化(ミュート)、カメラの無効化(カメラ画像表示領域84の非表示を含む)、コメントの閲覧、コメント欄の非表示(コメント入力領域82の非表示)等の設定を行うことができる。ここで、「コメントの閲覧」は、配信ユーザ自身が入力したコメント、及び、視聴ユーザが入力したコメントを表示するための設定である。
ここで、コメント入力領域82、カメラ画像表示領域84、設定ボタン86、及び終了ボタン88は、バックグラウンドで動作する動画配信サービス用のアプリケーション等によって制御されるウィジェット形式のオブジェクトである。ユーザは、配信画面80の表示領域210全体のうち、オブジェクト82、84、86及び88以外の領域をタップ操作等することによって、表示領域210に表示されている画面を介した操作(OS、又は、起動中の他のアプリケーションに対する操作)を実行することができる。また、ユーザはコメント入力領域82及びカメラ画像表示領域84をスライド操作等することによって、これらの表示位置を変更する(オブジェクトを移動させる)こともできる。
図9は、画面動画を視聴する視聴ユーザのユーザ端末30に表示される視聴画面90の一例を示す。視聴ユーザは、例えば、メイン画面60の推奨領域61及びコンテンツ一覧領域62に表示されている動画の何れかを選択すること、又は、検索メニュ104を介して検索した動画の何れかを選択すること等によって、視聴する動画を選択することができ、こうした動画の選択に応じて、対応する画面動画を表示する視聴画面90が視聴ユーザのユーザ端末30において表示される。
視聴画面90は、図9に示すように、画面動画を表示する動画表示領域92と、画面左下隅に位置するコメント入力領域93と、画面右下隅に位置する設定ボタン94及びスタンプボタン95とを有する。図示するように、動画表示領域92は、配信ユーザのユーザ端末30における表示画面(配信画面80)に対応する画面動画が表示される。
コメント入力領域93は、ユーザが文字列等のコメントを入力できるように構成されている。ユーザが設定ボタン94を選択すると、図示しない設定用画面を介して各種の視聴設定を行うことができる。
視聴画面90のスタンプ入力ボタン95は、視聴ユーザが、動画上へのスタンプの配置を要求するためのボタンである。以下、動画上へのスタンプの配置に関する動作について説明する。図10は、視聴ユーザのユーザ端末30、動画配信サーバ10、及び配信ユーザのユーザ端末30の間で実行されるスタンプの配置に関する通信の一例を示すシーケンス図である。まず、視聴ユーザのユーザ端末30が、視聴ユーザによるスタンプの入力を受け付ける(ステップS100)。
図11は、視聴画面90のスタンプ入力ボタン95の選択に応じて、視聴画面90に重ねて表示されるスタンプ入力画面110を例示する。スタンプ入力画面110は、図示するように、複数のスタンプSTを一覧表示するスタンプ表示領域112と、「手書き」と表示された手書きスタンプ入力ボタン114とを有する。スタンプ表示領域112に一覧表示されるスタンプSTは、視聴ユーザが保有するスタンプである。視聴ユーザが保有するスタンプは、ユーザ情報テーブル411の保有スタンプ情報において管理されている。当該保有スタンプ情報は、視聴ユーザのユーザ端末30において同期して記憶及び管理されている。
視聴ユーザが、スタンプ表示領域112に一覧表示されているスタンプSTの何れかを選択すると、スタンプ入力画面110が閉じられて、図12に例示するように、視聴画面90において情報通知領域981が表示される。当該情報通知領域981は、図示するように、「スタンプを配置する場所を指定して下さい」というテキストを表示する。視聴ユーザは、視聴画面90の動画表示領域92内の任意の位置をタップ操作等することによって、スタンプを配置する位置を特定することができる。
また、視聴ユーザが、手書きスタンプ入力ボタン114を選択すると、スタンプ入力画面110が閉じられて、図13に例示するように、視聴画面90において情報通知領域982が表示される。当該情報通知領域982は、図示するように、「スタンプを手書きして下さい」というテキストを表示する。視聴ユーザは、視聴画面90の動画表示領域92内におけるタッチ操作等により自由に文字及び図形等を描画することによって、手書きのスタンプを作成することができる。ここで、手書きのスタンプの場合には、手書き入力した動画表示領域92内の位置が、スタンプを配置する位置として特定される。
図10のシーケンス図に戻り、スタンプを配置する位置が特定されると、スタンプの入力(画像オブジェクトの配置要求)が受け付けられる(ステップS100)。スタンプの入力の受付に伴って、視聴ユーザのユーザ端末30は、スタンプの配置を要求するスタンプ配置要求情報を動画配信サーバ10に送信する。スタンプ配置要求情報は、スタンプ入力画面110のスタンプ表示領域112を介して選択されたスタンプを識別するスタンプID(手書きスタンプの場合には、スタンプの画像データ)、視聴ユーザを識別するユーザID、及び、視聴画面90の動画表示領域92内のタップ操作等によって特定されたスタンプを配置する動画上の位置情報(動画表示領域92における座標等)を含む。
スタンプの入力の受付に伴ってスタンプ配置要求情報を送信した視聴ユーザのユーザ端末30は、次に、スタンプの入力受付を、当該スタンプを入力した視聴ユーザに通知する(ステップS110)。具体的には、図14に例示するように、視聴画面90において情報通知領域99が表示される。当該情報通知領域99は、「スタンプの入力を受け付けました。」というテキストを表示する。当該通知により、動画表示領域92に表示される画面動画上にスタンプの配置が反映されていなくても、視聴ユーザは、スタンプの入力が正常に受け付けられたことを認識できる。この結果、入力したスタンプが画面動画上に反映されないことを理由として、視聴ユーザによってスタンプの入力が不要に繰り返されることが抑制され得る。
さらに、この具体例においては、視聴画面90に表示された情報通知領域99は、所定時間(例えば、3秒)経過後に自動的に消去される。また、視聴画面90は、情報通知領域99が表示されている間、スタンプ入力ボタン95を選択できないように構成されている。つまり、視聴画面90は、前回のスタンプの入力から所定時間経過するまでは、次のスタンプを入力できないように構成されている。このように、視聴画面90は、視聴ユーザによって所定時間内に入力可能なスタンプの数が1つに制限されている。こうした制限は、過剰に多いスタンプが動画上に配置されることを抑制し得る。
図10のシーケンス図に戻り、視聴ユーザのユーザ端末30からスタンプ配置要求情報を受信した動画配信サーバ10は、配信ユーザのユーザ端末30に対してスタンプの配置を指示する(ステップS120)。具体的には、動画配信サーバ10は、スタンプ配置指示情報を、配信ユーザのユーザ端末30に送信する。スタンプ配置指示情報は、スタンプID、スタンプの画像データ、視聴ユーザのアカウント名、スタンプを配置する動画上の位置、及び、スタンプの表示時間を含む。手書きスタンプを除くスタンプの画像データはオブジェクト情報テーブル413において管理されており、視聴ユーザのアカウント名はユーザ情報テーブル411(基本情報)において管理されており、スタンプの表示時間はオブジェクト情報テーブル413において管理されている。
スタンプ配置指示情報を受信した配信ユーザのユーザ端末30は、受信したスタンプ配置指示情報に基づいて配信画面80上にスタンプを表示する(ステップS130)。図15は、スタンプSTが表示された配信画面80を例示する。スタンプSTは、スタンプ配置指示情報に含まれるスタンプIDや画像データに基づいて表示され、その表示位置は、同じくスタンプ配置指示情報に含まれる動画上の位置に対応する配信画面80上の位置である。また、スタンプSTの下側には、スタンプ配置指示情報に含まれるアカウント名(スタンプSTを入力した視聴ユーザのアカウント名)が表示される。こうして配信ユーザのユーザ端末30の配信画面80においてスタンプが表示されると、当該ユーザ端末30から送信される画面動画に反映され、複数の視聴ユーザの各々のユーザ端末30における視聴画面90(動画表示領域92)において、スタンプが表示された画面動画が表示されるようになる。このように、視聴ユーザは、配信ユーザ及び他の視聴ユーザとの間で、動画上へのスタンプの配置を介したコミュニケーションを楽しむことができる。また、スタンプの入力は、コメントの入力等と比較して簡易な操作で実現される。
この具体例において、配信画面80に表示されるスタンプSTは、コメント入力領域82、カメラ画像表示領域84、設定ボタン86、及び終了ボタン88と同様に、バックグラウンドで動作する動画配信サービス用のアプリケーション等によって制御されるウィジェット形式のオブジェクトである。配信ユーザは、スタンプSTをスライド操作等することによって、その表示位置を変更する(スタンプを移動させる)ことができる。例えば、表示領域210において表示されている他のアプリケーションの画面の重要な部分にスタンプが重ねて配置されている場合等において、配信ユーザは、当該スタンプを移動させる。
図10のシーケンス図に戻り、表示されたスタンプは、消去条件が成立するまで表示を継続し、当該消去条件が成立したときに消去される(ステップS140-S150)。この具体例においては、スタンプは、表示されてからの経過時間が、スタンプ毎に設定されている表示時間に到達したときに消去される(つまり、当該経過時間が表示時間に到達することが消去条件の1つである)。具体的には、配信ユーザのユーザ端末30は、表示されてからの経過時間が、スタンプ配置指示情報に含まれる表示時間に到達したときにスタンプを消去する。このように、この例におけるスタンプの表示時間は、スタンプ毎に設定されている。ここで、他の具体例においては、スタンプの表示時間はユーザ毎に設定される。この場合、ユーザ毎の表示時間は、例えば、ユーザ情報テーブル411において管理される。
また、この具体例においては、表示されてからの経過時間が表示時間に到達していなくても、配信ユーザによる要求に応答してスタンプが消去される(つまり、配信ユーザによって消去を要求されることが消去条件の1つである)。配信画面80は、表示されているスタンプに対して長押し操作等が行われると、図16に例示するように、当該スタンプの右下に消去指示オブジェクトDLTが表示されるように構成されている。そして、配信ユーザが消去指示オブジェクトDLTを選択すると、対応するスタンプ(図16の例では、「F」と表示されたスタンプST)が消去される。なお、表示されてからの経過時間が表示時間に到達していなければ、配信ユーザによる要求に応答して、一旦消去されたスタンプを再度表示するようにしても良い。
このように、複数の視聴ユーザの各々から入力されるスタンプの動画上への配置(配信画面80への表示)及び消去が、画面動画の配信中において繰り返し実行される。そして、配信ユーザが、配信画面80の終了ボタン88を選択すると、当該配信ユーザによる動画の配信が終了する。
ここで、上述した具体例において、動画の配信中において入力されたスタンプに関する情報に基づいて、配信ユーザに対して報酬(例えば、動画配信サービスにおいて利用可能なデジタルコンテンツ(仮想通貨及びアイテム等)等)を付与するようにしても良い。例えば、入力されたスタンプの数が所定値以上となったときに、スタンプの数に応じた報酬が配信ユーザに付与され得る。
また、上述した具体例において、視聴ユーザによって入力可能な複数のスタンプの少なくとも一部を、表示サイズの異なるスタンプとすることもできる。この場合、スタンプ毎に設定される表示時間を、表示サイズが大きいスタンプほど短くなるようにしても良い。こうすれば、表示サイズが大きいスタンプほど短い時間で消去されるから、配信画面80の表示領域210において表示される他のアプリケーションの画面等の視認性が維持され易い。
また、上述した具体例において、視聴ユーザによって入力可能なスタンプの少なくとも一部を、動画上を移動するスタンプとして構成することもできる。この場合、スタンプを入力するときに、視聴ユーザによって、動画上を移動する始点となる位置(初期配置する位置)と、移動する終点となる位置が特定され得る。
また、上述した具体例において、視聴ユーザによって入力可能なスタンプの少なくとも一部を、動画の表示内容に基づいて変化するスタンプとして構成することもできる。こうしたスタンプは、例えば、動画において表示されている特定のオブジェクト(例えば、配信ユーザの顔、又は、ゲームキャラクタ等)に基づいて位置、形状、及び/又は大きさ等が変化する。この場合、配信ユーザのユーザ端末30は、例えば、継続的に、配信画面80の表示内容を解析して特定のオブジェクトを認識し、認識した特定のオブジェクトに適合するように、スタンプの位置、形状、及び/又は大きさ等を変化させる(この結果、例えば、帽子の外観を有するスタンプが、配信ユーザの頭の位置に近づくように表示される)。
以上説明した本実施形態の動画配信システム1は、配信ユーザが提供するリアルタイムの動画の配信中(例えば、画面の生配信中)において、視聴ユーザによる画像オブジェクト(例えば、スタンプ)の配置要求の受付に応じて、視聴ユーザによって特定された画像オブジェクトを動画上に配置する。この結果、視聴ユーザは、視聴中の動画上への画像オブジェクトの配置を介して他のユーザとのコミュニケーションを楽しむことができる。つまり、本発明の実施形態は、動画の配信中におけるユーザ間のコミュニケーションを促進し得る。
上述した実施形態の動画配信システム1は、視聴ユーザのみが動画上に画像オブジェクトを配置するように構成したが、本発明の他の実施形態においては、視聴ユーザに加えて、配信ユーザも動画上に画像オブジェクトを配置する。この場合、ユーザ端末30の配信機能制御部55は、配信ユーザによる画像オブジェクトの配置要求に応答して、配信ユーザによって特定された画像オブジェクトを動画上に配置するように構成され得る。
本明細書で説明された処理及び手順は、明示的に説明されたもの以外にも、ソフトウェア、ハードウェアまたはこれらの任意の組み合わせによって実現される。例えば、本明細書で説明される処理及び手順は、集積回路、揮発性メモリ、不揮発性メモリ、磁気ディスク等の媒体に、当該処理及び手順に相当するロジックを実装することによって実現される。また、本明細書で説明された処理及び手順は、当該処理・手順に相当するコンピュータプログラムとして実装し、各種のコンピュータに実行させることが可能である。
本明細書中で説明された処理及び手順が単一の装置、ソフトウェア、コンポーネント、モジュールによって実行される旨が説明されたとしても、そのような処理または手順は複数の装置、複数のソフトウェア、複数のコンポーネント、及び/又は複数のモジュールによって実行され得る。また、本明細書において説明されたソフトウェアおよびハードウェアの要素は、それらをより少ない構成要素に統合して、またはより多い構成要素に分解することによって実現することも可能である。
本明細書において、発明の構成要素が単数もしくは複数のいずれか一方として説明された場合、又は、単数もしくは複数のいずれとも限定せずに説明された場合であっても、文脈上別に解すべき場合を除き、当該構成要素は単数又は複数のいずれであってもよい。