以下、情報処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
図1は、本実施の形態における情報処理装置1のブロック図である。
情報処理装置1は、配置用情報格納部101、形状情報取得部102、形状ひな形情報格納部103、形状情報格納部104、立体オブジェクト位置情報格納部105、画像情報構成部106、および出力部107を備えている。
配置用情報格納部101には、1以上のグループにグループ化された1以上の配置用情報が格納され得る。配置用情報は、立体のオブジェクトである立体オブジェクトを構成する1以上の面に配置可能な情報である。各配置用情報は、例えば、それぞれが属するグループが判別可能となるように配置用情報格納部101に格納されている。
配置用情報と、当該配置用情報が属するグループとの関係は、どのように管理されていても良い。例えば、配置用情報とグループとの関係は、図示しない格納部等に格納される配置用情報とグループとの関係を管理するための情報や、配置用情報とグループとの関係を管理するためのテーブルや、データベース等を用いて管理されていても良い。配置用情報がタグ付けられた情報である場合、配置用情報自身が、グループの関係を管理する情報を含むと考えても良い。また、一のグループを構成する1以上の配置用情報は、例えば、当該グループを識別するグループ識別情報等と対応付けられて配置用情報格納部101に格納されていても良い。また、一のグループを構成する1以上の配置用情報は、一のグループを示す情報の下位の階層の情報として格納されていても良い。具体的には、配置用情報を含む情報が、HTMLやXML等のタグ付けされた情報である場合、一のグループにグループ化されている1以上の配置用情報に同一のグループを構成する情報であることを示す一のタグが付与されて配置用情報格納部101に格納されていても良い。
配置用情報は、階層化された情報であっても良い。この場合、一の階層のデータや一の階層のデータを示すタグ等に従属する情報が、一のグループを構成する情報であると考えてもよい。階層化された情報とは、ツリー構造化されたデータや、ネスト化されたデータと考えても良い。階層化された情報は、例えば、タグ等の包含関係等を示す情報を用いて階層化された情報である。例えば、階層化された情報は、XML形式のマークアップ言語等で示される情報である。この場合、階層化された各情報は、1以上のタグが付けられた情報である。例えば、タグの包含関係により、タグが付与された情報の階層の深さ、包含関係が定義されることとなる。なお、タグ付けられた情報は、タグを含んでも良いし、含まなくても良い。一の配置用情報に、更に1以上の下位の配置用情報が従属していてもよい。なお、配置用情報が階層化された情報である場合、どの階層の情報がグループ化の対象となる配置用情報であるか等が予め指定されていても良い。
配置用情報は、立体オブジェクトを構成する面に配置して出力可能な情報であれば、静止画や動画等の画像情報や、テキスト情報、アプリケーション等の、どのような情報であっても良い。また、ここで述べる配置とは、いわゆる立体オブジェクトの面に対する画像情報等のマッピングと考えても良い。また、配置用情報は、マッピング対象となる情報、例えばテクスチャ情報、もしくはその一部と考えても良い。なお、1以上の配置用情報が、リンク先等を指定する情報である場合、このリンク先の情報を実際の配置用情報と考えても良い。配置用情報が蓄積される過程等は問わない。例えば、図示しない受付部等が受け付けた配置用情報を蓄積するようにしてもよい。また、ここでの格納とは、メモリ等による一時的なデータの格納も含む概念である。配置用情報格納部101は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
形状情報取得部102は、配置用情報格納部101に格納されている配置用情報で構成されるグループについて、当該グループを構成する配置用情報のデータの構造及び/または内容に応じた立体形状を有する立体オブジェクトの形状を指定する情報である形状情報を取得する。例えば、形状情報取得部102は、配置用情報格納部101に格納されている一のグループを構成する配置用情報を読み出し、当該配置用情報のデータ構造及び/または内容に応じた形状情報を取得する。
形状情報とは、仮想3D空間内で使えるオブジェクトの立体形状等を定義する情報である。形状情報は、例えば、立体オブジェクトのいわゆるモデリング情報である。ここで述べる立体オブジェクトは、例えば3Dオブジェクトや3Dモデルや立体モデルと呼ばれるものも含む。形状情報は、立体オブジェクトの頂点の座標の情報や、境界線や面等を表現する方程式のパラメータの情報等である。立体オブジェクトは、通常、面を定義する情報、あるいは面を定義可能な情報を有しており、1以上の面により構成されている。立体オブジェクトは、例えば、面の構成方法によって、ポリゴンモデリングや、自由曲面を利用したモデリング等に分類できる。形状情報には、立体オブジェクトを出力する際の、立体オブジェクトの色や、透明度、反射、屈折率、バンプなどの属性の設定項目の情報を含んでも良い。形状情報格納部104には、1以上の立体オブジェクトの形状情報が格納され得る。立体オブジェクトの形状は、球、円柱、六面体や八面対等の多面体や、立方体、円錐、角錐等、どのような形状であっても良い。形状情報のサイズ等の単位等は、絶対的な単位であっても、相対的な単位であっても良い。また、複数の立体オブジェクトにおいて、共用可能な形状情報は、リンク情報等を用いて参照することで、相互利用できるようにしても良い。
形状情報には、当該形状情報が示す立体オブジェクトの1以上の面に配置される配置用情報を取得するための条件を示す情報である取得条件情報が、1以上の面に対応付けられて、形状情報格納部104に格納されていても良い。取得条件情報は、例えば、面に配置される配置用情報を検索するための検索式等の検索条件を示す情報である。この場合、各面に対応付けられた検索式の情報を用いて検索を行うことで、面に配置される配置用情報を取得することが可能となる。取得条件情報は、例えば、所定のタグを指定する情報であってもよい。また、取得条件情報は、各面に配置される配置用情報の順番等を指定する情報であっても良い。例えば、立体オブジェクトの一の面に配置される配置用情報として、配置用情報格納部101に格納されている一のグループを構成する配置用情報のうちの、n番目に配置されている配置用情報を指定する情報であってもよい。
形状情報取得部102が、配置用情報のデータの構造及び/または内容に応じて、どのように形状情報を取得するかは問わない。形状情報取得部102は、1以上の異なる形状情報のひな形が格納されている後述する形状ひな形情報格納部103から、配置用情報のデータの構造及び/または内容に応じた立体形状を有する立体オブジェクトの形状情報のひな形を読み出すことで形状情報を取得しても良い。また、予め指定されている演算式等を用いて、データの構造及び/または内容に応じた立体オブジェクトの形状情報を作成しても良い。
(1)ここではまず、形状情報取得部102が、配置用情報のデータの構造に応じて形状情報を取得する場合について説明する。なお、データの構造とは、例えば、一のグループを構成する配置用情報数や、タグ数や、データの階層構造等である。
例えば、後述する形状ひな形情報格納部103に、1以上の配置用情報のデータ構造についての条件を示す情報(以下、データ構造条件と称す)と、形状情報とを対応付けて予め格納しておくようにし、形状情報取得部102は、一のグループを構成する配置用情報が、データ構造条件のいずれかを満たすか否かを判断し、満たすと判断した場合に、当該データ構造条件に対応付けられた形状情報を形状ひな形情報格納部103から検索等により検出し、読み出す。データ構造条件とは、例えば、一のグループを構成する配置用情報数の条件である。例えば、後述する形状ひな形情報格納部103に、データ構造条件である配置用情報数と、ひな形の形状情報とを対応付けて予め格納しておき、一のグループを構成する配置用情報数をカウントして取得し、一のグループを構成する配置用情報数と一致する配置用情報数と対応付けられた形状情報を、形状ひな形情報格納部103から検索により検出し、読み出す。なお、各実施の形態において、条件を満たすという判断は、条件を満たさないという条件を満たす判断も含むと考えても良い。また、データ構造条件は、一のグループを構成する配置用情報に用いられているタグの種類の数であってもよい。
また、形状情報取得部102は、一のグループを構成する配置用情報の構造に関する値を取得し、この取得した値を、予め用意された形状情報を算出するための演算式に代入することで形状情報を算出しても良い。具体的には、形状情報取得部102は、一のグループを構成する配置用情報数を取得し、この値を、予め用意された形状情報を算出するための演算式に代入することで形状情報を算出しても良い。
形状情報取得部102は、例えば、一のグループを構成する配置用情報数と同じ数の面を有する形状情報を取得する。具体的には、例えば、配置用情報数がn(nは1以上の整数)である場合、n面体の形状情報を取得する。また、一の面に2以上の配置用情報が配置される場合、当該2以上の配置用情報が配置される面を考慮して、立体オブジェクトの全ての面、あるいは予め指定された面を除く全ての面に1以上の配置用情報が配置可能な形状情報を取得する。なお、一のグループを構成する配置用情報の下限値や上限値等を設け、一のグループを構成する配置用情報数が、下限値を下回った場合や、上限値を上回った場合等には、これらの下限値や上限値に応じて指定された形状情報を取得するようにしても良い。例えば、形状情報が3以下であれば、常に、四面体の立体オブジェクトの形状情報を取得するようにしても良い。
また、一の立体オブジェクトに配置される一のグループを構成する配置用情報において、立体オブジェクトの各面に配置される配置用情報が、例えば配置用情報のタグや、タグの階層関係等を用いて、予め指定されている場合、各面に配置される配置用情報数に応じて、当該配置用情報が配置される面の属性(例えば色)等が異なる形状情報を取得するようにしてもよい。例えば、一の面に配置される配置用情報の数が、予め指定されたしきい値よりも多い場合、当該配置用情報が配置される面の属性(例えば色)が、他の面とは異なる属性(例えば色)である立体オブジェクトの形状情報を取得するようにしても良い。このようにすることで、配置された配置用情報数の多い面を、視覚的に識別できるように表示させること等が可能となる。
(2)次に、形状情報取得部102が、配置用情報のデータの内容に応じて形状情報を取得する場合について説明する。なお、ここで述べるデータの内容とは、例えば、画像データや、テキストデータ等のデータタイプであっても良い。また、予め指定された文字列(キーワード)を含むテキストデータであるか否かや、文字数や、データ量等であっても良い。
例えば、後述する形状ひな形情報格納部103に、配置用情報の内容についての条件を示す情報(以下、データ内容条件と称す)と、形状情報とを対応付けて予め格納しておくようにし、形状情報取得部102は、一のグループを構成する配置用情報のデータの内容が、データ内容条件のいずれかを満たすか否かを判断し、満たすと判断した場合に、当該データ内容条件に対応付けられた形状情報のひな形を形状ひな形情報格納部103から検索等により検出し、読み出す。データ内容条件とは、一のグループを構成する配置用情報の一部または全てが、上述したような、所定のデータタイプを含む配置用情報が存在するか否かの条件や、予め指定された文字列を含むテキストデータが存在するか否かの条件等である。具体的には、例えば、後述する形状ひな形情報格納部103に、画像情報数の下限値を示すデータ内容条件と、ひな形情報とを対応付けて予め格納しておき、形状情報取得部102は、一のグループを構成する配置用情報に、下限値以上の数の画像情報が存在するか否かを判断し、存在する場合、当該データ内容条件と対応付けられたひな形情報を検索等により検出し、読み出す。
形状情報取得部102は、一のグループを構成する配置用情報を配置する形状として適した形状情報を取得する。例えば、一のグループを構成する配置用情報に、所定数以上の画像情報が含まれる場合、画像を配置することに適した立体オブジェクトの形状情報を取得する。例えば、他の形状情報が示す立体オブジェクトよりもサイズの大きい立体オブジェクトの形状情報を取得する。あるいは、配置された画像が見やすいような、反射属性等を有する立体オブジェクトの形状情報を取得する。あるいは、少なくとも画像情報数と同じ数の、画像情報を配置するための矩形の面を有する形状情報を取得するようにしても良い。
なお、データの構造および内容により形状情報を取得する場合、上述したような配置用情報のデータの構造に応じた形状情報であって、なおかつ、配置用情報のデータの内容に応じた形状情報を取得するようにすればよい。例えば、一のグループを構成する配置用情報が、対応するデータ構造条件とデータ内容条件とを共に満たす形状情報を取得するようにすればよい。
形状情報取得部102は、通常、MPUやメモリ等から実現され得る。形状情報取得部102の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
形状ひな形情報格納部103には、形状情報のひな形(テンプレート)の情報(以下、ひな形情報と称す)が格納されている。ここでは特に、ひな形情報は、上述したデータ構成条件及び/またはデータ内容条件と対応付けられて格納されている。ひな形情報は、上述した形状情報と同様の情報である。ただし、形状ひな形情報格納部103に格納されているひな形情報は、通常は、特定のグループの配置用情報と対応付けられていない形状情報である。また、ひな形情報における座標等の情報は、暫定的な絶対座標や、形状情報自身に設定された座標系における座標であってもよい。形状ひな形情報格納部103には、例えば、異なる複数の立体形状を示すひな形情報が格納されている。ここでは、立体オブジェクトの形が同じであっても、透明度等の属性の設定項目が異なる形状情報については、異なる立体形状を示す形状情報と考える。なお、このような形状情報のひな形情報については、3Dソフトウェア等においては公知であるので詳細な説明は省略する。
形状ひな形情報格納部103において、ひな形情報と、データ構成条件及び/またはデータ内容条件とは、直接対応付けられて格納されていても良いし、間接的に対応付けられて格納されていても良い。間接的に対応付けられているとは、例えば、それぞれに対応する識別情報同士が対応付けられていることや、例えば、それぞれに対応する識別情報同士が対応付けられていることや、一方の情報と他方の情報の識別情報とが対応付けられていること等を意味する。また、ひな形情報と、データ構成条件及び/またはデータ内容条件とは、物理的に同じ記憶媒体に格納されていても良いが、形状ひな形情報格納部103が物理的に異なる記憶媒体により構成される場合、それぞれの記憶媒体に格納されていても良い。また、例えば、ひな形情報と、データ構成条件及び/またはデータ内容条件とは、ひな形情報と、当該ひな形情報と対応付けられたデータ構成条件及び/またはデータ内容条件との組を、一のレコードの複数の項目として管理する管理情報等を用いて管理されても良い。この管理情報は、例えば形状ひな形情報格納部103や図示しない格納部等に格納しておくようにすればよい。形状ひな形情報格納部103は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
形状情報格納部104は、上述した形状情報取得部102が取得した形状情報が、当該形状情報に対応する配置用情報のグループと対応付けられて格納され得る。形状情報と、配置用情報のグループとは、例えば、形状情報取得部102や、図示しない蓄積部等により蓄積される。形状情報に対応する配置用情報のグループとは、形状情報取得部102が形状情報を取得した配置用情報のグループである。形状情報と、配置用情報のグループとが対応付けられて格納されるということは、形状情報とグループとの対応関係が判断可能に格納されることであれば良く、例えば、形状情報と、グループを識別するグループ識別情報とが対応付けられて格納されることであっても良いし、形状情報と、グループを構成する配置用情報の1以上とが対応付けて格納されることであってもよい。
形状情報格納部104において、形状情報と、配置用情報のグループとは、直接対応付けられて格納されていても良いし、間接的に対応付けられて格納されていても良い。間接的に対応付けられているとは、例えば、それぞれに対応する識別情報同士が対応付けられていることや、例えば、それぞれに対応する識別情報同士が対応付けられていることや、一方の情報と他方の情報の識別情報とが対応付けられていること等を意味する。また、形状情報と、配置用情報のグループとは、物理的に同じ記憶媒体に格納されていても良いが、形状情報格納部104が物理的に異なる記憶媒体により構成される場合、それぞれの記憶媒体に格納されていても良い。また、例えば、ひな形情報と、データ構成条件及び/またはデータ内容条件とは、ひな形情報と、当該ひな形情報と対応付けられたデータ構成条件及び/またはデータ内容条件との組を、一のレコードの複数の項目として管理する管理情報等を用いて管理しても良い。この管理情報は、例えば形状情報格納部104や図示しない格納部等に格納しておくようにすればよい。形状情報格納部104は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
立体オブジェクト位置情報格納部105には、形状情報格納部104に格納されている形状情報が示す立体オブジェクトの位置を指定する情報である立体オブジェクト位置情報が格納され得る。立体オブジェクト位置情報格納部105には、立体オブジェクトの形状情報と、当該立体オブジェクトの位置を示す立体オブジェクト位置情報が対応付けられて格納される。なお、立体オブジェクト位置情報格納部105には、形状情報と、立体オブジェクト位置情報とが結果的に対応付けられていればよく、例えば、形状情報に対応する配置用情報のグループを識別する情報と、立体オブジェクト位置情報とが対応付けて格納されていても良い。形状情報取得部102は、例えば、形状情報を取得する際に予め指定されたルールに従って立体オブジェクト位置情報を取得する。例えば、予め指定されたグリッドに沿って、他の立体オブジェクトと所定の間隔となるように立体オブジェクトを配置するための立体オブジェクト位置情報を、形状情報取得部102が配置用情報により構成される一のグループについて形状情報を取得する際に取得する。そして、この立体オブジェクト位置情報を、立体オブジェクトの形状情報と対応付けて蓄積する。立体オブジェクト位置情報格納部105に蓄積する。ここで述べる位置とは、例えば、仮想三次元空間内における位置である。但し、立体オブジェクトをレンダリングした二次元画像を二次元の背景画像上に配置する場合等においては、立体オブジェクト位置情報は二次元平面上における位置情報であっても良い。立体オブジェクト位置情報は、例えば、立体オブジェクトの位置に加えて、立体オブジェクトの配置される方向、即ちオブジェクトの向きや立体オブジェクトの大きさ等を示す情報を有していても良い。立体オブジェクトの位置とは、例えば、立体オブジェクト内の1以上の部分の仮想三次元空間内等における位置と考えても良い。例えば、立体オブジェクト位置は、立体オブジェクトを構成する辺が集まる1以上の頂点や辺や面の位置であっても良いし、立体オブジェクトの中心や重心等の位置であっても良い。立体オブジェクト位置情報は、立体オブジェクトの位置を結果的に指定可能な情報であればよい。立体オブジェクト位置情報は、例えば、立体オブジェクトが配置される位置の座標を指定する情報である。立体オブジェクトの位置は、例えば、座標等で表される。立体オブジェクトの位置を指定する座標は、仮想三次元空間内等に設定された絶対的な座標であっても良いし、他の立体オブジェクト等に対して設定された相対的な座標であっても良い。例えば、立体オブジェクトの位置を指定する座標は、立体オブジェクトを構成する辺が集まる頂点の座標であっても良いし、立体オブジェクトの中心や重心等の位置の座標であっても良い。なお、ここでは1以上の立体オブジェクトのそれぞれについて、立体オブジェクト位置情報と立体オブジェクトの形状情報とをそれぞれ設けた場合について説明するが、立体オブジェクト位置情報を形状情報内に含めるようにしても良い。例えば、形状情報の頂点の情報を、例えば、絶対座標とすることで、形状情報を立体オブジェクト位置情報として用いて、立体オブジェクトの位置も指定可能となる。この場合、形状情報格納部104と立体オブジェクト位置情報格納部105とを一の格納部により構成するようにしても良い。後述する画像情報構成部106は、例えば、この立体オブジェクト位置情報を読み出して、この立体オブジェクト位置情報が示す仮想三次元空間内等の位置に立体オブジェクトを位置した画像情報を構成する。立体オブジェクト位置情報格納部105は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
画像情報構成部106は、形状情報格納部104に格納されている立体オブジェクトの形状情報と、配置用情報格納部101に格納されている当該立体オブジェクトに対応付けられたグループを構成する配置用情報とを読み出し、当該読み出した形状情報が示す立体オブジェクトの1以上の面に対し、読み出した配置用情報を配置した画像情報を構成する。
画像情報構成部106は、立体オブジェクトの各面に配置する配置用情報をどのように決定しても良い。例えば、形状情報格納部104に格納されている立体オブジェクトの形状情報が、各面に配置される配置用情報を指定するための情報を有さない場合、画像情報構成部106は、一の立体オブジェクトに対応するグループの配置用情報をランダムに、各面に配置した画像情報を構成しても良い。また、予め指定されているルールに従って、各面に配置する配置用情報を決定してもよい。例えば、配置用情報を、当該配置用情報の配列順や出現順や識別情報順等に従って、立体オブジェクトの面上に予め指定された方向に向かって配置しても良い。
また、例えば、形状情報格納部104に格納されている立体オブジェクトの形状情報が、各面に配置される配置用情報を指定するための情報を有する場合、画像情報構成部106は、当該情報を用いて、一の立体オブジェクトに対応するグループの配置用情報の中から、各面に対応する配置用情報をそれぞれ検出する。そして、画像情報構成部106は、当該検出した配置用情報を、対応する面に配置した立体オブジェクトの画像情報、具体的には二次元の画像情報を構成する。例えば、画像情報構成部106は、形状情報が有する、各面に配置される配置用情報を指定するための情報が、上述した取得条件情報である場合、一の立体オブジェクトに対応するグループの配置用情報の中から、各面に対応付けられた取得条件情報を満たす配置用情報を検出し、当該検出した配置用情報を、対応した各面に配置した画像情報を構成する。
なお、形状情報と、当該形状情報が示す面に配置される配置用情報とを用いて、立体オブジェクトの二次元画像を構成する処理は、いわゆるレンダリングの処理等として公知であるので、ここでは詳細な説明を省略する。
画像情報構成部106は、通常、MPUやメモリ等から実現され得る。画像情報構成部106の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力部107は、画像情報構成部106が構成した画像情報を出力する。ここで述べる出力とは、ディスプレイへの表示、プロジェクターを用いた投影、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラム等への処理結果の引渡し等を含む概念である。プログラムとは、コンピュータの行う処理(演算・動作・通信など)の手順を指示したもののことである。出力部107は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。出力部107は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報処理装置1の動作について図2のフローチャートを用いて説明する。
(ステップS101)形状情報取得部102は、カウンターnに1を代入する。
(ステップS102)形状情報取得部102は、配置用情報格納部101に格納されているグループ化された配置用情報から、n番目のグループの配置用情報を検出する。
(ステップS103)形状情報取得部102は、カウンターmに1を代入する。
(ステップS104)形状情報取得部102は、立体オブジェクト位置情報格納部203に格納されているm番目のひな形情報に対応付けられた条件の情報であるデータ構造条件及び/またはデータ内容条件を読み出し、ステップS102で検出したn番目の配置用情報が、読み出した条件を満たすか否かを判断する。満たすと判断された場合、ステップS105に進み、満たさないと判断された場合、ステップS112に進む。
(ステップS105)形状情報取得部102は、m番目のひな形情報を、n番目の配置用情報に対応した形状情報として、形状ひな形情報格納部103から取得する。
(ステップS106)形状情報取得部102は、ステップS105において取得した形状情報を、n番目のグループの配置用情報と対応付けて、形状情報格納部104に蓄積する。
(ステップS107)形状情報取得部102は、n番目の形状情報に対応した立体オブジェクトの位置を指定するための立体オブジェクト位置情報を、例えば、予め指定されているルールに従って取得し、n番目の形状情報と対応付けて立体オブジェクト位置情報格納部105に蓄積する。なお、図示しない格納部等に、例えば、予め、n番目の立体オブジェクトが配置される位置を指定する位置情報、例えば座標情報等が設定されている場合、形状情報取得部102は、このn番目の立体オブジェクトが配置される位置を指定する位置情報を、立体オブジェクト位置情報として図示しない格納部から読み出し、n番目の形状情報と対応付けて立体オブジェクト位置情報格納部105に蓄積しても良い。また、立体オブジェクト位置情報格納部105に、例えば、予め、n番目の立体オブジェクトが配置される位置を指定する位置情報が設定されている場合、この処理は、形状情報取得部102が、n番目の形状情報と、このn番目の立体オブジェクトが配置される位置を指定する位置情報とを対応付ける処理であっても良い。
(ステップS108)形状情報取得部102は、カウンターnの値を1インクリメントする。
(ステップS109)形状情報取得部102は、n番目のグループの配置用情報が、配置用情報格納部101にあるか否かを判断する。ある場合、ステップS102に戻り、ない場合、ステップS110に進む。
(ステップS110)画像情報構成部106は、形状情報格納部104に格納されている各形状情報を読み出し、各形状情報に対応付けられた配置用情報を配置用情報格納部101から読み出し、読み出した配置用情報を、各配置用情報が対応する形状情報が示す立体オブジェクトの面に配置して、立体オブジェクトの画像情報を構成する。また、画像情報を構成する際の立体オブジェクトの位置や向き等は、例えば、各形状情報に対応する立体オブジェクト位置情報が示す位置や向きに設定する。
(ステップS111)出力部107は、ステップS110において構成した画像情報を出力する。例えば、モニタ等に画像情報を表示させる。そして処理を終了する。
(ステップS112)形状情報取得部102は、カウンターmの値を1インクリメントする。
(ステップS113)形状情報取得部102は、形状ひな形情報格納部104にm番目のひな形情報があるか否かを判断する。ある場合、ステップS104に戻り、ない場合、ステップS108に進む。
以下、本実施の形態における情報処理装置1の具体的な動作について説明する。
(具体例1)
まず、形状情報取得部102が、一のグループを構成する配置用情報のデータの構造に応じた形状情報を取得する場合を例に挙げて説明する。
ここでは、情報処理装置1により、商品についてのカタログを表示する場合を例に挙げて説明する。この具体例においては、形状情報取得部102が、一のグループを構成する配置用情報のデータ構造に応じた形状情報を取得する場合を例に挙げて説明する。なお、ここでは、仮想三次元空間内の横方向(幅方向)をx軸、縦方向(高さ方向)をy軸、奥行き方向をz軸とした場合について説明している。かかることは、他の具体例や実施の形態においても同様である。なお、ここでは、情報処理装置1が、モニタ上のタッチパネルで操作可能な携帯型の情報処理端末であるとする。
図3は、配置用情報格納部101に格納されている配置用情報を示す図である。ここでは、例として配置用情報がXML形式のデータを構成している場合について説明する。ただし、配置用情報は、XML形式のデータでなくても良く、データベース等で管理されている情報であっても良い。図3に示したXML形式のデータにおいて、各配置用情報は、タグ付けられたデータ、すなわち開始タグと終了タグとで囲まれたデータであるとする。配置用情報ここでは例として、ユーザにより予め作成され、蓄積されているものとする。また、ここでは、配置用情報が商品別にグループ化されているものとする。すなわち、一対の商品タグ、すなわち「<商品>」と「</商品>」とで区切られた範囲内の、「<商品名>」(商品名タグ)や「<価格>」(価格タグ)等のタグ付けられた各データが、一のグループを構成する配置用情報であるとする。つまり、ここでは、配置用情報は、一の商品に関する1以上の情報であるとする。なお、配置用情報として、ファイル等を指定する情報、例えばリンク情報が含まれる場合、これにより指定されたファイルの情報が配置用情報であると考えて良く、例えば、画像情報構成部106は、このリンク情報で指定されたファイルの情報を配置用情報として取得する。
図4は、形状ひな形情報格納部101に格納されている形状情報のひな形情報を管理するためのひな形情報管理表である。ひな形情報は、ここでは例として、ユーザにより予め作成され、蓄積されているものとする。形状ひな形情報管理表は、「ひな形ID」、「モデル形状」、「タグ数」という項目を有している。「ひな形ID」は立体オブジェクトのひな形情報を識別するための識別情報である。「モデル形状」は、ひな形の立体オブジェクトの形状情報である。「モデル形状」は、実際には、立体オブジェクトの頂点の座標や、辺や面の形状を定義する情報等により構成されているが、ここでは、説明の便宜上、形状情報が示す立体オブジェクトの形状名を示している。「タグ数」は、ひな形情報に対応付けられたデータ構造条件を示す情報であり、ここでは特に、一のグループを構成する配置用情報に含まれるタグ付けられた配置用情報のデータ数の条件を示している。例えば「タグ数」の値が「6」であれば、一のグループを構成する配置用情報のタグ付けられたデータ数が「6」である場合にこのデータ構造条件を満たすこととなる。また、例えば「タグ数」の値が「4以下」であれば、一のグループを構成する配置用情報の数が「4以下」である場合にこのデータ構造条件を満たすこととなる。
なお、ここでは説明を省略しているが、上述した形状情報には、立体オブジェクトの各面に対して、配置用情報が配置される順番を指定する情報、例えば「1」,「2」,「3」等が対応付けられているものとする。
まず、例えば、ユーザが、情報処理装置1に対して、商品についてのカタログを表示する指示を与えたとすると、情報処理装置1の形状情報取得部102は、まず、図3に示した配置用情報から、1番目のグループを構成する配置用情報を検出する。ここでは、図3において、商品タグで区切られた複数の配置用情報で構成されるグループのうちの、商品名タグの要素が「洗濯機」である配置用情報を含むグループを1番目のグループ31として検出する。
次に、形状情報取得部102は、1番目のグループ31を構成する配置用情報数をカウントする。ここでは、1番目のグループ31に含まれるタグ付けされたデータ数をカウントして、配置用情報数として「6」を取得する。
次に、形状情報取得部102は、図4に示したひな形情報管理表から、データ構造条件である「データ数」の項目の値を、各レコードから順次読み出し、読み出したデータ構造条件を、形状情報取得部102が取得した1番目のグループの配置用情報数である「6」が満たすか否かを判断する。
例えば、図4に示したひな形情報管理表において、「ひな形ID」が「TP1」であるレコードの「タグ数」は、「4以下」であり、形状情報取得部102が取得した配置用情報数が「6」であるため、形状情報取得部102が取得した配置用情報数「6」が、「ひな形ID」が「TP1」であるレコードの「タグ数」が示す条件を満たさないと判断される。即ち、1番目のグループを構成する配置用情報の構造が、「ひな形ID」が「TP1」であるレコードのデータ構造条件を満たさないと判断される。
一方、図4に示したひな形情報管理表において、「ひな形ID」が「TP2」であるレコードの「タグ数」は、「5または6」であり、形状情報取得部102が取得した配置用情報数が「6」であるため、形状情報取得部102が取得した配置用情報数「6」が、「ひな形ID」が「TP2」であるレコードの「タグ数」が示す条件を満たすと判断される。即ち、1番目のグループを構成する配置用情報の構造が、「ひな形ID」が「TP2」であるレコードのデータ構造条件を満たすと判断される。
このため、形状情報取得部102は、条件を満たすと判断されたデータ構造条件に対応付けられたひな形情報、即ち、「ひな形ID」が「TP2」であるレコードの「モデル形状」である「正六面体」というひな形の形状情報を読み出す。
そして、形状情報取得部102は、読み出した「正六面体」というひな形情報を、1番目の配置用情報のグループと対応付けて、形状情報格納部104に蓄積する。なお、ここでは、1番目の配置用情報に含まれる商品名タグの要素「洗濯機」と対応付けて形状情報を形状情報格納部104に蓄積する。
図5は、形状情報格納部104に蓄積された形状情報を管理する形状情報管理表を示す図である。形状情報管理表は、「オブジェクトID」と、「形状情報」と「グループ」という項目を有している。「オブジェクトID」は、立体オブジェクトを管理するための識別情報であり、例えば、データの蓄積時に、予め指定されたルールによって作成される。「形状情報」は、形状情報であり、形状情報取得部102が取得した「モデル形状」の情報と同様の情報である。「グループ」は、配置用情報により構成されるグループを示す情報であり、ここでは、一のグループを構成する配置用情報のうちの、商品名タグの要素の情報である。ここでは、1番目のグループについて取得された形状情報「正六面体」と、この1番目のグループに含まれる商品名タグが付与された情報である「洗濯機」とが対応付けられて管理されている。
また、形状情報取得部102は、形状情報格納部104に蓄積される形状情報が示す立体オブジェクトが配置される位置を示す情報である立体オブジェクト位置情報を、予め指定されているルールに従って取得する。例えば、予め基点として指定されている位置の情報、もしくは直前に配置が決定された立体オブジェクトに対して予め指定された間隔を隔てて新たな立体オブジェクトが配置されるような位置の情報(例えば座標情報)を、新たに蓄積される形状情報や、既に蓄積されている形状情報等を用いて算出することで、立体オブジェクトが配置される位置を示す立体オブジェクト位置情報を取得する。そして、取得した立体オブジェクト位置情報を、形状情報格納部104に蓄積する形状情報が示す立体オブジェクトの識別情報等と対応付けて、立体オブジェクト位置情報格納部105に蓄積する。
図6は、立体オブジェクト位置情報格納部105に格納された立体オブジェクト位置情報を管理する立体オブジェクト位置情報管理表である。立体オブジェクト位置情報管理表は、「オブジェクトID」と、「座標(x,y,z)」と、「回転角度(x,y,z)」という項目を有している。「オブジェクトID」は、立体オブジェクトを識別するための識別情報であり、上述した形状情報管理表の「オブジェクトID」と対応している。「座標(x,y,z)」は、同じレコードの「オブジェクトID」が示す立体オブジェクトが配置される座標を示す情報であり、ここでは、立体オブジェクトの中心の座標である場合について説明する。ここでは、この座標の値は、仮想三次元空間内の絶対座標であるとする。「回転角度(x、y、z)」は、立体オブジェクトのx軸、y軸、z軸をそれぞれ回転軸とした場合の回転角度を示す。なお、それぞれの値が(0,0,0)である場合、立体オブジェクトの幅方向、高さ方向、および奥行き方向が、それぞれ仮想三次元空間内のx軸方向、y軸方向、およびz軸方向に平行に配置されるものとする。なお、立体オブジェクトだけの画像情報をレンダリングにより作成した後、背景画像とこの立体オブジェクトの画像とを合成して最終的な画像情報を取得する場合、立体オブジェクト位置情報は、立体オブジェクトの二次元の画像が配置される位置を示すための、背景画像上等における座標を示す情報であっても良い。この場合、立体オブジェクト位置情報は、例えば、二次元の座標情報であればよい。
同様にして、図3に示した配置用情報のうちの、2番目以降のグループを構成する配置用情報についても、同様に、配置用情報のデータ構造に応じて形状情報を取得する処理を行う。
例えば、形状情報取得部102は、商品名タグの要素が「アイロン」である配置用情報を含むグループが2番目のグループ32として検出する。
そして、形状情報取得部102は、2番目のグループ32に含まれるタグ付けされたデータ数をカウントして、配置用情報数「4」を取得する。
次に、形状情報取得部102は、図4に示したひな形情報管理表の「データ数」の項目の値が示すデータ構造条件を、各レコードから順次読み出し、読み出したデータ構造条件を、形状情報取得部102が取得した配置用情報数「4」が満たすか否かを判断する。
例えば、図4に示したひな形情報管理表において、「ひな形ID」が「TP1」であるレコードの「タグ数」は、「4以下」であり、形状情報取得部102が取得した配置用情報数が「4」であるため、形状情報取得部102が取得した配置用情報数「4」が、「ひな形ID」が「TP1」であるレコードの「タグ数」が示す条件を満たすと判断される。即ち、1番目のグループを構成する配置用情報の構造が、「ひな形ID」が「TP1」であるレコードのデータ構造条件を満たすと判断される。
このため、形状情報取得部102は、条件を満たすと判断されたデータ構造条件に対応付けられたひな形情報、即ち、「ひな形ID」が「TP1」であるレコードの「モデル形状」である「正四面体」というひな形となる形状情報を読み出す。
そして、形状情報取得部102は、読み出した「正四面体」というひな形の形状情報を、2番目の配置用情報のグループと対応付けて、形状情報格納部104に蓄積する。なお、ここでは、2番目の配置用情報に含まれる商品名タグの要素「アイロン」と対応付けて形状情報を形状情報格納部104に蓄積する。
また、形状情報取得部102は、形状情報格納部104に蓄積される形状情報が示す立体オブジェクトが配置される位置を示す情報である立体オブジェクト位置情報を、上記と同様に、予め指定されているルールに従って取得し、取得した立体オブジェクト位置情報を、形状情報格納部104に蓄積する形状情報が示す立体オブジェクトの識別情報等と対応付けて、立体オブジェクト位置情報格納部105に蓄積する。
図7は、図3に示した配置用情報の全てのグループについて上記のような処理を行った結果として得られた形状情報管理表を示す図である。
図8は、図3に示した配置用情報の全てのグループについて上記のような処理を行った結果として得られた立体オブジェクト位置情報管理表を示す図である。
次に、画像情報構成部106は、図8に示した立体オブジェクト位置情報管理表から、立体オブジェクト「OBJ1」に対応した立体オブジェクト位置情報を読み出す。そして、画像情報構成部106は、立体オブジェクト「OBJ1」の形状情報を図7の形状情報管理表から読み出し、読み出した形状情報が示す立体オブジェクト「OBJ1」の画像情報を構成する。このとき、立体オブジェクト「OBJ1」の位置と向きは、オブジェクト配置情報管理表から読み出したオブジェクト配置情報が示す位置と向きになるように設定する。また、このとき、立体オブジェクト「OBJ1」に対応した配置用情報を立体オブジェクトの各面に配置して、立体オブジェクト「OBJ1」の画像情報を構成する。具体的には、立体オブジェクト「OBJ1」の各面には、図7に示した形状情報管理表の「オブジェクトID」が「OBJ1」であるレコードの「グループ」の値が示す「洗濯機」を、商品名タグが付与された配置用情報として有するグループを構成する全ての配置用情報を配置する。例えば、「洗濯機」を、商品名タグが付与された配置用情報として有するグループを構成する全ての配置用情報を、配置用情報格納部101から順次読み出し、形状情報によって配置用情報の配置される順番が指定されている立体オブジェクトの面上に、配置用情報を読み出した順番に従って配置し、配置した配置用情報を用いて立体オブジェクトの二次元画像を構成する。
同様に、図7に示した形状情報管理表により、形状情報が管理されている他の立体オブジェクトについても、同様に二次元画像を構成する。
画像情報構成部106は、さらに、構成した複数の立体オブジェクトの画像を、デフォルトで指定されている背景の画像上に合成して、立体オブジェクトを含む画像情報を構成する。
次に、出力部107が、画像情報構成部106が合成した画像情報を出力する。ここでは、出力部107は、モニタ500を有しており、当該モニタ500に立体オブジェクトの画像情報を表示する。図9に表示例を示す。図9において、立体オブジェクト501は立体オブジェクト「OBJ1」、立体オブジェクト502は、立体オブジェクト「OBJ2」、立体オブジェクト503は、立体オブジェクト「OBJ3」であるとする。なお、本実施の形態において座標の値や図に示される立体オブジェクトの位置等については、説明のためのものであり、実際のサイズに合わせて正確に描かれたものではない。かかることについては、他の実施の形態においても同様である。図9に示すように、各立体オブジェクトは、それぞれが商品に対応しており、各商品の色別の画像や、仕様や価格等が、それぞれの立体オブジェクトの面に表示されており、各商品とその商品に関連する仕様等の情報との対応関係が容易に把握できるようになっている。
なお、ユーザ等の指示に応じて、各立体オブジェクトの立体オブジェクト位置情報等を適宜変更できるようにし、変更が行われた際に、再度変更後の立体オブジェクト位置情報等を用いて、画像情報を取得し出力するようにしても良い。このようにすることで、例えば、立体オブジェクトを回転させて図9においては背面となっていた面を正面側に向けたり、立体オブジェクト位置を見やすい位置等に変更させたりすることができる。
この具体例においては、配置用情報のデータ構造に応じて、立体オブジェクトの形状情報を取得することにより、例えば、一のグループを構成する配置用情報のデータ構造にとって最適な形態の立体オブジェクトで、配置用情報を表示させることが可能となる。
(具体例2)
次に、形状情報取得部102が、一のグループを構成する配置用情報のデータの内容に応じた形状情報を取得する場合を例に挙げて説明する。
この具体例は、上述した具体例において、図3に示したひな形情報管理表のようなデータ構造条件と対応付けられたひな形情報を用いる代わりに、以下の図10に示すようなデータ内容条件と対応付けられたひな形情報を用いて、形状情報取得部102が形状情報を取得するようにしたものである。その他の配置用情報等については、上記具体例と同様であるとする。
図10は、形状ひな形情報格納部101に格納されている形状情報のひな形情報を管理するためのひな形情報管理表である。ひな形情報は、ここでは例として、ユーザにより予め作成され、蓄積されているものとする。形状ひな形情報管理表は、「ひな形ID」、「モデル形状」、「キーワード」という項目を有している。「ひな形ID」は立体オブジェクトのひな形を識別するための識別情報である。「モデル形状」は、ひな形の立体オブジェクトの形状情報である。「モデル形状」は、実際には、立体オブジェクトの頂点の座標や、辺や面等の形状を定義する情報等により構成されているが、ここでは、説明の便宜上、形状情報が示す立体オブジェクトの形状名を示している。「キーワード」は、ひな形情報に対応付けられたデータ内容条件を示す情報であり、ここでは特に、一のグループを構成する配置用情報に少なくとも一つ含まれるキーワードの条件を示している。例えば「キーワード」の値が「AA電気」であれば、一のグループを構成する配置用情報のいずれか一つに「AA電気」というキーワードが含まれている場合に、このデータ構造条件を満たすこととなる。なお、ここでは説明を省略しているが、上述した形状情報には、立体オブジェクトの各面に対して、配置用情報が配置される順番を指定する情報、例えば「1」,「2」,「3」等が対応付けられているものとする。
まず、例えば、ユーザが、情報処理装置1に対して、商品についてのカタログを表示する指示を与えたとすると、情報処理装置1の形状情報取得部102は、まず、図3に示した配置用情報から、1番目のグループを構成する配置用情報を検出する。ここでは、図3において、商品タグで区切られた複数の配置用情報で構成されるグループのうちの、商品名タグの要素が「洗濯機」である配置用情報を含むグループを1番目のグループ31として検出する。
次に、形状情報取得部102は、図10に示したひな形情報管理表から、データ内容条件である「キーワード」の項目の値を、各レコードから順次読み出し、読み出したデータ内容条件を、形状情報取得部102が取得した1番目のグループを構成する配置用情報が満たすか否かを判断する。具体的には、ひな形情報管理表の各レコードの「キーワード」の項目の値と一致する文字列を有する配置用情報を、1番目のグループを構成する配置用情報内において検索する。そして、「キーワード」の項目の値と一致する文字列を有する配置用情報と一致する文字列を有する配置用情報が1番目のグループを構成する配置用情報内において検出された場合、検出された第一のグループは、読み出したデータ内容条件を満たすと判断される。検出されない場合、データ内容条件を満たさないと判断される。
例えば、図10に示したひな形情報管理表において、「ひな形ID」が「TP5」であるレコードの「キーワード」は、「BB電気」であり、1番目のグループの配置用情報のなかには、「BB電気」という文字列を含む情報が検出されないため、1番目のグループの配置用情報は、「ひな形ID」が「TP5」であるレコードの「キーワード」の値が示すデータ内容条件を満たさないと判断される。
一方、図10に示したひな形情報管理表において、「ひな形ID」が「TP6」であるレコードの「キーワード」は、「AA電気」であり、1番目のグループの配置用情報のなかの、メーカータグが付与された配置用情報内の「AA電気」という文字列が、キーワードと一致するとして検出される。このため、1番目のグループの配置用情報のなかには、「AA電気」という文字列を含む配置用情報が検出されないため、1番目のグループの配置用情報は、「ひな形ID」が「TP6」であるレコードの「キーワード」の値が示すデータ内容条件を満たすと判断される。
このため、形状情報取得部102は、条件を満たすと判断されたデータ内容条件に対応付けられたひな形情報、即ち、「ひな形ID」が「TP6」であるレコードの「モデル形状」である「角丸正六面体」というひな形情報を読み出す。なお、「角丸正六面体」とは、頂点となる角の部分が丸められた正六面体である。
そして、形状情報取得部102は、読み出した「角丸正六面体」というひな形情報である形状情報を、1番目の配置用情報のグループと対応付けて、形状情報格納部104に蓄積する。なお、ここでは、1番目の配置用情報に含まれる商品名タグの要素「洗濯機」と対応付けて形状情報を形状情報格納部104に蓄積する。また、ここでは、この形状情報には、「オブジェクトID」として「OBJ1」を対応付けて蓄積する。
同様にして、図3に示した配置用情報のうちの、2番目以降のグループを構成する配置用情報についても、同様に、配置用情報のデータ構造に応じて形状情報を取得する処理を行う。
図11は、図3に示した配置用情報の全てのグループについて上記のような処理を行った結果として得られた形状情報管理表を示す図である。なお、上記のような処理を行った結果として得られた立体オブジェクト位置情報管理表は図8と同様であったとする。
画像情報構成部106は、図11に示すような形状情報管理表等を用いて、上記具体例1と同様に、立体オブジェクトの画像情報を構成する。そして、構成された画像情報を、出力部107が出力する。
図12は、画像情報構成部106が合成した画像情報の、出力部107による表示例を示す図である。
この具体例においては、一のグループを構成する配置用情報の内容に応じて、当該配置用情報が配置される立体オブジェクトの形状が決定される。このため、出力部107から出力される立体オブジェクトの形状を見るだけで、その立体オブジェクトが、どのような内容の配置用情報が配置された立体オブジェクトであるかを認識することができ、立体オブジェクトが、どのような内容に関するものであるかをユーザが判別しやすくすることができる。
なお、上記具体例においては、形状情報取得部102が、データ構造条件またはデータ内容条件を用いて、立体オブジェクトの形状情報を取得する場合について説明したが、本実施の形態においては、一のひな形情報と、データ構造条件と、データ内容条件とを対応付けておくようにし、一のグループを構成する配置用情報が、一のひな形情報と対応付けられたデータ構造条件およびデータ内容条件をともに満たす場合に、形状情報取得部102が、当該組合せに対応付けられたひな形情報が示す形状情報を取得するようにしても良い。
以上のように、本実施の形態によれば、一のグループを構成する配置用情報のデータ構造及び/またはデータ内容に応じて、当該一のグループに対応した立体オブジェクトの形状情報を取得するようにしたので、配置用情報のデータ構造やデータ内容に適した立体オブジェクトを出力することができる。
なお、本実施の形態の情報処理装置1は、多面的に定義され得る情報を出力可能な、新しいユーザインターフェースのモデルや、新しいファイルシステム、新しいウィンドウシステムとして利用可能である。例えば、情報処理装置1で出力された立体オブジェクトの画像を、他の処理を行うための指示等を受け付けるための入力インターフェースの画像等として用いるようにしてもよい。
なお、上記実施の形態において、形状情報が示す立体オブジェクトの各面に予め取得条件情報を対応付けておくようにし、配置用情報を立体オブジェクトの面に配置する際に、各面の取得条件情報が示す条件に合致する配置用情報を配置するようにしても良い。
例えば、n面体の立体オブジェクトの各面に設定される取得条件情報であるタグと、一の配置用情報のグループを構成するn個の配置用情報のそれぞれに付与されるタグとが、一致するようにしておくことで、n面の立体オブジェクトの各面に、タグが一致する配置用情報をそれぞれ配置することが可能である。
また、立体オブジェクトのそれぞれの面に取得条件情報として対応付けられているタグの組合せを、データ構造条件として用いて、一のグループを構成する配置用情報にそれぞれ付与されているタグの組合せと一致するタグの組合せを示すデータ構造条件と対応付けられた立体オブジェクトの形状情報を形状情報取得部102が取得するようにし、取得した立体オブジェクトの各面に配置する配置用情報として、取得条件情報であるタグが一致する配置用情報を配置するようにしても良い。
(実施の形態2)
本実施の形態の情報処理装置2は、立体オブジェクトに配置される1以上の配置用情報のデータの構造および/またはデータの内容に応じて、立体オブジェクトの動きを変化させるようにしたものである。
図13は、本実施の形態における情報処理装置2のブロック図である。
情報処理装置2は、形状情報格納部201、配置用情報格納部202、立体オブジェクト位置情報格納部203、動作定義情報取得部204、動作定義情報格納部205、取得動作定義情報格納部206、指示操作受付部207、動作指示情報取得部208、画像情報構成部209、出力部210、および動作処理部211を備えている。
形状情報格納部201には、立体オブジェクトの形状を指定する情報である形状情報が格納され得る。形状情報については、上記実施の形態1において説明した形状情報と同様であるので、説明は省略する。複数の立体オブジェクトにおいて、共用可能な形状情報等は、例えばリンク情報を用いて参照することで、相互利用できるようにしても良い。形状情報格納部201は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
配置用情報格納部202は、立体オブジェクトを構成する1以上の面に配置される1以上の情報である配置用情報が格納され得る。配置用情報は、立体オブジェクトを構成する面に配置して出力、例えば表示可能な情報であれば、静止画や動画等の画像情報や、テキスト情報等、どのような情報であっても良い。また、ここで述べる配置とは、いわゆる立体オブジェクトの面に対する画像情報等のマッピングと考えても良い。また、配置用情報は、マッピング対象となる情報、例えばテクスチャ情報と考えても良い。配置用情報のデータ構造は問わない。例えば配置用情報は、タグ付けされた情報であっても良い。また、配置用情報は、テーブルや、データベースにより、例えば属性等と対応付けて管理された情報でも良い。また、配置用情報は、予めグループ化されていても良い。なお、本実施の形態の配置用情報は、上記実施の形態1において説明した配置用情報と同様の情報であっても良い。
配置用情報と、当該配置用情報が配置される立体オブジェクトの面とはどのように対応付けられていても良い。例えば、配置用情報またはその識別情報と、当該配置用情報に対応付けられた立体オブジェクトの面またはその識別情報との組を、一のレコードの複数の項目として管理する管理情報等を用いて管理されても良い。この管理情報は、例えば図示しない格納部等に格納しておくようにすればよい。また、形状情報格納部201と配置用情報格納部202とが一の格納部により構成されており、形状情報が示す立体オブジェクトの面を示す情報と当該面に配置される配置用情報とが対応付けられて格納されていても良い。また、形状情報が示す立体オブジェクトの面に対して、当該面に配置される配置用情報を取得するための条件を示す情報である取得条件情報等が対応付けられて、形状情報格納部104等に格納されていても良い。取得条件情報は、例えば、面に配置される配置用情報を検索するための検索式等の検索条件を示す情報である。この場合、各面に対応付けられた検索式の情報を用いて検索を行うことで、面に配置される配置用情報を取得することが可能となる。
なお、情報取得条件情報は、1以上の立体オブジェクトの面に配置される1以上の配置用情報を結果的に指定可能な情報であれば、どのような情報であっても良い。例えば、取得条件情報は、配置用情報が項目分けされている場合、その項目を指定する情報であってもよい。また、配置用情報が属性を有している場合、その属性を指定する情報であっても良い。また、配置用情報がタグ付けされている場合、タグ名を指定する情報であっても良い。また、配置用情報にインデックス情報が付与されている場合、このインデックスを指定する情報であっても良い。また、配置用情報の場所やファイル名やディレクトリ等を指定する情報であっても良い。また、配置用情報を検索するための検索式や演算式であっても良い。なお、検索式は、必ずしも式の形で示されている必要はなく、検索に利用可能なキーワード等であっても良い。例えば、この検索式で示される取得条件情報は、「select」、「from」、「where」等の組み合わせである。なお、「select」は取得する配置用情報の項目、「from」は検索対象となる複数の配置用情報を指定する情報、「where」は検索のための条件を示す情報である(SQLの仕様を参照)。また、演算式で示される取得条件情報とは、例えば、1以上の配置用情報に対して行われる演算式であり、例えば、数値で表される2つの配置用情報を指定する情報と、これらの平均を算出する演算式等で表されたものや、現在の時間等に所定時間を加減算する演算式等で表されたものである。取得条件情報とは、出力対象となりうる全ての立体オブジェクトにそれぞれ個別に指定されていてもよいし、全ての立体オブジェクト共通に指定されていても良い。また、一部の立体オブジェクトに共通に指定されていても良い。また、立体オブジェクトに属性が設定されている場合、この属性が一致する立体オブジェクトに共通の取得条件を指定しても良い。また、取得条件情報は、立体オブジェクトの各面に対して予め指定されていてもよいし、各面にランダムに指定されても良い。配置用情報格納部101は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
立体オブジェクト位置情報格納部203には、立体オブジェクトの位置を指定する情報である立体オブジェクト位置情報が格納され得る。ここで述べる位置とは、例えば、仮想三次元空間内における位置である。但し、立体オブジェクトをレンダリングした二次元画像を二次元の背景画像上に配置する場合においては、立体オブジェクト位置情報は二次元平面上における位置情報であっても良い。立体オブジェクト位置情報は、例えば、立体オブジェクトの位置に加えて、立体オブジェクトの配置される方向、即ちオブジェクトの向きや立体オブジェクトの大きさ等を示す情報等を有していても良い。立体オブジェクトの位置とは、例えば、立体オブジェクト内の1以上の部分の仮想三次元空間内等における位置と考えても良い。例えば、立体オブジェクト位置は、立体オブジェクトを構成する辺が集まる1以上の頂点や辺や面の位置であっても良いし、立体オブジェクトの中心や重心等の位置であっても良い。立体オブジェクト位置情報は、立体オブジェクトの位置を結果的に指定可能な情報であればよい。立体オブジェクト位置情報は、例えば、立体オブジェクトが配置される位置の座標を指定する情報である。立体オブジェクトの位置は、例えば、座標等で表される。立体オブジェクトの位置を指定する座標は、仮想三次元空間内等に設定された絶対的な座標であっても良いし、他の立体オブジェクト等に対して設定された相対的な座標であっても良い。例えば、立体オブジェクトの位置を指定する座標は、立体オブジェクトを構成する辺が集まる頂点の座標であっても良いし、立体オブジェクトの中心や重心の位置の座標であっても良い。なお、ここでは1以上の立体オブジェクトのそれぞれについて、立体オブジェクト位置情報と立体オブジェクトの形状情報とをそれぞれ設けた場合について説明するが、立体オブジェクト位置情報を形状情報内に含めるようにしても良い。例えば、形状情報の頂点の情報を、例えば、絶対座標とすることで、形状情報を立体オブジェクト位置情報として用いて、立体オブジェクトの位置も指定可能となる。この場合、形状情報格納部104と立体オブジェクト位置情報格納部203とを一の格納部により構成するようにしても良い。後述する画像情報構成部106は、例えば、この立体オブジェクト位置情報を読み出して、この立体オブジェクト位置情報が示す仮想三次元空間内の位置に立体オブジェクトを位置した画像情報を構成する。立体オブジェクト位置情報格納部203に格納されている立体オブジェクト位置情報は、例えば、ユーザ等により予め指定されたものであっても良いし、上記実施の形態1のように、立体オブジェクトの形状情報を取得する際に決定されたものであっても良い。立体オブジェクト位置情報格納部203は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
動作定義情報取得部204は、形状情報が示す立体オブジェクトの面に配置される1以上の配置用情報のデータの構造および/または内容に応じた、当該立体オブジェクトの動作を定義する情報である動作定義情報を取得する。例えば、動作定義情報取得部204は、一の形状情報が示す一の立体オブジェクトの面に配置される配置用情報を検出し、当該配置用情報のデータ構造及び/または内容に応じた形状情報を取得する。動作定義情報とは、例えば、立体オブジェクトの操作のために、立体オブジェクトに与えられた指示に応じて、当該立体オブジェクトに対して、どのような動作を行うかを指示する情報である。例えば、動作定義情報は、立体オブジェクトの操作のために立体オブジェクトに対して与えられる指示と、当該指示に応じて立体オブジェクトに対して行われる動作を指示する情報とを組み合わせた情報である。立体オブジェクトの操作のために立体オブジェクトに対して与えられる指示を、ここでは指示操作と呼ぶ。また、立体オブジェクトに対して行われる動作を指示する情報を動作指示情報と呼ぶ。立体オブジェクトに対して与えられる指示操作とは、後述する出力部207から出力された立体オブジェクトの二次元画像上の領域やその近傍等に対する、マウス等の入力デバイスを用いたクリックやドラッグやキーボード等を用いた文字入力等の操作によって入力される指示である。この指示操作は、例えばイベントと考えても良い。立体オブジェクトに対する動作指示情報は、立体オブジェクトに対して出力される、所定の動作を指示する命令の情報と考えても良い。また、立体オブジェクトに対する動作指示情報は、立体オブジェクトの形状情報や立体オブジェクト位置情報の値等を変更する指示であっても良い。動作定義情報は、例えば、イベントとイベントに対応する処理等の組合せである。動作定義情報は、例えば、「onmouseclick="動作A"」(クリックした場合に、立体オブジェクトに動作Aを行わせる)等である。
動作定義情報取得部204が、配置用情報のデータの構造及び/または内容に応じて、どのように立体オブジェクトの動作定義情報を取得するかは問わない。動作定義情報取得部204は、例えば、1以上の動作定義情報が格納されている後述する動作定義情報格納部205から、各立体オブジェクトの面に配置されている配置用情報のデータの構造及び/または内容に応じた動作定義情報を読み出しても良い。また、予め指定されているルール等に応じて、データの構造及び/または内容に応じた立体オブジェクトの動作定義情報を作成しても良い。ここでは、一例として、動作定義情報取得部204は、後述する動作定義情報格納部205から動作定義情報を読み出す場合について説明する。
(1)ここではまず、データの構造に応じた動作定義情報を取得する場合について説明する。データの構造については上記実施の形態1において説明したものと同様である。
例えば、後述する動作定義情報格納部205に、立体オブジェクトの面に配置される配置用情報のデータ構造についての条件を示す情報(以下、データ構造条件と称す)と、動作定義情報とを対応付けて予め格納しておくようにし、動作定義情報取得部204は、一の立体オブジェクトの面に配置される配置用情報が、データ構造条件のいずれかを満たすか否かを判断し、満たすと判断した場合に、当該データ構造条件に対応付けられた動作定義情報を動作定義情報格納部205から検索等により検出し、読み出す。なお、一の立体オブジェクトの面に配置される配置用情報とは、例えば、結果的に一の立体オブジェクトの面に配置される配置用情報であればよく、例えば、形状情報やその識別情報等と対応付けられた配置用情報であっても良い。かかることは以下についても同様である。データ構造条件とは、例えば、一の立体オブジェクトに配置される配置用情報数の条件である。具体的には、後述する動作定義情報格納部205に、データ構造条件である配置用情報数と、動作定義情報とを対応付けて予め格納しておき、一の立体オブジェクトの面に配置される配置用情報数をカウント等により取得し、一のグループを構成する配置用情報数と一致する配置用情報数と対応付けられた動作定義情報を、動作定義情報格納部205から検索等により検出し、読み出す。また、データ構造条件は、一の立体オブジェクトの面に配置された配置用情報に用いられているタグの種類の数であってもよい。なお、データ構造条件については、上記実施の形態1において説明したデータ構造情報と同様である。
また、動作定義情報取得部204は、一の立体オブジェクトに配置される配置用情報の構造に関する値を取得し、この取得した値を、予め用意された動作定義情報を算出するための演算式に代入することで動作定義情報を算出しても良い。具体的には、動作定義情報取得部204は、一の立体オブジェクトに配置される配置用情報数を取得し、この値を、予め用意された動作定義情報を算出するための演算式に代入することで動作定義情報を算出しても良い。例えば動作定義情報が、立体オブジェクトの回転速度と、一の立体オブジェクトに配置される配置用情報数との関係を示す演算式であった場合、配置用情報数をこの演算式に代入することで、立体オブジェクトの回転速度についての動作定義情報を取得することができる。
(2)次に、データの内容に応じた動作定義情報を取得する場合について説明する。なお、データの内容については、上記実施の形態1において説明したデータの内容と同様である。
例えば、後述する動作定義情報格納部205に、立体オブジェクトの面に配置される配置用情報のデータの内容についての条件を示す情報(以下、データ内容条件と称す)と、動作定義情報とを対応付けて予め格納しておくようにし、動作定義情報取得部204は、一の立体オブジェクトに配置される配置用情報のデータの内容が、データ内容条件のいずれかを満たすか否かを判断し、満たすと判断した場合に、当該データ内容条件に対応付けられた動作定義情報を動作定義情報格納部205から検索等により検出し、読み出す。データ内容条件とは、一のグループを構成する配置用情報の一部または全てが、上述したような、所定のデータタイプを含む配置用情報が存在するか否かの条件や、予め指定された文字列を含むテキストデータが存在するか否かの条件等である。具体的には、例えば、後述する動作定義情報格納部205に、画像情報数の下限値を示すデータ内容条件と、動作定義情報とを対応付けて予め格納しておき、動作定義情報取得部204は、一のグループを構成する配置用情報に、下限値以上の数の画像情報が存在するか否かを判断し、存在する場合、当該データ内容条件と対応付けられた動作定義情報を検索等により検出し、読み出す。
動作定義情報取得部204は、一の立体オブジェクトの面に配置される配置用情報に適した立体オブジェクトの動作を定義する動作定義情報を取得する。例えば、一のグループを構成する配置用情報に、所定数以上の画像情報が含まれる場合、画像を配置した立体オブジェクトの動作として適した動作を定義する動作定義情報を取得する。例えば画像を配置した立体オブジェクトに対してクリック等の指示を与えた場合に、当該立体オブジェクトのサイズを大きくする動作定義情報を取得する。これに対し、例えば、所定数以上の画像情報が含まれない場合には、クリック等の指示を与えた場合に、立体オブジェクトを所定の角度回転させる動作定義情報を取得するようにしてもよい。
なお、データの構造および内容により動作定義情報を取得する場合、上述したような配置用情報のデータの構造に応じた動作定義情報であって、なおかつ、配置用情報のデータの内容に応じた動作定義情報を取得するようにすればよい。例えば、一の立体オブジェクトに配置された配置用情報が、対応するデータ構造条件とデータ内容条件とを共に満たす形状情報を取得するようにすればよい。なお、動作定義情報取得部204は、一の立体オブジェクトについて取得した動作定義情報を、当該立体オブジェクトと対応付けて後述する取得動作定義情報格納部206等に蓄積する。なお、取得した動作定義情報を、対応する立体オブジェクトの形状情報と対応付けて、形状情報格納部201等に蓄積しても良い。
動作定義情報取得部204は、通常、MPUやメモリ等から実現され得る。動作定義情報取得部204の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
動作定義情報格納部205には、立体オブジェクトの1以上の動作を定義する情報である動作定義情報が格納され得る。ここでは特に、動作定義情報取得部204が取得した動作定義情報が、上述したデータ構成条件及び/またはデータ内容条件と対応付けられて格納され得る。動作定義情報格納部205において、動作定義情報と、データ構成条件及び/またはデータ内容条件とは、直接対応付けられて格納されていても良いし、間接的に対応付けられて格納されていても良い。間接的に対応付けられているとは、例えば、それぞれに対応する識別情報同士が対応付けられていることや、例えば、それぞれに対応する識別情報同士が対応付けられていることや、一方の情報と他方の情報の識別情報とが対応付けられていること等を意味する。また、動作定義情報と、データ構成条件及び/またはデータ内容条件とは、物理的に同じ記憶媒体に格納されていても良いが、動作定義情報格納部205が物理的に異なる記憶媒体により構成される場合、それぞれの記憶媒体に格納されていても良い。また、例えば、動作定義情報と、データ構成条件及び/またはデータ内容条件とは、動作定義情報と、当該動作定義情報と対応付けられたデータ構成条件及び/またはデータ内容条件との組を、一のレコードの複数の項目として管理する管理情報等を用いて管理されても良い。この管理情報は、例えば動作定義情報格納部205や図示しない格納部等に格納しておくようにすればよい。動作定義情報格納部205は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
取得動作定義情報格納部206には、一の立体オブジェクトについて動作定義情報取得部204が取得した動作定義情報と、当該立体オブジェクトとが対応付けて蓄積され得る。なお、立体オブジェクトは、結果的に動作定義情報と対応付けられて蓄積されれば良く、例えば、立体オブジェクトに対応する形状情報やその識別情報が、動作定義情報と対応付けられている場合や、立体オブジェクトに配置されている配置用情報の少なくとも一つやその識別情報が、動作定義情報と対応付けられている場合等においても、動作定義情報と、当該立体オブジェクトとが対応付けて蓄積されることであるとここでは考える。また、動作定義情報と、立体オブジェクトとは、直接対応付けられて格納されていても良いし、間接的に対応付けられて格納されていても良い。間接的に対応付けられているとは、例えば、それぞれに対応する識別情報同士が対応付けられていることや、例えば、それぞれに対応する識別情報同士が対応付けられていることや、一方の情報と他方の情報の識別情報とが対応付けられていること等を意味する。また、動作定義情報と、立体オブジェクトとは、物理的に同じ記憶媒体に格納されていても良いが、取得動作定義情報格納部206が物理的に異なる記憶媒体により構成される場合、それぞれの記憶媒体に格納されていても良い。また、例えば、動作定義情報と、立体オブジェクトとは、動作定義情報と、当該動作定義情報と対応付けられた立体オブジェクトとの組を、一のレコードの複数の項目として管理する管理情報等を用いて管理されても良い。この管理情報は、例えば動作定義情報格納部205や図示しない格納部等に格納しておくようにすればよい。取得動作定義情報格納部206は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
指示操作受付部207は、形状情報が示す立体オブジェクトに対する動作を指示するための操作である指示操作を受け付ける。指示操作受付部207は、例えば、後述する出力部210が出力する立体オブジェクトの画像上の領域(もしくはその周辺上の領域)に対するキーボードやマウスやタッチパネル等を用いた操作によって発生するイベント等の情報を受け付ける。例えば立体オブジェクト上の情報、例えば立体オブジェクトの画像の輪郭の画素の座標情報や、立体オブジェクト上の全ての画素の座標情報等は、例えば、立体オブジェクトの画像等を形状情報を用いてレンダリングする際等に取得可能である。また、キーボード等で入力された立体オブジェクトに対する指示操作を受けつけても良い。指示操作の対象となる立体オブジェクトの指定はどのように行われても良く、例えば、立体オブジェクトの識別情報等を用いて行われても良いし、立体オブジェクトに対応する形状情報やその識別情報等を用いて行われても良いし、立体オブジェクトに配置される配置用情報やその識別情報の1以上を用いて行われても良い。ここで受ける指示操作とは、上述した動作定義情報に含まれる指示操作と対応する情報である。ここで述べる受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。指示操作の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。指示操作受付部207は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
動作指示情報取得部208は、指示操作受付部207が受け付けた指示操作の指示対象となる立体オブジェクトに対応する動作定義情報を用いて、指示操作受付部207が受け付けた指示操作に対応する動作を指示する情報である動作指示情報を取得する。具体的には、動作定義情報取得部204が、各立体オブジェクトについて取得した動作定義情報のうちの、指示操作の指示対象となる立体オブジェクトと一致する立体オブジェクトと対応付けられた動作定義情報の中から、指示操作に対応する動作指示情報を取得する。例えば、まず、動作指示情報取得部208は、取得動作定義情報格納部206に、立体オブジェクトと対応付けられて格納されている動作定義情報から、指示操作に対応する立体オブジェクトと一致する立体オブジェクトと対応付けられた動作定義情報を取得する。そして、取得した動作定義情報の中から、指示操作に対応した動作指示情報を読み出す。なお、動作指示情報取得部208は、適宜、取得した動作指示情報に、指示操作の指示対象となる立体オブジェクトを動作の対象として指定する情報等を挿入したり付加しても良い。なお、指示操作受付部207が受け付けた指示操作に対応する動作を指示する情報である動作指示情報が取得できない場合には、動作指示情報を取得しないが、このような状況を、動作を行わないという動作指示情報を取得したと考えても良い。動作指示情報取得部208は、通常、MPUやメモリ等から実現され得る。動作指示情報取得部208の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
画像情報構成部209は、立体オブジェクトの形状情報と、当該立体オブジェクトに対応付けられた配置用情報とを読み出し、当該読み出した形状情報が示す立体オブジェクトの1以上の面に対し、対応する配置用情報を配置した画像情報を構成する。
画像情報構成部209は、例えば、立体オブジェクトの面に対応付けられた配置用情報を、立体オブジェクトの面と、配置用情報とを対応付けて管理する管理情報等を用いて検出し、検出した配置用情報を読み出す。あるいは、立体オブジェクトの各面に指定された取得条件情報を用いて、当該取得条件情報が示す条件を満たす配置用情報を、各面に配置される配置用情報として取得しても良い。例えば、立体オブジェクトの面に指定された配置用情報が検索式である場合、当該検索式を用いて検索を行うことで、面に配置する配置用情報を取得しても良い。また、配置用情報が、タグ等の属性を指定する情報、例えばタグを指定する情報である場合、当該配置用情報が指定する属性を有する配置用情報を検索等により取得する。また、配置用情報がグループ化されており、当該グループと各立体オブジェクトの形状情報とが対応付けられている場合、例えば、各形状情報にグループを指定する情報が含まれる場合、画像情報構成部209は、当該立体オブジェクトに対応付けられた配置用情報のグループの中から取得条件情報に合致する配置用情報を取得する。そして、当該読み出した配置用情報を、当該配置用情報が対応する立体オブジェクトの面に配置した画像を、当該立体オブジェクトの形状情報を用いて構成する。
なお、形状情報や、配置用情報や、立体オブジェクト位置情報等を用いて、立体オブジェクトの面に配置用情報が示す文字や画像等の情報を配置して立体オブジェクトの二次元画像を構成する処理は、いわゆるレンダリングと呼ばれる処理であり、3Dソフトウェア等の処理として、公知であるので、ここでは詳細な説明は省略する。なお、形状情報が示す面の形状等にあわせて配置用情報を変形して配置、あるいは変形させずにそのまま配置することも、ここでは、レンダリングと考えても良い。また、画像情報構成部209は、立体オブジェクトの画像を構成する際に、立体オブジェクトが配置されている背景の画像も作成してもよい。
また、画像情報構成部209は、形状情報を読み出した形状情報が示す立体オブジェクトの立体オブジェクト位置情報を、立体オブジェクト位置情報格納部203から読み出し、当該立体オブジェクト位置情報が示す位置に、立体オブジェクトが配置された画像を構成しても良い。また、立体オブジェクト位置情報が方向やサイズを示す情報を含む場合、この方向の情報が示す方向を向いた立体オブジェクトや、このサイズの情報が示すサイズの立体オブジェクトの画像を構成してもよい。
なお、画像情報構成部209は、後述する動作処理部211により、立体オブジェクトのいずれかに対して位置や形状等の変更が行われた場合、例えば、当該変更が行われたことをトリガー等として、画像情報を再度構成することが好ましい。
画像情報構成部209は、通常、MPUやメモリ等から実現され得る。画像情報構成部209の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力部210は、画像情報構成部209が構成した画像情報を出力する。なお、出力部210の構成及び処理等については、上記実施の形態1において説明した出力部107と同様であるので、ここでは、詳細な説明を省略する。
動作処理部211は、動作指示情報取得部208が取得した動作指示情報に応じて、立体オブジェクトを動作させる。動作の対象となる立体オブジェクトは、例えば、指示操作に対応する立体オブジェクトであっても良いし、動作指示情報により予め指定されている立体オブジェクトであっても良い。動作処理部211は、例えば、動作指示情報が命令等である場合、当該命令を実行する。ここで述べる動作とは、例えば、形状情報格納部201に格納されている形状情報のうちの、動作の対象となる立体オブジェクトの形状情報を変更して、立体オブジェクトの立体形状を変更することや、立体オブジェクト位置情報格納部203に格納されている立体オブジェクト位置情報のうちの、動作の対象となる立体オブジェクトの立体オブジェクト位置情報を変更して、立体オブジェクトの位置や向き等を変更することである。なお、ここで述べる立体形状の変更は、立体オブジェクトの透明度や色等の外観、いわゆるアピアランス等を変更することも含むと考えてもよい。動作処理部211は、通常、MPUやメモリ等から実現され得る。動作処理部211の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
次に、情報処理装置2の動作について図14のフローチャートを用いて説明する。
(ステップS201)画像情報構成部209は、カウンターpに1を代入する。
(ステップS202)画像情報構成部209は、形状情報格納部201に格納されている形状情報のうちの、予め、出力対象として指定されている形状情報の中から、p番目の形状情報を読み出す。読み出した形状情報は、図示しない格納部等に一時記憶する。
(ステップS203)画像情報構成部209は、p番目の形状情報に対応付けられた1以上の配置用情報を、配置用情報格納部202から読み出す。読み出した配置用情報は、図示しない格納部等に一時記憶する。
(ステップS204)画像情報構成部209は、p番目の形状情報に対応付けられた立体オブジェクト位置情報を立体オブジェクト位置情報格納部203から読み出す。読み出した立体オブジェクト位置情報は、図示しない格納部等に一時記憶する。
(ステップS205)動作定義情報取得部204は、p番目の形状情報に対応する動作定義情報が取得済であるか否かを判断する。取得済である場合、ステップS212に進み、取得済でない場合、ステップS206に進む。
(ステップS206)動作定義情報取得部204は、カウンターqに1を代入する。
(ステップS207)動作定義情報取得部204は、ステップS203において読み出したp番目の形状情報に対応する1以上の配置用情報が、動作定義情報格納部205に格納されているq番目の動作定義情報に対応付けられた条件、即ちデータ構造条件及び/またはデータ内容条件を満たすか否かを判断する。満たす場合、ステップS208に進み、満たさない場合、ステップS217に進む。
(ステップS208)動作定義情報取得部204は、q番目の動作定義情報を、動作定義情報格納部205から読み出す。
(ステップS209)動作定義情報取得部204は、ステップS208において読み出した動作定義情報を、p番目の形状情報と対応付けて、即ちp番目の立体オブジェクトと対応付けて取得動作定義情報格納部206に蓄積する。
(ステップS210)画像情報構成部209は、カウンターpの値を1インクリメントする。
(ステップS211)画像情報構成部209は、形状情報格納部201に格納されている、予め、出力対象として指定されている形状情報の中に、p番目の形状情報があるか否かを判断する。ある場合、ステップS212に進み、ない場合、ステップS202に戻る。
(ステップS212)画像情報構成部209は、ステップS201からステップS204において取得した形状情報、配置用情報、および立体オブジェクト位置情報等を用いて画像情報を構成する。
(ステップS213)出力部210は、ステップS212において構成された画像情報を出力する。例えばモニタ等に表示する。
(ステップS214)指示操作受付部207は、ステップS202において取得した形状情報が示す1以上の立体オブジェクトに対する指示操作を受け付けたか否かを判断する。受け付けた場合、ステップS215に進み、受け付けていない場合、ステップS214に戻る。
(ステップS215)動作指示情報取得部208は、ステップS214において受け付けた指示操作の指示対象となる立体オブジェクトに対応付けられて取得動作定義情報格納部206に格納された動作定義情報を用いて、ステップS214において受け付けた指示操作に対応する動作指示情報を取得する。
(ステップS216)動作処理部211は、ステップS215において受け付けた動作指示情報に従って情報処理装置1を動作させる。例えば、立体オブジェクトを移動させたり変形させたりする動作を行う。動作の結果により、立体オブジェクトの位置やサイズ等が変更された場合、適宜、動作結果に応じて、形状情報格納部201に格納されている形状情報の値や、配置用情報格納部202に格納され得る配置用情報の値や、立体オブジェクト位置情報の値等を更新する。そして、ステップS201に戻り、変更後の形状情報や、配置用情報や、立体オブジェクト位置情報等に応じて、立体オブジェクトの画像情報等の更新を行う。
なお、一部の立体オブジェクトの形状情報や、配置用情報や、立体オブジェクト位置情報等だけが更新された場合、当該更新された立体オブジェクトの画像情報等だけを部分的に更新した画像情報を構成するようにしても良い。この場合、カウンターpは、更新が行われた立体オブジェクトに対応する形状情報数だけ、カウントを行うようにすればよく、ステップS202等においては、更新が行われた形状情報だけを新たに取得するようにしても良い。
なお、図14のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における情報処理装置2の具体的な動作について説明する。
(具体例3)
まず、形状情報取得部102が、立体オブジェクトに配置される1以上の配置用情報のデータの構造に応じて、立体オブジェクトの動きを変化させる場合を例に挙げて説明する。
ここでは、情報処理装置2により、商品についてのカタログを表示する場合を例に挙げて説明する。なお、ここでは、立体オブジェクトが立方体である場合を例に挙げて説明する。また、ここでは、情報処理装置2が、モニタ上のタッチパネル等で操作可能な携帯型の情報処理端末であるとする。
図15は、形状情報格納部201に格納されている形状情報を管理するための形状情報管理表である。形状情報は、ここでは例として、ユーザ等により予め作成され、蓄積されているものとする。形状情報管理表は、「オブジェクトID」、「サイズx」、「サイズy」、「サイズz」、「対応グループ」という項目を有している。「オブジェクトID」は立体オブジェクトを識別するための識別情報である。「サイズx」は、立体オブジェクトの仮想三次元空間内におけるx軸方向の長さ、すなわち幅である。「サイズy」は、立体オブジェクトの仮想三次元空間内におけるy軸方向の長さ、すなわち高さである。「サイズz」は、立体オブジェクトの仮想三次元空間内におけるz軸方向の長さ、すなわち奥行きである。なお、各サイズの単位等は、ピクセル等どのような単位であっても良い。「対応グループ」は、各レコードの形状情報が対応している配置用情報のグループを指定するための情報である。例えば、「商品名"洗濯機"」は、要素が「洗濯機」である商品名タグを有する配置用情報のグループを指定する情報である。配置用情報がグループ化されていない場合や、形状情報に対応する配置用情報のグループを指定する必要がない場合、例えば、立体オブジェクトの各面に配置される配置用情報が、各面に個別に指定されている場合等には、この属性は省略しても良い。
なお、ここでは説明を省略しているが、上述した形状情報には、立体オブジェクトの各面を定義する情報と、各面の識別情報とが含まれているものとする。各面を定義する情報とは、例えば、座標を用いて面を定義する情報である。ここでは、立体オブジェクトが直方体であるため、各面は、例えば、立体オブジェクトの頂点の座標等を用いて定義されている。ただし、立体オブジェクトを構成する各面の中心の座標等を指定する情報であっても良い。
図16は、立体オブジェクトの各面の識別情報を説明するための模式図である。各面の識別情報は、定義する情報で定義された面を識別可能な情報であればよく、ここでは、図4に示すように、各立体オブジェクトについて、各面に「X1面」、「X2面」、「Y1面」、「Y2面」、「Z1面」、「Z2面」という名称が与えられているものとする。
なお、ここでの上記各面を定義するために用いられる座標は、例えば、立体オブジェクト内に設定される座標軸を用いて表される座標であるとする。このため、立体オブジェクトの向き等が変更されても、各面を定義する情報等は変化しない。つまり、X1面、X2面、Y1面、Y2面、Z1面、Z2面は、立体オブジェクトに対して、予め固定されている面と考えて良い。
図17は、形状情報が示す各面と対応付けられた取得条件情報を管理する取得条件情報管理表を示す図である。取得条件情報管理表は、ここでは例として、ユーザ等により予め作成され、例えば、形状情報格納部201等に蓄積されているものとする。取得条件情報管理表は、「X1面」、「X2面」、「Y1面」、「Y2面」、「Z1面」、「Z2面」という項目を有している。「X1面」、「X2面」、「Y1面」、「Y2面」、「Z1面」、「Z2面」は、それぞれ、上述した立体オブジェクトのX1面、X2面、Y1面、Y2面、Z1面、Z2面にそれぞれ配置される配置用情報を指定するための取得条件情報である。取得条件情報は、ここでは、例として、各面に配置される配置用情報のタグを指定する情報であるとする。例えば、「仕様」は、通常「<仕様>」と表示される仕様タグが付加された配置用情報を指定する取得条件情報である。また、「商品名,色」は、商品名タグと、色タグとが付加された配置用情報の両方を指定する取得条件情報である。なお、「−」は、取得条件情報がないことを示す。なお、ここでは、形状情報が示す全ての立体オブジェクトが立方体であるため、全ての立体オブジェクトを構成する面についての取得条件情報を、一のレコードの取得条件情報で定義している。ただし、各立体オブジェクト別や立体オブジェクトのグループ別等に取得条件情報を設定するようにしても良く、この場合、取得条件情報のレコードに対して、当該取得条件情報を適用する立体オブジェクト、あるいは立体オブジェクトのグループを指定するための属性、例えば上述した「オブジェクトID」等の属性を付加するようにすればよい。
図18は、立体オブジェクト位置情報格納部203に格納されている立体オブジェクト位置情報を管理するための立体オブジェクト位置情報管理表である。立体オブジェクト位置情報は、ここでは例として、ユーザ等により予め作成され、蓄積されているものとする。立体オブジェクト位置情報管理表の各項目については、図6等と同様であるので、ここでは詳細な説明は省略する。なお、立体オブジェクトだけの画像情報をレンダリング等により作成した後、背景画像とこの立体オブジェクトの画像とを合成して最終的な画像情報を取得する場合、立体オブジェクト位置情報は、立体オブジェクトの二次元の画像が配置される位置を示すための、背景画像上等における座標を示す情報であっても良い。この場合、立体オブジェクト位置情報は、例えば、二次元の座標情報であればよい。
図19は、配置用情報格納部202に格納されている配置用情報を示す図である。ここでは、例として配置用情報がXML形式のデータを構成している場合について説明する。ただし、配置用情報は、XML形式のデータでなくても良く、例えば、データを項目や属性別等に参照可能な形式のデータであれば良い。図19に示したXML形式のデータにおいて、各配置用情報は、タグ付けられたデータ、すなわち開始タグと終了タグとで囲まれたデータであるとする。配置用情報ここでは例として、ユーザ等により予め作成され、蓄積されているものとする。また、ここでは、配置用情報が商品別にグループ化されているものとする。すなわち、一対の商品タグ、すなわち「<商品>」と「</商品>」とで区切られた範囲のタグ付けられたデータが一の商品の配置用情報であるとする。なお、配置用情報として、ファイル等を指定する情報、例えばリンク情報が含まれる場合、これにより指定されたファイルの情報が配置用情報として画像情報構成部209により取得されるものとする。
図20は、動作定義情報格納部205に格納されている動作定義情報と、動作定義情報と対応付けられたデータ構造条件とを管理するための動作定義情報管理表である。動作定義情報管理表は、「動作定義」、および「タグ数」という項目を有している。「動作定義」は、動作定義情報である。動作定義情報は、1以上の動作指示情報により構成されており、例えば、「mouseclicked オブジェクト名.scale(150%)」は、マウスをクリックした場合に、「オブジェクト名」という名前のオブジェクトを、「150%のサイズに拡大する」動作指示情報であるとする。また、「mouseclicked オブジェクト名.rotate(90°)」は、マウスをクリックした場合に、「オブジェクト名」という名前のオブジェクトを、「90度回転させる」動作指示情報であるとする。「;」は、動作定義情報を構成する動作指示情報の区切を示す文字である。なお、動作定義情報(動作指示情報)の「オブジェクト名」の位置には、予め指定されたオブジェクト名が配置されていても良いし、例えば、動作定義情報取得部204が、当該動作定義情報を取得する際に、当該動作定義情報を取得する際に用いられた立体オブジェクトのオブジェクト名等で置き換えられるようにしても良い。なお、ここで用いられている動作定義情報は、あくまでも説明のためのものであり、実際のプログラム言語等で利用されているものではない。「タグ数」は、データ構造条件を示す情報であり、ここでは、図4と同様に、一のグループを構成する配置用情報に含まれるタグ付けられた配置用情報のデータ数の条件を示している。
まず、例えば、ユーザが、情報処理装置2に対して、商品についてのカタログを表示する指示を与えたとすると、情報処理装置2の画像情報構成部209は、まず、図15に示した「オブジェクトID」が「OBJ001」である形状情報を読み出し、メモリ等に一時記憶する。
次に、画像情報構成部106が、読み出した形状情報が示す立体オブジェクト、すなわち「オブジェクトID」が「OBJ001」である立体オブジェクト(以下、立体オブジェクト「OBJ001」と称す)を構成する面に配置する配置領域情報を、以下のように、取得条件情報を用いて取得する。
まず、立体オブジェクト「OBJ1」を構成する各面の取得条件情報を、図17に示した取得条件情報管理表から読み出す。そして、図7に示した配置用情報のうちの、図15に示した形状情報管理表の、立体オブジェクト「OBJ001」の「対応グループ」属性の値により指定される配置用情報のグループの中から、各面の取得条件情報に合致する配置用情報を順次読み出す。
具体的には、図15の形状情報管理表から、立体オブジェクト「OBJ001」の「対応グループ」属性の値である「商品名"洗濯機"」を読み出す。この値は、立体オブジェクト「OBJ001」に対応した配置用情報のグループは、商品名タグの要素が「洗濯機」である配置用情報を含むグループであることを意味する。つぎに、図17に示した取得条件情報は、全ての立体オブジェクトに共通の取得条件情報であるため、まず、図17の「X1面」の取得条件情報である「価格」を読み出す。そして、図19に示した配置用情報のうちの、要素が「洗濯機」である商品名タグを含む配置用情報のグループの中から、「価格タグ」が付けられた情報(要素)を読み出す。ここでは、要素が「洗濯機」である商品名タグを含む配置用情報のグループは、図19における一つめの商品タグにより囲まれた範囲内のタグ付けされた情報であるため、この商品タグに囲まれた範囲から、価格タグが付けられた「15万円」というテキスト情報である配置用情報を読み出す。そして、読み出した情報を、立体オブジェクト「OBJ001」の「X1面」に対応付けて、図示しない記憶媒体等に一時記憶する。
同様にして、立体オブジェクト「OBJ001」を構成する他の面についても配置用情報を取得する。例えば、Z1面については、商品名タグが付けられた「洗濯機」というテキスト情報と、「色」タグが付けられた「洗濯機赤.gif」、「洗濯機白.gif」、「洗濯機黒.gif」という画像情報が配置用情報として取得される。また、Z2面については、「○×電気」というテキスト情報が取得される。なお、これらの取得した配置用情報とともに、配置用情報のタグの名称のテキスト情報、例えば、「商品名」、「仕様」、「色」、「価格」等を取得して、取得した配置用情報とともに蓄積するように設定しても良い。また、取得条件情報がない面については、配置用情報を取得する処理は行わない。
そして、全ての面についての配置用情報を取得する処理が終わると、画像情報構成部209は、図18に示した立体オブジェクト位置情報管理表から、立体オブジェクト「OBJ001」に対応した立体オブジェクト位置情報を読み出す。具体的には、「オブジェクトID」が「OBJ001」であるレコードの「座標(x,y,z)」の値である「(100,300,100)」、および「回転角度(x,y,z)」の値である「(0,0,0)」を読み出す。そして、画像情報構成部106は、立体オブジェクト「OBJ001」の形状情報を用いて立体オブジェクト「OBJ001」の画像情報を構成する。このとき、立体オブジェクト「OBJ001」の位置と向きは、オブジェクト配置情報管理表から読み出したオブジェクト配置情報が示す位置と向きになるように設定する。また、立体オブジェクト「OBJ001」の各面には、当該各面に指定された取得条件情報を用いて画像情報構成部209が取得した配置用情報が配置される。なお、ここでは、立体オブジェクトの投影図が構成されるように、座標軸が設定されているものとする。
次に、動作定義情報取得部204は、各形状情報に対応して取得された配置用情報を用いて、図20に示した動作定義情報管理表から各形状情報に対応した動作定義情報を取得する。具体的には、図20に示した動作定義情報管理表の各レコードから、データ構造条件である「タグ数」の値を取得する。そして、各形状情報に対応して取得された配置用情報に含まれるタグ数をカウントし、カウントの結果得られたタグ数が、データ構造条件を満たすか否かを判断する。例えば、図19に示した配置用情報のうちの、「オブジェクトID」が「OBJ001」である形状情報に配置される、要素が「洗濯機」である商品名タグを含む商品タグ内に含まれる配置用情報のタグ数は、「9」であるため、動作定義情報管理表の一番目のレコードの「タグ数」が示すデータ構造条件である「8以上」という条件を満たすと判断される。このため、「オブジェクトID」が「OBJ001」である形状情報に対応する動作定義情報として、図20に示した動作定義情報管理表の一番目のレコードの「動作定義」の値である「mouseclicked オブジェクト名.scale(150%);mouseover…」が取得される。そして、この動作定義情報の「オブジェクト名」の部分を、「オブジェクトID」の値である「OBJ001」で置き換えて、「mouseclicked OBJ001.scale(150%);mouseover…」という動作定義情報が取得される。そして、取得された動作定義情報が、形状情報と対応付けられて取得動作定義情報格納部206に蓄積される。ここでは、例として、取得動作定義情報がオブジェクト名と対応付けられて蓄積される。
また、同様に、他の形状情報についても、同様に動作定義情報を取得する処理が行われる。例えば、図19に示した配置用情報のうちの、「オブジェクトID」が「OBJ002」である形状情報に配置される、要素が「アイロン」である商品名タグを含む商品タグ内に含まれる配置用情報のタグ数は、「7」であるため、動作定義情報管理表の1番目のレコードの「タグ数」が示すデータ構造条件である「8以上」という条件を満たさないと判断される。このため、2番目のレコードのデータ構造条件を満たすか否かを判断する。動作定義情報管理表の2番目のレコードの「タグ数」が示すデータ構造条件は「4〜7」であるため、この条件を満たすと判断される。このため、「オブジェクトID」が「OBJ002」である形状情報に対応する動作定義情報として、図20に示した動作定義情報管理表の一番目のレコードの「動作定義」の値である「mouseclicked オブジェクト名.rotate(90°);mouseover…」が取得される。そして、この動作定義情報の「オブジェクト名」の部分を、「オブジェクトID」の値である「OBJ002」で置き換えて、「mouseclicked OBJ002.rotate(90°);mouseover…」という動作定義情報が取得される。そして、取得された動作定義情報が、形状情報と対応付けられて取得動作定義情報格納部206に蓄積される。ここでは、例として、取得動作定義情報がオブジェクト名と対応付けられて蓄積される。
図21は、取得動作定義情報格納部206に格納された、動作定義情報取得部204が取得した動作定義情報を管理する取得動作定義情報管理表である。取得動作定義情報管理表は、「動作定義」と「オブジェクトID」という項目を有している。なお、「動作定義」は、図20の「動作定義」と同様であり、「オブジェクトID」は、図15の「オブジェクトID」と同様である。
次に、画像情報構成部209は、上述したように形状情報格納部201から読み出した出力の対象となる各形状情報に、配置用情報格納部202から読み出した各立体オブジェクトに対応する配置用情報を配置して立体オブジェクトのレンダリングを行う。このとき、各形状情報が示す立体オブジェクトの位置や向き画像、立体オブジェクト位置情報格納部203から読み出した、各形状情報に対応する立体オブジェクト位置情報が示す位置や向きとなるようにレンダリングを行う。なお、立体オブジェクトのレンダリング処理等は、公知技術であるので、ここでは説明を省略する。
次に、出力部210が、画像情報構成部209が合成した画像情報を出力する。ここでは、出力部210は、モニタ500を有しており、当該モニタ500に立体オブジェクトの画像情報を表示する。図22に表示例を示す。図22において、立体オブジェクト501は立体オブジェクト「OBJ001」、立体オブジェクト502は、立体オブジェクト「OBJ002」、立体オブジェクト503は、立体オブジェクト「OBJ003」であるとする。なお、本実施の形態において座標の値や図に示される立体オブジェクトの位置等については、説明のためのものであり、実際のサイズ等に合わせて正確に描かれたものではない。
次に、ユーザが、図23に示すように、タッチパネルを操作して、立体オブジェクト502上の領域をタップしたとすると、指示操作受付部207は、「立体オブジェクトID」が「OBJ002」である立体オブジェクト502に対して、「mouseclicked」という指示操作を受け付ける。なお、各立体オブジェクトの画像上の領域を示す情報、例えば輪郭等を示す情報を、形状情報のレンダリング結果等から取得し、この領域を各立体オブジェクトに対する指示操作を受け付ける領域とする処理については、公知技術であるので説明は省略する。
指示操作受付部207が、指示操作を受け付けると、動作指示情報取得部208は、受け付けた指示操作に対応した動作指示情報を取得する。具体的には、指示操作受付部207が受け付けた指示操作に対応した動作指示情報を、当該指示を受け付けた領域に対応する立体オブジェクト「OBJ002」に対応付けられて取得動作定義情報で管理されている動作定義情報である「動作定義」の中から、指示操作「mouseclicked」に対応する動作指示情報、即ち「mouseclicked」という文字列を含む動作指示情報を取得する。図21に示すように、「オブジェクトID」が「OBJ002」である立体オブジェクトと同じレコードに含まれる「動作定義」には、「mouseclicked」を含む動作指示情報「mouseclicked OBJ002.rotate(90°)」が含まれるため、この動作指示情報を動作指示情報取得部208が読み出す。なお、指示操作に対応する動作指示情報が「OBJ002」に対応する取得動作定義情報内に存在しない場合、予めデフォルト等で図示しない記憶媒体等に格納されている、全ての立体オブジェクトに共通して利用される動作定義情報から「mouseclicked」を含む動作指示情報を取得するようにしてもよい。
動作処理部211は、動作指示情報取得部208が取得した動作指示情報に従って処理を行う。ここでは、動作指示情報に従って、立体オブジェクトを動作させる。具体的には、動作指示情報取得部208が取得した動作指示情報「mouseclicked OBJ002.rotate(90°)」に従って、「オブジェクトID」が「OBJ002」である立体オブジェクトを右方向に90°回転させるよう、「オブジェクトID」が「OBJ002」である立体オブジェクトに対応する立体オブジェクト位置情報を変更する。例えば、図18に示した立体オブジェクト位置情報管理表の「オブジェクトID」が「OBJ002」であるレコードの「回転角度(x,y,z)」の値を、(0,90°,0)に変更する。
そして、画像情報構成部209が上記と同様に変更後の立体オブジェクト位置情報を用いて画像情報を構成し、構成した画像情報を出力部210が出力する。出力部210の出力例を図24に示す。
さらに、ユーザが、タッチパネルを操作して、立体オブジェクト501上の領域をタップしたとすると、指示操作受付部207は、「立体オブジェクトID」が「OBJ001」である立体オブジェクト502に対して、「mouseclicked」という指示操作を受け付ける。
動作指示情報取得部208は、指示を受け付けた領域に対応する立体オブジェクト「OBJ001」に対応付けられて取得動作定義情報で管理されている「動作定義」の中から、「mouseclicked」という文字列を含む動作指示情報を取得する。図21に示すように、「オブジェクトID」が「OBJ001」である立体オブジェクトと同じレコードに含まれる「動作定義」には、「mouseclicked」を含む動作指示情報「mouseclicked OBJ001.scale(150%)」が含まれるため、この動作指示情報を動作指示情報取得部208が読み出す。
動作処理部211は、動作指示情報取得部208が取得した動作指示情報「mouseclicked OBJ001.scale(150%)」に従って、「オブジェクトID」が「OBJ001」である立体オブジェクトの大きさを現在のサイズの150%に変更させるよう、「オブジェクトID」が「OBJ001」である立体オブジェクトの形状情報を変更する。例えば、図15に示した立体オブジェクト位置情報管理表の「オブジェクトID」が「OBJ001」であるレコードの「サイズx」、「サイズy」、「サイズz」の値を、それぞれ150%の値に変更した値である「150」に変更する。
そして、画像情報構成部209が上記と同様に変更後の形状情報を用いて画像情報を構成し、構成した画像情報を出力部210が出力する。出力部210の出力例を図25に示す。
このように、この具体例においては、立体オブジェクトに配置される配置用情報のデータ構造に応じて、一の指示操作に対して立体オブジェクトに異なる動作を行わせることが可能となる。このため、例えば立体オブジェクトに、当該立体オブジェクトに配置される配置用情報のデータ構造に適した動作を行わせることが可能となる。
(具体例4)
次に、形状情報取得部102が、立体オブジェクトに配置される配置用情報のデータの内容に応じて、立体オブジェクトを動作させる場合を例に挙げて説明する。
この具体例は、上述した具体例において、図20に示した動作定義情報管理表のようなデータ構造条件と対応付けられた動作定義情報を用いる代わりに、以下の図26に示すようなデータ内容条件と対応付けられた動作定義情報を用いて、動作定義情報取得部204が動作定義情報を取得するようにしたものである。また、図19に示すような配置用情報の代わりに、図26に示すような配置用情報を用いるものとする。その他の配置用情報等については、上記具体例と同様であるとする。
図27は、動作定義情報格納部205に格納されている動作定義情報と、動作定義情報と対応付けられたデータ構造条件とを管理するための動作定義情報管理表である。動作定義情報管理表は、「動作定義」、および「データタイプ」という項目を有している。「動作定義」は、図20に示した動作定義情報と同様の動作定義情報である。「データタイプ」は、動作定義情報に対応付けられたデータ内容条件を示す情報であり、ここでは特に、一のグループを構成する配置用情報に少なくとも一つ含まれるデータタイプの条件を示している。ここで述べるデータタイプとは、テキスト情報と、画像情報との二つのタイプであるとする。なお、ここでは、例えば「データタイプ」の値が「テキスト情報」であれば、一のグループを構成する配置用情報の全てがテキスト情報である場合に、このデータ構造条件を満たすこととなる。また、「データタイプ」の値が「画像情報」であれば、一のグループを構成する配置用情報の少なくとも1以上がテキスト情報である場合に、このデータ構造条件を満たすこととなる。
まず、例えば、ユーザが、情報処理装置2に対して、商品についてのカタログを表示する指示を与えたとすると、画像情報構成部209は、形状情報格納部201に格納されている各立体オブジェクトの形状情報を読み出し、形状情報に対応した配置用情報と、立体オブジェクト位置情報とを読み出す。そして、立体オブジェクトの画像情報を構成し、構成された画像情報を出力部210が出力する。なお、これらの処理は上記具体例3と同様であるので詳細な説明は省略する。
また、動作定義情報取得部204は、各形状情報に対応して取得された配置用情報を用いて、図27に示した動作定義情報管理表から各形状情報に対応した動作定義情報を取得する。具体的には、図27に示した動作定義情報管理表の各レコードから、データ内容条件である「データタイプ」の値を取得する。そして、各形状情報に対応して取得された配置用情報のデータタイプの情報を取得し、取得したデータタイプの情報が、データ内容条件を満たすか否かを判断する。例えば、図26に示した配置用情報のうちの、「オブジェクトID」が「OBJ001」である形状情報に配置される、要素が「洗濯機」である商品名タグを含む商品タグ内に含まれる配置用情報のうちの「洗濯機赤.gif」等は、拡張子が、画像情報の一つであるGIF形式の拡張子であるため、1以上の画像情報が含まれると判断される。このため、図27に示した動作定義情報管理表の1番目のレコードの「データタイプ」が示す「画像情報」という条件を満たすと判断される。このため、「オブジェクトID」が「OBJ001」である形状情報に対応する動作定義情報として、図27に示した動作定義情報管理表の1番目のレコードの「動作定義」の値である「mouseclicked オブジェクト名.scale(150%);mouseover…」が取得される。そして、この動作定義情報の「オブジェクト名」の部分を、「オブジェクトID」の値である「OBJ001」で置き換えて、「mouseclicked OBJ001.scale(150%);mouseover…」という動作定義情報が取得される。そして、取得された動作定義情報が、形状情報と対応付けられて取得動作定義情報格納部206に蓄積される。ここでは、例として、取得動作定義情報がオブジェクト名と対応付けられて蓄積される。
また、同様に、他の形状情報についても、同様に動作定義情報を取得する処理が行われる。例えば、図26に示した配置用情報のうちの、「オブジェクトID」が「OBJ002」である形状情報に配置される、要素が「アイロン」である商品名タグを含む商品タグ内に含まれる配置用情報には、画像情報が含まれないため、全てがテキスト情報であると判断される。このため、図27に示した動作定義情報管理表の2番目のレコードの「データタイプ」が示す「テキスト情報」という条件を満たすと判断される。このため、「オブジェクトID」が「OBJ002」である形状情報に対応する動作定義情報として、図27に示した動作定義情報管理表の2番目のレコードの「動作定義」の値である「mouseclicked オブジェクト名.rotate(90°);mouseover…」が取得される。そして、この動作定義情報の「オブジェクト名」の部分を、「オブジェクトID」の値である「OBJ002」で置き換えて、「mouseclicked OBJ001.rotate(90°);mouseover…」という動作定義情報が取得さ
れる。そして、取得された動作定義情報が、形状情報と対応付けられて取得動作定義情報格納部206に蓄積される。ここでは、例として、取得動作定義情報がオブジェクト名と対応付けられて蓄積される。
動作定義情報取得部204で取得され、取得動作定義情報格納部206に形状情報と対応付けられて格納される動作定義情報については、図21と同様であるのでここでは説明を省略する。また、出力部210が出力した画像情報に対してユーザに行われた操作に応じて、立体オブジェクトに行われる処理等については、図24や図25等に示した上記具体例3と同様であるので、ここでは説明を省略する。ただし、立体オブジェクト502の面に配置されている配置用情報は、画像情報を含まないものである点で上記具体例3等とは異なる。
このように、この具体例4においては、立体オブジェクトに配置される配置用情報のデータ内容に応じて、一の指示操作に対して立体オブジェクトに異なる動作を行わせることが可能となる。このため、例えば立体オブジェクトに、当該立体オブジェクトに配置される配置用情報のデータ構造に適した動作を行わせることが可能となる。例えば、この具体例においては画像情報が配置された立体オブジェクト501については、上記具体例4と同様に、ユーザによる立体オブジェクトの画像をタップする指示に応じて、立体オブジェクトが拡大表示されて、画像の詳細を見ることが可能となる。一方で、画像情報が含まれない立体オブジェクト502については、ユーザによる立体オブジェクトの画像をタップする指示に応じて、現在の正面に配置されたテキスト情報以外の、他の面に配置されたテキスト情報を見ることができるように、立体オブジェクトを回転させて表示することが可能となる。
なお、上記具体例においては、動作定義情報取得部204が、データ構造条件またはデータ内容条件を用いて、立体オブジェクトの動作定義情報を取得する場合について説明したが、本実施の形態においては、一の動作定義情報と、データ構造条件と、データ内容条件とを対応付けておくようにし、一の立体オブジェクトに配置される配置用情報が、一の動作定義情報と対応付けられたデータ構造条件およびデータ内容条件をともに満たす場合に、動作定義情報取得部204が、当該組合せに対応付けられた動作定義情報を取得するようにしても良い。
以上のように、本実施の形態によれば、立体オブジェクトの面に配置される配置用情報のデータ構造及び/またはデータ内容に応じて、当該立体オブジェクトを動作させるようにしたので、配置用情報のデータ構造やデータ内容に適した動作を立体オブジェクトに行わせることができる。
なお、本実施の形態の情報処理装置2は、多面的に定義され得る情報を出力可能な、新しいユーザインターフェースのモデルや、新しいファイルシステム、新しいウィンドウシステムとして利用可能である。例えば、情報処理装置2で出力された立体オブジェクトの画像等を、他の処理を行うための指示等を受け付けるための入力インターフェースの画像等として用いるようにしてもよい。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段(情報送信部など)は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりする情報や、各構成要素が処理で用いるしきい値や数式、アドレス等の情報等は、上記説明で明記していない場合であっても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。
また、上記各実施の形態では、情報処理装置がスタンドアロンである場合について説明したが、情報処理装置は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や受付部は、通信回線を介して入力を受け付けたり、画面を出力したりすることになる。
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。
なお、上記各実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、立体オブジェクトを構成する1以上の面に配置可能な情報であって、グループ化された1以上の情報である配置用情報が格納され得る配置用情報格納部に格納されている配置用情報で構成されるグループについて、当該グループを構成する配置用情報のデータの構造及び/または内容に応じた立体形状を有する立体オブジェクトの形状を指定する情報である形状情報を取得する形状情報取得部と、前記形状情報取得部が取得した形状情報が、当該形状情報に対応する前記配置用情報のグループと対応付けられて格納され得る形状情報格納部に格納されている立体オブジェクトの形状情報と、当該立体オブジェクトに対応付けられたグループを構成する前記配置用情報とを読み出し、当該読み出した形状情報が示す立体オブジェクトの1以上の面に対し、読み出した配置用情報を配置した画像情報を構成する画像情報構成部と、前記画像情報構成部が構成した画像情報を出力する出力部として機能させるためのプログラムである。
また、このプログラムは、コンピュータを、立体オブジェクトの形状を指定する情報である形状情報が格納され得る形状情報格納部に格納されている形状情報が示す立体オブジェクトの面に配置される、立体オブジェクトを構成する1以上の面に配置可能な1以上の情報である配置用情報が格納され得る配置用情報格納部に格納されている1以上の配置用情報のデータの構造および/または内容に応じた、当該立体オブジェクトの1以上の動作を定義する情報である動作定義情報を取得する動作定義情報取得部と、前記形状情報が示す立体オブジェクトに対する動作を指示するための操作である指示操作を受け付ける指示操作受付部と、前記指示操作受付部が受け付けた指示操作の指示対象となる立体オブジェクトに対応する前記動作定義情報を用いて、前記指示操作受付部が受け付けた指示操作に対応する動作を指示する情報である動作指示情報を取得する動作指示情報取得部と、前記動作指示情報に応じて、立体オブジェクトを動作させる動作処理部と、前記形状情報格納部に格納されている立体オブジェクトの形状情報と、前記配置用情報格納部に格納されている当該立体オブジェクトに対応付けられた配置用情報とを読み出し、当該読み出した形状情報が示す立体オブジェクトの1以上の面に対し、対応する配置用情報を配置した画像情報を構成する画像情報構成部と、前記画像情報構成部が構成した画像情報を出力する出力部として機能させるためのプログラムである。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図28は、上記プログラムを実行して、上記実施の形態による情報処理装置を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図28において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905、FD(Floppy(登録商標) Disk)ドライブ906を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図29は、コンピュータシステム900の内部構成を示す図である。図29において、コンピュータ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がどのように動作するのかについては周知であり、詳細な説明は省略する。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。