(57)【特許請求の範囲】
【請求項１】
三次元仮想空間内に配置されたステージ及び該ステージ上に配置された複数のオブジェクトの状態を、該三次元仮想空間内に配置された仮想視点により視点座標系に変換して疑似三次元画像としてモニタに表示するものであり、且つ、基準点設定手段、代表点設定手段、仮想カメラ位置決定手段、及び視線方向決定手段を備える画像処理装置を制御する方法であって、
前記基準点設定手段が、前記ステージを挟んで前記仮想カメラの反対側に基準点を設定する第１のステップと、
前記代表点設定手段が、前記複数のオブジェクトの位置に基づいて該複数のオブジェクトを代表する代表点を定める第２のステップと、
前記仮想カメラ位置決定手段が、前記基準点及び前記代表点を含む直線上に、前記代表点から最も離れたオブジェクトまでの距離及び前記仮想カメラの視野角に基づいて、前記仮想カメラの位置を決定する第３のステップと、
前記視線方向決定手段が、前記基準点を向く方向に前記仮想カメラの視線方向を決定する第４のステップと、
を備える画像処理装置の制御方法。
【請求項２】
前記ステージが平面である、請求項１記載の画像処理装置の制御方法。
【請求項３】
前記第２のステップにおいては、前記代表点設定手段が、前記代表点として、前記複数のオブジェクトのうちの最も離間するいずれか２つのオブジェクトの位置により定められる線分の内分点を定める、
請求項１又は２記載の画像処理装置の制御方法。
【請求項４】
前記第２のステップにおいては、前記代表点設定手段が、前記代表点として、前記複数のオブジェクトの位置を頂点とする多角形の重心点を定める、
請求項１又は２記載の画像処理装置の制御方法。
【請求項５】
前記第２のステップにおいては、前記代表点設定手段が、前記２つのオブジェクトに重み付けをし、前記内分点として、前記線分を該重み付けの比で分割する点を定める、
請求項３記載の画像処理装置の制御方法。
【請求項６】
前記第２のステップにおいては、前記代表点設定手段が、前記三次元仮想空間内に設けられた前記ステージの２軸方向における前記内分点を定める、
請求項３記載の画像処理装置の制御方法。
【請求項７】
前記画像処理装置が、基準点移動手段を備えており、
前記代表点が前記ステージの周辺領域に設定されたときに、前記基準点移動手段が、前記基準点を移動して前記仮想カメラの傾き過ぎを防止するステップを備える、
請求項１記載の画像処理装置の制御方法。
【請求項８】
前記画像処理装置が、代表点移動手段を備えており、
前記仮想カメラの視線ベクトルが所定の角度を超えて傾斜するときに、前記代表点移動手段が、前記代表点の位置を移動して前記仮想カメラの傾き過ぎを防止するステップを備える、
請求項１記載の画像処理装置の制御方法。
【請求項９】
コンピュータを、三次元仮想空間内に配置されたステージ及び該ステージ上に配置された複数のオブジェクトの状態を、該三次元仮想空間内に配置された仮想視点により視点座標系に変換して疑似三次元画像としてモニタに表示する画像処理装置として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記コンピュータを、
前記ステージを挟んで前記仮想カメラの反対側に基準点を設定する前記基準点設定手段と、
前記複数のオブジェクトの位置に基づいて該複数のオブジェクトを代表する代表点を定める代表点設定手段と、
前記基準点及び前記代表点を含む直線上に、前記代表点から最も離れたオブジェクトまでの距離及び前記仮想カメラの視野角に基づいて、前記仮想カメラの位置を決定する仮想カメラ位置決定手段と、
前記基準点を向く方向に前記仮想カメラの視線方向を決定する視線方向決定手段と、
して機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１０】
三次元仮想空間上に配置されたステージ及び該ステージ上に配置された複数のオブジェクトの状態を、該三次元仮想空間内に配置された仮想視点により視点座標系に変換して疑似三次元画像としてモニタに表示する表示装置であって、
前記複数のオブジェクトの位置に基づいて該複数のオブジェクトを代表する代表点を定める代表点設定手段と、
前記ステージを挟んで前記仮想視点の反対側に設定される基準点と前記代表点とを含む直線上に、前記複数のオブジェクトのうちのいずれか２つのオブジェクト間の距離であって最長であるもの、又は前記代表点といずれかのオブジェクトまでの距離であって最長であるもの、及び前記仮想カメラの視野角に基づいて、前記仮想視点の位置を決定する視点方向及び位置決定手段と、
を備える表示装置。
【請求項１１】
前記ステージが平面である、請求項１０記載の表示装置。
【請求項１２】
前記代表点設定手段が、前記代表点として、前記複数のオブジェクトのうちの最も離間するいずれか２つのオブジェクトの位置により定められる線分の内分点を定める、
請求項１０又は１１記載の表示装置。
【請求項１３】
前記代表点設定手段が、前記代表点として、前記複数のオブジェクトの位置を頂点とする多角形の重心点を定める、
請求項１０又は１１記載の表示装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステムによって実現される三次元コンピュータグラフィックス処理に関するもので、特に、コンピュータシステムによって形成された仮想空間内に配置される仮想カメラ（視点）の位置制御に関する。
【０００２】
【従来の技術】
ゲームを表示する画面が鉛直上向きになるように表示装置を配置し、複数のプレイヤがその画面を取り囲んで位置し、各プレイヤがゲーム画面に表示された各プレイヤのオブジェクトをそれぞれ制御して対戦ゲームを行うようにしたゲーム装置がある。このようなゲーム装置に仮想三次元空間の考えを導入する場合、各プレイヤに同程度に見やすい画面を提供する必要があるため、例えば、ゲームステージを真上から見る位置に仮想カメラを配することが想定できる。
【０００３】
【発明が解決しようとする課題】
しかしながら、ゲームステージの真上に仮想カメラの位置を設定して各オブジェクトが映るように撮影した場合、モニタ画面の画像は平面的な画像となる。このため、仮想空間に立体のオブジェクトを配置して得た疑似三次元画像によるゲームの面白さが半減してしまう。この場合、複数のオブジェクトのゲームステージにおける配置に対応して設定すべきカメラ位置を予めデータベース化して記憶することが考えられるが、多数のオブジェクトや広範囲のゲームステージでは、保持すべき情報量が膨大となる。また、オブジェクトがゲームステージ上で多彩に変化・移動等する場合には最適なカメラ位置を予め決定し難い。
【０００４】
よって、本発明は、複数のオブジェクトが存在する場合に、立体感を損うことなく各オブジェクトが映るような仮想カメラの撮影位置の決定方法を提案することを目的とする。
【０００５】
また、本発明は、演算処理部の演算処理負担の少ない仮想カメラの撮影位置の決定方法を提案することを目的とする。
【０００６】
また、本発明は、立体感を損うことなく各オブジェクトが映るようにした画像処理装置を提供することを目的とする。
【０００７】
また、本発明は、立体感を損うことなく各オブジェクトが映るようにしたゲーム装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成するため本発明の仮想カメラの撮影位置決定方法は、仮想空間内に形成されたステージ上に配置された複数のオブジェクトを上方から撮影する仮想カメラの撮影位置の決定方法において、上記ゲームステージの下方に基準点を設定する第１の過程と、上記複数のオブジェクトの配置位置に基づいて複数のオブジェクトの内側に代表点を定める第２の過程と上記基準点と上記代表点とを含む直線上に上記仮想カメラの視線ベクトルの方向を決定する第３の過程と、上記代表点から最も離れたオブジェクトまでの距離に基づいて上記直線上に上記仮想カメラの位置を決定する第４の過程と、を含む。
【０００９】
かかる構成とすることによって、仮想カメラは常に基準点方向を向きながら、仮想カメラの高さ及び傾斜が複数のオブジェクトの配置の広がり対応して決定されるので、比較的に簡単なアルゴリズムと演算で複数のオブジェクトを画面内に収めつつ、立体感のある画像を得ることが可能となる。
【００１０】
好ましくは、上記代表点は、所定方向において最も離間するいずれか２つのオブジェクトの位置により定められる線分の内分点に基づいて定められる。これにより、オブジェクト間の広がりが計算される。
【００１１】
好ましくは、上記代表点は、上記複数のオブジェクトの位置を頂点とする多角形の重心点である。
【００１２】
好ましくは、上記２つのオブジェクトは重み付けされ、上記内分点は上記線分を重み付けの比で分割する点に定められる。これにより、オブジェクトの重要さ等に対応して代表点が当該オブジェクトに引寄せられ、重要なオブジェクトが画面中央寄りに表示されて、見やすく表示され得る。
【００１３】
好ましくは、上記所定方向は、仮想空間に配されたゲームステージの縦及び横方向であり、上記内分点は縦及び横方向においてそれぞれ求められる。
【００１４】
好ましくは、上記基準点は、上記代表点が上記ゲームステージの予め定められた領域に入り込み又は予め定められた条件に合致するときに変更される。これにより、仮想カメラの傾き過ぎが抑制され、一部のプレイヤに見難い画面になることを防止することが可能となる。
【００１５】
好ましくは、上記視線ベクトルが予め定められた角度を越えて傾斜するとき、上記基準点の位置を変更する。これにより、仮想カメラの傾き過ぎが抑制され、一部のプレイヤに見難い画面になることを防止することが可能となる。
【００１６】
好ましくは、上記ステージはプログラムされたゲームを展開する領域であり、上記複数のオブジェクトは乗物であり、上記ゲームは遊戯者またはコンピュータによって制御される上記複数の乗物同士が対戦して相手乗物を画定された領域からこの領域外に押し出すものである。
【００１７】
本発明の画像処理装置は上述した仮想カメラの撮影位置決定方法を実行する装置である。
【００１８】
本発明のゲーム装置は、上述した仮想カメラの撮影位置決定方法を実行する。
【００１９】
本発明の情報記録媒体は、好ましくは、上述した仮想カメラの撮影位置決定方法を実行するプログラムを記録している。
【００２０】
本発明は、仮想空間のゲームステージ上に配置された複数のオブジェクトが展開するゲームの様子をこの仮想空間内に配置された視点により視点座標系に変換して疑似三次元画像としてモニタに表示するゲーム装置において、上記複数のオブジェクトの配置パターンに対応した代表点を上記ゲームステージ上に定める代表点決定手段と、上記ゲームステージの下方に予め設定される基準点と上記代表点とを含む直線上に、上記複数のオブジェクトの内のいずれか２つのオブジェクト間の距離であって最長であるものまたは上記代表点といずれかのオブジェクトまでの距離であって最長であるものに基づいて上記直線上に視点の高さ位置を決定する視点位置決定手段と、を備える。
【００２１】
かかる構成とすることによって、視点は常に基準点方向を向きながら、視点の高さ及び傾斜が複数のオブジェクトの配置の広がり対応して決定されるので、比較的に簡単なアルゴリズムと演算で複数のオブジェクトを画面内に収めつつ、立体感のある画像を得ることが可能となる。
【００２２】
【発明の実施の形態】
以下、図面を参照しつつ本発明の実施の形態について説明する。図２は、本発明が適用されるゲーム装置例の外観を示す斜視図である。この例は車両同士が対戦する車両ゲーム装置を示しており、ゲーム装置の筐体１００の上部中央に仮想ゲーム空間を映し出す１台のモニタ３が配置されている。モニタ２は、画面を上向きに配置した大型のモニタである。この例では、モニタ３の周囲に４台の運転操作装置４が配置され、４人のプレーヤが夫々位置する方向からモニタ３のゲーム空間を観察することが出来る。運転操作装置４は、ハンドル４ａ、コントローラ４ｂ（図示せず）、アクセル４ｃ、各種操作ボタン等によって構成され、仮想ゲーム空間内に配置された車両オブジェクトを制御する。モニタ３や運転操作装置４はコンピュータの周辺装置２であり、筐体１００内に設置されたコンピュータシステム１に接続される。
【００２３】
図３は、上記ゲーム装置のコンピュータシステムによって構成される制御系を説明するブロック図である。
【００２４】
同図において、ゲーム装置は、ＣＰＵ基板（本体）１及び周辺装置２によって構成される。ＣＰＵ基板１は、ゲームプログラム等を実行するＣＰＵ１１、ゲーム装置としての制御プログラム、データ、ＯＳ等を記憶するＲＯＭ１２、ゲームアプリケーションやデータを記憶するCD-ROM装置１３、ＣＰＵ１１と各部間のデータ転送を制御するバスコントローラ１４、ＣＰＵ１１のプログラムやデータを保持し、データ処理に使用されるＲＡＭ１７、描画データから三次元の仮想空間内にオブジェクトを配置し、それ等の様子を仮想空間内に配置された仮想カメラ（視点）から見た画像に変換し、画像信号を形成する描画プロセッサ１５、音声データから音声信号を形成する音声プロセッサ１６、ＣＰＵ１１及び外部の周辺装置相互間のデータ転送を中継するペリフェラルインタフェース１８、等によって構成される。
【００２５】
ＲＡＭ１７の一部の領域は、ペリフェラルデータ処理のためのワークＲＡＭとして使用され、いわゆるＤＭＡ動作が可能になされている。画像信号及び音声信号は、テレビジョンモニタ３に供給され、映像と音声が出力される。
【００２６】
周辺装置２は、前述したように、仮想ゲーム空間を映し出す１台の大型モニタ２と、仮想ゲーム空間内に配置された車両の運転操作を指令する４台の運転操作装置４とを含む。モニタ２は、画面を上向きに配置した大型のモニタであり、例えば、４人のプレーヤが四方からゲーム空間を見ることが出来る。運転操作装置４は、ハンドル４ａ、コントローラ４ｂ、アクセル４ｃ等によって構成される。コントローラ４ｂは、プレーヤのハンドル操作、アクセル操作をデータ信号に変換し、ペリフェラルコントローラ１８を介してＣＰＵ１１に伝える。
【００２７】
図４は、ゲーム装置の全体的な動作を概略的に示すフローチャートである。このフローは、モニタ３の１フレームの周期で繰返される。
【００２８】
各プレーヤが運転操作装置４を操作すると、各プレーヤの操作情報（車両方向、前進、後退、停止等のフラグ）がＲＡＭ１７の所定エリアに設定される。ＣＰＵ１１は、ゲーム進行のために各種の条件や状態を示す各種のフラグ、ゲームパラメータ、画面表示を行うための表示パラメータ等を参照する（Ｓ２）。
【００２９】
ＣＰＵ１１は、プログラムされたゲームルールに従い、各プレーヤの運転操作に従って仮想空間内に配置された各車両（オブジェクト）の位置を表す代表点を動かす。
【００３０】
ＣＰＵ１１は、代表点を動かした結果、代表点同士が接近して所定距離内に入る衝突等のイベントが発生したかどうかを判定する（Ｓ６）。イベントが発生した場合には、割込み処理によって、該当するイベント処理を行う（図示せず）。
【００３１】
地形や背景の各オブジェクトの代表点と共に、各車両の代表点の新たな配置に対応して各車両のオブジェクトの各々を配置する（Ｓ８）。ＣＰＵ１１は、これ等のオブジェクトデータを描画プロセッサ１５に転送する。描画プロセッサ１５は、各オブジェクトに対応するポリゴン形成、テクスチャマッピング等を行い、オブジェクト群によるゲーム空間を形成する。仮想空間内に配置された仮想カメラ（視点）から見えるゲーム空間の様子を映す画面を形成する。すなわち、仮想空間の三次元のワールド座標系をいわゆる透視変換処理等して、視点座標系の二次元画面を形成する。このようにして得られる疑似三次元画面のデータは、ビデオ信号に変換されてモニタ３に供給される。
【００３２】
次に、本発明の仮想カメラの位置制御について図１及び図５を参照して説明する。図１は、仮想空間内で展開されるゲームの様子と本発明を概略的に示す説明図である。ｘ軸は、仮想空間における左右（横）方向、ｙ軸は上下（高さ）方向、ｚ軸は奥手前（縦）方向を示す。同図において、仮想空間内にゲームが展開される場であるゲームステージＦが形成され、このステージＦ上で、例えば、突き落しサバイバルゲームが行われる。このゲームは、相手の車両Ｏ2〜Ｏ3に自車Ｏ1を押し当て、画定されたゲーム領域であるステージＦの領域外に落下させるもので、最終的に残った者が勝利者となる。
【００３３】
このような複数人で行うゲームは、各プレーヤに同じように見易い画面を提供する必要がある。このため、仮想カメラ（視点）位置Ｓは、ステージＦ中央の真上に位置することになるが、そのような真上から見た画面は平面的で立体感がなく、３Ｄゲームの面白さを表現できない。
【００３４】
そこで、仮想カメラの位置を少し傾斜してオブジェクト（車両）の側面が映るようにすることが考えられる。この場合、仮想カメラの位置をどのように設定するのが良いか工夫が必要である。この実施例では、ステージＦの下方の適当な位置に設定された基準点Ｐとオブジェクトの配置位置に基づいて定められる代表点Ｃとを結ぶ直線ＰＣの延長上に仮想カメラＳの位置を定める。仮想カメラＳの視線ベクトルは当該直線上にステージＦを向くように設定される。代表点Ｃの定め方として、各プレーヤから各オブジェクトが見易くモニタ画面に映るような定め方が採用される。例えば、後述のオブジェクト群の中心点や重心点である。従って、ステージＦ上の各オブジェクトの配置の変化に対応して代表点Ｃが移動すると、それに連動して仮想カメラＳ（視線ベクトル）が移動する。仮想カメラＳは、固定された基準点Ｐを中心とする半径ＰＳの円弧を描くように移動する。そして、点Ｐ及び点Ｃを含む直線上に定められる仮想カメラＳの高さ位置は、オブジェクト群の広がりに対応してオブジェクト群がカメラの視野範囲内に収るように定められる。
【００３５】
複数のオブジェクトが広がっている場合には、図７に示すように、仮想カメラＳは高い位置に設定されて各オブジェクトがモニタ画面内に収るようになされる。複数のオブジェクトが狭まっている場合には、図９に示すように、仮想カメラＳは低い位置に設定され、それにより各オブジェクトをモニタ画面内に収めつつ、各オブジェクトを大きく見えるようになされる。
【００３６】
図５は、上記のように仮想カメラ位置を決定するＣＰＵ１１のサブルーチンを示している。この処理は、各フレーム毎に行うことができる。
【００３７】
まず、ステージＦ上にある各オブジェクト（車両）の位置を、ゲームパラメータを記憶しているワークＲＡＭ上の所定エリアから読取る（Ｓ２２）。各オブジェクトの配置に対応した代表点Ｃを決定する（Ｓ２４）。
【００３８】
図６は、代表点Ｃとしての中心点の求め方の例を説明する図であり、図６（ａ）は、複数のオブジェクトが広がっている場合を示している。複数のオブジェクトＯ1（ｘ1，ｚ2）、Ｏ2（ｘ4，ｚ1）、Ｏ3（ｘ3，ｚ3）、Ｏ4（ｘ2，ｚ4）から、ｘ方向のオブジェクトの広がりΔｘを、最大値ｘ4−最小値ｘ1により求め、その中間値Δｘ／２を代表点Ｃのｘ値とする。
【００３９】
次に、（ｘ1，ｚ2）、Ｏ2（ｘ4，ｚ1）、Ｏ3（ｘ3，ｚ3）、Ｏ4（ｘ2，ｚ4）から、ｚ方向のオブジェクトの広がりΔｚを、最大値ｚ4−最小値ｚ1により求め、その中間値Δｚ／２を代表点Ｃ1のｚ値とする。従って、代表点Ｃ1は、Ｃ1（Δｘ／２，Δｚ／２）＝Ｃ1（ｘc1，ｚc1）として求められる。ただし、ｘc1＝Δｘ／２、ｚc1＝Δｚ／２である。
【００４０】
なお、中間値Δｘ／２、Δｚ／２は、ｘ軸方向及びｚ軸方向においてそれそれ線分ｘ1ｘ4、線分ｚ1ｚ4をそれぞれ１：１に内分する内分点に相当するが、オブジェクトの重要度に応じてオブジェクトに重み付を行い、内分点を重要度の高いオブジェクトに近づけるようにすることが可能である。これは、オブジェクトの座標値に重要度に応じた係数を乗ずることによって、中心点たる内分点を当該オブジェクトに近づけるようにすることが出来る。
【００４１】
図６（ｂ）は、複数のオブジェクトが接近している場合を、それぞれ示している。同様に、ｘ方向のオブジェクトの広がりΔｘを、最大値ｘ3−最小値ｘ1  により求め、その中間値Δｘ／２を代表点Ｃのｘ値とする。ｚ方向のオブジェクトの広がりΔｚを、最大値ｚ3−最小値ｚ1  により求め、その中間値Δｚ／２を代表点Ｃ2のｚ値とする。代表点Ｃ2は、Ｃ2（Δｘ／２，Δｚ／２）＝Ｃ2（ｘc2，ｚc2）として求められる。
【００４２】
代表点として重心点Ｍを使用する場合、重心点Ｍのｘ方向における座標値ｍxは、ｎ個のオブジェクトのｘ値の平均値ｍx＝（ｘ1＋ｘ2＋…＋ｘn）／ｎとして求める。重心点Ｍのｚ方向における座標値ｍzは、ｎ個のオブジェクトのｚ値の平均値ｍz＝（ｚ1＋ｚ2＋…＋ｚn）／ｎとして求める。それにより、重心点Ｍの座標をＭ（ｍx，ｍz）として得る。
【００４３】
なお、重心点Ｍの計算においても、中央点Ｃの計算における重み付けの場合と同様に、座標値に係数を乗じる等してオブジェクトに重み付けを行うことが可能である。それにより、重要度の高いオブジェクトの方に内分点たる重心点Ｍ（ｍx，ｍz）を移動させ、重心点Ｍを重要度の高いオブジェクトの方向に移動してこのオブジェクトが仮想カメラに良く映るようにすることが可能である。
【００４４】
代表点として、上述した中心点、重心点のいずれも使用可能であるが、車両突き落しゲームの場合には、画面の中心に位置する車両によってカメラ位置が動かされない方が好ましい。特に、仮想カメラが車両に近づいている場合にカメラ位置の変動が頻繁であるとプレーヤにとって見難い画面となる。このため、代表点として重心点よりも中心点を選択するのが具合がよい。一方、シューティングゲームのようなプレーヤの反射的反応を要求するものである場合には、ダイナミックにカメラ視点が移動する傾向のある重心点を代表点とすることができる。
【００４５】
求めた代表点Ｃ（ｘc，ｚc）から、Ｘ軸及びＺ軸のそれぞれの軸に沿って最も離れている点を求める（Ｓ２６）。例えば、図６（ａ）において、代表点Ｃ（ｘc1，ｚc1）から各オブジェクトＯ1〜Ｏ4までのＸ軸方向における各距離｜ｘ1−ｘc1｜、｜ｘ2−ｘc1｜、｜ｘ3−ｘc1｜、｜ｘ4−ｘc1｜を計算する。Ｘ軸方向における最長の距離を選択する。例えば、距離｜ｘ1−ｘc｜が選択される。各オブジェクトＯ1〜Ｏ4までのＺ軸方向における各距離｜ｚ1−ｚc1｜、｜ｚ2−ｚc1｜、｜ｚ3−ｚc1｜、｜ｚ4−ｚc1｜を計算する。Ｚ軸方向における最長の距離を選択する。例えば、距離｜ｚ1−ｚc1｜が選択される。Ｚ軸方向における最長の距離には、モニタ画面の縦横比３：４を考慮して３／４を乗じた値とする（Ｓ２８）。
【００４６】
次に、Ｘ軸方向における最長の距離とＺ軸方向における最長の距離とを比較し、いずれか距離の大きい方を選択する。例えば、Ｘ軸方向における最長の距離Δｘが選択された場合、仮想カメラの高さ位置ｙsは、仮想カメラの視野角をθとすると、tan(θ/2)＝(Δｘ/2)／ｙs なる関係があるので、仮想カメラの高さ位置ｙsは、
ｙs＝(Δｘ/2)／tan(θ/2)  によって求められる（Ｓ３０）。
【００４７】
ワークＲＡＭから基準点Ｐ（ｘp，ｙp，ｚp）の位置を読取り、先に求めた代表点Ｃ（ｘc1，ｙc，ｚc1）とから直線の関数Ｌを求める（Ｓ３２）。この関数Ｌは、カメラの視線ベクトルの向きを定めるものとなる。ここで、代表点Ｃのｙ座標値ｙcは、ステージＦの仮想空間における高さ位置で既知の値である。基準点と代表点とを含む直線Ｌ上に、代表点Ｃからの距離がｙsである点に仮想カメラの高さ位置を決定する（Ｓ３４）。仮想カメラの位置と向きが定る。この仮想カメラのパラメータを、仮想空間のいわゆるワールド座標系を視点座標系に変換する演算を行う変換行列演算部のパラメータとして設定する（Ｓ３６）。
【００４８】
この結果、複数のオブジェクト（車両）の配置（あるいは広がり）に対応して仮想カメラ位置が制御される。図７は、離間した４台の車両の略中央に代表点がある場合の画面表示例を示す。図８は、離間した２台の車両の略中央に代表点がある場合の画面表示例を示す。図９は、接近した２台の車両の略中央に代表点がある場合の画面表示例を示す。
【００４９】
上述した例では、基準点Ｐを固定しているが、場合によっては、基準点Ｐを移動するのがよい。図１０は、このような例を説明する図である。同図において、梨地で示されるゲームステージＦの周辺領域にオブジェクトが集中した場合、代表点ＣがＣ1からＣ2の周辺領域に設定される。その結果、仮想カメラの視線ベクトルＳがＳ1のように傾きすぎ（水平方向に近づく）、一方のプレーヤにとって見難い画面となり易い。そこで、代表点Ｃが予め定められた周辺領域に位置した場合に、基準点ＰをＰ1からＰ2に代表点方向に移動して、仮想カメラの視線ベクトルＳ1をＳ2のように起すようにして、仮想カメラの傾き過ぎを修正する。
【００５０】
図１１は、仮想カメラの傾き過ぎを防止するために視線ベクトルＳ1が基準角度α0、例えば、５０度以下に傾く場合には、強制的に代表点Ｃ1を基準点Ｐ方向のＣ2に移動して基準角度α0になるように設定するようにし、仮想カメラの視線ベクトルＳ1をＳ2のように起すようにした例を示している。
【００５１】
なお、ゲームステージＦは、実施例では、平坦な面で説明しているが、起伏のある地形や種々の障害物があるような場であっても良い。複数のオブジェクトの代表点は、ステージＦのＸ−Ｚ平面上に設定されたが、オブジェクトが航空機や潜水艦のような三次元的動きをするもので、ゲームステージＦが空間的（３次元的）広がりを持つものである場合、代表点ＣをＣ（ｘ，ｙ，ｚ）で表すこととしても良い。
【００５２】
また、実施例では、代表点をｘ軸方向あるいはｚ軸方向の線分（差分）の内分点に定める例を示したが、特殊な効果を強調するような画面を得る場合には、線分の外分点となるような位置に採ることも可能である。
【００５３】
また、実施例では、ゲームステージＦはｘｚ平面に形成され、仮想カメラはｙ軸方向に設けられたが、これに限定されるものではない。ゲームステージＦはｘｙ平面や、ｙｚ平面であっても良い。この場合には、仮想カメラの位置はそれぞれｚ軸方向、ｘ軸方向に配置される。
【００５４】
【発明の効果】
以上説明したように、本発明によれば、複数のオブジェクトから離れた位置に基準点を設け、基準点と複数のオブジェクトの広がりの略中央となる代表点とを結ぶ直線の延長上に仮想カメラを配置する。この基準点を中心とし、仮想カメラの視線ベクトルを該中心に向けて円弧状（振子状）に移動する。このため、各プレイヤが複数のオブジェクトを同時に見やすい疑似立体画面を得る仮想カメラの位置及び方向の決定が容易になされる。
【図面の簡単な説明】
【図１】図１は、本発明にかかる仮想カメラの位置決定を説明する説明図である。
【図２】図２は、本発明を適用したゲーム装置の例を説明する斜視図である。
【図３】図３は、本発明を実行するゲーム装置の構成例を説明するブロック図である。
【図４】図４は、ゲーム装置の全体的な動作を説明するフローチャートである。
【図５】図５は、本発明のアルゴリズムを説明するフローチャートである。
【図６】図６は、複数のオブジェクトの代表点を説明する説明図である。
【図７】図７は、本発明の実施により決定された仮想カメラ位置で撮影された画面例（４台の車両が離間して配置されている場合）を説明する説明図である。
【図８】図８は、本発明の実施により決定された仮想カメラ位置で撮影された画面例（２台の車両が離間して配置されている場合）を説明する説明図である。
【図９】図９は、本発明の実施により決定された仮想カメラ位置で撮影された画面例（２台の車両が近接して配置されている場合）を説明する説明図である。
【図１０】図１０は、基準点を移動する例を示す説明図である
【図１１】図１１は、代表点を移動する例を説明する説明図である。
【符号の説明】
１  ゲーム装置のＣＰＵ基板
２  周辺装置（筐体）
３  モニタ
４  模擬運転操作装置
【図１】
0004022847.tif 000002
【図２】
0004022847.tif 000003
【図３】
0004022847.tif 000004
【図４】
0004022847.tif 000005
【図５】
0004022847.tif 000006
【図６】
0004022847.tif 000007
【図７】
0004022847.tif 000008
【図８】
0004022847.tif 000009
【図９】
0004022847.tif 000010
【図１０】
0004022847.tif 000011
【図１１】
0004022847.tif 000012