(57)【要約】      （修正有）【課題】  視認性が高く迫力のある画像を実現する仮想カメラ制御処理を行う。【解決手段】  仮想カメラ制御部が、第１の移動オブジェクトＣＨ１の位置と第２の移動オブジェクトＣＨ２の位置とが近づくにつれて、第１の移動オブジェクトＣＨ１と仮想カメラとの距離である第１の距離ｄ１と、第２の移動オブジェクトＣＨ２と仮想カメラとの距離である第２の距離ｄ２と、の差が小さくなるように仮想カメラの位置ＣＭを変化させ、第１の移動オブジェクトＣＨ１の位置と第２の移動オブジェクトＣＨ２の位置とが離れるにつれて、第１の距離ｄ１と第２の距離ｄ２との差が大きくなるように仮想カメラの位置ＣＭを変化させる。【選択図】        図４
2006268818.tif 000002
【特許請求の範囲】
【請求項１】
画像を生成するためのプログラムであって、
第１の移動オブジェクト及び第２の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第１の移動オブジェクト及び第２の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも１つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部として、
コンピュータを機能させ、
前記仮想カメラ制御部が、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが近づくにつれて、第１の移動オブジェクトと仮想カメラとの距離である第１の距離と、第２の移動オブジェクトと仮想カメラとの距離である第２の距離と、の差が小さくなるように仮想カメラの位置を変化させ、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが離れるにつれて、前記第１の距離と前記第２の距離との差が大きくなるように仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記仮想カメラ制御部が、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが近づくにつれて、第１の移動オブジェクトと第２の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向とのなす角が直角に近づくように仮想カメラの向きを変化させ、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが離れるにつれて、第１の移動オブジェクトと第２の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向とのなす角が直角から遠ざかるように仮想カメラの向きを変化させることを特徴とするプログラム。
【請求項３】
画像を生成するためのプログラムであって、
第１の移動オブジェクト及び第２の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第１の移動オブジェクト及び第２の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも１つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部として、
コンピュータを機能させ、
前記仮想カメラ制御部が、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが近づくにつれて、第１の移動オブジェクトと仮想カメラとの距離である第１の距離と、第２の移動オブジェクトと仮想カメラとの距離である第２の距離と、の差が小さくなるように仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項４】
請求項３において、
前記仮想カメラ制御部が、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが近づくにつれて、第１の移動オブジェクトと第２の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向とのなす角が直角に近づくように仮想カメラの向きを変化させることを特徴とするプログラム。
【請求項５】
画像を生成するためのプログラムであって、
第１の移動オブジェクト及び第２の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第１の移動オブジェクト及び第２の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも１つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部として、
コンピュータを機能させ、
前記仮想カメラ制御部が、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが離れるにつれて、第１の移動オブジェクトと仮想カメラとの距離である第１の距離と第２の移動オブジェクトと仮想カメラとの距離である第２の距離との差が大きくなるように仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項６】
請求項５において、
前記仮想カメラ制御部が、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが離れるにつれて、第１の移動オブジェクトと第２の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向とのなす角が直角から遠ざかるように仮想カメラの向きを変化させることを特徴とするプログラム。
【請求項７】
請求項１〜６のいずれかにおいて、
前記仮想カメラ制御部が、
仮想カメラの位置を変化させる場合には、仮想カメラの視野範囲内に第１の移動オブジェクトと第２の移動オブジェクトとが入る範囲内で仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項８】
請求項１〜７のいずれかにおいて、
前記仮想カメラ制御部が、
仮想カメラの向きを変化させる場合には、仮想カメラの視野範囲内に第１の移動オブジェクトと第２の移動オブジェクトとが入る範囲内で仮想カメラの向きを変化させることを特徴とするプログラム。
【請求項９】
請求項１〜７のいずれかにおいて、
前記仮想カメラ制御部が、
仮想カメラの向きを変化させる場合には、第１の移動オブジェクトと第２の移動オブジェクトとに対して所定の位置関係を有する点を向くように仮想カメラの向きを変化させることを特徴とするプログラム。
【請求項１０】
請求項１〜９のいずれかにおいて、
前記仮想カメラ制御部が、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが所与の距離まで近づいた場合に、前記第１の距離と前記第２の距離との差が０となるように仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項１１】
請求項１〜１０のいずれかにおいて、
前記仮想カメラ制御部が、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置、第１の移動オブジェクトと第２の移動オブジェクトとの距離、の少なくとも一方を変数とした所定の関数に基づいて、仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項１２】
請求項１〜１１のいずれかにおいて、
前記仮想カメラ制御部が、
前記移動オブジェクトに設定された属性データに応じて、仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項１３】
請求項１〜１２のいずれかにおいて、
第１の移動オブジェクトの移動及び動作の少なくとも一方が、操作部からの入力信号に基づき操作可能に形成され、
前記仮想カメラ制御部が、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが離れるにつれて、前記第２の距離に対する前記第１の距離の比が小さくなるように仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項１４】
請求項１〜１３のいずれかにおいて、
第１〜第Ｎ（Ｎ≧３）の移動オブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第１の移動オブジェクトを除くＮ−１個の移動オブジェクトから１の移動オブジェクトを選択するオブジェクト選択部として、
コンピュータを更に機能させ、
前記仮想カメラ制御部が、
前記オブジェクト選択部により選択された移動オブジェクトを第２の移動オブジェクトとして、仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項１５】
請求項１４において、
前記仮想カメラ制御部が、
前記オブジェクト選択部により１の移動オブジェクトが選択された場合には、選択された移動オブジェクトを第２の移動オブジェクトとして仮想カメラの位置を変化させ、
前記オブジェクト選択部により移動オブジェクトが選択されていない場合には、操作部からの入力信号に基づき仮想カメラの位置及び向きの少なくとも一方を変化させることを特徴とするプログラム。
【請求項１６】
画像を生成するためのプログラムであって、
第１の移動オブジェクト及び第２の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第１の移動オブジェクト及び第２の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも１つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部と、
第１の条件又は第２の条件のいずれかが満たされたか否かを判定する判定部として、
コンピュータを機能させ、
前記仮想カメラ制御部が、
第１の条件が満たされた場合に、第１の移動オブジェクトと仮想カメラとの距離である第１の距離と、第２の移動オブジェクトと仮想カメラとの距離である第２の距離と、の差が小さくなるように仮想カメラの位置を変化させ、
第２の条件が満たされた場合に、前記第１の距離と前記第２の距離との差が大きくなるように仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項１７】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１〜１６のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１８】
画像生成システムであって、
第１の移動オブジェクト及び第２の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第１の移動オブジェクト及び第２の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも１つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部と、
を含み、
前記仮想カメラ制御部が、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが近づくにつれて、第１の移動オブジェクトと仮想カメラとの距離である第１の距離と、第２の移動オブジェクトと仮想カメラとの距離である第２の距離と、の差が小さくなるように仮想カメラの位置を変化させ、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが離れるにつれて、前記第１の距離と前記第２の距離との差が大きくなるように仮想カメラの位置を変化させることを特徴とする画像生成システム。
【請求項１９】
画像生成システムであって、
第１の移動オブジェクト及び第２の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第１の移動オブジェクト及び第２の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも１つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部と、
第１の条件又は第２の条件のいずれかが満たされたか否かを判定する判定部と、
を含み、
前記仮想カメラ制御部が、
第１の条件が満たされた場合に、第１の移動オブジェクトと仮想カメラとの距離である第１の距離と、第２の移動オブジェクトと仮想カメラとの距離である第２の距離と、の差が小さくなるように仮想カメラの位置を変化させ、
第２の条件が満たされた場合に、前記第１の距離と前記第２の距離との差が大きくなるように仮想カメラの位置を変化させることを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
このような画像生成システムでは、オブジェクト空間内を移動する複数のオブジェクトを仮想カメラの視野範囲に収めるために、仮想カメラの位置を制御する場合がある。このような仮想カメラの制御を行う技術としては例えば特開２００１−２５５８０号公報に開示される従来技術がある。しかしながら、従来の画像生成システムでは、オブジェクト間の距離が離れれば離れるほど、仮想カメラの位置を対象オブジェクトから遠ざかるように制御していたため、表示されるオブジェクトが小さくなり視認しにくくなるという問題があった。
【特許文献１】特開２００１−２５５８０号公報
【特許文献２】特開平１１−７５４３号公報
【特許文献３】特開２００３−９３７３５号公報
【特許文献４】特開平１１−２３５４６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、視認性が高く迫力のある画像を実現する仮想カメラ制御処理を行うことができるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００５】
（１）本発明は、画像を生成する画像生成システムであって、
第１の移動オブジェクト及び第２の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第１の移動オブジェクト及び第２の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも１つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部と、
を含み、
前記仮想カメラ制御部が、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが近づくにつれて、第１の移動オブジェクトと仮想カメラとの距離である第１の距離と、第２の移動オブジェクトと仮想カメラとの距離である第２の距離と、の差が小さくなるように仮想カメラの位置を変化させ、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが離れるにつれて、前記第１の距離と前記第２の距離との差が大きくなるように仮想カメラの位置を変化させることを特徴とする画像生成システムに関係する。
【０００６】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【０００７】
本発明において、第１の移動オブジェクト及び第２の移動オブジェクトとは、それぞれが１の移動オブジェクトから構成されていてもよいし、少なくとも一方が所定範囲内に配置された複数のオブジェクト群から構成されるようにしてもよい。
【０００８】
本発明によれば、第１の移動オブジェクトと第２の移動オブジェクトとの位置が近づくにつれて、第１の移動オブジェクト及び第２の移動オブジェクトの双方の仮想カメラに対する奥行き方向の距離の差を近づけることができ、第１の移動オブジェクトと第２の移動オブジェクトとの間の距離をわかりやすく表示させることができる。
【０００９】
また、第１の移動オブジェクトと第２の移動オブジェクトとの位置が近づくにつれて、第１の移動オブジェクト及び第２の移動オブジェクトの双方に対して仮想カメラを近づけることができるので、第１の移動オブジェクト及び第２の移動オブジェクトの双方を画像において大きく表示させることができ、双方のオブジェクトの視認性を高めることができる。
【００１０】
加えて、第１の移動オブジェクトと第２の移動オブジェクトとの位置が離れるにつれて、第１の移動オブジェクト又は第２の移動オブジェクトのいずれか一方に対しては仮想カメラを遠ざけつつも、他方に対しては仮想カメラを近づけたままとすることができる。
【００１１】
従って、第１の移動オブジェクトと第２の移動オブジェクトとの位置が離れたとしても、第１の移動オブジェクト又は第２の移動オブジェクトのいずれか一方を画像において大きく表示させることができ、いずれか一方のオブジェクトの視認性を高めることができる。
【００１２】
（２）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが近づくにつれて、第１の移動オブジェクトと第２の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向とのなす角が直角に近づくように仮想カメラの向きを変化させ、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが離れるにつれて、第１の移動オブジェクトと第２の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向とのなす角が直角から遠ざかるように仮想カメラの向きを変化させるようにしてもよい。
【００１３】
本発明において、第１の移動オブジェクトと第２の移動オブジェクトとを結ぶ方向とは、例えば、それぞれのオブジェクトの代表点を結んだ線に沿う方向とすることができる。
【００１４】
本発明によれば、第１の距離と第２の距離との差が小さくなるように仮想カメラの位置を変化させても、また、第１の距離と第２の距離との差が大きくなるように仮想カメラの位置を変化させても、第１の移動オブジェクトと第２の移動オブジェクトとを仮想カメラの視野範囲内に収め、第１の移動オブジェクトと第２の移動オブジェクトの双方を表示させることができる。
【００１５】
（３）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
第１の移動オブジェクト及び第２の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第１の移動オブジェクト及び第２の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも１つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部と、
を含み、
前記仮想カメラ制御部が、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが近づくにつれて、第１の移動オブジェクトと仮想カメラとの距離である第１の距離と、第２の移動オブジェクトと仮想カメラとの距離である第２の距離と、の差が小さくなるように仮想カメラの位置を変化させるようにしてもよい。
【００１６】
本発明によれば、第１の移動オブジェクトと第２の移動オブジェクトとの位置が近づくにつれて、第１の移動オブジェクト及び第２の移動オブジェクトの双方の仮想カメラに対する奥行き方向の距離の差を近づけることができ、第１の移動オブジェクトと第２の移動オブジェクトとの間の距離をわかりやすく表示させることができる。
【００１７】
また、第１の移動オブジェクトと第２の移動オブジェクトとの位置が近づくにつれて、第１の移動オブジェクト及び第２の移動オブジェクトの双方に対して仮想カメラを近づけることができるので、第１の移動オブジェクト及び第２の移動オブジェクトの双方を画像において大きく表示させることができ、双方のオブジェクトの視認性を高めることができる。
【００１８】
（４）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが近づくにつれて、第１の移動オブジェクトと第２の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向とのなす角が直角に近づくように仮想カメラの向きを変化させるようにしてもよい。
【００１９】
本発明によれば、第１の距離と第２の距離との差が小さくなるように仮想カメラの位置を変化させても、第１の移動オブジェクトと第２の移動オブジェクトとを仮想カメラの視野範囲内に収め、第１の移動オブジェクトと第２の移動オブジェクトの双方を表示させることができる。
【００２０】
（５）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
第１の移動オブジェクト及び第２の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第１の移動オブジェクト及び第２の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも１つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部と、
を含み、
前記仮想カメラ制御部が、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが離れるにつれて、前記第１の距離と前記第２の距離との差が大きくなるように仮想カメラの位置を変化させるようにしてもよい。
【００２１】
本発明によれば、第１の移動オブジェクトと第２の移動オブジェクトとの位置が離れるにつれて、第１の移動オブジェクト又は第２の移動オブジェクトのいずれか一方に対しては仮想カメラを遠ざけつつも、他方に対しては仮想カメラを近づけたままとすることができる。
【００２２】
従って、第１の移動オブジェクトと第２の移動オブジェクトとの位置が離れたとしても、第１の移動オブジェクト又は第２の移動オブジェクトのいずれか一方を画像において大きく表示させることができ、いずれか一方のオブジェクトの視認性を高めることができる。
【００２３】
（６）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが離れるにつれて、第１の移動オブジェクトと第２の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向とのなす角が直角から遠ざかるように仮想カメラの向きを変化させるようにしてもよい。
【００２４】
本発明によれば、第１の距離と第２の距離との差が大きくなるように仮想カメラの位置を変化させても、第１の移動オブジェクトと第２の移動オブジェクトとを仮想カメラの視野範囲内に収め、第１の移動オブジェクトと第２の移動オブジェクトの双方を表示させることができる。
【００２５】
（７）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
仮想カメラの位置を変化させる場合には、仮想カメラの視野範囲内に第１の移動オブジェクトと第２の移動オブジェクトとが入る範囲内で仮想カメラの位置を変化させるようにしてもよい。
【００２６】
本発明において、仮想カメラの視野範囲内に第１の移動オブジェクトと第２の移動オブジェクトとが入る仮想カメラの位置とは、例えば、第１の移動オブジェクトの位置情報と第２の移動オブジェクトの位置情報とに基づき、或いは、第１の移動オブジェクトと第２の移動オブジェクトとの位置関係に基づき、所定の関数により演算するものであってもよいし、第１の移動オブジェクトと第２の移動オブジェクトとの位置関係に応じて予め定められているものであってもよい。
【００２７】
本発明によれば、第１の移動オブジェクトと第２の移動オブジェクトとの位置が変化し、仮想カメラの位置を変化させる場合でも、第１の移動オブジェクトと第２の移動オブジェクトの双方を表示させることができる。
【００２８】
（８）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
仮想カメラの向きを変化させる場合には、仮想カメラの視野範囲内に第１の移動オブジェクトと第２の移動オブジェクトとが入る範囲内で仮想カメラの向きを変化させるようにしてもよい。
【００２９】
本発明において、仮想カメラの視野範囲内に第１の移動オブジェクトと第２の移動オブジェクトとが入る方向とは、例えば、第１の移動オブジェクトの位置情報と第２の移動オブジェクトの位置情報とに基づき、或いは、第１の移動オブジェクトと第２の移動オブジェクトとの位置関係に基づき、所定の関数により演算するものであってもよいし、第１の移動オブジェクトと第２の移動オブジェクトとの位置関係に応じて予め定められているものであってもよい。
【００３０】
本発明によれば、第１の移動オブジェクトと第２の移動オブジェクトとの位置が変化し、仮想カメラの向きを変化させる場合でも、第１の移動オブジェクトと第２の移動オブジェクトの双方を表示させることができる。
【００３１】
（９）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
仮想カメラの向きを変化させる場合には、第１の移動オブジェクトと第２の移動オブジェクトとに対して所定の位置関係を有する点を向くように仮想カメラの向きを変化させるようにしてもよい。
【００３２】
本発明において、第１の移動オブジェクトと第２の移動オブジェクトとに対して所定の位置関係を有する点とは、例えば、第１の移動オブジェクトの位置情報と第２の移動オブジェクトの位置情報とに基づき、或いは、第１の移動オブジェクトと第２の移動オブジェクトとの位置関係に基づき、所定の関数により演算するものであってもよいし、第１の移動オブジェクトと第２の移動オブジェクトとの位置関係に応じて予め定められているものであってもよい。
【００３３】
また、所定の位置関係を有する点は、例えば、第１の移動オブジェクトの代表点と第２の移動オブジェクトの代表点とを結ぶ線分上に設定することができ、視点に近い方の代表点と当該線分の中点との間に設定することができる。例えば、所定の位置関係を有する点を、第１の移動オブジェクトの代表点と視点と第２の移動オブジェクトの代表点とがなす角の二等分線と、第１の移動オブジェクトの代表点と第２の移動オブジェクトの代表点とを結ぶ線と、の交点とすることや、第１の移動オブジェクトの代表点と第２の移動オブジェクトの代表点とを結ぶ線分の中点、或いは、第１の移動オブジェクトの代表点と第２の移動オブジェクトの代表点とを結ぶ線分上であっていずれかのオブジェクトの代表点から所定距離にある点とすることができる。
【００３４】
本発明によれば、仮想カメラの視野範囲内に第１の移動オブジェクトと第２の移動オブジェクトとが入る点を設定することにより、少ない演算量で仮想カメラの向きを制御することができる。
【００３５】
（１０）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが所与の距離まで近づいた場合に、前記第１の距離と前記第２の距離との差が０となるように仮想カメラの位置を変化させるようにしてもよい。
【００３６】
本発明によれば、第１の移動オブジェクトと第２の移動オブジェクトとの位置が所与の距離まで近づいた場合に、第１の移動オブジェクト及び第２の移動オブジェクトの双方の仮想カメラに対する奥行き方向の距離を同一にすることができる。
【００３７】
従って、第１の移動オブジェクトと第２の移動オブジェクトとの位置が所与の距離まで近づいた場合に、第１の移動オブジェクトと第２の移動オブジェクトとの間の距離をわかりやすく表示させることができる。
【００３８】
（１１）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置、第１の移動オブジェクトと第２の移動オブジェクトとの距離、の少なくとも一方を変数とした所定の関数に基づいて、仮想カメラの位置を変化させるようにしてもよい。
【００３９】
本発明によれば、予め設定された関数により、第１の移動オブジェクトと第２の移動オブジェクトの位置、及び第１の移動オブジェクトと第２の移動オブジェクトとの距離、の少なくとも一方に応じた適切な視点位置を演算することができる。
【００４０】
（１２）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
前記移動オブジェクトに設定された属性データに応じて、仮想カメラの位置を変化させるようにしてもよい。
【００４１】
本発明において、移動オブジェクトに設定された属性データとは、移動オブジェクトのキャラクタ種類に応じて変化するキャラクタ属性データとすることや、移動オブジェクトが取得したアイテム種類に応じて変化するアイテム属性データとすることや、キャラクタ属性データとアイテム属性データの組み合わせにより変化する属性データとすることができる。これら各種属性データは、例えば、属性データ記憶部に各キャラクタの属性データ、各アイテムの属性データを記憶させておくことができる。そして、移動オブジェクトに設定された属性データに基づき、例えば、仮想カメラの位置を演算するための関数の係数を変更するようにしてもよい。
【００４２】
本発明によれば、移動オブジェクトに設定された属性データに応じて、仮想カメラの位置の移動速度、移動軌跡等の移動態様を変化させることができる。従って、移動オブジェクトに設定された属性データに応じた種々の画像を生成することができる。
【００４３】
（１３）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
第１の移動オブジェクトの移動及び動作の少なくとも一方が、操作部からの入力信号に基づき操作可能に形成され、
前記仮想カメラ制御部が、
第１の移動オブジェクトの位置と第２の移動オブジェクトの位置とが離れるにつれて、前記第２の距離に対する前記第１の距離の比が小さくなるように仮想カメラの位置を変化させるようにしてもよい。
【００４４】
本発明によれば、第１の移動オブジェクトと第２の移動オブジェクトとの位置が離れるにつれて、プレーヤが操作しない第２の移動オブジェクトに対しては仮想カメラを遠ざけつつ、プレーヤが操作可能な第１の移動オブジェクトに対しては仮想カメラを近づけたままとすることができる。
【００４５】
従って、第１の移動オブジェクトと第２の移動オブジェクトとの位置が離れたとしても、プレーヤが操作可能な第１の移動オブジェクトを画像において大きく表示させることができ、プレーヤが操作可能なオブジェクトの視認性を高めることができる。
【００４６】
（１４）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
第１〜第Ｎ（Ｎ≧３）の移動オブジェクトを前記オブジェクト空間に設定するオブジェクト空間設定部と、
第１の移動オブジェクトを除くＮ−１個の移動オブジェクトから１の移動オブジェクトを選択するオブジェクト選択部と、
を更に含み、
前記仮想カメラ制御部が、
前記オブジェクト選択部により選択された移動オブジェクトを第２の移動オブジェクトとして、仮想カメラの位置を変化させるようにしてもよい。
【００４７】
本発明において、オブジェクト選択部は、操作部からの入力情報に基づいて１の移動オブジェクトを選択するようにしてもよいし、所与のプログラムに基づいて１の移動オブジェクトを選択するようにしてもよい。
【００４８】
本発明によれば、仮想カメラの位置を制御するための基準となる第２の移動オブジェクトが、オブジェクト選択部により選択された移動オブジェクトに変更される。従って、第１の移動オブジェクトの位置と選択された１の移動オブジェクトの位置に応じた仮想カメラの位置の制御を自動的に行うことができる。
【００４９】
（１５）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
前記オブジェクト選択部により１の移動オブジェクトが選択された場合には、選択された移動オブジェクトを第２の移動オブジェクトとして仮想カメラの位置を変化させ、
前記オブジェクト選択部により移動オブジェクトが選択されていない場合には、操作部からの入力信号に基づき仮想カメラの位置及び向きの少なくとも一方を変化させるようにしてもよい。
【００５０】
本発明によれば、オブジェクト選択部により１の移動オブジェクトが選択された場合には、プレーヤが操作可能な第１の移動オブジェクトと選択された移動オブジェクトの位置に応じた仮想カメラの位置の制御を自動的に行い、１の移動オブジェクトが選択されていない場合には、操作部により仮想カメラの位置、向きの制御を操作することができる。従って、オブジェクト空間の状況に合わせた最適な仮想カメラ制御処理を行うことができる。
【００５１】
（１６）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
第１の移動オブジェクト及び第２の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第１の移動オブジェクト及び第２の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも１つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部と、
第１の条件又は第２の条件のいずれかが満たされたか否かを判定する判定部と、
を含み、
前記仮想カメラ制御部が、
第１の条件が満たされた場合に、第１の移動オブジェクトと仮想カメラとの距離である第１の距離と、第２の移動オブジェクトと仮想カメラとの距離である第２の距離と、の差が小さくなるように仮想カメラの位置を変化させ、
第２の条件が満たされた場合に、前記第１の距離と前記第２の距離との差が大きくなるように仮想カメラの位置を変化させるようにしてもよい。
【００５２】
本発明において、第１の条件として、例えば、サッカーゲームにおいてプレーヤが操作する移動オブジェクトがボールを受け取ったことや、アドベンチャーゲームにおいてプレーヤが操作する移動オブジェクトが敵と遭遇したことなど、所与のイベントの発生を条件とすることができる。また、第２の条件として、発生したイベントの終了や、他のイベントの発生を条件とすることができる。
【００５３】
本発明によれば、第１の条件が満たされた場合に、第１の移動オブジェクト及び第２の移動オブジェクトの双方に対して仮想カメラを近づけることができ、第２の条件が満たされた場合に、第１の移動オブジェクト又は第２の移動オブジェクトのいずれか一方に対しては仮想カメラを遠ざけつつも、他方に対しては仮想カメラを近づけたままとすることができる。
【００５４】
従って、第１の条件が満たされた場合に、第１の移動オブジェクト及び第２の移動オブジェクトの双方を画像において大きく表示させることができ、双方のオブジェクトの視認性を高めることができ、第２の条件が満たされた場合に、第１の移動オブジェクト又は第２の移動オブジェクトのいずれか一方を画像において大きく表示させることができ、いずれか一方のオブジェクトの視認性を高めることができる。
【発明を実施するための最良の形態】
【００５５】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００５６】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００５７】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【００５８】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。例えば、処理部１００が取得した情報を一時的に保留記憶する保留記憶部として機能する。
【００５９】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、ハードディスク、メモリーカード、メモリーカセット、磁気ディスク、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００６０】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ（液晶表示装置）、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００６１】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００６２】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００６３】
処理部１００（プロセッサ）は、操作部１６０からの操作データ（入力情報）やプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００６４】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、ゲーム演算処理部１１６、条件判定部１１８、オブジェクト選択部１１９、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００６５】
オブジェクト空間設定部１１０は、キャラクタ、車、戦車、ボール、被投てき体、建物、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクト（モデルオブジェクト）の位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。特に、本実施の形態では、第１〜第Ｎ（Ｎ≧３）の移動オブジェクトをオブジェクト空間に配置設定する処理を行う。
【００６６】
移動・動作処理部１１２は、オブジェクト（キャラクタ、車、ボール、被投てき体等）の移動・動作演算（移動・動作シミュレーション）を行う。即ち操作部１６０によりプレーヤが入力した操作データ（入力情報）や、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクト（移動オブジェクト）をオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（各パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００６７】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、操作部１６０からの入力情報、移動オブジェクトの位置情報、所与のプログラム（移動・回転アルゴリズム）、各種データ（仮想カメラ制御データ）などに基づいて、仮想カメラの位置（Ｘ、Ｙ、Ｚ）、向き（Ｘ、Ｙ、Ｚ軸回りでの回転角度）、画角（視野範囲）を制御する処理を行う。
【００６８】
ここで、仮想カメラの向きの制御として、仮想カメラが見る点である注視点をオブジェクト空間内に設定し、設定された注視点を向くように仮想カメラの回転角度を制御するようにしてもよい。また、仮想カメラの画角は、画角を拡大、縮小させることにより制御してもよいし、オブジェクトを投影するスクリーン（仮想スクリーン）と仮想カメラとの距離を変化させることにより制御してもよい。なお、仮想カメラの画角を狭くする又はスクリーンと仮想カメラの距離を遠ざけることにより対象オブジェクトをズームアップする画像を生成することができ、仮想カメラの画角を広くする又はスクリーンと仮想カメラの距離を近づけることにより対象オブジェクトからズームバックする画像を生成することができる。
【００６９】
ここで、仮想カメラによりオブジェクト（例えばキャラクタ、ボール、車）を撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置、向き、画角を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。
【００７０】
また、例えば、撮影対象とするオブジェクトが複数ある場合には、複数のオブジェクトのそれぞれの位置情報、或いは、位置関係情報（距離、角度等）に基づき、所定の関数により仮想カメラの位置、向きを演算することにより仮想カメラを制御できる。
【００７１】
そして、本実施の形態では、仮想カメラ制御部１１４が、仮想カメラの撮影対象となる第１の移動オブジェクトと第２の移動オブジェクトが設定された場合に、第１の移動オブジェクトと第２の移動オブジェクトの位置が近づくにつれて、第１の移動オブジェクトと仮想カメラとの距離である第１の距離と、第２の移動オブジェクトと仮想カメラとの距離である第２の距離と、の差が小さくなるように仮想カメラの位置を変化させるとともに、第１の移動オブジェクトと第２の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向と、がなす角が直角に近づくように仮想カメラの向きを変化させる仮想カメラ制御処理を行う。
【００７２】
また、第１の移動オブジェクトと第２の移動オブジェクトとの位置が離れるにつれて、前記第１の距離と前記第２の距離との差が大きくなるように仮想カメラの位置を変化させるとともに、第１の移動オブジェクトと第２の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向と、がなす角が直角から遠ざかるように仮想カメラの向きを変化させる仮想カメラ制御処理を行う。
【００７３】
この場合、仮想カメラ制御部１１４は、第１の移動オブジェクトの位置情報と第２の移動オブジェクトとの位置情報とに基づき、或いは、第１の移動オブジェクトと第２の移動オブジェクトとの距離に基づき、仮想カメラの位置、向きを１フレームごとに演算する処理を行う。
【００７４】
また、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御することができる。ここで、仮想カメラデータは、記憶部１７０の仮想カメラデータ記憶部１７２に複数種類記憶させておくことができ、ゲーム状況に応じて選択されるようにしてもよい。
【００７５】
ゲーム演算処理部１１６は、操作部１６０からの入力信号、所与のプログラムに基づき、ゲームに関する各種の条件設定や所定のゲームの進行等の種々のゲーム処理を行う。
【００７６】
条件判定部１１８は、操作部１６０からの入力信号、所与のプログラムに基づき、ゲームに関する各種の条件が満たされたか否かを判定するための処理を行う。
【００７７】
オブジェクト選択部１１９は、操作部１６０からの入力信号、所与のプログラムに基づき、本実施の形態に特徴的な仮想カメラ制御処理を行う対象となる第２の移動オブジェクトを選択するための処理を行う。ここで、第２の移動オブジェクトは、プレーヤが操作部１６０を操作することにより選択されるようにしてもよいし、所与のアルゴリズムに従って自動的に選択されるようにしてもよい。
【００７８】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まず、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数プリミティブ面）を描画バッファ１７４（フレームバッファ、ワークバッファなどのピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ）に描画する。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。
【００７９】
また、描画部１２０は、テクスチャマッピング処理や隠面消去処理やαブレンディング処理を行うことができる。
【００８０】
ここでテクスチャマッピング処理は、テクスチャ記憶部１７５に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングする処理である。具体的には、オブジェクト（プリミティブ面）の頂点に設定（付与）されるテクスチャ座標等を用いてテクスチャ記憶部１７５からテクスチャ（色、α値などの表面プロパティ）を読み出す。そして、２次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間（テクセル補間）などを行う。
【００８１】
また隠面消去処理は、例えば、各ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７６（奥行きバッファ）を用いるＺバッファ法（奥行き比較法、Ｚテスト）により実現される。即ちオブジェクトのプリミティブ面の各ピクセルを描画する際に、Ｚバッファ１７６に格納されるＺ値を参照する。そして参照されたＺバッファ１７６のＺ値と、プリミティブ面の描画対象ピクセルでのＺ値とを比較し、描画対象ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、そのピクセルの描画処理を行うと共にＺバッファ１７６のＺ値を新たなＺ値に更新する。
【００８２】
またαブレンディング処理は、α値（Ａ値）に基づいて行う処理であり、通常αブレンディング、α加算ブレンディング或いはα減算ブレンディングなどがある。例えば通常αブレンディングの場合には下式の処理を行う。
【００８３】
ＲQ＝（１−α）×Ｒ1＋α×Ｒ2
ＧQ＝（１−α）×Ｇ1＋α×Ｇ2
ＢQ＝（１−α）×Ｂ1＋α×Ｂ2
一方、加算αブレンディングの場合には下式の処理を行う。
【００８４】
ＲQ＝Ｒ1＋α×Ｒ2
ＧQ＝Ｇ1＋α×Ｇ2
ＢQ＝Ｂ1＋α×Ｂ2
ここで、Ｒ1、Ｇ1、Ｂ1は、描画バッファ１７４に既に描画されている画像（元画像）
のＲＧＢ成分であり、Ｒ2、Ｇ2、Ｂ2は、描画バッファ１７４に描画すべき画像のＲＧＢ
成分である。また、ＲQ、ＧQ、ＢQは、αブレンディングにより得られる画像のＲＧＢ成
分である。なおα値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、半透明度（透明度、不透明度と等価）情報、マスク情報、或いはバンプ情報などとして使用できる。
【００８５】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００８６】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００８７】
２．本実施形態の手法
次に本実施形態の特徴について図面を用いて説明する。なお、以下では、アクションゲームに本実施形態を適用した場合を主に例にとり説明するが、本実施形態は、アクションゲーム以外にもサッカーゲーム等のスポーツゲームなど、２以上の移動オブジェクトがオブジェクト空間内を移動する種々の画像生成システムにも広く適用できる。
【００８８】
２−１：ゲームの概要
本実施の形態のアクションゲームシステムは、図２に示すように、プレーヤオブジェクト１２、敵オブジェクト１４、他の敵オブジェクト１６と、マップ（床）ＭＰとが配置された仮想３次元オブジェクト空間ＳＰを表示部１９０に表示させる。そして、プレーヤは、表示部１９０を見ながら、操作部１６０を用いてプレーヤオブジェクト１２の移動・動作を操作して、所与のプログラムにより移動・動作を行う複数の敵である敵オブジェクト１４、他の敵オブジェクト１６と格闘を行うゲームを楽しむ。
【００８９】
図３には、操作部１６０の一例が示されている。本実施の形態の操作部１６０は、プレーヤが両手で操作部１６０の左右を把持し、操作部１６０に配置された複数の操作子を左右の手の親指、人差し指、中指で操作可能に形成されている。
【００９０】
この操作部１６０の中央下部には、左レバー３１２、右レバー３１４が設けられている。これら左レバー３１２、右レバー３１４は、レバー部分を全方向に倒すことができ、レバー部分を倒した量と方向の変化量と変化速度をアナログ的に検出可能に形成されている。そして、本実施の形態では、左レバー３１２を倒した方向に応じて、プレーヤオブジェクト１２をマップ（床）ＭＰ上で移動させる。また、右レバー３１４を倒した方向に応じて、オブジェクト空間ＳＰを撮影する仮想カメラの位置、向きをオブジェクト空間ＳＰ内で変化させる。従って、本実施の形態のアクションゲームシステムでは、プレーヤオブジェクト１２の位置、回転角度と、仮想カメラの位置、向きをアナログ的（連続的に）に操作することができる。
【００９１】
また、操作部１６０の右側中央部には、ＯＮ／ＯＦＦを検出可能に形成された４つのボタンが設けられており、本実施の形態では、△ボタン３１６を押下することによりプレーヤオブジェクト１２が所与のオブジェクト（例えば槍や金属バット等）を投げる動作を行い、○ボタン３１８を押下することによりプレーヤオブジェクト１２がパンチやキック等の打撃攻撃動作を行うように形成されている。
【００９２】
また、操作部１６０の左右上部には、ＯＮ／ＯＦＦを検出可能に形成された左ボタン３２０と右ボタン３２２が設けられており、本実施の形態では、左ボタン３２０を押下することによりプレーヤオブジェクト１２が投げる対象となる所与のオブジェクトを拾う動作を行うように形成されている。また、右ボタン３２２を押下することにより、プレーヤオブジェクト１２を追従する仮想カメラ制御処理を行うモードと、本実施の形態に特徴的な、移動オブジェクト間の距離に応じた仮想カメラ制御処理を行うモードとを切替えるように形成されている。そして、本実施の形態では、移動オブジェクト間の距離に応じた仮想カメラ制御処理を行うモードが設定されている場合には、右レバー３１４を倒すことにより、移動オブジェクト間の距離に応じた仮想カメラ制御処理を行う対象であるターゲットオブジェクトを複数の敵オブジェクトから選択することができる。
【００９３】
２−２：移動オブジェクト間の距離に応じた仮想カメラ制御処理
本実施の形態では、初期状態では、プレーヤオブジェクト１２を追従するように視点位置、視線方向を制御する。そして、本実施の形態の特徴的な処理として、敵オブジェクト１４、１６から１の敵オブジェクトがターゲットオブジェクトとして選択された場合には、プレーヤオブジェクト１２とターゲットオブジェクトとして選択された敵オブジェクトとが、仮想カメラの視野範囲に入るように所定の視点位置、視線方向の制御を行う。
【００９４】
具体的には、プレーヤキャラクタ１２を第１の移動オブジェクトＣＨ１として、選択された敵オブジェクトを第２の移動オブジェクトＣＨ２として設定し、第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２との位置が近づくにつれて、第１の移動オブジェクトＣＨ１と仮想カメラとの距離である第１の距離と、第２の移動オブジェクトＣＨ２と仮想カメラとの距離である第２の距離と、の差が小さくなるように仮想カメラの位置を変化させるとともに、第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２とを結ぶ方向と、仮想カメラの視線方向と、がなす角が直角に近づくように仮想カメラの向きを変化させる仮想カメラ制御処理を行う。
【００９５】
また、第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２との位置が離れるにつれて、前記第１の距離と前記第２の距離との差が大きくなるように仮想カメラの位置を変化させるとともに、第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２とを結ぶ方向と、仮想カメラの視線方向と、がなす角が直角から遠ざかるように仮想カメラの向きを変化させる仮想カメラ制御処理を行う。以下、本実施の形態に特徴的な移動オブジェクト間の距離に応じた仮想カメラ制御処理について説明する。
【００９６】
図４（Ａ）〜（Ｅ）は、第１の移動オブジェクトＣＨ１、第２の移動オブジェクトＣＨ２、視点ＣＭが配置されたオブジェクト空間ＳＰをＸＺ平面で表現した（真上から見た）図である。なお、第１の移動オブジェクトＣＨ１、第２の移動オブジェクトＣＨ２、視点ＣＭには、それぞれ任意のＹ座標が与えられている。また、図２、図５〜図８は、視点位置、視線方向が、図４（Ａ）〜（Ｅ）にあるときに生成される画像を示す図である。
【００９７】
まず、ゲーム開始時には初期状態として、図４（Ａ）のように、仮想カメラの注視点ＥＰがプレーヤオブジェクト１２に設定されており、図２に示すように、プレーヤオブジェクト１２を中心とした画像が生成される。そして、移動オブジェクト間の距離に応じた仮想カメラ制御処理を行うモードが設定されると、図４（Ｂ）のように、第１の移動オブジェクトＣＨ１（プレーヤキャラクタ１２）と視点ＣＭとの距離である第１の距離ｄ１が、第２の移動オブジェクトＣＨ２（敵キャラクタ１４）と視点ＣＭとの距離である第２の距離ｄ２よりも若干小さくなるように、視点ＣＭを連続的に移動させる。そして、仮想カメラの注視点ＥＰを、第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２の間に連続的に移動させ、視線方向ＥＤが注視点ＥＰを向くように仮想カメラの向きを制御する。
【００９８】
すると、図５のように、やや第１の移動オブジェクトＣＨ１寄りの横側から、第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２の間を中心として見る画像が生成される。なお、第２の移動オブジェクトＣＨ２の頭上のマーク１８は、敵オブジェクトが第２の移動オブジェクトＣＨ２として選択されていることを示すためのものである。
【００９９】
そして、図４（Ｃ）のように、第１の移動オブジェクトＣＨ１の位置と第２の移動オブジェクトＣＨ２の位置とが離れると、第２の距離ｄ２に対する第１の距離ｄ１の比が小さくなるように視点ＣＭの位置を制御し、第１の移動オブジェクトＣＨ１の代表点と第２の移動オブジェクトＣＨ２の代表点とを結ぶ方向ＣＣと、視線方向ＥＤとのなす角が直角から遠ざかるように仮想カメラの向きを制御する。すると、図６のように、第１の移動オブジェクトＣＨ１寄りの斜め後ろ側から、第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２の間を中心として見る画像が生成される。
【０１００】
そして、図４（Ｄ）、（Ｅ）のように、第１の移動オブジェクトＣＨ１の位置と第２の移動オブジェクトＣＨ２の位置とが更に離れると、第２の距離ｄ２に対する第１の距離ｄ１の比が更に小さくなるように視点ＣＭの位置を制御し、方向ＣＣと視線方向ＥＤとのなす角が直角から更に遠ざかるように仮想カメラの向きを制御する。すると、図４（Ｄ）の状態では、図７のように、第１の移動オブジェクトＣＨ１寄りの更に斜め後ろ側から、第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２の間を中心として見る画像が生成される。そして、図４（Ｅ）の状態では、図８のように、第１の移動オブジェクトＣＨ１のほぼ後ろ側から第２の移動オブジェクトＣＨ２を奥行き方向に見る画像が生成される。
【０１０１】
なお、本実施の形態では、図４（Ｅ）の状態まで方向ＣＣと視線方向ＥＤとのなす角が直角から遠ざかると、第１の移動オブジェクトＣＨ１の位置と第２の移動オブジェクトＣＨ２の位置とが更に離れても、それ以上方向ＣＣと視線方向ＥＤとのなす角が変化しないように制御する。すなわち、方向ＣＣに対する視線方向ＥＤの角度の最小値が、図中の角度に設定されている。これにより、第１の移動オブジェクトＣＨ１の位置と第２の移動オブジェクトＣＨ２の位置とが更に離れた場合に、第２の移動オブジェクトＣＨ２が第１の移動オブジェクトＣＨ１の陰に隠れて表示されなくなってしまうことを防止することができる。
【０１０２】
一方、図４（Ｅ）の状態から図４（Ｂ）の状態まで、第１の移動オブジェクトＣＨ１の位置と第２の移動オブジェクトＣＨ２の位置とが近づいていくと、第１の距離ｄ１と第２の距離ｄ２との差が小さくなるように視点ＣＭの位置を制御し、方向ＣＣと視線方向ＥＤとのなす角が直角に近づくように仮想カメラの向きを制御する。
【０１０３】
こうして、本実施の形態では、移動オブジェクト間の距離に応じた仮想カメラ制御処理を行うことにより、第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２との位置が離れたとしても、第１の移動オブジェクトＣＨ１を画像において大きく表示させることができ、プレーヤが操作可能なプレーヤキャラクタ１２の視認性を高め、迫力ある画像を表示させることができる。
【０１０４】
しかも、本実施の形態では、第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２との位置が近づくにつれて、第１の移動オブジェクトＣＨ１及び第２の移動オブジェクトＣＨ２の双方の視点ＣＭに対する奥行き方向の距離の差を近づけることにより、第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２との間の距離をわかりやすく表示させることができる。特に、本実施の形態のようなアクションゲームシステムにおいては、接近戦となった場合には、プレーヤキャラクタ１２と敵キャラクタ１４との間合いをわかりやすく表示させることができ、プレーヤが攻撃動作や防御動作のための操作を適切に行うことができる。
【０１０５】
加えて、第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２との位置が離れるにつれて、第２の移動オブジェクトＣＨ２の視点ＣＭに対する奥行き方向の距離を遠ざけることにより、第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２との位置が離れていることを表現することができる。
【０１０６】
従って、第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２との位置が離れた場合に、第１の移動オブジェクトＣＨ１を画像において大きく表示させても、第１の移動オブジェクトＣＨ１及び第２の移動オブジェクトＣＨ２の双方を仮想カメラの視野範囲内に収め、双方のオブジェクトを表示させることができる。
【０１０７】
特に、本実施の形態のアクションゲームでは、プレーヤキャラクタ１２の位置と敵キャラクタ１４の位置とが離れている場合でも、槍や金属バット等の所与のオブジェクトを投げることにより攻撃を行うことができるが、本実施の形態では、このような離れた位置における被投てき体による攻撃動作を、適切にかつ迫力ある画像として表示させることができる。
【０１０８】
なお、第１の移動オブジェクトＣＨ１の位置と第２の移動オブジェクトＣＨ２の位置との距離が所定の距離以下となった場合には、視点ＣＭを、第１の距離ｄ１と第２の距離ｄ２との差がほぼ０となる位置から変化しないように制御し、視線方向ＥＤを、方向ＣＣと視線方向ＥＤとがほぼ直角に交わる方向から変化しないように制御してもよい。
【０１０９】
２−３：移動オブジェクト間の距離に応じた仮想カメラ制御処理の具体的手法
以下、図面を用いて、移動オブジェクト間の距離に応じた仮想カメラ制御処理の具体的な処理の一例を説明する。
【０１１０】
図９は、移動オブジェクト間の距離に応じた仮想カメラ制御処理の概要を示したフローチャートであり、図１０（Ａ）、（Ｂ）は、図９の処理の詳細を示したフローチャートである。また、図１１〜図１３は、第１の移動オブジェクトＣＨ１、第２の移動オブジェクトＣＨ２、視点ＣＭが配置されたオブジェクト空間ＳＰをＸＺ平面で表現した（真上から見た）図であり、第１の移動オブジェクトＣＨ１、第２の移動オブジェクトＣＨ２、視点ＣＭには、それぞれ任意のＹ座標が与えられている。
【０１１１】
まず、図９のステップＳ１２において、フレーム更新が行われたか否かを判断し、フレーム更新が行われた場合には（ステップＳ１２のＹ）、ステップＳ１４において、前フレームの視点ＣＭが、第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２とを結ぶ方向ＣＣに対していずれの位置にあるかを判定する。
【０１１２】
具体的には、図１１（Ａ）、（Ｂ）に示すように、Ｚ軸方向に平行に任意に設定される基準軸Ｚに対する前フレームの視線方向ＥＤのＹ軸周りの回転角度θ１と方向ＣＣのＹ軸周りの回転角度θ２の差θ３が０未満か否かを判定する。例えば、図１１（Ａ）のように、θ３＜０の場合には、視点ＣＭは、第１の移動オブジェクトＣＨ１を左側に見る位置にある。一方、θ３＜０でない場合には、図１１（Ｂ）のように、視点ＣＭは、第１の移動オブジェクトＣＨ１を右側に見る位置にある。なお、フレームごとに視点ＣＭを保留記憶部に記憶しておき、これを参照することにより前フレームの視点ＣＭがいずれの位置にあるか判定してもよい。
【０１１３】
そして、ステップＳ１６において、前フレームの第１の移動オブジェクトＣＨ１の位置座標ＣＨ１と第２の移動オブジェクトＣＨ２の位置座標ＣＨ２の移動演算を行い、移動後の第１の移動オブジェクトＣＨ１´の位置座標ＣＨ１´（ｘ１、ｚ１）と第２の移動オブジェクトＣＨ２´の位置座標ＣＨ２´（ｘ２、ｚ２）を求める。すると、ステップＳ１８において、移動後の視点ＣＭ´の位置を求める演算処理を行い、ステップＳ２０において、移動後の視線方向ＥＤ´を求める演算処理を行う。
【０１１４】
なお、ステップＳ１８とステップＳ２０で行う演算処理は、本実施の形態では、所定の関数を用いて行われる。ここで、所定の関数は２種類用意されており、ステップＳ１４で判定した前フレームの視点ＣＭの位置に応じた関数を用いて、それぞれの演算処理を行う。
【０１１５】
そして、ステップＳ２２において、移動後の第１の移動オブジェクトＣＨ１´と第２の移動オブジェクトＣＨ２´とを、移動後の視点ＣＭ´、視線方向ＥＤ´により撮影した現在フレームの画像を描画する処理を行う。
【０１１６】
図１０（Ａ）には、移動後の視点ＣＭ´を求める演算処理の詳細のフローチャートが示されている。本実施の形態では、まず、ステップＳ２４において、移動後のＣＨ１´（ｘ１、ｚ１）とＣＨ２´（ｘ２、ｚ２）の中点ＣＥ（ｘ３、ｚ３）を求める。そして、ステップＳ２６において、中点ＣＥ（ｘ３、ｚ３）と移動後の視点ＣＭ´（ｃｘ、ｃｚ）とを結ぶ方向ＤＤ０の、基準軸Ｚに対するＹ軸周りの回転角度θ４を、所定の関数により求める。
【０１１７】
本実施の形態では、Ｙ軸周りの回転角度９０°＝０．２５、移動後の第１の移動オブジェクトＣＨ１´と第２の移動オブジェクトＣＨ２´との距離＝Ｌ１、所定の係数＝Ａ、Ｌ２＝Ｌ１／Ａとして、図９のステップＳ１４においてθ３＜０と判定された場合には、下記の式Ａ１を用いて、図１２（Ａ）のようにしてθ４を求める。
【０１１８】
θ４＝θ２＋０．２５−Ｌ２・・・・・・・（式Ａ１）
なお、値Ａは、Ｌ１／Ａ＜０．２５となる値であり、Ａの値が大きくなればなるほど、Ｌ１の変化に対する変化率が小さくなり、第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２との距離の変化に対して視点ＣＭが相対的にゆっくりと変化することとなる。また、Ｌ２には所定の最大値が設定されており、方向ＣＣに対する視線方向ＥＤの角度の最小値が図４（Ｅ）の角度となる値が設定されている。
【０１１９】
そして、ステップＳ２８において、視点ＣＭ´と中点ＣＥとの距離をＬ３とし、θ４とＬ３とから移動後の視点ＣＭ´（ｃｘ、ｃｚ）を求める。本実施の形態では、Ｌ３＝Ｌ１×Ｂ＋Ｃとして、下記の式Ａ２、Ａ３を用いて求める。
【０１２０】
ｃｘ＝ｘ３−ｓｉｎ（θ４）×Ｌ３・・・・（式Ａ２）
ｃｚ＝ｚ３−ｃｏｓ（θ４）×Ｌ３・・・・（式Ａ３）
なお、値Ｂと値Ｃは、移動後の仮想カメラの視野範囲に、第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２とが入り、かつ、第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２を最適な大きさで表示させる任意の値とすることができる。また、Ｌ３には所定の最大値が設定されており、Ｌ１が大きくなったときでも、視点ＣＭ´が第１の移動オブジェクトＣＨ１から離れすぎないようにする値が設定されている。
【０１２１】
一方、図９のステップＳ１４において、θ３＜０でないと判定された場合には、下記の式Ｂ１を用いて、図１２（Ｂ）のようにしてθ４を求める。
【０１２２】
θ４＝θ２−０．２５＋Ｌ２・・・・・・・（式Ｂ１）
また、移動後の視点ＣＭ´（ｃｘ、ｃｚ）を、下記の式Ｂ２、Ｂ３
ｃｘ＝ｘ３−ｓｉｎ（θ４）×Ｌ３・・・・（式Ｂ２）
ｃｚ＝ｚ３＋ｃｏｓ（θ４）×Ｌ３・・・・（式Ｂ３）
を用いて求める。
【０１２３】
図１０（Ｂ）には、移動後の視線方向ＥＤ´を求める演算処理の詳細のフローチャートが示されている。ここでは、図１２（Ａ）で示した、式Ａ２、Ａ３により求められた移動後の視点ＣＭ´についての視線方向ＥＤ´を求める例を挙げて説明する。
【０１２４】
本実施の形態では、まず、ステップＳ３０において、図１３（Ａ）のように、視点ＣＭ´（ｃｘ、ｃｚ）とＣＨ１´（ｘ１、ｚ１）とを結ぶ方向ＤＤ１の基準軸Ｚに対するＹ軸周りの回転角度θ５と、視点ＣＭ´（ｃｘ、ｃｚ）とＣＨ２´（ｘ２´、ｚ２´）とを結ぶ方向ＤＤ２の基準軸Ｚに対するＹ軸周りの回転角度θ６とから、∠ＣＨ１´ＣＭ´ＣＨ２´を二等分する角度θ７を、θ７＝（θ６−θ５）／２のようにして求め、ステップＳ３２において、移動後の視線方向ＥＤ´の基準軸Ｚに対するＹ軸周りの回転角度θ７´を所定の関数式Ｃ１を用いて求める。
【０１２５】
θ７´＝θ７×Ｄ＋θ５・・・・・・・・・（式Ｃ１）
なお、値Ｄは、移動後の視線方向ＥＤ´を∠ＣＨ１´ＣＭ´ＣＨ２´の二等分線に沿う方向ＤＶよりも若干第１の移動オブジェクトＣＨ１寄りにして、第１の移動オブジェクトＣＨ１´を中央寄りに表示させる任意の値とすることができる。
【０１２６】
すると、ステップＳ３４において、図面１３（Ｂ）のように、視点ＣＭ´と仮の注視点ＩＥとの距離をＬ３とし、θ７´とＬ３とから仮の注視点ＩＥ（ｘ４、ｚ４）を求める。本実施の形態では、Ｌ３＝Ｌ１×Ｂ＋Ｃとして、下記の式Ｃ２、Ｃ３
ｘ４＝ｃｘ＋ｓｉｎ（θ７´）×Ｌ３・・・（式Ｃ２）
ｚ４＝ｃｚ＋ｃｏｓ（θ７´）×Ｌ３・・・（式Ｃ３）
を用いて求める。
【０１２７】
そして、ステップＳ３６において、方向ＣＣと、視点ＣＭ´と仮の注視点ＩＥとを結ぶ方向ＥＤ´との交点を求めることにより、移動後の注視点ＥＰ´の座標（ｉｘ、ｉｚ）を求める。
【０１２８】
本実施の形態では、ＣＨ１´とＣＨ２´の座標が同じ場合には、下記の式Ｄ１、Ｄ２
ｉｘ＝ｘ１                                              ・・・（式Ｄ１）
ｉｚ＝（ｚ４−ｃｚ）×（ｉｘ−ｃｘ）／（ｘ４−ｃｘ）＋ｃｚ・・（式Ｄ２）
を用いて求める。
【０１２９】
また、ｘ４＝ｃｘの場合には、下記の式Ｅ１、Ｅ２
ｉｘ＝ｘ４                                              ・・・（式Ｅ１）
ｉｚ＝（ｚ２−ｚ１）×（ｉｘ−ｘ１）／（ｘ２−ｘ１）＋ｚ１・・（式Ｅ２）
を用いて求める。
【０１３０】
また、その他の場合には、下記の式Ｆ１、Ｆ２
ｉｘ＝｛（ｚ２−ｚ１）×ｘ１／（ｘ２−ｘ１）−（ｘ４−ｃｚ）×ｃｘ／（ｘ４−ｃｘ）＋ｃｚ−ｚ１｝／｛（ｚ２−ｚ１）／（ｘ２−ｘ１）−（ｚ４−ｃｚ）／（ｘ４−ｃｘ）｝                                                    ・・・（式Ｆ１）
ｉｚ＝（ｚ２−ｚ１）×（ｉｘ−ｘ１）／（ｘ２−ｘ１）＋ｚ１・・（式Ｆ２）
を用いて求める。
【０１３１】
そして、ステップＳ３８において、移動後の注視点ＥＰ´（ｉｘ、ｉｚ）を見るように仮想カメラの回転角度を制御する。
【０１３２】
こうして、図１３（Ｂ）に示すように、第２の移動オブジェクトＣＨ２が第１の移動オブジェクトＣＨ１に対して、ＣＨ２の位置からＣＨ２´の位置まで離れると、仮想カメラの位置をＣＭからＣＭ´に移動させ、注視点をＥＰからＥＰ´に移動させる。そして、視線方向をＥＤからＥＤ´に変化させる。一方、第２の移動オブジェクトＣＨ２が第１の移動オブジェクトＣＨ１に対して、ＣＨ２´の位置からＣＨ２の位置まで近づくと、仮想カメラの位置をＣＭ´からＣＭに移動させ、注視点をＥＰ´からＥＰに移動させる。そして、視線方向をＥＤ´からＥＤに変化させる。
【０１３３】
このように、本実施の形態では、予め設定された関数により、１フレームごとに第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２との距離に応じた適切な視点位置、視線方向を演算することができる。
【０１３４】
なお、移動オブジェクト間の距離に応じた仮想カメラ制御処理は、上記手法以外の手法によっても実現することができる。例えば、移動後の注視点ＥＰ´を求める際には、仮の注視点ＩＥを設定せずに、図１０（Ｂ）のステップＳ３２で求めた移動後の視線方向ＥＤ´の角度θ７´から視線方向ＥＤ´に沿う線の方程式を求め、方向ＣＣに沿う線の方程式から交点座標を求めることにより移動後の注視点ＥＰ´を求めてもよい。
【０１３５】
また、第１の移動オブジェクトＣＨ１及び第２の移動オブジェクトＣＨ２の少なくとも一方に設定された属性データに基づき、上記関数の係数を変更するようにしてもよい。この場合には、移動オブジェクトに設定された属性データに応じて、視点、視線方向の移動速度、移動軌跡等の移動態様を変化させることができる。従って、移動オブジェクトに設定された属性データに応じた種々の画像を生成することができる。
【０１３６】
ここで、属性データは、記憶部１７０の属性データ記憶部１７３に各キャラクタの属性データ、各アイテムの属性データとして記憶され、ゲーム演算処理部１１６がゲーム状況に応じた属性データを読み出し、移動オブジェクトごとに設定する処理を行う。
【０１３７】
２−４：複数の移動オブジェクトとの間の距離に応じた仮想カメラ制御処理
また、本実施の形態では、移動オブジェクト間の距離に応じた仮想カメラ制御処理を行うモードが設定されている場合には、操作部１６０の右レバー３１４を倒すことにより、移動オブジェクト間の距離に応じた仮想カメラ制御処理を行う対象であるターゲットオブジェクトを複数の敵オブジェクトから選択することができる。そして、他の敵オブジェクトがターゲットオブジェクトとして選択された場合には、選択された他の敵オブジェクトを第２の移動オブジェクトとして変更設定し、第１の移動オブジェクトと変更後の第２の移動オブジェクトとの距離に応じた仮想カメラ制御処理を行う。
【０１３８】
図１４は、複数の移動オブジェクトとの間の距離に応じた仮想カメラ制御処理の処理の流れを示すフローチャートである。また、図１５は、プレーヤオブジェクト１２、敵オブジェクト１４、敵オブジェクト１６、視点ＣＭが配置されたオブジェクト空間ＳＰをＸＺ平面で表現した（真上から見た）図である。
【０１３９】
まず、ステップＳ５８において、図１５のように、敵オブジェクト１４が第２の移動オブジェクトＣＨ２として設定されている場合には、視点の位置をＣＭ１、注視点をＥＰ１として移動オブジェクト間の距離に応じた仮想カメラ制御処理を行う。すると、ステップＳ６０において、ターゲットオブジェクトが変更されたか否かを判断する。ここで、ターゲットオブジェクトが変更されたと判断した場合には（ステップＳ６０のＹ）、ステップＳ６２において、変更後の敵オブジェクト１６を第２の移動オブジェクトＣＨ２´として設定する。
【０１４０】
そして、ステップＳ６４において、第１の移動オブジェクトＣＨ１の位置と変更後の第２の移動オブジェクトＣＨ２´の位置とに基づき、所定の関数により、ターゲットオブジェクト変更後の視点ＣＭ２とターゲットオブジェクト変更後の注視点ＥＰ２とを求める。すると、ステップＳ６６において、視点の位置を、敵キャラクタ１４との距離に応じたＣＭ１から、敵キャラクタ１６との距離に応じたＣＭ２に連続的に変更させる。そして、仮想カメラの注視点を、敵キャラクタ１４との距離に応じたＥＰ１から、敵キャラクタ１６との距離に応じたＥＰ２に連続的に変更させる。そして、ステップＳ６８において、プレーヤオブジェクト１２（第１の移動オブジェクトＣＨ１）と敵オブジェクト１６（第２の移動オブジェクトＣＨ２´）との間の距離に応じた仮想カメラ制御処理を行う。
【０１４１】
このように、本実施の形態では、第２の移動オブジェクトとして設定されている敵オブジェクトが、他の敵オブジェクトに変更された場合には、変更後の敵オブジェクトとの位置に応じた視点位置の制御を自動的に行うことができる。なお、ターゲットオブジェクトの選択は、所与のプログラムに基づいて１の移動オブジェクトを自動的に選択してもよい。この場合、プレーヤオブジェクトと複数の敵オブジェクトとの距離を判定し、最も近い敵オブジェクトをターゲットオブジェクトとして選択し、移動オブジェクト間の距離に応じた仮想カメラ制御処理を行うように構成してもよい。
【０１４２】
なお、ステップＳ６４において、第１の移動オブジェクトＣＨ１の位置と変更後の第２の移動オブジェクトＣＨ２´の位置とに基づき、所定の関数により、ターゲットオブジェクト変更後の視点として、図中のＣＭ３を求めるようにしてもよい。この場合には、ステップＳ６６において、視点の位置を、敵キャラクタ１４との距離に応じたＣＭ１から、敵キャラクタ１６との距離に応じたＣＭ３に連続的に変更させればよい。
【０１４３】
３．他の実施の形態
また、本発明を適用することができる他の実施の形態として、第１の移動オブジェクトの位置と第２の移動オブジェクトの位置との距離にかかわらず、第１の視点位置変更条件又は第２の視点位置変更条件のいずれかが満たされたか否かを判定し、仮想カメラ制御部１１４が、第１の視点位置変更条件が満たされた場合に、第１の移動オブジェクトと仮想カメラとの距離である第１の距離と、第２の移動オブジェクトと仮想カメラとの距離である第２の距離と、の差が小さくなるように視点の位置を変化させ、第２の視点位置変更条件が満たされた場合に、第１の距離と第２の距離との差が大きくなるように視点の位置を変化させるように構成してもよい。
【０１４４】
この実施の形態では、例えば、サッカーゲームを例に挙げると、ボールを第１の移動オブジェクトＣＨ１として設定し、プレーヤキャラクタを第２の移動オブジェクトＣＨ２として設定することができる。そして、図１６（Ａ）のように、プレーヤキャラクタ２０がボール２２をキープしていると条件判定部１１８が判定した場合、すなわち、第１の視点位置変更条件が満たされた場合には、第１の距離ｄ１と第２の距離ｄ２との差が小さくなるように、視点ＣＭをＣＭ１の位置に設定する。そして、注視点ＥＰ１を第１の移動オブジェクトＣＨ１と第２の移動オブジェクトＣＨ２とを結ぶ線分ＣＣの中点付近に設定する。すると、ボール２２をキープしているプレーヤキャラクタ２０を横方向から見る画像を描画することができる。
【０１４５】
一方、図１６（Ｂ）のように、プレーヤキャラクタ２０がボール２２をキープしていないと条件判定部１１８が判定した場合、すなわち、第２の視点位置変更条件が満たされた場合には、第１の距離ｄ１に対する第２の距離ｄ２の比が小さくなるように、視点ＣＭをＣＭ２に設定し、ＣＭ１からＣＭ２に連続的に移動させる。そして、注視点を、線分ＣＣ上であって、線分ＣＣの中点よりも第２の移動オブジェクトＣＨ２よりのＥＰ２に設定し、ＥＰ１からＥＰ２に連続的に移動させる。すると、ボール２２をキープしていないプレーヤキャラクタ２０のほぼ後ろ側から、プレーヤキャラクタ２０を手前側に大きく見て、ボール２２を奥行き方向に見る画像を描画することができる。
【０１４６】
また、この実施の形態においても、第１の移動オブジェクトＣＨ１（ボール）を除くＮ−１個の移動オブジェクト（プレーヤキャラクタ）から１の移動オブジェクトを選択可能に構成し、仮想カメラ制御部１１４が、選択された移動オブジェクトを第２の移動オブジェクトＣＨ２として、視点位置を変化させるようにしてもよい。この場合には、１１人のプレーヤキャラクタの中から、操作部１６０により操作を行う１のプレーヤキャラクタをプレーヤが選択し、選択したプレーヤキャラクタがボール２２をキープしているか否かにより、視点位置、視線方向の制御を行う。
【０１４７】
こうして、この実施の形態によれば、プレーヤキャラクタ２０がボール２２をキープしている場合に、ボール２２及びプレーヤキャラクタ２０を横方向から見た画像を表示させることができ、例えば、プレーヤキャラクタ２０がボール２２をキープする様子をわかりやすく表示させることができる。また、プレーヤキャラクタ２０がボール２２をキープしていない場合でも、プレーヤが選択したプレーヤキャラクタ２０を手前側に大きく表示させつつ奥行き方向にボール２２を表示させることができ、例えば、奥行き方向から飛んでくるロングパスを受け取る様子を迫力のある画像として表示させることができる。
【０１４８】
４．ハードウェア構成
図１７に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１４９】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【０１５０】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【０１５１】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【０１５２】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【０１５３】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１５４】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１５５】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語（描画領域、ピクセル値、変換テーブル等）として引用された用語（フレームバッファ・ワークバッファ、α値、ルックアップテーブル等）は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０１５６】
また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１５７】
【図１】本実施形態の画像生成システムの機能ブロック図の例である。
【図２】本実施形態で生成される画像の一例である。
【図３】本実施形態の操作部の一例である。
【図４】本実施形態の仮想カメラ制御の手法の説明図である。
【図５】本実施形態で生成される画像の一例である。
【図６】本実施形態で生成される画像の一例である。
【図７】本実施形態で生成される画像の一例である。
【図８】本実施形態で生成される画像の一例である。
【図９】本実施形態の仮想カメラ制御処理のフローチャートである。
【図１０】図１０（Ａ）、（Ｂ）は、本実施形態の仮想カメラ制御処理のフローチャートである。
【図１１】図１１（Ａ）、（Ｂ）は、本実施形態の仮想カメラ制御の手法の説明図である。
【図１２】図１２（Ａ）、（Ｂ）は、本実施形態の仮想カメラ制御の手法の説明図である。
【図１３】図１３（Ａ）、（Ｂ）は、本実施形態の仮想カメラ制御の手法の説明図である。
【図１４】本実施形態の仮想カメラ制御処理のフローチャートである。
【図１５】本実施形態の仮想カメラ制御の手法の説明図である。
【図１６】図１６（Ａ）、（Ｂ）は、他の実施形態の仮想カメラ制御の手法の説明図である。
【図１７】本実施形態の画像生成システムのハードウェア構成の例である。
【符号の説明】
【０１５８】
ＣＭ  視点
ＥＤ  視線方向
ＥＰ  注視点
ＣＨ１  第１の移動オブジェクト
ＣＨ２  第２の移動オブジェクト
ｄ１  第１の距離
ｄ２  第２の距離
１００  処理部
１１０  オブジェクト空間設定部
１１２  移動・動作処理部
１１４  仮想カメラ制御部
１２０  描画部
１６０  操作部
１７０  記憶部
１８０  情報記憶媒体
１９０  表示部
【図１】
2006268818.tif 000003
【図２】
2006268818.tif 000004
【図３】
2006268818.tif 000005
【図４】
2006268818.tif 000006
【図５】
2006268818.tif 000007
【図６】
2006268818.tif 000008
【図７】
2006268818.tif 000009
【図８】
2006268818.tif 000010
【図９】
2006268818.tif 000011
【図１０】
2006268818.tif 000012
【図１１】
2006268818.tif 000013
【図１２】
2006268818.tif 000014
【図１３】
2006268818.tif 000015
【図１４】
2006268818.tif 000016
【図１５】
2006268818.tif 000017
【図１６】
2006268818.tif 000018
【図１７】
2006268818.tif 000019