(57)【要約】【課題】メニュー等、仮想的に表示された像に係る操作を違和感なく行うことを可能とする情報処理装置、情報処理装置の制御方法、及びプログラムを提供する。【解決手段】実空間のユーザの各指先の位置の情報を取得し、仮想空間内に設定された仮想的なオブジェクトと、ユーザの指との接触を判定する。上記仮想的なオブジェクトの、ユーザの指のうち、当該オブジェクトに接触していると判定される指の位置に対応する部分が当該指よりもユーザ側より奥側に位置するよう、仮想的なオブジェクトを部分的に変形した状態に設定し、当該形状が設定された仮想的なオブジェクトを、表示装置において仮想空間の画像として表示させる情報処理装置である。【選択図】図１
2020198108.tif 000002
【特許請求の範囲】
【請求項１】
ユーザに対し、仮想空間の画像を提示する表示装置に接続され、
実空間のユーザの各指先の位置の情報を取得する取得手段と、
仮想空間内に、仮想的なオブジェクトの位置及び画像を設定するオブジェクト設定手段と、
前記仮想空間内に設定された仮想的なオブジェクトと、ユーザの指との接触を判定する判定手段と、
前記仮想的なオブジェクトの、前記ユーザの指のうち、当該オブジェクトに接触していると判定される指の位置に対応する部分が当該指よりもユーザ側より奥側に位置するよう、前記仮想的なオブジェクトを部分的に変形した状態に設定する形状設定手段と、
を有し、
前記形状が設定された仮想的なオブジェクトを、前記表示装置において仮想空間の画像として表示させる情報処理装置。
【請求項２】
請求項１記載の情報処理装置であって、
前記オブジェクト設定手段は、前記ユーザの指のうち当該オブジェクトに接触していると判定される指よりも奥側に位置するよう、前記仮想的なオブジェクトの仮想空間上の位置を設定する情報処理装置。
【請求項３】
請求項１または２に記載の情報処理装置であって、
前記オブジェクト設定手段は、前記判定手段が、前記仮想的なオブジェクトとユーザのいずれかの指とが接触していると判定したときと、いずれの指も接触していないと判定したときとで、前記仮想的なオブジェクトの表示態様が互いに異なるよう、前記仮想的なオブジェクトを設定する情報処理装置。
【請求項４】
請求項１から３のいずれか一項に記載の情報処理装置であって、
前記オブジェクト設定手段は、前記ユーザの指示により、当該ユーザの実空間での所定部位の移動量に対応する仮想空間内での移動量だけ、前記仮想的なオブジェクトの位置を移動する移動モードの処理を行う情報処理装置。
【請求項５】
請求項１から４のいずれか一項に記載の情報処理装置であって、
前記オブジェクト設定手段は、前記ユーザの指示により、当該ユーザの実空間での所定部位の移動に関わらず、前記仮想的なオブジェクトの位置を移動させない空中モードの処理を行う情報処理装置。
【請求項６】
請求項１から５のいずれか一項に記載の情報処理装置であって、
実空間内の平面を認識する手段をさらに含み、
前記オブジェクト設定手段は、前記ユーザの指示により、前記仮想的なオブジェクトの位置を、前記平面に貼付された位置に設定する貼り付けモードの処理を行う情報処理装置。
【請求項７】
請求項４から６のいずれか一項に記載の情報処理装置であって、
前記オブジェクト設定手段は、前記移動モードを含む複数のモードでの処理を実行しており、各モードにおいて予め定められた操作が行われたときに、他のモードでの処理に切り替えて処理を行う情報処理装置。
【請求項８】
請求項１から７のいずれか一項に記載の情報処理装置であって、
前記取得手段はさらに、前記ユーザの各指が背を向けているか腹を向けているかを表す方向の情報を取得し、
前記形状設定手段は、前記仮想的なオブジェクトの、前記ユーザの指のうち、背を向けている指であって、当該オブジェクトに接触していると判定される指の位置に対応する部分が当該指よりもユーザ側より奥側に位置するよう、前記仮想的なオブジェクトを部分的に変形した状態に設定する情報処理装置。
【請求項９】
請求項８に記載の情報処理装置であって、
さらに、前記仮想的なオブジェクトの、前記ユーザの指のうち腹を向けている指に重ね合わせて、前記仮想的なオブジェクトを描画する情報処理装置。
【請求項１０】
ユーザに対し、仮想空間の画像を提示する表示装置に接続されたコンピュータを用い、
実空間のユーザの各指先の位置の情報を取得し、
仮想空間内に、仮想的なオブジェクトの位置及び画像を設定し、
前記仮想空間内に設定された仮想的なオブジェクトと、ユーザの指との接触を判定し、
前記仮想的なオブジェクトの、前記ユーザの指のうち、当該オブジェクトに接触していると判定される指の位置に対応する部分が当該指よりもユーザ側より奥側に位置するよう、前記仮想的なオブジェクトを部分的に変形した状態に設定して、
前記形状が設定された仮想的なオブジェクトを、前記表示装置において仮想空間の画像として表示させる情報処理装置の制御方法。
【請求項１１】
ユーザに対し、仮想空間の画像を提示する表示装置に接続されたコンピュータを、
実空間のユーザの各指先の位置の情報を取得する取得手段と、
仮想空間内に、仮想的なオブジェクトの位置及び画像を設定するオブジェクト設定手段と、
前記仮想空間内に設定された仮想的なオブジェクトと、ユーザの指との接触を判定する判定手段と、
前記仮想的なオブジェクトの、前記ユーザの指のうち、当該オブジェクトに接触していると判定される指の位置に対応する部分が当該指よりもユーザ側より奥側に位置するよう、前記仮想的なオブジェクトを部分的に変形した状態に設定する形状設定手段と、
前記形状が設定された仮想的なオブジェクトを、前記表示装置において仮想空間の画像として表示させる手段と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、ヘッドマウントディスプレイ等、ユーザの頭部に装着され、情報を表示するデバイスが普及している。こうしたデバイスのうちには、ユーザの左目と右目とに異なる位置から見た仮想的な像を提示して、立体的な画像をユーザに視認させるものがある。
【０００３】
またこのデバイスでは、ユーザに対して仮想的な像の一つとしてメニューを提示し、ユーザによる選択を受け入れることも行われる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のメニュー選択では、ユーザはゲームコントローラ等の物理的なボタンを備えたデバイスを別途用いて、メニューを選択する操作を行うこととしていた。また、デバイスの傾きや位置等を検出して、当該デバイスの傾きや移動方向、移動量に応じて仮想的な像として表示したカーソルを移動し、メニューの選択を行わせることも可能である。しかしながら、いずれの場合もユーザは表示されている仮想的なメニューオブジェクトを直接触れるような操作を行うことができず、違和感なく操作を行わせることができなかった。
【０００５】
本発明は上記実情に鑑みて為されたもので、メニュー等、仮想的に表示された像に係る操作を違和感なく行うことを可能とする情報処理装置、情報処理装置の制御方法、及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【０００６】
上記従来例の問題点を解決する本発明は、ユーザに対し、仮想空間の画像を提示する表示装置に接続された情報処理装置であって、実空間のユーザの各指先の位置の情報を取得する取得手段と、仮想空間内に、仮想的なオブジェクトの位置及び画像を設定するオブジェクト設定手段と、前記仮想空間内に設定された仮想的なオブジェクトと、ユーザの指との接触を判定する判定手段と、前記仮想的なオブジェクトの、前記ユーザの指のうち、当該オブジェクトに接触していると判定される指の位置に対応する部分が当該指よりもユーザ側より奥側に位置するよう、前記仮想的なオブジェクトを部分的に変形した状態に設定する形状設定手段と、を有し、前記形状が設定された仮想的なオブジェクトを、前記表示装置において仮想空間の画像として表示させることとしたものである。
【発明の効果】
【０００７】
本発明によると、メニュー等、仮想的に表示された像に係る操作を違和感なく行うことが可能となる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態に係る情報処理装置の構成例を表すブロック図である。
【図２】本発明の実施の形態に係る情報処理装置に接続される表示装置の例を表す構成ブロック図である。
【図３】本発明の実施の形態に係る情報処理装置の例を表す機能ブロック図である。
【図４】本発明の実施の形態に係る情報処理装置が用いる座標系の例を表す説明図である。
【図５】本発明の実施の形態に係る情報処理装置により設定される仮想的なオブジェクトの例を表す説明図である。
【図６】本発明の実施の形態に係る情報処理装置により表示される画像の例を表す説明図である。
【図７】本発明の実施の形態に係る情報処理装置が設定する仮想的なオブジェクトの別の例を表す説明図である。
【図８】本発明の実施の形態に係る情報処理装置が設定する仮想的なオブジェクトのさらに別の例を表す説明図である。
【発明を実施するための形態】
【０００９】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理装置１は、図１に例示するように、制御部１１と、記憶部１２と、通信部１３とを含んで構成される。またこの情報処理装置１は、ユーザが頭部に装着するヘッドマウントディスプレイ（ＨＭＤ）などの表示装置２との間で通信可能に接続されている。
【００１０】
この表示装置２は、装着しているユーザに対して実空間と、仮想空間の画像とを重ね合わせて（半透明合成した状態で）提示する、例えば透過型のＨＭＤであってもよいし、仮想空間の画像を表示する非透過型のＨＭＤであってもよい。この表示装置２の一例は、ユーザが頭部に装着して使用する表示デバイスであって、図２に例示するように、制御部２１と、通信部２２と、撮像部２３と、デプスカメラ２４と、表示部２５とを含む。ここでの例では表示装置２の制御部２１は、マイクロコンピュータ等のプログラム制御デバイスであって、内蔵する記憶部等の図示しないメモリ等に格納されたプログラムに従って動作し、情報処理装置１から通信部２２を介して入力される情報に応じた映像を表示部２５に表示させて、ユーザに閲覧させる。
【００１１】
通信部２２は、有線または無線にて情報処理装置１との間で通信可能に接続される。この通信部２２は、後に述べる撮像部２３が撮像した画像データやデプスカメラ２４が出力する深度情報を、情報処理装置１へ送出する。またこの通信部２２は、情報処理装置１から表示装置２宛に送信された情報を、制御部２１に出力する。
【００１２】
撮像部２３は、カメラ等であり、ユーザの前方（頭部前方）の所定視野内の実空間の画像を繰り返し撮像し、撮像して得た画像データを、通信部２２を介して情報処理装置１へ送出する。
【００１３】
デプスカメラ２４は、撮像部２３が撮像する視野内の画像に含まれる画素ごとに、当該画素内に撮像された対象物までの距離を検出し、当該検出した画素ごとの距離を表す深度情報（デプスマップ）を出力する。具体的にこのデプスカメラ２４は、赤外線を投射して対象物までの距離を測定する等の広く知られたデプスカメラを用いることができる。
【００１４】
表示部２５は、ユーザの右目と左目とのそれぞれの目の前に、それぞれの目に対応した映像を表示するものとする。この表示部２５は、有機ＥＬ表示パネルや液晶表示パネルなどの表示素子を含む。この表示素子が制御部２１から入力される指示に従って映像を表示する。この表示素子は、左目用の映像と右目用の映像とを一列に並べて表示する１つの表示素子であってもよいし、左目用の映像と右目用の映像とをそれぞれ独立に表示する一対の表示素子であってもよい。なお、本実施形態においてこの表示装置２は、ユーザが外界の様子を視認することができる透過型の表示装置である。
【００１５】
ここで制御部１１は、ＣＰＵ等のプログラム制御デバイスであり、記憶部１２に格納されているプログラムを実行する。本実施の形態では、この制御部１１は、ゲームアプリケーション等のアプリケーションプログラムを実行し、また、次の処理を実行する。
【００１６】
すなわち、この制御部１１は、表示装置２が出力する、撮像部２３で撮像された画像データに基づいて、実空間のユーザの各指先の位置と、各指の方向（各指がユーザ側に対して背を向けているか腹を向けているか）を検出し、これらを表す情報を取得する。
【００１７】
またこの制御部１１は、仮想空間の情報を設定する。具体的に制御部１１は、所定の仮想空間内に仮想的なオブジェクトの位置及び画像を設定し、当該仮想空間内に設定された仮想的なオブジェクトと、ユーザの指との接触を判定する。制御部１１はさらに、この仮想的なオブジェクトの、ユーザの指のうち背を向けている指であって、当該オブジェクトに接触していると判定される指の位置に対応する部分が当該指よりもユーザ側より奥側に位置するよう、仮想的なオブジェクトを部分的に変形した状態に設定する。
【００１８】
この制御部１１の詳しい動作については後に説明する。なお、以下の例では、ここで表示し、ユーザの指との接触を判定して変形する仮想的なオブジェクトを、他の仮想的なオブジェクト（例えば実空間のオブジェクトに対応して配置される仮想的なオブジェクトなど、ユーザとの指の接触を判定して変形しないもの）と区別するため、対象仮想オブジェクトと呼ぶ。
【００１９】
記憶部１２は、ＲＡＭ等のメモリデバイスやディスクデバイス等であり、制御部１１が実行するプログラムを格納する。また、この記憶部１２は制御部１１のワークメモリとしても動作し、制御部１１がプログラム実行の過程で使用するデータを格納する。このプログラムは、コンピュータ可読かつ非一時的な記録媒体に格納されて提供され、この記憶部１２に格納されたものであってもよい。
【００２０】
通信部１３は、有線または無線にてユーザの表示装置２との間で通信可能に接続される。この通信部１３は、表示装置２が出力する画像データを受信して、制御部１１へ送出する。またこの通信部１３は、制御部１１から表示装置２宛に送信する画像データを含む情報を受け入れて、当該情報を、表示装置２に出力する。
【００２１】
ここで情報処理装置１の制御部１１の動作について説明する。本実施の形態の制御部１１は、一例として図３に例示するように、指検出部３１と、オブジェクト設定部３２と、判定処理部３３と、オブジェクト制御部３４と、出力部３５と、処理制御部３６とを含んで構成される。
【００２２】
ここで指検出部３１は、実空間のユーザの各指先の位置及び向きの情報を取得する。一例として本実施の形態の指検出部３１は、表示装置２から受信した画像データや深度情報に基づき、当該画像データに撮像された対象物のうちから指位置を推定するとともに、ユーザから見て指が背側（爪の側）を向けているか腹側を向けているかを判断する。具体的に、この指検出部３１による、画像中からの指の位置の検出処理は、V.I.Pavlovic, et.al., “Visual interpretation of hand gestures for human-computer interaction: a review,” IEEE Transaction on Pattern Analysis and Machine Intelligence, Vol. 19, No.7, pp. 677-695, 1997に示される方法のほか、種々の広く知られた方法を採用できる。また本実施の形態では、情報処理装置１は、図４に例示するように、ユーザが直立しているときのユーザの冠状面（coronal plane）に平行な面内にあり、かつ床面に平行な軸をＸ軸（ユーザの右側を正の方向とする）、上記ユーザの冠状面に平行な面内にあって床面の法線に平行な軸をＹ軸（鉛直上方を正の方向とする）とし、上記ユーザの冠状面の法線方向をＺ軸（なお、ユーザの前方を正の方向とする）とした直交座標系を用いてこの実空間内の指の位置を表現するものとする。この座標系では、Ｚ軸に平行な座標（ｘ，ｙ，ζ）（ζは任意の値）上の各点が、ユーザの視野（二次元的な視野）のＸ，Ｙ直交座標系上の点Ｔ（ｘ，ｙ）上に視認されることとなる。
【００２３】
また指が背側（爪の側）を向けているか腹側を向けているかを判断する処理の例としては、指の爪部分を検出する処理（例えば、Noriaki Fujishima, et. al., “Fingernail Detection Method from Hand Images including Palm,” Proceedings of IAPR International Conference on Machine Vision Applications, pp. 117-120, 2013等に示された処理）を行い、検出された位置にある指のうち、対応する画像部分が爪と認識されていない指について指の腹側が向いていると判断し、対応する画像部分が爪と認識された指については、背側が向いていると判断することとすればよい。本実施の形態では、この指検出部３１が、本発明の取得手段を実現する。
【００２４】
オブジェクト設定部３２は、仮想空間内に、対象仮想オブジェクトの位置及び画像を設定する。本実施の形態の一例では、このオブジェクト設定部３２は、制御部１１がアプリケーションプログラムの実行中に、当該アプリケーションプログラムの処理に基づいて出力する指示に従い、シート状または、多面体の対象仮想オブジェクトを、仮想空間内に配する。またオブジェクト設定部３２は、上記指示に従い、当該対象仮想オブジェクトのユーザ側に表示される面に、アプリケーションプログラムの処理に基づいて指示された画像が表示されるよう設定する。具体的にこのアプリケーションプログラムに基づく指示は、ユーザインタフェース部品（仮想的なボタン等）の形状やボタン内に表示するべき文字列等、並びに、ボタンの配置位置等の情報を含む。オブジェクト設定部３２は、この指示に従って、ユーザインタフェースを表す画像を生成し、対象仮想オブジェクトの面に当該画像が表示された状態となるよう、対象仮想オブジェクト表面のテクスチャを設定する。このように対象仮想オブジェクトの表面に画像を設定する処理は広く知られているので、ここでの詳しい説明を省略する。
【００２５】
またこのオブジェクト設定部３２は、表面に画像を設定した対象仮想オブジェクトの仮想空間内の配置位置を設定する。本実施の形態では、情報処理装置１は、図４に例示した実空間の座標系と同様、ユーザが直立したときのユーザの冠状面に平行な面内にあり、かつ床面に平行な軸をＸ軸（ユーザの右側を正の方向とする）、上記ユーザの冠状面に平行な面内にあって床面の法線に平行な軸をＹ軸（鉛直上方を正の方向とする）、上記ユーザの冠状面の法線方向をＺ軸（なお、ユーザの前方を正の方向とする）とした直交座標系を用いて仮想空間を設定する。なお、実空間の座標値と仮想空間の座標値とを一致させるため、予め座標系のＸ軸方向の比率α，Ｙ軸方向の比率β，Ｚ軸方向の比率γを、キャリブレーションにより求めておく。一例として、仮想空間内の既知の座標に点を表示し、この点に指先で触れるようにユーザに指示し、ユーザが触れたとした時点で指検出部３１が検出した実空間での座標値を取得する処理を、仮想空間内の複数の座標の点について行い、仮想空間内の所定の、少なくとも一つの点のペア間の距離と実空間におけるそれぞれに対応する点のペア間の距離との比率を求めればよい。
【００２６】
オブジェクト設定部３２は、この座標系内の座標の値を用いて、対象仮想オブジェクト（図４：Ｖ）の位置や形状を設定するものとする。このような仮想的な三次元のオブジェクトの配置や形状の設定についても広く知られているので、ここでの詳しい説明を省略する。
【００２７】
判定処理部３３は、仮想空間内に設定された対象仮想オブジェクトと、ユーザの指との接触を判定する。本実施の形態における対象仮想オブジェクトとユーザの指との接触の判定は、ユーザが表示装置２を通じて視認する実空間のユーザ自身の指と、これに重ね合わせて表示されている仮想空間における対象仮想オブジェクトとの仮想的な接触の有無を判定するものである。具体的な例として、この判定処理部３３は、オブジェクト設定部３２が設定した仮想空間内の対象仮想オブジェクトの外形の領域を含む仮想的な三次元の領域を設定し、指検出部３１が検出した実空間での指の位置に対応する仮想空間内の座標値が、ここで設定した三次元の領域内にあるとき、対象仮想オブジェクトと、ユーザの指とが接触したと判定する。
【００２８】
オブジェクト制御部３４は、ユーザの指のうち背を向けている指であって、オブジェクト設定部３２が設定した対象仮想オブジェクトに接触しているとして、判定処理部３３が判定した指Ｆがあれば、当該対象仮想オブジェクトの、当該指Ｆに対応する部分が、当該指Ｆよりもユーザ側にあるか、奥側にあるかを判断する。オブジェクト制御部３４は、ここで当該対象仮想オブジェクトの、当該指Ｆに対応する部分が、当該指Ｆよりもユーザ側にあれば、当該部分が、指Ｆより奥側に位置するよう（当該部分が奥側に凹となるよう）、当該対象仮想オブジェクトを、部分的に変形した状態に設定する。
【００２９】
具体的な例として、図５に例示するように、オブジェクト設定部３２が対象仮想オブジェクトＪを、当該オブジェクトＪの面の法線がＺ軸に平行となるよう配置しているとする。なお、このオブジェクトはＺ＝Ｚｊの位置に配され、ＸＹ面内の形状は矩形状をなすものとし、そのユーザ側から見た左上隅の座標を（Ｘtl，Ｙtl）、右下隅の座標を（Ｘrb，Ｙrb）とする。また、厚さは実質的に「０」であるものとし、オブジェクトＪは実質的にシート状であるものとする。
【００３０】
判定処理部３３は、このオブジェクト設定部３２が設定した仮想空間内の仮想的なシート状のオブジェクトＪの外形の領域を含む仮想的な三次元の領域Ｒを設定する。一例としてこの領域Ｒは、（Ｘtl，Ｙtl，Ｚｊ−ΔＺ）と（Ｘrb，Ｙrb，Ｚｊ−ΔＺ）とを対角線とする矩形状の近位側面と、（Ｘtl，Ｙtl，Ｚｊ＋ΔＺ）と（Ｘrb，Ｙrb，Ｚｊ＋ΔＺ）とを対角線とする矩形状の遠位側面とで囲まれる六面体の領域とする。
【００３１】
ここでユーザの指Ｆの仮想空間内での対応する位置座標が（Ｘｆ，Ｙｆ，Ｚｆ）（Ｚ軸方向の値はデプスカメラ２４による深度情報から取得できる）であり、ユーザ側に背（爪側）を向けているとするとき、判定処理部３３は、このユーザ側に背（爪側）を向けていると判断される指Ｆの仮想空間内での対応する位置座標（Ｘｆ，Ｙｆ，Ｚｆ）が、上記設定した領域Ｒに含まれるか否かを調べる。
【００３２】
そして判定処理部３３が、指Ｆの仮想空間内での対応する位置座標（Ｘｆ，Ｙｆ，Ｚｆ）が、上記設定した領域Ｒに含まれないと判断している間は、オブジェクト制御部３４は処理を行わない。一方、判定処理部３３が、指Ｆの仮想空間内での対応する位置座標（Ｘｆ，Ｙｆ，Ｚｆ）が、上記設定した領域Ｒに含まれると判断したときには、当該指Ｆのユーザ側から見た位置座標（Ｘｆ，Ｙｆ）の位置にある仮想的なシート状のオブジェクトＪのＺ軸の値（ここではＸ，Ｙの座標値に関わらずＺｊとなっている）と、指Ｆの位置座標のＺ軸の値Ｚｆとを比較する。ここでＺｆ＞Ｚｊであれば、指Ｆが仮想的なシート状のオブジェクトＪよりも遠方にあることとなるので、この場合にオブジェクト制御部３４は、仮想的なシート状のオブジェクトＪの指Ｆが表示されるＸ，Ｙ面内の領域Ｒｆが、対応する指Ｆの位置よりも遠位側（ユーザに対して奥側）にあるように仮想的なシート状のオブジェクトＪを部分的に変形する。この変形は例えば、地形マッピング（height map）を用いる公知の方法で行うことができるので、ここでの詳しい説明を省略する。
【００３３】
出力部３５は、オブジェクト設定部３２により設定された（さらに、条件によってはオブジェクト制御部３４により変形された）、仮想空間内のオブジェクトを、ユーザの目の位置（例えば表示装置２の撮像部２３の位置）に仮想的に配した仮想的なカメラからの像としてレンダリングし、表示装置２に対して当該レンダリングの結果として得られた画像データを送出する。
【００３４】
処理制御部３６は、対象仮想オブジェクトの面に表示された画像と、ユーザの指の位置の情報とに基づいて、予め定めた処理を実行する。具体的にこの処理制御部３６は、判定処理部３３が対象仮想オブジェクトに、背側を向けていると判断される指Ｆが接触していると判断している状態から、判定処理部３３が対象仮想オブジェクトに、背側を向けていると判断される指Ｆが接触していないと判断している状態となったときに、当該指Ｆの位置にある対象仮想オブジェクトの面に表示された画像部分にあるユーザインタフェース部品（仮想的なボタン等）が押下されたものとして、当該ユーザインタフェース部品について予め設定された処理（例えばプログラムの起動等）を実行する。
【００３５】
また本実施の形態では、処理制御部３６は、判定処理部３３が対象仮想オブジェクトに、背側を向けていると判断される指Ｆが接触していると判断している状態を維持したままユーザが指を移動する操作を行う場合、つまり、いわゆるスワイプや、ピンチイン・ピンチアウト（二以上の指が接触していると判断される状態で、当該指間の距離を変化させる操作が行われたとき）などの操作がなされたときには、奥側へ凹となる位置を当該移動後の指の位置に移動させつつ、スワイプ、ピンチイン・ピンチアウトの操作に応じて予めアプリケーションプログラム等によって指定された処理を実行する。
【００３６】
［動作］
本実施の形態の一例は以上の構成を備え、次のように動作する。すなわち本実施の形態の情報処理装置１は、例えばゲーム等のアプリケーションプログラムを実行しており、その実行中に、仮想空間内にメニュー（選択項目のインタフェース部品を配列した画像）を表示する処理を行う。
【００３７】
このとき本実施の形態の情報処理装置１は、アプリケーションプログラムの指示に従って、メニューのユーザインタフェースを表す画像を生成し、当該画像を、表面のテクスチャとして設定した仮想的なシート状のオブジェクト表面のテクスチャを生成する。
【００３８】
そして情報処理装置１は、例えば図４に例示したと同様の座標系において、図５に例示するように、仮想的なシート状のオブジェクトＪを、当該オブジェクトＪの面の法線がＺ軸に平行となるよう配置する。すなわち、オブジェクトＪをＺ＝Ｚｊの位置に配する。また、このオブジェクトＪのＸＹ面内の形状は矩形状をなす。そのユーザ側から見た左上隅の座標を（Ｘtl，Ｙtl）、右下隅の座標を（Ｘrb，Ｙrb）とする。また、Ｚ軸方向の厚さは実質的に「０」である。
【００３９】
情報処理装置１は、ここで仮想空間内のオブジェクトＪを、ユーザの目の位置（例えば表示装置２の撮像部２３の位置）に仮想的に配した仮想的なカメラからの像としてレンダリングし、表示装置２に対して当該レンダリングの結果として得られた画像データを送出する。
【００４０】
そして表示装置２は、このレンダリングの結果を、同じ方向の実空間の像に重ね合わせて（透過的に）表示する。これによりユーザは、図６に示すような画像を視認することとなる（Ｓ１）。
【００４１】
ここでユーザが仮想空間のＺ＝Ｚｊの位置にその人差し指Ｆが届くように手を伸ばすと、この手も実空間内の像としてユーザに視認される。この状態では、ユーザの人差し指Ｆはユーザ側にその背（爪側）を向けているとする。
【００４２】
この状態でユーザが、表示装置２により表示されているオブジェクトＪ上のボタンＢに当該指Ｆを伸ばすと、情報処理装置１は、実空間内でのユーザの指Ｆの位置（指Ｆの指先の位置）と、向き（ユーザに背側を向けているか腹側を向けているか）とを認識する。ここでは情報処理装置１は、指Ｆの向きが「背側」であると判断する。
【００４３】
そして情報処理装置１は、予め設定した、仮想的なシート状のオブジェクトＪの外形の領域を含む仮想的な三次元の領域Ｒ（この領域Ｒは、（Ｘtl，Ｙtl，Ｚｊ−ΔＺ）と（Ｘrb，Ｙrb，Ｚｊ−ΔＺ）とを対角線とする矩形状の近位側面と、（Ｘtl，Ｙtl，Ｚｊ＋ΔＺ）と（Ｘrb，Ｙrb，Ｚｊ＋ΔＺ）とを対角線とする矩形状の遠位側面とで囲まれる六面体の領域とする）内に、ユーザの指Ｆの指先の実空間内の位置に対応する仮想空間内の座標が含まれるか否かを調べる。
【００４４】
具体的に、ユーザの指Ｆの指先の実空間内の位置に対応する仮想空間内の座標が（Ｘｆ，Ｙｆ，Ｚｆ）であるとき、情報処理装置１は、
Ｘtl≦Ｘｆ≦Ｘrb、かつ、
Ｙtl≦Ｙｆ≦Ｙrb、かつ、
Ｚｊ−ΔＺ≦Ｚｆ≦Ｚｊ＋ΔＺ
の条件（接触条件と呼ぶ）を満足するか否かを判断する。
【００４５】
ここで背側となっている指Ｆの指先の座標が、上記接触条件を満足していると判断すると、情報処理装置１は、当該指Ｆのユーザ側から見た位置座標（Ｘｆ，Ｙｆ）の位置にある仮想的なシート状のオブジェクトＪのＺ軸の値（ここではＸ，Ｙの座標値に関わらずＺｊ）と、指Ｆの位置座標のＺ軸の値Ｚｆとを比較する。
【００４６】
ここでＺｆ＞Ｚｊであれば、指Ｆが仮想的なシート状のオブジェクトＪよりも遠方にあることとなるので、情報処理装置１は、仮想的なシート状のオブジェクトＪの指Ｆが表示されるＸ，Ｙ面内の領域Ｒｆが、対応する指Ｆの位置よりも遠位側（ユーザに対して奥側）にあるように仮想的なシート状のオブジェクトＪを部分的に変形する。すなわち、オブジェクトＪに、（Ｘｆ，Ｙｆ）の位置を中心として所定のＲ以下の半径ｒの位置上にあるオブジェクトＪの各点のＺ軸の値が、Ｚｊ＋ｚ0（Ｚｆ−Ｚｊ）・exp（−ｒ2／Ｒ2）となるように設定する。ここでｚ0は、経験的に定めた「１」以上の定数である。このようにすると、オブジェクトＪ上の（Ｘｆ，Ｙｆ）の位置を中心に所定の半径Ｒ以下の部分が、指Ｆの位置よりもユーザからみて奥側に押し込まれたように変形する（Ｓ２）。この変形の形状は、ここでは釣り鐘型の関数を用いたが、これに限られない。
【００４７】
情報処理装置１は、この処理の間、仮想空間内のオブジェクトＪを、ユーザの目の位置（例えば表示装置２の撮像部２３の位置）に仮想的に配した仮想的なカメラからの像としてレンダリングし、表示装置２に対して当該レンダリングの結果として得られた画像データを送出する。そして表示装置２は、このレンダリングの結果を、同じ方向の実空間の像に重ね合わせて（透過的に）表示する。
【００４８】
なお、このとき情報処理装置１は、仮想的なシート状のオブジェクトＪのユーザの手指と重なり合う部分については、マスクして描画しないよう制御してもよい。これによりユーザには、オブジェクトＪ上のボタン等のインタフェース部品が操作されていることを明示できるとともに、オブジェクトＪを指が突き抜けてしまうことによる不自然な描画がなされることがなくなる。
【００４９】
情報処理装置１は、さらに、ここから指Ｆの指先の座標が接触条件を満足しなくなったときの指Ｆの指先の（Ｘ，Ｙ）座標に対応する位置にある、オブジェクトＪ上のボタン等のインタフェース部品を識別する。そして当該識別されたインタフェース部品があれば、当該インタフェース部品についてユーザが操作したときに行うべき処理としてアプリケーションプログラム側で予め定められている処理を実行する。
【００５０】
［オブジェクトの位置を移動する例］
なお、ここまでの説明では、表示装置２が表示する対象仮想オブジェクトをユーザの指が突き抜けてしまわないよう、対象仮想オブジェクトの、指の位置に対応する部分を、ユーザの指の位置より遠方に位置することとなるように対象仮想オブジェクトの一部を変形することとしていたが、本実施の形態はこれに限られるものではない。
【００５１】
例えば、ユーザの指のうち背を向けている指であって、オブジェクト設定部３２が設定した対象仮想オブジェクトに接触しているとして、判定処理部３３が判定した指Ｆがあれば、オブジェクト制御部３４は、当該対象仮想オブジェクトの、当該指Ｆに対応する部分が、当該指Ｆよりもユーザ側にあるか、奥側にあるかを判断し、対象仮想オブジェクトの、当該指Ｆに対応する部分が、当該指Ｆよりもユーザ側にあると判断されたときには、対象仮想オブジェクト全体の位置をＺ軸方向に平行移動して、指Ｆよりも遠方に当該対象仮想オブジェクトの、当該指Ｆに対応する部分が、当該指Ｆよりも奥側にあるように設定してもよい。
【００５２】
さらに本実施の形態の一例では、情報処理装置１は、背側となっている指Ｆの指先の座標が、上記接触条件を満足していると判断したときの、当該指Ｆのユーザ側から見た位置座標（Ｘｆ，Ｙｆ）の位置にある対象仮想オブジェクトＪのＺ軸の値（Ｚｊ（Ｘｆ，Ｙｆ）とする）と、指Ｆの位置座標のＺ軸の値Ｚｆとを比較し、
Ｚth＞Ｚｆ−Ｚｊ（Ｘｆ，Ｙｆ）＞０
であれば、対象仮想オブジェクトの、指の位置に対応する部分を、ユーザの指の位置より遠方に位置することとなるように対象仮想オブジェクトの一部を変形し、
Ｚｆ−Ｚｊ（Ｘｆ，Ｙｆ）≧Ｚth
であれば、対象仮想オブジェクト全体の位置をＺ軸方向に平行移動して、指Ｆよりも遠方に当該対象仮想オブジェクトの、当該指Ｆに対応する部分が、当該指Ｆよりも奥側にあるように設定することとしてもよい。なお、ここでＺthは予め設定されたしきい値（Ｚth＞０とする）である。
【００５３】
この例では、ユーザの指がオブジェクトＪの元のＺ軸上の位置よりＺth未満だけ奥にある間はオブジェクトＪの一部が変形して部分的に押し込まれたかのように表示され、さらに続けてＺthを超えて奥へ指を移動すると、オブジェクトＪ全体が移動してオブジェクトＪのＺ軸方向の移動操作を行うことが可能となる。このようにオブジェクトＪ全体を移動した場合は、情報処理装置１は、その後、ユーザの指先の座標が接触条件を満足しなくなったときにも、対応する位置にあるインタフェース部品についての操作を実行しないこととしてもよい。
【００５４】
［オブジェクトのマスク］
また本実施の形態において、情報処理装置１は、表示装置２が出力する深度情報を参照し、対象仮想オブジェクトＪ上の点（ｘ，ｙ，Ｚｊ（ｘ，ｙ））よりも手前側にユーザの手指がある場合、つまり、視野内の点（ｘ，ｙ）における深度情報が表す実空間での対象物までのＺ軸上の距離に対応する仮想空間上のＺ軸の値Ｚｖが、Ｚｊ（ｘ，ｙ）＞Ｚｖであるときには、オブジェクトＪの（ｘ，ｙ）の位置における画像をマスクして描画しないこととしてもよい。これにより、手前側にある対象物によりオブジェクトが隠蔽された状態を表現できる。
【００５５】
［腹側向きの指］
また本実施の形態の情報処理装置１は、腹側（爪とは反対側）を向いたユーザの指Ｆが、対象仮想オブジェクトＪ上の点（ｘ，ｙ，Ｚｊ（ｘ，ｙ））よりも奥側である場合、つまり当該指Ｆの指先の位置のＺ軸方向の成分Ｚｆが、Ｚｆ＞Ｚｊ（ｘ，ｙ）である場合は、当該ユーザの指Ｆに対応する位置のオブジェクトＪの描画をマスクしないよう制御してもよい。この場合、当該腹側がユーザに向いているユーザ自身の指の像には、表示装置２により、オブジェクトＪの対応部分が半透明合成されてユーザに提示されることとなる。
【００５６】
なお、この処理において、指Ｆの指先の位置のＺ軸方向の成分Ｚｆが、Ｚｆ＞Ｚｊ（ｘ，ｙ）であるか否かを判断する際の対象仮想オブジェクトＪ上の点（ｘ，ｙ，Ｚｊ（ｘ，ｙ））は、他の、背を向けている指の位置に応じて対象仮想オブジェクトＪが部分的に変形して表示されている場合であっても、変形前の座標値を用いることとしてもよい。
【００５７】
［複数の指の認識］
さらに本実施の形態では、情報処理装置１は、ユーザの複数の指の位置及び向きをそれぞれ認識する。さらに、本実施の形態の情報処理装置１は、ユーザの左右のそれぞれの手の指の位置及び向き（ユーザに背側を向けているか腹側を向けているか）の情報を取得してもよい。
【００５８】
この例の情報処理装置１は、ユーザの左手の各指ＦＬ１からＦＬ５について、その実空間上の位置に対応する仮想空間のＸＹＺ座標系での座標値と、それぞれの指の向きの情報とを逐次取得している。また情報処理装置１は同様に、ユーザの右手の各指ＦＲ１からＦＲ５についても、その実空間上の位置に対応する仮想空間のＸＹＺ座標系での座標値と、それぞれの指の向きの情報とを逐次取得している。そして情報処理装置１は、各指について対象仮想オブジェクトと接触しているか否かを判断する。
【００５９】
また情報処理装置１は、例えば、腹側を向けていると判断される第１の指Ｆ１と、背側を向けていると判断される第２の指Ｆ２とがいずれも対象仮想オブジェクトと接触しており、かつ、指Ｆ１の指先の仮想空間のＸＹＺ座標系での座標値（ｘ１，ｙ１，ｚ１）と、指Ｆ２の指先の仮想空間のＸＹＺ座標系での座標値（ｘ２，ｙ２，ｚ２）との距離が予め定めたしきい値を下回っているとき（このとき、対象仮想オブジェクトの背側を向けている指Ｆ２に対応する部分は、当該指Ｆ２よりも奥側になるよう変形されるが、腹側を向いている指Ｆ１とのＺ軸方向の位置比較では変形前の座標値で比較が行われるので、指Ｆ１に対しては半透明合成されて描画された状態にある）には、情報処理装置１は、対象仮想オブジェクトが当該指Ｆ１，Ｆ２の位置（（ｘ１，ｙ１）と（ｘ２，ｙ２）とを含む所定範囲、例えばこれらを含む最小の円の範囲）でこれらの指で仮想的に挟まれていると判断して、所定の処理を実行してもよい。
【００６０】
例えば、仮想的に挟まれていると判断された状態で、指Ｆ１，Ｆ２をユーザが移動したときには、その移動量に応じて、対象仮想オブジェクト全体を、仮想空間内で平行移動してもよい。一例として、指Ｆ１が（ｘ１，ｙ１，ｚ１）から（ｘ１＋Δｘ１，ｙ１＋Δｙ１，ｚ１＋Δｚ１）まで移動したと認識したときには、情報処理装置１は、対象仮想オブジェクトの仮想空間内での配置位置をＸ軸方向にΔｘ１、Ｙ軸方向にΔｙ１、Ｚ軸方向にΔｚ１だけ平行移動する。
【００６１】
また、対象仮想オブジェクトが複数の位置Ｐ１，Ｐ２でそれぞれ挟まれていると判断された状態（通常、一方の位置Ｐ１では左手の指ＦＬ１ないしＦＬ５のうち複数の指で挟まれていると判断され、他方の位置Ｐ２では右手の指ＦＲ１ないしＦＲ５のうち複数の指で挟まれていると判断される）で、位置Ｐ１において対象仮想オブジェクトを仮想的に挟んでいると判断されるいずれかの指Ｆｐ１と、位置Ｐ２とにおいて対象仮想オブジェクトを仮想的に挟んでいると判断されるいずれかの指Ｆｐ２と間の距離が変動する場合は、当該距離の変動に応じて、対象仮想オブジェクトの仮想空間内でのサイズを変更してもよい。例えば距離がもとの距離ＬからＬ＋ΔＬだけ変化したと認識したときには、情報処理装置１は、対象仮想オブジェクトのサイズを（Ｌ＋ΔＬ）／Ｌ倍する。
【００６２】
この例では、図７に示すように、対象仮想オブジェクトの両端部を両手で把持した状態で、両手を離すように（図中矢印の方向に）それぞれ移動すると、情報処理装置１は、当該手の動きを認識して、仮想空間内での上記対象仮想オブジェクトを拡大するよう制御する。
【００６３】
さらに情報処理装置１は、対象仮想オブジェクトに接触していると判断される指が複数あり、かつ、いずれも同じ方向（背側または腹側のいずれか）を向いているときには、当該複数の指の移動方向に対象仮想オブジェクトの移動操作が行われるものとして処理してもよい。また、これら複数の指間の間隔が拡大または縮小しているときには、対象仮想オブジェクトの面に表示した画像（対象仮想オブジェクトの面に設定したテクスチャ）の拡大縮小の操作が行われたとして、対応する処理を実行してもよい。
【００６４】
［実空間上の対象物への貼付］
また本実施の形態の情報処理装置１は、ユーザの手指だけでなく、実空間上に配されている壁や机等の面の位置及び範囲を認識してもよい。このような平面の認識処理は、表示装置２が出力する深度情報を用いて判断する処理等の広く知られた方法を採用できる。
【００６５】
情報処理装置１は、対象仮想オブジェクトの移動操作が行われ、認識した平面のいずれかに触れた状態となったと判断される場合には、当該平面の位置に「貼り付けられた」状態として、その時点で対象仮想オブジェクトの移動を中止してもよい。
【００６６】
なお、この例において、情報処理装置１は、対象仮想オブジェクトの移動操作が行われ、認識した平面のいずれかに触れた状態となったと判断される場合に、当該、視野内の対象仮想オブジェクトの全体が、認識された平面に含まれる（全体が重なり合う）状態となったときに限り、当該平面の位置に「貼り付けられた」状態として、その時点で対象仮想オブジェクトの移動を中止してもよい。
【００６７】
このようにすると、対象仮想オブジェクトよりも狭小な平面に対象仮想オブジェクトが「貼り付け」られることがなくなる。
【００６８】
この場合、例えば当該対象仮想オブジェクトの周縁部から内側へユーザが指を動かす操作を行ったときに、「剥がされた」状態となったものとして、対象仮想オブジェクトが剥がれるアニメーションの表示を行ってもよい。その後、当該対象仮想オブジェクトは表示を中止してもよいし、剥がれた位置から再度移動操作が行われるように制御されてもよい。
【００６９】
なお、貼り付けられた場合は、ユーザの指の位置（接触していると判断されているか否か）に関わらず、情報処理装置１は、対象仮想オブジェクトの部分的な変形処理を中止する。これにより、対象仮想オブジェクトが貼り付けられた状態にある平面より奥側へ変形することが阻止される。
【００７０】
［指の側面の認識］
本実施の形態の情報処理装置１は、さらに、表示装置２が撮像して得た画像データから、ユーザの指の側面を認識してもよい。ユーザの指の側面を認識する場合、情報処理装置１は、指の側面を含む領域が、対象仮想オブジェクトの外周のいずれかの辺に接しつつ、対象仮想オブジェクトの中心方向へ移動している場合（対象仮想オブジェクトの左辺に指の側面を含む領域が接触し、さらに右側へ移動している場合など）には、対象仮想オブジェクトを、当該指の側面を含む領域の移動に合わせて平行移動してもよい。
【００７１】
一例として、この場合の情報処理装置１は、指の側面を含む領域が、対象仮想オブジェクトの外周のいずれかの辺に接しつつ、対象仮想オブジェクトの中心方向へ移動している間、指の側面を含む領域の重心を繰り返し取得し、重心が、ＸＹ平面内で（Δｘ，Δｙ）だけ移動したときに、当該指の側面を含む領域が接触している対象仮想オブジェクトをＸＹ平面内で（Δｘ，Δｙ）だけ平行移動する。
【００７２】
さらに本実施の形態のある例では、指の側面を含む領域が対象仮想オブジェクトの外周に接触したと判断された時点からの累積の移動量（ΣΔｘ，ΣΔｙ）の大きさ（ΣΔｘ）2＋（ΣΔｙ）2が予め定めたしきい値を超えたときには、当該対象仮想オブジェクトの表示を中止してもよい。
【００７３】
［オブジェクトの表示開始指示］
さらに本実施の形態の情報処理装置１は、ユーザの手のポーズ（各指の状態）に応じて、対象仮想オブジェクトの表示・表示停止制御や、表示態様の制御を行ってもよい。
【００７４】
一例として情報処理装置１は、ユーザが手を握ったと判断したときに、予め定めた対象仮想オブジェクトの表示を開始する。このとき、情報処理装置１は、ユーザが握った手がユーザにより視認される領域から、所定の距離範囲内に対象仮想オブジェクトを表示する。従って、この場合、握った手をユーザが移動すると、情報処理装置１は当該移動量（実空間中の移動量）に対応する仮想空間内の移動量だけ、対象仮想オブジェクトの仮想空間内の位置を移動する。
【００７５】
また、情報処理装置１は、手の握りの強さを検出してもよい。具体的にこの場合は、ユーザの手の握りの強さを認識するデバイス（不図示）を装着させ、当該デバイスの出力信号を無線にて通信部１３を介して受信し、当該受信した出力信号に基づいて検出してもよい。この場合、情報処理装置１は、例えば手の握りの強さが強くなるほど、表示する対象仮想オブジェクトの大きさを大きくする等の処理を行ってもよい。
【００７６】
さらにこの例では、手を握っている間に限り、情報処理装置１が対象仮想オブジェクトを表示してもよい。既に述べたように、対象仮想オブジェクトの表面にユーザインタフェース部品を配置する場合は、この例では、ユーザが手を握っている場合にのみ、当該ユーザインタフェースを用いた指示入力が可能となる。
【００７７】
さらにこの場合、ユーザが手を握った状態で対象仮想オブジェクトが表示された後、ユーザが当該対象仮想オブジェクトを仮想的に指で挟んで移動したときには、その後ユーザが手を開いても、当該対象仮想オブジェクトの表示を中断しないようにしてもよい。
【００７８】
この処理では、手を握って対象仮想オブジェクトを表示している間は、「移動モード」としてユーザの所定部位（ここでは例えば腕）の近傍に対象仮想オブジェクトを表示し、情報処理装置１は、ユーザの所定部位の例としての腕の動きに従って対象仮想オブジェクトが移動する。また「移動モード」で表示した対象仮想オブジェクトを仮想的に指で挟んで移動すると、移動した位置で対象仮想オブジェクトが留まって表示される、「空中モード」となり、ユーザが手を開いたことを検出しても、情報処理装置１は対象仮想オブジェクトの表示を中断しない。またこの「空中モード」では、情報処理装置１は、ユーザの所定部位の例としての腕の動きに従うことなく、仮想空間内での対象仮想オブジェクトの位置を移動しないよう制御してもよい。
【００７９】
さらにこの「空中モード」にある対象仮想オブジェクトは、情報処理装置１の処理により、既に述べたように、その側面をユーザが指で仮想的に押すことにより、あるいは、指で仮想的に挟んで移動可能となっていてもよい。このように移動されるとき、例えば、実空間中の机等の平面の位置まで移動したときには、当該平面に仮想的に貼り付けられた状態として表示されるものとしてもよい（貼付モード）。
【００８０】
［空中への静止指示］
さらに本実施の形態の一例では、情報処理装置１は、複数の対象仮想オブジェクトの相対的位置を変化させる操作（例えば一方の対象仮想オブジェクトを、他方の対象仮想オブジェクトの位置まで移動させる操作）をユーザが行ったときに、当該複数の対象仮想オブジェクトに関する所定の処理を実行してもよい。
【００８１】
例えば情報処理装置１は、仮想空間に、対象仮想オブジェクトとして仮想的な押しピンのオブジェクトＪｐを表示しており、他方、もう一つの対象仮想オブジェクトとして、仮想的なシート状のオブジェクトＪを表示しているとき、ユーザが押しピンのオブジェクトＪｐを、このシート状のオブジェクトＪに重なり合う位置（仮想空間内の位置）に移動させ、そこで移動を完了する操作（例えば押しピンのオブジェクトＪｐをユーザから遠方へ押し込む操作）を行ったときに、その後の操作により、仮想的なシート状のオブジェクトＪを当該操作が行われた位置から移動しないように制御してもよい。
【００８２】
この制御は例えば、ユーザにより仮想的なシート状のオブジェクトＪを移動する操作が行われたときに、情報処理装置１が当該操作に対して何らの処理を行わないようにすることで実現できる。
【００８３】
また、この場合、ユーザが押しピンのオブジェクトＪｐを、シート状のオブジェクトＪに重なり合う位置から、シート状のオブジェクトＪに重なり合わない位置まで移動したときには、その後は、ユーザの操作により、仮想的なシート状のオブジェクトＪを移動可能となるよう制御してもよい。
【００８４】
［ポップアップウィンドウ］
また本実施の形態の一例では、情報処理装置１は、対象仮想オブジェクトに重ね合わせて、別の対象仮想オブジェクトを生成して表示させてもよい。
【００８５】
この際、例えば、ユーザの指が、ある対象仮想オブジェクト上に表示されたボタンを押下している（このとき、当該対象仮想オブジェクトの当該ボタン部分は奥側へ凹となるよう変形されて表示されるよう制御されている）状態で、この対象仮想オブジェクトに重ね合わせて別の対象仮想オブジェクトを、いわゆるポップアップウィンドウのように表示させる場合がある。
【００８６】
このときには情報処理装置１は、当該別の対象仮想オブジェクトに対して、ユーザの指が重なり合っていても、ユーザの指が当該別の対象仮想オブジェクトの外側（描画される視野において別の対象仮想オブジェクトに重なり合わない位置）に一度移動するまでは、当該ユーザの指より奥側に、当該別の対象仮想オブジェクトを移動しないよう制御してもよい。このような制御は、新規に生成された対象仮想オブジェクトに対して、ユーザの指が重なり合わない位置に一度移動したか否かを表すフラグを関連付けておき、このフラグが、ユーザの指が重なり合わない位置に一度移動したことを表す状態となっていない間は、当該ユーザの指より奥側に、当該別の対象仮想オブジェクトを移動しないよう制御することなどで実現できる。
【００８７】
なお、ユーザが当該別の対象仮想オブジェクトの外側に指を移動せず、実空間内の、当該別の対象仮想オブジェクトが表示されている仮想空間内の位置に対応する位置より手前まで指を移動してしまった場合は、この指を避けるように、別の対象仮想オブジェクトを変形するアニメーションを表示してもよい。例えば、この別の対象仮想オブジェクトがシート状のオブジェクトであれば、シートがまくり上げられるようなアニメーションを表示してユーザの指が対象仮想オブジェクトを持ち上げながら手前に移動したかのように表示すればよい。この場合は、ユーザが対象仮想オブジェクトより手前に指を移動した時点で、ユーザの指が重なり合わない位置に一度移動したものとして、以降の処理を行うこととしてもよい。
【００８８】
［仮想的なオブジェクトの形状］
さらに、ここで情報処理装置１が表示する対象仮想オブジェクトの形状は、シート状あるいは直方体状に限られない。例えば、この対象仮想オブジェクトＪは筒状をなし、筒状の表面に、図８に例示するように、ユーザインタフェース部品の画像を連続的に配してもよい。
【００８９】
この例では、ユーザが例えば二本の指で対象仮想オブジェクトＪの表面を、仮想的に、一方方向に向かってなでる動作を行ったと判断すると、情報処理装置１が当該なでた方向に円筒の中心を回転中心として、対象仮想オブジェクトＪを図８の矢印方向に回転移動してもよい。このようにすると、筒状体の対象仮想オブジェクトを回転させて、当該回転によりユーザに視認可能になった部分に配されていたユーザインタフェース部品に、ユーザがアクセス可能となる。
【００９０】
［接触状態の表示］
また情報処理装置１は、仮想空間内の対象仮想オブジェクトと、ユーザの指とが接触している状態と、していない状態とで、対象仮想オブジェクトの表示態様が互いに異なるよう、対象仮想オブジェクトの表示態様を設定してもよい。
【００９１】
一例として、情報処理装置１は、ユーザの指とが接触している状態と、していない状態とで、対象仮想オブジェクトの外周周縁部（輪郭線）の色を変更する。
【００９２】
また、ユーザが、手などに触力覚を提示可能なデバイスを装着している場合、情報処理装置１は、仮想空間内の対象仮想オブジェクトと、ユーザの指とが接触している状態となったとき、あるいは、ユーザの指とが接触している状態が維持されているときに、予め定めた触力覚を提示するよう、当該デバイスに指示してもよい。
【００９３】
これにより、ユーザは、仮想空間内の対象仮想オブジェクトと、ユーザの指とが接触したときなどに、触力覚によるフィードバックを得ることが可能となる。
【００９４】
［移動の制限］
さらに本実施の形態の一例では、情報処理装置１は、実空間内の壁面や机等のオブジェクト（実オブジェクト）の位置及び形状を識別し（この方法は広く知られているため、ここでの詳しい説明を省略する）、仮想空間内の対応する位置（ユーザからの相対的位置を一致させて配置する）に、対応する仮想的なオブジェクト（対応オブジェクト）を配置してもよい。
【００９５】
この場合において、ユーザが対象仮想オブジェクトを移動している間、移動中の対象仮想オブジェクトと、対応オブジェクトとの仮想空間内での接触を判定し、接触すると判定される位置には移動しないよう制御してもよい。
【００９６】
なお、この例において対応オブジェクトの形状は、必ずしも実空間内の対応する実オブジェクトの形状に従っていなくてもよく、例えば実オブジェクトの外接直方体を仮想空間内の対応オブジェクトの形状としてもよい。
【符号の説明】
【００９７】
１  情報処理装置、２  表示装置、１１  制御部、１２  記憶部、１３  通信部、２１  制御部、２２  通信部、２３  撮像部、２４  デプスカメラ、２５  表示部、３１  指検出部、３２  オブジェクト設定部、３３  判定処理部、３４  オブジェクト制御部、３５  出力部、３６  処理制御部。
【図１】
2020198108.tif 000003
【図２】
2020198108.tif 000004
【図３】
2020198108.tif 000005
【図４】
2020198108.tif 000006
【図５】
2020198108.tif 000007
【図６】
2020198108.tif 000008
【図７】
2020198108.tif 000009
【図８】
2020198108.tif 000010
【手続補正書】
【提出日】令和2年7月31日(2020.7.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ユーザに対し、仮想空間の画像を提示する表示装置に接続され、
実空間のユーザの各指先の位置の情報を取得する取得手段と、
仮想空間内に、仮想的なオブジェクトの位置及び画像を設定するオブジェクト設定手段と、
前記仮想空間内に設定された仮想的なオブジェクトと、ユーザの指との接触を判定する判定手段と、
前記判定手段が、前記仮想的なオブジェクトにユーザの指が接触していると判定している状態を維持したまま、ユーザが指を移動する操作を行う場合に、当該操作に応じて予め指定された処理を実行する処理制御手段と、
を有し、
前記指を移動する操作には、ピンチイン、ピンチアウトの操作が含まれる情報処理装置。
【請求項２】
ユーザに対し、仮想空間の画像を提示する表示装置に接続され、
実空間のユーザの各指先の位置の情報を取得する取得手段と、
仮想空間内に、仮想的なオブジェクトの位置及び画像を設定するオブジェクト設定手段と、
前記仮想空間内に設定された仮想的なオブジェクトと、ユーザの指との接触を判定する判定手段と、
前記判定手段が、前記仮想的なオブジェクトの複数の位置のそれぞれにユーザの第１の指と第２の指とが接触していると判定している状態で、ユーザにより所定の操作が行われたときに、前記仮想的なオブジェクトの仮想空間内でのサイズを変更する処理制御手段と、
を有する情報処理装置。
【請求項３】
請求項２に記載の情報処理装置であって、
前記処理制御手段は、ユーザが前記仮想的なオブジェクトの複数の位置をそれぞれ挟んだ状態で所定の操作を行うことにより、前記仮想的なオブジェクトの仮想空間内でのサイズを変更する情報処理装置。
【請求項４】
請求項２または３に記載の情報処理装置であって、
前記処理制御手段は、ユーザが前記仮想的なオブジェクトの両端部を、左右の手で把持した状態で所定の操作を行うことにより、前記仮想的なオブジェクトの仮想空間内でのサイズを変更する情報処理装置。
【請求項５】
請求項２から４のいずれか一項に記載の情報処理装置であって、
前記処理制御手段は、前記所定の操作として、両手を離すよう移動することにより、前記仮想的なオブジェクトの仮想空間内でのサイズを変更する情報処理装置。
【請求項６】
請求項５に記載の情報処理装置であって、
前記処理制御手段は、両手の距離がもとの距離ＬからＬ＋ΔＬだけ変化したときには、前記仮想的なオブジェクトの仮想空間内でのサイズを（Ｌ＋ΔＬ）／Ｌ倍する情報処理装置。
【請求項７】
請求項１から６のいずれか一項に記載の情報処理装置であって、
前記処理制御手段は、ユーザの手のポーズに応じて、前記仮想的なオブジェクトの表示態様を制御する情報処理装置。
【請求項８】
請求項７に記載の情報処理装置であって、
前記処理制御手段は、ユーザが手を握った状態で、当該手を移動したと判断したときに、前記仮想的なオブジェクトの仮想空間内での表示位置を制御する情報処理装置。
【請求項９】
請求項１から８のいずれか一項に記載の情報処理装置であって、
前記処理制御手段は、複数の仮想的なオブジェクトの相対的位置を変化させる操作に基づいて所定の処理を実行する情報処理装置。
【請求項１０】
請求項１から９のいずれか一項に記載の情報処理装置であって、
前記処理制御手段は、前記仮想的なオブジェクトとは異なる仮想的なオブジェクトを用いて前記仮想的なオブジェクトを操作する情報処理装置。
【請求項１１】
請求項１０に記載の情報処理装置であって、
前記処理制御手段は、前記仮想的なオブジェクトとは異なる仮想的なオブジェクトを用いて前記仮想的なオブジェクトの移動を操作する情報処理装置。
【請求項１２】
請求項１から１１のいずれか一項に記載の情報処理装置であって、
前記処理制御手段は、ユーザが仮想的なオブジェクトの表面をなでる動作を行ったときに、当該なでた方向に、仮想的なオブジェクトを、仮想空間内で回転移動する情報処理装置。
【請求項１３】
請求項１２に記載の情報処理装置であって、
前記仮想的なオブジェクトが回転移動されると、当該回転により前記仮想的なオブジェクト上に配されたユーザインタフェース部品を視認可能に制御する情報処理装置。
【請求項１４】
ユーザに対し、仮想空間の画像を提示する表示装置に接続される情報処理装置を用い、
取得手段が、実空間のユーザの各指先の位置の情報を取得し、
オブジェクト設定手段が、仮想空間内に、仮想的なオブジェクトの位置及び画像を設定し、
判定手段が、前記仮想空間内に設定された仮想的なオブジェクトと、ユーザの指との接触を判定し、
処理制御手段が、前記仮想的なオブジェクトの複数の位置のそれぞれにユーザの第１の指と第２の指とが接触していると判定されている状態で、ユーザにより所定の操作が行われたときに、前記仮想的なオブジェクトの仮想空間内でのサイズを変更する
情報処理装置の制御方法。
【請求項１５】
ユーザに対し、仮想空間の画像を提示する表示装置に接続されたコンピュータを、
実空間のユーザの各指先の位置の情報を取得する取得手段と、
仮想空間内に、仮想的なオブジェクトの位置及び画像を設定するオブジェクト設定手段と、
前記仮想空間内に設定された仮想的なオブジェクトと、ユーザの指との接触を判定する判定手段と、
前記判定手段が、前記仮想的なオブジェクトの複数の位置のそれぞれにユーザの第１の指と第２の指とが接触していると判定している状態で、ユーザにより所定の操作が行われたときに、前記仮想的なオブジェクトの仮想空間内でのサイズを変更する処理制御手段と、
として機能させるプログラム。