(57)【特許請求の範囲】
【請求項１】
画像を生成するためのプログラムであって、
テクセルに法線ベクトルが設定された法線テクスチャを記憶するテクスチャ記憶部と、
モーション制御によって関節の角度が変更されるオブジェクトの関節角度パラメータと、該オブジェクトを構成する各頂点と関節との距離に応じて変化する関節影響度パラメータとに基づいて、該各頂点に対応するテクスチャ座標を求めるテクスチャ座標演算部と、
求められたテクスチャ座標に基づいて、前記法線テクスチャを前記オブジェクトにマッピングする法線マッピングを行う法線マッピング部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記オブジェクトは、複数のボーンが前記関節で連結されたモデルを用いてモーション制御され、
前記テクスチャ座標演算部が、
前記各ボーン間のなす角度に応じて変化するパラメータを前記関節角度パラメータとし、かつ前記各頂点に対して設定された前記各ボーンのウェイト値の乗算結果を含むパラメータを前記関節影響度パラメータとして、前記法線テクスチャのテクスチャ座標を求めることを特徴とするプログラム。
【請求項３】
請求項１または２において、
前記法線テクスチャのテクスチャ座標は、第１の座標成分と第２の座標成分とを含み、
前記テクスチャ座標演算部が、
前記関節の曲がり具合に応じて変化する前記関節角度パラメータと前記関節影響度パラメータとに基づいて、前記テクスチャ座標の第１の座標成分を求めることを特徴とするプログラム。
【請求項４】
請求項３において、
前記法線テクスチャは、テクスチャ空間の一端側においてテクセルに設定された法線ベクトルが同じ方向を向く頻度が高く、該テクスチャ空間の他端側においてテクセルに設定された法線ベクトルが同じ方向を向く頻度が低いテクセル値パターンを有し、
前記テクスチャ座標演算部が、
前記関節の曲がり具合が大きいほど、あるいは前記関節に近い頂点ほど、前記テクスチャ空間の他端側のテクセルが対応づけられるように、前記法線テクスチャのテクスチャ座標の第１の座標成分を求めることを特徴とするプログラム。
【請求項５】
請求項３または４において、
前記法線テクスチャは、テクスチャ空間の一端側において隣接するテクセル同士の色差が小さく、該テクスチャ空間の他端側において隣接するテクセル同士の色差が大きいテクセル値パターンを有し、
前記テクスチャ座標演算部が、
前記関節の曲がり具合が大きいほど、あるいは前記関節に近い頂点ほど、前記テクスチャ空間の他端側のテクセルが対応づけられるように、前記法線テクスチャのテクスチャ座標の第１の座標成分を求めることを特徴とするプログラム。
【請求項６】
請求項１〜５のいずれかにおいて、
前記法線テクスチャのテクスチャ座標は、第１の座標成分と第２の座標成分とを含み、
前記テクスチャ座標演算部が、
前記関節のねじれ具合に応じて変化する前記関節角度パラメータと前記関節影響度パラメータとに基づいて、前記テクスチャ座標の第２の座標成分を求めることを特徴とするプログラム。
【請求項７】
請求項６において、
前記法線テクスチャは、テクスチャ空間の一端側においてテクセルに設定された法線ベクトルが同じ方向を向く頻度が高く、該テクスチャ空間の他端側においてテクセルに設定された法線ベクトルが同じ方向を向く頻度が低いテクセル値パターンを有し、
前記テクスチャ座標演算部が、
前記関節のねじれ具合が大きいほど、あるいは前記関節に近い頂点ほど、前記テクスチャ空間の他端側のテクセルが対応づけられるように、前記法線テクスチャのテクスチャ座標の第２の座標成分を求めることを特徴とするプログラム。
【請求項８】
請求項６または７において、
前記法線テクスチャは、テクスチャ空間の一端側において隣接するテクセル同士の色差が小さく、該テクスチャ空間の他端側において隣接するテクセル同士の色差が大きいテクセル値パターンを有し、
前記テクスチャ座標演算部が、
前記関節のねじれ具合が大きいほど、あるいは前記関節に近い頂点ほど、前記テクスチャ空間の他端側のテクセルが対応づけられるように、前記法線テクスチャのテクスチャ座標の第２の座標成分を求めることを特徴とするプログラム。
【請求項９】
請求項１〜８のいずれかにおいて、
前記法線テクスチャは、しわの凹凸を表現するためのテクスチャであることを特徴とするプログラム。
【請求項１０】
コンピュータが読み取り可能な情報記憶媒体であって、請求項１〜９のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
【請求項１１】
画像を生成するための画像生成システムであって、
テクセルに法線ベクトルが設定された法線テクスチャを記憶するテクスチャ記憶部と、
モーション制御によって関節の角度が変更されるオブジェクトの関節角度パラメータと、該オブジェクトを構成する各頂点と関節との距離に応じて変化する関節影響度パラメータとに基づいて、該各頂点に対応するテクスチャ座標を求めるテクスチャ座標演算部と、
求められたテクスチャ座標に基づいて、前記法線テクスチャを前記オブジェクトにマッピングする法線マッピングを行う法線マッピング部と、
を含むことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関係する。
【背景技術】
【０００２】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
このような画像生成システムでは、プレーヤの仮想現実感を高めるために、例えば服のしわなどのように複雑な凹凸についてもリアルに表現できることが望ましい。しかしながら従来の技術では、様々なモーション（動作）を行うオブジェクトの関節の動きなどに追従するべき服のしわをリアルタイムに表現することが困難であった。
【特許文献１】特開平９−２６５５４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、上記事情に鑑みてなされたものであり、その目的は、オブジェクトのモーションに合わせたしわが表現された画像を生成することができるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００５】
（１）本発明は、画像を生成するための画像生成システムであって、テクセルに法線ベクトルが設定された法線テクスチャを記憶するテクスチャ記憶部と、モーション制御によって関節の角度が変更されるオブジェクトの関節角度パラメータと、該オブジェクトを構成する各頂点と関節との距離に応じて変化する関節影響度パラメータとに基づいて、該各頂点に対応するテクスチャ座標を求めるテクスチャ座標演算部と、求められたテクスチャ座標に基づいて、前記法線テクスチャを前記オブジェクトにマッピングする法線マッピングを行う法線マッピング部として、を含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させることを特徴とするプログラム、あるいはそのプログラムを記憶する情報記憶媒体に関係する。
【０００６】
関節角度パラメータは、関節の角度そのものであってもよいし、関節の角度に応じて変化する関数で表されるパラメータあってもよい。関節影響度パラメータは、関節と頂点との距離そのものであってもよいし、関節と頂点との距離に応じて変化する関数で表されるパラメータであってもよい。
【０００７】
本発明では、オブジェクトのモーション変化に応じて変化する関節の角度や関節までの距離に応じてオブジェクトの頂点に対応づけられるテクセルの座標を求める。このテクセルには、オブジェクトのライティングに必要な法線ベクトルが設定されており、この法線ベクトルに応じたシェーディングによりオブジェクトの表面の凹凸が表現される。従って、本発明によれば、オブジェクトのモーション変化にリアルタイムに追従するしわを表現することができる。
【０００８】
（２）本発明の画像生成システム、プログラムおよび情報記憶媒体では、前記オブジェクトは、複数のボーンが前記関節で連結されたモデルを用いてモーション制御され、前記テクスチャ座標演算部が、前記各ボーン間のなす角度に応じて変化するパラメータを前記関節角度パラメータとし、かつ前記各頂点に対して設定された前記各ボーンのウェイト値の乗算結果を含むパラメータを前記関節影響度パラメータとして、前記法線テクスチャのテクスチャ座標を求めるようにしてもよい。このようにすれば、関節周りのオブジェクトの曲がり具合やねじれ具合と関節への近さとに応じた適切な法線ベクトルをオブジェクトの構成頂点に対応づけることができるようになる。
【０００９】
なお、ここでいうモデルとは、オブジェクトをモーションさせるための演算に用いられるシミュレーションモデルを意味し、ジョイント（関節）で連結された少なくとも２つ以上のボーン（骨）で構成されるモデルを一般的にはスケルトンシステムと呼ぶ。スケルトンシステムでは、関節で連結されたボーンを内包するようにオブジェクトの表面（スキン）を構成する頂点群が存在する。
【００１０】
（３）本発明の画像生成システム、プログラムおよび情報記憶媒体では、前記法線テクスチャのテクスチャ座標は、第１の座標成分と第２の座標成分とを含み、前記テクスチャ座標演算部が、前記関節の曲がり具合に応じて変化する前記関節角度パラメータと前記関節影響度パラメータとに基づいて、前記テクスチャ座標の第１の座標成分を求めるようにしてもよい。
【００１１】
（４）本発明の画像生成システム、プログラムおよび情報記憶媒体では、前記法線テクスチャは、テクスチャ空間の一端側においてテクセルに設定された法線ベクトルが同じ方向を向く頻度が高く、該テクスチャ空間の他端側においてテクセルに設定された法線ベクトルが同じ方向を向く頻度が低いテクセル値パターンを有し、前記テクスチャ座標演算部が、前記関節の曲がり具合が大きいほど、あるいは前記関節に近い頂点ほど、前記テクスチャ空間の他端側のテクセルが対応づけられるように、前記法線テクスチャのテクスチャ座標の第１の座標成分を求めるようにしてもよい。このようにすれば、関節周りのオブジェクトの曲がり具合が大きいほどしわが多くなっている様子や、関節に近い部分ほどしわが多くなっている様子をリアルに表現することができる。
【００１２】
（５）本発明の画像生成システム、プログラムおよび情報記憶媒体では、前記法線テクスチャは、テクスチャ空間の一端側において隣接するテクセル同士の色差が小さく、該テクスチャ空間の他端側において隣接するテクセル同士の色差が大きいテクセル値パターンを有し、前記テクスチャ座標演算部が、前記関節の曲がり具合が大きいほど、あるいは前記関節に近い頂点ほど、前記テクスチャ空間の他端側のテクセルが対応づけられるように、前記法線テクスチャのテクスチャ座標の第１の座標成分を求めるようにしてもよい。このようにすれば、関節周りのオブジェクトの曲がり具合が大きいほどしわが深くなっている様子や、関節に近い部分ほどしわが深くなっている様子をリアルに表現することができる。
【００１３】
（６）本発明の画像生成システム、プログラムおよび情報記憶媒体では、前記法線テクスチャのテクスチャ座標は、第１の座標成分と第２の座標成分とを含み、前記テクスチャ座標演算部が、前記関節のねじれ具合に応じて変化する前記関節角度パラメータと前記関節影響度パラメータとに基づいて、前記テクスチャ座標の第２の座標成分を求めるようにしてもよい。
【００１４】
（７）本発明の画像生成システム、プログラムおよび情報記憶媒体では、前記法線テクスチャは、テクスチャ空間の一端側においてテクセルに設定された法線ベクトルが同じ方向を向く頻度が高く、該テクスチャ空間の他端側においてテクセルに設定された法線ベクトルが同じ方向を向く頻度が低いテクセル値パターンを有し、前記テクスチャ座標演算部が、前記関節のねじれ具合が大きいほど、あるいは前記関節に近い頂点ほど、前記テクスチャ空間の他端側のテクセルが対応づけられるように、前記法線テクスチャのテクスチャ座標の第２の座標成分を求めるようにしてもよい。このようにすれば、関節周りのオブジェクトのねじれ具合が大きいほどしわが多くなっている様子や、関節に近い部分ほどしわが多くなっている様子をリアルに表現することができる。
【００１５】
（８）本発明の画像生成システム、プログラムおよび情報記憶媒体では、前記法線テクスチャは、テクスチャ空間の一端側において隣接するテクセル同士の色差が小さく、該テクスチャ空間の他端側において隣接するテクセル同士の色差が大きいテクセル値パターンを有し、前記テクスチャ座標演算部が、前記関節のねじれ具合が大きいほど、あるいは前記関節に近い頂点ほど、前記テクスチャ空間の他端側のテクセルが対応づけられるように、前記法線テクスチャのテクスチャ座標の第２の座標成分を求めるようにしてもよい。このようにすれば、関節周りのオブジェクトのねじれ具合が大きいほどしわが深くなっている様子や、関節に近い部分ほどしわが深くなっている様子をリアルに表現することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００１７】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００１８】
操作部１６０は、プレーヤがオブジェクト（例えば、プレーヤキャラクタ）の操作データを入力するためのものである。操作部１６０は、例えば、レバー、ボタン、ステアリング、タッチパネル型ディスプレイなどにより実現できる。またプレーヤの入力インターフェースとして、例えば、マイク（マイクロフォン）など音検出部が設けられていてもよい。記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００１９】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００２０】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００２１】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００２２】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００２３】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０内の主記憶部１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００２４】
処理部１００は、メイン処理部１１０、描画部１２０、および音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００２５】
メイン処理部１１０は、オブジェクト空間設定部１１２、移動・動作処理部１１４、仮想カメラ制御部１１６を含む。
【００２６】
オブジェクト空間設定部１１２は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面、又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００２７】
移動・動作処理部１１４は、オブジェクト（キャラクタ、車、又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。即ち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。なお移動・動作演算を行う場合には、関節でボーンを連結したモデルを用いることができる。このようなシミュレーションモデルはスケルトンシステムと呼ばれるものであって、関節周りののボーンの角度変化やボーンの位置変化などをシミュレートして、シミュレーション結果に応じてオブジェクトを移動させたり、動作させたりするモーション制御を行うことができる。
【００２８】
仮想カメラ制御部１１６は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置や視線方向を制御する処理）を行う。
【００２９】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、ボール、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００３０】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクトの各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含む頂点リストが入力され、入力された頂点リストに含まれる頂点データに基づいて、頂点シェーダによる頂点シェーディング（広義には、頂点処理）が行われる。なお頂点シェーディングを行う際に、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うこともできる。頂点シェーディングでは、頂点シェーダプログラム（広義には、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点シェーディング後の頂点データに基づいてラスタライズ（走査変換）が行われ、ピクセルシェーダにより画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセルシェーディング（広義には、ピクセル処理、フラグメント処理）が行われる。ピクセルシェーディングでは、ピクセルシェーダプログラム（第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、フレーム画像のピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ）に出力（描画）する。すなわち、ピクセルシェーディングでは、フレーム画像の画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像（フレーム画像）が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるようにフレーム画像を生成することができる。
【００３１】
ここで先に述べた頂点シェーダやピクセルシェーダは、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダの一種である。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることでポリゴン描画の処理内容の自由度が高く、従来のハードウェアによる固定的な画像生成処理に比べて表現力を大幅に向上させることができる。
【００３２】
そして描画部１２０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００３３】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、主記憶部１７２に保存される。
【００３４】
テクスチャマッピングは、記憶部１７０のテクスチャ記憶部に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０のテクスチャ記憶部１７６からテクスチャ（色、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間（テクセル補間）などを行う。なお、ここでいうテクスチャマッピングには、テクセルに設定される色情報を法線ベクトル情報として扱う法線マッピング（広義には、バンプマッピング）も含まれる。また法線マッピングにおいて、オブジェクトにマッピングされるテクスチャを法線テクスチャ（広義には、バンプテクスチャ）と呼ぶ。法線テクスチャ等も記憶部１７０のテクスチャ記憶部１７６に格納される。
【００３５】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファに格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００３６】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。例えば通常αブレンディングの場合には下式（１）〜（３）の処理が行われる。
【００３７】
ＲＱ＝（１−α）×Ｒ１＋α×Ｒ２    （１）
ＧＱ＝（１−α）×Ｇ１＋α×Ｇ２    （２）
ＢＱ＝（１−α）×Ｂ１＋α×Ｂ２    （３）
また、加算αブレンディングの場合には下式（４）〜（６）の処理が行われる。
【００３８】
ＲＱ＝Ｒ１＋α×Ｒ２                （４）
ＧＱ＝Ｇ１＋α×Ｇ２                （５）
ＢＱ＝Ｂ１＋α×Ｂ２                （６）
また、減算αブレンディングの場合には下式（７）〜（９）の処理が行われる。
【００３９】
ＲＱ＝Ｒ１−α×Ｒ２                （７）
ＧＱ＝Ｇ１−α×Ｇ２                （８）
ＢＱ＝Ｂ１−α×Ｂ２                （９）
ここで、Ｒ１、Ｇ１、Ｂ１は、描画バッファ１７４に既に描画されている画像（元画像）のＲＧＢ成分であり、Ｒ２、Ｇ２、Ｂ２は、描画バッファ１７４に描画すべき画像のＲＧＢ成分である。また、ＲＱ、ＧＱ、ＢＱは、αブレンディングにより得られる画像のＲＧＢ成分である。なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００４０】
さらに描画部１２０は、テクスチャ座標演算部１２２、法線マッピング部１２４を含む。なお、メイン処理部１１０側でテクスチャ座標演算を行って、その結果を用いて描画部１２０側で法線マッピングをするようにしてもよい。
【００４１】
テクスチャ座標演算部１２２は、モーション制御によって関節の角度が変更されるオブジェクトの関節角度パラメータと、オブジェクトを構成する各頂点と関節との距離に応じて変化する関節影響度パラメータとに基づいて、各頂点に対応するテクスチャ座標を求める処理を行う。
【００４２】
テクスチャ座標を求める処理としては、例えば、オブジェクトのシミュレーションモデルを構成する複数のボーンを連結する関節（連結点）におけるオブジェクトの曲がり具合やねじれ具合に応じてテクスチャ座標の所与の座標成分が変化するようにテクセルと頂点を対応づけるための計算を行う。この場合、オブジェクトの関節の曲がり具合に応じて変化するパラメータ（関節角度パラメータの一例）等に基づいて第１の座標成分（例えば、ＵＶ座標系のＵ座標成分）を求めて、オブジェクトの関節のねじれ具合に応じて変化するパラメータ（関節角度パラメータの他の一例）等に基づいて第２の座標成分（例えば、ＵＶ座標系のＶ座標成分）を求めることができる。また各頂点の関節からの近さを影響度として考慮することによって、関節に近い頂点ほど凹凸が激しく変化するような法線ベクトル情報を付与することができる。言い換えれば、関節に近い頂点ほどしわが多く、しわの凹凸が深くなるような法線情報を与えることができるということである。関節からの近さに応じて定まる影響度としては、頂点毎に付与されるボーンのウェイト値の乗算結果を含むパラメータ（関節影響度パラメータの一例）を用いることができる。このようにすれば、オブジェクトのモーション状態に応じたしわの出来具合をダイナミックに制御することができる。またテクスチャ座標の第１の座標成分あるいは第２の座標成分の一方は、予め頂点毎に決めておくことができる。例えば、モデル座標系での頂点位置に応じた重み付けをしておくことによって、いずれか一方の座標成分を求めることで、一義的に各頂点に対応づけられるテクスチャ座標が求められるようにしておいてもよい。例えば、関節の内側にある頂点と関節の外側にある頂点とにおいて重み付けが異なるようにしておいてもよい。
【００４３】
このとき記憶部１７０のテクスチャ記憶部１７６に格納しておく法線テクスチャの作り方にも工夫が必要となる。例えば、第１の座標成分（あるいは第２の座標成分）の一端側においてテクセルに設定された法線ベクトルが同じ方向を向く頻度が高く、同座標成分の他端側においてテクセルに設定された法線ベクトルが同じ方向を向く頻度が低くなるようにテクスチャ空間の各テクセルに法線ベクトルを設定しておくことができる。またある基準面（平坦な面）の方向を基準方向とした場合に、テクスチャ空間の一端側（例えば、座標成分の最小値側）では基準方向を向く法線ベクトルの設定頻度が高く、他端側（例えば、座標成分の最大値側）では基準方向を向く法線ベクトルの設定頻度が低くなるようにすることができる。例えば、Ｕ座標成分が大きくなるにつれて法線ベクトルが頻繁に変化するようなテクセル値パターンの法線テクスチャを用意しておくことができる。なおＶ座標成分が大きくなるにつれて法線ベクトルが頻繁に変化するようなテクセル値パターンの法線テクスチャを用意しておいてもよい。このようにすれば基準方向に向く法線ベクトルの頻度が高い領域では、オブジェクトの表面にしわが少ない様子を表現することができ、基準方向に向く法線ベクトルの頻度が低い領域では、オブジェクトの表面にしわが多い様子を表現することができる。
【００４４】
また例えば、法線テクスチャをテクスチャ空間の一端側（例えば、座標成分の最小値側）において隣接するテクセル同士の色差が小さく、他端側（例えば、座標成分の最大値側）において隣接するテクセル同士の色差が大きくなるように作りこんでおくことができる。このようにすれば、隣接テクセル間の色差が小さい領域では、オブジェクトの表面に浅いしわがある様子を表現することができ、また隣接テクセル間の色差が大きい領域では、オブジェクトの表面に深いしわがある様子を表現することができる。
【００４５】
法線マッピング部１２４は、テクスチャ座標演算部１２２で求められたテクスチャ座標に基づいて、法線テクスチャをオブジェクトにマッピングする法線マッピングを行う。法線マッピングとは、頂点とテクセルとの対応関係から、描画ピクセルに与えられた法線ベクトルの向きを計算して、各描画ピクセルに対する法線ベクトルを設定するテクスチャマッピングの一種である。本実施の形態では、法線マッピング１２４で各頂点と対応づけた法線ベクトル情報に基づいてオブジェクトのシェーディング（陰影付け）を行うことによって、服等のしわの凹凸感をリアルに表現することができる。
【００４６】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００４７】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００４８】
２．本実施形態の手法
本実施の形態では、複数のボーンを関節で連結したモデルのボーン間の角度に応じて変化するパラメータと、関節からの近さに応じて変化するパラメータとに基づいて、各頂点に対応づける法線テクスチャ用のテクスチャ座標を求める手法を採用している。すなわち以下に示す手法では、法線マッピングのＵＶ座標成分をオブジェクトのモーション状態に応じて動的に調整することができる。
【００４９】
まずしわ表現用の法線テクスチャ（ノーマルマップテクスチャ）について説明する。以下では、テクスチャのＲ、Ｇ、Ｂの各色成分の値（輝度値）を法線ベクトルのＸ軸成分、Ｙ軸成分、Ｚ軸成分として利用する場合を例にとり説明する。なお本発明は、以下に説明する例に限定されるものではない。
【００５０】
法線マッピング用のテクスチャ（法線テクスチャ）として、図２に示すような片側（一端側）はほとんど色差がなく、逆側（他端側）にいくほど色が激しく変化する画像を用意する。法線マッピング（ノーマルマッピング）を行うと、色の変化量が多いほど凹凸が深くなり、変化する距離が近いほど凹凸が細かくなるので、図２ではＵ軸が０（Ｕ座標成分の最小値）から１．０（Ｕ座標成分の最大値）に近づくにつれ深くて細かい「しわ」を表現することができる。すなわち図２に示すテクスチャでは、Ｕ座標成分が大きくなるほどしわの密度が濃く、しわが深い様子が表現できるといえる。
【００５１】
次に、法線マッピングの対象オブジェクトを簡単に説明し、各頂点に対する法線テクスチャのテクスチャ座標の求め方を説明する。
【００５２】
まず法線マッピングの対象オブジェクトを図３に示すように仮定することにする。このオブジェクトは、関節Ｋで連結された２本のボーンＢ１、Ｂ２と、それを内包するモデル表面上の頂点Ｖ１〜Ｖ６を含む。なおオブジェクトを構成する頂点として、図３に示された以外の多数の頂点が存在しているが、説明の便宜上省略している。各頂点Ｖ１〜Ｖ６には、ボーンＢ１、Ｂ２の影響度を示すウェイト値が設定されている。Ｗ１１、Ｗ１２、Ｗ１３、Ｗ１４、Ｗ１５、Ｗ１６は、各頂点Ｖ１〜Ｖ６に対するボーンＢ１の影響度を示すウェイト値であり、Ｗ２１、Ｗ２２、Ｗ２３、Ｗ２４、Ｗ２５、Ｗ２６は、各頂点Ｖ１〜Ｖ６に対するボーンＢ２の影響度を示すウェイト値である。
【００５３】
このようなオブジェクトにおいてボーンＢ１、Ｂ２のなす角θの余弦は、ボーンＢ１、Ｂ２に平行なベクトルの内積によって求められ、
ｃｏｓθ＝（ＶＢ１・ＶＢ２）／（｜ＶＢ１｜・｜ＶＢ２｜）          （１Ａ）
で求められる(ただしθの取りうる範囲は０〜π)。すなわち角θが０に近いほど深く曲がっているといえる。図２に示す法線テクスチャにおいて、角θに対するＵ座標成分のパラメータＵ（θ）（関節角度パラメータ）は、以下のように求めることができる。
【００５４】
Ｕ（θ）＝（π−θ）／π          （２Ａ）
（２Ａ）式より角θが０に近いほど、関節Ｋを屈曲点とするオブジェクトの曲がり具合が大きく、深いしわができやすくなるといえる。また（２Ａ）式と等価なパラメータＵ（θ）を、以下のように求めることもできる。
【００５５】
Ｕ（θ）＝（１＋ｃｏｓθ）／２＝ｃｏｓ２（θ／２）          （２Ａ´）
なお図４に示すように角θを設定した場合にも、上記（１Ａ）式で角θの余弦を求めることができる。しかしながら、このように角θを設定する場合には、以下のようにパラメータＵ（θ）を求めることができる。
【００５６】
Ｕ（θ）＝θ／π          （２Ｂ）
あるいは、Ｕ（θ）＝ｓｉｎ（θ／２）          （２Ｂ´）
次に、頂点Ｖ１〜Ｖ６の位置に応じたしわのできやすさの影響度を考える。本実施形態では、ボーンに対する追従度がウェイト値として各頂点に設定され、関節で連結されたボーンの動きに対する影響度をウェイト値に基づいて求めている。なおこのような影響度の求め方は、本発明の実施形態の一例に過ぎず、関節からの距離に応じて変化するパラメータを適宜設定することにより同様の影響度を求めることができる。
【００５７】
まずしわを表現する場合、関節Ｋに近い位置にある頂点ほどしわが多く、かつ深くなりやすい。このため図２に示す法線テクスチャをしわのでき具合に応じて適切に貼り付けるためには、関節Ｋ（連結点）から近い頂点ほどＵ座標成分が１・０に近づく必要がある。言い換えれば、関節Ｋから遠い頂点ほどＵ座標成分が０に近づく必要がある。
【００５８】
そして各頂点に設定されるボーンＢ１、Ｂ２のウェイト値の取りうる範囲を０〜１００とした場合、２本のボーンＢ１、Ｂ２のウェイト値を掛け合わせた時の最大値は２５００（５０×５０）となる。そこで、ある頂点Ｖに対するボーンＢ１、Ｂ２のウェイト値をＷ１、Ｗ２とした場合、関節Ｋからの距離による影響度Ｌ（関節影響度パラメータ）は、以下のように求めることができる。
【００５９】
Ｌ＝（Ｗ１×Ｗ２）／２５００          （３Ａ）
３Ａ式より例えば、ある頂点に対して設定されたボーンＢ１、Ｂ２のウェイト値が５０／５０という配分であるとしわの多い領域のテクスチャ座標が指定されやすくなり、例えば、ウェイト値が９０／１０という配分だと５０／５０の場合に比べてしわの少ない領域のテクスチャ座標が指定されやすくなる
またオブジェクトを構成する頂点が関節の内側にあるか、関節の外側にあるかによってしわの成否を決めておくことが好ましい。具体的には、関節の内側に近いほどしわが深くできやすく、関節の外側に近いほどしわがなくなっていく。すなわち肘や膝といった部位のように、オブジェクトの曲がる方向（屈曲方向）が限定されている場合には、あらかじめ頂点ごとに重み付け（内外影響度）を用意しておくことができる。図２に示す法線テクスチャをマッピングする場合を例にすると、関節の内側に近い頂点ほど深いしわができやすいようにＵ座標成分の値が大きなテクスチャ座標が求められるようにし、また関節の外側に近い頂点ほどしわがないようにＵ座標成分の値が小さなテクスチャ座標が求められるようにすることができる。この内外影響度をＡ１とすると、テクスチャ座標のＵ座標成分は、以下のようにして求めることができる。
【００６０】
Ｕ＝Ｕ（θ）×Ｌ×Ａ１          （４Ａ）
ここで内外影響度Ａ１は、関節の内側に近い頂点ほど関節の外側に近い頂点に比べて大きな値が設定されることが好ましい。
【００６１】
ところで、股関節（太ももの付け根部分の関節）や肩関節のように関節の回転自由度が高く、あらゆる方向にオブジェクトが曲がる可能性があるような場合には、いずれの方向にどのくらい曲がっているのかをオブジェクトのモーション状態に応じて考慮する必要がある。すなわちいずれの頂点も関節の内側、外側になる可能性があるため、各頂点ごとにあらかじめ重み付け（内外影響度）を設定することができないからである。この場合には、以下のようにしてテクスチャ座標のＵ座標成分を求めることができる。
【００６２】
まず各頂点がいずれのボーンに近い位置にあるのかを判定する。
【００６３】
例えば、図５（Ａ）及び図５（Ｂ）に示すように、平面ＣＰを求めて、この平面ＣＰのいずれの側に頂点が存在しているかによって、内外影響度を求める際の基準となるボーンを定める。
【００６４】
具体的には、ベクトルＶＢ１とベクトルＶＢ２との合成ベクトルであるＶＢ１２と、ベクトルＶＢ１及びベクトルＶＢ２の正規化ベクトルｎＶＢ１、ｎＶＢ２とを求める。次に、ボーンＢ１、Ｂ２の交点（関節Ｋ）からベクトルｎＶＢ１、ｎＶＢ２の各方向へ移動した点を結んだベクトルｎＶＢを求める。次に、合成ベクトルＶＢ１２とベクトルｎＶＢとに対する直交ベクトルであるＶＣｎＢを求める。そして、合成ベクトルＶＢ１２と直交ベクトルＶＣｎＢとに基づいて、これらのベクトルが成す平面ＣＰを求めることができる。このようにすると、ボーンＢ１とボーンＢ２とは、平面ＣＰで分断されることになるため、各頂点が平面ＣＰに対していずれの側に存在するのかによって、基準となるボーンを決定することができる。なお、頂点が平面ＣＰ上に存在するような場合には、ボーンＢ１、Ｂ２のいずれを基準としてもよい。
【００６５】
そして、図５に示す例では、頂点Ｖは、平面ＣＰに対してボーンＢ１の側に存在すると判定され、以下では、ボーンＢ１を基準として頂点Ｖに関する内外影響度を求める手法を説明する。
【００６６】
具体的には、図６（Ａ）及び図６（Ｂ）に示すように、ボーンＢ１に直交する平面をＰ１、ボーンＢ１と平面Ｐ１との交点をＢＰ１、頂点Ｖを平面Ｐ１に投影した点をＶＰ１、ボーンＢ２上のボーンＢ１と接していない点を平面Ｐ１に投影した点をＢＢ１、ＶＰ１−ＢＰ１−ＢＢ１の成す角をαとしたとき、内外影響度をＡ２とすると、Ａ２は以下のように求められる。
【００６７】
Ａ２＝ｃｏｓ（α／２）          （５Ａ）
以上より、頂点Ｖに対応づけられる法線テクスチャのＵ座標成分は、
Ｕ＝Ｕｍａｘ×Ｌ×Ａ２          （６Ａ）
で求められる。
【００６８】
以上では頂点に対応づけられるテクセルのＵ座標成分を求めるようにすればよく、Ｖ座標成分は、あらかじめ頂点ごとに定めておくことができる。例えば図７に示すようなボーンの周りを回転する方向に沿ってＶ座標成分の０〜１．０の値を割り当てておくことができる。
【００６９】
また法線テクスチャのＶ座標成分においてもしわの量や深さを変化させてもよい。この場合、例えば、腕のねじれ具合等によるしわを表現することができるようになる。すなわち図８に示すようなボーン同士のねじれ角ωと、関節からの近さを表すウェイト値（例えば、Ｗ１１、Ｗ２１）の乗算結果とをパラメータとしてテクスチャ座標のＶ座標成分を求めるようにしてもよい。このときテクスチャ空間のＶ座標成分の一端側（例えば、０：Ｖ座標成分の最小値）から他端側（例えば、１．０：Ｖ座標成分の最大値）にかけてテクセル値パターンを以下のように変化させた法線テクスチャを用意しておくことが好ましい。
【００７０】
・一端側において法線ベクトルが同じ方向を向く頻度が高く、他端側において法線ベクトルが同じ方向を向く頻度が低い。
【００７１】
・一端側において基準方向（平面を示す方向）を向いた法線ベクトルの頻度が高く、他端側において基準方向を向いた法線ベクトルの頻度が低い。
【００７２】
・一端側において隣接テクセル同士の色差が小さく、他端側において隣接テクセル同士の色差が大きい。
【００７３】
以上に述べたように本実施形態の手法によれば、関節の角度と頂点に与えられたウェイト値に応じて法線マッピング用のテクスチャ座標を割り当てて、それに基づいてマッピングされた法線ベクトルの効果でしわの凸凹感を表現することができる。すなわち本実施形態の手法によれば、法線マッピングを行うことによって、モデルのモーション変化に応じてしわの量や深さを追従させた品質の高い画像を生成することができる。
【００７４】
３．本実施形態の処理
次に、本実施形態の詳細な処理例について図９及び図１０のフローチャートを用いて説明する。
【００７５】
メイン処理部では、図９に示すように、まずフレーム更新（１／６０秒）のタイミングか否かを判断する（ステップＳ１０）。そしてフレーム更新のタイミングである場合には（ステップＳ１０でＹＥＳ）、オブジェクトのモーション処理を行う（ステップＳ１１）。すなわち、シミュレーション演算を行ってボーン毎にマトリクスを求める。この演算によりボーン間の角度も求めることができる。次に、頂点シェーダ用及びピクセルシェーダ用のシェーダプログラムの転送とシェーダプログラムを実行して描画処理を行うために必要な各種パラメータの設定及び転送を行う（ステップＳ１２、Ｓ１３、Ｓ１４）。なおステップＳ１４において、メイン処理部から描画部へ送るパラメータには、シミュレーション演算の結果得られるボーン間の角度が含まれる。そして、モデルの頂点リストを頂点シェーダへ転送し（ステップＳ１５）、ステップＳ１２で転送した頂点シェーダプログラム及びステップＳ１３で転送したピクセルシェーダプログラムを順次描画部に実行させる（ステップＳ１７、Ｓ１８）。
【００７６】
頂点シェーダでは、図１０に示すフローチャートのＳ２０〜Ｓ２２に従って頂点シェーディングを行う。具体的には、処理対象の頂点が関節の内側・外側のいずれに存在するかを判定して内外影響度を求めてから（ステップＳ２０）、ボーンＢ１、Ｂ２のなす角θと頂点に設定されたボーンＢ１、Ｂ２のウェイト値と内外影響度に基づいてテクスチャ座標を求める（ステップＳ２１）。すなわち処理対象の頂点に対応する法線テクスチャのＵＶ座標を指定する。次に、ＵＶ座標データを含む頂点データをピクセルシェーダ側に転送する（ステップＳ２２）。
【００７７】
すると、ラスタライザが頂点シェーダから転送された頂点データに従って、オブジェクトの描画ピクセルを決定する処理（ラスタライズ）を行い（ステップＳ２３）、ピクセルシェーダでは、図１０に示すフローチャートのＳ２４以降に従ってピクセルシェーディングを行う。具体的には、頂点のテクスチャ座標から読み出されるテクセルに設定された法線ベクトルに基づいて、オブジェクトに対して法線マッピングを行う（ステップＳ２４）。すなわちオブジェクトの描画ピクセル毎に法線ベクトルを求める処理を行う。そして、描画ピクセルに与えられた法線ベクトルに基づいてシェーディング（陰影付け）が行われたオブジェクトを描画する（ステップＳ２５）。すなわち描画バッファにピクセルの色情報を書き込む処理を行う。このようにして服等のしわがオブジェクトのモーション状態に応じて動的に変化する様子を表現することができる。
【００７８】
４．ハードウェア構成
図１１に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＤＶＤ９８２（情報記憶媒体。ＣＤでもよい。）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【００７９】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【００８０】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。頂点シェーダやピクセルシェーダなどのプログラマブルシェーダが実装されている場合には、シェーダプログラムに従って、頂点データの作成・変更（更新）やピクセル（あるいはフラグメント）の描画色の決定を行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【００８１】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【００８２】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＤＶＤドライブ９８０（ＣＤドライブでもよい。）は、プログラム、画像データ、或いは音データなどが格納されるＤＶＤ９８２（ＣＤでもよい。）にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【００８３】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００８４】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【００８５】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語（関節、法線テクスチャ、法線マッピング、基準方向など）として引用された用語（連結点、ノーマルマップテクスチャ、ノーマルマッピング、平面を示す方向など）は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。また接触痕跡の表現手法も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【００８６】
また本実施の形態では、テクスチャ座標の第１の座標成分をＵＶ座標系のＵ座標成分に対応づけ、テクスチャ座標の第２の座標成分をＵＶ座標系のＶ座標成分に対応づけて説明をしたが、第１の座標成分をＶ座標成分とし、第２の座標成分をＵ座標成分として実施してもよい。
【００８７】
また本実施形態では、テクスチャ空間の一端側を座標成分の最小値側とし、テクスチャ空間の他端側を座標成分の最大値側として説明をしたが、一端側を座標成分の最大値側とし、他端側を座標成分の最小値側としてもよい。この場合には、テクスチャ座標の指定が本実施形態の手法と逆になるように演算すればよい。
【００８８】
また本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【００８９】
【図１】本実施形態の画像生成システムの機能ブロック図。
【図２】法線テクスチャの一例を示す図。
【図３】本実施形態の手法の説明図。
【図４】本実施形態の他の手法の説明図。
【図５】図５（Ａ）（Ｂ）は、本実施形態の手法の説明図。
【図６】図６（Ａ）（Ｂ）は、本実施形態の手法の説明図。
【図７】本実施形態の手法の説明図。
【図８】本実施形態の他の手法の説明図。
【図９】本実施形態の具体的な処理例を示すフローチャート。
【図１０】本実施形態の具体的な処理例を示すフローチャート。
【図１１】ハードウェア構成例。
【符号の説明】
【００９０】
１００  処理部、
１１０  メイン処理部、
１１２  オブジェクト空間設定部、１１４  移動・動作処理部、
１１４  仮想カメラ制御部、
１２０  描画部、
１２２  テクスチャ座標演算部、１２４  法線マッピング部、
１３０  音生成部、
１６０  操作部、１７０  記憶部、
１７２  主記憶部、１７４  描画バッファ、１７６  テクスチャ記憶部、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、
１９４  携帯型情報記憶装置、１９６  通信部
【図１】
0004662260.tif 000002
【図３】
0004662260.tif 000003
【図４】
0004662260.tif 000004
【図５】
0004662260.tif 000005
【図６】
0004662260.tif 000006
【図７】
0004662260.tif 000007
【図８】
0004662260.tif 000008
【図９】
0004662260.tif 000009
【図１０】
0004662260.tif 000010
【図１１】
0004662260.tif 000011
【図２】
0004662260.tif 000012