以下、本発明の実施の形態について、図1乃至図9を参照しながら説明する。ここでは、本発明の画像処理装置を格闘ゲームの一種としての拳闘型対戦ゲーム装置(本発明によるゲーム装置)に適用した場合について説明する。
図1はこのゲーム装置の外観を示す。この図において、符号1は、ゲーム装置本体を示している。このゲーム装置本体1は箱状をなしており、その下部にはキャスター2a、2b、2c、2dが設けられている。このゲーム装置本体1の二つの面には、それぞれ表示手段としてのディスプレイ3a及び3bが設けられている。これらディスプレイ3a、3bの下部の前面には、操作パネル4a及び4bが設けられている。また、ゲーム装置本体1の各操作パネル4a、4bの間の面には、硬貨投入口5a及び5bと、硬貨取り出し口6a及び6bとが設けられている。
これら操作パネル4a、4bの間には、例えば強度的な観点から両者を連結する丸棒7が設けられている。前記各ディスプレイ3a、3bの上には、スピーカ取付孔8a及び8bが設けられており、これら孔8a、8bの内部には、スピーカ(図示せず)が設けられている。各操作パネル4a、4bの下部には開閉板9a及び9bが設けられており、内部機構を露出させることができるようになっている。
このゲーム装置本体1の内部には、各ゲーム処理ボード10a及び10bが設けられている。なお、各ディスプレイ3a、3b、操作パネル4a、4bの操作機構、及びスピーカは、図示しないがゲーム処理ボード10a、10bに接続されている。このような構造により、このゲーム装置本体1は、ディスプレイ3aまたはディスプレイ3bを単独で使用して、或いは両ディスプレイ3a、3bを同時に使用して通信対戦形式でゲームを楽しむことができる。
図2は、上記ゲーム装置本体1で使用する操作パネルを示す斜視図である。これら操作パネル4a、4bは全く同一構成であるので、一方についてのみ説明し、他方の説明を省略する。
この操作パネル4aは、二つのジョイステック41am及び41ahと、二つの押ボタン42am及び42ahとからなる。これらジョイステック41am、41ahは、操作パネル4a、4b上で一定の間隔で配置されている。これらのジョイステッィク及びボタンを操作することによって、遊技者は自身側のキャラクター(拳闘士)の動きを制御できる。各ジョイステック41am、41ahの前には、一定の間隔で押ボタン42am、42ahが配置されている。ジョイステック41am、41ahには、相手の闘士にパンチを繰り出せることの案内、相手の闘士からの攻撃を防御できることの案内、或いはキャラクタを前進・後退させたりするための案内43am、43ahが表示されている。このガイダンス(案内)43am、43ahは、例えば、ストレート、アッパー、フック等のパンチの種類や、前進、後退、挑発、等の闘士の動き、その他ゲーム進行上必要な事項を含んでいる。
図3は、本発明によるゲーム装置の構成の一例を示すブロック図である。このゲーム装置は、既述のディスプレイ3a、3b並びに操作パネル4a、4bの他、ゲーム処理ボード10a及び10bと、スピーカ11a及び11bとを備えている。このゲーム装置は、単独で使用するときには、ディスプレイ3a、操作パネル4a、ゲーム処理ボード10a、及びスピーカ11aからなる一つの処理系12aとして機能する。
同様に、ディスプレイ3b、操作パネル4b、ゲーム処理ボード10b、及びスピーカ11bからなる他の一つの処理系12bも使用することができる。処理系12a、12bの双方とも、同時に、単独で使用できる。この場合には、遊戯者側の闘士の対戦相手はゲーム装置側が設定する拳闘士である。
一方、このゲーム装置は、処理系12aと12bとを連係させることにより、通信対戦形式でゲームを楽しむことができる。この場合には、遊戯者側の闘士の対戦相手は、各操作パネル4a、4bを操作する各遊技者がそれぞれ操作する闘士である。
これら処理系12a、12bは、全く同一構成をしているので、処理系12aについてのみ説明し、他の処理系12bについての説明を省略する。
この処理系12aは、装置全体の制御を行うCPUブロック20a、ゲーム画面の表示制御を行うビデオブロック21a、効果音等を生成するサウンドブロック22a等により構成される。なお、各ブロックには符号にアルファベット「a」を付して説明するが、それらブロックを構成する各要素には符号の後にアルファベット「a」を付すことなく説明する。CPUブロック20aは、SCU(System Control Unit)200、メインCPU201、RAM202、ROM203、サブCPU204、そしてCPUバス205等により構成されている。メインCPU201は、装置全体の制御を行うものである。このメインCPU201は、内部にDSP(Digital Signal Processor)と同様の演算機能を備え、アプリケーションソフトを高速に実行可能になっている。
RAM202は、メインCPU201のワークエリアとして使用されるものである。また、RAM202には、この実施例では記憶エリア202C1、202C2が設けられている。これら記憶エリア202C1、202C2は例えば二つのキャラクタが対戦する拳闘ゲームの場合に、各キャラクタのもつ全余力を段階的に減少させたときの値を記憶する手段として用いるためのものである。
ROM203には、初期化処理用のイニシャルプログラム、及びゲーム全体の内容(プログラム)等が書き込まれている。SCU200は、バス205、206、207を制御することにより、メインCPU201、VDP(Video Display Processor)220,VDP220及び230、DSP240、CPU241等の相互間のデータ入出力を円滑に行う。
また、SCU200は、内部にDMAコントローラを備え、ゲーム中のキャラクタデータ(ポリゴンデータ)をビデオブロック21a内のVRAMに転送することができる。これにより、ゲーム等のアプリケーションソフトを高速に実行することができる。サブCPU204は、SMPC(System Manager & Peripheral Control)と呼ばれるもので、メインCPU201からの要求に応じて、操作パネル4aのジョイステック41am、41ah及び押ボタン42am、42ahからの操作データを入力ポート208を介して収集し、かつパンチの種類等操作内容の判定処理を行う機能等を備えている。メインCPU201はサブCPU204から受け取った操作データに基づき、例えばゲーム画面中のキャラクタの回転変換や透視変換等の画像制御を行う。
ビデオブロック21aは、ポリゴンデータからなるキャラクタ及び背景像に上書きするポリゴン画面の描画を行う第1のVDP(Video Display Processor)220と、スクロール背景画面の描画、プライオリティ(表示優先順位)に基づくポリゴン画像データとスクロール画像データとの画像合成、クリッピング等を行う第2のVDP230とを備えている。
この内、第1のVDP220はシステムレジスタ220aを内蔵するとともに、VRAM(DRAM)221及び2面のフレームバッファ222、223に接続されている。ゲームのキャラクタを表すポリゴンの描画データはメインCPU201からSCU200を介して第1のVDP220に送られ、VRAM221に書き込まれる。VRAM221に書き込まれた描画データは、例えば、16又は8ビット/pixelの形式で描画用のフレームバッファ222(又は223)に描画される。描画されたフレームバッファ222(又は223)のデータは、表示モード時に第2のVDP230送られる。このようにフレームバッファには2面のバッファ222、223が使われており、描画と表示がフレーム毎に切り替わるダブルバッファ構造を成している。さらに、描画を制御する情報は、メインCPU201からSCU200を介して第1のVDP220のシステムレジスタ220aに設定される。このシステムレジスタ220aに設定された指示にしたがって第1のVDP220が描画と表示を制御する。
一方、第2のVDP230はレジスタ230a及びカラーRAM230bを内蔵するとともに、VRAM231に接続されている。また第2のVDP230はバス206を介して第1のVDP220及びSCU200に接続されるとともに、エンコーダ260を介してディスプレイ3aに接続されている。
この第2のVDP230に対して、スクロール画像データはメインCPU201からSCU200を介してVRAM231及びカラーRAM230bに定義される。画像表示を制御する情報も同様にして第2のVDP230のレジスタ230aに設定される。VRAM231に定義されたデータは、第2のVDP230によりレジスタ230aに設定されている内容にしたがって読み出され、キャラクタに対する背景を表す各スクロール画面の画像データになる。各スクロール画面の画像データと第1のVDP220から送られてきたテクスチャマッピングが施されたポリゴンデータの画像データは、レジスタ230aにおける設定にしたがって表示優先順位(プライオリティ)が決められ、最終的な表示画像データに合成される。
この表示画像データがパレット形式の場合、第2のVDP230によって、その値にしたがってカラーRAM230bに定義されているカラーデータが読み出され、表示カラーデータが生成される。また表示画像データがRGB形式の場合、表示画像データがそのまま表示カラーデータとなる。この表示カラーデータはメモリ232に蓄えられた後にD/Aコバータ260に出力される。D/Aコバータ260は、この画像データに同期信号等を付加することにより映像信号を生成し、ディスプレイ3aに出力する。これにより、ディスプレイ3aにゲーム画面が表示される。このビデオブロック21aにより映像手段が構成される。
サウンドブロック22aは、PCM方式或いはFM方式に従い音声合成を行うDSP240と、このDSP240の制御等を行うCPU241とを備えている。DSP240により生成された音声データは、D/Aコンバータ270により音声信号に変換された後にスピーカ11aに出力される。
本実施形態のゲーム装置で処理されるゲーム内容は、前述した「バーチャファイター(TM)」と同様に、ステージ上で複数の闘士が格闘技(拳闘)を繰り広げる内容とする。また、対戦相手は装置側で制御する拳闘士であるとして説明する。
続いて、メインCPU201で実施される、ポリゴンによる3次元データで表されるキャラクタ(闘士)C1,C2、ロープ等の画面(以下、ポリゴン画面という。)と、拳闘士が上るリング、拳闘士のライフカウント値、そして観客等のその他の背景等のスクロール画面との同期表示制御の処理について説明する。このうちリングは回転スクロールによって構成される。全体的な動作の説明を図4及び図5に示すメイン処理フローチャートを使用してまず説明し、例えばポリゴン構成手段、ポリゴン数増加手段、変形処理手段、及び画像処理余力表示手段等の詳細な動作については図6以降を用いて説明する。
メインCPU201は、コインの投入がない場合には、例えばゲームの内容のダイジェスト版を表示するとともにコイン投入のガイダンス画面を表示し、これに伴う音声を出力させる(図5のステップ(S)301、ステップ302;NO)。
コインの投入があったときには(ステップ302;YES)、メインCPU201は、例えば押ボタン42amをスタートボタンとして押下するようにガイダンス画面を表示する(S303、S304;NO)。ここで、スタートボタンが押下されたとすると(S304;YES)、自分の能力の設定をする(S305)。これは、例えば処理系12aに数人分のキャラクタの能力が設定されており、これらのキャラクタがディスプレイ3aに表示されるので、これらの中から自分の好みのキャラクタを適宜選択する。これにより、パンチ力、パンチ速度、ダメージに対する耐性、ステミナ等、そのキャラクタのもつ能力が設定されることになる。なお、キャラクタの構成は、図6を参照されたい。
次いで、メインCPU201は対戦相手のキャラクタを設定する旨の表示をディスプレイ3aに表示するので、遊技者はこれらの中から対戦相手を適宜選択する(S306)。これにより、対戦相手のキャラクタの能力も設定される。
ここで、メインCPU201は、ステップ307で、視点変更の表示データと、最終的にはキャラクタC1の一部(例えば、頭部、要部、上腕部等)を透視化する処理も行う。これは、まず、メインCPU201がROM203の所定の番地から表示データを読出して、これを視点変更の表示データに変換する。これにより、ディスプレイ3aには、当初、図6(a)に示すように、キャラクタ(闘士)C1、C2が相対した状態を真横から見た形態で表示される。この場合、図6では、C1、C2はキャラクタ(闘士)、RPはロープ、RGはリング、LCa、LCbはライフカウンタ、BHはその他の背景である。また、この実施例では、闘士C1、C2及びロープRPをポリゴンデータで、リングRGを回転スクロールデータで、見物人等の背景BHはスクロールデータで表示されるようにしている。
そして、対戦可能な状態になったかを判定する(S308)。この対戦状態とは、ディスプレイ3a上において自分のキャラクタ(闘士)C1が画面手前に表示されるとともに例えば頭部、腰部、上腕部等の闘士C1の一部が透明処理され、しかも、相手のキャラクタ(闘士)C2が画面の正面に向いた状態に表示されるように画像処理されることをいう。
ここでは、いまだ対戦状態ではないので(ステップ308;NO)、ROM203の番地を変更し(ステップ309)、さらに視点変更の表示処理を行う(ステップ307)。これを繰り返すことにより、図6(a)に示すように闘士C1、C2を真横から見た状態から、図6(c)に示されるように闘士C1が手前に表示されるように視点を回転させる。このように回転した表示状態の途中を表示すると、例えば図6(b)に示すように、対峙した闘士C1、C2が斜めで表示された状態になる。
図6(a)〜(c)への移行を含む、キャラクタを画面に表示するための視点変更を伴う画像処理は、例えば図5に示すフローチャートのように動作されればよい。すなわち、メインCPU201は、まず図5のステップS401で、ROM203から読み出したデータに呼応して視点の移動座標並びにテクスチャー付きのポリゴンデータで表される闘士C1、C2、ロープRP等のポリゴンから構成される表示体の移動座標を計算する。この移動座標の計算は平行移動、回転変換、各軸に対する拡大(縮小)を1つの操作で行うことができる、従来周知のアフィン変換を用いて行われる。
次いで、ステップS402にて、透視変換によって、座標変換された3次元のポリゴンデータ(闘士C2、一部が透視化された闘士C1、ロープRP)が表示されるスクリーン(画面)内の位置データ(スクリーン座標)を計算し、これを第1のVDP220に送る。
次いで、ステップS403に移行し、回転スクロール画面の回転や倒し込みに必要なパラメータを計算する。ここで、回転スクロール画面の「回転」とは、スクロール座標系における回転であり、3軸のいずれかを中心とする座標系全体の回転をいう。また、「倒し込み」はスクリーン画面自体の回転をいい、具体的には、遊技者から見て遠方の側のリングRG部分を縮小表示し、或いは遊技者側のリングRG部分を拡大表示するか、又は両方の処理を同時に成すことをいう。
次いで、メインCPU201はステップS404で前記ポリゴンデータの描画用の所定タイミングか否かを判断しつつ待機する。そして、例えば、所定のタイミングになると、ステップS405で、それまでメモリに記憶していた回転スクロール画面の回転、倒し込みの処理に必要なパラメータ、すなわち回転マトリクスパラメータ、移動量(視点の移動によるスクロール画面のX、Y移動量)、及び倍率が第2のVDP230に転送される。そして、ステップS206で、メインCPU201は表示或いは描画の指令を実行する。
メインCPU201は上述したステップS401〜S406の処理を定期的に繰り返す。メインCPU201で計算されたポリゴンデータは第1のVDP220に接続されたVRAM121に書き込まれ、ダブルバッファ構成に係る2枚の描画用フレームバッファ222(又は223)、表示用フレームバッファ223(又は222)によって描画及び表示が繰り返される。つまり、描画用フレームバッファ222(又は223)にテクスチャマッピングされたポリゴンデータが描画されている間に、表示用フレームバッファ223(又は222)のポリゴンデータが第2のVDP230に送られ、表示される。一方、第2のVDP230では、メインCPU201から転送されてきたパラメータ及びデータを使って回転スクロール画面の3軸回転及びスクリーン画面の回転(倒し込み)を計算する。
回転スクロール画面の表示画面は、中心点を基準に視点及びスクリーン画面(TV画面)を回転変換(平行移動も含む)させ、変換後の視点から変換後のスクリーン画面を通った視線が、固定されたスクロールマップと交差する点を集めたものである。
このように図5のフローチャートが実行されることにより、ディスプレイ3aには、図6(a)…図6(b)…図6(c)というように画面が表示されることになる。すなわち、図6(a)に示すように対峙する闘士C1、C2を真横から見た状態から、闘士C1が手前に闘士C2が後ろ側に表示されるように順次視点が移動して行くことになる。その他のシーンにおける視点移動に伴う処理も図5のフローチャートにしたがって実行される。視点の移動の途中では、図6(b)に示すように闘士C1、C2を斜めから見た状態に表示される。最終的には、ディスプレイ3aには、図6(c)に示すように、遊技者側の闘士C1が画面手前にかつ透視化状態に表示され、しかも、対戦相手側の闘士C2が画面の正面に向いた状態に表示される。
このように自分の闘士C1が画面手前でかつ透視化状態に表示され、しかも、対戦相手側の闘士C2が画面の正面に向いた状態に表示された場合には、対戦状態になり(ステップ308;YES)、以後対戦状態のフローチャートに移行する。
次に、対戦状態のフローチャート(ステップ310)以降に移行すると、まず、メインCPU201は、ステップ310で対戦状態のデータをROM203から読み出す。また、メインCPU201は、ステップ311でサブCPU204から操作データを取り込むとともに、ステップ312で無効操作度データの処理を行う。ここで無効操作度は、前記請求項記載の抑制手段に含まれるものである。
このステップ312における無効操作度は、例えば拳闘の規則に沿って操作データがジョイステック41am、41ah等から入力されていないときに生じる。この無効操作度を上昇させる要因は、例えば単位時間当たり所定の回数以上ジョイステック41am、41ahを操作したり、ジョイステック41am、41ahを防御コマンド位置に一定時間入れ続ける場合である。また、無効操作度を低下させる要因は、例えばジョイステック41am、41ahから制御コマンドが入力されたり、或いはキャラクタの移動コマンドが入力された場合である。
また、この無効操作度を例えばRAM202等に記憶させておき、次の対戦表示データ作成画像処理を行うときに、その画像処理の程度を抑制するように反映させる。例えば、以後に説明する画像処理余力表示手段の余力量の表示に反映させたり、或いはパンチがあたっても相手に与えるとするダメージをキャンセル或いは低減する画像処理を実行することが考えられる。
次いで、メインCPU201は、上述したように取り込んだ対戦データと操作データとに基ついて、対戦表示データの作成処理を実行する(ステップ313)。
このステップ313で形成される対戦表示データは、例えば、対戦相手の闘士C2がアッパーカットを繰り出したときに、操作パネル4aのジョイステック41am、41ah等を防御操作することにより闘士C1を防御動作させたり、或いは、操作パネル4aのジョイステック41am、41ah等を繰り出し操作をして相手闘士C2にパンチを当てたりするための表示用データである。これにより、対戦相手の闘士C2は、パンチが当たったときに、そのパンチの種類(ストレート、ジャブ、フック、アッパーカット等)により闘士C2の顔(頭部)の変形方向を変え、パンチの強さにより闘士C2の顔(頭部)の変形量を変える。
また、対戦相手の闘士C2から繰り出されたパンチが闘士C1に当たったときには、闘士C1の移動処理もされる。さらに、このステップ313では、闘士C1の背後側も表示させるようにしており、しかも、闘士C1の一部(例えば頭部、胸部、腰部、上腕部等)が透視化して表示されるようにしている。
次いで、メインCPU201は、ステップ314で残存余力量表示手段に関する処理を実行する。すなわち、このステップ314では、闘士C1、C2の余力を映像にして表示できるように処理している。これは、第1に、ステップ312で得られた無効操作度を、余力(ライフカウント値)を減少させる表示として反映させる。第2に、闘士(相手側C2、自分側(遊技者側)C1)のダメージを演算し、これを余力を減少させる表示として反映させる。
また、ダメージが所定値を超えたときには闘士をダウンさせる処理を実行させる。このように処理が行われることにより、闘士C1、C2の全余力量を表示する全余力表示手段と、闘士C1、C2の全余力量に対する残存余力量を表示する残存余力量表示手段とが実現される。また、RAM202の一部エリアに、余力量を複数記憶する記憶手段を設けており、この記憶手段内に記憶されている全余力を必要に応じて読み出すことにより全余力量を順次低減させることができる。そして、これらの画像処理を実行することにより、各闘士C1、C2が受けたダメージをライフカウンタとしてディスプレイ3a上に表示でき、かつそのダメージがラウンド毎に累計されるようにしている。
このようにステップ313で得られた対戦表示データと、ステップ314で得られたライフカウンタに関するデータは表示データ作成処理(ステップ315)に渡される。ステップ315では、メインCPU201が前記ステップ313で形成した対戦表示データ、及びステップ314で形成したライフカウンタに関するデータを用いて例えば図5に示すフローチャートを実行する。これにより、ディスプレイ3a上に闘士C1、C2の対戦状態が表示される。そして、メインCPU201は、ステップ316でゲームアウトの処理を実行する。これは、闘士C1、C2のダメージを演算し、一方が3回ダウンしたときのように、ダメージが所定値を超えたときにダウン等の指令を行う。
メインCPU201は、ステップ317でダウン等があったゲーム終了か否かを判断する。ゲーム終了でないときは、再びステップ310に移行する。
このようなステップ310〜ステップ317の処理を繰り返すことにより、ポリゴンによる闘士C1、C2がスクロール画面からなるリングRG上に重畳表示される。このリングRGの端部上側にはその縁に沿って細長くポリゴンデータのロープRPが上書きされている。
そして、ゲームの進行に伴い、闘士C1、C2や視点が移動すると、闘士C1、C2の動きとスクロール画面及びその端部の上書きされたポリゴンデータからなるロープRPとが同期して表示されるため、両者がジョイステック41am、41ah等からの入力に合わせて正確に一致した動きとなって確認される。これにより、闘士C1、C2の移動、動きや視点の変化に伴う情景全体が極めて自然なものとなり、リアルな臨場感を醸し出すことができる。
また、メインCPU201は、ステップ317で検出結果を判断し、終了のときには、ステップ318でゲーム終了の表示処理を実行する。
次に、上記フローチャートにおける所定のステップの詳細な動作について図7以降の図面を参照して説明する。
〔無効操作度を得る処理につて〕
図7〜図8を用いて無効操作度を得る処理について説明する。ここで、図7は無効操作度を得るためのフローチャートである。図8は無効操作度のグラフを示し、横軸に時間を、縦軸に無効操作度をとっている。
この無効操作度は、例えば拳闘の規則に沿ったジョイステック41am、41ah等の操作入力がない場合に生じる度数である。この無効操作度は、単位時間当たりの連続パンチコマンドの入力回数が所定値以上であるときに得られる。また、コマンド入力のパターンが一定な場合にも、無効操作度が増加するようにしている。
まず、拳闘の規則に沿ったジョイステック41am、41ah等の操作入力がない場合の処理について説明する。この処理は、図4のステップ312の処理に移行することにより実行される。すなわち、メインCPU201は、ステップ451において、メインCPU201は、サブCPU204から操作データが得られるか否かを判定する。ここで、操作データが得られるときには(ステップ451;YES)、メインCPU201は、ステップ452でこの操作データが防御コマンドか否か判定する。ここで、防御コマンドでないと判定されたときには(ステップ452;NO)、メインCPU201はステップ453で闘士C1の移動コマンドか判定する。このような判定を行う理由は、ジョイステック41am、41ahを連続的操作し、連続してパンチコマンドが入力されているか否かを判定するためである。
闘士C1の移動コマンドでないとき(ステップ453;NO)、拳闘の規則に従った有効なパンチではなく、ただパンチを振り回しているだけとし、メインCPU201はステップ454でレジスタK3に操作データの回数を次々と加算させる。このレジスタK3は、例えばRAM202の一定のエリアに設ければよい。また、レジスタK3は、操作パネル4a、4bが連続して操作されたたことによるパンチコマンドが累計されてゆくことになる。
次いで、メインCPU201は、一定時間x〔秒〕経過したかを判定する(ステップ455)。この判断は、単位時間x〔秒〕当たりに、何発のパンチコマンドが入力されたかを判定するためのものである。そして、一定時間x〔秒〕経過しないときには(ステップ455;NO)、この処理ルーチンを抜ける。
一方、一定時間x〔秒〕経過したときには(ステップ455;YES)、メインCPU201はステップ456でレジスタK3のデータを読み込む。この読み込んだデータは、単位時間(x〔秒〕)当たりのパンチの数yとなる。
また、メインCPU201は、レジスタK3のデータが1y発以上であれば(ステップ457;NO)、すなわち、拳闘の規則に沿った操作が与えられていないと判断し、RAM202の所定のエリアに設けた無効操作度記憶エリアに、無効操作度が一つ加算されたように記憶させる(ステップ312 )。この記憶エリアに記憶された無効操作度の値は、図8に示すように、時刻x1で無効操作度が1つ上がった状態となっている。そして、メインCPU201は次の処理に備え前の内容の影響を与えないようにするためにステップ459でレジスタK1〜K3をリセットし、この処理を抜ける。
また、同様に、ステップ451〜455の処理を実行し、時刻x2においてステップ456〜457の処理を実行して2y発が得られたときには、無効操作度記憶エリアに、前の値にさらに2個累計されたように記憶させる(ステップ458)。この記憶エリアの値は、図8に示すように、時刻x2で無効操作度かさらに2つ加算された値となっている。そして、メインCPU201は次の処理のためにステップ459でレジスタK3をリセットし、この処理を抜ける。
さらに、同様に、ステップ451〜455の処理を実行し、時刻x3においてステップ456〜457の処理を実行して1y発が得られたときには、無効操作度記憶エリアに、前の値にさらに2個累計されたように記憶させる(ステップ458)。この記憶エリアの値は、図8に示すように、時刻x3で無効操作度がさらに1つ加算された状態となる。そして、メインCPU201は次の処理のためにステップ459でレジスタK3をリセットし、この処理を抜ける。
同様に、ステップ451〜455の処理を実行し、時刻x4においてステップ456〜457の処理を実行して1y発が得られたときには、無効操作度記憶エリアに、前の値にさらに2個累計されたように記憶させる(ステップ458)。この記憶エリアの値は、図8に示すように、時刻x4で無効操作度がさらに1つ加算された状態となる。そして、メインCPU201は次の処理のためにステップ459でレジスタK3をリセットし、この処理を抜ける。
このように拳闘の規則に沿ったジョイステック41am、41ahの操作がないときには、無効操作度がますます高い値となる。
次に、無効操作度が低下する場合について説明する。コマンドが入力されると(ステップ451;YES)、メインCPU201はステップ452で防御コマンドか否かを判定する。防御コマンドのときには(ステップ452;YES)、メインCPU201は、ステップ460で防御コマンドが短時間で他のコマンド等(或いは中立位置)に変更されたか判定する。これは、拳闘の規則に沿った操作であるか否かを判定するためである。
防御コマンドが短時間で他のコマンド等に変更されたときには(ステップ460;YES)、メインCPU201は、ステップ461で無効操作度記憶エリアの無効操作度から1つ引いた値とする。この記憶エリアの値は、図8に示すように、時刻x5で無効操作度が1つ下がった状態となる。なお、この処理を通過した後には、メインCPU201は次の処理のためにステップ462でレジスタK1〜K3をリセットする。
次に、ノーコマンドの場合の動作説明をする。コマンド入力がないとき(ステップ451;NO)、メインCPU201はステップ471で例えばレジスタK1=K1+1の処理を行う。これは、一定時間の間に、ノーコマンドであることを検出するために行う加算である。また、このレジスタK1は、例えばRAM202の所定のエリアに設けたものを使用すればよい。
次いで、一定時間α(秒)経過したか判定する(ステップ472)。この時間の判定は、一定期間継続してノーコマンドであることを検出するための判断である。一定時間α(秒)経過しない場合(ステップ472;NO)、この処理を抜ける。
一方、一定時間α(秒)経過した場合(ステップ472;YES)、メインCPU201はステップ473でレジスタK1の値を読み込む。このレジスタK1の値は一定時間ノーコマンドである場合の値であり、この値が所定値より大きければ(ステップ474;YES)、一定時間ノーコマンドであるので、メインCPU201はステップ475で無効操作度記憶エリアから無効操作度を1つ減算する。これにより、この記憶エリアの値は、図8に示すように時刻x7で無効操作度が1つ低下した状態になる。そして、ステップ476で次の処理のために各レジスタK1〜K3をリセットする。なお、レジスタK1の値が一定の値未満のときには(ステップ474;NO)、ステップ476で各レジスタK1〜K3をリセットし、この処理を抜ける。
さらに、防御コマンドを入れ続けた場合の動作について説明する。この場合、メインCPU201は、ステップ451、452、460を通過し、ステップ481で例えばレジスタK2=K2+1とする。このレジスタK2は、例えばRAM202の所定の記憶エリアを使用すればよい。また、このレジスタK2は、防御コマンドの入力が継続していることを測定するためのものである。
次いで、メインCPU201はステップ482で一定時間経過したか判断する。この時間判定は、一定時間の間、防御コマンドが入りっぱなしになることを判定するためのものである。一定時間経過していないときには(ステップ482;NO)、この処理を抜ける。
一方、一定時間経過したときには(ステップ482;YES)、メインCPU201はステップ483でレジスタK2の値を読み取る。ここで、メインCPU201は、レジスタK2の値が所定の値より大きいときには(ステップ484;YES)、防御コマンドが入れっぱなしの状態であるから、ステップ485で無効操作度記憶エリアの、無効操作度を一つ加算する。この記憶エリアの値は、図8に示すように、時刻x9で無効操作度が1つ上がた状態になる。この処理が終了した後に、後の処理のためにステップ486でレジスタK1〜K3をリセットする。このように防御コマンドを入れっぱなしにすると、無効操作度が上昇する原因となる。
なお、その他無効操作度が低下する場合の動作について説明する。これは、闘士C1の移動コマンドが入力されたときに動作するものである。すなわち、闘士C1の移動コマンドが入力されたときに(ステップ453;YES)、メインCPU201はステップ441で無効操作度記憶エリアの無効操作度を1つ減算する。この後に、後の処理のために、ステップ442でレジスタK1〜K3をリセットする。
上述したように上記各ステップ451〜492では、拳闘の規則に沿った操作がジョイステック41am、41ah等から入力されているか否かを判定する。この無効操作度記憶エリアに記憶された無効操作度を、後の処理において画像処理の程度を抑制するために使用する。例えば、ライフカウンタの値を減少させる処理に反映し、或いはパンチ等が相手の闘士C2に当たっても、これの有効性を小さくする、或いはこの有効性を否定するようにする。
このようにすることにより、ジョイステック41am、41ah等の確実な操作を遊技者に促すとともに、例えば拳闘の場合の実際の動きを遊戯者に提供して、かつそのようにジョイステック41am、41ah等が遊技者に操作できるようにする。
〔ポリゴン構成手段、ポリゴン数増加手段の動作〕
次に、通常の表示状態では、闘士C2の顔(頭部)を最小限の数のポリゴンから構成し、この顔(頭部)を変形して表示させる際に、この顔(頭部)を構成するためのポリゴン数を増加させた後、この増加されたポリゴン数に基づいて顔(頭部)の変形させる画像処理について、図9〜図11を参照して説明する。
まず、メインCPU201は、ステップ500でフラッグFLGが0か否かを判定する。この判定は、変形処理のためのテーブルデータの読出し処理を行うか否かを判定するためのものである。読出しを行っている場合は特定の処理フローチャートに、読出しを行っていないときには通常の判断処理を行う。
ここで、フラッグFLGは当初は0に設定されているので、メインCPU201はステップ501で闘士C2の顔(頭部)を最小限の数のポリゴンから構成する画像処理を行う。この画像処理は、例えば、闘士C2の顔(頭部)の各面を一つの正方形のポリゴンから構成する。これにより、例えば図10(a)に示すように、闘士C2の顔(頭部)C2fが6つのポリゴンからなる立方体(6面体)に形成される。つまり、一つのポリゴンを3次元座標における4頂点を指定することにより配置し、各面は4頂点のうち2頂点を共有させることにより、闘士C2の顔(頭部)C2fを六面体となるポリゴンの集合から表現している。
実際の闘士の各種表情を構成する、正面部、背面部、左右の側面部、平面部、そして底面部の各模様(テクスチャー)を、予めビデオカメラ等によって撮影するか或いは別に構成し、これらをROM203に記憶させておく。
そこで、ステップ502では、この表情のテクスチャーや、各右側面、左側面、背面、頭頂部等のテクスチャーを、該当するアドレスのポリゴンにマッピングする。また、このステップでは、全てのポリゴンについて、この場合は6面について、テクスチャーのマッピングが終了したかの判断も行う。これにより、図10(b)に示すように、表情が現れた闘士C2の頭部が形成される。なお、ここでは図面の表現を簡単にするために、頭部の正面のポリゴンにのみテクスチャー(顔の模様)を貼り付けた場合を示しており、その他の面へのテクスチャーの図示を省略する。
次に、メインCPU201は、サブCPU204から操作データを取り込み、操作データの有無を判定する(ステップ503)。操作データがあるときには(ステップ503;YES)、メインCPU201はステップ504で操作データの方向、強さ、速さ等からパンチコマンドの内容等(防御コマンドもある)を特定する。そして、その処理(ステップ504)の結果から攻撃であると判定されると(ステップ505;YES)、メインCPU201はステップ506で闘士C1のパンチの座標を読む。つづいて、メインCPU201はステップ507で対戦相手の闘士C2の頭部の座標を読む。これら座標が一致したか否かを判定する(ステップ508)。この判定は、闘士C1、C2の衝突判定を行っていることに相当する。
これら座標が一致した時点で(ステップ508;YES)、闘士C1、C2の衝突判定が肯定されたことになり、闘士C1(遊戯者側のキャラクター)のパンチが闘士C2(対戦相手側のキャラクター)の顔面にあたったことになる。そこで、変形処理に移行するためにフラッグFLGに"1"を設定する(ステップ509)。
メインCPU201はステップ509で第1のパンチと第2のパンチとの判定をする。この実施例では、説明を簡略化するため、2種類のパンチのみとして説明する。また、この実施例では、無効操作度の反映をパンチの効力を減少させるようにして処理するものとして説明する。もちろん、このようにパンチの効力が減少させるようにせず、ライフカウンタの値が低下するようにしてもよい。
まず、第1のパンチの場合には(ステップ510;1P)、ステップ511において無効操作度記憶エリアの値が一定値以下なら、ジョイステック41am、41ah等の操作が拳闘の規則にない動きをしていることが少ないと判定し、ステップ512以降の処理に移行する。
このステップ512では、最小限の数のポリゴンから構成された闘士C2の顔(頭部)C2fについて、この部分の各面を構成するポリゴン数を増加させる。これにより、図11(a)に示すように、それぞれ矩形(四角形)が割り当てられた6つのポリゴンから構成された顔(頭部)C2fの各面において、一つのポリゴンから8(列)×8(行)に配列された複数のポリゴンに変更される。
また、各面の複数のポリゴンの一つ一つのアドレスは指定されており、これらアドレスとポリゴンの変形用データとがパンチ(パンチの方向、パンチの種類、パンチの強弱)毎にテーブル化されていて、これらテーブルの多数がROM203に格納されているものとする。また、このステップ512以降に入ると、どのテーブルから変形データを取り込むかがパンチの種類、パンチの方向、強さ、闘士Cの種類等により指定されている。
次に、メインCPU201は、顔(頭部)C2fの部分が多数のポリゴンで構成されていて、各ポリゴンの各アドレスについて変形用のテーブルからポリゴンの変形データを取り出し、このアドレスに相当する部分の顔の表情のテクスチャーを変形し、当該アドレスに該当するポリゴンにマッピングする(ステップ513)。ポリゴンの変形は、矩形のポリゴンの4頂点を設定することにより可能になる。この場合は、6面体の各面に、単に4頂点のあるポリゴンの多数が配置されたような変形データが得られることになる。
そして、上記変形データを基に顔(頭部)C2fの全てのポリゴンについてマッピングが終了したか判定する(ステップ514)。全てのポリゴンにテクスチャーのマッピングが終了しないときには(ステップ514;NO)、マッピング処理を続行する(ステップ513、514)。また、全てのポリゴンにテクスチャーのマッピングが終了したときには(ステップ514;YES)、図11(b)に示すように6面体の部分に通常の顔が表示される。ついで、メインCPU201は、ステップ515で闘士C2用のライフカウンタのデータを所定の値だけで減少させた後、ステップ516でROM203の読出し番地やテーブル読出し番地を更新して、この処理を抜ける。
再び、このルーチンに入ると、フラッグFLGが"1"となっているので、メインCPU201は、ステップ520にて所定の変形用テーブルの所定の番地から変形データを読み出してくる。この変形データは、図12(a)に示すように、最小単位の各ポリゴンの各番地P11,P12,P21,P22,…,P81,P82,P91,P92,…,P18,P19,P28,P29,…,P88,P89,P98,P99として得られることになる。
そこで、メインCPU201は、ステップ521で、このパンチに伴う表情のテクスチャーを選び、かつこれを変形し、各テクスチャーを該当する各番地P11,P12,P21,P22,…,P81,P82,P91,P92,…,P18,P19,P28,P29,…,P88,P89,P98,P99にマッピングする。これにより、図11(b)に示すように、多数のポリゴンによって構成される6面体が歪んだ変形を呈することになる。
これらの各番地に全てテクスチャーがマッピングが完了したか判定する(ステップ522)。全てのテクスチャーのマッピングが完了したときには(ステップ522;YES)、当該変形テーブルの全データを読み出したか判定する(ステップ522)。読み出していない場合には(ステップ523;NO)、ROM203と変形テーブルの読出し番地の更新をする(ステップ516)。
このルーチンを通る度に、変形テーブルのデータが番地更新した状態で読み出され(ステップ500、S520、S521、S522)、次々と変形データが得られることになり、歪んだ顔(頭部)C2fが表示できることになる。これにより、図12(b)に示すように歪んだ形状となった頭部と、表情が表示されるようになる。
なお、変形テーブルの変形データを全て読み終わったときには(ステップ523;YES)、顔(頭部)C2fの変形が終了し、元の状態に戻ったときであるので、フラッグFLGに"0"を設定してステップ516に進む。
一方、パンチが第1のパンチであって(ステップ510;1P)、かつ無効操作度が大きい場合には(ステップ511;YES)、変形量が少ない第2の変形テーブルのデータを読み出す処理に移行する(ステップ525)。
ステップ525で最小限の数のポリゴンから構成された闘士C2の顔(頭部)C2fを、多数のポリゴンで構成されるように増加させる。これにより、図11(a)に示すように、6面体で構成されたポリゴンの各面は、多数のポリゴンに変更される。次に、ステップ526で、表情のテクスチャーを各ポリゴンの変形データをマッピングする。そして、全ポリゴンについてマッピングが終了したかを判定する(ステップ527)。これにより、図11(b)に示すように6面体の部分に通常の顔で表示される。
そして、メインCPU201は闘士C2用のライフカウンタのデータを通常値で減少させて、ステップ516でROM203の読出し番地及び第2の変形テーブルの読出し番地を更新し、この処理を抜ける。
このように第1のパンチであって、本来なら闘士C2に大きなダメージを与えられる場合でも、無効操作度が大きいと、通常のパンチの扱いとなってしまう。
また、パンチが第2のパンチであって(ステップ510;2P)、かつ無効操作度が小さい場合には(ステップ529;YES)、ステップ525〜ステップ528、ステップ500、ステップ520〜ステップ534の処理を実行する。これにより、図11(a)に示すように、6面体で構成されたポリゴンの各面は、多数のポリゴンに変更された後、図11(b)に示すように6面体の部分に通常の顔が表示される。多数のポリゴンによって構成される6面体の顔(頭部)C2fが歪み、歪みに伴った表情が表示されるようになる。この場合、第2の変形テーブルであったので、変形の程度が図12より少ない。
なお、上記処理では、闘士C2の処理についてのみ説明していたが、ディスプレイ3a上には、図13に示すように、闘士C1の頭部、胸部が透視化処理され、かつ闘士C1の腕等は通常のポリゴン処理で表示される。もちろん、腕等が闘士C2にかかる(重なる)場合には、この腕についても透視化処理を施してもよい。この透視化処理の一つとしてメッシュ化処理がある。このメッシュ化処理は、図18に示すように、例えば4頂点のポリゴン90が、XY軸について例えば9ドットで構成されているとし、X軸の座標値+Y軸の座標値=Sの値が偶数のピクセルのみ描画され、Sの値が奇数のときには描画をスキップし、書き込みをしないようにしている。このようにすることにより、メッシュ化したポリゴンが得られる。
また、各闘士C1、C2等の表示については、ポリゴンの優先順位の判定でディスプレイ3aの一番手前に表示されることになる。さらに、闘士C2はポリゴンの優先度が2番目であるので、闘士C1の後ろであって、かつロープRPの手前に表示される。またさらに、闘士C1の頭部や胸部がメッシュ処理されているので、闘士C1が画面手前に表示されていても、闘士C2は形状、表情とも見えることになる。また、ロープRPはポリゴンの優先度が3番目であるので、一番後ろ側に表示されることになる。さらに、リングRGは、回転スクロールで表示されている。また、ライフカウンタLCa、LCbはスクロールで表示されているので、何時もディスプレイ3aの画面の左右に表示されている。また、図示しないが、見物客等を背景BHとして表示させている。
次に、パンチが第2のパンチで(ステップ509;2P)、かつ無効操作度が大きい場合には(ステップ529;NO)、ROM203の読出し番地を更新し(ステップ516)、この処理を抜ける。つまり、無効操作度が大きいときには、拳闘の規則に従った操作が入力されていないものとし、有効なパンチを繰り出し当たっても、これを無効或いはその威力を低減するようにしている。
一方、ステップ508で不一致になったとき(ステップ508;NO)、メインCPU201は、ステップ531で対戦相手の闘士C2の他の座標を読み出す。
それから、メインCPU201は、ステップ532でこの闘士C2の座標と闘士C1のパンチの座標とを比較する。両方の座標が一致していれば、対戦相手の闘士C2の体に当たったので(ステップ532;YES)、この場合、変形等はせず、単にダメージを相手に与えたものと扱う。そして、メインCPU201はステップ533で闘士C2用のライフカウンタのデータを通常値で減少させて、ROM203の読出し番地を更新し(ステップ516)、この処理を抜ける。
また、防御の場合には(ステップ505;防御)、メインCPU201はステップ541で対戦相手の闘士C2のパンチの座標をよむ。また、メインCPU201は、ステップ542で闘士C1の手の座標を読む。そして、両方の座標が一致したときには(ステップ543;YES)、防御が成功したものとして処理が実行される(ステップ544)。
一方、防御で両座標が不一致のとき(ステップ543;NO)、メインCPU201は、ステップ545で闘士C1の他の部分の座標を読む。対戦相手の闘士C2のパンチの座標と、闘士C1の他の部分の座標とが一致したときには、対戦相手の闘士C2のパンチが当たったので、ステップ547で、対戦相手のパンチ力に応じて例えば闘士C1を例えばダウン状態に移動させたりする。
そして、メインCPU201は、ステップ548で闘士C1のライフカウンタの値を対戦相手のパンチの有効性に応じて減少させる。そして、ROM203の読出し番地を更新し(ステップ518)、この処理を抜ける。
なお、操作データがない場合でも(ステップ503;NO)、対戦相手の闘士C2がパンチを繰り出してくれば(ステップ550;YES)、ステップ541〜ステップ548の処理に移行して処理される。
また、操作データがなく(ステップ503;NO)、対戦相手の闘士C2がパンチの繰り出しがないときには(ステップ550;YES)、何の処理も行わず、ROM203の読出し番地を更新し(ステップ518)、この処理を抜ける。
上述したような各処理ステップを処理することにより、通常は、少ないポリゴンで表示を行うことにより処理負荷を軽くし、闘士C1のパンチが闘士C2の顔面等に当たって表情を変化させたいときには6面体からなるポリゴンを多数のポリゴンで構成し、これらを変形させている。これにより、面白いゲーム環境を提供することができる。また、通常の表示の場合、顔(頭部)C2fを6面体で構成したので、パンチの当たっていないときには、最小限のポリゴンで済む。
なお、上記実施例では、各ポリゴンのアドレスが指定されており、これらアドレスとポリゴンの変形データがテーブル化したものから、パンチの種類に対する変形データを得ることにより、闘士C2の頭部等の変形データを得ていたが、もちろん計算によって変形データを求めるようにしてもよい。
〔画像処理余力表示手段の動作〕
次に、闘士C1、C2のライフカウンタLCa、LCb(図13参照)の表示処理や、この表示に必要なデータ処理について、図14〜図17を参照して説明する。図14は画像処理余力表示処理についてのフローチャートである。また、図15〜図17はライフカウンタLCa、LCbの表示状態の例を示す説明図である。なお、図15〜図17において、ライフカウンタLCaのみ表示されているが、もちろん、ライフカウンタLCbも同様に表示される。説明を簡単にするため、図15〜図17ではライフカウンタLCaのみを表示して説明する。また、図15〜図17において、ライフカウンタLCaは、全余力量を示すメータMと、全余力量に対する残存余力量を表示する手段としての顔Fと、ラウンドを表す数字(「1」、「2」、「3」)と、これら数字の上で点滅或いは点灯させる表示体とから構成されている。
まず、ゲームが開始されると、闘士C1用の全余力量が記憶エリア202C1に記憶されているので、ステップ601で、この記憶エリア202C1からのデータを読み出す。
次に、上記ステップ313の処理により闘士C1がパンチを食らって(画像処理の進行に伴って)ライフカウンタに関するデータが低下すると、この値に基づいてステップ602で残存余力量を減少させる。
ステップ603では、前のステップのメータMのデータと、残存余力量のデータとから表示データを作成する。これにより、メータMを表示するデータが形成され、かつ全余力量に対する残存余力量のデータが形成される。当初は、メータMのデータと残存余力量のデータは同一だから、ライフカウンタLCaは、メータMと顔Fとが同一位置で表示される(図15のゲームスタート(時刻t1))。
それから、ステップ604において、メータM(全余力量)に対して顔F(現存余力)の関係を判定する(ステップ604)。
メータM(全余力量)の底に顔F(現存余力量)が達しない場合には(ステップ604;NO)、この処理を抜ける。したがって、単に残存余力量が減少して行くように表示される。すなわち、ステップ601〜604の処理を繰り返すと、顔Fのみが単に低下して行く表示とする(図15時刻t1、t2)。
メータM(全余力量)の底に顔F(現存余力量)が達したときには(ステップ604;YES)、ステップ605で3回目のダウンか判断する。3回目のダウンでない場合には(ステップ605;NO)、ライフカウンタLCaの数字「1」の部分を点滅させる(ステップ606)。これにより、闘士C1は1stダウンしたことになる。また、ライフカウンタLCaは、図15(t3)に示すように、1stダウンしたことになり、数字「1」の上が点滅状態に表示され、かつ顔Fが一番下に位置して表示される。
レフリーカウントが入る前に、ステップ607において、記憶エリア202C1の値を一定量減少させる。また、このステップで、記憶エリア202C1の値を読出し、ノックアウト回避点(KO)のデータを作成或いは該当するデータをメモリから読み出し、顔Fの位置をメータMから話した状態の表示されるようなデータを形成する。このデータが表示されることにより、図15(t4)に示すように、顔FがメータMから離れた位置で表示される。さらに、同図に示すように、メータMには、Aポイントが表示され、矢印Yに示すようにBポイントの表示がされる。このBポイントは時刻t1のときより短くなっている(メータMが短く表示される)。そして、Cポイントがソフト的に設定或いは決定され、ノックアウト回避点(KO)が表示される。
また、闘士C1の体力は、ステップ608において所定の回復条件により回復される。カウント終了条件は、カウント「10」以内に顔FがAポイントに到達した場合である。さらに、Cポイントはモーション強制発生点である。そこで、体力回復に従って、残存余力量を回復させる(ステップ608)。また、顔Fを上昇させる表示をする(ステップ608)。これにより、図15(t5)に示すように、ライフカウンタLCaの顔Fが矢印Yのように上昇する。そして、9カウントでBポイント或いは、A〜Bポイントのエリアに入ると(ステップ609)、再び、次のラウンド目の処理に入る指令を入力する(ステップ610)。なお、9カウントでBポイント或いは、A〜Bポイントのエリアに入らないと(ステップ609;NO)、例えばゲームオーバーの処理にする(ステップ611)。
2ラウンド目に入ると、ステップ601でメータMのデータが読み出される。また、ステップ602で残存余力量を減少させる。これらのデータをステップ603で表示処理すると、ディスプレイ3aには、図16(t6)に示すように、顔Fが矢印Yの方向に低下する状態で表示される。
そして、ステップ604、605を通過し、かつ残存余力量が全くなくなると、ライフカウンタLCaは、図16(t7)に示すように、2回目のダウンしたことになり、数字「2」の上が点滅状態に表示され、かつ顔Fが一番下に位置して表示される(ステップ606)。
レフリーカウントが入る前に、ステップ607において、ライフカウンタLCaの全体量を減少させ、ノックアウト回避点(KO)が出力させ、かつ顔Fの位置を変更する。これにより、図16(t8)に示すように、顔Fが離れた位置で表示される。
また、闘士C1の体力が回復されたときに、顔Fを上昇させる表示をする(ステップ608)。これにより、図16(t9)に示すように、ライフカウンタLCaの顔Fが矢印Yのように上昇させる。そして、回復すると(ステップ609)、再び、次のラウンド目に入る指令をする(ステップ610)。
3ラウンド目に入ると、再び、ステップ601〜604の処理を行う。これにより、ディスプレイ3aには、図17(t10)に示すように、顔Fが矢印Yの方向低下する状態で表示される。
そして、残存量がなくなると(ステップ604)、ライフカウンタLCaは、図17(t11)に示すように、3回ダウンしたことになり、数字「3」の上が点滅状態に表示され、かつ顔Fが一番下に位置して表示されて、ステップ612でゲームオーバー表示をする。なお、残存余力があるときには、何も処理をせずに、この処理を抜けてゆく。
このように処理ステップが実行されると画像処理余力表示手段の処理が行われることになる。この処理は、全余力表示手段による全余力量の表示処理と、残存余力量表示手段による全余力量に対する残存余力量の表示処理と、全余力変化手段による画像処理の進行に伴って全余力を順次減少させる処理とである。
ライフカウンタLCaの表示処理については、上述したものであるから、各闘士C1、C2のダメージ等について現実味の有るゲーム展開を味わうことができる。
なお、本実施形態では本発明の画像処理装置が適用された機器としてゲーム装置を挙げたが、本発明の画像処理装置は必ずしもそれに限定されるものではなく、画像処理装置単独で実施してもよいし、また、シミュレーションシステム等に一体的に搭載することもでき、より少ない演算量で臨場感溢れる画像を提供することができる。