(57)【要約】【課題】オブジェクトの挙動に応じてオブジェクトに対するマーカーの挙動を変化させることが可能なプログラム、情報記憶媒体及び画像生成システムを提供すること。【解決手段】ノンプレーヤキャラクタである敵機ＮＰＣが自機ＰＣを追尾する場合に、自機ＰＣの移動履歴に基づき所与の時間経過後の自機ＰＣの予測位置を求め、前記予測位置と敵機ＮＰＣの位置とに基づいて、自機ＰＣに対するマーカーＭＫを表示する制御を行い、マーカーＭＫと自機ＰＣの位置関係に基づいて、ゲーム演算を行う。自機ＰＣと敵機ＮＰＣの距離に基づいてマーカーＭＫの大きさを変化させる。【選択図】図２
2011255114.tif 000002
【特許請求の範囲】
【請求項１】
画像を生成するためのプログラムであって、
第１及び第２のオブジェクトをオブジェクト空間内で移動させる移動制御を行う移動制御部と、
前記第１のオブジェクトの移動履歴に基づき所与の時間経過後の前記第１のオブジェクトの予測位置を求め、前記予測位置と前記第２のオブジェクトの位置とに基づいて、前記第１のオブジェクトに対するマーカーを表示する制御を行うマーカー表示制御部と、
前記マーカーと前記第１のオブジェクトの位置関係に基づいて、ゲーム演算を行うゲーム演算部と、
オブジェクト空間を所与の視点からみた画像を生成する画像生成部としてコンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記第１のオブジェクトは、プレーヤキャラクタであり、前記第２のオブジェクトは、ノンプレーヤキャラクタであることを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記マーカー表示制御部が、
前記第１のオブジェクトと前記第２のオブジェクト間の距離に基づいて、前記マーカーの大きさ、形状及び色の少なくとも１つを変化させることを特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記マーカー表示制御部が、
所与の時間間隔毎に前記予測位置を求め、時刻ｔにおける前記第１のオブジェクトの位置と、時刻ｔについて求めた前記予測位置とに基づいて、前記予測位置を求める時間間隔を変化させることを特徴とするプログラム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記マーカー表示制御部が、
前記第２のオブジェクトの座標を通る仮想線分であって前記予測位置に基づきその向きが決定される仮想線分と、前記視点の向きと前記第１のオブジェクトの位置とに基づき決定される仮想平面との交点の座標に基づいて、前記マーカーの表示位置を決定することを特徴とするプログラム。
【請求項６】
請求項５において、
前記マーカー表示制御部が、
前記仮想線分と前記仮想平面の交点の３次元座標を２次元座標に変換し、得られた前記交点の２次元座標に基づいて、前記マーカーの表示位置を決定することを特徴とするプログラム。
【請求項７】
請求項５において、
前記マーカー表示制御部が、
前記仮想線分と前記仮想平面の交点の３次元座標に基づいて、前記マーカーを示すオブジェクトをオブジェクト空間に配置することを特徴とするプログラム。
【請求項８】
請求項７において、
前記マーカー表示制御部が、
前記マーカーを示すオブジェクトを、前記第１のオブジェクトと前記第２のオブジェクトの間に配置することを特徴とするプログラム。
【請求項９】
請求項５乃至８のいずれかにおいて、
前記ゲーム演算部が、
前記仮想線分と前記仮想平面の交点の座標と、前記第１のオブジェクトの座標とに基づいて、前記マーカーと前記第１のオブジェクトの位置関係が所定の条件を満たすか否かを判定し、判定結果に基づきゲーム演算を行うことを特徴とするプログラム。
【請求項１０】
請求項１乃至９のいずれかにおいて、
前記マーカー表示制御部が、
前記第１のオブジェクトと前記第２のオブジェクトの位置関係が所定の条件を満たす場合に、前記マーカーを表示する制御を行うことを特徴とするプログラム。
【請求項１１】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至１０のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１２】
第１及び第２のオブジェクトをオブジェクト空間内で移動させる移動制御を行う移動制御部と、
前記第１のオブジェクトの移動履歴に基づき所与の時間経過後の前記第１のオブジェクトの予測位置を求め、前記予測位置と前記第２のオブジェクトの位置とに基づいて、前記第１のオブジェクトに対するマーカーを表示する制御を行うマーカー表示制御部と、
前記マーカーと前記第１のオブジェクトの位置関係に基づいて、ゲーム演算を行うゲーム演算部と、
オブジェクト空間を所与の視点からみた画像を生成する画像生成部とを含むことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来から、プレーヤが入力操作を行いオブジェクト空間における機体（自機）を移動させて、敵の機体（敵機）を射撃するフライトシューティングゲームが知られている。このようなフライトシューティングゲームでは、プレーヤが操作レバーによりゲーム画面に表示される照準カーソルを移動させて敵機に目標を定め、操作ボタンによりミサイル等を発射して敵機を攻撃するものが知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−４４３９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のゲームは、プレーヤ自身がカーソルを移動させるものであり、敵機の挙動に応じてカーソルの動きが変化するものではなかった。
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、オブジェクトの挙動に応じてオブジェクトに対するマーカーの挙動を変化させることが可能なプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００６】
（１）本発明に係るプログラムは、
画像を生成するためのプログラムであって、
第１及び第２のオブジェクトをオブジェクト空間内で移動させる移動制御を行う移動制御部と、
前記第１のオブジェクトの移動履歴に基づき所与の時間経過後の前記第１のオブジェクトの予測位置を求め、前記予測位置と前記第２のオブジェクトの位置とに基づいて、前記第１のオブジェクトに対するマーカーを表示する制御を行うマーカー表示制御部と、
前記マーカーと前記第１のオブジェクトの位置関係に基づいて、ゲーム演算を行うゲーム演算部と、
オブジェクト空間を所与の視点からみた画像を生成する画像生成部としてコンピュータを機能させることを特徴とする。
【０００７】
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるためのプログラムを記憶した情報記憶媒体に関する。また本発明は、上記各部を含む画像生成システムに関する。
【０００８】
本発明によれば、第１のオブジェクトの挙動に応じて第１のオブジェクトに対するマーカーの挙動を変化させることができ、例えば、第１のオブジェクトが予測位置に近い位置を通過するように移動した場合と、予測位置から離れた位置を通過するように移動した場合とで、第１のオブジェクトとマーカーの位置関係を変化させることができ、それによってゲームの進行や結果を変化させることができる。
【０００９】
（２）また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記第１のオブジェクトは、プレーヤキャラクタであり、前記第２のオブジェクトは、ノンプレーヤキャラクタであってもよい。
【００１０】
本発明によれば、例えば、プレーヤに、マーカーを避けながら第１のオブジェクトを移動させるといったゲームプレイを行わせることができる。
【００１１】
（３）また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記マーカー表示制御部が、
前記第１のオブジェクトと前記第２のオブジェクト間の距離に基づいて、前記マーカーの大きさ、形状及び色の少なくとも１つを変化させるようにしてもよい。
【００１２】
（４）また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記マーカー表示制御部が、
所与の時間間隔毎に前記予測位置を求め、時刻ｔにおける前記第１のオブジェクトの位置と、時刻ｔについて求めた前記予測位置とに基づいて、前記予測位置を求める時間間隔を変化させるようにしてもよい。
【００１３】
本発明によれば、位置予測の当否によって、以降の位置予測をより当たり易くしたり、当たり難くしたりすることができる。
【００１４】
（５）また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記マーカー表示制御部が、
前記第２のオブジェクトの座標を通る仮想線分であって前記予測位置に基づきその向きが決定される仮想線分と、前記視点の向きと前記第１のオブジェクトの位置とに基づき決定される仮想平面との交点の座標に基づいて、前記マーカーの表示位置を決定するようにしてもよい。
【００１５】
（６）また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記マーカー表示制御部が、
前記仮想線分と前記仮想平面の交点の３次元座標を２次元座標に変換し、得られた前記交点の２次元座標に基づいて、前記マーカーの表示位置を決定するようにしてもよい。
【００１６】
（７）また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記マーカー表示制御部が、
前記仮想線分と前記仮想平面の交点の３次元座標に基づいて、前記マーカーを示すオブジェクトをオブジェクト空間に配置するようにしてもよい。
【００１７】
（８）また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記マーカー表示制御部が、
前記マーカーを示すオブジェクトを、前記第１のオブジェクトと前記第２のオブジェクトの間に配置するようにしてもよい。
【００１８】
本発明によれば、見た目に違和感のないマーカーの表現を行うことができる。
【００１９】
（９）また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記ゲーム演算部が、
前記仮想線分と前記仮想平面の交点の座標と、前記第１のオブジェクトの座標とに基づいて、前記マーカーと前記第１のオブジェクトの位置関係が所定の条件を満たすか否かを判定し、判定結果に基づきゲーム演算を行うようにしてもよい。
【００２０】
（１０）また本発明に係るプログラム、情報記憶媒体及び画像生成システムでは、
前記マーカー表示制御部が、
前記第１のオブジェクトと前記第２のオブジェクトの位置関係が所定の条件を満たす場合に、前記マーカーを表示する制御を行うようにしてもよい。
【図面の簡単な説明】
【００２１】
【図１】本実施形態のゲーム装置（画像生成システム）の機能ブロック図の一例を示す図。
【図２】図２（Ａ）〜図２（Ｃ）は、逃げ側近接戦闘モード時に生成されるゲーム画面の一例を示す図。
【図３】図３（Ａ）、図３（Ｂ）は、距離に基づくマーカーの大きさの変化について説明するための図。
【図４】図４（Ａ）、図４（Ｂ）は、距離に基づくマーカーの形状の変化について説明するための図。
【図５】自機の位置予測の当否判定について説明するための図。
【図６】図６（Ａ）、図６（Ｂ）は、位置予測の時間間隔について説明するための図。
【図７】図７（Ａ）、図７（Ｂ）は、自機の予測位置の算出について説明するための図。
【図８】仮想線分の向きの算出について説明するための図。
【図９】マーカーの表示位置の算出について説明するための図。
【図１０】２次元座標系におけるマーカーの描画と、自機とマーカーの位置関係の判定について説明するための図。
【図１１】追う側近接戦闘モードにおける、マーカーの表示制御について説明するための図。
【図１２】自機と敵機の位置関係の判定について説明するための図。
【図１３】本実施形態の処理の流れを示すフローチャート図。
【図１４】本実施形態の処理の流れを示すフローチャート図。
【図１５】図１５（Ａ）〜図１５（Ｃ）は、変形例について説明するための図。
【図１６】変形例について説明するための図。
【図１７】変形例について説明するための図。
【発明を実施するための形態】
【００２２】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２３】
１．機能ブロック図
図１に本実施形態のゲーム装置（画像生成システム、ゲームシステム、携帯端末）の機能ブロック図の一例を示す。なお本実施形態のゲーム装置は図１の構成要素（各部）の一部を省略した構成としてもよい。
【００２４】
操作部１６０は、プレーヤが操作情報（操作データ）を入力するためのものであり、ユーザの操作情報を処理部１００に出力する。操作部１６０の機能は、ボタン（Ａボタン、Ｂボタンなど）、方向キー（十字キー）、方向入力可能なコントロールスティック（アナログキー）、レバー、キーボード、マウス、タッチパネル型ディスプレイ、加速度センサや傾きセンサ等を内蔵するコントローラなどのハードウェアにより実現することができる。
【００２５】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。そして、本実施形態の記憶部１７０は、ワーク領域として使用される主記憶部１７２と、最終的な表示画像等が記憶されるフレームバッファ１７４と、オブジェクトのモデルデータが記憶されるオブジェクトデータ記憶部１７６と、各オブジェクトデータ用のテクスチャが記憶されるテクスチャ記憶部１７８と、オブジェクトの画像の生成処理時にＺ値が記憶されるＺバッファ１７９とを含む。なお、これらの一部を省略する構成としてもよい。
【００２６】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）を記憶することができる。
【００２７】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはタッチパネル型ディスプレイなどにより実現できる。
【００２８】
通信部１９６は他のゲーム装置やサーバとの間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００２９】
処理部１００（プロセッサ）は、操作部１６０からの操作データ、他のゲーム装置から通信部１９６を介して受信したデータやプログラムなどに基づいて、ゲーム処理、描画処理などの処理を行う。この処理部１００は主記憶部１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００３０】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、マーカー表示制御部１１４、ゲーム演算部１１６、仮想カメラ制御部１１８、描画部１２０、音生成部１３０を含む。
【００３１】
オブジェクト空間設定部１１０は、キャラクタ（プレーヤキャラクタ、ノンプレーヤキャラクタ）、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義であり、例えば、ワールド座標系でのＸ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００３２】
特に本実施形態のオブジェクト空間設定部は、プレーヤキャラクタである第１のオブジェクトと、ノンプレーヤキャラクタ（ＮＰＣ）である第２のオブジェクトとをオブジェクト空間に設定する。ここで、第１及び第２のオブジェクトは、例えば飛行機や車等でもよい。
【００３３】
移動・動作処理部１１２（移動制御部）は、オブジェクト（キャラクタ等）の移動・動作演算（移動・動作シミュレーション）を行う。すなわち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）、物理法則などに基づいて、オブジェクトをオブジェクト空間（ゲーム空間）内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒又は１／３０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。また移動・動作処理部１１２は、ネットワークを介して接続された他のゲーム装置から通信部１９６を介して受信したオブジェクト（他のプレーヤに対応するオブジェクト）の移動情報や動作情報に基づき当該オブジェクトの移動情報や動作情報を更新する処理を行うようにしてもよい。また移動・動作処理部１１２は、他のゲーム装置から通信部１９６を介して受信した操作データ等に基づき、当該オブジェクトの移動・動作演算を行うようにしてもよい。
【００３４】
特に本実施形態の移動・動作処理部１１２は、プレーヤによって操作入力された操作データ等に基づき第１のオブジェクト（プレーヤキャラクタ）をオブジェクト空間内で移動させる移動制御を行い、プログラム等に基づいて第２のオブジェクト（ＮＰＣ）をオブジェクト空間内で移動させる移動制御を行う。
【００３５】
また移動・動作処理部１１２は、第１のオブジェクトの過去の移動情報（移動履歴）に基づいて、第２のオブジェクトに第１のオブジェクトを追従させる追従制御を行うようにしてもよい。第１のオブジェクトの移動情報とは、例えば第１のオブジェクトの位置、姿勢、移動ベクトル（速度ベクトル）等である。過去の移動情報として第１のオブジェクトのリプレイデータを使用してもよい。例えば、第２のオブジェクトの移動方向に対して前方を移動する第１のオブジェクトが所定時間前（フレーム単位でゲーム時間を管理している場合には所定フレーム前）に通過した位置（座標）又はその近傍位置を第２のオブジェクトが通過するように第２のオブジェクトの位置を制御してもよい。
【００３６】
また移動・動作処理部１１２は、第１のオブジェクトの移動情報に基づき、第１のオブジェクトの直近の移動軌跡に対応した移動可能範囲をリアルタイムに設定し、第２のオブジェクトに移動可能範囲を移動させる制御を行ってもよい。移動可能範囲は、平面的な領域でもよいし、空間的な領域でもよく、第１のオブジェクトの直近の移動軌跡に対してある程度の幅を持った領域でもよい。例えば移動可能範囲は、第１のオブジェクトの移動軌跡を通るチューブ状の空間でもよい。第２のオブジェクトは、移動可能範囲内において第１のオブジェクトの移動軌跡に対してランダムに上下左右にずれた位置を移動するようにしてもよい。
【００３７】
マーカー表示制御部１１４は、前記第１のオブジェクトの移動履歴（過去の移動情報）に基づき所与の時間経過後の前記第１のオブジェクトの予測位置を求め、前記予測位置と前記第２のオブジェクトの位置とに基づいて、前記第１のオブジェクトに対するマーカー（第１のオブジェクトの第２のオブジェクトに対する状況（例えば、攻撃状況）を示すマーカー、第２のオブジェクトによる第１のオブジェクトに対する攻撃の目安となるマーカー）を表示する制御を行う。
【００３８】
またマーカー表示制御部１１４は、第１のオブジェクトの所定時間前の位置（第１のオブジェクトが所定時間前に通過した位置）と、第１のオブジェクトの現在の位置とに基づき前記予測位置を求めるようにしてもよい。
【００３９】
またマーカー表示制御部１１４は、前記第１のオブジェクトと前記第２のオブジェクト間の距離（オブジェクト空間における距離）に基づいて、前記マーカーの大きさ、形状及び色の少なくとも１つを変化させるようにしてもよい。例えば、前記第１のオブジェクトと前記第２のオブジェクト間の距離が長いほど、前記マーカーのサイズを大きくし（又は、前記マーカーの面積が大きくなるように前記マーカーの形状を変更し）、前記第１のオブジェクトと前記第２のオブジェクト間の距離が短いほど、前記マーカーのサイズを小さくする（又は、前記マーカーの面積が小さくなるように前記マーカーの形状を変更する）ようにしてもよい。
【００４０】
またマーカー表示制御部１１４は、所与の時間間隔毎に前記予測位置を求め、時刻ｔにおける前記第１のオブジェクトの位置と、時刻ｔについて求めた前記予測位置とに基づいて、前記予測位置を求める時間間隔を変化させるようにしてもよい。
【００４１】
またマーカー表示制御部１１４は、前記第２のオブジェクトの座標を通る線分であって前記予測位置に基づきその向きが決定される仮想線分と、前記視点の向きと前記第１のオブジェクトの位置とに基づき決定される仮想平面との交点の座標に基づいて、前記マーカーの表示位置を決定するようにしてもよい。例えば、前記仮想平面は、前記視点の向きと直交し、且つ前記第１のオブジェクトの座標が存在する平面でもよい。
【００４２】
またマーカー表示制御部１１４は、前記仮想線分と前記仮想平面の交点の３次元座標を２次元座標（例えば、スクリーン座標系における座標）に変換し、得られた前記交点の２次元座標に基づいて、前記マーカーの表示位置を決定するようにしてもよい。例えば、前記交点の２次元座標を前記マーカーの中心座標とするようにしてもよい。
【００４３】
またマーカー表示制御部１１４は、前記仮想線分と前記仮想平面の交点の３次元座標に基づいて、前記マーカーを示すオブジェクトをオブジェクト空間に配置するための処理を行うようにしてもよい。例えば、前記交点の３次元座標に前記マーカーを示すオブジェクトを配置するようにしてもよい。
【００４４】
またマーカー表示制御部１１４は、前記マーカーを示すオブジェクトを、前記第１のオブジェクトと前記第２のオブジェクトの間に配置するようにしてもよい。
【００４５】
またマーカー表示制御部１１４は、前記第１のオブジェクトと前記第２のオブジェクトの位置関係が所定の条件を満たすか否かを判定し、所定の条件を満たすと判定した場合に、前記マーカーを表示する制御を行うようにしてもよい。
【００４６】
ゲーム演算部１１６は、種々のゲーム演算処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲームステージ毎のクリア条件を満たすか否かを判定する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などを行う。
【００４７】
特に本実施形態のゲーム演算部１１６は、前記マーカーと前記第１のオブジェクトの位置関係に基づいて、ゲーム演算を行う。
【００４８】
またゲーム演算部１１６は、前記仮想線分と前記仮想平面の交点の座標と、前記第１のオブジェクトの座標（例えば、第１のオブジェクトの代表点の座標、中心点の座標）とに基づいて、前記マーカーと前記第１のオブジェクトの位置関係が所定の条件を満たすか否かを判定し、判定結果に基づきゲーム演算を行うようにしてもよい。例えば、前記マーカーの座標に対応する所定の範囲内（例えば、前記マーカーの表示範囲内）に前記第１のオブジェクトの座標が位置するか否かを判定するようにしてもよいし、前記第１のオブジェクトの座標に対応する所定の範囲内に前記マーカーが位置するか否かを判定するようにしてもよいし、前記マーカーと前記第１のオブジェクトが交差するか否かを判定するようにしてもよい。また、判定結果に基づいて、前記第２のオブジェクトが前記第１のオブジェクトに対して攻撃動作（例えば、ミサイル、機関砲等の発射）を行うゲーム演算を行うようにしてもよいし、第２のオブジェクトに所定のアイテム（例えば、特殊武器）を使用可能にさせるゲーム演算を行うようにしてもよい。
【００４９】
仮想カメラ制御部１１８は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、操作部１６０によりプレーヤが入力した操作データ或いはプログラム（移動・動作アルゴリズム）等に基づいて、ワールド座標系における仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（例えば、Ｘ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。
【００５０】
特に本実施形態の仮想カメラ制御部１１８は、第１のオブジェクトの移動経路に基づいて、仮想カメラの位置、向き、画角の少なくとも１つを制御する処理を行う。例えば、第１のオブジェクトの移動経路に基づいて、仮想カメラに第１のオブジェクトを追従させる制御を行うようにしてもよい。
【００５１】
描画部１２０（画像生成部）は、処理部１００で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。
【００５２】
いわゆる３次元画像を生成する場合には、まずオブジェクトの各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００５３】
頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換（カメラ座標変換）、クリッピング処理、射影変換（透視変換、投影変換）、ビューポート変換（スクリーン座標変換）、光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。ジオメトリ処理後のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、オブジェクトデータ記憶部１７６に保存される。
【００５４】
そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。
【００５５】
ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。
【００５６】
そして描画部１２０は、オブジェクトを描画する際に、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００５７】
テクスチャマッピングは、記憶部１７０のテクスチャ記憶部１７８に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０のテクスチャ記憶部１７８からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００５８】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７９（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファ１７９に格納されるＺ値を参照する。そして参照されたＺバッファ１７９のＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファ１７９のＺ値を新たなＺ値に更新する。
【００５９】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより２つの色を合成した色を求める処理を行う。なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えばＲＧＢの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００６０】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００６１】
なお、本実施形態の端末は、１人のプレーヤのみがプレイできるシングルプレーヤモード、或いは、複数のプレーヤがプレイできるマルチプレーヤモードでゲームプレイできるように制御してもよい。例えば、マルチプレーヤモードで制御する場合には、ネットワークを介して他のゲーム装置とデータを送受信してゲーム処理を行うようにしてもよいし、１つのゲーム装置が、複数の操作部からの操作情報に基づいて処理を行うようにしてもよい。
【００６２】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【００６３】
２−１．ゲームの概要
本実施形態は、シューティングゲームのための画像生成処理に関するものである。例えば、本実施形態は、プレーヤの操作対象の自機（第１のオブジェクト、プレーヤキャラクタ）と、コンピュータオブジェクトである敵機（第２のオブジェクト、ＮＰＣ）、或いは他のプレーヤのオブジェクトである敵機とが、互いに誘導ミサイルや機関砲などで攻撃し合うフライトシューティングゲームに関するものである。
【００６４】
本実施形態では、自機と敵機が互いに相手をターゲットオブジェクト（標的）とし、互いにオブジェクト空間を移動しながら誘導ミサイルや機関砲を発射してターゲットオブジェクトを撃墜させるゲーム処理を行う。したがって、自機を操作するプレーヤは、自機から発射されるミサイルや機関砲を敵機にヒットさせるように攻撃操作を行い、敵機から発射される誘導ミサイル等の攻撃から回避するように自機を移動させる操作を行う。
【００６５】
また本実施形態では、自機と敵機のオブジェクト空間における位置関係が所定の条件を満たした場合に、自機と敵機とが近接して移動しながら戦闘を行う近接戦闘モードとなる。近接戦闘モードには、敵機がターゲットとなり自機が敵機を追尾する「追う側近接戦闘モード」と、自機がターゲットとなり敵機が自機を追尾する「逃げ側近接戦闘モード」がある。追う側近接戦闘モードでは、敵機の過去の移動軌跡に基づき自機を敵機に追従させる追従制御が行われ、逃げ側近接戦闘モードでは、自機の過去の移動軌跡に基づき敵機を自機に追従させる追従制御が行われる。
【００６６】
２−２．マーカーの概要
図２（Ａ）〜図２（Ｃ）は、敵機ＮＰＣが自機ＰＣを追尾する逃げ側近接戦闘モード時に生成されるゲーム画面の一例を示す図である。
【００６７】
図２（Ａ）に示すように、逃げ側近接戦闘モード時には、自機ＰＣに対するマーカーＭＫが表示される。本実施形態では、マーカーＭＫの形状を円形（輪状）としているが、マーカーＭＫの形状は任意であり、楕円形状、或いは三角形や矩形等の多角形形状としてもよいし、その他の形状としてもよい。
【００６８】
図２（Ｂ）に示すように、自機ＰＣの位置（例えば、自機ＰＣの中心点又は代表点の位置）がマーカーＭＫの表示範囲内に入ると、マーカーＭＫの内周側にゲージＧＡが表示される。ゲージＧＡは、自機ＰＣがマーカーＭＫ内に位置する時間の経過に従ってその値が増加するように表示され、自機ＰＣがマーカーＭＫ内に位置しなくなった場合にリセットされる（ゲージＧＡの値が０になる）。なお、自機ＰＣがマーカーＭＫ内に位置しなくなった場合にゲージＧＡの値を所定値だけ減少させるようにしてもよい。また、自機ＰＣがマーカーＭＫ内に位置しない時間の経過に従ってゲージＧＡの値を減少させるようにしてもよい。
【００６９】
図２（Ｃ）に示すように、自機ＰＣがマーカーＭＫ内に位置する時間が所定時間（例えば、０．５秒）に達してゲージＧＡの値が最大値となると、自機ＰＣが敵機ＮＰＣにロックオンされるロックオン状態となる。このロックオン状態になると、敵機ＮＰＣから通常の誘導ミサイルよりも誘導性能の高い誘導ミサイル（特殊武器）が発射され、発射された誘導ミサイルは、高確率で自機ＰＣに着弾することになる。
【００７０】
なお、ロックオン状態において、誘導ミサイルが発射された場合、及び、自機ＰＣがマーカーＭＫ内に位置しなくなった場合には、ゲージＧＡの値はリセット（又は減少）され、ロックオン状態は解除される。また、マーカーＭＫにゲージＧＡを表示させずに、自機ＰＣがマーカーＭＫの表示範囲内に入ったときに、敵機ＮＰＣから自機ＰＣに向けてミサイルや機関砲が発射されるようにしてもよい。
【００７１】
プレーヤは、自機ＰＣに対するマーカーＭＫによって、自機ＰＣが敵機ＮＰＣの誘導ミサイルに狙われている様子を視覚的に把握することができ、また、マーカーＭＫに表示されるゲージＧＡによって、ロックオン状態になるタイミングを視覚的に把握することができる。
【００７２】
またプレーヤは、自機ＰＣがマーカーＭＫ内に入らないように自機ＰＣを移動させる操作を行うことで、或いは自機ＰＣがマーカーＭＫ内に入っている場合には、マーカーＭＫのゲージＧＡが最大値に達するまで（ロックオン状態になる前）に自機ＰＣをマーカーＭＫ外に移動させる操作を行うことで、敵機ＮＰＣから誘導性能の高い誘導ミサイルが発射される事態を回避することができる。
【００７３】
２−３．マーカーの大きさ制御
本実施形態のマーカーＭＫは、オブジェクト空間における自機ＰＣと敵機ＮＰＣの距離に基づいてその大きさが変化する。
【００７４】
すなわち、図３（Ａ）に示すように、自機ＰＣと敵機ＮＰＣの距離が近いほどマーカーＭＫのサイズ（半径）が大きくなり、自機ＰＣが敵機ＮＰＣから狙われ易くなる（マーカーＭＫを回避し難くなる）。一方、図３（Ｂ）に示すように、自機ＰＣと敵機ＮＰＣの距離が遠いほどマーカーＭＫのサイズ（半径）が小さくなり、自機ＰＣが敵機ＮＰＣから狙われ難くなる（マーカーＭＫを回避し易くなる）。
【００７５】
プレーヤは、例えば、自機ＰＣを加速させる等の操作を行って自機ＰＣと敵機ＮＰＣの距離を長くすることで、マーカーＭＫのサイズを小さくし、敵機ＮＰＣから誘導性能の高い誘導ミサイルが発射される事態を回避することができる。
【００７６】
なお、オブジェクト空間における自機ＰＣと敵機ＮＰＣの距離に基づいてマーカーＭＫの形状、色、透明度を変化させるようにしてもよい。例えば、自機ＰＣと敵機ＮＰＣの距離が近いほど、自機ＰＣがマーカーＭＫを回避し難いような形状とし、自機ＰＣと敵機ＮＰＣの距離が遠いほど、自機ＰＣがマーカーＭＫを回避し易いような形状とするようにしてもよい。
【００７７】
図４（Ａ）、図４（Ｂ）に示す例では、自機ＰＣの敵機ＮＰＣの距離が遠いほど、矩形のマーカーＭＫの一辺が短くなるようにマーカーＭＫの形状を変化させている。また、自機ＰＣの敵機ＮＰＣの距離が近いほど、マーカーＭＫの一部又は全部の色を、プレーヤに危険を感知させる色（例えば、青色から赤色）に変化させるようにしてもよい。また、自機ＰＣと敵機ＮＰＣの距離が遠いほど、マーカーＭＫの透明度を上げ、自機ＰＣと敵機ＮＰＣの距離が近いほど、マーカーＭＫの透明度を下げる（不透明にする）ようにしてもよい。
【００７８】
また、自機ＰＣに設定された機体パラメータに基づき自機ＰＣに対するマーカーＭＫの大きさを変化させるようにしてもよい。例えば、自機ＰＣの機体の特性に応じて、予めマーカーＭＫのデフォルトサイズ（例えば半径）や、マーカーＭＫの変動率（自機ＰＣと敵機ＮＰＣの距離の変化量に対するマーカーＭＫの大きさの変化量の比率）を機体パラメータとして自機ＰＣに設定しておき、設定されたデフォルトサイズを自機ＰＣに対するマーカーＭＫのデフォルトサイズとし、設定された変動率に従ってマーカーＭＫの大きさを変化させるようにしてもよい。例えば、自機ＰＣがステルス性能の高い種類の機体である場合には、マーカーＭＫのデフォルトサイズや変動率を小さい値に設定しておき、自機ＰＣと敵機ＮＰＣの距離が近くなっても自機ＰＣに対するマーカーＭＫのサイズがあまり大きくならないようにして、自機ＰＣがマーカーＭＫを回避し易くするようにしてもよい。
【００７９】
また、マーカーＭＫのゲージＧＡの値が最大値に達するまでの時間（チャージ時間）を機体パラメータとして自機ＰＣに設定してもよい。例えば、自機ＰＣがステルス性能の高い種類の機体である場合には、チャージ時間を長く設定しておき、自機ＰＣがマーカーＭＫ内に位置していてもロックオン状態になるまでに時間がかかるようにして、自機ＰＣがマーカーＭＫを回避し易くするようにしてもよい。
【００８０】
また、プレーヤが所定の操作を行った場合、又は所定のゲームアイテムを使用した場合に、マーカーＭＫの大きさや、変動率、ゲージＧＡのチャージ時間を変化させるようにしてもよい。例えば、プレーヤが、誘導ミサイルの命中を回避するためのチャフを散布させる操作や、フレアを放出させる操作を行った場合には、所定時間だけ自機ＰＣに対するマーカーＭＫのデフォルトサイズや変動率を小さくし（又は、ゲージＧＡのチャージ時間を長くし）、自機ＰＣがマーカーＭＫを回避し易くするようにしてもよい。
【００８１】
また、プレーヤによって設定されたゲームの難易度や、プレーヤの経験値に基づいて、マーカーＭＫの大きさや、変動率、ゲージＧＡの変動率を制御するようにしてもよい。例えば、設定された難易度が高い場合には、マーカーＭＫのデフォルトサイズや変動率を大きくし（又は、ゲージＧＡのチャージ時間を短くし）て自機ＰＣがマーカーＭＫを回避し難くし、設定された難易度が低い場合には、マーカーＭＫのサイズや変動率を小さく（又は、ゲージＧＡのチャージ時間を長く）して自機ＰＣがマーカーＭＫを回避し易くするようにしてもよい。また、プレーヤの経験値が高い場合には、マーカーＭＫのデフォルトサイズや変動率を大きく（又は、ゲージＧＡのチャージ時間を短く）するようにしてもよい。
【００８２】
２−４．自機の予測位置の算出
また本実施形態では、逃げ側近接戦闘モード時の自機ＰＣに対するマーカーＭＫは、敵機ＮＰＣを始点とする仮想線分の向きに表示される。仮想線分の向きは敵機ＮＰＣの向き（敵機ＮＰＣの機首方向）とは関係なく、所与の時間経過後の自機ＰＣの予測位置に基づき求められる。
【００８３】
予測位置の算出は所与の時間間隔毎に行われ、時刻ｔにおける自機ＰＣの位置と時刻ｔについて算出した予測位置とに基づき予測の当否を判定し、判定結果に基づき予測位置を算出する時間間隔を変化させる。
【００８４】
具体的には、図５に示すように、前回予測時の自機ＰＣの位置Ｐ１を始点とし、現在の自機ＰＣの位置Ｐ２（時刻ｔにおける自機ＰＣの位置）を終点とするベクトルＶ１と、前回予測時の自機ＰＣの位置Ｐ１を始点とし、前回予測した予測位置Ｐ３（時刻ｔについて算出した予測位置）を終点とするベクトルＶ２とを求め、ベクトルＶ１とベクトルＶ２のなす角度θに基づいて予測の当否を判定する。
【００８５】
すなわち、角度θが所定の第１の角度θ１以下である場合には、予測が当たっていたと判定し、予測の時間間隔を所定時間だけ短くする。また、角度θが所定の第２の角度θ２（θ１＜θ２）以上である場合には、予測が外れていたと判定し、予測の時間間隔をデフォルト値（最大値）に設定する（リセットする）。また、角度θが第１の角度θ１より大きく第２の角度θ２より小さい場合には、予測の時間間隔を変更しない。なお、角度θが第２の角度θ２以上である場合には、予測の時間間隔を所定時間だけ長くし、角度θが第１の角度θ１以下である場合には、予測の時間間隔をデフォルト値（最小値）にリセットするようにしてもよい。
【００８６】
図６は、自機ＰＣの実際の移動軌跡ＭＬと自機ＰＣの予測位置を示す図である。図６（Ａ）は、予測の時間間隔が短い場合を示し、図６（Ｂ）は、予測の時間間隔が長い場合を示す。
【００８７】
図６（Ａ）に示すように、予測の時間間隔が短くなると、予測位置ＦＰと実際の位置（移動軌跡ＭＬ）との誤差は小さくなり予測は当たり易くなる。一方、図６（Ｂ）に示すように、予測の時間間隔が長くなると、予測位置ＦＰと実際の位置（移動軌跡ＭＬ）との誤差は大きくなり予測は外れ易くなる。従って、位置予測が当たっていたと判定された場合には、予測の時間間隔が短くなるため以降の位置予測が当たり易くなり、予測が外れていたと判定された場合には、予測の時間間隔が長くなるため以降の位置予測が外れ易くなる。
【００８８】
また、位置予測の時間間隔のデフォルト値を、機体パラメータとして自機ＰＣに設定してもよい。例えば、自機ＰＣがステルス性能の高い種類の機体である場合には、予測の時間間隔のデフォルト値を大きい値に設定しておき、位置予測が外れ易くなる（予測位置と自機ＰＣの実際の位置との誤差が大きくなる）ようにしてもよい。
【００８９】
また、プレーヤが所定の操作を行った場合、又は所定のゲームアイテムを使用した場合に、位置予測の時間間隔を変化させるようにしてもよい。例えば、プレーヤが、誘導ミサイルの命中を回避するためのチャフを散布させる操作や、フレアを放出させる操作を行った場合には、所定時間だけ予測の時間間隔を長くして、位置予測が外れ易くなるようにしてもよい。
【００９０】
また、設定されたゲームの難易度や、プレーヤの経験値に基づいて、位置予測の時間間隔を変化させるようにしてもよい。例えば、設定された難易度が高い場合には、予測の時間間隔のデフォルト値を小さく（短く）して位置予測が当たり易くなるようにし、設定された難易度が低い場合には、予測の時間間隔のデフォルト値を大きく（長く）して位置予測が外れ易くなるようにしてもよい。プレーヤの経験値が高い場合には、予測の時間間隔のデフォルト値を小さくするようにしてもよい。
【００９１】
本実施形態では、自機ＰＣの予測位置は、自機ＰＣが前回の動き（前回位置予測時から現在までの動き）と同じ動きをすると仮定して予測され、自機ＰＣの移動履歴（過去の移動情報）に基づき算出される。
【００９２】
具体的には、図７（Ａ）に示すように、前回予測時の自機ＰＣのワールド座標における位置Ｐ１と現在の自機ＰＣのワールド座標における位置Ｐ２とに基づき、自機ＰＣのローカル座標における移動ベクトルＶ３を算出する（図７（Ｂ）参照）。図７に示す例では、自機ＰＣが、前回予測時の姿勢（向き）を基準として、ローカル座標において、左方向（−Ｘ軸方向）に３０、前方（＋Ｚ軸方向）に１００だけ移動したとして移動ベクトルＶ３を算出している。
【００９３】
そして、算出した移動ベクトルＶ３を現在の自機ＰＣの位置Ｐ２と姿勢に適用して移動ベクトルＶ４を算出し、次回予測時（所与の時間経過後）の自機ＰＣのワールド座標における予測位置Ｐ４を算出する。図７に示す例では、自機ＰＣが、現在の姿勢（向き）を基準として、ローカル座標において、左方向（−Ｘ軸方向）に３０、前方（＋Ｚ軸方向）に１００だけ移動すると予測して、予測位置Ｐ４を算出している。
【００９４】
このようにすると、自機ＰＣが同一の速度（速さと向き）で移動し続けた場合（例えば、同一の速さで直進し続けた場合、同一方向に旋回、上昇、又は下降し続けた場合）には、時刻ｔについて予測した予想位置と、時刻ｔにおける自機ＰＣの実際の位置との誤差が小さくなり、自機ＰＣが速度を変更して移動した場合（例えば、旋回方向を変更した場合）には、予想位置と自機ＰＣの実際の位置との誤差が大きくなる。
【００９５】
２−５．仮想線分の向きの決定
次に、自機ＰＣの予測位置に基づき、敵機ＮＰＣを始点とする仮想線分の向きを決定する。具体的には、図８に示すように、前回予測した予測位置Ｐ３を始点とし、今回予測した予測位置Ｐ４を終点として、時間経過に応じて線形補間することで仮想線分の向きＤＳを算出する。
【００９６】
すなわち、今回の予測時（時刻Ｔ１）においては、仮想線分の向きＤＳは前回の予測位置Ｐ３（時刻Ｔ１から所与の時間過去の時刻Ｔ０において、時刻Ｔ１について予測した予測位置）を向く方向となり、所与の時間経過後の次回の予測時（時刻Ｔ１から所与の時間経過後の時刻Ｔ２）においては、仮想線分の向きＤＳは今回の予測位置Ｐ４（時刻Ｔ１において、時刻Ｔ２について予測した予測位置）を向く方向となり、今回と次回の間（時刻Ｔ１と時刻Ｔ２の間）は、位置Ｐ３と位置Ｐ４を結ぶ線上の点を向く方向となる。例えば、予測の時間間隔（時刻Ｔ１から時刻Ｔ２までの時間）が１秒である場合には、直近の予測時（時刻Ｔ１）から０．５秒後の仮想線分は、位置Ｐ３と位置Ｐ４の中間点（位置Ｐ３と位置Ｐ４を１：１の比率で補間した位置）を向くことになる。このようにすると、仮想線分の向きＤＳを時間経過とともになめらかに変化させることができる。
【００９７】
２−６．マーカーの表示位置の決定
次に、仮想線分の向きＤＳからマーカーＭＫの表示位置を決定する。具体的には、図９に示すように、自機ＰＣの座標Ｐ３Ｄが存在し、且つ仮想カメラＶＣの視線ベクトルＥＶと直交する（視線ベクトルＥＶが法線となる）仮想平面ＶＰを算出する。そして、始点を敵機ＮＰＣの座標とし、終点を仮想線分の向きＤＳに所定距離離れた座標とする仮想線分ＶＳを算出する。
【００９８】
そして、仮想線分ＶＳと仮想平面ＶＰの交点ＩＳの座標（ワールド座標系における３次元座標）を算出し、この交点ＩＳの３次元座標を２次元座標に変換する。具体的には、交点ＩＳの３次元座標を仮想平面ＶＰを投影面とするスクリーン座標系（２次元座標系）における２次元座標に変換する。この交点ＩＳの２次元座標がマーカーＭＫの中心座標となる。ここで、自機ＰＣと敵機の距離が大きく離れているために、仮想線分ＶＳと仮想平面ＶＰが交差しない場合には、マーカーＭＫは表示されない。
【００９９】
図１０に、仮想線分ＶＳと仮想平面ＶＰの交点ＩＳの２次元座標を含むスクリーン座標系を示す。本実施形態では、自機ＰＣと敵機ＮＰＣの距離に基づきマーカーの半径ｒ（ｒは、スクリーン座標系における長さ）を算出し、交点ＩＳの２次元座標を中心座標とする半径ｒの円形のマーカーＭＫの画像を描画する。ここで、マーカーの半径ｒに代えて直径を算出するようにしてもよい。すなわち、自機ＰＣと敵機ＮＰＣの距離に基づきマーカーＭＫの大きさを特定するための情報を算出すればよい。
【０１００】
次に、オブジェクト空間を仮想カメラから見た画像（ジオメトリ処理後のオブジェクト（自機ＰＣ、敵機ＮＰＣ等のオブジェクト）をフレームバッファに描画することで生成された画像）に、マーカーＭＫの画像を合成（例えば、α合成）することで、図２に示すようなゲーム画像を生成する。
【０１０１】
２−７．自機とマーカーの位置関係の判定
また、自機ＰＣの位置がマーカーＭＫ内に入っているか否かの判定（自機ＰＣとマーカーＭＫの位置関係が所定の条件を満たすか否かの判定）もスクリーン座標系において行う。すなわち、自機ＰＣの３次元座標Ｐ３Ｄを、交点ＩＳの座標と同様に、仮想平面ＶＰを投影面とするスクリーン座標系における２次元座標Ｐ２Ｄ（図１０参照）に変換し、この自機ＰＣの２次元座標Ｐ２Ｄと、交点ＩＳの２次元座標（マーカーＭＫの中心座標）、半径ｒに基づいて、自機ＰＣの２次元座標Ｐ２ＤがマーカーＭＫの表示範囲内にあるか否かを判定する。
【０１０２】
そして、判定結果に基づいて、マーカーＭＫにゲージＧＡを表示する処理、ゲージＧＡの値を増加又は減少させる処理、ゲージＧＡの値をリセットする処理、ゲージＧＡの値に基づきロックオン状態となったか否かを判定する処理、ロックオン状態になった場合に敵機ＮＰＣから誘導ミサイルを発射する処理等のゲーム演算を行う。
【０１０３】
このように、２次元座標系において自機ＰＣとマーカーＭＫの位置関係の判定を行うことで、３次元座標系において位置関係の判定を行う場合に比べて処理負荷を抑えることができる。
【０１０４】
また、マーカーＭＫの描画と、自機ＰＣとマーカーＭＫの位置関係の判定とを同じ２次元座標系において行うことで、自機ＰＣとマーカーのＭＫの視覚上の位置関係と位置関係の判定結果とを一致させることができ（ゲーム画面上で自機ＰＣがマーカーＭＫ内に位置する場合には、必ず、自機ＰＣの位置がマーカーＭＫ内に入っていると判定される）、見た目に違和感のないゲーム画像を生成することができる。
【０１０５】
また、本実施形態では、自機ＰＣが前回位置予測時から現在までの動きと同じ動きをすると仮定して自機ＰＣの予測位置を算出し、算出された予測位置に基づき仮想線分ＶＳの向きを算出し、算出された仮想線分ＶＳの向きにマーカーＭＫが表示される。
【０１０６】
従って、プレーヤが、自機ＰＣを同一の速度（速さ、向き）で移動させる操作（例えば、自機ＰＣを同一の速さで直進させ続ける操作、自機ＰＣを同一方向に旋回、上昇、又は下降させ続ける操作）を行った場合には、予測位置と自機ＰＣの位置の誤差が小さくなる（且つ、位置予測の時間間隔が短くなることで予測が更に当たり易くなる）ため、マーカーＭＫが自機ＰＣに近づき、自機ＰＣがマーカーＭＫ内に捉えられることになる。
【０１０７】
一方、プレーヤが、自機ＰＣの速度（速さ、向き）を変更する操作（例えば、自機ＰＣが直進している場合に自機ＰＣを旋回、上昇、下降、加速させる操作、又は自機ＰＣの旋回方向を変更する操作）を継続して行った場合には、予測位置と自機ＰＣの位置の誤差が大きくなる（且つ、位置予測の時間間隔が長くなることで予測が更に外れやすくなる）ため、マーカーＭＫは自機ＰＣから遠ざかり、自機ＰＣはマーカーＭＫによる捕捉を回避することができる。
【０１０８】
すなわち、本実施形態によれば、プレーヤの操作に基づき変化する自機ＰＣの挙動に応じて、自機ＰＣに対するマーカーＭＫの挙動を変化させることができ、プレーヤは、自機ＰＣを急旋回させる等の操作を行うことで、自機ＰＣがマーカーＭＫ内に捉えられることを避けるといったゲームプレイを楽しむことができる。
【０１０９】
なお本実施形態では、自機ＰＣが敵機ＮＰＣを追尾する「追う側近接戦闘モード」時には、敵機ＮＰＣに対するマーカーが表示されるが、敵機ＮＰＣの位置予測は行われず、図１１に示すように、仮想線分ＶＳの向きは、自機ＰＣの向き（機首方向）となり、この仮想線分ＶＳの向きにマーカーＭＫが表示される。すなわち、自機ＰＣの向きに延びる仮想線分ＶＳと仮想平面ＶＰの交点ＩＳの座標（２次元座標）がマーカーＭＫの中心座標となる。
【０１１０】
ここで、敵機ＮＰＣが自機ＰＣを追尾する「逃げ側近接戦闘モード」時においても、「追う側近接戦闘モード」時と同様に、自機ＰＣの位置予測を行わずに、ノンプレーヤキャラクタである敵機ＮＰＣの向き（機首方向）にマーカーＭＫを表示させようとすると、ゲーム画面内にマーカーＭＫが表示される可能性（自機ＰＣがマーカーＭＫ内に位置する可能性）が非常に低く、自機ＰＣがマーカーＭＫ内に捉えられることを避けるというゲームプレイを提供できないことがわかった。
【０１１１】
そこで、本実施形態では、「逃げ側近接戦闘モード」時においては、敵機ＮＰＣの向きとは関係なく、自機ＰＣの予測位置に基づき求められた仮想線分ＶＳの向きにマーカーＭＫを表示するように制御している。これにより、自機ＰＣがノンプレーヤキャラクタである敵機ＮＰＣに追尾される状況において、自機ＰＣがマーカーＭＫ内に捉えられることを避けるというゲームプレイを提供することができる。
【０１１２】
２−８．近接戦闘モードの発動条件
本実施形態では、自機ＰＣと敵機ＮＰＣの位置関係が所定のモード発動条件を満たしたか否かを判定し、所定のモード発動条件を満たしたと判定された場合に、近接戦闘モードが発動される。
【０１１３】
図１２に示すように、自機ＰＣには、円錐形状の第１の判定領域ＪＡ１Ｐと、球形状の第２の判定領域ＪＡ２Ｐが設定されている。同様に、敵機ＮＰＣには、円錐形状の第１の判定領域ＪＡ１Ｎと、球形状の第２の判定領域ＪＡ２Ｎが設定されている。第１の判定領域ＪＡ１Ｐ、ＪＡ１Ｎは、機体（自機ＰＣ、敵機ＮＰＣ）の前方に広がるように設定され、第２の判定領域ＪＡ２Ｐ、ＪＡ２Ｎは、球形状の領域の中心が機体の後方に位置するように設定されている。自機ＰＣと敵機ＮＰＣに設定される各判定領域は、各機体の特性（属性）によって、機体に対する設定位置や形状が異なるようにしてもよい。
【０１１４】
本実施形態では、自機ＰＣの第２の判定領域ＪＡ２Ｐ内に敵機ＮＰＣが位置し、且つ敵機ＮＰＣの第１の判定領域ＪＡ１Ｎ内に自機ＰＣが位置する場合（図１２に示す場合）には、自機ＰＣの後方に敵機ＮＰＣが接近していると判定され、「逃げ側近接戦闘モード」が発動される。一方、敵機ＮＰＣの第２の判定領域ＪＡ２Ｎ内に自機ＰＣが位置し、且つ自機ＰＣの第１の判定領域ＪＡ１Ｐ内に敵機ＮＰＣが位置する場合には、自機ＰＣの前方に敵機ＮＰＣが接近していると判定され、「追う側近接戦闘モード」が発動される。
【０１１５】
ここでは、自機ＰＣに設定された判定領域と敵機ＮＰＣに設定された判定領域とを用いて位置関係の判定を行っているが、自機ＰＣと敵機ＮＰＣのいずれか一方に設定された判定領域のみを用いて位置関係の判定を行うようにしてもよい。
【０１１６】
また自機ＰＣと敵機ＮＰＣの距離が所定の値以下になった場合に、モード発動条件を満たしたと判定するようにしてもよい。また、自機ＰＣと敵機ＮＰＣとがオブジェクト空間に設定された所定の領域（特殊なエリア）に入った場合に、モード発動条件を満たしたと判定するようにしてもよい。また、プレーヤによって所定の操作入力が行われた場合又は所定のゲームアイテムが使用された場合に、モード発動条件を満たしたと判定するようにしてもよい。
【０１１７】
３．処理
次に、本実施形態のゲーム装置の処理の一例について図１３、図１４のフローチャートを用いて説明する。ここでは、「逃げ側近接戦闘モード」における、自機ＰＣに対するマーカーＭＫの表示制御について説明する。
【０１１８】
まず、マーカー表示制御部１１４は、自機ＰＣの位置予測用のタイマーを更新する（図１３のステップＳ１０）。次に、タイマーの値に基づき位置予測のタイミングになったか否か（タイマーの値ｔが、位置予測の時間間隔Ｔに達したか否か）を判断する（ステップＳ１２）。
【０１１９】
ステップＳ１２の処理において、位置予測のタイミングになったと判断した場合には、
マーカー表示制御部１１４は、前回予測時の自機ＰＣの位置を始点とし、現在の自機ＰＣの位置を終点とするベクトルＶ１と、前回予測時の自機ＰＣの位置Ｐ１を始点とし、前回の予測位置を終点とするベクトルＶ２とのなす角度θを算出する（ステップＳ１４）。ここで、タイマーの値ｔがＴに達した場合にはタイマーの値ｔはリセット（ｔ＝０）される。また、ステップＳ１２の処理において、位置予測のタイミングになっていないと判断した場合には、ステップＳ２４の処理に進む。
【０１２０】
次に、マーカー表示制御部１１４は、ステップＳ１４の処理において算出した角度θが所定の第１の角度θ１以下であるか否かを判断し（ステップＳ１６）、第１の角度θ１以下であると判断した場合には、位置予測の時間間隔Ｔを所定時間ΔＴだけ短くする（ステップＳ１８）。ここで、時間間隔Ｔを短くした結果、時間間隔Ｔが所定の最小値ＴMIN以下となる場合には、時間間隔Ｔに最小値ＴMINをセットする。
【０１２１】
ステップＳ１６の処理において第１の角度θ１以下でないと判断した場合には、角度θが所定の第２の角度θ２（θ１＜θ２）以上であるか否かを判断し（ステップＳ１９）、第２の角度θ２以上であると判断した場合には、位置予測の時間間隔Ｔに所定の最大値ＴMAX（デフォルト値）をセットすることで時間間隔Ｔをリセットする（ステップＳ２０）。第２の角度θ２以上でないと判断した場合には、時間間隔Ｔを変更せずにステップＳ２２の処理に進む。
【０１２２】
次に、マーカー表示制御部１１４は、前回予測時の自機ＰＣの位置及び向きと現在の自機ＰＣの位置とに基づき自機ＰＣのローカル座標における移動ベクトルＶ３を算出し、算出した移動ベクトルＶ３と現在の自機ＰＣの位置及び向きに基づいて自機ＰＣの予測位置を算出する（ステップＳ２２）。
【０１２３】
次に、マーカー表示制御部１１４は、今回算出された予測位置と前回算出された予測位置とをタイマーの値ｔに応じて線形補間することで、敵機ＮＰＣの位置を始点とする仮想線分の向きＤＳを算出する（ステップＳ２４）。
【０１２４】
次に、マーカー表示制御部１１４は、自機ＰＣの座標が存在し、仮想カメラＶＣの視線ベクトルＥＶが法線となる仮想平面ＶＰを算出し（ステップＳ２６）、敵機ＮＰＣの位置を始点とし仮想線分の向きＤＳに所定距離延びる仮想線分ＶＳを算出する（ステップＳ２８）。
【０１２５】
次に、マーカー表示制御部１１４は、仮想平面ＶＰと仮想線分ＶＳの交点ＩＳの３次元座標を算出し、（ステップＳ３０）、交点ＩＳの３次元座標と自機ＰＣの３次元座標とを、それぞれ、仮想平面ＶＰを投影面とするスクリーン座標系（２次元座標系）における２次元座標に変換する（ステップＳ３２）。
【０１２６】
次に、マーカー表示制御部１１４は、オブジェクト空間における自機ＰＣと敵機ＮＰＣ間の距離に基づいて、２次元座標系におけるマーカーＭＫの半径ｒを算出する（図１４のステップＳ３４）。ここで、自機ＰＣに設定された機体パラメータや、プレーヤによる操作、或いはゲームの難易度、プレーヤの経験値に基づき半径ｒを算出してもよい。
【０１２７】
次に、ゲーム演算部１１６は、ステップＳ３２の処理で算出された交点ＩＳ及び自機ＰＣの２次元座標と、ステップＳ３４の処理で算出された半径ｒに基づいて、２次元座標系において、自機ＰＣの２次元座標が、交点ＩＳの２次元座標を中心座標とする半径ｒのマーカーＭＫ内に入っているか否かを判定する（ステップＳ３６）。
【０１２８】
ステップＳ３６の処理において、自機ＰＣの座標がマーカーＭＫ内に入っていると判定された場合には、ゲーム演算部１１６は、ゲージＧＡの値を所定の値だけ増加させる処理を行い（ステップＳ３８）、ゲージＧＡの値が所定の値（最大値）に達したか否かを判断し（ステップＳ４２）、所定の値に達したと判断した場合には、敵機ＮＰＣから特殊な誘導ミサイルを発射させる（特殊武器を発動する）ためのゲーム演算を行うステップＳ４４。なお、ゲージＧＡの値が最大値に達した場合には、ゲージＧＡの値はリセットされる。ステップＳ３６の処理において、自機ＰＣの座標がマーカーＭＫ内に入っていないと判断した場合には、ゲージＧＡの値をリセットし（又はゲージＧＡの値を所定値だけ減少させ）（ステップＳ４０）、ステップＳ４６の処理に進む。
【０１２９】
次に、マーカー表示制御部１１４は、交点ＩＳの２次元座標を中心座標とする半径ｒのマーカーＭＫを描画するための処理を行う（ステップＳ４６）。また、ゲージの値がリセットされていない場合には、マーカーＭＫにゲージＧＡを表示するための処理を行う。
【０１３０】
次に、処理を続けるか否かを判断し（ステップＳ４８）、処理を続ける場合には、ステップＳ１０の処理に進み、ステップＳ１０以降の処理を繰り返す。
【０１３１】
４．変形例
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０１３２】
例えば、上記実施形態では、仮想線分と仮想平面の交点の３次元座標を２次元座標に変換して、この交点に２次元座標に基づきマーカーの表示位置を決定する場合について説明したが、仮想線分と仮想平面の交点の３次元座標に基づいて、マーカーを示すマーカーオブジェクトをオブジェクト空間に配置するようにしてもよい。
【０１３３】
例えば、図１５（Ａ）に示すように、リング形状の複数のポリゴンからなるオブジェクトを、マーカーオブジェクトＭＯとしてオブジェクト空間に配置するようにしてもよい。また、図１５（Ｂ）に示すように、板状のポリゴンからなるオブジェクトにリング状のマーカーを表すテクスチャＴＥＸをマッピングしたオブジェクトを、マーカーオブジェクトＭＯとしてオブジェクト空間に配置するようにしてもよい。この場合には、自機ＰＣと敵機ＮＰＣの距離等に基づきマーカーオブジェクトＭＯを拡縮処理することで、距離等に基づくマーカーの大きさ制御を行えばよい。
【０１３４】
ここで、マーカーオブジェクトＭＯを、仮想線分と仮想平面の交点の３次元座標が、マーカーオブジェクトＭＯの中心座標となり、且つ仮想平面とマーカーオブジェクトＭＯとが平行になるように（マーカーオブジェクトＭＯが仮想カメラに対して正面を向くように）配置するようにしてもよい。この場合においても、自機ＰＣとマーカーの位置関係の判定は、上記実施形態と同様に、２次元座標系における交点ＩＳの２次元座標と自機ＰＣの２次元座標とに基づき行うようにしてもよい。
【０１３５】
また、図１６に示すように、マーカーオブジェクトＭＯを、仮想平面ＶＰから仮想カメラＶＣに向けて垂直に所与の距離ｄだけオフセットして配置するようにしてもよい。このように、マーカーオブジェクトＭＯを、ターゲットとなる自機ＰＣと敵機ＮＰＣと間に配置することで、自機ＰＣが背後から迫る敵機ＮＰＣの誘導ミサイルに狙われている様子を見た目に違和感なく表現することができる。
【０１３６】
また、図１５（Ｃ）に示すように、ゲージＧＡを示すゲージオブジェクトＧＯを、マーカーオブジェクトＭＯとともにオブジェクト空間に配置するようにしてもよい。マーカーオブジェクトＭＯとゲージオブジェクトＧＯとをオブジェクト空間に配置する際には、ゲージオブジェクトＧＯを、マーカーオブジェクトＭＯよりも仮想カメラＶＣから見て手前側に配置するようにしてもよい。このようにすると、特に立体視の手法（左目用のゲーム画像と右目用の画像を生成する手法）を用いてゲーム画像を生成する場合に、ゲージオブジェクトＧＯを視認し易くすることができる。
【０１３７】
また、マーカーオブジェクトＭＯを、自機ＰＣと敵機ＮＰＣとの間に配置した場合には、仮想カメラＶＣの位置によっては、マーカーオブジェクトＭＯの全部又は一部が敵機ＮＰＣに隠れてしまう。そこで、図１７に示すように、マーカーオブジェクトＭＯが敵機ＮＰＣと重なった場合には、敵機ＮＰＣのマーカーオブジェクトＭＯと重なる部分ＰＴについては半透明で描画し、敵機ＮＰＣの奥側にあるマーカーオブジェクトが透けて見えるようにしてもよい。また、マーカーオブジェクトＭＯの重なる部分ＰＴについて、その他の部分とは異なる色で描画するようにしてもよい。また、マーカーオブジェクトＭＯについては、敵機ＮＰＣによって陰面消去されないように描画するようにしてもよい。このようにすると、マーカーオブジェクトＭＯが敵機ＮＰＣと重なる状況であっても、プレーヤは自機ＰＣに対するマーカーＭＯを確実に視認することができる。
【０１３８】
また、上記実施形態では、プレーヤキャラクタである自機を第１のオブジェクトとし、ＮＰＣである敵機を第２のオブジェクトとする場合について説明したが、ＮＰＣ又は他のプレーヤキャラクタである敵機を第１のオブジェクトとし、プレーヤキャラクタである自機を第２のオブジェクトとするようにしてもよい。すなわち、敵機の予測位置を算出し、この予測位置に基づき仮想線分の向きを算出し、この仮想線分の向きに敵機に対するマーカーを表示するようにしてもよい。このようにすると、初心者等のプレーヤでも敵機をマーカー内に捉え易くすることができる。
【符号の説明】
【０１３９】
１００  処理部、１１０  オブジェクト空間設定部、１１２  移動・動作処理部（移動制御部）、１１４  マーカー表示制御部、１１６  ゲーム演算部、１１８  仮想カメラ制御部、１２０  描画部（画像生成部）、１６０  操作部、１７０  記憶部、１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、１９６  通信部
【図１】
2011255114.tif 000003
【図２】
2011255114.tif 000004
【図３】
2011255114.tif 000005
【図４】
2011255114.tif 000006
【図５】
2011255114.tif 000007
【図６】
2011255114.tif 000008
【図７】
2011255114.tif 000009
【図８】
2011255114.tif 000010
【図９】
2011255114.tif 000011
【図１０】
2011255114.tif 000012
【図１１】
2011255114.tif 000013
【図１２】
2011255114.tif 000014
【図１３】
2011255114.tif 000015
【図１４】
2011255114.tif 000016
【図１６】
2011255114.tif 000017
【図１５】
2011255114.tif 000018
【図１７】
2011255114.tif 000019