(57)【要約】【課題】利用者に対して利便性の高い操作方法を提供すること。【解決手段】表示装置１は、装着されることによりユーザの両目のそれぞれに対応した画像を表示することで、表計算に関わる処理を実行するための立体状のオブジェクトを３次元表示する表示部３２ａおよび３２ｂと、上記のオブジェクトが立体的に表示される表示空間において前記オブジェクトに対する操作を検出した場合に、検出される操作に応じて実行すべき表計算に関わる処理に含まれる処理項目を決定する制御部２２とを備える。表計算に関わる処理には、数値データの集計、演算、および分析などが含まれる。【選択図】図３６
2014071738.tif 000002
【特許請求の範囲】
【請求項１】
装着されることによりユーザの両目のそれぞれに対応した画像を表示することで、表計算に関わる処理を実行するための立体状のオブジェクトを３次元表示する表示部と、
前記オブジェクトに対する操作と、前記処理に含まれる処理項目とが対応付けられたルールを記憶する記憶部と、
前記操作を検出する検出部と、
前記ルールに基づいて、前記検出部によって検出される前記操作に応じて実行すべき前記処理項目を決定する制御部と
を有することを特徴とする表示装置。
【請求項２】
前記表示部は、表計算に関わる処理を実行するための平面状のオブジェクトで各面が構成された前記立体状のオブジェクトを表示し、
前記制御部は、前記検出部によって検出される前記操作に応じて、前記平面状のオブジェクトに対して同時に実行すべき前記処理項目を、前記ルールに基づいて決定する請求項１に記載の表示装置。
【請求項３】
前記平面状のオブジェクトには、データの入力が行われる処理領域であるセルが格子状に複数配置され、
前記制御部は、前記検出部によって検出される前記操作に応じて、前記平面状のオブジェクトのうち、第１の平面状のオブジェクトに配置されている前記セルに入力されているデータと、第２の平面状のオブジェクトに配置されている前記セルに入力されているデータとを同時に表示させる処理を実行する請求項２に記載の表示装置。
【請求項４】
前記平面状のオブジェクトには、データの入力が行われる処理領域であるセルが格子状に複数配置され、
前記制御部は、前記検出部によって検出される前記操作に応じて、前記平面状のオブジェクトのうち、第１の平面状のオブジェクトと第２の平面状のオブジェクトとが角度を形成する位置に隣接している、第１の平面状のオブジェクトに配置されている前記セルに入力されているデータと、第２の平面状のオブジェクトに配置されている前記セルに入力されているデータとを参照する演算処理を実行する請求項２に記載の表示装置。
【請求項５】
装着されることによりユーザの両目のそれぞれに対応した画像を表示することで、表計算に関わる処理を実行するためのオブジェクトを３次元表示する表示装置によって実行される制御方法であって、
立体状の前記オブジェクトを表示装置に３次元表示するステップと、
前記オブジェクトに対する操作を検出するステップと、
前記操作と、前記処理に含まれる処理項目とが対応付けられたルールを記憶する記憶部を参照して、検出される前記操作に応じて実行すべき前記処理項目を決定するステップと
を含むことを特徴とする制御方法。
【請求項６】
装着されることによりユーザの両目のそれぞれに対応した画像を表示することで、表計算に関わる処理を実行するためのオブジェクトを３次元表示する表示装置に、
立体状の前記オブジェクトを表示装置に３次元表示するステップと、
前記オブジェクトに対する操作を検出するステップと、
前記操作と、前記処理に含まれる処理項目とが対応付けられたルールを記憶する記憶部を参照して、検出される前記操作に応じて実行すべき前記処理項目を決定するステップと
を実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、表示装置、制御方法および制御プログラムに関する。
【背景技術】
【０００２】
表示部を備える表示装置には、画像等を立体表示することができるものがある（例えば、特許文献１参照）。立体表示は、両眼の視差を利用して実現される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−９５５４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
立体表示は利用者にとって親しみやすい表示形式であるにも関わらず、従来の表示装置では、立体表示は視聴目的でしか利用されず、操作の利便性を向上させるためには利用されてこなかった。本発明は、利用者に対して利便性の高い操作方法を提供することができる表示装置、制御方法および制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
１つの態様に係る表示装置は、装着されることによりユーザの両目のそれぞれに対応した画像を表示することで、表計算に関わる処理を実行するための立体状のオブジェクトを３次元表示する表示部と、前記オブジェクトに対する操作と、前記処理に含まれる処理項目とが対応付けられたルールを記憶する記憶部と、前記操作を検出する検出部と、前記ルールに基づいて、前記検出部によって検出される前記操作に応じて実行すべき前記処理項目を決定する制御部とを有することを特徴とする。
【０００６】
１つの態様に係る制御方法は、装着されることによりユーザの両目のそれぞれに対応した画像を表示することで、表計算に関わる処理を実行するためのオブジェクトを３次元表示する表示装置によって実行される制御方法であって、立体状の前記オブジェクトを表示装置に３次元表示するステップと、前記オブジェクトに対する操作を検出するステップと、前記操作と、前記処理に含まれる処理項目とが対応付けられたルールを記憶する記憶部を参照して、検出される前記操作に応じて実行すべき前記処理項目を決定するステップとを含むことを特徴とする。
【０００７】
１つの態様に係る制御プログラムは、装着されることによりユーザの両目のそれぞれに対応した画像を表示することで、表計算に関わる処理を実行するためのオブジェクトを３次元表示する表示装置に、立体状の前記オブジェクトを表示装置に３次元表示するステップと、前記オブジェクトに対する操作を検出するステップと、前記操作と、前記処理に含まれる処理項目とが対応付けられたルールを記憶する記憶部を参照して、検出される前記操作に応じて実行すべき前記処理項目を決定するステップとを実行させることを特徴とする。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施例に係る表示装置の斜視図である。
【図２】図２は、利用者によって装着された表示装置を正面から見た図である。
【図３】図３は、表示装置の変形例を示す図である。
【図４】図４は、表示装置の他の変形例を示す図である。
【図５】図５は、表示装置の他の変形例を示す図である。
【図６】図６は、第１の実施例に係る表示装置のブロック図である。
【図７】図７は、制御プログラムが提供する機能に基づく制御の例を示す図である。
【図８】図８は、オブジェクトデータに格納される情報の一例を示す図である。
【図９】図９は、作用データに格納される情報の一例を示す図である。
【図１０】図１０は、作用データに格納される情報の一例を示す図である。
【図１１】図１１は、作用データに格納される情報の一例を示す図である。
【図１２】図１２は、作用データに格納される情報の一例を示す図である。
【図１３】図１３は、作用データに格納される情報の一例を示す図である。
【図１４】図１４は、作用データに格納される情報の一例を示す図である。
【図１５】図１５は、３次元オブジェクトを押す操作の検出と、検出された操作に応じた３次元オブジェクトの変化の第１の例について説明するための図である。
【図１６】図１６は、３次元オブジェクトを押す操作の検出と、検出された操作に応じた３次元オブジェクトの変化の第１の例について説明するための図である。
【図１７】図１７は、第１の例における接触検出処理の処理手順を示すフローチャートである。
【図１８】図１８は、第１の例における操作検出処理の処理手順を示すフローチャートである。
【図１９】図１９は、３次元オブジェクトを押す操作の検出と、検出された操作に応じた３次元オブジェクトの変化の第２の例について説明するための図である。
【図２０】図２０は、第２の例における操作検出処理の処理手順を示すフローチャートである。
【図２１】図２１は、３次元オブジェクトを押す操作の検出と、検出された操作に応じた３次元オブジェクトの変化の第３の例について説明するための図である。
【図２２】図２２は、３次元オブジェクトを押す操作の検出と、検出された操作に応じた３次元オブジェクトの変化の第３の例について説明するための図である。
【図２３】図２３は、第３の例における操作検出処理の処理手順を示すフローチャートである。
【図２４】図２４は、３次元オブジェクトを摘んで行う操作の検出の第１の例について説明するための図である。
【図２５】図２５は、第１の例における選択検出処理の処理手順を示すフローチャートである。
【図２６】図２６は、第１の例における操作検出処理の処理手順を示すフローチャートである。
【図２７】図２７は、３次元オブジェクトを摘んで行う操作の検出の第１の例の変形例について説明するための図である。
【図２８】図２８は、３次元オブジェクトを摘んで行う操作の検出の第２の例について説明するための図である。
【図２９】図２９は、第２の例における選択検出処理の処理手順を示すフローチャートである。
【図３０】図３０は、３次元オブジェクトを摘んで行う操作の検出の第２の例の変形例について説明するための図である。
【図３１】図３１は、３次元オブジェクトを摘んで行う操作の検出の第３の例について説明するための図である。
【図３２】図３２は、３次元オブジェクトを摘んで行う操作の検出の第３の例について説明するための図である。
【図３３】図３３は、第３の例における選択検出処理の処理手順を示すフローチャートである。
【図３４】図３４は、第３の例における操作検出処理の処理手順を示すフローチャートである。
【図３５】図３５は、３次元オブジェクトを摘んで行う操作の検出の第３の例の変形例について説明するための図である。
【図３６】図３６は、第２の実施例に係る表示装置のブロック図である。
【図３７】図３７は、利用者から見たときの表示空間に表示される立体状のオブジェクトの状態を示す図である。
【図３８】図３８は、立体状のオブジェクトの展開図である。
【図３９】図３９は、キューブ又はワークシートに対して検出される操作と、表計算に関わる処理に含まれる処理項目とが予め対応付けられた処理項目決定ルールの例を示す図である。
【図４０】図４０は、キューブに対して行われる操作の例を示す図である。
【図４１】図４１は、キューブの表示態様の例を示す図である。
【図４２】図４２は、キューブの表示態様の例を示す図である。
【図４３】図４３は、キューブにて表計算に関わる処理が実行される箇所の例を示す図である。
【図４４】図４４は、ワークシートの構成例を示す図である。
【図４５】図４５は、立体的なセルの例を示す図である。
【図４６】図４６は、キューブ内にグラフの表示する例を示す図である。
【図４７】図４７は、キューブの列又は行の回転の概念を示す図である。
【図４８】図４８は、キューブの分割の概念を示す図である。
【図４９】図４９は、キューブを構成するワークシート上のセルキューブの選択の概念を示す図である。
【図５０】図５０は、キューブを押しつぶす概念を示す図である。
【図５１】図５１は、キューブの１列を消失させる概念を示す図である。
【図５２】図５２は、キューブからのセルキューブの分離の概念を示す図である。
【図５３】図５３は、第２の実施例に係る処理手順を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明につき図面を参照しつつ詳細に説明する。なお、以下の説明により本発明が限定されるものではない。また、以下の説明における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。
【実施例１】
【００１０】
まず、図１および図２を参照しながら、第１の実施例に係る表示装置１の全体的な構成について説明する。図１は、表示装置１の斜視図である。図２は、利用者によって装着された表示装置１を正面から見た図である。図１および図２に示すように、表示装置１は、利用者の頭部に装着されるヘッドマウントタイプの装置である。
【００１１】
表示装置１は、前面部１ａと、側面部１ｂと、側面部１ｃとを有する。前面部１ａは、装着時に、利用者の両目を覆うように利用者の正面に配置される。側面部１ｂは、前面部１ａの一方の端部に接続され、側面部１ｃは、前面部１ａの他方の端部に接続される。側面部１ｂおよび側面部１ｃは、装着時に、眼鏡の蔓のように利用者の耳によって支持され、表示装置１を安定させる。側面部１ｂおよび側面部１ｃは、装着時に、利用者の頭部の背面で接続されるように構成されてもよい。
【００１２】
前面部１ａは、装着時に利用者の目と対向する面に表示部３２ａおよび表示部３２ｂを備える。表示部３２ａは、装着時に利用者の右目と対向する位置に配設され、表示部３２ｂは、装着時に利用者の左目と対向する位置に配設される。表示部３２ａは、右目用の画像を表示し、表示部３２ｂは、左目用の画像を表示する。このように、装着時に利用者のそれぞれの目に対応した画像を表示する表示部３２ａおよび表示部３２ｂを備えることにより、表示装置１は、両眼の視差を利用した３次元表示を実現することができる。
【００１３】
表示部３２ａおよび表示部３２ｂは、利用者の右目と左目に異なる画像を独立して提供することができれば、１つの表示デバイスによって構成されてもよい。例えば、表示される画像が一方の目にしか見えないように遮蔽するシャッターを高速に切り替えることによって、１つの表示デバイスが右目と左目に異なる画像を独立して提供するように構成してもよい。前面部１ａは、装着時に外光が利用者の目に入らないように、利用者の目を覆うように構成されてもよい。
【００１４】
前面部１ａは、表示部３２ａおよび表示部３２ｂが設けられている面とは反対側の面に撮影部４０および撮影部４２を備える。撮影部４０は、前面部１ａの一方の端部（装着時の右目側）の近傍に配設され、撮影部４２は、前面部１ａの他方の端部（装着時の左目側）の近傍に配設される。撮影部４０は、利用者の右目の視界に相当する範囲の画像を取得する。撮影部４２は、利用者の左目の視界に相当する範囲の画像を取得する。ここでいう視界とは、例えば、利用者が正面を見ているときの視界である。
【００１５】
表示装置１は、撮影部４０によって撮影された画像を右目用の画像として表示部３２ａに表示し、撮影部４２によって撮影された画像を左目用の画像として表示部３２ｂに表示する。このため、表示装置１は、装着中の利用者に、前面部１ａによって視界が遮られていても、表示装置１を装着していないときと同様の光景を提供することができる。
【００１６】
表示装置１は、このように現実の光景を利用者に提供する機能に加えて、仮想的な情報を３次元的に表示し、仮想的な情報を利用者が操作することを可能にする機能を有する。表示装置１によれば、仮想的な情報は、実際に存在しているかのように、現実の光景と重ねて表示される。そして、利用者は、例えば、手を使って仮想的な情報を実際に触っているかのように操作し、移動、回転、変形等の変化を仮想的な情報に施すことができる。このように、表示装置１は、仮想的な情報に関して、直感的で利便性の高い操作方法を提供する。以下の説明では、表示装置１によって３次元的に表示される仮想的な情報を「３次元オブジェクト」と呼ぶことがある。
【００１７】
表示装置１は、表示装置１を装着していない場合と同様の広い視界を利用者に提供する。そして、表示装置１は、この広い視界の中の任意の位置に任意の大きさで３次元オブジェクトを配置することができる。このように、表示装置１は、表示デバイスの大きさの制約を受けることなく、広い空間の様々な位置に様々な大きさの３次元オブジェクトを表示することができる。
【００１８】
図１および図２では、表示装置１が、眼鏡（ゴーグル）のような形状を有する例を示したが、表示装置１の形状はこれに限定されない。例えば、表示装置１は、図３に示す表示装置２のように、利用者の頭部のほぼ上半分を覆うようなヘルメットタイプの形状を有していてもよい。あるいは、表示装置１は、図４に示す表示装置３のように、利用者の顔面のほぼ全体を覆うようなマスクタイプの形状を有していてもよい。表示装置１は、図５に示す表示装置４のように、情報処理装置、バッテリ装置等の外部装置４ｄと有線または無線で接続される構成であってもよい。
【００１９】
次に、図６を参照しながら、表示装置１の機能的な構成について説明する。図６は、第１の実施例に係る表示装置１のブロック図である。図６に示すように、表示装置１は、操作部１３と、制御部２２と、記憶部２４と、表示部３２ａおよび３２ｂと、撮影部４０および４２と、検出部４４と、測距部４６とを有する。操作部１３は、表示装置１の起動、停止、動作モードの変更等の基本的な操作を受け付ける。
【００２０】
表示部３２ａおよび３２ｂは、液晶ディスプレイ（Liquid  Crystal  Display）、有機ＥＬ（Organic  Electro−Luminescence）パネル等の表示デバイスを備え、制御部２２から入力される制御信号に従って各種の情報を表示する。表示部３２ａおよび３２ｂは、レーザー光線等の光源を用いて利用者の網膜に画像を投影する投影装置であってもよい。
【００２１】
撮影部４０および４２は、ＣＣＤ（Charge  Coupled  Device  Image  Sensor）、ＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等のイメージセンサを用いて電子的に画像を撮影する。そして、撮影部４０および４２は、撮影した画像を信号に変換して制御部２２へ出力する。
【００２２】
検出部４４は、撮影部４０および４２の撮影範囲に存在する現実の物体を検出する。検出部４４は、例えば、撮影範囲に存在する現実の物体のうち、予め登録された形状（例えば、人間の手の形状）にマッチする物体を検出する。検出部４４は、予め形状が登録されていない物体についても、画素の明度、彩度、色相のエッジ等に基づいて、画像中の現実の物体の範囲（形状および大きさ）を検出するように構成されてもよい。
【００２３】
測距部４６は、撮影部４０および４２の撮影範囲に存在する現実の物体までの距離を測定する。現実の物体までの距離は、表示装置１を装着している利用者のそれぞれの目の位置を基準として目毎に測定される。このため、測距部４６が距離を測定する基準位置がそれぞれの目の位置とずれている場合には、測距部４６の測定値は、そのずれに応じて、目の位置までの距離を表すように補正される。
【００２４】
本実施例においては、撮影部４０および４２が、検出部４４および測距部４６を兼ねる。すなわち、本実施例においては、撮影部４０および４２によって撮影される画像を解析することによって、撮影範囲内の物体が検出される。さらに、撮影部４０によって撮影される画像に含まれる物体と撮影部４２によって撮影される画像に含まれる物体とを比較することにより、物体との距離が測定（算出）される。
【００２５】
表示装置１は、撮影部４０および４２とは別に、検出部４４を備えてもよい。検出部４４は、例えば、可視光、赤外線、紫外線、電波、音波、磁気、静電容量の少なくとも１つを用いて、撮影範囲に存在する現実の物体を検出するセンサであってもよい。表示装置１は、撮影部４０および４２とは別に、測距部４６を備えてもよい。測距部４６は、例えば、可視光、赤外線、紫外線、電波、音波、磁気、静電容量の少なくとも１つを用いて、撮影範囲に存在する現実の物体までの距離を検出するセンサであってもよい。表示装置１は、ＴＯＦ（Time-of-Flight）法を用いたセンサのように、検出部４４および測距部４６を兼ねることができるセンサを備えてもよい。
【００２６】
制御部２２は、演算手段であるＣＰＵ（Central  Processing  Unit）と、記憶手段であるメモリとを備え、これらのハードウェア資源を用いてプログラムを実行することによって各種の機能を実現する。具体的には、制御部２２は、記憶部２４に記憶されているプログラムやデータを読み出してメモリに展開し、メモリに展開されたプログラムに含まれる命令をＣＰＵに実行させる。そして、制御部２２は、ＣＰＵによる命令の実行結果に応じて、メモリおよび記憶部２４に対してデータの読み書きを行ったり、表示部３２ａ等の動作を制御したりする。ＣＰＵが命令を実行するに際しては、メモリに展開されているデータや検出部４４を介して検出される操作がパラメータや判定条件の一部として利用される。
【００２７】
記憶部２４は、フラッシュメモリ等の不揮発性を有する記憶装置からなり、各種のプログラムやデータを記憶する。記憶部２４に記憶されるプログラムには、制御プログラム２４ａが含まれる。記憶部２４に記憶されるデータには、オブジェクトデータ２４ｂと、作用データ２４ｃと、仮想空間データ２４ｄとが含まれる。記憶部２４は、メモリカード等の可搬の記憶媒体と、記憶媒体に対して読み書きを行う読み書き装置との組み合わせによって構成されてもよい。この場合、制御プログラム２４ａ、オブジェクトデータ２４ｂ、作用データ２４ｃ、仮想空間データ２４ｄは、記憶媒体に記憶されていてもよい。また、制御プログラム２４ａ、オブジェクトデータ２４ｂ、作用データ２４ｃ、仮想空間データ２４ｄは、無線通信または有線通信によってサーバ装置等の他の装置から取得されてもよい。
【００２８】
制御プログラム２４ａは、表示装置１を稼働させるための各種制御に関する機能を提供する。制御プログラム２４ａが提供する機能には、撮影部４０および４２が取得する画像に３次元オブジェクトを重ねて表示部３２ａおよび３２ｂに表示する機能、３次元オブジェクトに対する操作を検出する機能、検出した操作に応じて３次元オブジェクトを変化させる機能等が含まれる。
【００２９】
制御プログラム２４ａは、検出処理部２５と、表示オブジェクト制御部２６と、画像合成部２７とを含む。検出処理部２５は、撮影部４０および４２の撮影範囲に存在する現実の物体を検出するための機能を提供する。検出処理部２５が提供する機能には、検出したそれぞれの物体までの距離を測定する機能が含まれる。
【００３０】
表示オブジェクト制御部２６は、仮想空間にどのような３次元オブジェクトが配置され、それぞれの３次元オブジェクトがどのような状態にあるかを管理するための機能を提供する。表示オブジェクト制御部２６が提供する機能には、検出処理部２５の機能によって検出される現実の物体の動きに基づいて３次元オブジェクトに対する操作を検出し、検出した操作に基づいて３次元オブジェクトを変化させる機能が含まれる。
【００３１】
画像合成部２７は、現実の空間の画像と仮想空間の画像とを合成することにより、表示部３２ａに表示する画像と表示部３２ｂに表示する画像とを生成するための機能を提供する。画像合成部２７が提供する機能には、検出処理部２５の機能によって測定される現実の物体までの距離と、仮想空間における視点から３次元オブジェクトまでの距離とに基づいて、現実の物体と３次元オブジェクトの前後関係を判定し、重なりを調整する機能が含まれる。
【００３２】
オブジェクトデータ２４ｂは、３次元オブジェクトの形状および性質に関する情報を含む。オブジェクトデータ２４ｂは、３次元オブジェクトを表示するために用いられる。作用データ２４ｃは、表示されている３次元オブジェクトに対する操作が３次元オブジェクトにどのように作用するかに関する情報を含む。作用データ２４ｃは、表示されている３次元オブジェクトに対する操作が検出された場合に、３次元オブジェクトをどのように変化させるかを判定するために用いられる。ここでいう変化には、移動、回転、変形、消失、置換等が含まれる。仮想空間データ２４ｄは、仮想空間に配置される３次元オブジェクトの状態に関する情報を保持する。３次元オブジェクトの状態には、例えば、位置、姿勢、変形の状況等が含まれる。なお、置換とは、一のオブジェクトを他のオブジェクトに置き換えることである。
【００３３】
次に、図７を参照しながら、制御プログラム２４ａが提供する機能に基づく制御の例について説明する。画像Ｐ１ａは、撮影部４０によって得られる画像、すなわち、現実の空間を右目で見た光景に相当する画像である。画像Ｐ１ａには、テーブルＴ１と、利用者の手Ｈ１とが写っている。表示装置１は、同じ場面を撮影部４２によって撮影した画像、すなわち、現実の空間を左目で見た光景に相当する画像も取得する。
【００３４】
画像Ｐ２ａは、仮想空間データ２４ｄおよびオブジェクトデータ２４ｂに基づいて生成される右目用の画像である。この例において、仮想空間データ２４ｄは、仮想空間中に存在するブロック状の３次元オブジェクトＢＬ１の状態に関する情報を保持し、オブジェクトデータ２４ｂは、３次元オブジェクトＢＬ１の形状および性質に関する情報を保持する。表示装置１は、これらの情報に基づいて仮想空間を再現し、再現した仮想空間を右目の視点から見た画像Ｐ２ａを生成する。仮想空間における右目（視点）の位置は、所定の規則に基づいて決定される。表示装置１は、同様に、再現した仮想空間を左目の視点で見た画像も生成する。すなわち、表示装置１は、画像Ｐ２ａと組み合わせることによって３次元オブジェクトＢＬ１が３次元的に表示される画像も生成する。
【００３５】
表示装置１は、図７に示すステップＳ１において、画像Ｐ１ａおよび画像Ｐ２ａを合成して、画像Ｐ３ａを生成する。画像Ｐ３ａは、右目用の画像として表示部３２ａに表示される画像である。このとき、表示装置１は、利用者の右目の位置を基準として、撮影部４０の撮影範囲にある現実の物体と、仮想空間内に存在する３次元オブジェクトとの前後関係を判定する。そして、現実の物体と３次元オブジェクトとが重なっている場合には、利用者の右目により近いものが前面に見えるように重なりを調整する。
【００３６】
このような重なりの調整は、現実の物体と３次元オブジェクトとが重なる画像上の領域内の所定の大きさの範囲毎（例えば、１画素毎）に行われる。このため、現実の空間における視点から現実の物体までの距離は、画像上の所定の大きさの範囲毎に測定される。さらに、仮想空間における視点から３次元オブジェクトまでの距離は、３次元オブジェクトの位置、形状、姿勢等を考慮して、画像上の所定の大きさの範囲毎に算出される。
【００３７】
図７に示すステップＳ１の場面では、３次元オブジェクトＢＬ１は、仮想空間において、テーブルＴ１が現実の空間で存在する位置のすぐ上に相当する位置に配置されている。さらに、図７に示すステップＳ１の場面では、利用者の手Ｈ１と３次元オブジェクトＢＬ１が、利用者の右目の位置を基準として、ほぼ同じ方向に、ほぼ同じ距離で存在している。このため、所定の大きさの範囲毎に重なりを調整することにより、合成後の画像Ｐ３ａでは、手Ｈ１と３次元オブジェクトＢＬ１とが重なっている領域のうち、手Ｈ１の親指に相当する部分では手Ｈ１が前面に現れ、他の部分では３次元オブジェクトＢＬ１が前面に現れている。さらに、テーブルＴ１と３次元オブジェクトＢＬ１とが重なっている領域では、３次元オブジェクトＢＬ１が前面に現れている。
【００３８】
このような重なりの調整により、図７に示すステップＳ１では、あたかもテーブルＴ１上に３次元オブジェクトＢＬ１が置かれ、３次元オブジェクトＢＬ１を利用者が手Ｈ１で摘んでいるかのような画像Ｐ３ａが得られている。表示装置１は、同様の処理により、撮影部４２によって撮影した画像と仮想空間を左目の視点から見た画像とを合成し、左目用の画像として表示部３２ｂに表示される画像を生成する。左目用の画像を生成する場合、現実の物体と３次元オブジェクトとの重なりは、利用者の左目の位置を基準として調整される。
【００３９】
表示装置１は、こうして生成した合成画像を表示部３２ａおよび３２ｂに表示する。その結果、利用者は、あたかも、３次元オブジェクトＢＬ１がテーブルＴ１の上に置かれ、自分の手Ｈ１で３次元オブジェクトＢＬ１を摘んでいるかのような光景を見ることができる。
【００４０】
図７に示すステップＳ２の場面では、利用者が手Ｈ１を矢印Ａ１の方向に移動させている。この場合、撮影部４０によって得られる画像は、手Ｈ１の位置が右へ移動した画像Ｐ１ｂに変化する。さらに、表示装置１は、手Ｈ１の動きを、３次元オブジェクトを摘んだままで右へ移動させる操作と判定し、操作に応じて、仮想空間における３次元オブジェクトの位置を右へ移動させる。仮想空間における３次元オブジェクトの移動は、仮想空間データ２４ｄに反映される。その結果、仮想空間データ２４ｄおよびオブジェクトデータ２４ｂに基づいて生成される右目用の画像は、３次元オブジェクトＢＬ１の位置が右へ移動した画像Ｐ２ｂに変化する。表示装置１による操作の検出の詳細については、後述する。
【００４１】
表示装置１は、画像Ｐ１ｂおよび画像Ｐ２ｂを合成して右目用の画像Ｐ３ｂを生成する。画像Ｐ３ｂは、画像Ｐ３ａと比較して、テーブルＴ１上のより右側の位置で、３次元オブジェクトＢＬ１を利用者が手Ｈ１で摘んでいるかのような画像となっている。表示装置１は、同様に左目用の合成画像を生成する。そして、表示装置１は、こうして生成した合成画像を表示部３２ａおよび３２ｂに表示する。その結果、利用者は、あたかも、自分の手Ｈ１で３次元オブジェクトＢＬ１を摘んで右へ移動させたかのような光景を見ることができる。
【００４２】
このような表示用の合成画像の更新は、一般的な動画のフレームレートと同等の頻度（例えば、毎秒３０回）で実行される。その結果、利用者の操作に応じた３次元オブジェクトの変化は、表示装置１が表示する画像にほぼリアルタイムに反映され、利用者は、あたかも実際に存在しているかのように、違和感なく３次元オブジェクトを操作することができる。さらに、本実施例に係る構成では、３次元オブジェクトを操作する利用者の手が、利用者の目と表示部３２ａおよび３２ｂの間に位置することがないため、利用者は、手によって３次元オブジェクトの表示が遮られることを気にすることなく操作を行うことができる。
【００４３】
次に、図８から図１４を参照しながら、図６に示したオブジェクトデータ２４ｂおよび作用データ２４ｃについてさらに詳しく説明する。図８は、オブジェクトデータ２４ｂに格納される情報の一例を示す図である。図９から図１４は、作用データ２４ｃに格納される情報の一例を示す図である。
【００４４】
図８に示すように、オブジェクトデータ２４ｂには、種別、形状情報、色、透明度等を含む情報が３次元オブジェクト毎に格納される。種別は、３次元オブジェクトの物理的な性質を示す。種別は、例えば、「剛体」、「弾性体」等の値をとる。形状情報は、３次元オブジェクトの形状を示す情報である。形状情報は、例えば、３次元オブジェクトを構成する面の頂点座標の集合である。色は、３次元オブジェクトの表面の色である。透明度は、３次元オブジェクトが光を透過させる度合いである。オブジェクトデータ２４ｂは、複数の３次元オブジェクトに関する情報を保持することができる。
【００４５】
図９から図１４に示す例では、押す操作が検出された場合の変化に関する情報が３次元オブジェクトの種別毎に作用データ２４ｃに格納されている。図９に示すように、３次元オブジェクトの種別が「剛体」の場合、支点の有無、押された方向における障害物の有無、押される速度に応じて、押す操作が検出された場合の変化が異なる。ここでいう障害物とは、他の３次元オブジェクトであってもよいし、現実の物体であってもよい。また、押される速度が速いか遅いかは閾値に基づいて判定される。
【００４６】
３次元オブジェクトに支点がなく、押された方向に障害物がない場合、３次元オブジェクトは、押された方向に押された量に応じて移動するように表示される。このように表示される３次元オブジェクトは、例えば、積み木、ペン、本である。移動の仕方については、滑るのか回転するのかを３次元オブジェクトの形状に基づいて決定してよい。また、押す物体と一緒に移動するのか、押す物体にはじかれるように物体と離れて移動するのかについては、押される速度に基づいて決定してよいし、３次元オブジェクトと底面の摩擦抵抗の算出値または設定値に基づいて決定してもよい。
【００４７】
３次元オブジェクトに支点がなく、押された方向に固定された障害物がある場合、３次元オブジェクトは、押された方向に押された量に応じて移動し、障害物と接触した時点で移動が停止するように表示される。このように表示される３次元オブジェクトは、例えば、積み木、ペン、本である。押された速度が速い場合は、３次元オブジェクトが障害物を破壊して移動を継続することとしてもよい。また、３次元オブジェクトが押す物体にはじかれるように物体と離れて移動している間に障害物と接触した場合は、跳ね返ったように３次元オブジェクトを逆方向に移動させてもよい。
【００４８】
３次元オブジェクトに支点がなく、押された方向に固定されていない他の剛体があり、押される速度が遅い場合、３次元オブジェクトは、押された方向に押された量に応じて移動し、他の剛体と接触した後は、他の剛体もともに移動するように表示される。また、３次元オブジェクトに支点がなく、押された方向に固定されていない他の剛体があり、押される速度が速い場合、３次元オブジェクトは、押された方向に押された量に応じて移動するように表示される。そして、３次元オブジェクトが他の剛体と接触した後は、他の剛体がはじかれて移動するように表示される。他の剛体と接触した後、３次元オブジェクトは、その場で停止してもよいし、速度を落として移動を継続してもよい。このように表示される３次元オブジェクトと他の剛体の組み合わせは、例えば、ボーリングの球とピンの組み合わせや、ビー玉同士の組み合わせである。
【００４９】
３次元オブジェクトに支点がなく、押された方向に固定されていない他の剛体があるが、他の剛体はすり抜け可能である場合、３次元オブジェクトは、押された方向に押された量に応じて移動し、他の剛体と接触した後も、他の剛体をすり抜けてそのまま移動し続けるように表示される。現実には、剛体が剛体をすり抜けることはないが、このようなすり抜けを可能にすることにより、利用者に斬新な体験を提供することができる。このように表示される３次元オブジェクトと他の剛体の組み合わせは、例えば、ボーリングの球とピンの組み合わせや、ビー玉同士の組み合わせである。押される速度に閾値を設け、押される速度が閾値以下の場合は、３次元オブジェクトが他の剛体をすり抜けないこととしてもよい。
【００５０】
３次元オブジェクトに支点がある場合、３次元オブジェクトは、押された方向および量に応じて、支点を中心に回転するように表示される。ここでいう回転とは、３６０度ぐるぐると回る回転であってもよいし、所定の回転範囲内を往復する回動であってもよい。このように表示される３次元オブジェクトは、例えば、振り子、ボクシングのサンドバック、風車である。
【００５１】
また、図１０に示すように、３次元オブジェクトの種別が「弾性体」の場合、素材、変化量の制限の有無、押される速度に応じて、押す操作が検出された場合の変化が異なる。ここでいう素材は、３次元オブジェクトの想定上の素材であり、オブジェクトデータ２４ｂにおいて定義される。
【００５２】
３次元オブジェクトの素材がゴム系であり、変化量に制限がなく、押される速度が遅い場合、３次元オブジェクトは、押された方向に押された量に応じて変形し、押される状態から解放されると元の形状に戻るように表示される。また、３次元オブジェクトの素材がゴム系であり、変化量に制限がなく、押される速度が速い場合、３次元オブジェクトは、押された方向に押された量に応じて変形し、その後、はじかれて、元の形状に戻りながら押された方向へ移動するように表示される。このように表示される３次元オブジェクトは、例えば、ゴムボール、消しゴムである。
【００５３】
３次元オブジェクトの素材がゴム系であり、変化量に制限がある場合、３次元オブジェクトは、押された方向に押された量に応じて変形可能範囲まで変形し、その後も押す操作が検出されると、元の形状に戻りながら押された方向へ移動するように表示される。このように表示される３次元オブジェクトは、例えば、ゴムボール、消しゴムである。
【００５４】
３次元オブジェクトの素材が金属系の場合、３次元オブジェクトは、押された方向に押された量に応じて変形可能範囲まで変形し、押される状態から解放されると元の形状に戻ったり変形したりを繰り返す（振動する）ように表示される。変形可能方向以外の方向に押された場合、３次元オブジェクトは、剛体と同様に移動する。このように表示される３次元オブジェクトは、例えば、板ばね、弦巻ばねである。
【００５５】
また、図１１に示すように、３次元オブジェクトの種別が「塑性体」の場合、３次元オブジェクトは、押された箇所がへこんで全体形状が変化するように表示される。このように表示される３次元オブジェクトは、例えば、粘土である。
【００５６】
また、図１２に示すように、３次元オブジェクトの種別が「液体」の場合、押される速度に応じて、押す操作が検出された場合の変化が異なる。押される速度が遅い場合、押す物体が３次元オブジェクト、すなわち、液体につかるように表示される。押される速度が中程度の場合、押す物体が液体につかり、液体に波紋が拡がるように表示される。押される速度が速い場合、押す物体が液体につかり、液体から水しぶきがあがるように表示される。このように表示される３次元オブジェクトは、例えば、コップに入った水である。
【００５７】
また、図１３に示すように、３次元オブジェクトの種別が「気体」の場合、押される速度に応じて、押す操作が検出された場合の変化が異なる。押される速度が遅い場合、３次元オブジェクト、すなわち、気体が押す物体によってさえぎられてその周囲を漂うように表示される。押される速度が中程度の場合、気体が押す物体によって散乱されるように表示される。押される速度が速い場合、押す物体の移動方向の後ろ側で乱流により気体に渦が生まれるように表示される。このように表示される３次元オブジェクトは、例えば、煙である。
【００５８】
また、図１４に示すように、３次元オブジェクトの種別が「集合体」の場合、集合体の要素の結合状況に応じて、押す操作が検出された場合の変化が異なる。集合体の要素の結合がない場合、３次元オブジェクトは、押された箇所がへこんで集合体としての全体形状が変化するように表示される。このように表示される３次元オブジェクトは、例えば、砂、砂糖である。
【００５９】
集合体の要素の結合がある場合、３次元オブジェクトは、押された箇所がへこんで集合体としての全体形状が変化するように表示される。さらに、押された箇所以外の要素が、押された箇所の要素に引っ張られて移動するように表示される。このように表示される３次元オブジェクトは、例えば、鎖である。
【００６０】
集合体の要素の結合はないが押す物体との間に引力または斥力が働く場合、３次元オブジェクトは、押す物体と接しなくても移動するように表示される。押す物体との間に引力が働く場合、３次元オブジェクトは、押す物体と接しなくても、押す物体と所定距離以内に入ると押す物体に引き寄せられる。また、押す物体との間に斥力が働く場合、３次元オブジェクトは、押す物体と接しなくても、押す物体と所定距離以内に入ると押す物体から遠ざかる。このように表示される３次元オブジェクトと押す物体の組み合わせは、例えば、鉄粉と磁石の組み合わせである。
【００６１】
このように、オブジェクトデータ２４ｂに格納された情報と作用データ２４ｃに格納された情報とに基づいて３次元オブジェクトを変化させることにより、押す操作に応じて、３次元オブジェクトを多様に変化させることができる。オブジェクトデータ２４ｂおよび作用データ２４ｃに格納される情報は、上記の例に限定されず、用途等に応じて適宜変更してよい。例えば、押す物体の種別および大きさや押す物体と３次元オブジェクトの接触面積の大きさに応じて、３次元オブジェクトの変化の仕方が切り替わるように設定してもよい。
【００６２】
次に、図１５および図１６を参照しながら、３次元オブジェクトを押す操作の検出と、検出された操作に応じた３次元オブジェクトの変化について説明する。以下の説明では、表示装置１を装着した利用者が見る空間を、表示空間と呼ぶことがある。表示装置１は、利用者の右目および左目にそれぞれの目に対応する画像を提供することにより、表示空間内に現実の物体および３次元オブジェクトを３次元的（立体的）に表示することができる。表示装置１は、仮想空間データ２４ｄに基づいて再現した仮想空間と、撮影部４０および４２によって撮影される現実の空間とを所定の規則に基づいて対応付け、これらの空間が重なった空間を表示空間として表示する。
【００６３】
図１５および図１６は、３次元オブジェクトを押す操作の検出と、検出された操作に応じた３次元オブジェクトの変化について説明するための図である。図１５に示すステップＳ１１では、表示装置１は、表示空間５０中に、３次元オブジェクトＯＢ１を立体的に表示している。３次元オブジェクトＯＢ１は、例えば、ボールを模したオブジェクトである。また、ステップＳ１１では、３次元オブジェクトＯＢ１を支持する底面Ｂ１が表示されている。
【００６４】
ステップＳ１２では、利用者が指Ｆ１を３次元オブジェクトＯＢ１と接触する位置に置き、そのまま静止させている。表示装置１は、表示空間内で現実の物体が検出され、かつ、その物体が３次元オブジェクトＯＢ１と接触する状態が所定時間以上継続した場合、３次元オブジェクトＯＢ１が操作対象として選択されたと判定する。そして、表示装置１は、３次元オブジェクトＯＢ１の表示態様を変更する等して、３次元オブジェクトＯＢ１が操作対象として選択されたことを利用者に通知する。
【００６５】
物体が３次元オブジェクトＯＢ１と接触しているかの判定は、現実の空間における物体の位置と、３次元オブジェクトＯＢ１の形状、姿勢、仮想空間における位置等に基づいて行われる。現実の空間での位置と仮想空間における位置との比較は、一方の空間の位置を上記の所定の規則に基づいて他方の空間の位置へ換算することによって行ってもよいし、両方の空間の位置を比較用の空間の位置へ換算することによって行ってもよい。現実の物体として指が検出された場合、指のつま先の位置を物体の位置として処理してもよい。人は、何かを操作するときに指のつま先を用いることが多いため、指のつま先の位置を物体の位置として処理することにより、より自然な操作感を利用者に提供することができる。
【００６６】
また、操作対象として選択されたことの通知は、例えば、３次元オブジェクトＯＢ１の全体の色を変更することや、３次元オブジェクトＯＢ１の表面のうち、物体と接触している位置の近傍の色を変更することによって実現される。表示装置１は、このような視覚的な通知に代えて、あるいは、このような視覚的な通知に加えて、音や振動による通知を行ってもよい。
【００６７】
このように、表示装置１は、指等の現実の物体が３次元オブジェクトＯＢ１と接触する状態が所定時間以上継続して検出された場合に、３次元オブジェクトＯＢ１が操作対象として選択されたと判定する。接触状態が所定時間以上継続して検出されることを条件として付加することにより、例えば、他の３次元オブジェクトを操作するために指を移動させる過程で、意図しない３次元オブジェクトが操作対象として選択される可能性を低くすることができる。
【００６８】
３次元オブジェクトＯＢ１が操作対象として選択された後、ステップＳ１３に示すように、利用者が、３次元オブジェクトＯＢ１を押すように、指Ｆ１を３次元オブジェクトＯＢ１の内側に侵入させたものとする。表示装置１は、操作対象として選択された３次元オブジェクト内に物体を侵入させる操作が検出された場合、操作に応じて３次元オブジェクトを変化させる。３次元オブジェクトをどのように変化させるかは、オブジェクトデータ２４ｂにおいて定義されている３次元オブジェクトの種別と、作用データ２４ｃにおいてその種別と対応付けて定義されている変化のルールとによって決定される。
【００６９】
例えば、オブジェクトデータ２４ｂにおいて３次元オブジェクトＯＢ１が弾性体であると定義され、作用データ２４ｃにおいて弾性体は押された場合に押された量に応じて押された方向に変形することが定義されていたものとする。この場合、表示装置１は、ステップＳ１４に示すように、指Ｆ１が侵入した部分が押されて凹んだように３次元オブジェクトＯＢ１を変化させる。
【００７０】
また、オブジェクトデータ２４ｂにおいて３次元オブジェクトＯＢ１が剛体であると定義され、作用データ２４ｃにおいて剛体は押された場合に押された量に応じて押された方向に移動することが定義されていたものとする。この場合、表示装置１は、図１６のステップＳ１５に示すように、指Ｆ１に押されたように３次元オブジェクトＯＢ１を指Ｆ１の進行方向へ移動させる。図１６のステップＳ１５では、３次元オブジェクトＯＢ１は、底面Ｂ１に支持されているため、剛体によって印加される力の底面Ｂ１と水平方向の成分に従って移動している。
【００７１】
このように、３次元オブジェクトを押す操作が検出された場合に、オブジェクトデータ２４ｂおよび作用データ２４ｃに基づいて３次元オブジェクトＯＢ１を変化させることにより、３次元オブジェクトを操作に応じて様々に変化させることができる。押すという操作は、現実の世界の様々な場面で利用されている操作であり、３次元オブジェクトＯＢ１を押す操作を検出して対応する処理を実行することにより、直感的で利便性の高い操作性を実現することができる。
【００７２】
３次元オブジェクトを操作するために用いられる物体は、指に限定されず、手、足、棒、器具等であってもよい。押す操作に応じて３次元オブジェクトを変化させる態様は、現実の物理法則に則していてもよいし、現実ではあり得ないものであってもよい。
【００７３】
表示装置１は、３次元オブジェクトに対する操作を検出する空間を操作可能範囲５１に限定してもよい。操作可能範囲５１は、例えば、表示装置１を装着している利用者の手が届く範囲である。このように、３次元オブジェクトに対する操作を検出する空間を限定することにより、表示装置１が操作を検出するために実行する演算処理の負荷を軽減することができる。
【００７４】
次に、図１７および図１８を参照しながら、３次元オブジェクトを押す操作に関して表示装置１が実行する処理手順の第１の例について説明する。図１７は、３次元オブジェクトの接触検出処理の処理手順を示すフローチャートである。図１７に示す処理手順は、制御部２２が制御プログラム２４ａを実行することによって実現される。
【００７５】
図１７に示すように、制御部２２は、まず、ステップＳＡ０１として、３次元オブジェクトを含む仮想空間の画像と現実の空間の画像とを合成して表示する。
【００７６】
続いて、制御部２２は、ステップＳＡ０２として、検出部４４、すなわち、撮影部４０および４２によって所定の物体が検出されたかを判定する。所定の物体は、例えば、利用者の指である。所定の物体が検出されない場合（ステップＳＡ０２，Ｎｏ）、制御部２２は、ステップＳＡ０８として、操作終了が検出されたかを判定する。
【００７７】
操作終了は、例えば、操作部１３に対する所定の操作が行われた場合に検出される。操作終了が検出された場合（ステップＳＡ０８，Ｙｅｓ）、制御部２２は、接触検出処理を終了させる。操作終了が検出されない場合（ステップＳＡ０８，Ｎｏ）、制御部２２は、ステップＳＡ０２以降を再実行する。
【００７８】
所定の物体が検出された場合（ステップＳＡ０２，Ｙｅｓ）、制御部２２は、ステップＳＡ０３として、所定の物体の種別を判定する。所定の物体の種別は、例えば、撮影部４０および４２によって撮影された画像中の物体の大きさ、形状、色等に基づいて判定される。続いて、制御部２２は、ステップＳＡ０４として、所定の物体に接触している３次元オブジェクトを探す。所定の物体に接触している３次元オブジェクトがない場合（ステップＳＡ０５，Ｎｏ）、制御部２２は、ステップＳＡ０８へ進む。
【００７９】
所定の物体に接触している３次元オブジェクトがみつかった場合（ステップＳＡ０５，Ｙｅｓ）、制御部２２は、ステップＳＡ０６として、オブジェクトデータ２４ｂに基づいて、所定の物体に接触している３次元オブジェクトの種別を判定する。そして、制御部２２は、ステップＳＡ０７として、後述する操作検出処理を実行する。その後、制御部２２は、ステップＳＡ０８へ進む。
【００８０】
図１８は、操作検出処理の処理手順を示すフローチャートである。図１８に示す処理手順は、制御部２２が制御プログラム２４ａを実行することによって実現される。
【００８１】
図１８に示すように、制御部２２は、まず、ステップＳＢ０１として、所定の物体と３次元オブジェクトの接触時間を取得する。そして、制御部２２は、ステップＳＢ０２として、所定の物体が３次元オブジェクトの内部に移動したかを判定する。所定の物体が３次元オブジェクトの内部に移動していない場合（ステップＳＢ０２，Ｎｏ）、制御部２２は、ステップＳＢ０１以降を再実行する。
【００８２】
所定の物体が３次元オブジェクトの内部に移動している場合（ステップＳＢ０２，Ｙｅｓ）、制御部２２は、ステップＳＢ０３として、接触時間が所定時間以上であるかを判定する。接触時間が所定時間よりも短い場合（ステップＳＢ０３，Ｎｏ）、その３次元オブジェクトは操作対象ではないと判断されるため、制御部２２は、操作検出処理を終了させる。
【００８３】
接触時間が所定時間以上の場合（ステップＳＢ０３，Ｙｅｓ）、制御部２２は、ステップＳＢ０４として、所定の物体の速度を算出する。そして、制御部２２は、ステップＳＢ０５として、所定の物体の種別、位置および速度と、３次元オブジェクトの種別等に基づいて３次元オブジェクトを変化させる。具体的な変化のさせ方は、作用データ２４ｃに従って決定される。
【００８４】
続いて、制御部２２は、ステップＳＢ０６として、所定の物体が３次元オブジェクトの外部に移動したかを判定する。所定の物体が３次元オブジェクトの外部に移動していない場合、すなわち、押す操作が継続している場合（ステップＳＢ０６，Ｎｏ）、制御部２２は、ステップＳＢ０４以降を再実行する。
【００８５】
所定の物体が３次元オブジェクトの外部に移動した場合、すなわち、３次元オブジェクトが解放された場合（ステップＳＢ０６，Ｙｅｓ）、制御部２２は、ステップＳＢ０７として、３次元オブジェクトの変化が継続するかを判定する。例えば、作用データ２４ｃにおいて解放後も振動が所定時間継続することが定義されている場合に、３次元オブジェクトの変化が継続すると判定される。
【００８６】
３次元オブジェクトの変化が継続する場合（ステップＳＢ０７，Ｙｅｓ）、制御部２２は、ステップＳＢ０８として、３次元オブジェクトを変化させ、その後、ステップＳＢ０７以降を再実行する。３次元オブジェクトの変化が継続しない場合（ステップＳＢ０７，Ｎｏ）、制御部２２は、操作検出処理を終了させる。
【００８７】
上述してきたように、第１の例では、押す操作に応じて３次元オブジェクトを多様に変化させ、それにより、利用者に対して利便性の高い操作方法を提供することができる。
【００８８】
３次元オブジェクトを押す操作に関する処理手順の第２の例について説明する。第２の例における接触検出処理は、第１の例における接触検出処理と同一である。そこで、第２の例については、第１の例と重複する説明は省略し、主として、操作検出処理について説明する。
【００８９】
まず、図１９を参照しながら、３次元オブジェクトを押す操作の検出と、検出された操作に応じた３次元オブジェクトの変化について説明する。図１９は、３次元オブジェクトを押す操作の検出と、検出された操作に応じた３次元オブジェクトの変化について説明するための図である。図１９に示すステップＳ２１では、利用者が指Ｆ１を３次元オブジェクトＯＢ１と接触させ、ステップＳ２２では、利用者が指Ｆ１を３次元オブジェクトＯＢ１の内側に侵入させている。
【００９０】
表示装置１は、表示空間内で現実の物体が検出され、かつ、その物体が３次元オブジェクトＯＢ１と接触した後に３次元オブジェクトＯＢ１の内部へ移動する状態が所定時間以上継続した場合、３次元オブジェクトＯＢ１が操作対象として選択されたと判定する。そして、表示装置１は、３次元オブジェクトＯＢ１の表示態様を変更する等して、３次元オブジェクトＯＢ１が操作対象として選択されたことを利用者に通知する。さらに、表示装置１は、ステップＳ２３に示すように、３次元オブジェクトＯＢ１を、あたかもステップＳ２１の段階で既に押す操作の対象として選択されていたかのように、接触検出以降の指Ｆ１による操作に応じて変化させる。
【００９１】
このように、物体と３次元オブジェクトの接触を検出した後は、物体がその場に留まらなくても押す操作を検出可能にすることにより、利用者は、３次元オブジェクトを押す操作を迅速に開始することができる。また、接触後に物体が３次元オブジェクトＯＢ１の内部へ移動する状態が所定時間以上継続することを条件として付加することにより、例えば、他の３次元オブジェクトを操作するために指を移動させる過程で、意図しない３次元オブジェクトが操作対象として選択される可能性を低くすることができる。
【００９２】
次に、図２０を参照しながら、第２の例における操作検出処理の処理手順について説明する。図２０は、操作検出処理の処理手順を示すフローチャートである。図２０に示す処理手順は、制御部２２が制御プログラム２４ａを実行することによって実現される。接触検出処理の処理手順は、図１７に示した手順と同様である。
【００９３】
図２０に示すように、制御部２２は、まず、ステップＳＣ０１として、所定の物体が３次元オブジェクトの内部に移動しているかを判定する。所定の物体が３次元オブジェクトの内部に移動していない場合（ステップＳＣ０１，Ｎｏ）、その３次元オブジェクトは操作対象ではないと判断されるため、制御部２２は、操作検出処理を終了させる。
【００９４】
所定の物体が３次元オブジェクトの内部に移動している場合（ステップＳＣ０１，Ｙｅｓ）、制御部２２は、ステップＳＣ０２として、接触検出からの経過時間が所定時間以上であるかを判定する。経過時間が所定時間よりも短い場合（ステップＳＣ０２，Ｎｏ）、制御部２２は、ステップＳＣ０１以降を再実行する。
【００９５】
接触時間が所定時間以上の場合（ステップＳＣ０２，Ｙｅｓ）、制御部２２は、ステップＳＣ０３として、所定の物体の速度を算出する。そして、制御部２２は、ステップＳＣ０４として、所定の物体の種別、位置および速度と、３次元オブジェクトの種別等に基づいて３次元オブジェクトを変化させる。具体的な変化のさせ方は、作用データ２４ｃに従って決定される。
【００９６】
続いて、制御部２２は、ステップＳＣ０５として、所定の物体が３次元オブジェクトの外部に移動したかを判定する。所定の物体が３次元オブジェクトの外部に移動していない場合、すなわち、押す操作が継続している場合（ステップＳＣ０５，Ｎｏ）、制御部２２は、ステップＳＣ０３以降を再実行する。
【００９７】
所定の物体が３次元オブジェクトの外部に移動した場合、すなわち、３次元オブジェクトが解放された場合（ステップＳＣ０５，Ｙｅｓ）、制御部２２は、ステップＳＣ０６として、３次元オブジェクトの変化が継続するかを判定する。例えば、作用データ２４ｃにおいて解放後も振動が所定時間継続することが定義されている場合に、３次元オブジェクトの変化が継続すると判定される。
【００９８】
３次元オブジェクトの変化が継続する場合（ステップＳＣ０６，Ｙｅｓ）、制御部２２は、ステップＳＣ０７として、３次元オブジェクトを変化させ、その後、ステップＳＣ０６以降を再実行する。３次元オブジェクトの変化が継続しない場合（ステップＳＣ０６，Ｎｏ）、制御部２２は、操作検出処理を終了させる。
【００９９】
上述してきたように、第２の例では、指等の物体が３次元オブジェクトに接触する状態が所定時間以上継続しなくても押す操作が認識されることとしたので、利用者は、３次元オブジェクトを押す操作を迅速に開始することができる。
【０１００】
３次元オブジェクトを押す操作に関する処理手順の第３の例について説明する。第３の例における接触検出処理は、第１の例における接触検出処理と同一である。そこで、第３の例では、第１の例と重複する説明は省略し、主として、操作検出処理について説明する。
【０１０１】
まず、図２１および図２２を参照しながら、３次元オブジェクトを押す操作の検出と、検出された操作に応じた３次元オブジェクトの変化について説明する。図２１および図２２は、３次元オブジェクトを押す操作の検出と、検出された操作に応じた３次元オブジェクトの変化について説明するための図である。図２１に示すステップＳ３１では、表示空間中に、３次元オブジェクトＯＢ１が立体的に表示されている。また、利用者は、指Ｆ１を３次元オブジェクトＯＢ１と接触させている。
【０１０２】
ここで、利用者が指Ｆ１を３次元オブジェクトＯＢ１の内側に侵入させたものとする。表示装置１は、３次元オブジェクトＯＢ１に接触した物体が３次元オブジェクトＯＢ１の内側に移動したことを検出すると、ステップＳ３２に示すように、その時点から、３次元オブジェクトＯＢ１を指Ｆ１による操作に応じて変化させる。図２１に示す例では、ステップＳ３２において、３次元オブジェクトＯＢ１は、指Ｆ１の移動に合わせて移動を開始している。
【０１０３】
そして、表示装置１は、ステップＳ３３に示すように、指Ｆ１が３次元オブジェクトＯＢ１の内側へ向けて移動することが所定時間以上継続した段階で、３次元オブジェクトＯＢ１を操作対象として確定する。そして、表示装置１は、３次元オブジェクトＯＢ１の表示態様を変更する等して、３次元オブジェクトＯＢ１が操作対象として確定したことを利用者に通知する。その後も、指Ｆ１の３次元オブジェクトＯＢ１の内側への移動が検出される間、表示装置１は、３次元オブジェクトＯＢ１を変化させ続ける。
【０１０４】
図２２のステップＳ３４に示すように、所定時間が経過する前に指Ｆ１の３次元オブジェクトＯＢ１の内側への移動が検出されなくなった場合、表示装置１は、それまでに加えた変化と逆の変化を３次元オブジェクトＯＢ１に加える。その結果、３次元オブジェクトＯＢ１は、ステップＳ３１の段階と同じ位置に同じ状態で表示される。逆の変化を３次元オブジェクトＯＢ１に加える速度は、それまでに３次元オブジェクトＯＢ１に変化が加えられた速度よりも速くてもよい。すなわち、高速に逆再生しているかのように３次元オブジェクトＯＢ１を逆変化させてもよい。
【０１０５】
このように、３次元オブジェクトの内側への物体の侵入が検出された段階から３次元オブジェクトに変化を加え始めることにより、利用者は、３次元オブジェクトが選択されつつあることを選択が確定する前から認識することができる。その結果、利用者は、意図した３次元オブジェクトが選択されたか否かを早期に知ることができる。意図しない３次元オブジェクトが選択された場合、利用者は、所定時間が経過する前に操作を中止することにより、意図せずに選択された３次元オブジェクトを元の状態に戻すことができる。
【０１０６】
指Ｆ１の３次元オブジェクトＯＢ１の内側への移動が所定時間以上継続するまでは、変化を加えられている３次元オブジェクトを通常時とも操作対象としての選択が確定した状態とも異なる態様（例えば、半透明）で表示してもよい。このように表示態様を変更することにより、利用者が３次元オブジェクトの状態を判別しやすくなる。
【０１０７】
次に、図２３を参照しながら、第３の例における操作検出処理の処理手順について説明する。図２３は、操作検出処理の処理手順を示すフローチャートである。図２３に示す処理手順は、制御部２２が制御プログラム２４ａを実行することによって実現される。接触検出処理の処理手順は、図１７に示した手順と同様である。
【０１０８】
図２３に示すように、制御部２２は、まず、ステップＳＤ０１として、所定の物体が３次元オブジェクトの内部に移動しているかを判定する。所定の物体が３次元オブジェクトの内部に移動していない場合（ステップＳＤ０１，Ｎｏ）、その３次元オブジェクトは操作対象ではないと判断されるため、制御部２２は、操作検出処理を終了させる。
【０１０９】
所定の物体が３次元オブジェクトの内部に移動している場合（ステップＳＤ０１，Ｙｅｓ）、制御部２２は、ステップＳＤ０２として、所定の物体の速度を算出する。そして、制御部２２は、ステップＳＤ０３として、所定の物体の種別、位置および速度と、３次元オブジェクトの種別等に基づいて３次元オブジェクトを変化させる。具体的な変化のさせ方は、作用データ２４ｃに従って決定される。
【０１１０】
続いて、制御部２２は、ステップＳＤ０４として、接触検出からの経過時間が所定時間以上であるかを判定する。経過時間が所定時間よりも短い場合、すなわち、３次元オブジェクトが押す操作の対象として確定していない場合（ステップＳＤ０４，Ｎｏ）、制御部２２は、ステップＳＤ０５として、所定の物体の３次元オブジェクトの内部方向への移動が継続しているかを判定する。
【０１１１】
３次元オブジェクトの内部方向への移動が継続している場合（ステップＳＤ０５，Ｙｅｓ）、制御部２２は、ステップＳＤ０２以降を再実行する。３次元オブジェクトの内部方向への移動が継続していない場合（ステップＳＤ０５，Ｎｏ）、制御部２２は、ステップＳＤ０６として、３次元オブジェクトを逆変化させて元の状態に戻す。そして、制御部２２は、操作検出処理を終了させる。
【０１１２】
接触検出からの経過時間が所定時間以上である場合（ステップＳＤ０４，Ｙｅｓ）、制御部２２は、ステップＳＤ０７として、所定の物体が３次元オブジェクトの外部に移動したかを判定する。所定の物体が３次元オブジェクトの外部に移動していない場合、すなわち、押す操作が継続している場合（ステップＳＤ０７，Ｎｏ）、制御部２２は、ステップＳＤ０２以降を再実行する。
【０１１３】
所定の物体が３次元オブジェクトの外部に移動した場合、すなわち、３次元オブジェクトが解放された場合（ステップＳＤ０７，Ｙｅｓ）、制御部２２は、ステップＳＤ０８として、３次元オブジェクトの変化が継続するかを判定する。例えば、作用データ２４ｃにおいて解放後も振動が所定時間継続することが定義されている場合に、３次元オブジェクトの変化が継続すると判定される。
【０１１４】
３次元オブジェクトの変化が継続する場合（ステップＳＤ０８，Ｙｅｓ）、制御部２２は、ステップＳＤ０９として、３次元オブジェクトを変化させ、その後、ステップＳＤ０８以降を再実行する。３次元オブジェクトの変化が継続しない場合（ステップＳＤ０８，Ｎｏ）、制御部２２は、操作検出処理を終了させる。
【０１１５】
上述してきたように、第３の例では、押す操作が検出された時点から、操作に応じて３次元オブジェクトを変化させることとしたので、利用者が、押す操作の対象となっている３次元オブジェクトを認識しやすい。
【０１１６】
３次元オブジェクトに関する操作として、３次元オブジェクトを押す操作について説明したが、表示装置１が３次元オブジェクトに関して検出する操作は、押す操作に限定されない。表示装置１は、利用者が３次元オブジェクトを摘んで行う操作も検出することができる。以下に３次元オブジェクトを摘んで行う操作について説明する。
【０１１７】
図２４を参照しながら、３次元オブジェクトを摘んで行う操作の検出について説明する。図２４は、３次元オブジェクトを摘んで行う操作の検出について説明するための図である。図２４に示すステップＳ４１では、表示空間５０中に、３次元オブジェクトＯＢ１が立体的に表示されている。
【０１１８】
ここで、利用者が３次元オブジェクトＯＢ１を摘んで何らかの操作を行いたいものとする。３次元オブジェクトＯＢ１を摘んで何らかの操作を行うには、まず、操作の対象として３次元オブジェクトＯＢ１を選択する必要がある。３次元オブジェクトＯＢ１を選択するために、利用者は、ステップＳ４２に示すように、指Ｆ１と指Ｆ２の間に３次元オブジェクトＯＢ１が位置するように指Ｆ１および指Ｆ２を移動させ、その状態を所定時間以上維持する。
【０１１９】
表示装置１は、表示空間内で２つの現実の物体が検出され、かつ、それらの２つの物体の間に３次元オブジェクトＯＢ１が位置する状態が所定時間以上継続した場合、３次元オブジェクトＯＢ１が選択されたと判定し、３次元オブジェクトＯＢ１を選択状態にする。そして、表示装置１は、３次元オブジェクトＯＢ１の表示態様を変更する等して、３次元オブジェクトＯＢ１が選択状態になったことを利用者に通知する。
【０１２０】
２つの物体の間に３次元オブジェクトＯＢ１が位置しているかの判定は、現実の空間における２つの物体の位置と、３次元オブジェクトＯＢ１の形状、姿勢、仮想空間における位置等に基づいて行われる。現実の空間での位置と仮想空間における位置との比較は、一方の空間の位置を上記の所定の規則に基づいて他方の空間の位置へ換算することによって行ってもよいし、両方の空間の位置を比較用の空間の位置へ換算することによって行ってもよい。現実の物体として指が検出された場合、指のつま先の位置を物体の位置として処理してもよい。
【０１２１】
このように、表示装置１は、指等の現実の物体の間に３次元オブジェクトＯＢ１が位置する状態が所定時間以上継続して検出された場合に、３次元オブジェクトＯＢ１が選択されたと判定する。指の間に３次元オブジェクトＯＢ１を挟むように指を配置するという操作は、人間が現実の空間の何かを選択するために何かを摘む操作と類似している。そのため、かかる操作は、３次元オブジェクトを選択するための操作として、直感的で分かりやすい。また、状態が所定時間以上継続して検出されることを条件として付加することにより、例えば、他の３次元オブジェクトを選択するために指を移動させる過程で、意図しない３次元オブジェクトが選択される可能性を低くすることができる。
【０１２２】
表示装置１は、３次元オブジェクトＯＢ１が選択状態になったと判定した後、指Ｆ１および指Ｆ２の動きに応じて、３次元オブジェクトＯＢ１に移動、変形、消失、置換等の変化を加える。
【０１２３】
次に、図２５および図２６を参照しながら、３次元オブジェクトを摘んで行う操作に関して表示装置１が実行する処理手順の第１の例について説明する。図２５は、３次元オブジェクトの選択検出処理の処理手順を示すフローチャートである。図２５に示す処理手順は、制御部２２が制御プログラム２４ａを実行することによって実現される。
【０１２４】
図２５に示すように、制御部２２は、まず、ステップＳＥ０１として、３次元オブジェクトを含む仮想空間の画像と現実の空間の画像とを合成して表示する。
【０１２５】
続いて、制御部２２は、ステップＳＥ０２として、検出部４４、すなわち、撮影部４０および４２によって第１の物体および第２の物体が検出されたかを判定する。第１の物体および第２の物体は、現実の物体、例えば、利用者の指である。第１の物体および第２の物体が検出されない場合（ステップＳＥ０２，Ｎｏ）、制御部２２は、ステップＳＥ１０として、操作終了が検出されたかを判定する。
【０１２６】
操作終了は、例えば、操作部１３に対する所定の操作が行われた場合に検出される。操作終了が検出された場合（ステップＳＥ１０，Ｙｅｓ）、制御部２２は、選択検出処理を終了させる。操作終了が検出されない場合（ステップＳＥ１０，Ｎｏ）、制御部２２は、ステップＳＥ０２以降を再実行する。
【０１２７】
第１の物体および第２の物体が検出された場合（ステップＳＥ０２，Ｙｅｓ）、制御部２２は、ステップＳＥ０３として、表示されている３次元オブジェクトの中から第１の物体と第２の物体との間に表示されている３次元オブジェクトを探す。該当する３次元オブジェクトがない場合（ステップＳＥ０４，Ｎｏ）、制御部２２は、ステップＳＥ１０へ進む。
【０１２８】
第１の物体と第２の物体との間に表示されている３次元オブジェクトがみつかった場合（ステップＳＥ０４，Ｙｅｓ）、制御部２２は、ステップＳＥ０５として、第１の物体と第２の物体との間に３次元オブジェクトが位置している時間を取得する。取得した時間が所定時間未満の場合（ステップＳＥ０６，Ｎｏ）、制御部２２は、ステップＳＥ１０へ進む。
【０１２９】
取得した時間が所定時間以上の場合（ステップＳＥ０６，Ｙｅｓ）、制御部２２は、ステップＳＥ０７として、第１の物体と第２の物体の距離を算出する。また、制御部２２は、ステップＳＥ０８として、第１の物体と第２の物体との間に表示されている３次元オブジェクトを選択状態にする。そして、制御部２２は、ステップＳＥ０９として、後述する操作検出処理を実行し、その中で、選択状態にある３次元オブジェクトを検出された操作に応じて変化させる。操作検出処理が終了した後、制御部２２は、ステップＳＥ１０へ進む。
【０１３０】
図２６は、操作検出処理の処理手順を示すフローチャートである。図２６に示す処理手順は、制御部２２が制御プログラム２４ａを実行することによって実現される。
【０１３１】
図２６に示すように、制御部２２は、まず、ステップＳＦ０１として、第１の物体と第２の物体の距離を算出する。そして、制御部２２は、ステップＳＦ０２として、操作検出処理の開始時点以降の第１の物体と第２の物体の距離がほぼ一定であるかを判定する。距離がほぼ一定とは、例えば、現時点での第１の物体と第２の物体の距離の変化量が、操作検出処理の開始時点の距離と比較して、所定の範囲（第１の物体および第２の物体が通常の速度で移動した場合の距離の最大変化量の±１０％等）以内に収まっていることを意味する。また、第１の物体と第２の物体の距離が操作検出処理の開始時点以降縮まり続けている場合（第１の物体および第２の物体が３次元オブジェクトを押しつぶす方向に移動している場合）に、距離がほぼ一定であると判定してもよい。また、手振れ等の範囲内でしか両者の距離が変化していない場合に、距離がほぼ一定であると判定してもよい。
【０１３２】
第１の物体と第２の物体の距離がほぼ一定の場合（ステップＳＦ０２，Ｙｅｓ）、制御部２２は、ステップＳＦ０３として、第１の物体および第２の物体の移動速度を算出する。続いて、制御部２２は、ステップＳＦ０４として、算出した移動速度が閾値以下であるかを判定する。ここで用いられる閾値は、例えば、人がものを放り投げるときの指先の移動速度である。また、閾値と比較される移動速度は、第１の物体の移動速度と第２の物体の移動速度の平均であってもよし、いずれか速い方であってもよいし、いずれか遅い方であってもよい。
【０１３３】
移動速度が閾値以下の場合（ステップＳＦ０４，Ｙｅｓ）、制御部２２は、ステップＳＦ０５として、検出された第１の物体および第２の物体の動きに応じて３次元オブジェクトに変化を加える。例えば、第１の物体および第２の物体の右方向への移動が検出された場合、制御部２２は、第１の物体および第２の物体の移動に合わせて３次元オブジェクトを右方向へ移動させる。第１の物体および第２の物体の左回りでの回転が検出された場合、制御部２２は、第１の物体および第２の物体の回転に合わせて３次元オブジェクトを左回りで回転させる。移動と回転が同時に検出された場合、移動と回転が同時に実行される。３次元オブジェクトの移動や回転に対する障害物がある場合、３次元オブジェクトが障害物に接触した時点で３次元オブジェクトの移動や回転を停止させてもよい。障害物は、現実の物体でもよいし、他の３次元オブジェクトでもよい。その後、制御部２２は、ステップＳＦ０１以降を再実行する。
【０１３４】
移動速度が閾値より速い場合（ステップＳＦ０４，Ｎｏ）、制御部２２は、ステップＳＦ０６として、３次元オブジェクトを消去する。３次元オブジェクトを消去するに際して、３次元オブジェクトが第１の物体および第２の物体の移動方向へ向けて飛んでいくようにアニメーション表示してもよい。そして、制御部２２は、操作検出処理を終了させる。このように、３次元オブジェクトを放り投げるように第１の物体および第２の物体が高速で移動した場合に３次元オブジェクトを消去することにより、直感的な操作によって３次元オブジェクトの消去を実現することができる。第１の物体および第２の物体を高速で移動させる操作ではなく、例えば、３次元オブジェクトを握りつぶす操作に３次元オブジェクトの消去を割り当ててもよい。また、３次元オブジェクトを消去する代わりに、３次元オブジェクトを当初の配置場所に戻すこととしてもよい。表示装置１は、ステップＳＦ０３、ＳＦ０４およびステップＳＦ０６の処理を行わなくてもよい。すなわち、表示装置１は、ステップＳＦ０２で第１の物体と第２の物体の距離がほぼ一定と判定した場合には、２つの物体の移動速度にかかわらず、ステップＳＦ０５を実行してもよい。
【０１３５】
第１の物体と第２の物体の距離がほぼ一定でない場合（ステップＳＦ０２，Ｎｏ）、制御部２２は、ステップＳＦ０７として、距離が、３次元オブジェクトの選択時、すなわち、操作検出処理の開始時点よりも拡大しているかを判定する。距離が拡大している場合（ステップＳＦ０７，Ｙｅｓ）、制御部２２は、ステップＳＦ０８として、３次元オブジェクトの選択状態を解除する。第１の物体と第２の物体の距離を拡大するという操作は、摘んでいる現実のオブジェクトを放す操作と類似している。そのため、かかる操作は、３次元オブジェクトの選択を解除するための操作として、直感的で分かりやすい。
【０１３６】
続いて、制御部２２は、ステップＳＦ０９として、選択状態を解除した３次元オブジェクトを重力等に従って移動させる。そして、制御部２２は、操作検出処理を終了させる。ここでの移動は、例えば、３次元オブジェクトが重力に従って落下し、床やテーブルの上で停止するように表示される。３次元オブジェクトの動きを停止させる前に、３次元オブジェクトの弾性や床やテーブルの硬度に応じて３次元オブジェクトをバウンドさせてもよい。３次元オブジェクトが床やテーブルに衝突するときの衝撃の大きさを算出し、衝撃が所定の値よりも大きい場合には３次元オブジェクトを破損したように表示してもよい。また、実際の重力が働く場合よりも３次元オブジェクトをゆっくりと移動させてもよい。
【０１３７】
第１の物体と第２の物体の距離が３次元オブジェクトの選択時よりも縮まっている場合（ステップＳＦ０７，Ｎｏ）、制御部２２は、ステップＳＦ１０として、距離に応じて３次元オブジェクトを変形させる。そして、制御部２２は、ステップＳＦ０１以降を再実行する。３次元オブジェクトを変形させる程度は、例えば、３次元オブジェクトに属性として設定されている弾性に応じて変更してもよい。制御部２２は、ゴムボールを模した３次元オブジェクトのように属性として低い硬度を設定されているオブジェクトについては、第１の物体と第２の物体の距離が縮まるに応じて変形の度合いを高めてよい。また、制御部２２は、積み木を模した３次元オブジェクトのように属性として高い硬度を設定されているオブジェクトについては、第１の物体と第２の物体の距離が縮まっても変形の度合いを小さく保ってよい。
【０１３８】
第１の物体と第２の物体の距離が３次元オブジェクトの選択時よりも縮まっている場合に、表示装置１は、３次元オブジェクトを変形させるのではなく縮小させてもよい。第１の物体と第２の物体の距離が所定の値以下になった場合に、表示装置１は、３次元オブジェクトを破損したように表示してもよい。
【０１３９】
上述してきたように、第１の例では、指等の物体の間に３次元オブジェクトが位置する状態が所定時間以上継続した場合に３次元オブジェクトが選択されることとしたので、３次元オブジェクトの選択を直感的で分かりやすい操作により実現することができる。
【０１４０】
図２７に示すように、表示装置１は、第１の物体と第２の物体のうち少なくとも一方が３次元オブジェクトに接触している状態が所定時間以上継続することを、３次元オブジェクトを選択する条件としてもよい。３次元オブジェクトへの接触を選択の条件とすることにより、複数の３次元オブジェクトが近接して表示されている場合に、利用者が所望の３次元オブジェクトを選択し易くなる。
【０１４１】
３次元オブジェクトを摘んで行う操作に関する処理手順の第２の例について説明する。第２の例における操作検出処理は、第１の例における操作検出処理と同一である。そこで、第２の例については、第１の例と重複する説明は省略し、主として、選択検出処理について説明する。
【０１４２】
まず、図２８を参照しながら、３次元オブジェクトを摘んで行う操作の検出について説明する。図２８は、３次元オブジェクトを摘んで行う操作の検出について説明するための図である。図２８に示すステップＳ５１では、表示空間中に、３次元オブジェクトＯＢ１が立体的に表示されている。また、３次元オブジェクトＯＢ１を選択するために、利用者は、指Ｆ１と指Ｆ２の間に３次元オブジェクトＯＢ１が位置するように指Ｆ１および指Ｆ２を移動させている。
【０１４３】
表示装置１は、表示空間内で２つの現実の物体が検出され、かつ、それらの２つの物体の間に３次元オブジェクトＯＢ１が位置する場合、２つの物体の距離の変化を監視する。そして、距離が所定時間以上ほぼ一定であれば、３次元オブジェクトＯＢ１が選択されたと判定し、３次元オブジェクトＯＢ１を選択状態にする。そして、表示装置１は、３次元オブジェクトＯＢ１の表示態様を変更する等して、３次元オブジェクトＯＢ１が選択状態になったことを利用者に通知する。
【０１４４】
表示装置１が２つの物体の距離の変化を監視している間、２つの物体は、３次元オブジェクトＯＢ１を挟む位置に留まる必要はない。すなわち、利用者は、ステップＳ５１に示したように指Ｆ１と指Ｆ２の間に３次元オブジェクトＯＢ１が位置するように指Ｆ１および指Ｆ２を移動させた後、その状態を保つことなく、指Ｆ１および指Ｆ２を他の位置へ移動させて構わない。
【０１４５】
ステップＳ５１の状態から、ステップＳ５２に示すように、利用者が、指Ｆ１と指Ｆ２の距離Ｄ１をほぼ一定に保ったまま移動させたものとする。この場合、表示装置１は、ステップＳ５３に示すように、指Ｆ１と指Ｆ２の距離Ｄ１がほぼ一定に保たれた状態が所定時間以上継続した段階で、３次元オブジェクトＯＢ１を選択状態にする。そして、表示装置１は、３次元オブジェクトＯＢ１を、あたかもステップＳ５１の段階で既に選択されていたかのように、指Ｆ１および指Ｆ２の間に移動させる。表示装置１は、ステップＳ５１からステップＳ５３までの指Ｆ１と指Ｆ２の動きを記憶しておき、記憶しておいた動きに合わせて３次元オブジェクトＯＢ１を回転等させてもよい。その後、表示装置１は、指Ｆ１および指Ｆ２の動きに応じて、３次元オブジェクトＯＢ１に移動、変形、消失、置換等の変化を加える。
【０１４６】
このように、２つの物体が３次元オブジェクトを挟む位置に一旦移動した後は、物体がその場に留まらなくても３次元オブジェクトを選択可能にすることにより、利用者は、３次元オブジェクトを選択した後の操作を迅速に開始することができる。
【０１４７】
次に、図２９を参照しながら、第２の例における選択検出処理の処理手順について説明する。図２９は、３次元オブジェクトの選択検出処理の処理手順を示すフローチャートである。図２９に示す処理手順は、制御部２２が制御プログラム２４ａを実行することによって実現される。
【０１４８】
図２９に示すように、制御部２２は、まず、ステップＳＧ０１として、３次元オブジェクトを含む仮想空間の画像と現実の空間の画像とを合成して表示する。続いて、制御部２２は、ステップＳＧ０２として、検出部４４、すなわち、撮影部４０および４２によって第１の物体および第２の物体が検出されたかを判定する。第１の物体および第２の物体が検出されない場合（ステップＳＧ０２，Ｎｏ）、制御部２２は、ステップＳＧ１４として、仮選択状態の３次元オブジェクトがあれば、その３次元オブジェクトの仮選択状態を解除する。仮選択状態とは、２つの物体の間に３次元オブジェクトが表示されている状態が検出された後、２つの物体の距離がほぼ一定に保たれているかが監視されている状態である。
【０１４９】
そして、制御部２２は、ステップＳＧ１５として、操作終了が検出されたかを判定する。操作終了が検出された場合（ステップＳＧ１５，Ｙｅｓ）、制御部２２は、選択検出処理を終了させる。操作終了が検出されない場合（ステップＳＧ１５，Ｎｏ）、制御部２２は、ステップＳＧ０２以降を再実行する。
【０１５０】
第１の物体および第２の物体が検出された場合（ステップＳＧ０２，Ｙｅｓ）、制御部２２は、ステップＳＧ０３として、仮選択状態の３次元オブジェクトがあるか否かを判定する。仮選択状態の３次元オブジェクトがない場合（ステップＳＧ０３，Ｎｏ）、制御部２２は、ステップＳＧ０４として、表示されている３次元オブジェクトの中から第１の物体と第２の物体との間に表示されている３次元オブジェクトを探す。該当する３次元オブジェクトがない場合（ステップＳＧ０５，Ｎｏ）、制御部２２は、ステップＳＧ１５へ進む。
【０１５１】
第１の物体と第２の物体との間に表示されている３次元オブジェクトがみつかった場合（ステップＳＧ０５，Ｙｅｓ）、制御部２２は、ステップＳＧ０６として、第１の物体と第２の物体との間に表示されている３次元オブジェクトを仮選択状態にする。また、制御部２２は、ステップＳＧ０７として、第１の物体と第２の物体の距離を算出する。そして、制御部２２は、ステップＳＧ１５へ進む。
【０１５２】
第１の物体および第２の物体が検出され、かつ、仮選択状態の３次元オブジェクトがある場合（ステップＳＧ０３，Ｙｅｓ）、制御部２２は、ステップＳＧ０８として、第１の物体と第２の物体の距離を算出する。そして、制御部２２は、ステップＳＧ０９として、距離がほぼ一定であるかを判定する。距離がほぼ一定でない場合（ステップＳＧ０９，Ｎｏ）、制御部２２は、ステップＳＧ１４として、仮選択状態の３次元オブジェクトの仮選択状態を解除する。そして、制御部２２は、ステップＳＧ１５へ進む。
【０１５３】
第１の物体と第２の物体の距離がほぼ一定の場合（ステップＳＧ０９，Ｙｅｓ）、制御部２２は、ステップＳＧ１０として、距離がほぼ一定に保たれている期間が所定時間以上であるかを判定する。距離がほぼ一定に保たれている期間が所定時間未満の場合（ステップＳＧ１０，Ｎｏ）、制御部２２は、ステップＳＧ１５へ進む。
【０１５４】
距離がほぼ一定に保たれている期間が所定時間以上の場合（ステップＳＧ１０，Ｙｅｓ）、制御部２２は、ステップＳＧ１１として、第１の物体と第２の物体との間に表示されている３次元オブジェクトを選択状態にする。また、制御部２２は、ステップＳＧ１２として、第１の物体と第２の物体との間に３次元オブジェクトを移動させる。そして、制御部２２は、ステップＳＧ１３として、図２６に示した操作検出処理を実行し、その中で、選択状態にある３次元オブジェクトを検出された操作に応じて変化させる。操作検出処理が終了した後、制御部２２は、ステップＳＧ１５へ進む。
【０１５５】
上述してきたように、第２の例では、指等の物体の間に３次元オブジェクトが位置した後、物体の距離が所定時間以上ほぼ一定に保たれた場合に３次元オブジェクトが選択されることとしたので、利用者は、３次元オブジェクトの選択後の操作を迅速に開始することができる。
【０１５６】
図３０に示すステップＳ６１からステップＳ６３のように、表示装置１は、第１の物体と第２の物体のうち少なくとも一方が３次元オブジェクトに接触した後に第１の物体と第２の物体の距離が所定時間以上ほぼ一定に保たれることを、３次元オブジェクトを選択する条件としてもよい。３次元オブジェクトへの接触を選択の条件とすることにより、複数の３次元オブジェクトが近接して表示されている場合に、利用者が所望の３次元オブジェクトを選択し易くなる。
【０１５７】
３次元オブジェクトを摘んで行う操作に関する処理手順の第３の例について説明する。第３の例については、第１の例と重複する説明は省略し、主として、選択検出処理および操作検出処理について説明する。
【０１５８】
まず、図３１および図３２を参照しながら、３次元オブジェクトを摘んで行う操作の検出について説明する。図３１に示すステップＳ７１では、表示空間中に、３次元オブジェクトＯＢ１が立体的に表示されている。また、３次元オブジェクトＯＢ１を選択するために、利用者は、指Ｆ１と指Ｆ２の間に３次元オブジェクトＯＢ１が位置するように指Ｆ１および指Ｆ２を移動させている。
【０１５９】
表示装置１は、表示空間内で２つの現実の物体が検出され、かつ、それらの２つの物体の間に３次元オブジェクトＯＢ１が位置する場合、２つの物体の距離の変化を監視する。そして、距離が所定時間以上ほぼ一定であれば、３次元オブジェクトＯＢ１が選択されたと判定し、３次元オブジェクトＯＢ１を選択状態にする。そして、表示装置１は、３次元オブジェクトＯＢ１の表示態様を変更する等して、３次元オブジェクトＯＢ１が選択状態になったことを利用者に通知する。
【０１６０】
表示装置１が２つの物体の距離の変化を監視している間、２つの物体は、３次元オブジェクトＯＢ１を挟む位置に留まる必要はない。すなわち、利用者は、ステップＳ７１に示したように指Ｆ１と指Ｆ２の間に３次元オブジェクトＯＢ１が位置するように指Ｆ１および指Ｆ２を移動させた後、その状態を保つことなく、指Ｆ１および指Ｆ２を他の位置へ移動させて構わない。
【０１６１】
ステップＳ７１の状態から、ステップＳ７２に示すように、利用者が、指Ｆ１と指Ｆ２の距離Ｄ１をほぼ一定に保ったまま移動させたものとする。この場合、表示装置１は、指Ｆ１と指Ｆ２の間に３次元オブジェクトＯＢ１が表示されていることが検出された段階、すなわち、ステップＳ７１の段階から、指Ｆ１および指Ｆ２の動きに応じて、３次元オブジェクトＯＢ１に移動、変形、消失、置換等の変化を加える。そして、表示装置１は、ステップＳ７３に示すように、指Ｆ１と指Ｆ２の距離Ｄ１がほぼ一定に保たれた状態が所定時間以上継続した段階で、３次元オブジェクトＯＢ１を選択状態にする。
【０１６２】
図３２のステップＳ７４に示すように、所定時間が経過する前に指Ｆ１と指Ｆ２の距離Ｄ１が拡大した場合、すなわち、選択が行われなかった場合、表示装置１は、それまでに加えた変化と逆の変化を３次元オブジェクトＯＢ１に加える。その結果、３次元オブジェクトＯＢ１は、ステップＳ７１の段階と同じ位置に同じ状態で表示される。逆の変化を３次元オブジェクトＯＢ１に加える速度は、それまでに３次元オブジェクトＯＢ１に変化が加えられた速度よりも速くてもよい。すなわち、高速に逆再生しているかのように３次元オブジェクトＯＢ１を逆変化させてもよい。
【０１６３】
このように、２つの物体の間に３次元オブジェクトが表示されていることが検出された段階から３次元オブジェクトに変化を加え始めることにより、利用者は、３次元オブジェクトが選択されつつあることを選択が確定する前から認識することができる。その結果、利用者は、意図した３次元オブジェクトが選択されたか否かを早期に知ることができる。表示装置１は、２つの物体の距離がほぼ一定に保たれた状態が所定時間以上継続するまでは、変化を加えられている３次元オブジェクトを通常時とも選択状態とも異なる態様（例えば、半透明）で表示することにより、利用者が３次元オブジェクトの状態を判別しやすくしてもよい。
【０１６４】
次に、図３３および図３４を参照しながら、３次元オブジェクトを摘んで行う操作に関して表示装置１が実行する処理手順について説明する。図３３は、３次元オブジェクトの選択検出処理の処理手順を示すフローチャートである。図３３に示す処理手順は、制御部２２が制御プログラム２４ａを実行することによって実現される。
【０１６５】
図３３に示すように、制御部２２は、まず、ステップＳＨ０１として、３次元オブジェクトを含む仮想空間の画像と現実の空間の画像とを合成して表示する。続いて、制御部２２は、ステップＳＨ０２として、検出部４４、すなわち、撮影部４０および４２によって第１の物体および第２の物体が検出されたかを判定する。第１の物体および第２の物体が検出されない場合（ステップＳＨ０２，Ｎｏ）、制御部２２は、ステップＳＨ１０として、仮選択状態の３次元オブジェクトがあれば、その３次元オブジェクトの仮選択状態を解除する。
【０１６６】
そして、制御部２２は、ステップＳＨ１１として、操作終了が検出されたかを判定する。操作終了が検出された場合（ステップＳＨ１１，Ｙｅｓ）、制御部２２は、選択検出処理を終了させる。操作終了が検出されない場合（ステップＳＨ１１，Ｎｏ）、制御部２２は、ステップＳＨ０２以降を再実行する。
【０１６７】
第１の物体および第２の物体が検出された場合（ステップＳＨ０２，Ｙｅｓ）、制御部２２は、ステップＳＨ０３として、仮選択状態の３次元オブジェクトがあるか否かを判定する。仮選択状態の３次元オブジェクトがない場合（ステップＳＨ０３，Ｎｏ）、制御部２２は、ステップＳＨ０４として、表示されている３次元オブジェクトの中から第１の物体と第２の物体との間に表示されている３次元オブジェクトを探す。該当する３次元オブジェクトがない場合（ステップＳＨ０５，Ｎｏ）、制御部２２は、ステップＳＨ１１へ進む。
【０１６８】
第１の物体と第２の物体との間に表示されている３次元オブジェクトがみつかった場合（ステップＳＨ０５，Ｙｅｓ）、制御部２２は、ステップＳＨ０６として、第１の物体と第２の物体との間に表示されている３次元オブジェクトを仮選択状態にする。また、制御部２２は、ステップＳＨ０７として、第１の物体と第２の物体の距離を算出する。そして、制御部２２は、ステップＳＨ１１へ進む。
【０１６９】
第１の物体および第２の物体が検出され、かつ、仮選択状態の３次元オブジェクトがある場合（ステップＳＨ０３，Ｙｅｓ）、制御部２２は、ステップＳＨ０８として、第１の物体と第２の物体の少なくとも一方が移動しているかを判定する。第１の物体と第２の物体のいずれも移動していない場合（ステップＳＨ０８，Ｎｏ）、制御部２２は、ステップＳＨ１１へ進む。
【０１７０】
第１の物体と第２の物体の少なくとも一方が移動している場合（ステップＳＨ０８，Ｙｅｓ）、制御部２２は、ステップＳＨ０９として、図３４に示す操作検出処理を実行し、その中で、選択状態にある３次元オブジェクトを検出された操作に応じて変化させる。操作検出処理が終了した後、制御部２２は、ステップＳＨ１１へ進む。
【０１７１】
図３４は、操作検出処理の処理手順を示すフローチャートである。図３４に示す処理手順は、制御部２２が制御プログラム２４ａを実行することによって実現される。図３４に示すように、制御部２２は、まず、ステップＳＩ０１として、第１の物体と第２の物体の距離を算出する。そして、制御部２２は、ステップＳＩ０２として、操作検出処理の開始時点以降の第１の物体と第２の物体の距離がほぼ一定であるかを判定する。
【０１７２】
第１の物体と第２の物体の距離がほぼ一定の場合（ステップＳＩ０２，Ｙｅｓ）、制御部２２は、ステップＳＩ０３として、操作検出処理が開始されてから所定時間が経過したかを判定する。所定時間が経過していた場合（ステップＳＩ０３，Ｙｅｓ）、制御部２２は、ステップＳＩ０４として、仮選択状態の３次元オブジェクトがあれば、その３次元オブジェクトを選択状態にする。所定時間が経過していない場合（ステップＳＩ０３，Ｎｏ）、ステップＳＩ０４は実行されない。
【０１７３】
続いて、制御部２２は、ステップＳＩ０５として、第１の物体および第２の物体の移動速度を算出する。そして、制御部２２は、ステップＳＩ０６として、算出した移動速度が閾値以下であるかを判定する。移動速度が閾値以下の場合（ステップＳＩ０６，Ｙｅｓ）、制御部２２は、ステップＳＩ０７として、検出された第１の物体および第２の物体の動きに応じて３次元オブジェクトを移動させたり回転させたりする。そして、制御部２２は、ステップＳＩ０１以降を再実行する。
【０１７４】
移動速度が閾値より速い場合（ステップＳＩ０６，Ｎｏ）、制御部２２は、ステップＳＩ０８として、３次元オブジェクトを消去する。３次元オブジェクトを消去するに際して、３次元オブジェクトが第１の物体および第２の物体の移動方向へ向けて飛んでいくようにアニメーション表示してもよい。そして、制御部２２は、操作検出処理を終了させる。第１の物体および第２の物体を高速で移動させる操作ではなく、例えば、３次元オブジェクトを握りつぶす操作に３次元オブジェクトの消去を割り当ててもよい。３次元オブジェクトを消去する代わりに、３次元オブジェクトを当初の配置場所に戻すこととしてもよい。表示装置１は、ステップＳＩ０５、ＳＩ０６およびステップＳＩ０８の処理を行わなくてもよい。すなわち、表示装置１は、ステップＳＩ０３でＮｏと判定した場合またはステップＳＩ０４を実行した後に、２つの物体の移動速度にかかわらず、ステップＳＩ０７を実行してもよい。
【０１７５】
第１の物体と第２の物体の距離がほぼ一定でない場合（ステップＳＩ０２，Ｎｏ）、制御部２２は、ステップＳＩ０９として、距離が、３次元オブジェクトの選択時、すなわち、操作検出処理の開始時点よりも拡大しているかを判定する。距離が拡大している場合（ステップＳＩ０９，Ｙｅｓ）、制御部２２は、ステップＳＩ１０として、第１の物体と第２の物体の間に表示されていた３次元オブジェクトが仮選択状態であるかを判定する。
【０１７６】
３次元オブジェクトが仮選択状態である場合（ステップＳＩ１０，Ｙｅｓ）、制御部２２は、ステップＳＩ１１として、３次元オブジェクトの仮選択状態を解除する。また、制御部２２は、ステップＳＩ１２として、３次元オブジェクトを逆変化させて元の状態に戻す。そして、制御部２２は、操作検出処理を終了させる。
【０１７７】
３次元オブジェクトが仮選択状態でない場合、すなわち、選択状態の場合（ステップＳＩ１０，Ｎｏ）、制御部２２は、ステップＳＩ１３として、３次元オブジェクトの選択状態を解除する。また、制御部２２は、ステップＳＩ１４として、選択状態を解除した３次元オブジェクトを重力等に従って移動させる。そして、制御部２２は、操作検出処理を終了させる。ここでの移動は、例えば、３次元オブジェクトが重力に従って落下し、床やテーブルの上で停止するように表示される。３次元オブジェクトの動きを停止させる前に、３次元オブジェクトの弾性や床やテーブルの硬度に応じて３次元オブジェクトをバウンドさせてもよい。３次元オブジェクトが床やテーブルに衝突するときの衝撃の大きさを算出し、衝撃が所定の値よりも大きい場合には３次元オブジェクトを破損したように表示してもよい。また、実際の重力が働く場合よりも３次元オブジェクトをゆっくりと移動させてもよい。
【０１７８】
第１の物体と第２の物体の距離が３次元オブジェクトの選択時よりも縮まっている場合（ステップＳＩ０９，Ｎｏ）、制御部２２は、ステップＳＩ１５として、距離に応じて３次元オブジェクトを変形させる。そして、制御部２２は、ステップＳＩ０１以降を再実行する。３次元オブジェクトを変形させる程度は、例えば、３次元オブジェクトに属性として設定されている硬度に応じて変更してもよい。
【０１７９】
上述してきたように、第３の例では、指等の物体の間に３次元オブジェクトが位置していることが検出された時点から、操作に応じて３次元オブジェクトを変化させることとしたので、利用者が３次元オブジェクトの選択を認識しやすい。
【０１８０】
図３５に示すステップＳ８１からステップＳ８３のように、第１の物体と第２の物体のうち少なくとも一方が３次元オブジェクトに接触した後に第１の物体と第２の物体の距離が所定時間以上ほぼ一定に保たれることを、３次元オブジェクトを選択する条件としてもよい。３次元オブジェクトへの接触を選択の条件とすることにより、複数の３次元オブジェクトが近接して表示されている場合に、利用者が所望の３次元オブジェクトを選択し易くなる。
【０１８１】
上記の実施例において説明した表示装置１は各種の用途に適用できる。操作の対象となる３次元オブジェクト（表示物）は、例えば、本、積み木、スプーン、箸、トランプ、粘土、楽器のように現実に存在するものを模したオブジェクトであってもよいし、仮想のアバター、ゲームのキャラクター、仮想現実のＡＲタグのように実在はしないオブジェクトであってもよい。また、検出された操作に応じて３次元オブジェクトに加えられる変化は、上記の移動、変形、消失、置換等に限定されない。また、押す操作に応じて３次元オブジェクトに加えられる変化は、上記の実施例に限定されず、３次元オブジェクトの種類に応じて変更してよい。
【０１８２】
例えば、粘土を模した３次元オブジェクト（以下、単に「粘土」という）を操作対象とする場合、押す操作に応じて粘土を変形させて、利用者が粘土を任意の形に成形できるようにしてもよい。また、時間の経過にしたがって、あたかも粘土が乾いていくかのように、粘土を硬化させていってもよい。また、水の３次元オブジェクトに浸けた指や手で粘土を押す操作が検出された場合に、粘土の粘性を向上させてもよい。
【０１８３】
また、レコード盤を模した３次元オブジェクト（以下、単に「レコード盤」という）を操作対象とする場合、押す操作に応じてレコード盤が支点を中心として回転するとともに、音を再生するようにしてもよい。回転と音の再生を連動させることにより、ディスクジョッキーによるスクラッチ等の技法を仮想的に実現してもよい。
【実施例２】
【０１８４】
実施例１では、表示装置が、３次元オブジェクトに対する操作を検出し、検出した操作に応じて３次元オブジェクトに変化を加える方法を説明した。以下の実施例２では、実施例１で説明した方法を、例えば、表計算アプリケーションを３次元の仮想空間で実行する場合に適用する例について説明する。
【０１８５】
図３６を参照しながら、表示装置１の機能的な構成について説明する。図３６は、第２の実施例に係る表示装置１のブロック図である。第２の実施例に係る表示装置１の機能的な構成は、基本的には、第１の実施例（図６）と同様であるが、以下に説明する点が異なる。
【０１８６】
記憶部２４に記憶される制御プログラム２４ａには、第１の実施例と同様に、検出処理部２５と、表示オブジェクト制御部２６と、画像合成部２７とが含まれる他、さらに、表計算処理部２８が含まれる。記憶部２４に記憶されるデータには、オブジェクトデータ２４ｂと、作用データ２４ｃと、仮想空間データ２４ｄとが含まれる他、さらに、表計算データ２４ｅが含まれる。
【０１８７】
表計算処理部２８は、数値データの集計、演算、および分析などの表計算に関わる処理を実現するための機能を提供する。表計算処理部２８は、表計算に関わる処理を行うためのワークシートで各面が構成される立体状のオブジェクトを表示する。表計算処理部２８は、ワークシートに対して検出される操作に応じて、表計算に関わる処理を実現する。ワークシートには、例えば、縦横に格子状のセルが複数配置される。ワークシートに対して検出される操作には、セルに対する操作が含まれる。
【０１８８】
図３７〜図３９を用いて、表計算処理部２８が処理内容を決定するためのルールについて説明する。図３７は、利用者から見たときの表示空間に表示される立体状のオブジェクトの状態を示す図である。図３８は、立体状のオブジェクトの展開図である。図３７に示すＥ１は、利用者の目を示す。
【０１８９】
図３７に示すように、利用者は、利用者の視線方向α１に並行なＺ軸方向に奥行きを持った空間として表示空間５０を認識する。そして、利用者は、表示空間５０内に、表計算に関わる処理を行うためのワークシートで各面が構成される立体状のオブジェクト（以下、キューブＣＢ１と表記する）が空中に浮かんでいるかのように認識する。以下の説明において、Ｚ軸方向という表記する場合は、利用者から表示空間５０の奥側に向う方向、及び表示空間５０の奥側から利用者に向う方向のどちらにも限定されず、Ｚ軸方向（＋）と表記する場合は、利用者から離れて表示空間５０の奥側に向う方向であり、３次元座標系の原点へ向う方向とは逆方向を意味するものとする。Ｘ軸方向と表記する場合は、少なくとも、Ｘ軸に並行な方向であることを意味する。Ｙ軸方向と表記する場合は、少なくとも、Ｙ軸に並行な方向であることを意味する。Ｙ軸方向（＋）と表記する場合は、３次元座標系の原点へ向う方向とは逆方向を意味するものとする。Ｙ軸方向（−）と表記する場合は、３次元座標系の原点へ向う方向を意味するものとする。
【０１９０】
図３８に示すように、キューブＣＢ１は、キューブＣＢ１の各面が、ワークシートＷＳ１、ワークシートＷＳ２、ワークシートＷＳ３、ワークシートＷＳ４、ワークシートＷＳ５、ワークシートＷＳ６で構成される。ワークシートＷＳ１〜ＷＳ６は、それぞれが独立して、利用者からの操作に応じた表計算に関わる処理を実現する。
【０１９１】
図３９は、キューブ又はワークシートに対して検出される操作と、表計算に関わる処理に含まれる処理項目とが予め対応付けられた処理項目決定ルールの例を示す図である。表計算処理部２８は、ワークシートに対して検出される操作に応じて実行すべき処理項目を、図３９に示す処理項目決定ルールに基づいて決定し、決定した処理項目の処理を実行する。
【０１９２】
図３９に示すＮｏ．１のルールには、「キューブの１面をＺ軸方向（＋）に移動させる」という検出操作と、「キューブＣＢ１を構成する面が直交する部分（別々のワークシートのセルが隣り合う部分）において、演算が定義されている場合には、演算結果を更新」という処理項目とが対応付けられている。
【０１９３】
図３９に示すＮｏ．２のルールには、「キューブの列又は行を回転させる」という検出操作と、「回転する列又は行を参照する演算及びグラフがある場合には、演算結果及びグラフを更新」という処理項目とが対応付けられている。
【０１９４】
図３９に示すＮｏ．３のルールには、「キューブを手で切る」という検出操作と、「キューブの分割に応じてワークシートの構成情報を更新」という処理項目とが対応付けられている。キューブが分割された場合、ワークシートの数、ワークシートが有するセルの数、行数又は列数などを更新する趣旨である。
【０１９５】
図３９に示すＮｏ．４のルールには、「２つのセルをＸ軸方向に移動させて衝突させる」という検出操作と、「セルの数値データ同士を乗算」という処理項目とが対応付けられている。
【０１９６】
図３９に示すＮｏ．５のルールには、「２つのセルをＹ軸方向に移動させて衝突させる」という検出操作と、「Ｙ軸方向（＋）のセルの数値データをＹ軸方向（−）のセルの数値データで除算」という処理項目とが対応付けられている。
【０１９７】
図３９に示すＮｏ．６のルールには、「キューブをＹ軸方向（−）に押しつぶす」という検出操作と、「Ｙ軸方向（−）の移動量に応じて、ワークシートのデータを消去」という処理項目とが対応付けられている。
【０１９８】
図３９に示すＮｏ．７のルールには、「キューブ内の特定のセルを押す」という検出操作と、「セルを含む列または行のセルを削除」という処理項目とが対応付けられている。
【０１９９】
図３９に示すＮｏ．８のルールには、「分離されたセルを他のワークシートに衝突させる」という検出操作と、「セルが分離されたワークシートのデータ、およびセルが衝突したワークシートのデータを更新」という処理項目とが対応付けられている。
【０２００】
図３９に示す処理項目決定ルールは、一例を示すものに過ぎず、図３９に示す例のほかにも、検出される操作の種類、操作に対応付ける処理の内容を追加、変更、削除してもよい。
【０２０１】
キューブＣＢ１（キューブの６面を構成するワークシート）に対して検出される操作に応じたキューブＣＢ１（キューブの６面を構成するワークシート）の表示態様の変化は、検出処理部２５、表示オブジェクト制御部２６、及び画像合成部２７により提供される機能、及びオブジェクトデータ２４ｂ、作用データ２４ｃ、及び仮想空間データ２４ｄに基づいて実現される。
【０２０２】
検出処理部２５は、第１の実施例と同様に、撮影部４０および４２の撮影範囲に存在する現実の物体を検出するための機能を提供する。検出処理部２５が提供する機能には、検出したそれぞれの物体までの距離を測定する機能が含まれる。第２の実施例では、検出処理部２５は、主に、利用者の手または指を検出し、検出した利用者の手または指までの距離を測定する。
【０２０３】
表示オブジェクト制御部２６は、第１の実施例と同様に、仮想空間にどのような３次元オブジェクトが配置され、それぞれの３次元オブジェクトがどのような状態にあるかを管理するための機能を提供する。表示オブジェクト制御部２６が提供する機能には、検出処理部２５の機能によって検出される現実の物体の動きに基づいて３次元オブジェクトに対する操作を検出し、検出した操作に基づいて３次元オブジェクトを変化させる機能が含まれる。第２の実施例では、表示オブジェクト制御部２６は、主に、検出処理部２５の機能によって検出される利用者の手の動きに基づいてキューブＣＢ１（キューブの６面を構成するワークシート）に対する操作を検出し、検出した操作に基づいてキューブＣＢ１（キューブの６面を構成するワークシート）の表示態様を変化させる。
【０２０４】
画像合成部２７は、第１の実施例と同様に、現実の空間の画像と仮想空間の画像とを合成することにより、表示部３２ａに表示する画像と表示部３２ｂに表示する画像とを生成するための機能を提供する。画像合成部２７が提供する機能には、検出処理部２５の機能によって測定される現実の物体までの距離と、仮想空間における視点から３次元オブジェクトまでの距離とに基づいて、現実の物体と３次元オブジェクトの前後関係を判定し、重なりを調整する機能が含まれる。第２の実施例では、画像合成部２７は、キューブＣＢ１の画像と、現実の空間の画像と合成する。さらに、画像合成部２７は、検出処理部２５の機能によって検出される利用者の手までの距離と、仮想空間における視点からキューブＣＢ１までの距離とに基づいて、利用者の手とキューブＣＢ１の前後関係を判定し、重なりを調整する。
【０２０５】
オブジェクトデータ２４ｂは、第２の実施例では、例えば、キューブＣＢ１を３次元オブジェクトとして表示するために用いられる。オブジェクトデータ２４ｂには、第２の実施例において、キューブＣＢ１（キューブの６面を構成するワークシート）の種別、形状情報、色、透明度等を含む情報が格納される。種別は、キューブＣＢ１（キューブの６面を構成するワークシート）の物理的な性質を示す。種別は、例えば、「剛体」、「弾性体」等の値をとる。形状情報は、キューブＣＢ１（キューブの６面を構成するワークシート）の形状を示す情報である。形状情報は、例えば、キューブＣＢ１（キューブの６面を構成するワークシート）を構成する面の頂点座標の集合である。色は、キューブＣＢ１（キューブの６面を構成するワークシート）の表面の色、あるいは色の構成である。透明度は、キューブＣＢ１（キューブの６面を構成するワークシート）が光を透過させる度合いである。
【０２０６】
作用データ２４ｃは、第２の実施例では、３次元オブジェクトとして表示されるキューブＣＢ１（キューブの６面を構成するワークシート）に対する操作が検出された場合に、キューブＣＢ１（キューブの６面を構成するワークシート）の表示態様をどのように変化させるかを判定するために用いられる。ここでいう変化には、キューブＣＢ１の消失、移動、回転、変形、置換、キューブＣＢ１の６面を構成するワークシートのセルの消失、複製、拡大、縮小、変形、置換、ワークシートの縦横に格子状に配置された複数のセルの消失、複製、拡大、縮小、変形、置換等が含まれる。尚、置換とは、一のキューブやセル、シートが、他のキューブやセル、シートに置換されることをいう。
【０２０７】
仮想空間データ２４ｄは、第２の実施例では、３次元オブジェクトとして表示されるキューブＣＢ１（キューブの６面を構成するワークシート）の状態に関する情報を保持する。キューブＣＢ１（キューブの６面を構成するワークシート）の状態には、例えば、位置、姿勢、変形の状況等が含まれる。
【０２０８】
表計算データ２４ｅは、キューブＣＢ１（キューブの６面を構成するワークシート）の構成情報、キューブＣＢ１（キューブの６面を構成するワークシート）に保持されているデータ、表計算処理部２８によりキューブＣＢ１（キューブの６面を構成するワークシート）上で実行される各種処理に関するデータを記憶する。
【０２０９】
以下、第２の実施例に係る制御プログラム２４ａが提供する機能に基づく種々の制御について説明する。第２の実施例に係る制御プログラム２４ａが提供する機能に基づく種々の制御には、キューブＣＢ１（キューブの６面を構成するワークシート）に対して検出される操作に応じて前記ルールにより決定される表計算に関わる処理の制御、及びキューブＣＢ１（キューブの６面を構成するワークシート）に対して検出される操作に応じてワークシートの表示態様を変化させる処理の制御が含まれる。
【０２１０】
図４０は、キューブＣＢ１に対して行われる操作の例を示す図である。図４１は、キューブＣＢ１の表示態様の例を示す図である。
【０２１１】
例えば、表示装置１は、図４１に示すように、キューブＣＢ１を、例えば、Ｙ軸を中心として回転させる操作が行われると、図４１に示すように、キューブＣＢ１の表示面（ワークシート）を変更する。例えば、表示装置１は、Ｙ軸を中心としてキューブＣＢ１を回転させるための利用者の指の動きを予め記憶しておき、利用者の指に動きに応じて、キューブＣＢ１を回転させて、キューブＣＢ１の表示面（ワークシート）を変更する。
【０２１２】
表示装置１は、例えば、図４１のステップＳ９１に示すように、キューブＣＢ１のある１面を構成するワークシートＷＳ１が利用者の正面を向くように表示されている状態で、Ｙ軸を中心として９０度左回りに回転する操作が行われると、図４１のステップＳ９２に示すように、キューブＣＢ１の他の１面を構成するワークシートＷＳ２が利用者の正面を向くように表示する。表示装置１は、例えば、図４１のステップＳ９１に示すように、キューブＣＢ１のある１面を構成するワークシートＷＳ１が利用者の正面を向くように表示されている状態で、Ｙ軸を中心として４５度左回りに回転する操作が行われると、図４１のステップＳ９３に示すように、キューブＣＢ１のある１面を構成するワークシートＷＳ１と、キューブＣＢ１の他の１面を構成するワークシートＷＳ２とが半分ずつ利用者の正面を向くように表示する。
【０２１３】
図４１のステップＳ９３に示す場合、表示装置１は、図３９に示すルールに特に記載されてはいないが、ワークシートＷＳ１及びワークシートＷＳ２について処理を有効な状態に切り替えるともに、表計算データ２４ｅにその旨を記録してもよい。
【０２１４】
図４２は、キューブＣＢ１に対して行われる操作の例を示す図である。図４３は、キューブＣＢ１にて表計算に関わる処理が実行される箇所の例を示す図である。図４２及び図４３の説明の前提として、キューブＣＢ１の各面を構成するワークシートが直交する部分（別々のワークシートのセルが隣り合う部分）において、それぞれのワークシートに配置されたセルに入力されているデータを参照して演算が行われるように数式が定義されているものとする。
【０２１５】
表示装置１は、図４２に示すように、利用者の手Ｈ１のひらで、キューブＣＢ１を構成する面のうち、ワークシートＷＳ１で構成される面を、Ｚ軸方向（＋）に移動させる操作を検出すると、図４３に示すように、操作された面がそのまま平行したかのように表示させる。表示装置１は、利用者の手Ｈ１がＺ軸方向（＋）に移動する距離に応じて、ワークシートＷＳ１で構成される面を移動させる。
【０２１６】
同時に、表示装置１は、図３９に示すルールＮｏ．１に基づいて、表計算に関わる処理を実行する。すなわち、表示装置１は、検出部（例えば、検出処理部２５および表示オブジェクト制御部２６）によってキューブＣＢ１のワークシートＷＳ１に対して検出される操作に応じて、ワークシートＷＳ１と、ワークシートＷＳ２とが角度（９０度）を形成する位置に隣接している、ワークシートＷＳ１に配置されているセルに入力されているデータとワークシートＷＳ２に配置されているセルに入力されているデータとを参照する演算処理を実行する。同様に、表示装置１は、ワークシートＷＳ１と、ワークシートＷＳ５とが角度（９０度）を形成する位置に隣接している、ワークシートＷＳ１に配置されているセルに入力されているデータとワークシートＷＳ５に配置されているセルに入力されているデータとを参照する演算処理を実行する。同様に、表示装置１は、ワークシートＷＳ１と、ワークシートＷＳ４とが角度（９０度）を形成する位置に隣接している、ワークシートＷＳ１に配置されているセルに入力されているデータとワークシートＷＳ４に配置されているセルに入力されているデータとを参照する演算処理を実行する。同様に、表示装置１は、ワークシートＷＳ１と、ワークシートＷＳ６とが角度（９０度）を形成する位置に隣接している、ワークシートＷＳ１に配置されているセルに入力されているデータとワークシートＷＳ６に配置されているセルに入力されているデータとを参照する演算処理を実行する。
【０２１７】
図４２に示す操作によって、図４３に示すように、例えば、キューブＣＢ１を構成する面のうち、ワークシートＷＳ１で構成される面とワークシートＷＳ２で構成される面とが交わる面ＯＰ１、ワークシートＷＳ１で構成される面とワークシートＷＳ５で構成される面とが交わる面ＯＰ２、ワークシートＷＳ１で構成される面とワークシートＷＳ４で構成される面とが交わる面ＯＰ３、ワークシートＷＳ１で構成される面とワークシートＷＳ６で構成される面とが交わる面ＯＰ４が、図４２に示す場合から変更されるので、表示装置１は、改めて演算を実行し、表計算データ２４ｅに記憶されている演算結果を更新する。
【０２１８】
表示装置１は、例えば、図４２に示す操作が行われる前、すなわち、ワークシートＷＳ１と、ワークシートＷＳ２、ＷＳ５、ＷＳ４、ＷＳ６とが交わる面が変更される前であっても、同様に、ワークシート間で隣接するセルを参照する演算処理を実行することができる。
【０２１９】
図４４は、ワークシートの構成例を示す図である。図４５は、立体的なセルの例を示す図である。
【０２２０】
図４４に示すように、キューブＣＢ１の各面を構成するワークシートの各セルを立方体状のオブジェクト（以下、セルキューブと表記する）で構成してもよい。図４４に示す場合、ワークシートＷＳ１は、セルキューブＣＣ１を構成する面のうち、例えば、利用者側を向く面ＳＦ１と、この面に並行な面ＢＦ１とを表計算に関わる処理が有効な状態としてもよい。表示装置１は、面ＢＦ１を表示する場合、面ＳＦ１の透過処理を行うことにより表示してもよいし、キューブＣＢ１への手の挿入が行われた場合に表示するようにしてもよい。あるいは、表示装置１は、セルキューブＣＣ１を摘み、Ｙ軸を中心として回転させる操作を検出した場合には、面ＳＦ１と、面ＢＦ１とが切り替えられたかのように表示してもよい。
【０２２１】
図４６は、キューブＣＢ１内にグラフの表示する例を示す図である。図４６に示すように、表示装置１は、キューブＣＢ１の内部に、ワークシート上で実行された演算結果に対応するグラフＧＲ１を表示してもよい。表示装置１は、表計算データ２４ｅに記憶されている演算結果のデータに基づいて、キューブＣＢ１の内部に表示させるグラフを作成する。
【０２２２】
図４７は、キューブＣＢ１の列又は行の回転の概念を示す図である。図４７には、キューブＣＢ１の列又は行の回転の概念を説明するために、キューブＣＢ１の各面を構成するワークシートに配置されるセルキューブの数、セルキューブがなす列数および行数を簡略化して、３列×３行で構成されるキューブを示したものである。例えば、表示装置１は、セルキューブＣＣｘを含む９つのセルキューブを一塊として、回転軸Ｐｙを中心に回転させる操作（矢印３８−１の方向に回転させる操作）を検出した場合には、９つのセルキューブを１行ひと塊として回転されているかのように表示させる。同様に、表示装置１は、回転軸Ｐｘを中心に回転させる操作（矢印３８−２の方向に回転させる操作）を検出した場合には、９つのセルキューブを１列ひと塊として回転されているかのように表示させる。
【０２２３】
このとき、表示装置１は、図４６に示すグラフが、キューブＣＢ１の１面を構成するワークシートＷＳ１のセルデータに基づく演算結果を参照している場合には、図３９に示すルールＮｏ．２に基づいて、表示装置１は、表計算データ２４ｅに記憶されている演算結果及びグラフを更新する。表示装置１は、図４４に示すグラフに更新を反映させる。
【０２２４】
図４８は、キューブＣＢ１の分割の概念を示す図である。表示装置１は、例えば、キューブＣＢ１を手で割るような操作を検出した場合には、図４８に示すように、キューブＣＢ１が、キューブＣＢ２とキューブＣＢ３とに分割されたかのように表示してもよい。例えば、表示装置１は、Ｚ軸方向（＋）に移動する利用者の手Ｈ１のひらが、キューブＣＢ１の内部をＺ軸方向（＋）に縦断する箇所を検出し、該当箇所からキューブＣＢ１を分割する。キューブＣＢ１が分割されたかのように表示させるための操作は、キューブＣＢ１を手で割るような操作には限定されず、任意の操作であってよい。
【０２２５】
同時に、表示装置１は、図３９に示すルールＮｏ．３に基づいて、表計算データ２４ｅに記憶されているデータを更新する。すなわち、表示装置１は、キューブの分割に応じてワークシートの構成情報（ワークシートの数、ワークシートが有するセルの数、行数又は列数など）を更新する。
【０２２６】
図４９は、キューブＣＢ１を構成するワークシート上のセルキューブの選択の概念を示す図である。表示装置１は、例えば、キューブＣＢ１のある１面を構成するワークシートＷＳ１と、キューブＣＢ１の他の１面を構成するワークシートＷＳ２とが半分ずつ利用者の正面を向くように表示されている場合（例えば、図４１のステップＳ９３参照）において、ワークシートＷＳ１のセルキューブＣＣ１と、ワークシートＷＳ２のセルキューブＣＣ２とを、同時に選択することを可能とする。
【０２２７】
そして、表示装置１は、例えば、セルキューブＣＣ１とセルキューブＣＣ２とを摘んで、Ｘ軸方向に衝突させるように動かす操作を検出すると、セルキューブＣＣ１とセルキューブＣＣ２とが衝突するタイミングで双方のセルキューブを消失させる。そして、セルを消失させるタイミングにあわせて、表示装置１は、予め演算が定義されていたワークシートの所定のセルキューブなどに、演算結果を表示させる。セルの演算は、上記セルキューブの表示態様の制御と並列に実行されているものとする。
【０２２８】
同時に、表示装置１は、図３９に示すルールＮｏ．４に基づいて、表計算データ２４ｅに記憶されているデータを更新する。なお、表示装置１は、図３９に示すルールＮｏ．４の検出操作にある「セル」を「セルキューブ」に自動的に読み替えて、処理を実行するものとする。すなわち、表示装置１は、セルの数値データ同士を乗算し、乗算の結果で更新する。
【０２２９】
図５０は、キューブＣＢ１を押しつぶす概念を示す図である。表示装置１は、図５０のステップＳ１０１に示すように、キューブＣＢ１の１面を構成するワークシートＷＳ５の側から、Ｙ軸方向（−）に押しつぶす操作を検出すると、図５０のステップＳ１０２に示すように、キューブＣＢ１が押しつぶされたかのように、押しつぶす操作が行われた側とは反対にある９つのセルキューブを消失させる。表示装置１は、利用者の手Ｈ１のひらのＹ軸方向（−）の移動量に応じて、消滅させるセルキューブの量を調整してもよい。
【０２３０】
同時に、表示装置１は、図３９に示すルールＮｏ．６に基づいて、表計算データ２４ｅに記憶されているデータを更新する。すなわち、表示装置１は、消失させるセルキューブに対応するワークシートのデータを消去する。図５０に示す例では、ワークシートＷＳ１〜ＷＳ４のセルデータの一部、及びワークシートＷＳ６のデータが完全に消去されることになる。
【０２３１】
図５１は、キューブＣＢ１の１列を消失させる概念を示す図である。図５１に示すように、表示装置１は、キューブＣＢ１の１面を構成するワークシートＷＳ１のセルキューブＣＣ１をＺ軸方向（＋）に押す操作を検出すると、セルキューブＣＣ１を含むワークシートＷＳ１の列Ｌ１を消失させる。例えば、表示装置１は、利用者の手Ｈ１とセルキューブＣＣ１とが接触した状態で一定時間以上経過した場合には、セルキューブＣＣ１が選択されたものと判定し、セルキューブＣＣ１を含む列Ｌ１を消滅対象として確定させる。このとき、表示装置１は、列自体を消失させるか、列を構成するセルに記入されているデータのみを消去するかを、検出される操作に応じて区別してもよい。あるいは、表示装置１は、列の消失を、ワークシートＷＳ１に対してのみ実行し、他のワークシートに影響を与えないようにしてもよい。この場合、表示装置１は、消去された列に代わる新たな列を自動生成する。
【０２３２】
同時に、表示装置１は、図３９に示すルールＮｏ．７に基づいて、表計算データ２４ｅに記憶されているデータを更新する。すなわち、表示装置１は、利用者の手Ｈ１により押されるセルを含む列又は行のセルを削除する。
【０２３３】
図５２は、キューブＣＢ１からのセルキューブの分離の概念を示す図である。図５２に示すように、表示装置１は、キューブＣＢ１の１面を構成するワークシートに含まれるセルキューブＣＣｘを摘んで、引っ張る操作を検出すると、セルキューブＣＣｘがキューブＣＢ１から分離されたかのように表示する。続いて、表示装置１は、例えば、分離されたかのように表示したセルキューブＣＣｘを、他のワークシートに衝突させる操作を検出すると、セルキューブＣＣｘのデータがコピーされたかのように、セルキューブＣＣｘのデータを、セルキューブＣＣｘが衝突されたワークシートに表示させる。
【０２３４】
同時に、表示装置１は、図３９に示すルールＮｏ．８に基づいて、表計算データ２４ｅに記憶されているデータを更新する。すなわち、表示装置１は、セルが分離されたワークシートのデータ、およびセルが衝突したワークシートのデータを更新する。
【０２３５】
そのほか、表示装置１は、セルに記入されているデータを、表示上のセルの面積で表示仕切れない場合に、例えば、利用者の指でセルの表面を滑らせるような操作に応じて、セルに記入されているデータをスクロール表示してもよい。
【０２３６】
あるいは、表示装置１は、利用者の操作に応じて、キューブＣＢ１が任意の軸を中心として回転された場合であっても、利用者の正面に見えるワークシートに記入されているデータ（文字、数字など）の上下方向が、利用者に違和感を与えないように自動的に合わせて表示するようにしてもよい。
【０２３７】
図５３は、第２の実施例に係る処理手順を示すフローチャートである。図５３に示す処理手順は、制御部２２が、制御プログラム２４ａを実行することによって実現される。
【０２３８】
図５３に示すように、制御部２２は、ステップＳＪ０１として、ワークシートを６面に有するキューブＣＢ１を合成表示する。
【０２３９】
続いて、制御部２２は、ステップＳＪ０２として、ワークシートに対する操作が検出されたかを判定する。制御部２２は、判定の結果、ワークシートに対する操作が検出された場合には（ステップＳＪ０２，Ｙｅｓ）、ステップＳＪ０３として、検出された操作に応じて処理を実行する。例えば、ステップＳＪ０３において実行される処理には、キューブＣＢ１（キューブの６面を構成するワークシート）に対して検出される操作に応じて前記ルールにより決定される表計算に関わる処理の制御、及びキューブＣＢ１（キューブの６面を構成するワークシート）に対して検出される操作に応じてワークシートの表示態様を変化させる処理の制御が含まれる。（図４０〜図５２など参照）。
【０２４０】
続いて、制御部２２は、ステップＳＪ０４として、操作終了が検出されたかを判定する。操作終了は、例えば、操作部１３に対する所定の操作が行われた場合に検出される。操作終了が検出された場合（ステップＳＪ０４，Ｙｅｓ）、制御部２２は、図５３に示す処理手順を終了させる。操作終了が検出されない場合（ステップＳＪ０４，Ｎｏ）、制御部２２は、ステップＳＪ０２以降を再実行する。
【０２４１】
ステップＳＪ０２において、制御部２２は、判定の結果、ワークシートに対する操作が検出されない場合には（ステップＳＪ０２，Ｎｏ）、上記ステップＳＪ０４の処理手順に進む。
【０２４２】
上記の各実施例で示した本発明の態様は、本発明の要旨を逸脱しない範囲で任意に変更することができる。また、上記の各実施例を適宜組み合わせてもよい。例えば、上記の実施例で示した制御プログラムは、複数のモジュールに分割されていてもよいし、他のプログラムと統合されていてもよい。
【０２４３】
上記の実施例では、３次元オブジェクトを利用者自身が操作する例について説明したが、表示装置は、撮影部の撮影範囲における他人、動物、機械等の動きを３次元オブジェクトとして検出してもよい。また、表示装置は、仮想空間を他の装置と共有してもよい。すなわち、表示装置は、仮想空間内の３次元オブジェクトを当該表示装置の利用者以外の人が他の装置を介して見て操作できるように構成されてもよい。
【０２４４】
上記の実施例では、表示装置が単独で３次元オブジェクトに対する操作を検出することとしたが、表示装置がサーバ装置と協業して３次元オブジェクトに対する操作を検出することとしてもよい。この場合、表示装置は、撮影部が撮影した画像または検出部の検出した情報をサーバ装置へ逐次送信し、サーバ装置が操作を検出して検出結果を表示装置へ通知する。このような構成とすることにより、表示装置の負荷を低減することができる。
【０２４５】
上記の実施例で説明した表示装置により実行される各種制御は、スマートフォン、タブレットなどの携帯型の装置で実行することもできる。
【符号の説明】
【０２４６】
１  表示装置
１ａ  前面部
１ｂ  側面部
１ｃ  側面部
４ｄ  外部装置
１３  操作部
２２  制御部
２４  記憶部
２４ａ  制御プログラム
２４ｂ  オブジェクトデータ
２４ｃ  作用データ
２４ｄ  仮想空間データ
２４ｅ  表計算データ
２５  検出処理部
２６  表示オブジェクト制御部
２７  画像合成部
２８  表計算処理部
３２ａ、３２ｂ  表示部
４０、４２  撮影部
４４  検出部
４６  測距部
【図１】
2014071738.tif 000003
【図２】
2014071738.tif 000004
【図３】
2014071738.tif 000005
【図４】
2014071738.tif 000006
【図５】
2014071738.tif 000007
【図６】
2014071738.tif 000008
【図７】
2014071738.tif 000009
【図８】
2014071738.tif 000010
【図９】
2014071738.tif 000011
【図１０】
2014071738.tif 000012
【図１１】
2014071738.tif 000013
【図１２】
2014071738.tif 000014
【図１３】
2014071738.tif 000015
【図１４】
2014071738.tif 000016
【図１５】
2014071738.tif 000017
【図１６】
2014071738.tif 000018
【図１７】
2014071738.tif 000019
【図１８】
2014071738.tif 000020
【図１９】
2014071738.tif 000021
【図２０】
2014071738.tif 000022
【図２１】
2014071738.tif 000023
【図２２】
2014071738.tif 000024
【図２３】
2014071738.tif 000025
【図２４】
2014071738.tif 000026
【図２５】
2014071738.tif 000027
【図２６】
2014071738.tif 000028
【図２７】
2014071738.tif 000029
【図２８】
2014071738.tif 000030
【図２９】
2014071738.tif 000031
【図３０】
2014071738.tif 000032
【図３１】
2014071738.tif 000033
【図３２】
2014071738.tif 000034
【図３３】
2014071738.tif 000035
【図３４】
2014071738.tif 000036
【図３５】
2014071738.tif 000037
【図３６】
2014071738.tif 000038
【図３７】
2014071738.tif 000039
【図３８】
2014071738.tif 000040
【図３９】
2014071738.tif 000041
【図４０】
2014071738.tif 000042
【図４１】
2014071738.tif 000043
【図４２】
2014071738.tif 000044
【図４３】
2014071738.tif 000045
【図４４】
2014071738.tif 000046
【図４５】
2014071738.tif 000047
【図４６】
2014071738.tif 000048
【図４７】
2014071738.tif 000049
【図４８】
2014071738.tif 000050
【図４９】
2014071738.tif 000051
【図５０】
2014071738.tif 000052
【図５１】
2014071738.tif 000053
【図５２】
2014071738.tif 000054
【図５３】
2014071738.tif 000055