説明

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

【課題】移動体をターゲットオブジェクトの方向に容易に移動させることが可能なプログラム、情報記憶媒体、及びサーバを提供する。
【解決手段】移動体の前後方向を第1の軸とし、第1の軸回りに移動体を回転させる第1の入力情報と、移動体の左右方向を第2の軸とし、第2の軸回りに移動体を回転させる第2の入力情報と、移動体の上下方向を第3の軸とし、第3の軸回りに移動体を回転させる第3の入力情報とを個別に受け付け、第1の入力情報に基づき第1の軸回りに移動体を回転させる第1の回転処理と、第2の入力情報に基づき第2の軸回りに移動体を回転させる第2の回転処理と、第3の入力情報に基づき第3の軸回りに移動体を回転させる第3の回転処理とを行い、第2の入力情報に基づく第2の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第3の回転処理の少なくとも一方の補正処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、及びサーバに関する。
【背景技術】
【0002】
従来から、オブジェクト空間(仮想的3次元空間)内において仮想カメラ(所与の視点)から見える画像を生成する端末が知られており、いわゆる仮想現実を体験できるものとして人気が高い。例えば、移動体から発射されたミサイル、機関砲などを、ターゲットオブジェクトにヒットさせて攻撃を行うシューティングゲームのための端末が存在する(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平7−75689号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
このような従来の技術では、移動体の移動方向を制御する入力操作が困難であるという問題がある。
【0005】
例えば、移動体の前後方向を第1の軸とし、第1の入力情報に基づき第1の軸回りに移動体を回転させる第1の回転処理(ロール)と、移動体の左右方向を第2の軸とし、第2の入力情報に基づき第2の軸回りに移動体を回転させる第2の回転処理(ピッチ)と、移動体の上下方向を第3の軸とし、第3の入力情報に基づき第3の軸回りに移動体を回転させる第3の回転処理(ヨー)とを行わせる第1、第2、第3の入力情報を個別に受け付ける場合において、移動体を敵機の方向に近づけるための各回転操作が困難であるという問題が生じていた。
【0006】
具体的に説明すると、移動体を旋回させてターゲットオブジェクトに接近させるように移動方向を制御したい場合は、例えば、移動体をロールさせる操作の次に、移動体をピッチアップさせる操作を行う。操作に不慣れなプレーヤは、移動体をロールさせる操作に多少の回転誤差が生じてしまうので、その結果、ピッチアップさせた後の移動体は、プレーヤが想定していた方向とは異なる方向に移動してしまうことがあった。このように、従来の技術は、移動方向を制御するための入力操作は難易度が高いという難点があった。
【0007】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、移動体をターゲットオブジェクトの方向に容易に移動させることが可能なプログラム、情報記憶媒体、及びサーバを提供することにある。
【課題を解決するための手段】
【0008】
(1)本発明は、オブジェクト空間において、移動体を回転させて移動体の移動方向を制御するプログラムであって、移動体の前後方向を第1の軸とし、第1の軸回りに移動体を回転させる第1の入力情報と、移動体の左右方向を第2の軸とし、第2の軸回りに移動体を回転させる第2の入力情報と、移動体の上下方向を第3軸とし、第3の軸回りに移動体を回転させる第3の入力情報とを、個別に受け付ける受け付け部と、第1の入力情報に基づき第1の軸回りに移動体を回転させる第1の回転処理と、第2の入力情報に基づき第2の軸回りに移動体を回転させる第2の回転処理と、第3の入力情報に基づき第3の軸回りに移動体を回転させる第3の回転処理とを行う移動体制御部と、第1、第2、第3の回転処理のうち少なくとも1つを補正する補正処理を行う補正処理部と、オブジェクト空間における仮想カメラから見える画像を生成する描画部として、コンピュータを機能させ、前記補正処理部が、第2の入力情報に基づく第2の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第3の回転処理の少なくとも一方を、前記補正処理として行うプログラムに関する。また、本発明は、上記プログラムを記憶した情報記憶媒体に関する。
【0009】
ここで、第1の軸回りに移動体を回転させる第1の回転処理は、ロールであり、第2の軸回りに移動体を回転させる第2の回転処理は、ピッチであり、第3の軸回りに移動体を回転させる第3の回転処理は、ヨーである。
【0010】
本発明によれば、第2の入力情報に基づく第2の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第3の回転処理の少なくとも一方を、補正処理として行う(実行する)ので、入力操作に不慣れなプレーヤであっても、移動体とターゲットオブジェクトとの位置関係に応じた適切な移動方向になるように、プレーヤの入力操作を補助することができる。
【0011】
(2)また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、移動体の移動方向が、移動体とターゲットオブジェクトとを結ぶ方向に近づくように、第1の回転処理及び第3の回転処理の少なくとも一方を、前記補正処理として行うようにしてもよい。本発明によれば、移動体とターゲットオブジェクトとを結ぶ方向に近づくことができるようにプレーヤの入力操作を補助することができる。
【0012】
(3)また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度に応じて、補正処理として行う第1の回転処理及び第3の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。本発明によれば、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのとのなす角度に応じて、適切にプレーヤの入力操作を補助することができる。
【0013】
(4)また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、移動体の速度に応じて、補正処理として行う第1の回転処理及び第3の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。本発明によれば、移動体の速度に応じて、適切にプレーヤの入力操作を補助することができる。
【0014】
(5)また、本発明のプログラム、情報記憶媒体において、前記ターゲットオブジェクトが複数存在する場合には、前記移動体と各ターゲットオブジェクトとの位置関係に基づいて、一のターゲットオブジェクトを選択する処理を行う選択部として、コンピュータを機能させ、前記補正処理部が、移動体と選択されたターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第3の回転処理の少なくとも一方を、前記補正処理として行うようにしてもよい。本発明によれば、ターゲットオブジェクトが複数存在する場合には、移動体と各ターゲットオブジェクトとの位置関係に基づいて、適切にターゲットオブジェクトを選択することができる。
【0015】
(6)本発明は、オブジェクト空間において、移動体を回転させて移動体の移動方向を制御するプログラムであって、移動体の前後方向を第1の軸とし、第1の軸回りに移動体を回転させる第1の入力情報と、移動体の左右方向を第2の軸とし、第2の軸回りに移動体を回転させる第2の入力情報と、移動体の上下方向を第3軸とし、第3の軸回りに移動体を回転させる第3の入力情報とを、個別に受け付ける受け付け部と、第1の入力情報に基づき第1の軸回りに移動体を回転させる第1の回転処理と、第2の入力情報に基づき第2の軸回りに移動体を回転させる第2の回転処理と、第3の入力情報に基づき第3の軸回りに移動体を回転させる第3の回転処理とを行う移動体制御部と、第1、第2、第3の回転処理のうち少なくとも1つを補正する補正処理を行う補正処理部と、オブジェクト空間における仮想カメラから見える画像を生成する描画部として、コンピュータを機能させ、前記補正処理部が、第3の入力情報に基づく第3の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第2の回転処理の少なくとも一方を行うプログラムに関する。また、本発明は、上記プログラムを記憶した情報記憶媒体に関する。
【0016】
本発明によれば、第3の入力情報に基づく第3の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第2の回転処理の少なくとも一方を、補正処理として行う(実行する)ので、入力操作に不慣れなプレーヤであっても、移動体とターゲットオブジェクトとの位置関係に応じた適切な移動方向になるように、プレーヤの入力操作を補助することができる。
【0017】
(7)また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、移動体の移動方向が、移動体とターゲットオブジェクトとを結ぶ方向に近づくように、第1の回転処理及び第2の回転処理の少なくとも一方を、前記補正処理として行うようにしてもよい。本発明によれば、移動体とターゲットオブジェクトとを結ぶ方向に近づくことができるようにプレーヤの入力操作を補助することができる。
【0018】
(8)また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度に応じて、補正処理として行う第1の回転処理及び第2の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。本発明によれば、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのとのなす角度に応じて、適切にプレーヤの入力操作を補助することができる。
【0019】
(9)また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、移動体の速度に応じて、補正処理として行う第1の回転処理及び第2の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。本発明によれば、移動体の速度に応じて、適切にプレーヤの入力操作を補助することができる。
【0020】
(10)また、本発明のプログラム、情報記憶媒体において、前記ターゲットオブジェクトが複数存在する場合には、前記移動体と各ターゲットオブジェクトとの位置関係に基づいて、一のターゲットオブジェクトを選択する処理を行う選択部として、コンピュータを機能させ、前記補正処理部が、移動体と選択されたターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第2の回転処理の少なくとも一方を、前記補正処理として行うようにしてもよい。本発明によれば、ターゲットオブジェクトが複数存在する場合には、移動体と各ターゲットオブジェクトとの位置関係に基づいて、適切にターゲットオブジェクトを選択することができる。
【0021】
(11)また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、第1の入力情報を受け付けた場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第1の回転処理の補正処理を行うようにしてもよい。本発明によれば、移動体とターゲットオブジェクトとを結ぶ方向に近づくことができるように、プレーヤが行う第1の回転処理の入力操作を補助することができる。
【0022】
(12)また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、第1軸の回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第1の入力情報に基づく移動体の向きとのなす角度に応じて、第1の回転処理の回転量を変化させるようにしてもよい。本発明によれば、第1の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第1の入力情報に基づく移動体の向きとのなす角度に応じて、適切にプレーヤが行う第1の回転処理の入力操作を補助することができる。
【0023】
(13)また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、移動体の速度に応じて、第1の回転処理の回転量を変化させるようにしてもよい。本発明によれば、移動体の速度に応じて、適切にプレーヤが行う第1の回転処理の入力操作を補助することができる。
【0024】
(14)また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、第2の入力情報を受け付けた場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第2の回転処理の補正処理を行うようにしてもよい。本発明によれば、移動体とターゲットオブジェクトとを結ぶ方向に近づくことができるように、プレーヤが行う第2の回転処理の入力操作を補助することができる。
【0025】
(15)また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、第2軸の回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第2の入力情報に基づく移動体の向きとのなす角度に応じて、第2の回転処理の回転量を変化させるようにしてもよい。本発明によれば、第2の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第2の入力情報に基づく移動体の向きとのなす角度に応じて、適切にプレーヤが行う第2の回転処理の入力操作を補助することができる。
【0026】
(16)また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、移動体の速度に応じて、第2の回転処理の回転量を変化させるようにしてもよい。本発明によれば、移動体の速度に応じて、適切にプレーヤが行う第2の回転処理の入力操作を補助することができる。
【0027】
(17)また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、第3の入力情報を受け付けた場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第3の回転処理の補正処理を行うようにしてもよい。本発明によれば、移動体とターゲットオブジェクトとを結ぶ方向に近づくことができるように、プレーヤが行う第3の回転処理の入力操作を補助することができる。
【0028】
(18)また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、第3軸の回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第3の入力情報に基づく移動体の向きとのなす角度に応じて、第3の回転処理の回転量を変化させるようにしてもよい。本発明によれば、第3の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第3の入力情報に基づく移動体の向きとのなす角度に応じて、適切にプレーヤが行う第3の回転処理の入力操作を補助することができる。
【0029】
(19)また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、移動体の速度に応じて、第3の回転処理の回転量を変化させるようにしてもよい。本発明によれば、移動体の速度に応じて、適切にプレーヤが行う第3の回転処理の入力操作を補助することができる。
【0030】
(20)また、本発明のプログラム、情報記憶媒体において、前記描画部が、一人称視点によって前記移動体の指示表示物を含む画像を生成する処理を行う、又は、三人称視点によって前記移動体を含む画像を生成する処理を行うようにしてもよい。
【0031】
(21)本発明は、オブジェクト空間において、移動体を回転させて移動体の移動方向を制御するサーバであって、移動体の前後方向を第1の軸とし、第1の軸回りに移動体を回転させる第1の入力情報と、移動体の左右方向を第2の軸とし、第2の軸回りに移動体を回転させる第2の入力情報と、移動体の上下方向を第3軸とし、第3の軸回りに移動体を回転させる第3の入力情報とを、ネットワークを介して端末から受信する通信制御部と、第1の入力情報に基づき第1の軸回りに移動体を回転させる第1の回転処理と、第2の入力情報に基づき第2の軸回りに移動体を回転させる第2の回転処理と、第3の入力情報に基づき第3の軸回りに移動体を回転させる第3の回転処理とを行う移動体制御部と、第1、第2、第3の回転処理のうち少なくとも1つを補正する補正処理を行う補正処理部と、オブジェクト空間における仮想カメラから見える画像を生成する描画部と、を含み、前記補正処理部が、第2の入力情報に基づく第2の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第3の回転処理の少なくとも一方を、前記補正処理として行うサーバに関する。
【0032】
(22)本発明は、オブジェクト空間において、移動体を回転させて移動体の移動方向を制御するサーバであって、移動体の前後方向を第1の軸とし、第1の軸回りに移動体を回転させる第1の入力情報と、移動体の左右方向を第2の軸とし、第2の軸回りに移動体を回転させる第2の入力情報と、移動体の上下方向を第3軸とし、第3の軸回りに移動体を回転させる第3の入力情報とを、ネットワークを介して端末から受信する通信制御部と、第1の入力情報に基づき第1の軸回りに移動体を回転させる第1の回転処理と、第2の入力情報に基づき第2の軸回りに移動体を回転させる第2の回転処理と、第3の入力情報に基づき第3の軸回りに移動体を回転させる第3の回転処理とを行う移動体制御部と、第1、第2、第3の回転処理のうち少なくとも1つを補正する補正処理を行う補正処理部と、オブジェクト空間における仮想カメラから見える画像を生成する描画部と、を含み、前記補正処理部が、第3の入力情報に基づく第3の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第2の回転処理の少なくとも一方を行うサーバに関する。
【図面の簡単な説明】
【0033】
【図1】図1は、本実施形態の端末の構成の一例。
【図2】図2は、入力部の一例を示す図。
【図3】図3(A)〜(C)は、仮想カメラ制御の説明図。
【図4】図4(A)〜(C)は、第1の回転処理(ロール)の説明図。
【図5】図5(A)(B)は、第2の回転処理(ピッチ)の説明図。
【図6】図6(A)(B)は、第3の回転処理(ヨー)の説明図。
【図7】図7(A)〜(C)は、第1の回転処理の一例を説明するための図。
【図8】図8(A)〜(C)は、第1の回転処理の一例を説明するための図。
【図9】図9(A)〜(C)は、補正処理の説明図。
【図10】図10(A)〜(C)は、第1の回転処理の一例を説明するための図。
【図11】図11(A)〜(C)は、補正処理の説明図。
【図12】図12(A)(B)は、回転量の変化を説明するための図。
【図13】図13(A)〜(C)は、第2の回転処理の一例を説明するための図。
【図14】図14(A)〜(C)は、補正処理の説明図。
【図15】図15(A)(B)は、補正処理の説明図。
【図16】図16(A)〜(C)は、補正処理の説明図。
【図17】図17は、補正処理の説明図。
【図18】図18(A)(B)は、補正処理の説明図。
【図19】図19(A)(B)は、補正処理の説明図。
【図20】図20(A)(B)は、補正処理の説明図。
【図21】図21(A)(B)は、補正処理の説明図。
【図22】図22(A)(B)は、補正処理の説明図。
【図23】図23(A)(B)は、選択処理の説明図。
【図24】図24は、フローチャート。
【図25】図25は、補正処理の説明図。
【図26】図26は、補正処理の説明図。
【図27】図27は、補正処理の説明図。
【図28】図28は、ネットワークシステムの説明図。
【図29】図29は、ネットワークシステムの説明図。
【図30】図30は、ネットワークシステムの説明図。
【図31】図31は、サーバの構成図。
【発明を実施するための形態】
【0034】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0035】
1.構成
図1に本実施形態の端末10(画像生成装置、ゲーム装置、携帯電話、携帯端末、携帯型ゲーム装置、スマートフォン)の機能ブロック図の例を示す。なお本実施形態の端末は図1の構成要素(各部)の一部を省略した構成としてもよい。
【0036】
入力部160は、プレーヤ(操作者)からの入力情報を入力するための入力機器(コントローラ)であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部160は、プレーヤの入力情報(入力信号)を検出する検出部162を備える。入力部160は、例えば、アナログレバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどがある。また、入力部160は、振動信号に基づいて振動させる処理を行う振動部を備えていてもよい。
【0037】
また、入力部160は、3軸の加速度を検出する加速度センサや、角速度を検出するジャイロセンサ、撮像部を備えた入力機器でもよい。例えば、入力部160は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力部160は、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける(プレーヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られた入力機器でもよい。また入力部160は、入力機器と一体化されている端末(携帯電話、携帯端末、携帯型ゲーム装置、スマートフォン)なども含まれる。
【0038】
図2は、入力部160の一例である入力装置11を示す。例えば、入力装置11は、操作ボタンB1〜B4、LT、RT、LB、RB、上下左右の方向を示すボタンVP、アナログレバー(アナログスティック)LS、RSを含む。
【0039】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0040】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0041】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。
【0042】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0043】
通信部196は外部(例えば他の端末、サーバ)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0044】
なお、サーバ20が有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部170に記憶してもよい。このようにプログラムやデータを受信して端末を機能させる場合も本発明の範囲内に含む。
【0045】
処理部100(プロセッサ)は、入力部160からの入力データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【0046】
この処理部100は記憶部170内の主記憶部171をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0047】
処理部100は、受け付け部110、オブジェクト空間設定部111、移動・動作処理部112、補正処理部113、選択部114、ゲーム演算部115、表示制御部116、仮想カメラ制御部117、通信制御部118、描画部120、音処理部130を含む。なお、これらの一部を省略する構成としてもよい。
【0048】
受け付け部110は、プレーヤの入力情報を受け付ける処理を行う。例えば、移動体OB1(自機、第1のオブジェクト、プレーヤの操作対象のオブジェクト)の挙動を制御するための移動体制御用の入力情報を受け付ける処理や、自機から弾(ミサイル、機銃)を発射させる射撃用入力情報を受け付ける処理、アイテム(例えば、武器)の選択を受け付ける処理を行うようにしてもよい。
【0049】
特に、本実施形態の受け付け部110は、移動体(例えば、自機)の前後方向を第1の軸とし、第1の軸回りに移動体を回転させる第1の入力情報と、移動体の左右方向を第2の軸とし、第2の軸回りに移動体を回転させる第2の入力情報と、移動体の上下方向を第3軸とし、第3の軸回りに移動体を回転させる第3の入力情報とを、受け付ける処理を行う。本実施形態の受け付け部110は、第1、第2、第3の各入力情報を、それぞれ個別に受け付けるようにしている。例えば、受け付け部110は、右ロールの入力情報と、左ロールの入力情報と、ピッチアップの入力情報と、ピッチダウンの入力情報と、右ヨーの入力情報と、左ヨーの入力情報とを個別に受け付ける処理を行う。
【0050】
オブジェクト空間設定部111は、オブジェクトをオブジェクト空間(仮想的3次元空間)に配置する処理を行う。例えば、オブジェクト空間設定部111は、移動体OB1、ターゲットオブジェクトOB2(敵機、第2のオブジェクト、コンピュータプログラムに基づいて移動・動作、攻撃を行う移動体、ノンプレーヤキャラクターNPC、他のプレーヤの操作対象のオブジェクト)の他に、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を、オブジェクト空間に配置する処理を行う。ここでオブジェクト空間とは、仮想的なゲーム空間であり、例えば、ワールド座標系、仮想カメラ座標系のように、3次元座標(X,Y,Z)においてオブジェクトが配置される空間である。
【0051】
例えば、オブジェクト空間設定部111は、ワールド座標系にオブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)を配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)に基づき、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0052】
移動・動作処理部112は、オブジェクト空間にあるオブジェクトの移動・動作演算を行う。すなわち入力部160から受け付けた入力情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。
【0053】
移動体制御部112aは、オブジェクト空間において、移動体の挙動を制御する。移動体の挙動とは、移動体の移動・動作情報であり、移動体の回転(向きの変更)を含む。なお、移動体の挙動は、移動体の速度、加速度を含んでいてもよい。例えば、移動体制御部112aは、1フレーム(例えば、1/60秒)毎に移動体のモデル座標系のX軸、Y軸、Z軸回りの回転角度(向き)を求める。なお、フレームは、オブジェクトの移動・動作処理や画像生成処理を行う時間の単位である。
【0054】
特に、本実施形態の移動体制御部112aは、移動体を回転させて移動体の移動方向を制御する。例えば、移動体制御部112aは、第1の入力情報に基づき第1の軸回りに移動体を回転させる第1の回転処理(ロール)と、第2の入力情報に基づき第2の軸回りに移動体を回転させる第2の回転処理(ピッチ)と、第3の入力情報に基づき第3の軸回りに移動体を回転させる第3の回転処理(ヨー)とを行う。
【0055】
例えば、移動体制御部112aは、図2に示すように、アナログレバーLSの倒し方向と、傾斜角度値とを検出している。例えば、移動体制御部112aは、アナログレバーLSの倒し方向が右又は左(x軸方向)である場合は、傾斜角度値に基づき第1の回転処理(ロール)を行う。つまり、移動体制御部112aは、アナログレバーLSの倒し方向が右(x軸プラス)の所定角度値以上の傾斜角度値を検出した場合は、移動体を右回転のロールの挙動を行わせる。また、移動体制御部112aは、倒し方向が左(x軸マイナス)の所定角度値以上の傾斜角度値を検出した場合は、左回転のロールの挙動を行わせる。
【0056】
また、移動体制御部112aは、アナログレバーLSの倒し方向が上又は下(x軸方向)である場合は、傾斜角度値に基づき第2の回転処理(ピッチ)を行う。つまり、移動体制御部112aは、アナログレバーLSの倒し方向が上(z軸プラス)の所定角度値以上の傾斜角度値を検出した場合はピッチダウン、倒し方向が下(z軸マイナス)の所定角度値以上の傾斜角度値を検出した場合はピッチアップの処理を行わせる。
【0057】
また、移動体制御部112aは、RBボタンの入力信号(入力情報)を検出すると、第3の回転処理(右方向へのヨー)の処理を行う。また、移動体制御部112aは、LBボタンの入力信号(入力情報)を検出すると、第3の回転処理(左方向へのヨー)の処理を行う。
【0058】
また、移動体制御部112aは、LTボタンの入力信号(入力情報)を検出すると、移動体を減速させる処理を行い、RTボタンの入力信号(入力情報)を検出すると、移動体を加速させる処理を行う。
【0059】
なお、移動体制御部112aは、移動体から発射された弾(例えば、ミサイル、機関砲)がターゲットオブジェクトに追尾するように、弾の移動処理を行うようにしてもよい。
【0060】
なお、移動・動作処理部112は、他の端末とネットワークを介してデータを送受信している場合には、他の端末から受信した入力情報や他の機体の移動情報等のデータに基づいて、本端末10Aのオブジェクト空間に配置される他の移動体(他の端末を操作するプレーヤの操作対象の移動体)の挙動(移動・動作)を制御するようにしてもよい。
【0061】
補正処理部113は、第1、第2、第3の回転処理のうち少なくとも1つを補正する補正処理を行う。
【0062】
補正処理部113は、第2の入力情報に基づく第2の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第3の回転処理の少なくとも一方を、補正処理として行う。例えば、補正処理部113は、移動体の移動方向が、移動体とターゲットオブジェクトとを結ぶ方向に近づくように、第1の回転処理及び第3の回転処理の少なくとも一方を、補正処理として行う。なお、補正処理部113は、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度に応じて、補正処理として行う第1の回転処理及び第3の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。また、補正処理部113は、移動体の速度に応じて、補正処理として行う第1の回転処理及び第3の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。また、補正処理部113は、移動体と選択されたターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第3の回転処理の少なくとも一方を、補正処理として行うようにしてもよい。
【0063】
また、補正処理部113は、第3の入力情報に基づく第3の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第2の回転処理の少なくとも一方を、補正処理として行う。例えば、補正処理部113は、移動体の移動方向が、移動体とターゲットオブジェクトとを結ぶ方向に近づくように、第1の回転処理及び第2の回転処理の少なくとも一方を、補正処理として行う。なお、補正処理部113は、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度に応じて、補正処理として行う第1の回転処理及び第2の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。また、補正処理部113は、移動体の速度に応じて、補正処理として行う第1の回転処理及び第2の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。また、補正処理部113は、移動体と選択されたターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第2の回転処理の少なくとも一方を、補正処理として行うようにしてもよい。
【0064】
また、補正処理部113は、第1の入力情報を受け付けた場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第1の回転処理の補正処理を行う。例えば、補正処理部113は、第1の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第1の入力情報に基づく移動体の向きとのなす角度に応じて、第1の回転処理の回転量を変化させる。また、補正処理部113は、移動体の速度に応じて、第1の回転処理の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。
【0065】
また、補正処理部113は、第2の入力情報を受け付けた場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第2の回転処理の補正処理を行う。例えば、補正処理部113は、第2の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第2の入力情報に基づく移動体の向きとのなす角度に応じて、第2の回転処理の回転量を変化させる。また、補正処理部113は、移動体の速度に応じて、第2の回転処理の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。
【0066】
また、補正処理部113は、第3の入力情報を受け付けた場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第3の回転処理の補正処理を行う。例えば、補正処理部113は、第3の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第3の入力情報に基づく移動体の向きとのなす角度に応じて、第3の回転処理の回転量を変化させる。なお、補正処理部113は、移動体の速度に応じて、第3の回転処理の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。
【0067】
選択部114は、ターゲットオブジェクトが複数存在する場合に、移動体と各ターゲットオブジェクトとの位置関係に基づいて、一のターゲットオブジェクトを選択する処理を行う。
【0068】
ゲーム演算部115は、種々のゲーム処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などがある。
【0069】
本実施形態のゲーム演算部115は、各オブジェクト(移動体OB1、ターゲットオブジェクトOB2を含む)のパラメータを更新する処理を行う。本実施形態のゲーム演算部115では、弾が自機にヒットする度に、ダメージを蓄積したダメージ蓄積値Dを更新している。例えば、自機のダメージ蓄積値Dが最大値(D=100)になると、自機が撃墜したものとみなされ、ゲームを終了する処理を行う。一方、ゲーム中の全ての敵機のダメージ蓄積値Dが最大値になると、ゲームクリアと判定する処理を行う。
【0070】
なお、ゲーム演算部115は、第2のオブジェクト(例えば、ターゲットオブジェクトOB2)から発射された弾(例えば、ミサイル)が第1のオブジェクト(例えば、移動体OB1)にヒットしたか否かを判定する処理、第1のオブジェクトから発射された弾が第2のオブジェクトにヒットしたか否かを判定する処理を行うようにしてもよい。
【0071】
表示制御部116は、描画部120において生成された画像を表示部190に表示させる処理を行う。例えば、表示制御部116は、移動体(自機)の指示表示物(カーソル)を含む画像、又は、移動体(自機)を含む画像を表示させる処理を行う。なお、視界(ビューボリューム内)にターゲットオブジェクトが含まれる場合には、ターゲットオブジェクトを含む画像を表示させる処理を行う。
【0072】
仮想カメラ制御部117は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、3次元の画像を生成する場合には、ワールド座標系における仮想カメラの位置(X、Y、Z)、回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、仮想カメラ制御部117は、仮想カメラの視点位置、視線方向、画角、移動方向、移動速度の少なくとも1つを制御する処理を行う。
【0073】
特に、本実施形態の仮想カメラ制御部117は、移動体の挙動に追従する仮想カメラを制御する。例えば、図3(A)(B)に示す一人称視点、図3(C)に示す三人称視点(後方視点)によって、仮想カメラを制御する。一人称視点とは、移動体(自機)の位置を視点とするものであり、一人称視点の場合、オブジェクト空間において移動体から見た画像を生成する。また、三人称視点とは、移動体(自機)から離れた位置を視点とするものであり、三人称視点の場合、オブジェクト空間において移動体を俯瞰して見た画像を生成する。
【0074】
例えば、仮想カメラ制御部117は、移動・動作処理部112で得られたオブジェクトの位置、向き又は速度などの移動体の挙動(挙動情報)に基づいて、仮想カメラを制御する。つまり、本実施形態の仮想カメラ制御部117は、移動体の挙動に追従する仮想カメラを制御する。例えば、仮想カメラ制御部117は、ワールド座標において、移動体制御部112aで処理される移動体の挙動と仮想カメラの挙動とが所定の関係を保つように制御する。
【0075】
より具体的には、ワールド座標において、移動体制御部112aで処理される移動体の位置(移動体の中心点P)と仮想カメラの位置(CP)とが所定の位置関係を保つように制御する。例えば、移動体の位置(移動体の中心点P)と仮想カメラの位置(CP)とが、所定の距離を保つように制御する。また、移動体の移動方向及び移動速度と、仮想カメラの移動方向及び移動速度とが所定の関係を保つように制御する。例えば、移動体の移動方向と仮想カメラの移動方向が同一の方向になるように制御し、移動体の移動速度と仮想カメラの移動速度とが同一の速度になるように制御する。また、仮想カメラ制御部117は、移動体の向き(回転)と、仮想カメラの向き(回転)とが所定の関係を保つように仮想カメラの向き(視線方向)を制御する。例えば、移動体の向きと仮想カメラの向きとが同一の方向を向くように制御する。また、仮想カメラ制御部117は、移動体の回転方向、回転速度が所定の関係を保つように仮想カメラの回転方向、回転速度を制御する。例えば、移動体の回転方向、回転速度と仮想カメラの回転方向、回転速度とが同一になるように制御する。
【0076】
なお、仮想カメラ制御部117は、仮想カメラを予め決められた向きに設定し、予め決められた移動ルートで移動させる制御を行うようにしてもよい。例えば、仮想カメラの位置(移動経路)又は向きを制御するための仮想カメラデータ(記憶部170、情報記憶媒体180等に記憶されている仮想カメラデータ)に基づいて、仮想カメラを制御するようにしてもよい。
【0077】
また、仮想カメラ制御部117は、オブジェクト空間において所与の位置から見下ろすような俯瞰用仮想カメラを配置させて当該俯瞰用仮想カメラを制御するようにしてもよい。
【0078】
また、仮想カメラ制御部117は、リプレイ用で画像を生成するためのリプレイ用仮想カメラをオブジェクト空間に配置させて、当該リプレイ用仮想カメラを制御するように使用してもよい。リプレイ用仮想カメラは、移動体の移動に必ずしも追従させる必要はないが、移動体の移動情報に応じて、リプレイ用仮想カメラを制御するようにしてもよい。
【0079】
通信制御部118は、端末(例えば第1の端末)が他の端末(例えば第2の端末)又はサーバ20とネットワークを介して相互にデータを送受信する処理を行うようにしてもよい。
【0080】
なお、本実施形態の端末10では、通信制御で必要となるネットワーク情報をサーバから取得し、管理する処理等を行うようにしてもよい。例えば、端末は、各端末に個別に付与される端末の識別情報(オンラインゲームに参加できる端末を識別するために個別に付与されたデータ、ID)と、端末の識別情報に対応付けられたパケットの送信先を指定する宛先情報(IPアドレスなど)とを取得し、管理する処理を行うようにしてもよい。
【0081】
通信制御部118は、他の端末(第2の端末)又はサーバ20に送信するパケットを生成する処理、パケット送信先の端末のIPアドレスやポート番号を指定する処理、受信したパケットに含まれるデータを記憶部170に保存する処理、受信したパケットを解析する処理、その他のパケットの送受信に関する制御処理等を行う。
【0082】
また、本実施形態の通信制御部118は、複数の端末間、又はサーバ20においての接続(第1の端末と第2の端末との接続)が確立されてから接続が切断されるまで、データを所定周期(例えば、1秒周期で)互いに送受信する処理を行う。ここで、端末間で送受信されるデータは、入力部の入力情報としてもよいし、各端末の操作対象のオブジェクト(機体、移動体)の位置情報、移動情報としてもよい。
【0083】
また、本実施形態の通信制御部118は、他の端末(第2の端末)又はサーバ20から送信されたパケットを受信すると、受信したパケットを解析し、パケットに含まれる他の端末の操作対象のオブジェクトの位置情報などのデータを記憶部に記憶する処理を行う。
【0084】
なお、複数の端末で構成されるネットワークシステムの場合は、複数の端末間でデータの送受信を行いながらオンラインゲームを実行するピア・ツー・ピア(いわゆるP2P)方式としてもよいし、サーバ20を介して各端末がデータ(情報)の送受信を行いながらオンラインゲームを実行するクライアント・サーバ方式によるものであってもよい。また、本実施形態のネットワークシステムでは、有線通信のみならず無線通信でデータを送受信してもよい。
【0085】
特に、本実施形態の通信制御部118は、第1の軸回りに移動体を回転させる第1の入力情報と、第2の軸回りに移動体を回転させる第2の入力情報と、第3の軸回りに移動体を回転させる第3の入力情報とを、ネットワークを介してサーバ20に送信するようにしてもよい。また、本実施形態の通信制御部118は、サーバ20からネットワークを介して、サーバ20で補正された第1、2、3の回転処理結果を受信するようにしてもよい。また、通信制御部118は、サーバ20から表示データ(画像データ等)を受信するようにしてもよい。
【0086】
描画部120は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。言い換えると、描画部120は、オブジェクト空間において、仮想カメラから見える画像を生成する。
【0087】
例えば、描画部120は、一人称視点によって移動体の指示表示物(カーソル)を含む画像を生成する処理を行ってもよい。また、描画部120は、三人称視点によって移動体を含む画像を生成する処理を行ってもよい。
【0088】
例えば、描画部120は、オブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0089】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、透視変換(投影変換)、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。
【0090】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を画像バッファ172(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット、フレームバッファ)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0091】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0092】
そして描画部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0093】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、記憶部170に保存される。
【0094】
テクスチャマッピングは、記憶部170に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0095】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0096】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0097】
例えば、αブレンディングでは、これから画像バッファ172に描画する描画色(上書きする色)C1と、既に画像バッファ172(レンダリングターゲット)に描画されている描画色(下地の色)C2とを、α値に基づいて線形合成処理を行う。つまり、最終的な描画色をCとすると、C=C1*α+C2*(1−α)によって求めることができる。
【0098】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0099】
なお、描画部120は、他の端末(第2の端末)とネットワークを介してデータを送受信するマルチプレーヤオンラインゲームを行う場合は、端末(第1の端末)の操作対象のオブジェクトの移動に追従する仮想カメラ(端末(第1の端末)で制御される仮想カメラ)から見える画像を生成する処理を行う。つまり、各端末が独立した描画処理を行う。
【0100】
音処理部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0101】
なお、本実施形態の端末は、1人のプレーヤのみがプレイできるシングルプレーヤモード、或いは、複数のプレーヤがプレイできるマルチプレーヤモードでゲームプレイできるように制御してもよい。例えば、マルチプレーヤモードで制御する場合には、ネットワークを介して他の端末とデータを送受信してゲーム処理を行うようにしてもよいし、1つの端末が、複数の入力部からの入力情報に基づいて処理を行うようにしてもよい。
【0102】
2.概要
本実施形態では、プレーヤの操作対象の移動体OB1(自機、第1のオブジェクト)と、コンピュータオブジェクト或いは他のプレーヤのオブジェクトであるターゲットオブジェクトOB2(敵機、第2のオブジェクト)と、互いにミサイルや機関砲などで攻撃し合うフライトシューティングゲームに関する処理について説明する。
【0103】
つまり、本実施形態のゲーム処理では、移動体OB1とターゲットオブジェクトOB2が互いに相手を標的とし、互いにミサイルや機関砲を発射して標的を撃墜させるゲーム処理を行う。したがって、移動体OB1を操作するプレーヤは、移動体OB1をターゲットオブジェクトOB2に接近させて、移動体OB1から発射されるミサイルや機関砲をターゲットオブジェクトOB2にヒットさせるように攻撃操作を行い、ターゲットオブジェクトOB2から発射されるミサイル等の攻撃から回避するように移動体OB1を移動させる操作を行う。
【0104】
本実施形態では、移動体OB1をターゲットオブジェクトOB2の方向に容易に移動させることができるようにするために、補正処理を行っている。以下、詳細に説明する。
【0105】
3.移動体の移動制御の説明
まず、プレーヤの操作対象の移動体(自機)OB1の入力操作、及び、入力情報に基づく移動制御について説明する。
【0106】
3.1 ロール
ロールの挙動について説明する。ロールとは、移動体OB1の前後方向を第1の軸とし、第1の軸回りに移動体OB1を回転させる挙動のことをいう。言い換えると、移動体OB1のモデル座標系z軸回りに回転させる処理である。
【0107】
例えば、第1の入力情報を受け付けた場合(例えば、アナログレバーLSの倒し方向が右又は左(x軸方向)を検出した場合)、移動体OB1を右回転、又は、左回転の第1の回転処理(ロール)を行う(実行する)。
【0108】
より具体的に説明すると、図4(A)に示すように、移動体OB1が水平状態にある場合において、アナログレバーLSの倒し方向が右(x軸プラス)の所定角度値以上の傾斜角度値を検出した場合は、図4(B)に示すように、第1の軸回りに、単位時間当たり角度θだけ右方向に移動体OB1を回転させる処理を行う。
【0109】
また、図4(A)に示すように、移動体OB1が水平状態にある場合において、アナログレバーLSの倒し方向が左(x軸マイナス)の所定角度値以上の傾斜角度値を検出した場合は、図4(C)に示すように、第1の軸回りに、単位時間当たり角度θだけ左方向に移動体OB1を回転させる処理を行う。
【0110】
3.2 ピッチ
次に、ピッチの挙動について説明する。ピッチとは、移動体OB1の左右方向を第2の軸とし、第2の軸回りに移動体OB1を回転させる挙動のことをいう。つまり、ピッチは移動体OB1のモデル座標系x軸回りに回転させる処理である。
【0111】
例えば、第2の入力情報を受け付けた場合(例えば、アナログレバーLSの倒し方向が上又は下(z軸方向)を検出した場合)、移動体OB1を上回転、又は、下回転の第2の回転処理(ピッチ)を行う(実行する)。
【0112】
ここで、ピッチは、ピッチアップ(上昇)とピッチダウン(下降)がある。ピッチアップ(上昇)とは、図5(A)に示すように、移動体OB1を第2の軸回り(x軸回り)に上に回転させる挙動をいう。つまり、ピッチアップは、移動体OB1の進行方向(機首)を上に回転させる挙動のことをいう。したがって、移動体OB1の進行方向(機首)を上に回転させると、次のフレームで、移動体OB1は上方向に移動することになる。
【0113】
例えば、図5(A)に示すように、移動体OB1がV1−1の方向を向いていた場合において、アナログレバーLSの倒し方向が下(z軸マイナス)の所定角度値以上の傾斜角度値を検出した場合は、第2の軸回り(x軸回り)に、単位時間当たり角度θpだけ上方向に移動体OB1を回転させる処理を行う。つまり、移動体OB1は、結果的にベクトルVPa方向に上昇を始める。
【0114】
また、ピッチダウン(下降)とは、図5(B)に示すように、移動体OB1の第2の軸回り(x軸回り)に下に回転させる挙動をいう。つまり、ピッチダウンは、移動体OB1の進行方向(機首)を下に回転させる挙動のことをいう。つまり、移動体OB1の進行方向(機首)を下に回転させると、次のフレームで、移動体OB1は下方向に移動することになる。
【0115】
例えば、図5(B)に示すように、移動体OB1がV2−1の方向を向いていた場合において、アナログレバーLSの倒し方向が上(z軸プラス)の所定角度値以上の傾斜角度値を検出した場合は、単位時間当たり角度θpだけ下方向に移動体OB1を回転させる処理を行う。つまり、移動体OB1は、単位時間当たりにベクトルVPbだけ下降することができる。
【0116】
3.3 ヨー
次に、ヨーの挙動について説明する。ヨーとは、移動体OB1の上下方向を第3の軸とし、第3の軸回りに移動体OB1を回転させる挙動のことをいう。言い換えると、移動体OB1の進行方向(機首)を右又は左に回転させる挙動のことをいう。つまり、ヨーは移動体OB1のモデル座標系y軸回りに回転させる処理である。なお、第1、第2、第3の軸は互いに垂直に交差する軸である。
【0117】
例えば、第3の入力情報受け付けた場合、移動体OB1を回転させる第3の回転処理(ヨー)を行う(実行する)。例えば、RBボタンの入力信号を検出した場合は、移動体OB1を右回転させる右ヨーを行い、LBボタンの入力信号を検出した場合は、移動体OB1を左回転させる左ヨーを行う。つまり、移動体OB1の進行方向を右に回転させると、次のフレームで、移動体OB1は右方向に移動することになる。また、移動体OB1の進行方向を左に回転させると、次のフレームで、移動体OB1は左方向に移動することになる。
【0118】
例えば、図6(A)に示すように、移動体OB1がV3−1の方向を向いていた場合において、RBボタンの入力信号(第3の入力情報の一例)を検出した場合は、単位時間当たり角度θyだけ右方向に移動体OB1を回転させる処理を行う。つまり、移動体OB1は、単位時間当たりにベクトルVYaだけ右移動することができる。
【0119】
また、図6(B)に示すように、移動体OB1がV4−1の方向を向いていた場合において、LBボタンの入力信号(第3の入力情報の一例)を検出した場合は、単位時間当たり角度θyだけ左方向に移動体OB1を回転させる処理を行う。つまり、移動体OB1は、単位時間当たりにベクトルVYbだけ左移動することができる。
【0120】
3.4 移動制御の例
本実施形態では、第1の回転処理(ロール)と、第2の回転処理(ピッチ)と、第3の回転処理(ヨー)とを行わせる第1、第2、第3の入力情報を独立して個別に受け付けている。したがって、プレーヤは、ロール、ピッチを任意に選択して順に操作することによって、移動体OB1(自機)をターゲットオブジェクトOB2(敵機)に接近させて攻撃することができる。なお、本実施形態では、第1の回転処理、第2の回転処理、第3の回転処理のうち2つの回転処理、又は全ての回転処理(3つの回転処理)を同時に実行するようにしてもよい。
【0121】
例えば、図7(A)に示すように、移動体OB1の右上にターゲットオブジェクトOB2が相対的に位置している場合には、プレーヤは次のような移動操作を行うことが得策である。つまり、プレーヤは、図7(B)に示すように、移動体OB1の向きを、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向の角度θ1だけ、右方向にロールを行い、その後、図7(C)に示すように、移動体OB1をピッチアップさせて移動方向V10へ移動させる。このようにすれば、移動体OB1をターゲットオブジェクトOB2に接近して攻撃することが容易となる。
【0122】
4. 補正処理
しかしながら、図7(A)〜(C)に示すように、移動体OB1(自機)とターゲットオブジェクトOB2(敵機)とを結ぶ方向の角度θ1だけ、移動体OB1を右方向に回転をさせるには、かなりの練度を要する。
【0123】
例えば、図8(A)に示すように、プレーヤは、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向の角度よりも小さい角度θ2だけ、移動体OB1の向きを右方向にロールを行ってしまう場合がある。その結果、図8(C)に示すように、移動体OB1をピッチアップさせて移動方向V20へ移動させたとしても、移動体OB1をターゲットオブジェクトOB2に接近することは不可能となる。このように、ロールの回転操作は非常に難しいため、プレーヤにストレスを与えてしまっていた。
【0124】
そこで、本実施形態では、移動体OB1がターゲットオブジェクトOB2に対して容易に移動させることができるようにするために補正処理を行っている。
【0125】
4.1 ピッチの処理中における、ロールの補正処理
本実施形態では、第2の入力情報(ピッチの入力情報)に基づく第2の回転処理中(ピッチの回転処理中)に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理(ロール)を補正処理として行う。
【0126】
例えば、図9(A)に示すように、プレーヤのロールの入力情報に基づき角度θ30だけ、移動体OB1を右方向にロールを行ったとする。
【0127】
その後、本実施形態では、プレーヤからのピッチの入力情報(例えば、ピッチアップの入力情報)を受け付けた場合に、ピッチの入力情報に基づくピッチの処理中に、図9(B)に示すように、移動体OB1の位置P30とターゲットオブジェクトOB2のQ30とに基づいて移動体OB1を、角度θ31だけ右回転させるロールを行う。
【0128】
つまり、本実施形態では、ロールの入力情報によらずに、ピッチの入力情報に基づくピッチの処理中に、移動体OB1の移動方向が移動体OB1とターゲットオブジェクトOB2とを結ぶ方向に近づくように、ロールを補正処理として行う。
【0129】
また、本実施形態では、移動体OB1の位置とターゲットオブジェクトOB2の位置に基づいて、補正処理として行うロールの回転角度を決定する。例えば、第1の軸回りにおいて(移動体OB1のモデル座標のz軸回りにおいて(移動体OB1のモデル座標のxy平面において))移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と移動体の向きとのなす角度φに応じて、補正処理として行うロールの回転量(回転角度)を求める。例えば、ロールの回転量は、0以上であって角度φよりも小さい値とする。例えば、ロールの回転量は、角度φに補正係数K(0<K<1)を乗じた値等とすることができる。なお、本実施形態では、フレーム毎に補正処理として行うロールの回転角度を求める。
【0130】
また、本実施形態では、移動体OB1の位置とターゲットオブジェクトOB2の位置に基づいて、補正処理として行うロールの回転方向を決定する。例えば、第1の軸回りにおいて、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向に近い回転方向(内角をなす回転方向)に、移動体OB1を回転させる。なお、本実施形態では、フレーム毎に補正処理として行うロールの回転方向を求める。
【0131】
例えば、図9(B)に示すように、Nフレーム目では、第1の軸回りにおいて、移動体OB1の位置P30とターゲットオブジェクトOB2の位置Q30とを結ぶ方向a33と、移動体OB1の向きa31とのなす角度φaに応じて、補正処理として行うロールの回転量(回転角度)θ31を求める。例えば、ロールの回転量θ31は、角度φaに補正係数K(0<K<1)を乗じた値とする。そして、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向a33に近い回転方向(内角をなす回転方向)である右方向に、移動体OB1をθ31だけ回転させる。つまり、Nフレーム目では、移動体OB1をV30の方向に移動させる。
【0132】
そして、図9(C)に示すようにN+1フレーム目では、第1の軸回りにおいて、移動体OB1の位置P31とターゲットオブジェクトOB2の位置Q31とを結ぶ方向a35と、移動体OB1の向きa32とのなす角度φbに応じて、補正処理として行うロールの回転量(回転角度)θ32を求める。例えば、ロールの回転量θ32は、角度φbに補正係数K(0<K<1)を乗じた値とする。そして、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向a35に近い回転方向(内角をなす回転方向)である右方向に、移動体OB1をθ32だけ回転させる。つまり、N+1フレーム目では、移動体OB1をV31の方向に移動させる。
【0133】
このように、本実施形態では、プレーヤがピッチアップを行っている最中に右ロールへの補助を自然と行うことができるので、プレーヤに違和感を与えることなく、移動体OB1をターゲットオブジェクトOB2に接近させることができる。
【0134】
また、図10(A)〜(C)に示すように、プレーヤは、移動体OB1とターゲットオブジェクトOB2とを結ぶ方角からずれて、大きな角度θ4で移動体OB1を右方向にロール操作を行ってしまうこともある。例えば、図10(C)に示すように、移動体OB1をピッチアップさせて移動方向V40に移動させたとしても、移動体OB1をターゲットオブジェクトOB2に接近することは難しい。このように、本実施形態では、プレーヤがロールの回転操作が行き過ぎてしまった場合においても、補正処理を行う。
【0135】
例えば、図11(A)に示すように、プレーヤのロールの入力情報に基づき、角度θ50だけ、移動体OB1を右方向にロールを行ったとする。
【0136】
その後、本実施形態では、プレーヤからのピッチの入力情報(例えば、ピッチアップの入力情報)を受け付けた場合に、ピッチの入力情報に基づくピッチの処理中に、図11(B)に示すように、移動体OB1の位置P50とターゲットオブジェクトOB2のQ50とに基づいて移動体OB1を、角度θ51だけ左回転させるロールを行う。
【0137】
例えば、図11(B)に示すように、Nフレーム目では、第1の軸回りにおいて、移動体OB1の位置P50とターゲットオブジェクトOB2の位置Q50とを結ぶ方向a53と、移動体OB1の向きa51とのなす角度φcに応じて、補正処理として行うロールの回転量(回転角度)θ51を求める。例えば、ロールの回転量θ51は、角度φcに補正係数K(0<K<1)を乗じた値とする。そして、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向a53に近い回転方向(内角をなす回転方向)である左方向に、移動体OB1をθ51だけ回転させる。つまり、Nフレーム目では、移動体OB1をV50の方向に移動させる。
【0138】
そして、図11(C)に示すようにN+1フレーム目では、第1の軸回りにおいて、移動体OB1の位置P51とターゲットオブジェクトOB2の位置Q51とを結ぶ方向a55と、移動体OB1の向きa52とのなす角度φdに応じて、補正処理として行うロールの回転量(回転角度)θ52を求める。例えば、ロールの回転量θ52は、角度φdに補正係数K(0<K<1)を乗じた値とする。そして、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向a55に近い回転方向(内角をなす回転方向)である左方向に、移動体OB1をθ52だけ回転させる。つまり、N+1フレーム目では、移動体OB1をV51の方向に移動させる。
【0139】
このように、本実施形態では、プレーヤが右ロールの回転操作が行き過ぎてしまった場合においても、その後、プレーヤがピッチアップを行っている最中に左ロールへの補助を自然と行うことができるので、プレーヤに違和感を与えることなく、移動体OB1をターゲットオブジェクトOB2に接近させることができる。
【0140】
また、本実施形態では、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と移動体OB1の向きとのなす角度φに応じて、補正処理として行う第1の回転処理の回転量(ロールの回転量)を変化させるようにしてもよい。例えば、図12(A)に示すように、第1の軸回りにおいて、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と移動体OB1の向きとのなす角度φが大きくなるにつれて、補正処理として行うロールの回転量を増大させる。つまり、角度φが大きいほど、移動体OB1とターゲットオブジェクトOB2とが大きくずれていることになるので、ロールの回転量を大きくする。一方、角度φが小さい場合には、ずれが少ないので、操作が容易になり過ぎないように、ロールの回転量を小さくするようにしている。
【0141】
また、本実施形態では、移動体OB1の移動速度に応じて、補正処理として行う第1の回転処理の回転量(ロールの回転量)を変化させるようにしてもよい。例えば、図12(B)に示すように、移動体OB1の移動速度が大きくなるにつれて、補正処理として行うロールの回転量を減少させる。通常、加速すればする程、移動体OB1がターゲットオブジェクトOB2に接近し易くなり、加速中に、更に移動体OB1がターゲットオブジェクトOB2に接近し易くなる補正処理を加えると、操作が簡易なものになり過ぎてしまう。そこで、本実施形態では、移動体の加速に応じて、補正処理として行うロールの回転量を減少させている。また、物理法則に基づけば、移動体OB1が加速すればする程、回転力が抑制されることになるので、より自然な動きを実現するためにも、移動体OB1の加速に応じて、補正処理として行うロールの回転量を減少させることが好ましい。
【0142】
なお、補正処理として行うロールの回転量の最大値は、第1の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度φよりも小さい値とする。
【0143】
なお、本実施形態では、第1の軸回りにおいて移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と移動体の向きとのなす角度φと、移動体OB1の移動速度とに応じて、補正処理として行うロールの回転量を変化させるようにしてもよい。
【0144】
本実施形態では、ピッチアップだけでなくピッチダウンに基づく入力情報に基づくピッチの中に、ロールの補正処理を行うようにしてもよい。
【0145】
4.2 ピッチの処理中における、ヨーの補正処理
本実施形態では、ピッチの処理中に、補正処理として第3の回転処理(ヨー)を行うようにしてもよい。
【0146】
例えば、図13(A)〜(C)に示すように、ピッチアップの入力情報に基づき、移動体OB1(自機)を上昇させることができたとしても、移動体OB1を右方向に移動操作しなければ、ターゲットオブジェクトOB2を射撃することは難しい。そこで、本実施形態では、第2の入力情報(ピッチの入力情報)に基づく第2の回転処理中(ピッチの回転処理中)に、移動体とターゲットオブジェクトとの位置関係に基づいて、第3の回転処理(ヨー)を補正処理として行うようにしている。
【0147】
例えば、図14(A)に示すように、移動体OB1に対して相対的に右上方にターゲットオブジェクトOB2が位置していたとする。本実施形態では、プレーヤからのピッチの入力情報(例えばピッチアップの入力情報)を受け付けると、ピッチの入力情報に基づくピッチの処理中に、図14(B)に示すように、ピッチアップの移動ベクトルVPa1だけでなく、右ヨーの移動ベクトルVYa1を加えて移動体OB1をターゲットオブジェクトOB2に接近させる移動ベクトルV70の方向へ移動制御を行う。また、次のフレームでも、図14(C)に示すように、ピッチアップの移動ベクトルVPa2だけでなく、右ヨーのベクトルVYa2を加えて移動体OB1をターゲットオブジェクトOB2に接近させるように、移動ベクトルV71の方向へ移動制御を行う。
【0148】
具体的には、図15(A)(B)に示すように、本実施形態では、移動体OB1の位置とターゲットオブジェクトOB2の位置に基づいて、補正処理として行うヨーの回転角度を決定する。例えば、第3の軸回りにおいて(移動体OB1のモデル座標のy軸回りにおいて(移動体OB1のモデル座標のxz平面において))移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と移動体の向きとのなす角度φに応じて、補正処理として行うヨーの回転量(回転角度)を求める。例えば、ヨーの回転量は、0以上であって角度φよりも小さい値とする。例えば、ヨーの回転量は、角度φに補正係数K(0<K<1)を乗じた値等とすることができる。なお、本実施形態では、フレーム毎に補正処理として行うヨーの回転角度を求める。
【0149】
また、本実施形態では、移動体OB1の位置とターゲットオブジェクトOB2の位置に基づいて、補正処理として行うヨーの回転方向を決定する。例えば、第3の軸回りにおいて、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向に近い回転方向(内角をなす回転方向)に、移動体OB1を回転させる。なお、本実施形態では、フレーム毎に補正処理として行うヨーの回転方向を求める。
【0150】
例えば、図15(A)に示すように、Nフレーム目では、第3の軸回りにおいて、移動体OB1の位置P70とターゲットオブジェクトOB2の位置Q70とを結ぶ方向a70と、移動体OB1の向きV69とのなす角度φeに応じて、補正処理として行うヨーの回転量(回転角度)θ70を求める。例えば、ヨーの回転量θ70は、角度φeに補正係数K(0<K<1)を乗じた値とする。そして、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向a70に近い回転方向(内角をなす回転方向)である右方向に、移動体OB1をθ70だけ回転させる。つまり、Nフレーム目では、移動体OB1をV70の方向に移動させる。
【0151】
そして、図15(B)に示すようにN+1フレーム目では、第3の軸回りにおいて、移動体OB1の位置P71とターゲットオブジェクトOB2の位置Q71とを結ぶ方向a71と、移動体OB1の向きV70とのなす角度φfに応じて、補正処理として行うヨーの回転量(回転角度)θ71を求める。例えば、ヨーの回転量θ71は、角度φfに補正係数K(0<K<1)を乗じた値とする。そして、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向a71に近い回転方向(内角をなす回転方向)である右方向に、移動体OB1をθ71だけ回転させる。つまり、N+1フレーム目では、移動体OB1をV71の方向に移動させる。
【0152】
このように、本実施形態では、プレーヤがピッチアップを行っている最中に右ヨーへの補助を自然と行うことができるので、プレーヤに違和感を与えることなく、移動体OB1をターゲットオブジェクトOB2に接近させることができる。
【0153】
また、例えば、図16(A)(B)に示すように、プレーヤは、ヨーの操作において誤ってターゲットオブジェクトOB2を超えて右に移動し過ぎてしまうことがある。そこで、本実施形態では、プレーヤがヨーの操作が行き過ぎてしまった場合においても、移動体OB1をターゲットオブジェクトOB2に接近させることができるように、ヨーの補正処理を行う。
【0154】
例えば、図16(A)に示すように、移動体OB1に対して相対的に右上方にターゲットオブジェクトOB2が位置していたとする。そして、図16(B)に示すように、プレーヤの右ヨーの入力情報に基づき、移動体OB1を右方向の移動ベクトルVYa3の方向へ移動させる。そして、ピッチの入力情報(例えば、ピッチアップの入力情報)を受け付けたとする。
【0155】
本実施形態では、プレーヤからのピッチアップの入力情報を受け付けると、ピッチアップの入力情報に基づくピッチの処理中に、図16(C)に示すように、ピッチアップの移動ベクトルVPa4だけでなく、左ヨーの移動ベクトルVYb4を加えて移動体OB1をターゲットオブジェクトOB2に接近させるように移動方向V80へ移動制御する。
【0156】
言い換えると、図17に示すように、プレーヤからのピッチの入力情報を受け付けた場合に、ピッチの入力情報に基づくピッチの処理中に、移動体OB1の位置P81とターゲットオブジェクトOB2のQ81とに基づいて、移動体OB1を角度θ80だけ左回転させるヨーを行う。
【0157】
例えば、図17に示すように、Nフレーム目において、第3の軸回りにおいて、移動体OB1の位置P81とターゲットオブジェクトOB2の位置Q81とを結ぶ方向a80と、移動体OB1の向きV79とのなす角度φgに応じて、補正処理として行うヨーの回転量(回転角度)θ80を求める。例えば、ヨーの回転量θ80は、角度φgに補正係数K(0<K<1)を乗じた値とする。そして、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向a80に近い回転方向(内角をなす回転方向)である左方向に、移動体OB1をθ80だけ回転させる。つまり、Nフレーム目では、移動体OB1をベクトルV80の方向に移動させる。
【0158】
このように、本実施形態では、プレーヤが右ヨーの回転操作が行き過ぎてしまった場合においても、その後、プレーヤがピッチアップを行っている最中に左ヨーへの補助を自然と行うことができるので、プレーヤに違和感を与えることなく、移動体OB1をターゲットオブジェクトOB2に接近させることができる。
【0159】
また、本実施形態では、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と移動体OB1の向きとのなす角度φに応じて、補正処理として行う第3の回転処理の回転量(ヨーの回転量)を変化させるようにしてもよい。例えば、図12(A)に示すように、第3の軸回りにおいて、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と移動体OB1の向きとのなす角度φが大きくなるにつれて、補正処理として行うロールの回転量を増大させる。
【0160】
また、本実施形態では、移動体OB1の移動速度に応じて、補正処理として行う第3の回転処理の回転量(ヨーの回転量)を変化させるようにしてもよい。例えば、図12(B)に示すように、移動体OB1の移動速度が大きくなる(加速する)につれて、補正処理として行うロールの回転量を減少させる。
【0161】
なお、補正処理として行うヨーの回転量の最大値は、第3の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度φよりも小さい値とする。
【0162】
なお、本実施形態では、第3の軸回りにおいて移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と移動体の向きとのなす角度φと、移動体OB1の移動速度とに応じて、補正処理として行うヨーの回転量を変化させるようにしてもよい。
【0163】
本実施形態では、ピッチアップだけでなくピッチダウンに基づく入力情報に基づくピッチの中に、ヨーの補正処理を行うようにしてもよい。
【0164】
4.3 ピッチの処理中における、ロール、ヨーの補正処理
なお、本実施形態では、第2の入力情報(ピッチの入力情報)に基づく第2の回転処理中(ピッチの処理中)に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理(ロール)の補正処理及び第3の回転処理(ヨー)の補正処理を同時に行うようにしてもよい。また、本実施形態では、第2の入力情報に基づく第2の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理(ロール)の補正処理のみを行う、或いは、第3の回転処理(ヨー)の補正処理のみを行うようにしてもよい。
【0165】
4.4 ピッチの補正処理
本実施形態では、第2の入力情報(ピッチの入力情報)を受け付けた場合に、移動体OB1(自機)とターゲットオブジェクトOB2(敵機)とを結ぶ方向に近づける第2の回転処理(ピッチ)の補正処理を行うようにしてもよい。
【0166】
例えば、図18(A)に示すように、移動体OB1がターゲットオブジェクトOB2よりも下方に位置する場合において、ピッチアップの入力情報に基づく上昇移動ベクトルに、移動体OB1を更に上昇させる補正用の移動ベクトルF1を加えて、移動体OB1を移動ベクトルVPa90だけ上昇させる。つまり、上昇を増長させて、移動体OB1をターゲットオブジェクトOB2に接近させる。
【0167】
また、図18(B)に示すように、移動体OB1がターゲットオブジェクトOB2よりも上方に位置する場合において、ピッチアップの入力情報に基づく上昇移動ベクトルに、移動体OB1を下降させる補正用の移動ベクトルF2を加えて、移動体OB1を移動ベクトルVPa92だけ上昇させる。つまり、上昇を抑制させるように、移動体OB1をターゲットオブジェクトOB2に接近させる。
【0168】
例えば、図19(A)に示すように、第2の軸回りにおいて(移動体OB1のモデル座標のx軸回りにおいて(移動体OB1のモデル座標のzy平面において))、移動体OB1をθ90だけ上に回転させる上方向へのピッチ(ピッチアップ)の入力情報を受け付けた場合には、更に、ピッチアップの回転を補助するために補正回転量θ91を加える。つまり、移動体OB1の第2の軸回りの回転量を、角度θ92とし、角度θ92だけピッチアップする回転処理を行う。
【0169】
また、図19(B)に示すように、第2の軸回りにおいて、移動体OB1をθ95だけ上に回転させる上方向へのピッチ(ピッチアップ)の入力情報を受け付けた場合には、ターゲットオブジェクトOB2の位置Q91から遠ざかってしまう。そこで、ピッチアップの回転を補助するために補正回転量θ93を減算する。つまり、移動体OB1の第2の軸回りの回転量を、角度θ94とし、角度θ94だけピッチアップする回転処理を行う。
【0170】
つまり、プレーヤのピッチ回転操作が、ターゲットオブジェクトOB2に近づく回転量が足りない、或いは、ターゲットオブジェクトOB2から遠ざかるような回転操作を誤って行う場合がある。そこで、本実施形態では、ピッチの入力情報に基づく回転量に、補正回転量を加算或いは減算して回転の補助を行う。なお、本実施形態では、自然な補助を行うために、ピッチの入力情報を受け付けた場合には回転方向は補正せず、回転量のみを補正する。
【0171】
なお、本実施形態では、第2軸回りにおいて、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と、第2の入力情報に基づく移動体の向きとのなす角度βに基づき、補正回転量を求めるようにしてもよい。なお、本実施形態では、フレーム毎に補正処理として行う補正回転量を求めるようにしてもよい。
【0172】
例えば、図19(A)に示すように、第2の軸回りにおいて、移動体OB1の位置P90とターゲットオブジェクトOB2の位置Q90とを結ぶ方向a94と、ピッチアップの入力情報に基づく移動体の向きV89とのなす角度βaに応じて、補正処理として行う補正回転量θ91を求める。例えば、ロールの補正回転量θ91は、角度βaに補正係数K(0<K<1)を乗じた値とする。そして、ピッチアップの入力情報に基づく回転量θ90に補正回転量θ91を加算したθ92だけ回転させる。つまり、移動体OB1をベクトルV90の方向に移動させる(ベクトルVPa90だけ上昇移動させる)。
【0173】
また、図19(A)の例では、第2の軸回りにおいて、ピッチの入力情報に基づく回転処理が、移動体OB1の向きを、移動体OB1の位置P90とターゲットオブジェクトOB2の位置Q90とを結ぶ方向a94に近づけているので、ピッチの入力情報に基づく回転量に、補正回転量を加算する処理を行う。
【0174】
一方、図19(B)に示すように、移動体OB1の位置P91とターゲットオブジェクトOB2の位置Q91とを結ぶ方向a95と、ピッチアップの入力情報に基づく移動体の向きV93とのなす角度βbに応じて、補正処理として行う補正回転量θ93を求める。例えば、ピッチの補正回転量θ93は、角度βbに補正係数K(0<K<1)を乗じた値とする。そして、ピッチアップの入力情報に基づく回転量θ95から補正回転量θ93を減算したθ94だけ回転させる。つまり、移動体OB1をベクトルV92の方向に移動させる(ベクトルVPa92だけ上昇移動させる)。
【0175】
また、図19(B)の例では、第2の軸回りにおいて、ピッチの入力情報に基づく回転処理が、移動体OB1の向きを、移動体OB1の位置P91とターゲットオブジェクトOB2の位置Q91とを結ぶ方向a95から遠ざけているので、ピッチの入力情報に基づく回転量から、補正回転量を減算する処理を行う。
【0176】
なお、図19(A)に示すように、回転量を加算補正する際の補正回転量の最大値は、第2の軸回りにおいて、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と、第2の入力情報に基づく移動体の向きとのなす角度βaよりも小さい値とする。一方、図19(B)に示すように、回転量を減算補正する際の補正回転量の最大値は、第2の入力情報に基づく回転量θ95よりも小さい値とする。
【0177】
このように、本実施形態では、プレーヤがピッチを行っている最中に、ピッチの補助を自然と行うことができるので、プレーヤに違和感を与えることなく、移動体OB1をターゲットオブジェクトOB2に接近させることができる。
【0178】
また、本実施形態では、第2軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、ピッチの入力情報に基づく移動体の向きとのなす角度βに応じて、ピッチの回転量を変化させるようにしてもよい。つまり、角度βに応じて、ピッチの補正回転量を変化させるようにしてもよい。例えば、図12(A)に示すように、角度βが大きくなるにつれて、ピッチの回転量を増大させる。つまり、角度βが大きいほど、移動体OB1とターゲットオブジェクトOB2とが大きくずれていることになるので、回転量を大きくする。一方、角度βが小さい場合には、ずれが少ないので、操作が容易になり過ぎないように、回転量を小さくするようにしている。
【0179】
また、本実施形態では、移動体OB1の速度に応じて、ピッチの回転量を変化させるようにしてもよい。例えば、図12(B)に示すように、移動体OB1の移動速度が大きくなる(加速する)につれて、補正処理として行うピッチの補正回転量を減少させる。操作の難易度を適度なものにし、より自然な動きを実現するためである。つまり、加速すると近づき易いが補正がきかず操作が難しくなり、減速すると補正で操作し易いが近づきにくい、という駆け引きを実現するためである。また、本実施形態では、第2軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、ピッチの入力情報に基づく移動体の向きとのなす角度β、及び、移動体の速度に応じて、ピッチの回転量を変化させるようにしてもよい。
【0180】
なお、本実施形態では、ピッチアップだけでなくピッチダウンに基づく入力情報に基づくピッチの中に、ピッチの補正処理を行うようにしてもよい。つまり、プレーヤがピッチダウンの回転操作を行う場合に、ターゲットオブジェクトOB2に近づく回転量が足りない場合は更にピッチダウンへの補正回転量を加算する。また、プレーヤが、ターゲットオブジェクトOB2から遠ざかるような回転操作を誤って行う場合には、ピッチの入力情報に基づく回転量から、補正回転量を減算して回転を抑制する補助を行う。
【0181】
4.5 ヨーの補正処理
本実施形態では、第3の入力情報(ヨーの入力情報)を受け付けた場合に、移動体OB1(自機)とターゲットオブジェクトOB2(敵機)とを結ぶ方向に近づける第3の回転処理(ヨー)の補正処理を行うようにしてもよい。
【0182】
例えば、図20(A)に示すように、移動体OB1がターゲットオブジェクトOB2よりも左側に位置する場合において、右ヨーの入力情報に基づく右移動ベクトルに、移動体OB1を更に右に移動させる補正用の移動ベクトルF3を加えて、移動体OB1を移動ベクトルVYa100だけ右移動させる。つまり、右移動を増長させて、移動体OB1をターゲットオブジェクトOB2に接近させる。
【0183】
また、図20(B)に示すように、移動体OB1がターゲットオブジェクトOB2よりも右側に位置する場合において、右ヨーの入力情報に基づく右移動ベクトルに、移動体OB1の右移動を抑制させる補正用の移動ベクトルF4を加えて、移動体OB1を移動ベクトルVYa102だけ右移動させる。つまり、右移動を抑制させて、移動体OB1をターゲットオブジェクトOB2に接近させる。
【0184】
例えば、図21(A)に示すように、第3の軸回りにおいて、移動体OB1をθ100だけ右に回転させる右方向へのヨーの入力情報を受け付けた場合には、更に、右ヨーの回転を補助するために補正回転量θ101を加える。つまり、移動体OB1の第3の軸回りの回転量を、角度θ102とし、角度θ102だけ右回転させる。
【0185】
また、図21(B)に示すように、第3の軸回りにおいて、移動体OB1をθ105だけ右に回転させる右ヨーの入力情報を受け付けた場合には、ターゲットオブジェクトOB2の位置Q101から遠ざかってしまう。そこで、右ヨーの回転を抑制補助するために補正回転量θ103を減算する。つまり、移動体OB1の第3の軸回りの回転量を角度θ104とし、角度θ104だけ右回転させる。
【0186】
つまり、プレーヤのヨーの回転操作が、ターゲットオブジェクトOB2に近づく回転量が足りない、或いは、ターゲットオブジェクトOB2から遠ざかるような回転操作を誤って行う場合がある。そこで、本実施形態では、ヨーの入力情報に基づく回転量に、補正回転量を加算或いは減算して回転の補助を行う。なお、本実施形態では、自然な補助を行うために、ヨーの入力情報を受け付けた場合には回転方向は補正せず、回転量のみを補正する。
【0187】
本実施形態では、第3軸回りにおいて、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と、第3の入力情報に基づく移動体の向きとのなす角度βに基づき、補正回転量を求めるようにしてもよい。なお、本実施形態では、フレーム毎に補正処理として行う補正回転量を求めるようにしてもよい。
【0188】
例えば、図21(A)に示すように、第3の軸回りにおいて、移動体OB1の位置P100とターゲットオブジェクトOB2の位置Q100とを結ぶ方向a101と、ヨーの入力情報に基づく移動体の向きV99とのなす角度βcに応じて、補正処理として行う補正回転量θ101を求める。例えば、ロールの補正回転量θ101は、角度βcに補正係数K(0<K<1)を乗じた値とする。そして、ヨーの入力情報に基づく回転量θ100に補正回転量θ101を加算したθ102だけ回転させる。つまり、移動体OB1をベクトルV100の方向に移動させる(ベクトルVYa100だけ右移動させる)。
【0189】
また、図21(A)の例では、第3の軸回りにおいて、ヨーの入力情報に基づく回転処理が、移動体OB1の向きを、移動体OB1の位置P100とターゲットオブジェクトOB2の位置Q100とを結ぶ方向a101に近づけているので、ヨーの入力情報に基づく回転量に、補正回転量を加算する処理を行う。
【0190】
一方、図21(B)に示すように、移動体OB1の位置P101とターゲットオブジェクトOB2の位置Q101とを結ぶ方向a102と、ヨーの入力情報に基づく移動体の向きV103とのなす角度βdに応じて、補正処理として行う補正回転量θ103を求める。例えば、ヨーの補正回転量θ103は、角度βdに補正係数K(0<K<1)を乗じた値とする。そして、ヨーの入力情報に基づく回転量θ105から補正回転量θ103を減算したθ104だけ回転させる。つまり、移動体OB1をベクトルV102の方向に移動させる(ベクトルVYa102だけ右移動させる)。
【0191】
また、図21(B)の例では、第3の軸回りにおいて、ヨーの入力情報に基づく回転処理が、移動体OB1の向きを、移動体OB1の位置P101とターゲットオブジェクトOB2の位置Q101とを結ぶ方向a102から遠ざけているので、ヨーの入力情報に基づく回転量から、補正回転量を減算する処理を行う。
【0192】
なお、図21(A)に示すように、回転量を加算補正する際の補正回転量の最大値は、第3の軸回りにおいて、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と、第3の入力情報に基づく移動体の向きとのなす角度βcよりも小さい値とする。一方、図21(B)に示すように、回転量を減算補正する際の補正回転量の最大値は、第3の入力情報に基づく回転量θ105よりも小さい値とする。
【0193】
このように、本実施形態では、プレーヤがヨー操作を行っている最中に、ヨーの補助を自然と行うことができるので、プレーヤに違和感を与えることなく、移動体OB1をターゲットオブジェクトOB2に接近させることができる。
【0194】
また、本実施形態では、第3軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、ヨーの入力情報に基づく移動体の向きとのなす角度βに応じて、ヨーの回転量を変化させるようにしてもよい。つまり、角度βに応じて、ヨーの補正回転量を変化させるようにしてもよい。例えば、図12(A)に示すように、角度βが大きくなるにつれて、ヨーの回転量を増大させる。つまり、角度βが大きいほど、移動体OB1とターゲットオブジェクトOB2とが大きくずれていることになるので、回転量を大きくする。一方、角度βが小さい場合には、ずれが少ないので、操作が容易になり過ぎないように、回転量を小さくするようにしている。
【0195】
また、本実施形態では、移動体OB1の速度に応じて、ヨーの回転量を変化させるようにしてもよい。例えば、図12(B)に示すように、移動体OB1の移動速度が大きくなる(加速する)につれて、補正処理として行うヨーの補正回転量を減少させる。操作の難易度を適度なものにし、より自然な動きを実現するためである。つまり、加速すると近づき易いが補正がきかず操作が難しくなり、減速すると補正で操作し易いが近づきにくい、という駆け引きを実現するためである。また、本実施形態では、第3軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、ヨーの入力情報に基づく移動体の向きとのなす角度β、及び、移動体の速度に応じて、ヨーの回転量を変化させるようにしてもよい。
【0196】
なお、本実施形態では、右ヨーだけでなく左ヨーに基づく入力情報に基づく左ヨーの処理中に、ヨーの補正処理を行うようにしてもよい。つまり、プレーヤが左ヨー回転操作を行う場合に、ターゲットオブジェクトOB2に近づく回転量が足りない場合は更に左ヨーへの補正回転量を加算する。また、プレーヤが左ヨー回転操作を行う場合に、ターゲットオブジェクトOB2から遠ざかるような回転操作を誤って行う場合には、ヨーの入力情報に基づく回転量から、補正回転量を減算して回転を抑制する補助を行う。
【0197】
4.6 ロールの補正処理
本実施形態では、第1の入力情報(ロールの入力情報)を受け付けた場合に、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向に近づける第1の回転処理(ロール)の補正処理を行うようにしてもよい。
【0198】
例えば、図22(A)に示すように、移動体OB1をθ110だけ右に回転させる右方向へのロールの入力情報を受け付けた場合には、第1の軸回りの回転が足りない。そこで、本実施形態では、更に、右ロールの回転を補助するために補正回転量θ111を加える。つまり、移動体OB1の第1の軸回りの回転量を、角度θ112とし、角度θ112だけ右回転させる。
【0199】
また、図22(B)に示すように、移動体OB1をθ113だけ右に回転させる右ロールの入力情報を受け付けた場合には、第1の軸回りの回転が、ターゲットオブジェクトOB2の方角とは遠ざかる向きとなる。そこで、本実施形態では、右ロールの回転を抑制補助するために補正回転量θ114を減算する。つまり、移動体OB1の第1の軸回りの回転量を角度θ115とし、角度θ115だけ右回転させる。
【0200】
つまり、プレーヤのロールの回転操作が、ターゲットオブジェクトOB2に近づく回転量が足りない、或いは、ターゲットオブジェクトOB2から遠ざかるような回転操作を誤って行う場合がある。そこで、本実施形態では、ロールの入力情報に基づく回転量に、補正回転量を加算或いは減算して回転の補助を行う。なお、本実施形態では、自然な補助を行うために、ロールの入力情報を受け付けた場合には回転方向は補正せず、回転量のみを補正する。
【0201】
本実施形態では、第1軸回りにおいて、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と、第1の入力情報に基づく移動体の向きとのなす角度βに基づき、補正回転量を求めるようにしてもよい。なお、本実施形態では、フレーム毎に補正処理として行う補正回転量を求めるようにしてもよい。
【0202】
例えば、図22(A)に示すように、移動体OB1の位置P110とターゲットオブジェクトOB2の位置Q110とを結ぶ方向a113と、ロールの入力情報に基づく移動体の向きa111とのなす角度βeに応じて、補正処理として行う補正回転量θ111を求める。例えば、ロールの補正回転量θ111は、角度βeに補正係数K(0<K<1)を乗じた値とする。そして、ロールの入力情報に基づく回転量θ110に補正回転量θ111を加算したθ112だけ回転させる。
【0203】
また、図22(A)の例では、第1の軸回りにおいて、ロールの入力情報に基づく回転処理が、移動体OB1の向きを、移動体OB1の位置P110とターゲットオブジェクトOB2の位置Q110とを結ぶ方向a113に近づけているので、ロールの入力情報に基づく回転量に、補正回転量を加算する処理を行う。
【0204】
一方、図22(B)に示すように、移動体OB1の位置P111とターゲットオブジェクトOB2の位置Q111とを結ぶ方向a114と、ロールの入力情報に基づく移動体の向きa117とのなす角度βfに応じて、補正処理として行う補正回転量θ114を求める。例えば、ロールの補正回転量θ114は、角度βfに補正係数K(0<K<1)を乗じた値とする。そして、ロールの入力情報に基づく回転量θ113から補正回転量θ114を減算したθ115だけ回転させる。
【0205】
また、図22(B)の例では、第1の軸回りにおいて、ロールの入力情報に基づく回転処理が、移動体OB1の向きを、移動体OB1の位置P111とターゲットオブジェクトOB2の位置Q111とを結ぶ方向a114から遠ざけているので、ロールの入力情報に基づく回転量から、補正回転量を減算する処理を行う。
【0206】
なお、図22(A)に示すように、回転量を加算補正する際の補正回転量の最大値は、第1の軸回りにおいて、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と、第1の入力情報に基づく移動体の向きとのなす角度βeよりも小さい値とする。一方、図22(B)に示すように、回転量を減算補正する際の補正回転量の最大値は、第1の入力情報に基づく回転量θ113よりも小さい値とする。
【0207】
このように、本実施形態では、プレーヤがロール操作を行っている最中に、ロールの補助を自然と行うことができるので、プレーヤに違和感を与えることなく、移動体OB1をターゲットオブジェクトOB2に接近させることができる。
【0208】
また、本実施形態では、第1軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、ロールの入力情報に基づく移動体の向きとのなす角度βに応じて、ロールの回転量を変化させるようにしてもよい。つまり、角度βに応じて、ロールの補正回転量を変化させるようにしてもよい。例えば、図12(A)に示すように、角度βが大きくなるにつれて、ロールの回転量を増大させる。つまり、角度βが大きいほど、移動体OB1とターゲットオブジェクトOB2とが大きくずれていることになるので、回転量を大きくする。一方、角度βが小さい場合には、ずれが少ないので、操作が容易になり過ぎないように、回転量を小さくするようにしている。
【0209】
また、本実施形態では、移動体OB1の速度に応じて、ロールの回転量を変化させるようにしてもよい。例えば、図12(B)に示すように、移動体OB1の移動速度が大きくなる(加速する)につれて、補正処理として行うロールの補正回転量を減少させる。操作の難易度を適度なものにし、より自然な動きを実現するためである。つまり、加速すると近づき易いが補正がきかず操作が難しくなり、減速すると補正で操作し易いが近づきにくい、という駆け引きを実現するためである。また、本実施形態では、第3軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、ロールの入力情報に基づく移動体の向きとのなす角度β、及び、移動体の速度に応じて、ロールの回転量を変化させるようにしてもよい。
【0210】
なお、本実施形態では、右ロールだけでなく左ロールに基づく入力情報に基づく左ロールの処理中に、ロールの補正処理を行うようにしてもよい。つまり、プレーヤが左ロール回転操作を行う場合に、ターゲットオブジェクトOB2に近づく回転量が足りない場合は更に左ロールへの補正回転量を加算する。また、プレーヤが左ロール回転操作を行う場合に、ターゲットオブジェクトOB2から遠ざかるような回転操作を誤って行う場合には、ヨーの入力情報に基づく回転量から、補正回転量を減算して回転を抑制する補助を行う。
【0211】
5.選択処理
本実施形態では、図23(A)に示すように、オブジェクト空間において、ターゲットオブジェクトOB2〜OB5が複数存在する場合には、移動体OB1と各ターゲットオブジェクトOB2〜OB5との位置関係に基づいて、一のターゲットオブジェクトを選択する処理を行う。そして、移動体OB1と選択されたターゲットオブジェクトに基づいて、補正処理を行う。
【0212】
本実施形態では、図23(A)に示すように、移動体OB1の位置P200を頂点とし、半径rの円錐形のボリュームAR内に存在するターゲットオブジェクトであって、移動体OB1との距離が最も近いターゲットオブジェクトを選択する。例えば、図23(A)の例では、ターゲットオブジェクトOB2はボリュームAR外にいるので、まず除外される。そして、ボリュームAR内に存在する各ターゲットオブジェクトOB3〜OB5と移動体OB1と直線距離L3、L4、L5を求める。そして、最短距離であるターゲットオブジェクトOB4が選択される。
【0213】
また、本実施形態では、図23(B)に示すように、スクリーンSC上において、移動体OB1の投影点Oから最も近いターゲットオブジェクトを選択するようにしてもよい。例えば、図23(B)に示すように、円錐状のボリュームARを投影した円AR−1において、中心点O(移動体OB1の投影点)に最も近いオブジェクトを選択する。例えば、図23(A)のターゲットオブジェクトOB2〜OB5の各位置I2〜I5をスクリーンSCに投影した点をJ2〜J5とすると、OB4を投影した位置J4とOB5を投影した位置J5が中心から最も近い。したがって、OB4またはOB5を選択するようにしてもよい。なお、OB4とOB5のうち、OB4の方が移動体OB1に近いのでOB4を選択するようにしてもよい。
【0214】
なお、本実施形態では、各ターゲットオブジェクトの脅威力値などの所定のパラメータに基づいて、一のターゲットオブジェクトを選択するようにしてもよい。また、プレーヤの選択入力情報に基づき、複数のターゲットオブジェクトの中から一のターゲットオブジェクトの選択を受け付けるようにしてもよい。また、各ターゲットオブジェクト(敵機)が強いか弱いかを示す敵機の威力値に基づいて、一のターゲットオブジェクトを選択するようにしてもよい。
【0215】
また、複数の要素に「傾斜配点したテーブル」等を用意しておき、得点の一番高いターゲットオブジェクトを選択するようにしてもよい。例えば、移動体OB1とターゲットオブジェクトOB2〜OB5の直線距離を要素の1つとし、直線距離が近いほど高得点となる配点テーブルを用意し、移動体OB1とターゲットオブジェクトの直線距離に基づいて当該配点テーブルを参照して各ターゲットオブジェクトを配点する。また、スクリーンSCにおける移動体OB1の投影点(中心点)とターゲットオブジェクトの位置J2〜J5の距離を要素の1つとし、OB1の投影点に近いほど高得点となる配点テーブルを用意し、スクリーンSCにおいて移動体OB1の投影点とターゲットオブジェクトの投影点との距離に基づいて、当該配点テーブルを参照して各ターゲットオブジェクトを配点する。また、各ターゲットオブジェクトの脅威力値などの各パラメータを要素の1つとし、パラメータ毎に配点テーブルを用意し、当該配点テーブルを参照して各ターゲットオブジェクトを配点するようにしてもよい。そして、要素毎の配点を合計した合計点が最も高いターゲットオブジェクトを選択するようにする。
【0216】
また、ゲームマップなどの、シチュエーションにより配点テーブルの配点の傾斜を切り替えるようにしてもよい。つまり、ゲームマップなどの、シチュエーションが変化する場合には、各要素の配点テーブルを変化させるようにしてもよい。例えば、ゲームマップ1からゲームマップ2に切り替わる場合には、移動体OB1とターゲットオブジェクトOB2〜OB5の直線距離が近いほど高得点となる「配点テーブル1」から、移動体OB1とターゲットオブジェクトOB2〜OB5の直線距離が遠いほど高得点となる「配点テーブル2」に切り替えるようにしてもよい。
【0217】
6.フローチャート
図24は、本実施形態の補正処理の一例を示すフローチャートである。まずターゲットオブジェクト(敵機)を選択する処理を行う(ステップS1)。次に、ピッチの入力情報を受け付けたか否かを判定する(ステップS2)。そして、ピッチの入力情報を受け付けた場合には(ステップS2のY)、ピッチの入力情報に基づくピッチの回転処理中に、移動体(プレーヤの操作対象の移動体)とターゲットオブジェクトとの位置関係に基づいて、ロールの回転処理、及び、ヨーの回転処理の少なくとも一方を行う(ステップS3)。
【0218】
また、ピッチの回転処理の補正処理を行う。つまり、移動体とターゲットオブジェクトとを結ぶ方向に近づけるピッチの補正処理を行う(ステップS4)。なお、ピッチの入力情報を受け付けなかった場合には(ステップS2のN)、処理を終了する。以上で処理が終了する。
【0219】
7.応用例
本実施形態では、第3の入力情報に基づく第3の回転処理中(ヨーの回転中)に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理(ロール)、及び第2の回転処理(ピッチ)の少なくとも一方を、補正処理として行うようにしてもよい。
【0220】
7.1 ヨーの回転中におけるロールの補正処理
本実施形態では、第3の入力情報(ヨーの入力情報)に基づく第3の回転処理中(ヨーの回転処理中)に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理(ロール)を補正処理として行うようにしてもよい。
【0221】
例えば、図25に示すように、プレーヤからのヨーの入力情報(例えば、右ヨーの入力情報)を受け付けた場合に、ヨーの入力情報に基づくヨーの処理中に、移動体OB1とターゲットオブジェクトOB2との相対的な位置関係に基づいて移動体OB1を、角度θ300だけ右回転させるロールを行う。
【0222】
つまり、本実施形態では、ロールの入力情報によらずに、ヨーの入力情報に基づくヨーの回転処理中に、移動体OB1の移動方向が移動体OB1とターゲットオブジェクトOB2とを結ぶ方向に近づくように、ロールを補正処理として行う。
【0223】
また、本実施形態では、移動体OB1の位置とターゲットオブジェクトOB2の位置に基づいて、補正処理として行うロールの回転角度を決定する。例えば、図25に示すように、第1の軸回りにおいて移動体OB1とターゲットオブジェクトOB2とを結ぶ方向a302と移動体の向きa300とのなす角度φhに応じて、補正処理として行うロールの回転量(回転角度)を求める。例えば、ロールの回転量は、0以上であって角度φhよりも小さい値とする。例えば、ロールの回転量は、角度φhに補正係数K(0<K<1)を乗じた値等とすることができる。なお、本実施形態では、フレーム毎に補正処理として行うロールの回転角度を求める。
【0224】
また、本実施形態では、移動体OB1の位置とターゲットオブジェクトOB2の位置に基づいて、補正処理として行うロールの回転方向を決定する。例えば、第1の軸回りにおいて、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向に近い回転方向(内角をなす回転方向)に、移動体OB1を回転させる。なお、本実施形態では、フレーム毎に補正処理として行うロールの回転方向を求める。
【0225】
例えば、図25に示すように、第1の軸回りにおいて、移動体OB1の位置P301とターゲットオブジェクトOB2の位置Q301とを結ぶ方向a302と、移動体OB1の向きa300とのなす角度φhに応じて、補正処理として行うロールの回転量(回転角度)θ300を求める。例えば、ロールの回転量θ300は、角度φhに補正係数K(0<K<1)を乗じた値とする。そして、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向a302に近い回転方向(内角をなす回転方向)である右方向に、移動体OB1をθ300だけ回転させる。つまり、移動体OB1を、右ヨーの移動ベクトルVYa300に移動しながら、θ300だけ回転させる。
【0226】
このように、本実施形態では、プレーヤがヨーを行っている最中に右ロールへの補助を自然と行うことができるので、プレーヤに違和感を与えることなく、移動体OB1をターゲットオブジェクトOB2に接近させることができる。
【0227】
また、本実施形態では、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と移動体OB1の向きとのなす角度φhに応じて、補正処理として行う第1の回転処理の回転量(ロールの回転量)を変化させるようにしてもよい。例えば、図12(A)に示すように、第1の軸回りにおいて、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と移動体の移動方向とのなす角度φhが大きくなるにつれて、補正処理として行うロールの回転量を増大させる。
【0228】
また、本実施形態では、移動体OB1の移動速度に応じて、補正処理として行う第1の回転処理の回転量(ロールの回転量)を変化させるようにしてもよい。例えば、図12(B)に示すように、移動体OB1の移動速度が大きくなる(加速する)につれて、補正処理として行うロールの回転量を減少させる。
【0229】
なお、補正処理として行うロールの回転量の最大値は、第1の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と移動体の移動方向とのなす角度φhよりも小さい値とする。
【0230】
なお、本実施形態では、第1の軸回りにおいて移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と移動体の向きとのなす角度φhと、移動体OB1の移動速度とに応じて、補正処理として行うロールの回転量を変化させるようにしてもよい。
【0231】
本実施形態では、右ヨーだけでなく左ヨーに基づく入力情報に基づくヨーの処理中に、ロールの補正処理を行うようにしてもよい。
【0232】
7.2 ヨーの回転中におけるピッチの補正処理
本実施形態では、第3の入力情報(ヨーの入力情報)に基づく第3の回転処理中(ヨーの回転中)に、移動体とターゲットオブジェクトとの位置関係に基づいて、第2の回転処理(ピッチ)を補正処理として行うようにしてもよい。
【0233】
例えば、図26に示すように、プレーヤからヨーの入力情報を受け付けた場合に、プレーヤの右方向へのヨーの入力情報に基づき、移動体OB1を位置P310から移動ベクトルVYa310方向に右移動させ、当該ヨーの入力情報に基づくヨーの処理中に、移動体OB1とターゲットオブジェクトOB2との相対的な位置関係に基づいて、移動ベクトルVPa310に基づく上方向へ移動させるピッチアップを行う。つまり、本実施形態では、ピッチの入力情報によらずに、第3の入力情報に基づく第3の回転処理中(ヨーの処理中)に、移動体OB1の移動方向が移動体OB1とターゲットオブジェクトOB2とを結ぶ方向に近づくように、第2の回転処理(ピッチ)を補正処理として行う。結果的に、移動体OB1は、移動ベクトルV310の方向に移動させる処理を行う。
【0234】
また、本実施形態では、移動体OB1の位置P310とターゲットオブジェクトOB2の位置Q310とに基づいて、補正処理として行うピッチの回転角度を決定する。例えば、図27に示すように、第2の軸回りにおいて移動体OB1とターゲットオブジェクトOB2とを結ぶ方向a310と移動体の向きV309とのなす角度φiに応じて、補正処理として行うピッチの回転量(回転角度)を求める。例えば、ピッチの回転量は、0以上であって角度φiよりも小さい値とする。例えば、ピッチの回転量は、角度φiに補正係数K(0<K<1)を乗じた値等とすることができる。なお、本実施形態では、フレーム毎に補正処理として行うピッチの回転角度を求める。
【0235】
また、本実施形態では、移動体OB1の位置P310とターゲットオブジェクトOB2の位置Q310に基づいて、補正処理として行うピッチの回転方向を決定する。例えば、第2の軸回りにおいて、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向に近い回転方向(内角をなす回転方向)に、移動体OB1を回転させる。なお、本実施形態では、フレーム毎に補正処理として行うロールの回転方向を求める。
【0236】
例えば、図27に示すように、第2の軸回りにおいて、移動体OB1の位置P310とターゲットオブジェクトOB2の位置Q310とを結ぶ方向a310と、移動体OB1の向きV309とのなす角度φiに応じて、補正処理として行うピッチの回転量(回転角度)θ310を求める。例えば、ピッチの回転量θ310は、角度φiに補正係数K(0<K<1)を乗じた値とする。そして、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向a310に近い回転方向(内角をなす回転方向)である上方向に、移動体OB1をθ310だけ回転させる。つまり、移動体OB1を、右ヨーの回転を行いながら(移動ベクトルVYa310に移動しながら)、θ310だけ回転させる(移動ベクトルVPa310だけ上昇させる)。
【0237】
このように、本実施形態では、プレーヤがヨーを行っている最中にピッチアップへの補助を自然と行うことができるので、プレーヤに違和感を与えることなく、移動体OB1をターゲットオブジェクトOB2に接近させることができる。
【0238】
また、本実施形態では、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と移動体OB1の向きとのなす角度φiに応じて、補正処理として行う第2の回転処理の回転量(ピッチの回転量)を変化させるようにしてもよい。例えば、図12(A)に示すように、第2の軸回りにおいて、移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と移動体の移動方向とのなす角度φiが大きくなるにつれて、補正処理として行うピッチの回転量を増大させる。
【0239】
また、本実施形態では、移動体OB1の移動速度に応じて、補正処理として行う第2の回転処理の回転量(ピッチの回転量)を変化させるようにしてもよい。例えば、図12(B)に示すように、移動体OB1の移動速度が大きくなるにつれて、補正処理として行うピッチの回転量を減少させる。
【0240】
なお、補正処理として行うピッチの回転量の最大値は、第2の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と移動体の移動方向とのなす角度φiよりも小さい値とする。
【0241】
なお、本実施形態では、第2の軸回りにおいて移動体OB1とターゲットオブジェクトOB2とを結ぶ方向と移動体の向きとのなす角度φiと、移動体OB1の移動速度とに応じて、補正処理として行うピッチの回転量を変化させるようにしてもよい。
【0242】
本実施形態では、右ヨーだけでなく左ヨーに基づく入力情報に基づくヨーの処理中に、ピッチの補正処理を行うようにしてもよい。
【0243】
8.通信制御の説明
8.1 オンラインゲームの処理例1
本実施形態では、複数の端末10とネットワークを介して相互にデータの送受信を行い、オンラインフライトシューティングゲームを実現可能としてもよい。つまり、本実施形態では、ピア・ツー・ピア方式のオンラインゲームに適用してもよい。
【0244】
図28及び図29は、本実施形態のネットワークシステムの構成を示す図である。例えば、本実施形態のネットワークシステムでは、複数の端末10A〜10Cの間で無線通信を行って、各端末10A〜10Cの所有者が対戦プレイや協力プレイを行うことができる。なお、本実施形態のネットワークシステムでは、複数の端末10A〜10Cの間で有線通信を行ってもよい。
【0245】
無線通信の態様としては、図28に示すように、各端末10A〜10Cが自律分散的にネットワークを構築し、直接的にゲーム情報等を含むパケットの送受信を行うアドホックモードと、図29に示すように、端末10AがアクセスポイントACSP1を介し、端末10B、10CがアクセスポイントACSP2を介して、間接的にゲーム情報等を含むパケットの送受信を行うインフラストラクチャモードとがある。インフラストラクチャモードでは、アクセスポイントACSP1又はASCP2を介してインターネットInet(公衆通信網)にアクセスすることができる。そして、各端末10A〜10Cは、インターネットInetに接続されたサーバ20との間でゲーム情報あるいはファームウェアのアップデート情報等を含むパケットを、アクセスポイントACSP1又はACSP2を介して送受信することができる。
【0246】
本実施形態のネットワークシステムは、端末10Aの移動体OB1が、他の端末10Bの移動体OB2を攻撃するゲーム演算を行うようにしてもよい。また、本実施形態のネットワークシステムは、複数の端末10A、10Bそれぞれの操作対象の移動体OB1、OB2によって構成される第1のグループと、複数の端末10C、10Dそれぞれの操作対象の移動体OB3、OB4によって構成される第2のグループとが対戦を行うゲーム演算を行うようにしてもよい。
【0247】
また、本実施形態では、各端末が相互にネットワークを介して移動情報等のデータに基づいて、端末のオブジェクト空間に配置される他の機体(他の端末を操作するプレーヤの操作対象の移動体)を移動・動作させる。つまり、各端末10は、ネットワークを介して、移動体の挙動(向き、移動方向、位置、移動速度)などを含むデータ、アナログレバー、ボタンの入力情報、加速度値などのデータを送受信する。
【0248】
例えば、描画のフレームレートで(例えば、1/60秒毎)、端末10Aが、端末10Aの操作対象の機体OB1の位置Pを端末10Bに送信する。一方、端末10Bにおいても、端末10Aと同じように、描画のフレームレートで端末10Bの操作対象の機体OB2の位置Qを端末10Aに送信する。
【0249】
また、各端末は、各端末のオブジェクト空間における仮想カメラから見える画像を、ゲーム画像として生成する処理を行う。従って、端末毎に、その端末が操作する移動体の挙動に応じた画像が生成される。
【0250】
8.2 オンラインゲームの処理例2
また、本実施形態では、クライアント・サーバ方式のオンラインゲームに適用してもよい。つまり、サーバ20が、端末10で行う一部の処理(例えば、処理部100の少なくとも1つの処理)を行うようにしてもよい。図30に示すように、サーバ20が、ネットワーク(例えば、インターネット)を介して複数の端末10A〜10Cと接続され、サーバ20が、端末10から入力情報を受信する。そして、サーバ20が、受信した第1、第2、第3の入力情報に基づいて画像を生成し、生成した画像を端末10に送信してもよい。
【0251】
図31は、サーバ20の機能ブロック図の例を示す。なお本実施形態のサーバ20は図31の構成要素(各部)の一部を省略した構成としてもよい。
【0252】
記憶部270は、処理部200や通信部296などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0253】
情報記憶媒体280(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部200は、情報記憶媒体280に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体280には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0254】
通信部296は外部(例えば端末10、他のサーバ)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0255】
なお、他のサーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体280や記憶部270に記憶してもよい。このようにプログラムやデータを受信して端末を機能させる場合も本発明の範囲内に含む。
【0256】
処理部200(プロセッサ)は、受信したデータやプログラムなどに基づいて、ゲーム処理、画像生成処理、音処理などの処理を行う。
【0257】
この処理部200は記憶部270内の主記憶部271をワーク領域として各種処理を行う。処理部200の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0258】
処理部200は、オブジェクト空間設定部211、移動・動作処理部212、補正処理部213、選択部214、ゲーム演算部215、仮想カメラ制御部217、通信制御部218、描画部220、音処理部230を含む。なお、これらの一部を省略する構成としてもよい。
【0259】
オブジェクト空間設定部211は、オブジェクトをオブジェクト空間(仮想的3次元空間)に配置する処理を行う。例えば、オブジェクト空間設定部211は、端末10のオブジェクト空間設定部111と同様の処理を行う。
【0260】
移動・動作処理部212は、オブジェクト空間にあるオブジェクトの移動・動作演算を行う。すなわち、通信制御部218から受信した入力情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。
【0261】
移動体制御部212aは、オブジェクト空間において、移動体の挙動を制御する。移動体制御部212aは、端末10の移動体制御部112aと同様の処理を行う。
【0262】
特に、本実施形態の移動体制御部212aは、移動体を回転させて移動体の移動方向を制御する。例えば、移動体制御部112aは、受信した第1の入力情報に基づき第1の軸回りに移動体を回転させる第1の回転処理(ロール)と、受信した第2の入力情報に基づき第2の軸回りに移動体を回転させる第2の回転処理(ピッチ)と、受信した第3の入力情報に基づき第3の軸回りに移動体を回転させる第3の回転処理(ヨー)とを行う。
【0263】
補正処理部213は、第1、第2、第3の回転処理のうち少なくとも1つを補正する補正処理を行う。補正処理部213は、端末10の補正処理部113と同様の処理を行う。
【0264】
例えば、補正処理部213は、受信した第2の入力情報に基づく第2の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第3の回転処理の少なくとも一方を、補正処理として行う。例えば、補正処理部213は、移動体の移動方向が、移動体とターゲットオブジェクトとを結ぶ方向に近づくように、第1の回転処理及び第3の回転処理の少なくとも一方を、補正処理として行う。なお、補正処理部213は、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度に応じて、補正処理として行う第1の回転処理及び第3の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。また、補正処理部213は、移動体の速度に応じて、補正処理として行う第1の回転処理及び第3の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。また、補正処理部213は、移動体と選択されたターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第3の回転処理の少なくとも一方を、補正処理として行うようにしてもよい。
【0265】
また、補正処理部213は、受信した第3の入力情報に基づく第3の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第2の回転処理の少なくとも一方を、補正処理として行う。例えば、補正処理部213は、移動体の移動方向が、移動体とターゲットオブジェクトとを結ぶ方向に近づくように、第1の回転処理及び第2の回転処理の少なくとも一方を、補正処理として行う。なお、補正処理部213は、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度に応じて、補正処理として行う第1の回転処理及び第2の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。また、補正処理部213は、移動体の速度に応じて、補正処理として行う第1の回転処理及び第2の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。また、補正処理部213は、移動体と選択されたターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第2の回転処理の少なくとも一方を、補正処理として行うようにしてもよい。
【0266】
また、補正処理部213は、第1の入力情報を受信した場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第1の回転処理の補正処理を行う。例えば、補正処理部213は、第1の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第1の入力情報に基づく移動体の向きとのなす角度に応じて、第1の回転処理の回転量を変化させる。また、補正処理部213は、移動体の速度に応じて、第1の回転処理の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。
【0267】
また、補正処理部213は、第2の入力情報を受信した場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第2の回転処理の補正処理を行う。例えば、補正処理部213は、第2の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第2の入力情報に基づく移動体の向きとのなす角度に応じて、第2の回転処理の回転量を変化させる。また、補正処理部213は、移動体の速度に応じて、第2の回転処理の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。
【0268】
また、補正処理部213は、第3の入力情報を受信した場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第3の回転処理の補正処理を行う。例えば、補正処理部213は、第3の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第3の入力情報に基づく移動体の向きとのなす角度に応じて、第3の回転処理の回転量を変化させる。なお、補正処理部213は、移動体の速度に応じて、第3の回転処理の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。
【0269】
選択部214は、ターゲットオブジェクトが複数存在する場合には、移動体と各ターゲットオブジェクトとの位置関係に基づいて、一のターゲットオブジェクトを選択する処理を行う。
【0270】
ゲーム演算部215は、種々のゲーム処理を行う。例えば、ゲーム演算部215は、端末10のゲーム演算部115と同様な処理を行う。
【0271】
仮想カメラ制御部217は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。例えば、仮想カメラ制御部217は、端末10の仮想カメラ制御部117と同様な処理を行う。
【0272】
通信制御部218は、端末10とネットワークを介して相互にデータを送受信する処理を行うようにしてもよい。
【0273】
なお、本実施形態のサーバ20は、通信制御で必要となるネットワーク情報を端末10に送信してもよい。なお、例えば、サーバ20は、各端末に個別に付与される端末の識別情報と、端末の識別情報に対応付けられたパケットの送信先を指定する宛先情報を管理する。
【0274】
サーバ20の通信制御部218は、端末10に送信するパケットを生成する処理、パケット送信先の端末のIPアドレスやポート番号を指定する処理、受信したパケットに含まれるデータを記憶部270に保存する処理、受信したパケットを解析する処理、その他のパケットの送受信に関する制御処理等を行う。
【0275】
また、本実施形態の通信制御部218は、端末と接続が確立されてから接続が切断されるまで、データを所定周期(例えば、1秒周期で)互いに送受信する処理を行う。ここで、端末10から送信されるデータは、端末10の入力部160からの入力情報としてもよいし、各端末10の操作対象のオブジェクト(機体、移動体)の位置情報、移動情報としてもよい。
【0276】
また、本実施形態の通信制御部218は、端末10から送信されたパケットを受信すると、受信したパケットを解析し、パケットに含まれる他の端末の操作対象のオブジェクトの位置情報などのデータを主記憶部271に記憶する処理を行う。
【0277】
特に、本実施形態の通信制御部218は、第1の軸回りに移動体を回転させる第1の入力情報と、第2の軸回りに移動体を回転させる第2の入力情報と、第3の軸回りに移動体を回転させる第3の入力情報とを、ネットワークを介して端末10から受信する。
【0278】
また、本実施形態の通信制御部218は、ネットワークを介して、補正された第1、2、3の回転処理結果を、端末10に送信するようにしてもよい。また、通信制御部218は、端末10に、表示データ(画像データ等)を送信するようにしてもよい。
【0279】
また、通信制御部218は、処理部200で行われた処理結果を、端末10に送信するようにしてもよい。例えば、通信制御部218は、移動体OB1、ターゲットオブジェクトOB2それぞれの移動情報(位置情報、移動方向、移動速度など)を、端末10に送信するようにしてもよい。また、通信制御部218は、移動体OB1の補正処理後の移動情報を、端末10に送信するようにしてもよい。また、通信制御部218は、ゲーム演算結果を、端末10に送信するようにしてもよい。
【0280】
描画部220は、処理部200で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成する。描画部220の処理は、端末10の描画部120と同様な処理を行う。
【0281】
9.応用例
本実施形態では、プレーヤの入力に基づいて補正具合を調整するようにしてもよい。
【0282】
例えば、ピッチの入力情報に基づくピッチの回転処理中にロールの補正処理を行う場合において、補正用の入力情報を受け付けている場合(補正用の入力信号の検出中)は、補正用の入力情報を受け付けていない場合(補正用の入力信号の不検出の場合)よりも、ロールの補正を強くかけるようにしてもよい。つまり、ピッチの入力情報に基づくピッチの処理中にロールの補正処理を行う場合において、補正用の入力情報を受け付けている場合は、補正用の入力情報を受け付けていない場合よりも、補正処理として行うロールの回転量を増大させるようにしてもよい。なお、補正用の入力情報は、ロールの入力情報(アナログレバーLSの傾斜角度値)でもよいし、ロール入力情報以外の入力ボタンや他のレバーの入力情報でもよい。
【0283】
また、ピッチの入力情報に基づくピッチの回転処理中にヨーの補正処理を行う場合において、補正用の入力情報を受け付けている場合は、補正用の入力情報を受け付けていない場合よりも、ヨーの補正を強くかけるようにしてもよい。つまり、ピッチの入力情報に基づくピッチの処理中にヨーの補正処理を行う場合において、補正用の入力情報を受け付けている場合は、補正用の入力情報を受け付けていない場合よりも、補正処理として行うヨーの回転量を増大させるようにしてもよい。なお、補正用の入力情報は、ヨー操作でもよいし、ヨー操作以外の入力ボタンや他のレバーの入力情報でもよい。
【0284】
また、ヨーの入力情報に基づくヨーの回転処理中にロールの補正処理を行う場合において、補正用の入力情報を受け付けている場合は、補正用の入力情報を受け付けていない場合よりも、ロールの補正を強くかけるようにしてもよい。つまり、ヨーの入力情報に基づくヨーの回転処理中にロールの補正処理を行う場合において、補正用の入力情報を受け付けている場合は、補正用の入力情報を受け付けていない場合よりも、補正処理として行うロールの回転量を増大させるようにしてもよい。なお、補正用の入力情報は、ロールの入力情報でもよいし、ロール入力情報以外の入力ボタンや他のレバーの入力情報でもよい。
【0285】
また、ヨーの入力情報に基づくヨーの回転処理中にピッチの補正処理を行う場合において、補正用の入力情報を受け付けている場合は、補正用の入力情報を受け付けていない場合よりも、ピッチの補正を強くかけるようにしてもよい。つまり、ヨーの入力情報に基づくヨーの回転処理中にピッチの補正処理を行う場合において、補正用の入力情報を受け付けている場合は、補正用の入力情報を受け付けていない場合よりも、補正処理として行うピッチの回転量を増大させるようにしてもよい。なお、補正用の入力情報は、ピッチの入力情報でもよいし、ピッチ入力情報以外の入力ボタンや他のレバーの入力情報でもよい。
【0286】
また本発明は、業務用ゲームシステム等の種々のゲームシステムに適用できる。また、本実施形態では、フライトシューティンゲームに限らず、プレーヤの操作対象のプレーヤキャラクタが武器(拳銃)などを用いて、敵を攻撃するシューティングゲームに応用してもよい。
【0287】
例えば、移動体、ターゲットオブジェクトは、機体に限らない。例えば、ボール、弾などの種々の移動体の移動制御を行うための、第1、第2、第3の各軸回りの回転角度の入力情報を受け付けて、入力情報に基づきターゲットオブジェクト(ホール、ゴールなどの目標対象)に向けて移動させる移動制御において、移動体(ボール、弾)と、ターゲットオブジェクト(ホール、ゴールなどの目標対象)との位置関係に基づき、補正処理を行うようにしてもよい。
【0288】
また、本実施形態の補正処理は、シューティングゲームの他、アクションゲーム、ロールプレイングゲーム、対戦ゲーム、レースゲーム、音楽ゲーム、格闘ゲームなど種々のゲーム装置、ゲームを提供するサーバで行うようにしてもよい。
【0289】
なお、本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0290】
本発明は、実施の形態で説明した構成と実質的に同一の構成(例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成)を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。なお、本実施形態で説明した実施例は、自由に組み合わせることができる。
【符号の説明】
【0291】
10 端末、20 サーバ、
100 処理部、110 受け付け部、111 オブジェクト空間設定部、
112 移動・動作処理部、112a 移動体制御部、113 補正処理部、
114 選択部、115 ゲーム演算部、116 表示制御部、
117 仮想カメラ制御部、118 通信制御部、120 描画部、130 音処理部、160 入力部、162 検出部、170 記憶部、171 主記憶部、
172 画像バッファ、173 オブジェクトデータ記憶部、
180 情報記憶媒体、190 表示部、192 音出力部、196 通信部、
200 処理部、211 オブジェクト空間設定部、
212 移動・動作処理部、212a 移動体制御部、213 補正処理部、
214 選択部、215 ゲーム演算部、
217 仮想カメラ制御部、218 通信制御部、220 描画部、230 音処理部、
270 記憶部、271 主記憶部、272 画像バッファ、
273 オブジェクトデータ記憶部、280 情報記憶媒体、296 通信部、
OB1 移動体、OB2 ターゲットオブジェクト

【特許請求の範囲】
【請求項1】
オブジェクト空間において、移動体を回転させて移動体の移動方向を制御するプログラムであって、
移動体の前後方向を第1の軸とし、第1の軸回りに移動体を回転させる第1の入力情報と、移動体の左右方向を第2の軸とし、第2の軸回りに移動体を回転させる第2の入力情報と、移動体の上下方向を第3軸とし、第3の軸回りに移動体を回転させる第3の入力情報とを、個別に受け付ける受け付け部と、
第1の入力情報に基づき第1の軸回りに移動体を回転させる第1の回転処理と、第2の入力情報に基づき第2の軸回りに移動体を回転させる第2の回転処理と、第3の入力情報に基づき第3の軸回りに移動体を回転させる第3の回転処理とを行う移動体制御部と、
第1、第2、第3の回転処理のうち少なくとも1つを補正する補正処理を行う補正処理部と、
オブジェクト空間における仮想カメラから見える画像を生成する描画部として、コンピュータを機能させ、
前記補正処理部が、
第2の入力情報に基づく第2の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第3の回転処理の少なくとも一方を、前記補正処理として行うことを特徴とするプログラム。
【請求項2】
請求項1において、
前記補正処理部が、
移動体の移動方向が、移動体とターゲットオブジェクトとを結ぶ方向に近づくように、第1の回転処理及び第3の回転処理の少なくとも一方を、前記補正処理として行うことを特徴とするプログラム。
【請求項3】
請求項1又は2において、
前記補正処理部が、
移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度に応じて、補正処理として行う第1の回転処理及び第3の回転処理の少なくとも一方の回転量を変化させることを特徴とするプログラム。
【請求項4】
請求項1〜3のいずれかにおいて、
前記補正処理部が、
移動体の速度に応じて、補正処理として行う第1の回転処理及び第3の回転処理の少なくとも一方の回転量を変化させることを特徴とするプログラム。
【請求項5】
請求項1〜4のいずれかにおいて、
前記ターゲットオブジェクトが複数存在する場合には、前記移動体と各ターゲットオブジェクトとの位置関係に基づいて、一のターゲットオブジェクトを選択する処理を行う選択部として、コンピュータを機能させ、
前記補正処理部が、
移動体と選択されたターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第3の回転処理の少なくとも一方を、前記補正処理として行うことを特徴とするプログラム。
【請求項6】
オブジェクト空間において、移動体を回転させて移動体の移動方向を制御するプログラムであって、
移動体の前後方向を第1の軸とし、第1の軸回りに移動体を回転させる第1の入力情報と、移動体の左右方向を第2の軸とし、第2の軸回りに移動体を回転させる第2の入力情報と、移動体の上下方向を第3軸とし、第3の軸回りに移動体を回転させる第3の入力情報とを、個別に受け付ける受け付け部と、
第1の入力情報に基づき第1の軸回りに移動体を回転させる第1の回転処理と、第2の入力情報に基づき第2の軸回りに移動体を回転させる第2の回転処理と、第3の入力情報に基づき第3の軸回りに移動体を回転させる第3の回転処理とを行う移動体制御部と、
第1、第2、第3の回転処理のうち少なくとも1つを補正する補正処理を行う補正処理部と、
オブジェクト空間における仮想カメラから見える画像を生成する描画部として、コンピュータを機能させ、
前記補正処理部が、
第3の入力情報に基づく第3の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第2の回転処理の少なくとも一方を、前記補正処理として行うことを特徴とするプログラム。
【請求項7】
請求項6において、
前記補正処理部が、
移動体の移動方向が、移動体とターゲットオブジェクトとを結ぶ方向に近づくように、第1の回転処理及び第2の回転処理の少なくとも一方を、前記補正処理として行うことを特徴とするプログラム。
【請求項8】
請求項6又は7において、
前記補正処理部が、
移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度に応じて、補正処理として行う第1の回転処理及び第2の回転処理の少なくとも一方の回転量を変化させることを特徴とするプログラム。
【請求項9】
請求項6〜8のいずれかにおいて、
前記補正処理部が、
移動体の速度に応じて、補正処理として行う第1の回転処理及び第2の回転処理の少なくとも一方の回転量を変化させることを特徴とするプログラム。
【請求項10】
請求項6〜9のいずれかにおいて、
前記ターゲットオブジェクトが複数存在する場合には、前記移動体と各ターゲットオブジェクトとの位置関係に基づいて、一のターゲットオブジェクトを選択する処理を行う選択部として、コンピュータを機能させ、
前記補正処理部が、
移動体と選択されたターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第2の回転処理の少なくとも一方を、前記補正処理として行うことを特徴とするプログラム。
【請求項11】
請求項1〜10のいずれかにおいて、
前記補正処理部が、
第1の入力情報を受け付けた場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第1の回転処理の補正処理を行うことを特徴とするプログラム。
【請求項12】
請求項11において、
前記補正処理部が、
第1軸の回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第1の入力情報に基づく移動体の向きとのなす角度に応じて、第1の回転処理の回転量を変化させることを特徴とするプログラム。
【請求項13】
請求項11又は12において、
前記補正処理部が、
移動体の速度に応じて、第1の回転処理の回転量を変化させることを特徴とするプログラム。
【請求項14】
請求項1〜13のいずれかにおいて、
前記補正処理部が、
第2の入力情報を受け付けた場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第2の回転処理の補正処理を行うことを特徴とするプログラム。
【請求項15】
請求項14において、
前記補正処理部が、
第2の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第2の入力情報に基づく移動体の向きとのなす角度に応じて、第2の回転処理の回転量を変化させることを特徴とするプログラム。
【請求項16】
請求項14又は15において、
前記補正処理部が、
移動体の速度に応じて、第2の回転処理の回転量を変化させることを特徴とするプログラム。
【請求項17】
請求項1〜16のいずれかにおいて、
前記補正処理部が、
第3の入力情報を受け付けた場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第3の回転処理の補正処理を行うことを特徴とするプログラム。
【請求項18】
請求項17において、
前記補正処理部が、
第3軸の回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第3の入力情報に基づく移動体の向きとのなす角度に応じて、第3の回転処理の回転量を変化させることを特徴とするプログラム。
【請求項19】
請求項17又は18において、
前記補正処理部が、
移動体の速度に応じて、第3の回転処理の回転量を変化させることを特徴とするプログラム。
【請求項20】
請求項1〜19のいずれかにおいて、
前記描画部が、
一人称視点によって前記移動体の指示表示物を含む画像を生成する処理を行う、又は、三人称視点によって前記移動体を含む画像を生成する処理を行うことを特徴とするプログラム。
【請求項21】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1〜20のいずれかのプログラムを記憶されたことを特徴とする情報記憶媒体。
【請求項22】
オブジェクト空間において、移動体を回転させて移動体の移動方向を制御するサーバであって、
移動体の前後方向を第1の軸とし、第1の軸回りに移動体を回転させる第1の入力情報と、移動体の左右方向を第2の軸とし、第2の軸回りに移動体を回転させる第2の入力情報と、移動体の上下方向を第3軸とし、第3の軸回りに移動体を回転させる第3の入力情報とを、ネットワークを介して端末から受信する通信制御部と、
第1の入力情報に基づき第1の軸回りに移動体を回転させる第1の回転処理と、第2の入力情報に基づき第2の軸回りに移動体を回転させる第2の回転処理と、第3の入力情報に基づき第3の軸回りに移動体を回転させる第3の回転処理とを行う移動体制御部と、
第1、第2、第3の回転処理のうち少なくとも1つを補正する補正処理を行う補正処理部と、
オブジェクト空間における仮想カメラから見える画像を生成する描画部と、を含み、
前記補正処理部が、
第2の入力情報に基づく第2の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第3の回転処理の少なくとも一方を、前記補正処理として行うことを特徴とするサーバ。
【請求項23】
オブジェクト空間において、移動体を回転させて移動体の移動方向を制御するサーバであって、
移動体の前後方向を第1の軸とし、第1の軸回りに移動体を回転させる第1の入力情報と、移動体の左右方向を第2の軸とし、第2の軸回りに移動体を回転させる第2の入力情報と、移動体の上下方向を第3軸とし、第3の軸回りに移動体を回転させる第3の入力情報とを、ネットワークを介して端末から受信する通信制御部と、
第1の入力情報に基づき第1の軸回りに移動体を回転させる第1の回転処理と、第2の入力情報に基づき第2の軸回りに移動体を回転させる第2の回転処理と、第3の入力情報に基づき第3の軸回りに移動体を回転させる第3の回転処理とを行う移動体制御部と、
第1、第2、第3の回転処理のうち少なくとも1つを補正する補正処理を行う補正処理部と、
オブジェクト空間における仮想カメラから見える画像を生成する描画部と、を含み、
前記補正処理部が、
第3の入力情報に基づく第3の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第1の回転処理及び第2の回転処理の少なくとも一方を行うことを特徴とするサーバ。

【図1】
image rotate

【図2】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図30】
image rotate

【図31】
image rotate

【図3】
image rotate

【図28】
image rotate

【図29】
image rotate


【公開番号】特開2012−252659(P2012−252659A)
【公開日】平成24年12月20日(2012.12.20)
【国際特許分類】
【出願番号】特願2011−126767(P2011−126767)
【出願日】平成23年6月6日(2011.6.6)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】