【文献】
河出 弘志,現実物体と仮想物体のインタラクションを考慮したARに基づく情報提示装置の開発,映像情報メディア学会技術報告,日本,社団法人映像情報メディア学会,2011年 2月14日,Vol.35, No.9,p.59-63
【文献】
徳田 和貴,テーブルトップ型システムでのドキュメントメタファ・インタフェースの機能設計と実装,電子情報通信学会2012年総合大会講演論文集 基礎・境界,日本,社団法人電子情報通信学会,2012年 3月 6日,p.223
【文献】
佐藤 俊樹,高速度カメラを用いた指で弾くジェスチャの認識と評価,日本バーチャルリアリティ学会論文誌,日本,特定非営利活動法人日本バーチャルリアリティ学会,2007年 9月30日,第12巻, 第3号,p.355-364
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
(本発明の基礎となった知見)
本発明者は、「背景技術」の欄において記載した、ユーザインタフェース装置に関し、以下の問題が生じることを見出した。
【0011】
特許文献1記載の構成では、ユーザが手袋をはめるという負荷が生じるという課題がある。また、特許文献1記載の構成は、指先の平面的な位置のみを検知し、奥行き方向の位置を検知していない。これにより、指の位置によっては、実際にユーザがつまみ動作をしていない場合でもマーカ間が近づいたと判断されることがある。このように、特許文献1記載の技術には、つまみの動作の誤検出を生じるという課題があることを本発明者は見出した。
【0012】
以下の実施の形態では、指にマーカを付けることなく、ユーザのつまみ動作を検出できるとともに、つまみ動作を精度良く検出できるユーザインタフェース装置について説明する。また、三次元立体視映像における表示オブジェクトの直感的な操作を可能とするユーザインタフェース装置について説明する。
【0013】
本発明の一態様に係るユーザインタフェース装置は、表示空間に二次元又は三次元のオブジェクトを表示する表示部と、前記表示空間におけるユーザの指の三次元座標を計測するセンサ部と、前記センサ部により計測された前記ユーザの指の三次元座標を用いて、前記オブジェクトに対する前記ユーザの指の動作を検出する動作検出部と、前記動作検出部の検出結果に応じて、前記表示部が表示する表示内容を変更する表示制御部とを備える。
【0014】
この構成によれば、当該ユーザインタフェース装置は、ユーザの指の三次元座標を計測し、当該三次元座標を用いてユーザの指の動作を検出する。これにより、当該ユーザインタフェース装置は、精度良くユーザの動作を検出できる。
【0015】
例えば、前記動作検出部は、前記センサ部により計測された前記ユーザの指の三次元座標を用いて、前記ユーザが前記オブジェクトをつまむつまみ動作を検出してもよい。
【0016】
この構成によれば、当該ユーザインタフェース装置は、計測したユーザの指の三次元座標を用いて、つまみ動作を精度良く検出できる。
【0017】
例えば、前記表示制御部は、前記動作検出部により前記つまみ動作が検出された場合、当該つまみ動作によりつままれた対象オブジェクトの表示方法を変更してもよい。
【0018】
この構成によれば、ユーザは、つまみ動作が適切に行われたか否かを容易に判断できる。
【0019】
例えば、前記表示部は、前記表示空間に複数の前記オブジェクトを表示し、前記表示制御部は、前記動作検出部により前記つまみ動作が検出された場合、さらに、前記複数のオブジェクトのうち、前記対象オブジェクト以外のオブジェクトの表示方法を変更してもよい。
【0020】
この構成によれば、当該ユーザインタフェース装置は、例えば、対象オブジェクト以外のオブジェクトを目立たなくすることで、相対的に対象オブジェクトを強調できる。また、例えば、引き続き行われる対象オブジェクトに対する入力操作において、他のオブジェクトの表示が邪魔になることを抑制できる。
【0021】
例えば、前記表示制御部は、前記動作検出部が、前記ユーザが前記対象オブジェクトをつまんで移動させる移動動作を検出した場合、当該移動動作に連動して、前記対象オブジェクトの三次元位置を移動させてもよい。
【0022】
この構成によれば、当該ユーザインタフェース装置は、オブジェクトの移動操作として、直感的な入力操作を実現できる。
【0023】
例えば、前記表示制御部は、前記動作検出部が、前記ユーザが前記対象オブジェクトを破る又は引き裂く動作を検出した場合、前記対象オブジェクトを削除してもよい。
【0024】
この構成によれば、当該ユーザインタフェース装置は、オブジェクトの削除操作として、直感的な入力操作を実現できる。
【0025】
例えば、前記表示制御部は、前記動作検出部が、前記ユーザが前記対象オブジェクトの2点をつまんだ状態で、当該対象オブジェクトを引き伸ばす動作を検出した場合、前記対象オブジェクトを拡大し、前記動作検出部が、前記ユーザが前記対象オブジェクトの2点をつまんだ状態で、当該対象オブジェクトを縮める動作を検出した場合、前記対象オブジェクトを縮小してもよい。
【0026】
この構成によれば、当該ユーザインタフェース装置は、オブジェクトの拡大縮小操作として、直感的な入力操作を実現できる。
【0027】
例えば、前記表示制御部は、前記動作検出部が、前記ユーザが前記対象オブジェクトをつまんだ状態で、前記対象オブジェクトのページをめくる動作を検出した場合、前記対象オブジェクトのページめくり動作を行ってもよい。
【0028】
この構成によれば、当該ユーザインタフェース装置は、オブジェクトのページめくり操作として、直感的な入力操作を実現できる。
【0029】
例えば、前記表示制御部は、前記動作検出部が、前記ユーザが前記対象オブジェクトを指ではじく動作を検出した場合、前記対象オブジェクトをはじかれた方向に移動させてもよい。
【0030】
この構成によれば、当該ユーザインタフェース装置は、オブジェクトの移動操作として、直感的な入力操作を実現できる。
【0031】
例えば、前記動作検出部は、前記ユーザの部位のうち、予め定められた閾値より細い部分を指と認識することにより指動作モデルを生成し、当該指動作モデルを用いて、前記つまみ動作を検出してもよい。
【0032】
この構成によれば、当該ユーザインタフェース装置は、指動作モデルを用いることで、つまみ動作を精度良く検出できる。
【0033】
例えば、前記動作検出部は、前記指動作モデルを用いて前記ユーザの指先の三次元位置を検出し、前記指先の間に、前記対象オブジェクトの一部が存在し、かつ、前記指先の間隔が前記対象オブジェクトの厚み以下の場合、前記つまみ動作が行われたと判定してもよい。
【0034】
この構成によれば、当該ユーザインタフェース装置は、つまみ動作を精度良く検出できる。
【0035】
例えば、前記動作検出部は、前記指動作モデルの形状が、予め定められたつまみ動作モデルの形状と一致する場合、前記つまみ動作が行われたと判定してもよい。
【0036】
この構成によれば、当該ユーザインタフェース装置は、つまみ動作を精度良く検出できる。
【0037】
また、本発明の一態様に係る表示オブジェクト操作方法は、表示空間に二次元又は三次元のオブジェクトを表示する表示ステップと、前記表示空間におけるユーザの指の三次元座標を計測する計測ステップと、前記計測ステップで計測された前記ユーザの指の三次元座標を用いて、前記オブジェクトに対する前記ユーザの指の動作を検出する動作検出ステップと、前記動作検出ステップの検出結果に応じて、表示内容を変更する表示制御ステップとを含む。
【0038】
これによれば、当該表示オブジェクト操作方法は、ユーザの指の三次元座標を計測し、当該三次元座標を用いてユーザの指の動作を検出する。これにより、当該表示オブジェクト操作方法は、精度良くユーザの動作を検出できる。
【0039】
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。
【0040】
以下、本発明の実施の形態について、図面を参照しながら説明する。なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、本発明の最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【0041】
(実施の形態)
図1は、本実施の形態に係るユーザインタフェース装置100の構成を示すブロック図である。
【0042】
図1に示すユーザインタフェース装置100は、表示部111と、センサ部112と、動作検出部113と、表示制御部114と、表示データ保持部115とを備える。
【0043】
表示部111は、空間上の任意の領域である表示空間116に二次元又は三次元の表示オブジェクトを含む立体視映像を表示する。ここで、立体視映像とは、例えば、空中ディスプレイ又はホログラムである。なお、立体視映像とは、所謂3Dテレビ等で表示される映像であってもよい。また、二次元のオブジェクトとは、例えば、立体視表示された、厚みを有さないオブジェクトである。
【0044】
図2は、本実施の形態に係るユーザインタフェース装置100の概要を説明するための図である。表示空間116は、表示部111により立体視映像が表示される空間領域である。表示オブジェクト117は、表示部111が、表示空間116に表示した映像である。なお、ここでは、表示オブジェクト117は、一つしか記載していないが、複数あってもよい。また、表示部111及びセンサ部112の配置は、
図2に示す配置である必要はない。
【0045】
表示部111は、表示制御部114からの制御により、空間上の任意領域に二次元又は三次元の映像を投影表示する。
【0046】
センサ部112は、表示空間116内の物体の三次元座標を計測する。例えば、センサ部112は、表示空間116におけるユーザの指の三次元座標を計測する。具体的には、センサ部112は、表示空間116を撮影することで表示空間116の二次元画像を取得するとともに、表示空間116内にある物体とセンサ部112との間の距離を測定するデバイスである。例えば、センサ部112は、表示空間116のRGB画像と近赤外領域画像とをそれぞれの撮像するセンサデバイスである。センサ部112は、撮影された近赤外領域画像を用いて、RGB画像内の物体の距離を測定する。または、センサ部112は、TOF(Time−Of−Flight)方式の距離画像センサデバイスである。この場合、センサ部112は、画素ごとの距離測定を実現できる。または、センサ部112は、ステレオ配置された画像センサを含み、ステレオ法により距離を算出してもよい。
【0047】
測定された距離情報を含む画像データは、動作検出部113に渡される。
【0048】
動作検出部113は、センサ部112により計測されたユーザの指の三次元座標を用いて、表示オブジェクト117に対するユーザの指の動作を検出する。具体的には、動作検出部113は、上記三次元座標を用いて、ユーザが表示オブジェクト117をつまむつまみ動作を検出する。
【0049】
図3は、動作検出部113の構成を示すブロック図である。動作検出部113は、指動作モデリング部131と、つまみ動作検出部132と、つまみ動作モデル保持部133とを備える。
【0050】
指動作モデリング部131は、指幅閾値保持部134と、指動作モデル登録部135とを有する。
【0051】
指動作モデリング部131は、
図4Aに示すように、表示空間116にユーザの手118がある場合に、センサ部112からの情報を用いて、ユーザの指を模式的に示すモデルである指動作モデル119を生成する。具体的には、指動作モデリング部131は、センサ部112で計測され情報を用いて、ユーザの手118に対応する部分を特定する。次に、指動作モデリング部131は、特定された部分の部位のうち、予め定められた閾値より細い部分を指と認識する。具体的には、指動作モデリング部131は、
図4Bに示すように幅120が、指幅閾値保持部134が保持している閾値より小さい部分を、指であると判断する。なお、指幅閾値保持部134に保持される閾値は、ユーザにより変更可能であってもよい。例えば、指動作モデリング部131は、幅120が閾値より小さい部分の長手方向に沿った中心線を指動作モデル119に設定する。
【0052】
また、この指動作モデル119の生成処理は、所定の時間間隔で繰り返し行われる。つまり、指動作モデル119はリアルタイムに随時更新される。また、指動作モデル119の作成には、例えば、直前のフレームにおける指動作モデル119の検出結果も用いられる。これにより、ある指の一部又は全体が他の指等により隠れている場合でも、隠れている指の指動作モデル119を推定することができる。
【0053】
指動作モデリング部131で生成された指動作モデル119の情報は、つまみ動作検出部132及び指動作モデル登録部135に渡される。
【0054】
指動作モデル登録部135は、予めユーザの手118によるつまみ動作を検出し、つまみ動作モデル136を生成する。つまみ動作モデル136は、つまみ動作をしているか否かの判断に使用するための参照モデルである。また、指動作モデル登録部135は、生成したつまみ動作モデル136をつまみ動作モデル保持部133に保持する。
図5は、つまみ動作モデルの一例を示す図である。なお、
図5に示す、つまみ動作モデル136は一例であってこれ以外であってもよい。
【0055】
後述する[つまみ検出動作]において、つまみ動作モデル保持部133に保持されたつまみ動作モデル136と指動作モデル119とのパターンマッチングが行われる。つまり、つまみ検出を行うためには、ユーザインタフェース装置100を用いたつまみ検出を行う前に、つまみ動作モデル136をユーザインタフェース装置100に登録しておく必要がある。
【0056】
なお、指動作モデル登録部135は、外部から入力されたつまみ動作モデル136をつまみ動作モデル保持部133に保持してもよい。
【0057】
つまみ動作モデル保持部133は、指動作モデル登録部135により生成された、つまみ動作モデル136を保持し、保持しているつまみ動作モデル136をつまみ動作検出部132に渡す。
【0058】
つまみ動作検出部132は、指動作モデリング部131で生成された指動作モデル119と、つまみ動作モデル保持部133からのつまみ動作モデル136とを用いて、つまみ動作を検出する。また、つまみ動作検出部132は、つまみ動作によりつままれた位置の三次元座標であるつまみ位置座標を検出する。つまみ動作検出部132は、つまみ動作を検出したことを表示制御部114に通知する。また、つまみ動作検出部132は、つまみ動作を検出後、ユーザの操作に応じて移動したつまみ位置座標の変化を示す情報も表示制御部114に渡す。
【0059】
表示制御部114は、表示データ保持部115に保持されている表示オブジェクト情報を表示部111に渡す。また、表示制御部114は、つまみ位置座標の変化に応じて、つままれた表示オブジェクトの表示内容を変更し、表示部111に変更後の表示データを渡す。つまり、表示制御部114は、動作検出部113の検出結果に応じて、表示部111が表示する表示内容を変更する。
【0060】
表示内容の変更については、[操作例1]〜[操作例8]で後述する。
【0061】
また、表示制御部114は、ユーザのつまみ動作に応じて、変更された表示内容を表示部111に渡すだけでなく、表示データ保持部115に保持されている表示オブジェクト情報の変更も行う。
【0062】
表示データ保持部115は、表示空間116に表示される表示オブジェクト情報を保持している。
【0063】
[つまみ検出動作]
動作検出部113は、以下に示す二つのつまみ検出方法を用いる。なお、動作検出部113は、以下に示す二つの方法の両方を用いてもよいし、いずれか一方のみを用いてもよい。
【0064】
一つ目の方法を、
図6A及び
図6Bを用いて説明する。
【0065】
まず、指動作モデリング部131は、ユーザの手118の指動作モデル119を生成する。なお、
図6Aでは、2本の指の指動作モデル119のみを記載しているが、3本以上の指の指動作モデル119が用いられてもよい。
【0066】
次に、つまみ動作検出部132は、距離測定を可能とするセンサ部112の計測結果を用いて、指動作モデル119の指先端とセンサ部112との距離を求める。なお、つまみ動作検出部132は、一般的な手の形状から想定される複数の指動作モデル119の配置関係に基づき、各指動作モデル119のいずれの端部が指先(指先端)に対応するかを判定する。
【0067】
また、
図6Aでは、距離L1及び距離L2は、センサ部112と、つまみ動作を行う2本の指の指先端の各々との距離を示す。
【0068】
また、つまみ動作検出部132は、センサ部112より得られた画像情報から一方の指先端とセンサ部112とを結ぶ直線と、他方の指先端とセンサ部112とを結ぶ直線とがなす角度θを求める。
【0069】
例えば、つまみ動作検出部132は、角度θを以下の方法で求める。
図7A及び
図7Bは、角度θの算出方法を説明するための図である。
【0070】
図7Aは、センサ部112で得られた二次元の画像情報の一例を示す図である。
図7Aに示すように、つまみ動作検出部132は、センサ部112の中央Cと、2つの指先との距離M1及びM2を求める。ここで、センサ部112の中央Cの座標は、例えば、画像の中心座標である。
【0071】
次に、
図7Bに示すように、指先からセンサ部112側に垂直な直線AB及びDEが引かれる。よって、二つの垂直三角形ABC及びCDEが形成される。ここで、角BACの内角をφ
1とし、角CDEの内角をφ
2とすると、角度θ=φ
1+φ
2である。よって、下記(式1)及び(式2)から角度θが求まる。
【0074】
距離L1、距離L2、及び角度θより、2本の指の先端間距離dは、以下の(式3)で求められる。
【0076】
次に、つまみ動作検出部132は、
図6Bに示すように、この2本の指の先端間につまむ対象となる表示オブジェクト117が存在する場合、2本の指の先端間距離dと、表示オブジェクト117の厚みtとを比較し、(表示オブジェクトの厚みt)≧(2本の指の先端間距離d)が満たされる場合に、つまみ動作を検出する。
【0077】
このように動作検出部113は、指動作モデル119を用いてユーザの指先の三次元位置を検出する。そして、動作検出部113は、指先の間に、表示オブジェクトの一部が存在し、かつ、指先の間隔が表示オブジェクトの厚み以下の場合、つまみ動作が行われたと判定する。
【0078】
次に二つ目のつまみ検出方法について説明する。
【0079】
つまみ動作検出部132は、事前にユーザにより、つまみ動作モデル保持部133に保持されたつまみ動作モデル136と指動作モデル119とのパターンマッチングを行い、一致したと判断された場合につまみを検出する。
【0080】
このように、動作検出部113は、指動作モデル119の形状が、予め定められたつまみ動作モデル136の形状と一致する場合、つまみ動作が行われたと判定する。ここで、一致とは、完全に一致する場合に限定されず、類似度が予め定められた閾値より大きい場合も含む。
【0081】
[つまみ検出時の表示制御]
以下、
図8A及び
図8Bを用いて、本実施の形態における、つまみ検出と表示制御の概要について説明する。なお、
図8A及び
図8Bでは、表示空間116に表示されている表示オブジェクトは、表示オブジェクト117と表示オブジェクト121との2つであるが、表示オブジェクトの数は3つ以上であってもよい。ここでは、表示オブジェクト117がつままれる場合について説明する。
【0082】
また、位置座標122は表示オブジェクト117の位置座標である。
【0083】
図8Aは、ユーザの手118により表示オブジェクト117がつままれる前の状態を示し、まだ、表示オブジェクト117はつままれてはいない。
図8Bは、ユーザの手118により表示オブジェクト117がつままれた状態を示す。
【0084】
図8Bに示すように、つまみ動作検出部132は、つまみ動作を検出し、つまみ位置座標201(Tx、Ty、Tz)を得る。
【0085】
また、つまみ動作検出部132は表示オブジェクト117に対してつまみ検出がなされたことを表示制御部114に通知する。表示制御部114は、表示オブジェクト117に対するつまみ検出を受けて、表示オブジェクト117がつままれたことをユーザに通知する視覚効果を表示オブジェクト117に対して実施する表示指示を表示部111に渡す。つまり、表示制御部114は、つまみ動作によりつままれた表示オブジェクト117の表示方法を変更する。
【0086】
具体的には、表示制御部114は、つままれた表示オブジェクト117を強調表示する。例えば、
図8Bに示すように、表示制御部114は、表示オブジェクト117の輪郭を際立たせる。なお、表示制御部114は、つままれたことを示す文字情報を表示してもよい。
【0087】
また、表示制御部114は、つままれた表示オブジェクト117以外の表示オブジェクト(ここでは表示オブジェクト121)の表示方法を変更してもよい。具体的には、表示制御部114は、表示オブジェクト121を目立たなくする。例えば、表示制御部114は、表示オブジェクト121の透過度を上げる、又は、一時的に非表示にするといった視覚効果を実施する表示指示を表示部111に渡す。
【0088】
[つまみ検出のフローチャート]
図9は、本実施の形態に係るつまみ検出処理の流れを示すフローチャートである。
【0089】
まず、ステップS101において、指動作モデリング部131は、センサ部112から、ユーザの手118の各部位とセンサ部112との間の距離情報を得る。さらに、指動作モデリング部131は、各部位の幅120をもとに、幅120が指幅閾値保持部134に保持されている閾値より細い部位を指と判断し、指動作モデル119を生成する。
【0090】
次に、ステップS102において、つまみ動作検出部132は、任意の二本の指の先端間に表示オブジェクトがあるか判定する。
【0091】
任意の二本の指の先端間に表示オブジェクトがない場合(S102でNo)、ステップS108のつまみ未検出に進み、つまみ動作は検出されずに処理が終了する。
【0092】
一方、任意の二本の指の先端間に表示オブジェクトがある場合(S102でYes)、ステップS103に進む。
【0093】
ステップS103では、つまみ動作検出部132は、任意の二本の指の先端間の距離dと表示オブジェクトの厚みtとを比較する。(表示オブジェクトの厚みt)<(2本の指の先端間距離d)であれば(S103でNo)、ステップS104に進む。一方、(表示オブジェクトの厚みt)≧(2本の指の先端間距離d)であれば(S103でYes)、ステップS105に進む。
【0094】
ステップS104では、つまみ動作検出部132は、ステップS101で得られた指動作モデル119と、つまみ動作モデル保持部133に保持されたつまみ動作モデル136とのパターンマッチングを実施する。指動作モデル119とつまみ動作モデル136とが一致しない場合は(SS104でNo)、ステップS108のつまみ未検出に進み、つまみ動作は検出されずに終了する。一方、指動作モデル119とつまみ動作モデル136とが一致した場合(S104でYes)は、ステップS105に進む。
【0095】
ステップS105では、表示制御部114は、(表示オブジェクトの厚みt)≧(2本の指の先端間距離d)となること(S103でYes)、又はつまみ動作モデル136とのパターンマッチングにより(S104でYes)、つままれたと判定された表示オブジェクトに対する、つまみ検出を示す表示指示を表示部111に渡す。これにより、表示部111は、表示空間116に当該表示指示に従った映像を表示する。なお、つまみ検出を示す表示指示の詳細は、[操作例1]〜[操作例8]で後述する。
【0096】
次にステップS106では、表示制御部114は、つままれた表示オブジェクト以外の表示オブジェクトに対して、透過度を上げる、又は、一時的に非表示にするといった表示指示を表示部111に渡す。また、ステップS107に進み、つまみ検出となる。
【0097】
なお、表示オブジェクトの厚みtと指の先端間距離dとを用いた判定(S103)と、指動作モデルと119とつまみ動作モデル136とのパターンマッチング(S104)との両方が行われているが、いずれか一方のみが行われてもよい。また、ステップS103とS104の順序は逆であってもよい。
【0098】
また、ステップS105〜S107の順序は任意の順序でよい。また、ステップS105〜S107の一部又は全てが同時(並列)に処理されてもよい。
【0099】
また、上記処理は、リアルタイムに行われる(所定の時間間隔で繰り返し行われる)ことで、随時、指動作モデル119が更新されるとともに、つまみ動作が検出される。
【0100】
以上のように、動作検出部113は、ユーザの部位のうち、予め定められた閾値より細い部分を指と認識することにより指動作モデル119を生成し、当該指動作モデル119を用いて、つまみ動作を検出する。具体的には、動作検出部113は、指動作モデル119を用いてユーザの指先の三次元位置を検出し、指先の間に、対象オブジェクト(表示オブジェクト117)の一部が存在し、かつ、指先の間隔が対象オブジェクトの厚み以下の場合、つまみ動作が行われたと判定する。または、動作検出部113は、指動作モデル119の形状が、予め定められたつまみ動作モデル136の形状と一致する場合、つまみ動作が行われたと判定する。
【0101】
このように、動作検出部113は、指動作モデル119を用いることで、適切につまみ動作を検出できる。
【0102】
以降では、つまみ検出後のユーザによる表示オブジェクト操作の方法について説明する。
【0103】
[操作例1]
操作例1は、ユーザがつまみ動作を用いて表示オブジェクト117を移動させる動作である。
図10A及び
図10Bは、操作例1を説明するための図である。
【0104】
図10Aは、位置座標122(O1x,O1y,O1z)にある表示オブジェクト117をユーザがつまんだ状態を示す。このときの、つまみ位置の座標は、つまみ位置座標202(T1x,T1y,T1z)である。
【0105】
図10Bは、ユーザが表示オブジェクト117をつまんだまま、つまみ位置座標203(T2x,T2y,T2z)までつまみ位置を移動させた場合を示している。
【0106】
このユーザによる表示オブジェクト117の移動である、つまみ位置の、つまみ位置座標202(T1x,T1y,T1z)から、つまみ位置座標203(T2x,T2y,T2z)への移動に応じて、表示制御部114は、表示オブジェクト117の表示位置を、位置座標122(O1x,O1y,O1z)から、位置座標123(O2x,O2y,O2z)へ移動させる。
【0107】
具体的には、O2x=O1x+(T2x−T1x)、O2y=O1y+(T2y−T1y)、O2z=O1z+(T2z−T1z)となる。
【0108】
このように、表示制御部114は、動作検出部113が、ユーザが対象オブジェクト(表示オブジェクト117)をつまんで移動させる移動動作を検出した場合、当該移動動作に連動して、対象オブジェクトの三次元位置を移動させる。具体的には、表示制御部114は、動作検出部113が、ユーザが対象オブジェクトをつまむつまみ動作を検出した後、当該つまみ動作が維持されたまま、つまみ位置が移動された場合、当該移動に連動して、対象オブジェクトの三次元位置を移動させる。ここで、連動するとは、例えば、つまみ位置の移動と同じ方向かつ同じ移動量、対象オブジェクトを移動させることでる。なお、この移動方向及び移動量は、厳密に同一である必要はなく、所定のオフセット又は補正が加えられてもよい。
【0109】
[操作例2]
操作例2は、ユーザがつまみ動作を用いて表示オブジェクト117を削除する動作である。
図11A〜
図11Cは、操作例2を説明するための図である。
【0110】
図11A〜
図11Cに示す削除予約領域400及び削除予約領域401は、表示オブジェクト117に含まれる予め定められた領域である。
図11Aに示すように、ユーザによる削除予約領域400及び削除予約領域401に対するつまみ動作が検出されると、表示オブジェクト117は削除待ち状態となる。
【0111】
この時、表示制御部114は、ユーザに表示オブジェクト117が削除待ち状態になったことを通知するため、表示部111に通知画像300を表示する。ここでは、通知画像300としてゴミ箱を示す画像が用いられているが、通知画像300はこの絵柄に限らない。
【0112】
次に、
図11Bに示すように、二つのつまみ位置が、それぞれ、つまみ位置座標204からつまみ位置座標206(T3x,T3y,T3z)へ、つまみ位置座標205からつまみ位置座標207(T4x,T4y,T4z)へ変化した場合、表示制御部114は、ユーザの動作に合わせて、表示オブジェクト117を引き裂くような表示効果を表示部111に表示させる。
【0113】
ここで、つまみ位置座標206とつまみ位置座標207との間の距離は下記(式4)で表される。
【0115】
この距離が、予め定められた削除閾値より大きくなった場合、表示制御部114は、表示オブジェクト117が削除されたと判断し、表示オブジェクト117の表示を消す指示を表示部111に渡す。更に、表示制御部114は、表示データ保持部115に保持されている表示オブジェクト117の情報も削除する。
【0116】
また、
図11Bと同様に、
図11Cに示すように、二つのつまみ位置が、それぞれ、つまみ位置座標204からつまみ位置座標208(T5x,T5y,T5z)へ、つまみ位置座標205からつまみ位置座標209(T6x,T6y,T6z)へ変化した場合、表示制御部114は、ユーザの動作に合わせて、表示オブジェクト117を引き裂くような表示効果を表示部111に表示させる。
【0117】
ここで、つまみ位置座標206とつまみ位置座標207との間の距離は下記(式5)で表される。
【0119】
この距離が、予め定められた削除閾値より大きくなった場合、表示制御部114は表示オブジェクト117が削除されたと判断し、表示オブジェクト117の表示を消す指示を表示部111に渡す。更に、表示制御部114は、表示データ保持部115に保持されている表示オブジェクト117の情報も削除する。
【0120】
このように、表示制御部114は、動作検出部113が、ユーザが対象オブジェクト(表示オブジェクト117)を破る又は引き裂く動作を検出した場合、対象オブジェクトを削除する。例えば、表示制御部114は、動作検出部113が、ユーザが両手で対象オブジェクトの2点をつまむつまみ動作を検出した後、当該2点の距離が予め定められた削除閾値以上大きくなるように、つまみ位置が移動された場合、対象オブジェクトを削除する。
【0121】
なお、上記説明では、削除予約領域400及び削除予約領域401がつままれた場合に削除待ち状態になるとしたが、表示オブジェクト117の任意の2点がつままれた場合に削除待ち状態になってもよい。
【0122】
[操作例3]
操作例3は、ユーザがつまみ動作を用いて表示オブジェクト117を横方向に拡大又は縮小する動作である。
図12A〜
図12Cは、操作例3を説明するための図である。
【0123】
横方向拡大縮小予約領域402及び横方向拡大縮小予約領域403は、表示オブジェクト117に含まれる予め定められた領域である。例えば、横方向拡大縮小予約領域402は、表示オブジェクト117の左端周辺の領域であり、横方向拡大縮小予約領域403は、表示オブジェクト117の右端周辺の領域である。
【0124】
図12Aに示すように、ユーザによる横方向拡大縮小予約領域402及び横方向拡大縮小予約領域403に対するつまみ動作が検出されると、表示オブジェクト117は横方向拡大縮小待ち状態となる。
【0125】
この時、表示制御部114は、ユーザに表示オブジェクト117が横方向拡大縮小待ち状態になったことを通知するため、表示部111に通知画像301を表示する。ここでは、通知画像301として横方向の矢印を示す画像が用いられているが、通知画像301はこの絵柄に限らない。
【0126】
次に、
図12B及び
図12Cに示すように、二つのつまみ位置が、それぞれ、つまみ位置座標210(T7x,T7y,T7z)からつまみ位置座標212(T9x,T9y,T9z)へ、つまみ位置座標211(T8x,T8y,T8z)からつまみ位置座標213(T10x,T10y,T10z)へ変化した場合、表示制御部114は、横方向の変化量(T9x−T7x)及び(T10x−T8x)に応じて、表示オブジェクト117の横方向のサイズを拡大、又は縮小する表示指示を表示部111に渡す。
【0127】
このように、表示制御部114は、動作検出部113が、ユーザが対象オブジェクト(表示オブジェクト117)の2点をつまんだ状態で、当該対象オブジェクトを引き伸ばす動作を検出した場合、対象オブジェクトを拡大する。具体的には、表示制御部114は、動作検出部113が、ユーザが両方の手で対象オブジェクトに含まれる横方向拡大縮小予約領域402及び横方向拡大縮小予約領域403の各々をつまむつまみ動作を検出した後、当該つまみ動作が維持されたまま、つまみ位置の横方向の座標の差が大きくなるようにつまみ位置が移動された場合、当該差と同じ量、対象オブジェクトの横方向のサイズを拡大する。なお、この横方向のサイズの拡大量は、つまみ位置の横方向の差の増加量と厳密に同一である必要はなく、所定のオフセット又は補正が加えられてもよい。
【0128】
また、表示制御部114は、動作検出部113が、ユーザが対象オブジェクトの2点をつまんだ状態で、当該対象オブジェクトを縮める動作を検出した場合、対象オブジェクトを縮小する。具体的には、表示制御部114は、動作検出部113が、ユーザが両方の手で対象オブジェクトに含まれる横方向拡大縮小予約領域402及び横方向拡大縮小予約領域403の各々をつまむつまみ動作を検出した後、当該つまみ動作が維持されたまま、つまみ位置の横方向の座標の差が小さくなるようにつまみ位置が移動された場合、当該差と同じ量、対象オブジェクトの横方向のサイズを縮小する。なお、この横方向のサイズの縮小量は、つまみ位置の横方向の差の減少量と厳密に同一である必要はなく、所定のオフセット又は補正が加えられてもよい。
【0129】
[操作例4]
操作例4は、ユーザがつまみ動作を用いて表示オブジェクト117を斜め向に拡大又は縮小する動作である。
図13A〜
図13Cは、操作例4を説明するための図である。
【0130】
斜め方向拡大縮小予約領域404及び斜め方向拡大縮小予約領域405は、表示オブジェクト117に含まれる予め定められた領域である。例えば、斜め方向拡大縮小予約領域404は、表示オブジェクト117の左上端周辺の領域であり、斜め方向拡大縮小予約領域405は、表示オブジェクト117の右下端周辺の領域である。
【0131】
図13Aに示すように、ユーザによる斜め方向拡大縮小予約領域404及び斜め方向拡大縮小予約領域405に対するつまみ動作が検出されると、表示オブジェクト117は斜め方向拡大縮小待ち状態となる。なお、2つの斜め方向拡大縮小予約領域は、表示オブジェクト117の左下端周辺の領域及び右上端周辺の領域であってもよい。また、左上端周辺の領域及び右下端周辺の領域との組、及び、左下端周辺の領域及び右上端周辺の領域との組の一方の組に対してつまみ動作が検出された場合に、表示オブジェクト117は斜め方向拡大縮小待ち状態となってもよい。言い換えると、表示オブジェクト117の対向する2つの角部周辺の領域がつままれた場合に、表示オブジェクト117は斜め方向拡大縮小待ち状態となってもよい。
【0132】
この時、表示制御部114は、ユーザに表示オブジェクト117が斜め方向拡大縮小待ち状態になったことを通知するため、通知画像302を表示部111に表示させる。ここでは、通知画像302として斜め方向の矢印を示す画像が用いられているが、通知画像302はこの絵柄に限らない。
【0133】
次に、
図13B及び
図13Cに示すように、2つのつまみ位置が、それぞれ、つまみ位置座標214(T11x,T11y,T11z)からつまみ位置座標216(T13x,T13y,T13z)へ、つまみ位置座標215(T12x,T12y,T12z)からつまみ位置座標217(T14x,T14y,T14z)へ変化した場合、斜め方向の変化量は、下記(式6)及び(式7)で表される。
【0136】
表示制御部114は、この変化量に応じて、表示オブジェクト117の斜め方向のサイズを拡大又は縮小する表示指示を表示部111に渡す。
【0137】
このように、表示制御部114は、動作検出部113が、ユーザが対象オブジェクト(表示オブジェクト117)の2点をつまんだ状態で、当該対象オブジェクトを引き伸ばす動作を検出した場合、対象オブジェクトを拡大する。具体的には、表示制御部114は、動作検出部113が、ユーザが両方の手で対象オブジェクトに含まれる斜め方向拡大縮小予約領域404及び斜め方向拡大縮小予約領域405の各々をつまむつまみ動作を検出した後、当該つまみ動作が維持されたまま、つまみ位置の斜め方向の座標の差が大きくなるようにつまみ位置が移動された場合、当該差と同じ量、対象オブジェクトの斜め方向のサイズを拡大する。なお、この斜め方向のサイズの拡大量は、つまみ位置の斜め方向の差の増加量と厳密に同一である必要はなく、所定のオフセット又は補正が加えられてもよい。
【0138】
また、表示制御部114は、動作検出部113が、ユーザが対象オブジェクトの2点をつまんだ状態で、当該対象オブジェクトを縮める動作を検出した場合、対象オブジェクトを縮小する。具体的には、表示制御部114は、動作検出部113が、ユーザが両方の手で対象オブジェクトに含まれる斜め方向拡大縮小予約領域404及び斜め方向拡大縮小予約領域405の各々をつまむつまみ動作を検出した後、当該つまみ動作が維持されたまま、つまみ位置の斜め方向の座標の差が小さくなるようにつまみ位置が移動された場合、当該差と同じ量、対象オブジェクトの斜め方向のサイズを縮小する。なお、この斜め方向のサイズの縮小量は、つまみ位置の斜め方向の差の減少量と厳密に同一である必要はなく、所定のオフセット又は補正が加えられてもよい。
【0139】
[操作例5]
操作例5は、ユーザがつまみ動作を用いて表示オブジェクト117を縦方向に拡大又は縮小する動作である。
図14A〜
図14Cは、操作例5を説明するための図である。
【0140】
縦方向拡大縮小予約領域406及び縦方向拡大縮小予約領域407は、表示オブジェクト117に含まれる予め定められた領域である。例えば、縦方向拡大縮小予約領域406は、表示オブジェクト117の上端周辺の領域であり、縦方向拡大縮小予約領域407は、表示オブジェクト117の下端周辺の領域である。
図14Aに示すように、ユーザによる縦方向拡大縮小予約領域406及び縦方向拡大縮小予約領域407に対するつまみ動作が検出されると、表示オブジェクト117は縦方向拡大縮小待ち状態となる。
【0141】
この時、表示制御部114は、ユーザに表示オブジェクト117が縦方向拡大縮小待ち状態になったことを通知するため、通知画像303を表示部111に表示させる。ここでは、通知画像303として縦方向の矢印を示す画像が用いられているが、通知画像303はこの絵柄に限らない。
【0142】
次に、
図14B及び
図14Cに示すように、二つのつまみ位置が、それぞれ、つまみ位置座標218(T15x,T15y,T15z)からつまみ位置座標220(T17x,T17y,T17z)へ、つまみ位置座標219(T16x,T16y,T16z)からつまみ位置座標221(T18x,T18y,T18z)へ変化した場合、表示制御部114は、縦方向の変化量(T17y−T15y)及び(T18y−T16y)に応じて、表示オブジェクト117の縦方向のサイズを拡大又は縮小する表示指示を表示部111に渡す。
【0143】
このように、表示制御部114は、動作検出部113が、ユーザが対象オブジェクト(表示オブジェクト117)の2点をつまんだ状態で、当該対象オブジェクトを引き伸ばす動作を検出した場合、前記対象オブジェクトを拡大する。具体的には、表示制御部114は、動作検出部113が、ユーザが両方の手で対象オブジェクトに含まれる縦方向拡大縮小予約領域406及び縦方向拡大縮小予約領域407の各々をつまむつまみ動作を検出した後、当該つまみ動作が維持されたまま、つまみ位置の縦方向の座標の差が大きくなるようにつまみ位置が移動された場合、当該差と同じ量、対象オブジェクトの縦方向のサイズを拡大する。なお、この縦方向のサイズの拡大量は、つまみ位置の縦方向の差の増加量と厳密に同一である必要はなく、所定のオフセット又は補正が加えられてもよい。
【0144】
また、表示制御部114は、動作検出部113が、ユーザが対象オブジェクトの2点をつまんだ状態で、当該対象オブジェクトを縮める動作を検出した場合、対象オブジェクトを縮小する。具体的には、表示制御部114は、動作検出部113が、ユーザが両方の手で対象オブジェクトに含まれる縦方向拡大縮小予約領域406及び縦方向拡大縮小予約領域407の各々をつまむつまみ動作を検出した後、当該つまみ動作が維持されたまま、つまみ位置の縦方向の座標の差が小さくなるようにつまみ位置が移動された場合、当該差と同じ量、対象オブジェクトの縦方向のサイズを縮小する。なお、この縦方向のサイズの縮小量は、つまみ位置の縦方向の差の減少量と厳密に同一である必要はなく、所定のオフセット又は補正が加えられてもよい。
【0145】
[操作例6]
操作例6は、ユーザがつまみ動作を用いたページめくり動作である。
図15A〜
図15Cは、操作例6を説明するための図である。
【0146】
ページめくり予約領域408及びページめくり予約領域409は、表示オブジェクト117の予め定められた領域である。例えば、ページめくり予約領域408は、表示オブジェクト117の左端周辺の領域であり、ページめくり予約領域409は、表示オブジェクト117の右端周辺の領域である。
【0147】
図15Aに示すように、ユーザによるページめくり予約領域408又はページめくり予約領域409に対するつまみ動作が検出されると、表示オブジェクト117はページめくり待ち状態となる。
【0148】
この時、表示制御部114は、ユーザに表示オブジェクト117がページめくり待ち状態になったことを通知するため、通知画像304を表示部111に表示させる。ここでは、通知画像304として本を示す画像が用いられているが、通知画像304はこの絵柄に限らない。
【0149】
次に、
図15B及び
図15Cに示すように、つまみ位置が、つまみ位置座標222(T19x,T19y,T19z)からつまみ位置座標223(T20x,T20y,T20z)へ変化した場合、(T20x−T19x≧0)、(T20y−T19y≦0)かつ(T20z−T19z≦0)が満たされれば、表示制御部114は、ユーザによるページめくり操作が実施されたと判断し、表示オブジェクト117のページめくり動作の表示指示を表示部111に渡す。
【0150】
ページめくり予約領域409がつままれた場合も同様に、(T20x−T19x≦0)、(T20y−T19y≦0)かつ(T20z−T19z≦0)が満たされれば、表示制御部114は、ユーザによるページめくり操作が実施されたと判断し、表示オブジェクト117のページめくり動作の表示指示を表示部111に渡す。
【0151】
このように、表示制御部114は、動作検出部113が、ユーザが対象オブジェクト(表示オブジェクト117)をつまんだ状態で、対象オブジェクトのページをめくる動作を検出した場合、対象オブジェクトのページめくり動作を行う。具体的には、対象オブジェクトは、ページをめくることが可能なオブジェクトであり、例えば、三次元又は二次元の電子書籍である。表示制御部114は、動作検出部113により、ユーザが対象オブジェクトのページ端部周辺の領域をつまむつまみ動作を検出した後に、当該つまみ動作が維持されたまま、つまみ位置が、手前側かつページ中央方向に移動した場合、対象オブジェクトのページめくり動作を行う。ここで、ページめくり動作とは、例えば表示する電子書籍のページを、次のページに切り替える動作である。
【0152】
[操作例7]
操作例7は、ユーザが表示オブジェクト117を指ではじく動作である。
図16A及び
図16Bは、操作例7を説明するための図である。
【0153】
ユーザは、
図16Aに示すつまみ状態から、
図16Bに示すように、つまみ動作をしている指を離して、表示オブジェクト117をはじく動作を行う。位置座標500(T21x,T21y,T21z)及び位置座標501(T22x,T22y,T22z)は、つまみ動作を行っている2本の指のそれぞれの先端箇所の位置座標である。
図16Aのつまみ動作から2本の指が離れる直前の時刻をt1とする。
【0154】
図16Bのはじく動作を行った際の2本の指のそれぞれの先端箇所の位置は、位置座標500(T21x,T21y,T21z)から位置座標502(T23x,T23y,T23z)へ、位置座標501(T22x,T22y,T22z)から位置座標503(T24x,T24y,T24z)へ変化し、はじく動作が行われた時刻をt2とする。
【0155】
この時、二本の指の先端箇所の移動速度vは、下記(式8)で表される。
【0157】
この時、はじく動作により表示オブジェクト117は、位置座標124(O3x,O3y,O3z)から位置座標125(O4x,O4y,O4z)に移る。このとき、例えば、表示オブジェクト117は、Z軸方向に、(O4z=O3z+v×ゲイン設定値)で求める移動距離130だけ移動する。例えば、ゲイン設定値は、ユーザにより設定することを可能である。
【0158】
このように、表示制御部114は、動作検出部113が、ユーザが対象オブジェクト(表示オブジェクト117)を指ではじく動作を検出した場合、対象オブジェクトをはじかれた方向に移動させる。具体的には、表示制御部114は、対象オブジェクトがはじかれた速度及び指の変化量が大きいほど、対象オブジェクトを元の位置からより遠くに移動させる。
【0159】
[操作例8]
操作例8は、その他の操作例である。
【0160】
操作例1を応用して、
図17に示すように、ユーザが、表示オブジェクト117をつまんだ状態で、表示オブジェクト117を振るような動作を行った場合、表示制御部114は、表示オブジェクト117が振られたような表示を行ってもよい。
【0161】
また、
図18に示ように、一回のつまみ動作により複数の表示オブジェクトがつままれてもよい。この場合、上記操作例1〜7の動作により、つままれた複数の表示オブジェクトの全てに対して、処理が行われる。
【0162】
以上、本発明の実施の形態に係るユーザインタフェース装置について説明したが、本発明は、この実施の形態に限定されるものではない。
【0163】
例えば、上記説明では、表示オブジェクトとして板状のオブジェクトが用いられる例を示したが、表示オブジェクトの形状はこれに限らない。
【0164】
また、上記実施の形態に係るユーザインタフェース装置に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
【0165】
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【0166】
また、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
【0167】
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
【0168】
また、本発明は、上述したユーザインタフェース装置として実現できるだけでなく、ユーザインタフェース装置に含まれる特徴的な手段をステップとする表示オブジェクト操作方法、又はユーザインタフェース装置の制御方法等として実現できる。
【0169】
また、上記ユーザインタフェース装置において上記のステップが実行される順序は、本発明を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
【0170】
以上、一つまたは複数の態様に係るユーザインタフェース装置について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。