以下、図面を参照して、本発明の好適な実施形態について説明する。なお、以下説明する実施形態によって本発明が限定されるものではなく、本発明を適用可能な形態が以下の実施形態に限定されるものでもない。また、図面の記載において、同一部分には同一の符号を付す。
[全体構成]
図1は、本実施形態の動画配信システム1000の構成例を示す図である。動画配信システム1000は、ネットワーク9を介して相互にデータ通信が可能に接続されたサーバシステム1100と、複数のユーザ端末1500(1500a,1500b)とを含む。
ネットワーク9は、データ通信が可能な通信路を意味する。すなわち、ネットワーク9とは、直接接続のための専用線(専用ケーブル)やイーサネット(登録商標)等によるLAN(Local Area Network)の他、電話通信網やケーブル網、インターネット等の通信網を含む意味であり、また、通信方法については有線/無線を問わない。
サーバシステム1100は、例えば、キーボード1106と、タッチパネル1108と、ストレージ1140とを有し、本体装置1101には制御基板1150を搭載する。
制御基板1150には、CPU(Central Processing Unit)1151やGPU(Graphics Processing Unit)、DSP(Digital Signal Processor)等の各種マイクロプロセッサ、VRAMやRAM,ROM等の各種ICメモリ1152、通信装置1153が搭載されている。なお、制御基板1150の一部又は全部は、ASIC(Application Specific Integrated Circuit)や、FPGA(Field-Programmable Gate Array)、SoC(System on a Chip)により実現するとしてもよい。
そして、サーバシステム1100は、制御基板1150が所定のプログラムおよびデータに基づいて演算処理することにより、
1)ユーザの登録や、ユーザ別の情報を管理するユーザ管理機能と、
2)投げ銭アイテムのオンラインショッピング機能と、
3)ユーザ端末1500にてオンラインゲームをプレイ可能にするゲーム提供機能と、
4)投稿者となるユーザである投稿ユーザ2aのユーザ端末1500a(視聴者端末)から、投稿者動画のデータを取得する投稿機能と、
5)投稿者動画のデータに基づいて配信用動画を生成して、視聴者となるユーザである視聴ユーザ2bのユーザ端末1500b(視聴者端末)に配信するライブ配信機能と、
を実現する。
なお、図1では、サーバシステム1100を1台のサーバ装置として描いているが、オンライン接続された複数のサーバ装置が、ユーザ管理機能、オンラインショッピング機能、ゲーム提供機能、投稿機能、およびライブ配信機能のうちの1つ又は複数の機能を分担する構成であってもよい。また、サーバシステム1100は、各機能を分担する複数のブレードサーバを搭載して相互に内部バスを介してデータ通信可能に接続した構成であってもよい。離れた場所に設置された独立した複数のサーバ装置を、ネットワーク9を介してデータ通信させることで、全体としてサーバシステム1100として機能させる構成であってもよい。
ユーザ端末1500(1500a,1500b)は、ユーザ2(2a,2b,・・・)が動画の投稿や動画の視聴のために個別に使用するコンピュータシステムであって、ネットワーク9を介してサーバシステム1100にアクセスできる電子装置(電子機器)である。本実施形態のユーザ端末1500は、いわゆるスマートフォンと呼ばれる装置であるが、携帯型ゲーム装置や、タブレット型コンピュータ、パーソナルコンピュータ等でもよい。
なお、図1では、投稿ユーザ2aのユーザ端末1500a(視聴者端末)と、視聴ユーザ2bのユーザ端末1500b(視聴者端末)と、をそれぞれ1台ずつ図示しているが、実際の運用に当たっては、複数の投稿ユーザが存在して、それぞれ投稿者端末を使用してサーバシステム1100へアクセスする。同様に、実際の運用に当たっては、複数の視聴ユーザが存在して、それぞれ視聴者端末を使用してサーバシステム1100へアクセスする。
図2は、本実施形態におけるユーザ端末1500の構成例を示す正面図である。図2に示すように、ユーザ端末1500は、方向入力キー1502と、ボタンスイッチ1504と、画像表示デバイス兼接触位置入力デバイスとして機能するタッチパネル1506と、内蔵バッテリー1509と、スピーカ1510と、マイク1512と、カメラ1520と、制御基板1550と、コンピュータ読み出し可能な記憶媒体であるメモリカード1540に対してデータを読み書きできるメモリカード読取装置1542とを備える。また、その他にも、図示されていない電源ボタン、音量調節ボタン等が設けられている。ゲームプレイ等の対価の支払いが可能なICカード型のクレジットカードやプリペイドカードに対して、非接触にデータの読み書きが行えるICカード読取装置等を設けるとしてもよい。
制御基板1550は、1)CPU1551や、GPU、DSP等の各種マイクロプロセッサ、2)VRAMやRAM,ROM等の各種ICメモリ1552、3)ネットワーク9に接続する携帯電話基地局や無線LAN基地局等と無線通信するための無線通信モジュール1553、4)インターフェース回路1557等を搭載する。
インターフェース回路1557には、タッチパネル1506のドライバ回路、方向入力キー1502およびボタンスイッチ1504からの信号を受信する回路、スピーカ1510へ音声信号を出力する出力アンプ回路、マイク1512で集音した音声の信号を生成する入力信号生成回路、カメラ1520で撮影された画像の画像データを入力する回路、メモリカード読取装置1542への信号入出力回路等が含まれている。
そして、制御基板1550に搭載されているこれらの要素は、バス回路等を介して電気的に接続され、データの読み書きや信号の送受信が可能に接続されている。なお、制御基板1550の一部又は全部をASICやFPGA、SoCにて構成してもよい。そして、制御基板1550は、本実施形態のゲームのユーザ端末としての機能を実現させるためのプログラムや各種データをICメモリ1552に記憶する。
なお、本実施形態では、ユーザ端末1500はプログラムや各種設定データをサーバシステム1100からダウンロードする構成としているが、別途入手したメモリカード1540等の記憶媒体から読み出す構成としてもよい。
[動画投稿について]
図3は、本実施形態におけるライブ配信のための動画投稿について説明するための図である。ライブ配信にあたっては、投稿ユーザ2aは、ユーザ端末1500a(投稿者端末)と、配信日時とを事前に登録する。配信日時前になると、投稿ユーザ2aは、投稿者端末(ユーザ端末1500a)でサーバシステム1100へ予約していた投稿ユーザとしてアクセスする。
投稿ユーザ2aは、投稿者端末(ユーザ端末1500a)の無線式のコントローラ3を手に持ち、ブルーバック等の前に立って、ライブ配信における番組ホストである投稿者キャラクタを演じる。
投稿者端末(ユーザ端末1500a)では、所定のプログラムが実行されており、ライブ配信用の投稿モードで作動している。投稿者端末(ユーザ端末1500a)は、三脚等に固定されており、搭載されているカメラ1520で投稿ユーザ2aのライブ映像10を撮影し、搭載されているマイク1512で投稿ユーザ2aのライブ音声12を拾う。
投稿ユーザ2aは、ライブ画像やライブ音声のモニター用として、ヘッドマウントディスプレイやヘッドフォンを装着するとしてもよい。
投稿者端末(ユーザ端末1500a)は、モーションキャプチャー処理を常時実行しており、ライブ映像10からリアルタイムに投稿ユーザ2aの投稿者モーションデータ712を作成する。また、投稿者端末(ユーザ端末1500a)は、音声キャプチャー処理を常時実行しており、リアルタイムにライブ音声12から投稿者音声データ713を作成する。
ライブ配信を拡張現実空間の映像とする場合、言い換えると、画像生成空間を拡張現実空間とする場合は、適宜、ARマーカ5を用意して、カメラ1520で投稿ユーザ2aとともに撮影する。この場合、投稿者モーションデータ712は、ARマーカ5とカメラ1520との相対位置、相対姿勢、撮影画角の各情報と、現実空間の画像データと、を含むことになる。ライブ配信を仮想現実空間の映像とする場合、言い換えると、画像生成空間を仮想空間とする場合は、必ずしもARマーカ5は用いなくてもよい。
図4は、投稿者端末(ユーザ端末1500a)による投稿者動画データのサーバシステム1100へのアップロードについて説明するための図である。投稿者端末(ユーザ端末1500a)は、ライブ配信の間、常に、投稿者動画データ710をサーバシステム1100へアップロードし続ける。
投稿者動画データ710は、投稿ユーザ2aが投稿する動画に係るデータであって、投稿ユーザ2aの投稿時のアバターに相当する投稿者キャラクタ4を、仮想空間画像又は拡張現実空間画像として表示させるためのデータを含む。言い換えると、投稿者動画データ710は、投稿者端末(ユーザ端末1500a)で操作される投稿者キャラクタ4が行動可能な仮想空間又は拡張現実空間である画像生成空間の投稿者キャラクに係る最新状態を記述するデータである。
具体的には、投稿者動画データ710は、例えば、投稿者モーションデータ712と、投稿者音声データ713と、投稿素材データ714とを含む。本実施形態では、投稿者モーションデータ712と投稿者音声データ713とは、ライブ配信の主素材とし、投稿素材データ714は、ライブ配信の副素材とする。投稿素材データ714は、例えば、別途録画されたゲームプレイ動画であったり、背景画像、スーパーインポーズ用の素材データ、効果音データ、ライブ配信の画面レイアウト等である。投稿素材データ714の種類や数は図示の例に限らず、投稿ユーザ2aが自由に決められる。
図5は、配信用動画の生成と配信について説明するための図である。サーバシステム1100は、投稿者端末(1500a)から投稿者動画データ710を受信すると、これに基づいてライブ配信用の配信用動画22を生成する。具体的には、サーバシステム1100は、配信用動画22を生成するための仮想3次元空間を設定し、ここに投稿ユーザ2aが予め登録した投稿者キャラクタ4のオブジェクトを配置して、投稿者モーションデータ712に従って投稿者キャラクタ4をリアルタイムに動作制御する。また、仮想3次元空間に、当該ライブ配信の視聴ユーザ2bが予め登録していた視聴者キャラクタ6のオブジェクトと、画像生成のための視点となる仮想カメラとを配置する。
ライブ配信の配信用動画22を仮想空間画像のみとする場合、端的に言えば3DCGのみで構成された画像とする場合には、仮想カメラは、所定の初期位置に固定配置される。そして、サーバシステム1100は、その様子を仮想カメラで撮影した画像をレンダリングし、配信用動画のベース画像とする。
ライブ配信の配信用動画22を拡張現実空間画像とする場合には、仮想カメラは、ARマーカ5と投稿者端末(1500a)との相対位置・相対姿勢を再現し、カメラ1520の撮影画角を再現して配置する。そして、サーバシステム1100は、仮想カメラで撮影した投稿者キャラクタ4や視聴者キャラクタ6をレンダリングし、投稿者動画データ710に含まれている現実空間の画像に合成して、配信用動画22のベース画像とする。
そして、サーバシステム1100は、ベース画像へ投稿素材データ714を画像合成し、投稿者音声データ713を音声合成して、配信用動画22を生成する。そして、視聴者端末(ユーザ端末1500b)へライブ配信する。
なお、ライブ配信なので、配信用動画22は、モニター用として投稿者端末(ユーザ端末1500a)にも配信される。
[投稿ユーザと視聴ユーザの連携について]
1.概要
さて、動画配信システム1000は、投稿ユーザ2aと視聴ユーザ2bとが画像生成空間内で連携できるように構成されている。具体的には、投稿ユーザ2aが画像生成空間に設定したイベントエリアを標的として視聴ユーザ2bが投げ銭をし、玉入れ的なミニゲームをプレイできるようになっている。
図6は、ミニゲームに係る配信用動画22の例を示す図であって、(1)イベントエリアが設定される前の画像の例と、(2)イベントエリアが設定され、ミニゲームをプレイ中の画像の例と、をそれぞれ示している。
サーバシステム1100は、投稿者端末(ユーザ端末1500a)から所定のイベントエリア設定リクエストを受け付けると、画像生成空間(仮想3次元空間)に配置されている仮想カメラの位置や画面内のレイアウトを、投稿者キャラクタ4から離すように自動変更、或いは撮影画角の設定を広角側へ自動変更して、配信用動画22の中でミニゲームがプレイできるだけのスペースを作る。
次に、サーバシステム1100は、イベントエリア設定処理を行って画像生成空間にイベントエリアを設定する。イベントエリア設定処理では、先ず、投稿者端末(ユーザ端末1500a)にてイベントエリアオブジェクト30の選択肢を提示する。そして、投稿ユーザ2aによるイベントエリア選択操作と配置操作(例えば、メニューからのドラッグ&ドロップ操作)に応じて画像生成空間内の指定位置にイベントエリアオブジェクト30を配置し、イベントエリアを設定する。
イベントエリアオブジェクト30は、イベントエリアを規定するオブジェクトである。イベントエリアオブジェクト30には、形状、大きさ、動作が異なる複数種類が予め用意される。図6の例では、玉入れのカゴとして機能するが開口方向を変えるように回転するリング型のイベントエリアオブジェクト30aと、それぞれ開口の大きさが異なるカップ型のイベントエリアオブジェクト30b,30cとを例示している。勿論、ミニゲームの内容に応じて、その形状は適宜設定可能である。
より詳細には、各イベントエリアオブジェクト30には、ミニゲームでの成功難易度が高いもののエリア属性を「S」、成功難易度が低いもののエリア属性を「B」、その間の中程度のもののエリア属性を「A」としてエリア属性が予め設定される(図11を参照)。すなわち、本実施形態のミニゲームでは、投げ銭として用いられる投げ銭アイテムがイベントエリアオブジェクト30の開口に入ると投入成功(正確には位置関係条件を満たす)として特典を付与するのであるが、その形状や大きさ、動作から開口に入れることが難しいイベントエリアオブジェクト30aには、エリア属性として「S」が設定される。エリア属性「A」や「B」についても同様の観点から設定される。なお、エリア属性の種類や数は一例であって、4種類以上であってもよいし、2種類でも構わない。
ここでのイベントエリア設定処理により、イベントエリアの種類、数、および位置が可変に設定される。なお、イベントエリア選択操作および配置操作に際して投稿ユーザ2aによるイベントエリアオブジェクト30のサイズ変更操作を併せて受け付けて、その大きさについても可変に設定するとしてもよい。
その後、投稿ユーザ2aが声で、或いはテロップの挿入等によって視聴ユーザ2bへ向けてミニゲームのプレイを促すと、視聴ユーザ2bはこれに応えて、イベントエリアオブジェクト30を目がけて「投げ銭」を開始する。
投げ銭は、投げ銭リクエスト操作を入力し、続いてアクション操作を入力することで投入できる。そして、投げ銭リクエスト操作は、画面にタッチしてメニューウィンドウを表示させ、そこで投げ銭アイテムを選択するとともに、投げ銭アイテムの軌道の種類を選択することで行う。
図7は、メニューウィンドウの表示例を示す図である。図7に示すように、メニューウィンドウには、選択可能な投げ銭アイテムの一覧を提示してその選択を受け付けるアイテムメニューM11と、選択可能な軌道種類の一覧を提示してその選択を受け付ける軌道メニューM13とを備える。視聴ユーザ2bは、アイテムメニューM11から投げ銭に用いる投げ銭アイテムを選択し、軌道メニューM13から投げ銭の軌道種類を選択して、投げ銭リクエスト操作を入力する。
ここで、アイテムメニューM11が提示するのは、当該メニューウィンドウを表示させた視聴者端末(ユーザ端末1500)の視聴ユーザ2bが所有する投げ銭アイテム8の一覧である。視聴ユーザ2bは、事前に投げ銭アイテム8を購入した上でそれをアイテムメニューM11から選択して、投げ銭に用いる。
より詳細には、投げ銭アイテム8には、イベント属性と対応させた「S」「A」「B」のうちの何れかがアイテム属性として予め設定される。例えば、図7では、アイテム属性が「S」の投げ銭アイテム「S玉」と、アイテム属性が「A」の投げ銭アイテム「A玉」と、アイテム属性が「B」の投げ銭アイテム「B玉」の3種類を例示している。そして、これらの各投げ銭アイテム8には、その購入時に支払う対価が個々に設定されている。本実施形態では、その単価がアイテム属性に応じた額とされ、「S」「A」「B」の順に高額とされる。
投入実行のアクション操作は、適宜設定可能である。図8は、投入実行のアクション操作の一例を示す図である。なお、図8では、操作の理解を容易にするために、アクション操作に関連するもの以外は破線で示している。図8に示すように、投入実行のアクション操作は、例えば配信用動画22内の視聴者キャラクタ6を起点とし、イベントエリアオブジェクト30に向けて行うフリック操作(図8中の網掛け矢印)とされる。
そして、サーバシステム1100は、フリック操作の向きで投げ銭アイテム8の投入方向を設定し、フリックの速さ又はフリックされている長さで飛距離(移動距離)を設定する。そして、射出点を視聴者キャラクタ6とし、その軌道(移動経路)を軌道メニューM13(図7を参照)で選択された軌道種類に従って設定する。
勿論、投入実行のアクション操作は、フリック操作に限らない。例えば、アクション操作は、配信用動画22内の視聴者キャラクタ6を起点として、投げ銭アイテム8の軌道を指で描くことで行ってもよい。その場合は、アクション操作に従って軌道を決定するため、軌道メニューM13での選択は不要となる。
或いは、画面上で、所望の投入方向に沿って移動させたい向きとは逆向きにスライド操作し、その後画面から指を離す(投げ銭アイテム8の投入方向とは逆向きに引っ張って離す)操作を、アクション操作入力として受け付けるとしてもよい。また、タッチパネル1506が押圧検出が可能なタイプであれば、視聴者キャラクタ6の表示位置とタッチ位置との相対位置で投げ銭アイテム8の投入方向を設定し、押圧力で飛距離を設定することもできる。その他、視聴ユーザ2bの音声入力によってアクション操作入力を受け付けるのでもよい。例えば、マイク1512で視聴ユーザ2bの音声を集音し、音声解析してアクション操作入力を検出するとしてもよい。
そして、サーバシステム1100は、投入実行のアクション操作の入力を検出すると、選択された投げ銭アイテム8を画像生成空間において視聴者キャラクタ6の付近に出現させ、設定した軌道上を、アクション操作に基づいて設定した投入諸元で移動させる。
本実施形態では、ミニゲームにおいて視聴ユーザ2bがアクション操作を入力して投げ銭アイテム8の投入実行を行った場合であって、当該投げ銭アイテム8がイベントエリアオブジェクト30に対して所与の位置関係条件を満たした場合に、投稿ユーザ2aおよび/又はアクション操作入力を行った視聴ユーザ2bに特典を付与する特典付与処理を実行する。
2.位置関係条件について
図9は、位置関係条件について説明するための図である。サーバシステム1100は、アクション操作に基づいて移動させた投げ銭アイテム8が、何れかのイベントエリアオブジェクト30に対して所与の位置関係条件を満たしたか否かを判定する。本実施形態では、イベントエリアオブジェクト30の開口に投げ銭アイテム8が入ることを位置関係条件として判定する。具体的には、図9(1)が、回転するリング型のイベントエリアオブジェクト30aの開口に投げ銭アイテム8が入った場合の例を示し、図9(2)が、カップ型のイベントエリアオブジェクト30bや30cの開口に投げ銭アイテム8が入った場合の例を示している。
そして、位置関係条件を満たした場合には(具体的には、投げ銭アイテム8がイベントエリアオブジェクト30の開口に入れば)、サーバシステム1100は、特典付与処理を実行する。
なお、画像生成空間中に出現した投げ銭アイテム8は、所定時間すると画像生成空間から消去される。つまり、イベントエリアオブジェクト30の開口に入らなかったとみなされた投げ銭アイテム8については、画像生成空間内で暫く床に置かれたままとなり、やがて消える。
3.特典付与処理について
本実施形態の特典付与処理では、サーバシステム1100は、投稿ユーザ2aと、アクション操作入力を行った(投げ銭アイテム8を用いて投げ銭を投入した)視聴ユーザ2bの両方に特典を付与する。勿論、投稿ユーザ2aおよび視聴ユーザ2bの何れか一方に特典を付与する処理とすることもできる。
具体的には、特典付与処理では、上記位置関係条件を満たした(投入に成功したともいえる)投げ銭アイテム8毎にその単価(以下、「投入額」という)を基準とした投入ポイントを求め、投入ポイントを累積して総投入ポイントを算出する。また、この投入ポイントを視聴ユーザ2b毎に累積して、視聴者別投入ポイントを算出する。そして、例えばライブ配信を終了した後、投稿ユーザ2aに対しては、最終的な総投入ポイントを付与することで特典付与を行う。一方、視聴ユーザ2bに対しては、最終的な視聴者別投入ポイントを付与することで特典付与を行う。
付与されたポイントは、後に各種報酬との引き換えに使用される。例えば、投げ銭アイテム8や投稿者キャラクタ4、視聴者キャラクタ6といった動画配信システム1000で利用可能なオブジェクトの他、他のゲーム等で利用可能なキャラクタやアイテム等を報酬として用意しておくことができる。勿論、投入された投げ銭アイテム8がイベントエリアオブジェクト30に入ったタイミングで、これらアイテム等を特典として付与するとしてもよい。
投入ポイントは、基準投入ポイントに各種ボーナスポイントを加算することで算出する。先ず、基準投入ポイントは、例えば図10に示すように、算出対象の投げ銭アイテム8が位置関係条件を満たしたイベントエリアオブジェクト30(当該投げ銭アイテム8が入ったイベントエリアオブジェクト30)のエリア属性をもとに、投入額を調整することで算出する。すなわち、基準投入ポイントは、算出対象の投げ銭アイテム8に支払った対価の額を基準にして、エリア属性に応じた調整値を乗じて求める。図10の例では、エリア属性が示す成功難易度が高いほど、投入額が高く調整されるようになっている。
次に、基準投入ポイントに加算するボーナスポイントとして、属性一致ボーナスと、連続投入ボーナスとを算出する。
属性一致ボーナスは、算出対象の投げ銭アイテム8のアイテム属性と、算出対象の投げ銭アイテム8と位置関係条件を満たしたイベントエリアオブジェクト30のエリア属性との一致/不一致に基づき算出する。すなわち、例えば、エリア属性が「S」であるイベントエリアオブジェクト30aにアイテム属性が同じ「S」の投げ銭アイテム8であるS玉8aが入れば、属性一致ボーナスが加算されることとなる。同様に、イベントエリアオブジェクト30bにA玉8bが、イベントエリアオブジェクト30cにB玉8cが入れば、属性一致ボーナスが加算される。そして、属性一致ボーナスは、例えば図11に示すように、一致した属性に応じた割合を用いて投入額の当該割合分として算出する。より詳細には、当該割合は、例えば、エリア属性が示す成功難易度が高いほど大きい値として、予め定められる。これにより、投げ銭アイテム8のアイテム属性と、それが入ったイベントエリアオブジェクト30のエリア属性との一致/不一致に応じて付与する特典が可変に制御される。
連続投入ボーナスは、同一の視聴ユーザ2bが連続して投げ銭に成功した連続成功回数Naを計数し、現在の連続成功回数Naの数値を用いて投入額の当該割合分を算出する。例えば、図12の例では、視聴ユーザ2bが投げ銭に成功したとき連続成功回数Naが3回の場合、そのときの投入額の3%分が連続投入ボーナスとして算出される。これにより、同一の視聴ユーザ2bが連続して投げ銭に成功した場合と、そうでない場合とで異なる特典を付与することができる。
以上のように各ボーナスポイントを算出したら、それらを基準投入ポイントに加えて算出対象の投げ銭アイテム8に係る投入ポイントとする。その後は、当該投入ポイントを総投入ポイントに加算し、総投入回数Nbを更新する。
そして、本実施形態では、更新後の総投入回数Nbに基づいて、総投入ポイントに加算するボーナスポイントである総投入回数ボーナスを算出する。例えば、図13に示すように、総投入回数ボーナスは、予め段階的な総投入回数Nbの到達回数(Ta,Tb,Tc,・・・)毎に加算するボーナスポイント(Pa,Pb,Pc,・・・)を設定した総回数ボーナス算出テーブル535(図17を参照)を用意しておくことで算出する。これにより、アクション操作入力を受け付けた回数に応じて付与する特典が可変に制御される。
4.イベントエリアについて
上記したように、イベントエリアは、投稿ユーザ2aによるエリア選択操作と配置操作に応じて画像生成空間にイベントエリアオブジェクト30を配置することで、イベントエリアを設定する。そのため、ミニゲームの開始当初は、当該投稿ユーザ2aが選んだイベントエリアオブジェクト30が、その指定位置において規定のサイズで表示される。
ただし、本実施形態では、サーバシステム1100は、その数や大きさ、位置について、配信用動画22の視聴者数に応じて随時変更するイベントエリア設定変更処理を行う。例えば、視聴者数が増えるほど投げ銭アイテム8が入り易いように、イベントエリアオブジェクト30を大きくして開口を広げるとか、画像生成空間における位置を中央寄りに移動させるといった変更制御を行う。さらに、到達した視聴者数によっては、当初はなかったイベントエリアオブジェクト30を追加して配置したり、或いは当初はあったイベントエリアオブジェクト30を消去する等してイベントエリアの数を増減させる変更制御を行う。
5.投げ銭アイテムの飛距離および軌道について
上記したように、投げ銭アイテム8の飛距離はアクション操作入力に基づいて決定し、軌道の種類については、軌道メニューM13(図7を参照)から視聴ユーザ2bが選択する。
ただし、本実施形態では、サーバシステム1100は、飛距離を決定する際に基準とする到達可能距離を、そのアクション操作入力時の視聴者数に応じて変更する。例えば、視聴者数が多いほど到達可能距離を長く(視聴者数が少ないほど到達可能距離を短く)決定する。到達可能距離は、アクション操作入力で飛翔させることができる最大距離のことである。そして、アクション操作入力(フリックの速さ又は長さ)をもとに、決定した到達可能距離内で飛距離を設定する。また、サーバシステム1100は、軌道メニューM13において選択可能な軌道種類を、当該アクション操作入力時の視聴者数に応じて変更する。例えば、視聴者数の数が多いほど、軌道メニューM13において選択肢として提示する軌道種類の数を増やす。
6.高額投入者の報知
本実施形態では、サーバシステム1100は、位置関係条件を満たした投げ銭アイテム8についてアクション操作入力を行った視聴ユーザ2b(投げ銭アイテム8のイベントエリアオブジェクト30への投入に成功した視聴ユーザ2b)を報知する。本実施形態では、サーバシステム1100は、上記視聴者別投入ポイントが所定の閾値を超えた場合に、その視聴ユーザ2bを高額投入者と判定する。そして、高額投入者と判定した視聴ユーザ2bを報知対象として、そのユーザ名等の視聴者情報を配信用動画22において表示することで報知する。例えば、当該視聴者情報を、投稿者キャラクタ4の衣装部分に表示する。
なお、報知の手法は特に限定されない。例えば、画面上に視聴者情報をバナー表示したりテロップ表示したりするのでもよい。或いは、当該視聴者情報の読み上げ音声を音出力することで報知を行うとしてもよい。また、高額投入者を判定するための閾値を段階的に複数設定しておき、到達した閾値に応じて表示時の文字サイズや表示時間、音出力時の音量や読み上げ音声の繰り返し出力回数等を変更して報知することも可能である。例えば、視聴者別投入ポイントがより高い閾値に到達するほど目立つように長く視聴者情報が表示されるといった具合である。
[機能構成]
1.サーバシステム
図14は、サーバシステム1100の1例を示すブロック図である。図14に示すように、本実施形態のサーバシステム1100は、操作入力部100sと、サーバ処理部200sと、画像表示部390sと、音出力部392sと、通信部394sと、サーバ記憶部500sとを備える。
操作入力部100sは、システム管理や保守等のための各種操作を入力するためのものであり、例えばキーボードやマウス、タッチパネル等で実現できる。図1では、キーボード1106やタッチパネル1108がこれに該当する。
サーバ処理部200sは、例えばCPUやGPU、ASIC、FPGA等の演算回路であるプロセッサや、ICメモリ等の電子部品によって実現でき、操作入力部100sやサーバ記憶部500sを含む装置各部との間でデータの入出力制御を行う。そして、所定のプログラムやデータ、操作入力部100sからの操作入力信号、ユーザ端末1500から受信したデータ等に基づいて各種の演算処理を行い、サーバシステム1100の動作を統括制御する。図1では、制御基板1150やそのCPU1151がこれに該当する。
このサーバ処理部200sは、ユーザ管理部201と、オンラインショッピング管理部203と、ゲーム管理部204と、投稿者動画データ取得制御部205と、移動体制御部207と、配信用動画生成制御部209と、イベントエリア設定部211と、特典付与制御部215と、ランキング表示制御部219と、計時部280sと、画像生成部290sと、音生成部292sと、通信制御部294sとを備える。
ユーザ管理部201は、ユーザ登録手続きに係る処理およびユーザアカウントに紐付けられる各ユーザのデータの管理を行う。本実施形態では、ユーザ管理部201は、1)登録ユーザへの固有のユーザアカウントの付与と、2)ユーザアカウント別に個人情報(例えば、アカウント名)を登録管理する登録情報管理と、3)課金要素(本実施形態ではオンラインショッピング等)の支払いで消費される電子決済媒体の帳簿管理と、4)利用履歴管理と、の各機能を有する。勿論、これら以外のアカウントに紐付けられる他のデータの管理機能も適宜含めることができる。
オンラインショッピング管理部203は、オンラインショッピングに関する制御を担う。公知のオンラインショッピング技術を適宜利用して実現できる。本実施形態では、ユーザは、オンラインショッピングによって、投げ銭アイテム8を購入することができる。勿論、オンラインショッピングにおける販売対象は、これら以外にも適宜設定可能である。
ゲーム管理部204は、ユーザ端末1500にてオンラインゲームを実行するための各種制御を行う。
投稿者動画データ取得制御部205は、投稿者端末で操作される投稿者キャラクタ4が行動可能な仮想空間又は拡張現実空間である画像生成空間の投稿者動画データ710を、投稿者端末から取得する制御を行う(図4を参照)。
移動体制御部207は、視聴者端末からのアクション操作入力を受け付けて、画像生成空間中に移動体を出現・移動させる制御を行う。本実施形態でいう所の、投げ銭アイテム8を用いた「投げ銭」に係る制御である。画像生成空間への投げ銭アイテム8の新たな配置制御並びに当該投げ銭アイテム8の移動制御が、これに該当する(図6~図8を参照)。
より詳細には、移動体制御部207は、アクション操作入力時の視聴者数に基づいて投げ銭アイテム8の到達可能距離を決定するとともに、投稿ユーザ2aが選択可能な投げ銭アイテム8の軌道種類を決定する。そして、決定した到達可能距離を用い、当該アクション操作入力に基づいて移動体の投入方向や飛距離を設定するとともに、投稿ユーザ2aが選択した軌道種類に基づいて軌道を設定して、投げ銭アイテム8の移動制御を行う。
配信用動画生成制御部209は、投稿者動画データ710に基づく画像と、移動体とを合成した画像生成空間の配信用動画22を生成する制御を行う(図5を参照)。また、配信用動画生成制御部209は、投入ポイント算出部217によって算出された視聴者別投入ポイント742が所定の閾値を超えた場合に、該当する視聴ユーザ2bの視聴者情報を報知する画像または音声を、配信用動画22に含めて生成する。本実施形態でいう所の、投稿者キャラクタ4の衣装部分への視聴者情報の表示が、これに該当する。
イベントエリア設定部211は、画像生成空間に、それぞれエリア属性が設定されたイベントエリアを設定するイベントエリア設定処理を行う。その際、投稿ユーザ2aの操作入力に基づいて、イベントエリアの数、大きさ、および位置のうちの少なくとも1つを可変に設定する。本実施形態でいう所の、投稿者端末からの所定のイベントエリア設定リクエスト、並びにイベントエリア選択操作と配置操作に基づいて、画像生成空間の指定位置に1つ又は複数のイベントエリアオブジェクト30を配置する制御(図6を参照)が、これに該当する。
このイベントエリア設定部211は、設定変更部213を備える。設定変更部213は、視聴者数705に基づいてイベントエリアの数、大きさ、および位置のうちの少なくとも1つを可変に設定するイベントエリア設定変更処理を行う。本実施形態では、イベントエリア設定変更テーブル560を用い、画像生成空間に配置されているイベントエリアオブジェクト30の数や大きさ、位置を変更する制御を行う。
特典付与制御部215は、イベントエリアに対して移動体が所与の位置関係条件を満たしたか否かに基づいて、投稿ユーザ2aおよび/又はアクション操作入力を行った視聴ユーザ2bに所与の特典を付与する特典付与処理を実行する。
「位置関係条件」は、イベントエリアへの移動体の接近、到達、接触、通過のうちの1つ又は複数をANDやORで組み合わせて記述できる。本実施形態でいう所の、イベントエリアオブジェクト30に投げ銭アイテム8が入ることが、位置関係条件を満たしたことに該当する(図9を参照)。そして、投稿ユーザ2aへの総投入ポイントの付与および視聴ユーザ2bへの視聴者別投入ポイントの付与が、特典の付与に該当する。
この特典付与制御部215は、投入ポイント算出部217を備える。投入ポイント算出部217は、位置関係条件を満たしたイベントエリアオブジェクト30のエリア属性や投げ銭アイテム8のアイテム属性、アクション操作入力を行った視聴ユーザ2b等をもとに基準投入ポイント、属性一致ボーナス、および連続投入ボーナスを求めて投入ポイントを算出し、総投入回数ボーナスを算出して、総投入ポイントと視聴者別ポイントとを更新する。そして、特典付与制御部215は、ライブ配信の終了後、最終的な総投入ポイントを投稿者特典ポイントとして、投稿ユーザ2aに付与する。また、最終的な視聴者別投入ポイントを視聴者特典ポイントとして、該当する視聴ユーザ2bに付与する。
ランキング表示制御部219は、配信用動画22のライブ配信を終了した後、視聴者別投入ポイントの大きい順に視聴ユーザ2bをランク付けするランキング処理を行って、ランキングを各視聴者端末に表示する制御を行う。
計時部280sは、システムクロックを利用して現在日時や制限時間等の計時を行う。
画像生成部290sは、画像の生成、画像の合成、画像表示部390sにそれらを表示させる画像信号の出力を行う。本実施形態では、サーバシステム1100のシステム管理に関する画像等の各種の画像・映像を生成する機能の一部を担う。また、画像生成部290sは、画像生成空間に設置された仮想カメラで撮影した画像のレンダリング、画像合成処理等を行って、配信用動画22を生成する。システム管理に関する画像信号は、画像表示部390sへ出力される。
音生成部292sは、音声データの生成やデコードをするICやソフトウェアの実行により実現され、サーバシステム1100のシステム管理や動画視聴等に係る操作音、BGM等の音声データを生成し、或いはデコードする。また、音生成部292sは、複数の音声を重畳合成する音声合成処理を実行する。システム管理に関する音声信号は、音出力部392sへ出力される。
通信制御部294sは、通信部394sを介して外部装置(例えばユーザ端末1500)とのデータ通信のための通信接続およびデータ処理を行い、外部装置とのデータのやりとりを実現する。
画像表示部390sは、画像生成部290sから入力される画像信号に基づいてシステム管理等のための各種画像を表示する。例えば、フラットパネルディスプレイ、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。図1では、タッチパネル1108がこれに該当する。
音出力部392sは、音生成部292sから入力される音声信号を放音する。図1では、本体装置1101やタッチパネル1108が備えるスピーカ(不図示)がこれに該当する。
通信部394sは、ネットワーク9と接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現される。図1では、通信装置1153がこれに該当する。
サーバ記憶部500sには、サーバシステム1100を動作させ、サーバシステム1100が備える種々の機能を実現するためのプログラムや、このプログラムの実行中に使用されるデータ等が予め格納され、或いは処理の都度一時的に格納される。例えば、RAMやROM等のICメモリ、ハードディスク等の磁気ディスク、CD-ROMやDVD等の光学ディスク、オンラインストレージ等によって実現できる。図1では、ICメモリ1152やストレージ1140がこれに該当する。
図15は、本実施形態におけるサーバ記憶部500sが記憶するプログラムやデータの例を示す図である。本実施形態におけるサーバ記憶部500sは、サーバプログラム501と、配信用クライアントプログラム503と、キャラクタ定義データ510と、イベントエリアオブジェクト定義データ520と、ポイント算出テーブルデータ530と、アイテム定義データ540と、軌道定義データ550と、イベントエリア設定変更テーブル560と、を格納する。
また、サーバ記憶部500sは、逐次生成・管理されるデータとして、ユーザ管理データ600と、配信管理データ700と、現在日時800と、を格納する。勿論、サーバ記憶部500sは、その他のプログラムやデータ(例えばタイマや、カウンタ、各種フラグ等)も適宜記憶できる。
サーバプログラム501は、サーバ処理部200sをユーザ管理部201、オンラインショッピング管理部203、投稿者動画データ取得制御部205、移動体制御部207、配信用動画生成制御部209、イベントエリア設定部211、特典付与制御部215、およびランキング表示制御部219として機能させるためのプログラムである。
配信用クライアントプログラム503は、ユーザ端末1500へ提供されるクライアントプログラム502(図21を参照)の原本である。本実施形態では、配信用クライアントプログラム503は、ユーザ端末1500を投稿者端末として機能させるための配信用投稿クライアントプログラム503bと、ユーザ端末1500を視聴者端末として機能させるための配信用視聴クライアントプログラム503cと、を含む。なお、これらは別々にユーザ端末1500へ配信されるとしてもよい。
キャラクタ定義データ510は、投稿ユーザ2aが自らのアバターに相当する投稿者キャラクタ4として選択可能なキャラクタ毎に用意され、当該キャラクタに係る各種初期設定データを格納する。例えば、キャラクタの種類や能力パラメータ値、モデルデータ、当該キャラクタが実行可能な動作を定義する動作パターン定義データ等を含む。
イベントエリアオブジェクト定義データ520は、イベントエリアオブジェクト30の種類毎に用意され、当該オブジェクトについての各種初期設定データを格納する。例えば、1つのイベントエリアオブジェクト定義データ520は、図16に示すように、該当するイベントエリアオブジェクト30のエリア種類521と、当該オブジェクトのエリア属性523と、当該オブジェクトのオブジェクトモデルデータ525と、当該オブジェクトの自動動作(例えば、最初に決定された配置位置からランダムに移動する運動、往復運動、回転運動、拡大/縮小を繰り返す形状変動等)の内容を定義するイベントエリア動作データ527と、を含む。
図15に戻る。ポイント算出テーブルデータ530は、総投入ポイントや視聴者別投入ポイントを算出するのに用いる各種テーブルデータを格納する。本実施形態では、ポイント算出テーブルデータ530は、図17に示すように、基準投入ポイント算出テーブル531と、属性一致ボーナス算出テーブル533と、総回数ボーナス算出テーブル535と、を含む。
基準投入ポイント算出テーブル531は、投入ポイントの算出に際して投入額に乗じる調整値(図10を参照)を、エリア属性の種類と対応付けて設定したデータテーブルである。属性一致ボーナス算出テーブル533は、エリア属性の種類と対応付けて、それとアイテム属性が一致した場合の属性一致ボーナスの算出に用いる割合(図11を参照)を設定したデータテーブルである。総回数ボーナス算出テーブル535は、総投入回数Nbの到達回数(Ta,Tb,Tc,・・・)と、総投入回数ボーナスとするボーナスポイント(Pa,Pb,Pc,・・・)との対応関係(図13を参照)を設定したデータテーブルである。
図15に戻る。アイテム定義データ540は、投げ銭アイテム8の種類毎に用意され、当該アイテムについての各種初期設定データを格納する。例えば、1つのアイテム定義データ540は、図18に示すように、該当する投げ銭アイテム8のアイテム種類541と、当該アイテムのアイテム属性543と、当該アイテムを配信用動画22において表示するためのアイテム表示体データ545とを含む。
図15に戻る。軌道定義データ550は、投げ銭アイテム8の移動制御に用いる軌道種類毎に用意され、その移動パターンデータ等を格納する。
イベントエリア設定変更テーブル560は、段階的に増加する複数の到達視聴者数と対応付けて、イベントエリアオブジェクト30の数や大きさ、位置を変更するための変更制御内容を設定したデータテーブルである。設定変更部213は、視聴者数705がイベントエリア設定変更テーブル560に設定された各到達視聴者数まで増加するたびに、対応する変更制御内容に従って、画像生成空間内のイベントエリアオブジェクト30の数、大きさ、および位置のうちの少なくとも1つを変更する制御を行う。変更制御内容には、イベントエリアオブジェクト30の大きさや位置を変更するための制御内容や、イベントエリアオブジェクト30を追加または消去するための制御内容が適宜設定される。
ユーザ管理データ600は、動画配信システム1000の登録ユーザ毎に用意され、当該ユーザに関する各種データを格納する。例えば、1つのユーザ管理データ600は、図19に示すように、該当するユーザのユーザアカウント601と、所有アイテム管理データ603と、ユーザ属性605と、特典ポイントデータ607と、ゲームセーブデータ608と、投稿者キャラクタ設定データ609と、視聴者キャラクタ設定データ611と、を含む。
所有アイテム管理データ603は、所有する(使用権を有していると同義)投げ銭アイテム8の種類毎に用意され、そのアイテム種類や所有残数等を格納する。
ユーザ属性605は、当該ユーザがユーザ登録の際に選択した属性である。
特典ポイントデータ607は、そのユーザが投稿ユーザ2aであったときに特典ポイントとして付与された総投入ポイントや、そのユーザが視聴ユーザ2bであったときに特典ポイントとして付与された視聴者別投入ポイントを累積して格納する。特典ポイントが別途用意された報酬と引き換えに使用されたときには、その分が差し引かれて更新される。
ゲームセーブデータ608は、当該ユーザによるゲームプレイのセーブデータである。ゲームセーブデータ608は、プレイ毎の進捗状況を記録したプレイ履歴データ6081を含む。
投稿者キャラクタ設定データ609は、当該ユーザが投稿をする際に使用する投稿者キャラクタ4の設定データである。例えば、そのキャラクタ種類や、当該投稿者キャラクタ4に設定されている各種パラメータ値等を格納する。
視聴者キャラクタ設定データ611は、当該ユーザが視聴をする際に使用する視聴者キャラクタ6の設定データである。例えば、そのキャラクタ種類や、当該視聴者キャラクタ6に設定されている各種パラメータ値等を格納する。
図15に戻る。配信管理データ700は、ライブ配信毎に作成され、当該配信の最新状態を記述する各種データを格納する。例えば、1つの配信管理データ700は、図20に示すように、配信ID701と、投稿ユーザアカウント702と、視聴ユーザアカウントリスト703と、視聴者数705と、投稿者動画データ710と、画像生成空間管理データ730と、投入ポイント管理データ740と、配信用動画データ750と、ランキングデータ760と、を含む。
投稿者動画データ710は、投稿ユーザアカウント711と、投稿者モーションデータ712と、投稿者音声データ713と、投稿素材データ714と、を含む。
画像生成空間管理データ730は、ライブ配信用動画を生成するための仮想空間又は拡張現実空間の状態を記述する各種データを格納する。本実施形態では、ライブ配信用動画を3DCGの映像とするので、画像生成空間管理データ730は、画像生成空間の管理データと同義となる。
この画像生成空間管理データ730は、画像生成空間ID731と、ライブ配信のベースとなる投稿を示すベース投稿ID732と、投稿者キャラクタ制御データ733と、仮想カメラ制御データ734と、イベントエリアの設定毎に作成されるイベントエリアオブジェクト制御データ735と、視聴者キャラクタ制御データ736と、投げ銭の投入(アクション操作の入力)が行われる毎に作成されるアイテム制御データ737とを含む。
投稿者キャラクタ制御データ733は、投稿ユーザ2aのユーザアカウント、画像生成空間における投稿者キャラクタ4の状態を表すデータ(例えば、位置座標、姿勢、移動速度、動作制御データ等)を含む。
仮想カメラ制御データ734は、ライブ配信用動画の映像をレンダリングする際の視点となる位置、姿勢、画角等の情報を格納する。
イベントエリアオブジェクト制御データ735は、該当するイベントエリアオブジェクト30のイベントエリアIDやイベントエリアオブジェクト種類、画像生成空間における当該オブジェクトの状態を表す状態データ(例えば、大きさ、位置座標、姿勢、移動速度、動作制御データ等)を含む。
視聴者キャラクタ制御データ736は、視聴者キャラクタ6のキャラクタID、視聴ユーザ2bのユーザアカウントや、画像生成空間における視聴者キャラクタ6の状態を表すデータ(例えば、位置座標、姿勢、移動速度、動作制御データ等)を含む。
アイテム制御データ737は、視聴者端末からアクション操作入力を受け付けて、当該アクション操作入力に基づいて画像生成空間中に出現させた投げ銭アイテム8の制御データである。例えば、該当する投げ銭アイテム8のアイテムID、使用者アカウント(当該投げ銭アイテム8を使用した視聴ユーザ2bのアカウント)、出現日時、画像生成空間における位置座標履歴、速度履歴、ヒットした他オブジェクトの履歴等を含む。
投入ポイント管理データ740は、投入ポイント算出部217によって随時算出・更新される総投入ポイント741や視聴者別投入ポイント742の現在値を格納する。また、その他にも、連続投入ボーナスの算出用に計数される連続成功回数Naや、総投入回数ボーナスの算出用に計数される総投入回数Nb、投入ポイントの現在までの算出履歴等を格納する。
ランキングデータ760は、ランキング表示制御部219によるランキング処理結果を格納する。本実施形態では、ライブ配信終了後の最終的な視聴者別投入ポイントによってランク付けされた視聴ユーザ2bのランキングを格納する。
2.ユーザ端末
図21は、本実施形態におけるユーザ端末1500の機能構成例を示す機能ブロック図である。図21に示すように、ユーザ端末1500は、操作入力部100と、音声入力部102と、撮像部104と、端末処理部200と、画像表示部390と、音出力部392と、通信部394と、端末記憶部500とを備える。
操作入力部100は、ユーザによってなされた各種の操作入力に応じた操作入力信号を端末処理部200に出力する。例えば、プッシュスイッチ、ジョイスティック、タッチパッド、トラックボール、加速度センサ、ジャイロ、CCDモジュール等によって実現できる。図2では、方向入力キー1502やボタンスイッチ1504、タッチパネル1506、カメラ1520、がこれに該当する。
音声入力部102は、ユーザが発する音声(ユーザ音声)や環境音を集音し、音声信号を端末処理部200へ出力する。図2では、マイク1512がこれに該当する。
撮像部104は、撮影対象からの光を受光して電気信号に変換し、デジタル画像データを生成して端末処理部200へ出力する。例えば、レンズ、メカシャッター、シャッタードライバ、CCDイメージセンサモジュールやCMOSイメージセンサモジュールといった光電変換素子、光電変換素子から電荷量を読み出し画像データを生成するデジタルシグナルプロセッサ(DSP)、ICメモリ等で実現される。図2では、カメラ1520がこれに該当する。
端末処理部200は、例えばCPUやGPU等のマイクロプロセッサや、ICメモリ等の電子部品によって実現でき、操作入力部100や端末記憶部500を含む各機能部との間でデータの入出力制御を行う。そして、所定のプログラムやデータ、操作入力部100からの操作入力信号、サーバシステム1100から受信した各種データに基づいて各種の演算処理を行い、ユーザ端末1500の動作を制御する。図2では、制御基板1550やそのCPU1551がこれに該当する。そして、本実施形態における端末処理部200は、クライアント制御部260と、計時部280と、画像生成部290と、音生成部292と、通信制御部294とを備える。
クライアント制御部260は、投稿者端末および視聴者端末としての機能を実現する。具体的には、ユーザのモード選択操作入力に応じて、投稿者端末又は視聴者端末の何れかのモードで起動し、サーバシステム1100へアクセスしてログイン手続きの処理をする。
投稿者端末モードで起動した場合、クライアント制御部260は、投稿クライアント制御部261として機能する。投稿クライアント制御部261は、投稿者端末としての機能を実現するための各種処理を行う。具体的には、投稿者動画データ生成部262を有し、投稿者動画データ710の生成と提供に係る各種処理を実行する(図3および図4を参照)。また、投稿クライアント制御部261は、イベントエリア設定リクエストに係る処理を実行する(図6を参照)。
視聴者端末モードで起動した場合、クライアント制御部260は、視聴クライアント制御部263として機能する。視聴クライアント制御部263は、視聴者端末としての機能を実現するための各種処理と、投げ銭の実行に係る処理を実行する(図6~図8を参照)。
画像生成部290は、各種画像データの生成や、画像表示部390にそれらの画像を表示させるための画像信号の生成出力等の制御を行う。
音生成部292は、例えば、デジタルシグナルプロセッサ(DSP)や、音声合成IC等のプロセッサ、音声ファイル再生可能なオーディオコーデック等によって実現され、効果音や操作音、BGM等の音信号を生成して音出力部392に出力する。
通信制御部294は、通信部394を介して外部装置(例えばサーバシステム1100)とのデータ通信のための通信接続およびデータ処理を行い、外部装置とのデータのやりとりを実現する。
画像表示部390は、画像生成部290から入力される画像信号に基づいて各種画像を表示する。例えば、フラットパネルディスプレイ、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。図2では、タッチパネル1506がこれに該当する。
音出力部392は、音生成部292から入力される音信号に基づいて音出力する装置によって実現される。図2では、スピーカ1510がこれに該当する。
通信部394は、ネットワーク9と接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現できる。図2では、無線通信モジュール1553がこれに該当する。
端末記憶部500には、ユーザ端末1500を動作させ、ユーザ端末1500が備える機能を実現するためのプログラムや、このプログラムの実行中に使用されるデータ等が予め格納され、或いは処理の都度一時的に格納される。例えば、RAMやROM等のICメモリ、ハードディスク等の磁気ディスク、CD-ROMやDVD等の光学ディスク等によって実現できる。図2では、ICメモリ1552や、メモリカード1540がこれに該当する。オンラインストレージを利用する構成も可能である。
また、端末記憶部500は、クライアントプログラム502と、オリジナルの投稿者動画データ710と、ライブ配信されている映像と音声を視聴するためのデータであるライブ配信データ582と、を格納する。勿論、これら以外のプログラムやデータも適宜記憶することができる。
クライアントプログラム502は、端末処理部200が読み出して実行することによってクライアント制御部260としての機能を実現させるためのアプリケーションソフトウェアである。本実施形態では、クライアントプログラム502は、サーバシステム1100から提供される配信用クライアントプログラム503(図15を参照)のコピーである。なお、クライアントプログラム502は、専用のクライアントプログラムであってもよいし、ウェブブラウザプログラムおよびインタラクティブな画像表示を実現するプラグイン等により構成するとしてもよい。
[処理の流れ]
次に、本実施形態の動画配信システム1000の動作について説明する。図22および図23は、ライブ配信に係るサーバシステム1100の処理の流れについて説明するためのフローチャートである。
図22に示すように、先ず、サーバシステム1100(投稿者動画データ取得制御部205)は、配信管理データ700を用意して、投稿者端末からの投稿者動画データ710の取得を開始する(ステップS6)。
次いで、サーバシステム1100は、取得した投稿者動画データ710に基づいて、画像生成空間(仮想3次元空間)に投稿者キャラクタ4と仮想カメラを配置し(ステップS8)、投稿者端末からの投稿者キャラクタ4の操作制御を開始する(ステップS10)。そして、サーバシステム1100(配信用動画生成制御部209)は、ライブ配信用の配信用動画22の生成およびライブ配信を開始する(ステップS12)。
投稿ユーザ2aが、イベントを実施したいと思ったならば、投稿者端末にて所定のイベントエリア設定リクエスト操作を入力する。投稿者端末は、当該入力をもってサーバシステム1100へイベントエリア設定リクエストを送信する。
投稿者端末からイベントエリア設定リクエストを受信することをもって当該リクエストを受け付けると(ステップS14のYES)、サーバシステム1100は、イベントスペースを確保すべく仮想カメラのアングルを所定値へ変更する(ステップS16)。その後、サーバシステム1100(イベントエリア設定部211)はイベントエリア設定処理を行い、投稿ユーザ2aの操作入力に基づいて、イベントエリアオブジェクト30を画像生成空間に配置する(ステップS18)。これ以降、配置されたイベントエリアオブジェクト30に動作パターンが設定されていれば、その動作の自動制御を開始する。
続いて、サーバシステム1100(設定変更部213)は、ステップS18で配置したイベントエリアオブジェクト30の数や大きさ、位置を、視聴者数705に応じて随時変更するイベントエリア設定変更処理を開始する(ステップS20)。
その後は、視聴リクエストを待機する。そして、サーバシステム1100は、視聴リクエストを受信すると(ステップS40のYES)、当該リクエストを送信した視聴者端末のユーザを視聴ユーザ2bとして登録(ステップS42)するともに、当該視聴ユーザ2bの視聴者キャラクタ6を画像生成空間に配置する(ステップS44)。またその際、視聴者数705を更新する。
視聴ユーザ2bが、視聴中に投げ銭をしたいと思ったならば、視聴者端末にてアクション操作を入力する。視聴者端末は、当該アクション操作を検出すると、サーバシステム1100へアクション操作に応じたアクションリクエストを送信する。本実施形態では、投げ銭として使用する投げ銭アイテム8のアイテム種類の情報とともに、投げ銭リクエストを送信する。
サーバシステム1100(移動体制御部207)は、視聴者端末から投げ銭リクエストを受信することをもって当該リクエストを受け付けると(ステップS50のYES)、投げ銭として使用する投げ銭アイテム8を、画像生成空間に配置して出現させ(ステップS52)、出現させた投げ銭アイテム8の移動制御を開始する(ステップS54)。
また、サーバシステム1100(投入ポイント算出部217)は、出現済の投げ銭アイテム8の中に位置関係条件を満たした投げ銭アイテム8がある場合には(ステップS70のYES)、投入ポイントを算出し、総投入ポイント741と視聴者別投入ポイント742とを更新する(ステップS72)。
ステップS14~ステップS72は、ライブ配信が終了するまで繰り返される(ステップS80のNO)。そして、ライブ配信が終了したならば(ステップS80のYES)、サーバシステム1100(特典付与制御部215)は、総投入ポイント741を投稿者特典ポイントとして、投稿ユーザ2aに付与するとともに、視聴者別投入ポイント742を視聴者特典ポイントとして、該当する視聴ユーザ2bに付与する(ステップS82)。また、サーバシステム1100(ランキング表示制御部219)は、ランキング処理を行って視聴者別投入ポイント742に基づく視聴ユーザ2bの順位付けを行い、各視聴者端末に表示させる制御を行う(ステップS84)。そして、サーバシステム1100は、一連の処理を終了する。
以上、本実施形態によれば、ライブ形式の動画配信において、投げ銭を利用した新しいサービスをもたらすことできる。すなわち、視聴者端末で投げ銭を投入するアクション操作を入力すれば、ライブ配信されている動画内に投げ銭アイテム8が出現し、それが投入されたかのように移動表示される。そして、投稿者が動画内に設定したイベントエリアに対して投げ銭アイテム8が所与の位置関係条件を満たした場合に、動画の投稿者および/又はアクション操作を入力した視聴者に特典を付与することができる。これによれば、投稿者と視聴者との連携をライブ形式の動画配信にもたらすことができる。したがって、動画配信において投稿者と視聴者との共感を従来よりも高め、同じ動画を介した今までに無い新しいユーザ体験(興趣)が提供できる。
なお、本発明を適用可能な形態は上記した実施形態に限定されるものではなく、適宜構成要素の追加・省略・変更を施すことができる。
[変形例1]
例えば、イベントエリアオブジェクト30を、その表面に企業名等の広告主情報を表示したものとし、当該広告主をエリア属性として設定しておく構成としてもよい。例えば、図24では、「A社」をエリア属性(広告主)とするイベントエリアオブジェクト30d,30eと、「B社」をエリア属性(広告主)とするイベントエリアオブジェクト30fと、が画像生成空間に配置された配信用動画22を示している。
また、このようにする場合には、投げ銭アイテム8が何れのエリア属性のイベントエリアオブジェクト30に入ったのかを管理して、広告主に広告費用を請求することもできる。そのために、本変形例では、位置関係条件を満たした投げ銭アイテム8毎に算出される投入ポイントを、エリア属性毎(本例では広告主毎)にも累積して、エリア属性別投入ポイントを算出する。そして、最終的なエリア属性別投入ポイントに応じた広告費を、広告主各社に請求する。例えば、エリア属性別投入ポイントから視聴ユーザ2bの徴収分(投入額として視聴ユーザ2bが支払った対価分)を差し引いた額を広告費として、そのエリア属性が示す広告主に請求する。
また、このエリア属性別投入ポイントを視聴ユーザ2b毎に累積しておくとしてもよい。そして、最終的な視聴ユーザ2b毎のエリア属性別投入ポイントを、エリア属性毎に用意された報酬と引き換え可能なポイントとして各視聴ユーザ2bに付与することもできる。具体的には、ある視聴ユーザ2bについて累積されたエリア属性別投入ポイントのうち、「A社」に係るエリア属性別投入ポイントはA社用として用意された報酬との引き換えポイントとして、「B社」に係るエリア属性別投入ポイントはB社用として用意された報酬との引き換えポイントとして、当該視聴ユーザ2bに付与する。その場合、視聴ユーザ2bは、例えばA社用の報酬との引き換えポイントが欲しければ「A社」と付されたイベントエリアオブジェクト30d,30eに的を絞って投げ銭アイテム8を投入するといった楽しみ方もできる。引き換え可能な報酬としては、「A社」に対応するアイテム属性が設定された投げ銭アイテムの他、「A社」に関係する他のゲーム等で利用可能なキャラクタやアイテム等が挙げられる。
[変形例2]
また、視聴ユーザ2bによるイベントエリアオブジェクト30の移動指示操作を受け付けるようにしてもよい。例えば、サーバシステム1100は、視聴者端末(ユーザ端末1500a)にて、移動対象のイベントエリアオブジェクト30の選択操作と、移動方向や移動量の指定操作と、を移動指示操作として受け付ける。そして、当該移動指示操作を受け付けたら、それに基づいて画像生成空間における移動対象のイベントエリアオブジェクト30を移動させる。これによれば、視聴ユーザ2bは、目的のイベントエリアオブジェクト30の開口に投げ銭アイテムが入り易いように、その位置を移動させるといったことが可能となる。
[変形例3]
また、上記実施形態では、投げ銭アイテム8のアイテム属性と、それと位置関係条件を満たしたイベントエリアオブジェクト30のエリア属性との一致/不一致に基づいて属性一致ボーナスを算出する例を示したが、アイテム属性にかえてユーザ属性を用いるとしてもよい。具体的には、投げ銭アイテム8がイベントエリアオブジェクト30に入った場合に、そのエリア属性と、当該投げ銭アイテム8を投入するアクション操作入力を行った視聴ユーザ2bのユーザ属性との一致/不一致に基づき属性一致ボーナスを算出するとしてもよい。その場合ユーザは、ユーザ登録の際、イベントエリアオブジェクト30に設定され得るエリア属性の一覧から、自身のユーザ属性を選択する。これにより、投げ銭アイテム8を投入した視聴ユーザ2bのユーザ属性と、それが入ったイベントエリアオブジェクト30のエリア属性との一致/不一致に応じて付与する特典が可変に制御される。
[変形例4]
また、上記実施形態では、更新後の総投入回数Nbに基づいて、総投入ポイントに加算するボーナスポイントである総投入回数ボーナスを算出することとした。これに対し、視聴ユーザ2b毎に投げ銭アイテム8の投入回数を計数し、視聴者別投入ポイントに加算するボーナスポイントを加算する構成としてもよい。これによれば、投げ銭アイテム8の投入に成功した回数に応じて、視聴ユーザ2bに付与する特典が可変に制御される。
[変形例5]
また、上記実施形態では、視聴者数に応じてイベントエリアの数や大きさ、位置を変更する例を示した。これに対し、イベントエリアの数や大きさ、位置を、配信用動画22のライブ配信を開始してからの経過時間に応じて変更するとしてもよい。例えば、イベントエリア設定変更処理と同様の要領で、イベントエリアオブジェクト30の数、大きさ、位置の変更制御を行う。これによれば、例えば、ライブ配信初期では小さかったイベントエリアオブジェクト30を、時間の経過とともに大きくするといったことが可能となる
また、投げ銭アイテム8の到達可能距離や視聴ユーザ2bが選択可能な軌道種類についても同様に、ライブ配信開始からの経過時間に応じて変更するとしてもよい。その場合は、ライブ配信開始からの経過時間に応じて到達可能距離を長くしたり、ライブ配信初期では選択できなかった軌道種類を時間の経過とともに選択可能に変更するといったことが可能となる。
その他、視聴ユーザ2bの再生操作のタイミングで配信用動画22を配信するような場合には、当該配信用動画22に付けられたいわゆる「いいね」の数や投稿日時(配信用動画22の新しさ)、再生回数等に応じて、イベントエリアの数や大きさ、位置を変更したり、投げ銭アイテム8の到達可能距離や視聴ユーザ2bが選択可能な軌道種類を変更するとしてもよい。例えば、「いいね」がたくさんついたものや投稿日時の新しいものについては、イベントエリアの数を多く設定する、といったことが行える。
[変形例6]
また、上記実施形態では、配信用動画22を、投稿素材データ714に投稿者キャラクタ4の映像を合成することにより作成したが、投稿素材データ714をゲームプレイ動画とする場合には、別の手法で作成することができる。
具体的には、サーバシステム1100は、ゲームプレイ毎に図25に示すような、プレイデータ770を記憶管理する。プレイデータ770は、当該ゲームプレイの進行状況を記述するデータや、ゲーム画面を表示するためのデータ等を格納する。そして、プレイデータ770に、プレーヤアカウント771と、当該ゲームプレイに係る仮想3次元空間の一切の事象を再現することができるオリジナルプレイ再現データ772を含める。オリジナルプレイ再現データ772には、例えば、ゲームオブジェクト制御履歴データ773、仮想カメラ制御履歴データ774、操作入力履歴データ775、が含まれる。
オリジナルプレイ再現データ772は、ゲームプレイ終了時に別途保存されて、プレーヤが利用可能になる。具体的には、サーバシステム1100は、ユーザ端末1500からの所与のリクエストに応じて、再現用に仮想3次元空間を用意し、そこにオリジナルプレイ再現データ772に基づいてゲームオブジェクト等を配置する。そして、サーバシステム1100は、配置したゲームオブジェクトにオリジナルプレイでの動きを再現させ、オリジナルプレイで使用された仮想カメラを視点としてレンダリングすることで、オリジナルプレイのプレイ動画を作成する。そして、サーバシステム1100は、当該ユーザ端末にてプレイ動画を表示させプレーヤに見せる。
図26は、当該構成における投稿素材データ714のデータ構成例を示す図である。
上述のように再現されたプレイ動画を適宜編集することで、ゲームプレイ動画の投稿素材データ714を作成できる。具体的には、サーバシステム1100は、ユーザ端末1500へ動画編集画面を表示させて、再現されたプレイ動画(全ゲームプレイの動画)のうち、どの時間範囲をどの順番で接続して1本の動画としているかの編集情報715を作成する。例えば、編集情報715は、動画のカット順に、オリジナルプレイにおける時間経過のどこからどこまでを各カットに採用しているかの時間範囲の情報を格納する。
よって、編集情報715と、プレイデータ770からコピーされたオリジナルプレイ再現データ(写)716と、をもって、ゲームプレイ動画の投稿素材データ714とすることができる。再現用に仮想3次元空間を用意して、編集情報715に従って、カットの順にオリジナルプレイ再現データ(写)716から当該カットの時間範囲分の情報を読み出し、読み出した情報に基づいてゲームオブジェクトやオリジナル仮想カメラを配置する。そして、当該カットの時間範囲分だけ、動作制御とレンダリングを行う。これを、全カットに渡り連続的に実行することで、投稿素材データ714からゲームプレイ動画が生まれる。
なお、投稿素材データ714には、適宜、素材提供者アカウント717を含めることとすると、投稿素材の出自に関する情報を参照可能になるので好適である。
図27に示すように、配信用動画22の配信を行う際は、サーバシステム1100は、配信用動画22の生成用に用意された仮想3次元空間に、投稿素材データ714の編集情報715と、オリジナルプレイ再現データ(写)716とに基づいて、ゲームオブジェクト(図27の例では、プレーヤキャラクタ40や敵キャラクタ42のキャラクタオブジェクト)や、オリジナル仮想カメラCM0を配置して動作制御する。
それとともに、サーバシステム1100は、投稿ユーザ2aのユーザ端末1500から送信される投稿者動画データ710(図4参照)に基づいて、当該仮想3次元空間に、投稿者キャラクタ4のキャラクタオブジェクトや、投稿ユーザ2aのテキストコメントを表示するコメントオブジェクト44、追加仮想カメラCM1、等実況に係る新たなオブジェクト(実況オブジェクト)を追加配置し、オリジナルゲームプレイに係るオブジェクトと一緒に制御する。また、サーバシステム1100は、投稿ユーザ2aのユーザ端末1500から送信されるイベントエリア設定リクエスト等に従って、イベントエリアオブジェクト30を当該仮想3次元空間に追加配置して制御する。
そして、サーバシステム1100は、配信用動画22を、オリジナル仮想カメラCM0や追加仮想カメラCM1を使って仮想3次元空間の様子をレンダリングして作成する。なお、音声については、オリジナルゲームプレイの音声に、実況音声が音声重畳される。
更には、配信用動画22を配信する際、視聴ユーザ2bの視聴者キャラクタ6と、投げ銭アイテム8のオブジェクトを、配信用動画22の生成用の仮想3次元空間に配置するとしてもよい。
この構成で配信用動画22を生成し配信する場合、オリジナルのゲームプレイのゲーム世界に、投稿者キャラクタ4や、イベントエリアオブジェクト30等が登場し、視聴ユーザ2bの視聴者キャラクタ6や投げ銭アイテム8も登場するので、あたかも投稿者キャラクタ4がゲームプレイの現場から実況しているかのような、そして、視聴ユーザ2bも、ゲームプレイの現場でミニゲームをプレイしているかのような従来に無い動画の見せ方が可能となる。
[変形例7]
変形例6を前提として、サーバシステム1100が、配信管理データ700(図20を参照)の記憶制御に係り、例えば、
1)投稿者モーションデータ712を、配信中の投稿ユーザの全モーションデータを時系列に保存する履歴形式で記録し、
2)投稿者音声データ713を、配信中の投稿ユーザの全音声を時系列に保存する履歴形式で記憶し、
3)視聴者キャラクタ制御データ736を、当該視聴者キャラクタ6の配信中の全制御データを時系列に保存する履歴形式で記憶し、
4)配信中に使用された投げ銭アイテム8のアイテム制御データ737は消去せずに保存し、
5)配信終了時に配信管理データ700を保存する、
構成とするならば、当該配信が視聴ユーザ2bに与えた影響を分析可能になる。
すなわち、サーバシステム1100は、保存された配信管理データ700を参照することで、配信後に、どのオリジナルプレイ(投稿素材データ714から判明)に、誰が(投稿ユーザアカウント702から判明)、どのような実況を行ったか(投稿者モーションデータ712と、投稿者音声データ713の音声解析と、から判明)、を分析できる。
そして、サーバシステム1100は、視聴者キャラクタ制御データ736と、アイテム制御データ737とを参照することで、当該配信を視聴した視聴ユーザ2bを識別し、当該視聴ユーザのゲームセーブデータ608(図19を参照)を参照することで、どの視聴ユーザ2bが、配信用動画22を視聴した後にどのような行動をしたか(プレイ履歴データ6081から判明)を知ることができる。言い換えると、サーバシステム1100は、配信用動画22の視聴が、視聴ユーザ2bの行動に与えた影響を推測することができる。