(57)【特許請求の範囲】
【請求項１】
通信ネットワークを介して接続される複数のクライアントコンピュータに、仮想空間を提供する仮想空間提供サーバであって、
前記各クライアントコンピュータから入力される操作指示に応じて、ユーザを象徴するキャラクタを前記仮想空間内で動作させ、前記各キャラクタの言動を反映させた前記仮想空間の最新状態を前記通信ネットワークを介して前記クライアントコンピュータにそれぞれ送信する仮想空間管理部と、
前記仮想空間内で実行される所定コミュニケーションプログラムを制御するためのコミュニケーションプログラム実行制御部であって、前記所定コミュニケーションプログラムの実行を要求する実行要求が前記クライアントコンピュータから発行された場合には、前記実行要求を発行した所定ユーザに対応する所定キャラクタの前記仮想空間における位置から所定範囲の領域を前記所定コミュニケーションプログラムが実行される実行範囲として設定する、コミュニケーションプログラム実行制御部と、を備え、
前記実行範囲は、前記所定キャラクタが前記仮想空間内を移動した場合には、その移動に応じて前記仮想空間内を移動するようになっており、
前記所定コミュニケーションプログラムは音声チャットプログラムであり、
前記コミュニケーションプログラム実行制御部は、
それぞれ複数のポートを有する複数のチャネルを備えており、前記実行要求により前記複数チャネルのいずれか一つが最初に開かれた場合は、前記所定ユーザがホストとなり、その後に前記開かれた音声チャネルに参加する前記実行範囲内の他ユーザがゲストとなるように音声チャットを制御し、さらに、
前記所定キャラクタから前記所定範囲内で前記所定コミュニケーションプログラムが実行されていない場合に、前記複数チャネルのいずれか一つが最初に開かれ、そのチャネルが有する複数のポートのうちの一つのポートを、前記実行要求が発行されたクライアントコンピュータとの通信に使用し、前記所定キャラクタを中心とする所定範囲の領域を前記実行範囲として設定し、かつ、前記実行範囲内に存在する他ユーザに対応する他キャラクタを前記所定コミュニケーションプログラムのゲストとして選択し、
前記所定キャラクタから前記所定範囲内で前記所定コミュニケーションプログラムが既に実行されている場合に、前記最初に開かれたチャネルが有する複数のポートのうちの他の一つのポートであって他のクライアントコンピュータとの通信に使用されていないポートが存在する場合は、そのポートを前記実行要求が発行されたクライアントコンピュータとの通信に使用し、この実行されている所定コミュニケーションプログラムに前記所定キャラクタを参加させ、他のクライアントコンピュータとの通信に使用されていない前記ポートが存在しない場合は、前記実行要求が発行されたクライアントコンピュータにコミュニケーションの実行ができない旨を通知し、
前記実行範囲から前記他キャラクタが離脱した場合、この離脱した他キャラクタに対応するクライアントコンピュータに関してのみ前記所定コミュニケーションプログラムの実行を中止し、この離脱した他キャラクタに対応するクライアントコンピュータとの通信に使用していたポートを開放し、
前記実行範囲内に前記他キャラクタが一人も存在しなくなった場合、所定時間の経過後に前記所定コミュニケーションプログラムの起動を停止させ、前記所定ユーザの使用するクライアントコンピュータに関しても前記所定コミュニケーションプログラムの実行を中止させ、前記最初に開かれたチャネルを切断し、
さらに、前記所定キャラクタが複数存在しており、複数の前記所定キャラクタの前記所定範囲の重なり合う領域に前記他キャラクタが位置する場合、前記他キャラクタを複数の前記所定キャラクタのうちいずれか最も近い所定キャラクタの前記所定コミュニケーションプログラムのゲストとして選択する、
仮想空間提供サーバ。
【請求項２】
前記コミュニケーションプログラム実行制御部は、前記所定ユーザの使用するクライアントコンピュータから前記所定コミュニケーションプログラムの実行停止を要求する停止要求が発行された場合に、前記所定コミュニケーションプログラムの起動を停止させる、請求項１に記載の仮想空間提供サーバ。
【請求項３】
前記コミュニケーションプログラム実行制御部は、前記所定コミュニケーションプログラムに参加している前記所定キャラクタ及び前記他キャラクタに関する情報を、前記仮想空間内に表示させるための状態表示部を備えている、請求項１に記載の仮想空間提供サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間を提供するサーバ、仮想空間提供方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
ネットワーク上に設けられたサーバ内に仮想的な空間を生成し、この仮想空間内で、ユーザを象徴するキャラクタ（アバタ）を操作することができるようにしたシステムは、知られている（特許文献１）。また、仮想空間内のキャラクタ同士で音声チャットを可能とするシステムも提案されている（特許文献２）。この文献に記載の従来技術では、仮想空間のオブジェクト配置等に応じて音声を変化させることにより、キャラクタ同士の会話に臨場感を与えるようになっている。
【特許文献１】特開２００５−１０００５３号公報
【特許文献２】特開２００４−２６７４３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記従来技術では、各ユーザは、それぞれのキャラクタを仮想空間内で操作し、テキストや音声による会話を楽しむことができる。しかし、不特定または特定の複数ユーザ同士がチャットを行うのは、使い勝手が低く、臨場感が乏しい。例えば、仮想空間内で複数ユーザがチャットを行おうとする場合、各ユーザのキャラクタがチャット部屋に集まったり、あるいは、各キャラクタ同士でグループを構成する必要がある。
【０００４】
前者の場合、チャット部屋の位置は固定されており、キャラクタの移動と無関係であるため、チャットを楽しみたいユーザは、キャラクタをそのチャット部屋から移動させることができない。ユーザは、キャラクタを介して仮想空間の各所を自由に巡り歩き、買い物や情報収集、他ユーザとの偶然の出会い等を楽しむことができるにもかかわらず、チャットだけのために特定の場所に縛り付けられることになる。
【０００５】
後者の場合、同一グループに属する各キャラクタは、各キャラクタ間の位置関係と無関係にチャット可能である。各キャラクタは、互いに遠く離れていても、チャットを行うことができるため、仮想空間内でチャットをする意義が無い。チャット専用システムを用いてチャットをする方が簡単である。
【０００６】
現実世界に目を転じると、各ユーザは特定の部屋に集結しなくても、歩道や公園等の場所で自由に周囲のユーザと会話を楽しむことができる。また、現実世界の各ユーザは、携帯電話等を用いる場合を除いて、声の届く範囲内で会話を楽しむことができる。
【０００７】
そこで、本発明の目的は、使い勝手を向上できるようにした仮想空間提供サーバ、仮想空間提供方法及びプログラムを提供することにある。本発明の他の目的は、仮想空間におけるキャラクタの位置に応じて、所定コミュニケーションプログラムが実行される範囲を制御することにより、利便性を高めることができるようにした仮想空間提供サーバ、仮想空間提供方法及びプログラムを提供することにある。本発明の更なる目的は、後述する実施形態の記載から明らかになるであろう。
【課題を解決するための手段】
【０００８】
上記課題を解決すべく、本発明の一つの観点に従う仮想空間提供サーバは、通信ネットワークを介して接続される複数のクライアントコンピュータに、仮想空間を提供する仮想空間提供サーバであって、各クライアントコンピュータから入力される操作指示に応じて、ユーザを象徴するキャラクタを仮想空間内で動作させ、各キャラクタの言動を反映させた仮想空間の最新状態を通信ネットワークを介してクライアントコンピュータにそれぞれ送信する仮想空間管理部と、仮想空間内で実行される所定コミュニケーションプログラムを制御するためのコミュニケーションプログラム実行制御部であって、所定コミュニケーションプログラムの実行を要求する実行要求がクライアントコンピュータから発行された場合には、実行要求を発行した所定ユーザに対応する所定キャラクタの位置から所定範囲の領域を所定コミュニケーションプログラムが実行される実行範囲として設定する、コミュニケーションプログラム実行制御部と、を備える。
【０００９】
第２観点では、第１観点において、コミュニケーションプログラム実行制御部は、（１）所定キャラクタから所定範囲内で所定コミュニケーションプログラムが実行されていない場合に、所定キャラクタを中心とする所定範囲の領域を実行範囲として設定し、かつ、実行範囲内に存在する他ユーザに対応する他キャラクタを所定コミュニケーションプログラムの参加者として選択し、（２）所定キャラクタから所定範囲内で所定コミュニケーションプログラムが既に実行されている場合は、この実行されている所定コミュニケーションプログラムに所定キャラクタを参加させる。
【００１０】
第３観点では、第１観点または第２観点のいずれかにおいて、コミュニケーションプログラム実行制御部は、仮想空間の実行範囲内に位置する他キャラクタに対応する他ユーザが所定コミュニケーションプログラムへの参加を要求する場合に、所定コミュニケーションプログラムへの参加可否を判断し、参加を許可する場合は、他ユーザの使用するクライアントコンピュータが所定コミュニケーションプログラムを実行するのを許可する。
【００１１】
第４観点では、第１観点〜第３観点のいずれかにおいて、実行範囲は、所定キャラクタの仮想空間における位置に基づいて決定され、所定キャラクタが仮想空間内を移動した場合には、その移動に応じて実行範囲も仮想空間内を移動する。
【００１２】
第５観点では、第１観点〜第４観点のいずれかにおいて、コミュニケーションプログラム実行制御部は、実行範囲から他キャラクタが離脱した場合、この離脱した他キャラクタに対応するクライアントコンピュータに関してのみ所定コミュニケーションプログラムの実行を中止させる。
【００１３】
第６観点では、第１観点〜第５観点のいずれかにおいて、コミュニケーションプログラム実行制御部は、実行範囲内に他キャラクタが一人も存在しなくなった場合、所定時間の経過後に所定コミュニケーションプログラムの起動を停止させ、所定ユーザの使用するクライアントコンピュータに関しても所定コミュニケーションプログラムの実行を中止させるようになっている。
【００１４】
第７観点では、第１観点〜第６観点のいずれかにおいて、コミュニケーションプログラム制御部は、所定ユーザの使用するクライアントコンピュータから所定コミュニケーションプログラムの実行停止を要求する停止要求が発行された場合に、所定コミュニケーションプログラムの起動を停止させる。
【００１５】
第８観点では、第１観点〜第７観点のいずれかにおいて、コミュニケーションプログラム制御部は、所定コミュニケーションプログラムを仮想空間内で複数実行させることができる。
【００１６】
第９観点では、第１観点〜第８観点のいずれかにおいて、コミュニケーションプログラム制御部は、所定コミュニケーションプログラムに参加している所定キャラクタ及び他キャラクタに関する情報を、仮想空間内に表示させるための状態表示部を備える。
【００１７】
第１０観点では、第１観点〜第９観点のいずれかにおいて、所定コミュニケーションプログラムは、音声チャットプログラムである。
【００１８】
第１１観点に従うコンピュータプログラムは、通信ネットワークを介して複数のクライアントコンピュータに接続されるサーバコンピュータを、仮想空間を提供するサーバコンピュータとして使用するためのコンピュータプログラムであって、各クライアントコンピュータから入力される操作指示に応じて、ユーザを象徴するキャラクタを仮想空間内で動作させ、各キャラクタの言動を反映させた仮想空間の最新状態を通信ネットワークを介してクライアントコンピュータにそれぞれ送信する仮想空間管理部と、クライアントコンピュータから予め設定される所定コミュニケーションプログラムの実行を要求する実行要求が発行された場合には、所定コミュニケーションプログラムが既に実行されていない場合に限り、実行要求を発行した所定ユーザに対応する所定キャラクタから所定範囲の領域を所定コミュニケーションプログラムが実行される実行範囲として設定し、かつ、実行範囲内に存在する他ユーザに対応する他キャラクタを所定コミュニケーションプログラムの参加者として選択する、コミュニケーションプログラム実行制御部と、をサーバコンピュータ上にそれぞれ実現させる。
【００１９】
第１２観点に従う仮想空間提供方法は、通信ネットワークを介して接続される複数のクライアントコンピュータに仮想空間を提供する方法であって、クライアントコンピュータからのログイン要求を処理するステップと、ログインが許可された所定ユーザに対応する所定キャラクタを、仮想空間に配置するステップと、クライアントコンピュータから、予め設定される所定コミュニケーションプログラムの実行を要求する実行要求が発行された場合には、所定コミュニケーションプログラムの実行される実行範囲内に所定キャラクタが位置するか否かを判定するステップと、所定キャラクタが実行範囲内に位置すると判定された場合は、所定キャラクタを、既に実行されている所定コミュニケーションプログラムの参加者として選択するステップと、所定キャラクタが実行範囲内に位置しないと判定された場合は、所定キャラクタから所定範囲の領域を実行範囲として設定するステップと、をそれぞれ実行する。
【発明を実施するための最良の形態】
【００２０】
以下、図面に基づき、本発明の実施の形態を説明する。図１は、本実施形態の全体概念を示す説明図である。本実施形態では、所定コミュニケーションプログラムとして、音声チャットプログラムを例に挙げて説明する。
【００２１】
本実施形態では、以下に詳述するように、チャットグループのホストとなるユーザが、予め用意された複数の音声チャット用チャネルのうち一つの空いているチャネルに最初に接続し、ホストユーザの仮想空間における位置（座標）を中心とする実行範囲が仮想空間に設定される。設定された実行範囲内に位置する他の各ユーザのうち音声チャットへの参加を希望するユーザは、ホストユーザと同一のチャネルに自動的に接続される。これにより、仮想空間におけるホストユーザの位置に応じて、音声チャットが可能な範囲（実行範囲）を制御することができる。
【００２２】
本実施形態では、ホストユーザ８Ｈの周囲に設定される可聴範囲９内でのみ、音声チャットが実行できるように制御する。ホストユーザ８Ｈが仮想空間７を移動すると、可聴範囲９も移動する。ゲストユーザ８Ｇは、可聴範囲９内に位置する場合にのみ、他のゲストユーザ８Ｇやホストユーザ８Ｈと音声チャットを行うことができる。可聴範囲９から外れたユーザ８は、音声チャットを行うことができない。
【００２３】
仮想空間提供システムは、例えば、仮想空間提供サーバ１と、複数のクライアント端末２と、音声チャットサーバ３とを備える。仮想空間提供サーバ１と各クライアント端末２及び音声チャットサーバ３は、例えば、インターネットのような通信ネットワークを介して相互通信可能に接続されている。
【００２４】
仮想空間は、仮想空間提供サーバ１の内部に仮想的に設けられる空間である。仮想空間には、例えば、各種建造物、道路や山河、動植物、雲等の各種のオブジェクトを配置することができる。
【００２５】
さらに、仮想空間には、各ユーザを象徴するアバタ８も配置される。アバタ８は、「キャラクタ」に対応する。アバタ８は、例えば、人型の人形として作成されるが、人型形状に限らず、動植物やロボット等のように作成されることもある。
【００２６】
アバタ８は、クライアント端末２にインストールされるクライアントソフトウェア２Ａを介して、ユーザにより操作される。ユーザは、例えば、キーボードスイッチ、ポインティングデバイス、タブレット、マイクロフォン等の入力装置を用いて、アバタ８の言動を指示する。
【００２７】
仮想空間７で行動するのは、ユーザではなく、ユーザを象徴するアバタ８である。しかし、便宜上、両者を厳密に区別せずに説明する場合がある。即ち、アバタ８をユーザ８と呼び、ホストアバタ８Ｈをホストユーザ８Ｈと、ゲストアバタ８Ｇをゲストユーザ８Ｇと、それぞれ呼ぶ場合がある。
【００２８】
仮想空間７の構成は、仮想空間管理部５によって管理される。仮想空間管理部５は、各アバタ８や建築物等の各オブジェクトの位置及び表示等を制御する。仮想空間管理部５は、各アバタ８やオブジェクトの位置や表示データ等を収集し、これらの位置や表示データ等を各クライアント端末２にそれぞれ送信する。
【００２９】
音声チャット管理部６は、仮想空間７内で実行される音声チャットを管理する。音声チャット管理部６は、音声チャットを希望するユーザの使用するクライアントソフトウェア２Ａに、音声チャットを行うためのチャネルの通信ポートを割り当てる。
【００３０】
音声チャットサーバ３は、音声チャット用のチャネルを提供するサーバである。チャネルは、複数の通信ポートを備える。各ユーザがマイクロフォンから入力した音声は、通信ポートを介して音声チャットサーバ３に入力される。音声チャットサーバ３は、チャネルに入力された音声を合成し、各通信ポートから出力させる。出力された音声データは、クライアント端末２のスピーカから出力される。
【００３１】
クライアント端末２は、例えば、パーソナルコンピュータや携帯情報端末または携帯電話のように構成される。クライアント端末２には、クライアントソフトウェア２Ａが設けられている。
【００３２】
クライアントソフトウェア２Ａは、仮想空間７を閲覧し、アバタ８を操作するためのソフトウェアである。後述の実施例で述べるように、クライアントソフトウェア２Ａは、ウェブブラウザのプラグインとして構成可能である。クライアントソフトウェア２Ａにより表示される仮想空間７には、操作部７Ａが対応付けられている。ユーザは、キーボードスイッチやポインティングデバイス等を用いて操作部７Ａを操作することにより、アバタ８を移動させたり、アバタ８の姿勢や表情を変化させることができる。さらに、ユーザは、操作部７Ａに予め用意されている音声チャットボタン７Ａ１を操作することにより、音声チャットを行うこともできる。音声チャットボタン７Ａ１は、後述の音声チャットボタン２４１に対応する。
【００３３】
ホストユーザ８Ｈ（正確には、ホストとなるユーザにより操作されるアバタ８Ｈ。以下同様。）は、最初に音声チャットを開始したユーザである。ホストユーザ８Ｈの位置を中心とする所定範囲が、可聴範囲９として設定される。可聴範囲９は、音声チャットが実行される範囲であり、「実行範囲」に相当する。なお、本システムの管理者は、可聴範囲の値を各ワールド毎にそれぞれ設定することができる（後述する図７中のワールド管理情報１２２Ｂ参照）。
【００３４】
詳細は後述の実施例で明らかにされるが、可聴範囲９内の各ユーザ８Ｈ，８Ｇは、それぞれ同一のチャネルを利用しており、互いに音声で会話を楽しむことができる。あるユーザ８が可聴範囲９内に入った場合を説明する。
【００３５】
ユーザ８が音声チャットボタンを操作して、音声チャットの開始を要求した場合、音声チャット管理部６は、そのユーザ８の使用するクライアントソフトウェア２Ａをチャネルに接続させる。但し、そのチャネルに空いている通信ポートが無い場合、そのユーザ８は音声チャットに参加することはできない。他のユーザ８Ｇが可聴範囲９の外に移動して音声チャットから離脱した場合に、通信ポートに空きが生じる。その空いた通信ポートを使用して、別のユーザ８が音声チャットを行うことができる。
【００３６】
このように構成される本実施形態によれば、ホストユーザ８Ｈの位置を中心とする所定範囲に可聴範囲９を設定し、音声チャットの開始を希望するユーザが可聴範囲９内に入った場合には、そのユーザの使用するクライアント端末２（クライアントソフトウェア２Ａ）をチャネルに自動的に接続させる。
【００３７】
従って、ユーザ８は、音声チャットボタンを押して仮想空間７を移動するだけで、既に開始されている音声チャットに自動的に参加できる。このため、音声チャットの使い勝手が向上する。即ち、本実施形態では、音声チャットを行うために用意された特別な場所に移動したり、特定のユーザと予めグループを形成してから音声チャットを行ったりすることなく、簡単に音声チャットを行うことができる。
【００３８】
本実施形態では、音声チャットサーバ３に空きチャネルが存在する限り、いずれのユーザもホストユーザ８Ｈとなって、仮想空間７内の所望の場所で、音声チャットを開始することができ、使い勝手が向上する。
【００３９】
本実施形態では、ホストユーザ８Ｈの位置を中心として可聴範囲９を設定するため、ホストユーザ８Ｈの移動に応じて可聴範囲９も移動する。従って、各ユーザは、仮想空間７を移動しながら音声チャットを続けることができ、使い勝手が向上する。以下、本実施形態をより詳細に説明する。
【実施例１】
【００４０】
図２は、本実施例による仮想空間提供システムの全体構成を示す説明図である。仮想空間提供システムは、例えば、仮想空間提供サーバ１０と、クライアント端末２０とを通信ネットワークＣＮで接続することにより構成される。図１との対応関係を先に説明すると、仮想空間提供サーバ１０は図１中の仮想空間提供サーバ１に、クライアント端末２０は図１中のクライアント端末２に、音声チャットサーバ１３は図１中の音声チャットサーバ３に、それぞれ対応する。また、図３に示す仮想空間管理部１１１は図１中の仮想空間管理部５に、図３に示す音声チャット管理部１１２は図１中の音声チャット管理部６に、図３に示すクライアントソフトウェア２１は図１中のクライアントソフトウェア２Ａに、それぞれ対応する。
【００４１】
仮想空間提供サーバ１０は、例えば、ウェブサーバ１１と、仮想空間管理サーバ１２と、音声チャットサーバ１３とを含んで構成することができる。ウェブサーバ１１は、ウェブページを生成してクライアント端末２０に提供する。本実施例では、ウェブページを閲覧するためのウェブブラウザによって仮想空間を操作できるようになっている。仮想空間管理サーバ１２は、仮想空間の構成を管理する。仮想空間管理サーバ１２の詳細は、後述する。音声チャットサーバ１３は、音声チャットに使用される少なくとも一つ以上のチャネルを提供する。これら各サーバ１１，１２，１３は、それぞれ別々のコンピュータとして構成することもできるし、一つのコンピュータとして構成することもできる。
【００４２】
図３は、仮想空間管理サーバ１２の構成等を示すブロック図である。仮想空間管理サーバ１２は、例えば、通信部１００と、制御部１１０と、記憶部１２０とを備える。通信部１００は、インターネットのような通信ネットワークＣＮを介して、各クライアント端末２０及び音声チャットサーバ１３と通信を行う。
【００４３】
制御部１１０は、例えば、仮想空間管理部１１１と、音声チャット管理部１１２と、仮想空間提供部１１３とを備える。例えば、ＣＰＵ（Central Processing Unit）のような演算処理装置が、所定のコンピュータプログラムを読み込んで実行することにより、上述の各機能１１１，１１２，１１３がそれぞれ実現される。
【００４４】
仮想空間管理部１１１は、アバタの位置や表示状態等の仮想空間の各種構成を管理するものである。音声チャット管理部１１２は、仮想空間内のアバタ（ユーザ）に割り当てられる音声チャット用のチャネル及び通信ポート等を管理する。仮想空間提供部１１３は、クライアント端末２０のクライアントソフトウェア２１に、仮想空間を提供する。
【００４５】
記憶部１２０は、例えば、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、フラッシュメモリ、ハードディスク等の記憶デバイスから構成される。記憶部１２０は、制御部１１０によって実行される所定プログラムのほかに、各種管理情報１２１〜１２４が記憶されている。
【００４６】
ユーザ管理情報１２１は、仮想空間を利用する各ユーザを管理する情報である。仮想空間管理情報１２２は、仮想空間を管理する情報である。アバタ管理情報１２３は、アバタの位置や表示形態等を管理する情報である。音声チャット管理情報１２４は、音声チャットサーバ１３の有する各チャネルの使用状態を管理する情報である。これら管理情報１２１〜１２４の詳細は別図と共に後述する。
【００４７】
図３に示すように、クライアント端末２０は、例えば、通信部２２と、クライアントソフトウェア２１とを備える。音声チャットサーバ１３は、音声合成部１３０と通信部１３１とを備える。
【００４８】
図４は、音声合成部１３０の概略を模式的に示す説明図である。音声合成部１３０は、複数のチャネル１３２を備える。各チャネル１３２は、それぞれ複数の通信ポート１３３を備える。従って、もしも、それぞれ１０個ずつの通信ポート１３３を有するチャネル１３２が１０個ある場合、仮想空間の全体で、最大１００人が同時に音声チャットを行うことができる。もっとも、上記の例では、一つのチャネルには最大１０人まで接続可能であるから、同時に会話可能なユーザの最大数は１０人である。
【００４９】
一つのチャネル１３２には、同一の可聴範囲３００に属するユーザが接続される。換言すれば、同一のチャネル１３２に接続されるユーザによって、一つの音声チャットグループが構成される。音声チャットサーバ１３にエントリした順番の最も若いユーザが、ホストユーザＵＨとなる。音声チャットのチャネルを最初に開くユーザがホストユーザとなり、その後に音声チャットに参加するユーザはゲストＵＧとなる。
【００５０】
図４に示すように、音声チャットへの参加を希望するユーザＵ１がチャネル１の可聴範囲３００内に進入すると、そのユーザＵ１の使用するクライアントソフトウェア２１は、チャネル１内の空いている通信ポート１３３に接続される。
【００５１】
図５は、クライアント端末２０のクライアントソフトウェア２１によって表示される画面例を示す説明図である。クライアントソフトウェア２１は、例えば、ウェブブラウザのようなソフトウェアとして構成される。
【００５２】
クライアントソフトウェア２１は、複数の表示領域２１０，２２０と、操作領域２３０，２４０とを備えて構成される。クライアントソフトウェア２１は、例えば、図中左側に示す仮想空間表示部２１０と、図中右側に示すウェブページ表示部２２０と、図中下側に示すコントロールパネル２３０及びメニュー２４０とを備えている。なお、図５に示すレイアウトは一例に過ぎず、本発明は図５に示す構成に限定されない。
【００５３】
仮想空間２００は、仮想空間管理部１１１により管理され、仮想空間提供部１１３により提供される。仮想空間表示部２１０は、ウェブブラウザに仮想空間２００を表示するためのプラグインソフトウェアとして生成される。仮想空間２００には、例えば、音声チャットモニタ２１１と、仮想店舗２１２と、アバタＵ１とが表示される。
【００５４】
音声チャットモニタ２１１は、仮想空間２００内で実行されている一つまたは複数の音声チャットの状態を通知するための表示部である。音声チャットモニタ２１１は、例えば、メニュー２４０内の音声チャットボタン２４１をオン操作することにより、表示部２１０内に表示される。
【００５５】
音声チャットモニタ２１１は、例えば、仮想空間２００を利用する全ユーザ（全アバタ）の名称と、各ユーザが音声チャットに参加しているか否かを示す識別標識とを対応付けて表示する。図５中では、識別標識の例として、丸印と二重丸印を示している。
【００５６】
音声チャットを利用している各ユーザのユーザ名には、そのユーザの参加する音声チャットのグループ（チャネル）を識別するための標識が設定される。同一の識別標識が設定されている各ユーザは、同一チャネルを利用して音声チャットを行っている。図５では、説明の便宜上、丸印や二重丸印のような標識でチャネルを区別しているが、これに代えて、例えば、「ＣＨ１」や「チャネル１」のような文字等によって、音声チャット用のチャネルを区別してもよい。
【００５７】
音声チャットモニタ２１１に表示されるユーザの範囲は、例えば、以下に述べるように、種々の方法に従って設定することができる。第１の方法は、同一のワールドを利用する全ユーザを表示する方法である。つまり、ユーザＵ１と同一の仮想空間２００に出現可能であり、ユーザＵ１と仮想空間２００のどこかで出会う可能性のある全てのユーザを、音声チャットモニタ２１１に表示させる。ログインしているユーザのみを表示させてもよいし、あるいは、ログアウトしているユーザも含めて全ユーザを表示させてもよい。但し、この場合、音声チャットモニタ２１１に表示させるユーザ数が多くなるため、モニタウィンドウのサイズが大きくなりやすく、検索しにくいという可能性がある。
【００５８】
第２の方法は、ユーザＵ１の周辺マップに位置する全ユーザのみを音声チャットモニタ２１１に表示させる方法である。この場合は、表示するユーザ数を比較的少数に抑制できる可能性がある。しかし、イベント会場のように多数のユーザが集合するマップでは、表示するユーザ数が増大する。
【００５９】
第３の方法は、仮想空間の全体において音声チャットを利用しているユーザのみを音声チャットモニタ２１１に表示させる方法である。つまり、音声チャットサーバ１３の有する各チャネル１３２のうち使用されているチャネル１３２に接続されている、全てのユーザの名前を音声チャットモニタ２１１に表示させる。
【００６０】
第４の方法は、ユーザＵ１から入力される検索条件に合致するユーザのみを音声チャットモニタ２１１に表示させる方法である。例えば、各ユーザに趣味や居住地あるいは年齢及び性別等のプロフィールがそれぞれ設定されている場合、ユーザＵ１は、趣味等に基づいて、他のユーザを検索することができる。
【００６１】
第５の方法は、ユーザＵ１が予め友人または知人として登録している他のユーザのみを音声チャットモニタ２１１に表示させる方法である。以上の方法は例示であって、本発明では、いずれの方法も採用可能である。
【００６２】
仮想店舗２１２は、仮想空間２００に配置されるオブジェクトの一例である。仮想店舗２１２には、例えば、店員の役割を担当するアバタと、商品やレジスター端末等の各種オブジェクトとがそれぞれ配置される。仮想店舗２１２に関する詳細な情報や具体的な購買行動等については、ウェブページ表示部２２０に表示させることができる。
【００６３】
コントロールパネル２３０は、ユーザが、自分自身を象徴するアバタ（図５中のＵ１）の移動、姿勢、表情等を操作するための操作部である。ユーザは、例えば、４方向のカーソルキー２３１を操作することにより、アバタＵ１を仮想空間２００内で移動させることができる。また、ユーザは、コントロールパネル２３０に配置された各種ボタン２３２を操作することにより、アバタＵ１の姿勢や表情、視線等を制御できる。
【００６４】
メニュー２４０は、例えば、音声チャットボタン２４１，ユーザリストボタン２４２，マップボタン２４３，アバタ編集ボタ２４４を備える。音声チャットボタン２４１は、音声チャットを開始または停止する場合に操作するボタンである。
【００６５】
ユーザが、音声チャットボタン２４１を一度操作すると（クリックすると）、音声チャットがオン状態となる。音声チャットのオン状態とは、音声チャットを開始可能な状態である。実際に音声チャットが開始されれるか否かは、周囲に他のアバタが存在するか否か、周囲で音声チャットが既に開始されているか否か、チャネルに空きの通信ポートがあるか否か等によって定まる。ユーザが、音声チャットボタン２４１を再度操作すると（２度目のクリックをすると）、音声チャットはオフ状態となる。
【００６６】
ユーザリストボタン２４２は、仮想空間２００に参加しているユーザ名のリストを表示させるためのボタンである。ユーザリストの表示範囲は、音声チャットモニタ２１１のユーザ名表示範囲と同様に、種々の方法で設定可能である。
【００６７】
マップボタン２４３は、仮想空間２００の地図を表示させるためのボタンである。アバタ編集ボタン２４４は、アバタＵ１の構成を編集するためのボタンである。例えば、ユーザは、アバタＵ１の髪型、目や肌の色等の各部を変更できる。
【００６８】
ウェブページ表示部２２０を説明する。ウェブページ表示部２２０には、アバタＵ１の位置する仮想空間２００に関する情報が表示される。例えば、アバタＵ１が仮想店舗２１２の内部または周囲に位置する場合、ウェブページ表示部２２０には、仮想店舗２１２に関連するウェブページが表示される。このウェブページは、例えば、仮想店舗２１２を出店する企業により運営されるショッピングサイトのように構成可能である。
【００６９】
仮想店舗２１２に関するウェブページには、例えば、お勧め商品ボタン２２１，商品検索ボタン２２２，店舗マップボタン２２３，お問い合わせボタン２２４等の各種メニューに関するボタンを配置することができる。
【００７０】
図６は、ユーザ管理情報１２１及びアバタ管理情報１２３の構成をそれぞれ示す説明図である。アバタ管理情報１２３は、例えば、アバタ位置管理情報１２３Ａと、アイテム情報１２３Ｂとを含んで構成される。
【００７１】
ユーザ管理情報１２１は、仮想空間提供サービスを利用する各ユーザをそれぞれ管理するためのものである。ユーザ管理情報１２１は、例えば、ユーザＩＤと、パスワードと、氏名と、連絡先電子メールアドレスや電話番号と、性別と、年齢と、最終ログイン時刻等を対応付けて管理している。なお、これらの項目は一例であって、本発明はこれらに限定されない。例えば、職業や住所等の項目を追加してもよいし、氏名や年齢等の項目を廃止してもよい。
【００７２】
アバタ位置管理情報１２３Ａは、アバタの位置を管理する情報である。アバタ位置管理情報１２３Ａは、例えば、ユーザＩＤと、時刻と、ワールドＩＤと、空間ＩＤと、座標等を対応付けて管理する。即ち、どのユーザが、いつ、どのワールドに属するどの仮想空間内で、どこに存在したかを所定時間毎に管理している。なお、アバタ位置管理情報１２３Ａに、アバタの容姿を決定するための情報を含めてもよい。
【００７３】
アイテム情報１２３Ｂは、アバタの有するアイテムを管理する情報である。アイテム情報１２３Ｂは、例えば、ユーザＩＤと、アイテムＩＤと、属性と、アイテムの表示ファイル等を対応付けて管理する。アイテムとは、例えば、アバタが身につける帽子、手袋、マフラー、メガフォン、眼鏡、ハンドバッグ、遊具、洋服等を意味する。アイテムＩＤは、各アイテムをそれぞれ識別するための情報である。属性とは、各アイテムの属するカテゴリを示す情報である。
【００７４】
図７は、仮想空間管理情報１２２の構成を示す説明図である。仮想空間管理情報１２２は、例えば、仮想空間構成情報１２５Ａと、ワールド管理情報１２２Ｂとを含んで構成することができる。
【００７５】
仮想空間構成情報１２２Ａは、仮想空間の構成について管理するものである。仮想空間構成情報１２２Ａは、例えば、空間ＩＤと、空間名と、構成ファイル名と、ワールドＩＤ等を対応付けて管理する。空間ＩＤとは、仮想空間を識別するための情報である。空間名とは、その仮想空間の名称である。構成ファイル名とは、その仮想空間の構成を定義したファイルを特定するための情報である。ワールドＩＤとは、その仮想空間が設けられるワールドを特定するための情報である。
【００７６】
ワールド管理情報１２２Ｂは、各ワールドの状態を管理するものである。ワールド管理情報１２２Ｂは、例えば、ワールドＩＤと、ワールド名と、サーバＩＤと、接続ユーザ数と、負荷と、可聴範囲等を対応付けて管理している。ワールド名とは、そのワールドのニックネームのような名称である。サーバＩＤとは、そのワールドが設定されているサーバを特定するための情報である。接続ユーザ数とは、そのワールドに接続しているユーザの数である。負荷とは、そのワールドのＣＰＵ負荷やメモリ消費量等を示す情報である。可聴範囲とは、そのワールドの可聴範囲３００の値（例えば、半径の値）である。つまり、本実施例では、管理者は、各ワールドＩＤ毎に、それぞれ可聴範囲の広さを設定することができる。例えば、管理者は、あるワールドの可聴範囲３００を小さく設定し、別のワールドの可聴範囲３００を広く設定することができる。また、例えば、管理者は、あるワールドに設定済の可聴範囲の値を書き直すことにより、そのワールドの可聴範囲３００の広さを調節することができる。
【００７７】
なお、仮想空間管理情報１２２には、仮想空間２００に配置される全てのオブジェクトを管理するための情報も含ませることができる。オブジェクトを管理するための情報は、例えば、オブジェクトを識別するためのオブジェクトＩＤ、オブジェクトデータを特定するためのファイルパス、オブジェクトの配置位置を示す情報、オブジェクトの作成者や作成年月日を示す情報等を含むことができる。
【００７８】
図８は、音声チャットを管理するための音声チャット管理情報１２４の構成を示す説明図である。音声チャット管理情報１２４は、例えば、チャネル名と、通信ポート番号と、接続状態と、ユーザＩＤと、ホストまたはゲストの区別等を対応付けて管理する。
【００７９】
チャネル名は、音声チャットサーバ１３の有する各チャネル１３２を識別するための情報である。ポート番号は、チャネル１３２の有する各通信ポート１３３を識別するための情報である。
【００８０】
接続状態は、通信ポート１３３にクライアント端末２０が接続されているか否かを示す情報である。使用中の通信ポート１３３には、例えば「接続中」と設定される。ユーザＩＤは、通信ポート１３３に接続しているユーザを特定するための情報である。ホストまたはゲストの区別とは、その通信ポート１３３を使用するユーザが、ホストユーザＵＨなのか、それともゲストユーザＵＧなのかを示す情報である。本実施例では、ホストユーザが、空いているチャネルに一番早く接続され、そのチャネルに後から接続される各ユーザは全員ゲストとなる。従って、通常の場合、各チャネルのうち、最もポート番号の小さい通信ポート１３３は、ホストユーザにより使用される。
【００８１】
図９〜図１３を参照して、音声チャットの制御方法を説明する。図９は、音声チャットへの参加を希望するユーザＵ１が、既に開始されている音声チャットに参加する様子を示す説明図である。
【００８２】
図９（ａ）に示すように、ホストユーザＵＨ及び各ゲストユーザＵＧによって、音声チャットが既に開始されているものとする。この音声チャットグループの近くにユーザＵ１が移動してきたか、あるいは、ログインしたものとする。
【００８３】
図９（ｂ）に示すように、ユーザＵ１は、音声チャットボタン２４１を操作して音声チャットをオン状態とし、可聴範囲３００内に進入する。その音声チャットで使用中のチャネルに空いている通信ポート１３３がある場合、ユーザＵ１は、その空いている通信ポート１３３を使用する。これにより、ユーザＵ１は、その音声チャットのグループのメンバとなり、音声でチャットを行うことができる。
【００８４】
図９（ｃ）に示すように、ユーザＵ１が可聴範囲３００から外れると、ユーザＵ１の音声チャットは自動的にオフ状態となり、ユーザＵ１の使用するクライアント端末２０は、通信ポート１３３から切断される。
【００８５】
図９（ｃ）に示す状態は、ユーザＵ１が可聴範囲３００から積極的または消極的に外れた場合に生じる。ユーザが可聴範囲３００から積極的に外れる場合とは、停止状態の可聴範囲３００から、ユーザＵ１が歩み去った場合である。ユーザが可聴範囲３００から消極的に外れる場合とは、ホストユーザＵＨの移動に応じて可聴範囲３００が移動しており、ユーザＵ１が可聴範囲３００の移動に追従しなかった場合である。
【００８６】
図１０は、音声チャットが最初に行われる様子を示す説明図である。図１０（ａ）に示すように、ユーザＵ１の周囲には、他のユーザＵ２が複数存在する。しかし、音声チャットは未だ開始されていないものとする。
【００８７】
図１０（ｂ）に示すように、ユーザＵ１が音声チャットボタン２４１を操作し、音声チャットをオン状態にすると、ユーザＵ１が開始しようとする音声チャットに対して、音声チャットサーバ１３の有するチャネルが１つ割り当てられる。ユーザＵ１は、音声チャットのホスト（ＵＨ）となる。ユーザＵ１（ＵＨ）の位置を中心とする所定周囲が、可聴範囲３００として設定される。
【００８８】
図１０（ｃ）に示すように、周囲の他のユーザＵ２のうち、音声チャットボタン２４１を操作して音声チャットをオン状態にしたユーザＵ２は、ユーザＵ１が開始した音声チャットのゲストユーザ（ＵＧ）となる。
【００８９】
図１１は、音声チャットが終了する様子を示す。図１１（ａ）に示すように、ホストユーザＵＨと複数のゲストユーザＵＧとによって音声チャットが行われているとする。図１１（ｂ）に示すように、例えば時間の経過によって、ホストユーザＵＨ以外の他の全てのユーザＵＧが、音声チャットから離脱したとする。
【００９０】
ここで、音声チャットから離脱する場合としては、ゲストユーザＵＧが仮想空間２００からログアウトした場合と、ゲストユーザＵＧが可聴範囲３００の外に出た場合と、ゲストユーザＵＧが音声チャットボタン２４１を操作して音声チャットをオフ状態にした場合とがある。
【００９１】
図１１（ｃ）に示すように、ホストユーザＵＨ以外の他の全てのユーザＵＧが音声チャットから離脱した場合、所定時間後に、音声チャットは停止される。つまり、ホストユーザＵＨは、チャネル１３２から切断され、可聴範囲３００が消滅する。ホストユーザＵＨは、通常のユーザＵ１に戻る。
【００９２】
図１２は、ホストユーザＵＨが音声チャットから離脱する場合を示す。図１２（ａ）に示すように、ホストユーザＵＨの周囲で音声チャットが行われているとする。図１２（ｂ）に示すように、ホストユーザＵＨが音声チャットから離脱すると、図１２（ｃ）に示すように、可聴範囲３００は消滅し、音声チャットグループは強制的に解散する。ホストユーザＵＨが音声チャットから離脱する場合としては、ホストユーザＵＨが音声チャットボタン２４１を操作して音声チャットをオフ状態にした場合と、ホストユーザＵＨが仮想空間２００からログアウトした場合とがある。
【００９３】
ホストユーザＵＨがチャネル１３２から切断されると、そのチャネルを使用している他の全てのユーザＵＧも、そのチャネルから強制的に切断される。これにより、ゲストユーザＵＧは、通常のユーザＵ２に戻る。この後、各ユーザＵ２，Ｕ１のうち、誰かが音声チャットボタン２４１を操作すると、図１０で述べたように、改めてチャネルが確保され、音声チャットが再び開始される。
【００９４】
図１３は、それぞれ異なる音声チャットが重なり合って行われている様子を示す説明図である。上述の通り、音声チャットが実行される可聴範囲３００は、ホストユーザＵＨの仮想空間における位置に応じて、仮想空間を移動する。
【００９５】
従って、図１３（ａ）に示すように、それぞれ異なる音声チャットが重なり合って行われる可能性がある。また、互いに所定距離以上離れているユーザＵＨＡ，ＵＨＢが、それぞれ音声チャットボタン２４１を操作して音声チャットをオン状態にした場合も、二つの異なる音声チャットが重なり合ってそれぞれ実行され得る。但し、各ユーザは、それぞれいずれか一つの音声チャットにのみ参加可能である。つまり、各ユーザは、それぞれ１つのチャネルのみ使用可能である。
【００９６】
一方の音声チャットは、一方のホストユーザＵＨＡを中心とする可聴範囲３００Ａ内で行われ、他方の音声チャットは、他方のホストユーザＵＨＢを中心とする可聴範囲３００Ｂ内で行われる。
【００９７】
図１３（ｂ）に示すように、別のユーザＵ１が、各可聴範囲３００Ａ，３００Ｂの重なり合う領域に進入した場合を考える。この場合、ユーザＵ１は、ホストユーザＵＨＡ，ＵＨＢのうちいずれか最も近いホストユーザの音声チャットに参加する。
【００９８】
図１３（ｂ）では、ユーザＵ１（後のＵＧＢ）とホストユーザＵＨＡとは距離ＬＡだけ離れており、ユーザＵ１とホストユーザＵＨＢとは距離ＬＢだけ離れており、ＬＢの方がＬＡよりも短い（ＬＢ＜ＬＡ）。従って、ユーザＵ１は、ホストユーザＵＨＢの音声チャットに参加し、ゲストユーザＵＨＢとなる。
【００９９】
図１４，図１５に基づいて、仮想空間提供サーバの動作を説明する。以下に示す各フローチャートは、本発明の理解及び実施に必要な程度で各処理の概要を示しており、実際のコンピュータプログラムとは相違する。いわゆる当業者であれば、図示されたステップの変更、入れ替え、削除、新たなステップの追加を行うことができるであろう。
【０１００】
図１４は、仮想空間提供処理の全体概要を示す。仮想空間提供サーバ１０は、仮想空間２００を生成してユーザのログインを待つ（Ｓ１０）。ユーザは、クライアント端末２０を用いてサーバ１０にアクセスし、ユーザＩＤやパスワードを入力する（Ｓ１１）。サーバ１０は、入力されたユーザＩＤ及びパスワードの組合せが、ユーザ管理情報１２１に登録されているか否かを判断し、ユーザ認証を行う（Ｓ１２）。
【０１０１】
ユーザ認証が成功した場合、サーバ１０は、アバタ管理情報１２３等を用いて、ユーザのアバタを仮想空間内の所定位置に配置させる（Ｓ１３）。例えば、ユーザは、サーバ１０から提示された複数の出現地点のうちいずれか一つを選択することができる。
【０１０２】
サーバ１０は、アバタの出現地点周辺の仮想空間のデータをクライアント端末２０に送信する（Ｓ１４）。このデータには、アバタから視認可能な範囲内の各オブジェクト及び各アバタのデータ等が含まれる。
【０１０３】
クライアントソフトウェア２１は、サーバ１０から受信したデータに基づいて仮想空間を描画し、仮想空間表示部２１０に表示させる（Ｓ１５）。ユーザは、コントロールパネル２３０やメニュー２４０を操作することにより、アバタを仮想空間内で移動させたり、アバタの姿勢や表情を変化させたりする（Ｓ１６）。さらに、ユーザは、他のアバタとテキストまたは音声で会話を行うこともできる（Ｓ１６）。ユーザによるアバタ操作は、サーバ１０に入力される。
【０１０４】
サーバ１０は、ユーザの操作内容を仮想空間に反映させ（Ｓ１７）、操作内容を保存し（Ｓ１８）、仮想空間の最新状態をクライアント端末２０に送信する（Ｓ１４）。ユーザが仮想空間にログインしている間、Ｓ１４〜Ｓ１８のステップが繰り返される。ユーザによるアバタ操作（Ｓ１６）の中で、音声チャットが実行される。
【０１０５】
図１５，図１６は、音声チャット処理を示すフローチャートである。音声チャットの開始を希望するユーザは、音声チャットボタン２４１をオン操作する（Ｓ３０）。オン操作とは、音声チャットをオン状態にさせるボタン操作を意味する。
【０１０６】
クライアントソフトウェア２１は、サーバ１０に、音声チャットの状況を問い合わせる（Ｓ３１）。つまり、ユーザの周囲で（正確には、ユーザのアバタの周囲で）音声チャットが既に開始されているか否かをサーバ１０に問い合わせる。即ち、クライアントソフトウェア２１は、操作対象のアバタを中心とした可聴範囲３００内に、ホストユーザが存在するか否かを、サーバ１０に問い合わせる。
【０１０７】
ユーザの周囲で音声チャットが既に開始されている場合、つまり、ユーザのアバタが、既に開始されている音声チャットの可聴範囲３００内に位置する場合、サーバ１０は、その音声チャットに関するホストユーザのユーザＩＤを、クライアントソフトウェア２１に通知する。これに対し、ユーザの周囲で音声チャットが開始されていない場合、サーバ１０は、クライアントソフトウェア２１に「０」を返す。
【０１０８】
クライアントソフトウェア２１は、サーバ１０からの応答に基づいて、ユーザの周囲にホストユーザが存在するか否かを判定する（Ｓ３２）。つまり、ユーザの周囲で既に音声チャットが開始されているか否かを判定する（Ｓ３２）。即ち、ユーザが、既に開始されている音声チャットの可聴範囲３００内に位置するか否かを判定する（Ｓ３２）。
【０１０９】
ユーザの周囲にホストユーザが存在する場合（S32:YES）、クライアントソフトウェア２１は、サーバ１０に、開始されている音声チャットで使用中のチャネル１３２に空いている通信ポート１３３があるか否かを問い合わせる（Ｓ３３）。
【０１１０】
チャネル１３２に空いている通信ポート１３３が存在しない場合（S33:NO）、その音声チャットのグループは満員状態であるため、クライアントソフトウェア２１は、満員状態であるため音声チャットに参加できない旨をユーザに通知する（Ｓ３４）。
【０１１１】
これに対し、チャネル１３２に空いている通信ポート１３３がある場合（S33:YES）、クライアントソフトウェア２１は、サーバ１０に、そのチャネル１３２への接続を要求する（Ｓ３５）。サーバ１０は、クライアントソフトウェア２１に通信ポート１３３を割当て、音声チャット管理情報１２４を更新する。
【０１１２】
クライアントソフトウェア２１は、チャネル１３２への接続を確認すると、音声チャットモニタ２１１を表示すると共に、音声チャットを開始する（Ｓ３６）。クライアントソフトウェア２１は、ユーザのアバタ位置が可聴範囲３００内にあるか否か（Ｓ３７）、及び、ユーザが音声チャットボタン２４１をオフ操作したか否か（Ｓ３８）を、それぞれ監視する。オフ操作とは、音声チャットをオフ状態にするためのボタン操作である。
【０１１３】
アバタが可聴範囲３００から外れた場合（S37:NO）またはユーザが音声チャットボタン２４１をオフ操作した場合（S38:YES）のいずれかの場合、クライアントソフトウェア２１は、サーバ１０に、チャネルからの切断を要求する（Ｓ３９）。これにより、音声チャットは終了する（Ｓ４０）。
【０１１４】
次に、図１６に基づいて、ユーザの周囲で音声チャットが開始されていない場合（S32:NO）を説明する。まず最初に、クライアントソフトウェア２１は、そのユーザのアバタ位置を中心とする可聴範囲３００内に、他ユーザが一人以上存在するか否かを判定する（Ｓ５０）。他ユーザが一人も存在しない場合（S50:NO）、クライアントソフトウェア２１は、音声チャットをすることができない旨をユーザに通知する（Ｓ５１）。
【０１１５】
これに対し、可聴範囲３００内に一人以上他ユーザが存在する場合（S50:YES）、クライアントソフトウェア２１は、サーバ１０に音声チャットサーバ１３のチャネルの使用状況を問合せる。サーバ１０は、音声チャットサーバ１３の有する各チャネル１３２のうち、未使用のチャネル１３２のチャネル番号を検出し、クライアントソフトウェア２１に通知する。
【０１１６】
クライアントソフトウェア２１は、サーバ１０からの返信に基づいて、空いているチャネル１３２があるか否かを判定する（Ｓ５２）。空いているチャネル１３２が無い場合（S52:NO）、クライアントソフトウェア２１は、空きチャネルが無いため音声チャットを開始できない旨をユーザに通知する（Ｓ５３）。
【０１１７】
空きチャネルが存在する場合（S52:YES）、クライアントソフトウェア２１は、サーバ１０に、ホストユーザとして、空きチャネルへの接続を要求する（Ｓ５４）。クライアントソフトウェア２１は、チャネル１３２への接続を確認すると、音声チャットモニタ２１１を表示し、音声チャットを開始する（Ｓ５５）。
【０１１８】
クライアントソフトウェア２１は、可聴範囲３００内に他アバタが一人以上存在するか否か（Ｓ５６）、及び、ホストユーザが音声チャットボタン２４１をオフ操作したか否か（Ｓ５７）を、それぞれ監視する。なお、ホストユーザが仮想空間からログアウトする場合は、Ｓ５７で検出されるものとする。
【０１１９】
可聴範囲３００内に他アバタが一人も存在しない場合（S56:NO）、または、ホストユーザが音声チャットをオフ状態にした場合（S57:YES）のいずれかの場合、クライアントソフトウェア２１は、サーバ１０に、チャネルからの切断を要求する（Ｓ５８）。これにより、音声チャットが終了する（Ｓ５９）。
【０１２０】
本実施例は、上述のように構成されるので、以下の効果を奏する。本実施例では、ホストユーザＵＨの位置を中心とする所定範囲に可聴範囲３００を設定し、音声チャットの開始を希望する他ユーザが可聴範囲３００内に入った場合に、他ユーザを音声チャットのチャネルに接続させる。従って、各ユーザは、音声チャットボタン２４１を押して仮想空間２００内を移動するだけで、既に開始されている音声チャットに自動的に参加でき。音声を通じて他ユーザと簡単に交流することができる。
【０１２１】
本実施例では、音声チャット用の特別な部屋に各ユーザが集結したり、あるいは、ユーザ同士が予めグループを結成したりする必要が無く、簡単な操作で音声チャットに参加することができ、使い勝手が良い。
【０１２２】
本実施例では、ホストユーザＵＨを中心とする一定範囲を可聴範囲３００として設定するため、ホストユーザＵＨの移動に応じて可聴範囲３００も移動する。従って、各ユーザは、仮想空間２００を自由に移動しながら音声チャットを続けることができ、使い勝手が向上する。
【実施例２】
【０１２３】
図１７，図１８に基づいて第２実施例を説明する。第１実施例では、所定コミュニケーションプログラムとして音声チャットプログラムを例に挙げて説明した。これに代えて、第２実施例では、ビデオ会議プログラムに適用する場合を説明する。
【０１２４】
図１７は、本実施例による仮想空間管理サーバ１２Ａの構成を模式的に示すブロック図である。第１実施例と異なる部分を中心に説明すると、制御部１１０は、音声チャット管理部１１２に代えて、ビデオ会議管理部１１２Ａを備える。記憶部１２０は、音声チャット管理情報１２４に代えて、ビデオ会議管理情報１２４Ａを備える。
【０１２５】
さらに、本実施例の仮想空間提供システムは、音声チャットサーバ１３に代えて、ビデオ会議サーバ１３Ａを備える。ビデオ会議サーバ１３Ａは、例えば、通信部１３１Ａと、ビデオ会議制御部１３０Ａとを備える。本実施例で使用されるクライアント端末２０は、ビデオ会議システムを利用可能なクライアントソフトウェア２１Ａを備える。
【０１２６】
図１８は、クライアントソフトウェア２１Ａによる表示の様子を示す。仮想空間表示部２１０には、例えば、ビデオ会議モニタ２１１Ａと、ビデオ会議参加者の映像表示部２１３とは、それぞれ表示される。
【０１２７】
メニュー２４０Ａには、ビデオ会議を開始するためのボタン２４１Ａが設けられる。ウェブページ表示部２２０には、ビデオ会議を支援するためのサイトが表示される。このサイトは、例えば、議事録２２１Ａ、資料２２２Ａ、掲示板２２３Ａ、ホワイトボード２２４Ａを利用するための各種ボタンを有する。
【０１２８】
音声チャットの場合と同様に、ビデオ会議のホストユーザを中心として可聴範囲３００が設定される。可聴範囲３００内に位置する他ユーザは、ビデオ会議ボタン２４１Ａをオン操作するだけで、既に開始されているビデオ会議に参加可能である。但し、ビデオ会議のチャネルに空いている通信ポートが無い場合は満員状態であるから、そのビデオ会議に参加することはできない。
【０１２９】
ユーザは、自分がホストユーザとなって、空いているチャネルを使用し、ビデオ会議を開始することもできる。基本的な動作は音声チャットの場合と同様である。
【０１３０】
このように構成される本実施例も第１実施例と同様の効果を奏する。即ち、本実施例も、各ユーザは簡単な操作でビデオ会議を開始したり、既に開催されているビデオ会議に自由に参加することができる。
【０１３１】
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、前記各実施例では、所定コミュニケーションプログラムとして、音声チャット及びビデオ会議を例示したが、これらに限らず、他の種類のコミュニケーションプログラムにも適用可能である。例えば、複数のユーザが一つまたは複数のオブジェクトを共同して生成または編集するためのプログラム等にも適用できるであろう。
【０１３２】
また、前記実施例では、可聴範囲から外れたユーザは音声チャットから直ちに離脱する場合を説明したが、これに代えて、例えば、可聴範囲から外れたユーザが音声チャットから離脱するまでに十数秒〜数分の所定時間だけ待機する構成でもよい。つまり、あるユーザが誤操作等で短時間だけ可聴範囲から外れた場合でも、そのユーザをチャネルから切断させずに、可聴範囲内に戻るのを待つ構成としてもよい。具体的には、例えば、Ｓ３７において、「所定時間以上、アバタが可聴範囲から外れたか否か」を判定する。また、Ｓ５６では、「所定時間以上、可聴範囲内に一人の他アバタも存在しないか否か」を判定すればよい。
【図面の簡単な説明】
【０１３３】
【図１】本発明の実施形態の概念を示す説明図。
【図２】本実施例に係る仮想空間提供サーバを含むシステムの全体構成図。
【図３】仮想空間管理サーバの構成を示すブロック図。
【図４】音声チャットサーバの構成を模式的に示す説明図。
【図５】クライアントソフトウェアのユーザインターフェースを示す説明図。
【図６】ユーザ管理情報及びアバタ管理情報１２３を示す説明図。
【図７】仮想空間管理情報を示す説明図。
【図８】音声チャット管理情報を示す説明図。
【図９】既存の音声チャットにユーザが参加する様子を示す説明図。
【図１０】新たな音声チャットを開始する様子を示す説明図。
【図１１】既存の音声チャットが解散する様子を示す説明図。
【図１２】ホストユーザの離脱によって音声チャットが終了する様子を示す説明図。
【図１３】可聴範囲が重なる場合に、ホストユーザに近い方の音声チャットに参加する様子を示す説明図。
【図１４】仮想空間を提供する方法を示すフローチャート。
【図１５】音声チャット処理のフローチャート。
【図１６】図１５に続くフローチャート。
【図１７】第２実施例に係る仮想空間管理サーバ等の構成図。
【図１８】クライアントソフトウェアのユーザインターフェースを示す説明図。
【符号の説明】
【０１３４】
１：仮想空間提供サーバ、２：クライアント端末、２Ａ：クライアントソフトウェア、３：音声チャットサーバ、５：仮想空間管理部、６：音声チャット管理部、７：仮想空間、７Ａ：操作部、８，８Ｈ，８Ｇ：アバタ（ユーザ）、９：可聴範囲、１０：仮想空間提供サーバ、１１：ウェブサーバ、１２，１２Ａ：仮想空間管理サーバ、１３：音声チャットサーバ、１３Ａ：ビデオ会議サーバ、２０：クライアント端末、２１，２１Ａ：クライアントソフトウェア、１００：通信部、１１０：制御部、１１１：仮想空間管理部、１１２：音声チャット管理部、１１２Ａ：ビデオ会議管理部、１１３：仮想空間提供部、１２０：記憶部、１２１：ユーザ管理情報、１２２：仮想空間管理情報、１２２Ａ：仮想空間構成情報、１２２Ｂ：ワールド管理情報、１２３：アバタ管理情報、１２３Ａ：アバタ位置管理情報、１２３Ｂ：アイテム情報、１２４：音声チャット管理情報、１２４Ａ：ビデオ会議管理情報、１２５Ａ：仮想空間構成情報、１３０：音声合成部、１３０Ａ：ビデオ会議制御部、１３１，１３１Ａ：通信部、１３２：チャネル、１３３：通信ポート、２００：仮想空間、２１０：仮想空間表示部、２１１：音声チャットモニタ、２１１Ａ：ビデオ会議モニタ、２１２：仮想店舗、２１３：映像表示部、２２０：ウェブページ表示部、２３０：コントロールパネル、２４０，２４０Ａ：メニュー、２４１：音声チャットボタン、２４１Ａ：ビデオ会議ボタン、３００，３００Ａ，３００Ｂ：可聴範囲。
【図１】
0005005574.tif 000002
【図２】
0005005574.tif 000003
【図３】
0005005574.tif 000004
【図４】
0005005574.tif 000005
【図５】
0005005574.tif 000006
【図６】
0005005574.tif 000007
【図７】
0005005574.tif 000008
【図８】
0005005574.tif 000009
【図９】
0005005574.tif 000010
【図１０】
0005005574.tif 000011
【図１１】
0005005574.tif 000012
【図１２】
0005005574.tif 000013
【図１３】
0005005574.tif 000014
【図１４】
0005005574.tif 000015
【図１５】
0005005574.tif 000016
【図１６】
0005005574.tif 000017
【図１７】
0005005574.tif 000018
【図１８】
0005005574.tif 000019