(57)【要約】【課題】プレーヤにとって適切な技量レベルで、プレーヤの操作を補助する。【解決手段】カーソル移動速度補助部４３４は、モード設定部４３９において、ミートカーソルをボールオブジェクトに補助的に近接させるミートカーソル移動補助モードが設定されている場合、ミートカーソル移動補助モードが設定されていない場合に比べて、ミートカーソルがボールオブジェクトにより早く近接するように、ミートカーソルの移動速度を補正する。この場合、カーソル移動速度補助部４３４は、レベル設定部４３８において設定された技量レベルが低いほど、ミートカーソルの移動速度を大きく設定する。【選択図】図２
2011160864.tif 000002
【特許請求の範囲】
【請求項１】
投手キャラクタが投じたボールオブジェクトを打者キャラクタが打撃する野球ゲームを実行するゲーム装置であって、
前記打者キャラクタに前記ボールオブジェクトを打撃させる位置を決定するためのミートカーソルを、表示装置の表示画面上で移動表示させるために、プレーヤにより入力される移動指令を取得する移動指令取得手段と、
プレーヤにより入力される打撃指令に基づいて、前記打者キャラクタが前記ボールオブジェクトを打撃する打撃タイミングを決定する打撃タイミング決定手段と、
前記ミートカーソルを前記ボールオブジェクトに補助的に近接させるミートカーソル移動補助モードが設定されている場合、前記ミートカーソル移動補助モードが設定されていない場合に比べて、前記ミートカーソルが前記ボールオブジェクトにより早く近接するように、前記ミートカーソルの移動速度を補正するカーソル移動速度補助手段と、
前記カーソル移動速度補助手段により補正された移動速度及び前記移動指令に基づいて、前記ミートカーソルを表示画面上で移動表示させるカーソル移動表示手段と、
前記打撃タイミングにおける前記ボールオブジェクトと前記ミートカーソルとの距離の履歴に基づいてプレーヤの技量を示す技量レベルを設定するレベル設定手段とを備え、
前記カーソル移動速度補助手段は、前記技量レベルが低いほど、前記ミートカーソルの移動速度を大きく設定するゲーム装置。
【請求項２】
前記レベル設定手段は、前記ミートカーソルと前記ボールオブジェクトとの距離の履歴が所定個数蓄積される毎に、前記距離の代表値を求め、得られた代表値を基に前記技量レベルを設定する請求項１記載のゲーム装置。
【請求項３】
前記レベル設定手段は、最新の代表値より１つ前に求められた代表値から前記最新の代表値を差し引いた差分が規定値より大きい場合、前記最新の代表値を用いて前記技量レベルを設定する一方、前記差分が前記規定値より小さい場合、少なくとも前記１つ前に求められた代表値と前記最新の代表値とを用いて新たな代表値を再算出し、再算出した代表値を用いて前記技量レベルを設定する請求項２記載のゲーム装置。
【請求項４】
前記レベル設定手段は、前記差分が前記規定値より小さい場合、過去に算出された差分のうち前記規定値以上となった最新の差分を特定し、特定した最新の差分を算出する際に使用された新しい方の代表値から最新の代表値までの各代表値の平均値を前記再算出する代表値として算出し、この代表値を用いて前記技量レベルを設定する請求項３記載のゲーム装置。
【請求項５】
前記所定個数は、１試合あたりの前記打撃指令の平均入力回数に基づいて予め定められた値であることを特徴とする請求項２〜４のいずれかに記載のゲーム装置。
【請求項６】
プレーヤからの操作指令に基づいて、前記野球ゲームをプレーヤ育成モードで進行させるモード設定手段を更に備え、
前記カーソル移動速度補助手段は、前記プレーヤ育成モードが設定されている場合、前記技量レベル設定手段により設定された技量レベルよりも上の技量レベルにおける前記ミートカーソルの移動速度の補正量で前記ミートカーソルの移動速度を補正する請求項１〜５のいずれかに記載のゲーム装置。
【請求項７】
前記ミートカーソルの現在位置から前記ボールオブジェクトの現在位置までを結ぶベクトルと、前記移動指令による前記ミートカーソルの移動方向を示すベクトルとのベクトル和の方向を前記ミートカーソルの補正後の移動方向として設定するカーソル移動方向補助手段を更に備え、
前記カーソル移動表示手段は、前記カーソル移動方向補助手段により設定された補正後の移動方向に前記ミートカーソルを移動させる請求項１〜６のいずれかに記載のゲーム装置。
【請求項８】
投手キャラクタが投じたボールオブジェクトを打者キャラクタが打撃する野球ゲームをコンピュータに実行させるゲーム制御プログラムであって、
前記打者キャラクタに前記ボールオブジェクトを打撃させる位置を決定するためのミートカーソルを、表示装置の表示画面上で移動表示させるために、プレーヤにより入力される移動指令を取得する移動指令取得手段と、
プレーヤにより入力される打撃指令に基づいて、前記打者キャラクタが前記ボールオブジェクトを打撃する打撃タイミングを決定する打撃タイミング決定手段と、
前記ミートカーソルを前記ボールオブジェクトに補助的に近接させるミートカーソル移動補助モードが設定されている場合、前記ミートカーソル移動補助モードが設定されていない場合に比べて、前記ミートカーソルが前記ボールオブジェクトにより早く近接するように、前記ミートカーソルの移動速度を補正するカーソル移動速度補助手段と、
前記カーソル移動速度補助手段により補正された移動速度及び前記移動指令に基づいて、前記ミートカーソルを表示画面上で移動表示させるカーソル移動表示手段と、
前記打撃タイミングにおける前記ボールオブジェクトと前記ミートカーソルとの距離の履歴に基づいてプレーヤの技量を示す技量レベルを設定するレベル設定手段としてコンピュータを機能させ、
前記カーソル移動速度補助手段は、前記技量レベルが低いほど、前記ミートカーソルの移動速度を大きく設定するゲーム制御プログラム。
【請求項９】
投手キャラクタが投じたボールオブジェクトを打者キャラクタが打撃する野球ゲームをゲーム装置が実行するゲーム制御方法であって、
前記打者キャラクタに前記ボールオブジェクトを打撃させる位置を決定するためのミートカーソルを、表示装置の表示画面上で移動表示させるために、プレーヤにより入力される移動指令を取得する移動指令取得ステップと、
プレーヤにより入力される打撃指令に基づいて、前記打者キャラクタが前記ボールオブジェクトを打撃する打撃タイミングを決定する打撃タイミング決定ステップと、
前記ミートカーソルを前記ボールオブジェクトに補助的に近接させるミートカーソル移動補助モードが設定されている場合、前記ミートカーソル移動補助モードが設定されていない場合に比べて、前記ミートカーソルが前記ボールオブジェクトにより早く近接するように、前記ミートカーソルの移動速度を補正するカーソル移動速度補助ステップと、
前記カーソル移動速度補助ステップにより補正された移動速度にしたがって、前記ミートカーソルを表示画面上で移動表示させるカーソル移動表示ステップと、
前記打撃タイミングにおける前記ボールオブジェクトと前記ミートカーソルとの距離の履歴に基づいてプレーヤの技量を示す技量レベルを設定するレベル設定ステップとを備え、
前記カーソル移動速度補助ステップは、前記技量レベルが低いほど、前記ミートカーソルの移動速度を大きく設定するゲーム制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、投手キャラクタが投じたボールオブジェクトを打者キャラクタが打撃する野球ゲームの進行を制御する技術に関するものである。
【背景技術】
【０００２】
従来、投手キャラクタが投じたボールオブジェクトに対してミートカーソルを重なるように位置合わせし、その状態で打者キャラクタにバットをスイングさせてボールオブジェクトを打撃させる野球ゲームが知られている（例えば、特許文献１）。
【０００３】
このような野球ゲームでは、プレーヤは、１．ストライクゾーン上に来るボールオブjジェクトに対してミートカーソルを位置合わせするというコントローラ操作と、２．打撃タイミングを予測して打撃指令を入力するコントローラ操作とが要求される。ここで、１．のミートカーソルを位置合わせする操作は、投手キャラクタからリリースされたボールオブジェクトが到着するまでの短い時間内で行わなければならず、ある程度の技量を要するため、初心者にとっては難易度が高い。
【０００４】
そこで、従来、野球ゲームでは初心者のために「ロックオン」と呼ばれる機能が設けられている。このロックオン機能は、１．のミートカーソルを位置合わせする操作をゲーム装置が補助する機能である。具体的には、ミートカーソルがボールオブジェクトに素早く位置決めされるように、ミートカーソルの移動速度やプレーヤが指定した移動方向をゲーム装置が自動的に修正する機能である。
【０００５】
この機能を用いれば、プレーヤは、ミートカーソルの位置合わせにあまり気をとられることなく、打撃指令の入力のタイミングに意識を集中させることが可能となり、初心者であっても十分にゲームを楽しむことが可能となる。
【０００６】
なお、従来のロックオン機能では、軽い補助レベルから強い補助レベルまで複数の補助レベル（例えば５段階）が設けられており、プレーヤが自分のレベルに応じて任意に選択できるようになっていた。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−２２２３９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の野球ゲームでは、プレーヤがロックオン機能を自分の判断で選択、設定していたために、自由度がある反面、結果的にゲームを十分に楽しめないという場合があった。
【０００９】
例えば、プレーヤが自分はロックオン機能の補助はあまり必要ない（自分の技量は高い）と考えて、ロックオン機能の補助レベルを低く設定した場合でも、実際にはプレーヤの技量がそれほど高くなく、ゲームの難易度が高くなってしまうことがある。逆に、プレーヤが自分の技量は低いと考えて、ロックオン機能の補助レベルを高く設定した場合、その補助が強すぎて、ゲームが予想以上に簡単になってしまう場合もある。
【００１０】
プレーヤが適切な補助レベルを設定できるようになるためには、そのプレーヤが長時間ゲームを行い、あるいは補助レベルを種々変更しながら、ゲームに慣れていく必要があるが、補助レベルと自分の技量との関係を把握できるか否かはそのプレーヤのセンスによるところもあり、ゲームの初心者には適切な設定が困難である。そして、初心者は適切な補助を得ることのないまま、ゲームを十分楽しめないことから、ゲームに対する興味を失ってしまう虞もある。
【００１１】
本発明の目的は、プレーヤのコントローラ操作に対する補助機能を備えた野球ゲームにおいて、その補助機能の補助レベルを、プレーヤの技量を判断することで、そのプレーヤにとって適切なレベルとなるよう自動設定する野球ゲームを実現することである。
【課題を解決するための手段】
【００１２】
（１）本発明の一局面によるゲーム装置は、投手キャラクタが投じたボールオブジェクトを打者キャラクタが打撃する野球ゲームを実行するゲーム装置であって、前記打者キャラクタに前記ボールオブジェクトを打撃させる位置を決定するためのミートカーソルを、表示装置の表示画面上で移動表示させるために、プレーヤにより入力される移動指令を取得する移動指令取得手段と、プレーヤにより入力される打撃指令に基づいて、前記打者キャラクタが前記ボールオブジェクトを打撃する打撃タイミングを決定する打撃タイミング決定手段と、前記ミートカーソルを前記ボールオブジェクトに補助的に近接させるミートカーソル移動補助モードが設定されている場合、前記ミートカーソル移動補助モードが設定されていない場合に比べて、前記ミートカーソルが前記ボールオブジェクトにより早く近接するように、前記ミートカーソルの移動速度を補正するカーソル移動速度補助手段と、前記カーソル移動速度補助手段により補正された移動速度及び前記移動指令に基づいて、前記ミートカーソルを表示画面上で移動表示させるカーソル移動表示手段と、前記打撃タイミングにおける前記ボールオブジェクトと前記ミートカーソルとの距離の履歴に基づいてプレーヤの技量を示す技量レベルを設定するレベル設定手段とを備え、前記カーソル移動速度補助手段は、前記技量レベルが低いほど、前記ミートカーソルの移動速度を大きく設定する。
【００１３】
また、本発明の別の一局面によるゲーム制御プログラムは、投手キャラクタが投じたボールオブジェクトを打者キャラクタが打撃する野球ゲームをコンピュータに実行させるゲーム制御プログラムであって、前記打者キャラクタに前記ボールオブジェクトを打撃させる位置を決定するためのミートカーソルを、表示装置の表示画面上で移動表示させるために、プレーヤにより入力される移動指令を取得する移動指令取得手段と、プレーヤにより入力される打撃指令に基づいて、前記打者キャラクタが前記ボールオブジェクトを打撃する打撃タイミングを決定する打撃タイミング決定手段と、前記ミートカーソルを前記ボールオブジェクトに補助的に近接させるミートカーソル移動補助モードが設定されている場合、前記ミートカーソル移動補助モードが設定されていない場合に比べて、前記ミートカーソルが前記ボールオブジェクトにより早く近接するように、前記ミートカーソルの移動速度を補正するカーソル移動速度補助手段と、前記カーソル移動速度補助手段により補正された移動速度及び前記移動指令に基づいて、前記ミートカーソルを表示画面上で移動表示させるカーソル移動表示手段と、前記打撃タイミングにおける前記ボールオブジェクトと前記ミートカーソルとの距離の履歴に基づいてプレーヤの技量を示す技量レベルを設定するレベル設定手段としてコンピュータを機能させ、前記カーソル移動速度補助手段は、前記技量レベルが低いほど、前記ミートカーソルの移動速度を大きく設定する。
【００１４】
本発明の更に別の一局面によるゲーム制御方法は、投手キャラクタが投じたボールオブジェクトを打者キャラクタが打撃する野球ゲームをゲーム装置が実行するゲーム制御方法であって、前記打者キャラクタに前記ボールオブジェクトを打撃させる位置を決定するためのミートカーソルを、表示装置の表示画面上で移動表示させるために、プレーヤにより入力される移動指令を取得する移動指令取得ステップと、プレーヤにより入力される打撃指令に基づいて、前記打者キャラクタが前記ボールオブジェクトを打撃する打撃タイミングを決定する打撃タイミング決定ステップと、前記ミートカーソルを前記ボールオブジェクトに補助的に近接させるミートカーソル移動補助モードが設定されている場合、前記ミートカーソル移動補助モードが設定されていない場合に比べて、前記ミートカーソルが前記ボールオブジェクトにより早く近接するように、前記ミートカーソルの移動速度を補正するカーソル移動速度補助ステップと、前記カーソル移動速度補助ステップにより補正された移動速度にしたがって、前記ミートカーソルを表示画面上で移動表示させるカーソル移動表示ステップと、前記打撃タイミングにおける前記ボールオブジェクトと前記ミートカーソルとの距離の履歴に基づいてプレーヤの技量を示す技量レベルを設定するレベル設定ステップとを備え、前記カーソル移動速度補助ステップは、前記技量レベルが低いほど、前記ミートカーソルの移動速度を大きく設定する。
【００１５】
本構成のポイントは、プレーヤの技量レベルをプレーヤの遊技履歴から判断し（ボールオブジェクトに対するミートカーソルの合わせ方がうまいか否か、によって判断し）、その判断に基づいて、適切な補助レベルを設定するという点である。上記各構成要件に従って説明すると、まず、ミートカーソルを表示画面上で移動表示させるためにプレーヤに入力される移動指令が取得される。また、打者キャラクタによるボールオブジェクトの打撃タイミングを決定するための打撃指令が取得される。そして、打撃タイミングにおけるボールオブジェクトとミートカーソルとの距離の履歴に基づいて、プレーヤの技量レベルが設定される。そして、技量レベルが低いほど、ミートカーソルの移動速度の補正量が大きく設定される。
【００１６】
ここで、プレーヤは技量が高くなるにつれて、打撃タイミングにおけるボールオブジェクトとミートカーソルとの距離が狭まる傾向にある（ボールオブジェクトに対してミートカーソルを重ねるのがうまい）。つまり、打撃タイミングにおけるボールオブジェクトとミートカーソルとの距離は、プレーヤの技量を反映している。そのため、プレーヤが打撃指令を入力する毎に打撃タイミングにおけるボールオブジェクトとミートカーソルとの距離の履歴を蓄積し、この距離の履歴に基づいて技量レベルを設定すれば、プレーヤの実際の技量に適した技量レベルを設定することができる。
【００１７】
そこで、上記構成では、プレーヤの技量レベルを距離の履歴に基づいて算出している。そして、技量レベルが低くなるにつれて、ミートカーソルの移動速度の補正量が大きく設定される。つまり、技量レベルが低いプレーヤほど、ゲーム装置がプレーヤを補助する度合いが大きくなる。
【００１８】
したがって、プレーヤは自身の実際の技量に応じた適切な補助をゲーム装置から受けることが可能となる。
【００１９】
（２）前記レベル設定手段は、前記ミートカーソルと前記ボールオブジェクトとの距離の履歴が所定個数蓄積される毎に、前記距離の代表値を求め、得られた代表値を基に前記技量レベルを設定することが好ましい。
【００２０】
この構成によれば、ミートカーソルとボールオブジェクトとの距離の履歴が所定個数蓄積される毎に、所定個数の履歴を用いて距離の代表値が求められ、その代表値を用いて技量レベルが設定される。そのため、距離の履歴が多少バラツキを有していても、プレーヤにとって適切な技量レベルを設定することができる。
【００２１】
（３）前記レベル設定手段は、最新の代表値より１つ前に求められた代表値から前記最新の代表値を差し引いた差分が規定値より大きい場合、前記最新の代表値を用いて前記技量レベルを設定する一方、前記差分が前記規定値より小さい場合、少なくとも前記１つ前に求められた代表値と前記最新の代表値とを用いて新たな代表値を再算出し、再算出した代表値を用いて前記技量レベルを設定することが好ましい。
【００２２】
この構成によれば、前回の代表値の算出時に比べて最新の代表値の算出時にプレーヤの技量レベルが急激に増大した場合において、プレーヤの技量レベルを適切に設定することができる。また、前回の代表値の算出時に比べて最新の代表値の算出時におけるプレーヤの技量がさほど向上していない場合、少なくとも１つ前に求められた代表値と最新の代表値とを基に技量レベルが設定される。そのため、代表値を求める際の母集団が増大し、プレーヤにとって適切な技量レベルを設定することができる。
【００２３】
（４）前記レベル設定手段は、前記差分が前記規定値より小さい場合、過去に算出された差分のうち前記規定値以上となった最新の差分を特定し、特定した最新の差分を算出する際に使用された新しい方の代表値から最新の代表値までの各代表値の平均値を前記再算出する代表値として算出し、この代表値を用いて前記技量レベルを設定することが好ましい。
【００２４】
この構成によれば、例えば、規定値が３であり、代表値が１２，１１，１０，７，６，５，４と減っていった場合、７，６，５，４を用いて代表値を再算出されることになる。そのため、前回、技量レベルが急激に上昇した場合、それ以降の代表値を用いて代表値が再算出され、その再算出された代表値を用いて技量レベルが決定されることになる。その結果、現状のプレーヤのレベルがより適切に反映されるようにプレーヤの技量レベルを設定することができる。
【００２５】
（５）前記所定個数は、１試合あたりの前記打撃指令の平均入力回数に基づいて予め定められた値であることが好ましい。
【００２６】
この構成によれば、プレーヤが野球ゲームをおよそ１試合する毎に代表値が求められることになる。
【００２７】
（６）プレーヤからの操作指令に基づいて、前記野球ゲームをプレーヤ育成モードで進行させるモード設定手段を更に備え、前記カーソル移動速度補助手段は、前記プレーヤ育成モードが設定されている場合、前記技量レベル設定手段により設定された技量レベルよりも上の技量レベルにおける前記ミートカーソルの移動速度の補正量で前記ミートカーソルの移動速度を補正することが好ましい。
【００２８】
この構成によれば、プレーヤ育成モードが設定されると、設定された技量レベルよりも上の技量レベルにおける補正量でミートカーソルの移動速度が補正される。つまり、ミートカーソルの移動速度がプレーヤの技量レベルに対応する移動速度よりも遅く設定されることになる。したがって、ゲームの難易度がプレーヤの実際の技量レベルに対応する難易度よりもあえて高く設定されていることから、プレーヤの技量の上達スピードを早めることができる。
【００２９】
（７）前記ミートカーソルの現在位置から前記ボールオブジェクトの現在位置までを結ぶベクトルと、前記移動指令による前記ミートカーソルの移動方向を示すベクトルとのベクトル和の方向を前記ミートカーソルの補正後の移動方向として設定するカーソル移動方向補助手段を更に備え、前記カーソル移動表示手段は、前記カーソル移動方向補助手段により設定された補正後の移動方向に前記ミートカーソルを移動させることが好ましい。
【００３０】
この構成によれば、プレーヤが入力した移動指令が示すミートカーソルの方向が考慮されて、ミートカーソルの移動方向が決定されるため、移動指令を無視してミートカーソルの移動方向を決定する場合に比べて、プレーヤの技量を向上させることができる。
【発明の効果】
【００３１】
本発明によれば、プレーヤは自身の実際の技量に応じた適切な補助をゲーム装置から受けることが可能となる。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施の形態のゲーム装置の構成を示すブロック図である。
【図２】図１に示すゲーム装置の主要機能ブロック図である。
【図３】本実施の形態によるゲーム装置が実行する野球ゲームの概要を説明するための画面図である。
【図４】本発明の実施の形態によるゲーム装置により野球ゲームが展開される仮想３次元空間を示した図である。
【図５】ミートカーソルの補正処理を示す模式図である。
【図６】履歴取得部が距離を求める際の処理を示した図である。
【図７】履歴テーブルのデータ構造の一例を示した図である。
【図８】技量レベル決定テーブルのデータ構造の一例を示した図である。
【図９】レベル設定部の処理を説明するための図である。
【図１０】図４に示す仮想３次元空間をｘ軸方向から見たときの図である。
【図１１】（Ａ）〜（Ｃ）は、打撃されたボールオブジェクトの初速度の算出処理を示した図である。
【図１２】本発明の実施の形態によるゲーム装置がボールオブジェクトを移動させる際の処理を示したフローチャートである。
【図１３】本発明の実施の形態によるゲーム装置がプレーヤの技量レベルを設定する際に実行する処理を示すフローチャートである。
【図１４】、技量レベルをプレーヤに報知するための画面図を示している。
【発明を実施するための形態】
【００３３】
以下、本発明の一実施の形態によるゲーム装置について図面を参照しながら説明する。図１は、本発明の一実施の形態のゲーム装置の構成を示すブロック図である。なお、以下の説明では、ゲーム装置の一例として家庭用ビデオゲーム機を家庭用テレビジョンに接続することによって構成される家庭用ビデオゲーム装置について説明するが、本発明はこの例に特に限定されず、モニタが一体に構成された携帯用のゲーム装置若しくは携帯電話、又は本発明によるゲーム制御プログラムを実行することによってゲーム装置として機能するパーソナルコンピュータ等にも同様に適用することができる。
【００３４】
図１に示すゲーム装置は家庭用ゲーム機１００及びテレビジョン２００を備える。家庭用ゲーム機１００には、ゲームプログラムが記録されたコンピュータ読み出し可能な記録媒体３００が装填され、ゲームプログラムが適宜読み出されてゲームが実行される。
【００３５】
家庭用ゲーム機１００は、ＣＰＵ（Central Processing Unit）１、バスライン２、グラフィックスデータ生成プロセッサ３、インターフェース回路（Ｉ／Ｆ）４、メインメモリ５、ＲＯＭ（Read Only Memory）６、伸張回路７、パラレルポート８、シリアルポート９、描画プロセッサ１０、音声プロセッサ１１、デコーダ１２、インターフェース回路（Ｉ／Ｆ）１３、バッファ１４〜１６、記録媒体ドライブ１７、メモリ１８、及びコントローラ１９を含む。テレビジョン２００はテレビジョンモニタ２１、増幅回路２２及びスピーカ２３を含む。
【００３６】
ＣＰＵ１はバスライン２およびグラフィックスデータ生成プロセッサ３に接続されている。バスライン２はアドレスバス、データバス及びコントロールバス等を含み、ＣＰＵ１、インターフェース回路４、メインメモリ５、ＲＯＭ６、伸張回路７、パラレルポート８、シリアルポート９、描画プロセッサ１０、音声プロセッサ１１、デコーダ１２及びインターフェース回路１３を相互に接続している。
【００３７】
描画プロセッサ１０はバッファ１４に接続される。音声プロセッサ１１はバッファ１５及び増幅回路２２に接続される。デコーダ１２はバッファ１６及び記録媒体ドライブ１７に接続される。インターフェース回路１３はメモリ１８及びコントローラ１９に接続される。
【００３８】
テレビジョン２００のテレビジョンモニタ２１は描画プロセッサ１０に接続される。スピーカ２３は増幅回路２２に接続される。
【００３９】
また、ゲーム装置がパーソナルコンピュータやワークステーション等を核として構成されている場合、テレビジョンモニタ２１等はコンピュータ用のディスプレイに対応する。また、伸張回路７、描画プロセッサ１０、及び音声プロセッサ１１等は、それぞれ記録媒体３００に記録されているゲーム制御プログラムのデータの一部又はコンピュータの拡張スロットに搭載される拡張ボード上のハードウエアに対応する。また、インターフェース回路４、パラレルポート８、シリアルポート９、及びインターフェース回路１３は、コンピュータの拡張スロットに搭載される拡張ボード上のハードウエアに対応する。また、バッファ１４〜１６はそれぞれメインメモリ５又は拡張メモリの各記憶エリアに対応する。
【００４０】
次に、図１に示す各構成要素について説明する。グラフィックスデータ生成プロセッサ３はＣＰＵ１のいわばコプロセッサとしての役割を果たす。すなわち、グラフィックスデータ生成プロセッサ３は座標変換や光源計算、例えば固定小数点形式の行列やベクトルの演算を並列処理によって行う。
【００４１】
グラフィックスデータ生成プロセッサ３が行う主な処理としては、ＣＰＵ１から供給される画像データの２次元又は３次元空間内における各頂点の座標データ、移動量データ、及び回転量データ等に基づいて、所定の表示エリア上における処理対象画像のアドレスデータを求めてＣＰＵ１に返す処理、仮想的に設定された光源からの距離に応じて画像の輝度を計算する処理等がある。
【００４２】
インターフェース回路４は周辺デバイス、例えばマウスやトラックボール等のポインティングデバイス等のインターフェース用に用いられる。メインメモリ５はＲＡＭ（Random Access Memory）等で構成される。ＲＯＭ６にはゲーム装置のオペレーティングシステムとなるプログラムデータが記憶されている。
【００４３】
伸張回路７は動画に対するＭＰＥＧ(Moving Picture Experts Group)規格や静止画に対するＪＰＥＧ(Joint Photographic Experts Group)規格に準拠したイントラ符号化によって圧縮された圧縮画像に対して伸張処理を施す。伸張処理はデコード処理(VLC：Variable Length Codeによってエンコードされたデータのデコード)、逆量子化処理、ＩＤＣＴ(Inverse Discrete Cosine Transform)処理、イントラ画像の復元処理等を含む。
【００４４】
描画プロセッサ１０は所定時間Ｔ（例えば、１フレームでＴ＝1／60秒）ごとにＣＰＵ１が発行する描画命令に基づいてバッファ１４に対する描画処理を行う。
【００４５】
バッファ１４は例えばＲＡＭで構成され、表示エリア(フレームバッファ)と非表示エリアとに分けられる。表示エリアはテレビジョンモニタ２１の表示面上に表示する画像データの展開エリアで構成される。非表示エリアはスケルトンを定義するデータ、ポリゴンを定義するモデルデータ、モデルに動きを行わせるアニメーションデータ、各アニメーションの内容を示すパターンデータ、テクスチャデータ及びカラーパレットデータ等の記憶エリアで構成される。
【００４６】
ここで、テクスチャデータは２次元の画像データである。カラーパレットデータはテクスチャデータ等の色を指定するためのデータである。記録媒体３００から一度に又はゲームの進行状況に応じて複数回に分けて、ＣＰＵ１はこれらのデータを予めバッファ１４の非表示エリアに記録する。
【００４７】
また、描画命令としては、ポリゴンを用いて立体的な画像を描画するための描画命令、通常の２次元画像を描画するための描画命令がある。ここで、ポリゴンは多角形の２次元仮想図形であり、例えば、三角形や四角形が用いられる。
【００４８】
ポリゴンを用いて立体的な画像を描画するための描画命令は、ポリゴン頂点座標データのバッファ１４の表示エリア上における記憶位置を示すポリゴン頂点アドレスデータ、ポリゴンに貼り付けるテクスチャのバッファ１４上における記憶位置を示すテクスチャアドレスデータ、テクスチャの色を示すカラーパレットデータのバッファ１４上における記憶位置を示すカラーパレットアドレスデータ及びテクスチャの輝度を示す輝度データのそれぞれに対して行われるものである。
【００４９】
上記のデータのうち表示エリア上のポリゴン頂点アドレスデータは、グラフィックスデータ生成プロセッサ３がＣＰＵ１からの３次元空間上におけるポリゴン頂点座標データを移動量データ及び回転量データに基づいて座標変換することによって２次元上でのポリゴン頂点座標データに置換されたものである。輝度データはＣＰＵ１からの上記座標変換後のポリゴン頂点座標データによって示される位置から仮想的に配置された光源までの距離に基づいてグラフィックスデータ生成プロセッサ３によって決定される。
【００５０】
ポリゴン頂点アドレスデータはバッファ１４の表示エリア上のアドレスを示す。描画プロセッサ１０は３個のポリゴン頂点アドレスデータで示されるバッファ１４の表示エリアの範囲に対応するテクスチャデータを書き込む処理を行う。
【００５１】
ゲーム空間内におけるキャラクタ等の物体は、複数のポリゴンで構成される。ＣＰＵ１は各ポリゴンの３次元空間上の座標データを対応するスケルトンのベクトルデータと関連させてバッファ１４に記憶する。そして、後述するコントローラ１９の操作によって、テレビジョンモニタ２１の表示画面上でキャラクタを移動させる等の場合において、キャラクタの動きを表現したり、キャラクタを見ている視点位置を変えたりするときに、以下の処理が行われる。
【００５２】
すなわち、ＣＰＵ１はグラフィックスデータ生成プロセッサ３に対してバッファ１４の非表示エリア内に保持している各ポリゴンの頂点の３次元座標データと、スケルトンの座標及びその回転量のデータから求められた各ポリゴンの移動量データ及び回転量データとを与える。
【００５３】
グラフィックスデータ生成プロセッサ３は各ポリゴンの頂点の３次元座標データと各ポリゴンの移動量データ及び回転量データとに基づいて各ポリゴンの移動後及び回転後の３次元座標データを順次求める。
【００５４】
このようにして求められた各ポリゴンの３次元座標データのうち水平及び垂直方向の座標データは、バッファ１４の表示エリア上のアドレスデータ、すなわちポリゴン頂点アドレスデータとして描画プロセッサ１０に供給される。
【００５５】
描画プロセッサ１０は３個のポリゴン頂点アドレスデータによって示されるバッファ１４の表示エリア上に予め割り当てられているテクスチャアドレスデータによって示されるテクスチャデータを書き込む。これによって、テレビジョンモニタ２１の表示画面上には、多数のポリゴンにテクスチャの貼り付けられた物体が表示される。
【００５６】
通常の２次元画像を描画するための描画命令は、頂点アドレスデータ、テクスチャアドレスデータ、テクスチャデータの色を示すカラーパレットデータのバッファ１４上における記憶位置を示すカラーパレットアドレスデータ及びテクスチャの輝度を示す輝度データに対して行われる。これらのデータのうち頂点アドレスデータは、ＣＰＵ１からの２次元平面上における頂点座標データをＣＰＵ１からの移動量データ及び回転量データに基づいてグラフィックスデータ生成プロセッサ３が座標変換することによって得られる。
【００５７】
音声プロセッサ１１は記録媒体３００から読み出されたＡＤＰＣＭ（Adaptive Differential Pulse Code Modulation）データをバッファ１５に記憶させ、バッファ１５に記憶されたＡＤＰＣＭデータが音源となる。
【００５８】
また、音声プロセッサ１１は、例えば、周波数４４．１ｋＨｚのクロック信号に基づき、バッファ１５からＡＤＰＣＭデータを読み出す。音声プロセッサ１１は、読み出したＡＤＰＣＭデータに対してピッチの変換、ノイズの付加、エンベロープの設定、レベルの設定及びリバーブの付加等の処理を施す。
【００５９】
記録媒体３００から読み出される音声データがＣＤ−ＤＡ(Compact Disk Digital Audio)等のＰＣＭ（Pulse Code Modulation）データの場合、音声プロセッサ１１はこの音声データをＡＤＰＣＭデータに変換する。また、ＰＣＭデータに対するプログラムによる処理は、メインメモリ５上において直接行われる。メインメモリ５上において処理されたＰＣＭデータは、音声プロセッサ１１に供給されてＡＤＰＣＭデータに変換される。その後、上述した各種処理が施され、音声がスピーカ２３から出力される。
【００６０】
記録媒体ドライブ１７としては、例えば、ＤＶＤ−ＲＯＭドライブ、ＣＤ−ＲＯＭドライブ、ハードディスクドライブ、光ディスクドライブ、フレキシブルディスクドライブ、シリコンディスクドライブ、カセット媒体読み取り機等が用いられる。この場合、記録媒体３００としては、ＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ、ハードディスク、光ディスク、フレキシブルディスク、半導体メモリ等が用いられる。
【００６１】
記録媒体ドライブ１７は記録媒体３００から画像データ、音声データ及びプログラムデータを読み出し、読み出したデータをデコーダ１２に供給する。デコーダ１２は記録媒体ドライブ１７からの再生したデータに対してＥＣＣ(Error Correction Code)によるエラー訂正処理を施し、エラー訂正処理を施したデータをメインメモリ５又は音声プロセッサ１１に供給する。
【００６２】
メモリ１８としては、例えばカード型のメモリが用いられる。カード型のメモリは、例えばゲームを中断した場合において中断時点での状態を保持する等のように、中断時点での各種ゲームパラメータを保持するため等に用いられる。
【００６３】
コントローラ１９は操作者であるプレーヤが種々の操作指令を入力するために使用する操作装置であり、プレーヤの操作に応じた操作信号をＣＰＵ１に送出する。コントローラ１９には、第１ボタン１９ａ、第２ボタン１９ｂ、第３ボタン１９ｃ、第４ボタン１９ｄ、上方向キー１９Ｕ、下方向キー１９Ｄ、左方向キー１９Ｌ、右方向キー１９Ｒ、Ｌ１ボタン１９Ｌ１、Ｌ２ボタン１９Ｌ２、Ｒ１ボタン１９Ｒ１、Ｒ２ボタン１９Ｒ２、スタートボタン１９ｅ、セレクトボタン１９ｆ、左スティック１９ＳＬ及び右スティック１９ＳＲが設けられている。
【００６４】
上方向キー１９Ｕ、下方向キー１９Ｄ、左方向キー１９Ｌ及び右方向キー１９Ｒは、例えば、キャラクタやカーソルをテレビジョンモニタ２１の画面上で上下左右に移動させるコマンドをＣＰＵ１に与えるために使用される。
【００６５】
スタートボタン１９ｅは記録媒体３００からゲームプログラムをロードするようにＣＰＵ１に指示するため等に使用される。セレクトボタン１９ｆは記録媒体３００からメインメモリ５にロードされるゲームプログラムに関する各種選択をＣＰＵ１に指示するため等に使用される。
【００６６】
左スティック１９ＳＬ及び右スティック１９ＳＲを除くコントローラ１９の各ボタン及び各キーは、外部からの押圧力によって中立位置から押圧されるとオンになり、押圧力が解除されると上記中立位置に復帰してオフになるオンオフスイッチで構成される。
【００６７】
左スティック１９ＳＬ及び右スティック１９ＳＲは、いわゆるジョイスティックとほぼ同一構成のスティック型コントローラである。このスティック型コントローラは直立したスティックを有し、このスティックの所定位置を支点として前後左右を含む３６０°方向に亘って傾倒可能な構成になっている。左スティック１９ＳＬ及び右スティック１９ＳＲは、スティックの傾倒方向及び傾倒角度に応じて、直立位置を原点とする左右方向のｘ座標及び前後方向のｙ座標の値を操作信号としてインターフェース回路１３を介してＣＰＵ１に送出する。
【００６８】
なお、第１ボタン１９ａ、第２ボタン１９ｂ、第３ボタン１９ｃ、第４ボタン１９ｄ、Ｌ１ボタン１９Ｌ１、Ｌ２ボタン１９Ｌ２、Ｒ１ボタン１９Ｒ１及びＲ２ボタン１９Ｒ２は、記録媒体３００からロードされるゲーム制御プログラムに応じて種々の機能に使用される。
【００６９】
次に、上記のゲーム装置の概略動作について説明する。記録媒体３００が記録媒体ドライブ１７に装填されている場合、電源スイッチ（図示省略）がオンされてゲーム装置に電源が投入されると、ＲＯＭ６に記憶されているオペレーティングシステムに基づいて、記録媒体３００からゲームプログラムを読み出すように、ＣＰＵ１は記録媒体ドライブ１７に指示する。これによって、記録媒体ドライブ１７は記録媒体３００から画像データ、音声データ及びプログラムデータを読み出す。読み出された画像データ、音声データ及びプログラムデータはデコーダ１２に供給され、デコーダ１２によってエラー訂正処理が各データに施される。
【００７０】
デコーダ１２によってエラー訂正処理が施された画像データは、バスライン２を介して伸張回路７に供給される。伸張回路７によって上述した伸張処理が行われた画像データは描画プロセッサ１０に供給され、描画プロセッサ１０によってバッファ１４の非表示エリアに書き込まれる。デコーダ１２によってエラー訂正処理が施された音声データは、メインメモリ５又は音声プロセッサ１１を介してバッファ１５に書き込まれる。デコーダ１２によってエラー訂正処理が施されたプログラムデータはメインメモリ５に書き込まれる。
【００７１】
以降、ＣＰＵ１は、メインメモリ５に記憶されているゲーム制御プログラム及びプレーヤがコントローラ１９を用いて指示する内容に基づいてゲームを進行させる。すなわち、プレーヤがコントローラ１９を用いて指示する内容に基づいて、ＣＰＵ１は画像処理の制御、音声処理の制御及び内部処理の制御等を適宜行う。
【００７２】
画像処理の制御として、例えば、キャラクタに指示されるアニメーションに該当するパターンデータから各スケルトンの座標の計算又はポリゴンの頂点座標データの計算、得られた３次元座標データや視点位置データのグラフィックスデータ生成プロセッサ３への供給、グラフィックスデータ生成プロセッサ３が求めたバッファ１４の表示エリア上のアドレスデータや輝度データを含む描画命令の発行等が行われる。
【００７３】
音声処理の制御として、例えば、音声プロセッサ１１に対する音声出力コマンドの発行、レベル、リバーブ等の指定が行われる。内部処理の制御として、例えばコントローラ１９の操作に応じた演算等が行われる。
【００７４】
次に、記録媒体３００に記録されているゲームプログラムに基づいて実行されるゲームについて説明する。本実施の形態におけるゲームは、野球ゲームを題材としたものである。
【００７５】
図３は、本実施の形態によるゲーム装置が実行する野球ゲームの概要を説明するための画面図である。この野球ゲームは、仮想３次元空間であるゲーム空間内において、投手キャラクタＣＬ２が投じたボールオブジェクトＢＬを打者キャラクタＣＬ１が打撃するものである。具体的には、図３に示すように、この野球ゲームは、投手キャラクタＣＬ２がボールオブジェクトＢＬを投げ、打者キャラクタＣＬ１がボールオブジェクトＢＬをバットオブジェクトＢＴにより打ち返す野球ゲームである。
【００７６】
この野球ゲームでは、プレーヤは、攻撃側である場合、コントローラ１９を操作して、ストライクゾーンＳＺを示す外枠ＷＫ内に表示されたミートカーソルＫを表示画面上で移動させ、ボールオブジェクトＢＬがホームベース付近に到達したときに、ボールオブジェクトＢＬにミートカーソルＫを位置決めさせ、打撃指令を入力する。そうすると、バットオブジェクトＢＴがスイング表示されて、ボールオブジェクトＢＬが打ち返される。
【００７７】
次に、上記のように構成されたゲーム装置を用いて野球ゲームを行う場合のゲーム装置の主要な機能について説明する。図２は、図１に示すゲーム装置の主要機能ブロック図である。
【００７８】
図２に示すようにゲーム装置は、機能的には、操作部４１０、表示部４２０、プログラム実行部４３０、データ記憶部４５０、及びプログラム記憶部４６０を含む。
【００７９】
操作部４１０は、コントローラ１９等から構成され、プレーヤによりゲームを進行する上で必要となる種々の入力を受け付ける。本実施の形態では、プレーヤが攻撃側であり、ゲーム装置が守備側にある場合は、操作部４１０は、打者キャラクタにボールオブジェクトを打撃させる位置を決定するためのミートカーソルを表示部４２０の表示画面上で移動させるための移動指令が入力される。そして、操作部４１０は、入力された移動指令を示す移動指令信号をプログラム実行部４３０に出力する。
【００８０】
また、操作部４１０は、ボールオブジェクトの打撃タイミングを決定するための打撃指令が入力される。そして、操作部４１０は、入力された打撃指令を示す打撃指令信号をプログラム実行部４３０に出力する。
【００８１】
ここで、プレーヤは、例えば左スティック１９ＳＬ、又は右スティック１９ＳＲを傾倒させることで移動指令を入力する。また、操作部４１０が出力する移動指令信号には、左スティック１９ＳＬ又は右スティック１９ＳＲが傾倒された方向を示す情報が含まれる。この傾倒された方向を示す情報としては、例えば、左スティック１９ＳＬ又は右スティック１９ＳＲの立設面において、左スティック１９ＳＬ又は右スティック１９ＳＲの前後の傾倒方向を基準方向とし、この基準方向と左スティック１９ＳＬ又は右スティック１９ＳＲが傾倒された方向との時計回りの角度を採用することができる。
【００８２】
また、プレーヤは、例えば第１〜第４ボタン１９ａ〜１９ｄのいずれかを押下することで打撃指令を入力する。
【００８３】
また、プレーヤが守備側であり、ゲーム装置が攻撃側にある場合は、操作部４１０は、投手キャラクタに投球動作を開始させるための投球開始指令及びボールオブジェクトのコースを設定するためのコース設定指令を受け付ける。
【００８４】
表示部４２０は、図１に示すテレビジョン２００により構成され、プログラム実行部４３０の制御の基、種々の画像を表示する。
【００８５】
プログラム実行部４３０は、図１に示すＣＰＵ１及びグラフィックスデータ生成プロセッサ３等から構成され、ゲーム進行制御部４３１、移動指令取得部４３２（移動指令取得手段の一例）、打撃タイミング決定部４３３（打撃タイミング決定手段の一例）、カーソル移動速度補助部４３４（カーソル移動速度補助手段の一例）、カーソル移動方向補助部４３５（カーソル移動方向補助手段の一例）、カーソル移動表示部４３６（カーソル移動表示手段の一例）、履歴取得部４３７、レベル設定部４３８（レベル設定手段の一例）、モード設定部４３９（モード設定手段の一例）、打撃判定部４４０、及び打撃パワー設定部４４１を備えている。
【００８６】
ゲーム進行制御部４３１は、本野球ゲームを進行させるためのものである。具体的には、ゲーム進行制御部４３１は、プレーヤが攻撃側の場合は、所定のタイミングになると、表示部４２０に表示された投手キャラクタに投球動作を行わせ、ボールオブジェクトの弾道を設定し、設定した弾道にしたがってボールオブジェクトを表示部４２０に移動表示させる。
【００８７】
また、ゲーム進行制御部４３１は、プレーヤが守備側の場合は、操作部４１０にプレーヤからの投球開始指令が入力されると、表示部４２０に表示された投手キャラクタに投球動作を行わせ、プレーヤに入力されたコース設定指令にしたがってボールオブジェクトの弾道を設定し、設定した弾道にしたがってボールオブジェクトを表示部４２０に移動表示させる。
【００８８】
図４は、本発明の実施の形態によるゲーム装置により野球ゲームが展開される仮想３次元空間を示した図である。なお、図４に示すｚは仮想３次元空間内におけるピッチャーマウンドの中心Ｏ２とホームベースＨＢの中心Ｏ３とを結ぶ直線Ｌ３と平行な方向を示し、ボールオブジェクトＢＬの進行方向を示している。また、ｙは鉛直方向を示し、ｘは鉛直方向と進行方向と直交する方向を示している。ここで、ｘ−ｚ平面は地表面ＥＳと平行であり、ｘ座標及びｚ座標は地表面ＥＳの各位置を規定する。また、鉛直方向は地表面ＥＳに直交する方向である。本実施の形態では、ｙは地表面ＥＳから離れるにつれて増大する。また、ｚはピッチャーマウンドの中心Ｏ２からホームベースＨＢの中心Ｏ３に向かうにつれて増大する。また、ｘは、例えば＋ｚ方向に見て、左側が＋、右側が−である。また、ｘ，ｙ，ｚ軸の原点は中心Ｏ２にあるものとする。
【００８９】
ストライクゾーンＳＺは、例えば、中心Ｏ３を通り、かつ、ｘ−ｙ平面と平行な平面である打撃面ＳＦ上に設定され、外枠ＷＫで囲まれた四角形状の領域であり、実際の野球のストライクゾーンに基づいて仮想３次元空間（ゲーム空間）内に設定されている。
【００９０】
ストライクゾーンＳＺの中心ＯＳは、中心Ｏ３から＋ｙ方向に所定距離離れて位置しており、ストライクゾーンのど真ん中に対応している。
【００９１】
ミートカーソルＫは、操作部４１０に入力された移動指令に従って、打撃面ＳＦ上を移動する。打撃面ＳＦのサイズとしては、ストライクゾーンＳＺのサイズよりも多少大きなサイズを採用することができる。地表面ＥＳには、図３に示す投手キャラクタＣＬ２、打者キャラクタＣＬ１が配置されている。また、ホームベースＨＢから＋ｚ側には、捕手キャラクタと、審判キャラクタとが配置されている。
【００９２】
そして、投手キャラクタＣＬ２が右投げであれば、例えば中心Ｏ２からｙ方向にＨ（Ｏ）離れた点ＳＰ´から−ｘ方向に距離ｄＬ離間した点ＳＰが、投手キャラクタＣＬ２によるボールオブジェクトＢＬのリリースポイントとなる。
【００９３】
移動指令取得部４３２は、操作部４１０から出力される移動指令信号を受信することで、ミートカーソルの移動指令を取得する。また、移動指令取得部４３２は、操作部４１０から出力される打撃指令信号を受信することで、打撃指令を取得する。
【００９４】
打撃タイミング決定部４３３は、プレーヤにより入力される打撃指令に基づいて、打者キャラクタがボールオブジェクトを打撃する打撃タイミングを決定する。ここで、打撃タイミング決定部４３３は、操作部４１０から出力された打撃指令信号の受信時刻を基点として打者キャラクタによりスイングが開始されるバットオブジェクトが、仮想３次元空間内に設定された打撃面に到達するまでに要する所定時間が経過した時刻を打撃タイミングとして決定する。
【００９５】
カーソル移動速度補助部４３４は、モード設定部４３９において、ミートカーソルをボールオブジェクトに補助的に近接させるミートカーソル移動補助モードが設定されている場合、下記の動作を行う。
【００９６】
すなわち、カーソル移動速度補助部４３４は、ミートカーソル移動補助モードが設定されている場合、ミートカーソル移動補助モードが設定されていない場合に比べて、ミートカーソルがボールオブジェクトにより早く近接するように、ミートカーソルの移動速度を補正する。この場合、カーソル移動速度補助部４３４は、レベル設定部４３８において設定された技量レベルが低いほど、ミートカーソルの移動速度を大きく設定する。
【００９７】
なお、ミートカーソル移動補助モードが設定されていない場合のミートカーソルの移動速度を「デフォルト移動速度」と記述する。
【００９８】
そして、カーソル移動速度補助部４３４は、レベル設定部４３８が設定する各技量レベルと、各技量レベルに対応する移動速度の補正量とを予め定めている。ここで、技量レベルと移動速度の補正量との関係は、技量レベルが低下するにつれて移動速度の補正量が増大する、言い換えれば、技量レベルが増大するにつれて移動速度の補正量が低下する関係を有している。そして、カーソル移動速度補助部４３４は、レベル設定部４３８においてプレーヤの技量レベルが設定されると、その技量レベルに対応するミートカーソルの移動速度の補正量を、デフォルト移動速度に加算することでミートカーソルの移動速度を補正し、補正後の移動速度をミートカーソルの移動速度として設定する。
【００９９】
一方、カーソル移動速度補助部４３４は、モード設定部４３９において、ミートカーソル移動補助モードが設定されていない場合、ミートカーソルの移動速度をデフォルト移動速度に設定する。
【０１００】
カーソル移動方向補助部４３５は、ミートカーソルＫの現在位置からボールオブジェクトの現在位置までを結ぶベクトルと、移動指令によるミートカーソルの移動方向を示すベクトルとのベクトル和の方向をミートカーソルの補正後の移動方向として設定する。
【０１０１】
図５は、ミートカーソルの補正処理を示す模式図である。図５に示すように、カーソル移動方向補助部４３５は、ミートカーソルＫの中心Ｏ１（Ｘｋ，Ｙｋ，Ｚｋ）から、ボールオブジェクトＢＬの重心Ｇ１（Ｘｇ，Ｙｇ，Ｚｇ）の打撃面への投影位置Ｇ１´（Ｘｇ，Ｙｇ，Ｚｋ）までを結ぶ２次元のベクトルであるベクトルＶＣ１を求める。つまり、ＶＣ１＝（Ｘｇ−Ｘｋ，Ｙｇ−Ｙｋ）で表されるベクトルを求める。
【０１０２】
次に、カーソル移動方向補助部４３５は、移動指令取得部４３２において取得された現在のミートカーソルＫの移動指令が示す移動方向のベクトルＶＣ２を求める。ここで、ベクトルＶＣ２は、２次元のベクトルである。また、ベクトルＶＣ２の向きは、移動指令取得部４３２が取得した移動指令信号が示す角度をθとすると、ｙ軸を時計回りにθ回転させた方向を向いている。また、ベクトルＶＣ２の長さとしては、ベクトルＶＣ１の平均的な長さに比べて大差のない予め定められた一定の長さを採用することができる。
【０１０３】
次に、カーソル移動方向補助部４３５は、ベクトルＶＣ１とベクトルＶＣ２とのベクトル和であるベクトルＶＣ３を求める。このベクトルＶＣ３の向きがミートカーソルＫの移動方向となる。そして、ミートカーソルＫは、技量レベルにしたがって補正された移動速度で移動方向に向けて移動表示される。
【０１０４】
なお、カーソル移動方向補助部４３５は、レベル設定部４３８において設定された技量レベルが低くなるにつれてベクトルＶＣ２の長さが短くなるように、技量レベルに応じてベクトルＶＣ２の長さを変動させてもよい。こうすれば、プレーヤの技量が低くなるにつれて、ベクトルＶＣ３におけるベクトルＶＣ１の比重がベクトルＶＣ２よりも高くなる。その結果、プレーヤは、ミートカーソルＫの移動方向についても、技量レベルが低くなるにつれてゲーム装置側から多くの補助が受けられることになる。
【０１０５】
また、カーソル移動方向補助部４３５は、操作部４１０から移動指令信号の出力が開始されたときにベクトルＶＣ３を算出して移動方向を補正し、以後、移動指令信号の出力が停止されるまで一定の時間間隔（例えばフレーム周期）でベクトルＶＣ３を算出して移動方向を補正する。
【０１０６】
そして、カーソル移動方向補助部４３５は、ボールオブジェクトＢＬの重心Ｇ１の打撃面への投影位置Ｇ１´（Ｘｇ，Ｙｇ，Ｚｋ）と、ミートカーソルＫの中心Ｏ１（Ｘｋ，Ｙｋ，Ｚｋ）とが一致すると、以後、ミートカーソルＫをボールオブジェクトＢＬの移動に追従させるべく、移動方向を補正する処理を終了する。また、このとき、カーソル移動速度補助部４３４も、ミートカーソルＫをボールオブジェクトＢＬの移動に追従させるべく、ミートカーソルＫの移動速度の設定を解除する。
【０１０７】
図２に戻り、カーソル移動表示部４３６は、カーソル移動速度補助部４３４により補正された移動速度及びカーソル移動方向補助部４３５により補正された移動方向に基づいて、ミートカーソルＫを表示部４２０の表示画面上で移動表示させる。
【０１０８】
具体的には、カーソル移動表示部４３６は、操作部４１０から移動指令信号の出力が開始されると、そのときカーソル移動方向補助部４３５で補正された移動方向に向けてミートカーソルＫを、カーソル移動速度補助部４３４により補正された移動速度で移動表示させる。以後、カーソル移動表示部４３６は、カーソル移動方向補助部４３５においてミートカーソルの移動方向が設定される毎に、ミートカーソルＫの移動方向を切り替える。そして、カーソル移動表示部４３６は、操作部４１０から移動指令信号の出力が停止されると、ミートカーソルＫの移動を停止させ、その位置においてミートカーソルＫを停止表示させる。
【０１０９】
また、カーソル移動表示部４３６は、ボールオブジェクトＢＬの重心Ｇ１の打撃面ＳＦへの投影位置Ｇ１´（Ｘｇ，Ｙｇ，Ｚｋ）とミートカーソルＫの中心Ｏ１（Ｘｋ，Ｙｋ，Ｚｋ）とが一致すると、ミートカーソルＫのＸ座標及びＹ座標の値をボールオブジェクトＢＬのＸ座標及びＹ座標の値と同じ値に設定し、ミートカーソルＫがボールオブジェクトＢＬに追従して移動するように、ミートカーソルＫを移動表示する。つまり、カーソル移動表示部４３６は、投影位置Ｇ１´と中心Ｏ１とが一致すると、以後、ミートカーソルＫをボールオブジェクトＢＬにロックオンさせるのである。
【０１１０】
履歴取得部４３７は、打撃タイミング決定部４３３において打撃タイミングが決定される毎に打撃タイミングの決定時刻におけるミートカーソルＫとボールオブジェクトＢＬとの距離を求め、この距離を履歴として履歴記憶部４５１に記憶させる。
【０１１１】
図６は、履歴取得部４３７が距離を求める際の処理を示した図である。図６に示すように、履歴取得部４３７は、操作部４１０から打撃指令信号が出力され打撃タイミング決定部４３３により打撃タイミングが決定されると、打撃タイミングの決定時におけるボールオブジェクトＢＬの重心Ｇ１（Ｘｇ，Ｙｇ，Ｚｇ）を打撃面ＳＦに投影し、投影位置Ｇ１´（Ｘｇ，Ｙｇ，Ｚｋ）を求める。次に、打撃タイミングの決定時におけるミートカーソルＫの中心Ｏ１（Ｘｋ，Ｙｋ，Ｚｋ）と投影位置Ｇ１´（Ｘｇ，Ｙｇ，Ｚｋ）との距離Ｄｋを求める。ここで、距離Ｄｋは、例えばＤｋ＝（（Ｘｇ−Ｘｋ）２＋（Ｙｇ−Ｙｋ）２）１／２のユークリッドで表される。
【０１１２】
そして、履歴取得部４３７は、算出した距離Ｄｋを、その距離Ｄｋが何回目に算出されたものであるかを示す数値と対応づけて履歴記憶部４５１に記憶された履歴テーブルに書き込む。図７は、履歴記憶部４５１に記憶された履歴テーブルのデータ構造の一例を示した図である。図７に示すように履歴テーブルは回数と距離との欄を備えている。回数の欄には、距離Ｄｋが何回目に算出されたかものであるかを示す数値が格納されている。距離の欄には、打撃タイミングが決定される毎に算出される距離Ｄｋが格納されている。
【０１１３】
ここで、履歴取得部４３７は、距離Ｄｋが算出される毎に１カウントアップされる回数カウンタを用いて、距離Ｄｋの算出回数を決定すればよい。
【０１１４】
なお、回数カウンタは、プレーヤがゲーム制御プログラムの格納された記録媒体３００を購入し、ゲームを開始してからの通算の回数をカウントする。つまり、回数カウンタのカウント値は、ゲーム装置がオフされても保存される。
【０１１５】
また、ゲーム装置が複数のプレーヤにより使用される場合は、プレーヤ毎に回数カウンタを用意し、かつ、プレーヤ毎の履歴テーブルを作成すればよい。この場合、履歴取得部４３７は、ゲーム装置の電源が投入され、ゲームが開始される時にプレーヤに自身のユーザ名を入力させ、入力されたユーザ名に予め対応づけられた回数カウンタ及び履歴テーブルを特定する。そして、履歴取得部４３７は、特定した回数カウンタによりカウントされた回数を距離Ｄｋと対応付けて、特定した履歴テーブルに格納すればよい。
【０１１６】
図２に戻り、レベル設定部４３８は、打撃タイミング決定部４３３により打撃タイミングが決定された時におけるボールオブジェクトＢＬとミートカーソルＫとの距離Ｄｋの履歴に基づいてプレーヤの技量を示す技量レベルを設定する。
【０１１７】
ここで、レベル設定部４３８は、ミートカーソルＫとボールオブジェクトＢＬとの距離Ｄｋの履歴が所定個数蓄積される毎に、距離Ｄｋの代表値を求め、得られた代表値を基に技量レベルを設定する。ここで、代表値としては、例えば相加平均や相乗平均を採用することができる。また、所定個数としては、１試合あたりの打撃指令の平均入力回数に基づいて予め定められた値を採用することができ、例えば１００を採用することができる。
【０１１８】
ここで、レベル設定部４３８は、例えば技量レベルと代表値との関係が対応付けられた技量レベル決定テーブルを用いて技量レベルを設定する。図８は、技量レベル決定テーブルのデータ構造の一例を示した図である。
【０１１９】
図８に示すように技量レベル決定テーブルは、技量レベルの欄と代表値の欄とを備えている。技量レベルの欄には、技量レベルを示す数値が格納されている。本実施の形態では、技量レベルは、例えば１〜２５０の２５０段階が存在している。なお、技量レベルは、１〜２５０へと数値が増大するにつれてプレーヤの技量は高いことを示している。
【０１２０】
代表値の欄には、各技量レベルに対応する距離Ｄｋの代表値αの範囲が格納されている。距離Ｄｋの代表値αがα≧αｍである場合、技量レベルは１に設定される。つまり、プレーヤは技量が低いほど距離Ｄｋが増大する傾向にある。したがって、距離Ｄｋの代表値αがαｍ以上の場合、技量レベルは最低の１に設定される。
【０１２１】
また、距離Ｄｋの代表値αがαｍ＞α≧αｍ−１の場合は技量レベルが２、αｍ−１＞α≧αｍ−２の場合は技量レベルが３というようにして１〜２５０の技量レベルが設定される。つまり、レベル設定部４３８は、距離Ｄｋの代表値αを１〜２５０の階級に分けた場合において、代表値αがどの階級に属しているかに応じて技量レベルを設定するのである。
【０１２２】
また、本実施の形態では、内部処理に用いる技量レベルと、プレーヤに報知する技量レベルとの２種類の技量レベルが存在する。内部処理に用いる技量レベルは、図８に示す１〜２５０が採用されている。また、プレーヤに報知する技量レベルは、内部処理に用いる技量レベルより大まかに分けられており、例えば１〜５が採用されている。
【０１２３】
レベル設定部４３８は、図８に示す１〜２５０の技量レベルを１〜５０、５１〜１００、・・・、２０１〜２５０というように５０個毎に１〜５の階級に分け、この１〜５の階級を用いてプレーヤに報知する技量レベルを設定すればよい。
【０１２４】
図１４は、技量レベルをプレーヤに報知するための画面図を示している。図１４の画面図は、プレーヤが野球ゲームを開始する際に表示部４２０に表示される。この画面図には、打撃、投球等の種々の設定項目が設けられている。そして、プレーヤは操作部４１０を用いて各種の設定項目を選択し、設定作業を行う。図１４では、打撃の設定項目が選択され、打撃の設定項目のうちミートアシストレベルの項目が選択されている。このミートアシストレベルのプルダウンメニューには、レベル１〜レベル５及びお任せの項目が設けられている。プレーヤは、レベル１〜レベル５のいずれかの項目を選択すると、レベル設定部４３８は、プレーヤにより選択されたレベルをプレーヤの技量レベルとして設定する。この場合、モード設定部４３９は、ミートカーソル移動補助モードを解除する。
【０１２５】
一方、プレーヤは、おまかせを選択すると、モード設定部４３９はミートカーソル移動補助モードを設定する。これにより、プレーヤは、自身で技量レベルを申告することなく、ゲーム装置により技量レベルが設定され、適切な操作補助を受けることが可能となる。
【０１２６】
また、図１４の下部には、「現在は（レベル５）です。」と記載され、プレーヤの現在の技量レベルが５であることがプレーヤに報知されている。
【０１２７】
図２に戻り、レベル設定部４３８は、最新の代表値より１つ前に求められた代表値から最新の代表値を差し引いた差分が規定値以上の場合、最新の代表値を用いて技量レベルを設定する。図９は、レベル設定部４３８の処理を説明するための図である。図９に示す座標軸は距離Ｄｋの算出回数、つまり、打撃タイミングの決定回数を示している。そして、レベル設定部４３８は、距離Ｄｋの算出回数が１００増加する毎に代表値を算出する。
【０１２８】
図９において、距離Ｄｋの算出回数が３００に到達したときに算出された代表値α（ｐ）を最新の代表値とする。なお、代表値α（ｐ）は２０１〜３００回目に算出された１００個の距離Ｄｋの履歴を用いて算出された代表値である。また、１つ前に求められた代表値α（ｐ−１）は１０１〜２００回目に算出された１００個の距離Ｄｋの履歴を用いて算出された代表値である。
【０１２９】
そして、レベル設定部４３８は、差分Δｋ（ｐ）＝α（ｐ−１）−α（ｐ）が規定値以上であれば、代表値α（ｐ）を用いて技量レベルを設定する。
【０１３０】
一方、レベル設定部４３８は、差分Δｋ（ｐ）が規定値未満の場合、少なくとも１つ前に求められた代表値α（ｐ−１）と最新の代表値α（ｐ）とを基に、技量レベルを設定する。
【０１３１】
この場合、レベル設定部４３８は、α（ｐ−２）とα（ｐ−１）との差分Δｋ（ｐ−１）が規定値以上であれば、α（ｐ−１）とα（ｐ）との平均値を代表値として求め、この代表値を用いて技量レベルを設定すればよい。
【０１３２】
また、レベル設定部４３８は、差分Δｋ（ｐ−１）が規定値未満であり、かつ、差分Δｋ（ｐ−２）が規定値以上であれれば、α（ｐ−２）とα（ｐ−１）とα（ｐ）との平均値を代表値として求め、この代表値を用いて技量レベルを設定すればよい。
【０１３３】
つまり、レベル設定部４３８は、差分Δｋ（ｐ）が規定値未満の場合、過去に算出された差分のうち規定値以上となった最新の差分を特定し、特定した最新の差分を算出する際に使用された新しい方の代表値から最新の代表値までの各代表値の平均値を求め、この平均値を用いて技量レベルを設定すればよい。
【０１３４】
図２に戻り、モード設定部４３９は、プレーヤからの操作指令に基づいて、野球ゲームをプレーヤ育成モードに設定する。ここで、プレーヤ育成モードは、プレーヤの技量の上達のスピードを高める目的で設けられたモードである。
【０１３５】
そして、プレーヤ育成モードが設定されている場合、カーソル移動速度補助部４３４は、レベル設定部４３８により設定された技量レベルよりも上の技量レベルにおけるミートカーソルの移動速度の補正量でミートカーソルの移動速度を補正する。例えば、レベル設定部４３８によりプレーヤの技量レベルが３と設定された場合、レベル設定部４３８は、この技量レベルよりも数段階上（例えば５段階上）の技量レベルである８に対応する移動速度の補正量をデフォルト移動速度に加算することで、ミートカーソルの移動速度を補正する。これにより、ミートカーソルの移動速度は、プレーヤ育成モードが設定されていない場合のミートカーソルの移動速度に比べて遅くなる。その結果、プレーヤは表示画面上を移動するボールオブジェクトに素早く反応してミートカーソルを移動させなければならなくなり、ゲーム装置側の補助量が少なくなる結果、プレーヤの上達スピードを早めることができる。
【０１３６】
なお、育成モードにおいて、レベル設定部４３８により設定された技量レベルを例えば５段階上げるとすると、技量レベルが２４６のプレーヤは技量レベルが２５０を超えて飽和してしまう。この場合、技量レベルを飽和レベルである２５０に設定すればよい。
【０１３７】
また、プレーヤ育成モードが設定されている場合、カーソル移動方向補助部４３５は、レベル設定部４３８により設定された技量レベルよりも上の技量レベルにおけるミートカーソルの移動方向の補正量でミートカーソルの移動方向を補正するようにしてもよい。この場合、図５に示すベクトルＶＣ２の長さがレベル設定部４３８により設定された技量レベルに対応する長さよりも長くなり、ゲーム装置側の補助量が減少する。
【０１３８】
また、モード設定部４３９は、プレーヤの操作指令に基づいて、野球ゲームをミートカーソル移動補助モードに設定する。ここで、ミートカーソル補助モードは、プレーヤによるミートカーソルの移動操作をゲーム装置側が補助するモードである。具体的には、ミートカーソル移動補助モードが設定されている場合、カーソル移動速度補助部４３４及びカーソル移動方向補助部４３５がミートカーソルの移動速度及び移動方向を補正する。
【０１３９】
打撃判定部４４０は、打撃タイミング決定部４３３により決定された打撃タイミングにおいて、ボールオブジェクトがミートカーソルと重なった場合、打者キャラクタがボールオブジェクトを打撃することができたと判定する。
【０１４０】
図１０は、図４に示す仮想３次元空間をｘ軸方向から見たときの図である。打撃判定部４４０は、図１０に示すように、操作部４１０に打撃指令が入力された時刻から、打者キャラクタがバットオブジェクトのスイングを開始し、バットオブジェクトが打撃面ＳＦに到達するまでの所定時間が経過した時刻が打撃タイミングとして決定される。そして、打撃判定部４４０は、打撃タイミングにおいて、ボールオブジェクトＢＬとミートカーソルＫとが重なった場合、打者キャラクタによりボールオブジェクトＢＬが打撃されたと判定する。
【０１４１】
しかしながら、これでは、ゲームの難易度が極めて高くなってしまい、面白みに欠ける虞がある。そこで、本実施の形態では、例えば打撃タイミングにおいて、ボールオブジェクトＢＬのｚ成分が、打撃面ＳＦに対して−ｚ方向に距離ｄ１離れた位置と、打撃面ＳＦに対して＋ｚ方向に距離ｄ２離れた位置との間に存在し、かつ、そのときのボールオブジェクトＢＬの延長線が打撃面ＳＦ上のミートカーソルＫと交差した場合、ボールオブジェクトＢＬとミートカーソルＫとが重なったと判定してもよい。
【０１４２】
ここで、ボールオブジェクトＢＬの延長線としては、例えば打撃タイミングを決定したときのボールオブジェクトＢＬの速度の方向に、ボールオブジェクトＢＬの重心Ｇ１を起点として伸ばした直線を採用することができる。
【０１４３】
或いは、打撃タイミングにおいて、ボールオブジェクトＢＬのｚ成分が、打撃面ＳＦに対して距離ｄ１離れた位置と、打撃面ＳＦに対して距離ｄ２離れた位置との間に存在する場合、そのときの重心Ｇ１を通り打撃面ＳＦに平行な打撃面ＳＦ´を設定し、設定した打撃面ＳＦ´上に打撃面ＳＦ上のミートカーソルＫを投影し、投影したミートカーソルＫとボールオブジェクトＢＬとが重なる場合、ボールオブジェクトＢＬとミートカーソルＫとが重なったと判定してもよい。
【０１４４】
なお、ｄ１，ｄ２としては、打撃面ＳＦからのストライクゾーンのｚ成分の長さと同じ距離又は、多少のマージンを加える若しくは差し引いた距離を採用することができる。
【０１４５】
図２に戻り、打撃パワー設定部４４１は、打撃判定部４４０により、打撃タイミングにおいて、ボールオブジェクトＢＬとミートカーソルＫとが重なったと判定されると、ボールオブジェクトＢＬを打撃するための打撃パワーを設定する。
【０１４６】
ここで、打撃パワー設定部４４１は、打撃タイミングにおいて、ボールオブジェクトＢＬの重心Ｇ１のミートカーソルＫに対する通過位置がミートカーソルＫの中心に近いほど、打撃パワーを大きく設定する。本実施の形態では打撃パワーとしては、ボールオブジェクトＢＬの初速度Ｖ０を採用することができ、打撃判定部４４０は、ボールオブジェクトＢＬに対して予め定められた基準初速度Ｖｒｅｆの大きさ及び向きを補正することでボールオブジェクトＢＬの初速度Ｖ０を求める。
【０１４７】
図１１（Ａ）〜（Ｃ）は、打撃されたボールオブジェクトＢＬの初速度Ｖ０の算出処理を示した図である。図１１（Ａ）に示すように、ボールオブジェクトＢＬとミートカーソルＫとの重なった領域の重心が点Ｐ４（ｕ，ｖ）であったとする。但し、ｕはミートカーソルＫの中心Ｏ１を通り、且つミートカーソルＫの長手方向に平行な座標軸であり、ｖは中心Ｏ１を通り、且つｕ軸に直交する座標軸である。
【０１４８】
この場合、打撃パワー設定部４４１は、点Ｐ４と中心Ｏ１との距離ｄｓを求め、距離ｄｓが増大するにつれて基準初速度Ｖｒｅｆを小さく設定するための補正係数βを求め、この補正係数βを基準初速度Ｖｒｅｆに乗じることで（β・Ｖｒｅｆ）、基準初速度Ｖｒｅｆの大きさを補正し、補正後の基準初速度Ｖｒｅｆの大きさをボールオブジェクトＢＬの初速度Ｖ０の大きさとして設定すればよい。
【０１４９】
なお、打撃パワー設定部４４１は、補正係数βを出力とし、距離ｄｓを入力とし、距離ｄｓが小さくなるにつれて補正係数βが増大する予め定められた関数を用いて補正係数βを算出すればよい。
【０１５０】
なお、図１１（Ａ）に示すようにミートカーソルＫは、ミート領域ＭＤとミート領域ＭＤの周囲のバット領域ＢＤとを備えている。バット領域ＢＤは、バットを長手方向の断面形状を模擬した形状を有している、ミート領域ＭＤは中心Ｏ１を含む箇所に設定されている。
【０１５１】
そして、打撃パワー設定部４４１は、例えば、点Ｐ４がバット領域ＢＤに位置する場合、点Ｐ４がミート領域ＭＤに位置する場合に比べて大幅に小さくなるように、初速度Ｖ０の大きさを求めればよい。
【０１５２】
次に、図１１（Ａ）〜（Ｃ）を用いて、打撃パワー設定部４４１によるボールオブジェクトＢＬの初速度Ｖ０の向きの算出手法について説明する。打撃パワー設定部４４１は、図１１（Ａ）に示す点Ｐ４のｖの値に応じて、図１１（Ｂ）に示す予め定められた基準初速度Ｖｒｅｆの向きを示す基準方向Ｄｒｅｆのピッチ角θ１を補正し、補正後の基準方向Ｄｒｅｆのピッチ角θ１を初速度Ｖ０のピッチ角として設定する。
【０１５３】
具体的には、打撃パワー設定部４４１は、点Ｐ４のｖがｕ軸上に位置する場合、基準方向Ｄｒｅｆの補正量は０とし、点Ｐ４のｖが正の場合は、点Ｐ４のｖの値に応じて基準方向Ｄｒｅｆのピッチ角θ１を時計回りに所定角度回転させ、点Ｐ４のｖが負の場合は点Ｐ４のｖの値に応じて基準方向Ｄｒｅｆのピッチ角θ１を反時計回りに所定角度回転させればよい。
【０１５４】
なお、基準方向Ｄｒｅｆのピッチ角θ１は、ｚ軸を基準として反時計回りの方向に設定されている。
【０１５５】
また、点Ｐ４のｕが正であれば、打撃パワー設定部４４１は、図１１（Ｃ）に示すように基準方向Ｄｒｅｆのヨー角θ２を点Ｐ４のｕの値に応じて、ｚ軸を基準として時計回りの方向（＋θ２側）に所定角度回転し、回転後の基準方向Ｄｒｅｆのヨー角θ２を初速度Ｖ０のヨー角として設定する。
【０１５６】
一方、点Ｐ４のｕが負であれば、打撃パワー設定部４４１は、基準方向Ｄｒｅｆのヨー角θ２を点Ｐ４のｕの値に応じて、ｚ軸を基準として反時計回り（−θ２側）に所定角度回転させ、回転後の基準方向Ｄｒｅｆのヨー角θ２を初速度Ｖ０のヨー角として設定する。
【０１５７】
また、打撃パワー設定部４４１は、図１０に示すように、打撃タイミングにおいてボールオブジェクトＢＬの重心Ｇ１が打撃面ＳＦからｚ方向にずれて位置しているが、打撃されたと判定された場合、このずれ量に応じて、図１１（Ｃ）に示す基準方向Ｄｒｅｆのヨー角θ２を回転させる。
【０１５８】
具体的には、打者キャラクタが右打者の場合、図１０において、ボールオブジェクトＢＬの重心Ｇ１が打撃面ＳＦから−ｚ方向側に位置していれば、打者キャラクタは、打ち急いだと判定される。そして、ボールオブジェクトＢＬの重心Ｇ１と打撃面ＳＦとの距離ｄに応じて、図１１（Ｃ）に示すヨー角θ２がｚ軸を基準として反時計回りに所定角度回転される。
【０１５９】
一方、打者キャラクタが右打者の場合において、ボールオブジェクトＢＬの重心Ｇ１が打撃面ＳＦから＋ｚ方向側に位置していれば、打者キャラクタは振り遅れたと判定される。そして、距離ｄに応じて図１１（Ｃ）に示すヨー角θ２がｚ軸を基準として時計回りに所定角度回転される。
【０１６０】
なお、打者キャラクタが左打者において、打ち急いだ場合は、図１１（Ｃ）に示すヨー角θ２は距離ｄに応じて時計周りに所定角度回転され、振り遅れた場合は、ヨー角θ２は距離ｄに応じて反時計周りに所定角度回転される。
【０１６１】
また、打撃パワー設定部４４１は、点Ｐ４がバット領域ＢＤに位置する場合、ミート領域ＭＤに位置する場合に比べて、ヨー角θ２を極端に時計回り又は反時計回りに回転させた方向をボールオブジェクトＢＬの初速度Ｖ０の方向として求めればよい。
【０１６２】
図２に戻り、データ記憶部４５０は、例えばメインメモリ５から構成され、履歴記憶部４５１、及び画像記憶部４５２として機能する。履歴記憶部４５１は、図８に示す履歴テーブルを記憶している。
【０１６３】
画像記憶部４５２は、本野球ゲームを実現するにあたり必要となる画像データを記憶するものであり、例えば、守備キャラクタ、打者キャラクタ、バットオブジェクト、野球場の背景画像、投手キャラクタ等の画像データを記憶する。ここで、野球場の背景画像の画像データとしては、例えば仮想３次元空間内において予め作成された仮想３次元モデルを所定の視点から投影することにより予め作成された画像データを採用することができる。
【０１６４】
プログラム記憶部４６０は、例えば記録媒体ドライブ１７等から構成され、コンピュータ読み取り可能な記録媒体４６１を含む。記録媒体４６１は、記録媒体３００から構成され、本発明によるゲーム制御プログラムを記憶している。なお、記録媒体３００からゲーム制御プログラムが読み取られ、当該ゲーム制御プログラムがメインメモリ５に記録されている場合、メインメモリ５がプログラム記憶部４６０として機能する。
【０１６５】
図１２は、本発明の実施の形態によるゲーム装置がボールオブジェクトを移動させる際の処理を示したフローチャートである。なお、図１２に示すフローチャートはプレーヤが攻撃側にある場合を示している。
【０１６６】
まず、ステップＳ１において、ゲーム進行制御部４３１は、打者キャラクタＣＬ１、バットオブジェクトＢＴ、野球場の背景画像、投手キャラクタＣＬ２、及び野手キャラクタ等の画像データを画像記憶部４５２から読み出して表示部４２０に表示させ、初期設定を行う。この場合、表示部４２０には、例えば図３に示すような画像が表示される。
【０１６７】
次に、ゲーム進行制御部４３１は、所定のタイミングになったとき、投手キャラクタに投球を開始させる（ステップＳ２）。
【０１６８】
このとき、ゲーム進行制御部４３１は、投手キャラクタＣＬ２がボールオブジェクトＢＬを投じるように投手キャラクタＣＬ２の表示態様を変更させる。また、ゲーム進行制御部４３１は、投手キャラクタＣＬ２の能力情報に基づいて、ボールオブジェクトＢＬの弾道を設定し、設定した弾道にしたがって、ボールオブジェクトＢＬを表示部４２０に移動表示させる。
【０１６９】
次に、プレーヤにミートカーソルＫの移動指令が入力され（ステップＳ３でＹＥＳ）、かつ、ミートカーソルＫがボールオブジェクトＢＬにロックオンされていない場合（ステップＳ４でＮＯ）、カーソル移動速度補助部４３４は、プレーヤの技量レベルに応じた補正量でミートカーソルＫの移動速度を補正し、かつ、カーソル移動方向補助部４３５は、操作指令が示すミートカーソルＫの移動方向がボールオブジェクトＢＬに近接するように、ボールオブジェクトＢＬの移動方向を補正する（ステップＳ５）。
【０１７０】
一方、ステップＳ３において、移動指令が入力されていない場合（ステップＳ３でＮＯ）、処理がステップＳ７に進められる。この場合、ミートカーソルＫは停止表示される。
【０１７１】
また、ステップＳ４において、ミートカーソルＫがボールオブジェクトＢＬにロックオンされている場合（ステップＳ４でＹＥＳ）、カーソル移動表示部４３６は、ボールオブジェクトＢＬのＸ座標及びＹ座標がミートカーソルＫのＸ座標及びＹ座標と同じ値になるように、ミートカーソルＫを移動表示させる（ステップＳ６）。
【０１７２】
なお、ステップＳ４でＮＯと判定され、ミートカーソルＫがボールオブジェクトＢＬにロックオンされていない場合は、カーソル移動表示部４３６は、ステップＳ５で補正された移動速度及び移動方向でミートカーソルＫを移動表示させる（ステップＳ６）。
【０１７３】
次に、プレーヤにより打撃指令が入力されると（ステップＳ７でＹＥＳ）、打撃タイミング決定部４３３は、打撃指令信号の受信時刻から打撃タイミングを決定する（ステップＳ８）。
【０１７４】
一方、プレーヤにより打撃指令が入力されない場合（ステップＳ７でＮＯ）、ゲーム進行制御部４３１によりボールオブジェクトＢＬが捕手キャラクタの位置に到達してボールオブジェクトＢＬの移動が終了したか否かが判定される（ステップＳ９）。
【０１７５】
そして、ボールオブジェクトＢＬの移動が終了されていないと判定された場合（ステップＳ９でＮＯ）、処理がステップＳ３に戻される。一方、ボールオブジェクトＢＬの移動が終了されたと判定された場合（ステップＳ９でＹＥＳ）、打者キャラクタＣＬ１はボールオブジェクトＢＬを見送ったと判定され、見送り処理が実行される（ステップＳ１０）。
【０１７６】
すなわち、ボールオブジェクトＢＬの移動中において、プレーヤは移動指令を入力することで随時、ミートカーソルＫを表示画面上で移動させることができ、ボールオブジェクトＢＬにミートカーソルＫを位置決めし、打撃指令を入力することが可能である。そして、打撃指令が入力されると、打撃タイミングが決定され、ステップＳ１１以降の処理が実行される。
【０１７７】
ステップＳ１１において、打撃タイミングにおいてミートカーソルＫとボールオブジェクトＢＬとが重なった場合、打撃判定部４４０は、打者キャラクタＣＬ１がボールオブジェクトＢＬを打撃することができたと判定し（ステップＳ１１でＹＥＳ）、打撃パワー設定部４４１は、打撃パワーを設定する（ステップＳ１３）。
【０１７８】
一方、打撃タイミングにおいてミートカーソルＫとボールオブジェクトＢＬとが重なっていない場合、打撃判定部４４０は、打者キャラクタＣＬ１がボールオブジェクトＢＬを打撃することができなかったと判定し（ステップＳ１１でＮＯ）、ゲーム進行制御部４３１は空振り処理を実行する（ステップＳ１２）。
【０１７９】
なお、ステップＳ１０に示す見送り処理においては、ゲーム進行制御部４３１は、捕手キャラクタがボールオブジェクトＢＬを捕球する画像を表示部４２０に表示させる。また、ステップＳ１２に示す空振り処理においては、ゲーム進行制御部４３１は、打者キャラクタＣＬ１が空振り動作する画像を表示部４２０に表示させる。
【０１８０】
また、ステップＳ１１でＹＥＳと判定された場合、ゲーム進行制御部４３１は、打者キャラクタＣＬ１がボールオブジェクトＢＬを打撃動作する画像を表示部４２０に表示させる。
【０１８１】
ステップＳ１４において、履歴取得部４３７は、ステップＳ８で決定された打撃タイミングにおける、ボールオブジェクトＢＬの重心Ｇ１の打撃面ＳＦへの投影位置Ｇ１´とミートカーソルＫの中心Ｏ１との距離Ｄｋを求める。
【０１８２】
そして、履歴取得部４３７は、求めた距離Ｄｋをその距離Ｄｋの算出回数と対応付けて、履歴テーブルに書き込み、距離Ｄｋの履歴を記憶させる（ステップＳ１５）。
【０１８３】
つまり、ボールオブジェクトが１球投じられる毎に、図１２のフローチャートに示す処理が実行され、プレーヤが打撃指令を入力した場合は、空振りしたか打撃することができたかに関わらず、距離Ｄｋが算出され、距離Ｄｋの履歴が取得される。一方、プレーヤが打撃指令を入力しない場合は、距離Ｄｋは算出されず、距離Ｄｋの履歴は取得されない。
【０１８４】
次に、本発明の実施の形態によるゲーム装置がプレーヤの技量レベルを設定する際の処理について説明する。図１３は、本発明の実施の形態によるゲーム装置がプレーヤの技量レベルを設定する際に実行する処理を示すフローチャートである。
【０１８５】
まず、ステップＳ２１において、レベル設定部４３８は、距離Ｄｋの履歴が履歴テーブルに書き込まれると、回数カウンタのカウント値ｋを１カウントアップする（ステップＳ２２）。次に、レベル設定部４３８は、カウント値ｋが１００のｊ（ｊは１以上の整数）倍に到達し、距離Ｄｋの履歴の個数が所定個数蓄積されると（ステップＳ２３でＹＥＳ）、最新の代表値α（ｐ）を求める（ステップＳ２４）。この場合、最新の代表値α（ｐ）は、直前に蓄積された１００個の距離Ｄｋの履歴の平均値である。
【０１８６】
次に、レベル設定部４３８は、前回の代表値α（ｐ−１）から最新の代表値α（ｐ）を差し引いた差分Δｋ（ｐ）を求め、差分Δｋ（ｐ）が規定値以上の場合（ステップＳ２５でＹＥＳ）、最新の代表値α（ｐ）を用いて技量レベルを設定する（ステップＳ２６）。
【０１８７】
一方、差分Δｋ（ｐ）が規定値未満の場合（ステップＳ２５でＮＯ）、過去に算出した差分Δｋ（ｐ−１）、Δｋ（ｐ−２）、・・・のうち、規定値以上の差分を特定する（ステップＳ２７）。そして、特定した差分を算出する際に用いられた新しい方の代表値から最新の代表値までの各代表値の平均値を算出し、代表値を再算出する（ステップＳ２８）。
【０１８８】
なお、過去に算出した差分のうち、規定値以上の差分がない場合、ステップＳ２８において、レベル設定部４３８は、過去に算出した全ての代表値α（ｐ−１）、α（ｐ−２）、・・・と最新の代表値α（ｐ）とを用いて代表値を再算出すればよい。
【０１８９】
例えば、規定値が３であり、代表値が１２，１１，１０，７，６，５，４と減っていった場合、７，６，５，４を用いて代表値が再算出されることになる。一方、代表値が１２，１１，１０，９，８，７，６と減っていった場合、過去に算出した差分のうち、規定値以上の差分がないため、これら全ての代表値を用いて代表値が再算出されることになる。
【０１９０】
ステップＳ２９において、レベル設定部４３８は、ステップＳ２８で再算出した代表値を用いて技量レベルを設定する。
【０１９１】
このように、本ゲーム装置によれば、打撃タイミングにおけるボールオブジェクトＢＬとミートカーソルＫとの距離Ｄｋの履歴に基づいて、プレーヤの技量レベルが設定される。そして、技量レベルが低いほど、ミートカーソルの移動速度の補正量が大きく設定される。
【０１９２】
ここで、プレーヤは技量が高くなるにつれて打撃タイミングにおいて、ボールオブジェクトＢＬとミートカーソルＫとの距離が狭まる傾向にある。つまり、打撃タイミングにおけるボールオブジェクトＢＬとミートカーソルＫとの距離Ｄｋは、プレーヤの技量を反映している。そのため、プレーヤが打撃指令を入力する毎に打撃タイミングにおけるボールオブジェクトＢＬとミートカーソルＫとの距離Ｄｋの履歴を蓄積し、この距離Ｄｋの履歴に基づいて技量レベルを設定すれば、プレーヤの実際の技量に適した技量レベルを設定することができる。
【０１９３】
そして、技量レベルが低くなるにつれて、ミートカーソルＫの移動速度の補正量が大きく設定される。つまり、技量レベルが低いプレーヤほど、ゲーム装置がプレーヤを補助する度合いが大きく設定される。
【０１９４】
したがって、プレーヤは自身の実際の技量に応じた適切な補助をゲーム装置から受けることが可能となる。
【符号の説明】
【０１９５】
４１０  操作部
４２０  表示部
４３０  プログラム実行部
４３１  ゲーム進行制御部
４３２  移動指令取得部（移動指令取得手段）
４３３  打撃タイミング決定部（打撃タイミング決定手段）
４３４  カーソル移動速度補助部（カーソル移動速度補助手段）
４３５  カーソル移動方向補助部（カーソル移動方向補助手段）
４３６  カーソル移動表示部（カーソル移動表示手段）
４３７  履歴取得部
４３８  レベル設定部（レベル設定手段）
４３９  モード設定部（モード設定手段）
４４０  打撃判定部
４４１  打撃パワー設定部
【図１】
2011160864.tif 000003
【図２】
2011160864.tif 000004
【図３】
2011160864.tif 000005
【図４】
2011160864.tif 000006
【図５】
2011160864.tif 000007
【図６】
2011160864.tif 000008
【図７】
2011160864.tif 000009
【図８】
2011160864.tif 000010
【図９】
2011160864.tif 000011
【図１０】
2011160864.tif 000012
【図１１】
2011160864.tif 000013
【図１２】
2011160864.tif 000014
【図１３】
2011160864.tif 000015
【図１４】
2011160864.tif 000016