(57)【要約】      （修正有）【課題】移動体をターゲットオブジェクトの方向に容易に移動させることが可能なプログラム、情報記憶媒体、及びサーバを提供する。【解決手段】移動体の前後方向を第１の軸とし、第１の軸回りに移動体を回転させる第１の入力情報と、移動体の左右方向を第２の軸とし、第２の軸回りに移動体を回転させる第２の入力情報と、移動体の上下方向を第３の軸とし、第３の軸回りに移動体を回転させる第３の入力情報とを個別に受け付け、第１の入力情報に基づき第１の軸回りに移動体を回転させる第１の回転処理と、第２の入力情報に基づき第２の軸回りに移動体を回転させる第２の回転処理と、第３の入力情報に基づき第３の軸回りに移動体を回転させる第３の回転処理とを行い、第２の入力情報に基づく第２の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第３の回転処理の少なくとも一方の補正処理を行う。【選択図】図２４
2012252659.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト空間において、移動体を回転させて移動体の移動方向を制御するプログラムであって、
移動体の前後方向を第１の軸とし、第１の軸回りに移動体を回転させる第１の入力情報と、移動体の左右方向を第２の軸とし、第２の軸回りに移動体を回転させる第２の入力情報と、移動体の上下方向を第３軸とし、第３の軸回りに移動体を回転させる第３の入力情報とを、個別に受け付ける受け付け部と、
第１の入力情報に基づき第１の軸回りに移動体を回転させる第１の回転処理と、第２の入力情報に基づき第２の軸回りに移動体を回転させる第２の回転処理と、第３の入力情報に基づき第３の軸回りに移動体を回転させる第３の回転処理とを行う移動体制御部と、
第１、第２、第３の回転処理のうち少なくとも１つを補正する補正処理を行う補正処理部と、
オブジェクト空間における仮想カメラから見える画像を生成する描画部として、コンピュータを機能させ、
前記補正処理部が、
第２の入力情報に基づく第２の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第３の回転処理の少なくとも一方を、前記補正処理として行うことを特徴とするプログラム。
【請求項２】
請求項１において、
前記補正処理部が、
移動体の移動方向が、移動体とターゲットオブジェクトとを結ぶ方向に近づくように、第１の回転処理及び第３の回転処理の少なくとも一方を、前記補正処理として行うことを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記補正処理部が、
移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度に応じて、補正処理として行う第１の回転処理及び第３の回転処理の少なくとも一方の回転量を変化させることを特徴とするプログラム。
【請求項４】
請求項１〜３のいずれかにおいて、
前記補正処理部が、
移動体の速度に応じて、補正処理として行う第１の回転処理及び第３の回転処理の少なくとも一方の回転量を変化させることを特徴とするプログラム。
【請求項５】
請求項１〜４のいずれかにおいて、
前記ターゲットオブジェクトが複数存在する場合には、前記移動体と各ターゲットオブジェクトとの位置関係に基づいて、一のターゲットオブジェクトを選択する処理を行う選択部として、コンピュータを機能させ、
前記補正処理部が、
移動体と選択されたターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第３の回転処理の少なくとも一方を、前記補正処理として行うことを特徴とするプログラム。
【請求項６】
オブジェクト空間において、移動体を回転させて移動体の移動方向を制御するプログラムであって、
移動体の前後方向を第１の軸とし、第１の軸回りに移動体を回転させる第１の入力情報と、移動体の左右方向を第２の軸とし、第２の軸回りに移動体を回転させる第２の入力情報と、移動体の上下方向を第３軸とし、第３の軸回りに移動体を回転させる第３の入力情報とを、個別に受け付ける受け付け部と、
第１の入力情報に基づき第１の軸回りに移動体を回転させる第１の回転処理と、第２の入力情報に基づき第２の軸回りに移動体を回転させる第２の回転処理と、第３の入力情報に基づき第３の軸回りに移動体を回転させる第３の回転処理とを行う移動体制御部と、
第１、第２、第３の回転処理のうち少なくとも１つを補正する補正処理を行う補正処理部と、
オブジェクト空間における仮想カメラから見える画像を生成する描画部として、コンピュータを機能させ、
前記補正処理部が、
第３の入力情報に基づく第３の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第２の回転処理の少なくとも一方を、前記補正処理として行うことを特徴とするプログラム。
【請求項７】
請求項６において、
前記補正処理部が、
移動体の移動方向が、移動体とターゲットオブジェクトとを結ぶ方向に近づくように、第１の回転処理及び第２の回転処理の少なくとも一方を、前記補正処理として行うことを特徴とするプログラム。
【請求項８】
請求項６又は７において、
前記補正処理部が、
移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度に応じて、補正処理として行う第１の回転処理及び第２の回転処理の少なくとも一方の回転量を変化させることを特徴とするプログラム。
【請求項９】
請求項６〜８のいずれかにおいて、
前記補正処理部が、
移動体の速度に応じて、補正処理として行う第１の回転処理及び第２の回転処理の少なくとも一方の回転量を変化させることを特徴とするプログラム。
【請求項１０】
請求項６〜９のいずれかにおいて、
前記ターゲットオブジェクトが複数存在する場合には、前記移動体と各ターゲットオブジェクトとの位置関係に基づいて、一のターゲットオブジェクトを選択する処理を行う選択部として、コンピュータを機能させ、
前記補正処理部が、
移動体と選択されたターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第２の回転処理の少なくとも一方を、前記補正処理として行うことを特徴とするプログラム。
【請求項１１】
請求項１〜１０のいずれかにおいて、
前記補正処理部が、
第１の入力情報を受け付けた場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第１の回転処理の補正処理を行うことを特徴とするプログラム。
【請求項１２】
請求項１１において、
前記補正処理部が、
第１軸の回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第１の入力情報に基づく移動体の向きとのなす角度に応じて、第１の回転処理の回転量を変化させることを特徴とするプログラム。
【請求項１３】
請求項１１又は１２において、
前記補正処理部が、
移動体の速度に応じて、第１の回転処理の回転量を変化させることを特徴とするプログラム。
【請求項１４】
請求項１〜１３のいずれかにおいて、
前記補正処理部が、
第２の入力情報を受け付けた場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第２の回転処理の補正処理を行うことを特徴とするプログラム。
【請求項１５】
請求項１４において、
前記補正処理部が、
第２の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第２の入力情報に基づく移動体の向きとのなす角度に応じて、第２の回転処理の回転量を変化させることを特徴とするプログラム。
【請求項１６】
請求項１４又は１５において、
前記補正処理部が、
移動体の速度に応じて、第２の回転処理の回転量を変化させることを特徴とするプログラム。
【請求項１７】
請求項１〜１６のいずれかにおいて、
前記補正処理部が、
第３の入力情報を受け付けた場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第３の回転処理の補正処理を行うことを特徴とするプログラム。
【請求項１８】
請求項１７において、
前記補正処理部が、
第３軸の回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第３の入力情報に基づく移動体の向きとのなす角度に応じて、第３の回転処理の回転量を変化させることを特徴とするプログラム。
【請求項１９】
請求項１７又は１８において、
前記補正処理部が、
移動体の速度に応じて、第３の回転処理の回転量を変化させることを特徴とするプログラム。
【請求項２０】
請求項１〜１９のいずれかにおいて、
前記描画部が、
一人称視点によって前記移動体の指示表示物を含む画像を生成する処理を行う、又は、三人称視点によって前記移動体を含む画像を生成する処理を行うことを特徴とするプログラム。
【請求項２１】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１〜２０のいずれかのプログラムを記憶されたことを特徴とする情報記憶媒体。
【請求項２２】
オブジェクト空間において、移動体を回転させて移動体の移動方向を制御するサーバであって、
移動体の前後方向を第１の軸とし、第１の軸回りに移動体を回転させる第１の入力情報と、移動体の左右方向を第２の軸とし、第２の軸回りに移動体を回転させる第２の入力情報と、移動体の上下方向を第３軸とし、第３の軸回りに移動体を回転させる第３の入力情報とを、ネットワークを介して端末から受信する通信制御部と、
第１の入力情報に基づき第１の軸回りに移動体を回転させる第１の回転処理と、第２の入力情報に基づき第２の軸回りに移動体を回転させる第２の回転処理と、第３の入力情報に基づき第３の軸回りに移動体を回転させる第３の回転処理とを行う移動体制御部と、
第１、第２、第３の回転処理のうち少なくとも１つを補正する補正処理を行う補正処理部と、
オブジェクト空間における仮想カメラから見える画像を生成する描画部と、を含み、
前記補正処理部が、
第２の入力情報に基づく第２の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第３の回転処理の少なくとも一方を、前記補正処理として行うことを特徴とするサーバ。
【請求項２３】
オブジェクト空間において、移動体を回転させて移動体の移動方向を制御するサーバであって、
移動体の前後方向を第１の軸とし、第１の軸回りに移動体を回転させる第１の入力情報と、移動体の左右方向を第２の軸とし、第２の軸回りに移動体を回転させる第２の入力情報と、移動体の上下方向を第３軸とし、第３の軸回りに移動体を回転させる第３の入力情報とを、ネットワークを介して端末から受信する通信制御部と、
第１の入力情報に基づき第１の軸回りに移動体を回転させる第１の回転処理と、第２の入力情報に基づき第２の軸回りに移動体を回転させる第２の回転処理と、第３の入力情報に基づき第３の軸回りに移動体を回転させる第３の回転処理とを行う移動体制御部と、
第１、第２、第３の回転処理のうち少なくとも１つを補正する補正処理を行う補正処理部と、
オブジェクト空間における仮想カメラから見える画像を生成する描画部と、を含み、
前記補正処理部が、
第３の入力情報に基づく第３の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第２の回転処理の少なくとも一方を行うことを特徴とするサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、及びサーバに関する。
【背景技術】
【０００２】
従来から、オブジェクト空間（仮想的３次元空間）内において仮想カメラ（所与の視点）から見える画像を生成する端末が知られており、いわゆる仮想現実を体験できるものとして人気が高い。例えば、移動体から発射されたミサイル、機関砲などを、ターゲットオブジェクトにヒットさせて攻撃を行うシューティングゲームのための端末が存在する（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−７５６８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このような従来の技術では、移動体の移動方向を制御する入力操作が困難であるという問題がある。
【０００５】
例えば、移動体の前後方向を第１の軸とし、第１の入力情報に基づき第１の軸回りに移動体を回転させる第１の回転処理（ロール）と、移動体の左右方向を第２の軸とし、第２の入力情報に基づき第２の軸回りに移動体を回転させる第２の回転処理（ピッチ）と、移動体の上下方向を第３の軸とし、第３の入力情報に基づき第３の軸回りに移動体を回転させる第３の回転処理（ヨー）とを行わせる第１、第２、第３の入力情報を個別に受け付ける場合において、移動体を敵機の方向に近づけるための各回転操作が困難であるという問題が生じていた。
【０００６】
具体的に説明すると、移動体を旋回させてターゲットオブジェクトに接近させるように移動方向を制御したい場合は、例えば、移動体をロールさせる操作の次に、移動体をピッチアップさせる操作を行う。操作に不慣れなプレーヤは、移動体をロールさせる操作に多少の回転誤差が生じてしまうので、その結果、ピッチアップさせた後の移動体は、プレーヤが想定していた方向とは異なる方向に移動してしまうことがあった。このように、従来の技術は、移動方向を制御するための入力操作は難易度が高いという難点があった。
【０００７】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、移動体をターゲットオブジェクトの方向に容易に移動させることが可能なプログラム、情報記憶媒体、及びサーバを提供することにある。
【課題を解決するための手段】
【０００８】
（１）本発明は、オブジェクト空間において、移動体を回転させて移動体の移動方向を制御するプログラムであって、移動体の前後方向を第１の軸とし、第１の軸回りに移動体を回転させる第１の入力情報と、移動体の左右方向を第２の軸とし、第２の軸回りに移動体を回転させる第２の入力情報と、移動体の上下方向を第３軸とし、第３の軸回りに移動体を回転させる第３の入力情報とを、個別に受け付ける受け付け部と、第１の入力情報に基づき第１の軸回りに移動体を回転させる第１の回転処理と、第２の入力情報に基づき第２の軸回りに移動体を回転させる第２の回転処理と、第３の入力情報に基づき第３の軸回りに移動体を回転させる第３の回転処理とを行う移動体制御部と、第１、第２、第３の回転処理のうち少なくとも１つを補正する補正処理を行う補正処理部と、オブジェクト空間における仮想カメラから見える画像を生成する描画部として、コンピュータを機能させ、前記補正処理部が、第２の入力情報に基づく第２の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第３の回転処理の少なくとも一方を、前記補正処理として行うプログラムに関する。また、本発明は、上記プログラムを記憶した情報記憶媒体に関する。
【０００９】
ここで、第１の軸回りに移動体を回転させる第１の回転処理は、ロールであり、第２の軸回りに移動体を回転させる第２の回転処理は、ピッチであり、第３の軸回りに移動体を回転させる第３の回転処理は、ヨーである。
【００１０】
本発明によれば、第２の入力情報に基づく第２の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第３の回転処理の少なくとも一方を、補正処理として行う（実行する）ので、入力操作に不慣れなプレーヤであっても、移動体とターゲットオブジェクトとの位置関係に応じた適切な移動方向になるように、プレーヤの入力操作を補助することができる。
【００１１】
（２）また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、移動体の移動方向が、移動体とターゲットオブジェクトとを結ぶ方向に近づくように、第１の回転処理及び第３の回転処理の少なくとも一方を、前記補正処理として行うようにしてもよい。本発明によれば、移動体とターゲットオブジェクトとを結ぶ方向に近づくことができるようにプレーヤの入力操作を補助することができる。
【００１２】
（３）また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度に応じて、補正処理として行う第１の回転処理及び第３の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。本発明によれば、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのとのなす角度に応じて、適切にプレーヤの入力操作を補助することができる。
【００１３】
（４）また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、移動体の速度に応じて、補正処理として行う第１の回転処理及び第３の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。本発明によれば、移動体の速度に応じて、適切にプレーヤの入力操作を補助することができる。
【００１４】
（５）また、本発明のプログラム、情報記憶媒体において、前記ターゲットオブジェクトが複数存在する場合には、前記移動体と各ターゲットオブジェクトとの位置関係に基づいて、一のターゲットオブジェクトを選択する処理を行う選択部として、コンピュータを機能させ、前記補正処理部が、移動体と選択されたターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第３の回転処理の少なくとも一方を、前記補正処理として行うようにしてもよい。本発明によれば、ターゲットオブジェクトが複数存在する場合には、移動体と各ターゲットオブジェクトとの位置関係に基づいて、適切にターゲットオブジェクトを選択することができる。
【００１５】
（６）本発明は、オブジェクト空間において、移動体を回転させて移動体の移動方向を制御するプログラムであって、移動体の前後方向を第１の軸とし、第１の軸回りに移動体を回転させる第１の入力情報と、移動体の左右方向を第２の軸とし、第２の軸回りに移動体を回転させる第２の入力情報と、移動体の上下方向を第３軸とし、第３の軸回りに移動体を回転させる第３の入力情報とを、個別に受け付ける受け付け部と、第１の入力情報に基づき第１の軸回りに移動体を回転させる第１の回転処理と、第２の入力情報に基づき第２の軸回りに移動体を回転させる第２の回転処理と、第３の入力情報に基づき第３の軸回りに移動体を回転させる第３の回転処理とを行う移動体制御部と、第１、第２、第３の回転処理のうち少なくとも１つを補正する補正処理を行う補正処理部と、オブジェクト空間における仮想カメラから見える画像を生成する描画部として、コンピュータを機能させ、前記補正処理部が、第３の入力情報に基づく第３の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第２の回転処理の少なくとも一方を行うプログラムに関する。また、本発明は、上記プログラムを記憶した情報記憶媒体に関する。
【００１６】
本発明によれば、第３の入力情報に基づく第３の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第２の回転処理の少なくとも一方を、補正処理として行う（実行する）ので、入力操作に不慣れなプレーヤであっても、移動体とターゲットオブジェクトとの位置関係に応じた適切な移動方向になるように、プレーヤの入力操作を補助することができる。
【００１７】
（７）また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、移動体の移動方向が、移動体とターゲットオブジェクトとを結ぶ方向に近づくように、第１の回転処理及び第２の回転処理の少なくとも一方を、前記補正処理として行うようにしてもよい。本発明によれば、移動体とターゲットオブジェクトとを結ぶ方向に近づくことができるようにプレーヤの入力操作を補助することができる。
【００１８】
（８）また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度に応じて、補正処理として行う第１の回転処理及び第２の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。本発明によれば、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのとのなす角度に応じて、適切にプレーヤの入力操作を補助することができる。
【００１９】
（９）また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、移動体の速度に応じて、補正処理として行う第１の回転処理及び第２の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。本発明によれば、移動体の速度に応じて、適切にプレーヤの入力操作を補助することができる。
【００２０】
（１０）また、本発明のプログラム、情報記憶媒体において、前記ターゲットオブジェクトが複数存在する場合には、前記移動体と各ターゲットオブジェクトとの位置関係に基づいて、一のターゲットオブジェクトを選択する処理を行う選択部として、コンピュータを機能させ、前記補正処理部が、移動体と選択されたターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第２の回転処理の少なくとも一方を、前記補正処理として行うようにしてもよい。本発明によれば、ターゲットオブジェクトが複数存在する場合には、移動体と各ターゲットオブジェクトとの位置関係に基づいて、適切にターゲットオブジェクトを選択することができる。
【００２１】
（１１）また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、第１の入力情報を受け付けた場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第１の回転処理の補正処理を行うようにしてもよい。本発明によれば、移動体とターゲットオブジェクトとを結ぶ方向に近づくことができるように、プレーヤが行う第１の回転処理の入力操作を補助することができる。
【００２２】
（１２）また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、第１軸の回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第１の入力情報に基づく移動体の向きとのなす角度に応じて、第１の回転処理の回転量を変化させるようにしてもよい。本発明によれば、第１の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第１の入力情報に基づく移動体の向きとのなす角度に応じて、適切にプレーヤが行う第１の回転処理の入力操作を補助することができる。
【００２３】
（１３）また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、移動体の速度に応じて、第１の回転処理の回転量を変化させるようにしてもよい。本発明によれば、移動体の速度に応じて、適切にプレーヤが行う第１の回転処理の入力操作を補助することができる。
【００２４】
（１４）また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、第２の入力情報を受け付けた場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第２の回転処理の補正処理を行うようにしてもよい。本発明によれば、移動体とターゲットオブジェクトとを結ぶ方向に近づくことができるように、プレーヤが行う第２の回転処理の入力操作を補助することができる。
【００２５】
（１５）また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、第２軸の回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第２の入力情報に基づく移動体の向きとのなす角度に応じて、第２の回転処理の回転量を変化させるようにしてもよい。本発明によれば、第２の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第２の入力情報に基づく移動体の向きとのなす角度に応じて、適切にプレーヤが行う第２の回転処理の入力操作を補助することができる。
【００２６】
（１６）また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、移動体の速度に応じて、第２の回転処理の回転量を変化させるようにしてもよい。本発明によれば、移動体の速度に応じて、適切にプレーヤが行う第２の回転処理の入力操作を補助することができる。
【００２７】
（１７）また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、第３の入力情報を受け付けた場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第３の回転処理の補正処理を行うようにしてもよい。本発明によれば、移動体とターゲットオブジェクトとを結ぶ方向に近づくことができるように、プレーヤが行う第３の回転処理の入力操作を補助することができる。
【００２８】
（１８）また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、第３軸の回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第３の入力情報に基づく移動体の向きとのなす角度に応じて、第３の回転処理の回転量を変化させるようにしてもよい。本発明によれば、第３の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第３の入力情報に基づく移動体の向きとのなす角度に応じて、適切にプレーヤが行う第３の回転処理の入力操作を補助することができる。
【００２９】
（１９）また、本発明のプログラム、情報記憶媒体において、前記補正処理部が、移動体の速度に応じて、第３の回転処理の回転量を変化させるようにしてもよい。本発明によれば、移動体の速度に応じて、適切にプレーヤが行う第３の回転処理の入力操作を補助することができる。
【００３０】
（２０）また、本発明のプログラム、情報記憶媒体において、前記描画部が、一人称視点によって前記移動体の指示表示物を含む画像を生成する処理を行う、又は、三人称視点によって前記移動体を含む画像を生成する処理を行うようにしてもよい。
【００３１】
（２１）本発明は、オブジェクト空間において、移動体を回転させて移動体の移動方向を制御するサーバであって、移動体の前後方向を第１の軸とし、第１の軸回りに移動体を回転させる第１の入力情報と、移動体の左右方向を第２の軸とし、第２の軸回りに移動体を回転させる第２の入力情報と、移動体の上下方向を第３軸とし、第３の軸回りに移動体を回転させる第３の入力情報とを、ネットワークを介して端末から受信する通信制御部と、第１の入力情報に基づき第１の軸回りに移動体を回転させる第１の回転処理と、第２の入力情報に基づき第２の軸回りに移動体を回転させる第２の回転処理と、第３の入力情報に基づき第３の軸回りに移動体を回転させる第３の回転処理とを行う移動体制御部と、第１、第２、第３の回転処理のうち少なくとも１つを補正する補正処理を行う補正処理部と、オブジェクト空間における仮想カメラから見える画像を生成する描画部と、を含み、前記補正処理部が、第２の入力情報に基づく第２の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第３の回転処理の少なくとも一方を、前記補正処理として行うサーバに関する。
【００３２】
（２２）本発明は、オブジェクト空間において、移動体を回転させて移動体の移動方向を制御するサーバであって、移動体の前後方向を第１の軸とし、第１の軸回りに移動体を回転させる第１の入力情報と、移動体の左右方向を第２の軸とし、第２の軸回りに移動体を回転させる第２の入力情報と、移動体の上下方向を第３軸とし、第３の軸回りに移動体を回転させる第３の入力情報とを、ネットワークを介して端末から受信する通信制御部と、第１の入力情報に基づき第１の軸回りに移動体を回転させる第１の回転処理と、第２の入力情報に基づき第２の軸回りに移動体を回転させる第２の回転処理と、第３の入力情報に基づき第３の軸回りに移動体を回転させる第３の回転処理とを行う移動体制御部と、第１、第２、第３の回転処理のうち少なくとも１つを補正する補正処理を行う補正処理部と、オブジェクト空間における仮想カメラから見える画像を生成する描画部と、を含み、前記補正処理部が、第３の入力情報に基づく第３の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第２の回転処理の少なくとも一方を行うサーバに関する。
【図面の簡単な説明】
【００３３】
【図１】図１は、本実施形態の端末の構成の一例。
【図２】図２は、入力部の一例を示す図。
【図３】図３（Ａ）〜（Ｃ）は、仮想カメラ制御の説明図。
【図４】図４（Ａ）〜（Ｃ）は、第１の回転処理（ロール）の説明図。
【図５】図５（Ａ）（Ｂ）は、第２の回転処理（ピッチ）の説明図。
【図６】図６（Ａ）（Ｂ）は、第３の回転処理（ヨー）の説明図。
【図７】図７（Ａ）〜（Ｃ）は、第１の回転処理の一例を説明するための図。
【図８】図８（Ａ）〜（Ｃ）は、第１の回転処理の一例を説明するための図。
【図９】図９（Ａ）〜（Ｃ）は、補正処理の説明図。
【図１０】図１０（Ａ）〜（Ｃ）は、第１の回転処理の一例を説明するための図。
【図１１】図１１（Ａ）〜（Ｃ）は、補正処理の説明図。
【図１２】図１２（Ａ）（Ｂ）は、回転量の変化を説明するための図。
【図１３】図１３（Ａ）〜（Ｃ）は、第２の回転処理の一例を説明するための図。
【図１４】図１４（Ａ）〜（Ｃ）は、補正処理の説明図。
【図１５】図１５（Ａ）（Ｂ）は、補正処理の説明図。
【図１６】図１６（Ａ）〜（Ｃ）は、補正処理の説明図。
【図１７】図１７は、補正処理の説明図。
【図１８】図１８（Ａ）（Ｂ）は、補正処理の説明図。
【図１９】図１９（Ａ）（Ｂ）は、補正処理の説明図。
【図２０】図２０（Ａ）（Ｂ）は、補正処理の説明図。
【図２１】図２１（Ａ）（Ｂ）は、補正処理の説明図。
【図２２】図２２（Ａ）（Ｂ）は、補正処理の説明図。
【図２３】図２３（Ａ）（Ｂ）は、選択処理の説明図。
【図２４】図２４は、フローチャート。
【図２５】図２５は、補正処理の説明図。
【図２６】図２６は、補正処理の説明図。
【図２７】図２７は、補正処理の説明図。
【図２８】図２８は、ネットワークシステムの説明図。
【図２９】図２９は、ネットワークシステムの説明図。
【図３０】図３０は、ネットワークシステムの説明図。
【図３１】図３１は、サーバの構成図。
【発明を実施するための形態】
【００３４】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３５】
１．構成
図１に本実施形態の端末１０（画像生成装置、ゲーム装置、携帯電話、携帯端末、携帯型ゲーム装置、スマートフォン）の機能ブロック図の例を示す。なお本実施形態の端末は図１の構成要素（各部）の一部を省略した構成としてもよい。
【００３６】
入力部１６０は、プレーヤ（操作者）からの入力情報を入力するための入力機器（コントローラ）であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部１６０は、プレーヤの入力情報（入力信号）を検出する検出部１６２を備える。入力部１６０は、例えば、アナログレバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどがある。また、入力部１６０は、振動信号に基づいて振動させる処理を行う振動部を備えていてもよい。
【００３７】
また、入力部１６０は、３軸の加速度を検出する加速度センサや、角速度を検出するジャイロセンサ、撮像部を備えた入力機器でもよい。例えば、入力部１６０は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力部１６０は、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける（プレーヤが手に装着する）グローブ型コントローラなど実際の道具を模して作られた入力機器でもよい。また入力部１６０は、入力機器と一体化されている端末（携帯電話、携帯端末、携帯型ゲーム装置、スマートフォン）なども含まれる。
【００３８】
図２は、入力部１６０の一例である入力装置１１を示す。例えば、入力装置１１は、操作ボタンＢ１〜Ｂ４、ＬＴ、ＲＴ、ＬＢ、ＲＢ、上下左右の方向を示すボタンＶＰ、アナログレバー（アナログスティック）ＬＳ、ＲＳを含む。
【００３９】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００４０】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）を記憶することができる。
【００４１】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。
【００４２】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００４３】
通信部１９６は外部（例えば他の端末、サーバ）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００４４】
なお、サーバ２０が有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体１８０や記憶部１７０に記憶してもよい。このようにプログラムやデータを受信して端末を機能させる場合も本発明の範囲内に含む。
【００４５】
処理部１００（プロセッサ）は、入力部１６０からの入力データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【００４６】
この処理部１００は記憶部１７０内の主記憶部１７１をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００４７】
処理部１００は、受け付け部１１０、オブジェクト空間設定部１１１、移動・動作処理部１１２、補正処理部１１３、選択部１１４、ゲーム演算部１１５、表示制御部１１６、仮想カメラ制御部１１７、通信制御部１１８、描画部１２０、音処理部１３０を含む。なお、これらの一部を省略する構成としてもよい。
【００４８】
受け付け部１１０は、プレーヤの入力情報を受け付ける処理を行う。例えば、移動体ＯＢ１（自機、第１のオブジェクト、プレーヤの操作対象のオブジェクト）の挙動を制御するための移動体制御用の入力情報を受け付ける処理や、自機から弾（ミサイル、機銃）を発射させる射撃用入力情報を受け付ける処理、アイテム（例えば、武器）の選択を受け付ける処理を行うようにしてもよい。
【００４９】
特に、本実施形態の受け付け部１１０は、移動体（例えば、自機）の前後方向を第１の軸とし、第１の軸回りに移動体を回転させる第１の入力情報と、移動体の左右方向を第２の軸とし、第２の軸回りに移動体を回転させる第２の入力情報と、移動体の上下方向を第３軸とし、第３の軸回りに移動体を回転させる第３の入力情報とを、受け付ける処理を行う。本実施形態の受け付け部１１０は、第１、第２、第３の各入力情報を、それぞれ個別に受け付けるようにしている。例えば、受け付け部１１０は、右ロールの入力情報と、左ロールの入力情報と、ピッチアップの入力情報と、ピッチダウンの入力情報と、右ヨーの入力情報と、左ヨーの入力情報とを個別に受け付ける処理を行う。
【００５０】
オブジェクト空間設定部１１１は、オブジェクトをオブジェクト空間（仮想的３次元空間）に配置する処理を行う。例えば、オブジェクト空間設定部１１１は、移動体ＯＢ１、ターゲットオブジェクトＯＢ２（敵機、第２のオブジェクト、コンピュータプログラムに基づいて移動・動作、攻撃を行う移動体、ノンプレーヤキャラクターＮＰＣ、他のプレーヤの操作対象のオブジェクト）の他に、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を、オブジェクト空間に配置する処理を行う。ここでオブジェクト空間とは、仮想的なゲーム空間であり、例えば、ワールド座標系、仮想カメラ座標系のように、３次元座標（Ｘ，Ｙ，Ｚ）においてオブジェクトが配置される空間である。
【００５１】
例えば、オブジェクト空間設定部１１１は、ワールド座標系にオブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）を配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）に基づき、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００５２】
移動・動作処理部１１２は、オブジェクト空間にあるオブジェクトの移動・動作演算を行う。すなわち入力部１６０から受け付けた入力情報や、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。
【００５３】
移動体制御部１１２ａは、オブジェクト空間において、移動体の挙動を制御する。移動体の挙動とは、移動体の移動・動作情報であり、移動体の回転（向きの変更）を含む。なお、移動体の挙動は、移動体の速度、加速度を含んでいてもよい。例えば、移動体制御部１１２ａは、１フレーム（例えば、１／６０秒）毎に移動体のモデル座標系のＸ軸、Ｙ軸、Ｚ軸回りの回転角度（向き）を求める。なお、フレームは、オブジェクトの移動・動作処理や画像生成処理を行う時間の単位である。
【００５４】
特に、本実施形態の移動体制御部１１２ａは、移動体を回転させて移動体の移動方向を制御する。例えば、移動体制御部１１２ａは、第１の入力情報に基づき第１の軸回りに移動体を回転させる第１の回転処理（ロール）と、第２の入力情報に基づき第２の軸回りに移動体を回転させる第２の回転処理（ピッチ）と、第３の入力情報に基づき第３の軸回りに移動体を回転させる第３の回転処理（ヨー）とを行う。
【００５５】
例えば、移動体制御部１１２ａは、図２に示すように、アナログレバーＬＳの倒し方向と、傾斜角度値とを検出している。例えば、移動体制御部１１２ａは、アナログレバーＬＳの倒し方向が右又は左（ｘ軸方向）である場合は、傾斜角度値に基づき第１の回転処理（ロール）を行う。つまり、移動体制御部１１２ａは、アナログレバーＬＳの倒し方向が右（ｘ軸プラス）の所定角度値以上の傾斜角度値を検出した場合は、移動体を右回転のロールの挙動を行わせる。また、移動体制御部１１２ａは、倒し方向が左（ｘ軸マイナス）の所定角度値以上の傾斜角度値を検出した場合は、左回転のロールの挙動を行わせる。
【００５６】
また、移動体制御部１１２ａは、アナログレバーＬＳの倒し方向が上又は下（ｘ軸方向）である場合は、傾斜角度値に基づき第２の回転処理（ピッチ）を行う。つまり、移動体制御部１１２ａは、アナログレバーＬＳの倒し方向が上（ｚ軸プラス）の所定角度値以上の傾斜角度値を検出した場合はピッチダウン、倒し方向が下（ｚ軸マイナス）の所定角度値以上の傾斜角度値を検出した場合はピッチアップの処理を行わせる。
【００５７】
また、移動体制御部１１２ａは、ＲＢボタンの入力信号（入力情報）を検出すると、第３の回転処理（右方向へのヨー）の処理を行う。また、移動体制御部１１２ａは、ＬＢボタンの入力信号（入力情報）を検出すると、第３の回転処理（左方向へのヨー）の処理を行う。
【００５８】
また、移動体制御部１１２ａは、ＬＴボタンの入力信号（入力情報）を検出すると、移動体を減速させる処理を行い、ＲＴボタンの入力信号（入力情報）を検出すると、移動体を加速させる処理を行う。
【００５９】
なお、移動体制御部１１２ａは、移動体から発射された弾（例えば、ミサイル、機関砲）がターゲットオブジェクトに追尾するように、弾の移動処理を行うようにしてもよい。
【００６０】
なお、移動・動作処理部１１２は、他の端末とネットワークを介してデータを送受信している場合には、他の端末から受信した入力情報や他の機体の移動情報等のデータに基づいて、本端末１０Ａのオブジェクト空間に配置される他の移動体（他の端末を操作するプレーヤの操作対象の移動体）の挙動（移動・動作）を制御するようにしてもよい。
【００６１】
補正処理部１１３は、第１、第２、第３の回転処理のうち少なくとも１つを補正する補正処理を行う。
【００６２】
補正処理部１１３は、第２の入力情報に基づく第２の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第３の回転処理の少なくとも一方を、補正処理として行う。例えば、補正処理部１１３は、移動体の移動方向が、移動体とターゲットオブジェクトとを結ぶ方向に近づくように、第１の回転処理及び第３の回転処理の少なくとも一方を、補正処理として行う。なお、補正処理部１１３は、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度に応じて、補正処理として行う第１の回転処理及び第３の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。また、補正処理部１１３は、移動体の速度に応じて、補正処理として行う第１の回転処理及び第３の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。また、補正処理部１１３は、移動体と選択されたターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第３の回転処理の少なくとも一方を、補正処理として行うようにしてもよい。
【００６３】
また、補正処理部１１３は、第３の入力情報に基づく第３の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第２の回転処理の少なくとも一方を、補正処理として行う。例えば、補正処理部１１３は、移動体の移動方向が、移動体とターゲットオブジェクトとを結ぶ方向に近づくように、第１の回転処理及び第２の回転処理の少なくとも一方を、補正処理として行う。なお、補正処理部１１３は、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度に応じて、補正処理として行う第１の回転処理及び第２の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。また、補正処理部１１３は、移動体の速度に応じて、補正処理として行う第１の回転処理及び第２の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。また、補正処理部１１３は、移動体と選択されたターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第２の回転処理の少なくとも一方を、補正処理として行うようにしてもよい。
【００６４】
また、補正処理部１１３は、第１の入力情報を受け付けた場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第１の回転処理の補正処理を行う。例えば、補正処理部１１３は、第１の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第１の入力情報に基づく移動体の向きとのなす角度に応じて、第１の回転処理の回転量を変化させる。また、補正処理部１１３は、移動体の速度に応じて、第１の回転処理の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。
【００６５】
また、補正処理部１１３は、第２の入力情報を受け付けた場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第２の回転処理の補正処理を行う。例えば、補正処理部１１３は、第２の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第２の入力情報に基づく移動体の向きとのなす角度に応じて、第２の回転処理の回転量を変化させる。また、補正処理部１１３は、移動体の速度に応じて、第２の回転処理の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。
【００６６】
また、補正処理部１１３は、第３の入力情報を受け付けた場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第３の回転処理の補正処理を行う。例えば、補正処理部１１３は、第３の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第３の入力情報に基づく移動体の向きとのなす角度に応じて、第３の回転処理の回転量を変化させる。なお、補正処理部１１３は、移動体の速度に応じて、第３の回転処理の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。
【００６７】
選択部１１４は、ターゲットオブジェクトが複数存在する場合に、移動体と各ターゲットオブジェクトとの位置関係に基づいて、一のターゲットオブジェクトを選択する処理を行う。
【００６８】
ゲーム演算部１１５は、種々のゲーム処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などがある。
【００６９】
本実施形態のゲーム演算部１１５は、各オブジェクト（移動体ＯＢ１、ターゲットオブジェクトＯＢ２を含む）のパラメータを更新する処理を行う。本実施形態のゲーム演算部１１５では、弾が自機にヒットする度に、ダメージを蓄積したダメージ蓄積値Ｄを更新している。例えば、自機のダメージ蓄積値Ｄが最大値（Ｄ＝１００）になると、自機が撃墜したものとみなされ、ゲームを終了する処理を行う。一方、ゲーム中の全ての敵機のダメージ蓄積値Ｄが最大値になると、ゲームクリアと判定する処理を行う。
【００７０】
なお、ゲーム演算部１１５は、第２のオブジェクト（例えば、ターゲットオブジェクトＯＢ２）から発射された弾（例えば、ミサイル）が第１のオブジェクト（例えば、移動体ＯＢ１）にヒットしたか否かを判定する処理、第１のオブジェクトから発射された弾が第２のオブジェクトにヒットしたか否かを判定する処理を行うようにしてもよい。
【００７１】
表示制御部１１６は、描画部１２０において生成された画像を表示部１９０に表示させる処理を行う。例えば、表示制御部１１６は、移動体（自機）の指示表示物（カーソル）を含む画像、又は、移動体（自機）を含む画像を表示させる処理を行う。なお、視界（ビューボリューム内）にターゲットオブジェクトが含まれる場合には、ターゲットオブジェクトを含む画像を表示させる処理を行う。
【００７２】
仮想カメラ制御部１１７は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、３次元の画像を生成する場合には、ワールド座標系における仮想カメラの位置（Ｘ、Ｙ、Ｚ）、回転角度（例えば、Ｘ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を制御する処理を行う。要するに、仮想カメラ制御部１１７は、仮想カメラの視点位置、視線方向、画角、移動方向、移動速度の少なくとも１つを制御する処理を行う。
【００７３】
特に、本実施形態の仮想カメラ制御部１１７は、移動体の挙動に追従する仮想カメラを制御する。例えば、図３（Ａ）（Ｂ）に示す一人称視点、図３（Ｃ）に示す三人称視点（後方視点）によって、仮想カメラを制御する。一人称視点とは、移動体（自機）の位置を視点とするものであり、一人称視点の場合、オブジェクト空間において移動体から見た画像を生成する。また、三人称視点とは、移動体（自機）から離れた位置を視点とするものであり、三人称視点の場合、オブジェクト空間において移動体を俯瞰して見た画像を生成する。
【００７４】
例えば、仮想カメラ制御部１１７は、移動・動作処理部１１２で得られたオブジェクトの位置、向き又は速度などの移動体の挙動（挙動情報）に基づいて、仮想カメラを制御する。つまり、本実施形態の仮想カメラ制御部１１７は、移動体の挙動に追従する仮想カメラを制御する。例えば、仮想カメラ制御部１１７は、ワールド座標において、移動体制御部１１２ａで処理される移動体の挙動と仮想カメラの挙動とが所定の関係を保つように制御する。
【００７５】
より具体的には、ワールド座標において、移動体制御部１１２ａで処理される移動体の位置（移動体の中心点Ｐ）と仮想カメラの位置（ＣＰ）とが所定の位置関係を保つように制御する。例えば、移動体の位置（移動体の中心点Ｐ）と仮想カメラの位置（ＣＰ）とが、所定の距離を保つように制御する。また、移動体の移動方向及び移動速度と、仮想カメラの移動方向及び移動速度とが所定の関係を保つように制御する。例えば、移動体の移動方向と仮想カメラの移動方向が同一の方向になるように制御し、移動体の移動速度と仮想カメラの移動速度とが同一の速度になるように制御する。また、仮想カメラ制御部１１７は、移動体の向き（回転）と、仮想カメラの向き（回転）とが所定の関係を保つように仮想カメラの向き（視線方向）を制御する。例えば、移動体の向きと仮想カメラの向きとが同一の方向を向くように制御する。また、仮想カメラ制御部１１７は、移動体の回転方向、回転速度が所定の関係を保つように仮想カメラの回転方向、回転速度を制御する。例えば、移動体の回転方向、回転速度と仮想カメラの回転方向、回転速度とが同一になるように制御する。
【００７６】
なお、仮想カメラ制御部１１７は、仮想カメラを予め決められた向きに設定し、予め決められた移動ルートで移動させる制御を行うようにしてもよい。例えば、仮想カメラの位置（移動経路）又は向きを制御するための仮想カメラデータ（記憶部１７０、情報記憶媒体１８０等に記憶されている仮想カメラデータ）に基づいて、仮想カメラを制御するようにしてもよい。
【００７７】
また、仮想カメラ制御部１１７は、オブジェクト空間において所与の位置から見下ろすような俯瞰用仮想カメラを配置させて当該俯瞰用仮想カメラを制御するようにしてもよい。
【００７８】
また、仮想カメラ制御部１１７は、リプレイ用で画像を生成するためのリプレイ用仮想カメラをオブジェクト空間に配置させて、当該リプレイ用仮想カメラを制御するように使用してもよい。リプレイ用仮想カメラは、移動体の移動に必ずしも追従させる必要はないが、移動体の移動情報に応じて、リプレイ用仮想カメラを制御するようにしてもよい。
【００７９】
通信制御部１１８は、端末（例えば第１の端末）が他の端末（例えば第２の端末）又はサーバ２０とネットワークを介して相互にデータを送受信する処理を行うようにしてもよい。
【００８０】
なお、本実施形態の端末１０では、通信制御で必要となるネットワーク情報をサーバから取得し、管理する処理等を行うようにしてもよい。例えば、端末は、各端末に個別に付与される端末の識別情報（オンラインゲームに参加できる端末を識別するために個別に付与されたデータ、ＩＤ）と、端末の識別情報に対応付けられたパケットの送信先を指定する宛先情報（ＩＰアドレスなど）とを取得し、管理する処理を行うようにしてもよい。
【００８１】
通信制御部１１８は、他の端末（第２の端末）又はサーバ２０に送信するパケットを生成する処理、パケット送信先の端末のＩＰアドレスやポート番号を指定する処理、受信したパケットに含まれるデータを記憶部１７０に保存する処理、受信したパケットを解析する処理、その他のパケットの送受信に関する制御処理等を行う。
【００８２】
また、本実施形態の通信制御部１１８は、複数の端末間、又はサーバ２０においての接続（第１の端末と第２の端末との接続）が確立されてから接続が切断されるまで、データを所定周期（例えば、１秒周期で）互いに送受信する処理を行う。ここで、端末間で送受信されるデータは、入力部の入力情報としてもよいし、各端末の操作対象のオブジェクト（機体、移動体）の位置情報、移動情報としてもよい。
【００８３】
また、本実施形態の通信制御部１１８は、他の端末（第２の端末）又はサーバ２０から送信されたパケットを受信すると、受信したパケットを解析し、パケットに含まれる他の端末の操作対象のオブジェクトの位置情報などのデータを記憶部に記憶する処理を行う。
【００８４】
なお、複数の端末で構成されるネットワークシステムの場合は、複数の端末間でデータの送受信を行いながらオンラインゲームを実行するピア・ツー・ピア（いわゆるＰ２Ｐ）方式としてもよいし、サーバ２０を介して各端末がデータ（情報）の送受信を行いながらオンラインゲームを実行するクライアント・サーバ方式によるものであってもよい。また、本実施形態のネットワークシステムでは、有線通信のみならず無線通信でデータを送受信してもよい。
【００８５】
特に、本実施形態の通信制御部１１８は、第１の軸回りに移動体を回転させる第１の入力情報と、第２の軸回りに移動体を回転させる第２の入力情報と、第３の軸回りに移動体を回転させる第３の入力情報とを、ネットワークを介してサーバ２０に送信するようにしてもよい。また、本実施形態の通信制御部１１８は、サーバ２０からネットワークを介して、サーバ２０で補正された第１、２、３の回転処理結果を受信するようにしてもよい。また、通信制御部１１８は、サーバ２０から表示データ（画像データ等）を受信するようにしてもよい。
【００８６】
描画部１２０は、処理部１００で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。言い換えると、描画部１２０は、オブジェクト空間において、仮想カメラから見える画像を生成する。
【００８７】
例えば、描画部１２０は、一人称視点によって移動体の指示表示物（カーソル）を含む画像を生成する処理を行ってもよい。また、描画部１２０は、三人称視点によって移動体を含む画像を生成する処理を行ってもよい。
【００８８】
例えば、描画部１２０は、オブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００８９】
頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換（カメラ座標変換）、クリッピング処理、透視変換（投影変換）、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。
【００９０】
そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を画像バッファ１７２（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット、フレームバッファ）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。
【００９１】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００９２】
そして描画部１２０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００９３】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、記憶部１７０に保存される。
【００９４】
テクスチャマッピングは、記憶部１７０に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００９５】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファに格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００９６】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。
【００９７】
例えば、αブレンディングでは、これから画像バッファ１７２に描画する描画色（上書きする色）Ｃ１と、既に画像バッファ１７２（レンダリングターゲット）に描画されている描画色（下地の色）Ｃ２とを、α値に基づいて線形合成処理を行う。つまり、最終的な描画色をＣとすると、Ｃ＝Ｃ１＊α＋Ｃ２＊（１−α）によって求めることができる。
【００９８】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００９９】
なお、描画部１２０は、他の端末（第２の端末）とネットワークを介してデータを送受信するマルチプレーヤオンラインゲームを行う場合は、端末（第１の端末）の操作対象のオブジェクトの移動に追従する仮想カメラ（端末（第１の端末）で制御される仮想カメラ）から見える画像を生成する処理を行う。つまり、各端末が独立した描画処理を行う。
【０１００】
音処理部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【０１０１】
なお、本実施形態の端末は、１人のプレーヤのみがプレイできるシングルプレーヤモード、或いは、複数のプレーヤがプレイできるマルチプレーヤモードでゲームプレイできるように制御してもよい。例えば、マルチプレーヤモードで制御する場合には、ネットワークを介して他の端末とデータを送受信してゲーム処理を行うようにしてもよいし、１つの端末が、複数の入力部からの入力情報に基づいて処理を行うようにしてもよい。
【０１０２】
２．概要
本実施形態では、プレーヤの操作対象の移動体ＯＢ１（自機、第１のオブジェクト）と、コンピュータオブジェクト或いは他のプレーヤのオブジェクトであるターゲットオブジェクトＯＢ２（敵機、第２のオブジェクト）と、互いにミサイルや機関砲などで攻撃し合うフライトシューティングゲームに関する処理について説明する。
【０１０３】
つまり、本実施形態のゲーム処理では、移動体ＯＢ１とターゲットオブジェクトＯＢ２が互いに相手を標的とし、互いにミサイルや機関砲を発射して標的を撃墜させるゲーム処理を行う。したがって、移動体ＯＢ１を操作するプレーヤは、移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近させて、移動体ＯＢ１から発射されるミサイルや機関砲をターゲットオブジェクトＯＢ２にヒットさせるように攻撃操作を行い、ターゲットオブジェクトＯＢ２から発射されるミサイル等の攻撃から回避するように移動体ＯＢ１を移動させる操作を行う。
【０１０４】
本実施形態では、移動体ＯＢ１をターゲットオブジェクトＯＢ２の方向に容易に移動させることができるようにするために、補正処理を行っている。以下、詳細に説明する。
【０１０５】
３．移動体の移動制御の説明
まず、プレーヤの操作対象の移動体（自機）ＯＢ１の入力操作、及び、入力情報に基づく移動制御について説明する。
【０１０６】
３．１  ロール
ロールの挙動について説明する。ロールとは、移動体ＯＢ１の前後方向を第１の軸とし、第１の軸回りに移動体ＯＢ１を回転させる挙動のことをいう。言い換えると、移動体ＯＢ１のモデル座標系ｚ軸回りに回転させる処理である。
【０１０７】
例えば、第１の入力情報を受け付けた場合（例えば、アナログレバーＬＳの倒し方向が右又は左（ｘ軸方向）を検出した場合）、移動体ＯＢ１を右回転、又は、左回転の第１の回転処理（ロール）を行う（実行する）。
【０１０８】
より具体的に説明すると、図４（Ａ）に示すように、移動体ＯＢ１が水平状態にある場合において、アナログレバーＬＳの倒し方向が右（ｘ軸プラス）の所定角度値以上の傾斜角度値を検出した場合は、図４（Ｂ）に示すように、第１の軸回りに、単位時間当たり角度θだけ右方向に移動体ＯＢ１を回転させる処理を行う。
【０１０９】
また、図４（Ａ）に示すように、移動体ＯＢ１が水平状態にある場合において、アナログレバーＬＳの倒し方向が左（ｘ軸マイナス）の所定角度値以上の傾斜角度値を検出した場合は、図４（Ｃ）に示すように、第１の軸回りに、単位時間当たり角度θだけ左方向に移動体ＯＢ１を回転させる処理を行う。
【０１１０】
３．２  ピッチ
次に、ピッチの挙動について説明する。ピッチとは、移動体ＯＢ１の左右方向を第２の軸とし、第２の軸回りに移動体ＯＢ１を回転させる挙動のことをいう。つまり、ピッチは移動体ＯＢ１のモデル座標系ｘ軸回りに回転させる処理である。
【０１１１】
例えば、第２の入力情報を受け付けた場合（例えば、アナログレバーＬＳの倒し方向が上又は下（ｚ軸方向）を検出した場合）、移動体ＯＢ１を上回転、又は、下回転の第２の回転処理（ピッチ）を行う（実行する）。
【０１１２】
ここで、ピッチは、ピッチアップ（上昇）とピッチダウン（下降）がある。ピッチアップ（上昇）とは、図５（Ａ）に示すように、移動体ＯＢ１を第２の軸回り（ｘ軸回り）に上に回転させる挙動をいう。つまり、ピッチアップは、移動体ＯＢ１の進行方向（機首）を上に回転させる挙動のことをいう。したがって、移動体ＯＢ１の進行方向（機首）を上に回転させると、次のフレームで、移動体ＯＢ１は上方向に移動することになる。
【０１１３】
例えば、図５（Ａ）に示すように、移動体ＯＢ１がＶ１−１の方向を向いていた場合において、アナログレバーＬＳの倒し方向が下（ｚ軸マイナス）の所定角度値以上の傾斜角度値を検出した場合は、第２の軸回り（ｘ軸回り）に、単位時間当たり角度θｐだけ上方向に移動体ＯＢ１を回転させる処理を行う。つまり、移動体ＯＢ１は、結果的にベクトルＶＰａ方向に上昇を始める。
【０１１４】
また、ピッチダウン（下降）とは、図５（Ｂ）に示すように、移動体ＯＢ１の第２の軸回り（ｘ軸回り）に下に回転させる挙動をいう。つまり、ピッチダウンは、移動体ＯＢ１の進行方向（機首）を下に回転させる挙動のことをいう。つまり、移動体ＯＢ１の進行方向（機首）を下に回転させると、次のフレームで、移動体ＯＢ１は下方向に移動することになる。
【０１１５】
例えば、図５（Ｂ）に示すように、移動体ＯＢ１がＶ２−１の方向を向いていた場合において、アナログレバーＬＳの倒し方向が上（ｚ軸プラス）の所定角度値以上の傾斜角度値を検出した場合は、単位時間当たり角度θｐだけ下方向に移動体ＯＢ１を回転させる処理を行う。つまり、移動体ＯＢ１は、単位時間当たりにベクトルＶＰｂだけ下降することができる。
【０１１６】
３．３  ヨー
次に、ヨーの挙動について説明する。ヨーとは、移動体ＯＢ１の上下方向を第３の軸とし、第３の軸回りに移動体ＯＢ１を回転させる挙動のことをいう。言い換えると、移動体ＯＢ１の進行方向（機首）を右又は左に回転させる挙動のことをいう。つまり、ヨーは移動体ＯＢ１のモデル座標系ｙ軸回りに回転させる処理である。なお、第１、第２、第３の軸は互いに垂直に交差する軸である。
【０１１７】
例えば、第３の入力情報受け付けた場合、移動体ＯＢ１を回転させる第３の回転処理（ヨー）を行う（実行する）。例えば、ＲＢボタンの入力信号を検出した場合は、移動体ＯＢ１を右回転させる右ヨーを行い、ＬＢボタンの入力信号を検出した場合は、移動体ＯＢ１を左回転させる左ヨーを行う。つまり、移動体ＯＢ１の進行方向を右に回転させると、次のフレームで、移動体ＯＢ１は右方向に移動することになる。また、移動体ＯＢ１の進行方向を左に回転させると、次のフレームで、移動体ＯＢ１は左方向に移動することになる。
【０１１８】
例えば、図６（Ａ）に示すように、移動体ＯＢ１がＶ３−１の方向を向いていた場合において、ＲＢボタンの入力信号（第３の入力情報の一例）を検出した場合は、単位時間当たり角度θｙだけ右方向に移動体ＯＢ１を回転させる処理を行う。つまり、移動体ＯＢ１は、単位時間当たりにベクトルＶＹａだけ右移動することができる。
【０１１９】
また、図６（Ｂ）に示すように、移動体ＯＢ１がＶ４−１の方向を向いていた場合において、ＬＢボタンの入力信号（第３の入力情報の一例）を検出した場合は、単位時間当たり角度θｙだけ左方向に移動体ＯＢ１を回転させる処理を行う。つまり、移動体ＯＢ１は、単位時間当たりにベクトルＶＹｂだけ左移動することができる。
【０１２０】
３．４  移動制御の例
本実施形態では、第１の回転処理（ロール）と、第２の回転処理（ピッチ）と、第３の回転処理（ヨー）とを行わせる第１、第２、第３の入力情報を独立して個別に受け付けている。したがって、プレーヤは、ロール、ピッチを任意に選択して順に操作することによって、移動体ＯＢ１（自機）をターゲットオブジェクトＯＢ２（敵機）に接近させて攻撃することができる。なお、本実施形態では、第１の回転処理、第２の回転処理、第３の回転処理のうち２つの回転処理、又は全ての回転処理（３つの回転処理）を同時に実行するようにしてもよい。
【０１２１】
例えば、図７（Ａ）に示すように、移動体ＯＢ１の右上にターゲットオブジェクトＯＢ２が相対的に位置している場合には、プレーヤは次のような移動操作を行うことが得策である。つまり、プレーヤは、図７（Ｂ）に示すように、移動体ＯＢ１の向きを、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向の角度θ１だけ、右方向にロールを行い、その後、図７（Ｃ）に示すように、移動体ＯＢ１をピッチアップさせて移動方向Ｖ１０へ移動させる。このようにすれば、移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近して攻撃することが容易となる。
【０１２２】
４．  補正処理
しかしながら、図７（Ａ）〜（Ｃ）に示すように、移動体ＯＢ１（自機）とターゲットオブジェクトＯＢ２（敵機）とを結ぶ方向の角度θ１だけ、移動体ＯＢ１を右方向に回転をさせるには、かなりの練度を要する。
【０１２３】
例えば、図８（Ａ）に示すように、プレーヤは、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向の角度よりも小さい角度θ２だけ、移動体ＯＢ１の向きを右方向にロールを行ってしまう場合がある。その結果、図８（Ｃ）に示すように、移動体ＯＢ１をピッチアップさせて移動方向Ｖ２０へ移動させたとしても、移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近することは不可能となる。このように、ロールの回転操作は非常に難しいため、プレーヤにストレスを与えてしまっていた。
【０１２４】
そこで、本実施形態では、移動体ＯＢ１がターゲットオブジェクトＯＢ２に対して容易に移動させることができるようにするために補正処理を行っている。
【０１２５】
４．１  ピッチの処理中における、ロールの補正処理
本実施形態では、第２の入力情報（ピッチの入力情報）に基づく第２の回転処理中（ピッチの回転処理中）に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理（ロール）を補正処理として行う。
【０１２６】
例えば、図９（Ａ）に示すように、プレーヤのロールの入力情報に基づき角度θ３０だけ、移動体ＯＢ１を右方向にロールを行ったとする。
【０１２７】
その後、本実施形態では、プレーヤからのピッチの入力情報（例えば、ピッチアップの入力情報）を受け付けた場合に、ピッチの入力情報に基づくピッチの処理中に、図９（Ｂ）に示すように、移動体ＯＢ１の位置Ｐ３０とターゲットオブジェクトＯＢ２のＱ３０とに基づいて移動体ＯＢ１を、角度θ３１だけ右回転させるロールを行う。
【０１２８】
つまり、本実施形態では、ロールの入力情報によらずに、ピッチの入力情報に基づくピッチの処理中に、移動体ＯＢ１の移動方向が移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向に近づくように、ロールを補正処理として行う。
【０１２９】
また、本実施形態では、移動体ＯＢ１の位置とターゲットオブジェクトＯＢ２の位置に基づいて、補正処理として行うロールの回転角度を決定する。例えば、第１の軸回りにおいて（移動体ＯＢ１のモデル座標のｚ軸回りにおいて（移動体ＯＢ１のモデル座標のｘｙ平面において））移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と移動体の向きとのなす角度φに応じて、補正処理として行うロールの回転量（回転角度）を求める。例えば、ロールの回転量は、０以上であって角度φよりも小さい値とする。例えば、ロールの回転量は、角度φに補正係数Ｋ（０＜Ｋ＜１）を乗じた値等とすることができる。なお、本実施形態では、フレーム毎に補正処理として行うロールの回転角度を求める。
【０１３０】
また、本実施形態では、移動体ＯＢ１の位置とターゲットオブジェクトＯＢ２の位置に基づいて、補正処理として行うロールの回転方向を決定する。例えば、第１の軸回りにおいて、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向に近い回転方向（内角をなす回転方向）に、移動体ＯＢ１を回転させる。なお、本実施形態では、フレーム毎に補正処理として行うロールの回転方向を求める。
【０１３１】
例えば、図９（Ｂ）に示すように、Ｎフレーム目では、第１の軸回りにおいて、移動体ＯＢ１の位置Ｐ３０とターゲットオブジェクトＯＢ２の位置Ｑ３０とを結ぶ方向ａ３３と、移動体ＯＢ１の向きａ３１とのなす角度φａに応じて、補正処理として行うロールの回転量（回転角度）θ３１を求める。例えば、ロールの回転量θ３１は、角度φａに補正係数Ｋ（０＜Ｋ＜１）を乗じた値とする。そして、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向ａ３３に近い回転方向（内角をなす回転方向）である右方向に、移動体ＯＢ１をθ３１だけ回転させる。つまり、Ｎフレーム目では、移動体ＯＢ１をＶ３０の方向に移動させる。
【０１３２】
そして、図９（Ｃ）に示すようにＮ＋１フレーム目では、第１の軸回りにおいて、移動体ＯＢ１の位置Ｐ３１とターゲットオブジェクトＯＢ２の位置Ｑ３１とを結ぶ方向ａ３５と、移動体ＯＢ１の向きａ３２とのなす角度φｂに応じて、補正処理として行うロールの回転量（回転角度）θ３２を求める。例えば、ロールの回転量θ３２は、角度φｂに補正係数Ｋ（０＜Ｋ＜１）を乗じた値とする。そして、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向ａ３５に近い回転方向（内角をなす回転方向）である右方向に、移動体ＯＢ１をθ３２だけ回転させる。つまり、Ｎ＋１フレーム目では、移動体ＯＢ１をＶ３１の方向に移動させる。
【０１３３】
このように、本実施形態では、プレーヤがピッチアップを行っている最中に右ロールへの補助を自然と行うことができるので、プレーヤに違和感を与えることなく、移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近させることができる。
【０１３４】
また、図１０（Ａ）〜（Ｃ）に示すように、プレーヤは、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方角からずれて、大きな角度θ４で移動体ＯＢ１を右方向にロール操作を行ってしまうこともある。例えば、図１０（Ｃ）に示すように、移動体ＯＢ１をピッチアップさせて移動方向Ｖ４０に移動させたとしても、移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近することは難しい。このように、本実施形態では、プレーヤがロールの回転操作が行き過ぎてしまった場合においても、補正処理を行う。
【０１３５】
例えば、図１１（Ａ）に示すように、プレーヤのロールの入力情報に基づき、角度θ５０だけ、移動体ＯＢ１を右方向にロールを行ったとする。
【０１３６】
その後、本実施形態では、プレーヤからのピッチの入力情報（例えば、ピッチアップの入力情報）を受け付けた場合に、ピッチの入力情報に基づくピッチの処理中に、図１１（Ｂ）に示すように、移動体ＯＢ１の位置Ｐ５０とターゲットオブジェクトＯＢ２のＱ５０とに基づいて移動体ＯＢ１を、角度θ５１だけ左回転させるロールを行う。
【０１３７】
例えば、図１１（Ｂ）に示すように、Ｎフレーム目では、第１の軸回りにおいて、移動体ＯＢ１の位置Ｐ５０とターゲットオブジェクトＯＢ２の位置Ｑ５０とを結ぶ方向ａ５３と、移動体ＯＢ１の向きａ５１とのなす角度φｃに応じて、補正処理として行うロールの回転量（回転角度）θ５１を求める。例えば、ロールの回転量θ５１は、角度φｃに補正係数Ｋ（０＜Ｋ＜１）を乗じた値とする。そして、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向ａ５３に近い回転方向（内角をなす回転方向）である左方向に、移動体ＯＢ１をθ５１だけ回転させる。つまり、Ｎフレーム目では、移動体ＯＢ１をＶ５０の方向に移動させる。
【０１３８】
そして、図１１（Ｃ）に示すようにＮ＋１フレーム目では、第１の軸回りにおいて、移動体ＯＢ１の位置Ｐ５１とターゲットオブジェクトＯＢ２の位置Ｑ５１とを結ぶ方向ａ５５と、移動体ＯＢ１の向きａ５２とのなす角度φｄに応じて、補正処理として行うロールの回転量（回転角度）θ５２を求める。例えば、ロールの回転量θ５２は、角度φｄに補正係数Ｋ（０＜Ｋ＜１）を乗じた値とする。そして、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向ａ５５に近い回転方向（内角をなす回転方向）である左方向に、移動体ＯＢ１をθ５２だけ回転させる。つまり、Ｎ＋１フレーム目では、移動体ＯＢ１をＶ５１の方向に移動させる。
【０１３９】
このように、本実施形態では、プレーヤが右ロールの回転操作が行き過ぎてしまった場合においても、その後、プレーヤがピッチアップを行っている最中に左ロールへの補助を自然と行うことができるので、プレーヤに違和感を与えることなく、移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近させることができる。
【０１４０】
また、本実施形態では、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と移動体ＯＢ１の向きとのなす角度φに応じて、補正処理として行う第１の回転処理の回転量（ロールの回転量）を変化させるようにしてもよい。例えば、図１２（Ａ）に示すように、第１の軸回りにおいて、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と移動体ＯＢ１の向きとのなす角度φが大きくなるにつれて、補正処理として行うロールの回転量を増大させる。つまり、角度φが大きいほど、移動体ＯＢ１とターゲットオブジェクトＯＢ２とが大きくずれていることになるので、ロールの回転量を大きくする。一方、角度φが小さい場合には、ずれが少ないので、操作が容易になり過ぎないように、ロールの回転量を小さくするようにしている。
【０１４１】
また、本実施形態では、移動体ＯＢ１の移動速度に応じて、補正処理として行う第１の回転処理の回転量（ロールの回転量）を変化させるようにしてもよい。例えば、図１２（Ｂ）に示すように、移動体ＯＢ１の移動速度が大きくなるにつれて、補正処理として行うロールの回転量を減少させる。通常、加速すればする程、移動体ＯＢ１がターゲットオブジェクトＯＢ２に接近し易くなり、加速中に、更に移動体ＯＢ１がターゲットオブジェクトＯＢ２に接近し易くなる補正処理を加えると、操作が簡易なものになり過ぎてしまう。そこで、本実施形態では、移動体の加速に応じて、補正処理として行うロールの回転量を減少させている。また、物理法則に基づけば、移動体ＯＢ１が加速すればする程、回転力が抑制されることになるので、より自然な動きを実現するためにも、移動体ＯＢ１の加速に応じて、補正処理として行うロールの回転量を減少させることが好ましい。
【０１４２】
なお、補正処理として行うロールの回転量の最大値は、第１の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度φよりも小さい値とする。
【０１４３】
なお、本実施形態では、第１の軸回りにおいて移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と移動体の向きとのなす角度φと、移動体ＯＢ１の移動速度とに応じて、補正処理として行うロールの回転量を変化させるようにしてもよい。
【０１４４】
本実施形態では、ピッチアップだけでなくピッチダウンに基づく入力情報に基づくピッチの中に、ロールの補正処理を行うようにしてもよい。
【０１４５】
４．２  ピッチの処理中における、ヨーの補正処理
本実施形態では、ピッチの処理中に、補正処理として第３の回転処理（ヨー）を行うようにしてもよい。
【０１４６】
例えば、図１３（Ａ）〜（Ｃ）に示すように、ピッチアップの入力情報に基づき、移動体ＯＢ１（自機）を上昇させることができたとしても、移動体ＯＢ１を右方向に移動操作しなければ、ターゲットオブジェクトＯＢ２を射撃することは難しい。そこで、本実施形態では、第２の入力情報（ピッチの入力情報）に基づく第２の回転処理中（ピッチの回転処理中）に、移動体とターゲットオブジェクトとの位置関係に基づいて、第３の回転処理（ヨー）を補正処理として行うようにしている。
【０１４７】
例えば、図１４（Ａ）に示すように、移動体ＯＢ１に対して相対的に右上方にターゲットオブジェクトＯＢ２が位置していたとする。本実施形態では、プレーヤからのピッチの入力情報（例えばピッチアップの入力情報）を受け付けると、ピッチの入力情報に基づくピッチの処理中に、図１４（Ｂ）に示すように、ピッチアップの移動ベクトルＶＰａ１だけでなく、右ヨーの移動ベクトルＶＹａ１を加えて移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近させる移動ベクトルＶ７０の方向へ移動制御を行う。また、次のフレームでも、図１４（Ｃ）に示すように、ピッチアップの移動ベクトルＶＰａ２だけでなく、右ヨーのベクトルＶＹａ２を加えて移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近させるように、移動ベクトルＶ７１の方向へ移動制御を行う。
【０１４８】
具体的には、図１５（Ａ）（Ｂ）に示すように、本実施形態では、移動体ＯＢ１の位置とターゲットオブジェクトＯＢ２の位置に基づいて、補正処理として行うヨーの回転角度を決定する。例えば、第３の軸回りにおいて（移動体ＯＢ１のモデル座標のｙ軸回りにおいて（移動体ＯＢ１のモデル座標のｘｚ平面において））移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と移動体の向きとのなす角度φに応じて、補正処理として行うヨーの回転量（回転角度）を求める。例えば、ヨーの回転量は、０以上であって角度φよりも小さい値とする。例えば、ヨーの回転量は、角度φに補正係数Ｋ（０＜Ｋ＜１）を乗じた値等とすることができる。なお、本実施形態では、フレーム毎に補正処理として行うヨーの回転角度を求める。
【０１４９】
また、本実施形態では、移動体ＯＢ１の位置とターゲットオブジェクトＯＢ２の位置に基づいて、補正処理として行うヨーの回転方向を決定する。例えば、第３の軸回りにおいて、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向に近い回転方向（内角をなす回転方向）に、移動体ＯＢ１を回転させる。なお、本実施形態では、フレーム毎に補正処理として行うヨーの回転方向を求める。
【０１５０】
例えば、図１５（Ａ）に示すように、Ｎフレーム目では、第３の軸回りにおいて、移動体ＯＢ１の位置Ｐ７０とターゲットオブジェクトＯＢ２の位置Ｑ７０とを結ぶ方向ａ７０と、移動体ＯＢ１の向きＶ６９とのなす角度φｅに応じて、補正処理として行うヨーの回転量（回転角度）θ７０を求める。例えば、ヨーの回転量θ７０は、角度φｅに補正係数Ｋ（０＜Ｋ＜１）を乗じた値とする。そして、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向ａ７０に近い回転方向（内角をなす回転方向）である右方向に、移動体ＯＢ１をθ７０だけ回転させる。つまり、Ｎフレーム目では、移動体ＯＢ１をＶ７０の方向に移動させる。
【０１５１】
そして、図１５（Ｂ）に示すようにＮ＋１フレーム目では、第３の軸回りにおいて、移動体ＯＢ１の位置Ｐ７１とターゲットオブジェクトＯＢ２の位置Ｑ７１とを結ぶ方向ａ７１と、移動体ＯＢ１の向きＶ７０とのなす角度φｆに応じて、補正処理として行うヨーの回転量（回転角度）θ７１を求める。例えば、ヨーの回転量θ７１は、角度φｆに補正係数Ｋ（０＜Ｋ＜１）を乗じた値とする。そして、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向ａ７１に近い回転方向（内角をなす回転方向）である右方向に、移動体ＯＢ１をθ７１だけ回転させる。つまり、Ｎ＋１フレーム目では、移動体ＯＢ１をＶ７１の方向に移動させる。
【０１５２】
このように、本実施形態では、プレーヤがピッチアップを行っている最中に右ヨーへの補助を自然と行うことができるので、プレーヤに違和感を与えることなく、移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近させることができる。
【０１５３】
また、例えば、図１６（Ａ）（Ｂ）に示すように、プレーヤは、ヨーの操作において誤ってターゲットオブジェクトＯＢ２を超えて右に移動し過ぎてしまうことがある。そこで、本実施形態では、プレーヤがヨーの操作が行き過ぎてしまった場合においても、移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近させることができるように、ヨーの補正処理を行う。
【０１５４】
例えば、図１６（Ａ）に示すように、移動体ＯＢ１に対して相対的に右上方にターゲットオブジェクトＯＢ２が位置していたとする。そして、図１６（Ｂ）に示すように、プレーヤの右ヨーの入力情報に基づき、移動体ＯＢ１を右方向の移動ベクトルＶＹａ３の方向へ移動させる。そして、ピッチの入力情報（例えば、ピッチアップの入力情報）を受け付けたとする。
【０１５５】
本実施形態では、プレーヤからのピッチアップの入力情報を受け付けると、ピッチアップの入力情報に基づくピッチの処理中に、図１６（Ｃ）に示すように、ピッチアップの移動ベクトルＶＰａ４だけでなく、左ヨーの移動ベクトルＶＹｂ４を加えて移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近させるように移動方向Ｖ８０へ移動制御する。
【０１５６】
言い換えると、図１７に示すように、プレーヤからのピッチの入力情報を受け付けた場合に、ピッチの入力情報に基づくピッチの処理中に、移動体ＯＢ１の位置Ｐ８１とターゲットオブジェクトＯＢ２のＱ８１とに基づいて、移動体ＯＢ１を角度θ８０だけ左回転させるヨーを行う。
【０１５７】
例えば、図１７に示すように、Ｎフレーム目において、第３の軸回りにおいて、移動体ＯＢ１の位置Ｐ８１とターゲットオブジェクトＯＢ２の位置Ｑ８１とを結ぶ方向ａ８０と、移動体ＯＢ１の向きＶ７９とのなす角度φｇに応じて、補正処理として行うヨーの回転量（回転角度）θ８０を求める。例えば、ヨーの回転量θ８０は、角度φｇに補正係数Ｋ（０＜Ｋ＜１）を乗じた値とする。そして、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向ａ８０に近い回転方向（内角をなす回転方向）である左方向に、移動体ＯＢ１をθ８０だけ回転させる。つまり、Ｎフレーム目では、移動体ＯＢ１をベクトルＶ８０の方向に移動させる。
【０１５８】
このように、本実施形態では、プレーヤが右ヨーの回転操作が行き過ぎてしまった場合においても、その後、プレーヤがピッチアップを行っている最中に左ヨーへの補助を自然と行うことができるので、プレーヤに違和感を与えることなく、移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近させることができる。
【０１５９】
また、本実施形態では、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と移動体ＯＢ１の向きとのなす角度φに応じて、補正処理として行う第３の回転処理の回転量（ヨーの回転量）を変化させるようにしてもよい。例えば、図１２（Ａ）に示すように、第３の軸回りにおいて、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と移動体ＯＢ１の向きとのなす角度φが大きくなるにつれて、補正処理として行うロールの回転量を増大させる。
【０１６０】
また、本実施形態では、移動体ＯＢ１の移動速度に応じて、補正処理として行う第３の回転処理の回転量（ヨーの回転量）を変化させるようにしてもよい。例えば、図１２（Ｂ）に示すように、移動体ＯＢ１の移動速度が大きくなる（加速する）につれて、補正処理として行うロールの回転量を減少させる。
【０１６１】
なお、補正処理として行うヨーの回転量の最大値は、第３の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度φよりも小さい値とする。
【０１６２】
なお、本実施形態では、第３の軸回りにおいて移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と移動体の向きとのなす角度φと、移動体ＯＢ１の移動速度とに応じて、補正処理として行うヨーの回転量を変化させるようにしてもよい。
【０１６３】
本実施形態では、ピッチアップだけでなくピッチダウンに基づく入力情報に基づくピッチの中に、ヨーの補正処理を行うようにしてもよい。
【０１６４】
４．３  ピッチの処理中における、ロール、ヨーの補正処理
なお、本実施形態では、第２の入力情報（ピッチの入力情報）に基づく第２の回転処理中（ピッチの処理中）に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理（ロール）の補正処理及び第３の回転処理（ヨー）の補正処理を同時に行うようにしてもよい。また、本実施形態では、第２の入力情報に基づく第２の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理（ロール）の補正処理のみを行う、或いは、第３の回転処理（ヨー）の補正処理のみを行うようにしてもよい。
【０１６５】
４．４  ピッチの補正処理
本実施形態では、第２の入力情報（ピッチの入力情報）を受け付けた場合に、移動体ＯＢ１（自機）とターゲットオブジェクトＯＢ２（敵機）とを結ぶ方向に近づける第２の回転処理（ピッチ）の補正処理を行うようにしてもよい。
【０１６６】
例えば、図１８（Ａ）に示すように、移動体ＯＢ１がターゲットオブジェクトＯＢ２よりも下方に位置する場合において、ピッチアップの入力情報に基づく上昇移動ベクトルに、移動体ＯＢ１を更に上昇させる補正用の移動ベクトルＦ１を加えて、移動体ＯＢ１を移動ベクトルＶＰａ９０だけ上昇させる。つまり、上昇を増長させて、移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近させる。
【０１６７】
また、図１８（Ｂ）に示すように、移動体ＯＢ１がターゲットオブジェクトＯＢ２よりも上方に位置する場合において、ピッチアップの入力情報に基づく上昇移動ベクトルに、移動体ＯＢ１を下降させる補正用の移動ベクトルＦ２を加えて、移動体ＯＢ１を移動ベクトルＶＰａ９２だけ上昇させる。つまり、上昇を抑制させるように、移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近させる。
【０１６８】
例えば、図１９（Ａ）に示すように、第２の軸回りにおいて（移動体ＯＢ１のモデル座標のｘ軸回りにおいて（移動体ＯＢ１のモデル座標のｚｙ平面において））、移動体ＯＢ１をθ９０だけ上に回転させる上方向へのピッチ（ピッチアップ）の入力情報を受け付けた場合には、更に、ピッチアップの回転を補助するために補正回転量θ９１を加える。つまり、移動体ＯＢ１の第２の軸回りの回転量を、角度θ９２とし、角度θ９２だけピッチアップする回転処理を行う。
【０１６９】
また、図１９（Ｂ）に示すように、第２の軸回りにおいて、移動体ＯＢ１をθ９５だけ上に回転させる上方向へのピッチ（ピッチアップ）の入力情報を受け付けた場合には、ターゲットオブジェクトＯＢ２の位置Ｑ９１から遠ざかってしまう。そこで、ピッチアップの回転を補助するために補正回転量θ９３を減算する。つまり、移動体ＯＢ１の第２の軸回りの回転量を、角度θ９４とし、角度θ９４だけピッチアップする回転処理を行う。
【０１７０】
つまり、プレーヤのピッチ回転操作が、ターゲットオブジェクトＯＢ２に近づく回転量が足りない、或いは、ターゲットオブジェクトＯＢ２から遠ざかるような回転操作を誤って行う場合がある。そこで、本実施形態では、ピッチの入力情報に基づく回転量に、補正回転量を加算或いは減算して回転の補助を行う。なお、本実施形態では、自然な補助を行うために、ピッチの入力情報を受け付けた場合には回転方向は補正せず、回転量のみを補正する。
【０１７１】
なお、本実施形態では、第２軸回りにおいて、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と、第２の入力情報に基づく移動体の向きとのなす角度βに基づき、補正回転量を求めるようにしてもよい。なお、本実施形態では、フレーム毎に補正処理として行う補正回転量を求めるようにしてもよい。
【０１７２】
例えば、図１９（Ａ）に示すように、第２の軸回りにおいて、移動体ＯＢ１の位置Ｐ９０とターゲットオブジェクトＯＢ２の位置Ｑ９０とを結ぶ方向ａ９４と、ピッチアップの入力情報に基づく移動体の向きＶ８９とのなす角度βａに応じて、補正処理として行う補正回転量θ９１を求める。例えば、ロールの補正回転量θ９１は、角度βａに補正係数Ｋ（０＜Ｋ＜１）を乗じた値とする。そして、ピッチアップの入力情報に基づく回転量θ９０に補正回転量θ９１を加算したθ９２だけ回転させる。つまり、移動体ＯＢ１をベクトルＶ９０の方向に移動させる（ベクトルＶＰａ９０だけ上昇移動させる）。
【０１７３】
また、図１９（Ａ）の例では、第２の軸回りにおいて、ピッチの入力情報に基づく回転処理が、移動体ＯＢ１の向きを、移動体ＯＢ１の位置Ｐ９０とターゲットオブジェクトＯＢ２の位置Ｑ９０とを結ぶ方向ａ９４に近づけているので、ピッチの入力情報に基づく回転量に、補正回転量を加算する処理を行う。
【０１７４】
一方、図１９（Ｂ）に示すように、移動体ＯＢ１の位置Ｐ９１とターゲットオブジェクトＯＢ２の位置Ｑ９１とを結ぶ方向ａ９５と、ピッチアップの入力情報に基づく移動体の向きＶ９３とのなす角度βｂに応じて、補正処理として行う補正回転量θ９３を求める。例えば、ピッチの補正回転量θ９３は、角度βｂに補正係数Ｋ（０＜Ｋ＜１）を乗じた値とする。そして、ピッチアップの入力情報に基づく回転量θ９５から補正回転量θ９３を減算したθ９４だけ回転させる。つまり、移動体ＯＢ１をベクトルＶ９２の方向に移動させる（ベクトルＶＰａ９２だけ上昇移動させる）。
【０１７５】
また、図１９（Ｂ）の例では、第２の軸回りにおいて、ピッチの入力情報に基づく回転処理が、移動体ＯＢ１の向きを、移動体ＯＢ１の位置Ｐ９１とターゲットオブジェクトＯＢ２の位置Ｑ９１とを結ぶ方向ａ９５から遠ざけているので、ピッチの入力情報に基づく回転量から、補正回転量を減算する処理を行う。
【０１７６】
なお、図１９（Ａ）に示すように、回転量を加算補正する際の補正回転量の最大値は、第２の軸回りにおいて、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と、第２の入力情報に基づく移動体の向きとのなす角度βａよりも小さい値とする。一方、図１９（Ｂ）に示すように、回転量を減算補正する際の補正回転量の最大値は、第２の入力情報に基づく回転量θ９５よりも小さい値とする。
【０１７７】
このように、本実施形態では、プレーヤがピッチを行っている最中に、ピッチの補助を自然と行うことができるので、プレーヤに違和感を与えることなく、移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近させることができる。
【０１７８】
また、本実施形態では、第２軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、ピッチの入力情報に基づく移動体の向きとのなす角度βに応じて、ピッチの回転量を変化させるようにしてもよい。つまり、角度βに応じて、ピッチの補正回転量を変化させるようにしてもよい。例えば、図１２（Ａ）に示すように、角度βが大きくなるにつれて、ピッチの回転量を増大させる。つまり、角度βが大きいほど、移動体ＯＢ１とターゲットオブジェクトＯＢ２とが大きくずれていることになるので、回転量を大きくする。一方、角度βが小さい場合には、ずれが少ないので、操作が容易になり過ぎないように、回転量を小さくするようにしている。
【０１７９】
また、本実施形態では、移動体ＯＢ１の速度に応じて、ピッチの回転量を変化させるようにしてもよい。例えば、図１２（Ｂ）に示すように、移動体ＯＢ１の移動速度が大きくなる（加速する）につれて、補正処理として行うピッチの補正回転量を減少させる。操作の難易度を適度なものにし、より自然な動きを実現するためである。つまり、加速すると近づき易いが補正がきかず操作が難しくなり、減速すると補正で操作し易いが近づきにくい、という駆け引きを実現するためである。また、本実施形態では、第２軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、ピッチの入力情報に基づく移動体の向きとのなす角度β、及び、移動体の速度に応じて、ピッチの回転量を変化させるようにしてもよい。
【０１８０】
なお、本実施形態では、ピッチアップだけでなくピッチダウンに基づく入力情報に基づくピッチの中に、ピッチの補正処理を行うようにしてもよい。つまり、プレーヤがピッチダウンの回転操作を行う場合に、ターゲットオブジェクトＯＢ２に近づく回転量が足りない場合は更にピッチダウンへの補正回転量を加算する。また、プレーヤが、ターゲットオブジェクトＯＢ２から遠ざかるような回転操作を誤って行う場合には、ピッチの入力情報に基づく回転量から、補正回転量を減算して回転を抑制する補助を行う。
【０１８１】
４．５  ヨーの補正処理
本実施形態では、第３の入力情報（ヨーの入力情報）を受け付けた場合に、移動体ＯＢ１（自機）とターゲットオブジェクトＯＢ２（敵機）とを結ぶ方向に近づける第３の回転処理（ヨー）の補正処理を行うようにしてもよい。
【０１８２】
例えば、図２０（Ａ）に示すように、移動体ＯＢ１がターゲットオブジェクトＯＢ２よりも左側に位置する場合において、右ヨーの入力情報に基づく右移動ベクトルに、移動体ＯＢ１を更に右に移動させる補正用の移動ベクトルＦ３を加えて、移動体ＯＢ１を移動ベクトルＶＹａ１００だけ右移動させる。つまり、右移動を増長させて、移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近させる。
【０１８３】
また、図２０（Ｂ）に示すように、移動体ＯＢ１がターゲットオブジェクトＯＢ２よりも右側に位置する場合において、右ヨーの入力情報に基づく右移動ベクトルに、移動体ＯＢ１の右移動を抑制させる補正用の移動ベクトルＦ４を加えて、移動体ＯＢ１を移動ベクトルＶＹａ１０２だけ右移動させる。つまり、右移動を抑制させて、移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近させる。
【０１８４】
例えば、図２１（Ａ）に示すように、第３の軸回りにおいて、移動体ＯＢ１をθ１００だけ右に回転させる右方向へのヨーの入力情報を受け付けた場合には、更に、右ヨーの回転を補助するために補正回転量θ１０１を加える。つまり、移動体ＯＢ１の第３の軸回りの回転量を、角度θ１０２とし、角度θ１０２だけ右回転させる。
【０１８５】
また、図２１（Ｂ）に示すように、第３の軸回りにおいて、移動体ＯＢ１をθ１０５だけ右に回転させる右ヨーの入力情報を受け付けた場合には、ターゲットオブジェクトＯＢ２の位置Ｑ１０１から遠ざかってしまう。そこで、右ヨーの回転を抑制補助するために補正回転量θ１０３を減算する。つまり、移動体ＯＢ１の第３の軸回りの回転量を角度θ１０４とし、角度θ１０４だけ右回転させる。
【０１８６】
つまり、プレーヤのヨーの回転操作が、ターゲットオブジェクトＯＢ２に近づく回転量が足りない、或いは、ターゲットオブジェクトＯＢ２から遠ざかるような回転操作を誤って行う場合がある。そこで、本実施形態では、ヨーの入力情報に基づく回転量に、補正回転量を加算或いは減算して回転の補助を行う。なお、本実施形態では、自然な補助を行うために、ヨーの入力情報を受け付けた場合には回転方向は補正せず、回転量のみを補正する。
【０１８７】
本実施形態では、第３軸回りにおいて、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と、第３の入力情報に基づく移動体の向きとのなす角度βに基づき、補正回転量を求めるようにしてもよい。なお、本実施形態では、フレーム毎に補正処理として行う補正回転量を求めるようにしてもよい。
【０１８８】
例えば、図２１（Ａ）に示すように、第３の軸回りにおいて、移動体ＯＢ１の位置Ｐ１００とターゲットオブジェクトＯＢ２の位置Ｑ１００とを結ぶ方向ａ１０１と、ヨーの入力情報に基づく移動体の向きＶ９９とのなす角度βｃに応じて、補正処理として行う補正回転量θ１０１を求める。例えば、ロールの補正回転量θ１０１は、角度βｃに補正係数Ｋ（０＜Ｋ＜１）を乗じた値とする。そして、ヨーの入力情報に基づく回転量θ１００に補正回転量θ１０１を加算したθ１０２だけ回転させる。つまり、移動体ＯＢ１をベクトルＶ１００の方向に移動させる（ベクトルＶＹａ１００だけ右移動させる）。
【０１８９】
また、図２１（Ａ）の例では、第３の軸回りにおいて、ヨーの入力情報に基づく回転処理が、移動体ＯＢ１の向きを、移動体ＯＢ１の位置Ｐ１００とターゲットオブジェクトＯＢ２の位置Ｑ１００とを結ぶ方向ａ１０１に近づけているので、ヨーの入力情報に基づく回転量に、補正回転量を加算する処理を行う。
【０１９０】
一方、図２１（Ｂ）に示すように、移動体ＯＢ１の位置Ｐ１０１とターゲットオブジェクトＯＢ２の位置Ｑ１０１とを結ぶ方向ａ１０２と、ヨーの入力情報に基づく移動体の向きＶ１０３とのなす角度βｄに応じて、補正処理として行う補正回転量θ１０３を求める。例えば、ヨーの補正回転量θ１０３は、角度βｄに補正係数Ｋ（０＜Ｋ＜１）を乗じた値とする。そして、ヨーの入力情報に基づく回転量θ１０５から補正回転量θ１０３を減算したθ１０４だけ回転させる。つまり、移動体ＯＢ１をベクトルＶ１０２の方向に移動させる（ベクトルＶＹａ１０２だけ右移動させる）。
【０１９１】
また、図２１（Ｂ）の例では、第３の軸回りにおいて、ヨーの入力情報に基づく回転処理が、移動体ＯＢ１の向きを、移動体ＯＢ１の位置Ｐ１０１とターゲットオブジェクトＯＢ２の位置Ｑ１０１とを結ぶ方向ａ１０２から遠ざけているので、ヨーの入力情報に基づく回転量から、補正回転量を減算する処理を行う。
【０１９２】
なお、図２１（Ａ）に示すように、回転量を加算補正する際の補正回転量の最大値は、第３の軸回りにおいて、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と、第３の入力情報に基づく移動体の向きとのなす角度βｃよりも小さい値とする。一方、図２１（Ｂ）に示すように、回転量を減算補正する際の補正回転量の最大値は、第３の入力情報に基づく回転量θ１０５よりも小さい値とする。
【０１９３】
このように、本実施形態では、プレーヤがヨー操作を行っている最中に、ヨーの補助を自然と行うことができるので、プレーヤに違和感を与えることなく、移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近させることができる。
【０１９４】
また、本実施形態では、第３軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、ヨーの入力情報に基づく移動体の向きとのなす角度βに応じて、ヨーの回転量を変化させるようにしてもよい。つまり、角度βに応じて、ヨーの補正回転量を変化させるようにしてもよい。例えば、図１２（Ａ）に示すように、角度βが大きくなるにつれて、ヨーの回転量を増大させる。つまり、角度βが大きいほど、移動体ＯＢ１とターゲットオブジェクトＯＢ２とが大きくずれていることになるので、回転量を大きくする。一方、角度βが小さい場合には、ずれが少ないので、操作が容易になり過ぎないように、回転量を小さくするようにしている。
【０１９５】
また、本実施形態では、移動体ＯＢ１の速度に応じて、ヨーの回転量を変化させるようにしてもよい。例えば、図１２（Ｂ）に示すように、移動体ＯＢ１の移動速度が大きくなる（加速する）につれて、補正処理として行うヨーの補正回転量を減少させる。操作の難易度を適度なものにし、より自然な動きを実現するためである。つまり、加速すると近づき易いが補正がきかず操作が難しくなり、減速すると補正で操作し易いが近づきにくい、という駆け引きを実現するためである。また、本実施形態では、第３軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、ヨーの入力情報に基づく移動体の向きとのなす角度β、及び、移動体の速度に応じて、ヨーの回転量を変化させるようにしてもよい。
【０１９６】
なお、本実施形態では、右ヨーだけでなく左ヨーに基づく入力情報に基づく左ヨーの処理中に、ヨーの補正処理を行うようにしてもよい。つまり、プレーヤが左ヨー回転操作を行う場合に、ターゲットオブジェクトＯＢ２に近づく回転量が足りない場合は更に左ヨーへの補正回転量を加算する。また、プレーヤが左ヨー回転操作を行う場合に、ターゲットオブジェクトＯＢ２から遠ざかるような回転操作を誤って行う場合には、ヨーの入力情報に基づく回転量から、補正回転量を減算して回転を抑制する補助を行う。
【０１９７】
４．６  ロールの補正処理
本実施形態では、第１の入力情報（ロールの入力情報）を受け付けた場合に、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向に近づける第１の回転処理（ロール）の補正処理を行うようにしてもよい。
【０１９８】
例えば、図２２（Ａ）に示すように、移動体ＯＢ１をθ１１０だけ右に回転させる右方向へのロールの入力情報を受け付けた場合には、第１の軸回りの回転が足りない。そこで、本実施形態では、更に、右ロールの回転を補助するために補正回転量θ１１１を加える。つまり、移動体ＯＢ１の第１の軸回りの回転量を、角度θ１１２とし、角度θ１１２だけ右回転させる。
【０１９９】
また、図２２（Ｂ）に示すように、移動体ＯＢ１をθ１１３だけ右に回転させる右ロールの入力情報を受け付けた場合には、第１の軸回りの回転が、ターゲットオブジェクトＯＢ２の方角とは遠ざかる向きとなる。そこで、本実施形態では、右ロールの回転を抑制補助するために補正回転量θ１１４を減算する。つまり、移動体ＯＢ１の第１の軸回りの回転量を角度θ１１５とし、角度θ１１５だけ右回転させる。
【０２００】
つまり、プレーヤのロールの回転操作が、ターゲットオブジェクトＯＢ２に近づく回転量が足りない、或いは、ターゲットオブジェクトＯＢ２から遠ざかるような回転操作を誤って行う場合がある。そこで、本実施形態では、ロールの入力情報に基づく回転量に、補正回転量を加算或いは減算して回転の補助を行う。なお、本実施形態では、自然な補助を行うために、ロールの入力情報を受け付けた場合には回転方向は補正せず、回転量のみを補正する。
【０２０１】
本実施形態では、第１軸回りにおいて、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と、第１の入力情報に基づく移動体の向きとのなす角度βに基づき、補正回転量を求めるようにしてもよい。なお、本実施形態では、フレーム毎に補正処理として行う補正回転量を求めるようにしてもよい。
【０２０２】
例えば、図２２（Ａ）に示すように、移動体ＯＢ１の位置Ｐ１１０とターゲットオブジェクトＯＢ２の位置Ｑ１１０とを結ぶ方向ａ１１３と、ロールの入力情報に基づく移動体の向きａ１１１とのなす角度βｅに応じて、補正処理として行う補正回転量θ１１１を求める。例えば、ロールの補正回転量θ１１１は、角度βｅに補正係数Ｋ（０＜Ｋ＜１）を乗じた値とする。そして、ロールの入力情報に基づく回転量θ１１０に補正回転量θ１１１を加算したθ１１２だけ回転させる。
【０２０３】
また、図２２（Ａ）の例では、第１の軸回りにおいて、ロールの入力情報に基づく回転処理が、移動体ＯＢ１の向きを、移動体ＯＢ１の位置Ｐ１１０とターゲットオブジェクトＯＢ２の位置Ｑ１１０とを結ぶ方向ａ１１３に近づけているので、ロールの入力情報に基づく回転量に、補正回転量を加算する処理を行う。
【０２０４】
一方、図２２（Ｂ）に示すように、移動体ＯＢ１の位置Ｐ１１１とターゲットオブジェクトＯＢ２の位置Ｑ１１１とを結ぶ方向ａ１１４と、ロールの入力情報に基づく移動体の向きａ１１７とのなす角度βｆに応じて、補正処理として行う補正回転量θ１１４を求める。例えば、ロールの補正回転量θ１１４は、角度βｆに補正係数Ｋ（０＜Ｋ＜１）を乗じた値とする。そして、ロールの入力情報に基づく回転量θ１１３から補正回転量θ１１４を減算したθ１１５だけ回転させる。
【０２０５】
また、図２２（Ｂ）の例では、第１の軸回りにおいて、ロールの入力情報に基づく回転処理が、移動体ＯＢ１の向きを、移動体ＯＢ１の位置Ｐ１１１とターゲットオブジェクトＯＢ２の位置Ｑ１１１とを結ぶ方向ａ１１４から遠ざけているので、ロールの入力情報に基づく回転量から、補正回転量を減算する処理を行う。
【０２０６】
なお、図２２（Ａ）に示すように、回転量を加算補正する際の補正回転量の最大値は、第１の軸回りにおいて、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と、第１の入力情報に基づく移動体の向きとのなす角度βｅよりも小さい値とする。一方、図２２（Ｂ）に示すように、回転量を減算補正する際の補正回転量の最大値は、第１の入力情報に基づく回転量θ１１３よりも小さい値とする。
【０２０７】
このように、本実施形態では、プレーヤがロール操作を行っている最中に、ロールの補助を自然と行うことができるので、プレーヤに違和感を与えることなく、移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近させることができる。
【０２０８】
また、本実施形態では、第１軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、ロールの入力情報に基づく移動体の向きとのなす角度βに応じて、ロールの回転量を変化させるようにしてもよい。つまり、角度βに応じて、ロールの補正回転量を変化させるようにしてもよい。例えば、図１２（Ａ）に示すように、角度βが大きくなるにつれて、ロールの回転量を増大させる。つまり、角度βが大きいほど、移動体ＯＢ１とターゲットオブジェクトＯＢ２とが大きくずれていることになるので、回転量を大きくする。一方、角度βが小さい場合には、ずれが少ないので、操作が容易になり過ぎないように、回転量を小さくするようにしている。
【０２０９】
また、本実施形態では、移動体ＯＢ１の速度に応じて、ロールの回転量を変化させるようにしてもよい。例えば、図１２（Ｂ）に示すように、移動体ＯＢ１の移動速度が大きくなる（加速する）につれて、補正処理として行うロールの補正回転量を減少させる。操作の難易度を適度なものにし、より自然な動きを実現するためである。つまり、加速すると近づき易いが補正がきかず操作が難しくなり、減速すると補正で操作し易いが近づきにくい、という駆け引きを実現するためである。また、本実施形態では、第３軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、ロールの入力情報に基づく移動体の向きとのなす角度β、及び、移動体の速度に応じて、ロールの回転量を変化させるようにしてもよい。
【０２１０】
なお、本実施形態では、右ロールだけでなく左ロールに基づく入力情報に基づく左ロールの処理中に、ロールの補正処理を行うようにしてもよい。つまり、プレーヤが左ロール回転操作を行う場合に、ターゲットオブジェクトＯＢ２に近づく回転量が足りない場合は更に左ロールへの補正回転量を加算する。また、プレーヤが左ロール回転操作を行う場合に、ターゲットオブジェクトＯＢ２から遠ざかるような回転操作を誤って行う場合には、ヨーの入力情報に基づく回転量から、補正回転量を減算して回転を抑制する補助を行う。
【０２１１】
５．選択処理
本実施形態では、図２３（Ａ）に示すように、オブジェクト空間において、ターゲットオブジェクトＯＢ２〜ＯＢ５が複数存在する場合には、移動体ＯＢ１と各ターゲットオブジェクトＯＢ２〜ＯＢ５との位置関係に基づいて、一のターゲットオブジェクトを選択する処理を行う。そして、移動体ＯＢ１と選択されたターゲットオブジェクトに基づいて、補正処理を行う。
【０２１２】
本実施形態では、図２３（Ａ）に示すように、移動体ＯＢ１の位置Ｐ２００を頂点とし、半径ｒの円錐形のボリュームＡＲ内に存在するターゲットオブジェクトであって、移動体ＯＢ１との距離が最も近いターゲットオブジェクトを選択する。例えば、図２３（Ａ）の例では、ターゲットオブジェクトＯＢ２はボリュームＡＲ外にいるので、まず除外される。そして、ボリュームＡＲ内に存在する各ターゲットオブジェクトＯＢ３〜ＯＢ５と移動体ＯＢ１と直線距離Ｌ３、Ｌ４、Ｌ５を求める。そして、最短距離であるターゲットオブジェクトＯＢ４が選択される。
【０２１３】
また、本実施形態では、図２３（Ｂ）に示すように、スクリーンＳＣ上において、移動体ＯＢ１の投影点Ｏから最も近いターゲットオブジェクトを選択するようにしてもよい。例えば、図２３（Ｂ）に示すように、円錐状のボリュームＡＲを投影した円ＡＲ−１において、中心点Ｏ（移動体ＯＢ１の投影点）に最も近いオブジェクトを選択する。例えば、図２３（Ａ）のターゲットオブジェクトＯＢ２〜ＯＢ５の各位置Ｉ２〜Ｉ５をスクリーンＳＣに投影した点をＪ２〜Ｊ５とすると、ＯＢ４を投影した位置Ｊ４とＯＢ５を投影した位置Ｊ５が中心から最も近い。したがって、ＯＢ４またはＯＢ５を選択するようにしてもよい。なお、ＯＢ４とＯＢ５のうち、ＯＢ４の方が移動体ＯＢ１に近いのでＯＢ４を選択するようにしてもよい。
【０２１４】
なお、本実施形態では、各ターゲットオブジェクトの脅威力値などの所定のパラメータに基づいて、一のターゲットオブジェクトを選択するようにしてもよい。また、プレーヤの選択入力情報に基づき、複数のターゲットオブジェクトの中から一のターゲットオブジェクトの選択を受け付けるようにしてもよい。また、各ターゲットオブジェクト（敵機）が強いか弱いかを示す敵機の威力値に基づいて、一のターゲットオブジェクトを選択するようにしてもよい。
【０２１５】
また、複数の要素に「傾斜配点したテーブル」等を用意しておき、得点の一番高いターゲットオブジェクトを選択するようにしてもよい。例えば、移動体ＯＢ１とターゲットオブジェクトＯＢ２〜ＯＢ５の直線距離を要素の１つとし、直線距離が近いほど高得点となる配点テーブルを用意し、移動体ＯＢ１とターゲットオブジェクトの直線距離に基づいて当該配点テーブルを参照して各ターゲットオブジェクトを配点する。また、スクリーンＳＣにおける移動体ＯＢ１の投影点（中心点）とターゲットオブジェクトの位置Ｊ２〜Ｊ５の距離を要素の１つとし、ＯＢ１の投影点に近いほど高得点となる配点テーブルを用意し、スクリーンＳＣにおいて移動体ＯＢ１の投影点とターゲットオブジェクトの投影点との距離に基づいて、当該配点テーブルを参照して各ターゲットオブジェクトを配点する。また、各ターゲットオブジェクトの脅威力値などの各パラメータを要素の１つとし、パラメータ毎に配点テーブルを用意し、当該配点テーブルを参照して各ターゲットオブジェクトを配点するようにしてもよい。そして、要素毎の配点を合計した合計点が最も高いターゲットオブジェクトを選択するようにする。
【０２１６】
また、ゲームマップなどの、シチュエーションにより配点テーブルの配点の傾斜を切り替えるようにしてもよい。つまり、ゲームマップなどの、シチュエーションが変化する場合には、各要素の配点テーブルを変化させるようにしてもよい。例えば、ゲームマップ１からゲームマップ２に切り替わる場合には、移動体ＯＢ１とターゲットオブジェクトＯＢ２〜ＯＢ５の直線距離が近いほど高得点となる「配点テーブル１」から、移動体ＯＢ１とターゲットオブジェクトＯＢ２〜ＯＢ５の直線距離が遠いほど高得点となる「配点テーブル２」に切り替えるようにしてもよい。
【０２１７】
６．フローチャート
図２４は、本実施形態の補正処理の一例を示すフローチャートである。まずターゲットオブジェクト（敵機）を選択する処理を行う（ステップＳ１）。次に、ピッチの入力情報を受け付けたか否かを判定する（ステップＳ２）。そして、ピッチの入力情報を受け付けた場合には（ステップＳ２のＹ）、ピッチの入力情報に基づくピッチの回転処理中に、移動体（プレーヤの操作対象の移動体）とターゲットオブジェクトとの位置関係に基づいて、ロールの回転処理、及び、ヨーの回転処理の少なくとも一方を行う（ステップＳ３）。
【０２１８】
また、ピッチの回転処理の補正処理を行う。つまり、移動体とターゲットオブジェクトとを結ぶ方向に近づけるピッチの補正処理を行う（ステップＳ４）。なお、ピッチの入力情報を受け付けなかった場合には(ステップＳ２のＮ）、処理を終了する。以上で処理が終了する。
【０２１９】
７．応用例
本実施形態では、第３の入力情報に基づく第３の回転処理中（ヨーの回転中）に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理（ロール）、及び第２の回転処理（ピッチ）の少なくとも一方を、補正処理として行うようにしてもよい。
【０２２０】
７．１  ヨーの回転中におけるロールの補正処理
本実施形態では、第３の入力情報（ヨーの入力情報）に基づく第３の回転処理中（ヨーの回転処理中）に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理（ロール）を補正処理として行うようにしてもよい。
【０２２１】
例えば、図２５に示すように、プレーヤからのヨーの入力情報（例えば、右ヨーの入力情報）を受け付けた場合に、ヨーの入力情報に基づくヨーの処理中に、移動体ＯＢ１とターゲットオブジェクトＯＢ２との相対的な位置関係に基づいて移動体ＯＢ１を、角度θ３００だけ右回転させるロールを行う。
【０２２２】
つまり、本実施形態では、ロールの入力情報によらずに、ヨーの入力情報に基づくヨーの回転処理中に、移動体ＯＢ１の移動方向が移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向に近づくように、ロールを補正処理として行う。
【０２２３】
また、本実施形態では、移動体ＯＢ１の位置とターゲットオブジェクトＯＢ２の位置に基づいて、補正処理として行うロールの回転角度を決定する。例えば、図２５に示すように、第１の軸回りにおいて移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向ａ３０２と移動体の向きａ３００とのなす角度φｈに応じて、補正処理として行うロールの回転量（回転角度）を求める。例えば、ロールの回転量は、０以上であって角度φｈよりも小さい値とする。例えば、ロールの回転量は、角度φｈに補正係数Ｋ（０＜Ｋ＜１）を乗じた値等とすることができる。なお、本実施形態では、フレーム毎に補正処理として行うロールの回転角度を求める。
【０２２４】
また、本実施形態では、移動体ＯＢ１の位置とターゲットオブジェクトＯＢ２の位置に基づいて、補正処理として行うロールの回転方向を決定する。例えば、第１の軸回りにおいて、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向に近い回転方向（内角をなす回転方向）に、移動体ＯＢ１を回転させる。なお、本実施形態では、フレーム毎に補正処理として行うロールの回転方向を求める。
【０２２５】
例えば、図２５に示すように、第１の軸回りにおいて、移動体ＯＢ１の位置Ｐ３０１とターゲットオブジェクトＯＢ２の位置Ｑ３０１とを結ぶ方向ａ３０２と、移動体ＯＢ１の向きａ３００とのなす角度φｈに応じて、補正処理として行うロールの回転量（回転角度）θ３００を求める。例えば、ロールの回転量θ３００は、角度φｈに補正係数Ｋ（０＜Ｋ＜１）を乗じた値とする。そして、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向ａ３０２に近い回転方向（内角をなす回転方向）である右方向に、移動体ＯＢ１をθ３００だけ回転させる。つまり、移動体ＯＢ１を、右ヨーの移動ベクトルＶＹａ３００に移動しながら、θ３００だけ回転させる。
【０２２６】
このように、本実施形態では、プレーヤがヨーを行っている最中に右ロールへの補助を自然と行うことができるので、プレーヤに違和感を与えることなく、移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近させることができる。
【０２２７】
また、本実施形態では、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と移動体ＯＢ１の向きとのなす角度φｈに応じて、補正処理として行う第１の回転処理の回転量（ロールの回転量）を変化させるようにしてもよい。例えば、図１２（Ａ）に示すように、第１の軸回りにおいて、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と移動体の移動方向とのなす角度φｈが大きくなるにつれて、補正処理として行うロールの回転量を増大させる。
【０２２８】
また、本実施形態では、移動体ＯＢ１の移動速度に応じて、補正処理として行う第１の回転処理の回転量（ロールの回転量）を変化させるようにしてもよい。例えば、図１２（Ｂ）に示すように、移動体ＯＢ１の移動速度が大きくなる（加速する）につれて、補正処理として行うロールの回転量を減少させる。
【０２２９】
なお、補正処理として行うロールの回転量の最大値は、第１の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と移動体の移動方向とのなす角度φｈよりも小さい値とする。
【０２３０】
なお、本実施形態では、第１の軸回りにおいて移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と移動体の向きとのなす角度φｈと、移動体ＯＢ１の移動速度とに応じて、補正処理として行うロールの回転量を変化させるようにしてもよい。
【０２３１】
本実施形態では、右ヨーだけでなく左ヨーに基づく入力情報に基づくヨーの処理中に、ロールの補正処理を行うようにしてもよい。
【０２３２】
７．２  ヨーの回転中におけるピッチの補正処理
本実施形態では、第３の入力情報（ヨーの入力情報）に基づく第３の回転処理中（ヨーの回転中）に、移動体とターゲットオブジェクトとの位置関係に基づいて、第２の回転処理（ピッチ）を補正処理として行うようにしてもよい。
【０２３３】
例えば、図２６に示すように、プレーヤからヨーの入力情報を受け付けた場合に、プレーヤの右方向へのヨーの入力情報に基づき、移動体ＯＢ１を位置Ｐ３１０から移動ベクトルＶＹａ３１０方向に右移動させ、当該ヨーの入力情報に基づくヨーの処理中に、移動体ＯＢ１とターゲットオブジェクトＯＢ２との相対的な位置関係に基づいて、移動ベクトルＶＰａ３１０に基づく上方向へ移動させるピッチアップを行う。つまり、本実施形態では、ピッチの入力情報によらずに、第３の入力情報に基づく第３の回転処理中（ヨーの処理中）に、移動体ＯＢ１の移動方向が移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向に近づくように、第２の回転処理（ピッチ）を補正処理として行う。結果的に、移動体ＯＢ１は、移動ベクトルＶ３１０の方向に移動させる処理を行う。
【０２３４】
また、本実施形態では、移動体ＯＢ１の位置Ｐ３１０とターゲットオブジェクトＯＢ２の位置Ｑ３１０とに基づいて、補正処理として行うピッチの回転角度を決定する。例えば、図２７に示すように、第２の軸回りにおいて移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向ａ３１０と移動体の向きＶ３０９とのなす角度φｉに応じて、補正処理として行うピッチの回転量（回転角度）を求める。例えば、ピッチの回転量は、０以上であって角度φｉよりも小さい値とする。例えば、ピッチの回転量は、角度φｉに補正係数Ｋ（０＜Ｋ＜１）を乗じた値等とすることができる。なお、本実施形態では、フレーム毎に補正処理として行うピッチの回転角度を求める。
【０２３５】
また、本実施形態では、移動体ＯＢ１の位置Ｐ３１０とターゲットオブジェクトＯＢ２の位置Ｑ３１０に基づいて、補正処理として行うピッチの回転方向を決定する。例えば、第２の軸回りにおいて、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向に近い回転方向（内角をなす回転方向）に、移動体ＯＢ１を回転させる。なお、本実施形態では、フレーム毎に補正処理として行うロールの回転方向を求める。
【０２３６】
例えば、図２７に示すように、第２の軸回りにおいて、移動体ＯＢ１の位置Ｐ３１０とターゲットオブジェクトＯＢ２の位置Ｑ３１０とを結ぶ方向ａ３１０と、移動体ＯＢ１の向きＶ３０９とのなす角度φｉに応じて、補正処理として行うピッチの回転量（回転角度）θ３１０を求める。例えば、ピッチの回転量θ３１０は、角度φｉに補正係数Ｋ（０＜Ｋ＜１）を乗じた値とする。そして、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向ａ３１０に近い回転方向（内角をなす回転方向）である上方向に、移動体ＯＢ１をθ３１０だけ回転させる。つまり、移動体ＯＢ１を、右ヨーの回転を行いながら（移動ベクトルＶＹａ３１０に移動しながら）、θ３１０だけ回転させる（移動ベクトルＶＰａ３１０だけ上昇させる）。
【０２３７】
このように、本実施形態では、プレーヤがヨーを行っている最中にピッチアップへの補助を自然と行うことができるので、プレーヤに違和感を与えることなく、移動体ＯＢ１をターゲットオブジェクトＯＢ２に接近させることができる。
【０２３８】
また、本実施形態では、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と移動体ＯＢ１の向きとのなす角度φｉに応じて、補正処理として行う第２の回転処理の回転量（ピッチの回転量）を変化させるようにしてもよい。例えば、図１２（Ａ）に示すように、第２の軸回りにおいて、移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と移動体の移動方向とのなす角度φｉが大きくなるにつれて、補正処理として行うピッチの回転量を増大させる。
【０２３９】
また、本実施形態では、移動体ＯＢ１の移動速度に応じて、補正処理として行う第２の回転処理の回転量（ピッチの回転量）を変化させるようにしてもよい。例えば、図１２（Ｂ）に示すように、移動体ＯＢ１の移動速度が大きくなるにつれて、補正処理として行うピッチの回転量を減少させる。
【０２４０】
なお、補正処理として行うピッチの回転量の最大値は、第２の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と移動体の移動方向とのなす角度φｉよりも小さい値とする。
【０２４１】
なお、本実施形態では、第２の軸回りにおいて移動体ＯＢ１とターゲットオブジェクトＯＢ２とを結ぶ方向と移動体の向きとのなす角度φｉと、移動体ＯＢ１の移動速度とに応じて、補正処理として行うピッチの回転量を変化させるようにしてもよい。
【０２４２】
本実施形態では、右ヨーだけでなく左ヨーに基づく入力情報に基づくヨーの処理中に、ピッチの補正処理を行うようにしてもよい。
【０２４３】
８．通信制御の説明
８．１  オンラインゲームの処理例１
本実施形態では、複数の端末１０とネットワークを介して相互にデータの送受信を行い、オンラインフライトシューティングゲームを実現可能としてもよい。つまり、本実施形態では、ピア・ツー・ピア方式のオンラインゲームに適用してもよい。
【０２４４】
図２８及び図２９は、本実施形態のネットワークシステムの構成を示す図である。例えば、本実施形態のネットワークシステムでは、複数の端末１０Ａ〜１０Ｃの間で無線通信を行って、各端末１０Ａ〜１０Ｃの所有者が対戦プレイや協力プレイを行うことができる。なお、本実施形態のネットワークシステムでは、複数の端末１０Ａ〜１０Ｃの間で有線通信を行ってもよい。
【０２４５】
無線通信の態様としては、図２８に示すように、各端末１０Ａ〜１０Ｃが自律分散的にネットワークを構築し、直接的にゲーム情報等を含むパケットの送受信を行うアドホックモードと、図２９に示すように、端末１０ＡがアクセスポイントＡＣＳＰ１を介し、端末１０Ｂ、１０ＣがアクセスポイントＡＣＳＰ２を介して、間接的にゲーム情報等を含むパケットの送受信を行うインフラストラクチャモードとがある。インフラストラクチャモードでは、アクセスポイントＡＣＳＰ１又はＡＳＣＰ２を介してインターネットＩｎｅｔ（公衆通信網）にアクセスすることができる。そして、各端末１０Ａ〜１０Ｃは、インターネットＩｎｅｔに接続されたサーバ２０との間でゲーム情報あるいはファームウェアのアップデート情報等を含むパケットを、アクセスポイントＡＣＳＰ１又はＡＣＳＰ２を介して送受信することができる。
【０２４６】
本実施形態のネットワークシステムは、端末１０Ａの移動体ＯＢ１が、他の端末１０Ｂの移動体ＯＢ２を攻撃するゲーム演算を行うようにしてもよい。また、本実施形態のネットワークシステムは、複数の端末１０Ａ、１０Ｂそれぞれの操作対象の移動体ＯＢ１、ＯＢ２によって構成される第１のグループと、複数の端末１０Ｃ、１０Ｄそれぞれの操作対象の移動体ＯＢ３、ＯＢ４によって構成される第２のグループとが対戦を行うゲーム演算を行うようにしてもよい。
【０２４７】
また、本実施形態では、各端末が相互にネットワークを介して移動情報等のデータに基づいて、端末のオブジェクト空間に配置される他の機体（他の端末を操作するプレーヤの操作対象の移動体）を移動・動作させる。つまり、各端末１０は、ネットワークを介して、移動体の挙動（向き、移動方向、位置、移動速度）などを含むデータ、アナログレバー、ボタンの入力情報、加速度値などのデータを送受信する。
【０２４８】
例えば、描画のフレームレートで（例えば、１／６０秒毎）、端末１０Ａが、端末１０Ａの操作対象の機体ＯＢ１の位置Ｐを端末１０Ｂに送信する。一方、端末１０Ｂにおいても、端末１０Ａと同じように、描画のフレームレートで端末１０Ｂの操作対象の機体ＯＢ２の位置Ｑを端末１０Ａに送信する。
【０２４９】
また、各端末は、各端末のオブジェクト空間における仮想カメラから見える画像を、ゲーム画像として生成する処理を行う。従って、端末毎に、その端末が操作する移動体の挙動に応じた画像が生成される。
【０２５０】
８．２  オンラインゲームの処理例２
また、本実施形態では、クライアント・サーバ方式のオンラインゲームに適用してもよい。つまり、サーバ２０が、端末１０で行う一部の処理（例えば、処理部１００の少なくとも１つの処理）を行うようにしてもよい。図３０に示すように、サーバ２０が、ネットワーク（例えば、インターネット）を介して複数の端末１０Ａ〜１０Ｃと接続され、サーバ２０が、端末１０から入力情報を受信する。そして、サーバ２０が、受信した第１、第２、第３の入力情報に基づいて画像を生成し、生成した画像を端末１０に送信してもよい。
【０２５１】
図３１は、サーバ２０の機能ブロック図の例を示す。なお本実施形態のサーバ２０は図３１の構成要素（各部）の一部を省略した構成としてもよい。
【０２５２】
記憶部２７０は、処理部２００や通信部２９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【０２５３】
情報記憶媒体２８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部２００は、情報記憶媒体２８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。情報記憶媒体２８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）を記憶することができる。
【０２５４】
通信部２９６は外部（例えば端末１０、他のサーバ）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【０２５５】
なお、他のサーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体２８０や記憶部２７０に記憶してもよい。このようにプログラムやデータを受信して端末を機能させる場合も本発明の範囲内に含む。
【０２５６】
処理部２００（プロセッサ）は、受信したデータやプログラムなどに基づいて、ゲーム処理、画像生成処理、音処理などの処理を行う。
【０２５７】
この処理部２００は記憶部２７０内の主記憶部２７１をワーク領域として各種処理を行う。処理部２００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【０２５８】
処理部２００は、オブジェクト空間設定部２１１、移動・動作処理部２１２、補正処理部２１３、選択部２１４、ゲーム演算部２１５、仮想カメラ制御部２１７、通信制御部２１８、描画部２２０、音処理部２３０を含む。なお、これらの一部を省略する構成としてもよい。
【０２５９】
オブジェクト空間設定部２１１は、オブジェクトをオブジェクト空間（仮想的３次元空間）に配置する処理を行う。例えば、オブジェクト空間設定部２１１は、端末１０のオブジェクト空間設定部１１１と同様の処理を行う。
【０２６０】
移動・動作処理部２１２は、オブジェクト空間にあるオブジェクトの移動・動作演算を行う。すなわち、通信制御部２１８から受信した入力情報や、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。
【０２６１】
移動体制御部２１２ａは、オブジェクト空間において、移動体の挙動を制御する。移動体制御部２１２ａは、端末１０の移動体制御部１１２ａと同様の処理を行う。
【０２６２】
特に、本実施形態の移動体制御部２１２ａは、移動体を回転させて移動体の移動方向を制御する。例えば、移動体制御部１１２ａは、受信した第１の入力情報に基づき第１の軸回りに移動体を回転させる第１の回転処理（ロール）と、受信した第２の入力情報に基づき第２の軸回りに移動体を回転させる第２の回転処理（ピッチ）と、受信した第３の入力情報に基づき第３の軸回りに移動体を回転させる第３の回転処理（ヨー）とを行う。
【０２６３】
補正処理部２１３は、第１、第２、第３の回転処理のうち少なくとも１つを補正する補正処理を行う。補正処理部２１３は、端末１０の補正処理部１１３と同様の処理を行う。
【０２６４】
例えば、補正処理部２１３は、受信した第２の入力情報に基づく第２の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第３の回転処理の少なくとも一方を、補正処理として行う。例えば、補正処理部２１３は、移動体の移動方向が、移動体とターゲットオブジェクトとを結ぶ方向に近づくように、第１の回転処理及び第３の回転処理の少なくとも一方を、補正処理として行う。なお、補正処理部２１３は、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度に応じて、補正処理として行う第１の回転処理及び第３の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。また、補正処理部２１３は、移動体の速度に応じて、補正処理として行う第１の回転処理及び第３の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。また、補正処理部２１３は、移動体と選択されたターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第３の回転処理の少なくとも一方を、補正処理として行うようにしてもよい。
【０２６５】
また、補正処理部２１３は、受信した第３の入力情報に基づく第３の回転処理中に、移動体とターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第２の回転処理の少なくとも一方を、補正処理として行う。例えば、補正処理部２１３は、移動体の移動方向が、移動体とターゲットオブジェクトとを結ぶ方向に近づくように、第１の回転処理及び第２の回転処理の少なくとも一方を、補正処理として行う。なお、補正処理部２１３は、移動体とターゲットオブジェクトとを結ぶ方向と移動体の向きとのなす角度に応じて、補正処理として行う第１の回転処理及び第２の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。また、補正処理部２１３は、移動体の速度に応じて、補正処理として行う第１の回転処理及び第２の回転処理の少なくとも一方の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。また、補正処理部２１３は、移動体と選択されたターゲットオブジェクトとの位置関係に基づいて、第１の回転処理及び第２の回転処理の少なくとも一方を、補正処理として行うようにしてもよい。
【０２６６】
また、補正処理部２１３は、第１の入力情報を受信した場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第１の回転処理の補正処理を行う。例えば、補正処理部２１３は、第１の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第１の入力情報に基づく移動体の向きとのなす角度に応じて、第１の回転処理の回転量を変化させる。また、補正処理部２１３は、移動体の速度に応じて、第１の回転処理の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。
【０２６７】
また、補正処理部２１３は、第２の入力情報を受信した場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第２の回転処理の補正処理を行う。例えば、補正処理部２１３は、第２の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第２の入力情報に基づく移動体の向きとのなす角度に応じて、第２の回転処理の回転量を変化させる。また、補正処理部２１３は、移動体の速度に応じて、第２の回転処理の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。
【０２６８】
また、補正処理部２１３は、第３の入力情報を受信した場合に、移動体とターゲットオブジェクトとを結ぶ方向に近づける第３の回転処理の補正処理を行う。例えば、補正処理部２１３は、第３の軸回りにおいて、移動体とターゲットオブジェクトとを結ぶ方向と、第３の入力情報に基づく移動体の向きとのなす角度に応じて、第３の回転処理の回転量を変化させる。なお、補正処理部２１３は、移動体の速度に応じて、第３の回転処理の回転量を変化させるようにしてもよい。例えば、移動速度の加速に応じて当該回転量を減少させ、移動速度の減速に応じて当該回転量を増加させるようにしてもよい。
【０２６９】
選択部２１４は、ターゲットオブジェクトが複数存在する場合には、移動体と各ターゲットオブジェクトとの位置関係に基づいて、一のターゲットオブジェクトを選択する処理を行う。
【０２７０】
ゲーム演算部２１５は、種々のゲーム処理を行う。例えば、ゲーム演算部２１５は、端末１０のゲーム演算部１１５と同様な処理を行う。
【０２７１】
仮想カメラ制御部２１７は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。例えば、仮想カメラ制御部２１７は、端末１０の仮想カメラ制御部１１７と同様な処理を行う。
【０２７２】
通信制御部２１８は、端末１０とネットワークを介して相互にデータを送受信する処理を行うようにしてもよい。
【０２７３】
なお、本実施形態のサーバ２０は、通信制御で必要となるネットワーク情報を端末１０に送信してもよい。なお、例えば、サーバ２０は、各端末に個別に付与される端末の識別情報と、端末の識別情報に対応付けられたパケットの送信先を指定する宛先情報を管理する。
【０２７４】
サーバ２０の通信制御部２１８は、端末１０に送信するパケットを生成する処理、パケット送信先の端末のＩＰアドレスやポート番号を指定する処理、受信したパケットに含まれるデータを記憶部２７０に保存する処理、受信したパケットを解析する処理、その他のパケットの送受信に関する制御処理等を行う。
【０２７５】
また、本実施形態の通信制御部２１８は、端末と接続が確立されてから接続が切断されるまで、データを所定周期（例えば、１秒周期で）互いに送受信する処理を行う。ここで、端末１０から送信されるデータは、端末１０の入力部１６０からの入力情報としてもよいし、各端末１０の操作対象のオブジェクト（機体、移動体）の位置情報、移動情報としてもよい。
【０２７６】
また、本実施形態の通信制御部２１８は、端末１０から送信されたパケットを受信すると、受信したパケットを解析し、パケットに含まれる他の端末の操作対象のオブジェクトの位置情報などのデータを主記憶部２７１に記憶する処理を行う。
【０２７７】
特に、本実施形態の通信制御部２１８は、第１の軸回りに移動体を回転させる第１の入力情報と、第２の軸回りに移動体を回転させる第２の入力情報と、第３の軸回りに移動体を回転させる第３の入力情報とを、ネットワークを介して端末１０から受信する。
【０２７８】
また、本実施形態の通信制御部２１８は、ネットワークを介して、補正された第１、２、３の回転処理結果を、端末１０に送信するようにしてもよい。また、通信制御部２１８は、端末１０に、表示データ（画像データ等）を送信するようにしてもよい。
【０２７９】
また、通信制御部２１８は、処理部２００で行われた処理結果を、端末１０に送信するようにしてもよい。例えば、通信制御部２１８は、移動体ＯＢ１、ターゲットオブジェクトＯＢ２それぞれの移動情報（位置情報、移動方向、移動速度など）を、端末１０に送信するようにしてもよい。また、通信制御部２１８は、移動体ＯＢ１の補正処理後の移動情報を、端末１０に送信するようにしてもよい。また、通信制御部２１８は、ゲーム演算結果を、端末１０に送信するようにしてもよい。
【０２８０】
描画部２２０は、処理部２００で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成する。描画部２２０の処理は、端末１０の描画部１２０と同様な処理を行う。
【０２８１】
９．応用例
本実施形態では、プレーヤの入力に基づいて補正具合を調整するようにしてもよい。
【０２８２】
例えば、ピッチの入力情報に基づくピッチの回転処理中にロールの補正処理を行う場合において、補正用の入力情報を受け付けている場合（補正用の入力信号の検出中）は、補正用の入力情報を受け付けていない場合（補正用の入力信号の不検出の場合）よりも、ロールの補正を強くかけるようにしてもよい。つまり、ピッチの入力情報に基づくピッチの処理中にロールの補正処理を行う場合において、補正用の入力情報を受け付けている場合は、補正用の入力情報を受け付けていない場合よりも、補正処理として行うロールの回転量を増大させるようにしてもよい。なお、補正用の入力情報は、ロールの入力情報（アナログレバーＬＳの傾斜角度値）でもよいし、ロール入力情報以外の入力ボタンや他のレバーの入力情報でもよい。
【０２８３】
また、ピッチの入力情報に基づくピッチの回転処理中にヨーの補正処理を行う場合において、補正用の入力情報を受け付けている場合は、補正用の入力情報を受け付けていない場合よりも、ヨーの補正を強くかけるようにしてもよい。つまり、ピッチの入力情報に基づくピッチの処理中にヨーの補正処理を行う場合において、補正用の入力情報を受け付けている場合は、補正用の入力情報を受け付けていない場合よりも、補正処理として行うヨーの回転量を増大させるようにしてもよい。なお、補正用の入力情報は、ヨー操作でもよいし、ヨー操作以外の入力ボタンや他のレバーの入力情報でもよい。
【０２８４】
また、ヨーの入力情報に基づくヨーの回転処理中にロールの補正処理を行う場合において、補正用の入力情報を受け付けている場合は、補正用の入力情報を受け付けていない場合よりも、ロールの補正を強くかけるようにしてもよい。つまり、ヨーの入力情報に基づくヨーの回転処理中にロールの補正処理を行う場合において、補正用の入力情報を受け付けている場合は、補正用の入力情報を受け付けていない場合よりも、補正処理として行うロールの回転量を増大させるようにしてもよい。なお、補正用の入力情報は、ロールの入力情報でもよいし、ロール入力情報以外の入力ボタンや他のレバーの入力情報でもよい。
【０２８５】
また、ヨーの入力情報に基づくヨーの回転処理中にピッチの補正処理を行う場合において、補正用の入力情報を受け付けている場合は、補正用の入力情報を受け付けていない場合よりも、ピッチの補正を強くかけるようにしてもよい。つまり、ヨーの入力情報に基づくヨーの回転処理中にピッチの補正処理を行う場合において、補正用の入力情報を受け付けている場合は、補正用の入力情報を受け付けていない場合よりも、補正処理として行うピッチの回転量を増大させるようにしてもよい。なお、補正用の入力情報は、ピッチの入力情報でもよいし、ピッチ入力情報以外の入力ボタンや他のレバーの入力情報でもよい。
【０２８６】
また本発明は、業務用ゲームシステム等の種々のゲームシステムに適用できる。また、本実施形態では、フライトシューティンゲームに限らず、プレーヤの操作対象のプレーヤキャラクタが武器（拳銃）などを用いて、敵を攻撃するシューティングゲームに応用してもよい。
【０２８７】
例えば、移動体、ターゲットオブジェクトは、機体に限らない。例えば、ボール、弾などの種々の移動体の移動制御を行うための、第１、第２、第３の各軸回りの回転角度の入力情報を受け付けて、入力情報に基づきターゲットオブジェクト（ホール、ゴールなどの目標対象）に向けて移動させる移動制御において、移動体（ボール、弾）と、ターゲットオブジェクト（ホール、ゴールなどの目標対象）との位置関係に基づき、補正処理を行うようにしてもよい。
【０２８８】
また、本実施形態の補正処理は、シューティングゲームの他、アクションゲーム、ロールプレイングゲーム、対戦ゲーム、レースゲーム、音楽ゲーム、格闘ゲームなど種々のゲーム装置、ゲームを提供するサーバで行うようにしてもよい。
【０２８９】
なお、本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０２９０】
本発明は、実施の形態で説明した構成と実質的に同一の構成（例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成）を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。なお、本実施形態で説明した実施例は、自由に組み合わせることができる。
【符号の説明】
【０２９１】
１０  端末、２０  サーバ、
１００  処理部、１１０  受け付け部、１１１  オブジェクト空間設定部、
１１２  移動・動作処理部、１１２ａ  移動体制御部、１１３  補正処理部、
１１４  選択部、１１５  ゲーム演算部、１１６  表示制御部、
１１７  仮想カメラ制御部、１１８  通信制御部、１２０  描画部、１３０  音処理部、１６０  入力部、１６２  検出部、１７０  記憶部、１７１  主記憶部、
１７２  画像バッファ、１７３  オブジェクトデータ記憶部、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、１９６  通信部、
２００  処理部、２１１  オブジェクト空間設定部、
２１２  移動・動作処理部、２１２ａ  移動体制御部、２１３  補正処理部、
２１４  選択部、２１５  ゲーム演算部、
２１７  仮想カメラ制御部、２１８  通信制御部、２２０  描画部、２３０  音処理部、
２７０  記憶部、２７１  主記憶部、２７２  画像バッファ、
２７３  オブジェクトデータ記憶部、２８０  情報記憶媒体、２９６  通信部、
ＯＢ１  移動体、ＯＢ２  ターゲットオブジェクト
【図１】
2012252659.tif 000003
【図２】
2012252659.tif 000004
【図４】
2012252659.tif 000005
【図５】
2012252659.tif 000006
【図６】
2012252659.tif 000007
【図７】
2012252659.tif 000008
【図８】
2012252659.tif 000009
【図９】
2012252659.tif 000010
【図１０】
2012252659.tif 000011
【図１１】
2012252659.tif 000012
【図１２】
2012252659.tif 000013
【図１３】
2012252659.tif 000014
【図１４】
2012252659.tif 000015
【図１５】
2012252659.tif 000016
【図１６】
2012252659.tif 000017
【図１７】
2012252659.tif 000018
【図１８】
2012252659.tif 000019
【図１９】
2012252659.tif 000020
【図２０】
2012252659.tif 000021
【図２１】
2012252659.tif 000022
【図２２】
2012252659.tif 000023
【図２３】
2012252659.tif 000024
【図２４】
2012252659.tif 000025
【図２５】
2012252659.tif 000026
【図２６】
2012252659.tif 000027
【図２７】
2012252659.tif 000028
【図３０】
2012252659.tif 000029
【図３１】
2012252659.tif 000030
【図３】
2012252659.tif 000031
【図２８】
2012252659.tif 000032
【図２９】
2012252659.tif 000033