以下、本発明につき図面を参照しつつ詳細に説明する。なお、以下の説明により本発明が限定されるものではない。また、以下の説明における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。以下においては、表示機器の一例として携帯電話端末について説明するが、本発明の適用対象は携帯電話端末に限定されるものではなく、例えば、PHS(Personal Handyphone System)、PDA、ポータブルナビゲーション装置、ノートパソコン、ゲーム機等に対しても本発明は適用できる。
まず、図1から図4を参照しながら、第1の実施例に係る携帯電話端末(表示機器)1の構成について説明する。図1は、携帯電話端末1の外観を示す正面図である。図2は、携帯電話端末1の外観を示す背面図である。図3は、立設状態の携帯電話端末1の側面図である。図4は、携帯電話端末1の機能的な構成を示すブロック図である。
図1から図4に示すように、携帯電話端末1は、立設部10と、操作部13と、マイク15と、レシーバ16と、制御部22と、記憶部24と、通信部26と、音声処理部30と、タッチパネル32と、撮影部40aと、撮影部40bと、撮影部42aと、撮影部42bとを有する。操作部13、マイク15、レシーバ16、撮影部40a、および撮影部40bは、正面1aに設けられる。立設部10、撮影部42a、および撮影部42bは、背面1bに設けられる。
立設部10は、一方の端部を軸として回動可能に背面1bに埋設される。図3に示すように、立設部10を角度Rだけ回動させることにより、携帯電話端末1は、正面1aと背面1bのいずれもテーブル等の台座に当接させることなく任意の角度にて立設可能になる。なお、立設部10の構造は、少なくともタッチパネル32(表示部32a)を立設可能にする構造であればよく、図2および図3に示した構造に限定されない。例えば、立設部10は、携帯電話端末1から取り外し可能であってもよい。角度Rは、例えば、0°、30°、60°、90°、270°、300°、330°であってもよい。
操作部13は、物理的なボタンを有し、押下されたボタンに対応する信号を制御部22へ出力する。なお、図1に示す例では、操作部13はボタンを1つしか有していないが、操作部13は複数のボタンを有していてもよい。
マイク15は、外部の音声を取得する。レシーバ16は、通話時に通話相手の音声を出力する。音声処理部30は、マイク15から入力される音声をデジタル信号化して制御部22へ出力する。また、音声処理部30は、制御部22から入力されるデジタル信号を復号してレシーバ16へ出力する。
通信部26は、アンテナ26aを有し、基地局によって割り当てられるチャネルを介して、基地局との間にCDMA(Code Division Multiple Access)方式などによる無線信号回線を確立する。通信部26は、基地局との間に確立された無線信号回線を通じて、他の装置との間で電話通信および情報通信を行う。
タッチパネル32は、文字、図形、画像等の各種の情報を表示するとともに、表示されたアイコン、ボタン、文字入力領域等の所定領域に対する入力操作を検出する。タッチパネル32は、表示部32aと、タッチセンサ32bとを重畳して構成される。
表示部32aは、液晶ディスプレイ(Liquid Crystal Display)や有機EL(Organic Electro−Luminescence)パネル等の表示装置を備え、制御部22から入力される制御信号に従って各種の情報を表示する。タッチセンサ32bは、タッチパネル32の表面に対して行われる入力操作を検出し、検出した入力操作に応じた信号を制御部22へ出力する。タッチセンサ32bが各種操作を検出する方式は、静電容量式、抵抗膜式、感圧式等の任意の方式でよい。
表示部32aおよびタッチセンサ32bは、透明な部材で形成される。そして、タッチパネル32は、正面1aから背面1bまで貫通する中空部分に設けられる。このため、利用者は、携帯電話端末1を正面1aの側から見た場合も、携帯電話端末1を背面1bの側から見た場合も、タッチパネル32を通して、携帯電話端末1の向こう側を見ることができる。なお、タッチパネル32は、完全に透明でなくても、少なくとも、背面1b側の光を正面1a側にある程度透過させればよい。すなわち、タッチパネル32は、利用者がタッチパネル32を正面1a側から見たときに、タッチパネル32の背後にある物体を把握することができるように形成されていればよい。
また、タッチパネル32は、3次元オブジェクトを表示できる。3次元オブジェクトは、視差を利用して立体的に見えるように作成された画像や形状等の表示物である。タッチパネル32は、3次元オブジェクトをタッチパネル32よりも手前に飛び出しているように表示することができる。また、タッチパネル32は、3次元オブジェクトをタッチパネル32よりも奥に引っ込んでいるように表示することができる。なお、3次元オブジェクトを表示する方式は、眼鏡等の器具を用いて立体視を実現する方式であってもよいし、裸眼で立体視を実現する方式であってもよい。
撮影部40a、40b、42a、および42bは、CCD(Charge Coupled Device Image Sensor)やCMOS(Complementary Metal Oxide Semiconductor)等のイメージセンサを用いて電子的に画像を撮影する。そして、撮影部40a、40b、42a、および42bは、撮影した画像を信号に変換して制御部22へ出力する。撮影部40a、40b、42a、および42bは、3次元オブジェクトが立体的に表示される空間(以下、「視認空間」ということがある)において3次元オブジェクトを選択して操作する物体を検出する検出部としても機能する。
撮影部40aおよび撮影部40bは、正面1a側の視認空間内に位置する物体を撮影する。撮影部42aおよび撮影部42bは、背面1b側の視認空間内に位置する物体を撮影する。なお、撮影部40a、40b、42a、および42bは、視認空間内のどこに指等の物体が位置していてもその物体を撮影することができるように画角や配置が設定されていることが好ましい。また、撮影部40a、40b、42a、および42bは、可視光の画像を取得する装置であってもよいし、赤外線等の不可視光の画像を取得する装置であってもよい。
制御部22は、演算手段であるCPU(Central Processing Unit)と、記憶手段であるメモリとを備え、これらのハードウェア資源を用いてプログラムを実行することによって各種の機能を実現する。具体的には、制御部22は、記憶部24に記憶されているプログラムやデータを読み出してメモリに展開し、メモリに展開されたプログラムに含まれる命令をCPUに実行させる。そして、制御部22は、CPUによる命令の実行結果に応じて、メモリおよび記憶部24に対してデータの読み書きを行ったり、通信部26や表示部32a等の動作を制御したりする。CPUが命令を実行するに際しては、メモリに展開されているデータやタッチセンサ32b等から入力される信号がパラメータや判定条件の一部として利用される。
記憶部24は、フラッシュメモリ等の不揮発性を有する記憶装置からなり、各種のプログラムやデータを記憶する。記憶部24に記憶されるプログラムには、制御プログラム24aが含まれる。また、記憶部24に記憶されるデータには、オブジェクトデータ24bと、作用データ24cとが含まれる。なお、記憶部24は、メモリカード等の可搬の記憶媒体と、記憶媒体に対して読み書きを行う読み書き装置との組み合わせによって構成されてもよい。この場合、制御プログラム24a、オブジェクトデータ24b、作用データ24cは、記憶媒体に記憶されていてもよい。また、制御プログラム24a、オブジェクトデータ24b、作用データ24cは、通信部26による無線通信によってサーバ装置等の他の装置から取得することとしてもよい。
制御プログラム24aは、携帯電話端末1を稼働させるための各種制御に関する機能を提供する。制御プログラム24aが提供する機能には、タッチパネル32での3次元オブジェクトの表示を制御する機能や、タッチパネル32によって表示される3次元オブジェクトに対する利用者の操作を検出する機能が含まれる。
オブジェクトデータ24bは、3次元オブジェクトの形状や性質に関する情報を含む。オブジェクトデータ24bは、3次元オブジェクトを表示するために用いられる。作用データ24cは、表示されている3次元オブジェクトに対する操作が3次元オブジェクトにどのように作用するかに関する情報を含む。作用データ24cは、表示されている3次元オブジェクトに対する操作が検出された場合に3次元オブジェクトを変化させるために用いられる。ここでいう変化には、移動、回転、変形、消失等が含まれる。
次に、図5を参照しながら、3次元オブジェクトの表示と、3次元オブジェクトに対する操作とについて説明する。図5は、3次元オブジェクトの表示と、3次元オブジェクトに対する操作とについて説明するための図である。図5に示すように、タッチパネル32が3次元オブジェクトを立体的に表示することができる視認空間50は、タッチパネル32を基準として、正面1a側と背面1b側とに拡がる。図5に示す例では、正面1a側にいる利用者から見て、タッチパネル32よりも奥側に3次元オブジェクトOB1が表示されている。
図5に示す例では、利用者は、3次元オブジェクトOB1が表示されている領域に指F1を移動させ、指F1で3次元オブジェクトOB1を操作しようとしている。携帯電話端末1は、撮影部42aおよび42bが撮影する画像に基づいて指F1等の物体の位置および動作を検出する。そして、携帯電話端末1は、検出結果に基づいて、指F1等の物体によって3次元オブジェクトOB1に対する操作が行われたと判断した場合には、操作に応じて3次元オブジェクトOB1を変化させる。
利用者は、携帯電話端末1の背面1b側で指F1による操作を行うために、立設部10を用いて携帯電話端末1を自立させてもよい。この場合、利用者は、両方の手を使って3次元オブジェクトに対する操作を行うことができる。また、利用者は、一方の手で携帯電話端末1をもち、他方の手の指F1で操作を行ってもよい。
タッチパネル32は、正面1a側にいる利用者から見て、タッチパネル32よりも手前に3次元オブジェクトを表示することもできる。携帯電話端末1は、撮影部40aおよび40bが撮影する画像に基づいて、タッチパネル32の正面1a側に表示されている3次元オブジェクトに対する操作を行う物体の位置および動作を検出する。そして、携帯電話端末1は、検出結果に基づいて、3次元オブジェクトに対する操作が行われたと判断した場合には、操作に応じて3次元オブジェクトを変化させる。
このように、携帯電話端末1は、タッチパネル32の正面1a側および背面1b側に表示されている3次元オブジェクトに対する利用者の操作を受け付ける。タッチパネル32は透明あるいは半透明の場合、利用者は、タッチパネル32の背面1b側に表示されている3次元オブジェクトOB1に対する操作を指F1で行う場合、タッチパネル32越しに指F1の位置および動作を確認することができる。さらに、この場合、指F1がタッチパネル32と利用者の目の間に位置しない。このため、指F1が障害となって利用者が3次元オブジェクトOB1を見ることを妨げる不都合が生じない。
次に、図6および図7を参照しながら、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化について説明する。図6および図7は、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化について説明するための図である。図6に示すステップSA1では、タッチパネル32によって、背面1b側の視認空間に、3次元オブジェクトOB1が立体的に表示されている。3次元オブジェクトOB1は、例えば、ボールを模したオブジェクトである。また、ステップSA1では、タッチパネル32によって、3次元オブジェクトOB1を支持する底面B1が表示されている。
ステップSA2では、利用者が指F1を3次元オブジェクトOB1と接触する位置に置き、そのまま静止させている。携帯電話端末1は、視認空間内で現実の物体が検出され、かつ、その物体が3次元オブジェクトOB1と接触する状態が所定時間以上継続した場合、3次元オブジェクトOB1が操作対象として選択されたと判定する。そして、携帯電話端末1は、3次元オブジェクトOB1の表示態様を変更する等して、3次元オブジェクトOB1が操作対象として選択されたことを利用者に通知する。
物体が3次元オブジェクトOB1と接触しているかの判定は、視認空間における物体の現実の位置と、視認空間における3次元オブジェクトOB1の形状および計算上の位置とに基づいて行われる。3次元オブジェクトOB1の形状は、オブジェクトデータ24bにおいて定義される。
物体の位置は、撮影部40a、40b、42a、および42bが撮影する画像に基づいて算出される。物体の位置の算出は、予め登録されている物体の大きさと画像中の物体の大きさおよび位置とに基づいて行ってもよい。また、物体の位置の算出は、例えば、撮影部42aが撮影した画像における物体の大きさおよび位置と撮影部42bが撮影した画像における物体の大きさおよび位置とを照合するというように、異なる撮影部によって撮影された複数の画像を解析して行ってもよい。なお、指等の物体の検出は、周知の技術を用いて実現してよい。また、指が物体の場合、指のつま先の位置を物体の位置として処理することが好ましい。
視認空間における3次元オブジェクトOB1の計算上の位置は、タッチパネル32の表示面上での3次元オブジェクトOB1の位置と、視認空間内での3次元オブジェクトOB1の浮き上がり量(沈み込み量)とに基づいて算出される。視認空間内での3次元オブジェクトOB1の浮き上がり量(沈み込み量)は、表示時に決定された値であってもよいし、3次元オブジェクトOB1を立体的に表示するために用いられる右目用の画像と左目用の画像における3次元オブジェクトOB1の位置の差から算出された値であってもよい。
また、操作対象として選択されたことの通知は、例えば、3次元オブジェクトOB1の全体の色を変更することや、3次元オブジェクトOB1の表面のうち、物体と接触している位置の近傍の色を変更することによって実現される。このような視覚的な通知に代えて、あるいは、このような視覚的な通知に加えて、音や振動による通知を行ってもよい。
このように、携帯電話端末1は、指等の現実の物体が3次元オブジェクトOB1と接触する状態が所定時間以上継続して検出された場合に、3次元オブジェクトOB1が操作対象として選択されたと判定する。接触状態が所定時間以上継続して検出されることを条件として付加することにより、他の3次元オブジェクトを操作するために指を移動させる過程で、意図しない3次元オブジェクトが操作対象として選択されることを抑止できる。
3次元オブジェクトOB1が操作対象として選択された後、ステップSA3に示すように、利用者が、3次元オブジェクトOB1を押すように、指F1を3次元オブジェクトOB1の内側に侵入させたものとする。携帯電話端末1は、操作対象として選択された3次元オブジェクト内に物体を侵入させる操作が検出された場合、操作に応じて3次元オブジェクトを変化させる。3次元オブジェクトをどのように変化させるかは、オブジェクトデータ24bにおいて定義されている3次元オブジェクトの種別と、作用データ24cにおいてその種別と対応付けて定義されている変化のルールとによって決定される。
例えば、オブジェクトデータ24bにおいて3次元オブジェクトOB1が弾性体であると定義され、作用データ24cにおいて弾性体は押された場合に押された量に応じて押された方向に変形することが定義されていたものとする。この場合、携帯電話端末1は、ステップSA4に示すように、指F1が侵入した部分が押されて凹んだように3次元オブジェクトOB1を変化させる。
また、オブジェクトデータ24bにおいて3次元オブジェクトOB1が剛体であると定義され、作用データ24cにおいて剛体は押された場合に押された量に応じて押された方向に移動することが定義されていたものとする。この場合、携帯電話端末1は、図7のステップSA5に示すように、指F1に押されたように3次元オブジェクトOB1を指F1の進行方向へ移動させる。なお、図7のステップSA5では、3次元オブジェクトOB1は、底面B1に支持されているため、剛体によって印加される力の底面B1と水平方向の成分に従って移動している。
このように、3次元オブジェクトOB1を押す操作が検出された場合に、オブジェクトデータ24bおよび作用データ24cに基づいて3次元オブジェクトOB1を変化させることにより、3次元オブジェクトOB1を操作に応じて様々に変化させることができる。押すという操作は、現実の世界の様々な場面で利用されている操作であり、3次元オブジェクトOB1を押す操作を検出して対応する処理を実行することにより、直感的で利便性の高い操作性を実現することができる。
なお、3次元オブジェクトを操作するために用いられる物体は、指に限定されず、手、足、棒、器具等であってもよい。また、押す操作に応じて3次元オブジェクトを変化させる態様は、現実の物理法則に則していてもよいし、現実ではあり得ないものであってもよい。
また、携帯電話端末1は、3次元オブジェクトが押される方向がタッチパネル32の表示面と平行でない場合、すなわち、検出された物体の移動方向がタッチパネル32の表示面または表示面と水平な平面と交わる場合にも操作に応じて3次元オブジェクトを変化させる。このように、3次元オブジェクトを押す操作を立体的に判定することにより、3次元オブジェクトに対して多様な操作を行うことが可能になる。なお、3次元オブジェクトを押す操作を立体的に判定するためには、障害物が死角を作らないように、複数の撮影部を用意して異なる方向から指F1等を撮影することが望ましい。
次に、図8から図14を参照しながら、図4に示したオブジェクトデータ24bおよび作用データ24cについてさらに詳しく説明する。図8は、オブジェクトデータ24bに格納される情報の一例を示す図である。図9から図14は、作用データ24cに格納される情報の一例を示す図である。
図8に示すように、オブジェクトデータ24bには、種別、形状情報、色、透明度等を含む情報が3次元オブジェクト毎に格納される。種別は、3次元オブジェクトの物理的な性質を示す。種別は、例えば、「剛体」、「弾性体」等の値をとる。形状情報は、3次元オブジェクトの形状を示す情報である。形状情報は、例えば、3次元オブジェクトを構成する面の頂点座標の集合である。色は、3次元オブジェクトの表面の色である。透明度は、3次元オブジェクトが光を透過させる度合いである。なお、オブジェクトデータ24bは、複数の3次元オブジェクトに関する情報を保持することができる。
作用データ24cには、押す操作が検出された場合の変化に関する情報が3次元オブジェクトの種別毎に格納される。図9に示すように、3次元オブジェクトの種別が「剛体」の場合、支点の有無、押された方向における障害物の有無、押される速度に応じて、押す操作が検出された場合の変化が異なる。なお、ここでいう障害物とは、他の3次元オブジェクトである。また、押される速度が速いか遅いかは閾値に基づいて判定される。
3次元オブジェクトに支点がなく、押された方向に障害物がない場合、3次元オブジェクトは、押された方向に押された量に応じて移動するように表示される。このように表示される3次元オブジェクトは、例えば、積み木、ペン、本である。なお、移動の仕方については、滑るのか回転するのかを3次元オブジェクトの形状に基づいて決定してよい。また、押す物体と一緒に移動するのか、押す物体にはじかれるように物体と離れて移動するのかについては、押される速度に基づいて決定してよいし、3次元オブジェクトと底面の摩擦抵抗の算出値または設定値に基づいて決定してもよい。
3次元オブジェクトに支点がなく、押された方向に固定された障害物がある場合、3次元オブジェクトは、押された方向に押された量に応じて移動し、障害物と接触した時点で移動が停止するように表示される。このように表示される3次元オブジェクトは、例えば、積み木、ペン、本である。なお、押された速度が速い場合は、3次元オブジェクトが障害物を破壊して移動を継続することとしてもよい。また、3次元オブジェクトが押す物体にはじかれるように物体と離れて移動している間に障害物と接触した場合は、跳ね返ったように3次元オブジェクトを逆方向に移動させてもよい。
3次元オブジェクトに支点がなく、押された方向に固定されていない他の剛体があり、押される速度が遅い場合、3次元オブジェクトは、押された方向に押された量に応じて移動し、他の剛体と接触した後は、他の剛体もともに移動するように表示される。また、3次元オブジェクトに支点がなく、押された方向に固定されていない他の剛体があり、押される速度が速い場合、3次元オブジェクトは、押された方向に押された量に応じて移動するように表示される。そして、3次元オブジェクトが他の剛体と接触した後は、他の剛体がはじかれて移動するように表示される。他の剛体と接触した後、3次元オブジェクトは、その場で停止してもよいし、速度を落として移動を継続してもよい。このように表示される3次元オブジェクトと他の剛体の組み合わせは、例えば、ボーリングの球とピンの組み合わせや、ビー玉同士の組み合わせである。
3次元オブジェクトに支点がなく、押された方向に固定されていない他の剛体があるが、他の剛体はすり抜け可能である場合、3次元オブジェクトは、押された方向に押された量に応じて移動し、他の剛体と接触した後も、他の剛体をすり抜けてそのまま移動し続けるように表示される。現実には、剛体が剛体をすり抜けることはないが、このようなすり抜けを可能にすることにより、利用者に斬新な体験を提供することができる。このように表示される3次元オブジェクトと他の剛体の組み合わせは、例えば、ボーリングの球とピンの組み合わせや、ビー玉同士の組み合わせである。なお、押される速度に閾値を設け、押される速度が閾値以下の場合は、3次元オブジェクトが他の剛体をすり抜けないこととしてもよい。
3次元オブジェクトに支点がある場合、3次元オブジェクトは、押された方向および量に応じて、支点を中心に回転するように表示される。ここでいう回転とは、360度ぐるぐると回る回転であってもよいし、所定の回転範囲内を往復する回動であってもよい。このように表示される3次元オブジェクトは、例えば、振り子、ボクシングのサンドバック、風車である。
また、図10に示すように、3次元オブジェクトの種別が「弾性体」の場合、素材、変化量の制限の有無、押される速度に応じて、押す操作が検出された場合の変化が異なる。なお、ここでいう素材は、3次元オブジェクトの想定上の素材であり、オブジェクトデータ24bにおいて定義される。
3次元オブジェクトの素材がゴム系であり、変化量に制限がなく、押される速度が遅い場合、3次元オブジェクトは、押された方向に押された量に応じて変形し、押される状態から解放されると元の形状に戻るように表示される。また、3次元オブジェクトの素材がゴム系であり、変化量に制限がなく、押される速度が速い場合、3次元オブジェクトは、押された方向に押された量に応じて変形し、その後、はじかれて、元の形状に戻りながら押された方向へ移動するように表示される。このように表示される3次元オブジェクトは、例えば、ゴムボール、消しゴムである。
3次元オブジェクトの素材がゴム系であり、変化量に制限がある場合、3次元オブジェクトは、押された方向に押された量に応じて変形可能範囲まで変形し、その後も押す操作が検出されると、元の形状に戻りながら押された方向へ移動するように表示される。このように表示される3次元オブジェクトは、例えば、ゴムボール、消しゴムである。
3次元オブジェクトの素材が金属系の場合、3次元オブジェクトは、押された方向に押された量に応じて変形可能範囲まで変形し、押される状態から解放されると元の形状に戻ったり変形したりを繰り返す(振動する)ように表示される。なお、変形可能方向以外の方向に押された場合、3次元オブジェクトは、剛体と同様に移動する。このように表示される3次元オブジェクトは、例えば、板ばね、弦巻ばねである。
また、図11に示すように、3次元オブジェクトの種別が「塑性体」の場合、3次元オブジェクトは、押された箇所がへこんで全体形状が変化するように表示される。このように表示される3次元オブジェクトは、例えば、粘土である。
また、図12に示すように、3次元オブジェクトの種別が「液体」の場合、押される速度に応じて、押す操作が検出された場合の変化が異なる。押される速度が遅い場合、押す物体が3次元オブジェクト、すなわち、液体につかるように表示される。押される速度が中程度の場合、押す物体が液体につかり、液体に波紋が拡がるように表示される。押される速度が速い場合、押す物体が液体につかり、液体から水しぶきがあがるように表示される。このように表示される3次元オブジェクトは、例えば、コップに入った水である。
また、図13に示すように、3次元オブジェクトの種別が「気体」の場合、押される速度に応じて、押す操作が検出された場合の変化が異なる。押される速度が遅い場合、3次元オブジェクト、すなわち、気体が押す物体によってさえぎられてその周囲を漂うように表示される。押される速度が中程度の場合、気体が押す物体によって散乱されるように表示される。押される速度が速い場合、押す物体の移動方向の後ろ側で乱流により気体に渦が生まれるように表示される。このように表示される3次元オブジェクトは、例えば、煙である。
また、図14に示すように、3次元オブジェクトの種別が「集合体」の場合、集合体の要素の結合状況に応じて、押す操作が検出された場合の変化が異なる。集合体の要素の結合がない場合、3次元オブジェクトは、押された箇所がへこんで集合体としての全体形状が変化するように表示される。このように表示される3次元オブジェクトは、例えば、砂、砂糖である。
集合体の要素の結合がある場合、3次元オブジェクトは、押された箇所がへこんで集合体としての全体形状が変化するように表示される。さらに、押された箇所以外の要素が、押された箇所の要素に引っ張られて移動するように表示される。このように表示される3次元オブジェクトは、例えば、鎖である。
集合体の要素の結合はないが押す物体との間に引力または斥力が働く場合、3次元オブジェクトは、押す物体と接しなくても移動するように表示される。押す物体との間に引力が働く場合、3次元オブジェクトは、押す物体と接しなくても、押す物体と所定距離以内に入ると押す物体に引き寄せられる。また、押す物体との間に斥力が働く場合、3次元オブジェクトは、押す物体と接しなくても、押す物体と所定距離以内に入ると押す物体から遠ざかる。このように表示される3次元オブジェクトと押す物体の組み合わせは、例えば、鉄粉と磁石の組み合わせである。このとき、例えば、指を磁石として扱ってもよい。
このように、オブジェクトデータ24bに格納された情報と作用データ24cに格納された情報とに基づいて3次元オブジェクトを変化させることにより、押す操作に応じて、3次元オブジェクトを多様に変化させることができる。なお、オブジェクトデータ24bおよび作用データ24cに格納される情報は、上記の例に限定されず、用途等に応じて適宜変更してよい。例えば、押す物体の種別および大きさや押す物体と3次元オブジェクトの接触面積の大きさに応じて、3次元オブジェクトの変化の仕方が切り替わるように設定してもよい。
次に、図15および図16を参照しながら、3次元オブジェクトを押す操作に関して携帯電話端末1が実行する処理手順について説明する。図15は、第1の実施例における3次元オブジェクトの接触検出処理の処理手順を示すフローチャートである。図15に示す処理手順は、所定の操作が検出されたこと等を契機として、制御部22が制御プログラム24aを実行することによって実現される。
図15に示すように、制御部22は、まず、ステップS101として、オブジェクトデータ24bに基づいて3次元オブジェクトを立体的に表示する。オブジェクトデータ24bは、予め記憶部24に記憶されていてもよいし、通信部26による無線通信によってサーバ装置等の他の装置から取得してもよい。
続いて、制御部22は、ステップS102として、検出部、すなわち、撮影部40aおよび40b、または、撮影部42aおよび42bによって所定の物体が検出されたかを判定する。所定の物体は、例えば、利用者の指である。所定の物体が検出されない場合(ステップS102,No)、制御部22は、ステップS108として、操作終了が検出されたかを判定する。
操作終了は、例えば、操作部13に対する所定の操作が行われた場合に検出されてもよいし、タッチパネル32に対する所定の操作が行われた場合に検出されてもよい。また、操作終了は、撮影部40a、40b、42a、または42bの少なくとも一つで利用者の手による所定のジェスチャーが撮影された場合に検出されてもよい。操作終了が検出された場合(ステップS108,Yes)、制御部22は、接触検出処理を終了させる。操作終了が検出されない場合(ステップS108,No)、制御部22は、ステップS102以降を再実行する。
所定の物体が検出された場合(ステップS102,Yes)、制御部22は、ステップS103として、所定の物体の種別を判定する。所定の物体の種別は、例えば、撮影部40aおよび40b、または、撮影部42aおよび42bによって撮影された画像中の物体の大きさ、形状、色等に基づいて判定される。続いて、制御部22は、ステップS104として、所定の物体に接触している3次元オブジェクトを探す。
所定の物体に接触している3次元オブジェクトがない場合(ステップS105,No)、制御部22は、ステップS108として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS108,Yes)、制御部22は、接触検出処理を終了させる。操作終了が検出されない場合(ステップS108,No)、制御部22は、ステップS102以降を再実行する。
所定の物体に接触している3次元オブジェクトがみつかった場合(ステップS105,Yes)、制御部22は、ステップS106として、オブジェクトデータ24bに基づいて、所定の物体に接触している3次元オブジェクトの種別を判定する。そして、制御部22は、ステップS107として、後述する操作検出処理を実行する。その後、制御部22は、ステップS108として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS108,Yes)、制御部22は、接触検出処理を終了させる。操作終了が検出されない場合(ステップS108,No)、制御部22は、ステップS102以降を再実行する。
図16は、第1の実施例における操作検出処理の処理手順を示すフローチャートである。図16に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。
図16に示すように、制御部22は、まず、ステップS201として、所定の物体と3次元オブジェクトの接触時間を取得する。そして、制御部22は、ステップS202として、所定の物体が3次元オブジェクトの内部に移動したかを判定する。所定の物体が3次元オブジェクトの内部に移動していない場合(ステップS202,No)、制御部22は、ステップS201以降を再実行する。
所定の物体が3次元オブジェクトの内部に移動している場合(ステップS202,Yes)、制御部22は、ステップS203として、接触時間が所定時間以上であるかを判定する。接触時間が所定時間よりも短い場合(ステップS203,No)、その3次元オブジェクトは操作対象ではないと判断されるため、制御部22は、操作検出処理を終了させる。
接触時間が所定時間以上の場合(ステップS203,Yes)、制御部22は、ステップS204として、所定の物体の速度を算出する。そして、制御部22は、ステップS205として、所定の物体の種別、位置および速度と、3次元オブジェクトの種別等に基づいて3次元オブジェクトを変化させる。具体的な変化のさせ方は、作用データ24cに従って決定される。
続いて、制御部22は、ステップS206として、所定の物体が3次元オブジェクトの外部に移動したかを判定する。所定の物体が3次元オブジェクトの外部に移動していない場合、すなわち、押す操作が継続している場合(ステップS206,No)、制御部22は、ステップS204以降を再実行する。
所定の物体が3次元オブジェクトの外部に移動した場合、すなわち、3次元オブジェクトが解放された場合(ステップS206,Yes)、制御部22は、ステップS207として、3次元オブジェクトの変化が継続するかを判定する。例えば、作用データ24cにおいて解放後も振動が所定時間継続することが定義されている場合に、3次元オブジェクトの変化が継続すると判定される。
3次元オブジェクトの変化が継続する場合(ステップS207,Yes)、制御部22は、ステップS208として、3次元オブジェクトを変化させ、その後、ステップS207以降を再実行する。3次元オブジェクトの変化が継続しない場合(ステップS207,No)、制御部22は、操作検出処理を終了させる。
上述してきたように、第1の実施例では、タッチパネル32を透明にしたので、利用者は、タッチパネル32によって表示される3次元オブジェクトを遮ることなく、タッチパネル32の背面側で3次元オブジェクトを操作することができる。また、第1の実施例では、押す操作に応じて3次元オブジェクトを多様に変化させ、それにより、利用者に対して利便性の高い操作方法を提供することができる。
以下に、第2の実施例について説明する。第2の実施例に係る携帯電話端末1は、制御プログラム24aが提供する機能に基づいて実行する操作検出処理の処理手順が第1の実施例と異なるものの、ハードウェアとして見ると、第1の実施例に係る携帯電話端末1と同一の構成を有する。そこで、第2の実施例では、第1の実施例と重複する説明は省略し、主として、操作検出処理について説明する。
まず、図17を参照しながら、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化について説明する。図17は、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化について説明するための図である。図17に示すステップSB1では、利用者が指F1を3次元オブジェクトOB1と接触させ、ステップSB2では、利用者が指F1を3次元オブジェクトOB1の内側に侵入させている。
携帯電話端末1は、視認空間内で現実の物体が検出され、かつ、その物体が3次元オブジェクトOB1と接触した後に3次元オブジェクトOB1の内部へ移動する状態が所定時間以上継続した場合、3次元オブジェクトOB1が操作対象として選択されたと判定する。そして、携帯電話端末1は、3次元オブジェクトOB1の表示態様を変更する等して、3次元オブジェクトOB1が操作対象として選択されたことを利用者に通知する。さらに、携帯電話端末1は、ステップSB3に示すように、3次元オブジェクトOB1を、あたかもステップSB1の段階で既に押す操作の対象として選択されていたかのように、接触検出以降の指F1による操作に応じて変化させる。
このように、物体と3次元オブジェクトの接触を検出した後は、物体がその場に留まらなくても押す操作を検出可能にすることにより、利用者は、3次元オブジェクトを押す操作を迅速に開始することができる。また、接触後に物体が3次元オブジェクトOB1の内部へ移動する状態が所定時間以上継続することを条件として付加することにより、他の3次元オブジェクトを操作するために指を移動させる過程で、意図しない3次元オブジェクトが操作対象として選択されることを抑止できる。
次に、図18を参照しながら、第2の実施例における操作検出処理の処理手順について説明する。図18は、第2の実施例における操作検出処理の処理手順を示すフローチャートである。図18に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。なお、接触検出処理の処理手順は、図15に示した手順と同様である。
図18に示すように、制御部22は、まず、ステップS301として、所定の物体が3次元オブジェクトの内部に移動しているかを判定する。所定の物体が3次元オブジェクトの内部に移動していない場合(ステップS301,No)、その3次元オブジェクトは操作対象ではないと判断されるため、制御部22は、操作検出処理を終了させる。
所定の物体が3次元オブジェクトの内部に移動している場合(ステップS301,Yes)、制御部22は、ステップS302として、接触検出からの経過時間が所定時間以上であるかを判定する。経過時間が所定時間よりも短い場合(ステップS302,No)、制御部22は、ステップS301以降を再実行する。
接触時間が所定時間以上の場合(ステップS302,Yes)、制御部22は、ステップS303として、所定の物体の速度を算出する。そして、制御部22は、ステップS304として、所定の物体の種別、位置および速度と、3次元オブジェクトの種別等に基づいて3次元オブジェクトを変化させる。具体的な変化のさせ方は、作用データ24cに従って決定される。
続いて、制御部22は、ステップS305として、所定の物体が3次元オブジェクトの外部に移動したかを判定する。所定の物体が3次元オブジェクトの外部に移動していない場合、すなわち、押す操作が継続している場合(ステップS305,No)、制御部22は、ステップS303以降を再実行する。
所定の物体が3次元オブジェクトの外部に移動した場合、すなわち、3次元オブジェクトが解放された場合(ステップS305,Yes)、制御部22は、ステップS306として、3次元オブジェクトの変化が継続するかを判定する。例えば、作用データ24cにおいて解放後も振動が所定時間継続することが定義されている場合に、3次元オブジェクトの変化が継続すると判定される。
3次元オブジェクトの変化が継続する場合(ステップS306,Yes)、制御部22は、ステップS307として、3次元オブジェクトを変化させ、その後、ステップS306以降を再実行する。3次元オブジェクトの変化が継続しない場合(ステップS306,No)、制御部22は、操作検出処理を終了させる。
上述してきたように、第2の実施例では、指等の物体が3次元オブジェクトに接触する状態が所定時間以上継続しなくても押す操作が認識されることとしたので、利用者は、3次元オブジェクトを押す操作を迅速に開始することができる。
以下に、第3の実施例について説明する。第3の実施例に係る携帯電話端末1は、制御プログラム24aが提供する機能に基づいて実行する操作検出処理の処理手順が第1の実施例と異なるものの、ハードウェアとして見ると、第1の実施例に係る携帯電話端末1と同一の構成を有する。そこで、第3の実施例では、第1の実施例と重複する説明は省略し、主として、操作検出処理について説明する。
まず、図19および図20を参照しながら、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化について説明する。図19および図20は、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化について説明するための図である。図19に示すステップSC1では、タッチパネル32によって、視認空間中に、3次元オブジェクトOB1が立体的に表示されている。また、利用者は、指F1を3次元オブジェクトOB1と接触させている。
ここで、利用者が指F1を3次元オブジェクトOB1の内側に侵入させたものとする。携帯電話端末1は、3次元オブジェクトOB1に接触した物体が3次元オブジェクトOB1の内側に移動したことを検出すると、ステップSC2に示すように、その時点から、3次元オブジェクトOB1を指F1による操作に応じて変化させる。図19に示す例では、ステップSC2において、3次元オブジェクトOB1は、指F1の移動に合わせて移動を開始している。
そして、携帯電話端末1は、ステップSC3に示すように、指F1が3次元オブジェクトOB1の内側へ向けて移動することが所定時間以上継続した段階で、3次元オブジェクトOB1を操作対象として確定する。そして、携帯電話端末1は、3次元オブジェクトOB1の表示態様を変更する等して、3次元オブジェクトOB1が操作対象として確定したことを利用者に通知する。その後も、指F1の3次元オブジェクトOB1の内側への移動が検出される間、携帯電話端末1は、3次元オブジェクトOB1を変化させ続ける。
なお、図20のステップSC4に示すように、所定時間が経過する前に指F1の3次元オブジェクトOB1の内側への移動が検出されなくなった場合、携帯電話端末1は、それまでに加えた変化と逆の変化を3次元オブジェクトOB1に加える。その結果、3次元オブジェクトOB1は、ステップSC1の段階と同じ位置に同じ状態で表示される。逆の変化を3次元オブジェクトOB1に加える速度は、それまでに3次元オブジェクトOB1に変化が加えられた速度よりも速くてもよい。すなわち、高速に逆再生しているかのように3次元オブジェクトOB1を逆変化させてもよい。
このように、3次元オブジェクトの内側への物体の侵入が検出された段階から3次元オブジェクトに変化を加え始めることにより、利用者は、3次元オブジェクトが選択されつつあることを選択が確定する前から認識することができる。その結果、利用者は、意図した3次元オブジェクトが選択されたか否かを早期に知ることができる。意図しない3次元オブジェクトが選択された場合、利用者は、所定時間が経過する前に操作を中止することにより、意図せずに選択された3次元オブジェクトを元の状態に戻すことができる。
なお、指F1の3次元オブジェクトOB1の内側への移動が所定時間以上継続するまでは、変化を加えられている3次元オブジェクトを通常時とも操作対象としての選択が確定した状態とも異なる態様(例えば、半透明)で表示してもよい。このように表示態様を変更することにより、利用者が3次元オブジェクトの状態を判別しやすくなる。
次に、図21を参照しながら、第3の実施例における操作検出処理の処理手順について説明する。図21は、第3の実施例における操作検出処理の処理手順を示すフローチャートである。図21に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。なお、接触検出処理の処理手順は、図15に示した手順と同様である。
図21に示すように、制御部22は、まず、ステップS401として、所定の物体が3次元オブジェクトの内部に移動しているかを判定する。所定の物体が3次元オブジェクトの内部に移動していない場合(ステップS401,No)、その3次元オブジェクトは操作対象ではないと判断されるため、制御部22は、操作検出処理を終了させる。
所定の物体が3次元オブジェクトの内部に移動している場合(ステップS401,Yes)、制御部22は、ステップS402として、所定の物体の速度を算出する。そして、制御部22は、ステップS403として、所定の物体の種別、位置および速度と、3次元オブジェクトの種別等に基づいて3次元オブジェクトを変化させる。具体的な変化のさせ方は、作用データ24cに従って決定される。
続いて、制御部22は、ステップS404として、接触検出からの経過時間が所定時間以上であるかを判定する。経過時間が所定時間よりも短い場合、すなわち、3次元オブジェクトが押す操作の対象として確定していない場合(ステップS404,No)、制御部22は、ステップS405として、所定の物体の3次元オブジェクトの内部方向への移動が継続しているかを判定する。
3次元オブジェクトの内部方向への移動が継続している場合(ステップS405,Yes)、制御部22は、ステップS402以降を再実行する。3次元オブジェクトの内部方向への移動が継続していない場合(ステップS405,No)、制御部22は、ステップS406として、3次元オブジェクトを逆変化させて元の状態に戻す。そして、制御部22は、操作検出処理を終了させる。
また、接触検出からの経過時間が所定時間以上である場合(ステップS404,Yes)、制御部22は、ステップS407として、所定の物体が3次元オブジェクトの外部に移動したかを判定する。所定の物体が3次元オブジェクトの外部に移動していない場合、すなわち、押す操作が継続している場合(ステップS407,No)、制御部22は、ステップS402以降を再実行する。
所定の物体が3次元オブジェクトの外部に移動した場合、すなわち、3次元オブジェクトが解放された場合(ステップS407,Yes)、制御部22は、ステップS408として、3次元オブジェクトの変化が継続するかを判定する。例えば、作用データ24cにおいて解放後も振動が所定時間継続することが定義されている場合に、3次元オブジェクトの変化が継続すると判定される。
3次元オブジェクトの変化が継続する場合(ステップS408,Yes)、制御部22は、ステップS409として、3次元オブジェクトを変化させ、その後、ステップS408以降を再実行する。3次元オブジェクトの変化が継続しない場合(ステップS408,No)、制御部22は、操作検出処理を終了させる。
上述してきたように、第3の実施例では、押す操作が検出された時点から、操作に応じて3次元オブジェクトを変化させることとしたので、利用者が、押す操作の対象となっている3次元オブジェクトを認識しやすい。
以下に、第4の実施例について説明する。上記の説明では、3次元オブジェクトを押す操作に関して説明したが、第4の実施例では、3次元オブジェクトを掴んで行う操作に関して説明する。第4の実施例に係る携帯電話端末1は、ハードウェアとして見ると、第1の実施例に係る携帯電話端末1と同一の構成を有する。そこで、第4の実施例では、第1の実施例と重複する説明は省略する。
まず、図22を参照しながら、3次元オブジェクトを掴んで行う操作の検出について説明する。図22は、3次元オブジェクトを掴んで行う操作の検出について説明するための図である。図22では、タッチパネル32によって、背面側の視認空間に、3次元オブジェクトOB1が立体的に表示されている。
ここで、利用者が3次元オブジェクトOB1を掴んで行う操作を実行したいものとする。3次元オブジェクトOB1を掴んで行う操作を実行するには、まず、操作の対象として3次元オブジェクトOB1を選択する必要がある。3次元オブジェクトOB1を選択するために、利用者は、図22に示すように、指F1と指F2の間に3次元オブジェクトOB1が位置するように指F1および指F2を移動させ、その状態を所定時間以上維持する。
携帯電話端末1は、視認空間内で2つの物体が検出され、かつ、それらの2つの物体の間に3次元オブジェクトOB1が位置する状態が所定時間以上継続した場合、3次元オブジェクトOB1が選択されたと判定し、3次元オブジェクトOB1を選択状態にする。そして、携帯電話端末1は、3次元オブジェクトOB1の表示態様を変更する等して、3次元オブジェクトOB1が選択状態になったことを利用者に通知する。
2つの物体の間に3次元オブジェクトOB1が位置しているかの判定は、視認空間における2つの物体の現実の位置と、視認空間における3次元オブジェクトOB1の形状および計算上の位置とに基づいて行われる。また、選択状態になったことの通知は、例えば、3次元オブジェクトOB1の全体の色を変更することや、3次元オブジェクトOB1の表面のうち、2つの物体を結ぶ直線と交わる位置の近傍の色を変更することによって実現される。このような視覚的な通知に代えて、あるいは、このような視覚的な通知に加えて、音や振動による通知を行ってもよい。
このように、携帯電話端末1は、指等の現実の物体の間に3次元オブジェクトOB1が位置する状態が所定時間以上継続して検出された場合に、3次元オブジェクトOB1が選択されたと判定する。指の間に3次元オブジェクトOB1を挟むように指を配置するという操作は、人間が現実のオブジェクトを選択するためにオブジェクトを掴む操作と類似している。そのため、かかる操作は、3次元オブジェクトを選択するための操作として、直感的で分かりやすい。また、状態が所定時間以上継続して検出されることを条件として付加することにより、他の3次元オブジェクトを選択するために指を移動させる過程で、意図しない3次元オブジェクトが選択されることを抑止できる。
なお、3次元オブジェクトを操作するために用いられる物体は、指に限定されず、手、足、棒、虫ピン等であってもよい。また、携帯電話端末1は、2つの物体がタッチパネル32の表示面と平行でない場合、すなわち、2つの物体を結ぶ直線がタッチパネル32の表示面または表示面と水平な平面と交わる場合にも上記の条件に基づいて3次元オブジェクトを選択状態にする。このように、3次元オブジェクトが選択されたか否かを立体的に判定することにより、3次元オブジェクトの形状に合わせて選択操作を行い易くなる。
3次元オブジェクトが選択されたか否かを立体的に判定するためには、障害物が死角を作らないように、複数の撮影部を用意して異なる方向から指F1および指F2等を撮影することが望ましい。
携帯電話端末1は、3次元オブジェクトOB1が選択状態になったと判定した後、指F1および指F2の動きに応じて、3次元オブジェクトOB1に移動、変形、消失等の変化を加える。
次に、図23および図24を参照しながら、3次元オブジェクトの操作に関して携帯電話端末1が実行する処理手順について説明する。図23は、第4の実施例における3次元オブジェクトの選択検出処理の処理手順を示すフローチャートである。図23に示す処理手順は、所定の操作が検出されたこと等を契機として、制御部22が制御プログラム24aを実行することによって実現される。
図23に示すように、制御部22は、まず、ステップS501として、3次元オブジェクトを立体的に表示する。3次元オブジェクトを表示するためのデータは、予め記憶部24に記憶されていてもよいし、通信部26による無線通信によってサーバ装置等の他の装置から取得してもよい。
続いて、制御部22は、ステップS502として、検出部、すなわち、撮影部40aおよび40b、または、撮影部42aおよび42bによって第1の物体および第2の物体が検出されたかを判定する。第1の物体および第2の物体は、例えば、利用者の指である。第1の物体および第2の物体が検出されない場合(ステップS502,No)、制御部22は、ステップS510として、操作終了が検出されたかを判定する。
操作終了は、例えば、操作部13に対する所定の操作が行われた場合に検出されてもよいし、タッチパネル32に対する所定の操作が行われた場合に検出されてもよい。また、操作終了は、撮影部40a、40b、42a、または42bの少なくとも一つで利用者の手による所定のジェスチャーが撮影された場合に検出されてもよい。操作終了が検出された場合(ステップS510,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS510,No)、制御部22は、ステップS502以降を再実行する。
第1の物体および第2の物体が検出された場合(ステップS502,Yes)、制御部22は、ステップS503として、表示されている3次元オブジェクトの中から第1の物体と第2の物体との間に表示されている3次元オブジェクトを探す。該当する3次元オブジェクトがない場合(ステップS504,No)、制御部22は、ステップS510として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS510,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS510,No)、制御部22は、ステップS502以降を再実行する。
第1の物体と第2の物体との間に表示されている3次元オブジェクトがみつかった場合(ステップS504,Yes)、制御部22は、ステップS505として、第1の物体と第2の物体との間に3次元オブジェクトが位置している時間を取得する。取得した時間が所定時間未満の場合(ステップS506,No)、制御部22は、ステップS510として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS510,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS510,No)、制御部22は、ステップS502以降を再実行する。
取得した時間が所定時間以上の場合(ステップS506,Yes)、制御部22は、ステップS507として、第1の物体と第2の物体の距離を算出する。また、制御部22は、ステップS508として、第1の物体と第2の物体との間に表示されている3次元オブジェクトを選択状態にする。そして、制御部22は、ステップS509として、後述する操作検出処理を実行し、その中で、選択状態にある3次元オブジェクトを検出された操作に応じて変化させる。操作検出処理が終了した後、制御部22は、ステップS510として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS510,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS510,No)、制御部22は、ステップS502以降を再実行する。
図24は、第4の実施例における操作検出処理の処理手順を示すフローチャートである。図24に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。
図24に示すように、制御部22は、まず、ステップS601として、第1の物体と第2の物体の距離を算出する。そして、制御部22は、ステップS602として、操作検出処理の開始時点以降の第1の物体と第2の物体の距離がほぼ一定であるかを判定する。距離がほぼ一定とは、例えば、現時点での第1の物体と第2の物体の距離の変化量が、操作検出処理の開始時点の距離と比較して、所定の範囲(第1の物体および第2の物体が通常の速度で移動した場合の距離の最大変化量の±10%等)以内に収まっていることを意味する。また、第1の物体と第2の物体の距離が操作検出処理の開始時点以降縮まり続けている場合(第1の物体および第2の物体が3次元オブジェクトを押しつぶす方向に移動している場合)に、距離がほぼ一定であると判定してもよい。また、手振れ等の範囲内でしか両者の距離が変化していない場合に、距離がほぼ一定であると判定してもよい。
第1の物体と第2の物体の距離がほぼ一定の場合(ステップS602,Yes)、制御部22は、ステップS603として、第1の物体および第2の物体の移動速度を算出する。続いて、制御部22は、ステップS604として、算出した移動速度が閾値以下であるかを判定する。ここで用いられる閾値は、例えば、人がものを放り投げるときの指先の移動速度である。また、閾値と比較される移動速度は、第1の物体の移動速度と第2の物体の移動速度の平均であってもよいし、いずれか速い方であってもよいし、いずれか遅い方であってもよい。
移動速度が閾値以下の場合(ステップS604,Yes)、制御部22は、ステップS605として、検出された第1の物体および第2の物体の動きに応じて3次元オブジェクトを移動させたり回転させたりする。例えば、第1の物体および第2の物体の右方向への移動が検出された場合、制御部22は、第1の物体および第2の物体の移動に合わせて3次元オブジェクトを右方向へ移動させる。また、第1の物体および第2の物体の左回りでの回転が検出された場合、制御部22は、第1の物体および第2の物体の回転に合わせて3次元オブジェクトを左回りで回転させる。また、移動と回転が同時に検出された場合、移動と回転が同時に実行される。なお、3次元オブジェクトの移動や回転に対する障害物がある場合、3次元オブジェクトが障害物に接触した時点で3次元オブジェクトの移動や回転を停止させてもよい。そして、制御部22は、ステップS601以降を再実行する。
移動速度が閾値より速い場合(ステップS604,No)、制御部22は、ステップS606として、3次元オブジェクトを消去する。3次元オブジェクトを消去するに際して、3次元オブジェクトが第1の物体および第2の物体の移動方向へ向けて飛んでいくようにアニメーション表示してもよい。そして、制御部22は、操作検出処理を終了させる。このように、3次元オブジェクトを放り投げるように第1の物体および第2の物体が高速で移動した場合に3次元オブジェクトを消去することにより、直感的な操作によって3次元オブジェクトの消去を実現することができる。なお、第1の物体および第2の物体を高速で移動させる操作ではなく、例えば、3次元オブジェクトを握りつぶす操作に3次元オブジェクトの消去を割り当ててもよい。また、3次元オブジェクトを消去する代わりに、3次元オブジェクトを当初の配置場所に戻すこととしてもよい。
第1の物体と第2の物体の距離がほぼ一定でない場合(ステップS602,No)、制御部22は、ステップS607として、距離が、3次元オブジェクトの選択時、すなわち、操作検出処理の開始時点よりも拡大しているかを判定する。距離が拡大している場合(ステップS607,Yes)、制御部22は、ステップS608として、3次元オブジェクトの選択状態を解除する。第1の物体と第2の物体の距離を拡大するという操作は、掴んでいる現実のオブジェクトを放す操作と類似している。そのため、かかる操作は、3次元オブジェクトの選択を解除するための操作として、直感的で分かりやすい。
続いて、制御部22は、ステップS609として、選択状態を解除した3次元オブジェクトを重力等に従って移動させる。そして、制御部22は、操作検出処理を終了させる。ここでの移動は、例えば、3次元オブジェクトが重力に従って落下し、床やテーブルの上で停止するように表示される。3次元オブジェクトの動きを停止させる前に、3次元オブジェクトの弾性や床やテーブルの硬度に応じて3次元オブジェクトをバウンドさせてもよい。3次元オブジェクトが床やテーブルに衝突するときの衝撃の大きさを算出し、衝撃が所定の値よりも大きい場合には3次元オブジェクトを破損したように表示してもよい。また、実際の重力が働く場合よりも3次元オブジェクトをゆっくりと移動させてもよい。
第1の物体と第2の物体の距離が3次元オブジェクトの選択時よりも縮まっている場合(ステップS607,No)、制御部22は、ステップS610として、距離に応じて3次元オブジェクトを変形させる。そして、制御部22は、ステップS601以降を再実行する。3次元オブジェクトを変形させる程度は、例えば、3次元オブジェクトに属性として設定されている弾性に応じて変更してもよい。制御部22は、ゴムボールを模した3次元オブジェクトのように属性として低い硬度を設定されているオブジェクトについては、第1の物体と第2の物体の距離が縮まるに応じて変形の度合いを高めてよい。また、制御部22は、積み木を模した3次元オブジェクトのように属性として高い硬度を設定されているオブジェクトについては、第1の物体と第2の物体の距離が縮まっても変形の度合いを小さく保ってよい。
なお、第1の物体と第2の物体の距離が3次元オブジェクトの選択時よりも縮まっている場合に、3次元オブジェクトを変形させるのではなく縮小させてもよい。また、第1の物体と第2の物体の距離が所定の値以下になった場合に、3次元オブジェクトを破損したように表示してもよい。
上述してきたように、第4の実施例では、指等の物体の間に3次元オブジェクトが位置する状態が所定時間以上継続した場合に3次元オブジェクトが掴まれることとしたので、3次元オブジェクトの選択を直感的で分かりやすい操作により実現することができる。
以下に、第5の実施例について説明する。第5の実施例に係る携帯電話端末1は、制御プログラム24aが提供する機能に基づいて実行する選択検出処理の処理手順が第4の実施例と異なるものの、ハードウェアとして見ると、第4の実施例に係る携帯電話端末1と同一の構成を有する。そこで、第5の実施例では、第4の実施例と重複する説明は省略し、主として、選択検出処理について説明する。
まず、図25を参照しながら、3次元オブジェクトに対する操作の検出について説明する。図25は、第5の実施例における3次元オブジェクトに対する操作の検出について説明するための図である。図25に示すステップSD1では、タッチパネル32によって、背面側の視認空間に、3次元オブジェクトOB1が立体的に表示されている。また、3次元オブジェクトOB1を選択するために、利用者は、指F1と指F2の間に3次元オブジェクトOB1が位置するように指F1および指F2を移動させている。
携帯電話端末1は、視認空間内で2つの物体が検出され、かつ、それらの2つの物体の間に3次元オブジェクトOB1が位置する場合、2つの物体の距離の変化を監視する。そして、距離が所定時間以上ほぼ一定であれば、3次元オブジェクトOB1が選択されたと判定し、3次元オブジェクトOB1を選択状態にする。そして、携帯電話端末1は、3次元オブジェクトOB1の表示態様を変更する等して、3次元オブジェクトOB1が選択状態になったことを利用者に通知する。
携帯電話端末1が2つの物体の距離の変化を監視している間、2つの物体は、3次元オブジェクトOB1を挟む位置に留まる必要はない。すなわち、利用者は、ステップSD1に示したように指F1と指F2の間に3次元オブジェクトOB1が位置するように指F1および指F2を移動させた後、その状態を保つことなく、指F1および指F2を他の位置へ移動させて構わない。
ステップSD1の状態から、ステップSD2に示すように、利用者が、指F1と指F2の距離D1をほぼ一定に保ったまま移動させたものとする。この場合、携帯電話端末1は、ステップSD3に示すように、指F1と指F2の距離D1がほぼ一定に保たれた状態が所定時間以上継続した段階で、3次元オブジェクトOB1を選択状態にする。そして、携帯電話端末1は、3次元オブジェクトOB1を、あたかもステップSD1の段階で既に選択されていたかのように、指F1および指F2の間に移動させる。ステップSD1からステップSD3までの指F1と指F2の動きを記憶しておき、記憶しておいて動きに合わせて3次元オブジェクトOB1を回転等させてもよい。その後、携帯電話端末1は、指F1および指F2の動きに応じて、3次元オブジェクトOB1に移動、変形、消失等の変化を加える。
このように、2つの物体が3次元オブジェクトを挟む位置に一旦移動した後は、物体がその場に留まらなくても3次元オブジェクトを選択可能にすることにより、利用者は、3次元オブジェクトを選択した後の操作を迅速に開始することができる。
次に、図26を参照しながら、3次元オブジェクトの操作に関して携帯電話端末1が実行する処理手順について説明する。図26は、第5の実施例における3次元オブジェクトの選択検出処理の処理手順を示すフローチャートである。図26に示す処理手順は、所定の操作が検出されたこと等を契機として、制御部22が制御プログラム24aを実行することによって実現される。
図26に示すように、制御部22は、まず、ステップS701として、3次元オブジェクトを立体的に表示する。続いて、制御部22は、ステップS702として、検出部、すなわち、撮影部40aおよび40b、または、撮影部42aおよび42bによって第1の物体および第2の物体が検出されたかを判定する。第1の物体および第2の物体が検出されない場合(ステップS702,No)、制御部22は、ステップS714として、仮選択状態の3次元オブジェクトがあれば、その3次元オブジェクトの仮選択状態を解除する。仮選択状態とは、2つの物体の間に3次元オブジェクトが表示されている状態が検出された後、2つの物体の距離がほぼ一定に保たれているかが監視されている状態である。
そして、制御部22は、ステップS715として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS715,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS715,No)、制御部22は、ステップS702以降を再実行する。
第1の物体および第2の物体が検出された場合(ステップS702,Yes)、制御部22は、ステップS703として、仮選択状態の3次元オブジェクトがあるか否かを判定する。仮選択状態の3次元オブジェクトがない場合(ステップS703,No)、制御部22は、ステップS704として、表示されている3次元オブジェクトの中から第1の物体と第2の物体との間に表示されている3次元オブジェクトを探す。
該当する3次元オブジェクトがない場合(ステップS705,No)、制御部22は、ステップS715として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS715,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS715,No)、制御部22は、ステップS702以降を再実行する。
第1の物体と第2の物体との間に表示されている3次元オブジェクトがみつかった場合(ステップS705,Yes)、制御部22は、ステップS706として、第1の物体と第2の物体との間に表示されている3次元オブジェクトを仮選択状態にする。また、制御部22は、ステップS707として、第1の物体と第2の物体の距離を算出する。
そして、制御部22は、ステップS715として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS715,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS715,No)、制御部22は、ステップS702以降を再実行する。
第1の物体および第2の物体が検出され、かつ、仮選択状態の3次元オブジェクトがある場合(ステップS703,Yes)、制御部22は、ステップS708として、第1の物体と第2の物体の距離を算出する。そして、制御部22は、ステップS709として、距離がほぼ一定であるかを判定する。距離がほぼ一定でない場合(ステップS709,No)、制御部22は、ステップS714として、仮選択状態の3次元オブジェクトの仮選択状態を解除する。
そして、制御部22は、ステップS715として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS715,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS715,No)、制御部22は、ステップS702以降を再実行する。
第1の物体と第2の物体の距離がほぼ一定の場合(ステップS709,Yes)、制御部22は、ステップS710として、距離がほぼ一定に保たれている期間が所定時間以上であるかを判定する。距離がほぼ一定に保たれている期間が所定時間未満の場合(ステップS710,No)、制御部22は、ステップS715として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS715,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS715,No)、制御部22は、ステップS702以降を再実行する。
距離がほぼ一定に保たれている期間が所定時間以上の場合(ステップS710,Yes)、制御部22は、ステップS711として、第1の物体と第2の物体との間に表示されている3次元オブジェクトを選択状態にする。また、制御部22は、ステップS712として、第1の物体と第2の物体との間に3次元オブジェクトを移動させる。そして、制御部22は、ステップS713として、図24に示した操作検出処理を実行し、その中で、選択状態にある3次元オブジェクトを検出された操作に応じて変化させる。
操作検出処理が終了した後、制御部22は、ステップS715として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS715,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS715,No)、制御部22は、ステップS702以降を再実行する。
上述してきたように、第5の実施例では、指等の物体の間に3次元オブジェクトが位置した後、物体の距離が所定時間以上ほぼ一定に保たれた場合に3次元オブジェクトが選択されることとしたので、利用者は、3次元オブジェクトの選択後の操作を迅速に開始することができる。
以下に、第6の実施例について説明する。第6の実施例に係る携帯電話端末1は、制御プログラム24aが提供する機能に基づいて実行する選択検出処理および操作検出処理の処理手順が第4の実施例と異なるものの、ハードウェアとして見ると、第4の実施例に係る携帯電話端末1と同一の構成を有する。そこで、第6の実施例では、第4の実施例と重複する説明は省略し、主として、選択検出処理および操作検出処理について説明する。
まず、図27および図28を参照しながら、3次元オブジェクトに対する操作の検出について説明する。図27および図28は、第6の実施例における3次元オブジェクトに対する操作の検出について説明するための図である。図27に示すステップSE1では、タッチパネル32によって、視認空間中に、3次元オブジェクトOB1が立体的に表示されている。また、3次元オブジェクトOB1を選択するために、利用者は、指F1と指F2の間に3次元オブジェクトOB1が位置するように指F1および指F2を移動させている。
携帯電話端末1は、視認空間内で2つの物体が検出され、かつ、それらの2つの物体の間に3次元オブジェクトOB1が位置する場合、2つの物体の距離の変化を監視する。そして、距離が所定時間以上ほぼ一定であれば、3次元オブジェクトOB1が選択されたと判定し、3次元オブジェクトOB1を選択状態にする。そして、携帯電話端末1は、3次元オブジェクトOB1の表示態様を変更する等して、3次元オブジェクトOB1が選択状態になったことを利用者に通知する。
携帯電話端末1が2つの物体の距離の変化を監視している間、2つの物体は、3次元オブジェクトOB1を挟む位置に留まる必要はない。すなわち、利用者は、ステップSE1に示したように指F1と指F2の間に3次元オブジェクトOB1が位置するように指F1および指F2を移動させた後、その状態を保つことなく、指F1および指F2を他の位置へ移動させて構わない。
ステップSE1の状態から、ステップSE2に示すように、利用者が、指F1と指F2の距離D1をほぼ一定に保ったまま移動させたものとする。この場合、携帯電話端末1は、指F1と指F2の間に3次元オブジェクトOB1が表示されていることが検出された段階、すなわち、ステップSE1の段階から、指F1および指F2の動きに応じて、3次元オブジェクトOB1に移動、変形、消失等の変化を加える。そして、携帯電話端末1は、ステップSE3に示すように、指F1と指F2の距離D1がほぼ一定に保たれた状態が所定時間以上継続した段階で、3次元オブジェクトOB1を選択状態にする。
なお、図28のステップSE4に示すように、所定時間が経過する前に指F1と指F2の距離D1が離れた場合、すなわち、選択が行われなかった場合、携帯電話端末1は、それまでに加えた変化と逆の変化を3次元オブジェクトOB1に加える。その結果、3次元オブジェクトOB1は、ステップSE1の段階と同じ位置に同じ状態で表示される。逆の変化を3次元オブジェクトOB1に加える速度は、それまでに3次元オブジェクトOB1に変化が加えられた速度よりも速くてもよい。すなわち、高速に逆再生しているかのように3次元オブジェクトOB1を逆変化させてもよい。
このように、2つの物体の間に3次元オブジェクトが表示されていることが検出された段階から3次元オブジェクトに変化を加え始めることにより、利用者は、3次元オブジェクトが選択されつつあることを選択が確定する前から認識することができる。その結果、利用者は、意図した3次元オブジェクトが選択されたか否かを早期に知ることができる。なお、2つの物体の距離がほぼ一定に保たれた状態が所定時間以上継続するまでは、変化を加えられている3次元オブジェクトを通常時とも選択状態とも異なる態様(例えば、半透明)で表示することにより、利用者が3次元オブジェクトの状態を判別しやすくしてもよい。
次に、図29および図30を参照しながら、3次元オブジェクトの操作に関して携帯電話端末1が実行する処理手順について説明する。図29は、第6の実施例における3次元オブジェクトの選択検出処理の処理手順を示すフローチャートである。図29に示す処理手順は、所定の操作が検出されたこと等を契機として、制御部22が制御プログラム24aを実行することによって実現される。
図29に示すように、制御部22は、まず、ステップS801として、3次元オブジェクトを立体的に表示する。続いて、制御部22は、ステップS802として、検出部、すなわち、撮影部40aおよび40b、または、撮影部42aおよび42bによって第1の物体および第2の物体が検出されたかを判定する。第1の物体および第2の物体が検出されない場合(ステップS802,No)、制御部22は、ステップS810として、仮選択状態の3次元オブジェクトがあれば、その3次元オブジェクトの仮選択状態を解除する。
そして、制御部22は、ステップS811として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS811,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS811,No)、制御部22は、ステップS802以降を再実行する。
第1の物体および第2の物体が検出された場合(ステップS802,Yes)、制御部22は、ステップS803として、仮選択状態の3次元オブジェクトがあるか否かを判定する。仮選択状態の3次元オブジェクトがない場合(ステップS803,No)、制御部22は、ステップS804として、表示されている3次元オブジェクトの中から第1の物体と第2の物体との間に表示されている3次元オブジェクトを探す。
該当する3次元オブジェクトがない場合(ステップS805,No)、制御部22は、ステップS811として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS811,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS811,No)、制御部22は、ステップS802以降を再実行する。
第1の物体と第2の物体との間に表示されている3次元オブジェクトがみつかった場合(ステップS805,Yes)、制御部22は、ステップS806として、第1の物体と第2の物体との間に表示されている3次元オブジェクトを仮選択状態にする。また、制御部22は、ステップS807として、第1の物体と第2の物体の距離を算出する。
そして、制御部22は、ステップS811として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS811,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS811,No)、制御部22は、ステップS802以降を再実行する。
第1の物体および第2の物体が検出され、かつ、仮選択状態の3次元オブジェクトがある場合(ステップS803,Yes)、制御部22は、ステップS808として、第1の物体と第2の物体の少なくとも一方が移動しているかを判定する。第1の物体と第2の物体のいずれも移動していない場合(ステップS808,No)、制御部22は、ステップS811として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS811,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS811,No)、制御部22は、ステップS802以降を再実行する。
第1の物体と第2の物体の少なくとも一方が移動している場合(ステップS808,Yes)、制御部22は、ステップS809として、図30に示す操作検出処理を実行し、その中で、選択状態にある3次元オブジェクトを検出された操作に応じて変化させる。
操作検出処理が終了した後、制御部22は、ステップS811として、操作終了が検出されたかを判定する。操作終了が検出された場合(ステップS811,Yes)、制御部22は、選択検出処理を終了させる。操作終了が検出されない場合(ステップS811,No)、制御部22は、ステップS802以降を再実行する。
図30は、第6の実施例における操作検出処理の処理手順を示すフローチャートである。図30に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。図30に示すように、制御部22は、まず、ステップS901として、第1の物体と第2の物体の距離を算出する。そして、制御部22は、ステップS902として、操作検出処理の開始時点以降の第1の物体と第2の物体の距離がほぼ一定であるかを判定する。
第1の物体と第2の物体の距離がほぼ一定の場合(ステップS902,Yes)、制御部22は、ステップS903として、操作検出処理が開始されてから所定時間が経過したかを判定する。所定時間が経過していた場合(ステップS903,Yes)、制御部22は、ステップS904として、仮選択状態の3次元オブジェクトがあれば、その3次元オブジェクトを選択状態にする。所定時間が経過していない場合(ステップS903,No)、ステップS904は実行されない。
続いて、制御部22は、ステップS905として、第1の物体および第2の物体の移動速度を算出する。そして、制御部22は、ステップS906として、算出した移動速度が閾値以下であるかを判定する。移動速度が閾値以下の場合(ステップS906,Yes)、制御部22は、ステップS907として、検出された第1の物体および第2の物体の動きに応じて3次元オブジェクトを移動させたり回転させたりする。そして、制御部22は、ステップS901以降を再実行する。
移動速度が閾値より速い場合(ステップ706,No)、制御部22は、ステップS908として、3次元オブジェクトを消去する。3次元オブジェクトを消去するに際して、3次元オブジェクトが第1の物体および第2の物体の移動方向へ向けて飛んでいくようにアニメーション表示してもよい。そして、制御部22は、操作検出処理を終了させる。なお、第1の物体および第2の物体を高速で移動させる操作ではなく、例えば、3次元オブジェクトを握りつぶす操作に3次元オブジェクトの消去を割り当ててもよい。また、3次元オブジェクトを消去する代わりに、3次元オブジェクトを当初の配置場所に戻すこととしてもよい。
第1の物体と第2の物体の距離がほぼ一定でない場合(ステップS902,No)、制御部22は、ステップS909として、距離が、3次元オブジェクトの選択時、すなわち、操作検出処理の開始時点よりも拡大しているかを判定する。距離が拡大している場合(ステップS909,Yes)、制御部22は、ステップS910として、第1の物体と第2の物体の間に表示されていた3次元オブジェクトが仮選択状態であるかを判定する。
3次元オブジェクトが仮選択状態である場合(ステップS910,Yes)、制御部22は、ステップS911として、3次元オブジェクトの仮選択状態を解除する。また、制御部22は、ステップS912として、3次元オブジェクトを逆変化させて元の状態に戻す。そして、制御部22は、操作検出処理を終了させる。
3次元オブジェクトが仮選択状態でない場合、すなわち、選択状態の場合(ステップS910,No)、制御部22は、ステップS913として、3次元オブジェクトの選択状態を解除する。また、制御部22は、ステップS914として、選択状態を解除した3次元オブジェクトを重力等に従って移動させる。そして、制御部22は、操作検出処理を終了させる。ここでの移動は、例えば、3次元オブジェクトが重力に従って落下し、床やテーブルの上で停止するように表示される。3次元オブジェクトの動きを停止させる前に、3次元オブジェクトの弾性や床やテーブルの硬度に応じて3次元オブジェクトをバウンドさせてもよい。3次元オブジェクトが床やテーブルに衝突するときの衝撃の大きさを算出し、衝撃が所定の値よりも大きい場合には3次元オブジェクトを破損したように表示してもよい。また、実際の重力が働く場合よりも3次元オブジェクトをゆっくりと移動させてもよい。
第1の物体と第2の物体の距離が3次元オブジェクトの選択時よりも縮まっている場合(ステップS909,No)、制御部22は、ステップS915として、距離に応じて3次元オブジェクトを変形させる。そして、制御部22は、ステップS901以降を再実行する。3次元オブジェクトを変形させる程度は、例えば、3次元オブジェクトに属性として設定されている硬度に応じて変更してもよい。
上述してきたように、第6の実施例では、指等の物体の間に3次元オブジェクトが位置していることが検出された時点から、操作に応じて3次元オブジェクトを変化させることとしたので、利用者が3次元オブジェクトの選択を認識しやすい。
以下に、第7の実施例について説明する。上記の各実施例では、3次元オブジェクトを操作する物体を撮影部が撮影する画像に基づいて検出することとしたが、他の検出方式を用いてもよい。例えば、静電容量式のタッチセンサは、感度を上げることにより、タッチセンサに接触していない指の位置を検出することができる。そこで、第7の実施例では、タッチセンサを、3次元オブジェクトを操作する物体を検出する検出部として活用する例を示す。なお、以下の説明では、既に説明した部分と同様の部分には既に説明した部分と同一の符号を付す。また、重複する説明については、説明を省略することがある。
まず、図31から図33を参照しながら、第7の実施例に係る携帯電話端末(表示機器)2の構成について説明する。図31は、携帯電話端末2の外観を示す正面図である。図32は、携帯電話端末2の外観を示す背面図である。図33は、携帯電話端末2の機能的な構成を示すブロック図である。
図31から図33に示すように、携帯電話端末2は、立設部10と、操作部13と、マイク15と、レシーバ16と、制御部22と、記憶部24と、通信部26と、音声処理部30と、タッチパネル32と、タッチセンサ34を有する。
タッチパネル32は、文字、図形、画像等の各種の情報を表示するとともに、表示されたアイコン、ボタン、文字入力領域等の所定領域に対する入力操作を検出する。タッチパネル32は、表示部32aと、タッチセンサ32bとを重畳して構成される。本実施例において、タッチセンサ32bは、静電容量式のタッチセンサである。タッチセンサ32bは、3次元オブジェクトを操作する指を検出する検出部としても機能する。
タッチセンサ34は、静電容量式のタッチセンサである。タッチセンサ34は、タッチパネル32と同様に、3次元オブジェクトを操作する指等の物体を検出する検出部としても機能する。
タッチセンサ34は、透明な部材で形成される。そのため、タッチセンサ34は、光を透過する。そして、タッチセンサ34は、正面2aから背面2bまで貫通する中空部分の背面2b側に設けられる。中空部分の正面2a側には透明なタッチパネル32が設けられる。このため、利用者は、携帯電話端末2を正面2aの側から見た場合も、携帯電話端末2を背面2bの側から見た場合も、タッチパネル32およびタッチセンサ34を通して、携帯電話端末2の向こう側を見ることができる。
次に、図34を参照しながら、3次元オブジェクトに対する操作の検出について説明する。図34は、第7の実施例における3次元オブジェクトに対する操作の検出について説明するための図である。図34では、正面2a側にいる利用者から見て、タッチパネル32およびタッチセンサ34よりも奥側に3次元オブジェクトOB1が表示されている。また、図34では、利用者が、指F1を3次元オブジェクトOB1に接触させようとしている。
このように指F1が背面2b側にある場合、携帯電話端末2は、指F1の位置を、タッチセンサ34を用いて検出する。タッチセンサ34は、感度を高めることで、例えば、指F1からタッチセンサ34の表面までのZ軸方向の距離が10cm程度ある場合でも、指F1のX軸方向およびY軸方向の位置を検出することができる。また、タッチセンサ34は、静電容量の大きさに基づいて、指F1からタッチセンサ34の表面までのZ軸方向の距離D2を検出することができる。
こうして検出された指F1の視認空間での位置に基づいて、携帯電話端末2は、指F1と3次元オブジェクトOB1の接触を検出したり、指F1が3次元オブジェクトOB1を押す操作および掴んで行う操作を検出したりすることができる。同様に、携帯電話端末2は、3次元オブジェクトが正面2a側に表示され、指F1が正面2a側にある場合、タッチパネル32のタッチセンサ32bを用いて、指F1が3次元オブジェクトに対して行う操作を検出することができる。
上述してきたように、第7の実施例では、タッチセンサを検出部として用いることとしたので、撮影部を備えない表示装置であっても、3次元オブジェクトに対する操作を検出することができる。
なお、第7の実施例では、携帯電話端末2が、タッチパネル32に加えてタッチセンサ34を備えることとしたが、タッチパネル32が背面2b側の静電容量を検出することができる場合は、携帯電話端末2は、タッチセンサ34を備えなくてもよい。例えば、表示部32aの両面にタッチセンサを重畳することにより、タッチパネル32は、正面2a側および背面2b側の静電容量を検出することが可能になる。
また、3次元オブジェクトに対する操作を検出するために撮影部およびタッチセンサを併用してもよい。撮影部およびタッチセンサを併用する場合、それぞれの検出結果を平均して指F1の位置を特定してもよい。また、タッチパネル32と近い領域では、撮影部40a、40b、42a、および42bは指F1の画像を取得し難く、タッチパネル32から遠い領域では、タッチセンサの検出精度が低くなる。そこで、タッチパネル32と近い領域では、タッチセンサの検出結果の重みづけを大きくし、タッチパネル32から遠い領域では、撮影部40a、40b、42a、および42bの検出結果の重みづけを大きくした加重平均を用いてもよい。
また、他の指等が障害となってタッチセンサが指の位置を精度よく検出できないことが生じにくいように、3次元オブジェクトに対する操作を複数のタッチセンサを用いて検出してもよい。図35は、3次元オブジェクトに対する操作を複数のタッチセンサを用いて検出する携帯電話端末3の構成の一例を示す図である。
携帯電話端末3は、第1の筐体3aと、第2の筐体3bと、ヒンジ部3cとを有する。ヒンジ部3cは、第1の筐体3aおよび第2の筐体3bを開閉可能に連結する。そして、第1の筐体3aは、タッチセンサ32bを有するタッチパネル32と、タッチセンサ34とを備え、第2の筐体3bは、タッチセンサ36bを有するタッチパネル36を備える。タッチセンサ34およびタッチセンサ36bは、図35に示すように、第1の筐体3aおよび第2の筐体3bが約90度の角度をもって固定された場合に、視認空間50に異なる角度で接する。
タッチセンサ34は、指F1のX軸方向およびY軸方向の位置を検出することができる。また、タッチセンサ34は、静電容量の大きさに基づいて、指F1からタッチセンサ34の表面までのZ軸方向の距離D2を検出することができる。タッチセンサ36bは、指F1のX軸方向およびZ軸方向の位置を検出することができる。また、タッチセンサ36bは、静電容量の大きさに基づいて、指F1からタッチパネル36の表面までのY軸方向の距離D3を検出することができる。
このように、異なる方向から指F1を検出することにより、何らかの障害物がある場合でもいずれかの方向から指F1の位置を検出することができる。なお、図35では、第2の筐体3bがタッチパネル36を有することとしたが、第2の筐体3bは、タッチパネル36に代えて、表示機能をもたないタッチセンサ36bのみを有してもよい。
以下に、上記の各実施例において説明した表示機器の適用例および変形例について説明する。操作の対象となる3次元オブジェクト(表示物)は、例えば、本、積み木、スプーン、箸、トランプ、粘土、楽器のように現実に存在するものを模したオブジェクトであってもよいし、仮想のアバター、ゲームのキャラクター、仮想現実のARタグのように実在はしないオブジェクトであってもよい。また、検出された操作に応じて3次元オブジェクトに加えられる変化は、上記の移動、変形、消失等に限定されない。また、押す操作に応じて3次元オブジェクトに加えられる変化は、上記の実施例に限定されず、3次元オブジェクトの種類に応じて変更してよい。
例えば、粘土を模した3次元オブジェクト(以下、単に「粘土」という)を操作対象とする場合、押す操作に応じて粘土を変形させて、利用者が粘土を任意の形に成形できるようにしてもよい。また、時間の経過にしたがって、あたかも粘土が乾いていくかのように、粘土の粘性を低下させていってもよい。また、水の3次元オブジェクトに浸けた指や手で粘土を押す操作が検出された場合に、粘土の粘性を向上させてもよい。
また、レコード盤を模した3次元オブジェクト(以下、単に「レコード盤」という)を操作対象とする場合、押す操作に応じてレコード盤が支点を中心として回転するとともに、音を再生するようにしてもよい。回転と音の再生を連動させることにより、ディスクジョッキーによるスクラッチ等の技法を仮想的に実現してもよい。
また、上記の各実施例では、タッチパネル32の正面側または背面側の一方に3次元オブジェクトを表示する例を示したが、タッチパネル32の正面側および背面側の両方に3次元オブジェクトを表示してもよい。また、タッチパネル32の正面および背面側にまたがって3次元オブジェクトを表示してもよい。
例えば、図36のステップSF1に示すように、手H1がタッチパネル32の背面側に表示されている3次元オブジェクトOB2を正面側に押す操作を、携帯電話端末1が検出したものとする。この場合、携帯電話端末1は、ステップSF2に示すように、操作に合わせて、3次元オブジェクトOB2をタッチパネル32の正面側へ移動させていく。
また、図37のステップSG1に示すように、手H1がタッチパネル32に平面的に(2次元で)表示されているオブジェクトOB3を背面側から押す操作を、携帯電話端末1が検出したものとする。この場合、携帯電話端末1は、ステップSG2に示すように、操作に合わせて、オブジェクトOB3をタッチパネル32の正面側に押し出されたように立体的に(3次元で)表示する。
また、上記の各実施例では、タッチパネル32の正面側または背面側の一方で3次元オブジェクトに対する操作を検出する例を示したが、タッチパネル32の正面側および背面側の両方で3次元オブジェクトに対する操作を検出してもよい。例えば、タッチパネル32の正面側と背面側にまたがって表示されている3次元オブジェクトに対する操作をタッチパネル32の正面側および背面側の両方で検出し、両方の操作に応じて3次元オブジェクトを変化させてもよい。
なお、上記の各実施例で示した本発明の態様は、本発明の要旨を逸脱しない範囲で任意に変更することができる。また、上記の実施例を適宜組み合わせてもよい。例えば、上記の実施例で示した制御プログラム24aは、複数のモジュールに分割されていてもよいし、他のプログラムと統合されていてもよい。また、上記の実施例では、3次元オブジェクトに対して指で操作を行うこととしたが、先端に静電気を帯びた棒状の物等を指の代わりに用いてもよい。
また、上記の各実施例では、3次元オブジェクトを検出するために撮影部やタッチセンサを検出部として用いる例を示したが、検出部はこれに限られない。例えば、撮影部に代えて、TOF(Time-of-Flight)法を用いたセンサでもよい。また、視認空間における面方向の移動を検出できる近接センサ等を、物体の移動方向とほぼ水平に配置すると、物体の変位が非接触でも検出できることから、もちろんこれらを用いてもよい。なお、物体にセンサ等を配置することなく、物体の変位の検出ができることが好ましい。物体にセンサ等を配置しないことにより、指にわざわざ加速度センサを取り付けたり、加速度を備えた表示機器そのものを移動させたりする必要がない場合、コスト低減が図れる。
また、上記の各実施例では、表示機器が単独で3次元オブジェクトに対する操作を検出することとしたが、表示機器がサーバ装置と協業して3次元オブジェクトに対する操作を検出することとしてもよい。この場合、表示機器は、検出部の検出した情報をサーバ装置へ逐次送信し、サーバ装置が操作を検出して検出結果を表示機器へ通知する。このような構成とすることにより、表示機器の負荷を低減することができる。
また、上記の各実施例では、表示機器が透明なタッチパネルを備える例を示したが、表示機器は、透明なタッチパネルに代えて、透明な表示部を備えてもよい。この場合、表示機器は、物理的なボタン等を含む操作部、表示部とは別に設けられたタッチセンサ、および撮影部の少なくとも1つの検出結果に基づいて利用者の操作を検出する。
また、上記の実施例では、表示機器が正面に2つの撮影部と背面に2つ撮影部とを備える例を示したが、表示機器が備える撮影部の数と配置はこの例に限定されない。
また、上記の実施例では、透明なタッチパネルを備える表示機器が、タッチパネルの背面側での操作を検出する例を示したが、透明ではないタッチパネルを備える表示機器が、タッチパネルの背面側での操作を検出してもよい。
例えば、図38に示す表示機器4は、不透明なタッチパネル38を正面に備える。タッチパネル38は、3次元オブジェクトOB4を表示機器4の正面側に立体的に表示する。そして、表示機器4は、3次元オブジェクトOB4に対する手H1の操作を背面、すなわち、タッチパネル38が設けられていない面で検出する。手H1による操作の検出は、表示機器4の背面に設けられた撮影部またはタッチセンサ等を用いて実現される。このように、正面に表示されている3次元オブジェクトに対する操作を背面側で検出することにより、利用者は、3次元オブジェクトの表示を妨げることなく手H1による操作を行うことができる。
表示機器4は、図39に示すように、背面で検出の検出結果と連動させて、タッチパネル38に3次元オブジェクトOB4に加えて、仮想的な手H2を表示させてもよい。表示機器4は、背面で検出した手H1の位置と対応する位置に手H2を表示し、背面で検出した手H1の動作と同じ動作を手H2を用いて再現する。このように、手H2を正面側に表示することにより、利用者は、3次元オブジェクトOB4と手H1の相対関係を把握しながら、背面側で3次元オブジェクトOB4に対する操作を実行することができる。