説明

ゲーム装置及び情報記憶媒体

【課題】図形間での高速なヒットチェックが可能なゲーム装置及び情報記憶媒体を提供すること。
【解決手段】三角形ABCの辺AB方向をX軸方向に変換し、辺AC方向をY軸方向に変換し、三角形ABCに垂直な方向をZ軸方向に変換する変換マトリクスを作成する。この変換マトリクスにより三角形ABC、DEFを座標変換し三角形OB’C’、D’E’F’を得て、辺D’E’、E’F’、F’D’が三角形OB’C’に交わるか否かを判定する。三角形と球との間でも同様のヒットチェックが可能である。V0をEXに変換すると共にV2をEZに変換する変換マトリクスRを作成し、EXについては同じEXに変換すると共にXY平面上の任意の単位ベクトルについてはEYに変換する変換マトリクスMを作成し、変換マトリクスRとMの積をとることで変換マトリクスTを得る。辺AB、ACが一直線上にある場合には、頂点B、Cの座標を変更する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ヒットチェック機能を有するゲーム装置及びヒットチェックを行うための情報を格納する情報記憶媒体に関する。
【背景技術】
【0002】
従来より、仮想的な三次元空間であるオブジェクト空間内に複数のオブジェクトを配置し、オブジェクト空間内の所与の視点から見える画像を生成するゲーム装置が開発、実用化されており、いわゆる仮想現実を体験できるものとして人気が高い。格闘技ゲームを楽しむことができるゲーム装置を例にとれば、プレーヤは、キャラクタを操作し、他のプレーヤ又はコンピュータが操作するキャラクタと対戦させてゲームを楽しむ。
【0003】
このようなゲーム装置では、敵へのダメージや味方のダメージなどを算出するためのヒットチェックが必要になる。剣を用いる格闘技ゲームを例にとれば、第1のキャラクタが振った剣と、第2のキャラクタの振った剣(或いは第2のキャラクタの体)との間でのヒットチェックを行う必要がある。このようなヒットチェックに関する技術として、例えば特開平8−196745号公報に開示された従来技術などが知られている。
【0004】
しかしながら、これまでの従来技術では、ヒットチェックの処理負荷が重く、ヒットチェックの高速化を実現できないという課題があった。この種のゲーム装置では、処理のリアルタイム性が要求されており、ヒットチェックを高速化できないと、上記リアルタイム性が阻害される。
【特許文献1】特開平09−223246号公報
【特許文献2】特開平08−329276号公報
【非特許文献1】「Interface 1997年12号(3D時代に必須となるDirectXプログラミングの基礎知識 DirectDrawとDirect3Dの初期化をマスタする)」CQ出版株式会社 1997年12月1日 第23巻 第12号 p.125〜142
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、図形間での高速なヒットチェックが可能なゲーム装置及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【0006】
本発明は、三次元空間内にあり少なくとも2辺を有する第1の図形の情報と三次元空間内にあり少なくとも2辺を有する第2の図形の情報を記憶する記憶手段と、三次元空間内にある前記第1の図形と前記第2の図形との間でのヒットチェックを行うヒットチェック手段と、前記記憶手段に記憶された第1の図形の情報に基づき、第1の図形の第1、第2の辺が一直線上にあるか否かを判定し、一直線上にあると判定した場合には、第1、第2の辺のなす角度が零よりも大きくなるように、第1、第2の辺を構成する頂点の少なくとも1つの頂点の座標を変更する座標変更手段とを含み、前記ヒットチェック手段は、前記座標変更手段によって第1の図形の第1、第2の辺が一直線上にないと判定された場合には、頂点の座標が変更されていない第1の図形と、第2の図形との間でヒットチェックを行い、前記座標変更手段によって第1の図形の第1、第2の辺が一直線上にあると判定された場合には、頂点の座標が変更された第1の図形と、第2の図形との間でヒットチェックを行うことを特徴とする。
【0007】
また本発明は、上記各手段としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関係する。
【0008】
本発明によれば、第1の図形の第1、第2の辺が一直線上にある場合に、第1、第2の辺のなす角度が零よりも大きくなるように、頂点の座標が変更される。これにより、第1の図形の第1、第2の辺が一直線上にある場合にも、適切なヒットチェックが可能になる。
【発明を実施するための最良の形態】
【0009】
本実施形態は、三次元空間内にあり少なくとも2辺を有する第1の図形と三次元空間内にあり少なくとも2辺を有する第2の図形との間でのヒットチェックを行う機能を有するゲーム装置であって、第1の図形の第1の辺の方向を直交座標系のX軸の方向に変換し、第1の図形の第2の辺の方向を直交座標系のY軸の方向に変換し、第1の図形に垂直な方向を直交座標系のZ軸の方向に変換する変換マトリクスTを作成する手段と、前記変換マトリクスTにより第1の図形を直交座標系の第3の図形に座標変換すると共に、前記変換マトリクスTにより第2の図形を直交座標系の第4の図形に座標変換する手段と、第4の図形の各辺が第3の図形と交わるか否かを判定する手段とを含み、交わった場合には第1、第2の図形がヒットしたと判定し、交わらなかった場合には、第1の図形を第2の図形とし第2の図形を第1の図形として上記の変換マトリクスの作成、座標変換及び交わり判定を行い、第1、第2の図形がヒットしたか否かを判定することを特徴とする。
【0010】
本実施形態によれば、第1の図形の第1の辺の方向がX軸の方向に、第2の辺の方向がY軸の方向に、第1の図形に垂直な方向がZ軸の方向に変換されるような変換マトリクスTが作成される。そして、この変換マトリクスTを用いて、第1、第2の図形が直交座標系の第3、第4の図形に座標変換され、この直交座標系の第3、第4の図形間で交わり判定が行われる。このようにすれば、直交座標系において交わり判定ができるようになるため、ヒットチェックの処理負荷を大幅に軽減でき、ヒットチェックの高速化を図れるようになる。
【0011】
また本実施形態は、三次元空間内にあり少なくとも2辺を有する第1の図形と三次元空間内にあり中心P、半径Rを有する第1の球との間でのヒットチェックを行う機能を有するゲーム装置であって、第1の図形の第1の辺の方向を直交座標系のX軸の方向に変換し、第1の図形の第2の辺の方向を直交座標系のY軸の方向に変換し、第1の図形に垂直な方向を直交座標系のZ軸の方向に変換する変換マトリクスTを作成する手段と、前記変換マトリクスTにより第1の図形を直交座標系の第3の図形に座標変換すると共に、前記変換マトリクスTにより第1の球を直交座標系の第2の球に座標変換する手段と、第1の球の半径Rと、第2の球の中心P’からXY平面への距離PLと、中心P’からXY平面に下ろした垂線の足PFと、第3の図形とに基づいて、第1の図形と第1の球とがヒットしたか否かを判定する手段とを含むことを特徴とする。
【0012】
本実施形態によれば、作成された変換マトリクスTを用いて、第1の図形、第1の球(中心P)が、各々、直交座標系の第3の図形、第2の球(中心P’)に座標変換され、この直交座標系の第3の図形、第2の球の間で交わり判定が行われる。このようにすれば、直交座標系において交わり判定ができるようになるため、ヒットチェックの処理負荷の軽減、高速化を図れるようになる。
【0013】
この場合、距離PLが半径Rよりも大きい場合は第1の図形と第1の球がヒットしていないと判定し、距離PLが半径R以下の場合には、垂線の足PFが第3の図形内にあるか否かを判定し、垂線の足PFが第3の図形内にある場合には、第1の図形と第1の球がヒットしていると判定し、垂線の足PFが第3の図形内にない場合には、第3の図形により区画される象限の中のどの象限に垂線の足PFが属するかに応じて第1の図形の辺又は頂点を選択し、選択された辺又は頂点が、第1の球に含まれるか否かを判定することが望ましい。このようにすることで、第1の図形と第1の球との間の正確なヒットチェックが可能になる。
【0014】
また本実施形態は、三次元空間内にあり少なくとも2辺を有する第1の図形と三次元空間内にある第2の図形との間でのヒットチェックを行う機能を有するゲーム装置であって、第1の図形の第1の辺の方向を直交座標系のX軸の方向に変換し、第1の図形の第2の辺の方向を直交座標系のY軸の方向に変換し、第1の図形に垂直な方向を直交座標系のZ軸の方向に変換する変換マトリクスTを作成する手段と、前記変換マトリクスTにより第1、第2の図形を直交座標系の第3、第4の図形に座標変換する手段と、第3、第4の図形の間での交わり関係を判定する手段とを含むことを特徴とする。
【0015】
本実施形態によれば、作成された変換マトリクスTを用いて、第1、第2の図形が、直交座標系の第3、第4の図形に座標変換され、第3、第4の図形間で交わり関係が判定される。このようにすれば、直交座標系において交わり判定ができるようになるため、ヒットチェックの処理負荷の軽減、高速化を図れるようになる。この場合、第1の図形は、少なくとも2辺を有するものであればよく、三角形、多角形などの種々の図形を考えることができる。また、第2の図形も、三角形、多角形、球以外にも種々の図形を考えることができる。
【0016】
また本実施形態は、前記変換マトリクスTを作成する手段が、第1の図形の第1の辺の方向単位ベクトルV0を直交座標系のX軸の方向単位ベクトルEXに変換すると共に、第1の図形に垂直な方向単位ベクトルV2を直交座標系のZ軸の方向単位ベクトルEZに変換する変換マトリクスRを作成し、前記単位ベクトルEXについてはそのまま同じ単位ベクトルEXに変換すると共に、XY平面上の任意の単位ベクトルについては直交座標系のY軸の方向単位ベクトルEYに変換する変換マトリクスMを作成し、前記変換マトリクスRとMの積をとることで前記変換マトリクスTを求めることを特徴とする。このようにすれば、逆行列を求めるための複雑な処理を要することなく、少ない処理負担で簡易に変換マトリクスTを求めることが可能になる。
【0017】
また本実施形態は、三次元空間内にあり少なくとも2辺を有する第1の図形と三次元空間内にある第2の図形との間でのヒットチェックを行う機能を有するゲーム装置であって、第1の図形の第1、第2の辺が一直線上にある場合には、第1、第2の辺のなす角度が零よりも大きくなるように、第1、第2の辺を構成する頂点の少なくとも1つの頂点の座標を変更する手段と、第1の図形の第1、第2の辺が一直線上にない場合には、頂点の座標が変更されていない第1の図形と、第2の図形との間でヒットチェックを行い、第1の図形の第1、第2の辺が一直線上にある場合には、頂点の座標が変更された第1の図形と、第2の図形との間でヒットチェックを行う手段とを含むことを特徴とする。
【0018】
本実施形態によれば、第1の図形の第1、第2の辺が一直線上にある場合に、第1、第2の辺のなす角度が零よりも大きくなるように、頂点の座標が変更される。これにより、第1の図形の第1、第2の辺が一直線上にある場合にも、適切なヒットチェックが可能になる。
【0019】
以下、本発明の好適な実施形態について図面を用いて説明する。なお以下では、本発明を格闘技ゲームに適用した場合を例にとり説明し、また、第1の図形が三角形であり、第2の図形が三角形又は球である場合について説明する。しかしながら、本発明の適用範囲はこれに限定されるものではない。
【0020】
1.本実施形態の構成
図1に、本実施形態のゲーム装置の機能ブロック図の一例を示す。
【0021】
ここで操作部10は、プレーヤが、レバー、ボタン、ステアリング、アクセルペダル、銃等を模したシューティングデバイスなどを操作することで操作データを入力するためのものであり、操作部10にて得られた操作データは処理部100に入力される。
【0022】
処理部100は、上記操作データと所与のプログラムなどに基づいて、オブジェクト空間にオブジェクトを配置する処理や、このオブジェクト空間の所与の視点での画像を生成する処理を行うものである。この処理部100の機能は、CPU(CISC型、RISC型)、DSP、ASIC(ゲートアレイ等)などのハードウェアや、所与のプログラムなどにより実現できる。
【0023】
記憶部180は、処理部100の例えばワーク領域となるものであり、その機能は、RAMなどのハードウェアにより実現できる。
【0024】
情報記憶媒体190は、プログラムやデータを記憶するものである。この情報記憶媒体190の機能は、例えば光ディスク(CDROM、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、ゲームカセット、ICカード、半導体メモリなどのハードウェアにより実現できる。処理部100は、この情報記憶媒体190からのプログラム、データに基づいて種々の処理を行うことになる。
【0025】
なお、情報記憶媒体190に格納される情報の一部又は全部は、装置への電源投入時等に記憶部180に転送されることになる。
【0026】
処理部100は、ゲーム演算部110と画像生成部150を含む。
【0027】
ここでゲーム演算部110は、ゲームモードの設定処理、ゲームの進行処理、移動体の位置や方向を決める処理、視点位置や視線方向を決める処理、オブジェクト空間へオブジェクトを配置する処理等を行う。
【0028】
画像生成部150は、ゲーム演算部110により設定されたオブジェクト空間での所与の視点での画像を生成する処理を行う。画像生成部150により生成された画像は表示部12において表示される。
【0029】
ゲーム演算部110は、移動体演算部112、モーション再生部114、ヒットチェック部120を含む。
【0030】
ここで移動体演算部112は、操作部10から入力される操作データや所与のプログラムに基づき、プレーヤが操作する移動体や所与の制御プログラム(コンピュータ)により動きが制御される移動体を、オブジェクト空間内で移動させるための演算を行う。より具体的には、移動体の位置や方向を例えば1フレーム(1/60秒)毎に求める演算を行う。
【0031】
例えば(k−1)フレームでの移動体の位置をPMk-1、速度をVMk-1、加速度をAMk-1、1フレームの時間を△tとする。するとkフレームでの移動体の位置PMk、速度VMkは例えば下式(1)、(2)のように求められる。

PMk=PMk-1+VMk-1×△t (1)

VMk=VMk-1+AMk-1×△t (2)

なお、視点位置や視線方向は移動体の位置や方向のデータなどに基づいて決められる。より具体的には、プレーヤの操作する移動体に例えば追従するように視点を移動させる。この場合、移動体に対して例えば慣性を持ちながら視点を追従させることが望ましい。但し、移動体の移動に依存せずに、視点位置、視線を独立に制御するようにしてもよい。
【0032】
モーション再生部114は、例えば記憶部180に含まれるモーション記憶部182に記憶されるモーションデータなどに基づいて、キャラクタのモーションを再生する処理を行う。この場合、少ないモーションデータ量でリアルなモーションを再生するために、モーション補間やインバース・キネマティクスを用いてモーションを再生することが望ましい。
【0033】
ヒットチェック部120は、三次元空間にある任意の図形(点、線、面、立体又はこれらの集合等)の間でのヒットチェックを行うものである。より具体的には、本実施形態では、三次元空間内の三角形と、三次元空間内の三角形又は球との間でのヒットチェックを行っている。
【0034】
ヒットチェック部120は、変換マトリクス作成部122、座標変換部124、交わり判定部126及び座標変更部128を含む。
【0035】
ここで変換マトリクス作成部122は、第1の図形(三角形或いはそれ以外の多角形等)の第1の辺の方向を直交座標系のX軸の方向に、第2の辺の方向をY軸の方向に、第1の図形に垂直な方向をZ軸の方向に変換する変換マトリクスTを作成する。また座標変換部124は、作成された変換マトリクスTにより、第1の図形及び第2の図形(多角形、球、線分等)を、直交座標系の第3、第4の図形に座標変換する。そして交わり判定部126は、第3、第4の図形の間での交わり関係を判定する。このようにすることで、第1、第2の図形間での高速なヒットチェックが可能になる。
【0036】
なお、座標変更部は、第1の図形の第1、第2の辺が一直線上にある場合に、第1、第2の辺のなす角度が零よりも大きくなるように、第1、第2の辺を構成する頂点の座標を変更するものである。このようにすることで、第1、第2の辺が一直線上にある場合にも、適切なヒットチェックが可能になる。
【0037】
2.ヒットチェック処理
次に、本実施形態のヒットチェックの詳細について説明する。
【0038】
例えば図2(A)において、キャラクタ44が持つ剣46の鍔部分及び剣先の位置をH、Iとする。また図2(B)に示すように、所定期間後、例えば1フレーム後における鍔部分及び剣先の位置をJ、Kとする。この時、本実施形態では、図2(C)に示すように、剣46を線分によりモデル化し、1フレーム毎に得られる線分HI、JKにより構成される面62を生成する。そして図2(D)に示すように、この面62を、頂点H、I、Jからなる三角形64と頂点I、J、Kからなる三角形66に分割する。このようにすれば、頂点H、I、J、Kが同一平面上にない場合でも、三角形64の頂点H、I、Jが同一平面上になると共に、三角形66の頂点I、J、Kも同一平面上になるようになる。この結果、その後の処理を簡易化できる。
【0039】
次に、図2(E)に示すように、一方のキャラクタについてに生成された面62の三角形64、66と、他方のキャラクタについて生成された面68の三角形70、72との間の交わり関係を判定する。そして、三角形が交わっていると判定された場合には、図2(F)に示すように、キャラクタ44aと44bとが剣46a、46bのヒットの衝撃により弾き飛ばされる等の処理が行われる。
【0040】
なお、剣がキャラクタにヒットしたか否かを調べる場合には、一方のキャラクタが振った剣により生成された面62を構成する三角形と、他方のキャラクタの体の各部に設定された球(図3参照)との間でのヒットチェックを行うことになる。
【0041】
次に、三角形と三角形の間でのヒットチェックの詳細について図4のフローチャートを用いて説明する。
【0042】
まず、図5のA1に示すように、ヒットチェック対象となる2つの三角形ABC(第1の図形)、三角形DEF(第2の図形)の組み合わせを決める(ステップS1)。図2(E)を例にとれば、三角形62、70の組み合わせ、62、72の組み合わせ、66、70の組み合わせ、66、72の組み合わせの中から決める。
【0043】
次に、一方の三角形ABCを選択する(ステップS2)。そして、この三角形の頂点Aを直交座標系の原点に、辺ABの方向を直交座標系のX軸の方向に、辺ACの方向を直交座標系のY軸の方向に、三角形ABCに垂直な方向を直交座標系のZ軸の方向に変換する変換マトリクスを作成する(ステップS3)。より具体的には図5のA1において、辺ABの方向単位ベクトルV0をX軸の方向単位ベクトルEXに、辺ACの方向単位ベクトルV1をY軸の方向単位ベクトルEYに、三角形ABCに垂直な単位ベクトルV2をZ軸の方向単位ベクトルEZに変換する変換マトリクスを作成する。
【0044】
次に、図5のA2に示すように、作成した変換マトリクスにより三角形ABC及び三角形DEFを座標変換して、三角形OB’C’(第3の図形)、三角形D’E’F’(第4の図形)を得る(ステップS4)。
【0045】
次に、三角形D’E’F’の辺D’E’、辺E’F’、辺F’D’が三角形OB’C’と交わる(三角形OB’C’を通過する)か否かを判定する(ステップS5)。
【0046】
ここで、例えば辺(線分)D’E’が、三角形OB’C’と交わるか否かは次のようにして判定できる。即ち、まず、辺D’E’とXY平面との交点をGを求める。そして、次に、この交点Gが三角形OB’C’内にあるか否かを判定する。
【0047】
例えば頂点D’、E’、交点Gの座標を、各々、D’(D’x、D’y、D’z)、E’(E’x、E’y、E’z)、G(Gx、Gy、0)とする。
【0048】
交点GのZ座標は零であるから、辺D’E’がXY平面と交わっているか否かは、D’zとE’zの符号が異なるか否かを調べることで判定できる。もし符号が同一なら交わっていないと判定できる。
【0049】
一方、符号が異なっている場合(或いは少なくともD’z、E’zの一方が零の場合)は、交点Gは、辺D’E’の長さに対する線分D’Gの長さの比率mにより算出できる。この比率mは下式のようになる。
【0050】
【数1】

【0051】
この比率mを利用すれば、求める交点Gの座標は、

Gx=m(E’x−D’x)+D’x
Gy=m(E’y−D’y)+D’y (4)

となる。
【0052】
次に、交点Gが三角形OB’C’内にあるかを否かを判定する。ここで、頂点O、B’、C’のXY平面での座標を、各々、O(0、0)、B’(B’x、0)、C’(0、C’y)とし、更に、B’x>0、C’y>0とする。三角形OB’C’内に、交点G(Gx、Gy)が存在するかどうかは、

0≦Gx≦B’x
0≦Gy≦C’y (5)
GxC’y+GyB’x≦B’xC’y

の式を満たすかどうかにより判定できる。満たせば交点Gは三角形OB’C’内に存在していることになる。
【0053】
図4の説明に戻る。ステップS5で、辺D’E’、辺E’F’、辺F’D’が三角形OB’C’と交わると判定された場合には、三角形ABC、三角形DEFはヒットしていると判定される(ステップS11)。
【0054】
一方、交わっていないと判定された場合には、今度は、他方の三角形DEFを選択する(ステップS6)。そして、このように三角形の選び方を交換して、ステップS3、S4、S5で行われた変換マトリクス作成処理、座標変換処理、交わり判定処理を行う(ステップS7、S8、S9)。
【0055】
そして、三角形ABCの座標変換で得られた三角形A’B’C’の辺A’B’、辺B’C’、辺C’A’が、三角形DEFの座標変換で得られた三角形OE’F’と交わっていると判定された場合には、三角形ABC、三角形DEFはヒットしていると判定される(ステップS11)。一方、交わっていないと判定された場合には、三角形ABC、三角形DEFはヒットしていないと判定される(ステップS10)。
【0056】
以上のようにして三角形ABC、DEFのヒットチェックが完了する。
【0057】
以上のように本実施形態によれば、一方の三角形にローカルに設定された直交座標系に、一方及び他方の三角形を座標変換している。そして、本実施形態においては、このような座標変換をしても三角形間の交わり関係は変化しないことに着目している。このようにすることで、上式(3)、(4)、(5)に示すように、非常に負荷が軽く高速な演算で、ステップS5、S9の処理を実現できるようになる。従って、ヒットチェックの処理負荷を大幅に軽減でき、高速なヒットチェックを実現できるようになる。
【0058】
次に、三角形と球との間でのヒットチェックの詳細について図6のフローチャートを用いて説明する。
【0059】
まず、図7のB1に示すように、ヒットチェック対象となる三角形ABCと球S(中心P、半径R)の組み合わせを決める(ステップU1)。
【0060】
次に、三角形ABCの頂点Aを直交座標系の原点に、辺ABの方向を直交座標系のX軸の方向に、辺ACの方向を直交座標系のY軸の方向に、三角形ABCに垂直な方向を直交座標系のZ軸の方向に変換する変換マトリクスを作成する(ステップU2)。
【0061】
次に、図7のB2に示すように、作成した変換マトリクスにより三角形ABC及び球S(実際には中心P)を座標変換して、三角形OB’C’、球S’(実際には中心P’)を得る(ステップU3)。
【0062】
次に、座標変換された中心P’からXY平面への距離PLが、元の球Sの半径Rよりも大きいか否かを判定する(ステップU4)。そして、大きい場合には、三角形ABCと球Sはヒットしていないと判定する(ステップU5)。このように、元の球Sの半径Rを用いて判定できるのは、ステップU2で作成された変換マトリクスではZ軸方向の長さは不変となり、距離PLが半径Rよりも大きい場合には、中心PからXY平面への距離もRよりも大きいと考えられるからである。
【0063】
距離PLが半径R以下の場合には、P’からXY平面に下ろした垂線の足PFが、三角形OB’C’内にあるか否かを判定する(ステップU6)。
【0064】
そして図7のB2に示すようにPFが三角形OB’C’内にある場合には、三角形ABCと球Sはヒットしていると判定する(ステップU7)。PLが半径R以下であり、且つ、PFが三角形OB’C’内にあるからである。
【0065】
一方、図7のB3に示すようにPFが三角形OB’C’内にない場合には、PFが含まれる象限に応じた処理を行う(ステップU8)。
【0066】
より具体的には、図8に示すように、PFが、三角形OB’C’により区画される象限の中の第1の象限にある場合には、元の球S(中心P)の中に元の三角形ABCの辺(線分)BCが含まれるか否かを調べる。そして、含まれる場合には三角形ABCと球Sはヒットしたと判定し、含まれない場合にはヒットしていないと判定する。
【0067】
また、PFが第2の象限ににある場合には、元の球Sの中に元の三角形ABCの辺ACが含まれるか否かを調べる。そして、含まれる場合には三角形ABCと球Sはヒットしたと判定し、含まれない場合にはヒットしていないと判定する。
【0068】
また、PFが第3の象限にある場合には、元の球Sの中心Pと元の三角形ABCの頂点Aとの距離が半径R以下か否かを調べる。そして、R以下の場合にはヒットしたと判定し、Rよりも大きい場合にはヒットしていないと判定する。
【0069】
また、PFが、第4の象限ににある場合には、元の球Sの中に元の三角形ABCの辺ABが含まれるか否かを調べる。そして、含まれる場合には三角形ABCと球Sはヒットしたと判定し、含まれない場合にはヒットしていないと判定する。
【0070】
なお、例えば辺ABが球Sに含まれるか否かは以下のようにして判定できる。
【0071】
例えば頂点A、Bの座標をA(Ax、Ay、Az)、B(Bx、By、Bz)とし、球Sの中心Pの座標をP(Px、Py、Pz)とし、半径をRとする。
【0072】
まず、中心Pと辺ABの距離Lを求める。この距離Lは、辺ABの方向単位ベクトルとベクトルAPとの外積の大きさを求めることで得ることができる。そして、この距離Lが半径Rよりも大きい場合には、辺ABは球Sに含まれていないとみなすことができる。
【0073】
一方、距離Lが半径R以下の場合には、中心Pから辺ABに下ろした垂線の足PF2を求める。実際には、この垂線の足PF2が辺AB上にあるか否かを知りたいので、辺ABに対してPF2がどの位置にあるかを示す比率nを求める。この比率nは、
【0074】
【数2】

【0075】
と表すことができる。
【0076】
そして、0≦n≦1ならば、辺ABは球Sに含まれているとみなせる。一方、n<0ならば、頂点Aと中心Pとの距離を求め、n>1ならば、頂点Bと中心Pとの距離を求める。そして、これらの距離のいずれかがR以下の場合には、辺ABは球Sに含まれるとみなし、そうでない場合には含まれないとみなす。
【0077】
なお以上では、垂線の足PFが三角形OB’C’内にない場合に、元の球Sの中心Pと元の三角形ABCの各辺、各頂点との位置関係を調べている。しかしながら、本発明の手法はこれに限定されず、例えば、座標変換後の中心P’及び三角形OB’C’の間の位置関係を調べるようにしてもよい。
【0078】
次に、変換マトリクスの作成処理(例えば図4のステップS3、図6のステップU2)の具体例について図9のフローチャートを用いて説明する。
【0079】
まず、辺AB、ACが一直線上にあるか否かを調べる(ステップV1)。そして辺AB、ACが一直線上にある場合には(頂点A、B、Cが一直線上にある場合には)、頂点B又はCの座標を変更する(ステップV2)。
【0080】
例えば図10(A)に示すように、キャラクタ44が剣46を前に突き出した場合を考える。この場合には、剣46を振ることにより生成される面が直線になる可能性がある。即ち、図10(B)に示すように、三角形の辺AB、ACが一直線上になる場合がある。この時、本実施形態では、図10(C)に示すように、例えば頂点Bの座標を微少に変化させる。このようにすることで、擬似的な三角形の形成が可能になり、以後のヒットチェック処理を適正に行うことが可能になる。
【0081】
さて、辺ABの方向をX軸の方向に、辺ACの方向をY軸の方向に、三角形ABCに垂直な方向をZ軸の方向に変換する変換マトリクスTを作成する場合を考える。
【0082】
ここで、辺ABの方向単位ベクトルをV0(v0x、v0y、v0z)とし、辺ACの方向単位ベクトルをV1(v1x、v1y、v1z)とする。すると、三角形ABCに垂直なベクトルはV0×V1で表せる。このベクトルを正規化したものをV2(v2x、v2y、v2z)とする。すると、求めるべき変換マトリクスTは、
【0083】
【数3】

【0084】
となる。しかしながら、3行3列の逆行列を求める演算は一般化されてはいるが、演算負荷が大きい。そこで、本実施形態では以下のような手法で変換マトリクスTを求める。
【0085】
まず、辺ABの方向単位ベクトルV0をX軸の方向単位ベクトルEXに、三角形ABCに垂直な方向単位ベクトルV2をZ軸の方向単位ベクトルEZに変換する変換マトリクスRを作成する(ステップV3)。この変換マトリクスRは、
【0086】
【数4】

【0087】
と表すことができる。なお、(v0×v2)x、(v0×v2)y、(v0×v2)zは、各々、V0とV2の外積V0×V2のX成分、Y成分、Z成分を表す。
【0088】
さて、V2は三角形ABCに垂直であり、V0は辺ABと同一直線上にある。従って、上記の変換マトリクスRにより、V1はXY平面上に移ることになる。
【0089】
次に、ベクトル(1、0)(XY平面上でのX軸の方向単位ベクトルEXに相当)についてはそのまま(1、0)に変換し、XY平面上の任意の単位ベクトル(a、b)についてはベクトル(0、1)(XY平面上でのY軸の方向単位ベクトルEYに相当)に変換する変換マトリクスを考える(平面上の変換なので2行2列の行列で考える)。この変換マトリクスは、
【0090】
【数5】

【0091】
と表すことができる。
【0092】
なおb=0の場合には上式(9)の変換マトリクスを求めることができない。しかしながら、このb=0というのは、辺AB、ACが同一直線上にあることを意味し、この場合には、ステップV1、V2に示すように、頂点B又はCの座標が変更される。従って、b=0でなくなり、問題なく上式(9)の変換マトリクスを求めることができるようになる。
【0093】
上式(9)の変換マトリクスを、Z軸方向の長さを不変のままとしながら3行3列の行列に拡張すると、
【0094】
【数6】

【0095】
と表される変換マトリクスMを得ることができる(ステップV4)。
【0096】
上式(8)の変換マトリクスRにより、辺ACの方向単位ベクトルV1はXY平面上の任意の単位ベクトル(a、b)に変換される。そして、上式(10)の変換マトリクスMにより、このXY平面上の任意の単位ベクトル(a、b)は、Y軸の方向単位ベクトルEYに変換されることになる。
【0097】
即ち、求めるべき変換マトリクスTは、上記の変換マトリクスRとMの積をとる(T=M×R)ことで得ることができる(ステップV5)。
【0098】
以上のようにすれば、非常に少ない処理負担で変換マトリクスTを求めることが可能になる。
【0099】
3.ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図11を用いて説明する。同図に示す装置では、CPU1000、ROM1002、RAM1004、情報記憶媒体1006、音生成IC1008、画像生成IC1010、I/Oポート1012、1014が、システムバス1016により相互にデータ送受信可能に接続されている。そして前記画像生成IC1010にはディスプレイ1018が接続され、音生成IC1008にはスピーカ1020が接続され、I/Oポート1012にはコントロール装置1022が接続され、I/Oポート1014には通信装置1024が接続されている。
【0100】
情報記憶媒体1006は、プログラム、表示物を表現するための画像データ、音データ等が主に格納されるものである。例えば家庭用ゲーム装置ではゲームプログラム等を格納する情報記憶媒体としてCD−ROM、ゲームカセット、DVD等が用いられる。また業務用ゲーム装置ではROM等のメモリが用いられ、この場合には情報記憶媒体1006はROM1002になる。
【0101】
コントロール装置1022はゲームコントローラ、操作パネル等に相当するものであり、プレーヤがゲーム進行に応じて行う判断の結果を装置本体に入力するための装置である。
【0102】
情報記憶媒体1006に格納されるプログラム、ROM1002に格納されるシステムプログラム(装置本体の初期化情報等)、コントロール装置1022によって入力される信号等に従って、CPU1000は装置全体の制御や各種データ処理を行う。RAM1004はこのCPU1000の作業領域等として用いられる記憶手段であり、情報記憶媒体1006やROM1002の所与の内容、あるいはCPU1000の演算結果等が格納される。また本実施形態を実現するための論理的な構成を持つデータ構造は、このRAM又は情報記憶媒体上に構築されることになる。
【0103】
更に、この種の装置には音生成IC1008と画像生成IC1010とが設けられていてゲーム音やゲーム画像の好適な出力が行えるようになっている。音生成IC1008は情報記憶媒体1006やROM1002に記憶される情報に基づいて効果音やバックグラウンド音楽等のゲーム音を生成する集積回路であり、生成されたゲーム音はスピーカ1020によって出力される。また、画像生成IC1010は、RAM1004、ROM1002、情報記憶媒体1006等から送られる画像情報に基づいてディスプレイ1018に出力するための画素情報を生成する集積回路である。なおディスプレイ1018として、いわゆるヘッドマウントディスプレイ(HMD)と呼ばれるものを使用することもできる。
【0104】
また、通信装置1024はゲーム装置内部で利用される各種の情報を外部とやりとりするものであり、他のゲーム装置と接続されてゲームプログラムに応じた所与の情報を送受したり、通信回線を介してゲームプログラム等の情報を送受することなどに利用される。
【0105】
そして図1〜図3、図5、図7、図8、図10(A)、(B)、(C)で説明した種々の処理は、図4、図6、図9のフローチャートに示した処理等を行うプログラムを格納した情報記憶媒体1006と、該プログラムに従って動作するCPU1000、画像生成IC1010、音生成IC1008等によって実現される。なお画像生成IC1010、音生成IC1008等で行われる処理は、CPU1000あるいは汎用のDSP等によりソフトウェア的に行ってもよい。
【0106】
図12(A)に、本実施形態を業務用ゲーム装置に適用した場合の例を示す。プレーヤは、ディスプレイ1100上に映し出されたゲーム画像を見ながら、レバー1102、ボタン1104を操作してゲームを楽しむ。装置に内蔵されるIC基板1106には、CPU、画像生成IC、音処理IC等が実装されている。そして、第1の図形の第1の辺の方向を直交座標系のX軸の方向に変換し、第1の図形の第2の辺の方向を直交座標系のY軸の方向に変換し、第1の図形に垂直な方向を直交座標系のZ軸の方向に変換する変換マトリクスTを作成するための情報、変換マトリクスTにより第1、第2の図形を直交座標系の第3、第4の図形に座標変換するための情報、第3、第4の図形の間での交わり関係を判定するための情報等は、IC基板1106上の情報記憶媒体であるメモリ1108に格納される。以下、これらの情報を格納情報と呼ぶ。これらの格納情報は、上記の種々の処理を行うためのプログラムコード、画像情報、音情報、表示物の形状情報、テーブルデータ、リストデータ、プレーヤ情報等の少なくとも1つを含むものである。
【0107】
図12(B)に、本実施形態を家庭用のゲーム装置に適用した場合の例を示す。プレーヤはディスプレイ1200に映し出されたゲーム画像を見ながら、ゲームコントローラ1202、1204を操作してゲームを楽しむ。この場合、上記格納情報は、本体装置に着脱自在な情報記憶媒体であるCD−ROM1206、ICカード1208、1209等に格納されている。
【0108】
図12(C)に、ホスト装置1300と、このホスト装置1300と通信回線1302を介して接続される端末1304-1〜1304-nとを含むゲーム装置に本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置1300が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体1306に格納されている。端末1304-1〜1304-nが、CPU、画像生成IC、音処理ICを有し、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置1300からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末1304-1〜1304-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置1300がゲーム画像、ゲーム音を生成し、これを端末1304-1〜1304-nに伝送し端末において出力することになる。
【0109】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【0110】
例えば、本実施形態では第1の図形が三角形、第2の図形が三角形又は球である場合について説明したが、本発明はこれに限定されない。例えば第1の図形は少なくとも2辺を有する図形であればよく、第2の図形としては三角形、球以外にも種々の図形を採用できる。
【0111】
また、本実施形態では、剣と剣、剣とキャラクタのヒット判定に本発明を適用した場合について説明したが、本発明の適用範囲はこれに限定されない。例えば、剣以外の武器同士やその武器とキャラクタのヒットチェック、キャラクタの腕や足同士や、その腕や足とキャラクタとのヒットチェックにも適用できる。また、キャラクタと弾とのヒットチェックや、車と壁とのヒットチェックにも適用できる。
【0112】
また本実施形態では、本発明を剣を用いた格闘技ゲームに適用した場合について説明したが、本発明はこれに限らず種々のゲーム(ロボット対戦ゲーム、ロールプレイングゲーム、シューティングゲーム、スポーツゲーム、競争ゲーム等)に適用できる。
【0113】
また本発明は、家庭用、業務用のゲーム装置のみならず、シミュレータ、多数のプレーヤが参加する大型アトラクション装置、パーソナルコンピュータ、マルチメディア端末、ゲーム画像を生成するシステム基板等の種々のゲーム装置にも適用できる。
【図面の簡単な説明】
【0114】
【図1】本実施形態のゲーム装置の機能ブロック図の一例である。
【図2】図2(A)〜図2(F)は、剣と剣とのヒットチェックについて説明するための図である。
【図3】剣とキャラクタのヒットチェックについて説明するための図である。
【図4】三角形と三角形のヒットチェックについての詳細な処理例を説明するためのフローチャートである。
【図5】三角形と三角形のヒットチェックについて説明するための図である。
【図6】三角形と球のヒットチェックについての詳細な処理例を説明するためのフローチャートである。
【図7】三角形と球のヒットチェックについて説明するための図である。
【図8】三角形OB’C’により区画される象限について説明するための図である。
【図9】変換マトリクス作成の詳細な処理例を説明するためのフローチャートである。
【図10】図10(A)、(B)、(C)は、三角形の2辺が一直線上にある場合についての処理について説明するための図である。
【図11】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図12】図12(A)、(B)、(C)は、本実施形態が適用される種々の形態の装置の例を示す図である。
【符号の説明】
【0115】
10 操作部
12 表示部
100 処理部
110 ゲーム演算部
112 移動体演算部
114 モーション再生部
120 ヒットチェック部
122 変換マトリクス作成部
124 座標変換部
126 交わり判定部
128 座標変更部
150 画像生成部
180 記憶部
182 モーション記憶部
190 情報記憶媒体

【特許請求の範囲】
【請求項1】
三次元空間内にあり少なくとも2辺を有する第1の図形の情報と三次元空間内にあり少なくとも2辺を有する第2の図形の情報を記憶する記憶手段と、
三次元空間内にある前記第1の図形と前記第2の図形との間でのヒットチェックを行うヒットチェック手段と、
前記記憶手段に記憶された第1の図形の情報に基づき、第1の図形の第1、第2の辺が一直線上にあるか否かを判定し、一直線上にあると判定した場合には、第1、第2の辺のなす角度が零よりも大きくなるように、第1、第2の辺を構成する頂点の少なくとも1つの頂点の座標を変更する座標変更手段とを含み、
前記ヒットチェック手段は、
前記座標変更手段によって第1の図形の第1、第2の辺が一直線上にないと判定された場合には、頂点の座標が変更されていない第1の図形と、第2の図形との間でヒットチェックを行い、
前記座標変更手段によって第1の図形の第1、第2の辺が一直線上にあると判定された場合には、頂点の座標が変更された第1の図形と、第2の図形との間でヒットチェックを行うことを特徴とするゲーム装置。
【請求項2】
コンピュータにより情報の読み出しが可能な情報記憶媒体であって、
三次元空間内にあり少なくとも2辺を有する第1の図形の情報と三次元空間内にあり少なくとも2辺を有する第2の図形の情報を記憶する記憶手段と、
三次元空間内にある前記第1の図形と前記第2の図形との間でのヒットチェックを行うヒットチェック手段と、
前記記憶手段に記憶された第1の図形の情報に基づき、第1の図形の第1、第2の辺が一直線上にあるか否かを判定し、一直線上にあると判定した場合には、第1、第2の辺のなす角度が零よりも大きくなるように、第1、第2の辺を構成する頂点の少なくとも1つの頂点の座標を変更する座標変更手段として、
コンピュータを機能させるプログラムを記憶し、
前記ヒットチェック手段は、
前記座標変更手段によって第1の図形の第1、第2の辺が一直線上にないと判定された場合には、頂点の座標が変更されていない第1の図形と、第2の図形との間でヒットチェックを行い、
前記座標変更手段によって第1の図形の第1、第2の辺が一直線上にあると判定された場合には、頂点の座標が変更された第1の図形と、第2の図形との間でヒットチェックを行うことを特徴とする情報記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2006−334421(P2006−334421A)
【公開日】平成18年12月14日(2006.12.14)
【国際特許分類】
【出願番号】特願2006−200795(P2006−200795)
【出願日】平成18年7月24日(2006.7.24)
【分割の表示】特願平10−222268の分割
【原出願日】平成10年7月22日(1998.7.22)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】