以下、本発明の一実施の形態によるゲーム装置について図面を参照しながら説明する。図1は本発明の一実施の形態のゲーム装置の構成を示すブロック図である。なお、以下の説明では、ゲーム装置の一例として家庭用ビデオゲーム機を家庭用テレビジョンに接続することによって構成される家庭用ビデオゲーム装置について説明するが、本発明はこの例に特に限定されず、モニタが一体に構成された業務用ビデオゲーム装置、本発明によるゲームプログラムを実行することによってビデオゲーム装置として機能するパーソナルコンピュータ等にも同様に適用することができる。
図1に示すビデオゲーム装置は家庭用ゲーム機100及び家庭用テレビジョン200を備える。家庭用ゲーム機100には、ゲームプログラムが記録されたコンピュータ読み出し可能な記録媒体300が装填され、ゲームプログラムが適宜読み出されてゲームが実行される。
家庭用ゲーム機100は、CPU(Central Processing Unit)1、バスライン2、グラフィックスデータ生成プロセッサ3、インターフェース回路(I/F)4、メインメモリ5、ROM(Read Only Memory)6、伸張回路7、パラレルポート8、シリアルポート9、描画プロセッサ10、音声プロセッサ11、デコーダ12、インターフェース回路13、バッファ14〜16、記録媒体ドライブ17、メモリ18及びコントローラ19を含む。家庭用テレビジョン200はテレビジョンモニタ21、増幅回路22及びスピーカ23を含む。
CPU1はバスライン2およびグラフィックスデータ生成プロセッサ3に接続されている。バスライン2はアドレスバス、データバス及びコントロールバス等を含み、CPU1、インターフェース回路4、メインメモリ5、ROM6、伸張回路7、パラレルポート8、シリアルポート9、描画プロセッサ10、音声プロセッサ11、デコーダ12及びインターフェース回路13を相互に接続している。
描画プロセッサ10はバッファ14に接続される。音声プロセッサ11はバッファ15及び増幅回路22に接続される。デコーダ12はバッファ16及び記録媒体ドライブ17に接続される。インターフェース回路13はメモリ18及びコントローラ19に接続される。
家庭用テレビジョン200のテレビジョンモニタ21は描画プロセッサ10に接続される。スピーカ23は増幅回路22に接続される。なお、業務用ビデオゲーム装置の場合、テレビジョンモニタ21、増幅回路22及びスピーカ23は、家庭用ゲーム機100を構成する各ブロックとともに1つの筺体に収納される場合がある。
また、ビデオゲーム装置がパーソナルコンピュータやワークステーション等を核として構成されている場合、テレビジョンモニタ21等はコンピュータ用のディスプレイに対応する。また、伸張回路7、描画プロセッサ10、及び音声プロセッサ11等は、それぞれ記録媒体300に記録されているプログラムデータの一部又はコンピュータの拡張スロットに搭載される拡張ボード上のハードウエアに対応する。また、インターフェース回路4、パラレルポート8、シリアルポート9及びインターフェース回路13は、コンピュータの拡張スロットに搭載される拡張ボード上のハードウエアに対応する。また、バッファ14〜16はそれぞれメインメモリ5又は拡張メモリの各記憶エリアに対応する。
次に、図1に示す各構成要素について説明する。グラフィックスデータ生成プロセッサ3はCPU1のいわばコプロセッサとしての役割を果たす。すなわち、グラフィックスデータ生成プロセッサ3は座標変換や光源計算、例えば固定小数点形式の行列やベクトルの演算を並列処理によって行う。
グラフィックスデータ生成プロセッサ3が行う主な処理としては、CPU1から供給される画像データの2次元又は3次元空間内における各頂点の座標データ、移動量データ、及び回転量データ等に基づいて、所定の表示エリア上における処理対象画像のアドレスデータを求めてCPU1に返す処理、仮想的に設定された光源からの距離に応じて画像の輝度を計算する処理等がある。
インターフェース回路4は周辺デバイス、例えばマウスやトラックボール等のポインティングデバイス等のインターフェース用に用いられる。メインメモリ5はRAM(Random Access Memory)等で構成される。ROM6にはビデオゲーム装置のオペレーティングシステムとなるプログラムデータが記憶されている。このプログラムはパーソナルコンピュータのBIOS(Basic Input Output System)に相当する。
伸張回路7は動画に対するMPEG(Moving Picture Experts Group)規格や静止画に対するJPEG(Joint Photographic Experts Group)規格に準拠したイントラ符号化によって圧縮された圧縮画像に対して伸張処理を施す。伸張処理はデコード処理(VLC:Variable Length Codeによってエンコードされたデータのデコード)、逆量子化処理、IDCT(Inverse Discrete Cosine Transform)処理、イントラ画像の復元処理等を含む。
描画プロセッサ10は所定時間T(例えば、1フレームでT=1/60秒)ごとにCPU1が発行する描画命令に基づいてバッファ14に対する描画処理を行う。
バッファ14は例えばRAMで構成され、表示エリア(フレームバッファ)と非表示エリアとに分けられる。表示エリアはテレビジョンモニタ21の表示面上に表示するデータの展開エリアで構成される。非表示エリアはスケルトンを定義するデータ、ポリゴンを定義するモデルデータ、モデルに動きを行わせるアニメーションデータ、各アニメーションの内容を示すパターンデータ、テクスチャデータ及びカラーパレットデータ等の記憶エリアで構成される。
ここで、テクスチャデータは2次元の画像データである。カラーパレットデータはテクスチャデータ等の色を指定するためのデータである。記録媒体300から一度に又はゲームの進行状況に応じて複数回に分けて、CPU1はこれらのデータを予めバッファ14の非表示エリアに記録する。
また、描画命令としては、ポリゴンを用いて立体的な画像を描画するための描画命令、通常の2次元画像を描画するための描画命令がある。ここで、ポリゴンは多角形の2次元仮想図形であり、例えば、三角形や四角形が用いられる。
ポリゴンを用いて立体的な画像を描画するための描画命令は、ポリゴン頂点座標データのバッファ14の表示エリア上における記憶位置を示すポリゴン頂点アドレスデータ、ポリゴンに貼り付けるテクスチャのバッファ14上における記憶位置を示すテクスチャアドレスデータ、テクスチャの色を示すカラーパレットデータのバッファ14上における記憶位置を示すカラーパレットアドレスデータ及びテクスチャの輝度を示す輝度データのそれぞれに対して行われるものである。
上記のデータのうち表示エリア上のポリゴン頂点アドレスデータは、グラフィックスデータ生成プロセッサ3がCPU1からの3次元空間上におけるポリゴン頂点座標データを移動量データ及び回転量データに基づいて座標変換することによって2次元上でのポリゴン頂点座標データに置換されたものである。輝度データはCPU1からの上記座標変換後のポリゴン頂点座標データによって示される位置から仮想的に配置された光源までの距離に基づいてグラフィックスデータ生成プロセッサ3によって決定される。
ポリゴン頂点アドレスデータはバッファ14の表示エリア上のアドレスを示す。描画プロセッサ10は3個のポリゴン頂点アドレスデータで示されるバッファ14の表示エリアの範囲に対応するテクスチャデータを書き込む処理を行う。
ゲーム空間内におけるキャラクタ等の物体は、複数のポリゴンで構成される。CPU1は各ポリゴンの3次元空間上の座標データを対応するスケルトンのベクトルデータと関連させてバッファ14に記憶する。そして、後述するコントローラ19の操作によって、テレビジョンモニタ21の表示画面上でキャラクタを移動させる等の場合において、キャラクタの動きを表現したり、キャラクタを見ている視点位置を変えたりするときに、以下の処理が行われる。
すなわち、CPU1はグラフィックスデータ生成プロセッサ3に対してバッファ14の非表示エリア内に保持している各ポリゴンの頂点の3次元座標データと、スケルトンの座標及びその回転量のデータから求められた各ポリゴンの移動量データ及び回転量データとを与える。
グラフィックスデータ生成プロセッサ3は各ポリゴンの頂点の3次元座標データと各ポリゴンの移動量データ及び回転量データとに基づいて各ポリゴンの移動後及び回転後の3次元座標データを順次求める。
このようにして求められた各ポリゴンの3次元座標データのうち水平及び垂直方向の座標データは、バッファ14の表示エリア上のアドレスデータ、すなわちポリゴン頂点アドレスデータとして描画プロセッサ10に供給される。
描画プロセッサ10は3個のポリゴン頂点アドレスデータによって示されるバッファ14の表示エリア上に予め割り当てられているテクスチャアドレスデータによって示されるテクスチャデータを書き込む。これによって、テレビジョンモニタ21の表示画面上には、多数のポリゴンにテクスチャの貼り付けられた物体が表示される。
通常の2次元画像を描画するための描画命令は、頂点アドレスデータ、テクスチャアドレスデータ、テクスチャデータの色を示すカラーパレットデータのバッファ14上における記憶位置を示すカラーパレットアドレスデータ及びテクスチャの輝度を示す輝度データに対して行われる。これらのデータのうち頂点アドレスデータは、CPU1からの2次元平面上における頂点座標データをCPU1からの移動量データ及び回転量データに基づいてグラフィックスデータ生成プロセッサ3が座標変換することによって得られる。
音声プロセッサ11は記録媒体300から読み出されたADPCM(Adaptive
Differential Pulse Code Modulation)データをバッファ15に記憶させ、バッファ15に記憶されたADPCMデータが音源となる。
また、音声プロセッサ11は、例えば、周波数44.1kHzのクロック信号に基づき、バッファ15からADPCMデータを読み出す。音声プロセッサ11は、読み出したADPCMデータに対してピッチの変換、ノイズの付加、エンベロープの設定、レベルの設定及びリバーブの付加等の処理を施す。
記録媒体300から読み出される音声データがCD−DA(Compact Disk Digital Audio)等のPCM(Pulse Code Modulation)データの場合、音声プロセッサ11はこの音声データをADPCMデータに変換する。また、PCMデータに対するプログラムによる処理は、メインメモリ5上において直接行われる。メインメモリ5上において処理されたPCMデータは、音声プロセッサ11に供給されてADPCMデータに変換される。その後、上述した各種処理が施され、音声がスピーカ23から出力される。
記録媒体ドライブ17としては、例えば、DVD−ROMドライブ、CD−ROMドライブ、ハードディスクドライブ、光ディスクドライブ、フレキシブルディスクドライブ、シリコンディスクドライブ、カセット媒体読み取り機等が用いられる。この場合、記録媒体300としては、DVD−ROM、CD−ROM、ハードディスク、光ディスク、フレキシブルディスク、半導体メモリ等が用いられる。
記録媒体ドライブ17は記録媒体300から画像データ、音声データ及びプログラムデータを読み出し、読み出したデータをデコーダ12に供給する。デコーダ12は記録媒体ドライブ17からの再生したデータに対してECC(Error Correction Code)によるエラー訂正処理を施し、エラー訂正処理を施したデータをメインメモリ5又は音声プロセッサ11に供給する。
メモリ18としては、例えばカード型のメモリが用いられる。カード型のメモリは、例えばゲームを中断した場合において中断時点での状態を保持する等のように、中断時点での各種ゲームパラメータを保持するため等に用いられる。
コントローラ19はプレーヤが種々の操作指令を入力するために使用する操作装置であり、プレーヤの操作に応じた操作信号をCPU1に送出する。コントローラ19には、インターフェース回路191、加速度センサ192、上方向キー19U、下方向キー19D、左方向キー19L、右方向キー19R、及びボタン193が設けられている。インターフェース回路191は、例えば、赤外線信号や無線信号等を送出するための回路により構成され、コントローラ19から送出される操作信号を赤外線信号や無線信号に変換してインターフェース回路13に送出する。
加速度センサ192は、3軸の加速度センサにより構成され、3軸方向のそれぞれの加速度を加速度信号として検出する。ここで、加速度センサ192としては、例えば、ピエゾ抵抗型、静電容量型、又は磁気センサ型等の加速度センサを採用することができる。
上方向キー19U、下方向キー19D、左方向キー19L、及び右方向キー19Rは、例えば、キャラクタやオブジェクトやカーソル等をテレビジョンモニタ21の画面上で上下左右に移動させるコマンドをCPU1に与えるために使用される。
コントローラ19の各ボタン及び各キーは、外部からの押圧力によって中立位置から押圧されるとオンになり、押圧力が解除されると上記中立位置に復帰してオフになるオンオフスイッチで構成される。
次に、上記のビデオゲーム装置の概略動作について説明する。記録媒体300が記録媒体ドライブ17に装填されている場合、電源スイッチ(図示省略)がオンされてビデオゲーム装置に電源が投入されると、ROM6に記憶されているオペレーティングシステムに基づいて、記録媒体300からゲームプログラムを読み出すように、CPU1は記録媒体ドライブ17に指示する。これによって、記録媒体ドライブ17は記録媒体300から画像データ、音声データ及びプログラムデータを読み出す。読み出された画像データ、音声データ及びプログラムデータはデコーダ12に供給され、デコーダ12によってエラー訂正処理が各データに施される。
デコーダ12によってエラー訂正処理が施された画像データは、バスライン2を介して伸張回路7に供給される。伸張回路7によって上述した伸張処理が行われた画像データは描画プロセッサ10に供給され、描画プロセッサ10によってバッファ14の非表示エリアに書き込まれる。デコーダ12によってエラー訂正処理が施された音声データは、メインメモリ5又は音声プロセッサ11を介してバッファ15に書き込まれる。デコーダ12によってエラー訂正処理が施されたプログラムデータはメインメモリ5に書き込まれる。
以降、CPU1は、メインメモリ5に記憶されているゲームプログラム及びプレーヤがコントローラ19を用いて指示する内容に基づいてビデオゲームを進行させる。すなわち、プレーヤがコントローラ19を用いて指示する内容に基づいて、CPU1は画像処理の制御、音声処理の制御及び内部処理の制御等を適宜行う。
画像処理の制御として、例えば、キャラクタに指示されるアニメーションに該当するパターンデータから各スケルトンの座標の計算又はポリゴンの頂点座標データの計算、得られた3次元座標データや視点位置データのグラフィックスデータ生成プロセッサ3への供給、グラフィックスデータ生成プロセッサ3が求めたバッファ14の表示エリア上のアドレスデータや輝度データを含む描画命令の発行等が行われる。
音声処理の制御として、例えば、音声プロセッサ11に対する音声出力コマンドの発行、レベル、リバーブ等の指定が行われる。内部処理の制御として、例えばコントローラ19の操作に応じた演算等が行われる。
図3は、ビデオゲーム装置においてテレビジョンモニタ21に表示される画像の一例を示した図である。以下、ビデオゲーム装置を用いて野球ゲームを行う場合の野球ゲームの概要について説明する。図3に示すように、野球ゲームは、投手キャラクタ71が移動体オブジェクトとしてのボールオブジェクトBL1を投げ、作用キャラクタとしての打者キャラクタ72がボールオブジェクトBL1を操作オブジェクトとしてのバットオブジェクト73により打ち返す、すなわち、バットオブジェクト73を用いてボールオブジェクトBL1に作用を与える野球ゲームである。
ここで、プレーヤは、操作部41自体を動かすことで照準オブジェクトOB1を画面上で動かし、ボールオブジェクトBL1がホームベース付近に到達したときに、照準オブジェクトOB1の表示位置をボールオブジェクトBL1に合わせ、ボタン193を押下することで、ボールオブジェクトBL1を打ち返す。
次に、上記のように構成されたビデオゲーム装置を用いて野球ゲームを行う場合のビデオゲーム装置の主要な機能について説明する。図2は、図1に示すビデオゲーム装置の主要機能ブロック図である。
図2に示すように、ビデオゲーム装置は、機能的には、操作部41、プログラム実行部42、データ記憶部43、プログラム記憶部44、及び表示部45を含む。
操作部41は、コントローラ19等から構成され、ビデオゲーム装置の遊技者であるプレーヤにより操作部41自体が動かされることにより加速度センサ192により検出される第1の操作信号としての加速度信号をプログラム実行部42に出力する。ここで、操作部41は、例えば一定の時間間隔で加速度信号を出力してもよいし、加速度センサ192により加速度が検出された場合に加速度信号を出力してもよい。
また、操作部41は、例えばボタン193が押下されることによりプレーヤにより打撃タイミングを決定するための打撃コマンドが入力された場合に、第2の操作信号としての打撃指示信号をプログラム実行部42に出力する。
プログラム記憶部44は、記録媒体ドライブ17等から構成され、コンピュータ読み取り可能な記録媒体62を含む。記録媒体62は、記録媒体300から構成され、本発明によるゲームプログラムを記憶している。なお、記録媒体62からゲームプログラムが読み取られ、当該ゲームプログラムがメインメモリ5に記録されている場合、メインメモリ5がプログラム記憶部44として機能する。
データ記憶部43は、メインメモリ5から構成され、画像記憶部61として機能する。画像記憶部61は、バットオブジェクトによるボールオブジェクトの打撃位置をプレーヤが指定するために表示部45に表示される照準オブジェクトを予め記憶する。
更に、画像記憶部61は、打撃キャラクタ、バットオブジェクト、照準オブジェクト、野球場の背景画像、投手キャラクタ、及び野手キャラクタ等の野球ゲームを行ううえで必要な種々の画像データを記憶する。ここで、野球場の背景画像の画像データとしては、例えば仮想3次元空間内において予め作成された仮想3次元モデルを所定の視点からレンダリングすることにより予め作成された画像データを採用することができる。
図4は、表示部45に表示される照準オブジェクトの一例を示した図である。図4に示すように照準オブジェクトOB1は、円形であり、円内部の領域が作用領域の一例である打撃領域D1となる。また、照準オブジェクトOB1は、中心O1がボールオブジェクトを最大のパワーで打ち返すことができるスイートスポットとなっている。
そこで、本実施の形態では、スイートスポットをプレーヤに明示するために、照準オブジェクトOB1の内部には、中心O1において直交する2本のラインL1,L2が描かれている。図4では、ラインL1は画面の垂直方向と平行であり、ラインL2は画面の水平方向と平行となっているが、これは一例であり、ラインL1,L2が中心O1で直交するのであれば、ラインL1,L2の向きはどのような向きであってもよい。
また、打者キャラクタの特性に応じて、スイートスポットを中心O1からずらしてもよく、この場合、ラインL1,L2は、スイートスポットにおいて交差するように描画すればよい。なお、照準オブジェクトOB1は閉曲線で表される形状を有していればよく、例えば楕円形や、四角形及び三角形等の多角形を採用してもよい。
図4に示す四角形状の枠W1は、ストライクゾーンを示している。すなわち、ボールオブジェクトが枠W1内を通過するとストライクになり、ボールオブジェクトが枠W1外を通過するとボールになる。このように枠W1を表示することで、プレーヤにストライクゾーンを明示することが可能となり、プレーヤにボールオブジェクトを打ち返すか否かを選択する際の判断材料を提供することが可能となる。
図2に戻り、プログラム実行部42は、CPU1、グラフィックスデータ生成プロセッサ3、描画プロセッサ10等から構成され、CPU1等がメインメモリ5に記憶されているゲームプログラムを実行することによって取得手段としての取得部51、照準オブジェクト表示制御手段としての照準オブジェクト表示制御部52、残像表示制御手段としての残像表示制御部53、作用判定手段としての打撃判定部54、作用パワー設定手段としての打撃パワー設定部55、及び振り強度設定手段としての振り強度設定部56として機能する。
取得部51は、操作部41から出力される加速度信号と打撃指示信号とを取得する。
照準オブジェクト表示制御部52は、取得部51により取得された加速度信号を基に、照準オブジェクトを打撃領域として表示部45に表示する。
ここで、照準オブジェクト表示制御部52は、例えば、取得部51により取得された加速度信号を2回積分することで、操作部41の相対的な移動量を示す移動量を算出し、算出した移動量から、照準オブジェクトの画面上の移動量を算出し、照準オブジェクトを移動させる。
具体的には以下の処理が行われる。ここで、操作部41から連続的に出力され、取得部51により連続的に取得される加速度信号をG(gx,gy,gz,t)と表す。但し、gxはx軸成分の加速度信号を示し、gyはy軸成分の加速信号を示し、gzはz軸成分の加速度信号を示し、tは加速度信号の取得時刻を示す。ここで、取得時刻の計時は、例えば家庭用ゲーム機100が備える時計機能を利用すればよい。なお、z軸は例えば3次元実空間の鉛直方向を示し、x軸、y軸、z軸は互いに直交する。
まず、ある時刻tiにおいて取得部51により加速度信号Gi(gxi,gyi,gzi,ti)が取得され、時刻ti+1において取得部51により加速度信号Gi+1(gxi+1,gyi+1,gzi+1,ti+1)が取得されたとする。そうすると、照準オブジェクト表示制御部52は、(Gi+1−Gi)・dt、すなわち、(gxi+1−gxi,gyi+1−gyi,gzi+1−gzi)・(ti+1−ti)により、操作部41の速度データVi(vxi,vyi,vzi,ti)を算出する。これにより時刻tiにおける操作部41の速度データが得られる。
同様にして、照準オブジェクト表示制御部52は、(Gi+2−Gi+1)・dtにより速度データVi+1(vxi+1,vyi+1,vzi+1,ti+1)を算出する。
そして、照準オブジェクト表示制御部52は、(Vi+1−Vi)・dt、すなわち、(vxi+1−vxi,vyi+1−vyi,vzi+1−vzi)・(ti+1−ti)により、移動量ΔXi(xi,yi,zi)を算出する。これにより、時刻tiから時刻ti+1までにおける操作部41の3次元実空間における移動量を得ることができる。
同様にして照準オブジェクト表示制御部52は、(Vi+2−Vi+1)・dtにより時刻ti+1から時刻ti+2までにおける操作部41の3次元実空間における移動量を算出する。そして、照準オブジェクト表示制御部52は、この処理を繰り返し行うことで、時間dtにおける操作部41の実空間での移動量ΔXiを得ることができる。
次に、照準オブジェクト表示制御部52は、得られた移動量ΔXiから仮想3次元空間における移動量ΔXi´を算出する。この場合、照準オブジェクト表示制御部52は、例えば3次元実空間と仮想3次元空間とを対応付ける予め定められた写像関数fを用いて、ΔXi´を算出すればよい。
そして、得られた移動量ΔXi´(Δxi´,Δyi´,Δzi´)と、時刻tiにおける照準オブジェクトの位置Xi´(xi+1´,yi+1´)とを用いて、時刻ti+1における照準オブジェクトの位置Xi+1´を求める。
具体的には、Xi+1´(xi+1´,yi+1´)=(xi´+Δxi´,yi´+Δyi´)により、照準オブジェクトの位置Xi+1´を求める。
図5は、仮想3次元空間における照準オブジェクトの位置を示した模式図である。なお、図5に示すy´は仮想3次元空間内におけるピッチャーマウンドの中心O2とホームベースHBの中心O3とを結ぶ直線L3と平行な方向を示し、z´は鉛直方向を示し、x´は鉛直方向と直線L3と直交する方向を示している。
本実施の形態では、照準オブジェクトOB1は、例えば、中心O3を通り、かつ、x´−z´平面と平行な平面SF1上を動くものとしている。したがって、照準オブジェクト表示制御部52は、移動量ΔXi´(Δxi´,Δyi´,Δzi´)のうちΔxi´,Δyi´を用いて、照準オブジェクトOB1の位置Xi´を算出している。なお、照準オブジェクトOB1の残像も、照準オブジェクトOB1と同様、平面SF1上に位置する。
但し、これは一例であり、照準オブジェクトOB1を平面SF1からy´方向に多少ずらした平面上を移動させるようにしてもよい。
なお、照準オブジェクトOB1の初期の位置X1´は、例えば、中心O3を通るz´と平行な直線L4上であってストライクゾーンの中心位置の点P1を採用することができる。そして、照準オブジェクト表示制御部52は、例えば、プレーヤが投球コマンドを操作部41に入力した後、取得部51が最初に加速度信号を取得したときに、照準オブジェクトOB1を初期の位置X1´に表示すればよい。
或いは、照準オブジェクト表示制御部52は、例えば、電源投入後、取得部51が最初に加速度信号を取得したときや、取得部51による加速度信号の取得間隔が一定時間以上となった後、加速度信号を再度取得したときに、照準オブジェクトOB1を初期の位置X1´に表示すればよい。また、初期の位置X1´として点P1以外の点、例えば、表示部45の画面の中心等の点を採用してもよい。
照準オブジェクト表示制御部52は以上の処理を繰り返し実行し、照準オブジェクトを表示部45に移動表示させる。
ここで、照準オブジェクト表示制御部52は、一定の時間間隔で照準オブジェクトを表示する。一定の時間間隔としては、例えば3フレーム分の時間、すなわち3/60秒(0.5秒)程度の値を採用することが可能であるが、これに限定されず、0.5秒より短くしてもよいし長くしてもよい。
残像表示制御部53は、照準オブジェクト表示制御部52により過去に表示された照準オブジェクトの残像を打撃領域として表示部45に表示する。図6及び図7は、残像表示制御部53により表示される照準オブジェクトの残像を示している。図6及び図7に示す照準オブジェクトOB1は、照準オブジェクト表示制御部52により表示される最新の照準オブジェクトであり、残像ZN1,ZN2は、残像表示制御部53により表示される照準オブジェクトOB1の残像である。
ここで、残像ZN1は、照準オブジェクト表示制御部52が照準オブジェクトOB1の1つ前に表示した照準オブジェクトであり、残像ZN2は、照準オブジェクト表示制御部52が照準オブジェクトOB1の2つ前に表示した照準オブジェクトである。
そして、残像表示制御部53は、残像ZN1,ZN2を打撃領域D2,D3として表示する。すなわち、現在表示されている照準オブジェクトOB1による打撃領域D1に加えて、残像ZN1,ZN2による打撃領域D2,D3も打撃領域として表示される。そのため、ボールオブジェクトがいずれかの打撃領域を通過すれば、プレーヤはボールオブジェクトを打撃することが可能となる。したがって、打撃領域が増大し、操作部41自体を動かして照準オブジェクトOB1を位置決操作することの難しさによるゲームの面白みの低下を抑制し、ゲームの面白みを増大させることができる。
なお、本実施の形態では、残像ZN1,ZN2は、照準オブジェクトと同一形状を有しているが、照準オブジェクトOB1との区別を図るためにラインL1,L2が省かれ、かつ、外枠の輝度が、照準オブジェクトOB1よりも低くされている。
また、残像表示制御部53は、照準オブジェクト表示制御部52により表示されている現在の照準オブジェクトOB1から過去に遡って所定個数の照準オブジェクトを残像として表示する。ここで、所定個数としては、ゲームの難易度に応じて適宜に設定された値を採用することができる。
また、照準オブジェクト表示制御部52は、バットオブジェクトを用いて打撃を行う打撃キャラクタに対して予め定められた能力値が高いほど、前記打撃領域の表示個数を多くしてもよい。ここで、打撃キャラクタの能力値としては、例えば打撃キャラクタの打率を採用することができる。
図8は、打率の高い打撃キャラクタにおいて表示部45に表示される打撃領域を示した図である。図9は、図8よりも打率の低い打撃キャラクタにおいて表示部45に表示される打撃領域を示した図である。
図8に示すように、打率の高い打撃キャラクタにおいては、7個の打撃領域D1〜D7が表示されているのに対し、図9に示すように、打率の低い打撃キャラクタにおいては、4個の打撃領域D1〜D4しか表示されていない。すなわち、図9においては、図8よりもより過去に表示された照準オブジェクトの残像が表示されている。
こうすることで、打率の高い打撃キャラクタにおいては、打率の低い打撃キャラクタよりも残像の表示個数が増大して打撃領域が増大し、プレーヤはボールオブジェクトをより打ち返しやすくなる。これにより、本野球ゲームをより実際の野球ゲームに近づけることが可能となり、ゲームの面白みをより増大させることができる。
また、照準オブジェクト表示制御部52は、打撃キャラクタに対して予め定められた能力値が高いほど、前記照準オブジェクトの移動速度を大きくしてもよい。ここで、能力値としては、例えば、打率、得意な打撃コース、及び得意な球種等が挙げられる。
打撃コースとしては、内角、外角、高め、低め等が挙げられ、例えば内角が得意な打撃キャラクタにおいては、照準オブジェクトOB1が予め定められた内角の領域内を移動するときの移動速度を他の領域内を移動するときの移動速度よりも速くすればよい。
球種としては、カーブ、シュート、フォーク等の変化球や、直球が挙げられ、カーブが得意な打撃キャラクタにおいては、ボールオブジェクトの球種がカーブである場合、照準オブジェクトOB1の移動速度を他の球種の移動速度よりも速くすればよい。
打率に応じて照準オブジェクトOB1の移動速度を変更する場合は、打率が3割台の打撃キャラクタに対しては移動速度を最大にし、2割台後半、2割台前半、1割台と、打率が低下するにつれて移動速度が低下するように段階的に設定してもよいし、打率が低下するにつれて連続的に移動速度を低下させてもよい。
なお、照準オブジェクト表示制御部52は、例えば、上述した仮想3次元空間の移動量ΔXi´に、照準オブジェクトOB1の移動速度に応じて予め定められた係数を乗じることで、照準オブジェクトOB1の移動速度を変更すればよい。
図10は、照準オブジェクトの移動速度の説明図であり、(a)は移動前の照準オブジェクトを示し、(b)移動後の照準オブジェクトを示している。
図10(a)の状態において、操作部41が右斜め下に移動されると、照準オブジェクトOB1は、図10(b)に示すように右斜め下に移動する。この際、打率の高い打撃キャラクタにおいては、照準オブジェクトOB1の移動時間が、打率の低い打撃キャラクタよりも短くなる。そのため、プレーヤは打率の高い打撃キャラクタを用いた場合、ボールオブジェクトを照準オブジェクトOB1に速やかに位置決めすることが可能となる。
図2に戻り、打撃判定部54は、取得部51が打撃指示信号を取得した際、いずれかの打撃領域をボールオブジェクトが通過した場合、ボールオブジェクトがバットオブジェクトにより打撃されたと判定する。図11は、打撃判定部54が実行する打撃判定処理の説明図である。なお、図11は、仮想3次元空間をx´軸方向から見たときを表している。
具体的には、打撃判定部54は、図11に示すように、取得部51が打撃指示信号を取得したときに、ボールオブジェクトBL1が平面SF1上の打撃領域と交わる又は接している場合、バットオブジェクトによりボールオブジェクトBL1が打撃されたと判定する。
ここで打撃領域には、図12に示すように照準オブジェクトOB1による打撃領域に加えて照準オブジェクトOB1の残像による打撃領域も含まれる。そして、打撃判定部54は、複数の打撃領域のうちいずれか1つの打撃領域にボールオブジェクトBL1が交わる又は接している場合、ボールオブジェクトBL1が打撃されたと判定すればよい。
しかしながら、これでは、ゲームの難易度が極めて高くなってしまい、面白みに欠けてしまう。そこで、本実施の形態では、例えば取得部51が打撃指示信号を取得したときに、ボールオブジェクトBL1のy´成分が、平面SF1に対して−y´方向に距離d1離れた位置と、平面SF1に対して+y´方向に距離d2離れた位置との間に存在し、かつ、そのときのボールオブジェクトBL1の延長線が平面SF1上の全ての打撃領域のうちいずれか1つの打撃領域と交差した場合、ボールオブジェクトBL1が打撃されたと判定すればよい。
ここで、ボールオブジェクトBL1の延長線としては、例えば取得部51が打撃指示信号を取得したときのボールオブジェクトの速度の方向にボールオブジェクトの質点G1を起点として伸ばした直線を採用することができる。
或いは、取得部51が打撃信号を取得したときに、ボールオブジェクトBL1のy´成分が、平面SF1に対して距離d1離れた位置と、平面SF1に対して距離d2離れた位置との間に存在する場合、そのときの質点G1を通り平面SF1に平行な平面SF1´を設定し、設定した平面SF1´上に平面SF1上の打撃領域を全て投影し、投影した全ての打撃領域うちいずれか1つの打撃領域内にボールオブジェクトBL1が存在する場合、ボールオブジェクトBL1が打撃されたと判定すればよい。
なお、d1,d2としては、平面SF1からのストライクゾーンのy´成分の長さと同じ距離又は、多少のマージンを加える若しくは差し引いた距離を採用することができる。
図2に戻り、打撃パワー設定部55は、ボールオブジェクトが通過した打撃領域が、表示時刻の新しい打撃領域であるほど、バットオブジェクトによる打撃パワーを大きく設定する。ここで、打撃パワーとしては、例えば打撃されたボールオブジェクトの初速度の大きさと向きとが採用される。
図12は、打撃パワー設定部55が打撃パワーを設定する際に実行する打撃パワー設定処理の説明図である。図12においては、打撃領域D1は最新の打撃領域、すなわち、照準オブジェクト表示制御部52が表示している現在の照準オブジェクトOB1による打撃領域を示し、打撃領域D2は現在の照準オブジェクトの1つ前に表示された照準オブジェクトの残像ZN1による打撃領域を示し、打撃領域D3は現在の照準オブジェクトの2つ前に表示された照準オブジェクトの残像ZN2による打撃領域を示している。
ここで、打撃領域D1〜D3の重み係数としてα1〜α3が予め対応付けられている。但し、α1>α2>α3である。したがって、ボールオブジェクトが打撃領域D1を通過した場合は、打撃されたボールオブジェクトの予め定められた基準初速度Vrefの大きさに重み係数α1を乗じることで、打撃されたボールオブジェクトの初速度の大きさが算出され、ボールオブジェクトが打撃領域D2を通過した場合は、基準初速度Vrefの大きさに重み係数α2を乗じることで打撃されたボールオブジェクトの初速度の大きさが算出され、ボールオブジェクトが打撃領域D3を通過した場合は、基準初速度Vrefの大きさに重み係数α3を乗じることで打撃されたボールオブジェクトの初速度の大きさが算出される。これにより、ボールオブジェクトが表示時刻の新しい打撃領域を通過するほど打撃パワーを大きくすることが可能となる。
一方、ボールオブジェクトの初速度の向きは、以下のようにして算出される。図13は、打撃されたボールオブジェクトの初速度の向きの算出処理を示した図であり、(a)は照準オブジェクトOB1を示し、(b)は打撃直後のボールオブジェクトBL1をx´方向から見た状態を示し、(c)は打撃直後のボールオブジェクトBL1をz´方向から見た状態を示している。
図13(a)に示すように、ボールオブジェクトBL1が打撃領域内の点P4(u,v)を通過したとする。但し、uは中心O1を通り、かつ、x´に平行な座標軸であり、vは中心O1を通り、かつ、z´に平行な座標軸である。点P4のvが負であれば、バットオブジェクトによる打点がスイートスポットよりも下側に位置するため、図13(b)に示すように、基準初速度Vrefのピッチ角θ1をvの値に応じて増大させてボールオブジェクトBL1の初速度のピッチ角を求める。一方、点P4のvが正であれば、バットオブジェクトによる打点がスイートスポットよりも上側に位置するため、基準初速度Vrefのピッチ角θ1をvの値に応じて減少させてボールオブジェクトBL1の初速度のピッチ角を求める。
また、点P4のuが正であれば、バットオブジェクトによる打点は、スイートスポットよりもグリップエンドとは反対の先端側に位置するため、右打者の場合は図13(c)に示すように基準初速度Vrefのヨー角θ2をuの値に応じて+θ2側に変更させてボールオブジェクトBL1の初速度のヨー角を求める。一方、点P4が負であれば、バットオブジェクトによる打点はスイートスポットよりもグリップエンド側に位置するため、右打者の場合は基準初速度Vrefのヨー角θ2をuの値に応じて−θ2側に変更させてボールオブジェクトBL1の初速度のヨー角を求める。
更に、図11に示すように、ボールオブジェクトBL1が平面SF1よりも−y´側に位置するときに、取得部51により打撃指示信号が取得された場合、すなわち、ボールオブジェクトBL1の打撃タイミングが速かった場合、図13(c)に示すように、右打者の場合は基準初速度Vrefのヨー角θ2をdの値に応じて−θ2側に増大させてボールオブジェクトBL1の初速度のヨー角を求める。一方、ボールオブジェクトBL1が平面SF1よりも+y´側に位置するときに、取得部51により打撃指示信号が取得された場合、すなわち、ボールオブジェクトBL1の打撃タイミングが遅かった場合、図13(c)に示すように、右打者の場合は基準初速度Vrefのヨー角θ2をdの値に応じて+θ2側に増大させてボールオブジェクトBL1の初速度のヨー角を求める。
なお、ボールオブジェクトBL1が照準オブジェクトOB1の残像を通過した場合、例えば、この残像の打撃領域の中心O1をスイートスポットとして、図13(a)に示すようにボールオブジェクトBL1のu,vを求め、ボールオブジェクトBL1の初速度のヨー角を求めればよい。
また、打撃パワー設定部55は、ボールオブジェクトの打撃領域の通過位置が、複数の打撃領域に属する場合、これら複数の打撃領域のうち、表示時刻が最新の打撃領域を移動体オブジェクトが通過したと判定し、当該打撃領域を基に、打撃パワーを設定する。
図12に示すように、ボールオブジェクトの質点が点P3を通過したとする。この場合、点P3は打撃領域D1と打撃領域D2とに属している。この場合、表示時刻の新しい打撃領域D1をボールオブジェクトが通過したと判定され、重み係数α1により打撃パワーが算出される。
また、打撃パワー設定部55は、ボールオブジェクトが通過した打撃領域におけるボールオブジェクトの通過位置が、当該打撃領域の中心から離れるにつれて打撃パワーを小さく設定する。図12に示すように、ボールオブジェクトの質点が打撃領域D1内の点P4を通過したとする。この場合、点P4が中心O1から離れるにつれて、重み係数α1が小さくなるように重み係数α1が修正される。これにより、ボールオブジェクトの通過位置がスイートスポットに近づくにつれて、重み係数α1が大きくなり、プレーヤは強いパワーでボールオブジェクトを打撃することができる。
また、打撃パワー設定部55は、ボールオブジェクトが投球される前に操作部41により受け付けられたプレーヤの操作入力に従って、アッパースイング、ダウンスイング等のバットオブジェクトの軌道を設定することができる。ここで、プレーヤは例えば上方向キー19U又は下方向キー19Dを操作することで、アッパースイング、ダウンスイング、ノーマルスイング等のバットオブジェクトの軌道を設定することができる。そして、打撃パワー設定部55は、アッパースイングが選択された場合、図13(b)に示すように、基準初速度Vrefのピッチ角θ1をノーマルスイングのピッチ角θ1より大きく設定し、ダウンスイングが選択された場合、基準初速度Vrefのピッチ角のピッチ角θ1をノーマルスイングのピッチ角θ1よりも小さく設定すればよい。
なお、本実施の形態では、図1に示すコントローラ19に対してケーブルを介してコントローラ子機20を接続することも可能である。図14はコントローラ子機20を示した図である。コントローラ子機20は、ボタン21及び加速度センサを備えている。そして、プレーヤは、コントローラ子機20を上下に動かすことで、バットオブジェクトの軌道を設定することも可能である。
この場合、打撃パワー設定部55は、コントローラ子機20から出力される加速度信号からコントローラ子機20の仮想3次元空間における移動量を算出し、算出した移動量に応じた角度により基準初速度Vrefのピッチ角θ1を設定すればよい。
なお、基準初速度Vrefの大きさ及び向きは打撃キャラクタに対して予め定められた能力値により適宜変更してもよい。例えば、強打者は他の打者よりも基準初速度Vrefの値を大きくしてもよい。また、流し打ちが得意な右打者においては、基準初速度をy´方向から+θ2方向に多少ずらしてもよい。
具体的には、打撃パワー設定部55は、照準オブジェクト表示制御部52と同様にして仮想3次元空間における移動量ΔXi´を算出する。そして、得られた移動量ΔXi´(Δxi´,Δyi´,Δzi´)のΔzi´の値に応じて予め定められた基準初速度Vrefのピッチ角θ1の変動量Δθ1を求め、tiにおける基準初速度Vrefのピッチ角θ1に変動量Δθ1を加算することで、時刻ti+1における基準初速度のピッチ角θ1を求める。
このとき、打撃パワー設定部55は、バットオブジェクトの軌道をプレーヤに明示するために、図15に示すように、基準初速度Vrefのピッチ角θ1の変化に応じてバットオブジェクト73を上下に移動表示させる。具体的には、アッパースイングが設定された場合は、ノーマルスイングのときよりもバットオブジェクト73を下側に移動表示させ、ダウンスイングが設定された場合は、ノーマルスイングのときよりもバットオブジェクト73を上側に移動表示させる。
図2に戻り、振り強度設定部56は、バットオブジェクトを用いて打撃を行う打撃キャラクタによるバットオブジェクトの振り強度を設定する。
この場合、照準オブジェクト表示制御部52は、振り強度設定部56により設定された振り強度が大きいほど、打撃領域を小さく設定する。
ここで、振り強度は、例えば、ボールオブジェクトが投球される前にプレーヤにより振り強度を設定するための操作に従って設定される。振り強度は、例えば大、中、小というように段階的に設定されてもよいし、連続的に設定されてもよい。
図16は、サイズが小さく設定された照準オブジェクトを示した図である。図16に示すように、照準オブジェクトOB1のサイズが図4等に示す照準オブジェクトよりも小さくなっていることが分かる。また、照準オブジェクトOB1のサイズが小さくなったことに伴って、残像ZN1のサイズも小さくなっていることが分かる。これにより、照準オブジェクトOB1をボールオブジェクトに位置決めすることが困難となる。しかしながら、振り強度が高く設定されているため、プレーヤはボールオブジェクトをより強いパワーで打ち返すことが可能となる。
具体的には、振り強度設定部56は、設定された振り強度の大きさに応じて上述した基準初速度Vrefの大きさを変更することで、振り強度を打撃パワーに反映させる。
図2に戻り、表示部45は、テレビジョンモニタ21から構成され、上記のような照準オブジェクトやボールオブジェクトを表示する。
次に、図17のフローチャートを用いて、ゲーム装置の動作について説明する。まず、ステップS1において、プログラム実行部42は、表示部45に、照準オブジェクト、打撃キャラクタ、バットオブジェクト、野球場の背景画像、投手キャラクタ、及び野手キャラクタ等の画像データを画像記憶部61から読み出して表示させ、初期設定を行う。この場合、表示部45には、例えば図3に示すような画像が表示される。
なお、照準オブジェクト表示制御部52は、操作部41により受け付けられた操作入力に従って、照準オブジェクトを表示部45に適宜移動表示させ、かつ、残像表示制御部53は、照準オブジェクトの残像を表示部45に適宜表示させる。この場合、表示部45には、図4に示すような照準オブジェクトが表示され、かつ、図6に示すように残像ZN1が表示される。
次に、ステップS2において、振り強度設定部56は、攻撃側のプレーヤからの操作入力にしたがって、打撃キャラクタによるバットオブジェクトの振り強度及び軌道を設定する。この場合、図16に示すように、照準オブジェクト表示制御部52は、振り強度が強く設定されるほど、照準オブジェクトOB1のサイズを小さく表示する。
次に、ステップS3において、操作部41は、守備側のプレーヤから投手キャラクタにボールオブジェクトを投球させるための投球コマンドの入力を受け付ける。ここで、投球コマンドとして、プレーヤは球種や打撃コースを指定することが可能である。
次に、ステップS4において、プログラム実行部42は、ボールオブジェクトの初速度を設定し、ボールオブジェクトを質点と見なし、設定した初速度と、仮想3次元空間内において予め鉛直方向下向きに付与された重力加速度と、揚力等の種々の外力と、ボールオブジェクトの質量とを用いて、質点の運動方程式を解くことにより、仮想3次元空間におけるボールオブジェクトの位置を繰り返し算出して、ボールオブジェクトの軌道を算出し、算出した軌道に沿うようにボールオブジェクトを表示部45に移動表示させる。
ここで、プログラム実行部42は、プレーヤにより指定された球種やコースに応じた軌道を描いてボールオブジェクトが移動するように、予め定められた外力をボールオブジェクトに付与する。また、初速度は、プレーヤにより指定された球種やコースにしたがって、予め定められた速度が設定される。この場合、図3に示すように、ボールオブジェクトBL1は、プレーヤにより指定された球種やコースにしたがった軌道を描くように投手キャラクタ71からホームベースに向かって移動表示される。
次に、ステップS5において、操作部41は、プレーヤから打撃コマンドの入力を受け付けると(ステップS5でYES)、打撃判定部54は、上述した打撃判定処理を行い、ボールオブジェクトを打撃することができたか否かを判定する(ステップS6)。この場合、例えば、図7に示すように、プレーヤが打撃コマンドを入力したときに、ボールオブジェクトが打撃領域D1,D2,D3のうちいずれかを通過した場合、ボールオブジェクトが打撃されたと判定される。
そして、打撃判定部54が、ボールオブジェクトを打撃することができたと判定した場合(ステップS6でYES)、打撃パワー設定部55は、上述した打撃パワー設定処理を実行して、打撃されたボールオブジェクトの初速度を算出する(ステップS7)。この場合、打撃判定部54は、図18に示すように、ボールオブジェクトがバットオブジェクトにより打撃されたことを明示する画像を表示部45に表示させる。
次に、ステップS8において、プログラム実行部42は、打撃されたボールオブジェクトの軌道を計算し、計算した軌道に沿ってボールオブジェクトを移動表示させるための打撃処理を実行する。この場合、プログラム実行部42は、ボールオブジェクトの重心を質点と見なし、ステップS7で算出されたボールオブジェクトの初速度を用いてステップS4と同様にして質点の運動方程式を解くことにより、ボールオブジェクトの位置を繰り返し算出して、ボールオブジェクトの軌道を算出し、算出した軌道に沿うようにボールオブジェクトを表示部45に移動表示させる。
一方、ステップS5において、操作部41により打撃コマンドが受け付けられなかった場合(ステップS5でNO)、すなわち、プレーヤがボールオブジェクトを見送った場合、プログラム実行部42は、例えば捕手キャラクタがボールオブジェクトを捕球する画像を表示部45に表示させる等の見送り処理を実行する(ステップS10)。
一方、ステップS6において、打撃判定部54が、打撃判定処理により打撃することができなかったと判定した場合(ステップS6でNO)、すなわち、プレーヤがボールオブジェクトを空振りした場合、投手キャラクタがバットオブジェクトを空振りする画像を表示部45に表示した後、空振りされたボールオブジェクトを捕手キャラクタが捕球する画像を表示部45に表示させる等の空振り処理を実行する(ステップS9)。
このように、本実施の形態によるゲームプログラムによれば、プレーヤは、照準オブジェクトをボールオブジェクトに位置合わせすることに失敗したとしても、照準オブジェクトの残像がボールオブジェクトに位置合わせされていれば、ボールオブジェクトを打撃することができたと判定される。
したがって、照準オブジェクトのみを打撃領域としてボールオブジェクトに位置合わせする構成に比べて、打撃領域が拡大する。その結果、プレーヤは、移動体オブジェクトを容易に打撃することが可能となり、操作が過大とならず、ゲームの面白みを増すことができる。
なお、上記説明では、本ゲーム装置が野球ゲームを実行する場合を例示したが、これに限定されず、野球ゲーム以外、例えばテニス、卓球、スカッシュ等のラケットによりボールを打ち返す球技のゲームを実行させてもよい。この場合、ラケットを操作オブジェクトとすればよい。
また、本ゲーム装置にクレー射撃ゲームを実行させてもよい。この場合、ライフル及びライフルから発射される弾丸を操作オブジェクトとし、射撃対象物である飛行体を移動体オブジェクトとすればよい。