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