以下、本発明の実施形態の例を、図面を用いて説明する。
図1(図1(a)~図1(c))を参照して本実施形態によるヘッドマウントディスプレイの概観を説明する。図1は、ヘッドマウントディスプレイ100の概観を示す図である。具体的に、図1(a)は、ユーザ1がヘッドマウントディスプレイ100を装着した状態におけるヘッドマウントディスプレイ100の上面図である。図1(b)は、ヘッドマウントディスプレイ100の正面図である。図1(c)は、ヘッドマウントディスプレイ100の側面図である。
ヘッドマウントディスプレイ100は、ユーザ1が頭部に装着した状態で、アプリケーションをユーザ1に視認可能に表示し、実行する装置である。ヘッドマウントディスプレイ100は、外界を撮像可能な第1撮像部133aおよび第1撮像部133bを有する。また、ヘッドマウントディスプレイ100は、透過型の表示手段である透過表示部131を有する。また、図1(c)に示すように、ヘッドマウントディスプレイ100は、音声出力部141(例えば、音声出力部141a)を有する。なお、透過表示部131の代わりに透過型ではない表示手段を用いるようにしてもよい。この場合、ヘッドマウントディスプレイ100は、当該表示手段に撮像結果を表示する。
ヘッドマウントディスプレイ100は、1または複数のアプリケーションを記憶しており、ユーザ1からの操作指示により、当該アプリケーションを透過表示部131に表示する。なお、ヘッドマウントディスプレイ100は、アプリケーションを表示する位置を示す情報(例えば、絶対位置座標)を記憶しており、この情報に基づいてアプリケーションを表示する。
続いて、図2を用いて、ユーザ1から視認可能な領域を示す視認領域を説明する。図2は、視認領域を説明する図である。ここで視認領域とは、透過表示部131を通してユーザ1が視認できる角度範囲をいう。この視認領域が外界のどの領域に対応するかは、ヘッドマウントディスプレイ100が外界に対してどの方向に向いているかで決まり、ユーザ1は、頭部の方向を変えることにより、任意の方向を視認領域内で視認することができる。さらに、ヘッドマウントディスプレイ100は、ユーザ1の周囲の外界空間に重畳して広がる仮想的な空間に仮想オブジェクト(例えば、上述の透過表示部131に表示されるアプリケーションの表示画面・操作画面等)を配置する。これにより、ユーザ1は、当該仮想オブジェクトを視認することができる。また、ユーザ1は、ヘッドマウントディスプレイ100に対して、所定の操作入力をすることにより、当該仮想オブジェクトを操作することができる。仮想オブジェクトは、外界の特定の位置に配置されているように視認される。なお、透過型でない表示手段を用いる場合、第1撮像部133により撮像された範囲が視認領域となる。
ヘッドマウントディスプレイ100は、上述のように、ヘッドマウントディスプレイ100が記憶しているアプリケーションを実行する。本実施形態のヘッドマウントディスプレイ100は、ユーザ1がアプリケーションを操作(例えば、編集処理の操作)させる領域である操作領域(ホームポジション)を設定する。ここで、アプリケーションやホームポジションの位置は外界に対して固定される。
続いて、図3を用いてヘッドマウントディスプレイ100のハードウェア構成を説明する。図3は、ヘッドマウントディスプレイ100のハードウェア構成を説明する図である。ヘッドマウントディスプレイ100は、主制御部101を有し、バス102を介して各種装置を制御する。この主制御部101は、CPU(Central Processing Unit)等である。また、ヘッドマウントディスプレイ100は、RAM103、ストレージ110、センサ部150、通信部160、および拡張I/F部170を有する。センサ部150は、GPS受信部151、ジャイロセンサ152、地磁気センサ153、および加速度センサ154を有する。
また、ヘッドマウントディスプレイ100は、操作入力部120、透過表示部131、画像信号処理部132、第1撮像部133、第2撮像部134、音声出力部141、音声信号処理部142、および音声入力部143を有する。操作入力部120は、操作キー121、およびタッチセンサ122を有する。上述の構成要素が、動作することにより、ヘッドマウントディスプレイ100の後述する機能が発揮される。
主制御部101は、ストレージ110に記憶されている各種情報処理プログラムを実行することにより、各種機能を実行させる演算処理装置である。RAM103は、各種プログラム実行時のワークエリアとなる。ストレージ110は、主制御部101が第1撮像部133や第2撮像部134により撮像した画像や、各種情報を記憶する部分である。
センサ部150は、ヘッドマウントディスプレイ100の位置および方向を特定するための情報を取得する部分である。センサ部150は、GPS受信部151、ジャイロセンサ152、地磁気センサ153、および加速度センサ154を有する。
GPS受信部151は、GPS信号を受信して得られるGPS情報を取得する。ジャイロセンサ152は、ヘッドマウントディスプレイ100の移動方位の検出を行う機能を有し、ヘッドマウントディスプレイ100の方向変化に伴う角速度データを示すジャイロ情報を取得する。地磁気センサ153は、地磁気に基づいてヘッドマウントディスプレイ100の絶対方位を表す角度を検出する方位検出装置の一種である。このような角度としては、例えば方位角を挙げることができる。加速度センサ154は、ヘッドマウントディスプレイ100の加速度および傾斜角の少なくとも一方を検出する機能を有する。
このように、センサ部150は、ヘッドマウントディスプレイ100の位置・方向を検出することができる。
通信部160は、無線通信する部分である。例えば、近距離無線通信する。拡張I/F部170は、周辺機器と接続するためのインターフェースである。
操作入力部120は、操作入力を受け付ける部分である。操作キー121は、ヘッドマウントディスプレイ100の所定位置(例えば、ユーザ1の耳にかける部分)に設置される物理キーである。タッチセンサ122は、透過表示部131等に設置される入力用センサである。
透過表示部131は、シースルー型(透過型)の表示装置である。画像信号処理部132は、第1撮像部133または第2撮像部134による画像を解析して、当該解析結果を主制御部101等に出力する部分である。
第1撮像部133は、外界を撮像する部分である。第2撮像部134は、ユーザ1の眼を撮像する部分である。音声出力部141は、音声を出力するスピーカ等である。音声信号処理部142は、音声入力部143により入力された音声を解析する部分である。音声入力部143は、ユーザ1の音声を入力する部分であり、マイク等である。
続いて、図4を用いて、ヘッドマウントディスプレイ100の機能説明をする。図4は、ヘッドマウントディスプレイ100の機能ブロック図である。ヘッドマウントディスプレイ100は、記憶部71、設定受付部72、位置特定部73、撮像部74、検出部75、設定部76、およびアプリ制御部77(アプリケーション制御部)を有する。
記憶部71は、各種情報を記憶する部分である。例えば、記憶部71は、複数のアプリケーションを記憶している。また、記憶部71は、撮像部74により撮像された画像データを記憶してもよい。
設定受付部72は、ユーザ1による設定要求を示す操作に応じて、操作領域設定要求を受け付ける部分である。設定受付部72は、当該操作領域設定要求を受け付けると、位置特定部73、撮像部74および検出部75へ当該操作領域設定要求を受け付けた旨を通知する。設定受付部72は、当該操作領域設定要求を受け付けると、ホームポジション設定モードに移行する。ホームポジション設定モードとは、ホームポジションの設定を行うモードである。
なお、設定受付部72は、ユーザ1による設定要求を示す操作を受け付ける代わりに、ヘッドマウントディスプレイ100の電源が投入された際に、操作領域が設定されていない場合に、設定要求を自装置の制御部(例えば、主制御部101)から操作領域設定要求を受け付けるようにしてもよい。
また、設定受付部72は、ユーザ1による使用指示を示す操作に応じて、操作領域使用要求を受け付ける部分である。設定受付部72は、当該操作領域使用要求を受け付けると、位置特定部73、撮像部74および検出部75へ当該操作領域使用要求を受け付けた旨を通知する。設定受付部72は、当該操作領域使用要求を受け付けると、ホームポジション使用モードに移行する。ホームポジション使用モードとは、ホームポジションの使用(表示)を行うモードである。
位置特定部73は、ヘッドマウントディスプレイ100の位置および方向(指向方向)を特定する部分である。位置特定部73は、例えば、センサ部150により実現される。位置特定部73は、上記操作領域設定要求を受け付けた旨または、操作領域使用要求を受け付けた旨を設定受付部72から受信すると、ヘッドマウントディスプレイ100の位置および方向を特定する。位置特定部73は、ヘッドマウントディスプレイ100の位置および方向を特定し、特定した位置および方向を設定部76へ送出する。また、位置特定部73は、ホームポジション使用モードの場合、特定した位置および方向をアプリ制御部77へ送出する。
撮像部74は、ヘッドマウントディスプレイ100を装着したユーザ1の部位を撮像する部分である。撮像部74は、第1撮像部133や第2撮像部134等により実現される。撮像部74は、設定受付部72から操作領域設定要求を受け付けた旨の通知または操作領域使用要求を受け付けた旨を受信すると、撮像した結果を検出部75へ送出する。撮像部74は、例えば、上述の視認領域を含む箇所を撮像したり、ユーザ1の目周辺を撮像したりする。撮像部74は、撮像した結果を検出部75へ送出する。
検出部75は、撮像部74により撮像された画像に基づいて、ユーザ1が示す位置を検出する部分である。検出部75は、設定受付部72から操作領域設定要求を受け付けた旨の通知または操作領域使用要求を受け付けた旨を受信し、撮像部74から撮像した結果を受信すると、ユーザ1が示す位置を検出する。
検出部75は、撮像部74から撮像した結果として、視認領域を含む箇所の画像を取得した場合、当該画像を公知の画像解析処理をして、当該視認領域中に含まれている指の動きを特定する。すなわち、検出部75は、ユーザ1のジェスチャを検出し、当該ジェスチャに基づく位置を特定する。
例えば、検出部75は、撮像部74から撮像した結果から、ユーザ1により領域を示すジェスチャを検出して、当該検出した結果により示される領域を特定する。検出部75は、ユーザ1の指の動作を検出し、当該指の動作に基づく領域(操作領域)の位置を特定する。検出部75は、当該領域の位置を示す情報を設定部76へ送出する。当該領域の位置を示す情報は、例えば、指により指定された位置に基づいた情報である。
また、検出部75は、撮像部74から撮像した結果として、ユーザ1の目周辺を撮像した画像を取得した場合、当該画像を公知の画像解析処理をして、ユーザ1の視線の先の位置を検出する。例えば、検出部75は、当該ユーザ1の視線の先の位置として、透過表示部131上の視線の先の位置を検出する。この場合、検出部75は、操作領域に関する情報として、当該位置を示す情報を設定部76へ送出する。
設定部76は、検出部75により検出された結果と、位置特定部73により特定された位置とに基づいて、記憶部71に記憶されているアプリケーションを操作させるための領域である操作領域(ホームポジション)に関する情報(例えば、当該操作領域に関する位置)を設定する部分である。
設定部76は、位置特定部73により特定された位置および方向と、検出部75により検出された結果により示される領域を示す情報とを取得した場合、当該領域を示す情報と、当該位置特定部73により特定された位置および方向とを記憶部71へ設定する。
設定部76は、位置特定部73により特定された位置および方向と、検出部75により検出された結果により視線の先の位置または指の動作に基づく領域の位置に基づいて定められる領域の情報とを記憶部71に設定する。
また、設定部76は、検出部75により検出された結果に基づく位置に対応するモニタを特定した場合、当該モニタの位置を操作領域の位置に設定するようにしてもよい。例えば、設定部76は、検出部75により検出された位置に対応する画像を撮像部74から取得し、予め記憶しているモニタのテンプレートと当該画像とを比較して、モニタを検出した場合、当該モニタの識別情報を操作領域に関する情報として設定する。
アプリ制御部77は、ユーザ1による操作要求に応じて、記憶部71に記憶されているアプリケーションを透過表示部131の操作領域に表示させる部分である。アプリ制御部77は、ユーザ1による操作要求により、所定のアプリケーションの編集操作要求がなされた場合、当該アプリケーションを操作領域に表示すると共に、当該アプリケーションを編集可能な状態とする。
また、アプリ制御部77は、既にホームポジションに関する情報が記憶部71に記憶されている場合、位置特定部73から、ヘッドマウントディスプレイ100の位置、方向を適宜取得し、当該位置および方向に基づいて、ホームポジションが視認領域に含まれるか否かを判断する。アプリ制御部77は、ホームポジションが視認領域に含まれると判断すると、当該ホームポジションの領域を透過表示部131へ出力する。
また、アプリ制御部77は、既に操作領域に関する情報が設定されている場合(操作領域に関する情報が設定済みである場合)に、当該位置に対応するモニタを特定した場合、当該モニタを新たな操作領域の位置に設定し直す。
また、アプリ制御部77は、アプリケーションの表示位置を記憶しており、当該表示位置に基づいて、アプリケーションを表示する。当該表示位置は、ユーザの位置・向き等により定められる位置である。なお、記憶部71が、アプリケーションの表示位置を記憶してもよい。
<ホームポジションの設定>
続いて、図5を用いてホームポジションの設定方法を説明する。図5は、ホームポジションの設定方法を説明する図である。前提として、操作入力部120が受け付けた操作に基づいて、ホームポジションの設定モードとなっているものとする。
上記のようにホームポジションの設定モードとなると、撮像部74は、図5(a)に示す視認領域を所定期間撮像して、図5(a)に示すようなユーザ1の指を撮像する。例えば、検出部75は、矩形領域の上部中央部分から、矩形領域の下部中央部分までの指の軌跡を検出する。
すなわち、検出部75は、撮像部74により撮像された結果を用いて図5(a)に示すような指の動き(ジェスチャ)を検出し、当該指の動きに基づいてユーザ1による指定領域(矩形領域)を特定し、ホームポジションとして設定する。さらに、検出部75は、視認領域と、透過表示部131の領域との差異に基づいて、ホームポジションの基準位置を決定する。
例えば、検出部75は、視認領域中における位置関係と、視認領域と透過表示部131の領域との大きさの違いに基づいて、透過表示部131におけるホームポジションの基準位置を決定する。ここで、上記基準位置の決定方法について、図5(b)を用いて説明する。図5(b)は、透過表示部131における表示領域を示す。
また、検出部75は、高さVと、距離VUと、距離VPと、距離VLとの比率を算出する。高さVは、透過表示部131の高さである。距離VUは、透過表示部131の上部からホームポジションの上部までの距離である。距離VPは、ホームポジションの上部からホームポジション下部までの距離である。距離VLは、ホームポジション下部から透過表示部131の下部までの距離である。
また、検出部75は、透過表示部131の幅H、透過表示部131の左部からホームポジションの左部までの距離HL、ホームポジションの左部からホームポジション右部までの距離HP、ホームポジション右部から透過表示部131の右部までの距離HRの比率を算出する。
検出部75は、ヘッドマウントディスプレイ100から指の位置までの距離を算出し、当該距離、および上述の算出した比率に基づいて基準位置Pを定める。この基準位置Pは、透過表示部131中で表示する位置を示し、位置特定部73により特定された現在位置および指向方向を組み合わせることにより、ホームポジションの外界での絶対位置を定めることができる。基本は、ここで求めた外界での絶対位置がホームポジションであるが、変形例として、図5(b)で示した視認領域内の特定位置をホームポジションとして設定してもよい。この変形例の場合は、常にホームポジションを視認することができる。
なお、検出部75は、上記のように比率を考慮せずに、指定された領域のまま位置を特定するようにしてもよい。
図5(a)では、ホームポジションの上部中央部分から、ホームポジションの下部中央部分までを指でなぞる場合の例を上げたが、他の方法によって、ホームポジションを指定してもよい。ここで、図6を用いて、ホームポジションの他の指定方法を説明する。図6は、ホームポジションの他の指定方法を説明する図である。例えば、図6(a)に示すように、ホームポジションの右上部から左下部へホームポジションの領域に沿って指定するようにしてもよい。また、図6(b)に示すように、ホームポジションの右上部から左下部をホームポジションの領域の対角線に沿って指定するようにしてもよい。
また、検出部75は、撮像結果に基づいて、ヘッドマウントディスプレイ100からホームポジションの基準位置までの距離を算出する。図7(a)および図7(b)を用いて、ヘッドマウントディスプレイ100からホームポジションまでの距離を算出する方法を説明する。図7は、ヘッドマウントディスプレイ100からホームポジションまでの距離を算出する方法を説明する図である。図7(a)は、ユーザ1がヘッドマウントディスプレイ100を装着した状態におけるヘッドマウントディスプレイ100の上面図であり、水平角を示す図である。図7(b)は、ヘッドマウントディスプレイ100の側面図であり、仰俯角を示す図である。
具体的に、検出部75は、撮像した画像の指の位置に基づいて図7(a)に示すヘッドマウントディスプレイ100の指向方向に対するホームポジションARの基準位置の水平角αを算出する。また、検出部75は、撮像した画像の指の位置に基づいて図7(b)に示すヘッドマウントディスプレイ100の指向方向に対するホームポジション基準位置の仰俯角βを算出する。
検出部75は、撮像範囲の中央部分までの距離と、上記水平角αと、仰俯角βとに基づいてホームポジションARの基準位置までの距離Lを算出する。
なお、検出部75は、ヘッドマウントディスプレイ100からホームポジションARの基準位置までの距離と、ホームポジションARの幅と高さと、ホームポジションARの基準位置とを設定部76へ送出する。これに応じて、設定部76は、ヘッドマウントディスプレイ100からホームポジションARの基準位置までの距離Lと、ホームポジションの幅と、ホームポジションの高さと、ホームポジションの基準位置Pとをホームポジションに関する情報として、記憶部71へ記憶する。なお、ホームポジションの基準位置Pの絶対座標は位置特定部73が取得したヘッドマウントディスプレイ100の位置、指向方向、上記水平角α、仰俯角β、および距離Lから算出可能であることは言うまでもない。
ここで、図8を用いて、ホームポジションARを設定する手順を説明する。図8は、ホームポジションARを設定する処理手順を示すフローチャートである。まず、設定受付部72が、ユーザ1による設定要求を示す操作に応じて、操作領域設定要求を受け付けると、ホームポジション設定モードとする(ステップS1:Yes)。なお、設定受付部72が、操作領域設定要求を受け付けていない場合(ステップS1:No)、処理を終了する。
設定受付部72が、操作領域設定要求を受け付けると、位置特定部73、撮像部74および検出部75へ当該操作領域設定要求を受け付けた旨を通知する。撮像部74は、これに応じて、撮像動作を開始し(有効化)、撮像結果を検出部75へ送出する(ステップS2)。
位置特定部73は、GPS受信部151等により、ヘッドマウントディスプレイ100の現在位置を取得する(ステップS3)。また、位置特定部73は、地磁気センサ153等により指向方向(ヘッドマウントディスプレイ100の向いている方向)を取得する(ステップS4)。また、検出部75は、撮像部74から撮像結果を取得し、当該撮像結果に基づいて、ユーザ1の動きを特定し、当該撮像結果に基づいてユーザ1の指までの距離を算出する(ステップS5)。また、検出部75は、上記撮像結果に基づいてホームポジションの高さ・幅を特定する(ステップS6)。また、検出部75は、ユーザ1の指までの距離に基づいて基準位置Pを算出する。検出部75は、ヘッドマウントディスプレイ100からホームポジションARの基準位置までの距離Lと、ホームポジションの幅と、ホームポジションの高さと、ホームポジションの基準位置Pとを設定部76へ送出する(ステップS7)。
設定部76は、上記基準位置PおよびホームポジションARの高さ・幅を取得すると、ホームポジションARの確認メッセージを透過表示部131へ表示して、設定確認する(ステップS8)。
ユーザ1による操作入力により、設定承認を示す入力がなされると(ステップS8:Yes)、設定部76は、距離Lと、ホームポジションARの高さ・幅と、基準位置Pと、を記憶部71へ設定する。また、設定部76は、位置特定部73により特定された現在位置および指向方向もホームポジションARに関する情報として、記憶部71へ設定する(ステップS9)。
また、設定部76は、撮像部74へ設定完了の旨を通知し、撮像部74は、撮像状態をオフ(無効化)にする(ステップS10)。また、設定部76は、ホームポジション設定モードを解除する。なお、ステップS8において、ユーザ1による操作入力により、設定否認を示す入力がなされると(ステップS8:No)、ステップS3へ移動する。
続いて、ユーザ1移動時のホームポジションARの表示例を図9および図10を用いて説明する。まず、図9を用いて、ユーザ1が装着したヘッドマウントディスプレイ100において、ホームポジションARを設定するまでを説明する。図9は、ユーザ1が装着したヘッドマウントディスプレイ100において、ホームポジションARを設定するまでの状態を説明するための図である。
図9(a)は、ユーザ1の部屋の見取り図である。図9(a)に示すように、ユーザ1の部屋には、ベッド600と、机601と、椅子602と、書棚603と、TV台604と、TV605と、を含むものとする。
図9(b)は、ユーザ1が椅子602に座った状態を示す図である。ヘッドマウントディスプレイ100を装着したユーザ1は、椅子602に着席した状態で、操作入力部120を操作し、ヘッドマウントディスプレイ100は、これに応じてホームポジションARに関する情報を設定する。
続いて、図10を用いてホームポジションの表示制御について説明する。図10は、ホームポジションARの表示制御について説明するための図である。図10(a)は、ユーザ1がホームポジションとは異なる場所を見ている(ヘッドマウントディスプレイ100がホームポジションとは異なる方向を向いている)例を示す図である。図10(a)に示すように、ヘッドマウントディスプレイ100の方向(視認領域)に基準位置Pが無い場合、ヘッドマウントディスプレイ100は、ホームポジションARを表示しない。
また、図10(b)は、ヘッドマウントディスプレイ100がホームポジションARの方向を向いている(即ち、視認領域に基準位置Pがある)例を示す。図10(b)に示すように、ヘッドマウントディスプレイ100が、ホームポジションARの方向を向いた場合、視認領域に基準位置Pが含まれるので、ヘッドマウントディスプレイ100は、ホームポジションARを表示する。この時のホームポジションの表示態様は、設定時の向きを保ったままでもよいし、ユーザ1の方向に向きを変えてもよい。
続いて、図11を用いて、ホームポジションARの表示制御をする処理手順を説明する。図11は、ホームポジションARの表示制御をする処理を示すフローチャートである。ユーザ1の操作入力により、ホームポジション使用モードが指定されている場合(ステップS11:Yes)、アプリ制御部77は、記憶部71に記憶されているホームポジションARに関する情報(現在位置、指向方向、距離L、ホームポジションの幅、高さ、基準位置P)を取得する(ステップS12)。
続いて、アプリ制御部77は、位置特定部73から現在位置情報を取得する(ステップS13)。また、アプリ制御部77は、位置特定部73から指向方向を取得する(ステップS14)。
アプリ制御部77は、記憶部71に記憶されているホームポジションARに関する情報と、位置特定部73により特定された現在位置情報および指向方向とを比較する。アプリ制御部77は、当該比較した結果、ホームポジションの基準位置Pが視認領域内であり(ステップS15:Yes)、且つヘッドマウントディスプレイ100からホームポジションの基準位置Pまでの距離が所定値以内である場合(ステップS16:Yes)、ホームポジションを透過表示部131に表示する(ステップS17)。なお、ステップS15の条件に合致しない場合(ステップS15:No)またはステップS16の条件に合致しない場合(ステップS16:No)、ステップS18へ進む。
<ホームポジションへのアプリケーション移動>
続いて、図12~図17を用いて、ヘッドマウントディスプレイ100が表示しているアプリケーションをホームポジションへ移動させる方法について説明する。
まず、図12を用いて、ホームポジションを設定した時のホームポジションの表示例を説明する。図12は、ホームポジションを設定した時のホームポジションの表示例を説明するための図である。図12(a)は、ユーザ1が椅子602に座った状態を示す図である。この状態で、ヘッドマウントディスプレイ100が、ユーザ1からの操作要求に応じてホームポジションを設定する。
図12(b)は、この状態において、ヘッドマウントディスプレイ100の透過表示部131に表示される画像の例である。図12(b)に示すように、ヘッドマウントディスプレイ100は、アプリAP1(アプリA)、アプリAP2(アプリB)を表示すると共に、ホームポジションを透過表示部131に表示する。
続いて、図13に、ヘッドマウントディスプレイ100が、ホームポジションとは異なる方向を向いている場合の例を示す。図13(a)は、ヘッドマウントディスプレイ100が、ホームポジションとは異なる方向を向いている例である。図13(b)は、図13(a)の状態において、ヘッドマウントディスプレイ100の透過表示部131に表示される画像の例を示す図である。
図13(b)に示すように、ヘッドマウントディスプレイ100は、ホームポジションを表示せずに、当該方向に割り当てられているアプリAP3(アプリC)、アプリAP4(アプリD)、アプリAP5(アプリE)、アプリAP6(アプリF)を透過表示部131に表示する。
続いて、図14に、ヘッドマウントディスプレイ100が、アプリをホームポジションへ移動させる例を示す。図14に示すように、図13(b)の状態において、ユーザ1による操作入力により、アプリAP5が選択されると、メニューを表示する。このメニューにおいて、「呼ぶ」が選択されるものとする。この「呼ぶ」とは、ホームポジションに呼び出すことを示すメニューである。
メニューにおいて、「呼ぶ」が選択された後の状態について、図15を用いて説明する。図15(a)に示すように、図13(a)と同様に、ユーザ1が向いている方向は、変わっていない。図15(b)は、メニュー選択後の透過表示部131の表示状態を示す図である。図15(b)に示すように、選択されて、「呼ぶ」が指定されたアプリAP5は、ホームポジションへ移動しているため、表示対象から外れる。この場合、アプリ制御部77は、当該アプリAP5の移動前の位置および移動後の位置を記憶しておく。なお、アプリAP5が呼ばれた後、ヘッドマウントディスプレイ100は、移動前のアプリAP5の箇所を、移動前よりも薄い色で表示するようにしてもよい。これにより、ユーザ1は、移動前のアプリAP5の位置を視認することができ、この移動前のアプリAP5の領域でアプリの表示位置を調整する際の参考にすることができる。
続いて、ユーザ1がホームポジションの位置する方向を向いた場合について図16を用いて説明する。図16(a)は、ユーザ1が姿勢を変えて、視認領域内にホームポジションが含まれる方向にヘッドマウントディスプレイ100が向いている状態である。
図16(b)は、上記の状態における、ヘッドマウントディスプレイ100の透過表示部131に表示される画像の例を示す図である。図16(b)に示すように、アプリ制御部77は、ホームポジションARの位置に、アプリAP5を配置して表示する。また、アプリ制御部77は、ユーザ1の入力操作により、アプリAP5に対するメニュー表示要求を受け付けた場合に、メニューを表示し、「戻る」が選択されると、アプリAP5を表示対象から外す。
続いて、再度ユーザ1が左方向を向いた場合について図17を用いて説明する。図17(a)は、ユーザ1が姿勢を変えて、左方向にヘッドマウントディスプレイ100が向いている状態である。図17(b)は、上記の状態における、ヘッドマウントディスプレイ100の透過表示部131に表示される画像の例を示す図である。
図17(b)に示すように、アプリ制御部77は、アプリAP5について「戻る」メニューが選択されたことにより、アプリAP5を元の位置に戻して表示している。
続いて、アプリケーションの表示制御の処理手順について、図18を用いて説明する。図18は、アプリケーションの表示制御の処理手順を示すフローチャートである。まず、ホームポジション使用モードである場合(ステップS21:Yes)、位置特定部73がヘッドマウントディスプレイ100の現在位置を取得する(ステップS22)。また、位置特定部73は、指向方向を取得する(ステップS23)。アプリ制御部77は、位置特定部73から上記現在位置と指向方向とを取得し、記憶しているアプリケーションの表示位置に基づいて、現在位置および指向方向に応じたアプリケーションを表示する(ステップS24)。
アプリ制御部77は、何れかのアプリケーションが選択されたことを検出した場合(ステップS25:Yes)、メニューを表示する(ステップS26)。アプリ制御部77は、選択されたコマンドを特定する(ステップS27)。アプリ制御部77は、特定したコマンドが「戻す」であれば、選択されたアプリを元の位置に移動させて(ステップS29)、ステップS30へ進む。また、アプリ制御部77は、特定したコマンドが「呼ぶ」であれば、選択されたアプリをホームポジションへ移動させて(ステップS28)、ステップS30へ進む。また、アプリ制御部77は、「呼ぶ」「戻す」以外のメニューが選択された場合、何もせずにステップS30へ進む。ステップS30において、ホームポジション使用モードの終了を示す指示がなされていない場合(ステップS30:No)、ステップS22へ進む。また、ステップS30において、ホームポジションの終了を示す指示がなされている場合(ステップS30:Yes)、処理を終了する。
<モニタとのリンク処理>
続いて、ホームポジションARの位置にモニタがある場合に、当該モニタをホームポジションARとするようにリンクする例を説明する。まず、ホームポジションARを設定する例を説明する。図19(a)は、ユーザ1が椅子602に座った状態を示す図である。ヘッドマウントディスプレイ100を装着したユーザ1は、椅子602に着席した状態で、操作入力部120を操作し、これに応じてホームポジションARを設定する。図19(b)は、上記の状態における、ヘッドマウントディスプレイ100の透過表示部131に表示される画像の例を示す図である。図19(b)に示すように、アプリ制御部77は、透過表示部131にホームポジションARを表示する。
続いて、ホームポジションARの位置にモニタ700が配置された場合に、当該モニタ700をホームポジションARとして設定し直す例について、図20を用いて説明する。
図20(a)は、ユーザ1が椅子602に座った状態において、ユーザ1の前にモニタが配置されている例を示す図である。
このような状態において、アプリ制御部77は、ホームポジションの範囲にモニタが配置されているか否かを判断する。例えば、アプリ制御部77は、撮像部74による撮像結果と、予め記憶しているモニタのテンプレートとを比較してモニタが存在するか否かを判断する。
アプリ制御部77は、モニタが存在すると判断した場合、当該モニタと接続するか否かを問い合わせるメッセージを透過表示部131に表示する。モニタと接続する旨、ユーザ1の操作入力がなされると、アプリ制御部77は、モニタに対して近距離無線通信して、当該モニタと情報の送受信が可能である状態にすると、当該モニタの識別情報を取得し、当該モニタの識別情報をホームポジションARに関する情報として追加する。このように、アプリ制御部77は、設定修正部として機能する。
そして、アプリ制御部77は、図20(b)に示すように、当該モニタをホームポジションARとして表示する。また、変形例として、視認領域にモニタ700が視認できる場合、そのモニタ700の画面を新たなホームポジションとして設定するという方法でもよい。その場合、必要に応じてモニタとリンクしていない元のホームポジション設定に戻せるようにしてもよい。
続いて、ホームポジションARをモニタへリンクさせる処理手順について、図21を用いて説明する。図21は、ホームポジションARをモニタ700へリンクさせる処理手順を示すフローチャートである。図21に示すステップS31~ステップS35については、図11に示したステップS11~ステップS15とそれぞれ同じであるので、説明を省略する。
ステップS36において、アプリ制御部77は、撮像部74による撮像結果と、予め記憶しているモニタ700のテンプレートとを比較して、ホームポジションの範囲に、モニタ700が存在するか否かを判断する(ステップS36)。ホームポジションARの範囲にモニタ700が存在する場合(ステップS36:Yes)、アプリ制御部77は、モニタ700とリンクするか否かを問い合わせるメッセージを出力する(ステップS37)。ユーザ操作により、リンク解除を示す指定がされた場合、モニタ700とのリンクを解除して(ステップS40)、ステップS41へ進む。なお、ホームポジションARの範囲にモニタ700が存在しない場合(ステップS36:No)、ステップS41へ進む。
ステップS37において、モニタとリンクする旨のユーザ操作がなされた場合(ステップS37:Yes)、リンク可能なモニタ700が複数ある場合、モニタ700の一覧を表示し、モニタ700の選択を受け付ける(ステップS38)。なお、モニタ700が1台のみの場合、ステップS38の処理を省略してもよい。アプリ制御部77は、選択されたモニタ700とリンクして(ホームポジションを当該モニタに再設定する)(ステップS39)、ステップS41へ進む。
ステップS41において、ホームポジション使用モードを終了する旨の指示がなされた場合(ステップS41:Yes)、処理を終了する。また、ステップS41において、ホームポジション使用モードを終了する旨の指示がなされていない場合(ステップS41:No)、ステップS33へ進む。
続いて、モニタ700をホームポジションとしている場合における、アプリケーションの表示制御の処理手順について、図22を用いて説明する。図22は、モニタ700をホームポジションARとしている場合における、アプリケーションの表示制御の処理手順を示すフローチャートである。なお、図22に示すステップS51~ステップS57、ステップS62については、図18に示したステップS21~ステップS27、ステップS30とそれぞれ同じであるので、説明を省略する。
ステップS57において、特定したコマンドが「戻す」であれば、モニタ700に表示させる対象がなくなるので、アプリ制御部77は、選択されたアプリのモニタ出力を終了し(ステップS60)、当該アプリを元の位置に移動させて(ステップS61)、ステップS62へ進む。
また、ステップS57において、特定したコマンドが「呼ぶ」であれば、アプリ制御部77は、選択されたアプリの表示を終了して(ステップS58)、当該アプリをホームポジションであるモニタ700へ表示させて(ステップS59)、ステップS62へ進む。また、アプリ制御部77は、「呼ぶ」「戻す」以外のメニューが選択された場合、何もせずにステップS62へ進む。
上述のように、ヘッドマウントディスプレイ100では、記憶部71が、アプリケーションを記憶する。撮像部74は、ユーザの部位を撮像し、位置特定部73が、ヘッドマウントディスプレイ100の位置および方向を特定する。検出部75は、撮像部74により撮像された画像に基づいて、ユーザ1の状態を検出し、設定部76は、検出部75により検出された結果と、位置特定部73により特定された位置および方向とに基づいて、ホームポジションを示す位置を設定する。
ヘッドマウントディスプレイ100は、ユーザの入力指定により、アプリケーションを操作する領域を設定するので、ユーザが操作しやすい位置でアプリケーションを操作させることができる。
具体的に、撮像部74は、ユーザ1の指を含む部分を撮像して、検出部75は、当該撮像結果により、ユーザ1のジェスチャを検出して、設定部76は、当該ジェスチャによる位置を用いてホームポジションに関する位置を設定する。この場合、ヘッドマウントディスプレイ100は、ユーザ1の指動作(ジェスチャ)結果に基づいてホームポジションに関する位置を設定するので、煩雑な操作入力ではなく、直感的で簡易な操作によりホームポジションを設定できる。
また、撮像部74が、ユーザ1の目周辺を撮像し、検出部75が、撮像部74による撮像結果を用いてユーザの視線を検出し、当該視線による位置を検出し、設定部76は、視線による位置を用いてホームポジションに関する位置を設定する。この場合も、ヘッドマウントディスプレイ100は、煩雑な操作入力ではなく、直感的で簡易な操作によりホームポジションを設定できる。
また、検出部75により検出された位置および位置特定部73により特定された位置に基づいた位置にモニタ700がある場合、設定部76は、当該モニタ700の位置をホームポジションARに関する位置に設定する。この場合、ヘッドマウントディスプレイ100は、ユーザ1のジェスチャなどによる直感的な操作により、モニタ700をホームポジションARとして設定することができる。
また、設定部76により、ホームポジションARに関する位置が設定されている場合に、アプリ制御部77は、当該位置に対応する位置に、モニタ700を新たに特定した場合、当該モニタの位置を新たにホームポジションとして設定し直す。これにより、ヘッドマウントディスプレイ100は、ホームポジションを設定した後に、ユーザ1による新たな位置指定を示す操作を必要とせずにモニタの位置をホームポジションに設定することができる。
また、アプリ制御部77は、所定の入力操作に応じて、記憶部71で記憶しているアプリケーションをホームポジションへ表示するように制御することで、ユーザが操作しやすい位置にアプリケーションを表示することができる。
上述の実施形態では、特に述べなかったが、複数のホームポジションを設定してもよい。また、この場合に、ヘッドマウントディスプレイ100の現在位置に基づいて、対象のホームポジションを決定するようにしてもよいし、ユーザ操作により指定されたホームポジションを優先するようにしてもよい。
位置特定部73は、緯度経度等の現在位置に基づいて位置を特定する場合について述べたが、他の種々の方法により位置を特定するようにしてもよい。例えば、基準となる物体(ランドマークとなる物体)に基づいた相対位置を特定するようにしてもよい。
上述の実施形態では、特に述べなかったが、コマンド指定(例えば、「呼ぶ」等)を音声入力により指定するようにしてもよい。
上述の実施形態では、ホームポジションに関する情報として、現在位置および指向方向以外に距離L、ホームポジションの幅、高さ、および基準位置Pを設定する場合について述べたが、距離L、ホームポジションの幅、高さについては、予め定められている値を保持しておき、現在位置および指向方向と、基準位置Pとを設定するようにしてもよい。
前述した本発明の機能等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、マイクロプロセッサユニット等がそれぞれの機能等を実現する動作プログラムを解釈して実行することによりソフトウェアで実現してもよい。ハードウェアとソフトウェアを併用してもよい。
また、図中に示した制御線や情報線は説明上必要と考えられるものを示しており、必ずしも製品上の全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
また、図中に示した制御線や情報線は説明上必要と考えられるものを示しており、必ずしも製品上の全ての制御線や情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
前記実施の形態は、以下の形態を含む 。
(付記1)
アプリケーションを記憶するヘッドマウントディスプレイであって、
前記ヘッドマウントディスプレイを装着したユーザの部位を撮像する撮像部と、
前記撮像部により撮像された画像に基づいて、前記ユーザが示す位置を検出する検出部と、
前記ヘッドマウントディスプレイの位置および方向を特定する位置特定部と、
前記検出部により検出された結果と、前記位置特定部により特定された位置および方向とに基づいて、前記アプリケーションを操作する領域である操作領域に関する情報を設定する設定部と、
を備える、
ヘッドマウントディスプレイ。
(付記2)
アプリケーションを記憶するヘッドマウントディスプレイで実行する設定方法であって、
ユーザの部位を撮像する撮像ステップと、
前記撮像ステップで撮像した画像に基づいて、前記ヘッドマウントディスプレイを装着したユーザが示す位置を検出する検出ステップと、
前記ヘッドマウントディスプレイの位置および方向を特定する位置特定ステップと、
前記検出ステップで検出した結果と、前記位置特定ステップで特定した位置および方向とに基づいて、前記アプリケーションを操作する領域である操作領域に関する情報を設定する設定ステップと、を含む、
設定方法。