〔ゲーム装置の構成と動作〕
図1は、本発明の一実施形態によるゲーム装置の基本構成を示している。ここでは、ビデオゲーム装置の一例として、家庭用ビデオゲーム装置をとりあげて説明を行うこととする。家庭用ビデオゲーム装置は、家庭用ゲーム機本体および家庭用テレビジョンを備える。家庭用ゲーム機本体には、記録媒体10が装填可能となっており、記録媒体10からゲームデータが適宜読み出されてゲームが実行される。このようにして実行されるゲーム内容が家庭用テレビジョンに表示される。
家庭用ビデオゲーム装置のゲームシステムは、制御部1と、記憶部2と、画像表示部3と、音声出力部4と、操作入力部5とからなっており、それぞれがバス6を介して接続される。このバス6は、アドレスバス、データバス、およびコントロールバスなどを含んでいる。ここで、制御部1、記憶部2、音声出力部4および操作入力部5は、家庭用ビデオゲーム装置の家庭用ゲーム機本体に含まれており、画像表示部3は家庭用テレビジョンに含まれている。
制御部1は、主に、ゲームプログラムに基づいてゲーム全体の進行を制御するために設けられている。制御部1は、たとえば、CPU(Central Processing Unit)7と、信号処理プロセッサ8と、画像処理プロセッサ9とから構成されている。CPU7と信号処理プロセッサ8と画像処理プロセッサ9とは、それぞれがバス6を介して互いに接続されている。CPU7は、ゲームプログラムからの命令を解釈し、各種のデータ処理や制御を行う。たとえば、CPU7は、信号処理プロセッサ8に対して、画像データを画像処理プロセッサに供給するように命令する。信号処理プロセッサ8は、主に、3次元空間上における計算と、3次元空間上から擬似3次元空間上への位置変換計算と、光源計算処理と、画像および音声データの生成加工処理とを行っている。画像処理プロセッサ9は、主に、信号処理プロセッサ8の計算結果および処理結果に基づいて、描画すべき画像データをRAM12に書き込む処理を行っている。
記憶部2は、主に、プログラムデータや、プログラムデータで使用される各種データなどを格納しておくために設けられている。記憶部2は、たとえば、記録媒体10と、インターフェース回路11と、RAM(Random Access Memory)12とから構成されている。記録媒体10には、インターフェース回路11が接続されている。そして、インターフェース回路11とRAM12とはバス6を介して接続されている。記録媒体10は、オペレーションシステムのプログラムデータや、画像データ、音声データ並びに各種プログラムデータからなるゲームデータなどを記録するためのものである。この記録媒体10は、たとえば、ROM(Read Only Memory)カセット、光ディスク、およびフレキシブルディスクなどであり、オペレーティングシステムのプログラムデータやゲームデータなどが記憶される。なお、記録媒体10にはカード型メモリも含まれており、このカード型メモリは、主に、ゲームを中断するときに中断時点での各種ゲームパラメータを保存するために用いられる。RAM12は、記録媒体10から読み出された各種データを一時的に格納したり、制御部1からの処理結果を一時的に記録したりするために用いられる。このRAM12には、各種データとともに、各種データの記憶位置を示すアドレスデータが格納されており、任意のアドレスを指定して読み書きすることが可能になっている。
画像表示部3は、主に、画像処理プロセッサ9によってRAM12に書き込まれた画像データや、記録媒体10から読み出される画像データなどを画像として出力するために設けられている。この画像表示部3は、たとえば、テレビジョンモニタ20と、インターフェース回路21と、D/Aコンバータ(Digital-To-Analogコンバータ)22とから構成されている。テレビジョンモニタ20にはD/Aコンバータ22が接続されており、D/Aコンバータ22にはインターフェース回路21が接続されている。そして、インターフェース回路21にバス6が接続されている。ここでは、画像データが、インターフェース回路21を介してD/Aコンバータ22に供給され、ここでアナログ画像信号に変換される。そして、アナログ画像信号がテレビジョンモニタ20に画像として出力される。
ここで、画像データには、たとえば、ポリゴンデータやテクスチャデータなどがある。ポリゴンデータはポリゴンを構成する頂点の座標データのことである。テクスチャデータは、ポリゴンにテクスチャを設定するためのものであり、テクスチャ指示データとテクスチャカラーデータとからなっている。テクスチャ指示データはポリゴンとテクスチャとを対応づけるためのデータであり、テクスチャカラーデータはテクスチャの色を指定するためのデータである。ここで、ポリゴンデータとテクスチャデータとには、各データの記憶位置を示すポリゴンアドレスデータとテクスチャアドレスデータとが対応づけられている。このような画像データでは、信号処理プロセッサ8により、ポリゴンアドレスデータの示す3次元空間上のポリゴンデータ(3次元ポリゴンデータ)が、画面自体(視点)の移動量データおよび回転量データに基づいて座標変換および透視投影変換されて、2次元空間上のポリゴンデータ(2次元ポリゴンデータ)に置換される。そして、複数の2次元ポリゴンデータでポリゴン外形を構成して、ポリゴンの内部領域にテクスチャアドレスデータが示すテクスチャデータを書き込む。このようにして、各ポリゴンにテクスチャが貼り付けられた物体つまり各種キャラクタを表現することができる。
音声出力部4は、主に、記録媒体10から読み出される音声データを音声として出力するために設けられている。音声出力部4は、たとえば、スピーカー13と、増幅回路14と、D/Aコンバータ15と、インターフェース回路16とから構成されている。スピーカー13には増幅回路14が接続されており、増幅回路14にはD/Aコンバータ15が接続されており、D/Aコンバータ15にはインターフェース回路16が接続されている。そして、インターフェース回路16にバス6が接続されている。ここでは、音声データが、インターフェース回路16を介してD/Aコンバータ15に供給され、ここでアナログ音声信号に変換される。このアナログ音声信号が増幅回路14によって増幅され、スピーカー13から音声として出力される。音声データには、たとえば、ADPCM(Adaptive Differential Pulse Code Modulation)データやPCM(Pulse Code Modulation)データなどがある。ADPCMデータの場合、上述と同様の処理方法で音声をスピーカー13から出力することができる。PCMデータの場合、RAM12においてPCMデータをADPCMデータに変換しておくことで、上述と同様の処理方法で音声をスピーカー13から出力することができる。
操作入力部5は、主に、コントローラ17と、操作情報インターフェース回路18と、インターフェース回路19とから構成されている。コントローラ17には、操作情報インターフェース回路18が接続されており、操作情報インターフェース回路18にはインターフェース回路19が接続されている。そして、インターフェース回路19にバス6が接続されている。
コントローラ17は、プレイヤが種々の操作命令を入力するために使用する操作装置であり、プレイヤの操作に応じた操作信号をCPU7に送出する。コントローラ17には、第1ボタン17a、第2ボタン17b、第3ボタン17c、第4ボタン17d、上方向キー17U、下方向キー17D、左方向キー17L、右方向キー17R、L1ボタン17L1、L2ボタン17L2、R1ボタン17R1、R2ボタン17R2、スタートボタン17e、セレクトボタン17f、左スティック17SL及び右スティック17SRが設けられている。
上方向キー17U、下方向キー17D、左方向キー17L及び右方向キー17Rは、例えば、キャラクタやカーソルをテレビジョンモニタ20の画面上で上下左右に移動させるコマンドをCPU7に与えるために使用される。
スタートボタン17eは、記録媒体10からゲームプログラムをロードするようにCPU7に指示するときや、実行中のゲームプログラムを一時停止するときなどに使用される。
セレクトボタン17fは、記録媒体10からロードされたゲームプログラムに対して、各種選択をCPU7に指示するときなどに使用される。
左スティック17SL及び右スティック17SRは、いわゆるジョイスティックとほぼ同一構成のスティック型コントローラである。このスティック型コントローラは、直立したスティックを有している。このスティックは、支点を中心として直立位置から前後左右を含む360°方向に亘って、傾倒可能な構成になっている。左スティック17SL及び右スティック17SRは、スティックの傾倒方向及び傾倒角度に応じて、直立位置を原点とするx座標及びy座標の値を、操作信号として操作情報インターフェース回路18とインターフェース回路19とを介してCPU7に送出する。
第1ボタン17a、第2ボタン17b、第3ボタン17c、第4ボタン17d、L1ボタン17L1、L2ボタン17L2、R1ボタン17R1及びR2ボタン17R2には、記録媒体10からロードされるゲームプログラムに応じて種々の機能が割り振られている。
なお、左スティック17SL及び右スティック17SRを除くコントローラ17の各ボタン及び各キーは、外部からの押圧力によって中立位置から押圧されるとオンになり、押圧力が解除されると中立位置に復帰してオフになるオンオフスイッチになっている。
通信部23は、通信制御回路24および通信インターフェース25を有している。通信制御回路24および通信インターフェース25は、ゲーム装置をサーバや他のゲーム装置等に接続するために用いられる。通信制御回路24および通信インターフェース25は、バス6を介してCPU7に接続されている。通信制御回路24および通信インターフェース25は、CPU7からの命令に応じて、ゲーム装置をインターネットに接続するための接続信号を制御し発信する。また、通信制御回路24および通信インターフェース25は、インターネットを介してゲーム装置をサーバや他のゲーム装置に接続するための接続信号を制御し発信する。
以上のような構成からなる家庭用ビデオゲーム装置の概略動作を、以下に説明する。電源スイッチ(図示省略)がオンにされゲームシステムに電源が投入されると、CPU7が、記録媒体10に記憶されているオペレーティングシステムに基づいて、記録媒体10から画像データ、音声データ、およびプログラムデータを読み出す。読み出された画像データ、音声データ、およびプログラムデータの一部若しくは全部は、RAM12に格納される。そして、CPU7が、RAM12に格納されたプログラムデータに基づいて、RAM12に格納された画像データや音声データにコマンドを発行する。
画像データの場合、CPU7からのコマンドに基づいて、まず、信号処理プロセッサ8が、3次元空間上におけるキャラクタの位置計算および光源計算などを行う。次に、画像処理プロセッサ9が、信号処理プロセッサ8の計算結果に基づいて、描画すべき画像データのRAM12への書き込み処理などを行う。そして、RAM12に書き込まれた画像データが、インターフェース回路21を介してD/Aコンバータ22に供給される。ここで、画像データがD/Aコンバータ22でアナログ映像信号に変換される。そして、画像データはテレビジョンモニタ20に供給され画像として表示される。
音声データの場合、まず、信号処理プロセッサ8が、CPU7からのコマンドに基づいて音声データの生成および加工処理を行う。ここでは、音声データに対して、たとえば、ピッチの変換、ノイズの付加、エンベロープの設定、レベルの設定及びリバーブの付加などの処理が施される。次に、音声データは、信号処理プロセッサ8から出力されて、インターフェース回路16を介してD/Aコンバータ15に供給される。ここで、音声データがアナログ音声信号に変換される。そして、音声データは増幅回路14を介してスピーカー13から音声として出力される。
〔ゲーム装置における各種処理概要〕
本ゲーム装置において実行されるゲームは、たとえば、ゴルフゲームである。本ゲーム装置では、プレイヤの指示に基づいて、ゴルファー用のモデル(以下、ゴルファーと呼ぶ)にボール用のモデル(以下、ボール)を打たせることにより、ボールを目標位置に移動させるゴルフゲームが、コンピュータにおいて、実行される。図2は、以下に示す、本発明で主要な役割を果たす機能を、説明するための機能ブロック図である。
キャラクタ設定手段50は、ゴルファーを設定する機能を備えている。
この手段では、プレイヤの指示に基づいて、ゴルファーが設定される。たとえば、まず、プレイヤがコントローラ17を操作することにより、複数のゴルファー名から構成されるリストの中から、プレイヤが所望するゴルファーに対応する項目が、選択される。すると、この項目に対応する、ゴルファーすなわちゴルファー用のモデル、およびゴルファーが有する能力特性が、認識される。このようにして、本ゲームに登場するゴルファーのモデルおよび能力特性が、設定される。なお、各項目に対応する、ゴルファー用のモデルおよびゴルファーの能力特性は、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。
環境設定手段51は、ゲーム空間のゴルフ環境を設定する機能を備えている。
この手段では、プレイヤの指示に基づいて、環境が設定される。たとえば、まず、プレイヤがコントローラ17を操作することにより、複数のコース名から構成されるリストの中から、プレイヤが所望するコースに対応する項目が、選択される。すると、この項目に対応する、コースすなわちコース用のモデルが、認識される。このコース用のモデルは、複数の地形用のモデルを有している。ここでは、たとえば、グリーン、フェアウェイ、ラフ、バンカー、ウォーターハザード、樹木群等のようなモデルが、地形用のモデルとして用意されている。また、ここでは、各地形用のモデルが有する地形特性が、認識される。このようにして、本ゲームで採用されるコースのモデルおよび地形特性が、設定される。なお、各項目に対応するコース用のモデル、および各コースに対応する地形特性は、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。
環境形成手段52は、ゲーム空間のゴルフ環境を形成するためのモデルを、ゲーム空間に配置する機能を備えている。
この手段では、ゲーム空間のゴルフ環境を形成するためのモデルが、ゲーム空間に配置される。たとえば、コース用のモデルたとえば各コースを構成する複数の地形用のモデルが、ゲーム空間の所定の位置に、配置される。なお、このモデルの配置位置は、ゲームプログラムにおいて予め規定されており、モデルを配置するためのデータは、RAM12に格納されている。
ゴルファー配置手段53は、ゴルファーをゲーム空間に配置する機能を備えている。
この手段では、ゴルファーが、ゲーム空間に配置される。たとえば、フィールドに立つゴルファーが、ゲーム空間の所定の位置に、配置される。なお、ゴルファーの配置位置は、ゲームプログラムにおいて予め規定されており、ゴルファーを配置するためのデータは、RAM12に格納されている。
移動体配置手段54は、ボールをゲーム空間に配置する機能を備えている。
この手段では、ボールがゲーム空間に配置される。たとえば、ティーショットの場合、ボールが、ゲーム空間の所定の位置たとえば各ホールの所定の位置に、配置される。また、ティーショット以外のショット、すなわちティーショット以降に行われるショットの場合、前回のショットによりボールが到達した位置に、ボールが配置される。なお、ティーショットの場合のボールの配置位置は、ゲームプログラムにおいて予め規定されており、ボールを配置するためのデータは、RAM12に格納されている。
到達目標設定手段55は、プレイヤの指示に基づいて、ボールの目標位置を、ゲーム空間に設定する機能を備えている。
この手段では、プレイヤの指示に基づいて、ボールの目標位置が、ゲーム空間に設定される。たとえば、まず、プレイヤがコントローラ17を操作することにより、クラブが選択されたときに、このクラブに対応する初期条件としてのボールの目標位置が、ゲーム空間に設定される。次に、プレイヤがコントローラ17を操作することにより、ボールの目標位置が、ゲーム空間において、コントローラ17の操作方向に移動する。このようにして、ボールの目標位置が、ゲーム空間に設定される。なお、初期条件としてのボールの目標位置を設定するためのデータは、クラブごとに、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。
到達範囲設定手段56は、クラブがボールに当たる前に、目標位置を基準として、ボールが到達する到達範囲を、ゲーム空間に設定する機能を備えている。
この手段では、クラブがボールに当たる前に、目標位置を基準として、ボールが到達する到達範囲が、ゲーム空間に設定される。また、この手段では、ゴルファーが有する能力特性が高くなるにつれて、目標位置を基準とした到達範囲が狭くなるように、到達範囲が、ゲーム空間に設定される。さらに、この手段では、コース用のモデルが有する地形特性に基づいて、目標位置を基準とした到達範囲が、変更され、到達範囲が、ゲーム空間に設定される。
たとえば、ボールの目標位置がゲーム空間に設定されると、初期条件としての到達範囲が、ゲーム空間に設定される。そして、ゴルファーが有する能力特性に基づいて、初期条件としての到達範囲が、変更される。ここでは、ゴルファーの能力特性が高くなるにつれて到達範囲が狭くなるように、到達範囲が、変更される。また、コース用のモデルが有する地形特性に基づいて、この到達範囲が、さらに変更される。ここでは、地形の状態が安定しているほど到達範囲が狭くなるように、到達範囲が、変更される。このようにして、目標位置を基準とした到達範囲が変更され、ゲーム空間に設定される。
なお、ゴルファーの能力特性には、ゴルファーの技量や経験等の能力特性が、含まれている。また、コースの地形特性には、フェアウェイやラフ等の地形特性が、含まれている。各特性に対応するデータは、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。
到達範囲変更手段57は、所定の地形用のモデルと到達範囲との位置関係に応じて、到達範囲の形状を変更する機能を備えている。
この手段では、所定の地形用のモデルと到達範囲との位置関係に応じて、到達範囲の形状が変更される。詳細には、この手段では、所定の地形用のモデルの外縁と到達範囲の目標位置とが所定の距離未満であるか否かが、判断される。そして、所定の地形用のモデルの外縁と到達範囲の目標位置とが所定の距離未満であった場合に、到達範囲が、所定の地形用のモデルに向かって拡大される。また、この手段では、所定の地形用のモデルの外縁と到達範囲の目標位置とが所定の距離未満であった場合に、所定の地形用のモデルが大きくなるにつれて、到達範囲が、地形用のモデルに向けて拡大する度合いが大きくなるように、到達範囲の形状が変更される。
ここでは、所定の地形用のモデル、たとえばバンカーやウォーターハザード等の外縁と、到達範囲の目標位置とが、所定の距離未満であった場合に、到達範囲が、バンカーやウォーターハザード等に向かって拡大される。より具体的には、まず、バンカーやウォーターハザード等の外縁と、到達範囲の目標位置とが、所定の距離未満であった場合に、バンカーやウォーターハザード等の大きさが、認識される。そして、バンカーやウォーターハザード等の大きさに応じて、到達範囲の大きさが、変更される。たとえば、バンカーやウォーターハザード等の大きさが大きくなるにつれて、バンカーやウォーターハザード等の近傍部分の到達範囲の大きさが大きくなるように、到達範囲の形状が、変更される。
到達位置設定手段58は、ボールが到着する到着位置を決定するための確率の分布を、到達範囲の内部において目標位置から離れるにつれて確率が低減し、且つクラブがボールに当たったときの状態に基づいて確率の分布を変動させることにより、ボールが到達する到達位置を、設定する機能を備えている。
この手段では、ボールが到着する到着位置を決定するための確率の分布が、設定され、この確率の分布に基づいて、ボールが到達する到達位置が、設定される。たとえば、まず、到達範囲の内部において目標位置から離れるにつれて確率が低減するような確率の分布が、設定される。そして、ゴルファーの能力特性が高くなるにつれて、ボールが目標位置の近傍に到達する確率が高くなるように、確率の分布が変更される。そして、クラブがボールに当たったときの状態に基づいて、確率の分布が変更される。そして、この確率の分布に基づいて、ボールが到達する到達位置が、到達範囲の内部に設定される。
ここで、クラブがボールに当たったときの状態は、ショットのパワーおよびタイミングを設定するためのゲージを用いて、設定される。たとえば、ボールに対するゴルファーの作用開始、すなわちショットの開始を指示するために、コントローラ17からの第1入力が受け付けられると、カーソルがゲージ上を移動し始める。そして、ゲージ上をカーソルが移動しているときに、コントローラ17からの第2入力が受け付けられると、カーソルが停止し、ショットのパワーが設定される。すると、カーソルが、移動方向とは反対の方向に移動を開始する。そして、ゲージ上をカーソルが移動しているときに、コントローラ17からの第3入力が受け付けられると、カーソルが停止し、ショットのタイミングが設定される。このようにして、クラブがボールに当たったときの状態、すなわちショットのパワーおよびタイミングが、設定される。
移動体制御手段59は、クラブがボールに当たった後に、ボールの移動を開始する命令を発行し、到達位置に向かうボールを、ゲーム空間において制御する機能を備えている。
この手段では、ゴルファーがスイングしクラブがボールに当たった後には、ボールの移動を開始する命令が発行され、到達位置に向かうボールが、ゲーム空間において制御される。たとえば、ゴルファーがボールを打った後には、クラブがボールに当たったときの情報、ボールの配置位置、およびボールの到達位置等に基づいて、ボールの軌道が、算出される。ここでは、ボールの軌道は、軌道方程式に基づいて規定される。たとえば、クラブがボールに当たったときの情報、ボールの配置位置、およびボールの到達位置等を、軌道方程式の初期条件として用いることによって、ボールの軌道を規定するための軌道方程式の各種係数が、導出される。そして、ここで導出された係数を軌道方程式に代入することによって、ゴルファーによって放たれたボールがゲーム空間において移動する軌道が、決定される。
表示手段60は、キャラクタおよびオブジェクトをテレビジョンモニタ20に表示する機能を備えている。
この手段では、ゲーム空間に配置された、ゴルファー用のモデル、ボール用のモデル、および地形用のモデルが、テレビジョンモニタ20に表示される。たとえば、ゲーム空間に仮想カメラを配置し、この仮想カメラによって、ゴルファー用のモデル、ボール用のモデル、および地形用のモデルを、撮影することにより、各モデルが、テレビジョンモニタ20に表示される。
〔ゴルフゲームにおける不確定性反映システムの概要〕
次に、ゴルフゲームにおける不確定性反映システムの具体的な内容について説明する。図17は、ゴルフゲームにおける上記システムを説明するためのフローである。
まず、ゲーム装置の電源が投入され、ゲーム装置が起動されると、ゴルフゲーム用のゲームプログラムが、記録媒体10からRAM12にロードされ格納される。このゴルフゲーム用のゲームプログラムには、ゴルフゲームを実行する上で必要となる各種の基本ゲームデータが、含まれている。この基本ゲームデータは、ゴルフゲーム用のゲームプログラムとともに、RAM12にロードされ格納される(S1)。
たとえば、基本ゲームデータには、3次元ゲーム空間用の各種の画像に関するデータが含まれている。3次元ゲーム空間用の各種の画像に関するデータには、たとえば、キャラクタ用のモデルデータ、コース用のモデルデータ、およびその他の各種のオブジェクト用のモデルデータ等が、含まれている。また、基本ゲームデータには、3次元画像データたとえば3次元ゲーム空間用のモデルデータを、3次元ゲーム空間GSに配置するための位置座標データが、含まれている。モデルデータには、3次元ポリゴンデータが含まれている。また、基本ゲームデータには、仮想カメラにより撮影されたモデルを、テレビジョンモニタ20に表示するための画像データが、含まれている。さらに、基本ゲームデータには、上記システムで用いられる各種のデータも、含まれている。
以下では、「ゴルファー」という文言が「ゴルファー用のモデル(データ)」という意味で用いられることがある。また、「ボール」という文言が「ボール用のモデル(データ)」という意味で用いられることがある。さらに、「ゲーム空間」という文言は、プログラム上で一般的に定義される「仮想ゲーム空間」という意味で用いられることがある。
続いて、RAM12に格納されたゴルフゲーム用のゲームプログラムが、基本ゲームデータに基づいて、CPU7により実行される(S2)。すると、ゴルフゲームの起動画面がテレビジョンモニタ20に表示される(図示しない)。すると、ゴルフゲームの前処理、たとえばゴルフゲームの設定を行うための各種の設定画面が、テレビジョンモニタ20に表示される。
ここでは、たとえば、プレイヤが所望するゴルファーが、選択される(S3)。より具体的には、様々なタイプのゴルファーから構成されるゴルファーリストが、テレビジョンモニタ20に表示される(図示しない)。ここで、プレイヤが、コントローラ17を操作することにより、このゴルファーリストの中から、所望のゴルファーに対応する項目を、選択する。すると、この操作により選択された項目に対応するゴルファー用のデータが、CPU7に認識される(S4)。ここでは、たとえば、ゴルファー用のモデルP1(IDg)とゴルファーが有する能力特性を示す能力特性データND(IDg)とが、CPU7に認識される。ここで、「IDg」という記号は、後述するように、ゴルファーを識別するための記号である。「P1(IDg)」という記号は、ゴルファーのポリゴンモデルを示す記号である。能力特性データND(IDg)は、たとえば、1以上10以下の値をとり、この値が大きいほど、ゴルファーの能力が高いことを示す。このように、プレイヤの指示に基づいて、ゴルファーの設定が行われる。
なお、能力特性データは、ゴルファーの技量や経験等を設定するためのデータである。各能力に対して、能力特性データは、用意されている。以下では、説明を容易にするために、能力特性データND(IDg)が、たとえば技量用の能力データである場合を一例として、説明する。
ここで、ゴルファーの設定についての説明を、補足しておく。たとえば、プレイヤによりゴルファーが選択された場合、このゴルファーに対応する、RAM12に格納されたゴルファー用の識別データIDgが、CPU7に認識される。すると、このゴルファー用の識別データIDgを用いて、ゴルファーが、CPU7によって管理される。また、このゴルファー用の識別データIDgを用いて、ゴルファー用のモデルおよびゴルファーの能力特性データND(IDg)が、CPU7により管理される。なお、図3に示すように、リストを構成する複数のゴルファー(項目)それぞれと、識別データIDgとの対応関係を示す対応テーブルは、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。また、識別データIDgと、ゴルファー用のモデルおよびゴルファーの能力特性データND(IDg)との対応関係を示す対応テーブルも、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。
続いて、プレイヤがプレイを希望するコースが、選択される(S5)。より具体的には、様々なタイプのコースから構成されるコースリストが、テレビジョンモニタ20に表示される(図示しない)。ここで、プレイヤが、コントローラ17を操作することにより、このコースリストの中から、所望のコースに対応する項目が、選択される。すると、この操作により選択された項目に対応するコース用のデータが、CPU7に認識される(S6)。ここでは、たとえば、コース用のモデルデータP2(IDc1,IDc2)とコースが有する地形特性データTD(IDc1,IDc2)とが、CPU7に認識される。ここで、「IDc1」という記号は、後述するように、コースを識別するための記号である。また、「IDc2」という記号は、地形を識別するための記号である。「P2(IDc1)」という記号は、コースのポリゴンモデルを示す記号である。地形特性データTD(IDc1,IDc2)は、たとえば、1以上10以下の値をとり、この値が大きいほど、地形の状態が安定している状態を示す。このように、プレイヤの指示に基づいて、コースの設定が行われる。
ここで、コースの設定についての説明を、補足しておく。たとえば、プレイヤによりコースが選択された場合、このコースに対応する、RAM12に格納されたコース用の識別データIDc1が、CPU7に認識される。すると、このコース用の識別データIDc1を用いて、コース用のモデルおよびコースの地形特性TD(IDc1,IDc2)が、CPU7により管理される。コース用のモデルは、複数の地形用のモデルを有している。地形用のモデルは、たとえば、グリーン用のモデル、フェアウェイ用のモデル、ラフ用のモデル、バンカー用のモデル、ウォーターハザード用のモデル、および樹木群用のモデル等を、有している。たとえば、グリーン用のモデルの「IDc2」の値は「1」、フェアウェイ用のモデルの「IDc2」の値は「2」、ラフ用のモデルの「IDc2」の値は「3」、バンカー用のモデルの「IDc2」の値は「4」、ウォーターハザード用のモデルの「IDc2」の値は「5」、および樹木群用のモデルの「IDc2」の値は「6」等に、設定される。
そして、各地形用のモデルに対応する地形特性データTD(IDc1,IDc2)が、CPU7に認識される。なお、図4に示すように、リストを構成する複数のコース(項目)それぞれと、識別データIDc1,IDc2との対応関係を示す対応テーブルは、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。また、識別データIDc1,IDc2と、コース用のモデルP2(IDc1,IDc2)およびコースの地形特性データTD(IDc1,IDc2)との対応関係を示す対応テーブルも、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。
以下では、「コース」という文言が「コース用のモデル(データ)」という意味で用いられることがある。また、「地形」という文言が「地形用のモデル(データ)」という意味で用いられることがある。また、「地形特性」という文言が「地形特性データ」という意味で用いられることがある。
ゴルフゲームの各種の設定が終了すると、ゴルフゲームを開始する命令が、CPU7から発行される。すると、コースがゲーム空間GSに配置される(S7)。たとえば、コース用のモデル、たとえばコースを構成する複数の地形用のモデルP2(IDc1,IDc2)が、ゲーム空間GSの所定の位置に、配置される。より具体的には、複数の地形用のモデルそれぞれを規定するための位置座標データを、CPU7に認識させることにより、コース用のモデルに含まれる複数の地形用のモデルP2(IDc1,IDc2)が、ゲーム空間GSに配置される。すると、複数の地形から構成されるコース100が、画像データを用いて、テレビジョンモニタ20に表示される(図5を参照)。
続いて、フィールドに立つゴルファーが、ゲーム空間GSに配置される(S8)。たとえば、ゴルファー用のモデルP1(IDg)が、ゲーム空間GSの所定の位置に配置される。より具体的には、ゴルファー用のモデルP1(IDg)の位置を規定するための位置座標データを、CPU7に認識させることにより、ゴルファー用のモデルP1(IDg)が、ゲーム空間GSの所定の位置に配置される。すると、ゴルファーが、画像データを用いて、テレビジョンモニタ20に表示される。たとえば、ゴルファーがティーショットを放つ場合、ティーグラウンドにおいてアドレスの姿勢をとるゴルファーが、テレビジョンモニタ20に表示される。また、ゴルファーが第2打以降のショットを放つ場合、コース上のボールの近傍においてアドレスの姿勢をとるゴルファー101が、テレビジョンモニタ20に表示される(図5を参照)。
続いて、ボールが、ゲーム空間GSに配置される(S9)。たとえば、ボール用のモデルP3が、ゴルファーの近傍の所定の位置に、配置される。より具体的には、ボール用のモデルP3の位置を規定するための位置座標データを、CPU7に認識させることにより、ボール用のモデルP3が、アドレスの姿勢をとるゴルファーの近傍の所定の位置に、配置される。たとえば、ティーショットの場合、ゲーム空間GSの所定の位置たとえば各ホールの所定の位置において、ボールが、テレビジョンモニタ20に表示される。また、ティーショット以外のショット、すなわちティーショット以降に行われるショットの場合、前回のショットによりボールが到達した位置において、ボール102が、テレビジョンモニタ20に表示される(図5を参照)。
なお、各コースにおけるティーショット時のボールの配置位置は、ゲームプログラムにおいて予め規定されており、ボールを配置するためのデータたとえば位置座標データは、RAM12に格納されている。
ここで、ゲーム空間GSに配置されたキャラクタやオブジェクト等の表示、たとえば、コース用のモデルP2(IDc1,IDc2)、ゴルファー用のモデルP1(IDg)、およびボール用のモデルP3等の表示についての説明を、補足しておく。
上記のモデルをテレビジョンモニタ20に表示するためには、図6に示すように、まず、モデルを撮影するための仮想カメラPcが、ゲーム空間GSに配置される。そして、この仮想カメラPcによってゲーム空間GSが撮影されると、仮想カメラPcの視角の内部の映像が、テレビジョンモニタ20に表示される。詳細には、ここに示す仮想カメラPcの視角の内部は、仮想カメラPcの撮影対象である視錐領域(視錐台)の内部に対応する。このため、視錐領域(視錐台)の内部に位置するモデルを、カメラ側の2次元平面すなわち視錐台の短辺側の面(上面)へと投影する処理を、CPU7に実行させることにより、投影後のモデルが、画像データを用いて、テレビジョンモニタ20に表示される。
なお、視錐台を規定するためのデータは、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。視錐台を規定するためのデータは、たとえば、仮想カメラPcを配置するための位置座標データと、仮想カメラPcの視角(画角)を規定するための角度データと、視錐台の短辺側の面S1および長辺側の面S2を規定するための位置座標データと、視線方向を設定するための注視点の位置座標データ等を、有している。
ここで、仮想カメラPcを移動するための移動命令がCPU7から発行された場合、移動後の仮想カメラPcの位置座標データが、CPU7に認識される。たとえば、仮想カメラPcを移動するためにプレイヤによりコントローラ17が操作された場合、および自動制御プログラム(AIプログラム、Artificial Intelligence Program)に基づいて仮想カメラPcの移動が指示された場合等に、移動命令が、CPU7から発行される。すると、仮想カメラPcの位置座標データが、CPU7により変更され、変更後の位置座標データが示す位置に、仮想カメラPcが配置される。このようにして、仮想カメラPcを移動し、この仮想カメラPcによりゲーム空間GSが撮影されると、移動後の仮想カメラPcの視角の内部(視錐台の内部)のキャラクタやオブジェクト等が、テレビジョンモニタ20に表示される。
続いて、プレイヤがコントローラ17を操作することにより、ゴルファーが使用するクラブが、選択される(S10)。すると、このクラブに対応する情報データが、CPU7に認識される。この情報データは、クラブごとに、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。そして、この情報データに基づいて、初期条件としてのボールの目標位置MPoが、ゲーム空間GSに設定される(S11、図7を参照)。
ここで設定されるボールの目標位置MPoは、選択されたクラブによってボールが打ち返されたときにボールが到達する理想的な位置に、対応している。すなわち、初期条件としてのボールの目標位置MPoは、最適なパワーおよび最適なタイミングで、クラブによりボールの中心がミートされたときにボールが到達する位置に、対応している。なお、ボールが飛球する方向は、ボールの配置位置からカップの位置へと向かう方向に、設定される。
たとえば、情報データには、理想的な状態でクラブがボールに当たったときの、ボールの放出速度データおよびボールの放出角度データ等が、含まれており、これらのデータがCPU7に認識される。また、ボールの回転量を示す回転データが、CPU7により設定される。たとえば、所定の回転量の値が、RAM12から読み出され、この所定の値が、回転データの値として、CPU7に認識される。ここでは、これらのデータを初期条件として用いることにより、軌道方程式を一意に特定するための各種係数が、CPU7により導出される。そして、ここで導出された係数を適用した軌道方程式に基づいて、選択されたクラブを用いた場合にボールが到達する理想的な位置を示す位置座標データが、CPU7により算出される。そして、この位置座標データが、初期条件としてのボールの目標位置MPoを示す位置座標データとして、CPU7に認識される。このようにして、初期条件としてのボールの目標位置MPoが、ゲーム空間GSに設定される。
ここでは、初期条件としてのボールの目標位置MPoが、軌道方程式に基づいて、設定される場合の例を示したが、各クラブでボールを打ったときにボールが到達する理想的な位置に対応する位置座標データを、ゲームプログラムにおいて予め用意しておき、RAM12に格納するようにしても良い。また、ボールの理想的な到達位置を設定するための飛距離データを、ゲームプログラムにおいて予め用意しておき、RAM12に格納するようにしても良い。この場合、ボールの配置位置を基準とした、飛距離データが示す位置に、初期条件としてのボールの目標位置MPoが、設定される。
続いて、このボールの目標位置MPoを基準として、初期条件としての到達範囲TRoが、ゲーム空間GSに設定される(S12、図7を参照)。ここでは、到達範囲TRoが、円状に形成される。この到達範囲TRoでは、ボールの目標位置MPoが円の中心に設定され、円の半径Roは所定の値に設定される。ここでは、円の半径Roの値として、たとえば5.0(m)が、用いられる。
この到達範囲TRoは、ゴルファーが有する能力特性に基づいて、変更される。ここでは、ゴルファーの能力特性が高くなるにつれて、到達範囲TRの面積(大きさ)が小さくなるように、到達範囲TRが、設定される(図7(b)を参照)。たとえば、図8に示すように、到達範囲TRの大きさを設定するための第1設定係数α1が、設定される。たとえば、ゴルファーの技量や経験等の能力特性データND(IDg)の値が大きくなるにつれて、第1設定係数α1は、小さくなる。第1設定係数α1は、「1.0」以下の値に設定される。この第1設定係数α1を、到達範囲TRの大きさを規定するための基準長さたとえば半径Roに乗じる処理(R1=Ro×α1)を、CPU7に実行させることにより、到達範囲TRが再設定される。
また、この到達範囲TRは、コース用のモデルが有する地形特性データTD(IDc1,IDc2)に基づいて、さらに変更される(図7(c)を参照)。ここでは、地形の状態が安定するにつれて、到達範囲TRの面積(大きさ)が小さくなるように、到達範囲TRが、設定される。たとえば、図9に示すように、到達範囲TRの大きさを変更するための第2設定係数α2が、設定される。たとえば、図9に示すように、フェアウェイやラフ等の地形特性データTD(IDc1,IDc2)を示す値が大きくなるにつれて、第2設定係数α2は小さくなる。一例として、図9には、aコースが選択された場合の地形特性データTD(1,IDc2)が、示されている。第2設定係数α2は、「1.0」以下の値に設定される。ここでは、地形特性データTD(1,IDc2)の値が大きいほど、地形の状態が安定している状態を示している。このように第2設定係数α2が設定されると、この第2設定係数α2を、到達範囲TRの大きさを規定するための基準長さ、たとえば上記の半径R1(=Ro×α1)に乗じる処理(R2=R1×α2)を、CPU7に実行させることにより、到達範囲TRが再設定される。なお、ここで第2設定係数α2を乗じる半径R1は、第1設定係数α1により変更された半径である。
このようにして、ボールの目標位置MPおよび到達範囲TRが、ゲーム空間GSに設定されると(S11、S12)、到達範囲TRと所定の地形用のモデルP2(IDc1,IDc2)との位置関係が、CPU7により判定される。たとえば、所定の地形用のモデルP2(IDc1,IDc2)、たとえばバンカー(IDc2=4)やウォーターハザード(IDc2=5)等の外縁と、到達範囲TRの目標位置MPとが、所定の距離未満であるか否かが、CPU7により判断される(S13)。
この判断処理をより具体的に説明するために、まず、ゲーム空間GSを定義する。ここでは、ゲーム空間GSの地平面が、X軸およびY軸によって定義される。原点、X軸の方向、およびY軸の方向は、ゲームプログラムにおいて予め規定されている。また、ここでは、Z軸方向は、地平面に対する高さ方向に設定される。以下では、説明を容易にするために、所定の地形用のモデルP2(IDc1,IDc2)が、バンカー用のモデルP2(IDc1,4)である場合を一例として、説明を行う。
次に、図10に示すように、このゲーム空間GSに配置された所定の地形用のモデルP2(IDc1,IDc2)、たとえばバンカー用のモデルP2(IDc1,4)をXY平面に投影する処理が、CPU7により実行される。すると、XY平面に投影されたバンカー用のモデルP2(IDc1,4)の境界(外縁)上の複数の点の位置座標データが、CPU7に認識される。境界上の複数の点は、10cm(X軸方向)×10cm(Y軸方向)の解像度で、CPU7に認識される。なお、図10では、図を見やすくするために、境界上の全点ではなく、上記で設定された解像度より低い解像度で、到達範囲TR側の6点だけを、黒丸で示している。
また、XY平面に投影されたバンカー用のモデルP2(IDc1,4)の境界上で、ボールの目標位置MPに最も近い点が、CPU7により検索される。たとえば、ボールの目標位置MPを示す位置座標データと、バンカー用のモデルP2(IDc1,4)の境界上の複数の点それぞれの位置座標データとに基づいて、ボールの目標位置MPと、バンカー用のモデルP2(IDc1,4)の境界上の複数の点それぞれとの距離を、算出する処理が、CPU7に実行される。そして、ここで算出された複数の2点間距離に基づいて、ボールの目標位置MPに最も近い点の位置座標データが、CPU7に認識される。これにより、バンカー用のモデルP2(IDc1,4)の境界上においてボールの目標位置MPに最も近い点が、特定される。たとえば、図10では、ボールの目標位置MPに最も近い点が、記号「CP」で示されている。
すると、ボールの目標位置MPとボールの目標位置MPに最も近い点CPとの距離、すなわち2点間の最短距離SLが、所定の距離未満であるか否かが、CPU7により判断される。たとえば、ゲーム空間GSの単位系が、実空間と同じ単位系である場合、所定の地形用のモデルの外縁、たとえばバンカー用のモデルP2(IDc1,4)の外縁と、ボールの目標位置MPとの最短距離SLが、10m未満であるか否かが、CPU7により判断される。
そして、バンカー用のモデルP2(IDc1,4)の外縁と到達範囲TRの目標位置MPとの最短距離SLが、所定の距離未満であった場合(S13でYes)、バンカー用のモデルP2(IDc1,4)の大きさが、CPU7に認識される。たとえば、バンカー用のモデルP2(IDc1,4)の外縁とボールの目標位置MPとの最短距離SLが、10m未満であった場合、XY平面上のバンカー用のモデルP2(IDc1,4)の境界上における複数の点それぞれの位置座標データを用いて、バンカー用のモデルP2(IDc1,4)の内部の面積(=ΣΔSn)が、CPU7により算出され、CPU7に認識される。たとえば、図11に示すように、「ΔSn」は、境界上において隣接する2つの点により規定される帯状の部分面積である。そして、隣接する部分面積を足し合わせることによって(=ΣΔSn)、バンカー用のモデルP2(IDc1,4)の内部の面積が、算出される。なお、図11には、図を見やすくするために、3つの帯状の部分面積ΔSn,ΔSn+1,ΔSn+2だけが、示されている。
このようにして、バンカー用のモデルP2(IDc1,4)の大きさ(面積)が、CPU7に認識されると、このモデルの大きさに応じて、到達範囲TRが、バンカー用のモデルP2(IDc1,4)に向かって拡大される(S14)。たとえば、図10に示すように、バンカー用のモデルP2(IDc1,4)の大きさが大きくなるにつれて、バンカーの近傍部分の到達範囲TRの大きさが大きくなるように、到達範囲TRの形状が変更される。
ここで、到達範囲TRの形状を変更するときの一例を、説明する。たとえば、まず、XY平面に投影されたバンカー用のモデルP2(IDc1,4)の境界上で、ボールの目標位置MPに最も近い点CPが、上記のように、CPU7により検索される。たとえば、ボールの目標位置MPを示す位置座標データと、バンカー用のモデルP2(IDc1,4)の境界上の複数の点それぞれの位置座標データとに基づいて、ボールの目標位置MPと、バンカー用のモデルP2(IDc1,4)の境界上の複数の点それぞれとの距離を、算出する処理が、CPU7に実行される。そして、ここで算出された複数の2点間距離に基づいて、ボールの目標位置MPに最も近い点CPの位置座標データが、CPU7に認識される。これにより、バンカー用のモデルP2(IDc1,4)の境界上においてボールの目標位置MPに最も近い点CPが、特定される。
すると、図12に示すように、ボールの目標位置MPと、ボールの目標位置MPに最も近い外縁上の位置CPを基準として、2つの基本図形がXY平面に設定される。たとえば、ボールの目標位置MP、およびボールの目標位置MPに最も近い外縁上の位置CPそれぞれを中心とした2つの円(第1の円CL1、第2の円CL2)の方程式が、CPU7により生成される。これにより、第1の円CL1および第2の円CL2が、XY平面に設定される。
第1の円CL1の中心は、ボールの目標位置MPに設定される。また、第1の円CL1の半径は、上記の到達範囲TRの半径R2と同じ値に設定される。第2の円CL2の中心は、バンカー用のモデルP2(IDc1,4)の外縁においてボールの目標位置MPに最も近い位置CPに、設定される。また、第2の円CL2の半径は、XY平面上のバンカー用のモデルP2(IDc1,4)の大きさに応じて、所定の値に設定される。たとえば、バンカー用のモデルP2(IDc1,4)の大きさが大きくなるにつれて、第2の円CL2の半径の値が、大きくなるように、第2の円CL2の半径は、設定される。なお、XY平面上のバンカー用のモデルP2(IDc1,4)の大きさと、第2の円CL2の半径と対応関係は、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。
このようにして、2つの基本図形、たとえば第1の円CL1および第2の円CL2が、設定されると、第1の円CL1および第2の円CL2を用いて到達範囲TRの境界を形成する処理が、CPU7により実行される。たとえば、2つの円が交わる場合、2つの交点近傍をスムージングする処理が、CPU7により実行される(図12(a)の太破線を参照)。また、2つの円が交わらない場合、2つの円を連結する線が、2つの円の中心を結ぶ直線の方向に凹になるように、2つの円を連結する線をスムージングする処理が、CPU7により実行される(図12(b)の太破線を参照)。これにより、2つの円が、1つの図形へと変換される。すなわち、XY平面に存在する2つの閉曲線(2つの円)が、1つの閉曲線(瓢箪形状の曲線)へと変換される。このような処理をCPU7に実行させることにより、到達範囲TRの形状が変更される。
ここでは、バンカー用のモデルP2(IDc1,4)の大きさが大きくなると、第2の円CL2の半径が大きくなるので、バンカー用のモデルP2(IDc1,4)の大きさが大きくなると、バンカーの近傍部分の到達範囲TRも大きくなる。このようにして、目標位置MPを基準とした到達範囲TRは、各種の条件に応じて変更され、ゲーム空間GSに設定される。なお、ここで用いられる各データは、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。また、スムージングに用いられるプログラムは、ゲームプログラムに含まれており、RAM12に格納されている。
なお、そして、バンカー用のモデルP2(IDc1,4)の外縁と到達範囲TRの目標位置MPとの最短距離SLが、所定の距離以上であった場合(S13でNo)、到達範囲の大きさは変更されず、後述するステップ15(S15)の処理が、CPU7により実行される。
続いて、到達範囲TRが設定されると(S14)、ボールが到着する到着位置を決定するための確率の分布を到達範囲TRの内部に設定する処理が、CPU7により実行される(S15)。たとえば、まず、到達範囲TRの内部においてボールの目標位置MPから離れるにつれて確率Kが低減するような、初期条件としての確率の分布(確率の基本分布)が、RAM12から読み出され、CPU7に認識される(図13を参照)。また、RAM12に格納されたゴルファーの能力特性データND(IDg)が、CPU7に認識される。すると、このゴルファーの能力特性データND(IDg)に基づいて、上記の確率の基本分布を変更する処理が、CPU7により実行される。たとえば、ゴルファーの能力特性データND(IDg)が高くなるにつれて、ボールが目標位置MPの近傍に到達する確率Kが高くなるように、上記の確率の基本分布が、CPU7により変更される。
なお、図13(a)では、横軸が、到達範囲TRの内部の複数の区分領域を区別するための領域番号データNRを示している。また、縦軸は、各区分領域の確率を示している。図13(b)には、到達範囲TRの内部に形成される各区分領域の一例が、示されている。また、図13(b)に示された番号は、領域番号データNRに対応する数字である。
たとえば、図14に示すように、確率の分布を修正するための第1修正係数β1が、設定される。図14では、ゴルファーの技量や経験等の能力特性データND(IDg)の値が大きくなるにつれて、ボールの目標位置MPの近傍の確率Kが高くなるように、第1修正係数β1が、各区分領域に設定される。そして、各区分領域の第1修正係数β1を、ボールの目標位置MPの近傍の区分領域の確率K(NR)に乗じる処理を、CPU7に実行させることにより、上記の確率の基本分布が、変更される。たとえば、各区分領域の第1修正係数β1を、確率の変更対象である区分領域の確率K(1)に乗じる処理(K’(1)=K(1)×β1)が、CPU7により実行される。そして、この処理結果によって増減した確率(=|K’(1)−K(1)|)を、他の確率で調整する処理(K’(NR)=K(NR)−|K’(1)−K(1)|/4;NR=2,3,4,5)が、CPU7により実行される。このようにして、上記の確率の基本分布が、変更される。すると、変更後の確率の分布が、CPU7に認識され、RAM12に格納される。なお、区分領域とは、ボールの目標位置MPを基準として、ボールの目標位置MPと到達範囲TRの境界との間を複数に分割したときの各領域のことである。
上記のように、確率の分布が設定されると、領域番号データNRをCPU7に認識させることにより、領域番号データNRに対応する区分領域の確率K(NR)が、決定される。すなわち、確率の分布を設定する処理には、各区分領域に対して確率を割り当てる処理が、含まれている。このため、確率の分布を設定することにより、到達範囲TRの内部の各区分領域に対して確率K(NR)が、設定される。このようにして、確率分布が、到達範囲TRの内部に設定される。
上記のようにして、目標位置MP、到達範囲TR、および確率の分布が、設定されると、XY平面上の目標位置MPの位置座標データ、およびXY平面上の到達範囲TRの境界上の位置座標データを、地形用のモデル上へと投影する処理が、CPU7により実行される。たとえば、XY平面上のボールの目標位置MPにおける地形用のモデルP2(IDc1,IDc2)のZ座標データを、ボールの目標位置MPのZ座標データとして、CPU7に認識させることにより、XY平面上のボールの目標位置MPが、地形用のモデル上へと投影される。また、XY平面上の到達範囲TRの境界上の各点の位置における地形用のモデルP2(IDc1,IDc2)のZ座標データを、到達範囲TRの境界上の各点のZ座標データとして、CPU7に認識させることにより、XY平面上の到達範囲TRが、地形用のモデル上へと投影される。
このように本実施形態では、まず、2次元平面(XY平面)においてボールの目標位置MPおよびボールの到達位置が、評価され、次に、評価後のボールの目標位置MPおよびボールの到達位置が、3次元空間上(XYZ空間)へと反映される。これにより、主要な計算を、3次元空間ではなく、2次元平面において処理することができるので、メモリ容量およびCPU7の計算負荷を大幅に低減することができる。
続いて、図5に示したように、地形用のモデル上に投影されたボールの目標位置MPの位置座標データに基づいて、ボールの目標位置MPを報知するための報知子200、たとえば三角記号が、画像データを用いて、テレビジョンモニタ20に表示される(S16)。また、図5に示したように、地形用のモデル上に投影された到達範囲TRの境界上の各点の位置座標データに基づいて、到達範囲TRたとえば到達範囲TRを報知するための境界線201が、画像データを用いて、テレビジョンモニタ20に表示される(S17)。このようにして、ボールを運ぶポイントが、三角記号200によって報知され、このポイントを狙ったときにボールが到達する可能性がある範囲、すなわちボールの到達範囲TRが、到達範囲TRの境界線201で報知される。
なお、図5では、到達範囲TRの形状が円である場合の例が示されているが、ボールの目標位置と地形用のモデルとの位置関係に応じて、到達範囲TRの形状が変更された場合には、変更後の形状たとえば瓢箪形状の到達範囲TRが、テレビジョンモニタ20に表示される(図12を参照)。
このように、ボールの目標位置MPおよび到達範囲TRが、テレビジョンモニタ20に表示された状態において、プレイヤがコントローラ17を操作すると、ボールの目標位置MPが移動する。たとえば、プレイヤがコントローラ17を操作すると、コントローラ17からの入力信号に基づいて、ボールの目標位置MPを移動するための移動命令が、CPU7から発行される。すると、コントローラ17の操作量に応じて、XY平面上のボールの目標位置MPの位置座標データが、CPU7により変更される。すると、上述したように、変更後の位置座標データが示すXY平面上のボールの目標位置MPが、地形用のモデル上へと投影される。すると、地形用のモデル上へと投影された目標位置MPにおいて、三角記号(報知子)が、テレビジョンモニタ20に表示される。このように、プレイヤがコントローラ17を操作すると、ボールの目標位置MP,200が移動する状態が、テレビジョンモニタ20に表示される。
ここで、ボールの目標位置MP,200が移動すると、この目標位置MP,200の移動に連動して、到達範囲TR,201も移動する。たとえば、XY平面上のボールの目標位置MPの位置座標データが、CPU7により変更されると、変更後の位置座標データが示す目標位置MPを基準とした到達範囲TRが、上述したように、XY平面上に設定され、このXY平面上の到達範囲TRが、地形用のモデル上へと投影される。すると、移動後の目標位置MPを基準とした到達範囲TRを示す201が、テレビジョンモニタ20に表示される。なお、到達範囲TR,201の大きさ、形状は、目標位置MP,200に応じて変動する。このように、ボールの目標位置MP,200が移動したときには、ボールの目標位置MP,200の移動に連動してボールの到達範囲TR,201が移動する状態が、テレビジョンモニタ20に表示される。なお、ボールの目標位置MPおよびボールの到達範囲TRの移動は、ステップ11(S11)からステップ17(S17)までの処理を繰り返し実行することによって、実現される。
続いて、プレイヤが所望するボールの目標位置MPが決定されると、クラブをボールに当てる位置、すなわちボールに対するクラブの打点の位置が、設定される(S18)。ここでは、図5に示したような打点用のボール300を用いて、ボールの打点301が設定される。初期条件では、打点用のボール300の中心に、打点301を示す丸記号が、表示されている。この状態では、打点がボールの中心である場合の回転量を示す回転データが、CPU7に認識される。
この状態において、プレイヤがコントローラ17を操作すると、コントローラ17の操作方向に打点301(丸記号)が移動する。そして、プレイヤが所望する位置に打点301が位置したときに、コントローラ17の操作を停止すると、打点301の移動も停止する。すると、この打点301においてクラブがボールに当たったときの回転量を示す回転データが、CPU7に認識される。このように、ここでは、打点301を設定することにより、ボールに与えられる回転量すなわち回転データが、CPU7により設定される。
たとえば、打点用のボール300の中心を基準として、打点301が打点用のボールの右側に位置すると、3次元モデルのボールを上方から見て、ボールは反時計回りに回転する。一方で、打点用のボール300の中心を基準として、打点301が打点用のボールの左側に位置すると、3次元モデルのボールを上方から見て、ボールは時計回りに回転する。このようにボールが回転するときの回転量が、回転データを用いて規定される。
なお、打点301の位置座標データと回転データとの対応関係は、ゲームプログラムにおいて予め規定されており、RAM12に格納されている。すなわち、打点位置が決定されると、打点位置に対応する回転データが、RAM12から読み出され、CPU7に認識される。
続いて、図5に示したようなゲージ400を用いて、ボールに与えるパワーと、ボールをミートするときのタイミングとが設定される(S19)。たとえば、ゴルファーに対してショットの開始を指示するために、プレイヤがコントローラ17を操作すると、コントローラ17からの第1入力信号が、CPU7に認識される。すると、この第1入力信号に基づいて、図15(a)に示すように、カーソル401がゲージ上を移動する状態が、テレビジョンモニタ20に表示される。また、このときには、ゴルファーがテイクバックする動作が、テレビジョンモニタ20に表示される(図示しない)。
そして、ショットのパワーを設定するために、プレイヤが所望のタイミングでコントローラ17を操作すると、コントローラ17からの第2入力信号が、CPU7に認識される。すると、この第2入力信号に基づいて、カーソル401が一旦停止し、ショットのパワーが設定される。そして、図15(b)に示すように、カーソル401が、ゲージ上において移動方向とは反対の方向に移動する状態が、テレビジョンモニタ20に表示される。また、このときには、ゴルファーがスイングする動作が、テレビジョンモニタ20に表示される(図示しない)。
そして、ショットのタイミングを設定するために、プレイヤが所望のタイミングでコントローラ17を操作すると、コントローラ17からの第3入力信号が、CPU7に認識される。すると、この第3入力信号に基づいて、図15(c)に示すように、カーソル401が停止し、ショットのタイミングが設定される。すると、ゴルファーがボールをミートしフォロースイングを行う状態が、テレビジョンモニタ20に表示される(図示しない)。
図15に示すように、ゲージには、最適なパワーが設定される第1位置D1、および最適なタイミングが設定される第2位置D2が、設けられている。ここでは、ゲージの第1位置D1からの第1ズレ量Z1およびゲージの第2位置D2からの第2ズレ量Z2が、CPU7に認識される。なお、ここでは、図15における第2位置D2の左側における第2ズレ量Z2を符号をプラス、図15における第2位置D2の右側における第2ズレ量Z2を符号をマイナスと定義している。
すると、第1ズレ量Z1および第2ズレ量Z2に基づいて、ボールの目標位置MPの位置座標データが、再設定される(S20)。
まず、第1ズレ量Z1に基づいて、ボールの目標位置MPの位置座標データが、再設定される。たとえば、第1ズレ量Z1が「0」である場合、すなわち第1位置D1で入力が実行された場合、ボールの目標位置MPの位置座標データが、CPU7に再認識される。一方で、第1ズレ量Z1が「0」でない場合、すなわち第1位置D1から離れた位置で入力が実行された場合、第1ズレ量Z1の値の大きさに応じて、ボールの目標位置MPを移動する処理が、CPU7により実行される。そして、移動後のボールの目標位置MPの位置座標データが、CPU7に再認識され、RAM12に格納される。
次に、第2ズレ量Z2に基づいて、ボールの目標位置MPの位置座標データが、再設定される。たとえば、第2ズレ量Z2が「0」である場合、すなわち第2位置D2で入力が実行された場合、RAM12に格納されたボールの目標位置MPの位置座標データが、CPU7に再認識される。ここで、CPU7に認識されるボールの目標位置MPの位置座標データは、第1ズレ量Z1の値の大きさに応じて移動されたボールの目標位置MPの位置座標データである。一方で、第2ズレ量が「0」でない場合、すなわち第2位置D2から離れた位置で入力が実行された場合、第2位置D2を基準としたカーソル401の位置と、第2ズレ量Z2の値の大きさとに応じて、ボールの目標位置MPを移動する処理が、CPU7により実行される。たとえば、第2位置D2の右側における第2ズレ量Z2の大きさが大きくなるにつれて、ボールの目標位置MPが右側に移動するように、ボールの目標位置MPを変更する処理が、CPU7により実行される。また、第2位置D2の左側における第2ズレ量Z2の大きさが大きくなるにつれて、ボールの目標位置MPが左側に移動するように、ボールの目標位置MPを変更する処理が、CPU7により実行される。すると、移動後のボールの目標位置MPの位置座標データが、CPU7に再認識され、RAM12に格納される。
すると、第1ズレ量Z1および第2ズレ量Z2に基づいて移動させられたボールの目標位置MPを示す位置座標データに基づいて、ボールの目標位置MPを基準とした到達範囲TRが、ゲーム空間GSに再設定される。なお、ここでは、ボールの配置位置とカップの位置とを結ぶ直線を基準として、この直線の右側を「右側」という文言で表現し、この直線の左側を「左側」という文言で表現している。
さらに、第2ズレ量Z2に基づいて、到達範囲TR内の確率の分布が、再設定される(S21)。たとえば、第2ズレ量Z2が「0」である場合、すなわち第2位置D2で入力が実行された場合、現在の確率の分布が、最終的な確率の分布として、CPU7に認識される。一方で、第2ズレ量Z2が「0」でない場合、すなわち第2位置D2から離れた位置で入力が実行された場合、第2ズレ量Z2の値の大きさに応じて、RAM12に格納された確率の分布を変更する処理が、CPU7により実行される。たとえば、第2ズレ量Z2が大きくなるにつれて、目標位置MPの確率が低下するように、確率の分布が変更される。このようして、確率の分布が変更されると、変更後の確率の分布が、最終的な確率の分布として、CPU7に認識される。
ここでは、たとえば、図16に示すように、確率の分布を再修正するための第2修正係数β2が、設定される。図16では、タイミングのズレである第2ズレ量Z2が大きくなるにつれて、目標位置MPの確率が低下するように、第2修正係数β2が、各区分領域に設定される。そして、そして、各区分領域の第2修正係数β2を、ボールの目標位置MPの近傍の区分領域の確率K(NR)に乗じる処理を、CPU7に実行させることにより、第1修正係数β1を用いて変更された確率の分布が、変更される。たとえば、各区分領域の第2修正係数β2を、確率の変更対象である区分領域の確率K’(1)に乗じる処理(K”(1)=K’(1)×β2)が、CPU7により実行される。そして、この処理結果によって増減した確率(=|K”(1)−K’(1)|)を、他の確率で調整する処理(K”(NR)=K’(NR)−|K”(1)−K’(1)|/4;NR=2,3,4,5)が、CPU7により実行される。このようにして、上記の確率の基本分布が、変更される。すると、変更後の確率の分布が、CPU7に認識され、RAM12に格納される。このようにして、最終的な確率の分布が、到達範囲TRの内部に設定される。
続いて、この確率の分布に基づいて、ボールの到達位置が決定される(S22)。たとえば、図13に示したように、確率の分布を構成する各確率が、「k1(%)、k2(%)、k3(%)、k4(%)、k5(%)」である場合、これらの確率は、「k1+k2+k3+k4+k5=100(%)」の関係を満足する。ここでは、説明を容易にするために、各確率が「45%(=k1)、25%(=k2)、15%(=k3)、10%(=k4)、5%(=k5)」である場合を一例として、説明を行う。
たとえば、本ゲーム機1の電源が入れられたときに、確率用カウントパラメータiの値をゼロ(i=0)に設定する処理が、CPU7により実行される。そして、所定の時間たとえば1フレーム(ex. 1/60秒)ごとに確率用カウントパラメータiを1ずつインクリメントする処理が、CPU7により実行される。そして、確率用カウントパラメータiの値が、RAM12に格納される。そして、最終的な確率の分布がCPU7に認識された時点では、確率用カウントパラメータiの値が、RAM12に格納される。そして、確率用カウントパラメータiの値の下2桁の値jが、CPU11に認識される。
すると、この確率用カウントパラメータiの値の下2桁の値jが、0以上5以下であるか否かが、CPU7により判断される。そして、値jが0以上5未満である場合(0≦j<5(0≦j<k5))、確率5%の区分領域(確率k5(%)の区分領域)の領域番号データNR(5)が、CPU7に認識される。これにより、確率5%の区分領域(確率k5(%)の区分領域)が、特定される。そして、この区分領域の内部の位置座標データが、CPU7によりランダムに生成される。そして、この位置座標データが、ボールの到達位置の位置座標データとして、CPU7に認識される。
そして、値jが5以上15未満である場合(5≦j<15(k5≦j<k4+k5))、確率10%の区分領域(確率k4(%)の区分領域)の領域番号データNR(4)が、CPU7に認識される。これにより、確率4%の区分領域(確率k4(%)の区分領域)が、特定される。そして、この区分領域の内部の位置座標データが、CPU7によりランダムに生成される。そして、この位置座標データが、ボールの到達位置の位置座標データとして、CPU7に認識される。
そして、値jが15以上30未満である場合(15≦j<30(k4+k5≦j<k3+k4+k5))、確率15%の区分領域(確率k3(%)の区分領域)の領域番号データNR(3)が、CPU7に認識される。これにより、確率15%の区分領域(確率k15(%)の区分領域)が、特定される。そして、この区分領域の内部の位置座標データが、CPU7によりランダムに生成される。そして、この位置座標データが、ボールの到達位置の位置座標データとして、CPU7に認識される。
そして、値jが30以上55未満である場合(30≦j<55(k3+k4+k5≦j<k2+k3+k4+k5)、確率25%の区分領域(確率k2(%)の区分領域)の領域番号データNR(2)が、CPU7に認識される。これにより、確率25%の区分領域(確率k2(%)の区分領域)が、特定される。そして、この区分領域の内部の位置座標データが、CPU7によりランダムに生成される。そして、この位置座標データが、ボールの到達位置の位置座標データとして、CPU7に認識される。
そして、値jが55以上100以下である場合(55≦j≦100(k2+k3+k4+k5≦j≦k1+k2+k3+k4+k5))、確率45%の区分領域(確率k1(%)の区分領域)の領域番号データNR(1)が、CPU7に認識される。これにより、確率45%の区分領域(確率k1(%)の区分領域)が、特定される。そして、この区分領域の内部の位置座標データが、CPU7によりランダムに生成される。そして、この位置座標データが、ボールの到達位置の位置座標データとして、CPU7に認識される。
このようにして、ボールの到達位置が、確率の分布に基づいて決定される。なお、各区分領域の内部の位置座標データは、乱数生成プログラムを用いて、生成される。この乱数生成プログラムは、ゲームプログラムに含まれており、RAM12に格納されている。
続いて、ゴルファーによりボールがミートされると、ボールの移動を開始する命令が、CPU7から発行される。すると、到達位置に向かうボールが、ゲーム空間GSにおいて制御される(S23)。たとえば、クラブがボールに当たったときの情報データ、ボールの回転量を示す回転データ、ボールの配置位置を示す位置座標データ、およびボールの到達位置を示す位置座標データ等に基づいて、ボールの軌道を規定するための軌道方程式の各種係数が、CPU7により導出される。そして、ここで導出された係数を軌道方程式に代入する処理を、CPU7に実行させることにより、ゴルファーによって放たれたボールの軌道が、設定される。すると、この軌道をボールが所定の時間たとえば1フレームごとに移動する状態が、テレビジョンモニタ20に表示される。
続いて、ボールがカップインしたか否かが、CPU7により判断される(S24)。そして、ボールがカップインした場合(S24でYes)、18ホールが終了したか否かが、CPU7により判断される(S25)。そして、18ホールが終了した場合(S25でYes)、ゲームを終了する命令が指示されたか否かが、CPU7により判断される(S26)。そして、ゲームを終了する命令が指示された場合(S26でYes)、ゲームデータが、RAM12に格納され、RAM12から記録媒体10へと記録される(S27)。
ここで、ボールがカップインしていない場合(S24でNo)、ステップ9(S9)の処理が、CPU7により再実行される。また、18ホールが終了していない場合(S25でNo)、ステップ9(S9)の処理が、CPU7により再実行される。さらに、ゲームを終了する命令が指示されなかった場合(S26でNo)、すなわち、ゲームを再開する命令が指示された場合、ステップ3(S3)の処理が、CPU7により再実行される。
上記のように、本実施形態では、目標位置MPを基準としたボールの到達範囲TRが、ゲーム空間GSに設定されるので、プレイヤはこの到達範囲TRを見て、これから自分が操作するゴルファーのショットが、どの辺りに到達するのかの見当を付けることができる。また、この到達範囲TRには、ボールの到達位置を決定するための確率の分布が、上記のように設定される。そして、ゴルファーがショットを放った場合、この確率の分布に基づいて、ボールの到達位置が決定される。このため、ゴルファーがベストショットを放った場合、ボールが目標位置MPおよび目標位置MPの近傍に到達する確率は、高くなるものの、このボールは必ずしも目標位置MPに到達するわけではない。また、ゴルファーが放ったショットがベストショットではなかった場合、ボールが目標位置MPから離れた位置に到達する確率は、高くなるものの、ボールが目標位置MPに到達する確率に当選したときには、ボールは目標位置MPに到達する。このように、本実施形態では、原則的には、ゴルファーに対するプレイヤの指示が、ショットに反映されるが、現実世界でゴルフがプレイされるときに発生する不確定性も、同時に考慮することができる。これにより、プレイヤは、ゴルフゲームをプレイしているにもかかわらず、現実にゴルフをしているかのような感覚を、味わうことができる。言い換えると、ゲーム提供者は、プレイヤに対して、リアリティのあるゴルフゲームを、提供することができる。
〔他の実施形態〕
(a)前記実施形態では、ゲームプログラムを適用しうるコンピュータの一例としての開発用のビデオゲーム装置を用いた場合の例を示したが、コンピュータは、前記実施形態に限定されず、モニタが別体に構成されたゲーム装置、モニタが一体に構成されたゲーム装置、ゲームプログラムを実行することによってゲーム装置として機能するパーソナルコンピュータやワークステーションなどにも同様に適用することができる。
(b)本発明には、前述したようなゲームを実行するプログラムおよびこのプログラムを記録したコンピュータ読み取り可能な記録媒体も含まれる。この記録媒体としては、カートリッジ以外に、たとえば、コンピュータ読み取り可能なフレキシブルディスク、半導体メモリ、CD−ROM、DVD、MO、ROMカセット、その他のものが挙げられる。