(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022028692
(43)【公開日】2022-02-16
(54)【発明の名称】情報処理装置、情報処理装置の制御方法、及びプログラム
(51)【国際特許分類】
G06F 3/04842 20220101AFI20220208BHJP
G06F 3/04815 20220101ALI20220208BHJP
G06T 7/20 20170101ALI20220208BHJP
G06T 19/00 20110101ALI20220208BHJP
G09G 5/00 20060101ALI20220208BHJP
G09G 5/36 20060101ALI20220208BHJP
【FI】
G06F3/0484 120
G06F3/0481 150
G06T7/20 300A
G06T19/00 A
G09G5/00 510H
G09G5/00 550C
G09G5/36 510V
G09G5/36 520D
【審査請求】有
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2021177997
(22)【出願日】2021-10-29
(62)【分割の表示】P 2020130686の分割
【原出願日】2018-04-18
(31)【優先権主張番号】P 2017090171
(32)【優先日】2017-04-28
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100122275
【弁理士】
【氏名又は名称】竹居 信利
(72)【発明者】
【氏名】大橋 良徳
(57)【要約】
【課題】メニュー等、仮想的に表示された像に係る操作を違和感なく行うことを可能とする情報処理装置、情報処理装置の制御方法、及びプログラムを提供する。
【解決手段】実空間のユーザの各指先の位置の情報を取得し、仮想空間内に設定された仮想的なオブジェクトと、ユーザの指との接触を判定する。上記仮想的なオブジェクトの、ユーザの指のうち、当該オブジェクトに接触していると判定される指の位置に対応する部分が当該指よりもユーザ側より奥側に位置するよう、仮想的なオブジェクトを部分的に変形した状態に設定し、当該形状が設定された仮想的なオブジェクトを、表示装置において仮想空間の画像として表示させる情報処理装置である。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ユーザに対し、仮想空間の画像を提示する表示装置に接続され、
実空間のユーザの各指先の位置の情報を取得する取得手段と、
仮想空間内に、仮想的なオブジェクトの位置及び画像を設定するオブジェクト設定手段と、
前記仮想空間内に設定された仮想的なオブジェクトと、ユーザの指との接触を判定する判定手段と、
前記仮想的なオブジェクトの、前記ユーザの指のうち、当該オブジェクトに接触していると判定される指の位置に対応する部分が当該指よりもユーザ側より奥側に位置するよう、前記仮想的なオブジェクトを部分的に変形した状態に設定する形状設定手段と、
を有し、
前記形状が設定された仮想的なオブジェクトを、前記表示装置において仮想空間の画像として表示させる情報処理装置。
【請求項2】
請求項1記載の情報処理装置であって、
前記オブジェクト設定手段は、前記ユーザの指のうち当該オブジェクトに接触していると判定される指よりも奥側に位置するよう、前記仮想的なオブジェクトの仮想空間上の位置を設定する情報処理装置。
【請求項3】
請求項1または2に記載の情報処理装置であって、
前記オブジェクト設定手段は、前記判定手段が、前記仮想的なオブジェクトとユーザのいずれかの指とが接触していると判定したときと、いずれの指も接触していないと判定したときとで、前記仮想的なオブジェクトの表示態様が互いに異なるよう、前記仮想的なオブジェクトを設定する情報処理装置。
【請求項4】
請求項1から3のいずれか一項に記載の情報処理装置であって、
前記オブジェクト設定手段は、前記ユーザの指示により、当該ユーザの実空間での所定部位の移動量に対応する仮想空間内での移動量だけ、前記仮想的なオブジェクトの位置を移動する移動モードの処理を行う情報処理装置。
【請求項5】
請求項1から4のいずれか一項に記載の情報処理装置であって、
前記オブジェクト設定手段は、前記ユーザの指示により、当該ユーザの実空間での所定部位の移動に関わらず、前記仮想的なオブジェクトの位置を移動させない空中モードの処理を行う情報処理装置。
【請求項6】
請求項1から5のいずれか一項に記載の情報処理装置であって、
実空間内の平面を認識する手段をさらに含み、
前記オブジェクト設定手段は、前記ユーザの指示により、前記仮想的なオブジェクトの位置を、前記平面に貼付された位置に設定する貼り付けモードの処理を行う情報処理装置。
【請求項7】
請求項4から6のいずれか一項に記載の情報処理装置であって、
前記オブジェクト設定手段は、前記移動モードを含む複数のモードでの処理を実行しており、各モードにおいて予め定められた操作が行われたときに、他のモードでの処理に切り替えて処理を行う情報処理装置。
【請求項8】
請求項1から7のいずれか一項に記載の情報処理装置であって、
前記取得手段はさらに、前記ユーザの各指が背を向けているか腹を向けているかを表す方向の情報を取得し、
前記形状設定手段は、前記仮想的なオブジェクトの、前記ユーザの指のうち、背を向けている指であって、当該オブジェクトに接触していると判定される指の位置に対応する部分が当該指よりもユーザ側より奥側に位置するよう、前記仮想的なオブジェクトを部分的に変形した状態に設定する情報処理装置。
【請求項9】
請求項8に記載の情報処理装置であって、
さらに、前記仮想的なオブジェクトの、前記ユーザの指のうち腹を向けている指に重ね合わせて、前記仮想的なオブジェクトを描画する情報処理装置。
【請求項10】
ユーザに対し、仮想空間の画像を提示する表示装置に接続されたコンピュータを用い、
実空間のユーザの各指先の位置の情報を取得し、
仮想空間内に、仮想的なオブジェクトの位置及び画像を設定し、
前記仮想空間内に設定された仮想的なオブジェクトと、ユーザの指との接触を判定し、
前記仮想的なオブジェクトの、前記ユーザの指のうち、当該オブジェクトに接触していると判定される指の位置に対応する部分が当該指よりもユーザ側より奥側に位置するよう、前記仮想的なオブジェクトを部分的に変形した状態に設定して、
前記形状が設定された仮想的なオブジェクトを、前記表示装置において仮想空間の画像として表示させる情報処理装置の制御方法。
【請求項11】
ユーザに対し、仮想空間の画像を提示する表示装置に接続されたコンピュータを、
実空間のユーザの各指先の位置の情報を取得する取得手段と、
仮想空間内に、仮想的なオブジェクトの位置及び画像を設定するオブジェクト設定手段と、
前記仮想空間内に設定された仮想的なオブジェクトと、ユーザの指との接触を判定する判定手段と、
前記仮想的なオブジェクトの、前記ユーザの指のうち、当該オブジェクトに接触していると判定される指の位置に対応する部分が当該指よりもユーザ側より奥側に位置するよう、前記仮想的なオブジェクトを部分的に変形した状態に設定する形状設定手段と、
前記形状が設定された仮想的なオブジェクトを、前記表示装置において仮想空間の画像として表示させる手段と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理装置の制御方法、及びプログラムに関する。
【背景技術】
【0002】
近年、ヘッドマウントディスプレイ等、ユーザの頭部に装着され、情報を表示するデバイスが普及している。こうしたデバイスのうちには、ユーザの左目と右目とに異なる位置から見た仮想的な像を提示して、立体的な画像をユーザに視認させるものがある。
【0003】
またこのデバイスでは、ユーザに対して仮想的な像の一つとしてメニューを提示し、ユーザによる選択を受け入れることも行われる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来のメニュー選択では、ユーザはゲームコントローラ等の物理的なボタンを備えたデバイスを別途用いて、メニューを選択する操作を行うこととしていた。また、デバイスの傾きや位置等を検出して、当該デバイスの傾きや移動方向、移動量に応じて仮想的な像として表示したカーソルを移動し、メニューの選択を行わせることも可能である。しかしながら、いずれの場合もユーザは表示されている仮想的なメニューオブジェクトを直接触れるような操作を行うことができず、違和感なく操作を行わせることができなかった。
【0005】
本発明は上記実情に鑑みて為されたもので、メニュー等、仮想的に表示された像に係る操作を違和感なく行うことを可能とする情報処理装置、情報処理装置の制御方法、及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【0006】
上記従来例の問題点を解決する本発明は、ユーザに対し、仮想空間の画像を提示する表示装置に接続された情報処理装置であって、実空間のユーザの各指先の位置の情報を取得する取得手段と、仮想空間内に、仮想的なオブジェクトの位置及び画像を設定するオブジェクト設定手段と、前記仮想空間内に設定された仮想的なオブジェクトと、ユーザの指との接触を判定する判定手段と、前記仮想的なオブジェクトの、前記ユーザの指のうち、当該オブジェクトに接触していると判定される指の位置に対応する部分が当該指よりもユーザ側より奥側に位置するよう、前記仮想的なオブジェクトを部分的に変形した状態に設定する形状設定手段と、を有し、前記形状が設定された仮想的なオブジェクトを、前記表示装置において仮想空間の画像として表示させることとしたものである。
【発明の効果】
【0007】
本発明によると、メニュー等、仮想的に表示された像に係る操作を違和感なく行うことが可能となる。
【図面の簡単な説明】
【0008】
【
図1】本発明の実施の形態に係る情報処理装置の構成例を表すブロック図である。
【
図2】本発明の実施の形態に係る情報処理装置に接続される表示装置の例を表す構成ブロック図である。
【
図3】本発明の実施の形態に係る情報処理装置の例を表す機能ブロック図である。
【
図4】本発明の実施の形態に係る情報処理装置が用いる座標系の例を表す説明図である。
【
図5】本発明の実施の形態に係る情報処理装置により設定される仮想的なオブジェクトの例を表す説明図である。
【
図6】本発明の実施の形態に係る情報処理装置により表示される画像の例を表す説明図である。
【
図7】本発明の実施の形態に係る情報処理装置が設定する仮想的なオブジェクトの別の例を表す説明図である。
【
図8】本発明の実施の形態に係る情報処理装置が設定する仮想的なオブジェクトのさらに別の例を表す説明図である。
【発明を実施するための形態】
【0009】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理装置1は、
図1に例示するように、制御部11と、記憶部12と、通信部13とを含んで構成される。またこの情報処理装置1は、ユーザが頭部に装着するヘッドマウントディスプレイ(HMD)などの表示装置2との間で通信可能に接続されている。
【0010】
この表示装置2は、装着しているユーザに対して実空間と、仮想空間の画像とを重ね合わせて(半透明合成した状態で)提示する、例えば透過型のHMDであってもよいし、仮想空間の画像を表示する非透過型のHMDであってもよい。この表示装置2の一例は、ユーザが頭部に装着して使用する表示デバイスであって、
図2に例示するように、制御部21と、通信部22と、撮像部23と、デプスカメラ24と、表示部25とを含む。ここでの例では表示装置2の制御部21は、マイクロコンピュータ等のプログラム制御デバイスであって、内蔵する記憶部等の図示しないメモリ等に格納されたプログラムに従って動作し、情報処理装置1から通信部22を介して入力される情報に応じた映像を表示部25に表示させて、ユーザに閲覧させる。
【0011】
通信部22は、有線または無線にて情報処理装置1との間で通信可能に接続される。この通信部22は、後に述べる撮像部23が撮像した画像データやデプスカメラ24が出力する深度情報を、情報処理装置1へ送出する。またこの通信部22は、情報処理装置1から表示装置2宛に送信された情報を、制御部21に出力する。
【0012】
撮像部23は、カメラ等であり、ユーザの前方(頭部前方)の所定視野内の実空間の画像を繰り返し撮像し、撮像して得た画像データを、通信部22を介して情報処理装置1へ送出する。
【0013】
デプスカメラ24は、撮像部23が撮像する視野内の画像に含まれる画素ごとに、当該画素内に撮像された対象物までの距離を検出し、当該検出した画素ごとの距離を表す深度情報(デプスマップ)を出力する。具体的にこのデプスカメラ24は、赤外線を投射して対象物までの距離を測定する等の広く知られたデプスカメラを用いることができる。
【0014】
表示部25は、ユーザの右目と左目とのそれぞれの目の前に、それぞれの目に対応した映像を表示するものとする。この表示部25は、有機EL表示パネルや液晶表示パネルなどの表示素子を含む。この表示素子が制御部21から入力される指示に従って映像を表示する。この表示素子は、左目用の映像と右目用の映像とを一列に並べて表示する1つの表示素子であってもよいし、左目用の映像と右目用の映像とをそれぞれ独立に表示する一対の表示素子であってもよい。なお、本実施形態においてこの表示装置2は、ユーザが外界の様子を視認することができる透過型の表示装置である。
【0015】
ここで制御部11は、CPU等のプログラム制御デバイスであり、記憶部12に格納されているプログラムを実行する。本実施の形態では、この制御部11は、ゲームアプリケーション等のアプリケーションプログラムを実行し、また、次の処理を実行する。
【0016】
すなわち、この制御部11は、表示装置2が出力する、撮像部23で撮像された画像データに基づいて、実空間のユーザの各指先の位置と、各指の方向(各指がユーザ側に対して背を向けているか腹を向けているか)を検出し、これらを表す情報を取得する。
【0017】
またこの制御部11は、仮想空間の情報を設定する。具体的に制御部11は、所定の仮想空間内に仮想的なオブジェクトの位置及び画像を設定し、当該仮想空間内に設定された仮想的なオブジェクトと、ユーザの指との接触を判定する。制御部11はさらに、この仮想的なオブジェクトの、ユーザの指のうち背を向けている指であって、当該オブジェクトに接触していると判定される指の位置に対応する部分が当該指よりもユーザ側より奥側に位置するよう、仮想的なオブジェクトを部分的に変形した状態に設定する。
【0018】
この制御部11の詳しい動作については後に説明する。なお、以下の例では、ここで表示し、ユーザの指との接触を判定して変形する仮想的なオブジェクトを、他の仮想的なオブジェクト(例えば実空間のオブジェクトに対応して配置される仮想的なオブジェクトなど、ユーザとの指の接触を判定して変形しないもの)と区別するため、対象仮想オブジェクトと呼ぶ。
【0019】
記憶部12は、RAM等のメモリデバイスやディスクデバイス等であり、制御部11が実行するプログラムを格納する。また、この記憶部12は制御部11のワークメモリとしても動作し、制御部11がプログラム実行の過程で使用するデータを格納する。このプログラムは、コンピュータ可読かつ非一時的な記録媒体に格納されて提供され、この記憶部12に格納されたものであってもよい。
【0020】
通信部13は、有線または無線にてユーザの表示装置2との間で通信可能に接続される。この通信部13は、表示装置2が出力する画像データを受信して、制御部11へ送出する。またこの通信部13は、制御部11から表示装置2宛に送信する画像データを含む情報を受け入れて、当該情報を、表示装置2に出力する。
【0021】
ここで情報処理装置1の制御部11の動作について説明する。本実施の形態の制御部11は、一例として
図3に例示するように、指検出部31と、オブジェクト設定部32と、判定処理部33と、オブジェクト制御部34と、出力部35と、処理制御部36とを含んで構成される。
【0022】
ここで指検出部31は、実空間のユーザの各指先の位置及び向きの情報を取得する。一例として本実施の形態の指検出部31は、表示装置2から受信した画像データや深度情報に基づき、当該画像データに撮像された対象物のうちから指位置を推定するとともに、ユーザから見て指が背側(爪の側)を向けているか腹側を向けているかを判断する。具体的に、この指検出部31による、画像中からの指の位置の検出処理は、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に示される方法のほか、種々の広く知られた方法を採用できる。また本実施の形態では、情報処理装置1は、
図4に例示するように、ユーザが直立しているときのユーザの冠状面(coronal plane)に平行な面内にあり、かつ床面に平行な軸をX軸(ユーザの右側を正の方向とする)、上記ユーザの冠状面に平行な面内にあって床面の法線に平行な軸をY軸(鉛直上方を正の方向とする)とし、上記ユーザの冠状面の法線方向をZ軸(なお、ユーザの前方を正の方向とする)とした直交座標系を用いてこの実空間内の指の位置を表現するものとする。この座標系では、Z軸に平行な座標(x,y,ζ)(ζは任意の値)上の各点が、ユーザの視野(二次元的な視野)のX,Y直交座標系上の点T(x,y)上に視認されることとなる。
【0023】
また指が背側(爪の側)を向けているか腹側を向けているかを判断する処理の例としては、指の爪部分を検出する処理(例えば、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等に示された処理)を行い、検出された位置にある指のうち、対応する画像部分が爪と認識されていない指について指の腹側が向いていると判断し、対応する画像部分が爪と認識された指については、背側が向いていると判断することとすればよい。本実施の形態では、この指検出部31が、本発明の取得手段を実現する。
【0024】
オブジェクト設定部32は、仮想空間内に、対象仮想オブジェクトの位置及び画像を設定する。本実施の形態の一例では、このオブジェクト設定部32は、制御部11がアプリケーションプログラムの実行中に、当該アプリケーションプログラムの処理に基づいて出力する指示に従い、シート状または、多面体の対象仮想オブジェクトを、仮想空間内に配する。またオブジェクト設定部32は、上記指示に従い、当該対象仮想オブジェクトのユーザ側に表示される面に、アプリケーションプログラムの処理に基づいて指示された画像が表示されるよう設定する。具体的にこのアプリケーションプログラムに基づく指示は、ユーザインタフェース部品(仮想的なボタン等)の形状やボタン内に表示するべき文字列等、並びに、ボタンの配置位置等の情報を含む。オブジェクト設定部32は、この指示に従って、ユーザインタフェースを表す画像を生成し、対象仮想オブジェクトの面に当該画像が表示された状態となるよう、対象仮想オブジェクト表面のテクスチャを設定する。このように対象仮想オブジェクトの表面に画像を設定する処理は広く知られているので、ここでの詳しい説明を省略する。
【0025】
またこのオブジェクト設定部32は、表面に画像を設定した対象仮想オブジェクトの仮想空間内の配置位置を設定する。本実施の形態では、情報処理装置1は、
図4に例示した実空間の座標系と同様、ユーザが直立したときのユーザの冠状面に平行な面内にあり、かつ床面に平行な軸をX軸(ユーザの右側を正の方向とする)、上記ユーザの冠状面に平行な面内にあって床面の法線に平行な軸をY軸(鉛直上方を正の方向とする)、上記ユーザの冠状面の法線方向をZ軸(なお、ユーザの前方を正の方向とする)とした直交座標系を用いて仮想空間を設定する。なお、実空間の座標値と仮想空間の座標値とを一致させるため、予め座標系のX軸方向の比率α,Y軸方向の比率β,Z軸方向の比率γを、キャリブレーションにより求めておく。一例として、仮想空間内の既知の座標に点を表示し、この点に指先で触れるようにユーザに指示し、ユーザが触れたとした時点で指検出部31が検出した実空間での座標値を取得する処理を、仮想空間内の複数の座標の点について行い、仮想空間内の所定の、少なくとも一つの点のペア間の距離と実空間におけるそれぞれに対応する点のペア間の距離との比率を求めればよい。
【0026】
オブジェクト設定部32は、この座標系内の座標の値を用いて、対象仮想オブジェクト(
図4:V)の位置や形状を設定するものとする。このような仮想的な三次元のオブジェクトの配置や形状の設定についても広く知られているので、ここでの詳しい説明を省略する。
【0027】
判定処理部33は、仮想空間内に設定された対象仮想オブジェクトと、ユーザの指との接触を判定する。本実施の形態における対象仮想オブジェクトとユーザの指との接触の判定は、ユーザが表示装置2を通じて視認する実空間のユーザ自身の指と、これに重ね合わせて表示されている仮想空間における対象仮想オブジェクトとの仮想的な接触の有無を判定するものである。具体的な例として、この判定処理部33は、オブジェクト設定部32が設定した仮想空間内の対象仮想オブジェクトの外形の領域を含む仮想的な三次元の領域を設定し、指検出部31が検出した実空間での指の位置に対応する仮想空間内の座標値が、ここで設定した三次元の領域内にあるとき、対象仮想オブジェクトと、ユーザの指とが接触したと判定する。
【0028】
オブジェクト制御部34は、ユーザの指のうち背を向けている指であって、オブジェクト設定部32が設定した対象仮想オブジェクトに接触しているとして、判定処理部33が判定した指Fがあれば、当該対象仮想オブジェクトの、当該指Fに対応する部分が、当該指Fよりもユーザ側にあるか、奥側にあるかを判断する。オブジェクト制御部34は、ここで当該対象仮想オブジェクトの、当該指Fに対応する部分が、当該指Fよりもユーザ側にあれば、当該部分が、指Fより奥側に位置するよう(当該部分が奥側に凹となるよう)、当該対象仮想オブジェクトを、部分的に変形した状態に設定する。
【0029】
具体的な例として、
図5に例示するように、オブジェクト設定部32が対象仮想オブジェクトJを、当該オブジェクトJの面の法線がZ軸に平行となるよう配置しているとする。なお、このオブジェクトはZ=Zjの位置に配され、XY面内の形状は矩形状をなすものとし、そのユーザ側から見た左上隅の座標を(Xtl,Ytl)、右下隅の座標を(Xrb,Yrb)とする。また、厚さは実質的に「0」であるものとし、オブジェクトJは実質的にシート状であるものとする。
【0030】
判定処理部33は、このオブジェクト設定部32が設定した仮想空間内の仮想的なシート状のオブジェクトJの外形の領域を含む仮想的な三次元の領域Rを設定する。一例としてこの領域Rは、(Xtl,Ytl,Zj-ΔZ)と(Xrb,Yrb,Zj-ΔZ)とを対角線とする矩形状の近位側面と、(Xtl,Ytl,Zj+ΔZ)と(Xrb,Yrb,Zj+ΔZ)とを対角線とする矩形状の遠位側面とで囲まれる六面体の領域とする。
【0031】
ここでユーザの指Fの仮想空間内での対応する位置座標が(Xf,Yf,Zf)(Z軸方向の値はデプスカメラ24による深度情報から取得できる)であり、ユーザ側に背(爪側)を向けているとするとき、判定処理部33は、このユーザ側に背(爪側)を向けていると判断される指Fの仮想空間内での対応する位置座標(Xf,Yf,Zf)が、上記設定した領域Rに含まれるか否かを調べる。
【0032】
そして判定処理部33が、指Fの仮想空間内での対応する位置座標(Xf,Yf,Zf)が、上記設定した領域Rに含まれないと判断している間は、オブジェクト制御部34は処理を行わない。一方、判定処理部33が、指Fの仮想空間内での対応する位置座標(Xf,Yf,Zf)が、上記設定した領域Rに含まれると判断したときには、当該指Fのユーザ側から見た位置座標(Xf,Yf)の位置にある仮想的なシート状のオブジェクトJのZ軸の値(ここではX,Yの座標値に関わらずZjとなっている)と、指Fの位置座標のZ軸の値Zfとを比較する。ここでZf>Zjであれば、指Fが仮想的なシート状のオブジェクトJよりも遠方にあることとなるので、この場合にオブジェクト制御部34は、仮想的なシート状のオブジェクトJの指Fが表示されるX,Y面内の領域Rfが、対応する指Fの位置よりも遠位側(ユーザに対して奥側)にあるように仮想的なシート状のオブジェクトJを部分的に変形する。この変形は例えば、地形マッピング(height map)を用いる公知の方法で行うことができるので、ここでの詳しい説明を省略する。
【0033】
出力部35は、オブジェクト設定部32により設定された(さらに、条件によってはオブジェクト制御部34により変形された)、仮想空間内のオブジェクトを、ユーザの目の位置(例えば表示装置2の撮像部23の位置)に仮想的に配した仮想的なカメラからの像としてレンダリングし、表示装置2に対して当該レンダリングの結果として得られた画像データを送出する。
【0034】
処理制御部36は、対象仮想オブジェクトの面に表示された画像と、ユーザの指の位置の情報とに基づいて、予め定めた処理を実行する。具体的にこの処理制御部36は、判定処理部33が対象仮想オブジェクトに、背側を向けていると判断される指Fが接触していると判断している状態から、判定処理部33が対象仮想オブジェクトに、背側を向けていると判断される指Fが接触していないと判断している状態となったときに、当該指Fの位置にある対象仮想オブジェクトの面に表示された画像部分にあるユーザインタフェース部品(仮想的なボタン等)が押下されたものとして、当該ユーザインタフェース部品について予め設定された処理(例えばプログラムの起動等)を実行する。
【0035】
また本実施の形態では、処理制御部36は、判定処理部33が対象仮想オブジェクトに、背側を向けていると判断される指Fが接触していると判断している状態を維持したままユーザが指を移動する操作を行う場合、つまり、いわゆるスワイプや、ピンチイン・ピンチアウト(二以上の指が接触していると判断される状態で、当該指間の距離を変化させる操作が行われたとき)などの操作がなされたときには、奥側へ凹となる位置を当該移動後の指の位置に移動させつつ、スワイプ、ピンチイン・ピンチアウトの操作に応じて予めアプリケーションプログラム等によって指定された処理を実行する。
【0036】
[動作]
本実施の形態の一例は以上の構成を備え、次のように動作する。すなわち本実施の形態の情報処理装置1は、例えばゲーム等のアプリケーションプログラムを実行しており、その実行中に、仮想空間内にメニュー(選択項目のインタフェース部品を配列した画像)を表示する処理を行う。
【0037】
このとき本実施の形態の情報処理装置1は、アプリケーションプログラムの指示に従って、メニューのユーザインタフェースを表す画像を生成し、当該画像を、表面のテクスチャとして設定した仮想的なシート状のオブジェクト表面のテクスチャを生成する。
【0038】
そして情報処理装置1は、例えば
図4に例示したと同様の座標系において、
図5に例示するように、仮想的なシート状のオブジェクトJを、当該オブジェクトJの面の法線がZ軸に平行となるよう配置する。すなわち、オブジェクトJをZ=Zjの位置に配する。また、このオブジェクトJのXY面内の形状は矩形状をなす。そのユーザ側から見た左上隅の座標を(Xtl,Ytl)、右下隅の座標を(Xrb,Yrb)とする。また、Z軸方向の厚さは実質的に「0」である。
【0039】
情報処理装置1は、ここで仮想空間内のオブジェクトJを、ユーザの目の位置(例えば表示装置2の撮像部23の位置)に仮想的に配した仮想的なカメラからの像としてレンダリングし、表示装置2に対して当該レンダリングの結果として得られた画像データを送出する。
【0040】
そして表示装置2は、このレンダリングの結果を、同じ方向の実空間の像に重ね合わせて(透過的に)表示する。これによりユーザは、
図6に示すような画像を視認することとなる(S1)。
【0041】
ここでユーザが仮想空間のZ=Zjの位置にその人差し指Fが届くように手を伸ばすと、この手も実空間内の像としてユーザに視認される。この状態では、ユーザの人差し指Fはユーザ側にその背(爪側)を向けているとする。
【0042】
この状態でユーザが、表示装置2により表示されているオブジェクトJ上のボタンBに当該指Fを伸ばすと、情報処理装置1は、実空間内でのユーザの指Fの位置(指Fの指先の位置)と、向き(ユーザに背側を向けているか腹側を向けているか)とを認識する。ここでは情報処理装置1は、指Fの向きが「背側」であると判断する。
【0043】
そして情報処理装置1は、予め設定した、仮想的なシート状のオブジェクトJの外形の領域を含む仮想的な三次元の領域R(この領域Rは、(Xtl,Ytl,Zj-ΔZ)と(Xrb,Yrb,Zj-ΔZ)とを対角線とする矩形状の近位側面と、(Xtl,Ytl,Zj+ΔZ)と(Xrb,Yrb,Zj+ΔZ)とを対角線とする矩形状の遠位側面とで囲まれる六面体の領域とする)内に、ユーザの指Fの指先の実空間内の位置に対応する仮想空間内の座標が含まれるか否かを調べる。
【0044】
具体的に、ユーザの指Fの指先の実空間内の位置に対応する仮想空間内の座標が(Xf,Yf,Zf)であるとき、情報処理装置1は、
Xtl≦Xf≦Xrb、かつ、
Ytl≦Yf≦Yrb、かつ、
Zj-ΔZ≦Zf≦Zj+ΔZ
の条件(接触条件と呼ぶ)を満足するか否かを判断する。
【0045】
ここで背側となっている指Fの指先の座標が、上記接触条件を満足していると判断すると、情報処理装置1は、当該指Fのユーザ側から見た位置座標(Xf,Yf)の位置にある仮想的なシート状のオブジェクトJのZ軸の値(ここではX,Yの座標値に関わらずZj)と、指Fの位置座標のZ軸の値Zfとを比較する。
【0046】
ここでZf>Zjであれば、指Fが仮想的なシート状のオブジェクトJよりも遠方にあることとなるので、情報処理装置1は、仮想的なシート状のオブジェクトJの指Fが表示されるX,Y面内の領域Rfが、対応する指Fの位置よりも遠位側(ユーザに対して奥側)にあるように仮想的なシート状のオブジェクトJを部分的に変形する。すなわち、オブジェクトJに、(Xf,Yf)の位置を中心として所定のR以下の半径rの位置上にあるオブジェクトJの各点のZ軸の値が、Zj+z0(Zf-Zj)・exp(-r2/R2)となるように設定する。ここでz0は、経験的に定めた「1」以上の定数である。このようにすると、オブジェクトJ上の(Xf,Yf)の位置を中心に所定の半径R以下の部分が、指Fの位置よりもユーザからみて奥側に押し込まれたように変形する(S2)。この変形の形状は、ここでは釣り鐘型の関数を用いたが、これに限られない。
【0047】
情報処理装置1は、この処理の間、仮想空間内のオブジェクトJを、ユーザの目の位置(例えば表示装置2の撮像部23の位置)に仮想的に配した仮想的なカメラからの像としてレンダリングし、表示装置2に対して当該レンダリングの結果として得られた画像データを送出する。そして表示装置2は、このレンダリングの結果を、同じ方向の実空間の像に重ね合わせて(透過的に)表示する。
【0048】
なお、このとき情報処理装置1は、仮想的なシート状のオブジェクトJのユーザの手指と重なり合う部分については、マスクして描画しないよう制御してもよい。これによりユーザには、オブジェクトJ上のボタン等のインタフェース部品が操作されていることを明示できるとともに、オブジェクトJを指が突き抜けてしまうことによる不自然な描画がなされることがなくなる。
【0049】
情報処理装置1は、さらに、ここから指Fの指先の座標が接触条件を満足しなくなったときの指Fの指先の(X,Y)座標に対応する位置にある、オブジェクトJ上のボタン等のインタフェース部品を識別する。そして当該識別されたインタフェース部品があれば、当該インタフェース部品についてユーザが操作したときに行うべき処理としてアプリケーションプログラム側で予め定められている処理を実行する。
【0050】
[オブジェクトの位置を移動する例]
なお、ここまでの説明では、表示装置2が表示する対象仮想オブジェクトをユーザの指が突き抜けてしまわないよう、対象仮想オブジェクトの、指の位置に対応する部分を、ユーザの指の位置より遠方に位置することとなるように対象仮想オブジェクトの一部を変形することとしていたが、本実施の形態はこれに限られるものではない。
【0051】
例えば、ユーザの指のうち背を向けている指であって、オブジェクト設定部32が設定した対象仮想オブジェクトに接触しているとして、判定処理部33が判定した指Fがあれば、オブジェクト制御部34は、当該対象仮想オブジェクトの、当該指Fに対応する部分が、当該指Fよりもユーザ側にあるか、奥側にあるかを判断し、対象仮想オブジェクトの、当該指Fに対応する部分が、当該指Fよりもユーザ側にあると判断されたときには、対象仮想オブジェクト全体の位置をZ軸方向に平行移動して、指Fよりも遠方に当該対象仮想オブジェクトの、当該指Fに対応する部分が、当該指Fよりも奥側にあるように設定してもよい。
【0052】
さらに本実施の形態の一例では、情報処理装置1は、背側となっている指Fの指先の座標が、上記接触条件を満足していると判断したときの、当該指Fのユーザ側から見た位置座標(Xf,Yf)の位置にある対象仮想オブジェクトJのZ軸の値(Zj(Xf,Yf)とする)と、指Fの位置座標のZ軸の値Zfとを比較し、
Zth>Zf-Zj(Xf,Yf)>0
であれば、対象仮想オブジェクトの、指の位置に対応する部分を、ユーザの指の位置より遠方に位置することとなるように対象仮想オブジェクトの一部を変形し、
Zf-Zj(Xf,Yf)≧Zth
であれば、対象仮想オブジェクト全体の位置をZ軸方向に平行移動して、指Fよりも遠方に当該対象仮想オブジェクトの、当該指Fに対応する部分が、当該指Fよりも奥側にあるように設定することとしてもよい。なお、ここでZthは予め設定されたしきい値(Zth>0とする)である。
【0053】
この例では、ユーザの指がオブジェクトJの元のZ軸上の位置よりZth未満だけ奥にある間はオブジェクトJの一部が変形して部分的に押し込まれたかのように表示され、さらに続けてZthを超えて奥へ指を移動すると、オブジェクトJ全体が移動してオブジェクトJのZ軸方向の移動操作を行うことが可能となる。このようにオブジェクトJ全体を移動した場合は、情報処理装置1は、その後、ユーザの指先の座標が接触条件を満足しなくなったときにも、対応する位置にあるインタフェース部品についての操作を実行しないこととしてもよい。
【0054】
[オブジェクトのマスク]
また本実施の形態において、情報処理装置1は、表示装置2が出力する深度情報を参照し、対象仮想オブジェクトJ上の点(x,y,Zj(x,y))よりも手前側にユーザの手指がある場合、つまり、視野内の点(x,y)における深度情報が表す実空間での対象物までのZ軸上の距離に対応する仮想空間上のZ軸の値Zvが、Zj(x,y)>Zvであるときには、オブジェクトJの(x,y)の位置における画像をマスクして描画しないこととしてもよい。これにより、手前側にある対象物によりオブジェクトが隠蔽された状態を表現できる。
【0055】
[腹側向きの指]
また本実施の形態の情報処理装置1は、腹側(爪とは反対側)を向いたユーザの指Fが、対象仮想オブジェクトJ上の点(x,y,Zj(x,y))よりも奥側である場合、つまり当該指Fの指先の位置のZ軸方向の成分Zfが、Zf>Zj(x,y)である場合は、当該ユーザの指Fに対応する位置のオブジェクトJの描画をマスクしないよう制御してもよい。この場合、当該腹側がユーザに向いているユーザ自身の指の像には、表示装置2により、オブジェクトJの対応部分が半透明合成されてユーザに提示されることとなる。
【0056】
なお、この処理において、指Fの指先の位置のZ軸方向の成分Zfが、Zf>Zj(x,y)であるか否かを判断する際の対象仮想オブジェクトJ上の点(x,y,Zj(x,y))は、他の、背を向けている指の位置に応じて対象仮想オブジェクトJが部分的に変形して表示されている場合であっても、変形前の座標値を用いることとしてもよい。
【0057】
[複数の指の認識]
さらに本実施の形態では、情報処理装置1は、ユーザの複数の指の位置及び向きをそれぞれ認識する。さらに、本実施の形態の情報処理装置1は、ユーザの左右のそれぞれの手の指の位置及び向き(ユーザに背側を向けているか腹側を向けているか)の情報を取得してもよい。
【0058】
この例の情報処理装置1は、ユーザの左手の各指FL1からFL5について、その実空間上の位置に対応する仮想空間のXYZ座標系での座標値と、それぞれの指の向きの情報とを逐次取得している。また情報処理装置1は同様に、ユーザの右手の各指FR1からFR5についても、その実空間上の位置に対応する仮想空間のXYZ座標系での座標値と、それぞれの指の向きの情報とを逐次取得している。そして情報処理装置1は、各指について対象仮想オブジェクトと接触しているか否かを判断する。
【0059】
また情報処理装置1は、例えば、腹側を向けていると判断される第1の指F1と、背側を向けていると判断される第2の指F2とがいずれも対象仮想オブジェクトと接触しており、かつ、指F1の指先の仮想空間のXYZ座標系での座標値(x1,y1,z1)と、指F2の指先の仮想空間のXYZ座標系での座標値(x2,y2,z2)との距離が予め定めたしきい値を下回っているとき(このとき、対象仮想オブジェクトの背側を向けている指F2に対応する部分は、当該指F2よりも奥側になるよう変形されるが、腹側を向いている指F1とのZ軸方向の位置比較では変形前の座標値で比較が行われるので、指F1に対しては半透明合成されて描画された状態にある)には、情報処理装置1は、対象仮想オブジェクトが当該指F1,F2の位置((x1,y1)と(x2,y2)とを含む所定範囲、例えばこれらを含む最小の円の範囲)でこれらの指で仮想的に挟まれていると判断して、所定の処理を実行してもよい。
【0060】
例えば、仮想的に挟まれていると判断された状態で、指F1,F2をユーザが移動したときには、その移動量に応じて、対象仮想オブジェクト全体を、仮想空間内で平行移動してもよい。一例として、指F1が(x1,y1,z1)から(x1+Δx1,y1+Δy1,z1+Δz1)まで移動したと認識したときには、情報処理装置1は、対象仮想オブジェクトの仮想空間内での配置位置をX軸方向にΔx1、Y軸方向にΔy1、Z軸方向にΔz1だけ平行移動する。
【0061】
また、対象仮想オブジェクトが複数の位置P1,P2でそれぞれ挟まれていると判断された状態(通常、一方の位置P1では左手の指FL1ないしFL5のうち複数の指で挟まれていると判断され、他方の位置P2では右手の指FR1ないしFR5のうち複数の指で挟まれていると判断される)で、位置P1において対象仮想オブジェクトを仮想的に挟んでいると判断されるいずれかの指Fp1と、位置P2とにおいて対象仮想オブジェクトを仮想的に挟んでいると判断されるいずれかの指Fp2と間の距離が変動する場合は、当該距離の変動に応じて、対象仮想オブジェクトの仮想空間内でのサイズを変更してもよい。例えば距離がもとの距離LからL+ΔLだけ変化したと認識したときには、情報処理装置1は、対象仮想オブジェクトのサイズを(L+ΔL)/L倍する。
【0062】
この例では、
図7に示すように、対象仮想オブジェクトの両端部を両手で把持した状態で、両手を離すように(図中矢印の方向に)それぞれ移動すると、情報処理装置1は、当該手の動きを認識して、仮想空間内での上記対象仮想オブジェクトを拡大するよう制御する。
【0063】
さらに情報処理装置1は、対象仮想オブジェクトに接触していると判断される指が複数あり、かつ、いずれも同じ方向(背側または腹側のいずれか)を向いているときには、当該複数の指の移動方向に対象仮想オブジェクトの移動操作が行われるものとして処理してもよい。また、これら複数の指間の間隔が拡大または縮小しているときには、対象仮想オブジェクトの面に表示した画像(対象仮想オブジェクトの面に設定したテクスチャ)の拡大縮小の操作が行われたとして、対応する処理を実行してもよい。
【0064】
[実空間上の対象物への貼付]
また本実施の形態の情報処理装置1は、ユーザの手指だけでなく、実空間上に配されている壁や机等の面の位置及び範囲を認識してもよい。このような平面の認識処理は、表示装置2が出力する深度情報を用いて判断する処理等の広く知られた方法を採用できる。
【0065】
情報処理装置1は、対象仮想オブジェクトの移動操作が行われ、認識した平面のいずれかに触れた状態となったと判断される場合には、当該平面の位置に「貼り付けられた」状態として、その時点で対象仮想オブジェクトの移動を中止してもよい。
【0066】
なお、この例において、情報処理装置1は、対象仮想オブジェクトの移動操作が行われ、認識した平面のいずれかに触れた状態となったと判断される場合に、当該、視野内の対象仮想オブジェクトの全体が、認識された平面に含まれる(全体が重なり合う)状態となったときに限り、当該平面の位置に「貼り付けられた」状態として、その時点で対象仮想オブジェクトの移動を中止してもよい。
【0067】
このようにすると、対象仮想オブジェクトよりも狭小な平面に対象仮想オブジェクトが「貼り付け」られることがなくなる。
【0068】
この場合、例えば当該対象仮想オブジェクトの周縁部から内側へユーザが指を動かす操作を行ったときに、「剥がされた」状態となったものとして、対象仮想オブジェクトが剥がれるアニメーションの表示を行ってもよい。その後、当該対象仮想オブジェクトは表示を中止してもよいし、剥がれた位置から再度移動操作が行われるように制御されてもよい。
【0069】
なお、貼り付けられた場合は、ユーザの指の位置(接触していると判断されているか否か)に関わらず、情報処理装置1は、対象仮想オブジェクトの部分的な変形処理を中止する。これにより、対象仮想オブジェクトが貼り付けられた状態にある平面より奥側へ変形することが阻止される。
【0070】
[指の側面の認識]
本実施の形態の情報処理装置1は、さらに、表示装置2が撮像して得た画像データから、ユーザの指の側面を認識してもよい。ユーザの指の側面を認識する場合、情報処理装置1は、指の側面を含む領域が、対象仮想オブジェクトの外周のいずれかの辺に接しつつ、対象仮想オブジェクトの中心方向へ移動している場合(対象仮想オブジェクトの左辺に指の側面を含む領域が接触し、さらに右側へ移動している場合など)には、対象仮想オブジェクトを、当該指の側面を含む領域の移動に合わせて平行移動してもよい。
【0071】
一例として、この場合の情報処理装置1は、指の側面を含む領域が、対象仮想オブジェクトの外周のいずれかの辺に接しつつ、対象仮想オブジェクトの中心方向へ移動している間、指の側面を含む領域の重心を繰り返し取得し、重心が、XY平面内で(Δx,Δy)だけ移動したときに、当該指の側面を含む領域が接触している対象仮想オブジェクトをXY平面内で(Δx,Δy)だけ平行移動する。
【0072】
さらに本実施の形態のある例では、指の側面を含む領域が対象仮想オブジェクトの外周に接触したと判断された時点からの累積の移動量(ΣΔx,ΣΔy)の大きさ(ΣΔx)2+(ΣΔy)2が予め定めたしきい値を超えたときには、当該対象仮想オブジェクトの表示を中止してもよい。
【0073】
[オブジェクトの表示開始指示]
さらに本実施の形態の情報処理装置1は、ユーザの手のポーズ(各指の状態)に応じて、対象仮想オブジェクトの表示・表示停止制御や、表示態様の制御を行ってもよい。
【0074】
一例として情報処理装置1は、ユーザが手を握ったと判断したときに、予め定めた対象仮想オブジェクトの表示を開始する。このとき、情報処理装置1は、ユーザが握った手がユーザにより視認される領域から、所定の距離範囲内に対象仮想オブジェクトを表示する。従って、この場合、握った手をユーザが移動すると、情報処理装置1は当該移動量(実空間中の移動量)に対応する仮想空間内の移動量だけ、対象仮想オブジェクトの仮想空間内の位置を移動する。
【0075】
また、情報処理装置1は、手の握りの強さを検出してもよい。具体的にこの場合は、ユーザの手の握りの強さを認識するデバイス(不図示)を装着させ、当該デバイスの出力信号を無線にて通信部13を介して受信し、当該受信した出力信号に基づいて検出してもよい。この場合、情報処理装置1は、例えば手の握りの強さが強くなるほど、表示する対象仮想オブジェクトの大きさを大きくする等の処理を行ってもよい。
【0076】
さらにこの例では、手を握っている間に限り、情報処理装置1が対象仮想オブジェクトを表示してもよい。既に述べたように、対象仮想オブジェクトの表面にユーザインタフェース部品を配置する場合は、この例では、ユーザが手を握っている場合にのみ、当該ユーザインタフェースを用いた指示入力が可能となる。
【0077】
さらにこの場合、ユーザが手を握った状態で対象仮想オブジェクトが表示された後、ユーザが当該対象仮想オブジェクトを仮想的に指で挟んで移動したときには、その後ユーザが手を開いても、当該対象仮想オブジェクトの表示を中断しないようにしてもよい。
【0078】
この処理では、手を握って対象仮想オブジェクトを表示している間は、「移動モード」としてユーザの所定部位(ここでは例えば腕)の近傍に対象仮想オブジェクトを表示し、情報処理装置1は、ユーザの所定部位の例としての腕の動きに従って対象仮想オブジェクトが移動する。また「移動モード」で表示した対象仮想オブジェクトを仮想的に指で挟んで移動すると、移動した位置で対象仮想オブジェクトが留まって表示される、「空中モード」となり、ユーザが手を開いたことを検出しても、情報処理装置1は対象仮想オブジェクトの表示を中断しない。またこの「空中モード」では、情報処理装置1は、ユーザの所定部位の例としての腕の動きに従うことなく、仮想空間内での対象仮想オブジェクトの位置を移動しないよう制御してもよい。
【0079】
さらにこの「空中モード」にある対象仮想オブジェクトは、情報処理装置1の処理により、既に述べたように、その側面をユーザが指で仮想的に押すことにより、あるいは、指で仮想的に挟んで移動可能となっていてもよい。このように移動されるとき、例えば、実空間中の机等の平面の位置まで移動したときには、当該平面に仮想的に貼り付けられた状態として表示されるものとしてもよい(貼付モード)。
【0080】
[空中への静止指示]
さらに本実施の形態の一例では、情報処理装置1は、複数の対象仮想オブジェクトの相対的位置を変化させる操作(例えば一方の対象仮想オブジェクトを、他方の対象仮想オブジェクトの位置まで移動させる操作)をユーザが行ったときに、当該複数の対象仮想オブジェクトに関する所定の処理を実行してもよい。
【0081】
例えば情報処理装置1は、仮想空間に、対象仮想オブジェクトとして仮想的な押しピンのオブジェクトJpを表示しており、他方、もう一つの対象仮想オブジェクトとして、仮想的なシート状のオブジェクトJを表示しているとき、ユーザが押しピンのオブジェクトJpを、このシート状のオブジェクトJに重なり合う位置(仮想空間内の位置)に移動させ、そこで移動を完了する操作(例えば押しピンのオブジェクトJpをユーザから遠方へ押し込む操作)を行ったときに、その後の操作により、仮想的なシート状のオブジェクトJを当該操作が行われた位置から移動しないように制御してもよい。
【0082】
この制御は例えば、ユーザにより仮想的なシート状のオブジェクトJを移動する操作が行われたときに、情報処理装置1が当該操作に対して何らの処理を行わないようにすることで実現できる。
【0083】
また、この場合、ユーザが押しピンのオブジェクトJpを、シート状のオブジェクトJに重なり合う位置から、シート状のオブジェクトJに重なり合わない位置まで移動したときには、その後は、ユーザの操作により、仮想的なシート状のオブジェクトJを移動可能となるよう制御してもよい。
【0084】
[ポップアップウィンドウ]
また本実施の形態の一例では、情報処理装置1は、対象仮想オブジェクトに重ね合わせて、別の対象仮想オブジェクトを生成して表示させてもよい。
【0085】
この際、例えば、ユーザの指が、ある対象仮想オブジェクト上に表示されたボタンを押下している(このとき、当該対象仮想オブジェクトの当該ボタン部分は奥側へ凹となるよう変形されて表示されるよう制御されている)状態で、この対象仮想オブジェクトに重ね合わせて別の対象仮想オブジェクトを、いわゆるポップアップウィンドウのように表示させる場合がある。
【0086】
このときには情報処理装置1は、当該別の対象仮想オブジェクトに対して、ユーザの指が重なり合っていても、ユーザの指が当該別の対象仮想オブジェクトの外側(描画される視野において別の対象仮想オブジェクトに重なり合わない位置)に一度移動するまでは、当該ユーザの指より奥側に、当該別の対象仮想オブジェクトを移動しないよう制御してもよい。このような制御は、新規に生成された対象仮想オブジェクトに対して、ユーザの指が重なり合わない位置に一度移動したか否かを表すフラグを関連付けておき、このフラグが、ユーザの指が重なり合わない位置に一度移動したことを表す状態となっていない間は、当該ユーザの指より奥側に、当該別の対象仮想オブジェクトを移動しないよう制御することなどで実現できる。
【0087】
なお、ユーザが当該別の対象仮想オブジェクトの外側に指を移動せず、実空間内の、当該別の対象仮想オブジェクトが表示されている仮想空間内の位置に対応する位置より手前まで指を移動してしまった場合は、この指を避けるように、別の対象仮想オブジェクトを変形するアニメーションを表示してもよい。例えば、この別の対象仮想オブジェクトがシート状のオブジェクトであれば、シートがまくり上げられるようなアニメーションを表示してユーザの指が対象仮想オブジェクトを持ち上げながら手前に移動したかのように表示すればよい。この場合は、ユーザが対象仮想オブジェクトより手前に指を移動した時点で、ユーザの指が重なり合わない位置に一度移動したものとして、以降の処理を行うこととしてもよい。
【0088】
[仮想的なオブジェクトの形状]
さらに、ここで情報処理装置1が表示する対象仮想オブジェクトの形状は、シート状あるいは直方体状に限られない。例えば、この対象仮想オブジェクトJは筒状をなし、筒状の表面に、
図8に例示するように、ユーザインタフェース部品の画像を連続的に配してもよい。
【0089】
この例では、ユーザが例えば二本の指で対象仮想オブジェクトJの表面を、仮想的に、一方方向に向かってなでる動作を行ったと判断すると、情報処理装置1が当該なでた方向に円筒の中心を回転中心として、対象仮想オブジェクトJを
図8の矢印方向に回転移動してもよい。このようにすると、筒状体の対象仮想オブジェクトを回転させて、当該回転によりユーザに視認可能になった部分に配されていたユーザインタフェース部品に、ユーザがアクセス可能となる。
【0090】
[接触状態の表示]
また情報処理装置1は、仮想空間内の対象仮想オブジェクトと、ユーザの指とが接触している状態と、していない状態とで、対象仮想オブジェクトの表示態様が互いに異なるよう、対象仮想オブジェクトの表示態様を設定してもよい。
【0091】
一例として、情報処理装置1は、ユーザの指とが接触している状態と、していない状態とで、対象仮想オブジェクトの外周周縁部(輪郭線)の色を変更する。
【0092】
また、ユーザが、手などに触力覚を提示可能なデバイスを装着している場合、情報処理装置1は、仮想空間内の対象仮想オブジェクトと、ユーザの指とが接触している状態となったとき、あるいは、ユーザの指とが接触している状態が維持されているときに、予め定めた触力覚を提示するよう、当該デバイスに指示してもよい。
【0093】
これにより、ユーザは、仮想空間内の対象仮想オブジェクトと、ユーザの指とが接触したときなどに、触力覚によるフィードバックを得ることが可能となる。
【0094】
[移動の制限]
さらに本実施の形態の一例では、情報処理装置1は、実空間内の壁面や机等のオブジェクト(実オブジェクト)の位置及び形状を識別し(この方法は広く知られているため、ここでの詳しい説明を省略する)、仮想空間内の対応する位置(ユーザからの相対的位置を一致させて配置する)に、対応する仮想的なオブジェクト(対応オブジェクト)を配置してもよい。
【0095】
この場合において、ユーザが対象仮想オブジェクトを移動している間、移動中の対象仮想オブジェクトと、対応オブジェクトとの仮想空間内での接触を判定し、接触すると判定される位置には移動しないよう制御してもよい。
【0096】
なお、この例において対応オブジェクトの形状は、必ずしも実空間内の対応する実オブジェクトの形状に従っていなくてもよく、例えば実オブジェクトの外接直方体を仮想空間内の対応オブジェクトの形状としてもよい。
【符号の説明】
【0097】
1 情報処理装置、2 表示装置、11 制御部、12 記憶部、13 通信部、21 制御部、22 通信部、23 撮像部、24 デプスカメラ、25 表示部、31 指検出部、32 オブジェクト設定部、33 判定処理部、34 オブジェクト制御部、35 出力部、36 処理制御部。
【手続補正書】
【提出日】2021-10-29
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ユーザに対し、仮想空間の画像を提示する表示装置に接続され、
実空間のユーザの各指の状態の情報を取得する取得手段と、
仮想空間内に、仮想的なオブジェクトの位置及び画像を設定するオブジェクト設定手段と、
を有し、
前記オブジェクト設定手段は、前記取得手段が取得した情報に基づくユーザの手のポーズの情報に応じて、所定の仮想的なオブジェクトの表示を開始する情報処理装置。
【請求項2】
請求項1記載の情報処理装置であって、
前記オブジェクト設定手段は、前記ユーザが所定のポーズを続けている間、前記仮想的なオブジェクトを表示する情報処理装置。
【請求項3】
請求項1または2に記載の情報処理装置であって、
前記オブジェクト設定手段は、前記ユーザの手のポーズの情報として、手を握っている状態、あるいは手を開いている状態を含むいずれかのポーズの情報となっているか否かを判定し、当該判定の結果に応じて、前記所定の仮想的なオブジェクトの表示を開始する情報処理装置。
【請求項4】
請求項1または3のいずれかに記載の情報処理装置であって、
前記オブジェクト設定手段は、前記仮想的なオブジェクトにユーザの指が接触している状態と、していない状態とで、前記仮想的なオブジェクトの表示態様を異ならせる情報処理装置。
【請求項5】
請求項1から4のいずれか一項に記載の情報処理装置であって、
前記仮想空間内に設定された仮想的なオブジェクトと、ユーザの指との接触を判定する判定手段をさらに有する情報処理装置。
【請求項6】
ユーザに対し、仮想空間の画像を提示する表示装置に接続される情報処理装置の制御方法であって、
取得手段が実空間のユーザの各指の状態の情報を取得し、
オブジェクト設定手段が、前記取得手段が取得した情報に基づくユーザの手のポーズの情報に応じて、所定の仮想的なオブジェクトの表示を開始し、仮想空間内に、仮想的なオブジェクトの位置及び画像を設定する
情報処理装置の制御方法。
【請求項7】
ユーザに対し、仮想空間の画像を提示する表示装置に接続される情報処理装置を、
実空間のユーザの各指の状態の情報を取得する取得手段と、
仮想空間内に、仮想的なオブジェクトの位置及び画像を設定するオブジェクト設定手段と、
として機能させ、
前記オブジェクト設定手段として機能させる際に、前記取得手段が取得した情報に基づくユーザの手のポーズの情報に応じて、所定の仮想的なオブジェクトの表示を開始させるプログラム。