(57)【要約】  ユーザの操作を中断させることなく、ユーザ位置が属する部分空間の遷移処理を行うことのできる仮想空間管理システムを提供する。  一つの仮想空間を分割してなる複数の部分空間のそれぞれを管理する複数の空間管理サーバと、複数の空間管理サーバのいずれかとユーザ端末との間の通信を中継する通信制御サーバと、を含み、各空間管理サーバは、ユーザ端末に関連づけられる仮想空間内の位置が、他の空間管理サーバによって管理される部分空間の内部から、当該空間管理サーバによって管理される部分空間の内部に遷移する場合に、当該遷移に係る処理を行い、通信制御サーバは、当該遷移に係る処理が実行されている間、ユーザ端末との間の通信接続を維持し、当該遷移に応じて、ユーザ端末から受信したデータの送信先を遷移後の部分空間を管理する空間管理サーバに変更する仮想空間管理システムである。
2010064653.tif 000002
【特許請求の範囲】
【請求項１】
一つの仮想空間を分割してなる複数の部分空間のそれぞれを管理する複数の空間管理サーバと、前記複数の空間管理サーバのいずれかとユーザ端末との間の通信を中継する通信制御サーバと、を含む仮想空間管理システムであって、
前記各空間管理サーバは、
前記ユーザ端末に関連づけられる前記仮想空間内の位置が、他の空間管理サーバによって管理される部分空間の内部から、当該空間管理サーバによって管理される部分空間の内部に遷移する場合に、当該遷移に係る処理を行うユーザ遷移制御手段を備え、
前記通信制御サーバは、
前記遷移に係る処理が実行されている間、前記ユーザ端末との間の通信接続を維持するとともに、前記遷移に応じて、当該ユーザ端末から受信したデータの送信先を、当該遷移後の部分空間を管理する空間管理サーバに変更する接続先管理手段を備える
ことを特徴とする仮想空間管理システム。
【請求項２】
請求項１記載の仮想空間管理システムにおいて、
前記ユーザ遷移制御手段は、前記遷移に係る処理の完了を前記通信制御サーバに通知し、
前記接続先管理手段は、前記遷移の完了の通知を受け付けた場合に、前記ユーザ端末から受信したデータの送信先を、当該通知を行った空間管理サーバに変更する
ことを特徴とする仮想空間管理システム。
【請求項３】
請求項１記載の仮想空間管理システムにおいて、
前記通信制御サーバは、前記遷移に係る処理が実行されている間、前記遷移前の部分空間を管理する空間管理サーバ、及び前記遷移後の部分空間を管理する空間管理サーバのそれぞれとの間の通信接続を維持する
ことを特徴とする仮想空間管理システム。
【請求項４】
請求項２に記載の仮想空間管理システムにおいて、
前記ユーザ遷移制御手段は、前記ユーザ端末に関連づけられる前記仮想空間内の位置が、当該空間管理サーバによって管理される部分空間の内部から、他の空間管理サーバによって管理される部分空間の内部に遷移する場合に、当該遷移の開始を前記通信制御サーバに通知し、
前記接続先管理手段は、前記遷移の開始の通知を受け付けてから、前記遷移の完了の通知を受け付けるまでの間、前記ユーザ端末から受信した情報をバッファリングし、前記遷移の完了の通知を受け付けた後、当該通知を行った空間管理サーバに対して当該バッファリングした情報を送信する
ことを特徴とする仮想空間管理システム。
【請求項５】
請求項１に記載の仮想空間管理システムにおいて、
前記接続先管理手段は、前記ユーザ端末に関連づけられる前記仮想空間内の位置が属する部分空間を管理する空間管理サーバを特定する情報を接続先情報として保持し、前記遷移の完了の通知を受け付けた場合に、当該接続先情報を、当該通知を行った空間管理サーバを特定する情報に更新し、
前記通信制御サーバは、前記接続先情報を参照して、前記ユーザ端末から受信したデータの送信先を決定する
ことを特徴とする仮想空間管理システム。
【請求項６】
一つの仮想空間を分割してなる複数の部分空間のそれぞれを管理する複数の空間管理サーバのいずれかと、ユーザ端末と、の間の通信を中継する通信制御サーバであって、
前記ユーザ端末に関連づけられる前記仮想空間内の位置が、一の空間管理サーバによって管理される部分空間の内部から、他の空間管理サーバによって管理される部分空間の内部に遷移する場合に、当該遷移に係る処理が前記他の空間管理サーバによって実行されている間、前記ユーザ端末との間の通信接続を維持するとともに、前記遷移に応じて、当該ユーザ端末から受信したデータの送信先を、前記他の空間管理サーバに変更する接続先管理手段を備える
ことを特徴とする通信制御サーバ。
【請求項７】
一つの仮想空間を分割してなる複数の部分空間のそれぞれを管理する複数の空間管理サーバのいずれかと、ユーザ端末と、の間の通信を中継する通信制御サーバの制御方法であって、
前記ユーザ端末に関連づけられる前記仮想空間内の位置が、一の空間管理サーバによって管理される部分空間の内部から、他の空間管理サーバによって管理される部分空間の内部に遷移する場合に、当該遷移に係る処理が前記他の空間管理サーバによって実行されている間、前記ユーザ端末との間の通信接続を維持するとともに、前記遷移に応じて、当該ユーザ端末から受信したデータの送信先を、前記他の空間管理サーバに変更するステップを含む
ことを特徴とする通信制御サーバの制御方法。
【請求項８】
一つの仮想空間を分割してなる複数の部分空間のそれぞれを管理する複数の空間管理サーバのいずれかと、ユーザ端末と、の間の通信を中継する通信制御サーバを、
前記ユーザ端末に関連づけられる前記仮想空間内の位置が、一の空間管理サーバによって管理される部分空間の内部から、他の空間管理サーバによって管理される部分空間の内部に遷移する場合に、当該遷移に係る処理が前記他の空間管理サーバによって実行されている間、前記ユーザ端末との間の通信接続を維持するとともに、前記遷移に応じて、当該ユーザ端末から受信したデータの送信先を、前記他の空間管理サーバに変更する接続先管理手段、
として機能させるためのプログラム。
【請求項９】
請求項８記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項１０】
仮想空間を管理する空間管理サーバと、前記空間管理サーバとユーザ端末との間の通信を中継する通信制御サーバと、を含む仮想空間管理システムであって、
前記空間管理サーバは、
前記ユーザ端末に送信すべき、前記仮想空間に関する複数のイベント情報を、当該各イベント情報の送信順序が特定される態様で待機バッファに格納するイベント情報格納手段と、
前記待機バッファに格納された複数のイベント情報を、順に読み出して前記通信制御サーバに対して出力するイベント情報出力手段と、
前記待機バッファに格納された情報を変更するバッファ情報変更手段と、
を備え、
前記通信制御サーバは、前記イベント情報出力手段が出力するイベント情報を、順に前記ユーザ端末に対して送信し、
前記イベント情報出力手段は、前記通信制御サーバが前記ユーザ端末に対して単位時間あたりに送信可能なデータ量に応じて、前記通信制御サーバに対して単位時間あたりに出力するデータ量を異ならせる
ことを特徴とする仮想空間管理システム。
【請求項１１】
請求項１０記載の仮想空間管理システムにおいて、
前記イベント情報出力手段は、前記通信制御サーバが過去に前記ユーザ端末に対して単位時間あたりに送信したデータ量に応じて、前記通信制御サーバに対して単位時間あたりに出力するデータ量を変化させる
ことを特徴とする仮想空間管理システム。
【請求項１２】
請求項１０記載の仮想空間管理システムにおいて、
前記イベント情報出力手段は、前記通信制御サーバに保持されている送信待ちのイベント情報のデータ量に応じて、前記通信制御サーバに対して単位時間あたりに出力するデータ量を補正する
ことを特徴とする仮想空間管理システム。
【請求項１３】
請求項１０に記載の仮想空間管理システムにおいて、
前記イベント情報格納手段は、前記複数のイベント情報のそれぞれにアプリケーション実行手段が指定する優先度情報を関連づけて前記待機バッファに格納し、
前記バッファ情報変更手段は、前記アプリケーション実行手段によって書き換えられる前記優先度情報に応じて、前記各イベント情報の送信順序を変更する
ことを特徴とする仮想空間管理システム。
【請求項１４】
請求項１０記載の仮想空間管理システムにおいて、
前記イベント情報格納手段は、所定の条件を満たすイベント情報については、前記待機バッファに格納せずに、前記通信制御サーバに対して出力する
ことを特徴とする仮想空間管理システム。
【請求項１５】
仮想空間を管理し、ユーザ端末との間の通信を中継する通信制御サーバに接続される空間管理サーバであって、
前記ユーザ端末に送信すべき、前記仮想空間に関する複数のイベント情報を、当該各イベント情報の送信順序が特定される態様で待機バッファに格納するイベント情報格納手段と、
前記待機バッファに格納された複数のイベント情報を、順に読み出して前記通信制御サーバに対して出力するイベント情報出力手段と、
前記待機バッファに格納された情報を変更するバッファ情報変更手段と、
を備え、
前記イベント情報出力手段は、前記通信制御サーバが前記ユーザ端末に対して単位時間あたりに送信可能なデータ量に応じて、前記通信制御サーバに対して単位時間あたりに出力するデータ量を異ならせる
ことを特徴とする空間管理サーバ。
【請求項１６】
仮想空間を管理し、ユーザ端末との間の通信を中継する通信制御サーバに接続される空間管理サーバの制御方法であって、
前記ユーザ端末に送信すべき、前記仮想空間に関する複数のイベント情報を、当該各イベント情報の送信順序が特定される態様で待機バッファに格納するイベント情報格納ステップと、
前記待機バッファに格納された複数のイベント情報を、順に読み出して前記通信制御サーバに対して出力するイベント情報出力ステップと、
前記待機バッファに格納された情報を変更するバッファ情報変更ステップと、
を備え、
前記イベント情報出力ステップでは、前記通信制御サーバが前記ユーザ端末に対して単位時間あたりに送信可能なデータ量に応じて、前記通信制御サーバに対して単位時間あたりに出力するデータ量を異ならせる
ことを特徴とする空間管理サーバの制御方法。
【請求項１７】
仮想空間を管理し、ユーザ端末との間の通信を中継する通信制御サーバに接続される空間管理サーバを、
前記ユーザ端末に送信すべき、前記仮想空間に関する複数のイベント情報を、当該各イベント情報の送信順序が特定される態様で待機バッファに格納するイベント情報格納手段、
前記待機バッファに格納された複数のイベント情報を、順に読み出して前記通信制御サーバに対して出力するイベント情報出力手段、及び
前記待機バッファに格納された情報を変更するバッファ情報変更手段、
として機能させ、
前記イベント情報出力手段は、前記通信制御サーバが前記ユーザ端末に対して単位時間あたりに送信可能なデータ量に応じて、前記通信制御サーバに対して単位時間あたりに出力するデータ量を異ならせる
ことを特徴とするプログラム。
【請求項１８】
請求項１７記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間を管理する仮想空間管理システム、当該仮想空間管理システムを構成する通信制御サーバ、その制御方法、プログラム、及び情報記憶媒体に関する。
【背景技術】
【０００２】
例えば複数ユーザが参加可能なオンラインゲームなどでは、仮想空間を管理する仮想空間管理システムが構築され、この仮想空間内に各ユーザに関連づけられたオブジェクトなどが配置される（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２３４６３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した仮想空間管理システムにおいて、管理対象となる仮想空間が大きく、多数のユーザが参加する場合、処理負荷を分散するために仮想空間を複数の部分空間に分割し、この分割された部分空間ごとに、当該部分空間を管理するサーバ（空間管理サーバ）を設置することがある。この場合、ユーザ端末に関連づけられる仮想空間内の位置（ユーザ位置）が、ある空間管理サーバによって管理される部分空間の内部から別の空間管理サーバによって管理される部分空間の内部に遷移する場合、ユーザ端末はこれまでユーザ位置が属していた部分空間を管理する空間管理サーバとの通信接続を終了し、遷移後の部分空間を管理する空間管理サーバとの間で新たに通信接続を確立する必要がある。このような通信接続の切り替えが実行されている間、ユーザ端末は仮想空間に対するユーザの操作を行うことができなくなってしまい、ユーザを待たせてしまうことがあった。【０００５】
また、上述した仮想空間管理システムでは、ユーザ端末側において送受信可能な通信帯域などのネットワーク環境条件によっては、仮想空間管理システム側で送信したいデータの全てを所定時間内に送信しきれないことがある。そのため、仮想空間管理システムが単にユーザ端末側で受信可能な量のデータを順次送信するだけでは、仮想空間内で発生するイベント等の進行によって、送信する必要がなくなってからデータを送信してしまったり、送信すべきデータを送信すべきタイミングで送信できなかったりする事態が生じうる。【０００６】
本発明は上記実情を考慮してなされたものであって、その目的の一つは、ユーザの操作を中断させることなく、ユーザ位置が属する部分空間の遷移処理を行うことのできる仮想空間管理システム、通信制御サーバ、その制御方法、プログラム、及び情報記憶媒体を提供することにある。【０００７】
また、本発明の別の目的は、ユーザ端末のネットワーク環境に応じて、送信すべきデータを送信することのできる仮想空間管理システム、空間管理サーバ、その制御方法、プログラム、及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００８】
本発明に係る仮想空間管理システムは、一つの仮想空間を分割してなる複数の部分空間のそれぞれを管理する複数の空間管理サーバと、前記複数の空間管理サーバのいずれかとユーザ端末との間の通信を中継する通信制御サーバと、を含む仮想空間管理システムであって、前記各空間管理サーバは、前記ユーザ端末に関連づけられる前記仮想空間内の位置が、他の空間管理サーバによって管理される部分空間の内部から、当該空間管理サーバによって管理される部分空間の内部に遷移する場合に、当該遷移に係る処理を行うユーザ遷移制御手段を備え、前記通信制御サーバは、前記遷移に係る処理が実行されている間、前記ユーザ端末との間の通信接続を維持するとともに、前記遷移に応じて、当該ユーザ端末から受信したデータの送信先を、当該遷移後の部分空間を管理する空間管理サーバに変更する接続先管理手段を備えることを特徴とする。【０００９】
上記仮想空間管理システムにおいて、前記ユーザ遷移制御手段は、前記遷移に係る処理の完了を前記通信制御サーバに通知し、前記接続先管理手段は、前記遷移の完了の通知を受け付けた場合に、前記ユーザ端末から受信したデータの送信先を、当該通知を行った空間管理サーバに変更することとしてもよい。【００１０】
また、上記仮想空間管理システムにおいて、前記通信制御サーバは、前記遷移に係る処理が実行されている間、前記遷移前の部分空間を管理する空間管理サーバ、及び前記遷移後の部分空間を管理する空間管理サーバのそれぞれとの間の通信接続を維持することとしてもよい。【００１１】
また、上記仮想空間管理システムにおいて、前記ユーザ遷移制御手段は、前記ユーザ端末に関連づけられる前記仮想空間内の位置が、当該空間管理サーバによって管理される部分空間の内部から、他の空間管理サーバによって管理される部分空間の内部に遷移する場合に、当該遷移の開始を前記通信制御サーバに通知し、前記接続先管理手段は、前記遷移の開始の通知を受け付けてから、前記遷移の完了の通知を受け付けるまでの間、前記ユーザ端末から受信した情報をバッファリングし、前記遷移の完了の通知を受け付けた後、当該通知を行った空間管理サーバに対して当該バッファリングした情報を送信することとしてもよい。【００１２】
さらに、上記仮想空間管理システムにおいて、前記接続先管理手段は、前記ユーザ端末に関連づけられる前記仮想空間内の位置が属する部分空間を管理する空間管理サーバを特定する情報を接続先情報として保持し、前記遷移の完了の通知を受け付けた場合に、当該接続先情報を、当該通知を行った空間管理サーバを特定する情報に更新し、前記通信制御サーバは、前記接続先情報を参照して、前記ユーザ端末から受信したデータの送信先を決定することとしてもよい。【００１３】
また、本発明に係る通信制御サーバは、一つの仮想空間を分割してなる複数の部分空間のそれぞれを管理する複数の空間管理サーバのいずれかと、ユーザ端末と、の間の通信を中継する通信制御サーバであって、前記ユーザ端末に関連づけられる前記仮想空間内の位置が、一の空間管理サーバによって管理される部分空間の内部から、他の空間管理サーバによって管理される部分空間の内部に遷移する場合に、当該遷移に係る処理が前記他の空間管理サーバによって実行されている間、前記ユーザ端末との間の通信接続を維持するとともに、前記遷移に応じて、当該ユーザ端末から受信したデータの送信先を、前記他の空間管理サーバに変更する接続先管理手段を備えることを特徴とする。【００１４】
また、本発明に係る通信制御サーバの制御方法は、一つの仮想空間を分割してなる複数の部分空間のそれぞれを管理する複数の空間管理サーバのいずれかと、ユーザ端末と、の間の通信を中継する通信制御サーバの制御方法であって、前記ユーザ端末に関連づけられる前記仮想空間内の位置が、一の空間管理サーバによって管理される部分空間の内部から、他の空間管理サーバによって管理される部分空間の内部に遷移する場合に、当該遷移に係る処理が前記他の空間管理サーバによって実行されている間、前記ユーザ端末との間の通信接続を維持するとともに、前記遷移に応じて、当該ユーザ端末から受信したデータの送信先を、前記他の空間管理サーバに変更するステップを含むことを特徴とする。【００１５】
また、本発明に係るプログラムは、一つの仮想空間を分割してなる複数の部分空間のそれぞれを管理する複数の空間管理サーバのいずれかと、ユーザ端末と、の間の通信を中継する通信制御サーバを、前記ユーザ端末に関連づけられる前記仮想空間内の位置が、一の空間管理サーバによって管理される部分空間の内部から、他の空間管理サーバによって管理される部分空間の内部に遷移する場合に、当該遷移に係る処理が前記他の空間管理サーバによって実行されている間、前記ユーザ端末との間の通信接続を維持するとともに、前記遷移に応じて、当該ユーザ端末から受信したデータの送信先を、前記他の空間管理サーバに変更する接続先管理手段、として機能させるためのプログラムである。このプログラムは、コンピュータ読み取り可能な情報記憶媒体に格納されてよい。【００１６】
また、本発明に係る別の仮想空間システムは、仮想空間を管理する空間管理サーバと、前記空間管理サーバとユーザ端末との間の通信を中継する通信制御サーバと、を含む仮想空間管理システムであって、前記空間管理サーバは、前記ユーザ端末に送信すべき、前記仮想空間に関する複数のイベント情報を、当該各イベント情報の送信順序が特定される態様で待機バッファに格納するイベント情報格納手段と、前記待機バッファに格納された複数のイベント情報を、順に読み出して前記通信制御サーバに対して出力するイベント情報出力手段と、前記待機バッファに格納された情報を変更するバッファ情報変更手段と、を備え、前記通信制御サーバは、前記イベント情報出力手段が出力するイベント情報を、順に前記ユーザ端末に対して送信し、前記イベント情報出力手段は、前記通信制御サーバが前記ユーザ端末に対して単位時間あたりに送信可能なデータ量に応じて、前記通信制御サーバに対して単位時間あたりに出力するデータ量を異ならせることを特徴とする。【００１７】
上記仮想空間管理システムにおいて、前記イベント情報出力手段は、前記通信制御サーバが過去に前記ユーザ端末に対して単位時間あたりに送信したデータ量に応じて、前記通信制御サーバに対して単位時間あたりに出力するデータ量を変化させることとしてもよい。【００１８】
また、上記仮想空間管理システムにおいて、前記イベント情報出力手段は、前記通信制御サーバに保持されている送信待ちのイベント情報のデータ量に応じて、前記通信制御サーバに対して単位時間あたりに出力するデータ量を補正することとしてもよい。【００１９】
また、上記仮想空間管理システムにおいて、前記イベント情報格納手段は、前記複数のイベント情報のそれぞれにアプリケーション実行手段が指定する優先度情報を関連づけて前記待機バッファに格納し、前記バッファ情報変更手段は、前記アプリケーション実行手段によって書き換えられる前記優先度情報に応じて、前記各イベント情報の送信順序を変更することとしてもよい。【００２０】
さらに、上記仮想空間管理システムにおいて、前記イベント情報格納手段は、所定の条件を満たすイベント情報については、前記待機バッファに格納せずに、前記通信制御サーバに対して出力することとしてもよい。【００２１】
また、本発明に係る空間管理サーバは、仮想空間を管理し、ユーザ端末との間の通信を中継する通信制御サーバに接続される空間管理サーバであって、前記ユーザ端末に送信すべき、前記仮想空間に関する複数のイベント情報を、当該各イベント情報の送信順序が特定される態様で待機バッファに格納するイベント情報格納手段と、前記待機バッファに格納された複数のイベント情報を、順に読み出して前記通信制御サーバに対して出力するイベント情報出力手段と、前記待機バッファに格納された情報を変更するバッファ情報変更手段と、を備え、前記イベント情報出力手段は、前記通信制御サーバが前記ユーザ端末に対して単位時間あたりに送信可能なデータ量に応じて、前記通信制御サーバに対して単位時間あたりに出力するデータ量を異ならせることを特徴とする。【００２２】
また、本発明に係る空間管理サーバの制御方法は、仮想空間を管理し、ユーザ端末との間の通信を中継する通信制御サーバに接続される空間管理サーバの制御方法であって、前記ユーザ端末に送信すべき、前記仮想空間に関する複数のイベント情報を、当該各イベント情報の送信順序が特定される態様で待機バッファに格納するイベント情報格納ステップと、前記待機バッファに格納された複数のイベント情報を、順に読み出して前記通信制御サーバに対して出力するイベント情報出力ステップと、前記待機バッファに格納された情報を変更するバッファ情報変更ステップと、を備え、前記イベント情報出力ステップでは、前記通信制御サーバが前記ユーザ端末に対して単位時間あたりに送信可能なデータ量に応じて、前記通信制御サーバに対して単位時間あたりに出力するデータ量を異ならせることを特徴とする。【００２３】
また、本発明に係る別のプログラムは、仮想空間を管理し、ユーザ端末との間の通信を中継する通信制御サーバに接続される空間管理サーバを、前記ユーザ端末に送信すべき、前記仮想空間に関する複数のイベント情報を、当該各イベント情報の送信順序が特定される態様で待機バッファに格納するイベント情報格納手段、前記待機バッファに格納された複数のイベント情報を、順に読み出して前記通信制御サーバに対して出力するイベント情報出力手段、及び前記待機バッファに格納された情報を変更するバッファ情報変更手段、として機能させ、前記イベント情報出力手段は、前記通信制御サーバが前記ユーザ端末に対して単位時間あたりに送信可能なデータ量に応じて、前記通信制御サーバに対して単位時間あたりに出力するデータ量を異ならせることを特徴とする。このプログラムは、コンピュータ読み取り可能な情報記憶媒体に記憶されてよい。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施の形態に係る仮想空間管理システムの全体概要を示す概要図である。
【図２】本発明の実施の形態に係る仮想空間管理システムによって管理される仮想空間の概念図である。
【図３】本発明の実施の形態に係る仮想空間管理システムによって実現される機能例を示す機能ブロック図である。
【図４】イベント情報管理部の機能例を示す機能ブロック図である。
【図５】待機バッファの一例を示す図である。
【図６】イベント情報の送信先となる周辺範囲を示す説明図である。
【図７】送信待ちキューの一例を示す図である。
【図８】ユーザオブジェクトの遷移時に実行される処理の一例を示すフロー図である。
【図９】接続先管理テーブルの一例を示す図である。
【図１０】通信帯域管理テーブルの一例を示す図である。
【発明を実施するための形態】
【００２５】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
【００２６】
本実施形態に係る仮想空間管理システムは、１又は複数の仮想空間を管理している。この仮想空間は、例えば多人数参加型のオンラインゲームを実現する空間であり、２次元や３次元の空間であってよい。仮想空間管理システムのユーザは、それぞれ自分自身の所持するユーザ端末を操作して、インターネット等の通信ネットワークを介して本実施形態に係る仮想空間管理システムにアクセスすることによって、この仮想空間の一つに参加する。具体的に、ユーザが仮想空間に参加することによって、当該ユーザが使用するユーザ端末に関連づけられる位置（以下、ユーザ位置という）が仮想空間内に設定される。例えばこのユーザ位置は、ユーザに対応づけられたオブジェクト（ユーザオブジェクト）の配置位置であってもよいし、ユーザ端末に仮想空間内の様子を示す画像を表示させるために仮想空間内に設定される視点位置であってもよい。本実施形態に係る仮想空間管理システムは、ユーザのユーザ端末に対する指示操作によって仮想空間内におけるユーザ位置を移動させたり、仮想空間内で発生する様々なイベントに関する情報をユーザ端末に送信することによって、仮想空間内の様子を示す画像や音声をユーザに提示したりする。これにより、ユーザは、仮想空間によって実現されるゲームをプレイしたり、仮想空間内で発生する様々な出来事を体験したりすることができる。
【００２７】
図１は、本実施形態に係る仮想空間管理システム１の全体概要を示す概要図である。同図に示されるように、仮想空間管理システム１は、システムログイン管理サーバ２と、空間ログイン管理サーバ３と、複数の通信制御サーバ４と、複数の空間管理サーバ５と、を含んで構成される。これらの各サーバは、いずれもサーバコンピュータ等の情報処理装置によって構成され、互いに通信ネットワークを介して接続されている。また、仮想空間管理システム１には、インターネット等の通信ネットワークを介して、仮想空間管理システム１のユーザがそれぞれ使用する複数のユーザ端末６が接続される。ユーザ端末６は、例えば家庭用ゲーム機やパーソナルコンピュータ等の情報処理装置である。なお、本実施形態では、各通信制御サーバ４と各空間管理サーバ５とは、例えばセンタ内ＬＡＮ等の、各ユーザ端末６と各通信制御サーバ４とを接続する通信ネットワークより通信帯域の大きな通信ネットワークによって接続されていることとする。
【００２８】
システムログイン管理サーバ２は、仮想空間管理システム１全体のログイン管理を行う。ユーザが仮想空間管理システム１の利用を開始する場合、まずユーザ端末６を操作してシステムログイン管理サーバ２にアクセスし、システムログイン管理サーバ２によるユーザ認証を受ける。
【００２９】
空間ログイン管理サーバ３は、仮想空間管理システム１によって管理される仮想空間ごとに設置され、対応する仮想空間へのユーザの参加（ログイン）を管理する。図１においては、仮想空間管理システム１によって管理される仮想空間は一つであって、空間ログイン管理サーバ３も一つだけであることとしている。しかしながら、仮想空間管理システム１は、複数の仮想空間を管理可能に構成されてもよい。その場合には、個々の仮想空間に対して、１つの空間ログイン管理サーバ３、１又は複数の通信制御サーバ４、及び１又は複数の空間管理サーバ５が設置される。
【００３０】
システムログイン管理サーバ２によるユーザ認証を受けたユーザは、仮想空間管理システム１によって管理される１又は複数の仮想空間の中から、自分がこれから参加する仮想空間を選択する。この選択に応じて、当該ユーザが使用するユーザ端末６は、選択された仮想空間に対応する空間ログイン管理サーバ３に対して、仮想空間への参加要求を送信する。空間ログイン管理サーバ３は、参加要求を行ったユーザを認証して参加の可否を判定し、その結果をユーザ端末６に通知する。
【００３１】
通信制御サーバ４は、仮想空間管理システム１によって管理される仮想空間のいずれかと関連づけられており、当該関連づけられた仮想空間に参加中のユーザが使用するユーザ端末６との間の通信を制御する。具体的に、通信制御サーバ４は、対応する仮想空間に参加中のユーザ端末６との間で通信接続を確立し、当該ユーザ端末６と、当該ユーザ端末６が参加する仮想空間を管理する空間管理サーバ５と、の間の通信を中継する。通信制御サーバ４には、同じ仮想空間に参加する複数のユーザ端末６が通信接続可能になっている。また、通信制御サーバ４は、対応する仮想空間を管理する１又は複数の空間管理サーバ５のそれぞれと通信接続される。
【００３２】
前述した空間ログイン管理サーバ３は、ユーザ端末６からの参加要求を許可する場合には、当該ユーザ端末６に対して、参加要求のあった仮想空間に対応する通信制御サーバ４の一つを特定する情報を通知する。なお、当該仮想空間に対応する通信制御サーバ４が複数ある場合には、空間ログイン管理サーバ３は、各通信制御サーバ４に割り当てられているユーザ端末６の数を管理しておき、現在割り当てられているユーザ端末６の数が少ない（すなわち、他の通信制御サーバ４と比較して処理負荷の少ない）通信制御サーバ４を特定する情報を、新たに参加要求を行ったユーザ端末６に対して通知することとする。
【００３３】
この通知に応じて、ユーザ端末６は、通知された情報によって特定される通信制御サーバ４に対して接続要求を行い、当該通信制御サーバ４との間で通信接続を確立する。すなわち、ユーザ端末６及び通信制御サーバ４の両者が、互いに相手方を通信先として特定し、常時両者の間でデータの送受信が可能な状態を維持するための初期処理（セッション開始処理）を実行する。通信接続が確立した後は、ユーザ端末６が当該仮想空間に参加している間、当該ユーザ端末６と通信制御サーバ４との間の通信接続が維持され、ユーザ端末６は通信制御サーバ４を介して自分自身が参加する仮想空間を管理する空間管理サーバ５との間の通信を行う。
【００３４】
空間管理サーバ５は、仮想空間管理システム１によって管理される仮想空間のいずれかと関連づけられており、当該関連づけられた仮想空間の管理を行う。一つの仮想空間に対応する空間管理サーバ５が複数ある場合には、各空間管理サーバ５は、一つの仮想空間を分割してなる複数の部分空間のいずれかを管理する。具体的に、本実施形態では、仮想空間管理システム１の管理対象となる一つの仮想空間が複数の部分空間に分割され、この部分空間のそれぞれに対して、当該部分空間内に配置されるオブジェクトや当該部分空間内で発生するイベントを管理する空間管理サーバ５が割り当てられる。空間管理サーバ５は、担当する部分空間内の各オブジェクトの挙動を管理し、当該部分空間内で発生する各種のイベント（オブジェクト同士の相互作用や、参加中のユーザからの指示などによって仮想空間内に生じる各種の事象）に関する処理を実行する。
【００３５】
図２は、仮想空間管理システム１によって管理される仮想空間Ｖの概念図である。この図の例では、仮想空間Ｖは、４つの部分空間Ｖｐａ、Ｖｐｂ、Ｖｐｃ及びＶｐｄに分割されており、仮想空間Ｖに参加している各ユーザに対応するユーザオブジェクトが、４つの部分空間Ｖｐのいずれかに配置されている。以下では、部分空間Ｖｐａ、Ｖｐｂ、Ｖｐｃ及びＶｐｄのそれぞれを管理する空間管理サーバ５を、空間管理サーバ５ａ、５ｂ、５ｃ及び５ｄと表記する。また、当該仮想空間Ｖに参加しているユーザをユーザＵａ、Ｕｂ、Ｕｃ、Ｕｄ及びＵｅと表記し、これらユーザＵのそれぞれが使用するユーザ端末６をユーザ端末６ａ、６ｂ、６ｃ、６ｄ及び６ｅと表記する。さらに、これらユーザのそれぞれに対応するユーザオブジェクトを、ユーザオブジェクトＯａ、Ｏｂ、Ｏｃ、Ｏｄ及びＯｅと表記する。本実施形態では、これらユーザオブジェクトＯの仮想空間Ｖ内における配置位置が、各ユーザ端末６に関連づけられるユーザ位置に相当する。また、ユーザ端末６ａ、６ｂ及び６ｃは通信制御サーバ４ａと、ユーザ端末６ｄ及び６ｅは通信制御サーバ４ｂと、それぞれ通信接続されることとする。
【００３６】
以下、ユーザＵが仮想空間Ｖに参加中に、本実施形態に係る仮想空間管理システム１によって実現される機能の具体例について、説明する。
【００３７】
まず、仮想空間管理システム１によって実行される処理の全体概要を説明する。仮想空間Ｖへの参加中、ユーザＵがユーザ端末６に対する指示操作を行うと、ユーザ端末６は、当該指示操作の内容に応じた情報（以下、ユーザメッセージという）を通信接続された通信制御サーバ４に対して送信する。例えばユーザメッセージは、ユーザオブジェクトＯの現在の座標値や移動方向、移動速度などを指示する情報であってもよいし、ユーザオブジェクトＯに対して各種の動作を指示する情報であってもよい。各通信制御サーバ４は、ユーザ端末６から送信されるユーザメッセージを、当該ユーザ端末６に対応するユーザオブジェクトＯが属する部分空間Ｖｐを管理する空間管理サーバ５に対して送信する。空間管理サーバ５は、自分自身が管理する部分空間Ｖｐに存在する各ユーザオブジェクトＯに関連づけられたユーザ端末６から送信されてくるユーザメッセージや、自分自身が管理している部分空間Ｖｐ内に配置された各オブジェクトの挙動を演算して得られる情報などに基づいて、当該各ユーザ端末６に対して通知すべきイベント情報を出力する。空間管理サーバ５が出力したイベント情報は、通信制御サーバ４を介して、各ユーザ端末６に送信される。イベント情報を受信したユーザ端末６は、当該イベント情報の内容に応じて、モニタに表示される画像を更新したり、スピーカから音声を再生したりする。このような処理が継続的に実行されることによって、各ユーザＵは仮想空間Ｖ内のユーザオブジェクトＯを操作し、仮想空間Ｖ内で発生する各種のイベントを体験することができる。
【００３８】
図３は、本実施形態に係る仮想空間管理システム１が実現する機能の具体例を示す機能ブロック図である。同図に示されるように、空間管理サーバ５は、機能的に、アプリケーション実行部１１と、イベント情報管理部１２と、ユーザ遷移制御部１３と、通信処理部１４と、を含んで構成される。通信制御サーバ４は、機能的に、接続先管理部２１と、データ中継処理部２２と、通信状況管理部２３と、を含んで構成される。また、ユーザ端末６は、機能的に、ユーザメッセージ送出部３１と、空間情報提示部３２と、を含んで構成される。これらの機能はいずれも、空間管理サーバ５、通信制御サーバ４、及びユーザ端末６の各装置が備える制御部（マイクロプロセッサ等のプログラム制御デバイス）が、記憶部（例えばＲＡＭ等のメモリ素子）に格納されたプログラムを実行することによって実現される。なお、これらのプログラムは、インターネット等の通信ネットワークを介して各装置に提供されてもよいし、光ディスク等のコンピュータ読み取り可能な各種の情報記憶媒体に格納されて提供されてもよい。
【００３９】
空間管理サーバ５のアプリケーション実行部１１は、仮想空間Ｖを実現するゲームアプリケーションプログラムなどを制御部が実行することによって、実現される。このアプリケーション実行部１１が実行する処理内容によって、空間管理サーバ５が管理する部分空間Ｖｐ内にどのようなオブジェクトが配置され、当該部分空間Ｖｐ内でどのようなイベントが発生するかが規定される。
【００４０】
具体的に、アプリケーション実行部１１は、後述するユーザメッセージ送出部３１によって各ユーザ端末６から送出されるユーザメッセージを受領する。そして、受領したユーザメッセージや、予め定められた各種のイベント条件などに基づいて、部分空間Ｖｐ内に配置される各オブジェクトの状態（各オブジェクトの部分空間内における位置や向き、移動速度や移動方向、その他のパラメタなど）の変化を決定する。単位時間ごとにこのような各オブジェクトの状態の変化が生じることによって、時間とともに部分空間Ｖｐ内で各オブジェクトが様々な挙動を示すことになる。このような状態変化を決定する対象となるオブジェクトには、ユーザオブジェクトＯだけでなく、その他のキャラクタオブジェクトなどが含まれてもよい。また、各オブジェクトの状態の変化を決定する際には、予め定められた決定条件を用いてもよいし、物理シミュレーションなどを実行した結果を用いてもよい。
【００４１】
さらに、アプリケーション実行部１１は、上述した各オブジェクトの状態の変化や、その他部分空間Ｖｐ内で生じる各種の事象を示すイベント情報を、イベント情報管理部１２に対して出力する。このイベント情報は、空間管理サーバ５がユーザ端末６に送信すべき部分空間Ｖｐに関する各種の情報である。なお、アプリケーション実行部１１は、当該イベント情報の通知先として、特定のユーザ端末６を指定してもよいし、当該イベント情報の発生場所（状態変化のあったオブジェクトの位置など）及びその周辺を含む所定範囲（以下、周辺範囲という）を指定してもよい。
【００４２】
空間管理サーバ５のイベント情報管理部１２は、アプリケーション実行部１１から出力されるイベント情報の管理を行う。本実施形態では、イベント情報管理部１２は、図４に示すように、機能的に、イベント情報格納部１２ａと、イベント情報出力部１２ｂと、バッファ情報変更部１２ｃと、を含んで構成されている。
【００４３】
イベント情報格納部１２ａは、アプリケーション実行部１１が出力する複数のイベント情報を、当該各イベント情報の送信順序が特定される態様で、記憶部内に確保された所定のバッファ領域（以下、待機バッファという）に格納する。このとき、各イベント情報の送信順序は、アプリケーション実行部１１によって規定される。具体例として、イベント情報はアプリケーション実行部１１が出力した順に待機バッファに格納され、この格納された順序によって各イベント情報の送信順序が特定されることとしてもよい。また、アプリケーション実行部１１は、イベント情報の送信順序がイベント情報格納部１２ａに対する出力順と異なる順序となるように、イベント情報に対して送信順序を規定する情報を付与して出力してもよい。この場合の具体例については、後述する。この待機バッファは、イベント情報の送信先となるユーザ端末６ごとに確保されており、イベント情報管理部１２は、各イベント情報を、その送信先のユーザ端末６に関連づけられた待機バッファに格納する。図５は、このような待機バッファの一例を示しており、この図においてはユーザ端末６ごとの待機バッファに格納された個々のイベント情報が丸印によって表されている。
【００４４】
イベント情報の通知先としてアプリケーション実行部１１がイベント発生場所の周辺範囲を指定した場合、イベント情報管理部１２は、以下のようにして当該イベント情報の通知先を特定する。すなわち、各空間管理サーバ５によって管理される部分空間Ｖｐは、所定の単位領域（以下、グリッドという）にさらに分割されており、イベント情報管理部１２は、部分空間Ｖｐ内に存在する各ユーザオブジェクトＯがどのグリッド内に属しているかを管理している。そして、周辺範囲に送信すべきイベント情報を受領した場合には、当該イベント情報の発生場所が属するグリッド及び当該グリッドに隣接する周囲のグリッドの内部に、ユーザオブジェクトＯが存在するかを判定する。ユーザオブジェクトＯが存在すれば、当該ユーザオブジェクトＯに関連づけられたユーザ端末６を、このイベント情報の送信先として決定する。
【００４５】
図６は、このようなイベント情報の送信先となる周辺範囲を示す説明図である。この図の例では、破線が各グリッドの境界を示しており、部分空間Ｖｐａが５行５列の計２５個のグリッドに分割されている。ここで、アプリケーション実行部１１がユーザオブジェクトＯａの状態の変化を示すイベント情報を、周辺範囲を通知先として指定して発行したとする。このとき、当該イベント情報の通知先となる周辺範囲は、図中において斜線で示した３行３列の計９グリッドである。この周辺範囲内には、ユーザオブジェクトＯａのほか、ユーザオブジェクトＯｂ及びユーザオブジェクトＯｃが存在している。したがって、イベント情報管理部１２は、ユーザ端末６ａ、６ｂ及び６ｃを当該イベント情報の通知先として決定し、各ユーザ端末６に関連づけられた待機バッファのそれぞれに、当該イベント情報を格納する。一方、ユーザオブジェクトＯｄは周辺範囲内に含まれていないので、イベント情報の通知先にならない。このようにイベント情報管理部１２が周辺範囲に属するユーザオブジェクトＯをイベント情報の通知対象として特定することにより、アプリケーション実行部１１は、個々のイベント情報の通知先を個別に指定することなく、単に周辺範囲へのイベント情報通知を指示するだけで、当該イベント情報の影響を受ける可能性のあるユーザ端末６にだけイベント情報を通知することができる。
【００４６】
なお、イベント情報の発生場所が部分空間Ｖｐの端に位置するグリッドの場合、当該グリッドの周辺範囲には、隣接する別の部分空間Ｖｐに属するグリッドも含まれる。このような場合、イベント情報管理部１２は、隣接する別の部分空間Ｖｐを管理する空間管理サーバ５に対しても、イベント情報を通知する。当該イベント情報を受領した別の空間管理サーバ５のイベント情報管理部１２は、通知されたイベント情報の発生場所に隣接するグリッド内にユーザオブジェクトＯが存在するか判定し、存在している場合、当該ユーザオブジェクトＯに関連づけられたユーザ端末６の待機バッファに、この通知されたイベント情報を格納する。
【００４７】
イベント情報出力部１２ｂは、イベント情報格納部１２ａによって待機バッファに格納された複数のイベント情報を、規定された送信順序に従って順に読み出し、所定の送信待ちキューに書き込む。なお、当該送信待ちキュー内に書き込まれたイベント情報は、待機バッファからは削除される。この送信待ちキューは、待機バッファとは異なり、イベント情報の現実の送信先となる通信制御サーバ４ごとに記憶部内に確保される。そのため、イベント情報出力部１２ｂは、記憶部内に記憶されているユーザ端末６と通信制御サーバ４との対応関係を示すテーブルを参照して、各ユーザ端末６と接続されている通信制御サーバ４がどれかを特定する。そして、各ユーザ端末６に関連づけられたイベント情報を、当該ユーザ端末６と接続された通信制御サーバ４に関連づけられた送信待ちキューに格納する。図７は、このような送信待ちキューの一例を示す図であって、図５と同様にキュー内に格納された個々のイベント情報が丸印によって表されている。
【００４８】
バッファ情報変更部１２ｃは、アプリケーション実行部１１からの要求に応じて、待機バッファに格納された情報を変更する。これにより、送信待ちキューに格納される前のイベント情報を、場合によって削除又は更新したり、各イベント情報の送信順序を見直したりすることが可能になる。
【００４９】
空間管理サーバ５のユーザ遷移制御部１３は、仮想空間Ｖ内におけるユーザオブジェクトＯの位置が、ある一つの部分空間Ｖｐ内から、他の部分空間Ｖｐ内に遷移する場合に、当該遷移に係る処理を実行する。具体的に、ユーザ遷移制御部１３は、ユーザオブジェクトＯがユーザの指示等によって自分自身の管理する部分空間Ｖｐから他の空間管理サーバ５によって管理される部分空間Ｖｐに移動する場合、ユーザオブジェクトＯに関する情報を当該他の空間管理サーバ５に移送する処理を行う。また、他の空間管理サーバ５によって管理される部分空間Ｖｐから自分自身の管理する部分空間ＶｐにユーザオブジェクトＯが進入する場合に、当該他の空間管理サーバ５から新たに入ってくるユーザオブジェクトＯに関する情報を受け入れるユーザオブジェクト受け入れ処理を行う。
【００５０】
空間管理サーバ５の通信処理部１４は、通信制御サーバ４との間でデータの送受信を行う。具体的に、通信処理部１４は、各通信制御サーバ４から送信されるユーザメッセージを、アプリケーション実行部１１に対して出力する。また、通信制御部１４は、送信待ちキューを管理し、イベント情報出力部１２ｂによって送信待ちキューに書き込まれたイベント情報を、順次通信制御サーバ４に対して送信する。なお、送信待ちキューは既に通信待機状態にあるデータを保持する記憶領域なので、先入れ先出し方式によってデータが格納されており、通信処理部１４は、送信待ちキューに格納されたデータの更新や順序の変更は行わない。
【００５１】
通信制御サーバ４の接続先管理部２１は、当該通信制御サーバ４に対して通信接続を行っている各ユーザ端末６に関連づけられたユーザオブジェクトＯが、どの空間管理サーバ５によって管理される部分空間Ｖｐに属しているかを管理する。具体的に、接続先管理部２１は、当該通信制御サーバ４に接続している各ユーザ端末６と、当該ユーザ端末６に関連づけられたユーザオブジェクトＯが属する部分空間Ｖｐを管理する空間管理サーバ５（接続先の空間管理サーバ５）と、を関連づける接続先管理テーブルを生成し、ユーザ遷移制御部１３からの通知に応じて当該テーブルの情報を更新する。
【００５２】
通信制御サーバ４のデータ中継処理部２２は、ユーザ端末６と、当該ユーザ端末６に関連づけられるユーザオブジェクトＯが属する部分空間Ｖｐを管理する空間管理サーバ５と、の間のデータ送受信を中継する。具体的に、データ中継処理部２２は、通信制御サーバ４が通信接続しているユーザ端末６からユーザメッセージを受信した場合、当該ユーザ端末６に対応する空間管理サーバ５を接続先管理部２１が管理する情報を参照して特定し、空間管理サーバ５ごとに用意されたサーバ向け送信待ちキューのうち、当該特定した空間管理サーバ５に対応するサーバ向け送信待ちキューに受信したユーザメッセージを格納する。そして、サーバ向け送信待ちキューに格納されたユーザメッセージを、対応する空間管理サーバ５の通信処理部１４に対して順次送信する。
【００５３】
また、各空間管理サーバ５の通信処理部１４から通知先のユーザ端末６を特定したイベント情報を受信した場合、データ中継処理部２２は、当該受信したイベント情報を送信先のユーザ端末６ごとに用意されたユーザ端末向け送信待ちキューに格納する。そして、ユーザ端末向け送信待ちキューに格納されたイベント情報を、対応するユーザ端末６の空間情報提示部３２に対して順次送信する。
【００５４】
通信制御サーバ４の通信状況管理部２３は、データ中継処理部２２による各ユーザ端末６とのデータ送受信の状況をモニタし、得られる情報を空間管理サーバ５のイベント情報管理部１２に対して通知する。当該通知したデータ送受信の状況に関する情報は、イベント情報管理部１２内のイベント情報出力部１２ｂによる、イベント情報の出力処理の際に用いられる。
【００５５】
ユーザ端末６のユーザメッセージ送出部３１は、ユーザがユーザ端末６の操作デバイス等に対して実行する指示操作を受け付けて、当該指示操作に関する情報をユーザメッセージとして通信制御サーバ４のデータ中継処理部２２に対して出力する。また、ユーザ端末６の空間情報提示部３２は、通信制御サーバ４のデータ中継処理部２２から送信されるイベント情報を受信して、当該受信したイベント情報に応じて仮想空間Ｖ内の様子を示す画像を更新したり、スピーカから音声を再生したりする。
【００５６】
次に、上述した各部が実行する処理のいくつかの具体例について、説明する。
【００５７】
まず、ユーザオブジェクトＯの位置がある部分空間Ｖｐから他の部分空間Ｖｐに遷移する場合の処理について、図８のフロー図を用いて説明する。ここでは一例として、部分空間Ｖｐａ内に存在しているユーザオブジェクトＯａが、ユーザの指示によって部分空間Ｖｐｂ内に移動する場合の例について説明する。
【００５８】
部分空間Ｖｐａを管理する空間管理サーバ５ａのユーザ遷移制御部１３は、ユーザオブジェクトＯａが部分空間Ｖｐａから部分空間Ｖｐｂに移動する旨をアプリケーション実行部１１から通知されると、部分空間Ｖｐｂを管理する空間管理サーバ５ｂを特定し、当該空間管理サーバ５ｂと、ユーザ端末６ａが接続している通信制御サーバ４ａと、に対して、ユーザオブジェクトＯａの遷移開始を通知する（Ｓ１）。
【００５９】
Ｓ１による遷移開始の通知を受領した通信制御サーバ４ａの接続先管理部２１は、接続先管理テーブルにおいて、ユーザ端末６ａの接続先の空間管理サーバ５を示す情報を、「切り替え中」であることを示す情報に更新する（Ｓ２）。図９は、このような更新がなされた状態の接続先管理テーブルの一例を示す図である。
【００６０】
一方、Ｓ１による遷移開始の通知を受領した空間管理サーバ５ｂのユーザ遷移制御部１３は、当該遷移に係る処理として、ユーザオブジェクト受け入れ処理を実行する（Ｓ３）。ユーザオブジェクト受け入れ処理は、空間管理サーバ５ａのユーザ遷移制御部１３からユーザオブジェクトＯａに関する情報を受け入れて、部分空間Ｖｐｂ内にユーザオブジェクトＯａを配置し、ユーザ端末６ａとの間でユーザメッセージやイベント情報の送受信を可能にするための処理である。ここで、ユーザオブジェクト受け入れ処理において受け入れ対象となるユーザオブジェクトＯに関する情報には、当該ユーザオブジェクトＯに関連づけられたユーザを特定するユーザ特定情報（ユーザＩＤなど）、及び遷移後のユーザオブジェクトＯの仮想空間Ｖ内における位置を示す情報が含まれる。このユーザ特定情報によって、当該ユーザが利用するユーザ端末６やその接続先の通信制御サーバ４が特定される。また、受け入れ対象のユーザオブジェクトＯに関する情報には、ユーザオブジェクトＯの移動方向や移動速度などに関する情報が含まれてもよい。さらに、遷移前の空間管理サーバ５のユーザ遷移制御部１３は、アプリケーション実行部１１に問い合わせをすることによって、ユーザオブジェクトＯの種類や状態に関する各種の情報を取得し、当該取得した情報をユーザオブジェクトＯに関する情報の一部として遷移後の空間管理サーバ５に引き継いでもよい。
【００６１】
このユーザオブジェクト受け入れ処理が実行されている間、空間管理サーバ５ａのイベント情報管理部１２は、ユーザ端末６ａに通知すべきイベントが発生した場合（例えば、最後にユーザオブジェクトＯａが属していたグリッドの周辺でイベントが発生した場合）、当該イベント情報を通信制御サーバ４ａへの送信対象とはせずに、空間管理サーバ５ｂのイベント情報管理部１２へと転送する。空間管理サーバ５ｂのイベント情報格納部１２ａは、空間管理サーバ５ｂのアプリケーション実行部１１から出力されたイベント情報と同様に、当該転送されたイベント情報を待機バッファへと格納する。ただし、イベント情報出力部１２ｂは、Ｓ３のユーザオブジェクト受け入れ処理が完了するまでは、ユーザ端末６ａに対応する待機バッファに格納されたイベント情報については送信待ちキューへの出力対象とはせずに、待機バッファ内に保持させておく。
【００６２】
また、通信制御サーバ４ａのデータ中継処理部２２は、Ｓ３のユーザオブジェクト受け入れ処理が実行されている間にユーザ端末６ａのユーザメッセージ送出部３１からユーザメッセージを受信した場合、接続先管理テーブルにおいてユーザ端末６ａに関連づけられた情報が「切り替え中」になっているため、ユーザ端末６ａに関連づけて受信イベントバッファを確保して、当該受信したユーザメッセージをこの受信イベントバッファにバッファリングしておき、データの送信については保留することとする。図８において破線で示した処理フローは、このような処理が発生した場合を示している。
【００６３】
Ｓ３のユーザオブジェクト受け入れ処理が完了すると、空間管理サーバ５ｂのユーザ遷移制御部１３は、当該処理の完了（すなわち、ユーザ位置の遷移の完了）を通信制御サーバ４ａの接続先管理部２１に通知する（Ｓ４）。
【００６４】
Ｓ４の遷移完了の通知を受領した通信制御サーバ４ａの接続先管理部２１は、接続先管理テーブルにおいて、ユーザ端末６ａの接続先の空間管理サーバ５を示す情報を、当該通知を送信した空間管理サーバ５ｂを示す情報に更新する（Ｓ５）。これによって、ユーザオブジェクトＯａの部分空間Ｖｐａから部分空間Ｖｐｂへの遷移が完了し、これ以降、ユーザ端末６ａと空間管理サーバ５ｂとの間で、通信制御サーバ４ａを介してユーザメッセージやイベント情報の送受信が実行される。
【００６５】
なお、遷移が完了すると、まず通信制御サーバ４ａのデータ中継処理部２２は、ユーザオブジェクト受け入れ処理の実行中にユーザ端末６ａから受信して受信イベントバッファにバッファリングしていたユーザメッセージを、空間管理サーバ５ｂに対応するサーバ向け送信待ちキューに移送して、順に空間管理サーバ５ｂに対して送信する。また、空間管理サーバ５ｂのイベント情報出力部１２ｂは、ユーザオブジェクト受け入れ処理の実行中にイベント情報格納部１２ａが待機バッファ内に格納したユーザ端末６ａに送信すべきイベント情報を、通信制御サーバ４ａへの送信対象として送信待ちキューに出力する。
【００６６】
以上説明したユーザオブジェクトＯａの遷移に関する処理は、ユーザ端末６ａ−通信制御サーバ４ａ間、通信制御サーバ４ａ−空間管理サーバ５ａ間、及び通信制御サーバ４ａ−空間管理サーバ５ｂ間の全ての通信接続が維持されたままで、実行される。このような方法によれば、どの装置間でも通信接続の切断や再接続を行うことなくユーザオブジェクトＯの遷移が実現されるため、ユーザオブジェクトＯの遷移に要する時間を短縮することができる。また、各ユーザ端末６は、仮想空間Ｖに参加している間、常に一つの通信制御サーバ４とだけ通信接続を確立していれば、どの部分空間Ｖｐに移動したとしても、当該通信制御サーバ４の中継によって移動先の部分空間Ｖｐを管理する空間管理サーバ５との間でユーザメッセージやイベント情報を授受できる。
【００６７】
また、ユーザオブジェクトＯａの遷移実行中は、通信制御サーバ４ａがユーザメッセージをバッファリングするので、ユーザ端末６ａは、遷移実行中も遷移開始前と同様にユーザメッセージ送出部３１による処理を実行し、ユーザメッセージを送出し続けることができる。逆に、空間管理サーバ５ａ及び５ｂの双方においてユーザオブジェクトＯａの近傍で発生したイベント情報も、遷移実行中は空間管理サーバ５ｂの待機バッファ内にバッファリングされ、遷移完了後にユーザ端末６ａに送信される。これによって、遷移実行中に実行されたユーザ操作に関するユーザメッセージや、遷移実行中に仮想空間Ｖ内で発生したイベント情報が、消失してしまうことなく、それぞれ空間管理サーバ５ｂ及びユーザ端末６ａに送信される。ここで、前述したように、本実施形態ではユーザ端末６ａ−通信制御サーバ４ａ間の通信ネットワークの通信帯域よりも通信制御サーバ４ａ−空間管理サーバ５ｂ間の通信ネットワークの通信帯域の方が大きくなっている。そのため、遷移処理の実行中にもユーザ端末６ａから通信制御サーバ４ａへのユーザメッセージ送出を実行可能とすることで、比較的時間のかかる通信を遷移処理によって中断させないようにすることができる。すなわち、本実施形態によれば、通信制御サーバ４ａまでユーザメッセージが到達していれば、遷移処理が完了してから比較的短時間で通信制御サーバ４ａから空間管理サーバ５ａにユーザメッセージを送信できるので、遷移処理が完了してからユーザ端末６ａがユーザメッセージの送出を開始する場合と比較して、ユーザの指示操作から当該指示操作に係るユーザメッセージの空間管理サーバ５ａへの到達までのタイムラグを短くできる。
【００６８】
なお、以上では、ユーザオブジェクトＯａ自体が仮想空間Ｖ内を移動することによって、部分空間Ｖｐａから部分空間Ｖｐｂへの遷移が生じる場合の例について説明したが、これ以外の原因によってユーザオブジェクトＯの遷移が発生する場合にも、上述した処理と同様の処理を実行することとしてもよい。例えば本実施形態において、各空間管理サーバ５が管理する部分空間Ｖｐの範囲は、動的に変更可能としてもよい。すなわち、一つの部分空間Ｖｐ内にユーザオブジェクトＯが集中した場合などにおいて、ユーザ遷移制御部１３は、当該部分空間Ｖｐの一部を、グリッド単位で当該グリッド内に配置されたオブジェクトごと隣接する部分空間Ｖｐを管理する空間管理サーバ５に移管することとする。こうすれば、特定の空間管理サーバ５に負荷が集中しないように空間管理サーバ５同士で調整を行うことが可能となる。
【００６９】
この場合、各空間管理サーバ５は、他の空間管理サーバ５との間で負荷状況に関する情報を定期的に交換していることとする。そして、自分自身が管理する部分空間Ｖｐに属するユーザオブジェクトＯの数が所定数を超えるなどして、処理負荷が高くなると、隣接する他の部分空間Ｖｐを管理する空間管理サーバ５のうち、比較的処理負荷の低い空間管理サーバ５に対して、グリッド単位で部分空間Ｖｐの一部を移管する。このとき、空間管理サーバ５は、まず移管先の空間管理サーバ５に対して移管対象のグリッドに関する情報を送信し、続いて当該グリッド内に存在しているユーザオブジェクトＯのそれぞれについて、順次、上述したユーザオブジェクトＯの遷移処理を実行する。これによって、やはりユーザ端末６側の処理を中断させることなく、グリッドの移管処理を実行することができる。
【００７０】
次に、イベント情報管理部１２によるイベント情報管理の具体例について、説明する。
【００７１】
本実施形態では、イベント情報出力部１２ｂは、通信制御サーバ４とユーザ端末６との間の通信環境に応じて、送信待ちキューに出力することによって通信制御サーバ４に対して送信するイベント情報の単位時間あたりのデータ量を調整する。具体的には、イベント情報出力部１２ｂは、通信制御サーバ４がユーザ端末６に対して単位時間あたりに送信可能なデータ量に応じて、当該ユーザ端末６に対応する待機バッファから送信待ちキューに単位時間あたりに出力するデータ量を異ならせることとする。ここで、通信制御サーバ４がユーザ端末６に対して単位時間あたりに送信可能なデータ量は、例えば、通信制御サーバ４が各ユーザ端末６から取得する、各ユーザ端末６の通信帯域などのネットワーク環境に関する情報によって特定されてもよい。また、通信制御サーバ４が過去にユーザ端末６に対して単位時間あたりに送信したデータ量に応じて推定されることとしてもよい。この場合の具体例について、以下に説明する。
【００７２】
具体的に、通信制御サーバ４の通信状況管理部２３は、自分自身に接続されるユーザ端末６及び空間管理サーバ５のそれぞれについて、利用可能な最大通信帯域（単位時間あたりに送受信可能な最大データ量）を定期的に計測する。また、定期的に、直近の過去所定期間における実際の使用通信帯域（実際に送受信した単位時間あたりのデータ量）を計測する。これらの情報は、例えば数秒から数分おきに計測され、空間管理サーバ５のイベント情報出力部１２ｂに対して通知される。なお、ユーザ端末６に対する最大通信帯域や使用通信帯域については、当該ユーザ端末６の接続先として接続先管理テーブルに記録されている空間管理サーバ５に対して通知することとする。これにより、各空間管理サーバ５のイベント情報出力部１２ｂは、図１０に例示するような通信帯域管理テーブルに格納すべき情報を定期的に取得し、記録する。
【００７３】
イベント情報出力部１２ｂは、この通信帯域管理テーブルに格納された情報を参照して、待機バッファから読み出して送信待ちキューに単位時間あたりに出力するデータ量を決定する。すなわち、使用通信帯域の数値が大きなユーザ端末６については、大量のデータを送信できていることになるので、この数値に応じて単位時間あたりに送信待ちキューに移送するデータ量を増加させる。ただし、データ量を増加させる場合であっても、最大通信帯域の数値を超える量のデータを送信することはできないので、最大通信帯域の数値を上限としてデータ量を増加させていく。一方、使用通信帯域の数値が小さなユーザ端末６については、送信可能なデータ量が限られた状態にあることになるので、この数値に応じて単位時間あたりに送信待ちキューに移送するデータ量を減少させる。
【００７４】
さらに、イベント情報出力部１２ｂは、通信制御サーバ４のユーザ端末向け送信待ちキューに残っているデータ量に応じて、待機バッファから送信待ちキューに移送するイベント情報のデータ量を補正することとしてもよい。この場合、通信制御サーバ４の通信状況管理部２３は、データ中継処理部２２が１回の送信サイクルの処理（接続された全てのユーザ端末６に対して、ユーザ端末向け送信待ちキューに格納されたイベント情報のうち、送信可能な分量のイベント情報を送信する処理）を実行するごとに、ユーザ端末６に送信しきれずにユーザ端末向け送信待ちキューに残ったイベント情報のデータ量を計測する。そして、ユーザ端末向け送信待ちキューが空になっている場合、当該ユーザ端末６に対する送信データ量を増加させる要求をイベント情報出力部１２ｂに対して出力する。これに応じて、イベント情報出力部１２ｂは、通信帯域管理テーブル内の使用通信帯域の数値を増加させる補正を行い、当該補正された数値に基づいて待機バッファから送信待ちキューへのイベント情報の移送を行う。この場合にも、補正後の数値が最大通信帯域の数値は超えないように制限することとする。また、通信状況管理部２３は、ユーザ端末向け送信待ちキューに所定量以上のデータが残っている場合、当該ユーザ端末６に対する送信データ量を減少させる要求をイベント情報出力部１２ｂに対して出力する。これに応じて、イベント情報出力部１２ｂは、通信帯域管理テーブル内の使用通信帯域の数値を減少させる補正を行い、当該補正された数値に基づいて待機バッファから送信待ちキューへのイベント情報の移送を行う。
【００７５】
以上説明したような制御が実行されることによって、通信制御サーバ４から各ユーザ端末６に対して過去に送信されたデータ量に応じて空間管理サーバ５から通信制御サーバ４に送信されるイベント情報のデータ量が調整される。これによって、通信制御サーバ４のユーザ端末向け送信待ちキュー内が空にならず、かつ、ユーザ端末６に対してデータを送信しきれずにユーザ端末向け送信待ちキュー内に大量のデータが残らないように、ユーザ端末向け送信待ちキューの状態を制御することができる。本実施形態では、既に述べたように、バッファ情報変更部１２ｃによって待機バッファ内のデータが更新可能になっている。具体的に、例えばバッファ情報変更部１２ｃは、アプリケーション実行部１１が実行する処理の進行に伴ってユーザ端末６への送信が不要になってしまったイベント情報を、待機バッファ内から削除する。そのため、通信制御サーバ４に送信したとしてもユーザ端末６に送信しきれずに送信待ちのまま通信制御サーバ４内にある程度の時間滞留してしまうと予測されるイベント情報については、ユーザ端末６に送信可能な状況になるまで通信制御サーバ４に送信せずに待機バッファに格納したままにしておくことによって、送信不要になったイベント情報を送信せずに廃棄する機会を増やすことができる。
【００７６】
なお、イベント情報は、それぞれ有効期限を指定する情報が関連づけられて待機バッファに格納されることとし、アプリケーション実行部１１による当該イベント情報の発行時から関連づけられた有効期限以上の時間が経過しても待機バッファに残っているイベント情報については、削除の対象とすることとしてもよい。こうすれば、イベントの発生から時間が経過して送信する意味のなくなったイベント情報などを、送信対象から除外することができる。このような有効期限切れとなったイベント情報の待機バッファからの削除は、イベント情報出力部１２ｂによって、待機バッファに格納されたイベント情報を送信待ちキューに移送する際に実行されることとしてもよい。
【００７７】
さらに、本実施形態では、バッファ情報変更部１２ｃは、単に待機バッファに格納されたイベント情報を削除するだけでなく、アプリケーション実行部１１の要求に応じて、イベント情報の送信順序を入れ替えたり、イベント情報の内容を更新したりしてもよい。
【００７８】
具体例として、待機バッファに格納されるイベント情報のそれぞれには、各イベント情報の送信順序を規定する情報として、アプリケーション実行部１１によって指定される優先度情報が関連づけられることとしてもよい。アプリケーション実行部１１は、仮想空間内で発生する事象などに応じて、待機バッファに格納されている個々のイベント情報の優先度情報を書き換えることとする。これに応じて、バッファ情報変更部１２ｃは、所定時間おきにユーザ端末６ごとの待機バッファに格納された複数のイベント情報を、優先度順に並べ替えることとする。これによって、通信帯域が限られており、大量のデータを送信できないユーザ端末６に対しては、特に重要性の高いイベント情報(例えば当該ユーザ端末６に対応するユーザオブジェクトＯに関して発生したイベント情報など）を優先的に送信することとし、重要性の低いイベント情報（例えば当該ユーザ端末６に対応するユーザオブジェクトＯから離れた位置で発生したイベント情報など）については、待機バッファ内に残すようにすることができる。例えば仮想空間Ｖがゲームを実現するためのものである場合、このような制御を行うことで、通信帯域の限られているユーザ端末６には、ゲームの進行などに最低限必要なイベント情報を優先して送信する一方で、通信帯域が大きなユーザ端末６には、ゲームの進行には直接関係ないがより仮想空間Ｖ内の様子を詳細に提示するための情報なども送信するようにすることができ、ゲームの公平性を損なわないようにしながら、各ユーザ端末６の通信能力に応じた量のデータを送信することができる。なお、優先度が低いために送信されずに待機バッファに残り続けたイベント情報については、前述したように有効期限を関連づけておくことで、有効期限以上の期間が経過した際に送信対象とせずに削除することができる。
【００７９】
なお、この場合において、イベント情報格納部１２ａは、特に優先度が高く必ずユーザ端末６に送信すべきイベント情報については、待機バッファに格納せずに、直接送信待ちキューに格納することとしてもよい。こうすれば、ユーザ端末６のデータ通信状況に関わらず、所定の条件を満たすイベント情報は必ずユーザ端末６に送信するよう制御することができる。
【００８０】
また、イベント情報は、イベント種別を特定する情報が関連づけられて待機バッファに格納されることとしてもよい。この場合、イベント情報格納部１２ａは、新たに待機バッファに格納しようとするイベント情報と同じ種別のイベント情報が、同じユーザ端末６に関連づけられた待機バッファ内に既に格納されている場合、当該イベント情報を新たなイベント情報で上書きすることとする。これにより、例えば特定のオブジェクトの現在位置を指定するイベント情報など、同種のイベント情報を何度もユーザ端末６に送信することを避け、最新の状態を表すイベント情報だけをユーザ端末６に対して送信することができ、無駄なデータ送信を減らすことができる。
【００８１】
以下、本実施形態に係る仮想空間管理システム１の適用例として、仮想空間管理システム１によってチャットシステムを実現する例について説明する。この例では、各ユーザオブジェクトＯは仮想空間Ｖ内を移動して、近くにいる他のユーザオブジェクトＯとの間で会話を楽しむことができる。この例では、各ユーザは、キーパッドなどの操作デバイスを用いて、発言したい内容を文字入力する。ユーザ端末６のユーザメッセージ送出部３１は、入力されたテキスト情報を、予め定められた当該ユーザの声質に関する情報とともに、ユーザメッセージとして通信制御サーバ４に送出する。通信制御サーバ４のデータ中継処理部２２は、接続先管理テーブルを参照して、当該ユーザ端末６に関連づけられたユーザオブジェクトＯが属する部分空間Ｖｐを管理する空間管理サーバ５に対して、当該ユーザメッセージを送信する。このユーザメッセージは、通信処理部１４を介して、空間管理サーバ５のアプリケーション実行部１１に出力される。
【００８２】
アプリケーション実行部１１は、当該ユーザメッセージを送信したユーザ端末６に対応するユーザオブジェクトＯ（発言者）の位置をイベントの発生場所とし、通知先を当該発生場所の周辺範囲として、受信したユーザメッセージに含まれるテキスト情報及び声質の情報を、ユーザの発言を示す発言イベント情報としてイベント情報管理部１２に出力する。イベント情報管理部１２のイベント情報格納部１２ａは、当該発言イベント情報をイベント発生場所の周辺範囲に存在する各ユーザオブジェクトＯ（聴取者）に対応するユーザ端末６向けの待機バッファに格納する。ここで、アプリケーション実行部１１は、待機バッファに格納された発言イベント情報の優先順位を、発言者と聴取者との仮想空間Ｖ内における位置関係に応じて変更してもよい。すなわち、発言者と聴取者との距離が遠い場合や、聴取者の向きが発言者のいる方向と逆向きの場合などにおいて、当該聴取者向けの発言イベント情報の優先順位を下げることとする。こうすれば、聴取者にとって聞き取りにくいと推定される発言イベント情報の優先順位を下げ、他に聴取者に聞き取りやすいと推定される発言イベント情報があれば、優先してこのような発言イベント情報をユーザ端末６に送信することができる。
【００８３】
待機バッファ内の発言イベント情報は、イベント情報出力部１２ｂによって通信処理部１４に出力され、通信処理部１４から通信制御サーバ４に送信される。通信制御サーバ４のデータ中継処理部２２は、当該発言イベント情報をユーザ端末６に送信する。ユーザ端末６の空間情報提示部３２は、受信した発言イベント情報に含まれるテキスト情報の内容を、発言者の声質の情報に応じた声質で音声合成し、スピーカから当該発言内容を再生させる。これにより、あるユーザがテキスト入力した発言内容は、当該ユーザの声質で仮想空間Ｖ内において近くにいる他のユーザに聞こえることになる。なお、この場合において、空間情報提示部３２は、多チャンネルのスピーカを用いたサラウンド再生を行うことによって、聴取者のユーザオブジェクトＯの向きに対して仮想空間Ｖ内において発言者のユーザオブジェクトＯが存在する方向から、当該発言者の発言内容が聞こえるような制御を実行してもよい。これにより、ユーザはあたかも実際に仮想空間Ｖ内で他者と会話しているような臨場感でチャットを行うことができる。
【００８４】
以上説明した本実施形態に係る仮想空間管理システム１によれば、一つの仮想空間Ｖを複数の部分空間Ｖｐに分割してそれぞれ独立した空間管理サーバ５に各部分空間Ｖｐを管理させているにも関わらず、ユーザオブジェクトＯがある部分空間Ｖｐ内から他の部分空間Ｖｐ内に遷移する際に、通信接続の切り替えを必要とせず、素早く、かつユーザ端末６側の処理を中断させずに当該遷移を実現することができる。
【００８５】
また、本実施形態に係る仮想空間管理システム１によれば、通信制御サーバ４がユーザ端末６に対して過去に単位時間あたりに送信したデータ量に応じて、空間管理サーバ５から通信制御サーバ４に対して単位時間あたりに送信するデータ量を調整することで、ユーザ端末６に送信しきれないイベント情報を待機バッファに保持しておき、必要に応じて待機バッファの内容を更新して不要なデータの送信を減らすことができる。
【００８６】
なお、本発明の実施の形態は、以上説明したものに限られない。例えば以上の説明においては一つの仮想空間Ｖにつき、複数の通信制御サーバ４及び複数の空間管理サーバ５が存在することとしたが、通信制御サーバ４が一つだけの場合も、当該通信制御サーバ４がユーザ端末６と複数の空間管理サーバ５のいずれかとの間の通信を中継することで、部分空間Ｖｐの遷移処理をユーザ端末６側の処理の中断なしで実現できる。また、空間管理サーバ５が一つだけの場合も、空間管理サーバ５から通信制御サーバ４へのデータ送信量を通信制御サーバ４からユーザ端末６へのデータ送信量に応じて調整し、空間管理サーバ５側の待機バッファの内容を更新することで、不要なデータ送信を減らすことができる。
【図１】
2010064653.tif 000003
【図２】
2010064653.tif 000004
【図３】
2010064653.tif 000005
【図４】
2010064653.tif 000006
【図５】
2010064653.tif 000007
【図６】
2010064653.tif 000008
【図７】
2010064653.tif 000009
【図８】
2010064653.tif 000010
【図９】
2010064653.tif 000011
【図１０】
2010064653.tif 000012
【国際調査報告】
2010064653.tif 000013
2010064653.tif 000014
2010064653.tif 000015
2010064653.tif 000016