説明

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

【課題】 視認性が高く迫力のある画像を実現する仮想カメラ制御処理を行う。
【解決手段】 仮想カメラ制御部が、第1の移動オブジェクトCH1の位置と第2の移動オブジェクトCH2の位置とが近づくにつれて、第1の移動オブジェクトCH1と仮想カメラとの距離である第1の距離d1と、第2の移動オブジェクトCH2と仮想カメラとの距離である第2の距離d2と、の差が小さくなるように仮想カメラの位置CMを変化させ、第1の移動オブジェクトCH1の位置と第2の移動オブジェクトCH2の位置とが離れるにつれて、第1の距離d1と第2の距離d2との差が大きくなるように仮想カメラの位置CMを変化させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、及び画像生成システムに関する。
【背景技術】
【0002】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内(仮想的な3次元空間)において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【0003】
このような画像生成システムでは、オブジェクト空間内を移動する複数のオブジェクトを仮想カメラの視野範囲に収めるために、仮想カメラの位置を制御する場合がある。このような仮想カメラの制御を行う技術としては例えば特開2001−25580号公報に開示される従来技術がある。しかしながら、従来の画像生成システムでは、オブジェクト間の距離が離れれば離れるほど、仮想カメラの位置を対象オブジェクトから遠ざかるように制御していたため、表示されるオブジェクトが小さくなり視認しにくくなるという問題があった。
【特許文献1】特開2001−25580号公報
【特許文献2】特開平11−7543号公報
【特許文献3】特開2003−93735号公報
【特許文献4】特開平11−235466号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、視認性が高く迫力のある画像を実現する仮想カメラ制御処理を行うことができるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【0005】
(1)本発明は、画像を生成する画像生成システムであって、
第1の移動オブジェクト及び第2の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第1の移動オブジェクト及び第2の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部と、
を含み、
前記仮想カメラ制御部が、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが近づくにつれて、第1の移動オブジェクトと仮想カメラとの距離である第1の距離と、第2の移動オブジェクトと仮想カメラとの距離である第2の距離と、の差が小さくなるように仮想カメラの位置を変化させ、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが離れるにつれて、前記第1の距離と前記第2の距離との差が大きくなるように仮想カメラの位置を変化させることを特徴とする画像生成システムに関係する。
【0006】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶(記録)した情報記憶媒体に関係する。
【0007】
本発明において、第1の移動オブジェクト及び第2の移動オブジェクトとは、それぞれが1の移動オブジェクトから構成されていてもよいし、少なくとも一方が所定範囲内に配置された複数のオブジェクト群から構成されるようにしてもよい。
【0008】
本発明によれば、第1の移動オブジェクトと第2の移動オブジェクトとの位置が近づくにつれて、第1の移動オブジェクト及び第2の移動オブジェクトの双方の仮想カメラに対する奥行き方向の距離の差を近づけることができ、第1の移動オブジェクトと第2の移動オブジェクトとの間の距離をわかりやすく表示させることができる。
【0009】
また、第1の移動オブジェクトと第2の移動オブジェクトとの位置が近づくにつれて、第1の移動オブジェクト及び第2の移動オブジェクトの双方に対して仮想カメラを近づけることができるので、第1の移動オブジェクト及び第2の移動オブジェクトの双方を画像において大きく表示させることができ、双方のオブジェクトの視認性を高めることができる。
【0010】
加えて、第1の移動オブジェクトと第2の移動オブジェクトとの位置が離れるにつれて、第1の移動オブジェクト又は第2の移動オブジェクトのいずれか一方に対しては仮想カメラを遠ざけつつも、他方に対しては仮想カメラを近づけたままとすることができる。
【0011】
従って、第1の移動オブジェクトと第2の移動オブジェクトとの位置が離れたとしても、第1の移動オブジェクト又は第2の移動オブジェクトのいずれか一方を画像において大きく表示させることができ、いずれか一方のオブジェクトの視認性を高めることができる。
【0012】
(2)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが近づくにつれて、第1の移動オブジェクトと第2の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向とのなす角が直角に近づくように仮想カメラの向きを変化させ、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが離れるにつれて、第1の移動オブジェクトと第2の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向とのなす角が直角から遠ざかるように仮想カメラの向きを変化させるようにしてもよい。
【0013】
本発明において、第1の移動オブジェクトと第2の移動オブジェクトとを結ぶ方向とは、例えば、それぞれのオブジェクトの代表点を結んだ線に沿う方向とすることができる。
【0014】
本発明によれば、第1の距離と第2の距離との差が小さくなるように仮想カメラの位置を変化させても、また、第1の距離と第2の距離との差が大きくなるように仮想カメラの位置を変化させても、第1の移動オブジェクトと第2の移動オブジェクトとを仮想カメラの視野範囲内に収め、第1の移動オブジェクトと第2の移動オブジェクトの双方を表示させることができる。
【0015】
(3)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
第1の移動オブジェクト及び第2の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第1の移動オブジェクト及び第2の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部と、
を含み、
前記仮想カメラ制御部が、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが近づくにつれて、第1の移動オブジェクトと仮想カメラとの距離である第1の距離と、第2の移動オブジェクトと仮想カメラとの距離である第2の距離と、の差が小さくなるように仮想カメラの位置を変化させるようにしてもよい。
【0016】
本発明によれば、第1の移動オブジェクトと第2の移動オブジェクトとの位置が近づくにつれて、第1の移動オブジェクト及び第2の移動オブジェクトの双方の仮想カメラに対する奥行き方向の距離の差を近づけることができ、第1の移動オブジェクトと第2の移動オブジェクトとの間の距離をわかりやすく表示させることができる。
【0017】
また、第1の移動オブジェクトと第2の移動オブジェクトとの位置が近づくにつれて、第1の移動オブジェクト及び第2の移動オブジェクトの双方に対して仮想カメラを近づけることができるので、第1の移動オブジェクト及び第2の移動オブジェクトの双方を画像において大きく表示させることができ、双方のオブジェクトの視認性を高めることができる。
【0018】
(4)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが近づくにつれて、第1の移動オブジェクトと第2の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向とのなす角が直角に近づくように仮想カメラの向きを変化させるようにしてもよい。
【0019】
本発明によれば、第1の距離と第2の距離との差が小さくなるように仮想カメラの位置を変化させても、第1の移動オブジェクトと第2の移動オブジェクトとを仮想カメラの視野範囲内に収め、第1の移動オブジェクトと第2の移動オブジェクトの双方を表示させることができる。
【0020】
(5)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
第1の移動オブジェクト及び第2の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第1の移動オブジェクト及び第2の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部と、
を含み、
前記仮想カメラ制御部が、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが離れるにつれて、前記第1の距離と前記第2の距離との差が大きくなるように仮想カメラの位置を変化させるようにしてもよい。
【0021】
本発明によれば、第1の移動オブジェクトと第2の移動オブジェクトとの位置が離れるにつれて、第1の移動オブジェクト又は第2の移動オブジェクトのいずれか一方に対しては仮想カメラを遠ざけつつも、他方に対しては仮想カメラを近づけたままとすることができる。
【0022】
従って、第1の移動オブジェクトと第2の移動オブジェクトとの位置が離れたとしても、第1の移動オブジェクト又は第2の移動オブジェクトのいずれか一方を画像において大きく表示させることができ、いずれか一方のオブジェクトの視認性を高めることができる。
【0023】
(6)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが離れるにつれて、第1の移動オブジェクトと第2の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向とのなす角が直角から遠ざかるように仮想カメラの向きを変化させるようにしてもよい。
【0024】
本発明によれば、第1の距離と第2の距離との差が大きくなるように仮想カメラの位置を変化させても、第1の移動オブジェクトと第2の移動オブジェクトとを仮想カメラの視野範囲内に収め、第1の移動オブジェクトと第2の移動オブジェクトの双方を表示させることができる。
【0025】
(7)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
仮想カメラの位置を変化させる場合には、仮想カメラの視野範囲内に第1の移動オブジェクトと第2の移動オブジェクトとが入る範囲内で仮想カメラの位置を変化させるようにしてもよい。
【0026】
本発明において、仮想カメラの視野範囲内に第1の移動オブジェクトと第2の移動オブジェクトとが入る仮想カメラの位置とは、例えば、第1の移動オブジェクトの位置情報と第2の移動オブジェクトの位置情報とに基づき、或いは、第1の移動オブジェクトと第2の移動オブジェクトとの位置関係に基づき、所定の関数により演算するものであってもよいし、第1の移動オブジェクトと第2の移動オブジェクトとの位置関係に応じて予め定められているものであってもよい。
【0027】
本発明によれば、第1の移動オブジェクトと第2の移動オブジェクトとの位置が変化し、仮想カメラの位置を変化させる場合でも、第1の移動オブジェクトと第2の移動オブジェクトの双方を表示させることができる。
【0028】
(8)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
仮想カメラの向きを変化させる場合には、仮想カメラの視野範囲内に第1の移動オブジェクトと第2の移動オブジェクトとが入る範囲内で仮想カメラの向きを変化させるようにしてもよい。
【0029】
本発明において、仮想カメラの視野範囲内に第1の移動オブジェクトと第2の移動オブジェクトとが入る方向とは、例えば、第1の移動オブジェクトの位置情報と第2の移動オブジェクトの位置情報とに基づき、或いは、第1の移動オブジェクトと第2の移動オブジェクトとの位置関係に基づき、所定の関数により演算するものであってもよいし、第1の移動オブジェクトと第2の移動オブジェクトとの位置関係に応じて予め定められているものであってもよい。
【0030】
本発明によれば、第1の移動オブジェクトと第2の移動オブジェクトとの位置が変化し、仮想カメラの向きを変化させる場合でも、第1の移動オブジェクトと第2の移動オブジェクトの双方を表示させることができる。
【0031】
(9)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
仮想カメラの向きを変化させる場合には、第1の移動オブジェクトと第2の移動オブジェクトとに対して所定の位置関係を有する点を向くように仮想カメラの向きを変化させるようにしてもよい。
【0032】
本発明において、第1の移動オブジェクトと第2の移動オブジェクトとに対して所定の位置関係を有する点とは、例えば、第1の移動オブジェクトの位置情報と第2の移動オブジェクトの位置情報とに基づき、或いは、第1の移動オブジェクトと第2の移動オブジェクトとの位置関係に基づき、所定の関数により演算するものであってもよいし、第1の移動オブジェクトと第2の移動オブジェクトとの位置関係に応じて予め定められているものであってもよい。
【0033】
また、所定の位置関係を有する点は、例えば、第1の移動オブジェクトの代表点と第2の移動オブジェクトの代表点とを結ぶ線分上に設定することができ、視点に近い方の代表点と当該線分の中点との間に設定することができる。例えば、所定の位置関係を有する点を、第1の移動オブジェクトの代表点と視点と第2の移動オブジェクトの代表点とがなす角の二等分線と、第1の移動オブジェクトの代表点と第2の移動オブジェクトの代表点とを結ぶ線と、の交点とすることや、第1の移動オブジェクトの代表点と第2の移動オブジェクトの代表点とを結ぶ線分の中点、或いは、第1の移動オブジェクトの代表点と第2の移動オブジェクトの代表点とを結ぶ線分上であっていずれかのオブジェクトの代表点から所定距離にある点とすることができる。
【0034】
本発明によれば、仮想カメラの視野範囲内に第1の移動オブジェクトと第2の移動オブジェクトとが入る点を設定することにより、少ない演算量で仮想カメラの向きを制御することができる。
【0035】
(10)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが所与の距離まで近づいた場合に、前記第1の距離と前記第2の距離との差が0となるように仮想カメラの位置を変化させるようにしてもよい。
【0036】
本発明によれば、第1の移動オブジェクトと第2の移動オブジェクトとの位置が所与の距離まで近づいた場合に、第1の移動オブジェクト及び第2の移動オブジェクトの双方の仮想カメラに対する奥行き方向の距離を同一にすることができる。
【0037】
従って、第1の移動オブジェクトと第2の移動オブジェクトとの位置が所与の距離まで近づいた場合に、第1の移動オブジェクトと第2の移動オブジェクトとの間の距離をわかりやすく表示させることができる。
【0038】
(11)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置、第1の移動オブジェクトと第2の移動オブジェクトとの距離、の少なくとも一方を変数とした所定の関数に基づいて、仮想カメラの位置を変化させるようにしてもよい。
【0039】
本発明によれば、予め設定された関数により、第1の移動オブジェクトと第2の移動オブジェクトの位置、及び第1の移動オブジェクトと第2の移動オブジェクトとの距離、の少なくとも一方に応じた適切な視点位置を演算することができる。
【0040】
(12)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
前記移動オブジェクトに設定された属性データに応じて、仮想カメラの位置を変化させるようにしてもよい。
【0041】
本発明において、移動オブジェクトに設定された属性データとは、移動オブジェクトのキャラクタ種類に応じて変化するキャラクタ属性データとすることや、移動オブジェクトが取得したアイテム種類に応じて変化するアイテム属性データとすることや、キャラクタ属性データとアイテム属性データの組み合わせにより変化する属性データとすることができる。これら各種属性データは、例えば、属性データ記憶部に各キャラクタの属性データ、各アイテムの属性データを記憶させておくことができる。そして、移動オブジェクトに設定された属性データに基づき、例えば、仮想カメラの位置を演算するための関数の係数を変更するようにしてもよい。
【0042】
本発明によれば、移動オブジェクトに設定された属性データに応じて、仮想カメラの位置の移動速度、移動軌跡等の移動態様を変化させることができる。従って、移動オブジェクトに設定された属性データに応じた種々の画像を生成することができる。
【0043】
(13)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
第1の移動オブジェクトの移動及び動作の少なくとも一方が、操作部からの入力信号に基づき操作可能に形成され、
前記仮想カメラ制御部が、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが離れるにつれて、前記第2の距離に対する前記第1の距離の比が小さくなるように仮想カメラの位置を変化させるようにしてもよい。
【0044】
本発明によれば、第1の移動オブジェクトと第2の移動オブジェクトとの位置が離れるにつれて、プレーヤが操作しない第2の移動オブジェクトに対しては仮想カメラを遠ざけつつ、プレーヤが操作可能な第1の移動オブジェクトに対しては仮想カメラを近づけたままとすることができる。
【0045】
従って、第1の移動オブジェクトと第2の移動オブジェクトとの位置が離れたとしても、プレーヤが操作可能な第1の移動オブジェクトを画像において大きく表示させることができ、プレーヤが操作可能なオブジェクトの視認性を高めることができる。
【0046】
(14)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
第1〜第N(N≧3)の移動オブジェクトを前記オブジェクト空間に設定するオブジェクト空間設定部と、
第1の移動オブジェクトを除くN−1個の移動オブジェクトから1の移動オブジェクトを選択するオブジェクト選択部と、
を更に含み、
前記仮想カメラ制御部が、
前記オブジェクト選択部により選択された移動オブジェクトを第2の移動オブジェクトとして、仮想カメラの位置を変化させるようにしてもよい。
【0047】
本発明において、オブジェクト選択部は、操作部からの入力情報に基づいて1の移動オブジェクトを選択するようにしてもよいし、所与のプログラムに基づいて1の移動オブジェクトを選択するようにしてもよい。
【0048】
本発明によれば、仮想カメラの位置を制御するための基準となる第2の移動オブジェクトが、オブジェクト選択部により選択された移動オブジェクトに変更される。従って、第1の移動オブジェクトの位置と選択された1の移動オブジェクトの位置に応じた仮想カメラの位置の制御を自動的に行うことができる。
【0049】
(15)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記仮想カメラ制御部が、
前記オブジェクト選択部により1の移動オブジェクトが選択された場合には、選択された移動オブジェクトを第2の移動オブジェクトとして仮想カメラの位置を変化させ、
前記オブジェクト選択部により移動オブジェクトが選択されていない場合には、操作部からの入力信号に基づき仮想カメラの位置及び向きの少なくとも一方を変化させるようにしてもよい。
【0050】
本発明によれば、オブジェクト選択部により1の移動オブジェクトが選択された場合には、プレーヤが操作可能な第1の移動オブジェクトと選択された移動オブジェクトの位置に応じた仮想カメラの位置の制御を自動的に行い、1の移動オブジェクトが選択されていない場合には、操作部により仮想カメラの位置、向きの制御を操作することができる。従って、オブジェクト空間の状況に合わせた最適な仮想カメラ制御処理を行うことができる。
【0051】
(16)また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
第1の移動オブジェクト及び第2の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第1の移動オブジェクト及び第2の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部と、
第1の条件又は第2の条件のいずれかが満たされたか否かを判定する判定部と、
を含み、
前記仮想カメラ制御部が、
第1の条件が満たされた場合に、第1の移動オブジェクトと仮想カメラとの距離である第1の距離と、第2の移動オブジェクトと仮想カメラとの距離である第2の距離と、の差が小さくなるように仮想カメラの位置を変化させ、
第2の条件が満たされた場合に、前記第1の距離と前記第2の距離との差が大きくなるように仮想カメラの位置を変化させるようにしてもよい。
【0052】
本発明において、第1の条件として、例えば、サッカーゲームにおいてプレーヤが操作する移動オブジェクトがボールを受け取ったことや、アドベンチャーゲームにおいてプレーヤが操作する移動オブジェクトが敵と遭遇したことなど、所与のイベントの発生を条件とすることができる。また、第2の条件として、発生したイベントの終了や、他のイベントの発生を条件とすることができる。
【0053】
本発明によれば、第1の条件が満たされた場合に、第1の移動オブジェクト及び第2の移動オブジェクトの双方に対して仮想カメラを近づけることができ、第2の条件が満たされた場合に、第1の移動オブジェクト又は第2の移動オブジェクトのいずれか一方に対しては仮想カメラを遠ざけつつも、他方に対しては仮想カメラを近づけたままとすることができる。
【0054】
従って、第1の条件が満たされた場合に、第1の移動オブジェクト及び第2の移動オブジェクトの双方を画像において大きく表示させることができ、双方のオブジェクトの視認性を高めることができ、第2の条件が満たされた場合に、第1の移動オブジェクト又は第2の移動オブジェクトのいずれか一方を画像において大きく表示させることができ、いずれか一方のオブジェクトの視認性を高めることができる。
【発明を実施するための最良の形態】
【0055】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0056】
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0057】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【0058】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。例えば、処理部100が取得した情報を一時的に保留記憶する保留記憶部として機能する。
【0059】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、ハードディスク、メモリーカード、メモリーカセット、磁気ディスク、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0060】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD(液晶表示装置)、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0061】
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。通信部196は外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0062】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(記憶部170)に配信してもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0063】
処理部100(プロセッサ)は、操作部160からの操作データ(入力情報)やプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部100は記憶部170をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0064】
処理部100は、オブジェクト空間設定部110、移動・動作処理部112、仮想カメラ制御部114、ゲーム演算処理部116、条件判定部118、オブジェクト選択部119、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
【0065】
オブジェクト空間設定部110は、キャラクタ、車、戦車、ボール、被投てき体、建物、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクト(モデルオブジェクト)の位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。特に、本実施の形態では、第1〜第N(N≧3)の移動オブジェクトをオブジェクト空間に配置設定する処理を行う。
【0066】
移動・動作処理部112は、オブジェクト(キャラクタ、車、ボール、被投てき体等)の移動・動作演算(移動・動作シミュレーション)を行う。即ち操作部160によりプレーヤが入力した操作データ(入力情報)や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクト(移動オブジェクト)をオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させる処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(各パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0067】
仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、操作部160からの入力情報、移動オブジェクトの位置情報、所与のプログラム(移動・回転アルゴリズム)、各種データ(仮想カメラ制御データ)などに基づいて、仮想カメラの位置(X、Y、Z)、向き(X、Y、Z軸回りでの回転角度)、画角(視野範囲)を制御する処理を行う。
【0068】
ここで、仮想カメラの向きの制御として、仮想カメラが見る点である注視点をオブジェクト空間内に設定し、設定された注視点を向くように仮想カメラの回転角度を制御するようにしてもよい。また、仮想カメラの画角は、画角を拡大、縮小させることにより制御してもよいし、オブジェクトを投影するスクリーン(仮想スクリーン)と仮想カメラとの距離を変化させることにより制御してもよい。なお、仮想カメラの画角を狭くする又はスクリーンと仮想カメラの距離を遠ざけることにより対象オブジェクトをズームアップする画像を生成することができ、仮想カメラの画角を広くする又はスクリーンと仮想カメラの距離を近づけることにより対象オブジェクトからズームバックする画像を生成することができる。
【0069】
ここで、仮想カメラによりオブジェクト(例えばキャラクタ、ボール、車)を撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置、向き、画角を制御する。この場合には、移動・動作処理部112で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。
【0070】
また、例えば、撮影対象とするオブジェクトが複数ある場合には、複数のオブジェクトのそれぞれの位置情報、或いは、位置関係情報(距離、角度等)に基づき、所定の関数により仮想カメラの位置、向きを演算することにより仮想カメラを制御できる。
【0071】
そして、本実施の形態では、仮想カメラ制御部114が、仮想カメラの撮影対象となる第1の移動オブジェクトと第2の移動オブジェクトが設定された場合に、第1の移動オブジェクトと第2の移動オブジェクトの位置が近づくにつれて、第1の移動オブジェクトと仮想カメラとの距離である第1の距離と、第2の移動オブジェクトと仮想カメラとの距離である第2の距離と、の差が小さくなるように仮想カメラの位置を変化させるとともに、第1の移動オブジェクトと第2の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向と、がなす角が直角に近づくように仮想カメラの向きを変化させる仮想カメラ制御処理を行う。
【0072】
また、第1の移動オブジェクトと第2の移動オブジェクトとの位置が離れるにつれて、前記第1の距離と前記第2の距離との差が大きくなるように仮想カメラの位置を変化させるとともに、第1の移動オブジェクトと第2の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向と、がなす角が直角から遠ざかるように仮想カメラの向きを変化させる仮想カメラ制御処理を行う。
【0073】
この場合、仮想カメラ制御部114は、第1の移動オブジェクトの位置情報と第2の移動オブジェクトとの位置情報とに基づき、或いは、第1の移動オブジェクトと第2の移動オブジェクトとの距離に基づき、仮想カメラの位置、向きを1フレームごとに演算する処理を行う。
【0074】
また、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御することができる。ここで、仮想カメラデータは、記憶部170の仮想カメラデータ記憶部172に複数種類記憶させておくことができ、ゲーム状況に応じて選択されるようにしてもよい。
【0075】
ゲーム演算処理部116は、操作部160からの入力信号、所与のプログラムに基づき、ゲームに関する各種の条件設定や所定のゲームの進行等の種々のゲーム処理を行う。
【0076】
条件判定部118は、操作部160からの入力信号、所与のプログラムに基づき、ゲームに関する各種の条件が満たされたか否かを判定するための処理を行う。
【0077】
オブジェクト選択部119は、操作部160からの入力信号、所与のプログラムに基づき、本実施の形態に特徴的な仮想カメラ制御処理を行う対象となる第2の移動オブジェクトを選択するための処理を行う。ここで、第2の移動オブジェクトは、プレーヤが操作部160を操作することにより選択されるようにしてもよいし、所与のアルゴリズムに従って自動的に選択されるようにしてもよい。
【0078】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まず、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を描画バッファ174(フレームバッファ、ワークバッファなどのピクセル単位で画像情報を記憶できるバッファ。VRAM)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0079】
また、描画部120は、テクスチャマッピング処理や隠面消去処理やαブレンディング処理を行うことができる。
【0080】
ここでテクスチャマッピング処理は、テクスチャ記憶部175に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングする処理である。具体的には、オブジェクト(プリミティブ面)の頂点に設定(付与)されるテクスチャ座標等を用いてテクスチャ記憶部175からテクスチャ(色、α値などの表面プロパティ)を読み出す。そして、2次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間(テクセル補間)などを行う。
【0081】
また隠面消去処理は、例えば、各ピクセルのZ値(奥行き情報)が格納されるZバッファ176(奥行きバッファ)を用いるZバッファ法(奥行き比較法、Zテスト)により実現される。即ちオブジェクトのプリミティブ面の各ピクセルを描画する際に、Zバッファ176に格納されるZ値を参照する。そして参照されたZバッファ176のZ値と、プリミティブ面の描画対象ピクセルでのZ値とを比較し、描画対象ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、そのピクセルの描画処理を行うと共にZバッファ176のZ値を新たなZ値に更新する。
【0082】
またαブレンディング処理は、α値(A値)に基づいて行う処理であり、通常αブレンディング、α加算ブレンディング或いはα減算ブレンディングなどがある。例えば通常αブレンディングの場合には下式の処理を行う。
【0083】
Q=(1−α)×R1+α×R2
Q=(1−α)×G1+α×G2
Q=(1−α)×B1+α×B2
一方、加算αブレンディングの場合には下式の処理を行う。
【0084】
Q=R1+α×R2
Q=G1+α×G2
Q=B1+α×B2
ここで、R1、G1、B1は、描画バッファ174に既に描画されている画像(元画像)
のRGB成分であり、R2、G2、B2は、描画バッファ174に描画すべき画像のRGB
成分である。また、RQ、GQ、BQは、αブレンディングにより得られる画像のRGB成
分である。なおα値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、半透明度(透明度、不透明度と等価)情報、マスク情報、或いはバンプ情報などとして使用できる。
【0085】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0086】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
【0087】
2.本実施形態の手法
次に本実施形態の特徴について図面を用いて説明する。なお、以下では、アクションゲームに本実施形態を適用した場合を主に例にとり説明するが、本実施形態は、アクションゲーム以外にもサッカーゲーム等のスポーツゲームなど、2以上の移動オブジェクトがオブジェクト空間内を移動する種々の画像生成システムにも広く適用できる。
【0088】
2−1:ゲームの概要
本実施の形態のアクションゲームシステムは、図2に示すように、プレーヤオブジェクト12、敵オブジェクト14、他の敵オブジェクト16と、マップ(床)MPとが配置された仮想3次元オブジェクト空間SPを表示部190に表示させる。そして、プレーヤは、表示部190を見ながら、操作部160を用いてプレーヤオブジェクト12の移動・動作を操作して、所与のプログラムにより移動・動作を行う複数の敵である敵オブジェクト14、他の敵オブジェクト16と格闘を行うゲームを楽しむ。
【0089】
図3には、操作部160の一例が示されている。本実施の形態の操作部160は、プレーヤが両手で操作部160の左右を把持し、操作部160に配置された複数の操作子を左右の手の親指、人差し指、中指で操作可能に形成されている。
【0090】
この操作部160の中央下部には、左レバー312、右レバー314が設けられている。これら左レバー312、右レバー314は、レバー部分を全方向に倒すことができ、レバー部分を倒した量と方向の変化量と変化速度をアナログ的に検出可能に形成されている。そして、本実施の形態では、左レバー312を倒した方向に応じて、プレーヤオブジェクト12をマップ(床)MP上で移動させる。また、右レバー314を倒した方向に応じて、オブジェクト空間SPを撮影する仮想カメラの位置、向きをオブジェクト空間SP内で変化させる。従って、本実施の形態のアクションゲームシステムでは、プレーヤオブジェクト12の位置、回転角度と、仮想カメラの位置、向きをアナログ的(連続的に)に操作することができる。
【0091】
また、操作部160の右側中央部には、ON/OFFを検出可能に形成された4つのボタンが設けられており、本実施の形態では、△ボタン316を押下することによりプレーヤオブジェクト12が所与のオブジェクト(例えば槍や金属バット等)を投げる動作を行い、○ボタン318を押下することによりプレーヤオブジェクト12がパンチやキック等の打撃攻撃動作を行うように形成されている。
【0092】
また、操作部160の左右上部には、ON/OFFを検出可能に形成された左ボタン320と右ボタン322が設けられており、本実施の形態では、左ボタン320を押下することによりプレーヤオブジェクト12が投げる対象となる所与のオブジェクトを拾う動作を行うように形成されている。また、右ボタン322を押下することにより、プレーヤオブジェクト12を追従する仮想カメラ制御処理を行うモードと、本実施の形態に特徴的な、移動オブジェクト間の距離に応じた仮想カメラ制御処理を行うモードとを切替えるように形成されている。そして、本実施の形態では、移動オブジェクト間の距離に応じた仮想カメラ制御処理を行うモードが設定されている場合には、右レバー314を倒すことにより、移動オブジェクト間の距離に応じた仮想カメラ制御処理を行う対象であるターゲットオブジェクトを複数の敵オブジェクトから選択することができる。
【0093】
2−2:移動オブジェクト間の距離に応じた仮想カメラ制御処理
本実施の形態では、初期状態では、プレーヤオブジェクト12を追従するように視点位置、視線方向を制御する。そして、本実施の形態の特徴的な処理として、敵オブジェクト14、16から1の敵オブジェクトがターゲットオブジェクトとして選択された場合には、プレーヤオブジェクト12とターゲットオブジェクトとして選択された敵オブジェクトとが、仮想カメラの視野範囲に入るように所定の視点位置、視線方向の制御を行う。
【0094】
具体的には、プレーヤキャラクタ12を第1の移動オブジェクトCH1として、選択された敵オブジェクトを第2の移動オブジェクトCH2として設定し、第1の移動オブジェクトCH1と第2の移動オブジェクトCH2との位置が近づくにつれて、第1の移動オブジェクトCH1と仮想カメラとの距離である第1の距離と、第2の移動オブジェクトCH2と仮想カメラとの距離である第2の距離と、の差が小さくなるように仮想カメラの位置を変化させるとともに、第1の移動オブジェクトCH1と第2の移動オブジェクトCH2とを結ぶ方向と、仮想カメラの視線方向と、がなす角が直角に近づくように仮想カメラの向きを変化させる仮想カメラ制御処理を行う。
【0095】
また、第1の移動オブジェクトCH1と第2の移動オブジェクトCH2との位置が離れるにつれて、前記第1の距離と前記第2の距離との差が大きくなるように仮想カメラの位置を変化させるとともに、第1の移動オブジェクトCH1と第2の移動オブジェクトCH2とを結ぶ方向と、仮想カメラの視線方向と、がなす角が直角から遠ざかるように仮想カメラの向きを変化させる仮想カメラ制御処理を行う。以下、本実施の形態に特徴的な移動オブジェクト間の距離に応じた仮想カメラ制御処理について説明する。
【0096】
図4(A)〜(E)は、第1の移動オブジェクトCH1、第2の移動オブジェクトCH2、視点CMが配置されたオブジェクト空間SPをXZ平面で表現した(真上から見た)図である。なお、第1の移動オブジェクトCH1、第2の移動オブジェクトCH2、視点CMには、それぞれ任意のY座標が与えられている。また、図2、図5〜図8は、視点位置、視線方向が、図4(A)〜(E)にあるときに生成される画像を示す図である。
【0097】
まず、ゲーム開始時には初期状態として、図4(A)のように、仮想カメラの注視点EPがプレーヤオブジェクト12に設定されており、図2に示すように、プレーヤオブジェクト12を中心とした画像が生成される。そして、移動オブジェクト間の距離に応じた仮想カメラ制御処理を行うモードが設定されると、図4(B)のように、第1の移動オブジェクトCH1(プレーヤキャラクタ12)と視点CMとの距離である第1の距離d1が、第2の移動オブジェクトCH2(敵キャラクタ14)と視点CMとの距離である第2の距離d2よりも若干小さくなるように、視点CMを連続的に移動させる。そして、仮想カメラの注視点EPを、第1の移動オブジェクトCH1と第2の移動オブジェクトCH2の間に連続的に移動させ、視線方向EDが注視点EPを向くように仮想カメラの向きを制御する。
【0098】
すると、図5のように、やや第1の移動オブジェクトCH1寄りの横側から、第1の移動オブジェクトCH1と第2の移動オブジェクトCH2の間を中心として見る画像が生成される。なお、第2の移動オブジェクトCH2の頭上のマーク18は、敵オブジェクトが第2の移動オブジェクトCH2として選択されていることを示すためのものである。
【0099】
そして、図4(C)のように、第1の移動オブジェクトCH1の位置と第2の移動オブジェクトCH2の位置とが離れると、第2の距離d2に対する第1の距離d1の比が小さくなるように視点CMの位置を制御し、第1の移動オブジェクトCH1の代表点と第2の移動オブジェクトCH2の代表点とを結ぶ方向CCと、視線方向EDとのなす角が直角から遠ざかるように仮想カメラの向きを制御する。すると、図6のように、第1の移動オブジェクトCH1寄りの斜め後ろ側から、第1の移動オブジェクトCH1と第2の移動オブジェクトCH2の間を中心として見る画像が生成される。
【0100】
そして、図4(D)、(E)のように、第1の移動オブジェクトCH1の位置と第2の移動オブジェクトCH2の位置とが更に離れると、第2の距離d2に対する第1の距離d1の比が更に小さくなるように視点CMの位置を制御し、方向CCと視線方向EDとのなす角が直角から更に遠ざかるように仮想カメラの向きを制御する。すると、図4(D)の状態では、図7のように、第1の移動オブジェクトCH1寄りの更に斜め後ろ側から、第1の移動オブジェクトCH1と第2の移動オブジェクトCH2の間を中心として見る画像が生成される。そして、図4(E)の状態では、図8のように、第1の移動オブジェクトCH1のほぼ後ろ側から第2の移動オブジェクトCH2を奥行き方向に見る画像が生成される。
【0101】
なお、本実施の形態では、図4(E)の状態まで方向CCと視線方向EDとのなす角が直角から遠ざかると、第1の移動オブジェクトCH1の位置と第2の移動オブジェクトCH2の位置とが更に離れても、それ以上方向CCと視線方向EDとのなす角が変化しないように制御する。すなわち、方向CCに対する視線方向EDの角度の最小値が、図中の角度に設定されている。これにより、第1の移動オブジェクトCH1の位置と第2の移動オブジェクトCH2の位置とが更に離れた場合に、第2の移動オブジェクトCH2が第1の移動オブジェクトCH1の陰に隠れて表示されなくなってしまうことを防止することができる。
【0102】
一方、図4(E)の状態から図4(B)の状態まで、第1の移動オブジェクトCH1の位置と第2の移動オブジェクトCH2の位置とが近づいていくと、第1の距離d1と第2の距離d2との差が小さくなるように視点CMの位置を制御し、方向CCと視線方向EDとのなす角が直角に近づくように仮想カメラの向きを制御する。
【0103】
こうして、本実施の形態では、移動オブジェクト間の距離に応じた仮想カメラ制御処理を行うことにより、第1の移動オブジェクトCH1と第2の移動オブジェクトCH2との位置が離れたとしても、第1の移動オブジェクトCH1を画像において大きく表示させることができ、プレーヤが操作可能なプレーヤキャラクタ12の視認性を高め、迫力ある画像を表示させることができる。
【0104】
しかも、本実施の形態では、第1の移動オブジェクトCH1と第2の移動オブジェクトCH2との位置が近づくにつれて、第1の移動オブジェクトCH1及び第2の移動オブジェクトCH2の双方の視点CMに対する奥行き方向の距離の差を近づけることにより、第1の移動オブジェクトCH1と第2の移動オブジェクトCH2との間の距離をわかりやすく表示させることができる。特に、本実施の形態のようなアクションゲームシステムにおいては、接近戦となった場合には、プレーヤキャラクタ12と敵キャラクタ14との間合いをわかりやすく表示させることができ、プレーヤが攻撃動作や防御動作のための操作を適切に行うことができる。
【0105】
加えて、第1の移動オブジェクトCH1と第2の移動オブジェクトCH2との位置が離れるにつれて、第2の移動オブジェクトCH2の視点CMに対する奥行き方向の距離を遠ざけることにより、第1の移動オブジェクトCH1と第2の移動オブジェクトCH2との位置が離れていることを表現することができる。
【0106】
従って、第1の移動オブジェクトCH1と第2の移動オブジェクトCH2との位置が離れた場合に、第1の移動オブジェクトCH1を画像において大きく表示させても、第1の移動オブジェクトCH1及び第2の移動オブジェクトCH2の双方を仮想カメラの視野範囲内に収め、双方のオブジェクトを表示させることができる。
【0107】
特に、本実施の形態のアクションゲームでは、プレーヤキャラクタ12の位置と敵キャラクタ14の位置とが離れている場合でも、槍や金属バット等の所与のオブジェクトを投げることにより攻撃を行うことができるが、本実施の形態では、このような離れた位置における被投てき体による攻撃動作を、適切にかつ迫力ある画像として表示させることができる。
【0108】
なお、第1の移動オブジェクトCH1の位置と第2の移動オブジェクトCH2の位置との距離が所定の距離以下となった場合には、視点CMを、第1の距離d1と第2の距離d2との差がほぼ0となる位置から変化しないように制御し、視線方向EDを、方向CCと視線方向EDとがほぼ直角に交わる方向から変化しないように制御してもよい。
【0109】
2−3:移動オブジェクト間の距離に応じた仮想カメラ制御処理の具体的手法
以下、図面を用いて、移動オブジェクト間の距離に応じた仮想カメラ制御処理の具体的な処理の一例を説明する。
【0110】
図9は、移動オブジェクト間の距離に応じた仮想カメラ制御処理の概要を示したフローチャートであり、図10(A)、(B)は、図9の処理の詳細を示したフローチャートである。また、図11〜図13は、第1の移動オブジェクトCH1、第2の移動オブジェクトCH2、視点CMが配置されたオブジェクト空間SPをXZ平面で表現した(真上から見た)図であり、第1の移動オブジェクトCH1、第2の移動オブジェクトCH2、視点CMには、それぞれ任意のY座標が与えられている。
【0111】
まず、図9のステップS12において、フレーム更新が行われたか否かを判断し、フレーム更新が行われた場合には(ステップS12のY)、ステップS14において、前フレームの視点CMが、第1の移動オブジェクトCH1と第2の移動オブジェクトCH2とを結ぶ方向CCに対していずれの位置にあるかを判定する。
【0112】
具体的には、図11(A)、(B)に示すように、Z軸方向に平行に任意に設定される基準軸Zに対する前フレームの視線方向EDのY軸周りの回転角度θ1と方向CCのY軸周りの回転角度θ2の差θ3が0未満か否かを判定する。例えば、図11(A)のように、θ3<0の場合には、視点CMは、第1の移動オブジェクトCH1を左側に見る位置にある。一方、θ3<0でない場合には、図11(B)のように、視点CMは、第1の移動オブジェクトCH1を右側に見る位置にある。なお、フレームごとに視点CMを保留記憶部に記憶しておき、これを参照することにより前フレームの視点CMがいずれの位置にあるか判定してもよい。
【0113】
そして、ステップS16において、前フレームの第1の移動オブジェクトCH1の位置座標CH1と第2の移動オブジェクトCH2の位置座標CH2の移動演算を行い、移動後の第1の移動オブジェクトCH1´の位置座標CH1´(x1、z1)と第2の移動オブジェクトCH2´の位置座標CH2´(x2、z2)を求める。すると、ステップS18において、移動後の視点CM´の位置を求める演算処理を行い、ステップS20において、移動後の視線方向ED´を求める演算処理を行う。
【0114】
なお、ステップS18とステップS20で行う演算処理は、本実施の形態では、所定の関数を用いて行われる。ここで、所定の関数は2種類用意されており、ステップS14で判定した前フレームの視点CMの位置に応じた関数を用いて、それぞれの演算処理を行う。
【0115】
そして、ステップS22において、移動後の第1の移動オブジェクトCH1´と第2の移動オブジェクトCH2´とを、移動後の視点CM´、視線方向ED´により撮影した現在フレームの画像を描画する処理を行う。
【0116】
図10(A)には、移動後の視点CM´を求める演算処理の詳細のフローチャートが示されている。本実施の形態では、まず、ステップS24において、移動後のCH1´(x1、z1)とCH2´(x2、z2)の中点CE(x3、z3)を求める。そして、ステップS26において、中点CE(x3、z3)と移動後の視点CM´(cx、cz)とを結ぶ方向DD0の、基準軸Zに対するY軸周りの回転角度θ4を、所定の関数により求める。
【0117】
本実施の形態では、Y軸周りの回転角度90°=0.25、移動後の第1の移動オブジェクトCH1´と第2の移動オブジェクトCH2´との距離=L1、所定の係数=A、L2=L1/Aとして、図9のステップS14においてθ3<0と判定された場合には、下記の式A1を用いて、図12(A)のようにしてθ4を求める。
【0118】
θ4=θ2+0.25−L2・・・・・・・(式A1)
なお、値Aは、L1/A<0.25となる値であり、Aの値が大きくなればなるほど、L1の変化に対する変化率が小さくなり、第1の移動オブジェクトCH1と第2の移動オブジェクトCH2との距離の変化に対して視点CMが相対的にゆっくりと変化することとなる。また、L2には所定の最大値が設定されており、方向CCに対する視線方向EDの角度の最小値が図4(E)の角度となる値が設定されている。
【0119】
そして、ステップS28において、視点CM´と中点CEとの距離をL3とし、θ4とL3とから移動後の視点CM´(cx、cz)を求める。本実施の形態では、L3=L1×B+Cとして、下記の式A2、A3を用いて求める。
【0120】
cx=x3−sin(θ4)×L3・・・・(式A2)
cz=z3−cos(θ4)×L3・・・・(式A3)
なお、値Bと値Cは、移動後の仮想カメラの視野範囲に、第1の移動オブジェクトCH1と第2の移動オブジェクトCH2とが入り、かつ、第1の移動オブジェクトCH1と第2の移動オブジェクトCH2を最適な大きさで表示させる任意の値とすることができる。また、L3には所定の最大値が設定されており、L1が大きくなったときでも、視点CM´が第1の移動オブジェクトCH1から離れすぎないようにする値が設定されている。
【0121】
一方、図9のステップS14において、θ3<0でないと判定された場合には、下記の式B1を用いて、図12(B)のようにしてθ4を求める。
【0122】
θ4=θ2−0.25+L2・・・・・・・(式B1)
また、移動後の視点CM´(cx、cz)を、下記の式B2、B3
cx=x3−sin(θ4)×L3・・・・(式B2)
cz=z3+cos(θ4)×L3・・・・(式B3)
を用いて求める。
【0123】
図10(B)には、移動後の視線方向ED´を求める演算処理の詳細のフローチャートが示されている。ここでは、図12(A)で示した、式A2、A3により求められた移動後の視点CM´についての視線方向ED´を求める例を挙げて説明する。
【0124】
本実施の形態では、まず、ステップS30において、図13(A)のように、視点CM´(cx、cz)とCH1´(x1、z1)とを結ぶ方向DD1の基準軸Zに対するY軸周りの回転角度θ5と、視点CM´(cx、cz)とCH2´(x2´、z2´)とを結ぶ方向DD2の基準軸Zに対するY軸周りの回転角度θ6とから、∠CH1´CM´CH2´を二等分する角度θ7を、θ7=(θ6−θ5)/2のようにして求め、ステップS32において、移動後の視線方向ED´の基準軸Zに対するY軸周りの回転角度θ7´を所定の関数式C1を用いて求める。
【0125】
θ7´=θ7×D+θ5・・・・・・・・・(式C1)
なお、値Dは、移動後の視線方向ED´を∠CH1´CM´CH2´の二等分線に沿う方向DVよりも若干第1の移動オブジェクトCH1寄りにして、第1の移動オブジェクトCH1´を中央寄りに表示させる任意の値とすることができる。
【0126】
すると、ステップS34において、図面13(B)のように、視点CM´と仮の注視点IEとの距離をL3とし、θ7´とL3とから仮の注視点IE(x4、z4)を求める。本実施の形態では、L3=L1×B+Cとして、下記の式C2、C3
x4=cx+sin(θ7´)×L3・・・(式C2)
z4=cz+cos(θ7´)×L3・・・(式C3)
を用いて求める。
【0127】
そして、ステップS36において、方向CCと、視点CM´と仮の注視点IEとを結ぶ方向ED´との交点を求めることにより、移動後の注視点EP´の座標(ix、iz)を求める。
【0128】
本実施の形態では、CH1´とCH2´の座標が同じ場合には、下記の式D1、D2
ix=x1 ・・・(式D1)
iz=(z4−cz)×(ix−cx)/(x4−cx)+cz・・(式D2)
を用いて求める。
【0129】
また、x4=cxの場合には、下記の式E1、E2
ix=x4 ・・・(式E1)
iz=(z2−z1)×(ix−x1)/(x2−x1)+z1・・(式E2)
を用いて求める。
【0130】
また、その他の場合には、下記の式F1、F2
ix={(z2−z1)×x1/(x2−x1)−(x4−cz)×cx/(x4−cx)+cz−z1}/{(z2−z1)/(x2−x1)−(z4−cz)/(x4−cx)} ・・・(式F1)
iz=(z2−z1)×(ix−x1)/(x2−x1)+z1・・(式F2)
を用いて求める。
【0131】
そして、ステップS38において、移動後の注視点EP´(ix、iz)を見るように仮想カメラの回転角度を制御する。
【0132】
こうして、図13(B)に示すように、第2の移動オブジェクトCH2が第1の移動オブジェクトCH1に対して、CH2の位置からCH2´の位置まで離れると、仮想カメラの位置をCMからCM´に移動させ、注視点をEPからEP´に移動させる。そして、視線方向をEDからED´に変化させる。一方、第2の移動オブジェクトCH2が第1の移動オブジェクトCH1に対して、CH2´の位置からCH2の位置まで近づくと、仮想カメラの位置をCM´からCMに移動させ、注視点をEP´からEPに移動させる。そして、視線方向をED´からEDに変化させる。
【0133】
このように、本実施の形態では、予め設定された関数により、1フレームごとに第1の移動オブジェクトCH1と第2の移動オブジェクトCH2との距離に応じた適切な視点位置、視線方向を演算することができる。
【0134】
なお、移動オブジェクト間の距離に応じた仮想カメラ制御処理は、上記手法以外の手法によっても実現することができる。例えば、移動後の注視点EP´を求める際には、仮の注視点IEを設定せずに、図10(B)のステップS32で求めた移動後の視線方向ED´の角度θ7´から視線方向ED´に沿う線の方程式を求め、方向CCに沿う線の方程式から交点座標を求めることにより移動後の注視点EP´を求めてもよい。
【0135】
また、第1の移動オブジェクトCH1及び第2の移動オブジェクトCH2の少なくとも一方に設定された属性データに基づき、上記関数の係数を変更するようにしてもよい。この場合には、移動オブジェクトに設定された属性データに応じて、視点、視線方向の移動速度、移動軌跡等の移動態様を変化させることができる。従って、移動オブジェクトに設定された属性データに応じた種々の画像を生成することができる。
【0136】
ここで、属性データは、記憶部170の属性データ記憶部173に各キャラクタの属性データ、各アイテムの属性データとして記憶され、ゲーム演算処理部116がゲーム状況に応じた属性データを読み出し、移動オブジェクトごとに設定する処理を行う。
【0137】
2−4:複数の移動オブジェクトとの間の距離に応じた仮想カメラ制御処理
また、本実施の形態では、移動オブジェクト間の距離に応じた仮想カメラ制御処理を行うモードが設定されている場合には、操作部160の右レバー314を倒すことにより、移動オブジェクト間の距離に応じた仮想カメラ制御処理を行う対象であるターゲットオブジェクトを複数の敵オブジェクトから選択することができる。そして、他の敵オブジェクトがターゲットオブジェクトとして選択された場合には、選択された他の敵オブジェクトを第2の移動オブジェクトとして変更設定し、第1の移動オブジェクトと変更後の第2の移動オブジェクトとの距離に応じた仮想カメラ制御処理を行う。
【0138】
図14は、複数の移動オブジェクトとの間の距離に応じた仮想カメラ制御処理の処理の流れを示すフローチャートである。また、図15は、プレーヤオブジェクト12、敵オブジェクト14、敵オブジェクト16、視点CMが配置されたオブジェクト空間SPをXZ平面で表現した(真上から見た)図である。
【0139】
まず、ステップS58において、図15のように、敵オブジェクト14が第2の移動オブジェクトCH2として設定されている場合には、視点の位置をCM1、注視点をEP1として移動オブジェクト間の距離に応じた仮想カメラ制御処理を行う。すると、ステップS60において、ターゲットオブジェクトが変更されたか否かを判断する。ここで、ターゲットオブジェクトが変更されたと判断した場合には(ステップS60のY)、ステップS62において、変更後の敵オブジェクト16を第2の移動オブジェクトCH2´として設定する。
【0140】
そして、ステップS64において、第1の移動オブジェクトCH1の位置と変更後の第2の移動オブジェクトCH2´の位置とに基づき、所定の関数により、ターゲットオブジェクト変更後の視点CM2とターゲットオブジェクト変更後の注視点EP2とを求める。すると、ステップS66において、視点の位置を、敵キャラクタ14との距離に応じたCM1から、敵キャラクタ16との距離に応じたCM2に連続的に変更させる。そして、仮想カメラの注視点を、敵キャラクタ14との距離に応じたEP1から、敵キャラクタ16との距離に応じたEP2に連続的に変更させる。そして、ステップS68において、プレーヤオブジェクト12(第1の移動オブジェクトCH1)と敵オブジェクト16(第2の移動オブジェクトCH2´)との間の距離に応じた仮想カメラ制御処理を行う。
【0141】
このように、本実施の形態では、第2の移動オブジェクトとして設定されている敵オブジェクトが、他の敵オブジェクトに変更された場合には、変更後の敵オブジェクトとの位置に応じた視点位置の制御を自動的に行うことができる。なお、ターゲットオブジェクトの選択は、所与のプログラムに基づいて1の移動オブジェクトを自動的に選択してもよい。この場合、プレーヤオブジェクトと複数の敵オブジェクトとの距離を判定し、最も近い敵オブジェクトをターゲットオブジェクトとして選択し、移動オブジェクト間の距離に応じた仮想カメラ制御処理を行うように構成してもよい。
【0142】
なお、ステップS64において、第1の移動オブジェクトCH1の位置と変更後の第2の移動オブジェクトCH2´の位置とに基づき、所定の関数により、ターゲットオブジェクト変更後の視点として、図中のCM3を求めるようにしてもよい。この場合には、ステップS66において、視点の位置を、敵キャラクタ14との距離に応じたCM1から、敵キャラクタ16との距離に応じたCM3に連続的に変更させればよい。
【0143】
3.他の実施の形態
また、本発明を適用することができる他の実施の形態として、第1の移動オブジェクトの位置と第2の移動オブジェクトの位置との距離にかかわらず、第1の視点位置変更条件又は第2の視点位置変更条件のいずれかが満たされたか否かを判定し、仮想カメラ制御部114が、第1の視点位置変更条件が満たされた場合に、第1の移動オブジェクトと仮想カメラとの距離である第1の距離と、第2の移動オブジェクトと仮想カメラとの距離である第2の距離と、の差が小さくなるように視点の位置を変化させ、第2の視点位置変更条件が満たされた場合に、第1の距離と第2の距離との差が大きくなるように視点の位置を変化させるように構成してもよい。
【0144】
この実施の形態では、例えば、サッカーゲームを例に挙げると、ボールを第1の移動オブジェクトCH1として設定し、プレーヤキャラクタを第2の移動オブジェクトCH2として設定することができる。そして、図16(A)のように、プレーヤキャラクタ20がボール22をキープしていると条件判定部118が判定した場合、すなわち、第1の視点位置変更条件が満たされた場合には、第1の距離d1と第2の距離d2との差が小さくなるように、視点CMをCM1の位置に設定する。そして、注視点EP1を第1の移動オブジェクトCH1と第2の移動オブジェクトCH2とを結ぶ線分CCの中点付近に設定する。すると、ボール22をキープしているプレーヤキャラクタ20を横方向から見る画像を描画することができる。
【0145】
一方、図16(B)のように、プレーヤキャラクタ20がボール22をキープしていないと条件判定部118が判定した場合、すなわち、第2の視点位置変更条件が満たされた場合には、第1の距離d1に対する第2の距離d2の比が小さくなるように、視点CMをCM2に設定し、CM1からCM2に連続的に移動させる。そして、注視点を、線分CC上であって、線分CCの中点よりも第2の移動オブジェクトCH2よりのEP2に設定し、EP1からEP2に連続的に移動させる。すると、ボール22をキープしていないプレーヤキャラクタ20のほぼ後ろ側から、プレーヤキャラクタ20を手前側に大きく見て、ボール22を奥行き方向に見る画像を描画することができる。
【0146】
また、この実施の形態においても、第1の移動オブジェクトCH1(ボール)を除くN−1個の移動オブジェクト(プレーヤキャラクタ)から1の移動オブジェクトを選択可能に構成し、仮想カメラ制御部114が、選択された移動オブジェクトを第2の移動オブジェクトCH2として、視点位置を変化させるようにしてもよい。この場合には、11人のプレーヤキャラクタの中から、操作部160により操作を行う1のプレーヤキャラクタをプレーヤが選択し、選択したプレーヤキャラクタがボール22をキープしているか否かにより、視点位置、視線方向の制御を行う。
【0147】
こうして、この実施の形態によれば、プレーヤキャラクタ20がボール22をキープしている場合に、ボール22及びプレーヤキャラクタ20を横方向から見た画像を表示させることができ、例えば、プレーヤキャラクタ20がボール22をキープする様子をわかりやすく表示させることができる。また、プレーヤキャラクタ20がボール22をキープしていない場合でも、プレーヤが選択したプレーヤキャラクタ20を手前側に大きく表示させつつ奥行き方向にボール22を表示させることができ、例えば、奥行き方向から飛んでくるロングパスを受け取る様子を迫力のある画像として表示させることができる。
【0148】
4.ハードウェア構成
図17に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えばオブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0149】
ジオメトリプロセッサ904は、メインプロセッサ900上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ906は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、MPEG方式等で圧縮された動画像を表示できる。
【0150】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。また描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。1フレーム分の画像がフレームバッファ922に書き込まれるとその画像はディスプレイ912に表示される。
【0151】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942やメモリカード944からのデータはシリアルインターフェース940を介して入力される。
【0152】
ROM950にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納される。なおROM950の代わりにハードディスクを利用してもよい。RAM960は各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ間でのDMA転送を制御する。CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。
【0153】
なお本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0154】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【0155】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語(描画領域、ピクセル値、変換テーブル等)として引用された用語(フレームバッファ・ワークバッファ、α値、ルックアップテーブル等)は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【0156】
また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【0157】
【図1】本実施形態の画像生成システムの機能ブロック図の例である。
【図2】本実施形態で生成される画像の一例である。
【図3】本実施形態の操作部の一例である。
【図4】本実施形態の仮想カメラ制御の手法の説明図である。
【図5】本実施形態で生成される画像の一例である。
【図6】本実施形態で生成される画像の一例である。
【図7】本実施形態で生成される画像の一例である。
【図8】本実施形態で生成される画像の一例である。
【図9】本実施形態の仮想カメラ制御処理のフローチャートである。
【図10】図10(A)、(B)は、本実施形態の仮想カメラ制御処理のフローチャートである。
【図11】図11(A)、(B)は、本実施形態の仮想カメラ制御の手法の説明図である。
【図12】図12(A)、(B)は、本実施形態の仮想カメラ制御の手法の説明図である。
【図13】図13(A)、(B)は、本実施形態の仮想カメラ制御の手法の説明図である。
【図14】本実施形態の仮想カメラ制御処理のフローチャートである。
【図15】本実施形態の仮想カメラ制御の手法の説明図である。
【図16】図16(A)、(B)は、他の実施形態の仮想カメラ制御の手法の説明図である。
【図17】本実施形態の画像生成システムのハードウェア構成の例である。
【符号の説明】
【0158】
CM 視点
ED 視線方向
EP 注視点
CH1 第1の移動オブジェクト
CH2 第2の移動オブジェクト
d1 第1の距離
d2 第2の距離
100 処理部
110 オブジェクト空間設定部
112 移動・動作処理部
114 仮想カメラ制御部
120 描画部
160 操作部
170 記憶部
180 情報記憶媒体
190 表示部

【特許請求の範囲】
【請求項1】
画像を生成するためのプログラムであって、
第1の移動オブジェクト及び第2の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第1の移動オブジェクト及び第2の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部として、
コンピュータを機能させ、
前記仮想カメラ制御部が、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが近づくにつれて、第1の移動オブジェクトと仮想カメラとの距離である第1の距離と、第2の移動オブジェクトと仮想カメラとの距離である第2の距離と、の差が小さくなるように仮想カメラの位置を変化させ、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが離れるにつれて、前記第1の距離と前記第2の距離との差が大きくなるように仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項2】
請求項1において、
前記仮想カメラ制御部が、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが近づくにつれて、第1の移動オブジェクトと第2の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向とのなす角が直角に近づくように仮想カメラの向きを変化させ、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが離れるにつれて、第1の移動オブジェクトと第2の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向とのなす角が直角から遠ざかるように仮想カメラの向きを変化させることを特徴とするプログラム。
【請求項3】
画像を生成するためのプログラムであって、
第1の移動オブジェクト及び第2の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第1の移動オブジェクト及び第2の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部として、
コンピュータを機能させ、
前記仮想カメラ制御部が、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが近づくにつれて、第1の移動オブジェクトと仮想カメラとの距離である第1の距離と、第2の移動オブジェクトと仮想カメラとの距離である第2の距離と、の差が小さくなるように仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項4】
請求項3において、
前記仮想カメラ制御部が、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが近づくにつれて、第1の移動オブジェクトと第2の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向とのなす角が直角に近づくように仮想カメラの向きを変化させることを特徴とするプログラム。
【請求項5】
画像を生成するためのプログラムであって、
第1の移動オブジェクト及び第2の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第1の移動オブジェクト及び第2の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部として、
コンピュータを機能させ、
前記仮想カメラ制御部が、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが離れるにつれて、第1の移動オブジェクトと仮想カメラとの距離である第1の距離と第2の移動オブジェクトと仮想カメラとの距離である第2の距離との差が大きくなるように仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項6】
請求項5において、
前記仮想カメラ制御部が、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが離れるにつれて、第1の移動オブジェクトと第2の移動オブジェクトとを結ぶ方向と、仮想カメラの視線方向とのなす角が直角から遠ざかるように仮想カメラの向きを変化させることを特徴とするプログラム。
【請求項7】
請求項1〜6のいずれかにおいて、
前記仮想カメラ制御部が、
仮想カメラの位置を変化させる場合には、仮想カメラの視野範囲内に第1の移動オブジェクトと第2の移動オブジェクトとが入る範囲内で仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項8】
請求項1〜7のいずれかにおいて、
前記仮想カメラ制御部が、
仮想カメラの向きを変化させる場合には、仮想カメラの視野範囲内に第1の移動オブジェクトと第2の移動オブジェクトとが入る範囲内で仮想カメラの向きを変化させることを特徴とするプログラム。
【請求項9】
請求項1〜7のいずれかにおいて、
前記仮想カメラ制御部が、
仮想カメラの向きを変化させる場合には、第1の移動オブジェクトと第2の移動オブジェクトとに対して所定の位置関係を有する点を向くように仮想カメラの向きを変化させることを特徴とするプログラム。
【請求項10】
請求項1〜9のいずれかにおいて、
前記仮想カメラ制御部が、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが所与の距離まで近づいた場合に、前記第1の距離と前記第2の距離との差が0となるように仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項11】
請求項1〜10のいずれかにおいて、
前記仮想カメラ制御部が、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置、第1の移動オブジェクトと第2の移動オブジェクトとの距離、の少なくとも一方を変数とした所定の関数に基づいて、仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項12】
請求項1〜11のいずれかにおいて、
前記仮想カメラ制御部が、
前記移動オブジェクトに設定された属性データに応じて、仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項13】
請求項1〜12のいずれかにおいて、
第1の移動オブジェクトの移動及び動作の少なくとも一方が、操作部からの入力信号に基づき操作可能に形成され、
前記仮想カメラ制御部が、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが離れるにつれて、前記第2の距離に対する前記第1の距離の比が小さくなるように仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項14】
請求項1〜13のいずれかにおいて、
第1〜第N(N≧3)の移動オブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
第1の移動オブジェクトを除くN−1個の移動オブジェクトから1の移動オブジェクトを選択するオブジェクト選択部として、
コンピュータを更に機能させ、
前記仮想カメラ制御部が、
前記オブジェクト選択部により選択された移動オブジェクトを第2の移動オブジェクトとして、仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項15】
請求項14において、
前記仮想カメラ制御部が、
前記オブジェクト選択部により1の移動オブジェクトが選択された場合には、選択された移動オブジェクトを第2の移動オブジェクトとして仮想カメラの位置を変化させ、
前記オブジェクト選択部により移動オブジェクトが選択されていない場合には、操作部からの入力信号に基づき仮想カメラの位置及び向きの少なくとも一方を変化させることを特徴とするプログラム。
【請求項16】
画像を生成するためのプログラムであって、
第1の移動オブジェクト及び第2の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第1の移動オブジェクト及び第2の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部と、
第1の条件又は第2の条件のいずれかが満たされたか否かを判定する判定部として、
コンピュータを機能させ、
前記仮想カメラ制御部が、
第1の条件が満たされた場合に、第1の移動オブジェクトと仮想カメラとの距離である第1の距離と、第2の移動オブジェクトと仮想カメラとの距離である第2の距離と、の差が小さくなるように仮想カメラの位置を変化させ、
第2の条件が満たされた場合に、前記第1の距離と前記第2の距離との差が大きくなるように仮想カメラの位置を変化させることを特徴とするプログラム。
【請求項17】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1〜16のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項18】
画像生成システムであって、
第1の移動オブジェクト及び第2の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第1の移動オブジェクト及び第2の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部と、
を含み、
前記仮想カメラ制御部が、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが近づくにつれて、第1の移動オブジェクトと仮想カメラとの距離である第1の距離と、第2の移動オブジェクトと仮想カメラとの距離である第2の距離と、の差が小さくなるように仮想カメラの位置を変化させ、
第1の移動オブジェクトの位置と第2の移動オブジェクトの位置とが離れるにつれて、前記第1の距離と前記第2の距離との差が大きくなるように仮想カメラの位置を変化させることを特徴とする画像生成システム。
【請求項19】
画像生成システムであって、
第1の移動オブジェクト及び第2の移動オブジェクトの移動及び動作の少なくとも一方を演算する移動・動作処理部と、
第1の移動オブジェクト及び第2の移動オブジェクトの位置情報に基づいて、仮想カメラの位置、向き、画角の少なくとも1つの制御を行う仮想カメラ制御部と、
オブジェクト空間を仮想カメラから見た画像を生成する画像生成部と、
第1の条件又は第2の条件のいずれかが満たされたか否かを判定する判定部と、
を含み、
前記仮想カメラ制御部が、
第1の条件が満たされた場合に、第1の移動オブジェクトと仮想カメラとの距離である第1の距離と、第2の移動オブジェクトと仮想カメラとの距離である第2の距離と、の差が小さくなるように仮想カメラの位置を変化させ、
第2の条件が満たされた場合に、前記第1の距離と前記第2の距離との差が大きくなるように仮想カメラの位置を変化させることを特徴とする画像生成システム。

【図1】
image rotate

【図2】
image rotate

【図3】
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


【公開番号】特開2006−268818(P2006−268818A)
【公開日】平成18年10月5日(2006.10.5)
【国際特許分類】
【出願番号】特願2005−271841(P2005−271841)
【出願日】平成17年9月20日(2005.9.20)
【分割の表示】特願2005−86407(P2005−86407)の分割
【原出願日】平成17年3月24日(2005.3.24)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】