(57)【要約】【課題】第１のオブジェクトの変色処理用パラメータを第２のオブジェクトに反映させることができるプログラム、情報記憶媒体、画像生成システム等の提供。【解決手段】画像生成システムは、第１のオブジェクトが第２のオブジェクトに接触する接触イベントの発生を判定するイベント判定部と、第１のオブジェクトと第２のオブジェクトの接触イベントが発生した場合に、第１のオブジェクトに対して設定された変色処理用パラメータを取得し、取得された変色処理用パラメータに応じた変色処理を、第１のオブジェクトの接触位置に対応する第２のオブジェクト上の領域に対して行う変色処理部と、第１、第２のオブジェクトを含む複数のオブジェクトが配置設定されるオブジェクト空間において、仮想カメラから見える画像を生成する画像生成部を含む。【選択図】図４
2012234441.tif 000002
【特許請求の範囲】
【請求項１】
第１のオブジェクトが第２のオブジェクトに接触する接触イベントの発生を判定するイベント判定部と、
前記第１のオブジェクトと前記第２のオブジェクトの前記接触イベントが発生した場合に、前記第１のオブジェクトに対して設定された変色処理用パラメータを取得し、取得された前記変色処理用パラメータに応じた変色処理を、前記第１のオブジェクトの接触位置に対応する前記第２のオブジェクト上の領域に対して行う変色処理部と、
前記第１、第２のオブジェクトを含む複数のオブジェクトが配置設定されるオブジェクト空間において、仮想カメラから見える画像を生成する画像生成部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記変色処理部は、
前記変色処理が行われる前記第２のオブジェクト上の変色領域の大きさを、前記接触位置から時間経過に伴い拡大する処理を行うことを特徴とするプログラム。
【請求項３】
請求項２において、
前記変色処理用パラメータは、前記第１のオブジェクトの変色処理用のパラメータであり、
前記変色処理部は、
前記接触イベントが発生している期間において、前記変色処理が行われる前記第２のオブジェクト上の前記変色領域の大きさを、時間経過に伴い拡大する処理を行うと共に、前記変色処理用パラメータにより設定される前記第１のオブジェクトの変色の色を、時間経過に伴い減衰させる処理を行うこと特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記変色処理部は、
前記接触イベントが発生した場合に、前記第１のオブジェクトを構成する複数の頂点のうち、前記第２のオブジェクトと接触したと判定された頂点に対して設定された前記変色処理用パラメータに応じた変色処理を、前記接触位置に対応する前記第２のオブジェクト上の領域に対して行うことを特徴とするプログラム。
【請求項５】
請求項４において、
前記イベント判定部は、
前記第１のオブジェクトを構成する複数の頂点の代表点と前記第２のオブジェクトとの位置関係に基づいて、前記第１のオブジェクトと前記第２のオブジェクトの前記接触イベントが発生したか否かを判定することを特徴とするプログラム。
【請求項６】
請求項４又は５において、
前記変色処理部は、
前記第１のオブジェクトを構成する複数の頂点の代表点の位置情報に基づいて、前記第２のオブジェクト上の変色領域を特定し、特定された前記変色領域に対して前記変色処理を行うことを特徴とするプログラム。
【請求項７】
請求項５又は６において、
前記第１のオブジェクトの前記複数の頂点の前記代表点は、前記第１のオブジェクトのモーション処理用のスケルトンの関節であることを特徴とするプログラム。
【請求項８】
請求項４乃至７のいずれかにおいて、
前記変色処理部は、
前記接触イベントが発生している期間において、前記第２のオブジェクトと接触したと判定された頂点の前記変色処理用パラメータの値を、時間経過に伴い減衰させる処理を行うこと特徴とするプログラム。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記第１のオブジェクトの前記接触位置に対応する前記第２のオブジェクト上の領域に対して、前記変色処理とは異なるエフェクト処理を行うエフェクト処理部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項１０】
請求項９において、
前記変色処理部は、
前記変色処理が行われる前記第２のオブジェクト上の変色領域の大きさを、前記接触位置から時間経過に伴い拡大する処理を行い、
前記エフェクト処理部は、
前記エフェクト処理が行われる前記第２のオブジェクト上のエフェクト領域の大きさを、前記接触位置から時間経過に伴い拡大する処理を行うことを特徴とするプログラム。
【請求項１１】
請求項９又は１０において、
前記第２のオブジェクトは、液体を表すオブジェクトであり、
前記エフェクト処理部は、
前記エフェクト処理として、前記液体の波紋のエフェクト処理を行うことを特徴とするプログラム。
【請求項１２】
請求項１１において、
前記エフェクト処理部は、
前記波紋のエフェクト処理として、前記液体の屈折率の変化を表すエフェクト処理を行うことを特徴とするプログラム。
【請求項１３】
請求項９乃至１２のいずれかにおいて、
エフェクト処理用テクスチャを記憶するテクスチャ記憶部として、
コンピュータを機能させ、
前記エフェクト処理部は、
前記エフェクト処理用テクスチャの所定チャンネル成分に対して設定されるエフェクト処理用パラメータを用いて、前記第２のオブジェクトの前記エフェクト処理を行い、
前記変色処理部は、
前記エフェクト処理用テクスチャの前記所定チャンネル成分とは異なる他のチャンネル成分に対して設定される変色処理用パラメータを用いて、前記第２のオブジェクトの前記変色処理を行うことを特徴とするプログラム。
【請求項１４】
請求項１３おいて、
前記エフェクト処理部は、
前記エフェクト処理用テクスチャの前記所定チャンネル成分に対して設定されるエフェクト処理用法線情報パラメータを用いて、前記第２のオブジェクトの前記エフェクト処理を行うことを特徴とするプログラム。
【請求項１５】
請求項９乃至１２のいずれかにおいて、
エフェクト処理用テクスチャと変色処理用テクスチャを記憶するテクスチャ記憶部として、
コンピュータを機能させ、
前記エフェクト処理部は、
前記エフェクト処理用テクスチャのチャンネル成分に対して設定されるエフェクト処理用パラメータを用いて、前記第２のオブジェクトの前記エフェクト処理を行い、
前記変色処理部は、
前記変色処理用テクスチャのチャネル成分に対して設定される変色処理用パラメータを用いて、前記第２のオブジェクトの前記変色処理を行うことを特徴とするプログラム。
【請求項１６】
請求項１乃至１５のいずれかにおいて、
前記第１のオブジェクトは、ゲームに登場するキャラクタを表すオブジェクトであり、前記第２のオブジェクトは、液体を表すオブジェクトであり、
前記変色処理部は、
前記キャラクタの前記変色処理用パラメータに基づいて、前記キャラクタの表面を変色させる処理を行うと共に、
前記キャラクタが前記液体に浸かる前記接触イベントが発生した場合に、前記キャラクタの各部分のうち、前記液体に浸かった部分の前記変色処理用パラメータに基づいて、前記液体を変色させる処理を行うことを特徴とするプログラム。
【請求項１７】
請求項１６において、
前記変色処理部は、
前記キャラクタの各部分のうち、前記液体に浸かった部分については、前記変色処理用パラメータによる変色の色を、減衰させる処理を行うことを特徴とするプログラム。
【請求項１８】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至１７のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１９】
第１のオブジェクトが第２のオブジェクトに接触する接触イベントの発生を判定するイベント判定部と、
前記第１のオブジェクトと前記第２のオブジェクトの前記接触イベントが発生した場合に、前記第１のオブジェクトに対して設定された変色処理用パラメータを取得し、取得された前記変色処理用パラメータに応じた変色処理を、前記第１のオブジェクトの接触位置に対応する前記第２のオブジェクト上の領域に対して行う変色処理部と、
前記第１、第２のオブジェクトを含む複数のオブジェクトが配置設定されるオブジェクト空間において、仮想カメラから見える画像を生成する画像生成部と、
を含むことを特徴とする画像生成システム。
【請求項２０】
第１のオブジェクトが第２のオブジェクトに接触する接触イベントの発生を判定するイベント判定部と、
前記第１のオブジェクトと前記第２のオブジェクトの前記接触イベントが発生した場合に、前記第１のオブジェクトに対して設定された変色処理用パラメータを取得し、取得された前記変色処理用パラメータに応じた変色処理を、前記第１のオブジェクトの接触位置に対応する前記第２のオブジェクト上の領域に対して行う変色処理部と、
前記第１、第２のオブジェクトを含む複数のオブジェクトが配置設定されるオブジェクト空間において、仮想カメラから見える画像を生成するための画像生成用データを生成する画像生成用データ生成部と、
を含むことを特徴とするサーバシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、画像生成システム及びサーバシステム等に関する。
【背景技術】
【０００２】
従来より、キャラクタ等のモデルオブジェクトが配置設定されるオブジェクト空間内（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。格闘ゲームを楽しむことができる画像生成システムを例にとれば、プレーヤは、操作部（ゲームコントローラ）を用いてキャラクタ（モデルオブジェクト）を操作し、相手プレーヤやコンピュータが操作する他キャラクタ（敵キャラクタ）と対戦することでゲームを楽しむ。
【０００３】
このような画像生成システムでは、例えばモデルオブジェクトの表面の汚れについてもリアルに表現できることが望ましい。例えばモデルオブジェクトであるキャラクタの衣服や体の汚れについてもリアルに表現できれば、プレーヤの仮想現実感をより一層向上できる。このような汚れ処理を実現する従来技術としては、例えば特許文献１に開示される技術がある。
【０００４】
しかしながら、従来の汚れ処理では、キャラクタの衣服や体の汚れについては、ある程度リアルに表現できるが、キャラクタの衣服や体の汚れが他のオブジェクトに付着したり、キャラクタの汚れが水で流れ落ちるなどの画像表現を実現することはできなかった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−１６７２９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の幾つかの態様によれば、第１のオブジェクトの変色処理用パラメータを第２のオブジェクトに反映させることができるプログラム、情報記憶媒体、画像生成システム及びサーバシステム等を提供できる。
【課題を解決するための手段】
【０００７】
本発明の一態様は、第１のオブジェクトが第２のオブジェクトに接触する接触イベントの発生を判定するイベント判定部と、前記第１のオブジェクトと前記第２のオブジェクトの前記接触イベントが発生した場合に、前記第１のオブジェクトに対して設定された変色処理用パラメータを取得し、取得された前記変色処理用パラメータに応じた変色処理を、前記第１のオブジェクトの接触位置に対応する前記第２のオブジェクト上の領域に対して行う変色処理部と、前記第１、第２のオブジェクトを含む複数のオブジェクトが配置設定されるオブジェクト空間において、仮想カメラから見える画像を生成する画像生成部とを含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【０００８】
本発明の一態様によれば、第１、第２のオブジェクトの接触イベントが発生すると、第１のオブジェクトに対して設定された変色処理用パラメータが取得される。そして取得された変色処理用パラメータに応じた変色処理が、接触位置に対応する第２のオブジェクト上の領域に対して行われて、オブジェクト空間において、仮想カメラから見える画像が生成される。このようにすれば、第１のオブジェクトの変色処理用パラメータを第２のオブジェクトに反映させて、第２のオブジェクト上の領域を変色させる処理等を実現できるようになり、よりリアルで仮想現実感の高い画像の生成が可能になる。
【０００９】
また本発明の一態様では、前記変色処理部は、前記変色処理が行われる前記第２のオブジェクト上の変色領域の大きさを、前記接触位置から時間経過に伴い拡大する処理を行ってもよい。
【００１０】
このようにすれば、接触イベントの発生後に変色領域が徐々に拡大して行くような画像が生成されるため、更にリアルな第２のオブジェクトの変色画像を生成できる。
【００１１】
また本発明の一態様では、前記変色処理用パラメータは、前記第１のオブジェクトの変色処理用のパラメータであり、前記変色処理部は、前記接触イベントが発生している期間において、前記変色処理が行われる前記第２のオブジェクト上の前記変色領域の大きさを、時間経過に伴い拡大する処理を行うと共に、前記変色処理用パラメータにより設定される前記第１のオブジェクトの変色の色を、時間経過に伴い減衰させる処理を行ってもよい。
【００１２】
このようにすれば、第１のオブジェクトの変色処理に使用する変色処理用パラメータを有効活用して、第２のオブジェクトの変色処理を実現できる。そして、第２のオブジェクトが変色する一方で、第１のオブジェクトについては変色の色が徐々に減衰するような画像表現を実現できるようになる。
【００１３】
また本発明の一態様では、前記変色処理部は、前記接触イベントが発生した場合に、前記第１のオブジェクトを構成する複数の頂点のうち、前記第２のオブジェクトと接触したと判定された頂点に対して設定された前記変色処理用パラメータに応じた変色処理を、前記接触位置に対応する前記第２のオブジェクト上の領域に対して行ってもよい。
【００１４】
このようにすれば、第１のオブジェクトを構成する頂点に対して設定された変色処理用パラメータに応じた変色処理を、第２のオブジェクト上の領域に対して行うことが可能になる。
【００１５】
また本発明の一態様では、前記イベント判定部は、前記第１のオブジェクトを構成する複数の頂点の代表点と前記第２のオブジェクトとの位置関係に基づいて、前記第１のオブジェクトと前記第２のオブジェクトの前記接触イベントが発生したか否かを判定してもよい。
【００１６】
このように頂点の代表点を用いて接触イベントの発生を判定することで、処理負荷の軽減等を図れるようになる。
【００１７】
また本発明の一態様では、前記変色処理部は、前記第１のオブジェクトを構成する複数の頂点の代表点の位置情報に基づいて、前記第２のオブジェクト上の変色領域を特定し、特定された前記変色領域に対して前記変色処理を行ってもよい。
【００１８】
このようにすれば、頂点の位置情報を用いて第２のオブジェクト上の変色領域を特定する場合に比べて、少ない処理負荷で変色領域を特定できるようになる。
【００１９】
また本発明の一態様では、前記第１のオブジェクトの前記複数の頂点の前記代表点は、前記第１のオブジェクトのモーション処理用のスケルトンの関節であってもよい。
【００２０】
このようにすれば、第１のオブジェクトのモーション処理用のスケルトンを有効活用して、接触イベントの判定処理や変色領域の特定処理等を実現できるようになる。
【００２１】
また本発明の一態様では、前記変色処理部は、前記接触イベントが発生している期間において、前記第２のオブジェクトと接触したと判定された頂点の前記変色処理用パラメータの値を、時間経過に伴い減衰させる処理を行ってもよい。
【００２２】
このようにすれば、接触イベントが発生している期間において、第１のオブジェクトの頂点の変色処理用パラメータの値を減衰させて、変色の色が減衰して行くような画像表現を実現できるようになる。
【００２３】
また本発明の一態様では、前記第１のオブジェクトの前記接触位置に対応する前記第２のオブジェクト上の領域に対して、前記変色処理とは異なるエフェクト処理を行うエフェクト処理部を含んでもよい（エフェクト処理部としてコンピュータを機能させてもよい）。
【００２４】
このようにすれば、第２のオブジェクトの変色処理と連動させて、この変色処理とは異なるエフェクト処理を第２のオブジェクトに対して行うことが可能になる。
【００２５】
また本発明の一態様では、前記変色処理部は、前記変色処理が行われる前記第２のオブジェクト上の変色領域の大きさを、前記接触位置から時間経過に伴い拡大する処理を行い、前記エフェクト処理部は、前記エフェクト処理が行われる前記第２のオブジェクト上のエフェクト領域の大きさを、前記接触位置から時間経過に伴い拡大する処理を行ってもよい。
【００２６】
このようにすれば、第２のオブジェクトの変色処理が行われる変色領域が徐々に拡大すると共に、第２のオブジェクトのエフェクト処理が行われるエフェクト領域も徐々に拡大するような画像を生成できるようになる。
【００２７】
また本発明の一態様では、前記第２のオブジェクトは、液体を表すオブジェクトであり、前記エフェクト処理部は、前記エフェクト処理として、前記液体の波紋のエフェクト処理を行ってもよい。
【００２８】
このようにすれば、第２のオブジェクトが液体である場合に、第１のオブジェクトが液体に接触することによる液体の変色処理と液体に発生する波紋のエフェクト処理とを連動して行うことが可能になる。
【００２９】
また本発明の一態様では、前記エフェクト処理部は、前記波紋のエフェクト処理として、前記液体の屈折率の変化を表すエフェクト処理を行ってもよい。
【００３０】
このようにすれば、液体の屈折率の変化を表すエフェクト処理を行うことで、液体の波紋を表す画像を生成できるようになる。
【００３１】
また本発明の一態様では、エフェクト処理用テクスチャを記憶するテクスチャ記憶部を含み（テクスチャ記憶部としてコンピュータを機能させ）、前記エフェクト処理部は、前記エフェクト処理用テクスチャの所定チャンネル成分に対して設定されるエフェクト処理用パラメータを用いて、前記第２のオブジェクトの前記エフェクト処理を行い、前記変色処理部は、前記エフェクト処理用テクスチャの前記所定チャンネル成分とは異なる他のチャンネル成分に対して設定される変色処理用パラメータを用いて、前記第２のオブジェクトの前記変色処理を行ってもよい。
【００３２】
このようにすれば、エフェクト処理用テクスチャを有効活用して、第２のオブジェクトのエフェクト処理のみならず、第２のオブジェクトの変色処理も実現できるようになり、テクスチャの使用記憶容量の節約等を図れるようになる。
【００３３】
また本発明の一態様では、前記エフェクト処理部は、前記エフェクト処理用テクスチャの前記所定チャンネル成分に対して設定されるエフェクト処理用法線情報パラメータを用いて、前記第２のオブジェクトの前記エフェクト処理を行ってもよい。
【００３４】
このようにすれば、エフェクト処理用テクスチャに設定されたエフェクト処理用法線情報パラメータを用いて、第２のオブジェクトのエフェクト処理を実現できるようになる。
【００３５】
また本発明の一態様では、エフェクト処理用テクスチャと変色処理用テクスチャを記憶するテクスチャ記憶部を含み（テクスチャ記憶部としてコンピュータを機能させ）、前記エフェクト処理部は、前記エフェクト処理用テクスチャのチャンネル成分に対して設定されるエフェクト処理用パラメータを用いて、前記第２のオブジェクトの前記エフェクト処理を行い、前記変色処理部は、前記変色処理用テクスチャのチャネル成分に対して設定される変色処理用パラメータを用いて、前記第２のオブジェクトの前記変色処理を行ってもよい。
【００３６】
このようにすれば、エフェクト処理用テクスチャとは別個に用意された変色処理用テクスチャを用いて、第２のオブジェクトの変色処理を実現できるようになるため、より多彩で高精細な画像の生成が可能になる。
【００３７】
また本発明の一態様では、前記第１のオブジェクトは、ゲームに登場するキャラクタを表すオブジェクトであり、前記第２のオブジェクトは、液体を表すオブジェクトであり、前記変色処理部は、前記キャラクタの前記変色処理用パラメータに基づいて、前記キャラクタの表面を変色させる処理を行うと共に、前記キャラクタが前記液体に浸かる前記接触イベントが発生した場合に、前記キャラクタの各部分のうち、前記液体に浸かった部分の前記変色処理用パラメータに基づいて、前記液体を変色させる処理を行ってもよい。
【００３８】
このようにすれば、キャラクタが液体に浸かることで、液体が変色するような画像が生成されるようになり、従来にない画像表現が可能になる。
【００３９】
また本発明の一態様では、前記変色処理部は、前記キャラクタの各部分のうち、前記液体に浸かった部分については、前記変色処理用パラメータによる変色の色を、減衰させる処理を行ってもよい。
【００４０】
このようにすれば、キャラクタが液体に浸かることで液体が変色すると共に、キャラクタの変色の色についても減衰するような表現の画像を生成できるようになる。
【００４１】
また本発明の他の態様は、第１のオブジェクトが第２のオブジェクトに接触する接触イベントの発生を判定するイベント判定部と、前記第１のオブジェクトと前記第２のオブジェクトの前記接触イベントが発生した場合に、前記第１のオブジェクトに対して設定された変色処理用パラメータを取得し、取得された前記変色処理用パラメータに応じた変色処理を、前記第１のオブジェクトの接触位置に対応する前記第２のオブジェクト上の領域に対して行う変色処理部と、前記第１、第２のオブジェクトを含む複数のオブジェクトが配置設定されるオブジェクト空間において、仮想カメラから見える画像を生成するための画像生成用データを生成する画像生成用データ生成部とを含むサーバシステムに関係する。
【図面の簡単な説明】
【００４２】
【図１】本実施形態の画像生成システムの構成例。
【図２】本実施形態のサーバシステムの構成例。
【図３】図３（Ａ）、図３（Ｂ）は本実施形態の変色処理手法の説明図。
【図４】図４（Ａ）〜図４（Ｃ）も本実施形態の変色処理手法の説明図。
【図５】図５（Ａ）、図５（Ｂ）は本実施形態により生成されたゲーム画像の例。
【図６】図６（Ａ）、図６（Ｂ）も本実施形態により生成されたゲーム画像の例。
【図７】図７（Ａ）、図７（Ｂ）も本実施形態により生成されたゲーム画像の例。
【図８】本実施形態により生成されたゲーム画像の例。
【図９】図９（Ａ）、図９（Ｂ）は頂点データ等の説明図。
【図１０】図１０（Ａ）、図１０（Ｂ）は頂点の代表点として関節を用いる手法の説明図。
【図１１】図１１（Ａ）、図１１（Ｂ）は頂点の汚れ色の減衰処理等の説明図。
【図１２】キャラクタのモーションデータ（スケルトン情報）の説明図。
【図１３】図１３（Ａ）、図１３（Ｂ）は波紋処理用テクスチャや汚れ処理用テクスチャを用いる手法の説明図。
【図１４】波紋領域や汚れ領域を時間経過に伴い拡大する手法の説明図。
【図１５】図１５（Ａ）、図１５（Ｂ）は法線情報パラメータの説明図。
【図１６】図１６（Ａ）〜図１６（Ｃ）は法線情報パラメータを用いた水面の屈折画像や反射画像の生成手法の説明図。
【図１７】本実施形態により生成された水面画像の例。
【図１８】本実施形態の処理を説明するフローチャート。
【図１９】本実施形態の処理を説明するフローチャート。
【図２０】本実施形態の処理を説明するフローチャート。
【発明を実施するための形態】
【００４３】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００４４】
１．構成
図１に本実施形態の画像生成システム（ゲーム装置）のブロック図の例を示す。なお、本実施形態の画像生成システムの構成は図１に限定されず、その構成要素（各部）の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００４５】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、方向指示キー、操作ボタン、アナログスティック、レバー、各種センサ（角速度センサ、加速度センサ等）、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
【００４６】
また操作部１６０は、例えばカラー画像センサやデプスセンサなどにより実現される画像センサを含む。なお操作部１６０の機能を画像センサだけで実現してもよい。
【００４７】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＤＲＡＭ、ＶＲＡＭ）などにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部１７０に保持される。
【００４８】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、ＨＤＤ（ハードディスクドライブ）、或いはメモリ（ＲＯＭ等）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータ（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００４９】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＬＣＤ、有機ＥＬディスプレイ、ＣＲＴ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００５０】
補助記憶装置１９４（補助メモリ、２次メモリ）は、記憶部１７０の容量を補うために使用される記憶装置であり、ＳＤメモリーカード、マルチメディアカードなどのメモリーカードなどにより実現できる。
【００５１】
通信部１９６は、有線や無線のネットワークを介して外部（例えば他の画像生成システム、サーバ、ホスト装置）との間で通信を行うものであり、その機能は、通信用ＡＳＩＣ又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【００５２】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、サーバ（ホスト装置）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０、補助記憶装置１９４）に配信してもよい。このようなサーバ（ホスト装置）による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００５３】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部１００は記憶部１７０をワーク領域として各種処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＧＰＵ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００５４】
処理部１００は、ゲーム演算部１０２、オブジェクト空間設定部１０４、移動体演算部１０６、仮想カメラ制御部１０８、イベント判定部１１０、変色処理部１１２、エフェクト処理部１１４、画像生成部１２０、音生成部１３０を含む。なおこれらの構成要素（各部）の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００５５】
ゲーム演算部１０２はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【００５６】
オブジェクト空間設定部１０４は、複数のオブジェクトが配置されるオブジェクト空間の設定処理を行う。例えば、キャラクタ（人、動物、ロボット、車、船舶、飛行機等）、マップ（地形）、建物、コース（道路）、樹木、壁、水面などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。具体的には、記憶部１７０のオブジェクトデータ記憶部１７２には、オブジェクト（パーツオブジェクト）の位置、回転角度、移動速度、移動方向等のデータであるオブジェクトデータがオブジェクト番号に対応づけて記憶される。オブジェクト空間設定部１０４は、例えば各フレーム毎にこのオブジェクトデータを更新する処理などを行う。
【００５７】
移動体演算部１０６は、キャラクタ、車等の移動体（移動体オブジェクト）を移動させるための制御処理を行う。また移動体を動作させるための制御処理を行う。即ち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、移動体（オブジェクト、モデルオブジェクト）をオブジェクト空間内で移動させたり、移動体を動作（モーション、アニメーション）させる制御処理を行う。具体的には、移動体の移動情報（位置、回転角度、速度、或いは加速度）や動作情報（パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００５８】
例えば移動体演算部１０６は、キャラクタ等のモデルオブジェクトにモーション（アニメーション）を行わせるモーション処理（モーション再生、モーション生成）を行う。このモーション処理は、モデルオブジェクトのモーションを、モーションデータ記憶部１７４に記憶されているモーションデータに基づいて再生することなどで実現できる。
【００５９】
仮想カメラ制御部１０８は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点、基準仮想カメラ）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。
【００６０】
例えば仮想カメラによりキャラクタを後方から撮影する場合には、キャラクタの位置又は方向の変化に仮想カメラが追従するように、仮想カメラの位置（視点位置）や方向（視線方向）を制御する。この場合には、移動体演算部１０６で得られたキャラクタの位置、方向又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は方向を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【００６１】
イベント判定部１１０は、ゲーム中の各種イベントの発生の判定処理を行う。変色処理部１１２は、オブジェクトの色を変色させるための処理を行う。エフェクト処理部１１４は、オブジェクトのエフェクト処理を行う。これらのイベント判定部１１０、変色処理部１２、エフェクト処理部１１４の処理の詳細については後述する。
【００６２】
画像生成部１２０は、処理部１００で行われる種々の処理（ゲーム処理、シミュレーション処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。具体的には、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数プリミティブ面）を、描画バッファ１７９（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ）に描画する。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。
【００６３】
なお、画像生成部１２０で行われる描画処理は、頂点シェーダ処理やピクセルシェーダ処理等により実現することができる。
【００６４】
例えば頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。
【００６５】
またピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャ記憶部１７６からのテクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７９に出力（描画）する。即ち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。
【００６６】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現できる。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００６７】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００６８】
そして本実施形態ではイベント判定部（ヒット判定部）１１０は、第１のオブジェクトが第２のオブジェクトに接触する接触イベント（ヒットイベント）の発生を判定する。例えば第１のオブジェクトが第２のオブジェクトに接触してヒットしたか否かを判定する。具体的にはイベント判定部１１０は、第１のオブジェクトを構成する複数の頂点の代表点と、第２のオブジェクトとの位置関係に基づいて、第１のオブジェクトと第２のオブジェクトの接触イベントが発生したか否かを判定する。例えば第１のオブジェクトの頂点の代表点が、第２のオブジェクトに内包された場合に、第１、第２のオブジェクトの接触イベントが発生したと判定する。
【００６９】
ここで第１のオブジェクトは例えばキャラクタなどのモデルオブジェクトである。そして、第２のオブジェクトは、この第１のオブジェクトの接触対象となるオブジェクトであり、例えば水（水面）等の液体（液体面）を表すオブジェクトや、床、壁（床面、壁面）等などの固体物（固体面）を表すオブジェクトである。或いは第２のオブジェクトが、キャラクタなどのモデルオブジェクトであってもよい。なお、第２のオブジェクトは、実際に表示されるオブジェクトであってもよいし、接触イベント判定のために用いられる非表示のオブジェクトであってもよい。また、接触イベントにおける接触は、例えば第１のオブジェクトの表面と第２のオブジェクトの表面の接触であってもよいし、第１のオブジェクトの一部が第２のオブジェクトに入り込むような接触であってもよい。
【００７０】
また、第１のオブジェクトの複数の頂点の代表点は、例えば第１のオブジェクトのモーション処理用のスケルトンの関節（関節点）である。即ち、モーションデータ記憶部１７４には、キャラクタなどの第１のオブジェクトのモーションデータが記憶されており、このモーションデータの再生処理を行うことで、第１のオブジェクトのモーション処理が行われる。そして、このモーション処理においては、第１のオブジェクトのスケルトンの情報が用いられ、スケルトンは、複数の骨（アーク）と、骨の間を接続する関節により構成され、この関節が頂点の代表点として用いられる。但し、代表点は、スケルトンの関節には限定されず、例えば複数の頂点のうちの１つをそれらの頂点の代表点として設定してもよい。
【００７１】
また変色処理部１１２は、第１のオブジェクトと第２のオブジェクトの接触イベントが発生した場合に、第１のオブジェクトに対して設定された変色処理用パラメータを取得（特定）する。そして、取得された変色処理用パラメータに応じた変色処理を、第１のオブジェクトの接触位置に対応する前記第２のオブジェクト上の領域（変色領域）に対して行う。具体的には変色処理部１１２は、接触イベントが発生した場合に、第１のオブジェクトを構成する複数の頂点のうち、第２のオブジェクトと接触したと判定された頂点に対して設定された変色処理用パラメータに応じた変色処理を、接触位置に対応する第２のオブジェクト上の領域（変色処理領域）に対して行う。また変色処理部１１２は、例えば第１のオブジェクトの頂点の代表点の位置情報に基づいて、第２のオブジェクト上の変色領域を特定し、特定された変色領域に対して変色処理を行う。例えば第１のオブジェクトの関節等の代表点が第２のオブジェクトと接触（内包）したか否かを判定し、接触（内包）したと判定された場合に、その代表点の位置情報（関節の位置情報）に基づいて、接触位置を特定して、変色領域を設定する。そして、設定された変色領域において第２のオブジェクトの色が変色する変色処理を行う。
【００７２】
ここで変色処理用パラメータは、変色処理を行うために使用されるパラメータであり、変色の色（狭義には汚れの色）を表す色パラメータ（例えばＲＧＢの色データ）であってもよいし、変色の度合い（狭義には汚れ度合い）を表す変色度合いパラメータ（汚れ度合いパラメータ）であってもよい。また、第２のオブジェクトの変色処理を行う場合には、第１のオブジェクトの部分のうち、接触位置に対応する部分に設定された変色処理用パラメータを取得する。具体的には、第２のオブジェクトと接触したと判定された頂点（接触位置に対応する部分の頂点）に設定された第１のオブジェクト用の変色処理用パラメータを取得する。そして、取得された第１のオブジェクト用の変色処理用パラメータを用いて、第２のオブジェクトの変色処理（狭義には汚れ処理）を行う。例えば接触位置に対応する第２のオブジェクト上の領域を変色領域に設定して、第２のオブジェクトの変色処理を行う。
【００７３】
そして画像生成部１２０は、第１、第２のオブジェクトを含む複数のオブジェクトが配置設定されるオブジェクト空間において、仮想カメラから見える画像を生成する。即ち、変色処理が施された第１、第２のオブジェクトが表示される画像（ゲーム画像）を生成する。
【００７４】
このようにすれば、第１のオブジェクトに設定された変色処理用パラメータを有効利用して、第１のオブジェクトに接触した第２のオブジェクトの変色処理を行うことが可能になる。従って、あたかも第１のオブジェクトの変色の色で、第２のオブジェクトが変色したかのように見える画像表現が可能になり、これまでにないリアルな画像を生成できるようになる。
【００７５】
また変色処理部１１２は、変色処理が行われる第２のオブジェクト上の変色領域の大きさを、時間経過に伴い拡大する処理を行う。例えば第１、第２のオブジェクトの接触位置から（接触位置を中心として）、変色領域が、時間経過に伴い徐々に大きくなるような変色処理を行う。例えば変色処理用パラメータは、第１のオブジェクトの変色処理用のパラメータである。即ち第１のオブジェクトを変色させる処理に使用されるパラメータである。そして変色処理部１１２は、接触イベントが発生している期間において、変色処理が行われる第２のオブジェクト上の変色領域の大きさを、時間経過に伴い拡大する処理を行うと共に、変色処理用パラメータにより設定される第１のオブジェクトの変色の色を、時間経過に伴い減衰させる処理を行う。具体的には変色処理部１１２は、接触イベントが発生している期間において、第２のオブジェクトと接触したと判定された頂点の変色処理用パラメータの値を、時間経過に伴い減衰させる処理を行う。これにより、第２のオブジェクトにおいては、第１のオブジェクトが接触したことによる変色の領域が、時間経過に伴い徐々に大きくなる一方で、第１のオブジェクトの変色の色（濃度、輝度）が、時間経過に伴い徐々に減衰する（色が薄くなる）。従って、第１、第２のオブジェクトの接触により、第１のオブジェクトの変色の色が、例えば液体等を表す第２のオブジェクトに徐々に拡散して広がって行くと共に、液体等により第１のオブジェクトの変色の色が洗い流されて行くような画像表現を実現できる。
【００７６】
また、エフェクト処理部１１４は、第１のオブジェクトの接触位置に対応する第２のオブジェクト上の領域に対して、変色処理とは異なるエフェクト処理を行う。具体的には、第２のオブジェクトが、液体（狭義には水）を表すオブジェクトである場合に、エフェクト処理部１１４は、エフェクト処理として、液体の波紋のエフェクト処理を行う。即ち液体の表面に波紋が生じているように見える画像を生成するためのエフェクト処理を行う。なお、エフェクト処理部１１４が行うエフェクト処理は、このような波紋のエフェクト処理には限定されず、例えば第１のオブジェクトと第２のオブジェクトの接触により、第２のオブジェクトの表面等に発生させる種々のエフェクト処理を想定できる。例えばエフェクト処理は、床や壁等を表す第２のオブジェクトの地割れやひび割れ等を表現するためのエフェクト処理であってもよい。
【００７７】
また変色処理部１１２が、変色処理が行われる第２のオブジェクト上の変色領域の大きさを、接触位置から時間経過に伴い拡大する処理を行う一方で、エフェクト処理部１１４も、エフェクト処理が行われる第２のオブジェクト上のエフェクト領域の大きさを、接触位置から時間経過に伴い拡大する処理を行う。このようにすれば、接触イベントの発生後に、第２のオブジェクトの変色領域が、時間経過にしたがって徐々に大きくなると共に、第２のオブジェクトのエフェクト領域（波紋領域等）についても、時間経過にしたがって徐々に大きくなる。即ち、変色領域とエフェクト領域が連動して大きくなるような画像を生成できるようになり、よりリアルで多様な画像表現が可能になる。
【００７８】
またエフェクト処理部１１４は、波紋のエフェクト処理として、液体の屈折率の変化を表すエフェクト処理を行う。例えば液体の屈折率の変化により、液体の内部や奥側に見える物体の画像が歪んで見えるような屈折画像を生成するためのエフェクト処理を行う。或いは、波紋のエフェクト処理として、液体の表面の反射率の変化を表すエフェクト処理を行ってもよい。例えば液体の表面の反射率の変化により、液体の表面に映る物体の画像が歪んで見えるような反射画像を生成するためのエフェクト処理を行う。
【００７９】
またテクスチャ記憶部１７６は、テクスチャマッピングに使用されるテクスチャとして、例えばエフェクト処理用（例えば波紋処理用）のテクスチャを記憶する。
【００８０】
そしてエフェクト処理部１１４は、エフェクト処理用テクスチャの所定チャンネル成分（例えば第１、第２の色成分）に対して設定されたエフェクト処理用パラメータを用いて、第２のオブジェクトのエフェクト処理（波紋処理等）を行う。一方、変色処理部１１２は、エフェクト処理用テクスチャの所定チャンネル成分とは異なる他のチャンネル成分（例えば第３の色成分）に対して設定された変色処理用パラメータを用いて、第２のオブジェクトの変色処理を行う。
【００８１】
具体的には、エフェクト処理部１１４は、エフェクト処理用テクスチャの所定チャンネル成分（第１、第２の色成分）に対して設定されたエフェクト処理用法線情報パラメータ（法線の第１、第２の座標成分）を用いて、第２のオブジェクトのエフェクト処理を行う。一方、変色処理部１１２は、エフェクト処理用テクスチャの他のチャンネル成分（第３の色成分）に対して設定された変色処理用パラメータ（単色の色データ）を用いて、第２のオブジェクトの変色処理を行う。
【００８２】
このようにすれば、エフェクト処理用テクスチャを有効活用して、第２のオブジェクトのエフェクト処理と第２のオブジェクトの変色処理の両方を実行できるようになる。
【００８３】
なお、テクスチャ記憶部１７６は、エフェクト処理用テクスチャと変色処理用テクスチャを別々に記憶してもよい。この場合にはエフェクト処理部１１４は、テクスチャ記憶部１７６のエフェクト処理用テクスチャのチャンネル成分に対して設定されたエフェクト処理用パラメータ（例えば法線情報パラメータ）を用いて、第２のオブジェクトのエフェクト処理を行う。一方、変色処理部１１２は、変色処理用テクスチャのチャネル成分（例えば第１〜第３の色成分）に対して設定された変色処理用パラメータ（例えばＲＧＢの色データ）を用いて、第２のオブジェクトの変色処理を行う。
【００８４】
このようにすれば、エフェクト処理用テクスチャを用いたエフェクト処理を行いながら、変色処理用テクスチャを用いて、単色でない色の変色処理を実現できるようになり、より高品質な画像を生成できるようになる。
【００８５】
また、第１のオブジェクトが、ゲームに登場するキャラクタを表すオブジェクトであり、第２のオブジェクトが、液体を表すオブジェクトである場合に、変色処理部１１２は、キャラクタの変色処理用パラメータに基づいて、キャラクタの表面を変色させる処理を行う。例えばキャラクタの衣服や皮膚が汚れで変色する処理を行う。そして変色処理部１１２は、キャラクタが液体に浸かる接触イベント（水に浸かるイベント）が発生した場合に、キャラクタの各部分のうち、液体に浸かった部分（頂点）の変色処理用パラメータに基づいて、液体を変色させる処理を行う。
【００８６】
このようにすれば、キャラクタに付着した汚れが液体に流れ、これにより液体が汚れて変色するように見える画像を生成できるようになり、これまでにないリアルな画像表現が可能になる。
【００８７】
この場合に、変色処理部１１２は、キャラクタの各部分のうち、液体に浸かった部分については、変色処理用パラメータによる変色の色（濃度、輝度）を、減衰させる処理を行う。このようにすれば、キャラクタに付着した汚れが液体に流れることで、キャラクタの汚れが徐々に無くなり、キャラクタの衣服や皮膚の汚れが液体により洗い流されて行くように見える画像を生成できるようになり、更にリアルな画像表現が可能になる。
【００８８】
なお本実施形態の手法はサーバシステムにより実現してもよい。図２にサーバシステムにより実現する場合の構成例を示す。
【００８９】
サーバシステム５００は、端末装置ＴＭ１〜ＴＭｎとネットワーク５１０を介して通信接続される。例えばサーバシステム５００はホストであり、端末装置ＴＭ１〜ＴＭｎはクライアントである。サーバシステム５００は例えば１又は複数のサーバ（認証サーバ、ゲームサーバ、通信サーバ、課金サーバ等）により実現できる。ネットワーク５１０（配信網、通信回線）は、例えばインターネットや無線ＬＡＮ等を利用した通信路であり、直接接続のための専用線（専用ケーブル）やイーサネット（登録商標）等によるＬＡＮの他、電話通信網やケーブル網や無線ＬＡＮ等の通信網を含むことができる。また通信方法については有線／無線を問わない。
【００９０】
端末装置ＴＭ１〜ＴＭｎは、例えば据え置き型の家庭用ゲーム装置、携帯型ゲーム装置、或いは業務用ゲーム装置等により実現される。据え置き型の家庭用ゲーム装置は、家庭に設置されて使用されることが想定されるゲーム装置であり、業務用ゲーム装置は、ゲーム施設等に設置されて使用されること想定されるゲーム装置である。また携帯型ゲーム装置は専用のゲーム装置であってもよいし、携帯電話機や携帯型情報端末などのゲームプログラムの実行が可能な汎用の装置であってもよい。
【００９１】
サーバシステム５００は、処理部６００、記憶部６７０、情報記憶媒体６８０、通信部６９６を含む。処理部６００は、ゲーム演算部６０２、オブジェクト空間設定部６０４、移動体演算部６０６、仮想カメラ制御部６０８、イベント判定部６１０、変色処理部６１２、エフェクト処理部６１４、画像生成用データ生成部６２０、音生成用データ生成部６３０を含む。なおこれらの各部（各ブロック）の機能、動作等は、図１の各部（各ブロック）と同様である。
【００９２】
例えばサーバシステム５００のイベント判定部６１０は、第１のオブジェクトが第２のオブジェクトに接触する接触イベントの発生を判定する。変色処理部６１２は、第１のオブジェクトと第２のオブジェクトの接触イベントが発生した場合に、第１のオブジェクトに対して設定された変色処理用パラメータを取得する。そして、取得された変色処理用パラメータに応じた変色処理を、第１のオブジェクトの接触位置に対応する第２のオブジェクト上の領域に対して行う。また変色処理部６１２は、変色処理が行われる２のオブジェクト上の変色領域の大きさを、接触位置から時間経過に伴い拡大する処理なども行う。またエフェクト処理部６１４は、第１のオブジェクトの接触位置に対応する第２のオブジェクト上の領域に対して、変色処理とは異なるエフェクト処理を行う。そして画像生成用データ生成部６２０は、第１、第２のオブジェクトを含む複数のオブジェクトが配置設定されるオブジェクト空間において、仮想カメラから見える画像を生成するための画像生成用データを生成する。
【００９３】
なお、画像を生成するための画像生成用データとは、本実施形態の手法により生成された画像をＴＭ１〜ＴＭｎの各端末装置において表示するためのデータであり、画像データそのものであってもよいし、各端末装置が画像を生成するために使用する各種データ（オブジェクトデータ、制御結果データ、判定結果データ又は表示画面の設定データ等）であってもよい。例えばサーバシステム５００が、各端末装置の操作部からの操作情報を取得し、各種の制御処理や各種の判定処理を行い、画像を生成して、ＴＭ１〜ＴＭｎの各端末装置に配信（ストリーム配信等）する場合には、上述の画像生成用データは画像データそのものになる。一方、サーバシステム５００が、各端末装置の操作部からの操作情報を取得し、各種の制御処理や各種の判定処理を行い、その制御結果や判定結果に基づいてＴＭ１〜ＴＭｎの各端末装置が画像を生成する場合には、上述の画像生成用データは、制御結果データや判定結果データやオブジェクトデータなどになる。音生成用データ生成部６３０が生成する音生成用データについても同様である。
【００９４】
なお、ゲーム演算部６０２、オブジェクト空間設定部６０４、移動体演算部６０６、仮想カメラ制御部６０８、イベント判定部６１０、変色処理部６１２、エフェクト処理部６１４、画像生成用データ生成部６２０、音生成用データ生成部６３０、記憶部６７０、情報記憶媒体６８０、通信部６９６等の詳細な機能、動作は、図１で上述に説明したものと同様であるため、詳細な説明は省略する。
【００９５】
２．本実施形態の手法
次に本実施形態の手法について具体的に説明する。
【００９６】
２．１  変色処理
まず、本実施形態の変色処理（汚れ処理）の概要について説明する。図３（Ａ）において第１のオブジェクトＯＢ１には変色処理用パラメータが設定されており、この変色処理用パラメータにより第１のオブジェクトＯＢ１の表面が変色する画像が生成されている。変色処理用パラメータとしては、例えば変色の色を表す色パラメータ（ＲＧＢデータ）や、変色度合いを表す変色度合いパラメータなどを想定でき、この変色処理用パラメータは、第１のオブジェクトＯＢ１の例えば頂点データとして設定されている。
【００９７】
図３（Ｂ）では、第１のオブジェクトＯＢ１と第２のオブジェクトＯＢ２の接触イベントが発生している。この接触イベントの発生は、例えば第１のオブジェクトＯＢ１の頂点又は頂点の代表点と第２のオブジェクトＯＢ２との位置関係等に基づいて判定できる。例えば第１のオブジェクトＯＢ１の頂点又は代表点が、第２のオブジェクトＯＢ２の内部に内包されていると判断された場合には、第１のオブジェクトＯＢ１が第２のオブジェクトＯＢ２に接触したと判定できる。
【００９８】
そして本実施形態では、このような接触イベントが発生すると、第１のオブジェクトＯＢ１に対して設定された変色処理用パラメータが取得される。例えば第１のオブジェクトＯＢ１の頂点に対して設定された変色処理用パラメータが取得される。そして、取得された変色処理用パラメータに応じた変色処理が、第２のオブジェクトＯＢ２に対して行われる。例えば図３（Ｂ）に示すように第１のオブジェクトＯＢ１の接触位置に対応する第２のオブジェクトＯＢ２上の領域（変色領域）に対して、変色処理が行われる。
【００９９】
これにより、第２のオブジェクトＯＢ２が変色して汚れる等の画像を生成できるようになる。即ち第１のオブジェクトＯＢ１の変色状態が、第２のオブジェクトＯＢ２に伝わって、第２のオブジェクトＯＢ２が変色する画像を生成できるようになる。
【０１００】
そして本実施形態では図４（Ａ）、図４（Ｂ）に示すように、変色処理が行われる第２のオブジェクトＯＢ２上の変色領域の大きさが、時間経過に伴い徐々に拡大する。例えば図３（Ｂ）の第１、第２のオブジェクトＯＢ１、ＯＢ２の接触位置を中心として広がるように、変色領域が徐々に拡大する。
【０１０１】
そして、このように接触イベントが発生している期間においては、変色処理が行われる第２のオブジェクトＯＢ２上の変色領域の大きさが、時間経過に伴い徐々に拡大すると共に、変色処理用パラメータにより設定される第１のオブジェクトＯＢ１の変色の色は、時間経過に伴い徐々に減衰する。
【０１０２】
これにより、例えば図４（Ｃ）に示すように、接触イベントが終了して、第１のオブジェクトＯＢ１が第２のオブジェクトＯＢ２から離れると、第１のオブジェクトＯＢ１の変色領域での変色の色が減衰して薄くなる画像が生成されるようになる。
【０１０３】
例えば第１のオブジェクトＯＢ１が、ゲームに登場するキャラクタを表すオブジェクトであり、第２のオブジェクトＯＢ２が、液体を表すオブジェクトであったとする。
【０１０４】
この場合には本実施形態では図３（Ａ）に示すように、キャラクタ（ＯＢ１）の変色処理用パラメータに基づいて、キャラクタの表面が変色して汚れる処理が行われる。
【０１０５】
次に、図３（Ｂ）に示すように、キャラクタ（ＯＢ１）が液体（ＯＢ２）に浸かる接触イベントが発生すると、キャラクタ（ＯＢ１）の各部分のうち、液体に浸かった部分の変色処理用パラメータに基づいて、液体（ＯＢ２）を変色させる処理が行われる。これにより、キャラクタの汚れが液体に伝わって、液体が変色して汚れる画像が生成されるようになる。
【０１０６】
そして図４（Ａ）、図４（Ｂ）に示すように、キャラクタの汚れによる液体の変色領域は徐々に拡大する。即ち、キャラクタの汚れによる変色が液体に伝わって、その変色の領域が液体側において徐々に広がって行く。
【０１０７】
この時に、キャラクタの各部分のうち、液体に浸かった部分については、変色処理用パラメータによる変色の色が、徐々に減衰する。従って、図４（Ｃ）に示すように、接触イベントが終了して、キャラクタが液体から出ると、キャラクタの汚れの変色は減衰しており、あたかもキャラクタの汚れが液体により流されたかのように見える画像表現を実現できる。
【０１０８】
なお、以下では、上述のように第１のオブジェクトがキャラクタを表すオブジェクトであり、第２のオブジェクトが水（液体）を表すオブジェクトであり、キャラクタの汚れが水に落ちて水が汚れるような画像表現に、本実施形態の手法を適用した場合を主に例にとり説明する。但し、本実施形態の第１、第２のオブジェクトや変色処理は、これに限定されるものではなく、種々の変形実施が可能である。例えばキャラクタ（第１のオブジェクト）の汚れ（例えば血のり）が、壁や床（第２のオブジェクト）に付着するような変色処理に本実施形態の手法を適用してもよい。
【０１０９】
図５（Ａ）〜図８に、本実施形態の手法により生成されたゲーム画像の例を示す。
【０１１０】
図５（Ａ）では、キャラクタＯＢＣ（広義には第１のオブジェクト）が水ＯＢＷ（広義には第２のオブジェクト）に浸かる接触イベントが発生している。この時、キャラクタＯＢＣは、例えばその頂点に設定された変色処理用パラメータ（汚れ処理用パラメータ）により、その表面に対して汚れ処理（変色処理）が施されており、Ａ１に示すように、キャラクタＯＢＣの衣服や皮膚の汚れが表現されている。
【０１１１】
図５（Ｂ）では水面に浸かっていたキャラクタＯＢＣがヒザを曲げており、Ａ２に示すようにキャラクタＯＢＣの足に付着した汚れが流れて、水ＯＢＷが汚れにより変色する画像が生成されている。
【０１１２】
そして図６（Ａ）のＡ３、図６（Ｂ）のＡ４、図７（Ａ）のＡ５では、汚れによる水ＯＢＷの変色領域が時間経過に伴い徐々に広がっている。この時、例えば図６（Ｂ）のＡ６では、キャラクタＯＢＣの足に付着していた汚れが、水ＯＢＷにより洗い流されている様子が表現されている。
【０１１３】
図７（Ｂ）では、水ＯＢＷに浸かっていたキャラクタＯＢＣが立ち上がっている。この時、Ａ７に示すようにキャラクタＯＢＣの背中等に付着していた汚れも、水ＯＢＷにより洗い流されている様子が表現されている。
【０１１４】
図８では、キャラクタＯＢＣが完全に立ち上がっている。そして図５（Ａ）と図８を比較すれば明らかなように、図８では、図５（Ａ）においてキャラクタＯＢＣに付着していた汚れが、水ＯＢＷにより完全に洗い流されて、汚れが落ちている様子が表現されている。
【０１１５】
以上のように本実施形態の手法によれば、第１のオブジェクトであるキャラクタ等の表面の汚れによる変色を表現できるのみならず、この汚れが、第２のオブジェクトである水等に流れて伝わって行く様子を表現できる。即ち、キャラクタの変色処理のために使用した変色処理用パラメータを有効活用して、キャラクタに付着していた汚れが、水に洗い流され、水が汚れて行く様子も表現できるようになる。更に、水に伝わった汚れの領域が時間経過に伴い徐々に広がって行くと共に、水に洗い流されることで、キャラクタの汚れが時間経過に伴い徐々に少なくなって行く様子も表現できる。従って、従来の汚れ処理では表現できなかったリアルな映像表現を実現することができ、プレーヤの仮想現実感を更に向上すること可能になる。
【０１１６】
２．２  変色処理の詳細
次に本実施形態の変色処理（汚れ処理）の詳細例について説明する。なお本実施形態の変色処理手法は以下に説明する手法に限定されるものではなく、種々の変形実施が可能である。
【０１１７】
図９（Ａ）に、キャラクタ（広義には第１のオブジェクト）の頂点に設定される頂点データの例を示す。この頂点データは図１の頂点データ記憶部１７８に記憶される。図９（Ａ）の頂点データでは、各頂点（Ｖ１、Ｖ２、Ｖ３・・・）に対して、その頂点の位置、汚れ色（広義には変色の色）、汚れ度合い（広義には変色度合い）のパラメータが対応づけられて記憶される。
【０１１８】
ここで、汚れ色パラメータは、汚れの色（ＲＧＢ）を表すデータである。また、汚れ度合いパラメータは、汚れの程度（変色の程度）を表すパラメータである。例えばキャラクタの各部分においてその色が異なるような汚れを表現する場合には、汚れ処理用パラメータ（広義には変色処理用パラメータ）として、汚れ色パラメータを用いる。一方、キャラクタの各部分で単色の同じ色になる汚れについては、汚れ処理用パラメータとして、汚れ度合いパラメータを用いる。
【０１１９】
例えば、相手キャラクタ（変色源）から吹きかけられた毒によりキャラクタの衣服や皮膚が汚れるような画像表現を行う場合には、毒の種類（変色源の種類）に依って汚れの色が異なるため、汚れ処理用パラメータとして、汚れ色パラメータを用いる。具体的には、キャラクタのオブジェクトを構成する頂点のうち、毒を吹きかけられた部分の頂点に対して、その毒の種類に応じた色を、汚れ色パラメータとして設定する。こうすることで、相手キャラクタにより毒が吹きかけられた部分が、毒の色により変色して汚れる画像表現を実現できる。
【０１２０】
また、例えば砂の地面のゲームステージで対戦を行う場合には、砂ぼこりの色を単色の汚れ色として、そのゲームステージに対応づけておく。そして、キャラクタを構成する頂点に設定された汚れ度合いパラメータの大きさに応じて、砂ぼこりの色の濃度（強さ）を変化させる。例えば砂の地面に近いキャラクタの足の部分の頂点に対しては、汚れ度合いパラメータを大きな値に設定する。このようにすれば、キャラクタがそのゲームステージの地面に立つと、地面の砂ぼこりがキャラクタの足に付着したかのように見える汚れ表現を実現できる。また、キャラクタの手等の部位が地面に近づいたと判定された場合には、その手等の部位の頂点に対しては、汚れ度合いパラメータを大きな値に設定する。このようにすれば、キャラクタの手等の部位が地面に近づくことで、地面の砂ぼこりがその部位に付着したかのように見える汚れ表現を実現できる。
【０１２１】
図９（Ｂ）は、頂点データに設定された汚れ色パラメータや汚れ度合いパラメータなどの汚れ処理用パラメータを用いた汚れ画像の生成手法を説明する図である。
【０１２２】
例えば図９（Ｂ）の頂点Ｖ１〜Ｖ４に対して図９（Ａ）の汚れ色パラメータが設定されていた場合には、頂点Ｖ１〜Ｖ４の汚れ色パラメータにより表される汚れ色（広義には変色の色）を補間（ラスタライズ）することで、各ピクセルＰＸの汚れ色を求める。また頂点Ｖ１〜Ｖ４に対して図９（Ａ）の汚れ度合いパラメータが設定されていた場合には、この汚れ度合いパラメータと、ゲームステージ等に対応づけて設定された設定色（例えば砂ぼこりの色）とに基づいて、各頂点Ｖ１〜Ｖ４の汚れ色を求める。そして頂点Ｖ１〜Ｖ４の汚れ色を補間することで、各ピクセルＰＸの汚れ色を求める。
【０１２３】
そして、このように頂点の汚れ色の補間により求められた汚れ色と、キャラクタの元絵テクスチャ（衣服や皮膚の色・模様を表すテクスチャ）の色とを、ピクセル単位で合成（例えばαブレンディング）することで、各ピクセルの最終的な色を求める。このようにすることで、キャラクタの衣服や色に汚れが付着した画像を生成できるようになる。なお、頂点データ等を用いた頂点単位での処理は、頂点シェーダにより実現することができ、ピクセル単位での処理は、ピクセルシェーダにより実現することができる。
【０１２４】
また、本実施形態では、図５（Ａ）〜図８のようにキャラクタの汚れが落ちて水面に広がって行く画像表現を、図９（Ａ）のようにキャラクタの頂点データとして設定される汚れ処理用パラメータ（汚れ色パラメータ、汚れ度合いパラメータ等）を有効利用して実現している。
【０１２５】
即ち、キャラクタが水に浸る接触イベントが発生した場合に、キャラクタを構成する複数の頂点のうち、水に浸った（水に接触した）と判定された頂点に対して設定された汚れ処理用パラメータに応じた汚れ処理を、キャラクタと水の接触位置に対応する水面上の領域に対して行う。即ち、水に浸ったと判定された頂点から図９（Ａ）の汚れ処理用パラメータを取得して、水面に汚れが落ちて広がる汚れ処理を行う。
【０１２６】
このようにすれば、図５（Ａ）のＡ１に示すようにキャラクタの汚れ処理に使用されている汚れ処理用パラメータを有効活用して、キャラクタの汚れが落ちて水面に汚れが広がる汚れ処理についても実現できる。
【０１２７】
例えば図１０（Ａ）に示すように、本実施形態では、キャラクタＯＢＣを構成する複数の頂点の代表点である関節Ｊ１、Ｊ２、Ｊ３と、水（水面）ＯＢＷとの位置関係に基づいて、キャラクタＯＢＣが水ＯＢＷに浸かる接触イベントが発生したか否かを判定する。即ち水面よりも下に位置する関節（Ｊ１、Ｊ２）がある場合には、キャラクタは水に浸かっていると判定する。
【０１２８】
そして本実施形態では、キャラクタの関節（広義には頂点の代表点）の位置情報に基づいて、水面の汚れ領域（変色領域）を特定し、特定された汚れ領域に対して汚れ処理（変色処理）を行う。例えば図１０（Ａ）では関節Ｊ１、Ｊ２が水に浸かっているため、関節Ｊ１、Ｊ２の位置から汚れを発生させる汚れ処理を行うことになる。
【０１２９】
図１０（Ｂ）に、キャラクタの関節に設定される関節データの例を示す。図１０（Ｂ）の関節データでは、キャラクタの各関節（Ｊ１、Ｊ２、Ｊ３・・・）に対して、その関節の位置、汚れ処理フラグ（ＦＬ１、ＦＬ２、ＦＬ３・・・）が対応づけられている。ここで、汚れ処理フラグは、汚れ処理を行う場合にオン（例えば「１」）に設定されるフラグである。
【０１３０】
例えば図１１（Ａ）では、関節Ｊ１は頂点Ｖ１〜Ｖ８の代表点となっている。例えば頂点Ｖ１〜Ｖ８に対して距離的に最も近い関節がＪ１になっている。そして頂点Ｖ１が水面よりも下に位置していると判定されると、頂点Ｖ１から、頂点Ｖ１に最も近い関節Ｊ１に対して、水に浸かっている旨を知らせる通知が行われる。これにより図１０（Ｂ）の関節Ｊ１の汚れ処理フラグＦＬ１がオンになり、関節Ｊ１の位置から汚れを発生させる汚れ処理が開始される。即ち、関節Ｊ１の位置（ＸＪ１、ＹＪ１、ＺＪ１）に基づいて、水面上で汚れを発生させる位置を特定し、特定された位置から、図５（Ａ）〜図７（Ｂ）に示すように汚れが徐々に広がって行く様子を表現する汚れ処理が実行される。具体的には、後述するように、関節Ｊ１の位置から、汚れ処理に使用されるテクスチャ（波紋処理用テクスチャ、汚れ処理用テクスチャ）上での汚れ発生位置を特定する。そして、特定された汚れ発生位置から汚れが徐々に広がって行く様子を表すテクスチャの書き換え処理（汚れ処理用パラメータの書き換え処理）を行うことで、汚れ処理が実現される。
【０１３１】
そしてこの場合に、図１１（Ｂ）に示すように、水に浸かったと判定された頂点Ｖ１の汚れの色（濃度、輝度）を徐々に減衰させる処理が行われる。即ち、接触イベントが発生している期間において、水と接触したと判定されたキャラクタの頂点の汚れ処理用パラメータの値を、時間経過に伴い減衰させる処理を行う。例えば図１１（Ｂ）ではキャラクタの頂点Ｖ１の汚れ色パラメータとして、（Ｒ１、Ｇ１、Ｂ１）のＲＧＢデータが設定されている。そして、頂点Ｖ１が水に浸かっていると判定されると、その時点から、汚れ色パラメータのＲＧＢデータであるＲ１、Ｇ１、Ｂ１の値が、図１１（Ｂ）に示すように徐々に小さくなって減衰して行く。
【０１３２】
このようにすれば、キャラクタが水に浸かることで、あたかも水に浸かった部分の汚れが流れ落ちて綺麗になって行く映像表現を実現することができ、従来の汚れ処理では実現できなかったリアルな画像を生成できるようになる。
【０１３３】
なお図１２に、キャラクタ等を表すモデルオブジェクトＭＯＢのスケルトンの情報であるモーションデータの例を示す。図１２に示すように、モデルオブジェクトＭＯＢは、複数のパーツオブジェクトＰＢ０〜ＰＢ１５により構成される。そして、これらのパーツオブジェクト（部位）の位置や回転角度（方向）は、モデルオブジェクトＭＯＢのスケルトンモデルを構成する骨Ｂ０〜Ｂ１９の位置（関節Ｊ０〜Ｊ１５の位置）や回転角度（親の骨に対する子の骨の相対的な回転角度）により特定される。なお、これらの骨、関節は仮想的なものであり、現実に表示されるオブジェクトではない。
【０１３４】
モデルオブジェクトＭＯＢのスケルトンを構成する骨（モーション骨、関節、パーツオブジェクト）は、親子（階層）構造を有している。例えば、手の骨Ｂ７、Ｂ１１の親は前腕の骨Ｂ６、Ｂ１０になり、Ｂ６、Ｂ１０の親は上腕の骨Ｂ５、Ｂ９になり、Ｂ５、Ｂ９の親は肩の骨Ｂ４、Ｂ８になる。足、脛（すね）、大腿、腰、胸、頭の骨も同様である。
【０１３５】
図１のモーションデータ記憶部１７４には、これらの骨（パーツオブジェクト、関節）の位置、回転角度が、モーションデータとして記憶されている。なお骨の回転角度だけをモーションデータに含ませて、骨（アーク）の位置（関節の位置）についてはモデルオブジェクトのモデルデータの中に含ませてもよい。
【０１３６】
例えば、歩きモーションが、Ｍ０、Ｍ１、Ｍ２・・・・ＭＮという基準モーション（各フレームでのモーション）により構成されているとする。するとこれらの各基準モーションＭ０、Ｍ１、Ｍ２・・・・ＭＮでの各骨の位置又は回転角度が、モーションデータとして予め記憶されている。そして、例えば基準モーションＭ０の各骨（各パーツオブジェクト）の位置、回転角度を読み出し、次に基準モーションＭ１の各骨の位置、回転角度を読み出すというように、基準モーションのモーションデータを時間経過に伴い順次読み出すことで、モーション処理（モーション再生）が実現される。
【０１３７】
なお、モーションデータ記憶部１７４に記憶するモーションデータは、一般的には、モーションキャプチャにより取得したり、デザイナが作成する。またモーションデータは、親の骨の位置、回転角度に対する子の骨の相対的な位置、相対的な回転角度（３軸周りの回転角度）で表される。具体的には、親の骨に対する子の骨のＸ軸、Ｙ軸、Ｚ軸回りの回転角度（相対的な回転角度）が、モーションデータとして記憶される。なお親の骨に対する子の骨の相対的な位置（相対距離）は、例えばモデルオブジェクト（キャラクタ）のモデルデータに含ませてもよい。
【０１３８】
本実施形態では、キャラクタ（第１のオブジェクト）の複数の頂点の代表点として、図１２に示されるようなキャラクタのモーション処理用のスケルトンの関節を採用している。このようにすれば、モーションデータのスケルトンの関節を有効利用して、接触判定処理や水面の汚れ処理等を実現することが可能になり、処理を効率化できる。
【０１３９】
例えば、キャラクタの全ての頂点を、汚れの発生点に設定して汚れ処理を行うと、汚れ処理の処理負荷が重くなってしまうおそれがある。
【０１４０】
この点、頂点ではなくて、頂点の代表点である関節を汚れの発生点に設定して汚れ処理を行えば、関節の数は頂点の数よりも格段に少ないため、汚れ処理の処理負荷を低減することができ、処理の効率化を図れるようになる。
【０１４１】
２．３  汚れ処理、波紋処理
次に、本実施形態の水面の汚れ処理や波紋処理の具体例について、図１３（Ａ）〜図１７を用いて詳細に説明する。
【０１４２】
本実施形態では、キャラクタの接触位置に対応する水面上の領域に対して、汚れ処理（変色処理）とは異なるエフェクト処理を行っている。具体的には、エフェクト処理として、水面（液体）の波紋を表現するエフェクト処理を行っている。例えば図６（Ａ）において、キャラクタが水に浸ると、水に浸った位置（接触位置）を中心に、Ａ３に示すように汚れが広がると共に、キャラクタが水に入ることにより生じる波紋（水の波）についても広がる処理を行う。具体的には、キャラクタが水に浸った位置から、汚れ領域の大きさが時間経過に伴い徐々に広がると共に、波紋のエフェクト領域の大きさについても時間経過に伴い徐々に広がるような画像表現を行う。このようにすれば、キャラクタが水に浸かると、水に浸かった部分から汚れと波紋の両方が広がるような画像を生成することができ、よりリアルな画像を生成できるようになる。
【０１４３】
具体的には本実施形態では図１３（Ａ）に示すような波紋処理用テクスチャ（広義にはエフェクト処理用テクスチャ）が用意され、図１のテクスチャ記憶部１７６に記憶される。この波紋処理用テクスチャでは、例えばそのＲ成分、Ｂ成分（広義には所定のチャンネル成分）に対して、水（第２のオブジェクト）のエフェクト処理用のパラメータが設定される。具体的には、波紋処理用テクスチャのＲ成分、Ｂ成分に対して、水の波紋処理用法線情報パラメータ（エフェクト処理用法線情報パラメータ）が設定され、この波紋処理用法線情報パラメータを用いて、波紋のエフェクト処理が行われる。
【０１４４】
一方、図１３（Ａ）に示すように、波紋処理用テクスチャでは、例えばそのＧ成分（広義には所定チャンネル成分とは異なる他のチャンネル成分）に対して、水の汚れ処理用パラメータ（変色処理用パラメータ）が設定される。そして、この汚れ処理用パラメータを用いて、水の汚れ処理（変色処理）が行われる。例えば、濃い汚れについては、Ｇ成分に設定される汚れ処理用パラメータを大きな値に設定することで表現し、薄い汚れについては、Ｇ成分に設定される汚れ処理用パラメータを小さな値に設定することで表現する。
【０１４５】
このようにすれば、水の波紋を表現するための波紋処理用テクスチャを有効活用して、水の汚れ処理についても実現できるようになり、テクスチャの使用記憶容量の節約等を図れる。
【０１４６】
なお図１３（Ｂ）に示すように、波紋処理用テクスチャ（エフェクト処理用テクスチャ）と汚れ処理用テクスチャ（変色処理用テクスチャ）の両方を用意して、テクスチャ記憶部１７６に記憶するようにしてもよい。
【０１４７】
この場合には、波紋処理用テクスチャ（エフェクト処理用テクスチャ）のチャンネル成分（例えばＲ、Ｇ、Ｂ成分の少なくとも２つのチャンネル成分）に対して、水の波紋処理用パラメータ（エフェクト処理用パラメータ）を設定する。具体的には波紋処理用の法線情報パラメータを設定して、水の波紋処理（エフェクト処理）を行う。
【０１４８】
一方、図１３（Ｂ）に示すように、汚れ処理用テクスチャ（変色処理用テクスチャ）のチャネル成分（例えばＲ、Ｇ、Ｂ成分）に対して、水の汚れ処理用パラメータ（変色処理用パラメータ）を設定する。具体的には、水の汚れ色パラメータを設定して、水の汚れ処理（変色処理）を行う。
【０１４９】
例えば図１３（Ａ）の手法では、テクスチャの使用記憶容量は節約できるものの、汚れ色として１つの色成分しか使用できないため、単色の汚れしか表現できないという不利点がある。例えば図６（Ａ）のＡ３において、全面が黒色や赤色等の単色になる汚れ画像しか生成できない。
【０１５０】
これに対して図１３（Ｂ）の手法では、汚れ処理用テクスチャが別途必要になるものの、汚れ色として複数の色成分を使用できるため、単色ではない汚れも表現できるようになる。例えば図６（Ａ）のＡ３において、水面の各場所において色が異なるような汚れ画像も生成できるようになる。従って、多様な汚れ画像を生成することができ、多彩な画像表現を実現できるようになる。
【０１５１】
図１３（Ａ）、図１３（Ｂ）に示すような波紋処理用テクスチャや汚れ処理用テクスチャを用いれば、図１４に示すような波紋や汚れのアニメーション処理を実現できる。即ち図１４では、波紋処理が行われるエフェクト領域の大きさが、Ｂ１に示すキャラクタと水の接触位置（キャラクタの足等の部位が水に浸かった位置）から、時間経過に伴い徐々に拡大している。また汚れ処理が行われる領域の大きさも、Ｂ２に示すキャラクタと水の接触位置から、時間経過に伴い徐々に拡大している。これは、図１３（Ａ）、図１３（Ｂ）に示すような波紋処理用テクスチャや汚れ処理用テクスチャのテクセル値を時間経過に伴い書き換えるテクスチャアニメーション処理を行うことで実現できる。即ち、波紋については図１４のＢ１の位置から同心円状に波紋が広がるようなテクセル値の書き換え処理を行うことで、波紋が徐々に広がる画像を生成できる。また汚れ色については、図１４のＢ２の位置を中心にして汚れが広がるようなテクセル値の書き換え処理を行うことで、汚れが徐々に広がる画像を生成できる。
【０１５２】
ここで、図１４のＢ１、Ｂ２に示す波紋や汚れの発生位置は、図１０（Ａ）、図１０（Ｂ）で説明した関節（広義には頂点の代表点）の位置情報に基づき特定する。例えばキャラクタの足が水に浸かった場合には、その足の関節の位置により、図１４のＢ１、Ｂ２に示す波紋や汚れのテクスチャ上での発生位置を特定する。そして特定された発生位置を中心に波紋や汚れが広がって行くテクスチャのアニメーション処理を行う。このようにすることで、水に浸かったキャラクタの足の関節に対応する位置から波紋や汚れが広がって行くような処理が可能になる。従って、あたかも、キャラクタの足が水に浸かることで波紋が周囲に広がると共に、キャラクタの足等の汚れが水で流れ落ちて周囲に広がるような画像表現が可能になり、よりリアルで仮想現実感の高い画像を生成できるようになる。
【０１５３】
なお、以上では、水面の汚れ処理として、汚れ色パラメータを用いる場合について主に説明したが、本実施形態はこれに限定されない。例えば水面のピクセルシェーダー等により、各ピクセルでの汚れ度合いパラメータを取得し、取得された汚れ度合いパラメータに基づいて、水面の透明度（α値）を変化させたり、水面の色を変化させることで、汚れ処理を実現してもよい。
【０１５４】
図１５（Ａ）、図１５（Ｂ）に、図１３（Ａ）の波紋処理用テクスチャのＲ成分、Ｂ成分に設定される法線情報パラメータの例を示す。図１５（Ａ）、図１５（Ｂ）では、Ｒ成分、Ｂ成分の各成分の数値範囲は０．０〜１．０となっており、Ｒ成分を法線（法線ベクトル）のＸ成分に対応させ、Ｂ成分を法線のＺ成分に対応させる。そして図１５（Ａ）の法線Ｎ１のＸ成分（Ｒ成分）、Ｚ成分（Ｂ成分）は（０．５、０．５）となり、この場合には法線Ｎ１は図１５（Ａ）において上向きの法線になる。また法線Ｎ２のＸ成分、Ｚ成分は（１．０、０．５）となり、この場合には法線Ｎ２は図１５（Ａ）において右向きの法線になる。また法線Ｎ３のＸ成分、Ｚ成分は（０．０、０．５）となり、この場合には法線Ｎ３は図１５（Ａ）において左向きの法線になる。図１５（Ｂ）の法線Ｎ４、Ｎ５についても同様である。
【０１５５】
本実施形態では、このような法線情報パラメータを用いて、水（液体）の屈折率の変化を表すエフェクト処理等を行うことで、波紋のエフェクト処理を実現している。
【０１５６】
例えば図１６（Ａ）では、キャラクタＯＢＣの足が水ＯＢＷに浸かっている。この場合には図１６（Ａ）のＣ１、Ｃ２に示す位置を、キャラクタＯＢＣの足の関節の位置から特定し、このＣ１、Ｃ２から波紋や汚れが広がる画像を生成する。
【０１５７】
具体的には、図１６（Ａ）の場面を仮想カメラの視点（プレーヤの視点）で見た画像でとして、図１６（Ｂ）に示すような画像を生成する。そして、生成された図１６（Ｂ）の画像を、図１３（Ａ）〜図１５（Ｂ）で説明した波紋処理用テクスチャの法線情報パラメータを用いて歪ませる画像処理を行うことで、水（液体）の屈折率が変化したかのように見える屈折画像を生成する。
【０１５８】
例えば図１６（Ｂ）の画像を屈折画像のテクスチャとし、水面を表すオブジェクト（１又は複数のポリゴンにより構成されるオブジェクト）にマッピングする。その際に、屈折画像のテクスチャの参照位置であるテクスチャ座標（Ｕ、Ｖ座標）を、図１５（Ａ）、図１５（Ｂ）で説明した波紋処理用テクスチャの法線情報パラメータを用いて変動させることで、水（液体）の屈折率が変化したかのように見える画像を生成する。
【０１５９】
例えば図１７は、このような水の屈折率を変化させるエフェクト処理により生成された画像の例である。図１７のＤ１、Ｄ２では、法線情報パラメータによりテクスチャの参照位置が変動することで、水面の下の足が、波紋による水の屈折率の変化により歪んだかのように見える画像を生成できるようになる。
【０１６０】
また図１６（Ｃ）は、図１６（Ｂ）の画像等を、水面のラインを基準に上下に反転させた画像である。そして図１６（Ｃ）の画像を、波紋処理用テクスチャの法線情報パラメータを用いて歪ませる画像処理を行うことで、水（液体）の反射率が変化したかのように見える反射画像を生成する。
【０１６１】
例えば図１６（Ｃ）の画像を反射画像のテクスチャとし、水面を表すオブジェクトにマッピングする。その際に、反射画像のテクスチャの参照位置であるテクスチャ座標（Ｕ、Ｖ座標）を、波紋処理用テクスチャの法線情報パラメータを用いて変動させることで、水の反射率が変化したかのように見える画像を生成する。このようにすれば、水面に映る反射画像（例えば、キャラクタの、水に浸かってない部分が水面に反射した画像）が、波紋による水の反射率の変化により歪んだかのように見える画像を生成できるようになる。
【０１６２】
以上のようにすることで、本実施形態によれば、キャラクタの足等が水に浸かることで、足等についた汚れが水面に広がると共に、足等が浸かることによる波紋についても水面に広がるような画像を生成できるようになる。従って、従来の汚れ処理では実現できなかった画像表現を実現することが可能になり、高品質で仮想現実感の高い画像の生成が可能になる。
【０１６３】
２．４  詳細な処理例
次に本実施形態の詳細な処理例について図１８〜図２０のフローチャートを用いて説明する。図１８は、図１０（Ａ）、図１０（Ｂ）等で説明した関節の処理についてのフローチャートである。
【０１６４】
まず、キャラクタの全ての関節を処理したか否かを判断し（ステップＳ１）、全ての関節を処理した場合には、関節の処理を終了する。一方、全ての関節を処理していない場合には、未処理関節を選択する（ステップＳ２）。そして、選択された関節の汚れ処理フラグをクリア（例えば「０」）する（ステップＳ３）。この汚れ処理フラグは図１０（Ｂ）で説明したフラグであり、後述する図１９のステップＳ１５でオン（例えば「１」）にされるフラグである。そして、図１０（Ａ）で説明したように、選択された関節の位置が、水に浸っているか否かを判断する（ステップＳ４）。そして、水に浸かっている場合には、選択された関節を汚れ処理対象関節として登録する（ステップＳ５）。即ち図１の記憶部１７０に登録して保存する。
【０１６５】
図１９は、図９（Ａ）、図９（Ｂ）、図１１（Ａ）、図１１（Ｂ）等で説明した頂点の処理についてのフローチャートである。
【０１６６】
まず、キャラクタの全ての頂点を処理したか否かを判断し（ステップＳ１１）、全ての頂点を処理した場合には、頂点の処理を終了する。一方、全ての頂点を処理していない場合には、未処理の頂点を選択する（ステップＳ１２）。そして、選択された頂点の変色処理用パラメータである汚れ色パラメータを取得する（ステップＳ１３）。即ち、図９（Ａ）において頂点データとして設定された汚れ色パラメータを取得する。
【０１６７】
次に、選択された頂点は汚れで変色しているか否かを、取得された汚れ色パラメータに基づいて判断する（ステップＳ１４）。例えば、汚れ色パラ−メータのＲ、Ｇ、Ｂ成分の少なくとも１つの成分が０よりも大きかった場合（所定しきい値よりも大きかった場合）には、その頂点は汚れで変色していると判断される。そして、汚れで変色していると判断された場合には、選択された頂点に最も近い汚れ処理対象関節（図１８のステップＳ５で登録された関節）を検索して、汚れ処理フラグをオンにする（ステップＳ１５）。
【０１６８】
例えば図１１（Ａ）において、頂点Ｖ１の汚れ色パラメータに基づいて、頂点Ｖ１が汚れで変色されたと判断されたとする。また関節Ｊ１が、汚れ処理対象関節として登録されていたとする。この場合には、頂点Ｖ１に最も近い関節であるＪ１が検索されて、この関節Ｊ１の汚れ処理フラグ（図１０（Ｂ）参照）がオン（例えば「１」）に設定される。この汚れ処理フラグは、例えばフレームの更新ごとに前述の図１８のステップＳ３に示すようにクリアされる。そして、当該関節が汚れ処理対象関節として登録されて、当該関節の近くの頂点が汚れで変色していると判定されると、図１９のステップＳ５に示すように当該関節の汚れ処理フラグはオンになり、当該関節から汚れが発生する汚れ処理が行われるようになる。
【０１６９】
次に、図１１（Ｂ）で説明したように、選択された頂点の汚れ色パラメータの汚れ色を減衰させる処理を行う（ステップＳ１６）。例えば汚れ色パラメータのＲ、Ｇ、Ｂ成分を一定値ずつ減衰させる処理を行う。これにより、キャラクタの汚れが落ちて水に流れたかのように見える画像を生成できるようになる。
【０１７０】
図２０は、波紋処理用テクスチャを用いた波紋処理や汚れ処理の詳細例を示すフローチャートである。
【０１７１】
まず、フレーム更新か否かを判断する（ステップＳ２１）。そして、フレーム更新のタイミングであると判断された場合には、図１３（Ａ）〜図１４で説明したように、波紋処理用テクスチャのＲ、Ｂ成分である法線情報パラメータのアニメーション処理を行って、波紋領域を拡大させる処理を行う（ステップＳ２２）。また、波紋処理用テクスチャのＧ成分である汚れ色パラメータのアニメーション処理を行って、汚れ領域を拡大させる処理を行う（ステップＳ２３）。
【０１７２】
次に、図１６（Ａ）〜図１７で説明したように、ステップＳ２２でアニメーション処理が行われた法線情報パラメータに基づいて、水面の屈折画像と反射画像を生成する（ステップＳ２４）。また、ステップＳ２３でアニメーション処理を行われた汚れ色パラメータに基づいて、水面の汚れ画像を生成する（ステップＳ２５）。そして、生成された水面の屈折画像、反射画像、汚れ画像を水面オブジェクトにマッピングする（ステップＳ２６）。例えばこれらの屈折画像、反射画像、汚れ画像を、所与のα値でαブレンドする画像合成を行う。このようにすることで、キャラクタの水に浸かった部分から波紋と汚れが広がるような水面の画像を生成できるようになる。
【０１７３】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語（変色処理、エフェクト処理、第１のオブジェクト、第２のオブジェクト等）と共に記載された用語（汚れ処理、波紋処理、キャラクタ、水等）は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、第１、第２のオブジェクトの接触イベントの判定処理、オブジェクトの変色処理、オブジェクトのエフェクト処理等も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【符号の説明】
【０１７４】
ＯＢ１  第１のオブジェクト、ＯＢ２  第２のオブジェクト、ＯＢＣ  キャラクタ、
ＯＢＷ  水、Ｊ１〜Ｊ３  関節、Ｖ１〜Ｖ８  頂点、
１００  処理部、１０２  ゲーム演算部、１０４  オブジェクト空間設定部、
１０６  移動体演算部、１０８  仮想カメラ制御部、１１０  イベント判定部、
１１２  変色処理部、１１４  エフェクト処理部、
１２０  画像生成部、１３０  音生成部、１６０  操作部、
１７０  記憶部、１７２  オブジェクトデータ記憶部、
１７４  モーションデータ記憶部、１７６  テクスチャ記憶部、
１７８  頂点データ記憶部、１７９  描画バッファ、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、１９４  補助記憶装置、
１９６  通信部、
５００  サーバシステム、５１０  ネットワーク、ＴＭ１〜ＴＭｎ  端末装置、
６００  処理部、６０２  ゲーム演算部、６０４  オブジェクト空間設定部、
６０６  移動体演算部、６０８  仮想カメラ制御部、６１０  イベント判定部、
６１２  変色処理部、６１４  エフェクト処理部、
６２０  画像生成用データ生成部、６３０  音生成用データ生成部
【図１】
2012234441.tif 000003
【図２】
2012234441.tif 000004
【図９】
2012234441.tif 000005
【図１０】
2012234441.tif 000006
【図１１】
2012234441.tif 000007
【図１２】
2012234441.tif 000008
【図１３】
2012234441.tif 000009
【図１４】
2012234441.tif 000010
【図１５】
2012234441.tif 000011
【図１６】
2012234441.tif 000012
【図１８】
2012234441.tif 000013
【図１９】
2012234441.tif 000014
【図２０】
2012234441.tif 000015
【図３】
2012234441.tif 000016
【図４】
2012234441.tif 000017
【図５】
2012234441.tif 000018
【図６】
2012234441.tif 000019
【図７】
2012234441.tif 000020
【図８】
2012234441.tif 000021
【図１７】
2012234441.tif 000022