(57)【特許請求の範囲】
【請求項１】
オブジェクト空間において仮想カメラから見える画像を生成するためのプログラムであって、
形状が変化する物体の第１の領域に対応した第１のオブジェクトについて、当該第１のオブジェクトの構成点の高さを周期的に変化させるための処理を行う第１のオブジェクト設定処理部と、
前記第１のオブジェクトの高さ変化の周期に同期させて、形状が変化する物体の第２の領域に対応した第２のオブジェクトの前記第１のオブジェクトに対する位置を周期的に変化させるための処理を行う第２のオブジェクト設定処理部と、
第１のオブジェクトと第２のオブジェクトが設定されたオブジェクト空間を仮想カメラから見た画像を生成する描画部と、
してコンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記第２のオブジェクト設定処理部は、
第１のオブジェクトの所定のエリアの形状に基づいて、第２のオブジェクトの形状を決定することを特徴とするプログラム。
【請求項３】
請求項１乃至２のいずれかにおいて、
前記第２のオブジェクト設定処理部は、
第１のオブジェクトの構成点の高さ変化の周期に同期させて、第２のオブジェクトの透明度を周期的に変化させるための処理を行うことを特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれかにおいて、
第１のオブジェクトの構成点の高さ変化の周期または第２のオブジェクトの移動周期に同期させて、またはこれらのいずれかに所定時間遅延させて同期させて、前記形状が変化する物体とは異なる物体に対応した第３のオブジェクトの前記第１のオブジェクトに対する位置を周期的に変化させるための処理を行う第３のオブジェクト設定処理部を含み、
前記描画部は、
第１のオブジェクトと第２のオブジェクトとともに第３のオブジェクトが設定されたオブジェクト空間を仮想カメラから見た画像を生成することを特徴とするプログラム。
【請求項５】
請求項４において、
前記第３のオブジェクト設定処理部は、
第１のオブジェクトの構成点の高さ変化の周期または第２のオブジェクトの移動周期に同期させて、またはこれらのいずれかに所定時間遅延させて同期させて、第３のオブジェクトの透明度を周期的に変化させるための処理を行うことを特徴とするプログラム。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記第１のオブジェクト設定処理部は、
前記各構成点に対して与えられた高さ調整パラメータまたは深度情報に基づき各構成点の高さの調整を行うことを特徴とするプログラム。
【請求項７】
請求項１乃至６のいずれかにおいて、                         
前記第１のオブジェクト設定処理部は、
仮想カメラと所定の位置関係を有するエリアを演算領域として設定し、第１のオブジェクトの各構成点が演算領域に属するか否か判断し、属さないと判断した場合には、各構成点の高さを求める処理を省略することを特徴とするプログラム。
【請求項８】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至７のいずれかのプログラムが記憶されていることを特徴とする情報記憶媒体。
【請求項９】
オブジェクト空間において仮想カメラから見える画像を生成する画像生成システムであって、
形状が変化する物体の第１の領域に対応した第１のオブジェクトについて、当該第１のオブジェクトの構成点の高さを周期的に変化させるための処理を行う第１のオブジェクト設定処理部と、
前記第１のオブジェクトの高さ変化の周期に同期させて、形状が変化する物体の第２の領域に対応した第２のオブジェクトの前記第１のオブジェクトに対する位置を周期的に変化させるための処理を行う第２のオブジェクト設定処理部と、
第１のオブジェクトと第２のオブジェクトが設定されたオブジェクト空間を仮想カメラから見た画像を生成する描画部と、
含むことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【背景技術】
【０００２】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
さてこのようなゲームシステムでは、プレーヤの仮想現実向上のために、よりリアルな画像を生成することが重要な技術的課題になっている。
【０００４】
例えば水面（海面等）の画像を表示するゲームシステムでは、水面（海面等）を書いた１つのテクスチャで形成されるのが一般的であったが、単調な画像となっていたため、よりリアルな水面（海面等）の画像が表示できるゲームシステムが望まれていた。
【特許文献１】特許第２８１２６７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
例えば上記文献では２つのポリゴンデータを上下に間隔を開けて配置し、それそれテクスチャをマッピングすることにより、透明感及び深さ感のあるリアルな画像や霧のかかった水面の画像を表現しようとするものである。
【０００６】
ところが波によって生じる海水面の複雑な動きを表現するものではなかった。
【０００７】
一般に海では沖では水面の高さの変化として進行してきた波が波打ち際付近では寄せたり引いたりする白波となっており、波によって沖と波打ち際では異なる態様をとりながらも一体として動作する。
【０００８】
しかし従来のゲームシステムでは、このような波による影響を反映したリアルな画像表現が行われていなかった。
【０００９】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、少ない処理負荷で、波の影響を受けて変化する沖合から波打ち際までの水面のリアルな画像を生成することが可能な画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【００１０】
（１）本発明は、
オブジェクト空間において仮想カメラから見える画像を生成するための画像生成システムであって、
形状が変化する物体の第１の領域に対応した第１のオブジェクトについて、当該第１のオブジェクトの構成点の高さを周期的に変化させるための処理を行う第１のオブジェクト設定処理部と、
前記第１のオブジェクトの高さ変化の周期に同期させて、形状が変化する物体の第２の領域に対応した第２のオブジェクトの前記第１のオブジェクトに対する位置を周期的に変化させるための処理を行う第２のオブジェクト設定処理部と、
第１のオブジェクトと第２のオブジェクトが設定されたオブジェクト空間を仮想カメラから見た画像を生成する描画部と、とを含む画像生成システムに関係する。
【００１１】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【００１２】
例えば形状が変化する物体の第１の領域に対応した第１のオブジェクトについて、当該第１のオブジェクトの構成点の平面座標と時間を引数とする周期関数に基づいて、当該第１のオブジェクトの構成点の高さを周期的に変化させるようにしてもよい。そして各フレームにおける各構成点の高さを演算して各フレームにおける第１のオブジェクトの形状を特定することができる。
【００１３】
そして第１のオブジェクトの高さ変化の周期に同期させて、第２のオブジェクトの位置を周期的に変化させる。
【００１４】
形状が変化する物体とは例えば液体や気体、固体でも形状が変化するもの）であり、具体的には波の立つ海等である。
【００１５】
第１のオブジェクトは、例えば海水（形状が変化する物体）の沖を含む領域（第１の領域）の水面の画像を生成するためのオブジェクトであり、複数の構成点（構成点のＸＺ座標は例えばメッシュ状又は格子状になるように配置されている）の高さ（Ｙ座標）を周期的に変化させることにより波のある水面を表現することができる。
【００１６】
また第２のオブジェクトは、例えば海水（形状が変化する物体）の波打ち際を含む領域（第２の領域）の水面の画像を生成するためのオブジェクトであり、大きさは第１のオブジェクトの一端の幅と同じ程度の幅を有し寄せたり引いたりする波の変動する長さの最大長をカバーできる長さを有するオブジェクトであり形状は板状でもよいし、例えば第１のオブジェクトのように高さが変化するオブジェクトでもよい。
【００１７】
第２のオブジェクトの位置を第１のオブジェクトの高さ変化の周期に同期して、周期的に変化させるとは、両者の変化の周期が同じ場合でもよいし、一方の周期が他方の周期の整数倍になっている場合でもよい。また周期の長さが同じ又は整数倍であるが、ずれいる場合でもよい。
【００１８】
また第１のオブジェクトについては、波打ち際から離れた液体面の画像を生成するためのピクセル処理をおこない、第２のオブジェクトについては、波打ち際の液体面の画像を生成するためのピクセル処理を行う。
【００１９】
例えば第１のオブジェクトについては、波打ち際から離れた液体面の模様のテクスチャをマッピングするようにしてもよいし、第２のオブジェクトについては、波打ち際の液体面の模様のテクスチャをマッピングするようにしてもよい。
【００２０】
本発明によれば、第２のオブジェクトの位置が第１のオブジェクトの各構成点の高さの変化の周期に同期して周期的に変化するので、波の高さの変化と波打ち際で波が寄せては返す様子ちぐはぐとならず一体感のあるリアルな画像を生成することができる。
【００２１】
（２）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記第２のオブジェクト設定処理部は、
第１のオブジェクトの所定のエリアの形状に基づいて、第２のオブジェクトの形状を決定することを特徴とする。
【００２２】
例えば所与のフレームにおいて得られた第１のオブジェクトの所定のエリアの形状に基づいて、当該フレームの第２のオブジェクトの形状を決定するようにしてもよい。
【００２３】
また異なるフレームにおいて得られた第１のオブジェクトの所定のエリアの形状に基づいて、第２のオブジェクトの形状を決定するようにしてもよい。
【００２４】
このようにすると第２のオブジェクトの形状設定のための演算を負荷を軽減できるとともに、第１のオブジェクトと一体感の画像を生成することができる。
【００２５】
（３）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記第２のオブジェクト設定処理部は、
第１のオブジェクトの構成点の高さ変化の周期に同期させて、第２のオブジェクトの透明度を周期的に変化させるための処理を行うことを特徴とする。
【００２６】
例えば第１のオブジェクトの高さ変化の周期に同期させて、第２のオブジェクトにマッピングする第２のテクスチャの透明度（α値）を周期的に変化させるようにしてもよい。またテクスチャのマッピングを行わずにピクセル処理で各ピクセルの色を生成する場合には、ピクセル処理におけるα値を周期的に変化させるようにしてもよい。
【００２７】
例えば第２のオブジェクトを加算半透明で描画する場合には、透明度が低い（α値が１に近い）と波打ち際の白波が濃い画像を生成することができ、透明度が高い（α値が０に近い）と波打ち際の白波が薄い画像を生成することができる。
【００２８】
例えば第２のオブジェクトの位置が第１のオブジェクトから遠ざかっているとき（波打ち際に白波が寄せてきているとき。白波が長く伸びているとき）は透明度を低くして（濃い白波の画像を生成）、第２のオブジェクトの位置が第１のオブジェクトに近づいているとき（波打ち際から白波が引いているとき。白波が短くなっているとき）は透明度を高くする（薄い白波の画像を生成）ようにしてもよい。
【００２９】
（４）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
第１のオブジェクトの構成点の高さ変化の周期または第２のオブジェクトの移動周期に同期させて、またはこれらのいずれかに所定時間遅延させて同期させて、第３のオブジェクトの前記第１のオブジェクトに対する位置を周期的に変化させるための処理を行う第３のオブジェクト設定処理部を含み、
前記描画部は、
第１のオブジェクトと第２のオブジェクトとともに第３のオブジェクトが設定されたオブジェクト空間を仮想カメラから見た画像を生成することを特徴とする。
【００３０】
第３のオブジェクトは例えば形状が変化する物体の第２の領域に対応した第２のオブジェクト（波打ち際の寄せてはかえす白波）の下にあり、第２のオブジェクトの移動による影響を受けた画像（例えば濡れた地面の画像）を生成するためのオブジェクトである。
【００３１】
本実施の形態では、第１のオブジェクトの構成点の高さ変化の周期または第２のオブジェクトの移動周期に同期させて、またはこれらのいずれかに所定時間遅延させて同期させて、第３のオブジェクトの前記第１のオブジェクトに対する位置を周期的に変化させることができるので、波打ち際の白波の移動に伴って濡れた地面が見えて白波の移動に遅れて濡れた地面が移動する画像を生成することができる。
【００３２】
（５）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記第３のオブジェクト設定処理部は、
第１のオブジェクトの構成点の高さ変化の周期または第２のオブジェクトの移動周期に同期させて、またはこれらのいずれかに所定時間遅延させて同期させて、第３のオブジェクトの透明度を周期的に変化させるための処理を行うことを特徴とする。
【００３３】
例えば第１のオブジェクトの高さ変化の周期または第２のオブジェクトの移動周期に同期させて、第３のオブジェクトにマッピングする第３のテクスチャの透明度（α値）を周期的に変化させるようにしてもよい。またテクスチャのマッピングを行わずにピクセル処理で各ピクセルの色を生成する場合には、ピクセル処理におけるα値を周期的に変化させるようにしてもよい。
【００３４】
例えば第３のオブジェクトを加算半透明で描画する場合には、透明度が低い（α値が１に近い）と地形が濡れた画像を生成することができ、透明度が高い（α値が０に近い）と地形が乾いた画像を生成することができる。
【００３５】
例えば第２のオブジェクトの位置が第１のオブジェクトから最も離れたところに位置する場合に（波打ち際に白波が寄せてきているとき。白波が長く伸びているとき）、第３のオブジェクトの透明度を低くして（濡れた地形の画像を生成）、第２のオブジェクトの位置が第１のオブジェクトに近づいているとき（波打ち際から白波が引いているとき。白波が短くなっているとき）は透明度を高くする（乾いた地形の画像を生成）ようにしてもよい。
【００３６】
上記の場合は時間の変化とともにすべての場所の透明度を一律に変化させるようにしてもよい。
【００３７】
また例えば第３のオブジェクトの場所に応じて透明度の変化をことならせるようにしてもよい。例えば第１のオブジェクトから近い場所から順に透明度がたかくなるように変化させてもよい。
【００３８】
本発明によれば、波打ち際で白波が引いていった後に濡れた砂が徐徐に乾いていく画像を生成することができる。
【００３９】
（６）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記第１のオブジェクト設定処理部は、
前記各構成点に対して与えられた高さ調整パラメータまたは深度情報に基づき各構成点の高さの調整を行うことを特徴とする。
【００４０】
例えば第１のオブジェクトの構成点に高さ調整パラメータまたは深度情報が関連づけて設定しておくようにしても良い。例えば構成点毎に高さ調整パラメータまたは深度情報が設定されている場合でもよいし、第１のオブジェクトを複数の領域に分割し、領域単位に高さ調整パラメータまたは深度情報を設定するようにしてもよい。そして各構成点がどの領域に属するかによって高さ調整パラメータまたは深度情報を決定してもよい。
【００４１】
高さ調整パラメータまたは深度情報に基づき各構成点の高さの調整を行うとは、高さ調整パラメータまたは深度情報に基づき、各構成点の高さを演算する際に使用する周期関数の振幅パラメータを変更する場合でもよいし、周期関数は同じものを利用して周期関数で得られた高さの値に対して高さ調整パラメータまたは深度情報に基づき補正をかける場合でもよい。
【００４２】
高さ調整パラメータまたは深度情報に基づき各構成点の高さの調整を行う際には、海底からの距離が遠い場合（深度が大きい）は海底からの距離が近い場合（深度が小さい）に比べて高さの変化が小さくなるように各フレームにおける各構成点の高さを演算するようにしてもよい。
【００４３】
（７）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記第１のオブジェクト設定処理部は、
仮想カメラと所定の位置関係を有するエリアを演算領域として設定し、第１のオブジェクトの各構成点が演算領域に属するか否か判断し、属さないと判断した場合には、各構成点の高さを求める処理を省略することを特徴とする。
【００４４】
海は広いため、通常の高さの波の遠方の点のy座標の違いは、透視変換した時に２D画面座標としてはほとんど変わらず誤差として許容できる範囲である。
【００４５】
従って仮想カメラと所定の位置関係を有するエリアを演算領域として設定し、第１のオブジェクトの各構成点が演算領域に属するか否か判断し、属さないと判断した場合には、各構成点の高さを求める処理を省略するようにしてもよい。
【００４６】
ここでは演算領域を仮想カメラからの距離に応じて設定してもよいし、仮想カメラのビューボリューム又はビューボリュームのＸＺ平面への投影領域に基づき設定してもよい。
【００４７】
本発明によれば、遠方の部分は高さの演算を省略することができるので、演算負荷を軽減することができる。
【００４８】
（８）また本発明は、
オブジェクト空間において仮想カメラから見える画像を生成するための画像生成システムであって、
波のある水面を画像を生成するための水面オブジェクトの構成点の高さを周期的に変化させるための処理を行う水面オブジェクト設定処理部と、
水面オブジェクトが設定されたオブジェクト空間を仮想カメラから見た画像を生成する描画部と、してコンピュータを機能させ、
前記水面オブジェクト設定処理部は、
仮想カメラと所定の位置関係を有するエリアを演算領域として設定し、第１のオブジェクトの各構成点が演算領域に属するか否か判断し、属さないと判断した場合には、各構成点の高さを求める処理を省略することを特徴とする画像生成システムに関係する。
【００４９】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【発明を実施するための最良の形態】
【００５０】
以下、本実施形態について説明する。
【００５１】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００５２】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお、本実施形態の画像生成システムは、図１の構成要素（各部）の一部を省略した構成としてもよい。
【００５３】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【００５４】
記憶部１７０は、描画バッファ１７２やＺバッファ１７４やテクスチャ記憶部１７６を含み、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどにより実現できる。
【００５５】
テクスチャ記憶部１７６は、沖合の海の水面を表すテクスチャや、波打ち際の白波を表すテクスチャを記憶するようにしてもよい。
【００５６】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶（記録、格納）される。
【００５７】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００５８】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。
【００５９】
通信部１９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００６０】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００６１】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。また処理部１００は記憶部１７０をワーク領域として各種処理を行う。処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）やＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００６２】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、第１のオブジェクト設定処理部１１６、第２のオブジェクト設定処理部１１７、第３のオブジェクト設定処理部１１８、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略してもよい。
【００６３】
オブジェクト空間設定部１１０は、キャラクタ、樹木、車、柱、壁、建物、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００６４】
移動・動作処理部１１２は、オブジェクト（車、飛行機、又はキャラクタ等）の移動・動作演算（移動・動作シミュレーション）を行う。即ち、操作部１６０によりプレーヤが入力した操作データ、プログラム（移動・動作アルゴリズム）、或いは各種データ（モーションデータ）などに基づいて、オブジェクト（移動オブジェクト）をオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（各パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。ここでフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００６５】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点での画像を生成するための仮想カメラを制御する処理を行う。即ち、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置や視線方向を制御する処理）を行う。
【００６６】
例えば仮想カメラによりオブジェクトを後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた移動経路で移動させながら予め決められた回転角度で回転させるようにしてもよい。この場合には、仮想カメラの位置（移動経路）や回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【００６７】
第１のオブジェクト設定処理部１１６は、形状が変化する物体の第１の領域に対応した第１のオブジェクトについて、当該第１のオブジェクトの構成点の高さを周期的に変化させるための処理を行う。
【００６８】
第１のオブジェクト設定処理部１１６は、前記各構成点に対して与えられた高さ調整パラメータまたは深度情報に基づき各構成点の高さの調整を行うようにしてもよい。
【００６９】
前記第１のオブジェクト設定処理部１１６は、仮想カメラと所定の位置関係を有するエリアを演算領域として設定し、第１のオブジェクトの各構成点が演算領域に属するか否か判断し、属さないと判断した場合には、各構成点の高さを求める処理を省略するようにしてもよい。
【００７０】
第２のオブジェクト設定処理部１１７は、前記第１のオブジェクトの高さ変化の周期に同期させて、形状が変化する物体の第２の領域に対応した第２のオブジェクトの前記第１のオブジェクトに対する位置を周期的に変化させるための処理を行う。
【００７１】
第２のオブジェクト設定処理部１１７は、第１のオブジェクトの所定のエリアの形状に基づいて、第２のオブジェクトの形状を決定するようにしてもよい。
【００７２】
前記第２のオブジェクト設定処理部１１７は、
第１のオブジェクトの構成点の高さ変化の周期に同期させて、第２のオブジェクトの透明度を周期的に変化させるための処理を行うようにしてもよい。
【００７３】
第３のオブジェクト設定処理部１１８は、第１のオブジェクトの構成点の高さ変化の周期または第２のオブジェクトの移動周期に同期させて、またはこれらのいずれかに所定時間遅延させて同期させて、第３のオブジェクトの前記第１のオブジェクトに対する位置を周期的に変化させるための処理を行う。
【００７４】
第３のオブジェクト設定処理部１１８は、第１のオブジェクトの高さ変化の周期または第２のオブジェクトの移動周期に同期させて、またはこれらのいずれかに所定時間遅延させて同期させて、第３のオブジェクトの透明度を周期的に変化させるための処理を行う。
【００７５】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。
【００７６】
描画部１２０は、第１のオブジェクト、第２のオブジェクト、第３のオブジェクトが設定されたオブジェクト空間を仮想カメラから見た画像を描画する描画部として機能する。
【００７７】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。頂点処理では、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、透視変換、あるいは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（フラグメント処理）が行われる。ピクセル処理では、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内に設定された仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００７８】
なお描画部１２０が行う頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現されてもよい。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、ハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００７９】
そして描画部１２０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００８０】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、主記憶部１７２に保存される。
【００８１】
テクスチャマッピングは、記憶部１７０のテクスチャ記憶部１７８に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０のテクスチャ記憶部１７８からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００８２】
特に本実施形態では、第２のオブジェクトを描画する際に、所与のテクスチャをマッピングする処理を行うようにしてもよい。この場合には、第２のオブジェクトに対してマッピングされるテクスチャの色分布（テクセルパターン）を動的に変化させることができる。この場合において、色分布が異なるテクスチャを動的に生成してもよいし、複数の色分布が異なるテクスチャを予め用意しておき、使用するテクスチャを動的に切り替えるようにしてもよい。またオブジェクト単位でテクスチャの色分布を変化させてもよいし、オブジェクト単位でテクスチャの色分布を変化させるようにしてもよい。
【００８３】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファに格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００８４】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。例えば、通常αブレンディングでは、α値を合成の強さとして線形補間を行うことにより２つの色を合成した色を求める処理を行う。
【００８５】
ＲＱ＝（１−α）×Ｒ１＋α×Ｒ２    （１）
ＧＱ＝（１−α）×Ｇ１＋α×Ｇ２    （２）
ＢＱ＝（１−α）×Ｂ１＋α×Ｂ２    （３）
また合成処理が加算αブレンディングである場合を例にとれば、色合成部１２６は下式に従ったα合成処理を行う。
【００８６】
ＲＱ＝Ｒ１＋α×Ｒ２                （４）
ＧＱ＝Ｇ１＋α×Ｇ２                （５）
ＢＱ＝Ｂ１＋α×Ｂ２                （６）
また合成処理がα乗算である場合を例にとれば、色合成部１２６は下式に従ったα合成処理を行う。
【００８７】
ＲＱ＝α×Ｒ１                      （７）
ＧＱ＝α×Ｇ１                      （８）
ＢＱ＝α×Ｂ１                      （９）
また合成処理がα乗加算である場合を例にとれば、色合成部１２６は下式に従ったα合成処理を行う。
【００８８】
ＲＱ＝α×Ｒ１＋Ｒ２                      （７）
ＧＱ＝α×Ｇ１＋Ｇ２                      （８）
ＢＱ＝α×Ｂ１＋Ｂ２                      （９）
ここで、Ｒ１、Ｇ１、Ｂ１は、描画バッファ１７２に既に描画されている画像（背景画像）の色（輝度）のＲ、Ｇ、Ｂ成分であり、Ｒ２、Ｇ２、Ｂ２は、描画バッファ１７２に描画するオブジェクト（プリミティブ）の色のＲ、Ｇ、Ｂ成分である。また、ＲＱ、ＧＱ、ＢＱは、αブレンディングにより得られる画像の色のＲ、Ｇ、Ｂ成分である。なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００８９】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えばＲＧＢの各色成分の輝度を表す色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００９０】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００９１】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００９２】
２．波の画像生成
図２は本実施の形態の海面の画像の一例である。１０は沖合の海面（第１の領域）であり、２０は波打ち際の海面（第２の領域）である。沖合の海面（第１の領域）１０では波により水面が上下し、波打ち際の海面（第２の領域）２０では、砂浜３０に対して白い泡のたった白波が寄せたり引いたりしている。
【００９３】
本実施の形態では、沖合の海面（第１の領域）１０に対応して第１のオブジェクトを設定し、波打ち際の海面（第２の領域）２０に対応して第２のオブジェクトを設定する。
【００９４】
図３（Ａ）は、波打ち際に波が寄せてきた時の画像の一例である。同図に示すように波が寄せてきた時には、白波２０が砂浜のほうに長く伸びてくる画像が生成される。
【００９５】
図３（Ｂ）は、波打ち際から波が引いていく時の画像の一例である。同図に示すように波が引いていく時には、白波２０の長さが短くなって沖のほうに遠ざかっていく画像が生成される。
【００９６】
図４は本実施の形態の第１のオブジェクトについて説明するための図である。
【００９７】
本実施の形態では、第１のオブジェクトの構成点の平面座標と時間を引数とする周期関数に基づいて、周期的に変化する各構成点の高さを演算して各フレームにおける第１のオブジェクトの形状を決定する。以下本実施の形態において第１のオブジェクトの波の形状を決定する具体例について説明する。
【００９８】
平面波を生成するための波メッシュ（例えば格子点でもよい）の構成点（ｉ，ｊ）の時刻ｔにおける高さをｙとすると、以下の式で表すことができる。
【００９９】
周期関数はｋ＝１〜Ｋmaxで特定される複数の周期関数（たとえば三角関数）の合成関数として特定される。振幅パラメータＡｋは波成分の波高を表し、波長パラメータｎｋはｉ方向の波数（整数）及びｉ方向成分に対する進行方向を表し、波長パラメータｍｋはｊ方向の波数（整数）及びｊ方向成分に対する進行方向を表す。
【０１００】
周期関数によって生成されるデカルト座標系（直交座標系）における波の形状について説明する。
【０１０１】
例えば周期関数がｋ＝０の周期関数Ｗ０（２１０）、ｋ＝１の周期関数Ｗ１（２２０）、ｋ＝２の周期関数Ｗ２（２３０）の３つの周期関数の合成関数として構成されているとする。
【０１０２】
ｋ＝０の周期関数Ｗ０（２１０）は、波長パラメータｎｋ＝０、波長パラメータｍｋ＝１の周期関数であり、２１２に示すようなｊ方向成分のみをもつ波を表す。
【０１０３】
ｋ＝１の周期関数Ｗ１（２２０）は、波長パラメータｎｋ＝２、波長パラメータｍｋ＝０の周期関数であり、２２２に示すようなｉ方向成分のみをもつ波を表す。
【０１０４】
ｋ＝２の周期関数Ｗ２（２３０）は、波長パラメータｎｋ＝１、波長パラメータｍｋ＝２の周期関数であり、２３２に示すようなｉ方向成分とｉ方向成分をもつ波を表す。
【０１０５】
２４０は周期関数がｋ＝０の周期関数Ｗ０（２１０）、ｋ＝１の周期関数Ｗ１（２２０）、ｋ＝２の周期関数Ｗ２（２３０）の３つの周期関数の合成関数によって特定される波の形状を示している。
【０１０６】
２５０はデカルト座標系（直交座標系）における構成点（ｉ、ｊ）を表している。各構成点（ｉ、ｊ）のｙ座標は上記数式（１）によって求められ、２４０に示すような波オブジェクトの形状が特定される。
【０１０７】
図５は構成点と周期関数によって生成される第１のオブジェクトの様子を示した図である。
【０１０８】
図６は第１のオブジェクトと第２のオブジェクトの関係を模式的に示した図である。
【０１０９】
本実施の形態では、第２の領域に対応した第２のオブジェクト２０の第１のオブジェクト１０に対する位置を第１のオブジェクト１０の構成点（例えば頂点）の高さ変化の周期に同期させて周期的に変化させる。
【０１１０】
図７は第１のオブジェクトの構成点の高さの変化の周期と、第２のオブジェクトの移動の周期について説明するための図である。
【０１１１】
１０−１〜１０−４は、所与の構成点（ここでは第１のオブジェクトの端の点（ｘi、ｙj））の高さｙの時間的な変化を示す周期関数（ここでは花地を簡単にするためにＺ方向のみの変化を表している）である。１２−１〜１２−４は、所与の構成点（ここでは第１のオブジェクトの端の点（ｘi、ｙj））の高さｙの時間的な変化を示している。
【０１１２】
２０−２〜２０−４は、第２のオブジェクトの配置の時間的な変化を示しており、２２−１〜２２−４は、第２のオブジェクトの代表点の位置の時間的な変化を示している。
【０１１３】
第１のオブジェクトの端の点（ｘi、ｙj）（波打ち際に近いほうのはし、又は第２のオブジェクトに近いほうの端）の高さは周期関数１０に従って変化する。周期関数１０によって所定の振幅及び周期を有し左方向に進行する波（４０参照）が生成される。
【０１１４】
１２−１は第１のオブジェクトの端点（ｘi、ｙj）の高さが平均点にある場合であり、その後端点（ｘi、ｙj）の高さは周期関数１０の波形に従って徐徐に高くなり１２−２で最高点に達し、その後端点（ｘi、ｙj）の高さは周期関数１０の波形に従って徐徐に低くなり１２−３で平均点にもどり、１２−４で最低点に達する。
【０１１５】
すなわち１２−１〜１２−４が、所与の１周期における端点（ｘi、ｙj）の高さの変化を表している。
【０１１６】
１２−１は第１のオブジェクトの端点（ｘi、ｙj）が１２−１の場合の第２のオブジェクトの様子を表しており、２２−１はこのときの第２のオブジェクトの代表点の位置である。
【０１１７】
１２−２は第１のオブジェクトの端点（ｘi、ｙj）が１２−２の場合の第２のオブジェクトの様子を表しており、２２−２はこのときの第２のオブジェクトの代表点の位置である。
【０１１８】
１２−３は第１のオブジェクトの端点（ｘi、ｙj）が１２−３の場合の第２のオブジェクトの様子を表しており、２２−３はこのときの第２のオブジェクトの代表点の位置である。
【０１１９】
１２−４は第１のオブジェクトの端点（ｘi、ｙj）が１２−４の場合の第２のオブジェクトの様子を表しており、２２−４はこのときの第２のオブジェクトの代表点の位置である。
【０１２０】
第２のオブジェクトは、例えば第１のオブジェクトの端点（ｘi、ｙj）の高さが平均点にある場合（１２−１）に基準位置に配置され（２０−１参照）、その後第１のオブジェクトの端点（ｘi、ｙj）の高さが徐徐に高くなるにしたがって、第１のオブジェクトから離れる方向（５０参照）に移動し、第１のオブジェクトの端点（ｘi、ｙj）の高さが最高点に達した場合（１２−２）に第１のオブジェクトから最も離れた所に配置され（２０−２参照）、その後第１のオブジェクトの端点（ｘi、ｙj）の高さが徐徐に低くなるに従って第１のオブジェクトに近づく方向（５２、５４参照）に移動し、第１のオブジェクトの端点（ｘi、ｙj）の高さが最低点に達した場合（１２−４）に第１のオブジェクトに最も近い所に配置されるようにしてもよい（２０−４参照）。
【０１２１】
すなわち第２のオブジェクトの位置は、第１のオブジェクトの構成点の高さの周期に同期して、２２−１〜２２−４の間を行ったり来たり移動する。
【０１２２】
なお第１のオブジェクトの端点の高さと第２のオブジェクトの位置関係は、端点の高さが高いときが第２のオブジェクトが離れている場合に限られない。
【０１２３】
第１のオブジェクトの幅が波の波長の整数倍の場合と、それ足す0.5（例えば1.5倍）の場合等、第１のオブジェクトの幅と波の波長に応じて適宜設定することができる。例えば端点の高さが低いときが第２のオブジェクトが離れている場合でもよい。
【０１２４】
図２に示すように、海面を第１の領域と第２の領域にわけて、第１の領域を第１のオブジェクトとして構成し、第２の領域を第２のオブジェクトとして構成し、第１のオブオブジェクトの構成点の高さの変化の周期と第２オブジェクトの移動周期を動機させることにより、沖合から進行してきた波が波打ち際で寄せたり引いたりする動作を少ない演算負荷でリアルに表現することができる。
【０１２５】
図８は第１のオブジェクトの端点の高さの調整について説明するための図である。第１のオブジェクトの構成点の高さは所定の周期関数に従って最高点と最低点の間で周期的に変化する。ここで第１のオブジェクトの第２のオブジェクト側の端のラインに位置する構成点（端点）の高さについてもかかる周期関数で求めることもできる。しかし端点付近は第１のオブジェクトと第２のオブジェクトの境目にあたる部分なので高さを所定の値（例えば平均点）に固定しておくようにしてもよい。このようにすることによりつなぎ目の高さが上下することによる不具合を防止することができる。
【０１２６】
具体的には端点が１２−２の時に０の位置（１２’−１）に来るように補正し、高さの変化がスムーズに移行するように所定区間１４の波形を補正する。
【０１２７】
また端点が１２−４の時に０の位置（１２’−４）に来るように補正し、高さの変化がスムーズに移行するように所定区間１５の波形を補正する。
【０１２８】
またこれ以外でも端点の高さが０以外の場合には０の位置に来るように補正し、高さの変化がスムーズに移行するように対応する所定区間の波形を補正する。
【０１２９】
次に第２のオブジェクトの形状の決定手法について説明する。
【０１３０】
第２のオブジェクトの形状は例えば板状のオブジェクトでもよいし、所与の時刻の第１のオブジェクトの所定のエリアの形状に基づいて、所与の時刻の第２のオブジェクトの形状を決定するようにしてもよい。
【０１３１】
例えば図６において、第１のオブジェクト１０の第２のオブジェクトと重なるほうの端のライン６２を含む所定のエリア６０の形状に基づき第２のオブジェクトの形状を決定してもよい。例えば第２のオブジェクトとして所定のエリア６０の形状を採用してもよい。
【０１３２】
図９は、本実施の形態の第２のオブジェクトの形状の決定手法について説明するための図である。
【０１３３】
本実施の形態では第１のオブジェクトの形状は周期関数に基づいて時間的に変化する。例えば３１０−１はゲーム時刻ｔ１における所与のＹＺ断面（ｘ＝ａの地点）の形状（高さの変化）を表している。このとき第２のオブジェクトの所与のＹＺ断面（ｘ＝ａの地点）の形状（高さの変化）３２０−１は、所与の区間３００の第１のオブジェクトの形状３１０−１と同じとなる。
【０１３４】
また例えば３１０−２はゲーム時刻ｔ２における所与のＹＺ断面（ｘ＝ａの地点）の形状（高さの変化）を表している。ここで３１０−２は端点の値を０に補正した時の波形である。このとき第２のオブジェクトの所与のＹＺ断面（ｘ＝ａの地点）の形状（高さの変化）３２０−２は、所与の区間３００の第１のオブジェクトの形状３１０−２と同じとなる。
【０１３５】
また例えば３１０−３はゲーム時刻ｔ３における所与のＹＺ断面（ｘ＝ａの地点）の形状（高さの変化）を表している。このとき第２のオブジェクトの所与のＹＺ断面（ｘ＝ａの地点）の形状（高さの変化）３２０−３は、所与の区間３００の第１のオブジェクトの形状３１０−３と同じとなる。
【０１３６】
また例えば３１０−４はゲーム時刻ｔ４における所与のＹＺ断面（ｘ＝ａの地点）の形状（高さの変化）を表している。ここで３１０−４は端点の値を０に補正した時の波形である。このとき第２のオブジェクトの所与のＹＺ断面（ｘ＝ａの地点）の形状（高さの変化）３２０−４は、所与の区間３００の第１のオブジェクトの形状３１０−４と同じとなる。
【０１３７】
図１０（Ａ）（Ｂ）は、本実施の形態の第１のテクスチャ及び第２のテクスチャの一例である。
【０１３８】
図１０（Ａ）は、第１のオブジェクトにマッピングされる第１のテクスチャであり、沖を含む波打ち際以外の海水面（波打ち際から離れた液体面）の模様である。
【０１３９】
図１０（Ｂ）は、第２のオブジェクトにマッピングされる第２のテクスチャであり、波打ち際の海水面（波打ち際の泡だった白波）の模様である。
【０１４０】
なお予めテクスチャ画像を用意しておかなくても各ピクセル毎にリアルタイムに色情報を生成した図１０（Ａ）（Ｂ）に示すような画像を生成するようにしてもよい。
【０１４１】
図１１は第１のオブジェクトの構成点の高さの変化の周期または第２のオブジェクトの移動の周期と第３のオブジェクトの移動の周期との関係について説明するための図である。
【０１４２】
第１のオブジェクトの構成点の高さの変化（１０−１〜１０−４）および第２のオブジェクトの移動（２０−１〜２０−４）につては、図７で説明した通りである。
【０１４３】
３０−１〜３０−４は、第３のオブジェクトの配置の時間的な変化を示しており、３２−１〜３２−４は、第２のオブジェクトの代表点の位置の時間的な変化を示している。
【０１４４】
１２−１は第１のオブジェクトの端点（ｘi、ｙj）が１２−１の場合の第２のオブジェクトの様子を表しており、２２−１はこのときの第２のオブジェクトの代表点の位置であり、３２−１はこのときの第３のオブジェクトの代表点の位置である。
【０１４５】
１２−２は第１のオブジェクトの端点（ｘi、ｙj）が１２−２の場合の第２のオブジェクトの様子を表しており、２２−２はこのときの第２のオブジェクトの代表点の位置であり、３２−２はこのときの第３のオブジェクトの代表点の位置である。
【０１４６】
１２−３は第１のオブジェクトの端点（ｘi、ｙj）が１２−３の場合の第２のオブジェクトの様子を表しており、２２−３はこのときの第２のオブジェクトの代表点の位置であり、３２−３はこのときの第３のオブジェクトの代表点の位置である。
【０１４７】
１２−４は第１のオブジェクトの端点（ｘi、ｙj）が１２−４の場合の第２のオブジェクトの様子を表しており、２２−４はこのときの第２のオブジェクトの代表点の位置である、３２−４はこのときの第３のオブジェクトの代表点の位置である。
【０１４８】
第３のオブジェクトは、例えば第１のオブジェクトの端点（ｘi、ｙj）の高さが平均点にある場合（１２−１）基準位置に配置され（３２−１参照）、その後第１のオブジェクトの端点（ｘi、ｙj）の高さが徐徐に高くなるにしたがって、第１のオブジェクトから離れる方向（５０参照）に移動し、第１のオブジェクトの端点（ｘi、ｙj）の高さが最高点に達した場合（１２−２）に第１のオブジェクトから最も離れた所に配置され（３０−２参照）、その後第１のオブジェクトの端点（ｘi、ｙj）の高さが徐徐に低くなるに従って第１のオブジェクトに近づく方向（５２、５４参照）に移動し、第１のオブジェクトの端点（ｘi、ｙj）の高さが最低点に達した場合（１２−４）に第１のオブジェクトに最も近い所に配置されるようにしてもよい（３０−４参照）。
【０１４９】
第３のオブジェクトの位置は、第１のオブジェクトの構成点の高さの周期に同期して、３２−１〜３２−４の間を行ったり来たり移動する。
【０１５０】
また第３のオブジェクトの位置は、第１のオブジェクトの構成点の高さの周期に所定時間遅延して同期させて、３２−１〜３２−４の間を行ったり来たり移動させるようにしてもよい。
【０１５１】
また第３のオブジェクトの位置は、第２のオブジェクトの位置の移動周期に同期して、３２−１〜３２−４の間を行ったり来たり移動させるようにしてもよい。
【０１５２】
また第３のオブジェクトの位置は、第２のオブジェクトの位置の移動周期に所定時間遅延して同期させて、３２−１〜３２−４の間を行ったり来たり移動させるようにしてもよい。
【０１５３】
なお第１のオブジェクトの端点の高さと第３のオブジェクトの位置関係は、端点の高さが高いときが第３のオブジェクトが離れている場合に限られない。
【０１５４】
第１のオブジェクトの幅が波の波長の整数倍の場合と、それ足す0.5（例えば1.5倍）の場合等、第１のオブジェクトの幅と波の波長に応じて適宜設定することができる。例えば端点の高さが低いときが第３のオブジェクトが離れている場合でもよい。
【０１５５】
このように本実施の形態では、第１のオブジェクトの高さ変化の周期または第２のオブジェクトの移動周期に同期させて、またはこれらのいずれかに所定時間遅延して同期させて、各フレームにおける波のある液体面の第２の領域の地形に対応した第３のオブジェクトの位置を決定するようにしてもよい。
【０１５６】
第３のオブジェクトとして砂浜のぬれた様子を表すテクスチャを張ったオブジェクト（例えば板状のオブジェクトでもよい）を用意することで、第２のオブジェクトと同期して、又は少し遅延して同期して、白波がひくのにあわせて、又は少し遅れてぬれた砂がうごく様子の画像を生成することができる。
【０１５７】
図１２（Ａ）〜（Ｃ）は、第３のオブジェクトを使用した画像の一例を表した図である。
【０１５８】
図１２（Ａ）は、波打ち際に波が寄せてきた時の画像の一例である。同図に示すように波が寄せてきた時には、白波が砂浜のほうに長く伸びてくる画像が生成される。
【０１５９】
図１２（Ｂ）は、波打ち際から波が引いていく時の画像の一例である。同図に示すように波が引いていく時には、白波５２０の長さが短くなって沖のほうに遠ざかっていくとともに、白波５２０の引いたあとに、白波５２０によってぬれた砂５３０の画像が生成される。これは例えば第３のオブジェクトとして、砂浜のぬれた様子を表すテクスチャをマッピングしたオブジェクト（例えば板状のオブジェクトでもよい）を用意することで実現することができる。
【０１６０】
図１２（Ｃ）は、白波５２０の引いたあとに、白波５２０によってぬれた砂５３０が乾いていくの画像が生成される（５４０参照）。
【０１６１】
ここで例えば砂浜のぬれた様子を表すテクスチャをマッピングした第３のオブジェクトの透明度（α値）を、第１のオブジェクトの高さ変化の周期または第２のオブジェクトの移動周期に同期させて、またはこれらのいずれかに所定時間遅延して同期させて第３のテクスチャの透明度を周期的に変化させることで実現することができる。
【０１６２】
例えばα値に基づき加算半透明で描画する場合には、α値を１に近づけることで透明度が低くなり、色が濃くなるので砂がぬれている様子を表すことができる。逆にα値を０に近づけることで透明度が高くなり、色が薄くなるので砂が乾いている様子を表すことができる。
【０１６３】
従って第３のテクスチャの透明度を第１のオブジェクトの高さ変化の周期または第２のオブジェクトの移動周期に同期させて周期的に変化させることで、白波の寄せたり引いたりするのに合わせて、又はそれにすこし遅れて白波の引いた後の砂がぬれて時間がたつにつれて乾いていくの様子が繰り替えされるのを表現することができる。
【０１６４】
図１３は、オブジェクトの構成点の高さの調整について説明するための図である。
【０１６５】
本実施の形態では第１のオブジェクトの構成点に高さ調整パラメータまたは深度情報が関連づけて設定されている。例えば各構成点毎に高さ調整パラメータまたは深度情報が設定されている場合でもよいし、第１のオブジェクトを複数の領域に分割し、領域単位に高さ調整パラメータまたは深度情報を設定してもよい。そして各構成点がどの領域に属するかによって高さ調整パラメータまたは深度情報を決定してもよい。
【０１６６】
高さ調整パラメータまたは深度情報に基づき、各構成点の高さを演算する際に使用する周期関数の振幅パラメータを変更するようにしてもよいし、周期関数は同じものを利用して周期関数で得られた高さの値に対して高さ調整パラメータまたは深度情報に基づき補正をかけるようにしてもよい。
【０１６７】
高さ調整パラメータまたは深度情報に基づき各構成点の高さの調整を行う際には、海底からの距離が遠い場合（深度が大きい）は海底からの距離が近い場合（深度が小さい）に比べて高さの変化が小さくなるように各フレームにおける各構成点の高さを演算するようにしてもよい。
【０１６８】
例えばＰ１は沖合に位置する構成点であり、高さ調整パラメータまたは深度情報として当該地点の海底までの距離Ｌ１が設定されているとする。またＰ２は波打ち際に近い所に位置する構成点であり、高さ調整パラメータまたは深度情報として当該地点の海底までの距離Ｌ２が設定されているとする。この場合波打ち際は沖に比べて海底までの距離が短いので（Ｌ１＞Ｌ２なので）、Ｐ１のほうがＰ２に比べて高さの変化が小さくなる。
【０１６９】
図１４は、オブジェクトの構成点の高さの演算の省略について説明するための図である。
【０１７０】
海は広いため仮想カメラ６１０から所定の距離ｒ以上離れた所では、通常の高さの波の遠方の点のy座標の違いは、透視変換した時に２D画面座標としてはほとんど変わらず誤差として許容できる範囲である。
【０１７１】
従って仮想カメラと所定の位置関係（ここでは仮想カメラから半径ｒの範囲内）を有するエリアを演算領域６２０として設定し、第１のオブジェクトの各構成点が演算領域に属するか否か判断し、属さないと判断した場合には、各構成点の高さを求める処理を省略するようにしてもよい。
【０１７２】
従って演算領域６２０に属する海面の部分６３０の構成点については高さが演算されるが、演算領域６２０に属しない海面の部分６４０の構成点については高さの演算が省略される。
【０１７３】
ここでは演算領域を仮想カメラからの距離に応じて設定したが、例えばビューボリューム又はビューボリュームのＸＺ平面への投影領域に基づき演算領域を設定するようにしてもよい。このようにすると仮想カメラからの距離が近くても描画範囲内にない部分の構成点については高さの演算を省略することができる。
【０１７４】
また第１のオブジェクトと第２のオブジェクトを用いて海の画像を生成する場合に限られず、例えば第１のオブジェクトのみで海の画像を生成する場合でもよい。
【０１７５】
本実施の形態によれば、遠方の部分については高さの演算を省略するので演算負荷を軽減することができる。
【０１７６】
３．本実施の形態の処理
本実施の形態では、各フレーム毎に以下の処理を行っている。
【０１７７】
図１５は、本実施の形態の海面の画像生成処理の流れについて説明するためのフローチャート図である。
【０１７８】
次に形状が変化する物体の第１の領域に対応した第１のオブジェクトについて、当該第１のオブジェクトの構成点の高さを周期的に変化させるための処理を行う（ステップＳ１０）。
【０１７９】
第１のオブジェクトの端の構成点については、図８で説明したように高さを基準点に補正するようにしてもよい。
【０１８０】
次に当該フレームの第１のオブジェクトの所定のエリアの形状に基づいて、当該フレームの第２のオブジェクトの形状を決定する（ステップＳ２０）。
【０１８１】
次に第１のオブジェクトの高さ変化の周期に同期させて、形状が変化する物体の第２の領域に対応した第２のオブジェクトの前記第１のオブジェクトに対する位置を周期的に変化させるための処理を行う（ステップＳ３０）
次に第１のオブジェクトの構成点の高さ変化の周期に同期させて、第２のオブジェクトの透明度を周期的に変化させるための処理を行う（ステップＳ４０）。
【０１８２】
次に第１のオブジェクトの構成点の高さ変化の周期または第２のオブジェクトの移動周期に同期させて、またはこれらのいずれかに所定時間遅延させて同期させて、第３のオブジェクトの前記第１のオブジェクトに対する位置を周期的に変化させるための処理を行う（ステップＳ５０）。
【０１８３】
次に第１のオブジェクトの高さ変化の周期または第２のオブジェクトの移動周期に同期させて、またはこれらのいずれかに所定時間遅延させて同期させて、第３のオブジェクトの透明度を周期的に変化させるための処理を行う（ステップＳ６０）。
【０１８４】
そして第１のオブジェクト、第２のオブジェクト、第３のオブジェクトが設定されたオブジェクト空間を仮想カメラから見た画像を生成する（ステップＳ７０）。
【０１８５】
４．ハードウェア構成
図１６に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１８６】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【０１８７】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【０１８８】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【０１８９】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【０１９０】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１９１】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１９２】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１９３】
例えば、明細書又は図面中の記載において広義や同義な用語（テクセル値、テクセル値パターン、プリミティブ面等）として引用された用語（α値・輝度、グラディエーションパターン、ポリゴン等）は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０１９４】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１９５】
またテクスチャのマッピング処理も、本実施形態で説明したものに限定されず、これらと均等な変換処理も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯端末等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１９６】
【図１】本実施形態の画像生成システムの機能ブロック図。
【図２】本実施の形態の海面の画像の一例である。１０は沖合の海面（第１の領
【図３】図３（Ａ）は、波打ち際に波が寄せてきた時の画像の一例であり、図３（Ｂ）は、波打ち際から波が引いていく時の画像の一例である。
【図４】本実施の形態の第１のオブジェクトについて説明するための図である。
【図５】構成点と周期関数によって生成される第１のオブジェクトの様子を示した図である。
【図６】は第１のオブジェクトと第２のオブジェクトの関係を模式的に示した図である。
【図７】図７は第１のオブジェクトの構成点の高さの変化の周期と、第２のオブジェクトの移動の周期について説明するための図である。
【図８】第１のオブジェクトの端点の高さの調整について説明するための図である。
【図９】本実施の形態の第２のオブジェクトの形状の決定手法について説明するための図である。
【図１０】図１０（Ａ）（Ｂ）は、本実施の形態の第１のテクスチャ及び第２のテクスチャの一例である。
【図１１】第１のオブジェクトの構成点の高さの変化の周期または第２のオブジェクトの移動の周期と第３のオブジェクトの移動の周期との関係について説明するための図である。
【図１２】図１２（Ａ）〜（Ｃ）は、第３のオブジェクトを使用した画像の一例を表した図である。
【図１３】オブジェクトの構成点の高さの調整について説明するための図である。
【図１４】オブジェクトの構成点の高さの演算の省略について説明するための図である。
【図１５】本実施の形態の海面の画像生成処理の流れについて説明するためのフローチャート図である。
【図１６】ハードウェア構成例である。
【符号の説明】
【０１９７】
１００  処理部、１１０  オブジェクト空間設定部、１１２  移動・動作処理部、１１４  仮想カメラ制御部、１１６  第１のオブジェクト設定処理部、１１７  第２のオブジェクト設定処理部、１１８  第３のオブジェクト設定処理部、１２０  描画部、１２２  隠面消去部、１２４  テクスチャマッピング部、１２６  α合成部、１３０  音生成部、１６０  操作部、１７０  記憶部、１７２  描画バッファ、１７４  Ｚバッファ、１７６  テクスチャ記憶部、１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、１９４  携帯型情報記憶装置、１９６  通信部
【図１】
0004717624.tif 000002
【図２】
0004717624.tif 000003
【図３】
0004717624.tif 000004
【図４】
0004717624.tif 000005
【図５】
0004717624.tif 000006
【図６】
0004717624.tif 000007
【図７】
0004717624.tif 000008
【図８】
0004717624.tif 000009
【図９】
0004717624.tif 000010
【図１０】
0004717624.tif 000011
【図１１】
0004717624.tif 000012
【図１２】
0004717624.tif 000013
【図１３】
0004717624.tif 000014
【図１４】
0004717624.tif 000015
【図１５】
0004717624.tif 000016
【図１６】
0004717624.tif 000017