(57)【要約】【課題】ゲーム計算に先立って、ゲーム領域に入る可能性のあるキャラクタに就いて、簡単な演算で、そのキャラクタがゲーム領域に入る可能性がないか否かを判定する方法を提供することにある。そして、その可能性がないと判定されたキャラクタについては、ゲーム演算を行わないようにする。【解決手段】ゲーム領域を囲む６面について、それぞれその面を含む平面より外側の領域、６領域Ｒ−Ｐ、Ｒ＋Ｐ、Ｒ−Ｑ、Ｒ＋Ｑ、Ｒ−Ｒ、Ｒ＋Ｒを定義し、ローカル座標系において、キャラクタを囲むバウンディングボックスの８頂点を求め、それらの座標をゲームプログラムに従って、ゲームフィールド座標に変換し、それらの頂点の総てが、上記６領域の何れか一つに存在すると見られるか否かにより、当該キャラクタが、少なくとも部分的にゲーム領域に含まれる可能性があるか否かを判別し得るようにする。【選択図】図１
2004290260.tif 000002
【特許請求の範囲】
【請求項１】
下記のステップから成るソフトウエアルーチンを実行することを特徴とする、一つのキャラクタがゲームフィールド内の画面に表示するべき領域（以下、ゲーム領域と言う。）内に出現するか否かをチェックする方法。
（１）  ゲーム領域に関連し下記の６領域、即ち、
領域Ｒ−Ｐ：ゲーム領域座標系（Ｐ、Ｑ、Ｒ）のＰ軸負の方向にある境界面を画成する平面Ｐ−ＰよりＰ軸負の方向の領域。
領域Ｒ＋Ｐ：ゲーム領域座標系（Ｐ、Ｑ、Ｒ）のＰ軸正の方向にある境界面を画成する平面Ｐ＋ＰよりＰ軸正の方向の領域。
領域Ｒ−Ｑ：ゲーム領域座標系（Ｐ、Ｑ、Ｒ）のＱ軸負の方向にある境界面を画成する平面Ｐ−ＱよりＱ軸負の方向の領域。
領域Ｒ＋Ｑ：ゲーム領域座標系（Ｐ、Ｑ、Ｒ）のＱ軸正の方向にある境界面を画成する平面Ｐ＋ＹよりＱ軸正の方向の領域。
領域Ｒ−Ｒ：ゲーム領域座標系（Ｐ、Ｑ、Ｒ）のＲ軸負の方向にある境界面を画成する平面Ｐ−ＺよりＲ軸負の方向の領域。
領域Ｒ＋Ｒ：ゲーム領域座標系（Ｐ、Ｑ、Ｒ）のＲ軸正の方向にある境界面を画成する平面Ｐ＋ＺよりＲ軸負の方向の領域。
を定義するステップ。
（２）  チェックされるキャラクタの輪郭のローカル座標（Ｕ、Ｖ、Ｗ）における最大値、Ｕ１、Ｖ１及びＷ１並びに最小値Ｕ０、Ｖ０及びＷ０を得るステップ。
（３）  ローカル座標系における上記最大値、Ｕ１、Ｖ１及びＷ１並びに最小値Ｕ０、Ｖ０及びＷ０により定義されるバウンディングボックスの８頂点、（Ｕ０、Ｖ０、Ｗ０）、（Ｕ１、Ｖ０、Ｗ０）、（Ｕ０、Ｖ１、Ｗ０）、（Ｕ０、Ｖ０、Ｗ１）、（Ｕ１、Ｖ１、Ｗ０）、（Ｕ０、Ｖ１、Ｗ１）、（Ｕ１、Ｖ０、Ｗ１）及び（Ｕ１、Ｖ１、Ｗ１）を得るステップ。
（４）  上記８頂点のローカル座標を、ゲームフィールド座標（Ｘ、Ｙ、Ｚ）に変換し、８頂点（Ｘ０、Ｙ０、Ｚ０）、（Ｘ１、Ｙ０、Ｚ０）、（Ｘ０、Ｙ１、Ｚ０）、（Ｘ０、Ｙ０、Ｚ１）、（Ｘ１、Ｙ１、Ｚ０）、（Ｘ０、Ｙ１、Ｚ１）、（Ｘ１、Ｙ０、Ｚ１）及び（Ｘ１、Ｙ１、Ｚ１）を得るステップ。
（５）  命題「ゲームフィールド上で、上記８頂点が総て上記６領域のうちの１領域に存在すると見られる」がｔｒｕｅであるか否かをチェックし、
（６）  ｔｒｕｅであるときは、当該キャラクタは部分的にもゲーム領域に含まれることはないと判定し、
（７）  ｆａｌｓｅである場合には、当該キャラクタの一部がゲーム領域に含まれる可能性があると判定する。
【請求項２】
命題「ゲームフィールド上で、上記８頂点が総て上記６領域のうちの１領域に存在すると見られる」が、ｔｒｕｅであるか否かをチェックするソフトウエアルーチンが下記のステップからなる、請求項１に記載の、キャラクタがゲーム領域内にあるか否かを判定する方法。
（１）  回数カウンタをリセットする  （Ｓ１）。
（２）  ６個のメモリＭ−Ｐ、Ｍ＋Ｐ、Ｍ−Ｑ、Ｍ＋Ｑ、Ｍ−Ｒ及びＭ＋Ｒ（以下単に６個のメモリと言う。）にそれぞれ論理数１を記録する  （Ｓ２）。
但し、これらのメモリの論理数１及び０は、点（Ｘ、Ｙ、Ｚ）について以下の事象を示すものとする。
メモリＭ−Ｐの論理数１：点（Ｘ、Ｙ、Ｚ）がゲーム領域のＰ軸負の方向にある境界面を画成する平面Ｓ−ＰよりＰ軸負の方向の領域（以下、領域Ｒ−Ｐと言う。）に存在する。
メモリＭ−Ｐの論理数０：点（Ｘ、Ｙ、Ｚ）が、領域Ｒ−Ｐには存在しない。
メモリＭ＋Ｐの論理数１：点（Ｘ、Ｙ、Ｚ）が、ゲーム領域のＰ軸正の方向にある境界面を画成する平面Ｓ＋ＰよりＰ軸正の方向の領域（以下、領域Ｒ＋Ｐと言う。）に存在する。
メモリＭ＋Ｐの論理数０：点（Ｘ、Ｙ、Ｚ）が、領域Ｒ＋Ｐには存在しない。
メモリＭ−Ｑの論理数１：点（Ｘ、Ｙ、Ｚ）が、ゲーム領域のＱ軸負の方向にある境界面を画成する平面Ｓ−ＱよりＱ軸負の方向の領域（以下、領域Ｒ−Ｑと言う。）に存在する。
メモリＭ−Ｑの論理数０：点（Ｘ、Ｙ、Ｚ）が、領域Ｒ−Ｑには存在しない。
メモリＭ＋Ｑの論理数１：点（Ｘ、Ｙ、Ｚ）が、ゲーム領域のＱ軸正の方向にある境界面を画成する平面Ｓ＋ＱよりＹ軸正の方向の領域（以下、領域Ｒ＋Ｑと言う。）に存在する。
メモリＭ＋Ｑの論理数０：点（Ｘ、Ｙ、Ｚ）が、領域Ｒ＋Ｑには存在しない。
メモリＭ−Ｒの論理数１：点（Ｘ、Ｙ、Ｚ）が、ゲーム領域のＲ軸負の方向にある境界面を画成する平面Ｓ−ＲよりＹ軸正の方向の領域に領域（以下、領域Ｒ−Ｒと言う。）に存在する。
メモリＭ−Ｒの論理数０：点（Ｘ、Ｙ、Ｚ）が、領域Ｒ−Ｒには領域に存在しない。
メモリＭ＋Ｒの論理数１：点（Ｘ、Ｙ、Ｚ）が、ゲーム領域のＲ軸正の方向にある境界面を画成する平面Ｓ＋ＲよりＹ軸正の方向の領域に領域（以下、領域Ｒ＋Ｒと言う。）に存在する。
メモリＭ＋Ｒの論理数０：点（Ｘ、Ｙ、Ｚ）が、領域Ｒ＋Ｒには領域に存在しない。
（３）  未チェックの頂点の一つ（ＸＩ、ＹＪ、ＺＫ）を選択するステップ。
（４）  命題「頂点（ＸＩ、ＹＪ、ＺＫ）が領域Ｒ−Ｐに存在する。」がｔｒｕｅであるか否かをチェックし、
ｔｒｕｅ  であるときは、６個のメモリの記録値を、それぞれ論理数１、０、１、１、１及び１との論理積に置き換え、
ｆａｌｓｅ  である場合、命題「頂点（ＸＩ、ＹＪ、ＺＫ）が領域Ｒ＋Ｐに存在する。」がｔｒｕｅであるか否かをチェックし、
ｔｒｕｅ  であるときは、６個のメモリの記録値を、それぞれ論理数０、１、１、１、１及び１との論理積に置き換え
ｆａｌｓｅ  である場合、６個のメモリの記録値を、それぞれ論理数０、０、１、１、１及び１との論理積に置き換える。
（５）  次いで、命題「頂点（（ＸＩ、ＹＪ、ＺＫ）が領域Ｒ−Ｑに存在する。」がｔｒｕｅであるか否かをチェックし、
ｔｒｕｅ  であるときは、６個のメモリの記録値を、それぞれ論理数１、１、１、０、１及び１との論理積に置き換え、
ｆａｌｓｅ  である場合、命題「頂点（ＸＩ、ＹＪ、ＺＫ）が領域Ｒ＋Ｑに存在する。」がｔｒｕｅであるか否かをチェックし、
ｔｒｕｅ  であるときは、６個のメモリの記録値を、それぞれ論理数１、１、０、１、１及び１との論理積に置き換え
ｆａｌｓｅ  である場合、６個のメモリの記録値を、それぞれ論理数１、１、０、０、１及び１との論理積に置き換える。
（６）  次いで、命題「頂点（（ＸＩ、ＹＪ、ＺＫ）が領域Ｒ−Ｒに存在する。」がｔｒｕｅであるか否かをチェックし、
ｔｒｕｅ  であるときは、６個のメモリの記録値を、それぞれ論理数１、１、１、１、１及び０との論理積に置き換え、
ｆａｌｓｅ  である場合、命題「頂点（ＸＩ、ＹＪ、ＺＫ）が領域Ｒ＋Ｒに存在する。」がｔｒｕｅであるか否かをチェックし、
ｔｒｕｅ  であるときは、６個のメモリの記録値を、それぞれ論理数１、１、１、１、０及び１との論理積に置き換え
ｆａｌｓｅ  である場合、６個のメモリの記録値を、それぞれ論理数１、１、１、１、０、及び０との論理積に置き換える。
（７）  次いで、命題「総ての頂点がチェックされた」をチェックし、
ｆａｌｓｅ  である場合は、（４）に戻る。
（８）  前項の命題がｔｒｕｅである場合、命題「６個のメモリの記録値が総て論理数０である」をチェックし、
ｔｒｕｅ  であるときは、少なくとも当該キャラクタの一部が、ゲーム領域内にあるものと判定して、ルーチンを終了し、
ｆａｌｓｅ  である場合、当該キャラクタは、ゲーム領域内にないものと判定して、ルーチンを終了する。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ビデオゲーム機に関し、特に、ビデオゲーム機においてゲームフィールド内のキャラクタがゲーム領域内にあるか否かを簡単に判定しゲーム演算を合理化する方法に関する。
【０００２】
【従来の技術】
ある種のビデオゲーム機では、広い仮想空間内に多数のキャラクタを配置して３次元ゲームフィールドを構成するとともに、そのゲームフィールドの一部に設定したゲーム領域内の状景を二次元画像に変換してディスプレイし、キャラクタの一部をプレイヤーに操作させ、ゲームを進行させるようになっている。
このゲーム領域は、プレイヤーの視点から見て、ディスプレイスクリーンに表示されるべきゲームフィールド上の領域であり、プレイヤーの視界内に捉えられる領域である。
これは、ゲームフィールドとプレイヤーの視点との間にディスプレイスクリーンと同形の窓を設け、その窓を通して見られる４角錐状の視界内領域を、スクリーン面に平行な手前側限界面と、奥側限界面で仕切って得られる６面体領域である。
【０００３】
ゲームフィールドに配置されるキャラクターは、例えば、建物、道路、草木、土や岩、山、川、池、車、動物、人物などである。
実施のゲーム演算では、このゲーム領域に少なくとも一部が入るキャラクタの総てについて、演算を行い、ディスプレイに表示する必要があるが、キャラクタが部分的にもゲーム領域に入るか否かは、計算をして見なければ判らなかった。
そのため、ゲーム領域内のみならず、その周辺に存在する総てのキャラクタについて計算が行われていたので、ゲーム領域内には存在せず、全くゲーム演算の必要のないキャラクタについても計算が行なわれていた。
【０００４】
これらの計算は全く無駄なものであるので、このような無駄な計算を回避するため、ゲーム領域を一つのボックスと見立て、各キャラクタのバウンディングボックスとゲーム領域との交差をチェックし、両者が交差しているキャラクタに就いてのみゲーム演算を行なう技術が提案された。然しながら、この方法も、キャラクタのバウンディングボックスの１２本の稜の総てについて、それらがゲーム領域と交差するかどうかをチェックする必要があるため、やはり相当な計算が必要であり、そのため、より簡単な計算方法が求められていた。
【０００５】
【発明が解決しようとする課題】
本発明は上記の問題を解決するためなされたものであり、その目的とするところは、ゲーム計算に先立って、ゲーム領域に内外のキャラクタに就いて、簡単な演算で、そのキャラクタがゲーム領域に入る可能性がないか否かを判定する方法を提供することにある。
そして、その可能性がないと判定されたキャラクタについては、ゲーム演算を行わないようにする。
【０００６】
【課題を解決するための手段】
上記の課題は、ＵＶＷローカル座標系において、各一対のＵＶ平面、ＶＷ平面及びＷＵ平面から成り、キャラクタを囲む最小の６面体（以下、そのキャラクタのバウンディングボックスと言うものとする。）の８頂点を求め、それらの座標をゲームフィールド座標に変換し、それらの座標値に簡単な演算を施すことにより、当該キャラクタが、少なくとも部分的にゲーム領域に含まれる可能性があるか否かを判別し得るようにすることにより達成される。換言すれば、本発明は、そのような判定をなし得る論理計算方法を提案するものである。
【０００７】
一つのキャラクタのバウンディングボックスの８頂点の一つがゲーム領域の内部にあれば、そのキャラクタは、少なくともその一部がゲーム領域の内部に含まれる可能性があることは明らかである。
従って、８頂点の総てがゲーム領域の外にある場合において、そのキャラクタの一部がゲーム領域に現れる可能性があるかどうかと言うことが問題となる。
この可能性をチェックするため、以下のようにする。
先ず、ゲーム領域に関連し下記の６領域を定義する。
領域Ｒ−Ｐ：ゲーム領域座標系（Ｐ、Ｑ、Ｒ）のＰ軸負の方向にある境界面を画成する平面Ｐ−ＰよりＰ軸負の方向の領域。
領域Ｒ＋Ｐ：ゲーム領域座標系（Ｐ、Ｑ、Ｒ）のＰ軸正の方向にある境界面を画成する平面Ｐ＋ＰよりＰ軸正の方向の領域。
領域Ｒ−Ｑ：ゲーム領域座標系（Ｐ、Ｑ、Ｒ）のＱ軸負の方向にある境界面を画成する平面Ｐ−ＱよりＱ軸負の方向の領域。
領域Ｒ＋Ｑ：ゲーム領域座標系（Ｐ、Ｑ、Ｒ）のＱ軸正の方向にある境界面を画成する平面Ｐ＋ＹよりＱ軸正の方向の領域。
領域Ｒ−Ｒ：ゲーム領域座標系（Ｐ、Ｑ、Ｒ）のＲ軸負の方向にある境界面を画成する平面Ｐ−ＺよりＲ軸負の方向の領域。
領域Ｒ＋Ｒ：ゲーム領域座標系（Ｐ、Ｑ、Ｒ）のＲ軸正の方向にある境界面を画成する平面Ｐ＋ＺよりＲ軸負の方向の領域。
【０００８】
而して、ゲームフィールド上で、上記８頂点が総て上記６領域のうちの１領域中に存在すると見られるときは、当該キャラクタは部分的にもゲーム領域に含まれることはないと判定し、
然らざる場合には、当該キャラクタの一部はゲーム領域に含まれることがあると判定する。
【０００９】
ここで、「見られる」と言うことの意味を説明する。
上記の領域は、総て、ゲームフィールド世界を１平面で切り取った半空間であるから、これら６領域の一部は二重あるいは三重に重畳している。
ゲームフィールド上の一点（Ｘ、Ｙ、Ｚ）は何れか一つの領域Ａのみに属するときもあるが、二つの領域Ａ、Ｂが重複している領域にあるときは、その頂点は、領域Ａに含まれると見ることもでき、領域Ｂに含まれると見ることもできると言うことである。
三つの領域Ａ、Ｂ、Ｃの重畳する交換に存在する点は、領域Ａにも、Ｂにも、Ｃにも含まれると見ることができる。
そして、バウンディングボックスのある一頂点が領域Ａのみが占める空間にあり、第二の頂点が領域Ａ及びＢの重畳する空間にあり、更に第三の頂点が。領域Ａ、Ｄ、Ｅが重畳する空間にあるものとすると、これらの３頂点は何れも領域Ａにあるものと「見られる」と言うことである。
【００１０】
そして、更に具体的には、上記の命題「ゲームフィールド上で、上記８頂点が総て上記６領域のうちの１領域に存在すると見られる」がｔｒｕｅであるか否かは、例えば下記のステップからなるソフトウエアルーチンを実行することによってチェックすることができる。
（１）  回数カウンタをリセットする。
（２）  ６個のメモリＭ−Ｐ、Ｍ＋Ｐ、Ｍ−Ｑ、Ｍ＋Ｑ、Ｍ−Ｒ及びＭ＋Ｒ（以下単に６個のメモリと言う。）にそれぞれ論理数１を記録する。但し、これらのメモリの論理数１及び０は、点（Ｘ、Ｙ、Ｚ）について以下の事象を示すものとする。
メモリＭ−Ｐの論理数１：点（Ｘ、Ｙ、Ｚ）が、領域Ｒ−Ｐに存在する。
メモリＭ−Ｐの論理数０：点（Ｘ、Ｙ、Ｚ）が、領域Ｒ−Ｐには存在しない。
メモリＭ＋Ｐの論理数１：点（Ｘ、Ｙ、Ｚ）が、領域Ｒ＋Ｐに存在する。
メモリＭ＋Ｐの論理数０：点（Ｘ、Ｙ、Ｚ）が、領域Ｒ＋Ｐには存在しない。
メモリＭ−Ｑの論理数１：点（Ｘ、Ｙ、Ｚ）が、領域Ｒ−Ｑに存在する。
メモリＭ−Ｑの論理数０：点（Ｘ、Ｙ、Ｚ）が、領域Ｒ−Ｑには存在しない。
メモリＭ＋Ｑの論理数１：点（Ｘ、Ｙ、Ｚ）が、領域Ｒ＋Ｑに存在する。
メモリＭ＋Ｑの論理数０：点（Ｘ、Ｙ、Ｚ）が、領域Ｒ＋Ｑには存在しない。
メモリＭ−Ｒの論理数１：点（Ｘ、Ｙ、Ｚ）が、領域Ｒ−Ｒに存在する。
メモリＭ−Ｒの論理数０：点（Ｘ、Ｙ、Ｚ）が、領域Ｒ−Ｒには存在しない。
メモリＭ＋Ｒの論理数１：点（Ｘ、Ｙ、Ｚ）が、領域Ｒ＋Ｒに存在する。
メモリＭ＋Ｒの論理数０：点（Ｘ、Ｙ、Ｚ）が、領域Ｒ＋Ｒには存在しない。
（３）  未チェックの頂点の一つ（ＸＩ、ＹＪ、ＺＫ）を選択するステップ。
（４）  命題「頂点（ＸＩ、ＹＪ、ＺＫ）が領域Ｒ−Ｐに存在する。」がｔｒｕｅであるか否かをチェックし、
ｔｒｕｅ  であるときは、６個のメモリの記録値を、それぞれ論理数１、０、１、１、１及び１との論理積に置き換え、
ｆａｌｓｅ  である場合、命題「頂点（ＸＩ、ＹＪ、ＺＫ）が領域Ｒ＋Ｐに存在する。」がｔｒｕｅであるか否かをチェックし、
ｔｒｕｅ  であるときは、６個のメモリの記録値を、それぞれ論理数０、１、１、１、１及び１との論理積に置き換え、
ｆａｌｓｅ  である場合、６個のメモリの記録値を、それぞれ論理数０、０、１、１、１及び１との論理積に置き換える。
（５）  次いで、命題「頂点（ＸＩ、ＹＪ、ＺＫ）が領域Ｒ−Ｑに存在する。」がｔｒｕｅであるか否かをチェックし、
ｔｒｕｅ  であるときは、６個のメモリの記録値を、それぞれ論理数１、１、１、０、１及び１との論理積に置き換え、
ｆａｌｓｅ  である場合、命題「頂点（ＸＩ、ＹＪ、ＺＫ）が領域Ｒ＋Ｑに存在する。」がｔｒｕｅであるか否かをチェックし、
ｔｒｕｅ  であるときは、６個のメモリの記録値を、それぞれ論理数１、１、０、１、１及び１との論理積に置き換え
ｆａｌｓｅ  である場合、６個のメモリの記録値を、それぞれ論理数１、１、０、０、１及び１との論理積に置き換える。
（６）  次いで、命題「頂点（ＸＩ、ＹＪ、ＺＫ）が領域Ｒ−Ｒに存在する。」がｔｒｕｅであるか否かをチェックし、
ｔｒｕｅ  であるときは、６個のメモリの記録値を、それぞれ論理数１、１、１、１、１及び０との論理積に置き換え、
ｆａｌｓｅ  である場合、命題「頂点（ＸＩ、ＹＪ、ＺＫ）が領域Ｒ＋Ｒに存在する。」がｔｒｕｅであるか否かをチェックし、
ｔｒｕｅ  であるときは、６個のメモリの記録値を、それぞれ論理数１、１、１、１、０及び１との論理積に置き換え、
ｆａｌｓｅ  である場合、６個のメモリの記録値を、それぞれ論理数１、１、１、１、０、及び０との論理積に置き換える。
（７）  次いで、命題「総ての頂点がチェックされた」をチェックし、
ｆａｌｓｅ  である場合は、（３）に戻る。
（８）  前項の命題がｔｒｕｅである場合、命題「６個のメモリの記録値が総て論理数０である」をチェックし、
ｔｒｕｅ  であるときは、少なくとも当該キャラクタの一部が、ゲーム領域内にあるものと判定して、ルーチンを終了し、
ｆａｌｓｅ  である場合、当該キャラクタは、ゲーム領域内にないものと判定して、ルーチンを終了する。
【００１１】
【発明の実施の形態】
以下、説明を簡単にするため、図面により本発明方法の原理を説明する。
尚、図１ないし図３においては、説明を容易にするため、二次元モデルが用いられている。即ち、これらの図で用いる座標系は、何れも二次元のものである。実際のゲーム演算では三次元座標系が用いられるが、本発明の基本原理は、二次元モデルを用いても完全に説明し得るものであり、二次元モデルを用いて説明された技術思想を三次元モデルへ演繹、適用することは、極めて容易であり、何人にもたやすく理解されるものである。
【００１２】
図１は、二次元モデルによる本発明方法の原理説明図、図２は、図１の補足説明図、図３は、二次元ＵＶローカル座標系におけるキャラクタ及びそのバウンディングボックスを示す説明図、図４は図１に示した二次元ゲームフィールドにおいて本発明方法を実施するためのソフトウエアルーチンのフローチャート、図５は、実際の三次元ゲームフィールドにおいて本発明方法を実施するためのソフトウエアルーチンのフローチャートである。
【００１３】
図１及び図２において、１０はゲームフィールド、２０はゲーム領域、３１ないし３７は、ゲームフィールドに配されたキャラクタ、４１ないし４７は、それらのキャラクタ３１ないし３７に対応するバウンディングボックスである。
キャラクタ、４１ないし４７は、対応するバウンディングボックス４１ないし４７と共に、公知のゲーム機のゲーム演算装置により、予め定められたゲームプログラムに従ってゲーム演算処理され、ゲームフィールド１０上に配置され、移動し、変形するものであり、更にこれらのうち、ゲーム領域２０に現れるものが、ディスプレイ装置に表示され、これらによりゲームが進行するものである。
【００１４】
このとき、ゲーム領域２０は、図２に示されているように、ゲームフィールド１０に対し相対的に、平行移動し、回転し、旋回し、縮小又は拡大して、ゲームに表示に必要な画面を切り取る。
但し、ここでは説明の便宜のため、ゲーム領域２０を基準としてゲームフィールド１０を表示することとする。
【００１５】
図３において、３０は二次元ローカル座標系（Ｕ、Ｖ）を用いて描画された一つのキャラクタ、４０は、キャラクタ３０の輪郭のローカル座標系（Ｕ、Ｖ）における最大値Ｕ１、Ｖ１及び最小値Ｕ０、Ｖ０によって定義されるバウンディングボックスである。
キャラクタ３０は、バウンディングボックス４０と共に、ゲームプログラムに従ってゲーム演算処理され、そのバウンディングボックス４０と共に、図１に示したゲームフィールドに配置される。
このとき、このバウンディングボックス４０の４頂点（Ｕ１、Ｖ１）、（Ｕ１、Ｖ０）、（Ｕ０、Ｖ１）、（Ｕ０、Ｖ０）のＵＶ座標は、ゲームフィールド１０の座標系（Ｘ、Ｙ）に変換される。
【００１６】
図１、図２に戻るが、図にはゲーム領域２０とそれに関連して定義される４領域が示されている。
而して、この４領域は以下のように定義されるものである。
領域Ｒ−Ｐ：ゲーム領域２０のＰ軸負の方向の輪郭線およびその延長線より、Ｐ軸負の方向に広がる領域
領域Ｒ＋Ｐ：ゲーム領域２０のＰ軸正の方向の輪郭線およびその延長線より、Ｐ軸正の方向に広がる領域
領域Ｒ−Ｑ：ゲーム領域２０のＱ軸負の方向の輪郭線およびその延長線より、Ｑ軸負の方向に広がる領域
領域Ｒ＋Ｑ：ゲーム領域２０のＱ軸負の方向の輪郭線およびその延長線より、Ｑ軸負の方向に広がる領域
【００１７】
而して、上記バウンディングボックス４０の４頂点（Ｕ１、Ｖ１）、（Ｕ１、Ｖ０）、（Ｕ０、Ｖ１）、（Ｕ０、Ｖ０）が総てゲーム領域内にあれば、そのバウンディングボックス４０内のキャラクタ３０は必ずゲーム領域内に現れる。
４頂点（Ｕ１、Ｖ１）、（Ｕ１、Ｖ０）、（Ｕ０、Ｖ１）、（Ｕ０、Ｖ０）の総てがゲーム領域になくともそのうち、少なくとも一つの頂点がゲーム領域内にあれば、キャラクタ３０の一部がゲーム領域に現れる可能性がある。
【００１８】
上記の何れでもない場合、本発明においては、上記バウンディングボックス４０の４頂点（Ｕ１、Ｖ１）、（Ｕ１、Ｖ０）、（Ｕ０、Ｖ１）、（Ｕ０、Ｖ０）の総てが、上記領域Ｒ−−Ｐ、Ｒ＋Ｐ、Ｒ−Ｑ及びＲ＋Ｑの内の何れか一つに包含されると見られるときは、そのバウンディングボックス４０が収容しているキャラクタ３０が、仮令その一部であっても、ゲーム領域に現れる可能性はないものと判定する。
然らざる場合、即ち、上記の４頂点（Ｕ１、Ｖ１）、（Ｕ１、Ｖ０）、（Ｕ０、Ｖ１）、（Ｕ０、Ｖ０）の総てが上記領域Ｒ−Ｐ、Ｒ＋Ｐ、Ｒ−Ｑ及びＲ＋Ｑの内の何れか一つに包含されると見ることができないとき、更に換言すれば、複数の領域に分かれて存在すると見なければならないときは、そのバウンディングボックス４０が収容しているキャラクタ３０の一部は、ゲーム領域に現れる可能性があると判定するものである。
図１において、キャラクタ３５及び３６のバウンディングボックス４５及び４６の頂点は、総て領域Ｒ＋Ｑにあると見られ、キャラクタ３７のそれらは、総て領域Ｒ＋Ｐにあると見られる。然しながら、他のキャラクタのそれらは、一つの領域にあるとは見ることができない。
【００１９】
この判定のための手順の一例を、図４に示す。
図４は上記図１及び２に示した２次元モデルおいて、一つのキャラクタ３がゲーム領域２０内に現れるか否かを判定するソフトウエアのフローチャートを示している。演算装置には、以下に述べるルーチンの繰返し回数をカウントするカウンタと、それぞれ１ビットの論理数を記録するる４個のメモリＭ−Ｐ、Ｍ＋Ｐ、Ｍ−Ｑ及びＭ＋Ｑが設定される。
これらのメモリの記録値は論理数０又は１である。
スタートすると、先ず、ステップＳ１で回数カウンタがリセットされ、ステップＳ２で４個のメモリＭ−Ｐ、Ｍ＋Ｐ、Ｍ−Ｑ及びＭ＋Ｑの総ての記録値がリセットされ、論理数１とされる。即ち、記録値として（１、１、１、１）が記録される。
【００２０】
今、キャラクタ３１を選んだとする。
即ち、ステップＳ３でキャラクタ３１が選択される。尚、そのバウンディングボックス４１の頂点のチェックは、左下の頂点から順次時計方向に行うものとする。
ステップＳ４でバウンディングボックス４１の左下の頂点の座標がゲームフィールド座標に変換される。この点の座標を（Ｘ４１Ａ、Ｙ４１Ａ）としよう。
ステップＳ５でその頂点（Ｘ４１Ａ、Ｙ４１Ａ）が領域Ｒ−Ｐ内にあるか否かがチェックされる。このとき、頂点の座標（Ｘ４１Ａ、Ｙ４１Ａ）は、ゲーム領域座標（Ｐ４１Ａ、Ｑ４１Ａ）に変換され、それが領域Ｒ−Ｐ内にあるか否かがチェックされる。
結果はｆａｌｓｅであるから、ステップＳ７に移り、その頂点（Ｘ４１Ａ、Ｙ４１Ａ）が上記同様の方法で領域Ｒ＋Ｐ内にあるか否かがチェックされる。
結果はｆａｌｓｅであるから、４個のメモリＭ−Ｐ、Ｍ＋Ｐ、Ｍ−Ｑ及びＭ＋Ｑの記録値（１、１、１、１）のそれぞれは、それぞれのメモリと対応する論理数（０、０、１、１）との論理積に置き換えられ、そのため、記録値は（０、０、１、１）となる。
この記録値の内の最初と２番目の論理数は、それぞれ、頂点（Ｘ４１Ａ、Ｙ４１Ａ）が、領域Ｒ−Ｐ内にないこと、及び、領域Ｒ＋Ｐ内にないことを示す。
【００２１】
次いでステップＳ１０に移り、上記同様にして頂点（Ｘ４１Ａ、Ｙ４１Ａ）が領域Ｒ−Ｑ内にあるか否かがチェックされる。
結果はｔｒｕｅであるから、ステップＳ１１に移り、４個のメモリＭ−Ｐ、Ｍ＋Ｐ、Ｍ−Ｑ及びＭ＋Ｑの記録値（０、０、１、１）は、それらとそれぞれ対応する論理数（１、１、１、０）の論理積に置き換えられ、そのため、記録値は（０、０、１、０）となる。この３番目の論理数１は、頂点（Ｘ４１Ａ、Ｙ４１Ａ）が領域Ｒ−−Ｑ内にあることを示し、４番目の論理数０は、頂点（Ｘ４１Ａ、Ｙ４１Ａ）が領域Ｒ＋Ｑ内にないことを示している。
【００２２】
これで頂点（Ｘ４１Ａ、Ｙ４１Ａ）のチェックが完了するので、ステップＳ１５に移り、記録値が（０、０、０、０）であるか否かががチェックされる。
結果はｆａｌｓｅであるから、ステップＳ１６に移り、回数カウンタに１が加算され、ステップＳ１７に移る。
回数カウンタの計数値が４であるか否かがチェックされるが、結果はｆａｌｓｅであるので、ステップＳ３に戻り、次の頂点（Ｘ４１Ｂ、Ｙ４１Ｂ）のチェックが開始される。
【００２３】
今度も、上記同様にステップＳ５及びＳ７の結果はｆａｌｓｅである。そしてステップＳ９の演算処理の結果は、記録値に影響がなく、記録値は（０、０、１、０）のままである。
然しながら、ステップＳ１０及びＳ１２の結果は、何れもｆａｌｓｅであるため、ステップＳ１４の演算処理が行われると、記録値は、（０、０、０、０）となる。
【００２４】
このため、ステップＳ１５においては、結果はｔｒｕｅとなるので、ステップＳ１９に移り、ここでこのバウンディングボックス４１中のキャラクタ３１は、ゲーム領域に現れる可能性があると判定され、残余の頂点のチェックを行うことなく、プログラムは終了する。
【００２５】
次いで、次に選ばれたキャラクタ３２及びそのバウンディングボックス４２に就いてチェックが行われる。
再度、ステップＳ１で回数カウンタがリセットされ、ステップＳ２でメモリＭ−Ｐ、Ｍ＋Ｐ、Ｍ−Ｑ及びＭ＋Ｑの記録値が（１、１、１、１）に更新される。
前記と同様にして、左下の頂点（Ｘ４２Ａ、Ｙ４２Ａ）から時計回りにチェックが行われるとすると、ステップＳ５及びステップＳ７のチェック結果は何れもｆａｌｓｅであるから、ステップＳ９の演算処理で、記録値は（０、０、１、１）となる。
次いで、ステップＳ１０のチェック結果はｔｒｕｅであるので、ステップＳ１１の演算の後、記録値は（０、０、１、０）となる。
このため、ステップＳ１５のチェック結果はｆａｌｓｅとなり、ステップＳ１６で、回数カウンタの記録値がインクリメントされ、＋１となる。従って、ステップＳ１７のチェック結果はｆａｌｓｅで、再びステップＳ３に戻り、次の頂点（Ｘ４２Ｂ、Ｙ４２Ｂ）のチェックが始まる。
【００２６】
ステップＳ５及びステップＳ７のチェック結果は何れもｆａｌｓｅであるから、ステップＳ９の演算処理が行われても、記録値は（０、０、１、０）のままに止まる。
ステップＳ１０のチェック結果はｆａｌｓｅ、ステップＳ１２はｔｒｕｅであるので、ステップＳ１３の演算が行われ、記録値は（０、０、０、０）となる。
このため、ステップＳ１５においては、結果はｔｒｕｅとなり、次のステップＳ１９においてこのバウンディングボックス４２の中のキャラクタ３２は、ゲーム領域に現れる可能性があると判定され、プログラムは終了する。
【００２７】
次いで、次に選ばれたキャラクタ３３及びそのバウンディングボックス４３に就いてチェックが行われる。
再度、ステップＳ１で回数カウンタがリセットされ、ステップＳ２で４個のメモリＭ−Ｐ、Ｍ＋Ｐ、Ｍ−Ｑ及びＭ＋Ｑの記録値が（１、１、１、１）に更新される。
前記と同様にして、最下位の頂点（Ｘ４３Ａ、Ｙ４３Ａ）から時計回りにチェックが行われるとすると、ステップＳ５及びステップＳ７のチェック結果はｆａｌｓｅであるから、ステップＳ９の演算処理で、記録値は（０、０、１、１）となる。
この頂点のチェックが終わり、次の頂点（Ｘ４３Ｂ、Ｙ４３Ｂ）のチェック時には、ステップＳ１０及びステップＳ１２のチェック結果が何れもｆａｌｓｅとなるから、ステップＳ１４の演算処理で、記録値は（０、０、０、０）となる。
このため、キャラクタ３３は、ゲーム領域に現れることがあると判定される。
【００２８】
次に、キャラクタ３４であるが、これはゲーム領域に対して前記キャラクタ３３と同様な位置関係にあり、そのためゲーム領域に現れることがあると判定される。
然しながら図示されているように、このキャラクタ３４は、実際にはゲーム領域に現れていない。
本発明方法では、場合によりこのような誤判が発生する。このような場合、無駄な計算が行われるが、このようなケースは極めて稀であり、このような損失は、本発明の効果に比べれば無視できるほど少ない。
又、このようなケースを避けるため、キャラクタはそのバウンディングボックスができるだけ正方形に近くなるようデザインすることが推奨される。例えば、キャラクタ３４の場合でも、これを２分割してデザインすれば、このような事態を回避することができる。即ち、２分割した右半分の相当するバウンディングボックスの頂点は、総て領域Ｒ＋Ｑに存在すると見られ、左半分のそれらは総て領域Ｒ−Ｐにあると見られるようになるからである。
尚、このようにすれば、ゲーム計算上他にも利点がある。
【００２９】
以下、キャラクタないし３７について同様に判定が行われる。キャラクタ３５及び３６のバウンディングボックスの頂点は、総て領域Ｒ＋Ｑに存在すると見られ、キャラクタ３７のそれは総て領域Ｒ＋Ｐにあると見られる。
【００３０】
上記は二次元モデルについて説明したが、以下に三次元モデルについて説明する。
三次元モデルでは、図１に示した二次元モデルに紙面と直行する方向、即ち、ゲームフィールド座標系ではＺ軸、ゲーム領域座標系ではＲ軸が加わり、ゲーム領域がゲームフィールド内で３次元運動することになる。
このため、上記で説明した４領域Ｒ−Ｐ、Ｒ＋Ｐ、Ｒ−Ｑ、Ｒ＋Ｑの外に、ゲーム領域の前後方向の外側、即ち手前側に領域Ｒ−Ｒ、奥側に領域Ｒ＋Ｒが設定される。
【００３１】
このため、判定に用いるメモリは６個となり、Ｍ−Ｐ、Ｍ＋Ｐ、Ｍ−Ｑ及びＭ＋Ｑに加えてＭ−Ｒ及びＭ＋Ｒが設けられ、従って記録値は６ビット（１、１、１、１、１、１）となる。
更に、キャラクタ及びそのバウンディングボックスが三次元となるため、頂点のチェックも三次元で行われる。
【００３２】
このソフトウエアのフローチャートは、図５に示されている。
図５において、ステップＳ０ないしステップＳ１４、ステップＳ１５ないしＳ２０は、記録値が６ビットである点と、回数カウンタの最大値が８となる点を除き、前述の二次元モデルのものと同様である。
而して、図５に示すチャートでは、ステップＳ０ないしステップＳ１４と、ステップＳ１５ないしＳ２０の間に、ステップＺ１ないしＺ６が挿入されている。これはバウンディングボックスの頂点（Ｘ、Ｙ、Ｚ）が領域Ｒ−Ｒ及び領域Ｒ＋Ｒにあるか否かをチェックするステップである。
これらのステップについては、前述の二次元モデルの説明から容易に類推できるものであるから、最早説明を要しないであろう。
【００３３】
本発明は叙上の如く構成されるから、本発明によるときは、ゲーム計算上の無駄を省くことができ、簡単な演算装置で複雑なゲーム計算を高速処理し得るようになる。
尚、本発明の構成は、叙上の実施例に限定されるものではない。例えば、図５に示したフローチャートについては、様々なモディフィケーションが可能であり、本発明はそれらの変更例の総てを包摂するものである。
【図面の簡単な説明】
【図１】二次元モデルによる本発明方法の原理説明図である。
【図２】図１の補足説明図である。
【図３】二次元ＵＶローカル座標系におけるキャラクタ及びそのバウンディングボックスを示す説明図である。
【図４】図１に示した二次元ゲームフィールドにおいて本発明方法を実施するためのソフトウエアのフローチャートである。
【図５】実際の三次元ゲームフィールドにおいて本発明方法を実施するためのソフトウエアのフローチャートである。
【符号の説明】
１０    ゲームフィールド
２０    ゲーム領域
３０    キャラクタ
４０    バウンディングボックス
３１〜３７    キャラクタ
４１〜４７    バウンディングボックス
【図１】
2004290260.tif 000003
【図２】
2004290260.tif 000004
【図３】
2004290260.tif 000005
【図４】
2004290260.tif 000006
【図５】
2004290260.tif 000007