(57)【特許請求の範囲】
【請求項１】
画像生成を行うゲームシステムであって、
ゲーム空間内の複数のオブジェクトを含む判定用バウンダリボックスを求め、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断する手段と、
前回の仮想カメラの設定では判定用バウンダリボックスが画面内に入らない場合には、判定用バウンダリボックスが画面内に入るように仮想カメラ位置、向き、画角の少なくともひとつの設定を変更する手段と、
を含むことを特徴とするゲームシステム。
【請求項２】
請求項１において、
ゲーム空間内の複数のオブジェクトを含む判定用バウンダリボックスとして、ゲーム空間内の複数のオブジェクトの頂点又は代表点を内包するバウンダリボックスを求めることを特徴とするゲームシステム。
【請求項３】
請求項１又は２において、
前回の仮想カメラと前記複数のオブジェクトを視点座標系に変換し、視点座標系における前回の仮想カメラと前記複数のオブジェクトを結ぶ線に基づき複数のオブジェクトを含む四角錘状の判定用バウンダリボックスを求め、視点座標系において前記判定用バウンダリボックスが前回の仮想カメラの画角内に入るか否かに基づき、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断することを特徴とするゲームシステム。
【請求項４】
請求項１又は２において、
前記複数のオブジェクトをスクリーン座標系に変換し、スクリーン座標系において複数オブジェクトを含む次元の判定用バウンダリボックスを求め、前回の仮想カメラの設定で当該２次元の判定用バウンダリボックスが画面内に入るか否かを判断することを特徴とするゲームシステム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記複数のオブジェクトを含む判定用バウンダリボックスは、前記複数の各オブジェクトについて設定されたバウンダリボックスを内包することを特徴とするゲームシステム。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記複数のオブジェクトを含む判定用バウンダリボックスは、前記複数のオブジェクトを含むバウンダリボックスに所与のオフセットを付加して設定することを特徴とするゲームシステム。
【請求項７】
請求項１乃至６のいずれかにおいて、
仮想カメラ位置、向き、画角の少なくともひとつの設定又は変更を行う際には、画面領域の中央付近に判定用バウンダリボックスが配置されるように仮想カメラの位置、向き、画角のすくなくともひとつを設定又は変更を行うことを特徴とするゲームシステム。
【請求項８】
コンピュータにより読み取り可能な情報記憶媒体であって、
ゲーム空間内の複数のオブジェクトを含む判定用バウンダリボックスを求め、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断する手段と、
前回の仮想カメラの設定では判定用バウンダリボックスが画面内に入らない場合には、判定用バウンダリボックスが画面内に入るように仮想カメラ位置、向き、画角の少なくともひとつの設定を変更する手段と、
してコンピュータを機能させるプログラムが記憶されていることを特徴とする情報記憶媒体。
【請求項９】
請求項８において、
ゲーム空間内の複数のオブジェクトを含む判定用バウンダリボックスとして、ゲーム空間内の複数のオブジェクトの頂点又は代表点を内包するバウンダリボックスを求めることを特徴とする情報記憶媒体。
【請求項１０】
請求項８又は９において、
前回の仮想カメラと前記複数のオブジェクトを視点座標系に変換し、視点座標系における前回の仮想カメラと前記複数のオブジェクトを結ぶ線に基づき複数のオブジェクトを含む四角錘状の判定用バウンダリボックスを求め、視点座標系において前記判定用バウンダリボックスが前回の仮想カメラの画角内に入るか否かに基づき、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断することを特徴とする情報記憶媒体。
【請求項１１】
請求項８又は９において、
前記複数のオブジェクトをスクリーン座標系に変換し、スクリーン座標系において複数オブジェクトを含む２次元の判定用バウンダリボックスを求め、前回の仮想カメラの設定で当該２次元の判定用バウンダリボックスが画面内に入るか否かを判断することを特徴とする情報記憶媒体。
【請求項１２】
請求項８乃至１１のいずれかにおいて、
前記複数のオブジェクトを含む判定用バウンダリボックスは、前記複数の各オブジェクトについて設定されたバウンダリボックスを内包することを特徴とすることを特徴とする情報記憶媒体。
【請求項１３】
請求項８乃至１２のいずれかにおいて、
前記複数のオブジェクトを含む判定用バウンダリボックスは、前記複数のオブジェクトを含むバウンダリボックスに所与のオフセットを付加して設定することを特徴とする情報記憶媒体。
【請求項１４】
請求項８乃至１３乃至１１のいずれかにおいて、
仮想カメラ位置、向き、画角の少なくともひとつの設定又は変更を行う際には、画面領域の中央付近に判定用バウンダリボックスが配置されるように仮想カメラの位置、向き、画角のすくなくともひとつを設定又は変更を行うことを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ゲームシステム、プログラム及び情報記憶媒体に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
従来よりゲーム空間内に複数のキャラクタオブジェクトや移動オブジェクトが登場するゲームシステムがある。かかるゲームシステムの場合、複数のキャラクタオブジェクトや移動オブジェクト等の移動可能な表示対象物を画面内に捕らえるために、表示対象物の中間位置や重心位置に仮想カメラの注視点が来るように仮想カメラの位置や向き等を設定していた。
【０００３】
しかし移動可能な表示対象物が移動するたびに注視点が変動するため、それに伴い仮想カメラの位置や向きや画角が変化し、揺れの激しい落ち着きのない映像となっていた。
【０００４】
また移動可能な表示対象物間の距離が画角範囲より大きくなった場合や、極端に離れた移動可能な表示対象物が存在する場合等に、すべての移動可能な表示対象物を画面内に捕らえることが困難であるという問題点があった。
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、移動可能な複数の表示対象物を安定したカメラワークで画面内に捕らえることができるゲームシステム、プログラム及び情報記憶媒体を提供することである。
【０００６】
【課題を解決するための手段】
（１）本発明は画像生成を行うゲームシステムであって、ゲーム空間内の複数のオブジェクトを内包する判定用バウンダリボックスを求め、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断する手段と、前回の仮想カメラの設定では判定用バウンダリボックスが画面内に入らない場合には、判定用バウンダリボックスが画面内に入るように仮想カメラ位置、向き、画角の少なくともひとつの設定を変更する手段と、を含むことを特徴とする。
【０００７】
また本発明にかかるプログラムは、コンピュータにより使用可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記手段をコンピュータに実現させることを特徴とする。また本発明にかかる情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体、上記手段をコンピュータに実現させるためのプログラムを含むことを特徴とする。
【０００８】
ここにおいて判定用バウンダリボックスは、ゲーム空間内の複数のオブジェクトが画面内に入るか否かを判定するために用いるものであり、複数のオブジェクトの全ての頂点を内包する場合でもよいし、複数のオブジェクトの代表点を内包する場合でもよい。また判定用バウンダリボックスにオブジェクトの頂点又は代表点が接するように内包されている場合でもよいし、すっぽり内包されている場合でもよい。また判定用バウンダリボックスは３次元的な形状でもよいし２次元的な形状でもよい。
【０００９】
前回の仮想カメラの設定とは例えば前フレームの仮想カメラの位置、向き、画角等である。
【００１０】
本発明によれば判定用バウンダリボックスは常に画面内におさまっているので、複数のオブジェクトを常に画面内に捕らえることができる。
【００１１】
また本発明によれば、前回の仮想カメラの設定では判定用バウンダリボックスが画面内に入らない場合には、判定用バウンダリボックスが画面内に入るように仮想カメラ位置、向き、画角の少なくともひとつの設定を変更する。
【００１２】
すなわち例えば複数のオブジェクトの位置関係が変化しても、変化後の複数のオブジェクトの位置関係に基づき生成した判定用バウンダリボックスが画面内に納まる場合には、仮想カメラの位置、向き、画角等の仮想カメラの設定を変更せずに前回と同じ設定で画像生成を行う。
【００１３】
したがって、オブジェクトが移動するたびにそれに伴い仮想カメラの位置や向きや画角が変化することにより揺れの激しい落ちつきのない映像となるのを防止し、移動可能な複数の表示対象物を安定したカメラワークで画面内に捕らえることができるゲームシステム及び情報記憶媒体を提供することができる。
【００１４】
（２）また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前回の仮想カメラと前記複数のオブジェクトを視点座標系に変換し、視点座標系における前回の仮想カメラと前記複数のオブジェクトを結ぶ線に基づき複数のオブジェクトを含む四角錘状の判定用バウンダリボックスを求め、視点座標系において前記判定用バウンダリボックスが前回の仮想カメラの画角内に内包されているか否かに基づき、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断することを特徴とする。
【００１５】
判定用バウンダリボックスは前記複数のオブジェクトの全ての頂点に基づき生成する場合でもよいし、代表点に基づき生成する場合でもよい。
【００１６】
視点座標系において、前回の仮想カメラと前記複数のオブジェクト頂点又は代表点を結ぶ線に基づき複数のオブジェクトを含む四角錘状の判定用バウンダリボックスを求める。
【００１７】
このようにすると仮想カメラと前記複数のオブジェクトを結ぶ線が前記四角錘状の判定用バウンダリボックスの側面の辺となるため、この辺が前回の仮想カメラの画角内に内包されているか否かに基づき、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断することができる。
【００１８】
（３）また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記複数のオブジェクトをスクリーン座標系に変換し、スクリーン座標系において複数オブジェクトを内包する２次元の判定用バウンダリボックスを求め、前回の仮想カメラの設定で当該２次元の判定用バウンダリボックスが画面内に入るか否かを判断することを特徴とする。
【００１９】
判定用バウンダリボックスは前記複数のオブジェクトの全ての頂点に基づき生成する場合でもよいし、代表点に基づき生成する場合でもよい。
【００２０】
スクリーン座標系において、前記複数のオブジェクト頂点又は代表点を結ぶ線に基づき複数のオブジェクトを含む２次元の判定用バウンダリボックスを求める。
【００２１】
このようにすると、判定用バウンダリボックスが画面内に入るか否かが２次元的に判断することができるので便利である。
【００２２】
（４）また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記複数のオブジェクトを含む判定用バウンダリボックスは、前記複数の各オブジェクトについて設定されたバウンダリボックスを内包することを特徴とする。
【００２３】
本発明によれば複数のオブジェクトの端が切れることなく画面内に収めることができる。
【００２４】
（５）また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、前記複数のオブジェクトを含む判定用バウンダリボックスは、前記複数のオブジェクトを含むバウンダリボックスに所与のオフセットを付加して設定することを特徴とする。
【００２５】
本発明によれば余裕を持った判定用バウンダリボックスを生成することができ、複数のオブジェクトを画面の中心付近に集めやすくなる。
【００２６】
（６）また本発明に係るゲームシステム、情報記憶媒体及びプログラムは、仮想カメラ位置、向き、画角の少なくともひとつの設定又は変更を行う際には、画面内に余裕をもって判定用バウンダリボックスがはいるように仮想カメラの位置、向き、画角のすくなくともひとつを設定又は変更を行うことを特徴とする。
【００２７】
このようにすると次フレームの判定用バウンダリボックスが多少変動しても画面内におさまるので、仮想カメラの移動の少ないより安定したゲーム画像を生成することができる。
【００２８】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて説明する。
【００２９】
１．構成
図１に、本実施形態のブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部１００を含めばよく、それ以外のブロックについては、任意の構成要素とすることができる。
【００３０】
ここで処理部１００は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、或いはＡＳＩＣ（ゲートアレイ等）などのハードウェアや、所与のプログラム（ゲームプログラム）により実現できる。
【００３１】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、筺体などのハードウェアにより実現できる。
【００３２】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、メインメモリ１７２、フレームバッファ１７４（第１のフレームバッファ、第２のフレームバッファ）として機能し、ＲＡＭなどのハードウェアにより実現できる。
【００３３】
情報記憶媒体（コンピュータにより使用可能な記憶媒体）１８０は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納される情報に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１８０には、本発明（本実施形態）の手段（特に処理部１００に含まれるブロック）を実行するための情報（プログラム或いはデータ）が格納される。
【００３４】
なお、情報記憶媒体１８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１７０に転送されることになる。また情報記憶媒体１８０に記憶される情報は、本発明の処理を行うためのプログラムコード、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも１つを含むものである。
【００３５】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００３６】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００３７】
セーブ用情報記憶装置１９４は、プレーヤの個人データ（セーブデータ）などが記憶されるものであり、このセーブ用情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００３８】
通信部１９６は、外部（例えばホスト装置や他のゲームシステム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３９】
なお本発明（本実施形態）の手段を実行するためのプログラム或いはデータは、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００４０】
処理部１００は、ゲーム処理部１１０、画像生成部１３０、音生成部１５０を含む。
【００４１】
ここでゲーム処理部１１０は、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ面）の位置や回転角度（Ｘ、Ｙ又はＺ軸回り回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置するための処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などの種々のゲーム処理を、操作部１６０からの操作データや、セーブ用情報記憶装置１９４からの個人データや、ゲームプログラムなどに基づいて行う。
【００４２】
画像生成部１３０は、ゲーム処理部１１０からの指示等にしたがって各種の画像処理を行い、例えばオブジェクト空間内で仮想カメラ（視点）から見える画像を生成して、表示部１９０に出力する。また、音生成部１５０は、ゲーム処理部１１０からの指示等にしたがって各種の音処理を行い、ＢＧＭ、効果音、音声などの音を生成し、音出力部１９２に出力する。
【００４３】
なお、ゲーム処理部１１０、画像生成部１３０、音生成部１５０の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００４４】
ゲーム処理部１１０は、移動・動作演算部１１２、場面切り替え演出処理部１１４とを含む。
【００４５】
ここで移動・動作演算部１１２は、キャラクタ車などのオブジェクトの移動情報（位置データ、回転角度データ）や動作情報（オブジェクトの各パーツの位置データ、回転角度データ）を演算するものであり、例えば、操作部１６０によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、オブジェクトを移動させたり動作させたりする処理を行う。
【００４６】
より具体的には、移動・動作演算部１１２は、オブジェクトの位置や回転角度を例えば１フレーム（１／６０秒）毎に求める処理を行う。例えば（ｋ−１）フレームでのオブジェクトの位置をＰＭk-1、速度をＶＭk-1、加速度をＡＭk-1、１フレームの時間を△ｔとする。するとｋフレームでのオブジェクトの位置ＰＭk、速度ＶＭkは例えば下式（１）、（２）のように求められる。
【００４７】
ＰＭk＝ＰＭk-1＋ＶＭk-1×△ｔ              （１）
ＶＭk＝ＶＭk-1＋ＡＭk-1×△ｔ              （２）
また仮想カメラ設定部１１４は、ゲーム空間内の複数のオブジェクトを内包する判定用バウンダリボックスを求め、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断し、前回の仮想カメラの設定では判定用バウンダリボックスが画面内に入らない場合には、判定用バウンダリボックスが画面内に入るように仮想カメラ位置、向き、画角の少なくともひとつの設定を変更する処理を行う。
【００４８】
また前回の仮想カメラと前記複数のオブジェクトを視点座標系に変換し、視点座標系における前回の仮想カメラと前記複数のオブジェクトを結ぶ線に基づき複数のオブジェクトを含む四角錘状の判定用バウンダリボックスを求め、視点座標系において前記判定用バウンダリボックスが前回の仮想カメラの画角内に内包されているか否かに基づき、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断するようにしてもよい。
【００４９】
また前記複数のオブジェクトをスクリーン座標系に変換し、スクリーン座標系において複数オブジェクトを内包する２次元の判定用バウンダリボックスを求め、前回の仮想カメラの設定で当該２次元の判定用バウンダリボックスが画面内に入るか否かを判断するようにしてもよい。
【００５０】
また前記複数のオブジェクトを含む判定用バウンダリボックスは、前記複数の各オブジェクトについて設定されたバウンダリボックスを内包するように設定してもよい。
【００５１】
また前記複数のオブジェクトを含む判定用バウンダリボックスは、前記複数のオブジェクトを含むバウンダリボックスに所与のオフセットを付加して設定するようにしてもよい。
【００５２】
また仮想カメラ位置、向き、画角の少なくともひとつの設定又は変更を行う際には、画面内に余裕をもって判定用バウンダリボックスがはいるように仮想カメラの位置、向き、画角のすくなくともひとつを設定又は変更を行うようにしてもよい。
【００５３】
画像生成部１３０は、ジオメトリ処理部１３２、描画部１４０を含む。
【００５４】
ここで、ジオメトリ処理部１３２は、座標変換、クリッピング処理、透視変換、或いは光源計算などの種々のジオメトリ処理（３次元演算）を行う。そして、ジオメトリ処理後（透視変換後）のオブジェクトデータ（オブジェクトの頂点座標などの形状データ、或いは頂点テクスチャ座標、輝度データ等）は、記憶部１７０のメインメモリ１７２に保存される。
【００５５】
描画部１４０は、ジオメトリ処理後のオブジェクト（モデル）を、フレームバッファ１７４に描画するための処理を行うものである。
【００５６】
なお前記オブジェクトとして表示画面サイズのポリゴンを用いてもよいし、表示画面を分割したブロックのサイズのポリゴンを用いてもよい。
【００５７】
なお、本実施形態のゲームシステムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００５８】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末を用いて生成してもよい。
【００５９】
２．本実施形態の特徴
本実施の形態の特徴を図面を用いて説明する。
【００６０】
まず本実施の形態の原理について説明する。図２は判定用バウンダリボックスのイメージについて説明するための模式的な図である。２１０、２２０、２３０、２４０はゲーム空間に存在する移動可能なオブジェクトであり、表示対象となるオブジェクト（以下、「表示対象オブジェクト」という）である。
【００６１】
本実施の形態ではまずゲーム空間内の複数の表示対象オブジェクト２１０、２２０、２３０、２４０を内包する判定用バウンダリボックス２００を求める。そして前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断する。なお説明を簡単にするためにここでは判定用バウンダリボックス２００を２次元的なイメージで図示しているが、３次元的な場合ももちろん含む。判定用バウンダリボックスの形状は、それが画面内に入るか否かの判断手法によって異なってくるので、詳細は後述する。
【００６２】
そして本実施の形態では、前回の仮想カメラの設定では判定用バウンダリボックスが画面内に入らない場合には、判定用バウンダリボックスが画面内に入るように仮想カメラ位置、向き、画角の少なくともひとつの設定を変更する処理をおこなう。
【００６３】
図３（Ａ）（Ｂ）は判定用バウンダリボックス２００が画面領域２５０に内包されている例が示されている。図３（Ａ）は判定用バウンダリボックス２００が画面領域２５０の中央付近に余裕を持って内包されている場合であり、図３（Ｂ）は判定用バウンダリボックス２００が画面領域２５０の端付近に内包されている場合である。
【００６４】
本実施の形態では今回のフレームにおける表示用オブジェクトの配置に基づいて求めた判定用バウンダリボックスが前回のフレームにおける仮想カメラの設定により決定される画面領域に内包される場合には、今回のフレームの仮想カメラの設定を前回のフレームと同じにする。
【００６５】
このように本実施の形態では表示用オブジェクトの配置が変化し、判定用バウンダリボックスの配置や形状が変化しても、前回の仮想カメラの設定により決定される画面領域に内包されている限り、仮想カメラの位置、向き、画角を変更しない。したがって、表示用オブジェクトを常に画面内に安定したカメラワークで捕らえたゲーム画像を生成することができる。
【００６６】
なお仮想カメラの初期設定時や設定変更時は、図３（Ａ）のように判定用バウンダリボックス２００が画面領域２５０の中央付近に余裕を持って内包されるように、仮想カメラの位置、向き、画角の設定をおこなうことが好ましい。
【００６７】
このようにすると、次のフレームで表示用オブジェクトの配置がかわって、例えば判定用バウンダリボックスの配置や形状が変化した場合でも例えば図３（Ｂ）のようにいまだ前回フレームの仮想カメラの設定により決定される画面領域に判定用バウンダリボックスが内包されている可能性が高くなるからである。
【００６８】
図４（Ａ）（Ｂ）は、判定用バウンダリボックス２００が画面領域２５０より小さいが画面領域に内包されていない例を示したものである。図４（Ａ）は判定用バウンダリボックス２００の一部が画面領域２５０からはみ出している場合であり、図４（Ｂ）は判定用バウンダリボックス２００の全部が画面領域２５０からはみ出している場合である。
【００６９】
いずれの場合も判定用バウンダリボックスが画面領域内に収まるように今回フレームの仮想カメラの位置又は向きを変更することが必要である。
【００７０】
また図５は、判定用バウンダリボックスが画面領域内に納まっていない場合の仮想カメラの移動について説明するための図である。
【００７１】
３１０は前回フレームにおける仮想カメラ位置を表しており、３２０は前回フレームにおける仮想カメラによって決定される画面領域である。また３３０は今回フレームの表示用オブジェクトによって決定される判定用バウンダリボックスである。
【００７２】
同図に示すように前回フレームの画面領域３２０から今回フレームの判定用バウンダリボックス３３０がはみ出しているため、このままでは例えば３４０のように表示対象オブジェクトの一部が画面領域からはみでてしまい表示されない事態が発生する。
【００７３】
そこでかかる場合に今回フレームの判定用バウンダリボックス３３０が画面内に入るように、仮想カメラの位置を移動させる（３１０→３１２）。
【００７４】
なお同図に示すように判定用バウンダリボックス３３０が画面領域３２０に対してＸ軸方向にずれていた場合には、仮想カメラの位置をＸ軸方向に移動させるとよい。また例えば判定用バウンダリボックス３３０が画面領域３２０に対してＹ軸方向にずれていた場合には、仮想カメラの位置をＹ軸方向に移動させるとよい。
【００７５】
３１４は今回フレームにおける仮想カメラ位置を表しており、３２４は今回フレームにおける仮想カメラによって決定される画面領域である。また３３０は今回フレームの表示用オブジェクトによって決定される判定用バウンダリボックスである。
【００７６】
このように仮想カメラを移動させることによって、判定用バウンダリボックスを画面内に収めることができる。
【００７７】
なお図５に示すように判定用バウンダリボックス３３０が今回フレームの画面領域３２４の中央付近に余裕を持って内包されるように移動後の仮想カメラの位置を決定することが好ましい。
【００７８】
また図６は、判定用バウンダリボックスが画面領域内に納まっていない場合の仮想カメラの向きの変更（回転）について説明するための図である。
【００７９】
４１０は前回フレームにおける仮想カメラ位置を表しており、４２０は前回フレームにおける仮想カメラによって決定される画面領域である。また４３０は今回フレームの表示用オブジェクトによって決定される判定用バウンダリボックスである。
【００８０】
同図に示すように前回フレームの画面領域４２０から今回フレームの判定用バウンダリボックス４３０がはみだしているため、このままでは例えば４４０のように表示対象オブジェクトの一部が画面領域からはみでてしまい表示されない事態が発生する。
【００８１】
そこでかかる場合に今回フレームの判定用バウンダリボックス４３０が画面内に入るように仮想カメラの向き回転させる（４１０→４１２）。
【００８２】
なお同図に示すように判定用バウンダリボックス４３０が画面領域４２０に対してＸ軸方向にずれていた場合には、仮想カメラの向きをＹ軸ロールで回転させるとよい。また例えば判定用バウンダリボックス４３０が画面領域４２０に対してＹ軸方向にずれていた場合には、仮想カメラの向きをＸ軸ロールで回転させるとよい。
【００８３】
４１４は今回フレームにおける仮想カメラの向きを表しており、４２４は今回フレームにおける仮想カメラによって決定される画面領域である。また４３０は今回フレームの表示用オブジェクトによって決定される判定用バウンダリボックスである。
【００８４】
このように仮想カメラの向きを回転させることによって、判定用バウンダリボックスを画面内に収めることができる。
【００８５】
なお図６に示すように判定用バウンダリボックス４３０が今回フレームの画面領域４２４の中央付近に余裕を持って内包されるように回転後の仮想カメラの向きを決定することが好ましい。
【００８６】
図７（Ａ）（Ｂ）は、判定用バウンダリボックス２００が画面領域２５０より大きくて画面領域２５０に内包されていない例を示したものである。図７（Ａ）は判定用バウンダリボックス２００の一部が画面領域２５０からはみ出している場合であり、図７（Ｂ）は判定用バウンダリボックス２００の全部が画面領域２５０からはみ出している場合である。
【００８７】
いずれの場合も判定用バウンダリボックスが画面領域内に収まるように今回フレームの仮想カメラの位置又は画角を変更することが必要である。
【００８８】
図８は、判定用バウンダリボックスが大きすぎて画面領域内に納まっていない場合の仮想カメラの画角の変更について説明するための図である。
【００８９】
θ１は前回フレームにおける仮想カメラ５１０の画角を表しており、５２０は前回フレームにおける仮想カメラよって決定される画面領域である。また５３０は今回フレームの表示用オブジェクトによって決定される判定用バウンダリボックスである。
【００９０】
同図に示すように前回フレームの画面領域５２０から今回フレームの判定用バウンダリボックス５３０が大きすぎてはみ出しているため、このままでは例えば５４０、５４２、５４４のように表示対象オブジェクトが画面領域からはみでてしまい表示されない事態が発生する。
【００９１】
そこでかかる場合に今回フレームの判定用バウンダリボックス５３０が画面内に入るように、仮想カメラの画角が大きくなるように変更する（θ１→θ２）。
【００９２】
θ３は今回フレームにおける仮想カメラの画角を表しており、５２４は今回フレームにおける仮想カメラによって決定される画面領域である。また５３０は今回フレームの表示用オブジェクトによって決定される判定用バウンダリボックスである。
【００９３】
このように仮想カメラの画角を大きくすることで、判定用バウンダリボックスを画面内に収めることができる。
【００９４】
図９は、判定用バウンダリボックスが大きすぎて画面領域内に納まっていない場合の仮想カメラの位置の変更について説明するための図である。
【００９５】
６１０は前回フレームにおける仮想カメラの位置を表しており、６２０は前回フレームにおける仮想カメラよって決定される画面領域である。また６３０は今回フレームの表示用オブジェクトによって決定される判定用バウンダリボックスである。
【００９６】
同図に示すように前回フレームの画面領域６２０から今回フレームの判定用バウンダリボックス６３０が大きすぎてはみ出しているため、このままでは例えば６４０、６４２、６４４のように表示対象オブジェクトが画面領域からはみでてしまい表示されない事態が発生する。
【００９７】
そこでかかる場合に今回フレームの判定用バウンダリボックス６３０が画面内に入るように、仮想カメラの位置をバウンダリボックスから遠ざける（６１０→６１２）。なお画角θ１は変更しない。
【００９８】
６１４は今回フレームにおける仮想カメラの位置を表しており、６２４は今回フレームにおける仮想カメラによって決定される画面領域である。また６３０は今回フレームの表示用オブジェクトによって決定される判定用バウンダリボックスである。
【００９９】
このように仮想カメラの位置を判定用バウンダリボックスより遠ざけることで、判定用バウンダリボックスを画面内に収めることができる。
【０１００】
図１０は仮想カメラの設定の変更処理について説明するためのフローチャート図である。
【０１０１】
まず判定用バウンダリボックスが前回の仮想カメラの設定（位置、向き、画角）で決まる画面領域に内包されているか否か判断する（ステップＳ１０）。
【０１０２】
そして判定用バウンダリボックスが前回の仮想カメラの設定（位置、向き、画角）で決まる画面領域に内包されている場合には、仮想カメラの位置，向き、画角は変更しない（ステップＳ２０）。例えば図３（Ａ）（Ｂ）で説明したような場合であり、かかる場合には今回のフレームの仮想カメラの位置、向き、画角も前回のフレームの仮想カメラの位置、向き、画角と同じ設定でゲーム空間に配置して画像生成を行う。
【０１０３】
また判定用バウンダリボックスが前回の仮想カメラの設定（位置、向き、画角）で決まる画面領域に内包されていない場合であって、判定用バウンダリボックスが画面領域より小さい場合には、判定用バウンダリボックスが画面領域内に入るように仮想カメラの位置及び向きの少なくとも一方を変更する（ステップＳ３０、Ｓ４０）。例えば図４（Ａ）（Ｂ）で説明したような場合であり、かかる場合には図５で説明したように仮想カメラの位置を変更したり、図６で説明したように仮想カメラの向きを変更したりする。
【０１０４】
また判定用バウンダリボックスが前回の仮想カメラの設定（位置、向き、画角）で決まる画面領域に内包されていない場合であって、判定用バウンダリボックスが画面領域より大きい場合には、判定用バウンダリボックスが画面領域内に入るように仮想カメラの位置及び向きの少なくとも一方を変更する（ステップＳ３０、Ｓ５０）。例えば図７（Ａ）（Ｂ）で説明したような場合であり、かかる場合には図８で説明したように仮想カメラの画角を変更したり、図９で説明したように仮想カメラの位置を変更したりする。
【０１０５】
次に視点座標系において、前回の仮想カメラと前記複数のオブジェクトを結ぶ線に基づき複数のオブジェクトを含む四角錘状の判定用バウンダリボックスを求め、視点座標系において前記判定用バウンダリボックスが前回の仮想カメラの画角内に内包されているか否かに基づき、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断する場合について説明する。
【０１０６】
図１１（Ａ）（Ｂ）は視点座標系における表示対象オブジェクトの配置とバウンダリボックスの関係について説明するための図である。
【０１０７】
図１１（Ａ）は視点座標系に配置された仮想カメラ７００と視点座標系における表示対象オブジェクト７１０、７２０、７３０と判定用バウンダリボックス７４０を表している。図１１（Ｂ）の７１２、７２２、７３２は前記視点座標系における表示対象オブジェクトがスクリーンに投影されたものであり、７４２は判定用バウンダリボックスがスクリーンに投影されたものである。
【０１０８】
本実施の形態では図１１（Ａ）に示すようにスクリーン座標系において、複数のオブジェクトを含む四角錘状の判定用バウンダリボックス７４０（斜線部分）を想定し、当該判定用バウンダリボックスが前回の仮想カメラの画角内に内包されているか否かに基づき、前回の仮想カメラの設定で当該判定用バウンダリボックスが画面内に入るか否かを判断する。
【０１０９】
図１２はＸＺ平面に投影された表示対象オブジェクトと仮想カメラの画角範囲との関係について説明するための図である。７１４、７２４、７３４は前記視点座標系における表示対象オブジェクトがＸＺ平面に投影されたものである。また７７０及び７７２にはさまれたエリアはＸＺ平面における仮想カメラの画角範囲を示している。従って図１２において７７０及び７７２にはさまれたエリアが画面内に表示可能なエリアとなる。
【０１１０】
また７８０及び７８２はＸＺ平面における表示対象オブジェクトのバウンダリを表している。すなわちバウンダリ７８０及び７８２ではさまれた斜線領域は図１１（Ａ）の四角錘のバウンダリボックス７４０をＸＺ平面に投影した領域に一致する。従って表示対象オブジェクトが画面内に表示されるためには、バウンダリ７８０及び７８２ではさまれた斜線領域が画角範囲（７７０及び７７２にはさまれたエリア）に含まれている必要がある。
【０１１１】
図１３はＹＺ平面に投影された表示対象オブジェクトと仮想カメラの画角範囲との関係について説明するための図である。７１６、７２６、７３６は前記視点座標系における表示対象オブジェクトがＹＺ平面に投影されたものである。また７７４及び７７６にはさまれたエリアはＹＺ平面における仮想カメラの画角範囲を示している。従って図１３において７７４及び７７６にはさまれたエリアが画面内に表示可能なエリアとなる。
【０１１２】
また７９０及び７９２はＹＺ平面における表示対象オブジェクトのバウンダリを表している。すなわちバウンダリ７９０及び７９２ではさまれた斜線領域は図１１（Ａ）の四角錘のバウンダリボックス７４０をＹＺ平面に投影した領域に一致する。従って表示対象オブジェクトが画面内に表示されるためには、バウンダリ７９０及び７９２ではさまれた斜線領域が画角範囲（７７４及び７７６にはさまれたエリア）に含まれている必要がある。
【０１１３】
図１４は視点座標系で仮想カメラの設定の変更を判断する場合の処理の一例について説明するためのフローチャート図である。
【０１１４】
初期設定時であれは任意の位置にカメラを置き（ステップＳ１１０、Ｓ１２０）、それ以外であれば、前回の仮想カメラの設定（位置、向き、画角）を引き継ぐ（ステップＳ１１０、Ｓ１３０）。
【０１１５】
次に全ての表示対象オブジェクトを視点座標系に変換する（ステップＳ１４０）。ここで、表示対象オブジェクトの全ての頂点座標に基づき判定用バウンダリボックスを生成する場合には、表示対象オブジェクトの全ての頂点座標を視点座標系に変換する。また、表示対象オブジェクトの代表点に基づき判定用バウンダリボックスを生成する場合には、表示対象オブジェクトの代表点の頂点座標を視点座標系に変換する。
【０１１６】
次に全ての表示対象オブジェクトと仮想カメラの視線方向のなす角ＲＸｎ、ＲＹｎを求める（ステップＳ１５０）。ここで例えばオブジェクト７１４、７２４、７３４に対するＲＹｎはそれぞれＲＹ１、ＲＹ２、ＲＹ３である（図１２参照）。  また例えばオブジェクト７１６、７２６、７３６に対するＲＸｎはそれぞれＲＸ１、ＲＸ２、ＲＸ３である（図１３参照）。
【０１１７】
次にＲＸｎ、ＲＹｎの最大角、最小角を検索し、判定用バウンダリボックスを作成する（ステップＳ１６０）。例えば図１２ではオブジェクト７１４、７２４、７３４の最大角ＲＹｎはＲＹ１であり、最小角はＲＹ３である。したがってＸＺ平面における判定用バウンダリボックスはバウンダリ７８０及びバウンダリ７８２にはさまれた斜線領域となる。
【０１１８】
また例えば図１３ではオブジェクト７１６、７２６、７３６の最大角ＲＸｎはＲＸ２であり、最小角はＲＸ３である。したがってＹＺ平面における判定用バウンダリボックスはバウンダリ７９０及びバウンダリ７９２にはさまれた斜線領域となる。
【０１１９】
次に判定用バウンダリボックスそのものが視点座標系で占める角度ＢＸ、ＢＹの値を求める（ステップＳ１８０）。例えばＸＺ平面における判定用バウンダリボックスそのものが視点座標系で占める角度ＢＹは｜ＲＹ１｜＋｜ＲＹ３｜であり（図１２参照）、ＹＺ平面における判定用バウンダリボックスそのものが視点座標系で占める角度ＢＸは｜ＲＸ２｜＋｜ＲＸ３｜である（図１３参照）。
【０１２０】
次にＢＸと仮想カメラの画角を比較し、ＢＸが画角より大きい場合には仮想カメラの画角がＢＸより大きくなるように仮想カメラの画角を大きくするか、画角内にはいるような仮想カメラのＺの移動量を求め、ワールド座標系に逆変換し、新しい仮想カメラのＺ座標とする（ステップＳ１８０、Ｓ１９０）。
【０１２１】
ＢＸが画角より大きくない場合には、ＢＹと仮想カメラの画角を比較し、ＢＹが画角より大きい場合には仮想カメラの画角がＢＹより大きくなるように仮想カメラの画角を大きくするか、画角内にはいるような仮想カメラのＺの移動量を求め、ワールド座標系に逆変換し、新しい仮想カメラのＺ座標とする（ステップＳ２００、Ｓ１９０）。
【０１２２】
ＢＸもＢＹも画角より大きくない場合には、判定用バウンダリボックスを決定するＲＹｎが画角内に収まっているか否か判断する（ステップＳ２１０）。ここで判定用バウンダリボックスを決定するＲＹｎは、例えば図１２におけるＲＹ１及びＲＹ３である。
【０１２３】
収まっていない場合には画角内に入るような仮想カメラのＸの移動量又はＹ軸ロールの向きを求めワールド座標系に逆変換し仮想カメラの設定を新しいＸ座標またはＹ軸ロールの向きとする（ステップＳ２２０）。
【０１２４】
収まっている場合には、判定用バウンダリボックスを決定するＲＸｎが画角内に収まっているか否か判断する（ステップＳ２３０）。ここで判定用バウンダリボックスを決定するＲＸｎは、例えば図１３におけるＲＸ２及びＲＸ３である。
【０１２５】
収まっていない場合には画角内に入るような仮想カメラのＹの移動量又はＸ軸ロールの回転角を求めワールド座標系に逆変換し仮想カメラの設定を新しいＹ座標またはＸ軸ロールの向きとする（ステップＳ２４０）。
【０１２６】
図１５は透視変換してスクリーン座標系において仮想カメラの設定の変更を判断する場合の処理の一例について説明するためのフローチャート図である。
【０１２７】
初期設定時であれは任意の位置にカメラを置き（ステップＳ３１０、Ｓ３２０）、それ以外であれば、前回の仮想カメラの設定（位置、向き、画角）を引き継ぐ（ステップＳ３１０、Ｓ３３０）。
【０１２８】
次に全ての表示対象オブジェクトの透視変換を行いスクリーン座標系に変換する（ステップＳ３４０）。ここで、表示対象オブジェクトの全ての頂点座標に基づき判定用バウンダリボックスを生成する場合には、表示対象オブジェクトの全ての頂点座標を視点座標系に変換する。また、表示対象オブジェクトの代表点に基づき判定用バウンダリボックスを生成する場合には、表示対象オブジェクトの代表点の頂点座標を視点座標系に変換する。
【０１２９】
次に全ての表示対象オブジェクトのスクリーン座標値Ｘ、Ｙの最大値と最小値を検索し、スクリーン平面に判定用バウンダリボックスを生成する（ステップＳ３５０）。例えば図１１（Ｂ）に示すように、オブジェクト７１２、７２２、７３２のスクリーン座標値（Ｘ、Ｙ）を（Ｘ１、Ｙ１）、（Ｘ２、Ｙ２）、（Ｘ３、Ｙ３）とすると、Ｘの最大値はＸ３で最小値はＸ１、Ｙの最大値はＹ２で最小値はＹ３となる。そしてこれらに基づきスクリーン平面に判定用バウンダリボックス７４２が生成される。
【０１３０】
次にスクリーン平面上の判定用バウンダリボックスと画面領域の大きさを比較し、判定用バウンダリボックスのほうが大きい場合には仮想カメラの画角に入るように仮想カメラの画角を大きくするか、画角内にはいるような仮想カメラのＺの移動量を求め、ワールド座標系に逆変換し、新しい仮想カメラのＺ座標とする（ステップＳ３６０、Ｓ３７０）。
【０１３１】
判定用バウンダリボックスのほうが小さい場合には、判定用バウンダリボックスのＸ方向が画面領域に収まっているかを判断し、収まっていない場合には判定用バウンダリボックスが画面領域内に入るような仮想カメラのＸの移動量又はＹ軸ロールの向きを求めワールド座標系に逆変換し仮想カメラの設定を新しいＸ座標またはＹ軸ロールの向きとする（ステップＳ３８０、Ｓ３９０）。
【０１３２】
収まっている場合には、判定用バウンダリボックスのＹ方向が画面領域に収まっているかを判断し、収まっていない場合には判定用バウンダリボックスが画面領域内に入るような仮想カメラのＹの移動量又はＸ軸ロールの向きを求めワールド座標系に逆変換し仮想カメラの設定を新しいＹ座標またはＸ軸ロールの向きとする（ステップＳ４００、Ｓ４１０）。
【０１３３】
図１６（Ａ）（Ｂ）は本実施の形態のゲームシステムの生成されるゲーム画像の一例を示したものである。クレー射撃の的である８１０及び８２０が表示対象オブジェクトである。図１６（Ａ）と図１６（Ｂ）では的である表示対象オブジェクト８１０及び８２０の位置は異なっているが、仮想カメラの設定（位置、向き、画角）は同じである。
【０１３４】
このように本実施の形態では、移動可能な複数の表示対象物を安定したカメラワークで画面内に捕らえることができる。
【０１３５】
３．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図１７を用いて説明する。
【０１３６】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【０１３７】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１３８】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０１３９】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、所与の画像圧縮方式で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【０１４０】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０１４１】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０１４２】
ゲームコントローラ９４２からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０１４３】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０１４４】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０１４５】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０１４６】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０１４７】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他のゲームシステムとの間でのデータ転送が可能になる。
【０１４８】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実行してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実行してもよい。或いは、ハードウェアとプログラムの両方により実行してもよい。
【０１４９】
そして、本発明の各手段をハードウェアとプログラムの両方により実行する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実行するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各手段を実行することになる。
【０１５０】
図１８（Ａ）に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、レバー１１０２、ボタン１１０４等を操作してゲームを楽しむ。内蔵されるシステムボード（サーキットボード）１１０６には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報（プログラム又はデータ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、この情報を格納情報と呼ぶ。
【０１５１】
図１８（Ｂ）に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２、１２０４を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９等に格納されている。
【０１５２】
図１８（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）を介して接続される端末１３０４-1〜１３０４-nとを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。端末１３０４-1〜１３０４-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-1〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-1〜１３０４-nに伝送し端末において出力することになる。
【０１５３】
なお、図１８（Ｃ）の構成の場合に、本発明の各手段を、ホスト装置（サーバー）と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置（サーバー）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０１５４】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能なセーブ用情報記憶装置（メモリカード、携帯型ゲーム装置）を用いることが望ましい。
【０１５５】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１５６】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１５７】
例えば複数のオブジェクトを含む判定用バウンダリボックスを、前記複数の各オブジェクトについて設定されたバウンダリボックスを内包するように構成してもよい。
【０１５８】
図１９は前記複数の各オブジェクトについて設定されたバウンダリボックスを含む判定用バウンダリボックスのイメージについて説明するための模式的な図である。８３０、８４０、８５０はゲーム空間に存在する表示対象オブジェクトであり、８３２、８４２、８５２は前記各表示対象オブジェクトのバウンダリボックスである。そして８６０は前記各表示対象オブジェクトのバウンダリボックス８３２、８４２、８５２を内包する判定用バウンダリボックスであり、８７０が画面領域である。
【０１５９】
このようにすると複数のオブジェクトの端が切れることなく画面内に収めることができる。
【０１６０】
また例えば複数のオブジェクトを含む判定用バウンダリボックスを、前記複数のオブジェクトを含むバウンダリボックスに所与のオフセットを付加して設定するようにしてもよい。
【０１６１】
図２０は複数のオブジェクトを含むバウンダリボックスに所与のオフセットを付加して設定された判定用バウンダリボックスのイメージについて説明するための模式的な図である。８８０、８８２、８８４、８８６はゲーム空間に存在する表示対象オブジェクトであり、８８８は前記各表示対象オブジェクトのバウンダリボックスである。そして８９２がバウンダリボックス８８８に所与のオフセット８９０（斜線領域）を付加して生成された判定用バウンダリボックスであり、８９４が画面領域である。
【０１６２】
このようにオフセットを付加することにより余裕を持った判定用バウンダリボックスを生成することができ、複数のオブジェクトを画面の中心付近に集めやすくなる。
【０１６３】
また例えば複数のオブジェクトを含む判定用バウンダリボックスを、前記複数のオブジェクトの代表点を含むように構成してもよい。このようにすると頂点座標に基づき判定用バウンダリボックスを生成する場合に比べ演算付加が少なくてすむ。また代表店に基づき生成したバウンダリボックスに所与のオフセットを付加して判定用バウンダリボックスを生成することにより、複数のオブジェクトの端が切れることなく画面内に収めることができる。
【０１６４】
また、本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０１６５】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステムに適用できる。
【図面の簡単な説明】
【図１】本実施形態のゲームシステムのブロック図の例である。
【図２】本実施形態の判定用バウンダリボックスのイメージについて説明するための模式的な図である。
【図３】図３（Ａ）（Ｂ）は判定用バウンダリボックスが画面領域に内包されている例が示されている。
【図４】図４（Ａ）（Ｂ）は、判定用バウンダリボックスが画面領域より小さいが画面領域に内包されていない例を示したものである。
【図５】判定用バウンダリボックスが画面領域内に納まっていない場合の仮想カメラの移動について説明するための図である。
【図６】判定用バウンダリボックスが画面領域内に納まっていない場合の仮想カメラの向きの変更（回転）について説明するための図である。
【図７】図７（Ａ）（Ｂ）は、判定用バウンダリボックスが画面領域より大きくて画面領域に内包されていない例を示したものである。
【図８】判定用バウンダリボックスが大きすぎて画面領域内に納まっていない場合の仮想カメラの画角の変更について説明するための図である。
【図９】判定用バウンダリボックスが大きすぎて画面領域内に納まっていない場合の仮想カメラの位置の変更について説明するための図である。
【図１０】仮想カメラの設定の変更処理について説明するためのフローチャート図である。
【図１１】図１１（Ａ）（Ｂ）は視点座標系における表示対象オブジェクトの配置とバウンダリボックスの関係について説明するための図である。
【図１２】ＸＺ平面に投影された表示対象オブジェクトと仮想カメラの画角範囲との関係について説明するための図である。
【図１３】ＹＺ平面に投影された表示対象オブジェクトと仮想カメラの画角範囲との関係について説明するための図である。
【図１４】視点座標系で仮想カメラの設定の変更を判断する場合の処理の一例について説明するためのフローチャート図である。
【図１５】透視変換してスクリーン座標系において仮想カメラの設定の変更を判断する場合の処理の一例について説明するためのフローチャート図である。
【図１６】図１６（Ａ）（Ｂ）は本実施の形態のゲームシステムの生成されるゲーム画像の一例を示したものである。
【図１７】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図１８】図１８（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【図１９】複数の各オブジェクトについて設定されたバウンダリボックスを含む判定用バウンダリボックスのイメージについて説明するための模式的な図である。
【図２０】複数のオブジェクトを含むバウンダリボックスに所与のオフセットを付加して設定された判定用バウンダリボックスのイメージについて説明するための模式的な図である。
【符号の説明】
１００  処理部
１１０  ゲーム処理部
１１２  移動・動作演算部
１１４  仮想カメラ設定部
１３０  画像生成部
１３２  ジオメトリ処理部
１４０  描画部
１５０  音生成部
１６０  操作部
１７０  記憶部
１７２  メインメモリ
１７４  フレームバッファ
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  セーブ用情報記憶装置
１９６  通信部
【図１】
0004535604.tif 000002
【図２】
0004535604.tif 000003
【図３】
0004535604.tif 000004
【図４】
0004535604.tif 000005
【図５】
0004535604.tif 000006
【図６】
0004535604.tif 000007
【図７】
0004535604.tif 000008
【図８】
0004535604.tif 000009
【図９】
0004535604.tif 000010
【図１０】
0004535604.tif 000011
【図１１】
0004535604.tif 000012
【図１２】
0004535604.tif 000013
【図１３】
0004535604.tif 000014
【図１４】
0004535604.tif 000015
【図１５】
0004535604.tif 000016
【図１６】
0004535604.tif 000017
【図１７】
0004535604.tif 000018
【図１８】
0004535604.tif 000019
【図１９】
0004535604.tif 000020
【図２０】
0004535604.tif 000021