(57)【特許請求の範囲】
【請求項１】
３次元仮想空間におかれたオブジェクトからの情報を処理する情報処理装置において、
前記オブジェクトを、その３次元仮想空間情報に基づいて、複数の面に分解可能な最小単位の単位オブジェクトに分解し、前記複数の面のそれぞれについて、他の面の境界とが分離または接合されるように、前記単位オブジェクトを１平面上に展開することで、２次元の展開図を作成する展開手段と、
前記３次元仮想空間情報に基づいて、前記展開図を構成する複数の面のうち、他の面と分離された面について、その分離された境界に沿って糊代を付加する糊代付加手段と
を備える
ことを特徴とする情報処理装置。
【請求項２】
前記単位オブジェクトとして、多面体、基本オブジェクト、前記基本オブジェクトを２以上組み合わせたもの、前記多面体と前記基本オブジェクトとを組み合わせたものの４種類が定義され、
前記４種類毎に、前記単位オブジェクトから前記展開図を作成するために適用するアルゴリズムがそれぞれ決まっており、
前記展開手段は、前記単位オブジェクトの種類を認識し、認識した種類に応じたアルゴリズムに従って、前記展開図を作成する
請求項１に記載の情報処理装置。
【請求項３】
前記単位オブジェクトが前記多面体の場合のアルゴリズムとして、前記多面体を複数の３角形の面に区分し、前記複数の３角形の面のそれぞれについて、他の面の境界とが分離または接合されるように、前記単位オブジェクトを１平面上に展開するアルゴリズムが適用され、
前記単位オブジェクトのうちの前記基本オブジェクトとして、立方体、円錐、円柱、および、球の４種類が定義され、
前記単位オブジェクトが前記立方体の場合のアルゴリズムとして、前記多面体の場合のアルゴリズムが適用され、
前記単位オブジェクトが前記円錐の場合のアルゴリズムとして、近似形状で表現しない場合には、円錐本来の展開図形処理を実現する場合のアルゴリズムが適用され、近似形状で表現する場合には、底面をｎ等分割した上で、前記多面体の場合のアルゴリズムが適用され、
前記単位オブジェクトが前記円柱の場合のアルゴリズムとして、近似形状で表現しない場合には、円柱本来の展開図形処理を実現する場合のアルゴリズムが適用され、近似形状で表現する場合には、上下底面をｎ等分割した上で、前記多面体の場合のアルゴリズムが適用され、
前記単位オブジェクトが前記球の場合のアルゴリズムとして、緯度方向ｎ等分割、経度方向ｍ等分割した上で、前記多面体の場合のアルゴリズムが適用され、
前記単位オブジェクトが、前記基本オブジェクトを２以上組み合わせたものまたは前記多面体と前記基本オブジェクトと組み合わせたものである場合には、前記展開手段は、前記単位オブジェクトを前記基本オブジェクトまたは前記多面体の単位で分解して、分解された前記基本オブジェクトまたは前記多面体について、対応するアルゴリズムを適用して、それぞれの展開図を作成し、前記糊代手段は、さらに、分解された前記基本オブジェクトまたは前記多面体のそれぞれを接合する面に糊代をつける
請求項２に記載の情報処理装置。
【請求項４】
前記オブジェクトを近似形状で表現するための分割数および糊代形状の設定を行う設定手段を
さらに備えることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記展開図に前記３次元仮想空間情報に基づいて、色の情報を付加する色付加手段を
さらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記展開図の糊代は、３次元仮想空間におかれた前記オブジェクトを実空間で再構成するとき張り合わされる領域である
さらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記展開手段により展開された前記２次元の展開図を印刷する印刷手段を
さらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項８】
前記３次元仮想空間におかれた前記オブジェクトを構成する複数の基本オブジェクトの衝突を判定する判定手段を
さらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項９】
前記判定手段により前記複数の基本オブジェクトの衝突が判定された場合、その衝突する領域を計算する計算手段を
さらに備えることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
３次元仮想空間におかれたオブジェクトからの情報を処理する情報処理装置の情報処理方法において、
前記オブジェクトを、その３次元仮想空間情報に基づいて、複数の面に分解可能な最小単位の単位オブジェクトに分解し、前記複数の面のそれぞれについて、他の面の境界とが分離または接合されるように、前記単位オブジェクトを１平面上に展開することで、２次元の展開図を作成する展開ステップと、
前記３次元仮想空間情報に基づいて、前記展開図を構成する複数の面のうち、他の面と分離された面について、その分離された境界に沿って糊代を付加する糊代付加ステップと
を
含むことを特徴とする情報処理方法。
【請求項１１】
３次元仮想空間におかれたオブジェクトからの情報を処理する情報処理装置を制御するコンピュータに実行させるプログラムにおいて、
前記オブジェクトを、その３次元仮想空間情報に基づいて、複数の面に分解可能な最小単位の単位オブジェクトに分解し、前記複数の面のそれぞれについて、他の面の境界とが分離または接合されるように、前記単位オブジェクトを１平面上に展開することで、２次元の展開図を作成する展開ステップと、
前記３次元仮想空間情報に基づいて、前記展開図を構成する複数の面のうち、他の面と分離された面について、その分離された境界に沿って糊代を付加する糊代付加ステップと
を
含む制御処理をコンピュータに実行させるプログラムが記録されている記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置および方法、並びに記録媒体に関し、特に、３次元仮想空間におかれたオブジェクトからの情報を２次元の展開図とすることで３次元仮想空間におかれたオブジェクトの実空間での再構成を可能にした情報処理装置および方法、並びに記録媒体に関する。
【０００２】
【従来の技術】
従来、NIFTY-Serve（商標）や米国のCompuserve（商標）などのように、複数の利用者が自らのパーソナルコンピュータを、モデムおよび公衆電話回線網を介してセンタのホストコンピュータに、所定の通信プロトコルに基づいてアクセスする、いわゆるパソコン通信サービスの分野においては、Habitat（商標）と呼ばれるサイバスペースのサービスが知られている。
【０００３】
Habitatは、米国LucasFilm社によって1985年から開発が始められ、米国商業ネットワークであるQuantumLink社で約３年間運用された後、1990年2月に富士通Habitat（商標）としてNIFTY-Serveでそのサービスが開始されたものである。このHabitatにおいては、２次元グラフィックスで描画された「ポピュロポリス(Populopolis）」と呼ばれる仮想の都市に、アバタ（avatar；インド神話に登場する神の化身）と呼ばれるユーザの分身（ユーザ自身を表すオブジェクト）を送り込み、ユーザ自身がチャット(Chat;文字の入力と表示によるテキストベースでのリアルタイムの対話）などを行うことができる。このHabitatの更に詳細な説明は、サイバースペース，マイケルベネディクト編，1994年3月20日初版発行，NTT出版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を知る：３次元電脳空間の構築とブラウジング［マーク・ペッシ著，松田晃一・蒲地輝尚・竹内彰一・本田康晃・暦本純一・石川真之・宮下健・原和弘訳，1996年3月25日初版発行，プレンティスホール出版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（Hyper Text Transfer Protocol)に基づいてWWW(World-Wide Web)サーバ１０に情報をリクエストし、その返事を受け取って、主に２次元情報を表示する機能を有する。３Ｄクライアントは、共有サーバ１２から受け取った情報内にURL(Uniform Resource Locator)が含まれている場合、２Ｄクライアントに、URLへのアクセスを要求する。２Ｄクライアントは、この要求に基づいてURL(WWWサーバ１０)にアクセスし、そこからデータ（例えばオブジェクトの形状データ）をダウンロードして、３Ｄクライアントに転送する。
【００４２】
インターネット７とルータ８を介して接続されたLAN(Local  Area  Network)９には、WWWサーバ１０、WLS(World Location Server)１１、共有サーバ１２、ＡＯ(Application Object)サーバ１３，１４、メールサーバ１５、および、コミュニケーションサーバ１６が接続されている。これらの各サーバ１０乃至１６には、ハードディスク(HDD)１０ａ，１０ｂ，１１ａ乃至１６ａが、各々設けられている。
【００４３】
なお、ＡＯサーバ１３は、共有サーバ１２と通信するプログラムを有し、例えば仮想空間内において、自律的に動作するロボットや電子ペットなどのアプリケーションオブジェクト（ＡＯ）を提供する。ＡＯサーバ１３は、３Ｄクライアントと同様に、共有サーバ１２と通信し、自分自身の情報を通知したり、他の３Ｄオブジェクトの共有情報を受信したりする。
【００４４】
コミュニケーションサーバ１６は、公衆電話回線網１７を介して電話機１８やファクシミリ１９と接続され、また、PHS(Personal Handyphone System）サービスプロバイダ２０を介してPHS端末２３に無線接続され、さらに、ポケットベルサービスプロバイダ２１を介してポケットベル端末２４に無線接続されている。図２はクライアントＰＣ１のハードウェアの構成例を示すブロック図である。この例において、CPU３０は、ROM３４に記録されているプログラムに従って各種の処理を実行するようになされており、HDD３１にはVRML2.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を用いて、図５に示すように、クライアントＰＣ１とクライアントＰＣ２が、共有サーバ１２に接続される。その結果、番号５で示すように、この共有サーバ１２を介して共有３Ｄオブジェクトの位置や動きなどに関する共有メッセージの送信が行われ、番号６で示すように、その転送が行われ、マルチユーザ環境が実現される。
【００５５】
なお、以上の接続手順の詳しい説明については、特開平9-81781号公報を参照されたい。
【００５６】
次に、図６のフローチャートを参照して、３次元仮想空間のオブジェクトデータに基づいて２次元の展開図を生成する手順について説明する。VRMLで記述される３次元仮想空間のオブジェクトは、多面体、基本３Ｄオブジェクト（立方体、円錐、円柱、および球）、基本３Ｄオブジェクトを合成したもの、多面体および基本３Ｄオブジェクトを合成したものを組み合わせたもの、の４種類に大きく分類される。すなわち、VRMLによって記述される３Ｄオブジェクトは、４種類のいずれかの種類となる。
【００５７】
クライアントＰＣ１のCPU３０は、処理をスタートし、ステップＳ１１において、未処理のオブジェクトが有るかどうかを判定し、未処理のオブジェクトが有ると判断される場合、ステップＳ１２において、オブジェクトが３次元仮想空間の分解不可能な最小単位のオブジェクトになっているか否かを判定する。
【００５８】
すなわち、CPU３０は、オブジェクトが、４種類のオブジェクトのいずれかに既に分解されているか否かを判定する。オブジェクトが、まだ、それ以上分解不可能な最小単位のオブジェクトにまで分解されていないとき、CPU３０は、ステップＳ１３において、オブジェクトを最小単位まで分解する。
【００５９】
ステップＳ１２において、オブジェクトが分解不可能な最小単位のオブジェクトに分解されていると判断された場合、CPU３０は、ステップＳ１４乃至Ｓ１６において、オブジェクトが、４種類のどの種類であるかを判定する。すなわち、CPU３０は、ステップＳ１４において、オブジェクトが、多面体から形成されるオブジェクトであるか否かを判定し、多面体から形成されるオブジェクトであると判定されたとき、ステップＳ１７に進み、多面体処理を実行する（その詳細は後述するが、この多面体処理で、多面体が展開図に展開される）。オブジェクトが、多面体から形成されるオブジェクトではないと判定された場合、ステップＳ１５において、CPU３０は、オブジェクトが、基本３Ｄオブジェクトであるか否かを判定する。
【００６０】
ステップＳ１５において、オブジェクトが、基本３Ｄオブジェクトであると判定されたとき、ステップＳ１８に進み、CPU３０は、基本３Ｄオブジェクト処理を実行する（その詳細は後述するが、この基本３Ｄオブジェクト処理で、基本３Ｄオブジェクトが展開図に展開される）。ステップＳ１５において、オブジェクトが、基本３Ｄオブジェクトではないと判断された場合、ステップＳ１６において、CPU３０は、オブジェクトが、基本３Ｄオブジェクトを合成したオブジェクトであるか否かを判定する。
【００６１】
ステップＳ１６において、オブジェクトが基本３Ｄオブジェクトを合成したオブジェクトであると判断された場合、ステップＳ１９に進み、CPU３０は、基本３Ｄオブジェクト合成処理を実行する（その詳細は後述するが、この基本３Ｄオブジェクト合成処理で、基本３Ｄオブジェクトを合成したオブジェクトが展開図に展開される）。ステップＳ１６において、オブジェクトが、基本３Ｄオブジェクトを合成したオブジェクトではないと判断された場合、オブジェクトは、多面体と基本３Ｄオブジェクトを合成したオブジェクトの組み合わせによるオブジェクトということになるので、ステップＳ２０へ進み、CPU３０は、全合成処理を実行する（その詳細は後述するが、この全合成処理で、多面体と基本３Ｄオブジェクトを合成したオブジェクトを組み合わせたオブジェクトが、展開図に展開される）。
【００６２】
ステップＳ１７乃至Ｓ２０（展開手段）の処理の後、ステップＳ２１（色付加手段）において、CPU３０は、展開図の各面へ色の情報を付加する処理を実行し、ステップＳ１１に戻り、それ以降の処理を繰り返す。
【００６３】
クライアントＰＣ１のCPU３０は、ステップＳ１１において、未処理のオブジェクトがないと判定した場合、ステップＳ２２（印刷手段）に進み、プリンタ４７に、２次元の展開図を紙などに印刷させた後、処理を終了させる。その後、クライアントは、印刷された展開図の外形を切り取り、糊代に糊付けし、組み立てることで、３次元仮想空間内のオブジェクトを、現実空間に再構築することができる。
【００６４】
上述のように、３次元仮想空間のオブジェクトを２次元の展開図とするには、CPU３０は、オブジェクトの種類を判定し、その種類毎の展開方法で処理する。以下にその種類毎に展開方法を説明する。
【００６５】
VRMLで記述される３次元仮想空間のオブジェクトが多面体として分類された場合の２次元の展開図を生成する例として、図７に示すような正８面体の多面体処理について説明する。
【００６６】
図７に示す正８面体のVRMLの記述は図８に示すようになるが、このVRMLの記述には、この正８面体に関する３次元仮想空間での各頂点および各線分についての情報が記述されている。CPU３０は、このデータに基づき、図７に示される正８面体について、図９に示すように各頂点毎に番号を付け、さらに各頂点間で形成される線分について昇べきの順、もしくは降べきの順で番号付けを行い、さらに面についても線分と同様の要領で番号付けする。本説明では、昇べきの順とする。
【００６７】
図９の例の場合、頂点は６点で、（0,1,2,3,4,5,)となり、線分は１２個で、[01],[02],[03],[04],[12]，[14],[15],[23],[25],[34],[35],[45]となり、３角形は、[012],[014],[023],[034],[125],[145],[235],[245]となる。
【００６８】
多面体では、１つの線分に対して、その線分を共有する面は２面ある。例えば、線分[01]を共有する面は、面[012]および面[014]となる。ここで、図１０に示すように、頂点0を原点として、線分[01]をX軸の正の方向へ射影し、次に小さな番号を持つ面からXY平面に射影する。この例では、線分[01]を共有する面が２つある([012]および[014])が、そのうち面[012]の方が、小さな番号となるので、頂点2がY軸方向に正の座標となるように面[012]が射影される。面[012]の持つ線分は、線分[01]，[02]，[12]であるが、ここでも最初に、最小となる番号を持つ線分[01]について着目し、共有する面[014]が射影される。これで、線分[01]を共有する面の射影は終了したことになる。
このとき、射影されているのは面[012]，[014]である。また、線分として射影されており、その線分を共有する面の射影が完了していない線分は、線分[02]，[04]，[12]，[14]であるが、ここで一番小さな番号を持つ線分[02]について着目すれば、同様に[023]が射影されることになる。
【００６９】
また、面[012]，[014]，[023]，[034]が射影されている時、線分[04]に着目すると、上記の射影で既に線分[04]を共有する２個の面は射影が完了している。この場合、展開図上では線分[04]は２つ存在するため、片方の線分に対しては糊代を形成する必要がある。ここで、面を射影したとき衝突が発生する場合には、別紙に射影を行う必要があるが、同様に処理することが可能である。
【００７０】
以下同様の要領で正８面体の各面の射影が行われ、すべての面の射影が完了したところで展開図の完成となる。なお、図１０の展開図中の３角形中の数字は、展開される順番と識別子を表す。
【００７１】
次に、ステップＳ１７の多面体処理の詳細について、図１１のフローチャートを参照して、図１２(A）に示す３角柱を例として説明する。
【００７２】
ステップＳ３１において、CPU３０は、多面体を構成する面がすべて３角形かどうかを判定する。例えば、多面体が３角柱である場合、図１２(A)に示すように、３角柱は４角形の面を持つため、ステップＳ３２において、図１２(B)に示すように、補助線（図中破線で示されている）を引くことにより、CPU３０は、オブジェクトを３角形の面による多面体として捉える。
【００７３】
これにより、図１２(A)に示すように、３角柱の頂点は６点(0,1,2,3,4,5)となり、線分は９個[01],[03],[04],[12],[14],[23],[25],[35],[45]となり、面は５面[0123],[014],[0354],[1254],[235]となる。また、これを仮想的に図１２(B)に示すように、４角形を３角形に区分すると、線分は、１２個[01],[02],[03],[04],[12],[14],[23],[24],[25],[34],[35],[45]となり、３角形は、８面[012],[014],[023],[034],[124],[235],[245],[345]となる。
【００７４】
多面体が全て３角形の集合と判断される場合、ステップＳ３２の処理はスキップされる。そしてステップＳ３３において、CPU３０は、最初の面［012]を射影する。
【００７５】
次にステップＳ３４において、CPU３０は、未処理の線分の有無を判定し、未処理の線分がないと判断した場合は、処理を終了する。未処理の線分があると判定された場合、ステップＳ３５において、CPU３０は、未処理の線分と面を検索する。
【００７６】
ステップＳ３６において、CPU３０は、射影領域の衝突を判定し、衝突が発生している（射影した領域が重なっている）と判定された場合、ステップＳ３７おいて新たに射影する領域、すなわち別紙を確保する。また、衝突が発生していないと判定されたときは、ステップＳ３７の処理は、スキップされる。
【００７７】
続いて、CPU３０は、補助線による面の分割を避けるため、ステップＳ３８において、射影しようとする面に、共有される２面が両面とも射影されていない補助線があるかないかを判定し、共有される２面が両面とも射影されていない補助線があると判定した場合、ステップＳ４２において、CPU３０は、検出された補助線を共有するもう１つの面を検索する。
【００７８】
例えば、図１３の例では、線分[02］は、補助線であり、面[012]を射影したとき、補助線[02]を共有するもう１つの面[023]は、まだ射影されていない。そこで、CPU３０は、面[023]を検索し、ステップＳ３６以降の処理を繰り返す。ステップＳ３８で、共有される２面が両面とも射影されていない補助線がないと判定された場合、ステップＳ３９において、CPU３０は、補助線を共有する面を射影する。すなわち、図１３の例では、面[023]が射影される。ステップＳ４０において、CPU３０は、３角形の接続のない線分（最外周の線分）の有無を判定し、３角形の接続のない線分があると判断されたときは、ステップＳ４１（糊代付加手段、設定手段）において、その線分に対して糊代を付加する。３角形の接続がある場合は、ステップＳ４１の処理は、スキップされる。
【００７９】
その後、CPU３０は、ステップＳ３４に戻り、未処理の線分と３角形を検索する。以下正８面体における場合と同様に射影を繰り返し、図１３に示すような展開図を完成させる。
【００８０】
次に、図６のステップＳ１８の基本３Ｄオブジェクト処理について図１４のフローチャートを参照して説明する。
【００８１】
VRMLで記述される基本３Ｄオブジェクトは、立方体、円錐、円柱および球の４種類である。このうち立方体については多面体として処理できるので、ここで基本３Ｄオブジェクトとして考慮する必要があるのは円錐、円柱および球である。そこで、この処理では、円錐、円柱および球が分類され、それぞれの方法で展開図が生成される。
【００８２】
CPU３０は、ステップＳ５１において未処理のオブジェクトがあるかないかを判定する。未処理のオブジェクトがないと判定された場合は、CPU３０は、この基本３Ｄオブジェクト処理を終了させる。未処理のオブジェクトがあると判定された場合、CPU３０は、ステップＳ５２において、オブジェクトが円柱か否かを判定する。
【００８３】
ステップＳ５２において、オブジェクトが円柱であると判定された場合、図１５(A)に示す円柱の側面部の展開図、並びに図１５(B)および図１５(C)に示す上底面および下底面の円という展開が、自明な例として考えられる。
【００８４】
しかし、円柱の場合、上記の方法で展開図を作成すると、実空間での再構成を容易にする糊代の付加が困難となる。これは、底面部として円を持つことに起因する。そこで、この円を正多角形として近似すれば、多面体としての処理が可能となり、糊代の付加についても容易なものとなる。図１６に、円柱の上底部および下底部を、正１６角形として、多面体処理を行った場合の例を示す。また、この手法を用いれば、後述の円錐についても同様に糊代を付加できる。
【００８５】
しかしながら上記に示した方法を用いた場合、実空間に再構成されるオブジェクトは近似的なものでしかないため、必ずしもユーザの求める精度を満たさない可能性がある。そこで近似的に多面体処理を行う場合は、分割数を設定するものとし、また、糊代作成についても、糊代の大きさおよび形状を設定するものとする。
【００８６】
また、上記の円柱に対しては、近似的に扱うことで、最終的には、多面体処理による展開が可能であるが、近似的に扱うかどうかについては計算にかかるコストによる。すなわち、分割数が増えれば、計算のステップも増え、計算にかかるコストは増大する。したがって、所定のステップ数を越える場合には、図１５(A)乃至(C)に示すように、本来の展開図形を用いて展開する方が、計算量は少ないことになる。よって近似的に扱うかどうかの判定は、この計算量が所定の閾値を越えるか否かという観点に基づいて行われる。
【００８７】
そこで、ステップＳ５３において、CPU３０は、オブジェクトを近似的に扱うかどうかを判定する。オブジェクトを近似的に扱うと判定した場合、ステップＳ５４において、CPU３０は、上下底面を正多角形とし、ステップＳ５４（設定手段）において、その分割数（予めユーザが設定した値）を入力し、ステップＳ５５において、多面体処理を実行する。この多面体処理は、図１１に示した場合と同様の処理である。オブジェクトを近似的に扱わないと判定した場合、ステップＳ５５において、CPU３０は、円柱本来の展開図形処理を行う。どちらのケースについても処理が終了次第、ステップＳ５１へ戻り、それ以降の処理が繰り返される。
【００８８】
次に、ステップＳ５２において、オブジェクトが円柱ではないと判定された場合、ステップＳ５７において、CPU３０は、オブジェクトが円錐であるか否かを判定する。ステップＳ５７において、オブジェクトが円錐であると判定された場合、ステップＳ５８に進み、以下、円柱における処理と同様の処理が実行される。すなわち、ステップＳ５８において、CPU３０は、近似的に扱うかどうかを判定し、近似的に扱うと判定した場合、ステップＳ５９（設定手段）において、底面部を正多角形として分割し、ステップＳ６０において、多面体処理を実行する。また、ステップＳ５８において、近似的に扱わないと判定した場合、CPU３０は、ステップＳ６１において、円錐本来の展開図処理を実行する。
【００８９】
円錐本来の展開処理の例として、X2+Z2≦1(Y=-1）および(1/2(1-Y)cosθ,Y,1/2(1-Y)sinθ）(0≦θ＜2π,-1≦Y≦1)として表現される円錐を考えるとき、その底面については、X2+Y2=1の形で射影可能であり、図１７(B)で示されるような形状となる。また、側面部については、XYを用いて、(X,Y)=（√5/2(1-Y)cos(θ/√5),√5/2(1-Y)sin(θ/√5))へ射影され、半径√5で角度が2π/√5の扇形を表し、図１７(A)および(B)のような形状となる。
【００９０】
ステップＳ５７において、オブジェクトが円錐ではないと判断された場合は、オブジェクトは球であることになるので、ステップＳ６２（設定手段）において、CPU３０は、球として処理する。
【００９１】
すなわち、球について、CPU３０は、ステップＳ６２において、緯度方向と経度方向に分割し、ステップＳ６３において、多面体処理を実行する。これにより、図１８に示すような展開図が得られる。図１８の例は、球を経度方向に１６分割、緯度方向に７分割し、１１２個の多面体で近似し、展開した展開図形の例を表している(糊代は付加していない）。そして、展開が終了したところでステップＳ５１へ戻り、それ以降の処理が繰り返される。
【００９２】
次に、図６のステップＳ１９における基本３Ｄオブジェクト合成処理について、図１９のフローチャートを参照して説明する。
【００９３】
基本３Ｄオブジェクトの合成とは、複数の基本３Ｄオブジェクトに対して数学的な演算を施し、それを合成して作られた３次元仮想空間のオブジェクトを指す。この基本３Ｄオブジェクトの合成を展開するには、それが、まず、合成前の各基本３Ｄオブジェクトに分解され、それぞれの展開方法で展開される。
【００９４】
例えば、図２０の実線で示すような円錐と円柱からなる３Ｄオブジェクトの合成は、円柱と円錐の基本３Ｄオブジェクトを数学的手法を用いて合成した基本３Ｄオブジェクトの合成と考えられる。
【００９５】
そこで、ステップＳ７１において、CPU３０は、未処理のオブジェクトの有無を判定し、未処理のオブジェクトがないと判定された場合、CPU３０は、この処理を終了させる。未処理のオブジェクトがあると判定された場合、ステップＳ７２において、CPU３０は、前述の合成要素となっている基本３Ｄオブジェクトの有無を判定する。図２０の例では、合成要素となる基本３Ｄオブジェクトとして、円柱と円錐の存在が判定される。
【００９６】
そして、ステップＳ７２において、CPU３０は、未処理の合成要素があると判定した場合、ステップＳ７３において、合成された基本３Ｄオブジェクトの拡大縮小等の数学的手法を解除する。これにより、合成要素として判定されたオブジェクトは、一旦は、基本３Ｄオブジェクトに戻る。そこで、ステップＳ７４において、CPU３０は、基本３Ｄオブジェクト処理（図１４）を実行し、各合成要素を展開したところで、ステップＳ７５において、ステップＳ７３において解除した拡大縮小の数学的手法を再び展開図に施して、ステップＳ７２へ戻る。
【００９７】
図２０の例では、円柱と円錐がそれぞれステップＳ７３乃至Ｓ７５の処理により、２次元の展開図に展開される。
【００９８】
ステップＳ７２において、未処理の基本３Ｄオブジェクトの合成要素がないと判定された場合、ステップＳ７６（判定手段）において、CPU３０は、それぞれのオブジェクト間で空間における衝突の発生が有るかないかを判定する。ステップＳ７６において、衝突が発生しないと判断された場合、オブジェクトの再構成が可能となるので、CPU３０は、ステップＳ７１へ戻り、それ以降の処理を繰り返す。衝突が発生すると判定された場合、ステップＳ７７（計算手段）において、CPU３０は、衝突領域の厳密計算を実行する。
【００９９】
図２０の例では、円柱と円錐の衝突が発生しており、衝突領域はオブジェクトを側面図に示すと、図２１に示すようになる。上記手法により求められた円柱および円錐の展開図、並びに図２１の側面図から、衝突領域を展開図にすると図２２および図２３に示すようになる。しかしながら、図２２および図２３は、近似的な扱いをしていない場合についての展開図および衝突領域を表しており、図１４のステップＳ５４およびＳ５９において、近似的な扱いをした場合は、衝突領域は、これとは異なる衝突領域となる。
【０１００】
そこで、ステップＳ７８において、CPU３０は、近似的な処理がなされているか否かを判定する。近似的に処理が行われたと判定された場合、ステップＳ７９（計算手段）において、CPU３０は、衝突領域の厳密計算による展開図と近似的に扱った展開図をマッピングさせ、近似的な扱いをする場合の衝突領域を再計算する。オブジェクトが近似的に扱われていないと判定された場合、ステップＳ７９の処理はスキップされる。
【０１０１】
次に、ステップＳ８０において、CPU３０は、衝突領域を糊代にするか否かを判定し、糊代にすると判定した場合、ステップＳ８１において、糊代を作成し、衝突領域を糊代としないと判定した場合、ステップＳ８１の処理はスキップする。
【０１０２】
そして、ステップＳ８２において、CPU３０は、糊代にならない衝突領域を削除し、ステップＳ７１に戻り、それ以降の処理を繰り返す。
【０１０３】
図６のステップＳ２０の全合成処理は、ステップＳ１７乃至Ｓ１９の処理方法を全て合成した処理を実行することになるので、その説明を省略する。
【０１０４】
以上においては、クライアントＰＣ１を例としたが、クライアントＰＣ２およびクライアントＰＣ３においても、同様の処理により、３次元仮想空間のオブジェクトの３次元仮想空間情報から２次元の展開図が生成される。
【０１０５】
上述した一連の処理は、ハードウエアにより実行させることもできるが、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０１０６】
この記録媒体は、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フロッピディスクを含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク（ＭＤ（Mini-Disk）を含む）、もしくは半導体メモリなどよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM、ハードディスクなどで構成される。また、記録媒体には、ネットワーク、衛星などを利用して、無線または有線で、プログラムを伝送し、記録することができる。
【０１０７】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１０８】
【発明の効果】
請求項１に記載の情報処理装置、請求項１０に記載の情報処理方法、および請求項１１に記載の記録媒体のプログラムによれば、オブジェクトの３次元仮想空間情報から２次元の展開図を生成するようにしたので、３次元仮想空間におかれたオブジェクトの実空間での再構成が可能となる。
【図面の簡単な説明】
【図１】本発明を適用した共有仮想空間システムの構成例を示すブロック図である。
【図２】図１のクライアントＰＣ１の構成例を示すブロック図である。
【図３】図１のシステム動作を説明する図である。
【図４】図１のシステム動作を説明する図である。
【図５】図１のシステム動作を説明する図である。
【図６】３次元仮想空間のオブジェクトを２次元の展開図にする手順を説明するフローチャートである。
【図７】  VRMLで記述された正８面体をディスプレイ表示した例を示す図である。
【図８】図７に示す正８面体をVRMLで記述した例を示す図である。
【図９】図７に示す正８面体を２次元の展開図に射影する方法を説明する図である。
【図１０】図７に示す正８面体を２次元の展開図に射影する方法を説明する図である。
【図１１】図６のステップＳ１７の多面体処理の詳細を説明するフローチャートである。
【図１２】４角形の３角形への分割を説明する図である。
【図１３】３角柱を展開した状態を説明する図である。
【図１４】図６ステップＳ１８の基本３Ｄオブジェクト処理の詳細を説明するフローチャートである。
【図１５】円柱を展開した状態を示す図である。
【図１６】円柱の近似的処理を説明する図である。
【図１７】円錐の展開した状態を示す図である。
【図１８】球の近似的処理を説明する図である。
【図１９】基本３Ｄオブジェクト合成処理を説明するフローチャートである。
【図２０】基本３Ｄオブジェクト合成処理の例を説明する図である。
【図２１】図２０に示すオブジェクトの衝突領域の計算方法を説明する図である。
【図２２】図２１に示す衝突領域のうち円柱の側面の衝突領域を説明する図である。
【図２３】図２１に示す衝突領域のうち円錐の側面の衝突領域を説明する図である。
【符号の説明】
１，２，３  クライアントＰＣ，  ４，５，６  インターネットプロバイダ，  ７  インターネット，  １０  WWWサーバ，  １１  WLS，  １２  共有サーバ，１３，１４  ＡＯサーバ，  １５  メールサーバ，  １６  コミュニケーションサーバ，  １７  公衆電話回線網，  ３０  CPU，  ３１  HDD，  ３２  CD-ROMドライブ，  ３３  CD-ROMディスク，  ３４  ROM，  ３５  サウンド処理回路，  ３６  マイクロフォン，  ３７，３８  スピーカ，  ３９  モデム，  ４０  I/Oインターフェース，  ４１  マウス，  ４２  キーボード，  ４５  CRTモニタ，  ４６  RAM,  ４７  プリンタ
【図１】
0004235865.tif 000002
【図２】
0004235865.tif 000003
【図３】
0004235865.tif 000004
【図４】
0004235865.tif 000005
【図５】
0004235865.tif 000006
【図６】
0004235865.tif 000007
【図７】
0004235865.tif 000008
【図８】
0004235865.tif 000009
【図９】
0004235865.tif 000010
【図１０】
0004235865.tif 000011
【図１１】
0004235865.tif 000012
【図１２】
0004235865.tif 000013
【図１３】
0004235865.tif 000014
【図１４】
0004235865.tif 000015
【図１５】
0004235865.tif 000016
【図１６】
0004235865.tif 000017
【図１７】
0004235865.tif 000018
【図１８】
0004235865.tif 000019
【図１９】
0004235865.tif 000020
【図２０】
0004235865.tif 000021
【図２１】
0004235865.tif 000022
【図２２】
0004235865.tif 000023
【図２３】
0004235865.tif 000024