(57)【特許請求の範囲】
【請求項１】
画像生成のためのプログラムであって、
オブジェクト空間の各位置において仮想カメラから見えるべき各遠景画像を含む複数の遠景画像を記憶する遠景画像記憶部と、
仮想カメラの制御を行う仮想カメラ制御部と、
前記遠景画像記憶部に記憶される前記複数の遠景画像のうち、仮想カメラの位置により特定される遠景画像を、仮想カメラから所与の距離だけ離れた位置に配置されるプリミティブ面により構成される遠景マップオブジェクトに対してマッピングして、オブジェクト空間において仮想カメラから見える画像を生成する画像生成部として、
コンピュータを機能させ、
前記遠景マップオブジェクトは、複数のプリミティブ面により構成される遠景キューブマップオブジェクトであり、
前記遠景画像記憶部は、
前記遠景キューブマップオブジェクトに対してマッピングされる遠景画像を記憶し、
前記画像生成部は、
前記遠景画像記憶部に記憶される遠景画像を、前記遠景キューブマップオブジェクトに対してマッピングし、
前記遠景画像記憶部は、
オブジェクト空間の各位置において仮想カメラから見えるべき前記各遠景画像として、前記遠景マップオブジェクトのプリミティブ面の位置よりも仮想カメラから見て遠くにあるオブジェクトが、遠景オブジェクトとして描かれる遠景画像を記憶し、
前記画像生成部は、
前記遠景画像記憶部に記憶される前記複数の遠景画像の中から、仮想カメラが配置されるオブジェクト空間内の各位置に対応する遠景画像を、前記遠景マップオブジェクトに対してマッピングすることを特徴とするプログラム。
【請求項２】
請求項１において、
前記遠景画像記憶部は、
オブジェクト空間の各位置において仮想カメラを上下左右前後に向けた時に見えるべき各画像を、前記遠景画像として記憶し、
前記画像生成部は、
前記遠景キューブマップオブジェクトを構成する複数のプリミティブ面の各プリミティブ面に対して、仮想カメラを上下左右前後に向けた時に見えるべき前記各画像をマッピングすることを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記画像生成部は、
前記遠景画像に描かれる遠景オブジェクトよりも仮想カメラから見て近くに配置設定される近景オブジェクトの描画処理を行うことを特徴とするプログラム。
【請求項４】
請求項３において、
前記画像生成部は、
前記遠景マップオブジェクトのプリミティブ面の位置よりも仮想カメラから見て近くにあるオブジェクトを、近景オブジェクトとして描画することを特徴とするプログラム。
【請求項５】
請求項４において、
前記画像生成部は、
前記遠景マップオブジェクトのプリミティブ面の位置よりも所与の距離範囲だけ遠くにあるオブジェクトについても、近景オブジェクトとして描画することを特徴とするプログラム。
【請求項６】
画像生成のためのプログラムであって、
オブジェクト空間の各位置において仮想カメラから見えるべき各遠景画像を含む複数の遠景画像を記憶する遠景画像記憶部と、
仮想カメラの制御を行う仮想カメラ制御部と、
前記遠景画像記憶部に記憶される前記複数の遠景画像のうち、仮想カメラの位置により特定される遠景画像を、仮想カメラから所与の距離だけ離れた位置に配置されるプリミティブ面により構成される遠景マップオブジェクトに対してマッピングして、オブジェクト空間において仮想カメラから見える画像を生成する画像生成部として、
コンピュータを機能させ、
前記遠景画像記憶部は、
遠景オブジェクトが配置されるオブジェクト空間の各位置において仮想カメラから見えるべき各遠景画像を生成する処理の際に、Ｚバッファ法の隠面消去処理により生成されたＺ値を記憶し、
前記画像生成部は、
オブジェクトの描画の際に、オブジェクトのＺ値のみならず、遠景画像の前記Ｚ値を用いて、隠面消去処理を行うと共に、
前記遠景画像記憶部は、
オブジェクト空間の各位置において仮想カメラから見えるべき前記各遠景画像として、前記遠景マップオブジェクトのプリミティブ面の位置よりも仮想カメラから見て遠くにあるオブジェクトが、遠景オブジェクトとして描かれる遠景画像を記憶し、
前記画像生成部は、
前記遠景画像記憶部に記憶される前記複数の遠景画像の中から、仮想カメラが配置されるオブジェクト空間内の各位置に対応する遠景画像を、前記遠景マップオブジェクトに対してマッピングすることを特徴とするプログラム。
【請求項７】
請求項６において、
仮想カメラの視線方向と前記遠景マップオブジェクトとの位置関係に応じて、前記Ｚ値の変換処理を行う変換処理部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項８】
請求項６又は７において、
前記遠景マップオブジェクトは、遠景キューブマップオブジェクトであり、
前記遠景画像記憶部は、
前記遠景キューブマップオブジェクトに対してマッピングされる遠景画像を記憶し、
前記画像生成部は、
前記遠景画像記憶部に記憶される遠景画像を、前記遠景キューブマップオブジェクトに対してマッピングすることを特徴とするプログラム。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記画像生成部は、
前記遠景マップオブジェクトの遠景画像を、環境マッピング画像として、オブジェクト空間で移動する移動体に対して環境マッピングすることを特徴とするプログラム。
【請求項１０】
請求項１乃至９のいずれかにおいて、
前記遠景画像記憶部は、
前記複数の遠景画像を圧縮画像として記憶し、
前記画像生成部は、
前記圧縮画像を伸長することにより得られた遠景画像を、前記遠景マップオブジェクトにマッピングすることを特徴とするプログラム。
【請求項１１】
請求項１０において、
前記遠景画像記憶部は、
複数の遠景画像を圧縮ムービーテクスチャとして記憶し、
前記画像生成部は、
前記圧縮ムービーテクスチャを伸長することにより得られた遠景画像を、前記遠景マップオブジェクトにマッピングすることを特徴とするプログラム。
【請求項１２】
請求項１０又は１１において、
前記遠景画像記憶部は、
仮想カメラによる画像生成の際のオブジェクト空間での位置が互いに近い遠景画像ほど、そのフレーム番号が近い番号になるように圧縮された圧縮画像を記憶することを特徴とするプログラム。
【請求項１３】
請求項１２において、
前記画像生成部は、
前記圧縮画像を伸長することにより得られる複数の遠景画像の中から、仮想カメラの位置に対応する遠景画像を前記フレーム番号により特定し、特定された遠景画像を、前記遠景マップオブジェクトにマッピングすることを特徴とするプログラム。
【請求項１４】
請求項１０乃至１３のいずれかにおいて、
前記複数の遠景画像のうち、仮想カメラの周囲の所与の範囲に対応する遠景画像の圧縮画像だけが伸長され、
前記画像生成部は、
伸長により得られた前記所与の範囲に対応する遠景画像の中から、仮想カメラの位置に対応する遠景画像を、前記遠景マップオブジェクトにマッピングすることを特徴とするプログラム。
【請求項１５】
画像生成のためのプログラムであって、
オブジェクト空間の各位置において仮想カメラから見えるべき各遠景画像を含む複数の遠景画像を記憶する遠景画像記憶部と、
仮想カメラの制御を行う仮想カメラ制御部と、
前記遠景画像記憶部に記憶される前記複数の遠景画像のうち、仮想カメラの位置により特定される遠景画像を、仮想カメラから所与の距離だけ離れた位置に配置されるプリミティブ面により構成される遠景マップオブジェクトに対してマッピングして、オブジェクト空間において仮想カメラから見える画像を生成する画像生成部として、
コンピュータを機能させ、
前記遠景画像記憶部は、
前記複数の遠景画像を圧縮画像として記憶し、
前記画像生成部は、
前記圧縮画像を伸長することにより得られた遠景画像を、前記遠景マップオブジェクトにマッピングし、
前記複数の遠景画像のうち、仮想カメラの周囲の所与の範囲に対応する遠景画像の圧縮画像だけが伸長され、
前記画像生成部は、
伸長により得られた前記所与の範囲に対応する遠景画像の中から、仮想カメラの位置に対応する遠景画像を、前記遠景マップオブジェクトにマッピングすると共に、
前記遠景画像記憶部は、
オブジェクト空間の各位置において仮想カメラから見えるべき前記各遠景画像の圧縮画像として、前記遠景マップオブジェクトのプリミティブ面の位置よりも仮想カメラから見て遠くにあるオブジェクトが、遠景オブジェクトとして描かれる遠景画像の圧縮画像を記憶し、
前記画像生成部は、
前記遠景画像記憶部に記憶される前記複数の遠景画像の中から、仮想カメラが配置されるオブジェクト空間内の各位置に対応する遠景画像を、前記遠景マップオブジェクトに対してマッピングすることを特徴とするプログラム。
【請求項１６】
請求項１乃至１５のいずれかにおいて、
各画像が複数の画面の各々に表示される複数の画像を生成する場合に、第１の仮想カメラから見える第１の画面用の第１の画像と、第２の仮想カメラから見える第２の画面用の第２の画像を、遠景画像記憶部に記憶される遠景画像を共用して生成することを特徴とするプログラム。
【請求項１７】
請求項１乃至１６のいずれかにおいて、
前記画像生成部は、
前記複数の遠景画像の中から、仮想カメラの位置に対応する遠景画像として、第１〜第Ｎ（Ｎは２以上の整数）の位置に対応付けられた第１〜第Ｎの遠景画像を読み出し、読み出された第１〜第Ｎの遠景画像を合成した画像を、前記遠景マップオブジェクトに対してマッピングすることを特徴とするプログラム。
【請求項１８】
請求項１乃至１７のいずれかにおいて、
前記遠景画像記憶部は、
遠景オブジェクトが配置されるオブジェクト空間の各位置に配置された仮想カメラにより仮想カメラの周囲を見渡したときに見えるべき各遠景画像を、オブジェクト空間の各位置に対応付けて記憶し、
前記画像生成部は、
前記遠景画像記憶部に記憶される前記複数の遠景画像のうち、仮想カメラの位置に対応付けられた遠景画像を前記遠景マップオブジェクトに対してマッピングして、オブジェクト空間において仮想カメラから見える画像を生成することを特徴とするプログラム。
【請求項１９】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至１８のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項２０】
画像を生成する画像生成システムであって、
オブジェクト空間の各位置において仮想カメラから見えるべき各遠景画像を含む複数の遠景画像を記憶する遠景画像記憶部と、
仮想カメラの制御を行う仮想カメラ制御部と、
前記遠景画像記憶部に記憶される前記複数の遠景画像のうち、仮想カメラの位置により特定される遠景画像を、仮想カメラから所与の距離だけ離れた位置に配置されるプリミティブ面により構成される遠景マップオブジェクトに対してマッピングして、オブジェクト空間において仮想カメラから見える画像を生成する画像生成部と、
を含み、
前記遠景マップオブジェクトは、複数のプリミティブ面により構成される遠景キューブマップオブジェクトであり、
前記遠景画像記憶部は、
前記遠景キューブマップオブジェクトに対してマッピングされる遠景画像を記憶し、
前記画像生成部は、
前記遠景画像記憶部に記憶される遠景画像を、前記遠景キューブマップオブジェクトに対してマッピングすると共に、
前記遠景画像記憶部は、
オブジェクト空間の各位置において仮想カメラから見えるべき前記各遠景画像として、前記遠景マップオブジェクトのプリミティブ面の位置よりも仮想カメラから見て遠くにあるオブジェクトが、遠景オブジェクトとして描かれる遠景画像を記憶し、
前記画像生成部は、
前記遠景画像記憶部に記憶される前記複数の遠景画像の中から、仮想カメラが配置されるオブジェクト空間内の各位置に対応する遠景画像を、前記遠景マップオブジェクトに対してマッピングすることを特徴とする画像生成システム。
【請求項２１】
画像を生成する画像生成システムであって、
オブジェクト空間の各位置において仮想カメラから見えるべき各遠景画像を含む複数の遠景画像を記憶する遠景画像記憶部と、
仮想カメラの制御を行う仮想カメラ制御部と、
前記遠景画像記憶部に記憶される前記複数の遠景画像のうち、仮想カメラの位置により特定される遠景画像を、仮想カメラから所与の距離だけ離れた位置に配置されるプリミティブ面により構成される遠景マップオブジェクトに対してマッピングして、オブジェクト空間において仮想カメラから見える画像を生成する画像生成部と、
を含み、
前記遠景画像記憶部は、
遠景オブジェクトが配置されるオブジェクト空間の各位置において仮想カメラから見えるべき各遠景画像を生成する処理の際に、Ｚバッファ法の隠面消去処理により生成されたＺ値を記憶し、
前記画像生成部は、
オブジェクトの描画の際に、オブジェクトのＺ値のみならず、遠景画像の前記Ｚ値を用いて、隠面消去処理を行うと共に、
前記遠景画像記憶部は、
オブジェクト空間の各位置において仮想カメラから見えるべき前記各遠景画像として、前記遠景マップオブジェクトのプリミティブ面の位置よりも仮想カメラから見て遠くにあるオブジェクトが、遠景オブジェクトとして描かれる遠景画像を記憶し、
前記画像生成部は、
前記遠景画像記憶部に記憶される前記複数の遠景画像の中から、仮想カメラが配置されるオブジェクト空間内の各位置に対応する遠景画像を、前記遠景マップオブジェクトに対してマッピングすることを特徴とする画像生成システム。
【請求項２２】
画像を生成する画像生成システムであって、
オブジェクト空間の各位置において仮想カメラから見えるべき各遠景画像を含む複数の遠景画像を記憶する遠景画像記憶部と、
仮想カメラの制御を行う仮想カメラ制御部と、
前記遠景画像記憶部に記憶される前記複数の遠景画像のうち、仮想カメラの位置により特定される遠景画像を、仮想カメラから所与の距離だけ離れた位置に配置されるプリミティブ面により構成される遠景マップオブジェクトに対してマッピングして、オブジェクト空間において仮想カメラから見える画像を生成する画像生成部と、
を含み、
前記遠景画像記憶部は、
前記複数の遠景画像を圧縮画像として記憶し、
前記画像生成部は、
前記圧縮画像を伸長することにより得られた遠景画像を、前記遠景マップオブジェクトにマッピングし、
前記複数の遠景画像のうち、仮想カメラの周囲の所与の範囲に対応する遠景画像の圧縮画像だけが伸長され、
前記画像生成部は、
伸長により得られた前記所与の範囲に対応する遠景画像の中から、仮想カメラの位置に対応する遠景画像を、前記遠景マップオブジェクトにマッピングすると共に、
前記遠景画像記憶部は、
オブジェクト空間の各位置において仮想カメラから見えるべき前記各遠景画像の圧縮画像として、前記遠景マップオブジェクトのプリミティブ面の位置よりも仮想カメラから見て遠くにあるオブジェクトが、遠景オブジェクトとして描かれる遠景画像の圧縮画像を記憶し、
前記画像生成部は、
前記遠景画像記憶部に記憶される前記複数の遠景画像の中から、仮想カメラが配置されるオブジェクト空間内の各位置に対応する遠景画像を、前記遠景マップオブジェクトに対してマッピングすることを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、キャラクタ、車などのオブジェクトが配置設定されるオブジェクト空間内（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。レースゲームを楽しむことができる画像生成システムを例にとれば、プレーヤは、ゲームコントローラなどの操作部を用いて自車を操作し、他のプレーヤが操作する他車と競争することでゲームを楽しむ。
【０００３】
このような画像生成システムでは、遠景であるか近景であるかに依らず、全ての背景を３次元のオブジェクトで表して描画する手法を採用していた。
【０００４】
しかしながら、この手法によると、背景を構成する全てのオブジェクトについて３次元演算を行わなければならない。従って、広い範囲の背景を表示しようとすると、演算負荷が膨大になってしまうという課題があった。
【特許文献１】特開平１１−２５０２３２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、少ない処理負荷での背景画像の生成を可能にするプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明は、画像を生成する画像生成システムであって、オブジェクト空間の各位置において仮想カメラから見えるべき各遠景画像を含む複数の遠景画像を記憶する遠景画像記憶部と、仮想カメラの制御を行う仮想カメラ制御部と、前記遠景画像記憶部に記憶される前記複数の遠景画像のうち、仮想カメラの位置により特定される遠景画像を、仮想カメラから所与の距離だけ離れた位置に配置されるプリミティブ面により構成される遠景マップオブジェクトに対してマッピングして、オブジェクト空間において仮想カメラから見える画像を生成する画像生成部とを含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【０００７】
本発明によれば、オブジェクト空間の各位置において仮想カメラから見えるべき遠景画像が遠景画像記憶部に記憶される。そして、遠景画像記憶部に記憶される遠景画像のうち、仮想カメラの位置により特定される遠景画像が、遠景マップオブジェクトにマッピングされる。従って、遠景オブジェクトの描画処理をリアルタイムに行わなくても、リアルな遠景画像を含む画像を生成でき、少ない処理負荷での背景画像の生成が可能になる。
【０００８】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記画像生成部は、前記遠景画像に描かれる遠景オブジェクトよりも仮想カメラから見て近くに配置設定される近景オブジェクトの描画処理を行ってもよい。
【０００９】
このようにすれば、近景オブジェクトについては、リアルタイムに描画できるようになり、生成される画像の品質を向上できる。
【００１０】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記遠景画像記憶部は、前記遠景マップオブジェクトのプリミティブ面の位置よりも仮想カメラから見て遠くにあるオブジェクトが、遠景オブジェクトとして描かれる遠景画像を記憶し、前記画像生成部は、前記遠景マップオブジェクトのプリミティブ面の位置よりも仮想カメラから見て近くにあるオブジェクトを、近景オブジェクトとして描画してもよい。
【００１１】
このようにすれば、仮想カメラの直ぐ近くに近景オブジェクトが近づいた場合等においても、自然でリアルな画像を生成できる。
【００１２】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記画像生成部は、前記遠景マップオブジェクトのプリミティブ面の位置よりも所与の距離範囲だけ遠くにあるオブジェクトについても、近景オブジェクトとして描画してもよい。
【００１３】
このようにすれば、遠景マップオブジェクトに描かれた画像から、近景オブジェクトの描画により生成される画像に、シームレスに切り替わるようになり、不自然な画像が生成されてしまう事態を防止できる。
【００１４】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記遠景画像記憶部は、オブジェクト空間の各位置において仮想カメラから見えるべき各遠景画像の生成処理の際に得られるＺ値を記憶し、前記画像生成部は、遠景画像の前記Ｚ値を用いて、隠面消去処理を行ってもよい。
【００１５】
このようにすれば、遠景画像についても、前後関係の正しい画像を表示できるようになる。
【００１６】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、仮想カメラの視線方向と前記遠景マップオブジェクトとの位置関係に応じて、前記Ｚ値の変換処理を行う変換処理部を含んでもよい（該変換手段として機能させてもよい）。
【００１７】
このようにすれば、遠景画像のＺ値を正しいＺ値に変換することができ、前後関係が正しく判断された隠面消去処理を実現できる。
【００１８】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記遠景マップオブジェクトは、遠景キューブマップオブジェクトであり、前記遠景画像記憶部は、前記遠景キューブマップオブジェクトに対してマッピングされる遠景画像を記憶し、前記画像生成部は、前記遠景画像記憶部に記憶される遠景画像を、前記遠景キューブマップオブジェクトに対してマッピングしてもよい。
【００１９】
このようにすれば、仮想カメラの視線方向が前後左右等に向いた場合にも、遠景マップオブジェクトに描かれた遠景画像を含む画像を生成できる。
【００２０】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記画像生成部は、前記遠景マップオブジェクトの遠景画像を、環境マッピング画像として、オブジェクト空間で移動する移動体に対して環境マッピングしてもよい。
【００２１】
このようにすれば、遠景表示のために生成された遠景画像を有効活用して、環境マッピングを実現できる。
【００２２】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記遠景画像記憶部は、前記複数の遠景画像を圧縮画像として記憶し、前記画像生成部は、前記圧縮画像を伸長することにより得られた遠景画像を、前記遠景マップオブジェクトにマッピングしてもよい。
【００２３】
このようにすれば、遠景画像の記憶に必要な使用記憶容量を節約できる。
【００２４】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記遠景画像記憶部は、複数の遠景画像を圧縮ムービーテクスチャとして記憶し、前記画像生成部は、前記圧縮ムービーテクスチャを伸長することにより得られた遠景画像を、前記遠景マップオブジェクトにマッピングしてもよい。
【００２５】
このようにすれば、ムービーテクスチャの再生機能を有効活用して、遠景画像の圧縮・伸長が可能になる。
【００２６】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記遠景画像記憶部は、仮想カメラによる画像生成の際のオブジェクト空間での位置が互いに近い遠景画像ほど、そのフレーム番号が近い番号になるように圧縮された圧縮画像を記憶してもよい。
【００２７】
このようにすれば、似た画像の遠景画像については、そのフレーム番号が近くなるように圧縮されて記憶されるため、圧縮効率を向上でき、メモリの使用記憶容量を節約できる。
【００２８】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記画像生成部は、前記圧縮画像を伸長することにより得られる複数の遠景画像の中から、仮想カメラの位置に対応する遠景画像を前記フレーム番号により特定し、特定された遠景画像を、前記遠景マップオブジェクトにマッピングしてもよい。
【００２９】
このようにすれば、遠景画像を圧縮した場合にも、仮想カメラの位置に対応する遠景画像を簡素な処理で特定して遠景マップオブジェクトにマッピングできるようになる。
【００３０】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記複数の遠景画像のうち、仮想カメラの周囲の所与の範囲に対応する遠景画像の圧縮画像だけが伸長され、前記画像生成部は、伸長により得られた前記所与の範囲に対応する遠景画像の中から、仮想カメラの位置に対応する遠景画像を、前記遠景マップオブジェクトにマッピングしてもよい。
【００３１】
このようにすれば、オブジェクト空間の全ての位置に対応する遠景画像を伸長しなくても済むため、伸長処理の処理負荷を軽減できる。
【００３２】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、各画像が複数の画面の各々に表示される複数の画像を生成する場合に、第１の仮想カメラから見える第１の画面用の第１の画像と、第２の仮想カメラから見える第２の画面用の第２の画像を、遠景画像記憶部に記憶される遠景画像を共用して生成してもよい。
【００３３】
このようにすれば、メモリの使用記憶容量の増加を抑えながら、負荷の軽い処理で複数画面表示を実現できる。
【００３４】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記画像生成部は、前記複数の遠景画像の中から、仮想カメラの位置に対応する遠景画像として、第１〜第Ｎ（Ｎは２以上の整数）の位置に対応付けられた第１〜第Ｎの遠景画像を読み出し、読み出された第１〜第Ｎの遠景画像を合成した画像を、前記遠景マップオブジェクトに対してマッピングしてもよい。
【００３５】
このようにすれば、データ量の増加を抑えながら高品質の遠景画像を生成して表示できる。
【発明を実施するための最良の形態】
【００３６】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３７】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００３８】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、アクセル、ブレーキ、或いはタッチパネル型ディスプレイなどにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００３９】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、ハードディスク、或いはメモリ（ＲＯＭ等）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００４０】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００４１】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００４２】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００４３】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。処理部１００は記憶部１７０（主記憶部１７２）をワーク領域として各種処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００４４】
処理部１００は、ゲーム演算部１０８、オブジェクト空間設定部１１０、移動体演算部１１２、仮想カメラ制御部１１４、画像生成部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００４５】
ゲーム演算部１０８はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、移動体やマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【００４６】
オブジェクト空間設定部１１０は、移動体（車、人、ロボット等）、コース（道路）、マップ（地形）、建物、樹木、壁などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。具体的には、記憶部１７０のモデルデータ記憶部１７６には、移動体オブジェクト（キャラクタ）等のモデルデータが記憶されている。そしてオブジェクト空間設定部１１０は、このモデルデータを用いてオブジェクト空間へのオブジェクトの設定（配置）処理を行う。
【００４７】
移動体演算部（移動・動作処理部）１１２は、移動体を移動させるための演算を行う。また移動体を動作させるための演算も行う。即ち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、移動体（オブジェクト、モデルオブジェクト）をオブジェクト空間内で移動させたり、移動体を動作（モーション、アニメーション）させる処理を行う。具体的には、移動体の移動情報（位置、回転角度、速度、或いは加速度）や動作情報（パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００４８】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。
【００４９】
例えば仮想カメラにより車、キャラクタなどの移動体を後方から撮影する場合には、移動体の位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動体演算部１１２で得られた移動体の位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【００５０】
なお本実施形態の移動体は、画面に表示されるオブジェクトであってもよいし、画面に表示されない仮想的なオブジェクトであってもよい。例えば１人称視点等の場合には、仮想カメラの位置を移動体位置と見なすことができる。
【００５１】
画像生成部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずモデル（オブジェクト）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むモデルデータが入力され、入力されたモデルデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００５２】
画像生成部１２０は、オブジェクトを描画する際にジオメトリ処理、隠面消去処理、αブレンディング、テクスチャマッピング処理等を行う。
【００５３】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のモデルデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ、法線ベクトル、或いはα値等）は、記憶部１７０に保存される。
【００５４】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理がある。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファ（Ｚプレーン）に格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００５５】
αブレンディング（α合成）は、α値（Ａ値）に基づいて行う処理であり、通常αブレンディング、加算αブレンディング或いは減算αブレンディングなどがある。例えば通常αブレンディングの場合には下式の処理を行う。
【００５６】
ＲＱ＝（１−α）×Ｒ１＋α×Ｒ２
ＧＱ＝（１−α）×Ｇ１＋α×Ｇ２
ＢＱ＝（１−α）×Ｂ１＋α×Ｂ２
一方、加算αブレンディングの場合には下式の処理を行う。
【００５７】
ＲＱ＝Ｒ１＋α×Ｒ２
ＧＱ＝Ｇ１＋α×Ｇ２
ＢＱ＝Ｂ１＋α×Ｂ２
また、減算αブレンディングの場合には下式の処理を行う。
【００５８】
ＲＱ＝Ｒ１−α×Ｒ２
ＧＱ＝Ｇ１−α×Ｇ２
ＢＱ＝Ｂ１−α×Ｂ２
ここで、Ｒ１、Ｇ１、Ｂ１は、描画バッファ１７４（フレームバッファ）に既に描画されている画像（元画像）のＲＧＢ成分であり、Ｒ２、Ｇ２、Ｂ２は、描画バッファ１７４に描画すべき画像のＲＧＢ成分である。また、ＲＱ、ＧＱ、ＢＱは、αブレンディングにより得られる画像のＲＧＢ成分である。なおα値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、半透明度（透明度、不透明度と等価）情報、マスク情報、或いはバンプ情報などとして使用できる。
【００５９】
テクスチャマッピング（テクスチャフェッチ、テクスチャサンプリング）処理は、テクスチャ記憶部に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングする処理である。具体的には、オブジェクト（プリミティブ面）の頂点等に設定（付与）されるテクスチャ座標等を用いてテクスチャ記憶部からテクスチャ（色、α値などの表面プロパティ）を読み出す。そして、２次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間（テクセル補間）などを行う。
【００６０】
本実施形態では遠景画像記憶部１７３が複数の遠景画像（背景画像）を記憶する。具体的にはオブジェクト空間の各位置において仮想カメラから見えるべき各遠景画像を含む複数の遠景画像（遠景テクスチャ）を記憶する。例えば各遠景画像が各位置（格子点、基準点、位置取得用ポリゴン等）に対応して用意される複数の遠景画像を記憶する。そして画像生成部１２０は、遠景画像記憶部１７３に記憶される複数の遠景画像のうち、仮想カメラ（移動体）の位置により特定される遠景画像（仮想カメラの位置に対応付けられた遠景画像）を、遠景マップオブジェクトにマッピングする。
【００６１】
ここで遠景マップオブジェクトは、仮想カメラから所与の距離だけ離れた位置に配置される１又は複数のプリミティブ面（ポリゴン）により構成されるオブジェクトである。この遠景マップオブジェクトとしては、例えば環境マッピングに使用される遠景キューブマップオブジェクトを用いることができる。この場合には遠景画像記憶部１７３は、遠景キューブマップオブジェクトに対してマッピングされる遠景画像を記憶し、画像生成部１２０は、遠景画像記憶部１７３に記憶される遠景画像を、遠景キューブマップオブジェクトにマッピングする。例えば立方体の展開図に対応する遠景画像を、遠景キューブマップオブジェクトを構成するポリゴンにマッピングする。
【００６２】
画像生成部１２０は近景オブジェクトの描画処理を行う。ここで近景オブジェクトは、遠景画像に描かれる遠景オブジェクトよりも仮想カメラから見て近くに配置設定されるオブジェクトである。即ち遠景画像記憶部１７３は、遠景マップオブジェクトのプリミティブ面（ポリゴン）の位置よりも仮想カメラから見て遠くにあるオブジェクト（仮想カメラから所与のしきい値距離以上離れていると想定されるオブジェクト）が、遠景オブジェクトとして描かれる遠景画像を記憶する。即ちゲーム制作時等における遠景画像の生成の際に、仮想カメラから見て遠景マップオブジェクトのプリミティブ面（ポリゴン）の位置よりも遠くにあるオブジェクトについては、遠景として遠景画像に描かれる。一方、画像生成部１２０は、遠景マップオブジェクトのプリミティブ面の位置よりも仮想カメラから見て近くにあるオブジェクト（仮想カメラからみて所与のしきい値距離より近いオブジェクト）を、近景オブジェクトとして描画する。なお画像生成部１２０は、遠景マップオブジェクトのプリミティブ面の位置よりも所与の距離範囲だけ遠くにあるオブジェクトであって、本来は遠景オブジェクトであるオブジェクトについても、近景オブジェクトとして描画する。
【００６３】
また遠景画像記憶部１７３は、オブジェクト空間の各位置において仮想カメラから見えるべき各遠景画像の生成処理の際に得られたＺ値を記憶する。例えば遠景画像の色（色プレーン）と共にＺ値（Ｚプレーン）を記憶する。即ちＺバッファ法による隠面消去により得られたＺ値を記憶する。
【００６４】
そして画像生成部１２０は、遠景画像のＺ値を用いて、隠面消去処理を行う。即ち移動体などのオブジェクトを描画する際には、遠景画像のＺ値も考慮して、Ｚバッファ法による隠面消去処理を行う。この場合に画像生成部１２０が含む変換処理部１２２は、仮想カメラの視線方向と遠景マップオブジェクトとの位置関係に応じて、Ｚ値の変換処理を行う。具体的には、遠景マップオブジェクトを構成するプリミティブ面の向きと視線方向とのなす角度と、変換処理の対象となる点（ピクセル）のＸ座標、Ｙ座標等に基づいて、その点のＺ値を変換する。
【００６５】
また遠景画像記憶部１７３は、複数の遠景画像を圧縮画像として記憶する。例えば複数の遠景画像を圧縮ムービーテクスチャとして記憶する。具体的には仮想カメラによる画像生成の際のオブジェクト空間での位置が互いに近い遠景画像ほど、そのフレーム番号が近い番号になるように圧縮された圧縮画像を記憶する。
【００６６】
画像生成部１２０が含む伸長部（展開部、デコード部）１２４は圧縮画像の伸長処理を行う。具体的にはＭＰＥＧ、ＪＰＥＧ等の圧縮画像として遠景画像記憶部１７３に記憶された遠景画像（ムービーテクスチャ）を伸長する。例えばＭＰＥＧで圧縮された一連のＩピクチャを伸張する。
【００６７】
遠景画像のデータ圧縮は次のように実現できる。即ち、まずデータが複数のマクロブロックに分割される。そして、分割された各ブロックに対して、ＤＣＴ（離散コサイン変換、直交変換）が施される。これにより、データが周波数（空間周波数）分解される。次に、ＤＣＴにより得られた各ＤＣＴ係数（広義には直交変換係数）が量子化される。そして、ハフマン符号化（エントロピー符号化、可変長符号化）が行われ、これにより圧縮データが得られる。一方、圧縮画像のデータ伸張は次のように実現できる。即ち、まず圧縮データが遠景画像記憶部１７３から読み込まれる。伸張部１２４は、この読み込まれた圧縮データに対してハフマン復号化（エントロピー復号化、可変長復号化）を行う。次に、伸張部１２４は、ハフマン復号化後のデータに対して逆量子化を行う。そして、逆ＤＣＴを行い、これにより伸張データが得られる。
【００６８】
画像生成部１２０は、圧縮画像を伸長（デコード）することにより得られた遠景画像を、遠景マップオブジェクトにマッピングする。例えば圧縮ムービーテクスチャを伸長することにより得られた遠景画像を遠景マップオブジェクトにマッピングする。具体的には、圧縮画像を伸長することにより得られる複数の遠景画像の中から、仮想カメラの位置に対応する遠景画像をフレーム番号により特定する。例えば仮想カメラの位置とフレーム番号とを対応付けておき、仮想カメラの位置からフレーム番号を特定し、フレーム番号により特定される遠景画像を、遠景マップオブジェクトにマッピングする。
【００６９】
なお画像生成部１２０は、各画像が複数の画面の各々に表示される複数の画像を生成することができる。即ち、異なる仮想カメラ位置（視点位置）、視線方向での画像を生成して、各プレーヤに対応する各画面に表示する。例えば第１の仮想カメラから見える第１の画面用の第１の画像（第１の視界画像）と、第２の仮想カメラから見える第２の画面用の第２の画像（第２の視界画像）を生成し、第１、第２の画面に表示する。この場合に画像生成部１２０は、第１の画面用の第１の画像と、第２の画面用の第２の画像を、遠景画像記憶部１７３に記憶される遠景画像を共用して生成する。例えば第１の画面に表示する第１の画像については、遠景画像記憶部１７３に記憶される複数の遠景画像のうち、第Ｋの位置に対応付けられた遠景画像を使用して生成する。一方、第２の画面に表示する第２の画像については、遠景画像記憶部１７３に記憶される複数の遠景画像のうち、第Ｌの位置に対応付けられた遠景画像を使用して生成する。
【００７０】
また画像生成部１２０は、複数の遠景画像の中から、仮想カメラの位置に対応する遠景画像として、第１〜第Ｎの位置に対応付けられた第１〜第Ｎの遠景画像を読み出す。具体的には、仮想カメラの近くの第１〜第の位置に対応付けられた第１〜第Ｎの遠景画像を遠景画像記憶部１７３から読み出す。そして読み出された第１〜第Ｎの遠景画像を合成した画像を、遠景マップオブジェクトに対してマッピングする。具体的には、仮想カメラの位置と第１〜第Ｎの位置との位置関係（距離等）に基づいてα値を求め、求められたα値に基づいて、第１〜第Ｎの遠景画像をα合成し、遠景マップオブジェクトにマッピングする。
【００７１】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００７２】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００７３】
２．本実施形態の手法
２．１  遠景マップオブジェクトへの遠景画像のマッピング
本実施形態では図２に示すように、オブジェクト空間の各位置Ｐ１１、Ｐ１２、Ｐ１３、Ｐ１４、Ｐ１５・・・において仮想カメラ（移動体）から見えるべき遠景画像（背景画像）ＩＭ１１、ＩＭ１２、ＩＭ１３、ＩＭ１４、ＩＭ１５・・・が、遠景画像記憶部１７３に記憶される。具体的にはゲーム制作時（ＣＧ制作時）に、オブジェクト空間の各位置Ｐ１１、Ｐ１２、Ｐ１３・・・に仮想カメラを配置設定する。そして、各位置Ｐ１１、Ｐ１２、Ｐ１３・・・に配置された仮想カメラによりその周囲を見渡した時に見えるべき画像を生成する。そしてこのようにして生成された画像が、遠景画像として遠景画像記憶部１７３に記憶される。この場合の遠景画像は、背景を構成するオブジェクトのうち、遠景オブジェクトをオブジェクト空間に配置して生成する。またこの遠景画像の生成処理は、ゲーム制作時に行われ、リアルタイム性が要求されない処理であるため、ポリゴン数が極めて多い詳細なモデルを用いて遠景画像を生成する。また図２に示すように、各遠景画像ＩＭ１１、ＩＭ１２、ＩＭ１３・・・は、位置Ｐ１１、Ｐ１２、Ｐ１３・・・に対応付けられて遠景画像記憶部１７３に記憶される。なお位置Ｐ１１、Ｐ１２、Ｐ１３・・・とフレーム番号を対応付けておき、このフレーム番号と遠景画像ＩＭ１１、ＩＭ１２、ＩＭ１３・・・を対応付けて遠景画像記憶部１７３に記憶するようにしてもよい。
【００７４】
図３に本実施形態の遠景画像の例を示す。図３のＡ１は、進行方向に対して仮想カメラを左に向けた時に見える画像である。同様にＡ２、Ａ３、Ａ４、Ａ５、Ａ６は、仮想カメラを前、右、後ろ、上、下に向けた時に見える画像（２次元画像、疑似３次元画像）である。これらの画像では、仮想カメラから遠い位置にある観客席、壁、空、雲等の遠景オブジェクトが描画されている。また道（コース）の画像も描画されている。遠景画像記憶部１７３は、例えば図３のＡ１〜Ａ６の画像を一組とした画像を遠景画像として記憶する。なお図３のＡ１〜Ａ６の各画像を別個に遠景画像として記憶するようにしてもよい。
【００７５】
本実施形態では図３の遠景画像を例えば図４に示すような遠景マップオブジェクト（遠景キューブマップオブジェクト）ＭＯＢにマッピングして、オブジェクト空間（ゲーム空間）内において仮想カメラＶＣから見える画像を生成する。具体的には図３のＡ１、Ａ２、Ａ３、Ａ４、Ａ５、Ａ６の画像を、各々、遠景マップオブジェクトＭＯＢを構成するプリミティブ面（ポリゴン）ＰＳ１、ＰＳ２、ＰＳ３、ＰＳ４、ＰＳ５、ＰＳ６にマッピングする。即ちプリミティブ面ＰＳ１〜ＰＳ６の外側、内側の面（表側、裏側面）のうち、仮想カメラＶＣから見える側である内側の面にＡ１〜Ａ６の画像をマッピングする。そして遠景マップオブジェクトＭＯＢの内側に配置された仮想カメラＶＣから、これらの遠景マップオブジェクトＭＯＢの内側の面を見ることで、ゲーム（ＣＧ）制作時と同様の画像が仮想カメラに映し出される。これにより、ゲーム画像を構成する遠景（背景）の画像が表示部１９０に表示されるようになる。
【００７６】
図２、図３、図４では、オブジェクト空間の各位置において、上下前後左右の６方向のそれぞれの画像が用意されて、遠景マップオブジェクトＭＯＢ（キューブマップオブジェクト）の内側にマッピングされる。従って、仮想カメラＶＣが上下前後左右等のどの方向を向いた場合にも、その方向に対応する遠景画像(背景画像）が表示部１９０に表示されるようになる。
【００７７】
このような本実施形態の手法によれば、遠景画像を構成する遠景オブジェクトについては、リアルタイムに描画しなくても済む。従って処理負荷を軽減できる。また遠景は２次元画像（疑似３次元画像）として予め用意されているため、広い距離範囲の遠景を表示しても、処理負荷はそれほど変化しない。従って広い距離範囲に亘る遠景の表示が少ない処理負荷で可能になる。更に、遠景画像は、リアルタイムに生成されずに、ゲーム制作時に生成できる。従って、リアルタイム処理で生成する場合に比べて、高精細の遠景画像を用意することができ、少ない処理負荷でリアルな画像を生成できる。
【００７８】
なお遠景マップオブジェクトＭＯＢとしては種々の形状のオブジェクトを採用できる。例えば図４のプリミティブ面ＰＳ１〜ＰＳ６の一部を省略したオブジェクトにしてもよい。例えば仮想カメラＶＣが後ろ側、上側、下側を向かないようなゲーム（電車ゲーム等）においては、プリミティブ面ＰＳ４、ＰＳ５、ＰＳ６を設けない遠景マップオブジェクトＭＯＢを採用できる。また本実施形態の遠景マップオブジェクトは、図４のようなキューブの遠景マップオブジェクトに限定されない。例えば図５（Ａ）では直方体の遠景マップオブジェクトが用いられ、図５（Ｂ）では円柱の遠景マップオブジェクトが用いられている。遠景マップオブジェクトは、例えば、少なくとも仮想カメラの前方、左側、右側に位置するプリミティブ面により構成されるオブジェクトであればよい。
【００７９】
また図２では、複数の遠景画像がオブジェクト空間の格子点の位置に対応付けられているが、本実施形態はこれに限定されない。例えば図６（Ａ）では、オブジェクト空間のコースに沿って基準点Ｇ１、Ｇ２、Ｇ３・・・が設定されている。即ち図６（Ａ）では、コース上での移動体の現在位置や順位等を把握するために、コースの中心線（基準線）に沿って基準点Ｇ１、Ｇ２、Ｇ３・・・設定し、これらの基準点Ｇ１、Ｇ２、Ｇ３・・・を繋いだ線を座標軸とする道座標系を用いる。そして基準点Ｇ１、Ｇ２、Ｇ３・・・のうち移動体（仮想カメラ）に最も近い基準点を検索することで、移動体の現在位置や順位を取得する。
【００８０】
本実施形態の遠景画像は、これらの基準点Ｇ１、Ｇ２、Ｇ３・・・に対応付けて記憶してもよい。例えばレール上を走る電車から見える画像が表示される電車ゲーム等では、仮想カメラの位置がレールの左右にずれることはない。従って、このような電車ゲーム等では、レールに沿って並ぶ基準点Ｇ１、Ｇ２、Ｇ３・・・に対応付けて遠景画像を記憶すればよい。
【００８１】
また図６（Ｂ）に示すように、遠景画像が対応付けられる格子点を、仮想カメラ（移動体）の移動可能範囲にのみ設定するようにしてもよい。このようにすれば、遠景画像のデータ量を減らすことができ、メモリの使用記憶容量を節約できる。また仮想カメラ（移動体）の移動フィールドに対して、複数の位置取得用（座標計算用）のポリゴンを配置し、この細分化された各ポリゴンに対して遠景画像を対応付けて記憶するようにしてもよい。この場合には、各ポリゴンに対して移動条件情報、イベント発生フラグなどの属性情報を設定し、この属性情報に基づいて移動体の移動を制御したり、ゲームイベントを発生させたりすることができる。
【００８２】
２．２  近景オブジェクトの描画
本実施形態では図３の遠景画像に描かれる遠景オブジェクト（観客席、壁等）よりも仮想カメラから見て近くに配置設定される近景オブジェクトの描画処理を行っている。
【００８３】
具体的には図７（Ａ）（Ｂ）のＢ１、Ｂ２に示すように、遠景マップオブジェクトＭＯＢのプリミティブ面ＰＳ２の位置よりも、仮想カメラＶＣから見て遠くにあるオブジェクトＯＢ２が、遠景オブジェクトとして遠景画像に描かれる。例えば図３における観客席や背景等のオブジェクトが、遠景オブジェクトとして遠景画像に描かれて、遠景画像記憶部１７３に記憶される。なお図７（Ａ）は、遠景マップオブジェクトＭＯＢ、仮想カメラＶＣ、オブジェクトＯＢ１、ＯＢ２等を横方向（Ｘ軸に沿った方向）から見た場合の図であり、図７（Ｂ）は上方向（Ｙ軸に沿った方向）から見た場合の図である。
【００８４】
そして本実施形態では画像生成部１２０が、遠景マップオブジェクトＭＯＢのプリミティブ面ＰＳ２の位置よりも、仮想カメラＶＣから見て近くにあるオブジェクトＯＢ１を、近景オブジェクトとして描画する。
【００８５】
即ち本実施形態では、遠景マップオブジェクトＭＯＢを構成するプリミティブ面ＰＳ２は、仮想カメラＶＣから所与の距離だけ離れた位置に配置される。従って、このプリミティブ面ＰＳ２よりも遠くにあるオブジェクトＯＢ２については、図７（Ａ）（Ｂ）のＢ１、Ｂ２に示すように遠景画像に描いても不自然にはならないが、プリミティブ面ＰＳ２よりも手前側にあるオブジェクトＯＢ１を遠景画像に描くと、不自然な画像が生成されるおそれがある。例えばオブジェクトＯＢ１が仮想カメラＶＣの目の前に近づいた場合には、オブジェクトＯＢ１の形状、画像が大きく表示され、その詳細が目立ってしまう。
【００８６】
そこで図７（Ａ）（Ｂ）では、プリミティブ面ＰＳ２よりも手前側にあるオブジェクトＯＢ１については、通常のリアルタイム処理の近景オブジェクトとして描画する。このようにすれば、オブジェクトＯＢ１が仮想カメラＶＣの目の前に近づいた場合等においても、自然でリアルな画像を生成できる。
【００８７】
また本実施形態では図８（Ａ）に示すように、遠景マップオブジェクトＭＯＢのプリミティブ面ＰＳ２の位置よりも所与の距離範囲だけ遠くにあるオブジェクトＯＢ３についても、近景オブジェクトとして描画してもよい。例えば図８（Ａ）では、遠景マップオブジェクトＭＯＢの周囲に、ＭＯＢよりも広い領域ＥＡＲが設定される。そして遠景マップオブジェクトＭＯＢの外側に配置されるオブジェクトは、近景オブジェクトとしてリアルタイムに描画されないのが原則であるが、遠景マップオブジェクトＭＯＢの外側に位置し、領域ＥＡＲの内側に位置するオブジェクトＯＢ３については、近景オブジェクトとしてリアルタイムに描画する。この場合に図８（Ａ）のＣ１に示すように、このオブジェクトＯＢ３は、遠景オブジェクトとして遠景画像にも描画されている。
【００８８】
このようにすれば図８（Ｂ）に示すように、仮想カメラＶＣ（移動体）の位置が変化し、オブジェクトＯＢ３が遠景マップオブジェクトＭＯＢ内に入って来た場合に、オブジェクトＯＢ３の画像が遠景画像から近景画像に、不自然さがなく切り替わるようになる。例えば図８（Ａ）において、オブジェクトＯＢ３を近景オブジェクトとして描画しておかないと、オブジェクトＯＢ３がプリミティブ面ＰＳ２の位置に来た時に、リアルタイム描画のオブジェクトとして突然に表示されてしまい、不自然な画像が生成されるおそれがある。
【００８９】
この点、図８（Ａ）では、領域ＥＡＲに位置した時からオブジェクトＯＢ３は近景オブジェクトとして描画される。従って、オブジェクトＯＢ３がプリミティブ面ＰＳ２の位置に来た時にも、遠景マップオブジェクトＭＯＢに描かれた画像から、リアルタイム描画により生成される画像に、シームレスに切り替わるようになり、不自然な画像が生成されてしまう事態を効果的に防止できる。
【００９０】
２．３  Ｚ値を用いた隠面消去
本実施形態では図９（Ａ）に示すように、遠景画像に対して、Ｒ、Ｇ、Ｂの色（色プレーン）のみならず、Ｚ値（奥行き値と同義）も設定される。即ち、オブジェクト空間の各位置において仮想カメラから見えるべき各遠景画像の生成処理（ゲーム制作時）の際に得られるＺ値（Ｚプレーン）が、遠景画像に設定される。そして、オブジェクト（近景オブジェクト、移動体等）の描画の際に、オブジェクトのＺ値のみならず、遠景画像のＺ値も使用して、隠面消去が処理が行われる。
【００９１】
例えば図９（Ｂ）において、オブジェクトＯＢ４（例えばビル）は遠景オブジェクトとして遠景画像に描かれている。この場合に、遠景画像のうち、オブジェクトＯＢ４の描画領域には、オブジェクトＯＢ４の色のみならず、オブジェクトＯＢ４の画像生成の際に得られたＺ値（Ｚバッファ法により得られたＺ値）が設定（記憶）される。そして、他のオブジェクトＯＢ５（例えば飛行船）をリアルタイム描画する際には、遠景画像のＺ値も考慮して隠面消去処理を行う。このようにすれば図９（Ｂ）に示すように、オブジェクトＯＢ５のうちオブジェクトＯＢ４よりも奥側にある部分については隠面消去されて表示されないようになる。従って、前後関係の正しい画像を表示できるようになり、生成される画像のリアル度、品質を向上できる。なお遠景画像のＺ値は、例えば遠景画像のαプレーンに記憶しておき、オブジェクトＯＢ５を描画する前に、このαプレーンのＺ値をＺバッファに書き込むようにしてもよい。
【００９２】
また本実施形態では、仮想カメラの視線方向に応じて奥行きＺ値の変換処理を行っている。即ち遠景画像のＺ値に対して、仮想カメラの視線方向と遠景マップオブジェクトとの位置関係に応じた変換処理を行う。なお以下では説明を簡単にするために、Ｘ−Ｚ平面上の１軸回転のみを考える。
【００９３】
例えば図１０において、仮想カメラＶＣの視点位置をＶＰとして視線方向をＥＶ、ＥＶ’とする。また仮想カメラＶＣの視線方向がＥＶである時の点ＰのＸ、Ｚ座標をＸＰ、ＺＰとする。この点Ｐは、遠景画像を構成する遠景オブジェクトの点（ピクセル）である。遠景画像のＺプレーンには、仮想カメラＶＣがプリミティブ面ＰＳ２に正対し、視線方向がＥＶの方向である時のＺ値が設定される。従って、仮想カメラＶＣの視線方向がＥＶからＥＶ’に変化した時には、Ｚ値の変換処理が必要になる。
【００９４】
例えば図１０において視線方向ＥＶとＥＶ’のなす角度をθとする。すると、変換後の点ＰのＺ値ＺＰ’は下式のように表すことができる。
【００９５】
ＺＰ’＝ＺＰ×ＣＯＳθ＋ＸＰ×ＳＩＮθ
即ち上式では、仮想カメラＶＣの視線方向ＥＶと遠景マップオブジェクトＭＯＢとの位置関係に応じて、Ｚ値の変換処理が行われる。具体的には、遠景マップオブジェクトＭＯＢを構成するプリミティブ面ＰＳ２の向きに相当する方向ＥＶと現在の仮想カメラＶＣの視線方向ＥＶ’とのなす角度θと、対象となる点Ｐ（ピクセル）のＸ座標、Ｙ座標などに基づいて、点ＰのＺ値をＺＰからＺＰ’に変換する。そして変換により得られたＺ値ＺＰ’に基づいて、隠面消去処理を行う。このようにすれば、遠景画像に設定されたＺ値を正しいＺ値に変換することができ、前後関係が正しく判断された隠面消去処理を実現できる。
【００９６】
２．４  環境マッピング
本実施形態では図１１に示すように、遠景マップオブジェクトＭＯＢの遠景画像を、環境マッピング画像として、オブジェクト空間で移動する移動体ＭＢに対して環境マッピングするようにしている。即ち図１１において、仮想カメラＶＣは移動体ＭＢに追従して移動しており、仮想カメラＶＣから見える画像には移動体ＭＢの画像が映し出されている。この時、遠景マップオブジェクトＭＯＢの内側には、仮想カメラＶＣにより周囲を見回した時の遠景画像がマッピングされている。
【００９７】
そこで本実施形態では、この遠景画像を、環境マッピング画像として移動体ＭＢにマッピングしている。このようにすれば、仮想カメラＶＣにより周囲を見回した時の遠景画像が移動体ＭＢにマッピングされるようになり、環境マッピングを実現できる。従って、遠景表示のために生成された遠景画像を有効活用して、環境マッピングを実現できるため、それほど処理負荷を増加させることなくリアルな画像を生成できる。
【００９８】
なお図１１の環境マッピングは例えば以下の手法で実現できる。例えば図１１において移動体ＭＢの各点（頂点、ピクセル、面）には法線ベクトルＮが設定される。この場合に、法線ベクトルＮを座標変換マトリクスを用いて例えば視点座標系に座標変換する。そして座標変換後の法線ベクトルＮの例えばＸ、Ｙ座標に基づいて、環境マッピングのためのテクスチャ座標ＴＸ、ＴＹを求める。そして求められたテクスチャ座標ＴＸ、ＴＹに基づいて、遠景マップオブジェクトＭＯＢの遠景画像（遠景テクスチャ）をサンプリングして、移動体ＭＢにマッピングする。このようにすれば、仮想カメラＶＣの向く方向に応じたリアルな遠景画像が移動体ＭＢに環境マッピングされるようになる。
【００９９】
なお仮想カメラＶＣの向く方向に依存せずに、移動体ＭＢの法線ベクトルＮでサンプリングされる遠景画像をそのまま移動体ＭＢにマッピングするようにしてもよい。また図１１ではキューブ環境マッピングの例を示しているが、本実施形態の環境マッピングはこのようなキューブ環境マッピングに限定されず、四面体環境マッピング等であってもよい。
【０１００】
２．５  遠景画像の圧縮
本実施形態ではオブジェクト空間の各位置に対応した遠景画像を用意する。従って、遠景画像の記憶に必要な使用記憶容量が大きくなってしまうという課題がある。
【０１０１】
そこで本実施形態では、複数の遠景画像を圧縮画像として記憶し、この圧縮画像を伸長することにより得られた遠景画像を、遠景マップオブジェクトにマッピングする。
【０１０２】
例えば、この種の画像生成システムは、オープニング画面やエンディング画面でのＣＧムービーの再生のために、ムービーテクスチャの再生機能を有している場合が多い。本実施形態では、このムービーテクスチャの再生機能を有効活用して、遠景画像の圧縮・伸長を行う。具体的には図１２（Ａ）に示すように、複数の遠景画像を圧縮ムービーテクスチャＣＴＥＸ１１、ＣＴＥＸ１２、ＣＴＥＸ１３、ＣＴＥＸ１４・・・として記憶しておく。そしてこれらの圧縮ムービーテクスチャＣＴＥＸ１１、ＣＴＥＸ１２、ＣＴＥＸ１３、ＣＴＥＸ１４・・・を伸長することにより得られた遠景画像ＩＭ１１、ＩＭ１２、ＩＭ１３、ＩＭ１４・・・を、遠景マップオブジェクトにマッピングする。
【０１０３】
例えば図１２（Ｂ）では、オブジェクト空間の各位置Ｐ１１、Ｐ１２、Ｐ１３・・・に対して圧縮ムービーテクスチャＣＴＥＸ１１、ＣＴＥＸ１２、ＣＴＥＸ１３・・・が対応付けられている。従ってこれらの圧縮ムービーテクスチャＣＴＥＸ１１、ＣＴＥＸ１２、ＣＴＥＸ１３・・・を伸長することで得られる遠景画像ＩＭ１１、ＩＭ１２、ＩＭ１３・・・もオブジェクト空間の各位置Ｐ１１、Ｐ１２、Ｐ１３・・・に対応付けられるようになる。従って、画像生成システムのムービーテクスチャの再生機能を有効活用して遠景画像を圧縮・伸長できるようになり、新たな圧縮・伸長アルゴリズムを導入しなくても、遠景画像を効率的に圧縮・伸長できるようになる。
【０１０４】
また本実施形態では、仮想カメラによる画像生成の際のオブジェクト空間での位置が互いに近い遠景画像ほど、そのフレーム番号が近い番号になるように圧縮された圧縮画像が記憶されている。例えば図２に示すように、位置Ｐ１１とＰ１２は近い位置にあり、ＩＭ１１とＩＭ１２は、仮想カメラによる画像生成の際のオブジェクト空間での位置が互いに近い遠景画像である。そしてこれらの遠景画像ＩＭ１１とＩＭ１２は、そのフレーム番号が１と２というように近い番号になるように圧縮された圧縮画像（圧縮ムービーテクスチャ）ＣＴＥＸ１１とＣＴＥＸ１２として記憶される。同様に、位置Ｐ１３とＰ１４は近い位置にあり、ＩＭ１３とＩＭ１４は、仮想カメラによる画像生成の際のオブジェクト空間での位置が互いに近い遠景画像である。そしてこれらの画像ＩＭ１３とＩＭ１４は、そのフレーム番号が３と４というように近い番号になるように圧縮された圧縮画像（圧縮ムービーテクスチャ）ＣＴＥＸ１３とＣＴＥＸ１４として記憶される。
【０１０５】
例えばオブジェクト空間の位置Ｐ１１において仮想カメラから見える遠景画像ＩＭ１１と、位置Ｐ１２において見える遠景画像ＩＭ１２は、位置Ｐ１１とＰ１２が近いため、似た画像になる。従って図１２（Ｃ）に示すように、これらの遠景画像ＩＭ１１、ＩＭ１２のフレーム番号が近い番号になるように圧縮すれば、遠景画像ＩＭ１１、ＩＭ１２をあたかも動画のように圧縮できるようになり、圧縮効率を向上できる。即ち遠景画像ＩＭ１１、ＩＭ１２は似た画像であり、その差分成分（動きベクトル）が少ないため、圧縮効率が高くなり、圧縮画像のデータ量を小さくできる。この結果、メモリの使用記憶容量を節約でき、少ないリソースで高品質な画像を生成できる。
【０１０６】
なお本実施形態では、圧縮画像を伸長することにより得られる複数の遠景画像の中から、仮想カメラの位置に対応する遠景画像をフレーム番号により特定し、特定された遠景画像を、前記遠景マップオブジェクトにマッピングしている。例えば図１２（Ｃ）において、仮想カメラの位置がＰ１１である場合には、複数の遠景画像ＩＭ１１、ＩＭ１２、ＩＭ１３・・・の中から、仮想カメラの位置Ｐ１１に対応する遠景画像ＩＭ１１をフレーム番号＝１により特定し、特定された遠景画像ＩＭ１１を遠景マップオブジェクトにマッピングする。同様に仮想カメラの位置がＰ１２である場合には、複数の遠景画像ＩＭ１１、ＩＭ１２、ＩＭ１３・・・の中から、仮想カメラの位置Ｐ１２に対応する遠景画像ＩＭ１２をフレーム番号＝２により特定し、特定された遠景画像ＩＭ１２を遠景マップオブジェクトにマッピングする。このようにすれば、フレーム番号とオブジェクト空間の各位置を対応付けておくだけで、遠景画像を特定して遠景マップオブジェクトにマッピングできるようになる。
【０１０７】
図１３に圧縮ムービー情報のデータ構造の例を示す。圧縮ムービー情報は、ヘッダ・ブロック（圧縮ムービーテクスチャの制御情報）、フレームデータアドレス・ブロック（圧縮テクスチャの格納場所の指定情報）、フレームデータ・ブロック（圧縮テクスチャのデータ。ＭＰＥＧのＩピクチャのデータ）を有する。
【０１０８】
ここで、ヘッダ・ブロックは、圧縮ムービー情報のデータサイズや、フレーム幅（テクスチャの幅方向のテクセル数）や、フレーム高さ（テクスチャの高さ方向のテクセル数）や、ムービーテクスチャのフレーム数などのデータを含む。
【０１０９】
また、フレームデータアドレス・ブロックは、フレームデータ・ブロックでの各圧縮ムービーテクスチャＣＴＥＸ１１〜ＣＴＥＸＭＮ（フレーム１〜Ｍ×Ｎ）のアドレス（格納場所を指定するためのデータ。先頭アドレス）や、各ＣＴＥＸ１１〜ＣＴＥＸＭＮのデータサイズや、フレームデータ・ブロックでのエンドコードのアドレスを含む。
【０１１０】
また、フレームデータ・ブロックは、ＣＴＥＸ１１〜ＣＴＥＸＭＮ（フレーム１〜Ｍ×Ｎ）のデータ（画像データ）や、各フレームの区切りコードや、フレームデータ・ブロックのエンドコードを含む。
【０１１１】
本実施形態では、圧縮ムービーテクスチャＣＴＥＸ１１〜ＣＴＥＸＭＮ（フレーム１〜Ｍ×Ｎ）のデータから、図１３に示すようなデータ構造の圧縮ムービー情報を作成する。そして本実施形態では、このようなデータ構造の圧縮ムービー情報を利用して、フレーム番号により特定される遠景画像を遠景マップオブジェクトにマッピングしている。
【０１１２】
例えばフレーム番号１の遠景画像をマッピングする場合には、圧縮ムービーテクスチャＣＴＥＸ１１のアドレスをフレームデータアドレス・ブロックから取得する。そしてそのアドレスにある圧縮ムービーテクスチャＣＴＥＸ１１のデータを伸長部１２４で伸長して、遠景画像ＩＭ１１を得る。そして得られた遠景画像ＩＭ１１を遠景マップオブジェクトにマッピングする。同様に、フレーム番号２の遠景画像をマッピングする場合には、圧縮ムービーテクスチャＣＴＥＸ１２のアドレスをフレームデータアドレス・ブロックから取得する。そして、そのアドレスにある圧縮ムービーテクスチャＣＴＥＸ１２のデータを伸長部１２４で伸長して、遠景画像ＩＭ１２を得る。そして得られた遠景画像ＩＭ１２を遠景マップオブジェクトにマッピングする。このようにすることで、圧縮ムービーテクスチャを利用した遠景画像のマッピングが可能になる。
【０１１３】
なお、処理負荷の軽減やメモリの使用効率の向上のためには、図１４のような手法を採用することが望ましい。即ち図１４では、複数の遠景画像のうち、仮想カメラＶＣの周囲の所与の範囲ＡＲ１（格子点）に対応する遠景画像の圧縮画像だけが伸長される。即ちオブジェクト空間の全ての位置ではなく、範囲ＡＲ１内の位置に対応付けられた遠景画像の圧縮画像（圧縮ムービーテクスチャ）だけを伸長して、記憶部１７０の例えば主記憶部１７２に展開する。この範囲ＡＲ１は仮想カメラＶＣの周囲に設定され、仮想カメラＶＣ（移動体）の移動と伴い移動する。
【０１１４】
そして画像生成部１２０は、伸長により得られた範囲ＡＲ１に対応する遠景画像の中から、仮想カメラＶＣの位置に対応する遠景画像を、遠景マップオブジェクトにマッピングする。即ち主記憶部１７２に展開された、範囲ＡＲ１に対応する遠景画像の中から、仮想カメラＶＣの位置に対応する遠景画像を読み出し、読み出された遠景画像を遠景マップオブジェクトにマッピングする。
【０１１５】
図１４の手法によれば、オブジェクト空間の全ての位置に対応する遠景画像を伸長しなくても済むため、伸長部１２４の処理負荷を軽減できる。また範囲ＡＲ１に対応する遠景画像の圧縮画像だけが、主記憶部１７２に展開されるため、主記憶部１７２の使用記憶容量を節約でき、メモリの使用効率を向上できる。
【０１１６】
なお図１４に示すように範囲ＡＲ１は、例えば仮想カメラＶＣが追従する移動体（車等）が移動するコースＣＳを覆うように設定できる。また範囲ＡＲ１は、移動体の速度等の移動情報に応じて、その大きさを設定できる。
【０１１７】
２．６  複数画面表示
本実施形態の画像生成部１２０は、各画像が複数の画面の各々に表示される複数の画像を生成できる。例えば図１５では、第１の画面ＤＳ１用の第１の画像ＩＭ１と、第２の画面ＤＳ２用の第２の画像ＩＭ２が生成され、画面ＤＳ１、ＤＳ２に表示される。ここで画像ＩＭ１は、画面ＤＳ１用の第１の仮想カメラから見える視界画像である。画像ＩＭ２は、画面ＤＳ２用の第２の仮想カメラから見える視界画像である。これらの第１、第２の仮想カメラは視点位置や視線方向が異なっている。
【０１１８】
即ち画像ＩＭ１には、第１のプレーヤが操作する第１の移動体ＭＢ１が表示され、画像ＩＭ２には、第２のプレーヤが操作する第２の移動体ＭＢ２が表示される。そして画像ＩＭ１は、第１のプレーヤの視点に対応する第１の仮想カメラにより映し出される画像であり、画像ＩＭ２は、第２のプレーヤの視点に対応する第２の仮想カメラにより映し出される画像である。図１５のように画面を分割して表示することで、複数のプレーヤが対戦してゲームを楽しむことができるゲーム画像を表示できる。
【０１１９】
なお、図１５では画面ＤＳ１、ＤＳ２は、１つの表示部の画面を分割した画面になっているが、第１の表示部の画面を画面ＤＳ１とし、第２の表示部の画面を画面ＤＳ２としてもよい。
【０１２０】
本実施形態では、図１５に示すような画面ＤＳ１、ＤＳ２用の画像ＩＭ１、ＩＭ２を、遠景画像記憶部１７３に記憶される遠景画像を共用して生成している。具体的には、画面ＤＳ１用の仮想カメラ（移動体ＭＢ１）の位置がＰ１１である場合には、位置Ｐ１１に対応付けられた遠景画像ＩＭ１１を用いて、画面ＤＳ１用の画像ＩＭ１が生成される。また画面ＤＳ２用の仮想カメラ（移動体ＭＢ２）の位置がＰ５３である場合には、位置Ｐ５３に対応付けられた遠景画像ＩＭ５３を用いて、画面ＤＳ２用の画像ＩＭ２が生成される。
【０１２１】
例えば本実施形態の手法を採用せずに、図１５に示すような２画面表示を行おうとすると、画面ＤＳ１用のオブジェクトの描画処理と、画面ＤＳ２用のオブジェクトの描画処理が必要になるため、１画面表示の場合に比べて処理負荷が２倍程度になってしまう。このため、リアルタイムの画像生成が難しくなる。特に画面の分割数が更に増えると、この処理負荷の増加の問題は深刻になる。
【０１２２】
この点、本実施形態によれば、遠景オブジェクトについては遠景画像に予め描画されている。従って、図１５のように２画面表示を行った場合にも、１画面表示の場合に比べて処理負荷はそれほど増加しない。
【０１２３】
また図１５では、画面ＤＳ１用の画像ＩＭ１と画面ＤＳ２用の画像ＩＭ２とが、遠景画像記憶部１７３を共用して生成される。即ち画像ＩＭ１の生成に使用される遠景画像ＩＭ１１と、画像ＩＭ２の生成に使用される遠景画像ＩＭ５３は、同じ遠景画像記憶部１７３に記憶される遠景画像である。従って図１５の手法によれば、メモリの使用記憶容量の増加を抑えながら、負荷の軽い処理で図１５のような２画面表示を実現できるという利点がある。
【０１２４】
２．７  遠景画像の合成
より正確な遠景画像を生成するためには、図２の位置Ｐ１１、Ｐ１２、Ｐ１３・・・の密度（格子点密度）を高くすればよい。しかしながら、このように位置の密度を高くすると、その分だけ多くのデータ量の遠景画像を記憶しなければならなくなり、メモリの使用記憶容量が増えてしまう。
【０１２５】
そこで本実施形態では、複数の遠景画像の合成により得られた遠景画像を遠景マップオブジェクトにマッピングする手法を採用している。
【０１２６】
例えば図１６では、遠景画像記憶部１７３に記憶される複数の遠景画像の中から、仮想カメラＶＣの位置に対応する遠景画像として、位置Ｐ１１、Ｐ１２（広義には第１〜第Ｎの位置）に対応付けられた遠景画像ＩＭ１１、ＩＭ１２（広義には第１〜第Ｎの遠景画像）を読み出す。そして読み出された遠景画像ＩＭ１１、ＩＭ１２を合成した画像を、遠景マップオブジェクトに対してマッピングする。
【０１２７】
具体的には図１６において、位置Ｐ１１と仮想カメラＶＣの距離Ｌ１と、位置Ｐ１２と仮想カメラＶＣとの距離Ｌ２を求める。そしてこれらの距離Ｌ１、Ｌ２に基づいて、遠景画像ＩＭ１１、ＩＭ１２の合成の際のα値を求める。
【０１２８】
例えば遠景画像ＩＭ１１のＲ、Ｇ、Ｂ成分をＲ１１、Ｇ１１、Ｂ１１とし、遠景画像ＩＭ１２のＲ、Ｇ、Ｂ成分をＲ１２、Ｇ１２、Ｂ１２とする。また合成により得られた遠景画像ＩＭＡのＲ、Ｇ、Ｂ成分をＲa、Ｇａ、Ｂａとする。すると例えば下式が成り立つ。
【０１２９】
Ｒａ＝（１−α）×Ｒ１１＋α×Ｒ１２
Ｇａ＝（１−α）×Ｇ１１＋α×Ｇ１２
Ｂａ＝（１−α）×Ｂ１１＋α×Ｂ１２
α＝Ｌ１／（Ｌ１＋Ｌ２）
このように、複数の遠景画像を合成した遠景画像を用いる手法によれば、位置Ｐ１１、Ｐ１２、Ｐ１３・・・の密度をそれほど高くしなくても、より正確な遠景画像を生成できる。従って、データ量の増加を抑えながら高品質の遠景画像を生成して表示できる。
【０１３０】
なお遠景画像の合成手法は種々の変形実施が可能である。例えば上式の補間処理の式では２つの位置の遠景画像を合成しているが、３つ以上の位置の遠景画像を合成してもよい。またＲ、Ｇ、Ｂなどの色のみならず、遠景画像のＺ値についても、上式のような補間処理で求めてもよい。
【０１３１】
２．８  詳細な処理例
次に本実施形態の詳細な処理例を図１７のフローチャートを用いて説明する。
【０１３２】
まず、仮想カメラの位置（視点位置）、視線方向を求める（ステップＳ１）。例えば、操作部１６０からの操作データやプログラムなどに基づいて、移動体の位置、方向を求め、この移動体に追従する仮想カメラの位置、視線方向を求める。或いは、仮想カメラの制御データ（制御プログラム）に基づいて仮想カメラの位置、視線方向を求める。
【０１３３】
次に、求められた仮想カメラの位置により、対象となる遠景画像を特定する（ステップＳ２）。例えば図１２（Ｃ）では、仮想カメラの位置によりフレーム番号を特定し、このフレーム番号により遠景画像を特定する。
【０１３４】
次に図１２（Ａ）で説明したように、圧縮された遠景ムービーテクスチャを伸長する（ステップＳ３）。そして伸長により得られた遠景画像のテクスチャを、図４に示すような遠景キューブマップオブジェクトにマッピングする（ステップＳ４）。
【０１３５】
次に、遠景キューブマップオブジェクトを仮想カメラの視線方向に応じて描画バッファに描画する（ステップＳ５）。この際に、図１０で説明したようにＺ値を視線方向に従って変換する。そして、図７（Ａ）（Ｂ）で説明したように、近景オブジェクトを描画バッファに描画する（ステップＳ６）。次に、車などの移動体を描画バッファに描画する（ステップＳ７）。この際に、図１１で説明したように、移動体に対して遠景キューブマップオブジェクトのテクスチャを環境マッピングする。
【０１３６】
３．ハードウェア構成
図１８に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＤＶＤ９８２（情報記憶媒体。ＣＤでもよい。）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１３７】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【０１３８】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。頂点シェーダやピクセルシェーダなどのプログラマブルシェーダが実装されている場合には、シェーダプログラムに従って、頂点データの作成・変更（更新）やピクセル（あるいはフラグメント）の描画色の決定を行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【０１３９】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【０１４０】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＤＶＤドライブ９８０（ＣＤドライブでもよい。）は、プログラム、画像データ、或いは音データなどが格納されるＤＶＤ９８２（ＣＤでもよい。）にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【０１４１】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１４２】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１４３】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書または図面のいかなる箇所においても、その異なる用語に置き換えることができる。
【０１４４】
また遠景画像のマッピング手法、遠景画像の圧縮・伸長手法、遠景画像の合成手法も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【０１４５】
また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレイヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１４６】
【図１】本実施形態の画像生成システムの機能ブロック図の例。
【図２】本実施形態の手法の説明図。
【図３】遠景画像の例。
【図４】遠景マップオブジェクトの例。
【図５】図５（Ａ）（Ｂ）は遠景マップオブジェクトの他の例。
【図６】図６（Ａ）（Ｂ）は基準点や位置取得用ポリゴンを用いる手法の説明図。
【図７】図７（Ａ）（Ｂ）は近景オブジェクトの描画手法の説明図。
【図８】図８（Ａ）（Ｂ）は近景オブジェクトの描画手法の説明図。
【図９】図９（Ａ）（Ｂ）は遠景画像のＺ値を用いた隠面消去手法の説明図。
【図１０】Ｚ値の変換手法の説明図。
【図１１】遠景画像を用いた環境マッピング手法の説明図。
【図１２】図１２（Ａ）（Ｂ）（Ｃ）は遠景画像の圧縮・伸長手法の説明図。
【図１３】圧縮ムービー情報のデータ構造の例。
【図１４】所与の範囲に対応する遠景画像の圧縮画像だけを伸長する手法の説明図。
【図１５】第１、第２の画面用の第１、第２の画像を、遠景画像記憶を共用して生成する手法の説明図。
【図１６】複数の遠景画像を合成する手法の説明図。
【図１７】本実施形態の処理の詳細例。
【図１８】ハードウェア構成例。
【符号の説明】
【０１４７】
１００  処理部、１０８  ゲーム演算部、１１０  オブジェクト空間設定部、
１１２  移動体演算部、１１４  仮想カメラ制御部、１２０  画像生成部、
１２２  変換処理部、１２４  伸長部、１３０  音生成部、
１６０  操作部、１７０  記憶部、１７２  主記憶部、
１７３  遠景画像記憶記憶部、１７４  描画バッファ、１７６  モデルデータ記憶部、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、
１９４  携帯型情報記憶装置、１９６  通信部
【図１】
0004806578.tif 000002
【図２】
0004806578.tif 000003
【図４】
0004806578.tif 000004
【図５】
0004806578.tif 000005
【図６】
0004806578.tif 000006
【図７】
0004806578.tif 000007
【図８】
0004806578.tif 000008
【図９】
0004806578.tif 000009
【図１０】
0004806578.tif 000010
【図１１】
0004806578.tif 000011
【図１２】
0004806578.tif 000012
【図１３】
0004806578.tif 000013
【図１４】
0004806578.tif 000014
【図１５】
0004806578.tif 000015
【図１６】
0004806578.tif 000016
【図１７】
0004806578.tif 000017
【図１８】
0004806578.tif 000018
【図３】
0004806578.tif 000019