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