(57)【要約】【課題】仮想カメラがゲーム空間に配置されたオブジェクトと接近しすぎたり、衝突したりして、見栄えの悪い画像が生成されてしまうのを防止すること。【解決手段】仮想カメラと、障害物オブジェクトが所定の距離以上離れているか否かを所定のサイクルで判定し、判定結果に基づき、仮想カメラが障害物オブジェクトから離れる方向に仮想カメラを移動させる処理を行う。また現在使用している仮想カメラであるアクティブ仮想カメラと、障害物オブジェクトが所定の距離以上離れているか否かを所定のサイクルで判定し、判定結果に基づき、アクティブ仮想カメラを障害物オブジェクトから所定の距離以上離れている他の仮想カメラに切り替える処理を行う仮想カメラ切り替え処理を行うようにしてもよい。【選択図】        図１６
2004341572.tif 000002
【特許請求の範囲】
【請求項１】
画像生成を行う画像生成システムであって、
仮想カメラと、障害物オブジェクトが所定の距離以上離れているか否かを所定のサイクルで判定し、判定結果に基づき、仮想カメラが障害物オブジェクトから離れる方向に仮想カメラを移動させる処理を行う仮想カメラ移動処理手段と、
オブジェクト空間を仮想カメラから見た画像を生成する手段と、
を含むことを特徴とする画像生成システム。
【請求項２】
異なる位置に配置された複数の仮想カメラを切り替えて画像生成を行う画像生成システムであって、
現在使用している仮想カメラであるアクティブ仮想カメラと、障害物オブジェクトが所定の距離以上離れているか否かを所定のサイクルで判定し、判定結果に基づき、アクティブ仮想カメラを障害物オブジェクトから所定の距離以上離れている他の仮想カメラに切り替える処理を行う仮想カメラ切り替え処理手段と、
オブジェクト空間をアクティブ仮想カメラから見た画像を生成する手段と、
を含むことを特徴とする画像生成システム。
【請求項３】
請求項２において、
仮想カメラ切り替え手段が、
障害物オブジェクトに対して常に安全位置に配置されるように設定された仮想カメラである安全仮想カメラを予め用意しておき、
アクティブ仮想カメラと障害物オブジェクトが所定の距離以上離れているか否かを所定のサイクルで判定し、判定結果に基づき、安全仮想カメラをアクティブ仮想カメラに切り替えることを特徴とする画像生成システム。
【請求項４】
請求項１乃至３のいずれかにおいて、
仮想カメラ又はアクティブ仮想カメラと障害物オブジェクトが所定の距離以上離れていないと判定した場合には、１人称視点に切り替える手段を含むことを特徴とする画像生成システム。
【請求項５】
コンピュータを、
仮想カメラと、障害物オブジェクトが所定の距離以上離れているか否かを所定のサイクルで判定し、判定結果に基づき、仮想カメラが障害物オブジェクトから離れる方向に仮想カメラを移動させる処理を行う仮想カメラ移動処理手段と、
オブジェクト空間を仮想カメラから見た画像を生成する手段と、して機能させることを特徴とするプログラム。
【請求項６】
コンピュータを、
現在使用している仮想カメラであるアクティブ仮想カメラと、障害物オブジェクトが所定の距離以上離れているか否かを所定のサイクルで判定し、判定結果に基づき、アクティブ仮想カメラを障害物オブジェクトから所定の距離以上離れている他の仮想カメラに切り替える処理を行う仮想カメラ切り替え処理手段と、
オブジェクト空間をアクティブ仮想カメラから見た画像を生成する手段と、して機能させることを特徴とするプログラム。
【請求項７】
請求項６において、
仮想カメラ切り替え手段が、
障害物オブジェクトに対して常に安全位置に配置されるように設定された仮想カメラである安全仮想カメラを予め用意しておき、
アクティブ仮想カメラと障害物オブジェクトが所定の距離以上離れているか否かを所定のサイクルで判定し、判定結果に基づき、安全仮想カメラをアクティブ仮想カメラに切り替えることを特徴とするプログラム。
【請求項８】
請求項５乃至７のいずれかにおいて、
仮想カメラ又はアクティブ仮想カメラと障害物オブジェクトが所定の距離以上離れていないと判定した場合には、１人称視点に切り替える手段を含むことを特徴とするプログラム。
【請求項９】
コンピュータにより読みとり可能な情報記憶媒体であって、請求項５乃至８のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【０００２】
【背景技術】
従来より、仮想的な３次元空間であるオブジェクト空間内において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（例えばゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
【特許文献１】
特開平１２−２０７５８２号
【０００４】
【発明が解決しようとする課題】
このような画像生成システムを用いてレーシングゲーム等を構成する場合、例えば仮想カメラをプレーヤ移動体に追従させたりすると、仮想カメラがゲーム空間に配置されたオブジェクトと接近しすぎたり、衝突したりして、見栄えの悪い画像が生成されてしまう可能性がある。
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、仮想カメラがゲーム空間に配置されたオブジェクトと接近しすぎたり、衝突したりして、見栄えの悪い画像が生成されてしまうのを防止することが可能な画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【０００６】
【課題を解決するための手段】
（１）本発明は、画像生成を行う画像生成システムであって、
仮想カメラと、障害物オブジェクトが所定の距離以上離れているか否かを所定のサイクルで判定し、判定結果に基づき、仮想カメラが障害物オブジェクトから離れる方向に仮想カメラを移動させる処理を行う仮想カメラ移動処理手段と、
オブジェクト空間を仮想カメラから見た画像を生成する手段と、
を含むことを特徴とする。
【０００７】
また本発明に係るプログラムは、コンピュータにより実行可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記手段をコンピュータに実現させる（上記手段としてコンピュータを機能させる）ことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能（使用可能）な情報記憶媒体であって、上記手段をコンピュータに実現させる（上記手段としてコンピュータを機能させる）ためのプログラムを含むことを特徴としている。
【０００８】
ここで仮想カメラの位置の位置は視点位置と同義である。
【０００９】
また障害物オブジェクトとは、オブジェクト空間内に配置されたオブジェクトであって仮想カメラと衝突したり接近しすぎることで不具合を生じる可能正のあるオブジェクト等を便宜的に指定ものであり、例えばゲームの内容に応じて適宜設定することができる。障害物オブジェクトは１つ設定される場合でもよいし、複数設定される場合でもよい。
【００１０】
例えばレースゲームにおいては、コースわきの壁や自車や敵車やコースわきの建物や道路や陸橋や看板や信号等のオブジェクトを障害物オブジェクトと設定することができる。
【００１１】
またアクションゲームにおいては、敵キャラクターやプレイヤーキャラクターや部屋の壁や家具やドアや床や階段等を障害物オブジェクトと設定することができる。
【００１２】
障害物オブジェクトは例えばオブジェクト情報等に障害物フラグ等を設定することにより、予め設定しておいても良い。
【００１３】
本発明によれば仮想カメラが障害物オブジェクトに所定距離以上にない場合には仮想カメラを障害物オブジェクトから離れる方向に移動させるので、仮想カメラと障害物オブジェクトが接近しすぎたり、ヒットしたりして見栄えの悪い画像が生成されるのを防止することができる。
【００１４】
（２）本発明は、異なる位置に配置された複数の仮想カメラを切り替えて画像生成を行う画像生成システムであって、
現在使用している仮想カメラであるアクティブ仮想カメラと、障害物オブジェクトが所定の距離以上離れているか否かを所定のサイクルで判定し、判定結果に基づき、アクティブ仮想カメラを障害物オブジェクトから所定の距離以上離れている他の仮想カメラに切り替える処理を行う仮想カメラ切り替え処理手段と、
オブジェクト空間をアクティブ仮想カメラから見た画像を生成する手段と、
を含むことを特徴とする。
【００１５】
また本発明に係るプログラムは、コンピュータにより実行可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記手段をコンピュータに実現させる（上記手段としてコンピュータを機能させる）ことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能（使用可能）な情報記憶媒体であって、上記手段をコンピュータに実現させる（上記手段としてコンピュータを機能させる）ためのプログラムを含むことを特徴としている。
【００１６】
ここにおいて異なる位置に配置された複数の仮想カメラは、例えば固定位置に配置されていつ場合でもよいし、移動体や仮想カメラやキャラクタに追従して動く位置に配置されている場合でもよい。
【００１７】
ここでアクティブ仮想カメラの位置は視点位置と同義である。
【００１８】
また障害物オブジェクトとは、オブジェクト空間内に配置されたオブジェクトであって仮想カメラと衝突したり接近しすぎることで不具合を生じる可能正のあるオブジェクト等を指定したものであり、例えばゲームの内容に応じて適宜設定することができる。障害物オブジェクトは１つ設定される場合でもよいし、複数設定される場合でもよい。
【００１９】
例えばレースゲームにおいては、コースわきの壁や自車や敵車やコースわきの建物や道路や陸橋や看板や信号等のオブジェクトを障害物オブジェクトと設定することができる。
【００２０】
またアクションゲームにおいては、敵キャラクターやプレイヤーキャラクターや部屋の壁や家具やドアや床や階段等を障害物オブジェクトと設定することができる。
【００２１】
障害物オブジェクトは例えばオブジェクト情報等に障害物フラグ等を設定することにより、予め設定しておいても良い。
【００２２】
本発明によればアクティブ仮想カメラが障害物オブジェクトから所定距離以上離れていない場合にはアクティブ仮想カメラを、障害物オブジェクトから所定距離以上離れた他の仮想カメラに切り替えることができるので、アクティブ仮想カメラと障害物オブジェクトが接近しすぎたり、ヒットしたりして見栄えの悪い画像が生成されるのを防止することができる。
【００２３】
（３）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
仮想カメラ切り替え手段が、
障害物オブジェクトに対して常に安全位置に配置されるように設定された仮想カメラである安全仮想カメラを予め用意しておき、
アクティブ仮想カメラと障害物オブジェクトが所定の距離以上離れているか否かを所定のサイクルで判定し、判定結果に基づき、安全仮想カメラをアクティブ仮想カメラに切り替えることを特徴とする。
【００２４】
例えば障害物オブジェクトから所定距離以上離れた他の仮想カメラがない場合に安全仮想カメラに切り替えるようにしてもよいし、常に安全仮想カメラに切り替えるようにしてもよい。
【００２５】
（４）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
仮想カメラ又はアクティブ仮想カメラと障害物オブジェクトが所定の距離以上離れていないと判定した場合には、１人称視点に切り替える手段を含むことを特徴とする。
【００２６】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて説明する。
【００２７】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を何ら限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００２８】
１．  構成
図１に、本実施形態の画像生成システム（例えばゲームシステム）の機能ブロック図の一例を示す。
【００２９】
なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１７０、或いは処理部１００と記憶部１７０と情報記憶媒体１８０を含めばよく）、それ以外のブロック（例えば操作部１６０、表示部１９０、音出力部１９２、携帯型情報記憶装置１９４、通信部１９６）については、任意の構成要素とすることができる。
【００３０】
ここで処理部１００は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、又は音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、或いはＡＳＩＣ（ゲートアレイ等）などのハードウェアや、所与のプログラム（ゲームプログラム）により実現できる。
【００３１】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、筐体などのハードウェアにより実現できる。
【００３２】
記憶部１７０は、メインメモリ（主記憶部等）１７２やフレームバッファ（描画バッファ等）１７４等を含み、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００３３】
情報記憶媒体（コンピュータにより使用可能な記憶媒体）１８０は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納される情報に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１８０には、本発明（本実施形態）の手段（特に処理部１００に含まれるブロック）を実行するための情報（プログラム或いはデータ）が格納される。
【００３４】
なお、情報記憶媒体１８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１７０に転送されることになる。また情報記憶媒体１８０に記憶される情報は、本発明の処理を行うためのプログラム、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも１つを含むものである。
【００３５】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００３６】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００３７】
携帯型情報記憶装置１９４は、プレーヤの個人データやセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００３８】
通信部１９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３９】
なお本発明（本実施形態）の手段を実行するためのプログラム或いはデータは、ホスト装置（サーバ）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０に配信するようにしてもよい。このようなホスト装置（サーバ）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００４０】
処理部１００は、ゲーム処理部１１０、交差部分検出処理部（シャドーボリューム処理部）１２０、画像生成部１３０、音生成部１５０を含む。
【００４１】
ここでゲーム処理部１１０は、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ面）の位置や回転角度（Ｘ、Ｙ又はＺ軸回りの回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバ処理などの種々のゲーム処理を、操作部１６０からの操作データや、携帯型情報記憶装置１９４からの個人データ、保存データや、ゲームプログラムなどに基づいて行う。
【００４２】
ゲーム処理部１１０は、仮想カメラ移動処部１２０，仮想カメラ切り替え処理部１２２、１人称切り替え処理部１２４を含む。
【００４３】
仮想カメラ移動処部１２０は，仮想カメラと、障害物オブジェクトが所定の距離以上離れているか否かを所定のサイクルで判定し、判定結果に基づき、仮想カメラが障害物オブジェクトから離れる方向に仮想カメラを移動させる処理を行う。
仮想カメラ切り替え処理部１２２は、現在使用している仮想カメラであるアクティブ仮想カメラと、障害物オブジェクトが所定の距離以上離れているか否かを所定のサイクルで判定し、判定結果に基づき、アクティブ仮想カメラを障害物オブジェクトから所定の距離以上離れている他の仮想カメラに切り替える処理を行う。
【００４４】
また障害物オブジェクトに対して常に安全位置に配置されるように設定された仮想カメラである安全仮想カメラを予め用意しておき、アクティブ仮想カメラと障害物オブジェクトが所定の距離以上離れているか否かを所定のサイクルで判定し、判定結果に基づき、安全仮想カメラをアクティブ仮想カメラに切り替える処理を行うようにしてもよい。
【００４５】
１人称切り替え処理部１２４は、仮想カメラ又はアクティブ仮想カメラと障害物オブジェクトが所定の距離以上離れていないと判定した場合には、１人称視点に切り替える処理を行う。
【００４６】
画像生成部１３０は、ゲーム処理部１１０からの指示等にしたがって各種の画像処理を行い、例えばオブジェクト空間内で仮想カメラ（視点）から見える画像を生成して、表示部１９０に出力する。画像生成部１３０は、レンダリング手段として機能する。
【００４７】
画像生成部１３０は、ジオメトリ処理部（３次元演算部）１３２、描画部（レンダリング部）１４０を含む。
【００４８】
ここで、ジオメトリ処理部１３２は、座標変換、クリッピング処理、透視変換、或いは光源計算などの種々のジオメトリ処理（３次元演算）を行う。そして、本実施形態では、ジオメトリ処理後（透視変換後）のオブジェクトデータ（オブジェクトの頂点座標、頂点テクスチャ座標、或いは輝度データ等）は、記憶部１７０の主記憶部１７２に格納されて、保存される。
【００４９】
描画部１４０は、ジオメトリ処理後（透視変換後）のオブジェクトデータと、記憶部１７０に記憶されるテクスチャとに基づいて、オブジェクトを描画バッファ１７４に描画する。これにより、オブジェクトが移動するオブジェクト空間において、仮想カメラ（視点）から見える画像が描画（生成）されるようになる。
【００５０】
音生成部１５０は、ゲーム処理部１１０からの指示等にしたがって各種の音処理を行い、ＢＧＭ、効果音、又は音声などの音を生成し、音出力部１９２に出力する。
【００５１】
なお、ゲーム処理部１１０、交差検出部１２０、交差領域検出部１２２，移動軌跡ボリューム設定部１２４、画像生成部１３０、音生成部１５０の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００５２】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００５３】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末を用いて生成してもよい。
【００５４】
２．  本実施の形態の特徴
図２〜図４は、本の実施の形態の仮想カメラと障害物オブジェクトの距離の判定パターンについて説明するための図である。
【００５５】
図２（Ａ）（Ｂ）は、仮想カメラと障害物オブジェクトの距離をそれぞれの代表点で判定する例について説明するための図である。
【００５６】
図２（Ａ）のように、仮想カメラ２１０の座標を（Ｘｃ，  Ｙｃ，  Ｚｃ）とし、障害物オブジェクト２２０の座標を（Ｘｔ，  Ｙｔ，  Ｚｔ）とする。
【００５７】
ここで仮想カメラと障害物オブジェクトが所定の距離内にあるかいなかの判定は仮想２１０カメラの中心（代表点）から障害物オブジェクトの中心（代表点）間での距離ｄと、予め設定しておいた距離Ｄの比較により図２（Ｂ）に示すようにして仮想カメラの移動又はアクティブ仮想カメラの切り替えの有無を判定することができる。
【００５８】
また距離Ｄは障害物オブジェクトごとに設定してもよいし、すべての障害物オブジェクトに共通に使用するようにしてもよい。
【００５９】
図３（Ａ）（Ｂ）は、仮想カメラと障害物オブジェクトの距離をそれぞれの代表点と線で判定する例について説明するための図である。
【００６０】
仮想カメラと高い壁などの障害物オブジェクト２３０については、Ｙ方向の座標は無視でき平面方向のみ対して判定を下す場合、図３（Ａ）のように、仮想カメラ２１０の座標を（Ｘｃ，  Ｚｃ）とし、障害物オブジェクト２３０の淵を表す直線２３２の式をαＸｔ  ＋βＺｔ  ＋γ＝０とする。仮想カメラ２１０と障害物オブジェクト２３０が所定の距離内にあるかいなかの判定は仮想カメラ２１０の中心（代表点）から障害物の淵を表す直線までの距離ｄと、予め設定しておいた距離Ｄの比較により、図３（Ｂ）に示すようにして、仮想カメラの移動又はアクティブ仮想カメラの切り替えの有無を判定することができる。
【００６１】
また距離Ｄは障害物オブジェクトごとに設定してもよいし、すべての障害物オブジェクトに共通に使用するようにしてもよい。
【００６２】
図４（Ａ）（Ｂ）は、仮想カメラと障害物オブジェクトの距離をそれぞれの代表点と面で判定する例について説明するための図である。
【００６３】
図４（Ａ）に示すように、仮想カメラ２１０の座標を（Ｘｃ，  Ｙｃ，  Ｚｃ）とし、障害物オブジェクト２４０の淵を表す平面の式をαＸｔ  ＋βＹｔ  ＋γＺｔ  ＋δ＝０とする。仮想カメラ２１０と障害物オブジェクト２３０が所定の距離内にあるかいなかの判定は仮想カメラ２１０の中心（代表点）から障害物オブジェクト２４０の淵を表す平面２４２までの距離ｄと予め設定しておいた距離Ｄの比較により、図３（Ｂ）に示すようにして、仮想カメラの移動又はアクティブ仮想カメラの切り替えの有無を判定することができる。
【００６４】
図５〜図８は本実施の形態の仮想カメラ移動の移動処理の移動パターンについて説明するための図である。
【００６５】
図５は車両搭載の仮想カメラと壁などの障害物オブジェクトが所定距離内に近づいた場合の移動パターンの一例である。
【００６６】
図５に示すように車３２０に付随する（追従して移動する）仮想カメラ３１０’が壁などの障害物オブジェクト３３０に接近しすぎるとき（例えば図３又は図４で説明した切換え判定を用いて判定することができる）、仮想カメラ３１０’を障害物オブジェクト３３０から遠ざかる方向３４０へ移動させる。この結果仮想カメラは３１０に移動し、壁などの障害物オブジェクト３３０に接近しすぎるのを防ぐことができる。
【００６７】
図６は車両搭載の仮想カメラと他の車の障害物オブジェクトが所定距離内に近づいた場合の移動パターンの一例である。
【００６８】
図６に示すように車３２０に付随する（追従して移動する）仮想カメラ（３１０，３１０’）が敵車などの障害物オブジェクト３３０に接近しすぎるとき（例えば図２又は図３又は図４で説明した切換え判定を用いて判定することができる）、仮想カメラ３１０’を障害物オブジェクト３３０から遠ざかる方向３４０へ移動させる。この結果仮想カメラは３１０に移動して、他の車の障害物オブジェクト３３０に接近しすぎるての不自然な画像が生成されるのをさけることができる。
【００６９】
図７は車に付随する仮想カメラが坂道（障害物オブジェクト）にさしかかった場合の移動パターンの一例である。
【００７０】
図７に示すように車３２０に付随する（追従して移動する）仮想カメラ（３１０，３１０’）が坂道（障害物オブジェクト）にさしかかったか否か判定し（例えば図４で説明した切換え判定を用いて判定することができる）、仮想カメラ３１０’を障害物オブジェクト３３０から遠ざかる方向３４０へ移動させる。この結果仮想カメラは３１０に移動して、路面に接近しすぎて不自然な画像が生成されるのをさけることができる。
【００７１】
図８は車に付随する仮想カメラが壁等の複数の障害物オブジェクトに接近しすぎる場合の移動パターンの一例である。
【００７２】
図８に示すように車３２０に付随する（追従して移動する）仮想カメラ（３１０，３１０’）が壁等の複数の障害物オブジェクト３３０−１、３３０−２にさしかかったか否か判定し（例えば、図３、図４で説明した切換え判定を用いて判定することができる）、仮想カメラ３１０’を壁等の障害物オブジェクト３３０−１、３３０−２から遠ざかる方向３４０へ移動させる。この結果仮想カメラは３１０に移動して、壁に接近しすぎて不自然な画像が生成されるのを避けることができる。
【００７３】
また仮想カメラが逃げる場所が存在しないときは、後述する安全カメラに切り替えるようにしてもよい。
【００７４】
図９〜図１２は本実施の形態において複数の仮想カメラを有しアクティブ仮想カメラを切り替える仮想カメラ切り替え処理の切り替えパターンについて説明するための図である。
【００７５】
図９は車両搭載の仮想カメラと壁などの障害物オブジェクトが所定距離内に近づいた場合の切り替えパターンの一例である。
【００７６】
図９に示すように車４２０に付随する（追従して移動する）仮想カメラ４１０−１がアクティブ仮想カメラである場合、アクティブ仮想カメラが壁などの障害物オブジェクト４３０に接近しすぎるとき（例えば図３又は図４で説明した切換え判定を用いて判定することができる）、前もって設定されている他の仮想カメラ４１０−２、４１０−３の中から壁等の障害物オブジェクト４３０からより遠いところになる仮想カメラを検索し、その仮想カメラ（例えば４１０−３）をアクティブ仮想カメラに切り替える。この結果アクティブ仮想カメラは仮想カメラ４１０−３に切り替わり、壁などの障害物オブジェクト４３０に接近しすぎて不自然な画像が生成されるのを避けることができる。
【００７７】
図１０は車両搭載の仮想カメラと他の車の障害物オブジェクトが所定距離内に近づいた場合の切り替えパターンの一例である。
【００７８】
図１０に示すように車４２０に付随する（追従して移動する）仮想カメラ４１０−１がアクティブ仮想カメラである場合、アクティブ仮想カメラが適車などの障害物オブジェクト４３０に接近しすぎるとき（例えば図２又は図３又は図４で説明した切換え判定を用いて判定することができる）、前もって設定されている他の仮想カメラ４１０−２、４１０−３の中から敵車等の障害物オブジェクト４３０からより遠いところになる仮想カメラを検索し、その仮想カメラ（例えば４１０−２）をアクティブ仮想カメラに切り替える。この結果アクティブ仮想カメラは仮想カメラ４１０−２に切り替わり、壁などの障害物オブジェクト４３０に接近しすぎて不自然な画像が生成されるのを避けることができる。
【００７９】
図１１は車に付随する仮想カメラが坂道（障害物オブジェクト）にさしかかった場合の切り替えパターンの一例である。
【００８０】
図１１に示すように車４２０に付随する（追従して移動する）仮想カメラ４１０−１がアクティブ仮想カメラである場合、アクティブ仮想カメラが坂道（障害物オブジェクト４３０）にさしかかったときに道路の路面に接近しすぎるとき（例えば図４で説明した切換え判定を用いて判定することができる）、前もって設定されている他の仮想カメラ４１０−２、４１０−３の中から道路等の障害物オブジェクト４３０からより遠いところになる仮想カメラを検索し、その仮想カメラ（例えば４１０−２）をアクティブ仮想カメラに切り替える。この結果アクティブ仮想カメラは仮想カメラ４１０−２に切り替わり、坂道等で路面等の障害物オブジェクト４３０に接近しすぎて不自然な画像が生成されるのを避けることができる。
【００８１】
図１２は車に付随する仮想カメラが壁等の複数の障害物オブジェクトに接近しすぎる場合の移動パターンの一例である。
【００８２】
図１２に示すように車４２０に付随する（追従して移動する）仮想カメラ４１０−１がアクティブ仮想カメラである場合、アクティブ仮想カメラが壁等の複数の障害物オブジェクト４３０−１、４３０−２に接近しすぎるとき（例えば図３又は図４で説明した切換え判定を用いて判定することができる）、前もって設定されている他の仮想カメラ４１０−２、４１０−３の中から壁等の複数の障害物オブジェクト４３０−１、４３０−２からより遠いところになる仮想カメラを検索し、その仮想カメラ（例えば４１０−２）をアクティブ仮想カメラに切り替える。この結果アクティブ仮想カメラは仮想カメラ４１０−２に切り替わり、壁等の複数の障害物オブジェクト４３０−１、４３０−２に接近しすぎて不自然な画像が生成されるのを避けることができる。
【００８３】
またまたすべての障害物オブジェクトから十分遠い位置にあるカメラが存在しないときはアクティブ仮想カメラを、後述する安全カメラに切り替えるようにしてもよい。
【００８４】
本実施の形態では、障害物オブジェクトに対して常に安全位置に配置されるように設定された仮想カメラである安全仮想カメラを予め用意しておき、アクティブ仮想カメラと障害物オブジェクトが所定の距離以上離れているか否かを所定のサイクルで判定し、判定結果に基づき、安全仮想カメラをアクティブ仮想カメラに切り替える処理を行う。
【００８５】
安全仮想カメラとは障害物オブジェクトとアクティブ仮想カメラが接近しすぎる（アクティブ仮想カメラと障害物オブジェクトが所定の距離以上離れていない）のを避けるために行われる仮想カメラ切換えに使用される仮想カメラで、必ずすべての障害物オブジェクトからの距離が一定以上離れている仮想カメラのことである。
【００８６】
図１３は、安全仮想カメラの一例である１人称仮想カメラについての説明するための図である。
【００８７】
一人称仮想カメラ５１０はプレーヤカー５２０の中に置かれる。一人称仮想カメラ５１０がアクティブ仮想カメラで有る場合には、障害物オブジェクト５３０から一人称仮想カメラ５１０への距離が一定以下になることがないので  （プレーヤカー５２０が先に障害物オブジェクト５３０へ接触し、障害物オブジェクト５３０から一人称仮想カメラ５１０への距離がプレーヤカー５２０のボディーから一人称仮想カメラ５１０への距離より小さくなることがないため）、安全仮想カメラとして使用することができる。
【００８８】
なお１人称仮想カメラに切り替えることは１人称視点に切り替えること同義である。
【００８９】
図１４は、安全仮想カメラの一例である上空仮想カメラについての説明するための図である。
【００９０】
上空仮想カメラ５５０は障害物オブジェクト５３０やプレーヤカーや敵車等の移動体５２０がいけないはるか上空にあるため、すべての障害物オブジェクトからの距離が一定以下になることがないので、安全仮想カメラとして使用することができる。
【００９１】
図１５は、安全仮想カメラの一例である遠方仮想カメラについての説明するための図である。
【００９２】
遠方仮想カメラ５６０は建物の上や、スタンドなど、車などの移動体が入れない場所５６０に配置された仮想カメラである。遠方仮想カメラ５６０は、移動しない固定仮想カメラなので、すべての障害物オブジェクト（例えば車５２０等）から遠方仮想カメラ５６０への距離が一定以下になることがないので、安全仮想カメラとして使用することができる。
【００９３】
図１６は、本実施の形態の仮想カメラの移動処理の一例について説明するためのフローチャート図である。
【００９４】
本実施の形態では以下の処理を、所定のサイクルで繰り返し行っている。
【００９５】
仮想カメラがすべての障害物オブジェクトから所定距離以上離れているか否か判定し、離れていない場合には以下の処理を行う（ステップＳ１０）。
【００９６】
まずすべての障害ものオブジェクトから所定の距離を保てる移動位置を探す（ステップＳ２０）。
【００９７】
そしてすべての障害物オブジェクトから所定の距離を保てる移動位置が見つかった場合には、仮想カメラを当該移動位置へ移動させる（ステップＳ３０，Ｓ４０）。
【００９８】
またすべての障害物オブジェクトから所定の距離を保てる移動位置が見つからない場合には、仮想カメラを予め設定されている安全仮想カメラに切り替える（ステップＳ３０，Ｓ５０）。
【００９９】
図１７は、本実施の形態の仮想カメラの切り替え処理の一例について説明するためのフローチャート図である。
【０１００】
本実施の形態では以下の処理を、所定のサイクルで繰り返し行っている。
【０１０１】
アクティブ仮想カメラがすべての障害物オブジェクトから所定距離以上離れているか否か判定し、離れていない場合には以下の処理を行う（ステップＳ１１０）。
【０１０２】
まずすべての障害物オブジェクトから所定距離以上離れている仮想カメラを探す（ステップＳ１２０）。
【０１０３】
そしてすべての障害物オブジェクトから所定距離以上離れている仮想カメラが見つかった場合には、アクティブ仮想カメラを当該仮想カメラに切り替える（ステップＳ１３０，Ｓ１４０）。
【０１０４】
またすべての障害物オブジェクトから所定距離以上離れている仮想カメラが見つからない場合には、アクティブ仮想カメラを安全仮想カメラに切り替える（ステップＳ１３０，Ｓ１５０）。
【０１０５】
３．  ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図１８を用いて説明する。
【０１０６】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【０１０７】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１０８】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０１０９】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、ＭＰＥＧ方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【０１１０】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ（プリミティブ面）で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すとともに、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０１１１】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０１１２】
ゲームコントローラ９４２（レバー、ボタン、筺体、パッド型コントローラ又はガン型コントローラ等）からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０１１３】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０１１４】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０１１５】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０１１６】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０１１７】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【０１１８】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実現（実行）してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１１９】
そして、本発明の各手段をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実現するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示するとともに、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各手段を実現することになる。
【０１２０】
図１９（Ａ）に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、レバー１１０２、ボタン１１０４等を操作してゲームを楽しむ。内蔵されるシステムボード（サーキットボード）１１０６には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報（プログラム或いはデータ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、この情報を格納情報と呼ぶ。
【０１２１】
図１９（Ｂ）に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２、１２０４を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９等に格納されている。
【０１２２】
図１９（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）を介して接続される端末１３０４−１〜１３０４−ｎとを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。端末１３０４−１〜１３０４−ｎが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４−１〜１３０４−ｎに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４−１〜１３０４−ｎに伝送し端末において出力することになる。
【０１２３】
なお、図１９（Ｃ）の構成の場合に、本発明の各手段を、ホスト装置（サーバ）と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置（サーバ）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０１２４】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であるとともに家庭用ゲームシステムとの間でも情報のやり取りが可能な携帯型情報記憶装置（メモリカード、携帯型ゲーム装置）を用いることが望ましい。
【０１２５】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１２６】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１２７】
また、本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０１２８】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム（ゲームシステム）に適用できる。
【図面の簡単な説明】
【図１】本実施形態の画像生成システム（例えばゲームシステム）の機能ブロック図の一例である。
【図２】図２（Ａ）（Ｂ）は、仮想カメラと障害物オブジェクトの距離をそれぞれの代表点で判定する例について説明するための図である。
【図３】図３（Ａ）（Ｂ）は、仮想カメラと障害物オブジェクトの距離をそれぞれの代表点と線で判定する例について説明するための図である。
【図４】図４（Ａ）（Ｂ）は、仮想カメラと障害物オブジェクトの距離をそれぞれの代表点と辺で判定する例について説明するための図である。
【図５】車両搭載の仮想カメラと壁などの障害物オブジェクトが所定距離内に近づいた場合の移動パターンの一例である。
【図６】車両搭載の仮想カメラと他の車の障害物オブジェクトが所定距離内に近づいた場合の移動パターンの一例である。
【図７】車に付随する仮想カメラが坂道（障害物オブジェクト）にさしかかった場合の移動パターンの一例である。
【図８】車に付随する仮想カメラが壁等の複数の障害物オブジェクトに接近しすぎる場合の移動パターンの一例である。
【図９】車両搭載の仮想カメラと壁などの障害物オブジェクトが所定距離内に近づいた場合の切り替えパターンの一例である。
【図１０】車両搭載の仮想カメラと他の車の障害物オブジェクトが所定距離内に近づいた場合の切り替えパターンの一例である。
【図１１】車に付随する仮想カメラが坂道（障害物オブジェクト）にさしかかった場合の切り替えパターンの一例である。
【図１２】車に付随する仮想カメラが壁等の複数の障害物オブジェクトに接近しすぎる場合の移動パターンの一例である。
【図１３】安全仮想カメラの一例である１人称仮想カメラについての説明するための図である。
【図１４】安全仮想カメラの一例である上空仮想カメラについての説明するための図である。
【図１５】安全仮想カメラの一例である遠方仮想カメラについての説明するための図である。
【図１６】本実施の形態の仮想カメラの移動処理の一例について説明するためのフローチャート図である。
【図１７】本実施の形態の仮想カメラの切り替え処理の一例について説明するためのフローチャート図である。
【図１８】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図１９】図１９（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
１００  処理部
１１０  ゲーム処理部
１２０  仮想カメラ移動処理部
１２２  仮想カメラ切り替え処理部
１２４  １人称視点切り替え処理部
１３０  画像生成部
１３２  ジオメトリ処理部
１４０  描画部
１５０  音生成部
１６０  操作部
１７０  記憶部
１７２  メインメモリ（主記憶部）
１７４  フレームバッファ（描画バッファ）
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  携帯型情報記憶装置
１９６  通信部
【図１】
2004341572.tif 000003
【図２】
2004341572.tif 000004
【図３】
2004341572.tif 000005
【図４】
2004341572.tif 000006
【図５】
2004341572.tif 000007
【図６】
2004341572.tif 000008
【図７】
2004341572.tif 000009
【図８】
2004341572.tif 000010
【図９】
2004341572.tif 000011
【図１０】
2004341572.tif 000012
【図１１】
2004341572.tif 000013
【図１２】
2004341572.tif 000014
【図１３】
2004341572.tif 000015
【図１４】
2004341572.tif 000016
【図１５】
2004341572.tif 000017
【図１６】
2004341572.tif 000018
【図１７】
2004341572.tif 000019
【図１８】
2004341572.tif 000020
【図１９】
2004341572.tif 000021