説明

プログラム、情報記憶媒体、端末、及びサーバ

【課題】第1、第2の移動体において従来にない対戦を行うことが可能なシューティングゲームを提供可能なプログラム、情報記憶媒体、端末、及びサーバを提供すること。
【解決手段】第1の移動体が第2の移動体に追尾されている場合であって、第1の移動体と第2の移動体との距離が第1の所定距離以内である場合に、所定条件を満たすと判断し、所定条件を満たす場合に、第1の特殊コマンドの入力情報を受け付ける。そして、第1の特殊コマンドの入力情報を受け付けた場合に、移動体制御用の入力情報によらずに、第1の移動体が第2の移動体を追尾する位置に第1の移動体を移動させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、端末、及びサーバに関する。
【背景技術】
【0002】
従来から、オブジェクト空間(仮想的3次元空間)内において仮想カメラ(所与の視点)から見える画像を生成する端末が知られており、いわゆる仮想現実を体験できるものとして人気が高い。例えば、ミサイル、機関砲などをターゲットオブジェクトにヒットさせて攻撃を行うシューティングゲームのための端末が存在する(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009−240498号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
例えば、シューティングゲームでは、移動体OB1の機軸に合わせて装備された機銃、ミサイルなどを用いて移動体OB2を攻撃する場合には、移動体OB1を移動体OB2の背後に配置させて攻撃操作を行うことが有効である。また、逆に、移動体OB2に移動体OB1の背後をとられてしまうと、敵からの攻撃を受け易くなるため、移動体OB2に背後を取られないように逃げる操作を行うことが有効である。
【0005】
このように、従来のシューティングゲームでは、移動体OB2に移動体OB1の背後をとられてしまう場合には、プレーヤは移動体OB1を旋回させたり、ターンさせたりして逃げる操作を行うことが一般的であった。そのため、移動体OB1と移動体OB2とのせめぎ合いに欠けるものがあった。
【0006】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、第1、第2の移動体において従来にない対戦を行うことが可能なシューティングゲームを提供可能なプログラム、情報記憶媒体、端末、及びサーバを提供することにある。
【課題を解決するための手段】
【0007】
(1)本発明は、シューティングゲームの処理を行うプログラムであって、オブジェクト空間において、移動体制御用の入力情報に基づき第1の移動体を移動させる移動体制御部と、所定条件を満たす場合に、第1の特殊コマンドの入力情報を受け付ける受け付け部として、コンピュータを機能させ、前記受け付け部が、第1の移動体が第2の移動体に追尾されている場合であって、第1の移動体と第2の移動体との距離が第1の所定距離以内である場合に、前記所定条件を満たすと判断し、前記移動体制御部が、第1の特殊コマンドの入力情報を受け付けた場合に、移動体制御用の入力情報によらずに、第1の移動体が第2の移動体を追尾する位置に、第1の移動体を移動させるプログラムに関する。また、本発明は、上記プログラムを記憶した情報記憶媒体、上記各部として構成する端末に関する。
【0008】
本発明によれば、第1の移動体が第2の移動体に追尾されている場合であっても、プレーヤが、第1の移動体と第2の移動体との距離が第1の所定距離以内である場合に第1の特殊コマンドの入力を行うことにより、第1の移動体を第2の移動体を追尾する位置に移動させることができる。つまり、本発明によれば、第1の移動体が第2の移動体から被弾され得る不利な立場から、第1の移動体が第2の移動体を射撃可能な有利な立場になる機会を得ることができる。したがって、本発明は、第1、第2の移動体において従来にない新たな対戦を行うことが可能なシューティングゲームを提供できる。
【0009】
(2)また、本発明のプログラム、情報記憶媒体及び端末は、前記受け付け部が、第1の移動体と第2の移動体との距離が第2の所定距離以内で第1の移動体が第2の移動体に追尾されている場合に、第1の移動体と第2の移動体との距離が第2の所定距離よりも短い第1の所定距離以内に狭まった場合に、前記所定条件を満たすと判断するようにしてもよい。
【0010】
本発明によれば、第1の移動体と第2の移動体との距離が第2の所定距離以内で第1の移動体が第2の移動体に追尾されている場合において、プレーヤは、第1の移動体と第2の移動体との距離が第2の所定距離よりも短い第1の所定距離以内に狭まるように、第1の移動体の入力操作を行うことが要求される。このように、本発明によれば、第1の移動体を操作するプレーヤは、例えば、第1の移動体を減速させて第2の移動体に近づくというリスクをとらないと、攻撃の機会を得ることができないようにすることができる。つまり、本発明は、第1、第2の移動体のせめぎ合いのあるシューティングゲームを提供できる。
【0011】
(3)また、本発明のプログラム、情報記憶媒体及び端末は、前記受け付け部が、オブジェクト空間における基準軸に対する第1の移動体の傾斜角度が所定角度内である場合に、前記所定条件を満たすと判断するようにしてもよい。本発明によれば、第1の移動体が基準軸に対して適切な傾き状態である場合に、攻撃の機会を得るようにすることができる。
【0012】
(4)また、本発明のプログラム、情報記憶媒体及び端末は、前記受け付け部が、第1の移動体と第2の移動体との相対速度が所定速度範囲内である場合に、前記所定条件を満たすと判断するようにしてもよい。本発明によれば、第1の移動体と第2の移動体との相対速度が所定速度範囲内であるという適切な状況下で、第1の移動体は攻撃の機会を得ることができる。
【0013】
(5)また、本発明のプログラム、情報記憶媒体及び端末は、前記受け付け部が、前記所定条件を満たす期間が第1の所定期間継続した後に、第1の特殊コマンドの入力情報を受け付けるようにしてもよい。
【0014】
本発明によれば、第1の移動体を操作するプレーヤは、第1の移動体と第2の移動体との距離が第1の所定距離以内で追尾されている状況を第1の所定期間維持するように操作する必要が生じる。つまり、第1の移動体は、第2の移動体から被弾されるリスクをとることによって攻撃の機会を得ることができる。このように、本発明は、第1、第2の移動体のせめぎ合いのあるシューティングゲームを提供できる。
【0015】
(6)また、本発明のプログラム、情報記憶媒体及び端末は、前記移動体制御部が、第1の特殊コマンドの入力情報を受け付けた場合に、第2の移動体の方角を向くように、第1の移動体の向きを補正するようにしてもよい。
【0016】
本発明によれば、第1の移動体から第2の移動体への向きに基づき、第1の移動体の向きを補正することによって、簡易に第2の移動体を射撃できるようにしている。
【0017】
(7)また、本発明のプログラム、情報記憶媒体及び端末は、第1の移動体と第2の移動体との距離に応じて変化するマーカを含む画像を生成する描画部として、コンピュータを更に機能させ、前記描画部が、前記所定条件を満たす場合に、第1の特殊コマンドの入力を指示する画像を生成するようにしてもよい。
【0018】
本発明によれば、第1の移動体を操作するプレーヤは、第1の移動体と第2の移動体との距離を確認することができるので、所定条件を満たすように第1の移動体を操作することができる。また、所定条件を満たす場合に、第1の特殊コマンドの入力を指示する画像が生成されるので、プレーヤに対して第1の特殊コマンドの入力タイミングを逃さないようにすることができる。
【0019】
(8)また、本発明のプログラム、情報記憶媒体及び端末は、第1の移動体の挙動に追従する仮想カメラを制御する仮想カメラ制御部と、オブジェクト空間において、前記仮想カメラから見える画像を生成する描画部として、コンピュータを更に機能させ、前記仮想カメラ制御部が、第1の特殊コマンドの入力情報を受け付けた場合には、第1の移動体の挙動に追従する第1の仮想カメラ情報と、第1の移動体が第2の移動体を追尾するまでの第1の移動体の移動を注視する第2の仮想カメラ情報とを設定し、前記描画部が、第1の特殊コマンドの入力情報を受け付けた場合には、前記第1の仮想カメラ情報と前記第2の仮想カメラ情報とに基づいて、画像を生成するようにしてもよい。本発明によれば、第1の移動体が不利な立場から有利な立場に逆転する迫力のある画像を生成することができる。
【0020】
(9)また、本発明のプログラム、情報記憶媒体及び端末は、前記受け付け部が、第2の移動体が第1の移動体に追尾されている場合に、第2の移動体が第1の移動体を追尾する位置に第2の移動体を移動させるための第1の特殊コマンドを実行する際に、当該第1の特殊コマンド実行開始時から第2の所定期間中に第2の特殊コマンドの入力情報を受け付け可能とし、前記移動体制御部が、第2の所定期間中に第2の特殊コマンドの入力情報を受け付けた場合には、第2の移動体の方角を向くように、第1の移動体の向きを制御するようにしてもよい。
【0021】
本発明によれば、第2の特殊コマンドの入力により、第1の移動体の向きが、第2の移動体への方角を向くように制御される。したがって、第1の移動体の向きが、第2の移動体への方角を向く際に、第1の移動体が第2の移動体を射撃すれば、第1、第2の追尾関係が逆転する事態を阻止することができる。このように、本発明は、更に、白熱した対戦可能なシューティングゲームを提供することができる。
【0022】
(10)また、本発明のプログラム、情報記憶媒体及び端末は、第1の移動体の挙動に追従する仮想カメラを制御する仮想カメラ制御部と、オブジェクト空間において、前記仮想カメラから見える画像を生成する描画部として、コンピュータを更に機能させ、前記仮想カメラ制御部が、第2の所定期間中に第2の特殊コマンドの入力情報を受け付けた場合には、第1の移動体の向きに応じて、前記仮想カメラの視線方向を変化させるようにしてもよい。
【0023】
本発明によれば、第2の所定期間中に第2の特殊コマンドを受け付けた場合には、第1の移動体の向きに応じて、仮想カメラの視線方向を変化させる。したがって、例えば、第1の移動体が第2の移動体を射撃する様子をリアルに表現できる。
【0024】
(11)また、本発明のプログラム、情報記憶媒体及び端末は、前記移動体制御部が、前記第2の所定期間中に第2の特殊コマンドの入力情報を受け付けなかった場合には、第1の移動体の挙動を制限するようにしてもよい。
【0025】
本発明によれば、第2の移動体が第1の移動体を追尾する有利な立場であったにもかかわらず、その有利な立場を生かしきれなかった場合には、ペナルティとして第2の移動体の挙動が制限される。つまり、本発明によれば、第2の移動体が第1の移動体に追尾されるとなった場合に被弾されやすい状況を作り出すことができ、第1、第2の移動体において、より白熱した対戦が可能なシューティングゲームを提供することができる。
【0026】
(12)また、本発明のプログラム、情報記憶媒体及び端末は、第1の移動体の挙動に追従する仮想カメラを制御する仮想カメラ制御部と、オブジェクト空間において、前記仮想カメラから見える画像を生成する描画部として、コンピュータを更に機能させ、前記仮想カメラ制御部が、第2の所定期間中に第2の特殊コマンドを受け付けなかった場合には、第1の特殊コマンド実行開始時から第1の移動体と第2の移動体との追尾関係が逆転するまで、第2の移動体を注視するように、前記仮想カメラの視線方向を制御するようにしてもよい。
【0027】
本発明によれば、第1の移動体が第2の移動体を追尾する有利な立場から、第1の移動体が第2の移動体に追尾される不利な立場に変化する様子を表現できる。
【0028】
(13)また、本発明は、シューティングゲームの処理を行うサーバであって、ネットワークを介して端末から移動体制御用の入力情報、第1の特殊コマンドの入力情報を受信する通信制御部と、オブジェクト空間において、移動体制御用の入力情報に基づき第1の移動体を移動させる移動体制御部と、所定条件を満たす場合に、第1の特殊コマンドの入力情報を受け付ける受け付け部と、を含み、前記受け付け部が、第1の移動体が第2の移動体に追尾されている場合であって、第1の移動体と第2の移動体との距離が第1の所定距離以内である場合に、前記所定条件を満たすと判断し、前記移動体制御部が、第1の特殊コマンドの入力情報を受け付けた場合に、移動体制御用の入力情報によらずに、第1の移動体が第2の移動体を追尾する位置に、第1の移動体を移動させるサーバに関する。
【0029】
本発明によれば、第1の移動体が第2の移動体に追尾されている場合であっても、プレーヤの端末から受信した、第1の移動体と第2の移動体との距離が第1の所定距離以内である場合に第1の特殊コマンドの入力を受け付けることにより、第1の移動体を第2の移動体を追尾する位置に移動させることができる。つまり、本発明によれば、第1の移動体が、第2の移動体から被弾され得る不利な立場において、逆に、第1の移動体が第2の移動体を追い射撃攻撃可能な有利な立場となる機会を得ることができる。したがって、本発明は、第1、第2の移動体において白熱した対戦を行うことが可能となる。
【図面の簡単な説明】
【0030】
【図1】図1は、本実施形態の端末の構成の一例である。
【図2】図2(A)〜(C)は、通常戦闘時の仮想カメラ制御の説明図。
【図3】図3は、第1の特殊コマンド(攻守交替コマンド)の説明図。
【図4】図4は、近接戦闘モードの説明図。
【図5】図5(A)〜(C)は、移動体の傾斜角度を説明するための図。
【図6】図6(A)〜(C)は、移動体の傾斜角度を説明するための図。
【図7】図7は、第1の特殊コマンド(攻守交替コマンド)の説明図。
【図8】図8は、マニューバに対応する入力情報、移動ルート情報、カメラ情報についての対応表。
【図9】図9(A)(B)は、移動体の向き補正の説明図。
【図10】図10(A)〜(C)は、生成画像の一例。
【図11】図11は生成画像の一例。
【図12(A)】図12(A)は、仮想カメラの制御を説明するための図。
【図12(B)】図12(B)は、仮想カメラの制御を説明するための図。
【図13】図13は、本実施形態のフローチャート。
【図14】図14は、第2の特殊コマンド(敵追尾コマンド)の説明図。
【図15】図15は、第2の特殊コマンド(敵追尾コマンド)の説明図。
【図16】図16は、第2の特殊コマンド(敵追尾コマンド)の説明図。
【図17】図17は、第2の特殊コマンド(敵追尾コマンド)の説明図。
【図18】図18(A)(B)は、生成画像の一例。
【図19】図19は、仮想カメラの制御を説明するための図。
【図20】図20は、仮想カメラの制御を説明するための図。
【図21】図21は、仮想カメラの制御を説明するための図。
【図22】図22は、本実施形態のフローチャート。
【図23】図23は、ネットワークシステムの説明図。
【図24】図24は、ネットワークシステムの説明図。
【図25】図25は、ネットワークシステムの説明図。
【発明を実施するための形態】
【0031】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0032】
1.構成
図1に本実施形態の端末(画像生成装置、ゲーム装置、携帯電話、携帯端末、携帯型ゲーム装置)の機能ブロック図の例を示す。なお本実施形態の端末は図1の構成要素(各部)の一部を省略した構成としてもよい。
【0033】
入力部160は、プレーヤ(操作者)からの入力情報を入力するための入力機器(コントローラ)であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部160は、プレーヤの入力情報(入力信号)を検出する検出部162を備える。入力部160は、例えば、アナログレバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどがある。また、入力部160は、振動信号に基づいて振動させる処理を行う振動部を備えていてもよい。
【0034】
また、入力部160は、3軸の加速度を検出する加速度センサや、角速度を検出するジャイロセンサ、撮像部を備えた入力機器でもよい。例えば、入力部160は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力部160は、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける(プレーヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られた入力機器でもよい。また入力部160は、入力機器と一体化されている端末(携帯電話、携帯端末、携帯型ゲーム装置)なども含まれる。
【0035】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0036】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0037】
なお、記憶部170、情報記憶媒体180は、複数の攻守交替マニューバそれぞれに対応付けて、マニューバ選択用の入力情報、移動ルート情報、仮想カメラ情報を記憶させるようにしてもよい。
【0038】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。
【0039】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0040】
通信部196は外部(例えば他の端末、サーバ)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0041】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部170に記憶してもよい。このようにプログラムやデータを受信して端末を機能させる場合も本発明の範囲内に含む。
【0042】
処理部100(プロセッサ)は、入力部160からの入力データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【0043】
この処理部100は記憶部170内の主記憶部171をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0044】
処理部100は、受け付け部110、オブジェクト空間設定部111、移動・動作処理部112、ヒット判定部114、ゲーム演算部115、表示制御部116、仮想カメラ制御部117、通信制御部118、描画部120、音処理部130を含む。なお、これらの一部を省略する構成としてもよい。
【0045】
受け付け部110は、プレーヤの入力情報を受け付ける処理を行う。例えば、移動体OB1(第1のオブジェクト、プレーヤの操作対象のオブジェクト)の挙動を制御するための移動体制御用の入力情報を受け付ける処理や、移動体OB1から弾(ミサイル、機銃)を発射させる射撃用入力情報を受け付ける。特に、本実施形態の受け付け部110は、アイテム(例えば、武器)の選択を受け付ける処理を行うようにしてもよい。
【0046】
また、例えば、受け付け部110は、移動体に対する相対的な仮想カメラの位置を特定の位置に変更するための視点位置変更入力情報を受け付けるようにしてもよい。なお、アイテムの選択の情報は、視点位置変更入力情報と同じであってもよい。つまり、アイテムの選択の情報を受け付けると、同時に視点位置をアイテムに応じた視点位置に変更(通常戦闘時カメラ制御からアイテムカメラ制御に変更)してもよい。
【0047】
また、受け付け部110は、所定条件を満たす場合に、第1の特殊コマンドの入力情報を受け付ける。例えば、受け付け部110は、第1の移動体が第2の移動体に追尾されている場合であって、第1の移動体と第2の移動体との距離が第1の所定距離以内である場合に、前記所定条件を満たすと判断する。具体的には、受け付け部110が、第1の移動体と第2の移動体との距離が第2の所定距離以内で第1の移動体が第2の移動体に追尾されている場合に、第1の移動体と第2の移動体との距離が第2の所定距離よりも短い第1の所定距離以内に狭まった場合に、所定条件を満たすと判断するようにしてもよい。
【0048】
また、受け付け部110は、オブジェクト空間における基準軸に対する第1の移動体の傾斜角度が所定角度内である場合に、所定条件を満たすと判断するようにしてもよい。
【0049】
また、受け付け部110は、第1の移動体と第2の移動体との相対速度が所定速度範囲内である場合に、所定条件を満たすと判断するようにしてもよい。
【0050】
また、受け付け部110は、所定条件を満たす期間が第1の所定期間継続した後に、第1の特殊コマンドの入力情報を受け付けるようにしてもよい。
【0051】
また、受け付け部110は、第2の移動体が第1の移動体に追尾されている場合に、第2の移動体が第1の移動体を追尾する位置に第2の移動体を移動させるための第1の特殊コマンドを実行する際に、当該第1の特殊コマンド実行開始時から第2の所定期間中に第2の特殊コマンドの入力情報を受け付け可能としてもよい。
【0052】
例えば、受け付け部110は、第1の移動体を操作する第1の入力部から第1の特殊コマンドの入力情報を受け付けた場合に、当該第1の特殊コマンドを受け付けた時点から第2の所定期間中に、第2の移動体を操作する第2の入力部から第2の特殊コマンドを受け付けるようにしてもよい。
【0053】
また、受け付け部110は、第1の移動体を操作する端末10Aから第1の特殊コマンドの入力情報を受け付けた(受信した)場合に、当該第1の特殊コマンドを受け付けた時点から第2の所定期間中に、第2の移動体を操作する端末10Bから第2の特殊コマンドを受け付け可能(受信可能)としてもよい。
【0054】
オブジェクト空間設定部111は、オブジェクトをオブジェクト空間(仮想的3次元空間)に配置する処理を行う。例えば、オブジェクト空間設定部111は、移動体OB1、移動体OB2(第2のオブジェクト、コンピュータプログラムに基づいて移動・動作、攻撃を行う移動体、ノンプレーヤキャラクターNPC、他のプレーヤの操作対象のオブジェクト)の他に、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を、オブジェクト空間に配置する処理を行う。ここでオブジェクト空間とは、仮想的なゲーム空間であり、例えば、ワールド座標系、仮想カメラ座標系のように、3次元座標(X,Y,Z)においてオブジェクトが配置される空間である。
【0055】
例えば、オブジェクト空間設定部111は、ワールド座標系にオブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)を配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0056】
オブジェクト空間設定部111は、スクリーン(2次元画像、画面、スクリーン座標系)上に、特殊コマンドの入力指示オブジェクト、マーカなどの指示オブジェクトを配置する処理を行うようにしてもよい。また、オブジェクト空間設定部は、オブジェクト空間(3次元空間、ワールド座標系、仮想カメラ座標系、モデル座標系)に、指示オブジェクトを配置するようにしてもよい。
【0057】
特に、オブジェクト空間設定部111は、オブジェクト空間において、所定範囲を設定する。この所定範囲は、オブジェクト空間に配置された複数の敵オブジェクト(敵地上物)を含む3次元のボリュームとすることができる。
【0058】
移動・動作処理部112は、オブジェクト空間にあるオブジェクトの移動・動作演算を行う。すなわち入力部160から受け付けた入力情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。
【0059】
移動体制御部112aは、オブジェクト空間において、移動体の挙動を制御する。移動体の挙動とは、移動体の移動・動作情報であり、移動体の回転(向きの変更)及び移動方向の変更の少なくとも一方を含む。なお、移動体の挙動は、移動体の速度、加速度を含んでいてもよい。例えば、移動体制御部112aは、1フレーム(例えば、1/60秒)毎に移動体のモデル座標系のX軸、Y軸、Z軸回りの回転角度(向き)を求める。また、移動体制御部112aは、1フレーム毎に、移動体の移動方向を求める処理を行う。なおフレームは、オブジェクトの移動・動作処理や画像生成処理を行う時間の単位である。
【0060】
例えば、移動体制御部112aは、入力部160からの移動体制御用の入力情報に基づき、第1の移動体(例えば、移動体OB1)の挙動を制御し、移動体制御プログラムに基づいて、第2の移動体(例えば、移動体OB2)の挙動を制御する処理を行うようにしてもよい。
【0061】
また、移動体制御部112aは、移動体から発射された弾(例えば、ミサイル、機関砲)がターゲットオブジェクトに追尾するように、弾の移動処理を行うようにしてもよい。
【0062】
なお、移動・動作処理部112は、他の端末とネットワークを介してデータを送受信している場合には、他の端末から受信した入力情報や他の機体の移動情報等のデータに基づいて、本端末10Aのオブジェクト空間に配置される他の移動体(他の端末を操作するプレーヤの操作対象の移動体)の挙動(移動・動作)を制御するようにしてもよい。
【0063】
特に、本実施形態の移動体制御部112aは、オブジェクト空間において、移動体制御用の入力情報に基づき、移動体の挙動を制御する。例えば、移動体制御部112aは、オブジェクト空間において、移動体制御用の入力情報に基づき第1の移動体を移動させる。
【0064】
また、本実施形態の移動体制御部112aは、第1の特殊コマンドの入力情報を受け付けた場合に、移動体制御用の入力情報によらずに、第1の移動体が第2の移動体を追尾する位置に、第1の移動体を移動させる。
【0065】
また、移動体制御部112aは、第1の特殊コマンドの入力情報を受け付けた場合に、第2の移動体の方角を向くように第1の移動体の向きを補正するようにしてもよい。例えば、第1の特殊コマンドの入力情報を受け付けた場合に、移動体制御用の入力情報によらずに、第1の移動体が第2の移動体を追尾する位置に第1の移動体を移動させ、当該位置において、第1の移動体から第2の移動体への向きに基づき、第1の移動体の向きを補正するようにしてもよい。
【0066】
また、移動体制御部112aは、第2の特殊コマンドを受け付けた場合には、第2の移動体の方角を向くように、第1の移動体の向きを制御してもよい。また、移動体制御部112aが、第2の所定期間中に第2の特殊コマンドを受け付けなかった場合には、第2の移動体の挙動を制限するようにしてもよい。
【0067】
ヒット判定部114は、第2の移動体から発射された弾(例えば、ミサイル)が第1の移動体にヒットしたか否かを判定する。また、ヒット判定部114は、第1のオブジェクトから発射された弾が第2のオブジェクトにヒットしたか否かを判定する。
【0068】
ゲーム演算部115は、種々のゲーム処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などがある。
【0069】
ゲーム演算部115は、第1の移動体から発射させた弾が第2の移動体に命中したか否かを判断し、第2の移動体から発射させた弾が第1の移動体に命中したか否かを判断し、各判断結果に基づきゲーム演算を行う。
【0070】
例えば、ゲーム演算部115は、各オブジェクト(移動体OB1、移動体OB2を含む)のパラメータを更新する処理を行う。本実施形態のゲーム演算部115では、弾が移動体OB1にヒットする度に、ダメージを蓄積したダメージ蓄積値Iを更新している。例えば、移動体OB1のダメージ蓄積値Iが最大値(I=100)になると、移動体OB1が撃墜したものとみなされ、ゲームを終了する処理を行う。一方、ゲーム中の全ての移動体OB2のダメージ蓄積値Iが最大値になると、ゲームクリアと判定する処理を行う。
【0071】
また、ゲーム演算部115は、ゲーム進行速度に基づいて、ゲームを進行させる。例えば、ゲーム演算部115は、制限条件を満たす場合には(例えば、攻守交代マニューバの移動中)、ゲーム進行速度を減速するようにしてもよい(スローモーションにするようにしてもよい)。
【0072】
表示制御部116は、描画部120において生成された画像を表示部190に表示させる処理を行う。
【0073】
仮想カメラ制御部117は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、3次元の画像を生成する場合には、ワールド座標系における仮想カメラの位置(X、Y、Z)、回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、仮想カメラ制御部117は、仮想カメラの視点位置、視線方向、画角、移動方向、移動速度の少なくとも1つを制御する処理を行う。
【0074】
特に、本実施形態の仮想カメラ制御部117は、移動体の挙動に追従する仮想カメラを制御する。例えば、図2(A)(B)に示す一人称視点、図2(C)に示す三人称視点(後方視点)によって、仮想カメラを制御する。
【0075】
例えば、仮想カメラ制御部117は、移動・動作処理部112で得られたオブジェクトの位置、向き又は速度などの移動体の挙動(挙動情報)に基づいて、仮想カメラを制御する。つまり、本実施形態の仮想カメラ制御部117は、移動体の挙動に追従する仮想カメラを制御する。例えば、仮想カメラ制御部117は、ワールド座標において、移動体制御部112aで処理される移動体の挙動と仮想カメラの挙動とが所定の関係を保つように制御する。
【0076】
より具体的には、ワールド座標において、移動体制御部112aで処理される移動体の位置(移動体の中心点P)と仮想カメラの位置(CP)とが所定の位置関係を保つように制御する。例えば、移動体の位置(移動体の中心点P)と仮想カメラの位置(CP)とが、所定の距離を保つように制御する。また、移動体の移動方向及び移動速度と、仮想カメラの移動方向及び移動速度とが所定の関係を保つように制御する。例えば、移動体の移動方向と仮想カメラの移動方向が同一の方向になるように制御し、移動体の移動速度と仮想カメラの移動速度とが同一の速度になるように制御する。また、仮想カメラ制御部117は、移動体の向き(回転)と、仮想カメラの向き(回転)とが所定の関係を保つように仮想カメラの向き(視線方向)を制御する。例えば、移動体の向きと仮想カメラの向きとが同一の方向を向くように制御する。また、仮想カメラ制御部117は、移動体の回転方向、回転速度が所定の関係を保つように仮想カメラの回転方向、回転速度を制御する。例えば、移動体の回転方向、回転速度と仮想カメラの回転方向、回転速度とが同一になるように制御する。
【0077】
本実施形態の仮想カメラ制御部117は、第1の移動体の挙動に追従する仮想カメラを制御する。また、仮想カメラ制御部117が、第1の特殊コマンドの入力情報を受け付けた場合には、第1の移動体の挙動に追従する第1の仮想カメラ情報と、第1の移動体が第2の移動体を追尾するまでの第1の移動体の移動を注視する第2の仮想カメラ情報(例えば、攻守交替マニューバの移動ルートを注視する仮想カメラ情報)とを設定するようにしてもよい。なお、第2の仮想カメラ情報を、移動ルート情報に対応する仮想カメラ情報(視点位置、視線方向、移動方向、画角、回転(向き))として、予め、を記憶部170、情報記憶媒体180等に記憶するようにしてもよい。
【0078】
また、仮想カメラ制御部117は、第2の所定期間中に第2の特殊コマンドの入力情報を受け付けた場合には、第1の移動体の向きに応じて、仮想カメラの視線方向を変化させるようにしてもよい。
【0079】
また、仮想カメラ制御部117は、第2の所定期間中に第2の特殊コマンドを受け付けなかった場合には、第1の特殊コマンド実行開始時から第1の移動体と第2の移動体との追尾関係が逆転するまでの間、第2の移動体を注視するように、仮想カメラの視線方向を制御するようにしてもよい。
【0080】
また、仮想カメラ制御部117は、オブジェクト空間において所与の位置から見下ろすような俯瞰用仮想カメラを配置させて当該俯瞰用仮想カメラを制御するようにしてもよい。
【0081】
また、仮想カメラ制御部117は、リプレイ用で画像を生成するためのリプレイ用仮想カメラをオブジェクト空間に配置させて、当該リプレイ用仮想カメラを制御するように使用してもよい。リプレイ用仮想カメラは、移動体の移動に必ずしも追従させる必要はないが、移動体の移動情報に応じて、リプレイ用仮想カメラを制御するようにしてもよい。
【0082】
通信制御部118は、端末(例えば第1の端末)が他の端末(例えば第2の端末)又はサーバ20とネットワークを介して相互にデータを送受信する処理を行うようにしてもよい。
【0083】
なお、本実施形態の端末では、通信制御で必要となるネットワーク情報をサーバから取得し、管理する処理等を行うようにしてもよい。例えば、端末は、各端末に個別に付与される端末の識別情報(オンラインゲームに参加できる端末を識別するために個別に付与されたデータ、ID)と、端末の識別情報に対応付けられたパケットの送信先を指定する宛先情報(IPアドレスなど)とを取得し、管理する処理を行うようにしてもよい。
【0084】
通信制御部118は、他の端末(第2の端末)又はサーバ20に送信するパケットを生成する処理、パケット送信先の端末のIPアドレスやポート番号を指定する処理、受信したパケットに含まれるデータを記憶部170に保存する処理、受信したパケットを解析する処理、その他のパケットの送受信に関する制御処理等を行う。
【0085】
また本実施形態の通信制御部118は、複数の端末間、又はサーバ20においての接続(第1の端末と第2の端末との接続)が確立されてから接続が切断されるまで、データを所定周期(例えば、1秒周期で)互いに送受信する処理を行う。ここで、端末間で送受信されるデータは、入力部の入力情報としてもよいし、各端末の操作対象のオブジェクト(機体、移動体)の位置情報、移動情報としてもよい。
【0086】
また、本実施形態の通信制御部118は、他の端末(第2の端末)又はサーバ20から送信されたパケットを受信すると、受信したパケットを解析し、パケットに含まれる他の端末の操作対象のオブジェクトの位置情報などのデータを記憶部に記憶する処理を行う。
【0087】
なお、複数の端末で構成されるネットワークシステムの場合は、複数の端末間でデータの送受信を行いながらオンラインゲームを実行するピア・ツー・ピア(いわゆるP2P)方式としてもよいし、サーバ20を介して各端末がデータ(情報)の送受信を行いながらオンラインゲームを実行するクライアント・サーバ方式によるものであってもよい。また、本実施形態のネットワークシステムでは、有線通信のみならず無線通信でデータを送受信してもよい。
【0088】
描画部120は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。言い換えると、描画部120は、オブジェクト空間において、仮想カメラから見える画像を生成する。
【0089】
例えば、描画部120は、オブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0090】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、透視変換(投影変換)、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。
【0091】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を画像バッファ172(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット、フレームバッファ)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0092】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0093】
そして描画部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0094】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、記憶部170に保存される。
【0095】
テクスチャマッピングは、記憶部170に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0096】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0097】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0098】
例えば、αブレンディングでは、これから画像バッファ172に描画する描画色(上書きする色)C1と、既に画像バッファ172(レンダリングターゲット)に描画されている描画色(下地の色)C2とを、α値に基づいて線形合成処理を行う。つまり、最終的な描画色をCとすると、C=C1*α+C2*(1−α)によって求めることができる。
【0099】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0100】
なお、描画部120が、第1の移動体と第2の移動体との距離に応じて変化するマーカを含む画像を生成するようにしてもよい。また、描画部120が、所定条件を満たす場合に、第1の特殊コマンドの入力を指示する画像を生成するようにしてもよい。
【0101】
また、描画部120が、オブジェクト空間において、仮想カメラから見える画像を生成する。また、描画部120は、他の端末(第2の端末)とネットワークを介してデータを送受信するマルチプレーヤオンラインゲームを行う場合は、端末(第1の端末)の操作対象のオブジェクトの移動に追従する仮想カメラ(端末(第1の端末)で制御される仮想カメラ)から見える画像を生成する処理を行う。つまり、各端末が独立した描画処理を行う。
【0102】
描画部120が、第1の特殊コマンドの入力情報を受け付けた場合には、第1の仮想カメラ情報(例えば、第1の移動体の挙動に追従する仮想カメラ情報)と、第2の仮想カメラ情報(例えば、攻守交替マニューバの移動経路を注視する仮想カメラ情報)とに基づいて、画像を生成するようにしてもよい。
【0103】
音処理部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0104】
なお、本実施形態の端末は、1人のプレーヤのみがプレイできるシングルプレーヤモード、或いは、複数のプレーヤがプレイできるマルチプレーヤモードでゲームプレイできるように制御してもよい。
【0105】
例えば、マルチプレーヤモードで制御する場合には、ネットワークを介して他の端末とデータを送受信してゲーム処理を行うようにしてもよい。1つの端末が、複数の入力部からの入力情報に基づいて処理を行うようにしてもよい。
【0106】
2.概要
本実施形態は、プレーヤの操作対象の移動体OB1と、コンピュータオブジェクト或いは他のプレーヤのオブジェクトである移動体OB2と、互いにミサイルや機関砲などで攻撃し合うフライトシューティングゲームに関するものである。
【0107】
つまり、本実施形態では、移動体OB1と移動体OB2が互いに相手をターゲットオブジェクト(標的)とし、互いにミサイルや機関砲を発射してターゲットオブジェクトを撃墜させるゲーム処理を行う。したがって、移動体OB1を操作するプレーヤは、移動体OB1から発射されるミサイルや機関砲を移動体OB2にヒットさせるように攻撃操作を行い、移動体OB2から発射されるミサイル等の攻撃から回避するように移動体OB1を移動させる操作を行う。
【0108】
ところで、このようなシューティングゲームでは、移動体OB1の機軸に合わせて装備された機銃、ミサイルなどを用いて移動体OB2を攻撃する場合には、移動体OB1を移動体OB2の背後に配置させて攻撃操作を行うことが有効である。また、逆に、移動体OB2に移動体OB1の背後をとられてしまうと、敵からの攻撃を受け易くなるため、移動体OB2に背後を取られないように逃げる操作を行うことが有効である。つまり、移動体OB2に移動体OB1の背後をとられてしまう場合には、プレーヤは移動体OB1を旋回させたり、ターンさせたりして逃げる操作を行うことが従来のゲームでは一般的であった。
【0109】
しかし、移動体OB2に追尾された場合に、単純に逃げる操作を行うだけでは、移動体OB1と移動体OB2とのせめぎ合いがなくシューティングゲームの面白みに欠けるものがある。
【0110】
そこで、本実施形態では、図3に示すように、移動体OB1が、移動体OB2に追尾されている場合において、所定条件を満たす場合に、移動体OB1を操作する第1のプレーヤから第1の特殊コマンド(攻守交替コマンド)を受け付け、第1の特殊コマンドを受け付けた場合には、移動体OB1が移動体OB2を追尾する位置(移動体OB1が移動体OB2の背後の位置)に、移動体OB1を自動的に移動させる制御を行う。このようにすれば、移動体OB1、移動体OB2において白熱した対戦を行うことが可能なシューティングゲームを提供できる
3.第1の特殊コマンド(攻守交替コマンド)の説明
本実施形態では、所定条件を満たす場合に、第1の特殊コマンド(攻守交替コマンド)の入力情報を受け付けた場合に、移動体制御用の入力情報によらずに、第1の移動体が第2の移動体を追尾する位置に、第1の移動体を移動させる処理を行っている。
【0111】
例えば、図3に示すように、T1時点で移動体OB1(第1の移動体)が、移動体OB2(第2の移動体)に追尾されている場合であって、移動体OB1と移動体OB2との距離が第2の所定距離L2以内(例えば、300メートル以内)であるとする。
【0112】
そして、本実施形態では、例えば、移動体OB1が減速して、移動体OB1と移動体OB2との距離が第2の所定距離よりも短い第1の所定距離L1以内(例えば、100メートル以内)に狭まった場合に、所定条件を満たすと判断する。
【0113】
例えば、T2時点で所定条件を満たすと、移動体OB1を操作するプレーヤの入力部から第1の特殊コマンドの入力情報を受け付ける。そして、第1の特殊コマンドの入力情報を受け付けると、予め用意された移動ルート情報PD1に基づいて、移動体OB1を自動的に移動させる処理を行う。移動体OB1が移動ルート情報PD1を移動している期間、例えば、移動体OB2が前進すれば、移動体OB1は移動体OB2の背後をとることができ、移動体OB1は不利な立場から有利な立場に攻守の逆転を可能にすることができる。
【0114】
3.1 第1の特殊コマンドの発動条件(所定条件)
次に、本実施形態において、第1の特殊コマンドの発動条件である所定条件について説明する。まず、本実施形態では、近接戦闘モードDFM(ドッグファイトモード、クロスレンジアサルト、所定のモード)であることが、第1の特殊コマンドの発動するための少なくとも1つの条件となる。
【0115】
3.1.1 近接戦闘モードの説明
ここで、本実施形態の近接戦闘モードDFMについて説明する。本実施形態では、移動体OB1と移動体OB2の位置関係が近接戦闘モード発動条件を満たしたか否かを判定し、近接戦闘モード発動条件を満たしたと判定された場合に、近接戦闘モードが発動される。
【0116】
図4に示すように、移動体OB1には、円錐形状の第1の判定領域A1と、球形状の第2の判定領域B1が設定されている。同様に、移動体OB2には、円錐形状の第1の判定領域A2と、球形状の第2の判定領域B2が設定されている。第1の判定領域A1、A2は、機体(移動体OB1、移動体OB2)の前方に広がるように設定され、第2の判定領域B1、B2は、球形状の領域の中心が機体の後方に位置するように設定されている。移動体OB1と移動体OB2に設定される各判定領域は、各機体の特性(属性)によって、機体に対する設定位置や形状が異なるようにしてもよい。
【0117】
本実施形態では、移動体OB1の第2の判定領域B1内に移動体OB2が位置し、且つ移動体OB2の第1の判定領域A2内に移動体OB1が位置する場合(図4に示す場合)には、移動体OB1の後方に移動体OB2が接近していると判定され、「(移動体OB1が逃げ側、移動体OB2が追う側)近接戦闘モード」が発動される。一方、移動体OB2の第2の判定領域B2内に移動体OB1が位置し、且つ移動体OB1の第1の判定領域A1内に移動体OB2が位置する場合には、移動体OB1の前方に移動体OB2が接近していると判定され、「(移動体OB1が追う側、移動体OB2が逃げ側)近接戦闘モード」が発動される。
【0118】
なお、本実施形態では、移動体OB2の第2の判定領域B2内に移動体OB1が位置し、且つ移動体OB1の第1の判定領域A1内に移動体OB2が位置する場合において、移動体OB1の前方に移動体OB2が接近していると判定された場合に、「(移動体OB1が追う側、移動体OB2が逃げ側)近接戦闘モード」のコマンドの入力情報を受け付けるようにしてもよい。そして、「(移動体OB1が追う側、移動体OB2が逃げ側)近接戦闘モード」のコマンドの入力情報を受け付けた場合に、「(移動体OB1が追う側、移動体OB2が逃げ側)近接戦闘モード」を発動するようにしてもよい。なお、「(移動体OB1が追う側、移動体OB2が逃げ側)近接戦闘モード」のコマンドの入力情報の有無に関係なく、発動条件を満たした場合に自動的に「(移動体OB1が追う側、移動体OB2が逃げ側)近接戦闘モード」を発動するようにしてもよい。
【0119】
また、本実施形態では、移動体OB1の第2の判定領域B1内に移動体OB2が位置し、且つ移動体OB2の第1の判定領域A2内に移動体OB1が位置する場合(図4に示す場合)には、「(移動体OB1が逃げ側、移動体OB2が追う側)近接戦闘モード」のコマンドの入力情報を受け付けた場合に、「(移動体OB1が逃げ側、移動体OB2が追う側)近接戦闘モード」を発動してもよい。なお、「(移動体OB1が逃げ側、移動体OB2が追う側)近接戦闘モード」のコマンドの入力情報の有無に関係なく、発動条件を満たした場合に自動的に「(移動体OB1が逃げ側、移動体OB2が追う側)近接戦闘モード」を発動するようにしてもよい。
【0120】
ここでは、移動体OB1に設定された判定領域と移動体OB2に設定された判定領域とを用いて位置関係の判定を行っているが、移動体OB1と移動体OB2いずれか一方に設定された判定領域のみを用いて位置関係の判定を行うようにしてもよい。
【0121】
また移動体OB1と移動体OB2の距離が所定の値以下になった場合に、近接戦闘モード発動条件を満たしたと判定するようにしてもよい。また、移動体OB1と移動体OB2とがオブジェクト空間に設定された所定の範囲(特殊なエリア)に入った場合に、近接戦闘モード発動条件を満たしたと判定するようにしてもよい。また、プレーヤによって所定の操作入力が行われた場合又は所定のゲームアイテムが使用された場合に、近接戦闘モード発動条件を満たしたと判定するようにしてもよい。
【0122】
そして、本実施形態では、移動体OB1が移動体OB2を追尾する、「移動体OB1が追う側、移動体OB2が逃げ側近接戦闘モード」では、移動体OB2の過去の移動軌跡に基づき移動体OB1を移動体OB2に追従させる追従制御が行われる。また、移動体OB1が移動体OB2に追尾される、「移動体OB1が逃げ側、移動体OB2が追う側の近接戦闘モード」では、移動体OB1の過去の移動軌跡に基づき移動体OB2を移動体OB1に追従させる追従制御が行われる。
【0123】
例えば、本実施形態の「近接戦闘モード」で、移動体OB2が移動体OB1を追尾する場合には、OB1の過去の移動軌跡を辿って(トレースして)、移動体OB2の位置を求める。例えば、過去(N−Mフレーム目(例えば、M=30))の移動体OB1の位置に基づき、Nフレーム目の移動体OB2の位置を求める。
【0124】
つまり、N−Mフレーム目の移動体OB1の位置に基づいて、移動体OB1と移動体OB2との距離Lが第1の所定距離L1(100メートル)より離れており、かつ第2の所定距離L2(例えば、300メートル)以内(L1<L≦L2)になるように、移動体OB2の位置を求める。
【0125】
例えば、Nフレーム目の移動体OB1の位置G1と、N−Mフレーム目の移動体OB1の位置G2との距離Lが、L1<L≦L2でない場合には、例えば、G1とG2を結ぶ線分上であって、L1<L≦L2となる所与の位置をNフレーム目の移動体OB2の位置とすればよい。なお、「近接戦闘モード」で、移動体OB1が移動体OB2を追尾する場合における移動体OB1の位置を求める場合も、同様に処理を行えばよい。
【0126】
3.1.2 距離の条件
そして、本実施形態では、移動体OB1が移動体OB2に追尾されている「(移動体OB1が逃げ側、移動体OB2が追う側)近接戦闘モード」ある場合において、移動体OB1と移動体OB2との距離Lが第1の所定距離L1以内(L≦L1<L2)になった場合に、所定条件を満たすと判断する。一方、移動体OB1と移動体OB2との距離Lが第1の所定距離L1より大きい(L1<L)場合は、所定条件を満たさないと判断する。
【0127】
つまり、近接戦闘モードが発動している場合は、移動体OB1、OB2との距離Lが第1の所定距離L1よりも大きくなるように(L1<Lとなるように)移動体OB2を制御している。したがって、本実施形態では、移動体OB1を操作するプレーヤは、第1の特殊コマンドの入力の機会を得るために、移動体OB1を減速させる操作を強いられることになる。要するに、本実施形態では、移動体OB1を操作するプレーヤに、敢えて移動体OB1を減速させて移動体OB2からの攻撃を受けやすくするリスクを与えてから、攻守交替の機会を得ることができるようにしている。このため、本実施形態では、移動体OB1、OB2の白熱した対戦可能なシューティングゲームを提供できる。
【0128】
3.1.3 機体の傾きの条件
また、本実施形態では、移動体OB1が移動体OB2に追尾されている「(移動体OB1が逃げ側、移動体OB2が追う側)近接戦闘モード」ある場合において、(1)移動体OB1と移動体OB2との距離Lが第1の所定距離L1以内(L≦L1)になった場合、(2)オブジェクト空間(ワールド座標系)における基準軸(ワールド座標系XZ平面に平行な軸)に対する移動体OB1の傾斜角度が所定角度内である場合に、所定条件を満たすと判断する。
【0129】
例えば、図5(A)に示すように、基準軸D1(ワールド座標系XZ平面に平行な軸)に対する移動体OB1の傾斜角度が0度であるとする。例えば、図5(B)(C)に示すように、例えば、移動体OB1がロールの挙動を行い、基準軸D1に対して移動体OB1の傾斜角度θが所定角度以内(例えば、所定角度を135度とする)である場合に、所定条件を満たすと判断する。一方、例えば、移動体OB1がロールの挙動を行い、基準軸D1に対して移動体OB1の傾斜角度θが所定角度を超えた場合には、所定条件を満たさないと判断する。
【0130】
また、図6(A)に示すように基準軸D2(ワールド座標系XZ平面に平行な軸)に対する移動体OB1の傾斜角度が0度であるとする。例えば、図6(B)(C)に示すように、例えば、移動体OB1がピッチアップ、ピッチダウンの挙動を行い、基準軸D2に対して移動体OB1の傾斜角度θが所定角度以内(例えば、所定角度を135度とする)である場合に、所定条件を満たすと判断する。一方、例えば、移動体OB1がピッチアップ、ピッチダウンの挙動を行い、基準軸D2に対して移動体OB1の傾斜角度θが所定角度を超えた場合には、所定条件を満たさないと判断する。
【0131】
なお、移動体OB1のロール挙動に対する所定角度と、移動体OB1のピッチアップ、ピッチダウンに対する所定角度とは異なる値としてもよい。
【0132】
つまり、本実施形態では、追われている移動体OB1が背面飛行など、特殊な飛行状態である場合や、移動体OB1が移動体OB2から逃げようと旋回しようとして傾けている場合などは、第1の特殊コマンドを実行できないように制御している。つまり、本実施形態では、移動体OB1を操作するプレーヤは、第1の特殊コマンドの入力の機会を得るために、移動体OB2からの攻撃を受けやすくするリスクを与えてから、攻守交替の機会を得ることができるようにしている。このため、本実施形態では、移動体OB1、OB2の白熱した対戦可能なシューティングゲームを提供できる。
【0133】
なお、本実施形態では、移動体OB1が移動体OB2に追尾されている「(移動体OB1が逃げ側、移動体OB2が追う側)近接戦闘モード」ある場合において、移動体OB1と移動体OB2との距離Lが第1の所定距離L1以内(L≦L1)にならないことがある。かかる場合には、移動体OB1を操作するプレーヤにストレスを与えかねない。
【0134】
そこで、本実施形態では、移動体OB1が移動体OB2に追尾されている「(移動体OB1が逃げ側、移動体OB2が追う側)近接戦闘モード」ある場合において、移動体OB1と移動体OB2との距離Lが第1の所定距離L1よりも長い場合(L1<L<L2)である期間が制限期間(例えば、10秒)以上維持された場合には、移動体OB1と移動体OB2との距離Lが第3の所定距離L3以内(例えば、200メートル以内)になった場合に、所定条件を満たすと判断するようにしてもよい。なお、第3の所定距離は、第2の所定距離よりも短く、第1の所定距離よりも長い関係(L1<L3<L2)にある。このようにすれば、プレーヤにストレスのないゲーム環境を提供できる。
【0135】
3.1.4 相対速度の条件
また、本実施形態では、移動体OB1と移動体OB2との相対速度が所定速度範囲内である場合に、所定条件を満たすと判断するようにしてもよい。
【0136】
つまり、本実施形態では、移動体OB1が移動体OB2に追尾されている「(移動体OB1が逃げ側、移動体OB2が追う側)近接戦闘モード」ある場合において、(1)移動体OB1と移動体OB2との距離Lが第1の所定距離L1以内(L≦L1)になった場合、(2)オブジェクト空間(ワールド座標系)における基準軸(ワールド座標系XZ平面に平行な軸)に対する移動体OB1の傾斜角度が所定角度内である場合、(3)移動体OB1と移動体OB2との相対速度が所定速度範囲内である場合に、所定条件を満たすと判断してもよい。
【0137】
例えば、所定速度範囲を、時速0キロメートル〜時速200キロメートルに設定したとする。すると、本実施形態では、例えば、移動体OB1と移動体OB2との相対速度が時速100キロメートルである場合には所定条件を満たすと判断し、一方、移動体OB1と移動体OB2との相対速度が時速300キロメートルである場合には、所定条件を満たさないと判断する。
【0138】
このように、移動体OB1と移動体OB2との相対速度が所定速度範囲内であることを所定条件を満たすための1つの条件とするので、移動体OB1と移動体OB2との位置関係が適切に維持されている状況下で、移動体OB1に攻撃の機会を与えることができる。
【0139】
3.1.5 衝突判定の条件
また、本実施形態では、移動体OB1の傾斜角度及び移動速度(スピード)の少なくとも一方に基づき、現時点から特定期間後(例えば、5秒後)に、移動体OB1が地面や障害物に衝突(ヒット)するか否かを予測判断する処理を行い、現時点から特定期間後に、移動体OB1が地面や障害物に衝突すると予測判断された場合には、所定条件を満たさないと判断し、一方、現時点から特定期間後に、移動体OB1が地面や障害物に衝突しないと予測判断された場合には、所定条件を満たすと判断してもよい。
【0140】
つまり、本実施形態では、移動体OB1が移動体OB2に追尾されている「(移動体OB1が逃げ側、移動体OB2が追う側)近接戦闘モード」ある場合において、(1)移動体OB1と移動体OB2との距離Lが第1の所定距離L1以内(L≦L1)になった場合、(2)オブジェクト空間(ワールド座標系)における基準軸(ワールド座標系XZ平面に平行な軸)に対する移動体OB1の傾斜角度が所定角度内である場合、(3)移動体OB1と移動体OB2との相対速度が所定速度範囲内である場合、(4)現時点から特定期間後に、移動体OB1が地面や障害物に衝突しないと予測判断された場合に、所定条件を満たすと判断してもよい。このようにすれば、移動体OB1が、地面や障害物に衝突する事態を回避することができる。
【0141】
3.1.6 第1の特殊コマンドの受け付け期間
また、本実施形態では、所定条件を満たす期間が第1の所定期間K1継続した後に、第1の特殊コマンドの入力情報を受け付けるように制御する。
【0142】
例えば、図7に示すように、T10時点から移動体OB1が移動体OB2に追尾されている「(移動体OB1が逃げ側、移動体OB2が追う側)近接戦闘モード」が発動される。そして、T11時点から、(1)移動体OB1と移動体OB2との距離Lが第1の所定距離L1以内(L≦L1)になった場合、(2)オブジェクト空間(ワールド座標系)における基準軸(ワールド座標系XZ平面に平行な軸)に対する移動体OB1の傾斜角度が所定角度内である場合、(3)移動体OB1と移動体OB2との相対速度が所定速度範囲内である場合、(4)現時点から特定期間後に、移動体OB1が地面や障害物に衝突しないと予測判断された場合に、所定条件を満たすと判断する。
【0143】
本実施形態では、所定条件を始めて満たした時点から第1の所定期間K1を経過する時点までの期間(T11〜T12の期間)は、第1の特殊コマンドの入力情報を受け付けないようにし、所定条件を満たす期間が第1の所定期間K1継続した後に、第1の特殊コマンドの入力情報を受け付けるように制御する。例えば、図7の例では、T12時点から第1の特殊コマンドの入力情報を受け付ける。そして、T12時点以後は、所定条件を満たす限りにおいて第1の特殊コマンドの入力情報を受け付ける。
【0144】
したがって、本実施形態では、第1の所定期間K1の期間は、移動体OB1は敵の移動体OB2からの攻撃を受け易くなりリスクが伴う。しかしながら、T12時点以後は、第1の特殊コマンドの入力が受け付けられ、移動体OB1、OB2の攻守交替が可能となる機会が到来する。このように、本実施形態では、移動体OB1がリスクを負わなければならない状況を作り出すことができるので、より白熱した対戦を実現できる。なお、本実施形態では、第1の所定期間K1を可変にしてもよい。
【0145】
なお、本実施形態では、第1の所定期間K1を設定しないようにしてもよい。つまり、本実施形態では、所定条件を満たすと判断される期間において、常に第1の特殊コマンドの入力情報を受け付けるように制御してもよい。
【0146】
3.1.7 その他
本実施形態では、近接戦闘モードDFMでない場合においても、(1)移動体OB1と移動体OB2との距離Lが第1の所定距離L1以内(L≦L1)である条件(2)オブジェクト空間(ワールド座標系)における基準軸(ワールド座標系XZ平面に平行な軸)に対する移動体OB1の傾斜角度が所定角度内である条件、(3)移動体OB1と移動体OB2との相対速度が所定速度範囲内である条件、(4)現時点から特定期間後に、移動体OB1が地面や障害物に衝突しないと予測判断される条件のうち、少なくとも一つの条件を満たした場合に、第1の特殊コマンドを発動するための所定条件を満たすと判断してもよい。また、本実施形態では、第1の所定期間K1に関係なく、上記(1)(2)(3)(4)のうち少なくとも1つの条件を満たしている期間において、第1の特殊コマンドを受け付けるようにしてもよい。また、第1の特殊コマンドの受け付け期間を例えば、所定の期間(例えば、3秒)に制限してもよい。
【0147】
また、本実施形態では、移動体OB1が移動体OB2に追尾されている「(移動体OB1が逃げ側、移動体OB2が追う側)近接戦闘モード」の発動条件を満たした時点から、特定の期間(例えば、3秒間)を経過した後に、所定条件を満たしているか否かの判断処理を行うようにしてもよい。
【0148】
3.2 第1の特殊コマンド(攻守交替コマンド)の実行処理
次に、第1の特殊コマンドの実行処理について説明する。本実施形態では、特殊コマンドを受け付けると、複数種類のマニューバ(クイックループ、バレルロール、コブラ、クルビット等)マニューバのうちいずれか1つの攻守交替マニューバを決定する処理を行う。具体的には、第1の特殊コマンドの入力情報を受け付ける際に、攻守交替マニューバを選択する入力情報を受け付け、受け付けた選択された入力情報に基づき、攻守交替マニューバを決定する。なお、マニューバとは、特殊飛行を示し、戦闘機などの移動体が、空中で行う動き方のことである。例えば、宙返りをするクイックループ、バレルロール、コブラ、クルビット等の種々の動き方がある。本実施形態ではマニューバの軌道にあわせて移動体を移動させるので、プレーヤを惹き付けるゲームを実現することができる。
【0149】
例えば、図8に示すように、方向キーの入力情報「右」、「左」、「上」、「下」それぞれに対応づけて攻守交替マニューバが対応づけられている。例えば、第1の特殊コマンドの入力情報を受け付けと同時に方向キー「右」の入力情報を受け付けると、図3に示すように、クイックループの移動ルート情報PD1に基づいて、オブジェクト空間における移動体OB1の挙動(位置、向き、移動方向、移動速度などの移動情報)を演算し、演算された挙動に基づいて移動体OB1を移動させる。
【0150】
なお、移動ルート情報PD1は、記憶部170に記憶されている予め定義されたモーション(アニメーション)であり、位置、向き、移動速度などの移動情報である。本実施形態では、移動ルート情報PD1をオブジェクト空間の座標系に座標変換等を行い、移動体OB1を移動させる。
【0151】
また、移動ルート情報PD1によって、移動体OB1が移動している期間は、敵である移動体OB2は、移動体OB1との近接戦闘モードが終了し追従機能が解除される。移動体OB2が、コンピュータプログラムで制御されるノンプレーヤキャラクターである場合には、図3に示すように、移動体OB2を直進させるように制御してもよい。
【0152】
また、移動体OB1が移動している期間は、移動体OB2を直進させずに移動させてもよい。例えば、他のプレーヤの移動体制御用の入力情報に基づいて移動体OB2を制御している場合には、図9(A)に示すように、T20時点で特殊コマンドを実行することによって、移動体OB1が攻守交替マニューバの移動ルート情報に基づきを移動している最中に、移動体OB2が逃避する場合がある。例えば、移動体OB1の攻守交替マニューバの移動の終了時(T21時点)において、移動体OB2の向きV2が、移動体OB1の向きV1と異なる場合、移動体OB1は攻撃することが困難となる。
【0153】
そこで、本実施形態では、移動体OB1の攻守交替マニューバの移動の終了時(T21時点)において、移動体OB2の方角を向くように、移動体OB1の向きV1を補正するようにする。例えば、移動体OB1の位置P1から移動体OB2の位置Q1への向きを、移動体OB1の向きV1として設定してもよい。また、移動体OB1の向きV1が、移動体OB2の向きV2と平行となるように、移動体OB1の向きを設定してもよい。
【0154】
なお、本実施形態では、図3に示すように、移動体OB1と移動体OB2との追尾関係が逆になる。「(移動体OB1が追う側、移動体OB2が逃げ側)近接戦闘モード」の発動条件を満たす場合には、「(移動体OB1が追う側、移動体OB2が逃げ側)近接戦闘モード」を発動させる。
【0155】
なお、図3に示すように、第1の特殊コマンドを実行することによって、移動体OB1が逃げて逆に移動体OB2の背後をとると、移動体OB2にとっては有利な状況であったにもかかわらず移動体OB1の攻撃に失敗したことになる。本実施形態では、移動体OB2に、ペナルティとして移動体OB2の挙動を所定の制限時間において制限する。
【0156】
つまり、「(移動体OB1が逃げ側、移動体OB2が追う側)近接戦闘モード」において、移動体OB1が逃げて近接戦闘モードが解除されると、移動体OB2の機軸周りの回転であるロールに関する回転速度を減速させ、回転角度を所定角度(例えば、10度)に制限する。また、移動体OB2の上昇角度(ピッチアップ)、下降角度(ピッチダウン)、ヨー(移動体を水平に保ちながら移動方向を変更する)の単位時間あたりの変更角度を制限する。このようにすれば、図3のT4時点のように、移動体OB2の背後をとった移動体OB1は容易に移動体OB2を攻撃し易くなる。
【0157】
3.3 画像生成処理
3.3.1 近接戦闘モードにおける画像生成処理
次に、本実施形態の画像生成処理について説明する。図10(A)(B)(C)は、「(移動体OB1が逃げ側、移動体OB2が追う側)近接戦闘モード」における、移動体OB1を操作する端末10に表示される画像の一例である。
【0158】
例えば、図10(A)に示すように、移動体OB1が逃げ側、移動体OB2が追う側の近接戦闘モード時には、移動体OB1に対するマーカMKが表示される。そして、図10(B)に示すように、移動体OB1の位置(例えば、移動体OB1の中心点又は代表点の位置)がマーカMKの表示範囲内に入ると、マーカMKの内周側にゲージGAが表示される。ゲージGAは、移動体OB1がマーカMK内に位置する時間の経過に従ってその値が増加するように表示され、移動体OB1がマーカMK内に位置しなくなった場合にリセットされる(ゲージGAの値が0になる)。なお、移動体OB1がマーカMK内に位置しなくなった場合にゲージGAの値を所定値だけ減少させるようにしてもよい。また、移動体OB1がマーカMK内に位置しない時間の経過に従ってゲージGAの値を減少させるようにしてもよい。
【0159】
図10(C)に示すように、移動体OB1がマーカMK内に位置する時間が所定時間(例えば、0.5秒)に達してゲージGAの値が最大値となると、移動体OB1が移動体OB2にロックオンされるロックオン状態となる。このロックオン状態になると、移動体OB2から通常の誘導ミサイルよりも誘導性能の高い誘導ミサイル(特殊武器)が発射され、発射された誘導ミサイルは、高確率で移動体OB1に着弾することになる。
【0160】
移動体OB1を操作するプレーヤは、移動体OB1に対するマーカMKによって、移動体OB1が移動体OB2の誘導ミサイルに狙われている様子を視覚的に把握することができ、また、マーカMKに表示されるゲージGAによって、ロックオン状態になるタイミングを視覚的に把握することができる。
【0161】
また移動体OB1を操作するプレーヤは、移動体OB1がマーカMK内に入らないように移動体OB1を移動させる操作を行うことで、或いは移動体OB1がマーカMK内に入っている場合には、マーカMKのゲージGAが最大値に達するまで(ロックオン状態になる前)に移動体OB1をマーカMK外に移動させる操作を行うことで、移動体OB2から誘導性能の高い誘導ミサイルが発射される事態を回避することができる。
【0162】
また、本実施形態では、移動体OB1と移動体OB2との距離に応じて変化するマーカMKを含む画像を生成する。すなわち、移動体OB1と移動体OB2の距離が近いほどマーカMKのサイズ(半径)が大きくなり、移動体OB1が移動体OB2から狙われ易くなる(マーカMKを回避し難くなる)。一方、移動体OB1と移動体OB2の距離が遠いほどマーカMKのサイズ(半径)が小さくなり、移動体OB1が移動体OB2から狙われ難くなる(マーカMKを回避し易くなる)。
【0163】
また、移動体OB1を操作するプレーヤは、例えば、移動体OB1を加速させる等の操作を行って移動体OB1と移動体OB2の距離を長くすることで、マーカMKのサイズを小さくし、移動体OB2から誘導性能の高い誘導ミサイルが発射される事態を回避することができる。
【0164】
3.3.2 第1の特殊コマンドの入力を指示する画像の生成処理
図11は、「(移動体OB1が逃げ側、移動体OB2が追う側)近接戦闘モード」において、所定条件を満たす場合に、第1の特殊コマンドの入力を指示する画像(移動体OB1を操作する端末10に表示される画像)の一例である。本実施形態では、Aボタンの入力情報を、第1の特殊コマンドの入力情報とし、Aボタンの入力情報を受け付けた場合に、第1の特殊コマンドを実行する。
【0165】
したがって、本実施形態では、特殊コマンドの受け付け期間(図7のT12〜T13の期間中)において、図11に示すように、画像の中央に、「A」の第1の特殊コマンドの入力指示マークMS1(第1の指示画像MS1)を含む画像を生成する。したがって、移動体OB1を操作するプレーヤは、移動体OB1は、移動体OB2にロックオン状態になるリスクがある点、また、第1の特殊コマンドを入力可能である点を、確実に知ることができる。
【0166】
3.3.3 攻守交替マニューバの画像
本実施形態では、移動体OB1の挙動に追従する仮想カメラを制御し、オブジェクト空間において、移動体OB1用の仮想カメラから見える画像を生成する。つまり、移動体OB1を制御する端末10の表示部には、移動体OB1用の仮想カメラから見える画像を生成する。
【0167】
ここで、本実施形態では、第1の特殊コマンドの入力情報を受け付けた場合において、端末10の仮想カメラ制御部117が、移動体OB1用の画像を生成する場合には、次のようにして画像生成処理を行う。すなわち、移動体OB1の挙動に追従する第1の仮想カメラ情報CD0と、移動体OB1が移動体OB2を追尾するまでの移動体OB1の移動ルート情報PD1に基づく攻守交替マニューバの移動経路を注視する第2の仮想カメラ情報と、を設定し、第1の特殊コマンドの入力情報を受け付けた場合には、第1の仮想カメラ情報CD0と、第2の仮想カメラ情報とに基づいて、画像を生成する。なお、仮想カメラ情報とは、視点位置、視線方向、移動方向、画角、回転(向き)の少なくとも1つの情報を含む。
【0168】
例えば、図12(A)に示すように、T30時点で移動体OB1を追従する仮想カメラCが、仮想カメラ情報CD0に基づいて画像を生成する。
【0169】
そして、T31時点で、第1の特殊コマンドの入力情報を受け付け、例えば、図8のクイックループの攻守交替マニューバの入力情報を受け付けると、当該入力情報に対応する移動ルート情報PD1、仮想カメラ情報CD1(第2の仮想カメラ情報の一例)を記憶部170(或いは、情報記憶媒体180)から読み出す。
【0170】
そして、本実施形態では、当該移動ルート情報PD1に基づき移動体OB1が移動制御されると共に、「クイックループ」による移動中は、仮想カメラ情報CD1に基づいて、移動体OB1を含む画像を生成する。
【0171】
例えば、図12(A)に示すように、第1の特殊コマンドの入力情報を受け付けると、第1の仮想カメラ情報CD0と第2の仮想カメラ情報CD1とを合成(例えば、線形合成)しながら、第2の仮想カメラ情報CD1に移行する。
【0172】
その後、第2の仮想カメラ情報CD1に基づき、移動体OB1の攻守交替マニューバの移動経路を注視する画像を生成する。そして、図12(B)に示すように、攻守交替マニューバの終了間際に、第2の仮想カメラ情報CD1と第1の仮想カメラ情報CD0とを合成(例えば、線形合成)しながら、第1の仮想カメラ情報CD0に移行する。そして、移動体OB1の攻守交替マニューバの移動が終了する時点T34では、仮想カメラ情報CD0に移行して画像を生成する。
【0173】
なお、移動体OB1の挙動に追従する仮想カメラ情報CD0の演算と、移動体OB1が移動体OB2を追尾するまでの移動体OB1の攻守交替マニューバの移動経路を注視する第2の仮想カメラ情報CD1の演算とを並列に演算処理してもよい。
【0174】
つまり、本実施形態では、記憶部170に記憶された、攻守交替マニューバに対応する移動ルート情報PD1の再生と、選択された攻守交替マニューバに対応する仮想カメラ情報CD1の再生とを行う。そして、仮想カメラ情報CD1の再生を開始する場合は、第1の特殊コマンドを受け付けた時点において、移動体OB1の挙動に追従する仮想カメラ情報CD0から、仮想カメラ情報CD1に移行させる場合には、仮想カメラ情報CD0、CD1を合成しながら再生する。また、仮想カメラ情報CD1の再生を終了する場合は、仮想カメラ情報CD0、CD1を合成しながら移動体OB1の挙動に追従する仮想カメラ情報CD0に移行させる。このようにすれば、シームレスなカメラ演出を行うことができる。
【0175】
なお、仮想カメラ情報CD0、CD1を合成せずに、仮想カメラ情報CD1の再生開始時点で、仮想カメラ情報をCD0からCD1に切り替え、再生終了時点で、仮想カメラ情報をCD1からCD0に切り替えてもよい。
【0176】
また、移動体OB1が攻守交替マニューバの移動経路を移動している期間は、ゲーム進行速度を減速させる(スローモーション)にするようにしてもよい。このようにすれば、プレーヤは、移動体OB1の特殊飛行の様子や追尾関係が逆転される様子をじっくりと確認することができる。
【0177】
3.4 処理の流れ
最後に、第1の特殊コマンドを実行するまでの処理の流れについて説明する。まず、移動体OB1が逃げ側、移動体OB2が追う側で近接戦闘モードが発動されたか否かを判断するステップS1。逃げ側近接戦闘モードが発動されていない場合ステップS1のNは、ステップS1を繰り返す。一方、逃げ側近接戦闘モードが発動されたステップS1のYの場合、所定条件を満たすか否かを判断する。例えば、逃げ側の移動体OB1と、追う側の移動体OB2との距離が所定距離以内であって、かつ、移動体OB1の傾きが所定角度以内であるか否かを判断する(ステップS2)。
【0178】
所定条件を満たさない場合(ステップS2のN)は、ステップS2を繰り返す。一方、所定条件を満たす場合(ステップS2のY)、第1の所定期間K1を経過したか否かを判断する(ステップS3)。
【0179】
第1の所定期間K1を経過すると(ステップS3のY)、第1の特殊コマンド攻守交替コマンドを受け付けたか否かを判断する(ステップS4)。そして、第1の特殊コマンド攻守交替コマンドを受け付けた場合(ステップS4のY)、第1の特殊コマンド(攻守交替コマンド)を実行する(ステップS5)。以上で処理が終了する。
【0180】
3.5 複数の移動体に追尾されている場合の説明
本実施形態では、移動体OB1が、複数の移動体OB2、OB3に追尾されている場合には、「移動体OB1」と、「移動体OB1に最も近接している移動体OB2」との関係に基づいて、第1の特殊コマンドの発動条件(所定条件)を満たすか否かを判断する。
【0181】
4.第2の特殊コマンド(敵追尾コマンド)の説明
本実施形態では、「(移動体OB1が追う側、移動体OB2が逃げ側)近接戦闘モード」において、所定条件を満たし第1の特殊コマンド(攻守交替コマンド)が実行されると、移動体OB1とOB2との追尾関係が逆となり、移動体OB1が追われる状況になることもある。
【0182】
例えば、移動体OB2がコンピュータプログラムによって制御されるノンプレーヤキャラクターNPCである場合には、所定条件を満たす場合に、コンピュータプログラムによって第1の特殊コマンドを実行し、移動体OB2が移動体OB1の背後をとるように制御される。また、第1の入力部或いは第1の端末10Aからの入力情報に基づき、移動体OB1を制御し、第2の入力部或いは第2の端末10Bからの入力情報に基づき、移動体OB2を制御するような対人戦の場合は、第2の入力部或いは第2の端末10Bからの第1の特殊コマンドの入力情報を実行することによって、移動体OB2が移動体OB1の背後をとることもある。
【0183】
本実施形態では、図14に示すように、T40時点において「(移動体OB1が追う側、移動体OB2が逃げ側)近接戦闘モード」において、所定条件を満たし第1の特殊コマンド(攻守交替コマンド)が実行されたとする。そして、T41時点に示すように、移動体OB1とOB2との追尾関係が逆になりそうな状況であっても、第2の特殊コマンド(敵追尾コマンド)の実行を行うことによって、移動体OB2が移動体OB1の背後を取らせないようする機会を、移動体OB1に与えるようにしている。
【0184】
つまり、第2の特殊コマンド(敵追尾コマンド)は、移動体制御用の入力情報によらずに、敵の移動体OB2の方角を向くように、移動体OB1の向きを制御するコマンドである。したがって、図14のT42時点に示すように、第2の特殊コマンドの入力を確実に行えば、移動体OB1が敵の移動体OB2の方角に自動的に向くので、移動体OB1を操作するプレーヤは、機銃やミサイルの射撃用入力を行うだけで簡易に敵機OB2を撃墜させることができる。このように、本実施形態では、移動体OB1が敵機OB2に背後を取られる前に攻撃の機会を与え、より白熱した対戦ゲームのプレイが可能となるようにしている。
【0185】
4.1 第2の特殊コマンド(敵追尾コマンド)の発動条件
次に、本実施形態において、第2の特殊コマンドの発動条件について説明する。まず、本実施形態では、移動体OB2が移動体OB1に追尾されている場合であって、移動体OB1と移動体OB2との距離が第1の所定距離L1以内である場合に、所与のタイミングで移動体OB2が移動体OB1を追尾する位置に、移動体OB2を移動させる第1の特殊コマンドを実行することが発動条件となる。
【0186】
そして、本実施形態では、第1の特殊コマンドの実行開始時点から第2の所定期間K2中に第2の特殊コマンドの入力情報を受け付け可能とする。例えば、図15に示すように、T51時点で第1の特殊コマンドの実行が開始されると、T51時点から第2の所定期間K2を第2の特殊コマンド受け付け期間とする。このように、本実施形態では、攻守交替マニューバの開始期間においてのみ、第2の特殊コマンドの入力を受け付けるので、移動体OB1を操作するプレーヤは、移動体OB1の攻撃の機会を得るために、第2の特殊コマンドの入力のタイミングを逃さないようにすることが重要となる。
【0187】
なお、第2の所定期間K2は固定でもよいし可変に設定してもよい。例えば、オンラインモード(ネットワークを介して複数の端末10又はサーバ20とデータ送受信を行ってゲーム処理を行うモード)では、通信ラグの影響により、相手方端末から第1の特殊コマンドの入力情報を受け付ける時点が遅延する傾向にある。
【0188】
したがって、オンラインモードでは第2の所定期間K2を0.5秒に設定し、オフラインモード(シングルプレーヤモード、1つの端末が、複数の入力部からの入力情報に基づいて処理を行うマルチプレーヤモードを含む)では、第2の所定期間K2を1秒にする等して、オンラインモードでは、オフラインモードよりも第2の所定期間K2を短期間に設定するようにしてもよい。
【0189】
4.2 第2の特殊コマンド(敵追尾コマンド)の実行処理
本実施形態では、図15に示すように、第2の特殊コマンドの入力情報を、第2の所定期間K2において受け付けた場合には、敵機である移動体OB2の方角を向くように、移動体OB1の向きを制御する(つまり、敵追尾を行うように制御する)。つまり、移動体制御用の入力情報によらずに、敵機である移動体OB2の方角を向くように、移動体OB1の向きを制御する。例えば、図14のT41時点に示すように、移動体OB1の位置P1と、移動体OB2の位置Q1とを結ぶ方向に、移動体OB1の向きV1を設定する。
【0190】
そして、図15のT54に示すように、移動体OB1を操作するプレーヤが、攻撃コマンドの入力を行うことによって、移動体OB2を攻撃し、移動体OB2の攻守交替を行う挙動を阻止することができる。例えば、射撃用入力情報に基づき、移動体OB1から機銃を発射させる。例えば、発射された弾が移動体OB2に命中すれば、移動体OB2は攻守交替に失敗することになる。なお、第2の特殊コマンドによって敵機を追尾する際の攻撃力を、通常戦闘時よりも大きくするようにしてもよい。
【0191】
なお、図16に示すように、第2の特殊コマンドの第2の所定期間K2において、移動体OB1を操作するプレーヤが、第2の特殊コマンドの入力を行わない場合には、自動的に、敵機である移動体OB2の方角を向くように、移動体OB1の向きを制御しない。したがって、移動体OB1は、追尾されないように逃げる操作等を行うことが必要となる。なお、移動体OB2は、移動体OB1の背後を取ることになる攻守交替が成功することになる。
【0192】
また、図17に示すように、第2の特殊コマンドの第2の所定期間K2において、移動体OB1を操作するプレーヤが、第2の特殊コマンドの入力を行ったとしても、移動体OB1が移動体OB2を攻撃しない場合は、移動体OB2の攻守交替が成功し、移動体OB1は、移動体OB2に背後をとられてしまう。したがって、移動体OB1は、第2の特殊コマンドの入力を第2の所定期間K2に行い、移動体OB1の向きが、移動体OB2の方角を向くように制御された後は、射撃用入力情報に基づき、移動体OB1から弾を発射させる。
【0193】
なお、図16、17に示すように、第2の所定期間中に第2の特殊コマンドの入力情報を受け付けなかった場合には、第1の移動体の挙動を、所定の制限時間において制限する。つまり、移動体OB1が移動体OB2を追尾する有利な立場であったにもかかわらず、その有利な立場を生かしきれなかった場合には、ペナルティとして移動体OB1の挙動が制限する。
【0194】
移動体OB1の挙動の制限とは、例えば、移動体OB1の機軸周りの回転であるロールに関する回転速度を減速させる処理、回転角度を所定角度(例えば、10度)に制限する処理等である。また、移動体OB1の上昇角度(ピッチアップ)、下降角度(ピッチダウン)、ヨー(移動体を水平に保ちながら移動方向を変更する)の単位時間あたりの変更角度を制限してもよい。また、移動体OB1の移動速度を制限(例えば、加速不可)にしてもよい。
【0195】
このようにすれば、移動体OB1が移動体OB2に追尾される状態となった場合により被弾されやすい状況を作り出すことができ、より白熱した戦闘が可能なゲームを提供できる。
【0196】
4.3 仮想カメラの制御
4.3.1 近接戦闘モードにおける画像生成処理
次に、本実施形態の画像生成処理について説明する。図18(A)(B)は、「(移動体OB1が追う側、移動体OB2が逃げ側)近接戦闘モード」における、移動体OB1を操作する端末10に表示される画像の一例である。
【0197】
例えば、図18(A)に示すように、近接戦闘モードが発動されると、マーカMKが表示される。例えば、マーカMKの表示範囲内に移動体OB2の位置が入ると、マーカMKの内周側にゲージGAが表示される。ゲージGAは、移動体OB2がマーカMK内に位置する時間の経過に従ってその値が増加するように表示され、移動体OB2がマーカMK内に位置しなくなった場合にリセットされる(ゲージGAの値が0になる)。なお、移動体OB2がマーカMK内に位置しなくなった場合にゲージGAの値を所定値だけ減少させるようにしてもよい。また、移動体OB2がマーカMK内に位置しない時間の経過に従ってゲージGAの値を減少させるようにしてもよい。
【0198】
図18(A)に示すように、移動体OB2がマーカMK内に位置する時間が所定時間(例えば、0.5秒)に達してゲージGAの値が最大値となると、移動体OB2が移動体OB1にロックオンされるロックオン状態となる。このロックオン状態になると、移動体OB1から通常の誘導ミサイルよりも誘導性能の高い誘導ミサイル(特殊武器)が発射され、発射された誘導ミサイルは、高確率で移動体OB2に着弾することになる。
【0199】
また、本実施形態では、移動体OB1と移動体OB2との距離に応じて変化するマーカMKを含む画像を生成する。すなわち、移動体OB1と移動体OB2の距離が近いほどマーカMKのサイズ(半径)が大きくなり、移動体OB2が移動体OB1から狙われ易くなる(マーカMKを回避し難くなる)。一方、移動体OB1と移動体OB2の距離が遠いほどマーカMKのサイズ(半径)が小さくなり、移動体OB2が移動体OB1から狙われ難くなる(マーカMKを回避し易くなる)。
【0200】
4.3.2 第2の特殊コマンドの入力を指示する画像の生成処理
図18(B)は、「(移動体OB1が追う側、移動体OB2が逃げ側)近接戦闘モード」において、第2の特殊コマンドの発動条件を満たすと、第2の特殊コマンドの入力を指示する画像(移動体OB1を操作する端末10に表示される画像)の一例である。本実施形態では、Bボタンの入力情報を、第2の特殊コマンドの入力情報とし、Bボタンの入力情報を受け付けた場合に、第2の特殊コマンドを実行する。
【0201】
したがって、本実施形態では、特殊コマンドを受け付ける第2の所定期間K2(図15のT51〜T53の期間中)において、図18(B)に示すように、画像の中央に、「B」の第2の特殊コマンドの入力指示マークMS2(第1の指示画像MS2)を含む画像を生成する。したがって、移動体OB1を操作するプレーヤは、第2の特殊コマンドを入力可能であることを確実に知ることができる。
【0202】
4.3.3 第2の特殊コマンド実行時、非実行時の画像生成処理の説明
本実施形態では、移動体OB1の挙動に追従する仮想カメラから見える画像を生成しているが、第2の所定期間K2中に第2の特殊コマンドの入力情報を受け付けた場合には、移動体OB1の向きに応じて、仮想カメラの視線方向を変化させるように制御する。
【0203】
図19は、第2の所定期間中に第2の特殊コマンドが受け付けられた場合における、仮想カメラCの制御について説明するための図である。例えば、図19に示すように、T80時点で移動体OB1を追従する仮想カメラCの仮想カメラ情報CD0に基づいて画像を生成する。
【0204】
そして、第1の特殊コマンドの実行により移動体OB2がクイックループの攻守交替マニューバによる移動が開始される。例えば、第2の所定期間中のT81時点に、第2の特殊コマンドを受け付けると、移動体OB1を移動体OB2の方角に移動体OB1の向きV1を設定する。そして、仮想カメラCの視線方向CVも移動体の向きV1と同じ方向に設定する。例えば、T82時点のように、移動体OB1が移動体OB2に対して射撃攻撃を行うと、撃墜時の迫力のある画像を生成することができる。
【0205】
図20は、第2の所定期間中に第2の特殊コマンドを受け付けなかった場合における、仮想カメラCの制御について説明するための図である。図20に示すように、T90時点で移動体OB1を追従する仮想カメラCの仮想カメラ情報CD0に基づいて画像を生成する。
【0206】
そして、第1の特殊コマンドの実行により移動体OB2がクイックループの攻守交替マニューバによる移動が開始される。本実施形態では、第2の所定期間中に第2の特殊コマンドを受け付けなかった場合には、T91に示すように、移動体OB2を注視するように仮想カメラCの視線方向を制御する。例えば、第1の特殊コマンド実行開始時から移動体OB1と移動体OB2との追尾関係が逆転するまでの間、移動体OB2を注視するように仮想カメラCの視線方向を制御する。移動体OB1と移動体OB2との追尾関係が逆転後は、仮想カメラの視線方向を、移動体OB1の向きに追従させればよい。
【0207】
また、図21は、第2の所定期間中に第2の特殊コマンドが受け付けたが、射撃攻撃に失敗した場合における、仮想カメラCの制御について説明するための図である。例えば、図21に示すように、T100時点で移動体OB1を追従する仮想カメラCの仮想カメラ情報CD0に基づいて画像を生成する。
【0208】
そして、第1の特殊コマンドの実行により移動体OB2がクイックループの攻守交替マニューバによる移動が開始される。例えば、第2の所定期間中のT101時点に、第2の特殊コマンドを受け付けると、移動体OB1を移動体OB2の方角に移動体OB1の向きV1を設定する。そして、仮想カメラCの視線方向CVも移動体の向きV1と同じ方向に設定する。
【0209】
しかし、T102時点のように、移動体OB1が移動体OB2に対して射撃攻撃を行わず、移動体OB1と移動体OB2との追尾関係が逆転した後は、仮想カメラの視線方向を、移動体OB1の向きに追従させる。
【0210】
なお、移動体OB1と移動体OB2との追尾関係が逆転したか否か判断は、移動体OB1、OB2の位置関係に基づき判断する。例えば、移動体OB1の進行方向に、移動体OB2の位置が移動体OB1の位置より後方に位置する場合に、移動体OB1と移動体OB2の追尾関係が逆転したと判断すればよい。
【0211】
また、移動体OB1の攻撃終了後(或いは、移動体OB2の攻守交替マニューバの移動が終了後)は、移動体OB1の挙動に追従する元の仮想カメラ制御に切り替えるようにする。仮想カメラ制御の切り替え時は、移動体OB1の挙動に追従する第1の仮想カメラ情報と、攻守交替マニューバの開始から終了(攻撃終了)までの第2の仮想カメラ情報とを並行に演算してもよい。そして、攻守交替マニューバの開始期間は、第1の仮想カメラ情報と第2の仮想カメラ情報とを合成(例えば、線形合成)して第2の仮想カメラ情報に移行し、攻守交替マニューバの終了期間(移動体OB2の攻撃終了期間)は、第1の仮想カメラ情報と第2の仮想カメラ情報とを合成(例えば、線形合成)して第1の仮想カメラ情報に移行するようにしてもよい。このようにすれば、シームレスなカメラ制御を行うことができる。以上のように、本実施形態では、従来にないカメラ演出を行うことができる。
【0212】
4.4 処理の流れ
最後に、図22を用いて、第2の特殊コマンドを実行するまでの処理の流れについて説明する。まず、追う側近接戦闘モード(移動体OB1が追う側、移動体OB2が逃げ側)が発動されたか否かを判断するステップS10。追う側近接戦闘モードが発動されていない場合ステップS10のNは、ステップS10を繰り返す。一方、追う側近接戦闘モードが発動されたステップS10のYの場合、第1の特殊コマンド(攻守交替コマンド)が実行されたか否かを判断する(ステップS11)。
【0213】
第1の特殊コマンドが実行されない場合(ステップS11のN)は、ステップS11を繰り返す。一方、第1の特殊コマンドが実行された場合(ステップS11のY)、第1の特殊コマンド実行時から第2の所定期間K2の間に第2の特殊コマンド(敵追尾コマンド)の入力情報を受け付けたか否かを判断する(ステップS12)。
【0214】
第1の特殊コマンド実行時から第2の所定期間K2の間に第2の特殊コマンド(敵追尾コマンド)の入力情報を受け付けた場合(ステップS12のY)、第2の特殊コマンド(敵追尾コマンド)を実行し(ステップS13)、処理を終了する。
【0215】
一方、第1の特殊コマンド実行時から第2の所定期間K2の間に第2の特殊コマンド(敵追尾コマンド)の入力情報を受け付けなかった場合は(ステップS12のN)、処理を終了する。
【0216】
4.5 その他
なお、本実施形態では、ノンプレーヤキャラクターNPCを移動体OB2とし、移動体OB1と移動体NPCとが対戦する場合には、第1の特殊コマンドを実行することを事前に予告するための予告処理を実行してもよい。そして、この予告処理の実行時を基準に第2の所定期間K2を設定してもよい。
【0217】
つまり、本実施形態では、移動体NPCが移動体OB1に追尾されている場合であって、移動体OB1と移動体NPCとの距離が第1の所定距離L1以内である場合に、T50時点で予告処理を実行し、その後、T51時点で第1の特殊コマンドを実行する。かかる場合、本実施形態では、予告処理を実行する時点T50から第2の所定期間K2中に、第2の特殊コマンドの入力情報を受け付け可能とするようにしてもよい。このようにすれば、実際に第1の特殊コマンドを実行する前から、第2の特殊コマンドの入力情報を受け付けることになるので、移動体OB1を操作するプレーヤは余裕をもって第2の特殊コマンドの入力操作を行うことができる。
【0218】
5.通信制御の説明
5.1 オンラインゲームの処理例1
本実施形態では、複数の端末とネットワークを介して相互にデータの送受信を行い、オンラインフライトシューティングゲームを実現可能としてもよい。つまり、本実施形態では、ピア・ツー・ピア方式のオンラインゲームに適用してもよい。
【0219】
図23及び図24は、本実施形態のネットワークシステムの構成を示す図である。例えば、本実施形態のネットワークシステムでは、複数の端末10A〜10Cの間で無線通信を行って、各端末10A〜10Cの所有者が対戦プレイや協力プレイを行うことができる。なお、本実施形態のネットワークシステムでは、複数の端末10A〜10Cの間で有線通信を行ってもよい。
【0220】
無線通信の態様としては、図23に示すように、各端末10A〜10Cが自律分散的にネットワークを構築し、直接的にゲーム情報等を含むパケットの送受信を行うアドホックモードと、図24に示すように、端末10AがアクセスポイントACSP1を介し、端末10B、10CがアクセスポイントACSP2を介して、間接的にゲーム情報等を含むパケットの送受信を行うインフラストラクチャモードとがある。インフラストラクチャモードでは、アクセスポイントACSP1又はASCP2を介してインターネットInet(公衆通信網)にアクセスすることができる。そして、各端末10A〜10Cは、インターネットInetに接続されたサーバ20との間でゲーム情報あるいはファームウェアのアップデート情報等を含むパケットを、アクセスポイントACSP1又はACSP2を介して送受信することができる。
【0221】
本実施形態のネットワークシステムは、端末10Aの移動体OB1が、他の端末10Bの移動体OB2を攻撃するゲーム演算を行うようにしてもよい。また、本実施形態のネットワークシステムは、複数の端末10A、10Bそれぞれの操作対象の移動体OB1、OB2によって構成される第1のグループと、複数の端末10C、10Dそれぞれの操作対象の移動体OB3、OB4によって構成される第2のグループとが対戦を行うゲーム演算を行うようにしてもよい。
【0222】
また、本実施形態では、各端末が相互にネットワークを介して移動情報等のデータに基づいて、端末のオブジェクト空間に配置される他の機体(他の端末を操作するプレーヤの操作対象の移動体)を移動・動作させる。つまり、各端末10は、ネットワークを介して、移動体の挙動(向き、移動方向、位置、移動速度)などを含むデータ、移動体制御用の入力情報、射撃用の入力情報、第1の特殊コマンドの入力情報、第2の特殊コマンドの入力情報などのデータを送受信する。
【0223】
例えば、描画のフレームレートで(例えば、1/60秒毎)、端末10Aが、端末10Aの操作対象の機体OB1の位置Pを端末10Bに送信する。一方、端末10Bにおいても、端末10Aと同じように、描画のフレームレートで端末10Bの操作対象の機体OB2の位置Qを端末10Aに送信する。
【0224】
また、各端末は、各端末のオブジェクト空間における仮想カメラから見える画像を、ゲーム画像として生成する処理を行う。従って、端末毎に、その端末が操作する移動体の挙動に応じた画像が生成される。
【0225】
5.2 オンラインゲームの処理例2
また、本実施形態では、クライアント・サーバ方式のオンラインゲームに適用してもよい。つまり、サーバ20が、端末10で行う一部の処理(例えば、処理部100の少なくとも1つの処理)を行うようにしてもよい。図25に示すように、サーバ20が、ネットワーク(例えば、インターネット)を介して複数の端末10A〜10Cと接続され、サーバ20が、端末10から入力情報を受信する。そして、サーバ20が、受信した入力情報に基づいて画像を生成し、生成した画像を端末10に送信してもよい。
【0226】
つまり、サーバ20は、シューティングゲームの処理を行うサーバであって、ネットワークを介して端末から移動体制御用の入力情報、第1の特殊コマンドの入力情報や第2の特殊コマンドの入力情報を、端末から受信する。
【0227】
そして、サーバ20は、移動体OB1を操作する端末10Aからの移動体制御用の入力情報に基づき移動体OB1から発射させた弾が移動体OB2に命中したか否かを判断し、移動体OB2から発射させた弾が移動体OB1に命中したか否かを判断し、各判断結果に基づきゲーム演算を行う。なお、移動体OB2は、ノンプレーヤキャラクターNPCであってもよいし、他の端末10Bからの移動体制御用の入力情報に基づき制御される移動体であってもよい。また、サーバ20は、オブジェクト空間において、端末10Aから受信した移動体制御用の入力情報に基づき移動体OB1を移動させる移動体制御を行う。
【0228】
そして、サーバ20は、移動体OB1が移動体OB2に追尾されている場合であって、移動体OB1と移動体OB2との距離が第1の所定距離以内である場合に、前記所定条件を満たすと判断し、所定条件を満たす場合に、第1の特殊コマンドの入力情報を受け付ける処理を行う。例えば、端末10Aから第1の特殊コマンドの入力情報を受信した場合に、第1の特殊コマンドの入力情報を受け付ける処理を行う。そして、サーバ20は、第1の特殊コマンドの入力情報を受け付けた場合に、端末10Aからの移動体制御用の入力情報によらずに、移動体OB1が移動体OB2を追尾する位置に、移動体OB1を移動させる。
【0229】
つまり、サーバ20は、上述した端末10と同様に、第1の特殊コマンドの発動条件を満たすか否かを判断し、第1の特殊コマンドの発動条件を満たす場合に、第1の特殊コマンドを実行する。また、サーバ20は、上述した端末10と同様に、第2の特殊コマンドの発動条件を満たすか否かを判断し、第2の特殊コマンドの発動条件を満たす場合に、第2の特殊コマンドを実行するようにしてもよい。
【0230】
なお、サーバ20は、上述した端末10と同様に、近接戦闘モードの発動条件を満たすか否かを判断し、近接戦闘モードの発動条件を満たす場合に、近接戦闘モードの発動させるようにしてもよい。
【0231】
6.立体視画像
また、本実施形態では、立体視画像に応用してもよい。すなわち、本実施形態の描画部120が、立体視のための左目用仮想カメラから見える左目用画像と、立体視のための右目用仮想カメラから見える右目用画像とを生成し、当該左目用画像と当該右目用画像とを合成して立体視用画像を生成する処理を行うようにしてもよい。
【0232】
ここで、立体視画像とは、人間の左右の眼の視線角度のずれ、輻輳、焦点距離(ピント調整)の生理的機能を利用して、立体物があるかのように感じることができる画像のことである。
【0233】
7.その他
本実施形態では、移動体の挙動に仮想カメラを追従させるように制御しているが、プレーヤの入力情報に基づき、機銃、ミサイル、特殊兵装などのアイテムの選択を受け付けると、移動体に対する相対的な仮想カメラの視点位置を、図2(A)〜(C)に示す通常戦闘時の仮想カメラ位置から、機銃、ミサイル、特殊兵装の位置(アイテムカメラ制御用の視点位置)に変更するようにしてもよい。
【0234】
また本発明は、業務用ゲームシステム等の種々のゲームシステムに適用できる。また、本実施形態では、フライトシューティンゲームに限らず、プレーヤの操作対象のプレーヤキャラクタが武器(拳銃)などを用いて、敵を攻撃するシューティングゲームに応用してもよい。
【0235】
また、本実施形態で行う移動体、仮想カメラの挙動制限処理は、シューティングゲームの他、アクションゲーム、ロールプレイングゲーム、対戦ゲーム、レースゲーム、音楽ゲーム、格闘ゲームなど種々のゲーム装置、ゲームを提供するサーバで行うようにしてもよい。
【0236】
なお、本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0237】
本発明は、実施の形態で説明した構成と実質的に同一の構成(例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成)を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。なお、本実施形態で説明した実施例は、自由に組み合わせることができる。
【符号の説明】
【0238】
100 処理部、110 受け付け部、111 オブジェクト空間設定部、
112 移動・動作処理部、112a 移動体制御部、
114 ヒット判定部、115 ゲーム演算部、
116 表示制御部、117 仮想カメラ制御部、118 通信制御部
120 描画部、130 音処理部、160 入力部、162 検出部、
170 記憶部、171 主記憶部、172 画像バッファ、
173 オブジェクトデータ記憶部、180 情報記憶媒体、190 表示部、
192 音出力部、196 通信部、
OB1 第1の移動体、OB2 第2の移動体、C 仮想カメラ

【特許請求の範囲】
【請求項1】
シューティングゲームの処理を行うプログラムであって、
オブジェクト空間において、移動体制御用の入力情報に基づき第1の移動体を移動させる移動体制御部と、
所定条件を満たす場合に、第1の特殊コマンドの入力情報を受け付ける受け付け部として、コンピュータを機能させ、
前記受け付け部が、
第1の移動体が第2の移動体に追尾されている場合であって、第1の移動体と第2の移動体との距離が第1の所定距離以内である場合に、前記所定条件を満たすと判断し、
前記移動体制御部が、
第1の特殊コマンドの入力情報を受け付けた場合に、移動体制御用の入力情報によらずに、第1の移動体が第2の移動体を追尾する位置に、第1の移動体を移動させることを特徴とするプログラム。
【請求項2】
請求項1において、
前記受け付け部が、
第1の移動体と第2の移動体との距離が第2の所定距離以内で第1の移動体が第2の移動体に追尾されている場合に、第1の移動体と第2の移動体との距離が第2の所定距離よりも短い第1の所定距離以内に狭まった場合に、前記所定条件を満たすと判断することを特徴とするプログラム。
【請求項3】
請求項1又は2において、
前記受け付け部が、
オブジェクト空間における基準軸に対する第1の移動体の傾斜角度が所定角度内である場合に、前記所定条件を満たすと判断することを特徴とするプログラム。
【請求項4】
請求項1〜3のいずれかにおいて、
前記受け付け部が、
第1の移動体と第2の移動体との相対速度が所定速度範囲内である場合に、前記所定条件を満たすと判断することを特徴とするプログラム。
【請求項5】
請求項1〜4のいずれかにおいて、
前記受け付け部が、
前記所定条件を満たす期間が第1の所定期間継続した後に、第1の特殊コマンドの入力情報を受け付けることを特徴とするプログラム。
【請求項6】
請求項1〜5のいずれかにおいて、
前記移動体制御部が、
第1の特殊コマンドの入力情報を受け付けた場合に、第2の移動体の方角を向くように、第1の移動体の向きを補正することを特徴とするプログラム。
【請求項7】
請求項1〜6のいずれかにおいて、
第1の移動体と第2の移動体との距離に応じて変化するマーカを含む画像を生成する描画部として、コンピュータを更に機能させ、
前記描画部が、
前記所定条件を満たす場合に、第1の特殊コマンドの入力を指示する画像を生成することを特徴とするプログラム。
【請求項8】
請求項1〜7のいずれかにおいて、
第1の移動体の挙動に追従する仮想カメラを制御する仮想カメラ制御部と、
オブジェクト空間において、前記仮想カメラから見える画像を生成する描画部として、コンピュータを更に機能させ、
前記仮想カメラ制御部が、
第1の特殊コマンドの入力情報を受け付けた場合には、
第1の移動体の挙動に追従する第1の仮想カメラ情報と、第1の移動体が第2の移動体を追尾するまでの第1の移動体の移動を注視する第2の仮想カメラ情報とを設定し、
前記描画部が、
第1の特殊コマンドの入力情報を受け付けた場合には、
前記第1の仮想カメラ情報と前記第2の仮想カメラ情報とに基づいて、画像を生成することを特徴とするプログラム。
【請求項9】
請求項1〜8のいずれかにおいて、
前記受け付け部が、
第2の移動体が第1の移動体に追尾されている場合に、第2の移動体が第1の移動体を追尾する位置に第2の移動体を移動させるための第1の特殊コマンドを実行する際に、当該第1の特殊コマンド実行開始時から第2の所定期間中に第2の特殊コマンドの入力情報を受け付け可能とし、
前記移動体制御部が、
第2の所定期間中に第2の特殊コマンドの入力情報を受け付けた場合には、第2の移動体の方角を向くように、第1の移動体の向きを制御することを特徴とするプログラム。
【請求項10】
請求項9において、
第1の移動体の挙動に追従する仮想カメラを制御する仮想カメラ制御部と、
オブジェクト空間において、前記仮想カメラから見える画像を生成する描画部として、コンピュータを更に機能させ、
前記仮想カメラ制御部が、
第2の所定期間中に第2の特殊コマンドの入力情報を受け付けた場合には、第1の移動体の向きに応じて、前記仮想カメラの視線方向を変化させることを特徴とするプログラム。
【請求項11】
請求項9又は10において、
前記移動体制御部が、
前記第2の所定期間中に第2の特殊コマンドの入力情報を受け付けなかった場合には、第1の移動体の挙動を制限することを特徴とするプログラム。
【請求項12】
請求項11において、
第1の移動体の挙動に追従する仮想カメラを制御する仮想カメラ制御部と、
オブジェクト空間において、前記仮想カメラから見える画像を生成する描画部として、コンピュータを更に機能させ、
前記仮想カメラ制御部が、
第2の所定期間中に第2の特殊コマンドを受け付けなかった場合には、第1の特殊コマンド実行開始時から第1の移動体と第2の移動体との追尾関係が逆転するまで、第2の移動体を注視するように、前記仮想カメラの視線方向を制御することを特徴とするプログラム。
【請求項13】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1〜12のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項14】
シューティングゲームの処理を行う端末であって、
オブジェクト空間において、移動体制御用の入力情報に基づき第1の移動体を移動させる移動体制御部と、
所定条件を満たす場合に、第1の特殊コマンドの入力情報を受け付ける受け付け部と、を含み、
前記受け付け部が、
第1の移動体が第2の移動体に追尾されている場合であって、第1の移動体と第2の移動体との距離が第1の所定距離以内である場合に、前記所定条件を満たすと判断し、
前記移動体制御部が、
第1の特殊コマンドの入力情報を受け付けた場合に、移動体制御用の入力情報によらずに、第1の移動体が第2の移動体を追尾する位置に、第1の移動体を移動させることを特徴とする端末。
【請求項15】
シューティングゲームの処理を行うサーバであって、
ネットワークを介して端末から移動体制御用の入力情報、第1の特殊コマンドの入力情報を受信する通信制御部と、
オブジェクト空間において、移動体制御用の入力情報に基づき第1の移動体を移動させる移動体制御部と、
所定条件を満たす場合に、第1の特殊コマンドの入力情報を受け付ける受け付け部と、を含み、
前記受け付け部が、
第1の移動体が第2の移動体に追尾されている場合であって、第1の移動体と第2の移動体との距離が第1の所定距離以内である場合に、前記所定条件を満たすと判断し、
前記移動体制御部が、
第1の特殊コマンドの入力情報を受け付けた場合に、移動体制御用の入力情報によらずに、第1の移動体が第2の移動体を追尾する位置に、第1の移動体を移動させることを特徴とするサーバ。

【図1】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図12(A)】
image rotate

【図12(B)】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図25】
image rotate

【図2】
image rotate

【図10】
image rotate

【図11】
image rotate

【図18】
image rotate

【図23】
image rotate

【図24】
image rotate


【公開番号】特開2012−210243(P2012−210243A)
【公開日】平成24年11月1日(2012.11.1)
【国際特許分類】
【出願番号】特願2011−76480(P2011−76480)
【出願日】平成23年3月30日(2011.3.30)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】