(57)【要約】      （修正有）【課題】簡単な制御で、第２のカメラ制御から第１のカメラ制御への切り替えを違和感なくシームレスに実現する。【解決手段】プログラムは、移動体オブジェクト制御部と、仮想カメラ制御部と、仮想空間を仮想カメラから見た画像を生成する画像生成部とを有し、仮想カメラ制御部は、所与のイベントが発生した場合に、移動体オブジェクトに対する仮想カメラの相対的な配置の遷移として定義されたカメラ制御データ及び仮想３次元空間における移動体オブジェクトの配置に基づき第１のカメラ制御処理を行う第１のカメラ制御部と、所与のイベント発生前に行っていた仮想カメラに対する第２のカメラ制御処理を、所与のイベント発生後も継続して行う第２のカメラ制御部と、を含み、第１のカメラ制御処理によって得られた第１の設定値と第２のカメラ制御処理によって得られた第２の設定値を合成して、合成した設定値に基づき仮想カメラを仮想３次元空間に配置する。【選択図】図１６
2011258149.tif 000002
【特許請求の範囲】
【請求項１】
移動体オブジェクトが存在する仮想空間を仮想カメラから見た画像を生成するためのプログラムであって、
操作入力に基づき、仮想空間における移動体オブジェクトの移動の制御を行う移動体オブジェクト制御部と、
仮想カメラの設定の制御を行う仮想カメラ制御部と、
仮想空間を仮想カメラから見た画像を生成する画像生成部と、してコンピュータを機能させ、
前記仮想カメラ制御部は、
所与のイベントが発生した場合に、移動体オブジェクトに対する仮想カメラの相対的な配置の遷移として定義されたカメラ制御データ及び仮想３次元空間における移動体オブジェクトの配置に基づき第１のカメラ制御処理を行う第１のカメラ制御部と、
所与のイベント発生前に行っていた仮想カメラに対する第２のカメラ制御処理を、所与のイベント発生後も継続して行う第２のカメラ制御部と、を含み、
第１のカメラ制御処理によって得られた第１の設定値と第２のカメラ制御処理によって得られた第２の設定値を合成して、合成した設定値に基づき仮想カメラを仮想３次元空間に配置することを特徴とするプログラム。
【請求項２】
請求項１において、
前記仮想カメラ制御部は、
時間の経過に従って合成比率を変化させて第１の設定値と第２の設定値を合成することを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記カメラ制御データは、前記移動体オブジェクトのローカル座標系における、移動体オブジェクトの周囲を旋回する軌道が移動ルートとして定義されており、
前記第１のカメラ制御部は、
前記カメラ制御データに基づき、仮想カメラを前記移動ルートにしたがって移動体オブジェクトの周囲を旋回又は周遊させる処理を行うことを特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記カメラ制御データは、軌道の異なる複数の移動ルートに対応したデータを含み、
前記第１のカメラ制御部は、
前記移動体オブジェクトの位置、向き、前記移動体オブジェクトと他の移動体オブジェクトの相対的な位置関係、距離、移動体オブジェクトの属性、イベントの種類、所定のゲームパラメータの値の少なくとも１つに基づき、いずれかの移動ルートに対応したカメラ制御データを選択して、選択したカメラ制御データを用いて第１のカメラ制御処理を行うことを特徴とするプログラム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記第２のカメラ制御部は、
移動体オブジェクトに対する仮想カメラの相対的な配置の遷移が定義されたカメラ制御データ及び仮想空間における移動体オブジェクトの配置に基づき第２のカメラ制御処理を行うことを特徴とするプログラム。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記第１のカメラ制御部は、
前記移動ルート上の所与の点を再生開始位置及び再生終了位置の少なくとも１つとして設定し、設定された再生開始位置及び再生終了位置の少なくとも１つによって特定される移動区間において、仮想カメラを移動させる処理を行うことを特徴とするプログラム。
【請求項７】
請求項６において、
前記第１のカメラ制御部は、
前記移動体オブジェクトと他の移動体オブジェクトとの距離、位置関係、操作入力及び所与のパラメータの少なくとも１つに基づき開始位置を再設定して、仮想カメラを移動経路上で移動させる制御を行うプログラム。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記第２のカメラ制御部は、
前記移動ルート上の所与の点を再生開始位置及び再生終了位置の少なくとも１つとして設定し、設定された再生開始位置及び再生終了位置の少なくとも１つによって特定される移動区間において、仮想カメラを移動させる処理を行うことを特徴とするプログラム。
【請求項９】
請求項８において、
前記第２のカメラ制御部は、
前記移動体オブジェクトと他の移動体オブジェクトとの距離、位置関係、操作入力及び所与のパラメータの少なくとも１つに基づき開始位置を再設定して、仮想カメラを移動経路上で移動させる制御を行うプログラム。
【請求項１０】
請求項１乃至９のいずれかにおいて、
前記第１のカメラ制御部は、
第１のカメラ制御処理開始前の前記移動体オブジェクトのローカル座標系における仮想カメラの位置から前記カメラ制御データに規定された前記移動体オブジェクトのローカル座標系における所与の基準位置まで移動させる移行処理を行うことを特徴とするプログラム。
【請求項１１】
請求項１乃至１０のいずれかに記載のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体。
【請求項１２】
移動体オブジェクトが存在する仮想空間を仮想カメラから見た画像を生成するための画像生成システムであって、
操作入力に基づき、仮想空間における移動体オブジェクトの移動の制御を行う移動体オブジェクト制御部と、
仮想カメラの設定の制御を行う仮想カメラ制御部と、
仮想空間を仮想カメラから見た画像を生成する画像生成部と、を含み、
前記仮想カメラ制御部は、
所与のイベントが発生した場合に、移動体オブジェクトに対する仮想カメラの相対的な配置の遷移として定義されたカメラ制御データ及び仮想３次元空間における移動体オブジェクトの配置に基づき第１のカメラ制御処理を行う第１のカメラ制御部と、
所与のイベント発生前に行っていた仮想カメラに対する第２のカメラ制御処理を、所与のイベント発生後も継続して行う第２のカメラ制御部と、を含み、
第１のカメラ制御処理によって得られた第１の設定値と第２のカメラ制御処理によって得られた第２の設定値を合成して、合成した設定値に基づき仮想カメラを仮想３次元空間に配置することを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来から、プレーヤが入力操作を行いオブジェクト空間における機体（自機）を移動させて、敵の機体（敵機）を射撃するフライトシューティングゲームが人気が高い。
【０００３】
このようなフライトシューティングゲームでは、遠方に飛行する豆粒大の敵をミサイル等で攻撃するのが主であったが、近年では高速に動き回る敵機に近接して移動しながら砲撃する近接戦闘を実現するゲームもあり、高速に動き回る敵機に近接して移動しながら砲撃するという迫力あるゲームを楽しむことができる。かかるゲームでは、戦闘に応じて様々なカメラ制御が行われ、ゲームの面白みを高めている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４１４４０１７号公報
【特許文献２】特許第２６８７９８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従って、戦闘モードが切り替わるとカメラ制御も切り替えられるが、近接戦闘のイベントが発生した場合に、単に通常のカメラ制御から近接戦闘用のカメラ制御に切り替えるだけでは、プレーヤに対し近接戦闘への期待感等をアピールすることはできない。
【０００６】
本願発明者は、次のイベントへの期待感を効果的なアピールが可能なカメラ演出を行うための工夫として、仮想カメラを効果的に旋回又は周遊させることでプレーヤに次のイベントへの期待感をアピールする迫力あるカメラ演出を行うことが可能なシステムの開発を行っている。
【０００７】
しかしカメラ演出用のカメラ制御を行う際に、それ以前に行われていたカメラ制御から演出用のカメラ制御に切り替えると、画面変化が不自然となり、プレーヤに違和感や興ざめな感じを与えてしまうことになりかねねない。
【０００８】
本発明は、かかる課題に鑑みたものである。本発明の幾つかの態様によれば、簡単な制御で、第２のカメラ制御から第１のカメラ制御への切り替えを違和感なくシームレスに実現することができる。
【課題を解決するための手段】
【０００９】
（１）本発明は、
移動体オブジェクトが存在する仮想空間を仮想カメラから見た画像を生成するためのプログラムであって、
操作入力に基づき、仮想空間における移動体オブジェクトの移動の制御を行う移動体オブジェクト制御部と、
仮想カメラの設定の制御を行う仮想カメラ制御部と、
仮想空間を仮想カメラから見た画像を生成する画像生成部と、してコンピュータを機能させ、
前記仮想カメラ制御部は、
所与のイベントが発生した場合に、移動体オブジェクトに対する仮想カメラの相対的な配置の遷移として定義されたカメラ制御データ及び仮想３次元空間における移動体オブジェクトの配置に基づき第１のカメラ制御処理を行う第１のカメラ制御部と、
所与のイベント発生前に行っていた仮想カメラに対する第２のカメラ制御処理を、所与のイベント発生後も継続して行う第２のカメラ制御部と、を含み、
第１のカメラ制御処理によって得られた第１の設定値と第２のカメラ制御処理によって得られた第２の設定値を合成して、合成した設定値に基づき仮想カメラを仮想３次元空間に配置することを特徴とするプログラムに関する。
【００１０】
また本発明は上記各部を含む画像生成システムに関する。また本発明はコンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関する。
【００１１】
移動体オブジェクトはプレーヤ移動体でもよいし、ＮＰＣの移動体でもよい。仮想カメラに対するカメラ制御とは、仮想カメラの位置、向き、移動方向、移動速度、画角等の設定や制御を含む。
【００１２】
カメラ制御データは、少なくとも仮想カメラの位置に関する情報を含む。それ以外にも仮想カメラの向き（回転）や画角に関する情報を含んでもよい。
【００１３】
第１のカメラ制御の発動条件は、所与のイベントの発生でもよい。また第１のカメラ制御の終了条件は、所与のイベントが発生してから所定時間後でもよいし、所与のイベントの終了タイミングでもよい。
【００１４】
例えば移動体オブジェクトのローカル座標系で定義されたカメラ制御データ（ローカル座標系における位置及び向き）と移動体オブジェクトのワールド座標系における配置情報（位置及び向き情報）に基づき、ワールド座標系における仮想カメラの位置（及び向き）情報を求めることができる。
【００１５】
一般に、仮想カメラを動かす場合には、移動体オブジェクトと交差しないように移動させないと仮想カメラが移動体オブジェクトに埋まってしまう不具合が生じることがある。しかし本発明によれば移動体オブジェクトに対する相対的な位置（移動体オブジェクトのローカル座標系の位置）で定義された移動ルートにしたがって仮想カメラを移動させることができる、カメラ位置と移動体オブジェクトの交差判定等の複雑な制御を行うことなしにカメラ演出を行うことができる。
【００１６】
そして、所与のイベント発生前に行っていた仮想カメラに対する第２のカメラ制御処理を、所与のイベント発生後も継続して行い、第１のカメラ制御処理によって得られた第１の設定値と第２のカメラ制御処理によって得られた第２の設定値を合成して、合成した設定値に基づき仮想カメラを仮想３次元空間に配置するので、第２のカメラ制御から第１のカメラ制御への切り替えを違和感なくシームレスに実現することができる。
【００１７】
（２）このプログラム、情報記憶媒体、画像生成システムにおいて、
前記仮想カメラ制御部は、
時間の経過に従って合成比率を変化させて第１の設定値と第２の設定値を合成してもよい。
【００１８】
合成比率は線形に変化させてもよいし、所与の関数に従って変化させてもよい。
【００１９】
時間の経過に従って、第１のカメラ設定値の割合が大きくなるようにしてもよい。この様にすると、時刻ｆｎから時刻ｆｎ＋ｍの期間において、時間の経過につれて第１のカメラ制御の影響が高くなるカメラ制御を行うことができる。
【００２０】
（３）このプログラム、情報記憶媒体、画像生成システムにおいて、
前記カメラ制御データは、前記移動体オブジェクトのローカル座標系における、移動体オブジェクトの周囲を旋回する軌道が移動ルートとして定義されており、
前記第１のカメラ制御部は、
前記カメラ制御データに基づき、仮想カメラを前記移動ルートにしたがって移動体オブジェクトの周囲を旋回又は周遊させる処理を行ってもよい。
【００２１】
カメラ制御データは、例えば移動体オブジェクトのローカル座標系における仮想カメラの位置座標や、向き（回転）や画角等の情報を含んでもよい。位置座標は移動ルートとなる軌道上の座標でもよい。また向きは、移動体オブジェクトと、所与のイベントに関連する他の移動体オブジェクトの両方を画面内にとらえる方向に定義されていてもよい。
【００２２】
移動ルートとなる軌道は、移動体オブジェクトと交差しないように設定されていることが好ましい。
【００２３】
（４）このプログラム、情報記憶媒体、画像生成システムにおいて、
前記カメラ制御データは、軌道の異なる複数の移動ルートに対応したデータを含み、
前記第１のカメラ制御部は、
前記移動体オブジェクトの位置、向き、前記移動体オブジェクトと他の移動体オブジェクトの相対的な位置関係、距離、移動体オブジェクトの属性、イベントの種類、所定のゲームパラメータの値の少なくとも１つに基づき、いずれかの移動ルートに対応したカメラ制御データを選択して、選択したカメラ制御データを用いて第１のカメラ制御処理を行ってもよい。
【００２４】
前記移動体オブジェクトの高度が低い場合や、障害物の多いエリアにいる場合には、移動体オブジェクトから所定範囲内に移動ルートが設定されているカメラ制御データを選択するようにしてもよい。
【００２５】
また、他の移動体オブジェクト（敵機）の位置、他の移動体オブジェクト（敵機）の種類、他の移動体オブジェクト（敵機）の相対的な方向、ゲーム上与えられたミッションの種類等に基づき移動ルートを選択してもよい。
【００２６】
（５）このプログラム、情報記憶媒体、画像生成システムにおいて、
前記第２のカメラ制御部は、
移動体オブジェクトに対する仮想カメラの相対的な配置の遷移が定義されたカメラ制御データ及び仮想空間における移動体オブジェクトの配置に基づき第２のカメラ制御処理を行ってもよい。
【００２７】
（６）このプログラム、情報記憶媒体、画像生成システムにおいて、
前記第１のカメラ制御部は、
前記移動ルート上の所与の点を再生開始位置及び再生終了位置の少なくとも１つとして設定し、設定された再生開始位置及び再生終了位置の少なくとも１つによって特定される移動区間において、仮想カメラを移動させる処理を行ってもよい。
【００２８】
移動経路上の位置とセットで向き（回転）を定義してもよい。この場合再生開始位置から再生終了位置まで移動経路上の位置とセットで定義されている回転の値の設定も行う。
【００２９】
例えば前記第１のカメラ制御部は、所与のイベント発生前の移動体オブジェクトに対する仮想カメラの相対位置に基づき、前記移動経路の再生開始位置を決定してもよい。
【００３０】
前記移動経路は、所与のイベント発生前に仮想カメラがとりうる所与の基準位置に対応する点を含んでもよい。
【００３１】
例えば移動経路の始点位置が第１のカメラ制御が行われる際の移動体オブジェクトに対する仮想カメラの相対位置に対応する位置となるようにしてもよい。この様にすると、第１のカメラ制御をスムーズに開始することができる。
【００３２】
（７）このプログラム、情報記憶媒体、画像生成システムにおいて、
前記第１のカメラ制御部は、
前記移動体オブジェクトと他の移動体オブジェクトとの距離、位置関係、操作入力及び所与のパラメータの少なくとも１つに基づき開始位置を再設定して、仮想カメラを移動経路上で移動させる制御を行ってもよい。
【００３３】
ここにおいて他の移動体オブジェクトとは、例えば当該移動体オブジェクトの追従目標である第２の移動体オブジェクトでもよい。 操作入力とは、移動方向に関する操作入力でもよいし、加速や減速を指示する操作入力でもよいし、その他の操作入力でもよい。
【００３４】
また例えばｔ０からｔ１の間は軌道を順方向に移動するデータを設定し、ｔ１〜ｋ２の間は軌道を逆方向に移動するデータを設定しておき、操作入力の内容に基づき再生開始位置をｔ０又はｔ１と変化させることにより、カメラ制御データによるカメラ制御に操作入力を反映させることができる。
【００３５】
（８）このプログラム、情報記憶媒体、画像生成システムにおいて、
前記第２のカメラ制御部は、
前記移動ルート上の所与の点を再生開始位置及び再生終了位置の少なくとも１つとして設定し、設定された再生開始位置及び再生終了位置の少なくとも１つによって特定される移動区間において、仮想カメラを移動させる処理を行ってもよい。
【００３６】
移動経路上の位置とセットで向き（回転）を定義してもよい。この場合再生開始位置から再生終了位置まで移動経路上の位置とセットで定義されている回転の値の設定も行う。
【００３７】
（９）このプログラム、情報記憶媒体、画像生成システムにおいて、
前記第２のカメラ制御部は、
前記移動体オブジェクトと他の移動体オブジェクトとの距離、位置関係、操作入力及び所与のパラメータの少なくとも１つに基づき開始位置を再設定して、仮想カメラを移動経路上で移動させてもよい。
【００３８】
ここにおいて他の移動体オブジェクトとは、例えば当該移動体オブジェクトの追従目標である第２の移動体オブジェクトでもよい。 操作入力とは、移動方向に関する操作入力でもよいし、加速や減速を指示する操作入力でもよいし、その他の操作入力でもよい。
【００３９】
また例えばｔ０からｔ１の間は軌道を順方向に移動するデータを設定し、ｔ１〜ｋ２の間は軌道を逆方向に移動するデータを設定しておき、操作入力の内容に基づき再生開始位置をｔ０又はｔ１と変化させることにより、カメラ制御データによるカメラ制御に操作入力を反映させることができる。
【００４０】
（１０）このプログラム、情報記憶媒体、画像生成システムにおいて、
前記第１のカメラ制御部は、
第１のカメラ制御処理開始前の前記移動体オブジェクトのローカル座標系における仮想カメラの位置から前記カメラ制御データに規定された前記移動体オブジェクトのローカル座標系における所与の基準位置まで移動させる移行処理を行ってもよい。
【００４１】
そして、仮想カメラ制御部は、
前記移行処理（仮想カメラが所与の基準位置にくるまで）が行われている間は、当該移行処理によって得られた第１の設定値と第２のカメラ制御処理によって得られた第２の設定値を合成して、合成した設定値に基づき仮想カメラを仮想３次元空間に配置してもよい。
【図面の簡単な説明】
【００４２】
【図１】本実施形態のゲームシステムの機能ブロック図の例。
【図２】図２（Ａ）（Ｂ）は、移動体オブジェクトと敵の移動体オブジェクトの位置関係を示す図。
【図３】通常戦闘モードから近接戦闘モードへの切り替え時に行われるカメラ制御の様子を示すタイムチャート。
【図４】図４（Ａ）（Ｂ）は、第１の設定値と第２の設定値の合成比率の時間的な変化を示すグラフ。
【図５】カメラ制御データについて説明する図。
【図６】カメラ制御データについて説明する図。
【図７】第１の設定値と第２の設定値の合成処理（ブレンド処理）について説明するための図。
【図８】合成ルートと移動体オブジェクトの位置に基づき、仮想カメラの配置を求める手法について説明するための図。
【図９】モード移行カメラ制御によって生成される画像例を説明するための図。
【図１０】、図１０（Ａ）〜（Ｄ）は、モード移行カメラ制御によって生成される画像例を説明するための図。
【図１１】複数の移動ルートが設定されている例を示す図。
【図１２】カメラ制御データの再生開始位置、終了位置の設定について説明するための図。
【図１３】図１３（Ａ）（Ｂ）は、通常戦闘モードのカメラ制御に操作入力を反映させる例について説明するための図。
【図１４】図１４（Ａ）（Ｂ）は、通常戦闘モードのカメラ制御に操作入力を反映させる他の例について説明するための図。
【図１５】第１の設定値と第２の設定値の合成の一例について説明するための図。
【図１６】本実施の形態のカメラ制御処理の流れを示すフローチャート。
【図１７】移行処理について説明するための図。
【図１８】移行処理について説明するための図。
【発明を実施するための形態】
【００４３】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００４４】
１．構成
図１は、本実施形態のゲームシステムの機能ブロック図の一例である。なお本実施形態のゲームシステムでは、図１の各部を全て含む必要はなく、その一部を省略した構成としてもよい。
【００４５】
本実施形態のゲームシステムは、本体装置１０と、入力装置２０と、情報記憶媒体１８０、表示部（表示装置）１９０、スピーカー１９２、光源１９８とからなる。
【００４６】
入力装置２０は、加速度センサ２１０、撮像部２２０、スピーカー２３０、振動部２４０、マイコン２５０、通信部２６０、操作部２７０によって構成される。
【００４７】
加速度センサ２１０は、３軸（Ｘ軸、Ｙ軸、Ｚ軸）の加速度を検出する。すなわち、加速度センサ２１０は、上下方向、左右方向、及び、前後方向の加速度を検出することができる。なお、加速度センサ２１０は、５ｍｓｅｃ毎に加速度を検出し、加速度センサ２１０から検出された加速度は、通信部２６０によって本体装置１０に送信される。なお、加速度センサ２１０は、１軸、２軸、６軸の加速度を検出するものであってもよい。
【００４８】
撮像部２２０は、赤外線フィルタ２２２、レンズ２２４、撮像素子（イメージセンサ）２２６、画像処理回路２２８を含む。赤外線フィルタ２２２は、入力装置２０の前方に配置され、表示部１９０に関連付けられて配置されている光源１９８から入射する光から赤外線のみを通過させる。レンズ２２４は、赤外線フィルタ２２２を透過した赤外線を集光して撮像素子２２６へ出射する。撮像素子２２６は、例えば、ＣＭＯＳセンサやＣＣＤのような固体撮像素子であり、レンズ２２４が集光した赤外線を撮像して撮像画像を生成する。撮像素子２２６で生成された撮像画像は、画像処理回路２２８で処理される。例えば、撮像素子２２６から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報（特定位置）を検出する。なお、光源が複数存在する場合には、撮像画像上の位置情報を複数検出する。また、複数の光源を利用して撮像画像上の位置情報を複数検出し、検出された位置情報の基準軸からの回転角度（傾き）を求め、光源に対する入力装置２０自体の傾きを求めてもよい。なお、検出した撮像画像上の位置情報は、通信部２６０によって、本体装置１０に送信される。
【００４９】
スピーカー２３０は、本体装置１０から通信部２６０を介して取得した音を出力する。
【００５０】
振動部（バイブレータ）２４０は、本体装置１０から送信された振動信号を受信して、振動信号に基づいて作動する。
【００５１】
マイコン（マイクロコンピュータ）２５０は、操作部２７０が出力した入力信号、加速度センサ２１０が検出した加速度を通信部２６０を介して本体装置１０に送信させる処理を行ったり、撮像部２２０によって検出された位置情報を、通信部２６０を介して本体装置１０に送信させる処理を行う。また、受信した本体装置１０からのデータに応じて、音を出力する制御や、バイブレータを作動させる制御を行う。
【００５２】
通信部２６０は、アンテナ、無線モジュールを含み、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて、本体装置１０とデータを無線で送信受信する。なお、本実施形態の通信部２６０は、加速度センサ２１０によって検出された加速度や撮像部２２０において検出した位置情報等を、４ｍｓｅｃ、６ｍｓｅｃの交互の間隔で本体装置１０に送信している。なお、通信部２６０は、本体装置１０と通信ケーブルで接続し、当該通信ケーブルを介して情報の送受信を行うようにしてもよい。
【００５３】
操作部２７０は、方向キー（十字キー）、ボタン（Ａボタン、Ｂボタンなど）、方向入力可能なコントロールスティック（アナログキー）などの操作子であり、プレーヤからの入力操作によって入力信号を出力する処理を行う。なお、操作信号は、通信部２６０を介して本体装置１０に送信される。
【００５４】
なお、入力装置２０は、プレーヤの入力動作によって変化する角速度を検出するジャイロセンサを備えていてもよい。
【００５５】
また、入力装置２０は、加圧センサを備えていてもよい。加圧センサは、プレーヤの入力動作によって発生する圧力を検出する。例えば、プレーヤの体重や、プレーヤが力を加えることによる圧力を検出することができる。また、入力装置２０に加圧センサを複数備えることによって、複数の圧力センサそれぞれの圧力値を検出してもよい。
【００５６】
本実施形態の入力装置２０は、入力装置２０と一体化されている本体装置１０（ゲーム装置、携帯型ゲーム装置）、携帯電話なども含まれる。
【００５７】
次に、本実施形態の本体装置１０について説明する。本実施形態の本体装置１０は、記憶部１７０、処理部１００、通信部１９６によって構成される。
【００５８】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などのハードウェアにより実現できる。
【００５９】
特に、本実施形態の記憶部１７０は、主記憶部１７２、描画バッファ１７４を含む。主記憶部１７２は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などのハードウェアにより実現できる。また、描画バッファ１７４は、描画部１２０において生成された画像を記憶する。
【００６０】
そして処理部１００は、この情報記憶媒体１８０に格納されるプログラム（データ）から読み出されたデータに基づいて本実施形態の種々の処理を行う。即ち、情報記録媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。なお情報記憶媒体１８０は、メモリカードに、プレーヤの個人データやゲームのセーブデータなどを記憶するものも含む。
【００６１】
通信部１９６は、ネットワーク（インターネット）を介して他の本体装置１０（ゲーム装置）と通信することができる。その機能は、各種プロセッサ又は通信用ＡＳＩＣ、ネットワーク・インタフェース・カードなどのハードウェアや、プログラムなどにより実現できる。また、通信部１９６は、有線、無線いずれの通信も行うことができる。
【００６２】
また、通信部１９６は、アンテナ、無線モジュールを含み、Ｂｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて、入力装置２０の通信部２６０を介して、入力装置２０とデータを送受信する。例えば、通信部１９６は、音データ、及び、振動信号を、入力装置２０に送信し、入力装置２０において、操作部２７０が出力した入力信号、加速度センサ２１０が検出した加速度、撮像部２２０によって検出された情報を、４ｍｓｅｃ、６ｍｓｅｃの交互の間隔で受信する。
【００６３】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、サーバが有する、記憶部、情報記憶媒体からネットワークを介して情報記憶媒体１８０（または、記憶部１７０）に配信するようにしてもよい。このようなサーバの情報記憶媒体の使用も本発明の範囲に含まれる。
【００６４】
処理部１００（プロセッサ）は、入力装置２０から受信した情報や情報記憶媒体１８０から記憶部１７０に展開されたプログラム等に基づいて、ゲーム演算処理、画像生成処理、或いは音制御の処理を行う。
【００６５】
特に本実施形態の処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１５０、ゲーム演算部１１２、表示制御部１１４、仮想カメラ制御部１１５、描画部１２０、音制御部１３０、振動制御部１４０とを含む。
【００６６】
オブジェクト空間設定部１１０は、オブジェクト（移動体、ターゲット、自機、敵機、弾）の他に、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義であり、例えば、ワールド座標系でのＸ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００６７】
移動・動作処理部１５０は、オブジェクトの移動・動作演算を行う。すなわち入力装置２０によりプレーヤが入力した入力情報や、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求める処理を行う。なおフレームは、オブジェクトの移動・動作処理や画像生成処理を行う時間の単位である。
【００６８】
ゲーム演算部１１２は、種々のゲーム演算処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲームステージ毎のクリア条件を満たすか否かを判定する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などを行う。
【００６９】
特に、本実施形態のゲーム演算部１１２は、プレーヤからの射撃用の入力情報に基づいて移動体から弾を発射させ、発射させた弾がターゲットに命中したか否かを判断し、判断結果に基づきゲーム演算を行う。本実施形態では、射撃用の入力情報は、操作部２７０の第２の入力信号（例えば、Ｂボタンによる入力信号）としている。なお、命中したか否かの判断処理は、予め定められた弾のヒット領域と、予め定められたターゲットのヒット領域とのヒットチェックを行うことによって、命中したか否かを判断している。
【００７０】
表示制御部１１４は、視界画像を表示させると共に、視界画像とは異なる表示領域に、移動体の位置、エリアの関係を簡略化して示した画像（レーダーマップ）を表示させる処理を行う。
【００７１】
仮想カメラ制御部１１５は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、ワールド座標系における仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（例えば、Ｘ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を制御する処理を行う。
【００７２】
特に本実施形態の仮想カメラ制御部１１５は、移動体の移動ルートに基づいて、仮想カメラの位置、向き、画角の少なくとも１つを制御する処理を行う。
【００７３】
仮想カメラ制御部１１５は、所与のイベントが発生した場合に、移動体オブジェクトに対する仮想カメラの相対的な配置の遷移として定義されたカメラ制御データ及び仮想３次元空間における移動体オブジェクトの配置に基づき第１のカメラ制御処理を行う第１のカメラ制御部１１６と、所与のイベント発生前に行っていた仮想カメラに対する第２のカメラ制御処理を、所与のイベント発生後も継続して行う第２のカメラ制御部１１７と、を含み、第１のカメラ制御処理によって得られた第１の設定値と第２のカメラ制御処理によって得られた第２の設定値を合成して、合成した設定値に基づき仮想カメラを仮想３次元空間に配置する。
【００７４】
また仮想カメラ制御部１１５は、時間の経過に従って合成比率（ブレンド比率）を変化させて第１の設定値と第２の設定値を合成（ブレンド）してもよい。
【００７５】
またカメラ制御データは、前記移動体オブジェクトのローカル座標系における、移動体オブジェクトの周囲を旋回する軌道が移動ルートとして定義されており、第１のカメラ制御部１１６は、前記カメラ制御データに基づき、仮想カメラを前記移動ルートにしたがって移動体オブジェクトの周囲を旋回又は周遊させる処理を行ってもよい。
【００７６】
またカメラ制御データは、軌道の異なる複数の移動ルートに対応したデータを含み、第１のカメラ制御部１１６は、前記移動体オブジェクトの位置、向き、前記移動体オブジェクトと他の移動体オブジェクトの相対的な位置関係、距離、移動体オブジェクトの属性、イベントの種類、所定のゲームパラメータの値の少なくとも１つに基づき、いずれかの移動ルートに対応したカメラ制御データを選択して、選択したカメラ制御データを用いて第１のカメラ制御処理を行ってもよい。
【００７７】
また第２のカメラ制御部１１７は、移動体オブジェクトに対する仮想カメラの相対的な配置の遷移が定義されたカメラ制御データ及び仮想空間における移動体オブジェクトの配置に基づき第２のカメラ制御処理を行ってもよい。
【００７８】
また第１のカメラ制御部１１６は、前記移動ルート上の所与の点を再生開始位置及び再生終了位置の少なくとも１つとして設定し、設定された再生開始位置及び再生終了位置の少なくとも１つによって特定される移動区間において、仮想カメラを移動させる処理を行ってもよい。
【００７９】
また第１のカメラ制御部１１６は、前記移動体オブジェクトと他の移動体オブジェクトとの距離、位置関係、操作入力及び所与のパラメータの少なくとも１つに基づき開始位置を再設定して、仮想カメラを移動経路上で移動させてもよい。
【００８０】
また第２のカメラ制御部１１７は、前記移動ルート上の所与の点を再生開始位置及び再生終了位置の少なくとも１つとして設定し、設定された再生開始位置及び再生終了位置の少なくとも１つによって特定される移動区間において、仮想カメラを移動させる処理を行ってもよい。
【００８１】
また第２のカメラ制御部１１７は、前記移動体オブジェクトと他の移動体オブジェクトとの距離、位置関係、操作入力及び所与のパラメータの少なくとも１つに基づき開始位置を再設定して、仮想カメラを移動経路上で移動させる制御を行ってもよい。
【００８２】
また記第１のカメラ制御部１１６は、第１のカメラ制御処理開始前の前記移動体オブジェクトのローカル座標系における仮想カメラの位置から前記カメラ制御データに規定された前記移動体オブジェクトのローカル座標系における所与の基準位置まで移動させる移行処理を行ってもよい。
【００８３】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム演算処理）の結果に基づいて描画処理を行い、これにより画像（視界画像、レーダーマップなど）を生成し、表示部１９０に出力する。
【００８４】
いわゆる３次元ゲーム画像を生成する場合には、まず表示物（オブジェクト、モデル）を定義する各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含む表示物データ（オブジェクトデータ、モデルデータ）が入力され、入力された表示物データに含まれる頂点データに基づいて、頂点処理が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。頂点処理では、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、表示物を構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（フラグメント処理）が行われる。ピクセル処理では、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内に設定された仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００８５】
なお描画部１２０が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００８６】
そして描画部１２０は、表示物を描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００８７】
ジオメトリ処理では、表示物に関して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）の表示物データ（表示物の頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、主記憶部１７２に保存される。
【００８８】
テクスチャマッピングは、記憶部１７０に記憶されるテクスチャ（テクセル値）を表示物にマッピングするための処理である。具体的には、表示物の頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャを表示物にマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００８９】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファに格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００９０】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより２つの色を合成した色を求める処理を行う。
【００９１】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えばＲＧＢの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００９２】
音制御部１３０は、処理部１００で行われる種々の処理（ゲーム演算処理等）の結果に基づいて記憶部１７０に記憶されている音を、入力装置２０のスピーカー２３０及びスピーカー１９２の少なくとも一方から出力させる処理を行う。
【００９３】
振動制御部１４０は、処理部１００で行われる種々の処理（ゲーム演算処理等）の結果に基づいて、通信部１９６、通信部２６０を介して、入力装置２０の振動部２４０を振動させる処理を行う。
【００９４】
なお、本実施形態のゲームシステムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００９５】
また複数のプレーヤがプレイする場合に、複数のプレーヤそれぞれの入力装置２０から送信された情報（加速度センサ２１０が検出した加速度、操作部２７０が出力した入力信号等）に基づいて、１つの本体装置１０がゲーム演算、画像生成処理を行い、生成した画像を表示部に表示させるように制御してもよい。
【００９６】
また、複数のプレーヤそれぞれの本体装置１０がネットワーク（伝送ライン、通信回線）を介して接続され、複数の本体装置１０それぞれが、入力装置２０から送信された情報に基づいて、ゲーム演算、画像生成処理を行い、生成した画像を表示部に表示させるように制御してもよい。
【００９７】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。
【００９８】
表示部１９０は、処理部１００により生成された画像を出力するものであり、その機能は、ＣＲＴディスプレイ、ＬＣＤ（液晶ディスプレイ）、ＯＥＬＤ有機ＥＬディスプレイ、ＰＤＰ（プラズマディスプレイパネル）、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００９９】
スピーカー１９２は、音制御部１３０により再生する音を出力するものであり、その機能は、スピーカー、或いはヘッドフォンなどのハードウェアにより実現できる。なお、スピーカー１９２は、表示部に備えられたスピーカーとしてもよい。例えば、テレビ（家庭用テレビジョン受像機）を表示部としている場合には、テレビのスピーカーとすることができる。
【０１００】
光源１９８は、例えばＬＥＤであり、表示部１９０に関連付けられて配置される。なお、本実施形態は、複数の光源（光源Ｒと光源Ｌ）とを備え、光源Ｒと光源Ｌとの距離は所定間隔を有するように設置されている。
【０１０１】
２．モード移行カメラ制御（第１のカメラ制御の一例）
ここでは、フライトシューティングゲームにおいて、プレーヤ移動体（移動体オブジェクトの一例）が、通常戦闘モードから、高速に動き回る敵機に近接して移動しながら砲撃する近接戦闘モードに移行する際のモード移行カメラ制御（第１のカメラ制御の一例）を例にとり説明する。
【０１０２】
本実施の形態のフライトシューティングゲームでは、プレーヤからの入力情報に基づいてプレーヤ移動体（例えば戦闘機等）が仮想３次元空間（オブジェクト空間）を動き回り、プレーヤ移動体に装備された機関銃（機関砲）などを用いて、仮想３次元空間を動き回るターゲット移動体（例えば敵の戦闘機等）を攻撃（撃墜、撃破）させることができる。
【０１０３】
本実施の形態では、通常戦闘モードや近接戦闘モード、各種モードや各種イベントなどがあり、モードやイベントに応じたカメラの制御を行って仮想カメラを仮想３次元空間に配置している。通常戦闘モードでは、１人称視点や３人称視点のカメラ制御が行われる。
【０１０４】
近接戦闘モードになると、プレーヤ移動体をターゲット移動体に追従させる追従制御が行われ、ターゲット移動体の過去の移動軌跡に基づき、プレーヤ移動体をターゲット移動体に追従させる。近接戦闘モードでは、近接戦闘中の複数の戦闘機がうまく画面内に収まるようなカメラ制御が行われる。
【０１０５】
モード移行カメラ制御は、通常戦闘モードから近接戦闘モード移行する際に行われる制御である。
【０１０６】
図２（Ａ）（Ｂ）は、通常戦闘モード時、近接戦闘モード開始時の仮想３次元空間（ワールド座標系）におけるプレーヤの移動体オブジェクトと敵の移動体オブジェクトの位置関係を示している。通常戦闘モードは、遠方に飛行する敵の移動体オブジェクト３０８をミサイル等で攻撃するのが主であるため、図２（Ａ）に示すようにプレーヤの移動体オブジェクト３１０と、敵の移動体オブジェクト３０８とは、所定の距離（Ｌ１）以上離れた位置にある。ところが高速に動き回る敵機に近接して移動しながら砲撃する近接戦闘モードでは、図２（Ｂ）に示すようにプレーヤの移動体オブジェクト３１０と、敵の移動体オブジェクト３０８とは、所定の距離（Ｌ１）以内に存在するように制御される。近接戦闘モードへの切り替えはプレーヤの操作入力等によって行われる。
【０１０７】
プレーヤの操作入力等のイベントが発生して通常戦闘モードから近接戦闘モードに切り替わる場合、図２（Ｂ）に示すように、プレーヤの移動体オブジェクト３１０は現在位置３０４から近接戦闘モードにおけるプレーヤ移動体の基準位置３０６まで、所定時間（例えばｍ秒）かけて自動的に移動させられる。ここにおいて近接戦闘モードにおけるプレーヤ移動体の基準位置３０６とは、例えば敵の移動体オブジェクトから所定の距離（Ｌ１）以内にある位置でもよい。
【０１０８】
本実施の形態では、通常戦闘モードから近接戦闘モードへの切り替えの際に、プレーヤに対し近接戦闘への期待感をアピールするような演出効果の高いカメラ制御として、モード移行カメラ制御を行っている。
【０１０９】
図３は、通常戦闘モードから近接戦闘モードへの切り替え時に行われるカメラ制御の様子を示すタイムチャートである。
【０１１０】
本実施の形態では複数のカメラ制御が平行して行われている。
【０１１１】
４５２は通常戦闘モードのカメラ制御（第２のカメラ制御の一例）４５０が行われている期間を示し、４６２はモード移行カメラ制御（第１のカメラ制御の一例）４６０が行われている期間を示し、４７２は近接戦闘モードのカメラ制御４７０が行われている期間を示している。
【０１１２】
時刻ｆ０から通常戦闘モードのカメラ制御４５０が行われており、時刻ｆｎまでは、他のカメラ制御が平行して行われていないので、仮想カメラには、通常戦闘モードのカメラ制御処理によって得られた第２の設定値（位置、向き、画角等）が設定される。
【０１１３】
時刻ｆｎで近接戦闘開始の操作入力が行われると、モード移行カメラ制御（第１のカメラ制御の一例）が始まる。モード移行カメラ制御がｍ秒間、行われる。この間は図２（Ａ）（Ｂ）に示すように、プレーヤの移動体オブジェクト３１０は、仮想３次元空間（ワールド座標系）において現在位置３０４から近接戦闘モードにおけるプレーヤ移動体の基準位置３０６に、自動的に移動させられる。
【０１１４】
そしてモード移行カメラ制御が開始されてからｍ秒後のプレーヤ時刻ｆｎ＋ｍにモード移行カメラ制御が終了し、時刻ｆｎ＋ｍ以降は、近接戦闘モードのカメラ制御が行われる。
【０１１５】
本実施の形態では、時刻ｆｎから時刻ｆｎ＋ｍの間モード移行カメラ制御が行われる間）は、モード移行カメラ制御と通常戦闘モードのカメラ制御が平行して行われ、モード移行カメラ制御処理によって得られた第１の設定値と通常戦闘モードのカメラ制御処理によって得られた第２の設定値を合成して、合成した設定値に基づき仮想カメラを仮想３次元空間に配置している。時刻ｆｎから時刻ｆｎ＋ｍの間は、第１の設定値と第２の設定値を時間的に変化する合成比率で合成して時刻ｆｎから時刻ｆｎ＋ｍの間の仮想カメラの設定値を求めてもよい。
【０１１６】
なお上記実施例では、移行カメラ制御（第１のカメラ制御の一例）４６０が行われている期間４６２と近接戦闘モードのカメラ制御（第３のカメラ制御）４７０が行われている期間４７２が重複していない場合を例にとり説明したが、両期間が重複している場合にも適用可能である。この様な場合には、モード移行カメラ制御処理によって得られた第１の設定値と近接戦闘モードのカメラ制御処理によって得られた第３の設定値を合成して、合成した設定値に基づき仮想カメラを仮想３次元空間に配置してもよい。
【０１１７】
この様に本実施の形態では、複数のカメラ制御によって得られた設定値のブレンドを行うことで、特殊なカメラ挙動にシームレスに移行することができる。
【０１１８】
図４（Ａ）（Ｂ）は、第１の設定値と第２の設定値の合成比率の時間的な変化を示すグラフである。横軸は時間で、縦軸は合成比率を示している。モード移行カメラ制御（第１のカメラ制御の一例）はｍ秒間分の仮想カメラの挙動を定義するデータとして定義されているので、モード移行カメラ制御が開始されてからｍ秒後までの合成比率を示すグラフ４９０、４９２となっている。図４（Ａ）（Ｂ）に示すように、合成比率は時間的に変化する。
【０１１９】
図４（Ａ）では、時間の経過につれて第１の設定値の割合が０パーセントから１００パーセントまで線形関数にしたがって増加し、図４（Ｂ）では、時間の経過につれて第１の設定値の割合が０パーセントから１００パーセントまで所与の関数にしたがって増加する。
【０１２０】
いずれもモード移行カメラ制御が開始されてからｍ秒後に第１の設定値の割合が最大となっている。この様にすると、時刻ｆｎから時刻ｆｎ＋ｍの期間において、時間の経過につれてモード移行カメラ制御の影響が大きくなるカメラ制御を行うことができる。
【０１２１】
３．カメラ制御データ
次にモード移行カメラ制御（第１のカメラ制御の一例）に使用されるカメラ制御データを例にとり、カメラ制御データについて説明する。
【０１２２】
図５、図６は、カメラ制御データについて説明する図である。
【０１２３】
カメラ制御データ３５０は、所定期間（ｔ0〜ｔn）分の仮想カメラの挙動（位置、向き（回転）、画角等）を示すデータであり、所定期間分（ｔ0〜ｔn）の仮想カメラの位置３６０、向き３７０、画角３８０のなくとも１つの遷移を示すデータを含む。なおこれらすべての遷移を示すデータを含んでもよい。またその他、例えば仮想カメラの被写界深度等のパラメータを含んでもよい。
【０１２４】
仮想カメラの位置３６０、向き３７０は、図６に示すように移動体オブジェクト３１０の代表点を原点とし、移動体オブジェクト３１０の向きを所定の軸方向（ここではＺ軸方向ｌｚ）とするローカル座標系３００における位置（ローカル座標系における位置座標）、向きで与えられる。
【０１２５】
図５の軌道３２０は、ローカル座標系３００における仮想カメラの移動ルートを示している。移動ルート３２０は、始点３２２から軌道に沿って折り返し点３２３まで移動し、折り返し点３２３から軌道に沿って始点３２２と同位置に設定された終点３２４まで移動するような移動ルート（移動体オブジェクト３１０の周囲を旋回又は周遊する軌道が移動ルート）として定義されている。
【０１２６】
また移動ルート（軌道）３２０は、移動体オブジェクトのモデルの形状に応じて設定する。すなわちローカル座標系の原点に移動体オブジェクト３１０を配置した状態で、移動ルート（軌道）３２０が移動体オブジェクト３１０と交差しないように設定する。このようにすると仮想カメラの移動ルートと移動体オブジェクト３１０の交差判定等の複雑な制御を行うことなしに、効果的なカメラ制御を行うことができる。
【０１２７】
仮想カメラは、時刻ｔ0の位置ＶＫ−ｔ０を始点とし、時刻ｔnの位置を終点ＶＫ−ｔnとして、所定期間（ｔ0〜ｔn）かけて軌道３２０を往復する移動を行う。カメラ制御データは、軌道３２０を時間の関数で表したものでもよいし、図６の位置３６０のように、時刻ｔ0、ｔ1、・・に対応する位置の座標値を離散的に定義したものでもよい。
【０１２８】
向き（回転）を示す制御データは、向き（回転）値を時間の関数で表したものでもよいし、図６に示すカメラ制御データ３５０の向き（回転）３７０のように、時刻ｔ0、ｔ1、・・における向き（回転）を離散的に定義したものでもよい。
【０１２９】
画角を示す制御データは、画角値を時間の関数で表したものでもよいし、図６に示すカメラ制御データ３５０の画角３８０のように、時刻ｔ0、ｔ1、・・における画角を離散的に定義したものでもよい。
【０１３０】
なお位置や向きや画角が所定期間（ｔ0〜ｔn）の間変化しない場合には、その期間について１つの不変値のみ定義しておいてもよい。
【０１３１】
４．カメラ設定値の演算
次にモード移行カメラ制御（第１のカメラ制御の一例）処理によって得られた第１の設定値と、通常戦闘モードのカメラ制御（第２のカメラ制御の一例）処理によって得られた第２の設定値を合成しての仮想カメラの配置位置を求める演算手法について説明する。
【０１３２】
図７は、第１の設定値と第２の設定値の合成処理（ブレンド処理）について説明するための図である。
【０１３３】
ここでは通常戦闘モードのカメラ制御が、予め用意されたカメラ制御データ及び仮想３次元空間における移動体オブジェクトの配置データ（位置及び向きの少なくとも一方）に基づき行われる場合を例にとり説明する。
【０１３４】
３２０−１はモード移行カメラ制御用のカメラ制御データの示す移動体オブジェクト３１０のローカル座標系３００における移動ルートを示しており、３２０−２は通常戦闘モードのカメラ制御用のカメラ制御データの示す移動体オブジェクト３１０のローカル座標系３００における移動ルートを示している。
【０１３５】
３２０−３は、移動ルート３２０−１と移動ルート３２０−２を、ローカル座標系３００において時間的に変化する合成比率で合成したローカル座標系における移動ルート（合成ルートと呼ぶ）である。
【０１３６】
図８は、合成ルートと移動体オブジェクトの位置に基づき、ワールド座標系における仮想カメラの配置（第１の設定値）を求める手法について説明するための図である。
【０１３７】
ＷＰ−ｔ０、ＷＰ−ｔ1、・・・、ＷＰ−ｔnは、移動体オブジェクト３１０のワールド座標系（仮想３次元空間）における時刻ｔ0、ｔ１、・・・ｔnの位置を示しており、各位置ＷＰ−ｔ０、ＷＰ−ｔ1、・・・、ＷＰ−ｔnにおけるワールド座標系における位置座標値は（WX0、WY0、WZ0）、（WX1、WY1、WZ1）、・・・（WXn、WYn、WZn）である。この様な場合、時刻ｔ0、ｔ１、・・・ｔnにおけるワールド座標系における仮想カメラの位置ＷＶＫ−ｔ０、ＷＶＫ−ｔ1、・・・、ＷＶＫ−ｔnの位置座標値（X'0、Y'0、Z'0）、（X'1、Y'1、Z'1）、・・・（X'n、Y'n、Z'n）は、時刻ｔ0、ｔ１、・・・ｔnにおけるプレーヤ移動体の位置座標値（WX0、WY0、WZ0）、（WX1、WY1、WZ1）、・・・（WXn、WYn、WZn）と、時刻ｔ0、ｔ１、・・・ｔnにおけるローカル座標系の合成ルート３２０−３上の仮想カメラの位置座標値（LX0、LY0、LZ0）、（LX1、LY1、LZ1）、・・・（LXn、LYn、LZn）との和により求めることができる。
【０１３８】
すなわち時刻ｔiにおけるローカル座標系における合成ルート３２０−３の座標値（LWi、LYi、LZi）（i＝０，１，２，・・ｎ）と移動体オブジェクトのワールド座標系における座標値（WXi、WYi、WZi）（i＝０、１，２，・・ｎ）とを加算することにより、所定の期間（ｔ０〜ｔｎ）のワールド座標系における仮想カメラの座標値を求めることができる。
【０１３９】
この様に第１の設定値と第２の設定値を合成する場合には、モード移行カメラ制御によるローカル座標系３００における移動ルート３２０−１と、通常戦闘モードのカメラ制御によるローカル座標系３００におけるルート３２０−２とをローカル座標系３００において合成して合成ルート３２０−３を求めてから、ワールド座標系の値に変換するようにしてもよい。
【０１４０】
５．モード移行カメラ制御のカメラ演出例
次にモード移行カメラ制御（第１のカメラ制御の一例）の場合を例にとり、第１のカメラ制御処理のカメラ演出の具体例について説明する。
【０１４１】
図９、図１０（Ａ）〜（Ｄ）は、モード移行カメラ制御によって生成される画像例を説明するための図である。モード移行カメラ制御では、仮想カメラは図９に示す移動体オブジェクト３１０のローカル座標系３００における移動ルート３２０に従って移動する。図９の３４０−０、３４０−１、３４０−２、３４０−３に仮想カメラが配置された場合に生成される視点画像が図８（Ａ）、図８（Ｂ）、図８（Ｃ）、図８（Ｄ）である。この様にモード移行カメラ制御では仮想カメラが、プレーヤ移動体の周囲を旋回又周遊してプレーヤ移動体を効果的なアングルで映し出すカメラ演出が行われる。
【０１４２】
６．移動ルート
次にモード移行カメラ制御（第１のカメラ制御の一例）において、複数の移動ルートから１の移動ルートを選択して処理を行う場合について説明する。
【０１４３】
図１１は、複数の移動ルートが設定されている例を示している。
【０１４４】
同図に示すように、移動体オブジェクト３１０に対して、軌道の異なる複数の移動ルート３８０−１、３８０−２、３８０−３を設定して、各移動ルートに対応するカメラ制御データを用意しておいてもよい。
【０１４５】
そして動体オブジェクト３１０の位置、向き、前記移動体オブジェクトと他の移動体オブジェクト（近接戦闘モードを行う敵の移動体オブジェクトでもよい）との相対的な位置関係、距離、移動体オブジェクトの属性、イベントの種類、所定のゲームパラメータの値に基づき、いずれかの移動ルートに対応したカメラ制御データを選択してもよい。
【０１４６】
この様にすると様々なバリエーションでモード移行カメラ制御の演出を行うことができる。
【０１４７】
選択はランダムに行ってもよいし、所定のアルゴリズムで選択してもよい。移動体オブジェクトの仮想３次元空間における現在位置や向きと、選択するルートの対応関係を予めさだめておいてもよい。例えば移動体オブジェクトの飛行中のエリアが障害物の多いエリアである場合には、３８０−２のように大回りしないルートを選択してもよい。また移動体オブジェクト高度（Ｙ座標値）が低い時は、移動体オブジェクトの周囲に地形や建造物等の障害物が多い可能性が高いので、高度に応じてルートを選択してもよい。高度が低い場合には、移動体オブジェクトから所定範囲内にルートが設定されているカメラ制御データを選択するようにしてもよい。
【０１４８】
この様にすると移動中の仮想カメラが障害物にぶつかってしまうような不具合を回避することができる。また移動体オブジェクトの属性によって選択するルートを決定してもよい。また他の移動体オブジェクトが近くにいる場合には、他の移動体オブジェクトの位置関係を考慮して、他の移動体オブジェクトと交差しない移動ルートを選択するおうにしてもよい。
【０１４９】
７．カメラ制御データの再生開始位置、再生終了位置の可変制御
次に、モード移行カメラ制御（第１のカメラ制御の一例）において、カメラ制御データの再生開始位置、再生終了位置、再生方向の設定を可変に制御する場合について説明する。
【０１５０】
図１２は、カメラ制御データの再生開始位置、終了位置の設定について説明するための図である。
【０１５１】
本実施の形態では、カメラ制御データの再生開始位置、終了位置を可変に設定することができる。すなわち、移動ルートの所与の点を再生開始位置及び再生終了位置の少なくとも１つとして設定し、設定された再生開始位置及び再生終了位置の少なくとも１つによって特定される移動区間において、仮想カメラを移動させる処理を行う。
【０１５２】
例えば図１２は、移動ルート３２０の始点３２２ではなく、途中の点３２３を再生開始位置とし途中の点３２３から再生を開始して、移動ルートの折り返し点３２３で折り返して途中の点３２３で再生を終了する例を示している。ここで、カメラ制御データは始点３２２から終点３２４までのデータが、図６に示すように時系列に定義されており、時刻ｔ０に始点のデータが定義され、時刻ｔ１で途中の点３２３のデータが定義されているとすると、時刻ｔ１の位置を再生位置として設定することにより、移動ルートの途中の点３２３から仮想カメラを移動させる制御を行うことができる。この様にすると１つのカメラ制御データで始点の異なる複数の移動ルートのカメラ制御が可能となる。
【０１５３】
例えばモード移行カメラ制御（第１のカメラ制御の一例）前の仮想カメラのローカル位置に応じて、再生開始位置を決定してもよい。移動ルート３２０は、モード移行カメラ制御（第１のカメラ制御の一例）発動前（例えば３人称視点モードの仮想カメラのローカル位置）を含んでもよい。
【０１５４】
８．カメラ制御データに操作入力を反映させる手法
次に通常戦闘モードのカメラ制御（第２のカメラ制御の一例）に操作入力をさせる手法について説明する。
【０１５５】
図１３（Ａ）（Ｂ）は、通常戦闘モードのカメラ制御に操作入力を反映させる例について説明するための図である。
【０１５６】
図１３（Ａ）の３２０−２は、通常戦闘モードのカメラ制御に用いるカメラ制御データで定義された移動体オブジェクト３１０のローカル座標系３００における移動ルートを示している。図１３（Ｂ）は、カメラ制御データの時間軸（ｔ０〜ｔ５）と位置データの対応関係を示す図である。ここでは位置データを例にとり説明するが、向き（回転）や画角についても同様である。カメラ制御データは、時刻ｔ０〜時刻ｔ１〜時刻ｔ２においてルート３２０−２を順方向３９０に移動（位置ｌ０〜位置ｌ１〜位置ｌ２に移動）し、時刻ｔ３〜時刻ｔ４〜時刻ｔ５においてルート３２０−２を逆方向３９２に移動（位置ｌ２〜位置ｌ１〜位置ｌ０に移動）するように定義されている。カメラ制御データは再生開始位置から、再生終了位置までを時間軸に沿って再生することができる。
【０１５７】
ここで第１の再生開始位置ＳＰ１として時刻ｔ０が指定され、第１の再生終了位置ＥＰ１として時刻ｔ２が指定された場合には、仮想カメラはルート３２０−２を順方向３９０に移動（位置ｌ０〜位置ｌ１〜位置ｌ２に移動）するよう制御される。また第２の再生開始位置ＳＰ２として時刻ｔ３が指定され、第２の再生終了位置ＥＰ２として時刻ｔ５が指定された場合には、仮想カメラはルート３２０−２を逆方向３９２に移動（位置ｌ２〜位置ｌ１〜位置ｌ０に移動）するよう制御される。
【０１５８】
操作入力に応じて再生開始位置をＳＰ１又はＳＰ２のいずれかに設定するようにしてもよい。例えば加速を示す操作入力が行われた場合には再生開始位置をＳＰ２に設定し、減速を示す操作入力が行われた場合には再生開始位置をＳＰ１に設定するようにしてもよい。この様にすると、加速入力が行われると仮想カメラの位置が移動体オブジェクトに対し相対的に後退し（３９２）、減速入力が行われると、仮想カメラの位置が移動体オブジェクトに対し相対的に前進する（３９０）カメラ演出を行うことができる。
【０１５９】
図１４（Ａ）（Ｂ）は、通常戦闘モードのカメラ制御に操作入力を反映させる他の例について説明するための図である。図１４（Ａ）の３２０’−２は、第１のカメラ制御に用いるカメラ制御データの示す移動体オブジェクト３１０のローカル座標系３００における移動ルートを示している。
【０１６０】
図１４（Ｂ）は、図１３（Ｂ）と同様に、カメラ制御データの時間軸と位置データの対応関係を示す図である。
【０１６１】
入力された移動方向に応じて再生開始位置を設定するようにしてもよい。例えば右方向（Ｘ軸＋方向）への移動を指示する操作入力が行われた場合には再生開始位置をＳＰ２に設定し、左方向（Ｘ軸−方向）を示す操作入力が行われた場合には再生開始位置をＳＰ２に設定するようにしてもよい。この様にすると、右方向入力が行われると仮想カメラの位置が移動体オブジェクトに対し相対的に左方向に移動し（３９２’）、左方向入力が行われると、仮想カメラの位置が移動体オブジェクトに対し相対的に右方向に移動する（３９０’）カメラ演出を行うことができる。
【０１６２】
図１５は、第１の設定値と第２の設定値の合成の一例について説明するための図である。
【０１６３】
ここではモード移行カメラ制御（第１のカメラ制御の一例）で得られた設定値と通常戦闘モードのカメラ制御（第２のカメラ制御の一例）で得られた設定値を合成（ブレンド）する場合を例にとり説明する。
【０１６４】
３２０−１はモード移行カメラ制御用のカメラ制御データの示す移動体オブジェクト３１０のローカル座標系３００における移動ルートを示しており、３２０−２は通常戦闘モードのカメラ制御用のカメラ制御データの示す移動体オブジェクト３１０のローカル座標系３００における移動ルートを示している。この移動ルート３２０−２には、図１３（Ａ）（Ｂ）や図１４（Ａ）（Ｂ）で説明したように、操作入力が反映されたものとなっている。
【０１６５】
３２０−３は、移動ルート３２０−１と移動ルート３２０−２を、ローカル座標系３００において時間的に変化する合成比率で合成したローカル座標系における移動ルートである。時刻ｔiにおけるローカル座標系における合成ルート３２０−３の座標値（LWi、LYi、LZi）（i＝０，１，２，・・ｎ）と移動体オブジェクトのワールド座標系における座標値（WXi、WYi、WZi）（i＝０、１，２，・・ｎ）とを加算することにより、所定の期間（ｔ０〜ｔｎ）のワールド座標系における仮想カメラの座標値を求めることができる。
【０１６６】
この様に通常戦闘モードのカメラ制御において操作入力を再生開始位置に反映させたることで、合成後に得られる移動ルート３２０−３にも、操作入力が反映され、操作入力に応じてカメラワークが変化する躍動感のあるカメラ演出を行うことができる。
【０１６７】
９．移行処理
次に、第１のカメラ制御処理開始前の前記移動体オブジェクトのローカル座標系における仮想カメラの位置からカメラ制御データに規定された前記移動体オブジェクトのローカル座標系における所与の基準位置まで移動させる移行処理について、第１のカメラ制御がモード移行カメラ制御である場合を例にとり説明する。
【０１６８】
図１７は、モード移行カメラ制御（第１のカメラ制御の一例）開始前の記移動体オブジェクトと仮想カメラの配置関係について説明するための図である。時刻ｔ１，ｔ２、ｔ３における、第２のカメラ制御下にある移動体オブジェクトと仮想カメラの位置関係を示している。
【０１６９】
第２のカメラ制御の最中に、モード移行を指示する所与の操作入力が行われた場合にモード移行カメラ制御が開始されるとする。第２のカメラ制御は、図１７に示すように、仮想カメラ３４０を移動体オブジェクト３１０に追従させるが、移動体オブジェクト３１０に対する仮想カメラ３４０の相対的な位置や向き（回転）が固定されていないものとする。すなわち移動体オブジェクト３１０のローカル座標系における仮想カメラ３４０の位置や向き（回転）は、移動体オブジェクト３１０のワールド座標系における位置や向き（向き）や速度、又は移動体オブジェクトと他の移動体オブジェクト（例えば移動体オブジェクトのターゲットとなっている敵移動体等）の位置関係や距離等によって変化するものとする。
【０１７０】
この様な場合時刻ｔ１でモード移行を指示する所与の操作入力が行われた場合と、時刻ｔ２でモード移行を指示する所与の操作入力が行われた場合と、時刻ｔ３でモード移行を指示する所与の操作入力が行われた場合とでは、移動体オブジェクトのローカル座標系における仮想カメラの位置、向き（回転）は異なっている。
【０１７１】
図１８は、移行処理について説明するための図である。３２０は、移動体オブジェクト３１０のローカル座標系３００におけるアイテムカメラ制御の仮想カメラの移動ルートを示している。３２２は移動ルート（軌道）３２０の始点であり、所与の基準位置である。再生開始位置の設定制御を行わない場合には、所与の基準位置である始点３２２から移動ルートの再生が開始されるものとする。
【０１７２】
しかし時刻ｔ１でモード移行を指示する所与の操作入力が行われた場合には仮想カメラ３４０−１は３４２−１に位置しており、時刻ｔ２でモード移行を指示する所与の操作入力が行われた場合には仮想カメラ３４０−２は３４２−２に位置しており、時刻ｔ３でモード移行を指示する所与の操作入力が行われた場合には仮想カメラ３４０−３は３４２−３に位置しており、いずれも所与の基準位置とは異なる位置にある。そこで、本実施の形態では、モード移行を指示する所与の操作入力が行われる直前の仮想カメラの位置から、所定の基準位置まで、所定時間（ＩＴ）で仮想カメラを移動させる移行処理を行う。
【０１７３】
例えば時刻ｔ１でモード移行を指示する所与の操作入力が行われた場合には、時刻ｔ１における仮想カメラのローカル位置（移動体オブジェクトのローカル座標系における位置を意味する）３４２−１から所定の基準位置３２２まで所定の移動ルート３４４−１にしたがって、所定期間（ＩＴ）で移動させ、時刻ｔ２でモード移行を指示する所与の操作入力が行われた場合には、時刻ｔ２における仮想カメラのローカル位置３４２−２から所定の基準位置３２２まで所定の移動ルート３４４−２にしたがって、所定期間（ＩＴ）で移動させ、時刻ｔ３でモード移行を指示する所与の操作入力が行われた場合には、時刻ｔ３における仮想カメラのローカル位置３４２−３から所定の基準位置３２２まで所定の移動ルート３４４−３にしたがって、所定期間（ＩＴ）で移動させてもよい。
【０１７４】
所定の移動ルート３４４−１，３４４−２、３４４−３は、各時刻ｔ１、ｔ２、ｔ３における仮想カメラのローカル位置と所定の基準位置とを結ぶ線分であり、操作入力時の仮想カメラのローカル位置３４２−１，３４２−２３４２−３に基づきリアルタイムに決定される。当該線分の軌跡が、前記２点を通る所与の関数となるように決定してもよい。なお仮想カメラの画角は移動体オブジェクトが画像内に収まるように決定してもよい。
【０１７５】
このようにすると、モード移行を指示する所与の操作入力が行われると所定期間（ＩＴ）で仮想カメラが所定の基準位置まで移動し、その後アイテムカメラ制御の移動ルート３２０に従ってアイテムに近づいていく第１のカメラ制御が行われる。
【０１７６】
そして前記移行処理（仮想カメラが所与の基準位置にくるまで）が行われている間は、当該移行処理によって得られた第１の設定値と第２のカメラ制御処理によって得られた第２の設定値を合成して、合成した設定値に基づき仮想カメラを仮想３次元空間に配置することができるので、仮想カメラ３４０と移動体オブジェクト３１０の相対位置が変化するようなカメラ制御が行われている場合に、モード移行を指示する所与の操作入力が行われた場合でもスムーズでシームレスなカメラ演出を行うことができる。
【０１７７】
１０．本実施の形態の処理
図１６は、本実施の形態のカメラ制御処理の流れを示すフローチャートである。
【０１７８】
所与のイベント発生前は第２のカメラ制御処理を行い第２の設定値をもとめ、第２の設定値と移動体オブジェクトの配置に基づき、仮想カメラを仮想３次元空間に配置する（ステップＳ１０）。所与のイベントが発生すると（ステップＳ２０）、第１の仮想カメラ制御期間が終了するまで（ステップＳ７０）、以下の処理を繰り返す。
【０１７９】
第１のカメラ制御処理と第２のカメラ制御処理を平行して行い（ステップＳ３０）、第１のカメラ制御開始からの経過時間に基づき、ブレンド比率を求める（ステップＳ４０）。そして、第１のカメラ制御処理により求めた第１の設定値と第２のカメラ制御処理により求めた第２の設定値とを、求めたブレンド（合成）比率でブレンド（合成）してブレンド設定値を求める（ステップＳ５０）。そして、ブレンド設定値と、移動体オブジェクトの配置に基づき、仮想カメラを仮想３次元空間に配置する（ステップＳ６０）。
【０１８０】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０１８１】
上記実施の形態では、カメラ制御データの位置を例に取り説明したがそれに限られない。回転や画角についても同様の制御を行うことができる。
【０１８２】
また上記実施の形態で例示した以外の様々なカメラ制御を平行して行い、これらのカメラ制御によって得られた設定値をブレンドして仮想カメラを仮想３次元空間に配置してもよい。例えば敵機の爆風等によって値が変化する揺れパラメータや、プレイヤの入力以外のさらに別のパラメータを用いて、仮想カメラの配置（位置や向き）を変化させて、仮想カメラの揺れ等を表現するカメラ制御をおこなってもよい。例えば、敵機が爆発した座標から所定距離以内に自機がいる場合、揺れを表現するために図13、図14で説明したカメラ制御を行ってもよい。
【０１８３】
また敵が複数いる場合には、敵が１機の場合と異なる移動ルートにしてもよい。たとえば、予め容易された複数の移動ルートの中から、敵機2機の座標の中点に近い点を通る移動ルートを検索し、そのパスを選択するようにしてもよい。  
【０１８４】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、携帯型ゲームシステム、ゲーム画像を生成するシステムボード等の種々のゲームシステムに適用できる。
【符号の説明】
【０１８５】
１０  本体装置、２０  入力装置、１００  処理部、１１０  オブジェクト空間設定部、１１２  ゲーム演算部、１１４  表示制御部、１１５  仮想カメラ制御部、１１６  第１のカメラ制御部、１１７  第２のカメラ制御部、１２０  描画部、１３０  音制御部、１４０  振動制御部、１５０  移動・動作処理部、１５２  移動体オブジェクト制御部、１７０  記憶部、１７２  主記憶部、１７４  描画バッファ、１８０  情報記憶媒体、１９０  表示部、１９２  スピーカー、１９６  通信部、１９８  光源、２１０  加速度センサ、２２０  撮像部、２２２  赤外線フィルタ、２２４  レンズ、２２６  撮像素子、２２８  画像処理回路、２３０  スピーカー、２４０  振動部、２５０  マイコン、２６０  通信部、２７０  操作部
【図１】
2011258149.tif 000003
【図２】
2011258149.tif 000004
【図３】
2011258149.tif 000005
【図４】
2011258149.tif 000006
【図５】
2011258149.tif 000007
【図６】
2011258149.tif 000008
【図７】
2011258149.tif 000009
【図８】
2011258149.tif 000010
【図９】
2011258149.tif 000011
【図１０】
2011258149.tif 000012
【図１１】
2011258149.tif 000013
【図１２】
2011258149.tif 000014
【図１３】
2011258149.tif 000015
【図１４】
2011258149.tif 000016
【図１５】
2011258149.tif 000017
【図１６】
2011258149.tif 000018
【図１７】
2011258149.tif 000019
【図１８】
2011258149.tif 000020