(57)【要約】      （修正有）【課題】処理の精度の向上とユーザの操作性とを両立させる技術を提供する。【解決手段】画像処理装置は、ユーザを代表する代表位置と物体の位置との近さを算出する近さ算出手段５２と、算出された近さに応じた精度で前記物体の仮想空間における動きを決定する動き決定手段５３と、決定された動きに基づいて画像を描画する描画手段５４と、を含む。【選択図】図４
2017083995.tif 000002
【特許請求の範囲】
【請求項１】
ユーザを代表する代表位置と物体の位置との近さを算出する近さ算出手段と、
算出された近さに応じた精度で前記物体の仮想空間における動きを決定する動き決定手段と、
決定された動きに基づいて画像を描画する描画手段と、
を含むことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
実空間において前記ユーザにより指示された実指示位置を前記物体の位置として取得する実指示位置取得手段をさらに含み、
前記代表位置は実空間における前記ユーザの位置であり、
前記動き決定手段は、前記近さに応じた精度で仮想空間における指示位置である仮想指示位置の動きを決定することにより前記物体の動きを決定する、
画像処理装置。
【請求項３】
請求項２に記載の画像処理装置において、
前記動き決定手段は、前記代表位置と前記実指示位置とが近いほど、前記代表位置と実指示位置との距離に対する、仮想空間におけるユーザを代表する仮想代表位置と仮想指示位置との距離の比が大きくなるように仮想指示位置の動きを決定する、
画像処理装置。
【請求項４】
請求項１に記載の画像処理装置において、
前記代表位置は仮想空間における前記ユーザを代表する位置であり、
前記物体の位置は仮想空間において前記ユーザが指し示す位置であり、
前記動き決定手段は、前記近さに応じて判定閾値を決定し、前記決定された判定閾値より距離が小さい仮想空間内の物体を検出し、前記検出された前記物体の動きを決定する、
画像処理装置。
【請求項５】
ユーザを代表する代表位置と物体の位置との近さを算出するステップと、
算出された近さに応じた精度で前記物体の仮想空間における動きを決定するステップと、
決定された動きに基づいて画像を描画するステップと、
を含むことを特徴とする画像処理方法。
【請求項６】
ユーザを代表する代表位置と物体の位置との近さを算出する近さ算出手段、
算出された近さに応じた精度で前記物体の仮想空間における動きを決定する動き決定手段、および、
決定された動きに基づいて画像を描画する描画手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置、画像処理方法およびプログラムに関する。
【背景技術】
【０００２】
ユーザが、コントローラの操作により３次元的な位置を入力したり、操作対象の仮想空間内の物体を選択することにより、ユーザの操作と仮想空間内の物体とのインタラクションを実現する技術がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
インタラクションのリアリティを向上させるために、インタラクションに関する処理の精度を高くすることが考えられる。例えば、操作量と仮想空間内の動きの比や、接触判定に用いる閾値となる距離などを変更することにより、インタラクションのリアリティを向上させるとともに細かい操作を可能にすることができる。一方、単に精度を高くすると、ユーザに細かい操作を強いることになるなどの理由により、ユーザの期待に応じた操作ができないことが懸念される。
【０００４】
本発明は上記課題を鑑みてなされたものであって、その目的は、処理の精度の向上とユーザの操作性とを両立させる技術を提供することである。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明にかかる画像処理装置は、ユーザを代表する代表位置と物体の位置との近さを算出する近さ算出手段と、算出された近さに応じた精度で前記物体の仮想空間における動きを決定する動き決定手段と、決定された動きに基づいて画像を描画する描画手段と、を含む。
【０００６】
また、本発明にかかる画像処理方法は、ユーザを代表する代表位置と物体の位置との近さを算出するステップと、算出された近さに応じた精度で前記物体の仮想空間における動きを決定するステップと、決定された動きに基づいて画像を描画するステップと、を含む。
【０００７】
また、本発明にかかるプログラムは、ユーザを代表する代表位置と物体の位置との近さを算出する近さ算出手段、算出された近さに応じた精度で前記物体の仮想空間における動きを決定する動き決定手段、および、決定された動きに基づいて画像を描画する描画手段、としてコンピュータを機能させる。
【０００８】
本発明によれば、処理の精度の向上とユーザの操作性とを両立させることができる。
【０００９】
本発明の一形態では、画像処理装置は実空間において前記ユーザにより指示された実指示位置を前記物体の位置として取得する実指示位置取得手段をさらに含み、前記代表位置は実空間における前記ユーザの位置であり、前記動き決定手段は、前記近さに応じた精度で仮想空間における指示位置である仮想指示位置の動きを決定することにより前記物体の動きを決定してもよい。
【００１０】
本発明の一形態では、前記動き決定手段は、前記代表位置と前記実指示位置とが近いほど、前記代表位置と実指示位置との距離に対する、仮想空間におけるユーザを代表する仮想代表位置と仮想指示位置との距離の比が大きくなるように仮想指示位置の動きを決定してもよい。
【００１１】
本発明の一形態では、前記代表位置は仮想空間における前記ユーザを代表する位置であり、前記物体の位置は仮想空間において前記ユーザが指し示す位置であり、前記動き決定手段は、前記近さに応じて判定閾値を決定し、前記決定された判定閾値より距離が小さい仮想空間内の物体を検出し、前記検出された前記物体の動きを決定してもよい。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態にかかる画像処理装置のハードウェア構成の一例を示す図である。
【図２】ユーザが画像処理装置を使用する際の入出力デバイスの使用方法を説明する図である。
【図３】表示される画像の一例を示す図である。
【図４】画像処理装置が実現する機能を示すブロック図である。
【図５】ユーザからの距離と精度との関係を模式的に示す図である。
【図６】画像処理装置の処理フローの一例を示す図である。
【図７】実空間におけるユーザからの距離と仮想空間における距離との関係を示す図である。
【図８】実空間における距離と位置との関係を示す図であ
【図９】仮想空間における位置と実空間における距離との関係を示す図である
【図１０】モード決定部、操作判定閾値決定部、被操作オブジェクト決定部に関わる処理フローの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下では、本発明の実施形態について図面に基づいて説明する。出現する構成要素のうち同一機能を有するものには同じ符号を付し、その説明を省略する。
【００１４】
図１は、本発明の実施形態にかかる画像処理装置１のハードウェア構成の一例を示す図である。画像処理装置１は、パーソナルコンピュータや家庭用ゲーム機、または携帯情報端末である。画像処理装置１は、プロセッサ１１、記憶部１２、通信部１３、操作入力部１４、表示制御部１５を含む。
【００１５】
プロセッサ１１は、記憶部１２に格納されているプログラムに従って動作し、通信部１３や操作入力部１４、表示制御部１５等を制御する。なお、上記プログラムは、フラッシュメモリ等のコンピュータで読み取り可能な記憶媒体に格納されて提供されるものであってもよいし、インターネット等のネットワークを介して提供されるものであってもよい。
【００１６】
記憶部１２は、ＤＲＡＭやフラッシュメモリ等のメモリ素子によって構成されている。記憶部１２は、上記プログラムを格納する。また、記憶部１２は、プロセッサ１１や通信部１３等から入力される情報や演算結果を格納する。
【００１７】
通信部１３は有線ＬＡＮや無線ＬＡＮを構成する集積回路やコネクタ、アンテナなどにより構成されている。通信部１３は、ネットワークを介して他の装置と通信する機能を有する。通信部１３は、プロセッサ１１の制御に基づいて、他の装置から受信した情報をプロセッサ１１や記憶部１２に入力し、他の装置に情報を送信する。
【００１８】
操作入力部１４は、ユーザの操作を検出するハードウェアからの入力を取得する回路である。操作入力部１４は、例えばユーザが位置を入力する位置入力デバイスやキーボード等の入力デバイスから入力を取得し、検出された情報をプロセッサ１１や記憶部１２に入力する。
【００１９】
表示制御部１５はディスプレイ等の表示出力デバイスを制御する回路を含んでいる。表示制御部１５は、プロセッサ１１の制御に基づいて、表示出力デバイスに画像を表示させる。
【００２０】
図２は、ユーザ６１が画像処理装置１を使用する際の入力デバイス等の使用方法の一例を説明する図である。図２の例は、ユーザ６１を上からみた図である。本実施形態の例では、入力デバイスとしてモーションコントローラ６２，６３、カメラ６４を用い、表示出力デバイスとしてヘッドマウントディスプレイ６５を用いる。
【００２１】
モーションコントローラ６２，６３のそれぞれは、カメラ６４に位置を認識させるためのボール部と、ユーザ６１に握らせるための把持部とを有する。把持部には、ボタンが設けられており、ユーザ６１がボタンを操作すると、モーションコントローラ６２，６３は無線を介して操作入力部１４へそのボタンの操作の情報を送信し、操作入力部１４はその情報を取得する。カメラ６４は、モーションコントローラ６２，６３のボール部を含む画像を撮影し、その撮影された画像内でのボール部の位置および大きさに基づいて、モーションコントローラ６２，６３が実空間において指示する位置である実指示位置を検出する。操作入力部１４は、その検出されたモーションコントローラ６２，６３の実指示位置を取得する。
【００２２】
ヘッドマウントディスプレイ６５は、ユーザ６１の頭部に装着するディスプレイであり、ユーザ６１の目前に画像を表示する。その表示された画像が視差を考慮したものである場合は、ユーザ６１は画像に含まれる物体を立体的に認識することができる。ヘッドマウントディスプレイ６５は、ユーザ６１にとって臨場感が高い画像を表示することができる。また、視差があると、ユーザ６１は仮想空間内の物体の３次元的な位置を正確に認識できるようになり、ユーザ６１は仮想空間内の物体とのよりよいインタラクションを体験できる。
【００２３】
図３は、表示される画像の一例を示す図である。本実施形態で表示される画像は、仮想空間内のユーザ６１の位置（以下では「仮想代表位置」と記載する）における視点の向きに対する３次元画像である、この画像において、モーションコントローラ６２，６３が指示する実指示位置に相当する仮想空間内の位置（以下では「仮想指示位置」とも呼ぶ）に指示オブジェクト７２，７３が表示されている。また、指示オブジェクト７３により操作される被操作オブジェクト７４も表示されている。なお、モーションコントローラ６２，６３の操作により仮想代表位置が移動したり、仮想空間におけるユーザ６１の視点の向きが変化したり、仮想空間内で画像が描画される範囲内にあるオブジェクトの位置や向きが変化すると、画像処理装置１はそれらの変化が反映された画像を描画し、その画像をヘッドマウントディスプレイ６５等の表示出力デバイスに表示させる。
【００２４】
図４は、本実施形態にかかる画像処理装置１が実現する機能を示すブロック図である。画像処理装置１は機能的に、実位置取得部５１、距離算出部５２、動作決定部５３、画像描画部５４を含む。また、動作決定部５３は、仮想指示位置決定部５６、モード決定部５７、操作判定閾値決定部５８、被操作オブジェクト決定部５９、物理計算部６０を含む。
【００２５】
実位置取得部５１は、主に、プロセッサ１１が記憶部１２に記憶されるプログラムを実行し、モーションコントローラ６２または６３やカメラ６４からの情報を取得する操作入力部１４からの情報を処理し、処理結果を記憶部１２に格納することにより実現される。距離算出部５２、動作決定部５３は、主に、プロセッサ１１が記憶部１２に記憶されるプログラムを実行し、記憶部１２等に格納された情報を処理し、処理結果を記憶部１２に格納することにより実現される。画像描画部５４は、主に、プロセッサ１１が記憶部１２に記憶されるプログラムを実行し、記憶部１２等に格納された情報を処理し、表示出力デバイスが画像を表示するよう表示制御部１５を制御することにより実現される。
【００２６】
実位置取得部５１は、実空間においてユーザ６１により指示された実指示位置を取得する。また、実位置取得部５１は、実空間におけるユーザ６１の位置（「実代表位置」と呼ぶ）を取得する。実位置取得部５１が取得する実指示位置および実代表位置は、３次元空間における位置である。本実施形態では実指示位置はモーションコントローラ６２，６３のボール部の位置であるが、ユーザ６１の手の位置そのものであってもよい。実代表位置はヘッドマウントディスプレイ６５の位置（ユーザ６１の視点に相当する位置）であってもよいし、ユーザ６１の胸部に対して少し前の位置のようなユーザ６１の近傍の位置であってもよい。
【００２７】
距離算出部５２は、ユーザ６１を代表する代表位置と物体の位置との近さを算出する。より具体的には、距離算出部５２は、ユーザ６１の実代表位置と実指示位置との近さや、仮想代表位置と仮想空間内のオブジェクトの位置との近さを算出する。前者の場合、近さの算出に用いられる物体はユーザ６１が位置を指示する物体であり、例えばモーションコントローラ６２，６３やユーザ６１の手である。
【００２８】
動作決定部５３は、算出された近さに応じた精度で仮想空間における物体の動きを決定する。動作決定部５３により上記精度で決定される仮想空間における物体の動きには、仮想空間内に配置されるユーザ６１以外のオブジェクトの動きや、仮想指示位置により示される指示オブジェクト７２，７３の動きが含まれる。
【００２９】
図５は、ユーザ６１からの距離と精度との関係を模式的に示す図である。例えば、図５において、動作決定部５３は、所定の値より距離が小さい領域（一点鎖線よりユーザ６１に近い領域）である高精度領域６８では、その所定の値より距離が大きい領域である低精度領域６９より物体の動きの精度が高くなるように物体の動きを決定する。また、例えば、高精度領域６８にモーションコントローラ６３がある場合には、低精度領域６９にモーションコントローラ６３がある場合に比べて、動作決定部５３は高精度に仮想指示位置を求める。
【００３０】
画像描画部５４は、決定された物体の動きに基づいて、仮想空間における物体の３次元画像を描画する。画像描画部５４は、仮想空間において、仮想代表位置からユーザ６１の視点の向きをみた場合の画像を描画する。
【００３１】
仮想指示位置決定部５６は、実代表位置と実指示位置の近さと、実指示位置と、に基づいて、仮想指示位置の動きを決定する。
【００３２】
モード決定部５７は、ユーザ６１の操作に基づいて、現在のモードが、インタラクションモードであるか否かを決定する。インタラクションモードは、ユーザ６１が実指示位置を移動させることで仮想空間内にある被操作オブジェクト７４を操作できるモードである。
【００３３】
操作判定閾値決定部５８は、代表位置と物体の位置との近さに基づいて、判定閾値を決定する。この判定閾値は、仮想空間内にあるオブジェクトが、操作の対象となる被操作オブジェクト７４であるか否かを判定するためのものである。操作判定閾値決定部５８が用いる代表位置と物体の位置との近さは、仮想代表位置と仮想指示位置との近さであってもよいし、仮想代表位置と指示オブジェクト７２，７３と異なる仮想空間内のオブジェクトの位置との近さであってもよい。
【００３４】
被操作オブジェクト決定部５９は、決定された判定閾値に基づいて被操作オブジェクト７４を検出する。より具体的には、被操作オブジェクト決定部５９は、指示オブジェクト７２，７３やユーザ６１と異なる仮想空間内の複数のオブジェクトのうち、仮想指示位置との距離が判定閾値より小さいオブジェクトを被操作オブジェクト７４として検出する。
【００３５】
物理計算部６０は、仮想空間において、被操作オブジェクト７４を含む複数のオブジェクトの動きが物理法則に従うように複数のオブジェクトの動きを算出する。なお、物理計算部６０は、複数のオブジェクトのそれぞれと仮想代表位置との近さに応じた精度で、そのオブジェクトの動きを算出してもよい。
【００３６】
図６は、画像処理装置１の処理フローの一例を示す図である。はじめに、実位置取得部５１は、実指示位置やボタン操作を取得する（ステップＳ１０１）。実位置取得部５１は、そのボタン操作として、例えば、現時点でボタンが押されているか、ボタンが新たに押下されたか、ボタンが離されたか、のそれぞれを検出する。また、実位置取得部５１は現在の実指示位置およびユーザ６１を代表する位置である実代表位置も取得する。
【００３７】
次に、距離算出部５２は、ユーザ６１の実代表位置と、実指示位置との距離を算出する（ステップＳ１０２）。距離算出部５２は、ユーザ６１の実代表位置と実指示位置との近さとして、実代表位置と実指示位置との３次元的な距離を求めてもよいし、実代表位置および実指示位置の水平成分のみを用いて２次元的な距離を求めてもよい。
【００３８】
仮想指示位置決定部５６は、算出された実代表位置と実指示位置との距離に基づいて、実指示位置を仮想指示位置に対応する仮想空間内の位置に変換する（ステップＳ１０３）。また、仮想指示位置決定部５６は、現時点の仮想指示位置と、変換された仮想空間内の位置とに基づいて、仮想指示位置の移動速度と回転速度とを決定する。仮想空間内のオブジェクトと指示オブジェクト７２，７３との衝突等が無い場合は、決定された移動速度により移動された仮想指示位置と変換された仮想空間内の位置とは同じとなる。より具体的には、仮想指示位置決定部５６は、仮に衝突等が発生しない場合に、実代表位置と実指示位置とが近いほど、実代表位置と実指示位置との距離に対する仮想代表位置と仮想指示位置との距離の比が大きくなるように仮想指示位置の動きを決定する。見方を変えると、仮想指示位置決定部５６は、実代表位置と実指示位置とが近いほど、実指示位置の移動量に対する仮想指示位置の移動量の比が大きくなるように仮想指示位置の動きを決定する。
【００３９】
図７は、実空間におけるユーザ６１からの距離と仮想空間における距離との関係を示す図である。図７に示されるグラフは、横軸（ｘ軸）が実代表位置と実指示位置との距離（実距離）を示し、縦軸（ｙ軸）が仮想空間における仮想代表位置と仮想指示位置との距離（仮想距離）を示す。グラフ中の実線は実距離と仮想距離との関係を示し、その関係は例えば１．５次関数といった多項式関数で示される。グラフ中の破線は実線と比較するために、実距離と仮想距離とが等しい場合の実距離と仮想距離との従来の関係を示すものである。仮想指示位置決定部５６は図７により示される関係に応じて実距離を仮想距離に変換し、実空間における方向と、仮想距離と、仮想空間におけるユーザ６１の代表位置および視点の向きに基づいて仮想指示位置を算出する。例えば、領域９１ではユーザ６１が示す実距離より仮想空間内の仮想距離が小さいため、指示オブジェクト７２，７３等の物体の動きが従来より高精度に決定される。一方、領域９２ではユーザが示す実距離より仮想空間内の仮想距離が大きいため、指示オブジェクト７２，７３等の物体の動きが従来より低精度に決定される。
【００４０】
図８は、実空間における距離と位置との関係を示す図であり、図９は、仮想空間における位置と実空間における距離との関係を示す図である。図８には、代表位置Ｃからの距離が小さいものから順に、弧Ｌ１からＬ１３が記載されている。弧Ｌ１からＬ１３のそれぞれは、代表位置Ｃからの距離が同じ点を結ぶ曲線であり、実空間において、弧Ｌ１からＬ１３のうち隣り合う２つの弧の間隔は一定である。一方、図９に示す仮想空間においては、弧Ｌ１からＬ１３は図８が示す実空間上の弧Ｌ１からＬ１３に対応する位置に記載されている。図９では、弧Ｌ１からＬ１３のうち隣り合う２つの弧について、代表位置Ｃに近いほど隣り合う２つの弧の間隔が小さくなり、代表位置Ｃから遠いほど隣り合う２つの弧の間隔が大きくなる。したがって、代表位置Ｃに近いほど実指示位置の動きに対する仮想指示位置の変化が小さく、より高精度に仮想指示位置が決定される。これにより、仮想指示位置に関連する仮想空間内のオブジェクト（例えば指示オブジェクト７２，７３や被操作オブジェクト７４）の動きは、代表位置からの距離に応じて決定される。
【００４１】
次に、モード決定部５７は、ユーザ６１のボタン操作や実指示位置に基づいて、現在のモードを決定し、またインタラクションモードに決定された場合には被操作オブジェクト決定部５９は被操作オブジェクト７４を決定する（ステップＳ１０４）。具体的には、モード決定部５７は、操作判定閾値決定部５８により決定される判定閾値に基づいて、現在の動作モードがインタラクションモードであるか否かを決定する。判定閾値は距離算出部５２により求められた仮想代表位置と仮想指示位置との近さに基づいて決定される。また、被操作オブジェクト決定部５９は、インタラクションモードに決定される場合に、仮想空間内にある複数のオブジェクトから被操作オブジェクト７４を選択する。
【００４２】
以下では、ステップＳ１０４の処理についてさらに説明する。図１０は、モード決定部５７、操作判定閾値決定部５８、被操作オブジェクト決定部５９に関わる処理フローの一例を示す図である。モード決定部５７は、はじめに、モーションコントローラ６２，６３からの入力に基づいて、ユーザ６１がモーションコントローラ６２，６３のいずれかに含まれるボタンを新たに押下したか否かを検出する（ステップＳ２０１）。ボタンが新たに押下された場合には（ステップＳ２０１のＹ）、距離算出部５２は仮想代表位置と仮想指示位置との３次元的または水平的な距離を算出する（ステップＳ２０２）。ここで、モーションコントローラ６２，６３のうちボタンが押下されたものを対象コントローラと記載する。そして操作判定閾値決定部５８は算出された仮想指示位置と仮想代表位置との距離に基づいて、判定閾値を求める（ステップＳ２０３）。より具体的には、操作判定閾値決定部５８は、算出された距離が大きいほど判定閾値が大きくなるように判定閾値を求める。例えば、操作判定閾値決定部５８は、算出された距離がある定数値より小さい場合に第１の値を判定閾値として決定し、大きい場合に第１の値より大きい第２の値を判定閾値として決定してよい。また、操作判定閾値決定部５８は、算出された距離に対して単調増加する関数によって判定閾値を計算してもよい。
【００４３】
判定閾値が求められると、被操作オブジェクト決定部５９は、ボタンが押下された対象コントローラにより示される仮想指示位置と複数のオブジェクトのそれぞれとの間の距離を算出し、その仮想指示位置に最も近いオブジェクトを検出する（ステップＳ２０４）。そして、被操作オブジェクト決定部５９は検出されたオブジェクトと仮想指示位置との距離が判定閾値より小さいかを判定する（ステップＳ２０５）。検出されたオブジェクトと仮想指示位置との距離が判定閾値より小さい場合には（ステップＳ２０５のＹ）、モード決定部５７は現在のモードをインタラクションモードに設定し、被操作オブジェクト決定部５９は被操作オブジェクト７４として検出されたオブジェクトを設定し（ステップＳ２０６）、またモード決定部５７は対象コントローラ情報としてボタンが押下された対象コントローラを示す情報を記憶部１２に記憶させる。一方、検出されたオブジェクトと仮想指示位置との距離が判定閾値より大きい場合には（ステップＳ２０５のＮ）、被操作オブジェクト７４は存在しないため、ステップＳ２０６はスキップされる。
【００４４】
ここで、ステップＳ２０１においてユーザ６１がボタンを新たに押下しておらず（ステップＳ２０１のＮ）、かつ、ユーザ６１が対象コントローラ情報が示す対象コントローラのボタンを離した場合には（ステップＳ２０７のＹ）、モード決定部５７は現在のモードをインタラクションモードと異なるモードに設定し、インタラクションモードを解除する（ステップＳ２０８）。一方、ユーザ６１がそのボタンを離していない場合には（ステップＳ２０７のＮ）、モード決定部５７は動作モードを変更しない。
【００４５】
ステップＳ１０４の処理が行われると、物理計算部６０は、現在のモードがインタラクションモードの場合には（ステップＳ１０５）、仮想指示位置にある指示オブジェクト７２または７３の移動速度や、その指示オブジェクト７２または７３と被操作オブジェクト７４との位置関係に基づいて、被操作オブジェクト７４の動きを決定する（ステップＳ１０６）。例えば、物理計算部６０は、被操作オブジェクト７４が指示オブジェクト７２または７３に吸着し、被操作オブジェクト７４のうち吸着する箇所が指示オブジェクト７２または７３と同じように移動するように被操作オブジェクト７４の動きを決定してもよい。
【００４６】
これまでの説明からわかるように、判定閾値が仮想指示位置と仮想代表位置との距離に基づいて設定され、その判定閾値によって操作対象となるオブジェクトが決定される。例えば仮想指示位置がユーザ６１に近い場合、遠い場合に比べて、あるオブジェクトを操作する際に仮想指示位置をそのオブジェクトに近づける必要がある。見方を変えれば、仮想指示位置がユーザ６１に近い場合、意図しないオブジェクトが被操作オブジェクト７４になる可能性が低くなり、より高精度にオブジェクトの動きを決定することができる。一方、仮想指示位置がユーザ６１から遠い場合、精度は低くなるものの、ユーザ６１はよりルーズな操作で、被操作オブジェクト７４を決定することが可能になる。例えば、ユーザ６１は、指示オブジェクト７２または７３では届かない位置にある物体を掴むこともできる。なお、判定閾値に相当するオブジェクトと仮想指示位置との間隔は、仮想代表位置と仮想指示位置との距離に比べてかなり小さく、操作されるオブジェクトの位置と仮想指示位置とは十分に近い。したがって、操作されるオブジェクトと仮想代表位置との近さに基づいて、その操作されるオブジェクトの動作が決定されているともいえる。
【００４７】
また、物理計算部６０は、決定された指示オブジェクト７２，７３の動きや、決定された操作されるオブジェクトの動き、複数のオブジェクトについての所与の動きに基づいて、仮想空間内の複数のオブジェクトの動きを決定する（ステップＳ１０７）。複数のオブジェクトの決定される動きは、移動速度や回転速度であり、また物理計算部６０は画像描画部５４が次に描画するフレームにおける複数のオブジェクトの位置や角度も算出する。物理計算部６０は、画像描画部５４が描画する指示オブジェクト７２，７３の位置、つまり仮想指示位置も決定する。ここで、物理計算部６０により算出される指示オブジェクト７２，７３の位置は、仮想指示位置決定部５６により決定された移動速度および回転速度で動いた際に他のオブジェクト（障害物）と衝突する場合には、例えばその障害物との衝突が生じた位置のような、衝突が考慮された位置となる。したがって、画像描画部５４が描画する際の仮想指示位置は、仮想指示位置決定部５６において実指示位置を変換することにより取得された仮想空間内の位置に基づくが、一致しない場合がある。このように指示オブジェクト７２，７３の位置を決定することにより、指示オブジェクト７２，７３が障害物にめり込むことを防ぎ、違和感のない自然なインタラクションを実現できる。
【００４８】
物理計算部６０は、複数のオブジェクトの速度を取得し、その速度に基づいて、衝突判定を行う。また、２以上のオブジェクトにおいて互いの位置等に拘束条件が存在する場合には、物理計算部６０は拘束ソルバの処理により、その２以上のオブジェクトについて、その拘束条件を満たす位置等を算出する。拘束ソルバは、インパルス法などの既知の反復解法によって拘束条件を満たすオブジェクトの位置等を算出する。
【００４９】
複数のオブジェクトの動きが決定されると、画像描画部５４は、その決定されたオブジェクトの位置や角度、仮想代表位置や視点の方向に基づいて、オブジェクトの三次元画像を描画する（ステップＳ１０７）。
【符号の説明】
【００５０】
１  画像処理装置、１１  プロセッサ、１２  記憶部、１３  通信部、１４  操作入力部、１５  表示制御部、５１  実位置取得部、５２  距離算出部、５３  動作決定部、５４  画像描画部、５６  仮想指示位置決定部、５７  モード決定部、５８  操作判定閾値決定部、５９  被操作オブジェクト決定部、６０  物理計算部、６１  ユーザ、６２，６３  モーションコントローラ、６４  カメラ、６５  ヘッドマウントディスプレイ、６８  高精度領域、６９  低精度領域、７２，７３  指示オブジェクト、７４  被操作オブジェクト、９１，９２  領域。
【図１】
2017083995.tif 000003
【図２】
2017083995.tif 000004
【図３】
2017083995.tif 000005
【図４】
2017083995.tif 000006
【図５】
2017083995.tif 000007
【図６】
2017083995.tif 000008
【図７】
2017083995.tif 000009
【図８】
2017083995.tif 000010
【図９】
2017083995.tif 000011
【図１０】
2017083995.tif 000012