以下、図面に基づき、本発明の実施の形態を説明する。図1は、本実施形態の全体概念を示す説明図である。本実施形態では、サーバの内部に仮想空間1を形成し、仮想空間1内に複数のアバター2を配置させる。仮想空間を提供するサーバのことを、以下の説明では、仮想空間提供サーバと呼ぶ。また、本実施形態では、「出演者」として、例えば、スポーツ試合等に参加する競技者を例に挙げて説明する。映像データとしては、例えば、サッカー試合等の競技映像データを例に挙げて説明する。しかし、これらは例示であって、本発明はこれらに限定されない。例えば、映画番組、ドラマ番組、報道番組等の他の映像データやこれらの番組の出演者についても、本発明は適用可能である。
本実施形態では、以下に述べるように、「ネットワークを介して接続された複数のクライアントコンピュータに、共通の仮想空間をそれぞれ提供する仮想空間提供サーバであって、前記各クライアントコンピュータから前記ネットワークを介して入力される操作指示に応じて、各ユーザをそれぞれ象徴するキャラクタを前記仮想空間内でそれぞれ動作させ、前記各キャラクタの言動を反映させた前記仮想空間の最新状態を前記ネットワークを介して前記各クライアントコンピュータにそれぞれ送信する仮想空間管理部と、前記各ユーザ間の共通性を検出する共通性検出部と、前記各ユーザ間の交流度を検出する交流度検出部と、を備え、前記仮想空間管理部は、前記検出された共通性に基づいて、前記各キャラクタの前記仮想空間における初期位置及び/または前記各キャラクタの外見データをそれぞれ制御する仮想空間提供サーバ、仮想空間提供システム及びコンピュータプログラムが開示される。さらに、本実施形態では、受信した映像データを前記仮想空間内に表示させる映像管理部と、前記映像データに関する出演者の位置を、前記映像データに同期させて前記仮想空間内に表示させる出演者位置管理部と、前記各クライアントコンピュータから前記ネットワークを介して受信されたテキストメッセージを解析してキーワードを抽出するメッセージ解析部とを備える構成も開示される。
仮想空間1は、例えば、仮想的なスタジアムのように形成され、仮想空間提供サーバの内部に設けられている。仮想空間1では、各ユーザによって操作される「キャラクタ」としてのアバター2がそれぞれ配置されている。アバター2は、ユーザを象徴する人形として形成されており、ユーザによって操作される。ユーザは、自分のアバター2を介して、他のユーザのアバター2と仮想空間1の内部で会話2Aをすることができる。
仮想空間1には、例えば、映像表示部1Aと、競技者位置表示部1Bと、広告表示部1Cとをそれぞれ設けることができる。映像表示部1Aは、例えば、サッカー、ラグビー、マラソン等のような各種競技の映像を表示させるものである。映像表示部1Aには、例えば、放送局によって撮影され送信された映像のデータが表示される。なお、仮想空間1内に表示される映像データは、いわゆる生中継された映像データでもよいし、録画された映像データでもよい。
競技者位置表示部1Bは、映像表示部1Aに表示されている競技に参加する全ての競技者等の位置を、映像表示部1Aでの表示に同期させて、それぞれ個別に表示させるものである。ここで、競技者位置表示部1Bには、後述のように、競技に参加している全競技者以外に、審判やボールの位置も表示される。検出された競技者やボール等の位置は、競技者位置表示部1Bに表示されるほかに、仮想空間提供サーバまたは別のサーバ内に、保存される。
広告表示部1Cは、例えば、映像表示部1Aに表示されている競技のスポンサーや、仮想空間提供サービスのスポンサー等に関する広告データを表示させる。広告データは、例えば、文字、静止画像、動画像、音声等を含んで構成することができる。
各アバターを操作するユーザは、情報発信ツール3を利用することができる。情報発信ツール3は、仮想空間提供サーバの内部に設けてもよいし、仮想空間提供サーバとは別のサーバに設けることもできる。情報発信ツール3は、ユーザがネットワークを介して情報を発信するためのプログラムであり、例えば、ウェブログ(BLOG)、電子掲示板(BBS)、ホームページ(HP)等を挙げることができる。
次に、仮想空間提供システムの全体の動作を説明する。各プロセスには符号”P”を付与している。まず最初に、サッカーやマラソン等のスポーツイベントが開始されると(P1)、このスポーツイベントは、例えば、テレビジョン放送局等によって、スポーツ試合の実況番組として配信される(P2)。ここで、実況番組とは、今現在世界のどこかで行われているスポーツ試合をほぼリアルタイムで配信する番組である。以下、実況番組のことをライブ番組またはライブ映像とも呼ぶ場合がある。配信された番組は、仮想空間1内の映像表示部1Aに表示される。
スポーツ試合に参加している各競技者、審判及びボールの位置は、スポーツ試合の進行に同期してそれぞれ解析され(P3)、その位置解析結果は競技者位置表示部1Bに表示される。例えば、後述の実施例で明らかとなるように、例えば、競技者、審判及びボールには、それぞれ無線タグを予め取り付けておき、試合会場に設けた複数のアンテナによって各無線タグと交信させる。そして、各アンテナと各無線タグとの交信状態(受信する電波の強度)を解析することにより、競技者やボール等の試合会場における位置をリアルタイムで測定することができる。競技者やボール等の位置は、試合会場の二次元平面における位置として特定され、仮想空間1の競技者位置表示部1Bに表示される。なお、競技者やボール等の位置検出は、上述の無線タグを用いる構成に限定されない。
試合会場から実況中継されたライブ番組の映像データは、例えば、仮想空間提供サーバ、または、別のサーバによって保存される(P4)。この保存された映像データには、後述のように検索用の情報が対応付けられる(P13,P14)。
広告表示部1Cには、広告会社やスポンサー等から提供された広告データが表示される(P5)。後述のように、アバター2の言動や視線を分析することにより、広告表示部1Cに表示された広告の効果が測定され(P15,P16)、広告会社やスポンサー等に提供される。
仮想空間1は、仮想空間提供サーバ内に設けられた仮想的な空間であるから、サーバや通信回線の処理能力が許す限り、多数のアバター2を収容することができる。実際の試合会場では、物理的に収容可能な人数を超えて収容することはできないが、仮想空間1は、複数の仮想空間提供サーバにそれぞれ設けることができるため、実際の試合会場の収容人員の制限を超えて、多数のアバター2を収容可能である。
しかし、異なる仮想空間提供サーバ間において、アバター2同士は交流することができない。即ち、ある仮想空間提供サーバ内の仮想空間1に存在するアバター2と、別の仮想空間提供サーバ内の仮想空間1に存在するアバター2とが、アバターを介して会話2Aを行うことは一般的に困難である。別々の仮想空間提供サーバに存在する各アバター2が視聴する映像は同一であっても、サーバが異なれば別の仮想空間1となるからである。
従って、現実世界では友人同士であっても、それぞれ異なる仮想空間提供サーバ上の仮想空間1に存在するアバター2同士は、アバターを介して交流することはできない。現実世界の友人と一緒に仮想空間1を体験しようとする場合は、少なくとも同一の仮想空間提供サーバにログインする必要がある。
しかし、同一の仮想空間提供サーバ上の仮想空間1であっても、例えば、多数のマップから仮想空間1が生成されているような場合は、友人のアバター2を直ちに見つけることができない可能性もある。この場合、ユーザは、例えば、仮想空間1内の会話機能(チャット機能)を用いて、友人のアバター2と連絡を取りながら、複数のマップを移動しつつ友人を捜すことになる。
このように、アバター2の配置をどのように制御するかは、アバター2を介した交流にとって重要な問題である。そこで、本実施形態では、以下のように、アバター2の初期配置位置を制御する。
ユーザは、仮想空間提供サービスを利用する前に、ユーザ登録を行う(P6)。ユーザ登録では、例えば、連絡先電子メールアドレスや性別、年齢等の予め定められた所定の情報を入力する。仮想空間提供サーバは、例えば、ユーザ登録情報と、各情報発信ツール3から取得した情報とを解析することにより(P7)、各ユーザ(各アバター)間の嗜好の共通性(P8)や親密度(P9)をそれぞれ算出する。
例えば、ユーザ登録情報の登録情報として、例えば、趣味、年齢、血液型等の情報が含まれている場合、共通の趣味を有する同年代のユーザ同士は、嗜好が共通すると判断することができる。同様に、各ユーザが情報発信ツール3を用いて発信している情報を単語解析することにより、趣味や年齢等の情報を取得できる場合もある。
例えば、ウェブログの場合、日々の出来事を記載した日記部分のほかに、プロフィール情報やリンク情報等を備えている。プロフィール情報を取得し、その単語を解析することにより、性別や年齢を検出可能な場合がある。また、日記部分に記載されている単語の出現頻度を解析することにより、ユーザの嗜好(趣味)を解析することも可能である。さらに、どのようなウェブログリンクやホームページ(ウェブページ)に向けてリンクを設定しているかを解析することにより、ユーザの嗜好を解析することも可能である。なお、ユーザ登録情報に詳細な情報を登録させることにより、ユーザ間の嗜好の共通性や、潜在的なまたは顕在化された親密度を比較的容易に検出することができるが、個人情報を保護するための仕組みが必要となる。従って、例えば、ユーザ登録情報を廃止し、情報発信ツール3から取得した情報のみを解析する構成としてもよい。
嗜好の共通性、即ち、嗜好の分類(P8)は、上述のように、情報発信ツール3から取得した情報に含まれる単語の出現頻度等から検出可能である。例えば、一方のユーザ及び他方のユーザのウェブログに、特定のサッカーチームの名称や好意的な単語(例えば「応援」、「好き」等)がそれぞれ頻繁に出現している場合、一方のユーザと他方のユーザとは、同一のサッカーチームのファンであると推定可能であり、嗜好が共通していると検出することができる。
ユーザ間の親密度も、情報発信ツール3から取得された情報を解析することにより、検出可能である。例えば、一方のユーザのウェブログと他方のユーザのウェブログとが互いに複数のトラックバックを設定しているような場合、一方のユーザと他方のユーザとは、交流の度合が高いと考えられる。但し、ユーザ同士が論争している場合も、トラックバック数は増加するため、例えば、ウェブログの日記部分を解析して出現する単語の頻度等を検出し、好意的な交流が行われているか否かも判断する必要がある。また、ユーザ同士が相手方のウェブログに書き込んだコメントの数やコメントの内容を解析することによっても、ユーザ同士の親密度を測定可能である。
さらに、一方のユーザと他方のユーザのアバター同士が仮想空間1内で交わす会話2Aの頻度や時間、出現する単語等を解析することによっても、ユーザ間の親密度を測定することができる。例えば、「うん」、「そうだね」等の好意的な単語が頻繁に出現し、比較的長時間会話が継続しているような場合、このユーザ同士は親密度が高いと判断することができる。
仮想空間提供サーバは、上述のように、情報発信ツール3から得られた情報を種々の観点から解析することにより、ユーザ間の親密度を総合的に判定することができる。そして、仮想空間提供サーバは、嗜好の共通する各ユーザや親密度の高いユーザのアバター2同士が同一の仮想空間1内で近接して配置されるように、アバター2の初期位置を決定する(P10)。初期位置とは、アバター2が仮想空間1に出現する際の位置である。従って、仮想空間1内では、嗜好の分類結果によってグループ化されたアバター2が比較的近接して配置される。これにより、各ユーザは、会話2Aによって潜在的な友人を比較的容易に発見できる。また、既に親密な関係にある各ユーザのアバター2も、近接して配置されるため、既存の友人と仮想空間1内で速やかに交流することができる。
仮想空間提供サーバは、ユーザ間の親密度に基づいて、アバター2の容姿(外見)の表示レベルを制御する(P11)。ここで、表示レベルとは、アバター2の描画レベルを意味する。例えば、仮想空間提供サーバは、同一のユーザに関するアバター2について、複数種類の描画レベルのデータを予め用意しており、親密度に応じた描画レベルでアバター2を表示させる。例えば、親密度の低いユーザ間では、描画レベルの低い(または画像解像度の粗い)アバター2を表示させ、親密度の高いユーザ間では、描画レベルの高い(または画像解像度の高い)アバター2を表示させる。これにより、例えば、親密度の高いユーザ間では、ユーザの実際の容姿に近いリアルなアバターを用いて交流することができ、親密度の低いユーザ間では、簡略化されたアバターを用いて交流することができる。
仮想空間1内では、各ユーザは、映像表示部1Aに表示されたスポーツ試合の映像を見ながら、アバター2を介して、意見や感想等を述べることができる。仮想空間提供サーバは、アバター2の会話2Aの内容を解析し(P12)、検索用のキーワードを生成する(P13)。即ち、仮想空間提供サーバは、例えば、会話2Aに出現する単語を抽出し、出現頻度の高い単語を検索キーワードとして選択する。例えば、得点の瞬間が映像表示部1Aに表示された場合、その得点に対する何らかの感想等が会話2Aに出現し、また、例えば、競技者同士のトラブルが映像表示部1Aに表示された場合も、そのトラブルに関する感想等が会話2Aに出現すると考えられる。
そこで、仮想空間提供サーバは、会話2Aに出現する単語の頻度等から検索キーワードを選択する。このようにして生成された検索キーワードは、映像データに対応付けて保存され、後日の検索に使用される(P14)。検索キーワードは、映像データに同期して対応付けられる。映像データに同期して対応付けるとは、映像データの再生時間に同期して対応付けられることを意味する。即ち、簡単には、映像データの各場面毎に、その場面で抽出された検索キーワードが対応付けられる。従って、例えば、特定の競技者の名前を検索条件として指定することにより、その競技者が活躍した場面だけを再生させることができるようになっている。
ところで、広告表示部1Cには、上述の通り、広告データが表示されている。仮想空間提供サーバは、アバター2の視線や会話2Aを解析することにより(P15)、広告表示部1Cに表示された広告の効果を測定する(P16)。即ち、仮想空間提供サーバは、広告表示部1Cに表示されている広告が、どの程度注目されているかを数値化して出力することができる。
このように、本実施形態では、仮想空間1にスポーツ試合等の映像データを表示させ、ユーザは、アバター2を介して会話2Aをしながら、スポーツ試合等を観戦できるように構成した。これにより、ユーザは、他の多数のユーザと交流しながら同一の映像を視聴して、感動を共有することができる。従って、例えば、各ユーザがストリーミング配信等で映像をそれぞれ視聴する場合よりも、臨場感溢れる体験をすることができる。即ち、仮想空間1は、実際のスタジアムに似た仮想的なスタジアムとして構築されるため、各ユーザは、アバター2を介して、臨場感のある観戦を体験することができる。
本実施形態では、映像表示部1Aに表示される映像に同期させて、スポーツ試合の競技者やボール等の位置をリアルタイムで競技者位置表示部1Bに表示させる構成とした。従って、ユーザは、競技者やボール等の位置を常時確認することができ、競技者等の動きをリアルタイムで把握することができる。従って、競技者等の動きに着目することにより、戦術の分析等を行うこともできる。このため、例えば、学校のスポーツクラブ等の監督やメンバーが仮想空間1にアバター2を介してそれぞれ参加することにより、試合運び等を研究することもできる。
本実施形態では、情報発信ツール3から取得した情報や仮想空間1内の会話2Aに基づいて、各ユーザの嗜好の共通性や親密度を検出し、嗜好(または、嗜好及び親密度)に応じてアバター2の初期位置を制御する構成とした。従って、嗜好の共通するユーザのアバター2を比較的近接させて仮想空間1に配置することができ、ユーザ間の活発な交流を促すことができる。
本実施形態では、ユーザ間の親密度に応じて、アバター2の描画レベルを制御する構成とした。従って、親しいユーザ同士は、より精密に描写されたアバター2を用いて、より現実世界に近い交流を仮想空間1内で行うことができる。親密ではないユーザ同士は、簡略化されたアバター2を用いて、仮想空間1内での交流を楽しむことができる。最初は親密ではないユーザ同士であっても、仮想空間1内での交流を続ける間に、親密度が増加すると、アバター2の描画レベルが変化し、より精密に描写されたアバター2を用いて現実世界に近い交流を行うことができる。
本実施形態では、アバター2の会話2Aを分析して検索キーワードを生成し、映像データに同期させて保存する構成とした。従って、映像データを検索するためのキーワードを自動的に生成して映像データに対応付けることができ、検索システムの利便性を高めることができる。以下、本実施形態をより詳細に説明する。
図2は、本実施例による仮想空間提供システムの全体構成を示す説明図である。仮想空間提供システムは、例えば、仮想空間提供サーバ10と、選手位置解析サーバ20と、番組配信サーバ30と、ウェブサーバ40と、情報発信サービスサーバ50及びクライアントコンピュータ60とを備えて構成される。これら各コンピュータ10,20,30,40,50,60は、インターネット等のような通信ネットワークCNを介して接続されている。
仮想空間提供サーバ10は、コンピュータ内に生成された仮想空間を、複数のクライアントコンピュータ60にそれぞれ提供するものである。仮想空間提供サーバ10は、例えば、一つまたは複数のサーバコンピュータから構成することができる。仮想空間提供サーバ10を複数のサーバコンピュータから構成する場合、複数のサーバコンピュータによってクラスタを形成し、負荷を分散させることができる。仮想空間提供サーバ10の詳細は図3と共に後述する。
選手位置解析サーバ20は、実際の試合会場(スタジアム)でスポーツ試合を行っている選手(競技者)や審判及びボールの位置をリアルタイムに解析し、位置情報を仮想空間提供サーバ10に提供するものである。選手位置解析サーバ20については、図4と共に後述する。
番組配信サーバ30は、実際の試合会場で行われているスポーツ試合を撮影して、撮影された映像データを仮想空間提供サーバ10に提供するものである。
ウェブサーバ40は、クライアントコンピュータ60との間で情報を交換するためのものである。ウェブサーバ40は、仮想空間提供サーバ10と同一のサーバコンピュータ上に設けることもできる。仮想空間提供サーバ10により生成される仮想空間は、ウェブサーバ40を介して、各クライアントコンピュータ60に提供される。従って、仮想空間は、クライアントコンピュータ60に設けられているウェブブラウザに表示される。なお、ウェブブラウザとは別の専用のソフトウェアをクライアントコンピュータ60にインストールし、この専用ソフトウェアによって仮想空間にアクセスする構成でもよい。この場合は、ウェブサーバ40を廃止することができる。
情報発信サービスサーバ50は、各ユーザが通信ネットワークCNを介して情報を発信するためのサービスを提供するためのサーバである。情報発信サービスとしては、例えば、ウェブログ(以下、ブログ)、ホームページ(ウェブページ)、電子掲示板等が挙げられる。ユーザは、これらのウェブログ等を介して、自分の意見や日々の出来事等を発信可能である。以下の説明では、情報発信サービスとしてブログを中心に説明する。
クライアントコンピュータ60は、ユーザによって使用されるコンピュータであり、典型的には、パーソナルコンピュータとして構成される。これに限らず、例えば、携帯電話や携帯情報端末等のように構成することもできる。
図3は、仮想空間提供サーバ10の構成を示す説明図である。仮想空間提供サーバ10は、例えば、制御部100と、記憶部120及び通信部140を備えている。制御部100は、例えば、少なくとも一つ以上のCPU(Central Processing Unit)等を備えて構成されている。制御部100は、ROM(Read Only Memory)等に予め記憶されたプログラムを読み込んで実行することにより、後述の各機能101〜109をそれぞれ実現する。
記憶部120は、例えば、RAM(Random Access Memory)やフラッシュメモリ、ハードディスク等の記憶デバイスから構成される。記憶部120には、後述する各種の情報が記憶されている。
通信部140は、通信ネットワークCNを介して、他のサーバ20,30,40やクライアントコンピュータ60と双方向の通信を行うためのものである。なお、図3,図4では、ウェブサーバ40の図示を省略している。
制御部100の実現する機能を説明する。制御部100は、例えば、ユーザ管理部101と、嗜好・親密度管理部102と、選手位置管理部103と、仮想空間管理部104と、仮想空間提供部105と、番組管理部106と、広告管理部107と、ログ解析部108と、視線解析部109とをそれぞれ備えることができる。
ユーザ管理部101は、仮想空間提供サービスを利用するユーザを管理するための機能である。ユーザ管理部101は、クライアントコンピュータ60から入力された情報を記憶部120内のユーザ管理情報121に記憶させる。また、ユーザ管理部101は、ユーザが仮想空間提供サービスにログインする場合、ユーザ認証を行う。ユーザ管理情報121の内容は、図6と共に後述する。
嗜好・親密度管理部102は、各ユーザ間の嗜好の共通性や親密度を測定して管理するための機能である。嗜好・親密度管理部102は、例えば、ブログ管理情報122に基づいて、各ユーザのブログを解析し、各ユーザの嗜好を分類する。分類された嗜好に関する情報は、記憶部120内の嗜好分類情報123に記憶される。また、嗜好・親密度管理部102は、各ユーザのブログ間の交流状態(トラックバック数やコメント数等)や仮想空間内のチャットログ等に基づいて、ユーザ間の親密度を測定する。測定された親密度は、記憶部120内の親密度管理情報124に記憶される。
なお、図3中では、紙面の都合上、ログ解析部108と嗜好・親密度管理部102とが接続されていないが、実際には、嗜好・親密度管理部102は、ログ解析部108の解析結果を利用可能である。ブログ管理情報122,嗜好分類情報123及び親密度管理情報124については、それぞれ図を改めて後述する。上述の通り、嗜好・親密度管理部102は、ユーザ同士の関係を管理する機能であるから、交流状態管理部と呼び変えることもできる。
選手位置管理部103は、選手位置解析サーバ20から受信された位置情報を管理するための機能である。選手位置管理部103は、受信した位置情報に基づいて、仮想空間に選手等の位置を表示させる。
仮想空間管理部104は、仮想空間を生成し、仮想空間の状態を管理するための機能である。即ち、仮想空間管理部104は、仮想空間管理情報125に基づいて、一つまたは複数のマップを備える仮想的なスタジアムとしての仮想空間を生成し、この仮想空間内に各ユーザのアバターをそれぞれ配置する。仮想空間管理部104は、アバター管理情報126に基づいて、アバターの位置や容姿を決定し、仮想空間内に表示させる。
また、仮想空間管理部104は、番組配信サーバ30から受信した映像を仮想空間内に表示させ、さらに、選手位置解析サーバ20から受信した選手等の位置を映像に同期させて仮想空間内に表示させる。仮想空間管理部104は、各アバターの言動を仮想空間に反映させ、仮想空間を最新状態に保つようになっている。従って、仮想空間内の各アバターの言動は、それぞれ各クライアントコンピュータ60にリアルタイムで表示される。
仮想空間提供部105は、仮想空間管理部104により生成され管理されている仮想空間を、各クライアントコンピュータ60に提供するための機能である。仮想空間提供部105は、例えば、ウェブサーバとして構成することができる。この場合、図2中に示すウェブサーバ40は、仮想空間提供部105に該当する。
番組管理部106は、番組配信サーバ30から受信された番組データ(スポーツ試合等の映像データ)129を仮想空間管理部104に提供するための機能である。また、番組管理部106は、ログ解析部108から出力されるチャットログ127の解析結果に基づいて、検索キーワードを生成し、この検索キーワードを検索キーワードのデータベース128に登録する。検索キーワードデータベース128は、番組データ129に対応付けて保存される。なお、図3中では、番組データ129及び検索キーワードデータベース128を記憶部120内に記憶させる場合を示しているが、これに限らず、例えば、番組データ129は番組配信サーバ30内に記憶し、データベース128を仮想空間提供サーバ10内に記憶させる構成でもよい。
広告管理部107は、記憶部120に記憶された広告データ131を、仮想空間管理部104に供給し、仮想空間内に広告データを表示させるための機能である。また、広告管理部107は、ログ解析部108によるチャットログ127の解析結果と、視線解析部109によるアバターの視線の解析結果とに基づいて、広告データがどの程度視聴されたかを判断する。判断の結果は、広告効果情報130に記憶される。
ログ解析部108は、仮想空間の各アバター間で行われたチャット内容のログデータ127を解析し、例えば、出現頻度の大きい単語を抽出等するものである。即ち、ログ解析部108は、例えば、チャットログ127を形態素解析することにより、意味のあるキーワードを一つまたは複数抽出して、番組管理部106及び広告管理部107にそれぞれ提供する。また、上述の通り、ログ解析部108による解析結果は、嗜好・親密度管理部102にも提供される。
図3の下側にはクライアントコンピュータ60の構成も簡略化されて示されている。クライアントコンピュータ60は、例えば、通信部61及びクライアントソフトウェア62を備えている。通信部61は、通信ネットワークCNを介して、仮想空間提供サーバ10と通信を行うためのものである。クライアントソフトウェア62は、仮想空間提供サービスを利用するためのものである。仮想空間がウェブサーバを介して提供される場合、クライアントソフトウェア62は、ウェブブラウザとして構成される。これ以外に、クライアントソフトウェア62を、仮想空間サービスの専用クライアントとして構成することもできる。
図4は、選手位置解析サーバ20の構成を簡略化して示す説明図である。実際の試合が行われるスタジアム70内には、選手80やボール90等が存在する。ここで、選手80には審判も含まれる。これら選手80及びボール90には、それぞれ予め無線タグ21が設けられている。例えば、選手80の靴の内部やボール90の内部等に、無線タグ21をそれぞれ設けることができる。無線タグ21は、例えば、アンテナ部と、制御部と、記憶部とを備えて構成されており、記憶部には各無線タグ21を一意に特定するための識別情報が予め記憶されている。
スタジアム70には、複数のアンテナ22が設けられている。アンテナ22から発信された電波を無線タグ21内のアンテナ部が受信すると、無線タグ21は、電磁誘導等によって電力を発生し、記憶部に記憶されている識別情報を外部に送信する。アンテナ22は、無線タグ21から送信された電波を受信する。各アンテナ22により受信された電波信号は、信号処理部23に入力される。信号処理部23は、受信した電波の強度及び識別情報を検出する。各アンテナ22が無線タグ21から受信する電波の強度は、各アンテナ22と無線タグ21との位置関係に応じて変化する。従って、各アンテナ22が無線タグ21からそれぞれ受信した電波の強度等に基づいて、無線タグ21のスタジアム70内における位置を特定することができる。
選手位置解析サーバ20は、例えば、制御部200と、記憶部210及び通信部220とを備えて構成される。制御部200は、選手位置解析部201を備える。記憶部210には、例えば、選手位置情報211と、審判位置情報212及びボール位置情報213が記憶されている。
選手位置解析部201は、信号処理部23からの信号に基づいて、各無線タグ21の位置を算出するための機能である。選手位置解析部201によって算出された選手80やボール90の位置は、位置が特定された時刻情報と共に、それぞれの種類に応じた位置情報211,212,213に記憶される。また、検出された位置情報は、通信部220から通信ネットワークCNを介して、仮想空間提供サーバ10に送信される。
スタジアム70内には、複数のカメラ31が設けられている。カメラ31は、試合の様子を撮影し、映像データを出力する。各カメラ31からの映像データは、番組配信サーバ30に蓄積される。番組配信サーバ30は、各カメラ31からの映像データを適宜編集して番組データを生成し、仮想空間提供サーバ10に送信する。
図5は、クライアントコンピュータ60の画面に表示される仮想空間の様子を模式的に示す説明図である。ユーザが、クライアントソフトウェア62としてのウェブブラウザを起動させて、仮想空間提供サーバ10にログインすると、図5に示すような仮想空間G1が表示される。
仮想空間G1内には、スポーツ試合等の番組データを表示する番組表示部G2と、選手80やボール90の位置を二次元平面上に表示する位置表示部G3と、広告データを表示する広告表示部G4とが、それぞれ設けられている。
仮想空間G1内には、複数のアバターA1〜A6が配置されている。各アバターA1〜A6は、それぞれ異なるユーザによって操作されている。ユーザは、アバターを介して会話を楽しむことができる。チャット操作部G5に入力された発言内容は、アバターを介して仮想空間内に表示される。
また、例えば、ウェブブラウザの左端には、メニューM1〜M5が配置されている。メニューM1は、ネットワーク上の仮想商店にアクセスするためのものである。ユーザがポインティングデバイス等でM1を操作すると、例えば、別のウェブブラウザが起動して仮想商店にアクセスする。ユーザは、広告表示部G4で紹介された商品や他のアバターが身につけているアイテムに対応する商品等を仮想商店から購入することができる。仮想商店から商品(サービスを含む)を購入すると、この商品に対応するアイテムをアバターに装着させることができる。例えば、サッカーチームのユニホームを仮想商店で購入した場合、そのユニホームは後日ユーザの手元に届けられると共に、ユーザのアバターは、そのユニホームを象徴するアイテム(服装アイテム)を直ちに着用することができるようになっている。
番組表メニューM2は、番組表示部G2に表示される番組のスケジュールを表示させるものである。ニュースメニューM3は、表示されている番組に関するニュースを表示させるものである。メールメニューM4は、他のユーザに電子メールを送信するためのものである。ブログメニューM5は、自分のブログまたは他人のブログにアクセスするためのものである。
さらに、例えば、ウェブブラウザの下側には、アバターの動作を制御するための操作ボタンB1〜B6が設けられている。ボタンB1を操作すると、アバターの表情は笑顔に変化する。ボタンB2を操作すると、アバターの表情は泣き顔に変化する。ボタンB3を操作すると、アバターは拍手の動作を行う。ボタンB4を操作するとアバターはその場に座り、ボタンB5を操作するとアバターは起立する。ボタンB6を操作すると、アバターは、他のアバターと同期して周期的に立ち座りを繰り返す。以上の動作は例示であって、本発明はこれらに限定されない。
重要なことは、番組の映し出される仮想空間G1内に複数のアバターA1〜A6が配置されており、ユーザは、自分のアバターを介して周囲のアバターと会話を行うことができ、アバターの動作を操作できるという点である。つまり、ユーザは、自分のアバターを用いることにより、他の多くのアバターと一緒に仮想空間G1内の番組を楽しむことができ、感想等を述べ合うことができる。
図6が、ユーザ管理情報121及びブログ管理情報122の構成をそれぞれ示す説明図である。ユーザ管理情報121は、仮想空間提供サービスを利用する各ユーザをそれぞれ管理するためのものである。ユーザ管理情報121は、例えば、ユーザIDと、パスワードと、氏名と、連絡先電子メールアドレスや電話番号と、性別と、年齢と、最終ログイン時刻等を対応付けて管理している。なお、これらの項目は一例であって、本発明はこれらに限定されない。例えば、職業や住所等の項目を追加してもよいし、氏名や年齢等の項目を廃止してもよい。
ブログ管理情報122は、各ユーザが開設しているブログに関する情報を管理するものである。ブログ管理情報122は、例えば、ユーザIDと、ブログIDと、ブログアドレス及びプロフィール等を対応付けて管理する。ユーザIDとは、仮想空間提供サービスを利用する各ユーザをそれぞれ識別するための情報である。ブログIDとは、各ユーザが開設しているブログをそれぞれ識別するための情報である。ブログアドレスとは、ブログのネットワーク上の所在地を示す情報である。ブログに閲覧用のパスワードが設定されている場合、閲覧用パスワードもブログアドレスに含めることができる。プロフィールとは、ブログに記載されているプロフィールの情報を抽出したものである。
図7は、嗜好分類情報123の詳細を示す説明図である。嗜好分類情報123は、例えば、ブログアクセス管理情報123Aと、ブログ分類情報123Bとを含んで構成することができる。
ブログアクセス管理情報123Aは、各ユーザが他のユーザのブログへアクセスしている状況等を管理するためのものである。ブログアクセス管理情報123Aは、例えば、ユーザIDと、ブログIDと、アクセス頻度と、トラックバック回数等とを対応付けて構成される。
アクセス頻度とは、ブログIDで特定されるブログへアクセスした回数を示す情報である。トラックバック回数とは、ブログIDで特定されるブログとの間に設けられたトラックバックの数を示す情報である。従って、ブログアクセス管理情報123Aは、各ユーザ同士のブログを介した交流状態を管理している。アクセス頻度やトラックバック回数が多いほど、そのユーザ同士の交流が盛んであると判断可能である。
ブログ分類情報123Bは、各ブログの内容を分類して管理するものである。ブログ分類情報123Bは、例えば、各ユーザのブログ毎にそれぞれ用意される。ブログ分類情報123Bでは、ユーザのブログに含まれている単語を解析し、予め用意されたカテゴリ別に、出現頻度の高い順番で単語を並べている。
つまり、例えば、「グルメ」、「スポーツ」、「ファッション」、「音楽」、「映画」等のようなカテゴリを予め用意しておき、ブログから抽出された単語を、カテゴリ別に分類する。例えば、「ラーメン」や「牛丼」という単語は、「グルメ」のカテゴリに分類される。「ワールドカップ」や「サッカー」という単語は、「スポーツ」のカテゴリに分類される。複数のカテゴリに属する単語も存在する。このようにして、ユーザのブログ内の単語をカテゴリ別に分類し、各カテゴリ内で出現頻度の高い順番で並べ替える。これにより、そのユーザの興味や趣味の方向及び強さについての情報が得られる。
嗜好分類情報123は、上述のように構成することができる。但し、各テーブルの構成は一例であって、本発明はこれに限定されない。以下の説明においても、各テーブルの構成は説明のための例示である。
ブログアクセス管理情報123Aによって、ユーザ間におけるブログを介した交流の度合を検出することができる。即ち、既存の交流関係を検出可能である。相互に訪問回数(アクセス頻度)が高いブログ間では、各ブログのユーザ同士が親密であると考えることができる。ブログ分類情報123Bによって、そのユーザの興味や趣味がどの方向を向いており、どの程度の強さであるか等を検出できる。即ち、潜在的な友人関係を検出するために使用することができる。
図8は、親密度管理情報124を示す説明図である。親密度管理情報124は、例えば、発言管理情報124Aと、交流関係管理情報124B及び交流希望レベル管理情報124Cとを備えて構成することができる。
発言管理情報124Aは、各アバター間の交流状態をチャットの頻度等によって管理するためのものである。発言管理情報124Aは、例えば、ユーザIDと、相手方ユーザIDと、発言頻度と、交流時間比率と、キーワード一致度等を対応付けて管理する。相手方ユーザIDとは、会話相手のユーザを特定するものである。ここで、説明の便宜上、第1列のユーザIDで特定されるユーザを本ユーザと、本ユーザにより操作されるアバターを本アバターと、相手方ユーザIDで特定されるユーザを相手方ユーザと、相手方ユーザにより操作されるアバターを相手方アバターと呼ぶことにする。
発言頻度とは、本アバターの総発言数に占める相手方アバターとの発言数であり、百分率で表示される。例えば、仮想空間にログインしてからログアウトするまでの期間内に本アバターが100個の発言をし、そのうち相手方アバターとの会話で20個の発言があった場合、発言頻度は20%となる。
交流時間比率とは、本アバターが仮想空間に滞在した全期間において、本アバターと相手方アバターとが会話可能な範囲内に存在した時間の比率を示す。少なくとも、いずれか一方のユーザが他方のユーザと親密でありたいと思う場合、一方のユーザのアバターは、他方のユーザのアバターの近くに位置する時間が長くなるものと考えられる。ここで、仮想空間の広さや会話可能範囲の設定等によっても相違するが、一般的には、仮想空間内で所定の距離内に存在するアバター同士は、いわゆるALLモードで会話可能である。ALLモードとは、アバターの発言が近接する他の全てのアバターに届けられるモードである。これに対し、アバター同士が離れている場合でも、会話相手のアバターの名称を指定することで会話できるモードも存在する。直接対話モードである。直接対話モードによる交流状態は、上述した「発言頻度」に反映される。ALLモードによる会話の状態は、「交流時間比率」に反映される。
キーワード一致率とは、アバター同士の会話に出現する単語と、ユーザの開設しているブログに出現する単語とが一致する率を示す。一致率が高いほど、共通の話題について親密な会話が行われていると判断することができる。
交流関係管理情報124Bは、各ユーザの交友レベル毎に他のユーザを分類して管理するものである。上述の発言管理情報124Aで管理された発言頻度、交流時間比率、キーワード一致率等に基づいて、交流状態を数値化することができる。例えば、交流状態値=f(発言頻度,交流時間比率,キーワード一致率)のような式を用いればよい。算出された交流状態値を、予め設定された交友レベルで分類することにより、特に親しいユーザのグループ(交友レベル1)、比較的仲の良いユーザのグループ(交友レベル2)、知人程度のユーザのグループ(交友レベル3)等のように、交友レベル別のユーザグループを得ることができる。従って、交流関係管理情報124Bを参照することにより、あるユーザと他のユーザとの交友レベルを直ちに検出することができる。
交流希望レベル管理情報124Cは、仮想空間内での交流を希望するユーザグループを管理するためのものである。交流希望レベル管理情報124Cは、例えば、ユーザIDと、各交友レベルを選択するためのフラグとを対応付けて管理する。交友レベルに「1」が設定されている場合、その交友レベルに属するユーザとの交流を希望することを意味し、交友レベルに「0」が設定されている場合、その交友レベルに属するユーザとの交流を拒否することを意味する。どの交友レベルに属するユーザとの交流を希望するか否かは、ユーザが仮想空間にログインする際に指定できる。交流を希望するレベルをログイン時に指定可能としたことにより、例えば、新たな友人を捜すことが容易となり、また、既存の親密な友人との交流を一時的に絶つこともでき、使い勝手が向上する。
図9は、仮想空間管理情報125を示す説明図である。仮想空間管理情報125は、例えば、仮想空間構成情報125Aと、ワールド管理情報125Bとを含んで構成することができる。
仮想空間構成情報125Aは、仮想空間の構成について管理するものである。仮想空間構成情報125Aは、例えば、空間IDと、空間名と、構成ファイル名と、番組IDと、広告IDと、ワールドID等を対応付けて管理する。空間IDとは、仮想空間を識別するための情報である。空間名とは、その仮想空間の名称である。構成ファイル名とは、その仮想空間の構成を定義したファイルを特定するための情報である。番組IDとは、その仮想空間で表示される番組データを特定するための情報である。広告IDとは、その仮想空間で表示される広告データを特定するための情報である。ワールドIDとは、その仮想空間が設けられるワールドを特定するための情報である。
ワールドとは、仮想空間が設けられているサーバの名称である。上述の通り、仮想空間提供サーバ10は、物理的に異なる複数のサーバの集合体として構成することができ、各サーバのそれぞれに同一名称の仮想空間を設定することができる。これにより、より多くのユーザに対応することができ、サーバ間の負荷を分散させて円滑な操作を実現することができる。仮想空間提供サーバ10が単一のサーバのみから構成される場合、接続可能なユーザ数が低い値に制限される。また、サーバ負荷が増大するため、ユーザによるアバター操作や番組データの表示を滑らかに行えない可能性がある。
ワールド管理情報125Bは、各ワールドの状態を管理するものである。ワールド管理情報125Bは、例えば、ワールドIDと、ワールド名と、サーバIDと、接続ユーザ数及び負荷等を対応付けて管理している。ワールド名とは、そのワールドのニックネームのような名称である。サーバIDとは、そのワールドが設定されているサーバを特定するための情報である。接続ユーザ数とは、そのワールドに接続しているユーザの数である。負荷とは、そのワールドのCPU負荷やメモリ消費量等を示す情報である。
図10は、アバター管理情報126を示す説明図である。アバター管理情報126は、例えば、アバター位置管理情報126Aと、アバター容姿管理情報126Bと、アイテム表示情報126Cと、アイテム販売情報126D等を含んで構成可能である。
アバター位置管理情報126Aは、アバターの位置を管理するためのものである。アバター位置管理情報126Aは、例えば、ユーザIDと、時刻と、ワールドIDと、空間IDと、座標等を対応付けて管理する。即ち、どのユーザが、いつ、どのワールドに属するどの仮想空間内で、どこに存在したかを所定時間毎に管理している。
アバター容姿管理情報126Bは、アバターの容姿(外見)を管理するものである。アバター容姿管理情報126Bは、例えば、ユーザIDと、各交友レベル毎の容姿ファイル等を対応付けて管理する。即ち、交友レベル毎にアバターの容姿は異なる。これについては、図11と共に詳述する。
アイテム表示情報126Cは、アバターの有するアイテムを管理するものである。アイテム表示情報126Cは、例えば、ユーザIDと、アイテムIDと、属性と、交友レベル毎のアイテムの表示ファイル等を対応付けて管理する。アイテムとは、例えば、アバターが身につける帽子、手袋、マフラー、メガフォン、眼鏡、ハンドバッグ、遊具、洋服等を意味する。アイテムIDは、各アイテムをそれぞれ識別するための情報である。属性とは、各アイテムの属するカテゴリを示す情報である。例えば、学生帽や野球帽、山高帽等の各種帽子アイテムには、「帽子」という属性が与えられている。アバターの容姿の描画レベルと同様に、アイテムの描画レベルも交友レベルに応じて変化する。親しいユーザ間では、アイテムはより精密に描写される。親しくないユーザ間では、アイテムの表示は簡略化される。
アイテム販売情報126Dは、アイテムに関する実際の商品の販売に関する情報を管理する。アイテム販売情報126Dは、例えば、アイテムIDと、アイテム名と、販売元と、仮想商店アドレスと、商品コード等を対応付けて管理する。販売元とは、そのアイテムに関する実際の商品を販売している業者名である。仮想商店アドレスとは、そのアイテムに関する実際の商品を販売している仮想商店(ネットワーク上の電子商店)にアクセスするための情報である。商品コードとは、そのアイテムに関する実際の商品を特定するための情報である。
ユーザは、仮想空間内の広告や他のユーザの身につけているアイテム等で知った商品を、仮想商店から購入することができる。仮想商店から購入した商品は、後日、宅配便等によってユーザの手元に届けられる。また、仮想商店から商品を購入すると、その商品に対応付けられているアイテムを、アバターは装着することができる。
図11は、アバターの初期位置と容姿との関係を模式的に示す説明図である。注目するアバターの位置を中心として、同心円状に複数のゾーンが設定されている。図11には、注目アバターに最も近いゾーン1から最も離れたゾーン4までの4段階のゾーンが示されている。
注目アバターの位置を中心とする直径L1の範囲内はゾーン1(ゾーン1≦L1)、L2の範囲内はゾーン2(L1<ゾーン2≦L2)、L3の範囲内はゾーン3(L2<ゾーン3≦L3)、L4の範囲内はゾーン4(L3<ゾーン4≦L4)として、それぞれ定義されている。ユーザがログインしてアバターが配置される場合、先にログインしている他ユーザとの親密度や嗜好の共通性を考慮して、アバターの初期位置が選択される。例えば、親しい友人(交友レベル1)が先にログインしている場合、その親しい友人のアバターから直径L1以内のゾーン1に、自分のアバターが出現する。また、単なる知人(交友レベル4)のみが先にログインしている場合、その知人から直径L3よりも離れたL4以内のゾーン4に、自分のアバターが出現する。
そして、各ゾーンには交友レベルが設定されている。ゾーン1には交友レベル1が、ゾーン2には交友レベル2が、ゾーン3には交友レベル3が、ゾーン4には交友レベル4がそれぞれ予め設定されている。即ち、アバターからの距離が遠くなればなるほど、交友レベルの値が低くなるように、アバターとの距離が短くなるほど交友レベルの値が高くなるように、アバターからの距離に応じて交友レベルが設定されている。
交友レベルが高くなるほど、アバターの容姿はより詳細に表現される。交友レベルが低くなるほど、アバターの容姿は簡略化されて表現される。従って、親しい間柄のユーザ同士は、よりリアルなアバターを介して親密な会話等を行うことができる。それほど親しくない間柄のユーザ同士は、簡略化されたアバターを介して、慎重に会話等を行うことができる。このように、親密度に応じてアバターの容姿を変えることにより、ユーザ間でトラブルが発生するのを防止し、より適切な交流を行うことができる。
ここで、交流レベルとゾーンとは、アバターを仮想空間に最初に配置する場合にのみ関連している。即ち、交流レベルに応じて初期位置のゾーンが選択され、交流レベルに応じてアバターの容姿が選択される。その後、ユーザがアバターを操作してゾーンを移動した場合でも、アバターの容姿は変化しない。アバターの容姿は、ユーザ間の親密度によって制御される。
図12は、実際のスタジアム70で、選手80やボール90の位置を検出するための処理を示すフローチャートである。この処理は、選手位置解析サーバ20の制御部200によって実行される。
まず、選手位置解析サーバ20は、アンテナ22を介して、各選手80及びボール90に設けられている無線タグ21とそれぞれ交信する(S11)。選手位置解析サーバ20は、各無線タグ21から受信した電波の強弱等に基づいて、各無線タグ21の位置をそれぞれ算出する(S12)。
そして、選手位置解析サーバ20は、算出された各無線タグの位置を、選手80やボール90毎に分類してそれぞれ記憶する(S13)。即ち、選手の位置は選手位置情報211に、審判の位置は審判位置情報212に、ボールの位置はボール位置情報213に、それぞれ時刻と共に記憶される。各位置情報211,212,213は、例えば、番組IDと、測定対象のID(選手ID、審判ID、ボールID)と、所定周期毎の時刻と、各時刻毎の座標値とを対応付けることにより構成される。
図13は、仮想空間提供サービスの全体の動作を示すフローチャートである。ここでは、仮想空間が構築された後でユーザがログインする場合を例に挙げて説明する。まず、番組配信サーバ30は、スタジアム70で撮影され編集された番組データを仮想空間提供サーバ10に送信する(S21)。選手位置解析サーバ20は、スタジアム70における選手80やボール90の位置を検出し(S22)、検出した位置情報を仮想空間提供サーバ10に送信する(S23)。
仮想空間提供サーバ10は、仮想空間管理情報125に基づいて、サーバ10内に仮想空間を生成する(S24)。この仮想空間には、上述のように、番組データや広告データが表示されている。
仮想空間への参加を希望するユーザは、クライアントコンピュータ60によって仮想空間提供サーバ10にアクセスし、ユーザIDやパスワードを入力する(S25)。仮想空間提供サーバ10は、入力されたユーザID及びパスワードとユーザ管理情報121に登録されているユーザID及びパスワードとを比較し、ユーザ認証を行う(S26)。
ユーザ認証が成功すると、仮想空間提供サーバ10は、そのユーザのアバターを配置させる初期位置を決定する(S27)。初期位置の決定方法については、図14と共に後述する。
仮想空間提供サーバ10は、アバターの容姿を決定する(S28)。上述のように、アバターの容姿は、そのユーザと他のユーザとの親密度に応じて制御される。従って、同一のユーザのアバターであっても、あるユーザにはリアルな容姿のアバターとして見えるが、他のユーザには簡略化された容姿のアバターとしか見えない。仮想空間の最新状態を更新する際に、そのユーザと他のユーザとの親密度の度合に応じて、他のアバターの容姿データをクライアントコンピュータ60に送信すれば、各ユーザ毎にアバターの見え方を変えることができる。
仮想空間提供サーバ10は、アバターの初期位置及び容姿について決定すると、アバターを仮想空間に配置する(S29)。仮想空間提供サーバ10は、所定周期毎に、仮想空間の最新状態をクライアントコンピュータ60に送信する(S30)。クライアントコンピュータ60のウェブブラウザには、仮想空間提供サーバ10から送信された最新状態の仮想空間が表示される(S31)。ユーザは、仮想空間に配置された自分のアバターを操作する(S32)。例えば、ユーザは、アバターを介して他のユーザのアバターと会話をしたり、自分のアバターを仮想空間内で移動させたりすることができる。
仮想空間提供サーバ10は、クライアントコンピュータ60から操作指示を受信すると、指示された操作内容を仮想空間に反映させる(S33)。即ち、ユーザがアバターを移動させた場合には、アバターの位置をユーザの希望する位置に変化させる。アバターを介して会話する場合、クライアントコンピュータ60から受信したメッセージを仮想空間内に表示させる。
仮想空間提供サーバ10は、クライアントコンピュータ60から受信した操作内容を保存し(S34)、この操作内容を解析する(S35)。例えば、アバターの会話が開始された場合、仮想空間提供サーバ10は、この会話をチャットログ127に保存する。そして、仮想空間提供サーバ10は、例えば、この会話を形態素解析して単語を抽出する。抽出された単語は、例えば、番組データの検索キーワードとして利用される。また、上述のように、抽出された単語と他のユーザのブログ内の単語とを比較することにより、嗜好の共通性や親密度を判定することもできる。さらに、ユーザから指示されたアバターの姿勢(視線等)を解析することにより、仮想空間内に表示されている広告がどの程度注目されているか等を判定することもできる。
図14は、アバターの初期位置を決定する処理を示すフローチャートである。まず最初に、仮想空間提供サーバ10は、ユーザが他のユーザとの交流を希望しているか否かを判定する(S41)。仮想空間提供サーバ10は、ユーザがログインする際に、他のユーザとの交流を希望するか否か、及び、交流を希望する場合の交友レベルの入力をそれぞれ求めることができる。
ユーザが交流を希望しない場合(S41:NO)、仮想空間提供サーバ10は、最も低負荷のワールド(サーバ)を選択し(S42)、そのワールドの仮想空間内に予め設定されている位置を選択する(S43)。例えば、仮想空間が仮想スタジアムに似せて構成される場合は、仮想スタジアムの入場口付近がアバターの出現位置として選択される。
ユーザが他のユーザとの交流を希望する場合(S41:YES)、仮想空間提供サーバ10は、さらに、ユーザが知人以上の他のユーザとの交流を希望しているか否かを判断する(S44)。上述のように、親密度管理情報124には、各ユーザ間の交友レベルが予め登録されている。従って、ユーザは、交流を希望する交友レベルを指定することにより、所定のグループ(交友レベル)に属するユーザとの交流を優先させることができる。例えば、ユーザは、「交友レベル2以上のユーザを希望」、「交友レベル3以上のユーザを希望」等のように、希望の交友レベルを指定することができる。
ユーザが交友レベルを指定している場合(S44:YES)、仮想空間提供サーバ10は、指定された交友レベルで親密度管理情報124を検索することにより、指定された交友レベルのユーザIDを検索する(S45)。仮想空間提供サーバ10は、検索されたユーザIDのユーザが現在ログイン中であるか否かを判定する(S46)。
指定された交友レベルのユーザがログイン中の場合(S46:YES)、仮想空間提供サーバ10は、その先着のユーザと同一のワールドを選択し(S47)、先着のユーザのアバター位置を中心とする所定のゾーンを選択する(S48)。即ち、先にログインしているユーザと後からログインするユーザとの関係が交友レベル1である場合、先着のユーザのアバターから直径L1以内のゾーンのいずれかに、後からログインするユーザのアバターが配置される。
指定された交友レベルに属するユーザが別々のワールドに分散している場合は、交友レベルに応じた重み付け等を行うことで、より多くの友人が存在するワールドを選択することができる。例えば、選択のための指標をSEとすると、SE=交友レベル1のユーザ数×α+交友レベル2のユーザ数×β・・・(α>β>0)のような演算式から各ワールド毎にそれぞれ指標SEを算出し、最もSEの値が高いワールドを選択すればよい。そして、選択されたワールドにおいて、最も交友レベルの高いユーザのアバターを中心として、ゾーンを選択すればよい。
ところで、ユーザが、仮想空間内での交流を希望しているが(S41:YES)、既存の友人との交流を希望しない場合(S44:NO)も考えられる。新たな友人の発掘等を希望しているような場合である。この場合は、嗜好分類情報123を用いることにより、そのユーザと嗜好が共通または類似する他のユーザを検索する(S49)。未だブログ上での交流がない場合でも、各ユーザのブログの内容を解析することにより、興味や趣味の方向性が共通または類似するユーザ同士を検出することは可能である。以下の説明では、興味や趣味の方向性が共通または類似するユーザを同好ユーザと呼ぶ。
次に、仮想空間提供サーバ10は、同好ユーザがログインしているか否かを判定する(S50)。同好ユーザがログインしている場合(S50:YES)、仮想空間提供サーバ10は、同好ユーザが最も多くログインしているワールドを選択し(S51)、同好ユーザのアバターの密度が高いエリア内の位置をランダムに選択する(S52)。同好ユーザが一人もログインしていない場合(S50:NO)、仮想空間提供サーバ10は、S42に移って低負荷のワールドを選択し(S42)、予め設定された位置を選択する(S43)。
図15は、仮想空間に表示されている番組データに関する検索キーワードを自動的に生成する処理を示すフローチャートである。仮想空間提供サーバ10は、番組配信サーバ30から番組データを受信し(S61)、仮想空間で表示させる(S62)。
仮想空間内では、各ユーザのアバターが番組を見ながら意見や感想を述べ合う。仮想空間提供サーバ10は、アバター同士で行われたチャットログを採取し(S63)、チャットログを解析する(S64)。仮想空間提供サーバ10は、チャットログの解析によってキーワードを抽出し(S65)、この抽出されたキーワードの全部または一部を検索キーワードとして、チャットログ採取時の(発言時の)時刻に対応付けて、検索キーワードデータベース128に保存する(S66)。
検索キーワードデータベース128は、図15中に示すように、例えば、番組IDと、キーワード抽出時刻と、検索キーワードとを対応付けて管理する。キーワード抽出時刻とは、そのキーワードが仮想空間内で発言された時刻である。これにより、そのキーワードが発言された時の番組の場面とキーワードとを対応付けることができる。
仮想空間提供サーバ10は、映像検索サービスを提供することもできる。ユーザが所望の場面を探すためのキーワードを入力すると、仮想空間提供サーバ10は、入力されたキーワードで検索キーワードデータベース128を検索する(S67)。仮想空間提供サーバ10は、入力されたキーワードとデータベース128に登録されている検索キーワードとが一致する時刻を全て検出し(S68)、この検出された各時刻に対応する番組データをそれぞれ読み出して(S69)、仮想空間内に表示させる(S70)。このような映像検索サービスによって、ユーザは、仮想空間内で放映された番組の中から所望の場面だけを抜き出して再生させることができる。なお、映像検索サービスは、仮想空間提供サーバ10とは別の番組検索サーバ等で提供することもできる。
本実施例は、上述のように構成されるので、以下の効果を奏する。本実施例では、仮想空間内に表示された番組データを、複数のユーザがそれぞれのアバターを介して会話等しながら、視聴することができる。従って、テレビによる中継番組やストリーミング配信を単独で視聴する場合に比べて、遠隔地に散在する他のユーザと共に、臨場感溢れる観戦を行うことができる。
本実施例では、スポーツ試合の放映に同期させて、各選手80等の位置をリアルタイムで表示する構成とした。従って、ユーザは、各選手の位置や動きの全体像を把握しながら、シュート場面等の見所場面を視聴することができ、使い勝手が向上する。
本実施例では、各ユーザがブログとしてネットワーク上に発信した情報を解析することにより、各ユーザ間の嗜好の共通性を各ユーザに意識させずに自動的に検出し、嗜好の共通性に基づいてアバターの初期位置を制御する。従って、嗜好の共通するアバター同士を比較的近い距離に配置することにより、ユーザ間の交流を促進することができる。これにより、見知らぬユーザ同士でも比較的簡単に友人関係を構築することができ、使い勝手が向上する。
本実施例では、仮想空間内におけるアバターの言動を観測して、ユーザ間の親密度をユーザに意識させずに自動的に検出し、親密度に応じてアバターの描画レベルを制御する構成とした。従って、親密なユーザ間では、よりリアルな容姿のアバターを用いて、よりリアルな交流を楽しむことができ、親密ではないユーザ間では簡略化された容姿のアバターを用いて、慎重に交流を進めることができ、使い勝手が向上する。
本実施例では、親密度に応じた交友レベルでユーザを予めグループ化し、ログイン時に交流の希望の有無と、交流を希望する交友レベルとを選択できるようにした。従って、例えば、仮想空間に表示される番組データの内容等に応じて、自分のアバターの出現位置(初期位置)を変化させることにより、特定の交友レベルのユーザと交流したり、新しいユーザとの交流を模索することができ、使い勝手が向上する。
本実施例では、仮想空間内で行われたアバター同士の会話を自動的に解析して、検索キーワードを生成し、仮想空間に表示される番組データの場面(再生時刻)に対応付けて管理する構成とした。従って、番組の再生とほぼ同時に、映像検索用のキーワードを生成することができる。これにより、番組の放映終了後には、直ちに、特定の場面だけをキーワード検索で呼び出すことができ、使い勝手が向上する。
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
1…仮想空間、1A…映像表示部、1B…競技者位置表示部、1C…広告表示部、2…アバター、2A…会話、3…情報発信ツール、10…仮想空間提供サーバ、20…選手位置解析サーバ、21…無線タグ、22…アンテナ、23…信号処理部、30…番組配信サーバ、31…カメラ、40…ウェブサーバ、50…情報発信サービスサーバ、60…クライアントコンピュータ、61…通信部、62…クライアントソフトウェア、70…スタジアム、80…選手,審判、90…ボール、100…制御部、101…ユーザ管理部、102…親密度管理部、103…選手位置管理部、104…仮想空間管理部、105…仮想空間提供部、106…番組管理部、107…広告管理部、108…ログ解析部、109…視線解析部、120…記憶部、121…ユーザ管理情報、122…ブログ管理情報、123…嗜好分類情報、123A…ブログアクセス管理情報、123B…ブログ分類情報、124…親密度管理情報、124A…発言管理情報、124B…交流関係管理情報、124C…交流希望レベル管理情報、125…仮想空間管理情報、125A…仮想空間構成情報、125B…ワールド管理情報、126…アバター管理情報、126A…アバター位置管理情報、126B…アバター容姿管理情報、126C…アイテム表示情報、126D…アイテム販売情報、127…チャットログ、128…検索キーワードデータベース、129…番組データ、130…広告効果情報、131…広告データ、140…通信部、200…制御部、201…選手位置解析部、210…記憶部、211…選手位置情報、212…審判位置情報、213…ボール位置情報、220…通信部、A1〜A6…アバター、B1〜B6…操作ボタン、G1…仮想空間、G2…番組表示部、G3…位置表示部、G4…広告表示部、G5…チャット操作部、M1〜M5…メニュー