(実施形態)
図1は、本発明の実施形態に係るコンテンツ処理システム1を示す概要図である。図1に示されるように、コンテンツ処理システム1は、コンテンツサーバー200、撮影装置102、及び複数のユーザー端末350a~350cを含む。コンテンツサーバー200は、複数のユーザー端末350a~350cとネットワークNを介して接続される。また、コンテンツサーバー200は、撮影装置102と接続される。
コンテンツサーバー200は、各ユーザー端末350a~350cに対して、ネットワークNを介してコンテンツ配信サービスを提供する。コンテンツサーバー200から配信されるコンテンツは、例えば、撮影装置102を用いて撮影される動画及び/又は音声であってもよい。
コンテンツサーバー200から配信されるコンテンツは、例えば、サッカーや野球などのスポーツ、バラエティなどのテレビ番組、映画、音楽ライブ、講演会、ゲーム空間などの仮想現実における映像、などのコンテンツであってもよい。
なお、コンテンツサーバー200は、典型的には、PC(Personal Computer)又はワークステーションなどの汎用的な情報処理装置、又は家電機器若しくはゲーム機器などの特定の目的を有する情報処理装置として実現される。
撮影装置102は、例えば、被写体を撮影することで動画及び/又は音声を取得可能なビデオカメラなどであってよい。撮影装置102は、取得した動画及び/又は音声を、コンテンツサーバー200へ出力する。なお、撮影装置102の数は、2つ以上であってもよい。
ネットワークNは、インターネット、LAN(Local Area Network)又は専用線などの任意のネットワークであってよい。ネットワークNは、有線ネットワークであってもよく、無線ネットワークであってもよい。
各ユーザー端末350a~350cは、コンテンツサーバー200から提供されるコンテンツ配信サービスを受けるユーザーが使用する端末装置である。各ユーザー端末350a~350cには、マウス、ヘッドフォン及びカメラが接続可能である。図1は3つのユーザー端末350a~350cを示しているが、コンテンツサーバー200と接続可能なユーザー端末350の数は3つに限定されない。
なお、ユーザー端末350a~350cは、各々同様の構成を有するものであるので、以下の説明では、ユーザー端末350a~350cを区別しない場合には、単にユーザー端末350と称する。
ユーザー端末350は、例えばユーザーによる操作に応答して、コンテンツサーバー200のコンテンツ配信サービスに接続(ログイン)する。そして、ユーザー端末350は、コンテンツサーバー200から配信されるコンテンツを受信する。
図1に示されるように、ユーザー端末350には、例えばビデオカメラとマイクロフォンとが接続される。そして、ユーザー端末350は、コンテンツを視聴するユーザーをビデオカメラによって撮影することで得られる映像と、マイクロフォンから得られるユーザーの声などの音とをデジタルデータに変換し、変換したデータをネットワークNを介してコンテンツサーバー200へ送信する。
ユーザー端末350は、例えば、PCやPDA(Personal Digital Assistant)、携帯電話、ゲーム機器、又は家電機器などの端末装置として実現される。
後述するように、本実施形態によれば、コンテンツサーバー200は、ユーザー端末350から音データを取得し、取得した音データの音量を変更することができる。そして、コンテンツサーバー200は、音量が変更された音データを、他のユーザー端末350へ送信することができる。
例えば、ユーザー端末350aから取得した音データの音量が大きくなるように、かつ、ユーザー端末350bから取得した音データの音量が小さくなるように、コンテンツサーバー200は音データを加工し、加工した音データをユーザー端末350cへ送信してもよい。なお、音データとは、例えば、マイクロフォンなどの集音装置により集音された音を示す波形をデジタル化することで得られるデータである。
次に、本実施形態にかかるコンテンツ処理システム1のハードウェア構成及び機能構成について説明する。
まず、本実施形態に係るコンテンツサーバー200及びユーザー端末350a~350cのハードウェア構成について、図2を参照しながら説明する。図2は、本実施形態に係るコンテンツサーバー200及びユーザー端末350のハードウェア構成の一例を示すブロック図である。なお、コンテンツサーバー200及びユーザー端末350は、同様のハードウェア構成を有している。
図2に示されるように、コンテンツサーバー200及びユーザー端末350は、入力装置11と、出力装置12と、外部I/F13と、RAM(Random Access Memory)14とを有する。また、コンテンツサーバー200及びユーザー端末350は、ROM(Read Only Memory)15と、CPU(Central Processing Unit)16と、通信I/F17と、HDD18とを有する。これらハードウェア構成要素は、バスBにより相互に接続されている。
入力装置11は、ボタン、スイッチ、キーボードやマウス、タッチパネル等を含み、コンテンツサーバー200及びユーザー端末350に各種信号を入力するのに用いられる。出力装置12は、ディスプレイ等の表示装置及びスピーカなどの音声出力装置を含み、各種の処理結果を表示する。
なお、コンテンツサーバー200及びユーザー端末350は、入力装置11及び出力装置12の少なくとも一方を、必要なときにバスBに接続して利用しも良い。
外部I/F13は、外部装置とのインタフェースである。外部装置には、例えば、CD(Compact Disk)やDVD(Digital Versatile Disk)、SDメモリカード(SD memory card)、USBメモリ(Universal Serial Bus memory)等の記録媒体13aがある。
コンテンツサーバー200及びユーザー端末350は、外部I/F13を介して記録媒体13aの読み取りや書き込みを行うことができる。
RAM14は、プログラムやデータを一時保存する揮発性の半導体メモリ(記憶装置)である。ROM15は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ(記憶装置)である。CPU16は、例えばHDD18やROM15等からプログラムやデータをRAM14上に読み出して、各種処理を実行する演算装置である。
通信I/F17は、コンテンツサーバー200及びユーザー端末350をネットワークNに接続するためのインタフェースである。HDD18は、プログラムやデータを格納している不揮発性のメモリ(記憶装置)である。
HDD18に格納されるプログラムやデータには、本実施形態を実現するプログラムや、コンテンツサーバー200及びユーザー端末350の全体を制御する基本ソフトウェアであるOS(Operating System)、OS上で動作する各種アプリケーションプログラム等がある。
なお、コンテンツサーバー200及びユーザー端末350は、HDD18の代わりに又はHDD18と併せて、SSD(Solid State Drive)等の不揮発性のメモリ(記憶装置)を用いても良い。
本実施形態に係るコンテンツサーバー200及びユーザー端末350は、図2に示すハードウェア構成により後述する各種機能及び各種処理を実現することができる。
次に、コンテンツサーバー200の機能構成について説明する。図3は、コンテンツサーバー200の機能構成の一例を示すブロック図である。コンテンツサーバー200は、通信部250と、個別マップ制御部252と、指標値算出部254と、データ保持部256と、ユーザー音声加工/配信部258と、映像配信部260とを有する。
データ保持部256は、例えば、図2のHDD18などによって実現される。通信部250と、個別マップ制御部252と、指標値算出部254と、データ保持部256と、ユーザー音声加工/配信部258と、映像配信部260とは、例えば、図2のCPU16などによって実現される。
通信部250は、コンテンツサーバー200とユーザー端末350との間の通信を仲介する。即ち、コンテンツサーバー200とユーザー端末350との間で、コンテンツは通信部250を介して送信及び受信される。また、ユーザー端末350からのログイン要求及びユーザー端末350に表示された画面上に行われた操作を示す信号などは、通信部250を介してコンテンツサーバー200に受信される。
映像配信部260は、撮影装置102からの映像と音声とを含む映像データ(動画データ)を受信し、受信したデータをユーザー端末350へ配信する。なお、映像配信部260は、撮影装置102から受信した映像データを加工し、加工した映像データをユーザー端末350へ配信してもよい。
データ保持部256は、複数のユーザーのそれぞれのユーザーIDと、複数のユーザーのそれぞれの属性を示す属性情報を記憶する。図4はデータ保持部256に記憶されるテーブルの一例である。図4に示すテーブルおいては、複数のユーザーのそれぞれのIDが、複数のユーザーのそれぞれの属性に関連付けられている。データ保持部256は、記憶手段の一例である。
属性情報として、具体的には、ユーザーID"U1"~"UN"の各々に対して、当該ユーザーのファンのチーム、当該ユーザーが他のユーザーからいいねされた数、当該ユーザーが他のユーザーからキック(除外)された数、当該ユーザーの性別、当該ユーザーの年齢、当該ユーザーの住んでいる地域、当該ユーザーがAが好きか、当該ユーザーがBが好きか、・・・、及び当該ユーザーの発言頻度などの属性が関連付けられている。
本実施形態において、当該ユーザーのファンのチームは、当該ユーザーが応援するチームを意味し、いいねの数は、当該ユーザーが他のユーザーから肯定的に評価された回数を意味する。また、キックされた数は、当該ユーザーが他のユーザーから否定的に評価された回数を意味する。また、発言頻度は、コンテンツの視聴中にどれだけの比率の時間喋ったかを数値化(マイクから音を検出した時間/合計視聴時間)したものである。
属性は、ユーザーによって行われた操作に応答してリアルタイムに変化(更新)させても良い。なお、以下の説明において、ユーザー1~NのユーザーIDは、それぞれ、U1~UNであるものとする。
指標値算出部254は、データ保持部256に記憶される複数のユーザーのそれぞれの属性を示す属性情報を用いて、操作者ユーザーに対する他のユーザーのそれぞれの指標値を算出する。なお、操作者ユーザーは、ユーザー端末350を操作してコンテンツサーバー200から音データを受信するユーザーを意味する。操作者ユーザーに対する他のユーザーは、複数のユーザーのうち、操作者以外のユーザーを意味する。
指標値算出部254は、操作者ユーザーに対する他のユーザーのそれぞれの指標値を、以下の式1で算出する。
また、指標値算出部254は、上記の式1における"I"を、以下の式2で算出する。
I
maxは、操作者ユーザーにとって、Iが最大である他のユーザーのIである。指標値算出部254は、操作者ユーザーに対する他のユーザーのそれぞれの指標値を算出する時には、指標値の最大値を100とするために、IをI
maxで除算し、100を掛ける。
なお、上記式2において、係数w0~wnは、通常、0よりも大きい値として適宜設定可能である。また、係数w0~wnは、全てのユーザーに対して共通の値として設定されてもよいし、各々のユーザーによって自由に設定されてもよい。
例えば、図4において、IDが"U1"のユーザー1とIDが"U3"のユーザー3とは、ファンのチームが一致する。したがって、ユーザー3が操作者ユーザーである場合に上記式2によってユーザー3に対するユーザー1のIを算出する際に、上記式2における"(w0×同一チームのファンか否か)"の値は0よりも大きな値となる。
一方、図4において、IDが"U1"のユーザー1とIDが"U2"のユーザー2とは、ファンのチームが一致しない。したがって、ユーザー2が操作者ユーザーである場合に上記式2によってユーザー2に対するユーザー1のIを算出する際に、上記式2における"(w0×同一チームのファンか否か)"は0となる。
すなわち、本実施形態によれば、図4に示されるテーブルにおいて、ファンのチーム及び趣味などの項目は、複数のユーザーの価値観に基づいて決定される属性である。上記式2において、ユーザーの価値観に基づいて決定される属性に基づいて算出される部分は、操作者ユーザーごとに異なる値となる。
また、図4において、ユーザー3に対するユーザー1のIを算出する際の"(w1×いいねの数)"及び"(w2×キックされた数)"と、ユーザー2に対するユーザー1のIを算出する際の"(w1×いいねの数)"及び"(w2×キックされた数)"は、同じである。
すなわち、本実施形態によれば、図4に示されるテーブルにおいて、いいねされた数及びキックされた数などの項目は、複数のユーザーの評価に基づいて決定される属性である。上記式2において、ユーザーの評価に基づいて決定される属性に基づいて算出される部分は、全ての操作者ユーザーにとって同じ値となる。
なお、指標値算出部254は、図4に示されるような"ファンのチーム"~"発言頻度"などのユーザーの属性の全てに基づいて指標値を算出するものに限定されない。例えば、指標値算出部254は、図4に示す属性の少なくとも一部に基づいて指標値を算出してもよい。
また、性別、年齢、住んでいる地域、Aが好き、Bが好きなどのユーザーによって予め登録されるプロフィールについては、ユーザーがフィルタを設定できるようにしてもよい。
例えば、ユーザー2が、性別に関するフィルタに、男性を除外するように設定している場合には、上記式2における"(w3×性別がフィルタに引っかかるか)"の値が負の値を取るようにしてもよい。
すなわち、他のユーザーの性別が男性であった場合に、当該他のユーザーの上記式2における"(w3×性別がフィルタに引っかかるか)"の値が負の値を取るようにしてもよい。年齢、住んでいる地域、趣味等の属性についても、同様に、ユーザーがフィルタを設定できるようにしてもよい。
なお、各々のユーザーは、w0~wnの重み及び上記したようなフィルタを自由に設定することで、算出されたIの値が負の値である他のユーザーがマッチング(選出)されないようにしてもよい。例えば、係数w2を大きな正の値に設定することによって、他のユーザーによってキックされた数が多いユーザー=劣悪なユーザーを排除することができる。
本実施形態によれば、操作者ユーザーに対する他のユーザーの指標値が上記のように算出されるので、操作者ユーザーにとっての指標値が高いほど、当該指標値を持つ他のユーザーは操作者ユーザーにとって好ましいユーザーである可能性が高い。すなわち、本実施形態において、指標値は、操作者ユーザーにとっての他のユーザーの好ましさを示す値である。
そして、後述するように、そして、指標値算出部254によって算出された、操作者ユーザーに対する他のユーザーのそれぞれの指標値に基づいて、個別マップ制御部252は画面データを生成し、ユーザー音声加工/配信部258は音データを生成する。
すなわち、個別マップ制御部252は、算出された指標値が高いい順に他のユーザーが操作者ユーザーの近くに対して配置された画面を、操作者ユーザーのユーザー端末350に表示させる表示制御手段の一例である。これにより、操作者ユーザーにとって優良なユーザーを操作者ユーザーにマッチングさせることが可能であり、操作者ユーザーがよりよいユーザーと交流することを実現することができる。
また、ユーザー音声加工/配信部258は、操作者ユーザーのユーザー端末350へ送信する音データを生成する際に、他のユーザーの指標値が高くなるにつれて、他のユーザーに利用されるユーザー端末350から取得した音データの音量を大きくする。
このようにして、本実施形態によれば、快適な観戦体験又は視聴体験を操作者ユーザーに提供することができる。
個別マップ制御部252は、操作者ユーザーに対する他のユーザーのそれぞれの指標値に基づいて、当該操作者ユーザーに利用されるユーザー端末350に図5に示すような個別マップ表示画面500を表示させるための画面データを生成する。
図5は、ユーザーNに利用されるユーザー端末350に表示される個別マップ表示画面500の一例を示す図である。図5に示されるように、個別マップ表示画面500には、操作者ユーザーNを中心に、ユーザー1、ユーザー2、及びユーザー3が配置されている。ユーザーN及びユーザー1~3は、アバターで表示される。本実施形態において、アバターは、バーチャル・リアリティ環境でユーザー同士が交流できるようにするための人物描写であり、自分(ユーザー)の分身として個別マップ表示画面500に表示されるキャラクターを意味する。アバターは他のユーザーをそれぞれ示す画像の一例である。
図5に示す例では、ユーザーNにとっての、ユーザー1の指標値、ユーザー2の指標値、及びユーザー3の指標値は、それぞれ、85、30、10である。個別マップ表示画面500において、ユーザー1、ユーザー2、及びユーザー3は、指標値が高い順にユーザーNの近くに配置されている。
本実施形態によれば、操作者ユーザーNに対する他のユーザー1~3の指標値は、上記の様な式で算出されるので、操作者ユーザーNにとっての指標値が高いほど、当該指標値を持つ他のユーザーは操作者ユーザーNにとって好ましいユーザーである可能性が高い。
なお、図5に示す例では、個別マップ表示画面500において操作者ユーザーNの周りに配置されるユーザーの数は3であるが、実際には無数のユーザーが配置され得る。
このような個別マップ表示画面500は、ユーザーNのアバターが配置された中心から距離が離れるごとに、近距離領域502、中距離領域504、遠距離領域506、領域外508の4つに区分されている。
近距離領域502に配置されたユーザーの声は、ユーザーNに大きく聞こえるように設定され、中距離領域504に配置されたユーザーの声は、ユーザーNに大きく中程度に聞こえるように設定される。また、遠距離領域506に配置されたユーザーの声は、ユーザーNに小さく聞こえるように設定され、領域外508に配置されたユーザーの音声はユーザーNには聞こえないように設定される。
すなわち、ユーザーNに近い順に音量が大きくなるように、他のユーザー1~3のユーザー端末350から取得した各音データを合成することで、操作者ユーザーのユーザー端末350へ送信される音データが生成される。
このように、操作者ユーザーNは、個別マップ表示画面500において配置された他のユーザーの指標値(中心からの距離)に応じて音量が異なる音を聞くことができる。なお、音データの具体的な加工方法(調整方法)については後述する。
また、データ保持部256は、個別マップ表示画面500におけるユーザーの位置関係を記憶していてもよい。図6は、データ保持部256に記憶される個別マップ表示画面500におけるユーザー間の位置関係を示すテーブルの一例である。
図6に示すテーブルにおいて、主ユーザーIDは、図5に示すような個別マップ表示画面500の操作者ユーザーのIDを示し、従ユーザーIDは、主ユーザーの個別マップ表示画面500において操作者ユーザーの周りに配置される他のユーザーのIDを示す。
また、図6に示すテーブルにおいて、指標値は、主ユーザーにとっての従ユーザーの指標値を示し、距離は、個別マップ表示画面500における従ユーザーの主ユーザーからの距離を示す。
なお、データ保持部256に記憶されるテーブルには、複数のユーザーの各々を主ユーザーとし他のユーザーを従ユーザーとしたときの指標値及び距離が記憶されているが、説明を簡略化するため、図6に示す例では、テーブル内の数値等の一部を「・・・」と表記することで省略する。
ここで、距離は、以下の式3で算出される。
例えば、指標値が100の従ユーザーは、主ユーザーとの距離が0であり、指標値が99.9の従ユーザーは、主ユーザーとの距離が0.01である。また、指標値が0である従ユーザーは、主ユーザーとの距離が100であり、当該従ユーザーは遠距離領域506と領域外508の間の境目の近傍に配置される。この場合、当該従ユーザーの音声が主ユーザーになんとか聞こえる位置に、当該従ユーザーが配置される。
また、主ユーザーへ送信される音データの音声Sは、下記の式4で表される。
ここで、Suserは主ユーザーへ送信される加工後の音声を表し、Smainはスポーツ中継の音声など撮影装置102から取得した音データの音声を表し、Uは当該主ユーザーの領域内に配置されているユーザーの集合を表す。
また、Dmaxはシステム管理者が設定する音声が聞こえる距離の最大値を表し、Diは従ユーザーiが配置されている距離を表し、Siは従ユーザーiのユーザー端末350から取得した音データの音声を表している。
なお、上記した例では、従ユーザーiの指標値から従ユーザーiの主ユーザーからの距離を算出し、従ユーザーiのユーザー端末350から取得した音データは、従ユーザーiの主ユーザーからの距離に応じてスポーツ中継などの音声と合成される。しかしながら、距離を算出せずに、従ユーザーiの指標値に応じて音データを合成してもよい。
また、ユーザー音声加工/配信部258は、ユーザー端末350から受信した音データを加工し、加工した音データをユーザー端末350へ配信する。具体的には、例えば、ユーザー音声加工/配信部258は、ユーザー端末350aから受信した音データの音量を変更し、音量が変更された音データをユーザー端末350a以外の端末であるユーザー端末350bへ送信する。
このとき、ユーザー音声加工/配信部258は、指標値算出部254によって算出された他のユーザーのそれぞれの指標値に基づいて、操作者ユーザーのユーザー端末350に送信する音データを生成する。
すなわち、ユーザー音声加工/配信部258は、操作者ユーザーのユーザー端末350へ送信する音データを生成する際に、他のユーザーの指標値が高くなるにつれて、他のユーザーに利用されるユーザー端末350から取得した音データの音量を大きくする。別の言い方をすれば、ユーザー音声加工/配信部258は、他のユーザーの操作者ユーザーからの距離が近くなるにつれて、他のユーザーに利用されるユーザー端末350から取得した音データの音量を大きくする。
例えば、操作者ユーザーNにとっての、ユーザー1の指標値、ユーザー2の指標値、及びユーザー3の指標値は、それぞれ、85、30、10である場合、ユーザー音声加工/配信部258は、ユーザー1~3のユーザー端末350から受信した各音データを次のように合成する。
ユーザー音声加工/配信部258は、ユーザー1のユーザー端末350から受信した音データの音量が最大となるように、かつ、ユーザー2のユーザー端末350から受信した音データの音量が2番目に大きくなるように、かつ、ユーザー3のユーザー端末350から受信した音データの音量が最小となるように、ユーザー1~3のユーザー端末350から受信した各音データを合成する。
そして、ユーザー音声加工/配信部258は、ユーザー1~3のユーザー端末350から受信した各音データを合成することによって生成された音データを、操作者ユーザーNのユーザー端末350に送信する。
図6に示されるように、主ユーザーNにとっての従ユーザー1の指標値及び距離は、主ユーザー1にとっての従ユーザーNの指標値及び距離と異なる。また、主ユーザーNの個別マップには従ユーザー2がいるが、主ユーザー2の個別マップには従ユーザーNがいない状態が実現可能であり、主ユーザーが任意に他のユーザーの音声を選択することが可能である。
なお、図6において、テーブル内のユーザーは、オフラインになったタイミングで削除される。
また、操作者ユーザーNは、個別マップ表示画面500における他のユーザーの表示位置を移動させることができる。図7は、ユーザーNに利用されるユーザー端末350に表示される個別マップ表示画面500の別の例である。
図7に示す例では、図5に示す例に対して、ユーザー2が近距離領域502に移動させられ、ユーザー1が遠距離領域506に移動させられている。このように、操作者ユーザーNは、近距離領域502、中距離領域504、遠距離領域506、領域外508の4つに区分を目安に他のユーザーのアバターの表示位置を自由に変更することができる。
操作者ユーザーNは、例えば、マウスを操作して個別マップ表示画面500に表示される他のユーザーの位置を移動させることができる。ユーザーNによる操作に応答して、ユーザー端末350はコンテンツサーバー200に信号を送信する。
ユーザー端末350からの信号の受信に応答して、コンテンツサーバー200は、ユーザー端末350へ送信する音データを変更する。また、この個別マップ表示画面500における他のユーザーの表示位置を移動させる操作は、当該他のユーザーの個別マップ表示画面500に影響を与えない。
すなわち、例えば、操作者であるユーザーNが個別マップ表示画面500において他のユーザーであるユーザー2を近距離に配置したとしても、ユーザー2の個別マップ表示画面500においてユーザーNがユーザー2の近距離に配置されるとは限らない。
こうすることで、操作者ユーザーは、他のユーザーに影響を与えることなく、迷惑なユーザーを遠くに配置することで排除したり、好ましいユーザーを近くに配置することができ、操作者ユーザーにとっての音声を快適にすることができる。すなわち、快適な観戦体験又は視聴体験を実現することができる。
なお、ユーザー端末350の個別マップ表示画面500に対して操作者ユーザーによって行われた他のユーザーの表示位置を変更する要求は、ユーザー端末350から送信され、通信部250に受信される。通信部250が当該要求を受信すると、個別マップ制御部252は、個別マップ表示画面500における他のユーザーの表示位置を変更する。通信部250は受信手段と送信手段の一例である。
このとき、指標値算出部254は表示位置が変更させられる他のユーザーの指標値を変更することができる。ユーザー音声加工/配信部258は変更された表示位置(変更された指標値)に基づいて、操作者ユーザーへ送信する音データを再生成(変更)することができる。
また、ユーザーNは、個別マップ表示画面500を介して他のユーザーを評価することができる。図8は、ユーザーNが他のユーザーを評価するときの個別マップ表示画面500の一例を示す図である。
例えば、ユーザーNは、ユーザー1と会話をして楽しかったと感じた場合、いいねボタン520を押す。また、ユーザー1と会話をした結果合わないと感じた場合、あるいは観戦中にうるさいと感じた場合はキックボタン530を押し、ユーザー1を自身の領域(操作者ユーザーNの個別マップ表示画面500)から退出させることができる。
ユーザー1がうるさいかどうかをユーザーNが判別できるようにするために、ユーザーNに利用されるユーザー端末350は、ユーザー1が喋っている間は、個別マップ表示画面500においてユーザー1のアバター(アイコン)を点滅させてもよい。
別の言い方をすれば、操作者ユーザーNは、個別マップ表示画面500を介して、複数の他のユーザーのうち少なくとも一のユーザーを除外するよう要求することができる。
個別マップ制御部252は、個別マップ表示画面500における他のユーザーを評価するためのユーザー操作に応じて、データ保持部256に記録されている評価された他のユーザーの属性(属性値)を更新する。具体的には、ユーザー端末350において表示された個別マップ表示画面500において、操作者ユーザーNによりユーザー1を評価する操作が行われると、個別マップ制御部252は、図4に示すテーブルにおけるユーザー1の属性(属性値)を更新する。
例えば、操作者ユーザーNがユーザー1に対して"いいねする"に対応するいいねボタン520をクリックすると、個別マップ制御部252は、データ保持部256に記憶されるテーブルにおけるユーザーIDがU1のユーザー1のいいねの数を1インクリメントし101となるようにする。
例えば、ユーザーNがユーザー1に対して"キックする"に対応するキックボタン530をクリックすると、個別マップ制御部252は、データ保持部256に記憶されるテーブルにおけるユーザーIDがU1のユーザー1のキックされた数を1インクリメントし、1となるようにする。
なお、キックボタン530の押圧などのユーザー端末350の個別マップ表示画面500に対して操作者ユーザーによって行われた他のユーザーを除外する要求は、ユーザー端末350から送信され、通信部250に受信される。通信部250が当該要求を受信すると、個別マップ制御部252は、個別マップ表示画面500から他のユーザーを削除する。
このとき、指標値算出部254は除外される他のユーザーの指標値を負の値に変更してもよい。ユーザー音声加工/配信部258は除外された他のユーザーのユーザー端末350から取得される音データを、操作者ユーザーのユーザー端末350へ送信する音データから除外する。
なお、上記した例では、ユーザーNの周りに配置されるユーザーの数は3であるが、実際には、ユーザーNの周りに多数のユーザーが配置され得る。図9は、ユーザーNに利用されるユーザー端末350に表示される個別マップ表示画面500の初期画面の一例を示す図である。
図9に示されるように、個別マップ表示画面500の中距離から遠距離には、あらかじめ設定された臨場感パラメータに基づいて、複数の他のユーザーが自動で配置される。本実施形態において、臨場感パラメータは、操作者ユーザーのユーザー端末350へ送信される音データの臨場感の程度を示すものであり、操作者ユーザーの周りに配置される他のユーザーの数に対応するパラメータである。
臨場感パラメータは0.0から100.0までの範囲内の値に設定可能であり、臨場感パラメータが高いほど、操作者ユーザーの周りに配置される他のユーザーの数は多い。
臨場感パラメータが0.0であれば他のユーザーは配置されず、この場合、他のユーザーからの音データは、操作者ユーザーへ送信される音データに合成されない。臨場感パラメータが100.0であれば、システム管理者が設定した個別マップ表示画面500にマッピング可能なユーザーとして設定した数だけ他のユーザーを配置する。
また、ユーザーは、マップ拡大/縮小バー602を操作することにより、マップを広げたり、縮小したりできる。また、マップの表示領域は変更することができ、任意の他のユーザーに照準を合わせることができる。
次に、ユーザー端末350の機能構成について説明する。図10は、ユーザー端末350の機能構成の一例を示すブロック図である。図10に示すように、ユーザー端末350は、通信部360、制御部362、音声出力部364、音声入力部366、表示部368、表示操作部370及び撮影部372を備える。
通信部360は、図2のCPU16などによって実現され、ユーザー端末350とコンテンツサーバー200との間の通信を仲介する。すなわち、通信部360は、例えば、表示部368により表示された画面上へのユーザーの操作に応答して、ログイン要求信号などをコンテンツサーバー200へ送信する。
また、通信部360は、例えば、コンテンツサーバー200から映像又は音声などのコンテンツデータを受信すると、受信したコンテンツデータを表示部368及び音声出力部364へ出力し、コンテンツを再生させる。
制御部362は、図2のCPU16などによって実現され、通信部360を介した通信、音声出力部364及び表示部368によるコンテンツの再生、音声入力部366によるユーザー音声の入力、表示操作部370の操作、及び撮影部372によるユーザー映像の撮影など、ユーザー端末350の機能全般を制御する。
例えば、制御部362は、MPEG(Moving Picture Experts Group)-4などの任意のフォーマットで受信されるコンテンツデータから映像チャネルと音声チャネルとを分離し、表示部368及び音声出力部364へそれぞれ分配する機能を有していてもよい。
音声出力部364は、例えば、任意のスピーカなどの出力装置12などによって実現され、制御部362から入力される音データを再生し、音声を出力する。
音声入力部366は、例えば、任意のマイクロフォンなどによって実現され、ユーザーにより発せられた音声などを含むユーザー音声を取得し、音データを生成して制御部362へ出力する。また、音声入力部366によって取得されたユーザーの音声に対応する音データは、制御部362に入力され、通信部360を介してコンテンツサーバー200に送信される。
表示部368は、例えば、任意の表示装置によって実現され、制御部362から入力される映像データを再生し、映像を表示する。また、表示部368は、コンテンツサーバー200から受信した画面データに基づいて、個別マップ表示画面500のような画面を表示する。
表示操作部370は、例えば、マウスなどの入力デバイスによって実現され、個別マップ表示画面500上に配置されている他のユーザーの配置を変更するための操作などのユーザー操作を受け付ける。表示操作部370が受け付けた操作に対応する信号は、通信部360を介してコンテンツサーバー200に送信される。
撮影部372、例えば、任意の撮影装置によって実現され、被写体としてのユーザーを撮影し、映像データを生成して制御部362へ出力する。撮影部372から制御部362へ入力される映像データは、通信部360を介してコンテンツサーバー200へ送信される。
次に、コンテンツサーバー200からユーザー端末350に音データする動作を説明する。図11は、コンテンツサーバー200からユーザーNに利用されるユーザー端末350に音データする動作の一例を示すフローチャートである。
まず、S100では、コンテンツサーバー200は、ユーザー端末350からログインID(ユーザーID)を含むログイン要求を受信し、ユーザーNのログイン処理を行う。なお、ユーザー端末350は、ユーザーから受け付けたログイン操作に応答して、ログインIDを含むログイン要求をコンテンツサーバー200へ送信する。
ステップS102では、コンテンツサーバー200は、ユーザー端末350から臨場感パラメータを受信する。なお、ステップ100Sの処理とステップS102の処理は同時に行われてもよい。
ステップS104では、コンテンツサーバー200は、臨場感パラメータに従った数だけ他のユーザーを選出する。具体的には、コンテンツサーバー200は、図4に示されるようなテーブルを記憶したデータ保持部256を参照する。そして、コンテンツサーバー200は、ステップ100にて受信したユーザーIDに係る操作者ユーザーNにとっての、他のユーザーのそれぞれの属性を示す属性情報に基づいて、当該他のユーザーのそれぞれの指標値を上記した式を用いて算出(取得)する。
ステップS106では、コンテンツサーバー200は、ステップS104で選出した他のユーザーを当該他のユーザーのそれぞれの指標値及び距離に関連付けて、データ保持部256に記録する。具体的には、コンテンツサーバー200は、操作者ユーザーNを主ユーザーとする、図6に示されるようなテーブルを生成する。
ステップS108では、コンテンツサーバー200は、ユーザーNのために選出された他のユーザーと当該他のユーザーのそれぞれの指標値及び距離とを示すデータを、ユーザーNに利用されるユーザー端末350(クライアント側)へ送信する。具体的には、コンテンツサーバー200は、図5に示されるような個別マップ表示画面500を表示するための画面データをユーザー端末350へ送信する。
ステップS110では、コンテンツサーバー200は、データ保持部256に記録される、ユーザーNの個別マップに基づいて音データを生成する。具体的には、コンテンツサーバー200は、上記した式4を用いて、複数の他のユーザーのユーザー端末350から受信した各音データの音量をステップS104で取得した他のユーザーのそれぞれの指標値に基づいて調整(変更)することで、操作者ユーザーのユーザー端末へ送信される音データを生成する。
ステップS112では、ステップS110において生成された音データと、映像データをユーザーNに利用されるユーザー端末350(クライアント側)に配信する。
なお、例えば、スポーツを視聴する際に、操作者ユーザーNは、自身の個別マップに招待する他のユーザーを選択することができる。図12は、ユーザーNがスポーツの視聴を開始するときにユーザー端末350に表示される友達選択画面700の一例を示す図である。
友達選択画面700において、ユーザーNの友達として登録されたユーザーが、友達リストに表示される。複数のユーザーは、お互いのユーザーIDを交換することで、友達として登録される。これにより、ユーザー端末350は、ユーザーIDを交換した他のユーザーを友達リストに表示させることができる。
友達リスト内においてチェックボックス702をチェックすることでユーザーNに選択された他のユーザーのユーザー端末350には招待通知が送信される。そして、当該他のユーザーが招待通知に応答することで、ユーザーNがボタン704を押してユーザー端末350に個別マップ表示画面500を表示する際に、当該他のユーザーがユーザーNの近距離に配置される。
同様に、当該他のユーザーのユーザー端末350に個別マップ表示画面500が表示される際に、ユーザーNが当該他のユーザーの近距離に配置される。
この仕組みにより、操作者であるユーザーは、自分が話したい他のユーザーと確実に会話をしながらスポーツを観戦/視聴することができる。なお、オフラインのユーザーにも招待通知を送ることができ、招待通知が送信されたユーザーが後ほどオンラインとなったときに、ユーザーが双方の近距離に配置されるようにしてもよい。
図13は、ユーザーNが友達選択画面700において他のユーザーを友達として選択した場合における個別マップ表示画面800の一例を示す図である。図13に示されるように、図12の視聴開始時に表示される友達選択画面700において友達として選択された他のユーザーは、操作者ユーザーから近距離に配置される。
また、ボックス802に示されるように、オフラインだったユーザーがオンラインとなったタイミングで、ユーザー端末350に通知が届く。これにより、操作者ユーザーNは、ユーザー33がオンラインとなったことに気付くことができる。
また、ボックス804に示されるように、他のユーザーを選択することで該他のユーザーのプロフィールが閲覧可能である。また、お互いを近距離に配置するように、リクエストを他のユーザーのユーザー端末350へ送信することができる。他のユーザーのユーザー端末350がリクエストを了承した場合、双方のユーザーが双方の個別マップ上において近距離に配置される。
以上説明したように、指標値算出部254は、データ保持部256に記憶された複数のユーザーのそれぞれの属性に基づいて、複数のユーザーの各々に対して、一のユーザー(操作者ユーザー)に対する他のユーザーのそれぞれの指標値を算出することができる。指標値算出部254は、取得手段の一例である。
また、ユーザー音声加工/配信部258は、操作者ユーザーからのログイン要求に応答して、指標値算出部254によって算出された他のユーザーのそれぞれの指標値に基づいて、操作者ユーザーのユーザー端末350に送信する音データを生成する。ユーザー音声加工/配信部258は、生成手段の一例である。
したがって、本実施形態によれば、コンテンツサーバー200は、快適な観戦体験又は視聴体験をユーザーに提供することができる。
なお、上記した実施形態においては、コンテンツサーバー200の数は一つであったが、コンテンツ処理システム1は複数のサーバーによって構成されてもよく、どのサーバーに機能を備えさせても良い。なお、この実施形態で説明するユーザー端末350と、コンテンツサーバー200とが接続されたシステム構成は一例であり、用途や目的に応じて様々なシステム構成例があることは言うまでもない。
また、上記した実施形態における処理は、ユーザー端末350がブラウザを介してサーバーからコンテンツをダウンロードし、ブラウザ上でコンテンツを動作させることによって実現されてもよい。
上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)、SOC(System on a chip)、GPU(Graphics Processing Unit)や従来の回路モジュール等のデバイスを含むものとする。
以上、本発明の実施形態について説明したが、本発明は上記した実施形態に限定されるものではない。本発明の主旨から逸脱することなく、種々の変形や変更が可能である。