説明

プログラム、情報記憶媒体、画像生成システム及びサーバシステム

【課題】第1のオブジェクトの変色処理用パラメータを第2のオブジェクトに反映させることができるプログラム、情報記憶媒体、画像生成システム等の提供。
【解決手段】画像生成システムは、第1のオブジェクトが第2のオブジェクトに接触する接触イベントの発生を判定するイベント判定部と、第1のオブジェクトと第2のオブジェクトの接触イベントが発生した場合に、第1のオブジェクトに対して設定された変色処理用パラメータを取得し、取得された変色処理用パラメータに応じた変色処理を、第1のオブジェクトの接触位置に対応する第2のオブジェクト上の領域に対して行う変色処理部と、第1、第2のオブジェクトを含む複数のオブジェクトが配置設定されるオブジェクト空間において、仮想カメラから見える画像を生成する画像生成部を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、画像生成システム及びサーバシステム等に関する。
【背景技術】
【0002】
従来より、キャラクタ等のモデルオブジェクトが配置設定されるオブジェクト空間内(仮想的な3次元空間)において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。格闘ゲームを楽しむことができる画像生成システムを例にとれば、プレーヤは、操作部(ゲームコントローラ)を用いてキャラクタ(モデルオブジェクト)を操作し、相手プレーヤやコンピュータが操作する他キャラクタ(敵キャラクタ)と対戦することでゲームを楽しむ。
【0003】
このような画像生成システムでは、例えばモデルオブジェクトの表面の汚れについてもリアルに表現できることが望ましい。例えばモデルオブジェクトであるキャラクタの衣服や体の汚れについてもリアルに表現できれば、プレーヤの仮想現実感をより一層向上できる。このような汚れ処理を実現する従来技術としては、例えば特許文献1に開示される技術がある。
【0004】
しかしながら、従来の汚れ処理では、キャラクタの衣服や体の汚れについては、ある程度リアルに表現できるが、キャラクタの衣服や体の汚れが他のオブジェクトに付着したり、キャラクタの汚れが水で流れ落ちるなどの画像表現を実現することはできなかった。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2001−167291号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の幾つかの態様によれば、第1のオブジェクトの変色処理用パラメータを第2のオブジェクトに反映させることができるプログラム、情報記憶媒体、画像生成システム及びサーバシステム等を提供できる。
【課題を解決するための手段】
【0007】
本発明の一態様は、第1のオブジェクトが第2のオブジェクトに接触する接触イベントの発生を判定するイベント判定部と、前記第1のオブジェクトと前記第2のオブジェクトの前記接触イベントが発生した場合に、前記第1のオブジェクトに対して設定された変色処理用パラメータを取得し、取得された前記変色処理用パラメータに応じた変色処理を、前記第1のオブジェクトの接触位置に対応する前記第2のオブジェクト上の領域に対して行う変色処理部と、前記第1、第2のオブジェクトを含む複数のオブジェクトが配置設定されるオブジェクト空間において、仮想カメラから見える画像を生成する画像生成部とを含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【0008】
本発明の一態様によれば、第1、第2のオブジェクトの接触イベントが発生すると、第1のオブジェクトに対して設定された変色処理用パラメータが取得される。そして取得された変色処理用パラメータに応じた変色処理が、接触位置に対応する第2のオブジェクト上の領域に対して行われて、オブジェクト空間において、仮想カメラから見える画像が生成される。このようにすれば、第1のオブジェクトの変色処理用パラメータを第2のオブジェクトに反映させて、第2のオブジェクト上の領域を変色させる処理等を実現できるようになり、よりリアルで仮想現実感の高い画像の生成が可能になる。
【0009】
また本発明の一態様では、前記変色処理部は、前記変色処理が行われる前記第2のオブジェクト上の変色領域の大きさを、前記接触位置から時間経過に伴い拡大する処理を行ってもよい。
【0010】
このようにすれば、接触イベントの発生後に変色領域が徐々に拡大して行くような画像が生成されるため、更にリアルな第2のオブジェクトの変色画像を生成できる。
【0011】
また本発明の一態様では、前記変色処理用パラメータは、前記第1のオブジェクトの変色処理用のパラメータであり、前記変色処理部は、前記接触イベントが発生している期間において、前記変色処理が行われる前記第2のオブジェクト上の前記変色領域の大きさを、時間経過に伴い拡大する処理を行うと共に、前記変色処理用パラメータにより設定される前記第1のオブジェクトの変色の色を、時間経過に伴い減衰させる処理を行ってもよい。
【0012】
このようにすれば、第1のオブジェクトの変色処理に使用する変色処理用パラメータを有効活用して、第2のオブジェクトの変色処理を実現できる。そして、第2のオブジェクトが変色する一方で、第1のオブジェクトについては変色の色が徐々に減衰するような画像表現を実現できるようになる。
【0013】
また本発明の一態様では、前記変色処理部は、前記接触イベントが発生した場合に、前記第1のオブジェクトを構成する複数の頂点のうち、前記第2のオブジェクトと接触したと判定された頂点に対して設定された前記変色処理用パラメータに応じた変色処理を、前記接触位置に対応する前記第2のオブジェクト上の領域に対して行ってもよい。
【0014】
このようにすれば、第1のオブジェクトを構成する頂点に対して設定された変色処理用パラメータに応じた変色処理を、第2のオブジェクト上の領域に対して行うことが可能になる。
【0015】
また本発明の一態様では、前記イベント判定部は、前記第1のオブジェクトを構成する複数の頂点の代表点と前記第2のオブジェクトとの位置関係に基づいて、前記第1のオブジェクトと前記第2のオブジェクトの前記接触イベントが発生したか否かを判定してもよい。
【0016】
このように頂点の代表点を用いて接触イベントの発生を判定することで、処理負荷の軽減等を図れるようになる。
【0017】
また本発明の一態様では、前記変色処理部は、前記第1のオブジェクトを構成する複数の頂点の代表点の位置情報に基づいて、前記第2のオブジェクト上の変色領域を特定し、特定された前記変色領域に対して前記変色処理を行ってもよい。
【0018】
このようにすれば、頂点の位置情報を用いて第2のオブジェクト上の変色領域を特定する場合に比べて、少ない処理負荷で変色領域を特定できるようになる。
【0019】
また本発明の一態様では、前記第1のオブジェクトの前記複数の頂点の前記代表点は、前記第1のオブジェクトのモーション処理用のスケルトンの関節であってもよい。
【0020】
このようにすれば、第1のオブジェクトのモーション処理用のスケルトンを有効活用して、接触イベントの判定処理や変色領域の特定処理等を実現できるようになる。
【0021】
また本発明の一態様では、前記変色処理部は、前記接触イベントが発生している期間において、前記第2のオブジェクトと接触したと判定された頂点の前記変色処理用パラメータの値を、時間経過に伴い減衰させる処理を行ってもよい。
【0022】
このようにすれば、接触イベントが発生している期間において、第1のオブジェクトの頂点の変色処理用パラメータの値を減衰させて、変色の色が減衰して行くような画像表現を実現できるようになる。
【0023】
また本発明の一態様では、前記第1のオブジェクトの前記接触位置に対応する前記第2のオブジェクト上の領域に対して、前記変色処理とは異なるエフェクト処理を行うエフェクト処理部を含んでもよい(エフェクト処理部としてコンピュータを機能させてもよい)。
【0024】
このようにすれば、第2のオブジェクトの変色処理と連動させて、この変色処理とは異なるエフェクト処理を第2のオブジェクトに対して行うことが可能になる。
【0025】
また本発明の一態様では、前記変色処理部は、前記変色処理が行われる前記第2のオブジェクト上の変色領域の大きさを、前記接触位置から時間経過に伴い拡大する処理を行い、前記エフェクト処理部は、前記エフェクト処理が行われる前記第2のオブジェクト上のエフェクト領域の大きさを、前記接触位置から時間経過に伴い拡大する処理を行ってもよい。
【0026】
このようにすれば、第2のオブジェクトの変色処理が行われる変色領域が徐々に拡大すると共に、第2のオブジェクトのエフェクト処理が行われるエフェクト領域も徐々に拡大するような画像を生成できるようになる。
【0027】
また本発明の一態様では、前記第2のオブジェクトは、液体を表すオブジェクトであり、前記エフェクト処理部は、前記エフェクト処理として、前記液体の波紋のエフェクト処理を行ってもよい。
【0028】
このようにすれば、第2のオブジェクトが液体である場合に、第1のオブジェクトが液体に接触することによる液体の変色処理と液体に発生する波紋のエフェクト処理とを連動して行うことが可能になる。
【0029】
また本発明の一態様では、前記エフェクト処理部は、前記波紋のエフェクト処理として、前記液体の屈折率の変化を表すエフェクト処理を行ってもよい。
【0030】
このようにすれば、液体の屈折率の変化を表すエフェクト処理を行うことで、液体の波紋を表す画像を生成できるようになる。
【0031】
また本発明の一態様では、エフェクト処理用テクスチャを記憶するテクスチャ記憶部を含み(テクスチャ記憶部としてコンピュータを機能させ)、前記エフェクト処理部は、前記エフェクト処理用テクスチャの所定チャンネル成分に対して設定されるエフェクト処理用パラメータを用いて、前記第2のオブジェクトの前記エフェクト処理を行い、前記変色処理部は、前記エフェクト処理用テクスチャの前記所定チャンネル成分とは異なる他のチャンネル成分に対して設定される変色処理用パラメータを用いて、前記第2のオブジェクトの前記変色処理を行ってもよい。
【0032】
このようにすれば、エフェクト処理用テクスチャを有効活用して、第2のオブジェクトのエフェクト処理のみならず、第2のオブジェクトの変色処理も実現できるようになり、テクスチャの使用記憶容量の節約等を図れるようになる。
【0033】
また本発明の一態様では、前記エフェクト処理部は、前記エフェクト処理用テクスチャの前記所定チャンネル成分に対して設定されるエフェクト処理用法線情報パラメータを用いて、前記第2のオブジェクトの前記エフェクト処理を行ってもよい。
【0034】
このようにすれば、エフェクト処理用テクスチャに設定されたエフェクト処理用法線情報パラメータを用いて、第2のオブジェクトのエフェクト処理を実現できるようになる。
【0035】
また本発明の一態様では、エフェクト処理用テクスチャと変色処理用テクスチャを記憶するテクスチャ記憶部を含み(テクスチャ記憶部としてコンピュータを機能させ)、前記エフェクト処理部は、前記エフェクト処理用テクスチャのチャンネル成分に対して設定されるエフェクト処理用パラメータを用いて、前記第2のオブジェクトの前記エフェクト処理を行い、前記変色処理部は、前記変色処理用テクスチャのチャネル成分に対して設定される変色処理用パラメータを用いて、前記第2のオブジェクトの前記変色処理を行ってもよい。
【0036】
このようにすれば、エフェクト処理用テクスチャとは別個に用意された変色処理用テクスチャを用いて、第2のオブジェクトの変色処理を実現できるようになるため、より多彩で高精細な画像の生成が可能になる。
【0037】
また本発明の一態様では、前記第1のオブジェクトは、ゲームに登場するキャラクタを表すオブジェクトであり、前記第2のオブジェクトは、液体を表すオブジェクトであり、前記変色処理部は、前記キャラクタの前記変色処理用パラメータに基づいて、前記キャラクタの表面を変色させる処理を行うと共に、前記キャラクタが前記液体に浸かる前記接触イベントが発生した場合に、前記キャラクタの各部分のうち、前記液体に浸かった部分の前記変色処理用パラメータに基づいて、前記液体を変色させる処理を行ってもよい。
【0038】
このようにすれば、キャラクタが液体に浸かることで、液体が変色するような画像が生成されるようになり、従来にない画像表現が可能になる。
【0039】
また本発明の一態様では、前記変色処理部は、前記キャラクタの各部分のうち、前記液体に浸かった部分については、前記変色処理用パラメータによる変色の色を、減衰させる処理を行ってもよい。
【0040】
このようにすれば、キャラクタが液体に浸かることで液体が変色すると共に、キャラクタの変色の色についても減衰するような表現の画像を生成できるようになる。
【0041】
また本発明の他の態様は、第1のオブジェクトが第2のオブジェクトに接触する接触イベントの発生を判定するイベント判定部と、前記第1のオブジェクトと前記第2のオブジェクトの前記接触イベントが発生した場合に、前記第1のオブジェクトに対して設定された変色処理用パラメータを取得し、取得された前記変色処理用パラメータに応じた変色処理を、前記第1のオブジェクトの接触位置に対応する前記第2のオブジェクト上の領域に対して行う変色処理部と、前記第1、第2のオブジェクトを含む複数のオブジェクトが配置設定されるオブジェクト空間において、仮想カメラから見える画像を生成するための画像生成用データを生成する画像生成用データ生成部とを含むサーバシステムに関係する。
【図面の簡単な説明】
【0042】
【図1】本実施形態の画像生成システムの構成例。
【図2】本実施形態のサーバシステムの構成例。
【図3】図3(A)、図3(B)は本実施形態の変色処理手法の説明図。
【図4】図4(A)〜図4(C)も本実施形態の変色処理手法の説明図。
【図5】図5(A)、図5(B)は本実施形態により生成されたゲーム画像の例。
【図6】図6(A)、図6(B)も本実施形態により生成されたゲーム画像の例。
【図7】図7(A)、図7(B)も本実施形態により生成されたゲーム画像の例。
【図8】本実施形態により生成されたゲーム画像の例。
【図9】図9(A)、図9(B)は頂点データ等の説明図。
【図10】図10(A)、図10(B)は頂点の代表点として関節を用いる手法の説明図。
【図11】図11(A)、図11(B)は頂点の汚れ色の減衰処理等の説明図。
【図12】キャラクタのモーションデータ(スケルトン情報)の説明図。
【図13】図13(A)、図13(B)は波紋処理用テクスチャや汚れ処理用テクスチャを用いる手法の説明図。
【図14】波紋領域や汚れ領域を時間経過に伴い拡大する手法の説明図。
【図15】図15(A)、図15(B)は法線情報パラメータの説明図。
【図16】図16(A)〜図16(C)は法線情報パラメータを用いた水面の屈折画像や反射画像の生成手法の説明図。
【図17】本実施形態により生成された水面画像の例。
【図18】本実施形態の処理を説明するフローチャート。
【図19】本実施形態の処理を説明するフローチャート。
【図20】本実施形態の処理を説明するフローチャート。
【発明を実施するための形態】
【0043】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0044】
1.構成
図1に本実施形態の画像生成システム(ゲーム装置)のブロック図の例を示す。なお、本実施形態の画像生成システムの構成は図1に限定されず、その構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0045】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、方向指示キー、操作ボタン、アナログスティック、レバー、各種センサ(角速度センサ、加速度センサ等)、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
【0046】
また操作部160は、例えばカラー画像センサやデプスセンサなどにより実現される画像センサを含む。なお操作部160の機能を画像センサだけで実現してもよい。
【0047】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(DRAM、VRAM)などにより実現できる。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部170に保持される。
【0048】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、HDD(ハードディスクドライブ)、或いはメモリ(ROM等)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0049】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、LCD、有機ELディスプレイ、CRT、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0050】
補助記憶装置194(補助メモリ、2次メモリ)は、記憶部170の容量を補うために使用される記憶装置であり、SDメモリーカード、マルチメディアカードなどのメモリーカードなどにより実現できる。
【0051】
通信部196は、有線や無線のネットワークを介して外部(例えば他の画像生成システム、サーバ、ホスト装置)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【0052】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、サーバ(ホスト装置)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170、補助記憶装置194)に配信してもよい。このようなサーバ(ホスト装置)による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0053】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部100は記憶部170をワーク領域として各種処理を行う。この処理部100の機能は、各種プロセッサ(CPU、GPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0054】
処理部100は、ゲーム演算部102、オブジェクト空間設定部104、移動体演算部106、仮想カメラ制御部108、イベント判定部110、変色処理部112、エフェクト処理部114、画像生成部120、音生成部130を含む。なおこれらの構成要素(各部)の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0055】
ゲーム演算部102はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【0056】
オブジェクト空間設定部104は、複数のオブジェクトが配置されるオブジェクト空間の設定処理を行う。例えば、キャラクタ(人、動物、ロボット、車、船舶、飛行機等)、マップ(地形)、建物、コース(道路)、樹木、壁、水面などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のオブジェクトデータ記憶部172には、オブジェクト(パーツオブジェクト)の位置、回転角度、移動速度、移動方向等のデータであるオブジェクトデータがオブジェクト番号に対応づけて記憶される。オブジェクト空間設定部104は、例えば各フレーム毎にこのオブジェクトデータを更新する処理などを行う。
【0057】
移動体演算部106は、キャラクタ、車等の移動体(移動体オブジェクト)を移動させるための制御処理を行う。また移動体を動作させるための制御処理を行う。即ち操作部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、移動体(オブジェクト、モデルオブジェクト)をオブジェクト空間内で移動させたり、移動体を動作(モーション、アニメーション)させる制御処理を行う。具体的には、移動体の移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0058】
例えば移動体演算部106は、キャラクタ等のモデルオブジェクトにモーション(アニメーション)を行わせるモーション処理(モーション再生、モーション生成)を行う。このモーション処理は、モデルオブジェクトのモーションを、モーションデータ記憶部174に記憶されているモーションデータに基づいて再生することなどで実現できる。
【0059】
仮想カメラ制御部108は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点、基準仮想カメラ)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
【0060】
例えば仮想カメラによりキャラクタを後方から撮影する場合には、キャラクタの位置又は方向の変化に仮想カメラが追従するように、仮想カメラの位置(視点位置)や方向(視線方向)を制御する。この場合には、移動体演算部106で得られたキャラクタの位置、方向又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は方向を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【0061】
イベント判定部110は、ゲーム中の各種イベントの発生の判定処理を行う。変色処理部112は、オブジェクトの色を変色させるための処理を行う。エフェクト処理部114は、オブジェクトのエフェクト処理を行う。これらのイベント判定部110、変色処理部12、エフェクト処理部114の処理の詳細については後述する。
【0062】
画像生成部120は、処理部100で行われる種々の処理(ゲーム処理、シミュレーション処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。具体的には、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、透視変換、或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(プリミティブ面データ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数プリミティブ面)を、描画バッファ179(フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0063】
なお、画像生成部120で行われる描画処理は、頂点シェーダ処理やピクセルシェーダ処理等により実現することができる。
【0064】
例えば頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。
【0065】
またピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャ記憶部176からのテクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ179に出力(描画)する。即ち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0066】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現できる。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0067】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0068】
そして本実施形態ではイベント判定部(ヒット判定部)110は、第1のオブジェクトが第2のオブジェクトに接触する接触イベント(ヒットイベント)の発生を判定する。例えば第1のオブジェクトが第2のオブジェクトに接触してヒットしたか否かを判定する。具体的にはイベント判定部110は、第1のオブジェクトを構成する複数の頂点の代表点と、第2のオブジェクトとの位置関係に基づいて、第1のオブジェクトと第2のオブジェクトの接触イベントが発生したか否かを判定する。例えば第1のオブジェクトの頂点の代表点が、第2のオブジェクトに内包された場合に、第1、第2のオブジェクトの接触イベントが発生したと判定する。
【0069】
ここで第1のオブジェクトは例えばキャラクタなどのモデルオブジェクトである。そして、第2のオブジェクトは、この第1のオブジェクトの接触対象となるオブジェクトであり、例えば水(水面)等の液体(液体面)を表すオブジェクトや、床、壁(床面、壁面)等などの固体物(固体面)を表すオブジェクトである。或いは第2のオブジェクトが、キャラクタなどのモデルオブジェクトであってもよい。なお、第2のオブジェクトは、実際に表示されるオブジェクトであってもよいし、接触イベント判定のために用いられる非表示のオブジェクトであってもよい。また、接触イベントにおける接触は、例えば第1のオブジェクトの表面と第2のオブジェクトの表面の接触であってもよいし、第1のオブジェクトの一部が第2のオブジェクトに入り込むような接触であってもよい。
【0070】
また、第1のオブジェクトの複数の頂点の代表点は、例えば第1のオブジェクトのモーション処理用のスケルトンの関節(関節点)である。即ち、モーションデータ記憶部174には、キャラクタなどの第1のオブジェクトのモーションデータが記憶されており、このモーションデータの再生処理を行うことで、第1のオブジェクトのモーション処理が行われる。そして、このモーション処理においては、第1のオブジェクトのスケルトンの情報が用いられ、スケルトンは、複数の骨(アーク)と、骨の間を接続する関節により構成され、この関節が頂点の代表点として用いられる。但し、代表点は、スケルトンの関節には限定されず、例えば複数の頂点のうちの1つをそれらの頂点の代表点として設定してもよい。
【0071】
また変色処理部112は、第1のオブジェクトと第2のオブジェクトの接触イベントが発生した場合に、第1のオブジェクトに対して設定された変色処理用パラメータを取得(特定)する。そして、取得された変色処理用パラメータに応じた変色処理を、第1のオブジェクトの接触位置に対応する前記第2のオブジェクト上の領域(変色領域)に対して行う。具体的には変色処理部112は、接触イベントが発生した場合に、第1のオブジェクトを構成する複数の頂点のうち、第2のオブジェクトと接触したと判定された頂点に対して設定された変色処理用パラメータに応じた変色処理を、接触位置に対応する第2のオブジェクト上の領域(変色処理領域)に対して行う。また変色処理部112は、例えば第1のオブジェクトの頂点の代表点の位置情報に基づいて、第2のオブジェクト上の変色領域を特定し、特定された変色領域に対して変色処理を行う。例えば第1のオブジェクトの関節等の代表点が第2のオブジェクトと接触(内包)したか否かを判定し、接触(内包)したと判定された場合に、その代表点の位置情報(関節の位置情報)に基づいて、接触位置を特定して、変色領域を設定する。そして、設定された変色領域において第2のオブジェクトの色が変色する変色処理を行う。
【0072】
ここで変色処理用パラメータは、変色処理を行うために使用されるパラメータであり、変色の色(狭義には汚れの色)を表す色パラメータ(例えばRGBの色データ)であってもよいし、変色の度合い(狭義には汚れ度合い)を表す変色度合いパラメータ(汚れ度合いパラメータ)であってもよい。また、第2のオブジェクトの変色処理を行う場合には、第1のオブジェクトの部分のうち、接触位置に対応する部分に設定された変色処理用パラメータを取得する。具体的には、第2のオブジェクトと接触したと判定された頂点(接触位置に対応する部分の頂点)に設定された第1のオブジェクト用の変色処理用パラメータを取得する。そして、取得された第1のオブジェクト用の変色処理用パラメータを用いて、第2のオブジェクトの変色処理(狭義には汚れ処理)を行う。例えば接触位置に対応する第2のオブジェクト上の領域を変色領域に設定して、第2のオブジェクトの変色処理を行う。
【0073】
そして画像生成部120は、第1、第2のオブジェクトを含む複数のオブジェクトが配置設定されるオブジェクト空間において、仮想カメラから見える画像を生成する。即ち、変色処理が施された第1、第2のオブジェクトが表示される画像(ゲーム画像)を生成する。
【0074】
このようにすれば、第1のオブジェクトに設定された変色処理用パラメータを有効利用して、第1のオブジェクトに接触した第2のオブジェクトの変色処理を行うことが可能になる。従って、あたかも第1のオブジェクトの変色の色で、第2のオブジェクトが変色したかのように見える画像表現が可能になり、これまでにないリアルな画像を生成できるようになる。
【0075】
また変色処理部112は、変色処理が行われる第2のオブジェクト上の変色領域の大きさを、時間経過に伴い拡大する処理を行う。例えば第1、第2のオブジェクトの接触位置から(接触位置を中心として)、変色領域が、時間経過に伴い徐々に大きくなるような変色処理を行う。例えば変色処理用パラメータは、第1のオブジェクトの変色処理用のパラメータである。即ち第1のオブジェクトを変色させる処理に使用されるパラメータである。そして変色処理部112は、接触イベントが発生している期間において、変色処理が行われる第2のオブジェクト上の変色領域の大きさを、時間経過に伴い拡大する処理を行うと共に、変色処理用パラメータにより設定される第1のオブジェクトの変色の色を、時間経過に伴い減衰させる処理を行う。具体的には変色処理部112は、接触イベントが発生している期間において、第2のオブジェクトと接触したと判定された頂点の変色処理用パラメータの値を、時間経過に伴い減衰させる処理を行う。これにより、第2のオブジェクトにおいては、第1のオブジェクトが接触したことによる変色の領域が、時間経過に伴い徐々に大きくなる一方で、第1のオブジェクトの変色の色(濃度、輝度)が、時間経過に伴い徐々に減衰する(色が薄くなる)。従って、第1、第2のオブジェクトの接触により、第1のオブジェクトの変色の色が、例えば液体等を表す第2のオブジェクトに徐々に拡散して広がって行くと共に、液体等により第1のオブジェクトの変色の色が洗い流されて行くような画像表現を実現できる。
【0076】
また、エフェクト処理部114は、第1のオブジェクトの接触位置に対応する第2のオブジェクト上の領域に対して、変色処理とは異なるエフェクト処理を行う。具体的には、第2のオブジェクトが、液体(狭義には水)を表すオブジェクトである場合に、エフェクト処理部114は、エフェクト処理として、液体の波紋のエフェクト処理を行う。即ち液体の表面に波紋が生じているように見える画像を生成するためのエフェクト処理を行う。なお、エフェクト処理部114が行うエフェクト処理は、このような波紋のエフェクト処理には限定されず、例えば第1のオブジェクトと第2のオブジェクトの接触により、第2のオブジェクトの表面等に発生させる種々のエフェクト処理を想定できる。例えばエフェクト処理は、床や壁等を表す第2のオブジェクトの地割れやひび割れ等を表現するためのエフェクト処理であってもよい。
【0077】
また変色処理部112が、変色処理が行われる第2のオブジェクト上の変色領域の大きさを、接触位置から時間経過に伴い拡大する処理を行う一方で、エフェクト処理部114も、エフェクト処理が行われる第2のオブジェクト上のエフェクト領域の大きさを、接触位置から時間経過に伴い拡大する処理を行う。このようにすれば、接触イベントの発生後に、第2のオブジェクトの変色領域が、時間経過にしたがって徐々に大きくなると共に、第2のオブジェクトのエフェクト領域(波紋領域等)についても、時間経過にしたがって徐々に大きくなる。即ち、変色領域とエフェクト領域が連動して大きくなるような画像を生成できるようになり、よりリアルで多様な画像表現が可能になる。
【0078】
またエフェクト処理部114は、波紋のエフェクト処理として、液体の屈折率の変化を表すエフェクト処理を行う。例えば液体の屈折率の変化により、液体の内部や奥側に見える物体の画像が歪んで見えるような屈折画像を生成するためのエフェクト処理を行う。或いは、波紋のエフェクト処理として、液体の表面の反射率の変化を表すエフェクト処理を行ってもよい。例えば液体の表面の反射率の変化により、液体の表面に映る物体の画像が歪んで見えるような反射画像を生成するためのエフェクト処理を行う。
【0079】
またテクスチャ記憶部176は、テクスチャマッピングに使用されるテクスチャとして、例えばエフェクト処理用(例えば波紋処理用)のテクスチャを記憶する。
【0080】
そしてエフェクト処理部114は、エフェクト処理用テクスチャの所定チャンネル成分(例えば第1、第2の色成分)に対して設定されたエフェクト処理用パラメータを用いて、第2のオブジェクトのエフェクト処理(波紋処理等)を行う。一方、変色処理部112は、エフェクト処理用テクスチャの所定チャンネル成分とは異なる他のチャンネル成分(例えば第3の色成分)に対して設定された変色処理用パラメータを用いて、第2のオブジェクトの変色処理を行う。
【0081】
具体的には、エフェクト処理部114は、エフェクト処理用テクスチャの所定チャンネル成分(第1、第2の色成分)に対して設定されたエフェクト処理用法線情報パラメータ(法線の第1、第2の座標成分)を用いて、第2のオブジェクトのエフェクト処理を行う。一方、変色処理部112は、エフェクト処理用テクスチャの他のチャンネル成分(第3の色成分)に対して設定された変色処理用パラメータ(単色の色データ)を用いて、第2のオブジェクトの変色処理を行う。
【0082】
このようにすれば、エフェクト処理用テクスチャを有効活用して、第2のオブジェクトのエフェクト処理と第2のオブジェクトの変色処理の両方を実行できるようになる。
【0083】
なお、テクスチャ記憶部176は、エフェクト処理用テクスチャと変色処理用テクスチャを別々に記憶してもよい。この場合にはエフェクト処理部114は、テクスチャ記憶部176のエフェクト処理用テクスチャのチャンネル成分に対して設定されたエフェクト処理用パラメータ(例えば法線情報パラメータ)を用いて、第2のオブジェクトのエフェクト処理を行う。一方、変色処理部112は、変色処理用テクスチャのチャネル成分(例えば第1〜第3の色成分)に対して設定された変色処理用パラメータ(例えばRGBの色データ)を用いて、第2のオブジェクトの変色処理を行う。
【0084】
このようにすれば、エフェクト処理用テクスチャを用いたエフェクト処理を行いながら、変色処理用テクスチャを用いて、単色でない色の変色処理を実現できるようになり、より高品質な画像を生成できるようになる。
【0085】
また、第1のオブジェクトが、ゲームに登場するキャラクタを表すオブジェクトであり、第2のオブジェクトが、液体を表すオブジェクトである場合に、変色処理部112は、キャラクタの変色処理用パラメータに基づいて、キャラクタの表面を変色させる処理を行う。例えばキャラクタの衣服や皮膚が汚れで変色する処理を行う。そして変色処理部112は、キャラクタが液体に浸かる接触イベント(水に浸かるイベント)が発生した場合に、キャラクタの各部分のうち、液体に浸かった部分(頂点)の変色処理用パラメータに基づいて、液体を変色させる処理を行う。
【0086】
このようにすれば、キャラクタに付着した汚れが液体に流れ、これにより液体が汚れて変色するように見える画像を生成できるようになり、これまでにないリアルな画像表現が可能になる。
【0087】
この場合に、変色処理部112は、キャラクタの各部分のうち、液体に浸かった部分については、変色処理用パラメータによる変色の色(濃度、輝度)を、減衰させる処理を行う。このようにすれば、キャラクタに付着した汚れが液体に流れることで、キャラクタの汚れが徐々に無くなり、キャラクタの衣服や皮膚の汚れが液体により洗い流されて行くように見える画像を生成できるようになり、更にリアルな画像表現が可能になる。
【0088】
なお本実施形態の手法はサーバシステムにより実現してもよい。図2にサーバシステムにより実現する場合の構成例を示す。
【0089】
サーバシステム500は、端末装置TM1〜TMnとネットワーク510を介して通信接続される。例えばサーバシステム500はホストであり、端末装置TM1〜TMnはクライアントである。サーバシステム500は例えば1又は複数のサーバ(認証サーバ、ゲームサーバ、通信サーバ、課金サーバ等)により実現できる。ネットワーク510(配信網、通信回線)は、例えばインターネットや無線LAN等を利用した通信路であり、直接接続のための専用線(専用ケーブル)やイーサネット(登録商標)等によるLANの他、電話通信網やケーブル網や無線LAN等の通信網を含むことができる。また通信方法については有線/無線を問わない。
【0090】
端末装置TM1〜TMnは、例えば据え置き型の家庭用ゲーム装置、携帯型ゲーム装置、或いは業務用ゲーム装置等により実現される。据え置き型の家庭用ゲーム装置は、家庭に設置されて使用されることが想定されるゲーム装置であり、業務用ゲーム装置は、ゲーム施設等に設置されて使用されること想定されるゲーム装置である。また携帯型ゲーム装置は専用のゲーム装置であってもよいし、携帯電話機や携帯型情報端末などのゲームプログラムの実行が可能な汎用の装置であってもよい。
【0091】
サーバシステム500は、処理部600、記憶部670、情報記憶媒体680、通信部696を含む。処理部600は、ゲーム演算部602、オブジェクト空間設定部604、移動体演算部606、仮想カメラ制御部608、イベント判定部610、変色処理部612、エフェクト処理部614、画像生成用データ生成部620、音生成用データ生成部630を含む。なおこれらの各部(各ブロック)の機能、動作等は、図1の各部(各ブロック)と同様である。
【0092】
例えばサーバシステム500のイベント判定部610は、第1のオブジェクトが第2のオブジェクトに接触する接触イベントの発生を判定する。変色処理部612は、第1のオブジェクトと第2のオブジェクトの接触イベントが発生した場合に、第1のオブジェクトに対して設定された変色処理用パラメータを取得する。そして、取得された変色処理用パラメータに応じた変色処理を、第1のオブジェクトの接触位置に対応する第2のオブジェクト上の領域に対して行う。また変色処理部612は、変色処理が行われる2のオブジェクト上の変色領域の大きさを、接触位置から時間経過に伴い拡大する処理なども行う。またエフェクト処理部614は、第1のオブジェクトの接触位置に対応する第2のオブジェクト上の領域に対して、変色処理とは異なるエフェクト処理を行う。そして画像生成用データ生成部620は、第1、第2のオブジェクトを含む複数のオブジェクトが配置設定されるオブジェクト空間において、仮想カメラから見える画像を生成するための画像生成用データを生成する。
【0093】
なお、画像を生成するための画像生成用データとは、本実施形態の手法により生成された画像をTM1〜TMnの各端末装置において表示するためのデータであり、画像データそのものであってもよいし、各端末装置が画像を生成するために使用する各種データ(オブジェクトデータ、制御結果データ、判定結果データ又は表示画面の設定データ等)であってもよい。例えばサーバシステム500が、各端末装置の操作部からの操作情報を取得し、各種の制御処理や各種の判定処理を行い、画像を生成して、TM1〜TMnの各端末装置に配信(ストリーム配信等)する場合には、上述の画像生成用データは画像データそのものになる。一方、サーバシステム500が、各端末装置の操作部からの操作情報を取得し、各種の制御処理や各種の判定処理を行い、その制御結果や判定結果に基づいてTM1〜TMnの各端末装置が画像を生成する場合には、上述の画像生成用データは、制御結果データや判定結果データやオブジェクトデータなどになる。音生成用データ生成部630が生成する音生成用データについても同様である。
【0094】
なお、ゲーム演算部602、オブジェクト空間設定部604、移動体演算部606、仮想カメラ制御部608、イベント判定部610、変色処理部612、エフェクト処理部614、画像生成用データ生成部620、音生成用データ生成部630、記憶部670、情報記憶媒体680、通信部696等の詳細な機能、動作は、図1で上述に説明したものと同様であるため、詳細な説明は省略する。
【0095】
2.本実施形態の手法
次に本実施形態の手法について具体的に説明する。
【0096】
2.1 変色処理
まず、本実施形態の変色処理(汚れ処理)の概要について説明する。図3(A)において第1のオブジェクトOB1には変色処理用パラメータが設定されており、この変色処理用パラメータにより第1のオブジェクトOB1の表面が変色する画像が生成されている。変色処理用パラメータとしては、例えば変色の色を表す色パラメータ(RGBデータ)や、変色度合いを表す変色度合いパラメータなどを想定でき、この変色処理用パラメータは、第1のオブジェクトOB1の例えば頂点データとして設定されている。
【0097】
図3(B)では、第1のオブジェクトOB1と第2のオブジェクトOB2の接触イベントが発生している。この接触イベントの発生は、例えば第1のオブジェクトOB1の頂点又は頂点の代表点と第2のオブジェクトOB2との位置関係等に基づいて判定できる。例えば第1のオブジェクトOB1の頂点又は代表点が、第2のオブジェクトOB2の内部に内包されていると判断された場合には、第1のオブジェクトOB1が第2のオブジェクトOB2に接触したと判定できる。
【0098】
そして本実施形態では、このような接触イベントが発生すると、第1のオブジェクトOB1に対して設定された変色処理用パラメータが取得される。例えば第1のオブジェクトOB1の頂点に対して設定された変色処理用パラメータが取得される。そして、取得された変色処理用パラメータに応じた変色処理が、第2のオブジェクトOB2に対して行われる。例えば図3(B)に示すように第1のオブジェクトOB1の接触位置に対応する第2のオブジェクトOB2上の領域(変色領域)に対して、変色処理が行われる。
【0099】
これにより、第2のオブジェクトOB2が変色して汚れる等の画像を生成できるようになる。即ち第1のオブジェクトOB1の変色状態が、第2のオブジェクトOB2に伝わって、第2のオブジェクトOB2が変色する画像を生成できるようになる。
【0100】
そして本実施形態では図4(A)、図4(B)に示すように、変色処理が行われる第2のオブジェクトOB2上の変色領域の大きさが、時間経過に伴い徐々に拡大する。例えば図3(B)の第1、第2のオブジェクトOB1、OB2の接触位置を中心として広がるように、変色領域が徐々に拡大する。
【0101】
そして、このように接触イベントが発生している期間においては、変色処理が行われる第2のオブジェクトOB2上の変色領域の大きさが、時間経過に伴い徐々に拡大すると共に、変色処理用パラメータにより設定される第1のオブジェクトOB1の変色の色は、時間経過に伴い徐々に減衰する。
【0102】
これにより、例えば図4(C)に示すように、接触イベントが終了して、第1のオブジェクトOB1が第2のオブジェクトOB2から離れると、第1のオブジェクトOB1の変色領域での変色の色が減衰して薄くなる画像が生成されるようになる。
【0103】
例えば第1のオブジェクトOB1が、ゲームに登場するキャラクタを表すオブジェクトであり、第2のオブジェクトOB2が、液体を表すオブジェクトであったとする。
【0104】
この場合には本実施形態では図3(A)に示すように、キャラクタ(OB1)の変色処理用パラメータに基づいて、キャラクタの表面が変色して汚れる処理が行われる。
【0105】
次に、図3(B)に示すように、キャラクタ(OB1)が液体(OB2)に浸かる接触イベントが発生すると、キャラクタ(OB1)の各部分のうち、液体に浸かった部分の変色処理用パラメータに基づいて、液体(OB2)を変色させる処理が行われる。これにより、キャラクタの汚れが液体に伝わって、液体が変色して汚れる画像が生成されるようになる。
【0106】
そして図4(A)、図4(B)に示すように、キャラクタの汚れによる液体の変色領域は徐々に拡大する。即ち、キャラクタの汚れによる変色が液体に伝わって、その変色の領域が液体側において徐々に広がって行く。
【0107】
この時に、キャラクタの各部分のうち、液体に浸かった部分については、変色処理用パラメータによる変色の色が、徐々に減衰する。従って、図4(C)に示すように、接触イベントが終了して、キャラクタが液体から出ると、キャラクタの汚れの変色は減衰しており、あたかもキャラクタの汚れが液体により流されたかのように見える画像表現を実現できる。
【0108】
なお、以下では、上述のように第1のオブジェクトがキャラクタを表すオブジェクトであり、第2のオブジェクトが水(液体)を表すオブジェクトであり、キャラクタの汚れが水に落ちて水が汚れるような画像表現に、本実施形態の手法を適用した場合を主に例にとり説明する。但し、本実施形態の第1、第2のオブジェクトや変色処理は、これに限定されるものではなく、種々の変形実施が可能である。例えばキャラクタ(第1のオブジェクト)の汚れ(例えば血のり)が、壁や床(第2のオブジェクト)に付着するような変色処理に本実施形態の手法を適用してもよい。
【0109】
図5(A)〜図8に、本実施形態の手法により生成されたゲーム画像の例を示す。
【0110】
図5(A)では、キャラクタOBC(広義には第1のオブジェクト)が水OBW(広義には第2のオブジェクト)に浸かる接触イベントが発生している。この時、キャラクタOBCは、例えばその頂点に設定された変色処理用パラメータ(汚れ処理用パラメータ)により、その表面に対して汚れ処理(変色処理)が施されており、A1に示すように、キャラクタOBCの衣服や皮膚の汚れが表現されている。
【0111】
図5(B)では水面に浸かっていたキャラクタOBCがヒザを曲げており、A2に示すようにキャラクタOBCの足に付着した汚れが流れて、水OBWが汚れにより変色する画像が生成されている。
【0112】
そして図6(A)のA3、図6(B)のA4、図7(A)のA5では、汚れによる水OBWの変色領域が時間経過に伴い徐々に広がっている。この時、例えば図6(B)のA6では、キャラクタOBCの足に付着していた汚れが、水OBWにより洗い流されている様子が表現されている。
【0113】
図7(B)では、水OBWに浸かっていたキャラクタOBCが立ち上がっている。この時、A7に示すようにキャラクタOBCの背中等に付着していた汚れも、水OBWにより洗い流されている様子が表現されている。
【0114】
図8では、キャラクタOBCが完全に立ち上がっている。そして図5(A)と図8を比較すれば明らかなように、図8では、図5(A)においてキャラクタOBCに付着していた汚れが、水OBWにより完全に洗い流されて、汚れが落ちている様子が表現されている。
【0115】
以上のように本実施形態の手法によれば、第1のオブジェクトであるキャラクタ等の表面の汚れによる変色を表現できるのみならず、この汚れが、第2のオブジェクトである水等に流れて伝わって行く様子を表現できる。即ち、キャラクタの変色処理のために使用した変色処理用パラメータを有効活用して、キャラクタに付着していた汚れが、水に洗い流され、水が汚れて行く様子も表現できるようになる。更に、水に伝わった汚れの領域が時間経過に伴い徐々に広がって行くと共に、水に洗い流されることで、キャラクタの汚れが時間経過に伴い徐々に少なくなって行く様子も表現できる。従って、従来の汚れ処理では表現できなかったリアルな映像表現を実現することができ、プレーヤの仮想現実感を更に向上すること可能になる。
【0116】
2.2 変色処理の詳細
次に本実施形態の変色処理(汚れ処理)の詳細例について説明する。なお本実施形態の変色処理手法は以下に説明する手法に限定されるものではなく、種々の変形実施が可能である。
【0117】
図9(A)に、キャラクタ(広義には第1のオブジェクト)の頂点に設定される頂点データの例を示す。この頂点データは図1の頂点データ記憶部178に記憶される。図9(A)の頂点データでは、各頂点(V1、V2、V3・・・)に対して、その頂点の位置、汚れ色(広義には変色の色)、汚れ度合い(広義には変色度合い)のパラメータが対応づけられて記憶される。
【0118】
ここで、汚れ色パラメータは、汚れの色(RGB)を表すデータである。また、汚れ度合いパラメータは、汚れの程度(変色の程度)を表すパラメータである。例えばキャラクタの各部分においてその色が異なるような汚れを表現する場合には、汚れ処理用パラメータ(広義には変色処理用パラメータ)として、汚れ色パラメータを用いる。一方、キャラクタの各部分で単色の同じ色になる汚れについては、汚れ処理用パラメータとして、汚れ度合いパラメータを用いる。
【0119】
例えば、相手キャラクタ(変色源)から吹きかけられた毒によりキャラクタの衣服や皮膚が汚れるような画像表現を行う場合には、毒の種類(変色源の種類)に依って汚れの色が異なるため、汚れ処理用パラメータとして、汚れ色パラメータを用いる。具体的には、キャラクタのオブジェクトを構成する頂点のうち、毒を吹きかけられた部分の頂点に対して、その毒の種類に応じた色を、汚れ色パラメータとして設定する。こうすることで、相手キャラクタにより毒が吹きかけられた部分が、毒の色により変色して汚れる画像表現を実現できる。
【0120】
また、例えば砂の地面のゲームステージで対戦を行う場合には、砂ぼこりの色を単色の汚れ色として、そのゲームステージに対応づけておく。そして、キャラクタを構成する頂点に設定された汚れ度合いパラメータの大きさに応じて、砂ぼこりの色の濃度(強さ)を変化させる。例えば砂の地面に近いキャラクタの足の部分の頂点に対しては、汚れ度合いパラメータを大きな値に設定する。このようにすれば、キャラクタがそのゲームステージの地面に立つと、地面の砂ぼこりがキャラクタの足に付着したかのように見える汚れ表現を実現できる。また、キャラクタの手等の部位が地面に近づいたと判定された場合には、その手等の部位の頂点に対しては、汚れ度合いパラメータを大きな値に設定する。このようにすれば、キャラクタの手等の部位が地面に近づくことで、地面の砂ぼこりがその部位に付着したかのように見える汚れ表現を実現できる。
【0121】
図9(B)は、頂点データに設定された汚れ色パラメータや汚れ度合いパラメータなどの汚れ処理用パラメータを用いた汚れ画像の生成手法を説明する図である。
【0122】
例えば図9(B)の頂点V1〜V4に対して図9(A)の汚れ色パラメータが設定されていた場合には、頂点V1〜V4の汚れ色パラメータにより表される汚れ色(広義には変色の色)を補間(ラスタライズ)することで、各ピクセルPXの汚れ色を求める。また頂点V1〜V4に対して図9(A)の汚れ度合いパラメータが設定されていた場合には、この汚れ度合いパラメータと、ゲームステージ等に対応づけて設定された設定色(例えば砂ぼこりの色)とに基づいて、各頂点V1〜V4の汚れ色を求める。そして頂点V1〜V4の汚れ色を補間することで、各ピクセルPXの汚れ色を求める。
【0123】
そして、このように頂点の汚れ色の補間により求められた汚れ色と、キャラクタの元絵テクスチャ(衣服や皮膚の色・模様を表すテクスチャ)の色とを、ピクセル単位で合成(例えばαブレンディング)することで、各ピクセルの最終的な色を求める。このようにすることで、キャラクタの衣服や色に汚れが付着した画像を生成できるようになる。なお、頂点データ等を用いた頂点単位での処理は、頂点シェーダにより実現することができ、ピクセル単位での処理は、ピクセルシェーダにより実現することができる。
【0124】
また、本実施形態では、図5(A)〜図8のようにキャラクタの汚れが落ちて水面に広がって行く画像表現を、図9(A)のようにキャラクタの頂点データとして設定される汚れ処理用パラメータ(汚れ色パラメータ、汚れ度合いパラメータ等)を有効利用して実現している。
【0125】
即ち、キャラクタが水に浸る接触イベントが発生した場合に、キャラクタを構成する複数の頂点のうち、水に浸った(水に接触した)と判定された頂点に対して設定された汚れ処理用パラメータに応じた汚れ処理を、キャラクタと水の接触位置に対応する水面上の領域に対して行う。即ち、水に浸ったと判定された頂点から図9(A)の汚れ処理用パラメータを取得して、水面に汚れが落ちて広がる汚れ処理を行う。
【0126】
このようにすれば、図5(A)のA1に示すようにキャラクタの汚れ処理に使用されている汚れ処理用パラメータを有効活用して、キャラクタの汚れが落ちて水面に汚れが広がる汚れ処理についても実現できる。
【0127】
例えば図10(A)に示すように、本実施形態では、キャラクタOBCを構成する複数の頂点の代表点である関節J1、J2、J3と、水(水面)OBWとの位置関係に基づいて、キャラクタOBCが水OBWに浸かる接触イベントが発生したか否かを判定する。即ち水面よりも下に位置する関節(J1、J2)がある場合には、キャラクタは水に浸かっていると判定する。
【0128】
そして本実施形態では、キャラクタの関節(広義には頂点の代表点)の位置情報に基づいて、水面の汚れ領域(変色領域)を特定し、特定された汚れ領域に対して汚れ処理(変色処理)を行う。例えば図10(A)では関節J1、J2が水に浸かっているため、関節J1、J2の位置から汚れを発生させる汚れ処理を行うことになる。
【0129】
図10(B)に、キャラクタの関節に設定される関節データの例を示す。図10(B)の関節データでは、キャラクタの各関節(J1、J2、J3・・・)に対して、その関節の位置、汚れ処理フラグ(FL1、FL2、FL3・・・)が対応づけられている。ここで、汚れ処理フラグは、汚れ処理を行う場合にオン(例えば「1」)に設定されるフラグである。
【0130】
例えば図11(A)では、関節J1は頂点V1〜V8の代表点となっている。例えば頂点V1〜V8に対して距離的に最も近い関節がJ1になっている。そして頂点V1が水面よりも下に位置していると判定されると、頂点V1から、頂点V1に最も近い関節J1に対して、水に浸かっている旨を知らせる通知が行われる。これにより図10(B)の関節J1の汚れ処理フラグFL1がオンになり、関節J1の位置から汚れを発生させる汚れ処理が開始される。即ち、関節J1の位置(XJ1、YJ1、ZJ1)に基づいて、水面上で汚れを発生させる位置を特定し、特定された位置から、図5(A)〜図7(B)に示すように汚れが徐々に広がって行く様子を表現する汚れ処理が実行される。具体的には、後述するように、関節J1の位置から、汚れ処理に使用されるテクスチャ(波紋処理用テクスチャ、汚れ処理用テクスチャ)上での汚れ発生位置を特定する。そして、特定された汚れ発生位置から汚れが徐々に広がって行く様子を表すテクスチャの書き換え処理(汚れ処理用パラメータの書き換え処理)を行うことで、汚れ処理が実現される。
【0131】
そしてこの場合に、図11(B)に示すように、水に浸かったと判定された頂点V1の汚れの色(濃度、輝度)を徐々に減衰させる処理が行われる。即ち、接触イベントが発生している期間において、水と接触したと判定されたキャラクタの頂点の汚れ処理用パラメータの値を、時間経過に伴い減衰させる処理を行う。例えば図11(B)ではキャラクタの頂点V1の汚れ色パラメータとして、(R1、G1、B1)のRGBデータが設定されている。そして、頂点V1が水に浸かっていると判定されると、その時点から、汚れ色パラメータのRGBデータであるR1、G1、B1の値が、図11(B)に示すように徐々に小さくなって減衰して行く。
【0132】
このようにすれば、キャラクタが水に浸かることで、あたかも水に浸かった部分の汚れが流れ落ちて綺麗になって行く映像表現を実現することができ、従来の汚れ処理では実現できなかったリアルな画像を生成できるようになる。
【0133】
なお図12に、キャラクタ等を表すモデルオブジェクトMOBのスケルトンの情報であるモーションデータの例を示す。図12に示すように、モデルオブジェクトMOBは、複数のパーツオブジェクトPB0〜PB15により構成される。そして、これらのパーツオブジェクト(部位)の位置や回転角度(方向)は、モデルオブジェクトMOBのスケルトンモデルを構成する骨B0〜B19の位置(関節J0〜J15の位置)や回転角度(親の骨に対する子の骨の相対的な回転角度)により特定される。なお、これらの骨、関節は仮想的なものであり、現実に表示されるオブジェクトではない。
【0134】
モデルオブジェクトMOBのスケルトンを構成する骨(モーション骨、関節、パーツオブジェクト)は、親子(階層)構造を有している。例えば、手の骨B7、B11の親は前腕の骨B6、B10になり、B6、B10の親は上腕の骨B5、B9になり、B5、B9の親は肩の骨B4、B8になる。足、脛(すね)、大腿、腰、胸、頭の骨も同様である。
【0135】
図1のモーションデータ記憶部174には、これらの骨(パーツオブジェクト、関節)の位置、回転角度が、モーションデータとして記憶されている。なお骨の回転角度だけをモーションデータに含ませて、骨(アーク)の位置(関節の位置)についてはモデルオブジェクトのモデルデータの中に含ませてもよい。
【0136】
例えば、歩きモーションが、M0、M1、M2・・・・MNという基準モーション(各フレームでのモーション)により構成されているとする。するとこれらの各基準モーションM0、M1、M2・・・・MNでの各骨の位置又は回転角度が、モーションデータとして予め記憶されている。そして、例えば基準モーションM0の各骨(各パーツオブジェクト)の位置、回転角度を読み出し、次に基準モーションM1の各骨の位置、回転角度を読み出すというように、基準モーションのモーションデータを時間経過に伴い順次読み出すことで、モーション処理(モーション再生)が実現される。
【0137】
なお、モーションデータ記憶部174に記憶するモーションデータは、一般的には、モーションキャプチャにより取得したり、デザイナが作成する。またモーションデータは、親の骨の位置、回転角度に対する子の骨の相対的な位置、相対的な回転角度(3軸周りの回転角度)で表される。具体的には、親の骨に対する子の骨のX軸、Y軸、Z軸回りの回転角度(相対的な回転角度)が、モーションデータとして記憶される。なお親の骨に対する子の骨の相対的な位置(相対距離)は、例えばモデルオブジェクト(キャラクタ)のモデルデータに含ませてもよい。
【0138】
本実施形態では、キャラクタ(第1のオブジェクト)の複数の頂点の代表点として、図12に示されるようなキャラクタのモーション処理用のスケルトンの関節を採用している。このようにすれば、モーションデータのスケルトンの関節を有効利用して、接触判定処理や水面の汚れ処理等を実現することが可能になり、処理を効率化できる。
【0139】
例えば、キャラクタの全ての頂点を、汚れの発生点に設定して汚れ処理を行うと、汚れ処理の処理負荷が重くなってしまうおそれがある。
【0140】
この点、頂点ではなくて、頂点の代表点である関節を汚れの発生点に設定して汚れ処理を行えば、関節の数は頂点の数よりも格段に少ないため、汚れ処理の処理負荷を低減することができ、処理の効率化を図れるようになる。
【0141】
2.3 汚れ処理、波紋処理
次に、本実施形態の水面の汚れ処理や波紋処理の具体例について、図13(A)〜図17を用いて詳細に説明する。
【0142】
本実施形態では、キャラクタの接触位置に対応する水面上の領域に対して、汚れ処理(変色処理)とは異なるエフェクト処理を行っている。具体的には、エフェクト処理として、水面(液体)の波紋を表現するエフェクト処理を行っている。例えば図6(A)において、キャラクタが水に浸ると、水に浸った位置(接触位置)を中心に、A3に示すように汚れが広がると共に、キャラクタが水に入ることにより生じる波紋(水の波)についても広がる処理を行う。具体的には、キャラクタが水に浸った位置から、汚れ領域の大きさが時間経過に伴い徐々に広がると共に、波紋のエフェクト領域の大きさについても時間経過に伴い徐々に広がるような画像表現を行う。このようにすれば、キャラクタが水に浸かると、水に浸かった部分から汚れと波紋の両方が広がるような画像を生成することができ、よりリアルな画像を生成できるようになる。
【0143】
具体的には本実施形態では図13(A)に示すような波紋処理用テクスチャ(広義にはエフェクト処理用テクスチャ)が用意され、図1のテクスチャ記憶部176に記憶される。この波紋処理用テクスチャでは、例えばそのR成分、B成分(広義には所定のチャンネル成分)に対して、水(第2のオブジェクト)のエフェクト処理用のパラメータが設定される。具体的には、波紋処理用テクスチャのR成分、B成分に対して、水の波紋処理用法線情報パラメータ(エフェクト処理用法線情報パラメータ)が設定され、この波紋処理用法線情報パラメータを用いて、波紋のエフェクト処理が行われる。
【0144】
一方、図13(A)に示すように、波紋処理用テクスチャでは、例えばそのG成分(広義には所定チャンネル成分とは異なる他のチャンネル成分)に対して、水の汚れ処理用パラメータ(変色処理用パラメータ)が設定される。そして、この汚れ処理用パラメータを用いて、水の汚れ処理(変色処理)が行われる。例えば、濃い汚れについては、G成分に設定される汚れ処理用パラメータを大きな値に設定することで表現し、薄い汚れについては、G成分に設定される汚れ処理用パラメータを小さな値に設定することで表現する。
【0145】
このようにすれば、水の波紋を表現するための波紋処理用テクスチャを有効活用して、水の汚れ処理についても実現できるようになり、テクスチャの使用記憶容量の節約等を図れる。
【0146】
なお図13(B)に示すように、波紋処理用テクスチャ(エフェクト処理用テクスチャ)と汚れ処理用テクスチャ(変色処理用テクスチャ)の両方を用意して、テクスチャ記憶部176に記憶するようにしてもよい。
【0147】
この場合には、波紋処理用テクスチャ(エフェクト処理用テクスチャ)のチャンネル成分(例えばR、G、B成分の少なくとも2つのチャンネル成分)に対して、水の波紋処理用パラメータ(エフェクト処理用パラメータ)を設定する。具体的には波紋処理用の法線情報パラメータを設定して、水の波紋処理(エフェクト処理)を行う。
【0148】
一方、図13(B)に示すように、汚れ処理用テクスチャ(変色処理用テクスチャ)のチャネル成分(例えばR、G、B成分)に対して、水の汚れ処理用パラメータ(変色処理用パラメータ)を設定する。具体的には、水の汚れ色パラメータを設定して、水の汚れ処理(変色処理)を行う。
【0149】
例えば図13(A)の手法では、テクスチャの使用記憶容量は節約できるものの、汚れ色として1つの色成分しか使用できないため、単色の汚れしか表現できないという不利点がある。例えば図6(A)のA3において、全面が黒色や赤色等の単色になる汚れ画像しか生成できない。
【0150】
これに対して図13(B)の手法では、汚れ処理用テクスチャが別途必要になるものの、汚れ色として複数の色成分を使用できるため、単色ではない汚れも表現できるようになる。例えば図6(A)のA3において、水面の各場所において色が異なるような汚れ画像も生成できるようになる。従って、多様な汚れ画像を生成することができ、多彩な画像表現を実現できるようになる。
【0151】
図13(A)、図13(B)に示すような波紋処理用テクスチャや汚れ処理用テクスチャを用いれば、図14に示すような波紋や汚れのアニメーション処理を実現できる。即ち図14では、波紋処理が行われるエフェクト領域の大きさが、B1に示すキャラクタと水の接触位置(キャラクタの足等の部位が水に浸かった位置)から、時間経過に伴い徐々に拡大している。また汚れ処理が行われる領域の大きさも、B2に示すキャラクタと水の接触位置から、時間経過に伴い徐々に拡大している。これは、図13(A)、図13(B)に示すような波紋処理用テクスチャや汚れ処理用テクスチャのテクセル値を時間経過に伴い書き換えるテクスチャアニメーション処理を行うことで実現できる。即ち、波紋については図14のB1の位置から同心円状に波紋が広がるようなテクセル値の書き換え処理を行うことで、波紋が徐々に広がる画像を生成できる。また汚れ色については、図14のB2の位置を中心にして汚れが広がるようなテクセル値の書き換え処理を行うことで、汚れが徐々に広がる画像を生成できる。
【0152】
ここで、図14のB1、B2に示す波紋や汚れの発生位置は、図10(A)、図10(B)で説明した関節(広義には頂点の代表点)の位置情報に基づき特定する。例えばキャラクタの足が水に浸かった場合には、その足の関節の位置により、図14のB1、B2に示す波紋や汚れのテクスチャ上での発生位置を特定する。そして特定された発生位置を中心に波紋や汚れが広がって行くテクスチャのアニメーション処理を行う。このようにすることで、水に浸かったキャラクタの足の関節に対応する位置から波紋や汚れが広がって行くような処理が可能になる。従って、あたかも、キャラクタの足が水に浸かることで波紋が周囲に広がると共に、キャラクタの足等の汚れが水で流れ落ちて周囲に広がるような画像表現が可能になり、よりリアルで仮想現実感の高い画像を生成できるようになる。
【0153】
なお、以上では、水面の汚れ処理として、汚れ色パラメータを用いる場合について主に説明したが、本実施形態はこれに限定されない。例えば水面のピクセルシェーダー等により、各ピクセルでの汚れ度合いパラメータを取得し、取得された汚れ度合いパラメータに基づいて、水面の透明度(α値)を変化させたり、水面の色を変化させることで、汚れ処理を実現してもよい。
【0154】
図15(A)、図15(B)に、図13(A)の波紋処理用テクスチャのR成分、B成分に設定される法線情報パラメータの例を示す。図15(A)、図15(B)では、R成分、B成分の各成分の数値範囲は0.0〜1.0となっており、R成分を法線(法線ベクトル)のX成分に対応させ、B成分を法線のZ成分に対応させる。そして図15(A)の法線N1のX成分(R成分)、Z成分(B成分)は(0.5、0.5)となり、この場合には法線N1は図15(A)において上向きの法線になる。また法線N2のX成分、Z成分は(1.0、0.5)となり、この場合には法線N2は図15(A)において右向きの法線になる。また法線N3のX成分、Z成分は(0.0、0.5)となり、この場合には法線N3は図15(A)において左向きの法線になる。図15(B)の法線N4、N5についても同様である。
【0155】
本実施形態では、このような法線情報パラメータを用いて、水(液体)の屈折率の変化を表すエフェクト処理等を行うことで、波紋のエフェクト処理を実現している。
【0156】
例えば図16(A)では、キャラクタOBCの足が水OBWに浸かっている。この場合には図16(A)のC1、C2に示す位置を、キャラクタOBCの足の関節の位置から特定し、このC1、C2から波紋や汚れが広がる画像を生成する。
【0157】
具体的には、図16(A)の場面を仮想カメラの視点(プレーヤの視点)で見た画像でとして、図16(B)に示すような画像を生成する。そして、生成された図16(B)の画像を、図13(A)〜図15(B)で説明した波紋処理用テクスチャの法線情報パラメータを用いて歪ませる画像処理を行うことで、水(液体)の屈折率が変化したかのように見える屈折画像を生成する。
【0158】
例えば図16(B)の画像を屈折画像のテクスチャとし、水面を表すオブジェクト(1又は複数のポリゴンにより構成されるオブジェクト)にマッピングする。その際に、屈折画像のテクスチャの参照位置であるテクスチャ座標(U、V座標)を、図15(A)、図15(B)で説明した波紋処理用テクスチャの法線情報パラメータを用いて変動させることで、水(液体)の屈折率が変化したかのように見える画像を生成する。
【0159】
例えば図17は、このような水の屈折率を変化させるエフェクト処理により生成された画像の例である。図17のD1、D2では、法線情報パラメータによりテクスチャの参照位置が変動することで、水面の下の足が、波紋による水の屈折率の変化により歪んだかのように見える画像を生成できるようになる。
【0160】
また図16(C)は、図16(B)の画像等を、水面のラインを基準に上下に反転させた画像である。そして図16(C)の画像を、波紋処理用テクスチャの法線情報パラメータを用いて歪ませる画像処理を行うことで、水(液体)の反射率が変化したかのように見える反射画像を生成する。
【0161】
例えば図16(C)の画像を反射画像のテクスチャとし、水面を表すオブジェクトにマッピングする。その際に、反射画像のテクスチャの参照位置であるテクスチャ座標(U、V座標)を、波紋処理用テクスチャの法線情報パラメータを用いて変動させることで、水の反射率が変化したかのように見える画像を生成する。このようにすれば、水面に映る反射画像(例えば、キャラクタの、水に浸かってない部分が水面に反射した画像)が、波紋による水の反射率の変化により歪んだかのように見える画像を生成できるようになる。
【0162】
以上のようにすることで、本実施形態によれば、キャラクタの足等が水に浸かることで、足等についた汚れが水面に広がると共に、足等が浸かることによる波紋についても水面に広がるような画像を生成できるようになる。従って、従来の汚れ処理では実現できなかった画像表現を実現することが可能になり、高品質で仮想現実感の高い画像の生成が可能になる。
【0163】
2.4 詳細な処理例
次に本実施形態の詳細な処理例について図18〜図20のフローチャートを用いて説明する。図18は、図10(A)、図10(B)等で説明した関節の処理についてのフローチャートである。
【0164】
まず、キャラクタの全ての関節を処理したか否かを判断し(ステップS1)、全ての関節を処理した場合には、関節の処理を終了する。一方、全ての関節を処理していない場合には、未処理関節を選択する(ステップS2)。そして、選択された関節の汚れ処理フラグをクリア(例えば「0」)する(ステップS3)。この汚れ処理フラグは図10(B)で説明したフラグであり、後述する図19のステップS15でオン(例えば「1」)にされるフラグである。そして、図10(A)で説明したように、選択された関節の位置が、水に浸っているか否かを判断する(ステップS4)。そして、水に浸かっている場合には、選択された関節を汚れ処理対象関節として登録する(ステップS5)。即ち図1の記憶部170に登録して保存する。
【0165】
図19は、図9(A)、図9(B)、図11(A)、図11(B)等で説明した頂点の処理についてのフローチャートである。
【0166】
まず、キャラクタの全ての頂点を処理したか否かを判断し(ステップS11)、全ての頂点を処理した場合には、頂点の処理を終了する。一方、全ての頂点を処理していない場合には、未処理の頂点を選択する(ステップS12)。そして、選択された頂点の変色処理用パラメータである汚れ色パラメータを取得する(ステップS13)。即ち、図9(A)において頂点データとして設定された汚れ色パラメータを取得する。
【0167】
次に、選択された頂点は汚れで変色しているか否かを、取得された汚れ色パラメータに基づいて判断する(ステップS14)。例えば、汚れ色パラ−メータのR、G、B成分の少なくとも1つの成分が0よりも大きかった場合(所定しきい値よりも大きかった場合)には、その頂点は汚れで変色していると判断される。そして、汚れで変色していると判断された場合には、選択された頂点に最も近い汚れ処理対象関節(図18のステップS5で登録された関節)を検索して、汚れ処理フラグをオンにする(ステップS15)。
【0168】
例えば図11(A)において、頂点V1の汚れ色パラメータに基づいて、頂点V1が汚れで変色されたと判断されたとする。また関節J1が、汚れ処理対象関節として登録されていたとする。この場合には、頂点V1に最も近い関節であるJ1が検索されて、この関節J1の汚れ処理フラグ(図10(B)参照)がオン(例えば「1」)に設定される。この汚れ処理フラグは、例えばフレームの更新ごとに前述の図18のステップS3に示すようにクリアされる。そして、当該関節が汚れ処理対象関節として登録されて、当該関節の近くの頂点が汚れで変色していると判定されると、図19のステップS5に示すように当該関節の汚れ処理フラグはオンになり、当該関節から汚れが発生する汚れ処理が行われるようになる。
【0169】
次に、図11(B)で説明したように、選択された頂点の汚れ色パラメータの汚れ色を減衰させる処理を行う(ステップS16)。例えば汚れ色パラメータのR、G、B成分を一定値ずつ減衰させる処理を行う。これにより、キャラクタの汚れが落ちて水に流れたかのように見える画像を生成できるようになる。
【0170】
図20は、波紋処理用テクスチャを用いた波紋処理や汚れ処理の詳細例を示すフローチャートである。
【0171】
まず、フレーム更新か否かを判断する(ステップS21)。そして、フレーム更新のタイミングであると判断された場合には、図13(A)〜図14で説明したように、波紋処理用テクスチャのR、B成分である法線情報パラメータのアニメーション処理を行って、波紋領域を拡大させる処理を行う(ステップS22)。また、波紋処理用テクスチャのG成分である汚れ色パラメータのアニメーション処理を行って、汚れ領域を拡大させる処理を行う(ステップS23)。
【0172】
次に、図16(A)〜図17で説明したように、ステップS22でアニメーション処理が行われた法線情報パラメータに基づいて、水面の屈折画像と反射画像を生成する(ステップS24)。また、ステップS23でアニメーション処理を行われた汚れ色パラメータに基づいて、水面の汚れ画像を生成する(ステップS25)。そして、生成された水面の屈折画像、反射画像、汚れ画像を水面オブジェクトにマッピングする(ステップS26)。例えばこれらの屈折画像、反射画像、汚れ画像を、所与のα値でαブレンドする画像合成を行う。このようにすることで、キャラクタの水に浸かった部分から波紋と汚れが広がるような水面の画像を生成できるようになる。
【0173】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語(変色処理、エフェクト処理、第1のオブジェクト、第2のオブジェクト等)と共に記載された用語(汚れ処理、波紋処理、キャラクタ、水等)は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、第1、第2のオブジェクトの接触イベントの判定処理、オブジェクトの変色処理、オブジェクトのエフェクト処理等も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【符号の説明】
【0174】
OB1 第1のオブジェクト、OB2 第2のオブジェクト、OBC キャラクタ、
OBW 水、J1〜J3 関節、V1〜V8 頂点、
100 処理部、102 ゲーム演算部、104 オブジェクト空間設定部、
106 移動体演算部、108 仮想カメラ制御部、110 イベント判定部、
112 変色処理部、114 エフェクト処理部、
120 画像生成部、130 音生成部、160 操作部、
170 記憶部、172 オブジェクトデータ記憶部、
174 モーションデータ記憶部、176 テクスチャ記憶部、
178 頂点データ記憶部、179 描画バッファ、
180 情報記憶媒体、190 表示部、192 音出力部、194 補助記憶装置、
196 通信部、
500 サーバシステム、510 ネットワーク、TM1〜TMn 端末装置、
600 処理部、602 ゲーム演算部、604 オブジェクト空間設定部、
606 移動体演算部、608 仮想カメラ制御部、610 イベント判定部、
612 変色処理部、614 エフェクト処理部、
620 画像生成用データ生成部、630 音生成用データ生成部

【特許請求の範囲】
【請求項1】
第1のオブジェクトが第2のオブジェクトに接触する接触イベントの発生を判定するイベント判定部と、
前記第1のオブジェクトと前記第2のオブジェクトの前記接触イベントが発生した場合に、前記第1のオブジェクトに対して設定された変色処理用パラメータを取得し、取得された前記変色処理用パラメータに応じた変色処理を、前記第1のオブジェクトの接触位置に対応する前記第2のオブジェクト上の領域に対して行う変色処理部と、
前記第1、第2のオブジェクトを含む複数のオブジェクトが配置設定されるオブジェクト空間において、仮想カメラから見える画像を生成する画像生成部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項2】
請求項1において、
前記変色処理部は、
前記変色処理が行われる前記第2のオブジェクト上の変色領域の大きさを、前記接触位置から時間経過に伴い拡大する処理を行うことを特徴とするプログラム。
【請求項3】
請求項2において、
前記変色処理用パラメータは、前記第1のオブジェクトの変色処理用のパラメータであり、
前記変色処理部は、
前記接触イベントが発生している期間において、前記変色処理が行われる前記第2のオブジェクト上の前記変色領域の大きさを、時間経過に伴い拡大する処理を行うと共に、前記変色処理用パラメータにより設定される前記第1のオブジェクトの変色の色を、時間経過に伴い減衰させる処理を行うこと特徴とするプログラム。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記変色処理部は、
前記接触イベントが発生した場合に、前記第1のオブジェクトを構成する複数の頂点のうち、前記第2のオブジェクトと接触したと判定された頂点に対して設定された前記変色処理用パラメータに応じた変色処理を、前記接触位置に対応する前記第2のオブジェクト上の領域に対して行うことを特徴とするプログラム。
【請求項5】
請求項4において、
前記イベント判定部は、
前記第1のオブジェクトを構成する複数の頂点の代表点と前記第2のオブジェクトとの位置関係に基づいて、前記第1のオブジェクトと前記第2のオブジェクトの前記接触イベントが発生したか否かを判定することを特徴とするプログラム。
【請求項6】
請求項4又は5において、
前記変色処理部は、
前記第1のオブジェクトを構成する複数の頂点の代表点の位置情報に基づいて、前記第2のオブジェクト上の変色領域を特定し、特定された前記変色領域に対して前記変色処理を行うことを特徴とするプログラム。
【請求項7】
請求項5又は6において、
前記第1のオブジェクトの前記複数の頂点の前記代表点は、前記第1のオブジェクトのモーション処理用のスケルトンの関節であることを特徴とするプログラム。
【請求項8】
請求項4乃至7のいずれかにおいて、
前記変色処理部は、
前記接触イベントが発生している期間において、前記第2のオブジェクトと接触したと判定された頂点の前記変色処理用パラメータの値を、時間経過に伴い減衰させる処理を行うこと特徴とするプログラム。
【請求項9】
請求項1乃至8のいずれかにおいて、
前記第1のオブジェクトの前記接触位置に対応する前記第2のオブジェクト上の領域に対して、前記変色処理とは異なるエフェクト処理を行うエフェクト処理部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項10】
請求項9において、
前記変色処理部は、
前記変色処理が行われる前記第2のオブジェクト上の変色領域の大きさを、前記接触位置から時間経過に伴い拡大する処理を行い、
前記エフェクト処理部は、
前記エフェクト処理が行われる前記第2のオブジェクト上のエフェクト領域の大きさを、前記接触位置から時間経過に伴い拡大する処理を行うことを特徴とするプログラム。
【請求項11】
請求項9又は10において、
前記第2のオブジェクトは、液体を表すオブジェクトであり、
前記エフェクト処理部は、
前記エフェクト処理として、前記液体の波紋のエフェクト処理を行うことを特徴とするプログラム。
【請求項12】
請求項11において、
前記エフェクト処理部は、
前記波紋のエフェクト処理として、前記液体の屈折率の変化を表すエフェクト処理を行うことを特徴とするプログラム。
【請求項13】
請求項9乃至12のいずれかにおいて、
エフェクト処理用テクスチャを記憶するテクスチャ記憶部として、
コンピュータを機能させ、
前記エフェクト処理部は、
前記エフェクト処理用テクスチャの所定チャンネル成分に対して設定されるエフェクト処理用パラメータを用いて、前記第2のオブジェクトの前記エフェクト処理を行い、
前記変色処理部は、
前記エフェクト処理用テクスチャの前記所定チャンネル成分とは異なる他のチャンネル成分に対して設定される変色処理用パラメータを用いて、前記第2のオブジェクトの前記変色処理を行うことを特徴とするプログラム。
【請求項14】
請求項13おいて、
前記エフェクト処理部は、
前記エフェクト処理用テクスチャの前記所定チャンネル成分に対して設定されるエフェクト処理用法線情報パラメータを用いて、前記第2のオブジェクトの前記エフェクト処理を行うことを特徴とするプログラム。
【請求項15】
請求項9乃至12のいずれかにおいて、
エフェクト処理用テクスチャと変色処理用テクスチャを記憶するテクスチャ記憶部として、
コンピュータを機能させ、
前記エフェクト処理部は、
前記エフェクト処理用テクスチャのチャンネル成分に対して設定されるエフェクト処理用パラメータを用いて、前記第2のオブジェクトの前記エフェクト処理を行い、
前記変色処理部は、
前記変色処理用テクスチャのチャネル成分に対して設定される変色処理用パラメータを用いて、前記第2のオブジェクトの前記変色処理を行うことを特徴とするプログラム。
【請求項16】
請求項1乃至15のいずれかにおいて、
前記第1のオブジェクトは、ゲームに登場するキャラクタを表すオブジェクトであり、前記第2のオブジェクトは、液体を表すオブジェクトであり、
前記変色処理部は、
前記キャラクタの前記変色処理用パラメータに基づいて、前記キャラクタの表面を変色させる処理を行うと共に、
前記キャラクタが前記液体に浸かる前記接触イベントが発生した場合に、前記キャラクタの各部分のうち、前記液体に浸かった部分の前記変色処理用パラメータに基づいて、前記液体を変色させる処理を行うことを特徴とするプログラム。
【請求項17】
請求項16において、
前記変色処理部は、
前記キャラクタの各部分のうち、前記液体に浸かった部分については、前記変色処理用パラメータによる変色の色を、減衰させる処理を行うことを特徴とするプログラム。
【請求項18】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至17のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項19】
第1のオブジェクトが第2のオブジェクトに接触する接触イベントの発生を判定するイベント判定部と、
前記第1のオブジェクトと前記第2のオブジェクトの前記接触イベントが発生した場合に、前記第1のオブジェクトに対して設定された変色処理用パラメータを取得し、取得された前記変色処理用パラメータに応じた変色処理を、前記第1のオブジェクトの接触位置に対応する前記第2のオブジェクト上の領域に対して行う変色処理部と、
前記第1、第2のオブジェクトを含む複数のオブジェクトが配置設定されるオブジェクト空間において、仮想カメラから見える画像を生成する画像生成部と、
を含むことを特徴とする画像生成システム。
【請求項20】
第1のオブジェクトが第2のオブジェクトに接触する接触イベントの発生を判定するイベント判定部と、
前記第1のオブジェクトと前記第2のオブジェクトの前記接触イベントが発生した場合に、前記第1のオブジェクトに対して設定された変色処理用パラメータを取得し、取得された前記変色処理用パラメータに応じた変色処理を、前記第1のオブジェクトの接触位置に対応する前記第2のオブジェクト上の領域に対して行う変色処理部と、
前記第1、第2のオブジェクトを含む複数のオブジェクトが配置設定されるオブジェクト空間において、仮想カメラから見える画像を生成するための画像生成用データを生成する画像生成用データ生成部と、
を含むことを特徴とするサーバシステム。

【図1】
image rotate

【図2】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図17】
image rotate


【公開番号】特開2012−234441(P2012−234441A)
【公開日】平成24年11月29日(2012.11.29)
【国際特許分類】
【出願番号】特願2011−103730(P2011−103730)
【出願日】平成23年5月6日(2011.5.6)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】