(57)【要約】  【課題】  仮想物体の属性を変更したい場合、変更したい仮想物体をユーザが１つずつ選択し、変更処理を行う必要があった。  【解決手段】  仮想物体を規定する属性としてオブジェクトレベルを、またこの仮想物体を利用するアプリケーションプログラム、ユーザ等にはユーザレベルをそれぞれ設定し、オブジェクトレベルとユーザレベルに応じて仮想物体の属性を決定する。例えば、レベルの大小関係（Ｓ３０３）に応じて可視属性を決定する（Ｓ３０４、Ｓ３０５）。  【選択図】図３
2005122572.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間を記述する属性に設定された第１のレベルを取得する第１の取得ステップと、
予め設定された第２のレベルを取得する第２の取得ステップと、
前記第１及び前記第２のレベルに基づいて、前記第１のレベルが設定された属性の値を決定する属性値決定ステップと、
前記決定された属性値に従って所定の処理を行う処理ステップとを有することを特徴とする情報処理方法。
【請求項２】
前記第２のレベルが、ユーザ毎又は前記処理ステップを実行するプロセス毎に設定されることを特徴とする請求項１記載の情報処理方法。
【請求項３】
前記第１及び前記第２のレベルの少なくとも一方が、ユーザによって設定可能であることを特徴とする請求項１又は請求項２記載の情報処理方法。
【請求項４】
前記第１のレベルが設定される属性が、前記仮想空間中の物体の表示状態を規定する属性であることを特徴とする請求項１乃至請求項３のいずれか１項に記載の情報処理方法。
【請求項５】
前記第１のレベルが設定される属性が、可視属性又は不透明度属性であることを特徴とする請求項４記載の情報処理方法。
【請求項６】
前記属性値決定ステップが、前記第１及び前記第２のレベル値の大小又は比率に応じて前記属性値を決定することを特徴とする請求項１乃至請求項５のいずれか１項に記載の情報処理方法。
【請求項７】
前記第１又は前記第２のレベルを変化させる入力があった場合、その内容を前記仮想空間を共有する他のプロセスに通知する通知ステップを更に有することを特徴とする請求項１乃至請求項６のいずれか１項に記載の情報処理方法。
【請求項８】
前記通知を受信した場合、前記通知の内容に応じて前記第１又は前記第２のレベルを変更する変更ステップを更に有することを特徴とする請求項７記載の情報処理方法。
【請求項９】
コンピュータグラフィックスオブジェクトの属性として設定された第１のレベルを取得する第１の取得ステップと、
コンピュータグラフィックスオブジェクトの描画を制御するためのレベルである第２のレベルを取得する第２の取得ステップと、
前記第１のレベルと前記第２のレベルに応じて、該第１のレベルが属性として設定されているコンピュータグラフィックスオブジェクトの描画を制御する制御ステップと
を有することを特徴とする画像処理方法。
【請求項１０】
前記制御ステップは、前記第１のレベルが属性として設定されているコンピュータグラフィックスオブジェクトを、表示するか非表示にするかを制御することを特徴とする請求項９記載の画像処理方法。
【請求項１１】
前記制御ステップは、前記第１のレベルが属性として設定されているコンピュータグラフィックスオブジェクトの不透明度を制御することを特徴とする請求項９記載の画像処理方法。
【請求項１２】
前記第２のレベルは、ユーザのマニュアル指示によって設定されることを特徴とする請求項９記載の画像処理方法。
【請求項１３】
仮想空間を表すシーングラフを構成するノードの属性として設定された第１のレベルを取得する第１の取得ステップと、
前記シーングラフの描画を制御するためのレベルである第２のレベルを取得する第２の取得ステップと、
前記第１のレベルと前記第２のレベルに応じて、該第１のレベルが属性として設定されているノードの属性を制御する制御ステップ
とを有することを特徴とする画像処理方法。
【請求項１４】
コンピュータに請求項１乃至請求項８のいずれか１項に記載の情報処理方法を実行させるプログラム。
【請求項１５】
コンピュータに請求項９乃至請求項１３のいずれか１項に記載の画像処理方法を実行させるプログラム。
【請求項１６】
請求項１４又は請求項１５に記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＣＧ（Computer Graphics）技術に関し、特に仮想空間を記述する属性に基づいて仮想空間をＣＧで提示する技術に関する。
【背景技術】
【０００２】
従来より、仮想空間を記述する属性に基づいて、仮想空間の投影画像を生成するＣＧ（Computer Graphics）技術が知られている（例えば、非特許文献１参照）。
なお、本明細書における「属性」とは仮想空間を規定する個々の情報であり、例えば、仮想物体の位置・姿勢・色・不透明度、照明の色・照射方向、空間の構造（例えば机の上にポットが配置され、机の動きとともにポットが動くというような階層的構造）などを表す情報である。
【０００３】
ＣＧ技術を応用した、仮想空間や仮想物体を設計するツールとして、３ＤＣＡＤ（3-Dimensional Computer Aided Design）ツールや３Ｄ(3-Dimensional)ＣＧツールが知られている。例えば、３ＤＣＡＤツールの例としてはCoCreate社のOneSpace Designer、３ＤＣＧツールの例としてはAlias社のＭａｙａが挙げられる。こうしたツールでは、設計物の投影画像をディスプレイ画面上に表示することにより、設計物を設計者が視覚的に確認することを可能にしている。このようなツールでは、設計の過程によっては設計物を構成する全ての部品（要素）を表示すると、画面上で必要な情報を判別しにくくなる場合がある。したがって、操作者は必要に応じて部品の属性（例えば、部品の表示／非表示）を切替ながら、設計を進める。この属性の切替作業は少なくとも、（１）部品の選択、（２）部品の属性変更、という２段階の工程を必要とする。
【０００４】
【非特許文献１】James D. Foley著、”Computer Graphics: Principles and Practice (Systems Programming)”Addison-Wesley, ISBN: 0201848406
【発明の開示】
【発明が解決しようとする課題】
【０００５】
このように、仮想空間や仮想物体を構成する部品の属性を切り替える場合、各部品について少なくとも２段階の操作工程を必要とするため、多数の部品に対する属性切替には多くの操作が必要であり、煩雑であった。
【０００６】
本発明はこのような従来技術の問題点に鑑みなされたものであり、その主な目的は、簡便な方法により複数のＣＧオブジェクトの属性をまとめて変更可能とすることにある。
【課題を解決するための手段】
【０００７】
上述の目的は、仮想空間を記述する属性に設定された第１のレベルを取得する第１の取得ステップと、予め設定された第２のレベルを取得する第２の取得ステップと、第１及び第２のレベルに基づいて、第１のレベルが設定された属性の値を決定する属性値決定ステップと、決定された属性値に従って仮想空間を提示する提示ステップとを有することを特徴とする情報処理方法によって達成される。
【０００８】
また、上述の目的は、コンピュータグラフィックスオブジェクトの属性として設定された第１のレベルを取得する第１の取得ステップと、コンピュータグラフィックスオブジェクトの描画を制御するためのレベルである第２のレベルを取得する第２の取得ステップと、第１のレベルと第２のレベルに応じて、第１のレベルが属性として設定されているコンピュータグラフィックスオブジェクトの描画を制御する制御ステップとを有することを特徴とする画像処理方法によっても達成される。
【０００９】
また、上述の目的は、仮想空間を表すシーングラフを構成するノードの属性として設定された第１のレベルを取得する第１の取得ステップと、シーングラフの描画を制御するためのレベルである第２のレベルを取得する第２の取得ステップと、第１のレベルと第２のレベルに応じて、第１のレベルが属性として設定されているノードの属性を制御する制御ステップとを有することを特徴とする画像処理方法によっても達成される。
【００１０】
また、上述の目的は、本発明の情報処理方法又は画像処理方法をコンピュータ装置に実行させるプログラム又は当該プログラムを格納したコンピュータ読み取り可能な記録媒体によっても達成される。
【発明の効果】
【００１１】
このような構成により、本発明によれば、複数の仮想物体の属性を容易に変更することが可能になる。
【発明を実施するための最良の形態】
【００１２】
●＜第１の実施形態＞
以下、添付図面を参照して本発明をその好適な実施形態に基づいて詳細に説明する。
なお、以下の説明においては、３ＤＣＡＤや３ＤＣＧツールなど、コンピュータグラフィックス技術を用いて仮想物体を設計、描画するツールにおいて、部品など、属性を有し、属性の設定を制御可能な最小単位を「ＣＧオブジェクト」と呼ぶ。また、ＣＧオブジェクトは仮想物体を表すため、ＣＧオブジェクトを仮想物体と呼ぶこともある。
【００１３】
また、以下の説明において、「プロセス」とはＯＳ(Operating System)のカーネルがプログラムを管理するための単位であり、１つのプログラムは１つのプロセスとして実行されるか、あるいは複数のプロセスに分岐して実行される。本発明の情報処理方法による処理は、プログラムを構成するいずれか１つ又は複数のプロセスが全処理を実行することもあれば、処理を分割して複数のプロセスがそれぞれ部分的に実行することもあり得る。
【００１４】
本実施形態では、各ＣＧオブジェクトが持つ「オブジェクトレベル」と呼ぶ属性値と、これらＣＧオブジェクトを用いるアプリケーションプログラムやプロセス、ユーザ毎に設定されるレベル（以降「ユーザレベル」と呼ぶ）を比較し、その結果に基づいて、アプリケーションプログラムにおける各ＣＧオブジェクトの表示／非表示を決定する。
【００１５】
なお、オブジェクトレベルをいつ、どのように設定するか、またユーザが設定及び変更可能とするか否かについては、ＣＧオブジェクトを取り扱うアプリケーションプログラムの目的や内容に応じて適宜決定することが出来る。
【００１６】
例えば、ＣＧオブジェクトを用いたコンテンツをユーザに提供するようなアプリケーションプログラムにおいては、コンテンツ制作者がオブジェクトレベルを設定し、ユーザが変更できないようにすることが考えられる。
【００１７】
一方、例えば３ＤＣＡＤや３ＤＣＧの設計アプリケーションプログラムのように、ユーザが個々のＣＧオブジェクトの生成に直接関与するようなアプリケーションプログラムにおいてはユーザがＣＧオブジェクト生成時に設定可能とすることが考えられる。
【００１８】
オブジェクトレベルは例えば公知のＣＧオブジェクトデータ構造における属性領域の未使用部分を利用したり、属性領域を拡張することにより、ＣＧオブジェクトデータ中に格納される。
【００１９】
本実施形態において「ユーザレベル」は、基本的にＣＧオブジェクトの表示、非表示を制御する主体となりうるもの全てに設定可能なパラメータである。例えばアプリケーションを利用する各ユーザに固有なパラメータとして設定することにより、同一のアプリケーションを複数のユーザが利用する場合に、ユーザに応じて異なる環境を提供することが可能になる。
【００２０】
例えば、ゲームアプリケーションであれば、各ユーザの習熟度によってユーザレベルをアプリケーション側で変更することで、ゲームの難易度やユーザが利用可能なアイテムを変化させることが可能になる。
【００２１】
或いは、アプリケーションプログラムのパラメータとしてユーザレベルを設定すれば、同一のＣＧオブジェクトを用いる複数のアプリケーションの各々で異なる環境を実現できる。例えば、アプリケーションプログラムのバージョン（入門者用、上級者用）に応じて使用可能なＣＧオブジェクトを変化させることが可能になる。
【００２２】
また、アプリケーションプログラムの中で実行されるプロセスのパラメータとしてユーザレベルを設定すれば、例えばＣＧオブジェクトを複数のウィンドウ描画プロセスによる複数のウィンドウで表示している場合、表示されるＣＧオブジェクトをウィンドウ毎に変更することが可能である。具体的には、例えば、同一のＣＧオブジェクトを異なる視点からみた投影画像を同時に表示するような場合、ある視点からの投影画像においてのみ特定のＣＧオブジェクトを非表示にするといったことが可能になる。
【００２３】
いずれにしてもユーザレベルは、アプリケーションプログラムで管理されるパラメータとしてメモリや記憶装置に記憶される。
【００２４】
なお、本実施形態でＣＧオブジェクトは、オブジェクトレベルだけでなく、表示／非表示を表す「可視属性」と呼ぶ属性を持つものとする。また、オブジェクトレベルおよびユーザレベルは０．０以上、１．０以下の浮動小数点数、可視属性は１（表示状態）と０（非表示状態）の２値とする。
【００２５】
本実施形態における情報処理装置のハードウェア構成例を図１に示す。情報処理装置１００は、プログラムを実行することにより装置全体の動作を制御するＣＰＵ１０１、ＣＰＵ１０１が実行するプログラムやデータを格納する、ＲＯＭやＲＡＭから構成されるメモリ１０２、装置内の各構成モジュール間のデータ転送を司るバス１０３、バス１０３と各種装置とのインタフェース１０４、ＣＰＵ１０１が実行する各種プログラム（３ＤＣＡＤ３Ｄや３ＤＣＧツールといったアプリケーションプログラムを含む）やデータを格納する外部記憶装置１０５、ユーザが本情報処理装置１００に対して指示を与えるためのユーザインタフェースとしてのキーボード１０６およびマウス１０７、各種表示を行う表示部１０８及び、ネットワークインタフェースやシリアルインタフェース等、他の装置を直接又は間接的に接続するための入出力部１０９とを有する。このような情報処理装置はパーソナルコンピュータとして一般に入手又は組立可能な汎用コンピュータによって実現可能である。
【００２６】
図２は情報処理装置１００における、ＣＧオブジェクトの描画処理全体を示すフローチャートである。図２に示す処理は、情報処理装置１００が実行するアプリケーションプログラムの内部で実行される。
【００２７】
アプリケーションプログラムの起動が例えばユーザから指示されると、アプリケーションプログラムを例えば外部記憶装置１０５から読み出し、実行する。
そして、ステップＳ２０１で、当該アプリケーションプログラムが取り扱うＣＧオブジェクトの、属性を記述するファイルを外部記憶装置１０５より読み込み、メモリ１０２上にＣＧオブジェクトの属性データベースを構築する。
【００２８】
続くステップＳ２０３で、例えばキーボード１０６やマウス１０７を介したユーザ入力があるかチェックする。入力があればステップＳ２０４に進む。入力がなければ、ステップＳ２０７へ進む。
【００２９】
ステップＳ２０４では、ユーザ入力がプログラム終了の指示であるか否かを判定する。指示がプログラムの終了であれば、全体の処理を終了する。一方、指示がプログラムの終了でない場合は、ステップＳ２０５に進む。
【００３０】
ステップＳ２０５では、ユーザ入力がユーザレベルの変更指示であるか否か判定する。ユーザレベルの変更指示である場合はステップＳ２０６に進み、ユーザの指示に基づいてユーザレベルを変更した後、ステップＳ２０７へ進む。一方、ユーザレベルの変更指示でない場合は、直接ステップＳ２０７に進む。
ステップＳ２０７ではレベル反映処理を行う。レベル反映処理の詳細は後述する。
【００３１】
ステップＳ２０７の終了後はステップＳ２０８へ進み、描画処理を行う。この処理では、描画結果を保存する画像データを初期化した後、ＣＧオブジェクトの可視属性に基づいて処理を行う。すなわち、可視属性が「１」（表示状態）であるＣＧオブジェクトはその投影画像を生成し、可視属性が「０」（非表示状態）であるＣＧオブジェクトの投影画像は生成しない。なお、ＣＧオブジェクトの投影像の生成には公知のコンピュータグラフィクス技術を用いる。
【００３２】
ステップＳ２０８の描画処理を終了した後は、ステップＳ２０２に戻り、ユーザから終了の指示があるまでステップＳ２０３〜Ｓ２０８の処理を繰り返し行う。
【００３３】
＜レベル反映処理＞
図２のステップＳ２０７で行うレベル反映処理について、図３に示すフローチャートを用いて説明する。
まず、ステップＳ３０１で、現在実行中のアプリケーションで取り扱うＣＧオブジェクトの全てに関してレベル反映処理を完了したか否か判定する。すべてのＣＧオブジェクトに対して処理済みである場合には、レベル反映処理を終了する。一方、未処理のＣＧオブジェクトが存在する場合は、ステップＳ３０２に進み、未処理のＣＧオブジェクトのうち１つを選択する。処理済みであるか、未処理であるかは例えばＣＧオブジェクトの属性として処理済／未処理属性を設定し、その値に応じて判断したり、プロジェクト中に含まれるＣＧオブジェクトのリストを作成し、処理を行ったものをリストから削除していく方法など、任意の方法によって判別可能である。
【００３４】
次にステップＳ３０３では、アプリケーションプログラムに設定されたユーザレベルと選択したＣＧオブジェクトのオブジェクトレベルの大小を比較する。ユーザレベルがオブジェクトレベル以上である場合は、ステップＳ３０４に進む。一方、ユーザレベルがオブジェクトレベル未満である場合は、ステップＳ３０５へ進む。
【００３５】
ステップＳ３０４では、オブジェクトの可視属性を「表示状態」に設定する。一方、ステップＳ３０５では可視属性を「非表示状態」に設定する。
ステップＳ３０４またはステップＳ３０５が終われば、ステップＳ３０１に戻る。
【００３６】
＜ユーザレベルの変更＞
図４は、本実施形態における情報処理装置１００における、ユーザレベル設定用画面表示例を示す図である。図４の画面は例えばステップＳ２０８（図２）の描画処理で生成する。生成した画像はメモリ１０２（図１）のフレームバッファ領域に書き込まれ、さらにフレームバッファ内の画像情報が表示部１０８に出力される。
【００３７】
ここで、アプリケーションプログラムで取り扱っているＣＧオブジェクトが直方体と円柱の２つであり、直方体オブジェクトのオブジェクトレベルは０．３、円柱オブジェクトのオブジェクトレベルは０．７に設定されているとする。
【００３８】
表示ウィンドウ４０１の中には、ＣＧオブジェクトの投影画像を表示するための３次元空間表示部４０２、ユーザレベルを設定するためのユーザレベル設定部４０６が設けられている。また、４０５はユーザがキーボード１０６やマウス１０７で操作可能なカーソルである。
【００３９】
ユーザレベル設定部４０６には、ユーザレベル・バリュエータ４０７およびユーザレベル表示部４０８が配置されている。ユーザレベルを変更するには、ユーザレベル・バリュエータ４０７上のスライドバー４０９上にカーソル４０５を移動し、マウス１０７のボタンを押しながらカーソル４０５を左右に移動させる（スライドバー４０９を左右にドラッグする）。このときカーソル４０５の移動につれてスライドバー４０９が移動する。スライドバー４０９を移動させることにより、ユーザレベルの変更指示が発生する。
【００４０】
なお、ユーザレベルは、バリュエータ４０７上のスライドバー４０９の位置により決定され、現在の設定値はユーザレベル表示部４０８に表示される。図４の例では、ユーザレベルが０．９に設定されている。このように、ユーザはＧＵＩを操作することによって、ユーザレベルを対話的に変更することが出来る。
【００４１】
図４の例では、ユーザレベルの設定値（０．９）が直方体オブジェクトおよび円柱オブジェクトのいずれのオブジェクトレベル（０．３及び０．７）よりも大きいので、両ＣＧオブジェクトの可視属性は１（表示状態）に設定される。そのため、ステップＳ２０８の描画処理により、３次元空間表示部４０２に直方体オブジェクトの投影像４０３および円柱オブジェクトの投影像４０４が表示される。
【００４２】
図５は、図４の状態からスライドバー４０９を左に移動させ、ユーザレベルを０．５に変更した状態を示す。このとき、ユーザレベルは直方体オブジェクトのオブジェクトレベル（０．３）以上であり、また円柱オブジェクトのオブジェクトレベル（０．７）未満である。したがって、図３のステップＳ３０３〜Ｓ３０５で説明したように、直方体オブジェクトの可視属性は１（表示状態）、円柱オブジェクトの可視属性は０（非表示状態）にそれぞれ設定される。その結果、３次元空間表示部には２つのオブジェクトのうち、直方体オブジェクトのみの投影像が表示される。
【００４３】
図４および図５を用いて、ユーザレベルの変更指示の入力画面とユーザの操作方法について説明した。ユーザレベルの変更以外の指示を与える方法としては、通常ウィンドウ形式を用いたＯＳ上で動作するアプリケーションで採用されているように、プルダウンメニューや画面上のボタンから指示を選択する方法や、特定のキー入力（複数のキーの組み合わせや、ESCキーの押下など）による方法を用いることが出来る。
【００４４】
なお、図４および図５では説明を簡単にするため、２つのＣＧオブジェクトを取り扱うアプリケーションを実行した場合を説明したが、ＣＧオブジェクトの数は２つに限られないことはいうまでもない。
【００４５】
なお、本実施形態ではユーザレベルをＧＵＩ(Graphical User Interface)で設定可能とする例を説明したが、他の方法を用いることも可能である。例えば、情報処理装置１００と通信可能なハードウェアを用いてもよい。例えば、図６に示すように、ボリューム６０３をユーザレベルバリュエータとして有するユーザレベル調整器６０１を設け、入出力部１０９にケーブル６０２によって接続して用いることも可能である。ユーザレベル調整器６０１はBluetoothなど無線によって情報処理装置１００と接続してもよい。
【００４６】
ユーザがボリューム６０３を左右に回転させると、回転角に応じた値が情報処理装置１００へ出力され、情報処理装置１００はその値を設定可能なユーザレベルの範囲内の値に変換して、ユーザレベルを変化させる。なお、図４を用いて説明したＧＵＩによる設定と同様、ユーザレベルの設定値をＣＧオブジェクトの投影画像とともに表示し、対話的なユーザレベル設定を可能とすることが好ましい。
【００４７】
なお、図６に示すような、専用のハードウェアを用いてユーザレベルを設定もしくは調整する場合、プログラムの終了処理を含む他の各種指示は、依然としてＧＵＩによって入力するように構成しても良いし、例えばプログラムの終了指示のような特定の指示を入力するためのハードウェア（ボタン等）を図６のユーザレベル調整器６０１に設けてもよい。
【００４８】
なお、本実施形態ではユーザレベルをユーザが設定又は変更可能とした場合のみを説明したが、ユーザレベルはアプリケーション自身が設定又は変更しても良い。例えば、重要度の高いＣＧオブジェクトには小さなオブジェクトレベルを設定し、情報処理装置の処理負荷に反比例するようにユーザレベルを変化させると、処理負荷が高くなる（すなわちユーザレベルが低下）に従って重要でないＣＧオブジェクトは非表示状態となり、ＣＧオブジェクトの描画に必要な処理負荷が軽減できる。
【００４９】
また、図４及び図５においては、常時ユーザレベル設定部４０６が表示されていたが、ユーザから要求があった場合にのみユーザレベル設定部４０６を表示するようにしても良い。
【００５０】
以上述べたように、本実施形態の情報処理装置によれば、ユーザレベルという１つの値を変更するだけで、全てのＣＧオブジェクトについて一括して属性を設定又は変更することが可能であり、属性設定及び変更に要する工数を軽減することが出来る。
【００５１】
●＜第２の実施形態＞
第１の実施形態では、オブジェクトレベル及びユーザレベルの大小比較に基づき、ＣＧオブジェクトの可視属性を設定している。しかしながら、ＣＧオブジェクトの他の属性を設定してもよいし、大小比較以外の方法で設定しても良い。すなわち、オブジェクトレベルおよびユーザレベルを用いて論理的に属性を決定可能であれば、算出する属性の種類及び属性算出のアルゴリズムは問わない。
【００５２】
本実施形態に係る情報処理装置は、オブジェクトレベル及びユーザレベルの比率に基づいてＣＧオブジェクトの属性を決定する。
【００５３】
なお、本実施形態においてＣＧオブジェクトはオブジェクトレベルの他に、不透明度を属性として持つものとする。本実施形態における情報処理装置の構成は第１の実施形態と同様でよいので、説明を省略する。また、本実施形態において、オブジェクトレベルおよびユーザレベルはそれぞれ０．０以上、１．０以下の浮動小数点数とする。また、不透明度は予め定められた最小値および最大値をもち、最小値以上、最大値以下の浮動小数点数であるとする。
【００５４】
本実施形態において、第１の実施形態と異なる処理は、レベル反映処理（図２のステップ２０８）および描画処理（図２の２０９）のみであるため、これらステップで行うべき処理について説明する。
【００５５】
＜レベル反映処理＞
図７は本実施形態におけるレベル反映処理を示すフローチャートである。
ステップＳ３０１とＳ３０２では、第１の実施形態におけるレベル判定処理と同様の処理を行う。
【００５６】
ステップＳ７０３では、ステップＳ７０２で選択した未処理ＣＧオブジェクトのオブジェクトレベルが０であるか判定する。本ステップは、ステップＳ７０４で０による除算が行われないようにするためのものである。オブジェクトレベルが０である場合はステップＳ７０６に進む。一方、オブジェクトレベルが０でない場合は、ステップＳ７０４に進む。
【００５７】
ステップＳ７０４では、選択されたＣＧオブジェクトに設定する不透明度Ｏを算出する。本実施形態において、不透明度Ｏは、オブジェクトレベルに対するユーザレベルの比率に、予め定められた不透明度の最大値を掛け合わせることで求める。すなわち、
Ｏ＝不透明度の最大値×ユーザレベル／オブジェクトレベル
である。
【００５８】
続いてステップＳ７０５では、ステップＳ７０４で算出したＯと、予め定められた不透明度の最大値を比較する。算出した不透明度Ｏが最大値以上である場合は、ステップＳ７０６に進み、ＣＧオブジェクトの不透明度に最大値を設定してステップＳ３０１に戻る。
【００５９】
一方、算出した不透明度Ｏが最大値未満である場合は、ステップＳ７０７に進む。ステップＳ７０７では、算出した不透明度Ｏと予め定められた不透明度の最小値を比較する。Ｏが最小値未満である場合は、ステップＳ７０８にてＣＧオブジェクトの不透明度に最小値を設定してステップＳ３０１に戻る。
【００６０】
一方、不透明度が最小値以上である場合は、ステップＳ７０９に進み、算出した不透明度Ｏをオブジェクトの不透明度属性の値として設定し、ステップＳ３０１に戻る。
【００６１】
＜描画処理＞
本実施形態における描画処理（図２のステップＳ２０９で行う処理）では、描画結果を保存する画像データを初期化した後、不透明度の値に基づいてＣＧオブジェクトの投影像を生成する。半透明物体や不透明物体のＣＧ描画方法はコンピュータグラフィクス分野で公知な方法を利用可能であるため、説明は省略する。
【００６２】
本実施形態において、オブジェクトレベルおよびユーザレベルの設定及び変更方法は第１の実施形態と同様である。ユーザレベルは、図４に示す表示ウィンドウ上のＧＵＩを用いて調整したり、図６に示したユーザレベル調整器６０１を用いて調整する。
【００６３】
なお、第１の実施形態において説明したように、ユーザレベルはユーザが対話的に設定、変更する方法以外に、アプリケーションプログラム自身がユーザ入力とは無関係に変更することも可能である。
【００６４】
以上、オブジェクトレベルとユーザレベルとの大小比較以外の結果に基づいて、可視属性以外のＣＧオブジェクトの属性を変更する一例としての実施形態を説明した。繰り返すが、オブジェクトレベルおよびユーザレベルを用いて論理的に属性を決定可能であれば、算出する属性の種類及び属性算出のアルゴリズムは問わない。
【００６５】
以上述べたように、本実施形態の情報処理装置によれば、ユーザレベルという１つの値を変更するだけで、全てのＣＧオブジェクトについて一括して属性を設定又は変更することが可能であり、属性設定及び変更に要する工数を軽減することが出来る。
【００６６】
●＜第３の実施形態＞
第１の実施形態および第２の実施形態では、オブジェクトレベルは予めファイルに記述された値を用い、ユーザレベルのみを対話的あるいはアプリケーションが自ら変更している。これに対し、本実施形態の情報処理装置は、オブジェクトレベルも変更可能としたものである。なお、本実施形態では、第１の実施形態と同様にオブジェクトレベルとユーザレベルに基づき、オブジェクトの可視属性を決定する場合を例にして説明する。
本実施形態における情報処理装置の構成は第１の実施形態と同様でよいので、説明を省略する。
【００６７】
図８は本実施形態における、情報処理装置１００のＣＧオブジェクト描画処理全体を示すフローチャートである。図８に示す処理は、情報処理装置１００が実行するアプリケーションプログラムの内部で実行される。
【００６８】
図８の処理において、プログラムが起動されてから、ユーザ入力有無を判定し、処理を終了もしくはユーザレベルを変更する処理（ステップＳ２０１〜Ｓ２０６）は、図３で説明した第１の実施形態と同様であるため説明は省略し、ステップＳ８０６以下の処理について説明する。
【００６９】
ステップＳ８０６では、ユーザの入力がオブジェクトレベル変更の対象となるオブジェクトを選択する指示であるか否か判定する。オブジェクトの選択指示の場合は、ステップＳ８１２に進み、ユーザの指示したＣＧオブジェクトをオブジェクトレベル変更の対象として登録した後、ステップＳ２０７へ進む。一方、ユーザ入力がオブジェクトの選択指示でない場合は、ステップＳ８０７に進む。オブジェクトレベル変更対象ＣＧオブジェクトの登録は、例えば対象ＣＧオブジェクトのＩＤを抽出してメモリ１０２に書き出しておくか、対象ＣＧオブジェクトの属性の１つとしてレベル変更対象フラグを設けておき、その値を変更するなど任意の方法により実現可能である。
【００７０】
ステップＳ８０７では、ユーザ入力がオブジェクトレベルの変更指示であるか否か判定する。オブジェクトレベルの変更指示である場合は、ステップＳ８０８に進む。ステップＳ８０８で、オブジェクトレベル変更の対象として登録されているＣＧオブジェクトのオブジェクトレベルをユーザの指示に基づいて変更した後、ステップＳ２０７へ進む。一方、ステップＳ８０７において、ユーザ入力がオブジェクトレベルの変更指示でない場合も、ステップＳ２０７に進む。
【００７１】
ステップＳ２０７ではレベル反映処理を、引き続くステップＳ２０８では描画処理行う。これらの処理は、第１の実施形態での処理（図３）と同様であるため、説明を省略する。
【００７２】
ステップＳ２０８の描画処理を終了した後は、ステップＳ２０３に戻り、ユーザから終了の指示があるまで上述の処理を繰り返し行う。
【００７３】
＜オブジェクトレベル及びユーザレベルの変更＞
図９は、本実施形態の情報処理装置１００における、オブジェクトレベル及びユーザレベル設定用画面表示例を示す図である。図９の画面は例えばステップＳ２０８の描画処理で生成する。生成した画像はメモリ１０２のフレームバッファ領域に書き込まれ、さらにフレームバッファ内の画像情報が表示部１０８に出力される。
【００７４】
ここで、アプリケーションプログラムで取り扱っているＣＧオブジェクトが直方体と円柱の２つであり、直方体オブジェクトのオブジェクトレベルは０．３、円柱オブジェクトのオブジェクトレベルは０．７に設定されているとする。
【００７５】
表示ウィンドウ９０１の中には、ＣＧオブジェクトの投影画像を表示するための３次元空間表示部９０２、ユーザレベルを設定するためのユーザレベル設定部９０６、オブジェクトレベルを設定するためのオブジェクトレベル設定部９１０が設けられている。また、９０５はユーザがキーボード１０６やマウス１０７で操作可能なカーソルである。ユーザレベル設定部９０６は、図４におけるユーザレベル設定部４０６と同一構成であり、ユーザレベル設定部９０６を用いたユーザレベル設定処理も、図４におけるユーザレベル設定部４０６を用いたユーザレベル設定処理と同一であるため、説明は省略する。
【００７６】
一方、オブジェクトレベルを設定又は変更するには、設定の対象とするオブジェクトを選択する必要がある。オブジェクトの選択は、オブジェクト設定部９１０に設けられたオブジェクト選択ボタン９１４および９１５を用いて行う。ボタン９１５にカーソル９０５を合わせて、マウス１０７（図１）のボタンを押下することにより、メモリ１０２上に記憶されている順番でＣＧオブジェクトが１つづつ選択される。一方、ボタン９１４の操作では逆順にＣＧオブジェクトが選択される。
【００７７】
ボタン９１５又は９１４の操作によりＣＧオブジェクトが選択状態になると、情報処理装置１００にオブジェクト選択指令が発行される。選択されたＣＧオブジェクトをユーザが正しく認識できるよう、オブジェクトを識別するための文字列が選択中オブジェクト表示部９１３に表示される。なお、図９の表示例では、直方体オブジェクト９０３が選択されており、ステップＳ２０１で読み込むファイルなどで設定されるＣＧオブジェクト９０３の名称（ここでは「直方体」）が表示されている。
【００７８】
オブジェクトレベル設定部９１０には、さらに、オブジェクトレベル・バリュエータ９１１およびオブジェクトレベル表示部９１２が配置されている。選択中のＣＧオブジェクトのオブジェクトレベルを変更するには、オブジェクトレベル・バリュエータ９１１上のスライドバー９１３上にカーソル９０５を移動し、マウス（図１の１０７）のボタンを押しながらカーソルを左右に移動させる（スライドバー９１３を左右にドラッグする）。このときカーソルの移動につれてスライドバーが移動する。このオブジェクトレベル・バリュエータの操作により、オブジェクトレベルの変更指示が発生する。
【００７９】
なお、オブジェクトレベルは、バリュエータ９１１上のスライドバー９１３の位置により決定され、現在の設定値はオブジェクトレベル表示部９１２に表示される。図９の例では、オブジェクトレベルが０．３に設定されている。このように、ユーザはＧＵＩを操作することによって、選択中のＣＧオブジェクトのオブジェクトレベルを対話的に変更することが出来る。
【００８０】
第１の実施形態と同様、ユーザレベルの変更以外の指示を与える方法としては、通常ウィンドウ形式を用いたＯＳ上で動作するアプリケーションで採用されているように、プルダウンメニューや画面上のボタンから指示を選択する方法や、特定のキー入力（複数のキーの組み合わせや、ESCキーの押下など）による方法を用いることが出来る。
【００８１】
また、図９では説明を簡単にするため、２つのＣＧオブジェクトを取り扱うアプリケーションを実行した場合を説明したが、ＣＧオブジェクトの数は２つに限られないことはいうまでもない。
【００８２】
さらに、第１の実施形態で説明したように、情報処理装置１００と通信可能なハードウェアを用いてオブジェクトレベルおよびユーザレベルを設定してもよい。
【００８３】
例えば、図１０に示すように、図６に示したユーザレベル調整器６０１にオブジェクトレベル調整用の機能を付加することができる。図１０の調整器１００１の右側は図６のユーザレベル調節器６０１に相当する。そして、左側に、オブジェクトレベル調節用ボリューム１００３と、オブジェクト選択用ボタン１００４、１００５が設けられる。
【００８４】
オブジェクトの選択は、オブジェクト選択ボタン１００４および１００５を用いて行う。ボタン１００４および１００５の働きは、それぞれ図９のボタン９１４および９１５と同様である。また、オブジェクトレベル調節用ボリューム１００３を左右に回転させると、スライドバー９１３の移動と同様にオブジェクトレベルが変化する。
【００８５】
ユーザレベル及びオブジェクトレベルの設定情報は、調整器１００１から接続ケーブル１００２および入出力部１０９を通して、本実施形態の情報処理装置１００に入力される。なお、図４及び図９を用いて説明したＧＵＩによる設定と同様、ユーザレベル及びオブジェクトレベルの設定値をＣＧオブジェクトの投影画像とともに表示し、対話的なユーザレベル設定を可能とすることが好ましい。
【００８６】
なお、図１０に示すような、専用のハードウェアを用いてオブジェクトレベル及びユーザレベルを設定もしくは調整する場合、プログラムの終了処理を含む他の各種指示は、依然としてＧＵＩによって入力するように構成しても良いし、例えばプログラムの終了指示のような特定の指示を入力するためのハードウェア（ボタン等）を図１０の調整器１００１に設けてもよい。
【００８７】
オブジェクトレベルを設定する別の方法として、図１１に示すようなスタイラス装置１１０１を用いる方法も存在する。スタイラス装置１１０１は、その位置および姿勢を検出するセンサ（不図示）を内蔵し、ボタン１１０２、ダイヤル１１０３を備える。スタイラス装置１１０１はデータ伝送ケーブル１１０４を通じて情報処理装置１００の入出力部１０９に接続される。ＣＰＵ１０１は入出力部１０９およびデータ伝送ケーブル１１０４を介してスタイラス装置１１０１を制御することにより、スタイラス装置１１０１の位置・姿勢データ、ボタン１１０２の押下状態、ダイヤル１１０３の回転位置情報を読み出す。
【００８８】
図１２は、スタイラス装置１１０１を使用してオブジェクトレベルを設定する場合の画面表示例である。図１２において、３次元表示画面１２０１には、２つのＣＧオブジェクト１２０２および１２０３の投影画像が表示されている。３次元表示画面１２０１には、スタイラス装置１１０１に内蔵されたセンサから読み出した位置・姿勢データをもとに算出した、３次元空間中の直線を表すポインタ１２０４が表示されている。
【００８９】
ユーザは、スタイラス装置１１０１を操作して、ポインタ１２０４をオブジェクトレベルを変更しようとするオブジェクト像（この表示例では直方体の投影像１２０２）に向け、ボタン１１０２を押下すると、指定したＣＧオブジェクトが選択される。このとき、選択されたオブジェクトはハイライト表示され、選択されたＣＧオブジェクトのオブジェクトレベルの値が表示される（オブジェクトレベル表示１２０５）。
【００９０】
ここでスタイラス装置１１０１のダイヤル１１０３を回転させると、回転の方向及び回転量に従ってオブジェクトレベル表示１２０５に示される値が増減するとともに、選択中のオブジェクトのオブジェクトレベルが１２０５に表示される値に設定される。
【００９１】
また、上述の実施形態においても説明したように、ユーザが対話的にオブジェクトレベルを設定するだけでなく、アプリケーションプログラム自身がオブジェクトレベルの設定、変更を行ってもよい。例えば、ゲームプログラムの場合であれば、ゲームが進行するにしたがってオブジェクトレベルを下げることにより、ユーザの上達に従って仮想空間に表示される障害物オブジェクトを増やし、ゲームの難易度を上げる効果が得られる。
【００９２】
以上述べたように、本実施形態の情報処理装置によれば、ユーザレベルのみならず各オブジェクトのオブジェクトレベルも変更可能である。このことによって、属性変更の工程数を低減できるだけでなく、オブジェクトの属性を柔軟に制御することも可能となる。
【００９３】
●＜第４の実施形態＞
第１の実施形態から第３の実施形態では、ユーザレベル、オブジェクトレベルの設定や、ユーザレベル、オブジェクトレベルを反映した属性の決定が１つのプログラム（あるいは１つのプロセス）の範囲に限定されている。これに対し、複数のプログラム（或いはプロセス）が共通のレベルに基づいてオブジェクトの属性を決定する構成を実現することも可能である。
【００９４】
本実施形態では、オブジェクトレベルのデータを含むデータベースを複数のプログラム間で共有し、ユーザレベルは個々のプログラムで独立に設定するものである。
【００９５】
本実施形態に係る情報処理装置１００’の構成例を図１３に示す。これは、図１に示す情報処理装置１００の構成に加え、ネットワークと接続するための通信部１３１０を装備したものである。通信部はネットワークインタフェースであってもよいし、シリアルインタフェースとモデムとの組み合わせであっても良い。
【００９６】
本実施形態の情報処理装置１００’が構成するデータベース共有システムの構成例を図１４に示す。システムには１つのサーバプロセス１４０１（以下、「サーバ」と略す）と、複数のクライアントプロセス１４０３（以下、「クライアント」と略す）があり、ネットワーク１４０２を介してデータを交換する。それぞれのクライアントは共通のデータベースを保持する。なお、本実施形態では、ネットワーク１４０２はイーサネット（登録商標）を用いて構築したＬＡＮである。ただし、ネットワークは他の任意の形態であって良い。
【００９７】
なお、本実施形態においては説明及び理解を容易にするため、サーバプロセス１４０１、複数のクライアントプロセス１４０３はそれぞれ別個の情報処理装置１００’で稼働するものとする。
【００９８】
ここで、以下の説明で用いる「データベース操作」という用語について説明する。共有データベースの「操作」とは、共有データベースを保持する任意のクライアントプロセスにおいて、データベースの内容を書き換える処理のことを差す。データベース操作は「操作指令」と「操作実行」の２段階に分かれる。操作指令はデータベースの更新要求であり、実際の書き換えは行われない。そして、書き換えは、操作実行の段階で行われる。本実施形態の以下の説明では「ユーザによる対話デバイスの操作」などのように、操作対象として共有データベースでないものを明示した場合を除き、「操作」とは「データベース操作」のことを意味するものとする。
【００９９】
なお、操作指令はユーザが発生させることもあれば、プロセスが動作の過程で発生させることもある。前者の例としては、図９に示したような操作画面上でユーザがマウスなどの対話デバイスを操作して、オブジェクトレベルを変更することが挙げられる。一方、後者の例としては、ゲーム・システムにおいて、ゲームプログラムがオブジェクトレベルを処理の一環として自ら変更することが挙げられる。
【０１００】
さて、図１５は本実施形態のシステムにおいて共有データベースを更新するための基本的な情報の流れを説明する図である。図１５で、Ａ，Ｂ，Ｃ，Ｄ（１５０１〜１５０４）はクライアント、Ｘ１５０５はサーバである。いま、クライアントＡ１５０１が共有データベースの操作指令を行ったとする。操作指令の内容はネットワーク（図示せず）経由でサーバＸ１５０５に送信される（矢印１）。サーバＸ１５０５は、クライアントＡ１５０１から送信された操作指令を、送信元であるクライアントＡ１５０１を含むすべてのクライアントＡ〜Ｄ（１５０１〜１５０４）に配信する（矢印２）。このように、サーバＸ１５０５が受信した操作指令を全クライアントに配信することによって、あるクライアントが発行した操作指令の内容を、全クライアントが知ることができる。
【０１０１】
図１６は、操作指令のデータ形式を示す図である。操作指令は複数のフィールドから構成される。操作ＩＤ１６０１は操作の種類を一意に識別するための番号で、各クライアントにおいて、操作指令を行った時点で割り当てる。エントリＩＤ１６０２は、データベースの各エントリを一意に識別するための番号で、データベースの内容を記述するファイルをロードした際に割り当てられる。操作内容１６０３は、操作指令の具体的内容であり、例えばオブジェクトレベルをある値に設定する操作であれば、オブジェクトレベルの設定値となる。なお、本実施例の以下の説明では、図１６の形式をもつ１つの操作指令のデータを「イベント」と呼ぶ。
【０１０２】
＜クライアント処理＞
次に、クライアント、サーバそれぞれの処理を詳しく説明する。
図１７は、クライアントにおける処理の全体的な流れを示すフローチャートである。クライアントが起動されると、ステップＳ１７０１にて仮想空間の内容を記述するファイルを外部記憶装置１０５（図１３）より読み込み、メモリ１０２上にデータベースを構築する。本実施形態においては各クライアントが共通のデータベースを個々に保持するため、各クライアントが保持するデータベースの内容を統一する必要があり、ステップＳ１７０１でロードするファイルは全クライアントで同一内容を有する。次に、サーバ１４０１（図１４）とのネットワーク接続を確立する（ステップＳ１７０２）。このとき、サーバ１４０１からクライアントＩＤが付与される。クライアントＩＤは固有情報であり、その後クライアントが発行するイベントにこのクライアントＩＤを付与することにより、情報の発信元が識別できる。なお、本実施形態において、クライアントとサーバ間のデータ交換は、TCP/IPプロトコルを用いた１対１のソケット通信にて行う。したがって、サーバ１４０１は少なくともクライアントの数だけのソケット通信路を持つことになる。
【０１０３】
続いて、ステップＳ１７０３でプロセスを分岐し、ユーザからの入力を処理するためのユーザ入力処理プロセス（ステップＳ１７０４）およびサーバから受信するイベントを処理するための受信イベント処理プロセス（ステップＳ１７０６）を起動する。なお、図１７には図示していないが、ＣＧオブジェクトの投影画像を生成するプロセスも起動する。投影画像生成処理は、ＣＧ画像生成方法として公知であるので、その詳細についての説明は省略する。また、ユーザ入力処理および受信イベント処理については、後で詳しく説明する。
【０１０４】
ユーザ入力処理プロセスおよび受信イベント処理プロセスはそれぞれステップＳ１７０５およびステップＳ１７０７でプロセスの終了指示があったかどうか判定され、終了指示がなければステップＳ１７０４およびステップＳ１７０６戻ってユーザ入力および受信イベントを継続して処理する。一方、終了指示があればステップＳ１７０８でプロセスを統合し、サーバとのネットワーク接続を切断（ステップＳ１７０９）した上で、すべての処理を終了する。
【０１０５】
（ユーザ入力処理）
ここで、ステップＳ１７０４のユーザ入力処理プロセスについて、図１８を用いて詳しく説明する。初めに、ステップＳ１８０２で、ユーザが入力の有無を判定し、あればステップＳ１８０３に進む。入力がなければ、ユーザ入力処理プロセスを終了する。
【０１０６】
ステップＳ１８０３では、ユーザの入力がプログラムの終了指示であるか否かを判定する。ユーザがプログラムの終了を指示した場合は、ステップＳ１８０４にてプログラムを構成する自プロセス以外のプロセスに終了を指示し、ユーザ入力処理を終了する。一方、ステップＳ１８０３でプログラムの終了を指示されていない場合は、ステップＳ１８０５に進む。
【０１０７】
ステップＳ１８０５では、ユーザ入力が共有データベースの操作、すなわち操作指令であるか否か判定する。操作指令であれば、ステップＳ１８０６で、操作指令の内容に基づいて、イベント（図１６参照）を生成する。生成したイベントは、続くステップＳ１８０７でサーバに向けて発信する。
【０１０８】
一方、ステップＳ１８０５でユーザの入力内容が操作指令でないと判定された場合は、ステップＳ１８０８で入力内容を実行する。
【０１０９】
ユーザがオブジェクトレベルの変更を行った場合の具体的なユーザ入力処理の動作を説明する。ユーザがオブジェクトレベルを変更すると、ステップＳ１８０２でユーザ入力ありと判定され、さらにステップＳ１８０３で終了処理でないと判定されて、ステップＳ１８０５に進む。ステップＳ１８０５では、操作指令であると判定して、ステップＳ１８０６でオブジェクトレベルの設定値を含むイベントを生成し、そのイベントをステップＳ１８０７でサーバに発信する。
【０１１０】
一方、ユーザがユーザレベルを変更した場合は、ステップＳ１８０５に至るまではオブジェクトレベルを変更した場合と同様である。ただし、ステップＳ１８０５では操作指令でないと判定し、ステップＳ１８０８でユーザレベルの設定値を変更して、ユーザ入力処理を終了する。
【０１１１】
（受信イベント処理）
続いて、ステップＳ１７０６（図１７）の受信イベント処理について詳しく説明する。図１９は、受信イベント処理の流れを示したものである。受信イベントは、不図示のイベント通信部がサーバより受信し、受信イベントバッファに入力する。ステップＳ１９０１では、受信イベントバッファを検索する。続くステップＳ１９０２で、バッファにイベントが入力されているかどうか判定し、受信イベントがあればステップＳ１９０３に進む。一方、受信イベントが存在しない場合には受信イベント処理を終了する。受信イベントがある場合、そのイベントを解析し、操作指令の内容を抽出する（ステップＳ１９０３）。次に、ステップＳ１９０４でイベントに記述された操作を実行する。例えば、オブジェクトレベルの変更を指示するイベントであれば、オブジェクトレベルをイベントに含まれる設定値に設定した上で、図７と同様のレベル反映処理を行う。
【０１１２】
＜サーバ処理＞
以上、クライアントの処理の流れを説明した。続いて、サーバの処理の流れを図２０を用いて詳しく説明する。
【０１１３】
最初にステップＳ２００１で、クライアントからの接続要求を受け付け、通信を確立する。このとき、各クライアントに固有のクライアントＩＤを通知する。次に、受信イベントバッファを検索し（ステップＳ２００２）、受信イベントが存在するかどうか判定する（ステップＳ２００３）。受信イベントがあれば、ステップＳ２００４に進み、なければステップＳ２００５に進む。ステップＳ２００４では、接続している各クライアントに当該イベントを送信する。ステップＳ２００５では、ユーザからの指令などによりサーバ処理を終了するかどうかを判定し、終了する場合はステップＳ２００６に進み、終了しない場合はステップＳ２００２に戻る。ステップＳ２００６では、接続している各クライアントに処理を終了することを通知し、次にクライアントとの接続を終了して（ステップＳ２００７）から処理を終了する。
【０１１４】
上述したように、本実施形態の情報処理装置によれば、オブジェクトの属性を決定するための基準であるオブジェクトレベルを複数のプログラム間で統一しながら、各プログラムが独立にユーザレベルを設定することによって、オブジェクトの属性をコントロールできる。
【０１１５】
なお本実施形態では、オブジェクトレベルを複数のプログラム間で共有し、ユーザレベルは個々のプログラムで設定する例を示した。しかし、ユーザレベルを共有しオブジェクトレベルを非共有とすることも可能であるし、あるいはユーザレベル・オブジェクトレベルの両方を共有することも可能である。
また、複数のプログラム間でデータを共有する方法は上述の方法以外の任意の方法を用いることが出来る。
【０１１６】
●＜第５の実施形態＞
第１の実施形態〜第４の実施形態では、１つのオブジェクトに対して１つのオブジェクトレベルを設定しているが、複数のオブジェクトレベルが設定できるようにしても良い。
このとき、各オブジェクトレベルを、それぞれ１つの属性に割り当てても良いし、あるいは１つの属性に対して複数のオブジェクトレベルを割り当てても良い。
【０１１７】
前者の例としては、可視属性に対して１つのオブジェクトレベルを、不透明度に別のオブジェクトレベルを用いる構成が考えうる。
後者の例としては、可視属性に対して２つのオブジェクトレベルを用いる構成が考えうる。そして、ユーザレベルが２つのオブジェクトレベルの間にある場合は可視属性を表示状態、それ以外の場合は非表示状態に設定する。
【０１１８】
●＜第６の実施形態＞
第１の実施形態〜第５の実施形態では、１つのユーザレベルを全ての属性に対して共通に適用していたが、各プログラムやユーザ、プロセス等に複数のユーザレベルを設定し、属性に応じて異なるユーザレベルを適用することも可能である。すなわち、各プログラムやユーザ、プロセス等に対して複数のユーザレベルを設定し、例えば可視属性と不透明度の属性に対し、それぞれ異なるユーザレベルとの関係に応じて上述の処理を行うように構成することが可能である。
【０１１９】
●＜第７の実施形態＞
第１の実施形態〜第６の実施形態では、オブジェクトレベルやユーザレベルが０．０から１．０の範囲の浮動小数点数であるものとしている。しかし、レベル値の種別や範囲はこれに限るものではなく、例えば０〜１００の範囲の整数値や、あるいは論理の真偽を表すフラグであっても良い。
【０１２０】
●＜第８の実施形態＞
第１の実施形態〜第７の実施形態では、ユーザレベルとオブジェクトレベルからＣＧオブジェクトの属性を決定する方法は予め決められており、ユーザが変更することは出来ない。これに対して、ユーザがその方法を変更可能なように構成することも出来る。例えば、ユーザレベルおよびオブジェクトレベルからＣＧオブジェクトの属性を決定する所望のアルゴリズムを実装したコールバック関数をオブジェクトやオブジェクトの属性に関連づけて登録し、描画処理の前に当該コールバック関数を起動して、属性を決定することができる。
【０１２１】
予め決められた属性の決定方法がある場合にコールバック関数を登録すると、予め決められた方法に替えてコールバック関数に実装された方法が属性の決定に用いられる。また、既にコールバック関数が登録されている場合に別のコールバック関数を再登録すると、新たに登録されたコールバック関数に実装された方法が属性の決定に用いられる。既にコールバック関数が登録されている場合に、その登録を抹消すると、予め決められた属性の決定方法が属性の決定に用いられるようになる。このように、コールバック関数を登録、再登録したり、コールバック関数の登録を抹消することによって、ＣＧオブジェクトの属性を決定する方法を任意に変更することができる。
【０１２２】
●＜第９の実施形態＞
第１の実施形態〜第８の実施形態では、制御する対象をＣＧオブジェクトに設定された属性とした場合について説明しているが、例えば、シーングラフのノードなど、仮想空間を属性によって定義する情報であればいかなるものを対象としても良い。
【０１２３】
なお、シーングラフとは仮想空間の構造と属性を表すためにコンピュータグラフィクスの分野で広く用いられるデータ構造である。また、ノードとは、シーングラフの構造を決定する最小の単位であり、単数または複数の属性を持つ。
【０１２４】
●＜他の実施形態＞
なお、上述の第４の実施形態においては、イベントを送信したクライアントにおいても、サーバを介して受信したイベントを処理することにより操作を行っていた。しかし、イベントの送信元クライアントに限って、受信イベント処理を行う前に操作を行うように構成しても良い。
【０１２５】
また、イベントに送信元クライアントＩＤを含ませることにより、送信元クライアントが自分の送信したイベントを識別して重複する処理を行わないようにすることも可能である。
【０１２６】
イベントに送信元クライアントＩＤが含まれる場合、サーバにおいても全クライアントにイベントを配信するのではなく、送信元クライアントを除くクライアントにイベントを配信するようにしても良い。この場合、サーバが配信するイベントからは送信元クライアントＩＤを取り除いても良い。
【０１２７】
また、上述の実施形態においては、１つの機器から構成される情報処理装置についてのみ説明したが、同等の機能を複数の機器から構成されるシステムによって実現しても良い。
【０１２８】
尚、前述した実施形態の機能を実現するソフトウェアのプログラムを、記録媒体から直接、或いは有線／無線通信を用いて当該プログラムを実行可能なコンピュータを有するシステム又は装置に供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムを実行することによって同等の機能が達成される場合も本発明に含む。
【０１２９】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータに供給、インストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の機能処理を実現するためのコンピュータプログラム自体も本発明に含まれる。
【０１３０】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１３１】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、磁気テープ等の磁気記録媒体、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ等の光／光磁気記憶媒体、不揮発性の半導体メモリなどがある。
【０１３２】
有線／無線通信を用いたプログラムの供給方法としては、コンピュータネットワーク上のサーバに本発明を形成するコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイル等、クライアントコンピュータ上で本発明を形成するコンピュータプログラムとなりうるデータファイル（プログラムデータファイル）を記憶し、接続のあったクライアントコンピュータにプログラムデータファイルをダウンロードする方法などが挙げられる。この場合、プログラムデータファイルを複数のセグメントファイルに分割し、セグメントファイルを異なるサーバに配置することも可能である。
【０１３３】
つまり、本発明の機能処理をコンピュータで実現するためのプログラムデータファイルを複数のユーザに対してダウンロードさせるサーバ装置も本発明に含む。
【０１３４】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件を満たしたユーザに対して暗号化を解く鍵情報を、例えばインターネットを介してホームページからダウンロードさせることによって供給し、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１３５】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【０１３６】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【図面の簡単な説明】
【０１３７】
【図１】本発明の実施形態に係る情報処理装置の構成例を示すブロック図である。
【図２】第１の実施形態における情報処理装置のＣＧオブジェクト描画処理全体を示すフローチャートである。
【図３】図２におけるレベル反映処理の詳細を示すフローチャートである。
【図４】第１の実施形態におけるユーザレベル変更画面表示の例を示す図である。
【図５】図４においてユーザレベルを変更した状態の例を示す図である。
【図６】図４におけるレベル調整部をハードウェアとして実現した例を示す図である。
【図７】第２の実施形態におけるレベル反映処理の詳細を示すフローチャートである。
【図８】第３の実施形態における情報処理装置のＣＧオブジェクト描画処理全体を示すフローチャートである。
【図９】第３の実施形態におけるレベル変更画面表示の例を示す図である。
【図１０】図９におけるレベル調整部をハードウェアとして実現した例を示す図である。
【図１１】オブジェクトレベル調整部として利用可能なスタイラス装置の例を示す図である。
【図１２】図１１のスタイラス装置を用いた場合のレベル変更画面表示の例を示す図である。
【図１３】第４の実施形態に係る情報処理装置の構成例を示すブロック図である。
【図１４】第４の実施形態におけるデータベース共有システム全体の構成例を示す図である。
【図１５】図１４のシステムにおけるプロセス間の基本的な情報伝達方法を模式的に示す図である。
【図１６】図１４のシステムにおいて用いるイベントデータの構成例を示す図である。
【図１７】第４の実施形態におけるクライアント処理の例を示すフローチャートである。
【図１８】図１７におけるユーザ入力処理の詳細を示すフローチャートである。
【図１９】図１７における受信イベント処理の詳細を示すフローチャートである。
【図２０】第４の実施形態におけるサーバ処理の例を示すフローチャートである。
【図１】
2005122572.tif 000003
【図２】
2005122572.tif 000004
【図３】
2005122572.tif 000005
【図４】
2005122572.tif 000006
【図５】
2005122572.tif 000007
【図６】
2005122572.tif 000008
【図７】
2005122572.tif 000009
【図８】
2005122572.tif 000010
【図９】
2005122572.tif 000011
【図１０】
2005122572.tif 000012
【図１１】
2005122572.tif 000013
【図１２】
2005122572.tif 000014
【図１３】
2005122572.tif 000015
【図１４】
2005122572.tif 000016
【図１５】
2005122572.tif 000017
【図１６】
2005122572.tif 000018
【図１７】
2005122572.tif 000019
【図１８】
2005122572.tif 000020
【図１９】
2005122572.tif 000021
【図２０】
2005122572.tif 000022