〔ゲーム装置の構成と動作〕
図1は、本発明の一実施形態によるコンピュータの基本構成を示している。このコンピュータの構成は、ゲーム装置の構成と同様の構成を有している。ここでは、ゲーム装置に記録されたプログラムを実行可能、且つこのプログラムを修正可能な、コンピュータ(開発用のゲーム装置)が用いられる。
開発用のゲーム装置は、開発用のゲーム装置本体およびテレビジョンを備える。開発用のゲーム装置本体には、記録媒体10が装填可能となっており、記録媒体10からゲームデータが適宜読み出されてゲームが実行される。このようにして実行されるゲーム内容がテレビジョンに表示される。
開発用のゲーム装置のゲームシステムは、制御部1と、記憶部2と、画像表示部3と、音声出力部4と、操作入力部5、通信部23とからなっており、それぞれがバス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次元空間上への位置変換計算と、光源計算処理と、3次元空間上又は擬似3次元空間上で実行された計算結果に基づいた画像および音声データの生成加工処理とを行っている。画像処理プロセッサ9は、主に、信号処理プロセッサ8の計算結果および処理結果に基づいて、描画すべき画像データをRAM12に書き込む処理を行っている。また、CPU7は、信号処理プロセッサ8に対して、各種データを処理するように命令する。信号処理プロセッサ8は、主に、3次元空間上における各種データに対応する計算と、3次元空間上から擬似3次元空間上への位置変換計算とを行っている。
記憶部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の各ボタン及び各キーは、外部からの押圧力によって中立位置から押圧されるとオンになり、押圧力が解除されると中立位置に復帰してオフになるオンオフスイッチになっている。
通信部23は、通信制御回路24および通信インターフェース25を有している。通信制御回路24および通信インターフェース25は、ゲーム装置をサーバや他のゲーム装置等に接続するために用いられる。通信制御回路24および通信インターフェース25は、バス6を介してCPU7に接続されている。通信制御回路24および通信インターフェース25は、CPU7からの命令に応じて、ゲーム装置をインターネットに接続するための接続信号を制御し発信する。また、通信制御回路24および通信インターフェース25は、インターネットを介してゲーム装置をサーバや他のゲーム装置に接続するための接続信号を制御し発信する。
以上のような構成からなる開発用のゲーム装置の概略動作を、以下に説明する。電源スイッチ(図示省略)がオンにされゲームシステム1に電源が投入されると、CPU7が、記録媒体10に記憶されているオペレーティングシステムに基づいて、記録媒体10から画像データ、音声データ、およびプログラムデータを読み出す。読み出された画像データ、音声データ、およびプログラムデータの一部若しくは全部は、RAM12に格納される。そして、CPU7が、RAM12に格納されたプログラムデータに基づいて、RAM12に格納された画像データや音声データを画像や音声としてテレビジョンモニタ20やスピーカ13に出力するためのコマンドを発行する。
画像データの場合、CPU7からのコマンドに基づいて、まず、信号処理プロセッサ8が、3次元空間上におけるキャラクタやオブジェクト等の位置計算および光源計算などを行う。次に、画像処理プロセッサ9が、信号処理プロセッサ8の計算結果に基づいて、描画すべき画像データのRAM12への書き込み処理などを行う。そして、RAM12に書き込まれた画像データが、インターフェース回路21を介してD/Aコンバータ22に供給される。ここで、画像データがD/Aコンバータ22でアナログ映像信号に変換される。そして、画像データはテレビジョンモニタ20に供給され画像として表示される。
音声データの場合、まず、信号処理プロセッサ8が、CPU7からのコマンドに基づいて音声データの生成および加工処理を行う。ここでは、音声データに対して、たとえば、ピッチの変換、ノイズの付加、エンベロープの設定、レベルの設定及びリバーブの付加などの処理が施される。次に、音声データは、信号処理プロセッサ8から出力されて、インターフェース回路16を介してD/Aコンバータ15に供給される。ここで、音声データがアナログ音声信号に変換される。そして、音声データは増幅回路14を介してスピーカ13から音声として出力される。
〔ゲーム装置における各種処理概要〕
本ゲーム装置において開発されるゲームは、たとえば、野球ゲームである。本ゲーム装置において開発される野球ゲームでは、ゲーム空間に配置されたモデルが、テレビジョンモニタ20に表示される。図2は、本発明で主要な役割を果たす機能を説明するための機能ブロック図である。
仮想カメラ配置手段50は、仮想カメラの位置座標データを、CPU7に認識させることにより、仮想カメラをゲーム空間に配置する機能を備えている。
この手段では、仮想カメラの位置座標データを、CPU7に認識させることにより、仮想カメラが、ゲーム空間に配置される。たとえば、RAM12に格納された仮想カメラの位置座標データを、CPU7に認識させることにより、仮想カメラが、ゲーム空間に配置される。また、CPU7から発行された移動命令に基づいて、仮想カメラが移動させられた場合、この移動命令に対応する仮想カメラの位置座標データが、CPU7に認識される。これにより、仮想カメラが、ゲーム空間に配置される。なお、仮想カメラを移動するための移動命令は、コントローラ17が操作されたときの入力信号や、自動制御プログラム(AIプログラム、Artificial Intelligence Program)に記述された命令等に基づいて、CPU7から発行される。
視錐空間設定手段51は、ゲーム空間においてテレビジョンモニタ20に表示する空間を規定するための表示空間用のデータを、CPU7に認識させることにより、仮想カメラの撮影対象となる視錐空間を、ゲーム空間に設定する機能を備えている。
この手段では、表示空間用のデータをCPU7に認識させることにより、仮想カメラの撮影対象となる視錐空間が、ゲーム空間に設定される。ここでは、表示空間用データは、仮想カメラの注視点の位置座標データ、仮想カメラの画角に対応する角度データ、視錐空間の奥行き方向の範囲を規定するための位置データから構成されている。
これら表示空間用のデータをCPU7に認識させることにより、仮想カメラの撮影対象となる視錐空間が、ゲーム空間に設定される。なお、ここでは、仮想カメラの画角は、仮想カメラと注視点とを結ぶ直線を基準線として、水平方向および垂直方向に、定義されている。また、視錐空間の奥行き方向の範囲を規定するための位置データが示す位置は、仮想カメラと注視点とを結ぶ直線上に定義されている。
モデル配置手段52は、初期条件としてのモデルの位置座標データを、CPU7に認識させることにより、モデルをゲーム空間に配置する機能を備えている。
この手段では、初期条件としてのモデルの位置座標データを、CPU7に認識させることにより、モデルがゲーム空間における初期位置に配置される。たとえば、初期条件としてのモデルの代表位置(ex. 重心)の位置座標データを、CPU7に認識させることにより、モデルがゲーム空間における初期位置に配置される。なお、モデルの代表位置の位置座標データは、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。
第1モデル表示手段53は、ゲーム空間に配置されたモデルの画像を、テレビジョンモニタ20に表示する機能を備えている。
この手段では、ゲーム空間に初期配置されたモデルの画像が、テレビジョンモニタ20に表示される。たとえば、視錐空間の内部に位置するモデルを、仮想カメラにより撮影することにより、テクスチャが貼り付けられたポリゴンデータ等からなる3次元画像データを、2次元の画像データに変換する処理が、CPU7により実行され、RAM12に格納される。そして、この2次元の画像データが、インターフェース回路21を介してD/Aコンバータ22に供給される。すると、この2次元の画像データがアナログ画像信号に変換され、このアナログ画像信号を用いて、モデルの画像が、テレビジョンモニタ20に表示される。
再生速度調節手段54は、複数の再生速度データの中のいずれか1つの再生速度データを、CPU7に認識させることにより、モデルの画像をテレビジョンモニタ20に表示するときの再生速度を、調節する機能を備えている。
この手段では、複数の再生速度データの中のいずれか1つの再生速度データを、CPU7に認識させることにより、モデルの画像が、テレビジョンモニタ20に表示される。たとえば、テレビジョンモニタ20に表示された再生速度設定用のボタンが、押された場合、再生速度設定画面が、テレビジョンモニタ20に表示される。再生速度設定画面では、通常速度(1.0倍速)、スロー(0.5倍速)、および超スロー(0.25倍速)のいずれか1つの速度が、設定可能になっている。ここで、通常速度(1.0倍速)、スロー(0.5倍速)、および超スロー(0.25倍速)のいずれか1つが選択されると、選択された項目に対応する再生速度データが、CPU7に認識される。このようにして、モデルの画像をテレビジョンモニタ20に表示するときの再生速度が、設定される。
対象モデル抽出手段55は、モデルの画像の明度を分析する処理を、CPU7に実行させることにより、仮想カメラの焦点の設定対象にする複数のモデルを、抽出する機能を備えている。
この手段では、モデルの画像の明度たとえばモデルの画像のコントラストデータを分析する処理を、CPU7に実行させることにより、仮想カメラの焦点の設定対象にする複数のモデルが、抽出される。たとえば、「10ピクセル×10ピクセル」の範囲をスライドしながら、2次元の画像データのコントラストデータを分析する処理が、CPU7により実行される。ここでは、仮想カメラの焦点の設定対象にするモデルのコントラストデータ(モデル用のコントラストデータ)が、2次元の画像データのコントラストデータ(画像用のコントラストデータ)に含まれているか否かが、CPU7により判断される。そして、モデル用のコントラストデータが画像用のコントラストデータに含まれていた場合、モデル用のコントラストデータを含む部分の画像に対応する、モデルの代表位置が、CPU7に認識される。このようにして、仮想カメラの焦点の設定対象にする複数のモデルが、抽出される。
なお、モデル用のコントラストデータは、ゲームプログラムに予め規定されており、RAM12に格納されている。
モデル位置記録手段56は、設定対象のモデルの位置座標データを、RAM12に格納することにより、モデルの配置位置を記録する機能を備えている。
この手段では、設定対象のモデルの位置座標データを、RAM12に格納することにより、モデルの位置が記録される。たとえば、静止中のモデルの代表位置や移動中のモデルの代表位置等の位置座標データを、RAM12に格納することにより、モデルの位置が記録される。具体的には、プレイ中にモデルが移動した場合、移動中のモデルの位置座標データが、RAM12に格納される。また、プレイ中にモデルが静止している場合は、静止状態のモデルの位置座標データが、RAM12に格納される。このようにして、モデルの位置が記録される。なお、モデルの位置座標データは、代表位置に対応する位置座標データである。
移動速度算出手段57は、モデルの位置座標データに基づいて、モデルの移動速度に対応する移動速度データを計算する処理を、CPU7に実行させることにより、モデルの移動速度を算出する機能を備えている。
この手段では、設定対象のモデルの位置座標データに基づいて、モデルの移動速度に対応する移動速度データを計算する処理を、CPU7に実行させることにより、モデルの移動速度が算出される、たとえば、ある時間のモデルの位置座標データと、1フレーム(1/60sec)後のモデルの位置座標データとに基づいて、モデルの移動速度データが、CPU7により計算される。具体的には、ある時間のモデルの位置座標データを「P1」と表記し、1フレーム(1/60sec)後のモデルの位置座標データを「P2」と表記すると、モデルの移動速度データは、「(P2−P1)/(1/60)」を用いることにより、CPU7により算出される。ここでは、このようにして、1フレームごとのモデルの移動速度が、算出される。
モデル動作判断手段58は、複数のモデルそれぞれの移動速度データをCPU7に認識させることにより、複数のモデルの中の少なくともいずれか1つのモデルが移動しているか否かを、判断する機能を備えている。
この手段では、複数のモデルそれぞれの移動速度データをCPU7に認識させ、正値を有する移動速度データを検出する処理を、制御部に実行させることにより、複数のモデルの少なくともいずれか1つのモデルが移動中であるか否かが、判別される。たとえば、各モデルの移動速度データが「0(ゼロ)」より大きいか否かが、CPU7により判断される。具体的には、モデルの移動速度データを「V」と表記すると、「V>0」が成立しているか否かが、各モデルに対して、CPU7により照合される。そして、「V>0」が成立したモデルが、移動中のモデルであると、CPU7に認識される。
焦点移動手段59は、複数のモデルそれぞれの移動速度データの大きさに応じて、1つのモデルから他のモデルに、仮想カメラの焦点を移動する命令を、CPU7に発行させることにより、仮想カメラの焦点位置を移動する機能を備えている。
この手段では、複数のモデルの中の少なくともいずれか1つのモデルが移動している場合、移動速度の大きい順に、1つのモデルから他のモデルに、仮想カメラの焦点を移動する命令を、CPU7に発行させることにより、仮想カメラの焦点位置が移動させられる。
たとえば、移動中のモデル(移動速度>0)の中で、移動速度の大きい順に、あるモデルから他のモデルに、仮想カメラの焦点位置を移動させる命令が、CPU7から発行される。具体的には、ボールが打ち返されヒットになった場合、移動速度が最も大きなボールモデル、移動速度が次に大きな走塁中の打者モデル、移動速度が比較的小さな投手モデルの順に、仮想カメラの焦点位置を移動させることができる。
一方で、この手段では、全てのモデルが静止している場合、静止中の1つのモデルから静止中の他のモデルに、仮想カメラの焦点を移動する命令を、CPU7に発行させることにより、仮想カメラの焦点位置が移動させられる。
たとえば、静止中のモデル(移動速度=0)の中で、静止中のあるモデルから静止中の他のモデルに、仮想カメラの焦点位置を移動させる命令が、CPU7から発行される。具体的には、1プレイの開始時等に、定位置に配置された野手モデルの間で、ある野手モデルから他の野手モデルへと、仮想カメラの焦点位置が移動させられる。
焦点モデル選択手段60は、仮想カメラの焦点を決定する命令がCPU7から発行されたときに、仮想カメラの焦点が位置するモデルを、仮想カメラの焦点を設定するモデルとして選択する機能を備えている。
この手段では、仮想カメラの焦点を決定する命令がCPU7から発行されたときに、仮想カメラの焦点が位置するモデルが、仮想カメラの焦点を設定するモデルとして選択される。たとえば、ゲーム制作者がコントローラ17を操作することによって、仮想カメラの焦点を決定する命令がCPU7から発行されると、仮想カメラの焦点が位置するモデルが、仮想カメラの焦点を設定するモデルとして選択される。具体的には、仮想カメラの焦点がモデル間を移動しているときに、ゲーム制作者がコントローラ17の右スティック17SRを押し下げると、このときに仮想カメラの焦点が位置しているモデルが、仮想カメラの焦点を設定するモデルとして選択される。
第2モデル表示手段61は、選択されたモデルに対して仮想カメラの焦点を設定した状態で、仮想カメラに映るモデルの画像を、テレビジョンモニタ20に表示する機能を備えている。
この手段では、選択されたモデルに、仮想カメラの焦点を設定した状態で、仮想カメラに映るモデルの画像が、調節後の再生速度で、テレビジョンモニタ20に表示される。たとえば、コントローラ17により選択されたモデルに対して、仮想カメラの焦点を設定した状態で、仮想カメラに映るモデルの画像が、調節後の再生速度で、テレビジョンモニタ20に表示される。具体的には、ゲーム制作者により選択されたモデルに対して、仮想カメラの焦点を設定した状態で、仮想カメラに映るモデルの画像が、調節後の再生速度で、テレビジョンモニタ20に表示される。
〔野球ゲームの開発時に用いられる焦点設定システムの概要〕
ここでは、野球ゲームの開発時に用いられる焦点設定システムの具体的な内容について説明する。また、図8に示すフローについても同時に説明する。以下では、投手と打者とが対戦する場面において、焦点設定システムが機能する場合を一例として、説明を行う。
まず、開発用のゲーム装置の電源が投入されゲーム装置が起動されると、開発用の野球ゲームプログラムが、記録媒体10からRAM12にロードされ格納される。このときには、開発用の野球ゲームを実行する上で必要となる各種の基本ゲームデータも、同時に、記録媒体10からRAM12にロードされ格納される(S1)。
たとえば、基本ゲームデータには、各種の画像に関するデータが、含まれている。各種の画像に関するデータには、たとえば、モデルの画像に関するデータが、含まれている。モデルの画像に関するデータには、ポリゴンデータ、テクスチャデータ、およびシェーダデータ等が、含まれている。また、基本ゲームデータには、ゲーム空間用の各種の画像に関するデータを3次元ゲーム空間に配置するための位置座標データが含まれている。なお、本システムで用いられる各種のデータも、基本ゲームデータに含まれている。
ここで、「モデル」という文言は、スタジアム用のモデル(以下では、スタジアムモデルと呼ぶ)、選手用のモデル(以下では、選手モデルと呼ぶ)、およびボール用のモデル(以下では、ボールモデルと呼ぶ)等の、ゲーム空間に配置される全モデルを総称している。また、ゲーム空間に配置されるモデルには、基準位置(代表位置)が定義されている。この基準位置(代表位置)の位置座標データを指示することにより、各種のモデルをゲーム空間の所定の位置に配置することができる。
次に、仮想カメラCが、ゲーム空間に配置される(S2)。たとえば、RAM12に格納された、仮想カメラCの初期の配置位置C1を示す位置座標データが、CPU7に認識される。また、仮想カメラCを移動するための移動命令が、コントローラ17が操作されたときの入力信号や、自動制御プログラムに記述された命令等に基づいて、CPU7から発行された場合、移動後の仮想カメラCの位置座標データが、CPU7に認識される。すると、図3に示すように、仮想カメラCが、ゲーム空間に配置される。なお、この仮想カメラCは、コントローラ17により手動で移動可能、且つ自動制御プログラムにより自動で移動可能になっている。
ここでは、ホームベースの重心が、ゲーム空間を規定する原点Oに設定されている。そして、ホームベースの重心を基準として、ホームベースの垂直上方がz軸に設定されている。そして、ホームベースの重心を基準として、z軸に垂直であり、ホームベースから投手板(プレート)に向かう方向に、y軸が設定されている。そして、y軸およびz軸に垂直であり、1塁スタンド側に延びる方向に、x軸が設定されている。このような座標系(絶対座標系)によって、ゲーム空間は定義されている。
投手キャラクタと打者キャラクタとが対戦する場面では、バックネットとホームベースとの間に、仮想カメラCが配置される。たとえば、ホームベースの重心(原点)を基準とした、プレートとは反対側のy軸上の所定の位置C1に、仮想カメラCが配置される。仮想カメラCの配置位置C1を示す位置座標データ(仮想カメラCの位置座標データ)は、ゲームプログラムにおいて予め規定されたデータであり、RAM12に格納されている。この仮想カメラCの位置座標データを、CPU7に認識させることにより、仮想カメラCが、ゲーム空間の上記の配置位置C1に配置される。
なお、ここでは、投手モデルとバックネットとの間に、仮想カメラCの初期の配置位置C1が設定される場合の例を示しているが、仮想カメラCの配置位置C1は、上記の例の位置に限定されず、どの位置に配置しても良い。
続いて、図3に示すように、ゲーム空間において仮想カメラCが撮影可能な空間すなわち視錐空間SSが、設定される(S3)。たとえば、視錐空間SSを規定するための表示空間用のデータHS(m)を、CPU7に認識させることにより、視錐空間SSが、ゲーム空間に設定される。ここで、mは、1から5までの自然数をとる。表示空間用のデータHS(m)は、仮想カメラCの注視点の位置座標データHS(1)、仮想カメラCの画角G1,G2に対応する角度データHS(2),HS(3)、および仮想カメラCで撮影する奥行き方向の撮影範囲を規定するための位置データHS(4),HS(5)から構成されている。
具体的には、仮想カメラCの注視点C2の位置座標データHS(1)を、CPU7に認識させることにより、仮想カメラCの注視点C2が、ゲーム空間に設定される。これにより、仮想カメラCの視線方向が、ゲーム空間に設定される。そして、仮想カメラCの画角G1,G2に対応する角度データHS(2),HS(3)を、CPU7に認識させることにより、視錐空間SSの上下方向および左右方向の範囲が設定される。
そして、仮想カメラCの視線方向に互いに所定の間隔を隔てて配置された2つの位置データHS(4),HS(5)を、CPU7に認識させることにより、奥行き方向の撮影範囲が設定される。仮想カメラCの視線方向の位置データHS(4),HS(5)は、仮想カメラCの配置位置から所定の第1距離を隔てた位置の位置座標データHS(4)、および仮想カメラCの配置位置から所定の第2距離(>第1距離)を隔てた位置の位置座標データHS(5)から構成されている。
仮想カメラCから所定の第1距離を隔てた位置P1の位置座標データHS(4)を、CPU7に認識させることにより、仮想カメラCと注視点C2とを結ぶ直線に直交する第1面D1(カメラ側に近い面)が、設定される。また、仮想カメラCから所定の第2距離(>第1距離)を隔てた位置P2の位置座標データHS(5)を、CPU7に認識させることにより、仮想カメラCと注視点C2とを結ぶ直線に直交する第2面D2(仮想カメラCを基準として第1面より離れた面)が、設定される。
ここで、第1面D1は、仮想カメラCとホームベース(原点)との間に設定される。また、仮想カメラCの注視点C2は、センターのスタンドに設定される。たとえば、仮想カメラCの注視点C2は、y軸上の所定の位置から上方に所定の距離を隔てた位置、たとえばセンタースタンドに、配置される。
また、仮想カメラCの画角G1,G2は、仮想カメラCの配置位置C1と注視点C2とを結ぶ直線を基準として、水平方向および垂直方向に、定義されている。たとえば、仮想カメラCの水平方向の画角G1は、仮想カメラCの配置位置C1と注視点C2とを結ぶ基準線を中心に、この基準線の左右方向に所定の角度に設定される。また、仮想カメラCの垂直方向の画角G2は、仮想カメラCの配置位置C1と注視点C2とを結ぶ基準線を中心に、この基準線の垂直方向に所定の角度に設定される。
さらに、仮想カメラCから所定の第1距離を隔てた位置P1、および仮想カメラCから所定の第2距離を隔てた位置P2は、仮想カメラCと注視点C2とを結ぶ直線上に定義されている。ここでは、仮想カメラCから第1距離を隔てた位置P1は、仮想カメラCの配置位置C1とホームベース(原点)との間の所定の位置に、設定される。また、仮想カメラCから第2距離を隔てた位置P2は、スタンド場外の所定の位置に、設定される。
上記の表示空間用のデータHS(m)は、ゲームプログラムにおいて予め規定されたデータである。表示空間用のデータHS(m)は、RAM12に格納されている。このような表示空間用のデータHS(m)を、CPU7に認識させることにより、視錐空間SSが、ゲーム空間の内部に配置される。
なお、表示空間用のデータHS(1),HS(4),HS(5)は、位置座標データを表す記号である。このため、厳密には、表示空間用のデータHS(1),HS(4),HS(5)は、HS(x,y,z,1),HS(x,y,z,4),HS(x,y,z,5)となる。しかしながら、ここでは、表示空間用のデータを、「HS(1),HS(4),HS(5)」のように簡略化して表記している。また、表示空間用のデータHS(2),HS(3)は、角度データを表す記号である。
上記のように、視錐空間SSがゲーム空間に設定されると、各種のモデルがゲーム空間に配置される(S4)。たとえば、初期条件としての各モデルの代表位置の位置座標データを、CPU7に認識させることにより、各種のモデルがゲーム空間に配置される。
具体的には、選手モデルの場合、所定の位置たとえば腰の位置が、代表位置に設定されている。そして、選手モデルの代表位置の位置座標データを、CPU7に認識させることにより、初期姿勢をとった選手モデルが、ゲーム空間に配置される。たとえば、投球姿勢をとった投手モデル、打撃姿勢をとった打者モデル、捕球姿勢をとった野手モデル等が、ゲーム空間に配置される。また、スタジアムや他のモデル等も、選手モデルの場合と同様にして、ゲーム空間に配置される。
なお、静止時の選手モデルおよび移動時の選手モデルがとり得る姿勢は、ゲームプログラムにおいて予め規定されている。また、モデルの代表位置の位置座標データは、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。
このようにして、各モデルがゲーム空間に配置されると、仮想カメラCの焦点SFの初期位置P_SFoが、ゲーム空間に設定される(S5)。たとえば、仮想カメラCの焦点SFの初期位置P_SFoが、視錐空間SS内の所定の位置、たとえば打者モデルの代表位置に、設定される(図3を参照)。この位置は、ゲームプログラムにおいて予め規定されている。
続いて、図4に示すように、ゲーム空間に配置されたモデルの初期画像が、テレビジョンモニタ20に表示される(S6)。たとえば、視錐空間の内部に位置するモデルを、仮想カメラCにより撮影することにより、ゲーム空間に配置されたモデルの画像が、テレビジョンモニタ20に表示される。具体的には、テクスチャやシェーダ等が貼り付けられたポリゴンから構成される、ゲーム空間内の各種のモデル(3次元画像データ)を、2次元の画像データに変換する処理が、CPU7により実行され、RAM12に格納される。そして、この2次元の画像データが、インターフェース回路21を介してD/Aコンバータ22に供給される。すると、この2次元の画像データがアナログ画像信号に変換され、このアナログ画像信号を用いて、モデルの画像が、テレビジョンモニタ20に表示される。
このようにして、ゲーム空間に配置されたモデルの初期画像が、テレビジョンモニタ20に表示されたときに、テレビジョンモニタ20に表示された再生速度設定用のボタン70(図4を参照)が、押されると、図5に示すように、再生速度設定画面170が、テレビジョンモニタ20に表示される。再生速度設定画面170では、通常速度(1.0倍速)、スロー(0.25倍速)、および超スロー(0.1倍速)のいずれか1つの速度が、設定可能になっている。ここでは、再生速度設定画面には、「通常(速度)」、「スロー(速度)」、および「超スロー(速度)」の3つの項目が、表示される。これら項目の中のいずれか1つの項目が、コントローラ17を用いて選択されると、選択された項目に対応する再生速度データが、CPU7に認識される。これにより、モデルの画像をテレビジョンモニタ20に表示するときの再生速度が、設定される(S7)。
続いて、仮想カメラCの焦点SFを設定する対象、すなわち焦点対象モデルが、抽出される(S8)。たとえば、モデルの画像のコントラストデータを分析する処理を、CPU7に実行させることにより、焦点対象モデルが、抽出される。ここでは、焦点対象モデルには、投手モデルを含む野手モデル、打者モデル、およびボールモデルが、対応している。
ここで、コントラストデータは、焦点対象モデルとその背景との境界で生じる明度の差を示すデータである。具体的には、焦点対象モデルのテクスチャの明度と背景のテクスチャの明度との差を示すデータが、コントラストデータとして用いられる。そして、このコントラストデータを画像データから検出することにより、焦点対象モデルが抽出される。また、焦点対象モデルのテクスチャの明度そのものを、コントラストデータとして用いても良い。この場合、たとえば、焦点対象モデルが、オレンジと黒の縞模様のユニフォームを着た選手モデルであった場合、オレンジと黒が隣り合っている箇所を画像データから検出することにより、焦点対象モデルが抽出される。
具体的には、図6に示すように、2次元の画像データにおける「10ピクセル×10ピクセル」の範囲80を走査することにより、焦点対象モデルのコントラストデータ(モデル用のコントラストデータ)が、2次元の画像データのコントラストデータ(画像用のコントラストデータ)に含まれているか否かが、CPU7により判断される。なお、図6の「10ピクセル×10ピクセル」の範囲80は、図を理解しやすいように、拡大して示されている。
そして、「10ピクセル×10ピクセル」の範囲内にモデル用のコントラストデータが、画像用のコントラストデータに含まれていた場合、このモデル用のコントラストデータを含む画像に対応するモデルが、焦点対象モデルとして抽出される。ここでは、投手画像を含む野手画像、打者画像、およびボール画像が、各画像に対応するコントラストデータに基づいて、CPU7により検索される。そして、これらの画像に対応するモデル、たとえば野手モデル、打者モデル、およびボールモデルが、焦点対象モデルとして特定される。すなわち、焦点対象モデルの代表位置を、CPU7に認識させることにより、焦点対象モデルが特定される。
なお、ボールが投手からリリースされていない場合、ボールは投手のグローブの中に位置しており、2次元の画像データに表現されていないことがある。この場合にボールモデルを特定することができるように、本実施形態では、ボールモデルの代表位置はCPU7に常に認識されるように、設定されている。すなわち、ボールモデルは、必ず、仮想カメラCの焦点SFの設定対象として、抽出される。
ここで、2次元の画像は、ゲーム空間に配置されたモデル(3次元画像データ)をある2次元平面たとえば第1面D1に投影することにより得られる画像である。このため、モデル用のコントラストデータを含む画像に対応する、ゲーム空間の選手モデルは、上記の投影の逆変換を行うことにより、特定することができる。この場合、ゲーム空間に配置されたモデルの奥行き方向の情報(位置座標データ)が必要になる場合がある。このため、上記の投影時には、各モデルの奥行き方向の情報が、RAM12に格納される。
続いて、プレイの開始を示す命令がCPU7から発行されると(S9)、焦点対象モデルの配置位置が、記録される(S10)。たとえば、焦点対象モデルの代表位置における位置座標データが、RAM12に格納される。具体的には、プレイ中に選手モデルやボールモデルが移動した場合、移動中のモデルの位置座標データが、RAM12に格納される。また、プレイ中に選手モデルやボールモデルが静止している場合は、静止中のモデルの位置座標データが、RAM12に格納される。このようにして、焦点対象モデルの配置位置が、1フレームごとに記録される。
続いて、焦点対象モデルの移動速度が、算出される(S11)。たとえば、焦点対象モデルの位置座標データに基づいて、焦点対象モデルの移動速度に対応する移動速度データを計算する処理が、CPU7により実行される。具体的には、焦点対象モデルの代表位置を微分する処理が、CPU7により実行される。ここでは、焦点対象モデルの代表位置の位置座標データおよび単位時間データに基づいて、焦点対象モデルの移動速度データが算出される。
たとえば、ある時間の焦点対象モデルの位置座標データと、1フレーム(1/60sec)後の焦点対象モデルの位置座標データとに基づいて、焦点対象モデルの移動速度データが、CPU7により計算される。より具体的には、ある時間の焦点対象モデルの位置座標データを「P1」と表記し、1フレーム(1/60sec)後の焦点対象モデルの位置座標データを「P2」と表記すると、「(P2−P1)/(1/60)」をCPU7に計算させることにより、焦点対象モデルの移動速度データが算出される。このようにして、焦点対象モデルの移動速度が、1フレームごとに算出される。
なお、「P,P1,P2」は、モデルの位置座標データを簡略的に表現した記号である。このため、厳密には、これら記号は、P(x,y,z,ID),P1(x,y,z,ID),P2(x,y,z,ID)となる。また、「V」は、各モデルの移動速度データを簡略的に表現した記号である。このため、厳密には、この記号は、V(ID)となる。ここで、「ID」は、複数のモデルそれぞれを識別するための識別番号である。この識別番号IDにより、各モデルがCPU7により管理されている。
続いて、移動中の焦点対象モデルの有無が、判別される(S12)。たとえば、各フレームにおいて、各焦点対象モデルの移動速度データVが、CPU7に認識される。そして、各フレームにおいて、正値を有する移動速度データVを検出する処理が、制御部により実行される。具体的には、各フレームにおいて、各焦点対象モデルの移動速度データVが「0(ゼロ)」より大きいか否かが、CPU7により判断される。そして、各焦点対象モデルの移動速度データVが「0(ゼロ)」以下である場合(S12でNo)、たとえば全ての焦点対象モデルの移動速度データVが「0(ゼロ)」に等しい場合(V=0)、全ての焦点対象モデルが静止中であると判断される。
この場合、仮想カメラCの焦点SFが、静止中の焦点対象モデル間で移動させられる(S13)。たとえば、全ての焦点対象モデルが静止中である場合(V=0)、静止中のある焦点対象モデルから静止中の他の焦点対象モデルへと、仮想カメラCの焦点SFを移動する命令が、CPU7から発行される。すると、仮想カメラCの焦点SFが位置する静止中の焦点対象モデルから、この焦点対象モデルに隣接する静止中の他の焦点対象モデルへと、仮想カメラCの焦点位置が、移動させられる。
たとえば、投手キャラクタと打者キャラクタとが対戦する場面においては、プレイの開始時等に、全ての焦点対象モデルの移動速度データVが、「0(ゼロ)」になるときがある。このときには、静止中の焦点対象モデル(V=0)の中で、仮想カメラCの焦点SFが位置する静止中の焦点対象モデルから、この焦点対象モデルに最も近い位置の静止中の他の焦点対象モデルへと、仮想カメラCの焦点位置が、移動させられる。具体的には、仮想カメラCの焦点SFの初期位置P_SFoは、上述したように、打者モデルに設定されている。このため、この場面では、打者モデルから、投手モデル、ファーストモデル、・・・のような順に、仮想カメラCの焦点位置が、移動させられる。
なお、ここでは、1sec(60フレーム)ごとに、仮想カメラCの焦点位置を移動する命令が、CPU7から発行される。すなわち、1secごとに、仮想カメラCの焦点位置が、移動させられる。
このように、モデル間を仮想カメラCの焦点位置が、移動しているときには、仮想カメラCに映るモデルの画像が、テレビジョンモニタ20に表示される(S14)。詳細には、仮想カメラCに映るモデルの画像が、調節後の再生速度で、テレビジョンモニタ20に表示される。また、このときには、仮想カメラCの焦点SFの位置を報知するための報知画像80が、テレビジョンモニタ20に表示される。たとえば、打者モデル、投手モデル、ファーストモデル、・・・のような順に、報知画像たとえば三角記号80が移動する状態が、テレビジョンモニタ20に表示される。なお、図7(a)では、打者モデルに焦点SFが位置しているときの画像が、示されている。また、図7(b)には、投手モデルに焦点SFが位置しているときの画像が、示されている。
また、仮想カメラCの焦点SFが移動しているときには、仮想カメラCの焦点SFを設定するモデル(焦点設定モデル)が選択される(S15)。たとえば、ゲーム制作者がコントローラ17を操作することによって、仮想カメラCの焦点SFを決定する命令がCPU7から発行されると、仮想カメラCの焦点SFが位置する焦点対象モデルが、焦点設定モデルとして選択される。具体的には、仮想カメラCの焦点SFが焦点対象モデル間を移動しているときに、ゲーム制作者がコントローラ17の右スティック17SRを押し下げると、このときに仮想カメラCの焦点SFが位置している焦点対象モデルが、焦点設定モデルとして選択される。
すると、焦点設定モデルに対して仮想カメラCの焦点SFを設定した状態で、仮想カメラCに映るモデルの画像が、テレビジョンモニタ20に表示される(S16)。詳細には、焦点設定モデルに対して、仮想カメラCの焦点SFを設定した状態で、仮想カメラCに映るモデルの画像が、調節後の再生速度で、テレビジョンモニタ20に表示される。なお、以下では、プレイの開始時に、打者キャラクタが、焦点設定モデルとして選択された場合を例として、説明を行う。
続いて、プレイが終了したか否かが、CPU7により判断される(S17)。ここで、プレイが終了した場合(S17でYes)、すなわちプレイの終了を示す命令がCPU7から発行された場合、プレイ中の各種データがRAM12に格納される(S18)。なお、プレイの終了を示す命令が発行されるタイミングは、ゲームプログラムにおいて予め規定されている。たとえば、1プレイが終了したときに、プレイの終了を示す命令が、CPU7から自動的に発行される。このため、プレイが継続中の場合(S17でNo)、ステップ10(S10)の以降の処理が、CPU7により繰り返し実行される。このように、1プレイが終了するまで、実行中の処理が、CPU7により監視される。そして、プレイの終了を示す命令がCPU7から発行されたときに、プレイが終了する。
続いて、複数の焦点対象モデルの中の少なくともいずれか1つの焦点対象モデルが、移動した場合(S12でYes,V>0)、すなわち移動中の焦点対象モデルの存在が確認された場合、移動中の焦点対象モデル(V>0)の中で、移動速度データVの大きい順に、ある焦点対象モデルから他の焦点対象モデルに、仮想カメラCの焦点SFを移動する命令が、CPU7から発行される。ここでは、移動速度データVの大きい順に、焦点対象モデルの代表位置の位置座標データがCPU7に認識される。そして、移動速度データVの値が大きい焦点対象モデルから、移動速度データVの値が小さい焦点対象モデルへと、仮想カメラCの焦点位置が、移動させられる(S19)。
たとえば、投手キャラクタと打者キャラクタとが対戦する場面においては、上述したように、プレイの開始時に、仮想カメラCの焦点SFが、ゲーム制作者により、打者キャラクタが焦点設定モデルに設定されている。この状態において、投手モデルがゲーム空間おいて投球動作を開始すると、仮想カメラCの焦点位置が、打者モデルから投手モデルへと移動する。そして、仮想カメラCの焦点位置が、投手モデルから、投手モデルの移動速度より小さな移動速度で移動する焦点対象モデルへと移動する。
ここで、投手モデルの移動速度より小さな移動速度で移動する焦点対象モデルが、静止している場合は、投手モデルから、投手モデルに最も近い静止中の焦点対象モデルへと、仮想カメラCの焦点位置が移動する。そして、投手モデルに最も近い静止中の焦点対象モデルから、この静止中の焦点対象モデルに最も近い他の静止中の焦点対象モデルへと、仮想カメラCの焦点位置が移動する。ここでは、投手モデルに最も近い静止中の焦点対象モデル、およびこの静止中の焦点対象モデルに最も近い他の静止中の焦点対象モデルは、各モデルの位置座標データに基づいて、モデル間の距離をCPU7に計算させることにより、特定される。
なお、ここでは、1sec(60フレーム)ごとに、仮想カメラCの焦点位置を移動する命令が、CPU7から発行される。すなわち、1secごとに、仮想カメラCの焦点位置が、移動させられる。
このように、モデル間を仮想カメラCの焦点位置が、移動しているときには、仮想カメラCに映るモデルの画像が、テレビジョンモニタ20に表示される(S20)。詳細には、仮想カメラCに映るモデルの画像が、調節後の再生速度で、テレビジョンモニタ20に表示される。また、このときには、仮想カメラCの焦点SFの位置を報知するための報知画像80が、テレビジョンモニタ20に表示される。たとえば、投手モデル、ボールモデル、・・・のような順に、報知画像たとえば三角記号80が移動する状態が、テレビジョンモニタ20に表示される。
そして、ここでも、仮想カメラCの焦点SFが移動しているときには、仮想カメラCの焦点SFを設定するモデル(焦点設定モデル)が選択される(S21)。たとえば、ゲーム制作者がコントローラ17を操作することによって、仮想カメラCの焦点SFを決定する命令がCPU7から発行されると、仮想カメラCの焦点SFが位置する焦点対象モデルが、焦点設定モデルとして選択される。具体的には、仮想カメラCの焦点SFが焦点対象モデル間を移動しているときに、ゲーム制作者がコントローラ17の右スティック17SRを押し下げると、このときに仮想カメラCの焦点SFが位置している焦点対象モデルが、焦点設定モデルとして選択される。
すると、焦点設定モデルに対して仮想カメラCの焦点SFを設定した状態で、仮想カメラCに映るモデルの画像が、テレビジョンモニタ20に表示される(S22)。詳細には、焦点設定モデルに対して、仮想カメラCの焦点SFを設定した状態で、仮想カメラCに映るモデルの画像が、調節後の再生速度で、テレビジョンモニタ20に表示される。そして、焦点設定モデルに対して仮想カメラCの焦点SFを設定した状態で、仮想カメラCに映るモデルの画像が、テレビジョンモニタ20に表示されると、上述したステップ17(S17)の処理が、CPU7により実行される。そして、1プレイが終了した場合(S17でYes)、プレイ中の各種データがRAM12に格納され(S18)、1プレイが継続中の場合(S17でYes)、ステップ10(S10)の以降の処理が、CPU7により繰り返し実行される。
続いて、今回のプレイをテレビジョンモニタ20に再表示するためのリプレイ命令が、指示されたか否かが、CPU7により判断される(S23)。たとえば、テレビジョンモニタ20に表示されたリプレイ用のボタン71(図4を参照)が押されたか否かが、CPU7により判断される(S23)。
ここで、リプレイ用のボタンが押された場合、すなわちリプレイ命令がCPU7に認識された場合(S23でYes)、設定済みの焦点設定モデルに対して、仮想カメラCの焦点SFを設定した状態で、仮想カメラCに映るモデルの画像が、通常の再生速度で、テレビジョンモニタ20に表示される(S24)。具体的には、設定済みの焦点設定モデルの切り換え、すなわち仮想カメラCの焦点位置の変更を行いながら、プレイの開始から終了までが、通常の再生速度で再生される。これにより、ゲーム制作者は、自らが行った仮想カメラCの焦点SFの設定の良し悪しを、判断することができる。
なお、ここで、リプレイ用のボタンが押されなかった場合(S23でNo)、ステップ25(S25)の処理が、CPU7により実行される。
続いて、仮想カメラCの焦点SFの設定位置を修正するための焦点位置修正命令が、指示されたか否かが、CPU7により判断される(S25)。たとえば、テレビジョンモニタ20に表示された焦点修正用のボタン72(図4を参照)が押されたか否かが、CPU7により判断される。ここで、焦点修正用のボタン72が押された場合、すなわち焦点位置修正命令がCPU7に認識された場合(S25でYes)、ステップ9(S9)の処理が、CPU7により再実行される。これにより、仮想カメラCの焦点位置を、再設定することができる。
このように、ゲーム制作者は、テレビジョンモニタ20に表示された画像を目で確認した上で、仮想カメラCの焦点SFを合わせるモデルを任意に変更することができる。これにより、ゲーム制作者は、所望のモデルに容易に仮想カメラCの焦点SFを合わせることができる。
続いて、焦点修正用のボタン72が押されなかった場合(S25でNo)、開発用の野球ゲームを終了するか否かが、CPU7により判断される(S26)。たとえば、開発用の野球ゲームを終了するためのゲーム終了ボタン(図示しない)が押されたか否かが、CPU7により判断される。ここで、ゲーム終了ボタンが押された場合、すなわちゲーム終了命令がCPU7に認識された場合(S26でYes)、本野球ゲームの各種データがRAM12に格納される(S27)。具体的には、ゲーム制作者が、コントローラ17を操作して、テレビジョンモニタ20に表示されたゲーム終了ボタンを押した場合、開発用の野球ゲームが終了される。
ここで、開発用の野球ゲームが継続中の場合(26でNo)、すなわち開発用の野球ゲームの終了を示す命令が指示されていない状態では、開発用の野球ゲームの終了を示す命令指示の有無が、CPU7により常に監視されている。この状態において、次のプレイの制御が、CPU7により実行される。すなわち、次のプレイにおけるステップ2(S2)の処理が、CPU7により実行される。
上記のような本実施形態では、画像のコントラストデータを分析することにより、仮想カメラCの焦点SFの設定対象にする焦点対象モデルを、他のモデルたとえばスタジアムモデル等と区別し、抽出することができる。
また、焦点対象モデルの移動速度データVの大きさに応じて、ある焦点対象モデルから他の焦点対象モデルに、仮想カメラCの焦点位置を移動させることができる。また、仮想カメラCの焦点位置が移動しているときに、ゲーム制作者が所望のタイミングで仮想カメラCの焦点SFを決定する命令を指示することにより、ゲーム制作者が所望する焦点対象モデルに対して、仮想カメラCの焦点SFを設定することができる。
具体的には、複数の焦点対象モデルの中の少なくともいずれか1つの焦点対象モデルが移動している場合、移動速度データVの大きい順に、ある焦点対象モデルから他の焦点対象モデルに、仮想カメラCの焦点SFを移動することができる。また、全ての焦点対象モデルが静止している場合、ある焦点対象モデルから、最も近い他の焦点対象モデルへと、仮想カメラCの焦点SFを移動することができる。
このように、本実施形態では、仮想カメラCの焦点SFの設定対象にする焦点対象モデルを、コントラストデータを用いて、容易に抽出することができる。そして、これら焦点対象モデルの中から、ゲーム制作者が所望する焦点対象モデルを、容易に選択し、この焦点対象モデルに、仮想カメラCの焦点SFを容易に設定することができる。
〔他の実施形態〕
(a)前記実施形態では、ゲームプログラムを適用しうるコンピュータの一例としての開発用のビデオゲーム装置を用いた場合の例を示したが、コンピュータは、前記実施形態に限定されず、モニタが別体に構成されたゲーム装置、モニタが一体に構成されたゲーム装置、ゲームプログラムを実行することによってゲーム装置として機能するパーソナルコンピュータやワークステーションなどにも同様に適用することができる。
(b)本発明には、前述したようなゲームを実行するプログラムおよびこのプログラムを記録したコンピュータ読み取り可能な記録媒体も含まれる。この記録媒体としては、カートリッジ以外に、たとえば、コンピュータ読み取り可能なフレキシブルディスク、半導体メモリ、CD−ROM、DVD、MO、ROMカセット、その他のものが挙げられる。