以下、情報処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態)
図1は、本実施の形態における情報処理装置1のブロック図である。
情報処理装置1は、形状情報格納部101、オブジェクト配置情報格納部102、配置用情報格納部103、操作受付部104、オブジェクト更新部105、演算部106、画像情報構成部107、および出力部108を備えている。
形状情報格納部101は、1以上の立体オブジェクトの形状を指定する情報である形状情報が格納され得る。形状情報とは、具体的には、仮想三次元空間内に配置されるオブジェクトの形状等を定義する情報である。形状情報は、例えば、立体オブジェクトのいわゆるモデリング情報である。ここで述べる立体オブジェクトは、例えば3Dオブジェクトや3Dモデルや立体モデルと呼ばれるものも含む。形状情報は、立体オブジェクトの頂点の座標の情報や、境界線や面等を表現する方程式のパラメータの情報等である。立体オブジェクトは、通常、面を定義する情報、あるいは面を定義可能な情報を有しており、1以上の面により構成されている。立体オブジェクトは、例えば、面の構成方法によって、ポリゴンモデリングや、自由曲面を利用したモデリング等に分類できる。形状情報には、立体オブジェクトを出力する際の、立体オブジェクトの色や、透明度、反射、屈折率、バンプなどの設定項目の情報を含んでも良い。形状情報は、大きさや形状や色や透明度等が経時的に変化する動きのある立体オブジェクトの形状情報であっても良い。立体オブジェクトの形状情報は、どのような形式の情報であっても良い。例えば、形状情報は、FLASH(登録商標)形式のファイルであっても良い。形状情報格納部101には、1以上の立体オブジェクトの形状情報が格納され得る。立体オブジェクトの形状は、球、円柱、六面体や八面対等の多面体や、立方体、円錐、角錐等、どのような形状であっても良い。なお、2以上の立体オブジェクトは、同じ形状および大きさであることが好ましい。形状情報のサイズ等の単位等は、絶対的な単位であっても、相対的な単位であっても良い。また、複数の立体オブジェクトにおいて、共用可能な形状情報等は、リンク情報等を用いて参照することで、相互利用できるようにしても良い。すなわち、2以上の立体オブジェクトの形状情報は、2以上の立体オブジェクトにおいて共用される1の形状情報であってもよい。つまり、2以上の立体オブジェクトの形状情報は、2以上の立体オブジェクトに対応する形状情報と考えても良い。なお、形状情報格納部101には、グループ化された1以上の立体オブジェクトを内部に配置するための立体オブジェクトの形状を示す形状情報が予め格納されているようにしても良い。ここでは、このようなグループ化された1以上の立体オブジェクトを内部に配置するための立体オブジェクトを、グループ用立体オブジェクトと呼ぶ。また、このようなグループ化された1以上の立体オブジェクトを内部に配置するための立体オブジェクトの形状情報は、適宜、図示しない形状情報構成部等で構成されて、形状情報格納部101に格納されるようにしても良い。形状情報格納部101は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
オブジェクト配置情報格納部102は、1以上の立体オブジェクトの配置を指定する情報であるオブジェクト配置情報が格納され得る。ここで述べる1以上の立体オブジェクトは、形状情報格納部101に格納されている形状情報が示す立体オブジェクトである。オブジェクト配置情報は、立体オブジェクトの形状情報の配置を指定する情報と考えても良い。ここで述べる配置とは、例えば、仮想三次元空間内における配置である。ただし、立体オブジェクトを用いて構成された二次元の画像が配置される位置を示す二次元の座標情報等の位置の情報であっても良い。この配置は、例えば、立体オブジェクトの位置と方向との組み合わせを有する概念である。ただし、配置や、位置または方向のいずれか一方であっても良い。オブジェクト配置情報は、立体オブジェクトの配置を結果的に指定可能な情報であればよく、例えば、立体オブジェクトが配置される位置の座標や、立体オブジェクトの方向を指定する情報である。方向を指定する情報は、例えば、ベクトル情報や、仮想三次元空間内における所定の軸を回転軸とした回転角度等の情報である。あるいは、仮想三次元空間内における座標軸と、立体オブジェクトに設定される座標軸との位置関係を示す情報と考えても良い。例えば、仮想三次元空間内における座標軸を基準として、立体オブジェクトに設定される各座標軸をベクトルで表した情報であっても良い。また、オブジェクト配置情報は、立体オブジェクトの大きさ等を指定する情報であっても良い。立体オブジェクトの位置を指定する座標は、仮想三次元空間内に設定された絶対的な座標であっても良いし、他の立体オブジェクト等に対して設定された相対的な座標であっても良い。また、立体オブジェクトの位置を指定する座標は、立体オブジェクトを構成する辺等が集まる頂点の座標であっても良いし、立体オブジェクトの中心等の位置の座標であっても良い。なお、後述する画像情報構成部107は、このオブジェクト配置情報を読み出して、このオブジェクト配置情報が示す仮想三次元空間内の位置に、このオブジェクト配置情報が示す向きとなるよう立体オブジェクトを配置した画像情報を構成するようにする。オブジェクト配置情報は、経時的に立体オブジェクトの配置が変化する動画像用のオブジェクト配置情報であっても良い。例えば、オブジェクト配置情報が複数フレームの情報を有し、フレーム毎に、立体オブジェクトの配置が指定されていても良い。なお、ここではオブジェクト配置情報と立体オブジェクトの形状情報とをそれぞれ設けた場合について説明するが、形状情報格納部101とオブジェクト配置情報格納部102とを一の格納部で構成するとともに、オブジェクト配置情報を形状情報内に含めるようにしても良い。例えば、形状情報の頂点の情報を、例えば、絶対座標とすることで、形状情報をオブジェクト配置情報として用いて、立体オブジェクトの配置も指定可能となる。なお、各立体オブジェクトを用いてレンダリングにより作成された二次元の画像を、二次元の背景画像上等に配置して最終的な出力画像を作成する場合等においては、オブジェクトの配置される位置の情報は、二次元の情報、例えばxy座標等の座標情報であってもよい。
また、オブジェクト配置情報は、複数の立体オブジェクト同士がグループ化されているか否か等のグループ化の状況を管理する情報を有していても良い。グループ化の状況を管理する情報は、例えば、一のグループを構成する立体オブジェクトに、属するグループを識別するためのグループ識別情報を対応付けることや、同じグループに含まれる立体オブジェクトの識別情報を一のレコードの複数の項目で管理するデータベース等であっても良い。
なお、本実施の形態におけるグループとは、必ずしも上述したようにグループ化状況を管理する情報で管理される立体オブジェクトのグループのみに限るものではなく、結果として、1以上の立体オブジェクトをグループとして,例えば後述するオブジェクト更新部105等が判断可能な状態であればよい。例えば、立体オブジェクトのグループは、立体オブジェクトの配置に応じて判断可能なグループであっても良い。具体的には、上述したように一のウィンドウ内に配置されている1以上の立体オブジェクトを、一のグループと考えても良い。また、立体オブジェクトが階層化されて管理されている場合、一の階層に属する立体オブジェクトや、一の立体オブジェクトに従属している立体オブジェクトを一のグループと考えても良い。また、予め指定された領域内に配置されている立体オブジェクトを、一のグループの立体オブジェクトと考えても良い。このような予め指定された領域を指定する情報は、例えば、図示しない記憶媒体等に格納される。予め指定された領域は、例えば、購入対象物についての立体オブジェクトが配置される領域である。また、同じ属性を有する、あるいは同じ属性と対応付けられた立体オブジェクトを一のグループの立体オブジェクトと考えても良い。具体例を挙げると、立体オブジェクトが商品についての情報が配置されている立体オブジェクトである場合を例に挙げて説明すると、ユーザが「ショッピングカートに入れた」ことを示す情報と対応付けられた立体オブジェクトを一のグループの立体オブジェクトと考えても良い。また、購入対象の商品リストに登録された立体オブジェクトを一のグループの立体オブジェクトと考えても良い。
オブジェクト配置情報格納部102は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。なお、このオブジェクト配置情報格納部102を、例えば、デフォルトで用意されたオブジェクト配置情報が予め格納されている格納部(図示せず)等から読み出したデフォルトのオブジェクト配置情報が一時的に格納され得るテンポラリの格納部等と考えても良い。
配置用情報格納部103は、1以上の立体オブジェクトのそれぞれを構成する1以上の面に配置される1以上の情報である配置用情報が格納され得る。具体的には、1以上の立体オブジェクトがそれぞれ1以上の面を有しており、配置用情報格納部103には、各立体オブジェクトの1以上の面にそれぞれ配置される配置用情報が格納され得る。配置用情報は、各立体オブジェクトの1以上の面に配置されれば良く、全ての面に配置されていなくてもよい
配置用情報は、立体オブジェクトを構成する面に配置して出力、例えば表示可能な情報であれば、静止画や動画等の画像情報や、テキスト情報等、どのような情報であっても良い。画像情報は、結果的に出力用の画像情報が構成可能な情報であれば良く、例えば、ベクターデータであってもラスタデータであっても良い。また、ここで述べる配置とは、いわゆる立体オブジェクトの面に対する画像情報等のマッピングと考えても良い。また、配置用情報は、マッピング対象となる情報、例えばテクスチャ情報と考えても良い。配置用情報のデータ構造は問わない。例えば配置用情報は、XML形式等のタグ付けされた情報であっても良い。また、配置用情報は、テーブルや、データベースにより、例えば項目や属性等と対応付けて管理された情報でも良い。また、配置用情報は、予めグループ化されていても良い。
配置用情報と、当該配置用情報が配置される立体オブジェクトの面とはどのように対応付けられていても良い。例えば、配置用情報またはその識別情報と、当該配置用情報に対応付けられた立体オブジェクトの面またはその識別情報との組を、一のレコードの複数の項目として管理する管理情報等を用いて管理されても良い。この管理情報は、例えば図示しない格納部等に格納しておくようにすればよい。また、形状情報格納部101と配置用情報格納部103とが一の格納部により構成されており、形状情報が示す立体オブジェクトの面を示す情報と当該面に配置される配置用情報とが対応付けられて格納されていても良い。
また、形状情報が示す立体オブジェクトの面に対して、当該面に配置される配置用情報を取得するための条件を示す情報である取得条件情報等が対応付けられて、形状情報格納部101等に格納されていても良い。取得条件情報は、例えば、面に配置される配置用情報を検索するための検索式等の検索条件を示す情報である。この場合、各面に対応付けられた検索式等の情報を用いて検索を行うことで、面に配置される配置用情報を取得することが可能となる。
なお、取得条件情報は、1以上の立体オブジェクトの面に配置される1以上の配置用情報を結果的に指定可能な情報であれば、どのような情報であっても良い。例えば、取得条件情報は、配置用情報が項目分けされている場合、その項目を指定する情報であってもよい。また、配置用情報が属性を有している場合、その属性を指定する情報であっても良い。また、配置用情報がタグ付けされている場合、タグ名を指定する情報であっても良い。また、配置用情報にインデックス情報が付与されている場合、このインデックスを指定する情報であっても良い。また、リンク情報等の配置用情報の場所やファイル名やディレクトリ等を指定する情報であっても良い。また、配置用情報を検索するための検索式や演算式であっても良い。なお、検索式は、必ずしも式の形で示されている必要はなく、検索に利用可能なキーワード等であっても良い。例えば、この検索式で示される取得条件情報は、「select」、「from」、「where」等の組み合わせ等である。なお、「select」は取得する配置用情報の項目、「from」は検索対象となる複数の配置用情報を指定する情報、「where」は検索のための条件を示す情報である(SQLの仕様を参照)。また、演算式で示される取得条件情報とは、例えば、1以上の配置用情報に対して行われる演算式であり、例えば、数値で表される2つの配置用情報を指定する情報と、これらの平均を算出する演算式等で表されたものや、現在の時間等に所定時間を加減算する演算式等で表されたもの等である。取得条件情報とは、出力対象となりうる全ての立体オブジェクトにそれぞれ個別に指定されていてもよいし、全ての立体オブジェクト共通に指定されていても良い。また、一部の立体オブジェクトに共通に指定されていても良い。また、立体オブジェクトに属性等が設定されている場合、この属性が一致する立体オブジェクトに共通の取得条件を指定しても良い。また、取得条件情報は、立体オブジェクトの各面に対して予め指定されていてもよいし、各面にランダムに指定されても良い。配置用情報格納部103は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
なお、形状情報格納部101、オブジェクト配置情報格納部102、配置用情報格納部103に、形状情報や、オブジェクト配置情報や、配置用情報が蓄積される過程は問わない。例えば、記録媒体を介して形状情報や、オブジェクト配置情報や、配置用情報が、それぞれ、形状情報格納部101、オブジェクト配置情報格納部102、配置用情報格納部103に蓄積されてもよく、通信回線等を介して送信された形状情報や、オブジェクト配置情報や、配置用情報が、それぞれ、形状情報格納部101、オブジェクト配置情報格納部102、配置用情報格納部103に蓄積されてもよく、入力デバイスを介して入力された形状情報や、オブジェクト配置情報や、配置用情報が、それぞれ、形状情報格納部101、オブジェクト配置情報格納部102、配置用情報格納部103に蓄積されてもよい。また、形状情報格納部101や、オブジェクト配置情報格納部102や、配置用情報格納部103に格納されている形状情報や、オブジェクト配置情報や、配置用情報は、例えば図示しない受付部等が受け付けた形状情報や、オブジェクト配置情報や、配置用情報により適宜更新されるようにしても良い。また、1以上の立体オブジェクトについての形状情報とオブジェクト配置情報との組合せ、あるいは、形状情報とオブジェクト配置情報と配置用情報との組合せ等を、FLASH(登録商標)形式のファイル等の一のファイルに格納するようにしてもよい。この場合、形状情報格納部101とオブジェクト配置情報格納部102との組合せや、形状情報格納部101とオブジェクト配置情報格納部102と配置用情報格納部103との組合せ等を一の格納部で実現しても良い。
操作受付部104は、1以上の立体オブジェクに対する予め指定された所定の操作を受け付ける。所定の操作は例えば立体オブジェクトに関して何らかの変更を行うための指示と考えても良い。
所定の操作は、予め指定された操作であればどのような操作であっても良い。例えば、立体オブジェクトの配置に関する操作のうちの予め指定された操作であっても良いし、立体オブジェクトの属性に関する操作のうちの予め指定された操作であっても良いし、立体オブジェクトに配置される配置用情報に関する操作のうちの予め指定された操作であっても良い。立体オブジェクトの配置に関する操作とは、立体オブジェクトの位置や向き等を変更するための操作等である。例えば、立体オブジェクトの配置に関する操作とは、立体オブジェクトの配置を変更させるための操作指示を与えること、例えば「y軸に平行に50ピクセル移動」や「x軸を回転軸として90°回転」というコマンド等を与えることであっても良いし、変更後の、立体オブジェクトの配置を指定する座標や向きの情報等を与えることでもよい。また、立体オブジェクトの配置に関する操作は、立体オブジェクトを所定の領域に移動させる操作であっても良い。立体オブジェクトの属性に関する操作とは、立体オブジェクトの属するグループ等の属性等を変更するための操作である。例えば、立体オブジェクトが商品に対応した立体オブジェクトであったとすると、この立体オブジェクトに対応した商品を購入対象として選択して、この立体オブジェクトに、購入対象であるという属性を与える操作を、立体オブジェクトの属性に関する操作と考えても良い。立体オブジェクトに配置される配置用情報に関する操作とは、例えば、立体オブジェクトに配置される配置用情報を変更する操作等である。例えば、配置用情報を、立体オブジェクトに対して割り当てる操作や、配置用情報の値を変更する操作等である。
立体オブジェクトに対する予め指定された操作は、具体的には、立体オブジェクトをグループ化する操作である。例えば、立体オブジェクトを一のグループに対応付ける処理をグループ化と考えても良い。例えば、上述したように、立体オブジェクトに、購入対象であるという属性等の予め指定された所定の属性を与える操作が、立体オブジェクトをグループ化する操作と考えてよい。また、例えば、予め指定された領域に立体オブジェクトの位置を変更する操作がグループ化する操作である。立体オブジェクト等をグループ化する処理や、グループ化された立体オブジェクトの管理方法等については、公知技術であるので、ここでは詳細な説明を省略する。立体オブジェクトに対する操作は、通常は、操作対象となる立体オブジェクトを指定する情報を含む情報である。所定の操作を指定する情報は、例えば、図示しない記憶媒体等に予め蓄積しておくようにする。なお、操作受付部104は、予め指定された所定の操作以外の操作を受けつけても良い。
ここで述べる受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。操作受付部104は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
オブジェクト更新部105は、オブジェクト配置情報を更新する。例えば、オブジェクト更新部105は、操作受付部104によりグループ化する操作を受け付けた1以上の立体オブジェクトが、所定の方向に向かって配列されるよう、1以上の立体オブジェクトに対するオブジェクト配置情報格納部102に格納されているオブジェクト配置情報を更新する。グループ化する操作を受け付けた1以上の立体オブジェクトとは、グループ化する操作によってグループ化された1以上の立体オブジェクトと考えても良い。ここで述べるグループ化する操作を受け付けた1以上の立体オブジェクトは、一のグループにグループ化された立体オブジェクトである。なお、グループ化された1以上の立体オブジェクトは、例えば、図示しない格納部等に蓄積されるグループを管理する管理情報等で管理されるようにすればよい。例えば、一のグループにグループ化された1以上の立体オブジェクトの識別情報等が、一のグループに属することを示す情報、例えばグループ識別情報と対応付けられて図示しない管理情報等を用いて管理されていても良い。また、一のグループにグループ化された1以上の立体オブジェクトに、一のグループに属することを示す情報を対応付けるようにしても良い。
所定の方向は、予めユーザ等やデフォルト等で指定された方向であればどのような方向であっても良い。また、この方向は、一直線上の方向でなくても良い。また、立体オブジェクトは、必ずしも一列で配列される必要はなく、複数列で配列されても良い。配列される際のオブジェクトの向きは問わない。オブジェクトは、例えば、後述する演算に用いられる数値が配列されている面が正面を向くように配置される。オブジェクト更新部105は、立体オブジェクトが配列されるように、予め指定された方向に沿って、一定又は不定の所定の間隔を開けて立体オブジェクトが配置されるよう、オブジェクト配置情報を変更する。このような立体オブジェクトの配置は、いわゆるグリッドに沿ってアイコン等を配置する処理と同様であるので詳細な説明はここでは省略する。
また、グループ化する操作によってグループ化された1以上の立体オブジェクトが存在する場合、オブジェクト更新部105は、上述したようなグループ用立体オブジェクトのオブジェクト配置情報を作成するとともに、このグループ用立体オブジェクト内に、グループ化された立体オブジェクトが配置されるよう、グループ化された立体オブジェクトのオブジェクト配置情報を更新してもよい。グループ用立体オブジェクトのオブジェクト配置情報とは、グループ用立体オブジェクトについての形状情報の配置を示すオブジェクト配置情報である。なお、グループ用立体オブジェクトの配置される位置等は、予めデフォルト等で決まっていても良いし、予め配置される位置等のルール等が決まっており、このルールに従って、グループ用オブジェクトのオブジェクト配置情報が作成されても良い。また、グループ用オブジェクトの形状情報も、予め指定されたルール等に従って作成され、上述した形状情報格納部101に格納されるようにしても良い。なお、グループ用立体オブジェクトは、内部に配置されるグループ内の立体オブジェクトが透過して表示されるように、透過した面を有する立体オブジェクトであることが好ましい。このため、グループ用立体オブジェクトの形状情報は、内部が透過して見えるような立体オブジェクトを示す形状情報であることが好ましい。例えば、正面側に位置する面の透過度が0%よりも高い値であることが好ましい。即ち正面側に位置する面が透過性を有しているものであることが好ましい。グループ用立体オブジェクト内における立体オブジェクトの配置される位置や向き等は、予め指定されていても良いし、ランダムに決定されても良い。例えば、予めグループ用立体オブジェクト内に設定されている座標に、順番にグループ内の立体オブジェクトが配置されても良い。なお、グループ用立体オブジェクト内に配置される立体オブジェクトは、グループ用立体オブジェクトの移動や向きの変更等にあわせて、移動や向きが変更されるようにすることが好ましい。例えば、グループ用立体オブジェクト内に配置される立体オブジェクトの位置の情報を、グループ用立体オブジェクトに設定される座標系の座標情報とすることで、このように、グループ用立体オブジェクトに連動した動作が可能となる。
なお、オブジェクト更新部105は、操作受付部104等が、立体オブジェクトに対する上述したようなグループ化以外の操作、例えば立体オブジェクトの位置や向きを変更する操作等を受け付けた場合、当該操作に応じて立体オブジェクトの配置等が変更されるよう、操作対象となる立体オブジェクトのオブジェクト配置情報を更新するようにしても良い。
オブジェクト更新部105は、通常、MPUやメモリ等から実現され得る。オブジェクト更新部105の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
演算部106は、操作受付部104が受け付けた予め指定された所定の操作に応じて、1以上の各立体オブジェクの1以上の面に配置される配置用情報を用いて予め指定された所定の演算を行う。具体的には、演算部106は、操作受付部104が受け付けた操作が、予め指定された所定の操作であるか否かを判断し、所定の操作である場合に所定の演算を行う。所定の操作は、上述したように、立体オブジェクトをグループ化する操作等である。所定の演算とは、具体的には、1以上の各立体オブジェクトのそれぞれの面に配置される数値をパラメータとする演算である。演算は例えば、予め指定された演算式に数値を代入して行われても良いし、予め指定されたルールに従って演算が行われても良い。演算式や演算のルールは、例えば図示しない記憶媒体等に予め格納されている。ここで述べる演算は、四則演算のうちの1以上を含む演算である。例えば、演算は、四則演算のうちの1以上を組み合わせた演算である。具体的には、演算は、1以上の各立体オブジェクトのそれぞれの面に配置される数値の和演算、差演算、積演算、または商演算のうちの少なくとも一つを含む演算である。具体例を挙げると、各立体オブジェクトの面に配置された数値を加算する演算である。また、各立体オブジェクトの面に配置された数値に所定の係数等を乗算した値を加算する演算である。所定の操作であるか否かは、例えば、予め指定したコマンドを受け付けたか否かや、予め指定したイベントが発生したか否か等により判断される。所定の操作に応じてとは、所定の操作をトリガーとして一の演算が行われることであっても良いし、所定の操作によって、行われる演算が異なることであっても良いし、その両方であっても良い。また、演算部106が、どの立体オブジェクトを演算の対象とするかは問わない。例えば、立体オブジェクトをグループに追加する操作を行った場合、同じグループに含まれる立体オブジェクトに配置されている情報を演算の対象としても良い。また、全ての立体オブジェクトを演算の対象としても良い。また、操作を行う際に指定された、あるいは選択された1以上の立体オブジェクトを演算の対象としても良い。
演算部106は、例えば、各立体オブジェクトに配置された情報のうちの、ユーザやデフォルト等により予め指定された情報を用いて演算を行う。演算部106は、各立体オブジェクトに配置された情報のうちの、どの情報を演算に用いるようにしても良い。例えば、演算部106は、各立体オブジェクトの予め指定された面に配置された数値等の情報を演算のパラメータとしても良い。例えば、立体オブジェクトの面に第一面、第二面等の識別情報が付与されている場合、第一面に配置された数値等だけを所定のパラメータとして用いて演算を行っても良い。また、各立体オブジェクトに配置された、予め指定された属性を有する数値等の情報を演算のパラメータとしても良い。予め指定された属性とは、どのような属性でも良く、例えば、価格や、数量等の属性である。例えば、演算部106は、所定の操作の対象となった立体オブジェクトから、「円」という文字列を有する配置用情報を検出し、この配置用情報の数値をパラメータとして所定の演算を行っても良い。これにより、属性が価格である数値の演算が行うことができる。また、所定の操作の対象となった立体オブジェクトから、「価格」というタグが付与された配置用情報を検出し、この配置用情報に含まれる数値をパラメータとして所定の演算を行っても良い。
例えば、立体オブジェクトが商品についての立体オブジェクトであり、その表面には、商品名や商品の価格の情報である配置用情報が配置されていたとする。そして、ユーザ等により、複数の立体オブジェクトについてグループ化を行う操作、例えば商品を示す複数の立体オブジェクトを購入対象に選択する処理が行われたとする。この場合、演算部106は、グループ化する操作が行われた複数の立体オブジェクトのそれぞれについて、表面に配置されている配置用情報の中から、末尾に予めデフォルト等で指定されている「円」という文字が続いている数値を取得する。そして、演算部106は、その数値に予め指定された消費税率、例えば「1.05」を乗算し、乗算して得られた値を加算して、ユーザが購入対象として選んだ商品の税込み価格の合計を算出する。
演算部106は、通常、所定の操作が行われた場合に演算を行うが、演算を行うタイミング等は問わない。また、例えば、一のグループ化された立体オブジェクトについて演算を行った後、当該グループを構成する立体オブジェクトに変更が加えられた場合等においては、このグループについての演算を再度行い、得られた演算結果で、直前の演算結果を更新することが好ましい。
演算部106は、通常、MPUやメモリ等から実現され得る。演算部106の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
画像情報構成部107は、立体オブジェクトの形状情報と、形状情報が示す立体オブジェクトの1以上の面に配置される配置用情報とを読み出し、読み出した形状情報が示す1以上の面に対し、それぞれに対応した配置用情報を配置した立体オブジェクトの画像情報を構成する。なお、ここで述べる立体オブジェクトは、グループ用立体オブジェクトも含むと考えても良い。画像情報構成部107が構成する画像情報は、静止画像の画像情報であっても良く、動画像の画像情報であっても良い。また、画像情報構成部107が構成する画像情報は、動画像の1フレームや1フィールドの画像情報であってもよい。
具体的には、画像情報構成部107は、1以上の立体オブジェクトについての形状情報と、これらの立体オブジェクトと対応付けられた立体オブジェクトの1以上の面に配置される配置用情報と、これらの立体オブジェクトと対応付けられたオブジェクト配置情報を、形状情報格納部101、配置用情報格納部103、およびオブジェクト配置情報格納部102から読み出す。そして、読み出した形状情報が示す立体オブジェクトの1以上の面に対し、それぞれに対応した配置用情報を配置して立体オブジェクトを構成する。そして、この立体オブジェクトを、この立体オブジェクトに対応するオブジェクト配置情報が指定する位置に、オブジェクト配置情報が指定する方向となるよう配置した画像情報を構成する。例えば、画像情報構成部107は、FLASH(登録商標)形式のファイルから形状情報や配置用情報やオブジェクト配置情報等を読み出し、静止画や動画の画像情報を構成しても良い。
なお、画像情報構成部107は、以下のように画像情報を構成しても良い。各立体オブジェクトの形状情報と、当該形状情報が示す1以上の面に配置される前記配置用情報と、当該立体オブジェクトに対応するオブジェクト配置情報のうちの方向を示す情報とを読み出し、読み出した形状情報が示す立体オブジェクトを、オブジェクト配置情報が示す方向に向けた状態とし、その立体オブジェクトの1以上の面に対し、それぞれに対応した配置用情報を配置した状態の、立体オブジェクトの二次元の画像情報をいわゆるレンダリングにより作成する。そして、作成した二次元画像を、予め用意された二次元の背景画像等の、オブジェクト配置情報が示す二次元座標上の位置等に配置して最終的に出力される画像情報を構成してもよい。なお、二次元の背景画像等は、例えば図示しない記憶媒体等に予め蓄積しておくようにすればよい。
画像情報構成部107は、構成した画像情報を、例えば図示しないVRAM等の記憶媒体に蓄積する。後述する出力部108は、例えば、このVRAM等に蓄積された画像情報を読み出して出力する。ここで述べる画像情報を構成する処理は、モニタ等に表示するための画像情報を構成してVRAM等に書き込むまでの処理と考えても良い。画像情報構成部107は、例えば、予め指定されたタイミング毎やトリガー等に応じて画像情報を構成し、構成した画像情報で、直前に構成した画像情報を更新しても良い。画像情報構成部107は、例えば、オブジェクト更新部105が更新したオブジェクト配置情報を用いて画像情報を構成する。なお、一の立体オブジェクトの形状情報と、当該立体オブジェクトの配置用情報と、当該立体オブジェクトのオブジェクト配置情報とは、どのように対応付けられていても良い。例えば、立体オブジェクトの識別情報と、当該立体オブジェクトに対応する形状情報と、配置用情報と、オブジェクト配置情報とが、それぞれ個別に対応付けられていても良い。また、立体オブジェクトの識別情報と、形状情報とが対応付けられており、同じ立体オブジェクトに対応する形状情報と、配置用情報と、オブジェクト配置用情報とが、それぞれ対応付けられていても良い。画像情報構成部107が構成する画像情報は、例えば、予め指定された仮想の視点等から仮想三次元空間に配置した立体オブジェクトを見た場合の画像の情報である。この画像情報は、例えばビットマップデータ等である。また、テキストの情報等から表示用の画像情報、例えば、ビットマップデータ等を構成することも、この画像情報を構成する処理に含まれる。立体オブジェクトの面に対して、画像情報やテキスト情報等の情報を配置して二次元の画像を構成する処理は、いわゆるレンダリング処理と呼ばれる処理であり、公知技術であるのでここでは、説明を省略する。また、この画像情報を構成する処理において、形状情報等が有する立体オブジェクトの色や、透明度、反射、屈折率、バンプなどの設定項目の情報を用いて、レンダリングを行うようにしても良い。
また、画像情報構成部107は、立体オブジェクトの形状情報と、形状情報が示す立体オブジェクトの1以上の面に配置される配置用情報と、立体オブジェクトに対応するオブジェクト配置情報と、演算部106の演算結果とを読み出し、読み出した形状情報が示す1以上の面に対し、それぞれに対応した配置用情報を配置した立体オブジェクトを、オブジェクト配置情報が示すよう配置した画像情報であって、演算部106の演算結果を配置した画像情報を構成してもよい。この場合、演算部106の演算結果を配置する位置は、立体オブジェクトの配置される位置に対応した位置であることが好ましい。立体オブジェクトの配置される位置に対応した位置は、例えば、演算の対象となる1以上の立体オブジェクトが配置される位置に対応した位置である。具体的には、演算の対象となる1以上の立体オブジェクトの近傍に配置されることが好ましい。例えば、上述したように、オブジェクト更新部105が、グループ化する操作を受け付けた1以上の立体オブジェクトが、所定の方向に向かって配列されるようオブジェクト配置情報を更新した場合、画像情報構成部107は、このオブジェクト配置情報で配列される立体オブジェクトの先頭や、最後尾等に演算結果を示す画像を配置した画像情報を構成しても良い。この場合、立体オブジェクトの画像と演算結果を示す画像とは、区切を示す線等で区切るようにしても良い。また、演算結果であることを示す文字列や図形等の情報を含む画像情報を構成しても良い。また、例えば、グループ用立体オブジェクトの正面内の予め指定された所定の位置や、グループ用立体オブジェクトの周囲等に演算結果を示す画像を配置しても良い。
また、画像情報構成部107は、オブジェクト更新部105が更新したオブジェクト配置情報や、新たな演算結果が作成された場合や直前の演算結果が更新された場合に、更新されたオブジェクト配置情報や演算結果や新規の演算結果等を用いて画像情報を構成する。画像情報構成部107は、例えば、構成した画像情報で直前に構成された画像情報を更新する。画像情報構成部107が画像情報を更新するタイミング等は問わない。例えば、オブジェクト更新部105によりオブジェクト配置情報の更新が行われた場合や、演算部106により演算結果の更新が行われた場合や、新たに演算が行われた場合等に、画像情報を更新指定も良い。また、予め指定された一定または不定期のタイミングで画像情報を更新しても良い。
画像情報構成部107は、通常、MPUやメモリ等から実現され得る。画像情報構成部107の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力部108は、画像情報構成部107が構成した画像情報と、演算部106の演算結果とを出力する。なお、演算結果は、結果的に出力されれば良く、例えば、上記のように、画像情報構成部107が構成した画像情報内に演算結果を示す情報の画像を含むようにした場合、この画像情報の出力を、演算結果の出力と考えて良い。
また、出力部108は、例えば、画像情報構成部107が画像情報を更新した場合、更新した画像情報を用いて出力を更新する。また、出力部108は、例えば、演算部106が新たな演算結果を取得した場合や、演算結果を更新した場合、演算結果の出力を更新する。なお、出力部108が出力を更新するタイミングやトリガー等は問わない。
ここで述べる出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタへの印字、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。なお、出力部108は、画像情報と演算結果とを異なる形態で出力しても良い。例えば、画像情報をディスプレイに表示し、演算結果を外部の装置へ送信しても良い。なお、プログラムとは、コンピュータの行う処理(演算・動作・通信など)の手順を指示したもののことである。
出力部108は、ディスプレイ等の出力デバイスを含むと考えても含まないと考えても良い。出力部108は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報処理装置1の動作について図2のフローチャートを用いて説明する。なお、ここでは演算部106が数値を用いた演算を行う場合を例に挙げて説明する。
(ステップS201)画像情報構成部107は、1以上のオブジェクト配置情報をオブジェクト配置情報格納部102から取得する。取得したオブジェクト配置情報は、例えば、図示しないメモリ等の記憶媒体に一時記憶される。
(ステップS202)画像情報構成部107は、ステップS201において取得したオブジェクト配置情報と対応付けられた1以上の立体オブジェクトの形状情報を形状情報格納部101から取得する。取得した形状情報は、例えば、図示しないメモリ等の記憶媒体に一時記憶される。
(ステップS203)画像情報構成部107は、ステップS201において取得したオブジェクト配置情報と対応付けられた1以上の立体オブジェクトに対応する配置用情報を配置用情報格納部103から取得する。取得した配置用情報は、例えば、図示しないメモリ等の記憶媒体に一時記憶される。
(ステップS204)画像情報構成部107は、各立体オブジェクトについてステップS201〜ステップS203において読み出した形状情報と配置用情報とオブジェクト配置情報とを用いて立体オブジェクトの画像情報を構成する。例えば、各立体オブジェクトに対応する形状情報が示す面に、当該立体オブジェクトに対応する配置用情報を配置した立体オブジェクトを、各立体オブジェクトに対応するオブジェクト配置情報が示す位置に、当該オブジェクト配置情報が示す向きで配置した画像情報を構成する。
(ステップS205)出力部108は、ステップS204において構成された画像情報を出力する。
(ステップS206)操作受付部104は、ユーザ等による操作を受け付けたか否かを判断する。受け付けた場合、ステップS207に進み、受け付けていない場合、ステップS206に戻る。
(ステップS207)演算部106は、ステップS206において受け付けた操作が、予め指定された所定の操作であるか否かを判断する。例えば、受け付けたコマンドや発生したイベント等が所定のコマンドやイベントと一致するか否かを判断する。この一致の判断は、部分一致であっても完全一致であっても良い。所定の操作である場合、ステップS208に進み、所定の操作でない場合、ステップS216に進む。
(ステップS208)オブジェクト更新部105は、ステップS206において受け付けた予め指定された所定の操作に応じてオブジェクト配置情報を更新する。例えば、所定の操作が立体オブジェクトを所定の位置に移動させる操作である場合、操作対象の立体オブジェクトが所定の位置に配置されるよう、当該立体オブジェクトのオブジェクト配置情報を変更する。また、所定の操作が、例えば、立体オブジェクトを所定のグループに登録する操作である場合、操作対象の立体オブジェクトが、グループに登録された立体オブジェクトを配置するために予め指定された領域内に配置されるよう、当該立体オブジェクトのオブジェクト配置情報を変更する。ここでの更新処理は、新たにグループ用立体オブジェクトのオブジェクト配置情報を作成する処理を含んでも良い。なお、予め指定された操作が、結果的にオブジェクトの位置や方向等の変更しない操作である場合や操作による変更を行わない場合等には、この処理は省略してよい。
(ステップS209)演算部106は、演算の対象となる1以上の立体オブジェクトに配置されている配置用情報から数値を取得する。演算部106は、例えば、立体オブジェクトを所定のグループに登録する操作が行われた場合、当該所定のグループに登録されている全ての立体オブジェクトに配置されている配置用情報から数値を取得する。また、例えば、操作の対象として選択された複数の立体オブジェクトに配置されている配置用情報から数値を取得してもよい。また、演算部106は、例えば、各立体オブジェクトに配置されている配置用情報のうちの、予め指定された属性を有する数値、例えば、予め指定されたタグが付与された情報内の数値を取得しても良いし、各立体オブジェクトに配置されている配置用情報のうちの全ての数値の情報を取得してもよい。取得した数値は、例えば、図示しない記憶媒体等に一時記憶する。
(ステップS210)演算部106は、ステップS209において取得した数値を用いて、予め指定された演算を行う。演算に用いられる演算式等は、例えば、図示しない記憶媒体等に予め蓄積しておいた演算式等を読み出すようにすればよい。演算結果は、例えば図示しない記憶媒体等に一時記憶する。
(ステップS211)画像情報構成部107は、1以上のオブジェクト配置情報をオブジェクト配置情報格納部102から取得する。取得したオブジェクト配置情報は、例えば、図示しないメモリ等の記憶媒体に一時記憶される。なお、ステップS208によりオブジェクト配置情報の更新が行われない立体オブジェクトであって、直前に取得したオブジェクト配置情報がそのままメモリ等に保持されている立体オブジェクトについては、この処理は省略しても良い。
(ステップS212)画像情報構成部107は、ステップS211において取得したオブジェクト配置情報と対応付けられた1以上の立体オブジェクトの形状情報を形状情報格納部101から取得する。取得した形状情報は、例えば、図示しないメモリ等の記憶媒体に一時記憶される。直前に取得した形状情報がそのままメモリ等に保持されている立体オブジェクトについては、この処理は省略しても良い。
(ステップS213)画像情報構成部107は、ステップS211において取得したオブジェクト配置情報と対応付けられた1以上の立体オブジェクトに対応する配置用情報を配置用情報格納部103から取得する。取得した配置用情報は、例えば、図示しないメモリ等の記憶媒体に一時記憶される。直前に取得した配置用情報がそのままメモリ等に保持されている立体オブジェクトについては、この処理は省略しても良い。
(ステップS214)画像情報構成部107は、各立体オブジェクトについてステップS211〜ステップS213において読み出した形状情報と配置用情報とオブジェクト配置情報とを用いて立体オブジェクトの画像情報を構成する。例えば、各立体オブジェクトに対応する形状情報が示す面に、当該立体オブジェクトに対応する配置用情報を配置した立体オブジェクトを、各立体オブジェクトに対応するオブジェクト配置情報が示す位置に、当該オブジェクト配置情報が示す向きで配置した画像情報を構成する。また、画像情報構成部107は、さらに、ステップS210により取得した演算結果を、立体オブジェクトが配置される位置に対応した位置に配置した画像情報を構成しても良い。
(ステップS215)出力部108は、ステップS214において構成した画像情報で直前に出力されている画像情報を更新し、更新した画像情報を出力する。そして、ステップS206に戻る。
(ステップS216)オブジェクト更新部105は、ステップS206において受け付けた操作に応じて、例えば、オブジェクト配置情報を更新する。そして、ステップS201に戻る。なお、ここでは、ステップS206において受け付けた操作がオブジェクトの配置や方向を変更する場合を例に挙げて説明しているが、その他の操作であってもよい。その他の操作である場合においても、図示しない処理部等が操作に応じた処理を行うようにすればよい。
なお、図2のフローチャートにおいて、ステップS201からステップS203やステップS211からステップS213の処理において取得した情報を、図示しないメモリ等の記憶媒体等に一時記憶しておくようにし、オブジェクト配置情報等の更新が行われた場合、更新されたオブジェクト配置情報等だけをオブジェクト配置情報格納部102等から読み出し、更新されていない形状情報やオブジェクト配置情報等はメモリ等に一時記憶された情報をそのまま読み出して用いるようにして、更新後の画像情報を構成するようにしても良い。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における情報処理装置1の具体的な動作について説明する。ここでは、情報処理装置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軸の原点は、例えば、立体オブジェクトの中心や重心に設定される。なお、各サイズの単位等は、ピクセル等どのような単位であっても良い。ここでは、形状情報管理表により、6つの立体オブジェクトの形状情報が管理されている。なお、「オブジェクトID」が「OBJ6」である立体オブジェクトは、グループ用立体オブジェクトの形状情報であるとする。なお、グループ用立体オブジェクトの形状情報は、内部に配置される立体オブジェクトサイズや数によって可変としても良い。
図4は、オブジェクト配置情報格納部102に格納されているオブジェクト配置情報を管理するためのオブジェクト配置情報管理表である。オブジェクト配置情報は、ここでは例として、ユーザ等により予め作成され、蓄積されているものとする。オブジェクト配置情報は、「オブジェクトID」、「座標(X,Y,Z)」、および「回転角度(x,y,z)」という項目を有している。「オブジェクトID」は、立体オブジェクトを識別するための識別情報であり、上述した形状情報の「オブジェクトID」と対応している。「座標(X,Y,Z)」は、同じレコードの「オブジェクトID」が示す立体オブジェクトが配置される仮想三次元空間内の座標を示す情報であり、ここでは、立体オブジェクトの中心の座標である場合について説明する。ここでは、この座標の値は、仮想三次元空間内の絶対座標であるとする。なお、ここでは、仮想三次元空間内の横方向(幅方向)をX軸、縦方向(高さ方向)をY軸、奥行き方向をZ軸とする。また、「回転角度(x、y、z)」は、立体オブジェクトのx軸、y軸、z軸をそれぞれ回転軸とした回転角度を示す。回転角度は、立体オブジェクトの配置される方向を示す情報と考えても良い。ここでは、例えば、立体オブジェクトがある軸を回転軸として回転すると、立体オブジェクトに設定されている座標軸も、仮想三次元空間内において回転するものとする。例えば、立体オブジェクトをy軸を回転軸にして90度回転させると、立体オブジェクトのx軸とy軸は、それぞれ仮想三次元空間のX軸およびY軸とそれぞれ直交することとなる。なお、それぞれの値が(0,0,0)である場合、立体オブジェクトのx軸、y軸、z軸が、それぞれ仮想三次元空間内のX軸、Y軸、Z軸に平行に配置されるものとする。なお、立体オブジェクトが配置される位置の奥行きを変更する必要がない場合、例えば、レンダリングした立体オブジェクトの画像を2次元平面上に配置する場合等においては、Z座標の値は省略しても良い。図4に示すように、図3に示した「オブジェクトID」が「OBJ6」である形状情報に対応するグループ用立体オブジェクトは、この時点では、仮想三次元空間内等に配置されておらず、従って、このグループ用立体オブジェクトに対応するオブジェクト配置情報は、図4のオブジェクト配置情報管理表では、管理されていないものとする。
なお、ここでは説明を省略しているが、上述した形状情報には、立体オブジェクトの第一〜第三面を指定する情報が含まれているものとする。第一〜第三面を指定する情報は、例えば、立体オブジェクトの座標を用いて定義される面を指定する情報である。ここでは、第一面は、オブジェクト配置情報が、図4に示したような値である場合における、立方体である立体オブジェクトの正面であるとする。即ち立体オブジェクトを構成する面のうちの、立体オブジェクトのz軸に垂直であって、デフォルトで最も手前に位置する面であるとする。また、第二面は、立体オブジェクト自身からみて、立体オブジェクトの左側面であるとする。また、第三面は、立体オブジェクトの上面であるとする。第一〜第三面を指定する情報は、ここでは例として、それぞれの面に相当する立体オブジェクトの面の三以上の頂点の座標を指定する情報であるとする。ただし、立体オブジェクトを構成する面のうちの、第一〜第三面に相当する面の中心の座標等を指定する情報であっても良い。なお、ここでの座標とは、立体オブジェクト内に設定される座標軸を用いて表される座標であるとする。このため、立体オブジェクトの向き等が変更されても、第一〜第三面を指定する情報は変化しない。つまり、第一〜第三面は、立体オブジェクトに対して、予め固定されている面と考えて良い。
図5は、立体オブジェクトと、第一〜第三面の関係を示すための図である。第一面61は、立体オブジェクトの正面である。また、第二面62は、立体オブジェクトの左側面である。また、第三面63は、立体オブジェクトの上面である。図に示す座標軸は、立体オブジェクトに設定される座標軸を示すものである。
図6は、配置用情報格納部103に格納されている配置用情報を示す図である。ここでは、例として配置用情報がXML形式の情報を構成している場合について説明する。ただし、配置用情報は、XML形式の情報でなくても良く、例えば、情報を項目や属性別等に参照可能な形式のデータであれば良い。図6に示したXML形式の情報においては、便宜上、各配置用情報は、開始タグと終了タグとにより囲まれた情報とで構成される情報であると考える。例えば、「<商品名>」と「</商品名>」とで区切られた範囲のタグ付けられた情報が、一の商品の商品名を示す配置用情報である。同様に、「<ジャンル名>」と「</ジャンル名>」とで区切られた範囲のタグ付けられた情報が、一のジャンルのジャンル名を示す配置用情報である。ここでは、例として、配置用情報が、携帯電話についての情報であるとし、ジャンル名が「携帯電話」であるとする。また、「<価格>」と「</価格>」とで区切られた範囲のタグ付けられた情報が、一の商品の詳細について示す情報のうちの価格を示す配置用情報である。なお、配置用情報として、ファイル等を指定する情報、例えばリンク情報が含まれる場合、これにより指定されたファイルの情報が配置用情報となる。リンク先の情報は、画像を構成する際等に適宜読み出される。配置用情報は、ここでは例として、ユーザ等により予め作成され、蓄積されているものとする。ここでは、商品を示す配置用情報は、商品のジャンル別に分類されているものとする。また、各商品を示す配置用情報の下位の配置用情報として、各商品の詳細を示す情報であるタグ付けられた情報が予め用意されているものとする。
図7は、配置用情報格納部103に格納されている、配置用情報と、当該配置用情報が配置される立体オブジェクトと、配置される面との対応関係を管理するための配置用情報管理表を示す図である。配置用情報は、立体オブジェクトと対応付けて管理されている。配置指定情報管理表は、「オブジェクトID」という項目と、「商品ID」という項目と、「配置面」という項目とを有している。「配置面」は更に、「第一面」、「第二面」、「第三面」という項目を有している。「オブジェクトID」は、図3に示したオブジェクトIDに相当する。「商品ID」は、「オブジェクトID」が示す立体オブジェクトと対応付けられた配置用情報を指定する情報であり、ここでは、図6に示した配置用情報のうちの商品IDタグを示す情報である。即ち、この「商品ID」の値と一致する要素を有する商品IDタグと対応付けられた配置用情報が、「配置用情報」が指定する配置用情報である。「配置面」は、立体オブジェクトの各面に配置される配置用情報のタグを指定する情報であり、「第一面」、「第二面」、「第三面」は、それぞれ、立体オブジェクトの第一面、第二面、第三面に配置される配置用情報のタグを指定する情報である。ここでは、立体オブジェクトの各面には、「配置面」が示すタグが付与された情報が配置されるものとする。なお、「配置面」の項目の値であるタグは、配置用情報を取得するための条件を示す情報である取得条件情報と考えても良い。
まず、例えば、ユーザが、情報処理装置1に対して、商品についてのカタログを表示する指示を与えたとすると、画像情報構成部107は、図4に示したオブジェクト配置情報管理表で管理されているオブジェクト配置情報を読み出す。即ち、「OBJ1」から「OBJ5」までの「オブジェクトID」に対応したオブジェクト配置情報である「座標(X,Y,Z)」、および「回転角度(x,y,z)」の項目の値を読み出す。そして、例えば、「オブジェクトID」と対応付けて、メモリ等に一時記憶する。
つぎに、情報処理装置1の画像情報構成部107は、配置用情報と対応付けられている立体オブジェクトについての形状情報を取得する。即ち、図4に示した配置用情報管理表の「オブジェクトID」の値を全て取得し、この値と一致する「オブジェクトID」と対応付けられた立体オブジェクトの形状情報を図3に示した形状情報管理表から読み出す。ここでは、図3に示した「オブジェクトID」が「OBJ1」から「OBJ5」までの形状情報を読み出し、例えば、「オブジェクトID」と対応付けて、メモリ等に一時記憶する。
次に、画像情報構成部107が、画像情報構成部107が形状情報を読み出した立体オブジェクト、すなわち「オブジェクトID」が「OBJ1」〜「OBJ5」である各立体オブジェクト(以下、立体オブジェクト「OBJ1」〜「OBJ5」と称す)を構成する面に配置する配置用情報を、以下のように、図7に示した配置用情報管理表を用いて取得する。
まず、立体オブジェクト「OBJ1」を構成する各面、ここでは第一面〜第三面に配置される配置用情報のタグを、図7に示した配置用情報管理表から読み出す。具体的には、図7に示した配置用情報管理表の「オブジェクトID」が「OBJ1」であるレコードの「商品ID」の項目の値「SER1345」を読み出す。そして、図6に示した配置用情報のうちの、要素が「SER1345」である商品IDタグを有する商品の情報、即ち要素が「SER1345」である商品IDタグを有する「<商品>」タグから「</商品>」タグに囲まれた情報を特定する。次に、図7に示した配置用情報管理表の「オブジェクトID」が「OBJ1」であるレコードの「第一面」〜「第三面」の項目の値であるタグ名を順次読み出し、図6に示した配置用情報のうちの上記で特定した商品の情報から、それぞれのタグと一致するタグ名を有するタグを検出し、検出したタグの要素を順次取得する。取得したタグの要素が、「オブジェクトID」が「OBJ1」である立体オブジェクトの第一面から第三面にそれぞれ配置される配置用情報である。
例えば、図7に示した配置用情報管理表の「オブジェクトID」が「OBJ1」であるレコードの「第一面」の値は、「商品名」というタグであるため、図7に示した要素が「SER1345」である商品IDタグを含む配置用情報から、商品名タグを検出し、この商品名タグの要素である「BS602」を第一面に配置する配置用情報として取得する。
以下、同様にして、立体オブジェクト「OBJ2」〜「OBJ5」についてもそれぞれ、配置用情報を取得する。取得した情報は、例えば、立体オブジェクトの識別情報と対応付けて、図示しないメモリ等の記憶媒体に一時記憶する。
そして、画像情報構成部107は、立体オブジェクト「OBJ1」〜「OBJ5」の画像情報を構成する。
具体的には、画像情報構成部107が取得した立体オブジェクト「OBJ1」〜「OBJ5」の形状情報が示す立体オブジェクトの第一面〜第三面上に、各立体オブジェクト「OBJ1」〜「OBJ5」の第一面〜第三面に対応して画像情報構成部107が取得した配置用情報(但しタグを除く)を配置し、さらに、これらの立体オブジェクトを立体オブジェクト「OBJ1」〜「OBJ5」に対応して画像情報構成部107が取得した配置用情報が示す位置及び向きで配置した画像情報を構成する。具体的にはいわゆるレンダリング処理を行う。なお、ここでは、各立体オブジェクトの投影図が構成されるように、座標軸やレンダリングの際の画角等のパラメータが予め設定されているものとする。
そして、出力部108は、画像情報構成部107が構成した画像情報を出力する。ここでは、出力部108は、モニタ504に接続されており、当該モニタ504に合成した立体オブジェクトの画像情報を表示する。
図8に表示例を示す。図8において、立体オブジェクト801は立体オブジェクト「OBJ1」、立体オブジェクト802は、立体オブジェクト「OBJ2」、立体オブジェクト803は、立体オブジェクト「OBJ3」、立体オブジェクト804は、立体オブジェクト「OBJ4」、立体オブジェクト805は、立体オブジェクト「OBJ5」、であるとする。なお、本実施の形態において座標の値や図に示される立体オブジェクトの位置等については、説明のためのものであり、実際のサイズ等に合わせて正確に描かれたものではない。図8に示すように、各立体オブジェクトは、それぞれが商品に対応しており、各商品の商品名や商品画像や、仕様や価格等が、それぞれの立体オブジェクトの面に表示されており、各商品とその商品に関連する仕様等の情報との対応関係が容易に把握できるようになっている。
次に、ユーザが、出力された立体オブジェクト801、802、805を選択し、図示しないメニュー等を操作して立体オブジェクトに対応する商品、ここでは携帯電話をショッピングカートに入れる操作を行ったとする。操作受付部104は、この操作によって、「オブジェクトID」が「OBJ1」、「OBJ2」、「OBJ5」である立体オブジェクト801、802、805に対する「ショッピングカートに入れる」という操作を受け付ける。この操作は、立体オブジェクト801を購入対象商品のグループに追加する操作と考えても良い。
演算部106は、操作受付部104が受け付けた操作が所定の操作であるか否かを判断する。演算部106は、受け付けた操作、あるいはこの操作に対応したイベントを、予め図示しない記憶媒体等に蓄積されている操作あるいはイベントと比較する。ここでは、予め「ショッピングカートに入れる」という操作、あるいはこの操作に対応したイベント等が、図示しない記憶媒体等に予め蓄積されていたとすると、演算部106は、受け付けた操作あるいはイベントと一致する操作が蓄積されていると判断し、操作受付部104が受け付けた操作が所定の操作であると判断する。なお、所定の操作でないと判断された場合には、情報処理装置1は、受け付けた操作に応じた操作を行うが、ここでは説明を省略する。
オブジェクト更新部105は、演算部106が所定の操作であると判断した場合、この操作に応じて、立体オブジェクトの配置を更新する。具体的には、グループ用立体オブジェクトを予め指定された位置に配置するとともに、選択された立体オブジェクトを、配置されたグループ用立体オブジェクト内の所定の位置に配置する。
まず、予め図示しない格納部等に格納されているデフォルトのグループ用立体オブジェクトの配置情報を読み出し、図3に示した形状情報管理表において予め用意されているグループ用立体オブジェクトの形状情報の「オブジェクトID」である「OBJ6」と対応付けて、オブジェクト配置情報格納部102に蓄積する。そして、図4に示したオブジェクト配置情報管理表が更新される。にグループ用立体オブジェクトのレコードが追加されるよう更新される。
図9は、更新されたオブジェクト配置情報管理表を示す図である。このオブジェクト配置情報管理表においては、グループ用立体オブジェクトのレコードが追加されている。
なお、形状情報格納部101に格納されている形状情報が示すグループ用立体オブジェクトに配置される配置用情報は、予め配置用情報格納部103に用意されているものとする。
図10は、形状情報格納部101に格納されているグループ用立体オブジェクトの形状情報と、グループ用立体オブジェクトの各面に配置される配置用情報との対応関係を管理するグループ用配置用情報管理表を示す図である。グループ用配置用情報管理表は、「オブジェクトID」という項目と、「配置面」という項目とを有している。「配置面」は更に、「第一面」、「第二面」、「第三面」という項目を有している。「オブジェクトID」は、図3に示したオブジェクトIDに相当する。「配置面」は、立体オブジェクトの各配置面に配置される配置用情報を示している。「−」は、値がない、即ち情報が配置されないことを示す。なお、配置用情報内の[演算結果]という文字列は、立体オブジェクトの画像を構成する際に演算部106による演算結果で置き換えられる文字列であるとする。このグループ用配置用情報管理表の「配置面」には、図7に示した配置用情報管理表の「配置面」の情報のようなタグ名とは異なり、「ショッピングカート」という文字列等の配置用情報が配置されているものとする。但し、図7と同様のタグ名等を配置するようにしても良い。また、この場合、図7に示す配置用情報管理表とグループ用配置用情報管理表を一の配置用情報管理表に統合してもよい。
また、操作の対象となった「オブジェクトID」が「OBJ1」、「OBJ2」、「OBJ5」である立体オブジェクトが、新たに配置されたグループ用立体オブジェクト内に配置されるよう各立体オブジェクトの配置用情報を変更する。例えば、ショッピングカートに入れる処理の対象となる1以上の立体オブジェクトが配置され得るグループ用立体オブジェクト内の座標が、予め、図示しない記憶媒体等にデフォルトで複数用意されているとする。そして、オブジェクト更新部105は、これらの座標を順番に読み出し、操作の対象となった立体オブジェクトに順番に割り当てる。オブジェクト更新部105は、割り当てられた座標で立体オブジェクトのオブジェクト配置情報を更新する。
図11は、更新されたオブジェクト配置情報管理表を示す図である。「オブジェクトID」が「OBJ1」、「OBJ2」、「OBJ5」であるレコードの「座標(x、y、z)」の値が更新されている。なお、ここでは詳細な説明は省略しているが、グループ化された1以上の立体オブジェクト、例えばショッピングカートに入れられた1以上の立体オブジェクトは、例えば、図示しない格納部等に蓄積されるグループを管理する管理情報等で管理されるようにすればよい。例えば、一のグループにグループ化された1以上の立体オブジェクトの識別情報等が、一のグループに属することを示す情報、例えばショッピングカートに入れられたことを示す情報と対応付けられて図示しない管理情報等を用いて管理されていても良い。また、一のグループにグループ化された1以上の立体オブジェクト、例えばショッピングカートに入れられた1以上の立体オブジェクトに、一のグループに属することを示す情報、例えばフラグ等を付与するようにしても良い。なお、各立体オブジェクトが一のグループに属する立体オブジェクトであるか否か(例えば、ショッピングカートに入れられた立体オブジェクトであるか否か)は、各立体オブジェクトの座標が予め指定されたグループ化された立体オブジェクトが配置される領域内の座標(例えば、グループ化立体オブジェクト内の座標)であるか否か等で判断するようにしても良い。
次に、演算部106は、操作受付部104が受け付けた操作を所定の操作であると判断した場合、予め指定されている演算式を図示しない記憶媒体等から読み出す。ここで読みだす演算式は、ショッピングカートに入れられた立体オブジェクトに配置された配置用情報のうちの<価格>というタグが付与された値に、消費税率である「1.05」を乗算して合計を算出する演算を行うことを指定する演算式であるとする。
なお、ここで読み出す演算式は、操作受付部104が受け付けた操作に対応した演算式でも良い。例えば、操作と演算式とを対応付けて図示しない記憶媒体等に蓄積しておくようにし、受け付けた操作に対応した演算式を読み出すようにしても良い。
演算部106は、「オブジェクトID」が「OBJ1」、「OBJ2」、「OBJ5」である立体オブジェクトにそれぞれ配置された配置用情報を、図7に示す配置用情報管理表と、図6に示した配置用情報を用いて特定し、特定した配置用情報の中から、<価格>タグが付与された値をそれぞれ取得する。
例えば、「オブジェクトID」が「OBJ1」である立体オブジェクトに配置される配置用情報を示す情報として、図7に示す配置用情報管理表から、「SER1345」という商品IDの情報と、商品名、詳細、商品写真というタグ名を取得する。そして、図6に示した配置用情報から、<商品ID>タグが付与された、値が「SER1345」である情報を含む商品の配置用情報を検出し、この商品内の、<商品名>タグ、<詳細>タグ、または<商品写真>タグが付与された情報内において、<価格>タグを検出し、その<価格>タグが付けられた値を読み出す。ここでは、<詳細>タグが付与された情報内において<価格>タグを検出し、この<価格>タグが付与された値である「3.2万円」を読み出す。そして、読み出した値を記憶媒体等に一時記憶する。同様の処理を、「オブジェクトID」が「OBJ2」、「OBJ5」の立体オブジェクトについても行うことで、それぞれ「1.6万円」、「3.5万円」という値を取得する。なお、ここでは、演算は、数値の部分にのみ行うものとする。
そして、演算部106は、読み出した値にそれぞれ「1.05」を乗算し、乗算結果の合計を算出する。ここでは、合計の値である「8.715万円」を取得する。取得した値は、図示しない記憶媒体等に一時記憶する。なお、ここでは、消費税抜きの商品の価格に消費税率を乗算した価格を和演算するようにしたが、商品の価格が消費税率を含む価格である場合、商品の価格を単に和演算するようにしても良い。
画像情報構成部107は、更新されたオブジェクト配置情報を用いて、上記と同様に立体オブジェクトの画像情報を構成する。「オブジェクトID」が「OBJ1」から「OBJ5」までの立体オブジェクトに対する処理については、上記と同様であるので詳細な説明は省略する。
「オブジェクトID」が「OBJ6」であるグループ用立体オブジェクトについては、図7に示した配置用情報管理表を用いてオブジェクトに配置される配置用情報を取得する代わりに、図10に示したグループ用配置用情報管理表を用いて面に配置する配置用情報を取得する。具体的には、図10においては、「オブジェクトID」が「OBJ6」であるレコードには「第一面」に配置される配置用情報だけが存在するため、画像情報構成部107は、この「第一面」の項目の値を取得する。さらに、画像情報構成部107は、取得した値から、[演算結果]という文字列を検出し、この文字列を、演算部106の演算結果「8.715万円」で置き換える。これにより、「オブジェクトID」が「OBJ6」である立体オブジェクトの第一面に配置する配置用情報として、「ショッピングカート 合計:8.715万円(消費税込)」という情報が取得される。そして、画像情報構成部107は、この配置用情報を配置したグループ用立体オブジェクトの画像を構成する。なお、「オブジェクトID」が「OBJ6」であるグループ用立体オブジェクトは、内部に購入対象となる商品の立体オブジェクトが配置される立体オブジェクトであることから、予め、内部が透過して見えるように、立体オブジェクトの面は、枠を除いて背景が透明となるように属性が設定されているものとする。このような立体オブジェクトの属性を指定する情報は、図示しない記憶媒体等に予め蓄積されているものとする。なお、立体オブジェクトの画像を、透明を指定する属性等に応じて作成することは公知技術であるので、ここでは説明を省略する。なお、配置用情報内の情報を演算部106の演算結果で置き換える処理は、演算部106等が演算終了後に行うようにしても良い。
そして、出力部108は、画像情報構成部107が構成した画像情報を出力する。
図12は、画像情報の出力例を示す図である。図に示すように、「ショッピングカートに入れる」という操作が行われた立体オブジェクト801、802、805が、新たに表示されたグループ用立体オブジェクト806内に配置されている。これにより、ユーザは、ショッピングカートに入れた商品がどれであるかを視覚的に認識することができる。また、グループ用立体オブジェクト806の正面の面上には、内部に配置された立体オブジェクトの表面に配置された価格の消費税込みの合計金額が表示される。これにより、ユーザは、商品を購入した場合の金額を、自分で計算を行うことなく容易に知ることができる。
なお、ショッピングカートに新たに商品が追加された場合、追加された商品の立体オブジェクトも追加して上記と同様の処理を行うようにすればよい。また、ショッピングカートから商品が削除される場合も同様である。なお、ショッピングカートから削除された商品がどこに配置されるかは、例えばデフォルト等で指定しておくようにしても良いし、元の位置を記憶させておくようにして、その元の位置に再度配置し直すようにしても良い。
なお、上記具体例においては、グループ用立体オブジェクト内に、「ショッピングカートに入れる」という操作の対象として選択された立体オブジェクトを配置するようにしたが、操作対象となった立体オブジェクトが一列あるいは複数列に沿って配列されるようにオブジェクト配置情報を更新してもよい。例えば、予め指定された1以上のグリッド線上の所定の間隔を隔てた位置の座標を、立体オブジェクトの中心座標に順次決定し、この決定した座標で立体オブジェクトのオブジェクト配置情報を更新するようにする。所定の間隔は、例えば、予め指定された値であっても良いし、立体オブジェクトの幅や高さ等に、予め指定した値を加えた値であっても良い。グリッド線の位置の情報等は、例えば、予め図示しない記憶媒体等に蓄積しておくようにする。また、グリッド線の代わりにグリッドとなる点等を用いても良い。
そして、画像情報構成部107は、このように更新されたオブジェクト配置情報を用いて、上記具体例と同様に、立体オブジェクトの画像情報を構成する。なお、画像情報構成部107が画像情報を構成する際に、配列された操作対象の立体オブジェクトの最後尾となる位置に、演算部106の演算結果を配置した画像情報を構成するようにしても良い。また、配置する際に、演算結果を示すための予め指定された文字列やバー等の情報を適宜加えてもよい。これらの情報や、これらの情報が配置される位置の情報等は図示しない記憶媒体等に格納するようにすればよい。なお、演算結果は、配列された立体オブジェクトに対して予め指定された他の位置に配列するようにしても良い。
図13は、このようにして操作対象の立体オブジェクトが配置された場合の、出力例を示す図である。
なお、上記具体例においては、立体オブジェクトを選択後、メニュー等を選択することで、選択された立体オブジェクトをショッピングカートに入れる操作を受け付けるようにしたが、例えば、操作対象となる立体オブジェクトをマウス等でドラッグして、出力画面内に設定されている予め指定された領域にドロップすることで、立体オブジェクトに対する所定の操作、例えば上記のようなショッピングカートに入れる操作等を受け付けるようにしても良い。予め指定された領域の輪郭を指定する座標情報等は、図示しない記憶媒体等に蓄積しておくようにすればよい。
なお、上記具体例においては、操作対象となった立体オブジェクトを移動させたり、グループ用立体オブジェクトを配置したりするようにしたが、このような動作を行わずに、単に演算部106の演算結果のみをモニタ等に出力するようにしても良い。
以上、本実施の形態によれば、立体オブジェクトを操作することで、立体オブジェクトの面に配置された数値等の情報を用いた演算を行うことができる。これにより、立体オブジェクトの各面に配置された情報を、立体オブジェクトに対する操作に応じて有効利用することができる。例えば、立体オブジェクトが、商品についての情報を表示するためのものであり、その表面に、商品の価格等の数値が配置されている場合、この数値を用いて、合計金額を算出する演算等の演算が可能となる。
なお、上記実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、上記実施の形態において、一の装置に存在する2以上の通信手段(情報送信部など)は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりする情報や、各構成要素が処理で用いるしきい値や数式、アドレス等の情報等は、上記説明で明記していない場合であっても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。
また、上記実施の形態では、情報処理装置がスタンドアロンである場合について説明したが、情報処理装置は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や受付部は、通信回線を介して入力を受け付けたり、画面を出力したりすることになる。
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。
なお、上記実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、形状情報格納部に格納されている1以上の立体オブジェクトの形状を指定する情報である形状情報と、配置用情報格納部に格納されている形状情報が示す立体オブジェクトの1以上の面に配置される配置用情報とを読み出し、読み出した形状情報が示す1以上の面に対し、それぞれに対応した配置用情報を配置した立体オブジェクトの画像情報を構成する画像情報構成部と、1以上の立体オブジェクに対する予め指定された所定の操作を受け付ける操作受付部と、操作受付部が受け付けた所定の操作に応じて、1以上の各立体オブジェクの1以上の面に配置される配置用情報を用いて所定の演算を行う演算部と、画像情報構成部が構成した画像情報と、演算部の演算結果とを出力する出力部として機能させるためのプログラムである。
なお、上記プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
また、このプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図14は、上記プログラムを実行して、上記実施の形態による情報処理装置を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図14において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905、FD(Floppy(登録商標) Disk)ドライブ906を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図15は、コンピュータシステム900の内部構成を示す図である。図15において、コンピュータ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がどのように動作するのかについては周知であり、詳細な説明は省略する。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。