(57)【要約】【課題】演算負荷及びデータ量を増大させることなく、リアルタイムに移動動作する多関節オブジェクトのリアルな影表現を行うこと。【解決手段】  本発明は複数のパーツが関節で連結された第１のオブジェクトについて、各パーツの影画像の影画像を生成し、生成された各パーツの影画像を合成して第１のオブジェクトの影テクスチャを生成する影テクスチャ生成部１２２を含む。影テクスチャ生成部１２２は、第ｎのパーツに関連付けられた関節又はボーンの位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成し、生成された第ｎのパーツの影画像を第１のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成する。【選択図】      図１６
2006285511.tif 000002
【特許請求の範囲】
【請求項１】
画像を生成するためのプログラムであって、
第１〜第ｎ（ｎ≧２）のパーツを含む複数のパーツが関節で連結された第１のオブジェクトについて、第１〜第ｎのパーツの影画像を生成し、生成された各パーツの影画像を合成して第１のオブジェクトの影テクスチャを生成する影テクスチャ生成部と、してコンピュータを機能させ、
影テクスチャ生成部は、
第ｎのパーツに関連付けられた関節又はボーンの位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成し、生成された第ｎのパーツの影画像を第１のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成することを特徴とするプログラム。
【請求項２】
請求項１において、
影テクスチャ生成部は、
第ｎのパーツに関連付けられた関節又はボーンを所定の投影面に投影した場合の投影面における位置情報に基づき、第ｎのパーツに対応した第ｎの影生成用仮想オブジェクトの形状を決定し、決定された形状の第ｎの影生成用仮想オブジェクトにパーツ用影基準テクスチャをマッピングすることでパーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成することを特徴とするプログラム。
【請求項３】
請求項１乃至２のいずれかにおいて、
所定のパーツ用影基準テクスチャは、第１の領域と第２の領域とを含み、第１の領域と第２の領域の境界付近が半透明になるように半透明情報設定されていることを特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれかにおいて、
生成された影テクスチャを第２のオブジェクトに投影マッピングする影マッピング処理部を含み、
影マッピング処理部は、
前記第１のオブジェクトの位置に基づき所定の領域を描画領域として特定し、特定された描画領域に含まれる第２のオブジェクトをシザリングして影テクスチャをマッピングすることを特徴とするプログラム。
【請求項５】
請求項４において、
影マッピング処理部は、
前記第１のオブジェクトの向き及び仮想カメラの向きの少なくとも一方に基づき、所定の矩形領域を前記所定の描画領域として特定することを特徴とするプログラム。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記第ｎのパーツに関連づけて、第ｎのパーツの影画像を生成する際のパーツ用影基準テクスチャの変形演算に用いる情報が定義されていることを特徴とするプログラム。
【請求項７】
請求項２乃至６のいずれかおいて、
前記第ｎのパーツに関連づけて、第ｎの影生成用仮想オブジェクトの形状を決定するための情報が定義されていることを特徴とするプログラム。
【請求項８】
請求項１乃至７のいずれかおいて、
第１のキャラクタオブジェクト、第２のキャラクタオブジェクトを含む同じ関節構造を有する複数のキャラクタオブジェクトが存在する場合に各キャラクタオブジェクトに関連づけて影画像の形状又は大きさを補正するための補正情報を定義し、
前記第１のキャラクタオブジェクトと前記第２のキャラクタオブジェクトが同じ動作を行う場合には、第１のキャラクタオブジェクト、又は複数のキャラクタオブジェクトの同じ関節構造を有する基準オブジェクトについて生成された影画像を、第２のキャラクタオブジェクトに関連して定義されている補正情報に基づいて補正して第２のキャラクタオブジェクトの影画像を生成することを特徴とするプログラム。
【請求項９】
請求項１乃至８のいずれかにおいて、
所定のパーツ用影基準テクスチャは、各パーツ単位で用意されていることを特徴とするプログラム。
【請求項１０】
請求項１乃至９のいずれかにおいて、
影テクスチャ生成部は、
第ｎのパーツに関連付けられた関節又はボーンを第１軸に垂直な平面に投影し、投影面における関節又はボーン位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成することを特徴とするプログラム。
【請求項１１】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至１０のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１２】
画像を生成するための画像生成システムであって、
第１〜第ｎ（ｎ≧２）のパーツを含む複数のパーツが関節で連結された第１のオブジェクトについて、第１〜第ｎのパーツの影画像を生成し、生成された各パーツの影画像を合成して第１のオブジェクトの影テクスチャを生成する影テクスチャ生成部を含み、
前記影テクスチャ生成部は、
第ｎのパーツに関連付けられた関節又はボーンの位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成し、生成された第ｎのパーツの影画像を第１のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成することを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
このような画像生成システムでは、プレーヤの仮想現実感の向上のためよりリアルな画像を生成することが重要な技術的課題となっている。従ってオブジェクトの影についても、よりリアルに表現できることが望まれる。
【０００４】
従来より影を表現する手法として、影を作り出すオブジェクトを光源方向からみた形状をレンダリングして影テクスチャを生成し、影の影響を受けるオブジェクトに影テクスチャをマッピングするシャドウマップという手法がある。
【０００５】
シャドウマップを行う際には、例えば第１のオブジェクトを光線ベクトルの方向に投影して影テクスチャ領域に第１のオブジェクトの影テクスチャを生成する。そして生成された影テクスチャを地形等のオブジェクトにマッピングすることにより、第１のオブジェクトの影がマッピングされた地形の画像を生成する。
【０００６】
しかし例えば第１のオブジェクトの影テクスチャを生成するためには、第１のオブジェクトを投影面にレンダリングする作業が必要となるため、影作成用の簡易なオブジェクトを用いたとしても処理負荷が高くなり、データ量も増大する。
【０００７】
簡易な演算で影を生成する手法もいろいろ提案されているが、リアリティを損なうような影画像が生成されるという問題点があった。
【０００８】
このような影生成を実現する技術としては例えば特開２０００−３５３２５１号公報に開示される従来技術がある。
【特許文献１】特開２０００−３５３２５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
特に第１のオブジェクトがリアルタイムに移動動作する多関節オブジェクトである場合には、第１のオブジェクトの移動動作に応じて影の形状もリアルタイムに変化するため影画像生成のための演算負荷が増大する。
【００１０】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、演算負荷及びデータ量を増大させることなく、リアルタイムに移動動作する多関節オブジェクトのリアルな影表現を行うことが可能なプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【００１１】
（１）本発明は、
第１〜第ｎ（ｎ≧２）のパーツを含む複数のパーツが関節で連結された第１のオブジェクトについて、第１〜第ｎのパーツの影画像を生成し、生成された各パーツの影画像を合成して第１のオブジェクトの影テクスチャを生成する影テクスチャ生成部を含み、
影テクスチャ生成部は、
第ｎのパーツに関連付けられた関節又はボーンの位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成し、生成された第ｎのパーツの影画像を第１のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【００１２】
なお生成された影テクスチャを第１のオブジェクトの影として光源方向からオブジェクト空間に存在する第２のオブジェクトに投影マッピングする影マッピング処理部を含むようにしてもよい。
【００１３】
また影テクスチャ生成部は、第ｎのパーツに関連付けられた関節又はボーンを所定の投影面に投影し、投影面における関節又はボーン位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成するようにしてもよい。
【００１４】
ここにおいて第１のオブジェクトとは多関節構造のスケルトンモデル等で構成され移動動作するオブジェクトである。第２のオブジェクトとは影が落ちるオブジェクトであり、例えば地面等の地形オブジェクトである。
【００１５】
関節やボーンとは、コンピュータグラフィックスで人や動物などのキャラクタを扱う際に多関節構造のスケルトンモデルを用いる場合の関節やボーンである。スケルトンモデルではオブジェクト（キャラクタ）を、幾つかの骨とそれらの骨を連結する関節点とで表す。例えば人体モデルでは、頭、胴体、右上腕、右下腕、左上腕、・・等の複数のパーツを関節で連結したスケルトンモデルを作成する。第ｎのパーツに関連付けられた関節とは第ｎのパーツを接続するための関節である。第ｎのパーツに関連付けられたボーンとは、パーツに関連づけられた骨（例えば関節を連結する骨）である。
【００１６】
多関節オブジェクトはパーツ単位で配置が変化するが、本発明によれば各パーツ単位でパーツの投影面における位置情報を反映させて各パーツ影画像を生成して、それを合成して第１のオブジェクトの影画像を生成するので、各パーツの動きに応じて変化する各パーツの影をリアル近似した影を生成することができる。しかも各パーツの投影面における位置情報に基づき（予め用意された）パーツ用影基準テクスチャを変形して描画するだけでよいため、例えば第１のオブジェクトの影用のオブジェクトを投影面に投影して影画像を生成する通常のシャドウマップを行う場合に比べ、演算負荷を大幅に削減することができる。
【００１７】
（２）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
影テクスチャ生成部は、
第ｎのパーツに関連付けられた関節又はボーンを所定の投影面に投影した場合の投影面における位置情報に基づき、第ｎのパーツに対応した第ｎの影生成用仮想オブジェクトの形状を決定し、決定された形状の第ｎの影生成用仮想オブジェクトにパーツ用影基準テクスチャをマッピングすることでパーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成することを特徴とする。
【００１８】
（３）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
所定のパーツ用影基準テクスチャは、第１の領域と第２の領域とを含み、第１の領域と第２の領域の境界付近が半透明になるように半透明情報設定されていることを特徴とする。
【００１９】
第１の領域とは例えば影領域であり、第２の領域とは例えば影以外の領域である。第１の領域（影領域）と第２の領域（影以外の領域）の境界付近が半透明になるように半透明情報を設定するとは、例えば境界付近のピクセルのα値の透明度を半透明となるように設定することで実現してもよい。このようにすると周囲のぼやけた影を生成することができるので影の周囲のシャギー等が目立たず、見栄えのよい影を生成することができる。
【００２０】
なお第１の領域の外延に行くほど透明度が高くなるように設定するようにしてもよい。
【００２１】
（４）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
生成された影テクスチャを第２のオブジェクトに投影マッピングする影マッピング処理部を含み、
影マッピング処理部は、
前記第１のオブジェクトの位置に基づいて所定の領域を描画領域として特定し、特定された描画領域に含まれる第２のオブジェクトをシザリングして影テクスチャをマッピングすることを特徴とする。
【００２２】
影テクスチャの地面への貼り付けにシャドウマップの手法を用いる場合、シャドウマップは検出した地面全てに描画を行ってしまうため、描画範囲がひろくなり処理負荷が増大する。
【００２３】
そこで、本発明によれば、第２のオブジェクトに影テクスチャのマッピングを行う場合、第１のオブジェクトの位置に基づいて特定された描画領域に対応する第２のオブジェクトに対して、影テクスチャのマッピングを行う。従って、地面全てに描画を行う処理と比べて、大幅にピクセルフィルを稼ぐことができ、結果的に描画コストを大きく抑えることが出来る。
【００２４】
（５）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
影マッピング処理部は、
前記第１のオブジェクトの向き及び仮想カメラの向きの少なくとも一方に基づき、所定の矩形領域を前記所定の描画領域として特定することを特徴とする。
【００２５】
例えば第１のオブジェクトが正面向き（キャラクタオブジェクトの正面方向と仮想カメラの視線方向が一致する又は角度差が小さい（角度差が０又は１８０にちかい））場合は、描画領域を、生成した影テクスチャの影部分を含む正方形に近い矩形領域として特定し、第１のオブジェクトが横向き（キャラクタオブジェクトの正面方向と仮想カメラの視線方向が直角に近い（角度差が９０又は２７０にちかい））場合は、描画領域をより横長の長方形として特定するようにしてもよい。
【００２６】
矩形の描画領域の中心（対角線の交差点等）を例えば投影面に置ける第１のオブジェクトの代表点等に設定矩形の形状を決定するようにしてもよい。
【００２７】
また矩形の縦、横の長さを前記第１のオブジェクトの向き及び仮想カメラの向きの少なくとも一方に基づき決定するようにしてもよい。
【００２８】
本発明によれば、第１のオブジェクトの向き、仮想カメラの向きに応じて、描画領域として特定する矩形領域を変化させる。従って、生成した影テクスチャの影部分を含む領域を、必要最小限の矩形領域により特定することができる。
【００２９】
（６）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記第ｎのパーツに関連づけて、第ｎのパーツの影画像を生成する際のパーツ用影基準テクスチャの変形演算に用いる情報（変形パラメータ、スケール、変形演算に用いる値等）が定義されていることを特徴とする。
【００３０】
パーツ用影基準テクスチャの変形演算に用いる情報とは例えば変形パラメータ、変形時のスケール情報、その他の変形演算に用いる値等である。
【００３１】
本発明によればパーツ用影基準テクスチャの変形演算に用いる情報を用いて、１つのパーツ用影基準テクスチャからヴァリエーションに富んだ影画像を生成することができる。またパーツ用影基準テクスチャに各パーツに応じた適切な値を設定しておくことにより、よりリアルな影画像を生成することができる。
【００３２】
（７）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記第ｎのパーツに関連づけて、第ｎの影生成用仮想オブジェクトの形状を決定するための情報が定義されていることを特徴とする。
【００３３】
第ｎの影生成用仮想オブジェクトの形状を決定するための情報とは、第ｎの影生成用仮想オブジェクトの形状決定演算に用いる値等である。
【００３４】
（８）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
第１のキャラクタオブジェクト、第２のキャラクタオブジェクトを含む同じ関節構造を有する複数のキャラクタオブジェクトが存在する場合に各キャラクタオブジェクトに関連づけて影画像の形状又は大きさを補正するための補正情報を定義し、
前記第１のキャラクタオブジェクトと前記第２のキャラクタオブジェクトが同じ動作を行う場合には、第１のキャラクタオブジェクト、又は複数のキャラクタオブジェクトの同じ関節構造を有する基準オブジェクトについて生成された影画像を、第２のキャラクタオブジェクトに関連して定義されている補正情報に基づいて補正して第２のキャラクタオブジェクトの影画像を生成することを特徴とする。
【００３５】
各キャラクタオブジェクトに関連づけて補正情報を定義する場合には、各キャラクタオブジェクトの種類や属性に関連づけて補正情報（スケール等）を定義する場合も含む。
【００３６】
補正情報はキャラクタ単位に持たせても良いし、キャラクタのパーツ単位にもたせてもよい。
【００３７】
本発明によれば、同じ関節構造を有する複数のキャラクタオブジェクトが同じ動作を行っている場合には、１つのキャラクタオブジェクト（第１のキャラクタオブジェクト、又は複数のキャラクタオブジェクトの同じ関節構造を有する基準オブジェクト）について影画像を生成し、各キャラクタオブジェクトに対応して設定されている補正情報を用いてその影画像を補正するだけで、複数のキャラクタオブジェクトの影を生成することができるので、演算不可を大幅に軽減することができる。
【００３８】
（９）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
所定のパーツ用影基準テクスチャは、各パーツ単位で用意されていることを特徴とする。
【００３９】
各パーツの形状に合わせて用意することができるので、よりリアルな影画像を生成することができる。
【００４０】
（１０）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では
影テクスチャ生成部は、
第ｎのパーツに関連付けられた関節又はボーンを第１軸に垂直な平面に投影し、投影面における関節又はボーン位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成することを特徴とする。
【００４１】
例えば第１軸をＹ軸とする第１軸に垂直な平面とはＸＺ平面である。
【００４２】
平行光源とは、光源を表現する手法の一つであり、照らし出された物体の、どの面にも常に同じ方向にワールド座標系方向から光が当たる光源である。太陽光などの超遠方光等の場合、被写体とカメラ近辺では光はほぼ平行に走っているため距離による減衰や拡散が見た目上発生しない事になる。平行光源はこれをシミュレーションしたものである。
【００４３】
本発明では前記第１の軸方向に並行光源がある場合の画像を生成するので、影画像の演算負荷が軽くなる。
【発明を実施するための最良の形態】
【００４４】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００４５】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００４６】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００４７】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、ハードディスク、メモリーカード、メモリーカセット、磁気ディスク、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００４８】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ（液晶表示装置）、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００４９】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００５０】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００５１】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００５２】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００５３】
オブジェクト空間設定部１１０は、キャラクタ、車、戦車、建物、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクト（モデルオブジェクト）の位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００５４】
移動・動作処理部１１２は、オブジェクト（キャラクタ、車、又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。即ち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクト（移動オブジェクト）をオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（各パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００５５】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置や視線方向を制御する処理）を行う。
【００５６】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、ボール、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【００５７】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まず、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数プリミティブ面）を描画バッファ１７２（フレームバッファ、ワークバッファなどのピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ）に描画する。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。
【００５８】
描画部１２０は、テクスチャマッピング処理や隠面消去処理やαブレンディング処理を行うことができる。
【００５９】
ここでテクスチャマッピング処理は、テクスチャ記憶部１７４に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングする処理である。具体的には、オブジェクト（プリミティブ面）の頂点に設定（付与）されるテクスチャ座標等を用いてテクスチャ記憶部１７４からテクスチャ（色、α値などの表面プロパティ）を読み出す。そして、２次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間（テクセル補間）などを行う。
【００６０】
また隠面消去処理は、例えば、各ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７６（奥行きバッファ）を用いるＺバッファ法（奥行き比較法、Ｚテスト）により実現される。即ちオブジェクトのプリミティブ面の各ピクセルを描画する際に、Ｚバッファ１７６に格納されるＺ値を参照する。そして参照されたＺバッファ１７６のＺ値と、プリミティブ面の描画対象ピクセルでのＺ値とを比較し、描画対象ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、そのピクセルの描画処理を行うと共にＺバッファ１７６のＺ値を新たなＺ値に更新する。
【００６１】
またαブレンディング処理は、α値（Ａ値）に基づいて行う処理であり、通常αブレンディング、α加算ブレンディング或いはα減算ブレンディングなどがある。例えば通常αブレンディングの場合には下式の処理を行う。
【００６２】
ＲQ＝（１−α）×Ｒ1＋α×Ｒ2
ＧQ＝（１−α）×Ｇ1＋α×Ｇ2
ＢQ＝（１−α）×Ｂ1＋α×Ｂ2
一方、加算αブレンディングの場合には下式の処理を行う。
【００６３】
ＲQ＝Ｒ1＋α×Ｒ2
ＧQ＝Ｇ1＋α×Ｇ2
ＢQ＝Ｂ1＋α×Ｂ2
ここで、Ｒ1、Ｇ1、Ｂ1は、描画バッファ１７２に既に描画されている画像（元画像）のＲＧＢ成分であり、Ｒ2、Ｇ2、Ｂ2は、描画バッファ１７２に描画すべき画像のＲＧＢ成分である。また、ＲQ、ＧQ、ＢQは、αブレンディングにより得られる画像のＲＧＢ成分である。なおα値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、半透明度（透明度、不透明度と等価）情報、マスク情報、或いはバンプ情報などとして使用できる。
【００６４】
描画部１２０は、影テクスチャ生成部１２２，影マッピング処理部１２４とを含む。
【００６５】
影テクスチャ生成部１２２は、第１のパーツ、第２のパーツ、・・・、第ｎのパーツを含む複数のパーツが関節で連結された第１のオブジェクトについて、第１のパーツの影画像、第２のパーツの影画像、・・・、第ｎのパーツの影画像を生成し、生成された各影画像を合成して第１のオブジェクトの影テクスチャを生成する処理を行う。ここにおいて影テクスチャ生成部１２２は、第ｎのパーツに関連付けられた関節又はボーンの位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成し、生成された第ｎのパーツの影画像を第１のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成する。
【００６６】
また影テクスチャ生成部１２２は、第ｎのパーツに関連付けられた関節又はボーンを所定の投影面に投影し、投影面における関節又はボーン位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成するようにしてもよい。
【００６７】
また影テクスチャ生成部１２２は、第ｎのパーツに関連付けられた関節又はボーンを第１軸に垂直な平面に投影し、投影面における関節又はボーン位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成するようにしてもよい。
【００６８】
また影テクスチャ生成部１２２は、第ｎのパーツに関連付けられた関節又はボーンを所定の投影面に投影した場合の投影面における位置情報に基づき、第ｎのパーツに対応した第ｎの影生成用仮想オブジェクトの形状を決定し、決定された形状の第ｎの影生成用仮想オブジェクトにパーツ用影基準テクスチャをマッピングすることでパーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成するようにしてもよい。
【００６９】
影マッピング処理部１２４は、生成された影テクスチャを第１のオブジェクトの影として光源方向からオブジェクト空間に存在する第２のオブジェクトに投影マッピングする処理を行う。
【００７０】
影マッピング処理部１２４は、第１のオブジェクトの位置に基いて、生成した影テクスチャの影部分をふくむ所定の領域を描画領域として特定し、特定された描画領域に含まれる第２のオブジェクトをシザリングして影テクスチャをマッピングするようにしてもよい。また、第１のオブジェクトの位置に基いて、フレーム画像（二次元の画像）において影部分を含む描画領域を、影テクスチャのマッピング対象として特定するようにしてもよい。この場合、特定した描画領域をシザリングして、その描画領域において、第１のオブジェクト用の影テクスチャがマッピングされた第２のオブジェクトを描画するようにしてもよい。
【００７１】
また、影マッピング処理部１２４は、第１のオブジェクトの位置、向き及び仮想カメラの向きの少なくとも一方に基づき、生成した影テクスチャの影部分をふくむ所定の矩形領域を所定の描画領域として特定するようにしてもよい。
【００７２】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００７３】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００７４】
２．本実施形態の手法
２−１：本実施の形態の特徴
次に本実施形態の特徴と手法について図面を用いて説明する。
【００７５】
図２は、本実施の形態の特徴について説明するため図である。
【００７６】
プレーヤキャラクタＰＫ（移動動作するオブジェクトの一例）は、頭、胴体、右上腕、右下腕、左上腕、・・等の複数のパーツ（第１のパーツ、第２のパーツ、・・・、第ｎのパーツ）を含む複数のパーツが関節で連結された多関節構造（スケルトンモデルを用いた）オブジェクト（第１のオブジェクト）である。
【００７７】
本実施の形態ではこのようなプレーヤキャラクタＰＫについて、各第１のパーツの光線方向に投影した影を生成するための第１のパーツの影画像、各第２のパーツの光線方向に投影した影を生成するための第２のパーツの影画像、・・・、第ｎのパーツの光線方向に投影した影を生成するための第ｎのパーツの影画像を生成し、生成された各影画像を合成して第１のオブジェクトの影テクスチャ２１０を生成する。
【００７８】
そして生成された影テクスチャ２１０を光源方向からオブジェクト空間に存在する第２のオブジェクト（地形オブジェクト）２２０に投影マッピングして（シャドウマッピングして）、第１のオブジェクトＰＫの影２３０を生成する。
【００７９】
２−２：多関節構造の第１のオブジェクト
本実施の形態の第１のオブジェクトは、多関節構造のスケルトンモデルを用いて構成される。スケルトンモデルでは、第１のオブジェクトを、幾つかの骨とそれらの骨を連結する関節点とで表し、第１のオブジェクトのポーズ（形状）やモーション（アニメーション）のデータは、例えばＳｏｆｔＩｍａｇｅ（マイクロソフト社製ＣＧツールの商品名）などの市販のＣＧツールのインバースキネマティクス（ＩＫ）の機能を用いて作成される。
【００８０】
またボーンとはキャラクターアニメーションを容易にするために組み込まれた骨組みである。例えば中心となる骨を設定して骨のアニメーションをＩＫで行い、骨とその周辺のバーテックスとの関係を変形アニメーションで操作することも行われる（別名スケルトン）。
【００８１】
IK（Ｉｎｖｅｒｓｅ  Ｋｉｎｅｍａｔｉｃｓ）とはインバースキネマティクス階層構造をもつオブジェクトに対し、階層の下位のオブジェクトから片方の端が固定されたチェーンのように、上位のオブジェクトまでを連鎖的に運動させる手法である。これをボーンなどのデフォーマと組み合わせてキャラクターアニメーションに利用する。通常ＩＫでアニメーションを行う場合、ＩＫの移動用ターゲット（アプリケーションによって呼び名は様々だがエンドエフェクタやＩＫハンドルと呼ばれる）を使用してターゲットにキーフレームを設定する場合と、ターゲットを持たずにＩＫのみによる階層の連動のみを行って、その後階層中の各オブジェクトの回転情報に対してキーフレームを設定する方法等がある。
【００８２】
図３は、本実施の形態の第１のオブジェクトの構造について説明するための図である。
【００８３】
２００は、第１のオブジェクトの骨格構造を示すスケルトンモデルの例である。Ｐ（１）〜Ｐ（１０）は、第１のオブジェクト（ここでは人体）の頭、胴体、右上腕、右下腕、左上腕、・・等の複数のパーツを表す。複数のパーツは関節Ｋ１〜Ｋ１５で連結され、関節の動きに連動して動作する。
【００８４】
各関節から伸びた線分が骨Ｂ（１）〜Ｂ（１０）を示す。ＳｏｆｔＩｍａｇｅなどのＣＧツールにより図３のような骨格を作成し、さらに作成した骨格の骨や関節の位置を指定して、キャラクタのポーズやモーションのデータを作成していくことができる。 
【００８５】
そして関節や骨を与えられたモーションデータによって回転（又は移動）させることにより、ローカル座標系における第１のオブジェクトの移動動作を制御する事ができる。例えば蹴る動作に対応付けられたモーションデータに従って関節Ｋ１〜Ｋ１５を回転（又は移動）させることにより図２に示すような第１のオブジェクトが蹴る動作を行う画像を生成することができる。
【００８６】
２−３：影テクスチャの作成
図４（Ａ）、（Ｂ）は、本実施の形態の各パーツの影画像生成の原理について説明するための図である。
【００８７】
図４（Ａ）は、複数のパーツをＸＺ平面に投影する様子をＺ軸方向から見た図である。
【００８８】
パーツＰ（１）とパーツＰ（２）は関節Ｋ４で連結され連動して動作するパーツである、ここでは投影した場合の形状の変化をわかりやすくするためにパーツＰ（１）とパーツＰ（２）を同じ大きさの同じ形状であると仮定して説明する。
【００８９】
Ｂ（１）はパーツＰ（１）に対応したボーンであり、Ｂ（２）はパーツＰ（２）に対応したボーンである。
【００９０】
図４（Ｂ）は、パーツＰ（１）とパーツＰ（２）をＹ軸方向２５０からＸＺ平面に投影した場合の投影面における図であり、パーツＰ’（１）とパーツＰ’（２）、ボーンＢ’（１）とボーンＢ’（２）、Ｋ’３、Ｋ’４、Ｋ’５は、パーツＰ（１）とパーツＰ（２）、ボーンＢ（１）とボーンＢ（２）、Ｋ３、Ｋ４、Ｋ５に対応している。
【００９１】
パーツＰ（１）とパーツＰ（２）は同じ大きさの同じ形状であるが、投影方向（ここではＹ軸方向２５０）に対する配置関係が異なるため、投影面（ここではＸＺ平面）２６０における形状は異なっている。
【００９２】
ここで投影方向を並行光源からの光線方向とすると投影面におけるパーツＰ’（１）とパーツＰ’（２）は、パーツＰ（１）とパーツＰ（２）の影に該当する。このように複数のパーツが関節で連結された多関節構造の１のオブジェクトを構成する各パーツの影は、各パーツの投影方向に対する位置関係に応じて変化する。本実施の形態では、以下に示す手法で各パーツに対応する影画像を生成することで、投影方向に対する位置関係に応じて変化する各パーツの影画像に近似した影画像を生成している。
【００９３】
すなわち第ｎのパーツに関連付けられた関節（例えばＫ３、Ｋ４、Ｋ５）又はボーン（Ｂ（１）、Ｂ（２））を所定の投影面（ＸＺ平面）２６０に投影した場合の投影面２６０における関節（例えばＫ’３、Ｋ’４、Ｋ’５）又はボーン（Ｂ’（１）、Ｂ’（２））の位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成する。
【００９４】
図５（Ａ）（Ｂ）は、パーツ用影基準テクスチャの一例を示した図である。
【００９５】
図５（Ａ）のパーツ用影基準テクスチャ３００は、第１の領域（影領域）３１０と第２の領域（影以外の領域）３２０とを含む。
【００９６】
第１の領域３１０が影に対応する部分であり、ピクセルの色値（例えばＲＧＢ値）として白が設定されている。第２の領域３２０は、影以外の部分であり、マッピングされたら透明になるように透明情報が設定されている（例えば黒い部分のピクセルに対応したα値が透明度１００％等に設定されている）。当該テクスチャを地面等に減算合成でマッピングすると、白い部分がマッピングされるピクセルについては、地面の色値から白が減算され黒くなり、黒い部分がマッピングされるピクセルについては、地面の色値となる。従って図５（Ａ）に示すようなパーツ用影基準テクスチャ３００を地形オブジェクトにマッピングすることにより。白い部分に対応した黒い影が地面に落ちた画像を生成することができる。
【００９７】
ここで図５（Ｂ）に示すように、第１の領域（影領域）と第２の領域（影以外の領域）の境界付近が半透明になるように半透明情報（α値が）を設定しておき、パーツ用影基準テクスチャを用いるようにしてもよい。
【００９８】
このようにすると外延（周囲）がぼやけた影を生成できるので、外延のシャギー等が目立たずに見栄えの良い影画像を生成することができる。
【００９９】
なおパーツ用影基準テクスチャは、各パーツ単位で用意するようにしてもよい。このようにすると各パーツの形状に合わせて用意することができ、よりオブジェクトの実際の影に近似した精度の高い影画像を生成することができる。
【０１００】
図６は、影生成用仮想オブジェクトを用いたパーツ用影基準テクスチャの変形について説明するための図である。
【０１０１】
３４０、３５０は第ｎのパーツに関連付けられた関節を投影面に投影した点である。また３３０は第ｎのパーツに関連付けられたボーンを投影面に投影した線分である。
【０１０２】
本実施の形態では、第ｎのパーツに関連付けられた関節又はボーンを所定の投影面（ＸＺ平面）に投影した場合の投影面における位置情報に基づき、第ｎのパーツに対応した第ｎの影生成用仮想オブジェクトの形状を決定する。
【０１０３】
ここでは投影面におけるボーン３３０又は投影面における関節３４０と３５０を結ぶ線分に対し所定のアルゴリズムに従って幅ｗを設定する（３６０参照）。これにより長手方向（長さ）がｌで幅ｗの長方形の板ポリゴン３８２が生成される。ここにおいて幅ｗを設定する幅方向は、ボーン３３０に対応したベクトルｂｖ（例えば投影されたボーン３３０の方向をもつベクトル）と投影面に垂直な軸（ここではＹ軸）方向の基準ベクトルとの外積から求め、求めた幅方向に所定の長さの幅を追加するようにしてもよい。
【０１０４】
また求めた板ポリゴン３８２の両端に所定の長さΔｌを追加する補正３７０を行うようにしてもよい。このようにすると、各パーツの影画像を合成した場合接続部分（関節の付近）では関節を共有する２つの影画像が重複するので、つなぎ目の目立たない見栄えの良い影画像を生成することができる（図８（Ｂ）参照）。
【０１０５】
このように投影面に投影された各パーツの関節又はボーンの位置情報に基づいて板ポリゴン（影生成用仮想オブジェクト）の形状を決定し、決定された形状の板ポリゴン（影生成用仮想オブジェクト）に例えば図５（Ａ）に示すようなパーツ用影基準テクスチャをマッピングして変形させると、影領域に対応する第１の領域の形状は３９０のように変形する。従って、投影方向に対する位置関係に応じて変化する各パーツの影画像に近似した影画像を生成することができる。
【０１０６】
図７は、各パーツ（またボーンや関節）に関連づけて定義されている情報の一例を示した図である。
【０１０７】
本実施の形態のパーツ情報テーブル５００には、第１のオブジェクトを構成する各パーツやボーン５１０に関連づけて、パーツやボーンに関連した関節１（５２０）、関節２（５３０）の座標値の情報や各パーツの影画像を生成する際のパーツ用影基準テクスチャの変形演算に用いる情報（変形パラメータ、スケール、変形演算に用いる値等）が記憶されている。パーツ用影基準テクスチャの変形演算に用いる情報としては、例えば太さ１（５４０）、太さ２（５５０）、長さ１（５６０）、長さ２（５７０）等の情報が記憶されている。
【０１０８】
太さ１（５４０）は、関節１に関連した太さを設定するための情報であり、太さ２（５５０）は、関節２に関連した太さを設定するための情報である。
【０１０９】
投影面における関節１がＫ１、関節２がＫ２である場合に太さ１（５４０）としてｗ１、太さ２（５５０）としてｗ２が設定されているとする。この場合には例えば図８（Ａ）に示すように、関節Ｋ１に関連付けて幅ｗ１を設定し、関節Ｋ２に関連付けて幅ｗ２を設定して、５８０に示すような板ポリゴン（影生成用仮想オブジェクト）を生成することができる。
【０１１０】
また長さ１（５６０）は、関節１に関連した長さの補正値の情報であり、長さ２（５７０）は、関節２に関連した長さの補正値の情報である。
【０１１１】
投影面における関節１がＫ１、関節２がＫ２である場合に長さ１（５６０）としてｌ１、長さ２（５７０）としてｌ２が設定されているとする。この場合には例えば図８（Ｂ）に示すように、関節Ｋ１に関連付けて長さｌ１だけのばす補正を行い、関節Ｋ２に関連付けて長さｌ２だけのばす補正を行い、５９０に示すような板ポリゴン（影生成用仮想オブジェクト）を生成することができる。
【０１１２】
このように前記第ｎのパーツに関連づけて、第ｎの影生成用仮想オブジェクトの形状を決定するための情報（形状決定演算に用いる値等）が定義するようにしてもよい。
【０１１３】
図９（Ａ）、（Ｂ）は、生成された各パーツの影画像を第１のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成する様子を示した図である。
【０１１４】
６００は第１のオブジェクトの影テクスチャエリアである。Ｓ（１）は第１のパーツの影画像であり、Ｓ（２）は第２のパーツの影画像である。このように第１のオブジェクトを構成する各パーツの画像を影テクスチャエリア６００に描画することで、各パーツの影画像を合成した影テクスチャを生成することができる。
【０１１５】
ここで図６又は図８（Ｂ）で説明したようにボーンを長くする補正を行うと、図９（Ｂ）のＳ（１）、Ｓ（２）のように長手方向にボーンＢ’（１）、Ｂ’（２）よりも大きな影が生成され６１０に示すような影の重複エリアが生じる。従って各パーツ毎の影のつなぎ目の目立たない見栄えの良い影画像を生成することができる（図８（Ｂ）参照）。
【０１１６】
図１０は同じ関節構造を有するキャラクタオブジェクトの影画像について説明するための図である。
【０１１７】
第１のキャラクタオブジェクトＫＯ１と第２のキャラクタオブジェクトＫＯ２は、大きさや容姿（絵柄）は異なるが同じ関節構造を有するキャラクタオブジェクトであり、６２０、６３０はそれぞれ第１のキャラクタオブジェクトＫＯ１の影画像、第２のキャラクタオブジェクトＫＯ２の影画像であり、６２２と６３２はそれぞれ第１のキャラクタオブジェクトＫＯ１の影、第２のキャラクタオブジェクトＫＯ２の影である。
【０１１８】
個々のパーツの太さと長さがキャラクターのスケールに合わせ伸縮し、この結果６２０、６３０に示すようにキャラクターごとにシャドウのサイズが変わる。またキャラクターごとにある関節とある関節までの長さが変わるのでそれらも結果に反映される。
【０１１９】
本実施の形態では、第１のキャラクタオブジェクトＫＯ１、第２のキャラクタオブジェクトＫＯ２を含む同じ関節構造を有する複数のキャラクタオブジェクトが存在する場合には各キャラクタオブジェクトに関連づけて影画像の形状又は大きさを補正するための補正情報（スケール等）を定義しておく。
【０１２０】
そして、第１のキャラクタオブジェクトＫＯ１と前記第２のキャラクタオブジェクトＫＯ２が同じ動作を行う場合には、第１のキャラクタオブジェクトＫＯ１及び第２のキャラクタオブジェクトＫＯ２について１つの影画像を生成し（第１のキャラクタオブジェクト、又は複数のキャラクタオブジェクトの同じ関節構造を有する基準オブジェクトについて１つ影画像を生成する）、生成された影画像を各キャラクタオブジェクトに関連して定義されている補正情報に基づいて補正して、各キャラクタオブジェクトの影画像６２０，６３０を生成するようにしてもよい。
【０１２１】
補正情報は例えば仮想的な基準オブジェクトの影画像に対する値（例えばスケール値）が定義されていてもよい。そして基準オブジェクトの影画像を各キャラクタオブジェクトの補正値に基づき補正して各キャラクタの影画像を生成するようにしてもよい。
【０１２２】
または第１のキャラクタオブジェクトＫＯ１と前記第２のキャラクタオブジェクトＫＯ２のいずれか一方の影画像を生成し、生成された影画像を第１のキャラクタオブジェクトＫＯ１と前記第２のキャラクタオブジェクトＫＯ２の少なくとも一方について定義されている補正情報を用いて補正して他方の影画像を求めるようにしてもよい。例えば２つの補正情報の比を求め、求めた比に応じて一方の影画像を補整して他方の影画像を生成するようにしてもよい。
【０１２３】
第１のオブジェクトに関連づけて設定されているスケール値をｓｋ１、第２のオブジェクトに関連づけて設定されているスケール値をｓｋ２とすると、図１０のように第１のキャラクタオブジェクトＫＯ１が前記第２のキャラクタオブジェクトＫＯ２より大きい場合には、ｓｋ１＞ｓｋ２となるように設定しておくと良い。
【０１２４】
なお影画像の補整は、例えば板ポリゴン（影生成用仮想オブジェクト）を生成する際に、補正情報を用いて板ポリゴン（影生成用仮想オブジェクト）の大きさ又は形状を補正することで実現してもよい、各パーツの影画像を図９（Ａ）、（Ｂ）に示す影描画テクスチャエリアに描画するときに補正情報を用いてスケールを変更することで実現してもよい。
【０１２５】
このようにすると、同じ関節構造を有する複数のキャラクタオブジェクトが同じ動作を行っている場合には、１つのキャラクタオブジェクトについて影画像を生成し、各キャラクタに対応して設定されている補正情報を用いてその影画像を補正するだけで、複数のキャラクタオブジェクトの影を生成することができるので、演算不可を大幅に軽減することができる。
【０１２６】
２−４：シャドウマッピング
本実施の形態では、生成された影テクスチャを第１のオブジェクトの影として光源方向からオブジェクト空間に存在する第２のオブジェクト（地形オブジェクト）に投影マッピングする。ここで投影マッピングはシャドウマップの手法で実現することができる。
【０１２７】
シャドウマッピングとは、影を落とす物体をあらかじめ光源方向から見てレンダリングし、それを影用のテクスチャマッピング素材として光源方向から投影マッピングする手法であり、マッピングされた部分の色を暗くするような効果を与え影の表現を行う事が出来る。
【０１２８】
図１１、図１２は一般的なシャドウマップの手法について説明するための図である。
【０１２９】
図１１は、シャドウマップを行う際に生成する影テクスチャについて説明するための図である。
【０１３０】
シャドウマップを行う際には、図１１に示すように、椅子オブジェクト８１０を光線ベクトル８２０の方向に投影して影テクスチャ領域８４０に椅子オブジェクトの影テクスチャ８３０を生成する。 
【０１３１】
図１２はシャドウマップの手法により椅子オブジェクトの影を床壁オブジェクトにつける場合について説明するための図である。８１０は椅子オブジェクトであり、８５０は床壁オブジェクトである。また８３０は椅子オブジェクト８１０を光線ベクトル８２０の方向に投影して生成した影テクスチャである。 
【０１３２】
同図に示すように影テクスチャ８３０を床壁オブジェクト８５０にマッピングすることにより、椅子オブジェクトの影がマッピングされた床壁オブジェクト８５０’の画像を生成することができる。 
【０１３３】
本実施の形態では図２〜図１０で説明した手法により生成した影テクスチャを光源ベクトルの方向に投影することで、第１のオブジェクトの影がマッピングされた第２のオブジェクト（地形オブジェクト）の画像を生成することができる。
【０１３４】
２−５：影テクスチャのシザリング
本実施の形態では第１のオブジェクトの位置、向き及び仮想カメラの向きの少なくとも一方に基づき、生成した影テクスチャの影部分をふくむ所定の矩形領域を特定し、特定した矩形領域をシザリングして第２のオブジェクトに描画する。
【０１３５】
図１３は、マッピングエリアとシザリング範囲の関係について説明するための図である。
【０１３６】
影テクスチャの地面への貼り付けにシャドウマップの手法を用いる場合、シャドウマップは検出した地面全てに描画を行ってしまう。例えば、影テクスチャと地面のヒットをとって、地面のＨＩＴポリゴン上に影テクスチャをマッピングする場合ポリゴンＰ１からＰ４がヒットポリゴンであるとすると、Ｐ１〜Ｐ４のヒットポリゴンのエリアは全て影テクスチャ描画の対象になってしまう。例えば、図１３の影部分以外の部分には、影テクスチャが描画されてないように見えるが、実際には影部分の周りには透明のテクスチャが伸ばされて貼られているのである。
【０１３７】
従ってポリゴン割りが粗く大きいほど、画面に対して描画範囲が大きくなってしまうので処理負荷が多くなってしまう。特に地面等の地形はポリゴン割りが粗いので、描画領域が広くなり処理負荷が増加する傾向になる。
【０１３８】
そこで本実施の形態では、地形に影テクスチャのマッピングを行う場合、影テクスチャの不要部分（影の入っていない透明な部分）に対応する第２のオブジェクト（地面のヒットポリゴン）のシザリングを行う。
【０１３９】
例えば図１３では実際に描画されているのは、青い線に囲まれたシザリング用矩形領域（所定の描画領域）６５０だけである。このように影テクスチャの描画を指定する際に、第２のオブジェクト（地面のヒットポリゴン）の矩形領域６５０をシザリングして影テクスチャをマッピングすることにより大幅にピクセルフィルを稼ぐことが出来、結果的に描画コストを大きく抑えることが出来る。
【０１４０】
このシザリングは矩形で処理されており、キャラクターとカメラの向きにより変形する。図１４〜図１５は、矩形領域（描画領域）の形状とキャラクターと仮想カメラの向きの関係について説明するための図である。
【０１４１】
例えば図１４に示すようにキャラクタオブジェクトＰＫが正面向き（キャラクタオブジェクトの正面方向と仮想カメラの視線方向が一致する又は角度差が小さい（角度差が０又は１８０にちかい））場合は、シザリング用矩形領域６５０がより正方形に近い矩形として特定され、図１５に示すようにキャラクタオブジェクトＰＫが横向き（キャラクタオブジェクトの正面方向と仮想カメラの視線方向が直角に近い（角度差が９０又は２７０にちかい））場合は、シザリング用矩形領域６５０がより横長の長方形として特定される。
【０１４２】
２−６：本実施の形態の処理の流れ
図１６は本実施の形態の影画像を生成する処理の流れについて説明するための図である。
【０１４３】
まず頭上からの視点を生成すべく、カメラマトリックスを作成する（ステップＳ１０）。
【０１４４】
次に生成されたシャドウをシャドウマップのテクスチャとして使用するために、シャドウの描画先を任意のテクスチャエリア（影テクスチャエリア）に切り替える。また描画範囲の大きさを決める（ステップＳ２０）。
【０１４５】
影テクスチャエリアにシャドウ描画時にスケールを合わせるために、スクリーンマトリックスを生成する（ステップＳ３０）。この処理はプログラム中１回だけでよく便利上ここにおく。
【０１４６】
シャドウの描画先の影テクスチャエリアを黒で塗り潰し初期化を行う（ステップＳ４０）。
【０１４７】
投影面におけるパーツのボーン（関節）の座標、長さ、法線ベクトルを取得する（ステップＳ５０）。
【０１４８】
ボーンベクトル（ボーンの端の関節を繋ぐベクトル）に、取得したベクトルとＹ初期化ベクトルとの外積から太さを追加する。このときキャラクター固有のスケール値と太さパラメーターを掛け最終的に太さを決定する（ステップＳ６０）なお標準の太さパラメーターは、例えば図７に示すようにデータとして存在している。
【０１４９】
取得した長さもそのままでは足りないので、取得したボーンベクトル方向とその逆にそれぞれ長さを追加する。また太さと同じくキャラクター固有のスケール値と長さパラメーターを掛け最終的に長さを決定する（ステップＳ７０）。なお図７に示すようにキャラクター固有のスケール値と長さパラメーターデータが存在する。
【０１５０】
このようにしてできあがった太さと長さを持った１枚板のポリゴンは、影テクスチャを目一杯の大きさで参照し、この１枚板ポリゴンを設定された描画先に対して任意のスケールで描画を行う（ステップＳ８０）。
【０１５１】
ステップＳ４０〜Ｓ８０の処理を各パーツの数分行う。すべてのパーツについて処理が終了したら（ステップＳ９０）、最後のパーツである頭の部分に関しては特別な計算は行わず、頭のボーン座標に単なる板ポリゴン生成し、設定された描画先に対して任意のスケールで描画を行う（ステップＳ１００）。
【０１５２】
次に影テクスチャのマッピング面のシザリング用の矩形座標、幅、高さ（シザリング情報）をカメラとキャラクターの位置、向きから計算しておく（ステップＳ１１０）。
【０１５３】
そしてシザリング情報に基づき第２のオブジェクトをシザリングし、影テクスチャをシャドウマップする（ステップＳ１２０）。
【０１５４】
３．ハードウェア構成
図１７に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１５５】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【０１５６】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【０１５７】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【０１５８】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【０１５９】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１６０】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１６１】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語（描画領域、ピクセル値、変換テーブル等）として引用された用語（フレームバッファ・ワークバッファ、α値、ルックアップテーブル等）は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０１６２】
また上記実施の形態では、真上に並行光源がある場合の影を生成する場合を例にとり説明したが是に限られず、光源が真上以外にある場合でもよい。
【０１６３】
また上記実施の形態では複数のキャラクタで格闘を行うアクションゲームを例にとり説明したがこれに限られない。例えばサッカーやラグビー等の球技ゲームでもよいし、その他のゲームでもよい。
【０１６４】
また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１６５】
【図１】本実施形態の画像生成システムの機能ブロック図の例。
【図２】本実施の形態の特徴について説明するため図。
【図３】第１のオブジェクトの構造について説明するための図。
【図４】第１のオブジェクトの骨格構造を示すスケルトンモデルの例。
【図５】図５（Ａ）（Ｂ）は、パーツ用影基準テクスチャの一例を示した図。
【図６】影生成用仮想オブジェクトを用いたパーツ用影基準テクスチャの変形について説明するための図。
【図７】各パーツ（またボーンや関節）に関連づけて定義されている情報の一例を示した図。
【図８】影生成用仮想オブジェクトの形状決定の一例を示す図。
【図９】図９（Ａ）（Ｂ）は、各パーツの影画像を影テクスチャエリアに描画して影テクスチャを生成する様子を示した図。
【図１０】同じ関節構造を有するキャラクタオブジェクトの影画像について説明するための図。
【図１１】シャドウマップの手法について説明するための図。
【図１２】シャドウマップの手法について説明するための図。
【図１３】マッピングエリアとシザリング範囲の関係について説明するための図。
【図１４】矩形領域（描画領域）の形状とキャラクターと仮想カメラの向きの関係について説明するための図。
【図１５】矩形領域（描画領域）の形状とキャラクターと仮想カメラの向きの関係について説明するための図。
【図１６】本実施の形態の影画像を生成する処理の流れについて説明するための図。
【図１７】ハードウェア構成例。
【符号の説明】
【０１６６】
ＰＫ  プレーヤキャラクタ、Ｋ１〜Ｋ１５  関節、Ｂ（１）〜Ｂ（１０）  ボーン、Ｐ（１）〜Ｐ（１０）  パーツ、１００  処理部、１１０  オブジェクト空間設定部、１１２  移動・動作処理部、１１４  仮想カメラ制御部、１２０  描画部、１２２  影テクスチャ生成部、１２４  影マッピング処理部、１３０  音生成部、１６０  操作部、１７０  記憶部、１７２  描画バッファ、１７４  テクスチャ記憶部、１７６  Ｚバッファ、１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、１９４  携帯型情報記憶装置、１９６  通信部
【図１】
2006285511.tif 000003
【図３】
2006285511.tif 000004
【図４】
2006285511.tif 000005
【図６】
2006285511.tif 000006
【図７】
2006285511.tif 000007
【図８】
2006285511.tif 000008
【図９】
2006285511.tif 000009
【図１６】
2006285511.tif 000010
【図２】
2006285511.tif 000011
【図５】
2006285511.tif 000012
【図１０】
2006285511.tif 000013
【図１１】
2006285511.tif 000014
【図１２】
2006285511.tif 000015
【図１３】
2006285511.tif 000016
【図１４】
2006285511.tif 000017
【図１５】
2006285511.tif 000018
【図１７】
2006285511.tif 000019
【手続補正書】
【提出日】平成17年10月24日(2005.10.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像を生成するためのプログラムであって、
第１〜第ｎ（ｎ≧２）のパーツを含む複数のパーツが関節で連結された第１のオブジェクトについて、第１〜第ｎのパーツの影画像を生成し、生成された各パーツの影画像を合成して第１のオブジェクトの影テクスチャを生成する影テクスチャ生成部と、してコンピュータを機能させ、
影テクスチャ生成部は、
第ｎのパーツに関連付けられた関節又はボーンの位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成し、生成された第ｎのパーツの影画像を第１のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成するように構成され、
第１のキャラクタオブジェクト、第２のキャラクタオブジェクトを含む同じ関節構造を有する複数のキャラクタオブジェクトが存在する場合に各キャラクタオブジェクトに関連づけて影画像の形状又は大きさを補正するための補正情報を定義し、
前記第１のキャラクタオブジェクトと前記第２のキャラクタオブジェクトが同じ動作を行う場合には、第１のキャラクタオブジェクト、又は複数のキャラクタオブジェクトの同じ関節構造を有する基準オブジェクトについて生成された影画像を、第２のキャラクタオブジェクトに関連して定義されている補正情報に基づいて補正して第２のキャラクタオブジェクトの影画像を生成することを特徴とするプログラム。
【請求項２】
画像を生成するためのプログラムであって、
第１〜第ｎ（ｎ≧２）のパーツを含む複数のパーツが関節で連結された第１のオブジェクトについて、第１〜第ｎのパーツの影画像を生成し、生成された各パーツの影画像を合成して第１のオブジェクトの影テクスチャを生成する影テクスチャ生成部と、してコンピュータを機能させ、
影テクスチャ生成部は、
第ｎのパーツに関連付けられた関節又はボーンの位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成し、生成された第ｎのパーツの影画像を第１のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成するように構成され、
所定のパーツ用影基準テクスチャは、各パーツ単位で用意されていることを特徴とするプログラム。
【請求項３】
画像を生成するためのプログラムであって、
第１〜第ｎ（ｎ≧２）のパーツを含む複数のパーツが関節で連結された第１のオブジェクトについて、第１〜第ｎのパーツの影画像を生成し、生成された各パーツの影画像を合成して第１のオブジェクトの影テクスチャを生成する影テクスチャ生成部と、
生成された影テクスチャを第２のオブジェクトに投影マッピングする影マッピング処理部としてコンピュータを機能させ、
影テクスチャ生成部は、
第ｎのパーツに関連付けられた関節又はボーンの位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成し、生成された第ｎのパーツの影画像を第１のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成し、
影マッピング処理部は、
第２のオブジェクトに影テクスチャをマッピングする際に、影の入っていない透明な部分に対応する第２のオブジェクトをシザリングして影テクスチャをマッピングすることを特徴とするプログラム。
【請求項４】
画像を生成するためのプログラムであって、
第１〜第ｎ（ｎ≧２）のパーツを含む複数のパーツが関節で連結された第１のオブジェクトについて、第１〜第ｎのパーツの影画像を生成し、生成された各パーツの影画像を合成して第１のオブジェクトの影テクスチャを生成する影テクスチャ生成部と、してコンピュータを機能させ、
影テクスチャ生成部は、
第ｎのパーツに関連付けられた関節又はボーンの位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成し、生成された第ｎのパーツの影画像を第１のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成するように構成され、
第１の軸方向に平行光源をもうけ、第ｎのパーツに関連付けられた関節又はボーンを第１軸に垂直な平面に投影し、投影面における関節又はボーン位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成することを特徴とするプログラム。
【請求項５】
請求項３において、
影マッピング処理部は、
前記第１のオブジェクトの向き及び仮想カメラの向きの少なくとも一方に基づき、所定の矩形領域を特定して、第２のオブジェクトの矩形領域に対応する部分をシザリングすることを特徴とするプログラム。
【請求項６】
請求項１乃至５のいずれかにおいて、
影テクスチャ生成部は、
第ｎのパーツに関連付けられた関節又はボーンを所定の投影面に投影した場合の投影面における位置情報に基づき、第ｎのパーツに対応した第ｎの影生成用仮想オブジェクトの形状を決定し、決定された形状の第ｎの影生成用仮想オブジェクトにパーツ用影基準テクスチャをマッピングすることでパーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成することを特徴とするプログラム。
【請求項７】
請求項６において、
前記第ｎのパーツに関連づけて、第ｎの影生成用仮想オブジェクトの形状を決定するための情報が定義されていることを特徴とするプログラム。
【請求項８】
請求項１乃至７のいずれかにおいて、
所定のパーツ用影基準テクスチャは、第１の領域と第２の領域とを含み、第１の領域と第２の領域の境界付近が半透明になるように半透明情報設定されていることを特徴とするプログラム。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記第ｎのパーツに関連づけて、第ｎのパーツの影画像を生成する際のパーツ用影基準テクスチャの変形演算に用いる情報が定義されていることを特徴とするプログラム。
【請求項１０】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至１０のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１１】
画像を生成するための画像生成システムであって、
第１〜第ｎ（ｎ≧２）のパーツを含む複数のパーツが関節で連結された第１のオブジェクトについて、第１〜第ｎのパーツの影画像を生成し、生成された各パーツの影画像を合成して第１のオブジェクトの影テクスチャを生成する影テクスチャ生成部を含み、
影テクスチャ生成部は、
第ｎのパーツに関連付けられた関節又はボーンの位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成し、生成された第ｎのパーツの影画像を第１のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成するように構成され、
第１のキャラクタオブジェクト、第２のキャラクタオブジェクトを含む同じ関節構造を有する複数のキャラクタオブジェクトが存在する場合に各キャラクタオブジェクトに関連づけて影画像の形状又は大きさを補正するための補正情報を定義し、
前記第１のキャラクタオブジェクトと前記第２のキャラクタオブジェクトが同じ動作を行う場合には、第１のキャラクタオブジェクト、又は複数のキャラクタオブジェクトの同じ関節構造を有する基準オブジェクトについて生成された影画像を、第２のキャラクタオブジェクトに関連して定義されている補正情報に基づいて補正して第２のキャラクタオブジェクトの影画像を生成することを特徴とする画像生成システム。
【請求項１２】
画像を生成するための画像生成システムであって、
第１〜第ｎ（ｎ≧２）のパーツを含む複数のパーツが関節で連結された第１のオブジェクトについて、第１〜第ｎのパーツの影画像を生成し、生成された各パーツの影画像を合成して第１のオブジェクトの影テクスチャを生成する影テクスチャ生成部を含み、
影テクスチャ生成部は、
第ｎのパーツに関連付けられた関節又はボーンの位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成し、生成された第ｎのパーツの影画像を第１のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成するように構成され、
所定のパーツ用影基準テクスチャは、各パーツ単位で用意されていることを特徴とする画像生成システム。
【請求項１３】
画像を生成するための画像生成システムであって、
第１〜第ｎ（ｎ≧２）のパーツを含む複数のパーツが関節で連結された第１のオブジェクトについて、第１〜第ｎのパーツの影画像を生成し、生成された各パーツの影画像を合成して第１のオブジェクトの影テクスチャを生成する影テクスチャ生成部と、
生成された影テクスチャを第２のオブジェクトに投影マッピングする影マッピング処理部とを含み、
影テクスチャ生成部は、
第ｎのパーツに関連付けられた関節又はボーンの位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成し、生成された第ｎのパーツの影画像を第１のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成し、
影マッピング処理部は、
第２のオブジェクトに影テクスチャをマッピングする際に、影の入っていない透明な部分に対応する第２のオブジェクトをシザリングして影テクスチャをマッピングすることを特徴とする画像生成システム。
【請求項１４】
画像を生成するための画像生成システムであって、
第１〜第ｎ（ｎ≧２）のパーツを含む複数のパーツが関節で連結された第１のオブジェクトについて、第１〜第ｎのパーツの影画像を生成し、生成された各パーツの影画像を合成して第１のオブジェクトの影テクスチャを生成する影テクスチャ生成部を含み、
影テクスチャ生成部は、
第ｎのパーツに関連付けられた関節又はボーンの位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成し、生成された第ｎのパーツの影画像を第１のオブジェクトの影テクスチャエリアに描画して影テクスチャを生成するように構成され、
第１の軸方向に平行光源をもうけ、第ｎのパーツに関連付けられた関節又はボーンを第１軸に垂直な平面に投影し、投影面における関節又はボーン位置情報に基づき、パーツ用影基準テクスチャを変形させて第ｎのパーツの影画像を生成することを特徴とする画像生成システム。