(57)【特許請求の範囲】
【請求項１】
画像を生成するための画像生成装置であって、
オブジェクト空間内の所与の視点での画像を生成するための仮想カメラを制御する手段と、
仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方が変化した場合に、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して揺らぎを与える揺らぎ設定手段と、
仮想カメラから見える画像を生成する手段とを含み、
前記揺らぎ設定手段が、
仮想カメラの回転角速度が速いほど広くなる、或いは仮想カメラの速度が速いほど広くなる揺らぎ範囲内で、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して揺らぎを与えることを特徴とする画像生成装置。
【請求項２】
請求項１において、
前記揺らぎ設定手段が、
オブジェクト空間内で移動する移動体に仮想カメラの注視点を追従させるために仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方が変化した場合に、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して揺らぎを与えることを特徴とする画像生成装置。
【請求項３】
画像を生成するための画像生成装置であって、
オブジェクト空間内の所与の視点での画像を生成するための仮想カメラを制御する手段と、
仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方が変化した場合に、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して揺らぎを与える揺らぎ設定手段と、
仮想カメラから見える画像を生成する手段とを含み、
前記揺らぎ設定手段が、
仮想カメラの回転角速度が所与の回転角速度より大きい場合、或いは仮想カメラの速度が所与の速度より大きい場合に、揺らぎの増加を制限することを特徴とする画像生成装置。
【請求項４】
請求項３において、
前記揺らぎ設定手段が、
オブジェクト空間内で移動する移動体に仮想カメラの注視点を追従させるために仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方が変化した場合に、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して揺らぎを与えることを特徴とする画像生成装置。
【請求項５】
請求項３又は４において、
前記揺らぎ設定手段が、
仮想カメラの回転角速度及び仮想カメラの速度の少なくとも一方に応じた揺らぎを、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して与えることを特徴とする画像生成装置。
【請求項６】
画像を生成するための画像生成装置であって、
オブジェクト空間内で移動体を移動させる演算を行う手段と、
オブジェクト空間内の所与の視点での画像を生成するための仮想カメラを制御する手段と、
移動体の位置と仮想カメラの注視点位置との間のオフセット値を可変に制御しながら、
オブジェクト空間内を移動する移動体に仮想カメラの注視点を追従させるオフセット値制御手段と、
仮想カメラから見える画像を生成する手段を含み、
前記オフセット値制御手段が、
移動体からの距離及び移動体の速度の少なくとも一方に基づいて前記オフセット値を可変に制御することを特徴とする画像生成装置。
【請求項７】
請求項６において、
オブジェクト空間内で移動する移動体に仮想カメラの注視点を追従させるために仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方が変化した場合に、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して揺らぎを与える揺らぎ設定手段を更に含むことを特徴とする画像生成装置。
【請求項８】
画像を生成するための画像生成装置であって、
オブジェクト空間内で移動体を移動させる演算を行う手段と、
オブジェクト空間内の所与の視点での画像を生成するための仮想カメラを制御する手段と、
移動体の位置と仮想カメラの注視点位置との間のオフセット値を可変に制御しながら、
オブジェクト空間内を移動する移動体に仮想カメラの注視点を追従させるオフセット値制御手段と、
仮想カメラから見える画像を生成する手段を含み、
前記オフセット値制御手段が、
オブジェクト空間内のマップに設定された前記オフセット値又は該オフセット値を特定するための情報に基づいて前記オフセット値を可変に制御することを特徴とする画像生成装置。
【請求項９】
請求項８において、
オブジェクト空間内で移動する移動体に仮想カメラの注視点を追従させるために仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方が変化した場合に、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して揺らぎを与える揺らぎ設定手段を更に含むことを特徴とする画像生成装置。
【請求項１０】
コンピュータにより使用可能であり、画像を生成するための情報記憶媒体であって、
オブジェクト空間内の所与の視点での画像を生成するための仮想カメラを制御する手段と、
仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方が変化した場合に、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して揺らぎを与える揺らぎ設定手段と、
仮想カメラから見える画像を生成する手段としてコンピュータを機能させるためのプログラムを記憶し、
前記揺らぎ設定手段が、
仮想カメラの回転角速度が速いほど広くなる、或いは仮想カメラの速度が速いほど広くなる揺らぎ範囲内で、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して揺らぎを与えることを特徴とする情報記憶媒体。
【請求項１１】
請求項１０において、
前記揺らぎ設定手段が、
オブジェクト空間内で移動する移動体に仮想カメラの注視点を追従させるために仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方が変化した場合に、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して揺らぎを与えることを特徴とする情報記憶媒体。
【請求項１２】
コンピュータにより使用可能であり、画像を生成するための情報記憶媒体であって、
オブジェクト空間内の所与の視点での画像を生成するための仮想カメラを制御する手段と、
仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方が変化した場合に、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して揺らぎを与える揺らぎ設定手段と、
仮想カメラから見える画像を生成する手段としてコンピュータを機能させるためのプログラムを記憶し、
前記揺らぎ設定手段が、
仮想カメラの回転角速度が所与の回転角速度より大きい場合、或いは仮想カメラの速度が所与の速度より大きい場合に、揺らぎの増加を制限することを特徴とする情報記憶媒体。
【請求項１３】
請求項１２において、
前記揺らぎ設定手段が、
オブジェクト空間内で移動する移動体に仮想カメラの注視点を追従させるために仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方が変化した場合に、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して揺らぎを与えることを特徴とする情報記憶媒体。
【請求項１４】
請求項１２又は１３において、
前記揺らぎ設定手段が、
仮想カメラの回転角速度及び仮想カメラの速度の少なくとも一方に応じた揺らぎを、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して与えることを特徴とする情報記憶媒体。
【請求項１５】
コンピュータにより使用可能であり、画像を生成するための情報記憶媒体であって、
オブジェクト空間内で移動体を移動させる演算を行う手段と、
オブジェクト空間内の所与の視点での画像を生成するための仮想カメラを制御する手段と、
移動体の位置と仮想カメラの注視点位置との間のオフセット値を可変に制御しながら、オブジェクト空間内を移動する移動体に仮想カメラの注視点を追従させるオフセット値制御手段と、
仮想カメラから見える画像を生成する手段としてコンピュータを機能させるためのプログラムを記憶し、
前記オフセット値制御手段が、
移動体からの距離及び移動体の速度の少なくとも一方に基づいて前記オフセット値を可変に制御することを特徴とする情報記憶媒体。
【請求項１６】
請求項１５において、
オブジェクト空間内で移動する移動体に仮想カメラの注視点を追従させるために仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方が変化した場合に、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して揺らぎを与える揺らぎ設定手段として更にコンピュータを機能させるためのプログラムを記憶することを特徴とする情報記憶媒体。
【請求項１７】
コンピュータにより使用可能であり、画像を生成するための情報記憶媒体であって、
オブジェクト空間内で移動体を移動させる演算を行う手段と、
オブジェクト空間内の所与の視点での画像を生成するための仮想カメラを制御する手段と、
移動体の位置と仮想カメラの注視点位置との間のオフセット値を可変に制御しながら、オブジェクト空間内を移動する移動体に仮想カメラの注視点を追従させるオフセット値制御手段と、
仮想カメラから見える画像を生成する手段としてコンピュータを機能させるためのプログラムを記憶し、
前記オフセット値制御手段が、
オブジェクト空間内のマップに設定された前記オフセット値又は該オフセット値を特定するための情報に基づいて前記オフセット値を可変に制御することを特徴とする情報記憶媒体。
【請求項１８】
請求項１７において、
オブジェクト空間内で移動する移動体に仮想カメラの注視点を追従させるために仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方が変化した場合に、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して揺らぎを与える揺らぎ設定手段として更にコンピュータを機能させるためのプログラムを記憶することを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像生成装置及び情報記憶媒体に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な３次元空間であるオブジェクト空間内に複数のオブジェクトを配置し、仮想カメラの視点から見える画像を生成する画像生成装置（狭義にはゲーム装置）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。レーシングゲームを楽しむことができる画像生成装置を例にとれば、プレーヤは、自身が運転する車（自車）をオブジェクト空間内で走行させ、他のプレーヤ又はコンピュータが運転する車（他車）と競争することでゲームを楽しむ。
【０００３】
さて、このような画像生成装置では、プレーヤの仮想現実感の向上のために、よりリアルな画像を生成することが重要な技術的課題になっている。
【０００４】
しかしながら、このような画像生成装置においては仮想カメラを実際に制御するのはコンピュータであるため、この仮想カメラから見える画像は、現実世界において人間が本当のカメラで撮った場合の画像とは異なったものにならざるを得ない。従って、得られる画像が今一つ単調であり、リアル感に欠けていた。
【０００５】
例えば、プレーヤの運転する車（移動体）を、コース沿いに設置された仮想カメラにより撮る場合、車と仮想カメラとを結ぶベクトルを求め、そのベクトルの方向に仮想カメラを向ける手法が考えられる。この手法によれば、車が高速で移動しても、仮想カメラはその車を追うことができ、車が確実に画面内に入るようになる。
【０００６】
しかしながら、この手法では、画面の中心に車が常に固定されてしまい、いかにもコンピュータ制御の仮想カメラで撮ったというような画像が生成されてしまう。従って、今一つプレーヤの仮想現実感を高めることができなかった。
【０００７】
本発明は、以上のような課題を解決するためになされたものであり、その目的とするところは、仮想カメラから見える画像を少ない処理負担でよりリアルな画像にすることができる画像生成装置及び情報記憶媒体を提供することにある。
【０００８】
【課題を解決するための手段】
上記課題を解決するために、本発明は、画像を生成するための画像生成装置であって、オブジェクト空間内の所与の視点での画像を生成するための仮想カメラを制御する手段と、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方が変化した場合に、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して揺らぎを与える手段と、仮想カメラから見える画像を生成する手段とを含むことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実現（実行）するための情報（プログラム）を含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラムであって、上記手段を実現（実行）するためのプログラムであることを特徴とする。
【０００９】
本発明によれば、仮想カメラが所与の軸回りで回転したり、仮想カメラが移動すると（位置が変化すると）、仮想カメラの軸回り回転或いは位置に対して、揺らぎが与えられる。そして、この揺らぎが与えられた仮想カメラから見える画像が生成される。従って、本発明によれば、あたかも手ぶれにより仮想カメラが振動したかのような錯覚を操作者（プレーヤ）に与えることができるようになり、画像の臨場感やリアル度を格段に高めることができる。
【００１０】
また本発明に係る画像生成装置、情報記憶媒体及びプログラムは、オブジェクト空間内で移動する移動体に仮想カメラの注視点を追従させるために仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方が変化した場合に、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して揺らぎを与えることを特徴とする。本発明によれば、操作者による操作、コンピュータによる操作、或いは移動体の移動を再現するための情報等に基づいて、移動体がオブジェクト空間内で移動する。そして、この移動体に仮想カメラの注視点を追従させるために、仮想カメラが所与の軸回りで回転したり、仮想カメラが移動すると、仮想カメラに対して揺らぎが与えられるようになる。この結果、移動体を追う仮想カメラから見える画像のリアル度、臨場感を増すことができる。
【００１１】
また本発明に係る画像生成装置、情報記憶媒体及びプログラムは、仮想カメラの回転角速度及び仮想カメラの速度の少なくとも一方に応じた揺らぎを、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して与えることを特徴とする。このようにすれば、仮想カメラの回転角速度（回転変化量）や速度（位置変化量）に基づいて、仮想カメラに揺らぎを与えるか否かを判断したり、上記回転角速度や上記速度に基づいて変化する揺らぎを、仮想カメラに与えたりすること等が可能になる。これにより、少ない処理負担で、よりリアルな画像を生成できるようになる。
【００１２】
また本発明に係る画像生成装置、情報記憶媒体及びプログラムは、仮想カメラの回転角速度が速いほど広くなる、或いは仮想カメラの速度が速いほど広くなる揺らぎ範囲を求め、該揺らぎ範囲内の揺らぎを、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して与えることを特徴とする。このようにすれば、仮想カメラの回転角速度や速度に応じて変化する揺らぎ範囲内で、仮想カメラを揺らすことができるようになる。なお、この場合に、仮想カメラに与える揺らぎは、揺らぎ関数や揺らぎ値テーブルなどに基づいて求めることが望ましい。
【００１３】
また本発明に係る画像生成装置、情報記憶媒体及びプログラムは、仮想カメラの回転角速度が所与の回転角速度より大きい場合、或いは仮想カメラの速度が所与の速度より大きい場合に、揺らぎの増加を制限することを特徴とする。このようにすれば、仮想カメラの回転角速度や速度が非常に大きくなることにより揺らぎが過大に大きくなる事態を、効果的に防止できるようになる。
【００１４】
また本発明は、画像を生成するための画像生成装置であって、オブジェクト空間内で移動体を移動させる演算を行う手段と、オブジェクト空間内の所与の視点での画像を生成するための仮想カメラを制御する手段と、移動体の位置と仮想カメラの注視点位置との間のオフセット値を可変に制御しながら、オブジェクト空間内を移動する移動体に仮想カメラの注視点を追従させる手段と、仮想カメラから見える画像を生成する手段とを含むことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実現（実行）するための情報（プログラム）を含むことを特徴とする。また本発明に係るプログラムは、コンピュータにより使用可能なプログラムであって、上記手段を実現（実行）するためのプログラムであることを特徴とする。
【００１５】
本発明によれば、仮想カメラが移動体を追う際に、移動体位置と注視点位置の間のオフセット値（２次元距離、３次元距離、角度等）が可変に制御される。これにより、画面内での移動体の位置が様々に変化する画像を生成できるようになる。この結果、得られる画像のバラエティ度を増すことができ、種々の演出効果を創出できるようになる。
【００１６】
また本発明に係る画像生成装置、情報記憶媒体及びプログラムは、オブジェクト空間内で移動する移動体に仮想カメラの注視点を追従させるために仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方が変化した場合に、仮想カメラの所与の軸回りでの回転及び仮想カメラの位置の少なくとも一方に対して揺らぎを与えることを特徴とする。このようにすれば、画面内での移動体の位置が様々に変化するバラエティ度の高い画像を生成できると共に、手ぶれ等が表現されたリアルな画像を生成できるようになる。
【００１７】
また本発明に係る画像生成装置、情報記憶媒体及びプログラムは、移動体からの距離及び移動体の速度の少なくとも一方に基づいて前記オフセット値を可変に制御することを特徴とする。このようにすれば、移動体からの距離や移動体の速度に応じてオフセット値を変化させるという簡易な処理で、多種多様な画像を生成できるようになる。
【００１８】
また本発明に係る画像生成装置、情報記憶媒体及びプログラムは、前記オフセット値又は該オフセット値を特定するための情報を、オブジェクト空間内のマップに設定しておくことを特徴とする。このようにすれば、マップの各場所に任意のオフセット値を設定できるようになり、少ない処理負担で、多種多様な画像を生成できるようになる。
【００１９】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて説明する。なお以下では、本発明を車ゲームに適用した場合を例にとり説明するが、本発明はこれに限定されず、種々のゲームに適用できる。
【００２０】
１．構成
図１に、本実施形態を業務用ゲーム装置に適用した場合の例を示す。
【００２１】
プレーヤは、シート１０４０に座り、画面１０５０に映し出されたゲーム画像を見ながら、ステアリング１０５２、アクセル１０５４、ブレーキ１０５６を操作する。そして、プレーヤがステアリング１０５２を操舵すると、画面１０５０に映し出されている車（オブジェクト空間内の移動体）１０６０が左右にコーナリングする。また、プレーヤがアクセル１０５４やブレーキ１０５６を操作すると、車１０６０が加速したり減速したりする。そしてプレーヤは、このように車１０６０を操作し、シート１０４２、１０４４、１０４６に座る他のプレーヤが操作する車や、コンピュータが操作する車と順位やラップタイムを競い合い、競争ゲームを楽しむ。
【００２２】
なお、ＣＣＤカメラ（撮影手段）１０６２は、プレーヤの顔画像（プレーヤ識別画像）を撮影するためのものである。ＣＣＤカメラ１０６２により撮影された顔画像を、そのプレーヤが操作する車に関連づけることで、どのプレーヤがどの車を操作しているかを容易に認識できるようになる。また、中継用ディスプレイ１０６４には、ゲームに参加しない第三者がマルチプレーヤゲームの様子を観戦したり、プレーヤが運転した車の走行の様子をリプレイするための、中継画面１０６６が表示される。また、スロット１０７２は、メモリーカード（携帯型情報記憶装置）１０７０を挿入するためのものである。このメモリーカード１０７０は家庭用ゲーム装置でも使用可能になっており、このメモリカード１０７０を介して、業務用ゲーム装置、家庭用ゲーム装置間での情報交換が可能になる。
【００２３】
図２に、本実施形態のブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１４０、或いは処理部１００と記憶部１４０と情報記憶媒体１５０を含めばよく）、それ以外のブロック（例えば操作部１３０、画像生成部１６０、表示部１６２、音生成部１７０、音出力部１７２、通信部１７４、Ｉ／Ｆ部１７６、メモリーカード１８０等）については、任意の構成要素とすることができる。
【００２４】
ここで処理部１００は、装置全体の制御、装置内の各ブロックへの命令の指示、ゲーム演算などの各種の処理を行うものであり、その機能は、ＣＰＵ（ＣＩＳＣ型、ＲＩＳＣ型）、ＤＳＰ、或いはＡＳＩＣ（ゲートアレイ等）などのハードウェアや、所与のプログラム（ゲームプログラム）により実現できる。
【００２５】
操作部１３０は、プレーヤが操作情報を入力するためのものであり、その機能は、図１のステアリング１０５２、アクセル１０５４、ブレーキ１０５６、操作ボタンなどのハードウェアにより実現できる。
【００２６】
記憶部１４０は、処理部１００、画像生成部１６０、音生成部１７０、通信部１７４、Ｉ／Ｆ部１７６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００２７】
情報記憶媒体（コンピュータにより使用可能な記憶媒体）１５０は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いは半導体メモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１５０に格納される情報に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１５０には、本発明（本実施形態）の手段（特に処理部１００に含まれるブロック）を実現するための種々の情報が格納される。
【００２８】
なお、情報記憶媒体１５０に格納される情報の一部又は全部は、装置への電源投入時等に記憶部１４０に転送されることになる。また情報記憶媒体１５０に記憶される情報は、本発明の処理を行うためのプログラムコード、画像情報、音情報、表示物の形状情報、テーブルデータ、リストデータ、プレーヤ情報や、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも１つを含むものである。
【００２９】
画像生成部１６０は、処理部１００からの指示等にしたがって、各種の画像を生成し表示部１６２に出力するものであり、その機能は、画像生成用ＡＳＩＣ、ＣＰＵ、或いはＤＳＰなどのハードウェアや、所与のプログラム（画像生成プログラム）、画像情報により実現できる。
【００３０】
音生成部１７０は、処理部１００からの指示等にしたがって、各種の音を生成し音出力部１７２に出力するものであり、その機能は、音生成用ＡＳＩＣ、ＣＰＵ、或いはＤＳＰなどのハードウェアや、所与のプログラム（音生成プログラム）、音情報（波形データ等）により実現できる。
【００３１】
通信部１７４は、外部装置（例えばホスト装置や他のゲーム装置）との間で通信を行うための各種の制御を行うものであり、その機能は、通信用ＡＳＩＣ、或いはＣＰＵなどのハードウェアや、所与のプログラム（通信プログラム）により実現できる。
【００３２】
なお本発明（本実施形態）の処理を実現するための情報は、ホスト装置が有する情報記憶媒体からネットワーク、通信部１７４を介してゲーム装置（広義には画像生成装置）が有する情報記憶媒体に配信するようにしてもよい。このようなホスト装置の情報記憶媒体の使用やゲーム装置の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００３３】
また処理部１００の機能の一部又は全部を、画像生成部１６０、音生成部１７０、又は通信部１７４の機能により実現するようにしてもよい。或いは、画像生成部１６０、音生成部１７０、又は通信部１７４の機能の一部又は全部を、処理部１００の機能により実現するようにしてもよい。
【００３４】
Ｉ／Ｆ部１７６は、処理部１００からの指示等にしたがってメモリーカード（広義には、携帯型ミニゲーム装置などを含む携帯型情報記憶装置）１８０との間で情報交換を行うためのインターフェースとなるものであり、その機能は、メモリーカードを挿入するためのスロットや、データ書き込み・読み出し用コントローラＩＣなどにより実現できる。なお、メモリーカード１８０との間の情報交換を赤外線などの無線を用いて実現する場合には、Ｉ／Ｆ部１７６の機能は、半導体レーザ、赤外線センサーなどのハードウェアにより実現できる。
【００３５】
処理部１００は、ゲーム演算部１１０を含む。
【００３６】
ここでゲーム演算部１１０は、コイン（代価）の受け付け処理、ゲームモードの設定処理、ゲームの進行処理、選択画面の設定処理、移動体（車等）の位置や方向を決める処理、視点位置や視線方向を決める処理、移動体のモーションを再生する処理、オブジェクト空間へオブジェクトを配置する処理、ヒットチェック処理、ゲーム成果（成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などの種々のゲーム演算処理を、操作部１３０からの操作情報、メモリーカード１８０からの情報、ゲームプログラムなどに基づいて行う。なお、本発明を車ゲーム以外のゲームに適用した場合には、移動体としては、キャラクタ、バイク、飛行機、船、水上スキー、サーフボード、戦車、ロボット、宇宙船等、種々のものを考えることができる。
【００３７】
ゲーム演算部１１０は、移動体演算部１１２、仮想カメラ制御部１１４を含む。
【００３８】
ここで移動体演算部１１２は、車などの移動体の移動情報（位置情報、方向情報等）を演算するものであり、例えば操作部１３０から入力される操作情報や所与のプログラムに基づき、移動体をオブジェクト空間内で移動させる演算などを行う。即ち、プレーヤ（自プレーヤ、他プレーヤ）による操作、或いはコンピュータ（所与の移動制御アルゴリズム）による操作等に基づいて、移動体をオブジェクト空間内で移動させる演算などを行う。
【００３９】
より具体的には、移動体演算部１１２は、移動体の位置や方向を例えば１フレーム（１／６０秒）毎に求める処理を行う。例えば（ｋ−１）フレームでの移動体の位置をＰＭk-1、速度をＶＭk-1、加速度をＡＭk-1、１フレームの時間を△ｔとする。するとｋフレームでの移動体の位置ＰＭk、速度ＶＭkは例えば下式（１）、（２）のように求められる。
【００４０】
ＰＭk＝ＰＭk-1＋ＶＭk-1×△ｔ              （１）
ＶＭk＝ＶＭk-1＋ＡＭk-1×△ｔ              （２）
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点での画像を生成するための仮想カメラを制御する処理を行う。即ち、仮想カメラの所与の軸（例えばＸ、Ｙ、Ｚ軸）回りでの回転や仮想カメラの位置を制御する処理（視点位置や視線方向を制御する処理）等を行う。
【００４１】
例えば、仮想カメラにより移動体を後方から撮影する場合には、移動体の位置の変化や方向の変化に仮想カメラが追従するように、仮想カメラの軸回り回転（仮想カメラの方向）や仮想カメラの位置を制御する処理を行う。この場合、移動体演算部１１２で得られた移動体の位置、方向又は速度などの情報に基づいて、仮想カメラを制御することになる。
【００４２】
一方、優秀プレーヤの移動体の走行をリプレイするリプレイモード時においては、仮想カメラ制御部１１４は、まず、コース沿い（コース脇）に設定された複数の仮想カメラの中から、撮影対象となる移動体に近い仮想カメラを選択する。そして、選択された仮想カメラを、撮影対象となる移動体の位置、方向又は速度などの情報に基づいて制御しながら、その仮想カメラにより、撮影対象となる移動体を撮影する。この場合、通常のゲームプレイ中における移動体の位置、方向又は速度などの情報（広義には、移動体の移動を再現するための情報であり、移動体の操作情報でもよい）を記憶部に蓄積しておく。そして、リプレイモード時では、この蓄積された情報に基づいて、移動体の走行（移動）をリプレイするようにする。
【００４３】
仮想カメラ制御部１１４は、揺らぎ（振動）設定部１１６、オフセット値制御部１１８を含む。
【００４４】
ここで、揺らぎ設定部１１６は、例えばオブジェクト空間内で移動する移動体を追うために、仮想カメラの所与の軸（例えばＸ、Ｙ又はＺ軸）回りでの回転、或いは仮想カメラの位置が変化した場合に、仮想カメラに揺らぎを与えるための処理（仮想カメラを振動させるための処理）、即ち、仮想カメラの所与の軸回りでの回転や仮想カメラの位置に対して揺らぎを与えるための処理を行う。
【００４５】
より具体的には、仮想カメラの回転角速度（回転変化量）、或いは仮想カメラの速度（位置変化量）に応じた揺らぎを、仮想カメラに与えるようにする。例えば、上記回転角速度、上記速度に基づいて、仮想カメラに揺らぎを与えるか否かを判断したり、上記回転角速度、上記速度によりその大きさが決まる揺らぎを仮想カメラに与えるようにする。
【００４６】
この場合、例えば、仮想カメラの回転角速度が速いほど広くなる、或いは仮想カメラの速度が速いほど広くなる揺らぎ範囲を求め、この揺らぎ範囲内に入るような揺らぎを、揺らぎ関数や揺らぎ値テーブルに基づいて求め、仮想カメラに与えるようにすることが望ましい。
【００４７】
また、揺らぎ設定部１１６は、仮想カメラの回転角速度が所与の回転角速度より大きい場合、或いは仮想カメラの速度が所与の速度より大きい場合に、揺らぎをリミット値に設定する処理（広義には、揺らぎの増加を制限する処理）も行う。
【００４８】
オフセット値制御部１１８は、移動体位置と仮想カメラの注視点位置との間のオフセット値を可変に制御する処理を行う。即ち、このオフセット値を可変に制御しながら、オブジェクト空間内を移動する移動体に仮想カメラの注視点を追従させる。このようにすれば、移動体を画面中心から任意の位置にずらしながら、移動体を仮想カメラで追うことが可能になり、ゲーム演出のバラエティ度を増すことができるようになる。そして、この場合、移動体を仮想カメラで追うことで、仮想カメラの軸回り回転や位置が変化すると、その変化量に応じた揺らぎが仮想カメラに与えられることになる。
【００４９】
なお、上記オフセット値は、例えば移動体からの距離（仮想カメラと移動体の距離、プレーヤ移動体と移動体との距離等）に基づいて変化させてもよいし、移動体の速度に基づいて変化させてもよいし、他の要因に基づいて変化させてもよい。
【００５０】
なお、本実施形態は、１人のプレーヤがプレイするシングルプレーヤモードによるゲームプレイと、複数のプレーヤがプレイするマルチプレーヤモードによるゲームプレイの両方が可能になっている。
【００５１】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供する画像や音を、１つのゲーム装置（広義には画像生成装置）を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数のゲーム装置を用いて生成してもよい。
【００５２】
２．本実施形態の特徴
図３（Ａ）、（Ｂ）に、本実施形態により生成される画像の例を示す。
【００５３】
図３（Ａ）、（Ｂ）は、リプレイモード（アトラクトモードの１つ）時に生成される画像の例である。即ち、本実施形態では、プレーヤが優秀な成績を残した場合に、ゲーム終了後、そのプレーヤが運転した車の走行の様子をプレーヤに見せるために、リプレイ画像を表示する。このリプレイ画像は、コース沿いに設定されたリプレイ用の仮想カメラから見える画像である。即ち、本実施形態ではコースに沿って複数のリプレイ用の仮想カメラが設置されている。そして、プレーヤの車の位置に基づいて、これらの複数のリプレイ用の仮想カメラの中から１つの仮想カメラが選択され、この仮想カメラにより、プレーヤの車の走行の様子が撮影される。
【００５４】
図３（Ａ）、（Ｂ）では、図４（Ａ）に示すようにコース上を移動する移動体（車）２０を、仮想カメラ３０が追っている（移動体に仮想カメラの注視点を追従させている）。このため、仮想カメラ３０が所与の軸回りで回転している。この場合に本実施形態では、図４（Ａ）に示すように仮想カメラ３０に対して揺らぎが与えられる。また、図４（Ｂ）では、移動体２０を追うために仮想カメラ３０の位置が変化しており、この場合にも本実施形態では、仮想カメラ３０に対して揺らぎが与えられる。より具体的には、図４（Ｃ）に示すように、仮想カメラ３０のＸ軸、Ｙ軸又はＺ軸回りでの回転（回転角）α、β、γ、或いは仮想カメラ３０の位置ＰＣが変化すると、これらのα、β、γ、或いはＰＣに対して揺らぎが与えられる。これにより、図３（Ａ）、（Ｂ）に示すように画面が揺らぐようになり、あたかも、移動体２０を追うことによる手ぶれにより仮想カメラ３０が振動したかのような錯覚をプレーヤに与えることができる。この結果、画像の臨場感やリアル度を格段に高めることができるようになる。
【００５５】
即ち、コース上で移動する移動体を仮想カメラで撮る場合、移動体と仮想カメラを結ぶベクトルを求め、このベクトルの方向に仮想カメラを向ける手法が考えられる。この手法によれば、図４（Ａ）のように移動体が移動しても、常に画面内に移動体が入るようになり、移動体の走行の様子を確実にプレーヤに見せることができるようになる。
【００５６】
しかしながら、この手法では、画面中心に移動体が常に固定されてしまい、いかにもコンピュータ制御の仮想カメラで撮ったというような単調な画像が生成されてしまう。
【００５７】
これに対して本実施形態では、移動体を追うために、仮想カメラが所与の軸回りで回転したりその位置が変化すると、仮想カメラに揺らぎが与えられる。従って、いかにもコンピュータ制御の仮想カメラで撮ったというような画像が生成されることが防止され、実際の人間が本当のカメラで撮ったかのように見える画像を生成できるようになる。しかも、本実施形態によれば、現実の人間の手ぶれを忠実にシミュレーションすることなく、手ぶれによる仮想カメラの揺らぎをプレーヤに擬似的に体感させることができる。即ち、少ない処理負担で、よりリアルな画像を生成することに成功している。
【００５８】
さて、本実施形態では、仮想カメラの回転角速度（仮想カメラの所与の軸回りでの回転の変化量）又は仮想カメラの速度（仮想カメラの位置の変化量）に応じた揺らぎを、仮想カメラ（仮想カメラの軸回り回転、位置）に与えるようにしている。
【００５９】
例えば図５（Ａ）、（Ｂ）に示すように、仮想カメラ３０の回転角速度が速い場合には仮想カメラの３０の揺らぎを大きくし、回転角速度が遅い場合には揺らぎを小さくする。
【００６０】
また図５（Ｃ）、（Ｄ）に示すように、仮想カメラ３０の速度が速い場合には仮想カメラの３０の揺らぎを大きくし、速度が遅い場合には揺らぎを小さくする。
【００６１】
例えば、いわゆるＣＧムービーでは、仮想カメラの回転角速度や仮想カメラの速度は全く考慮されない。従って、回転角速度の大小、速度の大小に依らずに、画一的な画像が表示されることになる。
【００６２】
これに対して本実施形態では、回転角速度の大小、速度の大小に応じて、生成される画像が異なって見えるようになる。即ち、あるプレーヤの走行リプレイ時における仮想カメラの揺れ（ぶれ）と、他のプレーヤの走行リプレイ時における仮想カメラの揺れとは異なったものになり、生成されるリプレイ画像も異なって見えるようになる。
【００６３】
例えば、上級プレーヤが運転する移動体（車）は、一般的に、仮想カメラの配置場所を、より速い速度で通過する。従って、この高速走行する移動体を追う仮想カメラの回転角速度や速度も速くなる。従って、仮想カメラの揺れも大きくなる。そして、そのリプレイ画像を見たプレーヤは、仮想カメラの大きな揺れを通して、自身が運転した移動体のスピード感を感じ取ることができるようになる。
【００６４】
このように図５（Ａ）〜（Ｄ）の手法を採用することで、本実施形態では、生成される画像のバラエティ度、リアル度を格段に増すことに成功している。
【００６５】
なお、図５（Ａ）〜（Ｄ）において、仮想カメラ３０の回転角速度そのもの、或いは速度そのものではなく、上記回転角速度と均等なパラメータ、或いは上記速度と均等なパラメータに基づいて仮想カメラ３０の揺らぎを制御する場合も本発明の範囲に含まれる。例えば仮想カメラ３０の相対的な回転角速度、或いは相対的な速度に基づいて仮想カメラ３０の揺らぎを制御してもよい。
【００６６】
また、本実施形態では、仮想カメラの回転角速度又は速度に応じて変化する揺らぎ範囲を求め、この揺らぎ範囲内の揺らぎを仮想カメラに与えるようにしている。
【００６７】
例えば図６（Ａ）に示すように、仮想カメラ３０の回転角速度が速い場合には、仮想カメラ３０の揺らぎ範囲４０を大きくする。また、仮想カメラ３０の速度が速い場合にも、仮想カメラ３０の揺らぎ範囲４０を大きくする。
【００６８】
一方、図６（Ｂ）に示すように、仮想カメラ３０の回転角速度が遅い場合には、仮想カメラ３０の揺らぎ範囲４０を小さくする。また、仮想カメラ３０の速度が遅い場合にも、仮想カメラ３０の揺らぎ範囲４０を小さくする。
【００６９】
このように図６（Ａ）、（Ｂ）では、仮想カメラの回転角速度や速度に応じて、揺らぎ範囲を決める。そして、この範囲内に入るような揺らぎを、揺らぎ関数や揺らぎ値テーブルに基づいて求める。このようにすれば、仮想カメラの回転角速度や速度に応じて変化する仮想カメラの揺らぎを、簡易な処理で実現できるようになる。
【００７０】
なお揺らぎ範囲としては、例えば、仮想カメラの軸回り回転の揺らぎ範囲、仮想カメラの位置の揺らぎ範囲、又は仮想カメラが向く方向の立体角の揺らぎ範囲などを考えることができる。
【００７１】
また本実施形態では、図７に示すように、仮想カメラ３０の回転角速度が上限値ωＬＭより大きい場合に、仮想カメラ３０の揺らぎの増加（揺らぎ範囲の拡大）を制限している（例えばリミット値に設定する）。また、仮想カメラ３０の速度が上限値ＶＬＭより大きい場合にも、揺らぎの増加を制限している。
【００７２】
このようにすれば、例えば仮想カメラの回転角速度や速度が非常に大きくなった場合にも、仮想カメラの揺らぎが過大になるのを防止できる。これにより、プレーヤに不自然感を与える事態を効果的に防止できるようになる。
【００７３】
さて、本実施形態では、仮想カメラが移動体を追う際に、移動体位置と仮想カメラの注視点位置との間のオフセット値（オフセット距離等）を可変に制御できるようになっている。
【００７４】
即ち、図８（Ａ）では、コース上を移動する移動体２０を仮想カメラ３０が追っている（注視点を移動体に追従させている）。この際に本実施形態では、図８（Ｂ）に示すように、移動体２０の位置（例えば代表点の位置）ＰＭと、仮想カメラ３０の注視点（注目点）の位置ＰＧとの間のオフセット値が可変に制御される。
【００７５】
例えば図３（Ａ）のゲーム画像では、注視点位置ＰＧと移動体位置ＰＭがほぼ一致しており（図８（Ｂ）の零オフセット）、移動体２０は画面中心付近に表示されている。そして、図３（Ｂ）のゲーム画像では、オフセット値が変化し、ＰＧがＰＭの後ろにくるようなる（図８（Ｂ）のマイナスオフセット）。この結果、移動体２０は画面中心よりも前に表示されるようになる。
【００７６】
また図９（Ａ）のゲーム画像では、ＰＧとＰＭがほぼ一致しており、移動体２０は画面中心付近に表示されている。そして、図９（Ｂ）、図１０のゲーム画像では、オフセット値が変化し、ＰＧがＰＭの前にくるようになる（図８（Ｂ）のプラスオフセット）。この結果、移動体２０は画面中心よりも後ろに表示されるようになる。
【００７７】
このようにＰＭ、ＰＧ間のオフセット値を可変に制御することで、ゲーム画像のバラエティ度を格段に増すことができるようになる。
【００７８】
即ち、仮想カメラに移動体を追わせる第１の手法として、仮想カメラと移動体を結ぶ第１のベクトルの方向に仮想カメラを向ける手法が考えられる。しかしながら、この第１の手法では、移動体は常に画面中心付近に表示されるようになり、得られる画像が、いかにもコンピュータ制御の仮想カメラで撮ったというような単調な画像になるという問題がある。
【００７９】
このような問題を解決する第２の手法として、仮想カメラと移動体を結ぶ第１のベクトルよりも少し遅れてその向きが変化する第２のベクトルを求め、この第２のベクトルの方向に仮想カメラを向ける手法も考えられる。しかしながら、この第２の手法では、移動体は常に画面中心よりも前に表示されるようになり、得られる画像が単調になる。
【００８０】
本実施形態によれば、図８（Ｂ）に示すように、移動体２０を仮想カメラ３０が追う際にＰＭ、ＰＧ間のオフセット値を可変に制御できる。従って、図３（Ａ）、（Ｂ）に示すように、移動体２０が遠くにある時には移動体２０を画面中心付近に表示し、移動体２０が仮想カメラの前を通り過ぎる時には移動体を画面中心よりも前に表示することができるようになる。これにより、移動体が高速で走行したがために仮想カメラの追従が遅れたかのような錯覚をプレーヤに与えることが可能になり、得られる画像のリアル度を増すことができる。
【００８１】
また本実施形態によれば、図９（Ａ）、（Ｂ）、図１０に示すように、移動体２０が遠くにある時には移動体２０を画面中心付近に表示し、移動体２０が仮想カメラの前を通り過ぎる時には移動体２０を画面中心よりも後ろに表示することができるようになる。これにより、移動体２０の先にあるカーブをプレーヤに見せる等の演出が可能になり、ゲーム演出のバラエティ度を増すことができる。
【００８２】
なお、移動体位置と注視点位置の間のオフセット値としては、オブジェクト空間内の３次元的な距離、画面上の２次元的な距離、仮想カメラ・移動体間を結ぶ方向と仮想カメラ・注視点間を結ぶ方向とのなす角度、或いは、これらの距離、角度と均等なパラメータ等、種々のものを考えることができる。
【００８３】
また、オフセット値は、移動体からの距離（移動体と仮想カメラの距離、移動体と仮想カメラの付近にある移動体との距離、或いは奥行き距離等）に基づいて制御することもできるし、移動体の速度（絶対速度、相対速度）に基づいて制御することもできる。
【００８４】
例えば図１１（Ａ）、（Ｂ）では、移動体２０と仮想カメラ３０の距離が遠い場合にはオフセット値を零（或いはほぼ零）に設定し、距離が近い場合にはオフセット値をマイナスに設定している。このようにすれば図３（Ａ）、（Ｂ）に示すように、移動体２０が遠く離れている場合には移動体２０が画面中心に表示され、移動体２０が近づくと画面中心よりも前に表示されるようになる。これにより、移動体２０が高速で走行しているがために仮想カメラの追従が遅れたかのような錯覚をプレーヤに与えることができ、スピード感のある画像を生成できるようになる。そして、この場合に、移動体２０の速度が速いほどオフセット値を大きくすれば、得られる画像のスピード感を更に増すことができるようになる。
【００８５】
また図１２（Ａ）、（Ｂ）では、移動体２０と仮想カメラ３０の距離が遠い場合にはオフセット値を零（或いはほぼ零）に設定し、距離が近い場合にはオフセット値をプラスに設定している。このようにすれば図９（Ａ）、（Ｂ）、図１０に示すように、移動体２０が遠く離れている場合には移動体２０が画面中心に表示され、移動体２０が近づくと画面中心よりも後ろに表示されるようになる。これにより、移動体２０の先にあるコースをプレーヤに見せること等が可能になり、効果的なゲーム演出が可能になる。
【００８６】
なお、オフセット値（或いはオフセット値を特定するための情報）を、オブジェクト空間内のマップに設定しておくようにしてもよい。より具体的には、オフセット値を、オブジェクト空間内のコース（広義にはマップ）を分割するコースブロックに関連づけて登録しておく。そして、移動体が位置するコースブロックを検索し、検索されたコースブロックに関連づけて登録されたオフセット値を用いて、仮想カメラを制御するようにする。
【００８７】
例えば、図１３（Ａ）では、オブジェクト空間内のコース５０を複数のコースブロックＣ0〜Ｃ1024に分割している。コース５０は、道のり距離で例えば１ｍ間隔毎にコースブロックに分割される。そして図１３（Ｂ）において、移動体２０がコースブロックＣｊ内に位置するか否かを、ライン５２、５４の配置情報により判定する。そして、移動体２０が位置するコースブロックを特定することで、移動体２０の順位を決めたり時間延長の可否を決めている。例えば第１の移動体がコースブロックＣ18に位置し、それを追いかける第２の移動体がコースブロックＣ17に位置した場合には、第１、第２の移動体の順位を、各々、１位、２位と判断する。また所与の時間内に、あるコースブロックを通過したか否かを判定し、通過した場合にはそのプレーヤのプレイ時間を延長する。
【００８８】
このようにコース５０を複数のコースブロックに分割した場合に、図１４に示すように、各コースブロックに関連づけてオフセット値を登録（設定）しておく。即ち、コースブロックＣ０、Ｃ１、Ｃ２・・・・に対して、その各コースブロックでのオフセット値ＯＦＦ０、ＯＦＦ１、ＯＦＦ２・・・・を登録しておく。そして、移動体２０がコースブロックＣ０、Ｃ１、Ｃ２・・・に位置すると判断した場合には、各々、オフセット値ＯＦＦ０、ＯＦＦ１、ＯＦＦ２を用いて仮想カメラを制御するようにする。
【００８９】
このようにすれば、コースの各場所に適したオフセット値で仮想カメラを制御できるようになるため、ゲーム演出のバラエティ度を更に増すことができるようになる。例えば、コースの第１の場所では、距離に依らずにオフセット値を常にマイナスにし、第２の場所では、距離に依らずにオフセット値を常にプラスにすることなども可能になる。
【００９０】
また、移動体が仮想カメラを右から左に通り過ぎる場合を考える。この場合に、オフセット値をコースブロックに登録する手法によれば、移動体が仮想カメラの右に位置する場合にはオフセット値を零に設定し、移動体が仮想カメラの前に来た場合にはオフセット値をプラスに設定し、左へ通り過ぎた場合にも、そのままオフセット値をプラスに設定する等のゲーム演出が可能になる。
【００９１】
３．本実施形態の処理
次に、本実施形態の詳細な処理例について図１５、図１６のフローチャートを用いて説明する。
【００９２】
まず図１７に示すように、移動体２０からの距離ＤＭＣと移動体２０の速度ＶＭを得る（ステップＳ１）。そして、これらの距離ＤＭＣ、速度ＶＭに基づいて、オフセット値ベクトルＶＯＦＦを求める（ステップＳ２）。
【００９３】
次に、移動体２０の位置（例えば代表点の位置）ＰＭとオフセット値ベクトルＶＯＦＦに基づいて、注視点（注目点）の位置ＰＧを求める（ステップＳ３）。そして、仮想カメラ３０の位置（視点位置）ＰＣからＰＧへと向かう注視点方向単位ベクトルＥＯＦＦを求める（ステップＳ４）。
【００９４】
次に、前のフレームでの注視点方向単位ベクトルＥＯＦＦと、当該フレームでの注視点方向単位ベクトルＥＯＦＦとの差分（差分ベクトル）の絶対値に基づき、仮想カメラ３０の回転角速度パラメータＮωを求める（ステップＳ５）。このＮωは、仮想カメラ３０の揺らぎ範囲（図６（Ａ）、（Ｂ）参照）を設定するパラメータになる。
【００９５】
なお、ステップＳ２で求められるオフセット値ベクトルＶＯＦＦの方向は、移動体２０の移動方向に基づいて決めてもよいし、前のフレームでの注視点方向単位ベクトルＥＯＦＦの方向（ＥＯＦＦに直交する方向）に基づいて決めてもよい。
【００９６】
次に、回転角速度パラメータＮωが、リミット値ωＬＭよりも大きいか否かを判断し（ステップＳ６）、大きい場合には、図１８（Ａ）に示すように、Ｎωをリミット値ωＬＭに設定する（ステップＳ７）。このようにすることで、図７で説明したように、ＮωがωＬＭより大きい場合には、仮想カメラの揺らぎを制限できるようになる。従って、仮想カメラの回転角速度が非常に大きくなった場合に、仮想カメラの揺らぎが過大になるのを防止できるようになる。
【００９７】
次に、仮想カメラの速度に基づいて、仮想カメラの速度パラメータＮＶを求める（ステップＳ８）。このＮＶは、仮想カメラ３０の揺らぎ範囲（図６（Ａ）、（Ｂ）参照）を設定するパラメータになる。
【００９８】
次に、速度パラメータＮＶが、リミット値ＶＬＭよりも大きいか否かを判断し（ステップＳ９）、大きい場合には、図１８（Ｂ）に示すように、ＮＶをリミット値ＶＬＭに設定する（ステップＳ１０）。このようにすることで、図７で説明したように、ＮＶがＶＬＭより大きい場合には、仮想カメラの揺らぎを制限できるようになる。従って、仮想カメラの速度が非常に大きくなった場合に、仮想カメラの揺らぎが過大になるのを防止できるようになる。
【００９９】
次に、パラメータＮω、ＮＶと揺らぎ関数ＦＸ、ＦＹに基づいて、Ｘ軸、Ｙ軸回りでの揺らぎ角度を求める（ステップＳ１１）。ここで、揺らぎ関数ＦＸ、ＦＹは、各々、Ｘ軸、Ｙ軸回りの回転に関する揺らぎ関数である。
【０１００】
このように揺らぎ角度θＸ、θＹを決めることで、図６（Ａ）、（Ｂ）で説明したように、仮想カメラの回転角速度又は速度が速いほど広くなる揺らぎ範囲を設定し、この揺らぎ範囲内での揺らぎを、仮想カメラに与えることが可能になる。即ち、Ｘ軸、Ｙ軸回りの回転角の揺らぎ範囲は、パラメータＮω、ＮＶにより決められ、その揺らぎ範囲内で、揺らぎ角度θＸ、θＹが変化するようになるからである。
【０１０１】
次に、揺らぎ角度θＸ、θＹに基づいて、揺らぎ回転マトリクスＭＴθを求める（ステップＳ１２）。
【０１０２】
次に、図１５のステップＳ４で得られた注視点方向単位ベクトルＥＯＦＦに基づいて、仮想カメラの回転マトリクスＭＴＣを求める（ステップＳ１３）。そして、得られた回転マトリクスＭＴＣに対して揺らぎ回転マトリクスＭＴθを掛ける（ステップＳ１４）。そして、得られた回転マトリクスＭＴＣ＝ＭＴＣ×ＭＴθに基づいて、仮想カメラを回転させる（ステップＳ１５）。
【０１０３】
以上のようにすることで、仮想カメラの回転角速度や速度に応じた揺らぎを仮想カメラに与えることができるようになると共に、移動体位置と注視点位置の間のオフセット値を可変に制御できるようになる。
【０１０４】
４．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図１９を用いて説明する。同図に示す装置では、ＣＰＵ１０００、ＲＯＭ１００２、ＲＡＭ１００４、情報記憶媒体１００６、音生成ＩＣ１００８、画像生成ＩＣ１０１０、Ｉ／Ｏポート１０１２、１０１４が、システムバス１０１６により相互にデータ送受信可能に接続されている。そして前記画像生成ＩＣ１０１０にはディスプレイ１０１８が接続され、音生成ＩＣ１００８にはスピーカ１０２０が接続され、Ｉ／Ｏポート１０１２にはコントロール装置１０２２が接続され、Ｉ／Ｏポート１０１４には通信装置１０２４が接続されている。
【０１０５】
情報記憶媒体１００６は、プログラム、表示物を表現するための画像データ、音データ等が主に格納されるものである。例えば家庭用ゲーム装置ではゲームプログラム等を格納する情報記憶媒体としてＤＶＤ、ＣＤ−ＲＯＭ、ゲームカセット、等が用いられる。また業務用ゲーム装置ではＲＯＭ等のメモリが用いられ、この場合には情報記憶媒体１００６はＲＯＭ１００２になる。
【０１０６】
コントロール装置１０２２はゲームコントローラ、操作パネル等に相当するものであり、プレーヤがゲーム進行に応じて行う判断の結果を装置本体に入力するための装置である。
【０１０７】
情報記憶媒体１００６に格納されるプログラム、ＲＯＭ１００２に格納されるシステムプログラム（装置本体の初期化情報等）、コントロール装置１０２２によって入力される信号等に従って、ＣＰＵ１０００は装置全体の制御や各種データ処理を行う。ＲＡＭ１００４はこのＣＰＵ１０００の作業領域等として用いられる記憶手段であり、情報記憶媒体１００６やＲＯＭ１００２の所与の内容、あるいはＣＰＵ１０００の演算結果等が格納される。また本実施形態を実現するための論理的な構成を持つデータ構造は、このＲＡＭ又は情報記憶媒体上に構築されることになる。
【０１０８】
更に、この種の装置には音生成ＩＣ１００８と画像生成ＩＣ１０１０とが設けられていてゲーム音やゲーム画像の好適な出力が行えるようになっている。音生成ＩＣ１００８は情報記憶媒体１００６やＲＯＭ１００２に記憶される情報に基づいて効果音やバックグラウンド音楽等のゲーム音を生成する集積回路であり、生成されたゲーム音はスピーカ１０２０によって出力される。また、画像生成ＩＣ１０１０は、ＲＡＭ１００４、ＲＯＭ１００２、情報記憶媒体１００６等から送られる画像情報に基づいてディスプレイ１０１８に出力するための画素情報を生成する集積回路である。なおディスプレイ１０１８として、いわゆるヘッドマウントディスプレイ（ＨＭＤ）と呼ばれるものを使用することもできる。
【０１０９】
また、通信装置１０２４はゲーム装置内部で利用される各種の情報を外部とやりとりするものであり、他のゲーム装置と接続されてゲームプログラムに応じた所与の情報を送受したり、通信回線を介してゲームプログラム等の情報を送受することなどに利用される。
【０１１０】
そして図１〜図１８（Ｂ）で説明した種々の処理は、プログラムやデータなどの情報を格納した情報記憶媒体１００６、この情報記憶媒体１００６からの情報等に基づいて動作するＣＰＵ１０００、画像生成ＩＣ１０１０或いは音生成ＩＣ１００８等によって実現される。なお画像生成ＩＣ１０１０、音生成ＩＣ１００８等で行われる処理は、ＣＰＵ１０００あるいは汎用のＤＳＰ等によりソフトウェア的に行ってもよい。
【０１１１】
前述の図１のように本実施形態を業務用ゲーム装置に適用した場合には、装置に内蔵されるシステムボード（サーキットボード）１１０６には、ＣＰＵ、画像生成ＩＣ、音生成ＩＣ等が実装される。そして、本実施形態（本発明）を実現（実行）するための種々の情報は、システムボード１１０６上の情報記憶媒体である半導体メモリ１１０８に格納される。以下、これらの情報を格納情報と呼ぶ。
【０１１２】
図２０（Ａ）に、本実施形態を家庭用のゲーム装置に適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２、１２０４を操作してゲームを楽しむ。この場合、上記格納情報は、本体装置に着脱自在な情報記憶媒体であるＤＶＤ１２０６、メモリーカード１２０８、１２０９等に格納されている。
【０１１３】
図２０（Ｂ）に、ホスト装置１３００と、このホスト装置１３００と通信回線（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）１３０２を介して接続される端末１３０４-1〜１３０４-nとを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、半導体メモリ等の情報記憶媒体１３０６に格納されている。端末１３０４-1〜１３０４-nが、ＣＰＵ、画像生成ＩＣ、音処理ＩＣを有し、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-1〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-1〜１３０４-nに伝送し端末において出力することになる。
【０１１４】
なお、図２０（Ｂ）の構成の場合に、本発明の処理を、ホスト装置と端末とで（サーバーを設ける場合にはホスト装置とサーバーと端末とで）分散して処理するようにしてもよい。また、本発明を実現するための上記格納情報を、ホスト装置の情報記憶媒体と端末の情報記憶媒体（或いはホスト装置の情報記憶媒体とサーバの情報記憶媒体と端末の情報記憶媒体）に分散して格納するようにしてもよい。
【０１１５】
また通信回線に接続する端末は、家庭用ゲーム装置であってもよいし業務用ゲーム装置であってもよい。そして、業務用ゲーム装置を通信回線に接続する場合には、業務用ゲーム装置との間で情報のやり取りが可能であると共に家庭用ゲーム装置との間でも情報のやり取りが可能な携帯型情報記憶装置（メモリーカード、携帯型ゲーム装置）を用いることが望ましい。
【０１１６】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１１７】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１１８】
また、本実施形態では、リプレイ画像の生成に本発明を適用した場合について説明したが、本発明はゲームプレイ中の画像の生成にも当然に適用できる。例えば、ダンジョン内でキャラクタ（移動体）が宝物等を探して歩き回るゲームを考える。このようなゲームでは、キャラクタを追うために、仮想カメラが所与の軸回りで回転したり移動した場合に、仮想カメラに揺らぎを与えるようにする。また、キャラクタの位置とキャラクタを追う仮想カメラの注視点位置との間のオフセット値を、所与の条件により可変に制御するようにする。
【０１１９】
また、本実施形態では、移動体に仮想カメラの注視点を追従させるために、仮想カメラの軸回り回転や仮想カメラの位置が変化する場合について説明した。しかしながら、仮想カメラの軸回り回転や仮想カメラの位置が変化し仮想カメラに揺らぎが与えられる状況としては、このように仮想カメラが移動体を追う状況に限定されず、種々の状況を考えることができる。
【０１２０】
また、本実施形態では、仮想カメラの所与の軸回りでの回転や仮想カメラの位置に対して揺らぎを与える場合について説明したが、上記回転や上記位置と均等なものに揺らぎを与える場合も本発明の範囲に含まれる。
【０１２１】
また、オフセット値の制御手法も、図１１〜図１４で説明したものに限定されず、種々の変形実施が可能である。
【０１２２】
また本発明は車ゲーム以外にも種々のゲーム（飛行機ゲーム、宇宙船ゲーム、バイクゲーム、格闘ゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、シューティングゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム、クイズゲーム等）に適用できる。
【０１２３】
また本発明は、業務用ゲーム装置、家庭用ゲーム装置、多数のプレーヤが参加する大型アトラクション装置、シミュレータ、マルチメディア端末、画像生成装置、ゲーム画像を生成するシステム基板等の種々の画像生成装置に適用できる。
【図面の簡単な説明】
【図１】本実施形態を業務用ゲーム装置に適用した場合の構成例を示す図である。
【図２】本実施形態のブロック図の例である。
【図３】図３（Ａ）、（Ｂ）は、本実施形態により生成される画像の例である。
【図４】図４（Ａ）、（Ｂ）、（Ｃ）は、仮想カメラが所与の軸回りに回転したり移動した場合に仮想カメラに揺らぎを与える手法について説明するための図である。
【図５】図５（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）は、仮想カメラの回転角速度、速度に応じた揺らぎを仮想カメラに与える手法について説明するための図である。
【図６】図６（Ａ）、（Ｂ）は、仮想カメラの回転角速度、速度に応じて揺らぎ範囲を変化させる手法について説明するための図である。
【図７】仮想カメラの揺らぎをリミット値に制限する手法について説明するための図である。
【図８】図８（Ａ）、（Ｂ）は、移動体位置と注視点位置のオフセット値を可変に制御しながら、仮想カメラに移動体を追わせる手法について説明するための図である。
【図９】図９（Ａ）、（Ｂ）は、本実施形態により生成される画像の例である。
【図１０】本実施形態により生成される画像の例である。
【図１１】図１１（Ａ）、（Ｂ）は、移動体からの距離に基づいてオフセット値を制御する手法について説明するための図である。
【図１２】図１２（Ａ）、（Ｂ）も、移動体からの距離に基づいてオフセット値を制御する手法について説明するための図である。
【図１３】図１３（Ａ）、（Ｂ）は、コースブロックを利用する手法について説明するための図である。
【図１４】コースブロックに関連づけてオフセット値を登録する手法について説明するための図である。
【図１５】本実施形態の詳細な処理例を示すフローチャートの一例である。
【図１６】本実施形態の詳細な処理例を示すフローチャートの一例である。
【図１７】本実施形態の詳細な処理について説明するための図である。
【図１８】図１８（Ａ）、（Ｂ）は、回転角速度パラメータＮω、速度パラメータＮＶについて説明するための図である。
【図１９】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図２０】図２０（Ａ）、（Ｂ）は、本実施形態が適用される種々の形態の装置の例を示す図である。
【符号の説明】
２０    移動体
３０    仮想カメラ
４０    揺らぎ範囲
５０    コース
１００  処理部
１１０  ゲーム演算部
１１２  移動体演算部
１１４  仮想カメラ制御部
１１６  揺らぎ設定部
１１８  オフセット値制御部
１３０  操作部
１４０  記憶部
１５０  情報記憶媒体
１６０  画像生成部
１６２  表示部
１７０  音生成部
１７２  音出力部
１７４  通信部
１７６  Ｉ／Ｆ部
１８０  メモリーカード
【図１】
0004223139.tif 000002
【図２】
0004223139.tif 000003
【図３】
0004223139.tif 000004
【図４】
0004223139.tif 000005
【図５】
0004223139.tif 000006
【図６】
0004223139.tif 000007
【図７】
0004223139.tif 000008
【図８】
0004223139.tif 000009
【図９】
0004223139.tif 000010
【図１０】
0004223139.tif 000011
【図１１】
0004223139.tif 000012
【図１２】
0004223139.tif 000013
【図１３】
0004223139.tif 000014
【図１４】
0004223139.tif 000015
【図１５】
0004223139.tif 000016
【図１６】
0004223139.tif 000017
【図１７】
0004223139.tif 000018
【図１８】
0004223139.tif 000019
【図１９】
0004223139.tif 000020
【図２０】
0004223139.tif 000021