(57)【特許請求の範囲】
【請求項１】
オブジェクト空間において、移動体がターゲットを射撃するシューティングゲームのプログラムであって、
プレーヤからの移動用の入力情報に基づいて、前記移動体を移動させる移動処理部と、
前記移動体と前記ターゲットとの位置関係が所定の位置関係である場合に、プレーヤからの特殊コマンドの入力情報を受け付ける受け付け部と、
プレーヤからの射撃用の入力情報に基づいて前記移動体から弾を発射させ、発射させた弾が前記ターゲットに命中したか否かを判断し、判断結果に基づきゲーム演算を行うゲーム演算部として、コンピュータを機能させ、
前記移動処理部が、
複数の弾を発射した場合における命中率が異なる複数の領域が予め設定され、前記特殊コマンドの入力情報を受け付けた場合に、前記特殊コマンドの入力情報を受け付けるまでに前記移動体と前記ターゲットとの位置関係が前記所定の位置関係を維持した時間に応じて、前記複数の領域のうち何れか１つの領域を決定し、前記移動用の入力情報によらずに、決定した前記領域内に前記移動体を移動させることを特徴とするプログラム。
【請求項２】
オブジェクト空間において、移動体がターゲットを射撃するシューティングゲームのプログラムであって、
プレーヤからの移動用の入力情報に基づいて、前記移動体を移動させる移動処理部と、
前記移動体と前記ターゲットとの位置関係が所定の位置関係である場合に、プレーヤからの特殊コマンドの入力情報を受け付ける受け付け部と、
プレーヤからの射撃用の入力情報に基づいて前記移動体から弾を発射させ、発射させた弾が前記ターゲットに命中したか否かを判断し、判断結果に基づきゲーム演算を行うゲーム演算部として、コンピュータを機能させ、
前記移動処理部が、
複数の弾を発射した場合における命中率が異なる複数の領域が予め設定され、前記特殊コマンドの入力情報を受け付けた場合に、前記特殊コマンドの入力情報を受け付ける際の前記移動体と前記ターゲットとの位置関係に応じて、前記複数の領域のうち何れか１つの領域を決定し、前記移動用の入力情報によらずに、決定した前記領域内に前記移動体を移
動させることを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記ターゲットの位置に基づいて、前記ターゲットの位置を含むエリアを設定する設定部として、コンピュータを更に機能させ、
前記受け付け部が、
前記エリア内に前記移動体が位置する場合に、前記特殊コマンドの入力情報を受け付けることを特徴とするプログラム。
【請求項４】
請求項３において、
前記移動体の位置、前記エリアの関係を簡略化して示したレーダーマップ画像を、表示させる表示制御部として、コンピュータを更に機能させ、
前記表示制御部が、
前記レーダーマップ画像において、前記移動体が前記エリア内に属しているか否かを識別表示することを特徴とするプログラム。
【請求項５】
請求項１〜４のいずれかにおいて、
前記移動処理部が、
前記領域内に前記移動体を移動後、前記移動体と前記ターゲットとの相対的な位置関係を所定期間維持させる場合には、前記命中率に応じて、当該所定期間の長さを決定することを特徴とするプログラム。
【請求項６】
請求項１〜５のいずれかにおいて、
前記移動処理部が、
前記領域内に前記移動体を移動後、前記移動体と前記ターゲットとの相対的な位置関係を所定期間維持させる場合には、前記特殊コマンドの入力情報を受け付けるまでに前記移動体と前記ターゲットとの位置関係が前記所定の位置関係を維持した時間に応じて、当該所定期間の長さを決定することを特徴とするプログラム。
【請求項７】
請求項１〜６のいずれかにおいて、
前記移動処理部が、
前記領域内に前記移動体を移動後、前記移動体と前記ターゲットとの相対的な位置関係を所定期間維持させる場合には、前記特殊コマンドの入力情報を受け付ける際の前記移動体と前記ターゲットとの位置関係に応じて、当該所定期間の長さを決定することを特徴とするプログラム。
【請求項８】
請求項１〜７のいずれかにおいて、
前記移動処理部が、
前記特殊コマンドの入力情報を受け付けた場合に、前記移動体及び前記ターゲットの移動情報に基づいて特殊飛行を決定する処理を行い、決定された特殊飛行に基づいて前記移動体の移動経路を演算する処理を行い、前記移動経路に基づき前記移動体を移動させることを特徴とするプログラム。
【請求項９】
オブジェクト空間において、移動体がターゲットを射撃するシューティングゲームのゲームシステムであって、
プレーヤからの移動用の入力情報に基づいて、前記移動体を移動させる移動処理部と、
前記移動体と前記ターゲットとの位置関係が所定の位置関係である場合に、プレーヤからの特殊コマンドの入力情報を受け付ける受け付け部と、
プレーヤからの射撃用の入力情報に基づいて前記移動体から弾を発射させ、発射させた弾が前記ターゲットに命中したか否かを判断し、判断結果に基づきゲーム演算を行うゲー
ム演算部とを含み、
前記移動処理部が、
複数の弾を発射した場合における命中率が異なる複数の領域が予め設定され、前記特殊コマンドの入力情報を受け付けた場合に、前記特殊コマンドの入力情報を受け付けるまでに前記移動体と前記ターゲットとの位置関係が前記所定の位置関係を維持した時間に応じて、前記複数の領域のうち何れか１つの領域を決定し、前記移動用の入力情報によらずに、決定した前記領域内に前記移動体を移動させることを特徴とするゲームシステム。
【請求項１０】
オブジェクト空間において、移動体がターゲットを射撃するシューティングゲームのゲームシステムであって、
プレーヤからの移動用の入力情報に基づいて、前記移動体を移動させる移動処理部と、
前記移動体と前記ターゲットとの位置関係が所定の位置関係である場合に、プレーヤからの特殊コマンドの入力情報を受け付ける受け付け部と、
プレーヤからの射撃用の入力情報に基づいて前記移動体から弾を発射させ、発射させた弾が前記ターゲットに命中したか否かを判断し、判断結果に基づきゲーム演算を行うゲーム演算部とを含み、
前記移動処理部が、
複数の弾を発射した場合における命中率が異なる複数の領域が予め設定され、前記特殊コマンドの入力情報を受け付けた場合に、前記特殊コマンドの入力情報を受け付ける際の前記移動体と前記ターゲットとの位置関係に応じて、前記複数の領域のうち何れか１つの領域を決定し、前記移動用の入力情報によらずに、決定した前記領域内に前記移動体を移動させることを特徴とするゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、及び、ゲームシステムに関する。
【背景技術】
【０００２】
従来から、プレーヤが入力操作を行いオブジェクト空間における機体（自機）を移動させて、敵の機体（敵機）を射撃するフライトシューティングゲームが人気が高い（特許文献１）。
【０００３】
このようなシューティングゲームは、自機の機軸に合わせて装備された機関銃（機関砲）を用いて敵機を攻撃する場合には、機関銃から発射される弾が敵機に当たりやすいように、敵機の背後に自機を移動させるフライトテクニックが有効である。
【０００４】
しかし、操作の技量の劣るプレーヤは、自機から発射される弾が敵機に命中できる位置に、自機を移動させる操作入力が困難であるという問題が生じていた。
【特許文献１】特開２０００−１４０４１７
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、従来の課題に鑑みたものであり、操作技量の劣るプレーヤであっても、ターゲットを狙い易くすることが可能なシューティングゲームのプログラム、情報記憶媒体、及び、ゲームシステムを提供することにある。
【課題を解決するための手段】
【０００６】
（１）本発明は、
オブジェクト空間において、移動体がターゲットを射撃するシューティングゲームのプログラムであって、
プレーヤからの移動用の入力情報に基づいて、前記移動体を移動させる移動処理部と、
前記移動体と前記ターゲットとの位置関係が所定の位置関係である場合に、プレーヤからの特殊コマンドの入力情報を受け付ける受け付け部と、
プレーヤからの射撃用の入力情報に基づいて前記移動体から弾を発射させ、発射させた弾が前記ターゲットに命中したか否かを判断し、判断結果に基づきゲーム演算を行うゲーム演算部として、コンピュータを機能させ、
前記移動処理部が、
前記特殊コマンドの入力情報を受け付けた場合に、前記移動用の入力情報によらずに、前記移動体から発射させた弾を前記ターゲットに命中させることが可能な位置に、前記移動体を移動させることを特徴とするプログラムに関する。
【０００７】
本発明は、上記プログラムを記憶した情報記憶媒体、上記各部として構成するゲームシステムに関係する。
【０００８】
本発明によれば、移動体をターゲットの狙いやすい位置に移動させるための移動用の入力操作を簡易にすることができる。
【０００９】
（２）また、本発明のプログラム、情報記憶媒体、ゲームシステムは、
前記受け付け部が、
前記ターゲットの位置に基づき設定されるエリア内に前記移動体が位置する場合に、前記特殊コマンドの入力情報を受け付けるようにしてもよい。
【００１０】
（３）また、本発明のプログラム、情報記憶媒体、ゲームシステムは、
オブジェクト空間における仮想カメラから見える視界画像を生成する描画部と、
前記視界画像を表示させると共に、前記視界画像とは異なる表示領域に、前記移動体の位置、前記エリアの関係を簡略化して示した画像を、表示させる表示制御部として、コンピュータを更に機能させるようにしてもよい。
【００１１】
本発明によれば、移動体の位置、エリアの関係を簡略化して示した画像が表示されるので、プレーヤは適切な入力操作を行うことができる。
【００１２】
（４）また、本発明のプログラム、情報記憶媒体、ゲームシステムは、
前記特殊コマンドの入力情報を受け付けるまでに前記移動体と前記ターゲットとの位置関係が前記所定の位置関係を維持した時間に応じて、複数の弾を発射した場合における命中率を決定する命中率決定部として、コンピュータを更に機能させ、
前記移動処理部が、
前記特殊コマンドの入力情報を受け付けた場合に、前記命中率に応じて、前記移動体を移動させる位置を決定するようにしてもよい。
【００１３】
本発明によれば、プレーヤが特殊コマンドの入力するまでの移動体とターゲットの位置関係が所定の位置関係を維持した時間を、命中率に反映させることができる。
【００１４】
（５）また、本発明のプログラム、情報記憶媒体、ゲームシステムは、
前記特殊コマンドの入力情報を受け付ける際の前記移動体と前記ターゲットとの位置関係に応じて、複数の弾を発射した場合における命中率を決定する命中率決定部として、コンピュータを更に機能させ、
前記移動処理部が、
前記特殊コマンドの入力情報を受け付けた場合に、前記命中率に応じて、前記移動体を移動させる位置を決定するようにしてもよい。
【００１５】
本発明によれば、プレーヤが特殊コマンドの入力したタイミングにおける移動体とターゲットの位置関係を、命中率に反映させることができる。
【００１６】
（６）また、本発明のプログラム、情報記憶媒体、ゲームシステムは、
オブジェクト空間における仮想カメラを制御する仮想カメラ制御部と、
オブジェクト空間における仮想カメラから見える視界画像を生成する描画部として、コンピュータを更に機能させ、
前記移動処理部が、
前記特殊コマンドを受け付けた場合に、前記特殊コマンドに基づく前記移動体の移動経路を演算する処理を行い、
前記仮想カメラ制御部が、
前記移動体の移動経路に基づいて、仮想カメラの位置、向き、画角の少なくとも１つを制御するようにしてもよい。
【００１７】
本発明によれば、移動体の移動経路に応じた視界画像を生成することができる。
【発明を実施するための最良の形態】
【００１８】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００１９】
１．構成
図１は、本実施形態のゲームシステムの機能ブロック図の一例である。なお本実施形態のゲームシステムでは、図１の各部を全て含む必要はなく、その一部を省略した構成としてもよい。
【００２０】
本実施形態のゲームシステムは、本体装置１０と、入力装置２０と、情報記憶媒体１８０、表示部（表示装置）１９０、スピーカー１９２、光源１９８とからなる。
【００２１】
入力装置２０は、加速度センサ２１０、撮像部２２０、スピーカー２３０、振動部２４０、マイコン２５０、通信部２６０、操作部２７０によって構成される。
【００２２】
加速度センサ２１０は、３軸（Ｘ軸、Ｙ軸、Ｚ軸）の加速度を検出する。すなわち、加速度センサ２１０は、上下方向、左右方向、及び、前後方向の加速度を検出することができる。なお、加速度センサ２１０は、５ｍｓｅｃ毎に加速度を検出し、加速度センサ２１０から検出された加速度は、通信部２６０によって本体装置１０に送信される。なお、加速度センサ２１０は、１軸、２軸、６軸の加速度を検出するものであってもよい。
【００２３】
撮像部２２０は、赤外線フィルタ２２２、レンズ２２４、撮像素子（イメージセンサ）２２６、画像処理回路２２８を含む。赤外線フィルタ２２２は、入力装置２０の前方に配置され、表示部１９０に関連付けられて配置されている光源１９８から入射する光から赤外線のみを通過させる。レンズ２２４は、赤外線フィルタ２２２を透過した赤外線を集光して撮像素子２２６へ出射する。撮像素子２２６は、例えば、ＣＭＯＳセンサやＣＣＤのような固体撮像素子であり、レンズ２２４が集光した赤外線を撮像して撮像画像を生成する。撮像素子２２６で生成された撮像画像は、画像処理回路２２８で処理される。例えば、撮像素子２２６から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報（特定位置）を検出する。なお、光源が複数存在する場合には、撮像画像上の位置情報を複数検出する。また、複数の光源を利用して撮像画像上の位置情報を複数検出し、検出された位置情報の基準軸からの回転角度（傾き）を求め、光源に対する入力装置２０自体の傾きを求めてもよい。なお、検出した撮像画像上の位置情報は、通信部２６０によって、本体装置１０に送信される。
【００２４】
スピーカー２３０は、本体装置１０から通信部２６０を介して取得した音を出力する。
【００２５】
振動部（バイブレータ）２４０は、本体装置１０から送信された振動信号を受信して、振動信号に基づいて作動する。
【００２６】
マイコン（マイクロコンピュータ）２５０は、操作部２７０が出力した入力信号、加速度センサ２１０が検出した加速度を通信部２６０を介して本体装置１０に送信させる処理を行ったり、撮像部２２０によって検出された位置情報を、通信部２６０を介して本体装置１０に送信させる処理を行う。また、受信した本体装置１０からのデータに応じて、音を出力する制御や、バイブレータを作動させる制御を行う。
【００２７】
通信部２６０は、アンテナ、無線モジュールを含み、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて、本体装置１０とデータを無線で送信受信する。なお、本実施形態の通信部２６０は、加速度センサ２１０によって検出された加速度や撮像部２２０において検出した位置情報等を、４ｍｓｅｃ、６ｍｓｅｃの交互の間隔で本体装置１０に送信している。なお、通信部２６０は、本体装置１０と通信ケーブルで接続し、当該通信ケーブルを介して情報の送受信を行うようにしてもよい。
【００２８】
操作部２７０は、方向キー（十字キー）、ボタン（Ａボタン、Ｂボタンなど）、方向入力可能なコントロールスティック（アナログキー）などの操作子であり、プレーヤからの入力操作によって入力信号を出力する処理を行う。なお、操作信号は、通信部２６０を介して本体装置１０に送信される。
【００２９】
なお、入力装置２０は、プレーヤの入力動作によって変化する角速度を検出するジャイロセンサを備えていてもよい。
【００３０】
また、入力装置２０は、加圧センサを備えていてもよい。加圧センサは、プレーヤの入力動作によって発生する圧力を検出する。例えば、プレーヤの体重や、プレーヤが力を加えることによる圧力を検出することができる。また、入力装置２０に加圧センサを複数備えることによって、複数の圧力センサそれぞれの圧力値を検出してもよい。
【００３１】
本実施形態の入力装置２０は、入力装置２０と一体化されている本体装置１０（ゲーム装置、携帯型ゲーム装置）、携帯電話なども含まれる。
【００３２】
次に、本実施形態の本体装置１０について説明する。本実施形態の本体装置１０は、記憶部１７０、処理部１００、通信部１９６によって構成される。
【００３３】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などのハードウェアにより実現できる。
【００３４】
特に、本実施形態の記憶部１７０は、主記憶部１７２、描画バッファ１７４を含む。主記憶部１７２は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などのハードウェアにより実現できる。また、描画バッファ１７４は、描画部１２０において生成された画像を記憶する。
【００３５】
そして処理部１００は、この情報記憶媒体１８０に格納されるプログラム（データ）から読み出されたデータに基づいて本実施形態の種々の処理を行う。即ち、情報記録媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。なお情報記憶媒体１８０は、メモリカードに、プレーヤの個人データやゲームのセーブデータなどを記憶するものも含む。
【００３６】
通信部１９６は、ネットワーク（インターネット）を介して他の本体装置１０（ゲーム装置）と通信することができる。その機能は、各種プロセッサ又は通信用ＡＳＩＣ、ネットワーク・インタフェース・カードなどのハードウェアや、プログラムなどにより実現できる。また、通信部１９６は、有線、無線いずれの通信も行うことができる。
【００３７】
また、通信部１９６は、アンテナ、無線モジュールを含み、Ｂｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて、入力装置２０の通信部２６０を介して、入力装置２０とデータを送受信する。例えば、通信部１９６は、音データ、及び、振動信号を、入力装置２０に送信し、入力装置２０において、操作部２７０が出力した入力信号、加速度センサ２１０が検出した加速度、撮像部２２０によって検出された情報を、４ｍｓｅｃ、６ｍｓｅｃの交互の間隔で受信する。
【００３８】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、サーバが有する、記憶部、情報記憶媒体からネットワークを介して情報記憶媒体１８０（または、記憶部１７０）に配信するようにしてもよい。このようなサーバの情報記憶媒体の使用も本発明の範囲に含まれる。
【００３９】
処理部１００（プロセッサ）は、入力装置２０から受信した情報や情報記憶媒体１８０から記憶部１７０に展開されたプログラム等に基づいて、ゲーム演算処理、画像生成処理、或いは音制御の処理を行う。
【００４０】
特に本実施形態の処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１１、ゲーム演算部１１２、受け付け部１１３、表示制御部１１４、仮想カメラ制御部１１５、命中率決定部１１６、描画部１２０、音制御部１３０、振動制御部１４０とを含む。
【００４１】
オブジェクト空間設定部１１０は、オブジェクト（移動体、ターゲット、自機、敵機、弾）の他に、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義であり、例えば、ワールド座標系でのＸ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００４２】
移動・動作処理部１１１は、オブジェクトの移動・動作演算を行う。すなわち入力装置２０によりプレーヤが入力した入力情報や、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求める処理を行う。なおフレームは、オブジェクトの移動・動作処理や画像生成処理を行う時間の単位である。
【００４３】
特に、本実施形態の移動処理部１１１ａは、プレーヤからの移動用の入力情報に基づいて、移動体を移動させる処理を行う。本実施形態では、プレーヤからの移動用の入力情報は、加速度センサで検出された加速度である。本実施形態では、検出された加速度に基づいて、傾き値を算出し、傾き値に基づいて移動体の移動方向や、移動速度を決定し、移動体を移動させる処理を行っている。
【００４４】
また、移動処理部１１１ａは、特殊コマンドの入力情報を受け付けた場合に、移動用の入力情報によらずに、移動体から発射させた弾をターゲットに命中させることが可能な位置に、移動体を移動させる処理を行う。本実施形態では、特殊コマンドの入力情報は、操作部２７０の第１の入力信号（例えば、Ａボタンによる入力信号）としている。
【００４５】
移動処理部１１１ａは、特殊コマンドの入力情報を受け付けた場合に、命中率に応じて、移動体を移動させる位置を決定するようにしてもよい。
【００４６】
また、移動処理部１１１ａは、特殊コマンドを受け付けた場合に、特殊コマンドに基づく移動体の移動経路（マニューバ軌道）を演算する処理を行うようにしてもよい。
【００４７】
ゲーム演算部１１２は、種々のゲーム演算処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲームステージ毎のクリア条件を満たすか否かを判定する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などを行う。
【００４８】
特に、本実施形態のゲーム演算部１１２は、プレーヤからの射撃用の入力情報に基づいて移動体から弾を発射させ、発射させた弾がターゲットに命中したか否かを判断し、判断結果に基づきゲーム演算を行う。本実施形態では、射撃用の入力情報は、操作部２７０の第２の入力信号（例えば、Ｂボタンによる入力信号）としている。なお、命中したか否かの判断処理は、予め定められた弾のヒット領域と、予め定められたターゲットのヒット領域とのヒットチェックを行うことによって、命中したか否かを判断している。
【００４９】
受け付け部１１３は、プレーヤからの入力情報を受け付ける処理を行う。特に、本実施形態の受け付け部１１３は、移動体とターゲットとの位置関係が所定の位置関係である場合に、プレーヤからの特殊コマンドの入力情報を受け付ける処理を行う。また、受け付け部１１３は、ターゲットの位置に基づき設定されるエリア内に移動体が位置する場合に、特殊コマンドの入力情報を受け付ける処理を行う。
【００５０】
表示制御部１１４は、視界画像を表示させると共に、視界画像とは異なる表示領域に、移動体の位置、エリアの関係を簡略化して示した画像（レーダーマップ）を表示させる処理を行う。
【００５１】
仮想カメラ制御部１１５は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、ワールド座標系における仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（例えば、Ｘ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を制御する処理を行う。
【００５２】
特に本実施形態の仮想カメラ制御部１１５は、移動体の移動経路に基づいて、仮想カメラの位置、向き、画角の少なくとも１つを制御する処理を行う。
【００５３】
命中率決定部１１６は、特殊コマンドの入力情報を受け付ける際の移動体とターゲットとの位置関係に応じて、複数の弾を発射した場合における命中率を決定する処理を行う。
【００５４】
また、命中率決定部１１６は、特殊コマンドの入力情報を受け付けるまでに移動体とターゲットとの位置関係が所定の位置関係を維持した時間に応じて、複数の弾を発射した場合における命中率を決定する処理を行う。
【００５５】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム演算処理）の結果に基づいて描画処理を行い、これにより画像（視界画像、レーダマップなど）を生成し、表示部１９０に出力する。
【００５６】
いわゆる３次元ゲーム画像を生成する場合には、まず表示物（オブジェクト、モデル）を定義する各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含む表示物データ（オブジェクトデータ、モデルデータ）が入力され、入力された表示物データに含まれる頂点データに基づいて、頂点処理が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。頂点処理では、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、表示物を構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（フラグメント処理）が行われる。ピクセル処理では、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内に設定された仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００５７】
なお描画部１２０が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００５８】
そして描画部１２０は、表示物を描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００５９】
ジオメトリ処理では、表示物に関して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）の表示物データ（表示物の頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、主記憶部１７２に保存される。
【００６０】
テクスチャマッピングは、記憶部１７０に記憶されるテクスチャ（テクセル値）を表示物にマッピングするための処理である。具体的には、表示物の頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャを表示物にマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００６１】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファに格納されるＺ値を参照する。そして参照されたＺバッファのＺ
値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００６２】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより２つの色を合成した色を求める処理を行う。
【００６３】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えばＲＧＢの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００６４】
音制御部１３０は、処理部１００で行われる種々の処理（ゲーム演算処理等）の結果に基づいて記憶部１７０に記憶されている音を、入力装置２０のスピーカー２３０及びスピーカー１９２の少なくとも一方から出力させる処理を行う。
【００６５】
振動制御部１４０は、処理部１００で行われる種々の処理（ゲーム演算処理等）の結果に基づいて、通信部１９６、通信部２６０を介して、入力装置２０の振動部２４０を振動させる処理を行う。
【００６６】
なお、本実施形態のゲームシステムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００６７】
また複数のプレーヤがプレイする場合に、複数のプレーヤそれぞれの入力装置２０から送信された情報（加速度センサ２１０が検出した加速度、操作部２７０が出力した入力信号等）に基づいて、１つの本体装置１０がゲーム演算、画像生成処理を行い、生成した画像を表示部に表示させるように制御してもよい。
【００６８】
また、複数のプレーヤそれぞれの本体装置１０がネットワーク（伝送ライン、通信回線）を介して接続され、複数の本体装置１０それぞれが、入力装置２０から送信された情報に基づいて、ゲーム演算、画像生成処理を行い、生成した画像を表示部に表示させるように制御してもよい。
【００６９】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。
【００７０】
表示部１９０は、処理部１００により生成された画像を出力するものであり、その機能は、ＣＲＴディスプレイ、ＬＣＤ（液晶ディスプレイ）、ＯＥＬＤ(有機ＥＬディスプレイ)、ＰＤＰ（プラズマディスプレイパネル）、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００７１】
スピーカー１９２は、音制御部１３０により再生する音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどのハードウェアにより実現できる。なお、スピーカー１９２は、表示部に備えられたスピーカーとしてもよい。例えば、テレビ（家庭用テレビジョン受像機）を表示部としている場合には、テレビのスピーカーとすることができる。
【００７２】
光源１９８は、例えばＬＥＤであり、表示部１９０に関連付けられて配置される。なお、本実施形態は、複数の光源（光源Ｒと光源Ｌ）とを備え、光源Ｒと光源Ｌとの距離は所定間隔を有するように設置されている。
【００７３】
２．本実施形態の手法
（１）概要
本実施形態は、オブジェクト空間（仮想３次元空間）において、プレーヤからの入力情報に基づいて機体（移動体の一例）を移動させ、機体に装備された機関銃（機関砲）を用いてターゲット（敵の機体、敵地上物）を攻撃（撃墜、撃破）させる処理を行うフライトシューティングゲームのためのプログラム（情報記憶媒体、ゲームシステム）に関するものである。
【００７４】
このようなフライトシューティングゲームでは、様々なフライトテクニックがある。例えば、プレーヤの機体（以下、「自機」という）を、敵の機体（以下、「敵機」という）の背後（敵機の進行方向に対して後方）に移動させることによって、自機から発射させた弾を敵機を命中させることが可能な位置に、自機を移動させるフライトテクニックがある。つまり、敵機が自機の射撃範囲（射程範囲）に位置するように、自機を移動させるフライトテクニックがある。
【００７５】
すなわち、本実施形態の機体には機軸に合わせて機関銃が装備されており、機関銃から発射される弾は自機の移動ベクトルＶ１方向に放射状に発射される。したがって、図２に示すように、自機が機関銃を用いて敵機を攻撃するためには、機関銃から発射される弾が敵機に当たりやすいように、敵機の背後に自機を移動させ、敵機を射撃範囲にとらえることが有効になる。
【００７６】
しかし、自機を敵機の背後に移動させることは、操作技量の劣るプレーヤにとって困難であることが多い。つまり、フライトシューティングゲームでは、自機を空中で移動させるので、空中の位置感覚に慣れないプレーヤは自機と敵機の位置関係を把握できず、敵機の背後に自機を移動させる入力操作や、敵機を追尾する入力操作を行うことは難しいことが多い。
【００７７】
そこで、本実施形態では、敵機を中心とする特定エリアを設定し、自機が敵機の特定エリア内に位置している場合には、プレーヤからの特殊コマンドの入力情報を受け付け、特殊コマンドの入力情報を受け付けた場合に、プレーヤの移動用の入力情報によらずに、自動的に自機を敵機の背後に移動させる処理を行う。そして、自機が敵機の背後に移動させた位置関係を所定期間維持させる。このようにすれば、操作技量の劣るプレーヤであっても、敵機の背後をとるための移動用の入力操作に煩うことなく、敵機を攻撃することができ、ゲームプレイを楽しむことができる。
【００７８】
また、本実施形態では、特殊コマンドの実行によって、マニューバ（特殊飛行）の軌道に合わせて自機を敵機の背後に移動させる処理を行う。ここで、マニューバとは、戦闘機などの機体が、空中で行う動き方のことをいい、例えば、進行方向に対して左右に機体が傾く動きを示すロール、機体を水平に保ったまま進行方向を変更する動きを示すヨー、宙返りをするループ、インメルマンターン、スプリットＳ等の種々の動き方がある。本実施形態ではマニューバの軌道にあわせて自機を移動させるので、プレーヤを惹き付けるゲームを実現することができる。以下、本実施形態の詳細について説明する。
【００７９】
（２）特定エリア
図３は、本実施形態の敵機に設定される特定エリアの一例を示す。特定エリアは敵機を中心とする半径ｒの３次元の球によって設定される。なお、特定エリアは、敵機を包囲する球であり敵機の位置を球の中心にしなくてもよい。
【００８０】
また、特定エリアの半径ｒは敵機の機体の種類（耐久力、攻撃力）に応じて異ならせてもよい。また、特定エリアの半径ｒは敵機を操縦するコンピュータプレーヤのレベル（アルゴリズムパターン）に応じて異ならせてもよい。
【００８１】
また、本実施形態では、自機から一定距離以内にある敵機に対して特定エリアを発生させる制御（セミロックオン）を行っている。自機から一定距離以内に複数の敵機が存在する場合には、自機から最も近い敵機に対して特定エリアを発生させる。なお、プレーヤからの入力情報に基づいて、自機から一定距離以内に存在する敵機のうち、特定エリアを発生させる敵機の選択を、受け付けるようにしてもよい。
【００８２】
図４（Ａ）（Ｂ）は、本実施形態の表示画面（表示領域）の一例である。本実施形態では、例えばプレーヤが自機を操縦するパイロットを視点とする視界画像を生成し、視界画像と共に、表示画面の左下に視界画像とは異なる領域にレーダーマップを表示させている。
【００８３】
例えば、図４（Ａ）は、敵機が視界画像に表示される一例である。図４（Ａ）に示すように、敵機が視界に入った場合や、敵機が自機の射程範囲内に属している場合に照準を表示させるようにしてもよい。また、図４（Ｂ）は、敵機が自機の後方にいる場合を示した図である。このように敵機が視界に存在しない場合には、ターゲットロケーターを表示させ、敵機の位置を示すようにしてもよい。
【００８４】
なお、ターゲットロケーターは、セミロックオンされた敵機の方向（敵機の機首方向）を示し、セミロックオンされた敵機が存在しない場合には、自機に最も近くに位置する敵機方向、追跡中の敵機の方向を示す。また、本実施形態では、ターゲットロケーターの長さを、自機と敵機との距離に対応させている。つまり、自機と敵機との距離が１００メートルの場合は、自機と敵機との距離が２００メートルの場合に比べて、ターゲットロケーターの長さが短くなる。
【００８５】
図５は、レーダーマップの一例を示す。レーダーマップは、オブジェクト空間におけるＸＺ軸における自機の位置、自機の向き（自機の機首の方向）、敵機の位置、敵機の向き（敵機の機首の方向）、敵機に設定された特定エリアの位置関係を簡略化して示した画像である。例えば、図５に示すように、自機の位置を中心に、レーダーマップの上方向を自機の向きとして設定し、敵機や特定エリア等を示すようにしている。
【００８６】
さて、本実施形態は、特定エリアを球によって設定しているので、図６に示すように、オブジェクト空間におけるＸ座標値、Ｚ座標値が同一であっても高度が変化した場合（Ｙ座標値が変化した場合）、特定エリア内に自機が属さない場合がある。かかる場合に、レーダーマップ上でも特定エリア内に自機が属しているか否かを識別する必要がある。
【００８７】
そこで、本実施形態では、自機が敵機の特定エリアに属するか否かを、特定エリアの表示色を異ならせることによって、識別できるようにしている。具体的には、図７（Ａ）に示すように、自機が敵機に設定された特定エリア内に属している場合には、特定エリアを第１の色（例えば、濃いオレンジ色）で表示させ、図７（Ｂ）に示すように、自機が敵機に設定された特定エリア内に属していない場合には、特定エリアを第２の色（例えば、薄いオレンジ色）で表示させるようにしている。
【００８８】
例えば、図６のＢの位置に自機が位置している場合には、図７（Ａ）に示すように、特定エリアを第１の色で表示させる。一方、図６のＡ、Ｃの位置に自機が位置している場合には、図７（Ｂ）に示すように、特定エリアを第２の色で表示させる。
【００８９】
なお、本実施形態では、敵機が視界画像内に存在しない場合であっても、敵機の方向を示すターゲットロケーターを表示させることで、自機が敵機よりも上方にあるＡに位置している場合と、自機が敵機よりも下方にあるＣに位置している場合とを識別することができる。
【００９０】
（３）特殊コマンドの実行処理
本実施形態では、敵機を中心とする特定エリア内に自機が位置する場合に、プレーヤからの特殊コマンドの入力情報を受け付ける処理を行う。そして、特殊コマンドの入力情報を受け付けた際には、プレーヤの移動用の入力情報によらず、自機を敵機の背後（自機から発射させた弾を敵機に命中させることが可能な位置）に移動させる移動経路を求め、移動経路に従って自機を移動させる処理を行っている。なお、自機を敵機の背後に移動させた場合には、自機と敵機との相対的な位置関係を所定期間維持するように制御している。
【００９１】
また、本実施形態では、特殊コマンド受け付け時に、現在の自機、敵機それぞれの移動情報（位置、移動方向、移動速度）に基づいて、複数種類のマニューバ（ループ、インメルマンターン、シャンデル、バレルロール、スライスターン等）から自機を敵機の背後に位置させることが可能なマニューバを決定する処理を行う。具体的には、複数種類のマニューバそれぞれと、自機と敵機との位置・向きの関係とを、予め対応付けておく。例えば、自機と敵機とがほぼ同一の高さ（例えば、自機と敵機とが海抜１００メートル〜２００メートルの高さに位置するとき）であって、自機の向きと敵機の向きとが同一方向である場合には、ループのマニューバを対応づける。また、敵機が自機よりも上空にいて（例えば、敵機が自機よりも１００メートル〜２００メートル上空にいて）、自機の向きが敵機の向きに対して反対方向である場合には、ターン系のマニューバ（例えばインメルマンターン）を対応づける。そして、特殊コマンドの入力情報の受け付け時における自機と敵機との位置・向きの関係に対応する１つのマニューバを決定する処理を行い、決定されたマニューバに基づいて、自機の移動経路を演算し、演算された移動経路に沿って自機を移動させる。
【００９２】
そして、演算された移動経路に障害物が存在する場合、自機が障害物に激突することになってしまうので、特殊コマンドの実行ができない旨のアラート表示（ＷＡＲＮＩＮＧ表示）を行うようにしている。ここで障害物とは、地面、海、建物、敵機等を含む他の機体などのオブジェクトである。なお、決定されたマニューバに基づく自機の移動経路上に障害物が存在すると判定される場合には、異なるマニューバを決定するようにしてもよい。
【００９３】
図８は、特殊コマンドの実行によって自機を移動させる一例を示す。例えば、特殊コマンドを受け付けた際に、自機がＰ１に位置し、敵機がＱ１に位置している場合であって、自機と敵機との移動方向がほぼ同一方向であるとする。本実施形態では、複数種類のマニューバのうちループ（宙返り）が、自機を敵機の背後に位置させるマニューバであると決定されると、ループに基づく自機の移動経路を演算し、演算された移動経路に基づいて自機を移動させる処理を行う。
【００９４】
また、本実施形態では、敵機の移動ベクトルの逆方向に、敵機の位置から所定距離だけ離れた位置に自機を移動させるために、自機の移動経路を補正する処理を行う場合がある。
【００９５】
例えば、ループによる移動経路は、特殊コマンドを受け付けた際の位置Ｐ１の高度と同一の高度になるが、ループの移動経路では、敵機の移動ベクトルの逆方向であって、敵機の位置から所定距離だけ離れた位置に自機を移動させることができない場合がある。かかる場合には、図８に示すように、例えば自機と敵機との高度が同一になるように、自機の移動経路を補正する処理を行う。
【００９６】
図９（Ａ）は、ＸＺ平面上において、図９（Ｂ）は、ＸＹ平面上において、特殊コマンド実行によって、自動的に敵機の背後に自機を移動させた際の自機の位置と、敵機の位置との相対的な位置関係を示す。
【００９７】
本実施形態では、図９（Ａ）（Ｂ）に示すように、敵機の位置Ｑ２から、敵機の移動ベクトルＶ２の逆方向であって、位置Ｑ２から所定距離Ｄ離れた位置に、そして、自機の移動ベクトルＶ１と敵機の移動ベクトルＶ２とを一致させるように自機を移動させる。
【００９８】
また、本実施形態では、図９（Ａ）（Ｂ）に示す自機と敵機との相対的な位置関係を所定期間（例えば、６０ｆｐｓで２０フレーム）維持させる処理を行う。すなわち、所定期間中、自機と敵機との相対速度を時速０ｋｍにしつつ、自機の移動ベクトルＶ１の方向、敵機の移動ベクトルＶ２の方向を一致させるようにする。したがって、自然な移動を実現するために、特殊コマンドの入力情報を受け付けた場合には、自機、敵機それぞれの移動速度が一致するように、少なくとも一方の速度を調整する。
【００９９】
このように、本実施形態では、所定期間中、自機と敵機との相対速度が時速０ｋｍになり、自機の移動ベクトルと敵機の移動ベクトルを一致させるので、操作技量の劣るプレーヤであってもタイミングさえ誤らなければ、射撃用の入力操作を行うことで発射した弾を敵機に命中させることができる。また敵機の耐久力に応じて、自機から発射された弾が多く命中すれば敵機を撃墜させることができる。なお、所定期間は、敵機の種類に応じて異ならせるようにしてもよい。
【０１００】
なお、所定期間を経過すると、敵機は予め定められたコンピュータによるアルゴリズムに基づいて（或いは、相手プレーヤからの入力情報に基づいて）、自機からの追尾を振り切ろうとする回避行動処理が行われる可能性がある。したがって、プレーヤはタイミングを見計らって、射撃用の操作入力を行い、敵機の射撃を行う必要がある。
【０１０１】
要するに、本実施形態の特殊コマンドは、自機から発射させた弾を敵機に命中させることが可能なように、自機と敵機との相対的な位置関係を決定し、その位置関係になるようにマニューバ軌道によって自動的に自機を移動させて、決定された自機と敵機との相対的な位置関係を所定期間維持させる処理を行うものである。
【０１０２】
以上のように、本実施形態によれば、プレーヤは、自機を敵機に追尾させる移動操作を行わなくても、敵機に設定された特定エリア内に自機を位置させて、特殊コマンドの入力操作を行うことによって特殊コマンドを実行でき、簡易に自機を敵機の背後に移動させることができる。したがって、プレーヤは敵機を狙い易くなり、操作技量の劣るプレーヤであっても敵機を撃墜するシューティングゲームを楽しむことができる。
【０１０３】
（４）特殊ゲージ
本実施形態では、特殊ゲージに基づいて、自機に装備された機関銃から発射された弾の命中率を決定し、命中率に応じた位置に自機を移動させる処理を行っている。
【０１０４】
ここで命中率とは、自機が装備する機関銃から発射された複数の弾のうち敵機に当たる弾数を示す割合をいい、射撃範囲内である場合には１％以上の確率で当たることを示している。例えば、射撃用の入力情報を受け付けた場合には、１００弾発射させ、自機の射撃範囲に敵機が位置している場合には、受け付けた際に発射される弾のうち少なくとも１弾が敵機に当たるようにしている。
【０１０５】
また、本実施形態では、発射される複数の弾は、自機（自機に装備された機関銃）から放射状に拡散される。したがって、自機と敵機とが近い程、命中率が高くなる。
【０１０６】
図１０は、特殊ゲージを表示させた表示画面の一例を示す。本実施形態では、敵機に設定された特定エリア内に自機が位置した場合に、特殊ゲージを表示させる。つまり、特殊ゲージの表示が、特殊コマンドの入力が可能であることを意味している。
【０１０７】
本実施形態は、敵機に設定された特定エリア内に自機が属した際に特殊ゲージの値に予め初期値を設定し、特殊コマンドを受け付けるまでの経過時間によって、特殊ゲージの値を増大させる処理を行っている。
【０１０８】
そして、図１０に示すように、特殊ゲージの値に応じて３段階のレベルを設定している。例えば、特殊ゲージの値が第１の所定値以上、第２の所定値未満である場合にレベル１、特殊ゲージの値が第２の所定値以上、第３の所定値未満である場合には、レベル２であり、特殊ゲージの値が第３の所定値以上である場合には、レベル３に設定し、特殊コマンドの入力の受け付け時のレベルに応じて、命中率を決定している。なお、本実施形態では、特殊ゲージの初期値を第１の所定値に設定し、少なくともレベル１の状態で特殊コマンドを受け付けるようにしている。
【０１０９】
次に、本実施形態の特殊ゲージのレベルに応じた命中率について説明する。
【０１１０】
図１１（Ａ）は、ＸＺ平面上において、図１１（Ｂ）は、ＸＹ平面上において、特殊コマンド実行によって、自機から発射させた弾を敵機に命中させることが可能な自機の位置と敵機の位置との相対的な位置関係を示す。
【０１１１】
例えば、射撃範囲のうち領域Ｌ１は、命中率が１〜２０％、射撃範囲のうち領域Ｌ２は、命中率が２１〜８０％、射撃範囲のうち領域Ｌ３は、命中率が８１〜１００％であるとする。
【０１１２】
本実施形態では、特殊コマンドの入力情報受け付け時のレベルに対応する領域Ｌ１〜Ｌ３のうちいずれかの領域を決定し、決定された領域に敵機が位置するように自機の位置を決定し、移動経路を求める。つまり、レベル１のときには領域Ｌ１に敵機が位置するように、レベル２のときは領域Ｌ２に敵機が位置するように、レベル３のときには領域Ｌ３に敵機が位置するように、自機と敵機との相対的な位置関係を決定して自機を移動させると共に、所定期間、決定された位置関係を維持させる処理を行う。
【０１１３】
本実施形態では、いずれの領域においても、自機の移動ベクトルＶ１の方向と敵機の移動ベクトルＶ２の方向が同一方向を向くように制御している。
【０１１４】
なお、自機と敵機との位置関係を維持する所定期間は、特殊コマンドの入力情報を受け付けた際のレベルに応じて異ならせるようにしてもよい。例えば、特殊コマンドの入力情報を受け付けた際のレベルがレベル１である場合には、所定期間を１０フレームに決定し、特殊コマンドの入力情報を受け付けた際のレベルがレベル２である場合には、所定期間を２０フレームに決定し、特殊コマンドの入力情報を受け付けた際のレベルがレベル３である場合には、所定期間を３０フレームに決定する。
【０１１５】
このようにすれば、敵機の特定エリア内にいる時間を長く保ち、特殊ゲージがレベル３になった段階で特殊コマンドの入力情報を行うという面白みをプレーヤに提供できる。
【０１１６】
（５）仮想カメラの制御
次に、本実施形態のオブジェクト空間における仮想カメラ（視点）の制御について説明する。
【０１１７】
本実施形態では、マニューバ（特殊飛行）によって、自機を敵機の背後に自動的に移動させている。このマニューバは、プレーヤを惹きつけるものであるので、プレーヤに満足感を与える迫力のある画像を生成できることが望ましい。
【０１１８】
本実施形態では、特殊コマンドの入力情報を受け付けるまでは、１人称視点（自機を操作するパイロットの視点）、３人称視点（自機を注視点とし、自機を視界に入れた後方からの後方視点）として、視点から見える視界画像を表示画面に表示させている。
【０１１９】
一方、特殊コマンドの入力情報を受け付けた際には、仮想カメラを第３者視点とし、マニューバの移動経路に基づいて、仮想カメラの位置、向き、画角、移動方向、移動速度を制御している。例えば、自機の移動経路が認識できるように、自機、敵機から離れた位置に仮想カメラを配置させ、自機がマニューバ軌道に沿って移動する様子を客観的に見える画像を生成している。
【０１２０】
そして、本実施形態では、マニューバ軌道に基づく移動経路にしたがって自機を移動させて、自機と敵機との決定された位置関係が所定期間維持される前に、視点を第３者視点から、１人称視点、或いは３人称視点に戻す処理を行っている。つまり、自機が敵機の背後に位置した後は、敵機の狙いを定めて射撃用の入力をプレーヤが容易に行えるように視点を制御している。
【０１２１】
このように仮想カメラを制御しているのは、自機のマニューバや、海、山、空等の背景を含む画像を表示させ、プレーヤに迫力や満足感を与えるためであり、更に、マニューバによる特殊飛行によって、プレーヤが上下、左右、前後の位置関係を見失わないようにするためである。
【０１２２】
以下の視点制御の説明は、特殊コマンドの入力情報を受け付けた場合における自機のマニューバに基づいて演算された移動経路に基づく、仮想カメラを制御する一例である。
【０１２３】
まず、本実施形態では、回り込みという視点制御を行っている。回り込みの視点制御とは、図１２に示すように、自機の位置Ｐ１と敵機の位置Ｑ１との中間位置Ｋを求め、その中間位置Ｋを注視点として仮想カメラＣを中間位置Ｋを中心に回転させるように移動させる処理である。このようにすれば、自機、敵機の両機の位置関係がわかり易い画像を生成できる。
【０１２４】
また、本実施形態では、図１３（Ａ）（Ｂ）に示すように、仮想カメラＣを自機に近い位置から徐々に遠ざけて移動させるようにしてもよい。
【０１２５】
つまり、特殊コマンドの入力情報を受け付けた際には自機のみを視界（ビューボリューム）に収めるようにし、徐々に仮想カメラＣを遠ざけることによって、自機、敵機を視界に収めるように制御する。
【０１２６】
また、図１４（Ａ）（Ｂ）は、自機と敵機とが相互に逆方向に移動する際の仮想カメラＣの移動制御を示す。かかる場合には図１４（Ａ）（Ｂ）に示すように、自機が仮想カメラＣの手前に、敵機が仮想カメラＣに対して自機よりも奧方向に位置するように仮想カメラＣを移動させる。そして、自機の移動に追従して仮想カメラＣを移動させる。このようにすれば、自機の動きと共に敵の動きも自機越しに見える画像を生成することができる。
【０１２７】
また、図１５（Ａ）（Ｂ）（Ｃ）は、インメルマンターン等のターン系のマニューバによって自機を移動させる場合における仮想カメラＣの移動制御を示す。かかる場合には、仮想カメラＣの位置を固定させ、仮想カメラの向き、画角を変化させる。例えば、図１５（Ａ）に示すように画角を狭くして、自機を視界に収め、図１５（Ｂ）に示すように、自機の移動に合わせて仮想カメラＣの向きを変化させると共に画角を広げる。そして、自機が敵機の背後に位置する場合には、自機と敵機との両機を視界に収める。
【０１２８】
また、図１６（Ａ）（Ｂ）（Ｃ）も、インメルマンターン等のターン系のマニューバによって移動させる場合における仮想カメラＣの移動制御を示す。例えば、仮想カメラＣの移動を敵機の進行方向の後方で追従させながら、インメルマンターンによって自機がターンした際に、自機が敵機よりも仮想カメラＣの手前側になるように仮想カメラＣを移動させつつ、自機をビューボリューム内に収めるようにする。
【０１２９】
また、図１７（Ａ）（Ｂ）（Ｃ）も、インメルマンターン等のターン系のマニューバによって移動させた場合における仮想カメラＣの移動制御を示す。例えば、仮想カメラＣの移動を敵機の進行方向の前方で追従させながら、インメルマンターンによって自機がターンした際に、敵機が自機よりも仮想カメラＣの手前側になるように仮想カメラＣを移動させつつ、自機をビューボリューム内に収めるようにする。
【０１３０】
なお、複数の仮想カメラをオブジェクト空間に配置し、自機の移動経路に最も最適な仮想カメラを決定し、決定された仮想カメラから見える画像を生成してもよい。
【０１３１】
（６）入力情報を受け付ける処理
図１８は、本実施形態の入力装置２１、２２（入力装置２０の一例）を示す。例えば、図１８に示すように、プレーヤが、入力装置２１を右手で把持し、入力装置２２を左手で把持することができる。
【０１３２】
入力装置２１は、コントロールスティックによる操作子が備えられ、方向入力を検出（出力）することができる。また、入力装置２２は、十字キーや、複数のボタンによる操作子が備えられている。本実施形態では、所定ボタン（Ａボタン）の入力情報を、特殊コマンドの入力情報としている。
【０１３３】
本実施形態では、入力装置２１、２２それぞれに設定されている加速度センサによって、３軸の加速度を検出する。現実世界では、常に重力加速度が働いているので、重力加速度に基づいて、入力装置２１、２２自体が３軸のいずれの方向に傾いているかを算出することができる。本実施形態では、これらの加速度センサから検出された加速度を、移動用の入力情報としている。
【０１３４】
具体的には、図１９（Ａ）（Ｂ）に示すように、入力装置２１に設定された加速度センサから検出された加速度に基づいて、自機の移動方向（旋回する方向）を決定し、入力装置２２に設定された加速度センサから検出された加速度に基づいて、自機の移動速度を制御している。
【０１３５】
例えば、図１９（Ａ）に示すように、入力装置２１自体を右方向に傾けると、オブジェクト空間において自機を右方向に旋回させ、入力装置２１自体を左に傾けると、オブジェクト空間において自機を左方向に旋回させるように制御する。
【０１３６】
また図１９（Ｂ）に示すように、入力装置２１自体を上方向に傾けると、オブジェクト空間において自機を上方向に旋回させ、入力装置２１自体を下方向に傾けると、オブジェクト空間において自機を下方向に旋回させるように制御する。
【０１３７】
なお、操作技量の劣るプレーヤは、オブジェクト空間における上下の感覚を見失いやすい。そのため、本実施形態では、オブジェクト空間における水平を基準に上下１３５度を超える旋回を行う入力情報を受け付けた場合には、自動的に自機を水平に保つように制御している。
【０１３８】
また、図１９（Ｃ）に示すように、入力装置２２自体を、水平に保つ状態から上方向に傾けると、オブジェクト空間における自機を加速させる処理を行い、入力装置２２を水平にすると自機を所定速度（時速３００ｋｍ）までに減速させ、所定速度を維持するように、自機の移動速度を制御する。
【０１３９】
以上のような操作によれば、実在する航空機の操縦桿に似たような動作を行うことができる。また、本実施形態では、機関砲を発射させる射撃ボタンの入力情報（例えばＢボタン）に基づいて、弾を発射させるように制御してもよい。
【０１４０】
（７）リプレイ
本実施形態では、プレーヤからの入力情報の履歴や、自機や敵機の移動情報の履歴に基づいて、プレーヤが行ったゲームプレイをリプレイ（再現）させる処理を行っている。
【０１４１】
例えば、プレーヤからの入力情報の履歴や、自機や敵機の移動情報の履歴を、記憶部に記憶させ、所定期間中の入力情報の履歴、自機や敵機の移動情報の履歴に基づいて、リプレイ用の画像を生成する。本実施形態では、リプレイ用の画像を生成する場合には、ゲーム進行時とは異なるリプレイ用の仮想カメラの制御を行い、リプレイ用の仮想カメラから見える画像を生成している。かかる場合には、リプレイ用の仮想カメラについて特殊コマンドの実行時と同様の制御を行ってもよい。
【０１４２】
本実施形態では、ゲームステージをクリアした後に、クリアしたゲームステージ中のリプレイ画像を生成し表示させる処理を行う。また、特殊コマンドを実行し、敵機の撃墜が成功したと判定された場合には、敵機のセミロックオンの状態時から敵機を撃墜させるまでの期間のリプレイ画像を生成して表示させるようにしてもよい。また、敵機を撃墜できたか否かの結果に関係なく、特殊コマンドの実行等によりマニューバ軌道に沿って自機が移動する様子のリプレイ画像を生成して表示させるようにしてもよい。
【０１４３】
３．本実施形態の処理
次に、本実施形態の処理について図２０を用いて説明する。
【０１４４】
まず、敵機に対してセミロックオン（自機から一定距離以内にある敵機に対して特定エリアを発生させる制御）を行う（ステップＳ１０）。そして、セミロックオンした敵機を中心に特定エリアを発生させる（ステップＳ１１）。自機が特定エリアに侵入されると（ステップＳ１２）、特殊ゲージを表示させる（ステップＳ１３）。そして、特殊コマンドの入力を受け付けると（ステップＳ１４）、マニューバ軌道上（移動経路上）に障害物があるか否かを判断する（ステップＳ１５）。マニューバ軌道上に障害物があると判断された場合には（ステップＳ１５のＹｅｓ）、「ＷＡＲＮＩＮＧ」表示（アラート表示）を行い、特殊コマンドを実行せずに（ステップＳ１６）、ステップＳ１３に戻る。一方、マニューバ軌道上に障害物がないと判断された場合には（ステップＳ１５のＮｏ）、特殊コマンドを実行し、処理を終了する。
【０１４５】
なお、ステップＳ１０〜Ｓ１３の処理中に、セミロックオン切り替え操作がある場合には（ステップＳ１８）、セミロックオン可能な敵機が他にいるか否かを判断し（ステップＳ１９）、セミロックオン可能な敵機が他にいると判断されると（ステップＳ１９のＹｅｓ）、他の敵機をセミロックオンを行い（ステップＳ２０）、ステップＳ１０に戻る。一方、セミロックオン可能な敵機が他にいない場合には（ステップＳ１９のＮｏ）、ステップＳ１０〜Ｓ１３の処理に戻る。
【０１４６】
また、ステップＳ１０〜Ｓ１３の処理中に、セミロックオンした敵機から自機が一定距離以上離れた場合には（ステップＳ２１）、巡航状態にさせ（ステップＳ２２）、処理を終了する。
【０１４７】
４．応用例
（１）特定エリアの応用例
本実施形態の敵機に設定される特定エリアは球に限らず、立方体、円柱、角柱、円錐、角錐でもよい。例えば、図２１に示すように、高さ無限の円柱による半径ｒの中心線上に敵機を配置させる特定エリアを設定してもよい。
【０１４８】
このようにすれば、自機が、敵機に設定された特定エリアに属する場合には、Ｙ軸方向の違い（高度差）を考慮する必要がなくなるので、プレーヤは、特定エリアに属するように自機を移動させる操作を容易に行うことができる。また、レーダマップにおいても、単に自機が特定エリアを示す円に入っているか否かを識別さえすればよいので、プレーヤは自機が特定エリアに属するか否かを容易に判断することができる。
【０１４９】
（２）特殊ゲージの応用例
本実施形態では、自機と敵機との位置関係に基づいて、特殊ゲージの値を変化させてもよい。
【０１５０】
例えば、敵機に設定された特定エリア内に自機が位置した場合には、自機と敵機との距離に応じて特殊ゲージの値を変化させる。例えば、敵機からｒ１の距離（特定エリアの半径ｒ）を第１の所定値に対応させ、敵機からｒ２の距離を第２の所定値に対応させ、敵機からｒ３の距離を第３の所定値に対応させる。
【０１５１】
つまり、特殊コマンドの受け付け時の自機と敵機との距離がｒ１以上ｒ２未満であるときはレベル１が設定され、特殊コマンドの受け付け時の自機と敵機との距離がｒ２以上ｒ３未満であるときはレベル２が設定され、特殊コマンドの受け付け時の自機と敵機との距離がｒ３以上であるときはレベル３が設定される。このようにすれば、自機が敵機に近ければ近いほど特殊ゲージを増大させることができる。
【０１５２】
（３）マニューバ
本実施形態では、プレーヤからのマニューバ用の入力情報に基づいてマニューバを決定し、決定されたマニューバ軌道に基づいて自機を移動させるようにしてもよい。
【０１５３】
例えば、複数種類のマニューバそれぞれと、複数の異なるマニューバ用の入力情報とを予め対応づけておき、プレーヤから入力されたマニューバ用の入力情報に対応するマニューバを決定し、決定されたマニューバの軌道に従って自機を移動させる。
【０１５４】
かかる場合には、マニューバ軌道により、結果的に、自機を敵機の背後に移動させることも可能である。したがって、操作技量の高いプレーヤはマニューバ用の入力を行うことで、マニューバを発動させて敵機の背後をとるように自機を移動させることができる。
【０１５５】
また、操作技量の劣るプレーヤは、マニューバ用の入力を行い、単に敵機からの攻撃から回避するようにしてもよい。
【０１５６】
本実施形態では、図１８に示す、入力機器２１のコントロールスティックの方向入力情報を、マニューバ用の入力情報としている。また、方向入力情報に基づいて複数のマニューバのうちいずれかのマニューバを決定する処理を行っている。例えば、下方向、下方向、右方向の順に入力される方向入力情報と、インメルマンターンとを予め対応付けている場合には、下方向、下方向、右方向の順に方向入力情報を受け付けると、インメルマンターンの軌道に従って自機を移動させる処理を行う。
【０１５７】
なお、マニューバ用の入力情報を受け付けた場合には、上述したように、特殊コマンド実行時と同様の仮想カメラの制御を行ってもよい。
【０１５８】
また、本実施形態では、マニューバ用の入力情報を受け付けた場合に、特殊コマンドを実行してもよい。かかる場合には、プレーヤからのマニューバ用の入力情報に対応するマニューバに基づいて移動経路を求め、求めた移動経路が、敵機の背後に移動可能なマニューバであるか否かを判断し、敵機の背後に移動可能であると判断された場合には、マニューバの軌道に沿って自機を自動的に敵機の背後に移動させ、自機と敵機との相対的な位置関係を所定期間維持させる処理を行う。このようにすれば、プレーヤは、好みのマニューバで自機を敵機の背後に移動させることができる。
【０１５９】
（４）マニューバコンボ
本実施形態では、複数のマニューバを組み合わせて自機の移動経路を決定してもよい。また、上述した手動でマニューバを発動させる場合には、例えば、マニューバの１種であるスライスターンに基づく入力情報を受け付けてから続けて、マニューバの１種であるバレルロールの入力情報を受け付けた場合には、スライスターンからバレルロールに繋がる移動経路によって、自機を移動させるようにしてもよい。
【０１６０】
このようにすれば、操作技量の高いプレーヤは、自機と敵機との位置関係を考慮して、適切なマニューバの入力情報を行うことができる。
【０１６１】
（５）敵地上物
本実施形態では、敵地上物（例えば戦車）に対しても特定エリアを設定し、特定エリアに自機が属する場合に、特殊コマンドを受け付け、特殊コマンドを受け付けた場合には、移動経路を演算し、移動経路に基づいて自機を移動させて敵地上物を射撃するようにしてもよい。
【０１６２】
図２３は、自機が敵地上物を攻撃する例を示したものである。本実施形態では、例えば、敵地上物がＱ３に位置し、位置Ｑ３を中心とする半径ｒの特定エリア内に、自機が位置している場合（Ｐ３位置している場合）に、特殊コマンドの入力情報を受け付ける。
【０１６３】
そして、特殊コマンドの入力情報を受け付けると、自機から発射させた弾を敵地上物に命中させることが可能な位置に、自機を移動させる。例えば、敵地上物の位置Ｑ３方向に自機を移動させる。
【０１６４】
本実施形態では、敵地上物を射撃範囲にとらえることができる位置Ｐ４まで、プレーヤの移動用の入力情報によらずに自機を移動させる。例えば、本実施形態では、急降下するマニューバに基づいて、自機を移動させている。このようにすれば、操作技量の劣るプレーヤであっても、敵地上物を狙いやすくなる。
【０１６５】
なお、本実施形態では、敵地上物に対する特殊コマンドの実行処理は、自機から発射させた弾を敵地上物に命中させることが可能なように、自機と敵地上物との相対的な位置関係を決定し、その位置関係になるようにマニューバ軌道によって自動的に自機を移動させる処理を行うものである。したがって、プレーヤは自機を急上昇させる操作を行わなければ、自機を地面に激突させてしまうことになる。
【０１６６】
なお、本実施形態では、操作技量の劣るプレーヤのために、敵地上物に対する特殊コマンドの実行処理は、決定された位置関係になるようにマニューバ軌道によって自動的に自機を移動させる処理を行い、その後、プレーヤの移動用の入力情報によらずに急上昇させる処理を行ってもよい。
【０１６７】
（６）一時停止
本実施形態では、進行中のゲームを一時停止させるための入力情報（ポーズの入力情報）に基づきゲームを一時停止（ポーズ）させ、その後プレーヤからの特殊コマンドの入力情報を受け付けた場合に、特殊コマンドを実行させるようにしてもよい。このようにすれば、プレーヤはゲームを一時停止して、自機や敵機の状況を確認することができる。
【０１６８】
また、同様に、マニューバ用の入力情報を受け付ける場合には、進行中のゲームを一時停止させるための入力情報に基づきゲームを一時停止させて、その後プレーヤからのマニューバ用の入力情報を受け付けてから自機をマニューバ軌道に沿って移動させてもよい。このようにすれば、プレーヤはどのマニューバによる軌道で自機を移動させるかをじっくり検討することができる。また、マニューバ用の入力情報を受け付けて特殊コマンドを実行する場合にも、同様に、一時停止させた後に、プレーヤからのマニューバ用の入力情報を受け付けてから特殊コマンドを実行させるようにしてもよい。
【０１６９】
（７）特殊コマンドの実行
本実施形態では、特殊コマンドの入力情報を受け付けたか否かに関わらず、特殊ゲージのパラメータが最大値に達することを契機に特殊コマンドを実行するようにしてもよい。
【図面の簡単な説明】
【０１７０】
【図１】本実施形態のゲームシステムの機能ブロック図の例。
【図２】敵機を自機の射撃範囲に位置させる例を示す図。
【図３】特定エリアの説明図。
【図４】図４（Ａ）（Ｂ）は本実施形態の表示画面の例。
【図５】レーダーマップの説明図。
【図６】特定エリアに対する自機の位置を説明するための図。
【図７】図７（Ａ）（Ｂ）はレーダーマップの説明図。
【図８】特殊コマンドの実行による自機の移動経路を説明するための図。
【図９】図９（Ａ）（Ｂ）は、特殊コマンドの実行による自機と敵機との位置関係を説明するための図。
【図１０】特殊ゲージが表示される表示画面の一例。
【図１１】図１１（Ａ）（Ｂ）は、命中率に応じた特殊コマンドの実行による自機と敵機との位置関係を説明するための図。
【図１２】仮想カメラの制御を説明するための図。
【図１３】図１３（Ａ）（Ｂ）は仮想カメラの制御を説明するための図。
【図１４】図１４（Ａ）（Ｂ）は仮想カメラの制御を説明するための図。
【図１５】図１５（Ａ）（Ｂ）（Ｃ）は仮想カメラの制御を説明するための図。
【図１６】図１６（Ａ）（Ｂ）（Ｃ）は仮想カメラの制御を説明するための図。
【図１７】図１７（Ａ）（Ｂ）（Ｃ）は仮想カメラの制御を説明するための図。
【図１８】本実施形態の入力機器を説明するための図。
【図１９】図１９（Ａ）（Ｂ）（Ｃ）は本実施形態の入力情報を説明するための図。
【図２０】本実施形態の処理のフローチャート。
【図２１】特定エリアの説明図。
【図２２】特殊ゲージの説明図。
【図２３】特殊コマンドの実行による自機の移動経路、自機と敵地上物との位置関係を説明するための図。
【符号の説明】
【０１７１】
１０  本体装置、
２０  入力装置、
１００  処理部、
１１０  オブジェクト空間設定部、
１１１  移動・動作処理部、１１１ａ  移動処理部、
１１２  ゲーム演算部、
１１３  受け付け部、
１１４  表示制御部、
１１５  仮想カメラ制御部、
１１６  命中率決定部、
１２０  描画部、
１３０  音制御部、
１４０  振動制御部、
１７０  記憶部、
１７２  主記憶部、１７４  描画バッファ、
１８０  情報記憶媒体、
１９０  表示部、
１９２  スピーカー、
１９６  通信部、
１９８  光源、
２１０  加速度センサ、２２０  撮像部、
２２２  赤外線フィルタ、２２４  レンズ、２２６  撮像素子、２２８  画像処理回路、
２３０  スピーカー、２４０  振動部、
２５０  マイコン、２６０  通信部、２７０  操作部
【図１】
0005390115.tif 000002
【図２】
0005390115.tif 000003
【図３】
0005390115.tif 000004
【図４】
0005390115.tif 000005
【図５】
0005390115.tif 000006
【図６】
0005390115.tif 000007
【図７】
0005390115.tif 000008
【図８】
0005390115.tif 000009
【図９】
0005390115.tif 000010
【図１０】
0005390115.tif 000011
【図１１】
0005390115.tif 000012
【図１２】
0005390115.tif 000013
【図１３】
0005390115.tif 000014
【図１４】
0005390115.tif 000015
【図１５】
0005390115.tif 000016
【図１６】
0005390115.tif 000017
【図１７】
0005390115.tif 000018
【図１８】
0005390115.tif 000019
【図１９】
0005390115.tif 000020
【図２０】
0005390115.tif 000021
【図２１】
0005390115.tif 000022
【図２２】
0005390115.tif 000023
【図２３】
0005390115.tif 000024