(57)【要約】  仮想空間内に仮想的な物体を配し、当該仮想空間内の画像を生成してユーザに提示する。またユーザからの操作を表す情報を受け入れ、当該受け入れた操作を表す情報に応じ、仮想空間内に、仮想的な物体を操作する仮想的なマニピュレータを表示し、この仮想的なマニュピレータが前記仮想的な物体に対して与える仮想的な力の大きさを決定して、当該決定した力の大きさを表す情報をユーザに提示する。
2019123530.tif 000002
【特許請求の範囲】
【請求項１】
仮想空間内に仮想的な物体を配し、当該仮想空間内の画像を生成してユーザに提示する情報処理装置であって、
ユーザからの操作を表す情報を受け入れる受入手段と、
当該受け入れた操作を表す情報に応じ、前記仮想空間内に、前記仮想的な物体を操作する仮想的なマニピュレータを表示するマニピュレータ表示手段と、
前記仮想的なマニュピレータが前記仮想的な物体に対して与える仮想的な力の大きさを決定する決定手段と、
前記決定した力の大きさを表す情報をユーザに提示する提示手段と、
を有する情報処理装置。
【請求項２】
請求項１記載の情報処理装置であって、
前記受入手段は、ユーザから、ユーザの各指の曲げ角度の情報を、操作を表す情報として受け入れ、
前記マニピュレータ表示手段は、ユーザの少なくとも一部の指に対応するマニピュレータを表示する手段であって、前記受入手段が受け入れた情報で表される指ごとの曲げ角度の情報と、前記仮想空間内に配された前記仮想的な物体との衝突判定結果とに基づいて、対応するマニピュレータの姿勢を決定して表示し、
前記決定手段は、前記マニピュレータ表示手段が決定したマニピュレータの姿勢と、対応する指の曲げ角度の情報とに基づいて、前記仮想的なマニュピレータが前記仮想的な物体に対して与える仮想的な力の大きさを決定する情報処理装置。
【請求項３】
請求項２記載の情報処理装置であって、
前記決定手段は、前記マニピュレータ表示手段が決定したマニピュレータの姿勢と、対応する指の曲げ角度の情報との差に基づいて、前記仮想的なマニュピレータが前記仮想的な物体に対して与える仮想的な力の大きさを決定する情報処理装置。
【請求項４】
請求項１から３のいずれか一項に記載の情報処理装置であって、
前記提示手段は、
前記決定した力の大きさを表す情報を、当該情報に応じて、対応するマニピュレータまたは当該マニピュレータが接触している前記仮想的な物体の部分の色、テクスチャ、透過度、色変更の周期を異ならせることにより提示する情報処理装置。
【請求項５】
請求項４に記載の情報処理装置であって、
前記提示手段が前記決定した力の大きさを表す情報を、当該情報に応じて、対応するマニピュレータまたはマニピュレータが接触している前記仮想的な物体の部分の色、テクスチャ、透過度、色変更の周期を異ならせることにより提示する場合、当該対応するマニピュレータが接触している仮想的な物体の部分の大きさにより、色、テクスチャまたは透過度を変化させる領域の大きさを異ならせる情報処理装置。
【請求項６】
請求項１から５のいずれか一項に記載の情報処理装置であって、
前記提示手段は、
前記決定した力の大きさを表す情報を、出力する音声により提示する情報処理装置。
【請求項７】
請求項１から６のいずれか一項に記載の情報処理装置であって、
ユーザが操作するコントローラに通信可能に接続されており、
前記提示手段は、前記コントローラに対して、前記決定した力の大きさを表す情報を提示させる指示を出力する情報処理装置。
【請求項８】
仮想空間内に仮想的な物体を配し、当該仮想空間内の画像を生成してユーザに提示する情報処理装置を用い、
受入手段が、ユーザからの操作を表す情報を受け入れる工程と、
表示手段が、当該受け入れた操作を表す情報に応じ、前記仮想空間内に、前記仮想的な物体を操作する仮想的なマニピュレータを表示する工程と、
決定手段が、前記仮想的なマニュピレータが前記仮想的な物体に対して与える仮想的な力の大きさを決定する工程と、
提示手段が、前記決定した力の大きさを表す情報をユーザに提示する工程と、
を有する情報処理方法。
【請求項９】
コンピュータを、
仮想空間内に仮想的な物体を配し、当該仮想空間内の画像を生成してユーザに提示する手段と、
ユーザからの操作を表す情報を受け入れる受入手段と、
当該受け入れた操作を表す情報に応じ、前記仮想空間内に、前記仮想的な物体を操作する仮想的なマニピュレータを表示するマニピュレータ表示手段と、
前記仮想的なマニュピレータが前記仮想的な物体に対して与える仮想的な力の大きさを決定する決定手段と、
前記決定した力の大きさを表す情報をユーザに提示する提示手段と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
仮想的な空間内に仮想的な物体（例えばブロック等）を配して、ユーザの操作によりブロックを仮想空間内で積み上げさせる処理等を行わせる情報処理装置がある。【０００３】
このとき、例えばユーザの手指に相当する仮想的な手指（マニピュレータ）を仮想空間内に表示して、ユーザの操作により、このマニピュレータの位置や指の姿勢（曲げ具合）を変化させつつ、マニピュレータの指が仮想空間内で仮想的なブロックをつまんだか否かを判断し、つまんだと判断している間は、当該マニピュレータの動きとつままれた仮想的なブロックの動きとを同期させて、あたかも仮想空間内でブロックをつかんで移動させているかのような表示を行わせる方法が知られている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の操作インタフェースでは、仮想空間内でのユーザの視野から見たときの仮想的な物体とマニピュレータの見え方が現実と相違することや、仮想的な物体を仮想的につまんだときに、ユーザに対してつまんだことを表すフィードバックを与えることが必ずしも容易でないため、ユーザは、対象物を実際につまんだことになっているのか、どのくらいの力でつまんでいるのかを知ることができず、操作性が低いという問題点があった。【０００５】
本発明は上記実情に鑑みて為されたもので、ユーザの操作性を向上できる情報処理装置、情報処理方法、及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【０００６】
上記従来例の問題点を解決する本発明は、仮想空間内に仮想的な物体を配し、当該仮想空間内の画像を生成してユーザに提示する情報処理装置であって、ユーザからの操作を表す情報を受け入れる受入手段と、当該受け入れた操作を表す情報に応じ、前記仮想空間内に、前記仮想的な物体を操作する仮想的なマニピュレータを表示するマニピュレータ表示手段と、前記仮想的なマニュピレータが前記仮想的な物体に対して与える仮想的な力の大きさを決定する決定手段と、前記決定した力の大きさを表す情報をユーザに提示する提示手段と、を有することとしたものである。
【発明の効果】
【０００７】
本発明によると、ユーザの操作性を向上できる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態に係る情報処理装置の構成例を表すブロック図である。
【図２】本発明の実施の形態に係る情報処理装置に接続される操作デバイスの構成例を表すブロック図である。
【図３】本発明の実施の形態に係る情報処理装置に接続される操作デバイスの概要例を表す説明図である。
【図４】本発明の実施の形態に係る情報処理装置の例を表す機能ブロック図である。
【図５】本発明の実施の形態に係る情報処理装置が表示する仮想的なマニピュレータの例を表す説明図である。
【図６】本発明の実施の形態に係る情報処理装置の動作例を表すフローチャート図である。
【図７】本発明の実施の形態に係る情報処理装置による情報提示の例を表す説明図である。
【発明を実施するための形態】
【０００９】
本発明の実施の形態について図面を参照しながら説明する。なお、以下の説明において各部の大きさやその比、配置等は一例であり、本実施の形態の例は、図示等した大きさや比率、配置に限られるものではない。
【００１０】
本発明の実施の形態に係る情報処理システムは、例えば家庭用ゲーム機等のコンピュータ機器を含むシステムであり、図１に例示するように、家庭用ゲーム機本体等の情報処理装置１と、この情報処理装置１に接続された操作デバイス２０とを含む。
【００１１】
操作デバイス２０は、ユーザの左手または右手の少なくとも一方に把持される。またこの操作デバイス２０は、ユーザの手にベルト等で固定されてもよい。
【００１２】
この操作デバイス２０は、図２にその概要を例示するように、制御部２１と、記憶部２２と、操作インタフェース２３と、センサ部２４と、通信部２５とを含んだ回路部を備えて構成される。
【００１３】
この操作デバイス２０は、その外形の概要を図３に例示するように、ユーザにより把持される把持部２１１と、操作部２１２と、指動作検出部２１３とを含む。把持部２１１は、本実施の形態の一例では実質的に多角形柱状をなしている。操作部２１２は、把持部２１１から連続して形成されており、図２の例では、ボタン等を含む。指動作検出部２１３は、センサ部２４に含まれるセンサの一つであり、ユーザが当該デバイス本体２１０を把持したときに、ユーザの指の曲げ具合の情報を得て、その検出結果の情報を出力する。なお、ここで指の曲げ具合の情報は、例えば指の関節の角度に関する情報でよい。ここでの関節は、ユーザの実際の関節ではなく、指の付け根と指先との間に一つだけ関節があるものとしてモデル化し、この指の付け根と指先との間にあるとした関節の角度を推定するものでよい。このような推定は、ボーンモデルによる推定など、広く知られた方法があり、それらを採用できるので、ここでの詳しい説明は省略する。なお、この指動作検出部２１３は、操作部２１２を兼ねてもよい。
【００１４】
またこの操作デバイス２０の大きさは、ユーザが自然にデバイス本体２１０を把持したときに、その一方端がユーザの親指（いわゆる親指）の先端が到達する位置よりやや外側に位置し、その他方端が、小指の付け根（ＭＰ関節に相当する位置）からやや突出する位置にある程度の大きさとする。なお操作デバイス２０は、操作デバイス２０を装着した状態でユーザが手を開いても落下しないよう、ユーザの手に、ベルト等（不図示）で固定されてもよい。
【００１５】
本実施の形態の制御部２１は、ＣＰＵ等のプログラム制御デバイスであり、記憶部２２に格納されたプログラムに従って動作する。本実施の形態ではこの制御部２１は、操作インタフェース２３を介してユーザが操作部２１２のボタン操作部２３１等においてした操作の内容を表す情報や、センサ部２４が検出したユーザの指の曲げ具合に関する情報を、操作の情報として通信部２５を介して情報処理装置１へ出力する。またこの制御部２１は、通信部２５を介して情報処理装置１から受信した情報に従い、操作デバイス２０の各部をコントロールする。
【００１６】
記憶部２２は、メモリデバイス等であり、制御部２１によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読かつ、非一時的な記憶媒体に格納されて提供され、この記憶部２２に複写されたものであってもよい。またこの記憶部２２は、制御部２１のワークメモリとしても動作する。
【００１７】
操作インタフェース２３は、操作部２１２に備えられたボタン操作部２３１等に対してユーザが行った操作の内容を表す情報を制御部２１に出力する。センサ部２４は、指動作検出部２１３を含む少なくとも一つのセンサを含み、各センサが出力する情報を制御部２１に出力する。
【００１８】
本実施の形態の一例では、指動作検出部２１３は、赤外線センサで構成され、デバイス本体２１０から、各指の指先までの距離を測定し、当該距離により各指の曲げ具合を推定するものであってもよい。また、この指動作検出部２１３は、デプスカメラ等であり、デバイス本体２１０から、各指の各点までの距離を測定することで、各指の曲げ具合を推定するものであってもよい。さらに別の例では、指動作検出部２１３は、操作に係る指ごとに設けられたアナログスイッチ（多段階で押下された量を表す情報を出力するスイッチ）であってもよい。この場合、対応するアナログスイッチの押下量に基づいて、対応する指の曲げ具合の情報が推定されて出力される。また、センサ部２４は、加速度センサ等、他のセンサを含んでもよい。
【００１９】
通信部２５は、ＵＳＢインタフェース等の有線インタフェースや、ブルートゥース（登録商標）等の無線インタフェースであり、制御部２１から入力される指示に従い、種々の情報を情報処理装置１に対して出力している。
【００２０】
情報処理装置１は、図１に例示したように、制御部１１と、記憶部１２と、インタフェース部１３と、出力部１４とを含んで構成されている。制御部１１は、ＣＰＵ等のプログラム制御デバイスであり、記憶部１２に格納されたプログラムに従って動作する。本実施の形態では制御部１１は、例えばゲームアプリケーションの処理として、仮想空間内に仮想的な物体を配し、当該仮想空間内の画像を生成してユーザに提示する処理を実行している。またこの制御部１１は、操作デバイス２０から、ユーザからの操作を表す情報を受け入れ、当該受け入れた操作を表す情報に応じ、上記ゲームアプリケーションの処理等で生成する仮想空間内に、仮想的な物体を操作する仮想的なマニピュレータを表示する。そして制御部１１は、この仮想的なマニュピレータが上記仮想的な物体に対して与える仮想的な力の大きさを決定し、当該決定した力の大きさを表す情報をユーザに提示する。この制御部１１の具体的な処理の内容については、後に詳しく述べる。
【００２１】
記憶部１２は、メモリデバイス等であり、制御部１１によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読かつ、非一時的な記憶媒体に格納されて提供され、この記憶部１２に複写されたものであってもよい。またこの記憶部１２は、制御部１１のワークメモリとしても動作する。
【００２２】
インタフェース部１３は、操作デバイス２０に無線又は有線にて接続され、操作デバイス２０からユーザの操作に係る情報を受け入れ、制御部１１に出力する。出力部１４は、例えばＨＤＭＩ（登録商標）インタフェース等、家庭用テレビジョンや、ヘッドマウントディスプレイに対して映像等を出力するインタフェースを有する。この出力部１４は、制御部１１から入力される指示に従い、表示するべき映像の情報を出力する。
【００２３】
次に、情報処理装置１の制御部１１の動作について説明する。この制御部１１は、機能的には図４に例示するように、仮想空間設定処理部１１１と、操作受入部１１２と、操作表示部１１３と、決定処理部１１４と、提示処理部１１５と、画像生成部１１６とを含んで構成される。
【００２４】
仮想空間設定処理部１１１は、例えばゲームアプリケーションなどのアプリケーションプログラムの処理の過程で、ゲーム空間等の仮想的な空間（仮想空間）の情報を設定する。本実施の形態の例では、この仮想空間は三次元的な空間であるものとする。具体的にこの仮想空間設定処理部１１１は、仮想空間内のアプリケーションプログラムによって指示される位置に、指示された仮想的な物体を配置することを表す情報を生成する。このような仮想空間内の情報の例については広く知られた方法を採用できるのでここでの詳しい説明は省略する。
【００２５】
操作受入部１１２は、操作デバイス２０が出力する、ユーザからの操作を表す情報を受け入れる。本実施の形態の一例において、この情報には、ユーザの、少なくとも一部の指についての曲げ具合を表す情報を含む。またこの操作受入部１１２は、操作デバイス２０を保持するユーザの手の位置と手の姿勢（手の平の法線方向など）とに関する情報を受け入れてもよい。このユーザの手の位置の移動に関する情報は、例えば図示しないカメラ等によって操作デバイス２０の移動を検出することで取得してもよいし、操作デバイス２０が備える加速度センサ等による検出の結果に基づいて取得してもよい。
【００２６】
操作表示部１１３は、操作受入部１１２が受け入れた操作を表す情報に応じて、仮想空間設定処理部１１１が設定した仮想空間内に、仮想的な物体を操作する仮想的なマニピュレータを表示する。
【００２７】
具体的にこのマニピュレータは、ユーザの手や指を表す三次元的なモデルであってもよい。この例では、マニピュレータには、図５に例示するように、ユーザの指の少なくとも一部に対応する、一つの関節を有する筒状の形状部分Ｆ１，Ｆ２…及び、扁平な板状をなす、手に相当する部分Ｈを含む。
【００２８】
操作表示部１１３は、仮想空間内のマニピュレータの位置、形状及び姿勢を、仮想空間設定処理部１１１が設定した仮想空間内の仮想的な物体に係る情報と、操作受入部１１２が受け入れた操作を表す情報とに基づいて決定する。一例として、マニピュレータが図５に例示したように、ユーザの手に相当する部分Ｈと、各指に対応する部分Ｆ１，Ｆ２…を有する場合、操作表示部１１３は、手に相当する部分Ｈの位置及び姿勢（外接直方体の比較的広い面の法線方向）を、ユーザの手の位置及び姿勢に関する情報に基づいて設定する。また、操作表示部１１３は、マニピュレータのうちユーザの指に相当する部分Ｆ１，Ｆ２…の姿勢（関節の角度）を、対応するユーザの指の曲げ具合に応じて仮に決定する。
【００２９】
すなわち操作表示部１１３は、仮想空間内で、マニピュレータの手に相当する部分Ｈの位置及び姿勢を、ユーザの手の位置及び姿勢に関する情報に基づいて設定し、ユーザの指に相当する部分Ｆ１，Ｆ２…の形状（関節の角度）を、対応するユーザの指の曲げ具合と等しいものとして仮に設定する。そして操作表示部１１３は、この設定を行ったとき、ユーザの指に相当する部分Ｆ１，Ｆ２…の先端と、仮想空間内に配された物体との位置が衝突する（同じ位置を占めることとなる）か否かを調べる。操作表示部１１３は、ユーザの指に相当する部分Ｆ１，Ｆ２…のうち、その先端（手Ｈ側とは異なる側の端部）と、仮想空間内に配された物体との位置が衝突しないと判断した部分の関節の角度については、仮に決定した対応するユーザの指の曲げ具合と等しい角度のままとする。
【００３０】
一方、操作表示部１１３は、ユーザの指に相当する部分Ｆ１，Ｆ２…のうち、その先端と、仮想空間内に配された物体との位置が衝突すると判断した部分（Ｆｎとする）の関節の角度については、当該部分Ｆｎの先端が仮想空間内に配された物体に接触する角度に変更する。一例として操作表示部１１３は、当該部分Ｆｎの先端が仮想空間内に配された物体との位置が衝突しない状態となるまで、仮に決定した対応するユーザの指の曲げ具合と等しい角度Ｆθｎから水平（１８０度）に近い側へ所定の角度Δθずつ変更する。そして、操作表示部１１３は、当該部分Ｆｎの先端が仮想空間内に配された物体との位置が衝突しない状態となったときの関節の角度を、当該部分Ｆｎの関節の角度とする。
【００３１】
決定処理部１１４は、操作表示部１１３が設定した仮想的なマニュピレータが、当該マニピュレータに接触している仮想的な物体に対して与える仮想的な力の大きさを決定する。本実施の形態の一例として、マニピュレータが図５に例示したように、ユーザの手に相当する部分Ｈと、各指に対応する部分Ｆ１，Ｆ２…を有する場合、この決定処理部１１４は、ユーザの指に相当する部分Ｆ１，Ｆ２…ごとに、それぞれの関節の角度Ｆθ１，Ｆθ２…と、当該部分Ｆ１，Ｆ２…のそれぞれに対応するユーザの指の曲げ具合の情報θ１，θ２…との差、
ｆ１＝θ１−Ｆθ１、
ｆ２＝θ２−Ｆθ２、…
を、マニュピレータが、当該マニピュレータに接触している仮想的な物体に対して与える仮想的な力の大きさとしてそれぞれ求める。
【００３２】
提示処理部１１５は、決定処理部１１４が決定した力の大きさを表す情報をユーザに提示する。本実施の形態の一例では、提示処理部１１５は、マニピュレータの指に対応する部分Ｆ１，Ｆ２…ごとに、決定処理部１１４が決定した力の大きさの値ｆ１，ｆ２…に応じて、色を設定する。例えば、この色は、彩度Ｃｓ、明度Ｃｂ、色相Ｃｈのうち、彩度Ｃｓ、色相Ｃｈは予め定めておき、部分Ｆｎの明度の値Ｃｂｎを、決定された対応する力の大きさの値ｆｎを用いて、Ｃｂｎ＝Ｃｂ0＋αｆｎと定める。ここでＣｂ0は、ｆ＝０（物体に触れていない状態）での値とし、αは適宜実験的に定める。
【００３３】
画像生成部１１６は、仮想空間設定処理部１１１が設定した仮想空間内の仮想的な物体と、操作表示部１１３がその位置や姿勢、形状を設定し、提示処理部１１５にて色が決定された仮想的なマニピュレータとを、仮想空間内の所定の位置に配した仮想的なカメラから見た、所定の視野の画像としてレンダリングし、画像を生成する。
【００３４】
制御部１１は、この画像生成部１１６が生成した画像を、出力部１４を介してディスプレイや、ヘッドマウントディスプレイに出力して、ユーザに仮想空間内の画像を提示する。また、制御部１１は、操作表示部１１３が設定したマニピュレータと、仮想空間設定処理部１１１が設定した仮想空間内の仮想的な物体とが接触しているときには、決定処理部１１４が求めた力の大きさとマニピュレータとの接触角度等に応じて、仮想的な物体の位置及び姿勢を変更してもよい。例えば、マニピュレータの部分が一ヶ所だけで仮想的な物体に接しているときには、当該部分に力が加わったとして、力の方向に仮想的な物体を移動させる。また、マニピュレータの部分が二ヶ所以上、仮想的な物体に接しているときには、マニピュレータにより仮想的な物体が捉まれていると判断して、マニピュレータの移動量に合わせて仮想的な物体の位置を移動する（つかんで移動している状態を表す）。
【００３５】
［動作］
本実施の形態は、以上の構成を備えており、次のように動作する。ユーザは、例えばヘッドマウントディスプレイを装着し、左右の手の少なくとも一方には、指の曲げ具合を測定するセンサを備えた操作デバイス２０を装着するものとする。
【００３６】
情報処理装置１は、ヘッドマウントディスプレイに対して表示させる画像を生成する。本実施の形態では、この情報処理装置１は、仮想空間内の画像を所定の視野から見た像としてレンダリングして出力するものとする。この視野はヘッドマウントディスプレイの位置、角度に応じて変更されてもよい。
【００３７】
情報処理装置１は、図６に例示するように、表示の対象とする仮想空間内に、例えばゲームアプリケーションの処理として、仮想的な物体を配する。また情報処理装置１は、ユーザの手に対応する仮想的なマニピュレータをこの仮想空間内に配する（初期化処理：Ｓ１）。
【００３８】
ここでユーザが仮想空間内の画像を参照して、仮想空間内の仮想的な物体をつかむため、仮想的な物体の方向に手を移動すると、情報処理装置１は、例えば操作デバイス２０から当該手の移動量に関する情報を受け入れて（Ｓ２）、当該手の移動量に応じた移動量だけ、仮想空間内のマニピュレータの位置を移動して設定する（Ｓ３）。
【００３９】
またユーザが仮想的な物体を指でつかむべく、指を曲げていくと、当該指の曲げ具合の情報が操作デバイス２０により検出されて情報処理装置１に出力される。情報処理装置１は、指の曲げ具合の情報を受け入れて（Ｓ４）、マニピュレータの、各指に対応する部分の関節の角度を、処理Ｓ４で受け入れた、対応する指の曲げ具合の情報に基づいて設定する（Ｓ５）。このとき、情報処理装置１は、マニピュレータの各指に対応する部分について、仮想空間内の仮想的な物体との衝突を判定し（Ｓ６）、衝突していると判定したとき（Ｓ６：Ｙｅｓ）には、仮想的な物体の面に触れている状態となる関節の角度まで、衝突したと判定したマニピュレータの指に対応する部分の関節の角度を補正する（Ｓ７）。
【００４０】
情報処理装置１は、マニピュレータの、各指に対応する部分の色を、対応する指の曲げ具合の情報に基づいて設定した角度と、処理Ｓ７にて補正した後の角度とに応じて変更する（Ｓ８）。例えば、これらの角度の差に比例した明度の色に設定する。
【００４１】
なお、処理Ｓ６において指に対応する部分が仮想空間内の仮想的な物体と衝突していないと判断したとき（処理Ｓ６：Ｎｏ）は、処理Ｓ７，Ｓ８は行わない。このとき、当該部分は、予め定められた色（初期の色）に設定される。情報処理装置１は、処理Ｓ５からＳ８をマニピュレータの各指に対応する部分ごとに繰り返す。
【００４２】
そして情報処理装置１は、当該設定後の仮想空間内の画像をレンダリングして生成し、ヘッドマウントディスプレイに出力してユーザに提示する（Ｓ９）。
【００４３】
このように本実施の形態では、図７に例示するように、指の曲げ具合に応じて設定されたマニピュレータの当該指に対応する部分Ｆｎの関節の角度がθｎであるときに仮想空間内の仮想的な物体Ｘと衝突すると判定されると、情報処理装置１は、当該物体Ｘに触れる関節角度Ｆθｎとなるまで、関節の角度を補正する。
【００４４】
従ってユーザが指示した角度θｎまでは、仮想的なマニピュレータの関節の角度は変更されず、その差θｎ−Ｆθｎが生じることとなる。本実施の形態の情報処理装置１は、この差θｎ−Ｆθｎによって、マニピュレータの対応する関節に係る部分Ｆｎの色を変更する（図７（ａ））。ユーザが実際に指の曲げ具合を変えて指を伸ばしていく（関節を開いていく）と、この角度の差θｎ−Ｆθｎは小さくなり、衝突しないと判定される角度となると、以降はこの角度の差は「０」となる。この場合、マニピュレータの対応する関節に係る部分Ｆｎの色は変更前の予め定められた色となる（図７（ｂ））。なお、図７では図示の都合上、色の変化をハッチングで示している。
【００４５】
ユーザは表示されたマニピュレータの部分の色を参照することで、自らがどの程度の（仮想的な）力で仮想的な物体を把持している状態となっているかを知ることができ、詳細な力の調整が可能となってユーザの操作性を向上できる。
【００４６】
［提示方法の他の例］
ここまでの説明では、制御部１１の提示処理部１１５は、決定処理部１１４が決定した力の大きさを表す情報をユーザに提示するため、マニピュレータの指に対応する部分Ｆ１，Ｆ２…ごとに、決定処理部１１４が決定した力の大きさの値ｆ１，ｆ２…に応じて、色を設定することとしていた。しかしながら本実施の形態はこれに限られない。例えば、提示処理部１１５は、色に代えて、あるいは色とともにマニピュレータの指に対応する部分Ｆ１，Ｆ２…ごとに、決定処理部１１４が決定した力の大きさの値ｆ１，ｆ２…に応じて、テクスチャを変更してもよい。
【００４７】
一例として、制御部１１は、テクスチャの密度（繰り返し周期）を、決定処理部１１４が決定した力の大きさの値ｆ１，ｆ２…に応じて変更すればよい。
【００４８】
また、制御部１１の提示処理部１１５は、色またはテクスチャに代えて、あるいはそれらの少なくとも一方とともに、マニピュレータの指に対応する部分Ｆ１，Ｆ２…ごとに、透過度を変更してもよい。
【００４９】
さらに制御部１１の提示処理部１１５は、マニピュレータの指に対応する部分Ｆ１，Ｆ２…ごとに、色を周期的に変更させ、その色の変更周期を、決定処理部１１４が決定した力の大きさの値ｆ１，ｆ２…に応じて決定してもよい。例えば力ｆｎが大きくなると、対応するマニピュレータの指に対応する部分Ｆｎの色の変更周期が短くなるように設定する。
【００５０】
これらによっても、ユーザは表示されたマニピュレータの部分の色やその変更周期、テクスチャ、透過度を参照することで、自らがどの程度の（仮想的な）力で仮想的な物体を把持している状態となっているかを知ることができ、ユーザの操作性を向上できる。
【００５１】
さらにここまでの例では、制御部１１の提示処理部１１５は、決定処理部１１４が決定した力の大きさを表す情報をユーザに提示するため、マニピュレータの指に対応する部分Ｆ１，Ｆ２…ごとに、決定処理部１１４が決定した力の大きさの値ｆ１，ｆ２…に応じて、色等を設定することとしていたが本実施の形態はこれに限られず、提示処理部１１５は、マニピュレータの指に対応する部分Ｆ１，Ｆ２…の色等に代えて、あるいはそれとともに、マニピュレータの指に対応する部分Ｆ１，Ｆ２…が接触している仮想的な物体の面（仮想的な物体の少なくとも一部）の色、テクスチャ、透過度、色の変更周期を異ならせてもよい。
【００５２】
さらに本発明の実施の形態の別の例では、マニピュレータの指に対応する部分Ｆ１，Ｆ２…ごとに、決定処理部１１４が決定した力の大きさの値ｆ１，ｆ２…に応じて当該部分Ｆｎの大きさ（体積）や形状等を変更してもよい。
【００５３】
［情報の提示態様の他の例］
また本実施の形態では、提示処理部１１５が、決定処理部１１４により決定された力の大きさを表す情報を提示するにあたり、対応するマニピュレータが接触している仮想的な物体の部分の大きさにより、色、テクスチャまたは透過度を変化させる領域の大きさを異ならせてもよい。
【００５４】
例えば仮想空間内の仮想的な物体が多面体（ポリゴン等）で表されている場合に、提示処理部１１５は、マニピュレータの指に対応する部分Ｆ１，Ｆ２…のうち、対応する力の大きさの値ｆｎが「０」でないもの（ユーザの指の曲げ具合に基づいて関節角度を決定したときに、物体と衝突すると判定されたもの）のそれぞれについて、当該部分に最も近接する仮想的な物体の面の面積を求める。ここで、最も近接する物体の面は、操作表示部１１３が衝突したと判定したときに接触していた面とすればよい。
【００５５】
提示処理部１１５は、当該求めた面積に応じて、マニピュレータの指に対応する部分Ｆまたは当該部分が接触する仮想的な物体の部分の色、テクスチャまたは透過度を変化させる領域の大きさを異ならせる。例えば、提示処理部１１５は、マニピュレータの指に対応する部分Ｆの先端部分を中心とする半径ｒの範囲の色（またはテクスチャ、透過度等）を力の大きさによって異ならせ、この半径ｒを、当該部分Ｆに最も近接する仮想的な物体の面の面積に比例した値とする。
【００５６】
これによると、マニピュレータの指に相当する部分の先端のどの程度の範囲の色が変更されるかによって、ユーザは、つかもうとしている物体の面の大きさを知ることが可能となる。
【００５７】
［ゲージによる表示］
さらに本実施の形態の一例では、提示処理部１１５は、マニピュレータの指に対応する部分Ｆまたは当該部分が接触する仮想的な物体の部分の色、テクスチャまたは透過度を変化させるのに代えて、またはそれとともに、対応する部分の近傍（対応する部分から予め定めた距離の範囲にある位置）に、決定処理部１１４により決定された、対応する力の大きさを表すゲージ（力の大きさに応じて伸縮するバー、または力の大きさに応じて色の変わる範囲が制御される円グラフ状のゲージ）を表示してもよい。あるいは、このゲージの表示位置は、マニピュレータの手の部分Ｈであってもよい。
【００５８】
［操作デバイスに対して情報提示する例］
さらに本実施の形態のある例では、提示処理部１１５は、ユーザに提示する画像を変更するのではなく、操作デバイス２０に対して、ユーザに情報を提示するよう指示してもよい。
【００５９】
この例では、操作デバイス２０がＶＣＭ（Voice Coil Motor）や、偏心モーター（ＥＲＭ：Eccentric Rotating Mass）、スピーカー等の振動素子を内蔵しているものとする。
【００６０】
この例に係る提示処理部１１５は、操作デバイス２０に対して、指ごとに決定処理部１１４が決定した力の大きさに係る情報を送信する。操作デバイス２０の制御部２１は受信した情報が表す力の大きさに応じて、ＶＣＭ等の振動素子の振動態様を制御する。
【００６１】
ここでの振動態様の制御は、一例として、受信した情報が表す力の大きさが大きいほど、振幅を大きくするなど振幅を変更する制御や、受信した情報が表す力の大きさが大きいほど、振動の周期を短くするなど、振動周期を変更する制御等がある。また、振動を断続的に行い、振動していない時間の長さを、受信した情報が表す力の大きさに応じて制御することとしてもよい。これによると、情報処理装置１において決定した力の大きさに係る情報に応じて、音や振動の大きさ、周波数、振動のテンポ（断続的振動の周期）等が変動するので、ユーザは振動の状態を通じて、自らがどの程度の（仮想的な）力で仮想的な物体を把持している状態となっているかを知ることができ、詳細な力の調整が可能となってユーザの操作性を向上できる。
【００６２】
また操作デバイス２０は、振動素子をユーザの指ごと（少なくとも情報処理装置１が表示するマニピュレータの各指の部分に対応する指ごと）に備えていてもよい。この場合、例えば、ユーザは、各振動素子の振動が伝達される位置にそれぞれの指を配して操作デバイス２０を把持する。
【００６３】
そして操作デバイス２０の制御部２１はマニピュレータの指の部分ごとに決定処理部１１４が決定した力の大きさに係る情報を受信して、当該情報に応じて、対応する指が配された位置に振動を伝達する振動素子の振動の振幅、周波数、あるいは断続的な振動を与える場合の断続的振動の周期を変更する。この場合、ユーザは、指ごとに、振動の状態を通じて、自らがどの程度の（仮想的な）力で仮想的な物体を把持している状態となっているかを知ることができ、詳細な力の調整が可能となってユーザの操作性を向上できる。
【００６４】
また、ここでは振動をさせる場合を例として説明したが、操作デバイス２０は振動素子に代えて、あるいはこれとともに、発熱素子（電気的信号出力により発熱温度を制御可能なデバイス）を備えてもよい。この場合、操作デバイス２０の制御部２１は、指ごとに決定処理部１１４が決定した力の大きさに係る情報を送信する。操作デバイス２０の制御部２１は受信した情報が表す力の大きさに応じて、当該発熱素子の発熱温度を制御する。この発熱素子も、ユーザの指が配される位置ごとに設けられ、制御部２１が対応する指に対して、受信した情報に含まれる、対応する力の大きさの情報に応じて、指ごとに発熱素子の発熱温度を制御してもよい。
【００６５】
［マニピュレータの他の例］
また、ここまでの説明では、仮想的なマニピュレータは、ユーザの手の形状を模して、手の部分と指の部分とを有する形状としたが、本実施の形態はこれに限られず、開閉可能なつかみ具を模した形状として、つかみ具の開度をユーザの指の曲げ具合に応じて決定してもよい。一例としてこの開度は、ユーザの各指の曲げ具合の情報の平均値等の統計量に応じて決定してもよい。
【００６６】
この例では、情報処理装置１は、ユーザの指の曲げ具合に応じて決定した開度と、仮想空間内の物体との衝突判定の結果、補正された開度との差によって、仮想的なマニュピレータが仮想的な物体に対して与える仮想的な力の大きさを決定する。
【符号の説明】
【００６７】
１  情報処理装置、１１  制御部、１２  記憶部、１３  インタフェース部、１４  出力部、２０  操作デバイス、２１  制御部、２２  記憶部、２３  操作インタフェース、２４  センサ部、２５  通信部、１１１  仮想空間設定処理部、１１２  操作受入部、１１３  操作表示部、１１４  決定処理部、１１５  提示処理部、１１６  画像生成部、２１０  デバイス本体、２１１  把持部、２１２  操作部、２１３  指動作検出部。
【図１】
2019123530.tif 000003
【図２】
2019123530.tif 000004
【図３】
2019123530.tif 000005
【図４】
2019123530.tif 000006
【図５】
2019123530.tif 000007
【図６】
2019123530.tif 000008
【図７】
2019123530.tif 000009
【国際調査報告】
2019123530.tif 000010
2019123530.tif 000011