(57)【特許請求の範囲】
【請求項１】
画像を生成するためのプログラムであって、
入力情報に基づいて、プレーヤ移動体に仮想３次元空間を移動させる移動制御を行う移動制御部と、
前記仮想三次元空間を所与の視点から見た画像を生成する画像生成部と、してコンピュータを機能させ、
前記移動制御部は、
ターゲット移動体の過去の移動情報が記憶された記憶部からターゲット移動体の過去の移動情報を読み出し、読み出したターゲット移動体の過去の移動情報に基づき、前記プレーヤ移動体が前記ターゲット移動体に追従するように前記プレーヤ移動体を移動させる追従制御を行う追従制御部を有するように前記コンピュータを機能させ、
前記追従制御部は、
前記ターゲット移動体の過去の移動情報と前記プレーヤ移動体の現在の移動情報を所定の比率で合成して、合成した移動情報に基づいてプレーヤ移動体の移動を制御することを特徴とするプログラム。
【請求項２】
請求項１において、
前記追従制御部は、
前記入力情報又はゲームパラメータが所定の比率変更条件を満たした場合に、前記合成の前記比率を変更することを特徴とするプログラム。
【請求項３】
請求項２において、
前記追従制御部は、
前記プレーヤ移動体と前記ターゲット移動体の位置関係が所定の比率変更条件を満たす期間が所定期間継続した場合に前記合成の前記比率を変更することを特徴とするプログラム。
【請求項４】
請求項３において、
前記追従制御部は、
前記プレーヤ移動体と前記ターゲット移動体を所定の平面に投影して、プレーヤ移動体とターゲット移動体の位置関係が前記所定の比率変更条件を満たすか否か判定することを特徴とするプログラム。
【請求項５】
画像を生成するための画像生成システムであって、
入力情報に基づいて、プレーヤ移動体に仮想３次元空間を移動させる移動制御を行う移動制御部と、
前記仮想三次元空間を所与の視点から見た画像を生成する画像生成部と、を含み、
前記移動制御部は、
ターゲット移動体の過去の移動情報が記憶された記憶部からターゲット移動体の過去の移動情報を読み出し、読み出したターゲット移動体の過去の移動情報に基づき、前記プレーヤ移動体が前記ターゲット移動体に追従するように前記プレーヤ移動体を移動させる追従制御を行う追従制御部を含み、
前記追従制御部は、
前記ターゲット移動体の過去の移動情報と前記プレーヤ移動体の現在の移動情報を所定の比率で合成して、合成した移動情報に基づいてプレーヤ移動体の移動を制御することを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来から、プレーヤが入力操作を行いオブジェクト空間における機体（自機）を移動させて、敵の機体（敵機）を射撃するフライトシューティングゲームが人気が高い。
【０００３】
このようなフライトシューティングゲームでは、遠方に飛行する豆粒大の敵をミサイル等で攻撃するのが主であり、高速に動き回る敵機に近接して移動しながら砲撃する近接戦闘を行うものはなかった。また仮に近接戦闘が可能であるとしても高速に動き回る敵に近接して移動するのは、高度なテクニックが必要であるため、初心者等や操作に不慣れなプレーヤは実質上近接戦闘を行うことは困難であった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３４７０８８２号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記文献では、距離に基づいて追従を行う構成が開示されている。しかしこの手法によれば常に一定距離を保って追従することになり、多様な追従表現を行うのは困難である。またターゲット移動体が様々な移動形態をとる場合や、周辺に障害物がある場合等一定距離を保って追従させるための制御が複雑となり、処理負荷も増大する。
【０００６】
本発明は、かかる課題に鑑みたものである。本発明の幾つかの態様によれば、簡単な制御で、仮想３次元空間において移動体を他の移動体に追従させる多様な追従表現を実現することができる。
【課題を解決するための手段】
【０００７】
（１）本発明は、
画像を生成するためのプログラムであって、
入力情報に基づいて、プレーヤ移動体に仮想３次元空間を移動させる移動制御を行う移動制御部と、
前記仮想三次元空間を所与の視点から見た画像を生成する画像生成部と、してコンピュータを機能させ、
前記移動制御部は、
ターゲット移動体の過去の移動情報に基づき、前記プレーヤ移動体に前記ターゲット移動体を追従させる追従制御を行う追従制御部を含むプログラムに関する。
【０００８】
また本発明は上記各部を含む画像生成システムに関する。また本発明はコンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関する。
【０００９】
本発明によれば、仮想３次元空間において、簡単な制御で移動体を他の移動体に追従させることができる。
【００１０】
（２）このプログラム、情報記憶媒体、画像生成システムは、
前記追従制御部は、
所与の遅延時間だけ過去の前記ターゲット移動体の移動体情報に基づき前記追従制御を行うように構成され、前記入力情報又はゲームパラメータが所定の遅延変更条件を満たした場合に、前記遅延時間を変更してもよい。
【００１１】
（３）このプログラム、情報記憶媒体、画像生成システムは、
前記追従制御部は、
前記ターゲット移動体の過去の移動情報に基づき、前記プレーヤ移動体が前記ターゲット移動体の過去の通過位置又はその近傍位置を通るように前記プレーヤ移動体の移動を制御してもよい。
【００１２】
（４）このプログラム、情報記憶媒体、画像生成システムは、
前記追従制御部は、
前記ターゲット移動体の過去の移動情報を入力情報に基づき補正して、補正後の移動情報に基づき前記プレーヤ移動体の移動を制御してもよい。
【００１３】
（５）このプログラム、情報記憶媒体、画像生成システムは、
前記追従制御部は、
前記ターゲット移動体の移動情報に基づき、前記ターゲット移動体の直近の移動軌跡に対応した移動可能範囲をリアルタイムに設定し、前記プレーヤ移動体に移動可能範囲を移動させる制御を行ってもよい。
【００１４】
（６）このプログラム、情報記憶媒体、画像生成システムは、
前記追従制御部は、
前記ターゲット移動体の過去の移動情報と前記プレーヤ移動体の現在の移動情報を所定の比率で合成して、合成した移動情報に基づいてプレーヤ移動体の移動を制御してもよい。
【００１５】
（７）このプログラム、情報記憶媒体、画像生成システムは、
前記追従制御部は、
前記入力情報又はゲームパラメータが所定の比率変更条件を満たした場合に、前記合成の前記比率を変更してもよい。
【００１６】
（８）このプログラム、情報記憶媒体、画像生成システムは、
前記追従制御部は、
前記プレーヤ移動体と前記ターゲット移動体の位置関係が所定の比率変更条件を満たす期間が所定期間継続した場合に前記合成の前記比率を変更してもよい。
【００１７】
（９）このプログラム、情報記憶媒体、画像生成システムは、
前記追従制御部は、
前記プレーヤ移動体と前記ターゲット移動体を所定の平面に投影して、プレーヤ移動体とターゲット移動体の位置関係が前記所定の条件を満たすか否か判定してもよい。
【００１８】
（１０）このプログラム、情報記憶媒体、画像生成システムは、
前記追従制御部は、
前記プレーヤ移動体と前記ターゲット移動体の距離及び前記プレーヤ移動体の位置及び追従制御指示入力の有無及び所定のゲーム状況の発生の少なくとも1つに基づき、前記追従制御の開始条件を満たしているか否か判断し、前記追従制御の前記開始条件を満たしていない場合には前記追従制御を行わないようにしてもよい。
【００１９】
（１１）このプログラム、情報記憶媒体、画像生成システムは、
前記追従制御部は、
前記プレーヤ移動体と前記ターゲット移動体の距離及び前記プレーヤ移動体の位置及び所定のゲーム状況の発生及び追従制御解除入力の有無及び前記ターゲット移動体の動作内容の少なくとも１つに基づき、追従制御終了条件を満たしているか否か判断し、前記追従制御終了条件を満たしている場合には前記追従制御を終了してもよい。
【００２０】
（１２）このプログラム、情報記憶媒体、画像生成システムは、
前記仮想３次元空間の一部に自動移動ルートを設定し、前記ターゲット移動体の位置が所定の自動移動開始条件を満たした場合には、前記ターゲット移動体に前記自動移動ルートを移動させる制御を行ってもよい。
【００２１】
（１３）本発明は、
画像を生成するためのプログラムであって、
入力情報に基づいて、プレーヤ移動体に仮想３次元空間を移動させる移動制御を行う移動制御部と、
前記仮想三次元空間を所与の視点から見た画像を生成する画像生成部と、してコンピュータを機能させ、
前記移動制御部は、
前記仮想３次元空間の一部に自動移動ルートを設定し、前記プレーヤ移動体の位置が所定の条件を満たした場合には、前記プレーヤ移動体に前記自動移動ルートを移動させる制御を行うプログラムに関する。
【００２２】
また本発明は上記各部を含む画像生成システムに関する。また本発明はコンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関する。
【図面の簡単な説明】
【００２３】
【図１】本実施形態のゲームシステムの機能ブロック図の例。
【図２】第１の追従制御の手法の一例である単純追従型について説明する図。
【図３】図３（Ａ）（Ｂ）は、第１の追従制御の他の例について説明する図。
【図４】第２の追従制御の手法について説明するための図。
【図５】第２の追従制御の手法について説明するための図。
【図６】プレーヤの入力による影響について説明するための図。
【図７】ブレンド率の決定手法について説明するための図。
【図８】ブレンド率の決定手法について説明するための図。
【図９】すり抜けモードについて説明するための図。
【図１０】ターゲット移動体の過去の移動情報について説明するための図。
【図１１】図１１（Ａ）（Ｂ）はプレーヤ移動体とターゲット移動体を所定の平面に透視投影している様子を示す図。
【図１２】本実施の形態の第１の追従制御処理の流れを示すフローチャート。
【図１３】本実施の形態の第２の追従制御処理の流れを示すフローチャート。
【図１４】本実施の形態のすり抜けモードの処理の流れを示すフローチャート。
【発明を実施するための形態】
【００２４】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２５】
１．構成
図１は、本実施形態のゲームシステムの機能ブロック図の一例である。なお本実施形態のゲームシステムでは、図１の各部を全て含む必要はなく、その一部を省略した構成としてもよい。
【００２６】
本実施形態のゲームシステムは、本体装置１０と、入力装置２０と、情報記憶媒体１８０、表示部（表示装置）１９０、スピーカー１９２、光源１９８とからなる。
【００２７】
入力装置２０は、加速度センサ２１０、撮像部２２０、スピーカー２３０、振動部２４０、マイコン２５０、通信部２６０、操作部２７０によって構成される。
【００２８】
加速度センサ２１０は、３軸（Ｘ軸、Ｙ軸、Ｚ軸）の加速度を検出する。すなわち、加速度センサ２１０は、上下方向、左右方向、及び、前後方向の加速度を検出することができる。なお、加速度センサ２１０は、５ｍｓｅｃ毎に加速度を検出し、加速度センサ２１０から検出された加速度は、通信部２６０によって本体装置１０に送信される。なお、加速度センサ２１０は、１軸、２軸、６軸の加速度を検出するものであってもよい。
【００２９】
撮像部２２０は、赤外線フィルタ２２２、レンズ２２４、撮像素子（イメージセンサ）２２６、画像処理回路２２８を含む。赤外線フィルタ２２２は、入力装置２０の前方に配置され、表示部１９０に関連付けられて配置されている光源１９８から入射する光から赤外線のみを通過させる。レンズ２２４は、赤外線フィルタ２２２を透過した赤外線を集光して撮像素子２２６へ出射する。撮像素子２２６は、例えば、ＣＭＯＳセンサやＣＣＤのような固体撮像素子であり、レンズ２２４が集光した赤外線を撮像して撮像画像を生成する。撮像素子２２６で生成された撮像画像は、画像処理回路２２８で処理される。例えば、撮像素子２２６から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報（特定位置）を検出する。なお、光源が複数存在する場合には、撮像画像上の位置情報を複数検出する。また、複数の光源を利用して撮像画像上の位置情報を複数検出し、検出された位置情報の基準軸からの回転角度（傾き）を求め、光源に対する入力装置２０自体の傾きを求めてもよい。なお、検出した撮像画像上の位置情報は、通信部２６０によって、本体装置１０に送信される。
【００３０】
スピーカー２３０は、本体装置１０から通信部２６０を介して取得した音を出力する。
【００３１】
振動部（バイブレータ）２４０は、本体装置１０から送信された振動信号を受信して、振動信号に基づいて作動する。
【００３２】
マイコン（マイクロコンピュータ）２５０は、操作部２７０が出力した入力信号、加速度センサ２１０が検出した加速度を通信部２６０を介して本体装置１０に送信させる処理を行ったり、撮像部２２０によって検出された位置情報を、通信部２６０を介して本体装置１０に送信させる処理を行う。また、受信した本体装置１０からのデータに応じて、音を出力する制御や、バイブレータを作動させる制御を行う。
【００３３】
通信部２６０は、アンテナ、無線モジュールを含み、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて、本体装置１０とデータを無線で送信受信する。なお、本実施形態の通信部２６０は、加速度センサ２１０によって検出された加速度や撮像部２２０において検出した位置情報等を、４ｍｓｅｃ、６ｍｓｅｃの交互の間隔で本体装置１０に送信している。なお、通信部２６０は、本体装置１０と通信ケーブルで接続し、当該通信ケーブルを介して情報の送受信を行うようにしてもよい。
【００３４】
操作部２７０は、方向キー（十字キー）、ボタン（Ａボタン、Ｂボタンなど）、方向入力可能なコントロールスティック（アナログキー）などの操作子であり、プレーヤからの入力操作によって入力信号を出力する処理を行う。なお、操作信号は、通信部２６０を介して本体装置１０に送信される。
【００３５】
なお、入力装置２０は、プレーヤの入力動作によって変化する角速度を検出するジャイロセンサを備えていてもよい。
【００３６】
また、入力装置２０は、加圧センサを備えていてもよい。加圧センサは、プレーヤの入力動作によって発生する圧力を検出する。例えば、プレーヤの体重や、プレーヤが力を加えることによる圧力を検出することができる。また、入力装置２０に加圧センサを複数備えることによって、複数の圧力センサそれぞれの圧力値を検出してもよい。
【００３７】
本実施形態の入力装置２０は、入力装置２０と一体化されている本体装置１０（ゲーム装置、携帯型ゲーム装置）、携帯電話なども含まれる。
【００３８】
次に、本実施形態の本体装置１０について説明する。本実施形態の本体装置１０は、記憶部１７０、処理部１００、通信部１９６によって構成される。
【００３９】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などのハードウェアにより実現できる。
【００４０】
特に、本実施形態の記憶部１７０は、主記憶部１７２、描画バッファ１７４を含む。主記憶部１７２は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などのハードウェアにより実現できる。また、描画バッファ１７４は、描画部１２０において生成された画像を記憶する。
【００４１】
そして処理部１００は、この情報記憶媒体１８０に格納されるプログラム（データ）から読み出されたデータに基づいて本実施形態の種々の処理を行う。即ち、情報記録媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。なお情報記憶媒体１８０は、メモリカードに、プレーヤの個人データやゲームのセーブデータなどを記憶するものも含む。
【００４２】
通信部１９６は、ネットワーク（インターネット）を介して他の本体装置１０（ゲーム装置）と通信することができる。その機能は、各種プロセッサ又は通信用ＡＳＩＣ、ネットワーク・インタフェース・カードなどのハードウェアや、プログラムなどにより実現できる。また、通信部１９６は、有線、無線いずれの通信も行うことができる。
【００４３】
また、通信部１９６は、アンテナ、無線モジュールを含み、Ｂｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて、入力装置２０の通信部２６０を介して、入力装置２０とデータを送受信する。例えば、通信部１９６は、音データ、及び、振動信号を、入力装置２０に送信し、入力装置２０において、操作部２７０が出力した入力信号、加速度センサ２１０が検出した加速度、撮像部２２０によって検出された情報を、４ｍｓｅｃ、６ｍｓｅｃの交互の間隔で受信する。
【００４４】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、サーバが有する、記憶部、情報記憶媒体からネットワークを介して情報記憶媒体１８０（または、記憶部１７０）に配信するようにしてもよい。このようなサーバの情報記憶媒体の使用も本発明の範囲に含まれる。
【００４５】
処理部１００（プロセッサ）は、入力装置２０から受信した情報や情報記憶媒体１８０から記憶部１７０に展開されたプログラム等に基づいて、ゲーム演算処理、画像生成処理、或いは音制御の処理を行う。
【００４６】
特に本実施形態の処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１５０、ゲーム演算部１１２、表示制御部１１４、仮想カメラ制御部１１５、描画部１２０、音制御部１３０、振動制御部１４０とを含む。
【００４７】
オブジェクト空間設定部１１０は、オブジェクト（移動体、ターゲット、自機、敵機、弾）の他に、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義であり、例えば、ワールド座標系でのＸ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００４８】
移動・動作処理部１５０は、オブジェクトの移動・動作演算を行う。すなわち入力装置２０によりプレーヤが入力した入力情報や、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求める処理を行う。なおフレームは、オブジェクトの移動・動作処理や画像生成処理を行う時間の単位である。
【００４９】
特に、本実施形態のプレーヤ移動体制御部１５２は、プレーヤからの移動用の入力情報に基づいて、プレーヤ移動体に仮想３次元空間を移動させる移動制御処理を行う。本実施形態では、プレーヤからの移動用の入力情報は、加速度センサで検出された加速度である。本実施形態では、検出された加速度に基づいて、傾き値を算出し、傾き値に基づいて移動体の移動方向や、移動速度を決定し、移動体を移動させる処理を行っている。
【００５０】
プレーヤ移動体制御部１５２は、前記ターゲット移動体の過去の移動情報に基づき、前記プレーヤ移動体に前記ターゲット移動体を追従させる追従制御を行う追従制御部１５４を含んでもよい。
【００５１】
プレーヤ移動体とは、プレーヤが操作する移動体であり、例えば飛行機や車等でもよい。ターゲット移動体とは、マルチプレーヤゲームで他のプレーヤが操作する移動体でもよいし、コンピュータが操作する移動体でもよい。
【００５２】
ターゲット移動体の移動情報とは、例えばターゲット移動体の位置、姿勢、移動ベクトル（速度ベクトルでもよい、移動方向と速度の大きさを有するベクトルでもよい）等である。過去の移動情報としてターゲット移動体のリプレイデータを使用してもよい。リプレイデータを毎フレームごとに持っていない場合には、リプレイデータがない部分は前後のリプレイデータから補完値を求めて使用してもよい。またリプレイデータからターゲット移動体の位置、姿勢、移動ベクトルを算出してもよい。
【００５３】
プレーヤ移動体にターゲット移動体を追従させる追従制御は、例えばプレーヤ移動体の前方（プレーヤ移動体の進行方向）を移動するターゲット移動体が所定時間前（フレーム単位でゲーム時間を管理している場合には所定フレーム前）に通過した位置（座標）をプレーヤ移動体が通過するようにプレーヤ移動体の位置を制御してもよい。
【００５４】
本発明によれば仮想３次元空間において、他の移動体の過去の移動情報を用いることで、簡単な制御で、移動体を他の移動体に追従させることができる。
【００５５】
追従制御部１５４は、所与の遅延時間だけ過去の前記ターゲット移動体の移動体情報に基づき前記追従制御を行うように構成され、前記入力情報又はゲームパラメータが所定の遅延変更条件を満たした場合に、前記遅延時間を変更するようにしてもよい。
【００５６】
所定の遅延条件とは、プレーヤ移動体とターゲット移動体の位置関係、所定のゲーム状況の発生、所定の入力情報の発生（例えばターゲット移動体がスロットル、ブレーキ、特殊機動などの入力を行った場合）等に関する条件でもよい。遅延時間を変更して追従制御を行うことで、変化に富んだ追従制御を行うことができる。
【００５７】
追従制御部１５４は、前記ターゲット移動体の過去の移動情報に基づき、前記プレーヤ移動体が前記ターゲット移動体の過去の通過位置又はその近傍位置を通るように前記プレーヤ移動体の移動を制御してもよい。
【００５８】
また追従制御部１５４は、前記ターゲット移動体の過去の移動情報を入力情報に基づき補正して、補正後の移動情報に基づき前記プレーヤ移動体の移動を制御してもよい。
【００５９】
また追従制御部１５４は、前記ターゲット移動体の移動情報に基づき、前記ターゲット移動体の直近の移動軌跡に対応した移動可能範囲をリアルタイムに設定し、前記プレーヤ移動体に移動可能範囲を移動させる制御を行ってもよい。移動可能範囲は、平面的な領域でもよいし、空間的な領域でもよく、ターゲットの直近の移動軌跡に対してある程度の幅を持った領域でもよい。例えば移動可能範囲は、ターゲット移動体の移動軌跡を通るチューブ状の空間でもよい。この移動可能範囲はターゲット移動体の移動情報に基づき生成するので、ターゲット移動体のインタラクティブな移動を反映してリアタイムに生成される。
【００６０】
プレーヤ移動体は、移動可能範囲内をターゲットの移動軌跡に対して入力情報に応じて上下左右にずれた位置を移動するようにしてもよい。また例えば移動可能範囲内においてターゲットの移動軌跡に対してランダムに上下左右にずれた位置を移動するようにしてもよい。この様にするとプレーヤ移動体がターゲット移動体の真後ろに張り付いて移動するのを防止し、変化に富んだ追従制御を実現することができる。
【００６１】
また追従制御部１５４は、前記ターゲット移動体の過去の移動情報と前記プレーヤ移動体の現在の移動情報を所定の比率で合成して、合成した移動情報に基づいてプレーヤ移動体の移動を制御してもよい。前記ターゲット移動体の過去の移動情報とは、ターゲット移動体の所与の遅延時間だけ過去の移動情報（位置、姿勢、移動ベクトル）でもよい。プレーヤ移動体の現在の移動情報とは、プレーヤ移動体が現在の姿勢で直進したと仮定したときの移動情報（位置、姿勢、移動ベクトル）でもよい。位置は所定の比率（ブレンド率）で線形補間してもよい。姿勢は所定の比率（ブレンド率）で球面線形補間してもよい。移動ベクトルは所定の比率（ブレンド率）でベクトル合成してもよい。
【００６２】
この様にするとプレーヤはある程度操作をしないとターゲット移動体を見失ってしまうので、プレーヤの技量も反映した追従制御を行うことができる。
【００６３】
また追従制御部１５４は、前記入力情報又はゲームパラメータが所定の比率変更条件を満たした場合に、前記合成の前記比率を変更してもよい。所定の比率変更条件とは、プレーヤ移動体とターゲット移動体の位置関係、所定のゲーム状況の発生、所定の入力情報の発生等に関する条件でもよい。合成の比率が変更することで、追従の強さの強弱ができるので、メリハリのある追従制御を実現することができる。
【００６４】
また追従制御部１５４は、前記プレーヤ移動体と前記ターゲット移動体の位置関係が所定の条件を満たす期間が所定期間継続した場合に前記合成の前記比率を変更するようにしてもよい。プレーヤ移動体とターゲット移動体の位置関係が所定の条件を満たすとすぐに合成の比率が変更されるとプレーヤ移動体の動きがぎくしゃくと不自然になるが、この様にするとスムーズな動きでプレーヤ移動体を追従させることができる。
【００６５】
また追従制御部１５４は、前記プレーヤ移動体と前記ターゲット移動体を所定の平面に投影して、プレーヤ移動体とターゲット移動体の位置関係が前記所定の条件を満たすか否か判定するようにしてもよい。
【００６６】
また追従制御部１５４は、前記プレーヤ移動体と前記ターゲット移動体の距離及び前記プレーヤ移動体の位置及び追従制御指示入力の有無及び所定のゲーム状況の発生の少なくとも１つに基づき、前記追従制御の開始条件を満たしているか否か判断し、前記追従制御の前記開始条件を満たしていない場合には前記追従制御を行わないようにしてもよい。プレーヤ移動体とターゲット移動体の距離及びプレーヤ移動体の向き（プレーヤ移動体の進行方向がターゲット移動体のほうである）に基づき追従制御の開始条件を満たしているか否か判断してもよい。追従制御の開始条件を満たしている場合には自動的に追従制御を行ってもよいし、プレーヤからの追従制御指示入力があった場合に追従制御を行ってもよい。所定のゲーム状況の発生とは例えば、プレーヤ移動体がターゲットとなる敵移動体を所定時間ロックオンしたことや、プレーヤ移動体が所定のアイテムを取得したことや、プレーヤ移動体が敵機に一定のダメージを与えたこと等でもよい。
【００６７】
また追従制御部１５４は、前記プレーヤ移動体と前記ターゲット移動体の距離及び前記プレーヤ移動体の位置及び所定のゲーム状況の発生及び追従制御解除入力の有無及び前記ターゲット移動体の動作内容の少なくとも１つに基づき、追従制御終了条件を満たしているか否か判断し、前記追従制御終了条件を満たしている場合には前記追従制御を終了するようにしてもよい。
【００６８】
ターゲット移動体制御部１５６は、仮想３次元空間の一部に自動移動ルートを設定し、前記ターゲット移動体の位置が所定の条件を満たした場合には、前記ターゲット移動体に前記自動移動ルートを移動させる制御を行うようにしてもよい。前記ターゲット移動体の位置及び向きが所定の条件を満たした場合は、前記ターゲット移動体に前記自動移動ルートを移動させる制御を行うようにしてもよい。自動移動ルートは、障害物等が多くて移動に高度な技量が必要な箇所に設定してもよい。自動移動ルートを自動的に移動させることで、ターゲット移動体は移動困難な場所をすり抜けることができる。そして自動移動ルートを移動するターゲット移動体を追従するプレーヤ移動体も移動困難な場所をすり抜けることができる。例えばターゲット移動体を見えない仮想点として設定し、当該仮想点にプレーヤ移動体を牽引させ、プレーヤ移動体に移動困難な場所をすり抜けるような移動を行わせてもよい。
【００６９】
ゲーム演算部１１２は、種々のゲーム演算処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲームステージ毎のクリア条件を満たすか否かを判定する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などを行う。
【００７０】
特に、本実施形態のゲーム演算部１１２は、プレーヤからの射撃用の入力情報に基づいて移動体から弾を発射させ、発射させた弾がターゲットに命中したか否かを判断し、判断結果に基づきゲーム演算を行う。本実施形態では、射撃用の入力情報は、操作部２７０の第２の入力信号（例えば、Ｂボタンによる入力信号）としている。なお、命中したか否かの判断処理は、予め定められた弾のヒット領域と、予め定められたターゲットのヒット領域とのヒットチェックを行うことによって、命中したか否かを判断している。
【００７１】
表示制御部１１４は、視界画像を表示させると共に、視界画像とは異なる表示領域に、移動体の位置、エリアの関係を簡略化して示した画像（レーダーマップ）を表示させる処理を行う。
【００７２】
仮想カメラ制御部１１５は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、ワールド座標系における仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（例えば、Ｘ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を制御する処理を行う。
【００７３】
特に本実施形態の仮想カメラ制御部１１５は、移動体の移動経路に基づいて、仮想カメラの位置、向き、画角の少なくとも１つを制御する処理を行う。
【００７４】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム演算処理）の結果に基づいて描画処理を行い、これにより画像（視界画像、レーダーマップなど）を生成し、表示部１９０に出力する。
【００７５】
いわゆる３次元ゲーム画像を生成する場合には、まず表示物（オブジェクト、モデル）を定義する各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含む表示物データ（オブジェクトデータ、モデルデータ）が入力され、入力された表示物データに含まれる頂点データに基づいて、頂点処理が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。頂点処理では、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、表示物を構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（フラグメント処理）が行われる。ピクセル処理では、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内に設定された仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００７６】
なお描画部１２０が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００７７】
そして描画部１２０は、表示物を描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００７８】
ジオメトリ処理では、表示物に関して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）の表示物データ（表示物の頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、主記憶部１７２に保存される。
【００７９】
テクスチャマッピングは、記憶部１７０に記憶されるテクスチャ（テクセル値）を表示物にマッピングするための処理である。具体的には、表示物の頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャを表示物にマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００８０】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファに格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００８１】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより２つの色を合成した色を求める処理を行う。
【００８２】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えばＲＧＢの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００８３】
音制御部１３０は、処理部１００で行われる種々の処理（ゲーム演算処理等）の結果に基づいて記憶部１７０に記憶されている音を、入力装置２０のスピーカー２３０及びスピーカー１９２の少なくとも一方から出力させる処理を行う。
【００８４】
振動制御部１４０は、処理部１００で行われる種々の処理（ゲーム演算処理等）の結果に基づいて、通信部１９６、通信部２６０を介して、入力装置２０の振動部２４０を振動させる処理を行う。
【００８５】
なお、本実施形態のゲームシステムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００８６】
また複数のプレーヤがプレイする場合に、複数のプレーヤそれぞれの入力装置２０から送信された情報（加速度センサ２１０が検出した加速度、操作部２７０が出力した入力信号等）に基づいて、１つの本体装置１０がゲーム演算、画像生成処理を行い、生成した画像を表示部に表示させるように制御してもよい。
【００８７】
また、複数のプレーヤそれぞれの本体装置１０がネットワーク（伝送ライン、通信回線）を介して接続され、複数の本体装置１０それぞれが、入力装置２０から送信された情報に基づいて、ゲーム演算、画像生成処理を行い、生成した画像を表示部に表示させるように制御してもよい。
【００８８】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。
【００８９】
表示部１９０は、処理部１００により生成された画像を出力するものであり、その機能は、ＣＲＴディスプレイ、ＬＣＤ（液晶ディスプレイ）、ＯＥＬＤ有機ＥＬディスプレイ、ＰＤＰ（プラズマディスプレイパネル）、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００９０】
スピーカー１９２は、音制御部１３０により再生する音を出力するものであり、その機能は、スピーカー、或いはヘッドフォンなどのハードウェアにより実現できる。なお、スピーカー１９２は、表示部に備えられたスピーカーとしてもよい。例えば、テレビ（家庭用テレビジョン受像機）を表示部としている場合には、テレビのスピーカーとすることができる。
【００９１】
光源１９８は、例えばＬＥＤであり、表示部１９０に関連付けられて配置される。なお、本実施形態は、複数の光源（光源Ｒと光源Ｌ）とを備え、光源Ｒと光源Ｌとの距離は所定間隔を有するように設置されている。
【００９２】
２．本実施形態の手法
（１）追従制御
本実施形態では、プレーヤからの入力情報に基づいてプレーヤ移動体（例えば戦闘機等）が仮想３次元空間（オブジェクト空間）を動き回り、プレーヤ移動体に装備された機関銃（機関砲）などを用いて、仮想３次元空間を動き回るターゲット移動体（例えば敵の戦闘機等）を攻撃（撃墜、撃破）させることができる。
【００９３】
近接戦闘モードになると、プレーヤ移動体をターゲット移動体に追従させる追従制御が行われる。本実施の形態の追従制御では、ターゲット移動体の過去の移動軌跡に基づき、プレーヤ移動体をターゲット移動体に追従させる。  
【００９４】
（２）移動情報
図１０はターゲット移動体の過去の移動情報について説明するための図である。移動情報とは、例えばターゲット移動体の位置、姿勢、速度ベクトル等である。図１０に示すようにターゲット移動体の位置情報３２０、姿勢情報３３０、速度ベクトル３４０を、１又は数フレーム毎に、ゲーム時刻（フレーム単位で管理してもよい）３１０に対応づけて移動情報として記憶させておき、この記憶させた移動情報をターゲット移動体の過去の移動情報として使用してもよい。なお位置情報３２０、姿勢情報３３０を記憶させておき、位置情報３２０から速度ベクトル３４０を求めるようにしてもよい。
【００９５】
また数フレーム毎に移動情報を保持する場合には、保持されていないフレームについては、前後のフレームから補間して求めるようにしてもよい。
【００９６】
またターゲット移動体のリプレイ情報を保持する構成であれば、リプレイ情報をターゲット移動体の過去の移動情報として使用してもよい。
【００９７】
（３）第１の追従制御手法
ターゲット移動体の過去の移動情報を参照して、ターゲット移動体の過去の移動軌跡と同じ軌跡を移動するようにしてもよいし、ターゲット移動体の過去の移動軌跡に対してある程度の自由度をもって上下左右しながら移動するようにしてもよい。
【００９８】
図２は、第１の追従制御手法の一例である単純追従型の追従制御について説明する図である。単純追従型の追従制御では、プレーヤ移動体に、ターゲット移動体の過去の移動軌跡と同じ軌跡を移動させる制御を行う。Ｓｎ、Ｓｎ−１、・・・はターゲット移動体の０．１秒毎の位置の遷移を示している。単純追従制御においては、ターゲット移動体のｘ秒前（ｘを遅延時間とする）の移動情報を現在のプレーヤ移動体の移動情報として、追従制御を行う。
【００９９】
Ｓｎがターゲット移動体の現在位置である場合に、遅延時間ｘ＝０．３（ターゲット移動体の０．３秒前の移動情報を使用する）とすると、プレーヤ移動体の現在位置はＳｎ−３となる。また遅延時間ｘ＝０．５（ターゲット移動体の０．５秒前の移動情報を使用する）すると、プレーヤ移動体の現在位置はＳｎ−５となる。
【０１００】
遅延時間ｘは所定の値に固定させてもよいし、ゲーム状況に応じて変化させてもよい。遅延時間の変更制御は、入力情報又はゲームパラメータが所定の遅延変更条件を満たした場合に行うようにしてもよい。例えば、ターゲット移動体又はプレーヤ移動体がスロットル、ブレーキ、特殊機動（コブラなど）などを行ったことを検出した場合に、遅延時間を変更させてもよい。遅延時間を変更させることにより、ゲーム画像に変化がでて、スピード感等を強調することができる。なお遅延時間ｘの初期値を外部から設定できるようにしてもよい。
【０１０１】
図３（Ａ）（Ｂ）は、第１の追従制御の他の例について説明する図である。第１の追従制御の他の例では、ターゲット移動体の過去の移動軌跡に基づき、所定の範囲内でプレーヤ移動体の位置を変更して追従させる制御を行う。
【０１０２】
この追従制御では、ターゲット移動体の過去の移動情報に基づき、移動可能範囲を設定し、移動可能範囲内を前記プレーヤ移動体が移動するように制御する。
【０１０３】
例えばターゲット移動体の過去の移動経路３５０を含み、当該移動経路３５０を含むチューブ状の空間を移動可能範囲３６０として設定し、プレーヤ移動体がターゲット移動体に遅延時間xだけ遅れて、移動可能範囲３６０で移動するように制御してもよい。
【０１０４】
プレーヤ移動体の位置を算出する際には、まず過去のターゲット移動体の移動情報を参照して、遅延時間ｘだけ前のターゲット移動体の位置を算出する。そしてターゲット移動体の位置を含み、ターゲット移動体の進行方向に直行する平面でチューブ状の空間３６０を切断した断面３７０を仮想的に想定する。そして断面における遅延時間だけ前のターゲット移動体の位置Ｓｎ−ｘに対し、入力情報に基づき上下左右に移動、回転させた位置及び回転をプレーヤ移動体の現在の位置及び回転としてもよい。
【０１０５】
例えば遅延時間を０．３秒とする場合には、０．３秒前のターゲット移動体の位置Ｓｎ−３を含む断面３７０において、位置Ｓｎ−３に対し所与の距離だけ上下左右に移動に移動した位置Ｓｎ’を求め、これをプレーヤ移動体の現在の位置としてもよい。ここで位置Ｓｎ−３に対しどの程度上下左右にずらすかはプレーヤからの入力情報に基づき決定してもよい。例えばプレーヤの入力が右を指示している場合には、右方向にずらしてもよい。
【０１０６】
またプレーヤの入力に関係なく、断面内でランダムに位置Ｓｎ−３から上下左右にずらすようにしてもよい。
【０１０７】
この様にすると、プレーヤ移動体が簡単にターゲット移動体の後ろにつくのを防止することができる。
【０１０８】
本実施の形態によれば、追従モードになるとプレーヤは自機の移動に関する操作を行わなくても、ターゲット移動体に自動追従させることができる。
【０１０９】
また図３で説明した手法によれば、ターゲットの移動した軌跡（ライン）３５０に対して上下左右にずれた位置を移動する（チューブ状の空間を移動）ので、プレーヤ移動体の動きの自由度が増し、動きが単調になるのを防止することができる。
【０１１０】
例えばターゲット移動体がコブラなどの特殊な移動を行った場合にはそのフレームの動きをターゲット移動体の過去の移動経路として反映させないようにしてもよい。
【０１１１】
第１の追従制御の手法によれば、プレーヤの操作の内容にかかわらず、追従モード中は必ずターゲット移動体に追従できてしまうので、初心者や操作になれないプレーヤには第１の手法による制御が適している。
【０１１２】
（４）第２の追従制御の手法
追従モードにおいてもプレーヤの技量を反映させるようにすると、より高度なプレーを楽しむことができ、上級者でも飽きさせないゲームを提供することができる。
【０１１３】
図４，図５は第２の追従制御手法について説明するための図である。
【０１１４】
第２の追従制御手法では、ターゲット移動体の過去の移動情報と入力情報に基づいて特定されるプレーヤ移動体の移動情報を所定の比率で合成して、合成した移動情報に基づいてプレーヤ移動体の移動情報を移動を制御する。
【０１１５】
プレーヤ移動体の位置を算出する際には、まず過去のターゲット移動体の移動情報を参照して、遅延時間ｘだけ前のターゲット移動体の位置、姿勢、移動ベクトルを算出する。図４、図５のリプレイ成分ベクトル４１０はターゲット移動体の遅延時間ｘだけ前の移動ベクトル（方向は移動方向で大きさは速度の大きさを示すベクトルでもよい）である。
【０１１６】
またプレーヤ移動体が現在の姿勢から直進した際の位置や姿勢や移動ベクトルを算出する。図４、図５の直進成分ベクトル４２０はプレーヤ移動体が現在の姿勢から直進した際の移動ベクトルを示している。
【０１１７】
これらのベクトルを合成する際の比率（ブレンド率）を演算して、遅延時間ｘだけ前のターゲット移動体の位置、姿勢、移動ベクトルと、プレーヤ移動体が現在の姿勢から直進した際の位置や姿勢や移動ベクトルとを算出したブレンド率で合成する。ここで位置は線形補間、姿勢は球面線形補間で合成してもよい。
【０１１８】
図５はリプレイ成分ベクトルと直進成分ベクトルを所与のブレンド率で合成する様子を模式的に示した図である。ブレンド率が１００パーセントの場合、リプレイ成分ベクトル４１０と直進成分ベクトル４２０のブレンド比が１：０であるため、ブレンドのプレーヤ移動体の移動ベクトルは、リプレイ成分ベクトル４１０と同じとなる。またブレンド率が０パーセントの場合、リプレイ成分ベクトル４１０と直進成分ベクトル４２０のブレンド比が０：１であるため、ブレンドのプレーヤ移動体の移動ベクトルは、直進成分ベクトル４２０と同じとなる。またブレンド率が５０パーセントの場合は、リプレイ成分ベクトル４１０と直進成分ベクトル４２０のブレンド比が１：１であるため、ブレンド後のプレーヤ移動体の移動ベクトルは、リプレイ成分ベクトル４１０と直進成分ベクトル４２０の合成ベクトル４３０となる。
【０１１９】
なおプレーヤからの入力情報によって、合成後の姿勢にさらに回転を加えるようにしてもよい。
【０１２０】
図６は、プレーヤの入力による影響について説明するための図である。         
【０１２１】
第２の追従制御手法ではブレンド率が１００パーセントの場合には、プレーヤ移動体はターゲット移動体に確実に追従することができるが、ブレンド率が低い場合には、プレーヤ移動体がターゲット移動体を見失ってしまう可能性がある。
【０１２２】
ここではブレンド率が１０パーセントの場合を例にとり説明する。４５０はターゲット移動体の過去の移動軌跡である。４６０はブレンド率１０パーセントで演算した場合のプレーヤ移動体の移動ベクトルである。
【０１２３】
図６に示すようにターゲット移動体が大きく左に曲がる移動をすると、プレーヤ移動体はターゲット移動体から遠ざかる方向に移動を続けることになり、プレーヤが姿勢を回転させる入力を行わないとプレーヤ移動体４９０は４８０の方向に進み続けて、ターゲット移動体４５２を見失ってしまう。
【０１２４】
しかしプレーヤが左回転を指示する入力を行うと、プレーヤ移動体４９０の姿勢にさらに回転を加える処理を行い、プレーヤ移動体の進行方向を４７０に変更することができる。
【０１２５】
この様にプレーヤからの入力情報によって、合成後の姿勢にさらに回転を加えることで、プレーヤの操作によりプレーヤ移動体がターゲット移動体を見失わないような制御を行うことができる。
【０１２６】
図７、図８（Ａ）（Ｂ）はブレンド率の決定手法について説明するための図である。
【０１２７】
追従制御部は、入力情報又はゲームパラメータが所定の比率変更条件を満たした場合に、合成の比率を変更してもよい。
【０１２８】
所定の比率変更条件とは、プレーヤ移動体とターゲット移動体の位置関係や、所定のゲーム状況の発生、所定の入力情報の発生等に関する条件でもよい。例えばターゲット移動体をある程度画面内にとらえている状況（プレーヤ移動体の視点からみた場合）では、リプレイ成分より直進成分のブレンド割合を大きくして、追従制御のための誘導力を弱くしてもよい。またターゲット移動体が画面から外れそうな状態の時は、直進成分にくらべてリプレイ成分のブレンド割合を大きくして追従制御のための誘導力を強くしてもよい。
【０１２９】
本実施の形態では、仮想３次元空間に存在するプレーヤ移動体とターゲット移動体を所定の平面に透視投影変換して、プレーヤ移動体とターゲット移動体の位置関係が前記所定の条件を満たすか否か判定してもよい。
【０１３０】
次に仮想３次元空間に存在するプレーヤ移動体とターゲット移動体を所定の平面に透視投影変換してロックオンサークル（図７の５３０）や第一のエリア（図７の５１０）を設定して、内外判定を行う例について説明する。
【０１３１】
図１１（Ａ）（Ｂ）は、プレーヤ移動体とターゲット移動体を所定の平面に透視投影している様子を示している。Ｔは仮想３次元空間におけるターゲット移動体の位置、Ｐは仮想３次元空間におけるプレーヤ移動体の位置を示している。５３０’は仮想３次元空間におけるロックオンサークルのイメージを示したものである。
【０１３２】
まずターゲット移動体Ｔの座標が存在し、仮想カメラ５０４の視線５０５が法線となる所定の平面（ロックオンサークル５３０や第１のエリアを投影する平面）５００を算出する。所定の平面５００は、仮想カメラ５０４の視線方向５０５に対して垂直な平面であり、ターゲット移動体Ｔの座標が存在する平面である。
【０１３３】
次に始点をプレーヤ移動体Ｐの座標、終点を自機の正面方向にｘｍ先の座標とするライン５０６を生成する。このライン５０６と所定の平面５０６との交点５３２を求める。ここで求まった交点５３２がロックオンサークルの中心座標（３次元）になる。交点５３２が求まった場合、その交点５３２とターゲット移動体Ｔの座標を２次元座標５３３に変換する。交点５３２とターゲット移動体Ｔとの２次元座標５３３を距離を求め、その距離がロックオンサークル５３０の半径以下であればサークル内に入っているものと判定することができる。なお交点５３２が求まらなかった場合はサークル外と判定してもよい。
【０１３４】
図７において、Ｐ’は透視投影されたプレーヤ移動体の位置’、Ｔ’はターゲット移動体の位置’、５３０はロックオンサークルを示している。例えばロックオンサークル５３０を含む第１のエリア５１０と、それ以外のエリアである第２のエリア５２０に分けて、ターゲット移動体の位置Ｔ’がどちらのエリアに属するかによってブレンド率を変更してもよい。なおブレンド率を所定の幅をもって設定するように構成している場合には、どちらのエリアにいるかによって、ブレンド率の最小値や最大値を変更してもよい。例えばターゲット移動体が第１のエリアにいるときはブレンド率がｂ１〜ｂ３パーセント、第２のエリアにいるときは、ブレンド率がｂ２〜ｂ４パーセント（ここにおいてｂ１ｂ＜２ｂ＜３ｂ＜ｂ４）としてもよい。
【０１３５】
ブレンド率はロックオンサークル５３０の中心とターゲットの距離（所定の平面上の距離）に応じて変更してもよい。ターゲット移動体が第１のエリアに属している場合には、ロックオンサークルの中心との距離が小さいほうがブレンド率が高くなるようにしてもよい。例えばターゲット移動体の位置が、図８（Ａ）のＴ１，Ｔ２の場合には、Ｔ２’のほうがＴ１’に比べてターゲット移動体がロックオンサークル５３０に近い位置にいるので、Ｔ２に位置する場合にはＴ１’に位置する場合に比べてブレンド率を高くしてもよい。
【０１３６】
またターゲット移動体の位置が図８（Ｂ）に示すように第１のエリア５１０と第２のエリア５２０の境界を行き来することで変更するようにしてもよい。例えば第１のエリア５１０から第２のエリア５２０にかわった場合にブレンド率が高くなるようにしてもよい。この場合、変わった瞬間にブレンド率を変更するのではなく、第２のエリアの滞在時間が所定時間経過してからブレンド率を変更するようにしてもよい。このようにすると、境界付近で第１のエリア５１０と第２のエリア５２０を行き来するような場合にそのたびにブレンド率が変更になり動きがぎくしゃくするのを防止することができる。
【０１３７】
本実施の形態によれば、追従モードにおいてもプレーヤはある程度コントローラを操作しないとターゲット移動体を追従することができないゲームを実現することができる。たたしターゲット移動体の過去の移動情報（例えばリプレイデータ）をブレンドして移動制御が行われるので、なにもサポートがない場合にくらべてターゲット移動体を追いやすくなっている。
【０１３８】
（５）追従終了の制御
追従処理終了の判断は、ゲーム状況やターゲット移動体とプレーヤ移動体の位置関係（例えばターゲット移動体とプレーヤ移動体の距離等）やターゲット移動体の移動状況に基づき行ってもよい。
【０１３９】
例えばプレーヤの追従制御開始指示入力により追従制御が開始される場合には、プレーヤの追従制御終了指示入力により追従制御を終了するようにしてもよい。またプレーヤ移動体がターゲット移動体を破壊した場合や、ターゲット移動体がプレーヤ移動体を振り切った場合は、追従制御を終了するようにしてもよい。
【０１４０】
またターゲット移動体がトレースに適さないような特殊挙動を行った場合にも追従制御を終了するようにしてもよい。特に第１の追従制御の手法で追従処理を行う場合、ターゲット移動体がトレースに適さないような特殊挙動を行った場合には、追従制御処理をシステム側で強制終了するようにしてもよい。
【０１４１】
また、例えば戦闘機ゲーム等で近接戦闘モードで追従制御が行われる場合、第一の機体（例えばターゲット移動体）の後ろに第二の機体（例えばプレーヤ移動体）がついて近接戦闘モード（追従制御）が行われている場合、第二の機体（例えばプレーヤ移動体）に対して第三の機体（例えば他の移動体）が新たな近接戦闘モード（追従制御）を成立させた場合、最初の近接戦闘モードは終了し、第二の機体と第三の機体の間で新たな近接戦闘モード（追従制御）が成立するようにしてもよい。
【０１４２】
（６）追従制御における攻守逆転処理
マルチプレーヤゲーム等の近接戦闘モードにおいて追従制御を行う場合、追従される側（ターゲット移動体）を守り側、追従する側を攻め側として、所定の条件が成立した場合に攻守を逆転させるようにしてもよい。
【０１４３】
例えばオンライン等の対人対戦ゲームにおいて、プレーヤ対プレーヤで近接戦闘を行う場合に、ターゲット移動体（守り側）になると、そこからプレーヤの操作により追従する移動体（攻め側の他のプレーヤ移動体）を振り切って相手の近接戦闘モードを終了させ、さらに相手をターゲット（守り側）とする近接戦闘モードに持ち込めるようにしてもよい（自分が攻め側になる）。またプレーヤの特殊操作により、一気に攻守が逆転するような構成でもよい。
【０１４４】
（７）すり抜けモード
図９はすり抜けモードについて説明するための図である。すり抜けモードは、仮想３次元空間の一部に自動移動ルート６００を設定し、ターゲット移動体６１０の位置（及び向き）が所定の条件を満たした場合には、ターゲット移動体６１０に移動ルート６００を移動させる制御を行う。ここで所定に条件とは例えば、仮想３次元空間を移動するターゲット移動体６１０が空間内の所定のエリア（空間）６３０に入った場合でもよい。ターゲット移動体６１０が所定のエリア（空間）６３０に入ると移動ルート６００の入り口６０２に自動的に牽引されるようにしてもよい。
【０１４５】
移動ルート６００の入り口６０２にきたターゲット移動体６１０は、予め設定された移動ルートを自動的に移動する。この移動ルートは例えば、仮想３次元空間において、周りに障害物が多くて移動が難しいエリア等に設定してもよい。
【０１４６】
このようにするとすり抜けモードで自動移動ルートを移動するターゲット移動体を追従するプレーヤ移動体も障害物のあるエリアを移動しやすくなる。
【０１４７】
なお自動移動ルートは線で定義されていてもよいし、線を含むチューブ状のエリアとして定義されていてもよい。
【０１４８】
上記実施の形態では、ターゲット移動体に対してすり抜けモードが設定される場合を例にとり説明したがそれに限られない。プレーヤ移動体に対してすり抜けモードが設定できるようにしてもよい。
【０１４９】
プレーヤ移動体６２０の位置（及び向き）が所定の条件を満たした場合には、プレーヤ移動体６２０に移動ルート６００を移動させる制御を行う。ここで所定の条件とは例えば、仮想３次元空間を移動するプレーヤ移動体６２０が空間内の所定のエリア（空間）６３０に入った場合でもよい。プレーヤ移動体６２０が所定のエリア（空間）６３０に入ると移動ルート６００の入り口６０２に自動的に牽引されるようにしてもよい。
【０１５０】
移動ルート６００の入り口６０２にきたプレーヤ移動体６２０は、予め設定された移動ルートを自動的に移動する。この移動ルートは例えば、仮想３次元空間において、周りに障害物が多くて移動が難しいエリア等に設定してもよい。
【０１５１】
３．本実施形態の処理
図１２は、本実施の形態の第１の追従制御処理の流れを示すフローチャートである。
【０１５２】
遅延時間ｘだけ前のターゲット移動体のリプレイデータに基づき、遅延時間ｘだけ前のターゲット移動体の位置を算出する（ステップＳ１０）。次に算出したターゲット移動体の位置を含み、ターゲット移動体の進行方向に直行する平面でチューブ状の空間を切断した断面を仮想的に想定し、入力情報に基づきターゲット移動体の位置を上下左右に移動させた位置をプレーヤ移動体の現在の位置とし、プレーヤ移動体の入力情報によって姿勢を回転させる（ステップＳ２０）。
【０１５３】
図１３は、本実施の形態の第２の追従制御処理の流れを示すフローチャートである。
【０１５４】
遅延時間ｘだけ前のリプレイデータに基づき、遅延時間ｘだけ前のターゲット移動体の位置、姿勢、移動ベクトルを算出する（ステップＳ１１０）。次にプレーヤ移動体が現在の姿勢から直進した際の位置や姿勢や移動ベクトルを算出する（ステップＳ１２０）。次にブレンド率を演算する（ステップＳ１３０）。次に遅延時間ｘだけ前のターゲット移動体の位置、姿勢、移動ベクトルと、プレーヤ移動体が現在の姿勢から直進した際の位置や姿勢や移動ベクトルとを算出したブレンド率で合成する（ステップＳ１４０）。次にプレーヤの入力情報に基づき算出した姿勢にさらに回転を加える（ステップＳ１５０）。
【０１５５】
図１４は、本実施の形態のすり抜けモードの処理の流れを示すフローチャートである。
【０１５６】
ターゲット移動体の位置及び向きが所定の条件を満たしている場合には以下の処理を行う（ステップＳ２１０）。まずターゲット移動体６１０を移動ルートの入り口まで牽引する制御を行う（ステップＳ２２０）。そして、ターゲット移動体に移動ルートを移動させる制御を行う（ステップＳ２３０）。
【０１５７】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０１５８】
第１の追従制御手法による追従制御は、ターゲット移動体の動きから受ける影響が大きいためマルチプレーヤゲーム等で行う対人戦よりも、コンピュータ制御移動体との間で対戦を行うシングルプレーヤゲームに適している。
【０１５９】
また第２の追従制御手法による追従制御は、ターゲット移動体の動きから受ける影響が少ないためマルチプレーヤゲーム等で行う対人戦に好適である。 
【０１６０】
上記実施の形態では、ターゲット移動体が敵機である場合を例にとり説明したがこれに限られない。例えばターゲット移動体を見えない仮想点として設定し、当該仮想点にプレーヤ移動体を牽引させ、プレーヤ移動体に移動困難な場所をすり抜けるような移動を行わせてもよい。
【０１６１】
また上記実施の形態では、プレーヤ移動体にターゲット移動体を追従させることでプレーヤ移動体に自動移動ルートを通過させる構成について説明したがこれに限られない。プレーヤ移動体の位置又は向きが所定の条件を満たした場合に、プレーヤ移動体に自動移動ルートを通過させるような制御を行ってもよい。
【０１６２】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、携帯型ゲームシステム、ゲーム画像を生成するシステムボード等の種々のゲームシステムに適用できる。
【符号の説明】
【０１６３】
１０  本体装置、２０  入力装置、１００  処理部、１１０  オブジェクト空間設定部、１１２  ゲーム演算部、１１４  表示制御部、１１５  仮想カメラ制御部、１２０  描画部、１３０  音制御部、１４０  振動制御部、１５０  移動・動作処理部、１５２  プレーヤ移動体制御部、１５４  追従制御部、１５６  ターゲット移動体制御部、１７０  記憶部、１７２  主記憶部、１７４  描画バッファ、１８０  情報記憶媒体、１９０  表示部、１９２  スピーカー、１９６  通信部、１９８  光源、２１０  加速度センサ、２２０  撮像部、２２２  赤外線フィルタ、２２４  レンズ、２２６  撮像素子、２２８  画像処理回路、２３０  スピーカー、２４０  振動部、２５０  マイコン、２６０  通信部、２７０  操作部
【図１】
0005614956.tif 000002
【図２】
0005614956.tif 000003
【図３】
0005614956.tif 000004
【図４】
0005614956.tif 000005
【図５】
0005614956.tif 000006
【図６】
0005614956.tif 000007
【図７】
0005614956.tif 000008
【図８】
0005614956.tif 000009
【図９】
0005614956.tif 000010
【図１０】
0005614956.tif 000011
【図１１】
0005614956.tif 000012
【図１２】
0005614956.tif 000013
【図１３】
0005614956.tif 000014
【図１４】
0005614956.tif 000015