(57)【特許請求の範囲】
【請求項１】
オブジェクト空間において所与の視点から見える画像を生成するための画像生成システムであって、
３次元形状のオブジェクトを構成する頂点を、頂点毎の法線ベクトルに応じた移動距離で投影ベクトルの方向に移動させることによって、オブジェクトを変形し、変形されたオブジェクトをモディファイアボリュームとして設定するモディファイアボリューム設定部と、
設定されたモディファイアボリュームに基づいて、モディファイアボリュームにより特定される空間についての属性変更処理を行う属性変更部とを含むことを特徴とする画像生成システム。
【請求項２】
オブジェクト空間において所与の視点から見える画像を生成するための画像生成システムであって、
３次元形状のオブジェクトを構成する頂点を、頂点毎に応じた移動距離で投影ベクトルの方向に移動させることによって、オブジェクトを変形し、変形されたオブジェクトをモディファイアボリュームとして設定するモディファイアボリューム設定部と、
設定されたモディファイアボリュームに基づいて、モディファイアボリュームにより特定される空間についての属性変更処理を行う属性変更部とを含み、
前記モディファイアボリューム設定部が、
投影ベクトルとオブジェクトを構成する頂点の法線ベクトルとのなす角度が小さい頂点ほど頂点の移動距離が長くなるように、頂点を移動させることを特徴とする画像生成システム。
【請求項３】
オブジェクト空間において所与の視点から見える画像を生成するための画像生成システムであって、
３次元形状のオブジェクトを構成する頂点を、頂点毎に応じた移動距離で投影ベクトルの方向に移動させることによって、オブジェクトを変形し、変形されたオブジェクトをモディファイアボリュームとして設定するモディファイアボリューム設定部と、
設定されたモディファイアボリュームに基づいて、モディファイアボリュームにより特定される空間についての属性変更処理を行う属性変更部とを含み、
前記モディファイアボリューム設定部が、
投影面で区切られる第１、第２の領域のうちオブジェクトが配置される側である第１の領域に、モディファイアボリュームの一端が位置し、第２の領域に、モディファイアボリュームの他端が位置するように、オブジェクトを構成する頂点を移動させることを特徴とする画像生成システム。
【請求項４】
請求項１〜３のいずれかにおいて、
前記モディファイアボリューム設定部が、
オブジェクトの代表点又はオブジェクトを構成する頂点と投影面との距離が長いほど、頂点の移動距離が長くなるように、頂点を移動させることを特徴とする画像生成システム。
【請求項５】
オブジェクト空間において所与の視点から見える画像を生成するための画像生成システムであって、
オブジェクトを構成する頂点を移動させることによって、オブジェクトを変形し、変形されたオブジェクトをモディファイアボリュームとして設定するモディファイアボリューム設定部を含み、
前記モディファイアボリューム設定部が、
移動前の頂点の座標をＰ（ＰＸ、ＰＹ、ＰＺ）とし、移動後の頂点の座標をＱ（ＱＸ、ＱＹ、ＱＺ）とし、投影ベクトルをＶＳ（ＶＳＸ、ＶＳＹ、ＶＳＺ）とし、投影ベクトルとオブジェクトを構成する頂点の法線ベクトルとの内積をＩＰとし、ＩＰに乗算される係数をＫとし、オブジェクトの代表点又はオブジェクトを構成する頂点と投影面との距離パラメータをＨとした場合に、
Ｑ＝Ｐ＋Ｈ×（Ｋ×ＩＰ＋１）×ＶＳ
となるように、オブジェクトを構成する頂点を移動させることを特徴とする画像生成システム。
【請求項６】
請求項５において、
前記モディファイアボリューム設定部が、
前記係数Ｋを、１よりも大きな値に設定することを特徴とする画像生成システム。
【請求項７】
請求項１〜６のいずれかにおいて、
モデルオブジェクト又はモデルオブジェクトを構成する各パーツオブジェクトを内包するバウンディングボリュームが前記オブジェクトとして用意され、
前記モディファイアボリューム設定部が、
前記バウンディングボリュームを構成する頂点を移動させて前記バウンディングボリュームを変形し、変形されたバウンディングボリュームをモディファイアボリュームとして設定すること特徴とする画像生成システム。
【請求項８】
請求項７において、
前記バウンディングボリュームの頂点密度が、モデルオブジェクト又は各パーツオブジェクトの頂点密度よりも均一になっていることを特徴とする画像生成システム。
【請求項９】
オブジェクト空間において所与の視点から見える画像を生成するための画像生成システムであって、
第１のオブジェクトを変形した３次元形状の第２のオブジェクトを構成する頂点を、投影ベクトルの方向に移動させることによって、第２のオブジェクトを変形し、変形された第２のオブジェクトをモディファイアボリュームとして設定するモディファイアボリューム設定部と、
設定されたモディファイアボリュームに基づいて、モディファイアボリュームにより特定される空間についての属性変更処理を行う属性変更部とを含み、
前記モディファイアボリューム設定部が、
第２のオブジェクトを構成する頂点に対応する第１のオブジェクトを構成する頂点の法線ベクトルに応じた移動距離で、第２のオブジェクトを構成する頂点を移動させることを特徴とする画像生成システム。
【請求項１０】
オブジェクト空間において所与の視点から見える画像を生成するための画像生成システムであって、
第１のオブジェクトを変形した３次元形状の第２のオブジェクトを構成する頂点を、投影ベクトルの方向に移動させることによって、第２のオブジェクトを変形し、変形された第２のオブジェクトをモディファイアボリュームとして設定するモディファイアボリューム設定部と、
設定されたモディファイアボリュームに基づいて、モディファイアボリュームにより特定される空間についての属性変更処理を行う属性変更部とを含み、
前記モディファイアボリューム設定部が、
投影ベクトルと、第２のオブジェクトを構成する頂点に対応する第１のオブジェクトを構成する頂点の法線ベクトルとのなす角度が小さい頂点ほど、第２のオブジェクトを構成する頂点の移動距離が長くなるように、第２のオブジェクトを構成する頂点を移動させることを特徴とする画像生成システム。
【請求項１１】
請求項９又は１０において、
前記モディファイアボリューム設定部が、
第２のオブジェクトの代表点又は第２のオブジェクトを構成する頂点と投影面との距離が長いほど、第２のオブジェクトを構成する頂点の移動距離が長くなるように、第２のオブジェクトを構成する頂点を移動させることを特徴とする画像生成システム。
【請求項１２】
オブジェクト空間において所与の視点から見える画像を生成するための画像生成システムであって、
第１のオブジェクトを変形した３次元形状の第２のオブジェクトを構成する頂点を、投影ベクトルの方向に移動させることによって、第２のオブジェクトを変形し、変形された第２のオブジェクトをモディファイアボリュームとして設定するモディファイアボリューム設定部を含み、
前記モディファイアボリューム設定部が、
第２のオブジェクトの移動前の頂点の座標をＰ（ＰＸ、ＰＹ、ＰＺ）とし、第２のオブジェクトの移動後の頂点の座標をＱ（ＱＸ、ＱＹ、ＱＺ）とし、投影ベクトルをＶＳ（ＶＳＸ、ＶＳＹ、ＶＳＺ）とし、投影ベクトルと、第２のオブジェクトの頂点に応じた第１のオブジェクトの頂点の法線ベクトルとの内積をＩＰとし、ＩＰに乗算される係数をＫとし、第２オブジェクトの代表点又は第２のオブジェクトを構成する頂点と投影面との距離パラメータをＨとした場合に、
Ｑ＝Ｐ＋Ｈ×（Ｋ×ＩＰ＋１）×ＶＳ
となるように、第２のオブジェクトを構成する頂点を移動させることを特徴とする画像生成システム。
【請求項１３】
請求項１２において、
前記モディファイアボリューム設定部が、
前記係数Ｋを、１よりも大きな値に設定することを特徴とする画像生成システム。
【請求項１４】
請求項９〜１３のいずれかにおいて、
モデルオブジェクト又はモデルオブジェクトを構成する各パーツオブジェクトを内包するバウンディングボリュームが前記第２のオブジェクトとして用意され、
前記モディファイアボリューム設定部が、
前記バウンディングボリュームを構成する頂点を移動させて前記バウンディングボリュームを変形し、変形されたバウンディングボリュームをモディファイアボリュームとして設定すること特徴とする画像生成システム。
【請求項１５】
請求項１４において、
前記バウンディングボリュームの頂点密度が、モデルオブジェクト又は各パーツオブジェクトの頂点密度よりも均一になっていることを特徴とする画像生成システム。
【請求項１６】
オブジェクト空間において所与の視点から見える画像を生成するためのプログラムであって、
３次元形状のオブジェクトを構成する頂点を、頂点毎の法線ベクトルに応じた移動距離で投影ベクトルの方向に移動させることによって、オブジェクトを変形し、変形されたオブジェクトをモディファイアボリュームとして設定するモディファイアボリューム設定部と、
設定されたモディファイアボリュームに基づいて、モディファイアボリュームにより特定される空間についての属性変更処理を行う属性変更部として、コンピュータを機能させることを特徴とするプログラム。
【請求項１７】
オブジェクト空間において所与の視点から見える画像を生成するためのプログラムであって、
３次元形状のオブジェクトを構成する頂点を、頂点毎に応じた移動距離で投影ベクトルの方向に移動させることによって、オブジェクトを変形し、変形されたオブジェクトをモディファイアボリュームとして設定するモディファイアボリューム設定部と、
設定されたモディファイアボリュームに基づいて、モディファイアボリュームにより特定される空間についての属性変更処理を行う属性変更部として、コンピュータを機能させ、
前記モディファイアボリューム設定部が、
投影ベクトルとオブジェクトを構成する頂点の法線ベクトルとのなす角度が小さい頂点ほど頂点の移動距離が長くなるように、頂点を移動させることを特徴とするプログラム。
【請求項１８】
オブジェクト空間において所与の視点から見える画像を生成するためのプログラムであって、
３次元形状のオブジェクトを構成する頂点を、頂点毎に応じた移動距離で投影ベクトルの方向に移動させることによって、オブジェクトを変形し、変形されたオブジェクトをモディファイアボリュームとして設定するモディファイアボリューム設定部と、
設定されたモディファイアボリュームに基づいて、モディファイアボリュームにより特定される空間についての属性変更処理を行う属性変更部として、コンピュータを機能させ、
前記モディファイアボリューム設定部が、
投影面で区切られる第１、第２の領域のうちオブジェクトが配置される側である第１の領域に、モディファイアボリュームの一端が位置し、第２の領域に、モディファイアボリュームの他端が位置するように、オブジェクトを構成する頂点を移動させることを特徴とするプログラム。
【請求項１９】
請求項１６〜１８のいずれかにおいて、
前記モディファイアボリューム設定部が、
オブジェクトの代表点又はオブジェクトを構成する頂点と投影面との距離が長いほど、頂点の移動距離が長くなるように、頂点を移動させることを特徴とするプログラム。
【請求項２０】
オブジェクト空間において所与の視点から見える画像を生成するためのプログラムであって、
オブジェクトを構成する頂点を移動させることによって、オブジェクトを変形し、変形されたオブジェクトをモディファイアボリュームとして設定するモディファイアボリューム設定部として、コンピュータを機能させ、
前記モディファイアボリューム設定部が、
移動前の頂点の座標をＰ（ＰＸ、ＰＹ、ＰＺ）とし、移動後の頂点の座標をＱ（ＱＸ、ＱＹ、ＱＺ）とし、投影ベクトルをＶＳ（ＶＳＸ、ＶＳＹ、ＶＳＺ）とし、投影ベクトルとオブジェクトを構成する頂点の法線ベクトルとの内積をＩＰとし、ＩＰに乗算される係数をＫとし、オブジェクトの代表点又はオブジェクトを構成する頂点と投影面との距離パラメータをＨとした場合に、
Ｑ＝Ｐ＋Ｈ×（Ｋ×ＩＰ＋１）×ＶＳ
となるように、オブジェクトを構成する頂点を移動させることを特徴とするプログラム。
【請求項２１】
請求項２０において、
前記モディファイアボリューム設定部が、
前記係数Ｋを、１よりも大きな値に設定することを特徴とするプログラム。
【請求項２２】
請求項１６〜２１のいずれかにおいて、
モデルオブジェクト又はモデルオブジェクトを構成する各パーツオブジェクトを内包するバウンディングボリュームが前記オブジェクトとして用意され、
前記モディファイアボリューム設定部が、
前記バウンディングボリュームを構成する頂点を移動させて前記バウンディングボリュームを変形し、変形されたバウンディングボリュームをモディファイアボリュームとして設定すること特徴とするプログラム。
【請求項２３】
請求項２２において、
前記バウンディングボリュームの頂点密度が、モデルオブジェクト又は各パーツオブジェクトの頂点密度よりも均一になっていることを特徴とするプログラム。
【請求項２４】
オブジェクト空間において所与の視点から見える画像を生成するためのプログラムであって、
第１のオブジェクトを変形した３次元形状の第２のオブジェクトを構成する頂点を、投影ベクトルの方向に移動させることによって、第２のオブジェクトを変形し、変形された第２のオブジェクトをモディファイアボリュームとして設定するモディファイアボリューム設定部と、
設定されたモディファイアボリュームに基づいて、モディファイアボリュームにより特定される空間についての属性変更処理を行う属性変更部として、コンピュータを機能させ、
前記モディファイアボリューム設定部が、
第２のオブジェクトを構成する頂点に対応する第１のオブジェクトを構成する頂点の法線ベクトルに応じた移動距離で、第２のオブジェクトを構成する頂点を移動させることを特徴とするプログラム。
【請求項２５】
オブジェクト空間において所与の視点から見える画像を生成するためのプログラムであって、
第１のオブジェクトを変形した３次元形状の第２のオブジェクトを構成する頂点を、投影ベクトルの方向に移動させることによって、第２のオブジェクトを変形し、変形された第２のオブジェクトをモディファイアボリュームとして設定するモディファイアボリューム設定部と、
設定されたモディファイアボリュームに基づいて、モディファイアボリュームにより特定される空間についての属性変更処理を行う属性変更部として、コンピュータを機能させ、
前記モディファイアボリューム設定部が、
投影ベクトルと、第２のオブジェクトを構成する頂点に対応する第１のオブジェクトを構成する頂点の法線ベクトルとのなす角度が小さい頂点ほど、第２のオブジェクトを構成する頂点の移動距離が長くなるように、第２のオブジェクトを構成する頂点を移動させることを特徴とするプログラム。
【請求項２６】
請求項２４又は２５において、
前記モディファイアボリューム設定部が、
第２のオブジェクトの代表点又は第２のオブジェクトを構成する頂点と投影面との距離が長いほど、第２のオブジェクトを構成する頂点の移動距離が長くなるように、第２のオブジェクトを構成する頂点を移動させることを特徴とするプログラム。
【請求項２７】
オブジェクト空間において所与の視点から見える画像を生成するためのプログラムであって、
第１のオブジェクトを変形した３次元形状の第２のオブジェクトを構成する頂点を、投影ベクトルの方向に移動させることによって、第２のオブジェクトを変形し、変形された第２のオブジェクトをモディファイアボリュームとして設定するモディファイアボリューム設定部として、コンピュータを機能させ、
前記モディファイアボリューム設定部が、
第２のオブジェクトの移動前の頂点の座標をＰ（ＰＸ、ＰＹ、ＰＺ）とし、第２のオブジェクトの移動後の頂点の座標をＱ（ＱＸ、ＱＹ、ＱＺ）とし、投影ベクトルをＶＳ（ＶＳＸ、ＶＳＹ、ＶＳＺ）とし、投影ベクトルと、第２のオブジェクトの頂点に応じた第１のオブジェクトの頂点の法線ベクトルとの内積をＩＰとし、ＩＰに乗算される係数をＫとし、第２オブジェクトの代表点又は第２のオブジェクトを構成する頂点と投影面との距離パラメータをＨとした場合に、
Ｑ＝Ｐ＋Ｈ×（Ｋ×ＩＰ＋１）×ＶＳ
となるように、第２のオブジェクトを構成する頂点を移動させることを特徴とするプログラム。
【請求項２８】
請求項２７において、
前記モディファイアボリューム設定部が、
前記係数Ｋを、１よりも大きな値に設定することを特徴とするプログラム。
【請求項２９】
請求項２４〜２８のいずれかにおいて、
モデルオブジェクト又はモデルオブジェクトを構成する各パーツオブジェクトを内包するバウンディングボリュームが前記第２のオブジェクトとして用意され、
前記モディファイアボリューム設定部が、
前記バウンディングボリュームを構成する頂点を移動させて前記バウンディングボリュームを変形し、変形されたバウンディングボリュームをモディファイアボリュームとして設定すること特徴とするプログラム。
【請求項３０】
請求項２９において、
前記バウンディングボリュームの頂点密度が、モデルオブジェクト又は各パーツオブジェクトの頂点密度よりも均一になっていることを特徴とするプログラム。
【請求項３１】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１６〜３０のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な３次元空間であるオブジェクト空間内において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。格闘ゲームを楽しむことができる画像生成システムを例にとれば、プレーヤは、ゲームコントローラ（操作部）を用いて自キャラクタ（オブジェクト）を操作し、相手プレーヤやコンピュータが操作する敵キャラクタと対戦することでゲームを楽しむ。
【０００３】
さて、このような画像生成システムでは、キャラクタなどのモデルオブジェクトのリアルな影を生成することが望まれる。そして、このような影生成手法の１つとして、モディファイアボリューム（狭義にはシャドウボリューム）を用いる手法が知られている。
【０００４】
しかしながら、このモディファイアボリュームを用いる手法には、モディファイアボリュームの生成処理の負荷が重いという課題がある。また、モディファイアボリュームの生成処理のアルゴリズムが煩雑であり、製品の開発期間の長期化を招くという課題もある。
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、モディファイアボリュームの設定処理を少ない処理負荷で実現できる画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【０００６】
【課題を解決するための手段】
上記課題を解決するために、本発明は、オブジェクト空間において所与の視点から見える画像を生成するための画像生成システムであって、３次元形状のオブジェクトの頂点を、頂点毎に異なった移動距離で所与の第１のベクトルの方向に移動することで、前記オブジェクトを第１のベクトルの方向に変形し、変形されたオブジェクトをモディファイアボリュームとして設定するモディファイアボリューム設定部と、設定されたモディファイアボリュームに基づいて、モディファイアボリュームにより特定される空間についての属性変更処理を行う属性変更部とを含むことを特徴とする。また本発明に係るプログラムは、上記各部としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるためのプログラムを記憶（記録）したことを特徴とする。
【０００７】
本発明では、３次元形状のオブジェクトの頂点が、頂点毎に異なった移動距離で第１のベクトルの方向に移動する。そして、この頂点移動処理により変形されたオブジェクトが、モディファイアボリュームとして設定される。この場合、頂点移動処理により変形されたオブジェクトそのものを、モディファイアボリュームに設定してもよいし、変形されたオブジェクトを更に変形したものを、モディファイアボリュームとして設定してもよい。
【０００８】
そして、本発明では、このようにして得られたモディファイアボリュームを用いて、モディファイアボリュームにより特定される空間（モディファイアボリューム内の空間或いはモディファイアボリューム外の空間等）についての属性変更処理（輝度低減処理、輝度増加処理又はテクスチャ変更処理等）が行われる。
【０００９】
このようにすれば、オブジェクトの頂点移動処理でモディファイアボリュームを設定できるため、処理負荷の軽減化や処理の簡素化を図れる。
【００１０】
なお、本発明では属性変更部を省く構成とすることもできる。
【００１１】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記モディファイアボリューム設定部が、第１のベクトルとオブジェクトの頂点の法線ベクトルとのなす角度が小さい頂点ほどその移動距離が長くなるように、オブジェクトの頂点を移動してもよい。
【００１２】
この場合、頂点の法線ベクトルは、頂点に付与される法線ベクトルと数学的に均等なパラメータを含む。また、頂点の法線ベクトルの向きは、オブジェクトの面の向きに必ずしも正確に一致していなくてもよい。また、第１のベクトルと法線ベクトルとのなす角度は、この角度と数学的に均等なパラメータを含む。また、この角度と頂点の移動距離との関係は、線形な関係であってもよいし、非線形な関係であってもよい。
【００１３】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記モディファイアボリューム設定部が、オブジェクトの代表点又は頂点と第１の平面との距離が長いほど、頂点の移動距離を長くするようにしてもよい。
【００１４】
この場合、オブジェクトの代表点又は頂点と第１の平面との距離は、この距離と数学的に均等なパラメータを含む。また、この距離と頂点の移動距離との関係は、線形な関係であってもよいし、非線形な関係であってもよい。
【００１５】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記モディファイアボリューム設定部が、第１の平面で区切られる第１、第２の領域のうちオブジェクトが配置される側である第１の領域に、モディファイアボリュームの一端が位置し、第２の領域に、モディファイアボリュームの他端が位置するように、モディファイアボリュームを設定してもよい。
【００１６】
このようにすれば、モディファイアボリュームが第１の平面に交差するように、モディファイアボリュームを配置できるようになり、適正な属性変更処理を実現できる。
【００１７】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記モディファイアボリューム設定部が、モディファイアボリュームの代表点が第１の平面上に位置するように、モディファイアボリュームを設定してもよい。
【００１８】
この場合、モディファイアボリュームの代表点は、モディファイアボリュームの位置を代表的に表す点であり、例えば、モディファイアボリュームの略中心点を代表点として定義できる。或いは、この代表点が第１の平面上に位置した場合に、モディファイアボリュームと第１の平面との交差領域の面積が最大になる点を、代表点として定義できる。
【００１９】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記モディファイアボリューム設定部が、移動前の頂点の座標をＰ（ＰＸ、ＰＹ、ＰＺ）とし、移動後の頂点の座標をＱ（ＱＸ、ＱＹ、ＱＺ）とし、第１のベクトルをＶＳ（ＶＳＸ、ＶＳＹ、ＶＳＺ）とし、第１のベクトルとオブジェクトの頂点の法線ベクトルとの内積をＩＰとし、ＩＰに乗算される係数をＫとし、オブジェクトの代表点又は頂点と第１の平面との距離パラメータをＨとした場合に、Ｑ＝Ｐ＋Ｈ×（Ｋ×ＩＰ＋１）×ＶＳとなるように、オブジェクトの頂点を移動してもよい。
【００２０】
この場合、内積ＩＰ、距離パラメータＨは、これらと数学的に均等なパラメータを含む。また、距離パラメータＨは、距離そのものでもよいし、距離に変換処理を施したものでもよい。また、一部の頂点については、Ｑ＝Ｐ＋Ｈ×（Ｋ×ＩＰ＋１）×ＶＳの関係式に従った移動処理を行わないようにしてもよい。また、Ｑ＝Ｐ＋Ｈ×（Ｋ×ＩＰ＋１）×ＶＳという関係式に代えて、Ｑ＝Ｐ＋Ｈ×Ｆ（ＩＰ）×ＶＳ（ここでＦ（ＩＰ）はＩＰを引数とする関数）という関係式を採用することもできる。
【００２１】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記モディファイアボリューム設定部が、前記係数Ｋを、１よりも大きな値に設定してもよい。
【００２２】
このようにすることで、モディファイアボリュームの幅（短軸方向）を太らせることなどが可能になる。なお、Ｋ＞１とした場合には、ＩＰを所与の範囲にクリップする処理を行うことが望ましい。
【００２３】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、モデルオブジェクト又はモデルオブジェクトを構成する各パーツオブジェクトを内包するバウンディングボリュームが前記オブジェクトとして用意され、前記モディファイアボリューム設定部が、前記バウンディングボリュームの頂点を第１のベクトルの方向に移動して前記バウンディングボリュームを変形することで、モディファイアボリュームを設定してもよい。
【００２４】
このようにすれば、モディファイアボリュームの設定に最適なバウンディングボリュームを用いて、モディファイアボリュームの設定処理を行えるようになる。但し、バウンディングボリュームを用いずに、モデルオブジェクトやパーツオブジェクト自体を変形することで、モディファイアボリュームを設定してもよい。
【００２５】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記バウンディングボリュームの頂点密度が、モデルオブジェクト又は各パーツオブジェクトの頂点密度よりも均一になるようにしてもよい。
【００２６】
ここで、頂点密度が均一とは、例えば、バウンディングボリュームの各部分において頂点間の距離がほぼ均一になるように頂点が配置されていることを意味する。このような、バウンディングボリュームとしては、例えば球（正球、楕円球）オブジェクトなどを考えることができる。
【００２７】
また本発明は、オブジェクト空間において所与の視点から見える画像を生成するための画像生成システムであって、オブジェクトの頂点を第１のベクトルの方向に移動することでオブジェクトを変形し、変形されたオブジェクトをモディファイアボリュームとして設定するモディファイアボリューム設定部を含み、前記モディファイアボリューム設定部が、移動前の頂点の座標をＰ（ＰＸ、ＰＹ、ＰＺ）とし、移動後の頂点の座標をＱ（ＱＸ、ＱＹ、ＱＺ）とし、第１のベクトルをＶＳ（ＶＳＸ、ＶＳＹ、ＶＳＺ）とし、第１のベクトルとオブジェクトの頂点の法線ベクトルとの内積をＩＰとし、ＩＰに乗算される係数をＫとし、オブジェクトの代表点又は頂点と第１の平面との距離パラメータをＨとした場合に、Ｑ＝Ｐ＋Ｈ×（Ｋ×ＩＰ＋１）×ＶＳとなるように、オブジェクトの頂点を移動することを特徴とする。また本発明に係るプログラムは、上記各部としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるためのプログラムを記憶（記録）したことを特徴とする。
【００２８】
本発明によれば、Ｑ＝Ｐ＋Ｈ×（Ｋ×ＩＰ＋１）×ＶＳという関係式に従って、オブジェクトの頂点が移動する。そして、このような関係式を用いることで、第１のベクトルとオブジェクトの頂点の法線ベクトルとのなす角度が小さい頂点ほどその移動距離が長くなるように、オブジェクトの頂点を移動することが可能になる。また、オブジェクト（代表点又は頂点）と第１の平面との距離が長いほど、頂点の移動距離を長くすることも可能になる。
【００２９】
【発明の実施の形態】
以下、本実施形態について図面を用いて説明する。
【００３０】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３１】
１．構成
図１に、本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１７０を含めばよく）、それ以外の各部（機能ブロック）については任意の構成要素とすることができる。
【００３２】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、シフトレバー、アクセルペダル、ブレーキペダル、マイク、センサー、或いは筺体などのハードウェアにより実現できる。
【００３３】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００３４】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部（各手段）としてコンピュータを機能させるためのプログラム（各部をコンピュータに実現させるためのプログラム）が記憶（記録、格納）される。
【００３５】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００３６】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどのハードウェアにより実現できる。
【００３７】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００３８】
通信部１９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３９】
なお本実施形態の各部（各手段）としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００４０】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この場合、処理部１００は、記憶部１７０内の主記憶部１７２をワーク領域として使用して、各種の処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）又はＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラム（ゲームプログラム）により実現できる。
【００４１】
ここで、処理部１００が行う処理としては、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ）の位置や回転角度（Ｘ、Ｙ又はＺ軸回り回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などを考えることができる。
【００４２】
処理部１００は、移動・動作処理部１１０、オブジェクト空間設定部１１２、モディファイアボリューム設定部１１４、描画部１２０、音生成部１３０を含む。なお、処理部１００は、これらの各部（機能ブロック）を全て含む必要はなく、その一部を省略してもよい。
【００４３】
移動・動作処理部１１０は、オブジェクト（移動体）の移動情報（位置、回転角度）や動作情報（オブジェクトの各パーツの位置、回転角度）を求める処理を行う。即ち、操作部１６０によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、オブジェクトを移動させたり動作（モーション、アニメーション）させたりする処理を行う。
【００４４】
より具体的には、移動・動作処理部１１０は、オブジェクト（移動体）の位置や回転角度を例えば１フレーム（１／６０秒、１／３０秒等）毎に変化させる。例えば（ｋ−１）フレームでのオブジェクトの位置、回転角度をＰk-1、θk-1とし、オブジェクトの１フレームでの位置変化量（速度）、回転変化量（回転速度）を△Ｐ、△θとする。するとｋフレームでのオブジェクトの位置Ｐk、回転角度θkは例えば下式（１）、（２）のように求められる。
【００４５】
Ｐk＝Ｐk-1＋△Ｐ              （１）
θk＝θk-1＋△θ              （２）
オブジェクト空間設定部１１２は、移動体（キャラクタ、車、戦車、ロボット）、柱、壁、建物、マップ（地形）などの各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間内に配置設定するための処理を行う。より具体的には、ワールド座標系でのオブジェクトの位置や回転角度（方向）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転）でオブジェクトを配置する。
【００４６】
モディファイアボリューム設定部１１４は、モディファイアボリューム（狭義にはシャドウボリューム）を設定（生成、配置）するための処理を行う。ここで、モディファイアボリュームは、属性変更処理を行う空間を特定するためのボリューム（仮想的なオブジェクト）であり、例えば、閉じたサーフェスモデルとして定義される。
【００４７】
本実施形態では、モディファイアボリューム設定部１１４が、３次元形状のオブジェクトの頂点を、第１のベクトル（狭義には投影ベクトル）の方向に移動（平行移動）し、オブジェクトを変形する。そして、変形されたオブジェクト（或いは更に別の変形処理を施したオブジェクト）を、モディファイアボリュームとして設定（配置）する。
【００４８】
なお、変形されるオブジェクトは、例えば、閉じたサーフェスモデル（楕円球等）として定義される。また、変形されるオブジェクトは、モデルオブジェクトそのものであってもよいし、モデルオブジェクトを構成するパーツオブジェクトそのものであってもよい。或いは、モデルオブジェクトやパーツオブジェクトを内包（enclose）するバウンディングボリューム（モデルオブジェクトやパーツオブジェクトの形状を近似する簡易オブジェクト）であってもよい。
【００４９】
そして、モディファイアボリューム設定部１１４は、第１のベクトルとオブジェクトの頂点の法線ベクトル（面の向きを表すために頂点に対応づけられた法線ベクトル）とのなす角度（該角度と数学的に等価なパラメータを含む）が小さい頂点ほど、その移動距離が長くなるように、オブジェクトの頂点を移動する。また、オブジェクトの代表点（或いは頂点）と第１の平面（狭義には投影面）との距離（例えば直線距離、垂直距離）が長いほど、頂点の移動距離（平行移動距離）を長くする。また、モディファイアボリューム設定部１１４は、モディファイアボリュームが第１の平面に交差するようにモディファイアボリュームを設定する。具体的には、モディファイアボリュームの略中心点として定義される代表点が、第１の平面上に位置するように、モディファイアボリュームを設定する。
【００５０】
描画部（画像生成部）１２０は、処理部１００で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。例えば、いわゆる３次元のゲーム画像を生成する場合には、まず、座標変換、クリッピング処理、透視変換或いは光源処理等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点（構成点）に付与される位置座標、テクスチャ座標、色（輝度）データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、ジオメトリ処理後のオブジェクト（１又は複数プリミティブ面）の画像が、描画バッファ１７４（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ）に描画される。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成されるようになる。
【００５１】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００５２】
描画部１２０が含む属性変更部１２２は、モディファイアボリュームにより特定される空間（モディファイアボリューム内の空間或いはモディファイアボリューム外の空間）についての属性変更処理を行う。具体的には、モディファイアボリュームにより特定される空間に存在するプリミティブ（面、線、点或いはピクセル等）に対して、属性変更処理を行う。
【００５３】
ここで属性変更処理としては、影空間に対する輝度低減処理（輝度を暗くする処理）や、照明空間に対する輝度増加処理（輝度を明るくする処理）や、或いは、プリミティブ面にマッピングするテクスチャを変更する処理などを考えることができる。また、これ以外にも、ＣＧ（Computer Graphics）画像の生成に使用する種々の属性（輝度、色、α値、奥行き値、テクスチャ或いは法線ベクトル等）を変更する処理を考えることができる。
【００５４】
なお、属性変更部１２２は、例えばＺバッファ１７６やステンシルバッファ１７８を用いて属性変更処理を行う。
【００５５】
ここで、Ｚバッファ１７６は、奥行き値（Ｚ値）を格納するバッファである。このＺバッファ１７６を用いることで、陰面消去などの処理が可能になる。また、ステンシルバッファ１７８は、格納されている値に、演算（増加、減少又は反転等）を施すことができるバッファである。このステンシルバッファ１７８を用いれば、描画バッファ１７４（フレームバッファ、ワークバッファ等）への描画処理の際に、その描画領域に対応するステンシルバッファ１７８上の領域に対して、予め指定された演算を行うことが可能になる。
【００５６】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００５７】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて生成してもよい。
【００５８】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【００５９】
なお、以下では、格闘ゲームに本実施形態を適用した場合を主に例にとり説明するが、本実施形態は、格闘ゲーム以外の種々のゲームに広く適用できる。
【００６０】
また、以下では、属性変更処理が影生成のための輝度低減処理である場合について主に説明するが、本実施形態の属性変更処理はこれに限定されず、例えば、輝度増加処理やテクスチャ変更処理などに拡張できる。
【００６１】
２．１  モディファイアボリュームの生成
モディファイアボリュームの生成（設定）手法としては、種々の手法が考えられる。
【００６２】
例えば図２（Ａ）の第１の手法では、投影ベクトルＶＳに直交する投影面に３次元オブジェクトＯＢ（閉じたサーフェスモデル）を投影した場合に、その投影画像（２次元画像）を内包するポリゴン（広義にはプリミティブ面。明細書中の他の説明でも同様）ＰＬを求める。そして、このポリゴンＰＬの頂点を投影ベクトルＶＳの方向に引き延ばすことで、モディファイアボリュームＭＶを生成する。
【００６３】
また図２（Ｂ）の第２の手法では、投影ベクトルＶＳ（光源）の方から見た場合の３次元オブジェクトＯＢのエッジＥＤを求め、そのエッジＥＤを投影ベクトルＶＳの方向に引き延ばすことで、モディファイアボリュームＭＶを生成する。
【００６４】
より具体的には、まず、オブジェクトＯＢを構成するポリゴンが、投影ベクトルＶＳの方から見て表向きか、裏向きかを判定する。これは、投影ベクトルＶＳの方向をＺ軸方向とする座標系（光源座標系）において、ポリゴンの法線ベクトルのＺ成分の極性を調べることで判定できる。そして、オブジェクトを構成するポリゴンのエッジの中で、そのエッジを共有する２つのポリゴンのうちの一方が表向きになっており、他方が裏向きになっているエッジＥＤを見つけ出す。そして、見つけ出されたエッジＥＤを投影ベクトルの方向に引き延ばすことで、モディファイアボリュームＭＶを生成する。
【００６５】
しかしながら、図２（Ａ）の第１の手法では、投影ベクトルＶＳがどの方向であってもオブジェクトＯＢの投影画像を常に内包するようなポリゴンＰＬを、求める必要がある。従って、このようなポリゴンＰＬを求める処理のアルゴリズムが煩雑化し、製品の開発期間の長期化を招く。また、投影ベクトルＶＳとオブジェクトＯＢとの相対的な位置関係が微妙に変化しただけでポリゴンＰＬの形状が煩雑に切り替わるような特異点が発生してしまう。このため、モディファイアボリュームＭＶにより生成される影にちらつきが生じてしまう。
【００６６】
また、図２（Ｂ）の第２の手法では、ポリゴンの表裏を判定したり、エッジＥＤを検出する処理の負荷が重いという欠点がある。このため、１フレーム以内に全ての処理を完了させるというリアルタイム処理の要請に応えることが難しくなる。
【００６７】
そこで本実施形態では、以下に説明するような手法でモディファイアボリュームを生成（広義には設定。明細書中の他の説明でも同様）している。
【００６８】
例えば図２（Ｂ）の手法では、図３に示すように、３次元形状のオブジェクトＯＢのエッジＥＤを検出し、このエッジＥＤを投影ベクトルＶＳの方向に引き延ばすことで、モディファイアボリュームＭＶを生成している。
【００６９】
これに対して本実施形態では、図４に示すように、３次元形状のオブジェクトＯＢ自体を投影ベクトルＶＳ（広義には第１のベクトル。明細書中の他の説明でも同様）の方向に変形することで、モディファイアボリュームＭＶ（モディファイアボリューム・オブジェクト）を生成している。
【００７０】
より具体的には、オブジェクトＯＢの頂点（構成点）を、頂点毎に異なった移動距離で、投影ベクトルＶＳの方向に移動する。そして、この頂点の移動によりオブジェクトＯＢを変形し、変形された後のオブジェクトＯＢを、モディファイアボリュームＭＶに設定している。
【００７１】
なお、図４や後述する他の図面では、説明の便宜のために、オブジェクトＯＢやモディファイアボリュームＭＶを平面図形で表している。しかしながら、これらのオブジェクトＯＢ、モディファイアボリュームＭＶは、実際には、閉じた３次元のサーフェスモデルであり、複数の頂点により定義されるオブジェクト（複数のプリミティブ面で構成されるオブジェクト）である。
【００７２】
さて、本実施形態では、例えば図５に示すようにオブジェクトＯＢの頂点ＶＥ１〜ＶＥ５をＶＥ１’〜ＶＥ５’に移動している（ＶＥ５とＶＥ５’は同じ位置になる）。
【００７３】
より具体的には、投影ベクトルＶＳと頂点ＶＥ１〜ＶＥ５での法線ベクトルＮ１〜Ｎ５（オブジェクトを構成するプリミティブ面の向きを表すベクトル）とのなす角度（これらの角度と数学的に均等なパラメータでもよい）が小さい頂点ほど、移動距離ＬＭ１〜ＬＭ５が長くなるように、頂点ＶＥ１〜ＶＥ５を移動する。
【００７４】
例えば図５では、投影ベクトルＶＳと法線ベクトルＮ１のなす角度は０度であり、一番小さい。一方、ＶＳとＮ５のなす角度は１８０度であり、一番大きい。従って、この場合には、ＶＥ１からＶＥ１’への移動距離ＬＭ１が一番長くなり、ＶＥ５からＶＥ５’への移動距離ＬＭ５は一番短くなる。
【００７５】
同様に、ＶＥ２〜ＶＥ４からＶＥ２’〜ＶＥ４’への移動距離をＬＭ２〜ＬＭ４とした場合に、ＬＭ１＞ＬＭ２＞ＬＭ３＞ＬＭ４＞ＬＭ５という関係が成り立つように、頂点ＶＥ１〜ＶＥ５を移動する。
【００７６】
このような手法で頂点を移動すれば、図４に示すように、オブジェクトＯＢを投影ベクトルＶＳの方向に引き延ばすことが可能になり、オブジェクトＯＢの影生成等に最適なモディファイアボリュームＭＶを生成できる。
【００７７】
また、本実施形態ではオブジェクトの代表点（頂点でもよい）と、投影面（広義には第１の平面。明細書中の他の説明でも同様）との距離（狭義には高さ）が長いほど、頂点の移動距離を長くしている。
【００７８】
具体的には、図６では、オブジェクトＯＢ１、ＯＢ２の代表点ＲＰ１、ＲＰ２と投影面ＰＰとの距離はＨ１、Ｈ２であり、Ｈ２の方がＨ１よりも長くなっている。この場合には、図６に示すように、オブジェクトＯＢ２の頂点ＶＥ２１〜ＶＥ２３からＶＥ２１’〜ＶＥ２３’への移動距離ＬＭ２１〜ＬＭ２３を、オブジェクトＯＢ１の頂点ＶＥ１１〜ＶＥ１３からＶＥ１１’〜ＶＥ１３’への移動距離ＬＭ１１〜ＬＭ１３よりも長くする。
【００７９】
このようにすれば、図４に示すように、モディファイアボリュームＭＶを投影面ＰＰに交差させることが可能になる。別の言い方をすれば、投影面ＰＰで区切られる領域ＲＧ１、ＲＧ２（第１、第２の領域）のうち、領域ＲＧ１（ＯＢが配置される側の領域）に、モディファイアボリュームＭＶの一端（例えば右端）が位置し、領域ＲＧ２に、ＭＶの他端（例えば左端）が位置するように、ＭＶを配置できる。
【００８０】
そして、このようにモディファイアボリュームＭＶが投影面ＰＰに交差するようになれば、図４に示すような交差領域ＣＲＧが確保されるようになる。従って、この確保された交差領域ＣＲＧに対して、影生成のための輝度低減処理（広義には属性変更処理。明細書中の他の記載においても同様）を適正に施すことが可能になる。
【００８３】
なお、図６では、オブジェクトＯＢ１、ＯＢ２の代表点ＲＰ１、ＲＰ２と投影面ＰＰとの距離Ｈ１、Ｈ２に応じて、頂点の移動距離ＬＭ１１〜ＬＭ１３、ＬＭ２１〜ＬＭ２３を変化させている。しかしながら、オブジェクトＯＢ１、ＯＢ２を構成する頂点と投影面ＰＰとの距離に応じて、頂点の移動距離を変化させてもよい。
【００８４】
以上のように説明した本実施形態では、図２（Ａ）の第１の手法とは異なり、投影画像を内包するポリゴンＰＬの生成処理が不要であり、頂点を移動するだけで自動的にモディファイアボリュームＭＶを生成できる。従って、モディファイアボリュームＭＶを生成する処理を簡素化できる。また、図２（Ａ）の第１の手法とは異なり、投影ベクトルＶＳとオブジェクトＯＢとの相対的な位置関係が変化しても特異点等が発生しないため、影のちらつきの発生も防止できる。
【００８５】
また、図２（Ｂ）、図３の第２の手法ではオブジェクトＯＢのエッジＥＤを検出する必要があるが、本実施形態では、このようなエッジＥＤの検出処理は不要となる。従って、処理負荷を大幅に軽減できる。
【００８６】
２．２  頂点移動処理の具体例
さて、本実施形態では、具体的には以下に説明する手法で頂点を移動している。
【００８７】
例えば、移動前のオブジェクトＯＢの頂点（ＶＥ１〜ＶＥ５等）の座標をＰ（ＰＸ、ＰＹ、ＰＺ）とし、移動後の頂点の座標をＱ（ＱＸ、ＱＹ、ＱＺ）とし、投影ベクトルをＶＳ（ＶＳＸ、ＶＳＹ、ＶＳＺ）とする。また、投影ベクトルＶＳとＯＢの頂点の法線ベクトル（Ｎ１〜Ｎ５等）との内積をＩＰとし、ＩＰに乗算される係数をＫとし、ＯＢ（代表点又は頂点）と投影面ＰＰとの距離パラメータをＨとする。
【００８８】
この場合に、本実施形態では、
Ｑ＝Ｐ＋Ｈ×（Ｋ×ＩＰ＋１）×ＶＳ      （３）
となるように、オブジェクトの頂点を移動している。
【００８９】
上式（３）によれば、投影ベクトルＶＳと頂点の法線ベクトルとの内積ＩＰが大きな値になるほど、Ｐ、Ｑ間の移動距離が長くなる。従って、図６に示すように、投影ベクトルＶＳと法線ベクトルとのなす角度が小さい頂点ほど、その移動距離を長くすることが可能になる。
【００９０】
また、上式（３）によれば、距離パラメータＨが長いほど、Ｐ、Ｑ間の移動距離が長くなる。従って、図７に示すように、オブジェクト（代表点又は頂点）と投影面との距離が長いほど、そのオブジェクトの頂点の移動距離を長くすることが可能になる。
【００９１】
このように、上式（３）によれば、簡素で負荷の軽い処理で、オブジェクトを変形し、モディファイアボリュームを生成することが可能になる。
【００９２】
なお、本実施形態における内積ＩＰは、内積と数学的に均等なパラメータ（例えば、ＶＳの方向をＺ軸とする座標系でのＺ成分等）を含む。
【００９３】
また、上式（３）の係数Ｋは、Ｋ≧１とすることができ、更に望ましくは、Ｋ＞１（例えばＫ＝２）とすることができる。
【００９４】
また、上式（３）の代わりに、
Ｑ＝Ｐ＋Ｈ×Ｆ（ＩＰ）×ＶＳ      （４）
となるように、オブジェクトの頂点を移動してもよい。
【００９５】
ここで、Ｆ（ＩＰ）は、ＩＰを引数とする所与の関数（例えば、引数の線形変換又は非線形変換を行う関数等）である。
【００９６】
２．３  隙間領域の形成
本実施形態では図７に示すように、オブジェクトＯＢとモディファイアボリュームＭＶとの間に、隙間領域（gap region）ＧＲを設けている。即ち、オブジェクトＯＢとモディファイアボリュームＭＶとがオーバラップしないようにしている。
【００９７】
このようにすることで、オブジェクトＯＢに、自分自身の影（以下、自己影と呼ぶ）が落ちる事態を防止できる。
【００９８】
即ち、モディファイアボリュームＭＶで特定される影空間（広義には空間。明細書中の他の説明でも同様）に対しては、影生成のための輝度低減処理が行われる。これにより、例えば図７の交差領域ＣＲＧに、オブジェクトＯＢの影が生成される。
【００９９】
ところが、オブジェクトＯＢとモディファイアボリュームＭＶとがオーバラップしてしまうと、そのオーバラップ領域に対しても輝度低減処理が行われてしまう。この結果、そのオーバラップ領域に自己影が生成されてしまう。
【０１００】
そこで本実施形態では、図７に示すように、オブジェクトＯＢとモディファイアボリュームＭＶとの間に隙間領域ＧＲを形成し（ＭＶをＯＢから逃がし）、自己影の発生を防止している。
【０１０１】
より具体的には、
Ｑ＝Ｐ＋Ｈ×（Ｋ×ＩＰ＋１）×ＶＳ      （５）
という式（上述の（３）と同じ式）において、
ＣＬ≦Ｋ×ＩＰ＋１≦ＣＨ                （６）
となるように、内積ＩＰの値を、所与の範囲にクランプする。このようにすることで、モディファイアボリュームＭＶが図７に示すような形状に設定され、ＭＶとＯＢの間に隙間領域ＧＲが形成される。即ち、上式（５）に従うと図７のＡ１の位置に移動する頂点が、上式（６）で内積ＩＰの値がクランプされることで、Ａ２の位置に移動するようになり、隙間領域ＧＲが形成されるようになる。
【０１０２】
なお、隙間領域ＧＲの形成のためには、下限値ＣＬによるクランプは必要だが、上限値ＣＨによるクランプは必ずしも必要ない。
【０１０３】
また、隙間領域ＧＲを形成する手法は、内積ＩＰの値をクランプする手法に限定されない。例えば、モディファイアボリュームＭＶを、投影ベクトルＶＳの方向（ＯＢからＭＶへと向かう方向）に所与の距離だけ移動させてもよい。或いは、図４のように形成されたモディファイアボリュームＭＶに対して、投影ベクトルＶＳに沿った方向でスケーリング（縮小）する変形処理を施してもよい。即ち、モディファイアボリュームＭＶの頂点を、代表点ＲＭ（中心点）の方向に移動させる変形処理を行ってもよい。
【０１０４】
２．４  距離に応じた隙間長の変化
本実施形態では、隙間領域ＧＲの隙間長を、オブジェクト（代表点又は頂点）と投影面との距離に応じて変化させている。
【０１０５】
より具体的には図８、図９に示すように、隙間領域の隙間長ＧＬ１〜ＧＬ４を、オブジェクトＯＢ１〜ＯＢ４と投影面ＰＰとの距離Ｈ１〜Ｈ４が長くなるほど、長くなるようにしている。
【０１０６】
例えば図９において、オブジェクトＯＢ２、ＯＢ３、ＯＢ４に対応するモディファイアボリュームとして、ＭＶ２、ＭＶ３、ＭＶ４が生成されている。また、オブジェクトＯＢ２、ＯＢ３、ＯＢ４と投影面ＰＰとの距離Ｈ２、Ｈ３、Ｈ４は、Ｈ２＜Ｈ３＜Ｈ４という関係になっている。
【０１０７】
この場合には、オブジェクトＯＢ２、ＯＢ３、ＯＢ４とモディファイアボリュームＭＶ２、ＭＶ３、ＭＶ４との間に形成される隙間領域の隙間長ＧＬ２、ＧＬ３、ＧＬ４を、ＧＬ２＜ＧＬ３＜ＧＬ４という関係になるように設定する。
【０１０８】
なお、投影面ＰＰに接地しているオブジェクトＯＢ１については、隙間領域は設けられておらず、隙間長ＧＬ１は例えば負の値になっている。従って、オブジェクトＯＢ１に対しては自己影が生成される可能性があるが、この自己影は、投影面ＰＰ上に生成される影と一体化されて表示されるため、それほど問題はない。
【０１０９】
オブジェクトと投影面との距離に応じて隙間長を長くする処理は、より具体的には、以下のようにして実現できる。
【０１１０】
即ち、
Ｑ＝Ｐ＋Ｈ×（Ｋ×ＩＰ＋１）×ＶＳ      （７）
ＣＬ≦Ｋ×ＩＰ＋１≦ＣＨ                （８）
という式（上述の（５）、（６）と同じ式）において、クランプ範囲の下限値ＣＬを、距離Ｈに応じて変化させる（上限値ＣＨについても変化させてもよい）。このようにすることで、図９に示すように、距離Ｈ１〜Ｈ４に応じて隙間長ＧＬ１〜ＧＬ４を変化させることが可能になる。
【０１１１】
例えば、ゲームに登場するキャラクタ（広義にはモデルオブジェクト。明細書中の他の説明でも同様）では、地面（投影面）から離れた位置にある手や胴体などのパーツオブジェクトの移動の自由度は高い。従って、例えば、右手と左手の距離が近くなったり、右手と胴体の距離が近くなるという事態が頻繁に生じる。
【０１１２】
そして、例えば、右手と左手の距離が近くなると、右手の影である自己影が左手に落ちたり、右手と胴体の距離が近くなると、右手の影である自己影が胴体に落ちてしまうおそれがある。このようにキャラクタに対して幾つもの自己影が落ちると、生成されるキャラクタの画像が、不自然なものになってしまう。特に、近い距離で落ちる自己影では、その大きさが不均一になったり、自己影同士のつながりが不自然になるという問題があり、生成される画像の品質が更に悪化する。
【０１１３】
本実施形態では、図９において、例えば手に相当するオブジェクトＯＢ４では隙間長ＧＬ４が長くなる。従って、この手に相当するオブジェクトＯＢ４の自己影が、例えば胴体に相当するオブジェクトＯＢ３に落ちるという事態が防止される。従って、より自然で高品質な画像を生成できる。
【０１１４】
また、図９のようにオブジェクトＯＢ４についての隙間長ＧＬ４を長くしても、オブジェクトＯＢ４と投影面ＰＰとの距離Ｈ４は長いため、ＯＢ４の影が投影面ＰＰに落ちなくなるという事態も生じにくい。例えば、投影面ＰＰが壁である場合にも、オブジェクトＯＢ４の影を落とすことが可能になる。
【０１１５】
なお、オブジェクトの隙間長は、オブジェクトの高さに対して線形に変化させてもよいし、非線形に変化させてもよい。また、オブジェクトが所与の高さとなった場合に、隙間長を一定値にするようにしてもよい。
【０１１６】
２．５  モディファイアボリュームの幅の変更
本実施形態では、図７等に示すモディファイアボリュームＭＶの幅（投影ベクトルＶＳに直交する方向での幅）の変更処理を行っている。具体的には図１０のＢ１〜Ｂ４に示すように、投影ベクトルＶＳに直交する方向で、モディファイアボリュームＭＶの幅を太くしている。
【０１１７】
このようにすることで、輝度低減処理（属性変更処理）が行われる交差領域ＣＲＧの面積を、より広くすることが可能になる。この結果、交差領域ＣＲＧに生成される影の画像の品質を更に高めることができる。また、パーツオブジェクトの影同士のつながりを、より自然なものにすることができる。
【０１１８】
より具体的には、本実施形態では、
Ｑ＝Ｐ＋Ｈ×（Ｋ×ＩＰ＋１）×ＶＳ      （９）
という式（上述の（７）と同じ式）において、Ｋ＞１に設定している。
【０１１９】
例えばＫ＝２に設定すれば、投影ベクトルＶＳの方向でのモディファイアボリュームＭＶの長さは２倍になる。そして、モディファイアボリュームＭＶは図１０のＢ５に示す位置で最大幅となり、Ｂ６に示す位置で最小幅になっている。従って、ＭＶの長さ（長軸）を長くすれば、Ｂ１〜Ｂ４に示す位置でのモディファイアボリュームＭＶの幅（短軸）は太くなる。
【０１２０】
そして、このようにＫを、Ｋ＞１となるように大きくしても、前述したように内積ＩＰは所与の範囲にクランプされる。従って、Ｋを大きくしても、隙間長ＧＬの長さは短くならず、オブジェクトＯＢとモディファイアボリュームＭＶとの間の隙間領域ＧＲを確保できる。
【０１２１】
なお、モディファイアボリュームＭＶの幅を太くする手法は、上式（９）でＫ＞１とする手法に限定されない。例えば、モディファイアボリュームＭＶを、投影ベクトルＶＳに直交する方向でスケーリング（縮小）することで、ＭＶの幅を太くしてもよい。
【０１２２】
図１１に、本実施形態により生成されるゲーム画像の例を示す。図１１に示すように、本実施形態によれば、モデルオブジェクトＭＯＢ（キャラクタ）のリアルな影を、地面や壁に適正に落とすことが可能になる。
【０１２３】
図１２、図１３に、モデルオブジェクトＭＯＢに対応して生成されるモディファイアボリュームＭＶの例を示す。図９で説明したように、本実施形態では、モデルオブジェクトＭＯＢを構成するパーツオブジェクト（頭、手、胴体、腰、足等）の高さに応じて、各パーツオブジェクトとモディファイアボリュームＭＶの間の隙間長が変化し、高い位置にあるパーツオブジェクトほど隙間長が長くなっている。また、図１３に示すように、本実施形態では、投影面ＰＰ（地面）に交差するように（投影面ＰＰの下に潜り込むように）、モディファイアボリュームＭＶが設定されている。
【０１２４】
２．６  バウンディングボリュームの利用
本実施形態では図１４（Ａ）に示すように、モデルオブジェクトＭＯＢ又はモデルオブジェクトを構成する各パーツオブジェクトを内包（enclose）するバウンディングボリュームＢＶを用意する。このバウンディングボリュームＢＶも、閉じた３次元のサーフェスモデルであり、複数の頂点（プリミティブ面）により構成されている。
【０１２５】
例えば、モデルオブジェクトＭＯＢのパーツオブジェクトＰＯＢが図１４（Ｂ）に示すようなものであった場合には、このＰＯＢに対応して、図１４（Ｃ）に示すようなバウンディングボリュームＢＶを記憶部に用意する。このバウンディングボリュームＢＶ（簡易オブジェクト）は、パーツオブジェクトＰＯＢの形状を近似した形状のオブジェクトになっている。
【０１２６】
図１５に、本実施形態で使用されるバウンディングボリュームＢＶの一例を示す。このように、バウンディングボリュームＢＶは、モデルオブジェクトＭＯＢ又はその各パーツオブジェクトを包み込む形状のオブジェクトになっている。
【０１２７】
本実施形態では、このバウンディングボリュームＢＶを、図４等で説明した手法で変形し、モディファイアボリュームＭＶを生成している。このようにすることで、移動処理の対象となる頂点の数を減らすことができ、処理負荷を軽減できる。
【０１２８】
なお、頂点移動処理の対象となるバウンディングボリュームＢＶは、なるべく頂点の密度が均一なオブジェクトであることが望ましい。例えば、バウンディングボリュームＢＶとして最も望ましいのは、球（正球及び楕円球）オブジェクトである。
【０１２９】
球オブジェクトの場合には、投影ベクトルがどの方向であっても、その投影ベクトルの方から見たときの頂点の数が均一になる。従って、投影ベクトルがどの方向であっても、球オブジェクトの頂点を適正に移動させることができる。即ち、球オブジェクトを投影ベクトルの方向に変形した場合、投影ベクトルの方向に依存せずに、適正な形状のモディファイアボリュームを常に得ることができる。
【０１３０】
なお、正球オブジェクト（長軸半径と短軸半径が同じ長さのオブジェクト）を所与の軸（長軸又は短軸）方向に拡大又は縮小して種々の形状の楕円球オブジェクト（長軸半径と短軸半径が違う長さのオブジェクト）を求め、求められた楕円球オブジェクトを、モデルオブジェクトの各パーツオブジェクトのバウンディングボリュームに設定してもよい。
【０１３１】
例えば、正球オブジェクトを所与の軸方向に第１〜第Ｎの拡大率（或いは第１〜第Ｎの縮小率）で拡大（或いは縮小）することで、第１〜第Ｎの楕円球オブジェクトを得る。そして、これらの第１〜第Ｎの楕円球オブジェクトを、モデルオブジェクトを構成する第１〜第Ｎのパーツオブジェクトのバウンディングボリュームとして使用する。
【０１３２】
この際に、例えば、変形元になる正球オブジェクトの各頂点の法線ベクトルを、バウンディングボリュームの各頂点の法線ベクトルに設定してもよい。このようにすると、バウンディングボリューム（広義にはオブジェクト）に設定された頂点法線ベクトルの向きは、面の向きとは正確に一致しなくなるが、それほど問題は生じない。
【０１３３】
また、モデルオブジェクトの腕などにおいては、図１６（Ａ）に示すように、頂点の密度が不均一になっている場合がある。即ち、直線形状を表現する部分などでは、ポリゴン数を節約するために頂点数が少なくなっている場合が多い。
【０１３４】
このような場合に本実施形態では、図１６（Ｂ）に示すように、バウンディングボリュームの頂点密度を、図１６（Ａ）に示すモデルオブジェクトやそのパーツオブジェクトの頂点密度よりも均一にしている。このようにすれば、投影ベクトルの方向がどの方向でも、バウンディングボリュームの頂点を適正に移動させることができ、適正な形状のモディファイアボリュームを得ることができる。
【０１３５】
なお、本実施形態の頂点移動処理の対象となるオブジェクトは、パーツオブジェクトを内包するバウンディングボリュームであってもよいし、モデルオブジェクト全体を内包するバウンディングボリュームであってもよい。
【０１３６】
また、モデルオブジェクトやパーツオブジェクト自体の頂点を、図４等に示す本実施形態の頂点移動手法で移動し、モディファイアボリュームを生成してもよい。このようにすれば、モデルオブジェクトやパーツオブジェクトとは別に、バウンディングボリュームを用意する必要が無くなるため、メモリの記憶容量を節約できる。
【０１３７】
２．７  描画順序
本実施形態では、例えば図１７に示すような順序で描画処理を行っている。
【０１３８】
即ち図１７に示すように、まず、背景を描画し、複数のモデルオブジェクトＭＯＢ、ＭＯＢ２を描画する。なお、背景とモデルオブジェクトＭＯＢ１、ＭＯＢ２の描画順序を入れ替えてもよいし、背景とモデルオブジェクトＭＯＢ１、ＭＯＢ２を同時に描画してもよい。
【０１３９】
そして、本実施形態では、その後に、モディファイアボリュームを描画し、モデルオブジェクトＭＯＢ１、ＭＯＢ２の影を生成する。
【０１４０】
図１８に、このような順序で描画することで得られるゲーム画像の例を示す。
【０１４１】
図１８に示すように、本実施形態では、モデルオブジェクトＭＯＢ１の影がモデルオブジェクトＭＯＢ２に落ちるようになる。従って、影のリアル度を更に高めることができる。
【０１４２】
例えば図１９に、比較例の描画手法を示す。
【０１４３】
この比較例の描画手法では、まず、背景を描画し、次に、モディファイアボリュームを描画し、モデルオブジェクトＭＯＢ１、ＭＯＢ２の影を生成する。そして、その後に、複数のモデルオブジェクトＭＯＢ１、ＭＯＢ２を描画する。
【０１４４】
この比較例の描画手法では、複数のモデルオブジェクトＭＯＢ１、ＭＯＢ２の影は、背景に対しては落ちるが、相手のモデルオブジェクトに対しては落ちなくなる。
【０１４５】
即ち図１７の本実施形態の描画手法では、図１８に示すように、モデルオブジェクトＭＯＢ１の影が相手のモデルオブジェクトＭＯＢ２に落ちるが、図１９の比較例の描画手法では、ＭＯＢ１の影はＭＯＢ２に落ちない。従って、本実施形態の手法に比べて、影のリアル度を今ひとつ高めることができない。
【０１４６】
従来は、図９に示す本実施形態とは異なり、モデルオブジェクトとモディファイアボリュームとの間に隙間領域が設けられていなかった。従って、この従来例において、モデルオブジェクトを描画した後にモディファイアボリュームを描画するという図１７の描画順序を採用すると、自己影がモデルオブジェクトに落ちてしまう。このため、このような自己影が落ちないように、従来例においては、図１９に示すような描画順序を採用せざるを得なかった。図１９の描画順序ならば、モディファイアボリュームによる影は、背景にしか落ちないようになるからである。
【０１４７】
ところが、図１９の描画順序では、前述のように、例えばモデルオブジェクトＭＯＢ１の影は、自己影としてＭＯＢ１には落ちなくなるが、相手のモデルオブジェクトＭＯＢ２にも落ちなくなる。従って、結局、図１８のような画像を生成できないことになる。
【０１４８】
これに対して本実施形態では、図９に示すように、モデルオブジェクトとモディファイアボリュームとの間に隙間領域が設けられている。従って、自己影が落ちる可能性が少ないため、図１７に示す描画手法を採用できる。この結果、モデルオブジェクトＭＯＢ１の自己影はＭＯＢ１に落ちず、且つ、ＭＯＢ１の影は相手のモデルオブジェクトＭＯＢ２に落ちるという、理想的なゲーム画像を生成できる。
【０１４９】
３．本実施形態の処理
次に、本実施形態の処理の詳細例について、図２０、図２１、図２２、図２３のフローチャートを用いて説明する。
【０１５０】
まず、投影ベクトル及び隙間パラメータＲＭＩＮ、ＲＭＡＸを求める（ステップＳ１）。
【０１５１】
次に、背景及びモデルオブジェクト（キャラクタ）を描画し、ＺバッファにＺプレーンを生成する（ステップＳ２。図１７参照）。また、ステンシルバッファの全てのピクセルの値を最大値に初期化する（ステップＳ３）。
【０１５２】
次に、投影ベクトルと、地形データと、影空間生成用オブジェクト（閉じたサーフェスモデル）の骨マトリクスと、そのオブジェクトの頂点法線情報とに基づき、モディファイアボリューム（頂点）を生成する（ステップＳ４。図４参照）。
【０１５３】
次に、モディファイアボリュームを構成するポリゴンのうち視点から見て表向きのポリゴンを描画する（ステップＳ５）。この際、そのＺ値がＺバッファのＺ値よりも手前にあるピクセルについて、ステンシルバッファの値を１（第１の値）だけ減算する（Ｚバッファは更新しない）。
【０１５４】
次に、モディファイアボリュームを構成するポリゴンのうち視点から見て裏向きのポリゴンを描画する（ステップＳ７）。この際、そのＺ値が、ＺバッファのＺ値よりも手前にあるピクセルについて、ステンシルバッファの値を１だけ加算する（Ｚバッファは更新しない）。
【０１５５】
このようにすることで、例えば図２４において斜線で示したピクセル（部分）については、ステンシルバッファの値が最大値にはならなくなる。
【０１５６】
次に、全てのオブジェクトを処理したか否かを判断する（ステップＳ７）。そして終了していない場合にはステップＳ４に戻る。
【０１５７】
一方、終了した場合には、ステンシルバッファの値が最大値でないピクセル（部分）を判定し、そのピクセルについての属性変更処理（輝度低減処理等）を行う（ステップＳ８）。即ち、図２４の斜線で示したピクセルについて属性変更処理が行われ、影等が生成される。
【０１５８】
図２１、図２２は、図２０のステップＳ４で行われるモディファイアボリュームの生成処理に関するフローチャートである。
【０１５９】
まず、投影面までの距離Ｈを求める（ステップＳ１１）。そして、オブジェクトが投影面の下に潜っているか否かを判断し（ステップＳ１２）、潜っている場合には処理を終了する。
【０１６０】
潜っていない場合には、距離Ｈに基づき隙間長（逃がし長）を求め、クランプ範囲の上限値ＣＨ、下限値ＣＬを求める（ステップＳ１３。図７参照）。
【０１６１】
次に、距離Ｈと投影ベクトルに基づき、平行移動ベクトルＶＭ＝Ｈ×ＶＳを求める（ステップＳ１４）。そして、頂点番号ｎを０に設定する（ステップＳ１５）。
【０１６２】
次に、骨マトリクスＭを用いて、オブジェクトのローカル座標系での頂点座標Ｐｎを、ワールド座標系の頂点座標Ｐｎ’＝Ｍ×Ｐｎに変換する（ステップＳ１６）。
【０１６３】
次に、骨マトリクスＭを用いて、オブジェクトのローカル座標系での法線ベクトルＮｎを、ワールド座表系の法線ベクトルＮｎ’＝Ｍ×Ｎｎに変換する（ステップＳ１７）。そして、投影ベクトルＶＳと法線ベクトルＮｎ’の内積ＩＰ＝ＶＳ・Ｎｎ’を求める（ステップＳ１８）。
【０１６４】
なお、投影ベクトルＶＳをワールド座標系からオブジェクトのローカル座標系に座標変換し、ローカル座標系での投影ベクトルＶＳと、ローカル座標系での法線ベクトルとの内積を求めるようにしてもよい。
【０１６５】
次に、ＩＰ’＝Ｋ×ＩＰ＋１を求める（図２２のステップＳ１９）。そして、ＩＰ’の値をクランプ範囲（ＣＬ〜ＣＨ）にクランプする（ステップＳ２０）。
【０１６６】
次に、平行移動ベクトルをＩＰ’倍し、ＶＭ’＝ＩＰ’×ＶＭを求める（ステップＳ２１）。そして、Ｐｎ’をＶＭ’により平行移動し、モディファイアボリュームの頂点座標Ｑｎ’＝Ｐｎ’＋ＶＭ’を求める（ステップＳ２２）。
【０１６７】
次に、モディファイアボリュームに所与の変形処理を施す（ステップＳ２３）。
【０１６８】
次に、全ての頂点を処理したか否かを判断する（ステップＳ２４）。そして、処理していない場合には、ｎを１だけインクリメントし（ステップＳ２５）、図２１のステップＳ１６に戻る。
【０１６９】
図２３は、図２１のステップＳ１３で行われる、クランプ範囲の上限値ＣＨ、下限値ＣＬを求める処理についてのフローチャートである。
【０１７０】
まず、Ｈが２．０（第２の値）よりも大きいか否かを判断する（ステップＳ３１）。そして、Ｈ＞２．０の場合には、Ｒ＝ＲＭＡＸに設定する（ステップＳ３２）。一方、Ｈ≦２．０の場合には、Ｒ＝ＲＭＩＮ＋（ＲＭＡＸ−ＲＭＩＮ）×Ｈ／２．０に設定する（ステップＳ３３）。そして、ＣＬ＝Ｒ、ＣＨ＝２．０−Ｒに設定する。（ステップＳ３４）。なお、ＲＭＩＮ、ＲＭＡＸは、投影ベクトルＶＳ（投影ベクトルのＹ成分ＶＳＹ）に基づいて、決めることが望ましい。
【０１７１】
以上のようにすることで、例えば図２５に示すような上限値ＣＨ、下限値ＣＬを求めることができ、ＩＰ’の適正なクランプ処理が可能になる。
【０１７２】
なお、画像生成システムのハードウェアがステンシルバッファをサポートしていない場合には、図２６に示すような手法を採用すればよい。
【０１７３】
即ち、まず、図２６のＣ１、Ｃ２に示すように、元画像（背景及びモデルオブジェクト）をフレームバッファに描画し、この元画像に対応するＺプレーンをＺバッファに作成する。
【０１７４】
次に、このＣ１のＺプレーンを参照しながら、Ｃ３に示すように、モディファイアボリューム（モディファイアボリュームを構成するプリミティブ面）を描画する。
【０１７５】
次に、Ｃ３の色プレーンを変換して、Ｃ４に示すようなＺプレーンを生成する。このＺプレーンでは、影が生成される領域では、Ｚ＝ＺＭＡＸ−Ｉに設定され、影が生成されない領域では、Ｚ＝ＺＭＡＸに設定される（視点から見て手前側に行くほどＺ値が大きくなる場合）。
【０１７６】
次に、Ｃ４のＺプレーンを参照しながら、影の色が設定された画面サイズの半透明ポリゴン（仮想オブジェクト）を、αブレンディングを行いながら、元画像が描画されているフレームバッファに描画する。この場合、半透明ポリゴンのＺ値はＺ＝ＺＭＡＸ−Ｊ（Ｉ＞Ｊ）に設定されている。従って、Ｃ４のＺプレーンにおいてＺ＝ＺＭＡＸ−Ｉに設定されている領域では、影の色の半透明ポリゴンが、背景とαブレンディングされながら描画されるようになる。一方、Ｃ４のＺプレーンにおいてＺ＝ＺＭＡＸに設定されている領域では、影の色の半透明ポリゴンは、陰面消去により描画されないようになる。これにより、Ｚ＝ＺＭＡＸ−Ｉに設定されている領域に対してだけ、影画像を生成できるようになる。
【０１７７】
４．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図２７を用いて説明する。
【０１７８】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【０１７９】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１８０】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０１８１】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、ＭＰＥＧ方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【０１８２】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ（プリミティブ面）で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０１８３】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０１８４】
ゲームコントローラ９４２（レバー、ボタン、筺体、パッド型コントローラ又はガン型コントローラ等）からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０１８５】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０１８６】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０１８７】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０１８８】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０１８９】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【０１９０】
なお、本実施形態の各部（各手段）は、その全てを、ハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１９１】
そして、本実施形態の各部をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各部を実現することになる。
【０１９２】
図２８（Ａ）に、本実施形態を業務用ゲームシステム（画像生成システム）に適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、操作部１１０２（レバー、ボタン）を操作してゲームを楽しむ。内蔵されるシステムボード（サーキットボード）１１０６には、各種プロセッサ、各種メモリなどが実装される。そして、本実施形態の各部を実現するためのプログラム（データ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、このプログラムを格納プログラム（格納情報）と呼ぶ。
【０１９３】
図２８（Ｂ）に、本実施形態を家庭用のゲームシステム（画像生成システム）に適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、コントローラ１２０２、１２０４などを操作してゲームを楽しむ。この場合、上記格納プログラム（格納情報）は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９などに格納されている。
【０１９４】
図２８（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）を介して接続される端末１３０４-１〜１３０４-n（ゲーム機、携帯電話）とを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納プログラム（格納情報）は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリなどの情報記憶媒体１３０６に格納されている。端末１３０４-１〜１３０４-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-１〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-１〜１３０４-nに伝送し端末において出力することになる。
【０１９５】
なお、図２８（Ｃ）の構成の場合に、本実施形態の各部を、ホスト装置（サーバー）と端末とで分散して実現するようにしてもよい。また、本実施形態の各部を実現するための上記格納プログラム（格納情報）を、ホスト装置（サーバー）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０１９６】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。
【０１９７】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１９８】
例えば、明細書中の記載において広義な用語（第１のベクトル、第１の平面、属性変更処理、プリミティブ面、オブジェクト等）として引用された用語（投影ベクトル、投影面、輝度低減処理、ポリゴン、モデルオブジェクト・パーツオブジェクト・バウンディングボリューム等）は、明細書中の他の記載においても広義な用語に置き換えることができる。
【０１９９】
また、モディファイアボリュームの設定手法は、図４〜図２５で詳細に説明した手法に限定されず、種々の変形実施が可能である。
【０２００】
また、オブジェクトとモディファイアボリュームの間に隙間領域を設ける発明においては、図４の手法ではなく、図２（Ａ）〜図３で説明した第１、第２の手法等で、モディファイアボリュームを設定してもよい。これらの第１、第２の手法を採用した場合には、例えば、生成されたモディファイアボリュームを第１のベクトル（投影ベクトル）の方向に隙間長の距離だけ移動したり、第１のベクトルの方向に隙間長の距離だけスケーリングする変形を行えばよい。
【０２０１】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０２０２】
また、本発明は種々のゲーム（格闘ゲーム、競争ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、ロールプレイングゲーム等）に適用できる。
【０２０３】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム（ゲームシステム）に適用できる。
【図面の簡単な説明】
【図１】本実施形態の画像生成システムの機能ブロック図の例である。
【図２】図２（Ａ）、（Ｂ）は、モディファイアボリュームを生成する第１、第２の手法について説明するための図である。
【図３】モディファイアボリュームを生成する第２の手法について説明するための図である。
【図４】本実施形態のモディファイアボリューム生成手法について説明するための図である。
【図５】投影ベクトルと法線ベクトルとのなす角度に応じて頂点の移動距離を変化させる手法について説明するための図である。
【図６】投影面との距離に応じて頂点の移動距離を変化させる手法について説明するための図である。
【図７】オブジェクトとモディファイアボリュームの間に隙間領域を設ける手法について説明するための図である。
【図８】隙間領域の隙間長を投影面との距離に応じて変化させる手法について説明するための図である。
【図９】隙間領域の隙間長を投影面との距離に応じて変化させる手法について説明するための図である。
【図１０】モディファイアボリュームの幅を太くする手法について説明する
【図１１】本実施形態により生成されるゲーム画像の例を示す図である。
【図１２】本実施形態により生成されるモディファイアボリュームの例を示す図である。
【図１３】本実施形態により生成されるモディファイアボリュームの例を示す図である。
【図１４】図１４（Ａ）、（Ｂ）、（Ｃ）は、バウンディングボリュームについて説明するための図である。
【図１５】バウンディングボリュームについて説明するための図である。
【図１６】図１６（Ａ）、（Ｂ）は、バウンディングボリュームの頂点密度を均一にする手法について説明するための図である。
【図１７】本実施形態の描画順序について説明するための図である。
【図１８】本実施形態により生成されるゲーム画像の例を示す図である。
【図１９】比較例の描画順序について説明するための図である。
【図２０】本実施形態の処理の詳細例について示すフローチャートである。
【図２１】本実施形態の処理の詳細例について示すフローチャートである。
【図２２】本実施形態の処理の詳細例について示すフローチャートである。
【図２３】本実施形態の処理の詳細例について示すフローチャートである。
【図２４】本実施形態の処理の詳細例について説明するための図である。
【図２５】本実施形態の処理の詳細例について説明するための図である。
【図２６】画像生成システムのハードウェアがステンシルバッファをサポートしていない場合に用いる手法について説明するための図である。
【図２７】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図２８】図２８（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
ＯＢ、ＯＢ１〜ＯＢ４  オブジェクト
ＭＶ、ＭＶ１〜ＭＶ４  モディファイアボリューム
ＲＰ    オブジェクトの代表点
ＲＭ    モディファイアボリュームの代表点
ＣＲＧ  交差領域
ＶＳ    投影ベクトル（第１のベクトル）
ＰＰ    投影面（第２の平面）
ＲＧ１、ＲＧ２  第１、第２の領域
ＶＥ１〜ＶＥ５  頂点
Ｎ１〜Ｎ５      法線ベクトル
Ｈ、Ｈ１〜Ｈ４  距離
ＧＲ    隙間領域
ＧＬ、ＧＬ１〜ＧＬ４  隙間長
ＣＨ    上限値
ＣＬ    下限値
ＭＯＢ、ＭＯＢ１、ＭＯＢ２  モデルオブジェクト
ＢＶ    バウンディングボリューム
１００  処理部
１１０  移動・動作処理部
１１２  オブジェクト空間設定部
１１４  モディファイアボリューム設定部
１２０  描画部
１２２  属性変更部
１３０  音生成部
１６０  操作部
１７０  記憶部
１７２  主記憶部
１７４  描画バッファ
１７６  Ｚバッファ
１７８  ステンシルバッファ
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  携帯型情報記憶装置
１９６  通信部
【図１】
0004121111.tif 000002
【図２】
0004121111.tif 000003
【図３】
0004121111.tif 000004
【図４】
0004121111.tif 000005
【図５】
0004121111.tif 000006
【図６】
0004121111.tif 000007
【図７】
0004121111.tif 000008
【図８】
0004121111.tif 000009
【図９】
0004121111.tif 000010
【図１０】
0004121111.tif 000011
【図１１】
0004121111.tif 000012
【図１２】
0004121111.tif 000013
【図１３】
0004121111.tif 000014
【図１４】
0004121111.tif 000015
【図１５】
0004121111.tif 000016
【図１６】
0004121111.tif 000017
【図１７】
0004121111.tif 000018
【図１８】
0004121111.tif 000019
【図１９】
0004121111.tif 000020
【図２０】
0004121111.tif 000021
【図２１】
0004121111.tif 000022
【図２２】
0004121111.tif 000023
【図２３】
0004121111.tif 000024
【図２４】
0004121111.tif 000025
【図２５】
0004121111.tif 000026
【図２６】
0004121111.tif 000027
【図２７】
0004121111.tif 000028
【図２８】
0004121111.tif 000029