(57)【特許請求の範囲】
【請求項１】
アバタを操作して他のアバタと相互に通信することが可能な３次元仮想空間において、前記アバタの位置を中心とする所定の半径を有する球よりなる範囲を、それぞれの前記アバタについて、前記他のアバタからの情報を受信する範囲として規定する規定手段と、
前記規定手段により規定された前記範囲であって、前記アバタの位置をカバーする前記範囲を有する前記他のアバタの情報を、アバタ毎の管理テーブルで管理する管理手段と、
前記他のアバタのクライアントへの前記アバタが有する情報の送信の可否を示し、前記アバタのクライアントにより変更可能である設定を記憶する記憶手段と、
前記アバタが有する情報を送信する旨が設定されている場合、前記管理テーブルに情報が登録されている前記他のアバタへの前記アバタの情報の送信を許可するように、前記他のアバタのクライアントへの前記アバタの情報の送信の可否を判定する判定手段と
を備える情報処理装置。
【請求項２】
情報処理装置が、
アバタを操作して他のアバタと相互に通信することが可能な３次元仮想空間において、前記アバタの位置を中心とする所定の半径を有する球よりなる範囲を、それぞれの前記アバタについて、前記他のアバタからの情報を受信する範囲として規定する規定ステップと、
前記規定ステップの処理で規定された前記範囲であって、前記アバタの位置をカバーする前記範囲を有する前記他のアバタの情報を、アバタ毎の管理テーブルで管理する管理ステップと、
前記他のアバタのクライアントへの前記アバタが有する情報の送信の可否を示し、前記アバタのクライアントにより変更可能である設定を記憶する記憶ステップと、
前記アバタが有する情報を送信する旨が設定されている場合、前記管理テーブルに情報が登録されている前記他のアバタへの前記アバタの情報の送信を許可するように、前記他のアバタのクライアントへの前記アバタの情報の送信の可否を判定する判定ステップと
を含む情報処理方法。
【請求項３】
アバタを操作して他のアバタと相互に通信することが可能な３次元仮想空間において、前記アバタの位置を中心とする所定の半径を有する球よりなる範囲を、それぞれの前記アバタについて、前記他のアバタからの情報を受信する範囲として規定する規定ステップと、
前記規定ステップの処理で規定された前記範囲であって、前記アバタの位置をカバーする前記範囲を有する前記他のアバタの情報を、アバタ毎の管理テーブルで管理する管理ステップと、
前記他のアバタのクライアントへの前記アバタが有する情報の送信の可否を示し、前記アバタのクライアントにより変更可能である設定を記憶する記憶ステップと、
前記アバタが有する情報を送信する旨が設定されている場合、前記管理テーブルに情報が登録されている前記他のアバタへの前記アバタの情報の送信を許可するように、前記他のアバタのクライアントへの前記アバタの情報の送信の可否を判定する判定ステップと
を含む処理をコンピュータに実行させるためのプログラムが記録されている記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置および方法、並びに記録媒体に関し、特に、アバタを操作して他のアバタと相互に通信することが可能な３次元仮想空間を提供する情報処理装置および方法、並びに記録媒体に関する。
【０００２】
【従来の技術】
従来、NIFTY-Serve(商標)や米国のCompuServe(商標)などのように、複数の利用者が自らのパーソナルコンピュータを、モデムおよび公衆電話回線網を介してセンターのホストコンピュータに接続し、所定の通信プロトコルに基づいてホストコンピュータにアクセスする、いわゆるパソコン通信サービスの分野においては、Habitat（商標）と呼ばれるサイバースペースのサービスが知られている。
【０００３】
Habitatは、米国LucasFilm社によって1985年から開発が始められ、米国商業ネットワークであるQuantumLink社で約３年間運用された後、1990年2月に富士通Habitat（商標）としてNIFTY-Serveでそのサービスが開始されたものである。このHabitatにおいては、２次元グラフィックスで描画された「ポピュロポリス（Populopolis）」と呼ばれる仮想の都市に、アバタ（avatar；インド神話に登場する神の化身）と呼ばれるクライアントの分身（クライアント自身を表すオブジェクト）を送り込み、クライアント同士がチャット（Chat；文字の入力と表示によるテキストベースでのリアルタイムの対話）などを行うことができる。このHabitatの更に詳細な説明は、サイバースペース，マイケル・ベネディクト編，1994年3月20日初版発行，ＮＴＴ出版 ISBN4−87188−265−9C0010（原著；Cyberspace：First Steps ,Michael Benedikt,ed. 1991,MIT PressCambrige,MA ISBN0−262−02327−X）第282頁乃至第307頁に記載されている。
【０００４】
この種のパソコン通信サービスで運用されている従来のサイバースペースシステムにおいては、仮想的な街並みや部屋の内部の様子が２次元グラフィックスで描画されており、アバタを奥行きまたは手前方向へ移動させる場合、単にアバタを２次元グラフィックスの背景上で上下に移動させるだけであり、仮想空間内での歩行や移動を疑似体験させるには表示の上での表現力が乏しかった。また、自分の分身であるアバタと他人のアバタが表示された仮想空間を、第３者の視点で見ることになるため、この点においても、疑似体験の感覚が損なわれるものであった。
【０００５】
そこで、特開平9-81781号公報に開示されているように、仮想空間を３次元グラフィックスで表示し、クライアントがアバタの視点で自由に歩き回れる機能が、VRML(Virtual Reality Modeling Language)と呼ばれる３次元グラフィクスデータの記述言語を利用することによって実現されている。このVRMLの詳細は、例えば、「VRMLを知る：３次元電脳空間の構築とブラウジング〔マーク・ペッシ著，松田晃一・蒲地輝尚・竹内彰一・本田康晃・暦本純一・石川真之・宮下健・原和弘訳，１９９６年３月２５日初版発行，プレンティスホール出版ISBN4-931356-37-0〕（原著；VRML：Browsing & Building Cyberspace,Mark Pesce, 1995 New Readers Publishing ISBN 1-56205-498-8））」、または「VRMLの最新動向とCyberPassage〔松田晃一・本田康晃著、bit（共立出版）／1996 Vol.28 No.7 pp29〜pp36, No.8 pp57 〜pp65, No.9 pp29 〜pp36, No.10 pp49〜pp58〕」等の文献に記載されている。
【０００６】
また、「The Virtual Reality Modeling Language Version  2.0, ISO/IEC CD 14772」の公式かつ完全な仕様書は、「http://www.vrml.org/Specifications/VRML2.0/FINAL/spec/index.html」で公開されており、その日本語版は、「http://www.webcity.co.jp/info/andoh/VRML/vrml2.0/spec-jp/index.html」で公開されている。
【０００７】
VRMLの最新の言語であるVRML2.0においては、３次元的な仮想空間内におけるオブジェクトの自律的な振る舞い（Behavior）を記述し、表現することが可能とされている。これにより、例えば、VRML2.0用ブラウザに３次元グラフィックスで表示された仮想空間、即ち、３次元仮想空間を、アバタの視点で歩き回る場合には、クライアントは、自身がその３次元仮想空間内に実際にいるかのような感覚を享受することができる。
【０００８】
このVRML2.0用ブラウザおよび共有サーバ用ソフトウェアとしては、例えば、本出願人であるソニー株式会社が「Community Place(商標) Browser / Bureau」として開発し、製品化しており、そのβ版（試供版）を、インターネット上のホームページ「http://vs.sony co.jp」からダウンロードすることが可能とされている。
【０００９】
【発明が解決しようとする課題】
例えば、見学などで、多数のクライアントがそれぞれのアバタを操作して、３次元仮想空間を見て歩きたい場合でも、これらのアバタは、所定の操作毎に、他のアバタと情報を共有する為、システムの処理が増加し、伝送路の通信量も増加する。従って、正規のクライアントになる前に体験してみたいクライアントの、３次元仮想空間へのゲストとしての参加は、所定の人数以下に制限しなければならなかった。
【００１０】
本発明はこのような状況に鑑みてなされたものであり、システムの処理量および伝送路の通信量を著しく増加させずに、多数のクライアントが３次元仮想空間を体験することができるようすることを目的とする。
【００１１】
【課題を解決するための手段】
本発明の情報処理装置は、アバタを操作して他のアバタと相互に通信することが可能な３次元仮想空間において、アバタの位置を中心とする所定の半径を有する球よりなる範囲を、それぞれのアバタについて、他のアバタからの情報を受信する範囲として規定する規定手段と、規定手段により規定された範囲であって、アバタの位置をカバーする範囲を有する他のアバタの情報を、アバタ毎の管理テーブルで管理する管理手段と、他のアバタのクライアントへのアバタが有する情報の送信の可否を示し、アバタのクライアントにより変更可能である設定を記憶する記憶手段と、アバタが有する情報を送信する旨が設定されている場合、管理テーブルに情報が登録されている他のアバタへのアバタの情報の送信を許可するように、他のアバタのクライアントへのアバタの情報の送信の可否を判定する判定手段とを備える。
【００１２】
本発明の情報処理方法は、情報処理装置が、アバタを操作して他のアバタと相互に通信することが可能な３次元仮想空間において、アバタの位置を中心とする所定の半径を有する球よりなる範囲を、それぞれのアバタについて、他のアバタからの情報を受信する範囲として規定する規定ステップと、規定ステップの処理で規定された範囲であって、アバタの位置をカバーする範囲を有する他のアバタの情報を、アバタ毎の管理テーブルで管理する管理ステップと、他のアバタのクライアントへのアバタが有する情報の送信の可否を示し、アバタのクライアントにより変更可能である設定を記憶する記憶ステップと、アバタが有する情報を送信する旨が設定されている場合、管理テーブルに情報が登録されている他のアバタへのアバタの情報の送信を許可するように、他のアバタのクライアントへのアバタの情報の送信の可否を判定する判定ステップとを含む。
【００１３】
本発明の記録媒体のプログラムは、アバタを操作して他のアバタと相互に通信することが可能な３次元仮想空間において、アバタの位置を中心とする所定の半径を有する球よりなる範囲を、それぞれのアバタについて、他のアバタからの情報を受信する範囲として規定する規定ステップと、規定ステップの処理で規定された範囲であって、アバタの位置をカバーする範囲を有する他のアバタの情報を、アバタ毎の管理テーブルで管理する管理ステップと、他のアバタのクライアントへのアバタが有する情報の送信の可否を示し、アバタのクライアントにより変更可能である設定を記憶する記憶ステップと、アバタが有する情報を送信する旨が設定されている場合、管理テーブルに情報が登録されている他のアバタへのアバタの情報の送信を許可するように、他のアバタのクライアントへのアバタの情報の送信の可否を判定する判定ステップとを含む処理を実行させる。
【００１４】
本発明においては、アバタの位置を中心とする所定の半径を有する球よりなる範囲が、それぞれのアバタについて、他のアバタからの情報を受信する範囲として規定され、規定された範囲であって、アバタの位置をカバーする範囲を有する他のアバタの情報が、アバタ毎の管理テーブルで管理され、他のアバタのクライアントへのアバタが有する情報の送信の可否を示し、アバタのクライアントにより変更可能である設定が記憶される。そして、アバタが有する情報を送信する旨が設定されている場合、管理テーブルに情報が登録されている他のアバタへのアバタの情報の送信を許可するように、他のアバタのクライアントへのアバタの情報の送信の可否が判定される。
【００１５】
【発明の実施の形態】
以下に本発明の実施の形態を説明するが、特許請求の範囲に記載の発明の各手段と以下の実施の形態との対応関係を明らかにするために、各手段の後の括弧内に、対応する実施の形態（但し一例）を付加して本発明の特徴を記述すると、次のようになる。但し勿論この記載は、各手段を記載したものに限定することを意味するものではない。
【００１６】
すなわち、請求項１に記載の情報処理装置は、アバタの位置を中心とする所定の半径を有する球よりなる範囲を、それぞれのアバタについて、他のアバタからの情報を受信する範囲として規定する規定手段と、規定手段により規定された範囲であって、アバタの位置をカバーする範囲を有する他のアバタの情報を、アバタ毎の管理テーブルで管理する管理手段と、他のアバタのクライアントへのアバタが有する情報の送信の可否を示し、アバタのクライアントにより変更可能である設定を記憶する記憶手段（例えば、図５の共有オブジェクト管理テーブル１２ａ）と、アバタが有する情報を送信する旨が設定されている場合、管理テーブルに情報が登録されている他のアバタへのアバタの情報の送信を許可するように、他のアバタのクライアントへのアバタの情報を送信の可否を判定する判定手段とを備えることを特徴とする。
【００１７】
図１は本発明を適用したシステムの構成例を表している。なお、本明細書中において、システムとは、複数の装置が論理的に集合した物をいい、各構成の装置が同一筐体中にあるか否かは問わない。
【００１８】
図１において、クライアントＰＣ（パーソナルコンピュータ）１乃至３は、IP（インターネット接続サービスプロバイダ）４乃至６を介してインターネット（The Internet）７と接続されており、VRMLブラウザ及びWWWブラウザがインストールされ、インストールされたこれらのブラウザが動作するようになされている。
【００１９】
クライアントＰＣ１乃至３は、３Ｄクライアントおよび２Ｄクライアントの２つの機能を有している。３Ｄクライアントは、定期的あるいは必要なときに自分の位置情報などの情報を共有サーバ１２に通知し、また、共有サーバ１２から送られてくる他の３Ｄオブジェクトの共有情報を受信し、それを表示させる機能を有している。２Ｄクライアントは、HTTPに基づいてWWWサーバ１０に情報をリクエストし、その返事を受け取って、主に２次元情報を表示する機能を有する。３Ｄクライアントは、共有サーバ１２から受け取った情報内にURLが含まれている場合、２Ｄクライアントに、URLへのアクセスを要求する。２Ｄクライアントは、この要求に基づいてURL（WWWサーバ１０）にアクセスし、そこからデータ（例えばオブジェクトの形状データ）をダウンロードして、３Ｄクライアントに転送する。
【００２０】
インターネット７とルータ８を介して接続されたLAN(Local Area Network)9には、WWWサーバ１０、WLS（World Location Server）１１、共有サーバ１２、ＡＯ(Application Object)サーバ１３，１４、メールサーバ１５、およびコミュニケーションサーバ１６が接続されている。これらの各サーバ１０乃至１６には、ハードディスク（HDD）１０ａ，１０ｂ，１１ａ乃至１６ａが、各々設けられている。
【００２１】
なお、ＡＯサーバ１３は、共有サーバ１２と通信するプログラムを有し、例えば仮想空間内において、自律的に動作するロボットや電子ペットなどのアプリケーションオブジェクト（ＡＯ）を提供する。ＡＯサーバ１３は、３Ｄクライアントと同様に、共有サーバ１２と通信し、自分自身の情報を通知したり、他の３Ｄオブジェクトの共有情報を受信したりする。
【００２２】
コミュニケーションサーバ１６は、公衆電話回線網１７を介して電話機１８やファクシミリ１９と接続され、また、PHS(Personal Handyphone System)サービスプロバイダ２０を介してPHS端末２３に無線接続され、さらに、ポケットベルサービスプロバイダー２１を介してポケットベル端末２４に無線接続されている。
【００２３】
図２はクライアントＰＣ１のハードウェアの構成例を示すブロック図である。この例において、CPU３０は、ROM３４に記録されているプログラムに従って各種の処理を実行するようになされており、HDD３１はVRML 2.0ファイルや、Java(米国 Sun Microsystems社の商標)により記述された所定のスクリプトプログラム等からなるVRMLコンテンツなどが格納されている。CD-ROMドライブ３２は、CD−ROMディスク３３に格納されたVRMLコンテンツ等の情報を読み取るようになされている。
【００２４】
サウンド処理回路３５は、マイクロフォン３６と左右のスピーカ３７，３８が接続されており、マイクロフォン３６からの音声を入力し、または、音楽や効果音等をスピーカ３７，３８から出力する。モデム３９は、インターネット７に接続され、データを授受するようになされている。I/O（入出力）インタフェース４０はマウス４１とキーボード４２からの操作信号を受け付けるようになされている。グラフィックス回路４３は、VRAM４４が内蔵されており、各種の処理を施した画像データをVRAM４４に格納し、VRAM４４から読み出した画像データを、CRTモニタ４５に表示させる。
【００２５】
RAM４６には、実行時に、例えば、Windows95(米国Micro Soft社の商標) の上で動作するWWWブラウザであるNetscape Navigator、Javaインタプリタ、および、本出願人であるソニー株式会社によって開発されたVRML2.0ブラウザであるCommunity Place Browserが読み込まれて、CPU３０によって実行される状態とされている。
【００２６】
VRML2.0ブラウザには、米国シリコングラフィクス社によって開発され、無償公開されているVRMLの構文解釈用ライブラリ(パーサ)であるQvLibと、英国Criterion Software Ltd.のソフトウエアレンダラであるRenderWare等、もしくはこれらと同等の機能を有するパーサやレンダラが実装されている。
【００２７】
そして、 Community Place Browserは、図１に示すように、WWWブラウザとしてのNetscape Navigatorとの間において、NCAPI（Netscape Client Application Programing Interface）（商標）に基づいて各種データの授受を行う。
【００２８】
Netscape Navigatorは、インターネット７を介してWWWサーバ１０よりHTMLファイルとVRMLコンテンツ(VRMLファイルとJavaによるスクリプトプログラムとを含む）の供給を受けると、これらをローカルのHDD３１にそれぞれ記憶させる。Netscape Navigatorは、このうちのHTMLファイルを処理してテキストや画像をCRTモニタ４５に表示する一方、 Community Place BrowserはVRMLファイルを処理して３次元仮想空間をCRTモニタ４５に表示させるとともに、Javaインタプリタによるスクリプトプログラムの処理結果に応じて、３次元仮想空間内のオブジェクトの挙動、その他の表示状態を変化させる。
【００２９】
なお、図示は省略するが、他のクライアントＰＣ２やクライアントＰＣ３も、クライアントＰＣ１と同様に構成されている。
【００３０】
次に上述した一実施の形態の動作について、図３乃至５を参照して説明する。図３において、番号１で示すように、最初に、WWWブラウザを用いて、VRMLコンテンツを提供しているWebサイトのホームページを閲覧する。この例では、 「http://pc.sony.co.jp/sapari/」を閲覧している。次に、番号２で示すように、クライアントＰＣ１またはクライアントＰＣ２のユーザは、VRML2.0ファイルと、VRML空間内での自律的な動きを実現するためのスクリプトプログラム（Javaによるスクリプトプログラム）とからなるVRMLコンテンツを、それぞれダウンロードする。
【００３１】
勿論、 CD-ROMディスク３３で提供されるVRMLコンテンツをCD−ROMドライブ３２で読み込んでも良い。
【００３２】
次に、図４に示すように、クライアントＰＣ１またはクライアントＰＣ２では、それぞれにダウンロードされ、一旦ローカルのHDD３１に格納されたVRML2.0ファイルを、VRML2.0ブラウザであるCommunity Place Browserが解釈するとともに実行し、さらに番号３で示すように、VSCP(Virtual Society Server Client Protocol)に基づいて、WLS１１に対して共有サーバ１２のURLを問い合わせる。このとき番号４で示すように、WLS１１は、HDD１１ａに格納された共有サーバURL管理テーブルを参照して、クライアントＰＣ１またはクライアントＰＣ２に対して、共有サーバ１２のURLを通知する。
【００３３】
このURLを用いて、図５に示すように、クライアントＰＣ１とクライアントＰＣ２が、共有サーバ１２に接続する。その結果、番号５で示すように、この共有サーバ１２を介して共有3Dオブジェクトの位置や動きなどに関する共有メッセージの送信が行われ、番号６で示すように、その転送が行われ、マルチユーザ環境が実現される。
【００３４】
なお、以上の接続手順の詳しい説明については、特開平9-81781号公報を参照されたい。
【００３５】
また、ここでは、３次元仮想空間を、マルチユーザ環境で使用することとしているが、マルチユーザ環境で使用しないこと（以下、適宜、シングルユーザ環境という）、即ち、自身以外の他のユーザのアバタ（ドローンアバタ）を登場させないようにするとともに、自身のアバタ（パイロットアバタ）を、他のユーザのクライアントの３次元仮想空間に登場させないようにすることも可能である。これは、上述した番号３乃至６で表した処理を行わないようにすることで実現することができる。
【００３６】
次に、図６を参照して、オーラについて説明する。同図に示すように、パイロットアバタ５１の周囲には、パイロットアバタ５１を中心とする所定の半径を有する球よりなるオーラ５２が形成される。パイロットアバタ５１は、オーラ５２の内部に位置する他のオブジェクトからの情報を受信することができる。具体的には、図６に示すように、パイロットアバタ５１は、オーラ５２内に位置するドローンアバタ５３−１とオブジェクト（ＡＯ）５４−１を視認することができる（それらの画像がパイロットアバタ５１のクライアントＰＣのCRTモニタに表示される）が、オーラ５２の外部に位置するドローンアバタ５３−２やオブジェクト５４−２を視認することができない（ドローンアバタ５３−２やオブジェクト（ＡＯ）５４−２の画像は、パイロットアバタ５１のクライアントＰＣのCRTモニタには表示されない）。
【００３７】
他のドローンアバタ５３−１，５３−２、オブジェクト５４−１，５４−２にも同様にオーラが設定される。なお、このシステムにおいては、各クライアントＰＣが対応するアバタのオーラは同一の大きさとされるが、ＡＯのオーラは、必要に応じてアバタのオーラとは異なる範囲に設定される。
【００３８】
このように、オーラ５２を規定することで、パイロットアバタ５１は、ドローンアバタ５３−１とオブジェクト５４−１からの情報を受け取る必要があるが、オーラ５２の外部に位置するドローンアバタ５３−２またはオブジェクト５４−２からの情報は受信する必要がないので、受信する情報量を制限することが可能となる。
【００３９】
すなわち、例えば、図７に示すように、アバタ５１が移動すると、その新たな位置情報が共有サーバ１２に転送される。共有サーバ１２は、アバタ５１の新たな位置に対応するオーラ５２の内部にどのようなオブジェクト（アバタを含む）が位置するのかを判断し、そのオブジェクトに関する情報をアバタ５１のクライアントＰＣに通知する。図７に示す例では、アバタ５１の移動後のオーラ５２の内部にオブジェクト５４−１が存在するため、共有サーバ１２は、オブジェクト５４−１の情報をアバタ５１のクライアントＰＣに通知する。これにより、アバタ５１のクライアントＰＣには、オブジェクト５４−１の画像が表示され、アバタ５１のユーザは、オブジェクト５４−１を視認することができる。
【００４０】
図８は、多数のアバタがオーラの内部に位置するときの状態を説明する図である。パイロットアバタ５１のオーラ５２の内部には、アバタ６１のみ位置している場合、パイロットアバタ５１は、アバタ６１と、それぞれが有する情報を共有する。このとき、共有サーバ１２は、パイロットアバタ５１が有する情報およびアバタ６１が有する情報を受信し、パイロットアバタ５１に対応するクライアントＰＣ１にアバタ６１が有する情報を送信し、アバタ６１に対応するクライアントＰＣ（例えば、クライアントＰＣ２）にパイロットアバタ５１が有する情報を送信する。
【００４１】
しかし、図８に示すように、アバタ６１のオーラ６２の内部に、パイロットアバタ５１、アバタ６３およびアバタ６４が位置する場合、アバタ６１は、パイロットアバタ５１、アバタ６３およびアバタ６４とそれぞれが有する情報を共有する。このとき、共有サーバ１２は、パイロットアバタ５１が有する情報、アバタ６１が有する情報、アバタ６３が有する情報、およびアバタ６４が有する情報を受信し、アバタ６１に対応するクライアントＰＣにパイロットアバタ５１が有する情報、アバタ６３が有する情報、およびアバタ６４が有する情報を送信し、パイロットアバタ５１に対応するクライアントＰＣ１にアバタ６１が有する情報、アバタ６３が有する情報、およびアバタ６４が有する情報を送信し、アバタ６３に対応するクライアントＰＣにパイロットアバタ５１が有する情報、アバタ６１が有する情報、およびアバタ６４が有する情報を送信し、アバタ６４に対応するクライアントＰＣにパイロットアバタ５１が有する情報、アバタ６１が有する情報、およびアバタ６３が有する情報を送信する。
【００４２】
このように、オーラ内に複数のオブジェクトが位置すると、共有サーバ１２に対する負荷は、急激に増加し、インターネット７およびＬＡＮ９のトラフィックも急激に増加する。
【００４３】
そこで、オーラ内に複数のオブジェクトが位置しても、共有サーバ１２の負荷の急激な増加を抑制するために、ゲストのアバタ６１の情報をパイロットアバタ５１に通信しないように設定したときの動作を図９で説明する。他のオブジェクトに情報を送信しないように設定したゲストのアバタ６１が、パイロットアバタ５１のオーラ５２に進入した場合、共有サーバ１２は、パイロットアバタ５１の情報をゲストのアバタ６１に対応したクライアントＰＣに送信するが、ゲストのアバタ６１の情報をクライアントＰＣ１に送信しない。このため、パイロットアバタ５１のオーラ５２内に、このようなゲストのアバタが複数進入しても、共有サーバ１２の処理の負荷は、オブジェクトが情報を共有する場合に比較し、急激に増加せず、伝送路のトラフィックも急激に増加しない。
【００４４】
図１０は、各アバタに対応して共有サーバ１２の共有オブジェクト管理テーブル１２ａに記憶される情報管理テーブルを説明する図である。情報管理テーブルは、アバタ（自分自身）の位置をカバーするオーラを有するオブジェクトの名前のリスト、アバタのオーラのなかに位置するオブジェクトの名前のリスト、および真（TRUE）または偽（FALSE）の値を有する透明フラグを有する。アバタ（自分自身）の位置をカバーするオーラを有するオブジェクトの名前のリストの内容、およびアバタのオーラのなかに位置するオブジェクトの名前のリストの内容は、対応するアバタの動作および３次元仮想空間内のオブジェクトの動作に対応して、共有サーバ１２により書き換えられる。
【００４５】
透明フラグが真である場合、共有サーバ１２は、透明フラグが真であるアバタの情報を他のアバタに送信しない。透明フラグが偽である場合、共有サーバ１２は、透明フラグが偽であるアバタが他のアバタのオーラ内の進入したとき、その情報を他のアバタに送信する。透明フラグは、クライアントのクライアントＰＣ１乃至３の操作により、その設定が変更可能とされる。
【００４６】
このように、情報管理テーブルの透明フラグの値を変更することにより、他のアバタへの情報の送信を制限することができる。
【００４７】
次に、他のアバタとの情報を共有する処理を図１１のフローチャートを参照して説明する。この処理は、所定のアバタ（オブジェクト）から他の位置への移動が通知されてきたとき、または、透明フラグの変更が通知されてきたとき開始される。ステップＳ１１において、共有サーバ１２は、図１２を参照して後述する、アバタのオーラからオブジェクトが離脱するのを検出する離脱検出処理を実行する。ステップＳ１２において、共有サーバ１２は移動メッセージを受信して、このフローチャートの処理を開始したときは、その移動メッセージを各クライアントＰＣに送信する。ステップＳ１３において、共有サーバ１２は、図１３を参照して後述する、各アバタのオーラにオブジェクトが進入するのを検出する進入検出処理を実行する。
【００４８】
図１１のステップＳ１１に対応する離脱検出処理の詳細を、図１２のフローチャートを参照して説明する。ステップＳ２１において、共有サーバ１２は、情報管理テーブルを参照し、パイロットアバタであるアバタＺのオーラの中に位置するオブジェクトを１つ選び、オブジェクトＸとする。ステップＳ２２において、共有サーバ１２は、情報管理テーブルを参照し、アバタＺのオーラの中に位置する全てのオブジェクトの検査を終了したか否かを判定し、アバタＺのオーラの中に位置する全てのオブジェクトの検査をまだ終了していないと判定された場合、ステップＳ２３に進む。ステップＳ２３において、共有サーバ１２は、アバタＺのオーラの中にオブジェクトＸが位置しないか否か、または、情報管理テーブルを参照して、アバタＺの透明フラグの値が真であるか否かを判定し、アバタＺのオーラの中にオブジェクトＸが位置しないか、または、アバタＺの透明フラグの値が真であると判定された場合、ステップＳ２４に進む。
【００４９】
ステップＳ２４において、共有サーバ１２は、アバタＺの情報管理テーブルのアバタＺのオーラのなかに位置するオブジェクトの名前のリストから、オブジェクトＸが登録されていれば、それを消去する。ステップＳ２５において、共有サーバ１２は、オブジェクトＸの情報管理テーブルのオブジェクトＸの位置をカバーするオーラを有するオブジェクトの名前のリストに、アバタＺが登録されていれば、それを消去する。ステップＳ２６において、共有サーバ１２は、アバタＺおよびオブジェクトＸの情報管理テーブルを更新し、ステップＳ２１に戻る。
【００５０】
ステップＳ２３において、アバタＺのオーラの中にオブジェクトＸが位置しており、かつ、アバタＺの透明フラグの値が偽であると判定された場合、ステップＳ２４乃至ステップＳ２６の処理はスキップされ（情報管理テーブルの更新は行われず）、手続きは、ステップＳ２１に戻る。
【００５１】
ステップＳ２２において、アバタＺのオーラの中に位置する全てのオブジェクトの検査を終了したと判定された場合、手続きは、ステップＳ２７に進み、共有サーバ１２は、情報管理テーブルを参照し、アバタＺの位置をカバーするオーラを有するオブジェクトを１つ選び、オブジェクトＸとする。ステップＳ２８において、共有サーバ１２は、アバタＺの位置をカバーするオーラを有する全てのオブジェクトの以下の検査を終了したか否かを判定し、アバタＺの位置をカバーするオーラを有する全てのオブジェクトの以下の検査をまだ終了していないと判定された場合、ステップＳ２９に進み、オブジェクトＸのオーラのなかにアバタＺが位置しないか否か、または、オブジェクトＸの透明フラグが真であるか否かを判定する。
【００５２】
ステップＳ２９において、オブジェクトＸのオーラのなかにアバタＺが位置しないか、または、オブジェクトＸの透明フラグが真であると判定された場合、ステップＳ３０に進み、共有サーバ１２は、オブジェクトＸの情報管理テーブルのオブジェクトＸのオーラのなかに位置するオブジェクトの名前のリストに、アバタＺが登録されていればそれを消去する。ステップＳ３１において、共有サーバ１２は、アバタＺの情報管理テーブルのアバタＺの位置をカバーするオーラを有するオブジェクトの名前のリストに、オブジェクトＸが登録されていればそれを消去する。ステップＳ３２において、共有サーバ１２は、アバタＺおよびオブジェクトＸの情報管理テーブルを更新し、ステップＳ２７に戻る。
【００５３】
ステップＳ２９において、オブジェクトＸのオーラのなかにアバタＺが位置しており、かつ、オブジェクトＸの透明フラグが偽であると判定された場合、Ｓ３０乃至ステップＳ３２の処理はスキップされ（情報管理テーブルの更新処理は行われず）、手続は、ステップＳ２７に戻る。
【００５４】
ステップＳ２８において、アバタＺの位置をカバーするオーラを有する全てのオブジェクトの検査を終了したと判定された場合、処理は終了する。
【００５５】
以上のようにして、パイロットアバタであるアバタＺのオーラからのオブジェクトの離脱検出処理が実行される。
【００５６】
図１１のステップＳ１３に対応する、進入検出処理の詳細を、図１３のフローチャートを参照して説明する。ステップＳ４１において、共有サーバ１２は、仮想空間の中からオブジェクトを選択し、オブジェクトＸとする。ステップＳ４２において、共有サーバ１２は、仮想空間の中の全てのオブジェクトについて以下の処理を実行したか否かを判定し、仮想空間の中の全てのオブジェクトについて以下の処理をまだ実行していないと判定された場合、ステップＳ４３に進み、オブジェクトＸが、パイロットアバタであるアバタＺであるか否かを判定する。ステップＳ４３において、オブジェクトＸが、パイロットアバタであるアバタＺであると判定された場合、手続は、ステップＳ４１に戻る。
【００５７】
ステップＳ４３において、オブジェクトＸが、パイロットアバタであるアバタＺではないと判定された場合、ステップＳ４４に進み、共有サーバ１２は、オブジェクトＸの情報管理テーブルを参照し、透明フラグが真であるか否かを判定し、オブジェクトＸの透明フラグが偽であると判定された場合、ステップＳ４５に進み、アバタＺの情報管理テーブルのアバタＺのオーラの中に位置するオブジェクトのリストの中にオブジェクトＸが入っておらず、かつ、アバタＺのオーラの中にオブジェクトＸが入っているか否かを判定する。ステップＳ４５において、アバタＺの情報管理テーブルのアバタＺのオーラの中に位置するオブジェクトのリストの中にオブジェクトＸが入っておらず、かつ、アバタＺのオーラの中にオブジェクトＸが入っていると判定された場合、ステップＳ４６に進み、共有サーバ１２は、アバタＺの情報管理テーブルのアバタＺのオーラの中に位置するオブジェクトのリストの中にオブジェクトＸを追加する。ステップＳ４７において、共有サーバ１２は、オブジェクトＸの情報管理テーブルのオブジェクトＸの位置をカバーするオーラを有するオブジェクトのリストの中にアバタＺを追加する。ステップＳ４８において、共有サーバ１２は、アバタＺおよびオブジェクトＸの情報管理テーブルを更新し、ステップＳ４９に進む。
【００５８】
ステップＳ４４において、透明フラグが真であると判定された場合、ステップＳ４６乃至ステップＳ４８の処理は、スキップされる（すなわち、オブジェクトＸは、アバタＺに対して透明人間とされ、登録されない）。ステップＳ４５において、アバタＺの情報管理テーブルのアバタＺのオーラの中に位置するオブジェクトのリストの中にオブジェクトＸが入っていると判定された場合、既に登録済みであるから、ステップＳ４６乃至ステップＳ４８の処理はスキップされる。また、アバタＺのオーラの中にオブジェクトＸが入っていないと判定された場合、登録する必要がないので、ステップＳ４６乃至ステップＳ４８の処理はスキップされる。
【００５９】
その後、ステップＳ４９に進み、共有サーバ１２は、アバタＺの情報管理テーブルを参照し、アバタＺの透明フラグが真であるか否かを判定し、アバタＺの透明フラグが偽であると判定された場合、ステップＳ５０に進み、アバタＺの情報管理テーブルのアバタＺの位置をカバーするオーラを有するオブジェクトのリストの中にオブジェクトＸが入っておらず、かつ、オブジェクトＸのオーラの中にアバタＺが入っているか否かを判定する。ステップＳ５０において、アバタＺの情報管理テーブルのアバタＺの位置をカバーするオーラを有するオブジェクトのリストの中にオブジェクトＸが入っておらず、かつ、オブジェクトＸのオーラの中にアバタＺが入っていると判定された場合、ステップＳ５１に進み、共有サーバ１２は、オブジェクトＸの情報管理テーブルのオブジェクトＸのオーラの中に位置するオブジェクトのリストの中にアバタＺを追加する。ステップＳ５２において、共有サーバ１２は、アバタＺの情報管理テーブルのアバタＺの位置をカバーするオーラを有するオブジェクトのリストの中にオブジェクトＸを追加する。ステップＳ５３において、共有サーバ１２は、アバタＺおよびオブジェクトＸの情報管理テーブルを更新し、ステップＳ４１に戻る。
【００６０】
ステップＳ４９において、アバタＺの透明フラグが真であると判定された場合、ステップＳ５１乃至ステップＳ５３の処理はスキップされ、アバタＺはオブジェクトＸの情報管理テーブルに登録されない（透明人間として処理される）。ステップＳ５０において、アバタＺの情報管理テーブルのアバタＺの位置をカバーするオーラを有するオブジェクトのリストの中にオブジェクトＸが入っていると判定された場合、既に登録されているので、再度登録する必要がなく、ステップＳ５１乃至ステップＳ５３の処理はスキップされる。また、オブジェクトＸのオーラの中にアバタＺが入っていないと判定された場合、登録の必要がないのでステップＳ５１乃至ステップＳ５３の処理はスキップされる。その後、手続は、ステップＳ４１に戻る。
【００６１】
ステップＳ４２において、仮想空間の中の全てのオブジェクトについて処理を実行したと判定された場合、処理は終了する。
【００６２】
以上のようにして、アバタＺのオーラ内へのオブジェクトの進入検出処理が実行される。
【００６３】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものとする。
【００６４】
なお、上記したような処理を行うコンピュータプログラムをクライアントに提供する提供媒体としては、磁気ディスク、CD-ROM、固体メモリなどの記録媒体の他、ネットワーク、衛星などの通信媒体を利用することができる。
【００６５】
【発明の効果】
本発明によれば、システムの処理量および伝送路の通信量を著しく増加させずに、多数のクライアントが３次元仮想空間を体験することができる。
【図面の簡単な説明】
【図１】本発明を適用した共有仮想空間提供システムの構成例を示すブロック図である。
【図２】図１のクライアントＰＣ１の構成例を示すブロック図である。
【図３】図１のシステムの動作を説明する図である。
【図４】図１のシステムの動作を説明する図である。
【図５】図１のシステムの動作を説明する図である。
【図６】オーラを説明する図である。
【図７】アバタが、オーラ内部に位置するオブジェクトと情報を共有する処理を説明する図である。
【図８】多数のアバタがオーラの内部に位置するときの状態を説明する図である。
【図９】ゲストのアバタ６１がパイロットアバタであるアバタ５１に情報を通信しないように設定したときの動作を説明する図である。
【図１０】各アバタに対応して共有サーバ１２に記憶される情報管理テーブルを説明する図である。
【図１１】他のアバタとの情報を共有する処理を図１１のフローチャートを参照して説明する。
【図１２】離脱検出処理の詳細を説明するフローチャートである。
【図１３】進入検出処理の詳細を説明するフローチャートである。
【符号の説明】
１，２，３  クライアントＰＣ，  １２  共有サーバ，  １２ａ  共有オブジェクト管理テーブル，  ５１  パイロットアバタ，  ５２  オーラ，  ６１，６３，６４  アバタ
【図１】
0004232232.tif 000002
【図２】
0004232232.tif 000003
【図３】
0004232232.tif 000004
【図４】
0004232232.tif 000005
【図５】
0004232232.tif 000006
【図６】
0004232232.tif 000007
【図７】
0004232232.tif 000008
【図８】
0004232232.tif 000009
【図９】
0004232232.tif 000010
【図１０】
0004232232.tif 000011
【図１１】
0004232232.tif 000012
【図１２】
0004232232.tif 000013
【図１３】
0004232232.tif 000014