JP2000218042A - ゲーム装置、ゲーム制御方法およびその記録媒体 - Google Patents

ゲーム装置、ゲーム制御方法およびその記録媒体

Info

Publication number
JP2000218042A
JP2000218042A JP11024341A JP2434199A JP2000218042A JP 2000218042 A JP2000218042 A JP 2000218042A JP 11024341 A JP11024341 A JP 11024341A JP 2434199 A JP2434199 A JP 2434199A JP 2000218042 A JP2000218042 A JP 2000218042A
Authority
JP
Japan
Prior art keywords
game
collision determination
collision
data
rectangle
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.)
Pending
Application number
JP11024341A
Other languages
English (en)
Inventor
Toshiya Shimizu
季也 清水
Satonori Inoue
吏紀 井上
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.)
Square Enix Co Ltd
Original Assignee
Square 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 Square Co Ltd filed Critical Square Co Ltd
Priority to JP11024341A priority Critical patent/JP2000218042A/ja
Publication of JP2000218042A publication Critical patent/JP2000218042A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】少ないデータ量で正確な衝突判定が可能とな
り、ゲーム進行の中断などがないゲーム制御方法を提供
する。 【解決手段】 全体の地形を大きく均等の大きさの矩形
に分割して設定する(S301)。これを第1の分割さ
れた第1矩形とする。次に、第1矩形をさらに細かく1
6×16の矩形に分割して設定する(S302)。この
細かく分けて設定された第2矩形に対応したコリジョン
のデータ(地形の高さデータ)を取得する(S30
8)。なお、地形の移動、回転に合わせてコリジョンを
切り替える。そしてこれらの頂点を結び合わせてコリジ
ョンの境界を設定する(S309)。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ゲームプログラム
に従ってゲームを進行させるゲーム装置及びゲーム制御
方法に関するものである。
【0002】
【従来の技術】従来より、仮想的な三次元空間(以下、
「仮想空間」と称す。)内に配置された、様々な物体を
模した仮想体を、特定の視点から見た画像として映し出
す三次元の処理を行うゲーム装置が知られている。この
ようなゲーム装置では、仮想空間内に、例えば飛行コー
スと航空機を模した仮想体を配置し、航空機の後部から
見た視点で画像を生成することで、仮想的に形作られた
コース上を、実際に航空機を操縦して飛行しているかの
ように見せることができる。
【0003】このようなゲーム装置を用いて画像を生成
する場合には、まず仮想空間内における視点と仮想体の
位置を確定し、次に視点の向いている方向に配置されて
いる仮想体の画像を生成している。飛行ゲームにおける
画像の生成を行う場合には、視点の向いている方向に、
たとえば、飛行するコースの周囲の景観、飛行の障害物
などが配置されている。このとき、ゲーム装置は、各仮
想体が視点位置から相対的にどの位置に配置してあるか
により、様々な画像を生成することができる。
【0004】仮想空間内に配置される仮想体は、ゲーム
装置により処理が可能な、幾何学的に形成されたコンピ
ュータグラフィックスである。仮想体は、ポリゴンと呼
ばれる三角や四角の平らな面を、立体的に組み合わせた
ものであるので、仮想体に曲面や細かな凹凸がある場合
には、仮想体に比べ大きさの小さい、多くのポリゴンを
用いて、その形状を形成する。
【0005】また、仮想空間上に配置される各仮想体に
は、通常、テクスチャマッピングが行われる。テクスチ
ャマッピングとは、テクスチャと呼ばれる2次元画像
を、3次元の仮想体に貼り付けることであり、このテク
スチャマッピングにより、仮想体の表面特性の定義を非
常に巧妙に増やすことができる。
【0006】このようなゲームでは、その飛行コースお
よび操作者の操作する航空機は、仮想空間に配置可能な
立体の仮想体であり、表示画像には後方の特定の視点か
ら見た周囲の景色と移動する航空機の映像が映し出され
るようになっている。操作者は、これらの映像を見なが
ら、航空機を操縦する。
【0007】そして、操作が行われた結果、操作される
航空機、または操作される航空機の発射した弾が、敵に
設定された航空機を模した仮想体に当たったか否か、あ
るいは障害物に衝突したか否かを判定して衝突が起こっ
ていれば、これに対応した制御を行わなければならな
い。たとえば、弾が敵に設定された航空機に当たった場
合には、その航空機に損傷を与えたり、操作される航空
機が障害物に衝突した場合には、それ以上の進行を阻止
するなどの制御を行う。
【0008】ここで、障害物に衝突したか否か、または
弾が当たったか否かを判定するために、単数または複数
のコリジョンが用いられる。コリジョンとは、ゲームプ
ログラム上の航空機に弾が当たることをいい、コリジョ
ン点とはコリジョンが起こった箇所あるいは起こるべき
箇所をいう。障害物に対する衝突判定も、障害物に複数
設定されたコリジョンデータと、航空機や弾のコリジョ
ンデータに基づいて行われる。通常、コリジョンデータ
はゲームプログラム上の仮想空間内における座標で表わ
され、この両座標の一致または重なりを検出することに
より、衝突判定や当たり判定が行われる。
【0009】
【発明が解決しようとしている課題】このようなゲーム
装置では、コリジョンが起こっているか否かを判定する
基礎となるコリジョンデータを予め設定し、このコリジ
ョンデータを基にコリジョンが起こっているか否かを判
定している。
【0010】しかしながら、一般のゲーム装置では、コ
スト面との兼ね合いからゲーム装置本体の中央処理装置
に含まれる記憶装置、すなわちメインメモリは、外部に
着脱自在に装着されるゲームプログラムやデータの入っ
た記録媒体の記憶容量に比べると非常に小さい。このよ
うなゲーム装置において、レースゲームのような地形の
処理が必要なゲームの処理を行う場合、仮想空間内にお
けるコース自体が大きくなると、それに対応するコリジ
ョンのデータも増大することになる。ところが、ゲーム
装置本体の記憶装置に格納しておけるデータ量は少ない
ため、仮想体であるコースとそのコリジョン双方のデー
タを大量に格納しようとすると容量を超えてしまう。
【0011】そのため、仮想体であるコースおよびその
コリジョンのデータを、記憶装置に収まるように配置し
たり、ある領域を超えたときに、新しくコースおよびコ
リジョンのデータを外部の記録媒体から読み込むものが
あった。しかしながら、記憶装置に納まるように配置し
た場合には、コースが広くないために面白さが薄れると
いったことが起こり得る。また、記憶装置に納められて
いるコースよりも外に出そうになった場合に、外部の記
録媒体からデータを読み込むものでは、ゲーム進行がそ
のつど中断してしまう。
【0012】
【課題を解決するための手段】本発明は上述の課題に鑑
みて成されたもので、上述の課題を解決し、仮想的な地
形および衝突(コリジョン)のデータを、汎用的に使用
できるようにし、ゲーム進行の中断などがなく、しかも
正確な衝突(コリジョン)判断が可能なゲーム装置を提
供することを目的とする。かかる目的を達成する一手段
として例えば以下の構成を備える。
【0013】即ち、仮想空間内を移動可能な移動体と周
辺地形とを所定の視点からの映像として表示する画像処
理手段を備えるゲーム装置であって前記仮想空間内に配
置される地形を表す仮想体を所定の大きさの網目状矩形
に分割する分割手段と、前記分割手段により分割された
各矩形ごとに予め設定された数値に基づき、前記各矩形
ごとの頂点を導き、隣接する矩形の頂点を結んだ頂点矩
形を形成する形成手段と、前記形成手段により形成され
た頂点矩形位置に前記移動体が接触した場合に、前記移
動体がそれ以上移動しないように制御する接触制御手段
とを備えることを特徴とする。
【0014】又は仮想空間内を移動する移動体の移動制
御を行うゲーム装置において、前記仮想空間内の衝突判
定対象部分を表す仮想体を所定の大きさの網目状の矩形
に分割する分割手段と、前記分割手段により分割された
各矩形ごとの位置情報に対応する数値を保持する位置情
報テーブルと、前記移動体が移動後に位置する矩形及び
隣接する矩形に対応する前記位置情報テーブル値を各対
応矩形の中心位置として前記衝突判定対象部分の衝突判
定座標を算出し、前記算出した衝突判定対象部分の衝突
判定座標と前記移動体の移動後の位置座標とにより前記
移動体が前記衝突判定対象部分に接触したか否かを判別
可能とする算出手段とを備えることを特徴とする。
【0015】そして例えば、さらに、前記移動体が移動
により前記衝突判定対象部分に接触した場合に前記移動
体を前記衝突判定対象部分を透過して移動しないように
制御する透過禁止手段を備えることを特徴とする。
【0016】また例えば、仮想空間内の前記衝突判定対
象はいくつかの地形ブロックの組合わせで構成されてい
て前記位置情報テーブルは地形ブロック毎に一種類備え
られており、前記算出手段は、前記地形ブロックの回転
に合わせて前記位置情報の読み出し位置を補正可能とす
ることを特徴とする。
【0017】更に例えば、前記算出手段は、前記移動体
の移動後の位置座標が含まれる前記矩形及び周囲の隣接
する矩形の前記位置情報テーブル対応値より前記衝突判
定対象部分の衝突判定座標を算出することを特徴とす
る。あるいは、前記算出手段は、前記移動体の移動後の
位置座標が含まれる前記矩形及び周囲のもっとも離間距
離の短い隣接する3方向の矩形の前記位置情報テーブル
対応値より前記衝突判定対象部分の衝突判定座標を算出
することを特徴とする。
【0018】以上の構成において、少ないデータ量で正
確な衝突判定が可能となり、ゲーム進行の中断などがな
いゲーム装置が提供できる。
【0019】
【発明の実施の形態】以下、図面を参照して本発明に係
る一発明の実施の形態例を詳細に説明する。以下の説明
は、本発明をゲーム装置に適用した例を説明する。
【0020】[第1の実施の形態例]図1は本発明に係
る一実施の形態例におけるゲームシステムの全体構成を
示すブロック図である。ゲームシステム1は、大別し
て、ゲームシステム1の主たる機能を有するゲーム装置
本体2と、ゲーム装置本体2に対する操作指示のための
入力を行うコントローラ21と、後述するゲームに関す
る処理を実現するためのプログラムや画像データ、サウ
ンドデータなどを格納する記録媒体[例えばCD−RO
M(Compact Disc Read Only Memory )、光ディスク、
フレキシブルディスク、シリコンディスク、半導体メモ
リ等]30と、ゲームの途中経過データやゲーム環境設
定データなどのゲームデータを保存するメモリカード2
2と、ゲーム装置本体2からの映像信号や音声信号に基
づいてゲーム内容に応じた映像表示やサウンド出力を行
なうモニタディスプレイ40とから構成されている。
【0021】モニタディスプレイ40は、CRT(Cath
ode Ray Tube)などにより構成することができる映像表
示を行う表示部41と、サウンド出力を行なうスピーカ
42とから構成されている。
【0022】ゲーム装置本体2は、画像処理部3、サウ
ンドバッファ19aを内蔵したSPU(Sound Processi
ng Unit;音声再生処理プロセッサ)19、コントロー
ラ21とのインタフェースとメモリカード22のアクセ
ス制御等を司る通信プロセッサ20、記録媒体30を装
着して記録媒体をアクセスする記録媒体ドライブ25、
記録媒体ドライブ25を制御するバッファ26aを内蔵
する記録媒体コントローラ26とから構成されている。
【0023】記録媒体ドライブ25は、例えば、ハード
ディスクドライブ、光ディスクドライブ、フレキシブル
ディスクドライブ、シリコンディスクドライブ、カセッ
ト媒体読み取り機などである。
【0024】画像処理部3は、CPU(Central Proces
sing Unit;中央演算処理ユニット)10、CPU10
のコプロセッサとして動作するGTE(Geometric Tran
sform Engine ;グラフィックスデータ生成プロセッ
サ)11、メインメモリ12、OSプログラム等を記憶
するROM13、GPU(Graphics Processing Unit;
グラフィックス描画処理プロセッサ)15、VRAM1
6、少なくとも表示部41の1画面分の表示情報記憶容
量を備えるフレームバッファ17、18により構成され
ている。
【0025】また、CPU10、メインメモリ12、R
OM13、GPU15、SPU19、通信プロセッサ2
0、記録媒体コントローラ26は、バス100を介して
互いに接続されている。
【0026】CPU10は、ROM13に格納されてい
るOS(オペレーティングシステム)や、記録媒体30
から読み出されてメインメモリ12に展開されるプログ
ラムやデータなどに基づいてゲーム装置本体2の各部を
制御し、後述するゲームに関する処理を実行する。
【0027】CPU10に接続されているGTE11
は、CPU10からの演算要求に応じて3次元モデルを
構成する各3次元座標データについて、移動、回転、拡
大、縮小などの座標計算や2次元座標データへの透視変
換計算、仮想的に設定された光源の種類や、その光源か
らの距離や角度、視点位置などに応じて各部の輝度を計
算する輝度計算などの固定小数形式の行列やベクトルの
演算処理を行う。
【0028】VRAM16には、記録媒体30から記録
媒体ドライブ25を介して読み込まれた、テクスチャパ
ターンデータおよびカラールックアップテーブル(CL
UT:Color Look−Up Table)等が記憶される。ここ
で、テクスチャパターンデータは2次元の画像データで
あり、カラールックアップテーブルはテクスチャパター
ンデータなどの色を指定するためのデータである。
【0029】フレームバッファ17、フレームバッファ
18は、モニタディスプレイ40の表示画像41に表示
させる画像データを記憶するメモリである。それぞれ少
なくとも1フレーム分の記憶容量を有しており、例えば
DRAM(DynamicRAM)などで構成すること
ができる。
【0030】フレームバッファ17、フレームバッファ
18はダブルバッファ形式となっており、一方のフレー
ムバッファに対してあるフレームの画像データの書き込
みを行っているときに、他方のフレームバッファで他の
フレームの画像データの読み出しを行うように制御可能
に構成されており、これにより画像表示処理の高速化が
図られている。
【0031】メモリカード22は、着脱可能な外部記憶
媒体であり、書き込み可能なメモリ部分を含んでおり、
例えば、EPROM,OTPROM,EEPROM,フ
ラッシュ型EEPROM等の種々の外部記憶媒体で構成
することができる。また、メモリカード22にメモリ以
外の集積回路、たとえばマイクロプロセッサ等を含ませ
ることもできる。
【0032】メモリカード22に対しては、CPU10
が実行するプログラムに基づき、通信プロセッサ20を
介して、データの記憶と、データの読み出しを行わせる
ことができる。なお、実際のデータのやり取りはメイン
メモリ12との間で行われる。
【0033】CPU10は、記録媒体ドライブ25から
ゲームプログラムや三次元モデルのモデリングデータな
ど読み出してメインメモリ12に転送する。また、同様
にして記録媒体ドライブ25からカラールックアップテ
ーブルやテクスチャパターンデータなどを読み出してV
RAM16に転送し、GPU15に画像の描画を指示す
る。
【0034】これに応じてGPU15は、GTE11で
求められた座標データや色情報、VRAM16に展開さ
れたCLUTやテクスチャパターンデータなどに基づい
てモデリング処理やレンダリング処理などを行なう。そ
して、三次元モデルを配置して構成した仮想三次元空間
における任意領域の二次元投影画像をフレームバッファ
17、18上に描画する。
【0035】その後、この画像データに同期信号を付加
するなどして映像信号としてモニタディスプレイ40に
出力する。これによりモニタディスプレイ40の画面上
にはゲーム内容に応じた映像が表示される。
【0036】また、CPU10は、記録媒体ドライブ2
5からサウンドデータを読み出してメインメモリ12や
SPU19に転送し、SPU19にサウンドの再生を指
示する。これに応じてSPU19は、CPU10からの
サウンド再生指示に従ってサウンドバッファ19aに格
納されたADPCM(Adaptive Differential PulseCod
e modulation)形式のサウンドデータに対して音量調整
処理や、ピッチ変換、音程調整、エンベロープ、リバー
ブなどの各種変調処理を適宜実行する。加えてその再生
処理を行ない、音声信号としてモニタディスプレイ40
のスピーカ42に出力する。これによりスピーカ42か
らはゲーム内容に応じたBGM(BackGround Music)や
効果音などが出力される。
【0037】サウンドバッファ19aは、CPU10に
よりメインメモリ12から転送されたADPCM形式の
サウンドデータなどを一時的に格納するメモリである。
また、このサウンドバッファ19aは、SPU19がリ
バーブ処理を行なう際に作業領域として使用したり、加
工用のサウンドデータなどをメインメモリ12へ転送す
る際のバッファとしても使用される。
【0038】GPU15は、CPU10とは独立して動
作するサブプロセッサである。このGPU15は、CP
U10からの描画指示に従ってGTE11で求められた
座標データや色情報、フレームバッファ17、18に展
開されたCLUTやテクスチャパターンデータなどに基
づいて、複数のポリゴンによって構成される三次元モデ
ルのモデリング処理やレンダリング処理などを行なう。
そして、三次元モデルを配置して構成した仮想三次元空
間における任意領域の二次元投影画像をフレームバッフ
ァ17、18上に描画する。なお、ポリゴンとは、三次
元モデルを構成する図形の最小単位であり、三角形や四
角形などの多角形平面からなるものである。
【0039】記録媒体コントローラ26は、記録媒体ド
ライブ25の駆動制御を行ない、記録媒体ドライブ25
に装填されている記録媒体30の符号化されたデータを
読み取る。記録媒体コントローラ26内のバッファ26
aは、転送用データを一時的に格納するメモリである。
【0040】通信プロセッサ20には、ゲーム装置本体
2に対して着脱自在に装着されるコントローラ21およ
びメモリカード22が接続される。この通信プロセッサ
20は、コントローラ21およびメモリカード22とゲ
ーム装置本体2の各部、たとえばCPU10やメインメ
モリ12との間のデータ転送を制御する。
【0041】コントローラ21は、プレイヤからの操作
入力に応じた各種操作信号を通信プロセッサ20を介し
てゲーム装置本体2に送出する入力デバイスである。こ
のコントローラ21は、スタートボタンや方向キーなど
種々の入力を行うための複数の入力ボタンが設けられて
いる。
【0042】メモリカード22はフラッシュメモリ等に
よって構成され、ゲームの途中経過データやゲーム環境
設定データなどのゲームデータを保存する。
【0043】なお、このゲーム装置本体2において、メ
インメモリ12と、フレームバッファ17、18、サウ
ンドバッファ19a、バッファ26aとの間では、画像
の描画や表示、サウンド出力などに際して大量の画像デ
ータやサウンドデータの転送を行なう必要がある。この
ため、データ転送を高速で行なうためにいわゆるDMA
転送が行なわれる。
【0044】以上の構成を備える本実施の形態例におけ
る記録媒体30よりのゲームデータの読み込み制御を図
2を参照して以下に説明する。図2は本実施の形態例の
ゲームデータの読み込み制御を説明するための図であ
る。
【0045】記録媒体30には、図2に示すように、ゲ
ームを実行するためのプログラムデータ、ゲーム進行上
のデモンストレーションデータ、ゲームデータ1、2、
3、…、nが記録されている。このゲームデータにはゲ
ーム画面の背景データや地形データが含まれ後述する図
14に示す地形位置テーブルデータなども含まれる。
【0046】そして、ゲーム装置2の電源スイッチ(図
示せず)がオンにされ、ゲーム装置2に電源が投入され
た時に記録媒体30が記録媒体ドライブ25に装填され
ていると、CPU10はROM13に記憶されているオ
ペレーティングシステムに基づいて、記録媒体コントロ
ーラ26に対して、記録媒体ドライブ25を制御して記
録媒体30からプログラムデータを読み出すことを指示
する。
【0047】この指示を受けた記録媒体コントローラ2
6は記録媒体ドライブ25を起動して記録媒体記録情報
の読み出し準備を行い、手順201、202に示すよう
にメインメモリ12のプログラムデータ格納領域に、記
録媒体30から記録媒体ドライブ25、記録媒体コント
ローラ26を介してプログラムデータの読み込みが行わ
れる。CPU10は読み込んだプログラムを実行する。
【0048】CPU10は、実行したプログラムに基づ
いて記録媒体コントローラ26に指示して、記録媒体3
0よりゲーム進行に必要なデモンストレーションデータ
やゲームデータを読み出すための指示を行う(手順20
3、手順204)。記録媒体コントローラ26は、記録
媒体ドライブ25を制御して指示されたデータを記録媒
体30から読み出し、指定データ格納領域に格納する
(手順205)。
【0049】記録媒体30にはゲームデータ1〜ゲーム
データNの複数のゲームデータが記録されており、CP
U10は実行されたプログラムに基づき、これらのゲー
ムデータの中からいずれか1つを読み出させる。このと
きのゲームデータの選択はゲームの進行に応じたものが
選択される。
【0050】本実施の形態例においては、GPU15は
隠面処理の描画制御を行い、メインメモリ12上に配置
されたインストラクション列を次々に実行してフレーム
バッファ17、18上に描画を行う。
【0051】また、フレームバッファ17、18上のデ
ータはビデオ信号に変換され、モニタディスプレイ40
の表示部41の表示画面上に表示される。この表示の行
われる速度は、モニタディスプレイ40のフィールドレ
ートに合わせ、60フィールド/秒、または30フィー
ルド/秒であり、これらの速度で次々に書き換えられる
ことで、動きのある映像を生成することができるように
なっている。
【0052】ダブルバッファ構造の描画制御では、フレ
ームバッファ17、18上の領域に描画が行われている
とき、現在描画されているフレームバッファの様子が、
そのままモニタディスプレイ上に表示されてしまうと、
たとえ60フィールド/秒で表示が行われていたとして
も、表示がちらついてしまう。そのため、このような描
画処理は、現在描画がされているフレームバッファと、
表示を行っているフレームバッファの2つを交互に切り
換えるように制御されている。このため、1フィールド
分の描画を1フレームとすると、1フレームごとにそれ
ぞれに使用するフレームバッファの切り替えが行なわれ
ることになる。
【0053】以上の構成を備える本実施の形態例におい
ては、仮想空間内に配置される仮想的な地形を、特定の
矩形状に分割し、これに対応してコリジョンのデータを
設定し、地形の移動、回転に合わせてコリジョンデータ
を取得できる。
【0054】図11は、本実施の形態例の地形処理が行
われる矩形地形の組み合わせ例を示す図である。図11
に示すように、本実施の形態例において処理される全体
の地形が、例えば16個の矩形の集合であるとする。こ
のように分割されたそれぞれの矩形を、第1矩形とす
る。この図11に示す例では各矩形は略直線状の溝より
なる図9に1401で示す地形ブロックと、ほば直角に
カーブ゛した溝よりなる図10に1501で示す矩形ブ
ロックの組合わせで構成されている。そしてこの両地形
ブロックを適宜回転させて組合わせ、図11に示す全地
形1601を形成する。
【0055】本実施の形態例においては、第1矩形をさ
らに細かく16×16の矩形に分割して設定する。この
さらに細かく分けて設定された矩形を第2矩形とする。
この第2矩形の例を図12に示す。図12は、図10の
矩形ブロック1501を、第2矩形に分割した例を示す
図である。ここで、第2矩形に対応して、コリジョンの
データを設定する。
【0056】この第2矩形毎に対応するコリジョンデー
タを設定したマトリクステーブルの例を図14に示す。
図14に示す例は図10に示す地形に対応するマトリク
ステーブルである。本実施の形態例では、図12に示す
地形ブロックのx軸、z軸インデクス番号で特定される
区画のコリジョンデータが対応するインデクステーブル
のx軸、z軸インデクス番号で特定される場所に格納さ
れている。マトリクステーブルに設定されるデータは地
形の高さデータ(y軸データ)であり、これらの値が当
該区画の中心位置の頂点であるとして隣接する区画の中
心頂点の値を結び合わせて区画内の任意の位置のコリジ
ョンを設定する。
【0057】なお、ゲーム装置本体の記憶装置の容量が
小さいことから、本実施の形態例では、後述するように
第1矩形を移動、回転させて配置しても、対応するコリ
ジョンデータをそのまま使用できるように、地形ブロッ
クの回転に合わせてマトリクステーブルのインデクス番
号を補正している。全体地形は、仮想空間内に配置され
る仮想体であり、その画像を生成するためのデータと、
衝突判定または当たり判定を行うためのデータは、記録
媒体より読み出されるゲームデータに含まれている。
【0058】図17は、本実施の形態例において表示部
41に表示されるゲーム画面を説明するための図であ
る。図17において41aはゲームキャラクタであり、
コントローラ21の操作入力が検出され、検出された操
作入力及びゲームの進行状況に応じて、画面上を上下左
右に移動するとともに、敵として登場するゲームキャラ
クタ41bへの攻撃を行う。コントローラ21からの操
作入力の検出およびゲームキャラクタ41aの制御は、
CPU10により実行されるプログラムにより行なわれ
る。
【0059】また、ゲームキャラクタ41bは画面上で
の移動、及びゲームキャラクタ41aへの攻撃を行う敵
として登場するゲームキャラクタであり、CPU10に
より実行されるプログラムにより操作される。そして、
図17の背景は、仮想空間内に配置された全体地形16
01を、特定の視点から見た画像である。ゲームの進行
により仮想空間内で位置を変える視点に応じて、全体地
形1601の一部である背景画像が、ゲーム画面に表示
される。
【0060】ゲームキャラクタ41a、ゲームキャラク
タ41bには、衝突判定または当たり判定を行うための
コリジョンデータが設定してある。図17はまた、ゲー
ムキャラクタ41aとゲームキャラクタ41b、全体地
形1601の仮想空間内における位置関係を示してお
り、例えば仮想空間内において図20に示すようにそれ
ぞれのキャラクタ及び背景が位置しており、さらにゲー
ムの進行に応じて例えば後述する図21乃至図24に示
すようにその位置が変更される。同時にゲーム画面を表
示するための視点位置もゲームキャラクタ41aの位置
に応じた位置へ変更される。
【0061】これらゲームキャラクタは、仮想空間内に
配置される仮想体であり、その画像を生成するためのデ
ータと、衝突判定または当たり判定を行うためのデータ
は、記録媒体より読み出されるゲームデータに含まれて
いる。
【0062】以上の構成を備える本実施の形態例におけ
る動作を図3を参照して以下に説明する。図3は本実施
の形態例の全体の動作を説明するためのフローチャート
である。
【0063】本実施の形態例のゲーム装置は、電源が投
入されると図3に示す処理に移行し、CPU10はまず
ステップS101において記録媒体30から、メインメ
モリ12の図2に示すプログラムデータ格納領域へ、上
述した制御で記録媒体ドライブ25を介して記録媒体に
記録されているプログラムデータを読み出し、格納され
たプログラムを実行する。
【0064】続いてステップS102において、CPU
10に実行されたプログラムに基づき、記録媒体30か
らメインメモリ12の指定データ格納領域へデモンスト
レーションデータの読み出しが行われる。
【0065】更にステップS103においてデモンスト
レーション準備処理が行われる。ここでは、ゲームのデ
モンストレーションの準備のため、ステップS108で
使用される各変数の初期化などが行われる。
【0066】次にステップS104において、コントロ
ーラ21からゲームの開始を指示する操作入力があった
か否かの検出を行う。ゲームの開始の指示が検出された
場合にはステップS105へ進み、CPU10で実行さ
れているプログラムに基づき、記録媒体30から指定デ
ータ格納領域へゲームデータの読み出しが行われる。ゲ
ームの最初ではゲームデータ1が選択されて読み出され
る。
【0067】続いてステップS106でゲーム準備処理
が行われ、ステップS107で使用される各変数などの
初期化などが行なわれる。そしてこれでゲームの準備が
完了したためステップS107のルーチンを実行し、ゲ
ーム処理を行う。ゲーム処理の詳細は後述する。そして
ステップS105で読み込まれたゲームデータに対応す
るゲームが終了したり、コントローラ21よりのゲーム
終了が指示された時にはステップS107よりステップ
S102に戻る。
【0068】一方、ステップS104でコントローラ2
1からゲームの開始を指示する操作入力が検出されなか
った場合には、ステップS108へ進み、デモンストレ
ーションの処理を行う。ここでは、CPU10により実
行されたプログラムと、指定データ領域に格納されてい
るデモンストレーションデータに基づき、デモンストレ
ーションの処理を行う。デモンストレーションは、実施
の形態例におけるゲームの説明などであり、たとえば、
あらかじめ決められた内容のゲームのプレイが行われ
る。
【0069】続いてステップS109でデモンストレー
ションが終了したかの判断を行う。デモンストレーショ
ンが終了していると判断された場合にはステップS10
2へ戻る。一方、デモンストレーションが終了していな
いと判断された場合にはステップS104へ戻り、ゲー
ムの開始を指示する操作入力があったか検出を行う。
【0070】図3に示すゲーム処理の詳細を図4を参照
して説明する。図4は図3に示すステップS107のゲ
ーム処理の詳細を説明するためのフローチャートであ
る。
【0071】CPU10は、まずステップS201でコ
ントローラ21から、ゲームキャラクタ41aへの操作
指示が入力されたかの検出を行う。検出された操作指示
は、プログラムデータ格納領域の操作指示内容を保持す
る領域へ格納される。操作指示が何も検出されなかった
場合には、操作指示内容を保持する領域は初期化され
る。
【0072】続いてステップS202でステップS20
1で検出された操作指示内容を、プログラムに従って処
理し、操作可能ゲームキャラクタ(自キャラクタ)の移
動処理を行う。ここでは、操作指示内容に従った自キャ
ラクタの移動処理実行後の位置を求める。そしてステッ
プS203で移動した後の自キャラクタの位置が周囲地
形に衝突しているか否かを判定するために用いる周囲地
形の位置情報を算出する地形のコリジョン処理を行う。
【0073】次のステップS204で自キャラクタの仮
想空間内のy軸方向の移動方向すなわち、高さ方向の移
動方向を求める。そしてステップS205で移動方向よ
り移動後の自キャラクタが周囲地形に衝突しているか否
かを判定する。図18及び図19はステップS205に
おける衝突判定を説明するための図である。図18又は
図19において、41aは操作可能な自キャラクタであ
る。
【0074】図18又は図19に示すように、本実施の
形態例においては、高さ(y座標)を用いて当たり判定
を行っている。具体的には、自キャラクタ41aの位置
座標(X,Z)と、図18、図19に鎖線で示すy軸方
向で自キャラクタ41aの位置座標(X,Z)に対応す
る周囲地形の座標とを比較し、一致又は重なりが起きて
いた場合に衝突と判定する。具体的には詳細を後述する
ように両位置座標のy座標(高さ方向座標)値を用いて
判定する。衝突していない場合にはステップS207に
進む。
【0075】一方、ステップS205で衝突と判定した
場合にはステップS206に進み、衝突処理を行う。そ
してステップS207に進む。
【0076】ステップS207では、判定結果に対応し
た自キャラクタの制御を行い、ゲーム進行処理を行う。
そして続くステップS208でゲーム進行結果をモニタ
ディスプレイ40に表示する。これは、フレームバッフ
ァ17、18のうちの表示に用いているフレームバッフ
ァでない描画フレームバッファにゲーム進行処理結果に
対応する画面を描画し、描画終了後に表示バッファと描
画バッファとを切り替え、新たに切り替えた表示フレー
ムバッファの画面を表示する。そしてCPU10は、次
のステップS209でプログラムに基づきゲームの終了
であるかの判断を行う。ゲーム終了である場合には当該
ゲーム処理を終了してリターンする。
【0077】一方、ステップS209でゲーム終了でな
ければステップS201に戻り次の操作に備える。本実
施の形態例では、CPU10は不図示のクロック信号に
よりモニタディスプレイ40へのビデオ信号の垂直同期
信号を生成しており、この垂直同期信号に同期したタイ
ミングでCPU10への割込みを行っている。CPU1
0はこの割込み発生毎に上記ゲーム処理を起動して実行
する。即ち、モニタディスプレイ40がNTSC方式で
ある場合には垂直同期信号は(1/60)秒毎に出力さ
れており、(1/60)秒毎にゲーム処理を実行してい
る。
【0078】以上に説明した仮想空間内における実際の
ゲーム進行に応じた各地形ブロックとゲームキャラクタ
との位置関係及び衝突制御を図20乃至図27を参照し
て以下に説明する。図20乃至図24は各地形ブロック
とゲームキャラクタとの位置関係を説明するための図で
ある。図25乃至図27は地形ブロックとゲームキャラ
クタとの衝突を説明するための図である。
【0079】例えば、上述した図17に示すゲーム表示
画面であった場合における仮想空間内での地形ブロック
とゲームキャラクタ41a、41bとの位置関係は図2
0に示すようになる。
【0080】また、進行方向上部後方よりの視点におけ
るy軸に対する回転角度0度の地形ブロック1501
と、ゲームキャラクタ41a、41bとの位置関係は図
21に示すようになる。同様に、進行方向上部後方より
の視点における回転角度90度の地形ブロック1501
と、ゲームキャラクタ41a、41bとの位置関係は図
22に示すようになる。
【0081】更に、進行方向上部後方よりの視点におけ
る回転角度180度の地形ブロック1501と、ゲーム
キャラクタ41a、41bとの位置関係は図23に示す
ようになり,進行方向上部後方よりの視点における回転
角度270度の地形ブロック1501と、ゲームキャラ
クタ41a、41bとの位置関係は図24に示すように
なる。
【0082】このように、地形ブロックを回転して配置
した場合でも、ステップS203の処理でコリジョンデ
ータを取得できる。また、地形ブロックの上下を反転
(X軸またはZ軸に対して180度回転)して同様にy
軸に対して回転して配置した場合でもコリジョンデータ
を取得することができる。
【0083】上述した図4のステップS205の衝突判
定で衝突が検出された場合には、続くステップS206
における衝突処理でゲーム画面上での衝突表示を行うこ
とになる。
【0084】図25は、地形ブロック1401とゲーム
キャラクタ41aとの衝突を説明するための図である。
また、図26は地形ブロック1401とゲームキャラク
タ41aの一部との衝突を説明するための図である。但
し、図26はゲームキャラクタ41aの翼の部分にコリ
ジョン点が設定してあり、そのコリジョン点が衝突と判
定された場合である。
【0085】さらに、ステップS206における衝突処
理では、例えば図27に示す様にゲームキャラクタ41
aを地形ブロック1401の上に墜落させる処理を行
う。これら図20〜図27は、特定に視点から視た画像
として表示部41に表示される。
【0086】次に上述した図4に示すステップS203
の地形のコリジョン処理の詳細を図5を参照して説明す
る。
【0087】まず、ステップS301で実座標からブロ
ック単位座標(Sx,Sy,Sz)を算出する。具体的
には、コリジョン判定(当たり判定)を行う対象となる
自キャラクタのステップS202での移動処理後の座標
(実座標)より、処理を行う地形データのブロックを特
定する。例えば、図11に示す16個の矩形地形データ
のブロックから本実施形態の地形処理が行われるとする
と、16個のうちどのブロック位置に自キャラクタの実
座標が位置しているかにより、処理を行うブロックを特
定する。
【0088】ステップS301での算出の結果、例え
ば、図16に示す地形1601に含まれる地形ブロック
(第1矩形)の中で左上端の地形ブロック1501aに
自キャラクタが配置されているものとして以下の処理の
説明を進める。
【0089】実座標を算出すると続くステップS302
において、ブロック内の区画座標(bx,bz)を算出
する。すなわち、図11に示す1501aに示す地形の
うちの図12に分割される区画(第2矩形)のどの区画
にあるかその区画座標を特定する。このとき、算出され
る(bx,bz)は、図12における256個ある区画
のうち、いずれか一つを指し示すものであるとする。
【0090】つまり、図12においては、(bx=0,
bz=0)が区画1701、(bx=15,bz=0)
が区画1702、(bx=0,bz=15)が区画17
03、(bx=15,bz=15)が区画1704であ
る。以下の説明はステップS302で例えば自キャラク
タの実座標位置が図12の区画1705であり、(bx
=6,bz=1)が算出された場合を例にして説明を続
ける。
【0091】ステップS303でステップS302で求
めた区画のオフセット座標(ox,oz)を算出して自
キャラクタが算出された区画内のどの部分に位置するの
かを算出する。図13は、オフセット座標(ox,o
z)の算出処理を説明するための図である。
【0092】区画1705に自キャラクタが位置してい
る場合に、区画1705において、その中心である座標
を原点1705aとすると、x,zが双方とも正の値と
なる領域1705bと、xが負、zが正の値となる領域
1705cと、xが正、zが負の値となる領域1705
dと、xとzが双方とも負の値となる領域1705eと
の、いずれかの領域にゲームキャラクタは位置すること
になる。
【0093】但し、例えばxが負の値となる場合には、
区画1705の高さ、または幅の値であるDLから、そ
の値を減算した値が(ox)として設定される。(o
z)についても、負の値であった場合には、DLからそ
の値を減算した値が(oz)として設定される。このよ
うに、ステップS303では、区画の原点から相対的な
自キャラクタの位置(ox,oz)を算出する。
【0094】続くステップS304においてステップS
303で算出されたoxが、区画の幅の1/2であるD
Hよりも大きいか否か(ox>DH?)を調べる。(o
x)が、区画の幅の1/2であるDHよりも大きくない
場合、即ち、図13において原点1705aから見てx
が正の値となる領域を指し示している場合にはステップ
S306へ進む。
【0095】このとき、後述する処理では、(bx=
6,bz=1)の区画1705と共に、右隣の(bx=
7,bz=1)の区画1805、上隣の(bx=6、b
z=2)の区画1807、右上隣の(bx=7,bz=
2)の区画1808に対応付けられて設定されているコ
リジョンデータに基づきコリジョンの値算出を行う。
【0096】一方、ステップS304で(ox)が、区
画の幅の1/2であるDHよりも大きい場合、即ち、図
13において原点1705aから見てxが負の値となる
領域を指し示している場合にはステップS305へ進
む。
【0097】そしてステップS305において、bx=
bx−1の処理を行い、ステップS302で算出された
bxの値から1を減算する参照開始位置を補正してステ
ップS306に進む。ここでbxの減算が行われると、
後述する処理において、左隣の(bx=5,bz=1)
の区画1804、(bx=6,bz=1)の区画170
5、左上隣の(bx=5、bz=2)の区画1806、
上隣の(bx=6,bz=2)の区画1807に対応付
けられて設定されているコリジョンデータに基づきコリ
ジョンの値算出が行われる。
【0098】ステップS306では、ステップS303
で算出された(oz)が、区画の高さの1/2であるD
Hよりも大きいか否か(oz>DH?)を調べる。ステ
ップS303で算出された(oz)が、区画の高さの1
/2であるDHよりも大きくない場合、即ち、図13に
おいて原点1705aから見てzが正の値となる領域を
指し示している場合にはステップS308へ進む。この
とき、ステップS304で(ox)が正の領域にあると
判断されていた場合には、後述する処理で、(bx=
6,bz=1)の区画1705、右隣の(bx=7,b
z=1)の区画1805、上隣の(bx=6,bz=
2)の区画1807、右上隣の(bx=7,bz=2)
の区画1808に対応付けられて設定されているコリジ
ョンデータに基づきコリジョンの値算出を行う。
【0099】一方、ステップS306で(oz)が、区
画の高さの1/2であるDHよりも大きい場合、即ち、
図13において原点1705aから見てzが負の値とな
る領域を指し示している場合にはステップS307へ進
み、(bz=bz−1)の処理を行い、ステップS30
2で算出されたbzの値から1を減算する。そしてステ
ップS308に進む。
【0100】このとき、ステップS304で(ox)が
正の領域にあると判断されていた場合には、後述する処
理において、下隣の(bx=6,bz=0)の区画18
02、右下隣の(bx=7,bz=0)の区画180
3、(bx=6,bz=1)の区画1705、右隣の
(bx=7,bz=1)の区画1805に対応付けられ
て設定されているコリジョンデータに基づきコリジョン
の値算出が行われる。
【0101】また、ステップS304、ステップS30
6で(bx,bz)がそれぞれ減算されていた場合に
は、後述する処理において、左下隣の(bx=5,bz
=0)の区画1801、下隣の(bx=6,bz=0)
の区画1802、左隣の(bx=5,bz=1)の区画
1804、(bx=6,bz=1)の区画1705に対
応付けられて設定されているコリジョンデータに基づき
コリジョンの値算出が行われる。
【0102】そしてステップS308において、以上に
説明したステップS301〜S307で算出したbx,
bzに基づいて抽出した各周囲4区画の4点のコリジョ
ンデータを取得するコリジョン取得処理を実行する。
【0103】そしてステップS309で、ステップS3
08で取得した4点コリジョンから自キャラクタの操作
後の実際位置を求める実際位置算出処理を実行する。そ
して当該処理を終了してリターンする。
【0104】次に上述した図5に示すステップS308
のコリジョン取得処理の詳細を図6を参照して説明す
る。
【0105】まず、ステップS401において、以下に
説明する繰り返し処理を制御する変数[LOOP]を
「0」に設定する。そしてステップS402において、
[LOOP]が3以上であるか否かを調べる。[LOO
P]が3以上であれば4点のコリジョンデータの取得が
終了したので当該処理を終了してリターンする。
【0106】一方、ステップS402で[LOOP]が
3以上でない場合にはステップS403に進み、変数
[LOOP]の数値を判別する。そして、変数[LOO
P]の数値に対応した処理に移行する。
【0107】変数[LOOP]が0の場合にはステップ
S403よりステップS404に進み、変数ixにbx
を、変数izにbzを設定し、(ix=bx,iz=b
z)としてステップS410に進む。
【0108】ステップS403で、変数[LOOP]が
1の場合にはステップS403よりステップS405に
進み、変数ixにbx+1を、変数izにbzを設定
し、(ix=bx+1,iz=bz)としてステップS
410に進む。
【0109】ステップS403で、変数[LOOP]が
2の場合にはステップS403よりステップS406に
進み、変数ixにbxを、変数izにbz+1を設定
し、(ix=bx,iz=bz+1)としてステップS
410に進む。
【0110】ステップS403で、変数[LOOP]が
3の場合にはステップS403よりステップS407に
進み、変数ixにbx+1を、変数izにbz+1を設
定し、(ix=bx+1,iz=bz+1)としてステ
ップS410に進む。
【0111】そして次のステップS410において設定
された変数ix,izが区画のy座標値(高さ)よりコ
リジョンを判定するためのマトリクステーブルの範囲外
か否かを判断する。マトリクステーブルの範囲外でない
場合にはステップS412に進む。
【0112】一方、ステップS410で設定された変数
ix,izが、マトリクステーブルの範囲外で区画ブロ
ックの無い箇所を指していると判断された場合、即ち、
ix,izの少なくとも一つ以上が0以下、または15
以上である場合にはステップS411へ進み、半値テー
ブルインデックス及び(ix,iz)の値の補正を行な
い、ステップS412に進む。具体的には、ix,iz
の少なくとも一つ以上が0以下であった場合には0に、
15以上であった場合には15に値を補正する。
【0113】ステップS412ではブロック配置テーブ
ルからブロックIDと回転状態を取得する。ここで、ブ
ロック配置テーブルとは、地形1601を形成するため
のテーブルデータである。このブロック配置テーブルか
ら、図11に示した地形1601の地形ブロック150
1aが、地形ブロック1501であることを示すID番
号と、地形1601に地形ブロック1501aが何度回
転して配置されているか(図10に示す地形ブロックが
何度回転して配置されているか)を示す回転状態のデー
タの取得が行われる。
【0114】これは、本実施の形態例の地形が、例えば
図9に示す地形ブロックと図10に示す地形ブロックを
適宜回転等させ、組み合わせて構成されているため、地
形毎の高低差情報は全ての地形分備える必要はなく、構
成地形ブロックに対応するデータをテーブルデータとし
て保持しておくのみで可能であることに由来する。即
ち、構成地形ブロックの回転状態によりこのテーブルの
読み出しアドレスを変えることにより、同一地形であれ
ば回転角度にかかわらず一つのテーブルデータで対応す
ることができるためである。
【0115】続いてステップS420でコリジョンデー
タを取得するコリジョンデータの取得処理を実行してス
テップS404〜S412で算出したix,iz,ブロ
ックID、および回転状態に基づき、4点のコリジョン
データの取得を行う。そしてステップS421で変数
[LOOP]を+1してステップS402に戻り、次の
コリジョンデータの取得を行う。
【0116】次に上述した図6に示すステップS420
のコリジョンデータ取得処理の詳細を図7を参照して説
明する。
【0117】まず、ステップS501において、図6の
ステップS412の処置で取得したブロックの回転状態
を検出して検出した回転状態に対応した処理に分岐す
る。ここでは、自キャラクタ位置座標を基に周囲地形y
座標(高低差)を読み出せるようにするためである。な
お、検出する角度の度数は、y軸に対して右廻りに設定
されているものとする。
【0118】ステップS501での検出の結果、回転状
態のデータの示しているのが0度の場合(type0の
場合)にはステップS502へ進み、cxにixを、c
zにizを設定(cx=ix,cz=iz)してステッ
プS510に進む。以下、cxに6、czに1が設定さ
れた場合を例に説明を続ける。
【0119】一方、ステップS501での検出の結果、
回転状態のデータの示しているのが90度の場合(ty
pe1の場合)にはステップS503へ進み、cxに1
5−izを、czにixを設定(cx=15−iz,c
z=ix)してステップS510に進む。
【0120】ステップS501での検出の結果、回転状
態のデータの示しているのが180度の場合(type
2の場合)にはステップS504へ進み、cxに15−
ixを、czに15−izを設定(cx=15−ix,
cz=15−iz)してステップS510に進む。
【0121】ステップS501での検出の結果、回転状
態のデータの示しているのが270度の場合(type
3の場合)にはステップS505進み、cxにizを、
czに15−ixを設定(cx=iz,cz=15−i
x)してステップS510に進む。
【0122】ステップS501での検出の結果、回転状
態のデータの示しているのが0度でかつ上下反転である
場合(type4の場合)にはステップS506へ進
み、cxに15−izを、czにixを設定(cx=1
5−ix,cz=iz)してステップS510に進む。
【0123】ステップS501での検出の結果、回転状
態のデータの示しているのが90度でかつ上下反転であ
る場合(type5の場合)にはステップS507進
み、cxにizを、czにixを設定(cx=iz,c
z=ix)してステップS510に進む。
【0124】ステップS501での検出の結果、回転状
態のデータの示しているのが180度でかつ上下反転で
ある場合(type6の場合)にはステップS508へ
進み、cxにixを、czに15−izを設定(cx=
ix,cz=15−iz)してステップS510に進
む。
【0125】ステップS501での検出の結果、回転状
態のデータの示しているのが270度でかつ上下反転で
ある場合(type7の場合)にはステップS509進
み、cxに15−izを、czに15−ixを設定(c
x=15−iz,cz=15−ix)してステップS5
10に進む。
【0126】以上の各処理終了後のステップS510で
は、ステップS501〜509で算出されたcxとcz
から、インデックス番号を算出(index=cz×1
6+cx)する。算出したインデックス番号は、変数i
ndexに設定される。ここで、cxが6、czが1で
あるとすると、16進数の16Hの値が算出される。
【0127】次にステップS511において、ステップ
S510で算出された変数indexに基づき、マトリ
クステーブルのindex位置からコリジョンを取得す
る。本実施の形態例のマトリクステーブルの例を図14
に示す。図14は図10に示す地形ブロック1501a
に対応付けられて設定されているマトリクステーブルの
例を示す図である。
【0128】図14に示すように、マトリクステーブル
1901は、X軸側と、Z軸側のインデックス番号がそ
れぞれ16あり、合計で256のコリジョンデータが設
定されている。また、X軸のインデックス番号は16進
数で1の桁を、Z軸のインデックス番号は16進数で1
0の桁を表している。このとき、ステップS510で算
出された値が16Hである場合は、Z軸のインデックス
番号が1、X軸のインデックス番号が6に対応するコリ
ジョンデータが取得される。
【0129】取得されたコリジョンデータは、図6のフ
ローチャートにおけるループの回数、すなわち変数LO
OPの値に応じて変数Y0〜Y3に記憶される。1度目
のループでは変数Y0に、2度目のループでは変数Y1
に、3度目のループでは変数Y2に、4度目のループで
は変数Y3に、取得されたコリジョンデータが記憶され
る。
【0130】次にステップS512において、ステップ
501で取得した地形ブロックの回転状態のデータに基
づいて、上下反転であるかの判断を行う。上下反転でな
いと判断された場合には当該処理を終了してリターンす
る。
【0131】一方、ステップS512において、上下反
転であると判断された場合にはステップS513へ進
む。そして、コリジョン無しか否かを判断する。例えば
図14に示したマトリクステーブル1901において、
たとえば、設定されている値が0の部分は、コリジョン
無し(当たり判定が無いもの)とする。コリジョンで無
いと判断されたときにはリターンする。
【0132】一方、ステップS513において、ステッ
プS511で取得した値が0以外のコリジョンデータが
設定されていた場合にはコリジョンデータがあると判断
してステップS514へ進み、上下反転によるコリジョ
ン補正(コリジョン=1ブロックの高さ−コリジョン)
の処理を行う。上下反転によるコリジョン補正は、あら
かじめ決められている1ブロックの高さから、ステップ
S511で取得されたコリジョンデータの値を減算して
行う。そして、リターンし、変数[LOOP]をインク
リメントする。
【0133】次に上述した図5に示す実際の位置算出処
理の詳細を図8のフローチャートを参照して説明する。
図8は図5に示す4点のコリジョンデータに基づいたコ
リジョンの値算出処理の詳細を示すフローチャートであ
る。
【0134】まず、ステップS601で図5のステップ
S303で算出した、区画内の座標1705aの、ox
とozの値が(oz>ox)であるか否かを調べる。図
15は、本実施の形態例における周辺4区画の位置関係
を説明するための図である。図15において、コリジョ
ンデータ2001は変数Y0、コリジョンデータ200
2は変数Y1、コリジョンデータ2003は変数Y2、
コリジョンデータ2004は変数Y3に対応しているも
のとする。
【0135】具体的には、ozとoxの値に基づいて、
自キャラクタがコリジョンデータ2001、コリジョン
データ2003、コリジョンデータ2004に囲まれた
領域に位置するのか、コリジョンデータ2001,コリ
ジョンデータ2002,コリジョンデータ2004に囲
まれた領域に位置するのかを判断している。
【0136】ステップS601でoz>oxであると判
断された場合にはステップS602へ進む。この場合に
は自キャラクタは図15に示すコリジョンデータ200
1、コリジョンデータ2003,コリジョンデータ20
04に囲まれた領域に位置しているので変数Y0,変数
Y2,変数Y3に基づいてコリジョンの値を算出するこ
とになる。
【0137】このため、ステップS602で図14に示
すマトリクステーブルにコリジョンの値を算出するのに
必要なY0,Y2,Y3の3つのコリジョンデータがあ
るか否か(いずれかがコリジョン無しか)の判断を行
う。変数Y0,変数Y2,変数Y3のうち少なくとも1
つ以上に、コリジョンデータが設定されていなかった場
合にはステップS606に進み、コリジョン無しの設定
を行ないリターンする。
【0138】一方、ステップS602で変数Y0,変数
Y2,変数Y3にコリジョンデータが設定されていた場
合にはステップS603へ進み、変数Y0,変数Y2,
変数Y3を当該区画の中心頂点のy座標値として各頂点
から自キャラクタの移動位置座標のコリジョンの値(y
座標値)の算出を行ないリターンする。算出には、変数
ay,変数byと、次に示す算出式を用いて行われる。
【0139】 ay=((Y2−Y0)×oz)/DL+Y0 (式1) by=((Y3−Y0)×oz)/DL+Y0 (式2) コリジョンの値=((by−ay)×ox)/DL+ay (式3) 一方、ステップS601でoz>oxではないと判断さ
れた場合にはステップS604に進む。この場合には、
自キャラクタはコリジョンデータ2001、コリジョン
データ2002,コリジョンデータ2004に囲まれた
領域に位置しているので、変数Y0,変数Y1,変数Y
3に基づいてコリジョンの値を算出することになる。
【0140】このため、ステップS602で図14に示
すマトリクステーブルにコリジョンの値を算出するのに
必要なY0,Y1,Y3の3つのコリジョンデータがあ
るか否か(いずれかがコリジョン無しか)の判断を行
う。変数Y0,変数Y1,変数Y3のうち少なくとも1
つ以上に、コリジョンデータが設定されていなかった場
合にはステップS606に進み、コリジョン無しの設定
を行ないリターンする。
【0141】一方、ステップS604で変数Y0,変数
Y1,変数Y3にコリジョンデータが設定されていた場
合にはステップS605へ進み、変数Y0,変数Y1,
変数Y3を当該区画の中心頂点のy座標値として各頂点
から自キャラクタの移動位置座標のコリジョンの値(y
座標値)の算出を行ないリターンする。算出には、変数
ay,変数byと、次に示す算出式を用いて行われる。
【0142】 ay=((Y3−Y0)×oz)/DL+Y0 (式4) by=((Y3−Y1)×oz)/DL+Y0 (式5) コリジョンの値=((by−ay)×ox)/DL+ay (式6) 例えば上記説明において、自キャラクタが図12の17
05位置に位置し、更に1705の中の図13に示す1
705e位置に位置している場合には、コリジョンデー
タは図14に示す区画1705に対応するX=6、Z=
1に対応するコリジョンデータの「1」、区画1804
に対応するX=5、Z=1に対応するコリジョンデータ
の「1.6」、区画1801に対応するX=5、Z=0
に対応するコリジョンデータの「1.7」、区画180
2に対応するX=6、Z=0に対応するコリジョンデー
タの「1」の4頂点のコリジョンデータ間を接続した例
えば図16に示すコリジョン位置を想定し、自キャラク
タがこの仮想コリジョン面の上部に位置するのか下部に
位置するのかを判別可能としている。
【0143】以上説明したようにコリジョンデータを図
14に示す様な各区画毎に一つで、かつ地形ブロックに
一種のマトリクステーブルを備えるのみでコリジョン制
御をすることが可能となる。従って、ゲーム装置本体
で、仮想的な地形およびコリジョンのデータを汎用的に
使用することが可能となり、記憶装置の容量が小さくて
も、広い地形を再現することができるようになり、さら
にゲームを楽しくすることができた。また、X軸または
Z軸に対して180度回転させることにより、記憶容量
を増やすことなく壁や天井に仮想体である地形およびコ
リジョンデータを配置することができる。
【0144】このような地形処理によれば、高低差を含
む三次元的な地形のデータが、少ない量で済むため、途
中でゲームデータの読み込みのほとんどない、ゲーム進
行のよい、趣味性に優れたゲームを提供することができ
る。このようなゲームであれば、操作者はより一層ゲー
ムを楽しむことができる。
【0145】なお、以上の説明におけるゲームは、飛行
アクションゲームの他、レースゲーム、ロールプレイン
グゲーム、格闘ゲームでの敵キャラクタとの接触、自キ
ャラクタの発射した敵キャラクタへの攻撃弾等のコリジ
ョン判定にそのまま適用できる。
【0146】[他の実施の形態例]以上、本発明を実施
の形態およびその変形例に基づいて具体的に説明した
が、本発明は上記実施の形態およびその変形例に限定さ
れるものではなく、その要旨を逸脱しない範囲で適宜変
更可能であることはもちろんである。
【0147】たとえば、上記実施の形態およびその変形
例では、家庭用ゲーム機をプラットホームとして本発明
を実現した場合について述べたが、本発明は、パーソナ
ルコンピュータなどの汎用コンピュータやアーケードゲ
ーム機をプラットホームとして実現してもよい。
【0148】また、上記実施の形態およびその変形例で
は、本発明を実現するためのプログラムやデータをCD
−ROMに格納し、このCD−ROMを情報記録媒体と
して用いた。しかしながら、情報記録媒体はCD−RO
Mに限定されるものではなく、磁気ディスクやROMカ
ードなどコンピュータが読み取り可能なその他の磁気
的、光学的記録媒体あるいは半導体メモリであってもよ
い。
【0149】また、本発明を実現するためのプログラム
やデータは、ゲーム機やコンピュータに対して着脱可能
なCD−ROMなどのメディアにより提供される形態に
限定されず、本発明を実現するためのセーブデータは、
通信回線などを介して接続された他の機器から受信して
メモリに記録する形態であってもよいし、さらには、通
信回線などを介して接続された他の機器側のメモリに上
記プログラムやデータを記録し、このプログラムやデー
タを通信回線などを介して使用する形態であってもよ
い。
【0150】
【発明の効果】以上説明した様に本発明によれば、仮想
的な地形および衝突のデータを汎用的に使用することが
でき、少ない記憶容量で広範囲かつ各種の地形の衝突制
御が可能となり、途中でゲームデータの読み込みのほと
んどない、ゲーム進行のよい、趣味性に優れたゲームを
提供することができる。
【0151】更に、記憶容量をほとんど増やすことなく
上下反転を含むあらゆる向きに仮想体である地形および
コリジョンデータを配置することができる。
【図面の簡単な説明】
【図1】本発明に係る一実施の形態例におけるゲームシ
ステムの全体構成を示すブロック図である。
【図2】本実施の形態例のゲームデータの読み込み制御
を説明するための図である。
【図3】本実施の形態例の全体の動作を説明するための
フローチャートである。
【図4】図3に示すゲーム処理の詳細を説明するための
フローチャートである。
【図5】図4に示すステップS203の地形のコリジョ
ン処理の詳細を示すフローチャートである。
【図6】図5に示すステップS308のコリジョン取得
処理の詳細を示すフローチャートである。
【図7】図6に示すステップS420のコリジョンデー
タ取得処理の詳細を示すフローチャートである。
【図8】図5に示す実際の位置算出処理の詳細を示すフ
ローチャートである。
【図9】図11に示す本実施形態の地形処理が行われる
矩形地形の組み合わせブロック例を示す図である。
【図10】図11に示す本実施形態の地形処理が行われ
る矩形地形の組み合わせブロック例を示す図である。
【図11】本実施形態の地形処理が行われる矩形地形の
組み合わせ例を示す図である。
【図12】本実施形態の地形処理が行われる矩形地形ブ
ロックの分割される区画(第2矩形)の例を示す図であ
る。
【図13】本実施の形態例におけるオフセット座標(o
x,oz)の算出処理を説明するための図である。
【図14】図10に示す地形ブロックに対応付けられて
設定されているマトリクステーブルの例を示す図であ
る。
【図15】本実施の形態例における周辺4区画の位置関
係を説明するための図である。
【図16】本実施の形態例における周辺4区画の実際の
コリジョン値算出結果例を示す図である。
【図17】本実施の形態例において表示部に表示される
ゲーム画面を説明するための図である。
【図18】本実施の形態例における衝突判定を説明する
ための図である。
【図19】本実施の形態例における衝突判定を説明する
ための図である。
【図20】図17に示すゲーム表示画面であった場合に
おける地形ブロックとゲームキャラクタとの位置関係を
説明するための図である。
【図21】本実施の形態例における進行方向上部後方よ
りの視点における回転角度0度の地形ブロック1501
と、ゲームキャラクタとの位置関係を説明するための図
である。
【図22】本実施の形態例における進行方向上部後方よ
りの視点における回転角度90度の地形ブロック150
1と、ゲームキャラクタとの位置関係を説明するための
図である。
【図23】本実施の形態例における進行方向上部後方よ
りの視点における回転角度180度の地形ブロック15
01と、ゲームキャラクタとの位置関係を説明するため
の図である。
【図24】本実施の形態例における進行方向上部後方よ
りの視点における回転角度270度の地形ブロック15
01と、ゲームキャラクタとの位置関係を説明するため
の図である。
【図25】本実施の形態例における地形ブロック140
1とゲームキャラクタとの衝突を説明するための図であ
る。
【図26】本実施の形態例における地形ブロック140
1と翼の部分にコリジョン点が設定してあるゲームキャ
ラクタとの衝突を説明するための図である。
【図27】本実施の形態例におけるゲームキャラクタと
地形ブロックとが衝突した場合の処理を説明するための
図である。
【符号の説明】
1 ゲームシステム 2 ゲーム装置本体 10 CPU(Central Processing Unit;中央演算処
理ユニット) 11 GTE(Geometric Transform Engine ;グラフ
ィックスデータ生成プロセッサ) 12 メインメモリ 13 ROM 15 GPU(Graphics Processing Unit ;グラフィ
ックス描画処理プロセッサ) 16 VRAM 17、18 フレームバッファ 19 SPU(Sound Processing Unit;音声処理プロ
セッサ) 19a サウンドバッファ 20 通信プロセッサ 21 コントローラ 22 メモリカード 25 記録媒体ドライブ 26 記録媒体コントローラ 26a 記録媒体バッファ 30 記録媒体 40 モニタディスプレイ 100 バス

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 仮想空間内を移動可能な移動体と周辺地
    形とを所定の視点からの映像として表示する画像処理手
    段を備えるゲーム装置であって 前記仮想空間内に配置される地形を表す仮想体を所定の
    大きさの網目状矩形に分割する分割手段と、 前記分割手段により分割された各矩形ごとに予め設定さ
    れた数値に基づき、前記各矩形ごとの頂点を導き、隣接
    する矩形の頂点を結んだ頂点矩形を形成する形成手段
    と、 前記形成手段により形成された頂点矩形位置に前記移動
    体が接触した場合に、前記移動体がそれ以上移動しない
    ように制御する接触制御手段とを備えることを特徴とす
    るゲーム装置。
  2. 【請求項2】 仮想空間内を移動する移動体の移動制御
    を行うゲーム装置において、 前記仮想空間内の衝突判定対象部分を表す仮想体を所定
    の大きさの網目状の矩形に分割する分割手段と、 前記分割手段により分割された各矩形ごとの位置情報に
    対応する数値を保持する位置情報テーブルと、 前記移動体が移動後に位置する矩形及び隣接する矩形に
    対応する前記位置情報テーブル値を各対応矩形の中心位
    置として前記衝突判定対象部分の衝突判定座標を算出
    し、前記算出した衝突判定対象部分の衝突判定座標と前
    記移動体の移動後の位置座標とにより前記移動体が前記
    衝突判定対象部分に接触したか否かを判別可能とする算
    出手段とを備えることを特徴とするゲーム装置。
  3. 【請求項3】 さらに、前記移動体が移動により前記衝
    突判定対象部分に接触した場合に前記移動体を前記衝突
    判定対象部分を透過して移動しないように制御する透過
    禁止手段を備えることを特徴とする請求項2記載のゲー
    ム装置。
  4. 【請求項4】 仮想空間内の前記衝突判定対象はいくつ
    かの地形ブロックの組合わせで構成されていて前記位置
    情報テーブルは地形ブロック毎に一種類備えられてお
    り、 前記算出手段は、前記地形ブロックの回転に合わせて前
    記位置情報の読み出し位置を補正可能とすることを特徴
    とする請求項2又は請求項3に記載のゲーム装置。
  5. 【請求項5】 前記算出手段は、前記移動体の移動後の
    位置座標が含まれる前記矩形及び周囲の隣接する矩形の
    前記位置情報テーブル対応値より前記衝突判定対象部分
    の衝突判定座標を算出することを特徴とする請求項2乃
    至請求項4のいずれかに記載のゲーム装置。
  6. 【請求項6】 前記算出手段は、前記移動体の移動後の
    位置座標が含まれる前記矩形及び周囲のもっとも離間距
    離の短い隣接する3方向の矩形の前記位置情報テーブル
    対応値より前記衝突判定対象部分の衝突判定座標を算出
    することを特徴とする請求項5記載のゲーム装置。
  7. 【請求項7】 仮想空間内を移動可能な移動体と周辺地
    形とを所定の視点からの映像として表示する画像処理手
    段を備えるゲーム装置におけるゲーム制御方法であって
    前記仮想空間内に配置される地形を表す仮想体を所定の
    大きさの網目状矩形に分割する分割工程と、 前記分割工程により分割された各矩形ごとに予め設定さ
    れた数値に基づき、前記各矩形ごとの頂点を導き、隣接
    する矩形の頂点を結んだ頂点矩形を形成する形成工程
    と、 前記形成工程により形成された頂点矩形位置に前記移動
    体が接触した場合に、前記移動体がそれ以上移動しない
    ように制御する接触制御工程とを備えることを特徴とす
    るゲーム制御方法。
  8. 【請求項8】 仮想空間内を移動する移動体の移動制御
    を行うと共に前記仮想空間内の衝突判定対象部分を表す
    仮想体を所定の大きさの網目状の矩形に分割し、分割さ
    れた各矩形ごとの位置情報に対応する数値を保持する位
    置情報テーブルを備えるゲーム装置におけるゲーム制御
    方法であって、 前記移動体が移動後に位置する矩形及び隣接する矩形に
    対応する前記位置情報テーブル値を各対応矩形の中心位
    置として前記衝突判定対象部分の衝突判定座標を算出
    し、前記算出した衝突判定対象部分の衝突判定座標と前
    記移動体の移動後の位置座標とにより前記移動体が前記
    衝突判定対象部分に接触したか否かを判別可能とするこ
    とを特徴とするゲーム制御方法。
  9. 【請求項9】 さらに、前記移動体が移動により前記衝
    突判定対象部分に接触した場合に前記移動体を前記衝突
    判定対象部分を透過して移動しないように制御すること
    を特徴とする請求項8記載のゲーム制御方法。
  10. 【請求項10】 仮想空間内の前記衝突判定対象はいく
    つかの地形ブロックの組合わせで構成されていて前記位
    置情報テーブルは地形ブロック毎に一種類備えられてお
    り、 前記衝突判定対象部分の衝突判定座標の算出においては
    前記地形ブロックの回転に合わせて前記位置情報の読み
    出し位置を補正可能とすることを特徴とする請求項8又
    は請求項9に記載のゲーム制御方法。
  11. 【請求項11】 前記衝突判定対象部分の衝突判定座標
    の算出においては前記移動体の移動後の位置座標が含ま
    れる前記矩形及び周囲の隣接する矩形の前記位置情報テ
    ーブル対応値より前記衝突判定対象部分の衝突判定座標
    を算出することを特徴とする請求項8至請求項10のい
    ずれかに記載のゲーム制御方法。
  12. 【請求項12】 前記衝突判定対象部分の衝突判定座標
    の算出においては、前記移動体の移動後の位置座標が含
    まれる前記矩形及び周囲のもっとも離間距離の短い隣接
    する3方向の矩形の前記位置情報テーブル対応値より前
    記衝突判定対象部分の衝突判定座標を算出することを特
    徴とする請求項11記載のゲーム制御方法。
  13. 【請求項13】 前記請求項1乃至請求項12のいずれ
    かに記載の機能を実現するコンピュータプログラム列。
  14. 【請求項14】 前記請求項1乃至請求項12のいずれ
    かに記載の機能を実現するコンピュータプログラム列を
    記憶することを特徴とするコンピュータで読み取り可能
    な記録媒体。
JP11024341A 1999-02-01 1999-02-01 ゲーム装置、ゲーム制御方法およびその記録媒体 Pending JP2000218042A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11024341A JP2000218042A (ja) 1999-02-01 1999-02-01 ゲーム装置、ゲーム制御方法およびその記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11024341A JP2000218042A (ja) 1999-02-01 1999-02-01 ゲーム装置、ゲーム制御方法およびその記録媒体

Publications (1)

Publication Number Publication Date
JP2000218042A true JP2000218042A (ja) 2000-08-08

Family

ID=12135494

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11024341A Pending JP2000218042A (ja) 1999-02-01 1999-02-01 ゲーム装置、ゲーム制御方法およびその記録媒体

Country Status (1)

Country Link
JP (1) JP2000218042A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019177351A1 (ko) * 2018-03-14 2019-09-19 (주)크래프톤 멀티 쓰레드를 구현하는 게임의 처리 속도를 향상시키는 장치 및 그 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019177351A1 (ko) * 2018-03-14 2019-09-19 (주)크래프톤 멀티 쓰레드를 구현하는 게임의 처리 속도를 향상시키는 장치 및 그 방법
US11433308B2 (en) 2018-03-14 2022-09-06 Krafton, Inc. Device for increasing processing speed of game implementing multiple threads and method therefor

Similar Documents

Publication Publication Date Title
KR100463906B1 (ko) 화상처리장치,이 처리장치를 이용한 게임기와 화상처리방법 및 매체
US6413163B1 (en) Video game machine, method for switching viewpoint on game screen of video game, and computer-readable recording medium containing game-screen-viewpoint switching program
US8197339B2 (en) Video game processing apparatus, a method and a computer program product for processing a video game
US8012018B2 (en) Game apparatus and storage medium storing game program
JP3372832B2 (ja) ゲーム装置、ゲーム画像処理方法およびゲーム画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2001009156A (ja) コンピュータ読み取り可能な記録媒体、ゲームの表示制御方法およびゲーム装置
JP3747050B1 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP3786669B2 (ja) ゲームシステム、プログラム及び情報記憶媒体
EP1213044B1 (en) Video game system, character action control method, and readable storage medium storing character action control program
EP0797172B1 (en) Image processor and game apparatus equipped with the same
US20020045483A1 (en) Game device and image processing device
EP0797172A3 (en) Image processor and game apparatus equipped with the same
JP3786670B1 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP3001538B1 (ja) ビデオゲーム装置、ビデオゲームにおけるモデル表示方法及びビデオゲームにおけるモデル表示プログラムが記録された可読記録媒体
EP1095679B1 (en) Entertainment unit, recording medium and method for setting its parameters
JP3786671B1 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP3640384B2 (ja) ビデオゲームシステムおよびビデオゲーム用記憶媒体
JP5054908B2 (ja) プログラム、情報記憶媒体、及び画像生成システム
JP2000218036A (ja) ゲーム装置、ゲーム制御方法およびその記録媒体
JP3482017B2 (ja) 3次元ゲーム装置および3次元ゲーム画像生成方法
JP2000218042A (ja) ゲーム装置、ゲーム制御方法およびその記録媒体
WO2000001454A1 (fr) Procede d'execution d'un jeu et jeu electronique permettant cette execution
JP2006263321A (ja) プログラム、情報記憶媒体、及び画像生成システム
JP3223170B2 (ja) ゲーム装置及び画像生成方法並びに画像生成プログラムを記録した記録媒体
JP2005122479A (ja) プログラム、情報記憶媒体及び画像生成装置