〔ゲーム装置の構成〕
図1は、本発明に係るゲームプログラムを適用しうるコンピュータの一例としての携帯ゲーム機1の外観図である。また、図2は、携帯ゲーム機1の一例としての制御ブロック図である。
携帯ゲーム機1は、図1に示すように、主に、本体2と、液晶モニタ部3と、基本操作部4と、マイク5と、スピーカ6とを備えている。モニタ部3は、本体2に設けられており、液晶モニタ3aを有している。ここでは、たとえば、液晶モニタ3aが、静電接触入力式のモニタすなわちタッチパネル式のモニタになっている。この液晶モニタ3aでは、タッチパネルの表面全体に電界が形成されている。そして、この状態のタッチパネルの表面に、指示手段たとえば指や導電性を有するペン等を、接触させると、液晶表面の表面電荷が変化する。そして、この表面電荷の変化が捕捉され、タッチパネル上の指やペン等の位置が検出される。ここでは、投影型のタッチパネルが用いられており、このタッチパネルでは多点同時検出が可能である。
基本操作部4は、ホームボタン4a、ボリュームポタン4b、およびスリープボタン4cを有している。ホームボタン4aは、本体2のタッチパネルの下部に設けられている。このホームボタン4aが押されると、ホーム画面が表示されたり、携帯ゲーム機1がスリープ状態から復帰したりする。ボリュームポタン4bは、本体2の側面上部に設けられている。このボリュームポタン4bの上部が押されると、音量が増加し、このボリュームポタン4bの下部が押されると、音量が減少する。スリープボタン4cは、本体2の上面に設けられている。このスリープボタン4cが押されると、携帯ゲーム機1がスリープ状態に移行する。
マイク5は、音出力用のマイク5aと、音入力用のマイク5bとを有している。音出力用のマイク5aは、本体2のタッチパネルの上部に設けられている。ゲームを実行する時や、電話通信する時や、音楽を聞く時等には、この音出力用のマイク5aから音が出力される。音入力用のマイク5bは、本体2に内蔵されており、本体2の下面に出力口が設けられている。電話通信する時や録音を行う時等には、この音入力用のマイク5bから音声が入力される。
スピーカ6は、本体2に内蔵されており、本体2の下面に出力口が設けられている。ゲームを実行する時や、音楽を聞く時や、録音を聞く時等には、このスピーカ6から音が出力される。なお、ゲーム機1には、イヤホンジャック等も設けられているが、これらについては説明を省略する。
また、携帯ゲーム機1は、図2に示すように、主に、制御部すなわち制御装置10と、通信部16と、記憶装置17とを、内部に有している。制御装置10は、マイクロプロセッサを利用したCPU(Central Processing Unit)11と、主記憶装置としてのROM(Read Only Memory)12と、RAM(Random Access Memory)13と、画像処理回路14と、サウンド処理回路15と、を有している。これらは、バス16を介してそれぞれが接続されている。
CPU11は、ゲームプログラムからの命令を解釈し、各種のデータ処理や制御を行う。ROM12は、ゲーム機1の基本的な制御(たとえば起動制御)に必要なプログラム等を格納する。RAM13は、CPU11に対する作業領域を確保する。画像処理回路14は、CPU11からの描画指示に応じてモニタ部3を制御して、液晶モニタ3aに所定の画像を表示する。また、画像処理回路14にはタッチ入力検出回路14aが含まれている。タッチパネルに指示手段たとえば指等を接触させたときに、接触信号がタッチ入力検出回路14aからCPU11へと供給され、接触位置がCPU11に認識される。また、液晶パネルに表示された対象物の位置において、タッチパネルに指示手段を接触させると、対象物の選択信号がタッチ入力検出回路14aからCPU11へと供給され、対象物がCPUに認識される。
サウンド処理回路15は、CPU11からの発音指示に応じたアナログ音声信号を生成して、音出力用のマイク5aおよび/又はスピーカ6に出力する。また、音入力用のマイク5bから音が入力されたときに、アナログ音声信号をデジタル音声信号に変換する。
通信部16は、ゲーム実行時にデータ通信するための通信機能や、携帯電話として通信するための通信機能等を有している。データ通信用の通信機能には、ローカルワイヤレスネットーワーク機能や、ワイヤレスLANによるインターネット接続機能等が、含まれている。
通信部16は、通信制御回路20と通信インターフェイス21とを有している。通信制御回路20および通信インターフェイス21は、バス16を介してCPU11に接続されている。通信制御回路20および通信インターフェイス21は、CPU11からの命令に応じて、ゲーム機1をローカルワイヤレスネットーワーク又はワイヤレスLANによるインターネットに接続するための接続信号を制御し発信する。また、電話による通話時には、通信制御回路20および通信インターフェイス21は、CPU11からの命令に応じて、ゲーム機1を電話回線に接続するための接続信号を制御し発信する。
記憶装置17は、本体2に内蔵されており、バス16に接続される。たとえば、記憶装置17には、記憶媒体としてのハードディスクやフラッシュメモリドライブ等が用いられる。
なお、バス16と各要素との間には必要に応じてインターフェイス回路が介在しているが、ここではそれらの図示は省略した。
以上のような構成のゲーム機1では、記憶装置17に格納されたゲームプログラムがロードされ、ロードされたゲームプログラムがCPU11で実行されることにより、プレイヤは様々なジャンルのゲームをモニタ部3上で遊戯することができる。また、通信制御回路20を介して、ワイヤレスネットワークにゲーム機1を接続したり、他のゲーム機と通信ケーブル等を介して接続したりすることで、他のゲーム機との間でデータのやり取りや対戦型のゲームを行うことができる。
〔本ゲームシステムにおける各種処理概要〕
本ゲームシステムにおいて実行されるゲームは、たとえば、野球ゲームである。ここでは、野球ゲームを実行するためのゲームプログラムは、記憶装置17に格納されている。そして、野球ゲームが実行されるときには、このゲームプログラムはRAM13にロードされ実行される。
このようにして実行される野球ゲームでは、タッチパネル式の液晶モニタ3a(以下、モニタ3aを呼ぶ)に、指示手段たとえば指を接触させることにより、各種の命令が指示される。図3は、本発明で主要な役割を果たす機能を説明するための機能ブロック図である。なお、本野球ゲームでは、1フレームは、1/60(sec)に対応している。
キャラクタ表示手段50は、投手キャラクタおよび打者キャラクタを、モニタ3aに表示する機能を備えている。
この手段では、投手キャラクタおよび打者キャラクタが、各キャラクタ用の画像データを用いて、モニタ3aに表示される。なお、たとえば、投手キャラクタは、後述するように、矢印用の表示領域に割り当てられた球種データが、CPU11に認識されたときに、投球動作を開始する。また、打者キャラクタは、後述するように、モニタ3aに対する指の接触によって、スイング動作を開始する。
第1領域設定手段51は、第1丸記号の移動を許可する第1領域を、モニタ3aに設定する処理を、CPU11に実行させる機能を備えている。
この手段では、第1丸記号の移動を許可する第1領域を、モニタ3aに設定する処理が、CPU11により実行される。ここでは、モニタ3a上の所定の範囲に第1領域を設定する処理が、CPU11により実行される。第1領域を設定するための所定の範囲は、モニタ3aの左下の隅角部を原点とした相対座標系において、定義される。たとえば、第1領域が矩形に設定される場合、モニタ3aの左下の隅角部を原点とした、第1領域の四隅の座標データが、CPU11に認識される。これにより、第1領域が設定される。なお、第1領域の四隅の座標データは、ゲームプログラムにおいて予め規定されており、ゲーム実行時にはRAM13に格納されている。
このような第1領域の内部には、後述するように、複数の球種用の矢印が、配置される。そして、第1領域の内部において、第1丸記号が移動する。この第1丸記号は、後述するように、球種用の矢印の中心に表示される投球コース指示用の丸記号に対応している。
第2領域設定手段52は、第2丸記号の移動を許可する第2領域を、第1領域とは異なる領域において、モニタ3aに設定する処理を、CPU11に実行させる機能を備えている。
この手段では、第2丸記号の移動を許可する第2領域を、第1領域とは異なる領域において、モニタ3aに設定する処理が、CPU11により実行される。ここでは、モニタ3a上の所定の範囲に第2領域を設定する処理が、CPU11により実行される。第2領域を設定するための所定の範囲は、モニタ3aの左下の隅角部を原点とした相対座標系において、定義される。たとえば、第2領域が矩形に設定される場合、モニタ3aの左下の隅角部を原点とした、第2領域の四隅の座標データが、CPU11に認識される。ここで、第2領域は、第1領域とは異なる領域に設定されるので、第2領域の四隅の座標データは、第1領域の四隅の座標データとは異なっている。このようにして、第2領域が設定される。なお、第2領域の四隅の座標データは、ゲームプログラムにおいて予め規定されており、ゲーム実行時にはRAM13に格納されている。
このような第2領域の内部において、第2丸記号が移動する。また、第2丸記号は、後述するように、たとえば投手キャラクタがボールを投球する前にボールの投球コースを設定するための投球コース用の丸記号に対応している。
なお、ボールの投球先から投手キャラクタを見る視線の画像をモニタ3aに表示する場合、第1領域は第2領域と同じ大きさに設定される。言い換えると、この場合、第2領域が第1領域と同じ大きさになるように、第2領域の四隅の座標データが、設定される。一方で、投手キャラクタからボールの投球先を見る視線の画像をモニタ3aに表示する場合、第2領域は第1領域より小さく設定される。言い換えると、この場合、第2領域が第1領域より小さくなるように、第2領域の四隅の座標データが、設定される。
移動形態認識手段53は、ボールの球種を規定するための球種データを、投手キャラクタからボールが投球される前に、CPU11に認識させる機能を備えている。
この手段では、ボールの球種を規定するための球種データが、投手キャラクタからボールが投球される前に、CPU11に認識される。ここでは、RAM13に格納された、投手キャラクタごとの所定の球種データが、CPU11に認識される。たとえば、野球ゲームにおいて複数の投手キャラクタが存在する場合、各投手キャラクタの所定の球種データが、CPU11に認識される。なお、各投手キャラクタの球種データは、ゲームプログラムにおいて予め規定されており、ゲーム実行時にはRAM13に格納されている。
領域設定手段54は、ボールの球種を指示するための指示領域を、モニタ3aに設定する処理を、CPU11に実行させる機能を備えている。
この手段では、ボールの球種を指示するための指示領域、たとえば矢印用の表示領域を、モニタ3aに設定する処理が、CPU11により実行される。ここでは、矢印用の表示領域、すなわちモニタ3a上において矢印が表示される領域を、設定する処理が、CPU11により実行される。たとえば、矢印が表示される領域は、モニタ3aの左下の隅角部を原点とした相対座標系において、所定の範囲に設定される。そして、この所定の範囲内の座標データをCPU11に認識させることにより、矢印が表示される領域が、設定される。
より具体的には、矢印を表示する領域は、第1領域の内部に設定される。また、矢印を表示する領域(所定の範囲)を規定するためのデータ、たとえば座標データは、ゲームプログラムにおいて規定されている。この領域を規定するための座標データは、ゲーム実行時にはRAM13に格納されている。
指示領域報知手段55は、矢印用の表示領域を報知するための報知子を、モニタ3aに表示する機能を備えている。
この手段では、矢印用の表示領域を報知するための報知子、たとえば球種用の矢印が、画像データを用いて、モニタ3aに表示される。ここでは、4つの球種用の矢印が、第1領域の内部の所定の位置において、モニタ3aに表示される。たとえば、第1領域の内部において移動する第1丸記号の周辺近傍、たとえば投球コース指示用の丸記号の周辺近傍において、球種用の矢印がモニタ3aに表示される。より具体的には、投球コース指示用の丸記号を中心として、4つの球種用の矢印それぞれが、上下左右に配置された状態で、モニタ3aに表示される。
なお、球種用の矢印が表示される位置は、ゲームプログラムにおいて予め規定されている。また、矢印用の画像データは、野球ゲームが実行されるときにRAM13にロードされ格納されている。
移動形態割当手段56は、球種を規定するための球種データを、第1領域の球種用の各矢印に割り当てる処理を、制御部に実行させる機能を備えている。詳細には、この手段は、球種データを矢印用の表示領域に割り当てる処理を、CPU11に実行させる機能を備えている。
この手段では、球種データを矢印用の表示領域に割り当てる処理が、CPU11により実行される。ここでは、球種データを矢印用の表示領域に対応付ける処理が、CPU11により実行される。たとえば、投球コース指示用の丸記号を中心として、4つの球種用の矢印それぞれが、上下左右に配置された状態で、モニタ3aに表示される場合、上矢印用の表示領域にはストレート用の球種データ、下矢印用の表示領域にはフォーク用の球種データ、左矢印用の表示領域にはカーブ用の球種データ、および右矢印用の表示領域にはシュート用の球種データが、対応付けられる。これにより、後述するように、球種用の矢印が、指示手段たとえば指により選択された場合に、球種用の矢印が表示される領域、すなわち矢印用の表示領域に割り当てられた球種データが、CPU11に認識される。
なお、各球種データが割り当てられる矢印は、ゲームプログラムにおいて予め規定されている。言い換えると、各球種データに対応する矢印の表示領域は、ゲームプログラムにおいて予め規定されている。たとえば、このような対応関係は、投手キャラクタごとに用意される対応テーブルによって規定されており、この対応テーブルはRAM13に格納されている。
第1表示子表示手段57は、ボールの投球コースを指示するための第1丸記号を、後述する投球コース用の丸記号とは異なる所定の位置において、モニタ3aに表示する機能を備えている。
この手段では、ボールの投球コースを指示するための第1丸記号、たとえば球種用の矢印の中心に表示される投球コース指示用の丸記号が、投球コース用の丸記号とは異なる所定の位置において、モニタ3aに表示される。
ここでは、投球コース指示用の丸記号が、丸記号用の画像データを用いて、第1領域の中心位置すなわち重心位置において、モニタ3aに表示される。より具体的には、投球コース指示用の丸記号の重心が、第1領域の重心に位置するように、投球コース指示用の丸記号が、モニタ3aに表示される。なお、丸記号用の画像データは、野球ゲームが実行されるときにRAM13にロードされ格納されている。
キャラクタ能力認識手段58は、選手キャラクタが有する能力を示す能力データを、CPU11に認識させる機能を備えている。
この手段では、選手キャラクタが有する能力を示す能力データが、CPU11に認識される。たとえば、本ゲームシステムで主要な役割を果たす能力としては、打者キャラクタのミート能力や選球眼能力等がある。これら打者キャラクタのミート能力や選球眼能力等を示す打者用の能力データは、打者キャラクタが登場するときに、CPU11に認識される。
なお、打者キャラクタの能力には、複数の能力が用意されており、能力の種類は、ゲームプログラムにおいて予め規定されている。また、以下では、本ゲームシステムに影響を及ぼす能力が、打者キャラクタのミート能力および選球眼能力である場合を、一例として、説明を行う。さらに、ここで用いられる打者用の能力データには、打者キャラクタごとに所定の値が割り当てられている場合を、一例として、説明を行う。
区分領域認識手段59は、ボールの内部領域に複数の区分領域を設定する処理を、CPU11に実行させる機能を備えている。
この手段では、ボールの内部領域に複数の区分領域を設定する処理が、CPU11により実行される。ここでは、ボールの内部領域に複数の区分領域を所定の割合で設定する処理が、CPU11により実行される。たとえば、ボールの内部領域において、所定の割合で上下方向に5分割された複数の区分領域が、CPU11に認識される。
移動傾向割当手段60は、複数の区分領域それぞれに、移動命令がCPU11から発行された後のボールの移動傾向を示す傾向データを割り当てる処理を、CPU11に実行させる機能を備えている。
この手段は、複数の区分領域それぞれに、移動命令がCPU11から発行された後のボールの移動傾向を示す傾向データを割り当てる処理が、CPU11により実行される。たとえば、上下方向に並ぶ5個の区分領域それぞれに対して、「ゴロ」、「ライナー」、「ホームラン」、「フライ」、および「チップ」のいずれか1つの移動傾向を示す傾向データが、CPU11により対応づけられる。なお、各区分領域と傾向データとの対応関係は、ゲームプログラムにおいて予め規定されている。たとえば、この対応関係は、対応テーブルによって規定されており、この対応テーブルはRAM13に格納されている。
区分領域変更手段61は、打者キャラクタが有する能力を示す能力データに基づいて、複数の区分領域の少なくともいずれか1つの大きさを、変更する処理を、CPU11に実行させる機能を備えている。
この手段では、打者キャラクタが有する能力を示す能力データに基づいて、複数の区分領域の少なくともいずれか1つの大きさを、変更する処理が、CPU11により実行される。ここでは、打者キャラクタが有する能力を示す能力データに基づいて、ボールの内部領域において区分領域が占める割合を変更する処理を、CPU11に実行させることにより、複数の区分領域の少なくともいずれか1つの区分領域の大きさが、変更される。
たとえば、打者キャラクタのミート能力や選球眼能力が高い場合、ボールの中心に近い区分領域(ex. 「ライナー」用の領域および「ホームラン」用の領域)が大きくなるように、複数の区分領域のうちの少なくともいずれか1つの区分領域の大きさが、変更される。一方で、打者キャラクタのミート能力や選球眼能力が低い場合、ボールの中心に近い区分領域(ex. 「ライナー」用の領域および「ホームラン」用の領域)の大きさが小さくなるように、複数の区分領域のうちの少なくともいずれか1つの区分領域の大きさが、変更される。なお、ボールの内部領域において区分領域を変更する所定の割合、たとえば変更後の各区分領域の大きさは、ゲームプログラムにおいて予め規定されている。
指示位置認識手段62は、指示手段がモニタ3aに接触したときに、指示手段がモニタ3aに接触した位置を示す座標データを、CPU11に認識させる機能を備えている。
この手段では、指示手段たとえば指がモニタ3aに接触したときに、指がモニタ3aに接触した位置を示す座標データが、CPU11に認識される。ここでは、投影型のタッチパネルが用いられており、指がモニタ3aに接触すると、指が接触した部分の電極パターンに基づいて電流量の比率が計測される。そして、この電流量の比率に基づいて、指の位置を示す座標データが、CPU11に検出され認識される。
なお、この手段は、プレイヤが、投手キャラクタに対して命令を指示する場合と、打者キャラクタに対して命令を指示する場合とにおいて、用いられる。また、ここでは、指示手段が指である場合の例を示すが、指示手段は、導電性を有するものであれば、どのようなものであっても良い。
移動形態選択手段63は、指が、複数の球種用の矢印のいずれか1つに位置した場合に、指が位置した矢印に割り当てられた前記移動形態データを、制御部に認識させる機能を備えている。詳細には、この手段は、指が、矢印用の表示領域の内部に位置した場合に、矢印用の表示領域に割り当てられた球種データを、CPU11に認識させる機能を備えている。
この手段では、指がモニタ3aに接触した位置が、矢印用の表示領域の内部である場合に、矢印用の表示領域に割り当てられた球種データが、CPU11に認識される。ここでは、指がモニタ3aに接触した位置を示す座標データが、矢印用の表示領域の境界の内側の座標データに一致した場合に、矢印用の表示領域に割り当てられた球種データが、CPU11に認識される。より具体的には、指がモニタ3aに接触した位置を示す座標データが、矢印用の表示領域の境界の内側の座標データに一致し、指がモニタ3aに接触した位置を示す座標データが、矢印用の表示領域の境界の内側の座標データに一致している時間が、所定の時間以上である場合に、指が位置した矢印用の表示領域に、割り当てられた球種データが、CPU11に認識され、RAM13に格納される。
記憶情報取消手段64は、データを認識する処理を中止する処理を、CPU11に実行させることにより、記憶情報を取り消す機能を備えている。
この手段では、データを認識する処理を中止する処理を、CPU11に実行させることにより、記憶情報が取り消される。ここでは、たとえば、指が矢印用の表示領域の内部に位置する時間が、所定の時間未満であった場合に、矢印用の表示領域に割り当てられた球種データの認識処理が、中止される。このため、短時間の間だけ、矢印の内部において指をモニタ3aに接触させたとしても、球種データはCPU11に認識されることがないため、プレイヤは、指をモニタ3aから短時間で離反させれば、容易に他の球種を再選択することができる。
送出動作表示手段65は、矢印用の表示領域に割り当てられた球種データが、CPU11に認識されたときに、ボールを投球する動作を、投手キャラクタに開始させるための命令を、CPU11に自動的に発行させることにより、投手キャラクタがボールを投球する動作を、モニタ3aに表示する機能を備えている。
この手段は、矢印用の表示領域に割り当てられた球種データが、CPU11に認識されたときに、ボールを投球する動作を、投手キャラクタに開始させるための命令を、CPU11に自動的に発行させることにより、投手キャラクタがボールを投球する動作が、モニタ3aに表示される。ここでは、矢印用の表示領域に割り当てられた球種データが、CPU11に認識されると、投手キャラクタが投球動作を自動的に開始する状態が、投手用の画像データを用いて、モニタ3aに表示される。なお、投手の画像データは、野球ゲームが実行されるときにRAM13にロードされ格納されている。
第1移動手段66は、指が、矢印用の表示領域の内部に位置した場合に、投球コース指示用の丸記号を指の位置に移動する処理を、CPU11に実行させることにより、投球コース指示用の丸記号を指の位置においてモニタ3aに表示する機能を備えている。
この手段では、指がモニタ3aに接触した位置が、矢印用の表示領域の内部である場合に、投球コース指示用の丸記号を指の位置に移動する処理が、CPU11により実行される。ここでは、指が矢印用の表示領域の内部に位置した場合、投球コース指示用の丸記号の座標データを、指がモニタ3aに接触した位置の座標データに変更する処理が、CPU11により実行される。これにより、指が、矢印用の表示領域の内部に位置すると、投球コース指示用の丸記号が、指がモニタ3aに接触した位置において、表示される。すなわち、投球コース指示用の丸記号が、第1領域の重心位置から、指がモニタ3aに接触した位置へと、移動する。
報知子消去手段67は、投球コース指示用の丸記号が指の位置においてモニタ3aに表示されたときに、報知子をモニタ3aから消去する機能を備えている。
この手段では、投球コース指示用の丸記号が指の位置においてモニタ3aに表示されたときに、球種用の矢印(報知子)が、モニタ3aから消去される。ここでは、投球コース指示用の丸記号が、指がモニタ3aに接触した位置において、モニタ3aに表示されると、球種用の矢印をモニタ3aから消去するための命令が、CPU11から発行され、球種用の矢印が、モニタ3aから消去される。
第2表示子表示手段68は、ボールの目標位置を設定するための第2丸記号を、モニタ3aに表示する機能を備えている。
この手段では、ボールの目標位置を設定するための第2丸記号、たとえば投手キャラクタがボールを投球する前にボールの投球コースを設定するための投球コース用の丸記号が、モニタ3aに表示される。ここでは、投球コース用の丸記号が、丸記号用の画像データを用いて、第2領域の中心位置すなわち重心位置において、モニタ3aに表示される。より具体的には、投球コース用の丸記号の重心が、第2領域の重心に位置するように、投球コース用の丸記号が、モニタ3aに表示される。なお、丸記号用の画像データは、野球ゲームが実行されるときにRAM13にロードされ格納されている。
第2移動手段69は、指をモニタ3aに接触させた状態において、指をスライドさせたときに、投球コース指示用の丸記号を移動中の指の位置に移動する処理を、CPU11に実行させることにより、投球コース指示用の丸記号を移動中の指の位置においてモニタ3aに表示する機能を備えている。
この手段では、指をモニタ3aに接触させた状態においてスライドさせたときに、投球コース指示用の丸記号を、移動中の指の位置に移動する処理が、CPU11により実行される。ここでは、指をモニタ3aに接触させた状態においてスライドさせると、モニタ3a上において連続的に移動する指の位置を示す座標データが、CPU11に認識される。このときに、投球コース指示用の丸記号の座標データを、ここでCPU11に認識された座標データに変更する処理が、CPU11により実行される。これにより、指をモニタ3a上でスライドさせたときに、指の移動に連動して、投球コース指示用の丸記号が、モニタ3a上で移動する。なお、この処理は、1フレームごとにCPU11により実行される。
第3移動手段70は、投球コース指示用の丸記号の移動に連動して投球コース用の丸記号を移動する処理を、CPU11に実行させることにより、投球コース用の丸記号が、投球コース指示用の丸記号とは異なる位置で、投球コース指示用の丸記号の移動方向に移動する状態を、モニタ3aに表示する機能を備えている。
この手段では、投球コース指示用の丸記号の移動に連動して投球コース用の丸記号を移動する処理が、CPU11により実行される。ここでは、投球コース指示用の丸記号が移動すると、投球コース指示用の丸記号とは異なる位置に表示された投球コース用の丸記号を移動する処理が、CPU11により実行される。たとえば、第2領域と第1領域とが同じ大きさである場合、投球コース指示用の丸記号とは異なる位置に表示された投球コース用の丸記号を、投球コース用の丸記号のベクトルの方向に、投球コース用の丸記号のベクトルと同じ大きさの移動量で、移動する処理が、CPU11により実行される。また、第2領域が第1領域より小さい場合、投球コース指示用の丸記号とは異なる位置に表示された投球コース用の丸記号を、投球コース指示用の丸記号のベクトルの方向に、移動する処理が、CPU11により実行される。この場合は、投球コース用の丸記号を移動するときの移動量には、投球コース指示用の丸記号のベクトルの大きさに、1より小さな所定の係数を乗じることによって算出される移動量が、用いられる。このようにして、投球コース用の丸記号が、投球コース指示用の丸記号とは異なる位置で、投球コース指示用の丸記号の移動方向に移動する状態が、モニタ3aに表示される。なお、この処理は、1フレームごとにCPU11により実行される。
目標位置設定手段71は、投球コース用の丸記号の位置を示す座標データを、ボールの投球コースの座標データとして、CPU11に認識させることにより、ボールの投球コースを設定する機能を備えている。
この手段では、投球コース用の丸記号の位置を示す座標データを、ボールの投球コースの座標データとして、CPU11に認識させることにより、ボールの投球コースが設定される。ここでは、投球コース用の丸記号の位置を示す座標データが、1フレームごとに、ボールの投球コースの座標データとして、CPU11に認識され、RAM13に格納される。
第1経路計算手段72(経路計算手段)は、投手キャラクタからボールを投球する命令が、CPU11から発行されたときに、球種データおよびボールの投球コースの座標データに基づいて、ボールの第1経路を計算する処理を、CPU11に実行させる機能を備えている。
この手段では、投手キャラクタからボールを投球する命令が、CPU11から発行されたときに、球種データおよびボールの投球コースの座標データに基づいて、ボールの第1経路(投手キャラクタがリリースするボールの経路)を計算する処理が、CPU11により実行される。ここでは、ボールをリリースする命令が、CPU11から発行されると、ボールの放出位置の座標データおよびボールの放出角度を示す角度データが、CPU11に認識される。すると、ボールの放出位置の座標データ、ボールの放出角度を示す角度データ、球種データ、ボールの投球コースの座標データ等を、ボールの軌道方程式に代入する処理が、CPU11により実行される。このようにして、ボールの軌道方程式が設定される。このボールの軌道方程式を求める処理が、ボールの第1経路を計算する処理に対応している。
なお、ここでの処理は、次のように、解釈することもできる。プレイヤが、打者キャラクタに対して命令を指示する前、すなわち、プレイヤが、打者キャラクタに対して命令を指示するために指をモニタ3aに触れる前に、球種データおよびボールの投球コースの座標データに基づいて、ボールの第1経路(投手キャラクタがリリースするボールの経路)を計算する処理が、CPU11により実行される。
ここでは、ボールの軌道方程式は、ゲームプログラムにおいて予め規定されており、ゲーム実行時にはRAM13に格納されている。また、このボールの軌道方程式は、位置と時間の関数になっており、このボールの軌道方程式を構成する変数および定数も、ゲームプログラムにおいて予め規定されている。
第1オブジェクト位置認識手段73(オブジェクト位置認識手段)は、ボールの位置を示す座標データを、CPU11に認識させる機能を備えている。詳細には、この手段は、第1経路を移動するボールの位置を示す座標データを、CPU11に認識させる機能を備えている。
この手段では、投手キャラクタからボールを投球する命令が、CPU11から発行されたときに、第1経路を移動するボールの位置を示す座標データが、CPU11に認識される。ここでは、投球コース指示用の丸記号が指の位置に移動した時点から、所定の時間が経過した場合に、投手キャラクタからボールを投球する命令が、CPU11から自動的に発行される。すると、位置と時間の関数であるボールの軌道方程式において、ボールの放出位置の時間を基準として、時間を1フレームずつ進行させることにより、第1経路上における各フレームのボールの位置が、算出される。すると、ボールの軌道方程式によって規定される第1経路を移動するボールの位置を示す座標データが、1フレームごとに、CPU11に認識される。
第1オブジェクト表示手段74(オブジェクト表示手段)は、ボールの位置を示す座標データに基づいて、ボールをモニタ3aに表示する機能を備えている。詳細には、この手段は、第1経路上の座標データに基づいて、第1経路を移動するボールを、モニタ3aに表示する機能を備えている。
この手段では、ボールの軌道方程式により規定される第1経路上のボールの座標データに基づいて、第1経路を移動するボールが、モニタ3aに表示される。ここでは、第1経路上のボールの座標データに対応する位置に、ボールの中心(重心)を配置することによって、第1経路を移動するボールが、モニタ3aに表示される。ここでは、ボールの軌道方程式によって規定される第1経路上の座標データが、1フレームごとに、CPU11に認識されると、この座標データに対応する位置に、ボールの中心が配置され、このボールがモニタ3aに表示される。
ボール領域認識手段75は、第1経路上のボールの座標データに基づいてモニタ3aに表示されるボールの内部領域を、CPU11に認識させる機能を備えている。
この手段では、第1経路上のボールの座標データに基づいてモニタ3aに表示されたボールの内部領域が、CPU11に認識される。ここでは、モニタ3aに表示されたボールの内部領域、すなわち複数の区分領域から構成されるボールの内部領域が、CPU11に認識される。
時間認識手段76は、指がモニタ3aに接触した時点から、所定の時間が経過したときの時間を示す時間データを、CPU11に認識させる機能を備えている。
この手段では、指がモニタ3aに接触した時点から、所定の時間が経過したときの時間を示す時間データが、CPU11に認識される。ここでは、打者キャラクタに対する命令を指示するときに、モニタ3aに対する指の接触が最初に検出された時点から、所定の時間が経過したときの時間を示す時間データが、CPU11に認識される。ここで、モニタ3aに対する指の接触が最初に検出された時点は、打者キャラクタがスイングを開始する時点に対応する。また、モニタ3aに対する指の接触が最初に検出された時点から、所定の時間が経過したときの時点までの時間は、打者キャラクタがスイングを開始してからボールを捉えるまでの時間に対応する。なお、所定の時間は、ゲームプログラムにおいて予め規定されており、所定の時間に対応するデータは、ゲーム実行時にはRAM13に格納されている。
スライド距離算出手段77は、指がモニタ3aに接触した状態においてスライドしたときに、指がモニタ3aに接触した位置を基準として、指のスライド距離を算出する処理を、CPU11に実行させる機能を備えている。
この手段では、指がモニタ3aに接触した状態においてスライドしたときに、指がモニタ3aに接触した位置を基準として、指のスライド距離を算出する処理が、CPU11により実行される。ここでは、指がモニタ3aに最初に接触した位置を示す座標データと、スライド後の指の位置を示す座標データとに基づいて、指がモニタ3a上でスライドしたときのスライド距離を示すスライド距離データが、CPU11により算出される。たとえば、指がモニタ3aから離反したとき、すなわち指がモニタ3aに接触しているときにモニタ3aから発行される接触信号が消失したときに、上記の座標データをピタゴラスの定理に代入する処理を、CPU11に実行させることにより、指のスライド距離データが算出される。
スライド速度算出手段78は、指がモニタ3aに接触した状態においてスライドしたときに、指のスライド速度を算出する処理を、CPU11に実行させる機能を備えている。
この手段では、指がモニタ3aに接触した状態においてスライドしたときに、指のスライド速度を示すスライド速度データを算出する処理が、CPU11により実行される。ここで算出されるスライド速度は、野球ゲームにおいては、スイング速度に対応するものである。ここでは、指がモニタ3aに最初に接触した位置を示す座標データと、スライド後の指の位置を示す座標データと、スライド時間を示すスライド時間データとに基づいて、指のスライド速度データを算出する処理が、CPU11により実行される。たとえば、指がモニタ3aから離反したとき、すなわち指がモニタ3aに接触しているときにモニタ3aから発行される接触信号が消失したときに、スライド距離データおよびスライド時間データに基づいて、指のスライド速度データ(=スライド距離データ/スライド時間データ)が、CPU11により算出される。なお、指がモニタ3aに最初に接触した時点から、指がモニタ3aから離反した時点までの時間に対応する時間データ、すなわちスライド時間データは、1フレームごとにCPU11によりカウントされている。
動作形態設定手段79は、スライド距離に応じて、ボールに対する打者キャラクタのスイング形態を設定する処理を、CPU11に実行させる機能を備えている。
この手段では、スライド距離に応じて、ボールに対する打者キャラクタのスイング形態を設定する処理が、CPU11により実行される。ここでは、スライド距離に応じたスイング形態が、設定される。たとえば、「コンパクトスイング」、「普通スイング」、および「フルスイング」の中のいずれか1つのスイング形態が、スライド距離の大きさに応じて、設定される。なお、スライド距離の大きさとスイング形態との対応関係は、ゲームプログラムにおいて予め規定されている。たとえば、この対応関係は、対応テーブルによって規定されており、この対応テーブルはRAM13に格納されている。
判定領域設定手段80は、指がモニタ3aに接触した位置を示す座標データに基づいて、ボールの領域に対する指の位置を判断するための判定領域を設定する処理を、CPU11に実行させる機能を備えている。
この手段では、指がモニタ3aに接触した位置を示す座標データに基づいて、ボールの領域に対する指の位置を判断するための判定領域を設定する処理が、CPU11により実行される。ここでは、スイング形態に応じて、指がモニタ3aに接触した位置を示す座標データに基づいて、判定領域を設定する処理が、CPU11により実行される。この判定領域は、打者キャラクタがスイング動作を行ったときにボールに影響を与える領域、すなわちボールに対する打者キャラクタの影響領域に対応している。この判定領域(影響領域)は、指がモニタ3aに最初に接触した位置を基準として、モニタ3aに設定される。
ここでは、スイング形態が示す動作が大きくなるにつれて、判定領域が小さくなるように、判定領域を設定する処理が、CPU11により実行される。たとえば、「コンパクトスイング」、「普通スイング」、「フルスイング」の順に、スイング動作は大きくなるので、「コンパクトスイング」、「普通スイング」、「フルスイング」の順に、判定領域が小さくなるように、判定領域がCPU11により設定される。より具体的には、判定領域が円である場合、「コンパクトスイング」、「普通スイング」、「フルスイング」の順に、判定領域の半径を小さくすることによって、判定領域が設定される。すなわち、ここでは、コンパクトスイング用の基準判定領域、普通スイング用の基準判定領域、およびフルスイング用の基準判定領域が、CPU11により設定される。なお、各スイング形態と判定領域の大きさ(ex. 半径)との対応関係は、ゲームプログラムにおいて予め規定されている。たとえば、この対応関係は、対応テーブルによって規定されており、この対応テーブルはRAM13に格納されている。
判定領域調節手段81は、スライド距離が所定の値より大きい場合に、スライド距離が大きくなるにつれて、判定領域が小さくなるように、判定領域を調節する処理を、CPU11に実行させる機能を備えている。
この手段では、スライド距離が所定の値より大きい場合に、スライド距離が大きくなるにつれて、判定領域の大きさが小さくなるように、判定領域を調節する処理が、CPU11により実行される。ここでは、判定領域が円である場合、スライド距離が所定の値より大きい場合に、スライド距離が大きくなるにつれて、判定領域の半径が小さくなるように、判定領域がCPU11により調節される。たとえば、スライド距離が所定の値より大きく、スイング形態が「普通スイング」である場合、スライド距離が大きくなるにつれて、普通スイング用の基準判定領域の半径が小さくなるように、判定領域がCPU11により調節される。また、スライド距離が所定の値より大きく、スイング形態が「フルスイング」である場合、スライド距離が大きくなるにつれて、フルスイング用の基準判定領域の半径が小さくなるように、判定領域がCPU11により調節される。
位置関係判断手段82は、モニタ3aに表示されたボールと判定領域との位置関係を判断する処理を、CPU11に実行させる機能を備えている。
この手段では、モニタ3aに表示されたボールと判定領域との位置関係を判断する処理が、CPU11により実行される。また、この手段では、モニタ3aに表示されたボールと調節後の判定領域との位置関係を判断する処理が、CPU11により実行される。ここでは、打者キャラクタに対してスイングの開始を指示するために、指をモニタ3aに接触させた時点から、所定の時間が経過したときに(時間認識手段において設定された時間データが示す時間が経過したときに)、モニタ3aに表示されるボールと、判定領域との位置関係を判断する処理が、CPU11により実行される。なお、指がモニタ3aに接触した時点のボールの位置を基準として、所定の時間が経過したときのボールの位置は、上述した軌道方程式を用いて、既に決定されている。
移動命令発行手段83は、ボールの領域と判定領域とが重なると判断された場合に、ボールの位置を異なる位置に移動する移動命令を、CPU11に発行させる機能を備えている。
この手段では、ボールの領域と判定領域とが重なると判断された場合に、ボールの位置を異なる位置に移動する移動命令が、CPU11から発行される。ここでは、ボールの領域と判定領域とが重なると判断された場合、すなわち打者キャラクタによりボールが打ち返された場合、ボールの位置を異なる位置に移動する移動命令が、CPU11から発行される。より具体的には、ボールの領域と判定領域とが重なり、指がモニタ3aに接触した状態で移動することによって、位置関係判断機能において判断されたオブジェクトの領域と判断領域との位置関係に基づいて、ボールの位置を異なる位置に移動する移動命令が、CPU11から発行される。
位置関係報知手段84は、移動命令がCPU11から発行された場合に、ボールに対する指の位置を報知する画像を、モニタ3aに表示する機能を備えている。
この手段では、移動命令がCPU11から発行された場合に、ボールに対する指の位置を報知する画像が、モニタ3aに表示される。ここでは、移動命令がCPU11から発行された場合に、判定領域がボールの領域に重なった部分に対応する区分領域を報知するための画像が、モニタ3aに表示される。具体的には、移動命令がCPU11から発行されると、打たれた瞬間のボールの残像画像と、判定領域がボールの領域に重なった部分を示す区分領域を報知する画像とが、モニタ3aに表示される。
第2経路計算手段85は、ボールと判定領域とが重なると判断された場合に、ボールの第2経路を計算する処理を、CPU11に実行させる機能を備えている。
この手段では、ボールと判定領域とが重なると判断された場合に、ボールの第2経路(打者キャラクタが打ち返したボールの経路)を計算する処理が、CPU11により実行される。詳細には、ボールと判定領域とが重なると判断され、移動命令がCPU11から発行された場合に、ボールの第2経路を計算する処理が、CPU11により実行される。より詳細には、ボールと判定領域とが重なると判断され、移動命令がCPU11から発行された場合に、すなわち打者キャラクタによりボールが打ち返される場合に、スイング形態およびスライド速度に基づいて、ボールの第2経路を計算する処理が、CPU11により実行される。ここでの第2経路の計算には、判定領域がボールの領域に重なった部分に対応する区分領域に割り当てられた傾向データが、考慮される。
ここでは、判定領域がボールの領域に重なった部分に対応する区分領域に割り当てられた傾向データに基づいて、打ち返されたボールの飛球形態の傾向を設定する処理が、CPU11により実行される。そして、スイング形態に対応するボールの初速度を設定する処理、およびボールの初速度に基づいてボールの第2経路を計算する処理が、CPU11により実行される。より具体的には、飛球形態に対応するボールの放出角度を設定する処理、スイング形態に対応するボールの初速度を設定する処理、スライド速度に基づいてボールの初速度を補正する処理、および補正後のボールの初速度に基づいてボールの第2経路を計算する処理が、CPU11により実行される。
たとえば、打者キャラクタによりボールが打ち返された場合は、判定領域がボールの領域に重なった部分に対応する区分領域に割り当てられた傾向データ、たとえば「ゴロ」、「ライナー」、「ホームラン」、「フライ」、および「チップ」のいずれか1つの移動傾向を示す傾向データに基づいて、打球の放出角度が設定される。ここでは、「ゴロ」、「ライナー」、「ホームラン」、「フライ」、「チップ」の順に、角度が大きくなるように、打球の放出角度が設定される。また、打者キャラクタによりボールが打ち返された場合は、「コンパクトスイング」、「普通スイング」、「フルスイング」の順に、速度が大きくなるように、ボールの初速度データが、CPU11により設定される。また、打者キャラクタによりボールが打ち返された場合は、スイング速度が大きいほど、打球の速度が大きくなる。このため、スライド速度データが大きいほど、スイング形態ごとに設定されたボールの初速度データがさらに大きくなるように、ボールの初速度が、CPU11により補正される。たとえば、スイング形態に対応するボールの初速度を、基準初速度とすると、この基準初速度がスイング速度に応じて補正される。そして、補正後のボールの初速度に基づいて、ボールの第2経路を計算する処理が、CPU11により実行される。なお、スイング形態とボールの初速度との対応関係、およびスイング速度と補正係数との対応関係は、ゲームプログラムにおいて予め規定されている。たとえば、この対応関係は、対応テーブルによって規定されており、この対応テーブルはRAM13に格納されている。
ボールの第2経路すなわち打者キャラクタが打ち返したボールの経路は、打球用の軌道方程式を用いて設定される。ボールの軌道方程式は、位置と時間の関数になっている。このボールの軌道方程式、およびこのボールの軌道方程式を構成する変数および定数は、ゲームプログラムにおいて予め規定されている。この軌道方程式に、補正後のボールの初速度、ボールの放出位置の座標データ、およびボールの放出角度を示す角度データ等を代入する処理が、CPU11により実行される。このようにして、打球用の軌道方程式が設定される。この打球用の軌道方程式を求める処理が、ボールの第2経路を計算する処理に対応している。
第2オブジェクト位置認識手段86は、第2経路を移動するボールの位置を示す座標データを、CPU11に認識させる機能を備えている。
この手段では、第2経路を移動するボールの位置を示す座標データが、CPU11に認識される。ここでは、位置と時間の関数である打球用の軌道方程式において、ボールの放出位置の時間を基準として、時間を1フレームずつ進行させることにより、第2経路上における各フレームのボールの位置が、算出される。すると、打球用の軌道方程式によって規定される第2経路を移動するボールの位置を示す座標データが、1フレームごとに、CPU11に認識される。
第2オブジェクト表示手段87は、第2経路上の座標データに基づいて、第2経路を移動するボールを、モニタ3aに表示する機能を備えている。
この手段では、第2経路上の座標データに基づいて、第2経路を移動するボールが、モニタ3aに表示される。ここでは、打球用の軌道方程式によって規定される第2経路を移動するボールの座標データが、1フレームごとに、CPU11に認識されると、この座標データ示す位置において、ボールがモニタ3aに表示される。
位置関係非報知手段88は、ボールの領域と判定領域とが重ならないと判断された場合に、ボールに対する指の位置を報知する命令を、CPU11に発行させない機能を備えている。
この手段では、ボールの領域と判定領域とが重ならないと判断された場合に、ボールに対する指の位置を報知する処理を規制する命令が、CPU11から発行される。すなわち、ボールの領域と判定領域とが重ならないと判断された場合には、ボールに対する指の位置が報知されなくなる。具体的には、ボールを打ち返すことができなかった場合には、ボールに対する指の位置が報知されない。
〔野球ゲームにおける命令指示システムの概要〕
次に、野球ゲームにおける命令指示システムの具体的な内容について説明する。また、図21および図22に示すフローについても同時に説明する。なお、図21は野球ゲームの全体概要を説明するためのフローであり、図22は上記システムを説明するためのフローである。
まず、携帯ゲーム機1の電源が投入され、携帯ゲーム機1が起動されると、野球ゲームプログラムが、記憶装置17たとえばハードディスクから、RAM13にロードされ格納される。このときには、野球ゲームを実行する上で必要となる各種の基本ゲームデータも、同時に、記憶装置17からRAM13にロードされ格納される(S1)。
たとえば、基本ゲームデータには、ゲーム空間用の各種の画像に関するデータが含まれている。ゲーム空間用の各種の画像に関するデータには、たとえば、スタジアム用のモデルデータ、選手キャラクタ用のモデルデータ、および各種のオブジェクトのモデルデータ等が、含まれている。また、基本ゲームデータには、ゲーム空間用のモデルデータをゲーム空間に配置するための位置座標データが、含まれている。また、基本ゲームデータには、ゲーム空間に配置されたモデルを、モニタ3aに表示するための画像データが、含まれている。さらに、基本ゲームデータには、本システムで用いられる他の各種データも、含まれている。
続いて、RAM13に格納された野球ゲームプログラムが、基本ゲームデータに基づいて、CPU11により実行される(S2)。すると、野球ゲームの起動画面がモニタ3aに表示される。すると、野球ゲームを実行するための各種の設定画面がモニタ3aに表示される。ここでは、たとえば、野球ゲームのプレイモードを選択するためのモード選択画面が、モニタ3aに表示される(図示しない)。このモード選択画面に表示された複数のプレイモードの中から、いずれか1つのプレイモードを選択することによって、プレイモードが決定される(S3)。プレイモードには、たとえば、12球団の中からチームを選択して1試合の対戦を楽しむ対戦モード、および12球団の中からチームを選択してペナントレースを戦うペナントモード等が、用意されている。そして、対戦モード用のボタン又はペナントモード用のボタンの位置において、指をモニタ3aに接触させることによって、プレイモードは選択される。
続いて、モード選択画面で選択されたプレイモードにおいて、各種のイベントが、CPU11により実行される(S4)。ここで実行される各種のイベントには、たとえば、自動制御プログラム(AIプログラム、Artificial Intelligence Program)に基づいてCPU11により自動制御されるイベントや、プレイヤがモニタ3aに指を接触することによって入力された入力情報(信号)に基づいてプレイヤにより手動制御されるイベントがある。また、選手キャラクタの制御には、自動制御プログラムに基づいて選手キャラクタに命令を自動的に指示する自動制御や、モニタ3aからの入力信号に基づいて選手キャラクタに命令を指示する手動制御等がある。このように、本野球ゲームでは、モニタ3aからの指示や自動制御プログラムからの指示に応じて、イベントが制御されたり、選手キャラクタに命令が指示されたりするようになっている。
なお、ここに示す自動制御プログラムは、野球ゲームプログラムに含まれている。また、この自動制御プログラムとは、プレイヤに代わって、イベントに関する命令および選手キャラクタに対する命令を自動的に制御するためのプログラムである。この自動制御プログラムは、プレイ状況に応じて、各種命令をCPU11に指示する。
続いて、選択されたプレイモードが終了したか否かが、CPU11により判断される(S5)。具体的には、プレイモードが終了したことを示す命令が発行されたか否かが、CPU11により判断される。そして、プレイモードが終了したことを示す命令が発行されたとCPU11により判断された場合(S5でYes)、ゲーム継続用のデータをRAM13に格納する処理が、CPU11により実行される。そして、ゲーム継続用のデータがRAM13に格納されると、この野球ゲームを終了するか否かを選択する選択画面が、モニタ3aに表示される(S6)。そして、この選択画面において、プレイヤが自分の指をモニタ3aに接触させることにより、野球ゲームの終了を示す項目が選択されると(S6でYes)、野球ゲームを終了するための処理がCPU11により実行される(S7)。一方で、この選択画面において、プレイヤが自分の指をモニタ3aに接触させることにより、野球ゲームの継続を示す項目が選択されると(S6でNo)、ステップ3(S3)のモード選択画面が、モニタ3aに再表示される。
なお、プレイモードが終了するための命令が発行されたとCPU11に判断されない限り(S5でNo)、モード選択画面で選択されたプレイモードにおいて、各種のイベントがCPU11により繰り返し実行される(S4)。
次に、プレイモードとして対戦モードが選択された場合を一例として、命令指示システムの詳細を説明する。また、図22に示すフローについても同時に説明する。以下では、自動制御プログラムが、先攻であるAチームの選手キャラクタに対して命令を指示し、プレイヤが、後攻であるBチームの選手キャラクタに対して命令を指示する場合の例が、示される。
モード選択画面において対戦モードが選択され(S11)、対戦チームが選択されると、各チームのスターティングメンバーを設定するためのメンバー設定画面が、モニタ3aに表示される。このメンバー設定画面において、Aチームの選手キャラクタは自動制御プログラムにより選択され、Bチームの選手キャラクタはプレイヤにより選択される(S12)。たとえば、図4に示すように、モニタ3aに表示された選手リストの中から、プレイヤが所望する各ポジションの選手キャラクタを、指で選択する。そして、この状態において指をスターティングメンバーリストへとスライドすることによって、選択された選手キャラクタが、スターティングメンバーリストに加えられる。この操作を繰り返すことによって、Bチームのスターティングメンバーが設定される。このように、プレイヤが所望する順序で上から下に並べることで、Bチームの打順が決定される。なお、Aチームの選手キャラクタのポジションおよび打順は、自動制御プログラムによって自動的に決定される。
このようにして、スターティングメンバーが決定されると、図5に示すように、投手キャラクタおよび打者キャラクタが、各キャラクタ用の画像データを用いて、モニタ3aに表示される(S13)。また、プレイヤは、モニタ3aの右上隅角部のボタンを選択することによって、図6に示すように、投手キャラクタに対する命令を、投手視線から指示することも可能となっている。なお、プレイヤは、モニタ3aの右上隅角部のボタンを再選択することによって、図5に示した、捕手視線から見た画像を、モニタ3aに再表示することができる。
続いて、投球コース指示用の丸記号の移動を許可する第2領域RG2を、モニタ3aに設定する処理が、CPU11により実行される(S14)。ここでは、図5に示すように、第2領域RG2が、モニタ3aの左下の範囲において、矩形状に設定されている。モニタ3aの左下の隅角部を原点Oとした、第2領域RG2の四隅の所定の座標データを、CPU11に認識させることにより、この第2領域RG2は設定される。第2領域RG2は、モニタ3aには非表示である(図5および図6では破線表示)。後述するように、この第2領域RG2の内部において、投球コース用の丸記号M2は移動する。
なお、本実施形態では、モニタ3a上の座標は、モニタ3aの左下隅角部を原点Oとして、定義されている。
また、投球コース指示用の丸記号M1の移動を許可する第1領域RG1を、第2領域RG2とは異なる領域において、モニタ3aに設定する処理が、CPU11により実行される(S15)。ここでは、図5に示すように、第1領域RG1が、モニタ3aの右上の範囲において、矩形状に設定されている。モニタ3aの左下の隅角部を原点Oとした、第1領域RG1の四隅の所定の座標データを、CPU11に認識させることにより、この第1領域RG1は設定される。第1領域RG1は、モニタ3aには非表示である(図5および図6では破線表示)。後述するように、この第1領域RG1の内部において、投球コース指示用の丸記号M1は移動する。
なお、捕手視線(ボールの投球先から投手キャラクタを見る視線)で、画像がモニタ3aに表示される場合、図5に示すように、第1領域RG1は第2領域RG2と同じ大きさに設定される。一方で、投手視線(投手キャラクタからボールの投球先を見る視線)で、画像がモニタ3aに表示される場合、図6に示すように、第1領域RG1は第2領域RG2より大きく設定される。
続いて、投手キャラクタの球種データKを設定する処理が、CPU11により実行される(S16)。ここでは、モニタ3aに表示された投手キャラクタの球種データK、すなわち登板中の投手キャラクタの球種データKが、CPU11に認識される。たとえば、登板中の投手キャラクタの球種が、ストレート、フォーク、カーブ、およびシュートの4種類である場合、これら各球種に対応する球種データKが、CPU11に認識される。たとえば、図7に示すように、ストレートの場合、球種データKには数値「1」がCPU11により割り当てられ、フォークの場合、球種データKには数値「2」がCPU11により割り当てられる。また、カーブの場合、球種データKには数値「3」がCPU11により割り当てられ、シュートの場合、球種データKには数値「4」CPU11により割り当てられる。
なお、ここでは、球種が上記の4種類である場合の例を示すが、球種は上記の4種類以外のものであっても良い。
続いて、ボールの球種を指示するための指示領域、たとえば矢印用の表示領域RSを、モニタ3aに設定する処理が、CPU11により実行される(S17)。ここでは、矢印用の表示領域RS、すなわちモニタ3a上において矢印が表示される領域RSが、モニタ3aの所定の範囲に設定される。すると、矢印用の表示領域RSを報知するための報知子、たとえば球種用の矢印が、画像データを用いて、モニタ3aに表示される(S18)。ここでは、投球コース指示用の丸記号M1を中心として、4つの球種用の矢印それぞれが、投球コース指示用の丸記号M1の上下左右に配置され、モニタ3aに表示される。
なお、図5および図6では、矢印用の表示領域を示すために、球種用の矢印(報知画像)を、記号「RS」で指し示している。しかしながら、実際にモニタ3aに表示される画像は、球種用の矢印である。この球種用の矢印が、矢印用の表示領域RSに重なるように、モニタ3aに表示される。
続いて、球種データKを矢印用の表示領域RSに対応付ける処理が、CPU11により実行される(S19)。ここでは、たとえば、図7に示すように、上矢印用の表示領域RS1には数値「1」、下矢印用の表示領域RS2には数値「2」、左矢印用の表示領域RS3には数値「3」、および右矢印用の表示領域RS4には数値「4」が、CPU11により対応付けられる。ここで各矢印の表示領域に対応付けられる数値は、球種データKの値に対応している。なお、表示領域と球種データKとの対応関係は、対応テーブルによって規定されており、この対応テーブルは、投手キャラクタごとに個別に用意される。
続いて、図5又は図6に示すように、球種用の矢印の中心に表示される投球コース指示用の丸記号M1が、丸記号用の画像データを用いて、モニタ3aに表示される(S20)。ここでは、投球コース指示用の丸記号M1の重心が、第1領域RG1の重心に位置するように、投球コース指示用の丸記号M1が、丸記号用の画像データを用いて、モニタ3aに表示される。
続いて、打者キャラクタの能力データN(ID)が、CPU11に認識される(S21)。ここでは、たとえば、打者キャラクタのミート能力や選球眼能力等のような能力データN(ID)が、CPU11に認識される。ここでは、打者キャラクタを識別するための識別データIDを、CPU11に認識させることにより、各選手キャラクタの能力データN(ID)が、CPU11に認識される。なお、ここに示す「N(ID)」は、打者キャラクタの能力を一般的に表記した記号である。
また、打者キャラクタがスイング動作を開始した時点から、バット(オブジェクト)がボールに衝突したか否かを判断する時点までの時間、すなわち所定の時間DToが、CPU11に認識される(S22)。ここで、打者キャラクタがスイング動作を開始した時点は、後述するように、打者キャラクタを操作するプレイヤが、指をモニタ3aに最初に接触した時点に対応している。なお、この所定の時間DToを示す時間データは、ゲームプログラムにおいて予め規定されており、所定の時間に対応する時間データは、ゲーム実行時にはRAM13に格納されている。
続いて、ボールの内部領域BRに複数の区分領域を設定する処理が、CPU11により実行される(S23)。ここでは、図8に示すように、ボールの内部領域BRにおいて、所定の割合で上下方向に5分割されたボールの内部領域BRが、CPU11に設定される。たとえば、5つの区分領域それぞれを識別するための識別データIを、CPU11に認識させることにより、各区分領域が設定される。具体的には、図9に示すように、上から順に、第1区分領域に対応する識別データIとしては数値「1」、第2区分領域に対応する識別データIとしては数値「2」、第3区分領域に対応する識別データIとしては数値「3」、第4区分領域に対応する識別データIとしては数値「4」、第5区分領域に対応する識別データIとしては数値「5」が、CPU11に認識される。このように識別データIをCPU11に認識させることにより、各区分領域の設定が行われる。
続いて、複数の区分領域それぞれに、移動命令がCPU11から発行された後のボールの移動傾向を示す傾向データK(I)を割り当てる処理が、CPU11により実行される(S24)。たとえば、図8に示すように、上下方向に並ぶ5個の区分領域それぞれに対して、上から順に、「ゴロ」、「ライナー」、「ホームラン」、「フライ」、「チップ」といった移動傾向が、割り当てられる。具体的には、図10に示すように、「ゴロ」に対応する傾向データK(1)には数値「1」が割り当てられ、「ライナー」に対応する傾向データK(2)には数値「2」が割り当てられ、「ホームラン」に対応する傾向データK(3)には数値「3」が割り当てられる。また、「フライ」に対応する傾向データK(4)には数値「4」が割り当てられ、「チップ」に対応する傾向データK(5)には数値「5」が割り当てられる。なお、この対応関係は、ゲームプログラムにおいて予め規定されており、この対応テーブルはRAM13に格納されている。
続いて、打者キャラクタが有する能力を示す能力データN(ID)に基づいて、複数の区分領域の少なくともいずれか1つの大きさを、調節する処理が、CPU11により実行される(S25)。たとえば、区分領域の変更対象となる能力が、選球眼能力である場合、選球眼能力用の能力データN1(ID)に基づいて、ボールの内部領域BRにおいて区分領域が占める割合を変更する処理が、CPU11により実行される。これにより、複数の区分領域の少なくともいずれか1つの区分領域の大きさが、変更される。
なお、ここでは、区分領域の変更対象となる能力が、選球眼能力である場合を一例として、説明を行うが、区分領域の変更対象となる能力が、選球眼能力以外の能力であっても良い。
具体的には、選球眼用の能力データN1(ID)が大きいほど、ボールの中心に近い区分領域が大きくなるように、複数の区分領域のうちの少なくともいずれか1つの区分領域の大きさが、変更される。ここでは、図11に示すように、「ライナー」用の領域および「ホームラン」用の領域が大きくなるように、複数の区分領域それぞれの大きさが、調整される。
図11では、各区分領域の大きさが、直径方向の比率で設定されるようになっている。たとえば、初期状態では、各区分領域の整列方向(上下方向)の長さの比が、「e1:e2:e3:e4:e5=1:1:1:1:1」に設定されている。この比に対して、区分領域ごとに用意された能力評価係数n1,n2,n3,n4,n5を、乗算する処理を、CPU11に実行させることにより、各区分領域の整列方向の長さの比が変更される。区分領域ごとに用意された能力評価係数n1,n2,n3,n4,n5は、選球眼用の能力データN1(ID)の大きさに応じて変化する。ここで、各能力評価係数n1,n2,n3,n4,n5は、「n1+n2+n3+n4+n5=5、n2>1、n3>1」の関係が成立するように、選球眼用の能力データN1(ID)の大きさに応じて、所定の値に設定されている。
なお、選球眼用の能力データN1(ID)の大きさと、各区分領域の大きさを設定するための能力評価係数n1,n2,n3,n4,n5との対応関係は、たとえば、対応テーブルに基づいて予め所定の関係に設定されており、この対応テーブルはRAM13に格納されている。
また、上記の実施形態は、選球眼用の能力データに応じて、各区分領域の大きさを設定するものであるが、他の実施形態として、長打用の能力データに応じて各区分領域の大きさを設定するようにしてもよい。この場合は、長打用の能力データが高いほど、ホームランの区分領域e3を他の領域よりも広く設定することが考えられる。さらに、個々の能力データ以外にも、選手の打撃能力が反映されていると考えられる打順に着目して、特定の打順の選手キャラクタの場合にのみ、各区分領域の大きさを設定するようにしてもよい。たとえば、4番打者については他の打順の打者に比べて、ホームランの区分領域e3を最も広く設定し、それに次いで3番打者、5番打者の順番に広く設定するようにしてもよい。一方、9番打者については他の打順の打者に比べて、ゴロの区分領域e1およびチップの区分領域e5を最も広くし、次いで8番打者をその次に広く設定するようにしてもよい。
上記のように、本実施形態では、選手の打撃に関する能力に応じて、ボールの移動傾向(打撃傾向)に対応する区分領域を変更することで、各打者キャラクタの打撃特性をゲームに反映することができるだけでなく、後述するように(図20を参照)、バットがボールのどこに当たったのかを打撃時の残像によって視認できるので、いま打撃を行った打者のどの区分領域が広いか狭いかをも、プレイヤは打撃のたびに確認できるので、打者キャラクタに対する思い入れを強くすることができる。
続いて、図12(a)および図13(a)に示すように、プレイヤが、投手キャラクタに対して球種の指示をするために、指をモニタ3aに接触させると、この指の位置を示す座標データが、CPU11に検出され認識される(S26)。すると、この指の位置を示す座標データが、複数の矢印用の表示領域RSの中のいずれか1つの矢印用の表示領域RSの内部の座標データに一致したか否かが、CPU11により判断される(S27)。
そして、指がモニタ3aに接触した位置を示す座標データが、矢印用の表示領域RSの内部の少なくともいずれか1つの座標データに一致した場合(S27でYes)、この指の座標データが、矢印用の表示領域RSの内部に位置している時間が、所定の時間DT1以上であるか否かが、CPU11により判断される(S28)。
なお、指がモニタ3aに接触した位置を示す座標データが、矢印用の表示領域RSの内部の座標データに一致しなかった場合(S27でNo)、ステップ26(S26)の処理が、CPU11により再実行される。
そして、指がモニタ3aに接触した位置を示す座標データが、所定の時間DT1以上の間、矢印用の表示領域RSの内部に位置していた場合(S28でYes)、指が位置した矢印用の表示領域RSに、割り当てられた球種データKが、CPU11に認識される(S29)。一方で、指がモニタ3aに接触した位置を示す座標データが、所定の時間DT1以上の間、矢印用の表示領域RSの内部に位置していなかった場合(S28でNo)、すなわち、指がモニタ3aに接触した位置を示す座標データが、所定の時間DT1未満の間だけ、矢印用の表示領域RSの内部に一致していた場合、データ認識処理を中止する命令が、CPU11から発行される。この場合、認識情報が取り消され、球種データKは、CPU11に認識されない。そして、ステップ26(S26)の処理が、CPU11により再実行される。
具体的には、所定の時間DT1以上の間、指が矢印用の表示領域RSの内部に位置していた場合、投手キャラクタに指示する球種が、選択される。一方で、所定の時間DT1未満の間、指が矢印用の表示領域RSの内部に位置していた場合、データ認識処理が中止され、球種の選択操作が、キャンセルされる。
続いて、矢印用の表示領域RSに割り当てられた球種データKが、CPU11に認識されると(S29)、ボールを投球する動作を、投手キャラクタに開始させるための命令が、CPU11から自動的に発行される。すると、投手キャラクタがボールを投球する動作が、投手用の画像データを用いて、モニタ3aに表示される(S30)。
また、矢印用の表示領域RSに割り当てられた球種データKが、CPU11に認識されると、投球コース指示用の丸記号M1を指の位置に移動する処理が、CPU11により実行される(S31)。ここでは、指が矢印用の表示領域RSの内部に位置した場合、投球コース指示用の丸記号M1の座標データを、指がモニタ3aに接触した位置の座標データに変更する処理が、CPU11により実行される。これにより、図12(b)および図13(b)に示すように、投球コース指示用の丸記号M1が、矢印用の表示領域RSの内部において指がモニタ3aに接触した位置へと、移動する。すなわち、投球コース指示用の丸記号M1が、初期位置から、指がモニタ3aに接触した位置へと、移動する。すると、球種用の矢印(報知子)をモニタ3aから消去するための命令が、CPU11から発行される。すると、球種用の矢印が、モニタ3aから消去される(S32)。
すると、図12(b)および図13(b)に示すように、ボールの投球コースを設定するための投球コース用の丸記号M2が、丸記号用の画像データを用いて、モニタ3aに表示される(S33)。ここでは、投球コース用の丸記号M2の重心が、第2領域RG2の重心に位置するように、投球コース用の丸記号M2が、丸記号用の画像データを用いて、モニタ3aに表示される。ここでは、第2領域RG2の重心とストライクゾーンの中心とは同じであるので、投球コース用の丸記号M2が、ストライクゾーンの中心において、モニタ3aに表示される。
この状態において、図12(c)および図13(c)に示すように、指をモニタ3aに接触させた状態においてスライドさせると、指がモニタ3aに接触した位置に表示された投球コース指示用の丸記号M1を、移動中の指の位置に移動する処理が、CPU11により実行される(S34)。たとえば、指をモニタ3aに接触させた状態において指をスライドさせたときに、モニタ3a上において連続的に移動する指の位置を示す座標データが、CPU11に認識される。すると、この座標データが、投球コース指示用の丸記号M1の座標データとして、CPU11に認識される。すると、指をモニタ3a上でスライドさせたときの指の移動に連動して、投球コース指示用の丸記号M1が、モニタ3a上で移動する。なお、この処理は、1フレームごとにCPU11により実行される。
このように投球コース指示用の丸記号M1がモニタ3a上において移動するときには、この投球コース指示用の丸記号M1の移動に連動して、投球コース指示用の丸記号M1とは異なる位置に表示された投球コース用の丸記号M2を、移動する処理が、CPU11により実行される(S35)。
たとえば、図12に示すように、第2領域RG2と第1領域RG1とが同じ大きさである場合、すなわち捕手視線(捕手キャラクタ側(ボールの投球先)から投手キャラクタを見た視線)の画像が、モニタ3aに表示されている場合、投球コース用の丸記号M2を、投球コース指示用の丸記号M1が移動した方向に、投球コース指示用の丸記号M1の移動量と同じ移動量で、移動する処理が、CPU11により実行される。
一方で、たとえば、図13に示すように、第2領域RG2が第1領域RG1より小さい場合、すなわち投手視線(投手キャラクタ側から捕手キャラクタ(ボールの投球先)を見た視線)の画像が、モニタ3aに表示されている場合、投球コース指示用の丸記号M1とは異なる位置に表示された投球コース用の丸記号M2を、投球コース指示用の丸記号M1が移動した方向に、移動する処理が、CPU11により実行される。ここで投球コース用の丸記号M2を移動するときの移動量としては、投球コース指示用の丸記号M1の移動量に、1より小さな所定の係数を乗じることによって算出される移動量が、用いられる。ここで用いられる所定の係数は、第2領域RG2と第1領域RG1との大きさの比率に応じて、ゲームプログラムにおいて予め規定され、RAM13に格納されている。
このようにして、投球コース用の丸記号M2が、投球コース指示用の丸記号M1とは異なる位置で、投球コース指示用の丸記号M1の移動方向に移動する状態が、モニタ3aに表示される。すなわち、指とともに投球コース指示用の丸記号M1が移動すると、この投球コース指示用の丸記号M1の移動に連動して、投球コース用の丸記号M2が移動する。この処理は、1フレームごとにCPU11により実行される。
ここで、ステップ33(S33)およびステップ35(S35)では、投球コース用の丸記号M2の位置を示す座標データが、ボールの投球コースの座標データとして、CPU11に認識されている。たとえば、投球コース用の丸記号M2の位置を示す座標データが、1フレームごとに、ボールの投球コースの座標データとして、CPU11に認識されRAM13に格納される。
続いて、投球コース指示用の丸記号M1が指の位置に移動した時点から、所定の時間DT2が経過したか否かが、CPU11により判断される(S36)。ここで、投球コース指示用の丸記号M1が指の位置に移動した時点から、所定の時間DT2が経過するまでの間は(S36でNo)、投球コース指示用の丸記号M1の移動が許可される。すなわち、この間においては、プレイヤは、投球コース指示用の丸記号M1を移動することによって、投球コース(投球コース用の丸記号M2の位置)を指示することができる。
一方で、投球コース指示用の丸記号M1が指の位置に移動した時点から、所定の時間が経過した場合(S36でYes)、最新の投球コースの座標データが、最終的な投球コースの座標データとして、CPU11に認識される(S37)。すなわち、この最終的な投球コースの座標データに基づいて、ボールの投球コースが決定される。すると、投手キャラクタにボールをリリースさせるためのリリース命令が、CPU11から自動的に発行される。すると、球種データKおよびボールの投球コースの座標データに基づいて、投手キャラクタがリリースするボールの経路K1(ボールの第1経路)を計算する処理が、CPU11により実行される(S38)。
ここでは、まず、ボールの放出位置の座標データおよびボールの放出速度を示す速度データが、CPU11に認識される。すると、ボールの放出位置の座標データ、ボールの放出速度に対応する速度データ、球種データKに対応するボールの回転速度データ、ボールの投球コースの座標データ等の初期条件を、ボールの基礎方程式に代入する処理が、CPU11により実行される。このように初期条件をボールの基礎方程式に代入することによって、ボールの軌道方程式が導出される。すなわち、初期条件をボールの基礎方程式に代入することによって、ボールの基礎方程式の各係数が決定され、ボールの軌道方程式が決定される。このボールの軌道方程式を求める処理が、ボールの第1経路K1を計算する処理に対応している。ここで、上記のボールの放出速度に対応する速度データは、球種ごとに所定の値に設定される。また、上記のボールの回転速度データは、球種ごとに所定の値に設定されている。また、球種データKと速度データとの対応関係、および球種データKと回転速度データとの対応関係は、ゲームプログラムにおいて予め規定されており、これら対応テーブルはRAM13に格納されている。
なお、ここでは、ボールの基礎方程式は、ゲームプログラムにおいて予め規定されており、ゲーム実行時にはRAM13に格納されている。また、このボールの基礎方程式は、位置と時間の関数になっており、このボールの基礎方程式を構成する変数および定数も、ゲームプログラムにおいて予め規定されている。
このようにして、リリース命令がCPU11から発行され、ボールの軌道方程式が設定されると、このボールの軌道方程式において、ボールの放出位置の時間を基準として、時間を1フレームずつ進行させる処理が、CPU11により実行される。すると、第1経路K1上を移動するボールの位置を示す座標データが、1フレームごとにCPU11に認識される。このようにして、第1経路K1上を移動する各フレームのボールの位置が、決定される。
続いて、ボールの軌道方程式により規定されるボールの座標データに基づいて、第1経路K1を移動するボールが、モニタ3aに表示される(S39)。ここでは、第1経路K1上のボールの位置を、投手キャラクタと捕手キャラクタ(ボールの送出先)との間の所定の位置に設定される平面SPに投影する処理が、CPU11により実行される。具体的には、第1経路K1上のボールの位置BPを、ストライクゾーンが設定される平面SP(Sゾーン面)に投影する処理が、CPU11により実行される(図14を参照)。このようにして、モニタ表示用のボール位置MB、すなわちモニタ表示用のボールの座標データが、設定される。
そして、第1経路K1上のボールの位置とSゾーン面SPとの距離が、CPU11により算出される。そして、この距離に応じて、ボール用の画像データの大きさを変更する処理が、CPU11により実行される。ここでは、図14に示すように、まず、ボールのリリース位置RPとSゾーン面SPとの第1垂直距離Loが、CPU11に認識される。そして、ボールが投手キャラクタからリリースされると、ボールがSゾーン面SPに接近し、ボールの位置BPとSゾーン面SPとの第2垂直距離Lが、小さくなる。ここで、第2垂直距離Lを第1垂直距離Loで除算する処理(Lo/L)が、CPU11により実行される。そして、除算結果(Lo/L)に所定の調整係数αを乗算する処理(α×Lo/L)が、CPU11により実行される。そして、この結果を、ボール用の画像データの直径Rに乗算する処理(R×α×Lo/L)が、CPU11により実行される。これにより、ボール用の画像データの直径Rが、拡大される。
そして、上記のモニタ表示用のボールの座標データが示す位置MBに、修正後のボール用の画像データの中心(重心)を配置する命令が、CPU11から発行される。すると、Sゾーン面SPに近づくにつれて大きさが拡大するボールPGが、修正後のボール用の画像データを用いて、モニタ3aに表示される(図15を参照)。
なお、ボール用の画像データの直径Rおよび調整係数αは、ゲームプログラムにおいて予め規定されており、RAM13に格納されている。
続いて、モニタ3aに表示されたボール画像PGに対応するボールの内部領域BRが、CPU11に認識される(S40)。たとえば、モニタ3aに表示されたボール画像PGの領域は、ステップ23(S23)において設定されたボールの内部領域BRと、一対一で対応づけられている。このため、モニタ3aに表示されたボール画像PGの認識は、複数の区分領域から構成されるボールの内部領域BRの認識に対応する。ここでは、図8および図11に示したように、ボールの内部領域BR、たとえば所定の割合で上下方向に5分割された複数の区分領域が、ボール画像PGに対応する領域として、CPU11に認識される。具体的には、各区分領域の内部の座標データが、CPU11に認識される。
ここでは、プレイヤが指揮するチーム(Bチーム)は、後攻であるので、プレイヤは投手キャラクタに対して命令を指示する。また、自動制御プログラムが指揮するチーム(Aチーム)は、先攻であるので、自動制御プログラムは打者キャラクタに対して命令を指示する。このため、上記のように投手キャラクタからボールが投球されたときには、この投球に対して反応する打者キャラクタは、自動制御プログラムによって制御される。
たとえば、上記のように、投手キャラクタからボールがリリースされて、Sゾーン面SPに接近するボールが、モニタ3aに表示されると、打者キャラクタに対してスイング動作を開始させるための命令が、自動制御プログラムに基づいて、CPU11から自動的に発行される。そして、バットとボールとが衝突したか否かを判断するためのミート領域が、自動制御プログラムに基づいて設定される。そして、ミート領域の位置が、自動制御プログラムに基づいて予測される。
そして、打者キャラクタがスイングを開始してから所定の時間が経過したときに、このミート領域とボール画像PGの領域とが重なっているか否かが、CPU11により判断される。そして、ミート領域とボール画像の領域とが重なっていた場合、ボールがバット(オブジェクト)に衝突したと判断され、ボールがバットにより打ち返される。そして、ボールが飛球する状態が、モニタ3aに表示される。なお、ミート領域とボール画像の領域とが重ならなかった場合、ボールがバット(オブジェクト)に衝突したとは判断されず、ボールは捕手キャラクタに捕球される。すなわち、打者キャラクタが空振りしたことになる。
このようにして、打者キャラクタは、自動制御プログラムに基づいて、制御される(S41)。ここで、ボールが打ち返される場合、ボールが飛球する経路は、ミート領域が重なった区分領域に割り当てられた傾向データK(I)に基づいて、算出される。この経路の算出についての詳細な説明は、プレイヤが打者キャラクタに対して命令を指示する場合の説明(後述の説明)において、行う。また、打者に対して行われるその他の処理についても、詳細については、後述する。
続いて、ボールが打ち返され、ボールが飛球する状態がモニタ3aに俯瞰表示されると、プレイヤは、所望の野手キャラクタの位置において、自分の指をモニタ3aに接触させることによって、この野手キャラクタが、CPU11に認識され選択される。そして、この状態において、プレイヤが、指を所望の方向たとえばボールの方向に移動させることにより、この野手キャラクタがボールの方向へ移動する状態が、モニタ3aに表示される。そして、野手キャラクタがボールを捕球したか否かが、CPU11により判断される。たとえば、野手キャラクタの位置を基準とした所定の範囲内たとえば所定の円状領域の内部に、ボールの重心が位置しているか否かが、野手キャラクタの位置座標データおよびボールの位置座標データに基づいて、CPU11により判断される。そして、ボールの重心が円状領域の内部に位置していた場合、ボールが野手キャラクタにより捕球され、このボールが所定の方向に送球される。
続いて、1プレイの結果がCPU11により判断され、次のプレイがCPU11により実行される。そして、プレイ状況が3アウトになったか否かが、CPU11により判断される(S42)。そして、プレイ状況が3アウトになった場合(S42でYes)、AチームとBチームとの攻守が変更される。すなわち、次のプレイからは、プレイヤは、打者キャラクタに対して命令を指示し、自動制御プログラムは、投手キャラクタに対して命令を指示する。
なお、プレイ状況が3アウトになっていない場合(S42でNo)、プレイ状況が3アウトになるまで、ステップ16(S16)がCPU11により繰り返し実行される。
次に、投手キャラクタが自動制御プログラムに基づいてCPU11により制御される場合(S42でYes)、投手キャラクタおよび打者キャラクタが、各キャラクタ用の画像データを用いて、モニタ3aに表示される(S43)。すると、打撃用の前処理、たとえば、上述した、ステップ21(S21)からステップ25(S25)までの処理が、CPU11により実行される(S44)。
すると、投手キャラクタに対して球種および投球コースを指示する命令が、自動制御プログラムに基づいて、CPU11にから発行される。すると、球種データKおよび投球コースの座標データがCPU11に認識され、投手キャラクタから投球されるボールの軌道方程式が、上述したように、設定される。そして、投手キャラクタからボールがリリースされると(S45)、上述したように、第1経路K1を移動するボールが、Sゾーン面SPに近づくにつれて拡大する状態が、ボール用の画像データを用いて、モニタ3aに表示される(S46)。
なお、投手キャラクタが自動制御プログラムに基づいて制御される場合、上述した球種用の矢印は、モニタ3aに表示されない。また、第1経路K1は、上述したように、軌道方程式に基づいて、規定される。
続いて、投手キャラクタから投球されたボールが、モニタ3aに表示されている状態において、図15に示すように、プレイヤが、ボールを打ち返すために、ボールの位置で指をモニタ3aに接触させると(S47)、モニタ3aに指が接触した瞬間の時間を示す時間データが、CPU11に認識される。この時間データが示す時間は、打者キャラクタのスイング開始時間に対応している。すなわち、プレイヤが、指をボールの位置においてモニタ3aに接触させたときに、打者キャラクタがスイングを開始したと、CPU11に判断される(S48)。
そして、モニタ3aに指が接触した時点を基準として所定の時間DToが経過した時点の時間が、CPU11に認識される。後述するように、この時間において、バットがボールに衝突可能であるか否かが、CPU11により判断される。すなわち、この時間は、スイングを開始した打者キャラクタがボールを捉えるタイミングに対応している。
そして、打者キャラクタが時間的にボールを捉えることができるが否かが、CPU11により判断される(S49)。打者キャラクタが時間的にボールを捉えることができるが否かの判断は、次のようにして行われる。たとえば、まず、モニタ3aに指が接触した時点を基準として所定の時間DToが経過した時点のボールの位置が、CPU11に認識される。そして、図16に示すように、この時点のボールの位置が、Sゾーン面SPを基準とした所定の範囲LRに位置しているか否かが、CPU11により判別される。この所定の範囲LRは、Sゾーン面SPを基準として、Sゾーン面SPを直交する方向に規定されている。また、この所定の範囲LRは、打者キャラクタがボールを捉えることができる範囲に対応している。そして、モニタ3aに指が接触した時点を基準として所定の時間DToが経過した時点のボールの位置が、所定の範囲LRに位置していた場合、打者キャラクタがボールを時間的に捉えることができると判断される。すなわち、この場合(S49でYes)、プレイヤは、タイミング良く、打者キャラクタに対してスイングの開始命令を指示することができたことになる。
一方で、モニタ3aに指が接触した時点を基準として所定の時間DToが経過した時点のボールの位置が、所定の範囲LRの外部に位置していた場合、打者キャラクタがボールを時間的に捉えることができなかったと判断される。すなわち、この場合、プレイヤは、タイミング良く、打者キャラクタに対してスイングの開始命令を指示することができなかったことになる。このため、この場合(S49でNo)、打者キャラクタは空振りしたことになり、ステップ45(S45)の処理が、CPU11により再実行される。
続いて、打者キャラクタがボールを時間的に捉えることができた場合(S49でYes)、打者キャラクタがボールを空間的に捉えることができるか否かが、CPU11により判断される(S50)。打者キャラクタがボールを空間的に捉えることができるか否かの判断は、次のようにして行われる。
たとえば、図15に示すように、プレイヤが指をモニタ3aに接触した状態においてスライドさせたときに、指がモニタ3aに接触した位置を基準として、指のスライド距離を算出する処理が、CPU11により実行される。ここでは、指がモニタ3aに最初に接触した位置を示す座標データと、スライド後に指がモニタ3aから離反したときの位置を示す座標データとに基づいて、指がモニタ3a上でスライドしたときのスライド距離を示すスライド距離データLSが、CPU11により算出される。
また、プレイヤが、自分の指をモニタ3aに接触した状態においてスライドさせたときには、指のスライド速度を示すスライド速度データSVを算出する処理が、CPU11により実行される。たとえば、スライド距離を示すスライド距離データLSと、スライド時間を示すスライド時間データTSとに基づいて、指のスライド速度データSVを算出する処理(SV=LS/TS)が、CPU11により実行される。なお、スライド時間は、指がモニタ3aに接触してからモニタ3aから離反するまでの時間である。また、指がモニタ3aに接触してからモニタ3aから離反するまでの時間が、所定の時間以上になった場合は、スライド時間は、この所定の時間に設定される。
上記のように指をモニタ3aに接触させてスライドする動作は、打者キャラクタがスイングする動作を、模擬したものである。これにより、プレイヤは、打者キャラクタに対する打撃命令を直感的に直接的に指示することができる。
続いて、スライド距離に応じて、ボールに対する打者キャラクタのスイング形態を設定する処理が、CPU11により実行される。ここでは、「コンパクトスイング」、「普通スイング」、および「フルスイング」の中のいずれか1つのスイング形態が、スライド距離データLSの大きさに応じて、設定される。たとえば、図17に示すように、スライド距離データLSがゼロ以上第1距離X1以下である場合、スイング形態データSKに、コンパクトスイング用のデータたとえば「1」を割り当てる処理が、CPU11により実行される。また、スライド距離データLSが第1距離X1より大きく第2距離X2以下である場合、スイング形態データSKに、普通スイング用のデータたとえば「2」を割り当てる処理が、CPU11により実行される。さらに、スライド距離データLSが第2距離X2より大きい場合、スイング形態データSKに、フルスイング用のデータたとえば「3」を割り当てる処理が、CPU11により実行される。このようにして、スライド距離データLSに対応するスイング形態が、設定される。
なお、第1距離X1および第2距離X2は、ゲームプログラムにおいて予め規定されており、RAM13に格納されている。また、第1距離X1および第2距離X2の間には、「X1<X2」の関係が成立している。
このように、ボールに対する打者キャラクタのスイング形態が設定されると、指がモニタ3aに接触した位置を示す座標データに基づいて、スイング形態に応じた円形の基準判定領域を設定する処理が、CPU11により実行される。ここでは、スイング動作が大きくなるにつれて領域が小さくなるような基準判定領域の半径データR1,R2,R3を、CPU11に認識させることにより、円形の基準判定領域が設定される。これにより、現実世界の野球と同様に、野球ゲームにおいても、スイング動作が大きくなるにつれて、バットがボールに当たりにくくなるような状態を、再現することができる。
なお、各スイング形態データSKに対応する半径データR1,R2,R3は、ゲームプログラムにおいて予め規定されており、RAM13に格納されている。たとえば、各半径データの間には、「コンパクトスイング用の半径データR1>普通スイング用の半径データR2>フルスイング用の半径データR3」の関係が、成立している。
続いて、スライド距離データLSが第1距離X1以下である場合、すなわち「コンパクトスイング」である場合、基準判定領域を調整するための係数を示す調節データCDに、所定の値を割り当てる処理が、CPU11により実行される。ここでは、図18に示すように、調節データCDには、「1.0」が、CPU11により割り当てられる。すると、この調節データCDを半径データR1に乗算する処理(R1’=R1×CD=R1×1.0)が、CPU11により実行される。このようにして、判定領域が、調節される。この場合は、調節後の判定領域RHは、基準判定領域と同じ大きさである。すなわち、スライド距離データLSが第1距離X1に至るまでは、判定領域の調節は行わない。
一方で、スライド距離データLSが第1距離X1より大きく第3距離X3未満である場合、すなわち「普通スイング」又は「フルスイング」である場合、スライド距離データLSが大きくなるにつれて、判定領域が更に小さくなるように、調節データCDが、CPU11により設定される。ここでは、図18に示すように、スライド距離データLSの値に応じて、所定の値が、調節データCDにCPU11により割り当てられる。すると、この調節データCDを半径データR2,R3に乗算する処理(R2’=R2×CD、R3’=R3×CD)が、CPU11により実行される。このようにして、判定領域が、調節される。この場合は、調節後の判定領域RHは、基準判定領域より小さくなる。
また、図18に示すように、フルスイングの中でも、特にスライド距離データLSが第3距離X3以上の場合、調節データCDは所定の値(=0.3)に固定している。これにより、プレイヤが、飛距離をかせごうとして、指示手段を極端に大きくスライドさせたとしても(スライド距離が上限値X3を超えた場合)、判断領域は所定の大きさに固定されるので(ピンポイントのような小さい点にまでは縮小されないので)、ボールをミートできなくなるという問題を回避することができる。
このように、「普通スイング」および「フルスイング」の場合においては、スライド距離データLSすなわちスイング量の大きさに応じて、判定領域が調節される。つまり、スイングが大きいほど、バットがボールに当たりにくくなるように、判定領域が調整される。なお、図18の対応関係は、ゲームプログラムにおいて予め規定されており、RAM13に格納されている。
続いて、ボール画像PGの領域と調節後の判定領域RHとの位置関係を判断する処理が、CPU11により実行される。たとえば、打者キャラクタに対してスイングの開始を指示するために指をモニタ3aに接触させた時点から所定の時間が経過したときにモニタ3aに表示されるボール画像PGの領域BG(予定領域)と、調節後の判定領域RHとの位置関係を判断する処理が、CPU11により実行される。なお、ボールの第1経路K1は、軌道方程式によって既に規定されているので、プレイヤが指をモニタ3aに接触させた時点から所定の時間が経過したときのボールの予定位置は、この軌道方程式に基づいて、決定することができる。このボールの予定位置をSゾーン面SPに投影することにより、ボール画像PGの予定領域BGが設定される。
ボール画像PGの予定領域BGと調節後の判定領域RHとの位置関係は、ボール画像PGの予定領域BGの中心と調節後の判定領域RHの中心とを結ぶ中心間距離DRが、ボール画像PGの予定領域BGの半径RYと調節後の判定領域RHの半径R1’,R2’,R3’との和WRより小さいか否かによって、判断される。たとえば、図19(a)に示すように、中心間距離DRが上記の和WRより小さい場合(DR<WR)、ボール画像PGの予定領域BGと調節後の判定領域RHとは重なると判断される。この場合は、打者キャラクタにより、ボールが打ち返される。一方で、たとえば、図19(b)に示すように、中心間距離DRが上記の和WR以上である場合(DR≧WR)、ボール画像PGの予定領域BGと調節後の判定領域RHとは重ならないと判断される。この場合は、打者キャラクタにより、ボールが打ち返されない。このようにして、打者キャラクタがボールを空間的に捉えることができるか否かの判断が、行われる(S50)。
ここで、ボール画像PGの予定領域BGと調節後の判定領域RHとが重なると判断された場合、すなわち打者キャラクタによりボールが打ち返された場合(S50でYes)、ボールの位置を異なる位置に移動する移動命令が、CPU11から発行される。すると、ボールに対する指の位置を報知する画像が、モニタ3aに表示される(S51)。たとえば、図20に示すように、ボール画像PGの予定領域BG、即ち、打たれた瞬間のボールの残像画像と、調節後の判定領域RHがボールの領域に重なった部分を報知する画像とが、モニタ3aに表示される。特に、図20(a)に示すように、調節後の判定領域RHの中心が、ボール画像PGの予定領域BGの内部に位置する場合は、調節後の判定領域RHの中心が位置した区分領域の一部E1(以下、関連する説明では、「区分領域」として説明する)が、強調して表示される。また、区分領域E1に隣接する2つの区分領域E2も区分領域E1に準じる強調度で表示される。
ここで、強調表示とは、具体的には例えば色彩や濃度を用いることができる。例えば、ボールの残像画像全体を半透明の淡い白色として表示し、上記区分領域E1を半透明の赤色、その両脇の区分領域E2,E2を半透明のピンク色で表示する。このように、バットがボールに当たった領域E1,E2,E2のみを着色し、特にその中心部をより目立つように着色するようにすればよい。なお、ボールの残像画像全体には、図8で説明した各区分領域を判別できるように、区分領域間を実線または点線等で区切るように表示することが望ましい。このようにすれば、プレイヤとしては、打者キャラクタの打撃に関する能力も確認できるので、例えばこういう区分領域が広いから打撃が良かったとか、貧打に終わったとかの認識もでき、ゲーム対する興味をより強く持たせることができる。
また、図20(b)に示すように、調節後の判定領域RHの中心が、ボール画像PGの予定領域BGの外部に位置する場合は、調節後の判定領域RHの中心とボール画像PGの予定領域BGの中心とを結ぶ直線が、横切る区分領域が、報知される。特に、この場合は、調節後の判定領域RHの中心に最も近い区分領域E3が、強調表示される。さらに、この区分領域E3から離れるにつれて、区分領域E3より強調度を順次低下させて表示する。すなわち、強調度は、区分領域E3を基準として、区分領域E4,E5の順に、順次低下し表示される。具体的には、例えば区分領域E3,E4,E5それぞれの色を、半透明の赤色、半透明のピンク色、半透明の灰色とすればよい。なお、図20(a)および(b)の例では、各区分領域ごとに色を分けるようにしたが、簡略化のために区分領域E1,E2またはE3,E4,E5を、それぞれまとめて同じ赤色にしてもよい。
このように、打たれた瞬間のボールの残像画像と、調節後の判定領域RHがボールの領域に重なった部分を報知する画像とを、モニタ3aに表示することによって、プレイヤは、打者キャラクタがボールを捉えた位置を、視覚的に容易に確認することができる。
続いて、ボールが打ち返された場合、ボールの第2経路(打者キャラクタが打ち返したボールの経路)を計算する処理が、CPU11により実行される(S52)。ここでは、スイング形態およびスライド速度に基づいて、ボールの第2経路を計算する処理が、CPU11により実行される。ここでの第2経路の計算には、調節後の判定領域RHが重なった区分領域に割り当てられた傾向データK(I)が、考慮される。
たとえば、調節後の判定領域RHが重なった区分領域に割り当てられた傾向データK(I)に基づいて、打ち返されたボールの飛球形態の移動傾向を設定する処理が、CPU11により実行される。たとえば、図20(a)に示したように、調節後の判定領域RHの中心が、ある区分領域の内部に位置する場合は、この区分領域の傾向データK(I)に基づいて、ボールの移動傾向を設定する処理が、CPU11により実行される。また、図20(b)に示したように、調節後の判定領域RHの中心が、ある区分領域の外部に位置する場合は、調節後の判定領域RHに最も近い区分領域が、CPU11に認識される。そして、この区分領域に割り当てられた傾向データK(I)に基づいて、ボールの移動傾向を設定する処理が、CPU11により実行される。
具体的には、移動傾向は、次のようにして設定される。
たとえば、傾向データK(I)が示す移動傾向が、「ゴロ」である場合、「1,3,5,7,9」が、「ゴロ」に対応する数字として、CPU11に認識される。また、「2」が「ライナー」、「4」が「ホームラン」、「6」が「フライ」、「8」が「チップ」に対応する数字として、CPU11に認識される。そして、乱数生成プログラムに基づいて「1」から「9」までの乱数を生成する処理が、CPU11により実行される。そして、ここで生成された乱数の値と一致する移動傾向が、打ち返されるボールの飛球形態に設定される。
たとえば、ここで生成された乱数が、「1,3,5,7,9」のいずれか1つであった場合には、「ゴロ」が、打ち返されるボールの飛球形態として設定される。また、乱数が「2」であった場合には「ライナー」、乱数が「4」であった場合には「ホームラン」、乱数が「6」であった場合には「フライ」、乱数が「8」であった場合には「チップ」が、打ち返されるボールの飛球形態として設定される。このように、傾向データK(I)が示す移動傾向たとえば移動傾向としての「ゴロ」が、打ち返されるボールの飛球形態として、最も選択されやすくなっている。このように、移動傾向とは、あくまでボールが打ち返されたときの飛球形態の傾向であって、移動傾向が「ゴロ」であるからといって、打ち返されるボールの飛球形態として、必ず「ゴロ」が選択されるわけではない。すなわち、傾向データK(I)が示す移動傾向が「ゴロ」であっても、「ゴロ」以外の他の飛球形態は、確率的には小さいながらも選択される。
なお、傾向データK(I)が示す移動傾向が、「ライナー」、「ホームラン」、「フライ」、「チップ」である場合も、上記の「ゴロ」の場合と同様にして、飛球形態が設定される。
続いて、飛球形態に応じてボールの放出角度を設定する処理、スイング形態に対応するボールの初速度を設定する処理、スライド速度に基づいてボールの初速度を補正する処理、および補正後のボールの初速度に基づいてボールの第2経路を計算する処理が、CPU11により実行される。
たとえば、打者キャラクタによりボールが打ち返された場合は、調節後の判定領域RHが重なった区分領域に割り当てられた傾向データK(I)、たとえば「ゴロ」、「ライナー」、「ホームラン」、「フライ」、および「チップ」のいずれか1つの傾向データK(I)に基づいて、上記のように飛球形態が設定される。そして、この飛球形態に基づいて、打球の放出角度が設定される。ここでは、「ゴロ」、「ライナー」、「ホームラン」、「フライ」、「チップ」の順に、角度が大きくなるように、打球の放出角度を示す角度データが、所定の値に設定される。なお、各飛球形態と放出角度データとの対応関係は、ゲームプログラムにおいて予め規定されており、RAM13に格納されている。
また、打者キャラクタによりボールが打ち返された場合は、「コンパクトスイング」、「普通スイング」、「フルスイング」の順に、速度が大きくなるように、ボールの初速度データVbが、CPU11により設定される。また、スライド速度データSVが大きいほど、スイング形態ごとに設定された値がさらに大きくなるように、ボールの初速度データVbが、CPU11により補正される。たとえば、スイング形態に対応する初速度データに、スライド速度データSVに対応する補正係数データHSを乗算する処理を、CPU11に実行させることにより、ボールの初速度データVbが、CPU11により補正される。
一般的には、打者キャラクタによりボールが打ち返された場合は、スイングの大きさだけでなく、スイング速度の大きさによっても、打球の速度は変化する。このため、ここでは、スイング形態に応じてボールの初速度データVbを設定し、このボールの初速度データVbをスイング速度に応じて調節することによって、リアリティのある打球を再現している。
なお、スイング形態とボールの初速度データVbとの対応関係、およびスイング速度と補正係数データHSとの対応関係は、ゲームプログラムにおいて予め規定されている。たとえば、この対応関係は、対応テーブルによって規定されており、この対応テーブルはRAM13に格納されている。
このようにして、初期条件としての、ボールの放出角度データおよびボールの初速度データVb’が設定されると、この初期条件に基づいて、ボールの第2経路を計算する処理が、CPU11により実行される(S52)。
ボールの第2経路すなわち打者キャラクタが打ち返したボールの経路は、打球用の基礎方程式を用いて設定される。ボールの基礎方程式は、位置と時間の関数になっている。このボールの基礎方程式、およびこのボールの基礎方程式を構成する変数および定数は、ゲームプログラムにおいて予め規定されている。この基礎方程式に、補正後のボールの初速度データVb’、ボールの放出位置の座標データ、およびボールの放出角度を示す角度データ等を代入する処理が、CPU11により実行される。すなわち、初期条件をボールの基礎方程式に代入することによって、ボールの軌道方程式の各係数が決定され、ボールの軌道方程式が設定される。これにより、打球用の軌道方程式が設定される。この打球用の軌道方程式を求める処理が、ボールの第2経路を計算する処理に対応している。
続いて、第2経路を移動するボールの位置を示す座標データが、CPU11に認識される。ここでは、打球用の軌道方程式において、ボールの放出位置の時間を基準として、時間を1フレームずつ進行させることにより、第2経路上における各フレームのボールの位置が、算出される。そして、第2経路上のボールの位置を示す座標データが、1フレームごとに、CPU11に認識される。すると、第2経路上のボールの位置を示す座標データに基づいて、第2経路を移動するボールが、ボール用の画像データを用いて、モニタ3aに表示される(S53)。
なお、ボール画像PGの予定領域BGと調節後の判定領域RHとが重ならないと判断された場合(S550でNo)、ボールに対する指の位置は、報知されない。具体的には、ボールを打ち返すことができなかった場合、ボールに対する指の位置が報知されない。そして、この場合、打者キャラクタは空振りしたことになり、ステップ45(S45)の処理が、CPU11により再実行される。
続いて、1プレイの結果がCPU11により判断され、次のプレイがCPU11により実行される。そして、プレイ状況が3アウトになったか否かが、CPU11により判断される(S54)。そして、プレイ状況が3アウトになっていない場合(S54でNo)、ステップ43(S43)の処理が、CPU11により再実行される。一方で、プレイ状況が3アウトになった場合(S54でYes)、試合が終了であるか否かが、CPU11により判断される(S55)。そして、試合が終了でない場合(S55でNo)、ステップ13(S13)の処理が、CPU11により再実行される。試合が終了である場合(S55でYes)、ゲーム結果を保存する処理が、CPU11により実行される(S56)。
なお、ここでは、説明を容易にするために、後攻の攻撃が終了した場合にのみ、試合終了であるか否かの判定を行っているが、先攻の攻撃が終了したときにも、この判定を行うことが望ましい。
〔他の実施形態〕
(a)前記実施形態では、ゲームプログラムを適用しうるコンピュータの一例として、携帯ゲーム機を用いた場合の例を示したが、コンピュータは、前記実施形態に限定されず、モニタが別体に構成されたゲーム装置、モニタが一体に構成されたゲーム装置、ゲームプログラムを実行することによってゲーム装置として機能するパーソナルコンピュータやワークステーションなどにも同様に適用することができる。
(b)本発明には、前述したようなゲームを実行するプログラムおよびこのプログラムを記録したコンピュータ読み取り可能な記録媒体も含まれる。この記録媒体としては、カートリッジ以外に、たとえば、コンピュータ読み取り可能なフレキシブルディスク、半導体メモリ、CD−ROM、DVD、MO、ROMカセット、その他のものが挙げられる。
(c)本実施形態では、主に野球ゲームを取り上げて説明したが、例えばゴルフゲームや、サッカーのPK戦等、静止しているボールに打撃を加えて、飛ばすようなゲームにも適用可能である。