説明

プログラム、情報記憶媒体及び画像生成システム

【課題】カメラの移動ルートとオブジェクトの交差判定等の複雑な制御を行うことなしに、効果的なカメラ演出を提供すること。
【解決手段】本プログラムは、操作入力に基づき、仮想3次元空間における移動体オブジェクトの移動の制御を行う移動体オブジェクト制御部と、仮想カメラの設定の制御を行う仮想カメラ制御部と、仮想3次元空間を仮想カメラから見た画像を生成する画像生成部と、してコンピュータを機能させ、前記仮想カメラ制御部は、仮想カメラの移動ルートが移動体オブジェクトに対する仮想カメラの相対的な配置の遷移として定義されたカメラ制御データ、及び仮想3次元空間における移動体オブジェクトの配置に基づき第1のカメラ制御処理を行う第1のカメラ制御部を含み、第1のカメラ制御処理によって得られた第1の設定値に基づき仮想カメラを仮想3次元空間に配置することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【0002】
従来から、プレーヤが入力操作を行いオブジェクト空間における機体(自機)を移動させて、敵の機体(敵機)を射撃するフライトシューティングゲームが人気が高い。
【0003】
かかるフライトシューティングゲーム等においては1人称視点、3人称視点を切り替えることが可能である。また、所定のイベント等が発生すると、仮想カメラが通常のカメラ位置から、別のカメラ位置に切り替えられて様々なアングルで迫力のある戦闘シーンを楽しむことのできるものもある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第4144017号公報
【特許文献2】特許第2687987号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし単にカメラ位置を切り替えるだけでは、単調なカメラ演出となってしまう。
【0006】
本願発明者は、さらに面白みのあるカメラ演出を行うための工夫として、効果的なルートで仮想カメラを移動させて所定のイベント位置に仮想カメラを近づけていく等の迫力あるカメラ演出を行うことが可能なシステムの開発を行っている。
【0007】
自機が移動しているような状態で仮想カメラのカメラを移動させる場合には、移動体オブジェクトと交差しないように仮想カメラを移動させないと、仮想カメラが移動体オブジェクトに埋まってしまい、不適切な画像が生成されてしまうという可能性がある。これではせっかくのカメラ演出が台無しとなり、プレーヤを興ざめさせてしまうこととなるが、かかる事態を避けるために移動体オブジェクトと仮想カメラの交差判定をおこなうと、処理負荷が大きくなってしまうという問題点があった。
【0008】
本発明は、かかる課題に鑑みたものである。本発明の幾つかの態様によれば、カメラの移動ルートとオブジェクトの交差判定等の複雑な制御を行うことなしに、効果的なカメラ演出を提供することができるプログラム、情報記憶媒体及び画像生成システムを提供することができる。
【課題を解決するための手段】
【0009】
(1)本発明は、
移動体オブジェクトが存在する仮想3次元空間を仮想カメラから見た画像を生成するためのプログラムであって、
操作入力に基づき、仮想3次元空間における移動体オブジェクトの移動の制御を行う移動体オブジェクト制御部と、
仮想カメラの設定の制御を行う仮想カメラ制御部と、
仮想3次元空間を仮想カメラから見た画像を生成する画像生成部と、してコンピュータを機能させ、
前記仮想カメラ制御部は、
仮想カメラの移動ルートが移動体オブジェクトに対する仮想カメラの相対的な配置の遷移として定義されたカメラ制御データ、及び仮想3次元空間における移動体オブジェクトの配置に基づき第1のカメラ制御処理を行う第1のカメラ制御部を含み、
第1のカメラ制御処理によって得られた第1の設定値に基づき仮想カメラを仮想3次元空間に配置することを特徴とするプログラムに関する。
【0010】
また本発明は上記各部を含む画像生成システムに関する。また本発明はコンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関する。
【0011】
移動体オブジェクトはプレーヤ移動体でもよいし、NPCの移動体でもよい。仮想カメラに対するカメラ制御とは、仮想カメラの位置、向き、移動方向、移動速度、画角等の設定や制御を含む。
【0012】
カメラ制御データは、少なくとも仮想カメラの位置に関する情報を含む。それ以外にも仮想カメラの向き(回転)や画角に関する情報を含んでもよい。
【0013】
第1のカメラ制御の発動条件は、所与のイベントの発生でもよい。また第1のカメラ制御の終了条件は、所与のイベントが発動してから所定時間後でもよいし、所与の終了イベントが発生した場合でもよい。
【0014】
例えば移動体オブジェクトのローカル座標系で定義されたカメラ制御データ(ローカル座標系における位置及び向き)と移動体オブジェクトのワールド座標系における配置情報(位置及び向き情報)に基づき、ワールド座標系における仮想カメラの位置(及び向き)情報を求めることができる。
【0015】
一般に、仮想カメラを動かす場合には、移動体オブジェクトと交差しないように移動させないと仮想カメラが移動体オブジェクトに埋まってしまう不具合が生じることがある。しかし本発明によれば移動体オブジェクトに対する相対的な位置(移動体オブジェクトのローカル座標系の位置)で定義された移動ルートにしたがって仮想カメラを移動させることができる、カメラ位置と移動体オブジェクトの交差判定等の複雑な制御を行うことなしにカメラ演出を行うことができる。
【0016】
(2)このプログラム、情報記憶媒体、画像生成システムにおいて、
前記カメラ制御データは、前記移動体オブジェクトのローカル座標系における所与の基準位置と、移動体オブジェクトに付随したアイテムに対応して設定された目標位置を結ぶ軌道の移動ルートを定義するデータを含み、
前記第1のカメラ制御部は、
移動体オブジェクトに付随したアイテムに対する所与の操作入力が行われた場合に、
仮想カメラを前記移動ルートで前記目標位置に移動させる処理を行ってもよい。
【0017】
所与の操作入力が行われることは第1のカメラ制御が行われることの必要条件ではあるが、十分条件ではない。たとえば所与の操作入力が行われ、かつ移動体オブジェクト、又はアイテム操作の対象となる他の移動体オブジェクトの所定のパラメータが所定の条件を満たした場合に、第1のカメラ制御が行われるようにしてもよい。
【0018】
アイテムは移動体オブジェクトに付随して移動するものであり、例えば移動体オブジェクトに備え付けられた機銃でもよいし、移動体オブジェクトが持っている剣やボール等でもよい。
【0019】
アイテムに対する所与の操作入力とは、アイテムを用いて攻撃を行う操作入力でもよいし、アイテムを投げたり蹴ったり等のアイテムに対して動作を加える操作入力でもよい。アイテムは、常に移動体オブジェクトに付随している場合に限られない。例えば所与の操作入力前は、移動体オブジェクトに付随しているが、所与の操作入力後は、移動体オブジェクトと分離して移動する場合でもよい。
【0020】
カメラ制御データは、例えば移動体オブジェクトのローカル座標系における仮想カメラの位置座標や、向き(回転)や画角等の情報を含んでもよい。位置座標は移動ルートとなる軌道上の座標でもよい。また向きは、アイテムを視線方向にとらえる方向に定義されていてもよい。なお上記以外の他のパラメータ(被写界深度等)もカメラ制御データに含めて定義してもよい。
【0021】
移動ルートとなる軌道は、移動体オブジェクトと交差しないように設定されていることが好ましい。
【0022】
(3)このプログラム、情報記憶媒体、画像生成システムにおいて、
前記所与の操作入力の開始タイミングに基づき、前記第1のカメラ制御処理を開始し、前記所与の操作入力の終了タイミングに基づき、前記第1のカメラの制御処理を終了してもよい。
【0023】
カメラ制御データは、仮想カメラの軌道を示す所定時間分のデータ(位置、向き、画角等のデータ)が時系列に定義されており、この軌道の始点から終点までのデータを時系列に再生することにより、定義されている仮想カメラの軌道を再現するようにしてもよい。ここにおいて、開始タイミングに始点から再生を開始して、終了タイミングにおいて、再生を終了してもよい。例えば終了タイミングが、軌跡の終点より前で発生した場合にはその時点で終了し、終了タイミングが軌道の終点にきた時点で発生していない場合には、終了タイミングがくるまで、軌道の終点で定義されているデータを継続して用いてもよい。
【0024】
(4)このプログラム、情報記憶媒体、画像生成システムにおいて、
前記所与の操作入力が終了した場合には、仮想カメラの状態を、前記所与の操作入力終了時のカメラ制御データの示す状態から、前記所与の操作入力開始時のカメラ制御データの示す状態まで、逆戻りさせる処理を行ってもよい。
【0025】
例えばカメラ制御データが、仮想カメラの軌跡を示す所定時間分のデータ(位置、向き、画角等のデータ)が時系列に定義されている場合、操作入力終了時の軌道上の位置を、戻り制御の再生開始位置として、時間軸とは逆方向に再生開始位置から軌道の始点までのカメラ制御データを再生することにより、操作入力開始時点の仮想カメラ位置に戻す仮想カメラ制御を行うようにしてもよい。
【0026】
(5)このプログラム、情報記憶媒体、画像生成システムにおいて、
前記カメラ制御データは、前記アイテムに対して軌道の異なる複数の移動ルートに対応したデータを含み、
前記第1のカメラ制御部は、
前記移動体オブジェクトの位置又は向き又は所定のゲームパラメータの値に基づき、いずれかの移動ルートに対応したカメラ制御データを選択して、選択したカメラ制御データを用いて第1のカメラ制御処理を行ってもよい。
【0027】
前記移動体オブジェクトの高度が低い場合や、障害物の多いエリアにいる場合には、移動体オブジェクトから所定範囲内に移動ルートが設定されているカメラ制御データを選択するようにしてもよい。
【0028】
(6)このプログラム、情報記憶媒体、画像生成システムにおいて、
前記移動ルート上の所与の点を再生開始位置及び再生終了位置の少なくとも1つとして設定し、設定された再生開始位置及び再生終了位置の少なくとも1つによって特定される移動区間において、仮想カメラを移動させる処理を行ってもよい。
【0029】
移動ルート上の位置とセットで向き(回転)や画角を定義してもよい。この様にすると移動ルートに適した向きや画角で仮想カメラを配置することができる。
【0030】
例えば入力操作の内容に応じて再生開始位置や再生終了位置を設定してもよい。
【0031】
(7)このプログラム、情報記憶媒体、画像生成システムにおいて、
前記移動ルートの移動方向を順方向または逆方向のいずれかに設定し、仮想カメラを前記移動ルートにおいて設定された移動方向に移動させる処理を行ってもよい。
【0032】
(8)このプログラム、情報記憶媒体、画像生成システムにおいて、
前記第1のカメラ制御部は、
前記移動体オブジェクトと他の移動体オブジェクトとの距離、位置関係、操作入力及び所与のパラメータの少なくとも1つに基づき開始位置を再設定して、仮想カメラを移動経路上で移動させる制御を行ってもよい。
【0033】
ここにおいて他の移動体オブジェクトとは、例えば当該移動体オブジェクトの追従目標である第2の移動体オブジェクトでもよい。操作入力とは、移動方向に関する操作入力でもよいし、加速や減速を指示する操作入力でもよいし、その他の操作入力でもよい。
【0034】
また例えばt0からt1の間は軌道を順方向に移動するデータを設定し、t1〜t2の間は軌道を逆方向に移動するデータを設定しておき、操作入力の内容に基づき再生開始位置をt0又はt1と変化させることにより、カメラ制御データによるカメラ制御に操作入力を反映させることができる。
【0035】
(9)このプログラム、情報記憶媒体、画像生成システムにおいて、
入力情報に基づき、操作対象となるアイテムの移動体オブジェクトに対する相対位置をリアルタイムに演算し、演算した相対位置に基づき、カメラ制御データの選択又は移動ルートの再生終了位置の変更を行ってもよい。
【0036】
例えば移動体オブジェクトが複数の関節を含みモーション制御が行われる場合には、移動体オブジェクトの代表点(位置座標が与えられる点)に対するアイテムの相対位置は可変である。この様な場合モーションデータに基づき操作対象となるアイテムの移動体オブジェクトに対する相対位置をリアルタイムに演算してもよい。
【0037】
(10)このプログラム、情報記憶媒体、画像生成システムにおいて、
前記仮想カメラ制御部は、
第1のカメラ制御処理開始前に行っていた仮想カメラに対する第2のカメラ制御処理を、第1のカメラ制御処理開始後も継続して行う第2のカメラ制御部をさらに含み、
第1のカメラ制御処理開始後は、第1のカメラ制御処理によって得られた第1の設定値と第2のカメラ制御処理によって得られた第2の設定値を合成して、合成した設定値に基づき仮想カメラを仮想3次元空間に配置してもよい。
【0038】
(11)このプログラム、情報記憶媒体、画像生成システムにおいて、
前記仮想カメラ制御部は、
時間の経過に従って合成比率を変化させて第1の設定値と第2の設定値を合成してもよい。
【0039】
合成比率は線形に変化させてもよいし、所与の関数に従って変化させてもよい。
【0040】
時間の経過に従って、第1のカメラ設定値の割合が大きくなるようにしてもよい。この様にすると、時刻fnから時刻fn+mの期間において、時間の経過につれて第1のカメラ制御の影響が高くなるカメラ制御を行うことができる。
【0041】
(12)このプログラム、情報記憶媒体、画像生成システムにおいて、
前記第2のカメラ制御部は、
移動体オブジェクトに対する仮想カメラの相対的な配置の遷移として定義されたカメラ制御データ及び仮想3次元空間における移動体オブジェクトの配置に基づき第2のカメラ制御処理を行ってもよい。
【0042】
(13)このプログラム、情報記憶媒体、画像生成システムにおいて、
前記仮想カメラ制御部は、
第1のカメラ制御処理開始前の前記移動体オブジェクトのローカル座標系における仮想カメラの位置から前記カメラ制御データに規定された前記移動体オブジェクトのローカル座標系における所与の基準位置まで移動させる移行処理を行ってもよい。
【0043】
例えば前記所与の操作入力が終了した場合には、仮想カメラの状態を、前記所与の操作入力終了時のカメラ制御データの示す状態から、移行処理を行う前の状態まで、逆戻りさせる処理を行ってもよい。
【0044】
(14)このプログラム、情報記憶媒体、画像生成システムにおいて、
前記第1のカメラ制御部は、
移動体オブジェクトに付随した複数のアイテムに対する所与の操作入力が行われた場合に、1のアイテムを選択する処理を行い、選択したアイテムに対応するカメラ制御データに基づき第1のカメラ制御処理を行ってもよい。
【0045】
ランダムに選択してもよいし、所定の条件を満たすアイテムを選択してもよい。
【図面の簡単な説明】
【0046】
【図1】本実施形態のゲームシステムの機能ブロック図の例。
【図2】3人称視点モードの画像の一例を示す図。
【図3】アイテムカメラ制御が行われている場合の画像の一例を示す図。
【図4】カメラ制御データの一例を示す図。
【図5】カメラ制御データの一例を示す図。
【図6】ワールド座標系における仮想カメラの配置を求める手法について説明するための図。
【図7】アイテムカメラ制御によって生成される画像に対応するカメラ位置を説明するための図。
【図8】図8(A)〜(C)は、アイテムカメラ制御によって生成される画像例を説明するための図。
【図9】図9(A)(B)は仮想カメラの移動軌跡について説明するための図。
【図10】図10(A)(B)は仮想カメラの移動軌跡について説明するための図。
【図11】1つのアイテムに対応して複数の移動ルートが設定されている例を示す図。
【図12】1つの移動体オブジェクトに複数のアイテムが付属している場合のルートの設定例を示す図。
【図13】図13(A)(B)は、カメラ制御データの再生開始位置、終了位置の設定について説明するための図。
【図14】複数のパーツオブジェクトが関節で接続された移動体オブジェクトに付随するアイテムに対応して設定される移動ルートについて説明するための図。
【図15】複数のカメラ設定値のブレンド制御について説明するための図。
【図16】複数のカメラ設定値のブレンド制御について説明するための図。
【図17】複数のカメラ設定値のブレンド制御について説明するための図。
【図18】図18(A)(B)は、第1のカメラ制御に操作入力を反映させる例について説明するための図。
【図19】図19(A)(B)は、第1のカメラ制御に操作入力を反映させる他の例について説明するための図。
【図20】第1の実施の形態のカメラ制御処理の流れを示すフローチャート。
【図21】第2の実施の形態のカメラ制御処理の流れを示すフローチャート。
【図22】本実施の形態のカメラ制御処理の流れを示すフローチャート。
【図23】移行処理について説明するための図。
【図24】移行処理について説明するための図。
【発明を実施するための形態】
【0047】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0048】
1.構成
図1は、本実施形態のゲームシステムの機能ブロック図の一例である。なお本実施形態のゲームシステムでは、図1の各部を全て含む必要はなく、その一部を省略した構成としてもよい。
【0049】
本実施形態のゲームシステムは、本体装置10と、入力装置20と、情報記憶媒体180、表示部(表示装置)190、スピーカー192、光源198とからなる。
【0050】
入力装置20は、加速度センサ210、撮像部220、スピーカー230、振動部240、マイコン250、通信部260、操作部270によって構成される。
【0051】
加速度センサ210は、3軸(X軸、Y軸、Z軸)の加速度を検出する。すなわち、加速度センサ210は、上下方向、左右方向、及び、前後方向の加速度を検出することができる。なお、加速度センサ210は、5msec毎に加速度を検出し、加速度センサ210から検出された加速度は、通信部260によって本体装置10に送信される。なお、加速度センサ210は、1軸、2軸、6軸の加速度を検出するものであってもよい。
【0052】
撮像部220は、赤外線フィルタ222、レンズ224、撮像素子(イメージセンサ)226、画像処理回路228を含む。赤外線フィルタ222は、入力装置20の前方に配置され、表示部190に関連付けられて配置されている光源198から入射する光から赤外線のみを通過させる。レンズ224は、赤外線フィルタ222を透過した赤外線を集光して撮像素子226へ出射する。撮像素子226は、例えば、CMOSセンサやCCDのような固体撮像素子であり、レンズ224が集光した赤外線を撮像して撮像画像を生成する。撮像素子226で生成された撮像画像は、画像処理回路228で処理される。例えば、撮像素子226から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報(特定位置)を検出する。なお、光源が複数存在する場合には、撮像画像上の位置情報を複数検出する。また、複数の光源を利用して撮像画像上の位置情報を複数検出し、検出された位置情報の基準軸からの回転角度(傾き)を求め、光源に対する入力装置20自体の傾きを求めてもよい。なお、検出した撮像画像上の位置情報は、通信部260によって、本体装置10に送信される。
【0053】
スピーカー230は、本体装置10から通信部260を介して取得した音を出力する。
【0054】
振動部(バイブレータ)240は、本体装置10から送信された振動信号を受信して、振動信号に基づいて作動する。
【0055】
マイコン(マイクロコンピュータ)250は、操作部270が出力した入力信号、加速度センサ210が検出した加速度を通信部260を介して本体装置10に送信させる処理を行ったり、撮像部220によって検出された位置情報を、通信部260を介して本体装置10に送信させる処理を行う。また、受信した本体装置10からのデータに応じて、音を出力する制御や、バイブレータを作動させる制御を行う。
【0056】
通信部260は、アンテナ、無線モジュールを含み、例えばBluetooth(ブルートゥース;登録商標)の技術を用いて、本体装置10とデータを無線で送信受信する。なお、本実施形態の通信部260は、加速度センサ210によって検出された加速度や撮像部220において検出した位置情報等を、4msec、6msecの交互の間隔で本体装置10に送信している。なお、通信部260は、本体装置10と通信ケーブルで接続し、当該通信ケーブルを介して情報の送受信を行うようにしてもよい。
【0057】
操作部270は、方向キー(十字キー)、ボタン(Aボタン、Bボタンなど)、方向入力可能なコントロールスティック(アナログキー)などの操作子であり、プレーヤからの入力操作によって入力信号を出力する処理を行う。なお、操作信号は、通信部260を介して本体装置10に送信される。
【0058】
なお、入力装置20は、プレーヤの入力動作によって変化する角速度を検出するジャイロセンサを備えていてもよい。
【0059】
また、入力装置20は、加圧センサを備えていてもよい。加圧センサは、プレーヤの入力動作によって発生する圧力を検出する。例えば、プレーヤの体重や、プレーヤが力を加えることによる圧力を検出することができる。また、入力装置20に加圧センサを複数備えることによって、複数の圧力センサそれぞれの圧力値を検出してもよい。
【0060】
本実施形態の入力装置20は、入力装置20と一体化されている本体装置10(ゲーム装置、携帯型ゲーム装置)、携帯電話なども含まれる。
【0061】
次に、本実施形態の本体装置10について説明する。本実施形態の本体装置10は、記憶部170、処理部100、通信部196によって構成される。
【0062】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などのハードウェアにより実現できる。
【0063】
特に、本実施形態の記憶部170は、主記憶部172、描画バッファ174を含む。主記憶部172は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などのハードウェアにより実現できる。また、描画バッファ174は、描画部120において生成された画像を記憶する。
【0064】
そして処理部100は、この情報記憶媒体180に格納されるプログラム(データ)から読み出されたデータに基づいて本実施形態の種々の処理を行う。即ち、情報記録媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。なお情報記憶媒体180は、メモリカードに、プレーヤの個人データやゲームのセーブデータなどを記憶するものも含む。
【0065】
通信部196は、ネットワーク(インターネット)を介して他の本体装置10(ゲーム装置)と通信することができる。その機能は、各種プロセッサ又は通信用ASIC、ネットワーク・インタフェース・カードなどのハードウェアや、プログラムなどにより実現できる。また、通信部196は、有線、無線いずれの通信も行うことができる。
【0066】
また、通信部196は、アンテナ、無線モジュールを含み、Bluetooth(ブルートゥース;登録商標)の技術を用いて、入力装置20の通信部260を介して、入力装置20とデータを送受信する。例えば、通信部196は、音データ、及び、振動信号を、入力装置20に送信し、入力装置20において、操作部270が出力した入力信号、加速度センサ210が検出した加速度、撮像部220によって検出された情報を、4msec、6msecの交互の間隔で受信する。
【0067】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバが有する、記憶部、情報記憶媒体からネットワークを介して情報記憶媒体180(または、記憶部170)に配信するようにしてもよい。このようなサーバの情報記憶媒体の使用も本発明の範囲に含まれる。
【0068】
処理部100(プロセッサ)は、入力装置20から受信した情報や情報記憶媒体180から記憶部170に展開されたプログラム等に基づいて、ゲーム演算処理、画像生成処理、或いは音制御の処理を行う。
【0069】
特に本実施形態の処理部100は、オブジェクト空間設定部110、移動・動作処理部150、ゲーム演算部112、表示制御部114、仮想カメラ制御部115、描画部120、音制御部130、振動制御部140とを含む。
【0070】
オブジェクト空間設定部110は、オブジェクト(移動体、ターゲット、自機、敵機、弾)の他に、キャラクタ、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義であり、例えば、ワールド座標系でのX、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0071】
移動・動作処理部150は、オブジェクトの移動・動作演算を行う。すなわち入力装置20によりプレーヤが入力した入力情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求める処理を行う。なおフレームは、オブジェクトの移動・動作処理や画像生成処理を行う時間の単位である。
【0072】
ゲーム演算部112は、種々のゲーム演算処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲームステージ毎のクリア条件を満たすか否かを判定する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などを行う。
【0073】
特に、本実施形態のゲーム演算部112は、プレーヤからの射撃用の入力情報に基づいて移動体から弾を発射させ、発射させた弾がターゲットに命中したか否かを判断し、判断結果に基づきゲーム演算を行う。本実施形態では、射撃用の入力情報は、操作部270の第2の入力信号(例えば、Bボタンによる入力信号)としている。なお、命中したか否かの判断処理は、予め定められた弾のヒット領域と、予め定められたターゲットのヒット領域とのヒットチェックを行うことによって、命中したか否かを判断している。
【0074】
表示制御部114は、視界画像を表示させると共に、視界画像とは異なる表示領域に、移動体の位置、エリアの関係を簡略化して示した画像(レーダーマップ)を表示させる処理を行う。
【0075】
仮想カメラ制御部115は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、ワールド座標系における仮想カメラの位置(X、Y、Z)又は回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。
【0076】
特に本実施形態の仮想カメラ制御部115は、移動体の移動ルートに基づいて、仮想カメラの位置、向き、画角の少なくとも1つを制御する処理を行う。
【0077】
仮想カメラ制御部115は、仮想カメラの移動ルートが移動体オブジェクトに対する仮想カメラの相対的な配置の遷移として定義されたカメラ制御データ、及び仮想3次元空間における移動体オブジェクトの配置に基づき第1のカメラ制御処理を行う第1のカメラ制御部116を含み、第1のカメラ制御処理によって得られた第1の設定値に基づき仮想カメラを仮想3次元空間に配置する処理を行う。
【0078】
またカメラ制御データは、前記移動体オブジェクトのローカル座標系における所与の基準位置と、移動体オブジェクトに付随したアイテムに対応して設定された目標位置を結ぶ軌道の移動ルートを定義するデータを含み、第1のカメラ制御部116は、移動体オブジェクトに付随したアイテムに対する所与の操作入力が行われた場合に、仮想カメラを前記移動ルートで前記目標位置に移動させる処理を行ってもよい。
【0079】
また第1のカメラ制御部116は、前記所与の操作入力の開始タイミングに基づき、前記第1のカメラ制御処理を開始し、前記所与の操作入力の終了タイミングに基づき、前記第1のカメラの制御処理を終了してもよい。
【0080】
また第1のカメラ制御部116は、前記所与の操作入力が終了した場合には、仮想カメラの状態を、前記所与の操作入力終了時のカメラ制御データの示す状態から、前記所与の操作入力開始時のカメラ制御データの示す状態まで、逆戻りさせる処理を行ってもよい。
【0081】
またカメラ制御データは、前記アイテムに対して軌道の異なる複数の移動ルートに対応したデータを含み、第1のカメラ制御部116は、前記移動体オブジェクトの位置又は向き又は所定のゲームパラメータの値に基づき、いずれかの移動ルートに対応したカメラ制御データを選択して、選択したカメラ制御データを用いて第1のカメラ制御処理を行ってもよい。
【0082】
また第1のカメラ制御部116は、前記移動ルート上の所与の点を再生開始位置及び再生終了位置の少なくとも1つとして設定し、設定された再生開始位置及び再生終了位置の少なくとも1つによって特定される移動区間において、仮想カメラを移動させる処理を行ってもよい。
【0083】
また前記第1のカメラ制御部116は、前記移動ルートの移動方向を順方向または逆方向のいずれかに設定し、仮想カメラを前記移動ルートにおいて設定された移動方向に移動させる処理を行ってもよい。
【0084】
また第1のカメラ制御部116は、前記移動体オブジェクトと他の移動体オブジェクトとの距離、位置関係、操作入力及び所与のパラメータの少なくとも1つに基づき開始位置を再設定して、仮想カメラを移動経路上で移動させる制御を行ってもよい。
【0085】
また第1のカメラ制御部116は、入力情報に基づき、操作対象となるアイテムの移動体オブジェクトに対する相対位置をリアルタイムに演算し、演算した相対位置に基づき、カメラ制御データの選択又は移動ルートの再生終了位置の変更を行ってもよい。
【0086】
仮想カメラ制御部115は、第1のカメラ制御処理開始前に行っていた仮想カメラに対する第2のカメラ制御処理を、第1のカメラ制御処理開始後も継続して行う第2のカメラ制御部117をさらに含み、第1のカメラ制御処理開始後は、第1のカメラ制御処理116によって得られた第1の設定値と第2のカメラ制御処理によって得られた第2の設定値を合成して、合成した設定値に基づき仮想カメラを仮想3次元空間に配置するようにしてもよい。
【0087】
前記仮想カメラ制御部115は、時間の経過に従って合成比率を変化させて第1の設定値と第2の設定値を合成してもよい。
【0088】
また第2のカメラ制御部117は、移動体オブジェクトに対する仮想カメラの相対的な配置の遷移として定義されたカメラ制御データ及び仮想3次元空間における移動体オブジェクトの配置に基づき第2のカメラ制御処理を行ってもよい。
【0089】
また仮想カメラ制御部115は、第1のカメラ制御処理開始前の前記移動体オブジェクトのローカル座標系における仮想カメラの位置から前記カメラ制御データに規定された前記移動体オブジェクトのローカル座標系における所与の基準位置まで移動させる移行処理を行ってもよい。
【0090】
また第1のカメラ制御部116は、移動体オブジェクトに付随した複数のアイテムに対する所与の操作入力が行われた場合に、1のアイテムを選択する処理を行い、選択したアイテムに対応するカメラ制御データに基づき第1のカメラ制御処理を行ってもよい。
【0091】
描画部120は、処理部100で行われる種々の処理(ゲーム演算処理)の結果に基づいて描画処理を行い、これにより画像(視界画像、レーダーマップなど)を生成し、表示部190に出力する。
【0092】
いわゆる3次元ゲーム画像を生成する場合には、まず表示物(オブジェクト、モデル)を定義する各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含む表示物データ(オブジェクトデータ、モデルデータ)が入力され、入力された表示物データに含まれる頂点データに基づいて、頂点処理が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。頂点処理では、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、表示物を構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(フラグメント処理)が行われる。ピクセル処理では、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内に設定された仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように画像を生成することができる。
【0093】
なお描画部120が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0094】
そして描画部120は、表示物を描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0095】
ジオメトリ処理では、表示物に関して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)の表示物データ(表示物の頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、主記憶部172に保存される。
【0096】
テクスチャマッピングは、記憶部170に記憶されるテクスチャ(テクセル値)を表示物にマッピングするための処理である。具体的には、表示物の頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャを表示物にマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0097】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0098】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより2つの色を合成した色を求める処理を行う。
【0099】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えばRGBの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0100】
音制御部130は、処理部100で行われる種々の処理(ゲーム演算処理等)の結果に基づいて記憶部170に記憶されている音を、入力装置20のスピーカー230及びスピーカー192の少なくとも一方から出力させる処理を行う。
【0101】
振動制御部140は、処理部100で行われる種々の処理(ゲーム演算処理等)の結果に基づいて、通信部196、通信部260を介して、入力装置20の振動部240を振動させる処理を行う。
【0102】
なお、本実施形態のゲームシステムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0103】
また複数のプレーヤがプレイする場合に、複数のプレーヤそれぞれの入力装置20から送信された情報(加速度センサ210が検出した加速度、操作部270が出力した入力信号等)に基づいて、1つの本体装置10がゲーム演算、画像生成処理を行い、生成した画像を表示部に表示させるように制御してもよい。
【0104】
また、複数のプレーヤそれぞれの本体装置10がネットワーク(伝送ライン、通信回線)を介して接続され、複数の本体装置10それぞれが、入力装置20から送信された情報に基づいて、ゲーム演算、画像生成処理を行い、生成した画像を表示部に表示させるように制御してもよい。
【0105】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。
【0106】
表示部190は、処理部100により生成された画像を出力するものであり、その機能は、CRTディスプレイ、LCD(液晶ディスプレイ)、OELD有機ELディスプレイ、PDP(プラズマディスプレイパネル)、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
【0107】
スピーカー192は、音制御部130により再生する音を出力するものであり、その機能は、スピーカー、或いはヘッドフォンなどのハードウェアにより実現できる。なお、スピーカー192は、表示部に備えられたスピーカーとしてもよい。例えば、テレビ(家庭用テレビジョン受像機)を表示部としている場合には、テレビのスピーカーとすることができる。
【0108】
光源198は、例えばLEDであり、表示部190に関連付けられて配置される。なお、本実施形態は、複数の光源(光源Rと光源L)とを備え、光源Rと光源Lとの距離は所定間隔を有するように設置されている。
【0109】
2.第1の実施の形態
2.1 アイテムカメラ制御(第1のカメラ制御の一例)
ここでは、フライトシューティングゲームにおいて、プレーヤ移動体(移動体オブジェクトの一例)の機銃(移動体オブジェクトに付随したアイテムの一例)を操作する場合に行うアイテムカメラ制御(第1のカメラ制御の一例)を例にとり説明する。
【0110】
本実施の形態のフライトシューティングゲームでは、プレーヤからの入力情報に基づいてプレーヤ移動体(例えば戦闘機等)が仮想3次元空間(オブジェクト空間)を動き回り、プレーヤ移動体に装備された機関銃(機関砲)などを用いて、仮想3次元空間を動き回るターゲット移動体(例えば敵の戦闘機等)を攻撃(撃墜、撃破)させることができる。
【0111】
本実施の形態では、通常戦闘モードや近接戦闘モード、各種モードや各種イベントなどがあり、モードやイベントに応じたカメラの制御を行って仮想カメラを仮想3次元空間に配置している。通常戦闘モードでは、1人称視点や3人称視点のカメラ制御が行われる。
【0112】
近接戦闘モードになると、プレーヤ移動体をターゲット移動体に追従させる追従制御が行われ、ターゲット移動体の過去の移動軌跡に基づき、プレーヤ移動体をターゲット移動体に追従させる。近接戦闘モードでは、近接戦闘中の複数の戦闘機がうまく画面内に収まるようなカメラ制御が行われる。
【0113】
イベントに応じたカメラ制御として、機銃(アイテムの一例)の操作入力が行われた場合に、アイテムカメラ制御が行われる。なおアイテムの操作入力が行われたことに加え、所定のゲームパラメータ(例えばターゲットなる敵機の体力パラメータ等)が所定の条件を満たしたことなどの他の条件を満たした場合にアイテムカメラ制御を行うようにしてもよい。
【0114】
アイテムカメラ制御(第1のカメラ制御の一例)は、仮想カメラの移動ルートが、移動体オブジェクトに対する仮想カメラの相対的な配置の遷移として定義されたカメラ制御データ及び仮想3次元空間における移動体オブジェクトの配置(位置及び向きの少なくとも一方)に基づき行われる。
【0115】
図2は、3人称視点モードの画像の一例を示す図であり、図3は、アイテムカメラ制御が行われている場合の画像の一例を示す図である。
【0116】
3人称視点モードでは、通常、仮想カメラは、プレーヤ移動体の斜め後ろあたり配置されて、プレーヤ移動体に追従して移動するので、図2に示すように、プレーヤ移動体310を後ろから見た画像が表示される。ところが3人称視点モードの最中に、機銃の操作入力が行われると、仮想カメラは機銃312の近くまで移動し、機銃312から砲弾が発射されている様子314が大写しになり、迫力のあるカメラ演出が行われる。
【0117】
2.2 カメラ制御データ
次にアイテムカメラ制御に使用されるカメラ制御データを例にとり、カメラ制御データについて説明する。
【0118】
図4、図5は、カメラ制御データの一例を示す図である。
【0119】
カメラ制御データ350は、所定期間(t0〜tn)分の仮想カメラの挙動(位置、向き(回転)、画角等)を示すデータであり、所定期間分(t0〜tn)の仮想カメラの位置360、向き370、画角380のなくとも1つの遷移を示すデータを含む。なおこれらすべての遷移を示すデータを含んでもよい。またその他、例えば仮想カメラの被写界深度等のパラメータを含んでもよい。
【0120】
仮想カメラの位置360、向き370は、図4に示すように移動体オブジェクト310の代表点を原点とし、移動体オブジェクト310の向きを所定の軸方向(ここではZ軸方向lz)とするローカル座標系300における位置(ローカル座標系における位置座標)、向きで与えられる。
【0121】
図4の軌道320は、ローカル座標系300における仮想カメラの移動ルートを示している。330は、プレーヤ移動体の機銃(移動体オブジェクトに付随したアイテム)の位置である。軌道の始点322は所与の基準位置とし、軌道320の終点324は、前記機銃の位置330に対応して設定された目標位置(機銃から所定方向に所定距離だけ離れた位置)としてもよい。ここで軌道の始点322となる所与の基準位置は、第1のカメラ制御が行われる前に行われていた第2のカメラ制御(例えば通常の3人称視点モードにおける仮想カメラの制御)におけるローカル位置でもよい。この様にすると開始時のカメラ位置が、開始前に行われていた第2のカメラ制御のカメラ位置と同じになるので、スムーズな視点切り替えを行うことができる。
【0122】
また移動ルート(軌道)320は、移動体オブジェクトのモデルの形状に応じて設定する。すなわちローカル座標系の原点に移動体オブジェクト310を配置した状態で、移動ルート(軌道)320が移動体オブジェクト310と交差しないように設定する。このようにすると仮想カメラの移動ルートと移動体オブジェクト310の交差判定等の複雑な制御を行うことなしに、効果的なカメラ制御を行うことができる。
【0123】
仮想カメラは、時刻t0の位置VK−t0を始点とし、時刻tnの位置を終点VK−tnとして、所定期間(t0〜tn)かけて移動ルート(軌道)320にしたがって移動する。カメラ制御データは、軌道320を時間の関数で表したものでもよいし、図5の位置360のように、時刻t0、t1、・・に対応する位置の座標値を離散的に定義したものでもよい。
【0124】
向き(回転)を示す制御データは、向き(回転)値を時間の関数で表したものでもよいし、図5に示すカメラ制御データ350の向き(回転)370のように、時刻t0、t1、・・における向き(回転)を離散的に定義したものでもよい。
【0125】
画角を示す制御データは、画角値を時間の関数で表したものでもよいし、図5に示すカメラ制御データ350の画角380のように、時刻t0、t1、・・における画角を離散的に定義したものでもよい。
【0126】
なお位置や向きや画角が所定期間(t0〜tn)の間変化しない場合には、その期間について1つの不変値のみ定義しておいてもよい。
【0127】
2.3 カメラ設定値の演算
次にアイテムカメラ制御の場合を例にとり第1のカメラ制御処理によるカメラ設定値の演算手法について説明する。
【0128】
図6は、カメラ制御データと移動体オブジェクトの位置に基づき、ワールド座標系における仮想カメラの配置(第1の設定値)を求める手法について説明するための図である。
【0129】
WP−t0、WP−t1、・・・、WP−tnは、移動体オブジェクトのワールド座標系(仮想3次元空間)における時刻t0、t1、・・・tnの位置を示しており、各位置WP−t0、WP−t1、・・・、WP−tnにおけるワールド座標系における位置座標値は(WX0、WY0、WZ0)、(WX1、WY1、WZ1)、・・・(WXn、WYn、WZn)である。この様な場合、時刻t0、t1、・・・tnにおける仮想カメラの位置WVK−t0、WVK−t1、・・・、WVK−tnの位置座標値(X'0、Y'0、Z'0)、(X'1、Y ’1、Z'1)、・・・(X'n、Y'n、Z'n)は、時刻t0、t1、・・・tnにおけるプレーヤ移動体の位置座標値(WX0、WY0、WZ0)、(WX1、WY1、WZ1)、・・・(WXn、WYn、WZn)と、時刻t0、t1、・・・tnにおけるローカル座標系における仮想カメラの位置座標値(LX0、LY0、LZ0)、(LX1、LY1、LZ1)、・・・(LXn、LYn、LZn)との和により求めることができる。
【0130】
2.4 アイテムカメラ制御のカメラ演出例
次にアイテムカメラ制御(第1のカメラ制御の一例)の場合を例にとり、第1のカメラ制御処理のカメラ演出の具体例について説明する。
【0131】
図7、図8(A)〜(C)は、アイテムカメラ制御によって生成される画像例を説明するための図である。アイテムカメラ制御では、仮想カメラは図7に示す移動体オブジェクト310のローカル座標系300における移動ルート320に従って移動する。図7の340−0、340−1、340−2に仮想カメラが配置された場合に生成される視点画像が図8(A)、図8(B)、図8(C)である。この様にアイテムカメラ制御では仮想カメラが、プレーヤ移動体の機銃312に近づいていき、最終的には図8(C)に示すように、機銃312がアップで表示されるカメラ演出が行われる。
【0132】
2.5 アイテムの操作期間とカメラ制御データの再生制御
次に、第1のカメラ制御において、アイテムの操作期間とカメラ制御データの再生制御について、アイテムカメラ制御の場合を例にとり説明する。
【0133】
図9(A)(B)、図10(A)(B)は、アイテムカメラ制御(第1のカメラ制御の一例)における、仮想カメラの移動軌跡について説明するための図である。
【0134】
カメラ制御データは、仮想カメラの軌道320を示す所定時間分のデータ(位置、向き、画角等のデータ)が時系列に定義されており、図9(A)に示すように、軌道320の始点322から終点324までのデータを時系列に再生することにより、定義されている仮想カメラの軌道を再現することができる。ここで所定時間は、n秒であるとする。
【0135】
所与の操作入力が行われたら、必ず所定時間であるn秒分のデータが再生されるようにしてもよい。この様にすると、所与の操作入力が行われたら、図9(A)に示すように、仮想カメラは移動ルート(軌道320)に従って始点322から終点324に移動するとことになる。なお移動が終了したら、所与のタイミングで、図9(B)に示すように、仮想カメラを終点324から始点322まで軌道320に沿って逆戻りさせてもよい。
【0136】
逆戻りしている最中の仮想カメラの向き(回転)は各地点において定義されている値をそのままもちいてもよい。この様にすると、仮想カメラの向きが変わらずに、位置だけ逆戻りするので、アイテムに近づいてきた時と同じ視線方向でアイテムから遠ざかっていくカメラ演出を行うことができる。
【0137】
また所与の操作入力が行われている期間中のみ、アイテムカメラ制御を行い、所与の操作入力が終了したら、アイテムカメラ制御を中断するようにしてもよい。
【0138】
例えば所与の操作入力がn/2秒間行われたとする。この場合、図10(A)に示すように所与の操作入力の開始タイミングSTに始点322から再生を開始して、終了タイミングETにおいて、軌道の途中地点326で再生を終了してもよい。
【0139】
終了タイミングが、軌跡の終点より前で発生した場合にはその時点で終了し、終了タイミングが軌道の終点にきた時点で発生していない場合には、終了タイミングがくるまで、軌道の終点324で定義されているデータを継続して再生してもよい。
【0140】
前記所与の操作入力が終了した場合には、仮想カメラの状態を、前記所与の操作入力終了時のカメラ制御データの示す状態(軌道の途中地点326)から、前記所与の操作入力開始時のカメラ制御データの示す状態(始点322)まで、逆戻りさせてもよい。
【0141】
例えばカメラ制御データが、仮想カメラの軌跡を示す所定時間分のデータ(位置、向き、画角等のデータ)が時系列に定義されている場合、操作入力終了時の軌道上の位置326を、戻り制御の再生開始位置として、時間軸とは逆方向に再生開始位置から軌道の始点までのカメラ制御データを再生することにより、操作入力開始時点の仮想カメラ位置に戻す仮想カメラ制御を行うことができる。
【0142】
このように、移動ルートの移動方向を順方向または逆方向のいずれかに設定し、仮想カメラを前記移動ルートにおいて設定された移動方向に移動させる処理を行うこともできる。
【0143】
2.6 移動ルート
次に第1のカメラ制御において、複数の移動ルートから1の移動ルートを選択して処理を行う場合について、アイテム制御カメラを例にとり説明する。
【0144】
図11は、1つのアイテムに対応して複数の移動ルートが設定されている例を示している。
【0145】
同図に示すように、移動体オブジェクト310の1つのアイテム330に対して、軌道の異なる複数の移動ルート380−1、380−2、380−3を設定して、各移動ルートに対応するカメラ制御データを用意しておいてもよい。
【0146】
そして動体オブジェクトの位置、向き、前記移動体オブジェクトと前記アイテムとの相対的な位置関係、距離、移動体オブジェクトの属性、所定のゲームパラメータの値に基づき、いずれかの移動ルートに対応したカメラ制御データを選択してもよい。
【0147】
この様にすると同じアイテムについても様々なバリエーションでアイテムカメラの演出を行うことができる。
【0148】
選択はランダムに行ってもよいし、所定のアルゴリズムで選択してもよい。移動体オブジェクトの仮想3次元空間における現在位置や向きと、選択するルートの対応関係を予めさだめておいてもよい。例えば移動体オブジェクトの飛行中のエリアが障害物の多いエリアである場合には、380−2のように大回りしないルートを選択してもよい。また移動体オブジェクト高度(Y座標値)が低い時は、移動体オブジェクトの周囲に地形や建造物等の障害物が多い可能性が高いので、高度に応じてルートを選択してもよい。高度が低い場合には、移動体オブジェクトから所定範囲内にルートが設定されているカメラ制御データを選択するようにしてもよい。
【0149】
この様にすると移動中の仮想カメラが障害物にぶつかってしまうような不具合を回避することができる。また移動体オブジェクトの属性によって選択するルートを決定してもよい。また他の移動体オブジェクトが近くにいる場合には、他の移動体オブジェクトの位置関係を考慮して、他の移動体オブジェクトと交差しない移動ルートを選択するようにしてもよい。
【0150】
図12は、1つの移動体オブジェクトに複数のアイテムが付属している場合のルートの設定例を示している。
【0151】
1つの移動体オブジェクト310に複数のアイテム332、334、336が付属している場合には、各アイテムに対応したルート382、384、386が設定されている。この様な場合には、操作されたアイテムに応じて移動ルートを選択することになる。
【0152】
操作されているアイテムが1のアイテムである場合には、そのアイテムに対応した移動ルートを選択する。また例えば複数のアイテム332、336が同時に操作されている場合には、いずれかのアイテムに対応したルートを選択してもよい。ランダムに選択してもよいし、操作中のアイテムの命中率等のパラメータによって選択してもよいし、他の移動体がいる場合には他の移動体との位置関係によって選択してもよい。
【0153】
なおこの場合にも図11の場合と同じように、移動体オブジェクトの高度や飛行中のエリアに応じて選択してもよい。
【0154】
2.7 カメラ制御データの再生開始位置、再生終了位置の可変制御
次に、第1のカメラ制御において、カメラ制御データの再生開始位置、再生終了位置、再生方向の設定を可変に制御する構成を、アイテムカメラ制御の場合を例にとり説明する。
【0155】
図13(A)(B)は、カメラ制御データの再生開始位置、終了位置の設定について説明するための図である。
【0156】
本実施の形態では、カメラ制御データの再生開始位置、終了位置を可変に設定することができる。すなわち、移動ルートの所与の点を再生開始位置及び再生終了位置の少なくとも1つとして設定し、設定された再生開始位置及び再生終了位置の少なくとも1つによって特定される移動区間において、仮想カメラを移動させる処理を行う。
【0157】
例えば図13(A)は、移動ルート320の始点322ではなく、途中の点323を再生開始位置として、途中の点323から再生を開始して、移動ルートの終点324で再生を終了する例を示している。ここで、カメラ制御データは始点322から終点324までのデータが、図5に示すように時系列に定義されており、時刻t0に始点のデータが定義され、時刻t1で途中の点323のデータが定義されているとすると、時刻t1の位置を再生位置として設定することにより、移動ルートの途中の点323から終点324のルートで仮想カメラを移動させる制御を行うことができる。この様にすると1つのカメラ制御データで始点の異なる複数の移動ルートのカメラ制御が可能となる。
【0158】
例えばアイテムカメラが発動される前の仮想カメラのローカル位置に応じて、再生開始位置を決定してもよい。移動ルート320は、アイテムカメラ発動前(例えば3人称視点モードの仮想カメラのローカル位置)を含んでもよい。
【0159】
図13(B)は、複数のアイテムに対応した目標位置を含むルートの例を示している。
【0160】
始点322と終点324’を含むルート320’は、移動体オブジェクトに付随する複数のアイテム330−1、330−2に対応した目標位置を含む。この様な場合、操作対象となるアイテムに応じて再生終了位置を選択してもよい。例えば操作対象アイテムが330−2である場合には始点322から終点324までの全ルートを再生し、操作対象アイテムが330−1である場合には、再生終了位置をアイテム330−1に対応したルート上の点328に設定して始点322から再生終了位置328までのルートを再生してもよい。
【0161】
2.8 アイテムカメラ制御の変形例
次にアイテムの位置が移動体オブジェクトに対して可変である場合のアイテムカメラ制御の一例について説明する。
【0162】
図14は、複数のパーツオブジェクトが関節で接続された移動体オブジェクトに付随するアイテムに対応して設定される移動ルートについて説明するための図である。
【0163】
移動体オブジェクト410は複数のパーツオブジェクトPO−1、PO−2、・・が関節K1、K2、・・で接続された移動体オブジェクトであり、アイテム420を保持している。アイテム420は移動体オブジェクト410に付随して動くが、各パーツオブジェクトの関節K1、K2、・・・に対する回転が変化するため、アイテム420のローカル座標系400における位置は、ローカル座標系400の原点Oに対して固定されておらず、関節K1、K2、・・によって接続されたパーツオブジェクトPO−1、PO−2、・・の動きによって変化する。
【0164】
この様に移動体オブジェクト410が複数の関節K1、K2、・・を含みモーション制御が行われる場合には、移動体オブジェクト410の代表点(位置座標が与えられる点)に対するアイテム420の相対位置は変化する。従って予め複数のルート420−1、420−2、420−3、420−4を用意しておき、入力情報やモーションデータに基づき、操作対象となるアイテム420の移動体オブジェクト410に対する相対位置をリアルタイムに演算し、演算した相対位置に基づき、ルートの選択を行うようにしてもよい。また選択したルートの再生終了位置の変更を行うようにしてもよい。
【0165】
2.9 複数のカメラ制御
次に第1のカメラ制御を含む複数のカメラ制御を平行して行い、複数のカメラ制御を反映させて、仮想カメラの配置を決定する制御について、第1のカメラ制御がアイテムカメラ制御である場合を例にとり説明する。
【0166】
図15から図17は、複数のカメラ設定値のブレンド制御について説明するための図である。
【0167】
図15は、本実施の形態で行われているカメラ制御を時間軸tに従って示すタイムチャートである。本実施の形態では複数のカメラ制御が平行して行われ、各カメラ制御処理によって得られた設定値をブレンドして求めた設定値で、仮想カメラの制御が行われる。452は第2のカメラ制御450が行われている期間を示し、462は第1のカメラ制御460が行われている期間を示している。
【0168】
第2のカメラ制御450は、例えば通常戦闘時の3人称視点モードにおいて、仮想カメラを移動体オブジェクトに追従して移動させるカメラ制御であり、第1のカメラ制御460はアイテムカメラ制御である。
【0169】
時刻f0から第2のカメラ制御(通常戦闘時の3人称視点モードにおける仮想カメラの制御)450が行われており、時刻fnまでは、他のカメラ制御が平行して行われていないので、仮想カメラには、第2のカメラ制御処理によって得られた第2の設定値(位置、向き、画角等)が設定される。
【0170】
ここで時刻fnでアイテムに対する所与の操作入力が行われると、第1のカメラ制御が始まる。第1のカメラ制御がm秒間行われた後、時刻fn+mに第1のカメラ制御が終了する。
【0171】
時刻fnから時刻fn+mの間は、第1のカメラ制御460と第2のカメラ制御450が平行して行われ、第1のカメラ制御処理によって得られた第1の設定値と第2のカメラ制御処理によって得られた第2の設定値が得られるので、これらを合成して時刻fnから時刻fn+mの間の仮想カメラの設定値を求めてもよい。
【0172】
図16(A)(B)は、第1の設定値と第2の設定値の合成比率の時間的な変化を示すグラフである。横軸は時間で、縦軸は合成比率を示している。第1のカメラ制御はm秒間分の仮想カメラの挙動を定義するデータとして定義されているので、第1のカメラ制御が開始されてからm秒後までの合成比率を示すグラフ490、492となっている。図16(A)(B)に示すように、合成比率は時間的に変化する。
【0173】
図16(A)では、時間の経過につれて第1の設定値の割合が0パーセントから100パーセントまで線形関数にしたがって増加し、図16(B)では、時間の経過につれて第1の設定値の割合が0パーセントから100パーセントまで所与の関数にしたがって増加する。
【0174】
いずれも第1のカメラ制御が開始されてからm秒後に第1の設定値の割合が最大となっている。この様にすると、時刻fnから時刻fn+mの期間において、時間の経過につれて第1のカメラ制御の影響が大きくなるカメラ制御を行うことができる。
【0175】
図17は、第1の設定値と第2の設定値の合成の一例について説明するための図である。
【0176】
ここでは第2のカメラの制御が、予め用意されたカメラ制御データ及び仮想3次元空間における移動体オブジェクトの配置データ(位置及び向きの少なくとも一方)に基づき行われる場合を例にとり説明する。
【0177】
320−1は第1のカメラ制御用のカメラ制御データの示す移動体オブジェクト310のローカル座標系300における移動ルートを示しており、320−2は第2の仮想カメラ制御用のカメラ制御データの示す移動体オブジェクト310のローカル座標系300における移動ルートを示している。
【0178】
320−3は、移動ルート320−1と移動ルート320−2を、ローカル座標系300において時間的に変化する合成比率で合成したローカル座標系における移動ルートである。時刻tiにおけるローカル座標系における合成ルート320−3の座標値(LWi、LYi、LZi)(i=0,1,2,・・n)と移動体オブジェクトのワールド座標系における座標値(WXi、WYi、WZi)(i=0、1,2,・・n)とを加算することにより、所定の期間(t0〜tn)のワールド座標系における仮想カメラの座標値を求めることができる。
【0179】
この様に第1の設定値と第2の設定値を合成する場合には、第1のカメラ制御によるローカル座標系300における移動ルート320−1と、第2のカメラ制御によるローカル座標系300におけるルート320−2とをローカル座標系300において合成してから、ワールド座標系の値に変換するようにしてもよい。
【0180】
2.10 移行処理
次に、第1のカメラ制御処理開始前の前記移動体オブジェクトのローカル座標系における仮想カメラの位置からカメラ制御データに規定された前記移動体オブジェクトのローカル座標系における所与の基準位置まで移動させる移行処理について、第1のカメラ制御がアイテムカメラ制御である場合を例にとり説明する。
【0181】
図23は、アイテムカメラ制御(第1のカメラ制御の一例)開始前の記移動体オブジェクトと仮想カメラの配置関係について説明するための図である。時刻t1,t2、t3における、第3のカメラ制御下にある移動体オブジェクトと仮想カメラの位置関係を示している。
【0182】
第3のカメラ制御の最中に、アイテムに対する所与の操作入力が行われた場合にアイテムカメラ制御が開始されるとする。第3のカメラ制御は、図23に示すように、仮想カメラ340を移動体オブジェクト310に追従させるが、移動体オブジェクト310に対する仮想カメラ340の相対的な位置や向き(回転)が固定されていないものとする。すなわち移動体オブジェクト310のローカル座標系における仮想カメラ340の位置や向き(回転)は、移動体オブジェクト310のワールド座標系における位置や向き(向き)や速度、又は移動体オブジェクトと他の移動体オブジェクト(例えば移動体オブジェクトのターゲットとなっている敵移動体等)の位置関係や距離等によって変化するものとする。
【0183】
この様な場合時刻t1でアイテムに対する所与の操作入力が行われた場合と、時刻t2でアイテムに対する所与の操作入力が行われた場合と、時刻t3でアイテムに対する所与の操作入力が行われた場合とでは、移動体オブジェクトのローカル座標系における仮想カメラの位置、向き(回転)は異なっている。
【0184】
図24は、移行処理について説明するための図である。320は、移動体オブジェクト310のローカル座標系300におけるアイテムカメラ制御の仮想カメラの移動ルートを示している。322は移動ルート(軌道)320の始点であり、所与の基準位置である。再生開始位置の設定制御を行わない場合には、所与の基準位置である始点322から移動ルートの再生が開始されるものとする。
【0185】
しかし時刻t1でアイテムに対する所与の操作入力が行われた場合には仮想カメラ340−1は342−1に位置しており、時刻t2でアイテムに対する所与の操作入力が行われた場合には仮想カメラ340−2は342−2に位置しており、時刻t3でアイテムに対する所与の操作入力が行われた場合には仮想カメラ340−3は342−3に位置しており、いずれも所与の基準位置とは異なる位置にある。そこで、本実施の形態では、アイテムに対する所与の操作入力が行われる直前の仮想カメラの位置から、所定の基準位置まで、所定時間(IT)で仮想カメラを移動させる移行処理を行う。
【0186】
例えば時刻t1でアイテムに対する所与の操作入力が行われた場合には、時刻t1における仮想カメラのローカル位置(移動体オブジェクトのローカル座標系における位置を意味する)342−1から所定の基準位置322まで所定の移動ルート344−1にしたがって、所定期間(IT)で移動させ、時刻t2でアイテムに対する所与の操作入力が行われた場合には、時刻t2における仮想カメラのローカル位置342−2から所定の基準位置322まで所定の移動ルート344−2にしたがって、所定期間(IT)で移動させ、時刻t3でアイテムに対する所与の操作入力が行われた場合には、時刻t3における仮想カメラのローカル位置342−3から所定の基準位置322まで所定の移動ルート344−3にしたがって、所定期間(IT)で移動させてもよい。
【0187】
所定の移動ルート344−1,344−2、344−3は、各時刻t1、t2、t3における仮想カメラのローカル位置と所定の基準位置とを結ぶ線分であり、操作入力時の仮想カメラのローカル位置342−1,342−2342−3に基づきリアルタイムに決定される。当該線分の軌跡が、前記2点を通る所与の関数となるように決定してもよい。なお仮想カメラの画角は移動体オブジェクトが画像内に収まるように決定してもよい。
【0188】
このようにすると、アイテムに対する所与の操作入力が行われると所定期間(IT)で仮想カメラが所定の基準位置まで移動し、その後アイテムカメラ制御の移動ルート320に従ってアイテムに近づいていくカメラ演出が行われる。従って仮想カメラ340と移動体オブジェクト310の相対位置が変化するようなカメラ制御が行われている場合に、アイテムに対する所与の操作入力が行われた場合でもスムーズでシームレスなカメラ演出を行うことができる。
【0189】
なおアイテムに対する所与の操作入力が終了した場合には、仮想カメラの状態を、前記所与の操作入力終了時のカメラ制御データの示す状態から、移行処理を行う前の状態まで、逆戻りさせる処理を行ってもよい。例えば時刻t1において所与の操作入力が行われ所与の操作入力終了時の仮想カメラが移動ルート320の終点324に位置していたとすると、移動ルート320に従って始点322まで逆戻りし、さらに移動ルート344−1に従って時刻t1におけるローカル位置342−1まで逆戻りしてもよい。
【0190】
図20は、第1の実施の形態のカメラ制御処理(アイテムカメラのケース)の流れを示すフローチャートである。
【0191】
所与のアイテム操作入力を検出すると以下の処理を行う(ステップS10)。まずアイテムに対応する第1のカメラ制御用のカメラ制御データを選択する(ステップS20)。そして選択したカメラ制御データ及び仮想3次元空間における移動体オブジェクトの配置データに基づき、仮想カメラを移動ルートにそってアイテム方向に移動させる処理を行う(ステップS30)。
【0192】
アイテムの操作入力の終了を検出した場合には(ステップS40)、仮想カメラの状態を、前記所与の操作入力終了時のカメラ制御データの示す状態から、前記所与の操作入力開始時のカメラ制御データの示す状態まで、逆戻りさせる処理を行う(ステップS50)。
【0193】
図22は、本実施の形態のカメラ制御処理の流れを示すフローチャートである。
【0194】
所与のイベント発生前(例えば所与の操作入力が行われる前)は第2のカメラ制御処理を行い第2の設定値をもとめ、第2の設定値と移動体オブジェクトの配置に基づき、仮想カメラを仮想3次元空間に配置する(ステップS210)。所与のイベントが発生すると(ステップS220)、第1の仮想カメラ制御期間が終了するまで(ステップS270)、以下の処理を繰り返す。
【0195】
第1のカメラ制御処理と第2のカメラ制御処理を平行して行い(ステップS230)、第1のカメラ制御開始からの経過時間に基づき、ブレンド比率を求める(ステップS240)。そして、第1のカメラ制御処理により求めた第1の設定値と第2のカメラ制御処理により求めた第2の設定値とを、求めたブレンド(合成)比率でブレンド(合成)してブレンド設定値を求める(ステップS250)。そして、ブレンド設定値と、移動体オブジェクトの配置に基づき、仮想カメラを仮想3次元空間に配置する(ステップS260)。
【0196】
3.第2の実施の形態
次に第1のカメラ制御に操作入力をさせる手法について説明する。ここでは第1のカメラ制御が、近接戦闘モード時にプレーヤ移動体をターゲット移動体に追従させる追従制御時のカメラ制御(近接戦闘カメラ制御)である場合を例にとり説明する。
【0197】
図18(A)(B)は、第1のカメラ制御に操作入力を反映させる例について説明するための図である。
【0198】
図18(A)の320−2は、第1のカメラ制御に用いるカメラ制御データで定義された移動体オブジェクト310のローカル座標系300における移動ルートを示している。図18(B)は、カメラ制御データの時間軸(t0〜t5)と位置データの対応関係を示す図である。ここでは位置データを例にとり説明するが、向き(回転)や画角についても同様である。カメラ制御データは、時刻t0〜時刻t1〜時刻t2においてルート320−2を順方向390に移動(位置l0〜位置l1〜位置l2に移動)し、時刻t3〜時刻t4〜時刻t5においてルート320−2を逆方向392に移動(位置l2〜位置l1〜位置l0に移動)するように定義されている。カメラ制御データは再生開始位置から、再生終了位置までを時間軸に沿って再生することができる。
【0199】
ここで第1の再生開始位置SP1として時刻t0が指定され、第1の再生終了位置EP1として時刻t2が指定された場合には、仮想カメラはルート320−2を順方向390に移動(位置l0〜位置l1〜位置l2に移動)するよう制御される。また第2の再生開始位置SP2として時刻t3が指定され、第2の再生終了位置EP2として時刻t5が指定された場合には、仮想カメラはルート320−2を逆方向392に移動(位置l2〜位置l1〜位置l0に移動)するよう制御される。
【0200】
操作入力に応じて再生開始位置をSP1又はSP2のいずれかに設定するようにしてもよい。例えば加速を示す操作入力が行われた場合には再生開始位置をSP2に設定し、減速を示す操作入力が行われた場合には再生開始位置をSP1に設定するようにしてもよい。この様にすると、加速入力が行われると仮想カメラの位置が移動体オブジェクトに対し相対的に後退し(392)、減速入力が行われると、仮想カメラの位置が移動体オブジェクトに対し相対的に前進する(390)カメラ演出を行うことができる。
【0201】
図19(A)(B)は、第1のカメラ制御に操作入力を反映させる他の例について説明するための図である。図19(A)の320’−2は、第1のカメラ制御に用いるカメラ制御データの示す移動体オブジェクト310のローカル座標系300における移動ルートを示している。
【0202】
図19(B)は、図18(B)と同様に、カメラ制御データの時間軸と位置データの対応関係を示す図である。
【0203】
入力された移動方向に応じて再生開始位置を設定するようにしてもよい。例えば右方向(X軸+方向)への移動を指示する操作入力が行われた場合には再生開始位置をSP2に設定し、左方向(X軸−方向)を示す操作入力が行われた場合には再生開始位置をSP2に設定するようにしてもよい。この様にすると、右方向入力が行われると仮想カメラの位置が移動体オブジェクトに対し相対的に左方向に移動し(392’)、左方向入力が行われると、仮想カメラの位置が移動体オブジェクトに対し相対的に右方向に移動する(390’)カメラ演出を行うことができる。
【0204】
図18(A)(B)や図19(A)(B)で説明したように、操作入力を再生開始位置に反映させることで、操作入力に応じてカメラワークが変化する躍動感のあるカメラ演出を行うことができる。
【0205】
図21は、第2の実施の形態のカメラ制御処理(近接戦闘カメラ制御のケース)の流れを示すフローチャートである。
【0206】
加速入力を検出すると(ステップS110)、再生開始位置をSP2、再生終了位置をEP2に設定する(ステップS120)。また減速入力を検出すると(ステップS130)、再生開始位置をSP1、再生終了位置をEP2に設定する(ステップS140)。
【0207】
そして設定された再生開始位置から再生終了位置までの区間でカメラ制御データ及び仮想3次元空間における移動体オブジェクトの配置データに基づき、再生開始位置から再生終了位置まで、移動ルートに従って仮想カメラを移動させる処理を行う(ステップS150)。
【0208】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0209】
上記実施の形態では、カメラ制御データの位置を例に取り説明したがそれに限られない。回転や画角についても同様の制御を行うことができる。
【0210】
また上記実施の形態において、カメラ制御データの再生により仮想カメラを制御する場合に、再生時間に応じて演出を変化させるようにしてもよい。
【0211】
また仮想カメラの移動に応じて、サウンド(BGMまたは効果音を変化させてもよい。例えば、仮想カメラが機銃(アイテム)に近づくほど、弾の発射音のボリュームを上げるようにしてもよい。
【0212】
また機銃(アイテム)位置付近に仮想カメラが移動した場合に敵機を破壊することができると、通常と異なるエフェクトを表示してもよい。この様な場合には仮想カメラと敵との位置関係が近くなることから、強いインパクトを与えることができる。例えば敵機のエンジンオイルをかぶるような、黒いエフェクトをカメラ画角に入るよう配置してもよい。
【0213】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、携帯型ゲームシステム、ゲーム画像を生成するシステムボード等の種々のゲームシステムに適用できる。
【符号の説明】
【0214】
10 本体装置、20 入力装置、100 処理部、110 オブジェクト空間設定部、112 ゲーム演算部、114 表示制御部、115 仮想カメラ制御部、116 第1のカメラ制御部、117 第2のカメラ制御部、120 描画部、130 音制御部、140 振動制御部、150 移動・動作処理部、152 移動体オブジェクト制御部、170 記憶部、172 主記憶部、174 描画バッファ、180 情報記憶媒体、190 表示部、192 スピーカー、196 通信部、198 光源、210 加速度センサ、220 撮像部、222 赤外線フィルタ、224 レンズ、226 撮像素子、228 画像処理回路、230 スピーカー、240 振動部、250 マイコン、260 通信部、270 操作部

【特許請求の範囲】
【請求項1】
移動体オブジェクトが存在する仮想3次元空間を仮想カメラから見た画像を生成するためのプログラムであって、
操作入力に基づき、仮想3次元空間における移動体オブジェクトの移動の制御を行う移動体オブジェクト制御部と、
仮想カメラの設定の制御を行う仮想カメラ制御部と、
仮想3次元空間を仮想カメラから見た画像を生成する画像生成部と、してコンピュータを機能させ、
前記仮想カメラ制御部は、
仮想カメラの移動ルートが移動体オブジェクトに対する仮想カメラの相対的な配置の遷移として定義されたカメラ制御データ、及び仮想3次元空間における移動体オブジェクトの配置に基づき第1のカメラ制御処理を行う第1のカメラ制御部を含み、
第1のカメラ制御処理によって得られた第1の設定値に基づき仮想カメラを仮想3次元空間に配置することを特徴とするプログラム。
【請求項2】
請求項1において、
前記カメラ制御データは、前記移動体オブジェクトのローカル座標系における所与の基準位置と、移動体オブジェクトに付随したアイテムに対応して設定された目標位置を結ぶ軌道の移動ルートを定義するデータを含み、
前記第1のカメラ制御部は、
移動体オブジェクトに付随したアイテムに対する所与の操作入力が行われた場合に、
仮想カメラを前記移動ルートで前記目標位置に移動させる処理を行うことを特徴とするプログラム。
【請求項3】
請求項1又は2において、
前記第1のカメラ制御部は、
前記所与の操作入力の開始タイミングに基づき、前記第1のカメラ制御処理を開始し、前記所与の操作入力の終了タイミングに基づき、前記第1のカメラの制御処理を終了することを特徴とするプログラム。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記第1のカメラ制御部は、
前記所与の操作入力が終了した場合には、仮想カメラの状態を、前記所与の操作入力終了時のカメラ制御データの示す状態から、前記所与の操作入力開始時のカメラ制御データの示す状態まで、逆戻りさせる処理を行うことを特徴とするプログラム。
【請求項5】
請求項2乃至4のいずれかにおいて、
前記カメラ制御データは、前記アイテムに対して軌道の異なる複数の移動ルートに対応したデータを含み、
前記第1のカメラ制御部は、
前記移動体オブジェクトの位置又は向き又は所定のゲームパラメータの値に基づき、いずれかの移動ルートに対応したカメラ制御データを選択して、選択したカメラ制御データを用いて第1のカメラ制御処理を行うことを特徴とするプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて、
前記第1のカメラ制御部は、
前記移動ルート上の所与の点を再生開始位置及び再生終了位置の少なくとも1つとして設定し、設定された再生開始位置及び再生終了位置の少なくとも1つによって特定される移動区間において、仮想カメラを移動させる処理を行うことを特徴とするプログラム。
【請求項7】
請求項1乃至6のいずれかにおいて、
前記第1のカメラ制御部は、
前記移動ルートの移動方向を順方向または逆方向のいずれかに設定し、仮想カメラを前記移動ルートにおいて設定された移動方向に移動させる処理を行うことを特徴とするプログラム。
【請求項8】
請求項6又は7において、
前記第1のカメラ制御部は、
前記移動体オブジェクトと他の移動体オブジェクトとの距離、位置関係、操作入力及び所与のパラメータの少なくとも1つに基づき開始位置を再設定して、仮想カメラを移動経路上で移動させる制御を行うプログラム。
【請求項9】
請求項1乃至8のいずれかにおいて、
前記第1のカメラ制御部は、
入力情報に基づき、操作対象となるアイテムの移動体オブジェクトに対する相対位置をリアルタイムに演算し、演算した相対位置に基づき、カメラ制御データの選択又は移動ルートの再生終了位置の変更を行うことを特徴とするプログラム。
【請求項10】
請求項1乃至9のいずれかにおいて、
前記仮想カメラ制御部は、
第1のカメラ制御処理開始前に行っていた仮想カメラに対する第2のカメラ制御処理を、第1のカメラ制御処理開始後も継続して行う第2のカメラ制御部をさらに含み、
第1のカメラ制御処理開始後は、第1のカメラ制御処理によって得られた第1の設定値と第2のカメラ制御処理によって得られた第2の設定値を合成して、合成した設定値に基づき仮想カメラを仮想3次元空間に配置することを特徴とするプログラム。
【請求項11】
請求項10において、
前記仮想カメラ制御部は、
時間の経過に従って合成比率を変化させて第1の設定値と第2の設定値を合成することを特徴とするプログラム。
【請求項12】
請求項11において、
前記第2のカメラ制御部は、
移動体オブジェクトに対する仮想カメラの相対的な配置の遷移として定義されたカメラ制御データ及び仮想3次元空間における移動体オブジェクトの配置に基づき第2のカメラ制御処理を行うことを特徴とするプログラム。
【請求項13】
請求項1乃至12のいずれかにおいて、
前記仮想カメラ制御部は、
第1のカメラ制御処理開始前の前記移動体オブジェクトのローカル座標系における仮想カメラの位置から前記カメラ制御データに規定された前記移動体オブジェクトのローカル座標系における所与の基準位置まで移動させる移行処理を行うことを特徴とするプログラム。
【請求項14】
請求項1乃至13のいずれかにおいて、
前記第1のカメラ制御部は、
移動体オブジェクトに付随した複数のアイテムに対する所与の操作入力が行われた場合に、1のアイテムを選択する処理を行い、選択したアイテムに対応するカメラ制御データに基づき第1のカメラ制御処理を行うことを特徴とするプログラム。
【請求項15】
請求項1乃至14のいずれかに記載のプログラムが記憶されたコンピュータ読み取り可能な情報記憶媒体。
【請求項16】
移動体オブジェクトが存在する仮想3次元空間を仮想カメラから見た画像を生成するための画像生成システムであって、
操作入力に基づき、仮想3次元空間における移動体オブジェクトの移動の制御を行う移動体オブジェクト制御部と、
仮想カメラの設定の制御を行う仮想カメラ制御部と、
仮想3次元空間を仮想カメラから見た画像を生成する画像生成部と、を含み、
前記仮想カメラ制御部は、
仮想カメラの移動ルートが移動体オブジェクトに対する仮想カメラの相対的な配置の遷移として定義されたカメラ制御データ、及び仮想3次元空間における移動体オブジェクトの配置に基づき第1のカメラ制御処理を行う第1のカメラ制御部を含み、
第1のカメラ制御処理によって得られた第1の設定値に基づき仮想カメラを仮想3次元空間に配置することを特徴とする画像生成システム。

【図1】
image rotate

【図2】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図3】
image rotate


【公開番号】特開2011−258150(P2011−258150A)
【公開日】平成23年12月22日(2011.12.22)
【国際特許分類】
【出願番号】特願2010−134537(P2010−134537)
【出願日】平成22年6月11日(2010.6.11)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】