以下、本発明につき図面を参照しつつ詳細に説明する。なお、以下の説明により本発明が限定されるものではない。また、以下の説明における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。以下においては、表示機器の一例として携帯電話端末について説明するが、本発明の適用対象は携帯電話端末に限定されるものではなく、例えば、PHS(Personal Handyphone System)、PDA、ポータブルナビゲーション装置、ノートパソコン、ゲーム機等に対しても本発明は適用できる。
まず、図1および図2を参照しながら、第1の実施例に係る携帯電話端末(表示機器)1の構成について説明する。図1は、携帯電話端末1の外観を示す正面図である。図2は、携帯電話端末1の機能的な構成を示すブロック図である。
図1および図2に示すように、携帯電話端末1は、操作部13と、マイク15と、レシーバ16と、制御部22と、記憶部24と、通信部26と、音声処理部30と、タッチパネル32と、撮影部40と、撮影部42とを有する。操作部13、マイク15、レシーバ16、タッチパネル32および撮影部40は、携帯電話端末1の正面に一部が露出する。
操作部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が各種操作を検出する方式は、静電容量式、抵抗膜式、感圧式等の任意の方式でよい。
また、タッチパネル32は、3次元オブジェクトを表示できる。3次元オブジェクトは、視差を利用して立体的に見えるように作成された画像や形状等の表示物である。なお、3次元オブジェクトを表示する方式は、眼鏡等の器具を用いて立体視を実現する方式であってもよいし、裸眼で立体視を実現する方式であってもよい。
撮影部40および42は、CCD(Charge Coupled Device Image Sensor)やCMOS(Complementary Metal Oxide Semiconductor)等のイメージセンサを用いて電子的に画像を撮影する。そして、撮影部40および42は、撮影した画像を信号に変換して制御部22へ出力する。撮影部40および42は、3次元オブジェクトが立体的に表示される空間(以下、「立体視空間」または「視認空間」ということがある)において3次元オブジェクトを選択して操作する物体を検出する検出部としても機能する。
なお、撮影部40および42は、立体視空間内のどこに指等の物体が位置していてもその物体を撮影することができるように画角や配置が設定されていることが好ましい。また、撮影部40および42は、可視光の画像を取得する装置であってもよいし、赤外線等の不可視光の画像を取得する装置であってもよい。
制御部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次元オブジェクトを変化させるために用いられる。ここでいう変化には、移動、回転、変形、消失等が含まれる。
次に、図3および図4を参照しながら、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化について説明する。図3および図4は、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化について説明するための図である。図3に示すステップS11では、タッチパネル32によって、立体視空間50中に、3次元オブジェクトOB1が立体的に表示されている。3次元オブジェクトOB1は、例えば、ボールを模したオブジェクトである。また、ステップS11では、タッチパネル32によって、3次元オブジェクトOB1を支持する底面B1が表示されている。
ステップS12では、利用者が指F1を3次元オブジェクトOB1と接触する位置に置き、そのまま静止させている。携帯電話端末1は、立体視空間内で現実の物体が検出され、かつ、その物体が3次元オブジェクトOB1と接触する状態が所定時間以上継続した場合、3次元オブジェクトOB1が操作対象として選択されたと判定する。そして、携帯電話端末1は、3次元オブジェクトOB1の表示態様を変更する等して、3次元オブジェクトOB1が操作対象として選択されたことを利用者に通知する。
物体が3次元オブジェクトOB1と接触しているかの判定は、立体視空間における物体の現実の位置と、立体視空間における3次元オブジェクトOB1の形状および計算上の位置とに基づいて行われる。3次元オブジェクトOB1の形状は、オブジェクトデータ24bにおいて定義される。
物体の位置は、撮影部40および42が撮影する画像に基づいて算出される。物体の位置の算出は、予め登録されている物体の大きさと画像中の物体の大きさおよび位置とに基づいて行ってもよい。また、物体の位置の算出は、撮影部40が撮影した画像における物体の大きさおよび位置と撮影部42が撮影した画像における物体の大きさおよび位置とを照合して行ってもよい。なお、指等の物体の検出は、周知の技術を用いて実現してよい。また、指が物体の場合、指のつま先の位置を物体の位置として処理することが好ましい。
立体視空間における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が操作対象として選択された後、ステップS13に示すように、利用者が、3次元オブジェクトOB1を押すように、指F1を3次元オブジェクトOB1の内側に侵入させたものとする。携帯電話端末1は、操作対象として選択された3次元オブジェクト内に物体を侵入させる操作が検出された場合、操作に応じて3次元オブジェクトを変化させる。3次元オブジェクトをどのように変化させるかは、オブジェクトデータ24bにおいて定義されている3次元オブジェクトの種別と、作用データ24cにおいてその種別と対応付けて定義されている変化のルールとによって決定される。
例えば、オブジェクトデータ24bにおいて3次元オブジェクトOB1が弾性体であると定義され、作用データ24cにおいて弾性体は押された場合に押された量に応じて押された方向に変形することが定義されていたものとする。この場合、携帯電話端末1は、ステップS14に示すように、指F1が侵入した部分が押されて凹んだように3次元オブジェクトOB1を変化させる。
また、オブジェクトデータ24bにおいて3次元オブジェクトOB1が剛体であると定義され、作用データ24cにおいて剛体は押された場合に押された量に応じて押された方向に移動することが定義されていたものとする。この場合、携帯電話端末1は、図4のステップS15に示すように、指F1に押されたように3次元オブジェクトOB1を指F1の進行方向へ移動させる。なお、図4のステップS15では、3次元オブジェクトOB1は、底面B1に支持されているため、剛体によって印加される力の底面B1と水平方向の成分に従って移動している。
このように、3次元オブジェクトを押す操作が検出された場合に、オブジェクトデータ24bおよび作用データ24cに基づいて3次元オブジェクトOB1を変化させることにより、3次元オブジェクトを操作に応じて様々に変化させることができる。押すという操作は、現実の世界の様々な場面で利用されている操作であり、3次元オブジェクトOB1を押す操作を検出して対応する処理を実行することにより、直感的で利便性の高い操作性を実現することができる。
なお、3次元オブジェクトを操作するために用いられる物体は、指に限定されず、手、足、棒、器具等であってもよい。また、押す操作に応じて3次元オブジェクトを変化させる態様は、現実の物理法則に則していてもよいし、現実ではあり得ないものであってもよい。
また、携帯電話端末1は、3次元オブジェクトが押される方向がタッチパネル32の表示面と平行でない場合、すなわち、検出された物体の移動方向がタッチパネル32の表示面または表示面と水平な平面と交わる場合にも操作に応じて3次元オブジェクトを変化させる。このように、3次元オブジェクトを押す操作を立体的に判定することにより、3次元オブジェクトに対して多様な操作を行うことが可能になる。なお、3次元オブジェクトを押す操作を立体的に判定するためには、障害物が死角を作らないように、複数の撮影部を用意して異なる方向から指F1等を撮影することが望ましい。
次に、図5から図11を参照しながら、図2に示したオブジェクトデータ24bおよび作用データ24cについてさらに詳しく説明する。図5は、オブジェクトデータ24bに格納される情報の一例を示す図である。図6から図11は、作用データ24cに格納される情報の一例を示す図である。
図5に示すように、オブジェクトデータ24bには、種別、形状情報、色、透明度等を含む情報が3次元オブジェクト毎に格納される。種別は、3次元オブジェクトの物理的な性質を示す。種別は、例えば、「剛体」、「弾性体」等の値をとる。形状情報は、3次元オブジェクトの形状を示す情報である。形状情報は、例えば、3次元オブジェクトを構成する面の頂点座標の集合である。色は、3次元オブジェクトの表面の色である。透明度は、3次元オブジェクトが光を透過させる度合いである。なお、オブジェクトデータ24bは、複数の3次元オブジェクトに関する情報を保持することができる。
作用データ24cには、押す操作が検出された場合の変化に関する情報が3次元オブジェクトの種別毎に格納される。図6に示すように、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次元オブジェクトは、例えば、振り子、ボクシングのサンドバック、風車である。
また、図7に示すように、3次元オブジェクトの種別が「弾性体」の場合、素材、変化量の制限の有無、押される速度に応じて、押す操作が検出された場合の変化が異なる。なお、ここでいう素材は、3次元オブジェクトの想定上の素材であり、オブジェクトデータ24bにおいて定義される。
3次元オブジェクトの素材がゴム系であり、変化量に制限がなく、押される速度が遅い場合、3次元オブジェクトは、押された方向に押された量に応じて変形し、押される状態から解放されると元の形状に戻るように表示される。また、3次元オブジェクトの素材がゴム系であり、変化量に制限がなく、押される速度が速い場合、3次元オブジェクトは、押された方向に押された量に応じて変形し、その後、はじかれて、元の形状に戻りながら押された方向へ移動するように表示される。このように表示される3次元オブジェクトは、例えば、ゴムボール、消しゴムである。
3次元オブジェクトの素材がゴム系であり、変化量に制限がある場合、3次元オブジェクトは、押された方向に押された量に応じて変形可能範囲まで変形し、その後も押す操作が検出されると、元の形状に戻りながら押された方向へ移動するように表示される。このように表示される3次元オブジェクトは、例えば、ゴムボール、消しゴムである。
3次元オブジェクトの素材が金属系の場合、3次元オブジェクトは、押された方向に押された量に応じて変形可能範囲まで変形し、押される状態から解放されると元の形状に戻ったり変形したりを繰り返す(振動する)ように表示される。なお、変形可能方向以外の方向に押された場合、3次元オブジェクトは、剛体と同様に移動する。このように表示される3次元オブジェクトは、例えば、板ばね、弦巻ばねである。
また、図8に示すように、3次元オブジェクトの種別が「塑性体」の場合、3次元オブジェクトは、押された箇所がへこんで全体形状が変化するように表示される。このように表示される3次元オブジェクトは、例えば、粘土である。
また、図9に示すように、3次元オブジェクトの種別が「液体」の場合、押される速度に応じて、押す操作が検出された場合の変化が異なる。押される速度が遅い場合、押す物体が3次元オブジェクト、すなわち、液体につかるように表示される。押される速度が中程度の場合、押す物体が液体につかり、液体に波紋が拡がるように表示される。押される速度が速い場合、押す物体が液体につかり、液体から水しぶきがあがるように表示される。このように表示される3次元オブジェクトは、例えば、コップに入った水である。
また、図10に示すように、3次元オブジェクトの種別が「気体」の場合、押される速度に応じて、押す操作が検出された場合の変化が異なる。押される速度が遅い場合、3次元オブジェクト、すなわち、気体が押す物体によってさえぎられてその周囲を漂うように表示される。押される速度が中程度の場合、気体が押す物体によって散乱されるように表示される。押される速度が速い場合、押す物体の移動方向の後ろ側で乱流により気体に渦が生まれるように表示される。このように表示される3次元オブジェクトは、例えば、煙である。
また、図11に示すように、3次元オブジェクトの種別が「集合体」の場合、集合体の要素の結合状況に応じて、押す操作が検出された場合の変化が異なる。集合体の要素の結合がない場合、3次元オブジェクトは、押された箇所がへこんで集合体としての全体形状が変化するように表示される。このように表示される3次元オブジェクトは、例えば、砂、砂糖である。
集合体の要素の結合がある場合、3次元オブジェクトは、押された箇所がへこんで集合体としての全体形状が変化するように表示される。さらに、押された箇所以外の要素が、押された箇所の要素に引っ張られて移動するように表示される。このように表示される3次元オブジェクトは、例えば、鎖である。
集合体の要素の結合はないが押す物体との間に引力または斥力が働く場合、3次元オブジェクトは、押す物体と接しなくても移動するように表示される。押す物体との間に引力が働く場合、3次元オブジェクトは、押す物体と接しなくても、押す物体と所定距離以内に入ると押す物体に引き寄せられる。また、押す物体との間に斥力が働く場合、3次元オブジェクトは、押す物体と接しなくても、押す物体と所定距離以内に入ると押す物体から遠ざかる。このように表示される3次元オブジェクトと押す物体の組み合わせは、例えば、鉄粉と磁石の組み合わせである。
このように、オブジェクトデータ24bに格納された情報と作用データ24cに格納された情報とに基づいて3次元オブジェクトを変化させることにより、押す操作に応じて、3次元オブジェクトを多様に変化させることができる。なお、オブジェクトデータ24bおよび作用データ24cに格納される情報は、上記の例に限定されず、用途等に応じて適宜変更してよい。例えば、押す物体の種別および大きさや押す物体と3次元オブジェクトの接触面積の大きさに応じて、3次元オブジェクトの変化の仕方が切り替わるように設定してもよい。
次に、図12および図13を参照しながら、3次元オブジェクトを押す操作に関して携帯電話端末1が実行する処理手順について説明する。図12は、3次元オブジェクトの接触検出処理の処理手順を示すフローチャートである。図12に示す処理手順は、所定の操作が検出されたこと等を契機として、制御部22が制御プログラム24aを実行することによって実現される。
図12に示すように、制御部22は、まず、ステップS101として、オブジェクトデータ24bに基づいて3次元オブジェクトを立体的に表示する。オブジェクトデータ24bは、予め記憶部24に記憶されていてもよいし、通信部26による無線通信によってサーバ装置等の他の装置から取得してもよい。
続いて、制御部22は、ステップS102として、検出部、すなわち、撮影部40および42によって所定の物体が検出されたかを判定する。所定の物体は、例えば、利用者の指である。所定の物体が検出されない場合(ステップS102,No)、制御部22は、ステップS108として、操作終了が検出されたかを判定する。
操作終了は、例えば、操作部13に対する所定の操作が行われた場合に検出されてもよいし、タッチパネル32に対する所定の操作が行われた場合に検出されてもよい。また、操作終了は、撮影部40または42の少なくとも一方で利用者の手による所定のジェスチャーが撮影された場合に検出されてもよい。操作終了が検出された場合(ステップS108,Yes)、制御部22は、接触検出処理を終了させる。操作終了が検出されない場合(ステップS108,No)、制御部22は、ステップS102以降を再実行する。
所定の物体が検出された場合(ステップS102,Yes)、制御部22は、ステップS103として、所定の物体の種別を判定する。所定の物体の種別は、例えば、撮影部40および42によって撮影された画像中の物体の大きさ、形状、色等に基づいて判定される。続いて、制御部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以降を再実行する。
図13は、操作検出処理の処理手順を示すフローチャートである。図13に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。
図13に示すように、制御部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の実施例では、押す操作に応じて3次元オブジェクトを多様に変化させ、それにより、利用者に対して利便性の高い操作方法を提供することができる。
以下に、第3の実施例について説明する。第3の実施例に係る携帯電話端末1は、制御プログラム24aが提供する機能に基づいて実行する操作検出処理の処理手順が第1の実施例と異なるものの、ハードウェアとして見ると、第1の実施例に係る携帯電話端末1と同一の構成を有する。そこで、第3の実施例では、第1の実施例と重複する説明は省略し、主として、操作検出処理について説明する。
まず、図16および図17を参照しながら、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化について説明する。図16および図17は、3次元オブジェクトを押す操作の検出と、検出された操作に応じた3次元オブジェクトの変化について説明するための図である。図16に示すステップS31では、タッチパネル32によって、立体視空間中に、3次元オブジェクトOB1が立体的に表示されている。また、利用者は、指F1を3次元オブジェクトOB1と接触させている。
ここで、利用者が指F1を3次元オブジェクトOB1の内側に侵入させたものとする。携帯電話端末1は、3次元オブジェクトOB1に接触した物体が3次元オブジェクトOB1の内側に移動したことを検出すると、ステップS32に示すように、その時点から、3次元オブジェクトOB1を指F1による操作に応じて変化させる。図16に示す例では、ステップS32において、3次元オブジェクトOB1は、指F1の移動に合わせて移動を開始している。
そして、携帯電話端末1は、ステップS33に示すように、指F1が3次元オブジェクトOB1の内側へ向けて移動することが所定時間以上継続した段階で、3次元オブジェクトOB1を操作対象として確定する。そして、携帯電話端末1は、3次元オブジェクトOB1の表示態様を変更する等して、3次元オブジェクトOB1が操作対象として確定したことを利用者に通知する。その後も、指F1の3次元オブジェクトOB1の内側への移動が検出される間、携帯電話端末1は、3次元オブジェクトOB1を変化させ続ける。
なお、図17のステップS34に示すように、所定時間が経過する前に指F1の3次元オブジェクトOB1の内側への移動が検出されなくなった場合、携帯電話端末1は、それまでに加えた変化と逆の変化を3次元オブジェクトOB1に加える。その結果、3次元オブジェクトOB1は、ステップS31の段階と同じ位置に同じ状態で表示される。逆の変化を3次元オブジェクトOB1に加える速度は、それまでに3次元オブジェクトOB1に変化が加えられた速度よりも速くてもよい。すなわち、高速に逆再生しているかのように3次元オブジェクトOB1を逆変化させてもよい。
このように、3次元オブジェクトの内側への物体の侵入が検出された段階から3次元オブジェクトに変化を加え始めることにより、利用者は、3次元オブジェクトが選択されつつあることを選択が確定する前から認識することができる。その結果、利用者は、意図した3次元オブジェクトが選択されたか否かを早期に知ることができる。意図しない3次元オブジェクトが選択された場合、利用者は、所定時間が経過する前に操作を中止することにより、意図せずに選択された3次元オブジェクトを元の状態に戻すことができる。
なお、指F1の3次元オブジェクトOB1の内側への移動が所定時間以上継続するまでは、変化を加えられている3次元オブジェクトを通常時とも操作対象としての選択が確定した状態とも異なる態様(例えば、半透明)で表示してもよい。このように表示態様を変更することにより、利用者が3次元オブジェクトの状態を判別しやすくなる。
次に、図18を参照しながら、第3の実施例における操作検出処理の処理手順について説明する。図18は、操作検出処理の処理手順を示すフローチャートである。図18に示す処理手順は、制御部22が制御プログラム24aを実行することによって実現される。なお、接触検出処理の処理手順は、図12に示した手順と同様である。
図18に示すように、制御部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次元オブジェクトを操作する物体を検出する検出部として活用する例を示す。なお、以下の説明では、既に説明した部分と同様の部分には既に説明した部分と同一の符号を付す。また、重複する説明については、説明を省略することがある。
まず、図19および図20を参照しながら、第4の実施例に係る携帯電話端末(表示機器)2の構成について説明する。図19は、携帯電話端末2の外観を示す正面図である。図20は、携帯電話端末2の機能的な構成を示すブロック図である。
図19および図20に示すように、携帯電話端末2は、操作部13と、マイク15と、レシーバ16と、制御部22と、記憶部24と、通信部26と、音声処理部30と、タッチパネル32とを有する。
タッチパネル32は、文字、図形、画像等の各種の情報を表示するとともに、表示されたアイコン、ボタン、文字入力領域等の所定領域に対する入力操作を検出する。タッチパネル32は、表示部32aと、タッチセンサ32bとを重畳して構成される。本実施例において、タッチセンサ32bは、静電容量式のタッチセンサである。タッチセンサ32bは、3次元オブジェクトを操作する指を検出する検出部としても機能する。
次に、図21を参照しながら、3次元オブジェクトに対する操作の検出について説明する。図21は、3次元オブジェクトに対する操作の検出について説明するための図である。図21では、タッチパネル32によって、立体視空間中に、3次元オブジェクトOB1が立体的に表示されている。また、図21では、利用者が、指F1を3次元オブジェクトOB1に接触させている。
携帯電話端末2は、指F1の位置を、タッチセンサ32bを用いて検出する。タッチセンサ32bは、感度を高めることで、例えば、指F1からタッチパネル32の表面までのZ軸方向の距離が10cm程度ある場合でも、指F1のX軸方向およびY軸方向の位置を検出することができる。また、タッチセンサ32bは、静電容量の大きさに基づいて、指F1からタッチパネル32の表面までのZ軸方向の距離D2を検出することができる。
こうして検出された指F1の立体視空間での位置に基づいて、携帯電話端末2は、指F1と3次元オブジェクトOB1の接触を検出したり、指F1が3次元オブジェクトOB1を押す操作を検出したりすることができる。
上述してきたように、第4の実施例では、タッチセンサを検出部として用いることとしたので、撮影部を備えない表示装置であっても、3次元オブジェクトに対する操作を検出することができる。
なお、3次元オブジェクトに対する操作を検出するために撮影部およびタッチセンサを併用してもよい。撮影部およびタッチセンサを併用する場合、それぞれの検出結果を平均して指F1の位置を特定してもよい。また、タッチパネル32と近い領域では、撮影部40は指F1の画像を取得し難いのでタッチセンサの検出結果の重みづけを大きくし、タッチパネル32と遠い領域では、タッチセンサの検出精度が低くなるので撮影部40の検出結果の重みづけを大きくした加重平均を用いてもよい。
また、他の指等が障害となってタッチセンサが指の位置を精度よく検出できないことが生じにくいように、3次元オブジェクトに対する操作を複数のタッチセンサを用いて検出してもよい。図22は、3次元オブジェクトに対する操作を複数のタッチセンサを用いて検出する携帯電話端末3の構成の一例を示す図である。
携帯電話端末3は、第1の筐体3aと、第2の筐体3bと、ヒンジ部3cとを有する。ヒンジ部3cは、第1の筐体3aおよび第2の筐体3bを開閉可能に連結する。そして、第1の筐体3aは、タッチセンサ32bを有するタッチパネル32を備え、第2の筐体3bは、タッチセンサ34bを有するタッチパネル34を備える。タッチセンサ32bおよびタッチセンサ34bは、図22に示すように、第1の筐体3aおよび第2の筐体3bが約90度の角度をもって固定された場合に、立体視空間に異なる角度で接する。
タッチセンサ32bは、指F1のX軸方向およびY軸方向の位置を検出することができる。また、タッチセンサ32bは、静電容量の大きさに基づいて、指F1からタッチパネル32の表面までのZ軸方向の距離D2を検出することができる。タッチセンサ34bは、指F1のX軸方向およびZ軸方向の位置を検出することができる。また、タッチセンサ34bは、静電容量の大きさに基づいて、指F1からタッチパネル34の表面までのY軸方向の距離D4を検出することができる。
このように、異なる方向から指F1を検出することにより、何らかの障害物がある場合でもいずれかの方向から指F1の位置を検出することができる。なお、異なる方向から指F1を検出する場合、一方のタッチパネルが3次元オブジェクトを表示し、他方のタッチパネルは非表示とするか、2次元でガイダンス等を表示してもよい。また、3次元オブジェクトを表示しない方のタッチパネルを単なるタッチセンサとしてもよい。