図1は、本発明の実施例にかかる情報処理システム1を示す。情報処理システム1は、ユーザAが使用する情報処理装置10と、別のユーザが使用する情報処理装置5a、5bと、コンテンツサーバ12とを備え、これらはインターネットやLAN(Local Area Network)などのネットワーク3を介して接続している。コンテンツサーバ12は、ゲーム動画などのコンテンツに関するサービスを提供し、ここでは配信サーバ14、編集サーバ16および検索サーバ18を統括した概念として示されている。配信サーバ14は、ユーザに対してゲーム動画などのアプリケーション画像を配信するサービスを提供する。たとえば配信サーバ14は、共有動画サイトであってよく、ユーザにより投稿された動画データや、編集サーバ16により編集された動画データを配信する。編集サーバ16は、ユーザから提供される動画データを編集するサービスを提供する。検索サーバ18は、ユーザからの動画検索要求に応じて配信サーバ14から提供する動画の候補をユーザに提示するサービスを提供する。
配信サーバ14、編集サーバ16および検索サーバ18は、別個のサーバとして構成され、各々がネットワーク3を介して通信してもよいが、これらのサーバは一体として形成されてもよい。また配信サーバ14と編集サーバ16とが一体として形成されてもよく、配信サーバ14と検索サーバ18とが一体として形成されてもよく、編集サーバ16と検索サーバ18とが一体として形成されてもよい。たとえば配信サーバ14が、動画データを蓄積し、ユーザにより指定された動画データを配信するという単純な機能しか有しない場合には、編集サーバ16および検索サーバ18が、動画データに付加されるメタデータを処理するためのインテリジェントな知識サーバとして構成されてもよい。なお動画のメタデータが動画データに埋め込まれていない場合には、編集サーバ16ないしは検索サーバ18が、配信サーバ14が蓄積する動画データとは別に、動画データのメタデータを蓄積して、動画データの編集処理ないしは検索処理を行ってもよい。
アクセスポイント(以下、「AP」とよぶ)8は、無線アクセスポイントおよびルータの機能を有し、情報処理装置10は、無線または有線経由でAP8に接続して、ネットワーク3上のコンテンツサーバ12と通信可能に接続する。情報処理装置5a、5b(以下、特に区別しない場合には「情報処理装置5」とよぶ)も同様にコンテンツサーバ12と通信可能に接続する。なお情報処理装置10と情報処理装置5は、同種の装置であってもよいが、別種の装置であってもよく、少なくともコンテンツサーバ12からコンテンツを提供されて、コンテンツを再生表示できるものであればよい。
情報処理装置10は、ユーザが操作する入力装置6と無線または有線で接続し、入力装置6はユーザの操作結果を示す操作情報を情報処理装置10に出力する。情報処理装置10は入力装置6から操作情報を受け付けるとシステムソフトウェアやアプリケーションソフトウェアの処理に反映し、出力装置4から処理結果を出力させる。情報処理システム1において情報処理装置10はゲームを実行するゲーム装置であり、入力装置6はゲームコントローラなど情報処理装置10に対してユーザの操作情報を供給する機器であってよい。ゲームをプレイするためにユーザは情報処理装置10のOS(システムソフトウェア)にログインする。ログインユーザは、情報処理装置10において登録されているユーザアカウントによって管理される。
配信サーバ14は、情報処理装置10や情報処理装置5からアップロードされる画像データを共有するためのサービスを提供する。配信サーバ14は、蓄積した画像データをユーザからの要求に応じてオンデマンド配信し、またユーザからリアルタイムで提供される画像データをライブ配信する機能を有する。情報処理システム1において配信サーバ14の数は1つに限定されるものではなく、それ以上存在してよい。配信サーバ14により提供される画像配信サービスは、対象とするユーザを登録会員に限定してもよく、また一般に開放してもよい。
編集サーバ16は、ユーザから提供される画像データを編集する機能をもつ。たとえば編集サーバ16は、アプリケーションにおいて発生したイベントを特定するイベントコードに基づいて、画像データから、イベントコードに対応する箇所をコンテンツデータとして抽出し、編集したコンテンツデータを生成する。イベントコードは、イベントコードに付随する時間情報とともに、画像データからコンテンツデータを抽出するための開始点および終了点を定めるものであり、編集サーバ16は、イベントコードに基づいてコンテンツデータを抽出する。たとえば編集サーバ16が、野球ゲームの動画像から、ホームランを打ったシーンを切り出して、所定時間(たとえば10秒間)のイベント動画(コンテンツ)を生成してもよい。編集サーバ16は、野球ゲームにおける「ホームランを打った」ことを示すイベントコードおよびその時間情報をもとに、野球ゲームのプレイを記録した動画像データの中から切り出すシーンの開始点と終了点を特定して、動画像データからホームランを打ったシーンを抽出したホームラン動画を生成する。編集サーバ16は、ユーザからリアルタイムで提供される画像データとイベントコードを用いて、オンタイムで画像編集を行ってもよいが、画像データとイベントコードとが全て提供された後に、バッチ処理で、または必要に応じたタイミングで、画像編集を行ってもよい。編集サーバ16は、生成したコンテンツデータを、配信サーバ14に提供して、配信サーバ14が配信できるようにする。
検索サーバ18は、ユーザからコンテンツの検索要求を受け取ると、配信サーバ14に記録されているコンテンツのメタデータを参照して、コンテンツを検索する。コンテンツの検索要求には、ユーザの状況を示す情報、たとえばユーザがプレイしているゲームのステータスデータが含まれており、検索サーバ18は、このステータスデータを、コンテンツのメタデータと比較することで、ユーザの状況に適したゲーム動画を検索する。なお検索サーバ18は、検索効率を高めるために、コンテンツのメタデータを、コンテンツIDに紐付けて自ら保持していてもよい。
補助記憶装置2はHDD(ハードディスクドライブ)やフラッシュメモリなどの大容量記憶装置であり、USB(Universal Serial Bus)などによって情報処理装置10と接続する外部記憶装置であってよく、内蔵型記憶装置であってもよい。出力装置4は画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよく、またコンピュータディスプレイであってもよい。出力装置4は、情報処理装置10に有線ケーブルで接続されてよく、無線接続されてもよい。
撮像装置であるカメラ7は出力装置4の近傍に設けられ、出力装置4周辺の空間を撮像する。図1ではカメラ7が出力装置4の上部に取り付けられている例を示しているが、出力装置4の側方に配置されてもよく、いずれにしても出力装置4の前方でゲームをプレイするユーザを撮像できる位置に配置される。なおカメラ7はステレオカメラであってよい。入力装置6は複数のプッシュ式の操作ボタンや、アナログ量を入力できるアナログスティック、回動式ボタンなどの複数の入力部を有して構成される。
入力装置6のボタン構成について説明する。
[上面部の構成]
図2(a)は、入力装置上面の外観構成を示す。ユーザは左手で左側把持部78bを把持し、右手で右側把持部78aを把持して、入力装置6を操作する。入力装置6の筐体上面には、入力部である方向キー71、アナログスティック77a、77bと、4種の操作ボタン76が設けられている。4種のボタン72〜75には、それぞれを区別するために、異なる色で異なる図形が記されている。すなわち、○ボタン72には赤色の丸、×ボタン73には青色のバツ、□ボタン74には紫色の四角形、△ボタン75には緑色の三角形が記されている。筐体上面上において、方向キー71と操作ボタン76の間の平坦な領域には、タッチパッド79が設けられる。タッチパッド79は、ユーザが押すことで下方に沈み込み、またユーザが手を離すと元の位置に復帰する押下式ボタンとしても機能する。
2つのアナログスティック77a、77bの間に機能ボタン80が設けられる。機能ボタン80は、入力装置6の電源をオンし、同時に入力装置6と情報処理装置10とを接続する通信機能をアクティブにするために使用される。入力装置6が情報処理装置10と接続した後は、機能ボタン80は、情報処理装置10にメニュー画面を表示させるためにも使用される。
SHAREボタン81は、タッチパッド79と方向キー71の間に設けられる。SHAREボタン81は、情報処理装置10におけるOSないしはシステムソフトウェアに対するユーザからの指示を入力するために利用される。またOPTIONSボタン82は、タッチパッド79と操作ボタン76の間に設けられる。OPTIONSボタン82は、情報処理装置10において実行されるアプリケーション(ゲーム)に対するユーザからの指示を入力するために利用される。SHAREボタン81およびOPTIONSボタン82は、いずれもプッシュ式ボタンとして形成されてよい。
[奥側側面部の構成]
図2(b)は、入力装置奥側側面の外観構成を示す。入力装置6の筐体奥側側面の上側には、タッチパッド79が筐体上面から延設されており、筐体奥側側面の下側には、横長の発光部85が設けられる。発光部85は、赤(R)、緑(G)、青(B)のLEDを有し、情報処理装置10から送信される発光色情報にしたがって点灯する。
筐体奥側側面において、上側ボタン83a、下側ボタン84aと、上側ボタン83b、下側ボタン84bとが長手方向の左右対称な位置に設けられる。上側ボタン83a、下側ボタン84aは、それぞれユーザ右手の人差し指、中指により操作され、上側ボタン83b、下側ボタン84bは、それぞれユーザ左手の人差し指、中指により操作される。図示されるように発光部85が、右側の上側ボタン83a、下側ボタン84aの並びと、左側の上側ボタン83b、下側ボタン84bの並びの間に設けられることで、各ボタンを操作する人差し指または中指によって隠れることはなく、カメラ7は、点灯した発光部85を好適に撮像することができる。上側ボタン83はプッシュ式ボタンとして構成され、下側ボタン84は回動支持されたトリガー式のボタンとして構成されてよい。
図3は、情報処理装置10の機能ブロック図を示す。情報処理装置10は、メイン電源ボタン20、電源ON用LED21、スタンバイ用LED22、システムコントローラ24、クロック26、デバイスコントローラ30、メディアドライブ32、USBモジュール34、フラッシュメモリ36、無線通信モジュール38、有線通信モジュール40、サブシステム50およびメインシステム60を有して構成される。
メインシステム60は、メインCPU(Central Processing Unit)、主記憶装置であるメモリおよびメモリコントローラ、GPU(Graphics Processing Unit)などを備える。GPUはゲームプログラムの演算処理に主として利用される。これらの機能はシステムオンチップとして構成されて、1つのチップ上に形成されてよい。メインCPUは補助記憶装置2に記録されたゲームプログラムを実行する機能をもつ。
サブシステム50は、サブCPU、主記憶装置であるメモリおよびメモリコントローラなどを備え、GPUを備えず、ゲームプログラムを実行する機能をもたない。サブCPUの回路ゲート数は、メインCPUの回路ゲート数よりも少なく、サブCPUの動作消費電力は、メインCPUの動作消費電力よりも少ない。サブCPUは、メインCPUがスタンバイ状態にある間においても動作し、消費電力を低く抑えるべく、その処理機能を制限されている。
メイン電源ボタン20は、ユーザからの操作入力が行われる入力部であって、情報処理装置10の筐体の前面に設けられ、情報処理装置10のメインシステム60への電源供給をオンまたはオフするために操作される。電源ON用LED21は、メイン電源ボタン20がオンされたときに点灯し、スタンバイ用LED22は、メイン電源ボタン20がオフされたときに点灯する。
システムコントローラ24は、ユーザによるメイン電源ボタン20の押下を検出する。メイン電源がオフ状態にあるときにメイン電源ボタン20が押下されると、システムコントローラ24は、その押下操作を「オン指示」として取得し、一方で、メイン電源がオン状態にあるときにメイン電源ボタン20が押下されると、システムコントローラ24は、その押下操作を「オフ指示」として取得する。
クロック26はリアルタイムクロックであって、現在の日時情報を生成し、システムコントローラ24やサブシステム50およびメインシステム60に供給する。
デバイスコントローラ30は、サウスブリッジのようにデバイス間の情報の受け渡しを実行するLSI(Large-Scale Integrated Circuit)として構成される。図示のように、デバイスコントローラ30には、システムコントローラ24、メディアドライブ32、USBモジュール34、フラッシュメモリ36、無線通信モジュール38、有線通信モジュール40、サブシステム50およびメインシステム60などのデバイスが接続される。デバイスコントローラ30は、それぞれのデバイスの電気特性の違いやデータ転送速度の差を吸収し、データ転送のタイミングを制御する。
メディアドライブ32は、ゲームなどのアプリケーションソフトウェア、およびライセンス情報を記録したROM媒体44を装着して駆動し、ROM媒体44からプログラムやデータなどを読み出すドライブ装置である。ROM媒体44は、光ディスクや光磁気ディスク、ブルーレイディスクなどの読出専用の記録メディアである。
USBモジュール34は、外部機器とUSBケーブルで接続するモジュールである。USBモジュール34は補助記憶装置2およびカメラ7とUSBケーブルで接続してもよい。フラッシュメモリ36は、内部ストレージを構成する補助記憶装置である。無線通信モジュール38は、Bluetooth(登録商標)プロトコルやIEEE802.11プロトコルなどの通信プロトコルで、たとえば入力装置6と無線通信する。なお無線通信モジュール38は、ITU(International Telecommunication Union;国際電気通信連合)によって定められたIMT−2000(International Mobile Telecommunication 2000)規格に準拠した第3世代(3rd Generation)デジタル携帯電話方式に対応してもよく、さらには別の世代のデジタル携帯電話方式に対応してもよい。有線通信モジュール40は、外部機器と有線通信し、たとえばAP8を介してネットワーク3に接続する。
本実施例の情報処理装置10は、コンテンツサーバ12にコンテンツを送信する機能と、コンテンツサーバ12からコンテンツを受信する機能とを備える。以下、これらの2つの機能について説明する。
<コンテンツ送信機能>
情報処理装置10は、コンテンツサーバ12によるオンデマンド配信のためにコンテンツサーバ12にコンテンツを送信し、またコンテンツサーバ12によるライブ配信のためにコンテンツサーバ12にコンテンツを送信する機能を有する。
図4は、コンテンツ送信機能を実現する情報処理装置10の内部構成を示す。情報処理装置10は、処理部100および通信部102を備え、処理部100は、アプリケーション処理部110、画像生成部130、コンテンツ生成部150、記録部170および共有処理部190を備える。アプリケーション処理部110は、アプリケーションに関する処理を行い、画像生成部130は、出力装置4に表示するための画像生成処理を行う。コンテンツ生成部150は、アプリケーション画像の編集に関する処理を行い、記録部170は、アプリケーションの画像データを、所定時間分を上限として記録する処理を行う。共有処理部190は、アプリケーションの画像データをコンテンツサーバ12に送信する処理を行う。
図4において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、回路ブロック、メモリ、その他のLSIで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
本実施例の情報処理システム1において、通信部102は、入力装置6においてユーザが入力部を操作した情報(以下、「操作情報」ともよぶ)を受信し、また処理部100で生成または取得した画像データをコンテンツサーバ12に送信する。ここで画像データは、画像生成部130において生成された画像データ、およびコンテンツ生成部150において編集された画像データ(コンテンツデータ)を少なくとも含む。通信部102は図3に示す無線通信モジュール38および有線通信モジュール40の機能を併せ持つ構成として表現され、無線通信モジュール38は入力装置6との通信を担当し、有線通信モジュール40はコンテンツサーバ12との通信を担当する。
アプリケーション処理部110は、ゲーム実行部112、イベントコード通知部114およびステータスデータ通知部116を備える。ゲーム実行部112は、ユーザによる入力装置6の操作入力を受けてゲームを進行させるプログラムを実行する機能を有する。イベントコード通知部114は、ゲームの実行中に所定のイベントが発生すると、そのイベントを特定する情報(以下、「イベントコード」と呼ぶ)をコンテンツ生成部150に出力する。なおイベントは、ゲームごとに設定されており、たとえば野球ゲームであれば、「二死満塁になった」、「1イニング中に2点差を逆転した」、「盗塁した」、「ホームランを打った」など、様々なものが設定されてよい。イベントコード通知部114は、設定されたイベントが発生すると、そのイベントコードをコンテンツ生成部150に通知する機能をもつ。ステータスデータ通知部116は、ゲームのステータスデータをコンテンツ生成部150に通知する。ステータスデータ通知部116は、コンテンツ生成部150からの要求に応じてステータスデータをコンテンツ生成部150に通知してもよいが、たとえばステータスに変化があった場合に、変化後のステータスデータをコンテンツ生成部150に通知してもよい。このときステータスデータ通知部116は、変化前と変化後の差分となるステータスデータを通知してもよいが、変化後の全てのステータスデータを収集して通知してもよい。
ゲーム実行部112は、ユーザから入力装置6に入力された操作情報をもとに、仮想空間においてゲームキャラクタを動かす演算処理を行う。このようにゲーム実行部112はアプリケーション(ゲームプログラム)そのものを含む概念として表現されてもよい。ゲーム画像生成部132はレンダリング処理などを実行するGPU(Graphics Processing Unit)であってよく、ゲーム実行部112による処理結果を受けて、出力装置4に表示するアプリケーション(ゲーム)の画像データを生成する。図5は、出力装置4に表示されるゲーム画面の一例を示す。なお本実施例においてゲーム実行部112はゲームプログラムを実行するが、他の種類のアプリケーションプログラムを実行してもよい。
情報処理装置10において記録部170は、記録制御部172、書込/読出部174およびリングバッファ176を有し、出力装置4に表示される画像をバックグランドで録画する機能を有する。ゲーム画像生成部132は、ゲーム画像データを生成して出力装置4に表示するが、記録部170は、その画像データをバックグランドで録画している。
記録制御部172は、書込/読出部174によるデータの書込および読出処理を制御する。書込/読出部174はリングバッファ176にデータを書き込み、またはデータを読み出す。記録部170におけるバックグランド録画は、リングバッファ176において行われる。記録制御部172は、補助記憶装置2の記憶領域の開始アドレスおよび終了アドレスを設定してリングバッファ176を生成する。このリングバッファ領域は、情報処理装置10の出荷時に予め設定されていてよい。記録制御部172は、ゲーム画像生成部132で生成された、実行中のアプリケーションの画像データをリングバッファ176に記録する。記録制御部172はリングバッファ176に画像データを開始アドレスから予め定められたアドレス順に記録し、終了アドレスまでの記録が終了すると、開始アドレスに戻って上書き記録し、それを繰り返す。たとえばリングバッファ176は、最長30分間のゲーム画像を記録するように設定され、記録されたゲーム画像には、時間情報(タイムスタンプ)が付与される。このタイムスタンプは、情報処理装置10によるOSにより付与されてよい。表示画像データをリングバッファ176にバックグランド録画しておくことで、ゲーム中にイベントが発生したときに、コンテンツ生成部150が、イベント発生時よりも過去の画像データを含むコンテンツデータを生成できるようになる。
図5は、野球ゲームの実行画面を示す。ユーザは、入力装置6を操作して野球ゲームをプレイしている。ここでゲームの進行が、ゲームプログラムに設定されているイベントを発生させると、イベントコード通知部114が、そのイベントコードをコンテンツ生成部150に通知する。たとえばイベントは、「二死満塁になった」、「1イニング中に2点差を逆転した」、「盗塁した」、「ホームランを打った」など様々であり、ゲームに、様々なイベントを仕込んでおくことで、ゲーム画像共有サービスの充実を図れるようになる。
たとえば、野球ゲームの局面が、二死満塁となったとき、イベントコード通知部114は、「二死満塁になった」イベントの発生を示すイベントコードを、イベント発生時の時間情報とともにコンテンツ生成部150に通知する。したがってメタデータ取得部154は、実行中のアプリケーション(ゲームプログラム)から、アプリケーションにおいて設定されているイベントの発生を示すイベントコードを、その時間情報とともに自動取得する。このイベントコードは、後述するように、コンテンツデータに付加されるメタデータを構成する。
イベントコードが通知されると、メタデータ取得部154は、ステータスデータ通知部116に、現在のステータスデータの通知を要求する。ステータスデータ通知部116は、要求を受けた時点のアプリケーションの実行状態を示すステータスデータを収集し、収集したステータスデータを、収集したタイミングを示す時間情報とともにメタデータ取得部154に通知する。したがってメタデータ取得部154は、実行中のアプリケーション(ゲームプログラム)から通知されたステータスデータを、メタデータとして取得する。
たとえばステータスデータは、ゲームプレイしているシーンを特定するシーンIDを含む。また野球ゲームにおいては、ステータスデータとして、ユーザのチーム情報、対戦相手のチーム情報、イニング情報、バッター情報、相手のピッチャー情報などがさらに含まれてもよい。ステータスデータ通知部116が収集するステータスデータは、後述するように、コンテンツサーバ12にアップロードされるコンテンツに、メタデータとして付加されるものであり、コンテンツサーバ12においてコンテンツの検索に使用されるものである。そのため、ステータスデータ通知部116が、多種類のステータスデータを収集できるようにゲームプログラムが構成されていることで、コンテンツサーバ12における検索の粒度を高めることが可能となる。
上記したように、リングバッファ176には、過去30分間のゲーム画像が記録されており、また、最新のゲーム画像がリアルタイムで順次上書き記録されていく。リングバッファ176に記録されているゲーム画像にはタイムスタンプが付加されており、編集処理部156は、イベント発生時の時間情報で指定される開始点から所定時間分(たとえば1分間)の画像データがリングバッファ176に記録されるのを待って、イベントコードおよびイベント発生時の時間情報で特定される開始点から終了点までの画像データをリングバッファ176から読み出し、二死満塁イベントのコンテンツデータとして抽出する。
編集処理部156は、このコンテンツデータに、メタデータ取得部154が取得したメタデータを付加する。このとき編集処理部156は、ステータスデータが収集されたタイミングを示す時間情報を参照して、コンテンツデータを切り出した開始点から終了点までの期間に収集されたステータスデータを、メタデータとしてコンテンツデータに付加する。このように編集処理部156がゲーム画像を編集することで、ユーザがゲームプレイしていた状況を詳細に示すメタデータをコンテンツデータに付加することができる。なおメタデータ取得部154は、アプリケーションを特定するためのアプリケーションID(タイトルID)、およびプレイヤであるユーザを特定する情報を予め取得しておき、編集処理部156は、これらの情報をメタデータとしてコンテンツデータに付加することが好ましい。編集処理部156は、少なくともアプリケーションIDについては、必ずメタデータとしてコンテンツデータに付加する。
図6(a)は、イベントの発生時刻がコンテンツデータを切り出す開始点となる例を示す。コンテンツデータの切り出しの終了点は、開始点から所定時間(1分)後に設定される。この例においてメタデータ取得部154は、ステータスデータA、B、C、Dを取得している。このうち、編集処理部156は、開始点から終了点までの期間に収集されたステータスデータB、Cを、コンテンツデータに付加する。これにより、開始点から終了点で切り出されたコンテンツデータと、その期間におけるゲームのプレイ状況を示すステータスデータとを紐付けることができる。
なお上記の例では、編集処理部156が、二死満塁イベントの発生時から所定時間分の画像データをコンテンツデータとして切り出すことを説明したが、たとえば、二死満塁イベントの発生から終了までの画像データをコンテンツデータとして切り出してもよい。野球ゲームにおいて、二死満塁のチャンスが終了すると、イベントコード通知部114は、「二死満塁が終了した」イベントの発生を示すイベントコードを、イベント発生時の時間情報とともにコンテンツ生成部150に通知する。これにより編集処理部156は、二死満塁イベントの終了を知り、「二死満塁になった」イベント発生時の時間情報で指定される開始点と、「二死満塁が終了した」イベント発生時の時間情報で指定される終了点とを用いて、画像データをリングバッファ176から読み出し、二死満塁イベントのコンテンツデータとして抽出する。これにより編集処理部156は、二死満塁の発生から終了までのコンテンツデータを取得できる。編集処理部156は、このコンテンツデータに、開始点から終了点までの期間においてメタデータ取得部154が取得したメタデータを付加する。このように編集処理部156がゲーム画像を編集することで、ユーザがゲームプレイしていた状況を詳細に示すメタデータをコンテンツデータに付加することができる。
図6(b)は、2つのイベントコードで開始点と終了点が指定される例を示す。最初のイベントコードの時間情報でコンテンツデータの切り出しの開始点が指定され、次のイベントコードの時間情報でコンテンツデータの切り出しの終了点が指定される。この例においてメタデータ取得部154は、ステータスデータA、B、C、D、E、F、Gを取得している。このうち、編集処理部156は、開始点から終了点までの期間に収集されたステータスデータB、C、D、E、Fを、コンテンツデータに付加する。これにより、開始点から終了点で切り出されたコンテンツデータと、その期間におけるゲームのプレイ状況を示すステータスデータとを紐付けることができる。
なお、編集処理部156におけるコンテンツデータの抽出処理は、イベントコード通知部114から通知されるイベントコードの種別を用いて実行されてよい。イベントコードの種別として、たとえば、
(1)イベント発生時を開始点とし、所定時間後を終了点とするもの、
(2)開始点を指定するイベントコードと、終了点を指定するイベントコードとが、一組となっているもの、
が定義される。イベントコードに、種別を示す情報が埋め込まれることで、編集処理部156は、イベントコードの種別を認識できるようになる。端的に両者の違いを説明すれば、種別(1)のイベントコードは、単独で開始点と終了点を特定できるものであり、種別(2)のイベントコードは、一組で、開始点と終了点を特定できるものである。
種別(1)のイベントコードには、開始点から終了点までの期間を指定する情報が含まれる。イベントコードで指定される期間は、たとえば10秒、30秒、60秒など、様々であってよく、これらの期間は、イベントに応じてゲームメーカが適宜決めればよい。編集処理部156は、種別の(1)のイベントコードを受け取ると、イベント発生時(開始点)から、所定時間後(終了点)までの画像データを、コンテンツデータとしてリングバッファ176から読み出す。上記した例でいえば、「二死満塁になった」イベントの発生時から1分間分の画像データを抽出して、コンテンツデータを生成したことが相当する。なお、種別(1)のイベントコードの変形例として、イベントコードに、さらに、開始点を指定する時間情報が含まれていてもよい。たとえば、イベントコードに、イベント発生時のα秒前を開始点とし、所定時間後を終了点とする情報が含まれてもよい。リングバッファ176には過去30分間分の画像データが記録されているため、編集処理部156は、イベント発生前の画像データもコンテンツデータに組み込めることを利用して、コンテンツデータの開始点と終了点とを適宜設定することが可能となる。なお、イベントコードに、イベント発生時のβ秒後を開始点とし、所定時間後を終了点とする情報が含まれてもよい。このように種別(1)のイベントコードは、単独で、開始点および終了点を定めることができる。
種別(2)のイベントコードには、開始点を指定するイベントコードであるか、または終了点を指定するイベントコードであるかを特定する情報が含まれる。図6(b)に示した例でいえば、「二死満塁になった」イベントが開始点を指定するイベントコードであり、「二死満塁が終了した」イベントが終了点を指定するイベントコードである。「二死満塁になった」イベントのイベントコードと、「二死満塁が終了した」イベントのイベントコードは、一組のイベントコードとして編集処理部156により扱われる。たとえば各イベントコードには、一組のイベントコードの一方であることを示す情報が含まれている。前者をイベント開始コード、後者をイベント終了コードと呼ぶと、イベント開始コードには、イベントが開始されたこと、イベント終了コードには、イベントが終了したこと、を示す情報が含まれ、編集処理部156は、この一組のイベントコードによって、切り出す画像データの開始点と終了点を決定する。なお、イベント開始コードには、開始点が指定する時間情報が含まれ、イベント終了コードには、終了点を指定する時間情報が含まれていてもよい。これによりイベント開始コードは、イベントコードの時間情報の前後を開始点とすることもでき、またイベント終了コードは、イベントコードの時間情報の前後を終了点とすることもできる。
種別(2)のイベントコードの別の例として、「1イニング中に2点差を逆転した」イベントについて説明する。このイベントは、プレイヤが攻撃するイニングにおいて、2点差で負けているときに発生する。イベントコード通知部114は、イニングの開始時にプレイヤが負けていれば、「2点差で負けている」イベントのイベントコードをメタデータ取得部154に通知する。メタデータ取得部154は、「2点差で負けている」イベントの発生時以降に通知されるステータスデータを、このイベントのコンテンツデータに付加するために蓄積する。既述したように、メタデータ取得部154は、イベントコードを通知されると、ステータスデータ通知部116に現在のステータスデータを要求して、ステータスデータ通知部116が、現在のステータスデータをメタデータ取得部154に通知してもよいが、ステータスデータ通知部116は、ステータスが変化するたびに、ステータスデータをメタデータ取得部154に通知してもよい。ステータスデータ通知部116は、たとえば、バッター交替があったとき、また守備の変更があったときを、ステータスに変化があったとみなし、その時点のステータスデータを収集して、メタデータ取得部154に通知する。これにより、メタデータ取得部154は、2点差を逆転するまでの詳細なメタデータを取得し、蓄積できる。ゲームにおいて、プレイヤが2点差を逆転すると、イベントコード通知部114が、「1イニング中に2点差を逆転した」イベントのイベントコードをメタデータ取得部154に通知する。
この場合、「2点差で負けている」イベントのイベントコードと、「1イニング中に2点差を逆転した」イベントのイベントコードとは、一組のイベントコートとして、編集処理部156により取り扱われる。編集処理部156は、この一組のイベントコードによって、切り出す画像データの開始点と終了点を決定する。これにより、編集処理部156は、2点差で負けていた時点から、同じイニング内で2点差を逆転するまでの一連のゲーム画像を、コンテンツデータとしてリングバッファ176から切り出すことができるとともに、その間のステータスデータを、メタデータとしてコンテンツデータに付加できるようになる。
なお、1イニング中に2点差を逆転できるかどうかは、ゲームの進行次第であり、逆転できないこともある。このときイベントコード通知部114は、イニングの終了時に、イニングが終了したことを示すイベントコードをメタデータ取得部154に通知する。メタデータ取得部154は、イニング終了を示すイベントコードを受け取ると、2点差を逆転できなかったことが分かるので、「2点差で負けている」イベントの発生時以降に蓄積していたステータスデータを破棄してもよく、編集処理部156は、画像データの編集を行わない。図6(b)の例でいえば、2つめのイベント終了コードを取得できなかった場合に相当し、この場合には、イベント開始コードの取得後のステータスデータを破棄してもよい。
以上のように、編集処理部156は、リングバッファ176に記録された画像データを編集して、メタデータを付加したコンテンツデータを生成する。なおメタデータには、情報処理装置10の機器種別を特定する情報が含まれてもよい。さらにはゲームにおいて、ユーザの習熟度を示すユーザレベルが定められている場合には、アプリケーションを使用しているユーザに関する情報の1つとして、ユーザのレベル情報もメタデータに含まれてよい。このように編集処理部156は、直接ゲームから、ステータスデータを受け取ることで、そのゲームプレイ時の状況を示す詳細な情報を、メタデータとしてコンテンツデータに付加することが可能となる。
アップロード処理部192は、生成されたコンテンツデータを、コンテンツサーバ12にアップロードする。具体的にアップロード処理部192は、コンテンツデータを、配信サーバ14にアップロードして、他のユーザが、コンテンツデータをダウンロードして視聴できるようにする。これにより、ユーザのプレイ動画が共有されることになり、多くの人の目に触れることで、ゲームの人気向上が期待される。
以上は、コンテンツ生成部150が、自動的にコンテンツデータを生成する仕組みについて説明した。以下、コンテンツ生成部150が、ユーザからの指示に基づいて、コンテンツデータを生成する仕組みについて説明する。
図7は、ゲーム画面上に重畳表示される編集画面の一例を示す。ユーザが、入力装置6を操作して、画像編集指示を画像生成部130に提供すると、編集画像生成部134が、編集画面200を生成する。ユーザが入力装置6の所定のボタン(たとえばSHAREボタン81)を操作すると、編集ボタンが画面に表示されて、それを選択することで、画面編集指示が画像生成部130に提供されてもよい。
編集画面200においてユーザはアップロードする動画データの長さを決定することができ、具体的には最長で30分の画像データの開始点202と終了点204を定めて、開始点202と終了点204の間の画像データをアップロード対象として決定する。ユーザは入力装置6を操作することで、開始点202および終了点204を自由に移動させられる。画像表示領域206には、動画データが再生され、ユーザは、再生ボタン、早送りボタン、早戻しボタンなどのインジケータ208を操作して、アップロードする動画データの開始点202および終了点204を再生画像を見ながら決定する。画像表示領域206の左端は、リングバッファ176に記録されている画像データの最初(すなわち30分前の画像)、右端は画像データの最後(すなわち最新の画像)を示し、ユーザが画像表示領域206の任意の位置にカーソルをあてると、時間軸上の対応する位置に存在する画像が表示されてもよい。時間情報210は、過去30分のうちの再生画像の相対的な時間を示す。ユーザは開始点202および終了点204を設定し、Enterキーを押すことで抽出する画像データが特定される。
ユーザがEnterキーを操作すると、指示取得部152は、画像データの編集指示を取得するとともに、編集画面200において設定された開始点202および終了点204の時間情報を取得する。ステータスデータ通知部116は、ゲーム中のステータスが変化するたびに、ステータスデータを収集して、収集したタイミングを示す時間情報とともにメタデータ取得部154に逐次通知し、メタデータ取得部154は、その全てを蓄積している。なお、メタデータ取得部154は、リングバッファ176から上書き削除された画像データに対応するメタデータ、すなわち30分以上前の時間情報をもつメタデータについては、破棄してもよい。
既述したように、リングバッファ176に記録されている画像データには、タイムスタンプが付与されている。編集処理部156は、開始点202および終了点204で特定される画像データをリングバッファ176から抽出してコンテンツデータとして取得するとともに、この画像データの開始点から終了点までの期間に、メタデータ取得部154が取得したステータスデータをメタデータとしてコンテンツデータに付加する。このように編集処理部156が、ユーザからの開始点および終了点を指定した編集指示をもとにゲーム画像を編集することで、ユーザがゲームプレイしていた状況を詳細に示すメタデータを、コンテンツデータに付加することができる。アップロード処理部192は、コンテンツデータを、コンテンツサーバ12に送信する。
以上のようにして、コンテンツサーバ12に、多くのコンテンツデータが集まるようになる。特に、編集処理部156がイベントコードをもちいて自動的に画像データを編集することで、ユーザの作業が不要となるため、コンテンツサーバ12は、多くのユーザから、多数のコンテンツデータを自動的に集めることが可能となる。なお編集処理部156が、自動的にコンテンツデータを生成するか否かは、ユーザが選択することができ、したがってユーザが自動編集を望まない場合には、自動編集を禁止する設定をすればよい。この場合であっても、ユーザは図7に示す編集画面200から、コンテンツデータをコンテンツサーバ12にアップロードできる。
なお以上は、情報処理装置10がコンテンツデータを生成して、アップロードする仕組みであるが、コンテンツデータは、コンテンツサーバ12側において生成されてもよい。画像データの生成処理は、編集サーバ16によって行われる。
編集サーバ16が画像データを編集する前提として、情報処理装置10において、送信処理部194が、ゲーム画像生成部132により生成された画像データを、編集サーバ16に送信する。また送信処理部194が、イベントコード通知部114により通知されたイベントコードを、イベント発生時の時間情報とともに編集サーバ16に送信する。また送信処理部194が、ステータスデータ通知部116により通知されたステータスデータを、ステータス収集時の時間情報とともに編集サーバ16に送信する。なおステータスデータ通知部116は、ゲーム中のステータスが変化するたびに、ステータスデータを送信処理部194に通知し、送信処理部194が、ステータスデータの通知をうける度に、編集サーバ16にステータスデータを送信することが好ましい。
図8は、編集サーバ16の内部構成を示す。編集サーバ16は、コンテンツ生成部300および通信部302を備える。コンテンツ生成部300は、通信部302を介してネットワーク3に接続し、画像データ取得部310、メタデータ取得部312、編集処理部314および記録部316を備える。図8において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、回路ブロック、メモリ、その他のLSIで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
画像データ取得部310は、情報処理装置10から配信される画像データを取得し、記録部316に記録する。画像データはリアルタイム送信されるため、したがって、この画像データは、配信サーバ14から、ライブ配信されてもよい。情報処理装置10から画像データがライブ中継のために配信サーバ14に送信されている場合には、画像データ取得部310は、配信サーバ14から画像データを取得してもよい。
メタデータ取得部312は、情報処理装置10から送信されるイベントコードおよびステータスデータを、それぞれの時間情報とともに取得する。編集処理部314は、イベントコードおよびイベント発生時の時間情報をもとに、記録部316に記録された画像データを編集する。
なおコンテンツ生成部300におけるメタデータ取得部312、編集処理部314および記録部316の各機能は、情報処理装置10におけるメタデータ取得部154、編集処理部156およびリングバッファ176の各機能と同じであるため、重複する説明は省略する。なお記録部316は、リングバッファである必要はなく、リングバッファ176よりも大きな記憶領域を有してよい。このように編集サーバ16は、情報処理装置10内で行っていた画像データの編集処理を実行する機能を有する。なお編集サーバ16は、画像データの編集処理を行う点で、情報処理装置10と同様の画像データ編集機能を有するものであり、したがって編集サーバ16は、画像データの編集処理機能を備えた情報処理装置と呼ぶこともできる。
画像データの編集処理を情報処理装置10側で行うか、または編集サーバ16側で行うかは、情報処理システム1における処理負荷バランスにより決定されればよい。編集処理部314は、イベントコードにもとづいて画像データを切り出す開始点と終了点を特定して、記録部316に記録された画像データの開始点から終了点までを抽出して、コンテンツデータを取得する。編集処理部314は、開始点から終了点までの期間にメタデータ取得部312が取得したイベントコードおよびステータスデータを、メタデータとしてコンテンツデータに付加する。編集処理部314が生成したコンテンツデータは、コンテンツサーバ12に提供されて、複数のユーザがコンテンツデータをダウンロードして視聴できるようにする。これにより、ユーザのプレイ動画が共有されることになり、多くの人の目に触れることで、ゲームの人気向上が期待される。
以上のようにして、コンテンツサーバ12は、複数のコンテンツデータを所有する。コンテンツデータには、ゲームプログラムから提供される詳細なメタデータが付加されているため、ユーザは、ブラウザからコンテンツサーバ12にアクセスして、メタデータを検索ワードとして入力することで、所望のコンテンツをダウンロードできる環境が実現される。
以下、ユーザの状況に応じて、効率よく所望のコンテンツをダウンロードする仕組みについて説明する。
<コンテンツ受信機能>
図9は、コンテンツ受信機能を実現する情報処理装置10の内部構成を示す。情報処理装置10は、処理部100および通信部102を備え、処理部100は、アプリケーション処理部110、画像生成部130およびダウンロード処理部120を備える。アプリケーション処理部110は、アプリケーションに関する処理を行い、画像生成部130は、出力装置4に表示するための画像生成処理を行う。ダウンロード処理部120は、コンテンツサーバ12に蓄積されたコンテンツのダウンロード処理を行う。
図9において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、回路ブロック、メモリ、その他のLSIで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお図9において、図4に示す符号と同じ符号を付した構成は、図4に示す構成と同一もしくは同様の機能を有している。通信部102は、コンテンツサーバ12との間で、コンテンツに関する要求やデータを送受信する。
アプリケーション処理部110において、ゲーム実行部112は、ユーザによる入力装置6の操作入力を受けてゲームを進行させるプログラムを実行する機能を有する。ゲーム画像生成部132はレンダリング処理などを実行するGPUであってよく、ゲーム実行部112による処理結果を受けて、出力装置4に表示するアプリケーション(ゲーム)の画像データを生成する。図10は、出力装置4に表示されるゲーム画面の一例を示す。
イベントコード通知部114は、ゲームの実行中に、ゲームプログラムにおいて設定されたイベントが発生すると、そのイベントの発生を示すイベントコードをダウンロード処理部120に出力する。ダウンロード処理部120において、メタデータ取得部142が、通知されたイベントコードを取得する。なおイベントは、ゲームごとに設定されており、たとえば格闘ゲームであれば、「格闘が開始された」、「体力が半分になった」、「残り時間が10秒となった」、「必殺技がでた」など、様々なものが設定されてよい。イベントコード通知部114は、設定されたイベントが発生すると、そのイベントコードをコンテンツ生成部150に通知する機能をもつ。ステータスデータ通知部116は、ゲームのステータスデータをコンテンツ生成部150に通知する。ステータスデータ通知部116は、コンテンツ生成部150からの要求に応じてステータスデータをコンテンツ生成部150に通知してもよいが、たとえばステータスに変化があった場合に、変化後のステータスデータをコンテンツ生成部150に通知してもよい。このときステータスデータ通知部116は、変化前と変化後の差分となるステータスデータを通知してもよいが、変化後の全てのステータスデータを収集して通知してもよい。
図10は、格闘ゲームの実行画面を示す。ユーザは、入力装置6を操作して格闘ゲームをスタートする。ユーザは、プレイ中のどの時点でも構わないが、入力装置6を操作して、現在のプレイ状況に関連した画像データの検索指示を生成する。たとえばユーザは、機能ボタン80を操作して、メニュー画面に表示される検索ボタンを選択することで検索指示を生成してもよく、または検索機能が割り当てられているボタンを操作して、検索指示を生成してもよい。実施例の情報処理装置10は、カメラ7からユーザのジェスチャを認識できるため、ユーザが所定のジェスチャを行うことで、検索指示が生成されてもよい。いずれにしても、検索指示が生成されると、指示取得部140が、検索指示を受け付ける。
メタデータ取得部142は、アプリケーションの実行状態を示すイベントコードおよびステータスデータを取得している。イベントコード通知部114は、イベントが発生するたびにイベントコードを通知し、またステータスデータ通知部116は、ステータスに変化があるたびに、ステータスデータを収集して通知している。指示取得部140が検索指示を受け付けると、メタデータ取得部142は、最新のイベントコード、および最新のステータスデータを、メタデータとして要求生成部144に提供する。要求生成部144は、最新のイベントコードおよび最新のステータスデータをメタデータとして含むコンテンツの検索要求を生成し、要求生成部144が、検索要求をコンテンツサーバ12に送信する。
要求生成部144が、イベントコードおよびステータスデータをメタデータとして検索要求に含ませることで、この検索要求には、現在のユーザのプレイ状況を表現する多種類のメタデータが埋め込まれることになる。なお既述したように、メタデータには、タイトルIDが必ず含まれる。たとえば格闘ゲームのステータスデータとしては、ユーザが使用するキャラクタ、対戦相手のキャラクタ、それぞれのキャラクタの残り体力、残り時間などが含まれてよい。またステータスデータには、ユーザの習熟度や経験値を表現するレベル、対戦相手のレベルも含まれてよい。
図11は、配信サーバ14および検索サーバ18の機能を集約した構成を示す。以下、これらの機能をコンテンツサーバ12が有しているものとして説明する。コンテンツサーバ12は、配信処理部320および通信部322を備える。配信処理部320は、通信部322を介してネットワーク3に接続し、検索要求取得部330、検索処理部332、検索結果送信部334、送信要求取得部336、コンテンツ送信部338およびコンテンツ記録部340を備える。これらの機能ブロックをあえて配信サーバ14と検索サーバ18とに振り分けるとすると、検索要求取得部330、検索処理部332、検索結果送信部334が検索サーバ18に、送信要求取得部336、コンテンツ送信部338、コンテンツ記録部340が配信サーバ14に含まれてよいが、この限りではない。コンテンツ記録部340は、メタデータを付加されたコンテンツデータを記録する。なお、各コンテンツデータには、コンテンツ記録部340においてコンテンツを一意に特定するためのコンテンツIDが付与されているものとする。コンテンツIDは、コンテンツサーバ12がコンテンツデータを受け入れたときに、当該コンテンツを識別するために付与してもよい。
図11において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、回路ブロック、メモリ、その他のLSIで構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
コンテンツサーバ12において、検索要求取得部330が、情報処理装置10から送信されるコンテンツの検索要求を取得する。検索処理部332は、検索要求に含まれるメタデータにもとづいて、コンテンツ記録部340においてコンテンツを検索する。ここで、検索要求に含まれるメタデータの例を以下に示す。
タイトルID XYZ
ユーザ名 A
プレイヤキャラクタ TARO
対戦相手キャラクタ JIRO
ユーザレベル 3
プレイヤ残り体力 100%
対戦相手残り体力 100%
検索処理部332は、これらのメタデータにマッチするメタデータをもつコンテンツをコンテンツ記録部340から検索する。なおコンテンツサーバ12は、コンテンツのメタデータを抽出したデータベースを検索用に予め作成しておき、検索処理部332は、このデータベースを参照して、検索処理を行ってもよい。まず検索処理部332は、タイトルIDを同一とするコンテンツを検索する。これにより検索対象を、同じゲームの動画に絞る。
検索処理部332は、ゲームごとに、検索条件として優先度の高いメタデータを把握している。検索処理部332は、メタデータの優先度を、メタデータごとに登録したファイルを保持していてもよい。たとえば、プレイヤキャラクタと対戦相手キャラクタとが同一であることが最高の優先度に設定されていれば、検索処理部332は、プレイヤキャラクタがTARO、対戦相手キャラクタがJIROであるメタデータが設定されているコンテンツを検索する。
一方で、あまりに実力レベルの違うユーザのプレイ動画を見ても、視聴ユーザに参考にならないこともあるため、ユーザレベルが同じであって、且つプレイヤキャラクタが同一であることが最高の優先度に設定されていれば、検索処理部332は、プライヤキャラクタがTARO、ユーザレベルが3のメタデータが設定されているコンテンツを検索する。
このように検索条件の優先度は、各ゲームメーカによって定められてよい。この優先度は、ユーザに対して、どのような動画を見せたいかという観点から定められる。なお、検索処理部332は、複数のカテゴリで検索結果を生成してもよい。たとえば検索処理部332は、最高の優先度に設定されている検索条件での検索結果、検索要求を送信したユーザのフレンドで検索した検索結果、視聴ユーザからの評価が高い検索結果など、さまざまなカテゴリの検索結果を生成してもよい。検索結果送信部334は、コンテンツの検索結果を、情報処理装置10に送信する。この検索結果には、コンテンツID、コンテンツの静止画像や、コンテンツの投稿ユーザ名、投稿日時などのコンテンツごとの情報が含まれる。
また検索条件は、ゲームのシーンごとに定められてよい。たとえばストーリーが進行するアドベンチャーゲームにおいては、プレイヤキャラクタのアクションに応じて、その後のゲーム進行が決定される。そこで、ゲームシーンがストーリーの分岐点である場合に、そこから進行する可能性のある複数のルートに関する検索結果を、検索処理部332が生成するようにしてもよい。キャラクタがストーリーの分岐点にいる場合に、ゲームが、イベントコードを出力するように構成されていれば、検索処理部332は、そのイベントコードに対応付けられている検索条件をもとに、コンテンツのメタデータを検索してもよい。
情報処理装置10において、検索結果取得部160が、コンテンツの検索結果を取得する。この検索結果は、検索要求に含まれる複数種類のメタデータにもとづいて検索されたコンテンツの検索結果である。候補画像生成部136は、検索結果として、ダウンロードする候補となる複数のコンテンツに関する画像を生成して、出力装置4に表示する。なお、これにより、出力装置4に表示されていたゲーム画面は、ダウンロード候補のリスト画面に切り替えられることになる。
図12は、検索結果画面の一例を示す。候補画像生成部136は、検索結果として、複数のコンテンツに関する画像を並べて表示する。検索画面においては、コンテンツの静止画像であるキャプチャ画像220が並べられ、また各キャプチャ画像220の横には、投稿ユーザ名や、投稿日時などが表示される。またリストの上段には、複数の検索結果タブが表示され、ユーザは、タブを選択することで、検索結果を切り替えて閲覧できるようになっている。なお、「キーワード」タブは、ユーザがあらためて検索キーワードを入力する際に選択される。
この検索結果画面において、ユーザが入力装置6を操作して、ダウンロードを希望するコンテンツを選択する。情報処理装置10において、指示取得部140が、コンテンツを指定する選択指示を受け付けると、要求生成部144が、選択されたコンテンツのコンテンツIDを含めたコンテンツ送信要求を生成する。要求送信部146は、コンテンツ送信要求をコンテンツサーバ12に送信する。
コンテンツサーバ12において、送信要求取得部336が、コンテンツの送信要求を取得すると、コンテンツ送信部338が、送信要求に含まれるコンテンツIDで特定されるコンテンツデータをコンテンツ記録部340から読み出し、情報処理装置10に送信する。
情報処理装置10において、コンテンツ取得部162がコンテンツデータを取得し、コンテンツ画像生成部138が、取得したコンテンツの画像を生成して、出力装置4に出力する。図13および図14は、ダウンロードしたプレイ動画の一例を示す。なお図13は、プレイヤキャラクタが相手キャラクタを攻撃している様子を、図14はプレイヤキャラクタが相手キャラクタをKOした様子を示している。
このように情報処理装置10は、コンテンツの検索要求に、現在のプレイ状況を詳細に示すメタデータを自動的に付加することで、コンテンツサーバ12が、ユーザの状況に適した検索処理を実行できるようになる。またコンテンツサーバ12においても、各コンテンツに、詳細なメタデータが付加されていることで、コンテンツサーバ12における検索の粒度を高めることも可能となっている。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
実施例においては、情報処理装置10ないし編集サーバ16が、アプリケーションの実行中に、画像データを切り出して、メタデータを付加したコンテンツデータを生成することを説明した。このようにコンテンツデータを生成して、コンテンツ記録部340に記録しておくことで、配信サーバ14は、送信を要求されたコンテンツデータを即座に情報処理装置10に配信することができる。
変形例では、コンテンツサーバ12が、コンテンツ記録部340において、切り出しを行っていない画像データと、その画像データのメタデータとを紐付けて記録しておく。なお画像データとメタデータとは、別個のストレージ装置に記録されていてもよい。図8に示す編集サーバ16の動作に関連して説明したように、情報処理装置10において、送信処理部194が、ゲーム画像生成部132により生成された画像データを、コンテンツサーバ12に送信する。また送信処理部194が、イベントコード通知部114により通知されたイベントコードを、イベント発生時の時間情報とともにコンテンツサーバ12に送信する。また送信処理部194が、ステータスデータ通知部116により通知されたステータスデータを、ステータス収集時の時間情報とともにコンテンツサーバ12に送信する。送信処理部194は、画像データをコンテンツサーバ12に送信している間にメタデータ取得部154が取得したイベントコードおよびステータスデータを、メタデータとしてコンテンツサーバ12に送信する。
コンテンツサーバ12において、これらのデータ、すなわち画像データおよびメタデータは、互いに関連づけてコンテンツ記録部340に記録される。実施例では、編集サーバ16が、イベントコードの取得を契機として画像データを編集してコンテンツデータを生成することを説明したが、この変形例では、この時点で編集サーバ16はコンテンツデータを生成しない。
ここで、ユーザから検索要求取得部330が検索要求を受け付けると、検索処理部332が、コンテンツ記録部340に記録されたメタデータを参照して、検索要求に含まれるメタデータにマッチしたコンテンツを検索し、検索結果送信部334が、検索結果を情報処理装置10に送信する。情報処理装置10においてコンテンツが選択され、送信要求取得部336が、コンテンツの送信要求を受け取ると、このとき、編集サーバ16が、検索要求に含まれていたメタデータのうちのイベントコードにもとづいて画像データを編集してコンテンツデータを生成する。すなわち、編集サーバ16は、コンテンツの送信要求を受けた後に、画像データを編集して、コンテンツデータを生成する。コンテンツ送信部338は、編集されたコンテンツデータを情報処理装置10に送信する。このように編集サーバ16は、都度コンテンツデータを生成するようにすることで、編集処理にかかる負荷を低減できる。
なお、この変形例において、送信処理部194は、画像データをコンテンツサーバ12にリアルタイムで送信するが、メタデータに関しては、リアルタイムで送信しなくてもよい。つまり送信処理部194は、画像データの送信中にメタデータ取得部154が取得したメタデータを、画像データの送信が終了した後に、コンテンツサーバ12に送信してもよい。また画像データについても、情報処理装置10からリアルタイムで送信されなくてもよく、情報処理装置10において記録した画像データ、メタデータが、まとめて編集サーバ16に送信されてもよい。