(57)【要約】【課題】隠面消去の柔軟な制御を可能にするプログラム、情報記憶媒体及び画像生成システムを提供すること。【解決手段】  画像生成システムは、複数のモデルオブジェクトの描画順序のランクを設定するためのランク情報を記憶するランク情報記憶部と、各画素のＺ値を記憶するＺバッファと、ランク情報に従った描画順序で描画順序ランクの低いモデルオブジェクトから描画順序ランクの高いモデルオブジェクトへとＺバッファのＺ値を参照しながら複数のモデルオブジェクトを順次描画する描画部を含む。描画部は第Ｋの描画順序ランクのモデルオブジェクトを描画することで生成されたＺバッファのＺ値をクリアした後に、第Ｋの描画順序ランクよりもランクが高い第Ｌの描画順序ランクのモデルオブジェクトを描画する。【選択図】      図６
2006252292.tif 000002
【特許請求の範囲】
【請求項１】
画像を生成するためのプログラムであって、
複数のモデルオブジェクトの描画順序のランクを設定するためのランク情報を記憶するランク情報記憶部と、
各画素のＺ値を記憶するＺバッファと、
前記ランク情報に従った描画順序で、描画順序ランクの低いモデルオブジェクトから描画順序ランクの高いモデルオブジェクトへと、前記ＺバッファのＺ値を参照しながら前記複数のモデルオブジェクトを順次描画する描画部として、
コンピュータを機能させ、
前記描画部は、
第Ｋの描画順序ランクのモデルオブジェクトを描画することで生成された前記ＺバッファのＺ値をクリアした後に、前記第Ｋの描画順序ランクよりもランクが高い第Ｌの描画順序ランク（Ｋ、Ｌは、１≦Ｋ＜Ｎ、１＜Ｌ≦Ｎ、Ｋ＜Ｌとなる任意の整数）のモデルオブジェクトを描画することを特徴とするプログラム。
【請求項２】
請求項１において、
前記描画部は、
前記複数のモデルオブジェクトを描画する前に背景オブジェクトを描画し、前記背景オブジェクトの描画により生成された前記ＺバッファのＺ値をワークバッファにコピーしておき、
前記第Ｋの描画順序ランクのモデルオブジェクトを描画することで生成された前記ＺバッファのＺ値を、前記ワークバッファに合成し、合成後に前記ＺバッファのＺ値をクリアすることを特徴とするプログラム。
【請求項３】
請求項２において、
前記描画部は、
全ての前記複数のモデルオブジェクトの描画完了後に、前記ワークバッファに生成されたＺ値を前記Ｚバッファにコピーし、
前記ＺバッファにコピーされたＺ値に基づいて、前記複数のモデルオブジェクトよりも視点から見て手前側に配置されるオブジェクトの描画処理、及びＺ値を用いたフィルタ処理の少なくとも一方を行うことを特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記描画部は、
前記第Ｋの描画順序ランクに複数のモデルオブジェクトが属している場合に、前記ＺバッファのＺ値を参照しながら前記第Ｋの描画順序ランクに属している複数のモデルオブジェクトを描画し、描画後に前記ＺバッファのＺ値をクリアし、クリア後に前記第Ｌの描画順序ランクのモデルオブジェクトを描画することを特徴とするプログラム。
【請求項５】
請求項４において、
各描画順序ランクに属しているモデルオブジェクトの少なくとも個数情報を設定するためのリンク情報を記憶するリンク情報記憶部として、
コンピュータを機能させ、
前記描画部は、
前記リンク情報に基づいて、前記第Ｋの描画順序ランクに属している複数のモデルオブジェクトを描画することを特徴とするプログラム。
【請求項６】
請求項１乃至５のいずれかにおいて、
操作部からの操作情報に基づいて、複数のモデルオブジェクトを移動フィールド上の基準ライン上で移動・動作させる制御を行う移動・動作処理部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項７】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至６のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項８】
画像を生成する画像生成システムであって、
複数のモデルオブジェクトの描画順序のランクを設定するためのランク情報を記憶するランク情報記憶部と、
各画素のＺ値を記憶するＺバッファと、
前記ランク情報に従った描画順序で、描画順序ランクの低いモデルオブジェクトから描画順序ランクの高いモデルオブジェクトへと、前記ＺバッファのＺ値を参照しながら前記複数のモデルオブジェクトを順次描画する描画部とを含み、
前記描画部は、
第Ｋの描画順序ランクのモデルオブジェクトを描画することで生成された前記ＺバッファのＺ値をクリアした後に、前記第Ｋの描画順序ランクよりもランクが高い第Ｌの描画順序ランク（Ｋ、Ｌは、１≦Ｋ＜Ｎ、１＜Ｌ≦Ｎ、Ｋ＜Ｌとなる任意の整数）のモデルオブジェクトを描画することを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。ロールプレイングゲーム（ＲＰＧ）を楽しむことができる画像生成システムを例にとれば、プレイヤは、自身の分身であるキャラクタ（広義にはモデルオブジェクト）を操作してオブジェクト空間内のマップ上で移動させて、敵キャラクタと対戦したり、他のキャラクタと対話したり、様々な町を訪れたりすることでゲームを楽しむ。
【０００３】
このような画像生成システムでは、Ｚバッファを用いたＺバッファ法により隠面消去を行うのが一般的である。
【０００４】
ところが、ゲームの種類によっては、このようなＺバッファ法により一律に隠面消去を行うと、キャラクタ同士が重なり合って見えてしまう不具合画像が生成されてしまうことが判明した。例えば、従来の２次元ゲームの手法を踏襲し、戦闘シーンにおいて１本の基準ライン上で自キャラクタを移動させて敵キャラクタと対戦させるようなゲーム等においては、キャラクタ同士が重なり合って見えてしまう不具合画像が頻繁に生成されるおそれがある。
【特許文献１】特開２００４−７３２４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、隠面消去の柔軟な制御を可能にするプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明は、画像を生成する画像生成システムであって、複数のモデルオブジェクトの描画順序のランクを設定するためのランク情報を記憶するランク情報記憶部と、各画素のＺ値を記憶するＺバッファと、前記ランク情報に従った描画順序で、描画順序ランクの低いモデルオブジェクトから描画順序ランクの高いモデルオブジェクトへと、前記ＺバッファのＺ値を参照しながら前記複数のモデルオブジェクトを順次描画する描画部とを含み、前記描画部は、第Ｋの描画順序ランクのモデルオブジェクトを描画することで生成された前記ＺバッファのＺ値をクリアした後に、前記第Ｋの描画順序ランクよりもランクが高い第Ｌの描画順序ランク（Ｋ、Ｌは、１≦Ｋ＜Ｎ、１＜Ｌ≦Ｎ、Ｋ＜Ｌとなる任意の整数）のモデルオブジェクトを描画する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【０００７】
本発明によれば、ランク情報に基づいて、描画順序ランクの低いモデルオブジェクトから描画順序ランクの高いモデルオブジェクトへと複数のモデルオブジェクトが描画される。そして、第Ｋの描画順序ランクのモデルオブジェクトを描画することで生成されたＺバッファのＺ値をクリアした後に、ランクが高い第Ｌの描画順序ランクのモデルオブジェクトが描画される。このようにすれば、第Ｋの描画順序ランクのモデルオブジェクトと第Ｌの描画順序ランクのモデルオブジェクトの配置位置が同一であったり、近い場合などであっても、第Ｌの描画順序ランクのモデルオブジェクトの方が手前側に見える画像を生成できるようになる。また各モデルオブジェクト内においては、Ｚバッファを用いて適正な隠面消去処理が行われるようになる。従って、隠面消去の柔軟な制御を可能にする画像生成システム等を提供できる。
【０００８】
なおＺバッファのＺ値のクリアとは、例えばＺ値を無限遠を表す値に設定すること（Ｚ値を削除すること）を意味する。例えば仮想カメラから見て奥側になるほどＺ値が小さくなるシステムでは、Ｚ＝０に設定することでＺバッファのＺ値をクリアできる。また仮想カメラから見て奥側になるほどＺ値が大きくなるシステムでは、Ｚ＝無限大に設定することでＺバッファのＺ値をクリアできる。
【０００９】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部は、前記複数のモデルオブジェクトを描画する前に背景オブジェクトを描画し、前記背景オブジェクトの描画により生成された前記ＺバッファのＺ値をワークバッファにコピーしておき、前記第Ｋの描画順序ランクのモデルオブジェクトを描画することで生成された前記ＺバッファのＺ値を、前記ワークバッファに合成し、合成後に、前記ＺバッファのＺ値をクリアするようにしてもよい。
【００１０】
このようにすれば、背景オブジェクトの描画によりＺバッファに生成されたＺ値が、Ｚバッファのクリア処理により消失してしまう事態を防止できる。
【００１１】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部は、全ての前記複数のモデルオブジェクトの描画完了後に、前記ワークバッファに生成されたＺ値を前記Ｚバッファにコピーし、前記ＺバッファにコピーされたＺ値に基づいて、前記複数のモデルオブジェクトよりも視点から見て手前側に配置されるオブジェクトの描画処理、及びＺ値を用いたフィルタ処理の少なくとも一方を行うようにしてもよい。
【００１２】
このようにすれば、Ｚバッファに最終的に生成されたＺ値に基づいて、手前側のオブジェクトの適正な描画処理を行ったり、フィルタ処理を行うことが可能になる。
【００１３】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部は、前記第Ｋの描画順序ランクに複数のモデルオブジェクトが属している場合に、前記ＺバッファのＺ値を参照しながら前記第Ｋの描画順序ランクに属している複数のモデルオブジェクトを描画し、描画後に前記ＺバッファのＺ値をクリアし、クリア後に前記第Ｌの描画順序ランクのモデルオブジェクトを描画するようにしてもよい。
【００１４】
このようにすれば、同一の描画順序ランクに属する複数のモデルオブジェクトについては、Ｚバッファを用いて適正に隠面消去されてその画像が生成されるようになるため、生成される画像のバラエティ度を増すことができる。
【００１５】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、各描画順序ランクに属しているモデルオブジェクトの少なくとも個数情報を設定するためのリンク情報を記憶するリンク情報記憶部を含み（リンク情報記憶部としてコンピュータを機能させ）、前記描画部は、前記リンク情報に基づいて、前記第Ｋの描画順序ランクに属している複数のモデルオブジェクトを描画するようにしてもよい。
【００１６】
このようにすれば、同一の描画順序ランクに属する複数のモデルオブジェクトの個数をリンク情報に基づいて判断しながら、これらの複数のモデルオブジェクトの適切な描画処理を実現できるようになる。
【００１７】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、操作部からの操作情報に基づいて、複数のモデルオブジェクトを移動フィールド上の基準ライン上で移動・動作させる制御を行う移動・動作処理部を含むようにしてもよい（移動・動作処理部としてコンピュータを機能させるようにしてもよい）。
【発明を実施するための最良の形態】
【００１８】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００１９】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００２０】
操作部１６０は、プレイヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域やメインメモリとなるものであり、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００２１】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、ハードディスク、メモリーカード、メモリーカセット、磁気ディスク、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されているプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理手順をコンピュータに実行させるためのプログラム）が記憶される。
【００２２】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ（液晶表示装置）、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００２３】
携帯型情報記憶装置１９４は、プレイヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００２４】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバ）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信してもよい。このようなホスト装置（サーバ）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００２５】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００２６】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００２７】
オブジェクト空間設定部１１０は、キャラクタ、車、戦車、建物、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクト（モデルオブジェクト）の位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００２８】
移動・動作処理部１１２は、オブジェクト（キャラクタ、車、又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。即ち操作部１６０によりプレイヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクト（移動オブジェクト）をオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（各パーツオブジェクトの位置、或いは回転角度）を、１フレーム毎（１／６０秒）に順次求めるシミュレーション処理を行う。なおフレーム（フレームレート）は、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００２９】
また本実施形態では、移動・動作処理部１１２（移動処理部）は、操作部１６０からの操作情報に基づいて、複数のモデルオブジェクト（キャラクタ）を移動フィールド（移動マップ、ゲームフィールド）上の基準ライン（移動ライン）上で移動させたり、動作させる制御を行う。例えばプレイヤが操作部１６０により左移動を指示すると、モデルオブジェクトは基準ライン上で左に移動し、右移動を指示すると右に移動する。またプレイヤが操作部１６０により攻撃を指示すると、自身が操作するモデルオブジェクト（自キャラクタ）が敵のモデルオブジェクト（敵キャラクタ）に対して攻撃する動作を行う。
【００３０】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置や視線方向を制御する処理）を行う。
【００３１】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、ボール、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【００３２】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まず、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数プリミティブ面）を描画バッファ１７２（フレームバッファ、ワークバッファなどのピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ）に描画する。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお描画部１２０での描画処理は、いわゆるピクセルシェーダーや頂点シェーダーにより実現してもよい。
【００３３】
描画部１２０は、テクスチャマッピング処理や隠面消去処理やαブレンディング処理を行うことができる。
【００３４】
ここでテクスチャマッピング処理は、テクスチャ記憶部１７４に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングする処理である。具体的には、オブジェクト（プリミティブ面）の頂点に設定（付与）されるテクスチャ座標等を用いてテクスチャ記憶部１７４からテクスチャ（色、α値などの表面プロパティ）を読み出す。そして、２次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間（テクセル補間）などを行う。
【００３５】
また隠面消去処理は、例えば、各ピクセルのＺ値（奥行き情報）が格納されているＺバッファ１７６（奥行きバッファ）を用いるＺバッファ法（奥行き比較法、Ｚテスト）により実現される。即ちオブジェクトのプリミティブ面の各ピクセルを描画する際に、Ｚバッファ１７６に格納されているＺ値（カメラ座標系でのＺ値）を参照する。そして参照されたＺバッファ１７６のＺ値と、プリミティブ面の描画対象ピクセルでのＺ値とを比較し、描画対象ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば大きなＺ値）である場合には、そのピクセルの描画処理を行うと共にＺバッファ１７６のＺ値を新たなＺ値に更新する。
【００３６】
またαブレンディング処理は、α値（Ａ値）に基づいて行う処理であり、通常αブレンディング、加算αブレンディング或いは減算αブレンディングなどがある。例えば通常αブレンディングの場合には下式の処理を行う。
【００３７】
ＲQ＝（１−α）×Ｒ1＋α×Ｒ2
ＧQ＝（１−α）×Ｇ1＋α×Ｇ2
ＢQ＝（１−α）×Ｂ1＋α×Ｂ2
一方、加算αブレンディングの場合には下式の処理を行う。
【００３８】
ＲQ＝Ｒ1＋α×Ｒ2
ＧQ＝Ｇ1＋α×Ｇ2
ＢQ＝Ｂ1＋α×Ｂ2
また、減算αブレンディングの場合には下式の処理を行う。
【００３９】
ＲQ＝Ｒ1−α×Ｒ2
ＧQ＝Ｇ1−α×Ｇ2
ＢQ＝Ｂ1−α×Ｂ2
ここで、Ｒ1、Ｇ1、Ｂ1は、描画バッファ１７２（フレームバッファ）に既に描画されている画像（元画像）のＲＧＢ成分であり、Ｒ2、Ｇ2、Ｂ2は、描画バッファ１７２に描画すべき画像のＲＧＢ成分である。また、ＲQ、ＧQ、ＢQは、αブレンディングにより得られる画像のＲＧＢ成分である。なおα値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、半透明度（透明度、不透明度と等価）情報、マスク情報、或いはバンプ情報などとして使用できる。
【００４０】
そして本実施形態では、記憶部１７０のランク情報記憶部１７７が、モデルオブジェクト（複数のパーツオブジェクトにより構成されるオブジェクト）の描画順序のランクを設定（指定）するためのランク情報を記憶する。またリンク情報記憶部１７８が、各描画順序ランクに属している（登録されている）モデルオブジェクトの少なくとも個数情報を設定するためのリンク情報を記憶する。
【００４１】
描画部１２０は、ランク情報記憶部１７７に記憶されるランク情報に応じた描画順序で、描画順序ランクの低いモデルオブジェクトから描画順序ランクの高いモデルオブジェクトへと、複数のモデルオブジェクトをフレームバッファ（描画バッファ１７２の中の１つのバッファ）等に描画する。この際に、Ｚバッファ１７６のＺ値を参照してＺバッファ法により隠面消去を行う。例えば描画部１２０は、ＲＡＮＫ＝０の描画順序ランクのモデルオブジェクトを描画し、次にＲＡＮＫ＝１のモデルオブジェクトを描画し、次にＲＡＮＫ＝２のモデルオブジェクトを描画する。なお同一の描画順序ランクに属するモデルオブジェクトが複数存在する場合には、それらの複数のモデルオブジェクトを描画した後に、次の描画順序ランクのモデルオブジェクトを描画する。
【００４２】
そして描画部１２０は、例えば第Ｋの描画順序ランクのモデルオブジェクトを描画することで生成されたＺバッファ１７６のＺ値をクリアした後（初期化した後）に、第Ｋの描画順序ランクよりもランクが高い第Ｌの描画順序ランク（Ｋ、Ｌは、１≦Ｋ＜Ｎ、１＜Ｌ≦Ｎ、Ｋ＜Ｌとなる任意の整数）のモデルオブジェクトを描画する。例えばＲＡＮＫ＝０のモデルオブジェクトを描画することで生成されたＺバッファ１７６のＺ値をクリアした後に、ＲＡＮＫ＝１のモデルオブジェクトを描画する。またＲＡＮＫ＝１のモデルオブジェクトを描画することで生成されたＺバッファ１７６のＺ値をクリアした後に、ＲＡＮＫ＝２のモデルオブジェクトを描画する。
【００４３】
更に具体的には描画部１２０は、複数のモデルオブジェクトを描画する前にその背景オブジェクトを描画し、背景オブジェクトの描画により生成されたＺバッファ１７６のＺ値をワークバッファ（描画バッファ１７２の中の１つのバッファ）にコピー（退避）しておく。そして第Ｋの描画順序ランクのモデルオブジェクトを描画することで生成されたＺバッファ１７６のＺ値を、ワークバッファに合成し（書き込み）、合成後にＺバッファ１７６のＺ値をクリアする。例えばＲＡＮＫ＝０のモデルオブジェクトを描画し、描画により生成されたＺバッファ１７６のＺ値をワークバッファに合成する。即ち背景オブジェクトの描画によりワークバッファに生成されたＺ値のプレーンと、ＲＡＮＫ＝０のモデルオブジェクトの描画により生成されたＺバッファ１７６のＺ値のプレーンとを合成する。そして合成後にＺバッファ１７６をクリアする。次に、ＲＡＮＫ＝１のモデルオブジェクトを描画し、描画により生成されたＺバッファ１７６のＺ値をワークバッファに合成し、合成後にＺバッファ１７６をクリアする。
【００４４】
なお複数のモデルオブジェクトを描画する前に描画する背景オブジェクトは、モデルオブジェクトよりも視点から見て奥側のオブジェクトや、移動フィールド（地面）を構成するオブジェクトなどである。即ち例えばモデルオブジェクトに半透明処理が必要である場合に、モデルオブジェクトよりも奥側に書かれる可能性があるオブジェクトである。
【００４５】
また描画部１２０は、全ての複数のモデルオブジェクト（描画順序ランクが設定される全てのモデルオブジェクト）の描画完了後に、ワークバッファに生成されたＺ値をＺバッファ１７６にコピーする。そしてＺバッファ１７６にコピーされたＺ値に基づいて、モデルオブジェクトよりも視点から見て手前側に配置されるオブジェクト（例えば木等）の描画処理を行う。或いは、Ｚバッファに格納されたＺ値を用いたフィルタ処理（被写界深度、グレア、フォグのフィルタ等）を行う。この場合のフィルタ処理は、描画部１２０が含むフィルタ処理部１２２により行われる。
【００４６】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００４７】
なお、本実施形態の画像生成システムは、１人のプレイヤのみがプレイできるシングルプレイヤモード専用のシステムにしてもよいし、複数のプレイヤがプレイできるマルチプレイヤモードも備えるシステムにしてもよい。また複数のプレイヤがプレイする場合に、これらの複数のプレイヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００４８】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【００４９】
２．１  モデルオブジェクト同士が重なり合う不具合
ロールプレイングゲームや格闘ゲームなどでは、従来の２次元ゲームの移動制御システムを踏襲するものがある。例えば図２（Ａ）では、モデルオブジェクトＯＢ１、ＯＢ２（狭義にはキャラクタ）は、基準ラインＢＬ（移動ライン）上で移動する。具体的には第１のプレイヤの操作により、ＯＢ１は基準ラインＢＬ上で左右に移動し、第２のプレイヤ又はコンピュータの操作により、ＯＢ２は基準ラインＢＬ上で左右に移動する。そしてＯＢ１、ＯＢ２が接近して、プレイヤが攻撃操作を行うと、ＯＢ１、ＯＢ２間での戦闘が行われる。なお基準ラインＢＬは例えばワールド座標系でのＺＷが一定となるライン（例えばＺＷ＝０）である。但し、基準ラインＢＬはＺＷが一定とならないラインであってもよいし、直線のみならず、曲線であってもよい。
【００５０】
通常の３次元ゲームでは、モデルオブジェクトＯＢ１、ＯＢ２が移動フィールド（地面、マップ、ゲーム空間）上で自由な方向に移動できる移動制御システムを採用するのが一般的である。しかしながら、この移動制御システムでは、ＯＢ１、ＯＢ２の移動の自由度が高すぎて、プレイヤが操作に混乱するおそれがある。
【００５１】
この点、図２（Ａ）のような移動制御システムによれば、モデルオブジェクトＯＢ１、ＯＢ２の移動の自由度が、左右方向（ＸＷ軸上の方向）だけであるため、プレイヤの操作を簡素化できる。特に従来の２次元ゲームの移動制御システムに慣れているプレイヤにとっては、３次元ゲームであっても図２（Ａ）のような移動制御システムを踏襲している方が望ましい。
【００５２】
ところが図２（Ａ）の移動制御システムでは、モデルオブジェクトＯＢ１、ＯＢ２が同一位置に配置（同一のＸＷ、ＺＷ座標）されたり、接近した場合に、図３に示すように、ＯＢ１、ＯＢ２のポリゴン同士が交差して重なり合ってしまう不具合が生じる。例えば通常の３次元ゲームの移動制御システムでは、各モデルオブジェクトＯＢ１、ＯＢ２には、その形状が簡素化されたヒットボックスが設定されている。そして、これらのヒットボックス間のヒットチェック処理が行われ、ＯＢ１、ＯＢ２が同一位置に配置されることが許容されないため、図３のような不具合は生じない。
【００５３】
しかしながら図２（Ａ）の移動制御システムでは、モデルオブジェクトＯＢ１、ＯＢ２が同一位置に配置されることが許容される場合もある。特に複数のモデルオブジェクト（キャラクタ）がパーティを組む場合には、これらの複数のモデルオブジェクトが同一位置に配置される場合が多いため、図３のような不具合が頻繁に生じる。
【００５４】
この場合、図２（Ａ）の移動制御システムにおいてこのような不具合を解消する１つの手法として、図２（Ｂ）のようにモデルオブジェクトＯＢ１、ＯＢ２のＺＷをずらしてしまう手法も考えられる。例えば図２（Ｂ）ではモデルオブジェクトＯＢ１のＺＷを負の方向にずらし、ＯＢ２のＺＷを正の方向にずらしている。
【００５５】
しかしながら図２（Ｂ）の手法では、モデルオブジェクトＯＢ１とＯＢ２のパースペクティブ（perspective）が異なったものになってしまう。即ち図２（Ｂ）に示すように仮想カメラＶＣの視点位置のＺＷが正となり且つ視線方向がＺＷの負の方向を向いている場合には、仮想カメラＶＣ（視点）から見て、ＯＢ１が小さく見え、ＯＢ２が大きく見えてしまう。特に味方の複数のモデルオブジェクトがパーティを組んで同一位置に並んでいる場合には、図２（Ｂ）の手法ではこれらのモデルオブジェクトが異なった大きさに見えてしまい、見栄えが悪くなってしまう。
【００５６】
２．２  ランク情報に基づく描画
そこで本実施形態では複数のモデルオブジェクトの描画順序のランクを設定（指定、判断）するためのランク情報ＲＡＮＫの概念を導入している。例えば図４では最も低いＲＡＮＫ＝０（広義には第Ｋの描画順序ランク）にはモデルオブジェクトＯＢ１が属しており、ＲＡＮＫ＝０よりも描画順序ランクが高いＲＡＮＫ＝１（広義には第Ｌの描画順序ランク）にはＯＢ２が属している。また次のＲＡＮＫ＝２には複数のモデルオブジェクトＯＢ３、ＯＢ４が属しており、ＲＡＮＫ＝３にはＯＢ５、ＯＢ６、ＯＢ７が属し、ＲＡＮＫ＝４にはＯＢ８、ＯＢ９が属している。
【００５７】
また図４においてリンク情報ＬＩＮＫは、各描画順序ランクに属しているモデルオブジェクトの少なくとも個数情報を設定（指定、判断）するための情報である。ＲＡＮＫは、モデルオブジェクトを登録することができるボックスのようなものに相当し、各ＲＡＮＫ内には、ＬＩＮＫに相当する１又は複数のモデルオブジェクトを登録することができる。例えば図４では、ＲＡＮＫ＝０にはＬＩＮＫ＝０であるＯＢ１が登録されている。またＲＡＮＫ＝１にはＬＩＮＫ＝０であるＯＢ２が登録されている。またＲＡＮＫ＝２にはＬＩＮＫ＝０であるＯＢ３と、ＬＩＮＫ＝１であるＯＢ４が登録されている。各ＲＡＮＫに設定されているＬＩＮＫを参照することで、各ＲＡＮＫに属しているモデルオブジェクトの個数情報を知ることができる。なおランク情報やリンク情報の形態は図４に示すものに限定されず、種々の変形実施が可能である。
【００５８】
本実施形態では、ランク情報ＲＡＮＫに応じた描画順序で、描画順序ランクの低いモデルオブジェクトから描画順序の高いモデルオブジェクトへと、モデルオブジェクトが描画される。例えば図４では、まずＲＡＮＫ＝０のＯＢ１が描画され、次にＲＡＮＫ＝１のＯＢ２が描画される。そしてＲＡＮＫ＝２のＯＢ３、ＯＢ４が描画され、次にＲＡＮＫ＝３のＯＢ５、ＯＢ６、ＯＢ７が描画される。次にＲＡＮＫ＝４のＯＢ８、ＯＢ９が描画される。なお同一ランク内における複数のモデルオブジェクトの描画順序は任意である。例えばＲＡＮＫ＝３におけるＯＢ５、ＯＢ６、ＯＢ７の描画順序は任意である。
【００５９】
そして本実施形態では、第Ｋの描画順序ランクのモデルオブジェクトを描画することで生成されたＺバッファのＺ値をクリアした後に、第Ｋの描画順序ランクよりもランクが高い第Ｌの描画順序ランクのモデルオブジェクトが描画される。例えば図５に示すように、ＲＡＮＫ＝０（第Ｋの描画順序ランク）のＯＢ１を描画することで生成されたＺバッファのＺ値をクリアした後に、次のＲＡＮＫ＝１（第Ｌの描画順序ランク）のＯＢ２が描画される。例えば仮想カメラから見て遠いほどＺ値（カメラ座標系）が小さくなるシステムでは、ＺバッファのＺ値をＺ＝０にすることで、Ｚバッファをクリアできる。一方、仮想カメラから見て遠いほどＺ値が大きくなるシステムでは、ＺバッファのＺ値をＺ＝無限大に設定することで、Ｚバッファをクリアできる。
【００６０】
更に具体的には本実施形態では図６のＡ１に示すように、複数のモデルオブジェクトを描画する前に背景オブジェクト（遠景、移動フィールドのオブジェクト）を描画し、背景オブジェクトの描画により生成されたＺバッファのＺ値をワークバッファにコピー（退避）しておく。そしてＡ２に示すように、ＲＡＮＫ＝０（第Ｋの描画順序ランク）のＯＢ１を描画することで生成されたＺバッファのＺ値を、ワークバッファに合成する。ここで、ワークバッファへのＺ値の合成は、モデルオブジェクトの描画により更新されたＺ値（Ｚ値が更新された領域）だけを、ワークバッファ上において更新することで実現できる。
【００６１】
次にＡ３に示すように、ワークバッファへの合成後にＺバッファのＺ値をクリアする。そしてＡ４に示すように、ＺバッファのＺ値のクリア後に次のＲＡＮＫ＝１（第Ｌの描画順序ランク）のＯＢ２を描画し、この描画により生成されたＺバッファのＺ値をワークバッファに合成する。そして合成後にＺバッファのＺ値をクリアし、次のＲＡＮＫ＝２のＯＢ３、ＯＢ４を描画する。
【００６２】
そして、ＲＡＮＫが設定された全てのモデルオブジェクトＯＢ１〜ＯＢ９の描画完了後に、ワークバッファに生成されたＺ値をＺバッファにコピーして書き戻す。そしてＺバッファにコピーされたＺ値に基づいて、複数のモデルオブジェクトよりも視点から見て手前側に配置されるオブジェクトの描画処理を行う。或いはＺ値を用いたフィルタ処理を行う。
【００６３】
この場合のフィルタ処理としては、Ｚ値（Ｚプレーン）をα値（αプレーン）に変換し、この変換により得られたα値に基づくフィルタ処理などが考えられる。例えば、変換により得られたα値に基づいて、元画像（透視変換後のオブジェクトを描画することで得られる画像）と、そのぼかし画像をαブレンディングすることで、被写界深度のフィルタ処理を実現できる。また、変換により得られたα値に基づいて、元画像とフォグ色（所与の色）を合成することで、フォグのフィルタ処理を実現できる。なおＺ値を色情報に変換し、この変換により得られた色情報に基づくフィルタ処理を行ってもよい。またＺ値をα値や色情報に変換する処理は、Ｚ値をカラールックアップテーブルＣＬＵＴのインデックス番号に設定し、ＣＬＵＴを用いたインデクッスカラー・テクスチャマッピングを行うことで実現できる。
【００６４】
図７に本実施形態の手法により生成された画像の例を示す。図７に示すように本実施形態の手法によれば、モデルオブジェクトＯＢ１、ＯＢ２が同一位置（ほぼ同一位置）に配置されていたとしても、これらが適正に隠面消去されて表示されるようになり、図３の不具合を解消できる。
【００６５】
即ち図７では、ＯＢ１はＲＡＮＫ＝０に属し、ＯＢ２はＲＡＮＫ＝１に属しており、ＯＢ２の方が描画順序ランクが高く設定されている。従って、ＯＢ１が描画された後に、Ｚバッファがクリアされて、その後にＯＢ２が描画されるようになる。このため、たとえＯＢ１、ＯＢ２が同一位置（同一のＸＷ、ＺＷ座標）に配置されていたとしても、常にＯＢ２の方が手前側に表示されるようになり、ＯＢ１とＯＢ２が重なり合って見える不具合を解消できる。従って図２（Ａ）のような移動制御システムにおいても、不具合の無い画像を生成できる。特にＯＢ１、ＯＢ２が味方同士でパーティを組む場合には、図７においてＯＢ１、ＯＢ２が同一方向を向き、同一位置（ほぼ同一位置）に配置される場合が多いが、このような場合にも本実施形態の手法によれば不具合の発生を効果的に防止できる。
【００６６】
また図２（Ｂ）のようにＯＢ１、ＯＢ２のＺＷずらして配置する手法では、図２（Ｂ）のように仮想カメラＶＣが配置されている場合に、ＯＢ１、ＯＢ２のパースペクティブが異なってしまい、ＯＢ１が小さく見え、ＯＢ２が大きく見えてしまうという問題点がある。
【００６７】
これに対して本実施形態の手法によれば、ＯＢ１、ＯＢ２のＺＷをずらさなくても済む。従って図７に示すように、ＯＢ１、ＯＢ２が同一位置（ほぼ同一位置）に配置されていたとしても、これらのＯＢ１、ＯＢ２のパースペクティブは同じになる。従って、ＯＢ１が小さく見え、ＯＢ２が大きく見えてしまうという不具合の発生も防止できる。なお本実施形態でのモデルオブジェクトの移動制御手法は図２（Ａ）の手法に限定されない。例えばＺＷが一定にならない基準ライン上でモデルオブジェクトを移動させる制御を行ったり、基準ラインに制限されることなくモデルオブジェクトを移動させる制御を行うようにしてもよい。
【００６８】
また本実施形態ではランク情報ＲＡＮＫに基づいて、モデルオブジェクトの描画順序ランクが制御される。従って例えば図８に示すように、図７とは逆にＯＢ１の方を手前側に表示し、ＯＢ２の方を奥側に表示することも容易に制御できる。即ち図４ではＯＢ１はＲＡＮＫ＝０に設定され、ＯＢ２はＲＡＮＫ＝１に設定されているため、図７のような画像が表示されている。これに対して、ＯＢ２をＲＡＮＫ＝０に設定し、ＯＢ１をＲＡＮＫ＝１に設定すれば、図８のような画像が表示されるようになる。
【００６９】
例えば複数のモデルオブジェクトがパーティを組んで敵と対戦する場合には、特殊技などの効果的な技を繰り出すモデルオブジェクトを目立たせて表示することが望ましい。本実施形態ではランク情報ＲＡＮＫという概念を導入しているため、このような表示制御も容易に行うことができる。例えばＯＢ２が特殊技を繰り出す場合には、ＯＢ２のＲＡＮＫを高い値に設定すれば、図７に示すようにＯＢ２が手前側に表示されるようになる。これにより、ＯＢ２の繰り出す特殊技をプレイヤに効果的に見せることが可能になる。一方、ＯＢ１が特殊技を繰り出す場合には、ＯＢ１のＲＡＮＫを高い値に設定すれば、図８に示すようにＯＢ１が手前側に表示されるようになる。これにより、ＯＢ１の繰り出す特殊技をプレイヤに効果的に見せることが可能になる。
【００７０】
また本実施形態の手法によれば、図９に示すように、２つのみならず３つ以上のモデルオブジェクトを同一位置に配置した場合にも、不具合の無い画像を生成できる。例えば図９では、ＯＢ１がＲＡＮＫ＝０、ＯＢ２がＲＡＮＫ＝１、ＯＢ３がＲＡＮＫ＝２に設定される。従って、ＯＢ１が最も奥側に表示され、ＯＢ３が最も手前側に表示され、ＯＢ２がその間に表示されるようになる。このように、３つ以上のモデルオブジェクトを配置する場合に、図２（Ｂ）のような手法を採用すると、これらのモデルオブジェクトの大きさの違いが更に目立ってしまう事態が生じるが、本実施形態によればこのような事態を防止できる。
【００７１】
また本実施形態によれば図６で説明したように、背景の描画により生成されたＺ値をワークバッファに退避しておき、各モデルオブジェクトを生成することで得られるＺ値をこのワークバッファに合成し、最終的にワークバッファに生成されたＺ値をＺバッファにコピーして戻す手法を採用している。従って、このコピー後の最終的なＺバッファのＺ値を用いることで、モデルオブジェクトの描画後に描画されるオブジェクトの適正な隠面消去処理が可能になる。また、コピー後のＺバッファのＺ値を用いて、適正なフィルタ処理を行うことも可能になる。
【００７２】
即ち本実施形態では、モデルオブジェクトを描画する毎にＺバッファをクリアしている。従って、ＺバッファのＺ値をワークバッファにコピーして退避する手法を採用しないと、モデルオブジェクトの描画後に描画されるオブジェクトの適正な隠面消去処理や、ＺバッファのＺ値を用いた適正なフィルタ処理を実現できない事態が生じるおそれがあるが、図６の手法を採用すればこのような事態を防止できる。
【００７３】
また本実施形態によれば、同一のＲＡＮＫ（第Ｋの描画順序ランク）に複数のモデルオブジェクトを所属（登録）させることができるため、図１０のような画像を生成することも可能になる。即ち図４、図１０では、モデルオブジェクトＯＢ３、ＯＢ４が同一のＲＡＮＫ＝２に属している。この場合には、Ｚバッファを参照しながらこれらのＯＢ３、ＯＢ４を描画し、その後にＺバッファのＺ値をクリアする。そしてＺバッファのクリア後に、次のＲＡＮＫ＝３のＯＢ５、ＯＢ６、ＯＢ７を描画するようにする。
【００７４】
このように同一のＲＡＮＫへの複数のモデルオブジェクトの所属を許容すれば、更に多彩な画像表現が可能になる。例えばモデルオブジェクト（キャラクタ）同士が戦闘する場面においては、図７のようにＯＢ２がＯＢ１の常に手前に見えるような画像を生成するよりも、これらが重なって表示される画像を生成する方が望ましい場合がある。
【００７５】
このような場合でも、本実施形態によれば、ＯＢ３、ＯＢ４を同一のＲＡＮＫに登録することで、図１０のようにＯＢ３、ＯＢ４が重なって表示される画像を生成できるようになる。この図１０の表示によれば、ＯＢ３とＯＢ４があたかも腕等を組んで戦っているかのように見える画像を生成できる。また例えばＯＢ３、ＯＢ４が武器を所持しているような場合に、これらの武器間の隠面消去が適正に行われるようになる。従って、自然でリアルな画像を生成できると共に生成される画像のバラエティ度を増すことができる。
【００７６】
なお、同一のＲＡＮＫに複数のモデルオブジェクトが属している場合には、図４に示すようなリンク情報ＬＩＮＫに基づいて、これらの複数のモデルオブジェクトを描画すればよい。即ちＬＩＮＫに基づいて、当該ＲＡＮＫにおいて描画する必要があるモデルオブジェクトの個数を判断する。そしてその個数のモデルオブジェクトの描画が完了した後に、ＺバッファのＺ値をクリアし、次のＲＡＮＫのモデルオブジェクトを描画すればよい。また図１０に示すような画像を生成する場合等においては、図２（Ｂ）のようにモデルオブジェクトのＺ値を少しだけずらす手法を採用することも可能である。
【００７７】
２．３  詳細な処理例
次に本実施形態の詳細な処理例を図１１のフローチャートを用いて説明する。
【００７８】
まず背景オブジェクト（キャラクタよりも奥側のオブジェクト）を描画する（ステップＳ１）。この背景オブジェクトとしては、空や山などの遠景オブジェクトや、地面等の移動フィールドオブジェクト（マップオブジェクト）などがある。そして図６のＡ１で説明したようにＺバッファのＺ値をワークバッファにコピーして退避する（ステップＳ２）。
【００７９】
次にＲＡＮＫ＝０に設定し（ステップＳ３）、ＺバッファのＺ値をクリアする（ステップＳ４）。またＬＩＮＫ＝０に設定する（ステップＳ５）。
【００８０】
次に、現在のＬＩＮＫのキャラクタ（モデルオブジェクト）を描画する（ステップＳ６）。例えば図４のようにＬＩＮＫが設定されている場合には、ＲＡＮＫ＝０のＯＢ１が描画される。そして描画後に、ＬＩＮＫをＬＩＮＫ＋１にインクリメントする（ステップＳ７）。
【００８１】
次にＲＡＮＫ内の全てのキャラクタの描画が完了したか否かを判断し（ステップＳ８）、完了していない場合にはステップＳ６の処理に戻り、キャラクタの個数分だけステップＳ６〜Ｓ８の処理を繰り返す。例えば図４においてＲＡＮＫ＝２の場合にはステップＳ６〜Ｓ８の処理が２回繰り返され、ＲＡＮＫ＝３の場合には３回繰り返される。
【００８２】
ＲＡＮＫ内の全てのキャラクタの描画が完了すると、図６のＡ２、Ａ４で説明したように、現在のＺバッファの内容とワークバッファの内容を合成する（ステップＳ９）。そしてＲＡＮＫをＲＡＮＫ＋１にインクリメントする（ステップＳ１０）。
【００８３】
次に全てのＲＡＮＫについての描画が完了したか否かを判断し（ステップＳ１１）、完了していない場合にはステップＳ４の処理に戻る。そして全てのＲＡＮＫについての描画が完了するまで、ステップＳ４〜Ｓ１１の処理を繰り返す。
【００８４】
全てのＲＡＮＫについての描画が完了すると、図６のＡ５で説明したように、ワークバッファのＺ値をＺバッファにコピー（上書き）する（ステップＳ１２)。そして、キャラクタよりも手前側のオブジェクトである背景オブジェクトを描画する（ステップＳ１３）。そして、必要であれば、ＺバッファのＺ値を用いたフィルタ処理を行う（ステップＳ１４）。
【００８５】
３．ハードウェア構成
図１３に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【００８６】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセラレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【００８７】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【００８８】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【００８９】
ＲＯＭ９５０にはシステムプログラムなどが格納されている。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されている。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されているＣＤ９８２にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【００９０】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されているプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００９１】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納されている。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【００９２】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語（描画バッファ、モデルオブジェクト等）と共に記載された用語（フレームバッファ・ワークバッファ、キャラクタ等）は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。
【００９３】
また、ランク情報、リンク情報の形態や、モデルオブジェクトの描画手法や、モデルオブジェクトへのランクの設定手法や、Ｚバッファの更新・クリア手法なども、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。例えば図６のＡ１、Ａ２、Ａ４、Ａ５の処理を行わない手法を採用することも可能である。
【００９４】
また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレイヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【００９５】
【図１】本実施形態の画像生成システムの機能ブロック図の例。
【図２】図２（Ａ）（Ｂ）は移動制御手法やその不具合を解消する手法の説明図。
【図３】従来の手法での不具合画像の例。
【図４】本実施形態のランク情報、リンク情報の説明図。
【図５】本実施形態の手法の説明図。
【図６】本実施形態の手法の詳細例の説明図。
【図７】本実施形態により生成された画像の例。
【図８】本実施形態により生成された画像の例。
【図９】本実施形態により生成された画像の例。
【図１０】本実施形態により生成された画像の例。
【図１１】本実施形態の処理の詳細例。
【図１２】本実施形態の処理の詳細例。
【図１３】ハードウェア構成例。
【符号の説明】
【００９６】
ＯＢ１〜ＯＢ９  モデルオブジェクト
１００  処理部、１１０  オブジェクト空間設定部、１１２  移動・動作処理部、
１１４  仮想カメラ制御部、１２０  描画部、１２２  フィルタ処理部、
１３０  音生成部、１６０  操作部、１７０  記憶部、１７２  描画バッファ、
１７４  テクスチャ記憶部、１７６  Ｚバッファ、１７７  ランク情報記憶部、
１７８  リンク情報記憶部、１８０  情報記憶媒体、１９０  表示部、
１９２  音出力部、１９４  携帯型情報記憶装置、１９６  通信部
【図１】
2006252292.tif 000003
【図２】
2006252292.tif 000004
【図４】
2006252292.tif 000005
【図５】
2006252292.tif 000006
【図６】
2006252292.tif 000007
【図１１】
2006252292.tif 000008
【図１２】
2006252292.tif 000009
【図１３】
2006252292.tif 000010
【図３】
2006252292.tif 000011
【図７】
2006252292.tif 000012
【図８】
2006252292.tif 000013
【図９】
2006252292.tif 000014
【図１０】
2006252292.tif 000015