(57)【要約】【課題】利用者に対して利便性の高い操作方法を提供すること。【解決手段】表示装置１は、装着されることによりユーザの両目のそれぞれに対応した画像を表示することで、表示空間内の３次元マトリクス状に区分けされた仮想の遊戯領域中に、当該区分けされた各区画を１個分或いは複数個分だけ占有する３次元ブロックを立体表示する表示部３２ａおよび３２ｂと、表示部３２ａおよび３２ｂを制御する制御部２２と、表示空間中の物体の位置を検出する検出部４４と、を備える。制御部２２は、表示部３２ａおよび３２ｂを制御して、３次元ブロックを出現させるとともに、検出部４４により、表示空間における物体の経時的な変化が検出されたとき、当該検出結果に基づいて、３次元ブロックを区画単位で移動させる。そして、移動した当該３次元ブロックにより、遊戯領域の一の層の全ての区画が埋めつくされたとき、３次元ブロック中の一の層に含まれる部分を消去する。【選択図】図６
2014068689.tif 000002
【特許請求の範囲】
【請求項１】
装着されることによりユーザの両目のそれぞれに対応した画像を表示することで、表示空間内の３次元マトリクス状に区分けされた仮想の遊戯領域中に、当該区分けされた各区画を１個分或いは複数個分だけ占有する３次元ブロックを立体表示する表示部と、当該表示部を制御する制御部と、前記表示空間中の物体の位置を検出する検出部と、を備え、
前記制御部は、前記表示部を制御して、
前記３次元ブロックを出現させるとともに、
前記検出部により、前記表示空間における前記物体の経時的な変化が検出されたとき、当該検出結果に基づいて、前記３次元ブロックを前記区画単位で移動させ、
移動した当該３次元ブロックにより、前記遊戯領域の一の層の全ての区画が埋めつくされたとき、前記３次元ブロック中の前記一の層に含まれる部分を消去する表示装置。
【請求項２】
前記制御部は、一の前記３次元ブロックが出現してから、所定時間後に次の前記３次元ブロックが出現するように制御する請求項１に記載の表示装置。
【請求項３】
前記制御部は、前記３次元ブロックを出現させる間隔を時間が経つにつれて短くする請求項２に記載の表示装置。
【請求項４】
前記制御部は、前記３次元ブロックが、時間の経過にしたがって、前記遊戯領域の第１の面から、当該第１の面に対向する第２の面に向かって移動するように制御する請求項１乃至３のいずれか１項に記載の表示装置。
【請求項５】
前記制御部は、前記検出部が前記第２の面から前記第１の面への前記物体の移動を検出しても、当該第１の面には前記３次元ブロックを移動させないように制御する請求項１乃至４のいずれか１項に記載の表示装置。
【請求項６】
前記制御部は、前記第２の面と対向する面の少なくとも１つが前記第２の面に到達した第１の３次元ブロックを、前記検出部の検出結果にかかわらず移動させないように制御し、
前記第２の面と対向する面の少なくとも１つが前記第１の３次元ブロックが存在する区画に到達した第２の３次元ブロックを、前記検出部の検出結果にかかわらず移動させないように制御する請求項１乃至５のいずれか１項に記載の表示装置。
【請求項７】
前記制御部は、前記第１の３次元ブロックおよび前記第２の３次元ブロックを所定の条件下に限って移動させる請求項６に記載の表示装置。
【請求項８】
前記制御部は、前記第１の３次元ブロックの前記第２の面と対向する面の少なくとも１つが、前記第２の面に到達してから所定時間内に前記検出部が前記物体の移動を検出した場合に、前記検出部の検出結果に基づいて前記第１の３次元ブロックを移動させ、
前記第２の３次元ブロックの前記第２の面と対向する面の少なくとも１つが、前記第１の３次元ブロックが存在する区画に到達してから所定時間内に前記検出部が前記物体の移動を検出した場合に、前記検出部の検出結果に基づいて前記第２の３次元ブロックを移動させる請求項７に記載の表示装置。
【請求項９】
前記制御部は、前記検出部の検出結果に基づいて、前記遊戯領域を回転させる請求項１乃至８のいずれか１項に記載の表示装置。
【請求項１０】
前記制御部は、前記遊戯領域を回転させる場合に、移動中の前記３次元ブロックを回転させない請求項９に記載の表示装置。
【請求項１１】
前記制御部は、前記遊戯領域を前記表示部の表示面に対して垂直方向に回転させる場合に、前記３次元ブロックを出現させる位置を変更する請求項９または１０に記載の表示装置。
【請求項１２】
前記制御部は、前記遊戯領域を前記表示部の表示面に対して垂直方向に回転させた後に、前記遊戯領域中の全ての３次元ブロックを、前記遊戯領域の前記表示面に近接する面へ向けて移動させる請求項１１に記載の表示装置。
【請求項１３】
前記制御部は、前記遊戯領域を前記表示部の表示面に対して垂直方向に回転させた後に、前記遊戯領域中の全ての３次元ブロックのうち移動しないように制御していた３次元ブロックを、区画毎に分割して、前記遊戯領域の前記表示面に近接する面へ向けて移動させる請求項１１に記載の表示装置。
【請求項１４】
前記制御部は、
前記検出部を介して、前記物体が前記３次元ブロックを掴む動作を検出し、
前記掴む動作を継続する前記物体の移動量に応じた区画分だけ前記３次元ブロックを移動させ、あるいは回転量に対応した所定角度分だけ回転させる請求項１乃至１３のいずれか１項に記載の表示装置。
【請求項１５】
前記制御部は、
前記検出部を介して、複数個所において前記物体が前記３次元ブロックを掴む動作を検出し、
当該複数個所において前記３次元ブロックを掴む前記物体の移動または回転に応じて、前記３次元ブロックを変形させる、或いは前記３次元ブロックを複数個の新たな３次元ブロックに分離させる請求項１４に記載の表示装置。
【請求項１６】
前記制御部は、
前記検出部を介して、前記物体が前記３次元ブロックを押す動作を検出し、
前記押す動作における前記物体の移動量に応じた区画分だけ前記３次元ブロックを移動させる請求項１乃至１５のいずれか１項に記載の表示装置。
【請求項１７】
前記検出部は、前記表示空間における物体の形状及びその経時的な変化を検出する撮影部或いは赤外線センサである請求項１乃至１６のいずれか１項に記載の表示装置。
【請求項１８】
表示空間内の３次元マトリクス状に区分けされた仮想の遊戯領域中に、当該区分けされた各区画を１個分或いは複数個分だけ占有する３次元ブロックを立体表示する表示部及び前記表示空間中の物体の位置を検出する検出部を備える端末と、当該端末を制御する制御部を含むシステムであって、
前記制御部は、前記表示部を制御して、
装着されることによりユーザの両目のそれぞれに対応した画像を表示することで、前記３次元ブロックを出現させるとともに、
前記検出部により、前記表示空間における前記物体の時間的な変化が検出されたとき、当該検出結果に基づいて、前記３次元ブロックを前記区画単位で移動させ、
移動した当該３次元ブロックにより、前記遊戯領域の一の層の全ての区画が埋めつくされたとき、前記３次元ブロック中の前記一の層に含まれる部分を消去する制御システム。
【請求項１９】
表示空間内で３次元形状を立体表示する表示部及び前記表示空間中の物体の位置を検出する検出部を備える表示装置に、
装着されることによりユーザの両目のそれぞれに対応した画像を表示することで、表示空間内の３次元マトリクス状に区分けされた仮想の遊戯領域中に、当該区分けされた各区画を１個分或いは複数個分だけ占有する３次元ブロックを出現させるステップと、
前記表示空間における前記物体の時間的な変化が検出されたときに、前記３次元ブロックを前記区画単位で移動させるステップと、
移動した当該３次元ブロックにより、前記遊戯領域の一の層の全ての区画が埋めつくされたとき、前記３次元ブロック中の前記一の層に含まれる部分を消去するステップと
を実行させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示装置、制御システムおよび制御プログラムに関する。
【背景技術】
【０００２】
携帯電話端末等の表示部を備える表示装置には、画像等を立体表示することができるものがある（例えば、特許文献１参照）。立体表示は、両眼の視差を利用して実現される。
【０００３】
また、３Ｄゲームのアプリケーションを実行することができるゲーム装置がある。例えば、特許文献２に記載のゲーム装置は、３次元コンピュータグラフィックスで表示された立体パズルを使用して３Ｄゲームを実行する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−９５５４７号公報
【特許文献２】特開２０１１−１０１６７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
立体表示は利用者にとって親しみやすい表示形式であるにも関わらず、従来の表示装置では、立体表示は視聴目的でしか利用されず、操作の利便性を向上させるためには利用されてこなかった。また、立体パズル等の３Ｄゲームのアプリケーションは存在するが、従来のゲーム装置では、操作ボタン等により特定の１つのオブジェクト毎しか選択できず、さらに操作に慣れるまで時間を要してしまう。
【０００６】
本発明は、利用者に対して利便性の高い操作方法を提供することができる表示装置、制御システムおよび制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る表示装置は、装着されることによりユーザの両目のそれぞれに対応した画像を表示することで、表示空間内の３次元マトリクス状に区分けされた仮想の遊戯領域中に、当該区分けされた各区画を１個分或いは複数個分だけ占有する３次元ブロックを立体表示する表示部と、当該表示部を制御する制御部と、前記表示空間中の物体の位置を検出する検出部と、を備え、前記制御部は、前記表示部を制御して、前記３次元ブロックを出現させるとともに、前記検出部により、前記表示空間における前記物体の経時的な変化が検出されたとき、当該検出結果に基づいて、前記３次元ブロックを前記区画単位で移動させ、移動した当該３次元ブロックにより、前記遊戯領域の一の層の全ての区画が埋めつくされたとき、前記３次元ブロック中の前記一の層に含まれる部分を消去する。
【０００８】
また、本発明に係る制御システムは、表示空間内の３次元マトリクス状に区分けされた仮想の遊戯領域中に、当該区分けされた各区画を１個分或いは複数個分だけ占有する３次元ブロックを立体表示する表示部及び前記表示空間中の物体の位置を検出する検出部を備える端末と、当該端末を制御する制御部を含むシステムであって、前記制御部は、前記表示部を制御して、装着されることによりユーザの両目のそれぞれに対応した画像を表示することで、前記３次元ブロックを出現させるとともに、前記検出部により、前記表示空間における前記物体の時間的な変化が検出されたとき、当該検出結果に基づいて、前記３次元ブロックを前記区画単位で移動させ、移動した当該３次元ブロックにより、前記遊戯領域の一の層の全ての区画が埋めつくされたとき、前記３次元ブロック中の前記一の層に含まれる部分を消去する。
【０００９】
また、本発明に係る制御プログラムは、表示空間内で３次元形状を立体表示する表示部及び前記表示空間中の物体の位置を検出する検出部を備える表示装置に、装着されることによりユーザの両目のそれぞれに対応した画像を表示することで、表示空間内の３次元マトリクス状に区分けされた仮想の遊戯領域中に、当該区分けされた各区画を１個分或いは複数個分だけ占有する３次元ブロックを出現させるステップと、前記表示空間における前記物体の時間的な変化が検出されたときに、前記３次元ブロックを前記区画単位で移動させるステップと、移動した当該３次元ブロックにより、前記遊戯領域の一の層の全ての区画が埋めつくされたとき、前記３次元ブロック中の前記一の層に含まれる部分を消去するステップとを実行させる。
【発明の効果】
【００１０】
本発明は、利用者に対して利便性の高い操作方法を提供することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、表示装置の斜視図である。
【図２】図２は、利用者によって装着された表示装置を正面から見た図である。
【図３】図３は、表示装置の変形例を示す図である。
【図４】図４は、表示装置の他の変形例を示す図である。
【図５】図５は、表示装置の他の変形例を示す図である。
【図６】図６は、表示装置のブロック図である。
【図７】図７は、制御プログラムが提供する機能に基づく制御の例を示す図である。
【図８】図８は、オブジェクトデータに格納される情報の一例を示す図である。
【図９】図９は、表示装置による３次元オブジェクトの表示の一例を示す模式図である。
【図１０】図１０は、層を消去する例を示す図である。
【図１１】図１１は、３次元オブジェクトを掴んで行う操作の一例を示す図である。
【図１２】図１２は、３次元オブジェクトを押す操作の一例を示す図である。
【図１３】図１３は、遊戯領域の側面での移動の停止について説明するための図である。
【図１４】図１４は、遊戯領域を３次元オブジェクトとして扱う操作の一例を示す図である。
【図１５】図１５は、遊戯領域を３次元オブジェクトとして扱う他の操作の一例を示す図である。
【図１６】図１６は、停止状態にある３次元ブロックを区画単位の要素に分離して底面へ向けて移動させる例を示す図である。
【図１７】図１７は、遊戯領域の面を３次元オブジェクトとして扱う操作の一例を示す図である。
【図１８】図１８は、３次元ブロックを分解する操作の一例を示す図である。
【図１９】図１９は、３次元ブロックを合成する操作の一例を示す図である。
【図２０】図２０は、３次元ブロックの制御に関して表示装置が実行する基本的な処理の処理手順を示すフローチャートである。
【図２１】図２１は、３次元オブジェクトを掴んで行う操作の検出について説明するための図である。
【図２２】図２２は、３次元オブジェクトを掴んで行う操作の検出について説明するための図である。
【図２３】図２３は、３次元オブジェクトの選択検出処理の処理手順を示すフローチャートである。
【図２４】図２４は、掴む操作検出処理の処理手順を示すフローチャートである。
【図２５】図２５は、３次元オブジェクトを掴んで行う他の操作の検出について説明するための図である。
【図２６】図２６は、３次元オブジェクトへの接触を選択の条件とする場合の選択検出処理の処理手順を示すフローチャートである。
【図２７】図２７は、作用データに格納される情報の一例を示す図である。
【図２８】図２８は、３次元オブジェクトを押す操作の検出について説明するための図である。
【図２９】図２９は、３次元オブジェクトを押す操作の検出について説明するための図である。
【図３０】図３０は、３次元オブジェクトの接触検出処理の処理手順を示すフローチャートである。
【図３１】図３１は、押す操作検出処理の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明につき図面を参照しつつ詳細に説明する。なお、以下の説明により本発明が限定されるものではない。また、以下の説明における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。
【実施例】
【００１３】
まず、図１および図２を参照しながら、実施例に係る表示装置１の全体的な構成について説明する。図１は、表示装置１の斜視図である。図２は、利用者によって装着された表示装置１を正面から見た図である。図１および図２に示すように、表示装置１は、利用者の頭部に装着されるヘッドマウントタイプの装置である。
【００１４】
表示装置１は、前面部１ａと、側面部１ｂと、側面部１ｃとを有する。前面部１ａは、装着時に、利用者の両目を覆うように利用者の正面に配置される。側面部１ｂは、前面部１ａの一方の端部に接続され、側面部１ｃは、前面部１ａの他方の端部に接続される。側面部１ｂおよび側面部１ｃは、装着時に、眼鏡の蔓のように利用者の耳によって支持され、表示装置１を安定させる。側面部１ｂおよび側面部１ｃは、装着時に、利用者の頭部の背面で接続されるように構成されてもよい。
【００１５】
前面部１ａは、装着時に利用者の目と対向する面に表示部３２ａおよび表示部３２ｂを備える。表示部３２ａは、装着時に利用者の右目と対向する位置に配設され、表示部３２ｂは、装着時に利用者の左目と対向する位置に配設される。表示部３２ａは、右目用の画像を表示し、表示部３２ｂは、左目用の画像を表示する。このように、装着時に利用者のそれぞれの目に対応した画像を表示する表示部３２ａおよび表示部３２ｂを備えることにより、表示装置１は、両眼の視差を利用した３次元表示を実現することができる。
【００１６】
表示部３２ａおよび表示部３２ｂは、利用者の右目と左目に異なる画像を独立して提供することができれば、１つの表示デバイスによって構成されてもよい。例えば、表示される画像が一方の目にしか見えないように遮蔽するシャッターを高速に切り替えることによって、１つの表示デバイスが右目と左目に異なる画像を独立して提供するように構成してもよい。前面部１ａは、装着時に外光が利用者の目に入らないように、利用者の目を覆うように構成されてもよい。
【００１７】
前面部１ａは、表示部３２ａおよび表示部３２ｂが設けられている面とは反対側の面に撮影部４０および撮影部４２を備える。撮影部４０は、前面部１ａの一方の端部（装着時の右目側）の近傍に配設され、撮影部４２は、前面部１ａの他方の端部（装着時の左目側）の近傍に配設される。撮影部４０は、利用者の右目の視界に相当する範囲の画像を取得する。撮影部４２は、利用者の左目の視界に相当する範囲の画像を取得する。ここでいう視界とは、例えば、利用者が正面を見ているときの視界である。
【００１８】
表示装置１は、撮影部４０によって撮影された画像を右目用の画像として表示部３２ａに表示し、撮影部４２によって撮影された画像を左目用の画像として表示部３２ｂに表示する。このため、表示装置１は、装着中の利用者に、前面部１ａによって視界が遮られていても、表示装置１を装着していないときと同様の光景を提供することができる。
【００１９】
表示装置１は、このように現実の光景を利用者に提供する機能に加えて、仮想的な情報を３次元的に表示し、仮想的な情報を利用者が操作することを可能にする機能を有する。表示装置１によれば、仮想的な情報は、実際に存在しているかのように、現実の光景と重ねて表示される。そして、利用者は、例えば、手を使って仮想的な情報を実際に触っているかのように操作し、移動、回転、変形等の変化を仮想的な情報に施すことができる。このように、表示装置１は、仮想的な情報に関して、直感的で利便性の高い操作方法を提供する。以下の説明では、表示装置１によって３次元的に表示される仮想的な情報を「３次元オブジェクト」と呼ぶことがある。
【００２０】
表示装置１は、表示装置１を装着していない場合と同様の広い視界を利用者に提供する。そして、表示装置１は、この広い視界の中の任意の位置に任意の大きさで３次元オブジェクトを配置することができる。このように、表示装置１は、表示デバイスの大きさの制約を受けることなく、広い空間の様々な位置に様々な大きさの３次元オブジェクトを表示することができる。
【００２１】
図１および図２では、表示装置１が、眼鏡（ゴーグル）のような形状を有する例を示したが、表示装置１の形状はこれに限定されない。例えば、表示装置１は、図３に示す表示装置２のように、利用者の頭部のほぼ上半分を覆うようなヘルメットタイプの形状を有していてもよい。あるいは、表示装置１は、図４に示す表示装置３のように、利用者の顔面のほぼ全体を覆うようなマスクタイプの形状を有していてもよい。表示装置１は、図５に示す表示装置４のように、情報処理装置、バッテリ装置等の外部装置４ｄと有線または無線で接続される構成であってもよい。
【００２２】
次に、図６を参照しながら、表示装置１の機能的な構成について説明する。図６は、表示装置１のブロック図である。図６に示すように、表示装置１は、操作部１３と、制御部２２と、記憶部２４と、表示部３２ａおよび３２ｂと、撮影部４０および４２と、検出部４４と、測距部４６とを有する。操作部１３は、表示装置１の起動、停止、動作モードの変更等の基本的な操作を受け付ける。
【００２３】
表示部３２ａおよび３２ｂは、液晶ディスプレイ（Liquid  Crystal  Display）、有機ＥＬ（Organic  Electro−Luminescence）パネル等の表示デバイスを備え、制御部２２から入力される制御信号に従って各種の情報を表示する。表示部３２ａおよび３２ｂは、レーザー光線等の光源を用いて利用者の網膜に画像を投影する投影装置であってもよい。
【００２４】
撮影部４０および４２は、ＣＣＤ（Charge  Coupled  Device  Image  Sensor）、ＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）等のイメージセンサを用いて電子的に画像を撮影する。そして、撮影部４０および４２は、撮影した画像を信号に変換して制御部２２へ出力する。
【００２５】
検出部４４は、撮影部４０および４２の撮影範囲に存在する現実の物体を検出する。検出部４４は、例えば、撮影範囲に存在する現実の物体のうち、予め登録された形状（例えば、人間の手の形状）にマッチする物体を検出する。検出部４４は、予め形状が登録されていない物体についても、画素の明度、彩度、色相のエッジ等に基づいて、画像中の現実の物体の範囲（形状および大きさ）を検出するように構成されてもよい。
【００２６】
測距部４６は、撮影部４０および４２の撮影範囲に存在する現実の物体までの距離を測定する。現実の物体までの距離は、表示装置１を装着している利用者のそれぞれの目の位置を基準として目毎に測定される。このため、測距部４６が距離を測定する基準位置がそれぞれの目の位置とずれている場合には、測距部４６の測定値は、そのずれに応じて、目の位置までの距離を表すように補正される。
【００２７】
本実施例においては、撮影部４０および４２が、検出部４４および測距部４６を兼ねる。すなわち、本実施例においては、撮影部４０および４２によって撮影される画像を解析することによって、撮影範囲内の物体が検出される。さらに、撮影部４０によって撮影される画像に含まれる物体と撮影部４２によって撮影される画像に含まれる物体とを比較することにより、物体との距離が測定（算出）される。
【００２８】
表示装置１は、撮影部４０および４２とは別に、検出部４４を備えてもよい。検出部４４は、例えば、可視光、赤外線、紫外線、電波、音波、磁気、静電容量の少なくとも１つを用いて、撮影範囲に存在する現実の物体を検出するセンサであってもよい。表示装置１は、撮影部４０および４２とは別に、測距部４６を備えてもよい。測距部４６は、例えば、可視光、赤外線、紫外線、電波、音波、磁気、静電容量の少なくとも１つを用いて、撮影範囲に存在する現実の物体までの距離を検出するセンサであってもよい。表示装置１は、ＴＯＦ（Time-of-Flight）法を用いたセンサのように、検出部４４および測距部４６を兼ねることができるセンサを備えてもよい。
【００２９】
制御部２２は、演算手段であるＣＰＵ（Central  Processing  Unit）と、記憶手段であるメモリとを備え、これらのハードウェア資源を用いてプログラムを実行することによって各種の機能を実現する。具体的には、制御部２２は、記憶部２４に記憶されているプログラムやデータを読み出してメモリに展開し、メモリに展開されたプログラムに含まれる命令をＣＰＵに実行させる。そして、制御部２２は、ＣＰＵによる命令の実行結果に応じて、メモリおよび記憶部２４に対してデータの読み書きを行ったり、表示部３２ａ等の動作を制御したりする。ＣＰＵが命令を実行するに際しては、メモリに展開されているデータや検出部４４を介して検出される操作がパラメータや判定条件の一部として利用される。
【００３０】
記憶部２４は、フラッシュメモリ等の不揮発性を有する記憶装置からなり、各種のプログラムやデータを記憶する。記憶部２４に記憶されるプログラムには、制御プログラム２４ａが含まれる。記憶部２４に記憶されるデータには、オブジェクトデータ２４ｂと、作用データ２４ｃと、仮想空間データ２４ｄとが含まれる。記憶部２４は、メモリカード等の可搬の記憶媒体と、記憶媒体に対して読み書きを行う読み書き装置との組み合わせによって構成されてもよい。この場合、制御プログラム２４ａ、オブジェクトデータ２４ｂ、作用データ２４ｃ、仮想空間データ２４ｄは、記憶媒体に記憶されていてもよい。また、制御プログラム２４ａ、オブジェクトデータ２４ｂ、作用データ２４ｃ、仮想空間データ２４ｄは、無線通信または有線通信によってサーバ装置等の他の装置から取得されてもよい。
【００３１】
制御プログラム２４ａは、表示装置１を稼働させるための各種制御に関する機能を提供する。制御プログラム２４ａが提供する機能には、撮影部４０および４２が取得する画像に３次元オブジェクトを重ねて表示部３２ａおよび３２ｂに表示する機能、３次元オブジェクトに対する操作を検出する機能、検出した操作に応じて３次元オブジェクトを変化させる機能等が含まれる。制御プログラム２４ａは、このように、３次元オブジェクトの表示を制御したり、３次元オブジェクトに対する操作を検出したりすることにより、後述するように、利用者が立体的な遊戯を楽しむことを可能にする。
【００３２】
制御プログラム２４ａは、検出処理部２５と、表示オブジェクト制御部２６と、画像合成部２７とを含む。検出処理部２５は、撮影部４０および４２の撮影範囲に存在する現実の物体を検出するための機能を提供する。検出処理部２５が提供する機能には、検出したそれぞれの物体までの距離を測定する機能が含まれる。
【００３３】
表示オブジェクト制御部２６は、仮想空間にどのような３次元オブジェクトが配置され、それぞれの３次元オブジェクトがどのような状態にあるかを管理するための機能を提供する。表示オブジェクト制御部２６が提供する機能には、検出処理部２５の機能によって検出される現実の物体の動きに基づいて３次元オブジェクトに対する操作を検出し、検出した操作に基づいて３次元オブジェクトを変化させる機能が含まれる。
【００３４】
画像合成部２７は、現実の空間の画像と仮想空間の画像とを合成することにより、表示部３２ａに表示する画像と表示部３２ｂに表示する画像とを生成するための機能を提供する。画像合成部２７が提供する機能には、検出処理部２５の機能によって測定される現実の物体までの距離と、仮想空間における視点から３次元オブジェクトまでの距離とに基づいて、現実の物体と３次元オブジェクトの前後関係を判定し、重なりを調整する機能が含まれる。
【００３５】
オブジェクトデータ２４ｂは、３次元オブジェクトの形状および性質に関する情報を含む。オブジェクトデータ２４ｂは、３次元オブジェクトを表示するために用いられる。作用データ２４ｃは、表示されている３次元オブジェクトに対する操作が３次元オブジェクトにどのように作用するかに関する情報を含む。作用データ２４ｃは、表示されている３次元オブジェクトに対する操作が検出された場合に、３次元オブジェクトをどのように変化させるかを判定するために用いられる。ここでいう変化には、移動、回転、変形、消失等が含まれる。仮想空間データ２４ｄは、仮想空間に配置される３次元オブジェクトの状態に関する情報を保持する。３次元オブジェクトの状態には、例えば、位置、姿勢、変形の状況等が含まれる。
【００３６】
次に、図７を参照しながら、制御プログラム２４ａが提供する機能に基づく制御の例について説明する。画像Ｐ１ａは、撮影部４０によって得られる画像、すなわち、現実の空間を右目で見た光景に相当する画像である。画像Ｐ１ａには、テーブルＴ１と、利用者の手Ｈ１とが写っている。表示装置１は、同じ場面を撮影部４２によって撮影した画像、すなわち、現実の空間を左目で見た光景に相当する画像も取得する。
【００３７】
画像Ｐ２ａは、仮想空間データ２４ｄおよびオブジェクトデータ２４ｂに基づいて生成される右目用の画像である。この例において、仮想空間データ２４ｄは、仮想空間中に存在するブロック状の３次元オブジェクトＢ１の状態に関する情報を保持し、オブジェクトデータ２４ｂは、３次元オブジェクトＢ１の形状および性質に関する情報を保持する。表示装置１は、これらの情報に基づいて仮想空間を再現し、再現した仮想空間を右目の視点から見た画像Ｐ２ａを生成する。仮想空間における右目（視点）の位置は、所定の規則に基づいて決定される。表示装置１は、同様に、再現した仮想空間を左目の視点で見た画像も生成する。すなわち、表示装置１は、画像Ｐ２ａと組み合わせることによって３次元オブジェクトＢ１が３次元的に表示される画像も生成する。
【００３８】
表示装置１は、図７に示すステップＳ１において、画像Ｐ１ａおよび画像Ｐ２ａを合成して、画像Ｐ３ａを生成する。画像Ｐ３ａは、右目用の画像として表示部３２ａに表示される画像である。このとき、表示装置１は、利用者の右目の位置を基準として、撮影部４０の撮影範囲にある現実の物体と、仮想空間内に存在する３次元オブジェクトとの前後関係を判定する。そして、現実の物体と３次元オブジェクトとが重なっている場合には、利用者の右目により近いものが前面に見えるように重なりを調整する。
【００３９】
このような重なりの調整は、現実の物体と３次元オブジェクトとが重なる画像上の領域内の所定の大きさの範囲毎（例えば、１画素毎）に行われる。このため、現実の空間における視点から現実の物体までの距離は、画像上の所定の大きさの範囲毎に測定される。さらに、仮想空間における視点から３次元オブジェクトまでの距離は、３次元オブジェクトの位置、形状、姿勢等を考慮して、画像上の所定の大きさの範囲毎に算出される。
【００４０】
図７に示すステップＳ１の場面では、３次元オブジェクトＢ１は、仮想空間において、テーブルＴ１が現実の空間で存在する位置のすぐ上に相当する位置に配置されている。さらに、図７に示すステップＳ１の場面では、利用者の手Ｈ１と３次元オブジェクトＢ１が、利用者の右目の位置を基準として、ほぼ同じ方向に、ほぼ同じ距離で存在している。このため、所定の大きさの範囲毎に重なりを調整することにより、合成後の画像Ｐ３ａでは、手Ｈ１と３次元オブジェクトＢ１とが重なっている領域のうち、手Ｈ１の親指に相当する部分では手Ｈ１が前面に現れ、他の部分では３次元オブジェクトＢ１が前面に現れている。さらに、テーブルＴ１と３次元オブジェクトＢ１とが重なっている領域では、３次元オブジェクトＢ１が前面に現れている。
【００４１】
このような重なりの調整により、図７に示すステップＳ１では、あたかもテーブルＴ１上に３次元オブジェクトＢ１が置かれ、３次元オブジェクトＢ１を利用者が手Ｈ１で摘んでいるかのような画像Ｐ３ａが得られている。表示装置１は、同様の処理により、撮影部４２によって撮影した画像と仮想空間を左目の視点から見た画像とを合成し、左目用の画像として表示部３２ｂに表示される画像を生成する。左目用の画像を生成する場合、現実の物体と３次元オブジェクトとの重なりは、利用者の左目の位置を基準として調整される。
【００４２】
表示装置１は、こうして生成した合成画像を表示部３２ａおよび３２ｂに表示する。その結果、利用者は、あたかも、３次元オブジェクトＢ１がテーブルＴ１の上に置かれ、自分の手Ｈ１で３次元オブジェクトＢ１を摘んでいるかのような光景を見ることができる。
【００４３】
図７に示すステップＳ２の場面では、利用者が手Ｈ１を矢印Ａ１の方向に移動させている。この場合、撮影部４０によって得られる画像は、手Ｈ１の位置が右へ移動した画像Ｐ１ｂに変化する。さらに、表示装置１は、手Ｈ１の動きを、３次元オブジェクトを摘んだままで右へ移動させる操作と判定し、操作に応じて、仮想空間における３次元オブジェクトの位置を右へ移動させる。仮想空間における３次元オブジェクトの移動は、仮想空間データ２４ｄに反映される。その結果、仮想空間データ２４ｄおよびオブジェクトデータ２４ｂに基づいて生成される右目用の画像は、３次元オブジェクトＢ１の位置が右へ移動した画像Ｐ２ｂに変化する。表示装置１による操作の検出の詳細については、後述する。
【００４４】
表示装置１は、画像Ｐ１ｂおよび画像Ｐ２ｂを合成して右目用の画像Ｐ３ｂを生成する。画像Ｐ３ｂは、画像Ｐ３ａと比較して、テーブルＴ１上のより右側の位置で、３次元オブジェクトＢ１を利用者が手Ｈ１で摘んでいるかのような画像となっている。表示装置１は、同様に左目用の合成画像を生成する。そして、表示装置１は、こうして生成した合成画像を表示部３２ａおよび３２ｂに表示する。その結果、利用者は、あたかも、自分の手Ｈ１で３次元オブジェクトＢ１を摘んで右へ移動させたかのような光景を見ることができる。
【００４５】
このような表示用の合成画像の更新は、一般的な動画のフレームレートと同等の頻度（例えば、毎秒３０回）で実行される。その結果、利用者の操作に応じた３次元オブジェクトの変化は、表示装置１が表示する画像にほぼリアルタイムに反映され、利用者は、あたかも実際に存在しているかのように、違和感なく３次元オブジェクトを操作することができる。さらに、本実施例に係る構成では、３次元オブジェクトを操作する利用者の手が、利用者の目と表示部３２ａおよび３２ｂの間に位置することがないため、利用者は、手によって３次元オブジェクトの表示が遮られることを気にすることなく操作を行うことができる。
【００４６】
次に、図８を参照しながら、図６に示したオブジェクトデータ２４ｂについてさらに詳しく説明する。図８は、オブジェクトデータ２４ｂに格納される情報の一例を示す図である。図８に示すように、オブジェクトデータ２４ｂには、形状情報、色、透明度等を含む情報が３次元オブジェクト毎に格納される。形状情報は、３次元オブジェクトの形状を示す情報である。形状情報は、例えば、３次元オブジェクトを構成する面の頂点座標の集合である。色は、３次元オブジェクトの表面の色である。透明度は、３次元オブジェクトが光を透過させる度合いである。なお、オブジェクトデータ２４ｂは、複数の３次元オブジェクトに関する情報を保持することができる。
【００４７】
次に、図９から図１９を参照しながら、遊戯における、表示装置１による３次元オブジェクトの表示の制御と、３次元オブジェクトに対する操作の検出について説明する。以下の説明では、表示装置１を装着した利用者が見る空間を、表示空間と呼ぶことがある。
【００４８】
図９は、表示装置１による３次元オブジェクトの表示の一例を示す模式図である。図９に示すように、表示装置１は、表示空間５０中に遊戯領域６０を設定する。遊戯領域６０は、３次元マトリックス状に区分けされた立方体形状の仮想の領域である。遊戯領域６０が区分けされた各区画は、立方体形状をしている。なお、図９では、説明の便宜上、遊戯領域６０が区分けされた区画を点線で図示しているが、各区画は、必ずしもこのように明示されない。
【００４９】
表示装置１は、３次元オブジェクトに対する操作を検出する空間を操作可能範囲５１に限定してもよい。操作可能範囲５１は、例えば、表示装置１を装着している利用者の手が届く範囲である。このように、３次元オブジェクトに対する操作を検出する空間を限定することにより、表示装置１が操作を検出するために実行する演算処理の負荷を軽減することができる。
【００５０】
また、表示装置１は、遊戯領域６０の面の１つである上面６０ｂから、上面６０ｂに対向する底面６０ａへ向けて３次元ブロックを移動させる。３次元ブロックは、遊戯領域６０が区分けされた区画を１乃至複数個占有する３次元オブジェクトである。３次元ブロックには、複数の種類があり、種類毎に形状や色が異なる。それぞれの種類の形状や色は、オブジェクトデータ２４ｂにおいて定義されている。
【００５１】
表示装置１は、上面６０ｂの近傍で３次元ブロックを出現させた後、時間の経過に従って３次元ブロックを底面６０ａへ向けて移動させる。そして、表示装置１は、３次元ブロックの移動方向の面（底面６０ａと対向する面）のいずれかが底面６０ａに接触すると、３次元ブロックの移動を中止して、３次元ブロックを停止状態にする。表示装置１は、３次元ブロックの移動方向の面のいずれかが、停止状態にある他の３次元ブロックと接触した場合にも、３次元ブロックを停止状態にする。
【００５２】
表示装置１は、１つの３次元ブロックを出現させた後、所定の時間が経過すると、次の３次元ブロックを出現させる。次の３次元ブロックは、１つ前の３次元ブロックの移動中に出現することもある。表示装置１は、遊戯性を高めるため、３次元ブロックを出現させる間隔を少しずつ短くしていく。なお、表示装置１は、遊戯性を高めるため、３次元ブロックを底面６０ａへ向けて移動させる速度を次第に速くしてもよい。
【００５３】
３次元ブロックを次々と出現させた結果、遊戯領域６０には複数のブロックが積み重なっていく。例えば、図９に示す例では、３次元ブロックＢＬ１および３次元ブロックＢＬ２が、底面６０ａに到達して停止状態となっている。また、３次元ブロックＢＬ３が、３次元ブロックＢＬ１の上に重なって停止状態となっている。また、３次元ブロックＢＬ４が、移動中であり、３次元ブロックＢＬ５が、上面６０ｂの近傍に出現している。
【００５４】
表示装置１は、３次元ブロックが積み重なり、３次元ブロックの要素によって遊戯領域６０の層のいずれかが埋め尽くされた場合は、その層を消去する。
【００５５】
図１０は、層を消去する例を示す図である。図１０に示すステップＳＡ１では、底面６０ａの上が３次元ブロックの要素によって埋め尽くされている。このように１つの層が埋め尽くされた場合、表示装置１は、ステップＳＡ２に示すように、埋め尽くされた層を消去する。そして、表示装置１は、埋め尽くされた層を構成していた３次元ブロックの残り部分のうち、埋め尽くされた層よりも上に位置していた部分を、底面６０ａと対向する面のいずれかが底面６０ａまたは停止状態にある他の３次元ブロックと接触するまで底面６０ａへ向けてそれぞれ移動させる。なお、図１０では、底面６０ａが視認できるように表示されているが、底面６０ａは表示されなくてもよい。
【００５６】
表示装置１は、埋め尽くされた層を消去するたびに、利用者に対して得点を加算する。表示装置１は、埋め尽くされた層の消去にともなう３次元ブロックの残り部分の移動によって他の層が消去された場合（いわゆる連鎖が発生した場合）、利用者に対して通常より多くの得点を加算する。また、表示装置１は、３次元ブロックが積み重なって新たな３次元ブロックを出現させることができなくなった場合には、上記の制御を終了する。
【００５７】
利用者は、表示装置１によるこのような制御を利用して、できるだけ多くの得点を得ることを目的とした遊戯を楽しむことができる。利用者は、得点を増やすために、移動中の３次元ブロックを操作することができる。具体的には、利用者は、手および指を使って、移動中の３次元ブロックを移動させたり、回転させたりすることができる。
【００５８】
図１１は、３次元オブジェクトを掴んで行う操作の一例を示す図である。図１１に示す例では、３次元ブロックＢＬ６〜ＢＬ８が停止状態となっており、３次元ブロックＢＬ９が移動中である。この場面において、表示装置１は、利用者が３次元ブロックＢＬ９を手Ｈ１で掴み、手Ｈ１を任意の方向へ移動させる動作を検出すると、手Ｈ１の移動に合わせて３次元ブロックＢＬ９を移動させる。また、表示装置１は、利用者が３次元ブロックＢＬ９を手Ｈ１で掴み、手Ｈ１を回転させる動作を検出すると、手Ｈ１の回転に合わせて３次元ブロックＢＬ９を回転させる。
【００５９】
そして、表示装置１は、利用者が３次元ブロックＢＬ９から手を離す動作を検出すると、３次元ブロックＢＬ９を再び底面６０ａへ向けて移動させ始める。３次元ブロックＢＬ９の位置または向きが、遊戯領域６０の区画とずれている場合、表示装置１は、最小の補正により、３次元ブロックＢＬ９の位置および向きを遊戯領域６０の区画に合わせる。また、表示装置１は、３次元ブロックＢＬ９が遊戯領域６０から突出したり、３次元ブロックＢＬ９が他の３次元ブロックの内部に入り込んだりすることがないように３次元ブロックＢＬ９の移動および回転を制限する。なお、難易度を低下させないために、３次元ブロックＢＬ９の上方向への移動を制限してもよい。
【００６０】
図１２は、３次元オブジェクトを押す操作の一例を示す図である。図１２に示す例では、３次元ブロックＢＬ６〜ＢＬ８が停止状態となっており、３次元ブロックＢＬ９が移動中である。この場面において、表示装置１は、利用者が３次元ブロックＢＬ９を手Ｈ１で押す動作を検出すると、手Ｈ１の移動に合わせて３次元ブロックＢＬ９を移動させる。
【００６１】
そして、表示装置１は、利用者が３次元ブロックＢＬ９から手Ｈ１を離す動作を検出すると、３次元ブロックＢＬ９を再び底面６０ａへ向けて移動させ始める。なお、表示装置１は、利用者の押す動作の検出中も、３次元ブロックＢＬ９を底面６０ａへ向けて移動させ続けてもよい。３次元ブロックＢＬ９の位置が、遊戯領域６０の区画とずれている場合、表示装置１は、最小の補正により、３次元ブロックＢＬ９の位置を遊戯領域６０の区画に合わせる。また、表示装置１は、３次元ブロックＢＬ９が遊戯領域６０から突出したり、３次元ブロックＢＬ９が他の３次元ブロックの内部に入り込んだりすることがないように３次元ブロックＢＬ９の移動を制限する。
【００６２】
このように、掴んで行う操作や押す操作によって３次元ブロックの位置や向きを変更することにより、利用者は、遊戯領域６０の層を戦略的に埋めて得点を稼ぐことができる。なお、表示装置１は、３次元ブロックの底面６０ａと対向する面のいずれかが底面６０ａまたは停止状態にある他の３次元ブロックと接触した後も、所定の時間内（例えば、１秒以内）は、利用者の操作に応じて３次元ブロックの位置や向きを変更してもよい。
【００６３】
表示装置１は、３次元ブロックが遊戯領域６０の底面６０ａに到達した場合だけでなく、利用者の操作によって側面に到達した場合にも３次元ブロックを停止させる。図１３は、遊戯領域６０の側面での移動の停止について説明するための図である。図１３に示す例では、３次元ブロックＢＬ１０が、利用者の操作によって遊戯領域６０の側面６０ｃに到達して停止状態となっている。そして、３次元ブロックＢＬ９が、利用者の操作によって遊戯領域６０の側面６０ｃに達しつつある。なお、図１３では、側面６０ｃが視認できるように表示されているが、側面６０ｃは表示されなくてもよい。
【００６４】
表示装置１は、掴んで行う操作や押す操作によって３次元ブロックの面のいずれかが遊戯領域６０の側面と接触すると、その時点で３次元ブロックを停止させる。なお、表示装置１は、３次元ブロックが遊戯領域６０の側面に到達した後も、所定の時間内（例えば、１秒以内）は、３次元ブロックを停止状態とせずに、利用者の操作に応じて３次元ブロックの位置や向きを変更してもよい。
【００６５】
表示装置１は、遊戯領域６０の側面に到達した３次元ブロックの要素によって側面と平行な層が埋め尽くされた場合、その層を消去する。そして、表示装置１は、埋め尽くされた層を構成していた３次元ブロックの残り部分のうち、埋め尽くされた層よりも遊戯領域６０の内側に位置していた部分を、底面６０ａと対向する面のいずれかが底面６０ａまたは停止状態にある他の３次元ブロックと接触するまで底面６０ａへ向けてそれぞれ移動させる。
【００６６】
なお、表示装置１は、埋め尽くされた層よりも遊戯領域６０の内側に位置していた部分を、３次元ブロックが到達していた側面へ向けて移動させてもよい。また、表示装置１は、遊戯領域６０の側面に到達した３次元ブロックを摘んで側面とは反対側に移動させる操作が検出された場合に、３次元ブロックを再び移動可能な状態に戻してもよい。すなわち、表示装置１は、利用者が、３次元ブロックを一時的に側面に貼り付けておき、任意のタイミングで移動を再開させることができるようにしてもよい。
【００６７】
表示装置１は、遊戯領域６０を３次元オブジェクトとして扱う操作も受け付ける。図１４は、遊戯領域６０を３次元オブジェクトとして扱う操作の一例を示す図である。図１４に示すステップＳＢ１では、３次元ブロックＢＬ６〜ＢＬ８が停止状態となっており、３次元ブロックＢＬ９が移動中である。この場面において、表示装置１は、利用者が両手で遊戯領域６０を側面から掴んで水平方向に回転させる動作を検出すると、ステップＳＢ２に示すように、両手の動きに合わせて、遊戯領域６０を水平方向に回転させる。
【００６８】
このとき、表示装置１は、停止状態にある３次元ブロックを遊戯領域６０と一緒に回転させる。このように、停止状態にある３次元ブロックを遊戯領域６０と一緒に回転させることにより、利用者は、３次元ブロックの重なり状況を見易い方向から見ることができる。なお、表示装置１は、遊戯領域６０を水平方向に回転させる動作が検出された場合に、移動中の３次元ブロックを遊戯領域６０と一緒に回転させてもよいし、させなくてもよい。移動中の３次元ブロックのうち、利用者に掴まれている３次元ブロックは回転させずに、それ以外を遊戯領域６０と一緒に回転させてもよい。また、表示装置１は、遊戯領域６０が９０度単位で回転するように回転量を補正してもよい。
【００６９】
利用者は、遊戯領域６０を水平方向に回転させる動作を例えば以下のように実行する。ステップＳＢ１およびステップＳＢ２に示すように、まず、利用者は、手Ｈ１を遊戯領域６０の側面６０ｄに当たるように配置し、手Ｈ２を側面６０ｄに対向する側面６０ｅに当たるように配置する。そして、利用者は、手Ｈ１と手Ｈ２の間隔を保ちながら、底面６０ａの中心に回転軸があるかのように、手Ｈ１および手Ｈ２を周回させる。
【００７０】
図１５は、遊戯領域６０を３次元オブジェクトとして扱う他の操作の一例を示す図である。図１５に示すステップＳＣ１では、３次元ブロックＢＬ６〜ＢＬ８が停止状態となっており、３次元ブロックＢＬ９が移動中である。この場面において、表示装置１は、利用者が両手で遊戯領域６０を側面から掴んで垂直方向に回転させる動作を検出すると、ステップＳＣ２に示すように、両手の動きに合わせて、遊戯領域６０を垂直方向に回転させる。
【００７１】
このとき、表示装置１は、停止状態にある３次元ブロックを遊戯領域６０と一緒に回転させる。そして、表示装置１は、両手が遊戯領域６０から離れたのを検出すると、ステップＳＣ３に示すように、停止状態にある３次元ブロックを新たな底面（この例では面６０ｃ）へ向けて移動させる。表示装置１は、３次元ブロックの移動方向の面のいずれかが、新たな底面または停止状態にある他の３次元ブロックと接触すると、３次元ブロックを停止状態にする。なお、停止状態にある３次元ブロックを新たな底面へ向けて移動させる制御は、遊戯領域６０が垂直方向に９０度回転するたびに実行してもよい。
【００７２】
このように、垂直方向の回転にともなって停止状態にある３次元ブロックの配置を変更することにより、利用者は、３次元ブロックの重なり状況を劇的に変化させることができる。なお、表示装置１は、遊戯領域６０を垂直方向に回転させる場合、遊戯領域６０が９０度単位で回転するように回転量を補正することが好ましい。また、表示装置１は、遊戯領域６０を垂直方向に回転させる場合、移動中の３次元ブロックは遊戯領域６０と一緒に回転させないこととしてもよい。
【００７３】
利用者は、遊戯領域６０を垂直方向に回転させる動作を例えば以下のように実行する。ステップＳＣ１およびステップＳＣ２に示すように、まず、利用者は、手Ｈ１を遊戯領域６０の側面６０ｄに当たるように配置し、手Ｈ２を側面６０ｄに対向する側面６０ｅに当たるように配置する。そして、利用者は、手Ｈ１と手Ｈ２の間隔を保ちながら、側面６０ｄの中心と側面６０ｅの中心とを結ぶ回転軸があるかのように、手Ｈ１および手Ｈ２を同一方向に回転させる。
【００７４】
なお、図１５に示した例では、表示装置１が、遊戯領域６０を垂直方向に回転させた後に、停止状態にある３次元ブロックを新たな底面へ向けて移動させることとしたが、停止状態にある３次元ブロックを側面に固定したままにしてもよい。また、表示装置１は、停止状態にある３次元ブロックを区画単位の要素に分離して、新たな底面へ向けて移動させてもよい。
【００７５】
図１６は、停止状態にある３次元ブロックを区画単位の要素に分離して底面へ向けて移動させる例を示す図である。図１６に示すステップＳＤ１およびステップＳＤ２は、図１５に示したステップＳＣ１およびステップＳＣ２と同様である。図１６に示すステップＳＤ３では、停止状態にある３次元ブロックが区画毎の要素に分離されたために、ブロックＢＬ７の形状が、図１５に示したステップＳＣ３と異なっている。このように、停止状態にある３次元ブロックを区画毎の要素に分離することにより、底面に接する層が要素によって埋まり、その結果、利用者が高得点を得やすくなる。
【００７６】
表示装置１は、遊戯領域６０の面を薄い３次元オブジェクトとして扱う操作も受け付ける。図１７は、遊戯領域６０の面を３次元オブジェクトとして扱う操作の一例を示す図である。図１７に示すステップＳＥ１では、３次元ブロックＢＬ６〜ＢＬ８が停止状態となっており、３次元ブロックＢＬ９が移動中である。この場面において、表示装置１は、利用者が遊戯領域６０の底面６０ａを手で掴んで水平方向に回転させる動作を検出すると、ステップＳＥ２に示すように、手の動きに合わせて、遊戯領域６０を水平方向に回転させる。
【００７７】
このとき、表示装置１は、停止状態にある３次元ブロックを遊戯領域６０と一緒に回転させる。このように、停止状態にある３次元ブロックを遊戯領域６０と一緒に回転させることにより、利用者は、３次元ブロックの重なり状況を見易い方向から見ることができる。なお、表示装置１は、遊戯領域６０を水平方向に回転させる動作が検出された場合に、移動中の３次元ブロックを遊戯領域６０と一緒に回転させてもよいし、させなくてもよい。移動中の３次元ブロックのうち、利用者に掴まれている３次元ブロックは回転させずに、それ以外を遊戯領域６０と一緒に回転させてもよい。また、表示装置１は、遊戯領域６０が９０度単位で回転するように回転量を補正してもよい。
【００７８】
利用者は、遊戯領域６０を水平方向に回転させる動作を例えば以下のように実行する。ステップＳＥ１およびステップＳＥ２に示すように、まず、利用者は、遊戯領域６０の底面６０ａを指で摘むように手Ｈ１を配置する。そして、利用者は、底面６０ａの中心に回転軸があるかのように、手Ｈ１を周回させる。
【００７９】
表示装置１は、３次元ブロックを分解する操作および３次元ブロックを合成する操作も受け付ける。図１８は、３次元ブロックを分解する操作の一例を示す図である。図１８に示すステップＳＦ１では、利用者が、移動中の３次元ブロックＢＬ９の一部を手Ｈ１で掴み、他の一部を手Ｈ２で掴んでいる。この場面において、表示装置１は、利用者が３次元ブロックＢＬ９を分解しようとする動作を検出すると、ステップＳＦ２に示すように、検出された動作に応じて３次元ブロックＢＬ９を３次元ブロックＢＬ９ａと３次元ブロックＢＬ９ｂとに分解する。表示装置１は、利用者の手が３次元ブロックＢＬ９ａおよび３次元ブロックＢＬ９ｂから離れたのを検出すると、３次元ブロックＢＬ９ａおよび３次元ブロックＢＬ９ｂを底面へ向けて移動させる。
【００８０】
このように、３次元ブロックを分解することにより、利用者は、遊戯領域６０の層を埋め易くなる。なお、３次元ブロックを無制限に分解できることとすると遊戯の難易度が低下するため、表示装置１は、３次元ブロックを分解することができる回数または頻度を制限してもよい。また、表示装置１は、同様の操作が検出された場合に、３次元ブロックを分解するのではなく、３次元ブロックを変形させてもよい。
【００８１】
利用者は、３次元ブロックＢＬ９を分解する動作を例えば以下のように実行する。ステップＳＦ１に示すように、まず、利用者は、指で３次元ブロックＢＬ９の一部を摘むように手Ｈ１を配置し、指で３次元ブロックＢＬ９の他の一部を摘むように手Ｈ２を配置する。そして、利用者は、ステップＳＦ２に示すように、手Ｈ１および手Ｈ２の角度を３次元ブロックＢＬ９を折り曲げるかのように変化させる。利用者は、３次元ブロックＢＬ９を分解するために、３次元ブロックＢＬ９を掴む指の形を維持したままで、３次元ブロックＢＬ９を引っ張るかのように、手Ｈ１および手Ｈ２を反対方向へ移動させてもよい。
【００８２】
図１９は、３次元ブロックを合成する操作の一例を示す図である。図１９に示すステップＳＧ１では、利用者が、移動中の３次元ブロックＢＬ９を手Ｈ１で掴み、移動中の３次元ブロックＢＬ１１を手Ｈ２で掴んでいる。この場面において、表示装置１は、利用者が３次元ブロックＢＬ９を３次元ブロックＢＬ１１と接触させる動作を検出すると、ステップＳＧ２に示すように、３次元ブロックＢＬ９と３次元ブロックＢＬ１１とを３次元ブロックＢＬ１２に合成する。表示装置１は、利用者の手が３次元ブロックＢＬ１２から離れたのを検出すると、３次元ブロックＢＬ１２を底面へ向けて移動させる。
【００８３】
利用者は、３次元ブロックＢＬ９を合成する動作を例えば以下のように実行する。ステップＳＧ１に示すように、まず、利用者は、指で３次元ブロックＢＬ９を摘むように手Ｈ１を配置し、指で３次元ブロックＢＬ１１を摘むように手Ｈ２を配置する。そして、利用者は、ステップＳＧ２に示すように、３次元ブロックＢＬ９の面と３次元ブロックＢＬ１１の面とが重なり合うように手Ｈ１および手Ｈ２を移動させる。その結果、重なり合った面が接着されたように、３次元ブロックＢＬ９および３次元ブロックＢＬ１１は、合成される。
【００８４】
次に、図２０を参照しながら、３次元ブロックの制御に関して表示装置１が実行する基本的な処理の処理手順について説明する。図２０は、３次元ブロックの制御に関して表示装置１が実行する基本的な処理の処理手順を示すフローチャートである。図２０に示す処理手順は、制御部２２が制御プログラム２４ａを実行することによって実現される。
【００８５】
図２０に示すように、制御部２２は、まず、ステップＳ１０１として、遊戯領域６０を設定する。具体的には、制御部２２は、遊戯領域６０を構成する区画の大きさおよび数等を記憶部２４に記憶されている設定データ等に基づいて設定する。そして、制御部２２は、ステップＳ１０２として、待機期間を初期設定する。
【００８６】
続いて、制御部２２は、ステップＳ１０３として、待機期間が経過したかを判定する。待機期間がまだ１度も経過していない場合には、待機期間が経過したかを判定する基準の時点は、例えば、図２０に示す処理手順の開始時点である。待機期間が既に１度以上経過している場合には、待機期間が経過したかを判定する基準の時点は、前回の待機期間が経過した時点である。
【００８７】
待機期間が経過した場合（ステップＳ１０３，Ｙｅｓ）、制御部２２は、ステップＳ１０４として、遊戯領域６０の上面付近に新たな３次元ブロックを出現させ、底面への移動を開始させる。そして、制御部２２は、ステップＳ１０５として、待機時間を短縮する。待機時間を短縮することにより、新たな３次元ブロックが出現する間隔が次第に短くなっていく。待機期間が経過していない場合（ステップＳ１０３，Ｎｏ）、ステップＳ１０４およびステップＳ１０５は実行されない。
【００８８】
続いて、制御部２２は、ステップＳ１０６として、移動中の３次元ブロックのうち、掴まれていないものを、遊戯領域６０の底面に向かって移動させる。そして、制御部２２は、ステップＳ１０７として、３次元ブロックの要素によって埋め尽くされた層が遊戯領域６０にあるかを判定する。埋め尽くされた層がある場合（ステップＳ１０７，Ｙｅｓ）、制御部２２は、ステップＳ１０８として、埋め尽くされた層を消去し、層の消去によって分断された３次元ブロックの残り部分を底面へ向けて移動させる。そして、制御部２２は、ステップＳ１０７の判定を再実行する。
【００８９】
埋め尽くされた層がない場合（ステップＳ１０７，Ｎｏ）、制御部２２は、ステップＳ１０９として、移動中の３次元ブロックのうち、移動方向の面のいずれかが底面または停止した他の３次元ブロックに接触したものの移動を停止させる。そして、制御部２２は、ステップＳ１１０として、処理を終了させるかを判定する。制御部２２は、利用者が処理の終了を指示する所定の操作を行った場合、および新たな３次元ブロックを出現させることができない程に３次元ブロックが積み上がった場合に、処理を終了させると判定する。処理を終了させる場合（ステップＳ１１０，Ｙｅｓ）、制御部２２は、処理手順を完了させる。処理を終了させない場合（ステップＳ１１０，Ｎｏ）、制御部２２は、ステップＳ１０３以降を再実行する。
【００９０】
表示装置１は、図２０に示した処理手順と並行して、掴んで行う操作に関する制御と押す操作に関する制御とを実行する。以下、図２１から図２６を参照しながら、掴んで行う操作に関する制御について説明する。また、図２７から図３１を参照しながら、押す操作に関する制御について説明する。
【００９１】
図２１および図２２は、３次元オブジェクトを掴んで行う操作の検出について説明するための図である。図２１に示すステップＳＨ１では、表示部３２ａおよび３２ｂによって、表示空間中に、３次元オブジェクトＯＢ１が立体的に表示されている。また、３次元オブジェクトＯＢ１を選択するために、利用者は、指Ｆ１と指Ｆ２の間に３次元オブジェクトＯＢ１が位置するように指Ｆ１および指Ｆ２を移動させている。
【００９２】
表示装置１は、表示空間内で２つの物体が検出され、かつ、それらの２つの物体の間に３次元オブジェクトＯＢ１が位置する場合、２つの物体の距離の変化を監視する。そして、距離が所定時間以上ほぼ一定であれば、３次元オブジェクトＯＢ１が選択されたと判定し、３次元オブジェクトＯＢ１を選択状態にする。そして、表示装置１は、３次元オブジェクトＯＢ１の表示態様を変更する等して、３次元オブジェクトＯＢ１が選択状態になったことを利用者に通知する。
【００９３】
表示装置１が２つの物体の距離の変化を監視している間、２つの物体は、３次元オブジェクトＯＢ１を挟む位置に留まる必要はない。すなわち、利用者は、ステップＳＨ１に示したように指Ｆ１と指Ｆ２の間に３次元オブジェクトＯＢ１が位置するように指Ｆ１および指Ｆ２を移動させた後、その状態を保つことなく、指Ｆ１および指Ｆ２を他の位置へ移動させて構わない。
【００９４】
ステップＳＨ１の状態から、ステップＳＨ２に示すように、利用者が、指Ｆ１と指Ｆ２の距離Ｄ１をほぼ一定に保ったまま移動させたものとする。この場合、表示装置１は、指Ｆ１と指Ｆ２の間に３次元オブジェクトＯＢ１が表示されていることが検出された段階、すなわち、ステップＳＨ１の段階から、指Ｆ１および指Ｆ２の動きに応じて、３次元オブジェクトＯＢ１に移動、回転等の変化を加える。そして、表示装置１は、ステップＳＨ３に示すように、指Ｆ１と指Ｆ２の距離Ｄ１がほぼ一定に保たれた状態が所定時間以上継続した段階で、３次元オブジェクトＯＢ１を選択状態にする。
【００９５】
なお、図２２のステップＳＩ１からステップＳＩ３に示すように、所定時間が経過する前に指Ｆ１と指Ｆ２の距離Ｄ１が離れた場合、すなわち、選択が行われなかった場合、表示装置１は、それまでに加えた変化と逆の変化を３次元オブジェクトＯＢ１に加える。その結果、３次元オブジェクトＯＢ１は、ステップＳＩ１の段階と同じ位置に同じ状態で表示される。逆の変化を３次元オブジェクトＯＢ１に加える速度は、それまでに３次元オブジェクトＯＢ１に変化が加えられた速度よりも速くてもよい。すなわち、高速に逆再生しているかのように３次元オブジェクトＯＢ１を逆変化させてもよい。
【００９６】
このように、２つの物体の間に３次元オブジェクトが表示されていることが検出された段階から３次元オブジェクトに変化を加え始めることにより、利用者は、３次元オブジェクトが選択されつつあることを選択が確定する前から認識することができる。その結果、利用者は、意図した３次元オブジェクトが選択されたか否かを早期に知ることができる。なお、２つの物体の距離がほぼ一定に保たれた状態が所定時間以上継続するまでは、変化を加えられている３次元オブジェクトを通常時とも選択状態とも異なる態様（例えば、半透明）で表示することにより、利用者が３次元オブジェクトの状態を判別しやすくしてもよい。
【００９７】
なお、ステップＳＨ１の段階から、指Ｆ１および指Ｆ２の動きに応じて３次元オブジェクトＯＢ１を変化させるのではなく、３次元オブジェクトＯＢ１が選択状態になった後に３次元オブジェクトＯＢ１を変化させ始めてもよい。また、ステップＳＨ１のように指Ｆ１と指Ｆ２の間に３次元オブジェクトＯＢ１が位置する状態が所定時間以上継続した場合にのみ、３次元オブジェクトＯＢ１を選択状態にすることとしてもよい。
【００９８】
図２３は、３次元オブジェクトの選択検出処理の処理手順を示すフローチャートである。図２３に示す処理手順は、制御部２２が制御プログラム２４ａを実行することによって実現される。図２３に示すように、制御部２２は、ステップＳ２０１として、検出部、すなわち、撮影部４０および４２によって第１の物体および第２の物体が検出されたかを判定する。第１の物体および第２の物体が検出されない場合（ステップＳ２０１，Ｎｏ）、制御部２２は、ステップＳ２０９として、仮選択状態の３次元オブジェクトがあれば、その３次元オブジェクトの仮選択状態を解除する。
【００９９】
そして、制御部２２は、ステップＳ２１０として、処理を終了させるかを判定する。処理を終了させる場合（ステップＳ２１０，Ｙｅｓ）、制御部２２は、処理手順を完了させる。処理を終了させない場合（ステップＳ２１０，Ｎｏ）、制御部２２は、ステップＳ２０１以降を再実行する。
【０１００】
第１の物体および第２の物体が検出された場合（ステップＳ２０１，Ｙｅｓ）、制御部２２は、ステップＳ２０２として、仮選択状態の３次元オブジェクトがあるか否かを判定する。仮選択状態の３次元オブジェクトがない場合（ステップＳ２０２，Ｎｏ）、制御部２２は、ステップＳ２０３として、表示されている３次元オブジェクトの中から第１の物体と第２の物体との間に表示されている３次元オブジェクトを探す。該当する３次元オブジェクトがない場合（ステップＳ２０４，Ｎｏ）、制御部２２は、ステップＳ２１０を実行する。
【０１０１】
第１の物体と第２の物体との間に表示されている３次元オブジェクトがみつかった場合（ステップＳ２０４，Ｙｅｓ）、制御部２２は、ステップＳ２０５として、第１の物体と第２の物体との間に表示されている３次元オブジェクトを仮選択状態にする。また、制御部２２は、ステップＳ２０６として、第１の物体と第２の物体の距離を算出する。そして、制御部２２は、ステップＳ２１０を実行する。
【０１０２】
第１の物体および第２の物体が検出され、かつ、仮選択状態の３次元オブジェクトがある場合（ステップＳ２０２，Ｙｅｓ）、制御部２２は、ステップＳ２０７として、第１の物体と第２の物体の少なくとも一方が移動しているかを判定する。第１の物体と第２の物体のいずれも移動していない場合（ステップＳ２０７，Ｎｏ）、制御部２２は、ステップＳ２１０を実行する。
【０１０３】
第１の物体と第２の物体の少なくとも一方が移動している場合（ステップＳ２０７，Ｙｅｓ）、制御部２２は、ステップＳ２０８として、図２４に示す掴む操作検出処理を実行し、その中で、選択状態にある３次元オブジェクトを検出された操作に応じて変化させる。掴む操作検出処理が終了した後、制御部２２は、ステップＳ２１０を実行する。
【０１０４】
図２４は、掴む操作検出処理の処理手順を示すフローチャートである。図２４に示す処理手順は、制御部２２が制御プログラム２４ａを実行することによって実現される。図２４に示すように、制御部２２は、まず、ステップＳ３０１として、第１の物体と第２の物体の距離を算出する。そして、制御部２２は、ステップＳ３０２として、掴む操作検出処理の開始時点以降の第１の物体と第２の物体の距離が拡大したかを判定する。
【０１０５】
第１の物体と第２の物体の距離がほぼ一定の場合（ステップＳ３０２，Ｎｏ）、制御部２２は、ステップＳ３０３として、掴む操作検出処理が開始されてから所定時間が経過したかを判定する。所定時間が経過していた場合（ステップＳ３０３，Ｙｅｓ）、制御部２２は、ステップＳ３０４として、仮選択状態の３次元オブジェクトがあれば、その３次元オブジェクトを選択状態にする。所定時間が経過していない場合（ステップＳ３０３，Ｎｏ）、ステップＳ３０４は実行されない。
【０１０６】
続いて、制御部２２は、ステップＳ３０５として、検出された第１の物体および第２の物体の動きに応じて３次元オブジェクトを移動させたり回転させたりする。例えば、第１の物体および第２の物体が手であり、掴まれた３次元オブジェクトが遊戯領域６０の場合、制御部２２は、第１の物体および第２の物体の動きに応じて、図１４から図１７に示したような変化を遊戯領域６０に加える。また、第１の物体および第２の物体が指であり、掴まれた３次元オブジェクトが３次元ブロックの場合、制御部２２は、図１１、図１３、図１８および図１９に示したような変化を３次元ブロックに加える。そして、制御部２２は、ステップＳ３０１以降を再実行する。
【０１０７】
第１の物体と第２の物体の距離が拡大している場合（ステップＳ３０２，Ｙｅｓ）、制御部２２は、ステップＳ３０６として、第１の物体と第２の物体の間に表示されていた３次元オブジェクトが仮選択状態であるかを判定する。
【０１０８】
３次元オブジェクトが仮選択状態である場合（ステップＳ３０６，Ｙｅｓ）、制御部２２は、ステップＳ３０７として、３次元オブジェクトの仮選択状態を解除する。また、制御部２２は、ステップＳ３０８として、３次元オブジェクトを逆変化させて元の状態に戻す。そして、制御部２２は、掴む操作検出処理を終了させる。
【０１０９】
３次元オブジェクトが仮選択状態でない場合、すなわち、選択状態の場合（ステップＳ３０６，Ｎｏ）、制御部２２は、ステップＳ３０９として、３次元オブジェクトの選択状態を解除する。そして、制御部２２は、掴む操作検出処理を終了させる。
【０１１０】
なお、図２５に示すステップＳＪ１からステップＳＪ３のように、第１の物体と第２の物体のうち少なくとも一方が３次元オブジェクトに接触した後に第１の物体と第２の物体の距離が所定時間以上ほぼ一定に保たれることを、３次元オブジェクトを選択する条件としてもよい。３次元オブジェクトへの接触を選択の条件とすることにより、複数の３次元オブジェクトが近接して表示されている場合に、利用者が所望の３次元オブジェクトを選択し易くなる。
【０１１１】
図２６は、３次元オブジェクトへの接触を選択の条件とする場合の選択検出処理の処理手順を示すフローチャートである。図２６に示すように、制御部２２は、ステップＳ４０１として、検出部、すなわち、撮影部４０および４２によって第１の物体および第２の物体が検出されたかを判定する。第１の物体および第２の物体が検出されない場合（ステップＳ４０１，Ｎｏ）、制御部２２は、ステップＳ４０９として、仮選択状態の３次元オブジェクトがあれば、その３次元オブジェクトの仮選択状態を解除する。
【０１１２】
そして、制御部２２は、ステップＳ４１０として、処理を終了させるかを判定する。処理を終了させる場合（ステップＳ４１０，Ｙｅｓ）、制御部２２は、処理手順を完了させる。処理を終了させない場合（ステップＳ４１０，Ｎｏ）、制御部２２は、ステップＳ４０１以降を再実行する。
【０１１３】
第１の物体および第２の物体が検出された場合（ステップＳ４０１，Ｙｅｓ）、制御部２２は、ステップＳ４０２として、仮選択状態の３次元オブジェクトがあるか否かを判定する。仮選択状態の３次元オブジェクトがない場合（ステップＳ４０２，Ｎｏ）、制御部２２は、ステップＳ４０３として、表示されている３次元オブジェクトの中から第１の物体または第２の物体の少なくとも一方に接触している３次元オブジェクトを探す。該当する３次元オブジェクトがない場合（ステップＳ４０４，Ｎｏ）、制御部２２は、ステップＳ４１０を実行する。
【０１１４】
第１の物体または第２の物体の少なくとも一方に接触している３次元オブジェクトがみつかった場合（ステップＳ４０４，Ｙｅｓ）、制御部２２は、ステップＳ４０５として、第１の物体と第２の物体との間に表示されている３次元オブジェクトを仮選択状態にする。また、制御部２２は、ステップＳ４０６として、第１の物体と第２の物体の距離を算出する。そして、制御部２２は、ステップＳ４１０を実行する。
【０１１５】
第１の物体および第２の物体が検出され、かつ、仮選択状態の３次元オブジェクトがある場合（ステップＳ４０２，Ｙｅｓ）、制御部２２は、ステップＳ４０７として、第１の物体と第２の物体の少なくとも一方が移動しているかを判定する。第１の物体と第２の物体のいずれも移動していない場合（ステップＳ４０７，Ｎｏ）、制御部２２は、ステップＳ４１０を実行する。
【０１１６】
第１の物体と第２の物体の少なくとも一方が移動している場合（ステップＳ４０７，Ｙｅｓ）、制御部２２は、ステップＳ４０８として、図２４に示す掴む操作検出処理を実行し、その中で、選択状態にある３次元オブジェクトを検出された操作に応じて変化させる。掴む操作検出処理が終了した後、制御部２２は、ステップＳ４１０を実行する。
【０１１７】
図２７は、作用データ２４ｃに格納される情報の一例を示す図である。図２７に示すように、押す操作が検出された場合の３次元オブジェクトの変化は、支点の有無、押された方向における障害物の有無、および押される速度に応じて異なる。なお、ここでいう障害物とは、遊戯領域６０の面および他の３次元オブジェクトである。また、押される速度が速いか遅いかは閾値に基づいて判定される。
【０１１８】
３次元オブジェクトに支点がなく、押された方向に障害物がない場合、３次元オブジェクトは、押された方向に押された量に応じて移動するように表示される。なお、３次元オブジェクトが、押す物体と一緒に移動するのか、押す物体にはじかれるように物体と離れて移動するのかについては、例えば、押される速度に基づいて決定してよい。
【０１１９】
３次元オブジェクトに支点がなく、押された方向に、停止した３次元ブロックまたは遊戯領域６０の面という固定された障害物がある場合、３次元オブジェクトは、押された方向に押された量に応じて移動し、障害物と接触した時点で移動が停止するように表示される。なお、押された速度が速い場合は、３次元オブジェクトが障害物を破壊して移動を継続することとしてもよい。また、３次元オブジェクトが押す物体にはじかれるように物体と離れて移動している間に障害物と接触した場合は、跳ね返ったように３次元オブジェクトを逆方向に移動させてもよい。
【０１２０】
３次元オブジェクトに支点がなく、押された方向に、移動中の３次元ブロックという固定されていない障害物があり、押される速度が遅い場合、３次元オブジェクトは、押された方向に押された量に応じて移動し、障害物と接触した後は、障害物もともに移動するように表示される。また、３次元オブジェクトに支点がなく、押された方向に、移動中の３次元ブロックという固定されていない障害物があり、押される速度が速い場合、３次元オブジェクトは、押された方向に押された量に応じて移動するように表示される。そして、３次元オブジェクトが障害物と接触した後は、障害物がはじかれて移動するように表示される。障害物と接触した後、３次元オブジェクトは、その場で停止してもよいし、速度を落として移動を継続してもよい。
【０１２１】
３次元オブジェクトに支点がある場合、３次元オブジェクトは、押された方向および量に応じて、支点を中心に回転するように表示される。ここでいう回転とは、３６０度ぐるぐると回る回転であってもよいし、所定の回転範囲内を往復する回動であってもよい。
【０１２２】
図２８および図２９は、３次元オブジェクトを押す操作の検出について説明するための図である。図２８に示すステップＳＫ１では、表示部３２ａおよび３２ｂによって、表示空間中に、３次元オブジェクトＯＢ１が立体的に表示されている。また、利用者は、指Ｆ１を３次元オブジェクトＯＢ１と接触させている。
【０１２３】
ここで、利用者が指Ｆ１を３次元オブジェクトＯＢ１の内側に侵入させたものとする。表示装置１は、３次元オブジェクトＯＢ１に接触した物体が３次元オブジェクトＯＢ１の内側に移動したことを検出すると、ステップＳＫ２に示すように、その時点から、３次元オブジェクトＯＢ１を指Ｆ１による操作に応じて変化させる。図２８に示す例では、ステップＳＫ２において、３次元オブジェクトＯＢ１は、指Ｆ１の移動に合わせて移動を開始している。
【０１２４】
そして、表示装置１は、ステップＳＫ３に示すように、指Ｆ１が３次元オブジェクトＯＢ１の内側へ向けて移動することが所定時間以上継続した段階で、３次元オブジェクトＯＢ１を操作対象として確定する。そして、表示装置１は、３次元オブジェクトＯＢ１の表示態様を変更する等して、３次元オブジェクトＯＢ１が操作対象として確定したことを利用者に通知する。その後も、指Ｆ１の３次元オブジェクトＯＢ１の内側への移動が検出される間、表示装置１は、３次元オブジェクトＯＢ１を変化させ続ける。
【０１２５】
なお、図２９のステップＳＬ３に示すように、所定時間が経過する前に指Ｆ１の３次元オブジェクトＯＢ１の内側への移動が検出されなくなった場合、表示装置１は、それまでに加えた変化と逆の変化を３次元オブジェクトＯＢ１に加える。その結果、３次元オブジェクトＯＢ１は、ステップＳＫ１（ステップＳＬ１）の段階と同じ位置に同じ状態で表示される。逆の変化を３次元オブジェクトＯＢ１に加える速度は、それまでに３次元オブジェクトＯＢ１に変化が加えられた速度よりも速くてもよい。すなわち、高速に逆再生しているかのように３次元オブジェクトＯＢ１を逆変化させてもよい。
【０１２６】
このように、３次元オブジェクトの内側への物体の侵入が検出された段階から３次元オブジェクトに変化を加え始めることにより、利用者は、３次元オブジェクトが選択されつつあることを選択が確定する前から認識することができる。その結果、利用者は、意図した３次元オブジェクトが選択されたか否かを早期に知ることができる。意図しない３次元オブジェクトが選択された場合、利用者は、所定時間が経過する前に操作を中止することにより、意図せずに選択された３次元オブジェクトを元の状態に戻すことができる。
【０１２７】
なお、指Ｆ１の３次元オブジェクトＯＢ１の内側への移動が所定時間以上継続するまでは、変化を加えられている３次元オブジェクトを通常時とも操作対象としての選択が確定した状態とも異なる態様（例えば、半透明）で表示してもよい。このように表示態様を変更することにより、利用者が３次元オブジェクトの状態を判別しやすくなる。
【０１２８】
なお、ステップＳＫ１の段階から、指Ｆ１の動きに応じて３次元オブジェクトＯＢ１を変化させるのではなく、３次元オブジェクトＯＢ１が選択状態になった後に３次元オブジェクトＯＢ１を変化させ始めてもよい。また、ステップＳＫ１のように指Ｆ１が３次元オブジェクトＯＢ１と接触する状態が所定時間以上継続した場合にのみ、３次元オブジェクトＯＢ１を操作対象として確定することとしてもよい。
【０１２９】
図３０は、３次元オブジェクトの接触検出処理の処理手順を示すフローチャートである。図３０に示す処理手順は、制御部２２が制御プログラム２４ａを実行することによって実現される。
【０１３０】
図３０に示すように、制御部２２は、まず、ステップＳ５０１として、検出部、すなわち、撮影部４０および４２によって所定の物体が検出されたかを判定する。所定の物体は、例えば、利用者の指である。所定の物体が検出されない場合（ステップＳ５０１，Ｎｏ）、制御部２２は、ステップＳ５０６として、処理を終了させるかを判定する。処理を終了させる場合（ステップＳ５０６，Ｙｅｓ）、制御部２２は、処理手順を完了させる。処理を終了させない場合（ステップＳ５０６，Ｎｏ）、制御部２２は、ステップＳ５０１以降を再実行する。
【０１３１】
所定の物体が検出された場合（ステップＳ５０１，Ｙｅｓ）、制御部２２は、ステップＳ５０２として、所定の物体に接触している３次元オブジェクトを探す。所定の物体に接触している３次元オブジェクトがない場合（ステップＳ５０３，Ｎｏ）、制御部２２は、ステップＳ５０６を実行する。
【０１３２】
所定の物体に接触している３次元オブジェクトがみつかった場合（ステップＳ５０３，Ｙｅｓ）、制御部２２は、ステップＳ５０４として、その３次元オブジェクトが選択状態または仮選択状態であるかを判定する。３次元オブジェクトが選択状態または仮選択状態である場合、すなわち、掴む操作の対象となっている場合（ステップＳ５０４，Ｙｅｓ）、制御部２２は、ステップＳ５０６を実行する。
【０１３３】
３次元オブジェクトが選択状態でも仮選択状態でもない場合（ステップＳ５０４，Ｎｏ）、制御部２２は、ステップＳ５０５として、図３１に示す押す操作検出処理を実行する。その後、制御部２２は、ステップＳ５０６を実行する。
【０１３４】
図３１は、押す操作検出処理の処理手順を示すフローチャートである。図３１に示す処理手順は、制御部２２が制御プログラム２４ａを実行することによって実現される。図３１に示すように、制御部２２は、まず、ステップＳ６０１として、所定の物体が３次元オブジェクトの内部に移動しているかを判定する。所定の物体が３次元オブジェクトの内部に移動していない場合（ステップＳ６０１，Ｎｏ）、その３次元オブジェクトは操作対象ではないと判断されるため、制御部２２は、押す操作検出処理を終了させる。
【０１３５】
所定の物体が３次元オブジェクトの内部に移動している場合（ステップＳ６０１，Ｙｅｓ）、制御部２２は、ステップＳ６０２として、所定の物体の速度を算出する。そして、制御部２２は、ステップＳ６０３として、所定の物体の位置および速度等に基づいて３次元オブジェクトを変化させる。具体的な変化のさせ方は、作用データ２４ｃに従って決定される。
【０１３６】
続いて、制御部２２は、ステップＳ６０４として、接触検出からの経過時間が所定時間以上であるかを判定する。経過時間が所定時間よりも短い場合、すなわち、３次元オブジェクトが押す操作の対象として確定していない場合（ステップＳ６０４，Ｎｏ）、制御部２２は、ステップＳ６０５として、所定の物体の３次元オブジェクトの内部方向への移動が継続しているかを判定する。
【０１３７】
３次元オブジェクトの内部方向への移動が継続している場合（ステップＳ６０５，Ｙｅｓ）、制御部２２は、ステップＳ６０２以降を再実行する。３次元オブジェクトの内部方向への移動が継続していない場合（ステップＳ６０５，Ｎｏ）、制御部２２は、ステップＳ６０６として、３次元オブジェクトを逆変化させて元の状態に戻す。そして、制御部２２は、押す操作検出処理を終了させる。
【０１３８】
また、接触検出からの経過時間が所定時間以上である場合（ステップＳ６０４，Ｙｅｓ）、制御部２２は、ステップＳ６０７として、所定の物体が３次元オブジェクトの外部に移動したかを判定する。所定の物体が３次元オブジェクトの外部に移動していない場合、すなわち、押す操作が継続している場合（ステップＳ６０７，Ｎｏ）、制御部２２は、ステップＳ６０２以降を再実行する。
【０１３９】
所定の物体が３次元オブジェクトの外部に移動した場合、すなわち、３次元オブジェクトが解放された場合（ステップＳ６０７，Ｙｅｓ）、制御部２２は、ステップＳ６０８として、３次元オブジェクトの変化が継続するかを判定する。例えば、作用データ２４ｃにおいて解放後も振動が所定時間継続することが定義されている場合に、３次元オブジェクトの変化が継続すると判定される。
【０１４０】
３次元オブジェクトの変化が継続する場合（ステップＳ６０８，Ｙｅｓ）、制御部２２は、ステップＳ６０９として、３次元オブジェクトを変化させ、その後、ステップＳ６０８以降を再実行する。３次元オブジェクトの変化が継続しない場合（ステップＳ６０８，Ｎｏ）、制御部２２は、押す操作検出処理を終了させる。
【０１４１】
なお、上記の実施例で示した本発明の態様は、本発明の要旨を逸脱しない範囲で任意に変更することができる。例えば、上記の実施例で示した制御プログラム２４ａは、複数のモジュールに分割されていてもよいし、他のプログラムと統合されていてもよい。また、上記の実施例では、３次元オブジェクトに対して手および指で操作を行うこととしたが、棒状の物等を手および指の代わりに用いてもよい。
【０１４２】
また、上記の実施例では、表示装置が単独で３次元オブジェクトに対する操作を検出することとしたが、表示装置がサーバ装置と協業して３次元オブジェクトに対する操作を検出することとしてもよい。この場合、表示装置は、検出部の検出した情報をサーバ装置へ逐次送信し、サーバ装置が操作を検出して検出結果を表示装置へ通知する。このような構成とすることにより、表示装置の負荷を低減することができる。
【符号の説明】
【０１４３】
１〜４  表示装置
１ａ  前面部
１ｂ  側面部
１ｃ  側面部
４ｄ  外部装置
１３  操作部
２２  制御部
２４  記憶部
２４ａ  制御プログラム
２４ｂ  オブジェクトデータ
２４ｃ  作用データ
２４ｄ  仮想空間データ
２５  検出処理部
２６  表示オブジェクト制御部
２７  画像合成部
３２ａ、３２ｂ  表示部
４０、４２  撮影部
４４  検出部
４６  測距部
【図１】
2014068689.tif 000003
【図２】
2014068689.tif 000004
【図３】
2014068689.tif 000005
【図４】
2014068689.tif 000006
【図５】
2014068689.tif 000007
【図６】
2014068689.tif 000008
【図７】
2014068689.tif 000009
【図８】
2014068689.tif 000010
【図９】
2014068689.tif 000011
【図１０】
2014068689.tif 000012
【図１１】
2014068689.tif 000013
【図１２】
2014068689.tif 000014
【図１３】
2014068689.tif 000015
【図１４】
2014068689.tif 000016
【図１５】
2014068689.tif 000017
【図１６】
2014068689.tif 000018
【図１７】
2014068689.tif 000019
【図１８】
2014068689.tif 000020
【図１９】
2014068689.tif 000021
【図２０】
2014068689.tif 000022
【図２１】
2014068689.tif 000023
【図２２】
2014068689.tif 000024
【図２３】
2014068689.tif 000025
【図２４】
2014068689.tif 000026
【図２５】
2014068689.tif 000027
【図２６】
2014068689.tif 000028
【図２７】
2014068689.tif 000029
【図２８】
2014068689.tif 000030
【図２９】
2014068689.tif 000031
【図３０】
2014068689.tif 000032
【図３１】
2014068689.tif 000033