(57)【特許請求の範囲】
【請求項１】
仮想ゲーム空間に含まれるオブジェクトを仮想カメラで撮像した画像を表示装置に表示させるゲーム装置のコンピュータに実行させるゲームプログラムであって、
前記コンピュータを、
前記仮想カメラによって注視されるオブジェクトである第１オブジェクト、及び前記第１オブジェクトとは異なる少なくとも１つのオブジェクトである第２オブジェクトの位置座標を算出する位置座標算出手段と、
前記第２オブジェクトの位置座標に基づいて、当該第２オブジェクトが前記仮想カメラの前方の所定点よりも前記仮想カメラ側に位置するか否かを判定する座標判定手段と、
前記座標判定手段によって前記仮想カメラ側に位置すると判定された前記第２オブジェクトに対して、当該第２オブジェクトの位置座標を前記所定点側へ移動させた座標である補正座標を算出する補正座標算出手段と、
前記第１オブジェクトがその前記位置座標に位置し、且つ前記座標判定手段によって前記仮想カメラ側に位置すると判定された前記第２オブジェクトが前記補正座標に位置する仮想ゲーム空間の画像を前記表示装置に表示させる表示手段として機能させる、ゲームプログラム。
【請求項２】
前記補正座標算出手段は、前記座標判定手段によって前記仮想カメラ側に位置すると判定された前記第２オブジェクトに対して、当該第２オブジェクトの位置座標を前記仮想カメラの撮像方向へ移動させた座標を当該第２オブジェクトの補正座標として算出する、請求項１に記載のゲームプログラム。
【請求項３】
前記補正座標算出手段は、前記座標判定手段によって前記仮想カメラ側に位置すると判定された前記第２オブジェクトに対して、当該第２オブジェクトの位置座標を前記所定点へ向けて移動させた座標を当該第２オブジェクトの補正座標として算出する、請求項１に記載のゲームプログラム。
【請求項４】
前記補正座標算出手段は、前記座標判定手段によって前記仮想カメラ側に位置すると判定された前記第２オブジェクトの位置座標を前記所定点よりも前記仮想カメラ側に移動させた座標を、当該第２オブジェクトの補正座標として算出する、請求項２又は３に記載のゲームプログラム。
【請求項５】
前記補正座標算出手段は、前記仮想カメラの撮像方向における前記所定点から、前記座標判定手段によって前記仮想カメラ側に位置すると判定された前記第２オブジェクトの位置座標までの第１距離に基づいて、当該第２オブジェクトの補正座標を算出する、請求項４に記載のゲームプログラム。
【請求項６】
前記補正座標算出手段は、前記座標判定手段によって前記仮想カメラ側に位置すると判定された前記第２オブジェクトに対して、前記仮想カメラの撮像方向における前記所定点から当該第２オブジェクトの補正座標までの距離が前記第１距離の所定割合となるように、当該第２オブジェクトの補正座標を算出する、請求項５に記載のゲームプログラム。
【請求項７】
前記座標判定手段は、前記仮想カメラの撮像方向に対して、前記第２オブジェクトが前記所定点よりも前記仮想カメラ側に位置するか否かを判定する、請求項１に記載のゲームプログラム。
【請求項８】
前記座標判定手段は、前記仮想カメラの位置座標と前記所定点とを端点とする線分の方向、及び前記所定点と前記第２オブジェクトの位置座標とを端点とする線分の方向に基づいて、当該第２オブジェクトが前記所定点よりも前記仮想カメラ側に位置するか否かを判定する、請求項１に記載のゲームプログラム。
【請求項９】
前記座標判定手段は、
前記仮想カメラの位置を始点とし且つ前記所定点を終点とするカメラ方向ベクトル、及び前記所定点を始点とし且つ前記第２オブジェクトの位置座標を終点とするオブジェクト方向ベクトルを算出するベクトル算出手段と、
前記ベクトル算出手段によって算出されたカメラ方向ベクトル及びオブジェクト方向ベクトルに基づいて、前記第２オブジェクトが前記所定点よりも前記仮想カメラ側に位置するか否かを判定するベクトル判定手段とを含む、請求項８に記載のゲームプログラム。
【請求項１０】
前記座標判定手段は、
前記カメラ方向ベクトルと前記オブジェクト方向ベクトルとの内積を算出する内積算出手段を更に含み、
前記ベクトル判定手段は、前記内積算出手段によって算出された内積に基づいて、前記第２オブジェクトが前記所定点よりも前記仮想カメラ側に位置するか否かを判定する、請求項９に記載のゲームプログラム。
【請求項１１】
前記ベクトル判定手段は、前記内積算出手段によって算出された内積と所定の閾値との大小関係に基づいて、前記第２オブジェクトが前記所定点よりも前記仮想カメラ側に位置するか否かを判定する、請求項１０に記載のゲームプログラム。
【請求項１２】
前記位置座標算出手段は、２つ以上の前記第２オブジェクトの位置座標を算出し、
前記座標判定手段は、前記位置座標算出手段によって位置座標が算出された前記第２オブジェクト毎に、前記所定点よりも前記仮想カメラ側に位置するか否かを判定する、請求項１に記載のゲームプログラム。
【請求項１３】
前記所定点は、前記仮想カメラの撮像方向に対して、前記仮想カメラの位置と前記第１オブジェクトとの間、又は前記仮想カメラの位置と当該仮想カメラによって注視される注視点との間に設定されている、請求項１に記載のゲームプログラム。
【請求項１４】
前記所定点は、前記第１オブジェクトの位置座標又は前記注視点である、請求項１３に記載のゲームプログラム。
【請求項１５】
前記表示手段は、前記第１オブジェクト及び前記第２オブジェクトがそれぞれの位置座標に位置する空間とは異なる描画用空間の画像を、前記仮想カメラで撮像した画像として前記表示装置に表示させる、請求項１に記載のゲームプログラム。
【請求項１６】
前記表示手段は、前記第１オブジェクト及び前記座標判定手段によって前記仮想カメラ側に位置しないと判定された前記第２オブジェクトの前記位置座標と、前記座標判定手段によって前記仮想カメラ側に位置すると判定された前記第２オブジェクトの前記補正座標とを各オブジェクトの重心座標として前記仮想カメラで撮像した画像を前記表示装置に表示させる、請求項１に記載のゲームプログラム。
【請求項１７】
前記ゲームプログラムは、前記コンピュータを、
プレイヤによって操作される入力手段からの操作情報の入力を受け付ける入力受付手段として更に機能させ、
前記位置座標算出手段は、前記入力受付手段によって受け付けられた操作情報に基づいて前記第１オブジェクトの位置座標を算出する、請求項１に記載のゲームプログラム。
【請求項１８】
仮想ゲーム空間に含まれるオブジェクトを仮想カメラで撮像した画像を表示装置に表示させるゲーム装置であって、
前記仮想カメラによって注視されるオブジェクトである第１オブジェクト、及び前記第１オブジェクトとは異なる少なくとも１つのオブジェクトである第２オブジェクトの位置座標を算出する位置座標算出手段と、
前記第２オブジェクトの位置座標に基づいて、当該第２オブジェクトが前記仮想カメラの前方の所定点よりも前記仮想カメラ側に位置するか否かを判定する座標判定手段と、
前記座標判定手段によって前記仮想カメラ側に位置すると判定された前記第２オブジェクトに対して、当該第２オブジェクトの位置座標を前記所定点側へ移動させた座標である補正座標を算出する補正座標算出手段と、
前記第１オブジェクトがその前記位置座標に位置し、且つ前記座標判定手段によって前記仮想カメラ側に位置すると判定された前記第２オブジェクトが前記補正座標に位置する仮想ゲーム空間の画像を前記表示装置に表示させる表示手段とを備える、ゲーム装置。
【請求項１９】
仮想ゲーム空間に含まれるオブジェクトを仮想カメラで撮像した画像を表示装置に表示させるゲーム装置のコンピュータが実行するゲームの表示方法であって、
前記コンピュータが、
前記仮想カメラによって注視されるオブジェクトである第１オブジェクト、及び前記第１オブジェクトとは異なる少なくとも１つのオブジェクトである第２オブジェクトの位置座標を算出するステップと、
前記第２オブジェクトの位置座標に基づいて、当該第２オブジェクトが前記仮想カメラの前方の所定点よりも前記仮想カメラ側に位置するか否かを判定するステップと、
前記仮想カメラ側に位置すると判定された前記第２オブジェクトに対して、当該第２オブジェクトの位置座標を前記所定点側へ移動させた座標である補正座標を算出するステップと、
前記第１オブジェクトがその前記位置座標に位置し、且つ前記仮想カメラ側に位置すると判定された前記第２オブジェクトが前記補正座標に位置する仮想ゲーム空間の画像を前記表示装置に表示させるステップとを実行する、ゲームの表示方法。
【請求項２０】
仮想ゲーム空間に含まれるオブジェクトを仮想カメラで撮像した画像を表示装置に表示させるゲームシステムであって、
前記仮想カメラによって注視されるオブジェクトである第１オブジェクト、及び前記第１オブジェクトとは異なる少なくとも１つのオブジェクトである第２オブジェクトの位置座標を算出する位置座標算出手段と、
前記第２オブジェクトの位置座標に基づいて、当該第２オブジェクトが前記仮想カメラの前方の所定点よりも前記仮想カメラ側に位置するか否かを判定する座標判定手段と、
前記座標判定手段によって前記仮想カメラ側に位置すると判定された前記第２オブジェクトに対して、当該第２オブジェクトの位置座標を前記所定点側へ移動させた座標である補正座標を算出する補正座標算出手段と、
前記第１オブジェクトがその前記位置座標に位置し、且つ前記座標判定手段によって前記仮想カメラ側に位置すると判定された前記第２オブジェクトが前記補正座標に位置する仮想ゲーム空間の画像を前記表示装置に表示させる表示手段とを備える、ゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲーム装置のコンピュータに実行させるゲームプログラム、ゲーム装置、ゲームの表示方法及びゲームシステムに関し、より特定的には、仮想ゲーム空間内のオブジェクトを仮想カメラの視点から見た画像を表示装置に表示するゲーム装置のコンピュータに実行させるゲームプログラム、ゲーム装置、ゲームの表示方法及びゲームシステムに関する。
【背景技術】
【０００２】
いわゆるシューティングゲームやアクションゲームでは、仮想ゲーム空間内に存在するオブジェクトを同じく仮想ゲーム空間内に存在する仮想カメラから見た画像を描画する処理がゲーム装置によって行われる（例えば特許文献１参照）。特許文献１には、ゲームのプレイヤによって視点切替スイッチが操作された場合に、プレイヤが操作する飛行機が飛行している状態を飛行機内のコクピットの視点（１人称視点）から見た画像と、飛行機が飛行している状態を飛行機後方のビハインドビュー視点（３人称視点）から見た画像とを切り替えて画面表示するための仮想カメラの視点制御に関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−１０７４６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献１に記載されている従来のゲームでは、注視対象のオブジェクト（特許文献１では飛行機）が常に画面の中心付近に表示されるように仮想カメラを制御する場合に、例えば仮想カメラの後方などの仮想カメラの視野範囲外に位置する他のオブジェクトは、注視対象のオブジェクトと近接しているとしても表示することができなかった。このため、例えば飛行機の近くに位置するミサイルが仮想カメラの視野範囲外に位置しているために画面に表示されず、プレイヤが不利益を被るおそれがあった。この問題を解決するために、他のオブジェクトが仮想カメラの視野範囲内に含まれるように仮想カメラの視点を注視対象のオブジェクトから離すことが考えられるが、この場合、仮想カメラの視点が注視対象のオブジェクトから離れるために注視対象のオブジェクトが小さく表示されるという別の問題が生じる。
【０００５】
それ故に、本発明の目的は、仮想カメラの視点を注視対象から離すことなく仮想カメラの視野範囲に含まれていないオブジェクトを表示することができるゲームプログラム、ゲーム装置、ゲームの表示方法及びゲームシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るゲームプログラムは、仮想ゲーム空間に含まれるオブジェクトを仮想カメラで撮像した画像を表示装置に表示させるゲーム装置のコンピュータに実行させるゲームプログラムである。このゲームプログラムは、コンピュータを位置座標算出手段、座標判定手段、補正座標算出手段、及び表示手段として機能させる。位置座標算出手段は、仮想カメラによって注視されるオブジェクトである第１オブジェクト、及び第１オブジェクトとは異なる少なくとも１つのオブジェクトである第２オブジェクトの位置座標を算出する。座標判定手段は、第２オブジェクトの位置座標に基づいて、その第２オブジェクトが仮想カメラの前方の所定点よりも仮想カメラ側に位置するか否かを判定する。補正座標算出手段は、座標判定手段によって仮想カメラ側に位置すると判定された第２オブジェクトに対して、その第２オブジェクトの位置座標を所定点側へ移動させた座標である補正座標を算出する。表示手段は、第１オブジェクトがその位置座標に位置し、且つ座標判定手段によって仮想カメラ側に位置すると判定された第２オブジェクトが補正座標に位置する仮想ゲーム空間の画像を表示装置に表示させる。
【０００７】
このゲームプログラムに基づくゲーム処理がゲーム装置で実行されることにより、第１オブジェクトを注視するように仮想カメラの視点位置や視野角等の仮想カメラに関する各パラメータが制御される。その結果、第１オブジェクトが表示装置の画面の中央付近に表示される。仮想ゲーム空間には、このように仮想カメラによって注視される第１オブジェクトの他に、第２オブジェクトが存在する。この第２オブジェクトは、仮想カメラによって注視されないオブジェクトである。例えば、第１オブジェクトはプレイヤによって操作されるプレイヤオブジェクトであり、第２オブジェクトはプレイヤオブジェクトとは異なるノンプレイヤオブジェクトである。ただし、例えば、第１オブジェクトが所定のノンプレイヤオブジェクトであり、第２オブジェクトがプレイヤオブジェクト及びその他のノンプレイヤオブジェクトであってもよい。ゲーム装置では、これらの第１オブジェクト及び第２オブジェクトに対して、仮想ゲーム空間における位置座標が位置座標算出手段によって算出される。これを受けて、第２オブジェクトが仮想カメラの前方の所定点よりも仮想カメラ側に位置するか否かが座標判定手段によって判定される。所定点としては、第１オブジェクトの位置座標が例として挙げられるが、所定点はこれに限定されるものではない。所定点は、例えば仮想カメラと第１オブジェクトとの間に設定されてもよいし、或いは仮想カメラから見た第１オブジェクトの前方に設定されてもよい。
【０００８】
座標判定手段による判定処理が行われると、所定点よりも仮想カメラ側に位置すると判定された第２オブジェクトに対して、その第２オブジェクトの位置座標を所定点側へ移動させた補正座標が算出される。そして、第１オブジェクト及び所定点よりも仮想カメラ側に位置しない第２オブジェクトがそれぞれの位置座標に位置し、且つ所定点よりも仮想カメラ側に位置する第２オブジェクトがその補正座標に位置する仮想ゲーム空間を仮想カメラで撮像した仮想ゲーム空間の画像が表示手段によって表示装置に表示される。この仮想ゲーム空間の画像は、所定点よりも仮想カメラ側に位置する第２オブジェクトが所定点側へ移動した状態で仮想カメラに撮像されたものである。このため、第１オブジェクトから仮想カメラの視点までの距離を変更することなく、例えば仮想カメラの後方などの仮想カメラの視野範囲外に位置する第２オブジェクトを視野範囲に含めた状態の仮想ゲーム空間の画像を表示することが可能となる。
【０００９】
補正座標算出手段は、座標判定手段によって仮想カメラ側に位置すると判定された第２オブジェクトに対して、その第２オブジェクトの位置座標を仮想カメラの撮像方向へ移動させた座標をその第２オブジェクトの補正座標として算出してもよい。
【００１０】
この構成によれば、第２オブジェクトの位置座標を仮想カメラの撮像方向（仮想カメラの視点から所定点へ向けた方向）へ移動させた補正座標が算出されるので、第２オブジェクトの画面上の位置が変化するといった不自然な表示がなされることが防止される。
【００１１】
補正座標算出手段は、座標判定手段によって仮想カメラ側に位置すると判定された第２オブジェクトに対して、その第２オブジェクトの位置座標を所定点へ向けて移動させた座標をその第２オブジェクトの補正座標として算出してもよい。
【００１２】
第２オブジェクトの位置座標や位置座標から補正座標までの移動距離によっては、位置座標を仮想カメラの撮像方向に移動させた補正座標が仮想カメラの視野範囲外に位置し、その結果、第２オブジェクトを仮想カメラで撮像できない場合がある。上記構成によれば、仮想カメラの前方の所定点へ向けて直線的に近づくように第２オブジェクトの補正座標が算出される。このため、位置座標を仮想カメラの撮像方向に移動させた補正座標を算出したにも拘わらず仮想カメラの視野範囲外に位置してしまうような第２オブジェクトを仮想カメラの視野範囲に含めて画面に表示させることが可能となる。
【００１３】
補正座標算出手段は、座標判定手段によって仮想カメラ側に位置すると判定された第２オブジェクトの位置座標を所定点よりも仮想カメラ側に移動させた座標を、その第２オブジェクトの補正座標として算出してもよい。
【００１４】
第２オブジェクトの補正座標として、仮想カメラの前方の所定点よりも更に前方の座標が算出された場合、例えば本来は第１オブジェクトよりも後方に位置するはずの第２オブジェクトが第１オブジェクトよりも前方に位置した状態で表示されるおそれがある。上記構成によれば、補正座標算出手段によって算出される補正座標が所定点よりも仮想カメラ側の座標であるため、上述した問題が生じることが防止される。
【００１５】
補正座標算出手段は、仮想カメラの撮像方向における所定点から、座標判定手段によって仮想カメラ側に位置すると判定された第２オブジェクトの位置座標までの第１距離に基づいて、その第２オブジェクトの補正座標を算出してもよい。
【００１６】
仮想カメラの撮像方向における所定点から第２オブジェクトの補正座標までの距離が第１距離よりも小さくなるように補正座標を算出すれば、第２オブジェクトを所定点側へ移動させた補正座標が算出されることになる。このため、上記構成によれば、第２オブジェクトの補正座標を容易に算出することが可能となる。
【００１７】
補正座標算出手段は、座標判定手段によって仮想カメラ側に位置すると判定された第２オブジェクトに対して、仮想カメラの撮像方向における所定点からその第２オブジェクトの補正座標までの距離が第１距離の所定割合となるように、その第２オブジェクトの補正座標を算出してもよい。
【００１８】
この構成によれば、例えば仮想ゲーム空間内に複数の第２オブジェクトが存在する場合に、各第２オブジェクトの位置座標が同じ割合で移動するように補正されるので、各第２オブジェクトがそれぞれの補正座標に配置された結果、仮想カメラの撮像方向における所定点からの距離が相対的に遠い第２オブジェクトが、所定点からの距離が相対的に近い第２オブジェクトよりも所定点に近い状態で表示されるといった不自然な表示が行われることが効果的に防止される。
【００１９】
座標判定手段は、仮想カメラの撮像方向に対して、第２オブジェクトが所定点よりも仮想カメラ側に位置するか否かを判定してもよい。
【００２０】
この構成によれば、第２オブジェクトの位置座標が所定点よりも仮想カメラ側に位置するか否かの判定に、その位置座標の撮像方向成分のみを使用すればよいので、座標判定手段による判定が容易になる。
【００２１】
座標判定手段は、仮想カメラの位置座標と所定点とを端点とする線分の方向、及び所定点と第２オブジェクトの位置座標とを端点とする線分の方向に基づいて、その第２オブジェクトが所定点よりも仮想カメラ側に位置するか否かを判定してもよい。
【００２２】
この構成によれば、座標判定手段による判定が容易になる。
【００２３】
座標判定手段は、ベクトル算出手段、及びベクトル判定手段を含んでいてもよい。ベクトル算出手段は、仮想カメラの位置を始点とし且つ所定点を終点とするカメラ方向ベクトル、及び所定点を始点とし且つ第２オブジェクトの位置座標を終点とするオブジェクト方向ベクトルを算出する。ベクトル判定手段は、ベクトル算出手段によって算出されたカメラ方向ベクトル及びオブジェクト方向ベクトルに基づいて、第２オブジェクトが所定点よりも仮想カメラ側に位置するか否かを判定する。
【００２４】
この構成によれば、座標判定手段による判定が一層容易になる。
【００２５】
座標判定手段は、カメラ方向ベクトルとオブジェクト方向ベクトルとの内積を算出する内積算出手段を更に含んでいてもよい。この場合、ベクトル判定手段は、内積算出手段によって算出された内積に基づいて、第２オブジェクトが所定点よりも仮想カメラ側に位置するか否かを判定する。
【００２６】
この構成によれば、座標判定手段による判定がさらに容易になる。
【００２７】
ベクトル判定手段は、内積算出手段によって算出された内積と所定の閾値との大小関係に基づいて、第２オブジェクトが所定点よりも仮想カメラ側に位置するか否かを判定する。
【００２８】
この構成によれば、第２オブジェクトが所定点よりも仮想カメラ側に位置するか否かが内積算出手段によって算出された内積と閾値との大小関係に基づいて判定されるので、例えば複数の第２オブジェクトに対して判定を行う場合に、正確な判定を行うことが可能となる。
【００２９】
位置座標算出手段は、２つ以上の第２オブジェクトの位置座標を算出する。これに対して、座標判定手段は、位置座標算出手段によって位置座標が算出された第２オブジェクト毎に、所定点よりも仮想カメラ側に位置するか否かを判定する。
【００３０】
この構成により、仮想カメラの視野範囲外に位置する複数の第２オブジェクトを視野範囲に含めた状態の仮想ゲーム空間の画像が表示される。このため、仮想カメラの視野範囲外に位置する一方の第２オブジェクトは画面に表示されるのに対して、同じく視野範囲外に位置する他方の第２オブジェクトは画面に表示されないといった不自然な表示が行われることが防止される。
【００３１】
所定点は、仮想カメラの撮像方向に対して、仮想カメラの位置と第１オブジェクトとの間、又は仮想カメラの位置と仮想カメラによって注視される注視点との間に設定されていることが好ましい。
【００３２】
所定点が第１オブジェクトよりも仮想カメラの撮像方向の前方に設定された場合、第１オブジェクトの前方に位置する第２オブジェクトに対して補正座標を算出する処理が行われ、その結果、第２オブジェクトをかえって第１オブジェクトから遠ざけた状態の画像が表示されることが考えられる。これは、仮想カメラの撮像方向に関して所定点が注視点の前方に設定された場合も同様である。上記構成によれば、仮想カメラの撮像方向に関して、第１オブジェクトの後方に位置するはずの第２オブジェクトが第１オブジェクトの前方に位置した状態で表示されたり、或いは所定点の後方に位置するはずの第２オブジェクトが所定点の前方に位置した状態で表示されるといった不自然な表示が行われることが防止される。
【００３３】
所定点は、第１オブジェクトの位置座標又は注視点であってもよい。
【００３４】
この構成によれば、第２オブジェクトを仮想カメラの撮像方向へ第１オブジェクト又は注視点に近づけた、自然な画像を表示することが可能になる。
【００３５】
表示手段は、第１オブジェクト及び第２オブジェクトがそれぞれの位置座標に位置する空間とは異なる描画用空間の画像を、仮想カメラで撮像した画像として表示装置に表示させる。
【００３６】
ゲーム装置では、第１オブジェクト及び第２オブジェクトがそれぞれの位置座標に位置する空間に基づいて、各オブジェクトの移動制御や接触判定等の一般的なゲーム処理が行われる。上記構成によれば、この空間とは別の描画用空間の画像が表示装置に表示される。このように、本発明の処理によってゲーム空間内の各オブジェクトの位置座標が変更される訳ではないので、各種ゲームで一般的に行われているゲーム処理に支障をきたすことなく、仮想カメラの視野範囲外に位置する第２オブジェクトを視野範囲に含めた状態の仮想ゲーム空間の画像を表示することが可能になる。
【００３７】
表示手段は、第１オブジェクト及び座標判定手段によって仮想カメラ側に位置しないと判定された第２オブジェクトの位置座標と、座標判定手段によって仮想カメラ側に位置すると判定された第２オブジェクトの補正座標とを各オブジェクトの重心座標として仮想カメラで撮像した画像を表示装置に表示させることが好ましい。
【００３８】
この構成によれば、仮想カメラの視野範囲外に位置する第２オブジェクトを視野範囲に含めた状態の仮想ゲーム空間の画像をより自然に表示することが可能になる。
【００３９】
ゲームプログラムは、コンピュータを、プレイヤによって操作される入力手段からの操作情報の入力を受け付ける入力受付手段として更に機能させる。この場合、位置座標算出手段は、入力受付手段によって受け付けられた操作情報に基づいて第１オブジェクトの位置座標を算出する。
【００４０】
第１オブジェクトは、プレイヤによって操作されるプレイヤオブジェクトであり、表示装置の画面には、プレイヤオブジェクトを注視した仮想ゲーム空間の画像が表示される。その画像には、仮想カメラの視野範囲外に位置する第２オブジェクトとして、例えばプレイヤオブジェクトを攻撃する敵オブジェクトや敵オブジェクトから出射されたミサイル等が表示される。このため、敵オブジェクトが、プレイヤオブジェクトの近くに位置しているにも拘わらず仮想カメラの視野範囲外に位置しているために表示されないといった不利益をプレイヤが被ることが効果的に防止される。
【００４１】
また、本発明は、仮想ゲーム空間に含まれるオブジェクトを仮想カメラで撮像した画像を表示装置に表示させるゲーム装置として捉えることもできる。このゲーム装置は、位置座標算出手段、座標判定手段、補正座標算出手段、及び表示手段を備える。位置座標算出手段は、仮想カメラによって注視されるオブジェクトである第１オブジェクト、及び第１オブジェクトとは異なる少なくとも１つのオブジェクトである第２オブジェクトの位置座標を算出する。座標判定手段は、第２オブジェクトの位置座標に基づいて、その第２オブジェクトが仮想カメラの前方の所定点よりも仮想カメラ側に位置するか否かを判定する。補正座標算出手段は、座標判定手段によって仮想カメラ側に位置すると判定された第２オブジェクトに対して、その第２オブジェクトの位置座標を所定点側へ移動させた座標である補正座標を算出する。表示手段は、第１オブジェクトがその位置座標に位置し、且つ座標判定手段によって仮想カメラ側に位置すると判定された第２オブジェクトが補正座標に位置する仮想ゲーム空間の画像を表示装置に表示させる。
【００４２】
また、本発明は、仮想ゲーム空間に含まれるオブジェクトを仮想カメラで撮像した画像を表示装置に表示させるゲーム装置のコンピュータが実行するゲームの表示方法として捉えることもできる。この表示方法では、コンピュータによって、まず、仮想カメラによって注視されるオブジェクトである第１オブジェクト、及び第１オブジェクトとは異なる少なくとも１つのオブジェクトである第２オブジェクトの位置座標を算出するステップが実行される。次に、第２オブジェクトの位置座標に基づいて、その第２オブジェクトが仮想カメラの前方の所定点よりも仮想カメラ側に位置するか否かを判定するステップが実行される。続いて、仮想カメラ側に位置すると判定された第２オブジェクトに対して、その第２オブジェクトの位置座標を所定点側へ移動させた座標である補正座標を算出するステップが実行される。そして、第１オブジェクトがその位置座標に位置し、且つ仮想カメラ側に位置すると判定された第２オブジェクトが補正座標に位置する仮想ゲーム空間の画像を表示装置に表示させるステップが実行される。
【発明の効果】
【００４３】
この発明によれば、例えば仮想カメラの後方などの仮想カメラの視野範囲外に位置するオブジェクトを視野範囲内に含めた状態の仮想ゲーム空間の画像を表示することができる。このため、仮想カメラの視点を注視対象から離すことなく、従来の描画方法では写らないオブジェクトを表示することができる。
【図面の簡単な説明】
【００４４】
【図１】ゲームシステム１の外観斜視図
【図２】本発明の一実施形態に係るゲーム装置３の構成を示すブロック図
【図３】コントローラ７の上面後方から見た斜視図
【図４】コントローラ７を下面前方から見た斜視図
【図５】コントローラ７の構成を示すブロック図
【図６】仮想ゲーム空間の模式図
【図７】外部メインメモリ１２のメモリ構成の一例を示す図
【図８】本発明の一実施形態に係るゲームプログラムを実行するゲーム装置３の機能構成の一例を示す機能構成図
【図９】座標判定部１０３による判定処理を説明するための図
【図１０】ノンプレイヤオブジェクトの補正座標の算出方法を説明するための図
【図１１】ミサイル４３〜４７が撮像方向８１へ移動した状態を示す仮想ゲーム空間の模式図
【図１２】ゲーム装置３で実行されるメイン処理の一例を示すフローチャート
【図１３】図１２のステップＳ６における描画処理の詳細フローチャート
【図１４】図１３のステップＳ６１における補正座標算出処理の詳細フローチャート
【図１５】位置座標に対する補正座標の移動方向の変形例について説明するための図
【図１６】プレイヤオブジェクト３１の位置座標８０とは異なる注視点７７を所定点とした場合の位置座標と補正座標との位置関係について説明するための図
【図１７】補正フラグ１３６の設定方法の変形例について説明するための図
【発明を実施するための形態】
【００４５】
以下、適宜図面を参照しつつ、本発明の一実施形態について説明する。図１は、本発明の一実施形態に係るゲーム装置３を含むゲームシステム１の外観斜視図である。本実施形態では、本発明に係るゲーム装置が据置型のゲーム装置３である場合を例にして、本発明に係るゲーム装置及びゲームプログラムについて説明するが、本発明に係るゲーム装置は、例えばゲーム装置と表示装置とが一体的に構成された携帯型のゲーム装置であってもよい。
【００４６】
［ゲームシステム１の全体構成］
まず、ゲームシステム１の各構成の概略を説明する。図１において、ゲームシステム１は、液晶テレビ２、ゲーム装置３、光ディスク４、マーカ部６、及びコントローラ７を含む。本システム１は、コントローラ７を用いたプレイヤのゲーム操作に基づいてゲーム装置３でゲーム処理を実行するものである。
【００４７】
ゲーム装置３には、ゲーム装置３に対して交換可能に用いられる情報記憶媒体の一例である光ディスク４が着脱可能に挿入される。光ディスク４には、ゲーム装置３において実行されるゲームプログラムが記憶されている。ゲーム装置３の前面には光ディスク４の挿入口が設けられている。ゲーム装置３は、挿入口に挿入された光ディスク４からゲームプログラムを読み出して実行することによってゲーム処理を実行する。
【００４８】
ゲーム装置３には、液晶テレビ２（表示装置の一例）が接続コードを介して接続される。後述するが、ゲーム装置３は、仮想カメラ３０（図６参照）の視点から見たオブジェクトを含む仮想ゲーム空間の画像（ゲーム画像）を生成して液晶テレビ２へ出力する。この一連の処理は、本実施形態では、フレーム単位（例えば１／６０秒間隔）で行われる。液晶テレビ２は、このようにしてゲーム装置３から出力されるゲーム画像を受信して表示画面に表示する。
【００４９】
液晶テレビ２の画面の周辺（図１では画面の上側）には、マーカ部６が設置される。マーカ部６は、その両端に２つのマーカ６Ｒ及び６Ｌを備えている。マーカ６Ｒ（マーカ６Ｌも同様）は、具体的には１個以上の赤外ＬＥＤであって、液晶テレビ２の前方に向かって赤外光を出力する。マーカ部６はゲーム装置３に接続されており、ゲーム装置３はマーカ部６が備える各赤外ＬＥＤの点灯を制御することが可能である。また、マーカ部６には、不図示のマイクロフォンが配設され、該マイクロフォンを介して入力された音声情報は、ゲーム装置３に入力される。
【００５０】
コントローラ７は、プレイヤによって操作される入力手段であって、自機に対して行われた操作の内容を示す操作データをゲーム装置３へ出力する入力装置である。コントローラ７とゲーム装置３とは無線通信によって接続される。本実施形態では、コントローラ７とゲーム装置３との間の無線通信にＢｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）の技術が用いられる。なお、他の実施形態においては、コントローラ７とゲーム装置３とは有線で接続されてもよい。
【００５１】
［ゲーム装置３の内部構成］
次に、図２を参照して、ゲーム装置３の内部構成について説明する。図２は、ゲーム装置３の構成を示すブロック図である。ゲーム装置３は、ＣＰＵ１０、システムＬＳＩ１１、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、及びＡＶ−ＩＣ１５等を有する。
【００５２】
ＣＰＵ１０は、光ディスク４に格納されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。ＣＰＵ１０は、システムＬＳＩ１１に接続される。システムＬＳＩ１１には、ＣＰＵ１０の他、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、及びＡＶ−ＩＣ１５が接続される。システムＬＳＩ１１は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。システムＬＳＩ１１の内部構成については後述する。
【００５３】
外部メインメモリ１２は、揮発性メモリである。外部メインメモリ１２は、光ディスク４から読み出されたゲームプログラム、フラッシュメモリ１７から読み出されたゲームプログラム等のプログラムを格納したり、各種データを格納したりするものであり、ＣＰＵ１０のワーク領域、バッファ領域等として用いられる。
【００５４】
ＲＯＭ／ＲＴＣ１３は、ゲーム装置３の起動用のプログラムが組み込まれるＲＯＭ（いわゆる、ブートＲＯＭ）と、時間をカウントするクロック回路（ＲＴＣ：Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）とを有する。
【００５５】
ディスクドライブ１４は、光ディスク４からプログラムデータ、テクスチャデータ等を読み出し、後述する内部メインメモリ１１ｅ又は外部メインメモリ１２に読み出したデータを書き込む。
【００５６】
システムＬＳＩ１１には、入出力プロセッサ（Ｉ／Ｏプロセッサ）１１ａ、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）１１ｂ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）１１ｃ、ＶＲＡＭ１１ｄ、及び内部メインメモリ１１ｅが設けられる。図示は省略するが、これらの構成要素１１ａ〜１１ｅは内部バスによって互いに接続される。
【００５７】
ＧＰＵ１１ｂは、描画手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。ＶＲＡＭ１１ｄは、ＧＰＵ１１ｂがグラフィクスコマンドを実行するために必要なデータ（ポリゴンデータ、テクスチャデータ等のデータ）を記憶する。画像が生成される際には、ＧＰＵ１１ｂは、ＶＲＡＭ１１ｄに記憶されたデータを用いて画像データを作成する。
【００５８】
ＤＳＰ１１ｃは、オーディオプロセッサとして機能し、内部メインメモリ１１ｅ、外部メインメモリ１２等に格納されるサウンドデータ、音波形（音色）データ等を用いて、音声データを生成する。
【００５９】
上述のように生成された画像データ及び音声データは、ＡＶ−ＩＣ１５によって読み出
される。ＡＶ−ＩＣ１５は、読み出した画像データを、ＡＶコネクタ１６を介して液晶テレビ２に出力するとともに、読み出した音声データを、液晶テレビ２に内蔵されるスピーカ２ａに出力する。これによって、画像が液晶テレビ２に表示されるとともに音がスピーカ２ａから出力される。
【００６０】
入出力プロセッサ１１ａは、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ１１ａは、フラッシュメモリ１７、無線通信モジュール１８、無線コントローラモジュール１９、拡張コネクタ２０、及びメモリカード用コネクタ２１に接続される。無線通信モジュール１８にはアンテナ２２が接続され、無線コントローラモジュール１９にはアンテナ２３が接続される。
【００６１】
入出力プロセッサ１１ａは、無線通信モジュール１８及びアンテナ２２を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ１１ａは、定期的にフラッシュメモリ１７にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データがある場合には、無線通信モジュール１８及びアンテナ２２を介してネットワークに送信する。また、入出力プロセッサ１１ａは、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータを、ネットワーク、アンテナ２２及び無線通信モジュール１８を介して受信し、受信したデータをフラッシュメモリ１７に記録する。ＣＰＵ１０は、ゲームプログラムを実行することにより、フラッシュメモリ１７に格納されたデータを読み出してゲームプログラムで利用する。フラッシュメモリ１７には、ゲーム装置３と他のゲーム装置や各種サーバとの間で送受信されるデータの他、ゲーム装置３を利用してプレイしたゲームのセーブデータ（ゲームの結果データ又は途中データ）が格納されてもよい。
【００６２】
また、入出力プロセッサ１１ａは、コントローラ７から送信される操作データをアンテナ２３及び無線コントローラモジュール１９を介して受信し、内部メインメモリ１１ｅ又は外部メインメモリ１２のバッファ領域に格納（一時記憶）する。
【００６３】
更に、入出力プロセッサ１１ａには、拡張コネクタ２０及びメモリカード用コネクタ２１が接続される。拡張コネクタ２０は、ＵＳＢやＳＣＳＩのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール１８に換えてネットワークとの通信を行ったりすることができる。メモリカード用コネクタ２１は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ１１ａは、拡張コネクタ２０やメモリカード用コネクタ２１を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００６４】
ゲーム装置３には、電源ボタン２４、リセットボタン２５、及びイジェクトボタン２６が設けられる。電源ボタン２４及びリセットボタン２５は、システムＬＳＩ１１に接続される。電源ボタン２４が押下されると、ゲーム装置３の各構成要素に対して、図示しないＡＣアダプタを経て電源が供給される。リセットボタン２５が押下されると、システムＬＳＩ１１は、ゲーム装置３の起動プログラムを再起動する。イジェクトボタン２６は、ディスクドライブ１４に接続される。イジェクトボタン２６が押下されると、ディスクドライブ１４から光ディスク４が排出される。
【００６５】
［コントローラ７の構成］
図３及び図４を参照して、コントローラ７の外部構成について説明する。図３は、コントローラ７の上面後方から見た斜視図である。図４は、コントローラ７を下面前方から見た斜視図である。
【００６６】
図３及び図４に示されるように、コントローラ７は、例えばプラスチック成型によって形成されたハウジング７１を有している。ハウジング７１は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供が片手で把持可能な大きさに構成されている。このハウジング７１には、操作部７２が配置されている。
【００６７】
ハウジング７１の上面に配置された操作部７２は、十字キー７２ａ、操作ボタン７２ｂ〜７２ｇ、及び操作ボタン７２ｈから構成されている。
【００６８】
十字キー７２ａは、十字型の４方向プッシュスイッチであり、４つの方向（前後左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。プレイヤが十字キー７２ａのいずれかの操作部分を押下することによって、前後左右いずれかの方向が選択される。例えばプレイヤが十字キー７２ａを操作することによって、仮想ゲーム世界に登場するプレイヤオブジェクト等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
【００６９】
操作ボタン７２ｂ〜７２ｇは、プレイヤがボタン頭部を押下することによって、それぞれの操作ボタン７２ｂ〜７２ｇに割り当てられた操作信号を出力する。例えば、操作ボタン７２ｂ〜７２ｄには、１番ボタン、２番ボタン、及びＡボタン等としての機能が割り当てられる。また、操作ボタン７２ｅ〜７２ｇには、マイナスボタン、ホームボタン、及びプラスボタン等としての機能が割り当てられる。これら操作ボタン７２ａ〜７２ｇは、ゲーム装置３が実行するゲームプログラムに応じてそれぞれの操作機能が割り当てられる。なお、操作ボタン７２ｆは、その上面がハウジング７１の上面に埋没しており、プレイヤが不意に誤って押下することのないタイプの操作ボタンである。
【００７０】
操作ボタン７２ｈは、遠隔からゲーム装置３の電源をオン／オフする電源スイッチである。この操作ボタン７２ｈは、ハウジング７１の上面に埋没しており、操作ボタン７２ｆと同じタイプの操作ボタンである。
【００７１】
ハウジング７１の上面には、操作部７２の他に複数のＬＥＤ７０２が設けられる。ここで、コントローラ７は、他のコントローラ７と区別するためにコントローラ種別（番号）が設けられている。例えば、ＬＥＤ７０２は、コントローラ７に現在設定されている上記コントローラ種別をプレイヤに通知するために用いられる。具体的には、コントローラ７から無線コントローラモジュール１９（図２参照）へ送信データを送信する際、上記コントローラ種別に応じて複数のＬＥＤ７０２のうち、種別に対応するＬＥＤが点灯する。
【００７２】
また、ハウジング７１の上面には、操作ボタン７２ｂ及び操作ボタン７２ｅ〜７２ｇの間に、ハウジング７１に内蔵されたスピーカ７０６（図５参照）からの音を外部に放出するための音抜き孔が形成されている。
【００７３】
図４に示されているように、ハウジング７１の下面には、凹部が形成されている。ハウジング７１の下面の凹部は、プレイヤがコントローラ７の前面をマーカ６Ｌ及び６Ｒに向けて片手で把持したときに、当該プレイヤの人差し指や中指が位置するような位置に形成される。そして、上記凹部の後面側傾斜面には、操作ボタン７２ｉが設けられる。操作ボタン７２ｉは、プレイヤがボタン頭部を押下することによって、操作ボタン７２ｉに割り当てられた操作信号を出力するものであり、例えばＢボタンとして機能する。
【００７４】
ハウジング７１の前面には、撮像情報演算部７４（図５参照）の一部を構成する撮像素子７４３（図５参照）が設けられる。ここで、撮像情報演算部７４は、コントローラ７が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大２００フレーム／秒程度のサンプリング周期であるため比較的高速なコントローラ７の動きでも追跡して解析することができる。この撮像情報演算部７４の詳細な構成については、後述する。また、ハウジング７１の後面には、コネクタ７３が設けられている。コネクタ７３は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【００７５】
次に、図５を参照して、コントローラ７の内部構成について説明する。図５は、コントローラ７の構成を示すブロック図である。
【００７６】
図５に示されるように、コントローラ７は、上述した操作部７２の他に、撮像情報演算部７４、加速度センサ７０１、バイブレータ７０４、スピーカ７０６、サウンドＩＣ７０７、アンプ７０８、及び通信部７５を備えている。
【００７７】
撮像情報演算部７４は、赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、及び画像処理回路７４４を含んでいる。赤外線フィルタ７４１は、コントローラ７の前方から入射する光から赤外線のみを通過させる。レンズ７４２は、赤外線フィルタ７４１を透過した赤外線を集光して撮像素子７４３へ出射する。撮像素子７４３は、例えばＣＭＯＳセンサや或いはＣＣＤのような固体撮像素子であり、レンズ７４２が集光した赤外線を撮像する。すなわち、撮像素子７４３は、赤外線フィルタ７４１を通過した赤外線だけを撮像して画像データを生成する。撮像素子７４３で生成された画像データは、画像処理回路７４４で処理される。具体的には、画像処理回路７４４は、撮像素子７４３から得られた画像データを処理して高輝度部分を検知し、それらの位置座標や面積を検出した結果を示す処理結果データを通信部７５へ出力する。なお、この撮像情報演算部７４は、コントローラ７のハウジング７１に固設されており、ハウジング７１自体の方向を変えることによって、その撮像方向が変更される。
【００７８】
加速度センサ７０１は、図３に示されている３軸（Ｘ、Ｙ、Ｚ軸）の加速度センサである。この加速度センサ７０１は、３方向、すなわち、上下方向（図３に示すＹ軸）、左右方向（図３に示すＸ軸）、及び前後方向（図３に示すＺ軸）で直線加速度を検知する。
【００７９】
通信部７５は、マイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）７５１、メモリ７５２、無線モジュール７５３、及びアンテナ７５４を含んでいる。マイコン７５１は、処理の際にメモリ７５２を記憶領域として用いながら、送信データを無線送信する無線モジュール７５３を制御する。また、マイコン７５１は、アンテナ７５４を介して無線モジュール７５３が受信したゲーム装置３からのデータに応じて、サウンドＩＣ７０７及びバイブレータ７０４の動作を制御する。無線モジュール７５３及びアンテナ７５４を備えていることにより、コントローラ７がワイヤレスコントローラとして機能する。
【００８０】
サウンドＩＣ７０７は、通信部７５を介してゲーム装置３から送信されたサウンドデータ等を処理する。このサウンドデータがアンプ７０８で増幅されてスピーカ７０６へ送られることで、スピーカ７０６から音声が出力される。バイブレータ７０４は、例えば振動モータやソレノイドである。バイブレータ７０４は、通信部７５を介してゲーム装置３から送信された振動データ（例えば、バイブレータ７０４をＯＮ又はＯＦＦする信号）等に応じて作動する。バイブレータ７０４が作動することによってコントローラ７に振動が発生するので、それを把持しているプレイヤの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。
【００８１】
コントローラ７に設けられた操作部７２からの操作信号（キーデータ）、加速度センサ７０１からの３軸方向の加速度信号（Ｘ、Ｙ、及びＺ軸方向加速度データ）、及び撮像情報演算部７４からの処理結果データは、マイコン７５１に出力される。マイコン７５１は、入力された各データ（キーデータ、Ｘ、Ｙ、及びＺ軸方向加速度データ、処理結果データ）を無線コントローラモジュール１９（図２参照）へ送信する送信データとして一時的にメモリ７５２に格納する。ここで、通信部７５から無線コントローラモジュール１９への無線送信は、所定の周期毎に行われるが、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は１６．７ｍｓ（１／６０秒）であり、ブルートゥースで構成される通信部７５の送信間隔は５ｍｓである。マイコン７５１は、無線コントローラモジュール１９への送信タイミングが到来すると、メモリ７５２に格納されている操作情報を一連の操作データとして出力し、無線モジュール７５３へ出力する。そして、無線モジュール７５３は、例えばブルートゥースの技術を用いて、所定周波数の搬送波を用いて操作データをその電波信号としてアンテナ７５４から放射する。つまり、コントローラ７に設けられた操作部７２からのキーデータ、加速度センサ７０１からのＸ、Ｙ、及びＺ軸方向加速度データ、及び撮像情報演算部７４からの処理結果データがコントローラ７から送信される。そして、ゲーム装置３の無線コントローラモジュール１９でその電波信号（操作データ）を受信し、ゲーム装置３で当該電波信号を復調や復号することによって、一連の操作情報（キーデータ、Ｘ、Ｙ、及びＺ軸方向加速度データ、及び処理結果データ）を取得する。そして、ゲーム装置３のＣＰＵ１０は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を実行する。
【００８２】
なお、上述したハードウェア構成は単なる一例に過ぎず、ゲーム装置３やコントローラ７の構成は適宜変更可能である。
【００８３】
［ゲームの概要］
次に、ゲーム装置３のＣＰＵ１０がゲームプログラムを実行することによって進行するシューティングゲームの概要について説明する。図６は、仮想ゲーム空間の模式図である。図６に示されるように、仮想ゲーム空間には、プレイヤオブジェクト３１（第１オブジェクトの一例）、ミサイル４１〜４７（第２オブジェクトの一例）、及び仮想カメラ３０が存在する。プレイヤオブジェクト３１は、プレイヤによるコントローラ７の操作に応じて仮想ゲーム空間内を移動するオブジェクトである。ミサイル４１〜４７は、プレイヤオブジェクトを攻撃する不図示の敵オブジェクトから出射されたミサイルであり、いわゆるノンプレイヤオブジェクトである。仮想カメラ３０は、プレイヤオブジェクト３１と一定の距離を保ちながらプレイヤオブジェクト３１を注視するように、その視点位置、視野角、位置座標、移動速度等が制御される。これにより、仮想カメラ３０の視点からプレイヤオブジェクト３１を見た仮想ゲーム空間の画像が液晶テレビ２の画面に表示される。プレイヤオブジェクト３１は、仮想カメラ３０によって注視されているため、液晶テレビ２の画面中央部に表示される。なお、仮想ゲーム空間内には、プレイヤオブジェクト３１やミサイル４１〜４７の他に、ミサイル４１〜４７を出射した敵オブジェクト、地面や海などの地形オブジェクトが存在するが、図６以降に示す仮想ゲーム空間の模式図においては、これらのオブジェクトが省略されている。また、本実施形態では、ゲームプログラムに基づいてシューティングゲームが実行される場合について説明するが、本発明は、仮想ゲーム空間内のオブジェクトを仮想カメラの視点（３人称視点）から見た画像を表示するゲームであれば、例えばアクションゲーム等の他のゲームにも適用可能である。
【００８４】
図６に示されるように、ミサイル４１〜４７のうち、仮想カメラ３０の視野範囲内に含まれているのは、ミサイル４１〜４３である。このため、従来の描画方法であれば、仮想カメラ３０の視野範囲外に存在するミサイル４４〜４７については、プレイヤオブジェクト３１と共に液晶テレビ２の画面に表示することはできない。これに対して、本実施形態に係るゲーム装置３は、通常であれば液晶テレビ２の画面に表示されないミサイル４４，４５，４７を表示可能としたことを主な特徴としている。以下、ミサイル４４，４５，４７を表示可能とするためのゲーム装置３の構成、及びゲーム装置３において行われる処理について詳細に説明する。
【００８５】
［主要データ］
図７は、外部メインメモリ１２のメモリ構成の一例を示す図である。図７に示されるように、外部メインメモリ１２は、プログラム記憶領域１２１、データ記憶領域１２５、及び作業領域１３２を有している。プログラム記憶領域１２１には、ＣＰＵ１０によって実行されるゲームプログラムが記憶される。プログラム記憶領域１２１及びデータ記憶領域１２５内のデータは、光ディスク４に予め記憶されたデータが、ゲーム処理に際して光ディスク４から外部メインメモリ１２に読み出されたものである。
【００８６】
プログラム記憶領域１２１には、メイン処理プログラム１２２、描画処理プログラム１２３、補正座標算出処理プログラム１２４が記憶されている。メイン処理プログラム１２２は、後述する図１２に示されているメイン処理をＣＰＵ１０に実行させるためのプログラムである。描画処理プログラム１２３は、後述する図１３に示されている描画処理をＣＰＵ１０に実行させるためのプログラムである。補正座標算出処理プログラム１２４は、後述する図１４に示されている補正座標算出処理をＣＰＵ１０に実行させるためのプログラムである。
【００８７】
データ記憶領域１２５には、プレイヤオブジェクトデータ１２６、ノンプレイヤオブジェクトデータ１２７、地形オブジェクトデータ１２８、閾値データ１２９、移動割合データ１３０、エフェクトデータ１３１が記憶されている。
【００８８】
プレイヤオブジェクトデータ１２６は、プレイヤオブジェクト３１に関するデータであり、プレイヤオブジェクト３１のモデリングデータ、テクスチャーデータ（ＲＧＢ値）等から構成される。ノンプレイヤオブジェクトデータ１２７は、ミサイル４１〜４７、敵オブジェクト等のノンプレイヤオブジェクトに関するデータであり、ノンプレイヤオブジェクトのモデリングデータ、テクスチャーデータ（ＲＧＢ値）等から構成される。地形オブジェクトデータ１２８は、仮想ゲーム空間内の地面、海、川等の様々な地形に関するデータである。エフェクトデータ１３１は、ゲーム中に用いられる各種エフェクトに用いられる画像データである。エフェクトデータ１３１としては、例えばミサイル４１がプレイヤオブジェクト３１に命中したことを示す画像データが挙げられる。
【００８９】
閾値データ１２９は、後述する図１４の補正座標算出処理において使用される閾値を示すデータであり、補正座標算出処理に際してデータ記憶領域１２５から適宜読み出される。移動割合データ１３０は、仮想カメラ３０の視野範囲内に含まれていないミサイル４４〜４７を仮想カメラ３０の撮像方向８１（図６参照）へ移動させる割合を規定するデータである。この移動割合データ１３０は、閾値データ１２９と同様に補正座標算出処理において使用されるデータであり、補正座標算出処理に際して閾値データ１２９と共に適宜読み出される。
【００９０】
作業領域１３２は、ゲーム処理において生成されたデータを一時的に格納する記憶領域である。この作業領域１３２には、操作データ１３３、位置座標データ１３４、仮想カメラデータ１３５、補正フラグ１３６、及び補正座標データ１３７が格納される。
【００９１】
操作データ１３３は、コントローラ７からゲーム装置３へ送信された操作データである。操作データは、コントローラ７からゲーム装置３へ５ｍｓ毎に送信される。このため、操作データ１３３は、コントローラ７から送信された操作データがゲーム装置３によって受信される毎に更新される。
【００９２】
位置座標データ１３４は、プレイヤオブジェクト３０やミサイル４１〜４７等の各種オブジェクトの仮想ゲーム空間における位置座標を示すデータであり、例えばワールド座標系によって表される座標のデータである。これらの各オブジェクトの位置座標に基づいて、例えばプレイヤオブジェクト３０とミサイル４１〜４７との接触判定等の一般的なゲーム処理が行われる。なお、図には示されていないが、作業領域１３２には、各オブジェクトに関するデータとして、各オブジェクトが移動する向きを示すデータ、各オブジェクトの１フレーム毎の移動量を示すデータ等が記憶されている。
【００９３】
仮想カメラデータ１３５は、仮想カメラ３０に関するデータであり、仮想カメラ３０の視点位置を示すデータ、仮想カメラ３０の撮像方向８１を示すデータ、仮想カメラ３０の仰角を示すデータ等から構成されている。
【００９４】
補正フラグ１３６は、仮想カメラ３０の視野範囲内に含めるべきオブジェクトであることを示すためのデータである。作業領域１３２には、仮想ゲーム空間内に存在するプレイヤオブジェクト３１を除くその他のオブジェクト毎に、補正フラグ１３６が記憶されている。例えばプレイヤオブジェクト３１に対して近付いてくる或いは攻撃してくるミサイル４１〜４７や敵オブジェクト等のノンプレイヤオブジェクトについては、仮想カメラ３０の視野範囲内に含めることが必要な場合がある。これは、ノンプレイヤオブジェクトがプレイヤオブジェクト３１の近くに位置しているにも拘わらず仮想カメラ３０の視野範囲に含まれないために液晶テレビ２の画面に表示されず、プレイヤが不利益を被る可能性があるからである。このため、本実施形態では、ノンプレイヤオブジェクトに対しては、補正フラグ１３６が“１”に設定される。一方、ゲームの進行に伴ってプレイヤオブジェクト３１から離れていく地形オブジェクト等のその他のオブジェクトは、プレイヤオブジェクト３１に近付いてきたり或いはプレイヤオブジェクト３１を攻撃することはないため、必ずしも仮想カメラ３０の視野範囲内に含める必要はない。このため、本実施形態では、地形オブジェクト等のその他のオブジェクトに対しては、補正フラグ１３６が“０”に設定される。ただし、地形オブジェクトであっても、例えばプレイヤオブジェクト３１に近付いてきてプレイヤオブジェクト３１に衝突した場合にプレイヤオブジェクト３１に対してダメージを与えるような壁オブジェクトについては、補正フラグ１３６が“１”に設定される。このように、補正フラグ１３６の設定は、ゲームの内容に応じて適宜設定される。
【００９５】
補正座標データ１３７は、補正フラグ１３６が“１”に設定されているオブジェクトのうち、仮想ゲーム空間の画像を描画するに際して、仮想カメラ３０の視野範囲内に含めるための補正座標を示すデータである。後に詳述するが、補正座標データ１３７が記憶されていないオブジェクト（例えばプレイヤオブジェクト３１やミサイル４１，４２）は、位置座標データ１３４が示す位置座標に位置した状態で液晶テレビ２の画面に表示され、補正座標データ１３７が記憶されているオブジェクト（例えばミサイル４３〜４７）は、この補正座標データ１３７が示す補正座標に位置した状態で液晶テレビ２の画面に表示される。なお、補正座標に位置した状態においても仮想カメラ３０の視野範囲内に位置しないオブジェクトについては、液晶テレビ２に表示されることはない。
【００９６】
なお、以上説明した主要データは、外部メインメモリ１２に換えて内部メインメモリ１１ｅに記憶されてもよいし、或いは外部メインメモリ１２及び内部メインメモリ１１ｅの両方に記憶されてもよい。
【００９７】
［ゲーム装置３の機能構成］
図８は、本実施形態に係るゲームプログラムを実行するゲーム装置３の機能構成の一例を示す機能構成図である。図８に示されるように、ゲーム装置３のＣＰＵ１０は、機能的に、入力受付手段として機能する入力受付部１０１、位置座標算出手段として機能する位置座標算出部１０２、座標判定手段として機能する座標判定部１０３、補正座標算出手段として機能する補正座標算出部１０４、及び表示手段として機能する表示部１０５を備えている。
【００９８】
ゲーム装置３のＣＰＵ１０は、光ディスク４等に予め格納された本発明に係るゲームプログラムを実行することにより、入力受付部１０１、位置座標算出部１０２、座標判定部１０３、補正座標算出部１０４、及び表示部１０５として機能する。以下、図６に示されているように仮想ゲーム空間内にプレイヤオブジェクト３１及びミサイル４１〜４７が存在する場合を例に、各機能部によって行われる処理について説明する。
【００９９】
入力受付部１０１は、コントローラ７からの操作情報の入力を受け付ける。具体的には、入力受付部１０１は、コントローラ７から送信された電波信号を無線コントローラモジュール１９によって受信し、その電波信号を復調又は復号して得られた操作情報を操作データ１３３として作業領域１３２（図７参照）に格納する。
【０１００】
位置座標算出部１０２は、仮想ゲーム空間におけるプレイヤオブジェクト３１、ミサイル４１〜４７、及び仮想カメラ３０の視点の位置座標を算出する。上述したように、プレイヤがコントローラ７を操作することにより、コントローラ７から送信された操作データが操作データ１３３として入力受付部１０１によって作業領域１３２に格納される。位置座標算出部１０２は、この入力受付部１０１によって受け付けられた操作データ１３３が示す操作情報に基づいて、プレイヤオブジェクト３１の位置座標を算出する。このプレイヤオブジェクト３１の位置座標、及びミサイル４１〜４７の位置座標は、位置座標データ１３４として作業領域１３２に格納される。コントローラ７から操作データが送信される毎に（例えば５ｍｓ間隔で）操作データ１３３が更新されるのに対して、この位置座標データ１３４は、最新の操作データ１３３に基づいて、フレーム単位（例えば１／６０秒間隔）で更新される。
【０１０１】
座標判定部１０３は、仮想カメラ３０の撮像方向８１に関して、ミサイル４１〜４７がプレイヤオブジェクト３１よりも仮想カメラ３０側に位置するか否かを判定するものである。図９は、座標判定部１０３による判定処理を説明するための図である。図６及び図９（Ａ）に示されるように、座標判定部１０３は、仮想カメラ３０の撮像方向８１に関して、プレイヤオブジェクト３１の重心位置の位置座標８０（所定点の一例）よりも仮想カメラ３０側に位置するか否かの判定処理を、ミサイル４１〜４７の各ノンプレイヤオブジェクトに対して行う。図６に示される仮想ゲーム空間の状態では、ミサイル４１，４２がプレイヤオブジェクト３１よりも仮想カメラ３０側に位置していないと判定され、ミサイル４３〜４７がプレイヤオブジェクト３１よりも仮想カメラ３０側に位置していると判定される（図９（Ａ）参照）。座標判定部１０３は、このような判定処理を容易に行うために、本実施形態においては、ベクトル算出部１０３１、内積算出部１０３２、及びベクトル判定部１０３３から構成されている。
【０１０２】
ベクトル算出部１０３１は、位置座標算出部１０２によって算出されたミサイル４１〜４７の位置座標に基づいて、ミサイル４１〜４７の各オブジェクトに対して、オブジェクト方向ベクトルＶ１及びカメラ方向ベクトルＶ２を計算する。ここで、カメラ方向ベクトルＶ２は、仮想カメラ３０の位置（例えば仮想カメラ３０の視点）を始点とし且つプレイヤオブジェクト３１の位置座標を終点とするベクトルである。オブジェクト方向ベクトルＶ１は、プレイヤオブジェクト３１の位置座標を始点とし且つノンプレイヤオブジェクト（例えばミサイル４４）の位置座標を終点とするベクトルである。
【０１０３】
例えばミサイル４４に対してベクトルＶ１，Ｖ２を算出する場合、図９（Ｂ）に示されるように、ベクトル算出部１０３１は、位置座標算出部１０２によって算出された仮想カメラ３０の視点の位置座標２９、及びプレイヤオブジェクト３１の位置座標８０に基づいて、仮想カメラ３０の視点の位置座標２９を始点とし且つプレイヤオブジェクト３１の位置座標８０を終点とするカメラ方向ベクトルＶ２を計算する。そして、ベクトル算出部１０３１は、位置座標算出部１０２によって算出されたプレイヤオブジェクト３１の位置座標８０、及びミサイル４４の位置座標３４に基づいて、プレイヤオブジェクト３１の位置座標８０を始点とし且つミサイル４４の位置座標３４を終点とするミサイル４４のオブジェクト方向ベクトルＶ１を算出する。なお、ここではミサイル４４に対するオブジェクト方向ベクトルＶ１を算出する場合を例に説明したが、ミサイル４３，４５〜４７についても同様の方法でオブジェクト方向ベクトルＶ１が算出される。また、ここではカメラ方向ベクトルＶ２の始点が仮想カメラ３０の視点の位置座標２９である場合を例に説明したが、カメラ方向ベクトルＶ２の始点は、仮想カメラ３０の他の位置であってもよい。
【０１０４】
内積算出部１０３２は、ミサイル４１〜４７のそれぞれに対して、カメラ方向ベクトルＶ２とオブジェクト方向ベクトルＶ１との内積を算出する。これにより、仮想カメラ３０の撮像方向８１におけるプレイヤオブジェクト３１の位置座標８０から各ノンプレイヤオブジェクトの位置座標までの距離を求めることができる。
【０１０５】
ベクトル判定部１０３３は、内積算出部１０３２によって算出された内積と、データ記憶領域１２５に記憶されている閾値データ１２９（図７参照）が示す閾値（所定の閾値の一例）との大小関係に基づいて、ノンプレイヤオブジェクトがプレイヤオブジェクト３１よりも仮想カメラ３０側に位置するか否かを判定する。本実施形態においては、閾値として“０”を示す閾値データ１２９がデータ記憶領域１２５に記憶されている。このため、ベクトル判定部１０３３は、内積算出部１０３２によって算出された内積が“０”未満であるか否かに基づいて、ノンプレイヤオブジェクトがプレイヤオブジェクト３１よりも仮想カメラ３０側に位置するか否かを判定する。
【０１０６】
例えばミサイル４４の場合、カメラ方向ベクトルＶ２とオブジェクト方向ベクトルＶ１とのなす角度が９０°以上であるため、ミサイル４４に対する内積、すなわち仮想カメラ３０の撮像方向８１における位置座標８０から位置座標３４までの距離がマイナスとなる。このため、ベクトル判定部１０３３は、ミサイル４４に対しては、プレイヤオブジェクト３１の位置座標８０よりも仮想カメラ３０側に位置していると判定する。
【０１０７】
なお、ミサイル４３，４５〜４７は、カメラ方向ベクトルＶ２とオブジェクト方向ベクトルＶ１とのなす角度が９０°以上であるため、ミサイル４４と同様に、プレイヤオブジェクト３１の位置座標８０よりも仮想カメラ３０側に位置していると判定される。これに対して、ミサイル４１，４２は、カメラ方向ベクトルＶ２とオブジェクト方向ベクトルＶ１とのなす角度が９０°未満であるために両ベクトルの内積がプラスとなる。このため、ミサイル４１，４２については、プレイヤオブジェクト３１の位置座標８０よりも仮想カメラ３０側に位置していないと判定される。
【０１０８】
このように、座標判定部１０３は、仮想カメラ３０の撮像方向８１、及びプレイヤオブジェクト３１の位置座標８０からノンプレイヤオブジェクトへの向きに基づいて、ノンプレイヤオブジェクトがプレイヤオブジェクト３１の位置座標８０よりも仮想カメラ３０側に位置しているか否かを、ノンプレイヤオブジェクト毎に判定する。
【０１０９】
補正座標算出部１０４は、仮想カメラ３０側に位置すると座標判定部１０３によって判定されたノンプレイヤオブジェクト（ここではミサイル４３〜４７）に対して、各ミサイル４３〜４７の位置座標を仮想カメラ３０の撮像方向８１へ移動させた補正座標を算出する。
【０１１０】
ところで、ノンプレイヤオブジェクト（例えばミサイル４４）の補正座標がプレイヤオブジェクト３１の位置座標８０に対して撮像方向８１の前方（図９に示されている一点鎖線よりも上側）となった場合、本来はプレイヤオブジェクト３１の後方に位置するはずのノンプレイヤオブジェクトがプレイヤオブジェクト３１の前方に位置した状態で液晶テレビ２の画面に表示されることになる。このため、このような不自然な表示が行われないように、補正座標算出部１０４は、本実施形態では、仮想カメラ３０側に位置すると判定されたノンプレイヤオブジェクトの位置座標をプレイヤオブジェクト３１の位置座標８０よりも仮想カメラ３０側（図９に示されている一点鎖線よりも下側）に移動させた座標を、そのノンプレイヤオブジェクトの補正座標として算出する。言い換えれば、補正座標算出部１０４は、算出すべき補正座標が撮像方向８１に関して位置座標８０の前方（図９に示されている一点鎖線よりも上側）に位置しないように、補正座標を算出する。
【０１１１】
図１０は、ノンプレイヤオブジェクトの補正座標の算出方法を説明するための図である。以下、図１０を参照しつつ、ミサイル４４の補正座標を算出する場合を例に、補正座標の具体的な算出方法について説明する。補正座標算出部１０４は、補正座標を算出すべきノンプレイヤオブジェクトの位置座標から仮想カメラ３０の撮像方向８１における成分を消すために、以下の式（１）で示される演算処理を実行する。
【０１１２】
【数１】
0005525250.tif 000002
式（１）において、Ｐ１はミサイル４４の位置座標であり、Ｖ２はカメラ方向ベクトルであり（図９（Ｂ）参照）、Ｆはカメラ方向ベクトルＶ２とオブジェクト方向ベクトルＶ１（図９（Ｂ）参照）との内積である。そして、Ｐ２は、ミサイル４４を撮像方向８１に関してプレイヤオブジェクト３１の位置座標８０の位置まで移動させた仮座標である。この仮座標の位置は、図１０（Ａ）にミサイル６４として示されている。
【０１１３】
次に、補正座標算出部１０４は、仮想ゲーム空間内では位置座標Ｐ１に位置しているミサイル４４の補正座標Ｐ３を算出するために、以下の式（２）で示される演算処理を実行する。
【０１１４】
【数２】
0005525250.tif 000003
式（２）において、Ｐ２はミサイル４４の仮座標であり、Ｖ２はカメラ方向ベクトルであり、Ｆはカメラ方向ベクトルＶ２とオブジェクト方向ベクトルＶ１（図９（Ｂ）参照）との内積であり、Ｎは補正座標をどの程度プレイヤオブジェクト３１の位置座標８０へ近付けた位置とするかを規定するための補正係数である。この式（２）に基づく演算処理が実行されることにより、図１０（Ｂ）に示されるように、仮座標Ｐ２に位置するミサイル４４（ミサイル６４）を、位置座標をＰ１側へ戻した補正座標Ｐ３が算出される。図１０（Ｂ）には、この補正座標Ｐ３に位置するミサイル４４がミサイル５４として例示されている。
【０１１５】
ミサイル４４に対して式（１）及び式（２）に基づく演算処理が補正座標算出部１０４によって実行されることにより、ミサイル４４が位置座標Ｐ１に位置している状態では撮像方向８１における位置座標８０からの距離がＬ（第１距離の一例）であるのに対して、補正座標Ｐ３に位置している状態では撮像方向８１における位置座標８０からの距離がＬ／Ｎとなっている。すなわち、撮像方向８１における位置座標８０からの距離が短くなり、位置座標８０よりも仮想カメラ３０側の空間が位置座標８０を基準として圧縮されたような空間となる。
【０１１６】
図１１は、ミサイル４３〜４７が撮像方向８１へ移動した状態を示す仮想ゲーム空間の模式図である。補正座標算出部１０４は、ミサイル４３，４５〜４７に対しても、ミサイル４４と同様の方法でそれぞれの補正座標を算出する。図１１には、ミサイル４３〜４７が、本来あるべき位置座標に位置している状態から補正座標算出部１０４によって算出された補正座標の位置に移動する様子が模式的に示されている。図１１では、本来あるべき位置座標に位置しているミサイル４３がミサイル５３として示され、本来あるべき位置座標に位置しているミサイル４４がミサイル５４として示され、本来あるべき位置座標に位置しているミサイル４５がミサイル５５として示され、本来あるべき位置座標に位置しているミサイル４６がミサイル５６として示され、本来あるべき位置座標に位置しているミサイル４７がミサイル５７として示されている。図１１から明らかなように、仮想カメラ３０の視野範囲外に位置しているノンプレイヤオブジェクト（ここではミサイル４４，４５，４７）が、補正座標に配置されることで仮想カメラ３０の視野範囲内に含まれているのが分かる。
【０１１７】
以上説明したように、補正座標算出部１０４は、仮想カメラ３０の撮像方向８１におけるプレイヤオブジェクト３１の位置座標８０からノンプレイヤオブジェクトの位置座標までの距離（ミサイル４４の場合にはＬ）に基づいて、仮想カメラ３０の撮像方向８１におけるプレイヤオブジェクト３１の位置座標８０からノンプレイヤオブジェクトの補正座標までの距離を、仮想カメラ３０の撮像方向８１におけるプレイヤオブジェクト３１の位置座標からノンプレイヤオブジェクトの位置座標までの距離の所定割合（本実施形態では１／Ｎ）となるように、各ノンプレイヤオブジェクトの補正座標を算出する。
【０１１８】
なお、仮想カメラ３０の視野範囲外に位置しているミサイル４６については、補正座標に配置されたとしても仮想カメラ３０の視野範囲内に含まれていないが、上記式（２）における補正係数Ｎの値を大きくすることで、ミサイル４６の補正座標を仮想カメラ３０の視野範囲内に含めることができる。すなわち、仮想カメラ３０の視野範囲内に含まれるノンプレイヤオブジェクトの数を多くすることができる。しかしながら、補正係数Ｎの値を大きくし過ぎると、撮像方向８１におけるプレイヤオブジェクト３１の後方の空間が必要以上に圧縮され過ぎて、各ノンプレイヤオブジェクトが実際よりもプレイヤオブジェクト３０に対してかなり近い位置に表示され、不自然さが目立つようになる。したがって、補正係数Ｎの値は、これらのことを考慮して、適切な値に設定される。
【０１１９】
表示部１０５は、プレイヤオブジェクト３１、及びプレイヤオブジェクト３１の位置座標８０よりも仮想カメラ３０側に位置しないと判定されたミサイル４１，４２がそれぞれの位置座標に位置すると共に、プレイヤオブジェクト３１の位置座標８０よりも仮想カメラ３０側に位置すると判定されたミサイル４３〜４７がそれぞれの補正座標に位置する状態を示す描画用空間の画像を生成する。その際、表示部１０５は、各オブジェクトの位置座標又は補正座標を各オブジェクトの重心座標として、描画用空間の画像を生成する。ここで、描画用空間は、全てのオブジェクトが本来あるべき位置座標に配置された仮想ゲーム空間とは異なる仮想ゲーム空間である。言い換えれば、描画用空間は、あくまでも本来ならば仮想カメラ３０の視野範囲内に含まれないオブジェクトを視野範囲内の含ませるような補正座標に配置させた仮想ゲーム空間であり、各オブジェクトの位置座標の制御やオブジェクト同士の接触判定等は、全てのオブジェクトが本来あるべき位置座標に配置された仮想ゲーム空間に対して行われる。
【０１２０】
表示部１０５は、描画用空間の画像データを液晶テレビ２へ出力することにより、描画用空間の画像を仮想ゲーム空間の画像として液晶テレビ２に表示させる。これにより、本来ならば画面に写らないはずのオブジェクト（ここではミサイル４４，４５，４７）がプレイヤオブジェクト３１と共に表示される。
【０１２１】
［メイン処理］
次に、ゲーム装置３によって実行されるゲーム処理について説明する。ゲーム装置３の電源が投入されると、ゲーム装置３のＣＰＵ１０は、ＲＯＭ／ＲＴＣ１３に記憶されている起動プログラムを実行する。これにより、外部メインメモリ１２等の各ユニットが初期化される。そして、光ディスク４に記憶されたゲームプログラムが外部メインメモリ１２に読み込まれ、ＣＰＵ１０によって当該ゲームプログラムの実行が開始される。
【０１２２】
図１２は、ゲーム装置３で実行されるメイン処理の一例を示すフローチャートである。まず、入力受付部１０１は、以降の処理において用いられるデータの初期化処理を実行する（ステップＳ１）。具体的には、ゲーム開始時における仮想カメラ３０の初期位置及び各種オブジェクトの初期配置を示すデータを外部メインメモリ１２に記憶させる。また、以降の処理に使用される作業領域１３２の各種変数やフラグも初期化する。
【０１２３】
続いて、３次元仮想ゲーム空間が構築されて液晶テレビ２に表示される。すなわち、ＣＰＵ１０は、３次元のゲーム空間を構築し、各種オブジェクトの初期配置を示すデータに従って各オブジェクトを配置する。以上のように構築されたゲーム空間を仮想カメラ３０で撮像した描画用空間の画像が生成され、生成された画像が液晶テレビ２に表示される。以降、ステップＳ２〜Ｓ７の処理ループが１フレーム（本実施形態では１／６０秒）毎に繰り返されることによって、ゲームが進行していく。
【０１２４】
ステップＳ１の初期化処理に続いて、入力受付部１０１は、コントローラ７からの操作情報の入力を受け付ける（ステップＳ２）。すなわち、プレイヤが行った操作内容を示す操作データをコントローラ７から取得する。これを受けて、位置座標算出部１０２は、各オブジェクトの移動処理を実行する（ステップＳ３）。具体的には、位置座標算出部１０２は、プレイヤオブジェクト３１以外のオブジェクトを仮想ゲーム空間内において適宜移動させる。そして、位置座標算出部１０２は、仮想ゲーム空間内において、プレイヤオブジェクト３０を操作データ（操作データ１３３）の内容に従って移動させる。
【０１２５】
続いて、位置座標算出部１０２は、プレイヤによるコントローラ７の操作に応じて仮想ゲーム空間内を移動するプレイヤオブジェクト３１を注視するように仮想カメラ３０に関する各パラメータ（仮想カメラ３０の位置座標、プレイヤオブジェクト３１からの距離、撮像方向８１等）を制御する（ステップＳ４）。
【０１２６】
位置座標算出部１０２は、ステップＳ３及びステップＳ４の処理を踏まえて、プレイヤオブジェクト３１、ミサイル４１〜４７等のノンプレイヤオブジェクト、地形オブジェクト等の位置座標を算出する（ステップＳ５）。この位置座標を算出する処理は、従来の方法と同様であるため、ここでの詳細な説明は省略する。
【０１２７】
次に、仮想カメラ３０の視野範囲内に含まれていないノンプレイヤオブジェクトの補正座標を算出し、描画用空間の画像を液晶テレビ２に表示させる描画処理が行われる（ステップＳ６）。このステップＳ６における描画処理については、図１３に基づいて詳述する。このステップＳ６の描画処理が行われた後、入力受付部１０１は、電源ボタン２４、リセットボタン２５、又は操作ボタン７２ｈの操作の有無に基づいて、ゲームが終了したか否かを判定する（ステップＳ７）。ゲームが終了していないと入力受付部１０１によって判定された場合（ステップＳ７：ＮＯ）、ステップＳ２以降のゲーム処理が繰り返される。逆に、ゲームが終了したと入力受付部１０１によって判定された場合（ステップＳ７：ＹＥＳ）、ゲーム処理が終了する。
【０１２８】
［描画処理］
図１３は、図１２のステップＳ６における描画処理の詳細フローチャートである。ステップＳ５において各オブジェクトの位置座標が算出されると、仮想カメラ３０の視野範囲内に含めるべきノンプレイヤオブジェクトに対して補正座標を算出する補正座標算出処理が実行される（ステップＳ６１）。この補正座標算出処理については、図１４に基づいて詳述する。
【０１２９】
仮想カメラ３０の視野範囲内に含めるべきノンプレイヤオブジェクトに対して補正座標が算出されると、表示部１０５は、描画用空間の画像を生成して液晶テレビ２へ出力する（ステップＳ６２）。具体的には、表示部１０５は、補正座標が算出されてないノンプレイヤオブジェクト（本実施形態ではミサイル４１，４２）及びプレイヤオブジェクト３１が位置座標に位置すると共に、補正座標が算出されたノンプレイヤオブジェクト（本実施形態ではミサイル４３〜４７）が補正座標に位置した状態で仮想カメラ３０によって撮像された描画用空間の画像データをＧＰＵ１１ｂに生成させる。そして、表示部１０５は、このようにして生成した描画用空間の画像データを液晶テレビ２へ出力して、液晶テレビ２の画面に仮想ゲーム空間の画像として表示させる。
【０１３０】
［補正座標算出処理］
図１４は、図１３のステップＳ６１における補正座標算出処理の詳細フローチャートである。ベクトル算出部１０３１は、図１４に示されるように、カメラ方向ベクトルＶ２を計算する（ステップＳ６１１）。具体的には、ベクトル算出部１０３１は、位置座標算出部１０２によって算出された仮想カメラ３０の視点の位置座標２９、及びプレイヤオブジェクト３１の重心位置の位置座標８０を取得する。そして、ベクトル算出部１０３１は、位置座標２９を始点とし且つ位置座標８０を終点とするカメラ方向ベクトルＶ２を計算する（図９（Ｂ）参照）。
【０１３１】
次に、ベクトル算出部１０３１は、オブジェクト方向ベクトルＶ１を計算する（ステップＳ６１２）。具体的には、ベクトル算出部１０３１は、位置座標算出部１０２によって算出されたプレイヤオブジェクト３１の重心位置の位置座標８０、及びノンプレイヤオブジェクトの位置座標（ミサイル４４の場合は位置座標３４）を取得する。そして、ベクトル算出部１０３１は、位置座標８０を始点とし且つノンプレイヤオブジェクトの位置座標を終点とするオブジェクト方向ベクトルＶ１を計算する（図９（Ｂ）参照）。
【０１３２】
オブジェクト方向ベクトルＶ１が計算されると、内積算出部１０３２は、カメラ方向ベクトルＶ２とオブジェクト方向ベクトルＶ１との内積Ｆを算出する（ステップＳ６１３）。これを受けて、ベクトル判定部１０３３は、データ記憶領域１２５から閾値データ１２９（例えば“０”）を読み出し、ステップＳ６１３の処理で算出された内積Ｆが閾値データ１２９で示される閾値“０”未満であるか否かを判定する（ステップＳ６１４）。このステップＳ６１４の処理が行われることにより、ステップＳ６１２の処理でオブジェクト方向ベクトルＶ１が算出されたノンプレイヤオブジェクトの位置座標が、撮像方向８１におけるプレイヤオブジェクト３１の位置座標８０よりも仮想カメラ３０側に位置するか否かが判定される。
【０１３３】
内積Ｆが“０”未満ではないとベクトル判定部１０３３によって判定された場合（ステップＳ６１４：ＮＯ）、対応するノンプレイヤオブジェクトが、撮像方向８１に対してプレイヤオブジェクト３１の位置座標８０よりも仮想カメラ３０側に位置していないと判断することができる。このため、補正座標算出部１０４は、対応するノンプレイヤオブジェクトに対してステップＳ５の計算処理によって算出された位置座標を、液晶テレビ２にそのノンプレイヤオブジェクトを表示するための表示用の座標に設定する（ステップＳ６１５）。この設定情報は、作業領域１３２に一時的に格納される。
【０１３４】
内積Ｆが“０”未満であるとベクトル判定部１０３３によって判定された場合（ステップＳ６１４：ＹＥＳ）、対応するノンプレイヤオブジェクトが、撮像方向８１に対してプレイヤオブジェクト３１の位置座標８０よりも仮想カメラ３０側に位置していると判断することができる。このため、補正座標算出部１０４は、対応するノンプレイヤオブジェクトに対して、ステップＳ５の計算処理によって算出された位置座標を基に上述した式（１）及び式（２）の演算処理を実行して、補正座標を算出する（ステップＳ６１６）。そして、補正座標算出部１０４は、対応するノンプレイヤオブジェクトに対してステップＳ６１６の処理によって算出された補正座標を、液晶テレビ２にそのノンプレイヤオブジェクトを表示するための表示用の座標に設定する（ステップＳ６１７）。この設定情報は、作業領域１３２に一時的に格納される。なお、補正座標が表示用の座標が設定されたとしても、その補正座標が仮想カメラ３０の視野範囲内に位置していないことによって、対応するノンプレイヤオブジェクトが液晶テレビ２に表示されない場合もある。
【０１３５】
ステップＳ６１５の処理によって位置座標が表示用の座標に設定された場合、又はステップＳ６１７の処理によって補正座標が表示用の座標に設定された場合、座標判定部１０３は、補正フラグ１３６が“１”に設定されている全てのノンプレイヤオブジェクトに対して補正座標が表示用の座標が設定されたか否かを判定する（ステップＳ６１８）。補正フラグ１３６が“１”に設定されているにも拘わらず補正座標が表示用の座標が設定されていないノンプレイヤオブジェクトがある場合（ステップＳ６１８：ＮＯ）、そのノンプレイヤオブジェクトに対して、ステップＳ６１２以降の処理が行われる。補正フラグ１３６が“１”に設定されている全てのノンプレイヤオブジェクトの表示用の座標の設定が完了すると（ステップＳ６１８：ＹＥＳ）、上述した図１３のステップＳ６２へ処理が進められる。これにより、例えばプレイヤオブジェクト３１及びミサイル４１，４２が位置座標に位置すると共に、ミサイル４３〜４７が補正座標に位置した状態の描画用空間を仮想カメラ３０で撮像した描画用空間の画像が液晶テレビ２の画面に表示される。
【０１３６】
［本実施形態の作用効果］
以上説明したように、本実施形態によれば、プレイヤオブジェクト３１及びプレイヤオブジェクト３１の位置座標８０よりも仮想カメラ３０側に位置しないミサイル４１，４２がそれぞれの位置座標に位置し、且つ位置座標８０よりも仮想カメラ３０側に位置するミサイル４３〜４７がそれぞれの補正座標に位置した描画用空間の画像が液晶テレビ２の画面に表示される。このため、例えば撮像方向８１における仮想カメラ３０の後方などの仮想カメラ３０の視野範囲外に位置するミサイル４４，４５，４７を仮想カメラ３０の視野範囲内に含めた状態のゲーム空間の画像を表示することができる（図１１参照）。したがって、仮想カメラ３０の視点を注視対象であるプレイヤオブジェクト３１から離すことなく、従来の描画方法では写らないオブジェクトを表示することができる。
【０１３７】
また、本実施形態では、ミサイル４４等のノンプレイヤオブジェクトを撮像方向８１へ移動させた補正座標が算出されるので、各ノンプレイヤオブジェクトの画面上の位置が変化せず、各ノンプレイヤオブジェクトを自然な状態で表示することができる。
【０１３８】
また、本実施形態では、各ノンプレイヤオブジェクトの補正座標がプレイヤオブジェクト３１の位置座標８０よりも仮想カメラ３０側に位置するように算出される。このため、例えば撮像方向８１に関してプレイヤオブジェクト３１の後方に位置するミサイル４３がプレイヤオブジェクト３１の前方に位置した状態で表示されるといった不自然な表示となることを防止することができる。
【０１３９】
また、本実施形態では、撮像方向８１におけるプレイヤオブジェクト３１の位置座標８０からノンプレイヤオブジェクトの位置座標までの第１距離（ミサイル４４については距離Ｌ：図１０（Ｃ）参照）に基づいて補正座標が算出される。このため、補正座標を容易に算出することができる。
【０１４０】
また、本実施形態では、ミサイル４３〜４７の位置座標が同じ割合で補正される。すなわち、ミサイル４３〜４７の各ノンプレイヤオブジェクトの撮像方向８１における位置座標８０からの距離いずれも１／Ｎ倍となるように補正座標が算出される。このため、例えばプレイヤオブジェクト３１からの距離がミサイル４４よりも遠いミサイル４５がミサイル４４よりもプレイヤオブジェクト３１に近い位置に位置した状態で表示されるといった不自然な表示が行われることを防止することができる。
【０１４１】
また、本実施形態では、撮像方向８１に関して、各ノンプレイヤオブジェクトがプレイヤオブジェクト３１の位置座標８０よりも仮想カメラ３０側に位置するか否かが判定される。この判定処理は、各ノンプレイヤオブジェクトの位置座標のうちの撮像方向成分のみを使用すればよいので、容易に行うことができる。
【０１４２】
また、本実施形態では、撮像方向８１、及びプレイヤオブジェクト３１の位置座標から各ノンプレイヤオブジェクトの位置座標への向きに基づいて計算されたカメラ方向ベクトルＶ２及びオブジェクト方向ベクトルＶ１の内積Ｆに基づいて、プレイヤオブジェクト３１の位置座標８０よりも仮想カメラ３０側に位置するか否かが判定される。このため、この判定処理を容易に行うことができる。また、この内積Ｆと閾値（本実施形態では“０”）との大小関係に基づいて仮想カメラ３０側に位置するか否かが判定されるので、正確な判定処理を行うことができる。
【０１４３】
また、本実施形態では、仮想カメラ３０の視野範囲に含まれていないノンプレイヤオブジェクトの全てに対して仮想カメラ３０側に位置するか否かの判定が行われ、必要に応じて補正座標が算出される。このため、例えばプレイヤオブジェクト３１から最も遠いミサイル４７が液晶テレビ２の画面に表示されているのに対してミサイル４７よりもプレイヤオブジェクト３１に近いミサイル４４が表示されないといった不自然な表示が行われることを防止することができる。
【０１４４】
また、本実施形態では、プレイヤオブジェクト３１の位置座標８０が本発明の所定点に設定されている。このため、仮想カメラ３０によって注視すべきプレイヤオブジェクト３１に対して各ノンプレイヤオブジェクトを撮像方向８１へ近付けた自然な画像を表示することができる。
【０１４５】
また、本実施形態では、各オブジェクトの位置制御や接触判定等に使用されるゲーム空間とは別の描画用空間の画像が液晶テレビ２に表示される。すなわち、仮想ゲーム空間の画像を液晶テレビ２に表示するに際して、各オブジェクトの位置制御や接触判定等に使用されるゲーム空間における各オブジェクトの位置座標が実際に変更される訳ではない。このため、各種ゲームで一般的に行われているゲーム処理に支障をきたすことなく、仮想カメラ３０の視野範囲外に位置するノンプレイヤオブジェクトを視野範囲内に含めた状態の仮想ゲーム空間の画像を表示することができる。
【０１４６】
［変形例］
以下、本実施形態の変形例について説明する。図１５は、位置座標に対する補正座標の移動方向の変形例について説明するための図である。図１５（Ａ）に例示されるように、仮想カメラ３０の視野範囲外に位置しているミサイル４８が視野範囲内に位置するミサイル５８として液晶テレビ２の画面に表示されるように、ミサイル４８の位置座標を仮想カメラ３０の撮像方向８１と直行する方向（図１５における右方向又は左方向）へ移動させた座標をミサイル４８の補正座標として算出するようにしてもよい。
【０１４７】
また、図１５（Ｂ）に例示されるように、仮想カメラ３０の視野範囲外に位置するミサイル４９がプレイヤオブジェクト３１へ向けて矢印８３で示される方向に移動したミサイル５９として表示されるように、ミサイル４９の位置座標をプレイヤオブジェクト３１へ向けて移動させた座標をミサイル４９の補正座標として算出してもよい。このように、ノンプレイヤオブジェクトがプレイヤオブジェクト３１へ向けて移動するように補正座標を算出すれば、撮像方向８１に移動させても仮想カメラ３０の視野範囲内に含まれなかった例えばミサイル４６（図１１参照）を仮想カメラ３０の視野範囲内に含めて液晶テレビ２の画面に写るようにすることができる。
【０１４８】
図１６は、プレイヤオブジェクト３１の位置座標８０とは異なる注視点７７を所定点とした場合の位置座標と補正座標との位置関係について説明するための図である。図１６に例示されるように、仮想カメラ３０は、プレイヤオブジェクト３１に注視しつつも、プレイヤオブジェクト３１の前方の注視点７７（例えばプレイヤオブジェクト３１の前方の地面）を注視するように制御される場合がある。この場合、液晶テレビ２の画面中央に注視点７７が表示され、注視点７７の直下にプレイヤオブジェクト３１が表示される。このように、プレイヤオブジェクト３１と共にプレイヤオブジェクト３１とは別の注視点７７に仮想カメラ３０が注視するような制御が行われる場合、座標判定部１０３は、各ノンプレイヤオブジェクトに対して、注視点７７よりも仮想カメラ３０側に位置するか否かを判定すればよい。このような判定が行われる場合、上記実施形態では仮想カメラ３０側に位置しないと判定されていたミサイル４１が仮想カメラ３０側に位置すると判定され、注視点７７に近付いた状態でミサイル５１として液晶テレビ２の画面に表示される。
【０１４９】
図１７は、補正フラグ１３６の設定方法の変形例について説明するための図である。上記実施形態においては、仮想ゲーム空間内の全てのノンプレイヤオブジェクトに対して補正フラグ１３６が“１”に設定される場合について説明したが、プレイヤオブジェクト３１から離れ続けて、プレイヤオブジェクト３１に近付いたり或いは攻撃を加えたりすることのないミサイル５０に対しては、補正フラグ１３６を“０”に設定して、座標判定部１０３による判定処理を行わないようにしてもよい。これは、ミサイル５０が必ずしも画面に表示すべきオブジェクトではないからである。
【０１５０】
このように、ノンプレイヤオブジェクトによって補正フラグ１３６を異ならせるためには、各ノンプレイヤオブジェクトの位置座標データ１３４を使用すればよい。具体的には、ノンプレイヤオブジェクトの位置座標がプレイヤオブジェクト３１の位置座標から所定時間連続して離れ続けるか否かの判定処理をフレーム単位で実行する。そして、例えば“１００”フレーム分の時間だけノンプレイヤオブジェクトの位置座標がプレイヤオブジェクト３１の位置座標から連続して離れ続けた場合には、補正フラグ１３６を“１”から“０”に変更する。これにより、液晶テレビ２に表示する必要があると考えられるノンプレイヤオブジェクトについてのみ、仮想カメラ３０側に位置するか否かを判定することができる。
【０１５１】
なお、所定点としてのプレイヤオブジェクト３１の位置座標８０よりも仮想カメラ３０側に位置するか否かの判定処理に複数の閾値を用いるようにしてもよい。例えば、仮想カメラ３０から見てプレイヤオブジェクト３１の左側に位置するノンプレイヤオブジェクト（例えばミサイル４１，４４，４５）については閾値Ａ（例えば‘０’）に基づいて仮想カメラ３０側に位置するか否かを判定し、プレイヤオブジェクト３１の右側に位置するノンプレイヤオブジェクト（例えばミサイル４２，４３，４６，４７）については閾値Ｂ（例えば‘−０．１’）に基づいて仮想カメラ３０側に位置するか否かを判定してもよい。
【０１５２】
また、所定点としてのプレイヤオブジェクト３１の位置座標８０よりも仮想カメラ３０側に位置するか否かを、内積Ｆと閾値との大小関係に基づいて判定する代わりに、内積Ｆが所定の数値範囲内に含まれるか否かに基づいて判定するようにしてもよい。例えば、内積Ｆが‘−１０’以上且つ‘０’未満の範囲内に含まれることを条件として、ノンプレイヤオブジェクトが位置座標８０よりも仮想カメラ３０側に位置すると判定するようにしてもよい。これにより、カメラ方向ベクトルＶ２とオブジェクト方向ベクトルＶ１とのなす角度が９０°より大きく（内積Ｆが‘０’未満であり）、且つプレイヤオブジェクト３１からの距離が相対的に遠いノンプレイヤオブジェクト（例えばミサイル５０）を、仮想カメラ３０側に位置すると判定しないようにすることができる。これにより、図１７に基づいて上述した補正フラグ１３６を変更するといった処理を行うことなく、プレイヤオブジェクト３１に近付けた状態で表示したいノンプレイヤオブジェクトを容易に選別することができる。
【０１５３】
また、本実施形態ではプレイヤオブジェクト３１の位置座標８０が所定点に設定された場合について説明し、図１６に基づいて上述した変形例では注視点７７が所定点に設定された場合について説明したが、所定点の位置は位置座標８０又は注視点７７に限定されるものではない。すなわち、所定点は、仮想カメラ３０の撮像方向８１に関して、仮想カメラ３０の視点とプレイヤオブジェクト３１との間、又は仮想カメラ３０の視点と注視点７７との間に設定されれば、位置座標８０又は注視点７７でなくてもよい。なぜなら、例えば図１６に示されている注視点７７よりも仮想カメラ３０の撮像方向８１における前方の位置に所定点が設定されている場合、ミサイル４２に対しても補正座標を算出する処理が行われ、その結果、ミサイル４２をプレイヤオブジェクト３１から遠ざけた状態で表示するといった不要且つ不自然な表示が行われることになるからである。
【０１５４】
また、本実施形態では、ノンプレイヤオブジェクトの位置座標がプレイヤオブジェクト３１の位置座標８０よりも仮想カメラ３０側に位置するか否かを判定するために、カメラ方向ベクトルＶ２及びオブジェクト方向ベクトルＶ１が用いられる場合について説明したが、カメラ方向ベクトル及びオブジェクト方向ベクトルの組み合わせはこれに限定されるものではない。例えば、カメラ方向ベクトルＶ２、及びノンプレイヤオブジェクトの位置座標を始点とし且つプレイヤオブジェクト３１の位置座標８０を終点とするオブジェクト方向ベクトルを用いてもよい。また、例えば、プレイヤオブジェクト３１の位置座標８０を始点とし且つ仮想カメラ３０の位置座標を終点とするカメラ方向ベクトル、及びオブジェクト方向ベクトルＶ１を用いてもよい。また、例えば、プレイヤオブジェクト３１の位置座標８０を始点とし且つ仮想カメラ３０の位置座標を終点とするカメラ方向ベクトル、及びノンプレイヤオブジェクトの位置座標を始点とし且つプレイヤオブジェクト３１の位置座標を終点とするオブジェクト方向ベクトルを用いてもよい。
【０１５５】
また、上述した本実施形態では、ミサイル４４等のノンプレイヤオブジェクトが補正座標に位置した状態で液晶テレビ２の画面に表示されるので、例えばプレイヤオブジェクト３１の位置座標８０とミサイル４４の位置座標３４とに基づいて両オブジェクトの接触判定を行う代わりに、プレイヤオブジェクト３１の位置座標８０とミサイル４４の補正座標とに基づいて両オブジェクトの接触判定を行ってもよい。
【０１５６】
また、本実施形態では、プレイヤオブジェクト３１をその後方から注視するように仮想カメラ３０が制御される場合について説明したが、仮想カメラ３０は、例えばプレイヤオブジェクト３１の前方からプレイヤオブジェクト３１を注視するように制御されてもよい。この場合、プレイヤオブジェクト３１の目の前にいるにも拘わらず仮想カメラ３０の視野範囲内に位置していないために画面に表示されなかったノンプレイヤオブジェクトを画面に表示させることが可能になる。
【０１５７】
また、上述した実施形態では、上記のようなゲーム処理を１台のゲーム装置３で実現しているが、これは必須ではなく、複数の情報処理装置が協働することによって上記のようなゲーム処理を実現してもよい。すなわち、入力受付部１０１、位置座標算出部１０２、座標判定部１０３、補正座標算出部１０４、及び表示部１０５のうちの少なくとも１つの機能部の役割をゲーム装置３以外の例えばネットワーク上のサーバ装置が担うようにしてもよい。この場合、ゲーム装置３及びサーバ装置からなるシステムが、本発明のゲーム装置として機能する。
【産業上の利用可能性】
【０１５８】
本発明は、仮想ゲーム空間内のオブジェクトを仮想カメラの視点から見た画像を表示装置に表示させるゲーム装置のコンピュータに実行させるゲームプログラムやゲーム装置等に適用可能である。
【符号の説明】
【０１５９】
２    液晶テレビ（表示装置の一例）
３    ゲーム装置
７    コントローラ
１０    ＣＰＵ
１２    外部メインメモリ
２９    位置座標
３０    仮想カメラ
３１    プレイヤオブジェクト（第１オブジェクトの一例）
４１，４２，４３，４４，４５，４６，４７，４８，４９，５０    ミサイル（第２オブジェクトの一例）
８０    位置座標
８１    撮像方向
１０１    入力受付部
１０２    位置座標算出部
１０３    座標判定部
１０４    補正座標算出部
１０５    表示部
１０３１    ベクトル算出部
１０３２    内積算出部
１０３３    ベクトル判定部
【図１】
0005525250.tif 000004
【図２】
0005525250.tif 000005
【図３】
0005525250.tif 000006
【図４】
0005525250.tif 000007
【図５】
0005525250.tif 000008
【図６】
0005525250.tif 000009
【図７】
0005525250.tif 000010
【図８】
0005525250.tif 000011
【図９】
0005525250.tif 000012
【図１０】
0005525250.tif 000013
【図１１】
0005525250.tif 000014
【図１２】
0005525250.tif 000015
【図１３】
0005525250.tif 000016
【図１４】
0005525250.tif 000017
【図１５】
0005525250.tif 000018
【図１６】
0005525250.tif 000019
【図１７】
0005525250.tif 000020