以下、情報処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
図1は、本実施の形態における情報処理装置1のブロック図である。
情報処理装置1は、形状情報格納部101、オブジェクト配置情報格納部102、配置用情報格納部103、操作受付部104、実行部105、ロック面指定情報格納部106、方向判断部107、操作制限部108、画像情報構成部109、出力部110、ロック面指定情報受付部111、ロック面指定情報蓄積部112および操作可否情報格納部113を備える。
形状情報格納部101には、1以上の立体オブジェクトの形状を指定する情報である形状情報が格納され得る。形状情報とは、例えば、仮想三次元空間内に配置されるオブジェクトの形状等を定義する情報である。形状情報は、例えば、立体オブジェクトのいわゆるモデリング情報である。なお、形状情報は、擬似的に立体オブジェクトを表示するための、二次元のオブジェクトの形状を示す情報であっても良い。ここで述べる立体オブジェクトは、例えば3Dオブジェクトや3Dモデルや立体モデルと呼ばれるものも含む。形状情報は、立体オブジェクトの頂点の座標の情報や、境界線や面等を表現する方程式やそのパラメータの情報等で構成される。ここで述べる座標は、例えば、立体オブジェクト自身を基準に設定される座標系、いわゆるオブジェクト座標系の座標であっても良いし、1以上の立体オブジェクトが配置される仮想三次元空間の座標系、いわゆるワールド座標系の座標であっても良い。
立体オブジェクトは、1以上の面により構成されている。このため、形状情報は、立体オブジェクトの面を定義する情報、あるいは面を定義可能な情報を有している。例えば、立体オブジェクトの面は、例えば、面が他の面とで構成する頂点の座標や、面の周りの辺上の座標等の組合せ等で特定される。あるいは、面の法線を示す情報、例えば法線ベクトル等で特定される。形状情報が示す立体オブジェクトの1以上の面は、例えば、各面を識別するための識別情報と対応付けられていてもよい。このような面の識別情報をここでは、面識別情報と呼ぶ。面識別情報は、例えば、面を特定する頂点の座標の組合せと対応付けられていても良いし、面識別情報は、例えば、面を特定する法線を示す情報と対応付けられていても良い。また、立体オブジェクトの配置が、当該立体オブジェクトを構成する各面が正面となるように配置されるような何パターンかに限定されている場合、各パターンと、そのパターンにおいて正面となる面の面識別情報とが対応付けられていても良い。面識別情報は、形状情報に含まれていても良いし、図示しない記憶媒体等の他の格納部等に蓄積されていても良い。
立体オブジェクトは、例えば、面の構成方法によって、ポリゴンモデリングや、自由曲面を利用したモデリング等に分類できる。形状情報には、立体オブジェクトを出力する際の、立体オブジェクトの色や、透明度、反射、屈折率、バンプなどの設定項目の情報を含んでも良い。形状情報は、大きさや形状や色や透明度等が経時的に変化する動きのある立体オブジェクトの形状情報であっても良い。立体オブジェクトの形状情報は、どのような形式の情報であっても良い。例えば、形状情報は、FLASH(登録商標)形式のファイルであっても良い。立体オブジェクトの形状は、球、円柱、六面体や八面対等の多面体や、立方体、円錐、角錐等、どのような形状であっても良い。
形状情報格納部101には、1以上の立体オブジェクトの形状情報が格納され得る。なお、2以上の立体オブジェクトは、同じ形状および大きさであってもよいし、異なる形状および大きさであっても良い。立体オブジェクトには、立体オブジェクトを識別するための識別情報である立体オブジェクト識別情報が対応付けられていても良い。形状情報のサイズの単位等は、絶対的な単位であっても、相対的な単位であっても良い。また、複数の立体オブジェクトにおいて、共用可能な形状情報等は、リンク情報等を用いて参照することで、相互利用できるようにしても良い。すなわち、2以上の立体オブジェクトの形状情報は、2以上の立体オブジェクトにおいて共用される一の形状情報であってもよい。つまり、2以上の立体オブジェクトの形状情報は、2以上の立体オブジェクトに対応する形状情報と考えても良い。なお、形状情報格納部101には、グループ化された1以上の立体オブジェクトを内部に配置するための立体オブジェクトの形状を示す形状情報が予め格納されているようにしても良い。ここでは、このようなグループ化された1以上の立体オブジェクトを内部に配置するための立体オブジェクトを、グループ用立体オブジェクトと呼ぶ。また、このようなグループ化された1以上の立体オブジェクトを内部に配置するための立体オブジェクトの形状情報は、適宜、図示しない形状情報構成部等で構成されて、形状情報格納部101に格納されるようにしても良い。形状情報格納部101は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
オブジェクト配置情報格納部102には、1以上の立体オブジェクトの配置を指定する情報であるオブジェクト配置情報が格納され得る。ここで述べる1以上の立体オブジェクトは、形状情報格納部101に格納されている形状情報が示す立体オブジェクトである。オブジェクト配置情報は、立体オブジェクトの形状情報の配置を指定する情報と考えても良い。ここで述べる配置とは、例えば、仮想三次元空間内における配置である。ただし、立体オブジェクトを用いて構成された二次元の画像や、立体オブジェクトを示す擬似的な三次元画像が配置される位置を示す二次元の座標情報等の位置の情報であっても良い。この配置は、例えば、立体オブジェクトの位置と方向との組み合わせを有する概念である。ただし、配置や、位置または方向のいずれか一方であっても良い。
オブジェクト配置情報は、立体オブジェクトの配置を結果的に指定可能な情報であればよく、例えば、立体オブジェクトが配置される位置の座標や、立体オブジェクトの方向を指定する情報である。方向を指定する情報は、例えば、ベクトル情報や、仮想三次元空間内における所定の軸を回転軸とした回転角度等の情報である。あるいは、仮想三次元空間内における座標軸と、立体オブジェクトに設定される座標軸との位置関係を示す情報と考えても良い。例えば、仮想三次元空間内における座標軸を基準として、立体オブジェクトに設定される各座標軸をベクトルで表した情報であっても良い。また、オブジェクト配置情報は、立体オブジェクトの大きさ等を指定する情報を含むものであっても良い。立体オブジェクトの位置を指定する座標は、仮想三次元空間内に設定された絶対的な座標であっても良いし、他の立体オブジェクト等に対して設定された相対的な座標であっても良い。また、立体オブジェクトの位置を指定する座標は、立体オブジェクトを構成する辺等が集まる頂点の座標であっても良いし、立体オブジェクトの中心等の位置の座標であっても良い。オブジェクト配置情報は、経時的に立体オブジェクトの配置が変化する動画像用のオブジェクト配置情報であっても良い。例えば、オブジェクト配置情報が複数フレームの情報を有し、フレーム毎に、立体オブジェクトの配置が指定されていても良い。
なお、ここではオブジェクト配置情報と立体オブジェクトの形状情報とをそれぞれ設けた場合について説明するが、形状情報格納部101とオブジェクト配置情報格納部102とを一の格納部で構成するとともに、オブジェクト配置情報を形状情報内に含めるようにしても良い。例えば、形状情報の頂点の情報を立体オブジェクトが配置される空間の座標系の座標で指定することで、形状情報をオブジェクト配置情報としても利用できるようにして、立体オブジェクトの配置の指定も可能としてもよい。なお、各立体オブジェクトを用いてレンダリングにより作成された二次元の画像を、二次元の背景画像上等に配置して最終的な出力画像を作成する場合等においては、オブジェクトの配置される位置の情報は、二次元の情報、例えばxy座標等の座標情報であってもよい。
また、オブジェクト配置情報は、複数の立体オブジェクト同士がグループ化されているか否か等のグループ化の状況を管理する情報を有していても良い。グループ化の状況を管理する情報は、例えば、一のグループを構成する立体オブジェクトに、属するグループを識別するためのグループ識別情報を対応付けることや、同じグループに含まれる立体オブジェクトの識別情報を一のレコードの複数の項目で管理するデータベース等であっても良い。
なお、本実施の形態におけるグループとは、必ずしも上述したようにグループ化状況を管理する情報で管理される立体オブジェクトのグループのみに限るものではなく、結果として、1以上の立体オブジェクトをグループとして、実行部105等が判断可能な状態であればよい。例えば、立体オブジェクトのグループは、立体オブジェクトの配置に応じて判断可能なグループであっても良い。具体的には、上述したように一のウィンドウ内に配置されている1以上の立体オブジェクトを、一のグループと考えても良い。また、立体オブジェクトが階層化されて管理されている場合、一の階層に属する立体オブジェクトや、一の立体オブジェクトに従属している立体オブジェクトを一のグループと考えても良い。また、予め指定された領域内に配置されている立体オブジェクトを、一のグループの立体オブジェクトと考えても良い。このような予め指定された領域を指定する情報は、例えば、図示しない記憶媒体等に格納される。予め指定された領域は、例えば、購入対象物についての立体オブジェクトが配置される領域である。また、同じ属性を有する、あるいは同じ属性と対応付けられた立体オブジェクトを一のグループの立体オブジェクトと考えても良い。具体例を挙げると、立体オブジェクトが商品についての情報が配置されている立体オブジェクトである場合を例に挙げて説明すると、ユーザが「ショッピングカートに入れた」ことを示す情報と対応付けられた立体オブジェクトを一のグループの立体オブジェクトと考えても良い。また、購入対象の商品リストに登録された立体オブジェクトを一のグループの立体オブジェクトと考えても良い。なお、オブジェクト配置情報は、例えば、後述する実行部105が立体オブジェクトの配置を変更する際に、実行部105等により変更される。
オブジェクト配置情報格納部102は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。なお、このオブジェクト配置情報格納部102を、例えば、デフォルトで用意されたオブジェクト配置情報が予め格納されている格納部(図示せず)等から読み出したデフォルトのオブジェクト配置情報が一時的に格納され得るテンポラリの格納部等と考えても良い。
配置用情報格納部103には、1以上の立体オブジェクトのそれぞれを構成する1以上の面に配置される1以上の情報である配置用情報が格納され得る。具体的には、配置用情報格納部103には、形状情報格納部101に格納されている1以上の各立体オブジェクトの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との組合せ等を一の格納部で実現しても良い。配置用情報格納部103は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
操作受付部104は、形状情報格納部101に格納されている形状情報が示す1以上の立体オブジェクトに対する操作を受け付ける。操作受付部104が立体オブジェクトについて受け付ける操作は、どのような操作であっても良い。この操作は、例えば、例えば立体オブジェクトに関して何らかの変更を行うための操作である。例えば、立体オブジェクトの配置に関する操作のうちの予め指定された操作であっても良いし、立体オブジェクトの属性に関する操作のうちの予め指定された操作であっても良いし、立体オブジェクトに配置される配置用情報に関する操作のうちの予め指定された操作であっても良い。ここで述べる配置とは、位置や向き等を含む概念である。立体オブジェクトの配置に関する操作とは、立体オブジェクトの位置や向き等を変更するための操作等である。例えば、立体オブジェクトの配置に関する操作とは、立体オブジェクトの配置を変更させるための指示を与えるための操作、例えば「y軸に平行に50ピクセル移動」や「x軸を回転軸として90°回転」というコマンド等を与えるための操作であっても良いし、変更後の、立体オブジェクトの配置を指定する座標や向きの情報等を与えることでもよい。また、立体オブジェクトの配置に関する操作は、立体オブジェクトを所定の領域に移動させる操作であっても良い。立体オブジェクトの属性に関する操作とは、立体オブジェクトの属するグループ等の属性等を変更するための操作である。例えば、立体オブジェクトが商品に対応した立体オブジェクトであったとすると、この立体オブジェクトに対応した商品を購入対象として選択して、この立体オブジェクトに、購入対象であるという属性を与える操作を、立体オブジェクトの属性に関する操作と考えても良い。立体オブジェクトに配置される配置用情報に関する操作とは、例えば、立体オブジェクトに配置される配置用情報を変更する操作等である。例えば、配置用情報を、立体オブジェクトに対して割り当てる操作や、配置用情報の値を変更する操作等である。
立体オブジェクトに対する配置に関する操作以外の操作は、例えば、立体オブジェクトをグループ化する操作である。例えば、立体オブジェクトを一のグループに対応付ける処理をグループ化と考えても良い。例えば、上述したように、立体オブジェクトに、購入対象であるという属性等の予め指定された所定の属性を与える操作が、立体オブジェクトをグループ化する操作と考えてよい。また、例えば、予め指定された領域に立体オブジェクトの位置を変更する操作がグループ化する操作である。立体オブジェクト等をグループ化する処理や、グループ化された立体オブジェクトの管理方法等については、公知技術であるので、ここでは詳細な説明を省略する。立体オブジェクトに対する操作は、通常は、操作対象となる立体オブジェクトを指定する情報を含む情報である。なお、操作受付部104は、予め指定された所定の操作以外の操作を受けつけても良い。
また、操作受付部104は、後述する操作制限部108によって制限された立体オブジェクトに対する操作について、その制限を解除するための操作を受け付けてもよい。立体オブジェクトに対する操作の制限を解除するための操作とは、例えば、予め指定されたパスワードやユーザ識別情報等を入力するための一連の操作である。あるいは予め指定された操作、例えば、予め指定されたメニューを選択する操作や、予め指定されたキーを押す操作等であってもよい。操作受付部104が受け付ける操作は、後述する操作可否情報格納部113に格納されている操作を制限する操作可否情報を、操作制限しない操作可否情報に変更させるための操作でもよい。
ここで述べる受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。操作受付部104は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
実行部105は、操作受付部104が受け付けた操作に応じて、1以上の各立体オブジェクトに対する処理を実行する。実行部105が立体オブジェクトに対して実行する処理は、具体的には、操作受付部104が受け付けた操作に応じた処理である。例えば、実行部105は、操作受付部104が受け付けた配置に関する操作に応じて、立体オブジェクトの配置が変更されるよう、オブジェクト配置情報格納部102に格納されているオブジェクト配置情報を更新する。具体的には、ある立体オブジェクトに対して右方向に90°回転させるための操作を受け付けた場合、この操作に応じて立体オブジェクトが右方向に90°回転されるよう、オブジェクト配置情報を変更する。なお、各立体オブジェクトに対する処理を実行する、とは、立体オブジェクトの配置等を変更したりするだけでなく、オブジェクトに配置される配置用情報を変更する処理や、配置用情報を用いて予め指定されている演算を行ったりする処理や、立体オブジェクトを追加したり削除したりする処理等も含む。また、実行部105は、操作受付部104が受け付けた操作に応じて、立体オブジェクトに対する処理以外の処理を実行しても良い。
実行部105は、例えば、操作受付部104が受け付けた予め指定された所定の操作に応じて、1以上の各立体オブジェクの1以上の面に配置される配置用情報を用いて予め指定された所定の演算を行うようにしてもよい。具体的には、実行部105は、操作受付部104が受け付けた操作が、予め指定された所定の操作であるか否かを判断し、所定の操作である場合に所定の演算を行う。所定の操作は、上述したように、立体オブジェクトをグループ化する操作等である。所定の演算とは、具体的には、1以上の各立体オブジェクトのそれぞれの面に配置される数値をパラメータとする演算である。演算は例えば、予め指定された演算式に数値を代入して行われても良いし、予め指定されたルールに従って演算が行われても良い。演算式や演算のルールは、例えば図示しない記憶媒体等に予め格納されている。ここで述べる演算は、四則演算のうちの1以上を含む演算である。例えば、演算は、四則演算のうちの1以上を組み合わせた演算である。具体的には、演算は、1以上の各立体オブジェクトのそれぞれの面に配置される数値の和演算、差演算、積演算、または商演算のうちの少なくとも一つを含む演算である。具体例を挙げると、各立体オブジェクトの面に配置された数値を加算する演算である。また、各立体オブジェクトの面に配置された数値に所定の係数等を乗算した値を加算する演算である。所定の操作であるか否かは、例えば、予め指定したコマンドを受け付けたか否かや、予め指定したイベントが発生したか否か等により判断される。所定の操作に応じてとは、所定の操作をトリガーとして一の演算が行われることであっても良いし、所定の操作によって、行われる演算が異なることであっても良いし、その両方であっても良い。また、実行部105が、どの立体オブジェクトを演算の対象とするかは問わない。例えば、立体オブジェクトをグループに追加する操作を行った場合、同じグループに含まれる立体オブジェクトに配置されている情報を演算の対象としても良い。また、全ての立体オブジェクトを演算の対象としても良い。また、操作を行う際に指定された、あるいは選択された1以上の立体オブジェクトを演算の対象としても良い。
実行部105は、例えば、各立体オブジェクトに配置された情報のうちの、ユーザやデフォルト等により予め指定された情報を用いて演算を行う。実行部105は、各立体オブジェクトに配置された情報のうちの、どの情報を演算に用いるようにしても良い。例えば、実行部105は、各立体オブジェクトの予め指定された面に配置された数値等の情報を演算のパラメータとしても良い。例えば、立体オブジェクトの面にx1面、x2面等の識別情報が付与されている場合、x1面に配置された数値等だけを所定のパラメータとして用いて演算を行っても良い。また、各立体オブジェクトに配置された、予め指定された属性を有する数値等の情報を演算のパラメータとしても良い。予め指定された属性とは、どのような属性でも良く、例えば、価格や、数量等の属性である。例えば、実行部105は、所定の操作の対象となった立体オブジェクトから、「円」という文字列を有する配置用情報を検出し、この配置用情報の数値をパラメータとして所定の演算を行っても良い。これにより、属性が価格である数値の演算が行うことができる。また、所定の操作の対象となった立体オブジェクトから、「価格」というタグが付与された配置用情報を検出し、この配置用情報に含まれる数値をパラメータとして所定の演算を行っても良い。
例えば、立体オブジェクトが商品についての立体オブジェクトであり、その表面には、商品名や商品の価格の情報である配置用情報が配置されていたとする。そして、ユーザ等により、複数の立体オブジェクトについてグループ化を行う操作、例えば商品を示す複数の立体オブジェクトを購入対象に選択する処理が行われたとする。この場合、実行部105は、グループ化する操作が行われた複数の立体オブジェクトのそれぞれについて、表面に配置されている配置用情報の中から、末尾に予めデフォルト等で指定されている「円」という文字が続いている数値を取得する。そして、実行部105は、その数値に予め指定された消費税率、例えば「1.05」を乗算し、乗算して得られた値を加算して、ユーザが購入対象として選んだ商品の税込み価格の合計を算出する。
実行部105は、通常、MPUやメモリ等から実現され得る。実行部105の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
ロック面指定情報格納部106には、形状情報が示す立体オブジェクトを構成する面のうちの、操作にロックをかけるための面であるロック面を指定する情報であるロック面指定情報が格納され得る。操作にロックをかける、とは、具体的には、立体オブジェクトに対して行われた1以上の操作を無効とすることである。ロック面とは、後述するように、操作にロックをかけるための判断対象となる面である。ロック面が指定可能な情報であればどのような情報であっても良い。
ロック面指定情報は、形状情報が示す立体オブジェクトの面に、上述したように面識別情報が対応付けられている場合、ロック面となる面の面識別情報をロック面指定情報としても良い。また、立体オブジェクトの各面は、法線ベクトルで識別可能であるため、法線ベクトルを、ロック面指定情報としても良い。但し、この実施の形態においては、立体オブジェクトの外側に向かう法線ベクトルを指すものとする。あるいは、ロック面となる面を定義する、立体オブジェクトの頂点の座標群をロック面指定情報としても良い。また、立体オブジェクトが、予め指定された限られた数の配置パターンのみを有している場合等においては、各配置パターンのうちの、前面に表示される面がロック面である配置パターンを識別する情報をロック面指定情報として用いても良い。
ロック面は、一の立体オブジェクトに複数指定されていても良い。ロック面指定情報は、各立体オブジェクト毎に個別に対応付けられていても良いし、複数の立体オブジェクトに一括して対応付けられていても良い。立体オブジェクトと、当該立体オブジェクトのロック面を指定するロック面指定情報とは、どのように対応付けられていても良い。例えば、対応するロック面指定情報と立体オブジェクトの識別情報(あるいは形状情報の識別情報)とが、対応付けられてロック面指定情報格納部106に蓄積しておくようにしても良い。ロック面指定情報と立体オブジェクトの識別情報とが対応付けて蓄積される、ということは、例えば、対応するロック面指定情報と立体オブジェクトとが一のレコードの異なるフィールドの値として蓄積されることである。あるいは、対応するロック面指定情報と立体オブジェクトとを、一のレコードの異なるフィールドの値として有する管理情報を、ロック面指定情報格納部106や図示しない記憶媒体等に蓄積しておくようにしても良い。
ロック面指定情報格納部106に立体オブジェクトと対応付けられたロック面指定情報が蓄積される過程は問わない。例えば、予め、デフォルト等で蓄積されていても良い。また、後述するロック面指定情報受付部111が受け付けたロック面指定情報が、立体オブジェクトと対応付けられて蓄積されても良い。ロック面指定情報格納部106は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
方向判断部107は、配置された立体オブジェクトの、ロック面指定情報が指定するロック面が、予め指定された方向を向いているか否かを判断する。例えば、方向判断部107は、オブジェクト配置情報等に応じて仮想三次元空間等に配置された立体オブジェクトの、ロック面指定情報が指定するロック面が、予め指定された方向を向いているか否かを判断する。方向判断部107は、例えば、形状情報が示す立体オブジェクトを、当該形状情報に対応付けられたオブジェクト配置情報に応じて、例えばオブジェクト配置情報が示す位置や向きで、仮想三次元空間等に配置した場合に、その立体オブジェクトのロック面が予め指定された方向を向いているか否かを判断する。予め指定された方向は、具体的には、予め指定された操作以外の操作を無効とするか否かを判断するための方向である。操作をロックするか否かを判断するための方向と考えても良い。
なお、方向判断部107は、結果的にロック面が予め指定された方向を向いているか否かを判断できればよく、例えば、方向判断部107は、ロック面指定情報が指定するロック面がある位置から見て所定の面であるか否かを判断してもよい。具体的には、方向判断部107は、ロック面指定情報が指定するロック面が正面であるか否かを判断してもよい。ここで述べる正面とは、通常は、例えばディスプレイ等で出力された場合の、ユーザ側からみて前面に見える面である。ただし、立体オブジェクトが配置される座標系(ワールド座標系)において、予め指定された位置(例えばZ軸の正方向の位置から)から、予め指定された方向(例えばZ軸の原点に向かう方向)に向かって立体オブジェクトを見た場合に、前面に位置する立体オブジェクトの面を正面と考えても良い。
方向判断部107は、どのように立体オブジェクトのロック面指定情報が指定するロック面が、予め指定された方向を向いていると判断してもよい。例えば、各立体オブジェクトの面の中から、予め指定された方向を向いている面を検出し、この面が、ロック面指定情報が指定する面であるか否かを判断してもよい。具体的には、立体オブジェクトの各面の中から、予め指定された方向を向いている面を検出し、この予め指定された方向を向いている面の面識別情報と、ロック面指定情報である面識別情報とが一致するか否かを判断する。そして、一致する場合に、方向判断部107は、ロック面が、予め指定された方向を向いていると判断する。一致しない場合、予め指定された方向を向いていないと判断する。
なお、面がある方向を向く、とは、例えば、面の立体オブジェクトの外側に向かう法線が、ある方向と略平行であることを意味すると考えても良い。立体オブジェクトの面が、予め指定されている方向を向いているか否かは、例えば、立体オブジェクトの一の面の法線ベクトルが、予め指定されている方向を示すベクトルと略平行であるか否かを検出することで判断可能である。あるいは、立体オブジェクトの一の面が、予め指定されている方向を示すベクトルと略垂直であるか否かを検出することでも判断可能である。また、上述したように、立体オブジェクトの取り得る配置についての配置パターンが限られており、いずれの配置パターンにおいても、立体オブジェクトの一の面が上述した予め指定された方向を示す面となるよう設定されているとすると、これらの配置パターンのうちの、予め指定された方向を示している立体オブジェクトの一の面がロック面となる配置パターンを示す識別情報を、ロック面指定情報として用いてもよい。この場合、現在の立体オブジェクトの配置を示す配置パターンの識別情報が、ロック面指定情報と一致する場合、予め指定された方向を向いていると判断することができる。
ここで、略平行とは、完全に平行である場合に加えて、完全に平行な状態から、予め指定された許容範囲だけ傾いている場合も含む状態であることを示す。略垂直とは、完全に垂直である場合に加えて、完全に垂直な状態から、予め指定された許容範囲だけ傾いている場合も含む状態であることを示す。予め指定された許容範囲は、予め設定しておくようにすればよい。
また、ロック面指定情報が指定する各立体オブジェクトのロック面が、予め指定された方向を向いているか否かを判断するようにしても良い。具体的には、各ロック面の法線ベクトルを取得し、この法線ベクトルが、予め指定された方向に略平行であるか否かを判断するようにする。そして、略へ移行であると判断された場合、方向判断部107は、ロック面が予め指定された方向を向いていると判断する。
例えば、立体オブジェクトが立方体や直方体であり、各面がそれぞれオブジェクト座標系のx軸、y軸、z軸に垂直である場合において、予め指定された方向が、立体オブジェクトの配置されるワールド座標系のX軸、Y軸、Z軸のいずれかに平行な方向であったとすると、予め指定された方向を示す軸と、立体オブジェクトのロック面に垂直な軸とが略平行であって、2つの軸の正の方向を示す向きが、予め指定された相対的な関係となる場合、ロック面が予め指定された方向を向いていると判断しても良い。
なお、面がある方向を向く、ということを、例えば、面の立体オブジェクトの外側に向かう法線が、ある一点、もしくは予め指定されたその一点の周辺を含む領域を通過することと考えても良い。例えば、一の面が、正面であるということは、例えば、その法線ベクトルの延長上に、立体オブジェクトの画面をレンダリングする際の視点(カメラ位置)となる点が存在することと考えても良い。このような場合、例えば、立体オブジェクトの、レンダリングの際の視点との距離が最も近い面を、正面となる面と判断するようにしても良い。あるいは視点の代わりに、予め指定された座標を用いても良い。
方向判断部107は、操作受付部104が、回転や移動等のオブジェクトの配置を変更する操作を受け付けた場合にだけ上記の判断を行うようにしても良い。また、立体オブジェクトのロック面が、予め指定された方向を向いていると判断した直後から、後述するように立体オブジェクトの操作に対する制限が解除されるまでは、上記の判断を行わないようにしても良い。あるいは、上記の判断を、一定または不定の所定のタイミングで繰り返すとともに、後述するように立体オブジェクトの操作に対する制限が解除された直後から、立体オブジェクトに対する所定回数、例えば1回の操作が行われるまでは、上記の判断を行わないようにしても良い。
方向判断部107は、通常、MPUやメモリ等から実現され得る。方向判断部107の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
操作制限部108は、方向判断部107が、ロック面指定情報が指定するロック面が予め指定された方向を向いていると判断した場合に、立体オブジェクトに対する操作を制限する。例えば、方向判断部107が、立体オブジェクトのロック面が、正面であると判断した場合に、操作制限部108は、立体オブジェクトに対する操作を制限する。立体オブジェクトに対する操作を制限する、ということは、例えば、立体オブジェクトに対する操作の一部または全てを無効とする、ということである。具体的には、立体オブジェクトを回転させる操作を含む操作を無効とすることが好ましい。立体オブジェクトを回転できないようにして、立体オブジェクトの様々な面に配置されている配置情報が第三者に見られないようにすることができ、セキュリティを確保できるからである。
操作の制限対象となる立体オブジェクトは、例えば、少なくとも、ロック面が予め指定された方向を向いている立体オブジェクトを含む立体オブジェクトである。例えば、ロック面が予め指定された方向を向いている立体オブジェクトに対する操作だけが制限されても良い。また、全ての立体オブジェクトに対する操作が制限されても良い。立体オブジェクトに対する操作を制限するということは、立体オブジェクトに対する操作の少なくとも一部にロックをかけることと考えても良い。立体オブジェクトに対する操作も含めて、情報処理装置1に対する他の操作も制限するようにしても良い。なお、立体オブジェクトの操作に、後述する操作の制限を解除するための操作を含むと考えた場合、操作制限部108が行う操作の制限は、例えば、立体オブジェクトに対する操作のうちの、少なくともこの操作の制限を解除するための操作を除いた操作を無効とすることとすることが好ましい。なお、立体オブジェクトの操作に、後述する操作の制限を解除するための操作が含まれない場合、操作制限部108が行う操作の制限は、例えば、立体オブジェクトに対する全ての操作を無効とすることとであってもよい。
操作を制限するということは、結果的に、立体オブジェクト対して行われた少なくとも一部の操作が無効になればよく、どのように、操作を無効にするかは問わない。例えば、操作受付部104が、立体オブジェクトに対する立体オブジェクトに対する操作を受け付けないよう、操作受付部104に指示することであっても良い。また、操作受付部104が、操作を受け付けた後、その操作が立体オブジェクトに対する操作であった場合、その操作により発生する指示やイベント等を無視したり、破棄したりするよう、操作受付部104に指示することであっても良い。また、操作受付部104が受け付けた操作が無効の対象となる操作である場合、実行部105に対し、その操作に応じて受け付ける指示等を無視したり、指示に応じた操作を行わないよう指示することであっても良い。どのような操作を制限するかを設定する情報は、例えば、予め図示しない記憶媒体等の格納部に格納しておくようにすればよい。例えば、制限によって無効とされる操作によって発生するイベントや指示等のリストの情報を、予め格納しておくようにすればよい。
例えば、操作制限部108は、方向判断部107が示す、ロック面指定情報が指定するロック面が予め指定された方向を向いているか否かの判断結果を、一定または不定の所定のタイミング等で繰り返し取得し、取得した判断結果が、ロック面が予め指定された方向を向いていることを示す判断結果である場合に、立体オブジェクトに対する操作を制限するよう、操作受付部104や実行部105に指示するようにしても良い。
また、操作制限部108は、方向判断部107がロック面指定情報の指定するロック面が予め指定された方向を向いているか否かの判断結果が取得した以降は、方向判断部107の判断結果に関係なく、立体オブジェクトに対する操作を制限するよう、操作受付部104等に指示するようにしても良い。
また、操作制限部108は、操作可否情報格納部113に格納されている操作可否情報が、操作を制限することを示す操作可否情報であるか否かを判断し、操作を制限することを示す操作可否情報である場合、立体オブジェクトに対する操作を制限するよう、操作受付部104等に指示するようにしても良い。
操作制限部108は、例えば、操作受付部104が立体オブジェクトに対する操作の制限を解除するための操作を受け付けた場合に、操作に対する制限を解除する。操作受付部104が受け付ける立体オブジェクトに対する操作の制限を解除するための操作は、予め指定されたパスワードを入力する一連の操作や、特殊なキーの組合せを入力する操作である。なお、操作受付部104が受け付けた操作の制限を解除するためのパスワード入力等の操作において、その入力内容が適切なものであるか否か等を判断する処理や、その判断のための構成は、通常の認証処理等において公知の技術であるので、ここでは説明を省略する。このような構成は、操作受付部104が有していても良いし、操作制限部108が有していても良い。
例えば、操作受付部104が立体オブジェクトに対する操作の制限を解除するための操作を受け付けた場合に、操作制限部108は、立体オブジェクトに対する操作の制限を解除するよう、操作受付部104や実行部105に指示するようにしても良い。
なお、操作制限部108は、操作受付部104が立体オブジェクトに対する操作の制限を解除するための操作を受け付けた場合、具体的には、操作受付部104が、後述する操作可否情報格納部113に格納されている操作を制限する操作可否情報を、操作制限しない操作可否情報に変更させるための操作を受け付けた場合に、操作可否情報格納部113に格納されている操作を制限することを示す操作可否情報を、操作を制限しないことを示す操作可否情報に変更してもよい。
なお、上記のように立体オブジェクトに対する操作の制限が解除された場合、その直後の、立体オブジェクトに対する所定回数、例えば1回の操作においては、方向判断部107がロック面が予め指定された方向を向いているか否かの判断を行わないようにする、もしくは、操作制限部108が方向判断部107の判断結果に関係なく、操作の制限を行わないようにして、立体オブジェクトに対する操作を受け付け可能として、解除直後に、立体オブジェクトの操作に制限が再度加えられることを防ぐようにしても良い。
また、上記のように立体オブジェクトに対する操作の制限が解除された場合、立体オブジェクトに対する所定回数の、配置を変更する操作を受け付けるまで、方向判断部107はロック面が予め指定された方向を向いているか否かの判断を行わないようにする、もしくは、操作制限部108が方向判断部107の判断結果に関係なく、操作の制限を行わないようにして、立体オブジェクトに対する操作を受け付け可能としてもよい。
あるいは、立体オブジェクトに対する制限が解除された直後に、立体オブジェクトのロック面が、予め指定された方向を向かないよう立体オブジェクトの配置を自動的に変更して、再度操作の制限がかからないようにしてもよい。
操作制限部108は、通常、MPUやメモリ等から実現され得る。操作制限部108の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
画像情報構成部109は、立体オブジェクトの形状情報と、形状情報が示す立体オブジェクトの1以上の面に配置される配置用情報とを読み出し、読み出した形状情報が示す1以上の面に対し、それぞれに対応した配置用情報を配置した立体オブジェクトの画像情報を構成する。また、画像情報構成部109は、立体オブジェクトの形状情報と、形状情報が示す立体オブジェクトの1以上の面に配置される配置用情報と、立体オブジェクトに対応するオブジェクト配置情報とを読み出し、読み出した形状情報が示す1以上の面に対し、それぞれに対応した配置用情報を配置した立体オブジェクトを、オブジェクト配置情報が示すよう配置した画像情報を構成しても良い。また、画像情報構成部109は、上述した操作の制限を解除するための入力インターフェース画面、例えばパスワード入力画面等を、操作が制限された立体オブジェクト等に対する操作や、情報処理装置1に対する他の操作に応じて構成し、後述する出力部110から出力するようにしてもよい。
画像情報構成部109は、通常、MPUやGPUやメモリ等から実現され得る。画像情報構成部109の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力部110は、画像情報構成部109が構成した画像情報を出力する。ここで述べる出力とは、ディスプレイへの表示、プロジェクターを用いた投影、外部の装置への送信、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
出力部110は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部110は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
ロック面指定情報受付部111は、形状情報格納部101に格納されている一の立体オブジェクトに対するロック面指定情報を受け付ける。例えば、ロック面指定情報受付部111は、マウスやタッチパッドやキーボード等により、立体オブジェクトの1以上の面を指定し、この指定した面をロック面を設定する指示を与えることで、この指定された面をロック面に指定するロック面指定情報を取得する。あるいは、予め用意された一の立体オブジェクトに対するロック面指定情報をユーザ等から受けつけても良い。
ロック面指定情報受付部111に対する情報の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。ロック面指定情報受付部111は、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
ロック面指定情報蓄積部112は、形状情報格納部101に格納されている1以上の立体オブジェクトのそれぞれについて、ロック面指定情報受付部111が受け付けたロック面指定情報が指定する面と同じ面を指定するロック面指定情報を取得し、取得したロック面指定情報を各立体オブジェクトと対応付けて、ロック面指定情報格納部106に格納する。ロック面指定情報が指定する面と同じ面とは、例えば、複数の立体オブジェクトが同じ、もしくは相似形の立体オブジェクトであって、複数の立体オブジェクト間で、一致、もしくは対応する面に、同じ識別情報が割り当てられていた場合、一の立体オブジェクトの一の面を指定するロック面指定情報をロック面指定情報受付部111が受け付けた場合、この一の面の識別情報と同じ識別情報を有する他の立体オブジェクトの面を指定するロック面指定情報が取得され、取得したロック面指定情報が各立体オブジェクトと対応付けられて、ロック面指定情報格納部106に蓄積される。
ロック面指定情報蓄積部112は、通常、MPUやメモリ等から実現され得る。ロック面指定情報蓄積部112の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
操作可否情報格納部113には、立体オブジェクトに対する操作の制限を行うか否かを示す情報である操作可否情報が格納され得る。操作可否情報は、立体オブジェクトと個別に対応付けて格納されていても良いし、対応付けて格納されていなくても良い。操作可否情報は、結果的に、立体オブジェクトに対する操作の制限を行うか否かを示すことが可能な情報であればよい。操作可否情報は、例えば、操作の制限が行われることを示す情報だけであっても良い。この場合、操作可否情報が蓄積されていなければ、結果的に、操作可否情報によって操作が可能であることが示されていることとなる。操作可否情報は操作の制限が行われている場合と行われていない場合とで値が異なる、もしくは値の有無が変更されるいわゆるフラグの情報であってもよい。なお、操作可否情報格納部113には、方向判断部107等が、最新の操作可否情報が参照できるように、操作可否情報が蓄積されれば、操作可否情報がどのように蓄積されても良い。例えば、新しい操作可否情報が蓄積される際に、古い操作可否情報を上書きするようにしても良い。あるいは、古い操作可否情報には、最新でないことを示すフラグ等の情報を付与するようにしてもよい。操作可否情報格納部113は、不揮発性の記録媒体でも、揮発性の記録媒体でも良い。
次に、情報処理装置1の動作について図2のフローチャートを用いて説明する。ここでは、一の立体オブジェクトのロック面が所定の方向を向いていると判断された場合、全ての立体オブジェクトに対する操作を制限する場合を例に挙げて説明する。
(ステップS100)画像情報構成部109は、形状情報格納部101から立体オブジェクトの形状情報を読み出し、各立体オブジェクトに対応したオブジェクト配置情報および配置用情報を、オブジェクト配置情報格納部102および配置用情報格納部103から読み出して、各面に配置用情報が配置された立体オブジェクトが、オブジェクト配置情報が示す位置および方向に配置された画像情報を構成する。
(ステップS101)出力部110は、画像情報構成部109が構成した画像情報を出力する。例えば、モニタ等に表示する。
(ステップS102)操作制限部108は、操作可否情報格納部113に格納されている操作可否情報が、立体オブジェクトに対する操作が制限されていることを示すものであるか否かを判断する。ここでは、例として、1以上の立体オブジェクトに対して一の操作可否情報だけが格納され得るものであるとする。なお、操作可否情報の初期値は、操作が制限されていないことを示す値であるとする。操作が制限されていることを示す操作可否情報でない場合、どのような操作を受け付けても良いことを操作受付部104に指示してステップS105に進む。具体的には、操作制限を解除する処理に限らない立体オブジェクトに対する処理を指示するための操作を受け付けて良いことを操作受付部104に指示する。また、操作が制限されていることを示す操作可否情報である場合、制限された操作だけを受け付けるよう操作受付部104に指示してステップS114に進む。ここでは、例として、制限された操作が、操作制限を解除するための処理であるとする。
(ステップS103)ロック面指定情報受付部111は、ロック面指定情報を受けつけたか否かを判断する。受け付けた場合、ステップS116に進み、受け付けていない場合、ステップS104に進む。
(ステップS104)操作受付部104は、立体オブジェクトに対する操作を受け付けたか否かを判断する。ここで受け付ける操作は、どのような操作であっても良い。受け付けた場合、ステップS105に進み、受け付けていない場合、ステップS103に戻る。
(ステップS105)実行部105は、操作受付部104が受け付けた操作に応じた処理を、立体オブジェクトに実行させる。例えば、立体オブジェクトの配置、例えば位置や、向きを変更する処理を実行しても良い。また、配置の変更に応じて、立体オブジェクトに配置されている配置用情報を用いて、予め指定された演算を行っても良い。また、操作に応じて、立体オブジェクトに配置されている配置用情報を変更してもよい。また、操作受付部104が受け付けた操作が、予め指定された操作である場合、操作に応じて、オブジェクト配置情報を変更し、立体オブジェクトの配置用情報から、数値を取得し、その数値の演算を行うようにしても良い。
(ステップS106)方向判断部107は、カウンターnに1を代入する。
(ステップS107)方向判断部107は、カウンターkに1を代入する。
(ステップS108)方向判断部107は、n番目の立体オブジェクトにk番目のロック面があるか否かを判断する。具体的には、n番目の立体オブジェクトに対応したk番目のロック面指定情報がロック面指定情報格納部106に蓄積されているか否かを判断する。蓄積されている場合、ステップS109に進み、蓄積されていない場合、ステップS111に進む。
(ステップS109)方向判断部107は、k番目のロック面が予め指定された方向を向いているか否かを判断する。例えば、k番目のロック面指定情報が示す面の法線ベクトルが、予め指定された方向を示す法線ベクトルと略平行であるか否かを判断する。そして、略平行であれば、予め指定された方向を向いていると判断し、略平行でなければ、予め指定された方向を向いていないと判断する。また、立体オブジェクトの取り得る配置パターンが限られている場合(例えば、立体オブジェクトの取り得る向きがいくつかのパターンに限定されている場合)、各配置パターンで立体オブジェクトを配置した場合の、予め指定された向きとなる面の面識別情報を、配置パターンと対応付けてオブジェクト配置情報格納部102等に予め格納しておく。そしてオブジェクト配置情報を用いて取得される現在の立体オブジェクトの配置パターンから、予め指定された方向を向いている面の面識別情報を取得し、この面識別情報が示す面が、k番目のロック面指定情報が示す面と一致するか否かを判断するようにしても良い。そして一致する場合、ロック面が予め指定された方向を向いていると判断するようにし、一致しない場合、ロック面が予め指定された方向を向いていないと判断するようにしてもよい。k番目のロック面が予め指定された方向を向いていない場合、ステップ110に進み、予め指定された方向を向いている場合、ステップS113に進む。
(ステップS110)方向判断部107は、カウンターkを1インクリメントする。そして、ステップS108に戻る。
(ステップS111)方向判断部107は、カウンターnを1インクリメントする。
(ステップS112)方向判断部107は、n番目の立体オブジェクトがあるか否かを判断する。ある場合、ステップS107に戻り、ない場合、ステップS103に戻る。
(ステップS113)方向判断部107は、操作可否情報格納部113に格納されている操作可否情報を、立体オブジェクトに対する操作を制限することを示す操作可否情報に変更する。例えば、既に格納されている操作可否情報を上書きするように、立体オブジェクトに対する操作を制限することを示す操作可否情報を蓄積する。そして、ステップS102に戻る。
(ステップS114)操作受付部104は、立体オブジェクトに対する操作制限を解除するための操作を受け付けたか否かを判断する。例えば、操作制限を解除するための特定の指示の入力、例えば特定のキーの組合せの入力を受け付けたか否かを判断する。あるいは、操作制限を解除するために用意されたパスワードと一致するパスワードを受け付けたか否かを判断してもよい。受け付けた操作が、操作制限を解除するための操作である場合、ステップS115に進み、解除するための操作でない場合、ステップS102に戻る。
(ステップS115)操作制限部108は、操作制限を行わないことを示す操作可否情報を操作可否情報格納部113に蓄積する。例えば、操作制限部108は、操作可否情報格納部113に格納されている操作可否情報を、操作に対する制限が行われていないことを示す操作可否情報で上書きして蓄積する。そして、操作受付部104にどのような操作を受けつけても良いことを指示して、ステップS103に戻る。
なお、各立体オブジェクトに対して個別に、操作可否情報を設けるようにし、ステップS102において、操作対象となる1以上の各立体オブジェクトについて、それぞれに対応する操作可否情報が操作を制限することを示すものであるか否かを判断し、1以上の操作可否情報が操作を制限することを示すものである場合には、ステップS114に進み、操作を制限することを示す操作可否情報がない場合には、ステップS103に進むようにしてもよい。
また、操作を制限することを示す操作可否情報に応じて行われる操作の制限によって受け付け可能となる操作は、制限解除の操作に限るものではなく、例えば、制限解除の操作に加えて、その他の操作も受け付け可能として良い。
また、ステップS102とステップS114との間のステップとして、制限解除のためのパスワード入力のインターフェース画面等を出力するための操作を受け付けたか否かを判断するステップや、この操作に応じてインターフェース画面を出力するステップや、このインターフェース画面を介して、パスワード入力を受け付けたか否かを判断するステップや、入力されたパスワードが、制限解除のためのパスワードであるか否かを判断するステップ等を設けるようにしても良い。この場合、入力されたパスワードが制限解除のパスワードである場合に、ステップS114で制限解除の操作を受け付けたと判断するようにしても良い。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における情報処理装置1の具体的な動作について説明する。ここでは、情報処理装置1により、商品についてのカタログを表示する場合を例に挙げて説明する。ここでは、立体オブジェクトが立方体である場合を例に挙げて説明する。なお、本具体例において示しているサイズや角度等は、あくまでも説明のための便宜上のものであり、図等の立体オブジェクトの配置やサイズ等を正確に示さない場合がある。
図3は、形状情報格納部101に格納されている形状情報を管理するための形状情報管理表である。形状情報は、ここでは例として予め用意されたものが蓄積されているものとする。形状情報管理表は、「オブジェクトID」、「サイズx」、「サイズy」、「サイズz」、「x1面」、「x2面」、「y1面」、「y2面」、「z1面」、「z2面」という項目を有している。「オブジェクトID」は立体オブジェクトを識別するための識別情報である。「サイズx」は、立体オブジェクトのx軸方向の長さ、すなわち幅である。「サイズy」は、立体オブジェクトのy軸方向の長さ、すなわち高さである。「サイズz」は、立体オブジェクトのz軸方向の長さ、すなわち奥行きである。ただし、ここで述べるx軸、y軸、z軸は、立体オブジェクト自身に設定されるx軸、y軸、z軸であり、仮想三次元空間に設定される絶対的なX軸、Y軸、Z軸とは異なる。立体オブジェクト自身に設定されるx軸、y軸、z軸の原点は、例えば、立体オブジェクトの中心や重心に設定される。なお、各サイズの単位等は、ピクセル等どのような単位であっても良い。x1面、x2面、y1面、y2面、z1面およびz2面は、各立体オブジェクトを構成する面の面識別情報である。これらの面識別情報が示す面は、図示していないが、各面を構成する立体オブジェクトの頂点の座標等を用いて定義されているものとする。面の定義や、面に識別情報を対応付ける技術等については、三次元モデリングの技術等において公知であるので、ここでは説明を省略する。形状情報管理表の「x1面」、「x2面」、「y1面」、「y2面」、「z1面」および「z2面」の項目の値は、各面識別情報が示す面の法線のベクトルを示している。ただし、ここでの法線は、立体オブジェクト内から外側に向かう方向のベクトルであるとする。また、ここでは例として、各立体オブジェクトの中心にx軸、y軸、z軸の0点が位置しているものとする。ここでは、「x1面」はx軸の正方向を法線とする面、「x2面」はx軸の負方向を法線とする面、「y1面」はy軸の正方向を法線とする面、「y2面」はy軸の負方向を法線とする面、「z1面」はz軸の正方向を法線とする面、「z2面」はz軸の負方向を法線とする面である。ここでは、形状情報管理表により、3つの立体オブジェクトの形状情報が管理されている。
図4は、立体オブジェクトと、x1面、x2面、y1面、y2面、z1面およびz2面との関係を示すための模式図である。この図においては、z1面が正面、z2面が背面、x1面が右側面、x2面が左側面、y1面が上面、y2面が底面となっている。
図5は、オブジェクト配置情報格納部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座標の値は省略しても良い
図6は、配置用情報格納部103に格納されている配置用情報を示す図である。ここでは、例として配置用情報がXML(Extensible Markup Language)形式の情報を構成している場合について説明する。ただし、配置用情報は、XML形式の情報でなくても良く、例えば、情報を項目や属性別等に参照可能な形式のデータであれば良い。図6に示したXML形式の情報においては、便宜上、配置用情報は、開始タグと終了タグとにより囲まれた情報とで構成される情報であると考える。例えば、「<商品名>」と「</商品名>」とで区切られた範囲のタグ付けられた情報が、一の商品の商品名を示す配置用情報である。また、「<価格>」と「</価格>」とで区切られた範囲のタグ付けられた情報が、一の商品の詳細について示す情報のうちの価格を示す配置用情報である。また、「<商品>」と「</商品>」で区切られた範囲の配置用情報は、一の商品についての配置用情報であり、一の立体オブジェクトに配置され得る配置用情報であるとする。ここでは、例として、配置用情報が、携帯電話についての情報であるとする。なお、配置用情報として、ファイル等を指定する情報、例えばリンク情報が含まれる場合、これにより指定されたファイルの情報が配置用情報となる。リンク先の情報は、画像を構成する際等に適宜読み出される。配置用情報は、ここでは例として、予め用意されたものが蓄積されているものとする。
図7は、配置用情報格納部103に格納されている、配置用情報と、当該配置用情報が配置される立体オブジェクトと、配置される面との対応関係を管理するための配置用情報管理表を示す図である。配置用情報は、立体オブジェクトと対応付けて管理されている。配置指定情報管理表は、「オブジェクトID」という項目と、「商品ID」という項目と、「配置面」という項目とを有している。「配置面」は更に、「z1面」、「x1面」、「y1面」という項目を有している。「オブジェクトID」は、図3に示したオブジェクトIDに相当する。「商品ID」は、「オブジェクトID」が示す立体オブジェクトと対応付けられた配置用情報を指定する情報であり、ここでは、図6に示した配置用情報のうちの商品IDタグを示す情報である。即ち、この「商品ID」の値と一致する要素を有する商品IDタグと対応付けられた配置用情報が、「配置用情報」が指定する配置用情報である。「配置面」は、立体オブジェクトの各面に配置される配置用情報のタグを指定する情報であり、「z1面」、「x1面」、「y1面」は、それぞれ、立体オブジェクトの面識別情報がz1面、x1面、y1面である面にそれぞれ配置される配置用情報のタグを指定する情報である。ここでは、立体オブジェクトの各面には、「配置面」の値が示すタグが付与された情報が配置されるものとする。例えば、立体オブジェクト「OBJ1」のz1面には、「商品ID」タグの値が、「SER1345」で、「配置面」の「z1面」の項目の値である「商品名」タグが付けられた配置用情報が配置される。なお、「配置面」の項目の値であるタグは、配置用情報を取得するための条件を示す情報である取得条件情報と考えても良い。
まず、例えば、ユーザが、情報処理装置1に対して、商品についてのカタログを表示する指示を与えたとすると、画像情報構成部109は、図5に示したオブジェクト配置情報管理表で管理されているオブジェクト配置情報を読み出す。即ち、「OBJ1」から「OBJ3」までの「オブジェクトID」に対応したオブジェクト配置情報である「座標(X,Y,Z)」、および「回転角度(X,Y,Z)」の項目の値を読み出す。そして、例えば、「オブジェクトID」と対応付けて、図示しないメモリ等に一時記憶する。
つぎに、情報処理装置1の画像情報構成部109は、配置用情報と対応付けられている立体オブジェクトについての形状情報を取得する。即ち、図5に示した配置用情報管理表の「オブジェクトID」の値を全て取得し、この値と一致する「オブジェクトID」と対応付けられた立体オブジェクトの形状情報を図3に示した形状情報管理表から読み出す。ここでは、図3に示した「オブジェクトID」が「OBJ1」から「OBJ3」までの形状情報を読み出し、例えば、「オブジェクトID」と対応付けて、メモリ等に一時記憶する。
次に、画像情報構成部109が、形状情報を読み出した立体オブジェクト、すなわち「オブジェクトID」が「OBJ1」〜「OBJ3」である各立体オブジェクト(以下、立体オブジェクト「OBJ1」〜「OBJ3」と称す)を構成する面に配置する配置用情報を、図6に示す配置用情報の中から、図7に示した配置用情報管理表を用いて、以下のように取得する。
まず、立体オブジェクト「OBJ1」を構成する各面、ここではz1面、x1面、y1面にそれぞれ配置される配置用情報のタグを、図7に示した配置用情報管理表から読み出す。具体的には、図7に示した配置用情報管理表の「オブジェクトID」が「OBJ1」であるレコードの「商品ID」の項目の値「SER1345」を読み出す。そして、図6に示した配置用情報のうちの、要素が「SER1345」である商品IDタグを有する商品の情報、即ち要素が「SER1345」である商品IDタグを有する「<商品>」タグから「</商品>」タグに囲まれた情報を特定する。次に、図7に示した配置用情報管理表の「オブジェクトID」が「OBJ1」であるレコードの「z1面」、「x1面」、「y1面」の項目の値であるタグ名、商品名、詳細、および商品写真を順次読み出し、図6に示した配置用情報のうちの上記で特定した、要素が「SER1345」である商品IDタグを有する商品の情報から、それぞれのタグと一致するタグ名を有するタグを検出し、検出したタグの要素を順次取得する。取得したタグの要素が、「オブジェクトID」が「OBJ1」である立体オブジェクトのz1面、x1面、y1面にそれぞれ配置される配置用情報である。
例えば、図7に示した配置用情報管理表の「オブジェクトID」が「OBJ1」であるレコードの「z1面」の値は、「商品名」というタグであるため、図7に示した要素が「SER1345」である商品IDタグを含む配置用情報から、商品名タグを検出し、この商品名タグの要素である「BS602」をz1面に配置する配置用情報として取得する。同様に、x1面、y1面についても配置用情報を取得する。取得した情報は、例えば、立体オブジェクトの識別情報と対応付けて、図示しないメモリ等の記憶媒体に一時記憶する。
以下、同様にして、立体オブジェクト「OBJ2」〜「OBJ3」についてもそれぞれ、配置用情報を取得する。
そして、画像情報構成部109は、立体オブジェクト「OBJ1」〜「OBJ3」の画像情報を構成する。
具体的には、画像情報構成部109が取得した立体オブジェクト「OBJ1」〜「OBJ3」の形状情報が示す立体オブジェクトのz1面、x1面、y1面上に、各立体オブジェクト「OBJ1」〜「OBJ3」のz1面、x1面、y1面に対応して画像情報構成部109が取得した配置用情報を配置し、さらに、これらの立体オブジェクトを立体オブジェクト「OBJ1」〜「OBJ3」に対応して画像情報構成部109が取得した配置用情報が示す位置及び向きで配置した画像情報を構成する。具体的にはいわゆるレンダリング処理を行う。なお、ここでは、各立体オブジェクトの投影図が構成されるように、仮想三次元空間内の座標軸、つまりワールド空間の座標軸や、レンダリングの際の画角等のパラメータが予め設定されているものとする。
そして、出力部110は、画像情報構成部109が構成した画像情報を出力する。ここでは、出力部110は、モニタ504に接続されており、当該モニタ504に合成した立体オブジェクトの画像情報を表示する。
図8は画像情報構成部109が構成した画像情報の表示例を示す図である。図8において、立体オブジェクト801は立体オブジェクト「OBJ1」、立体オブジェクト802は、立体オブジェクト「OBJ2」、立体オブジェクト803は、立体オブジェクト「OBJ3」であるとする。なお、本実施の形態において座標の値や図に示される立体オブジェクトの表示されており、各商品とその商品に関連する仕様等の情報との対応関係が容易に把握で位置等については、説明のためのものであり、実際のサイズ等に合わせて正確に描かれたものではない。図8に示すように、各立体オブジェクトは、それぞれが商品に対応しており、各商品の商品名や商品画像や、仕様や価格等が、それぞれの立体オブジェクトの面にきるようになっている。ここでは、仮想三次元空間のZ軸の正の側からZ軸の負の側に向かって見た場合に、前面に位置する面を正面と考える。例えば、図8においては、各立体オブジェクト「OBJ1」〜「OBJ3」のz1面が正面となっている。
図9は、ロック面指定情報格納部106に格納されているロック面指定情報を管理するロック面指定情報管理表である。ロック面指定情報管理表は、「オブジェクトID」と「ロック面」という項目を有している。「オブジェクトID」は、図3に示したオブジェクトIDに相当する。「ロック面」は、ロック面指定情報であり、ここでは、ロック面に指定された面の面識別情報である。例えば、図9においては、上から1番目のレコードは、「オブジェクトID」が「OBJ1」である立体オブジェクトのロック面が、「y2面」であることを示している。
図10は、操作可否情報格納部113に格納されている操作可否情報を示している。操作可否情報は、例えばフラグ情報である。ここでは、値が、「0」であれば、全ての立体オブジェクトに対する操作が制限されていない、つまり制限が解除されていることを示し、値が「1」であれば、全ての立体オブジェクトに対する操作が制限されていることを示す。ここでの操作に対する制限とは、例えば、制限を解除するための情報を入力するための操作以外の操作を無効とすることであるとする。
操作制限部108は、操作可否情報格納部113に格納されている操作可否情報が、立体オブジェクトに対する操作が制限されていることを示すものであるか否かを判断する。ここでは、図10に示すように、操作可否情報の値は、初期値の「0」であり、操作が制限されていないことを示している。このため、操作制限部108は、操作受付部104に対して、どのような操作を受けつけても良いことを指示する。または、受け付ける操作を制限しないようにすることを指示してもよい。あるいは、立体オブジェクトについてデフォルト等で指定されている、操作を制限しない場合に受け付け可能な操作を受け付けることを指示してもよい。
つぎに、ユーザが、出力された立体オブジェクト801、即ち立体オブジェクト「OBJ1」を、仮想三次元空間のX軸を回転軸として、上方向に90°回転させるための操作を行ったとする。例えば、ここでは、立体オブジェクト上にポインタをおいて、マウスをドラッグすると、そのドラッグの方向に立体オブジェクトが90°回転するものとし、ユーザが立体オブジェクト801上にポインタをおいて、マウスを上方向にドラッグしたとする。なお、この操作は、立体オブジェクトを回転させるためのメニュー項目を選択する操作等であっても良い。
実行部105は、操作受付部104が受け付けた、立体オブジェクトを仮想三次元空間(ワールド空間)のX軸を回転軸として上方向に90°回転させるための操作に応じて、立体オブジェクト801に対する処理を行い、立体オブジェクトの向きを変更する。具体的には、立体オブジェクト「OBJ1」のオブジェクト配置情報の「回転角度」のxの値を、初期値である「0」から「−90°」に変更する。なお、このとき、実行部105は、操作受付部104が操作を受け付けた操作対象の立体オブジェクト以外の他の立体オブジェクトの配置情報も同じように変更しても良い。即ち、上記の場合、立体オブジェクト「OBJ2」や立体オブジェクト「OBJ3」も回転させるようにしても良い。あるいは、操作対象となる立体オブジェクトとグループ化されている立体オブジェクトの配置だけを、操作対象と同様に変更するようにしても良い。
次に、方向判断部107は、実行後の各立体オブジェクトのロック面が、予め指定された方向を向いているか否かを判断する。ここでは、ロック面が正面であるか否かを判断する。なお、この仮想三次元空間に配置される立体オブジェクトにおいては、正面が、法線がZ軸に平行であって、正の方向を向いている面であることが、予め指定されているものとする。
まず、方向判断部107は、表示されている立体オブジェクト「OBJ1」のロック面の法線を示すベクトルを図3に示す形状情報管理表から取得する。具体的には、まず、立体オブジェクト「OBJ1」のロック面指定情報である「y2面」を、図9のロック面指定情報管理表から取得する。次に、立体オブジェクト「OBJ1」のロック面指定情報「y2面」が指定する面の法線ベクトルを、図3に示した形状情報管理表から取得する。具体的には、形状情報管理表の「オブジェクトID」が「OBJ1」であるレコードの「y2面」項目の値である「(0,−1,0)」をロック面の法線のベクトルとして取得する。
取得した法線のベクトル「(0,−1,0)」は、立体オブジェクト内の座標系のベクトルであるため、このベクトルを立体オブジェクトが配置された仮想三次元空間内におけるベクトル、つまり仮想三次元空間(ワールド空間)におけるベクトルに変換する。具体的には、立体オブジェクトを仮想三次元空間(ワールド空間)にデフォルトの状態で配置した場合の立体オブジェクトの座標系と仮想三次元空間(ワールド空間)の座標系との関係を示す情報と、オブジェクト配置情報の回転角度の情報とを用いて、ロック面の法線のベクトルを仮想三次元空間内における方向を示すベクトルに変換する。例えば、この具体例においては、立体オブジェクト「OBJ1」を回転させずに配置した場合、即ち図8の状態においては、上述したように、立体オブジェクトのx軸、y軸、z軸が、それぞれ仮想三次元空間のX軸,Y軸,Z軸と平行となるように立体オブジェクトが配置される。このため、この状態でのロック面の法線ベクトルを仮想三次元空間(ワールド空間)の座標系で表したものは、元々の法線ベクトルと同じ「(0,−1,0)」となる。この立体オブジェクト「OBJ1」が、X軸を回転軸として上方向に90度回転されているため、回転後の立体オブジェクト「OBJ1」のロック面「y2面」の法線ベクトルを、仮想三次元空間(ワールド空間)の座標系で表したものは、演算により、「(0,0,1)」となる。
つぎに、方向判断部107は、回転後のロック面が、正面であることを示す条件を満たすか否かを判断する。具体的には、回転後のロック面の法線ベクトルが、Z軸に平行であって、正の方向を向いているか否かを判断する。ここでは、回転後のロック面「y2面」の法線ベクトルは「(0,0,1)」であるので、法線ベクトルがZ軸に平行であり、正の方向を向いているという条件を満たす。このため、方向判断部107は、この立体オブジェクト「OBJ1」のロック面「y2面」が正面であると判断する。
方向判断部107は、一の立体オブジェクトのロック面が、正面となっていると判断されたため、操作が制限されることを示す操作可否情報「1」を操作可否情報格納部113に蓄積して、操作可否情報格納部113に格納されている操作可否情報を変更する。そして、操作受付部104が次の操作の受け付けを待機する状態に戻る。
図11は、操作可否情報格納部113に格納されている変更後の操作可否情報を示す図である。
なお、立体オブジェクト「OBJ1」のロック面が正面でないと判断された場合、表示されている他の立体オブジェクトについても同様の処理を行い、ロック面が正面であるものが検出された時点で、上記と同様に、操作可否情報を変更する。
また、ロック面が正面である立体オブジェクトが一つも検出されなかった場合、そのまま操作受付部104が次の操作の受け付けを待機する状態に戻る。
なお、上記のように、立体オブジェクトが立方体もしくは直方体であり、回転する角度が90度単位に固定されている場合においては、方向判断部107は、立体オブジェクトをワールド空間において回転させた際に正面となる面を、形状情報により定義された立体オブジェクトの面同士の位置関係と、回転前に正面となっていた面とを用いて取得し、この正面となる面の面識別情報を取得して、これが、ロック面指定情報が指定する面の識別情報と一致するか否かを判断するようにしても良い。例えば、回転前の立体オブジェクトのz1面が正面のときに、上方向に90°立体オブジェクトを回転させると、底面であるy2面が正面になることを、形状情報が示す面の位置関係を示す情報等から判断しても良い。
あるいは、立体オブジェクトが立方体もしくは直方体であり、回転する角度が90度単位に固定されている場合においては、方向判断部107は、回転前の正面となっている面の立体オブジェクトの座標系の法線ベクトルから、回転角度を逆算して、回転後に正面となる面の法線ベクトルを演算により算出し、この法線ベクトルと一致する面の面識別情報を取得することで、回転後の正面の面の面識別情報を取得し、これが、ロック面指定情報が指定する面の識別情報と一致するか否かを判断するようにしても良い。
ここで、操作制限部108は、操作可否情報格納部113に格納されている操作可否情報が、立体オブジェクトに対する操作が制限されていることを示すものであるか否かを判断する。ここでは、図11に示すように、操作可否情報の値は「1」であり、操作が制限されることを示している。このため、操作制限部108は、操作受付部104に対して、制限された操作だけを受け付けても良いことを指示する。ここでは、操作に対する制限を解除するために必要な操作だけを受け付けて良いことを指示する。操作に対する制限を解除するために必要な操作は、ここでは、制限解除のために予め指定されたパスワードを入力する操作であるとする。
つぎに、ユーザが、いずれかの立体オブジェクトを回転させるために、立体オブジェクトの画像上にポインタを配置して、マウスボタンをクリックしドラッグする操作を行ったとする。この場合、操作受付部104は、操作制限部108により、受け付け可能な操作が制限されているため、立体オブジェクトを回転させるための操作を受け付けない。その代わりに、立体オブジェクトの画像上でマウスクリックした操作に応じて、操作制限の解除のためのパスワード入力画面の画像情報を構成する指示を、画像情報構成部109に出力する。画像情報構成部109は、パスワード入力画面を構成し、出力部110が、構成したパスワード入力画面を表示する。
図12は、操作制限を解除するためのパスワード入力画面の表示例を示す図である。
つぎに、ユーザが立体オブジェクトの操作制限を解除するために、パスワード入力画面に、予め指定された制限解除のためのパスワードを入力したとする。
操作受付部104は、入力されたパスワードが制限解除のためのパスワードであるか否かを判断し、制限解除のためのパスワードと一致した場合、制限解除の操作を受け付けたと判断する。
操作制限部108は、ユーザから制限解除の操作を受け付けたため、操作可否情報格納部113に格納されている操作可否情報を、操作制限を解除するための操作可否情報「1」で上書きする。具体的には、操作可否情報格納部113に格納されている図11に示したような操作可否情報を、図10に示すような操作可否情報に変更する。そして、操作受付部104に対して受け付ける操作の制限を終了するよう指示する。
これにより、操作受付部104は、少なくともその直後の立体オブジェクトに対する通常の操作を受け付けることが可能となる。例えば、この直後に、立体オブジェクト「OBJ1」を回転させて、ロック面が正面を向かないようにすることで、その後の操作の受け付けが可能となる。
ただし、直後の操作で、ロック面を回転させない場合、再度操作制限がかかることとなる。このような状況を避けるために、操作制限解除後の最初の立体オブジェクトに対する配置の変更、特に回転動作が行われるまでは、ロック面が正面であるか否かの判断を行わないようにして、受け付けた操作に応じて、立体オブジェクトに対する処理を行うようにしても良い。
ここで、ユーザが、一の立体オブジェクト「OBJ2」のロック面に設定したい面、例えば「x1面」をマウスクリック等により指定して、この面をロック面に設定するためのメニュー項目等を選択したとする。ロック面指定情報受付部111は、「x1面」をロック面に指定するロック面指定情報を受け付ける。ロック面指定情報蓄積部112は、表示されている全ての立体オブジェクトとそれぞれ対応付けて、ロック面指定情報受付部111が受け付けたロック面指定情報が指定する面と同じ面、ここでは同じ面指定情報「x1面」が示す面をロック面に指定するロック面指定情報を、ロック面指定情報格納部106に蓄積する。具体的には、「x1面」をロック面に指定するロック面指定情報を、図9に示したロック面指定情報管理表の全てのレコードの「ロック面」の値に追記する。
図13は、ロック面指定情報が蓄積されたロック名指定情報管理表を示す図である。このように、一つの立体オブジェクトの一の面をロック面に指定すると、他の立体オブジェクトの同じ面、ここでは、同じ面識別情報を有する面も、ロック面に指定することができ、ロック面を指定する手間を省くことができる。
以上、本実施の形態によれば、ロック面を予め指定された方向に向けることにより、立体オブジェクトに対する操作を制限することができる。これにより、例えば、第三者等が、立体オブジェクトを勝手に回転させて、立体オブジェクト上に配置されている配置用情報を許可なく見ることを防ぐことが可能となる。したがって、立体オブジェクトのロック面を予め指定された方向に向けるという簡単な操作で、操作を制限することができ、立体オブジェクトを用いて出力される情報に対して、容易にセキュリティを保つことができる。
(実施の形態2)
本実施の形態の情報処理装置は、立体オブジェクトに対する複数の操作に応じて、立体オブジェクトの動作を制限するようにしたものである。
図14は、本実施の形態における情報処理装置2のブロック図である。
情報処理装置2は、形状情報格納部201、オブジェクト配置情報格納部202、配置用情報格納部203、操作受付部204、実行部205、操作情報取得部206、操作履歴情報格納部207、出現パターン判断部208、操作制限部209、画像情報構成部210、出力部211、操作可否情報格納部212、操作パターン定義情報格納部213を備える。
形状情報格納部201、オブジェクト配置情報格納部202、配置用情報格納部203、操作受付部204、実行部205、画像情報構成部210、出力部211、および操作可否情報格納部212の構成や動作については、上記実施の形態1の形状情報格納部101、オブジェクト配置情報格納部102、配置用情報格納部103、操作受付部104、実行部105、画像情報構成部109、出力部110、および操作可否情報格納部113とそれぞれ同様であるので、ここでは説明を省略する。
操作情報取得部206は、操作受付部204が受け付けた操作を示す情報である操作情報を取得する。操作受付部204が受け付ける操作とは、例えば立体オブジェクトに対する仮想三次元空間内における向きや位置を変更する操作や、大きさを変更するための操作等である。操作情報は、例えば、操作に応じて出力されるカーソル等の位置等を示す情報や、操作に応じて出力されるイベントを示す情報や、操作に応じて出力されるコマンド等を示す情報である。カーソル等の位置等を示す情報は、例えば、カーソルの指し示す位置の座標の情報や、カーソル等の移動により変化した、カーソルが指し示す座標の変換の差分を示す情報である。イベントを示す情報は例えばイベント名である。コマンドを示す情報は例えばコマンド名である。操作情報取得部206は、これらの操作に応じて出力される情報を、操作情報を取得する。なお、操作情報は、結果的に操作受付部204が過去に受け付けた操作を示す情報であればよく、例えば、操作受付部204が受け付けた操作によって行われた動作を示す情報でも良い。操作によって行われた動作を示す情報とは、例えば、操作によって配置が変化した立体オブジェクトの、配置情報の変化を示す情報、例えば配置情報の差分を記録した情報であってもよい。操作情報取得部206は、操作に応じて実行部205等により行われた動作を示す情報を、操作情報として、例えば、実行部205等から取得する。操作情報取得部206は、取得した操作情報を、図示しない記憶媒体等に蓄積しても良い。
ここでは、特に、操作情報取得部206が、操作受付部204が受け付けた操作を示す情報である操作情報を取得し、操作情報を含む操作履歴情報を構成し、構成した操作履歴情報を後述する操作履歴情報格納部207に蓄積する場合を例に挙げて説明する。
操作履歴情報とは、操作受付部204が受け付けた操作の履歴を示す情報である。操作履歴情報とは、具体的には、操作受付部204が過去に受け付けた操作を示す情報である操作情報を少なくとも含む情報である。本実施の形態における操作履歴情報は、少なくとも過去に受け付けた操作の順番を示すことが可能な情報であればよい。具体的には、少なくとも過去に取得した操作情報の取得順を示すことが可能な情報であればよい。操作履歴情報は、例えば、操作受付部204が受け付けた1以上の操作を示す操作情報と、各操作情報が示す操作を受け付けた(あるいは操作に応じた動作が行われた)時刻を示す情報とを対応付けた情報である。また、操作履歴情報は、操作情報の取得された順番が分かるように取得順に操作情報が蓄積された情報であっても良いし、取得順を示す番号等を付与して蓄積された情報であっても良い。
操作情報取得部206は、例えば、上述したような操作情報を取得し、取得した操作情報に、操作を受け付けた時刻の情報、もしくは操作情報を取得した時刻の情報を付与して操作履歴情報を構成し、構成した操作情報を操作履歴情報格納部207に蓄積する。時刻を示す情報は、図示しない時計等の計時部等から取得可能である。また、操作情報取得部206は、例えば、上述したような操作情報を取得し、取得した操作情報に、操作を受け付けた順番を示す情報、もしくは操作情報を取得した順番を示す情報を付与して構成した操作履歴情報を、操作履歴情報格納部207に蓄積しても良い。また、操作情報取得部206は、取得した操作情報を、操作履歴情報として、操作を受け付けた順番が判断可能なように、例えば操作を受け付けた順番や取得した順番に従って、操作履歴情報格納部207に追記しても良い。
操作情報取得部206は、通常、MPUやメモリ等から実現され得る。操作情報取得部206の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
操作履歴情報格納部207には、操作情報取得部206が取得した操作履歴情報が格納され得る。操作履歴情報格納部207は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
出現パターン判断部208は、操作情報取得部206が取得した最新の2以上の操作情報の出現パターンが、予め指定された操作情報の出現パターンと一致するか否かを判断する。出現パターン判断部208は、操作情報取得部206が取得した最新の2以上の操作情報の出現パターンが、予め指定された操作情報の出現パターンと一致するか否かを判断する。操作情報の出現パターンとは、1以上の操作情報の出現する順番を示す情報である。例えば、出現パターン判断部208が取得した操作情報のうちの、最新の操作情報からn番目(nは正の整数)の操作情報と、予め指定された操作情報の出現パターンが示す最新の操作情報からn番目の操作情報とが一致するか否かを、nの値を変化させながら順次判断していき、全てが一致していると判断された場合に、出現パターンが一致していると判断し、全てが一致していない場合、出現パターンが一致していないと判断する。ここでは、例として、出現パターン判断部208は、操作情報取得部206が取得した最新の2以上の操作情報の出現パターンが、後述する操作パターン定義情報格納部213に予め格納されている操作パターン定義情報が示す出現パターンと、一致するか否かを判断する。ここでの一致は完全一致としても部分一致としても良い。操作パターン定義情報とは、例えば、2以上の操作情報の出現順番を示す情報である。
ここでは例として、特に、出現パターン判断部208が、操作情報取得部206が蓄積した最新の2以上の操作履歴情報に含まれる操作情報の出現パターンが、予め指定された操作情報の出現パターンと一致するか否かを判断する場合を例に挙げて説明する。
具体的には、出現パターン判断部208は、操作情報取得部206が蓄積した操作履歴情報のうちの最新の操作履歴情報から順番に2以上の操作履歴情報を検出し、検出した操作履歴情報から、操作情報を取得する。そして上記と同様に取得した操作情報の出現パターンが、予め用意された操作情報の出現パターンと一致するか否かを判断する。
また、本実施の形態においては、出現パターン判断部208は、出現パターンが一致すると判断した場合に、操作を制限することを示す操作可否情報を、操作可否情報格納部212に蓄積する場合を例に挙げて説明する。操作可否情報については、上記実施の形態1において説明した操作可否情報と同様であるので、ここでは説明を省略する。
なお、出現パターン判断部208が判断する予め指定された2以上の操作情報の出現パターンは、移動を指示する操作情報の出現パターンや、回転を指示する操作情報の出現パターンや、大きさの変更を指示する操作情報の出現パターンや、これらの組合せによる出現パターン等、どのような操作情報の出現パターンであってもよい。例えば、複数の回転操作を示す操作情報の出現パターンとしてもよい。例えば、回転操作を示す操作情報の出現パターンとすることで、例えば、「右2回転、左3回転」等のように、金庫等のダイヤル式鍵の操作と同様に、操作制限を行うための操作を他のユーザに伝えたり、覚えたりする上でわかりやすくすることができる。
出現パターン判断部208は、通常、MPUやメモリ等から実現され得る。出現パターン判断部208の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
操作制限部209は、出現パターン判断部208が、出現パターンが一致すると判断した場合に、立体オブジェクトに対する操作を制限する。なお、ここでの行う操作の制限は一致すると判断された出現パターンに予め対応付けて設定された操作の制限であっても良い。例えば、第一の出現パターンと一致すると判断された場合に、第一の出現パターンに対応付けられた操作の制限を行い、第二の出現パターンと一致すると判断された場合に、第二の出現パターンに対応付けられた操作の制限を行っても良い。なお、操作制限部209が行う操作の制限や、操作制限部209が、立体オブジェクトに対する操作の制限を解除するための操作を受け付けた場合に、操作に対する制限を解除することや、操作制限部209が、操作可否情報格納部212に操作を制限する操作可否情報が格納されている場合に、立体オブジェクトに対する操作を制限することや、操作受付部204が変更させる操作を受け付けた場合に、操作制限部209が、操作可否情報格納部212に格納されている操作可否情報を、操作を制限しない操作可否情報に変更すること等については、上記実施の形態1の操作制限部108と同様であるので、ここでは説明を省略する。
操作制限部209は、通常、MPUやメモリ等から実現され得る。操作制限部209の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
操作パターン定義情報格納部213は、操作情報の出現パターンを示す情報である操作パターン定義情報が格納され得る。操作パターン定義情報は、例えば2以上の操作情報の出現パターンを示す情報である。操作パターン定義情報は、2以上の操作情報と、各操作情報と対応付けられた出現順番を示す情報とにより構成される情報である。また、操作パターン定義情報は、2以上の操作情報が、操作が行われる順番に従って格納されている情報であっても良い。操作パターン定義情報は、例えばユーザ等により予め蓄積される情報である。操作パターン定義情報は、当該操作パターン定義情報が示す操作パターンと一致する操作が行われた場合に行われる操作制限の種類等を指定する情報と対応付けられた情報であっても良い。操作パターン定義情報格納部213は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
次に、情報処理装置2の動作について図15のフローチャートを用いて説明する。なお、図15のフローチャートにおいて、図2と同一符号は同一又は相当するステップを示している。また、これらのステップにおいては、図1に示した情報処理装置1の各ブロックに相当する情報処理装置2の各ブロックが処理を行うものとする。
(ステップS201)操作情報取得部206は、操作受付部204が受け付けた操作が、立体オブジェクトを回転させる操作であるか否かを判断する。例えば、操作受付部204が受け付けた操作に応じて出力されるコマンドの識別情報が、予め指定された回転を指示するコマンドの識別情報の一つであるか否かを判断する。回転させる操作である場合、ステップS202に進み、回転させる操作でない場合、ステップS105に進む。
(ステップS202)操作情報取得部206は、操作受付部204が受け付けた操作を示す操作情報を取得する。ここで取得する操作情報は、例えば、操作受付部204が受け付けた操作に応じて出力されるコマンドの識別情報、例えばコマンド名を取得する。
(ステップS203)操作情報取得部206は、ステップS202で取得した操作情報を、現在の時刻を示す時刻情報と対応付けて操作履歴情報を構成し、構成した操作履歴情報を、操作履歴情報格納部207に蓄積する。
(ステップS204)出現パターン判断部208は、操作パターン定義情報格納部213に格納されている一の操作パターン定義情報を読み出す。ここでは例として操作履歴情報格納部207に格納されている操作パターン定義情報が一つである場合を例に挙げて説明する。
(ステップS205)出現パターン判断部208は、ステップS204において読み出した一の操作パターン定義情報が定義する操作パターンを構成する操作情報数kをカウントする。
(ステップS206)出現パターン判断部208は、操作履歴情報格納部207に格納されている操作履歴情報の中から、最新のk個の操作履歴情報を取得する。最新のk個の操作履歴情報とは、例えば、操作履歴情報に含まれる時刻情報が示す時刻が、最も新しいものから順にk個選らんだ場合に得られる操作履歴情報である。
(ステップS207)出現パターン判断部208は、ステップS206において取得したk個の操作履歴情報に含まれるk個の操作情報を取得する。ここでは例えば取得した時間順、もしくは取得した時刻が新しいものから順に取得する。
(ステップS208)出現パターン判断部208は、カウンターnに1を代入する。
(ステップS209)出現パターン判断部208は、ステップS204において読み出した操作履歴情報が示す操作された順番がn番目の操作情報と、ステップS207において取得した操作情報のうちの、操作された順番がn番目の操作情報とを比較し、一致するか否かを判断する。操作された順番がn番目とは、操作の古い方から数えてn番目としても、操作の新しい方から数えてn番目としてもよい。一致する場合、ステップS210に進み、一致しない場合、ステップS104に戻る。
(ステップS210)出現パターン判断部208は、カウンターnの値がkであるか否かを判断する。kでない場合、ステップS211に進み、kである場合、ステップS212に戻る。
(ステップS211)出現パターン判断部208は、操作可否情報格納部212に格納されている操作可否情報を、立体オブジェクトに対する操作を制限することを示す操作可否情報に変更する。例えば、既に格納されている操作可否情報を上書きするように、立体オブジェクトに対する操作を制限することを示す操作可否情報を蓄積する。そして、ステップS102に戻る。
なお、図15のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
以下、本実施の形態における情報処理装置2の具体的な動作について説明する。なお、立体オブジェクトが画面に表示されるまでの処理等については、上記実施の形態の具体例等と同様であるので、ここでは説明を省略する。
例えば、上記の実施の形態1の具体例と同様に、図8に示すように表示された立体オブジェクトの画像について、マウス等を用いて、予め指定された立体オブジェクト801を、Z軸を回転軸として、右回りに90度回転させるための操作をユーザが行ったとする。例えば、マウスを立体オブジェクト801の画像上で、左方向にドラッグしたとする。
操作受付部204は、このユーザによる操作を受け付け、この操作に応じて、予め用意された右回りに90度回転させるコマンドを実行部205に対して出力する。Z軸を中心として右回りに90度回転させるコマンドは、ここでは、「rotate−R−90」であるとする。
操作情報取得部206は、操作受付部204が出力するコマンド「rotate−R−90」を操作情報として取得し、さらに、この操作情報に、内部の時計等から取得した現在の時刻の情報「12:30:24」を付与して、操作履歴情報を構成し、操作履歴情報格納部207に格納する。
図16は、操作履歴情報格納部207に格納された、立体オブジェクト801、即ち立体オブジェクトOBJ1についての、操作履歴情報を管理する操作履歴情報管理表である。なお、ここでは、操作履歴情報は、立体オブジェクト別に管理されているものとする。操作履歴情報管理表は、「操作情報」と「時刻」という項目を有している。「操作情報」は、操作情報取得部206が取得した操作情報、「時刻」は、操作情報取得部206が取得した時刻の情報である。操作履歴情報管理表の各レコードが、操作情報取得部206が取得した操作情報である。なお、操作履歴情報管理表に格納されている複数のレコードの集合体も操作履歴情報と考えても良い。
そして、実行部205は、操作受付部204が出力するコマンドに応じて、立体オブジェクトを回転させた画像を出力する。
図17は、回転させた立体オブジェクト801の出力例を示す図である。立体オブジェクトを回転させた画像を出力する処理等については、上記具体例と同様であるので、ここでは説明を省略する。
同様にして、ユーザが立体オブジェクト801に対して、右回りや、左回り、前回り、後回り等の複数回の操作を行ったとし、その都度、操作履歴情報が操作履歴情報格納部207に蓄積され、回転した立体オブジェクト801の画像が出力される。
図18は、複数回の操作が行われた後の、立体オブジェクト801についての操作履歴情報管理表を示す図である。なお、「rotate−L−90」は、左回りの操作を受け付けた場合の操作情報(コマンド)、「rotate−F−90」は、前回りの操作を受け付けた場合の操作情報、「rotate−B−90」は、後回りの操作を受け付けた場合の操作情報であるとする。
図19は、操作パターン定義情報格納部213に格納されている操作パターン定義情報を示す図である。操作パターン定義情報は、「操作情報」と「出現順」という項目を有している。「操作情報」は、操作情報取得部206が取得する操作情報に相当する。また、「出現順」は、操作パターンにおける操作情報の出現する順番を示す情報であり、ここでは、対応する「出現順」の数値の大きいものほど出現する順番が早い、即ち、古い操作情報であることを示す。
ここで、出現パターン判断部208は、操作履歴情報が新たに蓄積され、立体オブジェクトが回転する毎に、図19に示すような操作パターン定義情報格納部213に格納されている操作パターン定義情報を取得する。そして、操作パターン定義情報に含まれる操作情報数をカウントして、操作情報数kを取得する。ここでは、k=3を取得する。なお、ここでは、操作履歴情報が新たに蓄積される毎に、操作パターン定義情報を読み出し、操作情報数kを取得する場合を示したが、操作履歴情報や操作情報数kを、立体オブジェクトが読み出された際や、最初に立体オブジェクトに操作が行われた際等に一度だけ取得し、メモリ等の記憶媒体等に保持しておくようにし、出現パターン判断部208が、この取得した操作履歴情報や操作情報数kを適宜利用するようにしても良い。
次に、出現パターン判断部208は、操作履歴情報が新たに蓄積され、立体オブジェクトが回転する毎に、操作履歴情報格納部207から、最新のk=3個の操作履歴情報を検出する。例えば、現時点の操作履歴情報管理表が、図18に示すようなものであった場合、図18に示す操作履歴情報管理表の全てのレコードのうち、「時刻」の示す時刻の値が新しいものから順に、3つのレコードを検出する。ここでは、例えば、操作履歴情報管理表のレコードが、「時刻」の値によって昇順にソートされていたとすると、下から3つのレコードを検出する。そして、検出した3つのレコード、即ち3つの操作履歴情報から、「時刻」の値が古いものから順に、操作情報を取得する。
図20に、出現パターン判断部208が、取得した3つの操作情報を示す図である。なお、ここでは、上のレコードほど、対応する時刻が古い操作情報、即ち出現順番が古い操作情報であるとする。
次に、出現パターン判断部208は、操作パターン定義情報に含まれる操作情報と、操作履歴情報から取得した最新の3個の操作情報とを、出現する順番が同じもの同士で比較して、操作パターン、即ち操作情報と出現順番との組合せが一致するか否かを判断する。ここでは例として完全一致を判断するものとする。ここでは、例として、まず、操作パターン定義情報に含まれる操作情報のうちの出現順番が最も古い操作情報と、操作履歴情報から取得した出現順番が最も古い操作情報とを比較するが、操作パターン定義情報に含まれる操作情報のうちの出現順番が最も古い操作情報が「rotate−F−90」であり、操作履歴情報から取得した出現順番が最も古い操作情報が「rotate−L−90」であるため、一致しない。このため、操作パターン定義情報に含まれる操作情報と、操作履歴情報から取得した最新の3個の操作情報との出現パターン同士が完全一致しないと判断される。このため、出現パターン判断部208は、操作制限を行うための処理を行わない。
ここで、次に、ユーザによる立体オブジェクト801に対して左回りを指示する操作に応じて、操作情報取得部206により、「操作情報」が「rotate−L−90」で、「時刻」が「12:33:58」である操作履歴情報が追記されたとする。
図21は、レコードが追加された操作履歴情報管理表を示す図である。
この場合においても上記と同様に、出現パターン判断部208によって、操作履歴情報に含まれる最新の3つの操作情報が取得される。
図22は、出現パターン判断部208が、取得した3つの操作情報を示す図である。
そして、上記と同様に、出現パターン判断部208によって、操作履歴情報から取得した操作情報と、図19に示す操作パターン定義情報に含まれる操作情報とが出現順番の順に比較される。即ち出現パターン同士が比較される。
ここでは、出現順番が一致する全ての操作情報が完全一致するため、出現パターン判断部208は、操作履歴情報に含まれる最新の3つの操作情報の出現パターンと、操作パターン定義情報が定義する操作情報の出現パターンとが一致すると判断する。そして、操作可否情報格納部212に格納されている立体オブジェクトに対する操作可否情報を、図11に示すように「1」に変更する。
その後の操作に対する制限等を行う処理や、制限を解除する処理等については、上記実施の形態の具体例等と同様であるので、ここでは説明を省略する。
以上、本実施の形態によれば、立体オブジェクトに対する複数の操作の組合せによって、立体オブジェクトに対する操作を制限することができる。これにより、例えば、第三者等が、立体オブジェクトを勝手に回転させて、立体オブジェクト上に配置されている配置用情報を許可なくみることを防ぐことが可能となる。したがって、立体オブジェクトに一連の操作を行うだけで、操作を制限することができ、立体オブジェクトを用いて出力される情報に対して、容易にセキュリティを保つことができる。
また、立体オブジェクトに対する操作制限を、通常立体オブジェクトに対して行われる2以上の操作の組合せで実行できるため、操作制限を行うための特定の操作、例えば操作制限を行うためのメニューやボタン等が不要である。そして、操作パターン定義情報をユーザが自由に設定することで、操作制限の操作の組合せを自由に決定でき、更に操作自体の組合せを秘密にすることで、パスワード入力等を行わないでも立体オブジェクトに対する操作だけで操作制限を行うことが可能となる。
なお、本実施の形態においては、立体オブジェクトに対する2以上の回転操作を出現パターンによって、操作制限を行うか否かを判断するようにしたが、本発明においては、回転操作以外の操作、例えば移動や、サイズ変更等も含めた立体オブジェクトに対する2以上の操作の組合せによって、操作制限を行う化否かを判断するようにしてもよい。ただし、回転操作の組合せによって操作制限を行うようにすることは、例えば、「右2回転、左3回転」等のように、金庫等のダイヤル式鍵の操作と同様に、操作を他のユーザに伝えたり、覚えたりする上でわかりやすく、好ましい。また、回転操作は、例えば立体オブジェクトの位置等を移動させたりする操作よりも、方角や距離や位置等の指定が不要であり、操作が明確でわかりやすいため、操作性に優れていると考えられ、操作制限を行うための操作としては好ましい。
なお、上記実施の形態においては、最新の2以上の操作履歴情報に含まれる操作情報の出現パターンが、操作パターン定義情報が示す操作情報の出現パターンと一致するか否かを判断するようにした。しかしながら、本発明においては、操作情報取得部206が、操作情報を取得する毎に、取得した操作情報と、予め指定された操作情報の出現パターンが示す操作情報とを、出現順番が古いものから順に比較していくようにし、予め指定された操作情報の出現パターンが示す操作情報の全てが、操作情報取得部206が取得した一連の操作情報と一致する場合には、出現パターンが一致すると判断しても良い。また、途中で一致しなかった場合、再度予め指定された操作情報の出現パターンの最も古いものとの比較から、比較をやり直すようにすればよい。あるいは、比較の途中で、予め指定された操作情報の出現パターンが示す最も古い操作情報と同じ操作情報が現れた場合、並列して操作情報の出現パターンの比較を開始するようにしても良い。即ち、このように、操作履歴情報を用いずに、取得した操作情報をそのまま利用して出現パターン同士の比較を行うようにしても良い。
なお、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段(情報送信部など)は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりする情報や、各構成要素が処理で用いるしきい値や数式、アドレス等の情報等は、上記説明で明記していない場合であっても、図示しない記録媒体において、一時的に、あるいは長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、あるいは、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、あるいは、図示しない読み出し部が行ってもよい。
また、上記各実施の形態では、情報処理装置がスタンドアロンである場合について説明したが、情報処理装置は、スタンドアロンの装置であってもよく、サーバ・クライアントシステムにおけるサーバ装置であってもよい。後者の場合には、出力部や受付部は、通信回線を介して入力を受け付けたり、画面を出力したりすることになる。
また、上記各実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、あるいは、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現され得る。
なお、上記各実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータを、形状情報格納部に格納されている1以上の立体オブジェクトの形状を指定する情報である形状情報により形状が指定される1以上の立体オブジェクトに対する操作を含む操作を受け付ける操作受付部と、操作受付部が受け付けた操作に応じて、1以上の各立体オブジェクトに対する処理を実行する実行部と、立体オブジェクトの形状情報と、1以上の立体オブジェクトのそれぞれを構成する1以上の面に配置される1以上の情報である配置用情報が格納され得る配置用情報格納部に格納されている、形状情報が示す立体オブジェクトの1以上の面に配置される配置用情報とを読み出し、読み出した形状情報が示す1以上の面に対し、それぞれに対応した配置用情報を配置した立体オブジェクトの画像情報を構成する画像情報構成部と、画像情報構成部が構成した画像情報を出力する出力部と、立体オブジェクトの、ロック面指定情報格納部に格納されている立体オブジェクトを構成する面のうちの操作にロックをかけるための面であるロック面を指定する情報であるロック面指定情報が指定するロック面が、予め指定された方向を向いているか否かを判断する方向判断部と、方向判断部が、ロック面指定情報が指定するロック面が予め指定された方向を向いていると判断した場合に、立体オブジェクトに対する操作を制限する操作制限部として機能させるためのプログラムである。
また、コンピュータを、形状情報格納部に格納されている1以上の立体オブジェクトの形状を指定する情報である形状情報により形状が指定される1以上の立体オブジェクトに対する操作を含む操作を受け付ける操作受付部と、操作受付部が受け付けた操作に応じて、1以上の各立体オブジェクトに対する処理を実行する実行部と、操作受付部が受け付けた操作を示す情報である操作情報を取得する操作情報取得部と、操作情報取得部が取得した最新の2以上の操作情報の出現パターンが、予め指定された操作情報の出現パターンと一致するか否かを判断する出現パターン判断部と、出現パターン判断部が、出現パターンが一致すると判断した場合に、立体オブジェクトに対する操作を制限する操作制限部と、立体オブジェクトの形状情報と、1以上の立体オブジェクトのそれぞれを構成する1以上の面に配置される1以上の情報である配置用情報が格納され得る配置用情報格納部に格納されている、形状情報が示す立体オブジェクトの1以上の面に配置される配置用情報とを読み出し、読み出した形状情報が示す1以上の面に対し、それぞれに対応した配置用情報を配置した立体オブジェクトの画像情報を構成する画像情報構成部と、画像情報構成部が構成した画像情報を出力する出力部として機能させるためのプログラムである。
なお、上記各プログラムにおいて、上記プログラムが実現する機能には、ハードウェアでしか実現できない機能は含まれない。例えば、情報を取得する取得部や、情報を出力する出力部などにおけるモデムやインターフェースカードなどのハードウェアでしか実現できない機能は、上記プログラムが実現する機能には含まれない。
また、各プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
図23は、上記プログラムを実行して、上記実施の形態による情報処理装置を実現するコンピュータの外観の一例を示す模式図である。上記実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムによって実現されうる。
図23において、コンピュータシステム900は、CD−ROM(Compact Disk Read Only Memory)ドライブ905、FD(Floppy(登録商標) Disk)ドライブ906を含むコンピュータ901と、キーボード902と、マウス903と、モニタ904とを備える。
図24は、コンピュータシステム900の内部構成を示す図である。図24において、コンピュータ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がどのように動作するのかについては周知であり、詳細な説明は省略する。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。