〔ゲーム装置の構成〕
図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を接続したり、他のゲーム機と通信ケーブル等を介して接続したりすることで、他のゲーム機との間でデータのやり取りや対戦型のゲームを行うことができる。
なお、最後に、モデルデータ(画像データ)についての説明を行っておく。モデルデータ(画像データ)は、たとえば、ポリゴンデータやテクスチャデータを含んでいる。ポリゴンデータはポリゴンを構成する頂点の座標データのことである。テクスチャデータは、ポリゴンにテクスチャを設定するためのものであり、テクスチャ指示データとテクスチャカラーデータとからなっている。テクスチャ指示データはポリゴンとテクスチャとを対応づけるためのデータであり、テクスチャカラーデータはテクスチャの色を指定するためのデータである。ここで、ポリゴンデータとテクスチャデータとには、各データの記憶位置を示すポリゴンアドレスデータとテクスチャアドレスデータとが対応づけられている。
このようなモデルデータ(画像データ)では、画像処理プロセッサにより、ポリゴンアドレスデータの示す3次元空間上のポリゴンデータ(3次元ポリゴンデータ)が、画面自体(視点)の移動量データおよび回転量データに基づいて座標変換および透視投影変換されて、2次元空間上のポリゴンデータ(2次元ポリゴンデータ)に置換される。そして、複数の2次元ポリゴンデータでポリゴン外形を構成して、ポリゴンの内部領域にテクスチャアドレスデータが示すテクスチャデータを書き込む。このようにして、各ポリゴンにテクスチャが貼り付けられたモデルつまり各種キャラクタを表現することができる。
モデルデータ(画像データ)に対しては、CPU11からのコマンドに基づいて、まず、3次元空間上におけるキャラクタの位置計算および光源計算等が、行われる。次に、画像処理プロセッサが、描画すべき画像データのRAM13への書き込み処理などを行う。そして、RAM13に書き込まれた画像データが、インターフェイス回路を介してD/Aコンバータに供給される。ここで、画像データがD/Aコンバータでアナログ映像信号に変換される。そして、この画像データが、液晶モニタ3aに供給され画像として表示される。
〔本ゲームシステムにおける各種処理概要〕
本ゲームシステムにおいて実行されるゲームは、たとえば、野球ゲームである。ここでは、野球ゲームを実行するためのゲームプログラムおよび各種のデータは、記憶装置17に格納されている。そして、野球ゲームが実行されるときに、このゲームプログラムおよび各種のデータは、RAM13にロードされる。そして、ゲームプログラムおよび各種のデータは、CPU11からの命令に基づいて、RAM13から読み出されたり、RAM13に書き込まれたりする。
このようにして実行される野球ゲームでは、タッチパネル式の液晶モニタ部3a(以下、モニタ3aを呼ぶ)に、指示手段たとえばプレイヤの指やタッチペン等を接触させることにより、各種の命令が指示される。図3は、本発明で主要な役割を果たす機能を説明するための機能ブロック図である。なお、以下に示す野球ゲームでは、指示手段が、指である場合を一例として、説明を行う。また、1フレームが、たとえば1/60(sec)である場合を一例として説明を行う。
野手キャラクタ配置手段50は、複数の野手キャラクタを、ゲーム空間に配置する手段を備えている。
この手段では、複数の野手キャラクタが、ゲーム空間に配置される。ここでは、各野手キャラクタのモデルデータ、および各野手キャラクタの位置座標データが、RAM13から読み出され、CPU11に認識される。すると、各野手キャラクタの位置座標データが示す位置に、各野手キャラクタのモデルデータにより定義されるモデルが、配置される。このようにして、複数の野手キャラクタそれぞれが、ゲーム空間において所定の守備位置に配置される。
なお、ゲーム空間という文言は、3次元ゲーム空間という意味で用いられる。また、初期条件としての各野手キャラクタの守備位置(所定の守備位置)を示す位置座標データは、ゲームプログラムにおいて予め規定されており、RAM13に格納されている。
打者キャラクタ配置手段51は、打者キャラクタを、ゲーム空間に配置する機能を備えている。
この手段では、打者キャラクタが、ゲーム空間に配置される。ここでは、打者キャラクタのモデルデータ、および打者キャラクタの位置座標データが、RAM13から読み出され、CPU11に認識される。すると、打者キャラクタの位置座標データが示す位置に、打者キャラクタのモデルデータにより定義されるモデルが、配置される。このようにして、打者キャラクタが、ゲーム空間においてバッターボックス内の所定の位置に配置される。
なお、初期条件としての打者キャラクタの位置(バッターボックスの所定の位置)を示す位置座標データは、ゲームプログラムにおいて予め規定されており、RAM13に格納されている。
対戦画面表示手段52は、投手キャラクタと打者キャラクタとが対戦する対戦画面を、モニタ3aに表示する機能を備えている。
この手段では、投手キャラクタと打者キャラクタとが対戦する対戦画面が、モニタ3aに表示される。ここでは、ゲーム空間に配置された投手キャラクタおよび打者キャラクタを、ゲーム空間に配置された仮想カメラにより撮影することにより、投手キャラクタと打者キャラクタとが対戦する対戦画面が、モニタ3aに表示される。より具体的には、投手キャラクタおよび打者キャラクタが仮想カメラにより撮影されると、ゲーム空間に配置された投手キャラクタおよび打者キャラクタを、2次元空間に投影する処理が、CPU11により実行される。ここで、2次元空間に投影された各キャラクタをモニタ3aに表示する命令が、CPU11から発行されると、投手キャラクタおよび打者キャラクタそれぞれが、各キャラクタ用の画像データを用いて、モニタ3aに表示される。
カウント判断手段53は、アウトカウントの状況を判断する機能を備えている。
この手段では、アウトカウントの状況を判断する処理が、CPU11により実行される。たとえば、アウトカウントをカウントする処理が、CPU11による実行される。たとえば、ハーフイニングが終了するまでの間は、アウトカウントがCPU11により監視されている。そして、アウトカウントが1である場合は、カウントデータの値を1に設定する処理が、CPU11により実行される。同様に、アウトカウントが2又は3である場合は、カウントデータの値を2又は3に設定する処理が、CPU11により実行される。このカウントデータの値をCPU11に参照させることにより、アウトカウントが判断される。
走者キャラクタ検出手段54は、ゲーム空間において、走者キャラクタが、複数の野手キャラクタの少なくともいずれか1つの野手キャラクタの近傍に存在するか否かを、判断する機能を備えている。言い換えると、走者キャラクタ検出手段54は、ゲーム空間において、走者キャラクタが、1塁から3塁までの少なくともいずれか1つの塁に存在するか否かを、判断する機能を備えている。
この手段では、ゲーム空間において、走者キャラクタが、1塁から3塁までの少なくともいずれか1つの塁に存在するか否かを判断する処理が、CPU11により実行される。たとえば、ハーフイニングが終了するまでの間は、各打者キャラクタが出塁したか否かが、CPU11により監視されている。そして、打者キャラクタが1塁に存在する場合は、出塁状態を示す1塁用の出塁フラグを立てる処理が、CPU11により実行される。同様に、打者キャラクタが2塁及び/又は3塁に存在する場合は、2塁用の出塁フラグ及び/又は3塁用の出塁フラグを立てる処理が、CPU11により実行される。このフラグのオンオフによって、走者キャラクタが、1塁から3塁までの少なくともいずれか1つの塁に存在するか否かが、CPU11により判断される。
接触位置認識手段55は、対戦画面において、指がモニタ3aに接触したときに、指がモニタ3aに接触した接触位置を認識する機能を備えている。
この手段では、対戦画面において、指がモニタ3aに接触したときに、指がモニタ3aに接触した接触位置が、認識される。ここでは、対戦画面において指がモニタ3aに接触すると、指がモニタ3aに接触した接触位置の位置座標データが、CPU11に認識され、RAM13に格納される。たとえば、1本の指がモニタ3aに接触した場合、1つの位置座標データが、CPU11に認識されRAM13に格納される。また、複数本の指がモニタ3aに接触した場合、複数の位置座標データが、CPU11に認識されRAM13に格納される。
表示子表示手段56は、3つの接触位置が認識された場合に、ゲーム空間に配置された複数の野手キャラクタそれぞれの位置を報知する表示子を、対戦画面に重ねて表示する機能を備えている。詳細には、表示子表示手段56は、3つの接触位置が認識された場合に、複数の野手キャラクタが移動可能な範囲を報知する範囲画像を、対戦画面に重ねて表示し、この範囲画像上に複数の表示子を表示する機能を備えている。
この手段では、対戦画面がモニタ3aに表示された状態において、3本の指がモニタに接触し3つの接触位置がCPU11に認識された場合、範囲画像用の画像データがRAM13から読み出され、この範囲画像用の画像データを用いて範囲画像がモニタ3aに表示される。ここでは、この範囲画像は、対戦画面に重ねて表示される。すると、表示子用の画像データおよび野手キャラクタの位置座標データがRAM13から読み出され、この表示子用の画像データおよび野手キャラクタの位置座標データを用いて、各野手キャラクタの守備位置を示す表示子が、範囲画像に重ねて、モニタ3aに表示される。なお、範囲画像用の画像データおよび表示子用の画像データは、RAM13に格納されている。
野手キャラクタ移動手段57は、3本の指がモニタ3aに接触した状態で全ての指が移動したときに、複数の接触位置の移動量および移動方向に応じて、複数の野手キャラクタそれぞれを、ゲーム空間において移動する機能を備えている。詳細には、野手キャラクタ移動手段57は、3本の指がモニタ3aに接触した状態で全ての指が移動したときに、3本の指それぞれの移動量のうちの最小の移動量に基づいて、複数の野手キャラクタそれぞれを、ゲーム空間において移動する機能を備えている。
この手段では、3本の指がモニタ3aに接触した状態で全ての指が移動したときに、複数の接触位置の移動量および移動方向に応じて、複数の野手キャラクタそれぞれを、ゲーム空間において移動する処理が、CPU11により実行される。
ここでは、3本の指が最初にモニタ3aに接触しモニタ3aから離反すると、範囲画像が固定される。続いて、3本の指がモニタ3aに再び接触し3本の指が移動すると、各指の移動量および移動方向を計算する処理が、1フレームごとに、CPU11により実行される。そして、ここで計算された3つの移動量および移動方向は、1フレームごとにRAM13に格納される。そして、3つの移動量の中で最小の移動量を検索する処理が、CPU11により実行される。すると、この最小移動量で移動した指の移動方向が、CPU11に認識される。ここで、3つの移動量の中で最小の移動量で移動した指を、「対象指」という文言で表現すると、対象指の移動量(3本の指の中の最小移動量)および移動方向に応じて、複数の野手キャラクタそれぞれが、ゲーム空間において移動する。なお、移動後の野手キャラクタの位置を示す位置座標データは、1フレームごとに、RAM13に格納されている。
特に、この手段では、走者キャラクタが、複数の野手キャラクタの少なくともいずれか1つの野手キャラクタの近傍に存在した場合、ゲーム空間における、走者キャラクタの近傍に存在する野手キャラクタの移動を制限する処理が、CPU11により実行される。より具体的には、走者キャラクタが出塁しており、アウトカウントが0又は1である場合、走者キャラクタが存在する塁を守る野手キャラクタの移動を制限する処理が、CPU11により実行される。
表示子再表示手段58は、ゲーム空間において移動した後の複数の野手キャラクタそれぞれの位置を報知する表示子を、モニタ3aに再表示する機能を備えている。
この手段では、範囲画像がモニタ3aに表示された状態において、ゲーム空間において複数の野手キャラクタが移動すると、移動後の複数の野手キャラクタそれぞれの位置を報知する表示子が、移動後の野手キャラクタの位置座標データおよび表示子用の画像データを用いて、モニタ3aに再表示される。
野手キャラクタ選択手段59は、複数の野手キャラクタそれぞれの位置を示す表示子を介して、複数の野手キャラクタの中のいずれか1つの野手キャラクタが、指により選択されたか否かを、判断する機能を備えている。
この手段では、複数の野手キャラクタそれぞれの位置を示す表示子を介して、ゲーム空間における、複数の野手キャラクタの中のいずれか1つの野手キャラクタが、指により選択されたか否かを判断する処理が、CPU11により実行される。ここでは、1本の指が、複数の表示子の中のいずれか1つの位置においてモニタ3aに接触したか否かが、CPU7により判断される。そして、1本の指が、複数の表示子の中のいずれか1つの位置においてモニタ3aに接触した場合、この指が接触した表示子に対応する野手キャラクタが、CPU11に認識される。このようにして、ゲーム空間における、複数の野手キャラクタの中のいずれか1つの野手キャラクタが、表示子を介して、選択される。
野手キャラクタ個別移動手段60は、複数の野手キャラクタの中のいずれか1つの野手キャラクタが、指により選択された場合、指がモニタ3aに接触した状態で移動したときに、接触位置の移動量および移動方向に応じて、いずれか1つの野手キャラクタを、ゲーム空間において個別に移動する機能を備えている。
この手段では、複数の野手キャラクタの中のいずれか1つの野手キャラクタが、指により選択された場合、指がモニタ3aに接触した状態で移動したときに、接触位置の移動量および移動方向に応じて、選択された野手キャラクタを、ゲーム空間において個別に移動する処理が、CPU11により実行される。ここでは、1本の指が、複数の表示子の中のいずれか1つの位置においてモニタ3aに接触し、この指がモニタ3aに接触した状態で移動すると、この指の移動量および移動方向を計算する処理が、1フレームごとに、CPU11により実行される。すると、この指の移動量および移動方向に応じて、選択された野手キャラクタが、ゲーム空間において個別に移動する。なお、移動後の野手キャラクタの位置を示す位置座標データは、1フレームごとに、RAM13に格納されている。
位置個別表示手段61は、ゲーム空間において個別に移動した野手キャラクタの位置を示す表示子を、モニタ3aに表示する機能を備えている。
この手段では、ゲーム空間において個別に移動した野手キャラクタの位置を報知する表示子が、移動後の野手キャラクタの位置座標データおよび表示子用の画像データを用いて、モニタ3aに再表示される。
接触位置判断手段62は、対戦画面において、接触位置の数が1個であった場合に、接触位置がモニタ3aの所定の領域の内部であるか否かを、判断する機能を備えている。
この手段では、対戦画面において、接触位置の数が1個であった場合に、接触位置がモニタ3aの所定の領域の内部であるかを判断する処理が、CPU11により実行される。ここでは、対戦画面において、1本の指が、モニタ3a上に設定された所定の領域に接触したか否かが、CPU11により判断される。たとえば、対戦画面において、1本の指が、モニタ3aの所定の領域、たとえばモニタの左端領域、下端領域、および右端領域のいずれか1つの領域に位置したか否かが、CPU11により判断される。なお、所定の領域を定義するための位置座標データの値、たとえば所定の領域の4隅の位置座標データの値は、ゲームプログラムにおいて予め規定されており、RAM13に格納されている。
牽制手段63は、対戦画面において、接触位置がモニタの所定の領域の内部であった場合、所定の領域に対応づけられた塁に向けて、投手キャラクタにボールを送球させる機能を備えている。詳細には、牽制手段63は、対戦画面において、1本の指がモニタに接触したときの接触位置がモニタの所定の領域の内部であった場合、投手キャラクタの姿勢を変更し、1本の指がモニタに再接触したときの接触位置がモニタの所定の領域の内部であった場合、所定の領域に対応づけられた塁に向けて、投手キャラクタにボールを送球させる機能を備えている。
この手段では、対戦画面において、1本の指がモニタに接触したときの接触位置がモニタの所定の領域の内部であった場合に、投手キャラクタの姿勢を変更する処理が、CPU11により実行される。そして、1本の指がモニタに再接触したときの接触位置もモニタの所定の領域の内部であった場合に、この所定の領域に対応づけられた塁に向けて、投手キャラクタにボールを送球させる処理が、CPU11により実行される。
ここでは、対戦画面において、最初に、1本の指がモニタ上の所定の領域に位置した場合、投手キャラクタの姿勢を変更する処理が、CPU11により実行される。そして、1本の指がモニタ上の所定の領域に再び位置した場合、投手キャラクタに牽制球を投げさせる命令が、CPU11から発行される。すると、牽制球を投げる投手キャラクタの動作が、投手用の画像データを用いてモニタ3aに表示され、投手キャラクタが送球した牽制球が、ボール用の画像データを用いてモニタ3aに表示される。
〔野球ゲームにおける守備用の命令指示システムの説明〕
次に、野球ゲームにおける守備用の命令指示システムの具体的な内容について説明する。また、図8および図9に示すフローについても同時に説明する。なお、図8は野球ゲームの全体概要を説明するためのフローであり、図9は上記システムを説明するためのフローである。
まず、携帯ゲーム機1の電源が投入され、携帯ゲーム機1が起動されると、野球ゲームプログラムが、記憶装置17たとえばハードディスクから、RAM13にロードされ格納される。このときには、野球ゲームを実行する上で必要となる各種の基本ゲームデータも、同時に、記憶装置17からRAM13にロードされ格納される(S1)。
なお、ここでは、各種のプログラムおよびデータが、記憶装置17からRAM13にロードされ格納される場合の例を示しているが、各種のプログラムおよびデータを、記憶装置17からRAM13にロードするのではなく、初めからRAM13で保持するようにしても良い。
たとえば、基本ゲームデータには、ゲーム空間用の各種の画像に関するデータが含まれている。ゲーム空間用の各種の画像に関するデータには、たとえば、スタジアム用のモデルデータ、選手キャラクタ用のモデルデータ、および各種のオブジェクトのモデルデータ等が、含まれている。また、基本ゲームデータには、モデルデータをゲーム空間に配置するための位置座標データが、含まれている。また、基本ゲームデータには、ゲーム空間に配置されたモデルを、モニタ3aに表示するための画像データが、含まれている。さらに、基本ゲームデータには、本システムで用いられる他の各種データも、含まれている。
なお、モデルデータにより定義されるモデルが、モデル用の位置座標データが示す位置において、ゲーム空間に配置されると、このモデルは、ゲーム空間に配置された仮想カメラにより1フレームごとに撮影され、ここで撮影されたモデル用の画像データが、RAM13に格納される。すると、このモデル用の画像データを用いて、モデル画像がモニタ3aに表示される。これら一連の処理を実行するための命令は、CPU11から指示される。
続いて、RAM13に格納された野球ゲームプログラムが、基本ゲームデータに基づいて、CPU11により実行される(S2)。すると、野球ゲームの起動画面がモニタ3aに表示される。すると、野球ゲームを実行するための各種の設定画面がモニタ3aに表示される。ここでは、たとえば、野球ゲームのプレイモードを選択するためのモード選択画面が、モニタ3aに表示される(図示しない)。このモード選択画面に表示された複数のプレイモードの中から、いずれか1つのプレイモードを選択することによって、プレイモードが決定される(S3)。プレイモードには、たとえば、12球団の中からチームを選択して1試合の対戦を楽しむ対戦モード、および12球団の中からチームを選択してペナントレースを戦うペナントモード等が、用意されている。そして、対戦モード用のボタン又はペナントモード用のボタンの位置において、指をモニタ3aに接触させることによって、プレイモードは選択される。
続いて、モード選択画面で選択されたプレイモードにおいて、各種のイベントが、CPU11により実行される(S4)。ここで実行される各種のイベントには、たとえば、自動制御プログラム(AIプログラム、Artificial Intelligence Program)に基づいてCPU11により自動制御されるイベントや、プレイヤがモニタ3aに指を接触することによって入力された入力情報や入力信号に基づいてプレイヤにより手動制御されるイベントがある。また、選手キャラクタの制御には、自動制御プログラムに基づいて選手キャラクタに命令を自動的に指示する制御(自動制御)や、モニタ3aからの入力信号に基づいて選手キャラクタに命令を指示する制御(手動制御)等がある。このように、本野球ゲームでは、モニタ3aからの指示や自動制御プログラムからの指示に応じて、イベントが制御されたり、選手キャラクタに命令が指示されたりする。
なお、ここに示す自動制御プログラムは、野球ゲームプログラムに含まれている。また、この自動制御プログラムとは、プレイヤに代わって、イベントに関する命令および選手キャラクタに対する命令を自動的に制御するためのプログラムである。この自動制御プログラムは、プレイ状況に応じて、各種命令をCPU11に指示する。なお、各プレイ状況に応じて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)。
次に、プレイモードとして対戦モードが選択された場合を一例として、投手用の命令指示システムの詳細を説明する。以下では、自動制御プログラムが、先攻であるAチームの選手キャラクタに対して命令を指示し、プレイヤが、後攻であるBチームの選手キャラクタに対して命令を指示する場合の例が、示される。
モード選択画面において対戦モードが選択され(S11)、対戦チームが選択されると、各チームのスターティングメンバーを設定するためのメンバー設定画面が、モニタ3aに表示される。このメンバー設定画面において、Aチームの選手キャラクタは自動制御プログラムにより選択され、Bチームの選手キャラクタはプレイヤにより選択される(S12)。たとえば、図4に示すように、モニタ3aに表示された選手リストの中から、プレイヤが所望する各ポジションの選手キャラクタを、指で選択する。そして、この状態において指をスターティングメンバーリストへとスライドすることによって、選択された選手キャラクタが、スターティングメンバーリストに加えられる。この操作を繰り返すことによって、Bチームのスターティングメンバーが設定される。このように、プレイヤが所望する順序で上から下に並べることで、Bチームの打順が決定される。
なお、Aチームの選手キャラクタのポジションおよび打順は、自動制御プログラムによって自動的に決定される。ここでは、Aチームの選手キャラクタのポジションおよび打順が、自動制御プログラムによって自動的に決定される場合の例を示すが、Aチームの選手キャラクタのポジションおよび打順も、プレイヤが決定するようにしても良い。
両チームのスターティングメンバーが決定された後には、各キャラクタの各種の能力が設定される(S13)。たとえば、各選手キャラクタが有する能力を示す能力データの初期値は、ゲームプログラムにおいて予め規定されており、RAM13に格納されている。そして、RAM13に格納された各選手キャラクタの能力データの初期値を、CPU11に認識させることにより、各選手キャラクタの能力が、設定される。
続いて、試合イベントが開始されると(S14)、Aチームの打者キャラクタおよびBチームの野手キャラクタが、ゲーム空間に配置される(S15)。ここでは、各キャラクタのモデルデータ、および各キャラクタの位置座標データが、RAM13から読み出され、CPU11に認識される。すると、各キャラクタの位置座標データが示す位置に、各キャラクタのモデルデータにより定義されるモデルが、配置される。このようにして、複数のキャラクタそれぞれが、ゲーム空間において所定の位置に配置される。具体的には、打者キャラクタは、バッターボックスの所定の位置において、ゲーム空間に配置される。また、複数の野手キャラクタそれぞれは、各野手キャラクタの所定の守備位置において、ゲーム空間に配置される。
すると、投手キャラクタと打者キャラクタとが対戦する対戦画面70が、図5に示すように、モニタ3aに表示される(S16)。ここでは、ゲーム空間に配置された投手キャラクタのモデル、打者キャラクタのモデル、および捕手キャラクタのモデルを、ゲーム空間に配置された仮想カメラにより撮影することにより、ゲーム空間に配置された投手キャラクタのモデル(データ)、打者キャラクタのモデル(データ)、および捕手キャラクタのモデル(データ)を、2次元空間に投影する処理が、CPU11により実行される。ここで、2次元空間に投影したモデルをモニタ3aに表示する命令が、CPU11から発行されると、各モデルに対応する画像データが、モニタ3aに供給される。すると、投手キャラクタ、打者キャラクタ、および捕手キャラクタを含む画像が、対戦画面70として、モニタ3aに表示される。
ここでは、投手キャラクタのモデルおよび打者キャラクタのモデルの背景も、仮想カメラにより同時に撮影されるので、モニタ3aには、投手キャラクタおよび打者キャラクタだけでなく、スタジアム画像も同時に表示される。このようにしてモニタ3aに表示される全ての画像を、対戦画面70は含んでいる。なお、本実施形態で用いられる対戦画面70という文言は、対戦時にモニタ3aに表示される複数の画像を含む対戦画像という意味で用いられる場合もある。
対戦画面70がモニタ3aに表示された状態において、プレイヤが、Bチームの選手キャラクタに対して命令を指示し、自動制御プログラムが、Aチームの選手キャラクタに対して命令を指示する。これにより、野球ゲームにおいて、対戦が実行される(S17)。
野球ゲームにおいて対戦が実行されているときには、アウトカウントがCPU11により監視されている(S18)。たとえば、守備イニング中は、アウトカウントをカウントする処理が、CPU11により実行される。より具体的には、アウトカウントが1である場合は、カウントデータの値を1に設定する処理が、CPU11により実行される。同様に、アウトカウントが2又は3である場合は、カウントデータの値を2又は3に設定する処理が、CPU11により実行される。
また、対戦が実行されているときには、出塁状況がCPU11により監視されている(S19)。たとえば、ゲーム空間において、走者キャラクタが、1塁から3塁までの少なくともいずれか1つの塁に存在するか否かを判断する処理が、CPU11により実行される。たとえば、プレイヤが守備サイドである場合、攻撃中の相手の各打者キャラクタが出塁したか否かが、CPU11により監視されている。そして、打者キャラクタが1塁に存在する場合は、出塁状態を示す1塁用の出塁フラグを立てる処理が、CPU11により実行される。同様に、打者キャラクタが2塁及び/又は3塁に存在する場合は、2塁用の出塁フラグ及び/又は3塁用の出塁フラグを立てる処理が、CPU11により実行される。このフラグのオンオフによって、走者キャラクタが、1塁から3塁までの少なくともいずれか1つの塁に存在するか否かが、CPU11により判断される。
この状態において、指がモニタ3aに接触すると、指がモニタ3aに接触した接触位置が、認識される。ここでは、対戦画面70において指がモニタ3aに接触すると、指がモニタ3aに接触した接触位置の位置座標データが、CPU11に認識され、RAM13に格納される。たとえば、1本の指がモニタ3aに接触した場合、1つの位置座標データが、CPU11に認識されRAM13に格納される。また、複数本の指がモニタ3aに接触した場合、複数の位置座標データが、CPU11に認識されRAM13に格納される。なお、モニタ3aからの入力信号の有無は、1フレームごとにCPU11に監視されており、この入力信号がCPU11に検知されたときに、ここでの処理が実行される。
さらに、対戦が実行されており、投手キャラクタが命令の指示を待機しているときには、3本の指がモニタ3aに接触したか否かを判断する処理が、CPU11により実行される(S20)。ここでは、モニタ3aへの指による入力が開始された時点を基準として、所定の時間の間に、3本の指の指先が3箇所でモニタ3aに接触したか否かを判断する処理が、CPU11により実行される。より具体的には、3本の指の中の少なくともいずれか1つの指が、モニタ3aに接触した時点を基準として、30フレーム(0.5sec)の間に、所定の個数すべての接触位置(3個の接触位置)の座標データが、モニタ3aに検出されCPU11に認識されたか否かが、判断される。そして、3個の指の接触位置の座標データが、モニタ3aに検出されCPU11に認識された場合、これら3個の接触位置の座標データが、RAM13に格納される。
ここでは、一般的に、プレイヤが、自分の3本の指をモニタ3aに同時に接触したつもりでいても、3個の接触位置が、全く同じタイミングでモニタ3aに検知されることは少ない。このため、ここでは、3本の指の中の少なくともいずれか1つの指が、モニタ3aに接触した時点を基準として、残りの指が、所定の時間例えば30フレーム(0.5sec)の間に、モニタ3aに接触したか否かを判断する制御を行っている。これにより、プレイヤが、自分の3本の指それぞれを、厳密に同時にモニタ3aに接触しなくても、ほぼ同じタイミングでモニタ3aに接触すれば、この入力がCPU11に認識される。なお、以下において、モニタ3aへの複数の指の接触、例えばモニタ3aへの3本の指の接触を、検知するときにも、ここに示した処理が行われる。
続いて、対戦画面70がモニタ3aに表示された状態において、3本の指がモニタに接触し、3つの接触位置がCPU11に認識された場合(S20でYes)、図6に示すように、複数の野手キャラクタが移動可能な範囲を報知する範囲画像71がモニタ3aに表示される(S21)。たとえば、この場合、範囲画像用の画像データがRAM13から読み出され、この範囲画像用の画像データがモニタ3aに供給される。そして、範囲画像用の位置座標データがRAM13から読み出され、この位置座標データが示す所定の位置において、範囲画像71がモニタ3aに表示される。ここでは、対戦画面70がモニタ3aに表示された状態において、扇形の範囲画像71がモニタ3aに表示される。すなわち、扇形の範囲画像71は、所定の位置において、対戦画面70に重ねて表示される。
なお、この範囲画像71の扇形の要の部分がホームベース近傍(捕手の位置)を示し、扇形の円弧に向かって野手がそれぞれ配置される形となるが、この要と円弧とがモニタ上では、要(捕手)が上、円弧(野手)が下となるように配置している。ここで、範囲画像71の背景のゲーム画面は投手から打者(捕手)方向を見たシーンであり、ゲーム画面でも捕手が上、野手が下(画面上では表示されていない)となるので、プレイヤにとっては、範囲画像71のキャラクタの位置関係が、ゲーム画面と概ね同じように捉えることができ、直感的な操作性に優れている。
すると、各野手キャラクタの守備位置を範囲画像71上において報知するための表示子72が、モニタ3aに表示される(S22)。たとえば、各野手キャラクタの守備位置を範囲画像71上において報知するための表示子用の画像データ、および各野手キャラクタの位置座標データが、RAM13から読み出される。たとえば、表示子用の画像データ、およびグラウンド上における野手キャラクタの位置を規定するための2次元座標データが、RAM13から読み出される。すると、2次元座標データがCPU11に認識され、表示子用の画像データがモニタ3aに供給される。すると、この2次元座標データに基づいて、各野手キャラクタの守備位置を報知するための表示子72が、範囲画像71上において、モニタ3aに表示される。なお、図6では、表示子72は、斜線付きの丸記号で示されている。
ここで、野手キャラクタの位置を規定するための2次元座標データは、ゲーム空間におけるグラウンド面(2次元平面)において定義される。グラウンド面では、ホームベースの重心を原点として定義している。そして、原点を基準として、センター方向に向かう軸をY軸、このY軸に直交し水平方向に延びる軸をX軸と定義している。この定義に基づけば、上述した、グラウンド上における野手キャラクタの位置を規定するための2次元座標データは、X座標データおよびY座標データから構成される。ここでは、ゲーム空間は3次元空間であり、X軸およびY軸に直交し高さ方向に延びる軸を、Z軸と定義している。
なお、範囲画像71には2次元座標系が設定されている。この座標系では、上記のゲーム空間の2次元平面で定義した座標系と同じように、範囲画像71におけるホームベースの位置を原点と定義し、この原点を基準として、x軸およびy軸が定義される。
ここでは、ゲーム空間におけるグラウンド面に含まれる扇形のフェアグラウンドは、範囲画像71の扇形の部分に対応している。すなわち、ゲーム空間の扇形のフェアグラウンドの2次元領域を、所定の比率で縮小したものが、扇形の範囲画像71に対応している。このように2つの領域の縮尺すなわち所定の比率を設定することにより、ゲーム空間の扇形のフェアグラウンドの2次元領域と、範囲画像71とが関連づけられる。たとえば、フェアグラウンドの2次元領域と範囲画像71とは、互いにホームベースの位置が原点になっているので、この原点の位置を基準点として、ゲーム空間における野手キャラクタの守備位置の位置座標データを、上記の比率で縮小することにより、範囲画像71上における野手キャラクタの守備位置の座標データが、決定される。すると、野手キャラクタの守備位置が、表示子72を用いて、範囲画像71上に表示される。このように、本実施形態では、ゲーム空間における野手キャラクタの位置座標データ(2次元平面上の2次元座標データ)が決定すると、この位置座標データに基づいて、範囲画像71上の表示子72の位置が決定される。
なお、対戦画面70がモニタ3aに表示された状態において、3本の指がモニタに接触しない限りは(S20でNo)、ステップ18(S18)およびステップ19(S19)の処理が、CPU11により実行される。また、対戦画面70がモニタ3aに表示された状態において、3本の指がモニタに接触することなく、試合イベントが進行し、試合イベントが終了することもあり得る。この場合は、フローには図示しないが、後述する試合イベントの終了処理が、CPU11により実行される。
続いて、3本の指がモニタ3aから離反したか否かを判断する処理が、CPU11により実行される(S23)。たとえば、3本の指のモニタ3aへの接触が、CPU11に認識された時点を基準として、3本の指が、所定の時間、例えば60フレーム(1.0sec)の間に、モニタ3aから離反したか否かを判断する処理が、CPU11により実行される。そして、3本の指が、60フレーム(1.0sec)の間に、モニタ3aから離反しなかった場合(S23でNo)、3本の指が移動したか否かを判断する処理が、CPU11により実行される(S24)。
そして、3本の指が移動した場合(S24でYes)、各指の移動量および移動方向を計算する処理が、1フレームごとに、CPU11により実行される(S25)。すると、各指の移動量および移動方向が、1フレームごとにRAM13に格納される。そして、3つの移動量の中で最小の移動量を検索する処理が、CPU11により実行される。
すると、この最小移動量で移動した指の移動方向が、CPU11に認識される。なお、指の移動方向は、前フレームの指の接触位置を始点とし、1フレーム後の指の接触位置を終点としたベクトルの向きに対応する。このため、前フレームの指の接触位置に対する、1フレーム後の指の接触位置の相対的な位置座標データを、計算することにより、指の移動方向が設定される。つまり、最小移動量で移動した指の接触位置の相対的な位置座標データを、1フレームごとに、CPU11に認識させることにより、最小移動量で移動した指の移動方向が、設定される。
ここで、3つの移動量の中で最小の移動量で移動した指を、「対象指」という文言で表現すると、対象指の移動量(3本の指の中の最小移動量)および移動方向に応じて、複数の野手キャラクタそれぞれが、ゲーム空間において移動する(S26)。なお、移動後の野手キャラクタの位置を示す位置座標データは、1フレームごとに、RAM13に格納される。
ここで、野手キャラクタがゲーム空間において移動するときには、走者キャラクタの出塁状況およびアウトカウントの状況を判断する処理が、CPU11により実行される。ここでは、たとえば、走者キャラクタが出塁しており、アウトカウントが0又は1である場合、走者キャラクタが存在する塁を守る野手キャラクタの移動を制限する処理が、CPU11により実行される。
より具体的には、1塁用の出塁フラグ、2塁用の出塁フラグ、および3塁用の出塁フラグの少なくともいずれか1つの出塁フラグの値が、1であるか否かが、CPU11により判断される。そして、1塁用の出塁フラグ、2塁用の出塁フラグ、および3塁用の出塁フラグの少なくともいずれか1つの出塁フラグの値が、1であった場合、アウトカウントを示すカウントデータの値が0又は1であるか否かが、CPU11により判断される。そして、カウントデータの値が0又は1であった場合、走者キャラクタが存在する塁を守る野手キャラクタの移動を制限する処理が、CPU11により実行される。
このような処理を行うことにより、アウトカウントが0又は1であるときには、走者を警戒し、アウトカウントが2であるときには、走者を警戒しない状況を、野球ゲームにおいても再現することができる。
野手キャラクタの移動の制限を、図7を用いて説明する。図7は、1塁および2塁に走者キャラクタが存在する場合の例を示し、走者キャラクタが存在する塁を中心とした円領域R1,R2は破線にて表している。また、図7では、各野手キャラクタの位置を、黒丸記号で示している。なお、この黒丸記号は、ゲーム空間における各野手キャラクタの位置を示すものであって、表示子72ではない。
この場合、図7に示すように、走者キャラクタが存在する塁を中心とした所定の半径を有する円領域R1,R2が、ゲーム空間に設定される。そして、野手キャラクタは、円領域R1,R2の内部に位置する間、3本の指の移動に連動して移動する。そして、野手キャラクタが、円領域R1,R2の境界に到達した場合、野手キャラクタの移動は制限され、野手キャラクタは移動不可になる。
たとえば、走者キャラクタが存在する塁(ex. 1塁と2塁)と、この塁を守る野手キャラクタとの2点間距離L1,L2,L3を計算する処理が、CPU11により実行される。そして、この2点間距離L1,L2,L3が、円領域の半径より大きくなった場合に、1フレーム前の位置座標データがRAM13から読み出され、この野手キャラクタの守備位置の位置座標データとして、CPU11により設定される。このため、野手キャラクタが円領域R1,R2の境界に到達したとしたときに、指が塁から離れる方向に移動したとしても、円領域の内部の位置座標データが、この野手キャラクタの守備位置の位置座標データとして、設定されるので、指が移動しても、この野手キャラクタは移動不可になる。なお、全ての出塁フラグの値が0である場合、又はカウントデータの値が2又は3である場合、野手キャラクタの移動は、制限されない。
なお、3本の指が、60フレーム(1.0sec)の間に、モニタ3aから離反せず(S23でNo)、さらに、所定の時間の間、例えば120フレーム(2.0sec)の間、モニタ3a上で移動しなかった場合(S24でNo)、範囲画像71を消去する命令が、CPU11から発行される。すると、範囲画像用の画像データのモニタ3aへの供給が、停止される。すると、範囲画像71がモニタ3aから消去される(後述するS35)。つまり、3本の指がモニタ3aに接触してから所定の時間(180フレーム、3.0sec)の間、3本の指が移動しなかった場合、範囲画像71がモニタ3aから消去される。この処理はフローには図示していないが、後述するステップ35(S35)の処理が実行される。
上記のように、範囲画像71がモニタ3aに表示された状態において、3本の指がモニタ3aに接触し全ての指が移動したときには、まず、1フレームごとに、ゲーム空間において複数の野手キャラクタが移動し、次に、この移動に連動して、各野手キャラクタの守備位置を示す表示子72が、モニタ3aにおいて移動する。また、移動の制限を受ける野手キャラクタが存在する場合は、上述した移動に対する制限下において、野手キャラクタの守備位置を示す表示子72が、モニタ3aに表示される。なお、野手キャラクタおよび表示子72の移動形態の詳細については、後述する。
一方で、3本の指が、60フレーム(1.0sec)の間に、モニタ3aから離反した場合(S23でYes)、範囲画像71がモニタ3aに表示された状態で固定される(S27)。すなわち、指がモニタ3aから離れたとしても、範囲画像71がモニタ3aに表示された状態で維持される。
この状態において、3本の指がモニタ3aに再び接触し全ての指が移動すると(S28でYes、S29でNo、S30でYes)、上述したように、各指の移動量および移動方向を計算する処理が、1フレームごとに、CPU11により実行される(S25)。そして、ここで計算された3つの移動量および移動方向は、1フレームごとにRAM13に格納される。そして、3つの移動量の中で最小の移動量を検索する処理が、CPU11により実行される。すると、最小移動量で移動した指(対象指)の移動方向が、CPU11に認識される。すると、対象指の移動量および移動方向に応じて、複数の野手キャラクタそれぞれが、ゲーム空間において移動する(S26)。ここで、野手キャラクタがゲーム空間において移動するときには、走者キャラクタの出塁状況およびアウトカウントの状況に応じて、野手キャラクタの移動が制限される。野手キャラクタの移動に対する処理は、上記の図7で説明した処理と同じように、行われる。
続いて、範囲画像71がモニタ3aに表示された状態において、3本の指がモニタ3aに接触し全ての指が移動したときには、1フレームごとに、ゲーム空間において複数の野手キャラクタが移動し(S25、S26)、この移動に連動して、各野手キャラクタの守備位置を示す表示子72が、モニタ3aにおいて移動する(S31)。
なお、ステップ28(S28)、ステップ29(S29)、およびステップ30(S30)では、上述したステップ20(S20)、ステップ23(S23)、およびステップ24(S24)における処理と同じ処理が、CPU11により実行される。また、ステップ28(S28)からステップ30(S30)までの各ステップにおいてNoの場合、所定の時間たとえば300フレーム(5sec)が経過すると、範囲画像71が消去される(後述するS35を参照)。
たとえば、3本の指がモニタ3aに接触した状態で移動すると、対象指の移動量に応じて、野手キャラクタがゲーム空間において移動する。ここで、野手キャラクタがゲーム空間で移動する移動量は、上述した所定の比率に基づいて、対象指の移動量から算出される。たとえば、上述した所定の比率の逆数を、対象指の移動量に乗じる処理を、1フレームごとに、CPU11に実行させることにより、ゲーム空間上の野手キャラクタの移動量が、算出される。そして、前フレームの対象指の位置座標データ、および1フレーム後の対象指の位置座標データに基づいて、対象指の移動方向すなわちゲーム空間上の野手キャラクタの移動方向が、決定される。すると、ゲーム空間上の野手キャラクタが、上記の移動量で対象指の移動方向に移動する。すると、この移動に連動して、各野手キャラクタの守備位置を示す表示子72が、範囲画像71上で移動する状態が、表示子用の画像データを用いて、モニタ3aに表示される。また、上述したように、移動の制限を受ける野手キャラクタが存在する場合は、移動に対する制限下において、野手キャラクタの守備位置を示す表示子72が、モニタ3aに表示される。
なお、ここでは、内野の野手キャラクタと外野の野手キャラクタとが、対象指の移動量に応じて同じように移動する場合の例を示したが、外野の野手キャラクタの移動量が、内野の野手キャラクタの移動量より大きくなるように、設定しても良い。たとえば、外野の野手キャラクタの移動量を算出するときに、上述した比率の逆数に、1以上の係数を乗じることにより、外野の野手キャラクタの移動量が、内野の野手キャラクタの移動量より大きくなるように、設定しても良い。
また、対象指の移動量に応じてゲーム空間において移動する野手キャラクタの移動量を、調整するようにしても良い。たとえば、上記の所定の比率の逆数に、調整係数を乗じることにより、野手キャラクタの移動量を調節するようにしても良い。
続いて、3本の指が移動しているときに、これら3本の指がモニタ3aから離反したか否かを判断する処理が、CPU11により実行される(S32)。そして、3本の指がモニタ3aから離反した場合(S32でYes)、すなわちモニタ3aからの入力信号がCPU11に認識されなくなった場合に、3本の指がモニタ3aから離反したと判断される。この場合、3本の指による複数の野手キャラクタの移動が、終了する(S33)。すなわち、複数の野手キャラクタの全体移動が終了し、守備シフトの全体像が決定される。なお、3本の指がモニタ3aから離反しない限り(S32でNo)、3本の指をモニタ3aに接触した状態で移動すると(S24でYes)、ゲーム空間の複数の野手キャラクタおよび表示子72は全体的に移動する(S25、S26、S31)。
続いて、3本の指がモニタ3aから離反し野手キャラクタが移動を停止したとき(S32でYes、S33)、所定の時間例えば300フレーム(5sec)が経過したか否かを判断する処理が、CPU11により実行される(S34)。そして、3本の指がモニタ3aから離反した後に、300フレーム(5sec)が経過した場合(S34でYes)、範囲画像71を消去する命令が、CPU11から発行される。すると、範囲画像用の画像データのモニタ3aへの供給が、停止される。すると、範囲画像71がモニタ3aから消去される(S35)。
一方で、3本の指がモニタ3aから離反した後に、300フレーム(5sec)が経過していない状態では(S34でNo)、1本の指が、範囲画像71上の複数の表示子72の中のいずれか1つの位置においてモニタ3aに接触したか否かが、CPU7により判断される(S36)。
ここでは、指がモニタ3aに接触した接触位置を基準点とした所定の領域、たとえば指がモニタ3aに接触した接触位置を中心とした円領域が、設定される。そして、ある表示子72の位置座標データ、例えば表示子72の中心の位置座標データが、この円領域の内部に含まれるか否かを判断する処理が、CPU11により実行される。そして、ある表示子72の位置座標データが、この円領域の内部に含まれた場合、1本の指が、範囲画像71上の複数の表示子72の中のいずれか1つの位置においてモニタ3aに接触したと判断される(S36でYes)。
なお、1本の指が、範囲画像71上の複数の表示子72の中のいずれか1つの位置においてモニタ3aに接触していない状態では(S36でNo)、ステップ34(S34)の処理が、CPU11により実行されおり、所定の時間が経過すると、範囲画像71が消去される。
そして、1本の指が、複数の表示子72の中のいずれか1つの位置においてモニタ3aに接触したと判断された場合(S36でYes)、この指が接触した表示子72に対応する野手キャラクタが、CPU11に認識される。このようにして、ゲーム空間における、複数の野手キャラクタの中のいずれか1つの野手キャラクタが、表示子72を介して、選択される(S37)。
そして、複数の野手キャラクタの中のいずれか1つの野手キャラクタが、指により選択された状態において、この指がモニタ3aに接触した状態で移動したか否かが、CPU11により判断される(S38)。そして、この指がモニタ3aに接触した状態で移動した場合(S38でYes)、指の接触位置の移動量および移動方向に応じて、選択された野手キャラクタを、ゲーム空間において個別に移動する処理が、CPU11により実行される(S39)。ここでは、1本の指が、複数の表示子72の中のいずれか1つの位置においてモニタ3aに接触し、この指がモニタ3aに接触した状態で移動すると、この指の移動量および移動方向を計算する処理が、1フレームごとに、CPU11により実行される。すると、この指の移動量および移動方向に応じて、選択された野手キャラクタが、ゲーム空間において個別に移動する。
なお、ここでは、モニタ3aに接触した指が移動していない状態では、この指の移動がCPU11により監視されており、この指が、所定の時間たとえば120フレーム(2.0sec)の間、モニタ3a上で移動しなかった場合(S38でNo)、後述するステップ43(S43)の処理が、CPU11により実行される。この指が、所定の時間たとえば120フレーム(2.0sec)の間に、モニタ3a上で移動した場合(S38でYes)、上述したステップ39(S39)の処理が、CPU11により実行される。
すると、ゲーム空間において個別に移動した野手キャラクタの位置を報知する表示子72が、ゲーム空間の野手キャラクタの位置座標データ、および表示子用の画像データを用いて、モニタ3aに表示される。また、ここで移動の対象となった野手キャラクタが、上述したような移動の制限を受ける野手キャラクタである場合は、上述した移動の制限下において、野手キャラクタの守備位置を示す表示子72が、モニタ3aに表示される。このようにして、野手キャラクタの個別移動に連動して、表示子72も個別に移動する(S40)。
なお、指の移動量および移動方向に関する処理は、上述した対象指に対して実行された処理と同じ処理が、実行される。また、移動後の野手キャラクタの位置を示す位置座標データは、1フレームごとに、RAM13に格納されている。
続いて、1本の指が移動した後に、これら3本の指がモニタ3aから離反したか否かを判断する処理が、CPU11により実行される(S41)。そして、1本の指がモニタ3aから離反した場合(S41でYes)、すなわちモニタ3aからの入力信号がCPU11に認識されなくなった場合に、1本の指がモニタ3aから離反したと判断される。この場合、1本の指による野手キャラクタの移動が、終了する(S42)。すなわち、野手キャラクタの個別移動が終了し、守備シフトの部分的な変更が決定される。なお、1本の指がモニタ3aから離反しない限り(S41でNo)、1本の指をモニタ3aに接触した状態で移動すると、野手キャラクタは個別に移動する。
続いて、1本の指がモニタ3aから離反した後に、所定の時間例えば300フレーム(5sec)が経過したか否かを判断する処理が、CPU11により実行される(S43)。そして、1本の指がモニタ3aから離反した後に、300フレーム(5sec)が経過した場合(S43でYes)、範囲画像71を消去する命令が、CPU11から発行される。すると、範囲画像用の画像データのモニタ3aへの供給が、停止される。すると、範囲画像71がモニタ3aから消去される(S44)。
なお、1本の指がモニタ3aから離反した後に、300フレーム(5sec)が経過していない状態において(S43でNo)、3本の指がモニタ3aに接触した場合、ステップ24(S24)の処理が、CPU11により再実行される。
このように、範囲画像71がモニタ3aから消去され(S35、S44)、守備シフトが決定されると、範囲画像71に関する制御から、対戦画面70に関する制御に移行する。対戦画面70では、たとえば、モニタ3aの所定の領域の内部に指が位置したか否かを判断する処理が、CPU11により実行される(S45、S47)。ここでは、対戦画面70において、1本の指が、モニタ3aの所定の領域73の内部、たとえばモニタの左端領域73a、下端領域73b、および右端領域73cのいずれか1つの領域の内部に位置したか否かが、CPU11により判断される。言い換えると、指の接触位置の座標データが、モニタの左端領域、下端領域、および右端領域のいずれか1つの領域の内部の位置座標データに一致したか否かが、CPU11により判断される。
なお、ここに示した所定の領域、たとえばモニタの左端領域、下端領域、および右端領域を、図5に示した。図5では、これら領域を矩形状の破線で示している。
そして、1本の指がモニタに接触したときの接触位置がモニタの所定の領域の内部であった場合(S45でYes)、すなわち指の接触位置の座標データが、モニタの左端領域、下端領域、および右端領域のいずれか1つの領域の内部の位置座標データに一致した場合、投手キャラクタの姿勢を変更する処理が、CPU11により実行される(S46)。そして、1本の指が再びモニタに接触したときの接触位置が、所定の領域の内部であった場合(S47でYes)、すなわち指の接触位置の座標データが、再び、所定の領域の内部の位置座標データに一致した場合、この所定の領域に対応づけられた塁に向けて、投手キャラクタにボールを送球させる処理が、CPU11により実行される(S48)。
より具体的には、対戦画面70において、最初に、1本の指がモニタ上の所定の領域に位置した場合、投手キャラクタの顔が牽制先の方向に向く動作が、モニタ3aに表示される。たとえば、指がモニタの左端領域に位置した場合、投手キャラクタの顔が1塁の方向に向く動作が、モニタ3aに表示される。また、指がモニタの下端領域に位置した場合、投手キャラクタの顔が2塁の方向に向く動作が、モニタ3aに表示される。さらに、指がモニタの右端領域に位置した場合、投手キャラクタの顔が3塁の方向に向く動作が、モニタ3aに表示される。
次に、最初に1本の指がモニタ上の所定の領域に位置してから、所定の時間たとえば120フレーム(2sec)以内に、1本の指が、モニタ上の所定の領域に再び位置した場合、投手キャラクタが、所定の領域に対応づけられた塁に向けて、牽制球を投げる動作が、モニタ3aに表示される。たとえば、指がモニタの左端領域に位置した場合、投手キャラクタが1塁に向けて牽制球を投げる動作が、モニタ3aに表示される。また、指がモニタの下端領域に位置した場合、投手キャラクタが2塁に向けて牽制球を投げる動作が、モニタ3aに表示される。さらに、指がモニタの右端領域に位置した場合、投手キャラクタが3塁に向けて牽制球を投げる動作が、モニタ3aに表示される。
なお、最初に1本の指がモニタ上の所定の領域に位置してから、所定の時間たとえば120フレーム(2sec)を経過した後に、1本の指が、モニタ上の所定の領域に位置した場合、投手キャラクタは、牽制動作ではなく、顔を牽制先の方向に向ける動作を行う(S45、S46)。また、ステップ45(S45)においてNoの場合は、後述するステップ49(S49)の処理が、CPU11により実行される。
このように、プレイヤは、自分の指を所定の領域に位置させることにより、投手キャラクタに対して牽制に関する命令を指示することができる。
続いて、投球に関する命令が、投手キャラクタに対して指示されると(S49でYes)、ゲーム空間において、投手キャラクタから捕手キャラクタに向けて、ボール(オブジェクト)が投球される。すると、ゲーム空間が仮想カメラにより撮影され、投手キャラクタからリリースされたボールが、モニタ3aに表示される(S50)。そして、ボールが打者キャラクタにより打ち返されなかった場合、ボールが捕手キャラクタに捕球される状態が、モニタ3aに表示される。また、ボールが打者キャラクタにより打ち返された場合、ボールが飛球する状態が、モニタ3aに表示される。
なお、投球に関する命令が、投手キャラクタに対して指示されていない状態では(S49でNo)、ステップ45(S45)の判断も、CPU11により実行されている。
続いて、打者キャラクタのプレイが終了したか否かが、CPU11により判断される(S51)。そして、この打者キャラクタのプレイが終了していない場合(S51でNo)、ステップ18(S18)の処理が、CPU11により再実行される。一方で、この打者キャラクタのプレイが終了した場合(S51でYes)、チェンジになったか否かが、CPU11により判断される(S52)。そして、チェンジになっていない場合(S52でNo)、次の打者キャラクタが打席に入り、ステップ18(S18)の処理が、CPU11により再実行される。
なお、チェンジになった場合(S52でYes)、試合イベントが終了したか否かが、CPU11により判断される(S53)。そして、試合イベントが終了した場合(S53でYes)、図8のステップ7(S7)の処理、すなわちゲーム結果を保存する処理が、CPU11により実行される。ここで、試合イベントが終了していない場合(S53でNo)、攻守が交代する。すると、打者キャラクタに対する打撃用の命令がプレイヤにより指示され、投手キャラクタに対する投球用の命令が自動制御プログラムに基づいて指示される。そして、再び攻守が交代すると、上記のステップ15(S15)の処理が、CPU11により実行される。
上記のような本実施形態では、3本の指をモニタに接触した後に、3本の指をモニタ上(2次元空間)で移動するだけで、複数の野手キャラクタそれぞれの守備位置を同時に設定することができる。これにより、各野手キャラクタを個別に移動する場合と比較して、各野手キャラクタの守備位置を、迅速且つ容易に設定することができる。
また、本実施形態では、1本の指をモニタに接触するだけでは、範囲画像71をモニタに表示することができず、3本の指をモニタに接触してはじめて、範囲画像71上において野手キャラクタの守備位置を設定することができる。このように、野手キャラクタの守備位置を設定するための入力形態が、1本の指を用いた入力形態とは独立しているので、命令を確実に入力することができる。
また、本実施形態では、3本の指が移動したときに、3本の指の移動量および移動方向に応じて、複数の野手キャラクタが範囲画像71上において移動するので、プレイヤは、野手キャラクタの守備位置を、直感的に操作し設定することができる。そして、設定後の守備位置を範囲画像71上において確認しながら、複数の野手キャラクタの守備位置を設定することができる。
また、本実施形態では、3本の指の移動に連動して野手キャラクタの守備位置を範囲画像71上に直接的に反映するのではなく、まず、野手キャラクタを3次元ゲーム空間において移動し、次に、3次元ゲーム空間における野手キャラクタの位置に基づいて、野手キャラクタの守備位置を、範囲画像71上に反映している。これにより、3次元ゲーム空間における各野手キャラクタの位置を、記憶部に格納しておけば、各野手キャラクタの守備位置を、範囲画像71上だけでなく、対戦画面70にも反映することができる。すなわち、CPUおよびメモリを効率的に利用して、野手キャラクタの守備位置を設定することができる。
〔他の実施形態〕
(a)前記実施形態では、ゲームプログラムを適用しうるコンピュータの一例として、携帯ゲーム機を用いた場合の例を示したが、コンピュータは、前記実施形態に限定されず、モニタが別体に構成されたゲーム装置、モニタが一体に構成されたゲーム装置、ゲームプログラムを実行することによってゲーム装置として機能するパーソナルコンピュータやワークステーションなどにも同様に適用することができる。
(b)本発明には、前述したようなゲームを実行するプログラムおよびこのプログラムを記録したコンピュータ読み取り可能な記録媒体も含まれる。この記録媒体としては、カートリッジ以外に、たとえば、コンピュータ読み取り可能なフレキシブルディスク、半導体メモリ、CD−ROM、DVD、MO、ROMカセット、その他のものが挙げられる。