以下、情報処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態)
図1は、本実施の形態における情報処理装置のブロック図である。
情報処理装置1は、形状情報格納部101、配置用情報格納部102、配置指定情報格納部103、面情報取得部104、オブジェクト配置情報格納部105、変更指示受付部106、オブジェクト配置情報更新部107、操作入力受付部108、配置用情報変更部109、検索指示受付部110、検索部111、配置指定情報更新部112、画像情報構成部113、および出力部114を具備する。
本実施の形態にかかる情報処理装置1は、例えば、コンピュータや、携帯電話や、PDA(携帯情報端末)、携帯電話と情報端末とを組み合わせた高機能携帯電話、携帯型デジタル音楽プレーヤ、テレビ等の表示デバイスを有するオーディオビジュアル機器等の情報機器である。かかることは他の実施の形態においても同様である。
形状情報格納部101には、第一、第二及び第三の面を有する立体のオブジェクトである立体オブジェクトの形状を指定する情報である形状情報が格納され得る。形状情報とは、仮想3D空間内で使えるオブジェクトの形状等を定義する情報である。形状情報は、例えば、立体オブジェクトのいわゆるモデリング情報である。ここで述べる立体オブジェクトは、例えば3Dオブジェクトや3Dモデルや立体モデルと呼ばれるものも含む。形状情報は、立体オブジェクトの頂点の座標の情報や、ベクトルを示す情報や、境界線や面等を表現する方程式のパラメータの情報等である。立体オブジェクトは、通常、面を定義する情報、あるいは面を定義可能な情報を有しており、1以上の面により構成されている。立体オブジェクトは、例えば、面の構成方法によって、ポリゴンモデリングや、自由曲面を利用したモデリング等に分類できる。形状情報には、立体オブジェクトを出力する際の、立体オブジェクトの色や、透明度、反射、屈折率、バンプなどの設定項目の情報を含んでも良い。形状情報格納部101には、1以上の立体オブジェクトの形状情報が格納され得る。形状情報のサイズ等の単位等は、絶対的な単位であっても、相対的な単位であっても良い。ここで述べる立体オブジェクトは、少なくとも第一、第二及び第三の面を有する立体オブジェクトである。例えば、立体オブジェクトの形状は、円柱や角柱や、六面体や八面対等の多面体である。立体オブジェクトは、立方体であることが好ましい。第一〜第三の面が、立体オブジェクトのどの面であるかは問わない。第二の面および第三の面は、例えば、第一の面に隣接する面である。第一の面は、例えば、デフォルトで正面に配置される面であることが好ましい。また、第二の面は、立体オブジェクトが立方体もしくは直方体である場合、側面であることが好ましい。また、第三の面は、立体オブジェクトが立方体もしくは直方体である場合、上面であることが好ましい。ただし、第二の面が上面で、第三の面が側面であっても良い。あるいは、第二の面および第三の面がそれぞれ左右の側面であっても良い。なお、立体オブジェクトの第一〜第三の面は、どのように指定されても良い。たとえば、第一の面を指定する情報や、第二、および第三の面を指定する情報は、形状情報に予め含まれているようにしても良い。また、第一の面を指定する情報が形状情報に予め含まれているようにして、第二、および第三の面は、第一の面との位置関係に応じて決定されても良い。また、各面が、ランダムに決定されても良い。形状情報格納部101は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
配置用情報格納部102は、立体オブジェクトを構成する面に配置可能な情報であって、階層化された1以上の情報である配置用情報が格納され得る。配置用情報は、立体オブジェクトの面に対する配置の対象となる情報と考えても良い。階層化されたデータとは、ツリー構造化されたデータや、グループ化されたデータや、ネスト化されたデータと考えても良い。階層化された情報は、例えば、タグ等の包含関係等を示す情報を用いて階層化された情報である。例えば、階層化された情報は、XML形式で示される情報である。この場合、階層化された各情報は、1以上のタグが付けられた情報である。例えば、タグの包含関係により、タグがつけられた情報の階層の深さ、包含関係が定義されることとなる。なお、タグ付けられた情報は、タグを含んでも良いし、含まなくても良い。また、配置用情報の階層関係は、どのように管理されていても良い。例えば、配置用情報の階層関係は、図示しない格納部等に格納される階層関係を管理するための情報や、階層関係を管理するためのテーブルや、データベース等を用いて管理されていても良い。配置用情報がタグ付けられた情報である場合、配置用情報自身が、階層関係を管理する情報を含むものとなる。なお、階層化された1以上の情報が、リンク先等を指定する情報である場合、このリンク先の情報を実際の階層化された情報と考えても良い。配置用情報は、立体オブジェクトを構成する面に配置して出力、例えば表示可能な情報であれば、静止画や動画等の画像情報や、テキスト情報、アプリケーション等の、どのような情報であっても良い。また、ここで述べる配置とは、いわゆる立体オブジェクトの面に対する画像情報等のマッピングと考えても良い。また、配置用情報は、マッピング対象となる情報、例えばテクスチャ情報、もしくはその一部と考えても良い。配置用情報が蓄積される過程等は問わない。例えば、図示しない受付部等が受け付けた配置用情報を蓄積するようにしてもよい。また、ここでの格納とは、メモリ等による一時的なデータの格納も含む概念である。配置用情報格納部102は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
配置指定情報格納部103には、立体オブジェクトを構成する第一の面に配置する配置用情報を指定する情報である配置指定情報が格納され得る。配置指定情報は、具体的には配置用情報格納部102に格納されている情報のうちの、第一の面に配置される情報を指定可能な情報であれば、どのような情報であっても良い。また、どのように情報を指定する情報であっても良い。例えば、第一の面に配置する配置用情報自身やその一部、もしくは配置用情報を識別する情報を指定する情報であっても良い。また、例えば第一の面に配置する配置用情報に付与されているタグ等を用いて、タグ付けられた配置用情報を指定する情報であっても良い。また、ツリー化された情報が格納されているパスを指定する情報を用いて、第一の面に配置する配置用情報を指定する情報であってもよい。第一の面に配置される配置用情報は1以上であれば良く、例えば、同じノードの同じ階層に属する複数の配置用情報を第一の面に配置する配置用情報としても良い。配置指定情報が蓄積される過程等は問わない。例えば、図示しない受付部等が受け付けた配置指定情報を蓄積するようにしてもよい。また、ここでの格納とは、メモリ等による一時的なデータの格納も含む概念である。配置指定情報格納部103は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
面情報取得部104は、配置指定情報が指定する配置用情報である指定配置用情報を、配置用情報格納部102から取得する。また、面情報取得部104は、配置指定情報が指定する指定配置用情報の直系の下位の階層の配置用情報である下位配置用情報を、配置用情報格納部102から取得する。また、面情報取得部104は、指定配置用情報と同じ階層の配置用情報である同階層配置用情報を、配置用情報格納部102から取得する。面情報取得部104は、配置用情報格納部102に格納されている配置用情報の階層関係を示す情報を用いて、指定配置用情報と、下位配置用情報と、同階層配置用情報とを取得する。指定配置用情報と、下位配置用情報と、同階層配置用情報とは、それぞれ1の配置用情報であっても、2以上の配置用情報であっても良い。なお、指定配置用情報と同じ階層の配置用情報とは、ここでは特に、直系の1以上の所定の階層だけ上位の階層の配置用情報が、指定配置用情報の直系の上位の配置用情報と同じとなる配置用情報である。つまり、指定配置用情報および同階層配置用情報は、共通する一の配置用情報に対して、所定階層数だけ下位の配置用情報となる。なお、後述する配置指定情報更新部112等により、配置指定情報が更新された場合、面情報取得部104は、更新した配置指定情報を用いて、指定配置用情報と、下位配置用情報と、同階層配置用情報とを取得するようにしても良い。面情報取得部104が取得した、配置用情報である指定配置用情報と、下位配置用情報と、同階層配置用情報とは、例えば図示しない管理情報等により管理される。面情報取得部104は、通常、MPUやメモリ等から実現され得る。面情報取得部104の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
オブジェクト配置情報格納部105は、立体オブジェクトの配置を指定する情報であるオブジェクト配置情報が格納され得る。ここで述べる配置とは、例えば、仮想三次元空間内における配置である。この配置は、例えば、立体オブジェクトの位置と方向との組み合わせを有する概念である。オブジェクト配置情報は、立体オブジェクトの配置を結果的に指定可能な情報であればよく、例えば、立体オブジェクトが配置される位置の座標や、立体オブジェクトの方向を指定する情報、例えばベクトル情報等である。また、立体オブジェクトの大きさ等を指定する情報であっても良い。立体オブジェクトの位置を指定する座標は、仮想三次元空間内に設定された絶対的な座標であっても良いし、他の立体オブジェクト等に対して設定された相対的な座標であっても良い。また、立体オブジェクトの位置を指定する座標は、立体オブジェクトを構成する辺等が集まる頂点の座標であっても良いし、立体オブジェクトの中心等の位置の座標であっても良い。なお、後述する画像情報構成部113は、このオブジェクト配置情報を読み出して、このオブジェクト配置情報が示す仮想三次元空間内の位置に立体オブジェクトを配置した画像情報を構成することとなる。なお、ここではオブジェクト配置情報と立体オブジェクトの形状情報とをそれぞれ設けた場合について説明するが、オブジェクト配置情報を形状情報内に含めるようにしても良い。例えば、形状情報の頂点の情報を、例えば、絶対座標とすることで、形状情報をオブジェクト配置情報として用いて、立体オブジェクトの配置も指定可能となる。なお、オブジェクト配置情報格納部105と、形状情報格納部101とを一の格納部で実現するようにしても良く、オブジェクト配置情報を形状情報に含ませるようにしても良い。なお、オブジェクト配置情報がない場合、立体オブジェクトは、予め指定された位置に、予め指定された方向に向けて配置されてもよいし、配置される位置や向きをランダムに決定しても良い。オブジェクト配置情報格納部105は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
変更指示受付部106は、立体オブジェクトの配置に対する変更指示を受け付ける。ここで述べる受付とは、例えば、入力手段からの受付や、他の機器等から送信される入力信号の受信や、記録媒体等からの情報の読み出し等である。変更指示は、例えば、立体オブジェクトの配置を変更させるためのコマンド、例えば「x軸を回転軸として90°回転」というコマンド等であっても良いし、変更後の、立体オブジェクトの配置を指定する座標の情報等でもよい。変更指示の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。例えば、図示しないディスプレイ等に表示されている立体オブジェクトの面の一部をクリックしたり、面や辺をドラッグすることにより、立体オブジェクトの位置を仮想三次元空間内で移動させる指示を受け付けたり、立体オブジェクトの向きを仮想三次元空間内で変更、例えば回転させる指示を受け付けるようにしても良い。例えば、立体オブジェクトの側面の一つをクリックすることで、その面が正面を向くような配置の変更指示を受け付けても良い。このように、表示されている立体オブジェクトに対するマウス等を用いた操作により、配置を変更する指示を受け付けることが、ユーザによる直感的な操作を受け付ける受けで好ましい。変更指示受付部106は、テンキーやキーボードやマウス等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
オブジェクト配置情報更新部107は、変更指示受付部106が受け付けた変更指示に応じて、オブジェクト配置情報格納部105に格納されている当該変更指示の対象となる立体オブジェクトのオブジェクト配置情報を更新する。例えば、変更指示が、変更後の座標の情報や向きの情報等を含む場合、この変更後の座標の情報や向きの情報等でオブジェクト配置情報を更新するようにすればよい。また、変更指示が配置の変更を指示するコマンド等である場合、このコマンドと現在のオブジェクト配置情報とから、変更後の座標の情報や向きの情報等を算出し、この算出した情報で、オブジェクト配置情報を更新するようにすればよい。オブジェクト配置情報更新部107は、通常、MPUやメモリ等から実現され得る。オブジェクト配置情報更新部107の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、オブジェクト配置情報が、上述したように形状情報に含まれるものとなっている場合、変更指示に応じて、形状情報を変更することが、実質的にオブジェクト配置情報を更新することとなる。
操作入力受付部108は、立体オブジェクトを構成する1以上の面に配置されている配置用情報に対する操作を受け付ける。例えば、操作入力受付部108は、後述する出力部114等により出力、例えば表示されている立体オブジェクトの一つの面を、ユーザ等がポインティングデバイス等の入力デバイス等を介して指定し、変更内容を指示する情報をキーボード等の入力デバイス等を介して入力した場合に、この指定された面に配置されている配置用情報に対して、入力された変更内容を指示する情報に従った変更を加える操作を受け付ける。あるいは、立体オブジェクトの一つの面に配置されている配置用情報を指定した場合に、その配置用情報に対して変更を加える操作を受け付けても良い。ここで述べる操作とは、例えば、配置用情報に対して変更を加えるための指示を与えること等である。操作を、操作を指示する情報と考えても良い。ここで述べる変更とは、配置用情報の削除や、一部もしくは全体の置換や追加である。置換や追加は更新と考えても良い。また、追加は定義を加えることと考えても良い。また、新規の配置用情報を加えることも、追加(定義)と考えても良い。操作入力受付部108は、配置用情報の指定するための操作や、変更内容を指定するための操作を、どのように受け付けてもよい。例えば、表示されている立体オブジェクトの一の面や、一の面に配置されている配置用情報上に、ポインタ等やカーソル等を配置してキーボードやマウスボタン等の操作により指定することで、変更対象となる配置用情報が配置されている立体オブジェクトの面や、変更対象となる配置用情報についての指定を受け付けても良い。また、変更内容については、キーボードやメニュー等を介して入力される情報を受け付けるようにしても良い。ここで述べる受付とは、例えば、入力手段からの受付や、他の機器等から送信される入力信号の受信や、記録媒体等からの情報の読み出し等である。操作を与えるための入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。操作入力受付部108は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
配置用情報変更部109は、操作入力受付部108が受け付けた操作に応じて、配置用情報格納部102に格納されている操作の対象となる配置用情報を変更する。具体的には、操作入力受付部108が受け付けたユーザ等による操作が指示する配置用情報に対して、操作が指示する変更を行う。具体的には、操作が指示する、削除や置換や追加、あるいはこれらを適宜組み合わせた変更を行う。これにより、例えば、配置用情報格納部102に格納されている階層化された配置用情報、例えばタグ付けられた情報が、変更される。操作が指示する配置用情報は、上述したような操作により指定される面に配置されている配置用情報や、操作により直接指定された、面に配置されている配置用情報である。面に配置されているとは、面上に表示されている配置用情報の参照元となる配置用情報、あるいはレンダリング時に利用された配置用情報と考えても良い。この配置用情報の変更をトリガーとして、変更内容が反映されるように、面情報の取得や後述する出力等が、再度実行されるようにすることが好ましい。配置用情報変更部109は、通常、MPUやメモリ等から実現され得る。配置用情報変更部109の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
検索指示受付部110は、第一から第三の面のいずれかの面に配置されている配置用情報を指定した検索を行う指示である検索指示を受け付ける。例えば、操作入力受付部108は、後述する出力部114等により出力、例えば表示されている立体オブジェクトの一の面を、ユーザ等がポインティングデバイス等の入力デバイス等を介して指定し、検索を指示する情報をキーボード等の入力デバイス等を介して入力した場合に、この指定された面に配置されている配置用情報を指定した検索を行う指示を受け付ける。あるいは、立体オブジェクトの一の面に配置されている配置用情報を指定した場合に、その配置用情報を指定した検索指示を受け付けても良い。「配置用情報を指定した検索を行う」とは、後述するように、指定された配置用情報と同じ階層のデータを検索対象とした検索を行うことを意味する。指定した配置用情報と同じ項目の配置用情報や、あるいは同じタグを有する配置用情報を検索対象とした検索を行うことと考えても良い。検索指示は、通常、検索キーとなる情報を含む情報である。検索キーは文字列等の情報であってもよいし、数値等の範囲を指定する情報等であってもよい。また、検索式と考えても良い。ここで述べる受付とは、例えば、入力手段からの受付や、他の機器等から送信される入力信号の受信や、記録媒体等からの情報の読み出し等である。なお、検索指示受付部110の受け付ける検索指示は、後述するように第一の面に配置される指定配置用情報と、第二の面に配置される下位配置用情報についての検索指示であることが好ましい。検索指示の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。検索指示受付部110は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
検索部111は、検索指示受付部110が受け付けた検索指示に応じて、検索指示により指定された配置用情報に対して同じ階層にある配置用情報を検索対象とした検索を行う。検索部111は、具体的には、検索指示に含まれる検索キーを用いて、配置用情報格納部102に格納されている、検索指示により指定された配置用情報に対して同じ階層にある配置用情報のうちの、検索キーに一致する配置用情報を検索する。なお、検索処理については公知技術であるので詳細な説明は省略する。検索部111は、通常、MPUやメモリ等から実現され得る。検索部111の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
配置指定情報更新部112は、検索により検出された配置用情報に対する階層関係が、検索指示により指定された配置用情報に対する指定配置用情報の階層関係と同じ関係である配置用情報を指定する配置指定情報を取得し、当該配置指定情報により、配置指定情報格納部103に格納されている配置指定情報を更新する。例えば、検索指示が指定する配置用情報が指定配置用情報であった場合、検索指示により指定された配置用情報と指定配置用情報との階層関係が同じ、即ち一致するため、検索により検出された配置用情報を指定するための配置指定情報を取得して、この配置指定情報で格納されている配置指定情報を更新する。また、例えば、検索指示が指定する検索指示が指定する配置用情報が下位配置用情報であった場合、検索指示により指定された配置用情報が指定配置用情報に対して直系の下位の階層である配置用情報となるため、検索により検出された配置用情報の直系の上位の階層の配置用情報を指定するための配置指定情報を取得して、この配置指定情報で格納されている配置指定情報を更新する。ここで述べる更新とは、通常は置換であるが、追加等と考えても良い。また、更新前のデータを、もとに戻せるよう、保存しておいても良い。この配置指定情報の更新をトリガーとして、更新内容が反映されるように、面情報の取得や後述する出力等が、再度実行されるようにすることが好ましい。配置指定情報更新部112は、通常、MPUやメモリ等から実現され得る。配置指定情報更新部112の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
画像情報構成部113は、立体オブジェクトの形状情報を読み出し、当該読み出した形状情報により形状が指定される立体オブジェクトの第一の面に面情報取得部104が取得した指定配置用情報を、第二の面に面情報取得部104が取得した下位配置用情報を、また、第三の面に面情報取得部104が取得した同階層配置用情報を、それぞれ配置した画像情報を構成する。画像情報構成部113は、具体的には、面情報取得部104が取得した指定配置用情報と、下位配置用情報と、同階層配置用情報とを読み出して、上述した第一〜第三の面上に配置した画像を構成する。第一〜第三の面と、これらの面に配置される指定配置用情報、下位配置用情報、および同階層配置用情報との対応関係は、例えば、予め指定されており、対応関係を示す管理情報は、例えば、図示しない格納部等に蓄積される。画像情報構成部113は、例えば、オブジェクト配置情報格納部105に格納されているオブジェクト配置情報を読み出し、当該オブジェクト配置情報が指定する位置に、当該オブジェクト配置情報が指定する向きとなるように配置した立体オブジェクトの画像を構成する。配置用情報は、各面の配置にあわせて、形状が変更されて配置される。画像情報構成部113が構成する画像情報は、例えば最終的に表示等の出力を行う際に利用される画像情報である。この画像情報は、例えばビットマップデータ等である。また、テキストの情報等から表示用の画像情報、例えば、ビットマップデータ等を構成することも、この画像情報を構成する処理に含まれる。立体オブジェクトの面に対して、画像情報やテキスト情報等の情報を配置して二次元の画像を構成する処理は、いわゆるレンダリング処理と呼ばれる処理であり、公知技術であるのでここでは、説明を省略する。また、この画像情報を構成する処理において、形状情報等が有する立体オブジェクトの色や、透明度、反射、屈折率、バンプなどの設定項目の情報を用いて、レンダリングを行うようにしても良い。画像情報構成部113は、通常、MPUやGPU(Graphics Processing Unit)やメモリ等から実現され得る。画像情報構成部113の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力部114は、画像情報構成部113が構成した画像情報を出力する。ここで述べる出力とは、ディスプレイへの表示、プロジェクターを用いた投影、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラム等への処理結果の引渡し等を含む概念である。出力部114は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。出力部114は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報処理装置の動作について図2のフローチャートを用いて説明する。
(ステップS201)情報処理装置1は、立体オブジェクトの出力を行うか否かを判断する。例えば、ユーザ等から図示しない受付部等を介して、出力する指示を受け付けたか否かを判断する。あるいは、情報処理装置1に電源が投入された直後に、出力を行うことを判断しても良い。出力を行う場合、ステップS202に進み、出力を行わない場合、ステップS201に戻る。
(ステップS202)面情報取得部104は、配置指定情報格納部103に格納されている配置指定情報を読み出す。
(ステップS203)面情報取得部104は、ステップS202において読み出した配置指定情報に応じて、立体オブジェクトの面に配置するための配置用情報を、配置用情報格納部102から読み出す。具体的には、配置指定情報が指定する配置用情報である指定配置用情報を読み出す。また、指定配置用情報の下位の階層の配置用情報である下位配置用情報を読み出す。また、指定配置用情報と同じ階層にある配置用情報である同階層配置用情報を読み出す。読み出した配置用情報は、図示しないメモリ等の記憶媒体等に一時記憶しておく。
(ステップS204)画像情報構成部113は、形状情報格納部101から立体オブジェクトの形状情報を読み出す。
(ステップS205)画像情報構成部113は、ステップS204において読み出した形状情報に対応するオブジェクト配置情報を取得する。
(ステップS206)画像情報構成部113は、ステップS203で読み出した配置用情報と、ステップS204で読み出した形状情報と、ステップS205で読み出したオブジェクト配置情報とを用いて、立体オブジェクトの画像を構成する。具体的には、立体オブジェクトの形状は、ステップS204で読み出した形状情報が指定する形状に設定する。また、立体オブジェクトの位置及び向きは、ステップS205で読み出したオブジェクト配置情報が指定する位置及び向きに設定する。立体オブジェクトの第一の面に配置する画像を、ステップS203で読み出した指定配置用情報が示す画像に設定する。また、第二の面に配置する画像を、ステップS203で読み出した下位配置用情報が示す画像に設定する。また、第三の面に配置する画像を、ステップS204で読み出した同階層配置用情報が示す画像に設定する。そして、このように設定された立体オブジェクトの画像を、画像情報構成部113が構成する。例えば、これらの設定に応じた立体オブジェクトの画像をレンダリングする。なお、第一〜第三の面が、立体オブジェクトのどの面であるかを示す情報は、例えば、予め形状情報に含まれているものとする。
(ステップS207)出力部114は、ステップS206により構成した画像情報を出力する。例えば、出力部114は、図示しないモニタ等に表示する。
(ステップS208)変更指示受付部106は、出力されている立体オブジェクトに対する配置を変化させるための変更指示を、入力デバイス等を介して受け付けたか否かを判断する。ここで述べる配置は方向等を含む概念であると考えても良い。受け付けた場合、ステップS209に進み、受け付けていない場合、ステップS210に進む。
(ステップS209)オブジェクト配置情報更新部107は、ステップS208において受け付けた変更指示に応じたオブジェクト配置情報を取得して、オブジェクト配置情報格納部105に格納されているオブジェクト配置情報を更新する。例えば、オブジェクト配置情報更新部107は、変更指示が指定する位置を立体オブジェクトを配置する位置に指定するオブジェクト配置情報を取得する。そして、ステップS205に戻る。
(ステップS210)操作入力受付部108は、操作入力を受け付けたか否かを判断する。受け付けた場合、ステップS211に進み、受け付けていない場合、ステップS212に進む。操作入力は、例えば、操作対象となる配置用情報を指定するための情報と、変更する内容を指定する情報との組み合わせ等である。変更する内容を指定する情報とは、例えば、配置用情報を追加する場合、追加する指示と、追加する情報とを組み合わせた情報である。
(ステップS211)配置用情報変更部109は、ステップS210において受け付けた操作入力に応じて、配置用情報格納部102に格納されている配置用情報を変更する。そして、ステップS203に戻る。
(ステップS212)検索指示受付部110は、検索指示を受け付けたか否かを判断する。検索指示は、例えば、配置用情報を指定する情報と、検索キーとを組み合わせた情報である。検索指示を受け付けた場合、ステップS213に進み、受け付けていない場合、ステップS208に進む。
(ステップS213)検索部111は、ステップS212において受け付けた検索指示に応じて、検索を実行する。例えば、検索部111は、検索指示により指定される配置用情報と同じ階層の配置用情報のなかから、検索指示に含まれる検索キーと一致する情報を有する配置用情報を検出する。なお、検索の結果、配置用情報が検索されなかった場合、検索結果がなかった旨を表示するようにして、ステップS208等に戻るようにしても良い。
(ステップS214)配置指定情報更新部112は、検索結果に対応した配置指定情報を取得する。具体的には、配置指定情報更新部112は、ステップS213の検索結果として検出された配置用情報に対する階層関係が、検索指示により指定された配置用情報に対する指定配置用情報の階層関係と同じ関係である配置用情報を指定する配置指定情報を取得する。
(ステップS215)配置指定情報更新部112は、ステップS214において取得した配置指定情報を用いて、配置指定情報格納部103に格納されている配置指定情報を更新する。例えば、取得した配置指定情報で、格納されていた配置指定情報を上書きする。そして、ステップS202に戻る。
なお、ここでは、立体オブジェクトが一つである場合について説明したが、複数の立体オブジェクトを出力する場合等においては、立体オブジェクト毎に、上記のステップS202からステップS206までの処理を繰り返すようにしたり、これらの各ステップの処理を、各立体オブジェクト毎に行うようにしてもよい。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における情報処理装置の具体的な動作について説明する。ここでは、情報処理装置1により、商品についてのカタログを表示する場合を例に挙げて説明する。ここでは、立体オブジェクトが立方体である場合を例に挙げて説明する。
図3は、形状情報格納部101に格納されている形状情報を管理するための形状情報管理表である。形状情報は、ここでは例として、ユーザ等により予め作成され、蓄積されているものとする。形状情報管理表は、「オブジェクトID」、「サイズx」、「サイズy」、「サイズz」という属性を有している。「オブジェクトID」は立体オブジェクトを識別するための識別情報である。「サイズx」は、立体オブジェクトのx軸方向の長さ、すなわち幅である。「サイズy」は、立体オブジェクトのy軸方向の長さ、すなわち高さである。「サイズz」は、立体オブジェクトのz軸方向の長さ、すなわち奥行きである。ただし、ここで述べるx軸、y軸、z軸は、立体オブジェクト自身に設定されるx軸、y軸、z軸であり、仮想三次元空間に設定される絶対的なX軸、Y軸、Z軸とは異なる。立体オブジェクト自身に設定されるx軸、y軸、z軸の原点は、例えば、立体オブジェクトの中心や重心に設定される。なお、各サイズの単位等は、ピクセル等どのような単位であっても良い。ここでは、形状情報管理表により、2つの立体オブジェクトの形状砲情報が管理されている。
図4は、オブジェクト配置情報格納部105に格納されているオブジェクト配置情報を管理するためのオブジェクト配置情報管理表である。オブジェクト配置情報は、ここでは例として、ユーザ等により予め作成され、蓄積されているものとする。オブジェクト配置情報は、「オブジェクトID」、「座標(X,Y,Z)」、および「回転角度(x,y,z)」という属性を有している。「オブジェクトID」は、立体オブジェクトを識別するための識別情報であり、上述した形状情報の「オブジェクトID」と対応している。「座標(X,Y,Z)」は、同じレコードの「オブジェクトID」が示す立体オブジェクトが配置される仮想三次元空間内の座標を示す情報であり、ここでは、立体オブジェクトの中心の座標である場合について説明する。ここでは、この座標の値は、仮想三次元空間内の絶対座標であるとする。なお、ここでは、仮想三次元空間内の横方向(幅方向)をX軸、縦方向(高さ方向)をY軸、奥行き方向をZ軸とする。また、「回転角度(x、y、z)」は、立体オブジェクトのx軸、y軸、z軸をそれぞれ回転軸とした回転角度を示す。回転角度は、立体オブジェクトの配置される方向を示す情報と考えても良い。なお、それぞれの値が(0,0,0)である場合、立体オブジェクトのx軸、y軸、z軸が、それぞれ仮想三次元空間内のX軸、Y軸、Z軸に平行に配置されるものとする。
なお、ここでは説明を省略しているが、上述した形状情報には、立体オブジェクトの第一〜第三の面を指定する情報が含まれているものとする。第一〜第三の面を指定する情報は、例えば、立体オブジェクトの座標を用いて定義される面を指定する情報である。ここでは、第一の面は、オブジェクト配置情報が、図4に示したような値である場合における、立方体である立体オブジェクトの正面の面であるとする。即ち立体オブジェクトを構成する面のうちの、立体オブジェクトのz軸に垂直であって、デフォルトで最も手前に位置する面であるとする。また、第二の面は、立体オブジェクト自身からみて、立体オブジェクトの左側面であるとする。また、第三の面は、立体オブジェクトの上面であるとする。第一〜第三の面を指定する情報は、ここでは例として、それぞれの面に相当する立体オブジェクトの面の三以上の頂点の座標を指定する情報であるとする。ただし、立体オブジェクトを構成する面のうちの、第一〜第三の面に相当する面の中心の座標等を指定する情報であっても良い。なお、ここでの座標とは、立体オブジェクト内に設定される座標軸を用いて表される座標であるとする。このため、立体オブジェクトの向き等が変更されても、第一〜第三の面を指定する情報は変化しない。つまり、第一〜第三の面は、立体オブジェクトに対して、予め固定されている面と考えて良い。
図5は、立体オブジェクトと、第一〜第三の面の関係を示すための図である。第一の面61は、立体オブジェクトの正面である。また、第二の面62は、立体オブジェクトの左側面である。また、第三の面63は、立体オブジェクトの上面である。図に示す座標軸は、立体オブジェクトに設定される座標軸を示すものである。
図6は、配置用情報格納部102に格納されている配置用情報を示す図である。ここでは、例として配置用情報がXML形式の情報を構成している場合について説明する。ただし、配置用情報は、XML形式の情報でなくても良く、例えば、情報を項目や属性別等に参照可能な形式のデータであれば良い。図6に示したXML形式の情報においては、便宜上、各配置用情報は、開始タグと終了タグと、これらのタグにより直接囲まれた情報とで構成される情報であると考える。「直接囲まれた」とは、タグとタグに挟まれる情報である要素との間に、他のタグが入らないことを示す。例えば、「<商品名>」と「</商品名>」とで区切られた範囲のタグ付けられた情報が、一の商品の商品名を示す配置用情報である。同様に、「<ジャンル名>」と「</ジャンル名>」とで区切られた範囲のタグ付けられた情報が、一のジャンルのジャンル名を示す配置用情報である。また、「<価格>」と「</価格>」とで区切られた範囲のタグ付けられた情報が、一の商品の詳細について示す情報のうちの価格を示す配置用情報である。なお、配置用情報として、ファイル等を指定する情報、例えばリンク情報が含まれる場合、これにより指定されたファイルの情報が配置用情報となる。リンク先の情報は、画像を構成する際等に適宜読み出される。配置用情報は、ここでは例として、ユーザ等により予め作成され、蓄積されているものとする。ここでは、商品を示す配置用情報は、商品のジャンル別に分類されているものとする。また、各商品を示す配置用情報の下位の配置用情報として、各商品の詳細を示す情報であるタグ付けられた情報が予め用意されているものとする。
また、ここでは、例として、配置用情報の階層関係が、階層関係を示すタグにより、指定されているものとする。具体的には、図5において、「ジャンル」タグは、予め定義されている最上位の階層である第一階層を示すタグであるとする。また、「商品」タグは、第一階層よりも一階層だけ下位の階層である第二階層を示すための、予め定義されているタグであるとする。また、「詳細」タグは、第二階層よりも一階層だけ下位の階層である第三階層を示すための、予め定義されているタグであるとする。即ち、ジャンル、商品、詳細は、階層を示すタグと考えても良い。なお、これらのタグがどのような階層関係を示すものであるかを示す情報等は、タグを定義する情報として、予め図示しない格納部等に格納されているものとする。
例えば、「<商品>」と「</商品>」とで区切られた範囲のタグ付けられた情報が、一の商品についての配置用情報である。同様に、「<ジャンル名>」と「</ジャンル名>」とで区切られた範囲のタグ付けられた情報が、ジャンル名や一のジャンルに属する商品等の、一のジャンルに関連した配置用情報である。なお、タグで囲まれた情報を、ここでは要素と呼ぶ。
また、タグ付けられた情報の属する階層は、タグ付けられた情報を挟んでいるタグのうちの、最も低い階層を示すタグが示す階層であるとする。例えば、図5においては、「<商品名>」というタグ付けられた「洗濯機」という情報は、「<商品>」という階層を示すタグと、「<ジャンル>」という階層を示すタグに挟まれている。このため、この二つのタグの内の最も低い階層を示すタグである「<商品>」というタグが示す階層、即ち第二階層が、洗濯機というタグ付けられた情報が属する階層となる。
図7は、配置指定情報格納部103に格納されている配置指定情報を管理するための配置指定情報管理表を示す図である。配置指定情報は、立体オブジェクトと対応付けて管理されている。配置指定情報管理表は、「オブジェクトID」という属性と、「配置指定情報」という属性とを有している。「オブジェクトID」は、図3に示したオブジェクトIDに相当する。「配置指定情報」は、同じレコードの「オブジェクトID」が示す立体オブジェクトと対応付けられた配置指定情報である。
まず、ユーザが、商品についてのカタログを表示させる指示を情報処理装置1に与えたとする。
情報処理装置1の面情報取得部104は、図7に示した配置指定情報のうちの、1番目のレコードの「配置指定情報」である「洗濯機」を読み出す。そして、読み出した「洗濯機」を検索キーとして、図6に示した配置用情報の中から、要素が「洗濯機」であるタグ付けられた情報である配置用情報を検索する。ここでは、「<商品名>洗濯機</商品名>」という配置用情報が図6に示した配置用情報から検出されたとする。面情報取得部104は、この検出した配置用情報と、同じノードの同じ階層に属する「<商品写真>washing.gif</商品写真>」という配置用情報とを、対象配置用情報として取得する。
次に面情報取得部104は、この取得した対象配置用情報を用いて、下位配置用情報を取得する。ここでは、対象配置用情報の直系の一階層下位の1以上の配置用情報を下位配置用情報として取得することを指定する情報が、図示しない記憶媒体等に予め蓄積されているものとする。
ここでは、「<商品名>洗濯機</商品名>」という対象配置用情報を挟んでいる「<商品>」というタグが、この「<商品>」というタグが示す階層に対して1階層だけ下位の階層を示す「<詳細>」というタグを挟んでいる。このため、配置用情報の階層を示すタグの包含関係から、「<商品名>洗濯機</商品名>」という対象配置用情報の直系の下位の配置用情報である、「<詳細>」というタグに挟まれた「<価格>15万円</価格><仕様>ドライ機能</仕様> <メーカー>○×電気</メーカー>」という配置用情報を、下位配置用情報として取得する。
また、面情報取得部104は、上記の取得した対象配置用情報を用いて、同階層配置用情報とを取得する。ここでは、対象配置用情報の直系である1階層上位の階層に従属する配置用情報のうちの、対象配置用情報と同階層の配置用情報を、同階層配置用情報として取得することを指定する情報が、図示しない記憶媒体等に予め蓄積されているものとする。つまり、対象配置用情報と同階層の配置用情報であって、直系の1階層上位の階層が、対象配置用情報と同じ階層である配置用情報を、同階層配置用情報として取得することを指定する情報が予め蓄積されていると考えても良い。
ここでは、「<商品名>洗濯機</商品名>」という対象配置用情報を挟んでいる「<商品>」というタグの直系の1階層上位のタグが、「<ジャンル名>家電</ジャンル名>」という要素を含む「<ジャンル>」というタグである。このため、この「<ジャンル名>家電</ジャンル名>」という要素を含む「<ジャンル>」というタグに挟まれた配置用情報のうちの、「<商品名>洗濯機</商品名>」という対象配置用情報と同じ階層の配置用情報を同階層配置用情報として取得する。「<商品名>洗濯機</商品名>」という対象配置用情報と同じ階層の配置用情報は、「<商品名>洗濯機</商品名>」という対象配置用情報の属する階層を示すタグである「<商品>」というタグと同じタグに挟まれた配置用情報である。ただし、「<商品>」よりも下位の階層の配置用情報は除外するようにする。ここでは、「<商品名>アイロン</商品名><商品写真>iron.gif</商品写真>」及び「<商品名>冷蔵庫</商品名><商品写真>refrig.gif</商品写真>」という配置用情報を、同階層配置用情報として取得する。
そして、面情報取得部104は、取得した対象配置用情報、下位配置用情報、および同階層配置用情報を、配置指定情報が対応付けられている「オブジェクトID」と対応付けて、図示しないメモリ等の記憶媒体に一時記憶する。
また、同様に、図7に示した配置指定情報のうちの、2番目のレコードの配置指定情報についても、同様に、対象配置用情報、下位配置用情報、および同階層配置用情報を取得する。
図8は、面情報取得部104が取得して蓄積した対象配置用情報、下位配置用情報、および同階層配置用情報を管理する取得配置用情報管理表である。一の配置指定情報を用いて取得された対象配置用情報、下位配置用情報、および同階層配置用情報は、一の配置指定情報に対応付けられている「オブジェクトID」と対応付けて管理されている。なお、ここでは、タグ付けられた配置用情報の要素だけを、対象配置用情報、下位配置用情報、および同階層配置用情報として管理している場合を例に挙げて示しているが、タグ付けられた配置用情報全体、即ちタグも含めて、対象配置用情報、下位配置用情報、および同階層配置用情報として管理するようにしても良いことはいうまでもない。
つぎに、画像情報構成部113は図3に示した形状情報管理表を用いて「オブジェクトID」が「OBJ1」である形状情報を読み出し、メモリ等に一時記憶する。
また、図4に示したオブジェクト配置情報管理表から、立体オブジェクト「OBJ1」に対応したオブジェクト配置情報を読み出す。具体的には、「オブジェクトID」が「OBJ1」であるレコードの「座標(X,Y,Z)」の値である「(100,300,100)」、および「回転角度(x,y,z)」の値である「(0,0,0)」を読み出す。
そして、画像情報構成部113は、「オブジェクトID」が「OBJ1」である立体オブジェクト(以下、立体オブジェクト「OBJ1」と称す)の形状情報が示す立体オブジェクト「OBJ1」の画像情報を構成する。このとき、立体オブジェクト「OBJ1」の配置、具体的には位置と向きは、オブジェクト配置情報管理表から読み出したオブジェクト配置情報が示す配置となるように設定する。なお、ここでは、立体オブジェクトの投影図が構成されるように、座標軸が設定されているものとする。また、立体オブジェクトの各面には、面情報取得部104が取得した配置用情報が配置される。ここでは、立体オブジェクト「OBJ1」の正面である第一の面には、図7に示した対象配置用情報のうちの、「OBJ1」に対応付けられた対象配置用情報が配置される。なお、washing.gifというデータについては、リンク先のデータである「washing.gif」という画像情報が読み出されて、配置される。立体オブジェクト「OBJ1」の左側面である第二の面には、図7に示した下位配置用情報のうちの、「OBJ1」に対応付けられた下位配置用情報が配置される。また、立体オブジェクト「OBJ1」の上面である第三の面には、図7に示した同階層配置用情報のうちの、「OBJ1」に対応付けられた同階層配置用情報が配置される。画像情報構成部113は、例えば、これらの配置用情報をマッピングデータとして用いて、立体オブジェクトのレンダリングを行うことで、立体オブジェクトの画像情報を構成する。なお、ここでは、第一〜第三の面上に配置される配置用情報は、タグ付の情報のうちの、タグに挟まれた情報である要素のみとする。
また、同様に、画像情報構成部113は、「オブジェクトID」が「OBJ2」である立体オブジェクトについても、同様に、立体オブジェクトの画像情報を構成する。そして、画像情報構成部113は、構成した複数の立体オブジェクトの画像情報を合成する。
次に、出力部114が、画像情報構成部113が合成した画像情報を出力する。ここでは、出力部114は、モニタ504に接続されており、当該モニタに合成した立体オブジェクトの画像情報を表示する例を図8に示す。図9において、立体オブジェクト801は立体オブジェクト「OBJ1」、立体オブジェクト802は、立体オブジェクト「OBJ2」であるとする。なお、本実施の形態において座標の値や図に示される立体オブジェクトの位置等については、説明のためのものであり、実際のサイズ等に合わせて正確に描かれたものではない。かかることについては、他の実施の形態においても同様である。図9に示すように、各立体オブジェクトは、それぞれが商品に対応しており、各商品の商品名や写真が立体オブジェクトの第一の面である正面に表示されている。また、各商品についての詳細な情報が立体オブジェクトの第二の面である左側面に表示されている。また、正面に示されている商品に関連する商品、ここでは同じジャンルに属する商品の名称等が立体オブジェクトの第三の面である上面に表示されている、このようにして、各商品とその商品に関連する詳細な情報や、同じジャンルに属する他の商品との対応関係を、ユーザが容易に把握できるように表示されることとなる。
次に、ユーザが、モニタ504に表示されている立体オブジェクト「OBJ1」である立体オブジェクト801に対して、配置を変更する指示を与えたとする。具体的には、マウス等を操作して、立体オブジェクト「OBJ1」を立体オブジェクトのy軸を回転軸として立体オブジェクト自身からみて右まわりに90°回転させる指示を与えたとする。この操作によって、変更指示受付部106は、立体オブジェクト「OBJ1」について、y軸を回転軸として、右回りに90°回転させる指示を受け付けたとする。オブジェクト配置情報更新部107は、この受け付けた角度を変更する指示に従って、立体オブジェクトのy軸を回転軸として、この受け付けた角度分だけ、回転角度を変更したオブジェクト配置情報を算出する。回転後のオブジェクト配置情報の回転角度(x、y、z)は(0,90°,0)となる。この回転により、例えば、立体オブジェクトのx軸と仮想三次元空間のX軸とのなす角度が90度となり、立体オブジェクトのz軸と仮想三次元空間のZ軸とのなす角度が90度となる。そして、算出したオブジェクト配置情報により、オブジェクト配置情報格納部105に格納されている立体オブジェクト「OBJ1」のオブジェクト配置情報を更新、ここでは上書きする。更新後のオブジェクト配置情報管理情報を、図10に示す。
なお、配置を変更する指示は、どのように受け付けても良い。例えば、メニュー等を介してコマンド等で指定されても良いし、表示されている立体オブジェクトの面上に、立体オブジェクトを回転させるためのイベントを発生させる領域を設定して、この領域がポインタ等で押された場合に、立体オブジェクトを回転させるコマンド等が発生して、変更指示受付部106に渡されるようにしておいても良い。例えば、ここでは、立体オブジェクト「OBJ1」の第二の面、即ち左側面上に、図示しないボタン等を配置し、このボタンが、クリックされると、立体オブジェクト801を、立体オブジェクト自身からみて右まわりに90°回転させるコマンドが発生するようにしても良い。また、辺の近傍をクリックした場合に、このクリックされた辺に平行な軸を回転軸として立体オブジェクトを回転させるためのコマンドを発生させても良い。
変更指示受付部106が変更指示を受け付け、変更指示に応じてオブジェクト配置情報が更新されると、画像情報構成部113は、上記と同様に、変更後のオブジェクト配置情報を用いて画像情報を構成する。なお、このとき、面情報取得部104は、配置用情報を再度取得するようにしても良いし、直前に取得した配置用情報をそのまま用いるようにしても良い。また、配置が変更されていない立体オブジェクトの画像情報も再度構成するようにしても良いし、構成しなくても良い。そして出力部114が、構成した画像情報を図11に示すようにモニタ504に表示する。
また、図9に示した状態で、ユーザが、ポインタ等を操作して、例えば、立体オブジェクト「OBJ1」801に配置されている「ドライ機能」という文字列を指定し、キーボード等を操作してこの文字列を「高速ドライ機能」という文字列に変更する操作を行ったとする。操作入力受付部108は、このユーザによる操作に応じて、立体オブジェクト「OBJ1」の第二の面である左側面に配置されている下位配置用情報のうちの、「<仕様>ドライ機能</仕様>」という配置用情報の要素が「高速ドライ機能」に変更する指示を受け付ける。この指示をここでは、操作指示と呼ぶ
操作入力受付部108が操作指示を受け付けると、配置用情報変更部109は、配置用情報格納部102内に格納されている配置用情報の中から操作指示の対象となる配置用情報を検出し、検出した配置用情報の要素を、「ドライ機能」から「高速ドライ機能」に変更する。ここでは、上書きする。変更した配置用情報を、図12に示す。
なお、面情報取得部104が取得した対象配置用情報や、下位配置用情報や、同階層配置用情報と、これらのオリジナルとなる配置用情報との対応関係を、図示しない管理表等を用いて管理しておくようにしてもよい。例えば、対象配置用情報や、下位配置用情報や、同階層配置用情報と、図6に示した配置用情報におけるこれらのオリジナルである配置用情報が配置されている行番号等を、管理表等で管理しておくようにしても良い。そして、この管理表を用いて、配置用情報格納部102内に格納されている配置用情報の中から、操作指示の対象となる配置用情報を検出するようにしても良い。この管理表により管理されている情報は、面情報取得部104が、配置用情報を取得する際に、適宜更新するようにすればよい。
操作入力受付部108が上記のように操作指示を受け付け、配置用情報変更部109が配置用情報を更新すると、面情報取得部104は、更新された配置用情報から、再度、各立体オブジェクトの面に配置される対象配置用情報や、下位配置用情報や、同階層配置用情報の取得を行う。そして、画像情報構成部113は、面情報取得部104が取得した配置用情報と、形状情報およびオブジェクト配置情報とを用いて、立体オブジェクトの画像情報を構成する。そして出力部114は、画像情報構成部113が構成した画像情報を、図13に示すようにモニタ504に表示する。
また、図9に示した状態で、ユーザが、ポインタ等を操作して、例えば、立体オブジェクト「OBJ1」801に配置されている「15万円」という文字列を指定し、図14に示すように、検索キーを入力する入力ウィンドウ141等を表示させ、キーボード等を操作してこの文字列に関して、「5万円以下」という検索条件で検索を行う指示を入力したとする。
この指示の入力により、検索指示受付部110は、立体オブジェクト「OBJ1」の第二の面である左側面に配置されている下位配置用情報のうちの、「<価格>15万円</価格>」という配置用情報を指定した、検索指示を受け付ける。この検索指示は、具体的には、検索指示が指定する配置用情報と同じ階層に存在するとともに、同じ「<価格>」タグを有する配置用情報であって、直系の第一階層が同じである配置用情報を検索対象として検索を行う指示と考えても良い。直系の第一階層が同じとは、ここでは、一の「<ジャンル>」タグ内に挟まれている配置用情報であることを示す。また、この検索指示は、要素の値が、「5万円以下」という条件を検索キーとした検索を行う指示である。
検索部111は、検索指示受付部110が検索指示を受け付けると、検索指示が指定する「<価格>15万円</価格>」という配置用情報と同じ階層に存在するとともに、同じ「<価格>」タグを有する配置用情報であって、直系の第一階層が同じである配置用情報を検索対象として検索を行う。即ち、「<ジャンル名>家電</ジャンル名>」という配置用情報を要素の一つとして有している「<ジャンル>」タグに挟まれた配置用情報のうちの、「<価格>」というタグが付与された配置用情報を検索対象として、「5万円以下」という検索キーを満たす要素を有する配置用情報を検索する。即ち、「<価格>」に挟まれた値が、5万円以下である配置用情報を検索する。ここでは、「<商品名>アイロン</商品名>」という配置用情報の下位の階層の配置用情報である「<価格>1万円</価格>」が、検出されたとする。
配置指定情報更新部112は、検索指示が指定する配置用情報が、下位配置用情報であるため、検索部111が検索した配置用情報が下位配置用情報となるような対象配置用情報を、図6に示した配置用情報から検出する。具体的には、検索部111が検出した「<価格>1万円</価格>」という配置用情報の直系の1階層上位の配置用情報を検出する。ここでは、「<商品名>アイロン</商品名>」と、「<商品写真>iron.gif</商品写真>」という配置用情報が検出される。そして、この検出した配置用情報を指定する配置指定情報を取得し、配置指定情報格納部103に格納されている「オブジェクトID」が「OBJ1」である立体オブジェクトの配置指定情報を更新する。ここでは、例えば、配置指定情報として、「<商品名>」タグが付けられた配置用情報の要素だけを取得することが予め設定されているものとする。このため、上記で検出した2つの配置用情報のうちの、「<商品名>」タグが付けられた配置用情報の要素である「アイロン」が、配置指定情報として取得される。そして、配置指定情報更新部112は、取得した配置指定情報「アイロン」を用いて、配置指定情報格納部103に格納されている「オブジェクトID」が「OBJ1」である立体オブジェクトの配置指定情報を更新する。ここでは上書きする。
配置指定情報更新部112が配置指定情報を更新すると、面情報取得部104は、更新された配置指定情報を用いて、再度、各立体オブジェクトの面に配置される対象配置用情報や、下位配置用情報や、同階層配置用情報の取得を行う。取得した配置用情報を管理する取得配置用情報管理表を、図15に示す。
そして、画像情報構成部113は、面情報取得部104が取得した配置用情報と、形状情報およびオブジェクト配置情報とを用いて、立体オブジェクトの画像情報を構成する。そして出力部114は、画像情報構成部113が構成した画像情報を、図16に示すようにモニタ504に表示する。
以上、本実施の形態によれば、階層化された配置用情報から、配置指定情報により指定される配置用情報である対象配置用情報と、対象配置用情報に対して下位の階層に位置する配置用情報と、対象配置用情報に対して同じ階層である配置用情報と、をそれぞれ取得し、取得した配置用情報を予め指定した面に配置した立体オブジェクトの画像を構成し、出力するようにしたことにより、ユーザに対して、階層化された配置用情報を、階層関係がわかりやすい態様で出力することが可能となる。
また、配置指定情報により、立体オブジェクトの第一の面に表示される配置用情報だけを指定すればよいため、立体オブジェクトの各面に対して配置する情報を一つ一つ指定する必要がないため、簡単かつ少ない操作で、階層化されたデータの効果的な表示を実現することができる。
なお、本実施の形態においては、立体オブジェクトの第一〜第三の面に、対象配置用情報と、下位配置用情報と、同階層配置用情報とをそれぞれ配置するようにしたが、第一〜第三の面以外の面にも、対象配置用情報に対して、予め指定された階層の関係にある配置用情報等を配置するようにしても良い。また、第一〜第三の面以外の面に、予め指定した所定の情報等を配置するようにしても良い。
なお、上記実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、上記実施の形態において、一の装置に存在する2以上の通信手段(情報送信部など)は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりする情報や、各構成要素が処理で用いるしきい値や数式、アドレス等の情報等は、上記説明で明記していない場合であっても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。
また、上記実施の形態では、情報処理装置がスタンドアロンである場合について説明したが、情報処理装置は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や受付部は、通信回線を介して入力を受け付けたり、画面を出力したりすることになる。
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。
なお、上記実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、形状情報格納部には、第一、第二及び第三の面を有する立体のオブジェクトである立体オブジェクトの形状を指定する情報である形状情報が格納されており、配置用情報格納部には、前記立体オブジェクトを構成する面に配置可能な情報であって、階層化された1以上の情報である配置用情報が格納されており、配置指定情報格納部には、前記立体オブジェクトを構成する第一の面に配置する前記配置用情報を指定する情報である配置指定情報が格納されており、コンピュータを、前記配置用情報格納部に格納されている配置指定情報が指定する配置用情報である指定配置用情報と、当該指定配置用情報の直系の下位の階層の配置用情報である下位配置用情報と、当該指定配置用情報と同じ階層の配置用情報である同階層配置用情報とを、前記配置用情報格納部から取得する面情報取得部と、前記立体オブジェクトの形状情報を前記形状情報格納部から読み出し、当該読み出した形状情報により形状が指定される立体オブジェクトの前記第一の面に前記面情報取得部が取得した指定配置用情報を、前記第二の面に前記面情報取得部が取得した下位配置用情報を、また、前記第三の面に前記面情報取得部が取得した同階層配置用情報を、それぞれ配置した画像情報を構成する画像情報構成部と、前記画像情報構成部が構成した画像情報を出力する出力部として実行させるためのプログラムである。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図17は、上記プログラムを実行して、上記実施の形態による情報処理装置を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図17において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905、FD(Floppy(登録商標) Disk)ドライブ906を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図18は、コンピュータシステム900の内部構成を示す図である。図18において、コンピュータ901は、CD−ROMドライブ905、FDドライブ906に加えて、MPU(Micro Processing Unit)911と、ブートアッププログラム等のプログラムを記憶するためのROM912と、MPU911に接続され、アプリケーションプログラムの命令を一時的に記憶すると共に、一時記憶空間を提供するRAM(Random Access Memory)913と、アプリケーションプログラム、システムプログラム、及びデータを記憶するハードディスク914と、MPU911、ROM912等を相互に接続するバス915とを備える。なお、コンピュータ901は、LANへの接続を提供する図示しないネットワークカードを含んでいてもよい。
コンピュータシステム900に、上記実施の形態による情報処理装置の機能を実行させるプログラムは、CD−ROM921、またはFD922に記憶されて、CD−ROMドライブ905、またはFDドライブ906に挿入され、ハードディスク914に転送されてもよい。これに代えて、そのプログラムは、図示しないネットワークを介してコンピュータ901に送信され、ハードディスク914に記憶されてもよい。プログラムは実行の際にRAM913にロードされる。なお、プログラムは、CD−ROM921やFD922、またはネットワークから直接、ロードされてもよい。
プログラムは、コンピュータ901に、上記実施の形態による情報処理装置の機能を実行させるオペレーティングシステム(OS)、またはサードパーティプログラム等を必ずしも含んでいなくてもよい。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいてもよい。コンピュータシステム900がどのように動作するのかについては周知であり、詳細な説明は省略する。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。