トップ :: A 生活必需品 :: A63 スポ−ツ;ゲ−ム;娯楽




【発明の名称】 ゴルフゲームシステム及び記録媒体
【発明者】 【氏名】菊地 雄治
【住所又は居所】兵庫県神戸市中央区港町中町7丁目3番地の2 コナミ株式会社内

【要約】 【課題】ゲームプレーヤに対し、ゲーム空間上の地形の情報を分かり易くガイドすることを課題とする。

【解決手段】ゴルフコースの画像と、ボールの画像とをテレビジョンモニタの表示面上に表示し、コントローラの操作と、ゴルフコースの各部分の高さ等の地形情報とに基づいてボールを移動するようにしたゴルフゲームにおいて、ゴルフコース上に複数の線から成るガイドGu2を表示すると共に、当該ガイドGu2を構成する線の輝度及び長さを、ゴルフコースの対応部分の高さに基づいて設定することで、ゴルフコースの画像のみでは表すことのできない地形情報を、ゲームプレーヤに分かり易くガイドする。
【特許請求の範囲】
【請求項1】 ゴルフコースを表示するゴルフゲームシステムであって、前記ゴルフコースの所定範囲内に存在する任意の頂点間に線を表示すると共に、各線の輝度を、その始点に対応する前記ゴルフコースの高さと、その終点に対応する前記ゴルフコースの高さと、の関係に応じて設定することを特徴とするゲームシステム。
【請求項2】 ゴルフコースを表示するようゲームシステムを動作させるためのプログラムを記録した記録媒体であって、前記ゴルフコースの所定範囲内に存在する任意の頂点間に線を表示すると共に、各線の輝度を、その始点に対応する前記ゴルフコースの高さと、その終点に対応する前記ゴルフコースの高さと、の関係に応じて設定するプログラムを記録した記録媒体。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、プログラムデータの記録された、光ディスク、磁気ディスク、半導体メモリを用いたカセット式記録媒体等を用いるゲームシステムに適用して好適な、ゲームシステム並びに記録媒体に関する。
【0002】
【従来の技術】ゲームシステムは数多く提案されている。家庭用の専用機とテレビジョンモニタとからなるシステム、業務用の専用機、パーソナルコンピュータ若しくはワークステーションとディスプレイと音声出力機とからなるシステム等である。これらのシステムは、何れも、プレーヤが操作するためのコントローラと、ゲームプログラムデータの記録された記録媒体と、ゲームプログラムデータに基いて音声や画像の生成のための制御を行うCPUと、画像を生成するためのプロセッサと、音声を生成するためのプロセッサと、画像を表示するためのCRTと、音声を出力するためのスピーカとで構成される。上記記録媒体としては、CD−ROM、半導体メモリ、半導体メモリを内蔵したカセット等が多い。ゲームシステムの構成は以上の通りである。
【0003】次に、ゲームの画面構成について説明する。ゲームの種類は多々あるが、ゲームの画面は、最もおおまかに言えば、上記コントローラの操作に基いて変化する、被操作物画像と、静止若しくは上記被操作物の操作状態により適応的に変化する背景画像とからなる。この背景画像を更に分類すると、ゲームプレーヤに対して視覚的変化を与えるだけに用いられるもの、即ち、単なる背景と、ゲームプレーヤに与えられる成果、例えば得点等を得るための条件として用いられるものとに分けることができる。後者の例としては、例えばゴルフゲームにおけるコースの背景画像がある。
【0004】通常、ゴルフゲームでは、ゴルフコースを示す画像と、ゴルファーを示す画像とがテレビジョンモニタの表示面上に表示されることにより、その表示面上にゴルフゲーム空間が形成される。そして、ゲームプレーヤによるコントローラの操作に応じて、上記ゴルフゲーム空間上のゴルファーが視覚的に動かされ、上記ゴルファーの持つクラブで、ボールが打たれる。打たれたボールは、ゴルフゲーム空間内において奥行き方向に向かって視覚的に飛ぶ。つまり、ゴルフゲーム空間内において、実際に人間が行うゴルフと同様なことが視覚的に行われる。簡単にいえば、いわゆるビデオゲームにおけるゴルフゲームは、ゲームプレーヤのコントローラの操作に応じて、テレビジョンモニタの管面上に表示する画像を適宜変更することにより、ゴルフを視覚的に行うというものである。
【0005】上記ゴルフコースの画像は、ゴルフコースの高低データと関連づけられている。そして、ゲームプレーヤによるコントローラの操作と、ゴルフコースの高低データとから、ゴルフボールが、ゴルフゲーム空間内においてどのくらい移動するのかが演算され、その演算結果が、画像として表示される。例えば、ゴルフボールが、グリーン内の非常に低い位置にあるときに、ゲームプレーヤが、ゴルフゲーム空間内のゴルファーが非常に高い位置に向かってゴルフボールを弱く打つように、コントローラを操作した場合、ゴルフゲーム空間内のゴルフボールは、ゲームプレーヤの意図した位置には移動しない。このように、コースの画像の各部分に対応づけられている高低データを用いるのは、ゴルフゲームを行うゲームプレーヤに対し、より、実際のゴルフに近い感覚を与えるためである。
【0006】
【発明が解決しようとする課題】ところで、上述したゴルフゲームのように、背景の各位置に高低データが関連づけられるようなゲームでは、ゲームプレーヤが適切に操作を行えるようにするために、コースの高低を正確に表示する必要がある。コースの高低が何らかの形で表現されていないと、ゲームプレーヤは、コントローラの操作を適切に行えないからである。
【0007】本発明はこのような点を考慮してなされたもので、背景の各頂点に高低データが関連づけられているようなゲームにおいて、簡単、且つ、正確に、ゲームプレーヤに対して、操作のガイドを行うことを目的とする。
【0008】
【課題を解決するための手段】本発明は、ゴルフコースを表示するゴルフゲームシステムであって、前記ゴルフコースの所定範囲内に存在する任意の頂点間に線を表示すると共に、各線の輝度を、その始点に対応する前記ゴルフコースの高さと、その終点に対応する前記ゴルフコースの高さと、の関係に応じて設定することを特徴とするゲームシステムである。
【0009】また、本発明は、ゴルフコースを表示するようゲームシステムを動作させるためのプログラムを記録した記録媒体であって、前記ゴルフコースの所定範囲内に存在する任意の頂点間に線を表示すると共に、各線の輝度を、その始点に対応する前記ゴルフコースの高さと、その終点に対応する前記ゴルフコースの高さと、の関係に応じて設定するプログラムを記録した記録媒体である。
【0010】他の発明の1つは、地形を示す画像情報と、移動物体の画像情報とを表示手段の表示面上に表示し、上記移動物体を、操作手段の操作状態と、上記地形の地形情報とに基いて、上記表示手段の表示面上において移動するようにした地形情報を用いるゲームシステムにおけるガイド表示方法であって、上記表示手段の表示面上に、複数の線で構成されるガイドを表示すると共に、当該ガイドを構成する線の輝度及び長さを、上記地形の地形情報に基いて設定するものである。
【0011】他の発明の1つは、地形を示す画像情報と、移動物体の画像情報とを表示手段の表示面上に表示し、上記移動物体を、操作手段の操作状態と、上記地形の地形情報とに基いて、上記表示手段の表示面上において移動するようにした地形情報を用いるゲームシステムにおけるガイド表示方法であって、上記表示手段の表示面上に、複数の線で構成されるガイドを表示すると共に、当該ガイドを構成する線の輝度及び長さを、上記地形の地形情報に基いて設定するものである。
【0012】また、上記発明において、上記地形を示す画像情報は、上記表示手段の表示面上において疑似3次元表示され、上記ガイドは、2次元平面上において、マトリクス状に配置された複数の線で構成されると共に、上記表示手段の表示面上に疑似3次元表示された地形上に、疑似3次元表示されるものである。
【0013】また、上記発明において、上記ゲームシステムは、ゴルフゲームシステムであり、上記地形を示す画像情報は、ゴルフコースの画像情報であり、上記移動物体は、ゴルフボールの画像情報である。また、上記発明において、上記地形の画像情報は、多数のポリゴンで構成されるものであり、上記ガイドは、上記ポリゴンの頂点間に描画される複数の線で構成されるものである。
【0014】また、上記発明において、上記地形情報は、頂点の高さを示す情報であり、上記ガイドを形成する線の輝度は、各線の始点及び終点に対応する地形情報の頂点の高さの値に応じて設定されるものである。また、上記発明において、上記移動物体の移動方向を予め設定すると共に、設定された上記移動物体の移動方向に応じて上記地形の画像情報及び上記ガイドを疑似3次元表示するものである。
【0015】また、上記発明において、上記各線の輝度の値は、上記始点の高さが上記終点の高さよりも高い場合には、輝度が上記始点から上記終点に向かって徐々に低くなるよう設定され、上記始点の高さが上記終点の高さよりも低い場合には、輝度が上記始点から上記終点に向かって徐々に高くなるよう設定される請求項1記載の地形情報を用いるものである。プレーヤが操作手段を操作することにより、ゲーム空間上の移動物体を打撃して当該移動物体をゲーム空間上において移動させるようにしたゲームシステムで用いられる移動物体の打撃位置設定方法であって、上記移動物体をゲーム空間上に固定表示し、水平方向位置設定用画像を少なくとも上記移動物体上で水平方向に移動するように表示し、プレーヤが上記操作手段の対応ボタンを押したときの上記水平方向位置設定用画像の水平位置を記憶し、垂直方向位置設定用画像を少なくとも上記移動物体上で垂直方向に移動するように表示し、プレーヤが上記操作手段の対応ボタンを押したときの上記垂直方向位置設定用画像の垂直位置を記憶し、プレーヤが上記操作手段を操作して上記移動物体をゲーム空間上で打撃する際に、上記移動物体上の打撃位置を、上記水平位置及び垂直位置で示される位置とするものである。
【0016】
【発明の実施の形態】以下に、図1〜図26を順次参照して本発明の実施の形態について詳細に説明する。
【0017】本発明の実施の形態の説明は、次に示す項目説明を各項目の先頭に記載し、各項目について次に示す順序で説明する。
【0018】A.ゲームシステムの構成(図1)
B.図1に示したCPU1の有する機能(図2)
C.ゴルフコースの一例(図3A)
D.ゴルフコースから抽出された抽出エリア(図4A)
E.ゴルフコースのデータテーブル(図4B)
F.ゴルフ画面の表示例(図5)
G.メインルーチンによる制御(図6〜図8)
H.画像表示ルーチンS100による制御(図9〜図10)
I.アンデュレーション画像出力ルーチンS150(図11〜図12)
J.ティーアップ設定ルーチンS200による制御(図13〜図14)
K.カメラ位置設定ルーチンS250による制御(図15〜図16)
L.方向設定ルーチンS300による制御(図17〜図18)
M.スタンス設定ルーチンS350による制御(図19〜図20)
N.クラブ設定ルーチンS400による制御(図21〜図22)
O.打撃位置設定ルーチンS450による制御(図23〜図24)
P.打撃ルーチンS500による制御(図25〜図26)
【0019】A.ゲームシステムの構成(図1)
【0020】図1は、本発明の一実施の形態としてのゲームシステムの構成例を示す構成図である。
【0021】〔接続及び構成〕この図1に示されるゲームシステムは、ゲーム機本体と、プログラムデータの記録された記録媒体30とからなる。ゲーム機本体は、CPU1に、アドレス、データ及びコントロールバスからなるバス2が接続され、このバス2に、グラフィックスデータ生成プロセッサ3、インターフェース回路4、メインメモリ5、ROM6、伸張回路7、パラレルポート8、シリアルポート9、描画処理プロセッサ10及びバッファ11、音声処理プロセッサ13及びバッファ14、デコーダ17及びバッファ18、インターフェース回路20及びメモリ21とが夫々接続され、更に、描画処理プロセッサ10にテレビジョンモニタ12が接続され、音声処理プロセッサ13に増幅回路14を介してスピーカ16が接続され、デコーダ17に記録媒体ドライバ19が接続され、インターフェース回路20にコントローラ22が接続されて構成される。
【0022】ここで、上記ゲームシステムは、用途に応じてその形態が異なる。即ち、上記ゲームシステムが、家庭用として構成されている場合においては、テレビジョンモニタ12及びスピーカ16はゲーム機本体とは別体となる。また、上記ゲームシステムが、業務用として構成されている場合においては、図1に示されている構成要素はすべて一体型となっている1つの筺体に収納される。また、上記ゲームシステムが、パーソナルコンピュータやワークステーションを核として構成されている場合においては、上記テレビジョンモニタ12は、上記コンピュータ用のディスプレイに対応し、上記描画処理プロセッサ10、音声処理プロセッサ13、伸張回路7は、夫々上記記録媒体30に記録されているプログラムデータの一部若しくはコンピュータの拡張スロットに搭載される拡張ボード上のハードウエアに対応し、上記インターフェース回路4、上記パラレルポート8、上記シリアルポート9及びインターフェース回路20は、コンピュータの拡張スロットに搭載される拡張ボード上のハードウエアに対応する。また、上記バッファ11、14及び18は、夫々メインメモリ5若しくは図示しない拡張メモリの各エリアに対応する。本形態では、上記ゲームシステムが、家庭用として構成されている場合を例にとり説明する。
【0023】次に、図1に示した各構成要素についてより詳細に説明する。グラフィックスデータ生成プロセッサ3は、CPU1のいわばコプロセッサとしての役割を果たす。即ち、このグラフィックスデータ生成プロセッサ3は、座標変換や光源計算、例えば固定小数点形式の行列やベクトルの演算を、並列処理により行う。このグラフィックスデータ生成プロセッサ3の主な処理は、CPU1から供給される画像データの2次元若しくは3次元面内における各頂点の座標データと、移動量データと、回転量データとに基いて、処理対象画像の表示エリア上におけるアドレスを求め、当該アドレスデータを、再びCPU1に返す処理や、仮想的に設定された光源からの距離に応じて、画像の輝度を計算する処理等である。
【0024】上記インターフェース回路4は、周辺デバイス、例えばマウスやトラックボール等のポインティングデバイス等のインターフェース用である。上記ROM6はゲームシステムのオペレーティングシステムとしてのプログラムデータが、記憶されている。パーソナルコンピュータで言えば、BIOS(Basic Input Output System)に相当する。
【0025】上記伸張回路7は、MPEG(Moving Picture Engineering Group)やJPEG(Joint Picture Engineering Group)に準拠したイントラ符号化により圧縮された圧縮画像に対し、伸張処理が施される。伸張処理は、デコード処理(VLC:Variavle Length Codeによりエンコードされたデータのデコード)、逆量子化処理、IDCT(Inverse Discrete Cosine Transform)処理、イントラ画像の復元処理等である。
【0026】描画処理プロセッサ10は、CPU1が発行する描画命令に基いて、バッファ11に対する描画処理を行う。バッファ11は、表示エリアと非表示エリアとからなる。表示エリアは、テレビジョンモニタ12の表示面上に表示するデータの展開エリアである。非表示エリアは、テクスチャデータやカラーパレットデータ等の記憶エリアである。ここで、テクスチャデータは、2次元の画像データである。カラーパレットデータは、テクスチャデータ等の色を指定するためのデータである。これらのデータは、記録媒体30から一度、若しくはゲームの進行状況に合致して複数回に分けて、CPU1により、予めバッファ11の非表示エリアに記憶される。
【0027】描画命令としては、例えばラインを描画するための描画命令、ポリゴンを用いて立体的な画像を描画するための描画命令、通常の2次元画像を描画するための描画命令がある。ここで、ポリゴンは、多角形の2次元画像であり、本形態においては、三角形若しくは四角形が用いられる。
【0028】ラインを描画するための描画命令は、ラインの描画開始及び終了アドレス、色及びライン描画を意味するデータからなる。このライン描画命令は、CPU1により、直接、描画処理プロセッサ10に対して発行される。
【0029】ポリゴンを用いて立体的な画像を描画するための描画命令は、バッファ11の表示エリア上におけるポリゴン頂点アドレスデータ、ポリゴンに貼り付けるテクスチャデータのバッファ11上における記憶位置を示すテクスチャアドレスデータ、テクスチャデータの色を示すカラーパレットデータのバッファ11上における記憶位置を示すカラーパレットアドレスデータ並びにテクスチャの輝度を示す輝度データとからなる。これらのデータの内、表示エリア上のポリゴン頂点アドレスデータは、グラフィックスデータ生成プロセッサ3が、CPU1からの、3次元空間上におけるポリゴン頂点座標データを、CPU1からの移動量データ及び回転量データに基いて、座標変換することによって新たに求められるポリゴン頂点座標データの内の、x及びy方向の座標データからなるものである。また、輝度データは、上記グラフィックスデータ生成プロセッサ3が、CPU1からの、上記座標変換後のポリゴン頂点座標データが示す位置から、仮想的に配置された光源までの距離に基いて、決定される。
【0030】上記ポリゴン頂点アドレスデータは、バッファ11の表示エリア上のアドレスを示す。描画処理プロセッサ10は、3若しくは4個のポリゴン頂点アドレスデータで示されるバッファ11の表示エリアの範囲に、対応するテクスチャデータを書き込む。この処理は、一般に、「テクスチャの貼り付け」等と称されている。
【0031】1つの物体は、多数のポリゴンで構成される。CPU1は、各ポリゴンの3次元空間上の座標データを、メインメモリ5上に保持している。そして、コントローラ22の操作により、表示面上で物体を動かす場合、言い換えれば、物体そのものの動きを表現する場合若しくは物体を見ている位置(視点位置)を変える場合、次のような処理が行われる。即ち、CPU1は、グラフィックスデータ生成プロセッサ3に対し、メインメモリ5上に保持している各ポリゴンの頂点の3次元座標データと、各ポリゴンの移動量データ及び回転量データを与える。グラフィックスデータ生成プロセッサ3は、各ポリゴンの頂点の3次元座標データと、各ポリゴンの移動量データ及び回転量データとに基いて、順次、各ポリゴンの移動後及び回転後の3次元座標データを求める。このようにして求められた各ポリゴンの3次元座標データが2次元座標データに変換され、水平及び垂直方向の座標データが、バッファ11の表示エリア上のアドレスデータ、即ち、ポリゴン頂点アドレスデータとして、描画処理プロセッサ10に供給される。描画処理プロセッサ10は、3個若しくは4個のポリゴン頂点アドレスデータによって示されるバッファ11の三角形若しくは四角形の表示エリア上に、予め割り当てられているテクスチャアドレスデータが示すテクスチャデータを書き込む。これによって、テレビジョンモニタ12の表示面上には、多数のポリゴンにテクスチャデータの貼り付けられた物体が表示される。
【0032】通常の2次元画像を描画するための描画命令は、頂点アドレスデータ、テクスチャアドレスデータ、テクスチャデータの色を示すカラーパレットデータのバッファ11上における記憶位置を示すカラーパレットアドレスデータ、並びにテクスチャの輝度を示す輝度データとからなる。これらのデータの内、頂点アドレスデータは、グラフィックスデータ生成プロセッサ3が、CPU1からの2次元平面上における頂点座標データを、CPU1からの移動量データ及び回転量データに基いて、座標変換して得られる座標データである。以下、描画処理については、「描画命令を発行する」等のように簡略化して記載する。
【0033】音声処理プロセッサ13は、記録媒体30から読み出されたADPCMデータを、バッファ14に記憶し、このバッファ14に記憶されたADPCMデータを音源とする。そして、音声処理プロセッサ13は、ADPCMデータを、例えば44.1KHzの周波数のクロックで読み出す。そして、そして音声処理プロセッサ13は、バッファ14から読み出したADPCMデータに対し、ピッチの変換、ノイズの付加、エンベロープの設定、レベルの設定、リバーブの付加等の処理を施す。記録媒体30から読み出される音声データがPCMデータの場合においては、音声処理プロセッサ13により、ADPCMデータに変換される。また、PCMデータに対するプログラムデータによる処理は、メインメモリ5上において直接行われる。メインメモリ5上において処理されたPCMデータは、音声処理プロセッサ13に供給されてADPCMデータに変換された後に、上述した各種処理が施された後に、音声としてスピーカ16から出力される。
【0034】記録媒体ドライバ19は、例えばハードディスクドライブ、光ディスクドライブ、フレキシブルディスクドライブ、シリコンディスクドライブ、カセット媒体読みとり機等である。記録媒体30は、例えばハードディスク、光ディスク、フレキシブルディスク、半導体メモリ等である。記録媒体ドライバ19は、記録媒体30から画像、音声、プログラムデータを読み出し、読み出したデータを、デコーダ17に供給する。デコーダ17は、記録媒体ドライバ19からの再生データに対し、ECC(Error Correction Code)によるエラー訂正処理を施し、エラー訂正処理を施したデータを、メインメモリ5若しくは音声処理プロセッサ13に供給する。
【0035】メモリ21は、例えば、ホルダ及びカード型のメモリからなる。カード型のメモリは、例えば終了時点の状態を保持する等のように、ゲームの各種パラメータを保持するためのものである。コントローラ22は、左キーL、右キーR、上キーU、下キーDからなる十字キーと、左ボタン22L、右ボタン22R、スタートボタン22a、セレクトボタン22b、第1ボタン22c、第2ボタン22d、第3ボタン22e、第4ボタン22fとからなる。十字キーは、ゲームプレーヤが、CPU1に対し、上下左右を示すコマンドを与えるものである。スタートボタン22aは、ゲームプレーヤが、記録媒体30からロードされるゲームプログラムデータの開始をCPU1に指示するためのものである。セレクトボタン22bは、ゲームプレーヤが、記録媒体30からメインメモリ5にロードされるゲームプログラムデータに関する各種選択を、CPU1に指示するためのものである。尚、左キーL、右キーR、第1〜第4ボタン22c、22d、22e、22fの機能は、記録媒体30からロードされるゲームプログラムデータによって異なる。
【0036】〔動作〕電源スイッチ(図示せず)がオンにされ、ゲームシステムに電源が投入される。このとき、記録媒体30が、記録媒体ドライバ19に装填されていると、CPU1が、ROM6に記憶されているオペレーティングシステムに基いて、記録媒体ドライバ19に対し、記録媒体30からのプログラムデータの読み出しを指示する。これにより、記録媒体ドライバ19は、記録媒体30から画像、音声及びプログラムデータを読み出す。読み出された画像、音声及びプログラムデータは、デコーダ17に供給され、ここで、エラー訂正処理が施される。デコーダ17においてエラー訂正処理の施された画像データは、バス2を介して伸張回路7に供給され、ここで、上述した伸張処理が施された後に、描画処理プロセッサ10に供給され、この描画処理プロセッサ10により、バッファ11の非表示エリアに書き込まれる。
【0037】デコーダ17においてエラー訂正処理の施された音声データは、メインメモリ5若しくは音声処理プロセッサ13に供給され、メインメモリ5若しくはバッファ14に書き込まれる。また、デコーダ17においてエラー訂正処理の施されたプログラムデータは、メインメモリ5に供給され、このメインメモリ5に書き込まれる。以降、CPU1は、メインメモリ5に記憶されているゲームプログラムデータ、並びにゲームプレーヤが、コントローラ22を介して指示する内容に基いて、ゲームを進行する。即ち、CPU1は、コントローラ22を介してゲームプレーヤから指示される指示内容に基いて、適宜、画像処理の制御、音声処理の制御、内部処理の制御を行う。画像処理の制御とは、2次元若しくは3次元座標データや視点位置データのグラフィックスデータ生成プロセッサ3への供給、グラフィックスデータ生成プロセッサ3が求めたバッファ11の表示エリア上のアドレスデータや輝度データを含む描画命令の発行等である。音声処理の制御とは、音声処理プロセッサ13に対する音声出力コマンドの発行、レベル、リバーブ等の指定である。内部処理の制御とは、例えばコントローラ22の操作に応じた演算等である。
【0038】B.図1に示したCPU1の有する機能(図2)
【0039】図2は、図1に示したCPU1の有する機能を示す説明図である。CPU1は、図1に示した記録媒体30から読み出され、メインメモリ5に記憶されたプログラムデータを読むことにより、図2に示す機能を持つ。この図2に示されているように、CPU1の機能は、ボタン操作検出手段1a、視点位置データ設定手段1b、表示範囲情報抽出手段1c、演算手段1d、結果情報設定手段1e、判断手段1h、描画命令発行手段1g、変数設定手段1h、アドレス設定手段1i、アドレス取得手段1j、高さデータ補正手段1k、アンデュレーション出力判断手段1m、アンデュレーション画像描画手段1n、パラメータ管理手段1o、乱数発生手段1p、輝度処理手段1qとで構成される。これらの手段は、夫々項目C〜項目Oにおいて説明する制御の主体となる。
【0040】C.ゴルフコースの一例(図3A)
【0041】図3Aは、ゴルフコースの一例を示す説明図であり、この図において、ゴルフコースは、説明の便宜上、マトリクス状に領域が仕切られている。この図3Aに示されているように、ゴルフコースには、ティーグラウンドTgと、グリーンGrとが含まれる。また、ゴルフコース上に示される各縦線と各横線の各交点には、夫々アドレス(x、y)が与えられている。この例では、最小アドレスは(0、0)、最大アドレスは、(200、530)となっている。これらのアドレスデータは、テクスチャ番号データと関連づけられ、記録媒体30に記録されている。
【0042】D.ゴルフコースから抽出された抽出エリア(図4A)
【0043】図4Aは、図3に示したゴルフコースから、視点位置データに基いて抽出された抽出エリアAr1を示す説明図である。尚、この図4Aは、図3に示したゴルフコースよりも、コース上に設定されている情報が細かく示されている。この図4Aに示されているように、ゴルフコースは、三角形若しくは四角形の多くのポリゴンで構成される。そして、図4A中に示されている黒い点は、夫々ポリゴンの頂点を示している。この頂点の高さデータも、上述と同様に、テクスチャ番号データと関連づけられ、記録媒体30に記録されている。図1に示したグラフィックスデータ生成プロセッサ3は、高さデータに基いて光源計算を行い、その結果に基いて、各テクスチャの輝度データの値を設定する。ゴルフコースの光源は、ゴルフコースの上に設定されるので、光源との距離は、高さデータが基準となる。
【0044】E.ゴルフコースのデータテーブル(図4B)
【0045】図4Bは、ゴルフコースのデータテーブルを示す説明図である。この図4Bに示されているように、1つのゴルフコースに対して1つのデータテーブルが用意されている。そして、1つのデータテーブルは、この図4Bに示されているように、0〜n番までのポリゴン頂点番号データ、この0〜n番までのポリゴン頂点データについて夫々登録されている水平方向アドレスデータx、垂直方向アドレスデータy、高さデータz、輝度データLuからなる。元々テーブルに登録されている高さデータは、ゴルフボールの位置を基準として、随時、補正され、書き換えられる。そして、輝度データLuは、補正された高さデータに基いて、輝度処理手段1qにより演算により求められ、このテーブルに登録される。テーブルに登録された輝度データLuは、既に説明したテクスチャアドレスデータ等と共に、描画命令として、図1に示した描画処理プロセッサ10に供給される。描画処理プロセッサ10は、描画命令中の輝度データの値が示す輝度で、描画すべきデータを表示する。
【0046】ここで、上記ポリゴン頂点番号データは、図4において黒い点で示した、ポリゴンの頂点のインデックス番号である。また、上記水平及び垂直方向アドレスデータは、図3に示したアドレスx、yである。
【0047】F.画面表示例(図5)
【0048】図5は、画面表示例を示す説明図である。この図5に示すように、基本的な画面は、左上及び右上の文字情報の表示エリアと、エリアAr2、Ar3、Ar4と、ゴルファーMa及びそのコースの表示エリア(図中中央)と、ガイドGu1の表示エリアとで構成される。
【0049】ここで、左上のエリアには、この例に示されるように、打数を示す文字(0STROKE)と、ゴルファーの番号(複数の場合の1人目、2人目の意味である)を示す文字と、残りの距離を示す文字(REST 518y)とからなる。そして、更に、このエリアの真下の領域には、風力を示す文字(WIND 4m)が表示され、その下には風向きを示す矢印Byの画像が表示される。
【0050】また、エリアAr2には、例えばゴルフクラブの選択、ティーアップ、打撃位置等の設定すべき事項のタイトルが表示され、エリアAr3には、上記設定すべき事項の画像(例えばゴルフクラブ等)が表示される。また、ガイドGu1には、ゴルフボールの飛距離、位置を示すための指示画像Inが表示される。この指示画像Inは、上記設定に応じて随時その表示状態が変更される。また、エリアAr4には、ゴルフボールの画像と地面が表示される。
【0051】また、画面の中央には、ゴルフクラブCbを持つゴルファーMaの画像と、グリーンGr等のコースの風景が表示されると共に、このゴルファーMaの位置(若しくはボールの位置)から打撃方向に向かって、ガイドGu2が表示される。このガイドGu2は、図3Bに示されるように、2次元平面上においてマトリクス状の形状となっており、多数の直線の集まりによって形成される。このガイドGu2は、図5に示されるように、ゴルファーMaの位置から打撃方向に向かって地形に合致するように、即ち、地形と同様に、疑似3次元表示される。そして、更に、ガイドGu2は、各部の下に位置する地形の高さに応じてその輝度が可変されている。この例では、ガイドGu2は、その真下の地形の高さが高い程、輝度が高く設定され、その真下の地形の高さが低い程、輝度が低く設定される。これにより、ゲームプレーヤは、地形の高低が判別でき、例えばコントローラ22で打撃設定を行う際に、その設定値を強くする等のように、よりゴルフゲーム空間内の地形に応じたゲーム運びを行うことができる。
【0052】既に説明したように、上記ガイドGu2は、地形を構成するポリゴンの各頂点間を線描画命令に基いて、図1に示した描画処理プロセッサ10が描画した多数の線により形成される。線描画命令中には、各ポリゴン頂点の輝度データが含まれているので、描画処理プロセッサ10は、線の輝度を、始点に対応するポリゴンの頂点の輝度、並びに終点に対応するポリゴンの頂点の輝度に基いて決定する。例えば、始点の輝度が、終点の輝度よりも高いときには、線の輝度は、始点が最も高く、終点に近づくにつれて徐々に低くなるように決定される。一方、始点の輝度が、終点の輝度よりも低いときには、線の輝度は、始点が、最も低く、終点に近づくにつれて徐々に高くなるように決定される。尚、図5においては、作図の都合上、1本の線の内部でのこのようなグラデーションの表現はしていない。
【0053】図3A及び図4を参照して説明したように、通常、風景の各部分は、高さデータが設定されている。そして、図1に示したグラフィックスデータ生成プロセッサ3は、この高さデータと、視点位置に基いた仮想的な光源の位置に基いて光源計算を行い、その結果に応じて各部の輝度を設定する。よって、風景そのものだけである程度の距離、高低を表現することはできる。しかしながら、光源計算で求めた輝度の違いでコース内での距離や高低を表現するだけでは、これをガイドとした場合に、コントローラ22の操作を適切に行うことができない。そこで、ガイドGu2を表示するようにする。これによれば、同じ長さの直線からなるガイドGu2の各部分が、コース内の高低に応じた明るさ、且つ、距離に応じた長さとなるので、ゴルフコースの距離及び高低を、より分かり易く表現することができる。従って、ゲームプレーヤは、コントローラ22を、よりゲーム空間内のゴルフコースの条件に合致させて操作することができる。
【0054】G.メインルーチンによる制御(図6〜図8)
【0055】図6〜図8は、メインルーチンによる制御動作を説明するためのフローチャートである。尚、ステップS1のみ、図1に示したROM6に記憶されているオペレーティングシステムによる制御動作である。他のステップは、記録媒体30から読み出されたゲームプログラムデータによる制御動作である。また、ゲームプログラムデータによる制御の主体は、既に説明したように、図2に示したCPU1の機能としての各手段である。
【0056】ステップS1では、オペレーティングシステムの命令により、記録媒体ドライバ19が、記録媒体30から画像、音声及びプログラムデータを読み出す。読み出されたデータの内、プログラムデータは、メインメモリ5に記憶される。これにより、CPU1は、図2に示した機能を有する。尚、このとき、画像、即ち、テクスチャデータは、描画処理プロセッサ10のバッファ11に記憶され、夫々テクスチャ番号が割り当てられるものとする。また、音声データは、音声処理プロセッサ13のバッファ14に記憶され、夫々音声番号データが割り当てられるものとする。通常、すべての画像及び音声データが、ステップS1においてバッファ11及び14に保持されることはないが、説明の便宜上、すべての画像及び音声データが、ステップS1においてロードされるものとする。
【0057】ステップS2では、ボタン操作検出手段1aが、コントローラ22のスタートボタン22aが押された否かを判断し、「YES」であればステップS3に移行する。
【0058】ステップS3では、描画命令発行手段1gが、セレクト画像の描画を示す描画命令を、図1に示した描画処理プロセッサ10に対して発行する。描画処理プロセッサ10は、上記描画命令に基いて、セレクト画像の画像データを、バッファ11の表示面上に展開する。これにより、テレビジョンモニタ12の表示面上には、セレクト画像が表示される。
【0059】ステップS4では、ボタン操作手段1aが、コントローラ22のスタートボタン22aが押されたか否かを判断し「YES」であればステップS5に移行する。
【0060】ステップS5では、CPU1が、セレクトされたゲームにセットする。ここで、「セレクトされる」とは、ゲームプレーヤが、ステップS3で表示されたセレクト画像を参照して、十字キーを用いてゲームを選択し、この後に、スタートボタン22aを押すことを意味する。また、ここで「ゲーム」とは、ゲームそのものの他、例えば対戦型格闘ゲームにおけるキャラクタ等も含む。要するに、ゲームが実際に開始される前の選択事項である。
【0061】ステップS6では、描画命令発行手段1gが、セレクトされたゲームの初期画像の描画を示す描画命令を、描画処理プロセッサ10に対して発行する。これにより、描画処理プロセッサ10は、バッファ11の表示エリア上に初期画像の画像データを、展開する。これにより、テレビジョンモニタ12の表示面上には、初期画像が表示される。
【0062】ステップS7では、変数設定手段1hが、メインメモリ5に保持しているフラグや変数を夫々リセットする。
【0063】ステップS8では、視点位置データ設定手段1bが、メインメモリ5に保持されている視点位置データEx、Ey、Ezの値を、夫々初期値にセットする。ここで「初期値」とは、例えばゴルフコースのティーグラウンドTgの位置を示すアドレスデータである。
【0064】ステップS100では、画像表示処理を行う。この画像表示処理ルーチンについては後に詳述する。簡単に言えば、このルーチンにおいては、ステップS8で設定された視点位置データEx、Ey、Ezに応じた画像が、表示される。
【0065】ステップS9では、演算手段1dが、視点位置データEx、Ey、Ezに変数Rx、Ry、Rz(一定ではない)を、夫々加算する。ここで、視点位置データEx、Ey、Ezは、夫々水平方向アドレス、垂直方向アドレス、及び高さを示す。
【0066】ステップS10では、判断手段1fが、視点位置データEyが最大値EYmaxを越えたか否かを判断し、「YES」であればステップS11に移行し、「NO」であれば再びステップS100に移行する。上記ステップS100からS10からなるループは、視点位置データの値を変える都度、画像表示処理ルーチンS100により画像表示を行うことで、ゴルフコースを、ゲームプレーヤに案内するように表示するためである。
【0067】ステップS11では、視点位置データ設定手段1bが、視点位置データEx、Ey、Ezに、夫々初期値をセットする。
【0068】ステップS100では画像表示処理を行う。
【0069】ステップS200では、ティーアップ設定処理を行う。このティーアップ設定処理ルーチンS200については後に詳述する。「ティーアップ設定」とは、ティーショットの位置の設定を意味する。
【0070】ステップS150では、アンデュレーション画像出力処理を行う。アンデュレーション画像出力ルーチンS150については後に詳述する。アンデュレーション画像とは、図5において説明したガイドGu2の画像である。既に説明したように、アンデュレーション画像は、ゴルフゲーム空間内のコースの距離及び高低をよりわかり易くするためのガイドである。このガイドGu2は、高いところに対応する位置ほど、その輝度が高く設定され、遠いところに対応する位置ほど、その長さが短く表示される。尚、他のステップS150も、同じ内容である。
【0071】ステップS250では、カメラ位置設定処理を行う。「カメラ位置」とは、ゴルフコース及びゴルファーの撮像位置を意味する。このカメラ位置設定処理ルーチンS250については後に詳述する。
【0072】ステップS300では、方向設定処理を行う。「方向」とは、ゴルファーの体の向きを意味する。この方向設定ルーチンS300については後に詳述する。
【0073】ステップS12では、ボタン操作検出手段1aが、第4ボタン22fが押されたか否かを判断し、「YES」であればステップS350に移行する。このステップS12は、方向設定ルーチンS300による方向設定を終了するか否かを判断するステップである。即ち、ゲームプレーヤが、第4ボタン22fを押さない限り、方向設定ルーチンS300に移行すると共に、この後、方向設定ルーチンS300で設定された方向設定値Diに基いたアンデュレーション画像の表示が、アンデュレーション画像出力ルーチンS150において行われる。
【0074】ステップS350では、スタンス設定処理が行われる。「スタンス」とは、ゴルファーの姿勢を意味する。このスタンス設定ルーチンS350については後に詳述する。
【0075】ステップS400では、クラブ設定処理が行われる。「クラブ」とは、アイアン、ウッド等のゴルフクラブを意味する。このクラブ設定ルーチンS400については後に詳述する。
【0076】ステップS450では、打撃位置設定処理が行われる。「打撃位置」とは、ゴルフボールに対してクラブのヘッド部分が当たる位置を意味する。この打撃位置設定ルーチンS450については後に詳述する。
【0077】ステップS500では、打撃処理が行われる。この処理においては、打たれたゴルフボールや背景等の画像処理が主に行われる。この打撃ルーチンS500については後に詳述する。
【0078】ステップS13では、判断手段1fが、最後のボール位置がホール位置か否かを判断し、「YES」であればステップS13に移行し、「NO」であればステップS14に移行する。ここで最後のボール位置がホール位置か否かを判断するのは、カップ・インした場合と、カップ・インしない場合とでは、その後の処理を変える必要があるからである。
【0079】ステップS14では、描画命令発行手段1gが、スコア画像の描画を示す描画命令を、描画処理プロセッサ1gに対して発行する。次に、結果情報設定手段1eが、打数等を示す文字データを、描画処理プロセッサ10に供給する。これにより、描画処理プロセッサ1gは、結果情報を反映したスコア画像を、バッファ11の表示エリア上に展開する。これにより、テレビジョンモニタ12の表示面上には、結果の反映されたスコア画像が表示される。そして、この後、再びステップS3に移行する。
【0080】ステップS15では結果情報設定手段1eが、最後のボール位置までの飛距離を示す文字データを、描画処理プロセッサ10に供給する。これにより、描画処理プロセッサ1gは、最後のボール位置までの飛距離を示す画像データを、バッファ11の表示エリア上に展開する。これにより、最後のボール位置までの飛距離が、画像としてテレビジョンモニタ12に表示される。
【0081】ステップS16では、視点位置データ設定手段1bが、最後のボール位置データBxn,Byn、Bznを、視点位置データEx、Ey、Ezに夫々代入する。この後、再びステップS100の画像表示処理ルーチンS100に移行する。これによって、最後のボール位置を視点位置とした画像が表示される。
【0082】H.画像表示ルーチンS100による制御(図9〜図10)
【0083】図9〜図10は、画像表示ルーチンS100による制御動作を説明するためのフローチャートである。
【0084】ステップS101では、アドレス設定手段1iが、ゴルフコースの水平方向最小アドレスXmin、垂直方向最小アドレスYmin、水平方向最大アドレスXmax、垂直方向最大アドレスYmaxをセットする。図3に示したゴルフコースを例にとると、最小アドレスは、(0、0)、最大アドレスは、(200、530)となる。以下、x及びXは、水平方向のアドレスであることを意味し、y及びYは、垂直方向のアドレスであることを意味し、z及びZは、高さであることを意味する。
【0085】ステップS102では、アドレス取得手段1jが、視点位置データEx、Ey、Ezに基いて、表示範囲内の水平方向最小アドレスデータADxmin、垂直方向最小アドレスデータADymin、水平方向最大アドレスデータADxmax垂直方向最大アドレスデータADymaxを、図4Bに示したテーブルから求める。ここで、表示範囲とは、図4Aに示したような抽出エリアAr1を意味する。
【0086】ステップS103では、変数設定手段1hが、アドレスデータADxに、ゴルフコースの最小アドレスXminを代入する。
【0087】ステップS104では、変数設定手段1hが、アドレスデータADyに、ゴルフコースの最小アドレスデータYminを代入する。
【0088】ステップS105では、高さデータ補正手段1kが、高さデータzを、テーブルから読む。
【0089】ステップS106では、高さデータ補正手段1kの制御の元に、演算手段1dが、ステップS105で読み出された高さデータzから、高さデータEzを減算する。テーブルに登録されている高さデータzは、初期値である。そして、高さデータは、ゴルフボールの置かれているところの高さを基準とする。従って、テーブルに登録されている高さデータzを、ゴルフボールの置かれている位置の高さに基いて、随時修正しなければならない。そこで、このステップS106に示されるように、テーブルから読み出した高さデータzから、視点位置データの高さデータEzを減算するのである。
【0090】尚、最初の1打が打たれる前は、視点位置データEx、Ey、Ezが用いられるが、最初の1打が打たれた後は、視点位置データEx、Ey、Ezには、ボール位置データBx、By、Bzが代入される。従って、最初の1打が打たれる前は、視点位置データの高さデータEzがテーブルから読み出した高さデータzから減算されるが、最初の1打が打たれた後は、ボール位置データBzが、テーブルから読み出された高さデータzから減算される。
【0091】ステップS107では、高さデータ補正手段1kが、ステップS106で求められた高さデータADzを、テーブルから読み出された高さデータzの代わりに、その高さデータzが記憶されていたテーブルの記憶位置に書き込む。これにより、テーブルから読み出された高さデータzは、視点位置データEzを基準とした高さデータに修正される。
【0092】ステップS108では、輝度処理手段1qが、高さデータADzの値に基いて輝度データLuを求める。
【0093】ステップS109では、判断手段1fが、輝度データLuの値が、輝度データLuの最大値Lumaxよりも大きいか否かを判断し、「YES」であればステップS110に移行し、「NO」であればステップS111に移行する。
【0094】ステップS110では、輝度処理手段1qが、輝度データLuに輝度データLuの最大値Lumaxを代入する。
【0095】ステップS111では、判断手段1fが、輝度データLuの値が、輝度データLuの最小値Luminよりも小さいか否かを判断し、「YES」であればステップS112に移行し、「NO」であればステップS113に移行する。
【0096】ステップS112では、輝度処理手段1qが、輝度データLuの値に輝度データLuの最小値Luminを代入する。
【0097】ステップS113では、輝度処理手段1qが、対応する輝度データLuを新たに求めた輝度データLuで書き換える。
【0098】ステップS114では、演算手段1dが、アドレスデータADxに“1”を加算する。
【0099】ステップS115では、判断手段1fが、アドレスデータADxが最大アドレスデータXmaxよりも大きいか否かを判断し、「YES」であればステップS116に移行し、「NO」であればステップS119に移行する。
【0100】ステップS116では、変数設定手段1hが、アドレスデータADxに、表示範囲内の最小アドレスデータADxminを代入する。
【0101】ステップS117では、演算手段1dが、アドレスデータADyに“1”を加算する。
【0102】ステップS118では、判断手段1fが、アドレスデータADyが、ゴルフコースの最大アドレスデータYmaxよりも大きいか否かを判断し、「YES」であればこの画像表示処理ルーチンS100を抜け、「NO」であればステップS119に移行する。
【0103】一方、ステップS119では、判断手段1fが、アドレスデータADxが、表示範囲内の最小アドレスデータADxmin以上で、且つ、表示範囲内の最大アドレスデータADxmax以下であるか否かを判断し、「YES」であればステップS120に移行し、「NO」であれば再びステップS105に移行する。
【0104】ステップS120では、判断手段1fが、アドレスデータADyが、表示範囲内の最小アドレスデータADymin以上で、且つ、表示範囲内の最大アドレスデータADymax以下であるか否かを判断し、「YES」であればステップS121に移行し、「NO」であれば再びステップS105に移行する。
【0105】ステップS121では、描画命令発行手段1gが、描画命令を、描画処理プロセッサ10に対して発行する。これにより、描画処理プロセッサ10は、視点位置データEx、Ey、Ezに基いた画像データを、バッファ11の表示面上に展開する。よって、テレビジョンモニタ12の表示面上には、指定された画像が表示される。
【0106】I.アンデュレーション画像出力ルーチンS150(図11〜図12)
【0107】図11及び図12は、アンデュレーション画像出力ルーチンによる制御動作を説明するためのフローチャートである。アンデュレーション画像は、既に説明したように、ゲームプレーヤが、テレビジョンモニタ12の表示面上に表示されたゴルフコース上での距離や起伏を、感覚的に判別し、これに基いて適切な操作を行うことができるようにするための、ガイド画像である。
【0108】ステップS151では、ボタン操作検出手段1aが、第1ボタンが押されたか否かを判断し、「YES」であればステップS152に移行し、「NO」であればこのアンデュレーション画像出力ルーチンS150を抜ける。
【0109】ステップS152では、アンデュレーション出力判断手段1mが、アンデュレーションフラグが“0”か否かを判断し、「YES」であればステップS156に移行し、「NO」であればステップS154に移行する。ここで、アンデュレーションフラグは、図5に示したガイドGu2が表示されているか否かを示すフラグであり、例えば“1”は表示、“0”は非表示である。このステップS152において、上記アンデュレーション出力判断手段1mにより、アンデュレーションフラグが“0”であるものと判断された場合は、ステップS156以降に移行して、アンデュレーション画像が出力される。また、このステップS152において、上記アンデュレーション出力判断手段1mにより、アンデュレーションフラグが“1”であると判断された場合は、ステップS154及びS155において、アンデュレーション画像が消去される。
【0110】ステップS154では、アンデュレーション出力判断手段1mが、アンデュレーションフラグを“0”にする。
【0111】ステップS155では、アンデュレーション画像描画手段1nが、描画処理プロセッサ10に対し、アンデュレーション画像の消去命令を発行する。これにより、描画処理プロセッサ10は、バッファ11上への線のデータの書き込みを中止する。これにより、テレビジョンモニタ12の表示面上から、図5に示したガイドGu2の画像が消去される。尚、アンデュレーション画像の消去は、アンデュレーション画像以外の画像の再書き込みで行っても良い。
【0112】ステップS156では、アンデュレーション出力判断手段1mが、アンデュレーションフラグを“1”にする。
【0113】ステップS157では、アドレス設定手段1iが、ゴルフコースの最小アドレスデータXmin、Ymin並びに最大アドレスデータXmax、Ymaxをセットする。
【0114】ステップS158では、アドレス設定手段1iが、ボール位置データBx、Byに基いて、アンデュレーション画像の表示範囲内における最小アドレスADxmin、ADymin、ADxmax、ADymaxを得る。
【0115】ステップS159では、変数設定手段1hが、アドレスデータADxに最小アドレスデータXminを代入する。
【0116】ステップS160では、変数設定手段1hが、アドレスデータADyに最小アドレスデータYminを代入する。
【0117】ステップS161では、高さデータ補正手段1kが、テーブルからアドレスデータADx、ADyが示す高さデータzを読む。
【0118】ステップS162では、高さデータ補正手段1kが、高さデータ補正手段1kの制御の元に、演算手段1dが、ステップS161で読み出された高さデータzから、高さデータEzを減算する。テーブルに登録されている高さデータは、初期値である。そして、高さデータは、ゴルフボールの置かれているところの高さを基準とする。従って、テーブルに登録されている高さデータzを、ゴルフボールの置かれている位置の高さに基いて、随時修正しなければならない。そこで、このステップS162に示されるように、テーブルから読み出した高さデータzから、視点位置データEzを減算するのである。
【0119】ステップS163では、高さデータ補正手段1kが、ステップS162で求められた高さデータADzを、テーブルから読み出された高さデータzの代わりに、その高さデータzが記憶されていたテーブルの記憶位置に書き込む。これにより、テーブルから読み出された高さデータzは、視点位置データEzを基準とした高さデータに修正される。
【0120】ステップS164では、輝度処理手段1qが、高さデータADzの値に基いて輝度データLuを求める。
【0121】ステップS165では、判断手段1fが、輝度データLuの値が、輝度データLuの最大値Lumaxよりも大きいか否かを判断し、「YES」であればステップS110に移行し、「NO」であればステップS111に移行する。
【0122】ステップS166では、輝度処理手段1qが、輝度データLuに輝度データLuの最大値Lumaxを代入する。
【0123】ステップS167では、輝度処理手段1qが、対応する輝度データLuを新たに求めた輝度データLuで書き換える。
【0124】ステップS168では、演算手段1dが、アドレスデータADxに“1”を加算する。
【0125】ステップS169では、判断手段1fが、アドレスデータADxが最大アドレスデータXmaxよりも大きいか否かを判断し、「YES」であればステップS170に移行し、「NO」であればステップS173に移行する。
【0126】ステップS170では、変数設定手段1hが、アドレスデータADxに、表示範囲内の最小アドレスデータADxminを代入する。
【0127】ステップS171では、演算手段1dが、アドレスデータADyに“1”を加算する。
【0128】ステップS172では、判断手段1fが、アドレスデータADyが、ゴルフコースの最大アドレスデータYmaxよりも大きいか否かを判断し、「YES」であればこのアンデュレーション画像表示ルーチンS150を抜ける。
【0129】一方、ステップS173では、判断手段1fが、アドレスデータADxが、表示範囲内の最小アドレスデータADxmin以上で、且つ、表示範囲内の最大アドレスデータADxmax以下であるか否かを判断し、「YES」であればステップS174に移行し、「NO」であれば再びステップS161に移行する。
【0130】ステップS174では、判断手段1fが、アドレスデータADyが、表示範囲内の最小アドレスデータADymin以上で、且つ、表示範囲内の最大アドレスデータADymax以下であるか否かを判断し、「YES」であればステップS175に移行し、「NO」であれば再びステップS161に移行する。
【0131】ステップS175では、描画命令発行手段1gが、線描画命令を、描画処理プロセッサ10に対して発行する。これにより、描画処理プロセッサ10は、バッファ11の表示エリア上に、線のデータを書き込む。ここで、ガイドGu2は、図3Bに示したように、マトリクス状の画像データである。しかしながら、ゴルフコースの画像が、視点位置に応じて擬似的に3次元表示されるので、上記ガイドGu2も、同様に、3次元表示される。具体的には、ガイドGu2の表示範囲内のゴルフコースのポリゴンの頂点間を、多数の線で結ぶことにより、ガイドGu2を描画する。そして、ガイドGu2の輝度は、ポリゴンの各頂点の高さに基いて決められる。1本の線は、夫々ポリゴンの頂点に一致する始点と終点とが結ばれることにより描画される。1本の線の輝度は、例えば、始点の輝度及び終点の輝度に基いて、グラデーションがかけられた状態で表現される。既に説明したように、始点の高さが終点の高さよりも高い場合には、輝度が始点から終点に向かって徐々に低くなり、始点の高さが終点の高さよりも低い場合には、輝度が始点から終点に向かって徐々に高くなる。
【0132】ステップS176では、判断手段1fが、輝度データLuの値が、輝度データLの最小値Luminよりも小さいか否かを判断し、「YES」であればステップS177に移行し、「NO」であればステップS167に移行する。
【0133】ステップS177では、輝度処理手段1qが、輝度データLuに輝度データLuの最小値Luminを代入する。
【0134】上記ステップS161〜ステップS163の処理により、高さデータが補正され、この後、アドレスデータADx、ADyが、アンデュレーション画像の表示範囲内の最小アドレスADxmin、ADymin、ADxmax、ADymaxの範囲内にある内は、描画処理が繰り返し行われる。この処理により、ガイドGu2の画像が、テレビジョンモニタ12に表示される。
【0135】〔アンデュレーション画像を表示することによる効果〕ゲームプレーヤが、ゴルフゲーム空間内のゴルファーにショットをさせるためには、コントローラ22に対し所定の操作を行う必要がある。操作形態については詳述する。ゴルフボールのゴルフゲーム空間内における移動距離は、コントローラ22の操作状態により異なる。図5に示したように、ゴルフゲーム空間内のゴルフコースには、ゴルフゲーム空間内における距離及び地形が設定されている。例えば図5に示したゴルフコースは、518ヤードの長さを有し、その途中には、バンカーや起伏があるものと設定されている。ゲームプレーヤは、このような情報に基いて、コントローラ22を操作するのである。
【0136】ところで、ゴルフボールを転がす等のように、比較的近い所にボールを打つ場合においては、距離と起伏をより分かり易く表示する必要がある。ここでいう距離は、ゲームプレーヤに与える感覚的な距離感を意味する。既に説明したように、ゲームプレーヤが、距離と起伏に応じてコントローラ22の操作を行うことができるようにするためである。ゴルフコースの距離と起伏は、表示された画像の色及び明暗によって表現される。ゴルフコースの画像そのものの明暗は、図1に示したグラフィックスデータ生成プロセッサ3により求められた色及び輝度情報により、表現される。
【0137】しかしながら、ゲームプレーヤに対し、ゴルフコースの起伏及び距離を、ゴルフコースの色及び輝度だけで認識させることは困難である。テレビジョンモニタ12の表示面といった、非常に狭い範囲内で、ゴルフコースといった、実際には非常に大きなものを表現しているからである。言い換えれば、現実の大きさ、距離、起伏を知っているゲームプレーヤに対し、色及び輝度だけでゲーム空間内の大きさ、距離、起伏を認識させることが困難だからである。
【0138】そこで、本形態においては、図5に示したように、ガイドGu2を、ゲーム空間上に形成されている地形上に重ねて表示するようにしている。既に説明したように、このガイドGu2は、線描画命令によって表示される。このガイドGu2の形状は、図3Bに示されるように、マトリクス状である。そして、図5に示すように、地形上に表示する場合においては、ガイドGu2を構成している線の長さを、視点位置からの距離及び位置に応じて変えるようにしている。しかも、ガイドGu2の輝度は、ガイドGu2の表示されている地形の輝度データLuに基いて変えられている。よって、ゲームプレーヤに対し、ゲーム空間内における感覚的な距離感及び起伏情報を的確に与えることができ、これによって、ゲームプレーヤが、よりコントローラ22の操作を、表示されているゴルフコースに応じて的確に行うことができるといった大きなメリットがある。
【0139】J.ティーアップ設定ルーチンS200による制御(図13〜図14)
【0140】図13及び図14は、ティーアップ設定ルーチンS200による制御動作を説明するためのフローチャートである。ここでティーアップの設定とは、ティーショットの位置の設定を意味する。
【0141】ステップS201では、描画命令発行手段1gが、ガイダンス画像の描画を示す描画命令を、描画処理プロセッサ10に対して発行する。描画処理プロセッサ10は、ガイダンス画像データをバッファ11の表示エリア上に展開する。これにより、図5に示したテレビジョンモニタ12の表示面上のエリアAr3には、ティーアップを設定するためのガイダンス画像が、右側のエリアには、ガイドGu1が夫々表示される。
【0142】ステップS202では、描画命令発行手段1gが、初期値に応じた線描画命令を、描画処理プロセッサ10に対して発行する。描画処理プロセッサ10は、線描画命令に応じて、バッファ11上において、始点のアドレスから終点のアドレスに向かって、ラインデータを書き込む。このラインは、図5に示されているガイドGu1上の指示画像Inである。そして、ガイドGu1は、現在選択されているゴルフコースの縮小画像となっている。従って、ゲームユーザは、現在の設定でコントローラ22を介してゴルフゲーム空間内のゴルファーMaにゴルフボールを打たせた場合におけるゴルフボールの弾道、飛距離、停止位置を、予測することができる。
【0143】ステップS203では、ボタン操作検出手段1aが、十字キーが押されたか否かを判断し、「YES」であればステップS204に移行する。
【0144】ステップS204では、ボタン操作検出手段1aが、右キーRが押されたか否かを判断し、「YES」であればステップS209に移行し、「NO」であればステップS205に移行する。
【0145】ステップS205では、ボタン操作検出手段1aが、左キーLが押されたか否かを判断し、「YES」であればステップS206に移行し、「NO」であれば再びステップS203に移行する。
【0146】ステップS206では、演算手段1dが、ティーアップ設定値Tyから、“1”を減算する。
【0147】ステップS207では、判断手段1fが、ティーアップ設定値Tyが、ティーアップ設定値の最小値Tyminよりも大きいか否かを判断し、「YES」であればステップS208に移行し、「NO」であればステップS212に移行する。
【0148】ステップS208では、変数設定手段1hが、ティーアップ設定値Tyに、ティーアップ設定値の最大値Tymaxを、代入する。
【0149】ステップS209では、演算手段1dが、ティーアップ設定値Tyに、“1”を、加算する。
【0150】ステップS210では、判断手段1fが、ティーアップ設定値Tyが、ティーアップ設定値の最大値Tymaxよりも大きいか否かを判断し、「YES」であればステップS211に移行し、「NO」であればステップS212に移行する。
【0151】ステップS211では、変数設定手段1hが、ティーアップ設定値Tyに、ティーアップ設定値の最小値Tyminを代入する。
【0152】ステップS212では、描画命令発行手段1gが、ティーアップ設定値Tyの値に応じたティーアップ画像の描画を示す描画命令を、描画処理プロセッサ10に対して発行する。これにより、図5に示したエリアAr3上の画像は、ティーアップ設定値Tyの値に応じた表示状態となる。
【0153】ステップS213では、描画命令発行手段1gが、線描画命令を、描画処理プロセッサ10に対して発行する。これにより、描画処理プロセッサ10は、バッファ11上において、始点のアドレスから終点のアドレスに向かって、ラインデータを書き込む。従って、テレビジョンモニタ12の表示面上のガイドGu1上のラインInも、ティーアップ設定値Tyの値に応じた表示状態となる。
【0154】ステップS214では、ボタン操作検出手段1aが、第4ボタン22fが押されたか否かを判断し、「YES」であればステップS215に移行し、「NO」であれば再びステップS203に移行する。
【0155】ステップS215では、パラメータ管理手段1oが、ティーアップ設定値データTyを、メインメモリ5に記憶する。
【0156】K.カメラ位置設定ルーチンS250による制御(図15〜図16)
【0157】図15及び図16は、カメラ位置設定ルーチンS250による制御動作を説明するためのフローチャートである。本形態においては、カメラ位置として、ゲーム空間内において、ゴルファーMaの後方、前方、左側、右側等が設定可能である。カメラ位置を示すカメラ位置設定値は、視点位置データである。よって、カメラ位置設定値に応じた視点位置データが選択され、その視点位置データに対応する画像が出力される。カメラ位置設定値は、十字キーの右キーRまたは左キーLが1回押圧される都度、インクリメント若しくはデクリメントされる。
【0158】ステップS251では、ボタン操作検出手段1aが、十字キーが押されたか否かを判断し、「YES」であればステップS252に移行する。
【0159】ステップS252では、ボタン操作検出手段1aが、右キーRが押されたか否かを判断し、「YES」であればステップS257に移行し、「NO」であればステップS253に移行する。
【0160】ステップS253では、ボタン操作検出手段1aが、左キーLが押されたか否かを判断し、「YES」であればステップS254に移行し、「NO」であれば再びステップS251に移行する。
【0161】ステップS254では、演算手段1dが、カメラ位置設定値Caから、“1”を減算する。
【0162】ステップS255では、判断手段1fが、カメラ位置設定値Caが、カメラ位置設定値の最小値Caminよりも大きいか否かを判断し、「YES」であればステップS256に移行し、「NO」であればステップS260に移行する。
【0163】ステップS256では、変数設定手段1hが、カメラ位置設定値Caに、カメラ位置設定値の最大値Camaxを代入する。
【0164】ステップS257では、演算手段1dが、カメラ位置設定値Caに、“1”を加算する。
【0165】ステップS258では、判断手段1fが、カメラ位置設定値Caが、カメラ位置設定値の最大値Camaxよりも大きいか否かを判断し、「YES」であればステップS259に移行し、「NO」であればステップS260に移行する。
【0166】ステップS259では、変数設定手段1hが、カメラ位置設定値Caに、カメラ位置設定値の最小値Caminを代入する。
【0167】ステップS260では、変数設定手段1hが、カメラ位置設定値Caの値に応じた視点位置データEx、Ey、Ezを設定する。既に説明したように、カメラ位置設定値Caは、視点位置データである。そして、カメラ位置設定値Caの値に対し、夫々視点位置データがテーブルに登録されている。よって、ここで言う「設定」とは、変数設定手段1hが、カメラ位置設定値Caの値に対応する視点位置データを、テーブルから読み出すことを意味する。
【0168】ステップS100では、画像表示処理ルーチンによる処理が行われる。ステップS260において設定された視点位置データEx、Ey、Ezに基いた描画処理である。
【0169】ステップS261では、ボタン操作検出手段1aが、第4ボタン22fが押されたか否かを判断し、「YES」であればこのカメラ位置設定ルーチンS250を抜け、「NO」であれば再びステップS251に移行する。
【0170】L.方向設定ルーチンS300による制御(図17〜図18)
【0171】図17及び図18は、方向設定ルーチンS300による制御動作を説明するためのフローチャートである。方向設定値は、ゴルフゲーム空間内のゴルファーの体の向き、即ち、打撃方向を示す角度データである。よって、ゴルフボールは、ゴルフゲーム空間内において、方向設定値に応じた角度データが示す方向に移動する。方向設定値は、十字キーの右キーRまたは左キーLが1回押圧される都度、インクリメント若しくはデクリメントされる。インクリメント、デクリメントの単位は、基準角度データAngである。
【0172】ステップS301では、描画命令発行手段1gが、ガイダンス画像の描画を示す描画命令を、描画処理プロセッサ10に対して発行する。これにより、描画処理プロセッサ10は、ガイダンス画像データを、バッファ11の表示エリア上に展開する。これにより、図5に示したテレビジョンモニタ12の表示面上のエリアAr3には、方向を設定するためのガイダンス画像が、右側のエリアには、ガイドGu1が夫々表示される。
【0173】ステップS302では、描画命令発行手段1gが、初期値に応じた線描画命令を、描画処理プロセッサ10に対して発行する。描画処理プロセッサ10は、線描画命令に応じて、バッファ11上において、始点のアドレスから終点のアドレスに向かって、ラインデータを書き込む。このラインは、既に説明したように、図5に示されているガイドGu1上のラインInである。
【0174】ステップS303では、ボタン操作検出手段1aが、十字キーが押されたか否かを判断し、「YES」であればステップS304に移行する。
【0175】ステップS304では、ボタン操作検出手段1aが、右キーRが押されたか否かを判断し、「YES」であればステップS309に移行し、「NO」であればステップS305に移行する。
【0176】ステップS305では、ボタン操作検出手段1aが、左キーLが押されたか否かを判断し、「YES」であればステップS306に移行し、「NO」であれば再びステップS303に移行する。
【0177】ステップS306では、演算手段1dが、方向設定値Diから、基準角度データAngを減算する。
【0178】ステップS307では、判断手段1fが、方向設定値Diが、“0”未満か否かを判断し、「YES」であればステップS308に移行し、「NO」であればステップS312に移行する。
【0179】ステップS308では、変数設定手段1hが、方向設定値Diに、"360"を、代入する。
【0180】ステップS309では、演算手段1dが、方向設定値Diに、基準角度データAngを、加算する。
【0181】ステップS310では、判断手段1fが、方向設定値Diが、"360"よりも大きいか否かを判断し、「YES」であればステップS311に移行し、「NO」であればステップS312に移行する。
【0182】ステップS311では、変数設定手段1hが、方向設定値Diに、“0”を代入する。
【0183】ステップS312では、描画命令発行手段1gが、方向設定値Diの値に応じた方向表示用画像の描画を示す描画命令を、描画処理プロセッサ10に対して発行する。これにより、図5に示したエリアAr3上の画像は、方向設定値Diの値に応じた表示状態となる。
【0184】ステップS313では、描画命令発行手段1gが、描画処理プロセッサ10に対して、線描画命令を、発行する。これにより、描画処理プロセッサ10は、バッファ11上において、始点のアドレスから終点のアドレスに向かって、ラインデータを書き込む。従って、テレビジョンモニタ12の表示面上のガイドGu1上のラインInも、方向設定値Diの値に応じた表示状態となる。
【0185】ステップS314では、パラメータ管理手段1pが、方向設定値データDiを、メインメモリ5に記憶する。
【0186】M.スタンス設定ルーチンS350による制御(図19〜図20)
【0187】図19及び図20は、スタンス設定ルーチンS350による制御動作を説明するためのフローチャートである。スタンス設定とは、ゴルファーの姿勢を設定することを意味する。
【0188】ステップS351では、描画命令発行手段1gが、ガイダンス画像の描画を示す描画命令を、描画処理プロセッサ10に対して発行する。描画処理プロセッサ10は、ガイダンス画像データを、バッファ11の表示エリアに展開する。これにより、図5に示したテレビジョンモニタ12の表示面上のエリアAr3には、スタンスを設定するためのガイダンス画像が、右側のエリアには、ガイドGu1が夫々表示される。
【0189】ステップS352では、描画命令発行手段1gが、初期値に応じた線描画命令を、描画処理プロセッサ10に対して通知する。描画処理プロセッサ10は、線描画命令に応じて、バッファ11上において、始点のアドレスから終点のアドレスに向かって、ラインデータを書き込む。このラインは、既に説明したように、図5に示されているガイドGu1上のラインInである。
【0190】ステップS353では、ボタン操作検出手段1aが、十字キーが押されたか否かを判断し、「YES」であればステップS354に移行する。
【0191】ステップS354では、ボタン操作検出手段1aが、右キーRが押されたか否かを判断し、「YES」であればステップS359に移行し、「NO」であればステップS355に移行する。
【0192】ステップS355では、ボタン操作検出手段1aが、左キーLが押されたか否かを判断し、「YES」であればステップS356に移行し、「NO」であれば再びステップS353に移行する。
【0193】ステップS356では、演算手段1dが、スタンス設定値Stから、基準角度データAngを減算する。
【0194】ステップS357では、判断手段1fが、スタンス設定値Stの値が、スタンス設定値の最小値Stminの値よりも小さいか否かを判断し、「YES」であればステップS358に移行し、「NO」であればステップS362に移行する。
【0195】ステップS358では、変数設定手段1hが、スタンス設定値Stに、スタンス設定値の最大値Stmaxを、代入する。
【0196】ステップS359では、演算手段1dが、スタンス設定値Stに、基準角度データAngを、加算する。
【0197】ステップS360では、判断手段1fが、スタンス設定値Stが、角度データの最大値Angmaxよりも大きいか否かを判断し、「YES」であればステップS361に移行し、「NO」であればステップS362に移行する。
【0198】ステップS361では、変数設定手段1hが、スタンス設定値Stに、スタンス設定値の最小値Stminを代入する。
【0199】ステップS362では、描画命令発行手段1gが、スタンス設定値Stの値に応じたスタンス画像の表示を示す描画命令を、描画処理プロセッサ10に対して発行する。これにより、図5に示したテレビジョンモニタ12の表示面上のエリアAr3の画像は、スタンス設定値Stの値に応じた表示状態となる。
【0200】ステップS363では、描画命令発行手段1gが、描画処理プロセッサ10に対し、ライン描画命令発行命令を、発行する。これにより、描画処理プロセッサ10は、バッファ11上において、始点のアドレスから終点のアドレスに向かって、ラインデータを書き込む。従って、テレビジョンモニタ12の表示面上のガイドGu1上のラインInも、スタンス設定値Stの値に応じた表示状態となる。
【0201】ステップS364では、ボタン操作検出手段1aが、第4ボタン22fが押されたか否かを判断し、「YES」であればステップS365に移行し、「NO」であれば再びステップS363に移行する。
【0202】ステップS365では、パラメータ管理手段1oが、スタンス設定値データStを、メインメモリ5に記憶する。
【0203】N.クラブ設定ルーチンS400による制御(図21〜図22)
【0204】図21及び図22は、クラブ設定ルーチンS400による制御動作を説明するためのフローチャートである。クラブ設定とは、ゴルフクラブを選択することを意味する。
【0205】この処理では、クラブ番号データNOが用いられる。クラブ番号データNOの1つの値には、1つのクラブの画像を示すテクスチャアドレスデータが、割り当てられる。これらのデータは、テーブルとして記憶されている。クラブ番号データNOは、十字キーの1回の押圧により、インクリメント若しくはデクリメントされる。そして、クラブ番号データNOの値に応じたテクスチャアドレスデータが、テーブルから読み出され、読み出されたテクスチャアドレスデータが、描画処理プロセッサ10に供給される。描画処理プロセッサ10は、上記テクスチャアドレスデータに対応するクラブの画像データを、バッファ11の非表示エリアから読み出し、読み出したクラブの画像データを、バッファ11の表示エリアに書き込む。従って、図5に示したテレビジョンモニタ12の表示面上のエリアAr3には、クラブの画像が表示される。
【0206】ステップS401では、描画命令発行手段1gが、ガイダンス画像の表示を示す描画命令を、描画処理プロセッサ10に対して発行する。描画処理プロセッサ10は、ガイダンス画像データを、バッファ11の表示エリア上に展開する。これにより、図5に示したテレビジョンモニタ12の表示面上のエリアAr3には、選択されたゴルフクラブを示す画像が、右側のエリアには、ガイドGu2が夫々表示される。
【0207】ステップS402では、描画命令発行手段1gが、初期値に応じた線描画命令を、描画処理プロセッサ10に通知する。描画処理プロセッサ10は、線描画命令に応じて、バッファ11上において、始点のアドレスから終点のアドレスに向かって、ラインデータを書き込む。このラインは、図5に示されているガイドGu1上のラインInである。そして、ガイドGu1は、現在選択されているゴルフコースの縮小画像となっている。従って、ゲームユーザは、現在の設定でコントローラ22を介してゴルフゲーム空間内のゴルファーMaに、ゴルフボールを打たせた場合における、ゴルフボールの弾道、飛距離、停止位置を予測することができる。
【0208】ステップS403では、ボタン操作検出手段1aが、十字キーが押されたか否かを判断し、「YES」であればステップS404に移行する。
【0209】ステップS404では、ボタン操作検出手段1aが、右キーRが押されたか否かを判断し、「YES」であればステップS404に移行し、「NO」であればステップS405に移行する。
【0210】ステップS405では、ボタン操作検出手段1aが、左キーLが押されたか否かを判断し、「YES」であればステップS406に移行し、「NO」であれば再びステップS403に移行する。
【0211】ステップS406では、演算手段1dが、クラブ番号データNOから“1”を減算する。
【0212】ステップS407では、判断手段1fが、クラブ番号データNOの値が、クラブ番号データNOの最小値NOminの値よりも小さいか否かを判断し、「YES」であればステップS408に移行し、「NO」であればステップS412に移行する。
【0213】ステップS408では、変数設定手段1hが、クラブ番号データNOに、クラブ番号データNOの最大値NOmaxを、代入する。
【0214】ステップS409では、演算手段1dが、クラブ番号データNOに、“1”を、加算する。
【0215】ステップS410では、判断手段1fが、クラブ番号データNOが、クラブ番号の最大値NOmaxよりも大きいか否かを判断し、「YES」であればステップS411に移行し、「NO」であればステップS412に移行する。
【0216】ステップS411では、変数設定手段1hが、クラブ番号NOに、クラブ番号NOの最大値NOminを代入する。
【0217】ステップS412では、描画命令発行手段1gが、クラブ番号データNOの値に応じたクラブ画像の描画を示す描画命令を、描画処理プロセッサ10に対して発行する。これにより、図5に示したテレビジョンモニタ12の表示面上のエリアAr3上の画像は、クラブ番号NOの値に応じたクラブの画像の表示状態となる。
【0218】ステップS413では、描画命令発行手段1gが、描画処理プロセッサ10に対し、線描画命令を、発行する。これにより、描画処理プロセッサ10は、バッファ11上において、始点のアドレスから終点のアドレスに向かって、ラインデータを書き込む。従って、テレビジョンモニタ12の表示面上のガイドGu1上のラインInも、スタンス設定値Stの値に応じた表示状態となる。
【0219】ステップS414では、ボタン操作検出手段1aが、第4ボタン22fが押されたか否かを判断し、「YES」であればステップS415に移行し、「NO」であれば再びステップS403に移行する。
【0220】ステップS415では、パラメータ管理手段1oが、クラブ番号データNOを、メインメモリ5に記憶する。
【0221】O.打撃位置設定ルーチンS450による制御(図23〜図24)
【0222】図23及び図24は、打撃位置設定ルーチンS450による制御動作を説明するためのフローチャートである。打撃位置設定とは、打撃の際に、クラブ設定ルーチンS400で選択したクラブのヘッド部分が、ゴルフボールのどの部分に当たるのかを設定することを意味する。ゴルフボールのどの位置であるのかを示すデータは、垂直方向のアドレス値が固定で、水平方向のアドレス値のみが変わるアドレスデータHad、並びに水平方向のアドレス値が固定で、垂直方向のアドレス値が変わるアドレスデータVadからなる。
【0223】ステップS451では、描画命令発行手段1gが、ゴルフボールの画像の描画を示す描画命令を、描画処理プロセッサ10に対して発行する。これにより、描画処理プロセッサ10は、ゴルフボールの画像データを、バッファ11の表示エリアに書き込む。ここで、ゴルフボールの画像は、図5に示す表示面上において、略中央の位置に表示される。
【0224】ステップS452では、水平軸画像の描画を示す描画命令を、描画処理プロセッサ10に対して発行する。ここで、描画命令中には、バッファ11の表示エリア上のアドレスデータHadが含まれる。これにより、描画処理プロセッサ10は、上記アドレスデータHadの値が示す位置に、水平軸画像データを、書き込む。これにより、図3Cに示されるように、テレビジョンモニタ12の表示面上には、水平軸画像Haが表示される。
【0225】ステップS453では、演算手段1dが、アドレスデータHadに、“1”を加算する。ステップS454では、ボタン操作検出手段1aがm第4ボタン22fが押されたか否かを判断し、「YES」であればステップS460に移行し、「NO」であればステップS455に移行する。
【0226】ステップS455では、判断手段1fが、アドレスデータHadの値が、アドレスデータHadの最大値HADmaxよりも大きいか否かを判断し、「YES」であればステップS456に移行し、「NO」であれば再びステップS452に移行する。
【0227】ステップS456では、演算手段1dが、アドレスデータHadから、“1”を減算する。
【0228】ステップS457では、判断手段1fが、アドレスデータHadの値が、アドレスデータHadの最小値HADminよりも大きいか否かを判断し、「YES」であればステップS458に移行し、「NO」であれば再びステップS452に移行する。
【0229】ステップS458では、水平軸画像の描画を示す描画命令を、描画処理プロセッサ10に対して発行する。ここで、描画命令中には、バッファ11の表示エリア上のアドレスデータHadが含まれる。これにより、描画処理プロセッサ10は、上記アドレスデータHadの値が示す位置に、水平軸画像データを、書き込む。これにより、図3Cに示されるように、テレビジョンモニタ12の表示面上においては、水平軸画像Haが表示される。
【0230】ステップS459では、ボタン操作検出手段1aが、第4ボタン22fが押されたか否かを判断し、「YES」であればステップS460に移行し、「NO」であれば再びステップS456に移行する。ここで、「NO」と判断して再び上述した処理が繰り返されることにより、表示面上において、図3Cに示される水平軸画像Haが矢印Yhで示すように左右に移動し続ける。第4ボタン22fが押されることにより、ゴルフボールの水平方向での打撃位置が決定される。
【0231】ステップS460では、パラメータ管理手段1oが、アドレスデータHadを、メインメモリ5に記憶する。
【0232】ステップS461では、垂直軸画像の描画を示す描画命令を、描画処理プロセッサ10に対して発行する。ここで、描画命令中には、バッファ11の表示エリア上のアドレスデータVadとが含まれる。これにより、描画処理プロセッサ10は、上記アドレスデータVadの示す位置に、垂直軸画像データを、書き込む。これにより、図3Cに示されるように、テレビジョンモニタ12の表示面上においては、垂直軸画像Vaが表示される。
【0233】ステップS462では、演算手段1dが、アドレスデータVadに、“1”を加算する。ステップS463では、ボタン操作検出手段1aが、第4ボタン22fが押されたか否かを判断し、「YES」であればステップS469に移行し、「NO」であればステップS464に移行する。
【0234】ステップS464では、判断手段1fが、アドレスデータVadの値が、アドレスデータVadの最大値VADmaxよりも大きいか否かを判断し、「YES」であればステップS465に移行し、「NO」であれば再びステップS461に移行する。
【0235】ステップS465では、演算手段1dが、垂直アドレスデータVadから、“1”を減算する。
【0236】ステップS466では、判断手段1fが、アドレスデータVadの値が、アドレスデータVadの最小値VADminよりも大きいか否かを判断し、「YES」であればステップS467に移行し、「NO」であれば再びステップS461に移行する。
【0237】ステップS467では、垂直軸画像の描画を示す描画命令を、描画処理プロセッサ10に対して発行する。ここで、描画命令中には、バッファ11の表示エリア上のアドレスデータVadが含まれる。これにより、描画処理プロセッサ10は、上記アドレスデータVadの値が示す位置に、垂直軸画像データを、書き込む。これにより、図3Cに示されるように、テレビジョンモニタ12の表示面上においては、垂直軸画像Vaが表示される。
【0238】ステップS468では、ボタン操作検出手段1aが、第4ボタン22fが押されたか否かを判断し、「YES」であればステップS469に移行し、「NO」であれば再びステップS465に移行する。ここで、「NO」と判断して再び上述した処理が繰り返されることにより、表示面上において、図3Cに示される垂直軸画像Vaが矢印Yvで示すように上記に移動し続ける。第4ボタン22fが押されることにより、ゴルフボールの垂直方向での打撃位置が決定される。
【0239】ステップS469では、パラメータ管理手段1oが、アドレスデータVadを、メインメモリ5に記憶する。そして、この打撃位置設定ルーチンS450を抜ける。
【0240】P.打撃ルーチンS500による制御(図25〜図26)
【0241】図25及び図26は、打撃ルーチンS500による制御動作を説明するためのフローチャートである。ここで、「打撃」とは、ゲームプレーヤがコントローラ22を操作することにより、テレビジョンモニタ12の表示面上に表示されたゴルフゲーム空間内のゴルファーMaに、ゴルフボールを打たせることを意味する。この打撃ルーチンでは、ゴルフゲーム空間内のゴルファーMaの打ったゴルフボールが、当該空間内で落下、停止するまでの画像の表示処理が行われる。
【0242】ステップS501では、描画命令発行手段1gが、図3Dに示す打撃用のガイドGu3の画像の描画を示す描画命令を、描画処理プロセッサ10に対して発行する。描画処理プロセッサ10は、上記描画命令に基いて、図3Dに示すガイド画像データGu3を、バッファ11の表示エリアに書き込む。これによって、図3Dに示すガイドGu3が、テレビジョンモニタ12の表示面上の略中央に表示される。
【0243】ここで、ガイドGu3について説明する。ガイドGu3は、ゲームプレーヤが、ゴルフゲーム空間内のゴルファーMaに打撃を行わせるためにコントローラを操作する際、自分の操作による打撃の強さ(以下、「エネルギー」と称する)がどのくらいなのかを、ゲームプレーヤに示すための画像である。このガイドGu3は、図3Dに示されるように、ドーナツ型の図形が一部切り欠かれた形状となっている。そして、切り欠き部分の上部には、文字「max」が添えられ、切り欠き部分の下部には、文字「min」が添えられている。「max」は打撃のパワーが最大であることを意味し、「min」は、打撃のパワーが最小であることを意味する。
【0244】ガイドGu3が表示されている状態で、第4ボタン22fが押されると、その間、ガイドGu3のminの位置からmaxの位置に向かって、ガイドGu3の内部が順次塗りつぶされる。このとき、所定量ずつ、例えば黄色、水色、青、紫、赤のように色分けされて塗りつぶされる。この塗りつぶし部分の先端は、その時点における打撃のエネルギーを示す。従って、第4ボタン22fを押している時間が長ければ長い程、打撃のエネルギーは大きくなる。
【0245】一方、上記状態で第4ボタン22fが離されると、その時点から、ガイドGu3の塗りつぶし部分が、順次、消える。上述の例の場合においては、ガイドGu3のmaxの位置からminの位置に向かって、赤、紫、青、水色、黄色の順序で、塗りつぶし部分が消える。この塗りつぶし部分の先端は、その時点における打撃のエネルギーを示す。従って、第4ボタン22fを離している時間が長ければ長い程、打撃のエネルギーは小さくなる。一旦、第4ボタン22fが離された後に、再び、第4ボタン22fが押されると、その時点における打撃のエネルギーが確定する。打撃のエネルギーが確定すると、打撃が行われる。以上の説明の対応部分は、フローチャートのS501、S505〜S511である。
【0246】ステップS502では、乱数発生手段1pが、風の方向WDi及び風力Wpを示す値をランダムに発生する。
【0247】ステップS503では、描画命令発行手段1gが、風の方向WDi、風力Wpを示す値に応じた文字データ及び矢印の画像の描画を示す描画コマンドを、描画処理プロセッサ10に供給する。描画処理プロセッサ10は、描画命令発行手段1gからの描画命令に基いて、バッファ11の表示エリアに、風力、タイトル及び矢印を示す画像データを夫々書き込む。これにより、図5に示されているように、テレビジョンモニタ12の表示面上には、風の方向を示す矢印By、風力のタイトル(「WIND」)及び風力の値(この例では「4m」)を示す画像が表示される。
【0248】ステップS504では、パラメータ管理手段1oが、風の方向データWDi及び風力データWpを、メインメモリ5に記憶する。
【0249】ステップS505では、ボタン操作検出手段1aが、第4ボタン22fが押されたか否かを判断し、「YES」であればステップS506に移行し、「NO」であれば再びステップS501に移行する。
【0250】ステップS506では、演算手段1dが、打撃エネルギーデータPOWERに、基準値データkを加算する。
【0251】ステップS507では、描画命令発行手段1gが、描画処理プロセッサ10に対し、上記打撃エネルギーデータPOWERの値に対応する線描画命令を、供給する。ここで、線描画命令は、図3Dに示したガイドGu3の内部、且つ、その外周から内周(若しくは内周から外周)に向かって指定された色で線を引くことを意味する。描画処理プロセッサ10は、線描画命令に基いて、バッファ11に書き込まれているガイドGu3上に、打撃エネルギーデータPOWERの値が示す分だけ、線のデータを書き込む。これにより、テレビジョンモニタ12の表示面上に表示されたガイドGu3内が、所定の色で塗りつぶされる。
【0252】ステップS508では、ボタン操作手段1aが、第4ボタン22fが離されたか否かを判断し、「YES」であればステップS509に移行し、「NO」であれば再びステップS506に移行する。
【0253】ステップS509では、演算手段1dが、打撃エネルギーデータPOWERから、基準データkを減算する。
【0254】ステップS510では、描画命令発行手段1gが、描画処理プロセッサ10に対し、上記打撃エネルギーデータPOWERの値に対応する線描画命令を、供給する。描画処理プロセッサ10は、線描画命令に基いて、バッファ11に書き込まれているガイドGu3上に、打撃エネルギーデータPOWERの値が示す分だけ線のデータを書き込む。これにより、テレビジョンモニタ12の表示面上に表示されたガイドGu3内が、所定の色で塗りつぶされる。尚、このステップS510でのガイドGu3内の塗りつぶしは、打撃エネルギーデータPOWERの値が少なくなっているので、テレビジョンモニタ12の表示面上においては、塗りつぶされている領域が、徐々に少なくなっていくように見える。
【0255】ステップS511では、ボタン操作検出手段1aが、第4ボタン22fが押されたか否かを判断し、「YES」であればステップS512に移行し、「NO」であれば再びステップS509に移行する。ここで、第4ボタン22fが押されると、この時点における打撃エネルギーデータPOWERが、確定する。
【0256】ステップS512では、演算手段1dが、打数データHiに“1”を加算する。そして、パラメータ管理手段1oが、当該打数データHiを、メインメモリ5に記憶する。
【0257】ステップS513では、描画命令発行手段1gが、ゴルファーMaの画像の描画を示す描画命令を、順次、描画処理プロセッサ10に供給する。描画処理プロセッサ10は、描画命令に基いて、バッファ11の表示エリア上に、順次ゴルファーMaの画像を展開する。これにより、テレビジョンモニタ12の表示面上において、ゴルファーMaがゴルフボールを打ち終えるまでの、一連のアニメーションが実行される。
【0258】ステップS514では、演算手段1dが、ボール位置Bx、By、Bz、打撃エネルギーデータPOWER、ティーアップデータTy、方向データDi、スタンスデータSt、クラブ番号データNO、アドレスデータHad及びVad、風の方向データWDi、風力データWpに基いて、単位時間毎のボール位置Bx、By、Bzを、全て求める。ここで、単位時間毎とは、例えばNTSCのテレビジョン方式においては、30フレーム/秒である。よって、この場合は、1フレーム毎のボールの位置が予め求められる。
【0259】ボールが停止するまでの時間は、上記各パラメータによって異なる。従って、1フレーム毎のボールの位置を求め、そのボールの位置に応じた画像を1フレーム毎に表示するものとすると、ボールが停止するまでのフレーム数も異なる。ボールが停止するまでのフレーム数は、nmaxとして、メインメモリ5に記憶される。
【0260】ステップS515では、演算手段1dが、変数nに、fを加算する。ここで、fは、例えば1フレームを意味する。
【0261】ステップS516では、判断手段1fが、変数nが、nの最大値nmaxよりも大きいか否かを判断し、「YES」であればステップS517に移行し、「NO」であればステップS518に移行する。ここで、nmaxは、既に説明したように、ゴルフボールが停止するまでのフレーム数である。
【0262】ステップS517では、変数設定手段1hが、変数nに“0”を代入する。
【0263】ステップS518では、描画命令発行手段1gが、ボール位置データBxn、Byn、Bznに応じたボールの描画を示す描画命令を、描画処理プロセッサ10に供給する。
【0264】ステップS519では、演算手段1dが、変数nに、fを加算する。
【0265】ステップS520では、判断手段1fが、変数nが、最大値nmaxよりも大きいか否かを判断し、「YES」であればこの打撃ルーチンS500を抜け、「NO」であればステップS521に移行する。
【0266】ステップS521では、変数設定手段1hが、ボール位置データBxn、Byn、Bznを、視点位置データEx、Ey、Ezに代入する。
【0267】S100では、画像表示処理ルーチンS100による処理を行う。ステップS519からステップS100までの処理は、打たれたゴルフボールの飛んでいる状態を再現する処理である。ボール位置は、フレーム毎に刻一刻と移り変わる。よって、ボール位置データBxn、Byn、Bznを、視点位置データEx、Ey、Ez代入することにより、視点も刻一刻と変わる。視点が刻一刻と変わるので、背景画像も刻一刻と変わる。これにより、テレビジョンモニタ12の表示面上においては、いわゆるリプレイ画像が表示される。
【0268】上述せる本実施形態によれば、地形を示す画像情報と、移動物体の画像情報とを表示手段の表示面上に表示し、上記移動物体を、操作手段の操作状態と、上記地形の地形情報とに基いて、上記表示手段の表示面上において移動するようにした地形情報を用いるゲームシステムにおいて、上記表示手段の表示面上に、複数の線で構成されるガイドを表示すると共に、当該ガイドを構成する線の輝度及び長さを、上記地形の地形情報に基いて設定するので、地形の画像情報のみで表すことのできない地形情報を、ゲームプレーヤに分かり易くガイドすることができるという効果がある。
【0269】また、上記実施形態において、上記地形を示す画像情報は、上記表示手段の表示面上において疑似3次元表示され、上記ガイドは、2次元平面上において、マトリクス状に配置された複数の線で構成されると共に、上記表示手段の表示面上に疑似3次元表示された地形上に、疑似3次元表示されるので、ガイドと地形の表示状態をマッチングさせることができ、これによって、よりゲームプレーヤに分かり易くガイドすることができるという効果がある。
【0270】また、上記実施形態において、上記ゲームシステムは、ゴルフゲームシステムであり、上記地形を示す画像情報は、ゴルフコースの画像情報であり、上記移動物体は、ゴルフボールの画像情報である。よって、ゲームプレーヤが、ゴルフゲーム空間上におけるゴルフゲームを、より本物のゴルフゲームを行う感覚で行うことができるという効果がある。
【0271】また、上記実施形態において、上記地形の画像情報は、多数のポリゴンで構成されるものであり、上記ガイドは、上記ポリゴンの頂点間に描画される複数の線で構成されるので、地形の頂点と、ガイドの始点及び終点とを一致させることにより、地形に沿ってガイドを表示することができ、地形の状態をより正確にガイドできるという効果がある。
【0272】また、上記実施形態において、上記地形情報は、頂点の高さを示す情報であり、上記ガイドを形成する線の輝度は、各線の始点及び終点に対応する地形情報の頂点の高さの値に応じて設定されるので、ガイドによる地形の高低の表現をより的確に行うことができ、これにより、より、ゲームプレーヤに対するガイドを良好に行うことができるという効果がある。
【0273】また、上記実施形態において、上記移動物体の移動方向を予め設定すると共に、設定された上記移動物体の移動方向に応じて上記地形の画像情報及び上記ガイドを疑似3次元表示するので、移動物体の移動方向に対応したガイド表示ができ、これによって、ゲームプレーヤに対し、より適切なガイドを行うことができるという効果がある。
【出願人】 【識別番号】000105637
【氏名又は名称】コナミ株式会社
【住所又は居所】東京都千代田区丸の内2丁目4番1号
【出願日】 平成9年5月7日(1997.5.7)
【代理人】 【識別番号】100109025
【弁理士】
【氏名又は名称】岩本 康隆
【公開番号】 特開2003−79950(P2003−79950A)
【公開日】 平成15年3月18日(2003.3.18)
【出願番号】 特願2002−234497(P2002−234497)