(57)【特許請求の範囲】
【請求項１】
離散時間を用いて更新される仮想３次元空間上における対象物の位置及び領域を示す対象物情報を取得する対象物情報取得手段、
前記仮想３次元空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得する面情報取得手段、及び、
前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う衝突判定手段、
前記衝突判定手段が前記対象物と前記面とが衝突したと判定した場合には、衝突した際における、衝突の位置、前記面から前記対象物までの距離、及び、反発方向に関する衝突情報を取得する衝突情報取得手段、
としてコンピュータを機能させるための情報処理プログラムであって、
前記厚み領域は、前記仮想３次元空間における面の法線方向に、該面を形成する各辺から延伸して形成される各面の交点とで形成される領域のうち、該面から所定の距離にある領域であることを特徴とする、
情報処理プログラム。
【請求項２】
前記情報処理装置は、更に、
前記仮想３次元空間上における物理演算を行う物理演算手段、としてコンピュータを機能させ、
前記物理演算手段は、前記衝突情報に基づいて、衝突後に表示される対象物の位置を算出することを特徴とする請求項１記載の情報処理プログラム。
【請求項３】
前記衝突判定手段は、前記面の法線に相当する分離軸に投影された前記対象物と前記厚み領域の位置に基づいて、前記衝突判定を行うことを特徴とする請求項１または２のいずれかに記載の情報処理プログラム。
【請求項４】
前記衝突判定手段は、更に、厚み領域を形成する面の法線に相当する分離軸に投影された前記対象物と前記厚み領域の位置に基づいて、前記衝突判定を行うことを特徴とする請求項３に記載の情報処理プログラム。
【請求項５】
離散時間を用いて更新される仮想３次元空間上における対象物の位置及び領域を示す対象物情報を取得する対象物情報取得手段と、
前記仮想３次元空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得する面情報取得手段と、
前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う衝突判定手段と、
前記衝突判定手段が、前記対象物と前記面とが衝突したと判定した場合には、衝突した際における、衝突の位置、前記面から前記対象物までの距離、及び、反発方向に関する衝突情報を取得する衝突情報取得手段と、
を有し、
前記厚み領域は、前記仮想３次元空間における面の法線方向に、該面を形成する各辺から延伸して形成される各面の交点とで形成される領域のうち、該面から所定の距離にある領域であることを特徴とする情報処理装置。
【請求項６】
対象物情報取得手段が、離散時間を用いて更新される仮想３次元空間上における対象物の位置及び領域を示す対象物情報を取得し、
面情報取得手段が、前記仮想３次元空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得し、
衝突判定手段が、前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行い、
衝突情報取得手段が、前記衝突判定手段が前記対象物と前記面とが衝突したと判定した場合には、衝突した際における、衝突の位置、前記面から前記対象物までの距離、及び、反発方向に関する衝突情報を取得し、
前記厚み領域は、前記仮想３次元空間における面の法線方向に、該面を形成する各辺から延伸して形成される各面の交点とで形成される領域のうち、該面から所定の距離にある領域である、
ことを特徴とする情報処理方法。
【請求項７】
離散時間を用いて更新される仮想３次元空間における第１の面の各頂点を示す頂点情報と、
前記第１の面の法線方向を示す法線情報と、
前記第１の面における各辺において隣接する第２の面との間の角度を示す角度情報と、
前記第１の面の厚みに関する厚み情報と、
を含むメッシュ情報を取得するメッシュ情報取得手段、及び、
前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第１の面から延伸して形成される厚み領域を設定する厚み領域設定手段、
としてコンピュータを機能させるための仮想３次元空間における面の厚み領域設定プログラムであって、
前記第１の面は、前記仮想３次元空間上における対象物の位置及び領域を示す対象物情報と前記仮想３次元空間上における第１の面及び該第１の面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報とに基づいて、前記対象物と前記第１の面との衝突判定を行い、前記対象物と前記第１の面とが衝突したと判定した場合には、衝突した際における、衝突の位置、前記第１の面から前記対象物までの距離、及び、反発方向に関する衝突情報を取得するために用いられる面であり、
前記厚み領域は、前記仮想３次元空間における第１の面の法線方向に、該第１の面を形成する各辺から延伸して形成される各面の交点とで形成される領域のうち、該第１の面から所定の距離にある領域である、
ことを特徴とする仮想３次元空間における面の厚み領域設定プログラム。
【請求項８】
前記厚み領域設定手段は、前記第１の面と、前記法線情報、前記角度情報、及び、前記頂点情報に基づき該第１の面を形成する各辺から延伸して形成される各面の交点と、で形成される領域を、前記交点と前記第１の面との距離が前記厚み以下である場合には、厚み領域として設定することを特徴とする請求項７記載の厚み領域設定プログラム。
【請求項９】
離散時間を用いて更新される仮想３次元空間における第１の面の各頂点を示す頂点情報と、
前記第１の面の法線方向を示す法線情報と、
前記第１の面における各辺において隣接する第２の面との間の角度を示す角度情報と、
前記第１の面の厚みに関する厚み情報と、
を含むメッシュ情報を取得するメッシュ情報取得手段と、
前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第１の面から延伸して形成される厚み領域を設定する厚み領域設定手段と、
を有し、
前記第１の面は、前記仮想３次元空間上における対象物の位置及び領域を示す対象物情報と前記仮想３次元空間上における第１の面及び該第１の面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報とに基づいて、前記対象物と前記第１の面との衝突判定を行い、前記対象物と前記第１の面とが衝突したと判定した場合には、衝突した際における、衝突の位置、前記第１の面から前記対象物までの距離、及び、反発方向に関する衝突情報を取得するために用いられる面であり、
前記厚み領域は、前記仮想３次元空間における第１の面の法線方向に、該第１の面を形成する各辺から延伸して形成される各面の交点とで形成される領域のうち、該第１の面から所定の距離にある領域である、
ことを特徴とする仮想３次元空間における面の厚み領域設定装置。
【請求項１０】
メッシュ情報取得手段が、
離散時間を用いて更新される仮想３次元空間における第１の面の各頂点を示す頂点情報と、
前記第１の面の法線方向を示す法線情報と、
前記第１の面における各辺において隣接する第２の面との間の角度を示す角度情報と、
前記第１の面の厚みに関する厚み情報と、
を含むメッシュ情報を取得し、
厚み領域設定手段が、前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第１の面から延伸して形成される厚み領域を設定する仮想３次元空間における厚み領域設定方法であって、
前記第１の面は、前記仮想３次元空間上における対象物の位置及び領域を示す対象物情報と前記仮想３次元空間上における第１の面及び該第１の面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報とに基づいて、前記対象物と前記第１の面との衝突判定を行い、前記対象物と前記第１の面とが衝突したと判定した場合には、衝突した際における、衝突の位置、前記第１の面から前記対象物までの距離、及び、反発方向に関する衝突情報を取得するために用いられる面であり、
前記厚み領域は、前記仮想３次元空間における第１の面の法線方向に、該第１の面を形成する各辺から延伸して形成される各面の交点とで形成される領域のうち、該第１の面から所定の距離にある領域である、
ことを特徴とする仮想３次元空間における面の厚み領域設定方法。
【請求項１１】
離散時間を用いて更新される仮想３次元空間上における対象物の位置及び領域を示す対象物情報を取得する対象物情報取得手段、前記仮想３次元空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得する面情報取得手段、及び、前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う衝突判定手段、前記衝突判定手段が前記対象物と前記面とが衝突したと判定した場合には、衝突した際における、衝突の位置、前記面から前記対象物までの距離、及び、反発方向に関する衝突情報を取得する衝突情報取得手段、としてコンピュータを機能させるための情報処理プログラムに用いられるデータ構造であって、
メッシュ情報取得手段によって取得される、
仮想３次元空間における第１の面の各頂点を示す頂点情報と、
前記第１の面の法線方向を示す法線情報と、
前記第１の面における各辺において隣接する第２の面との間の角度を示す角度情報と、
前記第１の面の厚みに関する厚み情報と、
を含むメッシュ情報と、
厚み領域設定手段によって取得される、前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第１の面から延伸して形成された厚み領域が設定された厚み領域に関する厚み領域情報と、
を含み、
前記第１の面は、前記仮想３次元空間上における対象物の位置及び領域を示す対象物情報と前記仮想３次元空間上における第１の面及び該第１の面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報とに基づいて、前記対象物と前記第１の面との衝突判定を行い、前記対象物と前記第１の面とが衝突したと判定した場合には、衝突した際における、衝突の位置、前記第１の面から前記対象物までの距離、及び、反発方向に関する衝突情報を取得するために用いられる面であり、
前記厚み領域は、前記仮想３次元空間における第１の面の法線方向に、該第１の面を形成する各辺から延伸して形成される各面の交点とで形成される領域のうち、該第１の面から所定の距離にある領域である、
ことを特徴とする仮想３次元空間における面に関するデータ構造。
【請求項１２】
請求項１記載の情報処理プログラム、請求項７記載の厚み領域設定プログラム、または、請求項１１記載のデータ構造のいずれかを記憶したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
情報処理装置、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体、厚み領域設定装置、厚み領域設定方法、厚み領域設定プログラム、厚み領域設定プログラムを記憶したコンピュータ読み取り可能な記録媒体、仮想空間における面に関するデータ構造に関する。
【背景技術】
【０００２】
仮想空間における２の対象物の衝突判定を行う技術として、例えば、分離軸法やＧＪＫ法が知られている。例えば、分離軸法による衝突判定は、２の対象物の間に、分離できる平面（分離平面）が存在するか否かを判定し、当該分離平面が存在しなければ、当該２の対象物が衝突していると判定する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記のような衝突判定方法は、アルゴリズムの特性上、いわゆる凸形状の対象物間における衝突判定にしか適用できないため、例えば、仮想空間における地形のような複雑な形状を有する対象物とキャラクタ等の対象物との衝突判定に対しては、当該形状を面に分解して、当該面とキャラクタ等の対象物との衝突判定を行う。ここで、コンピュータを用いて仮想空間における対象物を表現する場合、例えば、１フレーム期間毎等、離散時間を用いて画面を更新する。よって、当該面と対象物との衝突判定を行う場合、いわゆる衝突抜けの問題が発生する場合がある。
【０００４】
本発明は、上記課題に鑑みて、例えば、仮想空間における地形のような複雑な形状を有する対象物とキャラクタ等の対象物との衝突判定についても、より適切に衝突の有無を判定可能な情報処理プログラム、情報処理装置、情報処理方法、仮想空間における面に関するデータ構造、当該データ構造または情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体、等を実現することを目的とする。
【０００５】
また、本発明の他の目的は、例えば、仮想空間における地形のような複雑な形状を有する対象物とキャラクタ等の対象物との衝突判定についても、より適切に衝突の有無を判定可能とするために、仮想空間における面に対して厚み領域を設定する厚み領域設定プログラム、厚み領域設定装置、厚み領域設定方法、仮想空間における面に関するデータ構造、当該データ構造または厚み領域設定プログラムを記憶したコンピュータ読み取り可能な記録媒体、等を実現することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の情報処理プログラムは、仮想空間上における対象物の位置及び領域を示す対象物情報を取得する対象物情報取得手段、前記仮想空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得する面情報取得手段、及び、前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う衝突判定手段、としてコンピュータを機能させる。
【０００７】
本発明の情報処理装置は、仮想空間上における対象物の位置及び領域を示す対象物情報を取得する対象物情報取得手段と、前記仮想空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得する面情報取得手段と、前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う衝突判定手段と、を有する。
【０００８】
本発明の情報処理方法は、仮想空間上における対象物の位置及び領域を示す対象物情報を取得し、前記仮想空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得し、前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う。
【０００９】
本発明の仮想空間における面の厚み領域設定プログラムは、仮想空間における第１の面の各頂点を示す頂点情報と、前記第１の面の法線方向を示す法線情報と、前記第１の面における各辺において隣接する第２の面との間の角度を示す角度情報と、前記第１の面の厚みに関する厚み情報と、を含むメッシュ情報を取得するメッシュ情報取得手段、及び、前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第１の面から延伸して形成される厚み領域を設定する厚み領域設定手段、としてコンピュータを機能させる。
【００１０】
本発明の仮想空間における面の厚み領域設定装置は、仮想空間における第１の面の各頂点を示す頂点情報と、前記第１の面の法線方向を示す法線情報と、前記第１の面における各辺において隣接する第２の面との間の角度を示す角度情報と、前記第１の面の厚みに関する厚み情報と、を含むメッシュ情報を取得するメッシュ情報取得手段と、前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第１の面から延伸して形成される厚み領域を設定する厚み領域設定手段と、を有する。
【００１１】
本発明の仮想空間における面の厚み領域設定方法は、仮想空間における第１の面の各頂点を示す頂点情報と、前記第１の面の法線方向を示す法線情報と、前記第１の面における各辺において隣接する第２の面との間の角度を示す角度情報と、前記第１の面の厚みに関する厚み情報と、を含むメッシュ情報を取得し、前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第１の面から延伸して形成される厚み領域を設定する。
【００１２】
本発明の仮想空間における面に関するデータ構造は、仮想空間における第１の面の各頂点を示す頂点情報と、前記第１の面の法線方向を示す法線情報と、前記第１の面における各辺において隣接する第２の面との間の角度を示す角度情報と、前記第１の面の厚みに関する厚み情報と、を含むメッシュ情報と、前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第１の面から延伸して形成された厚み領域が設定された厚み領域に関する厚み領域情報と、を含む。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態における情報処理装置及び厚み領域設定装置の構成の概要について説明するための図である。
【図２】厚み領域設定装置の機能的な構成について説明するための図である。
【図３】メッシュ情報のデータ構造の一例について説明するための図である。
【図４】仮想空間における背景画像の一例を示す図である。
【図５】仮想空間におけるポリゴンの構成を説明するための図である。
【図６】厚み領域の設定について説明するための図である。
【図７】厚み領域として設定される領域の一例を示す図である。
【図８】情報処理装置の機能的な構成の概要について説明するための図である。
【図９】仮想空間における剛体と面の衝突判定の一例について説明するための図である。
【図１０】図９に示した衝突判定の詳細について説明するための図である。
【図１１】厚み領域設定の他の一例を説明するための図である。
【図１２】厚み領域設定の他の一例を説明するための図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について、図面を参照しつつ説明する。なお、図面については、同一又は同等の要素には同一の符号を付し、重複する説明は省略する。
【００１５】
図１は、本発明の実施の形態における情報処理装置の構成の概要について説明するための図である。図１に示すように、情報処理装置１００は、例えば、ＣＰＵやメモリ等で構成されるコンピュータで構成され、例えば、制御部１１１、記憶部１１２、通信部１１３、操作部１１４、表示部１１５を有する。なお、制御部１１１、記憶部１１２、通信部１１３、操作部１１４、表示部１１５は、内部バス１１６により互いに接続される。
【００１６】
制御部１１１は、例えば、ＣＰＵ、ＭＰＵ等であって、記憶部１１２に格納されたプログラムに従って動作する。記憶部１１２は、例えば、ＲＯＭやＲＡＭ、ハードディスク等の情報記録媒体で構成され、制御部１１１によって実行されるプログラムを保持する情報記録媒体である。また、記憶部１１２は、制御部１１１のワークメモリとしても動作する。なお、当該プログラムは、例えば、ネットワークを介して、ダウンロードされて提供されてもよいし、または、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のコンピュータで読み取り可能な各種の情報記録媒体によって提供されてもよい。
【００１７】
通信部１１３は、当該情報処理装置１００を、ネットワークを介して、他の情報処理装置やデータベース等（図示なし）と接続する。操作部１１４は、例えば、キーボードやマウス、コントローラ等で構成され、ユーザーの指示操作に応じて、当該指示操作の内容を制御部１１１に出力する。表示部１１５は、例えば、液晶ディスプレイ、有機ＥＬディスプレイ等であって、制御部１１１からの指示に従い、情報を表示する。
【００１８】
なお、上記情報処理装置１００の構成は、一例であってこれに限定されるものではない。また、本実施の形態における厚み領域設定装置２００についても、上記情報処理装置１００の構成と同様であるので、説明を省略する。
【００１９】
図２は、本実施の形態における厚み領域設定装置２００の機能的な構成について説明するための図である。図２に示すように、厚み領域設定装置２００は、メッシュ情報記憶部２０１と、厚み領域設定部２０２と、を有する。
【００２０】
メッシュ情報記憶部２０１は、ポリゴンで表現される面の集合についての情報（メッシュ情報）を記憶する。メッシュ情報は、例えば、図３（Ａ）に示すように、各面の頂点の位置座標を示す頂点情報、各面に関する情報を含む面情報、各面のエッジ（辺）に関する情報を含むエッジ情報を、配列の形式で保持される。
【００２１】
ここで、例えば、本実施の形態においては、図４に示すように、仮想空間における背景としての建物や地形等（図４は、建物の例を示す）は、三角の形状を有するポリゴンで表現される面の集合で表現されるメッシュ構造を有する。また、各面（ポリゴン）５００は、図５に示すように、各頂点５０１とエッジ５０２（辺に相当する）を含む。この場合、図４及び図５に示した頂点５０１、面５００、エッジ５０２を表す情報がそれぞれ、上記頂点情報、面情報、エッジ情報に相当する。
【００２２】
より具体的には、例えば、上記図４及び図５に示すように、各ポリゴンが三角形で表現される場合、頂点情報は、例えば、仮想空間上における３の位置座標を含み、面情報は、図３（Ｂ）に示すように、当該面の３の頂点へのリンクを示すリンク情報と、当該面のエッジ情報へのリンクを示す３のエッジ情報と、当該面の法線方向を示す法線ベクトルと、後述する当該面の厚み距離を示す厚み情報とを含む。また、エッジ情報は、図３（Ｃ）に示すように、各エッジの頂点へのリンクを示す２のリンク情報、エッジを介して隣接する各面との間の角度を示す角度情報を含む。なお、当該角度は、例えば、エッジを介して隣接する２の面の各法線ベクトルによって形成される角度に相当する。
【００２３】
厚み領域設定部２０２は、メッシュ情報記憶部２０１から取得した法線情報、角度情報、頂点情報、厚み情報に基づき、各面から延伸して形成される厚み領域を設定する。具体的には、メッシュ情報記憶部２０１から取得した面についての法線情報、角度情報、頂点情報に基づき、当該面と、当該面を形成する各辺から延伸して形成される各面の交点とで形成される領域のうち、当該面からの距離が厚み情報で示される厚み距離を超える部分を切り取った領域を、当該面の厚さ領域として設定する。なお、当該面と交点との距離が、厚み情報で示される厚み距離以下である場合には、当該面と当該交点で形成される領域を厚み領域として設定する。
【００２４】
次に、厚み領域設定部２０２の機能的構成の詳細について説明する。厚み領域設定部２０２は、図２に示すように、機能的に、法線ベクトル算出部２０３、交点算出部２０４、距離算出部２０５、割合算出部２０６、座標算出部２０７と、を含む。なお、図２に示した構成は例示であって、これに限られるものではない。
【００２５】
法線ベクトル算出部２０３は、メッシュ情報記憶部２０１から取得した頂点情報、角度情報に基づいて、対象とする面（対象面）から垂直に厚み方向に延伸させた各面の法線ベクトル、及び、対象面の各辺から厚み方向に延伸させた面の法線ベクトルを算出する。
【００２６】
例えば、図６（Ａ）に示した場合、幾何学的に、図６（Ｂ）に示すように、法線ベクトルｎと、対象面から垂直に厚み方向に延伸させた面の法線ベクトルｎ０は垂直であり、対象面の各辺から厚み方向に交点を通過するように延伸させて形成される面の法線ベクトルｎ’０と法線ベクトルｎ０との間の角度はθ０となることから、法線ベクトルｎ’０は、次式を用いて求められる。
【数１】
0005498437.tif 000002
【００２７】
ここで、図６（Ａ）及び図６（Ｂ）においては、厚み領域を設定する面（対象面）の頂点を示すベクトル（以下、単に頂点という）をｐ０、ｐ１、ｐ２とし、対象面の各辺から厚み方向（厚み領域を設定する方向）に延伸させた面の交点を、ｑとする。また、対象面から垂直に厚み方向に延伸させた各面の法線ベクトルをｎ０、ｎ１、ｎ２とし、対象面の各辺から厚み方向に交点を通過するように延伸させて形成される面の法線ベクトルをｎ’０、ｎ’１、ｎ’２とする。また、頂点ｐ０とｐ２で表されるエッジについて対象面と隣接する面との角度を、θ０とし、頂点ｐ１とｐ２で表されるエッジについて対象面と隣接する面との角度を、θ１とする。また、厚み領域設定部２０２により、厚み領域として設定される領域を図７に示す。つまり、図７に示すように、厚み領域は、例えば、頂点ｐ０、ｐ１、ｐ２、ｐ’０、ｐ’１、ｐ’２で形成される領域に相当し、当該厚み領域がどのように設定されるかについて説明する。
【００２８】
なお、頂点ｐ０、ｐ１、ｐ２、角度θ０、θ１、法線ベクトルｎは、メッシュ情報記憶部２０１から取得されることは前述のとおりである。また、法線ベクトルｎ’１、ｎ’２についても上記と同様にして求められる。更に、法線ベクトルｎ０、ｎ１、ｎ２は、頂点ｐ０乃至ｐ２の位置座標及び法線ベクトルｎに垂直であることから算出されることはいうまでもない。
【００２９】
交点算出部２０４は、上記算出された対象面の各辺から厚み方向に交点を通過するように延伸させて形成される面の法線ベクトルと対象面の各位置座標に基づいて、交点の位置座標を算出する。
【００３０】
具体的には、上記例の場合、交点ｑは、対象面の各辺から厚み方向に延伸させた面上に存在するように設定することから、交点ｑは、次式を満たす。
【数２】
0005498437.tif 000003
【００３１】
上記（２）を連立させて解くことにより、下記（３）、（４）に示すように、交点ｑの位置座標を求めることができる。
【数３】
0005498437.tif 000004
【数４】
0005498437.tif 000005
【００３２】
なお、上記（３）、（４）において、ｎ’０ｘ等は、ｘ、ｙ、ｚ軸を用いて表現される仮想空間における法線ベクトルｎ０等の座標成分を示したものであり、同様にｑｘ等も交点ｑの座標成分を示すものであることはいうまでもない。
【００３３】
距離算出部２０５は、交点算出部２０４で算出された交点の座標から対象面までの距離を算出するとともに、当該距離がメッシュ情報記憶部２０１から取得された厚み距離以下であるか否かを判定する。当該距離が厚み距離以下である場合には、後述するように対象面と交点とで形成される領域を厚み領域として設定する。
【００３４】
割合算出部２０６は、距離算出部２０５において交点座標から対象面までの距離が厚み距離以上であると判定された場合には、距離算出部２０５で算出された距離、及び、メッシュ情報記憶部２０１から取得された厚み距離に基づいて、対象面に設定された厚み距離と、対象面から交点までの距離の割合を算出する。
【００３５】
具体的には、上記例の場合、対象面から交点ｑまでの割合をｔとすると、ｔは次式を用いて求められる。
【数５】
0005498437.tif 000006
【００３６】
座標算出部２０７は、割合算出部２０６により算出された割合、頂点の位置座標、交点の位置座標に基づいて、割合厚み領域として設定される領域の頂点の位置座標を算出する。
【００３７】
具体的には、次式を用いて、割合厚み領域として設定される領域の頂点の位置座標を算出する。
【数６】
0005498437.tif 000007
【００３８】
上記のようにして算出された厚み領域の頂点ｐ’０乃至ｐ’３または交点と、頂点ｐ０乃至ｐ３とで構成される領域を衝突判定に用いられる厚み領域として設定する。当該厚み領域に関する情報、つまり、厚み領域を形成する対象面に対向する面または点の位置座標は、例えば、メッシュ情報記憶部２０１に記憶される。また、当該位置座標へのリンクは、例えば、メッシュ情報記憶部２０１に面情報として記憶されるとともに、対象面の各辺から厚み方向に延伸させた面の法線ベクトルもメッシュ情報記憶部２０１に面情報として記憶される。上記のようにして設定される厚み領域は、凸形状となることから、上述の分離軸法等既存の衝突判定法を用いることができる。
【００３９】
次に、図８を用いて、情報処理装置１００の機能的な構成の概要について説明する。図８に示すように、情報処理装置１００は、オブジェクト情報取得部８０１、メッシュ情報取得部８０２、衝突判定部８０３、衝突情報取得部８０４、物理エンジン８０５、画像情報生成部８０６を含む。
【００４０】
なお、下記においては、説明の簡略化のために、図９（Ａ）乃至（Ｆ）に示すように、現在のフレーム期間（例えば、１フレーム期間）において、仮想空間上において対象となるオブジェクトとしての球形状の剛体と上記のように厚み領域が設定された面とが衝突する場合を例として説明する。また、下記においては、上記厚み領域に関する情報は、上記のように厚み領域設定装置２００等により算出され、例えばメッシュ情報記憶部２０１に記憶されている場合を想定して説明するが、これに限られず、情報処理装置１００が、上記厚み領域設定装置２００の機能を含み、厚み領域に関する情報を設定する構成であってもよい。
【００４１】
オブジェクト情報取得部８０１は、対象となるオブジェクト９０１の位置、移動方向、速度、サイズを含むオブジェクト情報を、所定期間毎、例えば１フレーム期間毎に取得する。具体的には、例えば、図９に示したオブジェクト９０１（剛体）の位置、移動方向、速度、サイズを取得する。なお、図９においては、オブジェクト情報に含まれる剛体の移動方向及び速度をベクトルｖで示した。なお、対象となるオブジェクト９０１とは、例えば、ゲームプログラムの仮想空間においてユーザーにより操作されるキャラクタであってもよいし、ＣＧ（Computer Graphics）等で表現される仮想空間におけるボール等の特定の対象物であってもよい。また、当該オブジェクト情報取得部８０１が、例えば、特許請求の範囲に記載の対象物情報取得手段に相当する。
【００４２】
メッシュ情報取得部８０２は、メッシュ情報記憶部２０１に記憶されたメッシュ情報を取得する。具体的には、面と当該面に対応する厚み領域に関する情報、例えば、図９に示した面９０２と対応する厚み領域９０３に対応する頂点情報等を取得する。なお、当該面と当該面９０２に対応する厚み領域９０３に関する情報が、例えば、特許請求の範囲の面情報に相当する。
【００４３】
衝突判定部８０３は、上記取得されたオブジェクト情報及びメッシュ情報に基づいて、対象とするオブジェクト９０１が対象とする面が衝突したか否かを判定する。以下、図１０を用いて、より具体的に説明する。
【００４４】
まず、衝突判定部８０３は、図１０に示すように、面の法線（分離軸９０４に相当する）に対してオブジェクト９０１及び厚み領域９０３を投影し、当該分離軸９０４上において、オブジェクト９０１が投影されて形成される線分の端点、法線方向から順にＡＭＡＸ、ＡＭＩＮとし、厚み領域９０３が投影されて形成される線分の端点を、法線方向から順にＢＭＡＸ、ＢＭＩＮとして、ＡＭＡＸ、ＡＭＩＮ、ＢＭＡＸ、ＢＭＩＮの分離軸上の位置座標を取得する。
【００４５】
次に、交差距離（ＡＭＩＮ−ＢＭＡＸ）が０以上であるか否かを判定する。そして、交差距離（ＡＭＩＮ−ＢＭＡＸ）が０以上である場合には、衝突していないと判定する。
【００４６】
一方、交差距離が０より小さい場合には、例えば、図１０（Ｄ）に示すように、更に、厚み領域９０３の分離軸９０５（厚み領域９０３の面の法線）に対して、同様に、オブジェクト９０１及び厚み領域９０３を投影し、ＡＭＡＸ、ＡＭＩＮ、ＢＭＡＸ、ＢＭＩＮの分離軸上の位置座標を取得する。そして、同様に交差距離（ＡＭＩＮ−ＢＭＡＸ）が０以上であるか否かを判定する。
【００４７】
交差距離（ＡＭＩＮ−ＢＭＡＸ）が０以上である場合には、衝突していないと判定する。例えば、図１０（Ｄ）（図（Ｃ）に対応する）に示す場合は、交差距離が０以上となるので、衝突していないと判定する。一方、交差距離が０より小さい場合は、衝突したと判定する。例えば、図１０（Ａ）及び（Ｂ）に示した場合は、交差距離が０より小さい値となるので、衝突していると判定する。
【００４８】
衝突情報取得部８０４は、衝突判定部８０３が衝突したと判定した場合には、衝突座標、貫通の深さ、反発方向を含む衝突情報を算出し、当該衝突情報を物理エンジン８０５へ入力する。具体的には、例えば、図９（Ｃ）、図１０（Ｅ）、及び、図１０（Ｆ）に示すように、上記面の分離軸９０４、オブジェクト９０１及び面９０２の位置に基づいて、幾何計算により、剛体の２の衝突座標９０６を算出するとともに、２の衝突座標９０６で形成されるベクトル（衝突ベクトル）９０７の長さを貫通の深さを示す情報として算出する。また、面９０２の法線ベクトルで示される方向を反発方向とする。また、２の衝突座標９０６は、例えば、オブジェクト９０１の中心から面９０２の分離軸９０４に平行に面に投影した座標（第１の衝突座標）、及び、面の分離軸に平行に第１の衝突座標から面９０２の厚み方向に最も離れた点の座標（第２の衝突座標）に相当する。また、上記衝突ベクトルの方向は、例えば、第１の衝突座標から第２の衝突座標に向かう方向とする。
【００４９】
物理エンジン８０５は、例えば、図９（Ｄ）乃至図９（Ｆ）に示したように、衝突判定部８０３が衝突したと判定した場合には、当該衝突情報に基づいて、衝突の反発力を算出し、当該反発力に基づいて次のタイミング（例えば、次のフレーム期間）におけるオブジェクト９０１の速度を算出する。また、物理エンジン８０５は、更に、衝突情報及び算出されたオブジェクト９０１の速度に基づき、次のタイミングにおけるオブジェクト９０１の位置を算出する。なお、衝突判定部８０３が衝突していないと判定した場合には、オブジェクト情報に基づいて、次のタイミングにおけるオブジェクト９０１の位置を算出する。なお、物理エンジン８０５とは、周知のように、質量・速度・摩擦・風といった、古典力学的な法則をシミュレーションするコンピュータソフトウェアに相当する。
【００５０】
画像情報生成部８０６は、メッシュ情報に基づいて背景画像を生成するとともに、オブジェクト情報や物理エンジン８０５により算出されたオブジェクト９０１の位置情報に基づいてオブジェクト９０１の画像を生成し、例えば、背景画像に当該オブジェクト９０１の画像が重畳された画像を画像情報として生成する。生成された画像情報は、例えば、情報処理装置１００の表示部１１５で表示される。なお、当該画像情報は、通信部１１３を介して外部の表示装置等（図示なし）に送信されてもよい。
【００５１】
上記のように構成することで、仮想空間における衝突判定において、面に厚みがないことに伴ういわゆる衝突抜けを防止することができ、仮想空間における面と対象物との間の衝突判定をより適切に行うことができる。また、衝突したと判定した場合には、単に、面を突き抜けることを防止するのみではなく、当該面に衝突した対象物を面で反射させて戻すようにすることができる。
【００５２】
なお、本発明は、上記実施の形態に限定されるものではなく、種々の変形が可能である。例えば、上記実施の形態で示した構成と実質的に同一の構成、同一の作用効果を奏する構成又は同一の目的を達成することができる構成で置き換えることができる。
【００５３】
例えば、上記厚み領域の設定は一例であって、これに限られない。例えば、図１１（Ａ）乃至（Ｃ）に示すように、隣接する面５００に設定された厚み情報に基づいて、各面５００から延伸した厚み領域５０３を設定し（図１１（Ｂ））、当該隣接する面の辺に設定された角度情報に基づいて、重なった領域及び当該重なった領域から他方の面側に延伸した領域を排除することにより厚み領域５０３を設定してもよい（図１１（Ｃ））。また、図１２（Ａ）乃至図１２（Ｃ）に示すように、仮想空間におけるメッシュの凸エッジに隣接する面１２０と当該面１２０と隣接する面１２１、１２２の間の角度を設定するとともに、当該一方の面１２１と当該一方の面と隣接しない他方の面１２２との厚み領域１２５が干渉しないように厚み距離を当該各面１２１、１２２に設定し、上記設定された角度に応じて、かつ、重なった領域を排除することにより、当該各面１２０、１２１、１２２の厚み領域１２５を設定してもよい。なお、図１２（Ｂ）は、一例として、一方の面１２１及び他方の面１２２の厚み距離として、当該各面１２１、１２２を延伸した場合に双方の面１２１、１２２が干渉する干渉点１２６までの距離を厚み領域として設定した場合を示す。更に、この場合において、例えば、図１２（Ｃ）に示すようにメッシュの凹エッジ付近１２４において、厚み領域が設定されない場合については、当該部分が隣接する各面１２２、１２３の厚み領域を調整して当該部分が各面１２２、１２３の厚み領域を延伸して含まれるようにしてもよい。この場合においても、面１２２と１２３との間の角度情報として設定された角度情報に応じて、各面１２２、１２３の厚み領域を調整してもよいことはいうまでもない。更に、上記においては、衝突判定において分離軸判定法を適用する場合について説明したが、これに限られず、いわゆる凸形状に適用可能な衝突判定法であれば、ＧＪＫ法等その他の方法を適用してもよい。
【符号の説明】
【００５４】
１００  情報処理装置、１１１  制御部、１１２  記憶部、１１３  通信部、１１４  操作部、１１５  表示部、１１６  内部バス、２００  厚み領域設定装置、２０１  メッシュ情報記憶部、２０２  厚み領域設定部、２０３  法線ベクトル算出部、２０４  交点算出部、２０５  距離算出部、２０６  割合算出部、２０７  座標算出部、８０１  オブジェクト情報取得部、８０２  メッシュ情報取得部、８０３  衝突判定部、８０４  衝突情報取得部、８０５  物理エンジン、８０６  画像情報生成部。
【図１】
0005498437.tif 000008
【図２】
0005498437.tif 000009
【図３】
0005498437.tif 000010
【図４】
0005498437.tif 000011
【図５】
0005498437.tif 000012
【図６】
0005498437.tif 000013
【図７】
0005498437.tif 000014
【図８】
0005498437.tif 000015
【図９】
0005498437.tif 000016
【図１０】
0005498437.tif 000017
【図１１】
0005498437.tif 000018
【図１２】
0005498437.tif 000019