〔ゲーム装置の構成と動作〕
図1は、本発明の一実施形態によるゲーム装置の基本構成を示している。ここでは、ビデオゲーム装置の一例として、家庭用ビデオゲーム装置をとりあげて説明を行うこととする。家庭用ビデオゲーム装置は、家庭用ゲーム機本体および家庭用テレビジョンを備える。家庭用ゲーム機本体には、記録媒体10が装填可能となっており、記録媒体10からゲームデータが適宜読み出されてゲームが実行される。このようにして実行されるゲーム内容が家庭用テレビジョンに表示される。
家庭用ビデオゲーム装置のゲームシステムは、制御部1と、記憶部2と、画像表示部3と、音声出力部4と、操作入力部5とからなっており、それぞれがバス6を介して接続される。このバス6は、アドレスバス、データバス、およびコントロールバスなどを含んでいる。ここで、制御部1、記憶部2、音声出力部4および操作入力部5は、家庭用ビデオゲーム装置の家庭用ゲーム機本体に含まれており、画像表示部3は家庭用テレビジョンに含まれている。
制御部1は、主に、ゲームプログラムに基づいてゲーム全体の進行を制御するために設けられている。制御部1は、たとえば、CPU(Central Processing Unit)7と、信号処理プロセッサ8と、画像処理プロセッサ9とから構成されている。CPU7と信号処理プロセッサ8と画像処理プロセッサ9とは、それぞれがバス6を介して互いに接続されている。CPU7は、ゲームプログラムからの命令を解釈し、各種のデータ処理や制御を行う。たとえば、CPU7は、信号処理プロセッサ8に対して、画像データを画像処理プロセッサに供給するように命令する。信号処理プロセッサ8は、主に、3次元空間上における計算と、3次元空間上から擬似3次元空間上への位置変換計算と、光源計算処理と、画像および音声データの生成加工処理とを行っている。画像処理プロセッサ9は、主に、信号処理プロセッサ8の計算結果および処理結果に基づいて、描画すべき画像データをRAM12に書き込む処理を行っている。
記憶部2は、主に、プログラムデータや、プログラムデータで使用される各種データなどを格納しておくために設けられている。記憶部2は、たとえば、記録媒体10と、インターフェース回路11と、RAM(Random Access Memory)12とから構成されている。記録媒体10には、インターフェース回路11が接続されている。そして、インターフェース回路11とRAM12とはバス6を介して接続されている。記録媒体10は、オペレーションシステムのプログラムデータや、画像データ、音声データ並びに各種プログラムデータからなるゲームデータなどを記録するためのものである。この記録媒体10は、たとえば、ROM(Read Only Memory)カセット、光ディスク、およびフレキシブルディスクなどであり、オペレーティングシステムのプログラムデータやゲームデータなどが記憶される。なお、記録媒体10にはカード型メモリも含まれており、このカード型メモリは、主に、ゲームを中断するときに中断時点での各種ゲームパラメータを保存するために用いられる。RAM12は、記録媒体10から読み出された各種データを一時的に格納したり、制御部1からの処理結果を一時的に記録したりするために用いられる。このRAM12には、各種データとともに、各種データの記憶位置を示すアドレスデータが格納されており、任意のアドレスを指定して読み書きすることが可能になっている。
画像表示部3は、主に、画像処理プロセッサ9によってRAM12に書き込まれた画像データや、記録媒体10から読み出される画像データなどを画像として出力するために設けられている。この画像表示部3は、たとえば、テレビジョンモニタ20と、インターフェース回路21と、D/Aコンバータ(Digital-To-Analogコンバータ)22とから構成されている。テレビジョンモニタ20にはD/Aコンバータ22が接続されており、D/Aコンバータ22にはインターフェース回路21が接続されている。そして、インターフェース回路21にバス6が接続されている。ここでは、画像データが、インターフェース回路21を介してD/Aコンバータ22に供給され、ここでアナログ画像信号に変換される。そして、アナログ画像信号がテレビジョンモニタ20に画像として出力される。
ここで、画像データには、たとえば、ポリゴンデータやテクスチャデータなどがある。ポリゴンデータはポリゴンを構成する頂点の座標データのことである。テクスチャデータは、ポリゴンにテクスチャを設定するためのものであり、テクスチャ指示データとテクスチャカラーデータとからなっている。テクスチャ指示データはポリゴンとテクスチャとを対応づけるためのデータであり、テクスチャカラーデータはテクスチャの色を指定するためのデータである。ここで、ポリゴンデータとテクスチャデータとには、各データの記憶位置を示すポリゴンアドレスデータとテクスチャアドレスデータとが対応づけられている。このような画像データでは、信号処理プロセッサ8により、ポリゴンアドレスデータの示す3次元空間上のポリゴンデータ(3次元ポリゴンデータ)が、画面自体(視点)の移動量データおよび回転量データに基づいて座標変換および透視投影変換されて、2次元空間上のポリゴンデータ(2次元ポリゴンデータ)に置換される。そして、複数の2次元ポリゴンデータでポリゴン外形を構成して、ポリゴンの内部領域にテクスチャアドレスデータが示すテクスチャデータを書き込む。このようにして、各ポリゴンにテクスチャが貼り付けられた物体つまり各種キャラクタを表現することができる。
音声出力部4は、主に、記録媒体10から読み出される音声データを音声として出力するために設けられている。音声出力部4は、たとえば、スピーカー13と、増幅回路14と、D/Aコンバータ15と、インターフェース回路16とから構成されている。スピーカー13には増幅回路14が接続されており、増幅回路14にはD/Aコンバータ15が接続されており、D/Aコンバータ15にはインターフェース回路16が接続されている。そして、インターフェース回路16にバス6が接続されている。ここでは、音声データが、インターフェース回路16を介してD/Aコンバータ15に供給され、ここでアナログ音声信号に変換される。このアナログ音声信号が増幅回路14によって増幅され、スピーカー13から音声として出力される。音声データには、たとえば、ADPCM(Adaptive Differential Pulse Code Modulation)データやPCM(Pulse Code Modulation)データなどがある。ADPCMデータの場合、上述と同様の処理方法で音声をスピーカー13から出力することができる。PCMデータの場合、RAM12においてPCMデータをADPCMデータに変換しておくことで、上述と同様の処理方法で音声をスピーカー13から出力することができる。
操作入力部5は、主に、コントローラ17と、操作情報インターフェース回路18と、インターフェース回路19とから構成されている。コントローラ17には、操作情報インターフェース回路18が接続されており、操作情報インターフェース回路18にはインターフェース回路19が接続されている。そして、インターフェース回路19にバス6が接続されている。
コントローラ17は、プレイヤが種々の操作命令を入力するために使用する操作装置であり、プレイヤの操作に応じた操作信号をCPU7に送出する。コントローラ17には、第1ボタン17a、第2ボタン17b、第3ボタン17c、第4ボタン17d、上方向キー17U、下方向キー17D、左方向キー17L、右方向キー17R、L1ボタン17L1、L2ボタン17L2、R1ボタン17R1、R2ボタン17R2、スタートボタン17e、セレクトボタン17f、左スティック17SL及び右スティック17SRが設けられている。
上方向キー17U、下方向キー17D、左方向キー17L及び右方向キー17Rは、例えば、キャラクタやカーソルをテレビジョンモニタ20の画面上で上下左右に移動させるコマンドをCPU7に与えるために使用される。
スタートボタン17eは、記録媒体10からゲームプログラムをロードするようにCPU7に指示するときなどに使用される。
セレクトボタン17fは、記録媒体10からロードされたゲームプログラムに対して、各種選択をCPU7に指示するときなどに使用される。
左スティック17SL及び右スティック17SRは、いわゆるジョイスティックとほぼ同一構成のスティック型コントローラである。このスティック型コントローラは、直立したスティックを有している。このスティックは、支点を中心として直立位置から前後左右を含む360°方向に亘って、傾倒可能な構成になっている。左スティック17SL及び右スティック17SRは、スティックの傾倒方向及び傾倒角度に応じて、直立位置を原点とするx座標及びy座標の値を、操作信号として操作情報インターフェース回路18とインターフェース回路19とを介してCPU7に送出する。
第1ボタン17a、第2ボタン17b、第3ボタン17c、第4ボタン17d、L1ボタン17L1、L2ボタン17L2、R1ボタン17R1及びR2ボタン17R2には、記録媒体10からロードされるゲームプログラムに応じて種々の機能が割り振られている。
なお、左スティック17SL及び右スティック17SRを除くコントローラ17の各ボタン及び各キーは、外部からの押圧力によって中立位置から押圧されるとオンになり、押圧力が解除されると中立位置に復帰してオフになるオンオフスイッチになっている。
以上のような構成からなる家庭用ビデオゲーム装置の概略動作を、以下に説明する。電源スイッチ(図示省略)がオンにされゲームシステム1に電源が投入されると、CPU7が、記録媒体10に記憶されているオペレーティングシステムに基づいて、記録媒体10から画像データ、音声データ、およびプログラムデータを読み出す。読み出された画像データ、音声データ、およびプログラムデータの一部若しくは全部は、RAM12に格納される。そして、CPU7が、RAM12に格納されたプログラムデータに基づいて、RAM12に格納された画像データや音声データにコマンドを発行する。
画像データの場合、CPU7からのコマンドに基づいて、まず、信号処理プロセッサ8が、3次元空間上におけるキャラクタの位置計算および光源計算などを行う。次に、画像処理プロセッサ9が、信号処理プロセッサ8の計算結果に基づいて、描画すべき画像データのRAM12への書き込み処理などを行う。そして、RAM12に書き込まれた画像データが、インターフェース回路13を介してD/Aコンバータ17に供給される。ここで、画像データがD/Aコンバータ17でアナログ映像信号に変換される。そして、画像データはテレビジョンモニタ20に供給され画像として表示される。
音声データの場合、まず、信号処理プロセッサ8が、CPU7からのコマンドに基づいて音声データの生成および加工処理を行う。ここでは、音声データに対して、たとえば、ピッチの変換、ノイズの付加、エンベロープの設定、レベルの設定及びリバーブの付加などの処理が施される。次に、音声データは、信号処理プロセッサ8から出力されて、インターフェース回路16を介してD/Aコンバータ15に供給される。ここで、音声データがアナログ音声信号に変換される。そして、音声データは増幅回路14を介してスピーカー13から音声として出力される。
〔ゲーム装置における各種処理概要〕
本ゲーム機において実行されるゲームは、たとえば野球ゲームである。本ゲーム機は、打者キャラクタがゲーム空間に配置されボールがゲーム空間を移動するゲームを実行可能になっている。図2は、本発明で主要な役割を果たす機能を説明するための機能ブロック図である。
通過領域設定手段50は、複数の区分領域から構成される、ボールが通過する通過領域TRを、ゲーム空間に設定する処理を、CPU7に実行させる機能を備えている。この手段では、ボールが通過する通過領域TRが、ゲーム空間の所定の位置に設定される。たとえば、投手キャラクタから投球されたボールが通過する領域TR(通過領域)が、ホームベースの上方に設定される。ここでは、通過領域TRは、打者キャラクタがバットすなわちミートカーソルによりボールを捉えることができる範囲に対応している。言い換えると、通過領域TRは、バットとボールとが衝突したか否かが判断される範囲に対応している。
たとえば、ここでは、ホームベースの投手キャラクタ側の辺の中点をゲーム空間の原点とし、この原点からホームベースの投手キャラクタ側の辺に沿う1塁側の方向をX方向、この原点から投手キャラクタに向かう方向をY方向、X方向とY方向とに直交し原点から上方に向かう方向をZ方向と定義する。
この場合、捕手側から通過領域TRを見て、左上の隅角部を隅角部TX1、左下の隅角部を隅角部TX2、右下の隅角部を隅角部TX3、右上の隅角部を隅角部TX4と定義すると、通過領域TRの4つの隅角部TX1,TX2,TX3,TX4それぞれは、「TX1(−xt1,0,zt2)、TX2(−xt1,0,zt1)、TX3(xt1,0,zt1)、TX4(xt1,0,zt2)」と記載される。これらの4つの隅角部の座標をCPU7に認識させることにより、通過領域TRの上辺と下辺とがホームベースの投手キャラクタ側の辺と平行となる矩形状の通過領域TRが、ホームベースの上方に設定される。
なお、通過領域TRの4つの隅角部TX1,TX2,TX3,TX4それぞれの座標は、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。
また、通過領域TRは、複数の区分領域(コース)から構成されている。たとえば、X−Z平面に設定されて通過領域TRは、X方向に5分割、Z方向に5分割され、「5X5」の25のコースKRから構成されている。このように、分割数を設定することにより、各コースKRの4つの隅角部の座標は、上記の通過領域TRの座標、および各コースKRの各辺の長さ(X方向の一辺長さ:2・xt1/5、Z方向の一辺長さ:2・(zt2−zt1)/5)に基づいて、決定される。ここでは、各コースKRの4つの隅角部の座標をCPU7に認識させることにより、全コースKRがゲーム空間に設定される。
なお、コースKRの数を決定するための分割数は、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。
基準点認識手段51は、複数のコースKRそれぞれの基準点KJを、CPU7に認識させる機能を備えている。この手段では、複数のコースKRそれぞれの基準点KJが、CPU7に認識される。たとえば、上記のように各コースKRが設定されると、各コースKRの基準点KJを算出する処理が、CPU7により実行される。たとえば、各コースKRの4つの隅角部の座標を用いて、各コースKRの重心(基準点)の座標J(i,j)が、CPU7により算出される。すると、各コースKRの重心の座標J(i,j)が、RAM12に格納される。
なお、記号i,jは、コースKRを区別するための変数である。ここでは、変数i,jは、1から5までのいずれか自然数をとる。
能力設定手段52は、複数のコースKRそれぞれに対して打者キャラクタの能力を示す能力パラメータを設定する処理を、CPU7に実行させる機能を備えている。この手段では、打者キャラクタの選球眼の良し悪しを規定するための能力パラメータを設定する処理が、複数のコースKRそれぞれに対してCPU7により実行される。
ここでは、コースKRを区別するための変数である記号i,jを用いることにより、打者キャラクタの能力パラメータNが、複数のコースKRそれぞれに対して設定される。たとえば、打者キャラクタの能力パラメータが、N(i,j)と設定される。そして、たとえば、ゲーム開始時には、各コースKRに対応する打者キャラクタの能力パラメータN(i,j)に対して、所定の値(デフォルト値)又は前回のゲーム終了時にRAM12に格納された継続値が、CPU7により割り当てられる。このようにして、各コースKRに対して能力パラメータN(i,j)が設定される。
状態設定手段53は、複数のコースKRそれぞれに対して、打者キャラクタのボールに対する目の慣れの状態を示す状態パラメータを設定する処理を、CPU7に実行させる機能を備えている。また、状態設定手段53は、複数のコースKRそれぞれに対して、ボールの移動速度に応じて打者キャラクタの状態パラメータを多段階に設定する処理を、CPU7に実行させる機能を備えている。
この手段では、複数のコースKRそれぞれに対して、打者キャラクタのボールに対する目の慣れの状態を示す状態パラメータを設定する処理が、CPU7により実行される。また、この手段では、複数のコースKRそれぞれに対して、ボールの移動速度に応じて打者キャラクタの状態パラメータを多段階に設定する処理が、CPU7により実行される。
ここでは、コースKRを区別するための変数を記号i,jで示し、ボールの移動速度を区別するための変数を記号kで示すことにより、複数のコースKRそれぞれに対して、打者キャラクタの状態パラメータJが設定される。たとえば、打者キャラクタの状態パラメータが、J(i,j,k)と設定される。そして、たとえば、ゲーム開始時には、各コースKRに対応する打者キャラクタの状態パラメータJ(i,j,k)に対して、所定の値(デフォルト値)又は前回のゲーム終了時にRAM12に格納された継続値が、CPU7により割り当てられる。このようにして、各コースKRに対して状態パラメータJ(i,j,k)が、コースKRおよびボールの移動速度それぞれに対して多段階に設定される。
なお、記号kは、ボールの移動速度(球速)の段階を区別するための変数である。ここでは、変数kは、1から5までのいずれか自然数をとる。また、ボールの移動速度(球速)の段階を示す数値すなわちkの値は、ボールの移動速度が遅くなればなるほど、大きな値となる。
オブジェクト位置設定手段54は、通過領域TRにおける、打者キャラクタのスイング動作の対象となるミートカーソルの基準点MJ1をCPU7に認識させることにより、ミートカーソルMを通過領域TRに設定する機能を備えている。この手段では、通過領域TRにおける、打者キャラクタのスイング動作の対象となるミートカーソルMの基準点MJ1をCPU7に認識させることにより、ミートカーソルMが通過領域TRに設定される。
ここでは、通過領域TRの重心の位置に、ミートカーソルMの基準点MJ1を設定する処理が、CPU7により実行される。通過領域TRの重心位置の座標は、上述した通過領域TRの4つの隅角部TX1,TX2,TX3,TX4の座標に基づいてCPU7により算出される。ここで算出された通過領域TRの重心位置の座標を、ミートカーソルMの基準点MJ1の座標としてCPU7に認識させることにより、ミートカーソルMが通過領域TRに設定される。
移動速度認識手段55は、ボールの移動速度をCPU7に認識させる機能を備えている。この手段では、ボールの移動速度がCPU7に認識される。ここでは、投手キャラクタから投球されるボールの球種がCPU7に認識されたときに、この球種に割り当てられたボールの移動速度(球速)がCPU7に認識される。ここで、投手キャラクタが投球可能な球種、および球種に対応する球速は、ゲームプログラムにおいて予め規定されている。
ボール位置設定手段56は、ボールが通過領域TRに投影したときのボールの基準点をCPU7に認識させることにより、ボールの予想通過位置を通過領域TRに設定する機能を備えている。この手段では、ボールを通過領域TRに投影したときのボールの基準点をCPU7に認識させることにより、ボールの予想通過位置が通過領域TRに設定される。
ここでは、投手キャラクタからボールがリリースされると、リリースされたボール(3次元ゲーム空間を移動するボール)を通過領域TRに投影する処理が、CPU7により実行される。ここでは、3次元ゲーム空間におけるボールのX座標およびZ座標を、通過領域のボールの基準点の座標として用いることにより、リリースされたボールが通過領域TRに投影される。なお、この投影処理は、たとえば、ゲームプログラムにおいて予め規定された所定の写像変換関数を用いることにより実行されるようにしても良い。このようにして、リリースされたボールが通過領域TRに投影されると、通過領域TRに投影されたボールの基準点(重心、中心)の座標が、CPU7に認識される。そして、このボールの基準点の座標により規定されるボールの位置が、ボールの予想通過位置としてCPU7に認識され、通過領域TRに設定される。
なお、投手キャラクタからリリースされたボールの各瞬間の位置は、ゲームプログラムにおいて予め規定された、ボールの軌道方程式に基づいて算出される。ボールの軌道方程式は、ボールの初期条件(ボールの初速度、ボールのリリース位置、ボールのリリース角度、ボールの目標到達位置(投球コース)、ボールの回転量、重力等)に基づいて、設定されている。ここでは、このボールの軌道方程式に時間の値を代入することにより、各時間のボールの位置を算出することができるようになっている。
基準点移動手段57は、打者キャラクタのスイング動作の対象となるミートカーソルMの基準点MJ1を、ボールの基準点の位置に移動する処理を、CPU7に実行させる機能を備えている。
この手段では、打者キャラクタのスイング動作の対象となるミートカーソルMの基準点MJ1を、ボールの基準点の位置に移動する処理が、CPU7により実行される。
たとえば、打者キャラクタがプレイヤにより制御されている場合、プレイヤがコントローラ17を操作することにより、コントローラ17の操作方向すなわち通過領域のボールの基準点の方向に、ミートカーソルMの基準点MJ1を移動する命令がCPU7に認識される。これにより、ミートカーソルMの基準点MJ1が、ボールの基準点の位置に移動する状態が、テレビジョンモニタ20に表示される。
一方で、打者キャラクタがCPU7により制御されている場合、通過領域のボールの基準点の方向に、ミートカーソルMの基準点MJ1を移動する命令がCPU7から発行される。すると、ミートカーソルMの基準点MJ1が、ボールの基準点の位置に移動する状態が、テレビジョンモニタ20に表示される。
能力変更手段58は、打者キャラクタの状態パラメータの値に応じて、打者キャラクタの能力パラメータの値を変更する処理を、CPU7に実行させる機能を備えている。この手段では、打者キャラクタの状態パラメータの値に応じて、打者キャラクタの能力パラメータの値を変更する処理が、CPU7により実行される。
ここでは、たとえば、打者キャラクタがスイング動作を開始したときに、ミートカーソルMの基準点MJ1が位置するコースの打者キャラクタの状態パラメータの値に応じて、打者キャラクタの能力パラメータの値を変更する処理が、CPU7により実行される。具体的には、打者キャラクタの状態パラメータJ(i,j,k)の値が大きい場合、打者キャラクタの選球眼用の能力パラメータN(i,j)の値が大きくなるように変更する処理が、CPU7により実行される。これにより、目が慣れているコースKRについては、打者キャラクタの選球眼が良くなるように能力が変更される。また、たとえば、打者キャラクタの状態パラメータJ(i,j,k)の値が小さい場合、打者キャラクタの選球眼用の能力パラメータN(i,j)の値が小さくなるように変更する処理が、CPU7により実行される。これにより、目が慣れていないコースKRについては、打者キャラクタの選球眼が低下するように能力が変更される。
基準点位置変更手段59は、打者キャラクタの状態パラメータJ(i,j,k)の値に応じて、ミートカーソルMの基準点MJ1を基準とした所定の範囲を設定する処理を、CPU7に実行させ、ミートカーソルMの基準点MJ1の位置を、ミートカーソルMの所定の範囲においてランダムに変更する処理を、CPU7に実行させる機能を備えている。
この手段では、打者キャラクタの状態パラメータJ(i,j,k)の値に応じて、ミートカーソルMの基準点MJ1を基準とした所定の範囲を設定する処理が、CPU7により実行される。そして、ミートカーソルMの基準点MJ1の位置を、ミートカーソルMの所定の範囲においてランダムに変更する処理が、CPU7により実行される。
ここでは、打者キャラクタの状態パラメータJ(i,j,k)の値に応じて、ミートカーソルMの基準点MJ1を基準とした所定の範囲MRを設定する処理が、CPU7により実行される。そして、ミートカーソルMの基準点MJ1の位置を、ミートカーソルMの所定の範囲MRにおいてランダムに変更する処理が、CPU7により実行される。
たとえば、ミートカーソルMの基準点MJ1の位置をバットの芯(スイートスポット)と考えると、打者キャラクタがバットをスイング動作したときに生じる、ボールに対するバットの芯のブレが、打者キャラクタの状態パラメータJ(i,j,k)の値に応じて設定される。具体的には、打者キャラクタの状態パラメータJ(i,j,k)の値が大きい場合、打者キャラクタがバットをスイング動作したときにボールに対するバットの芯のブレが小さくなるように、ミートカーソルMの基準点MJ1を基準とした所定の範囲MRには、標準の範囲(デフォルトの範囲)よりも小さな領域が設定される。一方で、打者キャラクタの状態パラメータJ(i,j,k)の値が小さい場合、打者キャラクタがバットをスイング動作したときにボールに対するバットの芯のブレが大きくなるように、ミートカーソルMの基準点MJ1を基準とした所定の範囲MRには、標準の範囲(デフォルトの範囲)よりも大きな領域が設定される。
このようにミートカーソルMの所定の範囲MRが設定されると、ミートカーソルMの基準点MJ1の位置が、ランダムにCPU7により変更される。ここでは、ミートカーソルMに設定された所定の範囲MRが円である場合を例として説明を行う。まず、乱数が、擬似乱数発生プログラムを用いてCPU7により生成される。そして、ここで生成された乱数をミートカーソルMの基準点MJ1に加算する処理が、CPU7により実行される。そして、ミートカーソルMの基準点MJ1の座標に乱数を加算した後の座標が、RAM12に格納される。また、ここでRAM12に格納されたミートカーソルMの基準点の座標が、新たなミートカーソルMの基準点MJ2(変更後のミートカーソルMの基準点)として、CPU7に認識される。
なお、ここで用いられる擬似乱数プログラムは、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。また、この擬似乱数プログラムにより生成される乱数は、ミートカーソルMの基準点MJ1から、ミートカーソルMに設定された所定の範囲MRの境界までの距離未満になるように、設定されている。ここでは、ミートカーソルMに設定された所定の範囲MRが円であるので、この擬似乱数プログラムにより生成される乱数は、この円の半径未満になるように設定されている。
動作対象コース認識手段60は、打者キャラクタがスイング動作を行ったときに、ミートカーソルMの基準点MJ2を含むコースKRを、動作対象コースKTRとしてCPU7に認識させる機能を備えている。この手段では、打者キャラクタがスイング動作を行ったときに、ミートカーソルMの基準点MJ2を含むコースKRが、動作対象コースKTRとしてCPU7に認識される。
ここでは、打者キャラクタにスイング動作を開始させるための命令がCPU7から発行されたときに、ミートカーソルMの基準点MJ2が位置するコースKRが、動作対象コースKTRとしてCPU7に認識される。たとえば、打者キャラクタにスイング動作を開始させるための命令がCPU7から発行されたときに、ミートカーソルMの基準点MJ2の位置が、どのコースKRの範囲に含まれているか否かが、CPU7により判断される。すなわち、ミートカーソルMの基準点MJ2の座標が、4つの隅角部の座標により規定されるどのコースKRに含まれているか否かが、各コースKRごとにCPU7により判断される。そして、ミートカーソルMの基準点MJ2が位置するコースKR(KTR)がCPU7により特定されると、特定されたコースKTRに対応する変数i,jの値を、動作対象コース用の変数id,jdに割り当てる処理が、CPU7により実行される。すると、動作対象コース用の変数id,jdに対応するコースKRが、ミートカーソルMの基準点MJ2が位置するコースKTR(動作対象コース)として特定される。
通過位置認識手段61は、通過領域TRにおいてボールが通過した通過位置を、CPU7に認識させる機能を備えている。この手段では、通過領域TRにおいてボールが通過した通過位置が、CPU7に認識される。ここでは、投手キャラクタからリリースされたボールが通過領域に到達したときに、通過領域TRにおいてボールが通過した位置(ボールの通過位置)が、CPU7に認識される。
対象コース認識手段62は、通過位置を含むコースKRを、対象コースKSRとしてCPU7に認識させる機能を備えている。この手段では、ボールの通過位置を含むコースKRが、対象コースKSRとしてCPU7に認識される。
ここでは、投手キャラクタからリリースされたボールが通過領域を通過したときに、ボールの通過位置を含むコースKRが、対象コースKSRとしてCPU7に認識される。たとえば、投手キャラクタからリリースされたボールが通過領域を通過したときに、ボールの通過位置が、どのコースKRの範囲に含まれているか否かが、CPU7により判断される。すなわち、ボールの通過位置の座標が、4つの隅角部の座標により規定されるどのコースKRに含まれているか否かが、各コースKRごとにCPU7により判断される。そして、ボールの通過位置が位置するコースKRがCPU7により特定されると、特定されたコースKRに対応する変数i,jの値を、対象コース用の変数it,jtに割り当てる処理が、CPU7により実行される。すると、対象コース用の変数it,jtに対応するコールKRが、ボールの通過位置が位置するコースKSR(対象コース)として特定される。
基準点間距離算出手段63は、ボールの通過位置(基準点)と、変更後のミートカーソルMの基準点MJ2との距離を算出する処理を、CPU7に実行させる機能を備えている。この手段では、ボールの通過位置と、変更後のミートカーソルMの基準点MJ2との距離を算出する処理が、CPU7により実行される。
ここでは、投手キャラクタからリリースされたボールが通過領域を通過したときのボールの通過位置と、変更後のミートカーソルMの基準点MJ2の距離を算出する処理が、CPU7により実行される。たとえば、投手キャラクタからリリースされたボールが通過領域を通過したときのボールの通過位置の座標と、打者キャラクタにスイング動作を開始させるための命令がCPU7から発行された後のミートカーソルMの基準点MJ2(変更後のミートカーソルMの基準点MJ2)の座標とに基づいて、ボールの通過位置と変更後のミートカーソルMの基準点MJ2との間の距離を算出する処理が、CPU7により実行される。ここでは、この2点間の距離は、三平方の定理を用いることにより算出される。
移動方向設定手段64は、ボールの移動方向を上記の距離に対応する方向に設定する処理を、CPU7に実行させる機能を備えている。この手段では、ボールの移動方向を上記の距離に対応する方向に設定する処理が、CPU7により実行される。
ここでは、ボールの通過位置と変更後のミートカーソルMの基準点MJ2との間の距離が算出されると、この距離に応じて、ボールがバットの芯に衝突するか否かが、CPU7により判断される。そして、この距離が所定の距離未満であるか否かをCPU7に判別させることにより、ボールがバットの芯に衝突するか否かが判断される。そして、この距離が所定の距離未満である場合、ボールがバットの芯に衝突したことになり、ライナー性の打球が飛球する状態が、テレビジョンモニタ20に表示される。一方で、この距離が所定の距離以上である場合、ボールがバットの芯に衝突しなかったことになり、フライ又はゴロの打球が飛球する状態が、テレビジョンモニタ20に表示される。
結果認識手段65は、打者キャラクタがスイング動作を行った結果である打撃結果を示す結果データを、CPU7に認識させる機能を備えている。この手段では、打者キャラクタがスイング動作を行った結果である打撃結果を示す結果データが、CPU7に認識される。
ここでは、打者キャラクタの打撃結果が安打(ホームラン、ヒット、2塁打、3塁打)であった場合、この結果データには、たとえば数値「1」が割り当てられる。一方で、打者キャラクタの打撃結果が安打(ホームラン、ヒット、2塁打、3塁打)でなかった場合、この結果データには、たとえば数値「0」が割り当てられる。ここで結果データに割り当てられた値が、CPU7に認識される。
データ記録手段66は、結果データに基づいて、動作対象コースKTRの打者キャラクタの状態パラメータJ(id,jd,k)の値をRAM12に記録する処理を、CPU7に実行させる機能を備えている。この手段では、結果データに基づいて、動作対象コースKTRの打者キャラクタの状態パラメータJ(id,jd,k)の値をRAM12に記録する処理が、CPU7により実行される。
ここでは、打者キャラクタの打撃結果が安打(ホームラン、ヒット、2塁打、3塁打)であった場合、すなわち結果データの値が「1」であった場合、動作対象コースKTRの打者キャラクタの状態パラメータJ(id,jd,k)の値をRAM12に記録する処理が、CPU7により実行される。
なお、打者キャラクタの打撃結果が安打(ホームラン、ヒット、2塁打、3塁打)でなかった場合、すなわち結果データの値が「0」であった場合、動作対象コースKTRの打者キャラクタの状態パラメータJ(id,jd,k)の値をRAM12に記録する処理は、CPU7により実行されない。
第1状態変更手段67は、対象コースKSRの打者キャラクタの状態パラメータJ(it,jt,k)の値を変更する処理を、CPU7に実行させる機能を備えている。
この手段では、対象コースKSRに設定された、ボールの移動速度に対応する段階の打者キャラクタの状態パラメータJ(it,jt,k)の値を変更する処理が、CPU7に実行される。また、この手段では、対象コースKSRに設定された、ボールの移動速度に対応する段階を除く他の段階の打者キャラクタの状態パラメータJ(it,jt,k)の値を、段階的に変更する処理が、CPU7により実行される。
ここでは、投手キャラクタから投球されたボールの移動速度に対応する段階の、対象コースKSRの状態パラメータJ(it,jt,k1)の値が、CPU7により変更される。また、ボールの移動速度に対応する段階を除く他の段階の、対象コースKSRの状態パラメータJ(it,jt,k2)の値を、段階的に変更する処理が、CPU7により実行される。ここでは、「k1≠k2」である。
たとえば、ボールの移動速度に対応する段階が5段階(k=1〜5)であり、投手キャラクタから投球されたボールの移動速度が最高速であった場合、対象コースKSRの状態パラメータJ(it,jt,1)の値に所定の値が、CPU7により加算される。また、この場合、対象コースKSRの状態パラメータJ(it,jt,2),J(it,jt,3),J(it,jt,4),J(it,jt,5)それぞれの値に、ボールの移動速度に対応する段階に応じた値たとえば上記の所定の値より小さな値が、CPU7により加算される。このようにして、対象コースKSRの打者キャラクタの状態パラメータJ(it,jt,k)の値が、CPU7により変更される。
第2状態変更手段68は、対象コースKSRを基準として、対象コースKSRからの距離に応じて、対象コースKSRを除く複数のコースKRそれぞれの打者キャラクタの状態パラメータJ(i,j,k)の値を変更する処理を、CPU7に実行させる機能を備えている。
この手段では、対象コースKSRの基準点を基準として、対象コースKSRの基準点から、対象コースKSRを除く複数のコースKRそれぞれの基準点までの距離に応じて、対象コースKSRを除く複数のコースKRそれぞれの打者キャラクタの状態パラメータJ(i,j,k)の値を変更する処理が、CPU7により実行される。
詳細には、この手段では、ボールの移動速度の段階と、対象コースKSRを基準とした対象コースKSRからの距離とに応じて、対象コースKSRを除く複数のコースKRそれぞれの打者キャラクタの状態パラメータJ(i,j,k)の値を変更する処理が、CPU7により実行される。
ここでは、
対象コースKSRを除く複数のコースKRそれぞれの打者キャラクタの状態パラメータJ(i,j,k)の値を、ボールの移動速度に対応する段階と、対象コースKSRからの距離とに応じて変更する処理が、CPU7により実行される。ここでは、「i≠it、j≠jt、k=1〜5」である。
たとえば、ボールの移動速度に対応する段階が5段階(k=1〜5)であった場合、「i≠it、j≠jt、k=1〜5」の条件を満たす、各段階の打者キャラクタの状態パラメータJ(i,j,k)の値を、対象コースKSRからの距離に応じて変更する処理が、CPU7により実行される。具体的には、「i≠it、j≠jt、k=1」の場合、打者キャラクタの状態パラメータJ(i,j,1)の値に、対象コースKSRからの距離に応じた所定の値たとえば上記の所定の値(第1状態変更手段67で用いられた各段階の所定の値)以下の値が、CPU7により加算される。また、「i≠it、j≠jt、k=2〜5」の場合も同様に、打者キャラクタの状態パラメータJ(i,j,k)の値に、対象コースKSRからの距離に応じた所定の値たとえば上記の所定の値(第1状態変更手段67で用いられた各段階の所定の値)以下の値が、CPU7により加算される。このようにして、対象コースKSRを除く複数のコースKRそれぞれの打者キャラクタの状態パラメータJ(i,j,k)の値が、CPU7により変更される。
〔野球ゲームにおける打者キャラクタの状態評価システムの概要〕
次に、野球ゲームにおける打者キャラクタの状態評価システムの具体的な内容について説明する。また、図10および図11に示すフローについても同時に説明する。なお、図10は野球ゲームの全体概要を説明するためのフローであり、図11は上記システムを説明するためのフローである。
まず、ゲーム機の電源が投入されゲーム機が起動されると、野球ゲームプログラムが、記録媒体10からRAM12にロードされ格納される。このときには、野球ゲームを実行する上で必要となる各種の基本ゲームデータも、同時に、記録媒体10からRAM12にロードされ格納される(S1)。
たとえば、基本ゲームデータには、3次元ゲーム空間用の各種の画像に関するデータが含まれている。そして、この3次元ゲーム空間用の各種の画像に関するデータ、たとえば、スタジアム用の画像データ、選手キャラクタ用の画像データ、および各種のオブジェクトの画像データ等が、CPU7に認識される。また、基本ゲームデータには、3次元ゲーム空間用の各種の画像に関するデータを3次元ゲーム空間に配置するための位置座標データが含まれている。また、基本ゲームデータには、打者キャラクタの状態評価システムで用いられるデータも、含まれている。
続いて、RAM12に格納された野球ゲームプログラムが、基本ゲームデータに基づいて、CPU7により実行される(S2)。すると、野球ゲームの起動画面がテレビジョンモニタ20に表示される。すると、野球ゲームを実行するための各種の設定画面がテレビジョンモニタ20に表示される。ここでは、たとえば、野球ゲームのプレイモードを選択するためのモード選択画面が、テレビジョンモニタ20に表示される(図示しない)。このモード選択画面において、プレイヤがコントローラ17を操作することにより、プレイモードが決定される(S3)。プレイモードには、たとえば、12球団の中から好きなチームを選択して1試合の対戦を楽しむ対戦モード、12球団の中から好きなチームを選択してペナントレースを戦うペナントモード、プレイヤが監督の立場でチームの選手キャラクタを育成する育成モード、およりプレイヤがある1人の選手キャラクタの立場になって野球ゲームを体感する成長体感モード等が、用意されている。
続いて、モード選択画面で選択されたプレイモードにおいて、各種のイベントが、CPU7により実行される(S4)。ここで実行される各種のイベントには、たとえば、AIプログラム(Artificial Intelligence Program)に基づいてCPU7により自動制御されるイベントや、コントローラ17からの入力信号に基づいてプレイヤにより手動制御されるイベントのようなイベントがある。また、選手キャラクタの制御には、AIプログラムに基づいて選手キャラクタに命令を自動的に指示する自動制御や、コントローラ17からの入力信号に基づいて選手キャラクタに命令を直接的に指示する手動制御等がある。このように、本野球ゲームでは、コントローラ17からの指示やAIプログラムからの指示に応じて、イベントが制御されたり、選手キャラクタに命令が指示されたりするようになっている。
続いて、選択されたプレイモードが終了したか否かが、CPU7により判断される(S5)。具体的には、プレイモードが終了したことを示す命令が発行されたか否かが、CPU7により判断される。そして、プレイモードが終了したことを示す命令が発行されたとCPU7により判断された場合(S5でYes)、ゲーム継続用のデータをRAM12に格納する処理が、CPU7により実行される。そして、ゲーム継続用のデータがRAM12に格納されると、この野球ゲームを終了するか否かを選択する選択画面が、テレビジョンモニタ20に表示される(S6)。そして、この選択画面において、プレイヤがコントローラ17を操作することにより、野球ゲームの終了を示す項目が選択されると(S6でYes)、野球ゲームを終了するための処理がCPU7により実行される(S7)。一方で、この選択画面において、プレイヤがコントローラ17を操作することにより、野球ゲームの継続を示す項目が選択されると(S6でNo)、ステップ3(S3)のモード選択画面が、テレビジョンモニタ20に再表示される。
なお、プレイモードが終了するための命令が発行されたとCPU7に判断されない限り(S5でNo)、モード選択画面で選択されたプレイモードにおいて、各種のイベントがCPU7により実行される(S4)。
次に、打者キャラクタの状態評価システムの詳細を説明する。
以下には、打者キャラクタの状態評価システムが対戦モードにおいて機能する場合の例が示される。たとえば、モード選択画面において対戦モードが選択されたときに、打者キャラクタの状態評価システムが機能する場合の例が示される。そして、この対戦モードでは、先攻であるAチームの選手キャラクタがAIプログラムにより制御され、後攻であるBチームの選手キャラクタがプレイヤにより制御される。特に、以下では、打者キャラクタがAIプログラムにより制御される場合に機能する状態評価システムの例が示される。
モード選択画面において対戦モードがプレイヤにより選択されると、対戦イベントがCPU7により実行される(S401)。すると、チーム(Aチーム、Bチーム)と、各チームのスターティングメンバー(Aチームの選手キャラクタ、Bチームの選手キャラクタ)とが、図示しないチーム選択画面および選手選択画面において、選択される(S402)。
すると、各チームの各スターティングメンバー(各選手キャラクタ)に対する基本設定が、CPU7により実行される(S403)。ここで実行される基本設定の1つには、たとえば、各選手キャラクタの能力の設定がある。ここでは、全ての選手キャラクタの能力パラメータそれぞれにデフォルト値又は前回のゲーム終了時にRAM12に格納された継続値を割り当てる処理を、CPU7に実行させることにより、各選手キャラクタの能力が設定される。たとえば、選手キャラクタの能力には、たとえば、弾道、パワー、選球眼、走力、肩力、守備力、球速、コントロール、およびスタミナ等のような能力が用意されている。
続いて、3次元ゲーム空間用の各種の画像に関するデータ、たとえば、スタジアム用の画像データ、選手キャラクタ用の画像データ、および各種のオブジェクトの画像データ等が、CPU7に認識される。すると、スタジアム、投手キャラクタ、打者キャラクタ、および野手キャラクタが、各画像データを用いて、テレビジョンモニタ20に表示される(S404)。
また、このときには、ボールが通過する通過領域TRが、3次元ゲーム空間の所定の位置に設定される(S405)。たとえば、投手キャラクタから投球されるボールが通過する領域TR(通過領域)が、ホームベースの上方に設定される。たとえば、図3に示すように、捕手側から通過領域TRを見て、左上の隅角部を隅角部TX1、左下の隅角部を隅角部TX2、右下の隅角部を隅角部TX3、右上の隅角部を隅角部TX4と定義すると、通過領域TRの4つの隅角部TX1,TX2,TX3,TX4それぞれは、「TX1(−xt1,0,zt2)、TX2(−xt1,0,zt1)、TX3(xt1,0,zt1)、TX4(xt1,0,zt2)」と記載される。これらの4つの隅角部の座標をCPU7に認識させることにより、通過領域TRの上辺と下辺とがホームベースの投手キャラクタ側の辺と平行となる矩形状の通過領域TRが、ホームベースの上方に設定される(図3では、ストライクゾーンを太線で表示)。
また、通過領域TRは、図3に示すように、X方向に5分割、Z方向に5分割され、「5X5」の25のコースKRから構成されている。図3では、iおよびjは、コースKRの位置を示すための変数になっている。すなわち、このiおよびjは、後述するコースKRの基準点KJの位置を示す変数になっている。ここで、iおよびjは、1から5までのいずれか自然数をとる。また、ここでは、捕手側から通過領域TRを見て(図4を参照)、左下隅のコースが、「i=1,j=1」で示される。同様に、左上隅のコースが「i=1,j=5」で示され、右下隅のコースが「i=5,j=1」で示され、右上隅のコースが「i=5,j=5」で示される。
このように通過領域TRを分割することにより規定された複数のコースKRそれぞれにおいて、4つの隅角部の座標が、上記の通過領域TRの座標、および各コースの各辺の長さ(X方向の一辺長さ:2・xt1/5、Z方向の一辺長さ:2・(zt2−zt1)/5)に基づいて、CPU7により算出される。たとえば、各コースKRの4つの隅角部の座標は、上記の通過領域TRの座標TX1,TX2,TX3,TX4を基準として、上記の通過領域TRの座標TX1,TX2,TX3,TX4から、各コースの各辺の長さ(X方向の一辺長さ:2・xt1/5、Z方向の一辺長さ:2・(zt2−zt1)/5)に所定数の倍率を乗じた結果を、減算することにより、算出される。ここで算出された各コースの4つの隅角部の座標をCPU7に認識させることにより、全コースが3次元ゲーム空間に設定される(S406)。
このように、通過領域TR、および複数のコースKRそれぞれが3次元ゲーム空間に設定されると、複数のコースKRそれぞれの基準点KJが、CPU7に認識される(S407)。たとえば、各コースKRの4つの隅角部の座標を用いて、各コースKRの重心(基準点)の座標J(i,j)が、CPU7により算出される。すると、各コースKRの重心の座標J(i,j)が、RAM12に格納される。なお、ここで用いられる変数i,jは、図4における変数と同じものである。
続いて、複数のコースKRそれぞれに対して打者キャラクタの選球眼の良し悪しを規定するための能力パラメータN1を設定する処理が、CPU7により実行される(S408)。ここでは、コースKRを区別するための変数である記号i,jを用いることにより、打者キャラクタの能力パラメータN1(i,j)が、複数のコースKRそれぞれに対して設定される。そして、各コースに対応する打者キャラクタの能力パラメータN1(i,j)に対して、デフォルト値又は前回のゲーム終了時にRAM12に格納された継続値が、CPU7により割り当てられる。このようにして、各コースKRに対する、能力パラメータN1(i,j)の値が決定される。
続いて、複数のコースKRそれぞれに対して、打者キャラクタのボールに対する目の慣れの状態を示す状態パラメータJを設定する処理が、CPU7により実行される(S409)。そして、複数のコースそれぞれに対して、ボールの球速に応じて打者キャラクタの状態パラメータを多段階に設定する処理が、CPU7により実行される。
ここでは、コースKRを区別するための変数を記号i,jで示し、ボールの球速を区別するための変数を記号kで示すことにより、複数のコースKRそれぞれに対して、打者キャラクタの状態パラメータJ(i,j,k)が設定される。そして、各コースに対応する打者キャラクタの状態パラメータJ(i,j,k)に対して、デフォルト値又は前回のゲーム終了時にRAM12に格納された継続値が、CPU7により割り当てられる。このようにして、各コースKRに対する、状態パラメータJ(i,j,k)の値が決定される。
たとえば、ボールの球速の段階は、5段階で評価されている。ボールの球速は、各球種に対して所定の速度が割り当てられている。具体的には、ストレートに対する球速は150kmとなっており、この球速の段階を示す名称は「超高速」になっている。また、シュートに対する球速は140kmとなっており、この球速の段階を示す「高速」になっている。また、スライダーに対する球速は130kmとなっており、この球速の段階を示す名称は「普通」になっている。また、カーブに対する球速は120kmとなっており、この球速の段階を示す名称は「低速」になっている。さらに、スローカーブに対する球速は110kmとなっており、この球速の段階を示す名称は「超低速」になっている。
このような各段階に対応する状態パラメータJ(i,j,k)を規定するための変数kは、1から5までのいずれか自然数をとる。そして、変数kの数値が小さいものから大きいものへと、「超高速(k=1)」、「高速(k=2)」、「普通(k=3)」、「低速(k=4)」、および「超低速(k=5)」の順に対応している。
続いて、通過領域TRにおける、打者キャラクタのスイング動作の対象となるミートカーソルMの基準点MJ1をCPU7に認識させることにより、ミートカーソルMが通過領域TRに設定される(S410)。たとえば、まず、通過領域TRの重心位置の座標が、上述した通過領域TRの4つの隅角部TX1,TX2,TX3,TX4の座標に基づいて、CPU7により算出される。そして、ここで算出された通過領域TRの重心位置の座標が、ミートカーソルMの基準点MJ1の座標としてCPU7に認識されると、ミートカーソルMが画像データを用いてテレビジョンモニタ20に表示される。
続いて、プレイヤが、コントローラ17をさらに繰り返し操作することにより、投手キャラクタに対して投球に関する命令が指示される(S411)。たとえば、投手キャラクタに投球させるボールの球種を指示する命令、投手キャラクタに投球動作を開始させる命令、および投球コースを決定する命令等が、CPU7から発行される。すると、投手キャラクタが投球動作を行う状態がテレビジョンモニタ20に表示され、投手キャラクタからリリースされたボールが、テレビジョンモニタ20に表示される(S412)。
特に、ここで、プレイヤがコントローラ17を操作することにより、投手キャラクタに投球させるボールの球種を指示する命令がCPU7から発行されたときには、このボールの球種に対応する速度(球速)が、CPU7に認識される。すると、ここで指示された球速に対応する段階k(=kb)が、CPU7に認識される。
なお、球種と球速との対応関係は、ゲームプログラムにおいて予め規定されており、この対応関係を示す対応テーブルはRAM12に格納されている。
続いて、投手キャラクタからボールがリリースされると、リリースされたボールを通過領域TRに投影したときのボールの基準点BJが、CPU7に認識される。たとえば、投手キャラクタからボールがリリースされると、リリースされたボール(3次元ゲーム空間を移動するボール)を通過領域TRに投影する処理が、CPU7により実行される。そして、通過領域TRに投影されたボールの基準点BJ(重心、中心)の座標が、CPU7に認識される。すると、このボールの基準点の座標により規定されるボールの位置が、ボールの予想通過位置(通過位置)BJとしてCPU7に認識され、通過領域TRに設定される(S413)。すると、通過領域に投影されたボールが、ボールの予想通過位置(通過位置)BJに表示される。
すると、ボールの通過位置BJ(ボールの基準点)が通過領域TRに設定されると、通過領域TRのボールの基準点BJの方向に、ミートカーソルMの基準点MJ1を移動する命令が、打者キャラクタを制御するCPU7から発行される。すると、ミートカーソルMの基準点MJ1が、ボールの基準点BJの位置に移動する状態が、ミートカーソル用の画像データを用いて、テレビジョンモニタ20に表示される(S414)。ここで、ボールの通過位置BJは、3次元ゲーム空間を移動するボールが通過領域TRに近づくにつれて、通過領域TR上を移動している。
続いて、投手キャラクタからボールがリリースされてから所定の時間が経過したときに、打者キャラクタにスイング動作を開始させるための命令が、CPU7から発行される(S415)。ここで、打者キャラクタにスイング動作を開始させるための命令が、CPU7から発行されるタイミング、すなわち上記の所定の時間は、ゲームプログラムにおいて予め規定されている。すると、この命令が発行されたときにミートカーソルMが位置するコースの打者キャラクタの状態パラメータJ(i,j,kb)の値に応じて、打者キャラクタの能力パラメータの値を変更する処理が、CPU7により実行される(S416)。
具体的には、打者キャラクタの状態パラメータJ(i,j,k)の値が所定の値以上であった場合、たとえば、この状態パラメータJ(i,j,k)の値が「6」以上であった場合、打者キャラクタの選球眼用の能力パラメータN(i,j)の値に所定の値たとえば「1」を加算する処理が、CPU7により実行される。これにより、目が慣れているコースKRについては、打者キャラクタの選球眼も良くなるように能力が変更される。一方で、また、打者キャラクタの状態パラメータJ(i,j,k)の値が所定の値以下であった場合、たとえば、この状態パラメータJ(i,j,k)の値が「−6」以下であった場合、打者キャラクタの選球眼用の能力パラメータN(i,j)の値に所定の値たとえば「1」を減算する処理が、CPU7により実行される。これにより、目が慣れていないコースKRについては、打者キャラクタの選球眼も悪くなるように能力が変更される。
このようにして、状態パラメータJ(i,j,k)の値に応じて、打者キャラクタの選球眼という能力が変更されることにより、ボールに対する打者の目の慣れの状態が、打者の能力(選球眼)に及ぼす影響を、野球ゲームにおいても評価することができる。
また、打者キャラクタにスイング動作を開始させるための命令が、打者キャラクタを制御するCPU7から発行されたときには、打者キャラクタの状態パラメータJ(i,j,k)の値に応じて、ミートカーソルMの基準点MJ1を基準とした所定の範囲(バットの芯のブレ範囲)を設定する処理が、CPU7により実行される。そして、ミートカーソルMの基準点MJ1の位置を、ミートカーソルMの所定の範囲MRにおいてランダムに変更する処理が、CPU7により実行される(S417)。
たとえば、打者キャラクタがバットをスイング動作したときに生じる、ボールに対するバットの芯のブレが、打者キャラクタの状態パラメータJ(i,j,k)の値に基づいて設定される。具体的には、図5および図6に示すように、打者キャラクタの状態パラメータJ(i,j,k)の値が大きい場合(J=J1)、ミートカーソルMの基準点MJ1を基準とした所定の範囲MR1の半径br1の値が、比較的小さな値にCPU7により設定される。これにより、打者キャラクタがボールに対して目が慣れたコースでは、スイングによるバットの芯のブレを小さくすることができる。一方で、打者キャラクタの状態パラメータJ(i,j,k)の値が小さい場合(J=J2、J2<J1)、ミートカーソルMの基準点MJ1を基準とした所定の範囲MR2の半径br2の値が、比較的大きな値にCPU7により設定される。これにより、打者キャラクタがボールに対して目が慣れていないコースでは、スイングによるバットの芯のブレを大きくすることができる。
なお、図5および図6は、説明を容易にするために、ミートカーソルMの基準点MJ1を基準とした所定の範囲MRの半径が、2段階に設定される場合の例が示されている。しかしながら、状態パラメータJ(i,j,k)のしきい値(J1,J2,・・・)を多段階に設定することにより、ミートカーソルMの基準点MJ1を基準とした所定の範囲MRも多段階に設定されるようにしても良い。
このようにしてミートカーソルMの所定の範囲MRが設定されると、ミートカーソルMの基準点MJ1の位置が、ランダムにCPU7により変更される。たとえば、擬似乱数発生プログラムを用いて生成された乱数を、ミートカーソルMの基準点MJ1に加算する処理が、CPU7により実行される。そして、ミートカーソルMの基準点MJ1の座標に乱数を加算した後の座標が、新たなミートカーソルMの基準点MJ2(変更後のミートカーソルMの基準点)として、CPU7に認識されRAM12に格納される。
さらに、打者キャラクタにスイング動作を開始させるための命令が、打者キャラクタを制御するCPU7から発行されたときには、ミートカーソルMの基準点MJ2を含むコースKRが、動作対象コースKTRとしてCPU7に認識される(S418)。
たとえば、打者キャラクタにスイング動作を開始させるための命令がCPU7から発行されると、ミートカーソルMの基準点MJ2の座標が、4つの隅角部の座標により規定されるどのコースKRに含まれているか否かが、コースKRごとにCPU7により判断される。すなわち、ミートカーソルMの基準点MJ2のX座標がどのコースKRのX方向の範囲に位置しているかが、CPU7により判別される。そして、ミートカーソルMの基準点MJ2のY座標がどのコースKRのY方向の範囲に位置しているかが、CPU7により判別される。このようにして、ミートカーソルMの基準点MJ2がどのコースKRの範囲に含まれているかが絞り込まれる。そして、絞り込まれたコースKRに対応する変数i,jの値を、動作対象コース用の変数id,jdに割り当てる処理が、CPU7により実行される。すると、動作対象コース用の変数id,jdに対応するコースKRが、ミートカーソルMの基準点MJ2が位置するコースKTR(動作対象コース)として特定される。
そして、通過領域TRにおいてボールが通過した通過位置BJが、CPU7に認識される(S419)。すると、ボールの通過位置BJを含むコースKRが、対象コースKSRとしてCPU7に認識される。ここでは、上述したミートカーソルMの基準点MJ2が位置するコースKR(KTR)を特定した手段と同様に、投手キャラクタからリリースされたボールが通過領域TRに到達したときのボールの通過位置BJが、どのコースKRの範囲に含まれているか否かが、CPU7により判断される。そして、ボールの通過位置BJが位置するコースKRに対応する変数i,jの値を、対象コース用の変数it,jtに割り当てる処理が、CPU7により実行される。すると、対象コース用の変数it,jtに対応するコースKRが、ボールの通過位置BJが位置するコースKSR(対象コース)として特定される。
さらに、打者キャラクタにスイング動作を開始させるための命令が、CPU7から発行されたときには、投手キャラクタからリリースされたボールの通過領域TRにおけるボールの投影領域と、ミートカーソルMの表示領域とが重なっているか否かが、CPU7により判断される(S420)。すなわち、ボールの投影領域の内部の座標と、ミートカーソルMの表示領域の内部の座標とが一致しているか否かが、CPU7により判断される。そして、ボールの投影領域の内部の座標と、ミートカーソルMの表示領域の内部の座標とが一致した場合(S420でYes)、バットにボールが衝突したことになり、バットによりボールが打ち返される。一方で、ボールの投影領域の内部の座標と、ミートカーソルMの表示領域の内部の座標とが一致しなかった場合(S420でNo)、バットにボールが衝突しなかったことになり、打者キャラクタが空振りをしたことになる。この場合、打者キャラクタが空振りをした状態が、テレビジョンモニタ20に表示される(S423)。
たとえば、ボールの投影領域の内部の座標と、ミートカーソルMの表示領域の内部の座標とが一致した場合(S420でYes)、すなわちバットにボールが衝突した場合、投手キャラクタからリリースされたボールが通過領域を通過したときのボールの通過位置BJの座標と、打者キャラクタにスイング動作を開始させるための命令がCPU7から発行された後のミートカーソルMの基準点MJ2(変更後のミートカーソルMの基準点MJ2)の座標とに基づいて、ボールの通過位置BJと変更後のミートカーソルMの基準点MJ2との間の距離Lmを算出する処理が、CPU7により実行される。
そして、ボールの通過位置BJと変更後のミートカーソルMの基準点MJ2との間の距離Lmが算出されると、この距離Lmに応じて、ボールがバットの芯に衝突するか否かが、CPU7により判断される(S421)。そして、この距離Lmが所定の距離Lmo未満であるか否かをCPU7に判別させることにより、ボールがバットの芯に衝突するか否かが判断される。そして、この距離が所定の距離未満である場合(Lm<Lmo)、ボールがバットの芯に衝突したことになり、ライナー性の打球が飛球する状態が、テレビジョンモニタ20に表示される。一方で、この距離が所定の距離以上である場合(Lm≧Lmo)、ボールがバットの芯に衝突しなかったことになり、フライ又はゴロの打球が飛球する状態が、テレビジョンモニタ20に表示される(S422)。
なお、ここで用いられる所定の距離Lmoは、「0≦Lmo<br1,0≦Lmo<br2」の条件を有した値に設定されている。また、この所定の距離Lmoは、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。
すると、打者キャラクタがスイング動作を行った結果である打撃結果を示す結果データRDが、CPU7に認識される(S424)。たとえば、打者キャラクタの打撃結果が安打(ホームラン、ヒット、2塁打、3塁打)であった場合、この結果データRDには、たとえば数値「1」が割り当てられる。一方で、打者キャラクタの打撃結果が安打(ホームラン、ヒット、2塁打、3塁打)でなかった場合、この結果データRDには、たとえば数値「0」が割り当てられる。また、打者キャラクタの1プレイが終了した場合、たとえば打撃結果がアウトであった場合、結果データRDには、たとえば数値「−1」が割り当てられる。さらに、打者キャラクタが打撃中である場合、結果データRDには、たとえば数値「−2」が割り当てられる。
続いて、この結果データRDに基づいて、打者キャラクタの打撃結果が安打(ホームラン、ヒット、2塁打、3塁打)であったか否かが、CPU7により判断される(S425)。すなわち、結果データRDの値が「1」であるか否かが、CPU7により判断される。そして、結果データRDの値が「1」であった場合(S425でYes)、動作対象コースKTRの打者キャラクタの状態パラメータJ(id,jd,k)の値をRAM12に記録する処理が、CPU7により実行される(S426)。すると、後述するステップ429(S429)の処理が、CPU7により実行される。
一方で、打者キャラクタの打撃結果が安打(ホームラン、ヒット、2塁打、3塁打)ではなかった場合(S425でNo)、すなわち結果データRDの値が「0」であった場合、動作対象コースKTRの打者キャラクタの状態パラメータJ(id,jd,k)の値をRAM12に記録する処理は、CPU7により実行されない。この場合、打者キャラクタの1プレイが終了したか否かが、CPU7によりさらに判断される(S427)。そして、打者キャラクタの1プレイが終了した場合(S427でYes)、たとえば打撃データの値が「−1」であった場合、後述するステップ429(S429)の処理が、CPU7により実行される。
ここで、打者キャラクタの1プレイが終了していない場合(打撃中である場合、S427でNo)、たとえば打撃データの値が「−2」であった場合、対象コースKSRの打者キャラクタの状態パラメータJ(it,jt,k)の値を変更する処理が、CPU7により実行される(S428)。たとえば、投手キャラクタから投球されたボールの移動速度BVに対応する段階の、対象コースKSRの状態パラメータJ(it,jt,k1)の値が、CPU7により変更される。また、ボールの移動速度BVに対応する段階を除く他の段階の、対象コースKSRの状態パラメータJ(it,jt,k2)の値を、段階的に変更する処理が、CPU7により実行される。ここでは、「k1≠k2」である。
具体的には、投手キャラクタから投球されたボールの移動速度BVが「最高速」であった場合、対象コースKSRの状態パラメータJ(it,jt,1)の値に所定の値たとえば「2」が、CPU7により加算される。また、この場合、対象コースKSRの状態パラメータJ(it,jt,2),J(it,jt,3),J(it,jt,4),J(it,jt,5)それぞれの値に、ボールの移動速度BVに対応する段階に応じた値たとえば「1」,「0」,「−1」,「−2」が、CPU7により加算される。このようにして、対象コースKSRの打者キャラクタの状態パラメータJ(it,jt,k)の値が、CPU7により変更される。
より具体的には、捕手側から通過領域TRを見て、対象コースKSRが左下隅のコースであり、投手キャラクタから投球されたボールの移動速度BVが「最高速」であった場合、図9(a)に示すように、対象コースKSRの状態パラメータJ(1,1,1)の値に所定の値たとえば「2」が、CPU7により加算される。また、この場合、図9(b)〜図9(e)に示すように、対象コースKSRの状態パラメータJ(1,1,2),J(1,1,3),J(1,1,4),J(1,1,5)それぞれの値に、ボールの移動速度BVに対応する段階に応じた値たとえば「1」,「0」,「−1」,「−2」が、CPU7により加算される。たとえば、状態パラメータJ(i,j,k)に、デフォルト値として「0(ゼロ)」が割り当てられている場合、図8に示すように、状態パラメータは、「J(1,1,1)=2、J(1,1,2)=1,J(1,1,3)=0,J(1,1,4)=−1,J(1,1,5)=−2」となる。
ここでは、投手キャラクタから投球されたボールの移動速度BVが「最高速」であった場合(「k=1(=kt)」の場合)の例を示したが、他の速度の場合も、図7に示すように、対象コースKSRの状態パラメータJ(it,jt,kt)の値に、ボールの移動速度BVに対応する段階に応じた値がCPU7により加算される。
続いて、対象コースKSRの基準点を基準として、対象コースKSRの基準点から、対象コースKSRを除く複数のコースKRそれぞれの基準点までの距離に応じて、対象コースKSRを除く複数のコースKRそれぞれの打者キャラクタの状態パラメータJ(i,j,k)の値を変更する処理が、CPU7により実行される。詳細には、ボールの移動速度BVの各段階(k=1〜5)と対象コースKSRからの距離とに応じて、対象コースKSRを除く複数のコースKRそれぞれの打者キャラクタの状態パラメータJ(i,j,k)の値を変更する処理が、CPU7により実行される。ここでは、「i≠it、j≠jt、k=1〜5」である。
たとえば、ここでは、対象コースKSRを除く複数のコースKRそれぞれの打者キャラクタの状態パラメータJ(i,j,k)の値に、対象コースKSRからの距離に応じた値を加算する処理が、CPU7により実行される。
ここで加算される所定の値は、対象コースKSRを除く複数のコースKRそれぞれの打者キャラクタの状態パラメータJ(i,j,k)の配列の要素番号i,j,kに基づいて、決定される。たとえば、加算対象となる状態パラメータの要素番号が(i,j,k)である場合、「|it−i|」,「|jt−j|」,および「|kt−k|」の中の最大値がCPU7により算出される。ここで、ktは、投手キャラクタから投球されたボールの移動速度BVに対応する段階を示す。そして、ここで算出された最大値を、対象コースKSRを除く複数のコースKRそれぞれの打者キャラクタの状態パラメータJ(i,j,k)の値から減算する処理が、CPU7により実行される。言い換えると、ここで算出された最大値(所定の値)に負符号を付けた値を、対象コースKSRを除く複数のコースKRそれぞれの打者キャラクタの状態パラメータJ(i,j,k)の値に加算する処理が、CPU7により実行される。
具体的には、まず、対象コースKSRの状態パラメータJ(it,jt,kt)の3つの配列要素it,jt,ktから、加算対象となる状態パラメータJ(i,j,k)(i≠it、j≠jt)の3つの要素番号i,j,kを減算した値が、CPU7により算出される。そして、3つの算出結果の絶対値が、CPU7により算出される。そして、これら3つの絶対値の中の最大値が、CPU7により抽出される。そして、ここで抽出された最大値を、対象コースKSRの状態パラメータJ(it,jt,kt)(図9ではJ(1,1,1))の値に加算された数値「2」から減算する処理が、CPU7により実行される。すると、対象コースKSRを除く複数のコースKRそれぞれの打者キャラクタの状態パラメータJ(i,j,k)の値は、図9に示すような値に変更される。
本実施形態では、上記のように、打者キャラクタと投手キャラクタとの対戦が繰り返し実行される。そして、各打者キャラクタと投手キャラクタとの対戦が終了するごとに、試合を終了する命令が発行されたか否かが、CPU7により判断される(S429)。そして、試合を終了する命令が発行された場合(S429でYes)、次の試合で用いられる各種のデータをRAM12に格納する処理が行われる(S430)。一方で、試合を終了する命令が発行されない限り(S429でNo)、ステップ408(S408)以降の処理が、CPU7により再実行される。
上記のように処理することにより、ボールの球速およびボールのコースに応じて、打者キャラクタのボールに対する目の慣れの状態を、野球ゲームにおいて評価することができる。特に、ここでは、ボールの球速およびボールのコースに応じて、打者キャラクタのボールに対する目の慣れの状態を、野球ゲームにおいて累積評価することができる。これにより、現実世界における打者の感覚を、野球ゲームにおいても評価することができる。
〔他の実施形態〕
(a)前記実施形態では、ゲームプログラムを適用しうるコンピュータの一例としての家庭用ビデオゲーム装置を用いた場合の例を示したが、ゲーム装置は、前記実施形態に限定されず、モニタが別体に構成されたゲーム装置、モニタが一体に構成されたゲーム装置、ゲームプログラムを実行することによってゲーム装置として機能するパーソナルコンピュータやワークステーションなどにも同様に適用することができる。
(b)本発明には、前述したようなゲームを実行するプログラムおよびこのプログラムを記録したコンピュータ読み取り可能な記録媒体も含まれる。この記録媒体としては、カートリッジ以外に、たとえば、コンピュータ読み取り可能なフレキシブルディスク、半導体メモリ、CD−ROM、DVD、MO、ROMカセット、その他のものが挙げられる。
(c)前記実施形態では、打者キャラクタの打撃結果が安打(ホームラン、ヒット、2塁打、3塁打)であった場合に、動作対象コースKTRの打者キャラクタの状態パラメータJ(id,jd,k)の値が、RAM12に記録される場合の例が示された。
しかしながら、打者キャラクタの打撃結果に基づいて、打者キャラクタの状態パラメータJ(id,jd,k)の値を、RAM12に記録する形態は、前記実施形態に限定されず、どのようにしても良い。たとえば、打者キャラクタの1打席が終了した場合、すなわち打者キャラクタの打撃結果が安打又はアウトであった場合に、打者キャラクタの状態パラメータの最大値と、打者キャラクタの状態パラメータの最大値が設定されたコースとを、RAM12に記録するようにしても良い。この場合、打者キャラクタの1打席が終了したときに、打者キャラクタの目が最も慣れたコースを次の打席に引き継ぐことができる。