(57)【特許請求の範囲】
【請求項１】
オブジェクト空間内のオブジェクト同士の衝突判定を行う衝突判定処理と、衝突したと判定されたオブジェクトに作用する物理量を演算する衝突応答処理とを行う物理演算部と、
前記物理演算部の演算結果に基づきオブジェクトをオブジェクト空間内で移動させる制御を行う移動制御部としてコンピュータを機能させ、
前記物理演算部は、
オブジェクト空間内のオブジェクトについて第１の衝突判定処理を行い、前記第１の衝突判定処理で衝突したと判定された場合に、所定の条件が満たされたか否かを判断し、前記所定の条件が満たされたと判断した場合には、前記第１の衝突判定処理で衝突したと判定されたオブジェクトについて第１の衝突応答処理を行い、前記所定の条件が満たされていないと判断した場合には、前記第１の衝突判定処理で衝突したと判定されたオブジェクトについて前記第１の衝突判定処理よりも処理負荷の高い第２の衝突判定処理を行い、前記第２の衝突判定処理で衝突したと判定されたオブジェクトについて前記第１の衝突応答処理とは異なる種類の衝突応答処理であって前記第１の衝突応答処理よりも処理負荷の高い第２の衝突応答処理を行い、
前記所定の条件は、前記第１の衝突判定処理で衝突したと判定されたオブジェクトの仮想カメラからの距離、又は仮想カメラとの位置関係に関する条件であることを特徴とするプログラム。
【請求項２】
請求項１において、
前記第１の衝突判定処理は、オブジェクトを球体で近似して衝突判定を行う処理であることを特徴とするプログラム。
【請求項３】
請求項２において、
前記物理演算部は、
前記所定の条件が満たされたと判断した場合に、前記第１の衝突判定処理で衝突したと判定されたオブジェクトについて、オブジェクトを複数の球体で近似して衝突判定を行う第３の衝突判定処理を行い、前記第３の衝突判定処理で衝突したと判定されたオブジェク
トについて前記第１の衝突応答処理、又は前記第１の衝突応答処理よりも処理負荷が高く前記第２の衝突応答処理よりも処理負荷の低い第３の衝突応答処理のいずれかを行うことを特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれか１項において、
オブジェクトの立体視画像を生成する画像生成部として更にコンピュータを機能させ、
前記所定の条件は、前記第１の衝突判定処理で衝突したと判定されたオブジェクトが、オブジェクト空間内の投影面よりも仮想カメラから見て手前側のエリアに位置するか否かに関する条件であることを特徴とするプログラム。
【請求項５】
請求項１乃至４のいずれか１項において、
オブジェクト同士の衝突の演出処理を行う演出部として更にコンピュータを機能させ、
前記演出部は、
前記所定の条件が満たされたか否かの判断結果に応じて処理負荷の異なる演出処理を行うことを特徴とするプログラム。
【請求項６】
オブジェクト空間内のオブジェクト同士の衝突判定を行う衝突判定処理と、衝突したと判定されたオブジェクトに作用する物理量を演算する衝突応答処理とを行う物理演算部と、
前記物理演算部の演算結果に基づきオブジェクトをオブジェクト空間内で移動させる制御を行う移動制御部とを含み、
前記物理演算部は、
オブジェクト空間内のオブジェクトについて第１の衝突判定処理を行い、前記第１の衝突判定処理で衝突したと判定された場合に、所定の条件が満たされたか否かを判断し、前記所定の条件が満たされたと判断した場合には、前記第１の衝突判定処理で衝突したと判定されたオブジェクトについて第１の衝突応答処理を行い、前記所定の条件が満たされていないと判断した場合には、前記第１の衝突判定処理で衝突したと判定されたオブジェクトについて前記第１の衝突判定処理よりも処理負荷の高い第２の衝突判定処理を行い、前記第２の衝突判定処理で衝突したと判定されたオブジェクトについて前記第１の衝突応答処理とは異なる種類の衝突応答処理であって前記第１の衝突応答処理よりも処理負荷の高い第２の衝突応答処理を行い、
前記所定の条件は、前記第１の衝突判定処理で衝突したと判定されたオブジェクトの仮想カメラからの距離、又は仮想カメラとの位置関係に関する条件であることを特徴とするゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及びゲームシステムに関する。
【背景技術】
【０００２】
従来から、仮想的な３次元空間であるオブジェクト空間内の所与の視点から見える画像を生成するゲームシステムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。このようなゲームシステムでは、移動体の衝突によるオブジェクトの破壊を表現するために、オブジェクトを構成する破片に移動力を与えて物理法則に沿った移動制御を行うものが知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１１９２２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このようなゲームシステムでは、物理演算の対象となるオブジェクトが多い場合に、正確な衝突判定や衝突応答の処理を行おうとすると、処理負荷が増大してしまうという問題点がある。
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、物理演算の処理負荷を効果的に低減させることが可能なプログラム、情報記憶媒体及びゲームシステムを提供することにある。
【課題を解決するための手段】
【０００６】
（１）本発明に係るプログラムは、
オブジェクト空間内のオブジェクト同士の衝突判定を行う衝突判定処理と、衝突したと判定されたオブジェクトに作用する物理量を演算する衝突応答処理とを行う物理演算部と、
前記物理演算部の演算結果に基づきオブジェクトをオブジェクト空間内で移動させる制御を行う移動制御部としてコンピュータを機能させ、
前記物理演算部は、
オブジェクト空間内のオブジェクトについて第１の衝突判定処理を行い、前記第１の衝突判定処理で衝突したと判定された場合に、所定の条件が満たされたか否かを判断し、前記所定の条件が満たされたと判断した場合には、前記第１の衝突判定処理で衝突したと判定されたオブジェクトについて第１の衝突応答処理を行い、前記所定の条件が満たされていないと判断した場合には、前記第１の衝突判定処理で衝突したと判定されたオブジェクトについて前記第１の衝突判定処理よりも処理負荷の高い第２の衝突判定処理を行い、前記第２の衝突判定処理で衝突したと判定されたオブジェクトについて前記第１の衝突応答処理よりも処理負荷の高い第２の衝突応答処理を行うプログラムに関する。
【０００７】
また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるためのプログラムを記憶した情報記憶媒体に関する。また本発明は、上記各部を含むゲームシステムに関する。
【０００８】
本発明によれば、処理負荷の高い第２の衝突判定処理及び第２の衝突応答処理を行う場合と、処理負荷の高い第２の衝突判定処理を省略し且つ処理負荷の低い第１の衝突応答処理を行う場合とを、条件分岐により切り替えることで、物理演算の処理負荷を効果的に低減させることができる。
【０００９】
（２）また本発明に係るプログラム、情報記憶媒体及びゲームシステムでは、
第１の衝突判定処理は、オブジェクトを球体で近似して衝突判定を行う処理でもよい。
【００１０】
本発明によれば、第１の衝突判定の処理負荷を低減させることができる。
【００１１】
（３）また本発明に係るプログラム、情報記憶媒体及びゲームシステムでは、
前記物理演算部は、
前記所定の条件が満たされたと判断した場合に、前記第１の衝突判定処理で衝突したと判定されたオブジェクトについて、オブジェクトを複数の球体で近似して衝突判定を行う第３の衝突判定処理を行い、前記第３の衝突判定処理で衝突したと判定されたオブジェクトについて前記第１の衝突応答処理、又は前記第１の衝突応答処理よりも処理負荷が高く前記第２の衝突応答処理よりも処理負荷の低い第３の衝突応答処理のいずれかを行うようにしてもよい。
【００１２】
本発明によれば、物理演算の処理負荷を条件分岐により多段階で変化させることができ、物理演算の処理負荷をより効果的に低減させることができる。
【００１３】
（４）また本発明に係るプログラム、情報記憶媒体及びゲームシステムでは、
前記所定の条件は、前記第１の衝突判定処理で衝突したと判定されたオブジェクトの仮想カメラからの距離、又は仮想カメラとの位置関係に関する条件でもよい。
【００１４】
本発明によれば、例えば、仮想カメラからの距離が大きいオブジェクト、或いは、ビューボリューム内に位置しないオブジェクトについての物理演算の処理負荷を低減して物理演算の処理負荷を効果的に低減させることができる。
【００１５】
（５）また本発明に係るプログラム及び情報記憶媒体では、
オブジェクトの立体視画像を生成する画像生成部として更にコンピュータを機能させ、
前記所定の条件は、前記第１の衝突判定処理で衝突したと判定されたオブジェクトが、オブジェクト空間内の投影面よりも仮想カメラから見て手前側のエリアに位置するか否かに関する条件でもよい。
【００１６】
また本発明に係るゲームシステムでは、
オブジェクトの立体視画像を生成する画像生成部を更に含み、
前記所定の条件は、前記第１の衝突判定処理で衝突したと判定されたオブジェクトが、オブジェクト空間内の投影面よりも仮想カメラから見て手前側のエリアに位置するか否かに関する条件でもよい。
【００１７】
本発明によれば、立体視画像を生成する場合に、例えば、プレーヤが立体視感をより強く感じる飛び出し空間を再現する領域（オブジェクト空間内の投影面よりも仮想カメラから見て手前側のエリア）に位置するオブジェクト以外のオブジェクトについての物理演算の処理負荷を低減して物理演算の処理負荷を効果的に低減させることができる。
【００１８】
（６）また本発明に係るプログラム、情報記憶媒体及びゲームシステムでは、
前記所定の条件は、前記第１の衝突判定処理で衝突したと判定されたオブジェクトの仮想カメラから見たときの画像サイズに関する条件でもよい。
【００１９】
本発明によれば、例えば、仮想カメラから見たときの画像サイズが小さいオブジェクトについての物理演算の処理負荷を低減して物理演算の処理負荷を効果的に低減させることができる。
【００２０】
（７）また本発明に係るプログラム、情報記憶媒体及びゲームシステムでは、
前記所定の条件は、前記第１の衝突判定処理で衝突したと判定されたオブジェクトの透明度に関する条件でもよい。
【００２１】
本発明によれば、例えば、透明度が高いオブジェクトについての物理演算の処理負荷を低減して物理演算の処理負荷を効果的に低減させることができる。
【００２２】
（８）また本発明に係るプログラム、情報記憶媒体及びゲームシステムでは、
前記所定の条件は、前記第１の衝突判定処理で衝突したと判定されたオブジェクトの速度に関する条件でもよい。
【００２３】
本発明によれば、例えば、速度が大きいオブジェクトについての物理演算の処理負荷を低減して物理演算の処理負荷を効果的に低減させることができる。
【００２４】
（９）また本発明に係るプログラム、情報記憶媒体及びゲームシステムでは、
前記所定の条件は、前記第１の衝突判定処理で衝突したと判定されたオブジェクトに設定された属性に関する条件でもよい。
【００２５】
本発明によれば、例えば、属性としての重要度が低いオブジェクトについての物理演算の処理負荷を低減して物理演算の処理負荷を効果的に低減させることができる。
【００２６】
（１０）また本発明に係るプログラム、情報記憶媒体及びゲームシステムでは、
前記所定の条件は、衝突判定処理時の処理負荷に関する条件でもよい。
【００２７】
本発明によれば、例えば、処理負荷の高い場合に、オブジェクトの物理演算に係る処理負荷を低減させることができる。
【００２８】
（１１）また本発明に係るプログラム、情報記憶媒体及びゲームシステムでは、
前記所定の条件は、オブジェクト空間内のオブジェクトの数に関する条件でもよい。
【００２９】
本発明によれば、例えば、オブジェクトの数が多い場合に、オブジェクトの物理演算に係る物理演算の処理負荷を低減させることができる。
【００３０】
（１２）また本発明に係るプログラム及び情報記憶媒体では、
オブジェクト同士の衝突の演出処理を行う演出部として更にコンピュータを機能させ、
前記演出部は、
前記所定の条件が満たされたか否かの判断結果に応じて処理負荷の異なる演出処理を行ってもよい。
【００３１】
また本発明に係るゲームシステムでは、
オブジェクト同士の衝突の演出処理を行う演出部を更に含み、
前記演出部は、
前記所定の条件が満たされたか否かの判断結果に応じて処理負荷の異なる演出処理を行ってもよい。
【００３２】
本発明によれば、処理負荷の高い演出処理を行う場合と、処理負荷の低い演出処理を行う場合とを、条件分岐により切り替えることで、演出演算の処理負荷を効果的に低減させることができる。
【図面の簡単な説明】
【００３３】
【図１】本実施形態のゲームシステムの機能ブロック図の一例を示す図。
【図２】物理演算の処理ステップの一例について説明するための図。
【図３】図３（Ａ）、図３（Ｂ）、図３（Ｃ）、図３（Ｄ）、図３（Ｅ）は衝突判定領域について説明するための図。
【図４】ペナルティ法を用いた衝突応答処理について説明するための図。
【図５】物理演算の処理ステップの他の例について説明するための図。
【図６】衝突判定領域について説明するための図。
【図７】分岐条件について説明するための図。
【図８】分岐条件について説明するための図。
【図９】分岐条件について説明するための図。
【図１０】本実施形態の処理の流れを示すフローチャート図。
【図１１】本実施形態の処理の流れを示すフローチャート図。
【発明を実施するための形態】
【００３４】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３５】
１．機能ブロック図
図１に第１の実施の形態のゲームシステム（ゲーム装置）の機能ブロック図の一例を示す。なお本実施形態のゲームシステムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００３６】
操作部１６０は、プレーヤが操作情報（操作データ）を入力するためのものであり、ユーザの操作情報を処理部１００に出力する。操作部１６０の機能は、ボタン、方向キー（十字キー）、方向入力可能なコントロールスティック（アナログキー）、レバー、キーボード、マウス、タッチパネル型ディスプレイ、加速度センサや傾きセンサ等を内蔵するコントローラなどのハードウェアにより実現することができる。
【００３７】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。そして、本実施形態の記憶部１７０は、ワーク領域として使用される主記憶部１７２と、最終的な表示画像等が記憶される描画バッファ１７４と、オブジェクトのモデルデータが記憶されるオブジェクトデータ記憶部１７６と、各オブジェクトデータ用のテクスチャが記憶されるテクスチャ記憶部１７８と、オブジェクトの画像の生成処理時にＺ値が記憶されるＺバッファ１７９とを含む。なお、これらの一部を省略する構成としてもよい。
【００３８】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。情報記憶媒体１８０には、本実施形態の処理部１００の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）を記憶することができる。
【００３９】
表示部１９０は、本実施形態により生成された画像（オブジェクト空間を所与の視点から見た画像）を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはタッチパネル型ディスプレイなどにより実現できる。
【００４０】
なお表示部１９０は、立体視画像を表示するようにしてもよい。例えば、裸眼方式では、表示部１９０は、有限個の画素からなるＬＣＤの前面又は背面に、パララックスバリアやレンチキュラ等の光学素子が配置される。例えば、垂直バリアまたは垂直レンチキュラによる２眼式の場合には、表示部１９０に、１枚（１フレーム）の左眼用画像を表示するための表示領域と、１枚の右眼用画像を表示するための表示領域とが、短冊状に左眼用短冊画像表示領域及び右眼用短冊画像表示領域として交互に配置されている。パララックスバリアが配置される場合、その隙間からは、プレーヤの左眼には左眼用短冊画像表示領域に表示される左眼用短冊画像、右眼には右眼用短冊画像表示領域に表示される右眼用短冊画像のみが見えるようになっている。また、レンチキュラが配置される場合、各短冊集合画像に対応したレンズの光屈折効果により、プレーヤの左眼には左眼用短冊画像表示領域に表示される左眼用短冊画像、右眼には右眼用短冊画像表示領域に表示される右眼用短冊画像のみが見えるようになっている。また、偏光眼鏡方式では、表示部１９０の奇数ラインと偶数ラインに偏光方向の異なる偏光フィルタ（例えば、左円偏光を透過する偏光フィルタと、右円偏光を透過する偏光フィルタ）が交互に配置され、表示部１９０の奇数ラインと偶数ラインに左眼用画像と右眼用画像を交互に表示し、これを偏光眼鏡（例えば、左眼に左円偏光を透過する偏光フィルタ、右眼に右円偏光を透過する偏光フィルタを付けた眼鏡）で見ることで立体視を実現する。また、ページフリップ方式では、表示部１９０に左眼用画像と右眼用画像を所定時間毎（例えば、１／１２０秒毎）に交互に表示する。そして、この表示の切り替えに連動して液晶シャッター付きの眼鏡の左眼、右眼の液晶シャッターを交互に開閉することで、立体視を実現する。
【００４１】
通信部１９６は他のゲームシステムやサーバとの間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００４２】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体１８０や記憶部１７０に記憶してもよい。このようにプログラムやデータを受信してゲームシステムを機能させる場合も本発明の範囲内に含む。
【００４３】
処理部１００（プロセッサ）は、操作部１６０からの操作データ、通信部１９６を介して受信したデータやプログラムなどに基づいて、ゲーム処理、画像生成処理、音生成処理などの処理を行う。ここで、ゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は主記憶部１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＧＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００４４】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、物理演算部１１４、演出部１１６、仮想カメラ制御部１１８、画像生成部１２０、音生成部１３０を含む。
【００４５】
オブジェクト空間設定部１１０は、キャラクタ（プレーヤキャラクタ、ノンプレーヤキャラクタ）、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義であり、例えば、ワールド座標系でのＸ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００４６】
移動・動作処理部１１２（移動制御部）は、オブジェクト（キャラクタ等）の移動・動作演算（移動・動作シミュレーション）を行う。すなわち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）、物理法則などに基づいて、オブジェクトをオブジェクト空間（ゲーム空間）内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒又は１／３０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。また移動・動作処理部１１２は、ネットワークを介して接続された他のゲームシステム（ゲーム装置）から通信部１９６を介して受信したオブジェクト（他のプレーヤに対応するオブジェクト）の移動情報や動作情報に基づき当該オブジェクトの移動情報や動作情報を更新する処理を行うようにしてもよい。また移動・動作処理部１１２は、他のゲーム装置から通信部１９６を介して受信した操作データ等に基づき、当該オブジェクトの移動・動作演算を行うようにしてもよい。
【００４７】
物理演算部１１４は、オブジェクト空間内のオブジェクト同士の衝突判定を行う衝突判定処理と、衝突したと判定されたオブジェクトに作用する物理量（力、トルク等）を演算する衝突応答処理とを行う。移動・動作処理部１１２（移動制御部）は、物理演算部１１４の演算結果（力、トルク等の物理量）に基づき、オブジェクトをオブジェクト空間内で移動させる処理を行う。例えば、移動・動作処理部１１２は、物理演算部１１４によって演算された物理量とオブジェクトの質量、重力等に基づき、衝突したと判定されたオブジェクトの加速度及び速度を演算し、演算した加速度及び速度に基づき該オブジェクトの位置及び向きの情報を更新する。
【００４８】
特に本実施形態の物理演算部１１４は、オブジェクト空間内のオブジェクトについて第１の衝突判定処理を行い、前記第１の衝突判定処理で衝突したと判定された場合に、所定の条件が満たされたか否かを判断する。そして、前記所定の条件が満たされたと判断した場合には、前記第１の衝突判定処理で衝突したと判定されたオブジェクトについて第１の衝突応答処理を行う。一方、前記所定の条件が満たされていないと判断した場合には、前記第１の衝突判定処理で衝突したと判定されたオブジェクトについて前記第１の衝突判定処理よりも処理負荷の高い第２の衝突判定処理を行い、前記第２の衝突判定処理で衝突したと判定されたオブジェクトについて前記第１の衝突応答処理よりも処理負荷の高い第２の衝突応答処理を行う。
【００４９】
また、前記第１の衝突判定処理では、オブジェクトを球体或いはＡＡＢＢ（軸並行バウンディングボックス）で近似して衝突判定を行うようにしてもよい、また、前記第２の衝突判定処理では、オブジェクトをＯＢＢ（有向バウンディングボックス）或いは凸多面体で近似して衝突判定を行うようにしてもよい。
【００５０】
また、前記第１の衝突応答処理では、前記第２の衝突応答処理よりも処理負荷の低いペナルティ法を用いて衝突応答処理を行うようにしてもよい。また、前記第２の衝突応答処理では、前記第１の衝突応答処理よりも処理負荷の高いインパルス法（撃力ベース法）或いはＬＣＰ（線形相補性問題）等の解析法を用いて衝突応答処理を行うようにしてもよい。
【００５１】
また、物理演算部１１４は、前記所定の条件が満たされたと判断した場合に、前記第１の衝突判定処理で衝突したと判定されたオブジェクトについて、オブジェクトを複数の球体で近似して衝突判定を行う第３の衝突判定処理を行い、前記第３の衝突判定処理で衝突したと判定されたオブジェクトについて前記第１の衝突応答処理、又は前記第１の衝突応答処理よりも処理負荷が高く前記第２の衝突応答処理よりも処理負荷の低い第３の衝突応答処理のいずれかを行うようにしてもよい。
【００５２】
また、物理演算部１１４は、前記第１の衝突判定処理で衝突したと判定されたオブジェクトが所定の条件を満たすか否かを判断してもよい。そして、所定の条件を満たす判断されたオブジェクトについて前記第２の衝突応答処理よりも処理負荷の低い第１の衝突応答処理を行い、所定の条件を満たさないと判断されたオブジェクトについて前記第１の衝突判定処理よりも処理負荷の高い第２の衝突判定処理を行い、前記第２の衝突判定処理で衝突したと判定されたオブジェクトについて前記第１の衝突応答処理よりも処理負荷の高い第２の衝突応答処理を行うようにしてもよい。
【００５３】
すなわち、前記所定の条件は、前記第１の衝突判定処理で衝突したと判定されたオブジェクトに関する条件でもよい。例えば、前記所定の条件は、前記第１の衝突判定処理で衝突したと判定されたオブジェクトの仮想カメラからの距離、又は仮想カメラとの位置関係に関する条件でもよい。また立体視画像を生成する場合には、前記所定の条件は、前記第１の衝突判定処理で衝突したと判定されたオブジェクトが、オブジェクト空間内の投影面よりも仮想カメラから見て手前側のエリアに位置するか否かに関する条件でもよい。また前記所定の条件は、前記第１の衝突判定処理で衝突したと判定されたオブジェクトの仮想カメラから見たときの画像サイズに関する条件でもよいし、前記第１の衝突判定処理で衝突したと判定されたオブジェクトの透明度に関する条件でもよいし、前記第１の衝突判定処理で衝突したと判定されたオブジェクトの速度に関する条件でもよいし、前記第１の衝突判定処理で衝突したと判定されたオブジェクトに設定された属性に関する条件でもよい。
【００５４】
なお、前記所定の条件は、衝突判定処理時の処理負荷（ＣＰＵの処理負荷）に関する条件でもよいし、オブジェクト空間内のオブジェクトの数に関する条件でもよい。
【００５５】
演出部１１６は、オブジェクト同士の衝突の演出処理を行い、前記所定の条件が満たされたか否かの判断結果に応じて処理負荷の異なる演出処理を行う。例えば、演出部１１６は、所定の条件が満たされたと判断された場合に、第１の演出処理を行い、所定の条件が満たされていないと判断された場合に、前記第１の演出処理よりも処理負荷の高い（又は前記第１の演出処理よりも処理負荷の低い）第２の演出処理を行う。また、前記所定の条件が、前記第１の衝突判定処理で衝突したと判定されたオブジェクトに関する条件である場合には、演出部１１６は、所定の条件を満たすと判断されたオブジェクトについて前記第１の演出処理を行い、所定の条件を満たないと判断され、前記第２の衝突判定処理で衝突したと判定されたオブジェクトについて前記第２の演出処理を行ってもよい。
【００５６】
仮想カメラ制御部１１８は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、操作部１６０によりプレーヤが入力した操作データ或いはプログラム（移動・動作アルゴリズム）等に基づいて、ワールド座標系における仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は光軸の方向（例えば、Ｘ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度等）を制御する処理を行う。要するに、視点位置、仮想カメラの向き、画角を制御する処理を行う。
【００５７】
また、２眼式の立体視方式により立体視画像を表示する場合には、仮想カメラ制御部１１８は、左眼用仮想カメラ及び右眼用仮想カメラの位置、向き及び画角を制御する。また、仮想カメラ制御部１１８は、左眼用仮想カメラと右眼用仮想カメラを設定するための基準となる基準仮想カメラ（センターカメラ）の制御を行い、基準仮想カメラの位置、向き及び左眼用及び右眼用仮想カメラ間の距離情報に基づいて、左眼用及び右眼用仮想カメラの位置、向きを制御するようにしてもよい。多眼立体視画像の場合も同様に、多眼仮想カメラのそれぞれについて位置、向きを制御すればよい。また、空間像方式(水平・垂直両方向に視差を持つ方式を含む)の場合には、仮想カメラの位置、向き及び画角の少なくとも１つを制御して、それに基づく空間座標変換により、仮想空間全体をいったん変換する。その後、変換後の空間内に配置されたオブジェクト等を、それぞれの立体視表示方式に基づいて描画することで、上記の効果を得ることができる。
【００５８】
画像生成部１２０は、処理部１００で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。
【００５９】
いわゆる３次元画像を生成する場合には、まずオブジェクトの各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００６０】
頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換（カメラ座標変換）、クリッピング処理、射影変換（透視変換、投影変換）、ビューポート変換（スクリーン座標変換）、光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。ジオメトリ処理後のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、オブジェクトデータ記憶部１７６に保存される。
【００６１】
そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。
【００６２】
ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。
【００６３】
そして描画部１２０は、オブジェクトを描画する際に、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００６４】
テクスチャマッピングは、記憶部１７０のテクスチャ記憶部１７８に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０のテクスチャ記憶部１７８からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００６５】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７９（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファ１７９に格納されるＺ値を参照する。そして参照されたＺバッファ１７９のＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファ１７９のＺ値を新たなＺ値に更新する。
【００６６】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより２つの色を合成した色を求める処理を行う。なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えばＲＧＢの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００６７】
画像生成部１２０は、立体視画像を表示部１９０に出力するようにしてもよい。例えば、立体視方式が２眼式の場合であれば、画像生成部１２０は、左眼用画像生成部と右眼用画像生成部を含む。左眼用画像生成部は、オブジェクト空間内において左眼用仮想カメラから見える画像である左眼用画像を生成し、右眼用画像生成部は、オブジェクト空間内において右眼用仮想カメラから見える画像である右眼用画像を生成する。具体的には、左眼用画像生成部は、オブジェクト空間内の投影面に対してオブジェクトを左眼用仮想カメラの視点で透視投影して描画することで左眼用画像を生成し、右眼用画像生成部は、投影面に対してオブジェクトを右眼用仮想カメラの視点で透視投影して描画することで右眼用画像を生成する。
【００６８】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００６９】
なお、本実施形態のゲームシステムは、１人のプレーヤのみがプレイできるシングルプレーヤモード、或いは、複数のプレーヤがプレイできるマルチプレーヤモードでゲームプレイできるように制御してもよい。例えば、マルチプレーヤモードで制御する場合には、ネットワークを介して他のゲームシステム（ゲーム装置）とデータを送受信してゲーム処理を行うようにしてもよいし、１つの画像生成システムが、複数の操作部からの操作情報に基づいて処理を行うようにしてもよい。
【００７０】
また、本実施形態のゲームシステムをサーバシステムとして構成してもよい。サーバシステムは、１又は複数のサーバ（認証サーバ、ゲーム処理サーバ、通信サーバ、課金サーバ、データベースサーバ等）により構成することができる。この場合には、サーバシステムは、ネットワークを介して接続された１又は複数の端末装置（例えば、据え置き型ゲーム装置、携帯型ゲーム装置、プログラム実行可能な携帯電話等）から送信された操作情報に基づき各種処理を行って、画像を生成するための画像生成用データを生成し、生成した画像生成用データを各端末装置に対して送信する。ここで、画像生成用データとは、本実施形態の手法により生成された画像を各端末装置において表示するためのデータであり、画像データそのものでもよいし、各端末装置が画像を生成するために用いる各種データ（オブジェクトデータ、ゲーム処理結果データ等）であってもよい。
【００７１】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【００７２】
２−１．物理演算
図２は、本実施形態における物理演算（物理シミュレーション）の処理ステップの一例について説明するための模式図である。物理演算では、オブジェクト同士の衝突を検出する衝突判定処理と、衝突したオブジェクトに作用する物理量を演算する衝突応答処理が行われる。
【００７３】
本実施形態では、図２に示すように、まず、オブジェクト空間内の各オブジェクトを移動させる移動制御が行われ、次に、オブジェクト空間内のオブジェクトについて第１の衝突判定処理が行われる。第１の衝突判定処理（ブロードフェーズ衝突判定）では、後述する第２の衝突判定処理に比べて正確性に劣るものの処理負荷の低い手法を用いた衝突判定が行われる。
【００７４】
次に、所定の条件（第１の衝突判定処理で衝突したと判定されたオブジェクトに関する所定の条件、又は処理負荷或いはオブジェクトの数に関する所定の条件）が満たされたか否かが判断される。
【００７５】
所定の条件が満たされていないと判断された場合（図２のＡ１）には、第１の衝突判定処理で衝突したと判定されたオブジェクトのペア（衝突ペア）について第２の衝突判定処理が行われる。第２の衝突判定処理（ナローフェーズ衝突判定）では、第１の衝突判定処理に比べて処理負荷が高いものの精度の高い手法を用いた衝突判定が行われる。そして、第２の衝突判定処理で衝突したと判定されたオブジェクトについて第２の衝突応答処理が行われ、第２の衝突応答処理の処理結果に基づきオブジェクトの移動制御が行われる。第２の衝突応答処理では、後述する第１の衝突応答処理に比べて処理負荷が高いものの精度が高い手法を用いた衝突応答処理が行われる。
【００７６】
一方、所定の条件が満たされたと判断された場合（図２のＡ２）には、第２の衝突判定処理を省略して、第１の衝突判定処理で衝突したと判定されたオブジェクトのペア（衝突ペア）について第１の衝突応答処理が行われ、第１の衝突応答処理の処理結果に基づきオブジェクトの移動制御が行われる。第１の衝突応答処理では、第２の衝突応答処理に比べて正確性に劣るものの処理負荷の低い手法を用いた衝突応答処理が行われる。
【００７７】
具体的には、第１の衝突判定処理では、図３（Ａ）に示すように、各オブジェクトＯＢに設定する衝突判定領域ＤＡとして、各オブジェクトＯＢを内包するバウンディング球（球体）を用いて、オブジェクト同士の衝突判定が行われる。衝突判定領域としてバウンディング球を用いると、バウンディング球の中心点同士の距離と半径とに基づき衝突判定を行えるため、衝突判定処理の処理負荷を低減することができる。
【００７８】
また、第１の衝突判定処理では、図３（Ｂ）に示すように、各オブジェクトＯＢに設定する衝突判定領域ＤＡとして、各オブジェクトＯＢを内包する軸並行バウンディングボックス（ＡＡＢＢ：Axis-Aligned Bounding Box）を用いて、オブジェクト同士の衝突判定を行うようにしてもよい。軸並行バウンディングボックスとは、各辺がオブジェクト空間（ワールド座標空間）のＸＹＺ軸に対し平行な直方体である。衝突判定領域として軸並行バウンディングボックスを用いると、オブジェクトの回転（向き）を考慮せずに衝突判定を行えるため、バウンディング球を用いる場合と同様に衝突判定処理の処理負荷を低減することができる。
【００７９】
また、第２の衝突判定処理では、図３（Ｃ）に示すように、各オブジェクトＯＢに設定する衝突判定領域ＤＡとして、各オブジェクトＯＢを内包する有向バウンディングボックス（ＯＢＢ：Oriented Bounding Box）を用いて、第１の衝突判定処理で衝突したと判定されたオブジェクト同士の衝突判定が行われる。有向バウンディングボックスとは、任意の軸を有する直方体であり、オブジェクトの向きも考慮して設定されるものである。
【００８０】
また、第２の衝突判定処理では、図３（Ｄ）に示すように、各オブジェクトＯＢに設定する衝突判定領域ＤＡとして、各オブジェクトＯＢを内包する凸多面体を用いて衝突判定を行うようにしてもよい。有向バウンディングボックスや凸多面体を用いる第２の衝突判定処理では、バウンディング球や軸並行バウンディングボックスを用いる第１の衝突判定処理に比べて処理負荷が高いものの精度の高い衝突判定を行うことができる。また、第２の衝突判定処理では、図３（Ｅ）に示すように、各オブジェクトの形状と略同一形状の衝突判定領域ＤＡを用いて衝突判定を行うようにしてもよい。
【００８１】
また、第２の衝突応答処理では、インパルス法（撃力ベース法）を用いて第２の衝突判定処理で衝突したと判定されたオブジェクトについての衝突応答処理が行われる。インパルス法とは、衝突を２つのオブジェクトに働く瞬間的な力（インパルス、撃力）の連続として扱うことで、衝突したオブジェクトに作用する抗力を求める手法である。
【００８２】
また、第２の衝突応答処理では、解析法（直接法）を用いて第２の衝突判定処理で衝突したと判定されたオブジェクトについての衝突応答処理を行うようにしてもよい。解析法とは、例えば、拘束条件を運動方程式と連立させた線形相補性問題（ＬＣＰ：Linear Complementary Proglem）を解くことで、衝突したオブジェクトに作用する物理量を求める手法である。インパルス法や解析法を用いる第２の衝突応答処理では、処理負荷は高いものの精度の高い衝突応答処理を行うことができる。
【００８３】
また、第１の衝突応答処理では、ペナルティ法を用いて第１の衝突判定処理で衝突したと判定されたオブジェクトについての衝突応答処理が行われる。ペナルティ法とは、図４に示すように、衝突したオブジェクトＯＢ間（各オブジェクトに設定された衝突判定領域ＤＡ間）のめり込み距離ＰＮ（浸透深度、ペナルティ）に応じたバネ及びダンパの力を仮想的に発生させることで、衝突したオブジェクトに作用する抗力を求める手法である。ペナルティ法を用いる第１の衝突応答処理では、運動方程式や巨大な逆行列を用いずにオブジェクトに作用する物理量を演算することができるため、インパルス法や解析法を用いる第２の衝突応答処理に比べて精度は劣るものの低い処理負荷で衝突応答処理を行うことができる。
【００８４】
このように本実施形態では、第１の衝突判定処理を行った後に、所定の条件が満たされたか否かを判断し、所定の条件が満たされていないと判断した場合には、精度が高く処理負荷も高い第２の衝突判定処理及び第２の衝突応答処理を行い、所定の条件が満たされたと判断した場合には、処理負荷の高い第２の衝突判定処理を省略し、且つ、第２の衝突応答処理に代えて精度が低く処理負荷も低い第１の衝突応答処理を行う。このように本実施形態によれば、精度が高く処理負荷が高い物理演算を行う場合と、精度が低く処理負荷が低い物理演算を行う場合とを、衝突オブジェクトや処理負荷に応じて条件分岐により切り替えることで、物理演算の処理負荷を効果的に低減させることができる。
【００８５】
なお、図５に示すように、３通りの条件分岐を行うようにしてもよい。すなわち、第１の条件を満たしていない場合（図５のＡ１）には、第１の衝突判定処理で衝突したと判定されたオブジェクトのペアについて第２の衝突判定処理を行い、第１の条件を満たし且つ第２の条件を満たす場合（図５のＡ２）には、第１の衝突判定処理で衝突したと判定されたオブジェクトのペアについて第１の衝突応答処理を行い、第１の条件を満たし且つ第２の条件を満たさない場合（図５のＡ３）には、第１の衝突判定処理で衝突したと判定されたオブジェクトのペアについて第３の衝突判定処理を行い、第３の衝突判定処理で衝突したと判定されたオブジェクトのペアについて第１の衝突応答処理を行うようにしてもよい。なお、第３の衝突判定処理で衝突したと判定されたオブジェクトのペアについて第１の衝突応答処理よりも処理負荷が高く第２の衝突応答処理よりも処理負荷の低い第３の衝突応答処理を行うようにしてもよい。
【００８６】
第３の衝突判定処理（ミドルフェーズ衝突判定）では、オブジェクトを複数の球体で近似して衝突判定を行う。すなわち、第３の衝突判定処理では、図６に示すように、各オブジェクトＯＢに設定する衝突判定領域ＤＡとして、各オブジェクトＯＢを内包する複数のバウンディング球（球体）を用いて、オブジェクト同士の衝突判定が行われる。複数のバウンディング球を用いる第３の衝突判定処理では、単一のバウンディング球を用いる第１の衝突判定処理に比べて精度が高く処理負荷が高い衝突判定であって、有向バウンディングボックスや凸多面体を用いる第２の衝突判定処理に比べて精度が低く処理負荷が低い衝突判定が行われる。なお、衝突判定領域ＤＡとして設定するバウンディング球の数は任意であるが、バウンディング球の数を多くするほど精度は高くなり処理負荷も高くなる。なお、第３の衝突判定処理においてバウンディング球の数を可変として３通り以上の条件分岐を行うようにしてもよい。このように、物理演算の精度及び処理負荷を条件分岐により多段階で切り替えることで、物理演算の処理負荷をより効果的に低減させることができる。
【００８７】
２−２．分岐条件（オブジェクトの仮想カメラからの距離・位置関係に関する条件）
次に、本実施形態における所定の条件（分岐条件）の詳細について説明する。まず、第１の衝突判定処理で衝突したと判定されたオブジェクトの仮想カメラからの距離（当該オブジェクトの奥行き値（Ｚ値））、又は仮想カメラとの位置関係に関する条件を判断する場合について説明する。
【００８８】
例えば、図７に示す例において、仮想カメラＶＣからの距離が距離Ｄ１以内の位置にあるオブジェクトのペアＯＰ１、ＯＰ２については、所定の条件が満たされていないと判断し、処理負荷の高い第２の衝突判定処理と第２の衝突応答処理を行い、仮想カメラＶＣからの距離が距離Ｄ１以上の位置にあるオブジェクトのペアＯＰ３については、所定の条件が満たされたと判断し、第２の衝突判定処理を省略して処理負荷の低い第１の衝突応答処理を行う。なお、オブジェクトのペアのいずれか一方が距離Ｄ１以上の位置にある場合に、当該オブジェクトのペアについて所定の条件が満たされたと判断してもよい。また、オブジェクトペアのめり込み部分（図４のＰＮ）の位置に基づき判断してもよい。
【００８９】
このように、仮想カメラＶＣから遠いところに位置するオブジェクトについては、精度が低く処理負荷も低い物理演算を行い、仮想カメラから近いところに位置するオブジェクトについては、精度が高く処理負荷も高い物理演算を行うようにすることで、仮想カメラから遠いため精度の低い物理演算を行ったとしても見た目の不自然さが視認され難いオブジェクトについての物理演算の処理負荷を低減して、物理演算の処理負荷を効果的に低減させることができる。
【００９０】
また、図７に示す例において、仮想カメラＶＣからの距離が距離Ｄ２（Ｄ２＜Ｄ１）以内の領域と、仮想カメラＶＣからの距離が距離Ｄ１以上の領域とを焦点が合わない領域として設定し、仮想カメラＶＣからの距離が距離Ｄ２以上であって距離Ｄ１以内の領域を焦点があう領域として設定して、焦点が合わない領域に位置するオブジェクトの画像をぼかす被写界深度処理を行う場合に、焦点が合う領域に位置するオブジェクトのペアＯＰ２については、所定の条件が満たされていないと判断し、処理負荷の高い第２の衝突判定処理と第２の衝突応答処理を行い、焦点が合わない領域に位置するオブジェクトのペアＯＰ１、ＯＰ３については、所定の条件が満たされたと判断し、第２の衝突判定処理を省略して処理負荷の低い第１の衝突応答処理を行うようにしてもよい。なお、オブジェクトのペアのいずれか一方が焦点の合わない領域に位置する場合に、当該オブジェクトのペアについて所定の条件が満たされたと判断してもよい。また、オブジェクトペアのめり込み部分（図４のＰＮ）の位置に基づき判断してもよい。
【００９１】
このように、被写界深度処理によってぼかし処理が施されるオブジェクトについては、精度が低く処理負荷も低い物理演算を行い、ぼかし処理が施されないオブジェクトについては、精度が高く処理負荷も高い物理演算を行うようにすることで、ぼかし処理が施されるため精度の低い物理演算を行ったとしても見た目の不自然さが視認され難いオブジェクトについての物理演算の処理負荷を低減して、物理演算の処理負荷を効果的に低減させることができる。
【００９２】
また、図７に示す例において、ビューボリュームＶＶ内に位置するオブジェクトのペアＯＰ１〜ＯＰ３については、所定の条件が満たされていないと判断し、処理負荷の高い第２の衝突判定処理と第２の衝突応答処理を行い、ビューボリュームＶＶの外に位置するオブジェクトのペアＯＰ４については、所定の条件が満たされたと判断し、第２の衝突判定処理を省略して処理負荷の低い第１の衝突応答処理を行うようにしてもよい。なお、ビューボリュームＶＶは、仮想カメラＶＣの位置、向き、画角及び投影面の位置によって上下左右の構成面が決定される視錐台の領域である。なお、オブジェクトのペアのいずれか一方がビューボリュームＶＶの外に位置する場合に、当該オブジェクトのペアについて所定の条件が満たされたと判断してもよい。また、オブジェクトペアのめり込み部分（図４のＰＮ）の位置に基づき判断してもよい。
【００９３】
このように、ビューボリューム外に位置するオブジェクトについては、精度が低く処理負荷も低い物理演算を行い、ビューボリューム内に位置するオブジェクトについては、精度が高く処理負荷も高い物理演算を行うようにすることで、ビューボリューム外に位置するため描画対象とはならないオブジェクトについての物理演算の処理負荷を低減して、物理演算の処理負荷を効果的に低減させることができる。
【００９４】
また、立体視画像を生成する場合に、第１の衝突判定処理で衝突したと判定されたオブジェクトが、表示部から飛び出して見える飛び出し空間を再現する領域に位置する場合に、所定の条件が満たされたと判断してもよい。
【００９５】
図８に示すように、２眼式の立体視方式では、プレーヤの両眼の幅に対応する距離だけ離れた左眼用仮想カメラＶＣＬと右眼用仮想カメラＶＣＲをオブジェクト空間に設定する。そして、左眼用仮想カメラＶＣＬに対応して左眼用ビューボリュームＶＶＬが設定され、右眼用仮想カメラＶＣＲに対応して右眼用ビューボリュームＶＶＲが設定される。投影面ＳＰは、表示部の画面に対応する面であり、プレーヤの視点位置に相当する左眼用、右眼用仮想カメラＶＣＬ、ＶＣＲの位置及び向きと、プレーヤの視点位置と表示部の画面との位置関係とに基づき設定される。なお、図８において、ＮＰＬ、ＦＰＬは、それぞれ左眼用ビューボリュームＶＶＬのニアクリップ面、ファークリップ面であり、ＮＰＲ、ＦＰＲは、それぞれ右眼用ビューボリュームＶＶＲのニアクリップ面、ファークリップ面である。左眼用仮想カメラＶＣＬから見える画像である左眼用画像は、左眼用ビューボリュームＶＶＬ内に存在するオブジェクトを投影面ＳＰに透視投影して描画することで生成される。同様に、右眼用仮想カメラＶＣＲから見える画像である右眼用画像は、右眼用ビューボリュームＶＶＲ内に存在するオブジェクトを投影面ＳＰに透視投影して描画することで生成される。
【００９６】
ここで、オブジェクトが、投影面ＳＰよりも左眼用、右眼用仮想カメラＶＣＬ、ＶＣＲからみて手前側のエリア（投影面ＳＰとニアクリップ面ＮＰＬ、ＮＰＲに挟まれたエリア）である第１のエリアＡＲ１に位置する場合には、プレーヤからはオブジェクトが表示部の画面よりも手前側に飛び出しているように見える。また、オブジェクトが、投影面ＳＰよりも左眼用、右眼用仮想カメラＶＣＬ、ＶＣＲからみて奥側のエリア（投影面ＳＰとファークリップ面ＦＰＬ、ＦＰＲに挟まれたエリア）である第２のエリアＡＲ２に位置する場合には、プレーヤからはオブジェクトが表示部の画面よりも奥側に引っ込んでいるように見える。
【００９７】
例えば、図８に示す例において、画面よりも手前側に飛び出しているように見える飛び出し空間を再現する第１のエリアＡＲ１に位置するオブジェクトのペアＯＰ５については、所定の条件が満たされていないと判断し、処理負荷の高い第２の衝突判定処理と第２の衝突応答処理を行い、画面よりも奥側に引っ込んでいるように見える奥行き空間を再現する第２のエリアＡＲ２に位置するオブジェクトのペアＯＰ６については、所定の条件が満たされたと判断し、第２の衝突判定処理を省略して処理負荷の低い第１の衝突応答処理を行う。なお、オブジェクトのペアのいずれか一方が第２のエリアＡＲ２に位置する場合に、当該オブジェクトのペアについて所定の条件が満たされたと判断してもよい。また、オブジェクトペアのめり込み部分（図４のＰＮ）の位置に基づき判断してもよい。
【００９８】
このように、立体視画像を生成する際に、飛び出し空間を再現する領域に位置するオブジェクトについては、精度が高く処理負荷も高い物理演算を行い、奥行き空間を再現する領域に位置するオブジェクトについては精度が低く処理負荷も低い物理演算を行うようにすることで、プレーヤが立体視感をより強く感じる飛び出し空間を再現する領域に位置するオブジェクト以外のオブジェクトについての物理演算の処理負荷を低減して、物理演算の処理負荷を効果的に低減させることができる。
【００９９】
２−３．分岐条件（オブジェクトの画像サイズに関する条件）
次に、第１の衝突判定処理で衝突したと判定されたオブジェクトの仮想カメラから見たときの画像サイズに関する条件を判断する場合について説明する。
【０１００】
例えば、図９に示すゲーム画像ＧＩ（オブジェクト空間を仮想カメラから見た画像）において、画像サイズが所定の閾値よりも大きいオブジェクトのペアＯＰ７については、所定の条件が満たされていないと判断し、処理負荷の高い第２の衝突判定処理と第２の衝突応答処理を行い、画像サイズが所定の閾値よりも小さいオブジェクトのペアＯＰ８については、所定の条件が満たされたと判断し、第２の衝突判定処理を省略して処理負荷の低い第１の衝突応答処理を行うようにしてもよい。なお、オブジェクトの画像サイズは、オブジェクト（オブジェクトのペア、又はオブジェクトのペアのいずれか一方）がゲーム画像ＧＩにおいて占める面積に基づき求めてもよいし、オブジェクト（オブジェクトのペア、又はオブジェクトのペアのいずれか一方）のオブジェクト空間内におけるサイズ及び仮想カメラからの距離に基づき求めてもよい。
【０１０１】
このように、画像サイズが小さいオブジェクトについては、精度が低く処理負荷も低い物理演算を行い、画像サイズが大きいオブジェクトについては、精度が高く処理負荷も高い物理演算を行うようにすることで、画像サイズが小さいため精度の低い物理演算を行ったとしても見た目の不自然さが視認され難いオブジェクトについての物理演算の処理負荷を低減して、物理演算の処理負荷を効果的に低減させることができる。
【０１０２】
２−４．分岐条件（オブジェクトの透明度に関する条件）
次に、第１の衝突判定処理で衝突したと判定されたオブジェクトの透明度に関する条件を判断する場合について説明する。
【０１０３】
例えば、透明度が所定の閾値よりも低いオブジェクトのペアについては、所定の条件が満たされていないと判断し、処理負荷の高い第２の衝突判定処理と第２の衝突応答処理を行い、透明度が所定の閾値よりも高いオブジェクトのペアについては、所定の条件が満たされたと判断し、第２の衝突判定処理を省略して処理負荷の低い第１の衝突応答処理を行うようにしてもよい。なお、オブジェクトの透明度は、オブジェクトの各頂点に設定される透明度（α値）でもよいし、オブジェクトにマッピングされるテクスチャに設定される透明度（α値）でもよい。また、オブジェクトのペアのそれぞれの透明度の平均値を、オブジェクトのペアの透明度として求めてもよいし、オブジェクトのペアのいずれか一方の透明度をオブジェクトのペアの透明度としてもよい。
【０１０４】
このように、透明度が高いオブジェクトについては、精度が低く処理負荷も低い物理演算を行い、透明度が小さい（不透明度が高い）オブジェクトについては、精度が高く処理負荷も高い物理演算を行うようにすることで、透明度が高いため精度の低い物理演算を行ったとしても見た目の不自然さが視認され難いオブジェクトについての物理演算の処理負荷を低減して、物理演算の処理負荷を効果的に低減させることができる。
【０１０５】
２−５．分岐条件（オブジェクトの速度に関する条件）
次に、第１の衝突判定処理で衝突したと判定されたオブジェクトの速度に関する条件を判断する場合について説明する。
【０１０６】
例えば、速度が所定の閾値よりも小さいオブジェクトのペアについては、所定の条件が満たされていないと判断し、処理負荷の高い第２の衝突判定処理と第２の衝突応答処理を行い、速度が所定の閾値よりも大きいオブジェクトのペアについては、所定の条件が満たされたと判断し、第２の衝突判定処理を省略して処理負荷の低い第１の衝突応答処理を行うようにしてもよい。なお、オブジェクトのペアのそれぞれの速度の平均値を、オブジェクトのペアの速度として求めてもよいし、オブジェクトのペアのいずれか一方の速度をオブジェクトのペアの速度としてもよい。
【０１０７】
このように、速度が大きいオブジェクトについては、精度が低く処理負荷も低い物理演算を行い、速度が小さいオブジェクトについては、精度が高く処理負荷も高い物理演算を行うようにすることで、速度が大きいため精度の低い物理演算を行ったとしても見た目の不自然さが視認され難いオブジェクトについての物理演算の処理負荷を低減して、物理演算の処理負荷を効果的に低減させることができる。
【０１０８】
２−６．分岐条件（オブジェクトの属性に関する条件）
次に、第１の衝突判定処理で衝突したと判定されたオブジェクトに設定された属性（重要度、オブジェクトの種類）に関する条件を判断する場合について説明する。
【０１０９】
例えば、属性として設定された重要度が高いオブジェクトのペアについては、所定の条件が満たされていないと判断し、処理負荷の高い第２の衝突判定処理と第２の衝突応答処理を行い、属性として設定された重要度が低いオブジェクトのペアについては、所定の条件が満たされたと判断し、第２の衝突判定処理を省略して処理負荷の低い第１の衝突応答処理を行うようにしてもよい。なお、オブジェクトのペアのいずれか一方の重要度が低い場合に、当該オブジェクトのペアについて所定の条件が満たされたと判断してもよいし、オブジェクトのペアの両方の重要度が低い場合に、当該オブジェクトのペアについて所定の条件が満たされたと判断してもよい。
【０１１０】
例えば、背景物であるオブジェクトの重要度を低くし、キャラクタオブジェクトの重要度を高くしてもよい。また、キャラクタの中でも、プレーヤキャラクタの重要度を高くし、ノンプレーヤキャラクタ（ＮＰＣ）の重要度を低くしてもよい。また、キャラクタのうち、プレーヤキャラクタを攻撃するキャラクタの重要度を高くし、攻撃しないキャラクタの重要度を低くしてもよい。また、パーティクルオブジェクト等のエフェクト表現に用いられるオブジェクトの重要度を低くしてもよい。
【０１１１】
このように、属性としての重要度が低いオブジェクトについては、精度が低く処理負荷も低い物理演算を行い、属性としての重要度が高いオブジェクトについては、精度が高く処理負荷も高い物理演算を行うようにすることで、プレーヤの注目度が低いと想定されるため精度の低い物理演算を行ったとしても見た目の不自然さがプレーヤに気付かれ難いオブジェクトについての物理演算の処理負荷を低減して、物理演算の処理負荷を効果的に低減させることができる。
【０１１２】
２−７．分岐条件（処理負荷、オブジェクトの数に関する条件）
次に、第１の衝突判定処理を行った際の処理負荷やオブジェクト空間内に存在するオブジェクトの数に関する条件を判断する場合について説明する。
【０１１３】
例えば、第１の衝突判定処理を行った際の処理負荷（処理部１００を実現するＣＰＵ等のプロセッサの処理負荷）が所定の閾値よりも低い場合には、所定の条件が満たされていないと判断し、第１の衝突判定処理で衝突したと判定された全てのオブジェクトのペアについて処理負荷の高い第２の衝突判定処理と第２の衝突応答処理を行い、第１の衝突判定処理を行った際の処理負荷が所定の閾値よりも高い場合には、所定の条件が満たされたと判断し、第１の衝突判定処理で衝突したと判定された全てのオブジェクトのペアについて第２の衝突判定処理を省略して処理負荷の低い第１の衝突応答処理を行うようにしてもよい。
【０１１４】
また、第１の衝突判定処理を行った際にオブジェクト空間内に存在するオブジェクトの数が所定の閾値よりも小さい場合には、所定の条件が満たされていないと判断し、第１の衝突判定処理で衝突したと判定された全てのオブジェクトのペアについて処理負荷の高い第２の衝突判定処理と第２の衝突応答処理を行い、第１の衝突判定処理を行った際にオブジェクト空間内に存在するオブジェクトの数が所定の閾値よりも大きい場合には、所定の条件が満たされたと判断し、第１の衝突判定処理で衝突したと判定された全てのオブジェクトのペアについて第２の衝突判定処理を省略して処理負荷の低い第１の衝突応答処理を行うようにしてもよい。
【０１１５】
このように、処理負荷が所定の閾値よりも低い場合或いはオブジェクトの数が少ないため処理負荷が低いと推定される場合には、全てのオブジェクトのペアについて精度が高く処理負荷も高い物理演算を行い、処理負荷が所定の閾値よりも高い場合或いはオブジェクトの数が多いため処理負荷が高いと推定される場合には、全てのオブジェクトのペアについて精度が低く処理負荷も低い物理演算を行うようにすることで、プロセッサの処理負荷が高い場合にオブジェクトの物理演算に必要な処理負荷を低減して、処理負荷の増大によるフレーム落ち等の発生を防止することができる。
【０１１６】
２−８．衝突演出
本実施形態では、第１または第２の衝突判定処理で衝突したと判定された場合に、衝突の演出処理（例えば、オブジェクト同士の衝突によって生ずる火花等を画像処理で表すエフェクト処理）を行う。また、所定の条件が満たされたか否かの判断結果に応じて処理負荷の異なる演出処理を行う。
【０１１７】
具体的には、第１の衝突判定処理で衝突したと判定され、且つ所定の条件が満たされたと判断されたオブジェクトについては第１の演出処理を行い、所定の条件が満たされていないと判断され、且つ第２の衝突判定処理で衝突したと判定されたオブジェクトについては第１の演出処理よりも処理負荷の高い第２の演出処理を行う。例えば、演出処理をパーティクル等のオブジェクトを用いて行う場合には、第１の演出処理では、少ない数のオブジェクト（或いは簡易な形状のオブジェクト）を用いて簡易的な演出処理を行い、第２の演出処理では、第１の演出処理に比べて多くのオブジェクト（或いは詳細な形状のオブジェクト）を用いた詳細な演出処理を行う。
【０１１８】
このように、詳細度が高く処理負荷が高い演出処理を行う場合と、詳細度が低く処理負荷が低い演出を行う場合とを、条件分岐により切り替えることで、演出の処理負荷を効果的に低減させることができる。また、所定の条件を満たすオブジェクトについては処理負荷の低い簡易的な演出処理を行い、所定の条件を満たさないオブジェクトについて処理負荷の高い詳細な演出処理を行うことで、簡易的な演出処理を行ったとしても見た目の不自然さが視認され難いオブジェクト（注目度が低いオブジェクト）についての演出の処理負荷を低減して、演出の処理負荷を効果的に低減させることができる。
【０１１９】
また、且つ所定の条件が満たされたと判断されたオブジェクト（第２の衝突判定処理が省略され第１の衝突応答処理が行われるオブジェクト）について詳細度が高く処理負荷が高い第２の演出処理を行い、所定の条件が満たされていないと判断されたオブジェクト（第２の衝突判定処理と第２の衝突応答処理が行われるオブジェクト）について詳細度が低く処理負荷が低い第１の演出処理を行うようにしてもよい。このようにすると、所定の条件が満たされたと判断されたために精度が低い物理演算が行われたオブジェクトの見た目の不自然さを、詳細な演出処理によって視認させ難くすることができる。
【０１２０】
３．処理
次に、本実施形態の画像生成システムの処理の一例について図１０、図１１のフローチャートを用いて説明する。図１０は、二通りの条件分岐を行う場合（図２参照）の処理の一例を示すフローチャート図である。
【０１２１】
まず、移動・動作処理部１１２は、オブジェクトをオブジェクト空間内で移動させる移動制御を行う（ステップＳ１０）。すなわち、オブジェクト空間内のオブジェクトの速度と位置を更新する処理を行う。
【０１２２】
次に、物理演算部１１４は、オブジェクト空間内のオブジェクトについて第１の衝突判定処理を行う（ステップＳ１２）。第１の衝突判定処理では、各オブジェクトに設定する衝突判定領域として、バウンディング球或いは軸並行バウンディングボックス（ＡＡＢＢ）を用いた衝突判定処理が行われる。
【０１２３】
次に、物理演算部１１４は、第１の衝突判定処理で衝突したと判定されたオブジェクトのペアが所定の条件を満たすか否かを判断する（ステップＳ１４）。例えば、第１の衝突判定処理で衝突したと判定されたオブジェクトの仮想カメラからの距離・位置関係、画像サイズ、透明度、速度、或いは属性が所定の条件を満たすか否かを判断する。
【０１２４】
次に、物理演算部１１４は、ステップＳ１４で所定の条件を満たさないと判断されたオブジェクトのペアについて第２の衝突判定処理を行う（ステップＳ１６）。第２の衝突判定処理では、各オブジェクトに設定する衝突判定領域として、有向バウンディングボックス（ＯＢＢ）或いは凸多面体を用いた衝突判定処理が行われる。
【０１２５】
次に、物理演算部１１４は、第２の衝突判定処理で衝突したと判定されたオブジェクトのペアについて第２の衝突応答処理を行う（ステップＳ１８）。第２の衝突応答処理では、インパルス法（撃力ベース法）或いはＬＣＰ等の解析法を用いて、衝突したオブジェクトのペア（衝突ペア）に作用する物理量を演算する。次に、演出部１１６は、第２の衝突判定処理で衝突したと判定されたオブジェクトのペアについての第２の演出処理を行う（ステップＳ１９）。
【０１２６】
一方、物理演算部１１４は、ステップＳ１４で所定の条件を満たすと判断されたオブジェクトのペアについて第１の衝突応答処理を行う（ステップＳ２０）。第１の衝突応答処理では、ペナルティ法を用いて、衝突したオブジェクトのペア（衝突ペア）に作用する物理量を演算する。次に、演出部１１６は、ステップＳ１４で所定の条件を満たすと判断されたオブジェクトのペアについての第１の演出処理を行う（ステップＳ２１）
また、物理演算部１１４は、ステップＳ１４において、処理部１００の処理負荷（例えば、プロセッサの使用率）、或いはオブジェクト空間内のオブジェクトの数が所定の条件を満たすか否かを判断してもよい。この場合、物理演算部１１４は、ステップＳ１４で所定の条件を満たさないと判断した場合には、ステップＳ１６において、第１の衝突判定処理で衝突したと判定された全てのオブジェクトのペアについて第２の衝突判定処理を行い、ステップＳ１４で所定の条件を満たすと判断した場合には、ステップＳ２０において、第１の衝突判定処理で衝突したと判定された全てのオブジェクトのペアについて第１の衝突応答処理を行う。また、演出部１１６は、ステップＳ１４で所定の条件を満たすと判断した場合には、ステップＳ２１において、第１の衝突判定処理で衝突したと判定された全てのオブジェクトのペアについての第１の演出処理を行う。
【０１２７】
次に、処理部１００は、処理を続けるか否かを判断し（ステップＳ２２）、処理を続ける場合には、ステップＳ１０の処理に進む。すなわち、移動・動作処理部１１２は、ステップＳ１８及びステップＳ２０において演算された物理量（衝突ペアに作用する物理量（例えば、抗力））に基づいて、オブジェクトの速度、位置を更新する移動制御を行う。そして、ステップＳ１０以降の処理を１フレーム毎に繰り返す。
【０１２８】
図１１は、三通りの条件分岐を行う場合（図５参照）の処理の一例を示すフローチャート図である。図１１のステップＳ３０〜ステップＳ３９の処理は、図１１のステップＳ１０〜ステップＳ１９と同様の処理である。
【０１２９】
図１１の例では、物理演算部１１４は、図１０のステップＳ１４に相当するステップＳ３４において、第１の衝突判定処理で衝突したと判定されたオブジェクトのペアが第１の条件を満たすか否かを判断し、第１の条件を満たさないと判断されたオブジェクトのペアについて第２の衝突判定処理を行う（ステップＳ３６）。
【０１３０】
また、物理演算部１１４は、ステップＳ３４で第１の条件を満たすと判断されたオブジェクトのペアが第２の条件を満たすか否かを判断し（ステップ４０）、第２の条件を満たすと判断されたオブジェクトのペアについて第１の衝突応答処理を行う（ステップＳ４２）。また、ステップＳ４２において、第１の衝突応答処理を行うことに代えて、第１の衝突応答処理よりも処理負荷が高く第２の衝突応答処理よりも処理負荷の低い第３の衝突応答処理を行うようにしてもよい。また、演出部１１６は、第２の条件を満たすと判断されたオブジェクトのペアについての第１の演出処理を行う（ステップＳ４３）。
【０１３１】
また、物理演算部１１４は、ステップＳ４０で第２の条件を満たさないと判断されたオブジェクトのペアについて第３の衝突判定処理を行い（ステップＳ４４）、第３の衝突判定処理で衝突したと判定されたオブジェクトのペアについて第１の衝突応答処理を行う（ステップＳ４２）。第３の衝突判定処理では、各オブジェクトに設定する衝突判定領域として、複数のバウンディング球を用いた衝突判定処理が行われる。また、演出部１１６は、第３の衝突判定処理で衝突したと判定されたオブジェクトのペアについての第１の演出処理を行う（ステップＳ４３）。
【０１３２】
ここで、例えば、分岐条件（第１及び第２の条件）として、オブジェクトの仮想カメラからの距離に関する条件を判断する場合には、仮想カメラからの距離Ｄが第１の閾値ＴＨ１以上であるオブジェクトのペアについては、第１の条件が満たされたと判断し、さらに、仮想カメラからの距離Ｄが第２の閾値ＴＨ２（ＴＨ２＞ＴＨ１）以上であるオブジェクトのペアについては、第２の条件が満たされたと判断すればよい。すなわち、距離Ｄが第１の閾値ＴＨ１未満であるオブジェクトのペアについて第２の衝突判定処理及び第２の衝突応答処理を行い、距離Ｄが第１の閾値ＴＨ１以上であって第２の閾値ＴＨ２未満であるオブジェクトのペアについて第３の衝突判定処理及び第１の衝突応答処理を行い、距離Ｄが第２の閾値ＴＨ２以上であるオブジェクトのペアについて第１の衝突応答処理を行えばよい。
【０１３３】
４．変形例
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０１３４】
例えば、上記実施形態では、第１の衝突判定処理で衝突したと判定されたオブジェクトに関する所定の条件として、オブジェクトの仮想カメラからの距離・位置関係、画像サイズ、透明度、速度或いは属性に関する条件を判断する場合について説明したが、本発明はこれに限られない。例えば、第１の衝突判定処理で衝突したと判定されたオブジェクトの向き、寿命（発生したから消滅するまでの時間）、或いは質量に関する条件を判断してもよい。この場合、仮想カメラの方向を向いていないオブジェクト、寿命が短いオブジェクト、或いは質量が小さいオブジェクトについては、所定の条件が満たされたと判断し、第２の衝突判定処理を省略して処理負荷の低い第１の衝突応答処理を行うようにしてもよい。また、プレーヤの注目している注視点（又はその予測点）に関する条件を判断してもよい。この場合、プレーヤの注視点付近に位置するオブジェクト以外のオブジェクトについては、所定の条件が満たされたと判断し、第２の衝突判定処理を省略して処理負荷の低い第１の衝突応答処理を行うようにしてもよい。
【符号の説明】
【０１３５】
１００  処理部、１１０  オブジェクト空間設定部、１１２  移動・演算処理部（移動制御部）、１１４  物理演算部、１１６  演出部、１１８  仮想カメラ制御部、１２０  画像生成部、１３０  音生成部、１６０  操作部、１７０  記憶部、１８０  情報記憶媒体、１９０  表示部、１９２、音出力部、１９６  通信部
【図１】
0005766540.tif 000002
【図２】
0005766540.tif 000003
【図３】
0005766540.tif 000004
【図４】
0005766540.tif 000005
【図５】
0005766540.tif 000006
【図６】
0005766540.tif 000007
【図７】
0005766540.tif 000008
【図８】
0005766540.tif 000009
【図９】
0005766540.tif 000010
【図１０】
0005766540.tif 000011
【図１１】
0005766540.tif 000012