情報処理装置、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体、厚み領域設定装置、厚み領域設定方法、厚み領域設定プログラム、厚み領域設定プログラムを記憶したコンピュータ読み取り可能な記録媒体、仮想空間における面に関するデータ構造
【課題】仮想空間における面と対象物との衝突判定において、いわゆる衝突抜けが発生する場合がある。
【解決手段】情報処理プログラムであって、仮想空間上における対象物の位置及び領域を示す対象物情報を取得する対象物情報取得手段、前記仮想空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得する面情報取得手段、及び、前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う衝突判定手段、としてコンピュータを機能させる。
【解決手段】情報処理プログラムであって、仮想空間上における対象物の位置及び領域を示す対象物情報を取得する対象物情報取得手段、前記仮想空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得する面情報取得手段、及び、前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う衝突判定手段、としてコンピュータを機能させる。
【発明の詳細な説明】
【技術分野】
【0001】
情報処理装置、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体、厚み領域設定装置、厚み領域設定方法、厚み領域設定プログラム、厚み領域設定プログラムを記憶したコンピュータ読み取り可能な記録媒体、仮想空間における面に関するデータ構造に関する。
【背景技術】
【0002】
仮想空間における2の対象物の衝突判定を行う技術として、例えば、分離軸法やGJK法が知られている。例えば、分離軸法による衝突判定は、2の対象物の間に、分離できる平面(分離平面)が存在するか否かを判定し、当該分離平面が存在しなければ、当該2の対象物が衝突していると判定する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、上記のような衝突判定方法は、アルゴリズムの特性上、いわゆる凸形状の対象物間における衝突判定にしか適用できないため、例えば、仮想空間における地形のような複雑な形状を有する対象物とキャラクタ等の対象物との衝突判定に対しては、当該形状を面に分解して、当該面とキャラクタ等の対象物との衝突判定を行う。ここで、コンピュータを用いて仮想空間における対象物を表現する場合、例えば、1フレーム期間毎等、離散時間を用いて画面を更新する。よって、当該面と対象物との衝突判定を行う場合、いわゆる衝突抜けの問題が発生する場合がある。
【0004】
本発明は、上記課題に鑑みて、例えば、仮想空間における地形のような複雑な形状を有する対象物とキャラクタ等の対象物との衝突判定についても、より適切に衝突の有無を判定可能な情報処理プログラム、情報処理装置、情報処理方法、仮想空間における面に関するデータ構造、当該データ構造または情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体、等を実現することを目的とする。
【0005】
また、本発明の他の目的は、例えば、仮想空間における地形のような複雑な形状を有する対象物とキャラクタ等の対象物との衝突判定についても、より適切に衝突の有無を判定可能とするために、仮想空間における面に対して厚み領域を設定する厚み領域設定プログラム、厚み領域設定装置、厚み領域設定方法、仮想空間における面に関するデータ構造、当該データ構造または厚み領域設定プログラムを記憶したコンピュータ読み取り可能な記録媒体、等を実現することを目的とする。
【課題を解決するための手段】
【0006】
本発明の情報処理プログラムは、仮想空間上における対象物の位置及び領域を示す対象物情報を取得する対象物情報取得手段、前記仮想空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得する面情報取得手段、及び、前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う衝突判定手段、としてコンピュータを機能させる。
【0007】
本発明の情報処理装置は、仮想空間上における対象物の位置及び領域を示す対象物情報を取得する対象物情報取得手段と、前記仮想空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得する面情報取得手段と、前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う衝突判定手段と、を有する。
【0008】
本発明の情報処理方法は、仮想空間上における対象物の位置及び領域を示す対象物情報を取得し、前記仮想空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得し、前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う。
【0009】
本発明の仮想空間における面の厚み領域設定プログラムは、仮想空間における第1の面の各頂点を示す頂点情報と、前記第1の面の法線方向を示す法線情報と、前記第1の面における各辺において隣接する第2の面との間の角度を示す角度情報と、前記第1の面の厚みに関する厚み情報と、を含むメッシュ情報を取得するメッシュ情報取得手段、及び、前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第1の面から延伸して形成される厚み領域を設定する厚み領域設定手段、としてコンピュータを機能させる。
【0010】
本発明の仮想空間における面の厚み領域設定装置は、仮想空間における第1の面の各頂点を示す頂点情報と、前記第1の面の法線方向を示す法線情報と、前記第1の面における各辺において隣接する第2の面との間の角度を示す角度情報と、前記第1の面の厚みに関する厚み情報と、を含むメッシュ情報を取得するメッシュ情報取得手段と、前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第1の面から延伸して形成される厚み領域を設定する厚み領域設定手段と、を有する。
【0011】
本発明の仮想空間における面の厚み領域設定方法は、仮想空間における第1の面の各頂点を示す頂点情報と、前記第1の面の法線方向を示す法線情報と、前記第1の面における各辺において隣接する第2の面との間の角度を示す角度情報と、前記第1の面の厚みに関する厚み情報と、を含むメッシュ情報を取得し、前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第1の面から延伸して形成される厚み領域を設定する。
【0012】
本発明の仮想空間における面に関するデータ構造は、仮想空間における第1の面の各頂点を示す頂点情報と、前記第1の面の法線方向を示す法線情報と、前記第1の面における各辺において隣接する第2の面との間の角度を示す角度情報と、前記第1の面の厚みに関する厚み情報と、を含むメッシュ情報と、前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第1の面から延伸して形成された厚み領域が設定された厚み領域に関する厚み領域情報と、を含む。
【図面の簡単な説明】
【0013】
【図1】本発明の実施の形態における情報処理装置及び厚み領域設定装置の構成の概要について説明するための図である。
【図2】厚み領域設定装置の機能的な構成について説明するための図である。
【図3】メッシュ情報のデータ構造の一例について説明するための図である。
【図4】仮想空間における背景画像の一例を示す図である。
【図5】仮想空間におけるポリゴンの構成を説明するための図である。
【図6】厚み領域の設定について説明するための図である。
【図7】厚み領域として設定される領域の一例を示す図である。
【図8】情報処理装置の機能的な構成の概要について説明するための図である。
【図9】仮想空間における剛体と面の衝突判定の一例について説明するための図である。
【図10】図9に示した衝突判定の詳細について説明するための図である。
【図11】厚み領域設定の他の一例を説明するための図である。
【図12】厚み領域設定の他の一例を説明するための図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施形態について、図面を参照しつつ説明する。なお、図面については、同一又は同等の要素には同一の符号を付し、重複する説明は省略する。
【0015】
図1は、本発明の実施の形態における情報処理装置の構成の概要について説明するための図である。図1に示すように、情報処理装置100は、例えば、CPUやメモリ等で構成されるコンピュータで構成され、例えば、制御部111、記憶部112、通信部113、操作部114、表示部115を有する。なお、制御部111、記憶部112、通信部113、操作部114、表示部115は、内部バス116により互いに接続される。
【0016】
制御部111は、例えば、CPU、MPU等であって、記憶部112に格納されたプログラムに従って動作する。記憶部112は、例えば、ROMやRAM、ハードディスク等の情報記録媒体で構成され、制御部111によって実行されるプログラムを保持する情報記録媒体である。また、記憶部112は、制御部111のワークメモリとしても動作する。なお、当該プログラムは、例えば、ネットワークを介して、ダウンロードされて提供されてもよいし、または、CD−ROMやDVD−ROM等のコンピュータで読み取り可能な各種の情報記録媒体によって提供されてもよい。
【0017】
通信部113は、当該情報処理装置100を、ネットワークを介して、他の情報処理装置やデータベース等(図示なし)と接続する。操作部114は、例えば、キーボードやマウス、コントローラ等で構成され、ユーザーの指示操作に応じて、当該指示操作の内容を制御部111に出力する。表示部115は、例えば、液晶ディスプレイ、有機ELディスプレイ等であって、制御部111からの指示に従い、情報を表示する。
【0018】
なお、上記情報処理装置100の構成は、一例であってこれに限定されるものではない。また、本実施の形態における厚み領域設定装置200についても、上記情報処理装置100の構成と同様であるので、説明を省略する。
【0019】
図2は、本実施の形態における厚み領域設定装置200の機能的な構成について説明するための図である。図2に示すように、厚み領域設定装置200は、メッシュ情報記憶部201と、厚み領域設定部202と、を有する。
【0020】
メッシュ情報記憶部201は、ポリゴンで表現される面の集合についての情報(メッシュ情報)を記憶する。メッシュ情報は、例えば、図3(A)に示すように、各面の頂点の位置座標を示す頂点情報、各面に関する情報を含む面情報、各面のエッジ(辺)に関する情報を含むエッジ情報を、配列の形式で保持される。
【0021】
ここで、例えば、本実施の形態においては、図4に示すように、仮想空間における背景としての建物や地形等(図4は、建物の例を示す)は、三角の形状を有するポリゴンで表現される面の集合で表現されるメッシュ構造を有する。また、各面(ポリゴン)500は、図5に示すように、各頂点501とエッジ502(辺に相当する)を含む。この場合、図4及び図5に示した頂点501、面500、エッジ502を表す情報がそれぞれ、上記頂点情報、面情報、エッジ情報に相当する。
【0022】
より具体的には、例えば、上記図4及び図5に示すように、各ポリゴンが三角形で表現される場合、頂点情報は、例えば、仮想空間上における3の位置座標を含み、面情報は、図3(B)に示すように、当該面の3の頂点へのリンクを示すリンク情報と、当該面のエッジ情報へのリンクを示す3のエッジ情報と、当該面の法線方向を示す法線ベクトルと、後述する当該面の厚み距離を示す厚み情報とを含む。また、エッジ情報は、図3(C)に示すように、各エッジの頂点へのリンクを示す2のリンク情報、エッジを介して隣接する各面との間の角度を示す角度情報を含む。なお、当該角度は、例えば、エッジを介して隣接する2の面の各法線ベクトルによって形成される角度に相当する。
【0023】
厚み領域設定部202は、メッシュ情報記憶部201から取得した法線情報、角度情報、頂点情報、厚み情報に基づき、各面から延伸して形成される厚み領域を設定する。具体的には、メッシュ情報記憶部201から取得した面についての法線情報、角度情報、頂点情報に基づき、当該面と、当該面を形成する各辺から延伸して形成される各面の交点とで形成される領域のうち、当該面からの距離が厚み情報で示される厚み距離を超える部分を切り取った領域を、当該面の厚さ領域として設定する。なお、当該面と交点との距離が、厚み情報で示される厚み距離以下である場合には、当該面と当該交点で形成される領域を厚み領域として設定する。
【0024】
次に、厚み領域設定部202の機能的構成の詳細について説明する。厚み領域設定部202は、図2に示すように、機能的に、法線ベクトル算出部203、交点算出部204、距離算出部205、割合算出部206、座標算出部207と、を含む。なお、図2に示した構成は例示であって、これに限られるものではない。
【0025】
法線ベクトル算出部203は、メッシュ情報記憶部201から取得した頂点情報、角度情報に基づいて、対象とする面(対象面)から垂直に厚み方向に延伸させた各面の法線ベクトル、及び、対象面の各辺から厚み方向に延伸させた面の法線ベクトルを算出する。
【0026】
例えば、図6(A)に示した場合、幾何学的に、図6(B)に示すように、法線ベクトルnと、対象面から垂直に厚み方向に延伸させた面の法線ベクトルn0は垂直であり、対象面の各辺から厚み方向に交点を通過するように延伸させて形成される面の法線ベクトルn’0と法線ベクトルn0との間の角度はθ0となることから、法線ベクトルn’0は、次式を用いて求められる。
【数1】
【0027】
ここで、図6(A)及び図6(B)においては、厚み領域を設定する面(対象面)の頂点を示すベクトル(以下、単に頂点という)をp0、p1、p2とし、対象面の各辺から厚み方向(厚み領域を設定する方向)に延伸させた面の交点を、qとする。また、対象面から垂直に厚み方向に延伸させた各面の法線ベクトルをn0、n1、n2とし、対象面の各辺から厚み方向に交点を通過するように延伸させて形成される面の法線ベクトルをn’0、n’1、n’2とする。また、頂点p0とp2で表されるエッジについて対象面と隣接する面との角度を、θ0とし、頂点p1とp2で表されるエッジについて対象面と隣接する面との角度を、θ1とする。また、厚み領域設定部202により、厚み領域として設定される領域を図7に示す。つまり、図7に示すように、厚み領域は、例えば、頂点p0、p1、p2、p’0、p’1、p’2で形成される領域に相当し、当該厚み領域がどのように設定されるかについて説明する。
【0028】
なお、頂点p0、p1、p2、角度θ0、θ1、法線ベクトルnは、メッシュ情報記憶部201から取得されることは前述のとおりである。また、法線ベクトルn’1、n’2についても上記と同様にして求められる。更に、法線ベクトルn0、n1、n2は、頂点p0乃至p2の位置座標及び法線ベクトルnに垂直であることから算出されることはいうまでもない。
【0029】
交点算出部204は、上記算出された対象面の各辺から厚み方向に交点を通過するように延伸させて形成される面の法線ベクトルと対象面の各位置座標に基づいて、交点の位置座標を算出する。
【0030】
具体的には、上記例の場合、交点qは、対象面の各辺から厚み方向に延伸させた面上に存在するように設定することから、交点qは、次式を満たす。
【数2】
【0031】
上記(2)を連立させて解くことにより、下記(3)、(4)に示すように、交点qの位置座標を求めることができる。
【数3】
【数4】
【0032】
なお、上記(3)、(4)において、n’0x等は、x、y、z軸を用いて表現される仮想空間における法線ベクトルn0等の座標成分を示したものであり、同様にqx等も交点qの座標成分を示すものであることはいうまでもない。
【0033】
距離算出部205は、交点算出部204で算出された交点の座標から対象面までの距離を算出するとともに、当該距離がメッシュ情報記憶部201から取得された厚み距離以下であるか否かを判定する。当該距離が厚み距離以下である場合には、後述するように対象面と交点とで形成される領域を厚み領域として設定する。
【0034】
割合算出部206は、距離算出部205において交点座標から対象面までの距離が厚み距離以上であると判定された場合には、距離算出部205で算出された距離、及び、メッシュ情報記憶部201から取得された厚み距離に基づいて、対象面に設定された厚み距離と、対象面から交点までの距離の割合を算出する。
【0035】
具体的には、上記例の場合、対象面から交点qまでの割合をtとすると、tは次式を用いて求められる。
【数5】
【0036】
座標算出部207は、割合算出部206により算出された割合、頂点の位置座標、交点の位置座標に基づいて、割合厚み領域として設定される領域の頂点の位置座標を算出する。
【0037】
具体的には、次式を用いて、割合厚み領域として設定される領域の頂点の位置座標を算出する。
【数6】
【0038】
上記のようにして算出された厚み領域の頂点p’0乃至p’3または交点と、頂点p0乃至p3とで構成される領域を衝突判定に用いられる厚み領域として設定する。当該厚み領域に関する情報、つまり、厚み領域を形成する対象面に対向する面または点の位置座標は、例えば、メッシュ情報記憶部201に記憶される。また、当該位置座標へのリンクは、例えば、メッシュ情報記憶部201に面情報として記憶されるとともに、対象面の各辺から厚み方向に延伸させた面の法線ベクトルもメッシュ情報記憶部201に面情報として記憶される。上記のようにして設定される厚み領域は、凸形状となることから、上述の分離軸法等既存の衝突判定法を用いることができる。
【0039】
次に、図8を用いて、情報処理装置100の機能的な構成の概要について説明する。図8に示すように、情報処理装置100は、オブジェクト情報取得部801、メッシュ情報取得部802、衝突判定部803、衝突情報取得部804、物理エンジン805、画像情報生成部806を含む。
【0040】
なお、下記においては、説明の簡略化のために、図9(A)乃至(F)に示すように、現在のフレーム期間(例えば、1フレーム期間)において、仮想空間上において対象となるオブジェクトとしての球形状の剛体と上記のように厚み領域が設定された面とが衝突する場合を例として説明する。また、下記においては、上記厚み領域に関する情報は、上記のように厚み領域設定装置200等により算出され、例えばメッシュ情報記憶部201に記憶されている場合を想定して説明するが、これに限られず、情報処理装置100が、上記厚み領域設定装置200の機能を含み、厚み領域に関する情報を設定する構成であってもよい。
【0041】
オブジェクト情報取得部801は、対象となるオブジェクト901の位置、移動方向、速度、サイズを含むオブジェクト情報を、所定期間毎、例えば1フレーム期間毎に取得する。具体的には、例えば、図9に示したオブジェクト901(剛体)の位置、移動方向、速度、サイズを取得する。なお、図9においては、オブジェクト情報に含まれる剛体の移動方向及び速度をベクトルvで示した。なお、対象となるオブジェクト901とは、例えば、ゲームプログラムの仮想空間においてユーザーにより操作されるキャラクタであってもよいし、CG(Computer Graphics)等で表現される仮想空間におけるボール等の特定の対象物であってもよい。また、当該オブジェクト情報取得部801が、例えば、特許請求の範囲に記載の対象物情報取得手段に相当する。
【0042】
メッシュ情報取得部802は、メッシュ情報記憶部201に記憶されたメッシュ情報を取得する。具体的には、面と当該面に対応する厚み領域に関する情報、例えば、図9に示した面902と対応する厚み領域903に対応する頂点情報等を取得する。なお、当該面と当該面902に対応する厚み領域903に関する情報が、例えば、特許請求の範囲の面情報に相当する。
【0043】
衝突判定部803は、上記取得されたオブジェクト情報及びメッシュ情報に基づいて、対象とするオブジェクト901が対象とする面が衝突したか否かを判定する。以下、図10を用いて、より具体的に説明する。
【0044】
まず、衝突判定部803は、図10に示すように、面の法線(分離軸904に相当する)に対してオブジェクト901及び厚み領域903を投影し、当該分離軸904上において、オブジェクト901が投影されて形成される線分の端点、法線方向から順にAMAX、AMINとし、厚み領域903が投影されて形成される線分の端点を、法線方向から順にBMAX、BMINとして、AMAX、AMIN、BMAX、BMINの分離軸上の位置座標を取得する。
【0045】
次に、交差距離(AMIN−BMAX)が0以上であるか否かを判定する。そして、交差距離(AMIN−BMAX)が0以上である場合には、衝突していないと判定する。
【0046】
一方、交差距離が0より小さい場合には、例えば、図10(D)に示すように、更に、厚み領域903の分離軸905(厚み領域903の面の法線)に対して、同様に、オブジェクト901及び厚み領域903を投影し、AMAX、AMIN、BMAX、BMINの分離軸上の位置座標を取得する。そして、同様に交差距離(AMIN−BMAX)が0以上であるか否かを判定する。
【0047】
交差距離(AMIN−BMAX)が0以上である場合には、衝突していないと判定する。例えば、図10(D)(図(C)に対応する)に示す場合は、交差距離が0以上となるので、衝突していないと判定する。一方、交差距離が0より小さい場合は、衝突したと判定する。例えば、図10(A)及び(B)に示した場合は、交差距離が0より小さい値となるので、衝突していると判定する。
【0048】
衝突情報取得部804は、衝突判定部803が衝突したと判定した場合には、衝突座標、貫通の深さ、反発方向を含む衝突情報を算出し、当該衝突情報を物理エンジン805へ入力する。具体的には、例えば、図9(C)、図10(E)、及び、図10(F)に示すように、上記面の分離軸904、オブジェクト901及び面902の位置に基づいて、幾何計算により、剛体の2の衝突座標906を算出するとともに、2の衝突座標906で形成されるベクトル(衝突ベクトル)907の長さを貫通の深さを示す情報として算出する。また、面902の法線ベクトルで示される方向を反発方向とする。また、2の衝突座標906は、例えば、オブジェクト901の中心から面902の分離軸904に平行に面に投影した座標(第1の衝突座標)、及び、面の分離軸に平行に第1の衝突座標から面902の厚み方向に最も離れた点の座標(第2の衝突座標)に相当する。また、上記衝突ベクトルの方向は、例えば、第1の衝突座標から第2の衝突座標に向かう方向とする。
【0049】
物理エンジン805は、例えば、図9(D)乃至図9(F)に示したように、衝突判定部803が衝突したと判定した場合には、当該衝突情報に基づいて、衝突の反発力を算出し、当該反発力に基づいて次のタイミング(例えば、次のフレーム期間)におけるオブジェクト901の速度を算出する。また、物理エンジン805は、更に、衝突情報及び算出されたオブジェクト901の速度に基づき、次のタイミングにおけるオブジェクト901の位置を算出する。なお、衝突判定部803が衝突していないと判定した場合には、オブジェクト情報に基づいて、次のタイミングにおけるオブジェクト901の位置を算出する。なお、物理エンジン805とは、周知のように、質量・速度・摩擦・風といった、古典力学的な法則をシミュレーションするコンピュータソフトウェアに相当する。
【0050】
画像情報生成部806は、メッシュ情報に基づいて背景画像を生成するとともに、オブジェクト情報や物理エンジン805により算出されたオブジェクト901の位置情報に基づいてオブジェクト901の画像を生成し、例えば、背景画像に当該オブジェクト901の画像が重畳された画像を画像情報として生成する。生成された画像情報は、例えば、情報処理装置100の表示部115で表示される。なお、当該画像情報は、通信部113を介して外部の表示装置等(図示なし)に送信されてもよい。
【0051】
上記のように構成することで、仮想空間における衝突判定において、面に厚みがないことに伴ういわゆる衝突抜けを防止することができ、仮想空間における面と対象物との間の衝突判定をより適切に行うことができる。また、衝突したと判定した場合には、単に、面を突き抜けることを防止するのみではなく、当該面に衝突した対象物を面で反射させて戻すようにすることができる。
【0052】
なお、本発明は、上記実施の形態に限定されるものではなく、種々の変形が可能である。例えば、上記実施の形態で示した構成と実質的に同一の構成、同一の作用効果を奏する構成又は同一の目的を達成することができる構成で置き換えることができる。
【0053】
例えば、上記厚み領域の設定は一例であって、これに限られない。例えば、図11(A)乃至(C)に示すように、隣接する面500に設定された厚み情報に基づいて、各面500から延伸した厚み領域503を設定し(図11(B))、当該隣接する面の辺に設定された角度情報に基づいて、重なった領域及び当該重なった領域から他方の面側に延伸した領域を排除することにより厚み領域503を設定してもよい(図11(C))。また、図12(A)乃至図12(C)に示すように、仮想空間におけるメッシュの凸エッジに隣接する面120と当該面120と隣接する面121、122の間の角度を設定するとともに、当該一方の面121と当該一方の面と隣接しない他方の面122との厚み領域125が干渉しないように厚み距離を当該各面121、122に設定し、上記設定された角度に応じて、かつ、重なった領域を排除することにより、当該各面120、121、122の厚み領域125を設定してもよい。なお、図12(B)は、一例として、一方の面121及び他方の面122の厚み距離として、当該各面121、122を延伸した場合に双方の面121、122が干渉する干渉点126までの距離を厚み領域として設定した場合を示す。更に、この場合において、例えば、図12(C)に示すようにメッシュの凹エッジ付近124において、厚み領域が設定されない場合については、当該部分が隣接する各面122、123の厚み領域を調整して当該部分が各面122、123の厚み領域を延伸して含まれるようにしてもよい。この場合においても、面122と123との間の角度情報として設定された角度情報に応じて、各面122、123の厚み領域を調整してもよいことはいうまでもない。更に、上記においては、衝突判定において分離軸判定法を適用する場合について説明したが、これに限られず、いわゆる凸形状に適用可能な衝突判定法であれば、GJK法等その他の方法を適用してもよい。
【符号の説明】
【0054】
100 情報処理装置、111 制御部、112 記憶部、113 通信部、114 操作部、115 表示部、116 内部バス、200 厚み領域設定装置、201 メッシュ情報記憶部、202 厚み領域設定部、203 法線ベクトル算出部、204 交点算出部、205 距離算出部、206 割合算出部、207 座標算出部、801 オブジェクト情報取得部、802 メッシュ情報取得部、803 衝突判定部、804 衝突情報取得部、805 物理エンジン、806 画像情報生成部。
【技術分野】
【0001】
情報処理装置、情報処理方法、情報処理プログラム、情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体、厚み領域設定装置、厚み領域設定方法、厚み領域設定プログラム、厚み領域設定プログラムを記憶したコンピュータ読み取り可能な記録媒体、仮想空間における面に関するデータ構造に関する。
【背景技術】
【0002】
仮想空間における2の対象物の衝突判定を行う技術として、例えば、分離軸法やGJK法が知られている。例えば、分離軸法による衝突判定は、2の対象物の間に、分離できる平面(分離平面)が存在するか否かを判定し、当該分離平面が存在しなければ、当該2の対象物が衝突していると判定する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、上記のような衝突判定方法は、アルゴリズムの特性上、いわゆる凸形状の対象物間における衝突判定にしか適用できないため、例えば、仮想空間における地形のような複雑な形状を有する対象物とキャラクタ等の対象物との衝突判定に対しては、当該形状を面に分解して、当該面とキャラクタ等の対象物との衝突判定を行う。ここで、コンピュータを用いて仮想空間における対象物を表現する場合、例えば、1フレーム期間毎等、離散時間を用いて画面を更新する。よって、当該面と対象物との衝突判定を行う場合、いわゆる衝突抜けの問題が発生する場合がある。
【0004】
本発明は、上記課題に鑑みて、例えば、仮想空間における地形のような複雑な形状を有する対象物とキャラクタ等の対象物との衝突判定についても、より適切に衝突の有無を判定可能な情報処理プログラム、情報処理装置、情報処理方法、仮想空間における面に関するデータ構造、当該データ構造または情報処理プログラムを記憶したコンピュータ読み取り可能な記録媒体、等を実現することを目的とする。
【0005】
また、本発明の他の目的は、例えば、仮想空間における地形のような複雑な形状を有する対象物とキャラクタ等の対象物との衝突判定についても、より適切に衝突の有無を判定可能とするために、仮想空間における面に対して厚み領域を設定する厚み領域設定プログラム、厚み領域設定装置、厚み領域設定方法、仮想空間における面に関するデータ構造、当該データ構造または厚み領域設定プログラムを記憶したコンピュータ読み取り可能な記録媒体、等を実現することを目的とする。
【課題を解決するための手段】
【0006】
本発明の情報処理プログラムは、仮想空間上における対象物の位置及び領域を示す対象物情報を取得する対象物情報取得手段、前記仮想空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得する面情報取得手段、及び、前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う衝突判定手段、としてコンピュータを機能させる。
【0007】
本発明の情報処理装置は、仮想空間上における対象物の位置及び領域を示す対象物情報を取得する対象物情報取得手段と、前記仮想空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得する面情報取得手段と、前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う衝突判定手段と、を有する。
【0008】
本発明の情報処理方法は、仮想空間上における対象物の位置及び領域を示す対象物情報を取得し、前記仮想空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得し、前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う。
【0009】
本発明の仮想空間における面の厚み領域設定プログラムは、仮想空間における第1の面の各頂点を示す頂点情報と、前記第1の面の法線方向を示す法線情報と、前記第1の面における各辺において隣接する第2の面との間の角度を示す角度情報と、前記第1の面の厚みに関する厚み情報と、を含むメッシュ情報を取得するメッシュ情報取得手段、及び、前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第1の面から延伸して形成される厚み領域を設定する厚み領域設定手段、としてコンピュータを機能させる。
【0010】
本発明の仮想空間における面の厚み領域設定装置は、仮想空間における第1の面の各頂点を示す頂点情報と、前記第1の面の法線方向を示す法線情報と、前記第1の面における各辺において隣接する第2の面との間の角度を示す角度情報と、前記第1の面の厚みに関する厚み情報と、を含むメッシュ情報を取得するメッシュ情報取得手段と、前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第1の面から延伸して形成される厚み領域を設定する厚み領域設定手段と、を有する。
【0011】
本発明の仮想空間における面の厚み領域設定方法は、仮想空間における第1の面の各頂点を示す頂点情報と、前記第1の面の法線方向を示す法線情報と、前記第1の面における各辺において隣接する第2の面との間の角度を示す角度情報と、前記第1の面の厚みに関する厚み情報と、を含むメッシュ情報を取得し、前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第1の面から延伸して形成される厚み領域を設定する。
【0012】
本発明の仮想空間における面に関するデータ構造は、仮想空間における第1の面の各頂点を示す頂点情報と、前記第1の面の法線方向を示す法線情報と、前記第1の面における各辺において隣接する第2の面との間の角度を示す角度情報と、前記第1の面の厚みに関する厚み情報と、を含むメッシュ情報と、前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第1の面から延伸して形成された厚み領域が設定された厚み領域に関する厚み領域情報と、を含む。
【図面の簡単な説明】
【0013】
【図1】本発明の実施の形態における情報処理装置及び厚み領域設定装置の構成の概要について説明するための図である。
【図2】厚み領域設定装置の機能的な構成について説明するための図である。
【図3】メッシュ情報のデータ構造の一例について説明するための図である。
【図4】仮想空間における背景画像の一例を示す図である。
【図5】仮想空間におけるポリゴンの構成を説明するための図である。
【図6】厚み領域の設定について説明するための図である。
【図7】厚み領域として設定される領域の一例を示す図である。
【図8】情報処理装置の機能的な構成の概要について説明するための図である。
【図9】仮想空間における剛体と面の衝突判定の一例について説明するための図である。
【図10】図9に示した衝突判定の詳細について説明するための図である。
【図11】厚み領域設定の他の一例を説明するための図である。
【図12】厚み領域設定の他の一例を説明するための図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施形態について、図面を参照しつつ説明する。なお、図面については、同一又は同等の要素には同一の符号を付し、重複する説明は省略する。
【0015】
図1は、本発明の実施の形態における情報処理装置の構成の概要について説明するための図である。図1に示すように、情報処理装置100は、例えば、CPUやメモリ等で構成されるコンピュータで構成され、例えば、制御部111、記憶部112、通信部113、操作部114、表示部115を有する。なお、制御部111、記憶部112、通信部113、操作部114、表示部115は、内部バス116により互いに接続される。
【0016】
制御部111は、例えば、CPU、MPU等であって、記憶部112に格納されたプログラムに従って動作する。記憶部112は、例えば、ROMやRAM、ハードディスク等の情報記録媒体で構成され、制御部111によって実行されるプログラムを保持する情報記録媒体である。また、記憶部112は、制御部111のワークメモリとしても動作する。なお、当該プログラムは、例えば、ネットワークを介して、ダウンロードされて提供されてもよいし、または、CD−ROMやDVD−ROM等のコンピュータで読み取り可能な各種の情報記録媒体によって提供されてもよい。
【0017】
通信部113は、当該情報処理装置100を、ネットワークを介して、他の情報処理装置やデータベース等(図示なし)と接続する。操作部114は、例えば、キーボードやマウス、コントローラ等で構成され、ユーザーの指示操作に応じて、当該指示操作の内容を制御部111に出力する。表示部115は、例えば、液晶ディスプレイ、有機ELディスプレイ等であって、制御部111からの指示に従い、情報を表示する。
【0018】
なお、上記情報処理装置100の構成は、一例であってこれに限定されるものではない。また、本実施の形態における厚み領域設定装置200についても、上記情報処理装置100の構成と同様であるので、説明を省略する。
【0019】
図2は、本実施の形態における厚み領域設定装置200の機能的な構成について説明するための図である。図2に示すように、厚み領域設定装置200は、メッシュ情報記憶部201と、厚み領域設定部202と、を有する。
【0020】
メッシュ情報記憶部201は、ポリゴンで表現される面の集合についての情報(メッシュ情報)を記憶する。メッシュ情報は、例えば、図3(A)に示すように、各面の頂点の位置座標を示す頂点情報、各面に関する情報を含む面情報、各面のエッジ(辺)に関する情報を含むエッジ情報を、配列の形式で保持される。
【0021】
ここで、例えば、本実施の形態においては、図4に示すように、仮想空間における背景としての建物や地形等(図4は、建物の例を示す)は、三角の形状を有するポリゴンで表現される面の集合で表現されるメッシュ構造を有する。また、各面(ポリゴン)500は、図5に示すように、各頂点501とエッジ502(辺に相当する)を含む。この場合、図4及び図5に示した頂点501、面500、エッジ502を表す情報がそれぞれ、上記頂点情報、面情報、エッジ情報に相当する。
【0022】
より具体的には、例えば、上記図4及び図5に示すように、各ポリゴンが三角形で表現される場合、頂点情報は、例えば、仮想空間上における3の位置座標を含み、面情報は、図3(B)に示すように、当該面の3の頂点へのリンクを示すリンク情報と、当該面のエッジ情報へのリンクを示す3のエッジ情報と、当該面の法線方向を示す法線ベクトルと、後述する当該面の厚み距離を示す厚み情報とを含む。また、エッジ情報は、図3(C)に示すように、各エッジの頂点へのリンクを示す2のリンク情報、エッジを介して隣接する各面との間の角度を示す角度情報を含む。なお、当該角度は、例えば、エッジを介して隣接する2の面の各法線ベクトルによって形成される角度に相当する。
【0023】
厚み領域設定部202は、メッシュ情報記憶部201から取得した法線情報、角度情報、頂点情報、厚み情報に基づき、各面から延伸して形成される厚み領域を設定する。具体的には、メッシュ情報記憶部201から取得した面についての法線情報、角度情報、頂点情報に基づき、当該面と、当該面を形成する各辺から延伸して形成される各面の交点とで形成される領域のうち、当該面からの距離が厚み情報で示される厚み距離を超える部分を切り取った領域を、当該面の厚さ領域として設定する。なお、当該面と交点との距離が、厚み情報で示される厚み距離以下である場合には、当該面と当該交点で形成される領域を厚み領域として設定する。
【0024】
次に、厚み領域設定部202の機能的構成の詳細について説明する。厚み領域設定部202は、図2に示すように、機能的に、法線ベクトル算出部203、交点算出部204、距離算出部205、割合算出部206、座標算出部207と、を含む。なお、図2に示した構成は例示であって、これに限られるものではない。
【0025】
法線ベクトル算出部203は、メッシュ情報記憶部201から取得した頂点情報、角度情報に基づいて、対象とする面(対象面)から垂直に厚み方向に延伸させた各面の法線ベクトル、及び、対象面の各辺から厚み方向に延伸させた面の法線ベクトルを算出する。
【0026】
例えば、図6(A)に示した場合、幾何学的に、図6(B)に示すように、法線ベクトルnと、対象面から垂直に厚み方向に延伸させた面の法線ベクトルn0は垂直であり、対象面の各辺から厚み方向に交点を通過するように延伸させて形成される面の法線ベクトルn’0と法線ベクトルn0との間の角度はθ0となることから、法線ベクトルn’0は、次式を用いて求められる。
【数1】
【0027】
ここで、図6(A)及び図6(B)においては、厚み領域を設定する面(対象面)の頂点を示すベクトル(以下、単に頂点という)をp0、p1、p2とし、対象面の各辺から厚み方向(厚み領域を設定する方向)に延伸させた面の交点を、qとする。また、対象面から垂直に厚み方向に延伸させた各面の法線ベクトルをn0、n1、n2とし、対象面の各辺から厚み方向に交点を通過するように延伸させて形成される面の法線ベクトルをn’0、n’1、n’2とする。また、頂点p0とp2で表されるエッジについて対象面と隣接する面との角度を、θ0とし、頂点p1とp2で表されるエッジについて対象面と隣接する面との角度を、θ1とする。また、厚み領域設定部202により、厚み領域として設定される領域を図7に示す。つまり、図7に示すように、厚み領域は、例えば、頂点p0、p1、p2、p’0、p’1、p’2で形成される領域に相当し、当該厚み領域がどのように設定されるかについて説明する。
【0028】
なお、頂点p0、p1、p2、角度θ0、θ1、法線ベクトルnは、メッシュ情報記憶部201から取得されることは前述のとおりである。また、法線ベクトルn’1、n’2についても上記と同様にして求められる。更に、法線ベクトルn0、n1、n2は、頂点p0乃至p2の位置座標及び法線ベクトルnに垂直であることから算出されることはいうまでもない。
【0029】
交点算出部204は、上記算出された対象面の各辺から厚み方向に交点を通過するように延伸させて形成される面の法線ベクトルと対象面の各位置座標に基づいて、交点の位置座標を算出する。
【0030】
具体的には、上記例の場合、交点qは、対象面の各辺から厚み方向に延伸させた面上に存在するように設定することから、交点qは、次式を満たす。
【数2】
【0031】
上記(2)を連立させて解くことにより、下記(3)、(4)に示すように、交点qの位置座標を求めることができる。
【数3】
【数4】
【0032】
なお、上記(3)、(4)において、n’0x等は、x、y、z軸を用いて表現される仮想空間における法線ベクトルn0等の座標成分を示したものであり、同様にqx等も交点qの座標成分を示すものであることはいうまでもない。
【0033】
距離算出部205は、交点算出部204で算出された交点の座標から対象面までの距離を算出するとともに、当該距離がメッシュ情報記憶部201から取得された厚み距離以下であるか否かを判定する。当該距離が厚み距離以下である場合には、後述するように対象面と交点とで形成される領域を厚み領域として設定する。
【0034】
割合算出部206は、距離算出部205において交点座標から対象面までの距離が厚み距離以上であると判定された場合には、距離算出部205で算出された距離、及び、メッシュ情報記憶部201から取得された厚み距離に基づいて、対象面に設定された厚み距離と、対象面から交点までの距離の割合を算出する。
【0035】
具体的には、上記例の場合、対象面から交点qまでの割合をtとすると、tは次式を用いて求められる。
【数5】
【0036】
座標算出部207は、割合算出部206により算出された割合、頂点の位置座標、交点の位置座標に基づいて、割合厚み領域として設定される領域の頂点の位置座標を算出する。
【0037】
具体的には、次式を用いて、割合厚み領域として設定される領域の頂点の位置座標を算出する。
【数6】
【0038】
上記のようにして算出された厚み領域の頂点p’0乃至p’3または交点と、頂点p0乃至p3とで構成される領域を衝突判定に用いられる厚み領域として設定する。当該厚み領域に関する情報、つまり、厚み領域を形成する対象面に対向する面または点の位置座標は、例えば、メッシュ情報記憶部201に記憶される。また、当該位置座標へのリンクは、例えば、メッシュ情報記憶部201に面情報として記憶されるとともに、対象面の各辺から厚み方向に延伸させた面の法線ベクトルもメッシュ情報記憶部201に面情報として記憶される。上記のようにして設定される厚み領域は、凸形状となることから、上述の分離軸法等既存の衝突判定法を用いることができる。
【0039】
次に、図8を用いて、情報処理装置100の機能的な構成の概要について説明する。図8に示すように、情報処理装置100は、オブジェクト情報取得部801、メッシュ情報取得部802、衝突判定部803、衝突情報取得部804、物理エンジン805、画像情報生成部806を含む。
【0040】
なお、下記においては、説明の簡略化のために、図9(A)乃至(F)に示すように、現在のフレーム期間(例えば、1フレーム期間)において、仮想空間上において対象となるオブジェクトとしての球形状の剛体と上記のように厚み領域が設定された面とが衝突する場合を例として説明する。また、下記においては、上記厚み領域に関する情報は、上記のように厚み領域設定装置200等により算出され、例えばメッシュ情報記憶部201に記憶されている場合を想定して説明するが、これに限られず、情報処理装置100が、上記厚み領域設定装置200の機能を含み、厚み領域に関する情報を設定する構成であってもよい。
【0041】
オブジェクト情報取得部801は、対象となるオブジェクト901の位置、移動方向、速度、サイズを含むオブジェクト情報を、所定期間毎、例えば1フレーム期間毎に取得する。具体的には、例えば、図9に示したオブジェクト901(剛体)の位置、移動方向、速度、サイズを取得する。なお、図9においては、オブジェクト情報に含まれる剛体の移動方向及び速度をベクトルvで示した。なお、対象となるオブジェクト901とは、例えば、ゲームプログラムの仮想空間においてユーザーにより操作されるキャラクタであってもよいし、CG(Computer Graphics)等で表現される仮想空間におけるボール等の特定の対象物であってもよい。また、当該オブジェクト情報取得部801が、例えば、特許請求の範囲に記載の対象物情報取得手段に相当する。
【0042】
メッシュ情報取得部802は、メッシュ情報記憶部201に記憶されたメッシュ情報を取得する。具体的には、面と当該面に対応する厚み領域に関する情報、例えば、図9に示した面902と対応する厚み領域903に対応する頂点情報等を取得する。なお、当該面と当該面902に対応する厚み領域903に関する情報が、例えば、特許請求の範囲の面情報に相当する。
【0043】
衝突判定部803は、上記取得されたオブジェクト情報及びメッシュ情報に基づいて、対象とするオブジェクト901が対象とする面が衝突したか否かを判定する。以下、図10を用いて、より具体的に説明する。
【0044】
まず、衝突判定部803は、図10に示すように、面の法線(分離軸904に相当する)に対してオブジェクト901及び厚み領域903を投影し、当該分離軸904上において、オブジェクト901が投影されて形成される線分の端点、法線方向から順にAMAX、AMINとし、厚み領域903が投影されて形成される線分の端点を、法線方向から順にBMAX、BMINとして、AMAX、AMIN、BMAX、BMINの分離軸上の位置座標を取得する。
【0045】
次に、交差距離(AMIN−BMAX)が0以上であるか否かを判定する。そして、交差距離(AMIN−BMAX)が0以上である場合には、衝突していないと判定する。
【0046】
一方、交差距離が0より小さい場合には、例えば、図10(D)に示すように、更に、厚み領域903の分離軸905(厚み領域903の面の法線)に対して、同様に、オブジェクト901及び厚み領域903を投影し、AMAX、AMIN、BMAX、BMINの分離軸上の位置座標を取得する。そして、同様に交差距離(AMIN−BMAX)が0以上であるか否かを判定する。
【0047】
交差距離(AMIN−BMAX)が0以上である場合には、衝突していないと判定する。例えば、図10(D)(図(C)に対応する)に示す場合は、交差距離が0以上となるので、衝突していないと判定する。一方、交差距離が0より小さい場合は、衝突したと判定する。例えば、図10(A)及び(B)に示した場合は、交差距離が0より小さい値となるので、衝突していると判定する。
【0048】
衝突情報取得部804は、衝突判定部803が衝突したと判定した場合には、衝突座標、貫通の深さ、反発方向を含む衝突情報を算出し、当該衝突情報を物理エンジン805へ入力する。具体的には、例えば、図9(C)、図10(E)、及び、図10(F)に示すように、上記面の分離軸904、オブジェクト901及び面902の位置に基づいて、幾何計算により、剛体の2の衝突座標906を算出するとともに、2の衝突座標906で形成されるベクトル(衝突ベクトル)907の長さを貫通の深さを示す情報として算出する。また、面902の法線ベクトルで示される方向を反発方向とする。また、2の衝突座標906は、例えば、オブジェクト901の中心から面902の分離軸904に平行に面に投影した座標(第1の衝突座標)、及び、面の分離軸に平行に第1の衝突座標から面902の厚み方向に最も離れた点の座標(第2の衝突座標)に相当する。また、上記衝突ベクトルの方向は、例えば、第1の衝突座標から第2の衝突座標に向かう方向とする。
【0049】
物理エンジン805は、例えば、図9(D)乃至図9(F)に示したように、衝突判定部803が衝突したと判定した場合には、当該衝突情報に基づいて、衝突の反発力を算出し、当該反発力に基づいて次のタイミング(例えば、次のフレーム期間)におけるオブジェクト901の速度を算出する。また、物理エンジン805は、更に、衝突情報及び算出されたオブジェクト901の速度に基づき、次のタイミングにおけるオブジェクト901の位置を算出する。なお、衝突判定部803が衝突していないと判定した場合には、オブジェクト情報に基づいて、次のタイミングにおけるオブジェクト901の位置を算出する。なお、物理エンジン805とは、周知のように、質量・速度・摩擦・風といった、古典力学的な法則をシミュレーションするコンピュータソフトウェアに相当する。
【0050】
画像情報生成部806は、メッシュ情報に基づいて背景画像を生成するとともに、オブジェクト情報や物理エンジン805により算出されたオブジェクト901の位置情報に基づいてオブジェクト901の画像を生成し、例えば、背景画像に当該オブジェクト901の画像が重畳された画像を画像情報として生成する。生成された画像情報は、例えば、情報処理装置100の表示部115で表示される。なお、当該画像情報は、通信部113を介して外部の表示装置等(図示なし)に送信されてもよい。
【0051】
上記のように構成することで、仮想空間における衝突判定において、面に厚みがないことに伴ういわゆる衝突抜けを防止することができ、仮想空間における面と対象物との間の衝突判定をより適切に行うことができる。また、衝突したと判定した場合には、単に、面を突き抜けることを防止するのみではなく、当該面に衝突した対象物を面で反射させて戻すようにすることができる。
【0052】
なお、本発明は、上記実施の形態に限定されるものではなく、種々の変形が可能である。例えば、上記実施の形態で示した構成と実質的に同一の構成、同一の作用効果を奏する構成又は同一の目的を達成することができる構成で置き換えることができる。
【0053】
例えば、上記厚み領域の設定は一例であって、これに限られない。例えば、図11(A)乃至(C)に示すように、隣接する面500に設定された厚み情報に基づいて、各面500から延伸した厚み領域503を設定し(図11(B))、当該隣接する面の辺に設定された角度情報に基づいて、重なった領域及び当該重なった領域から他方の面側に延伸した領域を排除することにより厚み領域503を設定してもよい(図11(C))。また、図12(A)乃至図12(C)に示すように、仮想空間におけるメッシュの凸エッジに隣接する面120と当該面120と隣接する面121、122の間の角度を設定するとともに、当該一方の面121と当該一方の面と隣接しない他方の面122との厚み領域125が干渉しないように厚み距離を当該各面121、122に設定し、上記設定された角度に応じて、かつ、重なった領域を排除することにより、当該各面120、121、122の厚み領域125を設定してもよい。なお、図12(B)は、一例として、一方の面121及び他方の面122の厚み距離として、当該各面121、122を延伸した場合に双方の面121、122が干渉する干渉点126までの距離を厚み領域として設定した場合を示す。更に、この場合において、例えば、図12(C)に示すようにメッシュの凹エッジ付近124において、厚み領域が設定されない場合については、当該部分が隣接する各面122、123の厚み領域を調整して当該部分が各面122、123の厚み領域を延伸して含まれるようにしてもよい。この場合においても、面122と123との間の角度情報として設定された角度情報に応じて、各面122、123の厚み領域を調整してもよいことはいうまでもない。更に、上記においては、衝突判定において分離軸判定法を適用する場合について説明したが、これに限られず、いわゆる凸形状に適用可能な衝突判定法であれば、GJK法等その他の方法を適用してもよい。
【符号の説明】
【0054】
100 情報処理装置、111 制御部、112 記憶部、113 通信部、114 操作部、115 表示部、116 内部バス、200 厚み領域設定装置、201 メッシュ情報記憶部、202 厚み領域設定部、203 法線ベクトル算出部、204 交点算出部、205 距離算出部、206 割合算出部、207 座標算出部、801 オブジェクト情報取得部、802 メッシュ情報取得部、803 衝突判定部、804 衝突情報取得部、805 物理エンジン、806 画像情報生成部。
【特許請求の範囲】
【請求項1】
仮想空間上における対象物の位置及び領域を示す対象物情報を取得する対象物情報取得手段、
前記仮想空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得する面情報取得手段、及び、
前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う衝突判定手段、
としてコンピュータを機能させるための情報処理プログラム。
【請求項2】
前記情報処理プログラムは、更に、
前記衝突判定手段が、前記対象物と前記面とが衝突したと判定した場合には、衝突した際における、衝突の位置、前記面から前記対象物までの距離、及び、反発方向に関する衝突情報を取得する衝突情報取得手段、
としてコンピュータを機能させることを特徴とする請求項1記載の情報処理プログラム。
【請求項3】
前記情報処理装置は、更に、
前記仮想空間上における物理演算を行う物理演算手段、としてコンピュータを機能させ、
前記物理演算手段は、前記衝突情報に基づいて、衝突後に表示される対象物の位置を算出することを特徴とする請求項2記載の情報処理プログラム。
【請求項4】
前記衝突判定手段は、前記面の法線に相当する分離軸に投影された前記対象物と前記厚み領域の位置に基づいて、前記衝突判定を行うことを特徴とする請求項1乃至3のいずれかに記載の情報処理プログラム。
【請求項5】
前記衝突判定手段は、更に、厚み領域を形成する面の法線に相当する分離軸に投影された前記対象物と前記厚み領域の位置に基づいて、前記衝突判定を行うことを特徴とする請求項4に記載の情報処理プログラム。
【請求項6】
仮想空間上における対象物の位置及び領域を示す対象物情報を取得する対象物情報取得手段と、
前記仮想空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得する面情報取得手段と、
前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う衝突判定手段と、
を有する情報処理装置。
【請求項7】
仮想空間上における対象物の位置及び領域を示す対象物情報を取得し、
前記仮想空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得し、
前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う、
ことを特徴とする情報処理方法。
【請求項8】
仮想空間における第1の面の各頂点を示す頂点情報と、
前記第1の面の法線方向を示す法線情報と、
前記第1の面における各辺において隣接する第2の面との間の角度を示す角度情報と、
前記第1の面の厚みに関する厚み情報と、
を含むメッシュ情報を取得するメッシュ情報取得手段、及び、
前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第1の面から延伸して形成される厚み領域を設定する厚み領域設定手段、
としてコンピュータを機能させるための仮想空間における面の厚み領域設定プログラム。
【請求項9】
前記厚み領域設定手段は、前記第1の面と、前記法線情報、前記角度情報、及び、前記頂点情報に基づき該第1の面を形成する各辺から延伸して形成される各面の交点と、で形成される領域のうち、前記第1の面からの距離が前記厚みを超える部分を切り取った領域を、該第1の面の厚み領域として設定することを特徴とする請求項8記載の厚み領域設定プログラム。
【請求項10】
前記厚み領域設定手段は、前記第1の面と、前記法線情報、前記角度情報、及び、前記頂点情報に基づき該第1の面を形成する各辺から延伸して形成される各面の交点と、で形成される領域を、前記交点と前記第1の面との距離が前記厚み以下である場合に、厚み領域として設定することを特徴とする請求項8記載の厚み領域設定プログラム。
【請求項11】
仮想空間における第1の面の各頂点を示す頂点情報と、
前記第1の面の法線方向を示す法線情報と、
前記第1の面における各辺において隣接する第2の面との間の角度を示す角度情報と、
前記第1の面の厚みに関する厚み情報と、
を含むメッシュ情報を取得するメッシュ情報取得手段と、
前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第1の面から延伸して形成される厚み領域を設定する厚み領域設定手段と、
を有することを特徴とする仮想空間における面の厚み領域設定装置。
【請求項12】
仮想空間における第1の面の各頂点を示す頂点情報と、
前記第1の面の法線方向を示す法線情報と、
前記第1の面における各辺において隣接する第2の面との間の角度を示す角度情報と、
前記第1の面の厚みに関する厚み情報と、
を含むメッシュ情報を取得し、
前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第1の面から延伸して形成される厚み領域を設定する、
ことを特徴とする仮想空間における面の厚み領域設定方法。
【請求項13】
仮想空間における第1の面の各頂点を示す頂点情報と、
前記第1の面の法線方向を示す法線情報と、
前記第1の面における各辺において隣接する第2の面との間の角度を示す角度情報と、
前記第1の面の厚みに関する厚み情報と、
を含むメッシュ情報と、
前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第1の面から延伸して形成された厚み領域が設定された厚み領域に関する厚み領域情報と、
を含むことを特徴とする仮想空間における面に関するデータ構造。
【請求項14】
請求項1記載の情報処理プログラム、請求項8記載の厚み領域設定プログラム、または、請求項14記載のデータ構造のいずれかを記憶したコンピュータ読み取り可能な記録媒体。
【請求項1】
仮想空間上における対象物の位置及び領域を示す対象物情報を取得する対象物情報取得手段、
前記仮想空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得する面情報取得手段、及び、
前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う衝突判定手段、
としてコンピュータを機能させるための情報処理プログラム。
【請求項2】
前記情報処理プログラムは、更に、
前記衝突判定手段が、前記対象物と前記面とが衝突したと判定した場合には、衝突した際における、衝突の位置、前記面から前記対象物までの距離、及び、反発方向に関する衝突情報を取得する衝突情報取得手段、
としてコンピュータを機能させることを特徴とする請求項1記載の情報処理プログラム。
【請求項3】
前記情報処理装置は、更に、
前記仮想空間上における物理演算を行う物理演算手段、としてコンピュータを機能させ、
前記物理演算手段は、前記衝突情報に基づいて、衝突後に表示される対象物の位置を算出することを特徴とする請求項2記載の情報処理プログラム。
【請求項4】
前記衝突判定手段は、前記面の法線に相当する分離軸に投影された前記対象物と前記厚み領域の位置に基づいて、前記衝突判定を行うことを特徴とする請求項1乃至3のいずれかに記載の情報処理プログラム。
【請求項5】
前記衝突判定手段は、更に、厚み領域を形成する面の法線に相当する分離軸に投影された前記対象物と前記厚み領域の位置に基づいて、前記衝突判定を行うことを特徴とする請求項4に記載の情報処理プログラム。
【請求項6】
仮想空間上における対象物の位置及び領域を示す対象物情報を取得する対象物情報取得手段と、
前記仮想空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得する面情報取得手段と、
前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う衝突判定手段と、
を有する情報処理装置。
【請求項7】
仮想空間上における対象物の位置及び領域を示す対象物情報を取得し、
前記仮想空間上における面及び該面に付加された所定の厚みとで形成される厚み領域の位置及び領域を示す面情報を取得し、
前記対象物情報と前記面情報とに基づいて、前記対象物と前記面との衝突判定を行う、
ことを特徴とする情報処理方法。
【請求項8】
仮想空間における第1の面の各頂点を示す頂点情報と、
前記第1の面の法線方向を示す法線情報と、
前記第1の面における各辺において隣接する第2の面との間の角度を示す角度情報と、
前記第1の面の厚みに関する厚み情報と、
を含むメッシュ情報を取得するメッシュ情報取得手段、及び、
前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第1の面から延伸して形成される厚み領域を設定する厚み領域設定手段、
としてコンピュータを機能させるための仮想空間における面の厚み領域設定プログラム。
【請求項9】
前記厚み領域設定手段は、前記第1の面と、前記法線情報、前記角度情報、及び、前記頂点情報に基づき該第1の面を形成する各辺から延伸して形成される各面の交点と、で形成される領域のうち、前記第1の面からの距離が前記厚みを超える部分を切り取った領域を、該第1の面の厚み領域として設定することを特徴とする請求項8記載の厚み領域設定プログラム。
【請求項10】
前記厚み領域設定手段は、前記第1の面と、前記法線情報、前記角度情報、及び、前記頂点情報に基づき該第1の面を形成する各辺から延伸して形成される各面の交点と、で形成される領域を、前記交点と前記第1の面との距離が前記厚み以下である場合に、厚み領域として設定することを特徴とする請求項8記載の厚み領域設定プログラム。
【請求項11】
仮想空間における第1の面の各頂点を示す頂点情報と、
前記第1の面の法線方向を示す法線情報と、
前記第1の面における各辺において隣接する第2の面との間の角度を示す角度情報と、
前記第1の面の厚みに関する厚み情報と、
を含むメッシュ情報を取得するメッシュ情報取得手段と、
前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第1の面から延伸して形成される厚み領域を設定する厚み領域設定手段と、
を有することを特徴とする仮想空間における面の厚み領域設定装置。
【請求項12】
仮想空間における第1の面の各頂点を示す頂点情報と、
前記第1の面の法線方向を示す法線情報と、
前記第1の面における各辺において隣接する第2の面との間の角度を示す角度情報と、
前記第1の面の厚みに関する厚み情報と、
を含むメッシュ情報を取得し、
前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第1の面から延伸して形成される厚み領域を設定する、
ことを特徴とする仮想空間における面の厚み領域設定方法。
【請求項13】
仮想空間における第1の面の各頂点を示す頂点情報と、
前記第1の面の法線方向を示す法線情報と、
前記第1の面における各辺において隣接する第2の面との間の角度を示す角度情報と、
前記第1の面の厚みに関する厚み情報と、
を含むメッシュ情報と、
前記法線情報、前記角度情報、前記頂点情報、及び、前記厚み情報に基づき、前記第1の面から延伸して形成された厚み領域が設定された厚み領域に関する厚み領域情報と、
を含むことを特徴とする仮想空間における面に関するデータ構造。
【請求項14】
請求項1記載の情報処理プログラム、請求項8記載の厚み領域設定プログラム、または、請求項14記載のデータ構造のいずれかを記憶したコンピュータ読み取り可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2012−247832(P2012−247832A)
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願番号】特願2011−116858(P2011−116858)
【出願日】平成23年5月25日(2011.5.25)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願日】平成23年5月25日(2011.5.25)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】
[ Back to top ]