説明

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

【課題】リアルなしわ表現を簡素な処理で実現できるプログラム等の提供。
【解決手段】画像生成システムは、しわ表現のための少なくとも1つの制御点が設定されるモデルオブジェクトのモーション処理を行うモーション処理部と、モーション変化によりその位置が変化する制御点の位置を求める制御点演算部と、モデルオブジェクトの表面のしわを表現するための複数のしわ表現テクスチャを記憶するテクスチャ記憶部と、制御点に基づいて複数のしわ表現テクスチャの合成パラメータを求めるパラメータ演算部と、合成パラメータにより複数のしわ表現テクスチャを合成し、合成テクスチャをモデルオブジェクトにマッピングすることで、しわ画像を生成する画像生成部を含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【0002】
従来より、キャラクタ、車などのオブジェクトが配置設定されるオブジェクト空間内(仮想的な3次元空間)において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。サッカーゲームを楽しめる画像生成システムを例にとれば、プレーヤは、スクリーン上に映し出されたキャラクタを操作し、ドリブルをしたりシュートをしたりしてゲームを楽しむ。
【0003】
このような画像生成システムでは、生成される画像のリアル性への要求が、年々、高まっている。従って、キャラクタの衣服や肌のしわについても、リアルに表現できることが望ましい。
【特許文献1】特開平11−144084号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、リアルなしわ表現を簡素な処理で実現できるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【0005】
本発明は、画像を生成する画像生成システムであって、しわ表現のための少なくとも1つの制御点が設定されるモデルオブジェクトのモーション処理を行うモーション処理部と、モデルオブジェクトのモーションの変化によりその位置が変化する前記制御点の位置を求める制御点演算部と、モデルオブジェクトの表面のしわを表現するためのテクスチャであって、そのテクスチャパターンが異なる複数のしわ表現テクスチャを記憶するテクスチャ記憶部と、前記制御点に基づいて、複数のしわ表現テクスチャの合成パラメータを求めるパラメータ演算部と、求められた前記合成パラメータにより複数のしわ表現テクスチャを合成し、得られた合成テクスチャをモデルオブジェクトにマッピングすることで、モデルオブジェクトのしわ画像を生成する画像生成部とを含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【0006】
本発明によれば、モデルオブジェクトのモーションの変化により、モデルオブジェクトに設定される制御点の位置が変化する。そして、このような制御点に基づいて合成パラメータが求められ、合成パラメータに基づいて複数のしわ表現テクスチャが合成され、得られた合成テクスチャがモデルオブジェクトにマッピングされる。従って本発明によれば、モデルオブジェクトのモーション変化に連動して合成パラメータが変化し、合成テクスチャも変化するようになる。従って、モデルオブジェクトのモーション変化に連動して、しわ画像も変化するようになり、リアルなしわ表現を簡素な処理で実現できる。
【0007】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記制御点演算部は、前記モーション処理に使用される座標変換マトリクスを用いた座標変換により、前記制御点の位置を求め、前記パラメータ演算部は、座標変換により求められた前記制御点の位置に基づいて、前記合成パラメータを求めるようにしてもよい。
【0008】
このようにモーション処理用の座標変換マトリクスを有効活用すれば、モーション変化により変化する制御点の位置を、簡素な処理で求めることができる。
【0009】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記制御点演算部は、座標変換マトリクスを用いた座標変換により、前記制御点のワールド座標系での位置を求め、前記パラメータ演算部は、前記制御点のワールド座標系での位置に基づいて、前記合成パラメータを求めるようにしてもよい。
【0010】
このようにすれば、ワールド座標系での制御点についての位置関係や方向関係により、合成パラメータを求めることが可能になる。
【0011】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記制御点演算部は、モデルオブジェクトのスケルトンが複数の骨及び複数の関節により構成される場合に、座標変換マトリクスを用いた座標変換により、前記複数の関節のうちの所与の関節に対する前記制御点の相対的な位置を求め、前記パラメータ演算部は、前記所与の関節に対する前記制御点の相対的な位置に基づいて、前記合成パラメータを求めるようにしてもよい。
【0012】
このようにすれば、制御点の相対的な位置の変化に連動して、合成パラメータを変化させて、しわ画像を変化させることが可能になり、よりリアルなしわ画像を生成できる。
【0013】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、モデルオブジェクトに対してしわ表現のための第1、第2の制御点が設定され、前記パラメータ演算部は、前記第1、第2の制御点の位置に基づいて、前記合成パラメータを求めるようにしてもよい。
【0014】
このようにすれば、第1の制御点の位置の変化の仕方と第2の制御点の位置の変化の仕方の違い応じて、合成パラメータが変化して、生成されるしわ画像も変化するようになり、多様なしわ画像の生成が可能になる。
【0015】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記パラメータ演算部は、前記第1の制御点と他の制御点又は基準点との第1の距離と、前記第2の制御点と他の制御点又は基準点との第2の距離を求め、求められた前記第1、第2の距離に基づいて前記合成パラメータを求めるようにしてもよい。
【0016】
このようにすれば、第1、第2の制御点と他の制御点又は基準点との第1、第2の距離を求めるという簡素な処理で、合成パラメータを求めて、しわ画像を生成できるようになる。
【0017】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記パラメータ演算部は、前記第1、第2の距離の比に応じて変化する前記合成パラメータを求めるようにしてもよい。
【0018】
このようにすれば、第1、第2の距離の比の変化により、合成パラメータを変化させて、しわ画像を生成できるようになる。
【0019】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、モデルオブジェクトのスケルトンが複数の骨及び複数の関節により構成される場合に、前記複数の関節のうちの所与の関節の前側に前側制御点が設定され、前記所与の関節の後ろ側に後ろ側制御点が設定され、前記制御点演算部は、モデルオブジェクトのモーションの変化によりその位置が変化する前記前側制御点の位置と前記後ろ側制御点の位置を求め、前記パラメータ演算部は、前記前側制御点に基づいて第1の合成パラメータを求め、前記後ろ側制御点に基づいて第2の合成パラメータを求め、前記画像生成部は、求められた前記第1の合成パラメータにより複数のしわ表現テクスチャを合成し、得られた合成テクスチャをモデルオブジェクトの前側面にマッピングすることで、モデルオブジェクトの前側面におけるしわ画像を生成し、求められた前記第2の合成パラメータにより複数のしわ表現テクスチャを合成し、得られた合成テクスチャをモデルオブジェクトの後ろ側面にマッピングすることで、モデルオブジェクトの後ろ側面におけるしわ画像を生成するようにしてもよい。
【0020】
このようにすれば、モデルオブジェクトの前側面におけるしわの変化の仕方と、モデルオブジェクトの後ろ側面におけるしわの変化の仕方を異ならせることが可能になり、より多様でリアルなしわ画像の生成が可能になる。
【0021】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記しわ表現テクスチャのテクセル値をフェッチするためのテクスチャ座標を設定するテクスチャ座標設定部を含み(テクスチャ座標設定部としてコンピュータを機能させ)、前記テクスチャ記憶部は、前記しわ表現テクスチャを、第1、第2、第3のテクスチャ座標でテクセル値がフェッチされるボリュームテクスチャとして記憶し、前記テクスチャ座標設定部は、前記合成パラメータに基づいて、ボリュームテクスチャの前記第3のテクスチャ座標を設定し、前記画像生成部は、前記第1、第2、第3のテクスチャ座標に基づいて、しわ表現テクスチャをボリュームテクスチャとしてモデルオブジェクトにマッピングする処理を行うようにしてもよい。
【0022】
このようにすれば、ボリュームテクスチャ機能を有効活用して、合成テクスチャのマッピング処理が行われるため、処理負荷の軽減や処理の高速化を図れる。
【0023】
また本発明は、画像を生成する画像生成システムであって、モデルオブジェクトの表面のしわを表現するためのテクスチャであって、そのテクスチャパターンが異なる複数のしわ表現テクスチャを記憶するテクスチャ記憶部と、前記しわ表現テクスチャのテクセル値をフェッチするためのテクスチャ座標を設定するテクスチャ座標設定部と、複数のしわ表現テクスチャの合成パラメータを求めるパラメータ演算部と、モデルオブジェクトのしわ画像を生成する画像生成部とを含み、前記テクスチャ記憶部は、前記しわ表現テクスチャを、第1、第2、第3のテクスチャ座標でテクセル値がフェッチされるボリュームテクスチャとして記憶し、前記テクスチャ座標設定部は、前記合成パラメータに基づいて、ボリュームテクスチャの前記第3のテクスチャ座標を設定し、前記画像生成部は、前記第1、第2、第3のテクスチャ座標に基づいて、しわ表現テクスチャをボリュームテクスチャとしてモデルオブジェクトにマッピングする処理を行う画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【0024】
本発明によれば、合成パラメータに基づいて複数のしわ表現テクスチャが合成され、得られた合成テクスチャがモデルオブジェクトにマッピングされる。またボリュームテクスチャの機能を有効活用して、合成テクスチャのマッピング処理が行われる。従って、処理負荷の軽減や処理の簡素化を実現しながら、リアルなしわ画像の生成が可能になる。
【発明を実施するための最良の形態】
【0025】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0026】
1.構成
図1に本実施形態の画像生成システム(ゲームシステム)の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0027】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、アクセル、ブレーキ、或いはタッチパネル型ディスプレイなどにより実現できる。記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0028】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、ハードディスク、或いはメモリ(ROM等)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体180には、本実施形態の各部としてコンピュータ(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
【0029】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0030】
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などがある。通信部196は外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0031】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)は、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180(あるいは記憶部170)に配信してもよい。このようなホスト装置(サーバー)による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【0032】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。処理部100は記憶部170(主記憶部172)をワーク領域として各種処理を行う。この処理部100の機能は、各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0033】
処理部100は、ゲーム演算部108、オブジェクト空間設定部110、移動処理部112、モーション処理部113、仮想カメラ制御部114、制御点演算部116、パラメータ演算部118、テクスチャ座標設定部119、画像生成部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
【0034】
ゲーム演算部108はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、移動体やマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【0035】
オブジェクト空間設定部110は、モデルオブジェクト(車、人、ロボット等)、コース(道路)、マップ(地形)、建物、樹木、壁などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部170のモデルデータ記憶部176には、移動体(キャラクタ)等のモデルデータが記憶されている。そしてオブジェクト空間設定部110は、このモデルデータを用いてオブジェクト空間へのオブジェクトの設定(配置)処理を行う。
【0036】
移動処理部112は、モデルオブジェクト(キャラクタ、ロボット、車又は戦車等の移動)を移動させるための演算を行う。即ち操作部160によりプレーヤが入力した操作データや、プログラム(移動アルゴリズム)や、各種データなどに基づいて、モデルオブジェクトをオブジェクト空間内で移動させる処理を行う。具体的には、モデルオブジェクトの移動情報(位置、回転角度、速度、或いは加速度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、移動処理やモーション処理や画像生成処理を行う時間の単位である。
【0037】
モーション処理部113は、モデルオブジェクト(キャラクタ)にモーション(アニメーション)を行わせるモーション処理(モーション再生、モーション生成)を行う。このモーション処理は、モデルオブジェクトのモーションを、モーションデータ記憶部179に記憶されているモーションデータに基づいて再生することなどで実現できる。
【0038】
具体的にはモーションデータ記憶部179には、モデルオブジェクトのスケルトンを構成する各骨(モデルオブジェクトを構成するパーツオブジェクト、関節、モーション骨)の位置又は回転角度(親の骨に対する子の骨の3軸周りの回転角度)等を含むモーションデータが記憶されている。モーション処理部113は、このモーションデータをモーションデータ記憶部179から読み出し、読み出されたモーションデータに基づいてモデルオブジェクトのスケルトンを構成する各骨(パーツオブジェクト)を動かすことで(スケルトン形状を変形させることで)、モデルオブジェクトのモーションを再生する。
【0039】
なお、モーションデータ記憶部179に記憶されるモーションデータは、現実世界の人にセンサをつけてモーションキャプチャを行うことで作成できるが、モーションデータを、物理シミュレーション(物理計算を利用したシミュレーション。擬似的な物理計算でもよい)やモーションブレンドなどによりリアルタイムに生成してもよい。また、少ないモーションデータ量でリアルなモーションを再生するために、インバース・キネマティクス等を用いてモーション再生を行ってもよい。
【0040】
仮想カメラ制御部114は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置、視線方向あるいは画角を制御する処理)を行う。
【0041】
例えば仮想カメラにより車、キャラクタなどのモデルオブジェクト(移動体)を後方から撮影する場合には、モデルオブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動処理部112で得られたモデルオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【0042】
制御点演算部116は、しわ表現のための制御点の演算処理を行う。即ち本実施形態ではモデルオブジェクトに対して少なくとも1つの制御点が設定される。この制御点はモデルオブジェクトのスケルトンの関節そのものであってもよいし、関節から所与の距離だけ離れた位置に設定されて関節の動きに追従する点であってもよい。本実施形態では、モーション処理部113のモーション処理によりモデルオブジェクトのモーションがフレーム毎に変化する。そして制御点演算部116は、モデルオブジェクトのモーションの変化に連動してその位置が変化する制御点の位置を求める演算を行う。
【0043】
例えば制御点演算部116は、モーション処理に使用される座標変換マトリクス(モーションマトリクス)を用いた座標変換により、制御点の位置を求める。例えば座標変換マトリクスを用いた座標変換により、制御点をローカル座標系からワールド座標系に変換し、ワールド座標系での制御点の位置を求める。或いは、モデルオブジェクトのスケルトンが複数の骨及び複数の関節により構成される場合に、座標変換マトリクスを用いた座標変換により、関節に対する制御点の位置(相対的な位置)を求める。また、関節の前側に前側制御点が設定され、関節の後ろ側に後ろ側制御点が設定される場合に、制御点演算部116は、モデルオブジェクトのモーションの変化によりその位置が変化する前側制御点の位置と後ろ側制御点の位置を求める。
【0044】
パラメータ演算部118は、画像処理やゲーム処理に用いる各種のパラメータを演算する。例えば本実施形態ではテクスチャ記憶部178がしわ表現テクスチャを記憶する。具体的には、モデルオブジェクトの表面のしわを表現するためのテクスチャであって、そのテクスチャパターンが異なる複数のしわ表現テクスチャを記憶する。そしてパラメータ演算部118は、制御点に基づいて、複数のしわ表現テクスチャの合成パラメータを求める。
【0045】
例えばパラメータ演算部118は、座標変換マトリクスを用いた座標変換により求められた制御点の位置に基づいて、合成パラメータを求める。具体的には、座標変換マトリクスを用いた座標変換により、制御点のワールド座標系での位置が求められた場合には、制御点のワールド座標系での位置に基づいて、合成パラメータを求める。或いは、関節に対する制御点の相対的な位置に基づいて、合成パラメータを求める。またモデルオブジェクトに対してしわ表現のための第1、第2の制御点が設定された場合には、これらの第1、第2の制御点に基づいて、合成パラメータを求める。具体的には、第1の制御点と他の制御点(関節)又は基準点(モデルオブジェクトの代表点)との第1の距離(第1の距離パラメータ)と、第2の制御点と他の制御点又は基準点との第2の距離(第2の距離パラメータ)を求め、求められた第1、第2の距離に基づいて合成パラメータを求める。例えば第1、第2の距離そのものに基づいて合成パラメータを求めたり、第1、第2の距離パラメータを引数とする関数の値に基づいて合成パラメータを求める。また、例えば第1、第2の距離の比に応じて変化する合成パラメータを求めることができる。或いは制御点演算部116が、前側制御点の位置と後ろ側制御点の位置を求めた場合には、パラメータ演算部118は、前側制御点に基づいて第1の合成パラメータを求め、後ろ側制御点に基づいて第2の合成パラメータを求める。なお制御点間を結ぶ第1、第2の直線のなす角度に基づいて合成パラメータを求めてもよい。
【0046】
テクスチャ座標設定部(テクスチャ座標演算部)119は、テクスチャ座標の設定処理(演算処理)を行う。即ちしわ表現テクスチャのテクセル値をフェッチするためのテクスチャ座標の設定処理を行う。例えばテクスチャ記憶部178は、しわ表現テクスチャを、第1、第2、第3のテクスチャ座標(U、V、W座標)でテクセル値がフェッチされるボリュームテクスチャとして記憶する。別の言い方をすれば、しわ表現テクスチャをボリュームテクスチャの設定モードで記憶する。この場合にテクスチャ座標設定部119は、パラメータ演算部118で求められた合成パラメータに基づいて、ボリュームテクスチャの第3のテクスチャ座標(W座標)を設定する。なお第1、第2のテクスチャ座標については、モデルオブジェクトの頂点に設定されるU、V座標を用いることができる。
【0047】
画像生成部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まずモデル(オブジェクト)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むモデルデータが入力され、入力されたモデルデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0048】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。
【0049】
ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたモデルの描画色を描画バッファ174(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。即ち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0050】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0051】
画像生成部120は、オブジェクトを描画する際にジオメトリ処理、隠面消去処理、αブレンディング、テクスチャマッピング処理等を行う。
【0052】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のモデルデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ、法線ベクトル、或いはα値等)は、記憶部170に保存される。
【0053】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理がある。即ちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファ(描画バッファのZプレーン)に格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0054】
αブレンディング(α合成)は、α値(A値)に基づいて行う処理であり、通常αブレンディング、加算αブレンディング或いは減算αブレンディングなどがある。なおα値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、半透明度(透明度、不透明度と等価)情報、マスク情報、或いはバンプ情報などとして使用できる。
【0055】
テクスチャマッピング(テクスチャフェッチ、テクスチャサンプリング)処理は、テクスチャ記憶部178に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングする処理である。具体的には、オブジェクト(プリミティブ面)の頂点等に設定(付与)されるテクスチャ座標等を用いてテクスチャ記憶部178からテクスチャ(色、α値などの表面プロパティ)を読み出す。そして、2次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間(広義にはテクセル補間)などを行う。
【0056】
そして本実施形態では画像生成部120が、パラメータ演算部118により求められた合成パラメータにより、複数のしわ表現テクスチャを合成し、得られた合成テクスチャをモデルオブジェクト(服、肌)にマッピングすることで、モデルオブジェクトのしわ画像(しわ表現画像)を生成する。例えばパラメータ演算部118が前側制御点用の第1の合成パラメータと後ろ側制御点用の第2の合成パラメータを求めた場合には、求められた第1の合成パラメータにより複数のしわ表現テクスチャを合成し、合成テクスチャをモデルオブジェクトの前側面にマッピングすることで、モデルオブジェクトの前側面におけるしわ画像を生成する。また求められた第2の合成パラメータにより複数のしわ表現テクスチャを合成し、得られた合成テクスチャをモデルオブジェクトの後ろ側面にマッピングすることで、モデルオブジェクトの後ろ側面におけるしわ画像を生成する。なお前側面用のしわ表現テクスチャと後ろ側面用のしわ表現テクスチャを、異なるパターンのテクスチャにしてもよい。またテクスチャ座標設定部119がボリュームテクスチャのための第1、第2、第3のテクスチャ座標を設定した場合には、画像生成部120は、第1、第2、第3のテクスチャ座標に基づいて、しわ表現テクスチャをボリュームテクスチャ(合成テクスチャ)としてモデルオブジェクトにマッピングする処理を行う。
【0057】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0058】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
【0059】
2.本実施形態の手法
2.1 モーション処理
本実施形態では図2に示すように、モデルオブジェクトMOB(キャラクタ)が、複数のパーツオブジェクト(腰12、胸14、首16、頭18、右上腕20、右前腕22、右手24、左上腕26、左前腕28、左手30、右股32、右すね34、右足36、左股38、左すね40、左足42)により構成されている。そして、これらのパーツオブジェクト(部位)の位置や回転角度(方向)は、スケルトンモデルを構成する骨B0〜B19の位置(関節J0〜J15の位置)や回転角度(親の骨に対する子の骨の相対的な回転角度)により特定される。なお、これらの骨、関節は仮想的なものであり、現実に表示されるオブジェクトではない。
【0060】
本実施形態では、モデルオブジェクトMOBのスケルトンを構成する骨(モーション骨、関節、パーツオブジェクト)が親子(階層)構造を有している。例えば、手24、30の骨B7、B11の親は前腕22、28の骨B6、B10となり、B6、B10の親は上腕20、26の骨B5、B9となる。また、B5、B9の親は胸14の骨B1となり、B1の親は腰12の骨B0となる。また、足36、42の骨B15、B19の親はすね34、40の骨B14、B18となり、B14、B18の親は股32、38の骨B13、B17となり、B13、B17の親は腰12の骨B12、B16となる。
【0061】
モーションデータ記憶部179には、これらの骨(パーツオブジェクト、関節)の位置、回転角度が、モーションデータとして記憶されている。なお骨の回転角度だけをモーションデータに含ませて、骨の位置(関節の位置)についてはモデルオブジェクトのモデルデータの中に含ませてもよい。
【0062】
例えば、歩きモーションが、M0、M1、M2・・・・MNという基準モーション(各フレームでのモーション)により構成されているとする。するとこれらの各基準モーションM0、M1、M2・・・・MNでの各骨の位置又は回転角度が、モーションデータとして予め記憶されている。そして、例えば基準モーションM0の各パーツオブジェクトの位置、回転角度を読み出し、次に基準モーションM1の各パーツオブジェクトの位置、回転角度を読み出すというように、基準モーションのモーションデータを時間経過に伴い順次読み出すことで、モーション処理(モーション再生)が実現される。
【0063】
なお、モーションデータ記憶部179に記憶するモーションデータは、一般的には、モーションキャプチャにより取得したり、デザイナが作成する。またモーションデータは、親の骨の位置、回転角度に対する子の骨の相対的な位置、相対的な回転角度(3軸周りの回転角度)で表される。具体的には図3に示すように、親の骨BMPに対する子の骨BMCの、X軸、Y軸、Z軸回りの回転角度α、β、γが、モーションデータとして記憶される。
【0064】
また、図2においてRPはモデルオブジェクトMOBの代表点であり、このRPは例えば腰(J0)の真下の位置(高さ零の位置)に設定されている。また図2の骨B1〜B19以外にも、モーション骨によるモデルオブジェクトの変形を補助する補助骨を設けてもよい。
【0065】
2.2 しわ表現テクスチャの合成によるしわ画像の生成
本実施形態では図4に示すように、モデルオブジェクト(キャラクタ)の表面(衣服、肌等)のしわ(表面がたるんで、細かに縮み、筋目ができたもの)を表現するための複数のしわ表現テクスチャTEX1、TEX2を用意する。これらのしわ表現テクスチャTEX1、TEX2は、そのテクスチャパターンが異なっている。本実施形態では、パラメータ演算部118により求められた合成パラメータによりしわ表現テクスチャTEX1、TEX2を合成し、得られた合成テクスチャTEX12をモデルオブジェクトにマッピングすることで、モデルオブジェクトのしわ画像を生成する。例えば合成パラメータをAとすると、合成テクスチャはTEX12=A×TEX1+(1−A)×TEX2と表すことができる。なお合成テクスチャの生成手法は、このような式で表される手法に限定されない。例えばTEX1の合成率(ブレンド率)とTEX2の合成率(ブレンド率)を独立に制御するなどの種々の変形実施が可能である。
【0066】
本実施形態では、しわ表現のための少なくとも1つの制御点がモデルオブジェクトに設定される。例えば図4では、モデルオブジェクトの右肩付近(関節J4)に制御点C1が設定され、左肩付近に制御点C2(関節J7)が設定される。また左腰付近に制御点C3が設定され、右腰付近に制御点C4が設定される。
【0067】
そして本実施形態では、制御点C1〜C4に基づいて、しわ表現テクスチャTEX1、TEX2の合成パラメータAを求める。例えばモーション処理に使用される座標変換マトリクスを用いた座標変換により、制御点C1〜C4の位置(例えばワールド座標系での位置)を求め、求められた位置に基づいて、合成パラメータAを求める。
【0068】
なお、各骨の座標変換マトリクスは、スケルトンを構成する各骨(各パーツオブジェクト)の回転マトリクスと平行移動ベクトルのマトリクスにより得ることができる。ここで回転マトリクス(行列)は、例えば図3で説明したX軸、Y軸、Z軸回りでの回転角度α、β、γ(ロール角)などを用いてその成分が表されるマトリクスである。また平行移動ベクトルのマトリクスは、例えば各骨の位置を表すためのマトリクスである。これらの回転マトリクスと平行移動ベクトルのマトリクスにより得られる座標変換マトリクスを用いることで、各骨に追従するパーツオブジェクトの頂点ローカル座標を、ワールド座標に変換することができる。
【0069】
図4では、しわ表現のための制御点C1、C2(第1、第2の制御点)が設定され、これらの制御点C1、C2の位置に基づいて、合成パラメータAが求められる。即ち制御点C1(第1の制御点)と他の制御点C3(或いは基準点)との距離L1(第1の距離)と、制御点C2(第2の制御点)と他の制御点C4(或いは基準点)との距離L2(第2の距離)が求められる。そして求められた距離L1、L2に基づいて合成パラメータAが求められる。例えばF(L1、L2)を、L1、L2を引数とする関数とした場合に、合成パラメータはA=F(L1、L2)と表すことができる。このA=F(L1、L2)により、合成テクスチャTEX12は、例えばTEX12=A×TEX1+(1−A)×TEX2などの式により求めることができる。
【0070】
例えば図5(A)(B)では、モデルオブジェクトのモーションの変化により、制御点C1、C2等の位置が変化している。
【0071】
そして図5(A)では、制御点C1、C3間の距離L1の方が、制御点C2、C4間の距離L2よりも短くなっている。この場合には例えば合成パラメータAを大きくして、しわ表現テクスチャTEX1の合成率(ブレンド率)の方がしわ表現テクスチャTEX2の合成率よりも大きくなるようにする。こうすれば、しわ表現テクスチャTEX2に比べて、しわ表現テクスチャTEX1のしわの方が強く表現されたしわ画像が生成されるようになる。
【0072】
また図5(B)では、制御点C2、C4間の距離L2の方が、制御点C1、C3間の距離L1よりも短くなっている。この場合には例えば合成パラメータAを小さくして、しわ表現テクスチャTEX2の合成率の方がしわ表現テクスチャTEX1の合成率よりも大きくなるようにする。こうすれば、しわ表現テクスチャTEX1に比べて、しわ表現テクスチャTEX2のしわの方が強く表現されたしわ画像が生成されるようになる。
【0073】
本実施形態では制御点C1、C2等の位置が、モデルオブジェクトのモーション変化に連動して変化し、制御点間の距離L1、L2も変化する。例えばフィールド上を走るモデルオブジェクト(キャラクタ)の右肩が前に行き、左肩が後ろに行くと、図5(A)に示すように距離L1が短くなり、距離L2が長くなる。すると合成パラメータAが大きくなり(TEX1の合成率が大きくなり)、しわ表現テクスチャTEX1の方のしわが強く表現されたしわ画像が生成される。その後、フィールド上を走るモデルオブジェクトのモーションが変化し、モデルオブジェクトの左肩が前に行き、右肩が後ろに行くと、図5(B)に示すように距離L2が短くなり、距離L1が長くなる。すると合成パラメータAが小さくなり(TEX2の合成率が小さくなり)、しわ表現テクスチャTEX2の方のしわが強く表現されたしわ画像が生成される。
【0074】
このように、モデルオブジェクトの右肩と左肩が交互に前に出るというようにモーションが変化すると、それに連動して合成パラメータAが変化し、しわ表現テクスチャTEX1、TEX2の影響度も交互に強くなり、しわのアニメーション表現が行われる。従って、あたかもモデルオブジェクトのモーション変化に連動して、モデルオブジェクトの服のしわが変化しているかのように見える画像を生成できる。従って、リアルなしわ表現を簡素な処理で実現できる。
【0075】
図6にしわ表現テクスチャTEX1の例を示し、図7にしわ表現テクスチャTEX2の例を示す。図6のしわ表現テクスチャTEX1は、例えば図5(A)のように距離L1が短い場合のしわ画像を表すテクスチャである。図7のしわ表現テクスチャTEX2は、例えば図5(B)のように距離L2が短い場合のしわ画像を表すテクスチャである。このようにテクスチャパターンが異なるテクスチャTEX1、TEX2の画像が、モデルオブジェクトの服の表面に交互に表れることで、しわのアニメーション表現が実現される。なお、本実施形態において用意するしわ表現テクスチャは2つに限定されず、3つ以上であってもよく、これらの3つ以上のしわ表現テクスチャを合成してマッピングしてもよい。
【0076】
図8に本実施形態により生成されるゲーム画像の例を示し、図9にしわ部分の拡大図を示す。図8、図9ではサッカー選手を表すモデルオブジェクトのシャツの表面のしわが表現されている。例えば図8のようにモデルオブジェクトの右肩が前に行き、左肩が後ろに行くと、図5(A)に示すように距離L1が短くなり、距離L2が長くなる。すると合成パラメータAが大きくなり、図6のしわ表現テクスチャTEX1のしわの方が強く表現されたしわ画像が生成される。その後、モデルオブジェクトの左肩が前に行き、右肩が後ろに行くと、図5(B)に示すように距離L1が短くなり、距離L2が長くなり、図7のしわ表現テクスチャTEX2のしわの方が強く表現されたしわ画像が生成される。従って、モデルオブジェクトの走りモーションに連動してしわパターンが変化する様子を表現できる。
【0077】
なお合成パラメータAについては種々の演算手法が可能である。例えば図10では、合成パラメータAは、距離L1、L2を引数とする関数F(L1、L2)で表されている。具体的には合成パラメータAは、距離L1、L2の比に応じて変化するパラメータとなっている。即ち合成パラメータAは、H1(L1)/{H1(L1)+H2(L2)}を引数とする関数Gで表すことができる。ここで、関数H1はL1を引数とする関数であり、関数H2はL2を引数とする関数である。例えば合成パラメータは、A=L1/(L1+L2)と表すことができる。
【0078】
具体的には、距離L1=L2の場合には、合成パラメータはA=0.5になる。従って、この場合には図6のしわ表現テクスチャTEX1と図7のしわ表現テクスチャTEX2が1対1の割合で合成された合成テクスチャTEX12が生成されて、モデルオブジェクトの前側面にマッピングされる。
【0079】
またL1max、L1minを距離L1の最大値、最小値とし、L2max、L2minを距離L2の最大値、最小値としたとする。すると、L1=L1min、L2=L2maxの場合に、合成パラメータはA=1.0になる。従って、図6のしわ表現テクスチャTEX1が合成テクスチャTEX12として、モデルオブジェクトにマッピングされるようになる。またL1=L1max、L2=L2minの場合に、合成パラメータはA=0になる。従って、図7のしわ表現テクスチャTEX2が合成テクスチャTEX12として、モデルオブジェクトにマッピングされるようになる。なお合成パラメータAの演算手法は図10に限定されず、種々の変形実施が可能である。
【0080】
また図4ではモデルオブジェクトに対して4つの制御点C1〜C4が設定されているが、図11(A)に示すように2つの制御点C1、C2だけを設定したり、1つの制御点だけを設定するようにしてもよい。図11(A)では制御点C1と基準点BPとの距離がL1になり、制御点C2と基準点BPとの距離がL2になる。この基準点BPは、制御点C1についての距離L1や、制御点C2についての距離L2を設定するための基準となる点である。この基準点BPとしては、図2の関節J1(或いはJ0)の点や、関節J1から所与の距離だけ離れた点(例えばキャラクタのおへそ)などを用いることができる。
【0081】
また基準点BPの位置に、しわ表現のための制御点C3を設定し、制御点C1、C3間の距離をL1とし、制御点C2、C3間の距離をL2として、距離L1、L2により合成パラメータAを求めてもよい。
【0082】
また、距離L1、L2ではなく、制御点C1と基準点BP(又は他の制御点)を結ぶ直線SL1と、制御点C2と基準点BP(又は他の制御点)を結ぶ直線SL2とのなす角度θに基づいて、合成パラメータAを求めてもよい。
【0083】
またモデルオブジェクトのスケルトンが複数の骨及び複数の関節により構成される場合に、座標変換マトリクスを用いた座標変換により、複数の関節のうちの所与の関節に対する制御点の相対的な位置を求め、この相対的な位置に基づいて、合成パラメータAを求めてもよい。
【0084】
例えば図11(B)において、関節J3は、図2の頭18のパーツオブジェクトの関節であり、親の骨B2に対する、子の骨B3のなす角度(図3のα、β、γ)を変化させることで、頭18の動き(傾き)が制御される。そして図11(C)の骨B20、B21は、眉毛51、52の動きを制御するための骨である。即ち親の骨B2に対する子の骨B20、B21のなす角度(図3のα、β、γ)を制御することで、眉毛51、52の動きが制御される。
【0085】
そして図11(B)では、眉毛51、52の位置(例えば眉毛の関節位置)に制御点CB1、CB2が設定されている。そして、例えば骨B2に対する骨B20のなす角度(モーションデータ)により求められる座標変換マトリクスを用いた座標変換により、関節J3に対する制御点CB1の相対的な位置が求められる。即ち関節J3を原点とするローカル座標系での制御点CB1の位置が求められる。また骨B2に対する骨B20のなす角度(モーションデータ)により求められる座標変換マトリクスを用いた座標変換により、関節J3に対する制御点CB2の相対的な位置が求められる。即ち関節J3を原点とするローカル座標系での制御点CB2の位置が求められる。
【0086】
そして、求められた制御点CB1、CB2の相対的な位置に基づいて、しわ表現テクスチャの合成パラメータAが求められる。例えば、関節J3を原点とするローカル座標系での制御点CB1、CB2のX座標、Y座標又はZ座標の少なくとも1つに基づいて、合成パラメータAが求められる。
【0087】
図12に図11(B)の手法で生成される画像の例を示す。図11(B)の手法によれば、図12のモデルオブジェクト(キャラクタ)の顔の表情の変化により眉毛の位置が動くと、それに伴い眉毛の周りのしわ画像も変化するようになる。即ち図8、図9のシャツのしわと同様の皮膚のしわが、眉毛の周りに表れ、そのしわの画像が、眉毛の位置の変化(骨B20、B21の変化)に連動して変化するようになる。これにより、顔の表情が更にリアルに表現されるようになり、プレーヤの仮想現実感を向上できる。
【0088】
2.3 前側、後ろ側制御点
本実施形態では、モデルオブジェクトの前側(正面側)と後ろ側(背面側)に制御点を設定し、これらの制御点により第1、第2の合成パラメータを独立に制御してもよい。
【0089】
例えば図13(A)(B)では、モデルオブジェクトのスケルトンを構成する複数の関節のうちの関節J3(右肩の関節)の前側に、前側制御点CF1が設定され、関節J3の後ろ側に後ろ側制御点CB1が設定される。即ち関節J3に対して前側にオフセットした位置に制御点CF1が設定(配置)され、後ろ側にオフセットした位置に制御点CB1が設定(配置)される。
【0090】
また図13(C)(D)では、関節J7(左肩の関節)の前側に、前側制御点CF2が設定され、関節J7の後ろ側に後ろ側制御点CB2が設定される。即ち関節J7に対して前側にオフセットした位置に制御点CF2が設定(配置)され、後ろ側にオフセットした位置に制御点CB2が設定(配置)される。
【0091】
そして制御点演算部116は、モデルオブジェクトのモーションの変化によりその位置が変化する前側制御点CF1、CF2の位置と、後ろ側制御点CB1、CB2の位置を求める。
【0092】
またパラメータ演算部118は、図14(A)に示すように前側制御点CF1、CF2等に基づいて第1の合成パラメータAFを求める。また図14(B)に示すように、後ろ側制御点CB1、CB2等に基づいて第2の合成パラメータABを求める。
【0093】
そして画像生成部120は、求められた合成パラメータAFによりしわ表現テクスチャTEX1、TEX2を合成し、得られた合成テクスチャTEXF12をモデルオブジェクトの前側面にマッピングすることで、モデルオブジェクトの前側面におけるしわ画像を生成する。また、求められた合成パラメータABによりしわ表現テクスチャTEX1、TEX2を合成し、得られた合成テクスチャTEXB12をモデルオブジェクトの後ろ側面にマッピングすることで、モデルオブジェクトの後ろ側面におけるしわ画像を生成する。
【0094】
例えば図14(A)では、前側制御点CF1、CF3間の距離LF1と、前側制御点CF2、CF4間の距離LF2が求められる。そしてこれらの距離LF1、LF2を関数とする合成パラメータAF=F(LF1、LF2)が求められる。この合成パラメータAFは例えば距離LF1、LF2の比に応じて変化するパラメータである。なお図11(A)の手法と同様に、前側制御点CF1と基準点BPとの距離をLF1とし、前側制御点CF2と基準点BPとの距離をLF2としてもよい。
【0095】
また図14(B)では、後ろ側制御点CB1、CB3間の距離LB1と、後ろ側制御点CB2、CB4間の距離LB2が求められる。そしてこれらの距離LB1、LB2を関数とする合成パラメータAB=F(LB1、LB2)が求められる。この合成パラメータABは例えば距離LB1、LB2の比に応じて変化するパラメータである。なお図11(A)の手法と同様に、後ろ側制御点CB1と基準点BPとの距離をLB1とし、後ろ側制御点CB2と基準点BPとの距離をLB2としてもよい。
【0096】
図14(A)の合成パラメータAFに基づき得られた合成テクスチャTEXF12を、モデルオブジェクトの前側面にマッピングすると共に、図14(B)の合成パラメータABに基づき得られた合成テクスチャTEXB12を、モデルオブジェクトの後ろ側面にマッピングすれば、モデルオブジェクトの前側面と後ろ側面とで、生成されるしわ画像が異なったものになり、よりリアルな画像を生成できる。
【0097】
例えば図8のようにモデルオブジェクトの右肩が前に出た場合、モデルオブジェクトの前側面においては、右肩の前側制御点CF1と左腰の前側制御点CF3の距離LF1は短くなり、左肩の前側制御点CF2と右腰の前側制御点CF4の距離LF2は長くなる。従って、モデルオブジェクトの前側面では、しわ表現テクスチャTEX1が強く表現されたしわ画像が生成されるようになる。一方、モデルオブジェクトの後ろ側面においては、右肩の後ろ側制御点CB1と左腰の後ろ側制御点CB3の距離LB1は長くなり、左肩の後ろ制御点CB2と右腰の後ろ側制御点CB4の間の距離LB2は短くなる。従って、モデルオブジェクトの後ろ側面では、しわ表現テクスチャTEX2が強く表現されたしわ画像が生成される。
【0098】
この結果、モデルオブジェクトの前側面と後ろ側面とで、生成されるしわ画像が異なるようになる。従って、よりリアルな画像を生成でき、プレーヤの仮想現実感を更に向上できる。
【0099】
2.4 ボリュームテクスチャ
画像生成システム(ゲーム装置)においては、ボリュームテクスチャ(3次元テクスチャ)と呼ばれるテクスチャマッピング機能がサポートされている場合がある。ここでボリュームテクスチャとは、ポリゴンやラインなどの2次元のプリミティブの描画に使用できるテクセルの3次元の集まりである。ボリュームテクスチャ(立体テクスチャ)で処理されるプリミティブの各頂点には、3要素のテクスチャ座標(U、V、W)が必要になる。このボリュームテクスチャをマッピングしてプリミティブを描画すると、各プリミティブのピクセルには、従来の2次元テクスチャの場合と同じような規則に従って、ボリュームテクスチャのテクセル値(色値)が設定される。このボリュームテクスチャは、フォグや爆発などの特殊効果を表現するために用意されたものである。このボリュームテクスチャは、幅×高さの2次元サーフェスがスタックされて、幅×高さ×奥行きのボリュームを構成するテクスチャと考えることもできる。なお、ボリュームテクスチャはミップレベルを持つことができ、各ミップレベルの大きさは、直前のミップレベルの半分の大きさにカットされる。
【0100】
ボリュームテクスチャのテクセル値を参照するためには、図15に示すように3つのテクスチャ座標U、V、W(第1、第2、第3のテクスチャ座標)が必要になる。即ちテクスチャ座標設定部119は、しわ表現テクスチャのテクセル値をフェッチするためのテクスチャ座標U、V、Wを設定する。
【0101】
具体的には、各頂点に対して、3つのテクスチャ座標U、V、Wを有するカスタム頂点型を指定して、頂点バッファを作成し、頂点のデータを設定する。そして、ポリゴンなどのプリミティブを描画する前に現在のテクスチャをボリュームテクスチャに設定して、プリミティブを描画する。なお、テクスチャ座標U、Vは、通常の2次元テクスチャのテクセル値をフェッチ(サンプリング)するためのテクスチャ座標に相当する。
【0102】
本実施形態では、しわ表現テクスチャTEX1、TEX2の合成パラメータAに基づいて、ボリュームテクスチャの第3のテクスチャ座標Wを設定する。例えば合成パラメータAそのものをテクスチャ座標Wに設定したり、合成パラメータAから得られるパラメータをテクスチャ座標Wに設定する。そしてテクスチャ座標U、V、Wに基づいて、しわ表現テクスチャをボリュームテクスチャとしてモデルオブジェクトにマッピングする処理を行う。このようにすれば図15に示すように、テクスチャTEX1、TEX2を合成した合成テクスチャTEX12がモデルオブジェクトにマッピングされるようになる。
【0103】
例えば図15では、テクスチャ座標Wが大きいほどテクスチャTEX1の合成率(ブレンド率)が大きくなり、テクスチャ座標Wが小さいほどテクスチャTEX2の合成率が大きくなるように、合成テクスチャTEX12が生成される。即ちテクスチャ座標U、Vで指定されるテクスチャTEX1、TEXの各テクセル値が、テクスチャ座標Wで決まる合成率(ブレンド率)で合成(テクセル補間)されて、プリミティブのピクセルに描画されるようになる。
【0104】
このようなボリュームテクスチャ機能を利用して、合成テクスチャTEX12を得るようにすれば、合成テクスチャTEX12を生成するためのプログラム処理を省略し、画像生成システムのハードウェアが有するボリュームテクスチャ機能を有効活用して、合成テクスチャTEX12をマッピングできるようになる。即ちテクスチャ座標U、V、Wと、しわ表現テクスチャTEX1、TEX2を指定した1回のテクスチャマッピングで、合成テクスチャTEX12をモデルオブジェクトにマッピングして、しわ画像を生成できる。従って、処理負荷の軽減や処理の高速化を図れる。
【0105】
なお図15のようにボリュームテクスチャを用いてしわ表現のための合成テクスチャTEX12をモデルオブジェクトにマッピングする手法では、制御点に基づき合成パラメータを求めてもよいが、それ以外の要素に基づいて合成パラメータを求めるようにしてもよい。例えばモーションデータ(骨のなす角度、座標変換マトリクス)に基づいて、直接に合成パラメータを求め、求められた合成パラメータに基づいてテクスチャ座標Wを設定し、得られた合成テクスチャをモデルオブジェクトにマッピングしてもよい。
【0106】
2.5 詳細な処理例
次に本実施形態の詳細な処理例を図16のフローチャートを用いて説明する。
【0107】
まずフレーム(1/60秒)の更新タイミングか否かを判断する(ステップS1)。そしてフレームの更新タイミングである場合には、モデルオブジェクトの移動処理を行う(ステップS2)。即ちモデルオブジェクトの速度、加速度等に基づいてモデルオブジェクト(代表点)の位置、方向を更新する。
【0108】
次に、モーションデータに基づいて、モデルオブジェクトのモーション処理のための座標変換マトリクス(モーションマトリクス)を求める(ステップS3)。即ち親の骨に対する子の骨の回転角度などを含むモーションデータに基づいて、座標変換マトリクス(行列)を求める。そして、各関節の座標変換マトリクスに基づいて、各制御点をワールド座標系に座標変換する(ステップS4)。例えば図4の制御点C1、C2、C3、C4をワールド座標系に座標変換し、ワールド座標系での位置を求める。或いは図13(A)(B)(C)(D)の制御点CF1、CB1、CF2、CB2を、例えば関節J4、J7についての座標変換マトリクスにより座標変換して、ワールド座標系での位置を求める。
【0109】
次に制御点間の距離L1、L2を求める(ステップS5)。そして、求められた距離L1、L2に基づき、図15で説明したボリュームテクスチャのテクスチャ座標Wを求める(ステップS6)。例えばW=L1/(L1+L2)というように、距離L1、L2の比に応じた値としてWを求める。
【0110】
次に、モデルオブジェクトの各頂点のU、V座標をボリュームテクスチャの第1、第2のテクスチャ座標に設定し、Wをボリュームテクスチャの第3のテクスチャ座標に設定する(ステップS7)。そしてテクスチャ座標(U、V、W)に基づいて、図6、図7のしわ表現テクスチャをボリュームテクスチャとしてモデルオブジェクトにマッピングして、モデルオブジェクトのプリミティブを描画する(ステップS8)。
【0111】
3.ハードウェア構成
図17に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ900は、DVD982(情報記憶媒体。CDでもよい。)に格納されたプログラム、通信インターフェース990を介してダウンロードされたプログラム、或いはROM950に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、マトリクス演算(ベクトル演算)を高速に実行する。例えばオブジェクトを移動させたり動作(モーション)させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0112】
ジオメトリプロセッサ904は、メインプロセッサ900上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ906は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、MPEG方式等で圧縮された動画像を表示できる。
【0113】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を実行する。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970を利用して、描画データを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると描画プロセッサ910は、描画データやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に描画する。また描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。頂点シェーダやピクセルシェーダなどのプログラマブルシェーダが実装されている場合には、シェーダプログラムに従って、頂点データの作成・変更(更新)やピクセル(あるいはフラグメント)の描画色の決定を行う。1フレーム分の画像がフレームバッファ922に書き込まれるとその画像はディスプレイ912に表示される。
【0114】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などのゲーム音を生成し、スピーカ932を介して出力する。ゲームコントローラ942やメモリカード944からのデータはシリアルインターフェース940を介して入力される。
【0115】
ROM950にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納される。なおROM950の代わりにハードディスクを利用してもよい。RAM960は各種プロセッサの作業領域となる。DMAコントローラ970は、プロセッサ、メモリ間でのDMA転送を制御する。DVDドライブ980(CDドライブでもよい。)は、プログラム、画像データ、或いは音データなどが格納されるDVD982(CDでもよい。)にアクセスする。通信インターフェース990はネットワーク(通信回線、高速シリアルバス)を介して外部との間でデータ転送を行う。
【0116】
なお本実施形態の各部(各手段)の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0117】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア(コンピュータ)を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【0118】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書または図面のいかなる箇所においても、その異なる用語に置き換えることができる。
【0119】
また、制御点の設定手法、制御点の演算手法、パラメータの演算手法、テクスチャの合成手法、テクスチャのマッピング手法も本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【0120】
また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレイヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【0121】
【図1】本実施形態の画像生成システムの機能ブロック図の例。
【図2】モデルオブジェクト、スケルトン構造の例。
【図3】骨の親子関係の説明図。
【図4】本実施形態の手法の説明図。
【図5】図5(A)(B)は本実施形態の手法の説明図。
【図6】しわ表現テクスチャの例。
【図7】しわ表現テクスチャの例。
【図8】本実施形態により生成された画像の例。
【図9】しわの拡大画像の例。
【図10】合成パラメータの演算手法の説明図。
【図11】図11(A)(B)は本実施形態の手法の変形例の説明図。
【図12】本実施形態により生成された画像の例。
【図13】図13(A)(B)(C)(D)は前側制御点、後ろ側制御点を設定する手法の説明図。
【図14】図14(A)(B)は前側制御点、後ろ側制御点を設定する手法の説明図。
【図15】ボリュームテクスチャを利用する手法の説明図。
【図16】本実施形態の詳細な処理を説明するフローチャート。
【図17】ハードウェア構成例。
【符号の説明】
【0122】
100 処理部、108 ゲーム演算部、110 オブジェクト空間設定部、
112 移動処理部、113 モーション処理部、114 仮想カメラ制御部、
116 制御点演算部、118 パラメータ演算部、119 テクスチャ座標設定部、
120 画像生成部、160 操作部、170 記憶部、
172 主記憶部、174 描画バッファ、176 モデルデータ記憶部、
178 テクスチャ記憶部、179 モーションデータ記憶部、
180 情報記憶媒体、190 表示部、192 音出力部、
194 携帯型情報記憶装置、196 通信部

【特許請求の範囲】
【請求項1】
画像を生成するためのプログラムであって、
しわ表現のための少なくとも1つの制御点が設定されるモデルオブジェクトのモーション処理を行うモーション処理部と、
モデルオブジェクトのモーションの変化によりその位置が変化する前記制御点の位置を求める制御点演算部と、
モデルオブジェクトの表面のしわを表現するためのテクスチャであって、そのテクスチャパターンが異なる複数のしわ表現テクスチャを記憶するテクスチャ記憶部と、
前記制御点に基づいて、複数のしわ表現テクスチャの合成パラメータを求めるパラメータ演算部と、
求められた前記合成パラメータにより複数のしわ表現テクスチャを合成し、得られた合成テクスチャをモデルオブジェクトにマッピングすることで、モデルオブジェクトのしわ画像を生成する画像生成部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項2】
請求項1において、
前記制御点演算部は、
前記モーション処理に使用される座標変換マトリクスを用いた座標変換により、前記制御点の位置を求め、
前記パラメータ演算部は、
座標変換により求められた前記制御点の位置に基づいて、前記合成パラメータを求めることを特徴とするプログラム。
【請求項3】
請求項2において、
前記制御点演算部は、
座標変換マトリクスを用いた座標変換により、前記制御点のワールド座標系での位置を求め、
前記パラメータ演算部は、
前記制御点のワールド座標系での位置に基づいて、前記合成パラメータを求めることを特徴とするプログラム。
【請求項4】
請求項2において、
前記制御点演算部は、
モデルオブジェクトのスケルトンが複数の骨及び複数の関節により構成される場合に、座標変換マトリクスを用いた座標変換により、前記複数の関節のうちの所与の関節に対する前記制御点の相対的な位置を求め、
前記パラメータ演算部は、
前記所与の関節に対する前記制御点の相対的な位置に基づいて、前記合成パラメータを求めることを特徴とするプログラム。
【請求項5】
請求項1乃至4のいずれかにおいて、
モデルオブジェクトに対してしわ表現のための第1、第2の制御点が設定され、
前記パラメータ演算部は、
前記第1、第2の制御点の位置に基づいて、前記合成パラメータを求めることを特徴とするプログラム。
【請求項6】
請求項5において、
前記パラメータ演算部は、
前記第1の制御点と他の制御点又は基準点との第1の距離と、前記第2の制御点と他の制御点又は基準点との第2の距離を求め、求められた前記第1、第2の距離に基づいて前記合成パラメータを求めることを特徴とするプログラム。
【請求項7】
請求項6において、
前記パラメータ演算部は、
前記第1、第2の距離の比に応じて変化する前記合成パラメータを求めることを特徴とするプログラム。
【請求項8】
請求項1乃至7のいずれかにおいて、
モデルオブジェクトのスケルトンが複数の骨及び複数の関節により構成される場合に、前記複数の関節のうちの所与の関節の前側に前側制御点が設定され、前記所与の関節の後ろ側に後ろ側制御点が設定され、
前記制御点演算部は、
モデルオブジェクトのモーションの変化によりその位置が変化する前記前側制御点の位置と前記後ろ側制御点の位置を求め、
前記パラメータ演算部は、
前記前側制御点に基づいて第1の合成パラメータを求め、前記後ろ側制御点に基づいて第2の合成パラメータを求め、
前記画像生成部は、
求められた前記第1の合成パラメータにより複数のしわ表現テクスチャを合成し、得られた合成テクスチャをモデルオブジェクトの前側面にマッピングすることで、モデルオブジェクトの前側面におけるしわ画像を生成し、求められた前記第2の合成パラメータにより複数のしわ表現テクスチャを合成し、得られた合成テクスチャをモデルオブジェクトの後ろ側面にマッピングすることで、モデルオブジェクトの後ろ側面におけるしわ画像を生成することを特徴とするプログラム。
【請求項9】
請求項1乃至8のいずれかにおいて、
前記しわ表現テクスチャのテクセル値をフェッチするためのテクスチャ座標を設定するテクスチャ座標設定部として、
コンピュータを機能させ、
前記テクスチャ記憶部は、
前記しわ表現テクスチャを、第1、第2、第3のテクスチャ座標でテクセル値がフェッチされるボリュームテクスチャとして記憶し、
前記テクスチャ座標設定部は、
前記合成パラメータに基づいて、ボリュームテクスチャの前記第3のテクスチャ座標を設定し、
前記画像生成部は、
前記第1、第2、第3のテクスチャ座標に基づいて、しわ表現テクスチャをボリュームテクスチャとしてモデルオブジェクトにマッピングする処理を行うことを特徴とするプログラム。
【請求項10】
画像を生成するためのプログラムであって、
モデルオブジェクトの表面のしわを表現するためのテクスチャであって、そのテクスチャパターンが異なる複数のしわ表現テクスチャを記憶するテクスチャ記憶部と、
前記しわ表現テクスチャのテクセル値をフェッチするためのテクスチャ座標を設定するテクスチャ座標設定部と、
複数のしわ表現テクスチャの合成パラメータを求めるパラメータ演算部と、
モデルオブジェクトのしわ画像を生成する画像生成部として、
コンピュータを機能させ、
前記テクスチャ記憶部は、
前記しわ表現テクスチャを、第1、第2、第3のテクスチャ座標でテクセル値がフェッチされるボリュームテクスチャとして記憶し、
前記テクスチャ座標設定部は、
前記合成パラメータに基づいて、ボリュームテクスチャの前記第3のテクスチャ座標を設定し、
前記画像生成部は、
前記第1、第2、第3のテクスチャ座標に基づいて、しわ表現テクスチャをボリュームテクスチャとしてモデルオブジェクトにマッピングする処理を行うことを特徴とするプログラム。
【請求項11】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1乃至10のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項12】
画像を生成する画像生成システムであって、
しわ表現のための少なくとも1つの制御点が設定されるモデルオブジェクトのモーション処理を行うモーション処理部と、
モデルオブジェクトのモーションの変化によりその位置が変化する前記制御点の位置を求める制御点演算部と、
モデルオブジェクトの表面のしわを表現するためのテクスチャであって、そのテクスチャパターンが異なる複数のしわ表現テクスチャを記憶するテクスチャ記憶部と、
前記制御点に基づいて、複数のしわ表現テクスチャの合成パラメータを求めるパラメータ演算部と、
求められた前記合成パラメータにより複数のしわ表現テクスチャを合成し、得られた合成テクスチャをモデルオブジェクトにマッピングすることで、モデルオブジェクトのしわ画像を生成する画像生成部と、
を含むことを特徴とする画像生成システム。
【請求項13】
画像を生成する画像生成システムであって、
モデルオブジェクトの表面のしわを表現するためのテクスチャであって、そのテクスチャパターンが異なる複数のしわ表現テクスチャを記憶するテクスチャ記憶部と、
前記しわ表現テクスチャのテクセル値をフェッチするためのテクスチャ座標を設定するテクスチャ座標設定部と、
複数のしわ表現テクスチャの合成パラメータを求めるパラメータ演算部と、
モデルオブジェクトのしわ画像を生成する画像生成部とを含み、
前記テクスチャ記憶部は、
前記しわ表現テクスチャを、第1、第2、第3のテクスチャ座標でテクセル値がフェッチされるボリュームテクスチャとして記憶し、
前記テクスチャ座標設定部は、
前記合成パラメータに基づいて、ボリュームテクスチャの前記第3のテクスチャ座標を設定し、
前記画像生成部は、
前記第1、第2、第3のテクスチャ座標に基づいて、しわ表現テクスチャをボリュームテクスチャとしてモデルオブジェクトにマッピングする処理を行うことを特徴とする画像生成システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図10】
image rotate

【図11】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図12】
image rotate


【公開番号】特開2007−272355(P2007−272355A)
【公開日】平成19年10月18日(2007.10.18)
【国際特許分類】
【出願番号】特願2006−94628(P2006−94628)
【出願日】平成18年3月30日(2006.3.30)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】