説明

表示機器、制御システムおよび制御プログラム

【課題】3Dアプリケーションにおいて利用者に対して利便性の高い操作方法を提供すること。
【解決手段】本発明に係る携帯電話端末(表示機器)1は、視認空間内に立体パズルを立体表示する表示部32aと、視認空間内における物体の動きを検出する検出部40,42と、検出部40,42の検出結果に応じて立体パズルのピースの位置を変化させる制御部22とを備える。立体パズルの変化には、例えば、移動、回転、変形、消失等が含まれる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、表示機器、制御システムおよび制御プログラムに関する。
【背景技術】
【0002】
携帯電話端末等の表示部を備える表示機器には、画像等を立体表示することができるものがある(例えば、特許文献1参照)。立体表示は、両眼の視差を利用して実現される。
【0003】
また、3Dゲームのアプリケーションを実行することができるゲーム装置がある(例えば、特許文献2参照)。例えば、特許文献2に記載のゲーム装置は、3次元コンピュータグラフィックスで表示された立体パズルを使用して3Dゲームを実行する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2011−95547号公報
【特許文献2】特開2011−101677号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
立体表示は利用者にとって親しみやすい表示形式であるにも関わらず、従来の表示機器では、立体表示は視聴目的でしか利用されず、操作の利便性を向上させるためには利用されてこなかった。また、立体パズル等の3Dゲームのアプリケーションは存在するが、従来のゲーム装置では、操作ボタン等により特定の1つのオブジェクト毎しか選択できず、さらに操作に慣れるまで時間を要してしまう。
【0006】
本発明は、3Dアプリケーションにおいて利用者に対して利便性の高い操作方法を提供することができる表示機器、制御システムおよび制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る表示機器は、複数の立方体が直交する3方向に沿って配列されて構成された集合体を、視認空間内に立体表示する表示部と、前記視認空間内における物体の動きを検出する検出部と、前記検出部の検出結果に応じて前記集合体の各要素の位置を変化させる制御部とを備え、前記集合体の6面の各々は各立方体の外面を要素とする集合体からなり、各要素には当該要素の全てが同一グループに属するか否かを判別可能な表記がなされており、前記制御部は、前記検出部の検出結果に基づいて、前記6面のうち、前記直交する3方向のうち一の方向に直交する面においては、当該直交する面を構成する各要素同士の位置関係が変化せず、かつ、前記直交する3方向のうち他の方向と直交する複数の他の面においては、当該複数の他の面を構成する各要素同士が、当該複数の他の面の間で入れ替わるように、前記一の方向を回転軸として、前記立方体を回転させるように制御する。
【0008】
また、前記検出部が、前記集合体を掴む位置に前記物体があり、かつ、前記物体が移動したことを検出した場合、前記制御部は、前記物体の動きに応じて、前記集合体を移動させるように制御することが好ましい。
【0009】
また、前記検出部が、2箇所で前記集合体を掴む2組の物体を検出し、さらに前記2組の物体同士が対向する方向を中心に、前記2組の物体同士が相対的に回転する動きを検出した場合、前記制御部は、前記2組の物体同士が対向する方向を前記一の方向と定め、前記相対的に回転する動きの回転量に応じて、前記立方体を回転させるように制御することが好ましい。
【0010】
前記表示部は、複数の集合体を前記視認空間内に立体表示し、前記検出部が、前記複数の集合体のうち一方の集合体に対して、2箇所で前記一方の集合体を掴む2組の物体を検出し、さらに前記2組の物体同士が対向する方向を中心に、前記2組の物体同士が相対的に回転する動きを検出した場合、前記制御部は、前記2組の物体同士が対向する方向を前記一の方向と定め、前記一方の集合体に対する前記相対的に回転する動きの回転量に応じて、前記一方の集合体を構成する立方体と、前記複数の集合体のうち他方の集合体を構成する立方体とが連動して回転するように制御することが好ましい。
【0011】
前記表示部は、前記一方の集合体内に前記他方の集合体を入れ子にした状態で立体表示し、前記検出部が、前記他方の集合体を掴む位置に前記物体があり、かつ、前記物体が移動したことを検出した場合、前記制御部は、前記物体の動きに応じて、前記一方の集合体を移動させずに、前記他方の集合体のみを移動させるように制御することが好ましい。
【0012】
前記表示部は、前記一方の集合体と前記他方の集合体をそれぞれ、同一の前記視認空間内に立体表示し、前記検出部が、前記他方の集合体を掴む位置に前記物体があり、かつ、前記物体が移動したことを検出した場合、前記制御部は、前記他方の集合体に対する前記物体の動きに応じて、前記他方の集合体と、前記一方の集合体とが連動して移動するように制御することが好ましい。
【0013】
前記検出部は、前記表示部に重畳して設けられた静電容量式のタッチセンサであることが好ましい。
【0014】
前記検出部は、カメラまたはTOFセンサを含んでなることが好ましい。
【0015】
前記表示部は、制限時間を表示することが好ましい。
【0016】
前記表示部は、前記立方体を回転させた回転数を表示することが好ましい。
【0017】
また、本発明に係る表示機器は、他の態様において、視認空間内に立体パズルを立体表示する表示部と、前記視認空間内における物体の動きを検出する検出部と、前記検出部の検出結果に応じて前記立体パズルのピースの位置を変化させる制御部とを備える。
【0018】
前記立体パズルは、正多面体型立体パズルであることが好ましい。
【0019】
前記正多面体型立体パズルは、正四面体型立体パズル、正六面体型立体パズル、正八面体型立体パズル、正十二面体型立体パズル、および、正二十面体型立体パズルを含むことが好ましい。
【0020】
前記正六面体型立体パズルは、ポケットキューブ、ルービックキューブ、ルービックリベンジ、および、プロフェッサーキューブを含むことが好ましい。
【0021】
また、本発明に係る制御システムは、複数の立方体が直交する3方向に沿って配列されて構成された集合体を、視認空間内に立体表示する表示部と、前記視認空間内における物体の動きを検出する検出部と、を備える携帯端末と、前記検出部の検出結果に応じて前記集合体の各要素の位置を変化させる制御部を備える制御装置と、を備え、前記集合体の6面の各々は各立方体の外面を要素とする集合体からなり、各要素には当該要素の全てが同一グループに属するか否かを判別可能な表記がなされており、前記制御部は、前記検出部の検出結果に基づいて、前記6面のうち、前記直交する3方向のうち一の方向に直交する面においては、当該直交する面を構成する各要素同士の位置関係が変化せず、かつ、前記直交する3方向のうち他の方向と直交する複数の他の面においては、当該複数の他の面を構成する各要素同士が、当該複数の他の面の間で入れ替わるように、前記一の方向を回転軸として、前記立方体を回転させるように制御することを特徴とする。
【0022】
また、本発明に係る制御プログラムは、複数の立方体が直交する3方向に沿って配列されて構成された集合体を、視認空間内に立体表示する表示部と、前記視認空間内における物体の動きを検出する検出部と、前記検出部の検出結果に応じて前記集合体の各要素の位置を変化させる制御部と、を備え、前記集合体の6面の各々は各立方体の外面を要素とする集合体からなり、各要素には当該要素の全てが同一グループに属するか否かを判別可能な表記がなされている表示機器に、前記検出部で操作を検出するステップと、前記検出部の検出結果に基づいて、前記6面のうち、前記直交する3方向のうち一の方向に直交する面においては、当該直交する面を構成する各要素同士の位置関係が変化せず、かつ、前記直交する3方向のうち他の方向と直交する複数の他の面においては、当該複数の他の面を構成する各要素同士が、当該複数の他の面の間で入れ替わるように、前記一の方向を回転軸として、前記立方体を回転させるように制御するステップとを、実行させることを特徴とする。
【発明の効果】
【0023】
本発明は、3Dアプリケーションにおいて利用者に対して利便性の高い操作方法を提供することができるという効果を奏する。
【図面の簡単な説明】
【0024】
【図1】図1は、第1の実施例に係る携帯電話端末の外観を示す正面図である。
【図2】図2は、第1の実施例に係る携帯電話端末の機能的な構成を示すブロック図である。
【図3】図3は、第1の実施例における3次元オブジェクトに対する操作の検出について説明するための図である。
【図4】図4は、3次元オブジェクトに対する選択と操作の一例を示す図である。
【図5】図5は、3次元オブジェクトに対する選択と操作の別の一例を示す図である。
【図6】図6は、選択検出処理の処理手順を示すフローチャートである。
【図7】図7は、操作検出処理の処理手順を示すフローチャートである。
【図8】図8は、単数の3次元オブジェクトに対する操作検出処理の処理手順の詳細を示すフローチャートである。
【図9】図9は、複数の3次元オブジェクトに対する操作検出処理の処理手順の詳細を示すフローチャートである。
【図10】図10は、複数の3次元オブジェクトの表示の一例を示す図である。
【図11】図11は、図10に示す複数の3次元オブジェクトに対する選択と操作の一例を示す図である。
【図12】図12は、図10に示す複数の3次元オブジェクトに対する選択と操作の別の一例を示す図である。
【図13】図13は、複数の3次元オブジェクトの表示の別の一例を示す図である。
【図14】図14は、図13に示す複数の3次元オブジェクトに対する選択と操作の一例を示す図である。
【図15】図15は、3次元オブジェクトに対する操作の検出の他の例について説明するための図である。
【図16】図16は、3次元オブジェクトへの接触を選択の条件とする場合の選択検出処理の処理手順を示すフローチャートである。
【図17】図17は、第2の実施例における3次元オブジェクトに対する操作の検出について説明するための図である。
【図18】図18は、選択検出処理の処理手順を示すフローチャートである。
【図19】図19は、3次元オブジェクトに対する操作の検出の他の例について説明するための図である。
【図20】図20は、3次元オブジェクトへの接触を選択の条件とする場合の選択検出処理の処理手順を示すフローチャートである。
【図21】図21は、第3の実施例における3次元オブジェクトに対する操作の検出について説明するための図である。
【図22】図22は、第3の実施例における3次元オブジェクトに対する操作の検出について説明するための図である。
【図23】図23は、選択検出処理の処理手順を示すフローチャートである。
【図24】図24は、操作検出処理の処理手順を示すフローチャートである。
【図25】図25は、3次元オブジェクトに対する操作の検出の他の例について説明するための図である。
【図26】図26は、3次元オブジェクトへの接触を選択の条件とする場合の選択検出処理の処理手順を示すフローチャートである。
【図27】図27は、第4の実施例に係る携帯電話端末の外観を示す正面図である。
【図28】図28は、第4の実施例に係る携帯電話端末の機能的な構成を示すブロック図である。
【図29】図29は、第4の実施例における3次元オブジェクトに対する操作の検出について説明するための図である。
【図30】図30は、3次元オブジェクトに対する操作を複数のタッチセンサを用いて検出する携帯電話端末3の構成の一例を示す図である。
【発明を実施するための形態】
【0025】
以下、本発明につき図面を参照しつつ詳細に説明する。なお、以下の説明により本発明が限定されるものではない。また、以下の説明における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。以下においては、表示機器の一例として携帯電話端末について説明するが、本発明の適用対象は携帯電話端末に限定されるものではなく、例えば、PHS(Personal Handyphone System)、PDA、ポータブルナビゲーション装置、ノートパソコン、ゲーム機等に対しても本発明は適用できる。また、以下においては、3次元オブジェクトの一例として正六面体型立体パズル(所謂、ルービックキューブ(登録商標)等)について説明するが、本発明の適用対象は正六面体立体パズルに限定されるものではなく、当業者に周知の立体パズルに対しても本発明は適用できる。
【実施例1】
【0026】
まず、図1および図2を参照しながら、第1の実施例に係る携帯電話端末(表示機器)1の構成について説明する。図1は、携帯電話端末1の外観を示す正面図である。図2は、携帯電話端末1の機能的な構成を示すブロック図である。
【0027】
図1および図2に示すように、携帯電話端末1は、操作部13と、マイク15と、レシーバ16と、制御部22と、記憶部24と、通信部26と、音声処理部30と、タッチパネル32と、撮影部40と、撮影部42とを有する。操作部13、マイク15、レシーバ16、タッチパネル32および撮影部40および42は、携帯電話端末1の正面に一部が露出する。
【0028】
操作部13は、物理的なボタンを有し、押下されたボタンに対応する信号を制御部22へ出力する。なお、図1に示す例では、操作部13はボタンを1つしか有していないが、操作部13は複数のボタンを有していてもよい。
【0029】
マイク15は、外部の音声を取得する。レシーバ16は、通話時に通話相手の音声を出力する。音声処理部30は、マイク15から入力される音声をデジタル信号化して制御部22へ出力する。また、音声処理部30は、制御部22から入力されるデジタル信号を復号してレシーバ16へ出力する。
【0030】
通信部26は、アンテナ26aを有し、基地局によって割り当てられるチャネルを介して、基地局との間にCDMA(Code Division Multiple Access)方式などによる無線信号回線を確立する。通信部26は、基地局との間に確立された無線信号回線を通じて、他の装置との間で電話通信および情報通信を行う。
【0031】
タッチパネル32は、文字、図形、画像等の各種の情報を表示するとともに、表示されたアイコン、ボタン、文字入力領域等の所定領域に対する入力操作を検出する。タッチパネル32は、表示部32aと、タッチセンサ32bとを重畳して構成される。
【0032】
表示部32aは、液晶ディスプレイ(Liquid Crystal Display)や有機EL(Organic Electro−Luminescence)パネル等の表示装置を備え、制御部22から入力される制御信号に従って各種の情報を表示する。タッチセンサ32bは、タッチパネル32の表面に対して行われる入力操作を検出し、検出した入力操作に応じた信号を制御部22へ出力する。タッチセンサ32bが各種操作を検出する方式は、静電容量式、抵抗膜式、感圧式等の任意の方式でよい。
【0033】
また、タッチパネル32は、3次元オブジェクトを表示できる。3次元オブジェクトは、視差を利用して立体的に見えるように作成された画像や形状等の表示物である。なお、3次元オブジェクトを表示する方式は、眼鏡等の器具を用いて立体視を実現する方式であってもよいし、裸眼で立体視を実現する方式であってもよい。
【0034】
撮影部40および42は、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)等のイメージセンサを用いて電子的に画像を撮影する。そして、撮影部40および42は、撮影した画像を信号に変換して制御部22へ出力する。撮影部40および42は、3次元オブジェクトが立体的に表示される空間(以下、「視認空間」という)において3次元オブジェクトを選択して操作する物体を検出する検出部としても機能する。
【0035】
なお、撮影部40および42は、視認空間内のどこに指等の物体が位置していてもその物体を撮影することができるように画角や配置が設定されていることが好ましい。また、撮影部40および42は、可視光の画像を取得する装置であってもよいし、赤外線等の不可視光の画像を取得する装置であってもよい。
【0036】
制御部22は、演算手段であるCPU(Central Processing Unit)と、記憶手段であるメモリとを備え、これらのハードウェア資源を用いてプログラムを実行することによって各種の機能を実現する。具体的には、制御部22は、記憶部24に記憶されているプログラムやデータを読み出してメモリに展開し、メモリに展開されたプログラムに含まれる命令をCPUに実行させる。そして、制御部22は、CPUによる命令の実行結果に応じて、メモリおよび記憶部24に対してデータの読み書きを行ったり、通信部26や表示部32a等の動作を制御したりする。CPUが命令を実行するに際しては、メモリに展開されているデータやタッチセンサ32b等から入力される信号がパラメータや判定条件の一部として利用される。
【0037】
記憶部24は、フラッシュメモリ等の不揮発性を有する記憶装置からなり、各種のプログラムやデータを記憶する。記憶部24に記憶されるプログラムには、制御プログラム24aが含まれる。なお、記憶部24は、メモリカード等の可搬の記憶媒体と、記憶媒体に対して読み書きを行う読み書き装置との組み合わせによって構成されてもよい。この場合、制御プログラム24aは、記憶媒体に記憶されていてもよい。また、制御プログラム24aは、通信部26による無線通信によってサーバ装置等の他の装置から取得することとしてもよい。
【0038】
制御プログラム24aは、携帯電話端末1を稼働させるための各種制御に関する機能を提供する。制御プログラム24aが提供する機能には、タッチパネル32での3次元オブジェクトの表示を制御する機能や、タッチパネル32によって表示される3次元オブジェクトに対する利用者の操作を検出する機能が含まれる。
【0039】
次に、図3を参照しながら、3次元オブジェクトに対する操作の検出について説明する。図3は、3次元オブジェクトに対する操作の検出について説明するための図である。図3に示すステップS11では、タッチパネル32によって、視認空間50中に、3次元オブジェクトOB1が立体的に表示されている。3次元オブジェクトOB1は、例えば、キューブを模したオブジェクトである。ここで、本実施例において、キューブは、複数の立方体が直交する3方向に沿って配列されて構成された集合体(所謂、ルービックキューブ(登録商標)等)であり、当該集合体の6面の各々は各立方体の外面を要素とする集合体からなり、各要素には当該要素の全てが同一グループに属するか否かを判別可能な表記がなされている。ここで、当該判別可能な表記は、色、マーク、文字、番号、絵柄等を含む。
【0040】
ここで、利用者が3次元オブジェクトOB1に対して何らかの操作を行いたいものとする。3次元オブジェクトOB1に対して何らかの操作を行うには、まず、操作の対象として3次元オブジェクトOB1を選択する必要がある。3次元オブジェクトOB1を選択するために、利用者は、ステップS12に示すように、指F1と指F2の間に3次元オブジェクトOB1が位置するように指F1および指F2を移動させ、その状態を所定時間以上維持する。
【0041】
携帯電話端末1は、視認空間内で2つの物体が検出され、かつ、それらの2つの物体の間に3次元オブジェクトOB1が位置する状態が所定時間以上継続した場合、3次元オブジェクトOB1が選択されたと判定し、3次元オブジェクトOB1を選択状態にする。そして、携帯電話端末1は、3次元オブジェクトOB1の表示態様を変更する等して、3次元オブジェクトOB1が選択状態になったことを利用者に通知する。
【0042】
2つの物体の間に3次元オブジェクトOB1が位置しているかの判定は、視認空間における2つの物体の現実の位置と、視認空間における3次元オブジェクトOB1の計算上の位置とに基づいて行われる。
【0043】
2つの物体の位置は、撮影部40および42が撮影する画像に基づいて算出される。2つの物体の位置の算出は、予め登録されているそれぞれの物体の大きさと画像中の物体の大きさおよび位置とに基づいて行ってもよい。また、2つの物体の位置の算出は、撮影部40が撮影した画像における物体の大きさおよび位置と撮影部42が撮影した画像における物体の大きさおよび位置とを照合して行ってもよい。なお、指等の物体の検出は、周知の技術を用いて実現してよい。また、物体が指である場合、指のつま先の位置を物体の位置として処理することが好ましい。
【0044】
視認空間における3次元オブジェクトOB1の計算上の位置は、タッチパネル32の表示面上での3次元オブジェクトOB1の位置と、視認空間内での3次元オブジェクトOB1の浮き上がり量とに基づいて算出される。視認空間内での3次元オブジェクトOB1の浮き上がり量は、例えば、3次元オブジェクトOB1を立体的に表示するために用いられる右目用の画像と左目用の画像における3次元オブジェクトOB1の位置の差から算出される。
【0045】
また、選択状態になったことの通知は、例えば、3次元オブジェクトOB1の全体の色を変更することや、3次元オブジェクトOB1の表面のうち、2つの物体を結ぶ直線と交わる位置の近傍の色を変更することによって実現される。このような視覚的な通知に代えて、あるいは、このような視覚的な通知に加えて、音や振動による通知を行ってもよい。
【0046】
このように、携帯電話端末1は、指等の現実の物体の間に3次元オブジェクトOB1が位置する状態が所定時間以上継続して検出された場合に、3次元オブジェクトOB1が選択されたと判定する。指の間に3次元オブジェクトOB1を挟むように指を配置するという操作は、人間が現実のオブジェクトを選択するためにオブジェクトを摘む操作と類似している。そのため、かかる操作は、3次元オブジェクトOB1を選択するための操作として、直感的で分かりやすい。また、状態が所定時間以上継続して検出されることを条件として付加することにより、他の3次元オブジェクトOB1を選択するために指を移動させる過程で、意図しない3次元オブジェクトOB1が選択されることを抑止できる。
【0047】
なお、3次元オブジェクトOB1を操作するために用いられる物体は、指に限定されず、手、足、棒、虫ピン等であってもよい。また、携帯電話端末1は、2つの物体がタッチパネル32の表示面と平行でない場合、すなわち、2つの物体を結ぶ直線がタッチパネル32の表示面または表示面と水平な平面と交わる場合にも上記の条件に基づいて3次元オブジェクトOB1を選択状態にする。このように、3次元オブジェクトOB1が選択されたか否かを立体的に判定することにより、3次元オブジェクトOB1の形状に合わせて選択操作を行い易くなる。
【0048】
3次元オブジェクトOB1が選択されたか否かを立体的に判定するためには、障害物が死角を作らないように、複数の撮影部を用意して異なる方向から指F1および指F2等を撮影することが望ましい。
【0049】
携帯電話端末1は、3次元オブジェクトOB1が選択状態になったと判定した後、指F1および指F2の動きに応じて、3次元オブジェクトOB1に移動、回転、変形、消失等の変化を加える。
【0050】
次に、図4〜図7を参照しながら、3次元オブジェクトOB1の操作に関して携帯電話端末1が実行する処理手順について説明する。
【0051】
ここで、図4は、3次元オブジェクトOB1に対する選択と操作の一例を示す図である。図5は、3次元オブジェクトOB1に対する選択と操作の別の一例を示す図である。本実施例は、3次元オブジェクトOB1として、複数の立方体が直交する3方向に沿って配列されて構成された集合体である立体パズルを用いる。以下、図4から図7に示す例では、立体パズルの3次元オブジェクトOB1として、図4および図5に示すように正多面体型立体パズルのうちの正六面体型立体パズルの2×2×2型のポケットキューブを用いた場合として説明する。3次元オブジェクトOB1は、図4に示すように、全体をそのまま回転したり、図5に示すように任意の軸を軸として複数の立方体で構成される面を相対的に回転させたりすることができる。入力した操作と3次元オブジェクトOB1に対して実行する処理との関係については後述する。また、3次元オブジェクトOB1は、2×2×2型のポケットキューブに限定されず種々の立体パズルとすることができる。例えば、3×3×3型のルービックキューブ(登録商標)、4×4×4型のルービックリベンジ、および、5×5×5型のプロフェッサーキューブ等とすることができる。
【0052】
図6は、3次元オブジェクトOB1の選択検出処理の処理手順を示すフローチャートである。図6に示す処理手順は、所定の操作が検出されたこと等を契機として、制御部22が制御プログラム24aを実行することによって実現される。
【0053】
図6に示すように、制御部22は、まず、ステップS101として、3次元オブジェクトOB1を立体的に表示する。具体的には、制御部22は、上述した図4および図5等に示すように、複数の立方体が直交する3方向に沿って配列されて構成された集合体(3次元オブジェクト)を、表示部32aによって視認空間内に立体表示する。すなわち、制御部22は、表示部32aを制御して視認空間内に立体パズル(3次元オブジェクト)を立体表示する。3次元オブジェクトOB1を表示するためのデータは、予め記憶部24に記憶されていてもよいし、通信部26による無線通信によってサーバ装置等の他の装置から取得してもよい。
【0054】
続いて、制御部22は、ステップS102として、検出部、すなわち、撮影部40および42によって第1の物体および第2の物体が検出されたかを判定する。第1の物体および第2の物体は、例えば、利用者の指である。
【0055】
すなわち、制御部22は、検出部を制御して視認空間内における物体(第1の物体および第2の物体を含む)の動きを検出する。具体的には、本実施例において、制御部22は、上述した図4に示すように、検出部を制御して3次元オブジェクトOB1を掴む位置に物体(第1の物体および第2の物体を含む)があること(3次元オブジェクトOB1を片手で掴んでいる状態)を検出する。また、制御部22は、上述した図5に示すように、検出部を制御して2箇所で3次元オブジェクトOB1を掴む2組の物体(3次元オブジェクトOB1を両手で掴んでいる状態)を検出する。なお、図示しないが、制御部22は、検出部を制御して2箇所で3次元オブジェクトOB1を掴む2組の物体(両手で掴む状態)を検出し、さらに、当該2組の物体とは別の他の物体(例えば、空いている指や他のユーザの手等)を検出してもよい。
【0056】
第1の物体および第2の物体が検出されない場合(ステップS102,No)、制御部22は、ステップS110として、操作終了が検出されたかを判定する。
【0057】
操作終了は、例えば、操作部13に対する所定の操作が行われた場合に検出されてもよいし、タッチパネル32に対する所定の操作が行われた場合に検出されてもよい。また、操作終了は、撮影部40または42の少なくとも一方で利用者の手による所定のジェスチャーが撮影された場合に検出されてもよい。操作終了が検出された場合(ステップS110,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS110,No)、制御部22は、ステップS102以降を再実行する。
【0058】
第1の物体および第2の物体が検出された場合(ステップS102,Yes)、制御部22は、ステップS103として、表示されている3次元オブジェクトOB1の中から第1の物体と第2の物体との間に表示されている3次元オブジェクトOB1を探す。該当する3次元オブジェクトOB1がない場合(ステップS104,No)、制御部22は、ステップS110として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS110,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS110,No)、制御部22は、ステップS102以降を再実行する。
【0059】
第1の物体と第2の物体との間に表示されている3次元オブジェクトOB1がみつかった場合(ステップS104,Yes)、制御部22は、ステップS105として、第1の物体と第2の物体との間に3次元オブジェクトOB1が位置している時間を取得する。取得した時間が所定時間未満の場合(ステップS106,No)、制御部22は、ステップS110として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS110,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS110,No)、制御部22は、ステップS102以降を再実行する。
【0060】
取得した時間が所定時間以上の場合(ステップS106,Yes)、制御部22は、ステップS107として、第1の物体と第2の物体の距離を算出する。また、制御部22は、ステップS108として、第1の物体と第2の物体との間に表示されている3次元オブジェクトOB1を選択状態にする。そして、制御部22は、ステップS109として、後述する操作検出処理を実行し、その中で、選択状態にある3次元オブジェクトOB1を検出された操作に応じて変化させる。操作検出処理が終了した後、制御部22は、ステップS110として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS110,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS110,No)、制御部22は、ステップS102以降を再実行する。
【0061】
図7は、操作検出処理の処理手順を示すフローチャートである。図7に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。
【0062】
図7に示すように、制御部22は、まず、ステップS201として、第1の物体と第2の物体の距離を算出する。そして、制御部22は、ステップS202として、操作検出処理の開始時点以降の第1の物体と第2の物体の距離がほぼ一定であるかを判定する。距離がほぼ一定とは、例えば、現時点での第1の物体と第2の物体の距離の変化量が、操作検出処理の開始時点の距離と比較して、所定の範囲(第1の物体および第2の物体が通常の速度で移動した場合の距離の最大変化量の±10%等)以内に収まっていることを意味する。また、第1の物体と第2の物体の距離が操作検出処理の開始時点以降縮まり続けている場合(第1の物体および第2の物体が3次元オブジェクトOB1を押しつぶす方向に移動している場合)に、距離がほぼ一定であると判定してもよい。また、手振れ等の範囲内でしか両者の距離が変化していない場合に、距離がほぼ一定であると判定してもよい。
【0063】
第1の物体と第2の物体の距離がほぼ一定の場合(ステップS202,Yes)、制御部22は、ステップS203として、第1の物体および第2の物体の移動速度を算出する。続いて、制御部22は、ステップS204として、算出した移動速度が閾値以下であるかを判定する。ここで用いられる閾値は、例えば、人が物を放り投げるときの指先の移動速度である。また、閾値と比較される移動速度は、第1の物体の移動速度と第2の物体の移動速度の平均であってもよし、いずれか速い方であってもよいし、いずれか遅い方であってもよい。
【0064】
移動速度が閾値以下の場合(ステップS204,Yes)、制御部22は、ステップS205として、検出された第1の物体および第2の物体の動きに応じて3次元オブジェクトOB1を移動させたり回転させたりする。具体的には、本実施例において、制御部22は、ステップS205において、検出部の検出結果(すなわち、物体の動き)に応じて上述した図4および図5に示すような集合体(3次元オブジェクト)の各要素の位置を変化させる。すなわち、制御部22は、検出部の検出結果に応じて上述した図4および図5に示すような立体パズル(3次元オブジェクト)のピースの位置を変化させる。例えば、第1の物体および第2の物体の右方向への移動が検出された場合、制御部22は、第1の物体および第2の物体の移動に合わせて3次元オブジェクトOB1を右方向へ移動させる。また、第1の物体および第2の物体の左回りでの回転が検出された場合、制御部22は、第1の物体および第2の物体の回転に合わせて3次元オブジェクトOB1を左回りで回転させる。また、移動と回転が同時に検出された場合、移動と回転が同時に実行される。なお、3次元オブジェクトOB1の移動や回転に対する障害物がある場合、3次元オブジェクトOB1が障害物に接触した時点で3次元オブジェクトOB1の移動や回転を停止させてもよい。そして、制御部22は、ステップS201以降を再実行する。
【0065】
移動速度が閾値より速い場合(ステップS204,No)、制御部22は、ステップS206として、3次元オブジェクトOB1のアプリケーション(ゲーム)をリセットする。つまり、本実施例において、3次元オブジェクトOB1が立体パズルであるので、制御部22は、当該立体パズルのゲーム進行中に当該3次元オブジェクトOB1を消去することで、ゲームをスタート時にリセットする。具体的には、制御部22は、3次元オブジェクトOB1を消去するに際して、3次元オブジェクトOB1が第1の物体および第2の物体の移動方向へ向けて飛んでいくようにアニメーション表示してもよい。そして、制御部22は、操作検出処理を終了させる。このように、3次元オブジェクトOB1を放り投げるように第1の物体および第2の物体が高速で移動した場合に3次元オブジェクトOB1を消去することにより、直感的な操作によって3次元オブジェクトOB1の消去(すなわち、3次元オブジェクトOB1のアプリケーションをリセット)を実現することができる。
【0066】
第1の物体と第2の物体の距離がほぼ一定でない場合(ステップS202,No)、制御部22は、ステップS207として、距離が、3次元オブジェクトOB1の選択時、すなわち、操作検出処理の開始時点よりも拡大しているかを判定する。距離が拡大している場合(ステップS207,Yes)、制御部22は、ステップS208として、3次元オブジェクトOB1の選択状態を解除する。そして、制御部22は、操作検出処理を終了させる。このように、第1の物体と第2の物体の距離を拡大するという操作は、摘んでいる現実のオブジェクトを放す操作と類似している。そのため、かかる操作は、3次元オブジェクトOB1の選択を解除するための操作として、直感的で分かりやすい。
【0067】
なお、本実施例においては、重力を考慮せず携帯電話端末1のタッチパネル32の上面で3次元オブジェクトOB1が浮いている状態として制御することを基本ルールとしているが、重力を考慮してユーザが3次元オブジェクトOB1を掴んでいないと下に落ちるよう制御してもよい。具体的には、制御部22は、ステップS208の処理の後、選択状態を解除した3次元オブジェクトOB1を一定時間経過後重力等に従って移動させて、3次元オブジェクトOB1を当初の配置場所(例えば、ゲームのスタート時のタッチパネル32上の位置)に戻すこととしてもよい。ここで、制御部22は、実際の重力が働く場合よりも3次元オブジェクトOB1をゆっくりと移動させてもよい。そして、制御部22は、操作検出処理を終了させる。なお、ここでの移動は、例えば、3次元オブジェクトOB1が重力に従って落下し、床やテーブルの上で停止するように表示される。3次元オブジェクトOB1の動きを停止させる前に、3次元オブジェクトOB1の弾性や床やテーブルの硬度に応じて3次元オブジェクトOB1をバウンドさせてもよい。3次元オブジェクトOB1が床やテーブルに衝突するときの衝撃の大きさを算出し、衝撃が所定の値よりも大きい場合には3次元オブジェクトOB1を破損したように表示してもよい。この場合、上記ステップS206の処理と同様、ゲームはスタート時にリセットされるものとする。
【0068】
なお、第1の物体と第2の物体の距離が3次元オブジェクトOB1の選択時よりも拡大している場合に、3次元オブジェクトOB1の選択状態を解除せずに3次元オブジェクトOB1の表示サイズを拡大させてもよい。この場合、3次元オブジェクトOB1の選択状態の解除の処理と区別するため、制御部22は、上述の選択検出処理において2組の物体が3次元オブジェクトOB1を選択して、本操作検出処理において物体が3次元オブジェクトOB1を引き伸ばす動きを検出した場合(すなわち、両手で3次元オブジェクトOB1を掴んで引き伸ばす動作を検出した場合)にのみ、3次元オブジェクトOB1の選択状態を解除せずに3次元オブジェクトOB1の表示サイズを拡大させるものとする。
【0069】
一方、第1の物体と第2の物体の距離が3次元オブジェクトOB1の選択時よりも縮まっている場合(ステップS207,No)、制御部22は、ステップS209として、距離に応じて3次元オブジェクトOB1の表示サイズを縮小する。これにより、ユーザは、視認空間内に立体表示されている3次元オブジェクトOB1の表示サイズをユーザの好みに合うサイズに縮小できる。そして、制御部22は、ステップS201以降を再実行する。3次元オブジェクトOB1の表示サイズを縮小させる程度は、例えば、3次元オブジェクトOB1に属性として設定されている弾性に応じて変更してもよい。例えば、制御部22は、ゴム製のキューブ等を模した3次元オブジェクトOB1のように属性として低い硬度が設定されているオブジェクトについては、第1の物体と第2の物体の距離が縮まるに応じて縮小の度合いを高めてよい。また、制御部22は、プラスチック製のキューブ等を模した3次元オブジェクトOB1のように属性として高い硬度が設定されているオブジェクトについては、第1の物体と第2の物体の距離が縮まっても縮小の度合いを小さく保ってよい。
【0070】
なお、第1の物体と第2の物体の距離が3次元オブジェクトOB1の選択時よりも著しく縮まっている場合に、すなわち、第1の物体と第2の物体の距離が所定の値以下になった場合に、3次元オブジェクトOB1を破損したように表示してもよい。例えば、本実施例においては、上記ステップS206において上述した3次元オブジェクトOB1を握りつぶす操作のように、3次元オブジェクトOB1である立体パズルのゲーム進行中に当該3次元オブジェクトOB1を消去することで、ゲームをスタート時にリセットしてもよい。
【0071】
続いて、図8に示すフローチャートに沿って、適宜上述した図4および図5を参照して、本実施例における3次元オブジェクトOB1の操作検出処理の詳細を説明する。ここで、図8は、上述した図7におけるステップS205の処理をより詳細に説明するものであり、単数の3次元オブジェクトOB1に対する操作検出処理の処理手順の詳細を示すフローチャートである。
【0072】
まず、制御部22は、ステップS301として、検出部の検出結果(すなわち、物体の動き)に基づいて、3次元オブジェクトOB1全体を回転させる動きを検出したか(すなわち、全体回転を検出したか)、または、3次元オブジェクトOB1の一部を相対的に回転させる動きを検出したか(すなわち、相対回転を検出したか)を判定する。
【0073】
具体的には、ステップS301において、制御部22は、上述した図4に示すように、検出部を制御して3次元オブジェクトOB1を掴む位置に物体(上述した図4において、指F1および指F2を含む)があること(上述した図4において、片手で掴む状態)を検出し、かつ、当該物体が3次元オブジェクトOB1全体を回転させるよう移動したことを検出した場合)(ステップS301:全体回転)、上記全体回転させている状態にあると判定して、ステップS302へ進む。また、ステップS301において、制御部22は、上述した図5に示すように、検出部を制御して2箇所で3次元オブジェクトOB1を掴む2組の物体(上述した図5において、両手で掴む状態)を検出し、さらに当該2組の物体同士が対向する方向を中心に、2組の物体同士が相対的に回転させる動きを検出した場合(ステップS301:相対回転)、上記相対回転させている状態にあると判定して、ステップS303へ進む。
【0074】
制御部22は、ステップS301において全体回転を検出したと判定した場合(すなわち、検出部が、3次元オブジェクトOB1を掴む位置に物体(上述した図4において、指F1および指F2を含む)があり、かつ、物体が移動したことを検出した場合)(ステップS301:全体回転)、ステップS302として、物体の動きに応じて、3次元オブジェクトOB1を移動させるように制御する(全体回転表示制御)。つまり、制御部22は、検出部の検出結果に応じて3次元オブジェクトOB1全体をながめるように回転させるよう表示制御する。その後、処理を終了し、上述した図7におけるステップS201以降を再実行する。
【0075】
一方、制御部22は、ステップS301において相対回転を検出したと判定した場合(すなわち、検出部が、2箇所で3次元オブジェクトOB1を掴む2組の物体(上述した図5において、両手で掴む状態)を検出し、さらに当該2組の物体同士が対向する方向を中心に、2組の物体同士が相対的に回転させる動きを検出した場合)(ステップS301:相対回転)、ステップS303として、検出部の検出結果に応じて3次元オブジェクトOB1(例えば、判別可能な表記がなされた立方体の集合体)において、同一面の表記(色、マーク、文字、番号、絵柄等)を合わせるためにブロックをある軸を基点に回転させる。この動作は、3D表示した任意数の立方体の集合体を操作するアプリケーションにおいて、最も基本的なルールとなる。
【0076】
具体的には、ステップS303において、制御部は、上述した図5に示すように、検出部の検出結果に基づいて、6面のうち、直交する3方向のうち一の方向に直交する面においては、当該直交する面を構成する各要素同士の位置関係が変化せず、かつ、直交する3方向のうち他の方向と直交する複数の他の面においては、当該他の面を構成する各要素同士が、当該複数の他の面の間で入れ替わるように、一の方向を回転軸として、立方体を回転させるように制御する(相対回転表示制御)。より具体的には、上述した図5に示すように、検出部が、2箇所で3次元オブジェクトOB1を掴む2組の物体(上述した図5において、指F1と指F2を含む1組の物体、および、指F3と指F4を含む1組の物体)を検出し、さらに2組の物体同士が対向する方向を中心に、2組の物体同士が相対的に回転する動きを検出した場合、制御部22は、2組の物体同士が対向する方向を一の方向と定め、相対的に回転する動きの回転量に応じて、立方体を回転させるように制御する。このようにして、制御部22は、上述した図4および図5に示すような集合体(3次元オブジェクト)の各要素の位置を変化させる。すなわち、制御部22は、検出部の検出結果に応じて上述した図4および図5に示すような立体パズル(3次元オブジェクト)のピースの位置を変化させる。その後、処理を終了し、上述した図7におけるステップS201以降を再実行する。
【0077】
なお、本実施例は、3次元オブジェクトで表示する立体パズルに入力される操作と実行する処理との対応関係をより現実に即した処理とできるため、3次元オブジェクトを掴んだ場合の操作に対して実行する処理について説明したが、掴む以外の操作を検出し、入力された操作に応じた処理を実行してもよい。例えば、1つの物体の位置を検出し、その位置の移動に対応して3次元オブジェクトを回転させたり、2つの物体の位置を検出し、その2つの物体の位置と相対位置の変化に基づいて、3次元オブジェクトを構成する立方体を回転させる軸を特定し、特定した軸に基づいて、3次元オブジェクトを構成する立方体と立方体とを相対回転させてもよい。
【0078】
また、掴む操作と掴む以外の操作の両方を検出し、入力された操作に応じて処理を実行することがより好ましい。例えば、3×3×3型の立体パズルの場合、上述した図5に示すように、3次元オブジェクトOB1を片手で固定してもう片方の手で回す場合の他、両手で端のブロックを固定した状態で中央のブロックを指で押す操作が入力されたら、その指で押す方向(指の移動方向)に併せて中央のブロックを移動させてもよい。これにより、例えば、3×3×3型の立体パズルの場合、両端の軸以外の中央の軸)を基点にブロックを回転させたい場合に、3次元オブジェクトOB1を両手で選択し、第3の入力手段で中央のブロックを押すことで、所望の操作を入力することができる。このように、掴む以外の操作に対応して処理を実行することで、実際に物理的なブロックに対しての操作と同様に、空いている指や他のユーザの手を利用することによって回転させることが可能となる。この場合、検出部は、2箇所で3次元オブジェクトOB1を掴む2組の物体を検出し、さらに、当該2組の物体とは別の他の物体(例えば、空いている指や他のユーザの手等)を検出した場合、制御部22は、当該2組の物体のうち1組の物体(例えば、左手の親指と人差し指)と、当該2組の物体とは別の他の物体(例えば、右手の空いている中指)同士が対向する方向を一の方向と定め、相対的に回転する動きの回転量に応じて、立方体を回転させるように制御してもよい。
【0079】
また、本実施例において、制御部22は、上述したように、相対的に回転する動きの回転量に応じて、立方体を回転させるよう制御する際、さらに回転角度制御を行うものとする。具体的には、制御部22は、45度以上回転させたか否かにより、元に戻すかまたは90度回転したと判断する。この回転角度制御においては、基本的な操作ルールとして、実際に物理的なブロックが存在した場合であっても、最小の回転角度は90度であるため、仮想ブロックを回転させた際に、回転動作が実施されたか否かを45度基準で判定することとする。つまり、45度未満でブロックがリリースされた際は、ブロックを元の位置に戻すこととする。
【0080】
また、本実施例において、制御部22は、アプリケーション(ゲーム)をスタートしてから一定時間経過した後に、ブロックに対する操作補助を行うことが望ましい。携帯電話端末1側では、次にどのような入力を与えることでブロックを完成させられるかを把握しているため、制御部22は、ユーザが次にどの軸を起点にどれだけ回転させればよいかをヒントとして別の位置に3D表示させることできる。この場合、表示情報に限らず、音声、文章、光等による通知も可能とする。但し、ゲーム性を失わないように、操作補助を出すか否かの選択を可能とし、操作補助を出す場合も一定時間ブロックに対して入力がないことを検出してから表示するものとする。
【0081】
また、本実施例において、制御部22は、制限時間を表示することが望ましい。これにより、スタートから制限時間を設けることで完成までの時間を記録することを可能とする。また、本実施例において、制御部22は、立方体を回転させた回転数を表示することが望ましい。これにより、ブロックを回転させた回数をカウントして、完成までに何回回転させたかをカウントできる。この場合、コースレコードを設定し、ネットワーク上で共有できるものとする。
【0082】
次に、図9から図12を用いて、3次元オブジェクトを他の構成の立体パズルとした場合について説明する。ここで、図9は、複数の3次元オブジェクトに対する操作検出処理の処理手順の詳細を示すフローチャートである。図10は、複数の3次元オブジェクトの表示の一例を示す図である。図11は、図10に示す複数の3次元オブジェクトに対する選択と操作の一例を示す図である。図12は、図10に示す複数の3次元オブジェクトに対する選択と操作の別の一例を示す図である。図9は、上述した図7におけるステップS205の処理をより詳細に説明するものであり、複数の3次元オブジェクトに対する操作検出処理の処理手順の詳細を示すフローチャートである。
【0083】
ここで、図10から図12に示す制御対象および表示対象は、複数の3次元オブジェクトを入れ子にした状態で立体表示したものである。つまり、本実施例は、図10〜図12に示すように、実物の立体パズル(所謂、ルービックキューブ(登録商標)等)や従来の2D表示では実現できない、3D表示による複数のブロックを制御する一例である。ここで、図10に示すように、本実施例の複数の3次元オブジェクトは、内側の3次元オブジェクトOB1を2×2×2型の正六面体型立体パズル(所謂、ポケットキューブ)とし、外側の3次元オブジェクトOB2を4×4×4型の正六面体型立体パズル(所謂、ルービックリベンジ)とする。
【0084】
本実施例の場合も上述の図6におけるステップS101において、制御部22は、表示部32aを制御して、3次元オブジェクトを表示する。具体的には、図10に示すように、複数の3次元オブジェクト(内側の3次元オブジェクトOB1と外側の3次元オブジェクトOB2)を視認空間内に立体表示する。つまり、図10に示すように、表示部32aは、一方の3次元オブジェクトOB2内に他方の3次元オブジェクトOB1を入れ子にした状態で立体表示する。この場合、外側と内側の異なるブロックを選択し、外側と内側のブロックの両方において、同一面上の色を揃えた時点でクリアとするアプリケーションを想定している。
【0085】
次に、検出部で検出した操作に対して制御部で実行する処理について説明する。図9に示すように、制御部22は、ステップS401として、第1の3次元オブジェクトOB1(図10において、内側の3次元オブジェクトOB1)が選択されているか、または、第2の3次元オブジェクトOB2(図10において、外側の3次元オブジェクトOB2)が選択されているかを判定する。具体的には、ステップS401において、制御部22は、検出部によって検出された物体の座標と、3次元オブジェクト(第1の3次元オブジェクトOB1および第2の3次元オブジェクトOB2を含む)の座標を比較することで、第1の3次元オブジェクトOB1が選択されているか、または、第2の3次元オブジェクトOB2が選択されているかを判定する。
【0086】
ここで、制御部22は、ステップS401において第1の3次元オブジェクトOB1が選択されていると判定した場合(ステップS401:第1の3次元オブジェクト)、ステップS402として、図11に示すように、検出部を制御して3次元オブジェクトOB1を掴む位置に物体があること(上述した図11において、片手で掴む状態)を検出し、かつ、当該物体が3次元オブジェクトOB1全体を回転させるよう移動したことを検出する(すなわち、全体回転を検出する)。
【0087】
そして、制御部22は、図9に示すように、ステップS403として、物体の動きに応じて、3次元オブジェクトOB1を移動させるように制御する(全体回転表示制御)。つまり、制御部22は、検出部の検出結果に応じて3次元オブジェクトOB1全体をながめるように回転させるよう表示制御する。その後、処理を終了し、上述した図7におけるステップS201以降を再実行する。
【0088】
このように、複数の3次元オブジェクトを入れ子にした場合は、図11に示すように、表示部32aは、一方の3次元オブジェクトOB2内に他方の3次元オブジェクトOB1を入れ子にした状態で立体表示し、検出部が、他方の3次元オブジェクトOB1を掴む位置に物体があり、かつ、物体が移動したことを検出した場合、制御部22は、物体の動きに応じて、一方の3次元オブジェクトOB2を移動させずに、他方の3次元オブジェクトOB1のみを移動させるように制御する。つまり、内側の3次元オブジェクトOB1の全体を回しても外側の3次元オブジェクトOB2の全体は回らないものとする。
【0089】
一方、制御部22は、ステップS401において第2の3次元オブジェクトOB2が選択されていると判定した場合(ステップS401:第2の3次元オブジェクト)、ステップS404として、検出部の検出結果(すなわち、物体の動き)に基づいて、当該第2の3次元オブジェクトOB2全体を回転させる動きを検出したか(すなわち、全体回転を検出したか)、または、当該第2の3次元オブジェクトOB2の一部を相対的に回転させる動きを検出したか(すなわち、相対回転を検出したか)を判定する。
【0090】
具体的には、ステップS404において、制御部22は、検出部を制御して3次元オブジェクトOB2を掴む位置に物体があること(片手で掴む状態)を検出し、かつ、当該物体が3次元オブジェクトOB2全体を回転させるよう移動したことを検出した場合)(ステップS404:全体回転)、全体回転させている状態にあると判定して、ステップS405へ進む。また、ステップS404において、制御部22は、図12に示すように、検出部を制御して2箇所で第2の3次元オブジェクトOB2を掴む2組の物体(両手で掴む状態)を検出し、さらに当該2組の物体同士が対向する方向を中心に、2組の物体同士が相対的に回転させる動きを検出した場合(ステップS404:相対回転)、相対回転させている状態にあると判定して、ステップS406へ進む。
【0091】
制御部22は、ステップS404において全体回転を検出したと判定した場合(すなわち、検出部が、第2の3次元オブジェクトOB2を掴む位置に物体があり、かつ、物体が移動したことを検出した場合)(ステップS404:全体回転)、ステップS405として、物体の動きに応じて、第2の3次元オブジェクトOB2を移動させるように制御する(全体回転表示制御)。つまり、制御部22は、検出部の検出結果に応じて第2の3次元オブジェクトOB2全体をながめるように回転させるよう表示制御する。その後、処理を終了し、上述した図7におけるステップS201以降を再実行する。
【0092】
一方、制御部22は、ステップS404において相対回転を検出したと判定した場合(すなわち、図12に示すように、検出部が、2箇所で第2の3次元オブジェクトOB2を掴む2組の物体(両手で掴む状態)を検出し、さらに当該2組の物体同士が対向する方向を中心に、2組の物体同士が相対的に回転させる動きを検出した場合)(ステップS404:相対回転)、ステップS406として、図12に示すように、検出部の検出結果に応じて第2の3次元オブジェクトOB2(例えば、判別可能な表記がなされた立方体の集合体)において、同一面の表記(色、マーク、文字、番号、絵柄等)を合わせるためにブロックをある軸を基点に回転させる。
【0093】
具体的には、ステップS406において、制御部22は、図12に示すように、検出部の検出結果に基づいて、6面のうち、直交する3方向のうち一の方向に直交する面においては、当該直交する面を構成する各要素同士の位置関係が変化せず、かつ、直交する3方向のうち他の方向と直交する複数の他の面においては、当該他の面を構成する各要素同士が、当該複数の他の面の間で入れ替わるように、一の方向を回転軸として、立方体を回転させるように制御する(相対回転表示制御)。この際、図12に示すように、検出部が、2箇所で第2の3次元オブジェクトOB2を掴む2組の物体を検出し、さらに2組の物体同士が対向する方向を中心に、2組の物体同士が相対的に回転する動きを検出した場合、制御部22は、2組の物体同士が対向する方向を一の方向と定め、相対的に回転する動きの回転量に応じて、立方体を回転させるように制御する。
【0094】
より具体的には、複数の3次元オブジェクトを入れ子にした場合は、図12に示すように、表示部32aは、第2の3次元オブジェクトOB2内に第1の3次元オブジェクトOB1を入れ子にした状態で立体表示し、検出部が、複数の3次元オブジェクトOB1,OB2のうち一方の第2の3次元オブジェクトOB2に対して、2箇所で一方の第2の3次元オブジェクトOB2を掴む2組の物体を検出し、さらに2組の物体同士が対向する方向を中心に、2組の物体同士が相対的に回転する動きを検出した場合、制御部22は、2組の物体同士が対向する方向を一の方向と定め、第2の3次元オブジェクトOB2に対する相対的に回転する動きの回転量に応じて、第2の3次元オブジェクトOB2を構成する立方体と、複数の3次元オブジェクトOB1,OB2のうち第1の3次元オブジェクトOB1を構成する立方体とが連動して回転するように制御する。つまり、外側の第2の3次元オブジェクトOB2の列を回すと内側の第1の3次元オブジェクトOB1の対応する列も回るものとする。その後、処理を終了し、上述した図7におけるステップS201以降を再実行する。
【0095】
次に、図13および図14を用いて、3次元オブジェクトを他の構成の立体パズルをした場合について説明する。ここで、図13は、複数の3次元オブジェクトの表示の別の一例を示す図である。図14は、図13に示す複数の3次元オブジェクトに対する選択と操作の一例を示す図である。図13および図14は、複数の3次元オブジェクトを別個にした場合である。図13および図14に示す例も、実物の立体パズル(所謂、ルービックキューブ(登録商標)等)や従来の2D表示では実現できない、3D表示による複数のブロックを制御する一例である。具体的には、2つの3次元オブジェクト(立体パズル)を設定した規則に基づいて連動して回転させる。
【0096】
本実施例の場合も上述の図6におけるステップS101において、制御部22は、表示部32aを制御して、3次元オブジェクトを表示する。具体的には、図13に示すように、表示部32aは、複数の3次元オブジェクト(3次元オブジェクトOB1と3次元オブジェクトOB2)をそれぞれ同一の視認空間内で並べて立体表示する。図13に示す3次元オブジェクトOB1(ブロックA)と3次元オブジェクトOB2(ブロックB)とは、2×2×2型の正六面体型立体パズル(所謂、ポケットキューブ)である。この場合、ブロックAを選択し、ブロックAとブロックBの両方において、同一面上の色を揃えた時点でクリアとするアプリケーションを想定している。
【0097】
次に、検出部で検出した操作に対して制御部で実行する処理について説明する。なお、本実施例の操作検出処理は、上述した複数の3次元オブジェクトを入れ子にした状態で立体表示する場合と基本的に同様であるため、以下の図9におけるステップS403とステップS406以外の各ステップの説明は省略する。
【0098】
ステップS402において、検出部が、第1の3次元オブジェクトOB1(図13において、ブロックA)を掴む位置に物体があり、かつ、物体が移動したことを検出した後、制御部22は、ステップS403として、第1の3次元オブジェクトOB1に対する物体の動きに応じて、第1の3次元オブジェクトOB1と、第2の3次元オブジェクトOB2(図13において、ブロックB)とが連動して移動するように制御する(全体回転表示制御)。この場合、図13に示す第1の3次元オブジェクトOB1(ブロックA)においては、特定の軸を回すことは不可とし、唯一ブロック全体を回すことは可能とするものとする。
【0099】
また、ステップS404において、図14に示すように、検出部が複数の3次元オブジェクトOB1,OB2のうち第2の3次元オブジェクトOB2(図14において、ブロックB)に対して、2箇所で一方の第2の3次元オブジェクトOB2を掴む2組の物体を検出し、さらに2組の物体同士が対向する方向を中心に、2組の物体同士が相対的に回転する動きを検出した場合(ステップS404:相対回転)、制御部22は、ステップS406として、2組の物体同士が対向する方向を一の方向と定め、第2の3次元オブジェクトOB2に対する相対的に回転する動きの回転量に応じて、第2の3次元オブジェクトOB2を構成する立方体と、複数の3次元オブジェクトOB1,OB2のうち第1の3次元オブジェクトOB1を構成する立方体とが連動して回転するように制御する(相対回転表示制御)。つまり、図14に示すように第2の3次元オブジェクトOB2(ブロックB)の列を回すと第1の3次元オブジェクトOB1(ブロックA)の対応する列も回るものとする。
【0100】
このように、ブロックAとブロックBは互いにブロックに対して影響しあう関係になっており、さらに、ブロックBの向きを変化させることで、過去のブロックAとブロックBの位置関係が再度新しい関係として紐付けされる。このように、本実施例によれば、3Dアプリケーションを通して、複数の3次元オブジェクトの同時選択ができ、さらに複数の3次元オブジェクトに対して異なる入力を行うことができる。
【0101】
上述してきたように、第1の実施例では、指等の物体の間に3次元オブジェクトが位置する状態が所定時間以上継続した場合に3次元オブジェクトが選択されることとしたので、3次元オブジェクトの選択を直感的で分かりやすい操作により実現することができる。
【0102】
なお、図15に示すように、第1の物体と第2の物体のうち少なくとも一方が3次元オブジェクトに接触している状態が所定時間以上継続することを、3次元オブジェクトを選択する条件としてもよい。3次元オブジェクトへの接触を選択の条件とすることにより、複数の3次元オブジェクトが近接して表示されている場合に、利用者が所望の3次元オブジェクトを選択し易くなる。
【0103】
図16は、3次元オブジェクトへの接触を選択の条件とする場合の選択検出処理の処理手順を示すフローチャートである。図16に示すように、制御部22は、まず、ステップS501として、3次元オブジェクトを立体的に表示する。具体的には、本実施例において、制御部22は、上述した図4および図5等に示すように、複数の立方体が直交する3方向に沿って配列されて構成された集合体(3次元オブジェクト)を、表示部32aによって視認空間内に立体表示する。すなわち、制御部22は、表示部32aを制御して視認空間内に立体パズル(3次元オブジェクト)を立体表示する。
【0104】
続いて、制御部22は、ステップS502として、検出部、すなわち、撮影部40および42によって第1の物体および第2の物体が検出されたかを判定する。すなわち、制御部22は、検出部を制御して視認空間内における物体(第1の物体および第2の物体を含む)の動きを検出する。具体的には、本実施例において、制御部22は、上述した図4に示すように、検出部を制御して集合体を掴む位置に物体(第1の物体および第2の物体を含む)があること(上述した図4において、片手で掴む状態)を検出する。また、制御部22は、上述した図5に示すように、検出部を制御して2箇所で集合体を掴む2組の物体(上述した図5において、両手で掴む状態)を検出する。なお、図示しないが、制御部22は、検出部を制御して2箇所で集合体を掴む2組の物体(両手で掴む状態)を検出し、さらに、当該2組の物体とは別の他の物体(例えば、空いている指や他のユーザの手等)を検出してもよい。
【0105】
第1の物体および第2の物体が検出されない場合(ステップS502,No)、制御部22は、ステップS510として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS510,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS510,No)、制御部22は、ステップS502以降を再実行する。
【0106】
第1の物体および第2の物体が検出された場合(ステップS502,Yes)、制御部22は、ステップS503として、表示されている3次元オブジェクトの中から第1の物体または第2の物体の少なくとも一方に接触している3次元オブジェクトを探す。該当する3次元オブジェクトがない場合(ステップS504,No)、制御部22は、ステップS510として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS510,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS510,No)、制御部22は、ステップS502以降を再実行する。
【0107】
第1の物体または第2の物体の少なくとも一方に接触している3次元オブジェクトがみつかった場合(ステップS504,Yes)、制御部22は、ステップS505として、第1の物体と第2の物体との間に3次元オブジェクトが位置している時間を取得する。取得した時間が所定時間未満の場合(ステップS506,No)、制御部22は、ステップS510として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS510,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS510,No)、制御部22は、ステップS502以降を再実行する。
【0108】
取得した時間が所定時間以上の場合(ステップS506,Yes)、制御部22は、ステップS507として、第1の物体と第2の物体の距離を算出する。また、制御部22は、ステップS508として、第1の物体と第2の物体との間に表示されている3次元オブジェクトを選択状態にする。そして、制御部22は、ステップS509として、上述した操作検出処理を実行し、その中で、選択状態にある3次元オブジェクトを検出された操作に応じて変化させる。操作検出処理が終了した後、制御部22は、ステップS510として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS510,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS510,No)、制御部22は、ステップS502以降を再実行する。
【実施例2】
【0109】
以下に、第2の実施例について説明する。第2の実施例に係る携帯電話端末1は、制御プログラム24aが提供する機能に基づいて実行する選択検出処理の処理手順が第1の実施例と異なるものの、ハードウェアとして見ると、第1の実施例に係る携帯電話端末1と同一の構成を有する。そこで、第2の実施例では、第1の実施例と重複する説明は省略し、主として、選択検出処理について説明する。
【0110】
まず、図17を参照しながら、3次元オブジェクトに対する操作の検出について説明する。図17は、3次元オブジェクトに対する操作の検出について説明するための図である。図17に示すステップS21では、タッチパネル32によって、視認空間中に、3次元オブジェクトOB1が立体的に表示されている。また、3次元オブジェクトOB1を選択するために、利用者は、指F1と指F2の間に3次元オブジェクトOB1が位置するように指F1および指F2を移動させている。
【0111】
携帯電話端末1は、視認空間内で2つの物体が検出され、かつ、それらの2つの物体の間に3次元オブジェクトOB1が位置する場合、2つの物体の距離の変化を監視する。そして、距離が所定時間以上ほぼ一定であれば、3次元オブジェクトOB1が選択されたと判定し、3次元オブジェクトOB1を選択状態にする。そして、携帯電話端末1は、3次元オブジェクトOB1の表示態様を変更する等して、3次元オブジェクトOB1が選択状態になったことを利用者に通知する。
【0112】
携帯電話端末1が2つの物体の距離の変化を監視している間、2つの物体は、3次元オブジェクトOB1を挟む位置に留まる必要はない。すなわち、利用者は、ステップS21に示したように指F1と指F2の間に3次元オブジェクトOB1が位置するように指F1および指F2を移動させた後、その状態を保つことなく、指F1および指F2を他の位置へ移動させて構わない。
【0113】
ステップS21の状態から、ステップS22に示すように、利用者が、指F1と指F2の距離D1をほぼ一定に保ったまま移動させたものとする。この場合、携帯電話端末1は、ステップS23に示すように、指F1と指F2の距離D1がほぼ一定に保たれた状態が所定時間以上継続した段階で、3次元オブジェクトOB1を選択状態にする。そして、携帯電話端末1は、3次元オブジェクトOB1を、あたかもステップS21の段階で既に選択されていたかのように、指F1および指F2の間に移動させる。ステップS21からステップS23までの指F1と指F2の動きを記憶しておき、記憶しておいた動きに合わせて3次元オブジェクトOB1を回転等させてもよい。その後、携帯電話端末1は、指F1および指F2の動きに応じて、3次元オブジェクトOB1に移動、回転、変形、消失等の変化を加える。
【0114】
このように、2つの物体が3次元オブジェクトを挟む位置に一旦移動した後は、物体がその場に留まらなくても3次元オブジェクトを選択可能にすることにより、利用者は、3次元オブジェクトを選択した後の操作を迅速に開始することができる。
【0115】
次に、図18を参照しながら、3次元オブジェクトの操作に関して携帯電話端末1が実行する処理手順について説明する。図18は、3次元オブジェクトの選択検出処理の処理手順を示すフローチャートである。図18に示す処理手順は、所定の操作が検出されたこと等を契機として、制御部22が制御プログラム24aを実行することによって実現される。
【0116】
図18に示すように、制御部22は、まず、ステップS601として、3次元オブジェクトを立体的に表示する。具体的には、本実施例において、制御部22は、上述した図4および図5等に示すように、複数の立方体が直交する3方向に沿って配列されて構成された集合体(3次元オブジェクト)を、表示部32aによって視認空間内に立体表示する。すなわち、制御部22は、表示部32aを制御して視認空間内に立体パズル(3次元オブジェクト)を立体表示する。
【0117】
続いて、制御部22は、ステップS602として、検出部、すなわち、撮影部40および42によって第1の物体および第2の物体が検出されたかを判定する。すなわち、制御部22は、検出部を制御して視認空間内における物体(第1の物体および第2の物体を含む)の動きを検出する。具体的には、本実施例において、制御部22は、上述した図4に示すように、検出部を制御して集合体を掴む位置に物体(第1の物体および第2の物体を含む)があること(上述した図4において、片手で掴む状態)を検出する。また、制御部22は、上述した図5に示すように、検出部を制御して2箇所で集合体を掴む2組の物体(上述した図5において、両手で掴む状態)を検出する。なお、図示しないが、制御部22は、検出部を制御して2箇所で集合体を掴む2組の物体(両手で掴む状態)を検出し、さらに、当該2組の物体とは別の他の物体(例えば、空いている指や他のユーザの手等)を検出してもよい。
【0118】
第1の物体および第2の物体が検出されない場合(ステップS602,No)、制御部22は、ステップS614として、仮選択状態の3次元オブジェクトがあれば、その3次元オブジェクトの仮選択状態を解除する。仮選択状態とは、2つの物体の間に3次元オブジェクトが表示されている状態が検出された後、2つの物体の距離がほぼ一定に保たれているかが監視されている状態である。
【0119】
そして、制御部22は、ステップS615として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS615,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS615,No)、制御部22は、ステップS602以降を再実行する。
【0120】
第1の物体および第2の物体が検出された場合(ステップS602,Yes)、制御部22は、ステップS603として、仮選択状態の3次元オブジェクトがあるか否かを判定する。仮選択状態の3次元オブジェクトがない場合(ステップS603,No)、制御部22は、ステップS604として、表示されている3次元オブジェクトの中から第1の物体と第2の物体との間に表示されている3次元オブジェクトを探す。
【0121】
該当する3次元オブジェクトがない場合(ステップS605,No)、制御部22は、ステップS615として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS615,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS615,No)、制御部22は、ステップS602以降を再実行する。
【0122】
第1の物体と第2の物体との間に表示されている3次元オブジェクトがみつかった場合(ステップS605,Yes)、制御部22は、ステップS606として、第1の物体と第2の物体との間に表示されている3次元オブジェクトを仮選択状態にする。また、制御部22は、ステップS607として、第1の物体と第2の物体の距離を算出する。
【0123】
そして、制御部22は、ステップS615として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS615,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS615,No)、制御部22は、ステップS602以降を再実行する。
【0124】
第1の物体および第2の物体が検出され、かつ、仮選択状態の3次元オブジェクトがある場合(ステップS603,Yes)、制御部22は、ステップS608として、第1の物体と第2の物体の距離を算出する。そして、制御部22は、ステップS609として、距離がほぼ一定であるかを判定する。距離がほぼ一定でない場合(ステップS609,No)、制御部22は、ステップS614として、仮選択状態の3次元オブジェクトの仮選択状態を解除する。
【0125】
そして、制御部22は、ステップS615として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS615,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS615,No)、制御部22は、ステップS602以降を再実行する。
【0126】
第1の物体と第2の物体の距離がほぼ一定の場合(ステップS609,Yes)、制御部22は、ステップS610として、距離がほぼ一定に保たれている期間が所定時間以上であるかを判定する。距離がほぼ一定に保たれている期間が所定時間未満の場合(ステップS610,No)、制御部22は、ステップS615として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS615,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS615,No)、制御部22は、ステップS602以降を再実行する。
【0127】
距離がほぼ一定に保たれている期間が所定時間以上の場合(ステップS610,Yes)、制御部22は、ステップS611として、第1の物体と第2の物体との間に表示されている3次元オブジェクトを選択状態にする。また、制御部22は、ステップS612として、第1の物体と第2の物体との間に3次元オブジェクトを移動させる。そして、制御部22は、ステップS613として、上述の図7〜図9に示した操作検出処理を実行し、その中で、選択状態にある3次元オブジェクトを検出された操作に応じて変化させる。
【0128】
操作検出処理が終了した後、制御部22は、ステップS615として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS615,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS615,No)、制御部22は、ステップS602以降を再実行する。
【0129】
上述してきたように、第2の実施例では、指等の物体の間に3次元オブジェクトが位置した後、物体の距離が所定時間以上ほぼ一定に保たれた場合に3次元オブジェクトが選択されることとしたので、利用者は、3次元オブジェクトの選択後の操作を迅速に開始することができる。
【0130】
なお、図19に示すステップS31からステップS33のように、第1の物体と第2の物体のうち少なくとも一方が3次元オブジェクトに接触した後に第1の物体と第2の物体の距離が所定時間以上ほぼ一定に保たれることを、3次元オブジェクトを選択する条件としてもよい。ここで、図19は、3次元オブジェクトに対する操作の検出の他の例について説明するための図である。3次元オブジェクトへの接触を選択の条件とすることにより、複数の3次元オブジェクトが近接して表示されている場合に、利用者が所望の3次元オブジェクトを選択し易くなる。
【0131】
図20は、3次元オブジェクトへの接触を選択の条件とする場合の選択検出処理の処理手順を示すフローチャートである。図20に示すように、制御部22は、まず、ステップS701として、3次元オブジェクトを立体的に表示する。具体的には、本実施例において、制御部22は、上述した図4および図5等に示すように、複数の立方体が直交する3方向に沿って配列されて構成された集合体(3次元オブジェクト)を、表示部32aによって視認空間内に立体表示する。すなわち、制御部22は、表示部32aを制御して視認空間内に立体パズル(3次元オブジェクト)を立体表示する。
【0132】
続いて、制御部22は、ステップS702として、検出部、すなわち、撮影部40および42によって第1の物体および第2の物体が検出されたかを判定する。すなわち、制御部22は、検出部を制御して視認空間内における物体(第1の物体および第2の物体を含む)の動きを検出する。具体的には、本実施例において、制御部22は、上述した図4に示すように、検出部を制御して集合体を掴む位置に物体(第1の物体および第2の物体を含む)があること(上述した図4において、片手で掴む状態)を検出する。また、制御部22は、上述した図5に示すように、検出部を制御して2箇所で集合体を掴む2組の物体(上述した図5において、両手で掴む状態)を検出する。なお、図示しないが、制御部22は、検出部を制御して2箇所で集合体を掴む2組の物体(両手で掴む状態)を検出し、さらに、当該2組の物体とは別の他の物体(例えば、空いている指や他のユーザの手等)を検出してもよい。
【0133】
第1の物体および第2の物体が検出されない場合(ステップS702,No)、制御部22は、ステップS714として、仮選択状態の3次元オブジェクトがあれば、その3次元オブジェクトの仮選択状態を解除する。仮選択状態とは、2つの物体の間に3次元オブジェクトが表示されている状態が検出された後、2つの物体の距離がほぼ一定に保たれているかが監視されている状態である。
【0134】
そして、制御部22は、ステップS715として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS715,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS715,No)、制御部22は、ステップS702以降を再実行する。
【0135】
第1の物体および第2の物体が検出された場合(ステップS702,Yes)、制御部22は、ステップS703として、仮選択状態の3次元オブジェクトがあるか否かを判定する。仮選択状態の3次元オブジェクトがない場合(ステップS703,No)、制御部22は、ステップS704として、表示されている3次元オブジェクトの中から第1の物体または第2の物体の少なくとも一方に接触している3次元オブジェクトを探す。
【0136】
該当する3次元オブジェクトがない場合(ステップS705,No)、制御部22は、ステップS715として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS715,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS715,No)、制御部22は、ステップS702以降を再実行する。
【0137】
第1の物体または第2の物体の少なくとも一方に接触している3次元オブジェクトがみつかった場合(ステップS705,Yes)、制御部22は、ステップS706として、第1の物体と第2の物体との間に表示されている3次元オブジェクトを仮選択状態にする。また、制御部22は、ステップS707として、第1の物体と第2の物体の距離を算出する。
【0138】
そして、制御部22は、ステップS715として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS715,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS715,No)、制御部22は、ステップS702以降を再実行する。
【0139】
第1の物体および第2の物体が検出され、かつ、仮選択状態の3次元オブジェクトがある場合(ステップS703,Yes)、制御部22は、ステップS708として、第1の物体と第2の物体の距離を算出する。そして、制御部22は、ステップS709として、距離がほぼ一定であるかを判定する。距離がほぼ一定でない場合(ステップS709,No)、制御部22は、ステップS714として、仮選択状態の3次元オブジェクトの仮選択状態を解除する。
【0140】
そして、制御部22は、ステップS715として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS715,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS715,No)、制御部22は、ステップS702以降を再実行する。
【0141】
第1の物体と第2の物体の距離がほぼ一定の場合(ステップS709,Yes)、制御部22は、ステップS710として、距離がほぼ一定に保たれている期間が所定時間以上であるかを判定する。距離がほぼ一定に保たれている期間が所定時間未満の場合(ステップS710,No)、制御部22は、ステップS715として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS715,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS715,No)、制御部22は、ステップS702以降を再実行する。
【0142】
距離がほぼ一定に保たれている期間が所定時間以上の場合(ステップS710,Yes)、制御部22は、ステップS711として、第1の物体と第2の物体との間に表示されている3次元オブジェクトを選択状態にする。また、制御部22は、ステップS712として、第1の物体と第2の物体との間に3次元オブジェクトを移動させる。そして、制御部22は、ステップS713として、上述の図7〜図9に示した操作検出処理を実行し、その中で、選択状態にある3次元オブジェクトを検出された操作に応じて変化させる。
【0143】
操作検出処理が終了した後、制御部22は、ステップS715として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS715,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS715,No)、制御部22は、ステップS702以降を再実行する。
【実施例3】
【0144】
以下に、第3の実施例について説明する。第3の実施例に係る携帯電話端末1は、制御プログラム24aが提供する機能に基づいて実行する選択検出処理および操作検出処理の処理手順が第1の実施例と異なるものの、ハードウェアとして見ると、第1の実施例に係る携帯電話端末1と同一の構成を有する。そこで、第3の実施例では、第1の実施例と重複する説明は省略し、主として、選択検出処理および操作検出処理について説明する。
【0145】
まず、図21および図22を参照しながら、3次元オブジェクトに対する操作の検出について説明する。図21および図22は、3次元オブジェクトに対する操作の検出について説明するための図である。図21に示すステップS41では、タッチパネル32によって、視認空間中に、3次元オブジェクトOB1が立体的に表示されている。また、3次元オブジェクトOB1を選択するために、利用者は、指F1と指F2の間に3次元オブジェクトOB1が位置するように指F1および指F2を移動させている。
【0146】
携帯電話端末1は、視認空間内で2つの物体が検出され、かつ、それらの2つの物体の間に3次元オブジェクトOB1が位置する場合、2つの物体の距離の変化を監視する。そして、距離が所定時間以上ほぼ一定であれば、3次元オブジェクトOB1が選択されたと判定し、3次元オブジェクトOB1を選択状態にする。そして、携帯電話端末1は、3次元オブジェクトOB1の表示態様を変更する等して、3次元オブジェクトOB1が選択状態になったことを利用者に通知する。
【0147】
携帯電話端末1が2つの物体の距離の変化を監視している間、2つの物体は、3次元オブジェクトOB1を挟む位置に留まる必要はない。すなわち、利用者は、ステップS41に示したように指F1と指F2の間に3次元オブジェクトOB1が位置するように指F1および指F2を移動させた後、その状態を保つことなく、指F1および指F2を他の位置へ移動させて構わない。
【0148】
ステップS41の状態から、ステップS42に示すように、利用者が、指F1と指F2の距離D1をほぼ一定に保ったまま移動させたものとする。この場合、携帯電話端末1は、指F1と指F2の間に3次元オブジェクトOB1が表示されていることが検出された段階、すなわち、ステップS41の段階から、指F1および指F2の動きに応じて、3次元オブジェクトOB1に移動、回転、変形、消失等の変化を加える。そして、携帯電話端末1は、ステップS43に示すように、指F1と指F2の距離D1がほぼ一定に保たれた状態が所定時間以上継続した段階で、3次元オブジェクトOB1を選択状態にする。
【0149】
なお、図22のステップS51からステップS53に示すように、所定時間が経過する前に指F1と指F2の距離D1が離れた場合、すなわち、選択が行われなかった場合、携帯電話端末1は、それまでに加えた変化と逆の変化を3次元オブジェクトOB1に加える。その結果、3次元オブジェクトOB1は、ステップS51の段階と同じ位置に同じ状態で表示される。逆の変化を3次元オブジェクトOB1に加える速度は、それまでに3次元オブジェクトOB1に変化が加えられた速度よりも速くてもよい。すなわち、高速に逆再生しているかのように3次元オブジェクトOB1を逆変化させてもよい。
【0150】
このように、2つの物体の間に3次元オブジェクトが表示されていることが検出された段階から3次元オブジェクトに変化を加え始めることにより、利用者は、3次元オブジェクトが選択されつつあることを選択が確定する前から認識することができる。その結果、利用者は、意図した3次元オブジェクトが選択されたか否かを早期に知ることができる。なお、2つの物体の距離がほぼ一定に保たれた状態が所定時間以上継続するまでは、変化を加えられている3次元オブジェクトを通常時とも選択状態とも異なる態様(例えば、半透明)で表示することにより、利用者が3次元オブジェクトの状態を判別しやすくしてもよい。
【0151】
次に、図23および図24を参照しながら、3次元オブジェクトの操作に関して携帯電話端末1が実行する処理手順について説明する。図23は、3次元オブジェクトの選択検出処理の処理手順を示すフローチャートである。図23に示す処理手順は、所定の操作が検出されたこと等を契機として、制御部22が制御プログラム24aを実行することによって実現される。
【0152】
図23に示すように、制御部22は、まず、ステップS801として、3次元オブジェクトを立体的に表示する。具体的には、本実施例において、制御部22は、上述した図4および図5等に示すように、複数の立方体が直交する3方向に沿って配列されて構成された集合体(3次元オブジェクト)を、表示部32aによって視認空間内に立体表示する。すなわち、制御部22は、表示部32aを制御して視認空間内に立体パズル(3次元オブジェクト)を立体表示する。
【0153】
続いて、制御部22は、ステップS802として、検出部、すなわち、撮影部40および42によって第1の物体および第2の物体が検出されたかを判定する。すなわち、制御部22は、検出部を制御して視認空間内における物体(第1の物体および第2の物体を含む)の動きを検出する。具体的には、本実施例において、制御部22は、上述した図4に示すように、検出部を制御して集合体を掴む位置に物体(第1の物体および第2の物体を含む)があること(上述した図4において、片手で掴む状態)を検出する。また、制御部22は、上述した図5に示すように、検出部を制御して2箇所で集合体を掴む2組の物体(上述した図5において、両手で掴む状態)を検出する。なお、図示しないが、制御部22は、検出部を制御して2箇所で集合体を掴む2組の物体(両手で掴む状態)を検出し、さらに、当該2組の物体とは別の他の物体(例えば、空いている指や他のユーザの手等)を検出してもよい。
【0154】
第1の物体および第2の物体が検出されない場合(ステップS802,No)、制御部22は、ステップS810として、仮選択状態の3次元オブジェクトがあれば、その3次元オブジェクトの仮選択状態を解除する。
【0155】
そして、制御部22は、ステップS811として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS811,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS811,No)、制御部22は、ステップS802以降を再実行する。
【0156】
第1の物体および第2の物体が検出された場合(ステップS802,Yes)、制御部22は、ステップS803として、仮選択状態の3次元オブジェクトがあるか否かを判定する。仮選択状態の3次元オブジェクトがない場合(ステップS803,No)、制御部22は、ステップS804として、表示されている3次元オブジェクトの中から第1の物体と第2の物体との間に表示されている3次元オブジェクトを探す。
【0157】
該当する3次元オブジェクトがない場合(ステップS805,No)、制御部22は、ステップS811として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS811,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS811,No)、制御部22は、ステップS802以降を再実行する。
【0158】
第1の物体と第2の物体との間に表示されている3次元オブジェクトがみつかった場合(ステップS805,Yes)、制御部22は、ステップS806として、第1の物体と第2の物体との間に表示されている3次元オブジェクトを仮選択状態にする。また、制御部22は、ステップS807として、第1の物体と第2の物体の距離を算出する。
【0159】
そして、制御部22は、ステップS811として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS811,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS811,No)、制御部22は、ステップS802以降を再実行する。
【0160】
第1の物体および第2の物体が検出され、かつ、仮選択状態の3次元オブジェクトがある場合(ステップS803,Yes)、制御部22は、ステップS808として、第1の物体と第2の物体の少なくとも一方が移動しているかを判定する。第1の物体と第2の物体のいずれも移動していない場合(ステップS808,No)、制御部22は、ステップS811として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS811,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS811,No)、制御部22は、ステップS802以降を再実行する。
【0161】
第1の物体と第2の物体の少なくとも一方が移動している場合(ステップS808,Yes)、制御部22は、ステップS809として、図24に示す操作検出処理を実行し、その中で、選択状態にある3次元オブジェクトを検出された操作に応じて変化させる。
【0162】
操作検出処理が終了した後、制御部22は、ステップS811として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS811,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS811,No)、制御部22は、ステップS802以降を再実行する。
【0163】
図24は、操作検出処理の処理手順を示すフローチャートである。図24に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。図24に示すように、制御部22は、まず、ステップS901として、第1の物体と第2の物体の距離を算出する。そして、制御部22は、ステップS902として、操作検出処理の開始時点以降の第1の物体と第2の物体の距離がほぼ一定であるかを判定する。
【0164】
第1の物体と第2の物体の距離がほぼ一定の場合(ステップS902,Yes)、制御部22は、ステップS903として、操作検出処理が開始されてから所定時間が経過したかを判定する。所定時間が経過していた場合(ステップS903,Yes)、制御部22は、ステップS904として、仮選択状態の3次元オブジェクトがあれば、その3次元オブジェクトを選択状態にする。所定時間が経過していない場合(ステップS903,No)、ステップS904は実行されない。
【0165】
続いて、制御部22は、ステップS905として、第1の物体および第2の物体の移動速度を算出する。そして、制御部22は、ステップS906として、算出した移動速度が閾値以下であるかを判定する。移動速度が閾値以下の場合(ステップS906,Yes)、制御部22は、ステップS907として、検出された第1の物体および第2の物体の動きに応じて3次元オブジェクトを移動させたり回転させたりする。具体的には、本実施例において、制御部22は、ステップS907において、検出部の検出結果(すなわち、物体の動き)に応じて上述した図4,5および図10〜図14に示すような集合体(3次元オブジェクト)の各要素の位置を変化させる。すなわち、制御部22は、検出部の検出結果に応じて上述した図4,5および図10〜図14に示すような立体パズル(3次元オブジェクト)のピースの位置を変化させる。そして、制御部22は、ステップS901以降を再実行する。
【0166】
移動速度が閾値より速い場合(ステップS906,No)、制御部22は、ステップS908として、3次元オブジェクトのアプリケーション(ゲーム)をリセットする。つまり、本実施例において、3次元オブジェクトが立体パズルであるので、制御部22は、当該立体パズルのゲーム進行中に当該3次元オブジェクトを消去することで、ゲームをスタート時にリセットする。具体的には、制御部22は、3次元オブジェクトを消去するに際して、3次元オブジェクトが第1の物体および第2の物体の移動方向へ向けて飛んでいくようにアニメーション表示してもよい。そして、制御部22は、操作検出処理を終了させる。
【0167】
第1の物体と第2の物体の距離がほぼ一定でない場合(ステップS902,No)、制御部22は、ステップS909として、距離が、3次元オブジェクトの選択時、すなわち、操作検出処理の開始時点よりも拡大しているかを判定する。距離が拡大している場合(ステップS909,Yes)、制御部22は、ステップS910として、第1の物体と第2の物体の間に表示されていた3次元オブジェクトが仮選択状態であるかを判定する。
【0168】
3次元オブジェクトが仮選択状態である場合(ステップS910,Yes)、制御部22は、ステップS911として、3次元オブジェクトの仮選択状態を解除する。また、制御部22は、ステップS912として、3次元オブジェクトを逆変化させて元の状態に戻す。そして、制御部22は、操作検出処理を終了させる。
【0169】
3次元オブジェクトが仮選択状態でない場合、すなわち、選択状態の場合(ステップS910,No)、制御部22は、ステップS913として、3次元オブジェクトの選択状態を解除する。そして、制御部22は、操作検出処理を終了させる。
【0170】
なお、本実施例においては、重力を考慮せず携帯電話端末1のタッチパネル32の上面で3次元オブジェクトが浮いている状態として制御することを基本ルールとしているが、重力を考慮してユーザが3次元オブジェクトを掴んでいないと下に落ちるよう制御してもよい。具体的には、制御部22は、ステップS913の後、選択状態を解除した3次元オブジェクトを一定時間経過後重力等に従って移動させて、3次元オブジェクトを当初の配置場所(例えば、ゲームスタート時のタッチパネル32上の位置)に戻すこととしてもよい。ここで、制御部22は、実際の重力が働く場合よりも3次元オブジェクトをゆっくりと移動させてもよい。そして、制御部22は、操作検出処理を終了させる。なお、ここでの移動は、例えば、3次元オブジェクトが重力に従って落下し、床やテーブルの上で停止するように表示される。3次元オブジェクトの動きを停止させる前に、3次元オブジェクトの弾性や床やテーブルの硬度に応じて3次元オブジェクトをバウンドさせてもよい。3次元オブジェクトが床やテーブルに衝突するときの衝撃の大きさを算出し、衝撃が所定の値よりも大きい場合には3次元オブジェクトを破損したように表示してもよい。この場合、上記ステップS908の処理と同様、ゲームはスタート時にリセットされるものとする。
【0171】
なお、第1の物体と第2の物体の距離が3次元オブジェクトの選択時よりも拡大している場合に、3次元オブジェクトの選択状態を解除せずに3次元オブジェクトの表示サイズを拡大させてもよい。この場合、3次元オブジェクトの選択状態の解除の処理と区別するため、制御部22は、上述の選択検出処理において2組の物体が3次元オブジェクトを選択して、本操作検出処理において物体が3次元オブジェクトを引き伸ばす動きを検出した場合(すなわち、両手で3次元オブジェクトを掴んで引き伸ばす動作を検出した場合)にのみ、3次元オブジェクトの選択状態を解除せずに3次元オブジェクトの表示サイズを拡大させるものとする。
【0172】
一方、第1の物体と第2の物体の距離が3次元オブジェクトの選択時よりも縮まっている場合(ステップS909,No)、制御部22は、ステップS914として、距離に応じて3次元オブジェクトの表示サイズを縮小する。これにより、ユーザは視認空間内に立体表示されている3次元オブジェクトの表示サイズをユーザの好みに合うサイズに縮小できる。そして、制御部22は、ステップS901以降を再実行する。3次元オブジェクトの表示サイズを縮小させる程度は、例えば、3次元オブジェクトに属性として設定されている硬度に応じて変更してもよい。なお、第1の物体と第2の物体の距離が3次元オブジェクトの選択時よりも著しく縮まっている場合に、すなわち、第1の物体と第2の物体の距離が所定の値以下になった場合に、3次元オブジェクトを破損したように表示してもよい。例えば、本実施例においては、上記ステップS908において上述した3次元オブジェクトを握りつぶす操作のように、3次元オブジェクトである立体パズルのゲーム進行中に当該3次元オブジェクトを消去することで、ゲームをスタート時にリセットしてもよい。
【0173】
上述してきたように、第3の実施例では、指等の物体の間に3次元オブジェクトが位置していることが検出された時点から、操作に応じて3次元オブジェクトを変化させることとしたので、利用者が3次元オブジェクトの選択を認識しやすい。
【0174】
なお、図25に示すステップS61からステップS63のように、第1の物体と第2の物体のうち少なくとも一方が3次元オブジェクトに接触した後に第1の物体と第2の物体の距離が所定時間以上ほぼ一定に保たれることを、3次元オブジェクトを選択する条件としてもよい。ここで、図25は、3次元オブジェクトに対する操作の検出の他の例について説明するための図である。3次元オブジェクトへの接触を選択の条件とすることにより、複数の3次元オブジェクトが近接して表示されている場合に、利用者が所望の3次元オブジェクトを選択し易くなる。
【0175】
図26は、3次元オブジェクトへの接触を選択の条件とする場合の選択検出処理の処理手順を示すフローチャートである。図26に示すように、制御部22は、まず、ステップS1001として、3次元オブジェクトを立体的に表示する。具体的には、本実施例において、制御部22は、上述した図4および図5等に示すように、複数の立方体が直交する3方向に沿って配列されて構成された集合体(3次元オブジェクト)を、表示部32aによって視認空間内に立体表示する。すなわち、制御部22は、表示部32aを制御して視認空間内に立体パズル(3次元オブジェクト)を立体表示する。
【0176】
続いて、制御部22は、ステップS1002として、検出部、すなわち、撮影部40および42によって第1の物体および第2の物体が検出されたかを判定する。すなわち、制御部22は、検出部を制御して視認空間内における物体(第1の物体および第2の物体を含む)の動きを検出する。具体的には、本実施例において、制御部22は、上述した図4に示すように、検出部を制御して集合体を掴む位置に物体(第1の物体および第2の物体を含む)があること(上述した図4において、片手で掴む状態)を検出する。また、制御部22は、上述した図5に示すように、検出部を制御して2箇所で集合体を掴む2組の物体(上述した図5において、両手で掴む状態)を検出する。なお、図示しないが、制御部22は、検出部を制御して2箇所で集合体を掴む2組の物体(両手で掴む状態)を検出し、さらに、当該2組の物体とは別の他の物体(例えば、空いている指や他のユーザの手等)を検出してもよい。
【0177】
第1の物体および第2の物体が検出されない場合(ステップS1002,No)、制御部22は、ステップS1010として、仮選択状態の3次元オブジェクトがあれば、その3次元オブジェクトの仮選択状態を解除する。
【0178】
そして、制御部22は、ステップS1011として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS1011,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS1011,No)、制御部22は、ステップS1002以降を再実行する。
【0179】
第1の物体および第2の物体が検出された場合(ステップS1002,Yes)、制御部22は、ステップS1003として、仮選択状態の3次元オブジェクトがあるか否かを判定する。仮選択状態の3次元オブジェクトがない場合(ステップS1003,No)、制御部22は、ステップS1004として、表示されている3次元オブジェクトの中から第1の物体または第2の物体の少なくとも一方に接触している3次元オブジェクトを探す。
【0180】
該当する3次元オブジェクトがない場合(ステップS1005,No)、制御部22は、ステップS1011として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS1011,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS1011,No)、制御部22は、ステップS1002以降を再実行する。
【0181】
第1の物体または第2の物体の少なくとも一方に接触している3次元オブジェクトがみつかった場合(ステップS1005,Yes)、制御部22は、ステップS1006として、第1の物体と第2の物体との間に表示されている3次元オブジェクトを仮選択状態にする。また、制御部22は、ステップS1007として、第1の物体と第2の物体の距離を算出する。
【0182】
そして、制御部22は、ステップS1011として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS1011,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS1011,No)、制御部22は、ステップS1002以降を再実行する。
【0183】
第1の物体および第2の物体が検出され、かつ、仮選択状態の3次元オブジェクトがある場合(ステップS1003,Yes)、制御部22は、ステップS1008として、第1の物体と第2の物体の少なくとも一方が移動しているかを判定する。第1の物体と第2の物体のいずれも移動していない場合(ステップS1008,No)、制御部22は、ステップS1011として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS1011,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS1011,No)、制御部22は、ステップS1002以降を再実行する。
【0184】
第1の物体と第2の物体の少なくとも一方が移動している場合(ステップS1008,Yes)、制御部22は、ステップS1009として、図24に示す操作検出処理を実行し、その中で、選択状態にある3次元オブジェクトを検出された操作に応じて変化させる。
【0185】
操作検出処理が終了した後、制御部22は、ステップS1011として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS1011,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS1011,No)、制御部22は、ステップS1002以降を再実行する。
【実施例4】
【0186】
以下に、第4の実施例について説明する。上記の各実施例では、3次元オブジェクトを操作する物体を撮影部が撮影する画像に基づいて検出することとしたが、他の検出方式を用いてもよい。例えば、静電容量式のタッチセンサは、感度を上げることにより、タッチセンサに接触していない指の位置を検出することができる。そこで、第4の実施例では、タッチセンサを、3次元オブジェクトを操作する物体を検出する検出部として活用する例を示す。なお、以下の説明では、既に説明した部分と同様の部分には既に説明した部分と同一の符号を付す。また、重複する説明については、説明を省略することがある。
【0187】
まず、図27および図28を参照しながら、第4の実施例に係る携帯電話端末(表示機器)2の構成について説明する。図27は、携帯電話端末2の外観を示す正面図である。図28は、携帯電話端末2の機能的な構成を示すブロック図である。
【0188】
図27および図28に示すように、携帯電話端末2は、操作部13と、マイク15と、レシーバ16と、制御部22と、記憶部24と、通信部26と、音声処理部30と、タッチパネル32とを有する。
【0189】
タッチパネル32は、文字、図形、画像等の各種の情報を表示するとともに、表示されたアイコン、ボタン、文字入力領域等の所定領域に対する入力操作を検出する。タッチパネル32は、表示部32aと、タッチセンサ32bとを重畳して構成される。本実施例において、タッチセンサ32bは、静電容量式のタッチセンサである。タッチセンサ32bは、3次元オブジェクトを操作する指を検出する検出部としても機能する。
【0190】
次に、図29を参照しながら、3次元オブジェクトに対する操作の検出について説明する。図29は、3次元オブジェクトに対する操作の検出について説明するための図である。図29では、タッチパネル32によって、視認空間中に、3次元オブジェクトOB1が立体的に表示されている。
【0191】
ここで、利用者が3次元オブジェクトOB1に対して何らかの操作を行いたいものとする。3次元オブジェクトOB1に対して何らかの操作を行うには、まず、操作の対象として3次元オブジェクトOB1を選択する必要がある。3次元オブジェクトOB1を選択するために、利用者は、図29に示すように、指F1と指F2の間に3次元オブジェクトOB1が位置するように指F1および指F2を移動させる。
【0192】
携帯電話端末2は、指F1および指F2の位置を、タッチセンサ32bを用いて検出する。タッチセンサ32bは、感度を高めることで、例えば、指F1および指F2とタッチパネル32の表面からのZ軸方向の距離が10cm程度ある場合でも、指F1および指F2のX軸方向およびY軸方向の位置を検出することができる。また、タッチセンサ32bは、静電容量の大きさに基づいて、指F1のタッチパネル32の表面からのZ軸方向の距離D2および指F2のタッチパネル32の表面からのZ軸方向の距離D3を検出することができる。
【0193】
こうして検出された指F1および指F2の視認空間での位置に基づいて、携帯電話端末2は、指F1および指F2間の距離D1を算出したり、指F1および指F2の間に3次元オブジェクトが表示されているかを判定したりすることができる。指F1および指F2の間に3次元オブジェクトが表示されていることが検出された後の制御については、上述した第1ないし第3の実施例のいずれかにおいて説明した処理手順に従って実行される。
【0194】
上述してきたように、第4の実施例では、タッチセンサを検出部として用いることとしたので、撮影部を備えない表示装置であっても、3次元オブジェクトに対する操作を検出することができる。
【0195】
なお、3次元オブジェクトに対する操作を検出するために撮影部およびタッチセンサを併用してもよい。撮影部およびタッチセンサを併用する場合、それぞれの検出結果を平均して指F1および指F2の位置を特定してもよい。また、タッチパネル32と近い領域では、撮影部40および42は指F1および指F2の画像を取得し難いのでタッチセンサの検出結果の重み付けを大きくし、タッチパネル32と遠い領域では、タッチセンサの検出精度が低くなるので撮影部40および42の検出結果の重み付けを大きくした加重平均を用いてもよい。
【0196】
また、他の指等が障害となってタッチセンサが指の位置を精度よく検出できないことが生じにくいように、3次元オブジェクトに対する操作を複数のタッチセンサを用いて検出してもよい。図30は、3次元オブジェクトに対する操作を複数のタッチセンサを用いて検出する携帯電話端末3の構成の一例を示す図である。
【0197】
携帯電話端末3は、第1の筐体3aと、第2の筐体3bと、ヒンジ部3cとを有する。ヒンジ部3cは、第1の筐体3aおよび第2の筐体3bを開閉可能に連結する。そして、第1の筐体3aは、タッチセンサ32bを有するタッチパネル32を備え、第2の筐体3bは、タッチセンサ34bを有するタッチパネル34を備える。タッチセンサ32bおよびタッチセンサ34bは、図30に示すように、第1の筐体3aおよび第2の筐体3bが約90度の角度をもって固定された場合に、視認空間に異なる角度で接する。
【0198】
タッチセンサ32bは、指F1および指F2のX軸方向およびY軸方向の位置を検出する検出部として機能する。また、タッチセンサ32bは、静電容量の大きさに基づいて、指F1のタッチパネル32の表面からのZ軸方向の距離D2および指F2のタッチパネル32の表面からのZ軸方向の距離D3を検出することができる。
【0199】
タッチセンサ34bは、指F1および指F2のX軸方向およびZ軸方向の位置を検出する検出部として機能する。また、タッチセンサ34bは、静電容量の大きさに基づいて、指F1のタッチパネル34の表面からのY軸方向の距離D4および指F2のタッチパネル34の表面からのY軸方向の距離D5を検出することができる。
【0200】
このように、異なる方向から指F1および指F2を検出することにより、何らかの障害物がある場合でもいずれかの方向から指F1および指F2の位置を検出することができる。なお、異なる方向から指F1および指F2を検出する場合、一方のタッチパネルが3次元オブジェクトを表示し、他方のタッチパネルは非表示とするか、2次元でガイダンス等を表示してもよい。また、3次元オブジェクトを表示しない方のタッチパネルを単なるタッチセンサとしてもよい。
【0201】
以上、上述してきた各実施例によれば、以下が可能となる。上記の実施例に係る3次元オブジェクトの選択において、手などの物体がすべての視認空間(オブジェクト領域)内に入った場合に、3次元オブジェクトを移動または変化させるので、現実世界とある程度リンクした作用を発生させることができる。またゲームの場合、あえて手を視認空間から外すということもできる。また、上記の実施例において、手などの物体が対象となる3次元オブジェクト近傍で一定時間固定されたことを検出するので、その後の手の動きに連動させて3次元オブジェクトを変形・移動させることができる。なお、複数の3次元オブジェクトが存在し、手からそれぞれの3次元オブジェクトまでの距離が同一の場合には、手のひらがどちらを向いているかで判定するか、3次元オブジェクトの動きを待って判定することにより選択することができる。つまり、手がどちらの3次元オブジェクトに対して近づいているかを検出することで選択できる。なお、上記の実施例において、3次元オブジェクトの選択を行ってから、特定の入力信号に基づき、3次元オブジェクトを変形・移動させる他、3次元オブジェクトに対して、指で指し示す、音声、視線を向ける等によって選択してもよい。この場合、3次元オブジェクトの指定後は、必ずしも手等の物体が視認空間(オブジェクト領域)に入らなくても、手の移動量で3次元オブジェクトを移動できるものとする。
【0202】
また、上記の実施例に係る3次元オブジェクトの変形・移動において、3次元オブジェクトへの接地面積および接地位置によって、3次元オブジェクトへの作用を変化させることができる。これにより、例えば、指で押すか、手のひらで押すかで作用を変化させることが可能である。この場合、3次元オブジェクトがどの場所(例えば、どのようなものの上)に置いてあるかによって、摩擦等を考慮して作用を変化させることができる。この場合、3次元オブジェクトに対して手が別の場所にある場合、手を3次元オブジェクトの位置に仮想表示させることで、3次元オブジェクトへの接地面積・位置を調整可能とする。つまり、必ずしも3次元オブジェクトの位置に指がある必要はないものとする。また、上記の実施例において、3次元オブジェクトによって、変形・移動内容を変化させることができる。例えば、軟らかいものは押したときに変形し、硬いものは3次元オブジェクトごと移動するようにできる。この場合、手が3次元オブジェクトに接地する速度が早いと変形し、遅いと3次元オブジェクトごと移動するようにできる。なお、上記の実施例において、基本的には変形・移動が3次元オブジェクトに対する主な処理となるが、ローソクやライター等のように押すことによって、3次元オブジェクトが消える・付くという作用を発生させることも可能である。また、上記の実施例において、3次元オブジェクトに対して重力を考慮した変形・移動結果を反映させることも可能である。
【0203】
また、上記の実施例に係る3次元オブジェクトの開放(離す)において、物体の指が3次元オブジェクトの表面位置(座標)から外れたことを検出することで、3次元オブジェクトを開放することができる。また、上記の実施例において、音声で3次元オブジェクトの開放を通知することにより、3次元オブジェクトを開放することもできる。
【0204】
以下に、上記の各実施例において説明した表示装置の適用例および変形例について説明する。検出された操作に応じて3次元オブジェクトに加えられる変化は、上記の移動、回転、変形、消失等に限定されない。操作検出処理において検出される操作と、操作に応じて3次元オブジェクトに加えられる変化は、上記の実施例に限定されず、3次元オブジェクトの種類に応じて変更してよい。
【0205】
なお、上記の実施例で示した本発明の態様は、本発明の要旨を逸脱しない範囲で任意に変更することができる。また、上記の実施例を適宜組み合わせてもよい。例えば、上記の実施例で示した制御プログラム24aは、複数のモジュールに分割されていてもよいし、他のプログラムと統合されていてもよい。また、上記の実施例では、3次元オブジェクトに対して指で操作を行うこととしたが、先端に静電気を帯びた棒状の物等を指の代わりに用いてもよい。
【0206】
また、上記の実施例では、3次元オブジェクトを検出するために撮影部やタッチセンサを検出部として用いる例を示したが、検出部はこれに限られない。例えば、撮影部に代えて、TOF(Time−of−Flight)法を用いたセンサ(TOFセンサ)でもよい。また、視認空間における面方向の移動を検出できる近接センサ等を、物体の移動方向とほぼ水平に配置すると、物体の変位が非接触でも検出できることから、もちろんこれらを用いてもよい。なお、物体にセンサ等を配置することなく、物体の変位の検出ができることが好ましい。物体にセンサ等を配置しないことにより、指にわざわざ加速度センサを取り付けたり、加速度を備えた表示機器そのものを移動させたりする必要がないので、コスト低減が図れる。
【0207】
また、上記の実施例では、3次元オブジェクトが利用者側に飛び出す場合について記載したが、表示部よりも奥側に3次元オブジェクトが存在するように見せる場合でも本発明を適用できる。この場合、表示部の裏面側にセンサやカメラを配置すればよい。表示機器が携帯電話端末の場合、利用者自身を撮影するためのインカメラと、風景等を撮影するためのアウトカメラとを備えていることが多い。そこで、このアウトカメラを用いることで裏面側における物体の変位を捕捉することができるようにしてもよい。
【0208】
また、上記の実施例では、3次元オブジェクトに対する操作を検出する例について説明したが、本発明は、2次元オブジェクトに対する操作を検出するためにも用いることができる。例えば、タッチパネル上に表示されているアイコンの両側において指の接触が検出され、その後、その状態が所定時間以上維持された場合や、指の距離が所定時間以上ほぼ一定に保たれた場合にそのアイコンを選択状態にしてもよい。
【0209】
また、上記の実施例では、表示機器が単独で3次元オブジェクトに対する操作を検出することとしたが、表示機器がサーバ装置と協業して3次元オブジェクトに対する操作を検出することとしてもよい。この場合、表示機器は、検出部が検出した情報をサーバ装置へ逐次送信し、サーバ装置が操作を検出して検出結果を表示機器へ通知する。換言すると、上記の実施例では、3次元オブジェクトの選択検出処理および操作検出処理を、制御部22が記憶部24に記憶された制御プログラム24aを用いて行ったが、本発明はこれに限定されない。表示機器は、各種演算処理を、通信部26を介して通信可能なサーバで実行してもよい。つまり、演算処理自体は、外部で行ってもよい。この場合、表示機器は、サーバへの検出部が検出した情報の送信、サーバからの演算処理後のデータの受信等を行う。このように、サーバで演算を行ったりすることで、表示機器にかかる負荷を少なくすることができる。つまり、サーバと表示機器とを1つの制御システムとして、上述した処理を行うようにしてもよい。このような構成とすることにより、表示機器の負荷を低減することができる。
【符号の説明】
【0210】
1、2、3 携帯電話端末
22 制御部
24 記憶部
24a 制御プログラム
26 通信部
32、34 タッチパネル
32a 表示部
32b、34b タッチセンサ(検出部)
40、42 撮影部(検出部)

【特許請求の範囲】
【請求項1】
複数の立方体が直交する3方向に沿って配列されて構成された集合体を、視認空間内に立体表示する表示部と、
前記視認空間内における物体の動きを検出する検出部と、
前記検出部の検出結果に応じて前記集合体の各要素の位置を変化させる制御部と、
を備え、
前記集合体の6面の各々は各立方体の外面を要素とする集合体からなり、各要素には当該要素の全てが同一グループに属するか否かを判別可能な表記がなされており、
前記制御部は、
前記検出部の検出結果に基づいて、前記6面のうち、前記直交する3方向のうち一の方向に直交する面においては、当該直交する面を構成する各要素同士の位置関係が変化せず、かつ、前記直交する3方向のうち他の方向と直交する複数の他の面においては、当該複数の他の面を構成する各要素同士が、当該複数の他の面の間で入れ替わるように、前記一の方向を回転軸として、前記立方体を回転させるように制御することを特徴とする表示機器。
【請求項2】
前記検出部が、前記集合体を掴む位置に前記物体があり、かつ、前記物体が移動したことを検出した場合、
前記制御部は、前記物体の動きに応じて、前記集合体を移動させるように制御することを特徴とする請求項1に記載の表示機器。
【請求項3】
前記検出部が、2箇所で前記集合体を掴む2組の物体を検出し、さらに前記2組の物体同士が対向する方向を中心に、前記2組の物体同士が相対的に回転する動きを検出した場合、
前記制御部は、前記2組の物体同士が対向する方向を前記一の方向と定め、前記相対的に回転する動きの回転量に応じて、前記立方体を回転させるように制御することを特徴とする請求項1または2に記載の表示機器。
【請求項4】
前記表示部は、複数の集合体を前記視認空間内に立体表示し、
前記検出部が、前記複数の集合体のうち一方の集合体に対して、2箇所で前記一方の集合体を掴む2組の物体を検出し、さらに前記2組の物体同士が対向する方向を中心に、前記2組の物体同士が相対的に回転する動きを検出した場合、
前記制御部は、前記2組の物体同士が対向する方向を前記一の方向と定め、前記一方の集合体に対する前記相対的に回転する動きの回転量に応じて、前記一方の集合体を構成する立方体と、前記複数の集合体のうち他方の集合体を構成する立方体とが連動して回転するように制御することを特徴とする請求項1から3のいずれか1項に記載の表示機器。
【請求項5】
前記表示部は、前記一方の集合体内に前記他方の集合体を入れ子にした状態で立体表示し、
前記検出部が、前記他方の集合体を掴む位置に前記物体があり、かつ、前記物体が移動したことを検出した場合、
前記制御部は、前記物体の動きに応じて、前記一方の集合体を移動させずに、前記他方の集合体のみを移動させるように制御することを特徴とする請求項4に記載の表示機器。
【請求項6】
前記表示部は、前記一方の集合体と前記他方の集合体をそれぞれ、同一の前記視認空間内に立体表示し、
前記検出部が、前記他方の集合体を掴む位置に前記物体があり、かつ、前記物体が移動したことを検出した場合、
前記制御部は、前記他方の集合体に対する前記物体の動きに応じて、前記他方の集合体と、前記一方の集合体とが連動して移動するように制御することを特徴とする請求項4に記載の表示機器。
【請求項7】
前記検出部は、前記表示部に重畳して設けられた静電容量式のタッチセンサであることを特徴とする請求項1から6のいずれか1項に記載の表示機器。
【請求項8】
前記検出部は、カメラまたはTOFセンサを含んでなることを特徴とする請求項1から7のいずれか1項に記載の表示機器。
【請求項9】
前記表示部は、制限時間を表示することを特徴とする請求項1から8のいずれか1項に記載の表示機器。
【請求項10】
前記表示部は、前記立方体を回転させた回転数を表示することを特徴とする請求項1から9のいずれか1項に記載の表示機器。
【請求項11】
視認空間内に立体パズルを立体表示する表示部と、
前記視認空間内における物体の動きを検出する検出部と、
前記検出部の検出結果に応じて前記立体パズルのピースの位置を変化させる制御部と
を備えることを特徴とする表示機器。
【請求項12】
前記立体パズルは、正多面体型立体パズルであることを特徴とする請求項11に記載の表示機器。
【請求項13】
前記正多面体型立体パズルは、正四面体型立体パズル、正六面体型立体パズル、正八面体型立体パズル、正十二面体型立体パズル、および、正二十面体型立体パズルを含むことを特徴とする請求項12に記載の表示機器。
【請求項14】
前記正六面体型立体パズルは、ポケットキューブ、ルービックキューブ、ルービックリベンジ、および、プロフェッサーキューブを含むことを特徴とする請求項13に記載の表示機器。
【請求項15】
複数の立方体が直交する3方向に沿って配列されて構成された集合体を、視認空間内に立体表示する表示部と、前記視認空間内における物体の動きを検出する検出部と、を備える携帯端末と、
前記検出部の検出結果に応じて前記集合体の各要素の位置を変化させる制御部を備える制御装置と、を備え、
前記集合体の6面の各々は各立方体の外面を要素とする集合体からなり、各要素には当該要素の全てが同一グループに属するか否かを判別可能な表記がなされており、
前記制御部は、
前記検出部の検出結果に基づいて、前記6面のうち、前記直交する3方向のうち一の方向に直交する面においては、当該直交する面を構成する各要素同士の位置関係が変化せず、かつ、前記直交する3方向のうち他の方向と直交する複数の他の面においては、当該複数の他の面を構成する各要素同士が、当該複数の他の面の間で入れ替わるように、前記一の方向を回転軸として、前記立方体を回転させるように制御することを特徴とする制御システム。
【請求項16】
複数の立方体が直交する3方向に沿って配列されて構成された集合体を、視認空間内に立体表示する表示部と、前記視認空間内における物体の動きを検出する検出部と、前記検出部の検出結果に応じて前記集合体の各要素の位置を変化させる制御部と、を備え、前記集合体の6面の各々は各立方体の外面を要素とする集合体からなり、各要素には当該要素の全てが同一グループに属するか否かを判別可能な表記がなされている表示機器に、
前記検出部で操作を検出するステップと、
前記検出部の検出結果に基づいて、前記6面のうち、前記直交する3方向のうち一の方向に直交する面においては、当該直交する面を構成する各要素同士の位置関係が変化せず、かつ、前記直交する3方向のうち他の方向と直交する複数の他の面においては、当該複数の他の面を構成する各要素同士が、当該複数の他の面の間で入れ替わるように、前記一の方向を回転軸として、前記立方体を回転させるように制御するステップとを、実行させることを特徴とする制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate


【公開番号】特開2013−9748(P2013−9748A)
【公開日】平成25年1月17日(2013.1.17)
【国際特許分類】
【出願番号】特願2011−143342(P2011−143342)
【出願日】平成23年6月28日(2011.6.28)
【出願人】(000006633)京セラ株式会社 (13,660)
【Fターム(参考)】