JP4347017B2 - 情報処理方法及び画像処理方法 - Google Patents

情報処理方法及び画像処理方法 Download PDF

Info

Publication number
JP4347017B2
JP4347017B2 JP2003358520A JP2003358520A JP4347017B2 JP 4347017 B2 JP4347017 B2 JP 4347017B2 JP 2003358520 A JP2003358520 A JP 2003358520A JP 2003358520 A JP2003358520 A JP 2003358520A JP 4347017 B2 JP4347017 B2 JP 4347017B2
Authority
JP
Japan
Prior art keywords
level
attribute
user
information processing
virtual object
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003358520A
Other languages
English (en)
Other versions
JP2005122572A5 (ja
JP2005122572A (ja
Inventor
真和 藤木
登志一 大島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2003358520A priority Critical patent/JP4347017B2/ja
Priority to US10/964,674 priority patent/US7834890B2/en
Publication of JP2005122572A publication Critical patent/JP2005122572A/ja
Publication of JP2005122572A5 publication Critical patent/JP2005122572A5/ja
Application granted granted Critical
Publication of JP4347017B2 publication Critical patent/JP4347017B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Description

本発明はCG(Computer Graphics)技術に関し、特に仮想空間を記述する属性に基づいて仮想空間をCGで提示する技術に関する。
従来より、仮想空間を記述する属性に基づいて、仮想空間の投影画像を生成するCG(Computer Graphics)技術が知られている(例えば、非特許文献1参照)。
なお、本明細書における「属性」とは仮想空間を規定する個々の情報であり、例えば、仮想物体の位置・姿勢・色・不透明度、照明の色・照射方向、空間の構造(例えば机の上にポットが配置され、机の動きとともにポットが動くというような階層的構造)などを表す情報である。
CG技術を応用した、仮想空間や仮想物体を設計するツールとして、3DCAD(3-Dimensional Computer Aided Design)ツールや3D(3-Dimensional)CGツールが知られている。例えば、3DCADツールの例としてはCoCreate社のOneSpace Designer、3DCGツールの例としてはAlias社のMayaが挙げられる。こうしたツールでは、設計物の投影画像をディスプレイ画面上に表示することにより、設計物を設計者が視覚的に確認することを可能にしている。このようなツールでは、設計の過程によっては設計物を構成する全ての部品(要素)を表示すると、画面上で必要な情報を判別しにくくなる場合がある。したがって、操作者は必要に応じて部品の属性(例えば、部品の表示/非表示)を切替ながら、設計を進める。この属性の切替作業は少なくとも、(1)部品の選択、(2)部品の属性変更、という2段階の工程を必要とする。
James D. Foley著、"Computer Graphics: Principles and Practice (Systems Programming)"Addison-Wesley, ISBN: 0201848406
このように、仮想空間や仮想物体を構成する部品の属性を切り替える場合、各部品について少なくとも2段階の操作工程を必要とするため、多数の部品に対する属性切替には多くの操作が必要であり、煩雑であった。
本発明はこのような従来技術の問題点に鑑みなされたものであり、その主な目的は、簡便な方法により複数のCGオブジェクトの属性をまとめて変更可能とすることにある。
上述の目的は以下の方法によって達成される。
仮想物体の属性を決定するための情報処理方法であって、第1取得手段が、前記仮想物体の属性に設定された第1のレベルを取得する第1取得ステップと、第2取得手段が、予めユーザ毎又はプロセス毎に設定された第2のレベルを取得する第2取得ステップと、変更手段が、ユーザから入力された情報に基づいて、前記第1のレベル及び前記第2のレベルの少なくとも一方を変更する変更ステップと、前記第1若しくは第2のレベルが変更された場合に、比較手段が、前記第1及び前記第2のレベルを比較する比較ステップと、属性値決定手段が、前記比較結果に基づいて、前記仮想物体の前記属性の値を決定する属性値決定ステップと、反映処理手段が、前記決定された属性の値を反映した処理を前記仮想物体に行う反映処理ステップとを有することを特徴とする情報処理方法
また、上述の目的は以下の方法によっても達成される。
仮想物体の属性を決定するための情報処理方法であって、第1取得手段が、前記仮想物体の属性に設定された第1のレベルを取得する第1取得ステップと、第2取得手段が、予めユーザ毎又はプロセス毎に設定された第2のレベルを取得する第2取得ステップと、変更手段が、ユーザから入力された情報に基づいて、前記第1のレベル及び前記第2のレベルの少なくとも一方を変更する変更ステップと、前記第1若しくは第2のレベルが変更された場合に、属性値決定手段が、前記第1及び前記第2のレベルの値の比率に基づいて、前記仮想物体の前記属性の値を決定する属性値決定ステップと、反映処理手段が、前記決定された属性の値を反映した処理を前記仮想物体に行う反映処理ステップとを有することを特徴とする情報処理方法
また、上述の目的は、本発明の情報処理方法又は画像処理方法をコンピュータ装置に実行させるプログラム又は当該プログラムを格納したコンピュータ読み取り可能な記録媒体によっても達成される。
このような構成により、本発明によれば、複数の仮想物体の属性を容易に変更することが可能になる。
●<第1の実施形態>
以下、添付図面を参照して本発明をその好適な実施形態に基づいて詳細に説明する。
なお、以下の説明においては、3DCADや3DCGツールなど、コンピュータグラフィックス技術を用いて仮想物体を設計、描画するツールにおいて、部品など、属性を有し、属性の設定を制御可能な最小単位を「CGオブジェクト」と呼ぶ。また、CGオブジェクトは仮想物体を表すため、CGオブジェクトを仮想物体と呼ぶこともある。
また、以下の説明において、「プロセス」とはOS(Operating System)のカーネルがプログラムを管理するための単位であり、1つのプログラムは1つのプロセスとして実行されるか、あるいは複数のプロセスに分岐して実行される。本発明の情報処理方法による処理は、プログラムを構成するいずれか1つ又は複数のプロセスが全処理を実行することもあれば、処理を分割して複数のプロセスがそれぞれ部分的に実行することもあり得る。
本実施形態では、各CGオブジェクトが持つ「オブジェクトレベル」と呼ぶ属性値と、これらCGオブジェクトを用いるアプリケーションプログラムやプロセス、ユーザ毎に設定されるレベル(以降「ユーザレベル」と呼ぶ)を比較し、その結果に基づいて、アプリケーションプログラムにおける各CGオブジェクトの表示/非表示を決定する。
なお、オブジェクトレベルをいつ、どのように設定するか、またユーザが設定及び変更可能とするか否かについては、CGオブジェクトを取り扱うアプリケーションプログラムの目的や内容に応じて適宜決定することが出来る。
例えば、CGオブジェクトを用いたコンテンツをユーザに提供するようなアプリケーションプログラムにおいては、コンテンツ制作者がオブジェクトレベルを設定し、ユーザが変更できないようにすることが考えられる。
一方、例えば3DCADや3DCGの設計アプリケーションプログラムのように、ユーザが個々のCGオブジェクトの生成に直接関与するようなアプリケーションプログラムにおいてはユーザがCGオブジェクト生成時に設定可能とすることが考えられる。
オブジェクトレベルは例えば公知のCGオブジェクトデータ構造における属性領域の未使用部分を利用したり、属性領域を拡張することにより、CGオブジェクトデータ中に格納される。
本実施形態において「ユーザレベル」は、基本的にCGオブジェクトの表示、非表示を制御する主体となりうるもの全てに設定可能なパラメータである。例えばアプリケーションを利用する各ユーザに固有なパラメータとして設定することにより、同一のアプリケーションを複数のユーザが利用する場合に、ユーザに応じて異なる環境を提供することが可能になる。
例えば、ゲームアプリケーションであれば、各ユーザの習熟度によってユーザレベルをアプリケーション側で変更することで、ゲームの難易度やユーザが利用可能なアイテムを変化させることが可能になる。
或いは、アプリケーションプログラムのパラメータとしてユーザレベルを設定すれば、同一のCGオブジェクトを用いる複数のアプリケーションの各々で異なる環境を実現できる。例えば、アプリケーションプログラムのバージョン(入門者用、上級者用)に応じて使用可能なCGオブジェクトを変化させることが可能になる。
また、アプリケーションプログラムの中で実行されるプロセスのパラメータとしてユーザレベルを設定すれば、例えばCGオブジェクトを複数のウィンドウ描画プロセスによる複数のウィンドウで表示している場合、表示されるCGオブジェクトをウィンドウ毎に変更することが可能である。具体的には、例えば、同一のCGオブジェクトを異なる視点からみた投影画像を同時に表示するような場合、ある視点からの投影画像においてのみ特定のCGオブジェクトを非表示にするといったことが可能になる。
いずれにしてもユーザレベルは、アプリケーションプログラムで管理されるパラメータとしてメモリや記憶装置に記憶される。
なお、本実施形態でCGオブジェクトは、オブジェクトレベルだけでなく、表示/非表示を表す「可視属性」と呼ぶ属性を持つものとする。また、オブジェクトレベルおよびユーザレベルは0.0以上、1.0以下の浮動小数点数、可視属性は1(表示状態)と0(非表示状態)の2値とする。
本実施形態における情報処理装置のハードウェア構成例を図1に示す。情報処理装置100は、プログラムを実行することにより装置全体の動作を制御するCPU101、CPU101が実行するプログラムやデータを格納する、ROMやRAMから構成されるメモリ102、装置内の各構成モジュール間のデータ転送を司るバス103、バス103と各種装置とのインタフェース104、CPU101が実行する各種プログラム(3DCAD3Dや3DCGツールといったアプリケーションプログラムを含む)やデータを格納する外部記憶装置105、ユーザが本情報処理装置100に対して指示を与えるためのユーザインタフェースとしてのキーボード106およびマウス107、各種表示を行う表示部108及び、ネットワークインタフェースやシリアルインタフェース等、他の装置を直接又は間接的に接続するための入出力部109とを有する。このような情報処理装置はパーソナルコンピュータとして一般に入手又は組立可能な汎用コンピュータによって実現可能である。
図2は情報処理装置100における、CGオブジェクトの描画処理全体を示すフローチャートである。図2に示す処理は、情報処理装置100が実行するアプリケーションプログラムの内部で実行される。
アプリケーションプログラムの起動が例えばユーザから指示されると、アプリケーションプログラムを例えば外部記憶装置105から読み出し、実行する。
そして、ステップS201で、当該アプリケーションプログラムが取り扱うCGオブジェクトの、属性を記述するファイルを外部記憶装置105より読み込み、メモリ102上にCGオブジェクトの属性データベースを構築する。
続くステップS203で、例えばキーボード106やマウス107を介したユーザ入力があるかチェックする。入力があればステップS204に進む。入力がなければ、ステップS207へ進む。
ステップS204では、ユーザ入力がプログラム終了の指示であるか否かを判定する。指示がプログラムの終了であれば、全体の処理を終了する。一方、指示がプログラムの終了でない場合は、ステップS205に進む。
ステップS205では、ユーザ入力がユーザレベルの変更指示であるか否か判定する。ユーザレベルの変更指示である場合はステップS206に進み、ユーザの指示に基づいてユーザレベルを変更した後、ステップS207へ進む。一方、ユーザレベルの変更指示でない場合は、直接ステップS207に進む。
ステップS207ではレベル反映処理を行う。レベル反映処理の詳細は後述する。
ステップS207の終了後はステップS208へ進み、描画処理を行う。この処理では、描画結果を保存する画像データを初期化した後、CGオブジェクトの可視属性に基づいて処理を行う。すなわち、可視属性が「1」(表示状態)であるCGオブジェクトはその投影画像を生成し、可視属性が「0」(非表示状態)であるCGオブジェクトの投影画像は生成しない。なお、CGオブジェクトの投影像の生成には公知のコンピュータグラフィクス技術を用いる。
ステップS208の描画処理を終了した後は、ステップS202に戻り、ユーザから終了の指示があるまでステップS203〜S208の処理を繰り返し行う。
<レベル反映処理>
図2のステップS207で行うレベル反映処理について、図3に示すフローチャートを用いて説明する。
まず、ステップS301で、現在実行中のアプリケーションで取り扱うCGオブジェクトの全てに関してレベル反映処理を完了したか否か判定する。すべてのCGオブジェクトに対して処理済みである場合には、レベル反映処理を終了する。一方、未処理のCGオブジェクトが存在する場合は、ステップS302に進み、未処理のCGオブジェクトのうち1つを選択する。処理済みであるか、未処理であるかは例えばCGオブジェクトの属性として処理済/未処理属性を設定し、その値に応じて判断したり、プロジェクト中に含まれるCGオブジェクトのリストを作成し、処理を行ったものをリストから削除していく方法など、任意の方法によって判別可能である。
次にステップS303では、アプリケーションプログラムに設定されたユーザレベルと選択したCGオブジェクトのオブジェクトレベルの大小を比較する。ユーザレベルがオブジェクトレベル以上である場合は、ステップS304に進む。一方、ユーザレベルがオブジェクトレベル未満である場合は、ステップS305へ進む。
ステップS304では、オブジェクトの可視属性を「表示状態」に設定する。一方、ステップS305では可視属性を「非表示状態」に設定する。
ステップS304またはステップS305が終われば、ステップS301に戻る。
<ユーザレベルの変更>
図4は、本実施形態における情報処理装置100における、ユーザレベル設定用画面表示例を示す図である。図4の画面は例えばステップS208(図2)の描画処理で生成する。生成した画像はメモリ102(図1)のフレームバッファ領域に書き込まれ、さらにフレームバッファ内の画像情報が表示部108に出力される。
ここで、アプリケーションプログラムで取り扱っているCGオブジェクトが直方体と円柱の2つであり、直方体オブジェクトのオブジェクトレベルは0.3、円柱オブジェクトのオブジェクトレベルは0.7に設定されているとする。
表示ウィンドウ401の中には、CGオブジェクトの投影画像を表示するための3次元空間表示部402、ユーザレベルを設定するためのユーザレベル設定部406が設けられている。また、405はユーザがキーボード106やマウス107で操作可能なカーソルである。
ユーザレベル設定部406には、ユーザレベル・バリュエータ407およびユーザレベル表示部408が配置されている。ユーザレベルを変更するには、ユーザレベル・バリュエータ407上のスライドバー409上にカーソル405を移動し、マウス107のボタンを押しながらカーソル405を左右に移動させる(スライドバー409を左右にドラッグする)。このときカーソル405の移動につれてスライドバー409が移動する。スライドバー409を移動させることにより、ユーザレベルの変更指示が発生する。
なお、ユーザレベルは、バリュエータ407上のスライドバー409の位置により決定され、現在の設定値はユーザレベル表示部408に表示される。図4の例では、ユーザレベルが0.9に設定されている。このように、ユーザはGUIを操作することによって、ユーザレベルを対話的に変更することが出来る。
図4の例では、ユーザレベルの設定値(0.9)が直方体オブジェクトおよび円柱オブジェクトのいずれのオブジェクトレベル(0.3及び0.7)よりも大きいので、両CGオブジェクトの可視属性は1(表示状態)に設定される。そのため、ステップS208の描画処理により、3次元空間表示部402に直方体オブジェクトの投影像403および円柱オブジェクトの投影像404が表示される。
図5は、図4の状態からスライドバー409を左に移動させ、ユーザレベルを0.5に変更した状態を示す。このとき、ユーザレベルは直方体オブジェクトのオブジェクトレベル(0.3)以上であり、また円柱オブジェクトのオブジェクトレベル(0.7)未満である。したがって、図3のステップS303〜S305で説明したように、直方体オブジェクトの可視属性は1(表示状態)、円柱オブジェクトの可視属性は0(非表示状態)にそれぞれ設定される。その結果、3次元空間表示部には2つのオブジェクトのうち、直方体オブジェクトのみの投影像が表示される。
図4および図5を用いて、ユーザレベルの変更指示の入力画面とユーザの操作方法について説明した。ユーザレベルの変更以外の指示を与える方法としては、通常ウィンドウ形式を用いたOS上で動作するアプリケーションで採用されているように、プルダウンメニューや画面上のボタンから指示を選択する方法や、特定のキー入力(複数のキーの組み合わせや、ESCキーの押下など)による方法を用いることが出来る。
なお、図4および図5では説明を簡単にするため、2つのCGオブジェクトを取り扱うアプリケーションを実行した場合を説明したが、CGオブジェクトの数は2つに限られないことはいうまでもない。
なお、本実施形態ではユーザレベルをGUI(Graphical User Interface)で設定可能とする例を説明したが、他の方法を用いることも可能である。例えば、情報処理装置100と通信可能なハードウェアを用いてもよい。例えば、図6に示すように、ボリューム603をユーザレベルバリュエータとして有するユーザレベル調整器601を設け、入出力部109にケーブル602によって接続して用いることも可能である。ユーザレベル調整器601はBluetoothなど無線によって情報処理装置100と接続してもよい。
ユーザがボリューム603を左右に回転させると、回転角に応じた値が情報処理装置100へ出力され、情報処理装置100はその値を設定可能なユーザレベルの範囲内の値に変換して、ユーザレベルを変化させる。なお、図4を用いて説明したGUIによる設定と同様、ユーザレベルの設定値をCGオブジェクトの投影画像とともに表示し、対話的なユーザレベル設定を可能とすることが好ましい。
なお、図6に示すような、専用のハードウェアを用いてユーザレベルを設定もしくは調整する場合、プログラムの終了処理を含む他の各種指示は、依然としてGUIによって入力するように構成しても良いし、例えばプログラムの終了指示のような特定の指示を入力するためのハードウェア(ボタン等)を図6のユーザレベル調整器601に設けてもよい。
なお、本実施形態ではユーザレベルをユーザが設定又は変更可能とした場合のみを説明したが、ユーザレベルはアプリケーション自身が設定又は変更しても良い。例えば、重要度の高いCGオブジェクトには小さなオブジェクトレベルを設定し、情報処理装置の処理負荷に反比例するようにユーザレベルを変化させると、処理負荷が高くなる(すなわちユーザレベルが低下)に従って重要でないCGオブジェクトは非表示状態となり、CGオブジェクトの描画に必要な処理負荷が軽減できる。
また、図4及び図5においては、常時ユーザレベル設定部406が表示されていたが、ユーザから要求があった場合にのみユーザレベル設定部406を表示するようにしても良い。
以上述べたように、本実施形態の情報処理装置によれば、ユーザレベルという1つの値を変更するだけで、全てのCGオブジェクトについて一括して属性を設定又は変更することが可能であり、属性設定及び変更に要する工数を軽減することが出来る。
●<第2の実施形態>
第1の実施形態では、オブジェクトレベル及びユーザレベルの大小比較に基づき、CGオブジェクトの可視属性を設定している。しかしながら、CGオブジェクトの他の属性を設定してもよいし、大小比較以外の方法で設定しても良い。すなわち、オブジェクトレベルおよびユーザレベルを用いて論理的に属性を決定可能であれば、算出する属性の種類及び属性算出のアルゴリズムは問わない。
本実施形態に係る情報処理装置は、オブジェクトレベル及びユーザレベルの比率に基づいてCGオブジェクトの属性を決定する。
なお、本実施形態においてCGオブジェクトはオブジェクトレベルの他に、不透明度を属性として持つものとする。本実施形態における情報処理装置の構成は第1の実施形態と同様でよいので、説明を省略する。また、本実施形態において、オブジェクトレベルおよびユーザレベルはそれぞれ0.0以上、1.0以下の浮動小数点数とする。また、不透明度は予め定められた最小値および最大値をもち、最小値以上、最大値以下の浮動小数点数であるとする。
本実施形態において、第1の実施形態と異なる処理は、レベル反映処理(図2のステップ208)および描画処理(図2の209)のみであるため、これらステップで行うべき処理について説明する。
<レベル反映処理>
図7は本実施形態におけるレベル反映処理を示すフローチャートである。
ステップS301とS302では、第1の実施形態におけるレベル判定処理と同様の処理を行う。
ステップS703では、ステップS702で選択した未処理CGオブジェクトのオブジェクトレベルが0であるか判定する。本ステップは、ステップS704で0による除算が行われないようにするためのものである。オブジェクトレベルが0である場合はステップS706に進む。一方、オブジェクトレベルが0でない場合は、ステップS704に進む。
ステップS704では、選択されたCGオブジェクトに設定する不透明度Oを算出する。本実施形態において、不透明度Oは、オブジェクトレベルに対するユーザレベルの比率に、予め定められた不透明度の最大値を掛け合わせることで求める。すなわち、
O=不透明度の最大値×ユーザレベル/オブジェクトレベル
である。
続いてステップS705では、ステップS704で算出したOと、予め定められた不透明度の最大値を比較する。算出した不透明度Oが最大値以上である場合は、ステップS706に進み、CGオブジェクトの不透明度に最大値を設定してステップS301に戻る。
一方、算出した不透明度Oが最大値未満である場合は、ステップS707に進む。ステップS707では、算出した不透明度Oと予め定められた不透明度の最小値を比較する。Oが最小値未満である場合は、ステップS708にてCGオブジェクトの不透明度に最小値を設定してステップS301に戻る。
一方、不透明度が最小値以上である場合は、ステップS709に進み、算出した不透明度Oをオブジェクトの不透明度属性の値として設定し、ステップS301に戻る。
<描画処理>
本実施形態における描画処理(図2のステップS209で行う処理)では、描画結果を保存する画像データを初期化した後、不透明度の値に基づいてCGオブジェクトの投影像を生成する。半透明物体や不透明物体のCG描画方法はコンピュータグラフィクス分野で公知な方法を利用可能であるため、説明は省略する。
本実施形態において、オブジェクトレベルおよびユーザレベルの設定及び変更方法は第1の実施形態と同様である。ユーザレベルは、図4に示す表示ウィンドウ上のGUIを用いて調整したり、図6に示したユーザレベル調整器601を用いて調整する。
なお、第1の実施形態において説明したように、ユーザレベルはユーザが対話的に設定、変更する方法以外に、アプリケーションプログラム自身がユーザ入力とは無関係に変更することも可能である。
以上、オブジェクトレベルとユーザレベルとの大小比較以外の結果に基づいて、可視属性以外のCGオブジェクトの属性を変更する一例としての実施形態を説明した。繰り返すが、オブジェクトレベルおよびユーザレベルを用いて論理的に属性を決定可能であれば、算出する属性の種類及び属性算出のアルゴリズムは問わない。
以上述べたように、本実施形態の情報処理装置によれば、ユーザレベルという1つの値を変更するだけで、全てのCGオブジェクトについて一括して属性を設定又は変更することが可能であり、属性設定及び変更に要する工数を軽減することが出来る。
●<第3の実施形態>
第1の実施形態および第2の実施形態では、オブジェクトレベルは予めファイルに記述された値を用い、ユーザレベルのみを対話的あるいはアプリケーションが自ら変更している。これに対し、本実施形態の情報処理装置は、オブジェクトレベルも変更可能としたものである。なお、本実施形態では、第1の実施形態と同様にオブジェクトレベルとユーザレベルに基づき、オブジェクトの可視属性を決定する場合を例にして説明する。
本実施形態における情報処理装置の構成は第1の実施形態と同様でよいので、説明を省略する。
図8は本実施形態における、情報処理装置100のCGオブジェクト描画処理全体を示すフローチャートである。図8に示す処理は、情報処理装置100が実行するアプリケーションプログラムの内部で実行される。
図8の処理において、プログラムが起動されてから、ユーザ入力有無を判定し、処理を終了もしくはユーザレベルを変更する処理(ステップS201〜S206)は、図3で説明した第1の実施形態と同様であるため説明は省略し、ステップS806以下の処理について説明する。
ステップS806では、ユーザの入力がオブジェクトレベル変更の対象となるオブジェクトを選択する指示であるか否か判定する。オブジェクトの選択指示の場合は、ステップS812に進み、ユーザの指示したCGオブジェクトをオブジェクトレベル変更の対象として登録した後、ステップS207へ進む。一方、ユーザ入力がオブジェクトの選択指示でない場合は、ステップS807に進む。オブジェクトレベル変更対象CGオブジェクトの登録は、例えば対象CGオブジェクトのIDを抽出してメモリ102に書き出しておくか、対象CGオブジェクトの属性の1つとしてレベル変更対象フラグを設けておき、その値を変更するなど任意の方法により実現可能である。
ステップS807では、ユーザ入力がオブジェクトレベルの変更指示であるか否か判定する。オブジェクトレベルの変更指示である場合は、ステップS808に進む。ステップS808で、オブジェクトレベル変更の対象として登録されているCGオブジェクトのオブジェクトレベルをユーザの指示に基づいて変更した後、ステップS207へ進む。一方、ステップS807において、ユーザ入力がオブジェクトレベルの変更指示でない場合も、ステップS207に進む。
ステップS207ではレベル反映処理を、引き続くステップS208では描画処理行う。これらの処理は、第1の実施形態での処理(図3)と同様であるため、説明を省略する。
ステップS208の描画処理を終了した後は、ステップS203に戻り、ユーザから終了の指示があるまで上述の処理を繰り返し行う。
<オブジェクトレベル及びユーザレベルの変更>
図9は、本実施形態の情報処理装置100における、オブジェクトレベル及びユーザレベル設定用画面表示例を示す図である。図9の画面は例えばステップS208の描画処理で生成する。生成した画像はメモリ102のフレームバッファ領域に書き込まれ、さらにフレームバッファ内の画像情報が表示部108に出力される。
ここで、アプリケーションプログラムで取り扱っているCGオブジェクトが直方体と円柱の2つであり、直方体オブジェクトのオブジェクトレベルは0.3、円柱オブジェクトのオブジェクトレベルは0.7に設定されているとする。
表示ウィンドウ901の中には、CGオブジェクトの投影画像を表示するための3次元空間表示部902、ユーザレベルを設定するためのユーザレベル設定部906、オブジェクトレベルを設定するためのオブジェクトレベル設定部910が設けられている。また、905はユーザがキーボード106やマウス107で操作可能なカーソルである。ユーザレベル設定部906は、図4におけるユーザレベル設定部406と同一構成であり、ユーザレベル設定部906を用いたユーザレベル設定処理も、図4におけるユーザレベル設定部406を用いたユーザレベル設定処理と同一であるため、説明は省略する。
一方、オブジェクトレベルを設定又は変更するには、設定の対象とするオブジェクトを選択する必要がある。オブジェクトの選択は、オブジェクト設定部910に設けられたオブジェクト選択ボタン914および915を用いて行う。ボタン915にカーソル905を合わせて、マウス107(図1)のボタンを押下することにより、メモリ102上に記憶されている順番でCGオブジェクトが1つづつ選択される。一方、ボタン914の操作では逆順にCGオブジェクトが選択される。
ボタン915又は914の操作によりCGオブジェクトが選択状態になると、情報処理装置100にオブジェクト選択指令が発行される。選択されたCGオブジェクトをユーザが正しく認識できるよう、オブジェクトを識別するための文字列が選択中オブジェクト表示部913に表示される。なお、図9の表示例では、直方体オブジェクト903が選択されており、ステップS201で読み込むファイルなどで設定されるCGオブジェクト903の名称(ここでは「直方体」)が表示されている。
オブジェクトレベル設定部910には、さらに、オブジェクトレベル・バリュエータ911およびオブジェクトレベル表示部912が配置されている。選択中のCGオブジェクトのオブジェクトレベルを変更するには、オブジェクトレベル・バリュエータ911上のスライドバー913上にカーソル905を移動し、マウス(図1の107)のボタンを押しながらカーソルを左右に移動させる(スライドバー913を左右にドラッグする)。このときカーソルの移動につれてスライドバーが移動する。このオブジェクトレベル・バリュエータの操作により、オブジェクトレベルの変更指示が発生する。
なお、オブジェクトレベルは、バリュエータ911上のスライドバー913の位置により決定され、現在の設定値はオブジェクトレベル表示部912に表示される。図9の例では、オブジェクトレベルが0.3に設定されている。このように、ユーザはGUIを操作することによって、選択中のCGオブジェクトのオブジェクトレベルを対話的に変更することが出来る。
第1の実施形態と同様、ユーザレベルの変更以外の指示を与える方法としては、通常ウィンドウ形式を用いたOS上で動作するアプリケーションで採用されているように、プルダウンメニューや画面上のボタンから指示を選択する方法や、特定のキー入力(複数のキーの組み合わせや、ESCキーの押下など)による方法を用いることが出来る。
また、図9では説明を簡単にするため、2つのCGオブジェクトを取り扱うアプリケーションを実行した場合を説明したが、CGオブジェクトの数は2つに限られないことはいうまでもない。
さらに、第1の実施形態で説明したように、情報処理装置100と通信可能なハードウェアを用いてオブジェクトレベルおよびユーザレベルを設定してもよい。
例えば、図10に示すように、図6に示したユーザレベル調整器601にオブジェクトレベル調整用の機能を付加することができる。図10の調整器1001の右側は図6のユーザレベル調節器601に相当する。そして、左側に、オブジェクトレベル調節用ボリューム1003と、オブジェクト選択用ボタン1004、1005が設けられる。
オブジェクトの選択は、オブジェクト選択ボタン1004および1005を用いて行う。ボタン1004および1005の働きは、それぞれ図9のボタン914および915と同様である。また、オブジェクトレベル調節用ボリューム1003を左右に回転させると、スライドバー913の移動と同様にオブジェクトレベルが変化する。
ユーザレベル及びオブジェクトレベルの設定情報は、調整器1001から接続ケーブル1002および入出力部109を通して、本実施形態の情報処理装置100に入力される。なお、図4及び図9を用いて説明したGUIによる設定と同様、ユーザレベル及びオブジェクトレベルの設定値をCGオブジェクトの投影画像とともに表示し、対話的なユーザレベル設定を可能とすることが好ましい。
なお、図10に示すような、専用のハードウェアを用いてオブジェクトレベル及びユーザレベルを設定もしくは調整する場合、プログラムの終了処理を含む他の各種指示は、依然としてGUIによって入力するように構成しても良いし、例えばプログラムの終了指示のような特定の指示を入力するためのハードウェア(ボタン等)を図10の調整器1001に設けてもよい。
オブジェクトレベルを設定する別の方法として、図11に示すようなスタイラス装置1101を用いる方法も存在する。スタイラス装置1101は、その位置および姿勢を検出するセンサ(不図示)を内蔵し、ボタン1102、ダイヤル1103を備える。スタイラス装置1101はデータ伝送ケーブル1104を通じて情報処理装置100の入出力部109に接続される。CPU101は入出力部109およびデータ伝送ケーブル1104を介してスタイラス装置1101を制御することにより、スタイラス装置1101の位置・姿勢データ、ボタン1102の押下状態、ダイヤル1103の回転位置情報を読み出す。
図12は、スタイラス装置1101を使用してオブジェクトレベルを設定する場合の画面表示例である。図12において、3次元表示画面1201には、2つのCGオブジェクト1202および1203の投影画像が表示されている。3次元表示画面1201には、スタイラス装置1101に内蔵されたセンサから読み出した位置・姿勢データをもとに算出した、3次元空間中の直線を表すポインタ1204が表示されている。
ユーザは、スタイラス装置1101を操作して、ポインタ1204をオブジェクトレベルを変更しようとするオブジェクト像(この表示例では直方体の投影像1202)に向け、ボタン1102を押下すると、指定したCGオブジェクトが選択される。このとき、選択されたオブジェクトはハイライト表示され、選択されたCGオブジェクトのオブジェクトレベルの値が表示される(オブジェクトレベル表示1205)。
ここでスタイラス装置1101のダイヤル1103を回転させると、回転の方向及び回転量に従ってオブジェクトレベル表示1205に示される値が増減するとともに、選択中のオブジェクトのオブジェクトレベルが1205に表示される値に設定される。
また、上述の実施形態においても説明したように、ユーザが対話的にオブジェクトレベルを設定するだけでなく、アプリケーションプログラム自身がオブジェクトレベルの設定、変更を行ってもよい。例えば、ゲームプログラムの場合であれば、ゲームが進行するにしたがってオブジェクトレベルを下げることにより、ユーザの上達に従って仮想空間に表示される障害物オブジェクトを増やし、ゲームの難易度を上げる効果が得られる。
以上述べたように、本実施形態の情報処理装置によれば、ユーザレベルのみならず各オブジェクトのオブジェクトレベルも変更可能である。このことによって、属性変更の工程数を低減できるだけでなく、オブジェクトの属性を柔軟に制御することも可能となる。
●<第4の実施形態>
第1の実施形態から第3の実施形態では、ユーザレベル、オブジェクトレベルの設定や、ユーザレベル、オブジェクトレベルを反映した属性の決定が1つのプログラム(あるいは1つのプロセス)の範囲に限定されている。これに対し、複数のプログラム(或いはプロセス)が共通のレベルに基づいてオブジェクトの属性を決定する構成を実現することも可能である。
本実施形態では、オブジェクトレベルのデータを含むデータベースを複数のプログラム間で共有し、ユーザレベルは個々のプログラムで独立に設定するものである。
本実施形態に係る情報処理装置100’の構成例を図13に示す。これは、図1に示す情報処理装置100の構成に加え、ネットワークと接続するための通信部1310を装備したものである。通信部はネットワークインタフェースであってもよいし、シリアルインタフェースとモデムとの組み合わせであっても良い。
本実施形態の情報処理装置100’が構成するデータベース共有システムの構成例を図14に示す。システムには1つのサーバプロセス1401(以下、「サーバ」と略す)と、複数のクライアントプロセス1403(以下、「クライアント」と略す)があり、ネットワーク1402を介してデータを交換する。それぞれのクライアントは共通のデータベースを保持する。なお、本実施形態では、ネットワーク1402はイーサネット(登録商標)を用いて構築したLANである。ただし、ネットワークは他の任意の形態であって良い。
なお、本実施形態においては説明及び理解を容易にするため、サーバプロセス1401、複数のクライアントプロセス1403はそれぞれ別個の情報処理装置100’で稼働するものとする。
ここで、以下の説明で用いる「データベース操作」という用語について説明する。共有データベースの「操作」とは、共有データベースを保持する任意のクライアントプロセスにおいて、データベースの内容を書き換える処理のことを差す。データベース操作は「操作指令」と「操作実行」の2段階に分かれる。操作指令はデータベースの更新要求であり、実際の書き換えは行われない。そして、書き換えは、操作実行の段階で行われる。本実施形態の以下の説明では「ユーザによる対話デバイスの操作」などのように、操作対象として共有データベースでないものを明示した場合を除き、「操作」とは「データベース操作」のことを意味するものとする。
なお、操作指令はユーザが発生させることもあれば、プロセスが動作の過程で発生させることもある。前者の例としては、図9に示したような操作画面上でユーザがマウスなどの対話デバイスを操作して、オブジェクトレベルを変更することが挙げられる。一方、後者の例としては、ゲーム・システムにおいて、ゲームプログラムがオブジェクトレベルを処理の一環として自ら変更することが挙げられる。
さて、図15は本実施形態のシステムにおいて共有データベースを更新するための基本的な情報の流れを説明する図である。図15で、A,B,C,D(1501〜1504)はクライアント、X1505はサーバである。いま、クライアントA1501が共有データベースの操作指令を行ったとする。操作指令の内容はネットワーク(図示せず)経由でサーバX1505に送信される(矢印1)。サーバX1505は、クライアントA1501から送信された操作指令を、送信元であるクライアントA1501を含むすべてのクライアントA〜D(1501〜1504)に配信する(矢印2)。このように、サーバX1505が受信した操作指令を全クライアントに配信することによって、あるクライアントが発行した操作指令の内容を、全クライアントが知ることができる。
図16は、操作指令のデータ形式を示す図である。操作指令は複数のフィールドから構成される。操作ID1601は操作の種類を一意に識別するための番号で、各クライアントにおいて、操作指令を行った時点で割り当てる。エントリID1602は、データベースの各エントリを一意に識別するための番号で、データベースの内容を記述するファイルをロードした際に割り当てられる。操作内容1603は、操作指令の具体的内容であり、例えばオブジェクトレベルをある値に設定する操作であれば、オブジェクトレベルの設定値となる。なお、本実施例の以下の説明では、図16の形式をもつ1つの操作指令のデータを「イベント」と呼ぶ。
<クライアント処理>
次に、クライアント、サーバそれぞれの処理を詳しく説明する。
図17は、クライアントにおける処理の全体的な流れを示すフローチャートである。クライアントが起動されると、ステップS1701にて仮想空間の内容を記述するファイルを外部記憶装置105(図13)より読み込み、メモリ102上にデータベースを構築する。本実施形態においては各クライアントが共通のデータベースを個々に保持するため、各クライアントが保持するデータベースの内容を統一する必要があり、ステップS1701でロードするファイルは全クライアントで同一内容を有する。次に、サーバ1401(図14)とのネットワーク接続を確立する(ステップS1702)。このとき、サーバ1401からクライアントIDが付与される。クライアントIDは固有情報であり、その後クライアントが発行するイベントにこのクライアントIDを付与することにより、情報の発信元が識別できる。なお、本実施形態において、クライアントとサーバ間のデータ交換は、TCP/IPプロトコルを用いた1対1のソケット通信にて行う。したがって、サーバ1401は少なくともクライアントの数だけのソケット通信路を持つことになる。
続いて、ステップS1703でプロセスを分岐し、ユーザからの入力を処理するためのユーザ入力処理プロセス(ステップS1704)およびサーバから受信するイベントを処理するための受信イベント処理プロセス(ステップS1706)を起動する。なお、図17には図示していないが、CGオブジェクトの投影画像を生成するプロセスも起動する。投影画像生成処理は、CG画像生成方法として公知であるので、その詳細についての説明は省略する。また、ユーザ入力処理および受信イベント処理については、後で詳しく説明する。
ユーザ入力処理プロセスおよび受信イベント処理プロセスはそれぞれステップS1705およびステップS1707でプロセスの終了指示があったかどうか判定され、終了指示がなければステップS1704およびステップS1706戻ってユーザ入力および受信イベントを継続して処理する。一方、終了指示があればステップS1708でプロセスを統合し、サーバとのネットワーク接続を切断(ステップS1709)した上で、すべての処理を終了する。
(ユーザ入力処理)
ここで、ステップS1704のユーザ入力処理プロセスについて、図18を用いて詳しく説明する。初めに、ステップS1802で、ユーザが入力の有無を判定し、あればステップS1803に進む。入力がなければ、ユーザ入力処理プロセスを終了する。
ステップS1803では、ユーザの入力がプログラムの終了指示であるか否かを判定する。ユーザがプログラムの終了を指示した場合は、ステップS1804にてプログラムを構成する自プロセス以外のプロセスに終了を指示し、ユーザ入力処理を終了する。一方、ステップS1803でプログラムの終了を指示されていない場合は、ステップS1805に進む。
ステップS1805では、ユーザ入力が共有データベースの操作、すなわち操作指令であるか否か判定する。操作指令であれば、ステップS1806で、操作指令の内容に基づいて、イベント(図16参照)を生成する。生成したイベントは、続くステップS1807でサーバに向けて発信する。
一方、ステップS1805でユーザの入力内容が操作指令でないと判定された場合は、ステップS1808で入力内容を実行する。
ユーザがオブジェクトレベルの変更を行った場合の具体的なユーザ入力処理の動作を説明する。ユーザがオブジェクトレベルを変更すると、ステップS1802でユーザ入力ありと判定され、さらにステップS1803で終了処理でないと判定されて、ステップS1805に進む。ステップS1805では、操作指令であると判定して、ステップS1806でオブジェクトレベルの設定値を含むイベントを生成し、そのイベントをステップS1807でサーバに発信する。
一方、ユーザがユーザレベルを変更した場合は、ステップS1805に至るまではオブジェクトレベルを変更した場合と同様である。ただし、ステップS1805では操作指令でないと判定し、ステップS1808でユーザレベルの設定値を変更して、ユーザ入力処理を終了する。
(受信イベント処理)
続いて、ステップS1706(図17)の受信イベント処理について詳しく説明する。図19は、受信イベント処理の流れを示したものである。受信イベントは、不図示のイベント通信部がサーバより受信し、受信イベントバッファに入力する。ステップS1901では、受信イベントバッファを検索する。続くステップS1902で、バッファにイベントが入力されているかどうか判定し、受信イベントがあればステップS1903に進む。一方、受信イベントが存在しない場合には受信イベント処理を終了する。受信イベントがある場合、そのイベントを解析し、操作指令の内容を抽出する(ステップS1903)。次に、ステップS1904でイベントに記述された操作を実行する。例えば、オブジェクトレベルの変更を指示するイベントであれば、オブジェクトレベルをイベントに含まれる設定値に設定した上で、図7と同様のレベル反映処理を行う。
<サーバ処理>
以上、クライアントの処理の流れを説明した。続いて、サーバの処理の流れを図20を用いて詳しく説明する。
最初にステップS2001で、クライアントからの接続要求を受け付け、通信を確立する。このとき、各クライアントに固有のクライアントIDを通知する。次に、受信イベントバッファを検索し(ステップS2002)、受信イベントが存在するかどうか判定する(ステップS2003)。受信イベントがあれば、ステップS2004に進み、なければステップS2005に進む。ステップS2004では、接続している各クライアントに当該イベントを送信する。ステップS2005では、ユーザからの指令などによりサーバ処理を終了するかどうかを判定し、終了する場合はステップS2006に進み、終了しない場合はステップS2002に戻る。ステップS2006では、接続している各クライアントに処理を終了することを通知し、次にクライアントとの接続を終了して(ステップS2007)から処理を終了する。
上述したように、本実施形態の情報処理装置によれば、オブジェクトの属性を決定するための基準であるオブジェクトレベルを複数のプログラム間で統一しながら、各プログラムが独立にユーザレベルを設定することによって、オブジェクトの属性をコントロールできる。
なお本実施形態では、オブジェクトレベルを複数のプログラム間で共有し、ユーザレベルは個々のプログラムで設定する例を示した。しかし、ユーザレベルを共有しオブジェクトレベルを非共有とすることも可能であるし、あるいはユーザレベル・オブジェクトレベルの両方を共有することも可能である。
また、複数のプログラム間でデータを共有する方法は上述の方法以外の任意の方法を用いることが出来る。
●<第5の実施形態>
第1の実施形態〜第4の実施形態では、1つのオブジェクトに対して1つのオブジェクトレベルを設定しているが、複数のオブジェクトレベルが設定できるようにしても良い。
このとき、各オブジェクトレベルを、それぞれ1つの属性に割り当てても良いし、あるいは1つの属性に対して複数のオブジェクトレベルを割り当てても良い。
前者の例としては、可視属性に対して1つのオブジェクトレベルを、不透明度に別のオブジェクトレベルを用いる構成が考えうる。
後者の例としては、可視属性に対して2つのオブジェクトレベルを用いる構成が考えうる。そして、ユーザレベルが2つのオブジェクトレベルの間にある場合は可視属性を表示状態、それ以外の場合は非表示状態に設定する。
●<第6の実施形態>
第1の実施形態〜第5の実施形態では、1つのユーザレベルを全ての属性に対して共通に適用していたが、各プログラムやユーザ、プロセス等に複数のユーザレベルを設定し、属性に応じて異なるユーザレベルを適用することも可能である。すなわち、各プログラムやユーザ、プロセス等に対して複数のユーザレベルを設定し、例えば可視属性と不透明度の属性に対し、それぞれ異なるユーザレベルとの関係に応じて上述の処理を行うように構成することが可能である。
●<第7の実施形態>
第1の実施形態〜第6の実施形態では、オブジェクトレベルやユーザレベルが0.0から1.0の範囲の浮動小数点数であるものとしている。しかし、レベル値の種別や範囲はこれに限るものではなく、例えば0〜100の範囲の整数値や、あるいは論理の真偽を表すフラグであっても良い。
●<第8の実施形態>
第1の実施形態〜第7の実施形態では、ユーザレベルとオブジェクトレベルからCGオブジェクトの属性を決定する方法は予め決められており、ユーザが変更することは出来ない。これに対して、ユーザがその方法を変更可能なように構成することも出来る。例えば、ユーザレベルおよびオブジェクトレベルからCGオブジェクトの属性を決定する所望のアルゴリズムを実装したコールバック関数をオブジェクトやオブジェクトの属性に関連づけて登録し、描画処理の前に当該コールバック関数を起動して、属性を決定することができる。
予め決められた属性の決定方法がある場合にコールバック関数を登録すると、予め決められた方法に替えてコールバック関数に実装された方法が属性の決定に用いられる。また、既にコールバック関数が登録されている場合に別のコールバック関数を再登録すると、新たに登録されたコールバック関数に実装された方法が属性の決定に用いられる。既にコールバック関数が登録されている場合に、その登録を抹消すると、予め決められた属性の決定方法が属性の決定に用いられるようになる。このように、コールバック関数を登録、再登録したり、コールバック関数の登録を抹消することによって、CGオブジェクトの属性を決定する方法を任意に変更することができる。
●<第9の実施形態>
第1の実施形態〜第8の実施形態では、制御する対象をCGオブジェクトに設定された属性とした場合について説明しているが、例えば、シーングラフのノードなど、仮想空間を属性によって定義する情報であればいかなるものを対象としても良い。
なお、シーングラフとは仮想空間の構造と属性を表すためにコンピュータグラフィクスの分野で広く用いられるデータ構造である。また、ノードとは、シーングラフの構造を決定する最小の単位であり、単数または複数の属性を持つ。
●<他の実施形態>
なお、上述の第4の実施形態においては、イベントを送信したクライアントにおいても、サーバを介して受信したイベントを処理することにより操作を行っていた。しかし、イベントの送信元クライアントに限って、受信イベント処理を行う前に操作を行うように構成しても良い。
また、イベントに送信元クライアントIDを含ませることにより、送信元クライアントが自分の送信したイベントを識別して重複する処理を行わないようにすることも可能である。
イベントに送信元クライアントIDが含まれる場合、サーバにおいても全クライアントにイベントを配信するのではなく、送信元クライアントを除くクライアントにイベントを配信するようにしても良い。この場合、サーバが配信するイベントからは送信元クライアントIDを取り除いても良い。
また、上述の実施形態においては、1つの機器から構成される情報処理装置についてのみ説明したが、同等の機能を複数の機器から構成されるシステムによって実現しても良い。
尚、前述した実施形態の機能を実現するソフトウェアのプログラムを、記録媒体から直接、或いは有線/無線通信を用いて当該プログラムを実行可能なコンピュータを有するシステム又は装置に供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムを実行することによって同等の機能が達成される場合も本発明に含む。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータに供給、インストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の機能処理を実現するためのコンピュータプログラム自体も本発明に含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、磁気テープ等の磁気記録媒体、MO、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−R、DVD−RW等の光/光磁気記憶媒体、不揮発性の半導体メモリなどがある。
有線/無線通信を用いたプログラムの供給方法としては、コンピュータネットワーク上のサーバに本発明を形成するコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイル等、クライアントコンピュータ上で本発明を形成するコンピュータプログラムとなりうるデータファイル(プログラムデータファイル)を記憶し、接続のあったクライアントコンピュータにプログラムデータファイルをダウンロードする方法などが挙げられる。この場合、プログラムデータファイルを複数のセグメントファイルに分割し、セグメントファイルを異なるサーバに配置することも可能である。
つまり、本発明の機能処理をコンピュータで実現するためのプログラムデータファイルを複数のユーザに対してダウンロードさせるサーバ装置も本発明に含む。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件を満たしたユーザに対して暗号化を解く鍵情報を、例えばインターネットを介してホームページからダウンロードさせることによって供給し、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
本発明の実施形態に係る情報処理装置の構成例を示すブロック図である。 第1の実施形態における情報処理装置のCGオブジェクト描画処理全体を示すフローチャートである。 図2におけるレベル反映処理の詳細を示すフローチャートである。 第1の実施形態におけるユーザレベル変更画面表示の例を示す図である。 図4においてユーザレベルを変更した状態の例を示す図である。 図4におけるレベル調整部をハードウェアとして実現した例を示す図である。 第2の実施形態におけるレベル反映処理の詳細を示すフローチャートである。 第3の実施形態における情報処理装置のCGオブジェクト描画処理全体を示すフローチャートである。 第3の実施形態におけるレベル変更画面表示の例を示す図である。 図9におけるレベル調整部をハードウェアとして実現した例を示す図である。 オブジェクトレベル調整部として利用可能なスタイラス装置の例を示す図である。 図11のスタイラス装置を用いた場合のレベル変更画面表示の例を示す図である。 第4の実施形態に係る情報処理装置の構成例を示すブロック図である。 第4の実施形態におけるデータベース共有システム全体の構成例を示す図である。 図14のシステムにおけるプロセス間の基本的な情報伝達方法を模式的に示す図である。 図14のシステムにおいて用いるイベントデータの構成例を示す図である。 第4の実施形態におけるクライアント処理の例を示すフローチャートである。 図17におけるユーザ入力処理の詳細を示すフローチャートである。 図17における受信イベント処理の詳細を示すフローチャートである。 第4の実施形態におけるサーバ処理の例を示すフローチャートである。

Claims (16)

  1. 仮想物体の属性を決定するための情報処理方法であって、
    第1取得手段が、前記仮想物体の属性に設定された第1のレベルを取得する第1取得ステップと、
    第2取得手段が、予めユーザ毎又はプロセス毎に設定された第2のレベルを取得する第2取得ステップと、
    変更手段が、ユーザから入力された情報に基づいて、前記第1のレベル及び前記第2のレベルの少なくとも一方を変更する変更ステップと、
    前記第1若しくは第2のレベルが変更された場合に、
    比較手段が、前記第1及び前記第2のレベルを比較する比較ステップと、
    属性値決定手段が、前記比較結果に基づいて、前記仮想物体の前記属性の値を決定する属性値決定ステップと、
    反映処理手段が、前記決定された属性の値を反映した処理を前記仮想物体に行う反映処理ステップと
    を有することを特徴とする情報処理方法。
  2. 前記反映した処理が、前記仮想物体の表示状態を制御する処理であることを特徴とする請求項1に記載の情報処理方法。
  3. 前記属性が可視属性であることを特徴とする請求項1又は2のいずれか1項に記載の情報処理方法。
  4. 通知手段が、前記仮想物体を共有する他のプロセスへ、前記第1若しくは前記第2のレベルの変化情報を通知する通知ステップと、
    変更手段が、前記通知を受信すると、前記変化情報に基づいて前記他のプロセスにおける前記第1若しくは第2のレベルを変更する変更ステップと、
    をさらに有することを特徴とする請求項1乃至のいずれか1項に記載の情報処理方法。
  5. 前記仮想物体が、仮想空間を表すシーングラフを構成するノード毎に設定されていることを特徴とする請求項1乃至のいずれか1項に記載の情報処理方法。
  6. コンピュータに請求項1乃至のいずれか1項に記載の情報処理方法の各ステップを実行させるためのプログラム。
  7. コンピュータに請求項1乃至5のいずれか1項に記載の情報処理方法の各ステップを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  8. 仮想物体の属性を決定するための情報処理装置であって、
    前記仮想物体の属性に設定された第1のレベルを取得する第1取得手段と、
    予めユーザ毎又はプロセス毎に設定された第2のレベルを取得する第2取得手段と、
    変更手段が、ユーザから入力された情報に基づいて、前記第1のレベル及び前記第2のレベルの少なくとも一方を変更する変更手段と、
    前記第1若しくは第2のレベルが変更された場合に、
    前記第1及び前記第2のレベルを比較する比較手段と、
    前記比較結果に基づいて、前記仮想物体の前記属性の値を決定する属性値決定手段と、
    前記決定された属性の値を反映した処理を前記仮想物体に行う反映処理手段と
    を備えることを特徴とする情報処理装置。
  9. 仮想物体の属性を決定するための情報処理方法であって、
    第1取得手段が、前記仮想物体の属性に設定された第1のレベルを取得する第1取得ステップと、
    第2取得手段が、予めユーザ毎又はプロセス毎に設定された第2のレベルを取得する第2取得ステップと、
    変更手段が、ユーザから入力された情報に基づいて、前記第1のレベル及び前記第2のレベルの少なくとも一方を変更する変更ステップと、
    前記第1若しくは第2のレベルが変更された場合に、
    属性値決定手段が、前記第1及び前記第2のレベルの値の比率に基づいて、前記仮想物体の前記属性の値を決定する属性値決定ステップと、
    反映処理手段が、前記決定された属性の値を反映した処理を前記仮想物体に行う反映処理ステップと
    を有することを特徴とする情報処理方法。
  10. 前記反映した処理が、前記仮想物体の表示状態を制御する処理であることを特徴とする請求項9に記載の情報処理方法。
  11. 前記属性が不透明属性であることを特徴とする請求項9又は10に記載の情報処理方法。
  12. 通知手段が、前記仮想物体を共有する他のプロセスへ、前記第1若しくは前記第2のレベルの変化情報を通知する通知ステップと、
    変更手段が、前記通知を受信すると、前記変化情報に基づいて、前記他のプロセスにおける前記第1若しくは第2のレベルを変更する変更ステップと、
    をさらに有することを特徴とする請求項乃至11のいずれか1項に記載の情報処理方法。
  13. 前記仮想物体が、仮想空間を表すシーングラフを構成するノード毎に設定されていることを特徴とする請求項9乃至12のいずれか1項に記載の情報処理方法。
  14. コンピュータに請求項乃至13のいずれか1項に記載の情報処理方法の各ステップを実行させるためのプログラム。
  15. コンピュータに請求項9乃至13のいずれか1項に記載の情報処理方法の各ステップを実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  16. 仮想物体の属性を決定するための情報処理装置であって、
    前記仮想物体の属性に設定された第1のレベルを取得する第1取得手段と、
    予めユーザ毎又はプロセス毎に設定された第2のレベルを取得する第2取得手段と、
    変更手段が、ユーザから入力された情報に基づいて、前記第1のレベル及び前記第2のレベルの少なくとも一方を変更する変更手段と、
    前記第1若しくは第2のレベルが変更された場合に、
    前記第1及び前記第2のレベルの値の比率に基づいて、前記仮想物体の前記属性の値を決定する属性値決定手段と、
    前記決定された属性の値を反映した処理を前記仮想物体に行う反映処理手段と
    を備えることを特徴とする情報処理装置。
JP2003358520A 2003-10-17 2003-10-17 情報処理方法及び画像処理方法 Expired - Fee Related JP4347017B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003358520A JP4347017B2 (ja) 2003-10-17 2003-10-17 情報処理方法及び画像処理方法
US10/964,674 US7834890B2 (en) 2003-10-17 2004-10-15 Information processing method and image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003358520A JP4347017B2 (ja) 2003-10-17 2003-10-17 情報処理方法及び画像処理方法

Publications (3)

Publication Number Publication Date
JP2005122572A JP2005122572A (ja) 2005-05-12
JP2005122572A5 JP2005122572A5 (ja) 2006-11-30
JP4347017B2 true JP4347017B2 (ja) 2009-10-21

Family

ID=34615030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003358520A Expired - Fee Related JP4347017B2 (ja) 2003-10-17 2003-10-17 情報処理方法及び画像処理方法

Country Status (1)

Country Link
JP (1) JP4347017B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2461900B (en) 2008-07-16 2012-11-07 Advanced Risc Mach Ltd Monitoring graphics processing
JP5898842B2 (ja) * 2010-01-14 2016-04-06 任天堂株式会社 携帯型情報処理装置、携帯型ゲーム装置
JP5800501B2 (ja) 2010-03-12 2015-10-28 任天堂株式会社 表示制御プログラム、表示制御装置、表示制御システム、及び、表示制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2746173B2 (ja) * 1995-02-24 1998-04-28 日本電気株式会社 並行設計管理システム
JPH11242470A (ja) * 1998-02-24 1999-09-07 Ricoh Co Ltd Cadシステムにおける形状データの表示方法およびその方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP3059138B2 (ja) * 1998-07-27 2000-07-04 ミツビシ・エレクトリック・インフォメイション・テクノロジー・センター・アメリカ・インコーポレイテッド 3次元仮想現実環境作成、編集及び配布システム
US7151546B1 (en) * 1999-12-22 2006-12-19 Adobe Systems Incorporated Restricting scope of blending modes in 2-D compositing using isolated groups
JP3413145B2 (ja) * 2000-01-24 2003-06-03 キヤノン株式会社 仮想空間の編集方法及び仮想空間の編集装置
JP4386528B2 (ja) * 2000-03-02 2009-12-16 武藤工業株式会社 図形要素選択方法及びcad処理プログラムを記憶してなる媒体
JP4487159B2 (ja) * 2000-04-28 2010-06-23 ソニー株式会社 情報処理装置および方法、並びに格納媒体
JP2002024298A (ja) * 2000-07-05 2002-01-25 Ricoh Co Ltd 3次元形状処理装置、3次元形状表示方法およびその方法を実施するためのプログラムを記憶した記憶媒体
JP2002035407A (ja) * 2000-07-28 2002-02-05 Canon Inc ゲームシステム、印刷装置、サーバおよびゲーム方法

Also Published As

Publication number Publication date
JP2005122572A (ja) 2005-05-12

Similar Documents

Publication Publication Date Title
CA2781638C (en) Securely sharing design renderings over a network
Lipp et al. Interactive visual editing of grammars for procedural architecture
US6262734B1 (en) Graphic data generating apparatus, graphic data generation method, and medium of the same
US6466239B2 (en) Method and apparatus for editing data used in creating a three-dimensional virtual reality environment
EP0248919B1 (en) Method for generating representations of 3-dimensional objects and system performing this method
US6552721B1 (en) Graphic data generating apparatus, graphic data generation method, and medium of the same
US7420556B2 (en) Information processing method and information processing apparatus
US6518989B1 (en) Graphic data generating apparatus, graphic data generation method, and medium of the same
US9563980B2 (en) Grip manipulatable shadows in 3D models
US6401237B1 (en) Method and apparatus for editing data used in creating a three-dimensional virtual reality environment
US20040236561A1 (en) Component management engine
JP2016192205A (ja) マップ画像およびデータの永続的キャッシング
AU2014396222A1 (en) Integrating external algorithms into a flexible framework for imaging visualization data
US7834890B2 (en) Information processing method and image processing method
US20220300145A1 (en) Media content planning system
Mouton et al. Enhancing the plant layout design process using X3DOM and a scalable web3D service architecture
JP4347017B2 (ja) 情報処理方法及び画像処理方法
JP5278927B2 (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
US6392662B1 (en) Draw order preservation in a computer-implemented graphics system
JP2004265193A (ja) 情報処理方法、情報処理装置、サーバ装置の制御方法、サーバ装置
JP4968275B2 (ja) 地図データ編集装置及び地図データ編集装置用サーバ
WO2009154045A1 (ja) 情報処理方法および情報処理装置
JP6826297B1 (ja) 情報処理装置、情報処理システム、その制御方法及びプログラム
KR20010057771A (ko) 가상 현실 공간에서 객체 검색 및 연관 객체 조작을 위한객체 관리방법
CN111061465B (zh) 机器人编程的反向映射方法、系统、电子设备、存储介质

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061017

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090331

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090424

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090619

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090713

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090715

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130724

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees