(57)【要約】【課題】図形間での高速なヒットチェックが可能なゲーム装置及び情報記憶媒体を提供すること。【解決手段】三角形ＡＢＣの辺ＡＢ方向をＸ軸方向に変換し、辺ＡＣ方向をＹ軸方向に変換し、三角形ＡＢＣに垂直な方向をＺ軸方向に変換する変換マトリクスを作成する。この変換マトリクスにより三角形ＡＢＣ、ＤＥＦを座標変換し三角形ＯＢ’Ｃ’、Ｄ’Ｅ’Ｆ’を得て、辺Ｄ’Ｅ’、Ｅ’Ｆ’、Ｆ’Ｄ’が三角形ＯＢ’Ｃ’に交わるか否かを判定する。三角形と球との間でも同様のヒットチェックが可能である。Ｖ０をＥＸに変換すると共にＶ２をＥＺに変換する変換マトリクスＲを作成し、ＥＸについては同じＥＸに変換すると共にＸＹ平面上の任意の単位ベクトルについてはＥＹに変換する変換マトリクスＭを作成し、変換マトリクスＲとＭの積をとることで変換マトリクスＴを得る。辺ＡＢ、ＡＣが一直線上にある場合には、頂点Ｂ、Ｃの座標を変更する。【選択図】図５
2006334421.tif 000002
【特許請求の範囲】
【請求項１】
三次元空間内にあり少なくとも２辺を有する第１の図形の情報と三次元空間内にあり少なくとも２辺を有する第２の図形の情報を記憶する記憶手段と、
三次元空間内にある前記第１の図形と前記第２の図形との間でのヒットチェックを行うヒットチェック手段と、
前記記憶手段に記憶された第１の図形の情報に基づき、第１の図形の第１、第２の辺が一直線上にあるか否かを判定し、一直線上にあると判定した場合には、第１、第２の辺のなす角度が零よりも大きくなるように、第１、第２の辺を構成する頂点の少なくとも１つの頂点の座標を変更する座標変更手段とを含み、
前記ヒットチェック手段は、
前記座標変更手段によって第１の図形の第１、第２の辺が一直線上にないと判定された場合には、頂点の座標が変更されていない第１の図形と、第２の図形との間でヒットチェックを行い、
前記座標変更手段によって第１の図形の第１、第２の辺が一直線上にあると判定された場合には、頂点の座標が変更された第１の図形と、第２の図形との間でヒットチェックを行うことを特徴とするゲーム装置。
【請求項２】
コンピュータにより情報の読み出しが可能な情報記憶媒体であって、
三次元空間内にあり少なくとも２辺を有する第１の図形の情報と三次元空間内にあり少なくとも２辺を有する第２の図形の情報を記憶する記憶手段と、
三次元空間内にある前記第１の図形と前記第２の図形との間でのヒットチェックを行うヒットチェック手段と、
前記記憶手段に記憶された第１の図形の情報に基づき、第１の図形の第１、第２の辺が一直線上にあるか否かを判定し、一直線上にあると判定した場合には、第１、第２の辺のなす角度が零よりも大きくなるように、第１、第２の辺を構成する頂点の少なくとも１つの頂点の座標を変更する座標変更手段として、
コンピュータを機能させるプログラムを記憶し、
前記ヒットチェック手段は、
前記座標変更手段によって第１の図形の第１、第２の辺が一直線上にないと判定された場合には、頂点の座標が変更されていない第１の図形と、第２の図形との間でヒットチェックを行い、
前記座標変更手段によって第１の図形の第１、第２の辺が一直線上にあると判定された場合には、頂点の座標が変更された第１の図形と、第２の図形との間でヒットチェックを行うことを特徴とする情報記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ヒットチェック機能を有するゲーム装置及びヒットチェックを行うための情報を格納する情報記憶媒体に関する。
【背景技術】
【０００２】
従来より、仮想的な三次元空間であるオブジェクト空間内に複数のオブジェクトを配置し、オブジェクト空間内の所与の視点から見える画像を生成するゲーム装置が開発、実用化されており、いわゆる仮想現実を体験できるものとして人気が高い。格闘技ゲームを楽しむことができるゲーム装置を例にとれば、プレーヤは、キャラクタを操作し、他のプレーヤ又はコンピュータが操作するキャラクタと対戦させてゲームを楽しむ。
【０００３】
このようなゲーム装置では、敵へのダメージや味方のダメージなどを算出するためのヒットチェックが必要になる。剣を用いる格闘技ゲームを例にとれば、第１のキャラクタが振った剣と、第２のキャラクタの振った剣（或いは第２のキャラクタの体）との間でのヒットチェックを行う必要がある。このようなヒットチェックに関する技術として、例えば特開平８−１９６７４５号公報に開示された従来技術などが知られている。
【０００４】
しかしながら、これまでの従来技術では、ヒットチェックの処理負荷が重く、ヒットチェックの高速化を実現できないという課題があった。この種のゲーム装置では、処理のリアルタイム性が要求されており、ヒットチェックを高速化できないと、上記リアルタイム性が阻害される。
【特許文献１】特開平０９−２２３２４６号公報
【特許文献２】特開平０８−３２９２７６号公報
【非特許文献１】「Ｉｎｔｅｒｆａｃｅ  １９９７年１２号（３Ｄ時代に必須となるＤｉｒｅｃｔＸプログラミングの基礎知識  ＤｉｒｅｃｔＤｒａｗとＤｉｒｅｃｔ３Ｄの初期化をマスタする）」ＣＱ出版株式会社  １９９７年１２月１日  第２３巻  第１２号  ｐ．１２５〜１４２
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、図形間での高速なヒットチェックが可能なゲーム装置及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００６】
本発明は、三次元空間内にあり少なくとも２辺を有する第１の図形の情報と三次元空間内にあり少なくとも２辺を有する第２の図形の情報を記憶する記憶手段と、三次元空間内にある前記第１の図形と前記第２の図形との間でのヒットチェックを行うヒットチェック手段と、前記記憶手段に記憶された第１の図形の情報に基づき、第１の図形の第１、第２の辺が一直線上にあるか否かを判定し、一直線上にあると判定した場合には、第１、第２の辺のなす角度が零よりも大きくなるように、第１、第２の辺を構成する頂点の少なくとも１つの頂点の座標を変更する座標変更手段とを含み、前記ヒットチェック手段は、前記座標変更手段によって第１の図形の第１、第２の辺が一直線上にないと判定された場合には、頂点の座標が変更されていない第１の図形と、第２の図形との間でヒットチェックを行い、前記座標変更手段によって第１の図形の第１、第２の辺が一直線上にあると判定された場合には、頂点の座標が変更された第１の図形と、第２の図形との間でヒットチェックを行うことを特徴とする。
【０００７】
また本発明は、上記各手段としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関係する。
【０００８】
本発明によれば、第１の図形の第１、第２の辺が一直線上にある場合に、第１、第２の辺のなす角度が零よりも大きくなるように、頂点の座標が変更される。これにより、第１の図形の第１、第２の辺が一直線上にある場合にも、適切なヒットチェックが可能になる。
【発明を実施するための最良の形態】
【０００９】
本実施形態は、三次元空間内にあり少なくとも２辺を有する第１の図形と三次元空間内にあり少なくとも２辺を有する第２の図形との間でのヒットチェックを行う機能を有するゲーム装置であって、第１の図形の第１の辺の方向を直交座標系のＸ軸の方向に変換し、第１の図形の第２の辺の方向を直交座標系のＹ軸の方向に変換し、第１の図形に垂直な方向を直交座標系のＺ軸の方向に変換する変換マトリクスＴを作成する手段と、前記変換マトリクスＴにより第１の図形を直交座標系の第３の図形に座標変換すると共に、前記変換マトリクスＴにより第２の図形を直交座標系の第４の図形に座標変換する手段と、第４の図形の各辺が第３の図形と交わるか否かを判定する手段とを含み、交わった場合には第１、第２の図形がヒットしたと判定し、交わらなかった場合には、第１の図形を第２の図形とし第２の図形を第１の図形として上記の変換マトリクスの作成、座標変換及び交わり判定を行い、第１、第２の図形がヒットしたか否かを判定することを特徴とする。
【００１０】
本実施形態によれば、第１の図形の第１の辺の方向がＸ軸の方向に、第２の辺の方向がＹ軸の方向に、第１の図形に垂直な方向がＺ軸の方向に変換されるような変換マトリクスＴが作成される。そして、この変換マトリクスＴを用いて、第１、第２の図形が直交座標系の第３、第４の図形に座標変換され、この直交座標系の第３、第４の図形間で交わり判定が行われる。このようにすれば、直交座標系において交わり判定ができるようになるため、ヒットチェックの処理負荷を大幅に軽減でき、ヒットチェックの高速化を図れるようになる。
【００１１】
また本実施形態は、三次元空間内にあり少なくとも２辺を有する第１の図形と三次元空間内にあり中心Ｐ、半径Ｒを有する第１の球との間でのヒットチェックを行う機能を有するゲーム装置であって、第１の図形の第１の辺の方向を直交座標系のＸ軸の方向に変換し、第１の図形の第２の辺の方向を直交座標系のＹ軸の方向に変換し、第１の図形に垂直な方向を直交座標系のＺ軸の方向に変換する変換マトリクスＴを作成する手段と、前記変換マトリクスＴにより第１の図形を直交座標系の第３の図形に座標変換すると共に、前記変換マトリクスＴにより第１の球を直交座標系の第２の球に座標変換する手段と、第１の球の半径Ｒと、第２の球の中心Ｐ’からＸＹ平面への距離ＰＬと、中心Ｐ’からＸＹ平面に下ろした垂線の足ＰＦと、第３の図形とに基づいて、第１の図形と第１の球とがヒットしたか否かを判定する手段とを含むことを特徴とする。
【００１２】
本実施形態によれば、作成された変換マトリクスＴを用いて、第１の図形、第１の球（中心Ｐ）が、各々、直交座標系の第３の図形、第２の球（中心Ｐ’）に座標変換され、この直交座標系の第３の図形、第２の球の間で交わり判定が行われる。このようにすれば、直交座標系において交わり判定ができるようになるため、ヒットチェックの処理負荷の軽減、高速化を図れるようになる。
【００１３】
この場合、距離ＰＬが半径Ｒよりも大きい場合は第１の図形と第１の球がヒットしていないと判定し、距離ＰＬが半径Ｒ以下の場合には、垂線の足ＰＦが第３の図形内にあるか否かを判定し、垂線の足ＰＦが第３の図形内にある場合には、第１の図形と第１の球がヒットしていると判定し、垂線の足ＰＦが第３の図形内にない場合には、第３の図形により区画される象限の中のどの象限に垂線の足ＰＦが属するかに応じて第１の図形の辺又は頂点を選択し、選択された辺又は頂点が、第１の球に含まれるか否かを判定することが望ましい。このようにすることで、第１の図形と第１の球との間の正確なヒットチェックが可能になる。
【００１４】
また本実施形態は、三次元空間内にあり少なくとも２辺を有する第１の図形と三次元空間内にある第２の図形との間でのヒットチェックを行う機能を有するゲーム装置であって、第１の図形の第１の辺の方向を直交座標系のＸ軸の方向に変換し、第１の図形の第２の辺の方向を直交座標系のＹ軸の方向に変換し、第１の図形に垂直な方向を直交座標系のＺ軸の方向に変換する変換マトリクスＴを作成する手段と、前記変換マトリクスＴにより第１、第２の図形を直交座標系の第３、第４の図形に座標変換する手段と、第３、第４の図形の間での交わり関係を判定する手段とを含むことを特徴とする。
【００１５】
本実施形態によれば、作成された変換マトリクスＴを用いて、第１、第２の図形が、直交座標系の第３、第４の図形に座標変換され、第３、第４の図形間で交わり関係が判定される。このようにすれば、直交座標系において交わり判定ができるようになるため、ヒットチェックの処理負荷の軽減、高速化を図れるようになる。この場合、第１の図形は、少なくとも２辺を有するものであればよく、三角形、多角形などの種々の図形を考えることができる。また、第２の図形も、三角形、多角形、球以外にも種々の図形を考えることができる。
【００１６】
また本実施形態は、前記変換マトリクスＴを作成する手段が、第１の図形の第１の辺の方向単位ベクトルＶ０を直交座標系のＸ軸の方向単位ベクトルＥＸに変換すると共に、第１の図形に垂直な方向単位ベクトルＶ２を直交座標系のＺ軸の方向単位ベクトルＥＺに変換する変換マトリクスＲを作成し、前記単位ベクトルＥＸについてはそのまま同じ単位ベクトルＥＸに変換すると共に、ＸＹ平面上の任意の単位ベクトルについては直交座標系のＹ軸の方向単位ベクトルＥＹに変換する変換マトリクスＭを作成し、前記変換マトリクスＲとＭの積をとることで前記変換マトリクスＴを求めることを特徴とする。このようにすれば、逆行列を求めるための複雑な処理を要することなく、少ない処理負担で簡易に変換マトリクスＴを求めることが可能になる。
【００１７】
また本実施形態は、三次元空間内にあり少なくとも２辺を有する第１の図形と三次元空間内にある第２の図形との間でのヒットチェックを行う機能を有するゲーム装置であって、第１の図形の第１、第２の辺が一直線上にある場合には、第１、第２の辺のなす角度が零よりも大きくなるように、第１、第２の辺を構成する頂点の少なくとも１つの頂点の座標を変更する手段と、第１の図形の第１、第２の辺が一直線上にない場合には、頂点の座標が変更されていない第１の図形と、第２の図形との間でヒットチェックを行い、第１の図形の第１、第２の辺が一直線上にある場合には、頂点の座標が変更された第１の図形と、第２の図形との間でヒットチェックを行う手段とを含むことを特徴とする。
【００１８】
本実施形態によれば、第１の図形の第１、第２の辺が一直線上にある場合に、第１、第２の辺のなす角度が零よりも大きくなるように、頂点の座標が変更される。これにより、第１の図形の第１、第２の辺が一直線上にある場合にも、適切なヒットチェックが可能になる。
【００１９】
以下、本発明の好適な実施形態について図面を用いて説明する。なお以下では、本発明を格闘技ゲームに適用した場合を例にとり説明し、また、第１の図形が三角形であり、第２の図形が三角形又は球である場合について説明する。しかしながら、本発明の適用範囲はこれに限定されるものではない。
【００２０】
１．本実施形態の構成
図１に、本実施形態のゲーム装置の機能ブロック図の一例を示す。
【００２１】
ここで操作部１０は、プレーヤが、レバー、ボタン、ステアリング、アクセルペダル、銃等を模したシューティングデバイスなどを操作することで操作データを入力するためのものであり、操作部１０にて得られた操作データは処理部１００に入力される。
【００２２】
処理部１００は、上記操作データと所与のプログラムなどに基づいて、オブジェクト空間にオブジェクトを配置する処理や、このオブジェクト空間の所与の視点での画像を生成する処理を行うものである。この処理部１００の機能は、ＣＰＵ（ＣＩＳＣ型、ＲＩＳＣ型）、ＤＳＰ、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、所与のプログラムなどにより実現できる。
【００２３】
記憶部１８０は、処理部１００の例えばワーク領域となるものであり、その機能は、ＲＡＭなどのハードウェアにより実現できる。
【００２４】
情報記憶媒体１９０は、プログラムやデータを記憶するものである。この情報記憶媒体１９０の機能は、例えば光ディスク（ＣＤＲＯＭ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、ゲームカセット、ＩＣカード、半導体メモリなどのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１９０からのプログラム、データに基づいて種々の処理を行うことになる。
【００２５】
なお、情報記憶媒体１９０に格納される情報の一部又は全部は、装置への電源投入時等に記憶部１８０に転送されることになる。
【００２６】
処理部１００は、ゲーム演算部１１０と画像生成部１５０を含む。
【００２７】
ここでゲーム演算部１１０は、ゲームモードの設定処理、ゲームの進行処理、移動体の位置や方向を決める処理、視点位置や視線方向を決める処理、オブジェクト空間へオブジェクトを配置する処理等を行う。
【００２８】
画像生成部１５０は、ゲーム演算部１１０により設定されたオブジェクト空間での所与の視点での画像を生成する処理を行う。画像生成部１５０により生成された画像は表示部１２において表示される。
【００２９】
ゲーム演算部１１０は、移動体演算部１１２、モーション再生部１１４、ヒットチェック部１２０を含む。
【００３０】
ここで移動体演算部１１２は、操作部１０から入力される操作データや所与のプログラムに基づき、プレーヤが操作する移動体や所与の制御プログラム（コンピュータ）により動きが制御される移動体を、オブジェクト空間内で移動させるための演算を行う。より具体的には、移動体の位置や方向を例えば１フレーム（１／６０秒）毎に求める演算を行う。
【００３１】
例えば（ｋ−１）フレームでの移動体の位置をＰＭk-1、速度をＶＭk-1、加速度をＡＭk-1、１フレームの時間を△ｔとする。するとｋフレームでの移動体の位置ＰＭk、速度ＶＭkは例えば下式（１）、（２）のように求められる。
ＰＭk＝ＰＭk-1＋ＶＭk-1×△ｔ              （１）
ＶＭk＝ＶＭk-1＋ＡＭk-1×△ｔ              （２）
なお、視点位置や視線方向は移動体の位置や方向のデータなどに基づいて決められる。より具体的には、プレーヤの操作する移動体に例えば追従するように視点を移動させる。この場合、移動体に対して例えば慣性を持ちながら視点を追従させることが望ましい。但し、移動体の移動に依存せずに、視点位置、視線を独立に制御するようにしてもよい。
【００３２】
モーション再生部１１４は、例えば記憶部１８０に含まれるモーション記憶部１８２に記憶されるモーションデータなどに基づいて、キャラクタのモーションを再生する処理を行う。この場合、少ないモーションデータ量でリアルなモーションを再生するために、モーション補間やインバース・キネマティクスを用いてモーションを再生することが望ましい。
【００３３】
ヒットチェック部１２０は、三次元空間にある任意の図形（点、線、面、立体又はこれらの集合等）の間でのヒットチェックを行うものである。より具体的には、本実施形態では、三次元空間内の三角形と、三次元空間内の三角形又は球との間でのヒットチェックを行っている。
【００３４】
ヒットチェック部１２０は、変換マトリクス作成部１２２、座標変換部１２４、交わり判定部１２６及び座標変更部１２８を含む。
【００３５】
ここで変換マトリクス作成部１２２は、第１の図形（三角形或いはそれ以外の多角形等）の第１の辺の方向を直交座標系のＸ軸の方向に、第２の辺の方向をＹ軸の方向に、第１の図形に垂直な方向をＺ軸の方向に変換する変換マトリクスＴを作成する。また座標変換部１２４は、作成された変換マトリクスＴにより、第１の図形及び第２の図形（多角形、球、線分等）を、直交座標系の第３、第４の図形に座標変換する。そして交わり判定部１２６は、第３、第４の図形の間での交わり関係を判定する。このようにすることで、第１、第２の図形間での高速なヒットチェックが可能になる。
【００３６】
なお、座標変更部は、第１の図形の第１、第２の辺が一直線上にある場合に、第１、第２の辺のなす角度が零よりも大きくなるように、第１、第２の辺を構成する頂点の座標を変更するものである。このようにすることで、第１、第２の辺が一直線上にある場合にも、適切なヒットチェックが可能になる。
【００３７】
２．ヒットチェック処理
次に、本実施形態のヒットチェックの詳細について説明する。
【００３８】
例えば図２（Ａ）において、キャラクタ４４が持つ剣４６の鍔部分及び剣先の位置をＨ、Ｉとする。また図２（Ｂ）に示すように、所定期間後、例えば１フレーム後における鍔部分及び剣先の位置をＪ、Ｋとする。この時、本実施形態では、図２（Ｃ）に示すように、剣４６を線分によりモデル化し、１フレーム毎に得られる線分ＨＩ、ＪＫにより構成される面６２を生成する。そして図２（Ｄ）に示すように、この面６２を、頂点Ｈ、Ｉ、Ｊからなる三角形６４と頂点Ｉ、Ｊ、Ｋからなる三角形６６に分割する。このようにすれば、頂点Ｈ、Ｉ、Ｊ、Ｋが同一平面上にない場合でも、三角形６４の頂点Ｈ、Ｉ、Ｊが同一平面上になると共に、三角形６６の頂点Ｉ、Ｊ、Ｋも同一平面上になるようになる。この結果、その後の処理を簡易化できる。
【００３９】
次に、図２（Ｅ）に示すように、一方のキャラクタについてに生成された面６２の三角形６４、６６と、他方のキャラクタについて生成された面６８の三角形７０、７２との間の交わり関係を判定する。そして、三角形が交わっていると判定された場合には、図２（Ｆ）に示すように、キャラクタ４４ａと４４ｂとが剣４６ａ、４６ｂのヒットの衝撃により弾き飛ばされる等の処理が行われる。
【００４０】
なお、剣がキャラクタにヒットしたか否かを調べる場合には、一方のキャラクタが振った剣により生成された面６２を構成する三角形と、他方のキャラクタの体の各部に設定された球（図３参照）との間でのヒットチェックを行うことになる。
【００４１】
次に、三角形と三角形の間でのヒットチェックの詳細について図４のフローチャートを用いて説明する。
【００４２】
まず、図５のＡ１に示すように、ヒットチェック対象となる２つの三角形ＡＢＣ（第１の図形）、三角形ＤＥＦ（第２の図形）の組み合わせを決める（ステップＳ１）。図２（Ｅ）を例にとれば、三角形６２、７０の組み合わせ、６２、７２の組み合わせ、６６、７０の組み合わせ、６６、７２の組み合わせの中から決める。
【００４３】
次に、一方の三角形ＡＢＣを選択する（ステップＳ２）。そして、この三角形の頂点Ａを直交座標系の原点に、辺ＡＢの方向を直交座標系のＸ軸の方向に、辺ＡＣの方向を直交座標系のＹ軸の方向に、三角形ＡＢＣに垂直な方向を直交座標系のＺ軸の方向に変換する変換マトリクスを作成する（ステップＳ３）。より具体的には図５のＡ１において、辺ＡＢの方向単位ベクトルＶ０をＸ軸の方向単位ベクトルＥＸに、辺ＡＣの方向単位ベクトルＶ１をＹ軸の方向単位ベクトルＥＹに、三角形ＡＢＣに垂直な単位ベクトルＶ２をＺ軸の方向単位ベクトルＥＺに変換する変換マトリクスを作成する。
【００４４】
次に、図５のＡ２に示すように、作成した変換マトリクスにより三角形ＡＢＣ及び三角形ＤＥＦを座標変換して、三角形ＯＢ’Ｃ’（第３の図形）、三角形Ｄ’Ｅ’Ｆ’（第４の図形）を得る（ステップＳ４）。
【００４５】
次に、三角形Ｄ’Ｅ’Ｆ’の辺Ｄ’Ｅ’、辺Ｅ’Ｆ’、辺Ｆ’Ｄ’が三角形ＯＢ’Ｃ’と交わる（三角形ＯＢ’Ｃ’を通過する）か否かを判定する（ステップＳ５）。
【００４６】
ここで、例えば辺（線分）Ｄ’Ｅ’が、三角形ＯＢ’Ｃ’と交わるか否かは次のようにして判定できる。即ち、まず、辺Ｄ’Ｅ’とＸＹ平面との交点をＧを求める。そして、次に、この交点Ｇが三角形ＯＢ’Ｃ’内にあるか否かを判定する。
【００４７】
例えば頂点Ｄ’、Ｅ’、交点Ｇの座標を、各々、Ｄ’（Ｄ’x、Ｄ’y、Ｄ’z）、Ｅ’（Ｅ’x、Ｅ’y、Ｅ’z）、Ｇ（Ｇx、Ｇy、０）とする。
【００４８】
交点ＧのＺ座標は零であるから、辺Ｄ’Ｅ’がＸＹ平面と交わっているか否かは、Ｄ’zとＥ’zの符号が異なるか否かを調べることで判定できる。もし符号が同一なら交わっていないと判定できる。
【００４９】
一方、符号が異なっている場合（或いは少なくともＤ’z、Ｅ’zの一方が零の場合）は、交点Ｇは、辺Ｄ’Ｅ’の長さに対する線分Ｄ’Ｇの長さの比率ｍにより算出できる。この比率ｍは下式のようになる。
【００５０】
【数１】
2006334421.tif 000003
【００５１】
この比率ｍを利用すれば、求める交点Ｇの座標は、
Ｇx＝ｍ（Ｅ’x−Ｄ’x）＋Ｄ’x
Ｇy＝ｍ（Ｅ’y−Ｄ’y）＋Ｄ’y            （４）
となる。
【００５２】
次に、交点Ｇが三角形ＯＢ’Ｃ’内にあるかを否かを判定する。ここで、頂点Ｏ、Ｂ’、Ｃ’のＸＹ平面での座標を、各々、Ｏ（０、０）、Ｂ’（Ｂ’x、０）、Ｃ’（０、Ｃ’y）とし、更に、Ｂ’x＞０、Ｃ’y＞０とする。三角形ＯＢ’Ｃ’内に、交点Ｇ（Ｇx、Ｇy）が存在するかどうかは、
０≦Ｇx≦Ｂ’x  
０≦Ｇy≦Ｃ’y                            （５）
ＧxＣ’y＋ＧyＢ’x≦Ｂ’xＣ’y
の式を満たすかどうかにより判定できる。満たせば交点Ｇは三角形ＯＢ’Ｃ’内に存在していることになる。
【００５３】
図４の説明に戻る。ステップＳ５で、辺Ｄ’Ｅ’、辺Ｅ’Ｆ’、辺Ｆ’Ｄ’が三角形ＯＢ’Ｃ’と交わると判定された場合には、三角形ＡＢＣ、三角形ＤＥＦはヒットしていると判定される（ステップＳ１１）。
【００５４】
一方、交わっていないと判定された場合には、今度は、他方の三角形ＤＥＦを選択する（ステップＳ６）。そして、このように三角形の選び方を交換して、ステップＳ３、Ｓ４、Ｓ５で行われた変換マトリクス作成処理、座標変換処理、交わり判定処理を行う（ステップＳ７、Ｓ８、Ｓ９）。
【００５５】
そして、三角形ＡＢＣの座標変換で得られた三角形Ａ’Ｂ’Ｃ’の辺Ａ’Ｂ’、辺Ｂ’Ｃ’、辺Ｃ’Ａ’が、三角形ＤＥＦの座標変換で得られた三角形ＯＥ’Ｆ’と交わっていると判定された場合には、三角形ＡＢＣ、三角形ＤＥＦはヒットしていると判定される（ステップＳ１１）。一方、交わっていないと判定された場合には、三角形ＡＢＣ、三角形ＤＥＦはヒットしていないと判定される（ステップＳ１０）。
【００５６】
以上のようにして三角形ＡＢＣ、ＤＥＦのヒットチェックが完了する。
【００５７】
以上のように本実施形態によれば、一方の三角形にローカルに設定された直交座標系に、一方及び他方の三角形を座標変換している。そして、本実施形態においては、このような座標変換をしても三角形間の交わり関係は変化しないことに着目している。このようにすることで、上式（３）、（４）、（５）に示すように、非常に負荷が軽く高速な演算で、ステップＳ５、Ｓ９の処理を実現できるようになる。従って、ヒットチェックの処理負荷を大幅に軽減でき、高速なヒットチェックを実現できるようになる。
【００５８】
次に、三角形と球との間でのヒットチェックの詳細について図６のフローチャートを用いて説明する。
【００５９】
まず、図７のＢ１に示すように、ヒットチェック対象となる三角形ＡＢＣと球Ｓ（中心Ｐ、半径Ｒ）の組み合わせを決める（ステップＵ１）。
【００６０】
次に、三角形ＡＢＣの頂点Ａを直交座標系の原点に、辺ＡＢの方向を直交座標系のＸ軸の方向に、辺ＡＣの方向を直交座標系のＹ軸の方向に、三角形ＡＢＣに垂直な方向を直交座標系のＺ軸の方向に変換する変換マトリクスを作成する（ステップＵ２）。
【００６１】
次に、図７のＢ２に示すように、作成した変換マトリクスにより三角形ＡＢＣ及び球Ｓ（実際には中心Ｐ）を座標変換して、三角形ＯＢ’Ｃ’、球Ｓ’（実際には中心Ｐ’）を得る（ステップＵ３）。
【００６２】
次に、座標変換された中心Ｐ’からＸＹ平面への距離ＰＬが、元の球Ｓの半径Ｒよりも大きいか否かを判定する（ステップＵ４）。そして、大きい場合には、三角形ＡＢＣと球Ｓはヒットしていないと判定する（ステップＵ５）。このように、元の球Ｓの半径Ｒを用いて判定できるのは、ステップＵ２で作成された変換マトリクスではＺ軸方向の長さは不変となり、距離ＰＬが半径Ｒよりも大きい場合には、中心ＰからＸＹ平面への距離もＲよりも大きいと考えられるからである。
【００６３】
距離ＰＬが半径Ｒ以下の場合には、Ｐ’からＸＹ平面に下ろした垂線の足ＰＦが、三角形ＯＢ’Ｃ’内にあるか否かを判定する（ステップＵ６）。
【００６４】
そして図７のＢ２に示すようにＰＦが三角形ＯＢ’Ｃ’内にある場合には、三角形ＡＢＣと球Ｓはヒットしていると判定する（ステップＵ７）。ＰＬが半径Ｒ以下であり、且つ、ＰＦが三角形ＯＢ’Ｃ’内にあるからである。
【００６５】
一方、図７のＢ３に示すようにＰＦが三角形ＯＢ’Ｃ’内にない場合には、ＰＦが含まれる象限に応じた処理を行う（ステップＵ８）。
【００６６】
より具体的には、図８に示すように、ＰＦが、三角形ＯＢ’Ｃ’により区画される象限の中の第１の象限にある場合には、元の球Ｓ（中心Ｐ）の中に元の三角形ＡＢＣの辺（線分）ＢＣが含まれるか否かを調べる。そして、含まれる場合には三角形ＡＢＣと球Ｓはヒットしたと判定し、含まれない場合にはヒットしていないと判定する。
【００６７】
また、ＰＦが第２の象限ににある場合には、元の球Ｓの中に元の三角形ＡＢＣの辺ＡＣが含まれるか否かを調べる。そして、含まれる場合には三角形ＡＢＣと球Ｓはヒットしたと判定し、含まれない場合にはヒットしていないと判定する。
【００６８】
また、ＰＦが第３の象限にある場合には、元の球Ｓの中心Ｐと元の三角形ＡＢＣの頂点Ａとの距離が半径Ｒ以下か否かを調べる。そして、Ｒ以下の場合にはヒットしたと判定し、Ｒよりも大きい場合にはヒットしていないと判定する。
【００６９】
また、ＰＦが、第４の象限ににある場合には、元の球Ｓの中に元の三角形ＡＢＣの辺ＡＢが含まれるか否かを調べる。そして、含まれる場合には三角形ＡＢＣと球Ｓはヒットしたと判定し、含まれない場合にはヒットしていないと判定する。
【００７０】
なお、例えば辺ＡＢが球Ｓに含まれるか否かは以下のようにして判定できる。
【００７１】
例えば頂点Ａ、Ｂの座標をＡ（Ａx、Ａy、Ａz）、Ｂ（Ｂx、Ｂy、Ｂz）とし、球Ｓの中心Ｐの座標をＰ（Ｐx、Ｐy、Ｐz）とし、半径をＲとする。
【００７２】
まず、中心Ｐと辺ＡＢの距離Ｌを求める。この距離Ｌは、辺ＡＢの方向単位ベクトルとベクトルＡＰとの外積の大きさを求めることで得ることができる。そして、この距離Ｌが半径Ｒよりも大きい場合には、辺ＡＢは球Ｓに含まれていないとみなすことができる。
【００７３】
一方、距離Ｌが半径Ｒ以下の場合には、中心Ｐから辺ＡＢに下ろした垂線の足ＰＦ２を求める。実際には、この垂線の足ＰＦ２が辺ＡＢ上にあるか否かを知りたいので、辺ＡＢに対してＰＦ２がどの位置にあるかを示す比率ｎを求める。この比率ｎは、
【００７４】
【数２】
2006334421.tif 000004
【００７５】
と表すことができる。
【００７６】
そして、０≦ｎ≦１ならば、辺ＡＢは球Ｓに含まれているとみなせる。一方、ｎ＜０ならば、頂点Ａと中心Ｐとの距離を求め、ｎ＞１ならば、頂点Ｂと中心Ｐとの距離を求める。そして、これらの距離のいずれかがＲ以下の場合には、辺ＡＢは球Ｓに含まれるとみなし、そうでない場合には含まれないとみなす。
【００７７】
なお以上では、垂線の足ＰＦが三角形ＯＢ’Ｃ’内にない場合に、元の球Ｓの中心Ｐと元の三角形ＡＢＣの各辺、各頂点との位置関係を調べている。しかしながら、本発明の手法はこれに限定されず、例えば、座標変換後の中心Ｐ’及び三角形ＯＢ’Ｃ’の間の位置関係を調べるようにしてもよい。
【００７８】
次に、変換マトリクスの作成処理（例えば図４のステップＳ３、図６のステップＵ２）の具体例について図９のフローチャートを用いて説明する。
【００７９】
まず、辺ＡＢ、ＡＣが一直線上にあるか否かを調べる（ステップＶ１）。そして辺ＡＢ、ＡＣが一直線上にある場合には（頂点Ａ、Ｂ、Ｃが一直線上にある場合には）、頂点Ｂ又はＣの座標を変更する（ステップＶ２）。
【００８０】
例えば図１０（Ａ）に示すように、キャラクタ４４が剣４６を前に突き出した場合を考える。この場合には、剣４６を振ることにより生成される面が直線になる可能性がある。即ち、図１０（Ｂ）に示すように、三角形の辺ＡＢ、ＡＣが一直線上になる場合がある。この時、本実施形態では、図１０（Ｃ）に示すように、例えば頂点Ｂの座標を微少に変化させる。このようにすることで、擬似的な三角形の形成が可能になり、以後のヒットチェック処理を適正に行うことが可能になる。
【００８１】
さて、辺ＡＢの方向をＸ軸の方向に、辺ＡＣの方向をＹ軸の方向に、三角形ＡＢＣに垂直な方向をＺ軸の方向に変換する変換マトリクスＴを作成する場合を考える。
【００８２】
ここで、辺ＡＢの方向単位ベクトルをＶ０（ｖ０ｘ、ｖ０ｙ、ｖ０ｚ）とし、辺ＡＣの方向単位ベクトルをＶ１（ｖ１ｘ、ｖ１ｙ、ｖ１ｚ）とする。すると、三角形ＡＢＣに垂直なベクトルはＶ０×Ｖ１で表せる。このベクトルを正規化したものをＶ２（ｖ２ｘ、ｖ２ｙ、ｖ２ｚ）とする。すると、求めるべき変換マトリクスＴは、
【００８３】
【数３】
2006334421.tif 000005
【００８４】
となる。しかしながら、３行３列の逆行列を求める演算は一般化されてはいるが、演算負荷が大きい。そこで、本実施形態では以下のような手法で変換マトリクスＴを求める。
【００８５】
まず、辺ＡＢの方向単位ベクトルＶ０をＸ軸の方向単位ベクトルＥＸに、三角形ＡＢＣに垂直な方向単位ベクトルＶ２をＺ軸の方向単位ベクトルＥＺに変換する変換マトリクスＲを作成する（ステップＶ３）。この変換マトリクスＲは、
【００８６】
【数４】
2006334421.tif 000006
【００８７】
と表すことができる。なお、（ｖ０×ｖ２）ｘ、（ｖ０×ｖ２）ｙ、（ｖ０×ｖ２）zは、各々、Ｖ０とＶ２の外積Ｖ０×Ｖ２のＸ成分、Ｙ成分、Ｚ成分を表す。
【００８８】
さて、Ｖ２は三角形ＡＢＣに垂直であり、Ｖ０は辺ＡＢと同一直線上にある。従って、上記の変換マトリクスＲにより、Ｖ１はＸＹ平面上に移ることになる。
【００８９】
次に、ベクトル（１、０）（ＸＹ平面上でのＸ軸の方向単位ベクトルＥＸに相当）についてはそのまま（１、０）に変換し、ＸＹ平面上の任意の単位ベクトル（ａ、ｂ）についてはベクトル（０、１）（ＸＹ平面上でのＹ軸の方向単位ベクトルＥＹに相当）に変換する変換マトリクスを考える（平面上の変換なので２行２列の行列で考える）。この変換マトリクスは、
【００９０】
【数５】
2006334421.tif 000007
【００９１】
と表すことができる。
【００９２】
なおｂ＝０の場合には上式（９）の変換マトリクスを求めることができない。しかしながら、このｂ＝０というのは、辺ＡＢ、ＡＣが同一直線上にあることを意味し、この場合には、ステップＶ１、Ｖ２に示すように、頂点Ｂ又はＣの座標が変更される。従って、ｂ＝０でなくなり、問題なく上式（９）の変換マトリクスを求めることができるようになる。
【００９３】
上式（９）の変換マトリクスを、Ｚ軸方向の長さを不変のままとしながら３行３列の行列に拡張すると、
【００９４】
【数６】
2006334421.tif 000008
【００９５】
と表される変換マトリクスＭを得ることができる（ステップＶ４）。
【００９６】
上式（８）の変換マトリクスＲにより、辺ＡＣの方向単位ベクトルＶ１はＸＹ平面上の任意の単位ベクトル（ａ、ｂ）に変換される。そして、上式（１０）の変換マトリクスＭにより、このＸＹ平面上の任意の単位ベクトル（ａ、ｂ）は、Ｙ軸の方向単位ベクトルＥＹに変換されることになる。
【００９７】
即ち、求めるべき変換マトリクスＴは、上記の変換マトリクスＲとＭの積をとる（Ｔ＝Ｍ×Ｒ）ことで得ることができる（ステップＶ５）。
【００９８】
以上のようにすれば、非常に少ない処理負担で変換マトリクスＴを求めることが可能になる。
【００９９】
３．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図１１を用いて説明する。同図に示す装置では、ＣＰＵ１０００、ＲＯＭ１００２、ＲＡＭ１００４、情報記憶媒体１００６、音生成ＩＣ１００８、画像生成ＩＣ１０１０、Ｉ／Ｏポート１０１２、１０１４が、システムバス１０１６により相互にデータ送受信可能に接続されている。そして前記画像生成ＩＣ１０１０にはディスプレイ１０１８が接続され、音生成ＩＣ１００８にはスピーカ１０２０が接続され、Ｉ／Ｏポート１０１２にはコントロール装置１０２２が接続され、Ｉ／Ｏポート１０１４には通信装置１０２４が接続されている。
【０１００】
情報記憶媒体１００６は、プログラム、表示物を表現するための画像データ、音データ等が主に格納されるものである。例えば家庭用ゲーム装置ではゲームプログラム等を格納する情報記憶媒体としてＣＤ−ＲＯＭ、ゲームカセット、ＤＶＤ等が用いられる。また業務用ゲーム装置ではＲＯＭ等のメモリが用いられ、この場合には情報記憶媒体１００６はＲＯＭ１００２になる。
【０１０１】
コントロール装置１０２２はゲームコントローラ、操作パネル等に相当するものであり、プレーヤがゲーム進行に応じて行う判断の結果を装置本体に入力するための装置である。
【０１０２】
情報記憶媒体１００６に格納されるプログラム、ＲＯＭ１００２に格納されるシステムプログラム（装置本体の初期化情報等）、コントロール装置１０２２によって入力される信号等に従って、ＣＰＵ１０００は装置全体の制御や各種データ処理を行う。ＲＡＭ１００４はこのＣＰＵ１０００の作業領域等として用いられる記憶手段であり、情報記憶媒体１００６やＲＯＭ１００２の所与の内容、あるいはＣＰＵ１０００の演算結果等が格納される。また本実施形態を実現するための論理的な構成を持つデータ構造は、このＲＡＭ又は情報記憶媒体上に構築されることになる。
【０１０３】
更に、この種の装置には音生成ＩＣ１００８と画像生成ＩＣ１０１０とが設けられていてゲーム音やゲーム画像の好適な出力が行えるようになっている。音生成ＩＣ１００８は情報記憶媒体１００６やＲＯＭ１００２に記憶される情報に基づいて効果音やバックグラウンド音楽等のゲーム音を生成する集積回路であり、生成されたゲーム音はスピーカ１０２０によって出力される。また、画像生成ＩＣ１０１０は、ＲＡＭ１００４、ＲＯＭ１００２、情報記憶媒体１００６等から送られる画像情報に基づいてディスプレイ１０１８に出力するための画素情報を生成する集積回路である。なおディスプレイ１０１８として、いわゆるヘッドマウントディスプレイ（ＨＭＤ）と呼ばれるものを使用することもできる。
【０１０４】
また、通信装置１０２４はゲーム装置内部で利用される各種の情報を外部とやりとりするものであり、他のゲーム装置と接続されてゲームプログラムに応じた所与の情報を送受したり、通信回線を介してゲームプログラム等の情報を送受することなどに利用される。
【０１０５】
そして図１〜図３、図５、図７、図８、図１０（Ａ）、（Ｂ）、（Ｃ）で説明した種々の処理は、図４、図６、図９のフローチャートに示した処理等を行うプログラムを格納した情報記憶媒体１００６と、該プログラムに従って動作するＣＰＵ１０００、画像生成ＩＣ１０１０、音生成ＩＣ１００８等によって実現される。なお画像生成ＩＣ１０１０、音生成ＩＣ１００８等で行われる処理は、ＣＰＵ１０００あるいは汎用のＤＳＰ等によりソフトウェア的に行ってもよい。
【０１０６】
図１２（Ａ）に、本実施形態を業務用ゲーム装置に適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、レバー１１０２、ボタン１１０４を操作してゲームを楽しむ。装置に内蔵されるＩＣ基板１１０６には、ＣＰＵ、画像生成ＩＣ、音処理ＩＣ等が実装されている。そして、第１の図形の第１の辺の方向を直交座標系のＸ軸の方向に変換し、第１の図形の第２の辺の方向を直交座標系のＹ軸の方向に変換し、第１の図形に垂直な方向を直交座標系のＺ軸の方向に変換する変換マトリクスＴを作成するための情報、変換マトリクスＴにより第１、第２の図形を直交座標系の第３、第４の図形に座標変換するための情報、第３、第４の図形の間での交わり関係を判定するための情報等は、ＩＣ基板１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、これらの情報を格納情報と呼ぶ。これらの格納情報は、上記の種々の処理を行うためのプログラムコード、画像情報、音情報、表示物の形状情報、テーブルデータ、リストデータ、プレーヤ情報等の少なくとも１つを含むものである。
【０１０７】
図１２（Ｂ）に、本実施形態を家庭用のゲーム装置に適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２、１２０４を操作してゲームを楽しむ。この場合、上記格納情報は、本体装置に着脱自在な情報記憶媒体であるＣＤ−ＲＯＭ１２０６、ＩＣカード１２０８、１２０９等に格納されている。
【０１０８】
図１２（Ｃ）に、ホスト装置１３００と、このホスト装置１３００と通信回線１３０２を介して接続される端末１３０４-1〜１３０４-nとを含むゲーム装置に本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。端末１３０４-1〜１３０４-nが、ＣＰＵ、画像生成ＩＣ、音処理ＩＣを有し、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-1〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-1〜１３０４-nに伝送し端末において出力することになる。
【０１０９】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１１０】
例えば、本実施形態では第１の図形が三角形、第２の図形が三角形又は球である場合について説明したが、本発明はこれに限定されない。例えば第１の図形は少なくとも２辺を有する図形であればよく、第２の図形としては三角形、球以外にも種々の図形を採用できる。
【０１１１】
また、本実施形態では、剣と剣、剣とキャラクタのヒット判定に本発明を適用した場合について説明したが、本発明の適用範囲はこれに限定されない。例えば、剣以外の武器同士やその武器とキャラクタのヒットチェック、キャラクタの腕や足同士や、その腕や足とキャラクタとのヒットチェックにも適用できる。また、キャラクタと弾とのヒットチェックや、車と壁とのヒットチェックにも適用できる。
【０１１２】
また本実施形態では、本発明を剣を用いた格闘技ゲームに適用した場合について説明したが、本発明はこれに限らず種々のゲーム（ロボット対戦ゲーム、ロールプレイングゲーム、シューティングゲーム、スポーツゲーム、競争ゲーム等）に適用できる。
【０１１３】
また本発明は、家庭用、業務用のゲーム装置のみならず、シミュレータ、多数のプレーヤが参加する大型アトラクション装置、パーソナルコンピュータ、マルチメディア端末、ゲーム画像を生成するシステム基板等の種々のゲーム装置にも適用できる。
【図面の簡単な説明】
【０１１４】
【図１】本実施形態のゲーム装置の機能ブロック図の一例である。
【図２】図２（Ａ）〜図２（Ｆ）は、剣と剣とのヒットチェックについて説明するための図である。
【図３】剣とキャラクタのヒットチェックについて説明するための図である。
【図４】三角形と三角形のヒットチェックについての詳細な処理例を説明するためのフローチャートである。
【図５】三角形と三角形のヒットチェックについて説明するための図である。
【図６】三角形と球のヒットチェックについての詳細な処理例を説明するためのフローチャートである。
【図７】三角形と球のヒットチェックについて説明するための図である。
【図８】三角形ＯＢ’Ｃ’により区画される象限について説明するための図である。
【図９】変換マトリクス作成の詳細な処理例を説明するためのフローチャートである。
【図１０】図１０（Ａ）、（Ｂ）、（Ｃ）は、三角形の２辺が一直線上にある場合についての処理について説明するための図である。
【図１１】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図１２】図１２（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態の装置の例を示す図である。
【符号の説明】
【０１１５】
１０    操作部
１２    表示部
１００  処理部
１１０  ゲーム演算部
１１２  移動体演算部
１１４  モーション再生部
１２０  ヒットチェック部
１２２  変換マトリクス作成部
１２４  座標変換部
１２６  交わり判定部
１２８  座標変更部
１５０  画像生成部
１８０  記憶部
１８２  モーション記憶部
１９０  情報記憶媒体
【図１】
2006334421.tif 000009
【図２】
2006334421.tif 000010
【図３】
2006334421.tif 000011
【図４】
2006334421.tif 000012
【図５】
2006334421.tif 000013
【図６】
2006334421.tif 000014
【図７】
2006334421.tif 000015
【図８】
2006334421.tif 000016
【図９】
2006334421.tif 000017
【図１０】
2006334421.tif 000018
【図１１】
2006334421.tif 000019
【図１２】
2006334421.tif 000020