(57)【要約】【課題】カメラの移動ルートとオブジェクトの交差判定等の複雑な制御を行うことなしに、効果的なカメラ演出を提供すること。【解決手段】本プログラムは、操作入力に基づき、仮想３次元空間における移動体オブジェクトの移動の制御を行う移動体オブジェクト制御部と、仮想カメラの設定の制御を行う仮想カメラ制御部と、仮想３次元空間を仮想カメラから見た画像を生成する画像生成部と、してコンピュータを機能させ、前記仮想カメラ制御部は、仮想カメラの移動ルートが移動体オブジェクトに対する仮想カメラの相対的な配置の遷移として定義されたカメラ制御データ、及び仮想３次元空間における移動体オブジェクトの配置に基づき第１のカメラ制御処理を行う第１のカメラ制御部を含み、第１のカメラ制御処理によって得られた第１の設定値に基づき仮想カメラを仮想３次元空間に配置することを特徴とする。【選択図】図２０
2011258150.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におけるローカル座標系における仮想カメラの位置座標値（ＬX0、LY0、LZ0）、（LX1、LY1、LZ1）、・・・（LXn、LYn、LZn）との和により求めることができる。
【０１３０】
２．４  アイテムカメラ制御のカメラ演出例
次にアイテムカメラ制御（第１のカメラ制御の一例）の場合を例にとり、第１のカメラ制御処理のカメラ演出の具体例について説明する。
【０１３１】
図７、図８（Ａ）〜（Ｃ）は、アイテムカメラ制御によって生成される画像例を説明するための図である。アイテムカメラ制御では、仮想カメラは図７に示す移動体オブジェクト３１０のローカル座標系３００における移動ルート３２０に従って移動する。図７の３４０−０、３４０−１、３４０−２に仮想カメラが配置された場合に生成される視点画像が図８（Ａ）、図８（Ｂ）、図８（Ｃ）である。この様にアイテムカメラ制御では仮想カメラが、プレーヤ移動体の機銃３１２に近づいていき、最終的には図８（Ｃ）に示すように、機銃３１２がアップで表示されるカメラ演出が行われる。
【０１３２】
２．５  アイテムの操作期間とカメラ制御データの再生制御
次に、第１のカメラ制御において、アイテムの操作期間とカメラ制御データの再生制御について、アイテムカメラ制御の場合を例にとり説明する。
【０１３３】
図９（Ａ）（Ｂ）、図１０（Ａ）（Ｂ）は、アイテムカメラ制御（第１のカメラ制御の一例）における、仮想カメラの移動軌跡について説明するための図である。
【０１３４】
カメラ制御データは、仮想カメラの軌道３２０を示す所定時間分のデータ（位置、向き、画角等のデータ）が時系列に定義されており、図９（Ａ）に示すように、軌道３２０の始点３２２から終点３２４までのデータを時系列に再生することにより、定義されている仮想カメラの軌道を再現することができる。ここで所定時間は、ｎ秒であるとする。
【０１３５】
所与の操作入力が行われたら、必ず所定時間であるｎ秒分のデータが再生されるようにしてもよい。この様にすると、所与の操作入力が行われたら、図９（Ａ）に示すように、仮想カメラは移動ルート（軌道３２０）に従って始点３２２から終点３２４に移動するとことになる。なお移動が終了したら、所与のタイミングで、図９（Ｂ）に示すように、仮想カメラを終点３２４から始点３２２まで軌道３２０に沿って逆戻りさせてもよい。
【０１３６】
逆戻りしている最中の仮想カメラの向き（回転）は各地点において定義されている値をそのままもちいてもよい。この様にすると、仮想カメラの向きが変わらずに、位置だけ逆戻りするので、アイテムに近づいてきた時と同じ視線方向でアイテムから遠ざかっていくカメラ演出を行うことができる。
【０１３７】
また所与の操作入力が行われている期間中のみ、アイテムカメラ制御を行い、所与の操作入力が終了したら、アイテムカメラ制御を中断するようにしてもよい。
【０１３８】
例えば所与の操作入力がｎ／２秒間行われたとする。この場合、図１０（Ａ）に示すように所与の操作入力の開始タイミングＳＴに始点３２２から再生を開始して、終了タイミングＥＴにおいて、軌道の途中地点３２６で再生を終了してもよい。
【０１３９】
終了タイミングが、軌跡の終点より前で発生した場合にはその時点で終了し、終了タイミングが軌道の終点にきた時点で発生していない場合には、終了タイミングがくるまで、軌道の終点３２４で定義されているデータを継続して再生してもよい。
【０１４０】
前記所与の操作入力が終了した場合には、仮想カメラの状態を、前記所与の操作入力終了時のカメラ制御データの示す状態（軌道の途中地点３２６）から、前記所与の操作入力開始時のカメラ制御データの示す状態（始点３２２）まで、逆戻りさせてもよい。
【０１４１】
例えばカメラ制御データが、仮想カメラの軌跡を示す所定時間分のデータ（位置、向き、画角等のデータ）が時系列に定義されている場合、操作入力終了時の軌道上の位置３２６を、戻り制御の再生開始位置として、時間軸とは逆方向に再生開始位置から軌道の始点までのカメラ制御データを再生することにより、操作入力開始時点の仮想カメラ位置に戻す仮想カメラ制御を行うことができる。
【０１４２】
このように、移動ルートの移動方向を順方向または逆方向のいずれかに設定し、仮想カメラを前記移動ルートにおいて設定された移動方向に移動させる処理を行うこともできる。
【０１４３】
２．６  移動ルート
次に第１のカメラ制御において、複数の移動ルートから１の移動ルートを選択して処理を行う場合について、アイテム制御カメラを例にとり説明する。
【０１４４】
図１１は、１つのアイテムに対応して複数の移動ルートが設定されている例を示している。
【０１４５】
同図に示すように、移動体オブジェクト３１０の1つのアイテム３３０に対して、軌道の異なる複数の移動ルート３８０−１、３８０−２、３８０−３を設定して、各移動ルートに対応するカメラ制御データを用意しておいてもよい。
【０１４６】
そして動体オブジェクトの位置、向き、前記移動体オブジェクトと前記アイテムとの相対的な位置関係、距離、移動体オブジェクトの属性、所定のゲームパラメータの値に基づき、いずれかの移動ルートに対応したカメラ制御データを選択してもよい。
【０１４７】
この様にすると同じアイテムについても様々なバリエーションでアイテムカメラの演出を行うことができる。
【０１４８】
選択はランダムに行ってもよいし、所定のアルゴリズムで選択してもよい。移動体オブジェクトの仮想３次元空間における現在位置や向きと、選択するルートの対応関係を予めさだめておいてもよい。例えば移動体オブジェクトの飛行中のエリアが障害物の多いエリアである場合には、３８０−２のように大回りしないルートを選択してもよい。また移動体オブジェクト高度（Ｙ座標値）が低い時は、移動体オブジェクトの周囲に地形や建造物等の障害物が多い可能性が高いので、高度に応じてルートを選択してもよい。高度が低い場合には、移動体オブジェクトから所定範囲内にルートが設定されているカメラ制御データを選択するようにしてもよい。
【０１４９】
この様にすると移動中の仮想カメラが障害物にぶつかってしまうような不具合を回避することができる。また移動体オブジェクトの属性によって選択するルートを決定してもよい。また他の移動体オブジェクトが近くにいる場合には、他の移動体オブジェクトの位置関係を考慮して、他の移動体オブジェクトと交差しない移動ルートを選択するようにしてもよい。
【０１５０】
図１２は、１つの移動体オブジェクトに複数のアイテムが付属している場合のルートの設定例を示している。
【０１５１】
１つの移動体オブジェクト３１０に複数のアイテム３３２、３３４、３３６が付属している場合には、各アイテムに対応したルート３８２、３８４、３８６が設定されている。この様な場合には、操作されたアイテムに応じて移動ルートを選択することになる。
【０１５２】
操作されているアイテムが１のアイテムである場合には、そのアイテムに対応した移動ルートを選択する。また例えば複数のアイテム３３２、３３６が同時に操作されている場合には、いずれかのアイテムに対応したルートを選択してもよい。ランダムに選択してもよいし、操作中のアイテムの命中率等のパラメータによって選択してもよいし、他の移動体がいる場合には他の移動体との位置関係によって選択してもよい。
【０１５３】
なおこの場合にも図１１の場合と同じように、移動体オブジェクトの高度や飛行中のエリアに応じて選択してもよい。
【０１５４】
２．７  カメラ制御データの再生開始位置、再生終了位置の可変制御
次に、第１のカメラ制御において、カメラ制御データの再生開始位置、再生終了位置、再生方向の設定を可変に制御する構成を、アイテムカメラ制御の場合を例にとり説明する。
【０１５５】
図１３（Ａ）（Ｂ）は、カメラ制御データの再生開始位置、終了位置の設定について説明するための図である。
【０１５６】
本実施の形態では、カメラ制御データの再生開始位置、終了位置を可変に設定することができる。すなわち、移動ルートの所与の点を再生開始位置及び再生終了位置の少なくとも１つとして設定し、設定された再生開始位置及び再生終了位置の少なくとも１つによって特定される移動区間において、仮想カメラを移動させる処理を行う。
【０１５７】
例えば図１３（Ａ）は、移動ルート３２０の始点３２２ではなく、途中の点３２３を再生開始位置として、途中の点３２３から再生を開始して、移動ルートの終点３２４で再生を終了する例を示している。ここで、カメラ制御データは始点３２２から終点３２４までのデータが、図５に示すように時系列に定義されており、時刻ｔ０に始点のデータが定義され、時刻ｔ１で途中の点３２３のデータが定義されているとすると、時刻ｔ１の位置を再生位置として設定することにより、移動ルートの途中の点３２３から終点３２４のルートで仮想カメラを移動させる制御を行うことができる。この様にすると１つのカメラ制御データで始点の異なる複数の移動ルートのカメラ制御が可能となる。
【０１５８】
例えばアイテムカメラが発動される前の仮想カメラのローカル位置に応じて、再生開始位置を決定してもよい。移動ルート３２０は、アイテムカメラ発動前（例えば３人称視点モードの仮想カメラのローカル位置）を含んでもよい。
【０１５９】
図１３（Ｂ）は、複数のアイテムに対応した目標位置を含むルートの例を示している。
【０１６０】
始点３２２と終点３２４’を含むルート３２０’は、移動体オブジェクトに付随する複数のアイテム３３０−１、３３０−２に対応した目標位置を含む。この様な場合、操作対象となるアイテムに応じて再生終了位置を選択してもよい。例えば操作対象アイテムが３３０−２である場合には始点３２２から終点３２４までの全ルートを再生し、操作対象アイテムが３３０−１である場合には、再生終了位置をアイテム３３０−１に対応したルート上の点３２８に設定して始点３２２から再生終了位置３２８までのルートを再生してもよい。
【０１６１】
２．８  アイテムカメラ制御の変形例
次にアイテムの位置が移動体オブジェクトに対して可変である場合のアイテムカメラ制御の一例について説明する。
【０１６２】
図１４は、複数のパーツオブジェクトが関節で接続された移動体オブジェクトに付随するアイテムに対応して設定される移動ルートについて説明するための図である。
【０１６３】
移動体オブジェクト４１０は複数のパーツオブジェクトＰＯ−１、ＰＯ−２、・・が関節Ｋ１、Ｋ２、・・で接続された移動体オブジェクトであり、アイテム４２０を保持している。アイテム４２０は移動体オブジェクト４１０に付随して動くが、各パーツオブジェクトの関節Ｋ１、Ｋ２、・・・に対する回転が変化するため、アイテム４２０のローカル座標系４００における位置は、ローカル座標系４００の原点Ｏに対して固定されておらず、関節Ｋ１、Ｋ２、・・によって接続されたパーツオブジェクトＰＯ−１、ＰＯ−２、・・の動きによって変化する。
【０１６４】
この様に移動体オブジェクト４１０が複数の関節Ｋ１、Ｋ２、・・を含みモーション制御が行われる場合には、移動体オブジェクト４１０の代表点（位置座標が与えられる点）に対するアイテム４２０の相対位置は変化する。従って予め複数のルート４２０−１、４２０−２、４２０−３、４２０−４を用意しておき、入力情報やモーションデータに基づき、操作対象となるアイテム４２０の移動体オブジェクト４１０に対する相対位置をリアルタイムに演算し、演算した相対位置に基づき、ルートの選択を行うようにしてもよい。また選択したルートの再生終了位置の変更を行うようにしてもよい。
【０１６５】
２．９  複数のカメラ制御
次に第１のカメラ制御を含む複数のカメラ制御を平行して行い、複数のカメラ制御を反映させて、仮想カメラの配置を決定する制御について、第１のカメラ制御がアイテムカメラ制御である場合を例にとり説明する。
【０１６６】
図１５から図１７は、複数のカメラ設定値のブレンド制御について説明するための図である。
【０１６７】
図１５は、本実施の形態で行われているカメラ制御を時間軸ｔに従って示すタイムチャートである。本実施の形態では複数のカメラ制御が平行して行われ、各カメラ制御処理によって得られた設定値をブレンドして求めた設定値で、仮想カメラの制御が行われる。４５２は第２のカメラ制御４５０が行われている期間を示し、４６２は第１のカメラ制御４６０が行われている期間を示している。
【０１６８】
第２のカメラ制御４５０は、例えば通常戦闘時の３人称視点モードにおいて、仮想カメラを移動体オブジェクトに追従して移動させるカメラ制御であり、第１のカメラ制御４６０はアイテムカメラ制御である。
【０１６９】
時刻ｆ０から第２のカメラ制御（通常戦闘時の３人称視点モードにおける仮想カメラの制御）４５０が行われており、時刻ｆｎまでは、他のカメラ制御が平行して行われていないので、仮想カメラには、第２のカメラ制御処理によって得られた第２の設定値（位置、向き、画角等）が設定される。
【０１７０】
ここで時刻ｆｎでアイテムに対する所与の操作入力が行われると、第１のカメラ制御が始まる。第１のカメラ制御がｍ秒間行われた後、時刻ｆｎ＋ｍに第１のカメラ制御が終了する。
【０１７１】
時刻ｆｎから時刻ｆｎ＋ｍの間は、第１のカメラ制御４６０と第２のカメラ制御４５０が平行して行われ、第１のカメラ制御処理によって得られた第１の設定値と第２のカメラ制御処理によって得られた第２の設定値が得られるので、これらを合成して時刻ｆｎから時刻ｆｎ＋ｍの間の仮想カメラの設定値を求めてもよい。
【０１７２】
図１６（Ａ）（Ｂ）は、第１の設定値と第２の設定値の合成比率の時間的な変化を示すグラフである。横軸は時間で、縦軸は合成比率を示している。第１のカメラ制御はｍ秒間分の仮想カメラの挙動を定義するデータとして定義されているので、第１のカメラ制御が開始されてからｍ秒後までの合成比率を示すグラフ４９０、４９２となっている。図１６（Ａ）（Ｂ）に示すように、合成比率は時間的に変化する。
【０１７３】
図１６（Ａ）では、時間の経過につれて第１の設定値の割合が０パーセントから１００パーセントまで線形関数にしたがって増加し、図１６（Ｂ）では、時間の経過につれて第１の設定値の割合が０パーセントから１００パーセントまで所与の関数にしたがって増加する。
【０１７４】
いずれも第１のカメラ制御が開始されてからｍ秒後に第１の設定値の割合が最大となっている。この様にすると、時刻ｆｎから時刻ｆｎ＋ｍの期間において、時間の経過につれて第１のカメラ制御の影響が大きくなるカメラ制御を行うことができる。
【０１７５】
図１７は、第１の設定値と第２の設定値の合成の一例について説明するための図である。
【０１７６】
ここでは第２のカメラの制御が、予め用意されたカメラ制御データ及び仮想３次元空間における移動体オブジェクトの配置データ（位置及び向きの少なくとも一方）に基づき行われる場合を例にとり説明する。
【０１７７】
３２０−１は第１のカメラ制御用のカメラ制御データの示す移動体オブジェクト３１０のローカル座標系３００における移動ルートを示しており、３２０−２は第２の仮想カメラ制御用のカメラ制御データの示す移動体オブジェクト３１０のローカル座標系３００における移動ルートを示している。
【０１７８】
３２０−３は、移動ルート３２０−１と移動ルート３２０−２を、ローカル座標系３００において時間的に変化する合成比率で合成したローカル座標系における移動ルートである。時刻ｔiにおけるローカル座標系における合成ルート３２０−３の座標値（LWi、LYi、LZi）（i＝０，１，２，・・ｎ）と移動体オブジェクトのワールド座標系における座標値（WXi、WYi、WZi）（i＝０、１，２，・・ｎ）とを加算することにより、所定の期間（ｔ０〜ｔｎ）のワールド座標系における仮想カメラの座標値を求めることができる。
【０１７９】
この様に第１の設定値と第２の設定値を合成する場合には、第１のカメラ制御によるローカル座標系３００における移動ルート３２０−１と、第２のカメラ制御によるローカル座標系３００におけるルート３２０−２とをローカル座標系３００において合成してから、ワールド座標系の値に変換するようにしてもよい。
【０１８０】
２．１０  移行処理
次に、第１のカメラ制御処理開始前の前記移動体オブジェクトのローカル座標系における仮想カメラの位置からカメラ制御データに規定された前記移動体オブジェクトのローカル座標系における所与の基準位置まで移動させる移行処理について、第１のカメラ制御がアイテムカメラ制御である場合を例にとり説明する。
【０１８１】
図２３は、アイテムカメラ制御（第１のカメラ制御の一例）開始前の記移動体オブジェクトと仮想カメラの配置関係について説明するための図である。時刻ｔ１，ｔ２、ｔ３における、第３のカメラ制御下にある移動体オブジェクトと仮想カメラの位置関係を示している。
【０１８２】
第３のカメラ制御の最中に、アイテムに対する所与の操作入力が行われた場合にアイテムカメラ制御が開始されるとする。第３のカメラ制御は、図２３に示すように、仮想カメラ３４０を移動体オブジェクト３１０に追従させるが、移動体オブジェクト３１０に対する仮想カメラ３４０の相対的な位置や向き（回転）が固定されていないものとする。すなわち移動体オブジェクト３１０のローカル座標系における仮想カメラ３４０の位置や向き（回転）は、移動体オブジェクト３１０のワールド座標系における位置や向き（向き）や速度、又は移動体オブジェクトと他の移動体オブジェクト（例えば移動体オブジェクトのターゲットとなっている敵移動体等）の位置関係や距離等によって変化するものとする。
【０１８３】
この様な場合時刻ｔ１でアイテムに対する所与の操作入力が行われた場合と、時刻ｔ２でアイテムに対する所与の操作入力が行われた場合と、時刻ｔ３でアイテムに対する所与の操作入力が行われた場合とでは、移動体オブジェクトのローカル座標系における仮想カメラの位置、向き（回転）は異なっている。
【０１８４】
図２４は、移行処理について説明するための図である。３２０は、移動体オブジェクト３１０のローカル座標系３００におけるアイテムカメラ制御の仮想カメラの移動ルートを示している。３２２は移動ルート（軌道）３２０の始点であり、所与の基準位置である。再生開始位置の設定制御を行わない場合には、所与の基準位置である始点３２２から移動ルートの再生が開始されるものとする。
【０１８５】
しかし時刻ｔ１でアイテムに対する所与の操作入力が行われた場合には仮想カメラ３４０−１は３４２−１に位置しており、時刻ｔ２でアイテムに対する所与の操作入力が行われた場合には仮想カメラ３４０−２は３４２−２に位置しており、時刻ｔ３でアイテムに対する所与の操作入力が行われた場合には仮想カメラ３４０−３は３４２−３に位置しており、いずれも所与の基準位置とは異なる位置にある。そこで、本実施の形態では、アイテムに対する所与の操作入力が行われる直前の仮想カメラの位置から、所定の基準位置まで、所定時間（ＩＴ）で仮想カメラを移動させる移行処理を行う。
【０１８６】
例えば時刻ｔ１でアイテムに対する所与の操作入力が行われた場合には、時刻ｔ１における仮想カメラのローカル位置（移動体オブジェクトのローカル座標系における位置を意味する）３４２−１から所定の基準位置３２２まで所定の移動ルート３４４−１にしたがって、所定期間（ＩＴ）で移動させ、時刻ｔ２でアイテムに対する所与の操作入力が行われた場合には、時刻ｔ２における仮想カメラのローカル位置３４２−２から所定の基準位置３２２まで所定の移動ルート３４４−２にしたがって、所定期間（ＩＴ）で移動させ、時刻ｔ３でアイテムに対する所与の操作入力が行われた場合には、時刻ｔ３における仮想カメラのローカル位置３４２−３から所定の基準位置３２２まで所定の移動ルート３４４−３にしたがって、所定期間（ＩＴ）で移動させてもよい。
【０１８７】
所定の移動ルート３４４−１，３４４−２、３４４−３は、各時刻ｔ１、ｔ２、ｔ３における仮想カメラのローカル位置と所定の基準位置とを結ぶ線分であり、操作入力時の仮想カメラのローカル位置３４２−１，３４２−２３４２−３に基づきリアルタイムに決定される。当該線分の軌跡が、前記２点を通る所与の関数となるように決定してもよい。なお仮想カメラの画角は移動体オブジェクトが画像内に収まるように決定してもよい。
【０１８８】
このようにすると、アイテムに対する所与の操作入力が行われると所定期間（ＩＴ）で仮想カメラが所定の基準位置まで移動し、その後アイテムカメラ制御の移動ルート３２０に従ってアイテムに近づいていくカメラ演出が行われる。従って仮想カメラ３４０と移動体オブジェクト３１０の相対位置が変化するようなカメラ制御が行われている場合に、アイテムに対する所与の操作入力が行われた場合でもスムーズでシームレスなカメラ演出を行うことができる。
【０１８９】
なおアイテムに対する所与の操作入力が終了した場合には、仮想カメラの状態を、前記所与の操作入力終了時のカメラ制御データの示す状態から、移行処理を行う前の状態まで、逆戻りさせる処理を行ってもよい。例えば時刻ｔ１において所与の操作入力が行われ所与の操作入力終了時の仮想カメラが移動ルート３２０の終点３２４に位置していたとすると、移動ルート３２０に従って始点３２２まで逆戻りし、さらに移動ルート３４４−１に従って時刻ｔ１におけるローカル位置３４２−１まで逆戻りしてもよい。
【０１９０】
図２０は、第１の実施の形態のカメラ制御処理（アイテムカメラのケース）の流れを示すフローチャートである。
【０１９１】
所与のアイテム操作入力を検出すると以下の処理を行う（ステップＳ１０）。まずアイテムに対応する第１のカメラ制御用のカメラ制御データを選択する（ステップＳ２０）。そして選択したカメラ制御データ及び仮想３次元空間における移動体オブジェクトの配置データに基づき、仮想カメラを移動ルートにそってアイテム方向に移動させる処理を行う（ステップＳ３０）。
【０１９２】
アイテムの操作入力の終了を検出した場合には（ステップＳ４０）、仮想カメラの状態を、前記所与の操作入力終了時のカメラ制御データの示す状態から、前記所与の操作入力開始時のカメラ制御データの示す状態まで、逆戻りさせる処理を行う（ステップＳ５０）。
【０１９３】
図２２は、本実施の形態のカメラ制御処理の流れを示すフローチャートである。
【０１９４】
所与のイベント発生前（例えば所与の操作入力が行われる前）は第２のカメラ制御処理を行い第２の設定値をもとめ、第２の設定値と移動体オブジェクトの配置に基づき、仮想カメラを仮想３次元空間に配置する（ステップＳ２１０）。所与のイベントが発生すると（ステップＳ２２０）、第１の仮想カメラ制御期間が終了するまで（ステップＳ２７０）、以下の処理を繰り返す。
【０１９５】
第１のカメラ制御処理と第２のカメラ制御処理を平行して行い（ステップＳ２３０）、第１のカメラ制御開始からの経過時間に基づき、ブレンド比率を求める（ステップＳ２４０）。そして、第１のカメラ制御処理により求めた第１の設定値と第２のカメラ制御処理により求めた第２の設定値とを、求めたブレンド（合成）比率でブレンド（合成）してブレンド設定値を求める（ステップＳ２５０）。そして、ブレンド設定値と、移動体オブジェクトの配置に基づき、仮想カメラを仮想３次元空間に配置する（ステップＳ２６０）。
【０１９６】
３．第２の実施の形態
次に第１のカメラ制御に操作入力をさせる手法について説明する。ここでは第１のカメラ制御が、近接戦闘モード時にプレーヤ移動体をターゲット移動体に追従させる追従制御時のカメラ制御（近接戦闘カメラ制御）である場合を例にとり説明する。
【０１９７】
図１８（Ａ）（Ｂ）は、第１のカメラ制御に操作入力を反映させる例について説明するための図である。
【０１９８】
図１８（Ａ）の３２０−２は、第１のカメラ制御に用いるカメラ制御データで定義された移動体オブジェクト３１０のローカル座標系３００における移動ルートを示している。図１８（Ｂ）は、カメラ制御データの時間軸（ｔ０〜ｔ５）と位置データの対応関係を示す図である。ここでは位置データを例にとり説明するが、向き（回転）や画角についても同様である。カメラ制御データは、時刻ｔ０〜時刻ｔ１〜時刻ｔ２においてルート３２０−２を順方向３９０に移動（位置ｌ０〜位置ｌ１〜位置ｌ２に移動）し、時刻ｔ３〜時刻ｔ４〜時刻ｔ５においてルート３２０−２を逆方向３９２に移動（位置ｌ２〜位置ｌ１〜位置ｌ０に移動）するように定義されている。カメラ制御データは再生開始位置から、再生終了位置までを時間軸に沿って再生することができる。
【０１９９】
ここで第１の再生開始位置ＳＰ１として時刻ｔ０が指定され、第１の再生終了位置ＥＰ１として時刻ｔ２が指定された場合には、仮想カメラはルート３２０−２を順方向３９０に移動（位置ｌ０〜位置ｌ１〜位置ｌ２に移動）するよう制御される。また第２の再生開始位置ＳＰ２として時刻ｔ３が指定され、第２の再生終了位置ＥＰ２として時刻ｔ５が指定された場合には、仮想カメラはルート３２０−２を逆方向３９２に移動（位置ｌ２〜位置ｌ１〜位置ｌ０に移動）するよう制御される。
【０２００】
操作入力に応じて再生開始位置をＳＰ１又はＳＰ２のいずれかに設定するようにしてもよい。例えば加速を示す操作入力が行われた場合には再生開始位置をＳＰ２に設定し、減速を示す操作入力が行われた場合には再生開始位置をＳＰ１に設定するようにしてもよい。この様にすると、加速入力が行われると仮想カメラの位置が移動体オブジェクトに対し相対的に後退し（３９２）、減速入力が行われると、仮想カメラの位置が移動体オブジェクトに対し相対的に前進する（３９０）カメラ演出を行うことができる。
【０２０１】
図１９（Ａ）（Ｂ）は、第１のカメラ制御に操作入力を反映させる他の例について説明するための図である。図１９（Ａ）の３２０’−２は、第１のカメラ制御に用いるカメラ制御データの示す移動体オブジェクト３１０のローカル座標系３００における移動ルートを示している。
【０２０２】
図１９（Ｂ）は、図１８（Ｂ）と同様に、カメラ制御データの時間軸と位置データの対応関係を示す図である。
【０２０３】
入力された移動方向に応じて再生開始位置を設定するようにしてもよい。例えば右方向（Ｘ軸＋方向）への移動を指示する操作入力が行われた場合には再生開始位置をＳＰ２に設定し、左方向（Ｘ軸−方向）を示す操作入力が行われた場合には再生開始位置をＳＰ２に設定するようにしてもよい。この様にすると、右方向入力が行われると仮想カメラの位置が移動体オブジェクトに対し相対的に左方向に移動し（３９２’）、左方向入力が行われると、仮想カメラの位置が移動体オブジェクトに対し相対的に右方向に移動する（３９０’）カメラ演出を行うことができる。
【０２０４】
図１８（Ａ）（Ｂ）や図１９（Ａ）（Ｂ）で説明したように、操作入力を再生開始位置に反映させることで、操作入力に応じてカメラワークが変化する躍動感のあるカメラ演出を行うことができる。
【０２０５】
図２１は、第２の実施の形態のカメラ制御処理（近接戦闘カメラ制御のケース）の流れを示すフローチャートである。
【０２０６】
加速入力を検出すると（ステップＳ１１０）、再生開始位置をＳＰ２、再生終了位置をＥＰ２に設定する（ステップＳ１２０）。また減速入力を検出すると（ステップＳ１３０）、再生開始位置をＳＰ１、再生終了位置をＥＰ２に設定する（ステップＳ１４０）。
【０２０７】
そして設定された再生開始位置から再生終了位置までの区間でカメラ制御データ及び仮想３次元空間における移動体オブジェクトの配置データに基づき、再生開始位置から再生終了位置まで、移動ルートに従って仮想カメラを移動させる処理を行う（ステップＳ１５０）。
【０２０８】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０２０９】
上記実施の形態では、カメラ制御データの位置を例に取り説明したがそれに限られない。回転や画角についても同様の制御を行うことができる。
【０２１０】
また上記実施の形態において、カメラ制御データの再生により仮想カメラを制御する場合に、再生時間に応じて演出を変化させるようにしてもよい。
【０２１１】
また仮想カメラの移動に応じて、サウンド(BGMまたは効果音を変化させてもよい。例えば、仮想カメラが機銃（アイテム）に近づくほど、弾の発射音のボリュームを上げるようにしてもよい。
【０２１２】
また機銃（アイテム）位置付近に仮想カメラが移動した場合に敵機を破壊することができると、通常と異なるエフェクトを表示してもよい。この様な場合には仮想カメラと敵との位置関係が近くなることから、強いインパクトを与えることができる。例えば敵機のエンジンオイルをかぶるような、黒いエフェクトをカメラ画角に入るよう配置してもよい。
【０２１３】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、携帯型ゲームシステム、ゲーム画像を生成するシステムボード等の種々のゲームシステムに適用できる。
【符号の説明】
【０２１４】
１０  本体装置、２０  入力装置、１００  処理部、１１０  オブジェクト空間設定部、１１２  ゲーム演算部、１１４  表示制御部、１１５  仮想カメラ制御部、１１６  第１のカメラ制御部、１１７  第２のカメラ制御部、１２０  描画部、１３０  音制御部、１４０  振動制御部、１５０  移動・動作処理部、１５２  移動体オブジェクト制御部、１７０  記憶部、１７２  主記憶部、１７４  描画バッファ、１８０  情報記憶媒体、１９０  表示部、１９２  スピーカー、１９６  通信部、１９８  光源、２１０  加速度センサ、２２０  撮像部、２２２  赤外線フィルタ、２２４  レンズ、２２６  撮像素子、２２８  画像処理回路、２３０  スピーカー、２４０  振動部、２５０  マイコン、２６０  通信部、２７０  操作部
【図１】
2011258150.tif 000003
【図２】
2011258150.tif 000004
【図４】
2011258150.tif 000005
【図５】
2011258150.tif 000006
【図６】
2011258150.tif 000007
【図７】
2011258150.tif 000008
【図８】
2011258150.tif 000009
【図９】
2011258150.tif 000010
【図１０】
2011258150.tif 000011
【図１１】
2011258150.tif 000012
【図１２】
2011258150.tif 000013
【図１３】
2011258150.tif 000014
【図１４】
2011258150.tif 000015
【図１５】
2011258150.tif 000016
【図１６】
2011258150.tif 000017
【図１７】
2011258150.tif 000018
【図１８】
2011258150.tif 000019
【図１９】
2011258150.tif 000020
【図２０】
2011258150.tif 000021
【図２１】
2011258150.tif 000022
【図２２】
2011258150.tif 000023
【図２３】
2011258150.tif 000024
【図２４】
2011258150.tif 000025
【図３】
2011258150.tif 000026