[入力装置の構成例]
まず、本発明に係る入力装置の構成例について、図1から図4までを参照して説明する。
図1は、入力装置の第1の構成例を示す図である。
図1に示すように、第1の構成例の入力装置1は、表示装置2(2A)と、距離センサ3と、情報処理装置4と、スピーカ5と、を備える。
表示装置2Aは、装置外部の3次元空間に立体映像6(601,602,603)を表示する装置である。図1に示した表示装置2Aは、裸眼3D液晶ディスプレイ、液晶シャッターメガネ式3Dディスプレイ等の立体映像表示装置である。この種の表示装置2Aは、オペレータ7と表示装置2Aとの間の空間に立体映像6が表示される。図1に示した立体映像6は、3枚の平面状の操作画面601,602,603を含む。各操作画面601,602,603には、操作用の複数のボタンが表示されている。各ボタンには入力装置1(情報処理装置4)が行う処理が対応付けられている。
距離センサ3は、立体映像6が表示された空間領域を含む所定の空間領域内におけるオペレータの手指の有無や立体映像6からの距離に関する情報等を検出する。
情報処理装置4は、距離センサ3の検出結果に基づいてオペレータが行った動作と対応した入力状態を判定し、その判定結果(入力状態)に応じた立体映像6を生成する。情報処理装置4は、生成した立体映像6を表示装置2に表示させる。また、オペレータが行った動作が所定の入力状態に該当する場合、情報処理装置4は、所定の入力状態に応じた音声を生成し、スピーカ5に出力する。
図1の入力装置1では、オペレータ7の指先701が立体映像6(操作画面601,602,603)に含まれるボタンの像に触れたことを検出すると、入力状態が仮選択となる。その後、オペレータ7がボタンの像を押下する動作を行い指先701が入力確定位置に到達すると、入力装置1は、入力状態を入力確定と判定する。入力状態が入力確定になると、入力装置1は、オペレータ7が押下したボタンと対応付けられた処理を実行する。
図2は、入力装置の第2の構成例を示す図である。
図2に示すように、第2の構成例の入力装置1は、表示装置2(2B)と、距離センサ3と、情報処理装置4と、スピーカ5と、スクリーン8と、立体視用メガネ10と、を備える。
表示装置2Bは、装置外部の3次元空間に立体映像6を表示する装置である。図2に示した表示装置2Bは、例えば、液晶シャッター式等のメガネ着用型3Dプロジェクターであり、スクリーン8と向かう合うオペレータ7の後方からスクリーン8に左目用の映像と右目用の映像とを所定の時間間隔で切り替えながら投影する。この種の表示装置2Bは、オペレータ7とスクリーン8との間の空間に立体映像6が表示される。オペレータ7は、表示装置2Bにおける投影映像の切替タイミングに同期して像が見える状態(オン)と像が見えない状態(オフ)とが切り替わる立体視用メガネ10を装着して所定の空間領域を観察することで立体映像6を視認することが可能となる。図2に示した立体映像6は、操作用のボタンの像611,612,613を所定の平面内に2次元配置した映像である。ボタンの像611,612,613には、入力装置1(情報処理装置4)が行う処理が対応付けられている。
距離センサ3は、立体映像6が表示された空間領域を含む所定の空間領域内におけるオペレータの手指の有無や立体映像6からの距離に関する情報等を検出する。
情報処理装置4は、距離センサ3の検出結果に基づいてオペレータが行った動作と対応した入力状態を判定し、その判定結果(入力状態)に応じた立体映像6を生成する。情報処理装置4は、生成した立体映像6を表示装置2に表示させる。また、オペレータが行った動作が所定の入力状態に該当する場合、情報処理装置4は、所定の入力状態に応じた音声を生成し、スピーカ5に出力する。
図2の入力装置1は、情報処理装置4のアンテナ411と立体視用メガネ10のアンテナ1001との間で無線通信を行うことにより立体視用メガネ10の動作を制御する。なお、情報処理装置4と立体視用メガネ10とは、通信ケーブルで接続してもよい。
図3は、入力装置の第3の構成例を示す図である。
図3に示すように、第3の構成例の入力装置1は、表示装置2(2C)と、距離センサ3と、情報処理装置4と、スピーカ5と、を備える。
表示装置2Cは、装置外部の3次元空間に立体映像6を表示する装置である。図2に示した表示装置2Cは、例えば、液晶シャッター式等のメガネ着用型3Dプロジェクターであり、表示装置2Cの上方に立体映像6を表示する向きで設置される。図3に示した立体映像6は、操作用のボタンの像等を平面内に2次元配置させた平面状の操作画面の映像である。ボタンの像には、入力装置1(情報処理装置4)が行う処理が対応付けられている。
距離センサ3は、立体映像6が表示された空間領域を含む所定の空間領域内におけるオペレータの手指の有無や立体映像6からの距離に関する情報等を検出する。
情報処理装置4は、距離センサ3の検出結果に基づいてオペレータが行った動作と対応した入力状態を判定し、その判定結果(入力状態)に応じた立体映像6を生成する。情報処理装置4は、生成した立体映像6を表示装置2に表示させる。また、オペレータが行った動作が所定の入力状態に該当する場合、情報処理装置4は、所定の入力状態に応じた音声を生成し、スピーカ5に出力する。
図3の入力装置1における表示装置2Cは、例えば、テーブルの天板上に設置されている。また、距離センサ3は、テーブルの天板の上方に設置されている。
図4は、入力装置の第4の構成例を示す図である。
図4に示すように、第4の構成例の入力装置1は、表示装置2(2D)と、距離センサ3と、情報処理装置4と、スピーカ5と、を備える。
表示装置2Dは、ヘッドマウントディスプレイ(HMD)であり、装置外部の3次元空間に立体映像6が表示された映像をオペレータ7に提示する装置である。この種の表示装置2Dを備えた入力装置1では、例えば、表示装置2D内に設けたディスプレイ装置(映像表示面)に装置外部の映像と立体映像6とを合成した合成映像を表示させることで、オペレータ7に、前方に立体映像6が存在する感覚を与える。図4に示した立体映像6は、操作用のボタンの像等を平面内に2次元配置した映像である。各ボタンの像には、入力装置1(情報処理装置4)が行う処理が対応付けられている。
距離センサ3は、表示装置2Dに表示される所定の空間領域内(立体映像6が表示された空間領域内)におけるオペレータの手指の有無や立体映像6からの距離に関する情報等を検出する。
情報処理装置4は、距離センサ3の検出結果に基づいてオペレータが行った動作と対応した入力状態を判定し、その判定結果(入力状態)に応じた立体映像6を生成する。情報処理装置4は、生成した立体映像6を表示装置2に表示させる。また、オペレータが行った動作が所定の入力状態に該当する場合、情報処理装置4は、所定の入力状態に応じた音声を生成し、スピーカ5に出力する。
上記のように、入力装置1は、表示装置2の外部の3次元空間に表示させた立体映像6に含まれるボタンの像を押下する操作をオペレータ7が行った場合に、入力状態を判定し、判定結果に応じた処理を行う。なお、入力装置1におけるオペレータの手指の有無や立体映像6からの距離に関する情報等の検出には、距離センサ3に限らず、ステレオカメラ等を用いることも可能である。また、本明細書では、オペレータの指先701の位置の変化に応じて入力状態を判定しているが、入力装置1では、指先701に限らず、棒状の実物体の先端位置の変化に応じて入力状態を判定することも可能である。
[第1の実施形態]
図5は、第1の実施形態に係る入力装置で表示させる立体映像の例を示す図である。図6は、立体映像におけるボタンの像の例を示す図である。
第1の実施形態の入力装置1では、例えば図5に示すような立体映像6を3次元空間に表示させる。図5に示した立体映像6は、6個のボタン(611,612,613,614,615,616)と、背景630と、を含む。6個のボタン(611,612,613,614,615,616)には、それぞれ所定の処理が割り当てられている。オペレータ7が指先701等でボタンのいずれかに触れて押下する動作を行うと、入力装置1は、その動作を検出し、入力状態に応じてボタンの像を変化させる。入力状態は、図6に示すように、非選択と、仮選択と、押下中と、入力確定と、キーリピートと、を含む。
非選択は、オペレータ7の指先701等が触れていない入力状態である。入力状態が非選択であるボタンの像620は、例えば、所定のサイズであり、非選択であることを示す色の像である。
仮選択は、オペレータ7の指先701等が触れて押下操作の候補になった入力状態、言い換えると操作対象に選択された入力状態である。入力状態が仮選択である場合のボタンの像621は、非選択のボタンの像620よりもサイズの大きい像であり、内部に仮選択であることを示す領域621aを含む。領域621aは、非選択のボタンの像620と同一形状であり、かつ色が異なる。また、仮選択のボタンの像621の外周621bは、入力確定枠として機能する。
押下中は、オペレータ7に押下操作(入力操作)の対象に選択され、オペレータ7による押下する動作が行われている入力状態である。入力状態が押下中である場合のボタンの像622は、仮選択のボタンの像621と同じサイズであり、内部に押下中であることを示す領域621bを含む。領域621bは、仮選択のボタンの像621における領域621aと同じ色であるが、サイズが異なる。押下中のボタンの像622における領域622aのサイズは当該ボタンの押下量に応じて変化し、押下量が大きいほど領域622aのサイズが大きくなる。この押下中のボタンの像622における外周622bは、上記の入力確定枠として機能する。すなわち、ボタンの像622における外周622bは、領域622aの外周が外周622bと重なると入力が確定することを示している。
入力確定は、ボタンを押下する動作を行っているオペレータ7の指先701が所定の入力確定点に到達し、ボタンと対応付けられた情報の入力が確定した入力状態である。入力状態が入力確定である場合のボタンの像623は、非選択のボタンの像620と同一形状、同一サイズである。また、入力確定のボタンの像623は、非選択のボタンの像620及び仮選択のボタン621とは色が異なる。更に、入力確定のボタンの像623は、例えば、非選択のボタンの像620及び仮選択のボタン621と比べて外周の線が太くなっている。
キーリピートは、入力が確定してから所定期間以上オペレータ7の指先701が所定の確定状態継続範囲内に留まっており、情報の入力が繰り返される入力状態である。入力状態がキーリピートである場合のボタンの像624は、入力確定のボタンの像624と同一形状、同一サイズである。また、入力確定のボタンの像623は、非選択のボタンの像620及び仮選択のボタン621並びに入力確定のボタンの像624とは色が異なる。
図7Aは、ボタンを押下する動作を行うときの立体映像の遷移を示す図(その1)である。図7Bは、ボタンを押下する動作を行うときの立体映像の遷移を示す図(その2)である。なお、図7Aの(a)、(b)、及び(c)、並びに図7Bの(d)、(e)、及び(f)は、それぞれ、左側の図がオペレータから見た立体映像を示したxy平面の図であり、右側の図がxy平面と直交するyz平面の図である。
本実施形態に係る入力装置1(情報処理装置4)は、図7Aの(a)に示すように、まず、全てのボタンの入力状態が非選択である立体映像6を生成し3次元空間に表示させる。オペレータ7から見た立体映像6の表示面P1の奥行き方向遠方側に入力確定点(入力確定面)P2が設定される。また、図7Aの(a)に示したように、オペレータ7の指先701が立体映像6のボタン616を指している場合でも、指先701の位置が表示面P1を含む所定の奥行き範囲内に入っていなければ、ボタン616は、非選択のボタンの像620のままである。
そして、オペレータ7の指先701が仮選択領域内に入ると、入力装置1は、図7Aの(b)に示すように、指先701が触れたボタン616の像を非選択のボタンの像620から仮選択のボタンの像621に変更する。更に、オペレータ7の指先701がボタンを押下する方向(−z方向)に移動すると、入力装置1は、図7Aの(c)及び図7Bの(d)に示すように、指先701で指定(選択)しているボタン616の像を指先の移動量に応じた押下中のボタンの像622に随時変更する。
そして、オペレータ7の指先701が入力確定点P2に到達すると、入力装置1は、図7Bの(e)に示すように、指先701で指定(選択)しているボタン616の像を押下中のボタンの像622から入力確定のボタンの像623に変更する。また、入力が確定した後、オペレータ7の指先701が所定期間以上、確定状態維持範囲A1内に留まっている場合、入力装置1は、図7Bの(f)に示すように、指先で指定(選択)しているボタン616の像をキーリピートのボタンの像624に変更する。
このように、本実施形態の入力装置1は、入力状態が仮選択又は押下中のボタンに対して入力確定枠を表示する。また、押下中のボタンに対して、入力装置1は、押下量に応じてボタンの像622に含まれる領域622aのサイズを変化させる。そのため、オペレータ7は、ボタンが操作対象に選定されたことや、どこまで押下すれば入力が確定するかを直感的に把握することができる。
図8は、立体映像の表示に用いる操作用表示映像データの例を示す図である。図9は、入力確定範囲及び確定状態維持範囲を示す図である。
入力装置1の情報処理装置4は、例えば、操作用表示映像データを用いて、図5に示すような立体映像6を生成し表示装置2に表示させる。操作用表示映像データは、例えば、図8に示すように、アイテムIDと、イメージデータ名と、種別と、配置座標と、表示サイズと、を含む。また、操作用表示映像データは、確定枠の位置及びサイズと、確定までの移動量と、確定状態維持範囲と、キーリピート開始時間と、を含む。
アイテムIDは、立体映像6に含まれる要素(像)を識別する値である。イメージデータ名及び種別は、各アイテムの像の種類を指定する情報である。配置座標及び表示サイズは、それぞれ、立体映像6内における各アイテムの表示位置と表示サイズを指定する情報である。確定枠の位置とサイズは、入力状態が仮選択又は押下中である場合に表示される入力確定枠の表示位置及び表示サイズを指定する情報である。確定までの移動量は、入力状態が仮選択に移行した後、オペレータの指が奥行き方向にどれだけ移動すると入力状態を入力確定にするかを表す情報である。確定状態維持範囲は、入力状態が入力確定に移行した後、入力確定の状態が維持される指先の位置の範囲を指定する情報である。キーリピート開始時間は、入力状態が入力確定に移行してからキーリピートを開始するまでの時間を表す情報である。操作用表示映像データにおける確定までの移動量は、例えば、図9に示すように、立体映像6の表示面P1から入力確定点P2までの奥行き方向の距離を表す。すなわち、入力装置1は、オペレータ7の指先701が表示面P1に表示されたボタン616内を通り、入力確定点P2に到達すると、ボタン616と対応付けられた情報の入力を確定する。ところが、入力確定点P2にはオペレータ7の指先701の奥行き方向への移動を阻止する物体が存在しない。そのため、オペレータが入力確定点P2に到達した時点で指先の移動を止めることは難しく、指先701が入力確定点P2を超えて更に奥行き遠方に移動することが多い。そのため、図9に示したように、入力確定点P2から奥行き遠方側の所定範囲を入力確定範囲A2とし、奥行き方向(押下方向)への指先701の移動が入力確定範囲A2内で止まった場合、入力状態を入力確定としてもよい。この場合、図9に示した操作用映像表示データに入力確定範囲A2を付加しておく。
また、入力確定の状態を継続させる場合、オペレータ7は、3次元空間で指先701の位置を確定状態維持範囲A1内に留めておかなければならないが、3次元空間で指先の位置を固定することは難しい。そのため、入力確定状態の継続時間を計測する確定状態維持範囲A2は、図9に示すように、入力確定点P2よりも奥行き方向手前側(+z方向)を含むようにしてもよい。
図10は、第1の実施形態に係る情報処理装置の機能的構成を示す図である。
図10に示すように、本実施形態に係る情報処理装置4は、手指検出部401と、入力状態判定部402と、生成映像指定部403と、映像生成部404と、音声生成部405と、制御部406と、記憶部407と、を備える。
手指検出部401は、距離センサ3から取得した情報に基づいてオペレータの手指の有無の判定や、手指がある場合の立体映像6から指先までの距離の算出等を行う。
入力状態判定部402は、手指検出部401の検出結果と、直前の入力状態とに基づいて、現在の入力状態を判定する。入力状態は、上記の非選択と、仮選択と、押下中と、入力確定と、キーリピートと、を含む。また、入力状態は、入力確定中移動、を更に含む。入力確定中移動は、入力確定の状態が継続しているボタン等を含む立体映像6を3次元空間内で移動させている状態である。
生成映像指定部403は、直前の入力状態と、現在の入力状態とに基づいて生成する映像、すなわち表示する立体映像6の生成に必要な情報を指定する。
映像生成部404は、生成映像指定部403からの指定情報に従って立体映像6の表示データを生成し、表示装置2に出力する。
音声生成部405は、入力状態が所定の状態であるときに出力する音声信号を生成する。音声生成部405は、例えば、入力状態が押下中から入力確定に変化したときや、入力確定状態が所定期間続いたとき等に音声信号を生成する。
制御部406は、直前の入力状態と、入力状態判定部402の判定結果とに基づいて、生成映像指定部403及び音声生成部405の動作を制御する。直前の入力状態は、制御部406内に設けたバッファ、或いは記憶部407に記憶させておく。制御部406は、手指検出部401が検出した指の位置の変化に応じてボタンの押下量の変化を示す表示を表示装置2に表示させる際に、ボタンの押下量がボタンの入力確定に達する押下量に対してどの程度かを示す情報を表示装置2に表示させる制御を行う。
記憶部407は、操作用表示映像データ群と、出力音データ群と、を記憶する。操作用表示映像データ群は、立体映像6毎に用意された複数の操作用表示映像データ(図8参照)の集合である。出力音データ群は、音声生成部405において音声を生成する際に用いるデータの集合である。
図11は、第1の実施形態に係る生成映像指定部の機能的構成を示す図である。
生成映像指定部403は、上記のように、表示する立体映像6の生成に必要な情報を指定する。生成映像指定部403は、図11に示すように、初期映像指定部403aと、確定枠指定部403bと、枠内映像指定部403cと、隣接ボタン表示指定部403dと、入力確定映像指定部403eと、表示位置指定部403fと、を含む。
初期映像指定部403aは、入力状態が非選択である場合の立体映像6の生成に必要な情報を指定する。確定枠指定部403bは、入力状態が仮選択又は押下中であるボタンの像における入力確定枠についての情報を指定する。枠内映像指定部403cは、入力状態が仮選択又は押下中であるボタンの像における入力確定枠内の情報、すなわち仮選択のボタンの像621における領域621aや押下中のボタンの像622における領域622aについての情報を指定する。隣接ボタン表示指定部403dは、入力状態が仮選択又は押下中であるボタンと隣接する他のボタンの表示/非表示を指定する。入力確定映像指定部403eは、入力状態が入力確定であるボタンの像についての情報を指定する。表示位置指定部403fは、入力状態が入力確定中移動であるボタン等を含む立体映像の表示位置を指定する。
図12は、第1の実施形態に係る情報処理装置が行う処理を説明するフローチャートである。
本実施形態の情報処理装置4は、図12に示すように、まず、初期映像を表示させる(ステップS1)。ステップS1において、情報処理装置4は、生成映像指定部403の初期映像指定部403aにおいて入力状態が非選択である場合の立体映像6の生成に必要な情報を指定し、映像生成部404において立体映像6の表示データを生成する。初期映像指定部403aは、記憶部407の操作用表示映像データ群を用いて立体映像6の生成に必要な情報を指定する。映像生成部404は、生成した表示データを表示装置2に出力し、表示装置2に立体映像6を表示させる。
次に、情報処理装置4は、距離センサ3が出力したデータを取得し(ステップS2)、手指の検出処理を行う(ステップS3)。ステップS2及びS3は、手指検出部401が行う。手指検出部401は、取得した距離センサ3からのデータに基づいて、立体映像6を表示している空間を含む検出範囲内にオペレータ7の手指が存在するか否かを調べる。ステップS3の後、情報処理装置4は、オペレータ7の手指を検出したか否かを判定する(ステップS4)。
オペレータ7の手指を検出した場合(ステップS4;Yes)と、情報処理装置4は、次に、指先の空間座標を算出し(ステップS5)、ボタンと指先との相対位置を算出する(ステップS6)。ステップS5及びS6は、手指検出部401が行う。手指検出部401は、既知の空間座標の算出方法及び相対位置の算出方法によりステップS5及びS6の処理を行う。ステップS5及びS6の後、情報処理装置4は、入力状態判定処理(ステップS7)を行う。一方、オペレータ7の手指を検出しなかった場合(ステップS4;No)、情報処理装置4は、ステップS5及びS6の処理をスキップして入力状態判定処理(ステップS7)を行う。
ステップS7の入力状態判定処理は、入力状態判定部402が行う。入力状態判定部402は、直前の入力状態と、手指検出部401におけるステップS3からS6までの処理の結果とに基づいて、現在の入力状態を判定する。
入力状態判定処理(ステップS7)を終えると、情報処理装置4は、次に、生成映像指定処理(ステップS8)を行う。生成映像指定処理は、生成映像指定部403が行う。生成映像指定部403は、現在の入力状態に基づいて、表示する立体映像6の生成に必要な情報を指定する。
ステップS8の生成映像指定処理を終えると、情報処理装置4は、表示する映像の表示データを生成し(ステップS9)、表示装置2に映像を表示させる(ステップS10)。ステップS9及びS10は、映像生成部404が行う。映像生成部404は、生成映像指定部403により指定された情報に基づいて立体映像6の表示データを生成し、生成した映像データを表示装置2に出力する。
また、入力状態判定処理(ステップS7)の後、情報処理装置4は、ステップS8からS10までの処理と並行して、音声を出力するか否かの判定を行う(ステップS11)。ステップS11の判定は、例えば、制御部406が現在の入力状態に基づいて行う。音声を出力する場合(ステップS11;Yes)、制御部406は、音声生成部405に音声データを生成させ、音声出力装置5に音声を出力させる(ステップS12)。一方、音声を出力しない場合(ステップS12;No)、制御部406は、ステップS12の処理をスキップさせる。
ステップS8からS10までの処理と、ステップS11及びS12の処理とを終えると、情報処理装置4は、処理を終了するか否かを判定する(ステップS13)。処理を終了する場合(ステップS13;Yes)、情報処理装置4は、処理を終了する。
一方、処理を続ける場合(ステップS13;No)、情報処理装置4が行う処理はステップS2の処理に戻る。以降、情報処理装置4は、処理を終了するまでステップS2〜S12までの処理を繰り返す。
図13は、ボタンと指先との相対位置を算出する処理を説明するフローチャートである。
ボタンと指先との相対位置を算出するステップS6の処理において、手指検出部401は、図13に示すように、まず、距離センサ及び表示装置の位置角度情報を読み込み済みであるか否かをチェックする(ステップS601)。距離センサの位置角度情報は、世界座標系と、距離センサ内で指定される空間座標系との変換関係を示す情報である。表示装置の位置角度情報は、世界座標系と、表示装置内で指定される空間座標系との変換関係を示す情報である。
距離センサ及び表示装置の位置角度情報が読み込み済みではない場合(ステップS601;No)、手指検出部401は、記憶部407から距離センサ及び表示装置の位置角度情報を読み込む(ステップS602)。距離センサ及び表示装置の位置角度情報を読み込み済みの場合(ステップS601;Yes)、手指検出部401は、ステップS602をスキップする。
次に、手指検出部401は、距離センサの空間座標系における指先座標の情報を取得し(ステップS603)、取得した指先座標を距離センサの座標系から世界座標系に変換する(ステップS604)。以下、指先座標のことを指先空間座標ともいう。
また、手指検出部401は、ステップS603及びS604の処理と並行して、操作用表示映像の情報を取得し(ステップS605)、各ボタンの表示座標を表示装置の空間座標系から世界座標系に変換する(ステップS606)。以下、表示座標のことを指先座標ともいう。
その後、手指検出部401は、世界座標系における指先座標と各ボタンの表示座標とに基づいて、各ボタンの表示面の法線方向及び表示面内方向での指先からボタンまでの相対距離を算出する(ステップS607)。
図14は、入力装置における空間座標系の例を示す図である。図15Aは、表示装置の空間座標系における表示座標の例を示す図(その1)である。図15Bは、表示装置の空間座標系における表示座標の例を示す図(その2)である。図16は、入力装置における空間座標系の別の例を示す図である。
入力装置1には、図14に示すように、表示装置2における空間座標系(Xd,Yd,Zd)、距離センサ3における空間座標系(Xs,Ys,Zs)、及び世界座標系(x,y,z)の3種の空間座標系がある。表示装置2における空間座標系(Xd,Yd,Zd)は、例えば、表示装置2の表示面201の左下角部を原点とし、表示面201の法線方向をZd方向とする3次元直交座標系である。距離センサ3における空間座標系(Xs,Ys,Zs)は、例えば、距離センサ3のセンサ面の中心を原点とし、検出範囲の中心に向かう方向をZs方向とする3次元直交座標系である。世界座標系(x,y,z)は、実空間内の任意の位置を原点とし、鉛直上方を+y方向とする3次元直交座標系である。
図14に示した立体映像6の左上角部の座標は、世界座標系では(x1,y1,z1)である。ところが、表示装置2に立体映像6を表示させるための表示データでは、例えば、図15A及び図15Bに示すように、立体映像6の表示位置は表示装置2における空間座標系(Xd,Yd,Zd)における値で指定される。すなわち、立体映像6の左上角部の座標は、表示装置基準では(xd1,yd1,zd1)と表される。また、距離センサ3が出力するデータでは、世界座標系における点(x1,y1,z1)が更に別の空間座標系(Xs,Ys,Zs)における値で表される。そのため、情報処理装置4の手指検出部401は、表示装置2の空間座標系(Xd,Yd,Zd)における座標、及び距離センサ3の空間座標系(Xs,Ys,Zs)における座標を、世界座標系(x,y,z)における座標に変換する。これにより、立体映像6におけるボタンの表示位置と、距離センサ3で検出した指先の位置とを同一の空間座標系で表すことができ、ボタンと指先との相対位置を算出することが可能となる。
なお、世界座標系(x,y,z)の原点は、上記のように実空間内の任意の位置に設定することができる。そのため、表示装置2としてヘッドマウントディスプレイを用いた場合、世界座標系(x,y,z)は、図16に示すようにオペレータ7の視点702(例えば左右の目の中間等)を原点としてもよい。
次に、図12のステップS7(入力状態判定処理)について、図17Aから図17Cまでを参照して説明する。
図17Aは、第1の実施形態における入力状態判定処理を説明するフローチャート(その1)である。図17Bは、第1の実施形態における入力状態判定処理を説明するフローチャート(その2)である。図17Cは、第1の実施形態における入力状態判定処理を説明するフローチャート(その3)である。
ステップS7の入力状態判定処理は、入力状態判定部402が行う。入力状態判定部402は、図17Aに示すように、まず、1ループ前の入力状態(直前の入力状態)を判定する(ステップS701)。
ステップS701において直前の入力状態が非選択であったと判定した場合、入力状態判定部402は、次に、指先座標と相対位置が一致するボタンがあるか否かを判定する(ステップS702)。ステップS702の判定は、ステップS6で算出したボタンと指先との相対位置に基づいて行う。入力状態判定部402は、指先との相対位置(距離)が所定の閾値以下であるボタンがある場合、指先座標と相対位置が一致するボタンがあると判定する。指先座標と相対位置が一致するボタンがない場合(ステップS702;No)、入力状態判定部402は、現在の入力状態を非選択と判定する(ステップS703)。一方、指先座標と相対位置が一致するボタンがある場合(ステップS702;Yes)、入力状態判定部402は、現在の入力状態を仮選択と判定する(ステップS704)。
ステップS701において直前の入力状態が仮選択であったと判定した場合、入力状態判定部402は、ステップS701の後、図17Bに示すように、指先座標が押下方向に移動したか否かを判定する(ステップS705)。押下方向に移動していない場合(ステップS705;No)、入力状態判定部402は、次に、指先座標が押下方向とは反対の方向に移動したか否かを判定する(ステップS706)。指先座標が押下方向とは反対の方向に移動した場合、指先は奥行き方向手前側に移動しボタンから離れる。そのため、指先座標が押下方向とは反対の方向に移動した場合(ステップS706;Yes)、入力状態判定部402は、現在の入力状態を非選択と判定する(ステップS703)。また、指先座標が押下方向とは反対の方向にも移動していない場合(ステップS706;No)、入力状態判定部402は、次に、指先座標がボタン表示領域内であるか否かを判定する(ステップS707)。指先座標がボタン表示領域の外側にある場合、指先はボタンから離れている。そのため、指先座標がボタン表示領域内にない場合場合(ステップS706;No)、入力状態判定部402は、現在の入力状態を非選択と判定する(ステップS703)。一方、指先座標がボタン表示領域内にある場合、入力状態判定部402は、現在の入力状態を仮選択と判定する(ステップS704)。
また、直前の入力状態が仮選択であり、かつ指先座標が押下方向に移動した場合(ステップS705;Yes)、入力状態判定部402は、次に、指先座標が押下領域内であるか否かを判定する(ステップS708)。指先座標が押下領域内にある場合(ステップS708;Yes)、入力状態判定部402は、入力状態を押下中と判定する(ステップS709)。一方、指先座標が押下領域内にない場合(ステップS708;No)、入力状態判定部402は、現在の入力状態を非選択と判定する(ステップS703)。
ステップS701において直前の入力状態が押下中であったと判定した場合、入力状態判定部402は、ステップS701の後、図17Bに示すように、指先座標が押下領域内にあるか否かを判定する(ステップS710)。指先座標が押下領域内にない場合(ステップS710;No)、入力状態判定部402は、現在の入力状態を非選択と判定する(ステップS703)。また、指先座標が押下領域内にある場合(ステップS710;Yes)、入力状態判定部402は、次に、指先座標が入力確定領域内に移動したか否かを判定する(ステップS711)。指先座標が入力確定領域内に移動した場合(ステップS711;Yes)、入力状態判定部402は、現在の入力状態を入力確定と判定する(ステップS712)。一方、指先座標が入力確定領域内に移動した場合(ステップS711;No)、入力状態判定部402は、現在の入力状態を押下中と判定する(ステップS709)。
ステップS701において直前の入力状態が入力確定であったと判定した場合、入力状態判定部402は、ステップS701の後、図17Cに示すように、入力確定中移動の有無を判定する(ステップS713)。ステップS713において、入力状態判定部402は、立体映像6を3次元空間内で移動させる操作が行われているか否かを判定する。入力確定中移動がない場合(ステップS713;No)、入力状態判定部402は、次に、キーリピートの有無を判定する(ステップS714)。ステップS714において、入力状態判定部402は、入力状態の判定対象であるボタンがキーリピート可能なボタンであるか否かを判定する。キーリピート可能なボタンであるか否かは、図7に示したような操作用表示映像データを参照して判定する。キーリピート不可である場合(ステップS714;No)、入力状態判定部402は、現在の入力状態を非選択と判定する(ステップS703)。また、キーリピート可能である場合(ステップS714;Yes)、入力状態判定部402は、次に、指先座標が確定状態維持範囲内で維持されている否かを判定する(ステップS715)。指先座標が確定状態維持範囲内で維持されている場合(ステップS715;Yes)、入力状態判定部402は、現在の入力状態をキーリピートと判定する(ステップS716)。一方、指先座標が確定状態維持範囲の外部に移動した場合(ステップS715;No)、入力状態判定部402は、現在の入力状態を非選択と判定する(ステップS703)。
なお、直前の入力状態が入力確定であり、かつ入力確定中移動がある場合(ステップS713;Yes)、入力状態判定部402は、図17Cに示すように、直前の入力状態が入力確定中移動であった場合と同じ判定処理を行う。
ステップS701において直前の入力状態がキーリピートであったと判定した場合、入力状態判定部402は、ステップS701の後、図17Cに示すように、指先座標が確定状態維持範囲内で維持されている否かを判定する(ステップS715)。指先座標が確定状態維持範囲内で維持されている場合(ステップS715;Yes)、入力状態判定部402は、現在の入力状態をキーリピートと判定する(ステップS716)。一方、指先座標が確定状態維持範囲の外部に移動した場合(ステップS715;No)、入力状態判定部402は、現在の入力状態を非選択と判定する(ステップS703)。
ステップS701において直前の入力状態が入力確定中移動であったと判定した場合、入力状態判定部402は、ステップS701の後、図17Cに示すように、指先座標が奥行き方向に移動したか否かを判定する(ステップS717)。指先座標が奥行き方向に移動した場合(ステップS717;Yes)、入力状態判定部402は、指先座標の移動量を立体映像の移動量に設定する(ステップS718)。なお、ステップS718において入力状態判定部402が設定する移動量は、移動方向と移動距離とを含む。
また、指先座標が奥行き方向に移動していない場合(ステップS717;No)、入力状態判定部402は、次に、指先座標が入力確定範囲における押下方向領域内に維持されているか否かを判定する(ステップS719)。押下方向領域は、押下領域を入力確定範囲側に延長したときに入力確定範囲に含まれる空間領域である。指先座標が押下方向領域の外部に移動した場合(ステップS719;No)、入力状態判定部402は、現在の入力状態を非選択と判定する(ステップS703)。一方、指先座標が押下方向領域内で維持されている場合(ステップS719;Yes)、入力状態判定部402は、指先座標のボタン表示面方向の移動量を立体映像の移動量に設定する(ステップS720)。
ステップS718又はS720により立体映像の移動量を設定した後、入力状態判定部402は、現在の入力状態を入力確定中移動と判定する(ステップS721)。
次に、図12のステップS8(生成映像指定処理)について、図18Aから図18Cまでを参照して説明する。
図18Aは、第1の実施形態における生成映像指定処理を説明するフローチャート(その1)である。図18Bは、第1の実施形態における生成映像指定処理を説明するフローチャート(その2)である。図18Cは、第1の実施形態における生成映像指定処理を説明するフローチャート(その3)である。
ステップS8の生成映像指定処理は、生成映像指定部403が行う。生成映像指定部403は、図18Aに示すように、まず、現在の入力状態を判定する(ステップS801)。
ステップS801において現在の入力状態が非選択であると判定した場合、生成映像指定部403は、全ボタンを非選択のボタンの像に指定する(ステップS802)。ステップS802の指定は、初期映像指定部403aにより行う。
ステップS801において現在の入力状態が仮選択であると判定した場合、生成映像指定部403は、ステップS801の後、図18Bに示すように、仮選択されたボタンを仮選択のボタンの像に指定し、他のボタンは非選択のボタンの像に指定する(ステップS803)。ステップS803の指定は、初期映像指定部403a、確定枠指定部403b、及び枠内映像指定部403cにより行う。
また、ステップS801において現在の入力状態が押下中であると判定した場合、生成映像指定部403は、ステップS801の後、図18Bに示すように、入力確定点から指先座標までの距離を算出する(ステップS807)。続けて、生成映像指定部403は、押下中のボタンに対し算出した距離に応じた押下中のボタンの像を指定し、他のボタンは非選択のボタンの像に指定する(ステップS808)。ステップS808の指定は、初期映像指定部403a、確定枠指定部403b、及び枠内映像指定部403cにより行う。
更に、現在の入力状態が仮選択又は押下中である場合、生成映像指定部403は、ステップS803又はS808の後、隣接ボタンにおける仮選択又は押下中のボタンの像との重なり量を算出する(ステップS804)。ステップS804は、隣接ボタン表示指定部403dが行う。重なり量を算出すると、隣接ボタン表示指定部403dは、次に、重なり量が閾値以上のボタンがあるか否かを判定する(ステップS805)。重なり量が閾値以上のボタンがある場合(ステップS805;Yes)、隣接ボタン表示指定部403dは、該当するボタンを非表示に設定する(ステップS806)。一方、重なり量が閾値以上のボタンがない場合(ステップS805;No)、隣接ボタン表示指定部403dは、ステップS806の処理をスキップする。
ステップS801において現在の入力状態が入力確定であると判定した場合、生成映像指定部403は、ステップS801の後、図18Cに示すように、入力確定のボタンに対し入力確定のボタンの像623を指定し、他のボタンは非選択のボタンの像を指定する(ステップS809)。ステップS809は,入力確定映像指定部403eが行う。
ステップS801において現在の入力状態がキーリピートである判定した場合、生成映像指定部403は、ステップS801の後、図18Cに示すように、キーリピート中のボタンに対しキーリピートのボタンの像624を指定し、他のボタンには非選択のボタンの像620を指定する(ステップS810)。ステップS810は、例えば、入力確定映像指定部403eが行う。
ステップS801において現在の入力状態が入力確定中移動であると判定した場合、生成映像指定部403は、ステップS801の後、図17Cに示すように、指先座標の移動量に基づいて、立体映像内のボタンの表示座標を修正する(ステップS811)。その後、生成映像指定部403は、表示位置を移動させるボタンに対し入力確定のボタンの像623を指定し、他のボタンには非選択のボタン620の像を指定する(ステップS812)。ステップS811及びS812は、入力確定映像指定部403eと、表示位置指定部403fとが行う。
図19は、隣接ボタンを非表示にする処理を説明する図である。図20は、隣接ボタンを非表示にするか否かの判定方法の例を説明する図である。
本実施形態に係る生成映像指定処理では、上記のように、現在の入力状態が仮選択又は押下中である場合、仮選択のボタンの像621又は押下中のボタンの像622を指定する。仮選択のボタンの像621及び押下中のボタンの像622は、図6等に示したように、入力確定枠を含む像であり、非選択のボタンの像620に比べてサイズが大きい。そのため、図19の(a)に示すように、立体映像6内のボタンの配置間隔が狭い場合、仮選択のボタンの像621の外周部が隣接するボタン(非選択のボタンの像620)と重なることがある。このように仮選択のボタンの像621や押下中のボタンの像622の外周部が隣接するボタンと重なる場合、重なり量が多いと、ボタンの像621,622の外周が見づらくなり、入力確定枠の位置を把握しづらくなる可能性がある。そこで、本実施形態に係る生成映像指定処理では、上記のように、仮選択のボタンの像621又は押下中のボタンの像622と隣接ボタンとの重なり量が閾値以上である場合、図19の(b)に示したように、隣接ボタンを非表示にする。これにより、仮選択のボタンの像621又は押下中のボタンの像622の外周がよりわかりやすくなり、入力確定までの押下量を把握しやすくなる。
隣接ボタンを非表示にするか否かの判定に用いる重なり量の閾値は、例えば、隣接方向における隣接ボタン(非選択のボタンの像620)の寸法の1/2とする。図20に示したように、立体映像6に3×3個の合計9個のボタンが表示されており、9個のボタンのうち右下角部のボタン641が仮選択のボタンの像621に指定された場合を考える。この場合、ボタン641として表示するボタンの像621におけるボタン本体を現す領域621aを他のボタンと同一サイズで表示すると、ボタンの像621の外周部が隣接ボタン642,643,644と重なることがある。
ここで、ボタン641の左隣にあるボタン642の隣接方向の寸法をWとし、隣接方向におけるボタン641とボタン642との重なり量をΔWとすると、ステップS805では、例えば、ΔW≧W/2であるか否かを判定する。そして、図20に示したように、ΔW<W/2である場合、生成映像指定部403の隣接ボタン表示指定部403dは、ボタン641の左隣にあるボタン642を表示すると判定する。同様に、ボタン641の上隣にあるボタン643の隣接方向の寸法をHとし、隣接方向におけるボタン641とボタン642との重なり量をΔWとすると、ステップS805では、例えば、ΔH≧H/2であるか否かを判定する。そして、図20に示したように、ΔW<W/2である場合、生成映像指定部403の隣接ボタン表示指定部403dは、ボタン641の上隣にあるボタン643を表示すると判定する。また、ボタン641の左上方にある隣接ボタン644については、例えば、隣接方向を左右方向と上下方向とに分け、左右方向における重なり量ΔW及び上下方向における重なり量ΔHについて、ΔW≧W/2かつΔH≧H/2であるか否かを判定する。そして、例えば、ΔW≧W/2かつΔH≧H/2の場合にのみボタン644を非表示にすると判定する。
なお、隣接ボタンを非表示にするか否かの判定に用いる重なり量の閾値は任意であり、非選択状態のボタンの像620の寸法やボタンの配置間隔等に基づいて設定すればよい。
また、上記の例では隣接ボタンを非表示にしているが、これに限らず、例えば、透明度を高くする、或いは色を薄くする等の方法により隣接ボタンが目立たなくなるよう表示を変更してもよい。
以上のように、第1の実施形態に係る入力装置1では、立体映像6に表示されているボタンのうちオペレータ7の指先701が触れて仮選択の状態(操作対象に選定された状態)となったボタンに対し、当該ボタンを囲む入力確定枠が表示される。また、オペレータ7が押下する動作を行っている入力状態が押下中のボタンに対しては、押下量に応じて入力確定枠内のボタン本体を示す領域のサイズを変化させる。加えて、入力状態が押下中のボタンにおいては、押下量と比例し、かつ押下する指先が入力確定点P2に到達する直前でボタン本体を示す領域の外周が入力確定枠と略一致する態様でボタン本体を示す領域のサイズを変化させる。そのため、オペレータ7が立体映像6に表示されているボタンを押下する際に、ボタンが操作対象に選定されたことや、指先701を奥行き方向遠方側にどれだけ移動させれば入力が確定するかを直感的に把握することが可能になる。
更に、第1の実施形態に係る入力装置1では、入力確定枠を含む仮選択のボタンの像621及び押下中のボタンの像622を表示する際に、隣接する非選択のボタンを非表示にすることができる。そのため、仮選択のボタンの像621及び押下中のボタンの像622を視認しやすくなる。特に、押下中のボタンの像622については、入力を確定させるためにどこまで指先を移動させればよいかを把握しやすくなる。そのため、例えば、指先の移動量が大きくなりすぎて入力の確定に失敗することや、奥行き方向遠方側にある他の立体映像のボタンを誤って押下してしまうことによる入力エラーを低減することが可能となる。
なお、本実施形態では、入力状態が仮選択及び押下中である場合に入力確定枠を表示しているが、これに限らず、例えば、仮選択の状態を押下量が0である押下中の状態とし、入力状態が押下中である場合にのみ入力確定枠を表示してもよい。
また、図17A、図17B、及び図17Cに示した入力状態判定処理は一例に過ぎず、必要に応じて一部の処理を変更してもよい。例えば、ステップS708及びS710の判定は、押下中に生じる指先座標のずれを考慮して行ってもよい。
図21は、押下中の指先座標のずれに対する許容範囲を示す図である。
オペレータが立体映像6に表示されたボタンを押下する動作を行うと、図21に示したように、立体映像6には押下中のボタンの像622が表示される。この際、オペレータ7の視線は、表示面P1の法線方向と平行ではない場合が多い。また、オペレータ7は、実物体のない3次元空間内で指先701を奥行き方向に移動させる。そのため、指先701を奥行き方向に移動させる際に、指先701が押下領域の外側に出てしまう可能性がある。ここで、押下領域A3は、入力状態が非選択である場合に表示されるボタンの像620を奥行き方向に移動させたときのボタンの像620の外周の軌跡で囲まれる筒状の領域である。
図17A及び図17Bに示した処理では、ボタンを押下する指先701が入力確定点P2に到達する前に指先701が押下領域A3の外側に出てしまうと、入力状態が非選択になってしまう。そのため、オペレータ7は、再度ボタンを押下する動作を行うこととなる。このような事態を低減するため、図21に示したように、押下領域A3の周囲に許容範囲を設けた押下判定領域A4を設定してもよい。許容範囲の大きさは任意であり、例えば、入力確定枠の大きさや押下中のボタンの像622におけるボタン本体を示す領域622bにする。また、許容範囲は、例えば、図21に示したように、入力確定枠622bより大きい値にしてもよい。許容範囲を入力確定枠622bよりも大きくする場合、例えば、ボタンの外周から標準的な指の太さ分の範囲、隣接するボタンの外周まで、或いは隣接するボタンと所定の重なり量で重なる範囲等にすることができる。
また、図6に示した仮選択のボタンの像621及び押下中のボタンの像622は一例に過ぎず、立体映像6であることを利用し立体的な変化を組み合わせた像にすることも可能である。
図22は、仮選択及び押下中のボタンの像の別の例を示す図である。図22には、押下中のボタンの像の別の例として、略直方体のボタン状に成形したゴム部材11を指で押したときの形状変化を組み合わせた像を示している。ボタン状に成形したゴム部材11は、図22の(a)に示すように、指先が軽く触れた状態(言い換えると押圧荷重が0又は非常に小さい状態)では厚さが均一である。そのため、仮選択のボタンの像621では、ボタン本体を示す領域全体を同じ色で表現する。
そして、ボタン状に成形したゴム部材11を指先で押すと、ゴム部材11は、図22の(b)及び(c)に示すように、指先701から押圧荷重が印加されている中央部分の厚さが外周部分の厚さよりも薄くなる。また、指先701から押圧荷重を受けることにより、ゴム部材11は平面内で広がるため、平面で見たゴム部材11のサイズは、指で押す前のサイズよりも大きくなる。押下中のボタンの像622は、このゴム部材11の厚さ及び平面サイズの段階的な変化を反映させるようにボタン本体を示す領域622a内の色及びサイズを段階的に変化させた複数通りの像としてもよい。このような押下中のボタンの像622を用いた場合、オペレータ7のボタンを押下する動作と連動してボタン本体を示す領域622aの像が立体的に変化する。そのため、オペレータ7がボタンを押下する動作を行う際の感覚(視覚)を、実物体のボタンを押下しているときの感覚に近づけることができる。
更に、入力確定枠を表示する際には、図6に示した非選択のボタンの像620から仮選択のボタンの像621に切り替える代わりに、例えば、図23に示すように、ボタンの外周から入力確定枠が広がり出るような表示方法にすることもできる。
図23は、入力確定枠の表示方法の別の例を示す図である。図23の(a)は、非選択のボタンの像620である。オペレータ7の指先701がボタンの像620に触れて入力状態が仮選択に切り替わると、まず、図23の(b)から(f)に示すように、仮選択のボタンの像621におけるボタン本体を示す領域621aの外方に領域621aを囲む帯状領域が段階的に広がり出る。そして、広がり出た帯状領域の外形寸法が操作用表示映像データで指定された入力確定枠のサイズになると、帯状領域の広がりが止まる。また、図23の(b)から(f)までの帯状領域の幅の変化はボタンを示す領域621aの中心から広がる波紋を模した色で表現し、更に図23の(g)から(j)に示すように、帯状領域の広がりが止まった後も、一定期間、波紋を模した色で表現する。このように、波紋を模した段階的な変化により入力確定枠を表示することにより、ボタンの像を立体的に変化させることができ、視覚効果の高い立体映像6の表示が可能となる。
また、仮選択のボタンの像621や押下中のボタンの像622は、図7A等に示した平板状の像に限らず、ボタンの形状を模した立体像であってもよい。
図24Aは、ボタンの立体表示の例を示す図(その1)である。図24Bは、ボタンの立体表示の例を示す図(その2)である。図25は、ボタンの立体表示の別の例を示す図である。
上述の操作用表示映像データ(図8を参照)に基づいて表示される立体映像6は、例えば、図24Aの(a)に示すように、各ボタン、及び背景が平板状の像になる。すなわち、各ボタンの表示位置を背景の表示位置よりもオペレータ側(奥行き方向手前側)にすることで、立体的な像を表現している。このような立体映像6に表示されたボタンにオペレータの指先が触れた場合、図7Aに示した例では、平板状の非選択のボタンの像620から平板状の仮選択のボタンの像621に変更される。しかしながら、仮選択のボタンの像621は、平板状のボタンの像に限らず、図24Aに示すように、四角錐台状の像にしてもよい。このように、四角錐台状のボタンの像621を表示する場合、例えば、上底面(オペレータ側の底面)を非選択のボタンと同じサイズとし、下底面を入力確定枠のサイズとする。更に、四角錘台状のボタンを押下する動作が行われた場合、図24Bの(c)に示すように、押下量に応じてボタン本体を示す領域622aの形状が変換する押下中のボタンの像622が表示される。この際、ボタン本体を示す領域622aは、押下量に正の比例定数で比例する態様で上底面のサイズを変化させるとともに、押下量に負の比例定数で比例する態様で上底面から入力確定点P2までの距離が変化させる。このように入力状態が仮選択及び押下中であるときのボタンの像621,622を立体像にすることで、オペレータ7がボタンを押下する動作を行う際の感覚(視覚)を、実物体のボタンを押下しているときの感覚により近づけることができる。
なお、仮選択及び押下中であるときのボタンの像621,622の立体形状は、四角錘台状に限らず、他の立体形状、例えば、図25に示したよう直方体状であってもよい。
図25の(b’)には、仮選択のボタンの像621の立体形状の別の例を示している。この別の例においては、入力確定点P2に表示される背景630内に入力確定枠621aを提示する領域が表示され、その領域からオペレータ側に立設する態様でボタン本体を示す領域621aが立体表示されている。オペレータ7がこの仮選択のボタンの像621におけるボタン本体を示す領域621aを指先701で押下する動作を行うと、図25の(c’)に示すように、押下量に応じてボタン本体を示す領域622aの形状が変換する押下中のボタンの像622が表示される。この際、ボタン本体を示す領域622aは、押下量に正の比例定数で比例する態様で底面のサイズ(xy面内でのサイズ)を変化させるとともに、押下量に負の比例定数で比例する態様で高さ(z方向のサイズ)を変化させる。
次に、本実施形態の入力装置1における入力確定中移動の例について説明する。
図26は、入力確定中移動の例を示す図である。図26の(a)から(c)には、3枚の操作画面601,602,603が立体的に配置された立体映像6を示している。また、各操作画面601,602,603には、それぞれ、画面を3次元空間内で移動させる処理を行うための移動用ボタン651,652,653が表示されている。
図26の(a)に示すように、オペレータ7が奥行き方向で最も手前(オペレータ側)に表示されている操作画面601の移動用ボタン651を押下する動作を行い、入力状態が入力確定になると、移動用ボタン651は入力確定のボタンの像になる。その後、オペレータ7の指先座標が確定維持範囲内で維持されると、情報処理装置4は、操作画面601の移動用ボタン651に対する入力状態を入力確定中移動と判定する。これにより、操作画面601は、3次元空間内で移動可能な状態になる。操作画面601が移動可能な状態になった後、図26の(b)に示すように、オペレータ7が操作画面601を表示面内で平行移動させる動作を行うと、入力状態が入力確定中移動である移動用ボタン651を含む操作画面601のみが平行移動する。操作画面601を移動させた後、例えば、オペレータ7が指先701を移動用ボタン651から離す動作を行うと、移動用ボタン651に対する入力状態は非選択常態となり、移動用ボタン651は非選択のボタンの像に変更される。このように、複数の奥行き方向に重なった複数の操作画面のいずれかを独立して移動させることにより、移動させた操作画面の奥行き方向遠方側に表示された別の表示画面を見やすくすることができる。
なお、図17Cに示したように入力状態が入力確定中移動であるときに立体映像6(操作画面651)を奥行き方向にも移動可能である場合、指先701を移動用ボタン651から離す動作をすると操作画面651が指先701とともに移動する。そのため、立体映像6を奥行き方向に移動可能である場合、例えば、図26の(c)に示すように、オペレータの手指を、立体映像6(操作画面651)を移動させるときとは異なる形にすることで、入力状態が入力確定中移動から非選択に変更されるようにする。
図27は、入力確定中移動の別の例を示す図である。図27の(a)から(c)には、3枚の操作画面601,602,603が立体的に配置された立体映像6を示している。また、各操作画面601,602,603には、それぞれ、画面を3次元空間内で移動させる処理を行うための移動用ボタン651,652,653が表示されている。
図27の(a)に示すように、オペレータ7が奥行き方向で最も手前(オペレータ側)に表示されている操作画面601の移動用ボタン651を押下する動作を行い、入力状態が入力確定になると、移動用ボタン651は入力確定のボタンの像になる。その後、オペレータ7の指先座標が確定維持範囲内で維持されると、情報処理装置4は、操作画面601の移動用ボタン651に対する入力状態を入力確定中移動と判定する。これにより、操作画面601は、3次元空間内で移動可能な状態になる。操作画面601が移動可能な状態になった後、図27の(b)に示すように、オペレータ7が操作画面601を奥行き方向させる動作を行うと、入力状態が入力確定中移動である移動用ボタン651を含む操作画面601のみが奥行き方向に移動する。このとき、図27の(b)に示したように、操作画面601が他の操作画面603の近傍に移動させると、2枚の操作画面601,603におけるボタンの表示面P1及び入力確定点P2が近接した状態となる。そのため、情報処理装置4の手指検出部401においてオペレータ7の指先701を検出した場合に、操作画面601のボタン及び操作画面603のボタンのいずれのボタンに対する操作(動作)を行っているのかを判別することが困難となる。よって、移動中の操作画面601が他の操作画面603に接近した場合、情報処理装置4は、例えば、図27の(c)に示したように、他の操作画面603の表示位置を移動中の操作画面601から離れた位置に移動させる。なお、図27の(c)に示した例では、操作画面603の表示位置を移動前の操作画面601の表示位置に移動させているが、これに限らず、奥行き方向遠方側に表示位置を移動させてもよい。また、図27に示した操作画面601,603の表示位置の入れ替えは、例えば、奥行き方向遠方に表示されている操作画面603を奥行き方向手前に表示させるための操作として行ってもよい。これにより、例えば、操作画面603の移動用ボタン653が手前にある他の操作画面601,602に隠れて見えない場合でも、オペレータ7は、容易に操作画面603を見やすい位置に移動させることが可能となる。
図28は、入力確定中移動の更に別の例を示す図である。
図26及び図27に示した立体映像6では、各操作画面601,602,603のそれぞれに画面を移動させるための移動用ボタン651,652,653が表示されている。しかしながら、立体映像6の移動は、移動用ボタンに限らず、例えば、立体映像6における背景等のボタンとは別の領域を押下する操作と対応付けてもよい。この例において、情報処理装置4の入力状態判定部402は、立体映像6における背景630に対してもボタンと同様の入力状態の判定を行う。このとき、図28の(a)に示すように、オペレータ7の指先701が立体映像6(操作画面)における背景630に触れた場合に背景630に対する入力状態が非選択から仮選択に変更する。その後、例えば、背景630に対する入力状態が仮選択である状態が所定期間継続すると、入力状態判定部402は、背景630に対する入力状態を入力確定中移動に変更する。この入力状態の変更を受け、生成映像指定部403及び映像生成部404は、例えば、図28の(b)に示すように、背景630の表示を入力確定中移動であることを示す表示に変更した立体映像6を生成し、表示装置2に表示させる。これにより、オペレータ7は、立体映像6が3次元空間内で移動可能な状態であることを認識することが可能になる。そして、オペレータ7が指先701を移動させる動作を行うと、指先701の移動量に応じて立体映像6が移動する。また、オペレータ7が指先701を立体映像6(背景630)から離す動作、又は手指の形を変える動作を行うと、情報処理装置4は、背景630に対する入力状態を入力確定中移動から非選択に変更し、立体映像6の表示位置が固定される。
なお、図26から図28までに示した立体画像6の移動は、表示面と平行な面内或いは奥行き方向(表示面の法線方向)への移動であるが、これに限らず、立体映像6は、オペレータ7の視点等の特定の点を基準として移動させてもよい。
図29は、立体映像の移動方向の変形例を示す図である。
立体映像6を移動させる場合、例えば、図29の(a)に示すように、円柱状の空間領域における周面に沿って移動させてもよい。この場合、例えば、軸心方向を鉛直方向と一致させ、かつ軸心がオペレータ7の視点702を通る半径Rの円柱状の空間領域A5を設定し、立体映像の表示位置を指定する座標(x1,y1,z1)が円柱状の空間領域A5における周面上になるよう表示位置及び移動量を設定する。円柱状の空間領域における周面に沿って立体映像6を移動させる場合、例えば、世界座標系はオペレータ7の視点702を原点とする円柱座標系(r,θ,z)とし、表示装置基準及び距離センサ基準の空間座標を円柱座標変換して表示位置を指定する。
また、立体映像6を移動させる場合、例えば、図29の(b)に示すように、球状の空間領域における空間表面に沿って移動させてもよい。この場合、例えば、オペレータ7の視点702を中心とする半径Rの球状の空間領域A6を設定し、立体映像の表示位置を指定する座標(x1,y1,z1)が球状の空間領域における空間表面上になるよう表示位置及び移動量を設定する。球状の空間領域A6における空間表面に沿って立体映像6を移動させる場合、例えば、世界座標系はオペレータ7の視点702を原点とする極座標系(r,θ,φ)とし、表示装置基準及び距離センサ基準の空間座標を極座標変換して表示位置を指定する。
このように、立体映像6を円柱状の空間領域の周面又は空状の空間領域の空間表面に沿って移動させることで、オペレータ7が所定の位置にいる状態における立体映像6の移動範囲を広くすることができる。また、立体映像6を移動させたときの移動前後における立体映像6を見る角度の差を小さくすることができ、立体映像6の表示内容が見づらくなることを抑制することができる。
図30は、立体映像の表示形状の変形例を示す図である。
ここまでの説明で参照した図に示した立体映像6(操作画面)は平面状(平板状)であるが、立体映像6は、これに限らず、例えば、図30に示すような曲面状であってもよい。立体映像6(操作画面)を曲面状にすることにより、例えば、オペレータ7の視点から操作画面における各点間での距離を略一定にすることができる。そのため、オペレータ7の視点からの距離の違いにより操作画面内の一部の領域の像がぼやける等の表示品質の劣化を抑制することができる。また、図29に示したように立体映像6を円柱状の空間領域の周面や球状の空間領域の空間表面に沿って移動させる場合、操作画面のような立体映像6を曲面状にすることで、立体映像6の移動方向を視覚的に把握することができ、移動時の違和感が軽減される。
図31は、複数の操作画面を含む立体映像を用いた入力操作の例を説明する図である。
本実施形態の入力装置1において複数の操作画面を含む立体映像を表示させて入力操作を行う場合、個々の操作画面に独立した別個の入力操作を割り当てることはもちろん、複数の操作画面に階層的な入力操作を割り当てることも可能である。例えば、図31の(a)に示すように、3枚の操作画面601,602,603を含む立体映像6が表示された状態でオペレータ7が最前面に表示されている操作画面601のボタンを押下する操作を行ったとする。すると、図31の(b)に示すように、操作画面601が非表示となる。この状態で、オペレータ7が続けて、2枚目の操作画面602のボタンを押下する操作を行うと、図31の(c)に示すように、操作画面602も非表示となる。この状態から更に、オペレータ7が3枚目の操作画面603のボタンを押下する操作を行うと、例えば、図31の(d)に示すように、操作画面603も非表示となり、操作画面601,602,603とは別の第4の操作画面604が表示される。第4の操作画面604には、例えば、操作用のボタン(661,662,663,664,665)と、入力情報を表示する表示部670とが表示される。表示部670には、各操作画面601,602,603で押下したボタンと対応する入力情報が表示される。また、操作用のボタン(661,662,663,664,665)は、例えば、入力情報を確定するボタン、入力をやり直すボタン等である。オペレータ7は、表示部670に表示された入力情報を確認した後、操作用のボタン(661,662,663,664,665)のいずれかを押下する。例えば、入力情報に誤りがない場合、オペレータ7は、入力情報を確定するボタンを押下する。これにより、情報処理装置4は、オペレータ7が各操作画面601,602,603から押下したボタンと対応する入力情報に応じた処理を実行する。また、入力情報に誤りがない場合、オペレータ7は、入力やり直すボタンを押下する。これにより、情報処理装置4は、第4の操作画面604を非表示とし、図31の(a)から(c)までのいずれかの表示状態に戻る。
このような複数の操作画面による階層的な入力操作は、例えば、飲食店等における食事メニューの選択操作等に適用することが可能である。
図32は、食事メニューの選択操作における階層構造の例を示す図である。図33は、第1階層の操作画面に表示されるボタンを押下したときの第2階層及び第3階層の操作画面の表示例を説明する図である。図34は、食事メニューの選択操作を行う際の画面遷移の例を示す図である。
3枚の操作画面を用いて階層的な食事メニューの選択操作を行う場合、例えば、図32に示すように、第1階層(1枚目の操作画面601)は料理ジャンルを選択する操作画面とする。また、第2階層(2枚目の操作画面602)は使用する食材を選択する操作画面とし、第3階層(3枚目の操作画面603)は具体的な料理名を選択する操作画面とする。また、この食事メニューの選択操作においては、例えば、図33に示すように、第1階層において料理ジャンルを指定した場合、選択した料理ジャンルに応じて第2階層において選択可能な食材及び第3階層において選択可能な料理名が絞り込まれる。なお、図32及び図33における洋食A、洋食B、和食A、中華A、エスニックA等は実際には具体的な料理名(例えば、洋食Aはハンバーグ、洋食Bはシチュー、和食Aは寿司等)である。
図32及び図33に示した階層構造に基づいて食事メニューの選択操作を行う場合、各操作画面601,602,603には、まず、全ての項目のボタンが表示される。すなわち1枚目の操作画面601には、選択可能な料理ジャンルの総数と同数の4個のボタンが表示される。また、2枚目の操作画面602には選択可能な食材の総数と同数の10個のボタンが表示され、3枚目の操作画面603には選択可能な料理名の総数と同数の複数個のボタンが表示される。
この状態で、オペレータ7が1枚目の操作画面601に表示された洋食のボタンを押下する操作を行うと、操作画面601は非表示となり、2枚目の操作画面602が最前面の表示となる。このとき、操作画面602には、図34の(a)に示すように、10個の食材のうち洋食を指定した場合に選択可能な7種の食材と対応したボタンのみが表示される。ここでオペレータ7が、操作画面602に表示された7個のボタンのいずれかを押下する操作を行うと、操作画面602は非表示となり、3枚目の操作画面603のみが表示された状態となる。このとき、操作画面603には、図34の(b)に示すように、第3階層に登録された全ての料理名のうち洋食でありかつ第2階層で指定した食材を用いた料理名と対応したボタンのみが表示される。ここでオペレータ7が、操作画面603に表示された13個のボタンのいずれかを押下する操作を行うと、操作画面603は非表示となり、図31の(d)に示した第4の操作画面604が表示される。このとき、第4の操作画面604には、例えば、第1階層で指定した料理ジャンル、第2階層で指定した食材、及び第3階層で指定した料理名が表示される。そして、オペレータ7が第4の操作画面604に表示された入力情報を確定するボタンを押下する動作を行うと、例えば、第3階層で指定した料理名の料理の注文が確定する。
また、上記の階層的な食事メニューの選択操作では、例えば、第1階層(1枚目の操作画面601)における料理ジャンルの指定(選択)、及び第2階層(2枚目の操作画面602)における料理ジャンルの指定(選択)を省略することもできる。
例えば、オペレータ7は、3枚の操作画面601,602,603が表示された状態のときに、2枚目の操作画面602に表示された全ての食材のボタンのいずれかを押下することもできる。この場合、2枚目の操作画面602に表示された全ての食材のボタンのいずれかを押下すると、1枚目の操作画面601及び2枚目の操作画面602が非表示となる。そして、3枚目の操作画面には、2枚目の操作画面602で押下したボタンと対応した食材を用いた料理名と対応したボタンのみが表示される。また、オペレータ7は、オペレータ7は、3枚の操作画面601,602,603が表示された状態のときに、3枚目の操作画面603に表示された全ての料理名のボタンのいずれかを押下することもできる。
更に、階層的な入力操作においては、1枚の操作画面に表示された複数のボタンを押下することも可能である。例えば、一方、1枚目の操作画面601でボタンを押下して入力を確定した後、オペレータ7の指先が奥行き方向手前側(2枚目の操作画面602とは反対側)に移動した場合には、料理ジャンルの指定が継続されるようにする。そして、1枚目の操作画面601でボタンを押下して入力を確定した後、オペレータ7の指先がそのまま奥行き方向遠方側(2枚目の操作画面602側)に移動した場合には、料理ジャンルの指定を完了して操作画面601を非表示にする。これにより、第1階層(1枚目の操作画面601)から2種類以上の料理ジャンルを選択することが可能となる。
なお、上記の階層的な食事メニューの選択操作は複数の操作画面を用いた階層的な入力操作の一例に過ぎず、他の選択操作等にも上記と同様の階層的な入力操作を適用することができる。
図35は、第1の実施形態に係る入力装置の適用例を示す図である。
本実施形態に係る入力装置1は、例えば、デジタルサイネージと呼ばれる情報発信システムに適用することが可能である。デジタルサイネージでは、例えば、図35の(a)に示すように、距離センサ3、情報処理装置4、音声出力装置(スピーカ)5等を内蔵した表示装置2を街頭や公共施設等に設置し、近隣の地図、商店、施設等に関する情報を提供する。デジタルサイネージにおいては、表示装置2として、例えば、裸眼立体視が可能な立体映像表示装置を用いる。利用者(オペレータ7)が表示装置2の近傍で一定時間立ち止まると、情報処理装置4は、情報検索に用いる操作画面601,602,603を含む立体映像6を生成して表示装置2に表示させる。オペレータ7は、表示された立体映像6内のボタンを押下して入力を確定する動作を繰り返し、所望の情報を取得する。
デジタルサイネージの利用者の中には、立体映像6内のボタンを押下する動作に不慣れな利用者も多く、入力ミスにより所望の情報をスムーズに取得することができない可能性がある。これに対し、本実施形態に係る入力装置1では、上述のように仮選択のボタンの像及び押下中のボタンの像に入力確定枠が含まれるため、不慣れな利用者でも入力を確定するための適切な押下量を直感的に把握することができる。よって、本実施形態に係る入力装置1をデジタルサイネージに適用することで、利用者の入力ミスを低減させ、利用者が望む情報をスムーズに提供することが可能となる。
また、本実施形態に係る入力装置1は、例えば、自動取引機(例えば現金自動預払機(ATM))や自動発券機等に適用することも可能である。自動取引機に適用する場合、例えば、図35の(b)に示すように、取引機本体12に入力装置1を内蔵させる。自動取引機においては、表示装置2として、例えば、裸眼立体視が可能な立体映像表示装置を用いる。利用者(オペレータ7)は、自動取引機の表示装置2の上方に表示された立体映像6内のボタンを押下して入力を確定する動作を繰り返し、所望の取引を実行する。
自動取引機の利用者の中には、取引を行う際の操作手順については慣れていても、立体映像6内のボタンを押下する動作に不慣れな利用者も多く、入力ミスによりスムーズに取引を実行することができない可能性がある。これに対し、本実施形態に係る入力装置1では、上述のように仮選択のボタンの像及び押下中のボタンの像に入力確定枠が含まれるため、不慣れな利用者でも入力を確定するための適切な押下量を直感的に把握することができる。よって、本実施形態に係る入力装置1を自動取引機に適用することで、利用者の入力ミスを低減させ、利用者が望む取引をスムーズに実行するが可能となる。
また、本実施形態に係る入力装置1は、例えば、金融機関や行政機関等の窓口で行う顧客対応業務に適用することも可能である。顧客対応業務に適用する場合、例えば、図35の(c)に示すように、窓口に設置されたテーブル13に入力装置1を内蔵させる。ATMにおいては、表示装置2として、例えば、裸眼立体視が可能な立体映像表示装置を用いる。また、表示装置2は、テーブル13の天板に表示面を情報に向けて設置する。利用者(オペレータ7)は、表示装置2の上方に表示された立体映像6内のボタンを押下して入力を確定する動作を繰り返し、所望の情報を表示させる。
窓口での顧客対応においては、対応する側の利用者が立体映像6内のボタンを押下する動作に慣れていても、他方の窓口を訪れた利用者は動作に不慣れな場合が多い。そのため、動作(操作)に不慣れな利用者が入力操作を行う際に入力ミスが発生し、所望の情報をスムーズに表示させることができない可能性がある。これに対し、本実施形態に係る入力装置1では、上述のように仮選択のボタンの像及び押下中のボタンの像に入力確定枠が含まれるため、不慣れな利用者でも入力を確定するための適切な押下量を直感的に把握することができる。よって、本実施形態に係る入力装置1を顧客対応業務に適用することで、入力ミスを防ぎ、所望の情報をスムーズに表示させることが可能となる。
更に、本実施形態に係る入力装置1は、例えば、工場等における設備の保守点検業務に適用することも可能である。保守点検業務に適用する場合、例えば、図35の(d)に示すように、表示装置2としてヘッドマウントディスプレイを用い、情報処理装置4としてスマートフォンや無線通信が可能なタブレット型端末を用いる。
設備14の保守点検業務においては、例えば、メータ1401の数値を記録する作業を行う場合がある。そのため、保守点検業務に入力装置1を適用する場合、情報処理装置4は、例えば、設備14における現在の稼働状況等を入力する画面を含む立体映像6を生成して表示させる。このような保守点検業務においても、本実施形態に係る入力装置1を適用することにより、入力ミスを低減でき、点検業務をスムーズに行うことが可能となる。
更に、保守点検業務に適用する入力装置1においては、例えば、表示装置2に図示しない小型のカメラを装着しておき、設備14に設けたARマーカ1402が持つ情報を立体映像6として表示させることも可能である。この際、ARマーカ1402には、例えば、設備14の操作マニュアル等の情報を持たせることができる。
なお、本実施形態に係る入力装置1は、図35の(a)から(d)に示した適用例に限らず、種々の入力装置や業務に適用可能である。
[第2の実施形態]
図36は、第2の実施形態に係る入力装置における情報処理装置の機能的構成を示す図である。
本実施形態に係る入力装置1は、第1の実施形態で例示した入力装置1と同様、表示装置2と、距離センサ3と、情報処理装置4と、音声出力装置(スピーカ)5とを備える。また、図36に示すように、本実施形態に係る入力装置1における情報処理装置4は、手指検出部401と、入力状態判定部402と、生成映像指定部403と、映像生成部404と、音声生成部405と、制御部406と、記憶部407と、を備える。なお、本実施形態に係る入力装置1における情報処理装置4は、上記の各部に加え、指先サイズ算出部408を備える。
手指検出部401は、距離センサ3から取得した情報に基づいてオペレータの手指の有無の判定や、手指がある場合の立体映像6から指先までの距離の算出等を行う。また、本実施形態に係る情報処理装置4における手指検出部401は、上記の処理に加え、距離センサ3から取得した情報に基づいて指先のサイズの測定を行う。
指先サイズ算出部408は、手指検出部401で検出した指先のサイズと、記憶部407に記憶させた標準指先サイズとに基づいて、表示位置における相対的な指先サイズを算出する。
入力状態判定部402は、手指検出部401の検出結果と、直前の入力状態とに基づいて、現在の入力状態を判定する。入力状態は、上記の非選択と、仮選択と、押下中と、入力確定と、キーリピートと、を含む。また、入力状態は、入力確定中移動、を更に含む。入力確定中移動は、入力確定の状態が継続しているボタン等を含む立体映像6を3次元空間内で移動させている状態である。
生成映像指定部403は、直前の入力状態と、現在の入力状態と、指先サイズ算出部408で算出した指先サイズとに基づいて生成する映像、すなわち表示する立体映像6の生成に必要な情報を指定する。
映像生成部404は、生成映像指定部403からの指定情報に従って立体映像6の表示データを生成し、表示装置2に出力する。
音声生成部405は、入力状態が所定の状態であるときに出力する音声信号を生成する。音声生成部405は、例えば、入力状態が押下中から入力確定に変化したときや、入力確定状態が所定期間続いたとき等に音声信号を生成する。
制御部406は、直前の入力状態と、入力状態判定部402の判定結果とに基づいて、生成映像指定部403、音声生成部405、及び指先サイズ算出部408の動作を制御する。直前の入力状態は、制御部406内に設けたバッファ、或いは記憶部407に記憶させておく。また、制御部406は、表示させた立体映像6におけるボタンのサイズ等の情報に基づいて、入力状態判定部402における指先座標のずれの許容範囲等の制御を行う。
記憶部407は、操作用表示映像データ群と、出力音データ群と、標準指先サイズとを記憶する。操作用表示映像データ群は、立体映像6毎に用意された複数の操作用表示映像データ(図8参照)の集合である。出力音データ群は、音声生成部405において音声を生成する際に用いるデータの集合である。
図37は、第2の実施形態に係る生成映像指定部の機能的構成を示す図である。
生成映像指定部403は、上記のように、表示する立体映像6の生成に必要な情報を指定する。生成映像指定部403は、図37に示すように、初期映像指定部403aと、確定枠指定部403bと、枠内映像指定部403cと、隣接ボタン表示指定部403dと、入力確定映像指定部403eと、表示位置指定部403fと、を含む。また、本実施形態に係る生成映像指定部403は、表示サイズ指定部403gを更に含む。
初期映像指定部403aは、入力状態が非選択である場合の立体映像6の生成に必要な情報を指定する。確定枠指定部403bは、入力状態が仮選択又は押下中であるボタンの像における入力確定枠についての情報を指定する。枠内映像指定部403cは、入力状態が仮選択又は押下中であるボタンの像における入力確定枠内の情報、すなわち仮選択のボタンの像621における領域621aや押下中のボタンの像622における領域622aについての情報を指定する。隣接ボタン表示指定部403dは、入力状態が仮選択又は押下中であるボタンと隣接する他のボタンの表示/非表示を指定する。入力確定映像指定部403eは、入力状態が入力確定であるボタンの像についての情報を指定する。表示位置指定部403fは、入力状態が入力確定中移動であるボタン等を含む立体映像の表示位置を指定する。表示サイズ指定部403gは、指先サイズ算出部408で算出した指先サイズに基づいて、表示する立体映像6に含まれるボタンの像又は立体映像6全体の表示サイズを指定する。
図38Aは、第2の実施形態に係る情報処理装置が行う処理を説明するフローチャート(その1)である。図38Bは、第2の実施形態に係る情報処理装置が行う処理を説明するフローチャート(その2)である。
本実施形態の情報処理装置4は、図38Aに示すように、まず、初期映像を表示させる(ステップS21)。ステップS21において、情報処理装置4は、生成映像指定部403の初期映像指定部403aにおいて入力状態が非選択である場合の立体映像6の生成に必要な情報を指定し、映像生成部404において立体映像6の表示データを生成する。初期映像指定部403aは、記憶部407の操作用表示映像データ群を用いて立体映像6の生成に必要な情報を指定する。映像生成部404は、生成した表示データを表示装置2に出力し、表示装置2に立体映像6を表示させる。
次に、情報処理装置4は、距離センサ3が出力したデータを取得し(ステップS22)、手指の検出処理を行う(ステップS23)。ステップS22及びS23は、手指検出部401が行う。手指検出部401は、取得した距離センサ3からのデータに基づいて、立体映像6を表示している空間を含む検出範囲内にオペレータ7の手指が存在するか否かを調べる。ステップS23の後、情報処理装置4は、オペレータ7の手指を検出したか否かを判定する(ステップS24)。
オペレータ7の手指を検出した場合(ステップS24;Yes)と、情報処理装置4は、次に、指先の空間座標を算出し(ステップS25)、ボタンと指先との相対位置を算出する(ステップS26)。ステップS25及びS26は、手指検出部401が行う。手指検出部401は、既知の空間座標の算出方法及び相対位置の算出方法によりステップS25及びS26の処理を行う。手指検出部401は、ステップS26として、例えば、図13に示したステップS601からS607までの処理を行う。
ステップS25及びS26の後、情報処理装置4は、指先のサイズを算出するとともに(S27)、表示しているボタンの最小サイズを算出する(ステップS28)。ステップS27及びS28は、指先サイズ算出部408が行う。指先サイズ算出部408は、手指検出部401を介して入力される距離センサ3からの検出情報に基づいて表示空間における指先の幅を算出する。また、指先サイズ算出部408は、制御部406を介して入力される表示中の立体映像6についての映像データに基づいて表示空間におけるボタンの最小サイズを算出する。
オペレータ7の手指を検出した場合(ステップS24;Yes)、ステップS25からS28までの処理を終えると、情報処理装置4は、図38Bに示すように、入力状態判定処理(ステップS29)を行う。一方、オペレータ7の手指を検出しなかった場合(ステップS24;No)、情報処理装置4は、ステップS25からS28までの処理をスキップして入力状態判定処理(ステップS29)を行う。
ステップS27の入力状態判定処理は、入力状態判定部402が行う。入力状態判定部402は、直前の入力状態と、ステップS25からS28までの処理の結果とに基づいて、現在の入力状態を判定する。本実施形態の情報処理装置4における入力状態判定部402は、例えば、図17Aから図17Cまでに示したステップS701からS721までの処理を行って現在の入力状態を判定する。
入力状態判定処理(ステップS29)を終えると、情報処理装置4は、次に、生成映像指定処理(ステップS30)を行う。生成映像指定処理は、生成映像指定部403が行う。生成映像指定部403は、現在の入力状態に基づいて、表示する立体映像6の生成に必要な情報を指定する。
ステップS30の生成映像指定処理を終えると、情報処理装置4は、表示する映像の表示データを生成し(ステップS31)、表示装置2に映像を表示させる(ステップS32)。ステップS31及びS32は、映像生成部404が行う。映像生成部404は、生成映像指定部403により指定された情報に基づいて立体映像6の表示データを生成し、生成した映像データを表示装置2に出力する。
また、入力状態判定処理(ステップS29)の後、情報処理装置4は、ステップS30からS32までの処理と並行して、音声を出力するか否かの判定を行う(ステップS33)。ステップS33の判定は、例えば、制御部406が現在の入力状態に基づいて行う。音声を出力する場合(ステップS33;Yes)、制御部406は、音声生成部405に音声データを生成させ、音声出力装置5に音声を出力させる(ステップS34)。制御部406は、例えば、入力状態が入力確定である場合、キーリピートである場合に音声を出力すると判定する。一方、音声を出力しない場合(ステップS33;No)、制御部406は、ステップS33の処理をスキップさせる。
ステップS30からS32までの処理と、ステップS33及びS34の処理とを終えると、情報処理装置4は、処理を終了するか否かを判定する(ステップS35)。処理を終了する場合(ステップS35;Yes)、情報処理装置4は、処理を終了する。
一方、処理を続ける場合(ステップS35;No)、情報処理装置4が行う処理はステップS22の処理に戻る。以降、情報処理装置4は、処理を終了するまでステップ22〜S34までの処理を繰り返す。
図39Aは、第2の実施形態における生成映像指定処理を説明するフローチャート(その1)である。図39Bは、第2の実施形態における生成映像指定処理を説明するフローチャート(その2)である。図39Cは、第2の実施形態における生成映像指定処理を説明するフローチャート(その3)である。図39Dは、第2の実施形態における生成映像指定処理を説明するフローチャート(その4)である。
ステップS30の生成映像指定処理は、生成映像指定部403が行う。生成映像指定部403は、図39Aに示すように、まず、現在の入力状態を判定する(ステップS3001)。
ステップS3001において現在の入力状態が非選択であると判定した場合、生成映像指定部403は、全ボタンを非選択のボタンの像に指定する(ステップS3002)。ステップS3002の指定は、初期映像指定部403aにより行う。
ステップS3001において現在の入力状態が仮選択であると判定した場合、生成映像指定部403は、ステップS3001の後、図39Bに示すように、仮選択されたボタンを仮選択のボタンの像に指定し、他のボタンは非選択のボタンの像に指定する(ステップS3003)。ステップS3003の指定は、初期映像指定部403a、確定枠指定部403b、及び枠内映像指定部403cにより行う。また、ステップS3001において現在の入力状態が仮選択であると判定した場合、生成映像指定部403は、ステップS3003の後、図39Dに示すステップS3010からステップS3016までの処理を行う。
ステップS3001において現在の入力状態が押下中であると判定した場合、生成映像指定部403は、ステップS3001の後、図39Bに示すように、入力確定点から指先座標までの距離を算出する(ステップS3004)。続けて、生成映像指定部403は、押下中のボタンに対し算出した距離に応じた押下中のボタンの像を指定し、他のボタンは非選択のボタンの像に指定する(ステップS3005)。ステップS3005の指定は、初期映像指定部403a、確定枠指定部403b、及び枠内映像指定部403cにより行う。また、ステップS3001において現在の入力状態が押下中であると判定した場合、生成映像指定部403は、ステップS3003の後、図39Dに示すステップS3010からステップS3016までの処理を行う。
ステップS3001において現在の入力状態が入力確定であると判定した場合、生成映像指定部403は、ステップS3001の後、図39Bに示すように、入力確定のボタンに対し入力確定のボタンの像623を指定し、他のボタンは非選択のボタンの像を指定する(ステップS3006)。ステップS3006は,入力確定映像指定部403eが行う。また、ステップS3001において現在の入力状態が入力確定であると判定した場合、生成映像指定部403は、ステップS3003の後、図39Dに示すステップS3010からステップS3013までの処理を行う。
ステップS3001において現在の入力状態がキーリピートである判定した場合、生成映像指定部403は、ステップS3001の後、図39Cに示すように、キーリピート中のボタンに対しキーリピートのボタンの像624を指定し、他のボタンには非選択のボタンの像620を指定する(ステップS3007)。ステップS3007は、例えば、入力確定映像指定部403eが行う。また、ステップS3001において現在の入力状態がキーリピートであると判定した場合、生成映像指定部403は、ステップS3007の後、図39Dに示すステップS3010からステップS3013までの処理を行う。
ステップS3001において現在の入力状態が入力確定中移動であると判定した場合、生成映像指定部403は、ステップS3001の後、図39Cに示すように、指先座標の移動量に基づいて、立体映像内のボタンの表示座標を修正する(ステップS3008)。その後、生成映像指定部403は、表示位置を移動させるボタンに対し入力確定のボタンの像623を指定し、他のボタンには非選択のボタンの像を指定する(ステップS3009)。ステップS3008及びS3009は、入力確定映像指定部403eと、表示位置指定部403fとが行う。また、ステップS3001において現在の入力状態が入力確定中移動であると判定した場合、生成映像指定部403は、ステップS3003の後、図39Dに示すステップS3010からステップS3013までの処理を行う。
現在の入力状態が非選択以外の状態である場合、上記のように、生成映像指定部403は、表示させるボタンの像や表示位置を指定した後、図39Dに示すステップS3010以降の処理を行う。すなわち、生成映像指定部403は、指先空間座標に対応したボタンの表示サイズと指先サイズとを比較し(ステップS3010)、現在の表示サイズでボタンを表示した場合に指先でボタンが隠れるか否かを判定する(ステップS3011)。ステップS3010及びステップS3011は、表示サイズ指定部403gが行う。表示サイズ指定部403gは、例えば、ステップS27で算出した指先サイズと、ステップS28で算出したボタンの表示サイズとの差分を算出し、当該差分が閾値以上であるか否かを判定する。
指先でボタンが隠れると判定した場合(ステップS3011;Yes)、表示サイズ指定部403gは、ボタンの表示サイズを拡大する(ステップS3012)。ステップS3012において、表示サイズ指定部403gは、立体映像6全体の表示サイズ、又は立体映像6内の各ボタンの表示サイズのみを指定する。表示サイズ指定部403gにおいてボタンの表示サイズを拡大した後、生成映像指定部403は、入力状態が仮選択又は押下中であるか否かを判定する(ステップS3013)。一方、ボタンが隠れないと判定した場合(ステップS3011;No)、表示サイズ指定部403gは、ステップS3012の処理をスキップし、ステップS3013の判定を行う。
現在の入力状態が仮選択又は押下中である場合(スキップS3013;Yes)、生成映像指定部403は、次に、隣接ボタンにおける仮選択又は押下中のボタンの像との重なり量を算出する(ステップS3014)。ステップS3014は、隣接ボタン表示指定部403dが行う。重なり量を算出すると、隣接ボタン表示指定部403dは、次に、重なり量が閾値以上のボタンがあるか否かを判定する(ステップS3015)。重なり量が閾値以上のボタンがある場合(ステップS3015;Yes)、隣接ボタン表示指定部403dは、該当するボタンを非表示に設定する(ステップS3016)。一方、重なり量が閾値以上のボタンがない場合(ステップS3015;No)、隣接ボタン表示指定部403dは、ステップS3016の処理をスキップする。
また、現在の入力状態が仮選択でも押下中でもない場合(ステップS3013;No)、生成映像指定部403は、ステップS3014以降の処理をスキップする。
このように、本実施形態の入力装置1における情報処理装置4は、入力状態が仮選択又は押下中であり、かつ指先でボタンが隠れると判定した場合、ボタンの表示サイズを拡大する。これにより、オペレータ7がボタンを押下する動作を行う際、該当ボタンの位置(押下領域)を視認しながら押下することができる。そのため、押下する動作の途中で指先が押下領域の外側に移動すること等による入力ミスを低減することが可能となる。
図40は、ボタンの表示サイズの拡大方法の第1の例を示す図である。図41は、ボタンの表示サイズの拡大方法の第2の例を示す図である。図42は、ボタンの表示サイズの拡大方法の第3の例を示す図である。
本実施形態の入力装置1においてボタンの表示サイズを拡大する方法には、いくつかの種類がある。例えば、図40に示すように、立体映像6の表示サイズを変えずに、入力状態が仮選択又は押下中であるボタンの表示サイズのみを拡大する方法がある。図40の(a)に示した立体映像6は、例えば、操作用表示映像データ(図8参照)に指定された表示サイズで表示されているとする。このとき、オペレータ7の指先701のサイズ(幅)が標準的なサイズよりも太めであると、指先701でボタンに押下する際、指先701でボタンが隠れてしまうことがある。このように指先701でボタンが隠れてしまうと、指先701を奥行き方向に移動させる際、押下領域がわかりづらくなり、移動中に指先が押下領域の外側に出てしまう可能性がある。すなわち、指先でボタンが隠れてしまう場合、少なくともオペレータ7が押下しようとしているボタン645をオペレータ7が視認できればよいと考えられる。そのため、拡大方法の第1の例では、図40の(b)に示すように、該当ボタンの表示サイズのみを拡大して表示している。
また、ボタンの表示サイズを拡大する際には、例えば、図41に示すように、立体映像6全体の表示サイズを拡大してもよい。図41の(a)に示した立体映像6は、例えば、操作用表示映像データ(図8参照)に指定された表示サイズで表示されているとする。このとき、オペレータ7の指先701のサイズ(幅)が標準的なサイズよりも太めであると、指先701でボタンに押下する際、指先701でボタンが隠れてしまうことがある。この場合、例えば、図41の(b)に示したように、立体映像6全体の表示サイズを拡大すると、立体映像6内の各ボタンのサイズも拡大される。これにより、指先701でボタンが隠れてしまうことを防ぐことが可能となる。また、立体映像6全体を拡大する場合、例えば、指先701の平面位置を中心として拡大する。これにより、拡大前に指先701により操作対象に選択していたボタンが拡大後に指先701から離間した位置にずれてしまうことを防ぐことができる。また、オペレータ7は、例えば、ボタン645を押下した後、他のボタンを押下するため立体映像6の表示面近傍で指先701を移動させることがある。この場合、立体映像6全体の表示サイズを拡大しておくと、他のボタンも全て拡大表示されているので、表示面近傍で移動させている指先701によりボタンが隠れてしまうのを防ぐことができる。そのため、ボタンを押下する前、言い換えると入力状態が非選択である段階におけるボタンと指先との位置あわせが容易になる。
更に、ボタンの表示サイズを拡大する際には、例えば、図42の(a)及び(b)に示すように、立体映像6全体の表示サイズは変えずに、各ボタンの表示サイズのみを拡大してもよい。この場合、立体映像6全体の表示サイズは変わらないが、全てのボタンが拡大表示されているので、表示面近傍で移動させている指先701によりボタンが隠れてしまうのを防ぐことができる。そのため、ボタンを押下する前、言い換えると入力状態が非選択である段階におけるボタンと指先との位置あわせが容易になる。
[第3の実施形態]
本実施形態では、第2の実施形態に係る情報処理装置4が行う処理の別の手順を説明する。
図43Aは、第3の実施形態に係る情報処理装置が行う処理を説明するフローチャート(その1)である。図43Bは、第3の実施形態に係る情報処理装置が行う処理を説明するフローチャート(その2)である。
本実施形態の情報処理装置4は、図43Aに示すように、まず、初期映像を表示させる(ステップS41)。ステップS41において、情報処理装置4は、生成映像指定部403の初期映像指定部403aにおいて入力状態が非選択である場合の立体映像6の生成に必要な情報を指定し、映像生成部404において立体映像6の表示データを生成する。初期映像指定部403aは、記憶部407の操作用表示映像データ群を用いて立体映像6の生成に必要な情報を指定する。映像生成部404は、生成した表示データを表示装置2に出力し、表示装置2に立体映像6を表示させる。
次に、情報処理装置4は、距離センサ3が出力したデータを取得し、手指の検出処理を行う(ステップS42)。ステップS42は、手指検出部401が行う。手指検出部401は、取得した距離センサ3からのデータに基づいて、立体映像6を表示している空間を含む検出範囲内にオペレータ7の手指が存在するか否かを調べる。ステップS42の後、情報処理装置4は、オペレータ7の手指を検出したか否かを判定する(ステップS43)。オペレータ7の手指を検出しなかった場合(ステップS43;No)、情報処理装置4は、入力状態を非選択に変更し(ステップS44)、続けて図43Bに示す入力状態判定処理(ステップS50)を行う。
オペレータ7の手指を検出した場合(ステップS43;Yes)と、情報処理装置4は、次に、指先の空間座標を算出し(ステップS45)、ボタンと指先との相対位置を算出する(ステップS46)。ステップS45及びS46は、手指検出部401が行う。手指検出部401は、既知の空間座標の算出方法及び相対位置の算出方法によりステップS45及びS46の処理を行う。手指検出部401は、ステップS46として、例えば、図13に示したステップS601からS607までの処理を行う。
ステップS45及びS46の後、情報処理装置4は、指先のサイズを算出するとともに(S47)、表示しているボタンの最小サイズを算出する(ステップS48)。ステップS47及びS48は、指先サイズ算出部408が行う。指先サイズ算出部408は、手指検出部401を介して入力される距離センサ3からの検出情報に基づいて表示空間における指先の幅を算出する。また、指先サイズ算出部408は、制御部406を介して入力される表示中の立体映像6についての映像データに基づいて表示空間におけるボタンの最小サイズを算出する。
ステップS47及びS48の後、情報処理装置4は、ボタンの表示サイズが指先サイズ以上になるよう立体映像を拡大する(ステップS49)。ステップS49は、生成映像指定部403の表示サイズ指定部403gが行う。表示サイズ指定部403gは、ステップS47で算出した指先サイズとステップS48で算出したボタンの表示サイズとの差分に基づいて表示サイズを拡大するか否かを判定する。表示サイズを拡大する場合、情報処理装置4は、例えば、図41又は図42に示した拡大方法によりボタンを拡大させた立体映像6を生成して表示装置2に表示させる。
オペレータ7の手指を検出した場合(ステップS43;Yes)、ステップS45からS49までの処理を終えると、情報処理装置4は、図43Bに示す入力状態判定処理(ステップS50)を行う。
ステップS50の入力状態判定処理は、入力状態判定部402が行う。入力状態判定部402は、直前の入力状態と、ステップS45からS49までの処理の結果とに基づいて、現在の入力状態を判定する。本実施形態の情報処理装置4における入力状態判定部402は、例えば、図17Aから図17Cまでに示したステップS701からS721までの処理を行って現在の入力状態を判定する。
入力状態判定処理(ステップS50)を終えると、情報処理装置4は、次に、生成映像指定処理(ステップS51)を行う。生成映像指定処理は、生成映像指定部403が行う。生成映像指定部403は、現在の入力状態に基づいて、表示する立体映像6の生成に必要な情報を指定する。本実施形態の情報処理装置4における生成映像指定部403は、例えば、図18Aから図18Cまでに示したステップS801からS812までの処理を行って立体映像6の生成に必要な情報を指定する。
ステップS51の生成映像指定処理を終えると、情報処理装置4は、表示する映像の表示データを生成し(ステップS52)、表示装置2に映像を表示させる(ステップS53)。ステップS52及びS53は、映像生成部404が行う。映像生成部404は、生成映像指定部403により指定された情報に基づいて立体映像6の表示データを生成し、生成した映像データを表示装置2に出力する。
また、入力状態判定処理(ステップS50)の後、情報処理装置4は、ステップS51からS52までの処理と並行して、音声を出力するか否かの判定を行う(ステップS54)。ステップS54の判定は、例えば、制御部406が現在の入力状態に基づいて行う。音声を出力する場合(ステップS54;Yes)、制御部406は、音声生成部405に音声データを生成させ、音声出力装置5に音声を出力させる(ステップS55)。制御部406は、例えば、入力状態が入力確定である場合、キーリピートである場合に音声を出力すると判定する。一方、音声を出力しない場合(ステップS54;No)、制御部406は、ステップS55の処理をスキップさせる。
ステップS51からS53までの処理と、ステップS54及びS55の処理とを終えると、情報処理装置4は、処理を終了するか否かを判定する(ステップS56)。処理を終了する場合(ステップS56;Yes)、情報処理装置4は、処理を終了する。
一方、処理を続ける場合(ステップS56;No)、情報処理装置4が行う処理はステップS42の処理に戻る。以降、情報処理装置4は、処理を終了するまでステップ42〜S55までの処理を繰り返す。
このように、本実施形態に係る情報処理装置4が行う処理では、オペレータ7の指先701を検出した場合に、入力状態によらずボタンの表示サイズが指先サイズ以上になるようボタンを拡大して表示する。そのため、入力状態が仮選択でも押下中でもない状態である場合にもボタンを拡大して表示することが可能となる。よって、例えば、オペレータ7があるボタンを押下した後、他のボタンを押下するため立体映像6の表示面近傍で指先701を移動させた場合にも、表示面近傍で移動させている指先701によりボタンが隠れてしまうのを防ぐことができる。そのため、ボタンを押下する前、言い換えると入力状態が非選択である段階におけるボタンと指先との位置あわせが容易になる。
[第4の実施形態]
図44は、第4の実施形態に係る入力装置の構成例を示す図である。
図44に示すように、本実施形態に係る入力装置1は、表示装置2と、距離センサ3と、情報処理装置4と、音声出力装置(スピーカ)5と、圧縮空気噴射装置16と、圧縮空気送出制御装置17と、を備える。このうち表示装置2、距離センサ3、情報処理装置4、及び音声出力装置5は、それぞれ、第1の実施形態から第3の実施形態までで説明したものと同様の構成及び機能を有する。
圧縮空気噴射装置16は、圧縮空気18を噴射する装置である。本実施形態の入力装置1における圧縮空気噴射装置16は、例えば、噴射口1601の向きを変更可能に構成されており、立体映像6の表示空間内に向けて圧縮空気18を噴射する際の噴射方向を適宜帰ることができる。
圧縮空気送出制御装置17は、圧縮空気噴射装置16の噴射口1601の向き、圧縮空気の噴射タイミングや噴射パターン等を制御する装置である。
本実施形態の入力装置1は、第1の実施形態から第3の実施形態までで説明したものと同様、オペレータ7が立体表示6内のボタン601を押下する動作を検出した際に、押下対象のボタンの周囲に入力確定枠を表示する。
更に、本実施形態の入力装置1では、入力状態が非選択以外のボタンがある場合、圧縮空気噴射装置16によりオペレータ7の指先701に圧縮空気18を吹き付ける。これにより、オペレータ7の指先701に擬似的な触覚、すなわち実物体のボタンを押下したときのような感覚を与えることが可能となる。
本実施形態の入力装置1における情報処理装置4は、上記の各実施形態で説明した処理を行う。また、情報処理装置4は、入力状態判定処理において現在の入力状態が非選択以外であると判定した場合、現在の入力状態と、手指検出部401で算出した指先の空間座標とを含む制御信号を圧縮空気送出制御装置17に出力する。圧縮空気送出制御装置17は、情報処理装置4からの制御信号に基づいて噴射口1601の向きを制御し、現在の入力状態に応じた噴射パターンで圧縮空気を噴射する。
図45は、圧縮空気の噴射パターンを示すグラフである。図45に示したグラフは、横軸が時間であり、縦軸が圧縮空気の噴射圧である。
入力装置1のオペレータ7が立体映像6のボタン601を押下する動作を行う際、ボタン601に対する入力状態は、図45に示すように、非選択から始まり、仮選択、押下中、入力確定、キーリピートの順で変化した後、非選択に戻る。入力状態が非選択である場合、オペレータ7の指先701はボタン601に触れていないので、圧縮空気による触覚を与える必要はない。そのため、入力が非選択である場合の噴射圧は0(噴射しない)とする。その後、オペレータ7の指先701がボタン601に触れて入力状態が仮選択になると、ボタン601に触れた触覚を与えるため、圧縮空気送出制御装置17は、圧縮空気噴射装置16に噴射圧の低い圧縮空気を噴射させる。そして、オペレータ7の指先701が押下方向に移動して入力状態が押下中になると、圧縮空気送出制御装置17は、圧縮空気噴射装置16に仮選択のときよりも噴射圧の高い圧縮空気を噴射させる。これにより、オペレータ7の指先701に実物体のボタンを押下したときの抵抗に似た触覚が与えられる。
また、押下方向に移動するオペレータ7の指先701が入力確定点に到達して入力状態が入力確定になると、圧縮空気送出制御装置17は、圧縮空気噴射装置16に一度噴射圧を低くした後、噴射圧の高い圧縮空気を瞬間的に噴射させる。これにより、オペレータ7の指先701に実物体のボタンを押下して入力が確定したときのクリック感に似た触覚が与えられる。
更に、入力状態が入力確定である状態が所定時間継続して入力状態がキーリピートになると、圧縮空気送出制御装置17は、圧縮空気噴射装置16に噴射圧の高い圧縮空気を断続的に噴射させる。そして、オペレータ7が指先701をボタンから離す動作を行い入力状態が非選択になると、圧縮空気送出制御装置17は、圧縮空気噴射装置16に圧縮空気の噴射を終了させる。
このように、実物体のボタンを押下したときに指先701で得られる触覚と対応した噴射圧及び噴射パターンで圧縮空気を噴射させることにより、オペレータ7に実物体のボタンを押下したときのような感覚を与えることが可能となる。
なお、図45に示した圧縮空気の噴射パターンは一例に過ぎず、噴射圧や噴射パターンは適宜変更可能である。
図46は、第4の実施形態に係る入力装置の別の構成例を示す図である。
本実施形態に係る入力装置1において、圧縮空気噴射装置16の構成や設置数は適宜変更可能である。そのため、例えば、図46の(a)に示すように、表示装置2の上辺部及び下辺部にそれぞれ複数個の圧縮空気噴射装置16を設置することもできる。このように複数個の圧縮空気噴射装置16を設置することにより、ボタンを押下する指先701の移動方向とは反対の方向に近い方向から圧縮空気18を指先701に噴射することが可能となる。そのため、オペレータ7に実物体のボタンを押下したときにより近い感覚を与えることが可能となる。
また、圧縮空気噴射装置16は、例えば、図46の(b)に示すように、オペレータ7の手首に装着するタイプのものであってもよい。この種の圧縮空気噴射装置16は、例えば、5個の噴射口1601を備え、各噴射口1601から個別に圧縮空気18を噴射させることが可能である。このように圧縮空気噴射装置16を手首に装着すると、ボタンに触れる指先により近い位置から圧縮空気を指先に噴射することができる。そのため、図45や図46の(a)に示した入力装置1と比べて噴射圧の低い圧縮空気で指先701に擬似的な触覚を与えることが可能となる。また、噴射口の位置が指先701に近くなるため、圧縮空気18の噴射方向がずれて圧縮空気18が指先701に当たらないといった事態の発生を抑制することが可能となる。
第1の実施形態から第4の実施形態までで説明した入力装置1は、コンピュータと、当該コンピュータに実行させるプログラムとを用いて実現することが可能である。以下、コンピュータとプログラムとを用いて実現される入力装置1について、図47を参照して説明する。
図47は、コンピュータのハードウェア構成を示す図である。図47に示すように、入力装置1として動作させるコンピュータ20は、Central Processing Unit(CPU)2001と、主記憶装置2002と、補助記憶装置2003と、表示装置2004と、を備える。また、コンピュータ20は、Graphics Processing Unit(GPU)2005と、インタフェース装置2006と、記憶媒体駆動装置2007と、通信装置2008と、を更に備える。コンピュータ20におけるこれらの要素2001から2008までは、バス2010により相互に接続されており、要素間でのデータの受け渡しが可能になっている。
CPU 2001は、オペレーティングシステムを含む各種のプログラムを実行することによりコンピュータ20の全体の動作を制御する演算処理装置である。
主記憶装置2002は、図示しないRead Only Memory(ROM)及びRandom Access Memory(RAM)を含む。ROMには、例えばコンピュータ20の起動時にCPU 2001が読み出す所定の基本制御プログラム等が予め記録されている。また、RAM は、CPU 2001が各種のプログラムを実行する際に、必要に応じて作業用記憶領域として使用する。主記憶装置2002のRAMは、例えば、現在表示している立体映像についての操作用表示映像データ(図8を参照)、直前の入力状態等の一時的な記憶に利用可能である。
補助記憶装置2003は、Hard Disk Drive(HDD)やSolid State Drive(SSD)等の主記憶装置2002に比べて容量の大きい記憶装置である。補助記憶装置2003には、CPU 2001によって実行される各種のプログラムや各種のデータ等を記憶させることができる。補助記憶装置2003に記憶させるプログラムとしては、例えば、立体映像を生成するプログラム等が挙げられる。また、補助記憶装置2003に記憶させるデータとしては、例えば、操作用表示映像データ群、出力音データ群等が挙げられる。
表示装置2004は、裸眼3D液晶ディスプレイ、液晶シャッターメガネ式3Dディスプレイ等の立体映像6の表示が可能な表示装置である。表示装置2004は、CPU 2001やGPU2005から送信される表示データに従って各種のテキスト、立体映像等を表示する。
GPU 2005は、CPU 2001からの制御信号等に従って立体映像6の生成における一部或いは全ての処理を行う演算処理装置である。
インタフェース装置2006は、コンピュータ20と他の電子機器とを接続し、コンピュータ20と他の電子機器との間でのデータの送受信を可能にする入出力装置である。インタフェース装置2006は、例えば、Universal Serial Bus(USB)規格のコネクタを備えたケーブルを接続可能な端子等を備える。インタフェース装置2006によりコンピュータ20と接続可能な電子機器としては、距離センサ3や撮像装置(例えばデジタルカメラ)等が挙げられる。
記憶媒体駆動装置2007は、図示しない可搬型記憶媒体に記録されているプログラムやデータの読み出し、補助記憶装置2003に記憶されたデータ等の可搬型記憶媒体への書き込みを行う。可搬型記憶媒体としては、例えば、USB規格のコネクタが備えられているフラッシュメモリが利用可能である。また、可搬型記憶媒体としては、Compact Disk(CD)、Digital Versatile Disc(DVD)、Blu-ray Disc(Blu-rayは登録商標)等の光ディスクも利用可能である。
通信装置2008は、コンピュータ20とインターネット或いはLocal Area Network(LAN)等の通信ネットワークとを通信可能に接続し、通信ネットワークを介した他の通信端末(コンピュータ)との通信を制御する装置である。コンピュータ20は、例えば、オペレータ7が立体映像6(操作画面)を介して入力した情報を他の通信端末に送信することができる。また、コンピュータ20は、例えば、オペレータ7が立体映像6(操作画面)を介して入力した情報に基づいて、他の通信端末から各種データを取得して立体映像6として表示させることができる。
このコンピュータ20は、CPU 2001が補助記憶装置2003等から上述した処理を含むプログラムを読み出し、GPU 2005、主記憶装置2002、補助記憶装2003等と協働して立体映像6の生成処理を実行する。この際、CPU 2001は、オペレータ7の指先701の検出処理、入力状態判定処理、生成映像指定処理等を行う。また、GPU 2005は、立体映像を生成する処理等を行う。
なお、入力装置1として用いるコンピュータ20は、図47に示した全ての構成要素を含む必要はなく、用途や条件に応じて一部の構成要素を省略することも可能である。例えば、CPU 2001の処理能力が高い場合、GPU 2005を省略し、CPU 2001において上記の全ての演算処理を実行してもよい。
また、コンピュータ20は、種々のプログラムを実行することにより複数の機能を実現する汎用型のものに限らず、入力装置1として動作させるための処理に特化した専用の情報処理装置でもよい。
以上記載した各実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
映像を立体表示させる表示装置と、
所定形状の物体を検出する検出器と、
操作用のボタンを含む映像を生成するとともに、前記ボタンの表示位置と、前記検出器で検出した前記物体の位置とに基づいて前記ボタンに対する入力状態を判定し、当該入力状態に基づいて前記ボタンと対応した操作情報の入力を確定させるか否かを判定する情報処理装置と、を備え、
前記情報処理装置は、
前記ボタンに対する入力状態が当該ボタンを操作対象に選定した状態であると判定した場合に、当該ボタンを囲む所定の寸法の入力確定枠の表示を指定する確定枠指定部と、
前記ボタンに対する入力状態が当該ボタンを押下している状態であると判定した場合に、押下量が入力を確定させるための押下量に近づくほど当該ボタンの外周が前記入力確定枠に近づく態様で前記ボタンの表示寸法を指定する枠内映像指定部と、を含む、
ことを特徴とする入力装置。
(付記2)
前記情報処理装置は、
前記検出器の検出結果に基づいて前記物体の寸法を算出する寸法算出部と、
算出した前記物体の寸法と、立体表示させている前記映像内の前記ボタンの表示寸法とに基づいて、立体表示させる前記映像内の前記ボタンの表示寸法を指定する表示寸法指定部と、を更に含む、
ことを特徴とする付記1に記載の入力装置。
(付記3)
前記表示寸法指定部は、所定の視点から見た前記物体の寸法と前記ボタンの表示寸法とに基づいて、立体表示させる前記映像内の前記ボタンの表示寸法を指定する、
ことを特徴とする付記2に記載の入力装置。
(付記4)
前記表示寸法指定部は、前記ボタンの表示寸法が前記物体の寸法よりも大きくなるよう前記ボタンの表示寸法を拡大する、
ことを特徴とする付記2に記載の入力装置。
(付記5)
前記表示寸法指定部は、前記映像内の前記ボタンの表示寸法のみを拡大する、
ことを特徴とする付記4に記載の入力装置。
(付記6)
前記表示寸法指定部は、前記映像全体の表示寸法を拡大する、
ことを特徴とする付記4に記載の入力装置。
(付記7)
前記枠内映像指定部は、前記入力確定枠内に表示させる前記ボタンの色を、同心円状に変化する配色に指定する、
ことを特徴とする付記1に記載の入力装置。
(付記8)
前記情報処理装置は、
前記確定枠指定部において前記入力確定枠の表示を指定した場合に、当該入力確定枠に内包される前記ボタンと隣接する他のボタンの表示を変更する隣接ボタン表示指定部、を更に備える、
ことを特徴とする付記1に記載の入力装置。
(付記9)
前記隣接ボタン表示指定部は、前記入力確定枠に内包される前記ボタンと隣接する前記他のボタンを非表示にする、
ことを特徴とする付記8に記載の入力装置。
(付記10)
前記隣接ボタン表示指定部は、前記入力確定枠に内包される前記ボタンと隣接する前記他のボタンの透明度を高くする、
ことを特徴とする付記8に記載の入力装置。
(付記11)
前記映像は、当該映像を表示空間内で移動させる移動用のボタンを含み、
前記情報処理装置は、前記移動用のボタンに対する入力状態が前記映像の移動を確定する状態である場合に、前記物体の移動量に基づいて前記映像の表示位置を指定する表示位置指定部、を更に備える、
ことを特徴とする付記1に記載の入力装置。
(付記12)
前記映像は、複数の操作画面を奥行き方向に配した映像であり、
前記情報処理装置は、前記複数の操作画面のいずれかの操作画面に含まれる所定のボタンに対する入力状態が当該ボタンと対応した操作情報の入力を確定した状態になると、入力を確定した前記操作情報に基づいて、当該ボタンを含む前記操作画面とは別の操作画面の表示を変更する、
ことを特徴とする付記1に記載の入力装置。
(付記13)
前記情報処理装置は、前記ボタンに対する入力状態が当該ボタンを押下している状態であると判定した場合に、当該ボタンを押下している状態であると判定する前記物体の位置の範囲を、当該ボタンを押下方向に移動させたときの軌跡で表される空間領域よりも大きくする、
ことを特徴とする付記1に記載の入力装置。
(付記14)
当該入力装置は、圧縮空気を噴射する圧縮空気噴射装置、を更に備え、
前記情報処理装置は、前記操作用のボタンが前記物体により操作対象に選定された状態又は押下している状態であるとであると判定した場合に、前記圧縮空気噴射装置に前記物体に向けて圧縮空気を噴射させる、
ことを特徴とする付記1に記載の入力装置。
(付記15)
ボタンを表示させる表示装置と、
指の位置を検出する検出部と、
前記検出部が検出した前記指の位置の変化に応じて、前記ボタンの押下量の変化を示す表示を前記表示装置に表示させる際に、前記ボタンの押下量が前記ボタンの入力確定に達する押下量に対してどの程度かを示す情報を前記表示装置に表示させる制御部と、
を備えたことを特徴とする入力装置。
(付記16)
コンピュータが、
操作用のボタンを含む映像を生成して立体表示させ、
所定形状の物体を検出し、
前記ボタンの表示位置と、前記検出器で検出した前記物体の位置とに基づいて前記ボタンに対する入力状態を判定し、
前記ボタンに対する入力状態が当該ボタンを操作対象に選定した状態であると判定した場合に、当該ボタンを囲む所定の寸法の入力確定枠の表示を指定し、
前記ボタンに対する入力状態が当該ボタンを押下している状態であると判定した場合に、押下量が入力を確定させるための押下量に近づくほど当該ボタンの外周が前記入力確定枠に近づく態様で前記ボタンの表示寸法を指定する、
処理を実行することを特徴とする入力方法。
(付記17)
前記コンピュータが、更に、
前記検出器の検出結果に基づいて前記物体の寸法を算出し、
算出した前記物体の寸法と、立体表示させている前記映像内の前記ボタンの表示寸法とに基づいて、立体表示させる映像内の前記ボタンの表示寸法を指定する、
処理を実行することを特徴とする付記16に記載の入力方法。
(付記18)
前記ボタンの表示寸法を指定する処理において、前記コンピュータは、
所定の視点から見た前記物体の寸法と前記ボタンの表示寸法とに基づいて、立体表示させる映像内の前記ボタンの表示寸法を指定する、
ことを特徴とする付記17に記載の入力方法。
(付記19)
前記ボタンの表示寸法を指定する処理において、前記コンピュータは、
前記入力確定枠内に表示させる前記ボタンの色を、同心円状に変化する配色に指定する、
ことを特徴とする付記16に記載の入力方法。
(付記20)
前記コンピュータが、更に、
前記入力確定枠の表示を指定した場合に、当該入力確定枠に内包される前記ボタンと隣接する他のボタンの表示を変更する、
処理を実行することを特徴とする付記16に記載の入力方法。
(付記21)
前記映像を生成する処理において、前記コンピュータは、当該映像を表示空間内で移動させる移動用のボタンを含む映像を生成し、
当該コンピュータは、更に、
前記移動用のボタンに対する入力状態が前記映像の移動を確定する状態である場合に、前記物体の移動量に基づいて前記映像の表示位置を指定する、
処理を実行することを特徴とする付記16に記載の入力方法。
(付記22)
前記映像を生成する処理において、前記コンピュータは、複数の操作画面を奥行き方向に配した映像を生成し、
当該コンピュータは、更に、
前記複数の操作画面のいずれかの操作画面に含まれる所定のボタンに対する入力状態が当該ボタンと対応した操作情報の入力を確定した状態になると、入力を確定した前記操作情報に基づいて、当該ボタンを含む前記操作画面とは別の操作画面の表示を変更する、
処理を実行することを特徴とする付記16に記載の入力方法。
(付記23)
前記コンピュータは、前記ボタンに対する入力状態が当該ボタンを押下している状態であると判定した場合に、当該ボタンを押下している状態であると判定する前記物体の位置の範囲を、当該ボタンを押下方向に移動させたときの軌跡で表される空間領域よりも大きくする、
ことを特徴とする付記16に記載の入力方法。
(付記24)
操作用のボタンを含む映像を生成して立体表示させ、
所定形状の物体を検出し、
前記ボタンの表示位置と、前記検出器で検出した前記物体の位置とに基づいて前記ボタンに対する入力状態を判定し、
前記ボタンに対する入力状態が当該ボタンを操作対象に選定した状態であると判定した場合に、当該ボタンを囲む所定の寸法の入力確定枠の表示を指定し、
前記ボタンに対する入力状態が当該ボタンを押下している状態であると判定した場合に、押下量が入力を確定させるための押下量に近づくほど当該ボタンの外周が前記入力確定枠に近づく態様で前記ボタンの表示寸法を指定する、
処理をコンピュータに実行させるためのプログラム。