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