(57)【要約】【課題】レイキャストを用いる探索手法より確実かつ柔軟に、あるオブジェクトの周囲にあるオブジェクトを探索すること。【解決手段】プログラムは、１つの物体の外を探索するための探索領域を取得する探索領域取得手段、および、他の複数の物体のうち前記探索領域内にあるいずれかの物体を探索結果として選択する選択手段、としてコンピュータを機能させる。【選択図】図２
2013196648.tif 000002
【特許請求の範囲】
【請求項１】
１つの物体の外を探索するための探索領域を取得する探索領域取得手段、および、
他の複数の物体のうち前記探索領域内にあるいずれかの物体を探索結果として選択する選択手段、
としてコンピュータを機能させるためのプログラム。
【請求項２】
前記選択手段は、他の複数の物体の表面を構成する複数の要素のうち前記探索領域内にあるいずれかの要素を探索結果として選択する、
ことを特徴とする請求項１に記載のプログラム。
【請求項３】
前記選択手段は、他の複数の物体の表面を構成する複数の要素のうち前記探索領域内にあるいずれかの要素に含まれる領域から探索結果となる点を選択する、ことを特徴とする請求項２に記載のプログラム。
【請求項４】
前記選択手段は、他の複数の物体の表面を構成する複数の要素のうち前記探索領域内にあるいずれかの要素に含まれかつ前記探索領域に含まれる領域から、探索結果となる点を選択する、
ことを特徴とする請求項３に記載のプログラム。
【請求項５】
前記他の複数の物体の表面を構成する複数の要素から前記探索領域内にある１または複数の要素を抽出する抽出手段、としてコンピュータをさらに機能させ、
前記選択手段は、前記抽出された要素から、探索結果となる要素を選択する、
ことを特徴とする請求項２から４のいずれかに記載のプログラム。
【請求項６】
前記要素はポリゴンを含み、
探索されるポリゴンの法線の条件を取得する法線条件取得手段としてコンピュータをさらに機能させ、
前記抽出手段は、前記法線の条件に基づいて、前記複数の要素から前記探索領域にある１または複数のポリゴンを抽出する、
ことを特徴とする請求項５に記載のプログラム。
【請求項７】
探索される要素の属性の条件を取得する属性条件取得手段、としてコンピュータをさらに機能させ、
前記抽出手段は、前記属性の条件に基づいて、前記複数の要素から前記探索領域にある１または複数の要素を抽出する、
ことを特徴とする請求項５または６に記載のプログラム。
【請求項８】
前記探索結果に基づいて前記１つの物体の少なくとも一部を動かす動作制御手段、としてコンピュータをさらに機能させる請求項１から７のいずれかに記載のプログラム。
【請求項９】
前記探索領域取得手段は、前記１つの物体の状態に基づいて、前記１つの物体の外を探索するための探索領域を取得する、
ことを特徴とする請求項１から８のいずれかに記載のプログラム。
【請求項１０】
１つの物体の外を探索するための探索領域を取得する探索領域取得手段と、
他の複数の物体のうち前記探索領域内にあるいずれかの物体を探索結果として選択する選択手段と、
を含むことを特徴とする情報処理装置。
【請求項１１】
１つの物体の外を探索するための探索領域を取得するステップと、
他の複数の物体のうち前記探索領域内にあるいずれかの物体を探索結果として選択するステップと、
を含むことを特徴とする情報処理方法。
【請求項１２】
請求項１から９のいずれかに記載のプログラムを格納したコンピュータ読取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、情報処理方法、プログラムおよびコンピュータ読取り可能な記憶媒体に関する。
【背景技術】
【０００２】
仮想空間内に配置された物体（オブジェクト）の動きを表現する３次元画像をリアルタイムに生成する技術がある。また、あるオブジェクトの周囲にある壁などを探索し、その探索結果を用いてそのオブジェクトの次の動きを変化させることも行われている。
【０００３】
こういった周囲のオブジェクト等をレイキャストを用いて探索する手法がある。その手法では、あるオブジェクトの目の位置などを起点に仮想的な複数の線（ＲＡＹ）を飛ばし、その線のそれぞれと周囲のオブジェクトの表面との交点を取得する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
レイキャストを用いて周囲のオブジェクトを探索する場合、ＲＡＹを飛ばした先にある交点しか検出されない。そのため、例えば精度を向上させようとすればＲＡＹの本数を増やすことに伴う計算量の増加が生じる。また、交点を検出するための条件を予め設定することが困難であるため、レイキャストの結果を用いてさらに交点とオブジェクトとの関係を判断するロジックが必要になるなど、プログラムの開発も煩雑になっていた。
【０００５】
本発明は上記課題を鑑みてなされたものであって、その目的は、レイキャストを用いる探索手法より確実かつ柔軟に、あるオブジェクトの周囲にあるオブジェクト等を探索することができる技術を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明にかかるプログラムは、１つの物体の外を探索するための探索領域を取得する探索領域取得手段、および、他の複数の物体のうち前記探索領域内にあるいずれかの物体を探索結果として選択する選択手段、としてコンピュータを機能させる。
【０００７】
また、本発明にかかる情報処理装置は、１つの物体の外を探索するための探索領域を取得する探索領域取得手段と、他の複数の物体のうち前記探索領域内にあるいずれかの物体を探索結果として選択する選択手段と、を含むことを特徴とする。
【０００８】
また、本発明にかかる情報処理方法は、１つの物体の外を探索するための探索領域を取得するステップと、他の複数の物体のうち前記探索領域内にあるいずれかの物体を探索結果として選択するステップと、を含むことを特徴とする。
【０００９】
また、本発明にかかるコンピュータ読取り可能な記憶媒体は、上述のプログラムを格納する。
【００１０】
本発明では、レイキャストを用いる探索手法よりも確実かつ柔軟に、あるオブジェクトの周囲にあるオブジェクトを探索することができる。
【００１１】
前記選択手段は、他の複数の物体の表面を構成する複数の要素のうち前記探索領域内にあるいずれかの要素を探索結果として選択してもよい。
【００１２】
本発明の一態様では、前記選択手段は、他の複数の物体の表面を構成する複数の要素のうち前記探索領域内にあるいずれかの要素に含まれる領域から、探索結果となる点を選択してもよい。
【００１３】
本発明の一態様では、  前記選択手段は、他の複数の物体の表面を構成する複数の要素のうち前記探索領域内にあるいずれかの要素に含まれかつ前記探索領域に含まれる領域から、探索結果となる点を選択してもよい。
【００１４】
本発明の一態様にかかるプログラムは、前記他の複数の物体の表面を構成する複数の要素から前記探索領域内にある１または複数の要素を抽出する抽出手段、としてコンピュータをさらに機能させ、前記選択手段は、前記抽出された要素から探索結果となる要素を選択してもよい。
【００１５】
本発明の一態様では、前記要素はポリゴンを含んでよい。また、プログラムは、探索されるポリゴンの法線の条件を取得する法線条件取得手段としてコンピュータをさらに機能させ、前記抽出手段は、前記法線の条件に基づいて、前記複数の要素から前記探索領域にある１または複数のポリゴンを抽出してもよい。
【００１６】
本発明の一態様にかかるプログラムは、探索される要素の属性の条件を取得する属性条件取得手段、としてコンピュータをさらに機能させ、前記抽出手段は、前記属性の条件に基づいて、前記複数の要素から前記探索領域にある１または複数の要素を抽出してもよい。
【００１７】
本発明の一態様にかかるプログラムは、前記探索結果に基づいて前記１つの物体の少なくとも一部を動かす動作制御手段、としてコンピュータをさらに機能させてもよい。
【００１８】
本発明の一態様では、前記探索領域取得手段は、前記１つの物体の状態に基づいて、前記１つの物体の外を探索するための探索領域を取得してもよい。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態にかかる画像生成装置の構成の一例を示す図である。
【図２】本発明の実施形態にかかる画像生成装置の機能ブロックを示す図である。
【図３】本発明の実施形態にかかる画像生成装置の処理フローの一例を示す図である。
【図４】自オブジェクトおよび探索領域の一例を示す図である。
【図５】探索領域と法線の条件と探索対象となるポリゴンとの一例を示す図である。
【図６】自オブジェクトとポリゴンの法線との関係の一例を示す図である。
【発明を実施するための形態】
【００２０】
以下では、本発明の実施形態について図面に基づいて説明する。出現する構成要素のうち同一機能を有するものには同じ符号を付し、その説明を省略する。
【００２１】
図１は本発明の実施形態に係る画像生成装置１の構成を示す図である。画像生成装置１は、中央制御部１１と、記憶部１２と、描画処理部１３と、入出力部１４とを含んでいる。画像生成装置１は、例えばパーソナルコンピュータや家庭用ゲーム機のように３次元画像を生成する機能を有する機器である。
【００２２】
中央制御部１１は、記憶部１２に格納されているプログラムに従って動作し、描画処理部１３や入出力部１４を制御する。なお、上記プログラムは、ＤＶＤ−ＲＯＭ等のコンピュータで読み取り可能な記憶媒体に格納されて提供されるものであってもよいし、インターネット等のネットワークを介して提供されるものであってもよい。
【００２３】
記憶部１２は、ＲＡＭやＲＯＭ等のメモリ素子およびハードディスクドライブ等によって構成されている。記憶部１２は、上記プログラムを格納する。また、記憶部１２は、各部から入力される情報や演算結果を格納する。
【００２４】
描画処理部１３は、記憶部１２に格納されるプログラムに従って並列的に数値演算を行う機能や、３次元の物体の表面を示す情報から２次元画像を描画する機能を有する。描画処理部１３は、その計算結果を記憶部１２や入出力部１４に出力する。
【００２５】
入出力部１４は、モニタ等の表示出力デバイスを制御する手段や、マウス等の入力デバイスを制御する手段などによって構成されている。入出力部１４は、中央制御部１１の制御に基づいて、描画処理部１３等で生成した画像データ等を表示出力デバイスに対して出力し、入力デバイスより操作者（ユーザ）からの情報を取得する。
【００２６】
図２は、本発明の実施形態にかかる画像生成装置１の機能ブロックを示す図である。画像生成装置１は機能的に、動作状態取得部２１、探索領域取得部２２、法線条件取得部２３、属性条件取得部２４、ポリゴン抽出部２５、ポリゴン切出部２６、探索結果出力部２７、動作制御部２８、画像描画部２９、探索条件記憶部３０、および衝突判定面記憶部３１、を含む。これらの機能は、中央制御部１１や描画処理部１３が記憶部１２に格納されたプログラムを実行し、入出力部１４等を制御することによって実現される。なお、以下に示す各機能の説明では中央制御部１１および描画処理部１３のうち中央制御部１１のみが処理を行う旨で記載しているが、一部の処理を描画処理部１３が行ってもよい。中央制御部１１と描画処理部１３との間の役割分担は、開発者がプログラムを作成する際に、当該部分の処理の特性に応じて任意に決定すればよい。
【００２７】
図３は、本発明の実施形態にかかる画像生成装置１の処理フローの一例を示す図である。以下ではこの処理フローに従い画像生成装置１が有する機能を説明する。なお、この処理フローはあるフレームにおける処理を示しており、実際にはフレームが変化するごとに処理フローに示す処理が繰り返される。
【００２８】
動作状態取得部２１は、中央制御部１１、記憶部１２および入出力部１４を中心として実現される。動作状態取得部２１は、処理中のフレームにおけるあるオブジェクトの状態を取得する（ステップＳ１０１）。以下では、上述のオブジェクトを他のオブジェクトと区別するため、「自オブジェクト４０」と記す。自オブジェクト４０の状態は、例えば自オブジェクト４０の動作の種類や、その操作を開始してからの経過時間である。動作の種類の例としては、「歩く」、「立つ」、「座る」などがある。また、自オブジェクト４０の動作（自オブジェクト４０を構成するスケルトンの時間ごとの位置や向き）が予めこの動作の種類と関連づけて記憶部１２に記憶されている。自オブジェクト４０の動作の状態として、自オブジェクト４０の動く向きや、地面に対する相対位置を取得してもよい。
【００２９】
探索領域取得部２２は、中央制御部１１および記憶部１２を中心として実現される。探索領域取得部２２は、取得された自オブジェクト４０の状態に基づいて、自オブジェクト４０の外を探索するための探索領域５１（探索ボリューム）を取得する（ステップＳ１０２）。
【００３０】
探索領域５１を定義する情報は、探索条件記憶部３０に記憶されている。探索条件記憶部３０は、記憶部１２を中心として実現される。探索条件記憶部３０は、オブジェクトの状態、例えば動作の種類や経過時間、と関連づけて、探索領域５１を定義する情報、探索されるポリゴン４７の法線の条件、ポリゴン４７の属性の条件を格納する。
【００３１】
図４は、自オブジェクト４０および探索領域５１の一例を示す図である。探索領域５１を定義する情報は、探索領域５１の形状や大きさを示す情報、自オブジェクト４０の起点となるオブジェクト起点４１や自オブジェクト４０の向きに対する相対的な位置を示す情報、および後述する探索起点４２の位置を示す情報を含む。図４の例では探索領域５１は直方体の形状であり、探索領域５１を定義する情報は、そのオブジェクト起点４１からみた探索領域５１の立方体の頂点の相対的な位置の情報である。探索条件記憶部３０は、これらの情報を、動作の種類や経過時間などのオブジェクトの状態と関連づけて記憶している。
【００３２】
なお、図４の例は、探索領域５１の内にある他のオブジェクトである壁４６を探索するケースを示している。他のオブジェクトの表面は複数の要素により構成されている。この要素は、その要素を含むオブジェクトと異なるオブジェクトとの衝突を判定するためのものであり、以下ではその複数の要素が複数のポリゴン４７であった場合について説明する。この衝突判定用のポリゴン４７は表示用のポリゴン（メッシュ）とは異なっていてもよい。衝突判定に用いる上述のポリゴン４７は、コリジョンメッシュと呼ばれる。また、オブジェクトの表面を構成する要素は、幾何学形状の表面を構成する曲面であってもよい。
【００３３】
衝突判定に用いるポリゴン４７は、衝突判定面記憶部３１に記憶されている。ここで、衝突判定面記憶部３１は、記憶部１２を中心として実現される。衝突判定面記憶部３１は、壁などの固定的なオブジェクトの衝突判定用の表面を示すポリゴン４７を記憶する。また、衝突判定面記憶部３１は、動くオブジェクトについて、そのオブジェクトを構成するスケルトンの配置と衝突判定用のポリゴン４７との位置関係を記憶してもよい。後者の場合、ポリゴン抽出部２５は、後述のポリゴン４７の抽出前に、そのオブジェクトを構成するポリゴン４７の配置を算出する処理を行う。
【００３４】
次に、探索領域内のオブジェクトを探索するための探索条件を取得する処理が行われる。以下ではその条件として法線の条件や属性の条件を用いる場合について説明する。
【００３５】
法線条件取得部２３は、中央制御部１１および記憶部１２を中心として実現される。法線条件取得部２３は、取得された自オブジェクト４０の状態に基づいて、探索されるポリゴン４７が満たすべき法線の条件を取得する（ステップＳ１０３）。法線の条件は、例えば自オブジェクト４０の座標系を用いて定義される。法線の条件およびそれに関する処理についての詳細は後述する。
【００３６】
属性条件取得部２４は、中央制御部１１および記憶部１２を中心として実現される。属性条件取得部２４は、取得される自オブジェクト４０の状態に基づいて、探索されるポリゴン４７が満たすべき属性の条件を取得する（ステップＳ１０４）。ここで、ポリゴン４７の属性とは、自オブジェクト４０の動作の状態と関連があるか否かを判断するための情報である。例えば、属性は、「朽ちかけた板」、「汚い壁」、「岩」といったポリゴン４７に覆われるオブジェクトの特性を示す情報であってよい。例えば、動作の状態に応じた属性の条件は、探索されるポリゴン４７が満たすべき属性のリストである。例えば、「手をつく動作」において手をつく位置を探索するような場合、属性の条件から、「朽ちかけた板」、「汚い壁」を外しておけば、通常は手をつかないようなオブジェクトに手をつく事象を防ぐことができる。
【００３７】
なお、探索条件は上記のものに限られない。例えば、属性の代わりに、自オブジェクト４０の状態に応じて探索対象となるポリゴン４７を探索条件として直接的に取得してもよい。また、ポリゴン４７以外の要素を用いる場合には、探索対象となる要素や属性の条件を取得してもよい。
【００３８】
以下の処理では、自オブジェクト４０と異なる複数のオブジェクトのうち探索領域内にあるオブジェクトを探索結果として取得する処理について説明する。なお、以下では、探索結果として、その物体の表面を構成する要素や、その要素に含まれる点を選択し、かつその要素がポリゴン４７である場合について説明する。
【００３９】
ポリゴン抽出部２５は、中央制御部１１および記憶部１２を中心として実現される。ポリゴン抽出部２５は、自オブジェクト４０以外のオブジェクトの表面を示す複数のポリゴン４７から、探索領域５１内にあり法線の条件や属性の条件を満たす１または複数のポリゴン４７を抽出する（ステップＳ１０５）。以下ではその抽出処理の詳細について説明する。
【００４０】
はじめに、ポリゴン抽出部２５は、探索領域５１に少なくとも一部が存在するポリゴン４７を全て見つける。次に、ポリゴン抽出部２５は、見つけられたポリゴン４７のうち、その法線ベクトルが、法線条件取得部２３が取得した法線の条件を満たすものを取り出す。そして、取り出されたポリゴン４７のうち、その属性が前述の属性の条件を満たすものを抽出結果として出力する。
【００４１】
図５は、探索領域５１と法線の条件と探索対象となるポリゴン４７との一例を示す図である。法線の条件は、中心ベクトル５２の向きと、そこからの角度の範囲とにより表され、その範囲は円錐形状になる。図５の例では、ポリゴン抽出部２５は、探索領域５１に少なくとも一部が重複するポリゴン４７−２，４７−３，４７−４，４７−５，４７−６を見つけ、それらのポリゴン４７から、その法線の向きが上述の法線の角度の範囲に収まるポリゴン４７−２，４７−４，４７−６を取り出す。さらに、取り出されたポリゴン４７のうち、属性の条件を満たすものを出力する。
【００４２】
なお、ポリゴン抽出部２５は、属性の条件や法線の条件のうち一部をポリゴン４７を抽出する条件から外してもよい。例えば、必要に応じて、属性の条件を満たさないものも探索結果として出力してもよいし、法線の条件を満たさないものも探索結果として出力してもよい。また、ポリゴン４７だけでなく他の幾何学形状の表面の要素を抽出してもよい。
【００４３】
ポリゴン切出部２６は、中央制御部１１および記憶部１２を中心として実現される。ポリゴン切出部２６は、ポリゴン抽出部２５により抽出されたポリゴン４７（他の曲面などの要素であってもよい）のうち探索領域５１内にある領域を切出す（ステップＳ１０６）。この処理は、例えば、探索領域５１と、抽出結果のポリゴン４７との間でいわゆるブーリアン処理を行うことにより実現される。図５の例では、ポリゴン４７−２，４７−６のうち探索領域５１の外にある領域が以降の処理対象から外される。
【００４４】
探索結果出力部２７は、中央制御部１１および記憶部１２を中心として実現される。探索結果出力部２７は、抽出され切り出されたポリゴン４７などの要素に含まれる領域から点を選択し探索結果として出力する（ステップＳ１０７）。より具体的には、抽出されたポリゴン４７上の２次元領域であって探索領域５１に含まれる２次元領域、言い換えれば、ポリゴン切出部２６が切り出したポリゴン４７上の２次元領域のうち、探索起点４２に最も近い点を選択する。なお、ポリゴン４７上の点から選択するだけでなく、ポリゴン４７の枠（エッジ）上の点を選択してもよい。
【００４５】
ここで、点を選択することは、その点を領域内に含むポリゴン４７等の要素を選択することとみなしてよい。なお、探索結果出力部２７は、探索結果として、点の代わりにその点が含まれるポリゴン４７を出力してもよい。また、ポリゴン切出部２６の処理を行わず、ポリゴン抽出部２５が抽出したポリゴン４７上の全ての領域から点を選択してもよい。
【００４６】
また、探索結果出力部２７は必ずしも探索基点４２との距離に基づいて点を選択しなくてもよい。例えば、ポリゴン抽出部２５がパラメータとして取得した探索対象となるポリゴン４７をそのまま抽出し、探索結果出力部２７がその抽出されたポリゴン４７の枠と、探索領域５１の外縁となる面との交点を探索結果として選択してもよい。
【００４７】
ここで、法線の条件によりポリゴン４７を抽出することは、自オブジェクト４０の動作との整合性を確保する効果がある。図６は、自オブジェクト４０とポリゴン４７の法線との関係の一例を示す図である。図６の例で、自オブジェクト４０が右側に「手をつく」動作する場合に、もし法線の方向を考慮しないと左側に向いていないポリゴン４７−７上の点を手をつく対象として選択することになる。すると、手のつき方が図６に示す破線のようになり、右側に手をつく動作としては不自然になってしまう。法線の条件を用いることにより、ポリゴン４７−８上の点が選択され、より動作の表現が自然になる。
【００４８】
この探索手法では、オブジェクトの表面を構成する要素の幾何学的な形状を用いて点等を選択するため、取得精度による計算量の変化はレイキャストより小さい。レイキャストのようにＲＡＹの間に小さなポリゴン４７があった場合などに生じる判定ミスの恐れがない。そのため、精度をある程度以上に上げようとする場合には、ＲＡＹの本数の密度を増やす必要のあるレイキャストより処理負荷が小さくなる。また、物体表面の形状を直接的に扱うため、法線やポリゴンの枠であるかといったような形状と関連性の深い条件を用いた柔軟な探索も可能となる。また、探索領域５１内にある面やその面の位置に関する情報が容易に得られるため、後続の処理も容易になる。
【００４９】
動作制御部２８は、中央制御部１１および記憶部１２を中心として実現される。動作制御部２８は、探索結果に基づいて自オブジェクト４０の動作を制御する（ステップＳ１０８）。動作制御部２８は、例えば立っている状態など、手をつく動作を次に行うことを想定している動作の状態において、探索領域５１内に探索結果となる点が見つかった場合には、次のフレームから手をつく動作を開始させる。また、既に手をつく動作が始まっている場合には、手先の位置を探索結果の点に近づける処理を行う。
【００５０】
画像描画部２９は、中央制御部１１、描画処理部１３、記憶部１２および入出力部１４を中心として実現される。画像描画部２９は、描画処理部１３を用いてオブジェクトの画像を描画し（ステップＳ１０９）、表示出力デバイスが描画された画像を出力するように、その画像の信号を表示出力デバイスに向けて出力する。より具体的には、画像描画部２９は、これまでの処理によって決められた各オブジェクトの動作に応じて、各オブジェクトを構成するスケルトンの配置の情報を取得する。次に、画像描画部２９は、各スケルトンに対応するラグドールを用いて、各オブジェクトの物理的な挙動をシミュレーションする。そして、画像描画部２９は、シミュレーションの結果によりスケルトンの配置を修正し、いわゆるレンダリングエンジンの処理により、各オブジェクトの画像を描画する。この描画には、各スケルトンの配置と関連づけられ、かつオブジェクトの表面を示すポリゴン４７（皮膚メッシュ）が用いられる。
【符号の説明】
【００５１】
１  画像生成装置、１１  中央制御部、１２  記憶部、１３  描画処理部、１４  入出力部、２１  動作状態取得部、２２  探索領域取得部、２３  法線条件取得部、２４  属性条件取得部、２５  ポリゴン抽出部、２６  ポリゴン切出部、２７  探索結果出力部、２８  動作制御部、２９  画像描画部、３０  探索条件記憶部、３１  衝突判定面記憶部、４０  自オブジェクト、４１  オブジェクト起点、４２  探索起点、４６  壁、４７  ポリゴン、５１  探索領域、５２  中心ベクトル。
【図１】
2013196648.tif 000003
【図２】
2013196648.tif 000004
【図３】
2013196648.tif 000005
【図４】
2013196648.tif 000006
【図５】
2013196648.tif 000007
【図６】
2013196648.tif 000008