JP3138424B2 - シミュレーション装置及び衝突判定方法 - Google Patents

シミュレーション装置及び衝突判定方法

Info

Publication number
JP3138424B2
JP3138424B2 JP08096002A JP9600296A JP3138424B2 JP 3138424 B2 JP3138424 B2 JP 3138424B2 JP 08096002 A JP08096002 A JP 08096002A JP 9600296 A JP9600296 A JP 9600296A JP 3138424 B2 JP3138424 B2 JP 3138424B2
Authority
JP
Japan
Prior art keywords
coordinate axis
value
polygon
determination
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP08096002A
Other languages
English (en)
Other versions
JPH09259303A (ja
Inventor
直幸 小山
大郎 渡辺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Namco Ltd
Original Assignee
Namco Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Namco Ltd filed Critical Namco Ltd
Priority to JP08096002A priority Critical patent/JP3138424B2/ja
Publication of JPH09259303A publication Critical patent/JPH09259303A/ja
Application granted granted Critical
Publication of JP3138424B2 publication Critical patent/JP3138424B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • A63F2300/643Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car by determining the impact between objects, e.g. collision detection
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/80Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game specially adapted for executing a specific type of game
    • A63F2300/8017Driving on land or water; Flying

Landscapes

  • Processing Or Creating Images (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はシミュレーション装
置及び衝突判定方法に関し、特に移動物と他のオブジェ
クトの衝突判定を行うシミュレーション装置及び衝突判
定方法に関する。
【0002】
【背景の技術及び発明が解決しようとする課題】従来よ
り、ディスプレイ上に表示されるゲーム画面を見なが
ら、仮想3次元ゲーム空間内で、プレーヤがプレーヤ移
動体等を操縦するゲーム装置が知られている。この様な
ゲーム装置ではプレーヤ移動体が他の移動体や建造物、
壁等の障害物に衝突したときのゲーム演出を行うため
に、障害物との衝突判定を行う必要がある。この種のゲ
ームでは、前記障害物との衝突判定をどのようにして行
うかがゲームの面白さを左右する重要な要因となるた
め、正確な衝突判定が必要である。
【0003】この様な衝突判定は、プレーヤ移動体が2
次元的に移動するドライブゲーム等では容易である。す
なわちこの様なゲームでは、衝突判定において高さが問
題になる場合はまれで、通常はコースの両側に存在する
障害物や、前後左右を通行する他のレーシングカーとの
衝突判定を2次元的に行えばよいため、判定対象は極め
て限定されたものとなる。
【0004】しかし、プレーヤ移動体が飛行機等の3次
元空間を自由に飛行する移動物である場合、その移動経
路はほぼ無限に設定出来る。すなわち、3次元空間内に
存在する障害物は多数存在し、正確な衝突判定を行うた
めには、各障害物との間で前後左右上下の3次元的な衝
突判定が必要となるため、CPUの演算負荷が飛躍的に
増大する。
【0005】従って、戦闘機等を操縦する飛行ゲームは
数多く存在するが、ミサイル等で敵機を攻撃することを
ゲームの主目的としたものしかなかった。すなわち、該
ゲーム空間に飛行の障害となるような複雑な地形や障害
物等が設定されおり、このような複雑な地形や障害物の
との衝突をさけながら飛行すること自体の面白さを追求
したものは無かった。
【0006】本発明はこの様な課題に鑑みてなされたも
のであり、少ない演算負荷で仮想3次元空間に存在する
複雑な地形や障害物との3次元的な衝突判定が可能なシ
ミュレーション装置及び衝突判定方法を提供することで
ある。
【0007】
【課題を解決するための手段】請求項1の発明は、仮想
3次元空間内を移動する移動物と前記仮想3次元空間内
に存在する地形又は建造物をポリゴンで構成した地形オ
ブジェクトとの衝突演算を行うシミュレーション装置で
あって、前記移動物の移動位置、または移動位置を決定
するための移動条件を入力する入力手段と、前記地形オ
ブジェクトを構成するポリゴンの頂点座標を含む衝突判
定用地形データを記憶する衝突判定用地形データ記憶手
段と、前記移動物に設けた衝突判定用の少なくとも1つ
のヒットチェックポイントと前記地形オブジェクトとの
衝突判定を行う衝突判定手段と、前記衝突判定手段の判
定結果に基づき、表示部に表示する前記仮想3次元空間
のシミュレーション画面を合成する画像合成手段とを含
み、前記衝突判定手段は、前記ヒットチェックポイント
を含み第三の座標軸と平行な直線が前記地形オブジェク
トを構成するポリゴンと交わるヒットチェックポイント
判定点を含むポリゴンを検出する判定対象ポリゴン検出
手段と、前記ヒットチェックポイント判定点の第三の座
標軸の値を演算する第三座標軸値演算手段とを含み、前
記ヒットチェックポイントと、前記ヒットチェックポイ
ント判定点の第三の座標軸の値の大小関係に基づき衝突
判定を行うことを特徴とする。
【0008】請求項5の発明は、仮想3次元空間内を移
動する移動物と前記仮想3次元空間内に存在する地形又
は建造物をポリゴンで構成した地形オブジェクトとの衝
突を判定する方法であって、予め記憶された前記地形オ
ブジェクトを構成するポリゴンの頂点座標を含む衝突判
定用地形データを用いて、前記移動物に設けた衝突判定
用の少なくとも1つのヒットチェックポイントと前記地
形オブジェクトとの衝突判定を行う衝突判定ステップを
含み、前記衝突判定ステップは、前記ヒットチェックポ
イントを含み第三の座標軸と平行な直線が前記地形オブ
ジェクトを構成するポリゴンと交わるヒットチェックポ
イント判定点を含むポリゴンを検出する判定対象ポリゴ
ン検出ステップと、前記判定対象ポリゴン検出ステップ
において検出されたポリゴン上のヒットチェックポイン
ト判定点の第三の座標軸の値を演算する第三座標軸値演
算ステップと、前記ヒットチェックポイントと、前記ヒ
ットチェックポイント判定点の第三の座標軸の値の大小
関係に基づき衝突判定を行うステップと、を含むことを
特徴とする。
【0009】移動物とは、移動するものであれば形状の
大小は問わず飛行機や弾丸でもよいし、単なる点でもよ
い。また、移動位置を入力するとは、例えば移動オブジ
ェクトが飛行機等の乗り物である場合は、それを操縦す
ることを言う。また、移動条件を入力するとは、例えば
シューティングゲーム等で弾丸を発射する場合を含む。
【0010】地形オブジェクトとは、移動物が衝突する
可能性のあるポリゴンで構成された地形及び建造物等の
集合を指す。
【0011】前記移動物と地形オブジェクトの衝突判定
を行うためには、地形オブジェクトを特定するためのデ
ータが必要であるため、衝突判定用地形データ記憶手段
には、前記地形オブジェクトを構成するポリゴンの頂点
座標を含むデータが記憶されている。
【0012】衝突判定においては、前記移動物の一部が
前記地形オブジェクトに接触した場合も衝突を検出しな
ければならないため、厳密には移動物を構成するポリゴ
ンの全ての面について、前記地形オブジェクトとの衝突
判定を行う必要がある。しかしこの様にすると演算負荷
が増大するため、本発明では移動物の形状に応じて少な
くとも1つのヒットチェックポイントを設け、これらの
ヒットチェックポイントについて衝突を判定し、いずれ
かのヒットチェックポイントが衝突していたら衝突と判
定することで、リアリティを損なわない衝突判定を行っ
ている。
【0013】また、第一の座標軸、第二の座標軸、第三
の座標軸とは、仮想3次元空間内における位置を表すた
めに用いる3つの座標軸をさし、第一の座標軸の値、第
二の座標軸の値、第三の座標軸の値とは、それぞれ第一
の座標軸方向、第二の座標軸方向、第三の座標軸方向の
成分をさす。例えば、第一の座標軸、第二の座標軸、第
三の座標軸をそれぞれX軸、Z軸、Y軸とした場合に
は、座標の第一の座標軸の値、第二の座標軸の値、第三
の座標軸の値とはそれぞれ当該座標のX座標、Z座標、
Y座標をさす。
【0014】本発明の衝突判定は、まず、前記ヒットチ
ェックポイントを含み第三の座標軸と平行な直線が前記
地形オブジェクトを構成するポリゴンと交わるヒットチ
ェックポイント判定点を含むポリゴンを検出している。
そして、該ポリゴンと前記直線の交点であるヒットチェ
ックポイント判定点の第三の座標軸の値を演算し、前記
ヒットチェックポイントとの第三の座標軸の値の大小を
比較することにより衝突判定を行っている。
【0015】この様にすることにより、第一の座標軸の
値及び第二の座標軸の値に基づき判定対象となるポリゴ
ンを検出し、該ポリゴンのヒットチェックポイント判定
点についてのみ第三の座標軸の値の大小を比較すること
で、全てのポリゴンについての衝突を判断することが出
来る。従って、すべてのポリゴンについて、その頂点座
標の第一の座標軸の値、第二の座標軸の値及び第三の座
標軸の値に基づき衝突判定を行う場合に比べて、衝突判
定時の演算量が少なくてすむ。
【0016】従って特に、2つの座標軸で決定される平
面方向に広がりをもつ地形オブジェクトとの3次元的な
衝突判定を効率よく行うことが出来、衝突判定時のCP
Uの演算負荷を軽減することが出来る。
【0017】また、本発明の手法は複雑な形状の地形で
あっても適用出来るため、所望の地形オブジェクトを作
成することが出来る。
【0018】またこの様にすると、入力された移動位置
又は移動条件によって決定される移動オブジェクトの衝
突演算のデータ量及び演算負荷を軽減し、衝突結果を反
映したシミュレーション画面を表示することが出来る。
【0019】さらに請求項1において、前記衝突判定用
地形データ記憶手段は、各頂点毎に隣あう全ての頂点を
特定するための情報及び該頂点を有する全てのポリゴン
を特定するための情報を有するよう構成され、前記判定
対象ポリゴン検出手段は、前記ヒットチェックポイント
の第一の座標軸及び第二の座標軸の値に基づき、前記地
形オブジェクトを構成するポリゴンの頂点を選択し、前
記選択した頂点と該頂点の隣り合う頂点とを結ぶ稜線の
第一の座標軸及び第二の座標軸で決定される平面上にお
ける所定軸に対する角度に基づき、前記ヒットチェック
ポイント判定点を有するポリゴンを検出するよう構成し
てもよい。
【0020】また請求項5において、前記衝突判定用地
形データは、各頂点毎に隣あう全ての頂点を特定するた
めの情報及び該頂点を有する全てのポリゴンを特定する
ための情報を有するよう構成され、前記判定対象ポリゴ
ン検出ステップにおいて、前記ヒットチェックポイント
の第一の座標軸及び第二の座標軸の値に基づき、前記地
形オブジェクトを構成するポリゴンの頂点を選択し、前
記選択した頂点と該頂点の隣り合う頂点とを結ぶ稜線の
第一の座標軸及び第二の座標軸で決定される平面上にお
ける所定軸に対する角度に基づき、前記ヒットチェック
ポイント判定点を有するポリゴンを検出するよう構成し
てもよい。
【0021】すなわち、ヒットチェックポイントと前記
頂点を結ぶ線がどの稜線の間にあるかを、それぞれの稜
線の所定軸に対する角度に基づき判定して、その稜線の
間にあるポリゴンを検出する。例えば、第一の座標軸の
値及び第二の座標軸の値で決定される距離が近い頂点を
選択すると、その頂点の隣り合う頂点及びヒットチェッ
クポイントの座標の第一の座標軸の値及び第二の座標軸
の値からtanθ等の角度情報を求め、それらを比較す
ることによって該頂点を含むポリゴンが判定対象ポリゴ
ンであるか否かを判定することが出来る。
【0022】以上のようにして、各頂点座標とヒットチ
ェックポイントの第一の座標軸の値及び第二の座標軸の
値のみから効率的に、ヒットチェックポイント判定点を
有するポリゴンを検出することが出来、衝突判定時のC
PUの演算負荷を軽減することが出来る。
【0023】さらに、前記衝突判定用地形データ記憶手
段は、ポリゴンの頂点の第一の座標軸の値及び第二の座
標軸の値を基準単位の整数倍として記憶し、前記判定対
象ポリゴン検出手段は、前記稜線を表すベクトルの第一
の座標軸の成分及び第二の座標軸の成分の組み合わせに
対応する前記稜線の第一の座標軸及び第二の座標軸で決
定される平面上における所定軸に対する角度を表すデー
タを記憶した角度テーブル記憶手段をさらに有し、前記
選択した頂点と該頂点の隣り合う頂点とを結ぶ稜線を表
すベクトルの第一の座標軸の成分及び第二の座標軸の成
分に基づき前記角度テーブル記憶手段に記憶された角度
を表すデータを読み出すよう構成してもよい。
【0024】また、前記衝突判定用地形データは、ポリ
ゴンの頂点の第一の座標軸の値及び第二の座標軸の値を
基準単位の整数倍として記憶され、前記判定対象ポリゴ
ン検出ステップにおいて、前記稜線を表すベクトルの第
一の座標軸の成分及び第二の座標軸の成分の組み合わせ
に対応する、前記稜線の第一の座標軸及び第二の座標軸
で決定される平面上における所定軸に対する角度を表す
データが記憶された角度テーブルを用い、前記選択した
頂点と該頂点の隣り合う頂点とを結ぶ稜線を表すベクト
ルの第一の座標軸の成分及び第二の座標軸の成分に基づ
き前記角度テーブルに記憶された角度を表すデータを読
み出すよう構成してもよい。
【0025】衝突判定用地形データの、ポリゴンの頂点
の第一の座標軸の値及び第二の座標軸の値を基準単位の
整数倍として記憶することにより、選択された頂点と、
その頂点に隣り合う頂点の座標の第一の座標軸の成分及
び第二の座標軸の成分は常に整数比で表される。そこで
これらの整数比に対応する角度情報(例えばtanθに
対応する角度θ)を予め角度テーブル記憶手段に格納し
ておくことにより、衝突判定時のCPUの演算負荷を軽
減することが出来る。
【0026】請求項2の発明は、請求項1において、前
記衝突判定用地形データ記憶手段は、前記地形オブジェ
クトを構成するポリゴンに対して該ポリゴンを含む平面
の第一の座標軸及び第二の座標軸方向に対する第三の座
標軸方向の傾きを表すデータを含んで記憶するよう構成
され、前記第三座標軸値演算手段は、前記ヒットチェッ
クポイント判定点の第三座標軸の値を、前記衝突判定用
地形データ記憶手段に記憶された該ポリゴンを含む平面
の第一の座標軸及び第二の座標軸方向に対する第三の座
標方向の傾きを表すデータに基づき演算することを特徴
とする。
【0027】請求項6の発明は、請求項5において、前
記衝突判定用地形データは、前記地形オブジェクトを構
成するポリゴンに対して該ポリゴンを含む平面の第一の
座標軸及び第二の座標軸方向に対する第三の座標軸方向
の傾きを表すデータを含むよう構成され、前記第三座標
軸値演算ステップは、前記ヒットチェックポイント判定
点の第三座標軸の値を、前記衝突判定用地形データ記憶
手段に記憶された該ポリゴンを含む平面の第一の座標軸
及び第二の座標軸方向に対する第三の座標軸方向の傾き
を表すデータに基づき演算することを特徴とする。
【0028】ここにおいて、各ポリゴンを含む平面の第
一の座標軸方向に対する第三の座標軸方向の傾きとは、
前記ポリゴンを含む平面と前記第一座標軸及び第三座標
軸を含む平面との交線の傾きを示している。また、各ポ
リゴンを含む平面の第二の座標軸方向に対する第三の座
標軸方向の傾きとは、前記ポリゴンを含む平面と前記第
二座標軸及び第三座標軸を含む平面との交線の傾きを示
している。
【0029】この様に、地形オブジェクトを構成するポ
リゴンの各ポリゴンを含む平面の第一の座標軸及び第二
の座標軸方向に対する第三の座標軸方向の傾きを表すデ
ータを、予め衝突判定用地形データに含んで記憶させて
おくことにより、前記ヒットチェックポイント判定点の
第三の座標軸の値を、簡単な演算で求めることが出来
る。すなわち、判定対象ポリゴンの頂点と前記ヒットチ
ェックポイントの第一座標軸の値及び第二座標軸の値の
差と前記傾きを表すデータとの乗算及びそれらの加算と
いう簡単な演算で前記ヒットチェックポイント判定点の
第三の座標軸の値を求めることが出来る。従って、衝突
判定時のCPUの演算負荷を軽減することが出来る。
【0030】請求項3の発明は、請求項1、2のいずれ
かにおいて、前記地形オブジェクトは、第三の座標軸方
向に積層した複数のレイヤーを持つよう構成され、前記
衝突判定用地形データ記憶手段は、前記複数のレイヤー
毎に衝突判定用地形データを有し、さらに各レイヤーと
ヒットチェックポイントの第三の座標軸方向の大小関係
と衝突の有無の関係を表すレイヤー属性データを含んで
記憶するよう構成され、前記衝突判定手段は、前記レイ
ヤー毎に、該レイヤーの地形オブジェクトを構成するポ
リゴンであって、前記ヒットチェックポイントの第一の
座標軸の値及び第二の座標軸の値と等しい第一の座標軸
の値及び第二の座標軸の値をもつ点であるヒットチェッ
クポイント判定点を有するポリゴンを検出し、前記各レ
イヤー毎にヒットチェックポイント判定点の第三の座標
軸の値を演算し、前記各レイヤー毎のヒットチェックポ
イント判定点の第三の座標軸の値、ヒットチェックポイ
ントの第三の座標軸の値、及びレイヤー属性データとに
基づき衝突判定を行うことを特徴とする。
【0031】請求項7の発明は、請求項5、6のいずれ
かにおいて、前記地形オブジェクトは、第三の座標軸方
向に積層した複数のレイヤーを持つよう構成され、前記
衝突判定用地形データにおいて、前記複数のレイヤー毎
に衝突判定用地形データを有し、さらに各レイヤーとヒ
ットチェックポイントの第三の座標軸方向の大小関係と
衝突の有無の関係を表すレイヤー属性データを含むよう
構成され、前記衝突判定ステップは、前記レイヤー毎
に、該レイヤーの地形オブジェクトを構成するポリゴン
であって、前記ヒットチェックポイントの第一の座標軸
の値及び第二の座標軸の値と等しい第一の座標軸の値及
び第二の座標軸の値をもつ点であるヒットチェックポイ
ント判定点を有するポリゴンを検出し、前記各レイヤー
毎にヒットチェックポイント判定点の第三の座標軸の値
を演算し、前記各レイヤー毎のヒットチェックポイント
判定点の第三の座標軸の値、ヒットチェックポイントの
第三の座標軸の値、及びレイヤー属性データとに基づき
衝突判定を行うことを特徴とする。
【0032】本発明のように、第三の座標軸方向に積層
した複数のレイヤーを持つ場合には、ヒットチェックポ
イントと当該レイヤーのヒットチェックポイント判定点
との位置関係と衝突の有無の関係が各レイヤー毎に異な
る可能性があるため、各レイヤー毎に前記関係を表すデ
ータが必要となる。従って本発明では、この様なデータ
をレイヤー属性データとして記憶させておく。この様に
すると、ヒットチェックポイントと当該レイヤーのヒッ
トチェックポイント判定点の第三の座標軸の値と当該レ
イヤーのレイヤー属性データに基づき、各レイヤーとの
衝突を判定することが出来る。
【0033】この様にすると、地形が第三の座標軸方向
に積層している場合であっても、請求項1、請求項2の
各手段又は請求項5、請求項6の各ステップを用いて衝
突判定を行うことができ、衝突判定時のCPUの演算負
荷を軽減することが出来る。
【0034】例えば山にトンネルが通っている場合、こ
の部分の地形を第一座標軸及び第二座標軸を含む平面に
平行投影すると、山の地表面の層とトンネルの天井を含
む部分の層とトンネルの床を含む部分の層が第三の座標
軸方向に積層しており、各層を構成するポリゴンが、該
投影面で重なることになる。従って、各層にヒットチェ
ックポイント判定点を含むポリゴンが存在する可能性が
あり、これら積層した各層の内容(山の地表面の層とト
ンネルの天井を含む部分の層とトンネルの床を含む部分
の層等)に応じて、前記各ヒットチェックポイント判定
点との位置関係を判断する必要がある。この様な場合、
前記3つの層をレイヤーの異なる地形オブジェクトとし
て、各層の地形オブジェクトの衝突判定用地形データを
レイヤー別に記憶させておき、衝突判定を行うとよい。
【0035】この場合、山の地表面やトンネルの床と衝
突判定を行う場合であれば、ヒットチェックポイント
が、地表面やトンネルの床より下にあれば衝突している
と判定することが出来るため、山の地表面やトンネルの
床を構成するレイヤーは、ヒットチェックポイントがヒ
ットチェックポイント判定点より小であれば衝突してい
る旨のレイヤー属性データを有することになる。また、
トンネルの天井と衝突判定を行う場合であれば、ヒット
チェックポイントが、トンネルの天井より上にあれば衝
突していると判定することが出来るため、トンネルの天
井を構成するレイヤーは、ヒットチェックポイントがヒ
ットチェックポイント判定点より大であれば衝突してい
る旨のレイヤー属性データを有することになる。
【0036】請求項4の発明は、請求項3において、前
記衝突判定用地形データ記憶手段は、同一のレイヤー内
では、各レイヤー属性データが一意的であるデータとし
て記憶し、前記衝突判定手段は、ヒットチェックポイン
トの第三の座標軸の値と該軸の双方向に最も近接する第
三の座標軸の値を有するヒットチェックポイント判定点
を有するポリゴンを含む各レイヤーを検出し、検出され
た各レイヤーのヒットチェックポイント判定点の第三の
座標軸の値、ヒットチェックポイントの第三の座標軸の
値、及び検出されたレイヤーのレイヤー属性データとに
基づき衝突判定を行うことを特徴とする。
【0037】請求項8の発明は、請求項7において、前
記衝突判定用地形データは、同一のレイヤー内では、各
レイヤー属性データが一意的であるデータとして構成さ
れ、前記衝突判定ステップにおいて、ヒットチェックポ
イントの第三の座標軸の値と該軸の双方向に最も近接す
る第三の座標軸の値を有するヒットチェックポイント判
定点を有するポリゴンを含む各レイヤーを検出し、検出
された各レイヤーのヒットチェックポイント判定点の第
三の座標軸の値、ヒットチェックポイントの第三の座標
軸の値、及び検出されたレイヤーのレイヤー属性データ
とに基づき衝突判定を行うことを特徴とする。
【0038】この様にすると、複雑かつ複数の地形が第
三の座標軸方向に積層している場合であっても、簡単な
大小判断で衝突判定を行うことができる。すなわち、同
一のレイヤー内ではレイヤー属性は常に一意的になるよ
うに構成されているため、ヒットチェックポイントと第
三の座標軸の双方向に最も近接するレイヤーを検出し、
これらのレイヤーに属するヒットチェックポイント判定
点の大小判断と、これらのレイヤーのレイヤー属性デー
タに基づき衝突判定を行うことができる。従って、衝突
判定時のCPUの演算負荷を軽減することが出来る。
【0039】
【発明の実施の形態】本発明の好適な実施の形態を、人
力飛行機に乗り3次元ゲーム空間内を自由に飛行するゲ
ーム装置を例にとり説明する。
【0040】図1には実施の形態のゲーム装置の外観図
が示されている。実施の形態のゲーム装置10は、ほぼ
L字状に形成されたハウジング70上に、操作部20
と、ディスプレイ60とが配置されている。
【0041】前記操作部20は、人力飛行機の操縦席を
イメージして形成されており、プレーヤPがサドル50
に座り、ハンドル30を両手で操作し人力飛行機を操作
し、さらにペダル40をこぎながら人力飛行機の推力を
入力するように構成されている。
【0042】前記ディスプレイ60は、サドル50に座
ったプレーヤPの正面に位置するように配置され、ここ
に3次元ゲーム空間内を人力飛行機が飛行するゲーム画
面200が表示される。
【0043】図25には当該ゲーム装置10のディスプ
レイ60に表示されるゲーム画面の一例200が示され
ている。プレーヤPが前記操作部20を操作することに
より、ゲーム画面上の人力飛行機210に乗った仮想プ
レーヤ220は、該ゲーム画面に示されるゲームステー
ジの仮想3次元空間内の飛行を行う。該空間内にはポイ
ントバルーン230と呼ばれる風船のようなオブジェク
トが配置されており、仮想プレーヤが乗った人力飛行機
210がこのポイントバルーン230に接触すると、ポ
イントバルーン230にかかれたポイントが得られる。
プレーヤPは、この様にしてポイントを獲得しながらゴ
ールをめざす。但し、制限時間内に所定の得点をとって
ゴールに到着することがそのゲームステージをクリアす
る条件である。そして前記ゲームステージをクリアする
と、難易度の高い新たなゲームステージに進むことがで
きるよう構成されている。
【0044】前記各ステージの仮想3次元空間内には建
造物や山、洞窟等の複雑な地形が設定されており、人力
飛行機210に乗った仮想プレーヤ220は、前記建造
物や山、洞窟の壁等の障害物を避けながら飛行しなけれ
ばならない。
【0045】従って、リアリティに富んだゲーム演出を
行うためには、これらの障害物と正確な衝突判定を行う
ことが重要な要因となる。しかし、この様に3次元空間
を自由に飛行する人力飛行機210と、3次元空間内を
構成する建造物や山、洞窟等の複雑な地形と、正確な衝
突判定を行うためには、当該複雑な地形の形状を正確に
反映した衝突判定が必要となり、CPUの演算負荷が飛
躍的に増大する。
【0046】そこで本ゲーム装置10では、このような
CPUの演算負荷を軽減するために衝突判定用の独自の
構成の地形データを予め作成し、独自のアルゴリズムで
効率的な衝突判定を行っている。
【0047】図2には、前記ゲーム装置10の、機能ブ
ロック図が示されている。
【0048】実施の形態の業務用ビデオゲーム装置10
は、操作部20と、ゲーム空間演算部100と、表示部
80とを含む。操作部20は、図1に示すハンドル3
0、ペダル40等のプレーヤの操作する部材である。前
記ゲーム空間演算部100は、空間演算部110、空間
情報記憶部120、画像合成部130と、オブジェクト
画像情報記憶部140、衝突判定部150、衝突判定用
地形データ記憶部160とを含む。前記表示部80は、
前記ディスプレイ60を用いて構成されている。
【0049】前記空間情報記憶部120には、ゲームス
テージ上に配置される各表示物(人力飛行機210に乗
った仮想プレーヤ220やポイントバルーン230等の
移動物と、トンネル、壁、ビル、立木、洞窟、山等の固
定物)の位置情報及び方向情報が記憶されている。
【0050】図3は、移動物である人力飛行機210に
乗った仮想プレーヤ220(以下人力飛行機210とい
う)の位置及び姿勢と、位置情報(X,Y,Z)及び方
向情報(θ,φ,ρ)との関係を示す図である。同図に
示すように、本ゲーム装置10では、各表示物の基準点
KPの位置情報(X,Y,Z)及び方向情報(θ,φ,
ρ)が仮想的なゲームステージ(オブジェクト空間)に
設けられたワールド座標系(Xw,Yw,Zw)におけ
る位置座標及び角度として記憶されて、ゲームステージ
が構築されている。
【0051】こうして設定された各表示物の基準点KP
の位置情報(X,Y,Z)及び方向情報(θ,φ,ρ)
は図4に示すようにして空間情報記憶部120に記憶さ
れる。すなわち、空間情報記憶部120にはi+1個の
オブジェクトの基準点KPの位置情報(X,Y,Z)及
び方向情報(θ,φ,ρ)が、各表示物に割り当てられ
たオブジェクトナンバーOBとともに記憶されている。
ここで、特に、オブジェクトナンバーOB0には人力飛
行機210の本体を表すオブジェクトが割り当てられ、
オブジェクトナンバーOB1、OB2、OB3はそれぞ
れトンネル、壁、ビル、立木、洞窟、山やその他のオブ
ジェクトが割り当てられている。
【0052】空間演算部110は、CPU、メモリ等を
用いて構成されており、前記操作部20からの操作信号
および所定のゲームプログラムに基づき、人力飛行機2
10が仮想3次元空間内を飛行し、ポイントバルーン2
30をとる演算を行い、その演算結果を画像合成部13
0へ向け出力するものである。
【0053】また、前記空間演算部110は、上記のよ
うにして記憶されるゲームステージにおける人力飛行機
210の位置情報(X,Y,Z)及び方向情報(θ,
φ,ρ)を、前記操作部20によって入力される操作信
号やゲームプログラム等に従って、所定の時間毎に、1
/60秒毎に書き換えて更新する。例えば、人力飛行機
210がゲームステージ上をワールド座標のX軸方向に
姿勢を変えずに移動する様子は、前記空間情報記憶部1
20に記憶された該当するオブジェクトナンバーととも
に記憶されている位置情報のX座標を、前記空間演算部
110が移動速度に応じた所定の増分で変更記憶するこ
とで表現される。こうして、ゲームステージにおいて人
力飛行機210が刻々と位置及び方向(姿勢)を変化さ
せていく状況を容易に演出することができる。
【0054】ところで、この様にゲームステージ内にお
いて人力飛行機210が刻々と位置及び方向を変化させ
ていく状況をゲーム画面に表示するためにはどの位置か
ら見た画像を表示するのかという視点位置や視線方向、
視野角等の視点情報が必要となる。
【0055】本実施の形態では、人力飛行機210に乗
った仮想プレーヤ220の視点位置で画像を表示する1
人称の視点表示と、人力飛行機210を後方から追従す
る視点位置で画像を表示する3人称の視点表示を選択出
来るように形成されている。この様な視点情報は空間演
算部110が演算する人力飛行機210の位置情報
(X,Y,Z)及び方向情報(θ,φ,ρ)に基づき決
定される。
【0056】この様な視点情報等を含むフレーム情報も
前記空間情報記憶部120に記憶されている。このフレ
ーム情報も前記人力飛行機210の位置情報(X,Y,
Z)及び方向情報(θ,φ,ρ)に基づき空間演算部1
10によって所定時間毎に更新される。この様にして、
ゲーム画面には、移動する視点位置からみえる仮想3次
元空間を表示した画像がリアルタイムに表示される。
【0057】次に、画像合成部130とオブジェクト画
像情報記憶部140の画像合成の機能について詳しく説
明する。
【0058】前記オブジェクト画像情報記憶部140
は、ゲームステージに登場する各表示物の形状及び外観
にかかる情報を記憶するものであり、図示しないポリゴ
ン情報記憶部とテクスチャ情報記憶部とを含んでいる。
すなわち、本ゲーム装置10においては、各表示物はポ
リゴンの組み合わせによってモデリングされていて、各
ポリゴンにはそれぞれの表示物の外観を表すテクスチャ
がマッピングされる。
【0059】前記ポリゴン情報記憶部142には、各表
示物の形状を表す情報として、該表示物を構成する各ポ
リゴンの頂点座標と、それぞれのポリゴンにマッピング
するテクスチャ情報を読み出す情報とが対応して記憶さ
れる。前記頂点座標は各表示物にそれぞれ設けられた座
標系(ボディ座標系)における各頂点の位置座標として
記憶されている。
【0060】前記テクスチャ情報記憶部144には、こ
れらのポリゴンにマッピングするテクスチャのテクスチ
ャ情報が記憶される。ここで、テクスチャ情報とは表示
物の表面の色や模様等の情報を意味する。
【0061】また、前記画像合成部130では、前記空
間情報記憶部120及び前記オブジェクト画像情報記憶
部140に記憶される情報に従ってゲームステージの情
景を表す画像を合成する。具体的には、先ず初めに、図
5に示すように表示物300を構成するポリゴンを、ワ
ールド座標系(Xw,Yw,Zw)で表現されるゲーム
ステージ上に配置するための演算を行う。すなわち、前
記オブジェクト画像情報記憶部140のポリゴン情報記
憶部142には、表示物を構成するポリゴンの位置情報
がボディ座標系における座標情報として記憶されてい
る。前記画像合成部130は、これを前記空間情報記憶
部120に記憶される位置情報(X,Y,Z)及び方向
情報(θ,φ,ρ)に基づいて、平行移動、回転、反
転、拡大、縮小等の3次元座標変換を施し、ワールド座
標系(Xw,Yw,Zw)での位置座標に変換してい
る。次に、各表示物についてそれを構成するポリゴンを
所与の視点を基準とした視点座標系(Xv,Yv,Z
v)へ座標変換する処理を行う。その後、クリッピング
処理等を施し、スクリーン座標系(Xs,Ys)への透
視投影変換処理を行う。そして、こうして得られたスク
リーン座標系(Xs,Ys)での画像情報に基づいて前
記表示部80はゲーム空間の所定の範囲を画像表示出力
する。
【0062】次に、衝突判定を行う機能について説明す
る。
【0063】本ゲーム装置10は、人力飛行機210
と、建造物や山、洞窟等の複雑な地形オブジェクトとの
衝突判定を行う。これらはいずれもポリゴンオブジェク
トとして構成されているため、正確な衝突判定を行うた
めには、人力飛行機210を構成する全てのポリゴン
と、地形オブジェクトを構成する全てのポリゴンとで、
衝突の判定をする必要がある。
【0064】しかし、人力飛行機210を表す全てのポ
リゴンについて衝突判定を行うのは、データ量及び演算
負荷の増大をもたらすので、本ゲーム装置10では、所
定のヒットチェックポイントについて、衝突判定を行う
よう構成されている。
【0065】図6(A)〜(C)は、本実施の形態の人
力飛行機210に乗った仮想プレーヤ220の所定ヒッ
トチェックポイントを表したポリゴン図である。同図
(A)は、人力飛行機210に乗った仮想プレーヤ22
0の側面図を、同図(B)は正面図を、同図(C)平面
図を表している。同図に示すように、本実施の形態の人
力飛行機210に乗った仮想プレーヤ220には6つの
ヒットチェックポイントP1〜P6が設けてある。この
ヒットチェックポイントP1〜P6は、人力飛行機21
0に乗った仮想プレーヤ220の形状に基づき、最も効
率的かつリアリティを損なわないように設定された点で
あり、いずれかのヒットチェックポイントP1〜P6が
地形オブジェクトに衝突すれば、衝突していると判定さ
れる。
【0066】このようなヒットチェックポイントP1〜
P6の設定を行っているのが空間演算部110のヒット
チェックポイント設定部112である。すなわち、ヒッ
トチェックポイント設定部112の図示しない記憶エリ
アには、所定のヒットチェックポイントP1〜P6が、
人力飛行機210の基準点を原点とするボディ座標系に
おける位置座標として記憶されている。衝突判定はワー
ルド座標系の位置データで行うため、ヒットチェックポ
イント設定部112は、所定時間毎にヒットチェックポ
イントP1〜P6のデータをワールド座標系における位
置座標に変換して、衝突判定部150に渡す。ここにお
いて、ヒットチェックポイント設定部112は、空間情
報記憶部120に記憶されている人力飛行機210の位
置情報及び方向情報を読み出して、ボディ座標系におけ
る位置座標として記憶されているヒットチェックポイン
トの座標変換を行う。
【0067】この様にしてワールド座標系における位置
座標に変換されたヒットチェックポイントP1〜P6
と、地形オブジェクトとの衝突判定を行うのが衝突判定
部150であり、判定対象ポリゴン検出部152と高さ
演算部156を含んで構成されている。
【0068】また、ヒットチェックポイントP1〜P6
と衝突したかどうかの判定対象となる地形オブジェクト
に関するデータを、衝突判定部150が効率的な判定を
行えるデータ構成を有する衝突判定用地形データとして
記憶しているのが、衝突判定用地形データ記憶部160
である。
【0069】これら各部の具体的な機能について説明す
る前に、本ゲーム装置10のゲームステージに登場する
仮想3次元空間の地形オブジェクトについて説明する。
【0070】(1) 地形オブジェクトの概略 図7は、本ゲーム装置10のあるゲームステージの仮想
3次元空間400の地形オブジェクト410を構成する
ポリゴンをX−Z平面に平行投影した図である。同図に
示すように、本ゲーム装置10は、仮想3次元空間40
0を構成する山や谷、建造物等の地形オブジェクトを三
角形と四角形のポリゴンの集合として構成している。な
お、本実施の形態では、通常の部分の地形には、三角形
のポリゴンを使用し、傾きが0(X−Z平面に平行)の
地形部分のみ四角形のポリゴンを使用することにより、
ポリゴン数を削減すると共に、2種類のポリゴンを使用
することによる処理の複雑化をふせいでいる。
【0071】また、仮想3次元空間400は、図7に示
すように、複数のブロックに分割されている。ここにお
いてブロックとは、仮想3次元空間400をX座標、Z
座標の所定単位毎に8×16に区切った個々の領域であ
るブロックB00、B10…のことである。
【0072】図9は、図7のブロックB47を拡大した
ポリゴン図である。各ブロック内は、X座標、Z座標を
それぞれグリッドという基準単位で区切られている。本
実施の形態では、地形オブジェクト410を構成するポ
リゴンの頂点は、グリッド上に配置するよう構成されて
いる。この様に構成することで、各ポリゴンのX座標、
Z座標は、単位グリッドの整数倍として表され、後述す
る角度テーブル作成に都合がよいからである。
【0073】また、本ゲーム装置10の仮想3次元空間
400に登場する地形は、地下洞窟やトンネルもある複
雑な構成となっている。従って、例えば山にトンネルが
通っている場合、この部分の地形をX−Z平面に平行投
影するとすると、山の地表面の層とトンネルの天井を含
む部分の層とトンネルの床を含む部分の層がY軸方向に
積層しており、各層を構成するポリゴンが、該投影面で
重複することになる。従って、本実施の形態では、この
様な場合レイヤーという概念を導入して、前記3つの層
はレイヤーの異なる地形オブジェクトとしている。
【0074】図12〜図15は図7の一部分の領域42
0のポリゴン図であり、これらを用いてレイヤーの具体
例を説明する。図12は図7の一部分の領域420のポ
リゴン図を拡大した図であり、領域420を構成するY
軸方向に積層したポリゴンがが重複した状態で表されて
いる図である。図13〜図15は、領域420を構成す
るポリゴンをレイヤー別に表したポリゴン図である。す
なわち領域420には、地下洞窟が存在しており、図1
3は地表面のレイヤーを構成するポリゴン図、図14は
地下洞窟の天井面のレイヤーを構成するポリゴン図、図
15は地下洞窟の底面のレイヤーを構成するポリゴン図
を表している。このように、Y軸方向に積層したポリゴ
ンによって地形が構成されている場合、本実施の形態で
は、同一レイヤー内でY軸方向に積層したポリゴンが存
在しないよう複数のレイヤーを設けている。
【0075】(2) 衝突判定の概略 本ゲーム装置10では、人力飛行機210が、図7に示
す地形オブジェクト410の合間に浮かぶポイントバル
ーン230に接触することにより得点を得るように構成
されているため、人力飛行機210は、該地形オブジェ
クト410に衝突しないように飛行して、ポイントバル
ーン230に接触する必要がある。本ゲーム装置10の
面白さは、地形オブジェクト410に衝突しないように
飛行しながらポイントバルーンに接触することにあるた
め、この様な地形オブジェクト410との正確な衝突判
定が必要となる。
【0076】正確な衝突判定を行うためには、前記ヒッ
トチェックポイントと地形オブジェクト410を構成す
る全てのポリゴンと衝突判定を行う必要があるが、この
様な複雑な地形との3次元的な衝突判定を行うには、通
常の方法では膨大な演算が必要となり、CPUの負荷が
飛躍的に増大し、高性能なCPUでなければリアルタイ
ムの処理は困難である。しかし、高性能なCPUや高速
なメモリを使用するとコストが増加するという問題点が
ある。
【0077】そこで本願の発明者は、演算負荷の飛躍的
な増大を招くことなく、このような地形オブジェクト4
10との3次元的な衝突判定を行うアルゴリズムを創作
した。そして、該アルゴリズムに従って、高速に衝突判
定の演算を行うために適した内容及び構成を有する衝突
判定用地形データを作成し、衝突判定用地形データ記憶
部160に予め記憶させておく構成を採用した。
【0078】すなわち、衝突判定は、地形オブジェクト
410を構成するポリゴンの頂点座標及び結線情報があ
れば可能であるが、衝突判定時に種々の演算が必要とな
るため、CPUの処理負担の増大及び処理時間の増大に
つながる。そこで衝突判定時の演算に必要なデータを予
め演算して記憶部に記憶させておくことが好ましい。ま
た、後述するように前記ブロック単位で衝突判定を行っ
ているため、ブロック単位に必要なデータのアクセスが
容易になるようなデータ構造をとることが好ましい。
【0079】従って、本実施の形態のゲーム装置10で
は、後述するような衝突判定用地形データを作成し、衝
突判定用地形データ記憶部160に記憶している。
【0080】(3) 衝突判定用地形データの構成 衝突判定用地形データは、レイヤー枚数データ、レイヤ
ー属性データ、頂点情報データ、ポリゴン傾き情報デー
タを含んで構成されており、それぞれ衝突判定用地形デ
ータ記憶部160のレイヤー枚数テーブル、レイヤー属
性テーブル、頂点情報テーブル、ポリゴン傾き情報テー
ブルに格納されている。
【0081】図22は衝突判定用地形データ700の構
成を示した図である。本ゲーム装置10では、図7に示
したような仮想3次元空間400のゲームステージが4
つ用意されており、それぞれ異なる地形オブジェクト4
10で構成されている。従って、衝突判定用地形データ
700は各ゲームステージ毎にそれぞれ別個に形成され
ており、それぞれステージ1データ領域710、ステー
ジ2データ領域711、ステージ3データ領域712、
ステージ4データ領域713に格納されている。以下説
明を簡単にするため、ステージ1データ領域710に格
納されている衝突判定用地形データ700について説明
する。
【0082】3.1 レイヤー枚数データとレイヤー属
性データ 図22に示すようにレイヤー枚数テーブル720とレイ
ヤー属性テーブル730は、各ステージに1つづつ形成
されている。
【0083】レイヤー枚数テーブル720とは、ゲーム
ステージの仮想3次元空間の各ブロック毎に、そのブロ
ックが何層(レイヤー)で構成されているのか(レイヤ
ーの枚数)を示すレイヤー枚数データを格納しているテ
ーブルであり、図16(A)はそのデータ構造を説明す
るための図である。同図に示すように、レイヤー枚数テ
ーブル720は8×16のレイヤー枚数データLMD0
0〜LMD7Fで構成されている。そして8×16の各
レイヤー枚数データLMD00〜LMD7Fには、図7
に示す仮想3次元空間400を構成する8×16の各ブ
ロックB00〜B7Fの層(レイヤー)の枚数を表すデ
ータが記憶されている。例えば、LMD00には、ブロ
ックB00の層(レイヤー)の枚数を表すデータが記憶
されている。
【0084】レイヤー属性テーブル730とは、ゲーム
ステージの仮想3次元空間の各ブロック毎に、そのブロ
ックがどのような属性を有する層(レイヤー)であるの
かを示すレイヤー属性データを格納しているテーブルで
あり、図16(B)はそのデータ構造を説明するための
図である。同図に示すように、レイヤー属性テーブル7
30は8×16のレイヤー属性データLZD00〜LZ
D7Fで構成されている。そして8×16の各レイヤー
属性データLZD00〜LZD7Fには、図7に示す仮
想3次元空間400を構成する8×16の各ブロックB
00〜B7Fの、層(レイヤー)の属性を表すデータが
記憶されている。例えば、LZD00には、ブロックB
00の層(レイヤー)の属性を表すデータが記憶されて
いる。
【0085】ここで、層(レイヤー)の枚数及び属性の
内容について説明する。図17(A)は地形オブジェク
ト410の一連のブロックBij〜Bij+4の仮想的
なXーY断面600を表した図である。断面の一部61
0は山の地形を表しており、断面の一部620は岩等が
横に突き出てオーバーハング状態になっている地形を表
しており、断面の一部630はトンネルの地形を表して
いる。
【0086】同図に示すように、ブロックBijは、0
層1枚の層で構成されており、ブロックBij+1は、
0層、1層、2層の3枚の層で構成されており、ブロッ
クBij+2は、2層、1層、0層の3枚の層で構成さ
れており、ブロックBij+3は、1層、3層、2層、
0層の4枚の層で構成されており、ブロックBij+4
は、1層、0層の2枚の層で構成されている。従って、
図16(A)のレイヤー枚数テーブルの各ブロックに対
応するレイヤー枚数データLMDij〜LMDij+4
には、それぞれ層の枚数1、3、3、4、2を表すデー
タが記憶されている。
【0087】また、各層の上(Y軸方向)に空間がある
場合、その層の属性を床とし、各層の下(Y軸方向)に
空間がある場合、その層の属性を天井としている。従っ
て、図17の、ブロックBijの0層は山の地表面を表
しており、上が空間なので、属性は床である。またブロ
ックBij+1の0層も同様に属性は床、1層は下に空
間があるので属性は天井、2層は上に空間があるので属
性は床である。同様にして、ブロックBij+2の2層
の属性は床、1層の属性は天井、0層の属性は床であ
り、ブロックBij+3の1層の属性は天井、3層の属
性は床、2層の属性は天井、0層の属性は床であり、ブ
ロックBij+4の1層の属性は天井、0層の属性は床
である。
【0088】従って、図16(B)のレイヤー属性テー
ブル730の各ブロックに対応するレイヤー属性データ
LZDij〜LZDij+4には、それぞれ前記各ブロ
ックを構成する層の属性を表すデータが記憶されてい
る。図17(B)は、レイヤー属性データの具体的構成
を説明するための図である。レイヤー属性テーブル73
0に格納されているレイヤー属性データLZDijは、
図17(B)に示すように2桁の16進数であるが、こ
れを2進数で表すと8ビットのデータで表すことが出来
る。ここにおいて、図17(B)に示すように、8ビッ
トのデータの各ビットで0層〜7層までの属性データを
表すよう構成している。すなわち属性が天井の場合該当
するビットは1にし、属性が床の場合該当するビットは
0にして格納する。
【0089】例えば、ブロックBijは、0層の属性が
床なので0層の属性を表すビットである右端の1ビット
は0になっている。また、ブロックBij+1は、0層
の属性が床なので0層の属性を表すビットである右端の
1ビットは0、1層の属性が天井なので1層の属性を表
すビットである右からの2ビット目は1、2層の属性が
床なので2層の属性を表すビットである右から3ビット
は0になっている。なお、対応する層がないときは、そ
のビットは0になっている。
【0090】このようにして各ブロックを構成する層の
状態に基づき作成されたレイヤー属性データLZDij
がレイヤー属性テーブル730に格納されている。
【0091】3.2 頂点情報データとポリゴン傾き情
報データ 図22に示すように頂点情報テーブル750とポリゴン
傾き情報テーブル760は、各ブロック毎、さらにレイ
ヤー毎に個々に有している。また751、752…は同
一ブロックの異なるレイヤーの頂点情報テーブルを示し
ている。761、762…は同一ブロックの異なるレイ
ヤーのポリゴン傾き情報情報テーブルを示している。
【0092】頂点情報テーブル750とは、頂点座標を
含む頂点情報データが格納されているテーブルであり、
図10はそのデータ構造を説明するための図である。同
図に示すように頂点情報データは、頂点のX座標を表す
データTX、Z座標を表すデータTZ、高さ(Y座標)
を表すデータHと、該頂点と隣あう頂点の識別番号であ
る頂点ナンバーVN0、VN1…、該頂点と隣あう頂点
を含むポリゴンの識別番号であるポリゴンナンバーPN
0、PN1…を含んで構成されている。ここにおいて頂
点ナンバーVNi(i=0、1…)とポリゴンナンバー
PNi(i=0、1…)は1セットのデータとなってい
る。また、頂点ナンバーVNiの配列順序は、地形オブ
ジェクトをX−Z平面上に平行投影した場合に、該頂点
の回りの隣り合う頂点を基準軸から反時計回りの方向の
順番になるよう構成されている。
【0093】また、前記頂点の識別番号及びポリゴンの
識別番号はそれぞれ頂点情報データテーブル750、ポ
リゴン傾き情報テーブル760の当該頂点又はポリゴン
に対応するデータをアクセスする際のインデックスとな
るよう構成されている。
【0094】ここで地形オブジェクト410を表す地形
のデータがどの様に頂点情報データとして記憶されてい
るか、具体例をあげて説明する。図11は、サンプル地
形をX−Z平面に平行投影した場合の頂点とポリゴンの
関係を表す図である。同図に示す外枠510は1ブロッ
クの領域を表している。
【0095】なお、1ブロック内は、X軸方向、Z軸方
向にそれぞれグリッドという基準単位で0からB(16
進数)に区切られており、本実施の形態では、地形オブ
ジェクト構成するポリゴンの頂点は、グリッド上に配置
されるよう構成されている。この様に構成することで、
各ポリゴンのX座標、Z座標を表すデータを、単位グリ
ッドの整数倍として表すことができ、後述する角度テー
ブル780を用いた処理を行うのに都合がよいからであ
る。
【0096】本実施の形態では、各ブロック毎に、図1
1に示すサンプル地形の頂点VT0〜VT7、ポリゴン
PG0〜PG5のように頂点及びポリゴンに識別番号を
与え、データの識別及びデータアクセスの際のインデッ
クスとして利用している。
【0097】従って、図10に示す前記頂点情報テーブ
ル750の頂点情報データの0番目520から順に、前
記頂点VT0、VT1…の頂点情報データが格納され
る。例えば、VT3の頂点情報データは、図10に示す
前記頂点情報テーブルの頂点情報データの3番目530
に以下のように格納される。
【0098】頂点のX座標を表すデータTXには、該ブ
ロック内のX軸方向のグリッドの値である5を表すデー
タが、頂点のZ座標を表すデータTZには、該ブロック
内のZ軸方向のグリッドの値である7を表すデータがそ
れぞれ格納されている。この様に頂点情報データのT
X、TZは該ブロック内での相対座標が格納されてい
る。頂点の高さ(Y座標)を表すデータHには、該頂点
VT3のワールド座標系における高さ(Y座標の値)を
表すデータが格納されている。
【0099】該頂点と隣あう頂点の識別番号である頂点
ナンバーVN0、VN1…には、それぞれ該頂点から反
時計回りに、VT2、VT0、VT1、VT5、VT4
の識別番号2、0、1、5、4を表すデータ格納されて
いる。この値は、前記頂点情報テーブル750に格納さ
れている各頂点VT2、VT0、VT1、VT5、VT
4の頂点情報データの配列番号でもあるので、隣り合う
頂点の頂点情報が得たい場合のデータのアクセス時にイ
ンデックスとして使用することができる。
【0100】また、該頂点と隣あう頂点を含むポリゴン
の識別番号であるポリゴンナンバーPN0、PN1…に
は、該頂点と隣あう頂点を結ぶ稜線の時計回り側に位置
するポリゴンPG3、PG1、PG0、PG2、PG4
の識別番号3、1、0、2、4を表すデータ格納がされ
ている。この値は、後述するポリゴン傾き情報テーブル
760に格納されている各ポリゴンPG3、PG1、P
G0、PG2、PG4のポリゴン傾き情報データの配列
番号でもあるので、頂点の回りのポリゴン傾き情報が得
たい場合のデータのアクセス時にインデックスとして使
用することができる。
【0101】次に、ポリゴン傾き情報テーブル760及
びポリゴン傾き情報データについて説明する。ポリゴン
傾き情報テーブル760とは、各ポリゴンの傾き情報を
表すデータであるポリゴン傾き情報データが格納されて
いるテーブルであり、図18はそのデータ構造を説明す
るための図である。ポリゴンの傾き情報とは、ポリゴン
を含む平面のワールド座標系におけるX軸方向、Z軸方
向に対するY軸方向の傾きを表す情報をいい、図18の
mi(i=0、1、…)ni(i=0、1、…)にそれ
ぞれ格納されている。
【0102】本実施の形態では、各ブロック及び各レイ
ヤー毎に、ポリゴンに識別番号が与えられ、該識別番号
順に、ポリゴン傾き情報データテーブル760に格納さ
れている。例えば、図11に示すようなポリゴンで構成
された地形の場合、図18に示す前記ポリゴン傾き情報
テーブル760のポリゴン傾き情報データの0番目54
0から順に、前記頂点PG0、PG1…のポリゴン傾き
情報データが格納されている。
【0103】ここで、ポリゴンを含む平面のワールド座
標系におけるX軸方向、Z軸方向に対するY軸方向傾き
について、図19を用いて説明する。図19には、3つ
頂点V1、V2、V3からなるポリゴンαと該ポリゴン
αを含む平面βが示されている。該ポリゴンαを含む平
面βとは、該ポリゴンαの3つ頂点V1、V2、V3を
含む平面のことである。このとき、V1を原点として、
ワールド座標系のX軸、Z軸、Y軸にそれぞれ平行なボ
ディ座標系の座標軸、Xb軸、Zb軸、Yb軸を想定
し、図19に示すax(V1とV2のX座標の差)、c
z(V1とV3のZ座標の差)、by(V1とV2のY
座標の差)、dy(V1とV3のY座標の差)とする
と、X軸方向に対するY軸の傾きとして、次式で示され
るmを使用している。
【0104】m = by ÷ ax すなわちX軸方向に対するY軸の傾きとは、該ポリゴン
αを含む平面βとXY平面との交線の傾きを示してい
る。
【0105】また、Z軸方向に対するY軸の傾きとし
て、次式で示されるnを使用している。
【0106】n = dy ÷ cz すなわちZ軸方向に対するY軸の傾きとは、該ポリゴン
αを含む平面βとZY平面との交線の傾きを示してい
る。
【0107】本実施の形態では、この様にして演算され
るm、nの値を各ポリゴン毎に予め演算して、前記ポリ
ゴン傾き情報テーブル760に格納している。
【0108】(4) 衝突判定の基本となるアルゴリズ
ム 次に、上述したような構成で記憶されている衝突判定用
地形データを用いておこなう衝突判定の基本となるアル
ゴリズムについて説明する。図8は、1のヒットチェッ
クポイント(以下HCPという)と一般的な地表面であ
る地形オブジェクトとの衝突判定をおこなうアルゴリズ
ムを表したフローチャート図である。なお、一般的な地
表面とは、1つのみの層からなる通常の地表面をさし、
複数の層を含む場合は後述する。
【0109】同図に示すように、まず、HCPを含みY
軸に平行な直線が地形オブジェクトを構成するポリゴン
と交わる点(HCP判定点という)を有するポリゴン
(以下判定対象ポリゴンという)を検出する(ステップ
10)。
【0110】HCP、HCP判定点、及び判定対象ポリ
ゴンの関係を具体的に示すと次のようになる。図9は、
HCPと地形オブジェクト(図7の地形オブジェクト4
10のブロックB47部分)をX−Z平面上に平行投影
した図である。同図に示すようにHCPであるP1は、
ポリゴンaと重なっており、該ポリゴンaが判定対象ポ
リゴンとなり、該ポリゴンa上のP1と重なる点がHC
P判定点H1となる。
【0111】判定対象ポリゴンを検出したら、該判定対
象ポリゴン上のHCP判定点の高さ(Y座標)を演算す
る(ステップ20)。ここにおいて、HCPと一般的な
地表面が衝突していない場合には、HCPが地表面より
上にある。すなわち衝突していない場合には、HCPの
高さ(Y座標)が、HCP判定点の高さ(Y座標)より
大きい。従って、両者の高さ(Y座標)を比較して(ス
テップ30)、HCPの高さ(Y座標)が、HCP判定
点の高さ(Y座標)より大きい場合には、衝突無しの判
定を行い(ステップ40)、小さい場合には、衝突有り
と判定する(ステップ50)。
【0112】(5) 判定対象ポリゴン検出の原理及び
判定対象ポリゴン検出部154の処理の内容 次に、判定対象ポリゴン検出(ステップ10)の原理及
び判定対象ポリゴン検出部154が行っている処理の内
容について説明する。
【0113】判定対象ポリゴンを検出する際には、まず
地形オブジェクト410を構成するポリゴンの頂点のう
ちX−Z平面上の距離が近い頂点を選択する。該頂点を
含むポリゴンが判定対象ポリゴンである可能性が最も高
いからである。X−Z平面上の距離が近い頂点とは、H
CPと地形オブジェクトをX−Z平面上に平行投影した
場合、該X−Z平面上でHCPに近い頂点にあたり、例
えば、図9において、HCPであるP1に最も近い頂点
は、V1である。従って、このV1を含むポリゴンa
が、P1と重複する判定対象ポリゴンとなる可能性が高
い。
【0114】しかし、例えば、HCPがP1’である場
合前記X−Z成分上の距離が最も近い頂点はV3である
が、判定対象ポリゴンはV3を含まないポリゴンbであ
る。従って、X−Z成分上の距離が近い頂点を選択した
後、該頂点を含むポリゴンが判定対象ポリゴンであるか
否かのチェックを行わなければならない。
【0115】図20は該頂点を含むポリゴンが判定対象
ポリゴンであるか否かのチェックの原理を説明するため
の図である。図20(A)に示すHCPであるP1に対
して、X−Z成分上の距離が近い頂点としてV1が選択
された場合、該頂点V1を含むポリゴンaが判定対象ポ
リゴンであるか否は、次のようにして行う。
【0116】X−Z平面上でP1が平行投影されたポリ
ゴンa内にあるためには、V1、V2を通る直線の右上
方の領域R1にP1が無いこと及び、V2、V3を通る
直線の左側の領域R2にP1が無いこと及び、V3、V
1を通る直線の右下方の領域R3にP1が無いことが確
認されればよい。V1、V2を通る直線の右上方の領域
R1にP1が無いことは、図20(A)に示すθ1>θ
v1であることを確認すればよい。ここにおいて、θ1
はV1からZ軸に平行に立てた基準軸Zv1とV1とP1
を結ぶ線分の間の角度であり、θv1とは前記基準軸Zv1
とV1とV2を結ぶ線分の間の角度である。θ1はP1
とV1のX座標、Z座標の差より三角関数(tanθ)
を用いて求めることが出来る。また、θv1もV1とV2
のX座標、Z座標の差より同様にして求めることができ
る。
【0117】同様にして、V2、V3を通る直線の左側
の領域R2にP1が無いことは、図20(A)に示すθ
2>θv2であることを確認すればよい。またV3、V1
を通る直線の右下方の領域R3にP1が無いことは、図
20(A)に示すθ3>θv3であることを確認すればよ
い。
【0118】しかし、例えば図20(B)のような場合
は、X−Z成分上の距離が近い頂点V4が選択されて
も、該頂点V4を含むポリゴンb、ポリゴンc、ポリゴ
ンdはp1’を含まず判定対象ポリゴンではない。従っ
てこの様な場合は、前述した判定対象ポリゴンであるか
否かのチェックを各ポリゴンb、ポリゴンc、ポリゴン
dについて行ったあと、その処理結果から、P1はV4
とV6を結ぶ直線及びV4とV5を結ぶ直線で区切られ
た領域R4にあることが判明するので、頂点v5に対し
て、それが判定対象ポリゴンの頂点であるか否かの判定
を行う。
【0119】ところで、本実施の形態では、θv1、θ
v2、θv3等の各頂点間のX座標、Z座標の差を利用
して角度を求めることができる場合の演算負荷を軽減す
るために、判定対象ポリゴン検出部154内に角度テー
ブル記憶部152を有している。
【0120】図21は角度テーブルのデータ構造を表し
ている。同図に示すように、角度テーブルには、X座標
の差とZ座標の差に基づき該当する角度データを検索出
来るようなデータ構造になっている。ここにおいてX座
標の差及びZ座標の差はグリッド単位で表した値であ
る。衝突判定用地形データを、グリッド単位で持ってい
るからである。また、各角度データには、X座標の差
(dxとする)及びZ座標の差(dzとする)より三角
関数(tanθ=dz/dx)でえられるθの値を表す
データが格納されている。
【0121】例えば、2つの頂点のX座標の差が2(グ
リッド)でZ座標の差が3(グリッド)である場合、角
度データKD23に対応する角度を表すデータが格納さ
れている。
【0122】ここにおいて、本実施の形態では、各頂点
はすべてグリッド上になるよう構成されているので、2
つの頂点のX座標の差及びZ座標の差は、常に整数値で
表される。従って、X座標の差及びZ座標の差をインデ
ックスとして角度テーブルから該当する角度を検索する
だけでよいため、衝突判定時の演算負荷を軽減すること
が出来る。
【0123】(6) HCP判定点の高さ演算の原理及
び高さ演算部156の処理の内容 次に、検出した判定対象ポリゴン上のHCP判定点の高
さ(Y座標)演算(ステップ20)の原理及び処理の具
体的内容について説明する。以下に述べる処理は高さ演
算部156が行っている。なお高さ演算部156は、第
三座標軸値演算手段として機能するものである。
【0124】HCP判定点の高さは、HCP判定点のX
座標及びZ座標と、判定対象ポリゴンの1の頂点のX座
標及びZ座標と高さ(Y座標)から次のようにして求め
ることが出来る。すなわち、図19において、前記1の
頂点を頂点Aとして、HCP判定点をPとする。頂点A
及びHCP判定点Pはいずれも判定対象ポリゴン上の点
なので、同一平面上にあることになる。従って該平面を
平面βとすると、該平面βのX軸方向に対する傾きm、
Z軸方向に対する傾きnを用いて求めることが出来る。
例えば、頂点Aから点PへのX軸方向への距離をex、
頂点Aから点PへのZ軸方向への距離をez、頂点Aの
高さをhとすると、HCP判定点Pの高さHは次式で求
められる。
【0125】 H = m×ex + n×ez + h なお、この演算に用いるX軸方向に対する傾きm、Z軸
方向に対する傾きnは、該当するブロックのポリゴン傾
き情報テーブル760から、判定対象ポリゴンの識別番
号をインデックスとしてポリゴン傾き情報データを読み
出して、格納されているm、nの値を使用する。
【0126】(7) 複数のレイヤーを有する場合のア
ルゴリズム及び衝突判定部150の処理の内容 次に、図8に示した基本となるアルゴリズムを、複数の
レイヤー(層)を有する場合に拡張したアルゴリズムに
ついて説明する。本実施の形態では、地形オブジェクト
は複数のレイヤー(層)を有しているため衝突判定部1
50は以下に示す、拡張したアルゴリズムにそって処理
を行っている。
【0127】図23は、複数のレイヤー(層)を有する
場合に拡張したアルゴリズムを用いて、1のHCPと地
形オブジェクトの衝突判定を行う場合のフローチャート
図である。
【0128】まず、判定開始時に衝突判定部150は、
衝突判定に用いるデータ格納エリアuh、dh、uz、
dzに初期値を設定する。uhはHCPから上方に一番
近い高さのHCP判定点の高さを格納するエリアであ
り、dhはHCP(自分)の高さから下方に一番近い高
さのHCP判定点の高さを格納するエリアである。ま
た、uzはHCPから上方に一番近い高さのHCP判定
点の属するレイヤーの属性を格納するエリアであり、d
zはHCPから下方に一番近い高さのHCP判定点の属
するレイヤーの属性を格納するエリアである。uhには
大きなダミー値を、dhには小さなダミー値をセット
し、uzには天井属性を、dzには床属性をセットする
(ステップ110)。
【0129】ステップ130からステップ180までの
処理は、処理対象となっているブロックに存在するレイ
ヤー毎におこなわれる。まず衝突判定部150の判定対
象ポリゴン検出部154は、前述した(5)の処理を行
うことにより該レイヤーにおける判定対象ポリゴンを検
出する(ステップ130)。そして、衝突判定部150
の高さ演算部156は、前述した(6)の処理を行うこ
とにより該レイヤーにおけるHCP判定点の高さphを
求める(ステップ140)。
【0130】ステップ150からステップ190までの
処理は、当該レイヤーのHCP判定点の高さphが、H
CP(自分)の高さから下方に一番近い高さ又は上方に
一番近い高さのいずれかに該当するかを判定し、いずれ
かに該当すれば、当該レイヤーの属性を、いずれかのレ
イヤーの属性を格納するエリアであるdz又はuzに格
納する処理を行っている。
【0131】すなわち、衝突判定部150は、検出した
HCP判定点の高さphとHCPの高さ(自分の高さ)
cpの大小関係を調べる(ステップ150)。
【0132】cp>phであれば、自分の下方にHCP
判定点が位置するので、自分の高さから下方に一番近い
高さを格納するエリアdhの値とその大小関係を調べる
(ステップ160)。このときph>dhであれば、当
該レイヤーで検出したHCP判定点の高さphが自分の
高さから下方に一番近い高さとなるので、該phを新た
なdhの値とする。また、当該レイヤーの属性をHCP
から下方に一番近い高さのHCP判定点の属するレイヤ
ーの属性を格納するエリアdzに格納する(ステップ1
70)。
【0133】このときのレイヤーの属性は、当該レイヤ
ーの層番号に基づき、(3)3.1で説明した方法で衝
突判定用地形データ記憶部160のレイヤー属性テーブ
ル730から読み出す。
【0134】また、cp>phでなければ、自分の上方
(または同位置)にHCP判定点が位置するので、自分
の高さから上方に一番近い高さを格納するエリアuhの
値とその大小関係を調べる(ステップ180)。このと
きph<uhであれば、当該レイヤーで検出したHCP
判定点の高さphが自分の高さから上方に一番近い高さ
となるので、該phを新たなuhの値とする。また、当
該レイヤーの属性をHCPから上方に一番近い高さのH
CP判定点の属するレイヤーの属性を格納するエリアu
zに格納する(ステップ190)。
【0135】この様にして1のレイヤーについての、処
理をおえると、衝突判定部150は未処理のレイヤーが
あるかどうか判定し(ステップ200)、あればステッ
プ130の前に戻り、再びステップ130からステップ
200までの処理をおこなう。
【0136】なければ、dz及びuzに格納されている
値に基づき衝突判定を行う。すなわち、下方の属性dz
が床でかつ上方の属性uzが天井ならば(ステップ21
0)、当該1のHCPとは衝突無しと判定する(ステッ
プ220)。それ以外の場合は当該1のHCPとは衝突
有りと判定する(ステップ230)。
【0137】なお、本実施の形態では、図6に示すよう
に人力飛行機210に乗った仮想プレーヤ220に対し
て、6個のHCP(P1〜P6)を設定しているので、
各HCP(P1〜P6)についてそれぞれ、図23に示
す処理を行う必要がある。そこで、衝突判定部150で
は、空間演算部110のヒットチェックポイント設定部
112から、6個のHCP(P1〜P6)の位置情報を
受け取り、各HCP(P1〜P6)についてそれぞれ、
図23に示す処理を行い、いずれのHCP(P1〜P
6)についても衝突無し判定であれば、最終的に衝突無
しと判断し、 いずれかについて衝突有り判定であれ
ば、最終的に衝突有りと判断する。なお、衝突判定部1
50は、このような衝突判定を1フレームの画像合成に
対応するよう1/60秒毎に行っている。
【0138】また、本発明の実施の形態では、レイヤー
が複数ある場合を例に取り説明したが、レイヤーが単数
であってもかまわない。
【0139】また、衝突判定用地形データの構成は好ま
しい例であり、地形オブジェクトを表す各頂点の座標を
含んでいれば他の構成でもよい。さらに好ましくは、ポ
リゴンの傾きを表すデータを含んでいれば、他の構成で
もよい。
【0140】また、本発明の実施の形態では、水平方向
(X−Z方向)に広がりもつ通常の地平面を想定した地
形オブジェクトとの衝突を判定する場合を例にとり説明
したため、第一の座標軸がX軸、第二の座標軸がZ軸、
第三の座標軸がY軸に対応していたがこれに限られな
い。すなわち、Y−Z方向、X−Y方向に広がりをもつ
地形オブジェクトとの衝突を判定する場合には、それぞ
れ第一及び第二の座標軸がY軸及びZ軸、第三の座標軸
がX軸、第一及び第二の座標軸がX軸及びY軸、第三の
座標軸がZ軸に対応するよう構成してもよい。
【0141】さらに、以上説明した本発明は家庭用、業
務用を問わずあらゆるハードウェアを用いて実施可能で
ある。図24は現在広く用いられているタイプのゲーム
装置のハードウェア構成の一例を示す図である。同図に
示すゲーム装置はCPU1000、ROM1002、R
AM1004、情報記憶媒体1006、音声合成IC1
008、画像合成IC1010、I/Oポート101
2、1014がシステムバス1016により相互にデー
タ送受信可能に接続されている。そして前記画像合成I
C1010にはディスプレイ1018が接続され、前記
音声合成IC1008にはスピーカ1020が接続さ
れ、I/Oポート1012にはコントロール装置102
2が接続され、I/Oポート1014には通信装置10
24が接続されている。
【0142】前記情報記憶媒体1006は、CD−RO
M、ゲームROM、メモリカード等のゲーム装置本体と
着脱可能に設けられる記憶手段を意味し、ゲーム内容に
応じた所定の情報を書き込み保存することのできるタイ
プも用いられる。また、前記ROM1002は、ゲーム
装置本体に固定して設けられる記憶手段である。これら
は、ゲームプログラムやゲームステージの空間情報等の
ゲームタイトルに関係する情報の他、ゲーム装置本体の
初期化情報等のゲームタイトルに関係しない情報を記憶
する手段である。
【0143】前記コントロール装置1022は、遊戯者
がゲーム進行に応じて行う判断の結果をゲーム装置本体
に入力するための装置であり、家庭用に広く用いられて
いるパッドタイプのものや、業務用ドライブゲームに用
いられるハンドル、アクセル等が挙げられる。
【0144】そして、前記情報記憶媒体1006やRO
M1002に格納されるゲームプログラムやシステムプ
ログラム又は前記コントロール装置1022によって入
力される信号等に従って、前記CPU1000はゲーム
装置全体の制御や各種データ処理を行う。前記RAM1
004はこのCPU1000の作業領域として用いられ
る記憶手段であり、前記情報記憶媒体1006や前記R
OM1002の所定の内容、あるいはCPU1000の
演算結果等が格納される。
【0145】さらに、この種のゲーム装置には音声合成
IC1008と画像合成IC1010とが設けられてい
て音声や画像の好適な出力が行えるようになっている。
前記音声合成IC1008は情報記憶媒体1006やR
OM1002に記憶される情報に基づいて効果音やゲー
ム音楽等を合成する回路であり、合成された音楽等はス
ピーカ1020によって出力される。また、前記画像合
成IC1010はRAM1004、ROM1002、情
報記憶媒体1006等から送られる画像情報に基づいて
ディスプレイ1018に出力するための画素情報を合成
する回路である。
【0146】また、前記通信装置1024はゲーム装置
内部で利用される各種の情報を外部とやりとりするもの
であり、他のゲーム装置と接続されてゲームプログラム
に応じた所定の情報を送受したり、通信回線を介してゲ
ームプログラム等の情報を送受することなどに利用され
る。
【0147】以上説明した一般的なゲーム装置を用いて
も本発明は容易に実施可能である。例えば、前記操作部
20はコントロール装置1022に対応し、前記空間演
算部110及び衝突判定部150はCPU1000及び
ROM1002又は情報記憶媒体1006に格納される
ソフトウェアによって実現される。また、空間情報記憶
部120、オブジェクト画像情報記憶部140は、RA
M1004、ROM1002、情報記憶媒体1006の
いずれかに設けることが可能である。更に、画像合成部
130は画像合成IC1010によって、あるいはCP
U1000と所定のソフトウェアによって実現される。
また、表示部80はディスプレイ1018に対応する。
【0148】
【図面の簡単な説明】
【図1】本実施の形態にかかるゲーム装置の構成の一例
を示す図である。
【図2】本実施の形態のゲーム装置の構成を示す機能ブ
ロック図である。
【図3】人力飛行機の位置及び姿勢と、位置情報及び方
向情報との関係を示す図である。
【図4】本実施の形態にかかるゲーム装置の空間情報記
憶部に記憶される情報を示す図である。
【図5】本実施の形態にかかるゲーム装置の画像合成処
理を説明する図である。
【図6】同図(A)〜(C)は、本実施の形態の人力飛
行機に乗った仮想プレーヤの所定ヒットチェックポイン
トを表したポリゴン図であり、同図(A)は側面図を、
同図(B)は正面図を、同図(C)平面図を表してい
る。
【図7】本実施の形態のゲーム装置のあるゲームステー
ジの仮想3次元空間の地形オブジェクトを構成するポリ
ゴンをX−Z平面に平行投影した図である。
【図8】1のヒットチェックポイント(以下HCPとい
う)と一般的な地表面である地形オブジェクトとの衝突
判定をおこなうアルゴリズムを表したフローチャート図
である。
【図9】地形オブジェクトの一部を構成するポリゴン図
を拡大した図である。
【図10】頂点座標を含む頂点情報データが格納されて
いる頂点情報テーブルのデータ構造を説明するための図
である。
【図11】サンプル地形をX−Z平面に平行投影した場
合の頂点とポリゴンの関係を表す図である。
【図12】複数のレイヤーが重複したポリゴン図であ
る。
【図13】地表面のレイヤーを構成するポリゴン図であ
る。
【図14】地下洞窟の天井面のレイヤーを構成するポリ
ゴン図である。
【図15】地下洞窟の底面のレイヤーを構成するポリゴ
ン図である。
【図16】同図(A)(B)はそれぞれ、レイヤー枚数
テーブルに格納されているレイヤー枚数データ、レイヤ
ー属性テーブルに格納されているレイヤー属性データの
データ構造を説明するための図である。
【図17】同図(A)は地形オブジェクトの仮想的なX
−Y断面を表した図である。 同図(B)は、レイヤー属性データの具体的構成を説明
するための図である。
【図18】ポリゴン傾き情報テーブルに格納されている
ポリゴン傾き情報データのデータ構造を説明するための
図である。
【図19】ポリゴンの傾き情報データの内容を説明する
ための図である。
【図20】同図(A)(B)は該頂点を含むポリゴンが
判定対象ポリゴンであるか否かのチェックの原理を説明
するための図である。
【図21】角度テーブルのデータ構造を表した図であ
る。
【図22】衝突判定用地形データの構成を示した図であ
る。
【図23】複数のレイヤー(層)を有する場合に拡張し
たアルゴリズムを用いて、1のHCPと地形オブジェク
トの衝突判定を行う場合のフローチャート図である。
【図24】ゲーム装置のハードウェア構成の一例を示す
図である。
【図25】本実施の形態にかかるゲーム装置のディスプ
レイに表示されるゲーム画面の一例を示した図である。
【符号の説明】
20 操作部 80 表示部 100 ゲーム空間演算部 110 空間演算部 112 ヒットチェックポイント設定部 120 空間情報記憶部 130 画像合成部 140 オブジェクト画像情報記憶部 150 衝突判定部 152 判定対象ポリゴン検出部 154 角度テーブル記憶部 156 高さ演算部 160 衝突判定用地形データ記憶部
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06T 15/00 - 17/50 A63F 13/00 G06F 17/50

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】 仮想3次元空間内を移動する移動物と前
    記仮想3次元空間内に存在する地形又は建造物をポリゴ
    ンで構成した地形オブジェクトとの衝突演算を行うシミ
    ュレーション装置であって、 前記移動物の移動位置、または移動位置を決定するため
    の移動条件を入力する入力手段と、 前記地形オブジェクトを構成するポリゴンの頂点座標を
    含む衝突判定用地形データを記憶する衝突判定用地形デ
    ータ記憶手段と、 前記移動物に設けた衝突判定用の少なくとも1つのヒッ
    トチェックポイントと前記地形オブジェクトとの衝突判
    定を行う衝突判定手段と、 前記衝突判定手段の判定結果に基づき、表示部に表示す
    る前記仮想3次元空間のシミュレーション画面を合成す
    る画像合成手段とを含み、 前記衝突判定手段は、 前記ヒットチェックポイントを含み第三の座標軸と平行
    な直線が前記地形オブジェクトを構成するポリゴンと交
    わるヒットチェックポイント判定点を含むポリゴンを検
    出する判定対象ポリゴン検出手段と、 前記ヒットチェックポイント判定点の第三の座標軸の値
    を演算する第三座標軸値演算手段とを含み、 前記ヒットチェックポイントと、前記ヒットチェックポ
    イント判定点の第三の座標軸の値の大小関係に基づき衝
    突判定を行うことを特徴とするシミュレーション装置。
  2. 【請求項2】 請求項1において、 前記衝突判定用地形データ記憶手段は、 前記地形オブジェクトを構成するポリゴンに対して該ポ
    リゴンを含む平面の第一の座標軸及び第二の座標軸方向
    に対する第三の座標軸方向の傾きを表すデータを含んで
    記憶するよう構成され、 前記第三座標軸値演算手段は、 前記ヒットチェックポイント判定点の第三座標軸の値
    を、前記衝突判定用地形データ記憶手段に記憶された該
    ポリゴンを含む平面の第一の座標軸及び第二の座標軸方
    向に対する第三の座標方向の傾きを表すデータに基づき
    演算することを特徴とするシミュレーション装置。
  3. 【請求項3】 請求項1、2のいずれかにおいて、 前記地形オブジェクトは、第三の座標軸方向に積層した
    複数のレイヤーを持つよう構成され、 前記衝突判定用地形データ記憶手段は、前記複数のレイ
    ヤー毎に衝突判定用地形データを有し、さらに各レイヤ
    ーとヒットチェックポイントの第三の座標軸方向の大小
    関係と衝突の有無の関係を表すレイヤー属性データを含
    んで記憶するよう構成され、 前記衝突判定手段は、前記レイヤー毎に、該レイヤーの
    地形オブジェクトを構成するポリゴンであって、前記ヒ
    ットチェックポイントの第一の座標軸の値及び第二の座
    標軸の値と等しい第一の座標軸の値及び第二の座標軸の
    値をもつ点であるヒットチェックポイント判定点を有す
    るポリゴンを検出し、 前記各レイヤー毎にヒットチェックポイント判定点の第
    三の座標軸の値を演算し、前記各レイヤー毎のヒットチ
    ェックポイント判定点の第三の座標軸の値、ヒットチェ
    ックポイントの第三の座標軸の値、及びレイヤー属性デ
    ータとに基づき衝突判定を行うことを特徴とするシミュ
    レーション装置。
  4. 【請求項4】 請求項3において、 前記衝突判定用地形データ記憶手段は、同一のレイヤー
    内では、各レイヤー属性データが一意的であるデータと
    して記憶し、 前記衝突判定手段は、 ヒットチェックポイントの第三の座標軸の値と該軸の双
    方向に最も近接する第三の座標軸の値を有するヒットチ
    ェックポイント判定点を有するポリゴンを含む各レイヤ
    ーを検出し、検出された各レイヤーのヒットチェックポ
    イント判定点の第三の座標軸の値、ヒットチェックポイ
    ントの第三の座標軸の値、及び検出されたレイヤーのレ
    イヤー属性データとに基づき衝突判定を行うことを特徴
    とするシミュレーション装置。
  5. 【請求項5】 仮想3次元空間内を移動する移動物と前
    記仮想3次元空間内に存在する地形又は建造物をポリゴ
    ンで構成した地形オブジェクトとの衝突を判定する方法
    であって、 予め記憶された前記地形オブジェクトを構成するポリゴ
    ンの頂点座標を含む衝突判定用地形データを用いて、前
    記移動物に設けた衝突判定用の少なくとも1つのヒット
    チェックポイントと前記地形オブジェクトとの衝突判定
    を行う衝突判定ステップを含み、 前記衝突判定ステップは、 前記ヒットチェックポイントを含み第三の座標軸と平行
    な直線が前記地形オブジェクトを構成するポリゴンと交
    わるヒットチェックポイント判定点を含むポリゴンを検
    出する判定対象ポリゴン検出ステップと、 前記判定対象ポリゴン検出ステップにおいて検出された
    ポリゴン上のヒットチェックポイント判定点の第三の座
    標軸の値を演算する第三座標軸値演算ステップと、 前記ヒットチェックポイントと、前記ヒットチェックポ
    イント判定点の第三の座標軸の値の大小関係に基づき衝
    突判定を行うステップと、を含むことを特徴とする衝突
    判定方法。
  6. 【請求項6】 請求項5において、 前記衝突判定用地形データは、 前記地形オブジェクトを構成するポリゴンに対して該ポ
    リゴンを含む平面の第一の座標軸及び第二の座標軸方向
    に対する第三の座標軸方向の傾きを表すデータを含むよ
    う構成され、 前記第三座標軸値演算ステップは、 前記ヒットチェックポイント判定点の第三座標軸の値
    を、前記衝突判定用地形データ記憶手段に記憶された該
    ポリゴンを含む平面の第一の座標軸及び第二の座標軸方
    向に対する第三の座標軸方向の傾きを表すデータに基づ
    き演算することを特徴とする衝突判定方法。
  7. 【請求項7】 請求項5、6のいずれかにおいて、 前記地形オブジェクトは、第三の座標軸方向に積層した
    複数のレイヤーを持つよう構成され、 前記衝突判定用地形データは、前記複数のレイヤー毎に
    衝突判定用地形データを有し、さらに各レイヤーとヒッ
    トチェックポイントの第三の座標軸方向の大小関係と衝
    突の有無の関係を表すレイヤー属性データを含むよう構
    成され、 前記衝突判定ステップにおいて、前記レイヤー毎に、該
    レイヤーの地形オブジェクトを構成するポリゴンであっ
    て、前記ヒットチェックポイントの第一の座標軸の値及
    び第二の座標軸の値と等しい第一の座標軸の値及び第二
    の座標軸の値をもつ点であるヒットチェックポイント判
    定点を有するポリゴンを検出し、 前記各レイヤー毎にヒットチェックポイント判定点の第
    三の座標軸の値を演算し、前記各レイヤー毎のヒットチ
    ェックポイント判定点の第三の座標軸の値、ヒットチェ
    ックポイントの第三の座標軸の値、及びレイヤー属性デ
    ータとに基づき衝突判定を行うことを特徴とする衝突判
    定方法。
  8. 【請求項8】 請求項7において、 前記衝突判定用地形データは、同一のレイヤー内では、
    各レイヤー属性データが一意的であるデータとして構成
    され、 前記衝突判定ステップにおいて、 ヒットチェックポイントの第三の座標軸の値と該軸の双
    方向に最も近接する第三の座標軸の値を有するヒットチ
    ェックポイント判定点を有するポリゴンを含む各レイヤ
    ーを検出し、検出された各レイヤーのヒットチェックポ
    イント判定点の第三の座標軸の値、ヒットチェックポイ
    ントの第三の座標軸の値、及び検出されたレイヤーのレ
    イヤー属性データとに基づき衝突判定を行うことを特徴
    とする衝突判定方法。
JP08096002A 1996-03-26 1996-03-26 シミュレーション装置及び衝突判定方法 Expired - Fee Related JP3138424B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP08096002A JP3138424B2 (ja) 1996-03-26 1996-03-26 シミュレーション装置及び衝突判定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP08096002A JP3138424B2 (ja) 1996-03-26 1996-03-26 シミュレーション装置及び衝突判定方法

Publications (2)

Publication Number Publication Date
JPH09259303A JPH09259303A (ja) 1997-10-03
JP3138424B2 true JP3138424B2 (ja) 2001-02-26

Family

ID=14152921

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08096002A Expired - Fee Related JP3138424B2 (ja) 1996-03-26 1996-03-26 シミュレーション装置及び衝突判定方法

Country Status (1)

Country Link
JP (1) JP3138424B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6657627B1 (en) 1997-02-18 2003-12-02 Konami Co., Ltd. Video simulation system for calculating distance between characters and applying polygon to polygon plane
KR100816622B1 (ko) * 1997-11-07 2008-03-24 가부시키가이샤 세가 화상 처리 장치 및 화상 처리 방법
CN111068324B (zh) * 2019-11-26 2022-05-17 腾讯科技(深圳)有限公司 虚拟对象控制方法、装置、设备及存储介质
WO2021233046A1 (zh) * 2020-05-20 2021-11-25 腾讯科技(深圳)有限公司 一种碰撞范围确定方法和相关装置

Also Published As

Publication number Publication date
JPH09259303A (ja) 1997-10-03

Similar Documents

Publication Publication Date Title
US6409597B1 (en) Video game machine, screen display method for video game, and recording medium containing screen display program
JP3138423B2 (ja) シミュレーション装置
US20090244064A1 (en) Program, information storage medium, and image generation system
EP0844587B1 (en) Image processor, image processing method, game machine and recording medium
JP3769747B2 (ja) 仮想画像生成装置及びその方法
CN100501768C (zh) 图像处理装置、方法及设备
US7922584B2 (en) Image generation method and information storage medium with program for video game in which operation of the controller beyond a predetermined angle causes a character to attack
US6154197A (en) Virtual image generation method and its apparatus
US7312804B2 (en) Program product, image generation method and image generation system
US6050896A (en) Game image display method and game device
EP0778548B1 (en) Image processor and game machine using the same
WO1995035139A1 (fr) Simulateur 3d et procede de generation d'image
US6878058B1 (en) Image processor and game device with image processor
JP3420870B2 (ja) 画像合成方法、画像合成装置及びゲーム装置
EP0797172A3 (en) Image processor and game apparatus equipped with the same
JP3215306B2 (ja) 画像合成方法及び装置
JP3138424B2 (ja) シミュレーション装置及び衝突判定方法
US6483520B1 (en) Image creating method and apparatus, recording medium for recording image creating program, and video game machine
US6890261B2 (en) Game system, program and image generation method
JP3335445B2 (ja) 3次元シミュレータ装置
JPH11467A (ja) ゲーム装置
JP3523228B2 (ja) ビデオゲーム装置、ビデオゲームにおけるキャラクタの表示方法、プログラム及び記録媒体
JP3968586B2 (ja) ゲーム装置、画像処理方法、及び記録媒体
JP3727098B2 (ja) 画像合成方法及び装置
JP3377490B2 (ja) ゲームシステム及び情報記憶媒体

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20001128

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071208

Year of fee payment: 7

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081208

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091208

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091208

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091208

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101208

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101208

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111208

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111208

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121208

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121208

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131208

Year of fee payment: 13

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees