JP3783735B2 - Image processing apparatus and game apparatus having the same - Google Patents

Image processing apparatus and game apparatus having the same Download PDF

Info

Publication number
JP3783735B2
JP3783735B2 JP13550195A JP13550195A JP3783735B2 JP 3783735 B2 JP3783735 B2 JP 3783735B2 JP 13550195 A JP13550195 A JP 13550195A JP 13550195 A JP13550195 A JP 13550195A JP 3783735 B2 JP3783735 B2 JP 3783735B2
Authority
JP
Japan
Prior art keywords
vehicle
behavior
collision
car
tire
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 - Lifetime
Application number
JP13550195A
Other languages
Japanese (ja)
Other versions
JPH08329273A (en
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.)
Sega Corp
Original Assignee
Sega Corp
Sega Games Co 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 Sega Corp, Sega Games Co Ltd filed Critical Sega Corp
Priority to JP13550195A priority Critical patent/JP3783735B2/en
Publication of JPH08329273A publication Critical patent/JPH08329273A/en
Application granted granted Critical
Publication of JP3783735B2 publication Critical patent/JP3783735B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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

  • Closed-Circuit Television Systems (AREA)
  • Processing Or Creating Images (AREA)

Description

【0001】
【産業上の利用分野】
この発明は画像処理装置に係わり、詳しくはゲーム装置に関するものであり、さらに詳しくは、ドライビング(カーレース)ゲームのように、自動車などのオブジェクト(対象体)をプレイヤの操作に応答してモニタ上を移動させるゲ−ムプログラムを搭載したゲーム装置に関する。
【0002】
【従来の技術】
ゲーム装置はコンピュータ技術の発達に伴い家庭用、業務用を問わず、より鮮明で、よりリアルな画像のものが求められている。ゲーム装置は一般に、予め記憶したゲ−ムプログラムを実行するコンピュータ装置を内蔵したゲーム装置本体と、ゲ−ムで表現させるオブジェクトの移動を指令する操作信号をコンピュータ装置に与える操作装置と、コンピュータ装置でゲ−ムプログラムが実行されることによるゲ−ム展開に伴う画像を表示するディスプレイと、そのゲ−ム展開に伴う音響を発生させる音響装置とを備えている。
【0003】
そして、近年のゲーム装置は、画面をより高品位で迫力があるものにするために、仮想の3次元座標空間内に画像データを定義してオブジェクト(キャラクタ)、そして背景等を配置し、これらを所定の視点から見た映像をディスプレイに表示するようになっている。
【0004】
このような構成のゲーム装置の一分野として、ドライビングゲーム(カーレースゲーム)を扱うゲーム装置が存在する。ドライビングゲ−ムでは車の動きを極力リアルにシミュレート(模擬)することが求められているし、かつ重要でもある。
【0005】
従来、このシミュレーションは、重心位置などの1つの質点に車を置き換えた単点モデルを採用している。車(のタイヤ)と地面との当たり(衝突、あるいはコリジョンとも云う。)具合は、その1点でのみ判定し、サスペンションなどの計算は行わずにシミュレーションの簡略化を図っている。このため車のピッチ、ロール、ヨー方向の動きは画面上で全くないか、またはステアリング角が一定値以上になるとドリフトさせるなど、単にある一定条件下での単調な動きに止まっている。
【0006】
このような単点モデルに拠るシミュレーションは処理が簡単であり、製作者の意図する車の動きを容易に出せるものの、シミュレートされる車の動きにどうしても不自然さが伴い、ゲ−ムとしてはリアリティに欠け、ゲーム装置の付加価値に乏しいという問題がある。
【0007】
そこで、車を1つの質点と考えるのではなく、4つのタイヤが路面に接してそれぞれ路面から力を受け、その力がサスペンションを介して車体に作用し、その結果、車の動きが決定されるという本格的なシミュレーションをリアルタイムに行い、車の動きを非常にリアルに表現することを可能にしたゲーム装置も考えられている。
【0008】
【発明が解決しようとする課題】
カーレースゲームを例にすると、対象体の挙動を本格的にシミュレートしようとすると、ハンドルによって選択あるいは指向された方向以外の方向にも通常の運動力学の法則にそって動きを与えることが必要である。例えば、車にスピン、テールスライド、あるいは4輪ドリフト等の動きを与えることが本格的なシミュレーションを実行する上で好ましい。
【0009】
この際、実際の車のように、4輪の各車輪毎に加わる力等を演算しながら車全体の挙動をシミュレートすることが望ましいと云えるが、これでは、どうしてもCPUに対する計算負荷が増大し、勢いこの計算を確実に行おうとすると他の画像処理が十分実行されないという問題がある。勿論、計算能力を高めたCPUによってこれらの不都合を無くすようにすることも可能であるが、これでは製造コストが増すばかりでなく、計算に要する時間も長くなることがある。また、4輪の各車輪毎に加わる力等を演算するようにするためのプログラム作成に手間を要するという問題もある。
【0010】
また、遊戯者や操作者からの操作に迅速に応答しなければならない画像処理装置、特にゲーム装置にとっては、計算に要する時間が長くなることは不都合であり、ひいては、ゲーム装置が遊技者や操作者に趣味感や興味感が損なわれるという問題がある。
【0011】
さらに、従来、この種のゲーム装置においては、対象体である車同士の衝突判定や衝突判定後の各種画像処理をするにあたり、これらの処理を迅速かつ的確に行う点の配慮はされていなかった。
【0012】
この発明は、このような課題を解決するために、CPUに与える演算負荷を増すること無く、車両などの対象体の挙動をより実際的にシミュレートして表示することとが可能な画像処理装置を提供することを第1の目的とするものである。また、第2の目的は、対象体の挙動を的確に制御できるモデルを適用した画像処理装置を提供することにある。さらに、第3の目的は、これらの目的を達成することにより、趣味感や興味感に優れたゲーム装置を提供することにある。さらに、第4の目的は衝突判定あるいは衝突判定における画像処理を迅速かつ的確に行える画像処理装置を提供するにある。
【0013】
【課題を解決するための手段】
前記第2の目的、又は、これに加えて第1の目的を達成するために、請求項4記載の発明は、画面にある対象体の移動に関する操作情報を出力する操作手段と、この操作情報に基づいて前記対象体の挙動をシミュレートし、これを表示手段に出力するシミュレート手段と、を備える画像処理装置において、前記シミュレート手段は、前記対象体が成す挙動に応じて、この対象体を複数の部分からなるモデルとするモデル化手段と、各部分にこの対象体の挙動計算に必要な特性値を与える特性値付与手段とを備えることを特徴とする。また、請求項1記載の発明は、入力装置からの操作信号に基づいて仮想空間内での対象体の挙動をシミュレートして表示装置に表示させる画像処理方法において、複数の部分からなるモデルで構成された前記対象体について、該モデルにおける部分毎に前記対象体の挙動計算に必要な特性値を計算するステップと、前記操作信号と前記計算された特性値とに基づいて前記対象体が特殊挙動を必要とするか否かを判定するステップと、前記対象対が特殊挙動を必要とすると判定された場合に、前記操作信号と前記計算された特性値とに基づいて、前記対象体の特殊挙動の種類を決定するステップと、を備えることを特徴とする。請求項2記載の発明は、前記操作信号と前記決定された特殊挙動の種類に基づいて前記対象体の全体挙動を計算するステップをさらに有することを特徴とする。また、請求項3記載の発明は、入力装置からの操作信号に基づいて仮想空間内での対象体の挙動をシミュレートして表示装置に表示させる画像処理方法において、複数の部分からなるモデルが適用された前記対象体について、該モデルにおける部分毎に前記対象体の挙動計算に必要な特性値を計算するステップと、前記操作信号と前記計算された特性値とに基づいて前記対象体の特殊挙動を制御するステップと、を備えることを特徴とする。
【0014】
請求項5記載の発明は、前記対象体がプログラム上の車であり、前記モデル化手段は、この対象体の滑動挙動に対して、この対象体を進行方向に沿って均等に2分割するモデルを形成することを特徴とする。請求項6記載の発明は、前記対象体がプログラム上の車であり、前記モデル化手段は、この対象体の揺動挙動に対して、この車の重心と前後輪とを結合する二つの多角形からなるモデルを形成することを特徴とする。
【0015】
請求項7記載の発明は、前記特性値付与手段が前記各部分に仮想的なベクトルを与え、前記シミュレート手段は、このベクトルの合成ベクトルに基づいて車の挙動を制御することを特徴とする。請求項8記載の発明は、前記シミュレート手段が、前記ベクトルの変化に伴う車体の揺動方向の姿勢変化をシミュレートすることを特徴とする。請求項9記載の発明は、前記合成ベクトルをロール方向とピッチング方向とに分解し、各方向における姿勢変化を抑制する抑制手段をさらに備えることを特徴とする。
【0016】
また、請求項10記載の発明は、第1の目的を達成するために、画面にある対象体の移動に関する操作情報を出力する操作手段と、この操作情報に基づいて前記対象体の挙動をシミュレートし、これを表示手段に出力するシミュレート手段と、を備える画像処理装置において、前記シミュレート手段は、前記対象体に対して、この対象体の挙動を決定するための二つの特性値を与える特性値付与手段を備え、この特性値に応じてこの対象対の挙動をシミュレートすることを特徴とする。
【0017】
さらに、請求項11記載の発明は、前記請求項4記載の発明と同様な目的を達成するために、画面にある対象体の移動に関する操作情報を出力する操作手段と、この操作情報に基づいて前記対象体の挙動をシミュレートし、これを表示手段に出力するシミュレート手段と、を備える画像処理装置において、前記シミュレート手段は、前記対象体を前記操作手段によって選択された方向と予め定められたこれ以外の方向に向けて移動させる移動方向制御手段と、この対象体に関する衝突を判定する衝突判定手段と、を備え、この衝突判定が肯定されたときに、前記移動方向制御手段は、前記対象体を非選択方向に向けて移動させる制御を実行することを特徴とする。
【0018】
請求項12記載の発明は、前記シミュレート手段が、さらに、前記対象体に対する衝突点を演算する衝突点演算手段を備え、前記移動方向制御手段は、この衝突点が前記対象体に対して成す位置に応じて、前記対象体の移動方向を制御することを特徴とする。
【0019】
請求項13記載の発明は、前記シミュレート手段が、前記衝突点が前記対象体に対して所定の角度範囲にあるか否かを判定する判定手段を備え、前記移動方向制御手段は、この衝突点がこの所定角度内に在るときに、この対象体の移動方向を前記非選択方向にすることを特徴とする。請求項14記載の発明は、前記非選択方向が、仮想的な3次元空間における前記対象体の高さ方向であることを特徴とする。
【0020】
請求項15記載の発明は、前記シミュレート手段が、対象体が移動する方向を算出するとともに、この移動方向を前記移動方向制御手段に出力する移動方向算出手段を備え、前記移動方向制御手段はこの移動方向に基づいて、前記対象体の移動方向を制御することを特徴とする。請求項16記載の発明は、前記衝突判定手段が、複数の対象体同士の衝突を判定する手段であって、前記移動方向算出手段は、この複数の対象体が互いになす角度を算出し、この角度を前記移動方向制御手段に出力することを特徴とする。
【0021】
さらに、第3の目的を達成するために、請求項17に記載の発明は、既述の画像処理装置と、画像処理結果を表示する表示手段とを備えるゲーム装置に相当するものである。
【0022】
さらに、第4の目的を達成するために、請求項18記載の発明は、画面上に出現する対象体に対する衝突を判定し、この衝突判定結果に基づいてこの対象体の挙動をシミュレートするシミュレート手段を備える画像処理装置において、このシミュレート手段は、前記対象体の移動方向を算出する移動方向算出手段を備え、得られた移動方向に基づいてこの対象体に対する衝突を判定することを特徴とする。請求項19記載の発明は、前記移動方向算出手段が移動する複数の対象体が互いに成す角度を前記移動方向として算出し、前記シミュレート手段はこの角度に基づいて対象体同士の衝突を判定することを特徴とする。また、請求項20記載の発明は、入力装置からの操作信号に基づいて仮想空間内での車のタイヤの回転をシミュレートして表示装置に表示させる画像処理方法において、前記車のタイヤの回転が逆回転して見えないように前記車のタイヤの回転数を制御することを特徴とする。請求項21記載の発明は、前記画像処理方法は、前記操作信号に基づいて算出される車のタイヤの回転数と、前記車のタイヤの回転が逆回転する映像を与えない回転数とを比較することにより、前記車のタイヤの回転数を決定することを特徴とする。
【0023】
【作用】
請求項4記載の発明において、操作手段は、画面にある対象体の移動に関する操作情報を出力し、シミュレート手段は、この操作情報に基づいて対象体の挙動をシミュレートし、シミュレート結果を表示手段に出力する。シミュレート手段は、このシミュレートを行うに際し、対象体が成す挙動に応じて、この対象体を複数の部分からなるモデルとなるようにモデル化し、各部分にこの対象体の挙動計算に必要な特性値を与えながら、対象体の挙動をシミュレートする。
【0024】
したがって、請求項4記載の発明によれば、対象体に目的とする挙動に適した複数の部分からなるモデルが適用され、このモデルに於ける各部分に対象体の挙動計算に必要な物理量を与えているために、対象体の挙動をよりリアルに、すなわち実際的シミュレートでき、しかも対象体がこの挙動を的確に再現できるようにする。そして、このモデルにおける複数の部分をより少なくなるようにすることにより必要な特性値の数を低減し、以てシミュレート手段に与える演算負荷を低減しながら対象体が目的とする挙動を表すように制御される。
【0025】
請求項5記載の発明によれば、対象体がプログラム上の車とされ、この対象体は、進行方向に沿って均等に2分割され、各部分の例えば重心位置に滑動挙動の再現に必要な特性値である、例えばタイヤのグリップ力が与えられる。シミュレート手段は、この特性値に基づいて対象体の滑動挙動をシミュレートするから、少ない特性値によって滑動挙動を的確に表現することができる。請求項6記載の発明の作用も請求項5記載の発明の作用に類似するものであって、各多角形の例えば重心位置に揺動挙動(ロール方向の揺動、あるいはピッチ方向の揺動等)の再現に必要な特性値である、例えばベクトルを与える。そして、請求項7記載の発明は、請求項6記載の発明における各多角形に与えられたベクトルを合成しているから、この合成ベクトルに基づいて車の揺動を的確に制御する。
【0026】
特に、請求項8記載の発明のように、シミュレート手段が合成ベクトルの変化を捉えることにより、ベクトルの変化を車体の揺動方向の姿勢変化に反映しながら車の挙動をシミュレートする。さらに、請求項9記載の発明においては、シミュレート手段が、合成ベクトルをロール方向とピッチング方向とに分解してこれを抑制手段に出力し、抑制手段ではこの結果を車体のロール方向、ピッチ方向の姿勢変化の抑制に反映させる。したがって、仮想的なサスペンション装置が実現される。
【0027】
請求項10記載の発明において、シミュレート手段は、対象体に対して、この対象体の挙動を決定するための二つの特性値を与える。シミュレート手段は、この特性値に応じてこの対象対の挙動をシミュレートする結果、シミュレートに必要なデータ数が低減される。
【0028】
請求項11記載の発明において、シミュレート手段は、対象体を操作手段によって選択された方向と予め定められたこれ以外の方向に向けて移動させる。シミュレート手段は、この対象体に関する衝突を判定し、この判定結果を移動方向制御手段に出力する。移動方向制御手段は、この判定が肯定されたとき対象体を非選択方向に向けて移動させる制御を実行する。したがって、対象体に対する衝突判定に基づいて対象体を予め定められた非選択方向に移動させるようにしているため、対象体の複数箇所における挙動計算を衝突の都度行い、その結果として対象体を非選択方向に移動させる制御と比較すると、シミュレート手段に与える演算負荷を低減することができるとともに、衝突があると確実に対象体を非選択方向に移動させる。よって、シミュレート手段に与える演算負荷を低減しながら、対象体に非選択方向に移動する挙動を与えることができる。
【0029】
請求項12記載の発明において、衝突点演算手段は対象体に対する衝突点を演算し、この結果を移動方向制御手段に出力する。移動方向制御手段は、この衝突点が対象体に対して成す位置を捉え、この位置情報を対象体の移動方向制御に反映させる。請求項13記載の発明は、判定手段は、衝突点が対象体に対して所定の角度範囲にあるか否かを判定し、この判定結果を移動方向制御手段に出力する。この移動方向制御手段は、衝突点がこの所定角度内に在るときに、対象体の移動方向を非選択方向にする。したがって、衝突点の位置や角度の違いを対象体を非選択方向に移動させる制御の有無等に反映させることができる。ここで、請求項14記載の発明によれば、非選択方向が、仮想的な3次元空間における対象体の高さ方向に設定される。
【0030】
そして、請求項15記載の発明において、移動方向算出手段は、対象体が移動する方向を算出し、これを移動方向制御手段に出力する。移動方向制御手段はこの移動方向に基づいて、対象体の移動方向を制御する。請求項16記載の発明において、移動方向算出手段は、複数の対象体が互いになす角度を算出し、この角度を移動方向制御手段に出力する。したがって、移動方向制御手段は、この計算された移動方向に基づいて、非選択方向と選択方向のどちらに対象体を移動するか、あるいは各方向に複数の態様がある場合、どの態様を選択するか等対象体の移動方向を対象体のシミュレートに反映できて対象体のシミュレートをより多彩にし、使用者の趣味感、興味感や臨場感を向上することができる。
【0031】
そして、請求項17記載のゲーム装置では、既述の画像処理装置を備えることにより、シミュレート手段におけるシミュレートをより迅速に実行するため、趣味感や興味感を高めることができる。
【0032】
そして、請求項18、19記載の発明によれば、移動方向算出手段は、対象体の移動方向、例えば複数の対象体が互いに成す角度を算出し、これをシミュレート手段に出力し、シミュレート手段はこの移動方向に基づいてこの対象体に対する衝突を判定する。したがって、例えば、対象体が互いに衝突を生じない方向に進んでいる場合には、このことを迅速に検出して対象体を迅速にシミュレートする。また、対象体の衝突判定に、3次元座標空間内での対象体が互いに成す角度を利用するようにして、正確な衝突判定を可能にする。
【0033】
【実施例】
以下、本発明の実施例について図面を参照して説明する。この実施例は、本発明を、図1に示す対象体としての車10A(いわゆる「フォーミュラーカー」と称されるものであって、大きな径を持つ車輪が車体から突出しているものであり、前車の後輪に後車の前輪が衝突すると後車の前輪が前車の後輪に乗り上げて、乗り上げた車輪側の車体を大きく傾ける動きが予想されるもの。)を多数、一画面に出現させて、車の順位を競う競技をシミュレートするドライビングゲームに適用したものとして説明される。
【0034】
図2は、本発明に係るゲーム装置の一実施例を示すブロック図である。このゲーム装置は基本的要素としてゲーム装置本体10、入力装置11、出力装置12、TVモニタ13、及びスピーカ14を備えている。
【0035】
入力装置11は、ハンドル、アクセル、ブレーキ、シフトレバー、ビューチェンジ(視点変更)スイッチなどを有し、出力装置13はハンドルキックバック機構、各種ランプ類などを有している。このハンドルキックバック機構は、後述する車の挙動にあわせてハンドルに所定の反力を与える。
【0036】
TVモニタ13はドライビングゲ−ムの画像を表示するもので、このTVモニタの代わりにプロジェクタを使ってもよい。ビューチェンジスイッチは、視点を変更するスイッチである。このスイッチの操作により、例えば、運転席からの視点又は自車を斜め後方より観た視点がプレーヤーに提供される。
【0037】
ゲーム装置本体10は、CPU(中央演算処理装置)101を有するとともに、ROM102、RAM103、サウンド装置104、入出力インターフェース106、スクロールデータ演算装置107、コ・プロセッサ(補助演算処理装置)108、地形デ−タROM109、ジオメタライザ110、形状デ−タROM111、描画装置112、テクスチャデ−タROM113、テクスチャマップRAM114、フレームバッファ115、画像合成装置116、そして、D/A変換器117を備えている。
【0038】
CPU101は、バスラインを介して所定のプログラムなどを記憶したROM102、デ−タを記憶するRAM103、サウンド装置104、入出力インターフェース106、スクロールデータ演算装置107、コ・プロセッサ108、及びジオメタライザ110に接続されている。RAM103はバッファ用として機能させるもので、ジオメタライザ110に対する各種コマンドの書込み(オブジェクトの表示など)、変換マトリクス演算時のマトリクス書込みなどが行われる。
【0039】
入出力インターフェース106は入力装置11及び出力装置12に接続されており、これにより入力装置11のハンドルなどの操作信号がデジタル量としてCPU101に取り込まれるとともに、CPU101などで生成された信号を出力装置12に出力できる。サウンド装置104は電力増幅器105を介してスピーカ14に接続されており、サウンド装置104で生成された音響信号が電力増幅の後、スピーカ14に与えられる。
【0040】
CPU101は本実施例では、ROM102に内蔵したプログラムに基づいて入力装置11からの操作信号及び地形デ−タROM109からの地形デ−タ、そして形状データROM111からの形状データ(「自車、敵車等のオブジェクト」、及び、「移動路、地形、空、観客、構造物等の背景」等の3次元データ)を読み込んで、地形と車との当たり(衝突)判定、車全体の挙動計算、ボディの挙動(サスペンションの挙動に類似したもので、後に詳しく説明する。)計算、及び車同士の衝突判定などの車のシミュレーションを少なくとも行うようになっている。
【0041】
CPU101は、一般に右手座標系と呼ばれる3次元座標系(グローバル座標系)を採用しており、Z方向を画面奥に据えたときY方向は画面下、X方向は画面右に向かって伸びる仮想空間座標系を採用している。CPUは、地形データROM109の地形の形状データと形状データROM111の車等の形状データを読み込み、入力信号に応じた処理をこれらデータに与えて、既述の座標系において複数の車を配置して走行する画像を構成する。この車は遊戯者が操作できる自車とゲーム装置側で制御される他車(既述のように、敵車、と云っても良い。)とから構成される。
【0042】
車の挙動計算は、入力装置11からのプレーヤの操作信号により仮想空間での車の動きをシミュレートするもので、3次元空間での座標値が決定された後、この座標値を視野座標系に変換するための変換マトリクスと、形状デ−タ(車、地形など)とがジオメタライザ110に指定される。コ・プロセッサ108には衝突判定のために車を楕円モデルで定義したデータを記憶するROM109が接続され、したがって、予め定めたデ−タがコ・プロセッサ108(及びCPU101)に渡される。
【0043】
コ・プロセッサ108は、主として、対象体としての車における4輪と地形との衝突判定、車同士の衝突の判定、及び必要に応じて車と構造物との衝突判定を行うものであり、そして、この判定や車の挙動計算時に、主に、浮動小数点の演算を引き受けるようにもなっている。この結果、コ・プロセッサ108により車に関する当たり判定(衝突判定)が実行されて、その判定結果がCPU101に与えられるようにされているから、CPUの計算負荷を低減して、この当たり判定がより迅速に実行される。
【0044】
ジオメタライザ110は形状デ−タROM111及び描画装置112に接続されている。形状デ−タROM111には、複数のポリゴンの組み合わせからなる自車や敵車等のキャラクター、あるいは地形、空等の背景の図形や形状(ボディ座標系)が定義されている。(ここで、ポリゴン数を適宜選択可能である。)この定義は、例えば、使用するポリゴン群の各頂点の座標値のリスト(座標値リスト:この座標値は3次元データから構成される。)と、さらにポリゴン面1面毎に、頂点リストから任意の4点を頂点番号で指定したポリゴン面のリストと、各ポリゴンの表示順を決定するための基準位置を表すもの、ポリゴンの片面を表示するか両面を表示するかを指定する属性、そして、ポリゴンに2次元の絵(「ビットマップデータ」、あるいは「テクスチャ」とも云う。)を張り付ける要素等のポリゴンの面属性のリスト等から構成されている。
【0045】
CPU101はROM111のデータに基づいてこれらのキャラクター等が複数のポリゴン(多角形であって、主として4頂点を有する四角形、あるいはその内の2頂点が一致した3角形)からなる立体として、これを3次元座標系(ワールド座標系)へ配置するモデリング変換を行う。次いで、CPU101は、既述の視点に基づいて視点変換を実行し、さらに、3次元クリッピングを行う。
【0046】
このためにCPU101は、既述の座標値のリストと、ポリゴン面のリストと、そして、ポリゴン面属性のリスト等をROM102から読み込む。そして、CPU101は、これらのデータをジオメタライザに渡す。ジオメタライザ110はCPU101から送られてくる変換マトリクスで指定されたデ−タを透視変換して、さらに2次元クリッピングを実行し、3次元仮想空間でのワールド座標系から視野座標系に変換したデ−タを得る。
【0047】
描画装置112は変換した視野座標系の形状デ−タにテクスチャを貼り合わせ、フレームバッファ115に出力する。このテクスチャの貼り付けを行うため、描画装置112はテクスチャデ−タROM113及びテクスチャマップRAM114に接続されるとともに、フレームバッファ115に接続されている。
【0048】
地形データROM109には、車と地形との当たり判定や車同士の当たり判定を実行する上で足りる、比較的粗く(簡単に)設定された形状データが格納されている。例えば、衝突判定に際しての車の形状は、楕円として定義されている。これに対して、形状データROM111には、車、背景等の画面を構成する形状に関して、より緻密に設定されたデータが格納されている。
【0049】
スクロールデ−タ演算装置107は文字などのスクロール画面のデ−タを演算するもので、この演算装置107と前記フレームバッファ115とが画像合成装置116及びD/A変換器117を介してTVモニタ13に至る。これにより、フレームバッファ115に一時記憶された車、地形(背景)などのポリゴン画面(シミュレーション結果)とスピード値、ラップタイムなどの文字情報のスクロール画面とが指定されたプライオリティにしたがって合成され、最終的なフレーム画像デ−タが生成される。この画像デ−タはD/A変換器117でアナロク信号に変換されてTVモニタ13に送られ、ドライビングゲ−ムの画像がリアルタイムに表示される。
【0050】
続いて、このゲーム装置の動作を図3以降をも参照しながら説明する。これらの図は、CPU101により実行される車の挙動計算を示す。この実施例における車の挙動計算は、地形と車両の当り具合を判定して車を地形の上に置きならがら、地形上を車を走行させる処理と、仮想的に設定されたサスペンション装置によってボディの揺動挙動(ロール方向、ピッチ方向)を計算する処理(以上、この二つの処理を「通常走行処理」として一緒に説明する。)と、スピン、テールスライドやドリフト走行等の滑動挙動や、車が横転するかあるいは横転しようとする挙動のような通常走行以外の特殊な挙動(換言すれば、ハンドルによって選択され、あるいは指向された方向以外の方向への挙動)のための計算が含まれる。本実施例においては、この計算がCPUに大きな計算負荷を与えることなく実現される。
【0051】
先ず、ゲーム装置が起動すると、CPU101は例えば一定時間t毎のタイマ割込み処理によって図3に示す処理を開始する。まず、プレーヤが入力装置11を操作することによる、車の運転に関わる操作情報、例えばハンドルの切角(舵角)、アクセル開度、ブレーキの操作状況等を入出力インターフェイス106を介してデジタル量として読み込む(ステップ300)。
【0052】
これに次ぐ、CPU101の処理は、大別して、それらの操作情報に基づいて車の動きのシミュレーション(模擬運転)を実行する挙動計算処理と描画処理とから構成される。この挙動計算処理は、通常走行挙動処理と特殊挙動処理とから構成される。通常走行挙動及び特殊挙動の具体的内容は、先に説明されている。特殊挙動処理は、既述のように、滑動挙動処理と横転挙動処理から構成される。ここで、説明された車の各挙動処理の詳細は、後述される。
【0053】
ステップ400は通常走行挙動処理を実行する。ステップ500は車の運転状況が既述の滑動運動(滑動挙動)を必要とするか否か、例えば車が高速走行をしているが故、カーブやコーナーを曲がり難い状況が生じたか否かを判断する。滑動運動が必要と判断された場合(ステップ600)は、ステップ700において、滑動運動のための挙動計算が実行される。滑動運動が必要ないと判断された場合はステップ800に移行し、横転挙動処理が必要か否かが判断される。ここで云う横転挙動とは、先に説明されているとおり、遊戯者側の車の前輪が敵車の後輪に乗り上げて車が横転しようとする挙動であるとする。
【0054】
ここで、横転挙動が必要ない判断された場合は、ステップ1100の処理に移行し、一方、その必要性が肯定された場合は、ステップ1000の横転挙動演算処理に移行する。ステップ1100は、描画処理に該当するものであり、CPU101は3次元の各形状データを視野座標系に透視変換するための透視変換マトリクスを作成し、このマトリクスを形状データとともにRAM103を介してジオメタライザに指定する。
【0055】
図4は、前記滑動挙動要求判断処理(ステップ500)を詳細に説明するフローチャートである。このフローチャートを説明する前に、車の滑動挙動を制御する上で本発明によって提供される基本的なモデルについて説明する。一般に車両の滑動運動は、車両の進行方向に対して交差する方向の力が加わった場合に生ずる。例えば、カーブでは車に遠心力が与えられ、これが車をスピンあるいはテールスライド(ドリフト)させる原因となる。
【0056】
そこで、図5に示すように、この実施例においては、滑動挙動制御に当たり、車10Aを進行方向に沿って均等に2分割し、各部分の重心位置J1,J2に滑動挙動の基礎となる物理量を与え、この物理量に応じて車の滑動挙動を制御する。したがって、4輪毎に加わる力を演算する場合に比べて、計算に必要な物理量の数を低減させながら、実際の車の挙動に近づけた滑動挙動を再現できる。
【0057】
この実施例において、車に対して、その重心を通るX,Y,Z軸の3次元ボディ座標系を図6のように定め、X軸周りの前後方向回転をピッチ運動、Y軸周りの回転運動をヨー運動、Z軸周りの横方向回転をロール運動とそれぞれ定める。重心の位置座標を(Px,Py,Pz)、重心位置での各方向の速度をVx,
Vy,Vz、ピッチ角度をRx,ピッチ角速度をWx,ヨー角度をRy,ヨー角速度をWy,ロール角度をRz,ロール角速度をWzとする。
【0058】
続けて、滑動要求判断処理の具体的内容が図4に基づいて説明される。ステップ502において左側ブロックの重心J2に於けるグリップ(タイヤが路面を噛む力:GL)が演算される。ステップ504において、同様にして、右側ブロックのグリップ(GR)が演算される。これらのグリップは、アクセル開度から求められる車の速度(V)と、ハンドル装置の操舵角(θ)と、そしてタイヤの所定の基準点に対する高さ(H)等から演算される。
【0059】
R(GL)= f(V,θ,H)
CPU101はこられのグリップを順次計算し、RAMの所定記憶領域に順次更新記憶する。なお、グリップの演算に当たってタイヤの高さを演算するのは、図7(1)に示すように、車10Aを進行方向後方より見たとき、右側タイヤ10Rと左側タイヤ10Lとが矢示に沿った挙動を順次採り、タイヤと基準位置100Aとの間の距離が順次プラス側に大きくなる場合は(HL1<HL2,HR1<HR2)、タイヤが地形からの反力をより受ける傾向となってグリップが増加する傾向となり、一方、図7(2)に示すように、その距離が順次マイナス側に大きくなる場合は(HL1>HL2,HR1>HR2)、タイヤが地形から受ける反力が順次小さくなる傾向となってグリップが順次低下するので、これをグリップの演算に反映させるためである。よって、グリップの演算では、「H」の値或いは「H」の変化率等が入力として使用される。
【0060】
次いでステップ506において、CPU101はニュートラル位置に対するハンドル操舵方向を判定する。この判定は公知の角度センサからの入力に基づいて実行される。操舵方向が右方向である場合は、CPUは101はRAM103内の作業エリアから左側ブロックのグリップ値(GL)を読み込み、操舵方向が左方向である場合は、CPUは左側ブロックのグリップ値(GR)を読み込む(ステップ508,510)。そして、操舵位置がニュートラルである場合は、滑動挙動が生じないとして、滑動要求判断処理フラグ(F)に滑動要求が否定される”0”を設定する。
【0061】
ステップ514では、右側グリップ(GR),左側グリップ(GL)と仮想的に設定される摩擦係数(μ)とを比較し、グリップ値が摩擦係数以上であればタイヤが地形に対して滑っていないとして既述のステップ512に移行し、グリップ値が摩擦係数より小さい場合にはタイヤが地形に対して滑っているとしてステップ516に移行し、滑動要求判断処理フラグ(F)に滑動要求を肯定する”1”を設定する。
【0062】
CPU101は既述のステップ600(図3参照)において、滑動要求判断処理フラグ(F)の内容を読み込み、F=「0」の場合はステップ800に示す横転挙動判定処理に移行し、F=「1」の場合はステップ700に示す滑動挙動計算処理に移行する。CPUは、既述の摩擦係数(μ)をハンドルの操舵角、アクセル開度(車速)とによって求めることができる遠心力、そして車速等とから適宜摩擦係数(μ)を演算する。路面の状況(仮想的に路面をドライとするか、あるいはウエットとするか。)が適当に想定されることにより、CPUは摩擦係数を適宜変更する。
【0063】
図8は、滑動挙動計算処理のサブルーチンであり、ステップ702において、CPU101は、操舵角(θ)と、グリップと摩擦係数との差分の絶対値
|GR(GL)−μ)|とに基づいて、これらが共に所定値を越える場合は、滑動要求量が大きいとして車をスピンさせる動作の処理に移行する。一方、ステップ702の処理において、前記絶対値が所定値以下である場合は、車の後部(テール)をスライドさせるテールスライド走行処理に移行する。
【0064】
テールスライド走行処理(ステップ704)において、CPUは、操舵角と車速等に基づいて、車両の進行方向に直角方向に設定された横速度とヨー角速度(あるいはこれらの加速度、又は速度と加速度の両方)とを車に与え、先のステップ400で演算された車の通常走行処理結果(これについては、後述する。)と合わせて車の全体挙動演算を行う。一方、スピン走行処理(ステップ706)においては、CPU101は、形状データROM111に記憶してある一連のスピン挙動のデータを順次読み出し、これを順次グローバル座標系にモデリング変換する。
【0065】
なお、図4に示す滑動要求判断処理において、ハンドルに操舵角が発生した場合にステップ502とステップ504の計算を行い、ハンドルに操舵角が発生しない場合は、ステップ512に移行するようにしても良い。
【0066】
次に、通常走行処理を図9に基づいて説明する。CPU101は前回(最新)の挙動計算により求められていた速度v、操舵角、車両位置を含むデ−タから、車Cの新しい位置を演算する(ステップ402)。次いで、ステップ404で、新しく演算された車Cの位置に所定の長さを加えて各タイヤTn(n=1〜4:4輪)の位置Pn(n=1〜4:4輪)を演算する(図10参照)。
【0067】
さらに、ステップ406で、図11に示すように、地面に相当する線XとタイヤTnの下端Pnに相当する点との間の距離dn(n=1〜4:4輪)を演算すると、この距離dnが地面下に潜ったタイヤTnの深さあるいは地面とタイヤとの間の距離となる。ステップ408では、この距離dn分車のボディ座標を移動させて車のタイヤの先端が丁度地表面に位置するように移動させる。
【0068】
以後の処理は、車のロール方向あるいはピッチ方向の姿勢を制御するための仮想的なサスペンションに相当する。この仮想的なサスペンションの制御に当たっては、図12に示すように、車体をその重心CPと左右の前輪FTL,FTRとを結んだAブロック(CP−FTL−FTR)、車体をその重心CPと左右の後輪
LTL,LTRとを結んだBブロック(CP−LTL−LTR)からなる2ブロックに分けたモデルとし、それぞれのブロック毎に、サスペンション制御のためのベクトル計算を実行する。したがって、4輪毎に仮想的なサスペンションを与えたモデルに比較してCPUに与える計算負荷は低減される。
【0069】
図13に示すように、図9に示す通常走行挙動計算処理におけるステップ410において、Aブロックの重心位置に与えられるベクトル(FU)を計算し、ステップ412ではBブロックの重心位置に与えられるベクトル(RU)を計算する。このベクトルは、ハンドルの舵角、車の正負の加速度、車の速度、そして路面状況等に基づいて演算される。
【0070】
ステップ414ではこれらのベクトルを加算して平均し、平均化ベクトル
(CU=(FU+RU)/2)を両ブロックの連結点であって、車のモデルにおいて重心位置とされるCPに与える(図13参照)。このCPにおけるベクトル(CU)は、AブロックとBブロックとに加わるベクトルを合成し、その平均に等しいから、車全体の挙動を決定するものとして取り扱うことができる。ステップ416では、このベクトルCUをX軸方向とZ軸方向の成分(CUX,CUZ)とに分解する。
【0071】
図14は車を平面方向から見た剛性モデルを示した模式図であり、Z軸方向とX軸方向に仮想のサスペンション装置(バネ)が設定されている。図6にも示すように、Z軸方向を車の進行方向とすると、ベクトルCUZはX軸回りに与えられる力であるからピッチング方向に加わる力であり、CUXはZ軸回りに与えられる力であるからロール方向に加わる力である。
【0072】
CPU101は、各方向成分のベクトルの値に応じて車体の挙動姿勢を制御した画像を構成する。CPUはRAMの所定記憶領域にCUXとCUZの値を順次更新記憶させることができる。RAMに記憶されているCUXとCUZの値をカレント値と云うものとする。
【0073】
次の処理は、計算によって得られたCUXとCUZをカレント値に一致させる。CUXの計算値と最近(前回のタイミング)のカレント値との差がロール運動を与え、CUZの計算値と最近(前回のタイミング)のカレント値との差がピッチング挙動を与えることになるため、仮想のサスペンション装置はロール方向及びピッチング方向の挙動を減衰させる作用を持つ。
【0074】
ここで説明する仮想のサスペンション装置は、計算されたCUX
CUX(CURRENT)と比較し、両者の差に基づいてロール方向の加速度を決定し、又、計算されたCUZとCUZ(CURRENT)と比較し、両者の差に基づいてピッチング方向の加速度を決定してこれらをRAMの作業エリアに順次更新記憶させて車体の姿勢制御に反映させる。この際、仮想のサスペンション装置は、これらの加速度の値に後述の処理を与えて車体の挙動を安定化させる。
【0075】
ステップ418において、CUX>CUX(CURRENT)と判断された際は、ベクトルの変化に伴って出現するロール角加速度のカレント値からサスペンション定数(SUSTYPE:この係数の値によってサスペンションの減衰特性が決定される。)を順次減じ、これを新たなロール角速度とする。すなわち、ステップ420において、ASP(X)←ASP(X)−SUSTYPEとする。ここで、ASP(X)は、ロール方向の加速度を示す。
【0076】
一方、CUX<CUX(CURRENT)と判断された際は、ステップ422に移行し、ベクトルの変化に伴って出現するロール角加速度のカレント値にサスペンション定数(SUSTYPE)を順次加算し、これを新たなロール角速度とする。すなわち、ASP(X)←ASP(X)+SUSTYPEとする。すなわち、ステップ420及びステップ422の処理において、CUX(CURRENT)に対するCUXのベクトルの大きさの変化に起因する加速度に対して、これを打ち消す方向に加速度を与えることにより(あるいは一連の処理タイミングにおいてベクトルの変化を加速度変化として車体の挙動制御に反映させる際、加速度が一定になるようにして)、車体の挙動変化を減衰(安定)させようとする仮想的なサスペンションが提供される。
【0077】
そして、CUX=CUX(CURRENT)となった際、ロール方向の姿勢安定は完了したとして次にステップに移行する。ステップ424乃至ステップ428は、Z軸方向であるピッチング方向の加速度ASP(Z)の値を制御しようとするもので、その内容はステップ418乃至422の処理と同様である。ステップ418乃至428によって、ロール方向とピッチング方向の車体の姿勢が安定化された後リターンする。
【0078】
したがって、図9に示すルーチンによれば、車のロール方向やピッチ方向の揺動運動が制御されるに際し、揺れる方向が異なる二つの揺動運動がともに十分反映される三角形のモデルを前輪側と後輪側の二つに設定して(AブロックとBブロック)、これを揺動運動に伴う車体の姿勢制御を実行しているため、少ないデータ数に依りながら、車体の姿勢制御を確実かつ的確に再現することが可能となる。しかも、この揺動運動の制御に当たり、車体に加わるベクトルを使用していることから、車の姿勢制御をより実際的にシミュレートすることができる。このことは先の図4に示すルーチンにおいても同様であり、滑動挙動を制御するモデルにタイヤのグリップ値や摩擦係数を使用していることから、車の滑動挙動をより実際的にシミュレートすることができる。
【0079】
また、図9に示すルーチンによれば、AブロックのベクトルとBブロックのベクトルを加算平均化し、これを車の重心点に適用しているために、さらに車の姿勢制御をより少ないデータ数で実際的にシミュレートすることが可能となる。
【0080】
次に、横転挙動判定処理について説明する。この処理では、自車10Aの左前輪(12L)が自車の前を走る敵車の右後輪に乗り上げた場合、図15の(1)→(2)→(3)→(4)に示すように自車が左側の車輪を持ち上げ、残りの右側の車輪で所定時間走行する挙動を自車と前者の車輪の衝突判定によって実現し、車の各輪毎に与えられる力の計算に基づいてこのような挙動演算を適用するものでないから、CPUに与える計算負荷を低減できる。
【0081】
この実施例では、既述のように車同士の衝突判定に際して車を楕円で近似するモデルが使用されている。このモデルは既述の地形データROM109のボディ座標系に定義されており、コ・プロセッサ108はこのモデルをグローバル座標系に配置して車同士の衝突判定を行う。
【0082】
自車と他車或いは他の固定物等との衝突判定モデルの設計に際して、車を円としたモデルと仮定すると、車のように縦、横、高さの比が異なる場合、例えば、車の進行方向に円の直径を合わせると車の側面の衝突判定ラインが車の側面を越えて設定され、また、車の進行方向とは直角方向に衝突判定ラインが設定されると、車の進行方向の衝突判定ラインが車の内部に設定され、衝突判定結果が不自然にならざろう得ない。
【0083】
そこで、車体の長さ、幅、高さは通常互いに異なるので、車を矩形で近似してコリジョン判定をするのが良い筈である。しかし、矩形では、エッジ、コーナーまでの距離が側面や角などでまちまちであるから、すなわち、直方体の周辺部(境界)は場合分けを必要とする複数の関数によって定義されるから、図16に示すように、車の動きがコリジョンブロック(衝突計算用に近似したモデル)
1,C2の回転を必要とするような場合、計算が複雑になる。
【0084】
そこで、本実施例では、コリジョンブロックを車の長さ、及び幅に相当する半径を持った楕円EL1,EL2(図17参照)で近似してこれをX、Z軸上に配置して衝突の判定に使用することとする。この楕円EL1,楕円EL2の表面(周辺或いは境界)の位置データは、中心点01,02の回りのそれぞれ単一の関数F1,F2として各々与えられる。
【0085】
先ず、コリジョン判定に際し、横転挙動判断を示す図18のステップ802において、図19に示すように、楕円EL1,EL2同士の接点(衝突点)S1はそれぞれの中心点O1,O2を結んだ直線上にあると仮定し、その直線の単位ベクトルnを、関数F1(F2)を使って演算する。次いで、ステップ804にて、車の回転の逆行列を演算し、ステップ806でその逆行列に単位ベクトルを掛け、新しいベクトルをn’を作る(図17参照)。ここで、逆行列を演算するのはハンドル角、速度等に対応した楕円EL1,楕円EL2の3次元回転を計算上で座標系の初期(基準)位置に戻すためである。
【0086】
次いで、ステップ808で、X,Z軸上の座標とベクトルn’との内積を演算し、車の中心O1,O2からコリジョン楕円表面へのベクトルPを求める。実際の演算では、ベクトルn’は単位ベクトルなので、関数F1(F2)で決まるX,Z軸上の点(a,c)とn’の各成分(nx,nz)を乗ずれば(掛ければ)よい。つまり、 P=(a・nx,c・nz)となる。また、ステップ802乃至808の処理は、コリジョンの判定対象となっている楕円EL1,楕円EL2各々に対して行われる。
【0087】
そして、ステップ810で、それぞれのコリジョン楕円EL1,EL2のベクトルPの絶対値である半径r1,r2(図19参照)を加算した値が、それぞれの中心点O1,O2を結んだ距離Lよりも長いかまたは短いかに応じて衝突状態か否かを判定する。すなわち、L>r1+r2のときはEL1とEL2とが衝突状態にはないと判定され、L≦r1+r2の場合、例えば、自車の前を走る敵車と自車との組み合わせからなる、EL1とEL2との間に衝突状態が発生したと判定される。
【0088】
ステップ810において、衝突判定の結果が肯定された場合は、ステップ812に移行し、二つの車(自車と敵車)のそれぞれについて車のワールド座標系における進行方向が演算される。CPUはRAM内に車のワールド座標を順次記憶しており、複数の座標値から車の進行方向のベクトルを計算する。CPUは車同士の進行方向が互いに成す角度を、このベクトルから演算する。一方、ステップ810において、衝突判定が否定された場合、すなわち、衝突が無いと判断された場合は、横転挙動判定フラグF1に横転挙動を必要としない”0”を設定する(ステップ811)。
【0089】
ステップ814では、互いに走行する車が成す角度、図19に示すように、自車(EL1)が進行する方向D(EL1)と敵車(EL2)が進行する方向
D(EL2)とが成す角度(θ)、が所定値以内、例えば45度以内であるか否かを判定し、この角度を越える場合は自車の前輪が前車(敵車)の後輪に乗り上げる衝突が生じ得ないとして、既述のフラグF1=”0”とし、既述の横転動を伴わない通常の衝突判定後動作に移行する(ステップ816)。ステップ814の処理があることにより、後述のステップ818及びステップ820の処理を経ることなく通常衝突判定後動作に迅速に移行することができる。また、衝突判定が肯定された後の衝突判定後動作として、通常動作(ステップ816)と図3の横転挙動(ステップ1000)の二つを展開できることになり、対象体に対する衝突後のシミュレーションをより多彩に展開でき、ゲーム装置としての趣味感や臨場感、あるいは興味感を向上することができる。ここで、通常衝突判定後動作は、形状ROM111に予め格納されている車の一連の図形(スピン、クラッシュ等)から構成され、既述のような横転挙動は含まれない。
【0090】
一方、ステップ814において、所定角度範囲である場合は、さらに横転挙動が必要であるか否かの判断が実行される。先ず、ステップ818において、図20に示すように、既述の衝突判定モデルにおけるベクトルPが成す角度(自車のモデルの角度をθRとし、他車のモデルに於ける角度θTとする。)を求める。次のステップ820では、この角度が前車において前輪の設置範囲にあるか、そして後車の後輪の設置範囲にあるかが判定される。図21はこの判定のモデル図であって、ステップ820では、楕円で近似された自車モデル(EL2)におけるθRが実際の車の図形10Aにおける左右の前輪の設置範囲にあるか、すなわち、(θ1≦θR≦θ2)OR(θ3≦θR≦θ4)であるかが判定される。なお、図21において、角度(θ)は車の進行方向に沿った基準線Mに対する角度を云う。
【0091】
そして、ステップ820では、楕円で近似された他車モデル(EL1)におけるθFが実際の車の図形における左右の後輪の設置範囲にあるか、すなわち、
(θ5≦θF≦θ6)OR(θ7≦θF≦θ8)であるかが判定される。
【0092】
ステップ820において、(θ1≦θR≦θ2)AND(θ7≦θF≦θ8)、又は、(θ3≦θR≦θ4)AND(θ5≦θF≦θ6)の場合は、自車の右前輪が前車の左後輪が乗り上げ、又は自車の左前輪が前車の右前輪に乗り上げているとして、既述の横転挙動判定フラグF1に横転挙動を必要とする”1”をたてて図3のルーチンにリターンする(ステップ822)。ステップ820において、角度範囲がこれ以外の場合は、ステップ816に移行する。
【0093】
図3に示すステップ900において、CPU101はRAMの所定記憶エリアに設定された前記横転挙動判定フラグ(F1)の内容を読み込み、F1=「1」の場合はステップ1000の横転挙動計算処理に移行し、F1=「0」の時はステップ1100に移行する。
【0094】
ステップ1000に云う横転挙動とは、図15を参照して既に説明したように、自車が衝突側の車輪を持ち上げて他の側の車輪で片側行を所定時間継続し、この時間経過後は衝突前の状態に復帰すること((4)の状態から(1)の状態に順に復帰すること。)を内容とする挙動を云う。図15に示すよう、車の衝突側の車輪を地形から最大高さHの位置になるような画像が得られる。ここで、Hの値は自車(EL2と)前車(EL1)のタイヤの回転速度等に応じて、回転速度が大きいときにはHの高さを大きくする。また、最低値を決め、自車と前車との回転速度に応じて付加高さを加えるようにしても良い。またさらに、必要に応じて片側輪走行状態の継続時間を調整しても良い。
【0095】
なお、図21において、衝突点が成す角度θT,θRを楕円モデルの元で計算したが、一点鎖線で示すように、車10Aに対する矩形モデルの元でこの角度を計算するようことを妨げるものではない。
【0096】
図22はタイヤの回転数を制御する処理ルーチンを示す。CPU101は、この処理動作を一定時間毎のタイマ割り込み処理によって実行する。この実施例のゲーム装置本体10は、遊戯者に対して、タイヤが回転するように見せてゲームの臨場感を向上するため、図23に示すように、タイヤ12Aに模様230等に相当するテクスチャーを張り付け、これを実線で示すように回転させるようにしている。しかしながら、人間の視覚の生理として、タイヤの回転数が増大すると破線のように逆回転する映像を遊戯者に与えゲームとしての臨場感を損なうことになる。そこで、図22は、このような事態を避ける処理を提供する。
【0097】
ステップ2000では、CPU101はアクセル開度とギヤ情報(何速のギヤが選択されているか、マニュアルシフト、オートマティックトランスミッションにおいて同様)を入力装置11から読み込む。ステップ2002において、CPUはこの入力情報に基づいてタイヤの回転数(R)を演算する。ステップ2004において、CPUは、この回転数(R:rpm)と図23で示される実線方向への回転であって、破線で示される回転動を遊戯者に与えない最大回転数(Rmax)とを比較する。
【0098】
R<Rmaxのときは、図23のような逆回転の映像を遊戯者に与えたないとしてリターンし、R≧Rmaxのときはこのことを防止するためにステップ2006に移行して、タイヤの回転数をRmaxに固定する。但し、グローバル座標系における車の速度計算に当たっては、図22の処理を適用することなくタイヤの回転速度がアクセル開度及びギヤ情報に基づいて決定される。
【0099】
なお、この実施例において、揺動運動をロール方向(左右の振動)及びピッチ方向(前後の振動)としたが、これに限ることなくバウンディングを含めても良い。また、衝突結果挙動として、横転挙動を発生させたが、本実施例で説明した他の挙動をこの衝突結果挙動に含めても良い。また、図4の滑動要求判断処理ルーチンにおいて、左右のグリップ力の相加平均あるいは相乗平均を挙動制御に用いても良い。このことは既述のAブロックとBブロックのベクトル計算にも適用することができる。また、図4の処理において、ハンドルに操舵角が発生していないときは、車の重心点についてのみ与えられて物理量を以て車の挙動計算を行うようにしても良い。
【0100】
図18のフローチャートにおいて、二つの対象体の進行方向、例えば二つの対象体が互いに成す角度(ステップ812、ステップ814)をステップ810の衝突判定に反映させることができる。この態様としては、例えば対象体が互いに成す角度が所定値以内の場合は、衝突が起こり得ないとして、ステップ802乃至808の処理を省略したり、あるいは、この方向や角度を、3次元空間内での対象体に衝突判定処理を行うに際し、この処理に使用される各種特性値に対する補正値として与える等である。よって、このような実施態様により、二つの対象体の衝突判定を正確にそして迅速に実行することができる。また、図18の処理において”No”の場合、ステップ811に移行させても良い。
【0101】
なお、図24は、対象体としての衝突判定モデルの他の実施例を示すものである。この実施例では、このモデルは二つの楕円体ELをそれぞれの長手方向が平行になるように配置し、その長手方向を車の幅方向にしたものである。このモデルにおいては、二つの楕円が合成された形状の輪郭形状をもって衝突判定の境界としている。一点鎖線で囲む部分は一つの車輪として考えられる。したがって、このモデルは、本実施例で使用する車輪が車体より大きく突出した車により近いモデルになる。このことにより、衝突判定をモデル化して実行したとしても、車輪の部分で生じる衝突を正確に把握することができる。
【0102】
【発明の効果】
請求項1記載の発明によれば、対象体に目的とする挙動に適した複数の部分からなるモデルが適用され、このモデルに於ける各部分に対象体の挙動計算に必要な物理量を与えているために、対象体の挙動をよりリアルに、すなわち実際的シミュレートでき、しかも対象体がこの挙動を的確に再現できるようにする。そして、このモデルにおける複数の部分をより少なくなるようにすれば、必要な特性値の数を低減し、以てシミュレート手段に与える演算負荷を低減しながら対象体が目的とする挙動を表すように制御できる。
【0103】
請求項2記載の発明によれば、少ない特性値によって対象体の滑動挙動を的確に表現することができる。請求項3記載の発明によれば、各多角形の例えば重心位置に揺動挙動の再現に必要な特性値である、例えばベクトルを与え、そして、請求項4記載の発明は、各多角形に与えられたベクトルを合成しているから、この合成ベクトルに基づいて車の揺動を的確に制御することができる。
【0104】
特に、請求項5記載の発明のように、シミュレート手段が合成ベクトルの変化を捉えることにより、ベクトルの変化を車体の揺動方向の姿勢変化に反映しながら車の挙動を的確にシミュレートする。さらに、請求項6記載の発明によれば、シミュレート手段が、合成ベクトルをロール方向とピッチング方向とに分解してこれを抑制手段に出力し、抑制手段ではこの結果を車体のロール方向、ピッチ方向の姿勢変化の抑制に反映させるため、仮想的なサスペンション装置が実現され、実際的な車のシミュレーションが提供される。
【0105】
請求項7記載の発明によれば、シミュレート手段は、対象体に対して、この対象体の挙動を決定するための二つの特性値を与えているため、シミュレートに必要なデータ数を低減できる。
【0106】
請求項8記載の発明によれば、衝突判定によって対象体を予め定められた非選択方向に移動させるようにしているため、対象体の複数箇所における挙動計算を衝突の都度行い、その結果として対象体を非選択方向に移動させる制御と比較すると、シミュレート手段に与える演算負荷を低減することができるとともに、衝突があると確実に対象体を非選択方向に移動させる。よって、シミュレート手段に与える演算負荷を低減しながら、対象体に非選択方向に移動する挙動を与えることができる。
【0107】
請求項9記載の発明によれば、衝突点が対象体に対して成す位置情報を対象体の移動方向制御に反映させることができるために、この位置の如何によって非選択方向への移動の出現の有無を調整することができ、故に実際の対象体の挙動に合わせることができる。
【0108】
請求項10記載の発明によれば、衝突点が対象体に対して所定の角度範囲にあるかに応じて、対象体を非選択方向に移動させる制御の有無等を決定することができ、実際的なシミュレーションを遊戯者や操作者に提供することができる。請求項11記載の発明によれば、対象体を仮想的な3次元空間における高さ方向に移動させることができ、実際的なシミュレーションが可能となる。
【0109】
請求項12そして13記載の発明によれば、計算された移動方向を対象体のシミュレートに反映させるので、対象体をより多彩にシミュレートし、使用者に与える趣味感、興味感や臨場感を向上することができる。
【0110】
さらに、請求項14記載の発明によれば、趣味感や興味感を高めたゲーム装置を提供することができる。そして、請求項15及び16記載の発明によれば、衝突判定における画像処理を迅速、かつ正確に実施できる画像処理装置を提供することができる。
【図面の簡単な説明】
【図1】本発明の対象体の一例を示す平面図であるである。
【図2】本発明の一実施例に係わるゲーム装置のブロック構成図である。
【図3】同ブロック構成図におけるCPUのメイン処理を示すフローチャートである。
【図4】図3の処理における滑動要求判断処理を示すサブルーチンである。
【図5】滑動挙動計算のためのモデル図である。
【図6】車の挙動を説明するためのモデル図である。
【図7】タイヤの高さ変化を示す概念図である。
【図8】滑動挙動計算処理を示すサブルーチンである。
【図9】通常走行挙動計算処理を示すサブルーチンである。
【図10】 タイヤの位置計算のためのモデル図である。
【図11】図10と同じモデル図である。
【図12】仮想的なサスペンションのための制御動作を説明するモデル図である。
【図13】同モデル図である。
【図14】サスペンションのモデル図である。
【図15】車体の横転挙動のモデル図である。
【図16】車同士の衝突判定を示すモデル図である。
【図17】同モデル図である。
【図18】図3の横転挙動制御処理のサブルーチンである。
【図19】楕円モデルの衝突判定のためのモデル図である。
【図20】衝突点の角度範囲を示すモデル図である。
【図21】同モデル図である。
【図22】タイヤの回転数制御を説明するフローチャートである。
【図23】タイヤの回転数制御を説明するモデル図である。
【図24】対象体に対する衝突判定モデルの他の例を示す。
【符号の説明】
10 ゲーム装置本体
11 入力装置
12 出力装置
13 Tvモニタ(表示手段)
[0001]
[Industrial application fields]
The present invention relates to an image processing device, and more particularly to a game device, and more particularly to an object (target object) such as a car on a monitor in response to a player's operation, as in a driving (car racing) game. The present invention relates to a game device equipped with a game program for moving the game.
[0002]
[Prior art]
With the development of computer technology, game devices are required to have clearer and more realistic images regardless of whether they are for home use or business use. Generally, game devices include a game device main body incorporating a computer device that executes a game program stored in advance, an operation device that gives the computer device an operation signal for instructing movement of an object represented by the game, and the computer device. And a display for displaying an image associated with the game development when the game program is executed, and an acoustic device for generating a sound associated with the game development.
[0003]
And in recent game devices, in order to make the screen more powerful and powerful, image data is defined in a virtual three-dimensional coordinate space and objects (characters), backgrounds, and the like are arranged. The video viewed from a predetermined viewpoint is displayed on the display.
[0004]
As a field of game devices having such a configuration, there is a game device that handles a driving game (car racing game). In a driving game, it is required and important to simulate the movement of a car as realistically as possible.
[0005]
Conventionally, this simulation employs a single-point model in which a vehicle is replaced with one mass point such as the position of the center of gravity. The condition (also called collision or collision) between the car (tires) and the ground is determined only at one point, and the simulation is simplified without calculating the suspension and the like. For this reason, there is no movement in the pitch, roll, and yaw directions of the car on the screen, or the movement is merely monotonous under certain conditions such as drifting when the steering angle exceeds a certain value.
[0006]
Such a simulation based on a single point model is easy to process and can easily produce the movement of the vehicle intended by the manufacturer, but the movement of the simulated car is inevitably accompanied by unnaturalness. There is a problem of lack of reality and poor added value of the game device.
[0007]
Therefore, instead of considering the car as one mass point, the four tires are in contact with the road surface and receive force from the road surface, and the force acts on the vehicle body via the suspension, thereby determining the movement of the car. A game device that can perform a full-scale simulation in real time and express the movement of a car in a very realistic manner is also considered.
[0008]
[Problems to be solved by the invention]
Taking a car racing game as an example, in order to simulate the behavior of an object in earnest, it is necessary to give movement in accordance with normal laws of kinematics in directions other than the direction selected or directed by the steering wheel. It is. For example, it is preferable to give a movement such as spin, tail slide, or four-wheel drift to the car in order to execute a full-scale simulation.
[0009]
At this time, it can be said that it is desirable to simulate the behavior of the entire vehicle while calculating the force applied to each of the four wheels, as in an actual vehicle, but this inevitably increases the computational load on the CPU. However, there is a problem that other image processing is not sufficiently performed if the calculation is performed with certainty. Of course, it is possible to eliminate these inconveniences by a CPU having an increased calculation capability, but this not only increases the manufacturing cost but also increases the time required for the calculation. There is also a problem that it takes time to create a program for calculating the force applied to each of the four wheels.
[0010]
In addition, it is inconvenient for an image processing apparatus that must respond quickly to an operation from a player or an operator, in particular, a game apparatus, so that the time required for calculation is inconvenient. There is a problem that a person's taste and interest are impaired.
[0011]
Furthermore, conventionally, in this type of game device, in performing collision determination between vehicles as target objects and various image processing after collision determination, consideration has not been given to performing these processes quickly and accurately. .
[0012]
In order to solve such a problem, the present invention can more realistically simulate and display the behavior of an object such as a vehicle without increasing the computational load on the CPU. The first object is to provide an apparatus. A second object is to provide an image processing apparatus to which a model capable of accurately controlling the behavior of an object is applied. Furthermore, a third object is to provide a game device that has excellent taste and interest by achieving these objects. Furthermore, a fourth object is to provide an image processing apparatus that can perform collision determination or image processing in collision determination quickly and accurately.
[0013]
[Means for Solving the Problems]
In order to achieve the second object or the first object in addition to the second object, the invention according to claim 4 includes an operation means for outputting operation information relating to movement of the object on the screen, and the operation information. Simulating the behavior of the object on the basis of the image and outputting the result to the display means, the simulating means is configured to select the object according to the behavior of the object. It is characterized by comprising modeling means for making the body a model composed of a plurality of parts, and characteristic value giving means for giving each part a characteristic value necessary for calculating the behavior of the object. According to a first aspect of the present invention, there is provided an image processing method for simulating the behavior of an object in a virtual space based on an operation signal from an input device and displaying it on a display device. For the configured object, the object is specially determined based on the step of calculating a characteristic value necessary for calculating the behavior of the object for each part in the model, and the operation signal and the calculated characteristic value. A step of determining whether or not a behavior is required; and when it is determined that the target pair requires a special behavior, based on the operation signal and the calculated characteristic value, Determining the type of behavior. The invention according to claim 2 further includes a step of calculating an overall behavior of the object based on the operation signal and the determined type of the special behavior. According to a third aspect of the present invention, there is provided an image processing method for simulating the behavior of an object in a virtual space based on an operation signal from an input device and displaying it on a display device. For the applied object, a step of calculating a characteristic value necessary for calculating the behavior of the object for each part in the model, and a special characteristic of the object based on the operation signal and the calculated characteristic value And a step of controlling the behavior.
[0014]
The invention according to claim 5 is a model in which the object is a car on a program, and the modeling means equally divides the object into two along the traveling direction with respect to the sliding behavior of the object. It is characterized by forming. According to a sixth aspect of the present invention, the object is a car on a program, and the modeling means has two multi-functions that connect the center of gravity of the car and the front and rear wheels with respect to the swinging behavior of the object. It is characterized by forming a model made of a square.
[0015]
The invention according to claim 7 is characterized in that the characteristic value giving means gives a virtual vector to each part, and the simulating means controls the behavior of the vehicle based on a composite vector of the vectors. . The invention according to claim 8 is characterized in that the simulating means simulates a posture change in a swinging direction of the vehicle body accompanying a change in the vector. The invention according to claim 9 is characterized by further comprising suppression means for decomposing the combined vector into a roll direction and a pitching direction and suppressing a change in posture in each direction.
[0016]
According to a tenth aspect of the present invention, in order to achieve the first object, operation means for outputting operation information relating to the movement of the object on the screen, and the behavior of the object are simulated based on the operation information. And simulating means for outputting this to the display means, wherein the simulating means has two characteristic values for determining the behavior of the object with respect to the object. A characteristic value providing means is provided, and the behavior of the target pair is simulated according to the characteristic value.
[0017]
Further, in order to achieve the same object as that of the invention described in claim 4, the invention described in claim 11 is based on the operation means for outputting operation information relating to the movement of the object on the screen, and on the basis of this operation information. And a simulation unit that simulates the behavior of the object and outputs the simulation result to a display unit. The simulation unit predetermines the object as a direction selected by the operation unit. Movement direction control means for moving in a direction other than the above, and collision determination means for determining a collision related to the object, and when the collision determination is affirmed, the movement direction control means Control for moving the object in a non-selection direction is executed.
[0018]
According to a twelfth aspect of the present invention, the simulating means further includes a collision point calculating means for calculating a collision point with respect to the object, and the moving direction control means is configured such that the collision point is formed with respect to the object. The moving direction of the object is controlled according to the position.
[0019]
According to a thirteenth aspect of the present invention, the simulating unit includes a determining unit that determines whether or not the collision point is within a predetermined angle range with respect to the object, and the moving direction control unit includes the collision direction. When the point is within the predetermined angle, the moving direction of the object is set to the non-selection direction. The invention according to claim 14 is characterized in that the non-selection direction is a height direction of the object in a virtual three-dimensional space.
[0020]
According to a fifteenth aspect of the present invention, the simulating unit includes a moving direction calculating unit that calculates a moving direction of the target object and outputs the moving direction to the moving direction control unit, and the moving direction control unit includes: The moving direction of the object is controlled based on the moving direction. In the invention described in claim 16, the collision determination means is means for determining a collision between a plurality of objects, and the movement direction calculation means calculates an angle formed by the objects. An angle is output to the movement direction control means.
[0021]
Furthermore, in order to achieve the third object, the invention described in claim 17 corresponds to a game device including the above-described image processing device and display means for displaying the image processing result.
[0022]
Furthermore, in order to achieve the fourth object, the invention according to claim 18 is a simulation for determining a collision with an object appearing on the screen and simulating the behavior of the object based on the collision determination result. In the image processing apparatus including the image processing unit, the simulation unit includes a movement direction calculation unit that calculates a movement direction of the object, and determines a collision with the object based on the obtained movement direction. And According to a nineteenth aspect of the present invention, an angle formed by a plurality of objects moving by the moving direction calculating unit is calculated as the moving direction, and the simulating unit determines a collision between the objects based on the angle. It is characterized by that. According to a twentieth aspect of the present invention, in the image processing method for simulating the rotation of the vehicle tire in the virtual space based on the operation signal from the input device and displaying the simulation on the display device, the rotation of the vehicle tire is performed. The number of rotations of the tire of the vehicle is controlled so that the vehicle cannot be seen in reverse. According to a twenty-first aspect of the present invention, in the image processing method, the number of rotations of a vehicle tire calculated based on the operation signal is compared with a number of rotations that does not give an image in which the rotation of the vehicle tire rotates backward. Thus, the number of rotations of the tire of the vehicle is determined.
[0023]
[Action]
In the invention according to claim 4, the operation means outputs operation information relating to the movement of the object on the screen, and the simulation means simulates the behavior of the object based on the operation information, and the simulation result is obtained. Output to the display means. When performing the simulation, the simulation means models the target object to be a model composed of a plurality of parts according to the behavior of the target object, and each part is required for calculating the behavior of the target object. The behavior of the object is simulated while giving the characteristic value.
[0024]
Therefore, according to the fourth aspect of the invention, a model composed of a plurality of parts suitable for the target behavior is applied to the object, and physical quantities necessary for calculating the behavior of the object are assigned to each part in the model. Thus, the behavior of the object can be simulated more realistically, that is, practically simulated, and the object can accurately reproduce this behavior. Then, the number of characteristic values is reduced by reducing the number of parts in the model, so that the target object exhibits the desired behavior while reducing the computational load on the simulation means. Controlled.
[0025]
According to the fifth aspect of the present invention, the target object is a car on the program, and the target object is equally divided into two along the traveling direction, and is necessary for reproducing the sliding behavior at, for example, the center of gravity of each part. A characteristic value, for example, a grip force of a tire is given. Since the simulating means simulates the sliding behavior of the object based on this characteristic value, the sliding behavior can be accurately expressed with a small number of characteristic values. The action of the invention described in claim 6 is similar to the action of the invention described in claim 5, and the swinging behavior (swing in the roll direction, swinging in the pitch direction, etc.) of each polygon, for example, at the center of gravity position. For example, a vector which is a characteristic value necessary for reproduction of () is given. In the seventh aspect of the invention, the vectors given to the respective polygons in the sixth aspect of the invention are combined, so that the vehicle swing is accurately controlled based on the combined vector.
[0026]
In particular, as in the eighth aspect of the invention, the simulation means captures the change in the combined vector, thereby simulating the behavior of the vehicle while reflecting the change in the vector in the posture change in the swinging direction of the vehicle body. Further, in the invention according to claim 9, the simulating means decomposes the combined vector into the roll direction and the pitching direction and outputs the result to the suppressing means, and the suppressing means outputs the result to the roll direction and pitch direction of the vehicle body. This is reflected in the suppression of changes in posture. Therefore, a virtual suspension device is realized.
[0027]
In the invention described in claim 10, the simulating means gives the target object two characteristic values for determining the behavior of the target object. The simulation means simulates the behavior of the target pair according to the characteristic value, and as a result, the number of data necessary for the simulation is reduced.
[0028]
In the invention described in claim 11, the simulating means moves the object in the direction selected by the operating means and in a direction other than the predetermined direction. The simulating means determines a collision related to the object and outputs the determination result to the moving direction control means. The movement direction control means executes control to move the object in the non-selection direction when this determination is affirmed. Therefore, since the object is moved in a predetermined non-selection direction based on the collision determination with respect to the object, behavior calculation at a plurality of locations of the object is performed for each collision, and as a result, the object is Compared with the control for moving in the selection direction, it is possible to reduce the calculation load applied to the simulating means and to reliably move the object in the non-selection direction when there is a collision. Therefore, it is possible to give the object a behavior of moving in the non-selection direction while reducing the calculation load applied to the simulation means.
[0029]
In a twelfth aspect of the present invention, the collision point calculation means calculates a collision point for the object and outputs the result to the movement direction control means. The movement direction control means captures the position formed by the collision point with respect to the object and reflects this position information in the movement direction control of the object. According to a thirteenth aspect of the present invention, the determination means determines whether or not the collision point is within a predetermined angle range with respect to the object, and outputs the determination result to the movement direction control means. The movement direction control means sets the movement direction of the object to the non-selection direction when the collision point is within the predetermined angle. Therefore, the difference in the position and angle of the collision point can be reflected in the presence or absence of control for moving the target object in the non-selection direction. According to the invention described in claim 14, the non-selection direction is set to the height direction of the object in the virtual three-dimensional space.
[0030]
In the fifteenth aspect of the invention, the movement direction calculation means calculates the direction in which the object moves, and outputs this to the movement direction control means. The movement direction control means controls the movement direction of the object based on the movement direction. In a sixteenth aspect of the present invention, the movement direction calculation means calculates an angle formed by a plurality of objects, and outputs the angle to the movement direction control means. Therefore, the movement direction control means selects, based on the calculated movement direction, whether to move the object in the non-selection direction or the selection direction, or when there are a plurality of aspects in each direction. The moving direction of the target object can be reflected in the simulation of the target object, so that the simulation of the target object can be made more diverse and the user's taste, interest, and presence can be improved.
[0031]
In the game device according to the seventeenth aspect, by providing the above-described image processing device, the simulation in the simulating means is executed more quickly, so that the hobby and interest can be enhanced.
[0032]
According to the inventions of claims 18 and 19, the moving direction calculating means calculates the moving direction of the target object, for example, an angle formed by a plurality of target objects, and outputs this to the simulating means for simulation. The means determines a collision with the object based on the moving direction. Therefore, for example, when the objects are moving in a direction that does not cause a collision with each other, this is quickly detected and the object is quickly simulated. In addition, an accurate collision determination is made possible by using an angle formed by the objects in the three-dimensional coordinate space for the object collision determination.
[0033]
【Example】
Embodiments of the present invention will be described below with reference to the drawings. In this embodiment, the present invention is referred to as a vehicle 10A (a so-called “former car”) as an object shown in FIG. 1, and a wheel having a large diameter projects from the vehicle body. When the front wheel of the rear car collides with the rear wheel of the front car, the front wheel of the rear car rides on the rear wheel of the front car, and a movement that greatly tilts the body of the wheel on the car is expected.) It is described as being applied to a driving game that simulates a competition to appear and compete for car ranking.
[0034]
FIG. 2 is a block diagram showing an embodiment of the game apparatus according to the present invention. This game apparatus includes a game apparatus body 10, an input apparatus 11, an output apparatus 12, a TV monitor 13, and a speaker 14 as basic elements.
[0035]
The input device 11 includes a handle, an accelerator, a brake, a shift lever, a view change (viewpoint change) switch, and the like, and the output device 13 includes a handle kickback mechanism, various lamps, and the like. This handle kickback mechanism applies a predetermined reaction force to the handle in accordance with the behavior of the vehicle described later.
[0036]
The TV monitor 13 displays an image of a driving game, and a projector may be used instead of the TV monitor. The view change switch is a switch that changes the viewpoint. By operating this switch, for example, the player is provided with a viewpoint from the driver's seat or a viewpoint of the host vehicle viewed from diagonally behind.
[0037]
The game apparatus body 10 has a CPU (Central Processing Unit) 101, ROM 102, RAM 103, sound device 104, input / output interface 106, scroll data processing unit 107, co-processor (auxiliary processing unit) 108, terrain data processor. A data ROM 109, a geometalizer 110, a shape data ROM 111, a drawing device 112, a texture data ROM 113, a texture map RAM 114, a frame buffer 115, an image composition device 116, and a D / A converter 117 are provided.
[0038]
The CPU 101 is connected to a ROM 102 storing a predetermined program, a RAM 103 storing data, a sound device 104, an input / output interface 106, a scroll data arithmetic device 107, a co-processor 108, and a geometalizer 110 via a bus line. Has been. The RAM 103 functions as a buffer, and various commands are written to the geometalizer 110 (object display, etc.), matrix writing at the time of conversion matrix calculation, and the like are performed.
[0039]
The input / output interface 106 is connected to the input device 11 and the output device 12, whereby operation signals such as a handle of the input device 11 are taken into the CPU 101 as digital quantities, and signals generated by the CPU 101 and the like are output to the output device 12. Can be output. The sound device 104 is connected to the speaker 14 via the power amplifier 105, and an acoustic signal generated by the sound device 104 is supplied to the speaker 14 after power amplification.
[0040]
In this embodiment, the CPU 101 uses the operation signal from the input device 11 and the terrain data from the terrain data ROM 109 based on the program stored in the ROM 102, and the shape data from the shape data ROM 111 ("own vehicle, enemy vehicle" Etc. ”and“ 3D data such as travel path, terrain, sky, spectator, structure, etc. ”), the collision between the terrain and the car (collision) judgment, the behavior calculation of the whole car, The vehicle behavior (similar to the suspension behavior, which will be described in detail later), and at least simulation of the vehicle, such as judgment of collision between vehicles, is performed.
[0041]
The CPU 101 employs a three-dimensional coordinate system (global coordinate system) generally called a right-handed coordinate system. When the Z direction is set at the back of the screen, the Y direction extends down the screen and the X direction extends toward the right of the screen. A coordinate system is adopted. The CPU reads the shape data of the terrain in the terrain data ROM 109 and the shape data of the car etc. in the shape data ROM 111, gives the processing according to the input signal to these data, and arranges a plurality of cars in the above-described coordinate system. Configure a running image. This vehicle is composed of a host vehicle that can be operated by the player and another vehicle controlled by the game device (which may be called an enemy vehicle as described above).
[0042]
The vehicle behavior calculation simulates the movement of the vehicle in the virtual space based on the player's operation signal from the input device 11, and after the coordinate value in the three-dimensional space is determined, the coordinate value is used as the visual field coordinate system. A conversion matrix for converting to a shape and shape data (car, terrain, etc.) are designated in the geometalizer 110. The co-processor 108 is connected to a ROM 109 for storing data in which a car is defined by an elliptic model for collision determination, and therefore predetermined data is transferred to the co-processor 108 (and the CPU 101).
[0043]
The co-processor 108 mainly performs collision determination between four wheels and terrain in a target vehicle, determination of collision between vehicles, and determination of collision between a vehicle and a structure as necessary, and In this determination and the calculation of the behavior of the car, it mainly accepts floating point arithmetic. As a result, a collision determination (collision determination) regarding the vehicle is executed by the co-processor 108, and the determination result is given to the CPU 101. Therefore, the calculation load of the CPU is reduced, and this hit determination is more effective. Runs quickly.
[0044]
The geometalizer 110 is connected to the shape data ROM 111 and the drawing device 112. In the shape data ROM 111, a character such as a host vehicle or an enemy vehicle composed of a combination of a plurality of polygons, or a background figure or shape such as terrain or sky (body coordinate system) is defined. (Here, the number of polygons can be selected as appropriate.) For example, this definition is a list of coordinate values of each vertex of a polygon group to be used (coordinate value list: the coordinate values are composed of three-dimensional data). In addition, for each polygon surface, a polygon surface list in which any four points from the vertex list are designated by vertex numbers, a reference position for determining the display order of each polygon, and one side of the polygon are displayed. It consists of an attribute that specifies whether to display both sides, and a list of polygon surface attributes such as elements that attach a two-dimensional picture (also called “bitmap data” or “texture”) to the polygon. Has been.
[0045]
Based on the data of the ROM 111, the CPU 101 converts these characters as a solid made up of a plurality of polygons (polygons, mainly quadrangles having four vertices, or triangles in which two vertices coincide with each other). Perform modeling transformation to place in the dimensional coordinate system (world coordinate system). Next, the CPU 101 executes viewpoint conversion based on the viewpoint described above, and further performs three-dimensional clipping.
[0046]
For this purpose, the CPU 101 reads from the ROM 102 the above-described coordinate value list, polygon surface list, polygon surface attribute list, and the like. Then, the CPU 101 passes these data to the geometalizer. The geometalizer 110 performs perspective transformation on the data specified by the transformation matrix sent from the CPU 101, performs two-dimensional clipping, and converts the data from the world coordinate system to the visual field coordinate system in the three-dimensional virtual space. Get the data.
[0047]
The drawing device 112 pastes the texture on the converted shape data of the visual field coordinate system and outputs it to the frame buffer 115. In order to paste the texture, the drawing device 112 is connected to the texture data ROM 113 and the texture map RAM 114 and to the frame buffer 115.
[0048]
The terrain data ROM 109 stores shape data set relatively coarsely (simply) that is sufficient for executing a collision determination between a car and a terrain or a collision determination between cars. For example, the shape of the car at the time of collision determination is defined as an ellipse. On the other hand, in the shape data ROM 111, data set more precisely with respect to the shapes constituting the screen such as the car and the background is stored.
[0049]
The scroll data calculation unit 107 calculates scroll screen data such as characters, and the calculation unit 107 and the frame buffer 115 are connected to the TV monitor via the image synthesis unit 116 and the D / A converter 117. 13 is reached. Thereby, a polygon screen (simulation result) such as a car and terrain (background) temporarily stored in the frame buffer 115 and a scroll screen of character information such as a speed value and a lap time are combined according to the designated priority, and finally. Frame image data is generated. This image data is converted into an analog signal by the D / A converter 117 and sent to the TV monitor 13, and an image of the driving game is displayed in real time.
[0050]
Next, the operation of this game apparatus will be described with reference to FIG. These drawings show the behavior calculation of the vehicle executed by the CPU 101. In this embodiment, the vehicle behavior is calculated by determining the degree of contact between the terrain and the vehicle, placing the vehicle on the terrain, and driving the vehicle on the terrain, and a body set by a virtually set suspension device. Processing to calculate the rocking behavior (roll direction, pitch direction) of the above (the two processes will be described together as “normal traveling processing”), sliding behavior such as spin, tail slide and drift traveling, Includes calculations for special behaviors other than normal driving, such as the behavior of a vehicle to roll over or roll over (in other words, behavior in a direction other than the direction selected or directed by the steering wheel) . In this embodiment, this calculation is realized without imposing a large calculation load on the CPU.
[0051]
First, when the game apparatus is activated, the CPU 101 starts the process shown in FIG. 3 by, for example, a timer interrupt process for every predetermined time t. First, the operation information relating to the driving of the vehicle by the player operating the input device 11, for example, the steering angle of the steering wheel, the opening degree of the accelerator, the operating state of the brake, etc., is digitally converted via the input / output interface 106. (Step 300).
[0052]
Subsequent to this, the processing of the CPU 101 is roughly divided into behavior calculation processing and drawing processing for executing a simulation of vehicle movement (simulated driving) based on the operation information. This behavior calculation process includes a normal traveling behavior process and a special behavior process. Specific contents of the normal running behavior and the special behavior have been described above. As described above, the special behavior process includes a sliding behavior process and a rollover behavior process. Here, the details of each behavior process of the car described will be described later.
[0053]
Step 400 executes normal driving behavior processing. Step 500 determines whether or not the driving situation of the vehicle requires the above-described sliding motion (sliding behavior), for example, whether or not a situation where it is difficult to turn a curve or a corner because the vehicle is traveling at a high speed. to decide. If it is determined that sliding motion is necessary (step 600), behavior calculation for sliding motion is performed in step 700. If it is determined that the sliding motion is not necessary, the process proceeds to step 800, and it is determined whether or not rollover behavior processing is necessary. The rollover behavior referred to here is assumed to be a behavior in which the front wheel of the player's vehicle rides on the rear wheel of the enemy vehicle and the vehicle rolls over as described above.
[0054]
If it is determined that rollover behavior is not necessary, the process proceeds to step 1100. If the necessity is affirmed, the process proceeds to rollover behavior calculation process in step 1000. Step 1100 corresponds to a drawing process, and the CPU 101 creates a perspective transformation matrix for perspective transformation of each three-dimensional shape data into the visual field coordinate system, and this matrix together with the shape data is stored in the geometalizer via the RAM 103. specify.
[0055]
FIG. 4 is a flowchart for explaining in detail the sliding behavior request determination process (step 500). Before describing this flowchart, the basic model provided by the present invention in controlling the sliding behavior of a vehicle will be described. Generally, the sliding motion of the vehicle occurs when a force in a direction crossing the traveling direction of the vehicle is applied. For example, in a curve, centrifugal force is applied to the car, which causes the car to spin or tail slide (drift).
[0056]
Therefore, as shown in FIG. 5, in this embodiment, in the sliding behavior control, the vehicle 10A is equally divided into two along the traveling direction, and the gravity center position J of each portion is determined. 1 , J 2 A physical quantity serving as a basis for the sliding behavior is given to the vehicle, and the sliding behavior of the vehicle is controlled according to the physical quantity. Therefore, compared with the case where the force applied to each of the four wheels is calculated, the sliding behavior close to the actual behavior of the vehicle can be reproduced while reducing the number of physical quantities necessary for the calculation.
[0057]
In this embodiment, the three-dimensional body coordinate system of the X, Y, and Z axes passing through the center of gravity of the vehicle is defined as shown in FIG. 6, the forward / backward rotation around the X axis is pitch motion, and the rotation around the Y axis The motion is defined as the yaw motion, and the lateral rotation around the Z axis is defined as the roll motion. The position coordinates of the center of gravity are (Px, Py, Pz), the speed in each direction at the position of the center of gravity is Vx,
Vy, Vz, pitch angle Rx, pitch angular velocity Wx, yaw angle Ry, yaw angular velocity Wy, roll angle Rz, roll angular velocity Wz.
[0058]
Subsequently, specific contents of the sliding request determination process will be described with reference to FIG. In step 502, the center of gravity J of the left block 2 Grip (force that the tire bites the road surface: G L ) Is calculated. In step 504, the right block grip (G R ) Is calculated. These grips are calculated from the vehicle speed (V) obtained from the accelerator opening, the steering angle (θ) of the steering wheel device, the height (H) of the tire with respect to a predetermined reference point, and the like.
[0059]
G R (G L ) = F (V, θ, H)
The CPU 101 sequentially calculates these grips and sequentially updates and stores them in a predetermined storage area of the RAM. The tire height is calculated when calculating the grip, as shown in FIG. 7 (1), when the vehicle 10A is viewed from the rear in the traveling direction, the right tire 10 R And left tire 10 L Take the behavior along the arrows, and if the distance between the tire and the reference position 100A increases sequentially to the plus side (H L1 <H L2 , H R1 <H R2 ), The tire tends to receive more reaction force from the terrain, and the grip tends to increase. On the other hand, as shown in FIG. L1 > H L2 , H R1 > H R2 ), Because the reaction force that the tire receives from the terrain tends to gradually decrease and the grip decreases sequentially, and this is reflected in the calculation of the grip. Therefore, in the calculation of the grip, the value of “H” or the change rate of “H” is used as an input.
[0060]
Next, at step 506, the CPU 101 determines the steering direction of the steering wheel with respect to the neutral position. This determination is performed based on an input from a known angle sensor. When the steering direction is the right direction, the CPU 101 determines the grip value (G of the left block from the work area in the RAM 103). L ), And when the steering direction is the left direction, the CPU reads the grip value (G R ) Is read (steps 508 and 510). If the steering position is neutral, it is determined that no sliding behavior occurs, and “0” is set in the sliding request determination processing flag (F), which denies the sliding request.
[0061]
In step 514, the right grip (G R ), Left grip (G L ) And the virtually set friction coefficient (μ), and if the grip value is greater than or equal to the friction coefficient, the tire shifts to the above described step 512 and the grip value is determined to be friction. If it is smaller than the coefficient, it is determined that the tire is slipping with respect to the terrain, and the process proceeds to step 516, where “1” is set in the sliding request determination processing flag (F) to affirm the sliding request.
[0062]
In step 600 (see FIG. 3), the CPU 101 reads the content of the sliding request determination processing flag (F). If F = “0”, the CPU 101 proceeds to the rollover behavior determination processing shown in step 800, and F = “ In the case of “1”, the process proceeds to the sliding behavior calculation processing shown in Step 700. The CPU appropriately calculates the friction coefficient (μ) from the centrifugal force that can determine the above-described friction coefficient (μ) based on the steering angle of the steering wheel, the accelerator opening (vehicle speed), the vehicle speed, and the like. The CPU appropriately changes the friction coefficient by appropriately assuming the road surface condition (virtual road surface is dry or wet).
[0063]
FIG. 8 is a subroutine of the sliding behavior calculation process. In step 702, the CPU 101 determines the absolute value of the difference between the steering angle (θ) and the grip and the friction coefficient.
| G R (G L If both of these exceed a predetermined value based on) −μ) |, the process shifts to a process of spinning the car because the required sliding amount is large. On the other hand, if the absolute value is equal to or smaller than the predetermined value in the process of step 702, the process proceeds to a tail slide running process in which the rear part (tail) of the vehicle is slid.
[0064]
In the tail slide running process (step 704), the CPU determines the lateral speed and yaw angular speed (or both of these accelerations, or both of these accelerations and accelerations) set in a direction perpendicular to the traveling direction of the vehicle based on the steering angle and the vehicle speed. ) Is given to the vehicle, and the overall behavior of the vehicle is calculated together with the result of the normal running processing of the vehicle calculated in the previous step 400 (this will be described later). On the other hand, in the spin running process (step 706), the CPU 101 sequentially reads a series of spin behavior data stored in the shape data ROM 111, and sequentially performs modeling conversion to the global coordinate system.
[0065]
In the sliding request determination process shown in FIG. 4, when the steering angle is generated in the steering wheel, the calculation in step 502 and step 504 is performed, and when the steering angle is not generated in the steering wheel, the process proceeds to step 512. good.
[0066]
Next, the normal traveling process will be described with reference to FIG. The CPU 101 calculates the new position of the car C from the data including the speed v, the steering angle, and the vehicle position obtained by the previous (latest) behavior calculation (step 402). Next, in step 404, a predetermined length is added to the newly calculated position of the car C to calculate the position Pn (n = 1 to 4: 4 wheels) of each tire Tn (n = 1 to 4: 4 wheels). (See FIG. 10).
[0067]
Furthermore, when a distance dn (n = 1 to 4: 4 wheels) between the line X corresponding to the ground and the point corresponding to the lower end Pn of the tire Tn is calculated in step 406, as shown in FIG. The distance dn is the depth of the tire Tn submerged under the ground or the distance between the ground and the tire. In step 408, the body coordinates of the vehicle are moved by this distance dn so that the front end of the tire of the vehicle is located just on the ground surface.
[0068]
The subsequent processing corresponds to a virtual suspension for controlling the attitude of the vehicle in the roll direction or pitch direction. In controlling this virtual suspension, as shown in FIG. 12, the vehicle body is positioned at its center of gravity CP and left and right front wheels FT. L , FT R A block (CP-FT) L -FT R ), The center of gravity and the left and right rear wheels
LT L , LT R B block (CP-LT) L -LT R ), And a vector calculation for suspension control is executed for each block. Therefore, the calculation load applied to the CPU is reduced as compared with a model in which a virtual suspension is provided for each of the four wheels.
[0069]
As shown in FIG. 13, in step 410 in the normal running behavior calculation process shown in FIG. 9, a vector (FU) given to the centroid position of the A block is calculated, and in step 412 a vector given to the centroid position of the B block ( RU). This vector is calculated based on the steering angle of the steering wheel, the positive / negative acceleration of the vehicle, the speed of the vehicle, the road surface condition, and the like.
[0070]
In step 414, these vectors are added and averaged to obtain an averaged vector.
(CU = (FU + RU) / 2) is given to CP, which is the connection point of both blocks and is the center of gravity position in the car model (see FIG. 13). The vector (CU) in the CP is equal to the average of the vectors added to the A block and the B block, and can be handled as determining the behavior of the entire vehicle. In step 416, the vector CU is converted into components in the X-axis direction and the Z-axis direction (CU X , CU Z ) And decompose.
[0071]
FIG. 14 is a schematic diagram showing a rigidity model of the vehicle viewed from the plane direction, and virtual suspension devices (springs) are set in the Z-axis direction and the X-axis direction. As shown in FIG. 6, if the Z-axis direction is the traveling direction of the car, the vector CU Z Is a force applied in the pitching direction because it is a force applied around the X axis, and CU X Is a force applied in the roll direction since it is a force applied around the Z axis.
[0072]
The CPU 101 configures an image in which the behavior posture of the vehicle body is controlled according to the vector value of each direction component. The CPU stores the CU in a predetermined storage area of the RAM. X And CU Z Can be sequentially updated and stored. CU stored in RAM X And CU Z Is called the current value.
[0073]
The next process is to calculate the CU X And CU Z To match the current value. CU X The difference between the calculated value and the recent (previous timing) current value gives the roll motion, and CU Z Since the difference between the calculated value and the current value of the last time (previous timing) gives the pitching behavior, the virtual suspension device has an action of damping the behavior in the roll direction and the pitching direction.
[0074]
The virtual suspension device described here is the calculated CU X When
CU X (CURRENT) And the acceleration in the roll direction is determined based on the difference between the two, and the calculated CU Z And CU Z (CURRENT) And the acceleration in the pitching direction is determined based on the difference between the two, and these are sequentially updated and stored in the work area of the RAM and reflected in the attitude control of the vehicle body. At this time, the virtual suspension device stabilizes the behavior of the vehicle body by applying processing described later to these acceleration values.
[0075]
In step 418, the CU X > CU X (CURRENT) Is determined, the suspension constant (SUSTYPE: the damping characteristics of the suspension is determined by the value of this coefficient) is successively subtracted from the current value of the roll angular acceleration that appears as the vector changes. Roll angular velocity. That is, in step 420, A SP (X) ← A SP (X) -Use SUSTYPE. Where A SP (X) Indicates the acceleration in the roll direction.
[0076]
Meanwhile, CU X <CU X (CURRENT) If it is determined, the routine proceeds to step 422, where the suspension constant (SUSTYPE) is sequentially added to the current value of the roll angular acceleration that appears as the vector changes, and this is used as the new roll angular velocity. That is, A SP (X) ← A SP (X) + SUSTYPE. That is, in the processing of step 420 and step 422, the CU X (CURRENT) CU for X By applying acceleration in the direction to cancel the acceleration caused by the change in the vector size of the vehicle (or when reflecting the change in the vector as a change in acceleration to the vehicle behavior control in a series of processing timings, the acceleration is A virtual suspension is provided that attempts to damp (stabilize) changes in the behavior of the vehicle body (so as to be constant).
[0077]
And CU X = CU X (CURRENT) At that time, it is determined that the posture stabilization in the roll direction is completed, and the process proceeds to the next step. Steps 424 to 428 are the acceleration A in the pitching direction that is the Z-axis direction. SP (Z) The content of this is to be controlled, and the content is the same as the processing of steps 418 to 422. After steps 418 to 428 stabilize the posture of the vehicle body in the roll direction and the pitching direction, the process returns.
[0078]
Therefore, according to the routine shown in FIG. 9, when the swinging motion in the roll direction and the pitch direction of the vehicle is controlled, a triangular model in which two swinging motions having different swinging directions are sufficiently reflected is defined as the front wheel side. The two are set on the rear wheel side (A block and B block), and the posture control of the vehicle body according to the swinging motion is executed. Therefore, the posture control of the vehicle body can be performed reliably and with less data. It can be accurately reproduced. In addition, since the vector applied to the vehicle body is used for controlling the swing motion, the attitude control of the vehicle can be simulated more practically. This also applies to the routine shown in FIG. 4 above. Since the tire grip value and the friction coefficient are used in the model for controlling the sliding behavior, the sliding behavior of the car is more realistically simulated. be able to.
[0079]
Further, according to the routine shown in FIG. 9, the vector of the A block and the vector of the B block are averaged and applied to the center of gravity of the car, so that the vehicle attitude control can be performed with a smaller number of data. It is possible to actually simulate.
[0080]
Next, the rollover behavior determination process will be described. In this process, when the left front wheel (12L) of the host vehicle 10A rides on the right rear wheel of an enemy vehicle that runs in front of the host vehicle, (1) → (2) → (3) → (4) in FIG. Based on the calculation of the force given to each wheel of the vehicle, the vehicle will lift the left wheel and drive the remaining right wheel for a predetermined time by collision detection Since such behavior calculation is not applied, the calculation load applied to the CPU can be reduced.
[0081]
In this embodiment, as described above, a model that approximates a car with an ellipse is used for collision judgment between cars. This model is defined in the body coordinate system of the above-described terrain data ROM 109, and the co-processor 108 arranges this model in the global coordinate system and determines the collision between vehicles.
[0082]
When designing a collision judgment model between the own vehicle and another vehicle or another fixed object, assuming that the vehicle is a circle model, if the ratio of length, width, and height is different as in a car, for example, If the diameter of the circle is matched with the direction of travel, the collision judgment line on the side of the car will be set beyond the side of the car, and if the collision judgment line is set perpendicular to the direction of travel of the car, The collision judgment line is set inside the car, and the collision judgment result cannot be unnatural.
[0083]
Therefore, since the length, width, and height of the vehicle body are usually different from each other, it is better to perform collision determination by approximating the vehicle with a rectangle. However, in the case of a rectangle, the distances to edges and corners vary depending on the sides and corners, that is, the peripheral part (boundary) of the rectangular parallelepiped is defined by a plurality of functions that require case separation. As shown, the movement of the car is a collision block (approximate model for collision calculation)
C 1 , C 2 The calculation is complicated when it is necessary to rotate the motor.
[0084]
Therefore, in this embodiment, the collision block is formed of an ellipse EL having a radius corresponding to the length and width of the car. 1 , EL 2 (Refer to FIG. 17) This is approximated and placed on the X and Z axes and used for collision determination. This ellipse EL 1 , Ellipse EL 2 The position data of the surface (periphery or boundary) of the center point 0 1 , 0 2 Each single function F around 1 , F 2 As given respectively.
[0085]
First, in the collision determination, in step 802 of FIG. 18 showing the rollover behavior determination, as shown in FIG. 1 , EL 2 Contact point (collision point) S 1 Is the center point O 1 , O 2 And the unit vector n of the straight line is expressed as a function F 1 (F 2 ) To calculate. Next, in step 804, an inverse matrix of the car rotation is calculated, and in step 806, the inverse matrix is multiplied by a unit vector to create a new vector n ′ (see FIG. 17). Here, the inverse matrix is calculated by the ellipse EL corresponding to the handle angle, speed, etc. 1 , Ellipse EL 2 This is because the three-dimensional rotation is returned to the initial (reference) position of the coordinate system in the calculation.
[0086]
Next, in step 808, the inner product of the coordinates on the X and Z axes and the vector n ′ is calculated, and the car center O 1 , O 2 A vector P from to the collision ellipse surface is obtained. In actual operation, since the vector n ′ is a unit vector, the function F 1 (F 2 ) Determined on the X and Z axes and each component of n ′ (n x , N z ). That is, P = (a · n x , C ・ n z ) In addition, the processes in steps 802 to 808 are performed by the ellipse EL that is a collision determination target. 1 , Ellipse EL 2 Done for each.
[0087]
Then, at step 810, each collision ellipse EL 1 , EL 2 Radius r which is the absolute value of vector P 1 , R 2 The value obtained by adding (see FIG. 19) is the respective center point O. 1 , O 2 It is determined whether or not the vehicle is in a collision state depending on whether it is longer or shorter than the distance L connecting. That is, L> r 1 + R 2 In case of 1 And EL 2 Are not in a collision state, and L ≦ r 1 + R 2 In the case of, for example, an EL consisting of a combination of an enemy vehicle running in front of the own vehicle and the own vehicle. 1 And EL 2 It is determined that a collision state has occurred.
[0088]
If the result of the collision determination is affirmative in step 810, the process proceeds to step 812, and the traveling direction in the vehicle world coordinate system is calculated for each of the two vehicles (the host vehicle and the enemy vehicle). The CPU sequentially stores the world coordinates of the car in the RAM, and calculates a vector of the traveling direction of the car from a plurality of coordinate values. The CPU calculates the angle formed by the traveling directions of the cars from this vector. On the other hand, if the collision determination is negative in step 810, that is, if it is determined that there is no collision, the rollover behavior determination flag F 1 Is set to "0" which does not require rollover behavior (step 811).
[0089]
In step 814, the angle formed by the vehicles traveling with each other, as shown in FIG. 1 ) Direction D (EL 1 ) And enemy vehicles (EL 2 ) Direction
D (EL 2 ) Is within a predetermined value, for example, 45 degrees, and if this angle is exceeded, the front wheel of the host vehicle rides on the rear wheel of the front vehicle (enemy vehicle) As described above, the flag F 1 = "0", and the operation proceeds to the normal post-collision determination operation without the above-described lateral rolling (step 816). Due to the processing in step 814, it is possible to quickly shift to the operation after the normal collision determination without performing the processing in step 818 and step 820 described later. In addition, as the post-collision determination operation after the collision determination is affirmed, the normal operation (step 816) and the rollover behavior (step 1000) of FIG. 3 can be developed. It can be developed in various ways, and it can improve the hobby, presence, or interest as a game device. Here, the operation after the normal collision determination is composed of a series of car figures (spin, crash, etc.) stored in advance in the shape ROM 111, and does not include the rollover behavior as described above.
[0090]
On the other hand, if it is within the predetermined angle range in step 814, it is determined whether or not a rollover behavior is necessary. First, at step 818, as shown in FIG. 20, the angle formed by the vector P in the above-described collision determination model (the angle of the model of the own vehicle is θ R And the angle θ in other vehicle models T And ) In the next step 820, it is determined whether this angle is in the installation range of the front wheel in the front vehicle and in the installation range of the rear wheel in the rear vehicle. FIG. 21 is a model diagram of this determination. In step 820, the vehicle model approximated by an ellipse (EL 2 ) In R Is in the installation range of the left and right front wheels in the actual vehicle figure 10A, that is, (θ 1 ≦ θ R ≦ θ 2 ) OR (θ Three ≦ θ R ≦ θ Four ) Is determined. In FIG. 21, the angle (θ) refers to an angle with respect to the reference line M along the traveling direction of the vehicle.
[0091]
In step 820, the other vehicle model approximated by an ellipse (EL 1 ) In F Is in the installation range of the left and right rear wheels in the actual car figure,
Five ≦ θ F ≦ θ 6 ) OR (θ 7 ≦ θ F ≦ θ 8 ) Is determined.
[0092]
In step 820, (θ 1 ≦ θ R ≦ θ 2 ) AND (θ 7 ≦ θ F ≦ θ 8 ) Or (θ Three ≦ θ R ≦ θ Four ) AND (θ Five ≦ θ F ≦ θ 6 ), It is assumed that the right front wheel of the host vehicle is riding on the left rear wheel of the front vehicle, or the left front wheel of the host vehicle is riding on the right front wheel of the front vehicle. 1 Then, “1” that requires rollover behavior is created, and the process returns to the routine of FIG. 3 (step 822). If it is determined in step 820 that the angle range is other than this, the process proceeds to step 816.
[0093]
In step 900 shown in FIG. 3, the CPU 101 sets the rollover behavior determination flag (F) set in a predetermined storage area of the RAM. 1 ) 1 == "1", the process proceeds to the rollover behavior calculation process in step 1000, and F 1 When “=“ 0 ”, the process proceeds to step 1100.
[0094]
As already described with reference to FIG. 15, the rollover behavior in step 1000 means that the own vehicle lifts the wheel on the collision side and continues the one-side line for a predetermined time with the wheel on the other side. The behavior is to return to the state before the collision (return in order from the state (4) to the state (1)). As shown in FIG. 15, an image is obtained in which the wheel on the collision side of the vehicle is positioned at the maximum height H from the terrain. Here, the value of H is the vehicle (EL 2 And) Front car (EL 1 ), The height of H is increased when the rotational speed is high. Further, the minimum value may be determined, and the additional height may be added according to the rotational speeds of the own vehicle and the front vehicle. Furthermore, you may adjust the continuation time of the one-side wheel running state as needed.
[0095]
In FIG. 21, the angle θ formed by the collision point T , Θ R Is calculated based on the ellipse model, but does not prevent the angle from being calculated based on the rectangular model for the car 10A, as indicated by the one-dot chain line.
[0096]
FIG. 22 shows a processing routine for controlling the rotational speed of the tire. The CPU 101 executes this processing operation by timer interrupt processing at regular intervals. In the game apparatus body 10 of this embodiment, the texture corresponding to the pattern 230 or the like is formed on the tire 12A as shown in FIG. Is attached and rotated as indicated by the solid line. However, as the human visual physiology, when the number of rotations of the tire increases, an image that reversely rotates as shown by a broken line is given to the player, and the realism of the game is impaired. Accordingly, FIG. 22 provides a process for avoiding such a situation.
[0097]
In step 2000, the CPU 101 reads from the input device 11 the accelerator opening and gear information (how fast the gear is selected, as in manual shift and automatic transmission). In step 2002, the CPU calculates the rotational speed (R) of the tire based on this input information. In step 2004, the CPU performs the rotation (R: rpm) and the rotation in the solid line direction shown in FIG. 23, and does not give the player the rotation indicated by the broken line (R). max ).
[0098]
R <R max In this case, it returns that the reverse rotation image as shown in FIG. 23 is not given to the player, and R ≧ R max In this case, in order to prevent this, the routine proceeds to step 2006, where the rotational speed of the tire is set to R. max To fix. However, when calculating the speed of the vehicle in the global coordinate system, the rotational speed of the tire is determined based on the accelerator opening and the gear information without applying the processing of FIG.
[0099]
In this embodiment, the swing motion is the roll direction (left-right vibration) and the pitch direction (front-back vibration). However, the present invention is not limited to this and may include bounding. Further, the rollover behavior is generated as the collision result behavior, but the other behavior described in the present embodiment may be included in the collision result behavior. Further, in the sliding request determination processing routine of FIG. 4, an arithmetic average or a geometric average of the left and right grip forces may be used for behavior control. This can also be applied to the vector calculation of the A block and B block described above. In the process of FIG. 4, when the steering angle does not occur in the steering wheel, the behavior of the vehicle may be calculated using a physical quantity given only to the center of gravity of the vehicle.
[0100]
In the flowchart of FIG. 18, the traveling direction of two objects, for example, the angle formed between the two objects (steps 812 and 814) can be reflected in the collision determination in step 810. As this mode, for example, when the angle formed by the objects is within a predetermined value, it is assumed that a collision cannot occur, so the processing in steps 802 to 808 is omitted, or the direction and angle are set in the three-dimensional space. When the collision determination process is performed on the target object, the correction value is given as a correction value for various characteristic values used in the process. Therefore, according to such an embodiment, the collision determination between the two objects can be executed accurately and quickly. Further, in the case of “No” in the processing of FIG. 18, the processing may be shifted to step 811.
[0101]
FIG. 24 shows another embodiment of the collision determination model as the object. In this embodiment, this model has two ellipsoids EL arranged so that their longitudinal directions are parallel to each other, and the longitudinal direction is the width direction of the car. In this model, the boundary of collision determination has a contour shape formed by combining two ellipses. A portion surrounded by a one-dot chain line is considered as one wheel. Therefore, this model is a model closer to a vehicle in which the wheels used in this embodiment protrude larger than the vehicle body. As a result, even if the collision determination is modeled and executed, it is possible to accurately grasp the collision occurring at the wheel portion.
[0102]
【The invention's effect】
According to the first aspect of the present invention, a model composed of a plurality of parts suitable for the target behavior is applied to the object, and physical quantities necessary for calculating the behavior of the object are given to each part of the model. Therefore, the behavior of the object can be simulated more realistically, that is, practically, and the object can accurately reproduce this behavior. If the number of parts in this model is reduced, the number of necessary characteristic values can be reduced, so that the target object can behave in a desired manner while reducing the computational load on the simulation means. Can be controlled.
[0103]
According to the second aspect of the present invention, the sliding behavior of the object can be accurately expressed with a small number of characteristic values. According to the invention described in claim 3, for example, a vector which is a characteristic value necessary for reproducing the swinging behavior is given to, for example, the position of the center of gravity of each polygon, and the invention described in claim 4 is provided for each polygon. Since the given vectors are synthesized, the vehicle swing can be accurately controlled based on the synthesized vector.
[0104]
In particular, as in the fifth aspect of the invention, the simulation means captures the change in the combined vector, thereby accurately simulating the behavior of the vehicle while reflecting the change in the vector in the posture change in the swinging direction of the vehicle body. . According to the sixth aspect of the present invention, the simulating means decomposes the combined vector into the roll direction and the pitching direction and outputs the result to the suppressing means. In order to reflect the change in the posture of the direction, a virtual suspension device is realized, and a practical vehicle simulation is provided.
[0105]
According to the seventh aspect of the invention, since the simulation means gives the target object two characteristic values for determining the behavior of the target object, the number of data required for the simulation is reduced. it can.
[0106]
According to the invention described in claim 8, since the target object is moved in a predetermined non-selection direction by the collision determination, the behavior calculation at a plurality of locations of the target object is performed for each collision, and as a result Compared with the control for moving the body in the non-selection direction, it is possible to reduce the calculation load applied to the simulation means, and to reliably move the target body in the non-selection direction when there is a collision. Therefore, it is possible to give the object a behavior of moving in the non-selection direction while reducing the calculation load applied to the simulation means.
[0107]
According to the ninth aspect of the present invention, since the position information formed by the collision point with respect to the object can be reflected in the movement direction control of the object, the appearance of the movement in the non-selection direction depends on the position. Can be adjusted, so that it can be adjusted to the actual behavior of the object.
[0108]
According to the invention of claim 10, whether or not to control the object to move in the non-selection direction can be determined according to whether the collision point is within a predetermined angle range with respect to the object. Realistic simulations can be provided to players and operators. According to the eleventh aspect of the present invention, the object can be moved in the height direction in the virtual three-dimensional space, and a practical simulation is possible.
[0109]
According to the inventions of claims 12 and 13, since the calculated moving direction is reflected in the simulation of the object, the object is simulated more variously, and the hobby, interest, and presence that are given to the user. Can be improved.
[0110]
Furthermore, according to the fourteenth aspect of the present invention, it is possible to provide a game device with an enhanced taste and interest. According to the fifteenth and sixteenth aspects of the present invention, it is possible to provide an image processing apparatus that can perform image processing in collision determination quickly and accurately.
[Brief description of the drawings]
FIG. 1 is a plan view showing an example of an object of the present invention.
FIG. 2 is a block diagram of a game device according to an embodiment of the present invention.
FIG. 3 is a flowchart showing main processing of a CPU in the block configuration diagram.
4 is a subroutine showing a sliding request determination process in the process of FIG. 3;
FIG. 5 is a model diagram for calculating sliding behavior.
FIG. 6 is a model diagram for explaining the behavior of a vehicle.
FIG. 7 is a conceptual diagram showing a change in tire height.
FIG. 8 is a subroutine showing a sliding behavior calculation process.
FIG. 9 is a subroutine showing normal running behavior calculation processing.
FIG. 10 is a model diagram for calculating a tire position.
11 is the same model diagram as FIG.
FIG. 12 is a model diagram illustrating a control operation for a virtual suspension.
FIG. 13 is a model diagram of the same.
FIG. 14 is a model diagram of a suspension.
FIG. 15 is a model diagram of the rollover behavior of the vehicle body.
FIG. 16 is a model diagram showing collision determination between vehicles.
FIG. 17 is the same model diagram.
FIG. 18 is a subroutine of the rollover behavior control process of FIG. 3;
FIG. 19 is a model diagram for collision determination of an elliptic model.
FIG. 20 is a model diagram showing an angular range of a collision point.
FIG. 21 is a model diagram of the same.
FIG. 22 is a flowchart for explaining the control of the number of rotations of a tire.
FIG. 23 is a model diagram for explaining the rotation speed control of a tire.
FIG. 24 shows another example of a collision determination model for an object.
[Explanation of symbols]
10 Game console
11 Input device
12 Output device
13 Tv monitor (display means)

Claims (1)

入力装置からの操作信号に基づいて仮想空間内での車のタイヤの回転をシミュレートして表示装置に表示させる画像処理方法において、In an image processing method for simulating rotation of a car tire in a virtual space based on an operation signal from an input device and displaying the simulation on a display device,
操作信号に基づいて前記車のタイヤの回転数を算出する工程と、Calculating the rotation speed of the tire of the vehicle based on an operation signal;
前記算出した回転数と、遊技者に逆回転する映像を与えない回転数として予め定められた最大回転数RThe calculated number of rotations and the maximum number of rotations R determined in advance as the number of rotations that does not give the player a reverse rotation image. maxmax とを比較する工程と、And a step of comparing
前記比較の結果、前記算出した回転数が最大回転数Rmax以上である場合に、前記車のタイヤの回転数を最大回転数Rmaxに決定する工程と、As a result of the comparison, when the calculated rotational speed is equal to or greater than the maximum rotational speed Rmax, determining the rotational speed of the tire of the vehicle as the maximum rotational speed Rmax;
テクスチャを前記タイヤに貼り付ける工程と、Applying a texture to the tire;
前記決定した回転数に基づき、前記テクスチャを回転させる工程と、Rotating the texture based on the determined number of rotations;
を備えることを特徴とする画像処理方法。An image processing method comprising:
JP13550195A 1995-06-01 1995-06-01 Image processing apparatus and game apparatus having the same Expired - Lifetime JP3783735B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP13550195A JP3783735B2 (en) 1995-06-01 1995-06-01 Image processing apparatus and game apparatus having the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP13550195A JP3783735B2 (en) 1995-06-01 1995-06-01 Image processing apparatus and game apparatus having the same

Publications (2)

Publication Number Publication Date
JPH08329273A JPH08329273A (en) 1996-12-13
JP3783735B2 true JP3783735B2 (en) 2006-06-07

Family

ID=15153235

Family Applications (1)

Application Number Title Priority Date Filing Date
JP13550195A Expired - Lifetime JP3783735B2 (en) 1995-06-01 1995-06-01 Image processing apparatus and game apparatus having the same

Country Status (1)

Country Link
JP (1) JP3783735B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11207029A (en) 1998-01-28 1999-08-03 Konami Co Ltd Video game device, picture displaying method for video game and readable recording medium stored with picture display program
JP2000126454A (en) * 1998-10-23 2000-05-09 Sega Enterp Ltd Game device and image processor
JP4125100B2 (en) * 2002-12-04 2008-07-23 株式会社バンダイナムコゲームス Image generation system, program, and information storage medium
JP6769157B2 (en) * 2016-07-29 2020-10-14 株式会社セガ Game programs and game equipment

Also Published As

Publication number Publication date
JPH08329273A (en) 1996-12-13

Similar Documents

Publication Publication Date Title
US5755620A (en) Game system and data processing method thereof
JP3841437B2 (en) GAME DEVICE, PROCESSING METHOD THEREOF, AND RECORDING MEDIUM
US6667741B1 (en) Image generating device and image generating method
JP3823265B2 (en) GAME DEVICE AND GAME DEVICE CONTROL METHOD
EP0790583B1 (en) Image processing method and image processor
JPH10151272A (en) Game device
US6384834B1 (en) Three-dimensional simulator apparatus and image synthesis method using texture computation and texture information storage
JP4226663B2 (en) Image generating apparatus and image generating method
JPH08276074A (en) Game machine and its data processing method
JP3783735B2 (en) Image processing apparatus and game apparatus having the same
JP3769286B2 (en) Image generating apparatus, load display method, and program
JPH08276070A (en) Game machine
JPH09167256A (en) Game image composting method and device
JP4243395B2 (en) GAME DEVICE, GAME IMAGE GENERATION METHOD, AND INFORMATION STORAGE MEDIUM
JP3766425B2 (en) Image generating apparatus, load display method, and program
JP3770290B2 (en) Image processing device, amusement facility and vehicle for amusement facility
JP3254091B2 (en) Three-dimensional simulator device and image synthesizing method
JPH11134515A (en) Game device and game screen compositing method
JP4846919B2 (en) Simulated driving device
JP4886442B2 (en) Program, game device, and information storage medium
JPH07116353A (en) Video game apparatus
JP3752081B2 (en) 3D simulator apparatus and image composition method
JP2006087937A (en) Game device and control method of game device
JPH08224375A (en) Racing game device
JP3638669B2 (en) Image composition method and game device

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050713

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060116

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060307

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100324

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110324

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120324

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120324

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130324

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130324

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130324

Year of fee payment: 7