(57)【特許請求の範囲】
【請求項１】
仮想世界における各キャラクターの、各クライアント装置の操作に応じた活動の履歴を記憶している記憶装置と、
第１のクライアント装置を操作して活動させる第１のキャラクターが、第２のクライアント装置を操作して活動させる第２のキャラクターの状態を変化させた活動の履歴を、前記記憶装置から検索する検索部と、
検索された前記履歴に基づいて、前記第１のキャラクターが前記第２のキャラクターの状態を変化させた程度の大きさを示す指標値を算出する算出部と、
使用者の前記第１のクライアント装置に対する操作に応じ順次変更される前記第１のキャラクターの状態を、前記第２のクライアント装置に対し送信させる頻度、を、算出した前記指標値に基づいて制御する送信制御部と
を備えるサーバ装置。
【請求項２】
当該サーバ装置は、複数の前記クライアント装置のそれぞれに接続されており、
当該サーバ装置は、前記複数のクライアント装置のそれぞれから当該クライアント装置において操作されるキャラクターについての順次更新される状態を取得すると共に、取得した状態を前記複数のクライアント装置のそれぞれに送信する同期処理部を更に備え、
前記送信制御部は、算出された前記指標値に基づいて、前記第１のキャラクターの状態を当該サーバ装置から前記第２のクライアント装置に対し送信する頻度を制御する、
請求項１に記載のサーバ装置。
【請求項３】
前記送信制御部は、算出された前記指標値がより大きい場合に、当該指標値がより小さい場合と比較して、当該サーバ装置から前記第２のクライアント装置に対する送信の頻度を上昇させる、請求項２に記載のサーバ装置。
【請求項４】
キャラクターの活動の種類ごとに、当該種類の活動による状態の変化の発生し易さを示す重みが予め対応付けられており、
前記算出部は、検索された前記履歴に含まれるそれぞれの活動について、当該活動の種類に対応する前記重みを合計することで、前記指標値を算出する、
請求項１に記載のサーバ装置。
【請求項５】
過去の予め定められた期間内における、前記複数のクライアント装置および当該サーバ装置の通信量を計測する計測部を更に備え、
前記送信制御部は、計測した前記通信量が、予め設定した目標の通信量よりも多い場合には、送信の頻度を低下させる、
請求項２に記載のサーバ装置。
【請求項６】
前記送信制御部は、予め算出した基準値を前記指標値で割り算した数値を、当該サーバ装置から前記第２クライアント装置に対し前記第１キャラクターの状態を送信する周期に設定する、請求項３に記載のサーバ装置。
【請求項７】
前記検索部は、予め定められた期間ごとに、仮想世界におけるそれぞれのキャラクターについて、当該キャラクターの状態を、他の何れかのキャラクターが変化させた活動の履歴を検索し、
前記算出部は、予め定められた期間ごとに、仮想世界におけるそれぞれのキャラクターについて、当該キャラクターについて検索された履歴に基づいて、当該キャラクターの状態が他の何れかのキャラクターにより変化した程度の大きさを示す指標値を算出し、
前記送信制御部は、第１の前記期間における各キャラクターについての前記指標値の合計に対する、第２の前記期間における各キャラクターについての前記指標値の合計の比率、および、予め設定した目標の通信量に対する、前記第２の期間において計測された前記通信量の比率、の積を算出し、
さらに、算出した当該積の値を、前記第１の期間における前記基準値に乗じることで、前記第２の期間における基準値を算出する、
請求項６に記載のサーバ装置。
【請求項８】
前記送信制御部は、状態を送信するべき前記頻度が、予め設定された頻度の大きさの範囲外である場合には、状態を送信するべき当該頻度を当該範囲内の値に変更する、請求項２に記載のサーバ装置。
【請求項９】
前記検索部は、仮想世界におけるそれぞれのキャラクターについて、当該キャラクターの状態を、他の何れかのキャラクターが変化させた活動の履歴を検索し、
前記算出部は、仮想世界におけるそれぞれのキャラクターについて、当該キャラクターについて検索された履歴に基づいて、当該キャラクターの状態が他のそれぞれのキャラクターにより変化した程度の大きさを示す指標値を算出し、
それぞれのキャラクターについて、当該キャラクターの状態を当該サーバ装置が取得する頻度を、当該キャラクターの状態が他のそれぞれのキャラクターの活動により変化した程度の大きさを示すそれぞれの指標値のうちの最大値に基づいて制御する受信制御部を更に備える、
請求項２に記載のサーバ装置。
【請求項１０】
前記受信制御部は、状態を受信するべき前記頻度が、予め設定された頻度の大きさの範囲外である場合には、状態を受信するべき当該頻度を当該範囲内の値に変更する、請求項９に記載のサーバ装置。
【請求項１１】
前記検索部は、前記第１のキャラクターを示す表示オブジェクトが、前記第２のクライアント装置における前記第２のキャラクターの視界を示す画面に表示された履歴を、前記第１のキャラクターが前記第２のキャラクターの状態を変化させた活動の履歴として検索する、請求項１に記載のサーバ装置。
【請求項１２】
前記検索部は、前記第１のキャラクターから送信されたメッセージが、前記第２のキャラクターに到着した履歴を、前記第１のキャラクターが前記第２のキャラクターの状態を変化させた活動の履歴として検索する、請求項１に記載のサーバ装置。
【請求項１３】
前記検索部は、前記第１のキャラクターが仮想世界において発生させた音を、前記第２のキャラクターが聞いたことを示す履歴を、前記第１のキャラクターが前記第２のキャラクターの状態を変化させた活動の履歴として検索する、請求項１に記載のサーバ装置。
【請求項１４】
前記仮想世界は各キャラクターが相互に攻撃をするゲームの世界であり、
前記検索部は、前記第１のキャラクターが、前記第２のキャラクターが仮想世界において所有する武器の射程範囲内に存在したことを示す履歴を、前記第１のキャラクターが前記第２のキャラクターの状態を変化させた活動の履歴として検索する、請求項１に記載のサーバ装置。
【請求項１５】
コンピュータの制御により、仮想世界における各キャラクターの、各クライアント装置の操作に応じた活動の履歴を記憶装置に記憶するステップと、
前記コンピュータの制御により、第１のクライアント装置を操作して活動させる第１のキャラクターが、第２のクライアント装置を操作して活動させる第２のキャラクターの状態を変化させた活動の履歴を、前記記憶装置から検索するステップと、
前記コンピュータの制御により、検索された前記履歴に基づいて、前記第１のキャラクターが前記第２のキャラクターの状態を変化させた程度の大きさを示す指標値を算出するステップと、
前記コンピュータの制御により、使用者の前記第１のクライアント装置に対する操作に応じ順次変更される前記第１のキャラクターの状態を、前記第２のクライアント装置に対し送信させる頻度、を、算出した前記指標値に基づいて制御するステップと
を備える方法。
【請求項１６】
サーバ装置としてコンピュータを機能させるプログラムであって、
前記コンピュータは、仮想世界における各キャラクターの、各クライアント装置の操作に応じた活動の履歴を記憶している記憶装置を有し、
前記コンピュータを、
第１のクライアント装置を操作して活動させる第１のキャラクターが、第２のクライアント装置を操作して活動させる第２のキャラクターの状態を変化させた活動の履歴を、前記記憶装置から検索する検索部と、
検索された前記履歴に基づいて、前記第１のキャラクターが前記第２のキャラクターの状態を変化させた程度の大きさを示す指標値を算出する算出部と、
使用者の前記第１のクライアント装置に対する操作に応じ順次変更される前記第１のキャラクターの状態を、前記第２のクライアント装置に対し送信させる頻度、を、算出した前記指標値に基づいて制御する送信制御部
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信を制御する技術に関する。特に、本発明は、通信の頻度または周期を制御する技術に関する。
【背景技術】
【０００２】
近年、例えばゲームなどの使用者の楽しみの目的のみならず、ビジネスの目的においても仮想世界が構築され、数多くの使用者に利用されている。仮想世界は、現実には、使用者の操作するクライアント装置と、各種の情報を収集し・管理するためのサーバ装置とにより実現される。そして、使用者がクライアント装置を操作すると、その操作が仮想世界に与えた影響がデータとしてサーバ装置に対し送信される。また、サーバ装置は、ある使用者に関連するデータのみをその使用者のクライアント装置に送信する。このような仕組みにより、クライアント装置の画面には、あたかも使用者の分身であるキャラクターの視界を示すような画像がリアルタイムで更新されて表示される。
【０００３】
参考として、仮想世界の制御技術については下記の特許文献１を参照されたい。
【特許文献１】特開２００７−５０１５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、非常に多いクライアント装置が同時期に少数のサーバ装置と通信すると、データの通信量が膨大になる場合がある。この場合には、データの更新が遅れ、その更新の遅れは仮想世界のリアルタイム性を損なうおそれがある。具体的には、第１のキャラクターの視界に入っている第２のキャラクターが移動したとしても、その移動の情報は、第２のキャラクターを操作するための第２のクライアント装置から第１のキャラクターを操作するための第１のクライアント装置には直ちに伝わらない。この結果、第１のキャラクターの視界を示す画像において第２のキャラクターが移動しているように見えるまでには、遅延が生じてしまう。
【０００５】
そこで本発明は、上記の課題を解決することのできるシステム、方法およびプログラムを提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の第１の形態においては、仮想世界における各キャラクターの、各クライアント装置の操作に応じた活動の履歴を記憶している記憶装置と、第１のクライアント装置を操作して活動させる第１のキャラクターが、第２のクライアント装置を操作して活動させる第２のキャラクターの状態を変化させた活動の履歴を、前記記憶装置から検索する検索部と、検索された前記履歴に基づいて、前記第１のキャラクターが前記第２のキャラクターの状態を変化させた程度の大きさを示す指標値を算出する算出部と、使用者の前記第１のクライアント装置に対する操作に応じ順次変更される前記第１のキャラクターの状態を、前記第２のクライアント装置に対し送信させる頻度、を、算出した前記指標値に基づいて制御する送信制御部とを備えるサーバ装置を提供する。また、当該サーバ装置としてコンピュータを機能させる方法およびプログラムを提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明を実施するための最良の形態】
【０００７】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００８】
図１は、本実施形態に係る情報システム１０の全体構成を示す。情報システム１０は、サーバ装置１００と、複数のクライアント装置（例えばクライアント装置２００−１〜Ｎ）とを備える。サーバ装置１００は、クライアント装置２００−１〜Ｎのそれぞれと、例えばインターネットなどの通信ネットワーク１５を介して接続されている。
【０００９】
そして、サーバ装置１００は、基本的なハードウェアとして、例えばネットワーク・インターフェイス・カード（ＮＩＣ）などである通信インターフェイス１０２と、例えばハードディスクドライブなどである記憶装置１０４とを備える。そして、サーバ装置１００は、記憶装置１０４から読み出したプログラムをＣＰＵにより実行することで、仮想世界サーバ１０６として機能する。
【００１０】
仮想世界サーバ１０６は、複数のキャラクターが活動する仮想世界を管理している。具体的には、サーバ装置１００は、それぞれのキャラクターが仮想世界において存在する位置、それぞれのキャラクターの向き、または、それぞれのキャラクターの外観を示すデータ、などを管理している。
【００１１】
クライアント装置２００−１〜Ｎのそれぞれは、例えばネットワーク・インターフェイス・カード（ＮＩＣ）などである通信インターフェイス２０２と、例えばハードディスクドライブなどである記憶装置２０４とを備える。そして、クライアント装置２００−１〜Ｎのそれぞれは、記憶装置２０４から読み出したプログラムをＣＰＵにより実行することで、仮想世界ブラウザ２０６として機能する。
【００１２】
クライアント装置２００−１〜Ｎは、それぞれ、異なるキャラクターを操作するために設けられている。例えば、ある使用者はクライアント装置２００−１の仮想世界ブラウザ２０６を操作することで、その使用者の仮想世界における分身であるアバターを操作する。また、他の使用者はクライアント装置２００−２の仮想世界ブラウザ２０６を操作することで、当該他の使用者の仮想世界における分身であるアバターを操作する。
【００１３】
このように、キャラクターとは例えば使用者の分身であるアバターであるが、クライアント装置２００を通じて使用者により操作されるものであれば、これには限定されない。他の例として、キャラクターとは、例えばＭＭＯＲＰＧ（Massively Multiplayer Online Role-Playing Game）などのゲームの世界における活動の主体であってよい。
【００１４】
以下、キャラクターは例えばアバターであるものとして説明を進める。
アバターの操作を実現する仕組みは概ね以下の通りである。クライアント装置２００−１における仮想世界ブラウザ２０６は、使用者から操作を受けると、当該使用者のアバターの状態、例えば当該アバターの位置、向きおよび外観などを示すデータを変更して、クライアント装置２００−１内の記憶装置２０４に格納する。
【００１５】
記憶装置２０４に格納された当該データは、例えば定期的にサーバ装置１００の仮想世界サーバ１０６によって収集されて、記憶装置１０４に格納される。クライアント装置２００−２〜Ｎのそれぞれについても、対応する使用者およびアバターが異なることの他は、クライアント装置２００−１と略同一である。
【００１６】
一方、記憶装置１０４に格納されたデータは、クライアント装置２００−１〜Ｎのそれぞれに対し送信されて、クライアント装置２００−１〜Ｎのそれぞれにおける記憶装置２０４に格納される。この結果、クライアント装置２００−１の記憶装置２０４には、クライアント装置２００−１の使用者のみならずクライアント装置２００−２〜Ｎの使用者に対応するアバターの状態が格納される。
【００１７】
このように、仮想世界サーバ１０６は、クライアント装置２００−１〜Ｎのそれぞれにおいて記憶装置２０４に格納された各アバターの状態を同期させる。これにより、クライアント装置２００−１〜Ｎのそれぞれにおいては、他の使用者のアバターの状態変化をリアルタイムで把握でき、あたかも仮想的な世界を体験しているかのような感覚で自己のアバターを操作できる。
【００１８】
但し、サーバ装置１００に接続するクライアント装置２００の数が多すぎると、同期のための通信の総量が多くなりすぎて、通信の遅延が生じるおそれがある。通信の遅延は同期の遅延をもたらし、同期の遅延は仮想世界のリアルタイム性を損なうおそれがある。これに対し、本実施形態においては、そのような通信の遅延を未然に防止するべく、仮想世界の実現のために重要な部分は高頻度で更新し、その他の部分は更新の頻度を低下させるように、適切な通信制御を実現する。以降、具体的に説明してゆく。
【００１９】
図２は、本実施形態に係る仮想世界サーバ１０６および仮想世界ブラウザ２０６の機能構成を、記憶装置１０４および記憶装置２０４の構成と共に示す。記憶装置１０４は、活動履歴ＤＢ１２と状態ＤＢ１４とを有する。活動履歴ＤＢ１２は、仮想世界における各アバターの活動の履歴を記憶している。状態ＤＢ１４は、仮想世界における各アバターの状態を記憶している。仮想世界サーバ１０６は、同期処理部１２０および制御システム１３０を有し、これらの活動履歴ＤＢ１２および状態ＤＢ１４にアクセスして処理を進める。
【００２０】
一方、クライアント装置２００−１において、記憶装置２０４は、活動履歴ＤＢ２２と状態ＤＢ２４とを有する。活動履歴ＤＢ２２は、クライアント装置２００−１のユーザのアバターの活動の履歴を記憶している。状態ＤＢ２４は、仮想世界における各アバターの状態のうち、クライアント装置２００−１のユーザのアバター、および、そのアバターに関連する他のアバターの状態を記憶している。関連する他のアバターとは、当該ユーザのアバターの視界に入っているアバター、あるいは、当該ユーザのアバターの近傍に存在するアバターなどである。即ち、状態ＤＢ２４は、状態ＤＢ１４のうちの一部をキャッシュしている。
【００２１】
仮想世界ブラウザ２０６は、同期処理部２２０と、活動処理部２３０と、レンダリング部２４０とを有し、これらの活動履歴ＤＢ２２および状態ＤＢ２４にアクセスして処理を進める。具体的には、まず、同期処理部１２０は、例えば定期的に、各アバターの状態を状態ＤＢ１４から読み出して、読み出したその状態を同期処理部２２０に対し送信する。同期処理部２２０は、受信したその状態を状態ＤＢ２４に格納する。この結果、状態ＤＢ２４には、クライアント装置２００−１のみならずクライアント装置２００−２〜Ｎのそれぞれにおいて操作させるアバターの状態が記憶される。
【００２２】
状態は、例えば、各アバターの仮想世界における位置、向き、または外観などの情報を含む。これらの情報に基づいて、レンダリング部２４０は、クライアント装置２００−１により操作されるアバターの視界を示す画像をレンダリングする。例えば、レンダリング部２４０は、仮想世界における各アバターの位置および向きの情報に基づいて、当該アバターの向いている方向に他のアバターが含まれているかどうかを判断する。
【００２３】
当該アバターの向いている方向に当該他のアバターが含まれていれば、レンダリング部２４０は、当該他のアバターの外観を示すデータに基づいて当該他のアバターの姿を示す画像をレンダリングする。レンダリングされた画像は表示部２６０に表示される。
【００２４】
また、入力部２５０は、使用者の操作を受け付ける。使用者の操作に応じて、活動処理部２３０は、使用者のアバターの状態を更新する。例えば、使用者からアバターを動かす操作を受け付けた場合には、活動処理部２３０は、そのアバターの向きおよび位置の情報を状態ＤＢ２４において更新する。
【００２５】
活動には、この移動の他にも多様なものが含まれる。例えば、活動とは、あるアバターと他のアバターの間で発生したインタラクションを示す。具体的には、活動は、あるアバターが他のアバターに対しメッセージを送信することであってよい。受信したメッセージは、例えば、受信したアバターに対応するクライアント装置２００における表示部２６０において、メッセージ用ウィンドウに表示される。そのような多様な活動の履歴が活動履歴ＤＢ２２に記憶される。
【００２６】
同期処理部２２０は、このようにして更新された状態、および、活動の履歴を、例えば定期的に、あるいは同期処理部１２０からの要求に応じて、同期処理部１２０に対し送信する。同期処理部１２０は、受信した状態を状態ＤＢ１４に格納し、受信した活動の履歴を活動履歴ＤＢ１２に格納する。これにより、状態ＤＢ１４には、仮想世界に含まれる全てのアバターの状態が収集され、活動履歴ＤＢ１２には、仮想世界に含まれる全てのアバターの活動の履歴が収集される。
【００２７】
但し、同時期においてサーバ装置１００に接続しているクライアント装置２００の数が多すぎると、サーバ装置１００の処理負荷または通信ネットワーク１５の負荷が高すぎて、状態を同期する頻度が低くなってしまうおそれがある。これに対し、制御システム１３０は、そのような同期のための通信を制御する。その制御については図５を参照して後に説明する。
【００２８】
図３ａは、本実施形態に係る状態ＤＢ１４および状態ＤＢ２４のデータ構造の一例を示す。状態ＤＢ１４は、それぞれのアバターに対応付けて、当該アバターの状態を対応付けて記憶している。状態の種類は多岐に渡る。図３ａにおいては、状態として、アバターの位置、向き、当該アバターが所属するグループ、および、当該アバターの視界に含まれるオブジェクトを例示する。このように、状態とは、アバターの位置または名前などのそのアバターに固有の事柄のみならず、当該アバターの視界に含まれるオブジェクトなどのように、使用者が表示部２６０などのユーザ・インターフェイス２０８を介して認識することのできる事項をも表す。
【００２９】
一例として、アバター１０１１の位置は、仮想世界の座標系における（１１２，２２５）であり、アバター１０１１の向きは、仮想世界の座標系における（１３５，２２１）というベクトルで表される方向である。また、アバター１０１１が所属するグループのＩＤは１２であり、アバター１０１１の視界にある他のアバターのＩＤは１０１２，１０２３などである。このようなアバターの位置および向きから構成される仮想世界の概念図を図３ｂに示す。
【００３０】
図３ｂは、本実施形態に係る状態ＤＢ１４が示す仮想世界の概念図である。図３ｂにおいては、各アバターをノードとして表し、各アバターの向きをノードに接続した矢印で示した。アバター１０１１の視界にはアバター１０１２が含まれ、アバター１０１２の視界にはアバター１０１１が含まれるので、アバター１０１１およびアバター１０１２は向き合っている。また、アバター１０１３の視界にはアバター１０１１および１０１２が含まれるので、アバター１０１３は、アバター１０１１および１０１２の方を向いている。
【００３１】
このように、仮想世界は、例えば現実の世界のように、アバターが存在する位置および向きが存在する世界であってよい。これに代えて、仮想世界は、例えばチャットや電子メールなどの文字媒体のみによってコミュニケーションが成立する世界などのように、アバターの位置や向きなどの概念が存在しない世界であってもよい。反対に、仮想世界は、例えば３次元座標系などのように、現実の世界により近い座標系にアバターが存在する世界であってもよい。
なお、状態ＤＢ２４についても、状態ＤＢ１４の一部のレコードのみを有することのほかは、図３ａに例示した状態ＤＢ１４のデータ構造と略同一の構造を有するから説明を省略する。
【００３２】
図４は、本実施形態に係る活動履歴ＤＢ１２および活動履歴ＤＢ２２のデータ構造の一例を示す。活動履歴ＤＢ１２は、それぞれの活動について、当該活動の識別情報（ＩＤ）と、当該活動の主体となったアバターのＩＤと、当該活動の種類を識別する識別情報と、当該活動の説明とを対応付けて記憶している。なお、当該活動の説明は説明の明確化のために示したので、活動履歴ＤＢ１２の内容として必須ではない。
【００３３】
活動の識別情報は、例えば、仮想世界の中で生じた各活動に与えられる通し番号である。例えば同一のアバター１０１１が３回活動を行えばそのそれぞれには、例えば１２２１２、１２２１３および１２２１４のように、異なる識別情報が付与される。１２２１２の活動は、アバター１０１１が、アバター１０１２を視界に入れたことを示している。その活動の種類は例えば、３０−１０１２という数値によって識別される。
【００３４】
一方、１２２１３の活動は、アバター１０１１が、アバター１０１２からメッセージを受信したことを示している。その活動の種類は、例えば３１−１０１２という数値によって識別される。また、１２２１４の活動は、アバター１０１１が、アバター１０１２の音声を聞いたことを示している。その活動の種類は、例えば３２−１０１２という数値によって識別される。
【００３５】
更に他の例として、１３４５２の活動は、アバター１０１２が、アバター１０１１の視界に入ったことを示している。その活動の種類は、例えば２０−１０１１という数値によって識別される。この活動は、上記３０−１０１２という活動と対称関係にある。このように、対称関係にある複数の活動の履歴の何れもが活動履歴ＤＢ１２に記憶されてもよい。
【００３６】
活動の発生をどのように検出して記憶・管理するかについては、当業者であれば多様な実現方法が可能であるが、その一例はおおむね以下の通りである。クライアント装置２００−１における活動処理部２３０は、入力部２５０が受け付けた使用者の操作に応じて、アバター（クライアント装置２００−１の使用者に操作されるという意味で、使用者アバターと呼ぶ）の位置または向きが変化したことを検出すると、変化後の位置または向きに基づいて当該アバターの視界を特定する。
【００３７】
そして活動処理部２３０は、状態ＤＢ２４に記憶された各アバターの位置に基づいて、当該特定した視界に入っているアバターのＩＤを選択する。選択した各ＩＤは、当該使用者アバターに対応付けて当該使用者アバターの視界に入っているオブジェクトのＩＤとして状態ＤＢ２４に格納される。その場合には、活動処理部２３０は、当該使用者アバターの視界に他のアバターが入ったことを示す活動の履歴を活動履歴ＤＢ２２に格納する。
【００３８】
より具体的には、活動処理部２３０は、活動の履歴を示す新たなＩＤを有するレコードを活動履歴ＤＢ２２内に確保する。そして、活動処理部２３０は、そのレコードにおけるアバターＩＤを、使用者アバターを識別する１０１１に設定する。また、活動処理部２３０は、そのレコードにおける活動の種類を示すＩＤを設定する。活動の種類とは、例えば、他のアバターを視界に入れたことを示すプレフィックス３０と、視界に入った当該他のアバターを示すサフィックス１０１２の結合により生成される。
【００３９】
以上のような処理をクライアント装置２００−１〜Ｎにおいて順次繰り返した上で、それぞれのクライアント装置２００における活動履歴ＤＢ２２と活動履歴ＤＢ１２とを同期させることで、活動履歴ＤＢ１２には仮想世界における活動の履歴が収集される。
次に、このようにして収集された活動の履歴に基づいて通信を制御する処理について、図５−１３を参照して説明する。
【００４０】
図５は、本実施形態に係る制御システム１３０の機能構成の一例を示す。制御システム１３０は、検索部５００と、算出部５１０と、計測部５２０と、送信制御部５３０と、受信制御部５４０とを有する。制御システム１３０は、仮想世界における複数のアバターのそれぞれについての状態変化を、通信ネットワーク１５に接続されたそれぞれのクライアント装置のそれぞれに対し送信する頻度を制御するものである。
【００４１】
この図５では、このような制御を代表して、ある第１のクライアント装置（例えばクライアント装置２００−１とする）を操作して活動させる第１のアバターの状態を、他の第２のアバターを操作するための第２のクライアント装置（例えばクライアント装置２００−２とする）に対し送信する頻度の制御について説明する。まず、検索部５００は、第１のアバターが第２のアバターの状態を変化させた活動の履歴を、活動履歴ＤＢ１２から検索する。
【００４２】
そのような活動の履歴とは、例えば上記の例のように、第１のアバターを示す表示オブジェクトが、クライアント装置２００−２における第２のアバターの視界を示す画面に表示された履歴である。これに代えて、そのような活動の履歴とは、例えば、第１のアバターから送信されたメッセージが、第２のアバターに到着した履歴であってもよい。また、そのような活動の履歴とは、例えば、第１のアバターが仮想世界において発生させた音を、第２のアバターが聞いたことを示す履歴であってもよい。
【００４３】
更に他の例として、ゲームのための仮想世界におけるそのような活動の履歴とは、例えば、第１のアバターが、第２のアバターが仮想世界において所有する武器の射程範囲内に存在したことを示す履歴であってもよい。また、そのような活動の例には、第１のアバターおよび第２のアバターが仮想世界において同じ種類のオブジェクトを所有していること、または、第１のアバターが売却したオブジェクトを第２のアバターが購入したこと、などが含まれる。
【００４４】
次に、算出部５１０は、検索された履歴に基づいて、第１のアバターが第２のアバターの状態を変化させた程度の大きさを示す指標値を算出する。例えば、活動にはその種類ごとに状態を変化させた程度を示す重みが対応付けられており、算出部５１０は、そのような重みを活動ごとに合計することで、指標値を算出してもよい。
【００４５】
計測部５２０は、例えば通信インターフェイス１０２の通信状態などに基づいて、サーバ装置１００およびクライアント装置２００−１〜Ｎの間の過去の所定期間内における総通信量を計測する。そして、送信制御部５３０は、計測した当該総通信量、および、算出した上記指標値に基づいて、第１のアバターの状態をクライアント装置２００−２に対し送信させる頻度を制御する。
【００４６】
例えば、上記の指標値が高いということは、第２のアバターが、第１のアバターから強く影響を受けている。そのような場合には、第２のアバターを操作する使用者は、第１のアバターについて順次変更される状態をその変更に追従して詳しく知りたいと思っている場合が多い。
【００４７】
このような状況に対応して、送信制御部５３０は、算出された上記指標値がより大きい場合に、当該指標値がより小さい場合と比較して、サーバ装置１００からクライアント装置２００−２に対し第１のアバターの状態を順次送信する頻度を上昇させる。一方、上記の総通信量が、予め設定した目標の通信量よりも多い場合には、通信ネットワーク１５またはサーバ装置１００の負荷が高すぎて好ましくない場合がある。
【００４８】
このような状況に対応して、送信制御部５３０は、上記の総通信量が目標の通信量よりも多い場合には、たとえ上記指標値が同一であったとしても、サーバ装置１００からクライアント装置２００−２に対し第１のアバターの状態を送信する頻度を低下させる。このようにすることで、通信ネットワーク１５およびサーバ装置１００の負荷を適切な水準に維持できる。
【００４９】
制御システム１３０は、以上のような通信の制御を、仮想世界におけるアバターについての全ての組合せについて行う。そして、次に、検索部５００、算出部５１０および受信制御部５４０は、以下の手順で、それぞれのクライアント装置２００−１〜Ｎからサーバ装置１００が状態を受信する頻度の制御を行う。
【００５０】
まず、検索部５００は、仮想世界におけるそれぞれのアバターについて、当該アバターの状態を、他の何れかのアバターが変化させた活動の履歴を検索する。次に、算出部５１０は、仮想世界におけるそれぞれのアバターについて、当該アバターについて検索された履歴に基づいて、当該アバターの状態が他のそれぞれのアバターにより変化した程度の大きさを示す指標値を算出する。
【００５１】
そして、受信制御部５４０は、それぞれのアバターについて、当該アバターの状態が他のそれぞれのアバターにより変化した程度の大きさを示すそれぞれの指標値のうちの最大値を選択する。そして、受信制御部５４０は、選択した当該最大値に基づいて、当該アバターの状態をサーバ装置１００が取得する頻度を制御する。
【００５２】
例えばある第１のアバターの状態が、他の第２のアバターにより変化した程度の大きさが１０５という数値で表され、一方、その第１のアバターの状態が他の第３のアバターにより変化した程度の大きさが１２０という数値で表される場合において、それらの最大値である１２０が選択される。
【００５３】
そして、受信制御部５４０は、その最大値に基づいて、当該第１のアバターの状態をサーバ装置１００がクライアント装置２００−１から取得する頻度を制御する。
このような制御によれば、各アバターについて、当該アバターの状態をサーバ装置１００から各クライアント装置２００−１〜Ｎへ送信する頻度の最大値を、当該アバターの状態を当該アバターに対応するクライアント装置２００からサーバ装置１００が受信する頻度の最大値として設定することができる。
【００５４】
図６は、本実施形態に係る制御システム１３０が活動履歴に基づいて通信を制御する処理の流れを示す。制御システム１３０は、予め定められた期間ｔｓが経過する毎に、以下の処理を行う。まず、検索部５００、算出部５１０、および、計測部５２０は、協働して、指標値を算出する処理を行う（Ｓ６００）。その詳細を図７に示す。
【００５５】
図７は、図６のＳ６００における処理の詳細を示す。まず、検索部５００は、活動の主体となる第１のアバターを選択する（Ｓ７００）。選択された第１のアバターをアバターＡとする。次に、検索部５００は、活動の客体となる第２のアバターを選択する（Ｓ７１０）。選択された第２のアバターをアバターＢとする。また、算出しようとする指標値をｌＡ，Ｂとする。ｌＡ，Ｂは０で初期化しておく。
【００５６】
そして、検索部５００は、現在時刻をＴとして、（Ｔ−ｔｓ）からＴまでの間に、アバターＡがアバターＢの状態を変化させた活動の履歴を活動履歴ＤＢ１２から１つ検索する（Ｓ７２０）。検索された活動をｉｎｔ（Ａ，Ｂ）とする。次に、算出部５１０は、検索された活動の種類に基づき重みを決定する（Ｓ７３０）。決定された重みをＷｉｎｔ（Ａ，Ｂ）とする。
【００５７】
そして、算出部５１０は、既に途中まで算出した指標値ｌＡ，Ｂに、その重みＷｉｎｔ（Ａ，Ｂ）を加える（Ｓ７４０）。アバターＡがアバターＢの状態を変化させた何れかの活動についてまだ検索が終わっていないならば（Ｓ７５０：ＮＯ）、算出部５１０は、Ｓ７２０に処理を戻して次の履歴を検索する。
【００５８】
一方、アバターＡがアバターＢの状態を変化させた全ての活動について検索が完了したならば（Ｓ７５０：ＹＥＳ）、算出部５１０は、アバターの全ての組合せについて検索が完了したか否かを判断する（Ｓ７６０）。何れかの組合せについて検索が完了していないならば（Ｓ７５０：ＮＯ）、算出部５１０は、次の組合せについて検索するべくＳ７００に処理を戻す。
【００５９】
アバターの全ての組合せについて検索が完了したならば（Ｓ７６０：ＹＥＳ）、算出部５１０は、Ｓ６００の処理を終了する。
以上の処理により算出された指標値の一例を図８に示す。
図８は、本実施形態に係る算出部５１０によりアバターの各組合せについて算出される指標値の具体例を示す。本図の横方向には、状態変化の主体となるアバターの識別子（Ａ，Ｂ，Ｃ，ＤおよびＥ）を配列している。また、本図の縦方向には、状態変化の客体となるアバターの識別子（Ａ，Ｂ，Ｃ，ＤおよびＥ）を配列している。
【００６０】
そして、図中の数値は、状態変化の大きさの程度を示す指標値である。例えば、アバターＢがアバターＡの状態を変化させた程度の大きさは、数値１０によって表される。一方、アバターＡがアバターＢの状態を変化させた程度の大きさは、数値８によって表される。これらの数値は、仮想世界においては、注目度、あるいは、影響の大きさとして把握することができる。
【００６１】
例えばアバターＢがアバターＡの状態を大きく変化させた場合においては、アバターＡはアバターＢの活動によって大きく影響を受けている。例えば、アバターＢがアバターＡにメッセージを数多く送信した場合において、アバターＡは送信者であるアバターＢがどのようなアバターであるかを知りたい場合が多いと考えられる。このような場合には、アバターＡからアバターＢへの注目度が高いと理解することができる。
【００６２】
図６の説明に戻る。
次に、算出部５１０は、各アバターについて算出した指標値の合計を算出する（Ｓ６１０）。また、算出部５１０は、後の計算のために、既に（Ｔ−２ｔｓ）から（Ｔ−ｔｓ）までの第１期間における各アバターについて算出された指標値の合計に対する、今回（Ｔ−ｔｓ）からＴまでの第２期間について新たに算出した指標値の合計の比率を、算出する。
【００６３】
また、計測部５２０は、通信インターフェイス１０２などの状態に基づいて、（Ｔ−ｔｓ）からＴまでの期間における、複数のクライアント装置２００およびサーバ装置１００間の通信量を計測する（Ｓ６２０）。通信量は、例えば、占有された通信帯域の割合の平均値などであってよい。これに代えて、通信量は、通信インターフェイス１０２が通信に使用したパケットの数などであってもよい。
【００６４】
また、計測部５２０は、後の計算のために、予め設定した目標の通信量に対する、今回（Ｔ−ｔｓ）からＴまでの第２期間について新たに計測した通信量の比率を、算出する。
そして、このようにして算出または計測した各種の値に基づいて、送信制御部５３０は、各アバターの状態を示すデータをサーバ装置１００から各クライアント装置２００に対し送信する頻度を算出する（Ｓ６３０）。その処理の一例を図９に示す。
【００６５】
図９は、図６のＳ６３０における処理の詳細を示す。検索部５００は、活動の主体となる第１のアバターを選択する（Ｓ９００）。選択された第１のアバターをアバターＡとする。次に、検索部５００は、活動の客体となる第２のアバターを選択する（Ｓ９１０）。選択された第２のアバターをアバターＢとする。また、これらのアバターＡおよびＢの組合せについて既に算出された指標値をｌＡ，Ｂとする。
【００６６】
次に、送信制御部５３０は、選択されたこのアバターＡおよびＢの組合せについて既に算出された指標値ｌＡ，Ｂに基づいて、状態の送信頻度を算出する（Ｓ９２０）。この送信頻度は、アバターＡの状態を、アバターＢを操作するためのクライアント装置２００に対しサーバ装置１００から送信する頻度を示す。頻度の算出の具体例は以下の通りである。
【００６７】
ここでは、送信頻度の逆数である送信周期の算出例を示す。まず、送信制御部５３０は、送信周期を算出する基準となる基準値を予め算出する。この基準値は、直近の期間（Ｔ−ｔｓからＴまで）を第２期間とすると、その直前の第１期間（Ｔ−２ｔｓからＴ−ｔｓ）に対応する基準値に基づいて算出される。
【００６８】
いま、第２期間の基準値をＫ２とし、第１期間の基準値をＫ１とする。そして、第１期間の指標値の合計に対する、第２期間の指標値の合計の比率、を、Ｐ１／Ｐ２とおく（Ｓ６１０で予め求めたものである。）。また、予め設定した目標の通信量に対する、今回（Ｔ−ｔｓ）からＴまでの第２期間について新たに計測した通信量の比率を、Ｑ２／Ｑｓとおく（Ｓ６２０で予め求めたものである。）。
【００６９】
送信制御部５３０は、これらの比率Ｐ１／Ｐ２および比率Ｑ２／Ｑｓの積を算出する。そして、送信制御部５３０は、算出した当該積の値を、第１の期間における基準値Ｋ１に乗じることで、第２の期間における基準値Ｋ２を算出する。この計算は以下の式により表される。
Ｋ２＝Ｋ１×Ｐ１／Ｐ２×Ｑ２／Ｑｓ
【００７０】
即ち、この指標値Ｋ２は、アバターが他のアバターの状態を変化させた程度の大きさの総和が増加すると増加し、通信量が増加すると増加する。
次に、送信制御部５３０は、この基準値をアバターＡおよびＢの組について既に算出した指標値ｌＡ，Ｂにより割り算する。そして、送信制御部５３０は、この割り算により求めた数値を、アバターＡの状態を、アバターＢを操作するためのクライアント装置２００に対しサーバ装置１００から送信する周期として算出する。
【００７１】
ここで、基準値の計算に指標値の合計値の比率Ｐ１／Ｐ２を用いるのは、指標値の総合計（これは全体の通信量に比例すると仮定する）の変化に応じて、個々の通信の頻度を調整するためである。また、基準値の計算に総通信量の比率Ｑ２／Ｑｓを用いるのは、通信量を目標に近づけるためである。これにより、全体の通信量を一定に保つ範囲で、個々の通信の頻度をできるだけ高めることができる。
【００７２】
以上の処理を、制御システム１３０は、アバターの全ての組合せについて繰り返す（Ｓ９３０）。なお、基準値についてはアバターの組合せによらず一定であるから、一度だけ算出すればよい。
その結果算出された送信周期の一例を図１０に示す。
【００７３】
図１０は、本実施形態に係る送信制御部５３０により算出されるダウンリンクの同期周期の具体例を示す。アバターＡを操作するためのクライアント装置２００に、アバターＢの状態をサーバ装置１００から送信する周期は例えば０．１８秒である。反対に、アバターＢを操作するためのクライアント装置２００に、アバターＡの状態をサーバ装置１００から送信する周期は例えば０．２２５秒である。空欄は履歴が無かったことを示す。図８と対比すると、状態を変化させた程度を示す指標値が大きいほど、状態を更新する周期は小さくなることが分かる。
【００７４】
図６の説明に戻る。次に、送信制御部５３０は、状態を送信するべきとして算出したこの頻度が、予め設定された頻度の大きさの範囲外である場合には、状態を送信するべき当該頻度を修正して、当該範囲内の値に変更する（Ｓ６３５）。修正後の周期の例を図１１に示す。
【００７５】
図１１は、本実施形態に係る送信制御部５３０により設定されるダウンリンクの同期周期の修正後の例を示す。アバターＡを操作するためのクライアント装置２００に、アバターＢの状態をサーバ装置１００から送信する周期は例えば０．２秒に変更されている。アバターＦを操作するためのクライアント装置２００に、アバターＡの状態をサーバ装置１００から送信する周期は例えば１０秒に変更されている。
【００７６】
この場合において、周期の大きさの範囲は０．２秒から１０秒までである。０．２秒よりも小さく設定しても、サーバ装置１００、通信ネットワーク１５およびクライアント装置２００の性能の制約により送信できない場合があり、あるいは、仮想世界を体験しようとする使用者の知覚能力の限界を超えて意味がないからである。また、１０秒よりも長く設定しても、通信トラフィックの削減にはあまり意味が無いか、あるいは、仮想世界の更新が遅れすぎて不適切だからである。
【００７７】
図６の説明に戻る。そして、送信制御部５３０は、算出されたこの周期（頻度）により通信インターフェイス１０２を動作させて、データ送信の頻度を制御する（Ｓ６４５）。
次に、受信制御部５４０は、それぞれのアバターについて、当該アバターの状態を当該アバターに対応するクライアント装置２００からサーバ装置１００が受信する頻度を算出する（Ｓ６５０）。この処理を、図１１および図１２を参照して説明する。
【００７８】
まず、受信制御部５４０は、それぞれのアバターについて、当該アバターの状態を他の何れかのアバターを操作するためのクライアント装置２００に対し送信する頻度の最大値（周期の最小値）を選択する。例えば、受信制御部５４０は、図１０の第Ａ列を操作して、周期の最小値である０．２２５を選択する。
【００７９】
そして、受信制御部５４０は、選択したその頻度の最大値（周期の最小値）を、当該アバターの状態を、当該アバターを操作するためのクライアント装置２００からサーバ装置１００が受信する頻度（周期）に設定する。この結果、図１２に示すように、アバターＡに対応するクライアント装置２００には０．２２５が設定される。これは、アバターＡに対応するクライアント装置２００からサーバ装置１００が０．２２５秒周期でアバターＡの状態を受信することを示す。
【００８０】
以上の処理をそれぞれのアバターについて繰り返すことで、受信制御部５４０は、それぞれのアバターの状態をサーバ装置１００が当該アバターを操作するためのクライアント装置２００から受信する頻度を設定することができる。
図６の説明に戻る。
【００８１】
次に、受信制御部５４０は、状態を受信するべきとして算出したこの頻度が、予め設定された頻度の大きさの範囲外である場合には、状態を受信するべき当該頻度を修正して当該範囲内の値に変更する（Ｓ６５５）。修正後の周期の例を図１３に示す。
【００８２】
図１３は、本実施形態に係る受信制御部５４０により設定されるアップリンクの同期周期の修正後の例を示す。アバターＢの状態をサーバ装置１００が受信する周期は、０．１８から０．２に変更されている。また、アバターＦの状態をサーバ装置１００が受信する周期は、最大の１０秒に設定されている。受信頻度に範囲が設けられている理由も上記送信頻度の場合と同様である。即ち例えば、あまり頻度を高めてもサーバ装置１００またはクライアント装置２００の性能によっては不合理であるからである。
図６の説明に戻る。そして、受信制御部５４０は、算出されたこの周期（頻度）により通信インターフェイス１０２を動作させて、データ受信の頻度を制御する（Ｓ６６０）。
【００８３】
図１４は、本実施形態に係るサーバ装置１００として機能するコンピュータのハードウェア構成の一例を示す。コンピュータは、ホストコントローラ１０８２により相互に接続されるＣＰＵ１０００、ＲＡＭ１０２０、及びグラフィックコントローラ１０７５を有するＣＰＵ周辺部と、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部と、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部とを備える。
【００８４】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスするＣＰＵ１０００及びグラフィックコントローラ１０７５とを接続する。ＣＰＵ１０００は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィックコントローラ１０７５は、ＣＰＵ１０００等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、ＣＰＵ１０００等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００８５】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、例えば通信インターフェイス１０２の一例であり、ネットワークを介して外部の装置と通信する。ハードディスクドライブ１０４０は、例えば記憶装置１０４の一例であり、コンピュータが使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０又はハードディスクドライブ１０４０に提供する。
【００８６】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、コンピュータの起動時にＣＰＵ１０００が実行するブートプログラムや、コンピュータのハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、入出力チップ１０７０を介してＲＡＭ１０２０またはハードディスクドライブ１０４０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００８７】
コンピュータに提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１０７０及び/又は入出力コントローラ１０８４を介して、記録媒体から読み出されコンピュータにインストールされて実行される。プログラムがコンピュータ等に働きかけて行わせる動作は、図１から図１３において説明したサーバ装置１００における動作と同一であるから、説明を省略する。
【００８８】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータに提供してもよい。
【００８９】
以上、本実施形態によれば、仮想世界を実現するためにクライアント装置およびサーバ装置間で通信する頻度を、仮想世界において各アバターが他のアバターの状態を変化させた程度の大きさに基づいて制御することができる。これにより、使用者が欲している情報を適切に選択して高頻度で更新し、一方、あまり重要で無い情報については更新頻度を低くして、通信ネットワークのリソースを有効活用することができる。
【００９０】
これにより、例えば、仮想世界のゲームにおいて最近攻撃をしたアバターの外観や位置・向きなどは画面上で頻繁に更新されるようになる。また、仮想世界の視野を示す画像に含まれるアバターの外観や位置・向きなどは画面上で頻繁に更新される。また、仮想世界の視野を示す画像に含まれないアバターの外観や位置・向きなどは画面上であまり更新されない。また、頻繁に更新される。攻撃や視界に無関係なアバターの状態については、サーバ装置１００およびクライアント装置２００間で殆んど通信されなくなる。
【００９１】
このような制御により、例えば以下の派生的効果がもたらされる。第１に、既存の通信ネットワークまたはサーバ装置をそのまま利用して、リアルタイム性の高い仮想世界を実現できる。これにより、高品質な仮想世界の実現において、追加の設備投資を低減することができる。第２に、既存の通信ネットワークまたはサーバ装置をそのまま利用して、より多数のアバターが存在する仮想世界を実現できる。これにより、より大規模な仮想世界の実現において、追加の設備投資を低減することができる。
【００９２】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。例えば、上記サーバ装置１００が備える機能の少なくとも一部は、サーバ装置１００に代えてクライアント装置２００−１〜Ｎのそれぞれに設けられてもよい。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００９３】
【図１】図１は、本実施形態に係る情報システム１０の全体構成を示す。
【図２】図２は、本実施形態に係る仮想世界サーバ１０６および仮想世界ブラウザ２０６の機能構成を、記憶装置１０４および記憶装置２０４の構成と共に示す。
【図３ａ】図３ａは、本実施形態に係る状態ＤＢ１４および状態ＤＢ２４のデータ構造の一例を示す。
【図３ｂ】図３ｂは、本実施形態に係る状態ＤＢ１４が示す仮想世界の概念図である。
【図４】図４は、本実施形態に係る活動履歴ＤＢ１２および活動履歴ＤＢ２２のデータ構造の一例を示す。
【図５】図５は、本実施形態に係る制御システム１３０の機能構成の一例を示す。
【図６】図６は、本実施形態に係る制御システム１３０が活動履歴に基づいて通信を制御する処理の流れを示す。
【図７】図７は、図６のＳ６００における処理の詳細を示す。
【図８】図８は、本実施形態に係る算出部５１０によりアバターの各組合せについて算出される指標値の具体例を示す。
【図９】図９は、図６のＳ６３０における処理の詳細を示す。
【図１０】図１０は、本実施形態に係る送信制御部５３０により算出されるダウンリンクの同期周期の具体例を示す。
【図１１】図１１は、本実施形態に係る送信制御部５３０により設定されるダウンリンクの同期周期の修正後の例を示す。
【図１２】図１２は、本実施形態に係る受信制御部５４０により算出されるアップリンクの同期周期の具体例を示す。
【図１３】図１３は、本実施形態に係る受信制御部５４０により設定されるアップリンクの同期周期の修正後の例を示す。
【図１４】図１４は、本実施形態に係るサーバ装置１００として機能するコンピュータのハードウェア構成の一例を示す。
【符号の説明】
【００９４】
１０  情報システム
１２  活動履歴ＤＢ
１４  状態ＤＢ
１５  通信ネットワーク
２２  活動履歴ＤＢ
２４  状態ＤＢ
１００  サーバ装置
１０２  通信インターフェイス
１０４  記憶装置
１０６  仮想世界サーバ
１２０  同期処理部
１３０  制御システム
２００  クライアント装置
２０２  通信インターフェイス
２０４  記憶装置
２０６  仮想世界ブラウザ
２０８  ユーザ・インターフェイス
２２０  同期処理部
２３０  活動処理部
２４０  レンダリング部
２５０  入力部
２６０  表示部
５００  検索部
５１０  算出部
５２０  計測部
５３０  送信制御部
５４０  受信制御部
【図１】
0005258020.tif 000002
【図２】
0005258020.tif 000003
【図３ａ】
0005258020.tif 000004
【図３ｂ】
0005258020.tif 000005
【図４】
0005258020.tif 000006
【図５】
0005258020.tif 000007
【図６】
0005258020.tif 000008
【図７】
0005258020.tif 000009
【図８】
0005258020.tif 000010
【図９】
0005258020.tif 000011
【図１０】
0005258020.tif 000012
【図１１】
0005258020.tif 000013
【図１２】
0005258020.tif 000014
【図１３】
0005258020.tif 000015
【図１４】
0005258020.tif 000016