(57)【特許請求の範囲】
【請求項１】
仮想空間内に配置されるモデルオブジェクトの位置と形状、及び、面オブジェクトの位置と形状を記憶する位置形状記憶部と、
当該モデルオブジェクトの表面に貼り付ける第１のテクスチャと、当該面オブジェクトの表面に貼り付ける第２のテクスチャと、を記憶するテクスチャ記憶部と、
前記位置形状記憶部に記憶された当該モデルオブジェクトと当該面オブジェクトのそれぞれの位置と形状に基づいて、当該モデルオブジェクトを当該面オブジェクトに対して反転させた鏡像オブジェクトの位置と形状を計算する鏡像計算部と、
前記位置形状記憶部に記憶された当該面オブジェクトから前記鏡像計算部により計算された当該鏡像オブジェクトの表面を構成する各領域までの各距離に応じて、当該各領域に対する当該第１のテクスチャの透明度を取得する透明度取得部と、
当該仮想空間内に配置される投影面に対する当該モデルオブジェクトと当該鏡像オブジェクトの投影先を求め、当該面オブジェクトの表面に当該第２のテクスチャを貼り付け、次に、当該鏡像オブジェクトの当該各領域の投影先に、前記テクスチャ記憶部に記憶された当該第１のテクスチャのうち当該各領域に対応する部分を、前記透明度取得部により取得された透明度でそれぞれ貼り付け、次に、当該モデルオブジェクトの投影先に前記テクスチャ記憶部に記憶された第１のテクスチャを貼り付けて、画像を生成する生成部と、
を備えることを特徴とする画像生成装置。
【請求項２】
請求項１に記載の画像生成装置であって、
前記透明度取得部は、当該面オブジェクトから当該鏡像オブジェクトまでの距離が長いほど当該透明度を大きくする、
ことを特徴とする画像生成装置。
【請求項３】
請求項１に記載の画像生成装置であって、
前記透明度取得部は、当該透明度を、当該面オブジェクトから当該鏡像オブジェクトまでの距離に対して単調増加させる、
ことを特徴とする画像生成装置。
【請求項４】
位置形状記憶部、テクスチャ記憶部、鏡像計算部、透明度取得部、生成部を有する画像生成装置にて実行される画像生成方法であって、
前記位置形状記憶部には、仮想空間内に配置されるモデルオブジェクトの位置と形状、及び、面オブジェクトの位置と形状が記憶され、
前記テクスチャ記憶部には、当該モデルオブジェクトの表面に貼り付ける第１のテクスチャと、当該面オブジェクトの表面に貼り付ける第２のテクスチャと、が記憶され、
前記鏡像計算部が、前記位置形状記憶部に記憶された当該モデルオブジェクトと当該面オブジェクトのそれぞれの位置と形状に基づいて、当該モデルオブジェクトを当該面オブジェクトに対して反転させた鏡像オブジェクトの位置と形状を計算する鏡像計算ステップと、
前記透明度取得部が、前記位置形状記憶部に記憶された当該面オブジェクトから前記鏡像計算ステップにより計算された当該鏡像オブジェクトの表面を構成する各領域までの各距離に応じて、当該各領域に対する当該テクスチャの透明度を取得する透明度取得ステップと、
前記生成部が、当該仮想空間内に配置される投影面に対する当該モデルオブジェクトと当該鏡像オブジェクトの投影先を求め、当該面オブジェクトの表面に当該第２のテクスチャを貼り付け、次に、当該鏡像オブジェクトの当該各領域の投影先に、前記テクスチャ記憶部に記憶された第１のテクスチャのうち当該各領域に対応する部分を、前記透明度取得ステップにより取得された透明度でそれぞれ貼り付け、次に、当該モデルオブジェクトの投影先に前記テクスチャ記憶部に記憶された第１のテクスチャを貼り付けて、画像を生成する生成ステップと、
を備えることを特徴とする画像生成方法。
【請求項５】
コンピュータを、
仮想空間内に配置されるモデルオブジェクトの位置と形状、及び、面オブジェクトの位置と形状を記憶する位置形状記憶部、
当該モデルオブジェクトの表面に貼り付ける第１のテクスチャと、当該面オブジェクトの表面に貼り付ける第２のテクスチャと、を記憶するテクスチャ記憶部、
前記位置形状記憶部に記憶された当該モデルオブジェクトと当該面オブジェクトのそれぞれの位置と形状に基づいて、当該モデルオブジェクトを当該面オブジェクトに対して反転させた鏡像オブジェクトの位置と形状を計算する鏡像計算部、
前記位置形状記憶部に記憶された当該面オブジェクトから前記計算部により計算された当該鏡像オブジェクトの表面を構成する各領域までの各距離に応じて、当該各領域に対する当該テクスチャの透明度を取得する透明度取得部、
当該仮想空間内に配置される投影面に対する当該モデルオブジェクトと当該鏡像オブジェクトの投影先を求め、当該面オブジェクトの表面に当該第２のテクスチャを貼り付け、次に、当該鏡像オブジェクトの当該各領域の投影先に、前記テクスチャ記憶部に記憶された第１のテクスチャのうち当該各領域に対応する部分を、前記透明度取得部により取得された透明度でそれぞれ貼り付け、次に、当該モデルオブジェクトの投影先に前記テクスチャ記憶部に記憶された第１のテクスチャを貼り付けて、画像を生成する生成部、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクトの位置や形状を認識しやすくしつつそのオブジェクトの映り込みを表現するために好適な画像生成装置、画像生成方法、ならびに、プログラムに関する。
【背景技術】
【０００２】
仮想空間を表した画像を生成する際、よりリアルに表現するために、床などの反射面にオブジェクトの映り込みを描画する手法がある。例えば、特許文献１には、仮想視点からオブジェクトを見たときにあり得ない反射方向に存在するプリミティブ面への描画を省略するなどして、処理負担を軽減して映り込みを描画する手法が開示されている。
【特許文献１】特許３３７７４９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、特許文献１に示すような従来の手法では、オブジェクトの位置や形状に関わらず単に忠実に仮想の鏡で映したような画像を映り込み画像にしているため、反射面から近い部分も遠い部分も同じように映り込みを作ることになる。その結果、全体として複雑で見づらい画像となってしまったり、オブジェクト本体の像とその映り込みの鏡像との区別がつきにくくなってオブジェクト本体の位置や形状を認識しにくくなったりする問題があった。
【０００４】
本発明はこのような課題を解決するものであり、オブジェクトの位置や形状を認識しやすくしつつそのオブジェクトの映り込みを表現するために好適な画像生成装置、画像生成方法、ならびに、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【０００６】
本発明の第１の観点に係る画像生成装置は、位置形状記憶部、テクスチャ記憶部、鏡像計算部、透明度取得部、生成部を備える。
位置形状記憶部は、仮想空間内に配置されるモデルオブジェクトの位置と形状、及び、面オブジェクトの位置と形状を記憶する。
テクスチャ記憶部は、当該モデルオブジェクトの表面に貼り付ける第１のテクスチャを記憶する。
鏡像計算部は、位置形状記憶部に記憶された当該モデルオブジェクトと当該面オブジェクトのそれぞれの位置と形状に基づいて、当該モデルオブジェクトを当該面オブジェクトに対して反転させた鏡像オブジェクトの位置と形状を計算する。
透明度取得部は、位置形状記憶部に記憶された当該面オブジェクトから鏡像計算部により計算された当該鏡像オブジェクトの表面を構成する各領域までの各距離に応じて、当該各領域に対する当該第１のテクスチャの透明度を取得する。
生成部は、当該仮想空間内に配置される投影面に対する当該モデルオブジェクトと当該鏡像オブジェクトの投影先を求め、当該鏡像オブジェクトの当該各領域の投影先に、テクスチャ記憶部に記憶された第１のテクスチャのうち当該各領域に対応する部分を、透明度取得部により取得された透明度でそれぞれ貼り付け、当該モデルオブジェクトの投影先にテクスチャ記憶部に記憶された第１のテクスチャを貼り付けて、画像を生成する。
これらの構成により、オブジェクトの画像には反射面までの距離によってはっきりと映る部分や霞んで映る部分ができ、映り込みの透明度の違いによってオブジェクトの立体的な位置や形状が掴みやすくなり、且つ、複雑でない画像になる。例えば、あるオブジェクトの反射面への映り込み画像を生成するとき、映り込み画像に設定する透明度と、映り込み画像を構成する各部分と反射面との距離と、の間に依存関係を予め決めておく。画像生成装置は、この依存関係を満たすように映り込み画像の各部分の透明度を変える。すると、ユーザは、この依存関係に基づいて、映り込み画像の各部分に対応するオブジェクト本体の各部分が、それぞれ反射面からどれだけ離れているかを、透明度の違いによって掴むことができる。
【０００７】
透明度取得部は、当該面オブジェクトから当該鏡像オブジェクトまでの距離が長いほど当該透明度を大きくしてもよい。
これらの構成により、反射面から遠ざかるほどオブジェクトの映り込みは透明になり、反射面に近づくほどオブジェクトは不透明になるので、立体的な映り込みを表現でき、ユーザは距離感が掴みやすくなる。例えば、映り込みが明瞭な部分に対応するオブジェクト本体の部分は反射面から近くにあり、映り込みが明瞭でない部分に対応するオブジェクト本体の部分は反射面から遠くにあることがすぐに分かる。
【０００８】
透明度取得部は、当該透明度を、当該面オブジェクトから当該鏡像オブジェクトまでの距離に対して単調増加させてもよい。
この場合、反射面から遠ざかるほどオブジェクトの映り込みは透明になり、反射面に近づくほどオブジェクトの映り込みは不透明になる。また、透明度は全体として単調増加する傾向であればよく、ある任意の距離区間で一定値をとることがあってもよい。例えば、所定の何段階かのグラデーションをつけるように透明度を変えることができる。画像生成装置は立体的な映り込みを表現でき、ユーザは距離感が掴みやすくなる。
【０００９】
テクスチャ記憶部は、当該面オブジェクトの表面に貼り付ける第２のテクスチャを更に記憶してもよい。
そして、生成部は、当該面オブジェクトの表面に当該第２のテクスチャを貼り付け、次に、当該鏡像オブジェクトの当該各領域の投影先に、テクスチャ記憶部に記憶された当該第１のテクスチャのうち当該各領域に対応する部分を、透明度取得部により取得された透明度でそれぞれ貼り付け、次に、当該モデルオブジェクトの投影先にテクスチャ記憶部に記憶された第１のテクスチャを貼り付けて、画像を生成してもよい。
これらの構成により、リアリティのある画像を生成することができる。すなわち、オブジェクト画像と、そのオブジェクト画像の反射面への映り込み画像が、反射面の画像で上書きされて見えなくなってしまうことはない。また、視点の位置がどこにあったとしても、オブジェクト画像が、映り込み画像によって上書きされて見えなくなってしまうこともない。
【００１０】
本発明のその他の観点に係る画像生成方法は、位置形状記憶部、テクスチャ記憶部、鏡像計算部、透明度取得部、生成部を有する画像生成装置にて実行される画像生成方法であって、鏡像計算ステップ、透明度取得ステップ、生成ステップを備える。
位置形状記憶部には、仮想空間内に配置されるモデルオブジェクトの位置と形状、及び、面オブジェクトの位置と形状が記憶される。
テクスチャ記憶部には、当該モデルオブジェクトの表面に貼り付けるテクスチャが記憶される。
鏡像計算ステップは、鏡像計算部が、位置形状記憶部に記憶された当該モデルオブジェクトと当該面オブジェクトのそれぞれの位置と形状に基づいて、当該モデルオブジェクトを当該面オブジェクトに対して反転させた鏡像オブジェクトの位置と形状を計算する。
透明度取得ステップは、透明度取得部が、位置形状記憶部に記憶された当該面オブジェクトから鏡像計算ステップにより計算された当該鏡像オブジェクトの表面を構成する各領域までの距離に応じて、当該各領域に対する当該テクスチャの透明度を変化させる。
生成ステップは、生成部が、当該仮想空間内に配置される投影面に対する当該モデルオブジェクトと当該鏡像オブジェクトの投影先を求め、当該鏡像オブジェクトの当該各領域の投影先に、テクスチャ記憶部に記憶されたテクスチャのうち当該各領域に対応する部分を、透明度取得ステップにより取得された透明度でそれぞれ貼り付け、当該モデルオブジェクトの投影先にテクスチャ記憶部に記憶されたテクスチャを貼り付けて、画像を生成する。
これらの構成により、オブジェクトの画像には反射面までの距離によってはっきりと映る部分や霞んで映る部分ができ、映り込みの透明度の違いによってオブジェクトの立体的な位置や形状が掴みやすくなり、且つ、複雑でない画像になる。
【００１１】
本発明のその他の観点に係るプログラムは、コンピュータを、位置形状記憶部、テクスチャ記憶部、鏡像計算部、透明度取得部、生成部として機能させる。
位置形状記憶部は、仮想空間内に配置されるモデルオブジェクトの位置と形状、及び、面オブジェクトの位置と形状を記憶する。
テクスチャ記憶部は、当該モデルオブジェクトの表面に貼り付けるテクスチャを記憶する。
鏡像計算部は、位置形状記憶部に記憶された当該モデルオブジェクトと当該面オブジェクトのそれぞれの位置と形状に基づいて、当該モデルオブジェクトを当該面オブジェクトに対して反転させた鏡像オブジェクトの位置と形状を計算する。
透明度取得部は、位置形状記憶部に記憶された当該面オブジェクトから計算部により計算された当該鏡像オブジェクトの表面を構成する各領域までの距離に応じて、当該各領域に対する当該テクスチャの透明度を取得する。
生成部は、当該仮想空間内に配置される投影面に対する当該モデルオブジェクトと当該鏡像オブジェクトの投影先を求め、当該鏡像オブジェクトの当該各領域の投影先に、テクスチャ記憶部に記憶されたテクスチャのうち当該各領域に対応する部分を、透明度取得部により取得された透明度でそれぞれ貼り付け、当該モデルオブジェクトの投影先にテクスチャ記憶部に記憶されたテクスチャを貼り付けて、画像を生成する。
これらの構成により、オブジェクトの画像には反射面までの距離によってはっきりと映る部分や霞んで映る部分ができ、映り込みの透明度の違いによってオブジェクトの立体的な位置や形状が掴みやすくなり、且つ、複雑でない画像になる。
【発明の効果】
【００１２】
本発明によれば、オブジェクトの位置や形状を認識しやすくしつつそのオブジェクトの映り込みを表現することができる。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明の実施形態に係る画像生成装置が実現される典型的なゲーム装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００１４】
ゲーム装置１００は、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ（Read Only Memory）１０２と、ＲＡＭ（Random Access Memory）１０３と、インターフェース１０４と、コントローラ１０５と、外部メモリ１０６と、ＤＶＤ（Digital Versatile Disk）−ＲＯＭドライブ１０７と、画像処理部１０８と、音声処理部１０９と、ＮＩＣ（Network Interface Card）１１０と、を備える。
【００１５】
なお、ゲーム用のプログラムおよびデータを記憶したＤＶＤ−ＲＯＭをＤＶＤ−ＲＯＭドライブ１０７に装着して、ゲーム装置１００の電源を投入することにより、当該プログラムが実行され、本実施形態の画像生成装置が実現される。
【００１６】
ＣＰＵ  １０１は、ゲーム装置１００全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。
【００１７】
ＲＯＭ  １０２には、電源投入直後に実行されるＩＰＬ（Initial Program Loader）が記録され、ＣＰＵ  １０１がＤＶＤ−ＲＯＭに記録されたプログラムをＲＡＭ  １０３に読み出して実行する。また、ＲＯＭ  １０２には、ゲーム装置１００全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録され、ＣＰＵ  １０１がこれらのプログラム等を読み出して実行する。
【００１８】
ＲＡＭ  １０３は、データやプログラムを一時的に記憶するためのもので、ＤＶＤ−ＲＯＭから読み出したプログラムやデータ、その他ゲームの進行に必要なデータが保持される。
【００１９】
インターフェース１０４を介して接続されたコントローラ１０５は、ユーザがゲーム実行の際に行う操作入力を受け付ける。たとえば、コントローラ１０５には、Ａボタン，Ｂボタン，Ｘボタン，Ｙボタンや４方向を示す各方向ボタン（方向キー）等が配置されている。そして、これらのボタンがユーザに押下されると、押下されたボタンに応じた操作入力を受け付ける。
【００２０】
インターフェース１０４を介して着脱自在に接続された外部メモリ１０６には、ゲームの進行状態を示すデータ、通信のログ（記録）のデータなどが書き換え可能に記憶される。ユーザは、コントローラ１０５を介して指示入力を行うことにより、これらのデータを適宜外部メモリ１０６に記録することができる。
【００２１】
ＤＶＤ−ＲＯＭドライブ１０７に装着されるＤＶＤ−ＲＯＭには、ゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。ＣＰＵ  １０１の制御によって、ＤＶＤ−ＲＯＭドライブ１０７は、これに装着されたＤＶＤ−ＲＯＭに対する読み出し処理を行って、必要なプログラムやデータを読み出し、これらはＲＡＭ  １０３等に一時的に記憶される。
【００２２】
画像処理部１０８は、ＤＶＤ−ＲＯＭから読み出されたデータをＣＰＵ  １０１や画像処理部１０８が備える画像演算プロセッサ（図示せず）によって加工処理した後、これを画像処理部１０８が備えるフレームメモリ（図示せず）に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部１０８に接続されるモニター（図示せず）へ出力される。これにより、各種の画像表示が可能となる。
【００２３】
なお、画像演算プロセッサは、２次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
また、仮想３次元空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Ｚバッファ法によりレンダリングして、所定の視点位置から仮想３次元空間に配置されたポリゴンを俯瞰したレンダリング画像を得る演算の高速実行も可能である。
【００２４】
さらに、ＣＰＵ  １０１と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を２次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。フォント情報は、ＲＯＭ  １０２に記録されているが、ＤＶＤ−ＲＯＭに記録された専用のフォント情報を利用することも可能である。
【００２５】
音声処理部１０９は、ＤＶＤ−ＲＯＭから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカー（図示せず）から出力させる。また、ＣＰＵ  １０１の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
【００２６】
ＮＩＣ  １１０は、ゲーム装置１００をインターネット等のコンピュータ通信網（図示せず）に接続するためのものであり、ＬＡＮ（Local Area Network）を構成する際に用いられる１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−Ｔ規格にしたがうものや、電話回線を用いてインターネットに接続するためのアナログモデム、ＩＳＤＮ（Integrated Services Digital Network）モデム、ＡＤＳＬ（Asymmetric Digital Subscriber Line）モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとＣＰＵ  １０１との仲立ちを行うインターフェース（図示せず）により構成される。
【００２７】
このほか、ゲーム装置１００は、ハードディスク等の大容量外部記憶装置を用いて、ＲＯＭ  １０２、ＲＡＭ  １０３、外部メモリ１０６、ＤＶＤ−ＲＯＭドライブ１０７に装着されるＤＶＤ−ＲＯＭ等と同じ機能を果たすように構成してもよい。
また、ユーザからの文字列の編集入力を受け付けるためのキーボードや、各種の位置の指定および選択入力を受け付けるためのマウスなどの入出力デバイスを接続する形態も採用することができる。
【００２８】
また、本実施形態のゲーム装置１００にかえて、一般的なコンピュータ（汎用のパーソナルコンピュータ等）を本発明に係る画像生成装置として利用することもできる。例えば、一般的なコンピュータは、上記ゲーム装置１００と同様に、ＣＰＵ、ＲＡＭ、ＲＯＭ、ＤＶＤ−ＲＯＭドライブ、および、ＮＩＣを備え、ゲーム装置１００よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラではなく、キーボードやマウスなどを入力装置として利用する。そして、ゲームプログラムをインストールした後に、そのプログラムを実行させると、画像生成装置として機能させることができる。
【００２９】
次に、本実施形態に係る画像生成装置２００の機能的な概要構成について説明する。図２は、画像生成装置２００の概要構成を示す図である。画像生成装置２００は、位置形状記憶部２０１、テクスチャ記憶部２０２、鏡像計算部２０３、透明度取得部２０４、生成部２０５を備える。
【００３０】
本実施形態の画像生成装置２００は、図３に示すように、仮想空間内に配置されるモデルオブジェクト３１０と、面オブジェクト３２０と、鏡像オブジェクト３３０とを含む画像を生成する。
【００３１】
モデルオブジェクト３１０は、例えば、体操や運動などをしている人型のモデルを表すキャラクタオブジェクトである。面オブジェクト３２０は、モデルオブジェクト３１０が乗っている床やステージ、あるいは側面等に設置された鏡、光反射板、ガラス窓などを表すオブジェクトである。鏡像オブジェクト３３０は、あたかも面オブジェクト３２０にモデルオブジェクト３１０が写り込んで見えるかのように配置するキャラクタオブジェクトである。一例として、画像生成装置２００は、仮想空間内のスタジオで、フィットネスのインストラクター（モデルオブジェクト３１０）が、光を反射するステージ（面オブジェクト３２０）の上でエクササイズし、そのインストラクターのステージへ映り込んでいる姿（鏡像オブジェクト３３０）とともに、スタジオ内の様子を表す画像を、後述する画像生成処理により生成する。
【００３２】
位置形状記憶部２０１は、仮想空間内に配置されるモデルオブジェクト３１０の位置と形状、及び、面オブジェクト３２０の位置と形状を記憶する。これらの初期値は例えばＤＶＤ−ＲＯＭに予め格納されており、ＣＰＵ  １０１がＤＶＤ−ＲＯＭドライブ１０７に装着されたＤＶＤ−ＲＯＭを読み出してＲＡＭ  １０３に一時記憶させる。ＣＰＵ  １０１は、一時記憶されるこれらの位置と形状を示すデータを、例えばゲームの進行に応じて、随時更新することができる。ＣＰＵ  １０１、ＲＡＭ  １０３、ＤＶＤ−ＲＯＭドライブ１０７が協働して動作することにより、位置形状記憶部２０１として機能する。
【００３３】
モデルオブジェクト３１０と面オブジェクト３２０の形状は、その表面を微小な多角形（典型的には三角形や四角形など）のポリゴン（プリミティブ）に分割して、数値データ化されて表される。
【００３４】
モデルオブジェクト３１０と面オブジェクト３２０の位置は、１個の動径と２個の偏角を用いた極座標系を用いて、各オブジェクト内の代表点の座標（ｒ，θ，φ）で表される。例えば、各オブジェクトの重心点の座標値が、各オブジェクトの代表点の位置を示す座標値となる。ただし、座標系はこれに限られるものではなく、例えば互いに直交する３軸による直交座標系を用いてもよい。また、仮想空間の全体を表現するグローバル座標系（ワールド座標系）と、オブジェクトごとのローカル座標系（ボディ座標系）とを別々に設定して座標計算等を行う構成を採用してもよい。
【００３５】
テクスチャ記憶部２０２は、モデルオブジェクト３１０の表面に貼り付けるテクスチャと呼ばれる画像データ（以下「第１のテクスチャ」と呼ぶ）を記憶する。また、テクスチャ記憶部２０２は、面オブジェクト３２０の表面に貼り付けるテクスチャ（以下「第２のテクスチャ」と呼ぶ）を記憶する。第１のテクスチャと第２のテクスチャは、例えばＤＶＤ−ＲＯＭに予め格納されており、ＣＰＵ  １０１がＤＶＤ−ＲＯＭドライブ１０７に装着されたＤＶＤ−ＲＯＭを読み出してＲＡＭ  １０３に一時記憶させる。ＣＰＵ  １０１、ＲＡＭ  １０３、ＤＶＤ−ＲＯＭドライブ１０７が協働して動作することにより、テクスチャ記憶部２０２として機能する。なお、後述するように、第１のテクスチャは、鏡像オブジェクト３３０の表面に貼り付けるためのテクスチャとしても用いられる。
【００３６】
鏡像計算部２０３は、位置形状記憶部２０１に記憶されたモデルオブジェクト３１０と面オブジェクト３２０のそれぞれの位置と形状に基づいて、鏡像オブジェクト３３０の位置と形状を計算する。ＣＰＵ  １０１、画像処理部１０８、ＲＡＭ  １０３が協働して動作することにより、鏡像計算部２０３として機能する。
【００３７】
より詳細には、鏡像計算部２０３は、モデルオブジェクト３１０上のある点（例えば各ポリゴンの頂点）について、面オブジェクト３２０に対して対称の位置になるような座標変換によって変換後の点の位置を計算し、同様に他の点についてもこの計算を繰り返す。そして、座標変換後の各点を結んで鏡像オブジェクト３３０を構成するポリゴンとし、鏡像オブジェクト３３０の形状を決定する。簡単に言えば、モデルオブジェクト３１０を面オブジェクト３２０に対して反転させて、鏡像オブジェクト３３０の位置と形状を計算する。
【００３８】
図４（ａ）は、モデルオブジェクト３１０、面オブジェクト３２０、鏡像オブジェクト３３０の相互の位置関係を簡略化して表した一例である。ここでは、面オブジェクト３２０は、図４（ｂ）に示すような平面であるとする。モデルオブジェクト３１０上のある点４０１と鏡像オブジェクト３３０上の対応する点４０３を結ぶ直線と、面オブジェクト３２０との交点４０２は、点４０１と点４０３とを結んだ線分の中点と一致する。言い換えれば、距離Ｒ１＝距離Ｒ１’である。このようにモデルオブジェクト３１０と鏡像オブジェクト３３０は互いに面対称の関係にあり、鏡像計算部２０３はこの関係を満たすように鏡像オブジェクト３３０の位置と形状を計算する。
【００３９】
面オブジェクト３２０の形状は平面に限られない。
図５（ａ）は、モデルオブジェクト３１０、面オブジェクト３２０、鏡像オブジェクト３３０の相互の位置関係を簡略化して表した他の例である。ここでは、面オブジェクト３２０は、図５（ｂ）に示すような、点４０４を円の中心とする面を含む円柱の一部である。点４０１、点４０２、点４０３、点４０４は同一直線上にある。この例においても、モデルオブジェクト３１０と鏡像オブジェクト３３０は凸面鏡を用いた互いに面対称の関係にあると言える。なお、面オブジェクト３２０の形状は、平面、円柱（円筒）のほか、球、凹面、凸面、あるいは、これらの一部又は組み合わせでもよい。
【００４０】
透明度取得部２０４は、面オブジェクト３２０から鏡像計算部２０３により計算された鏡像オブジェクト３３０の表面を構成する各領域（各ポリゴン）までの距離に応じて、各領域に対する第１のテクスチャの透明度をそれぞれ取得する。透明度は、いわゆるα値のことである。ＣＰＵ  １０１、画像処理部１０８、ＲＡＭ  １０３が協働して動作することにより、透明度取得部２０４として機能する。
【００４１】
図６は、面オブジェクト３２０と、鏡像オブジェクト３３０の表面の一部を拡大して表した図である。鏡像オブジェクト３３０は、モデルオブジェクト３１０と同様に、微小な多角形のポリゴンに分割して数値データ化されて表される。透明度取得部２０４は、面オブジェクト３２０から各ポリゴンに対応する各領域６０１（本図中では領域６０１−１，６０１−２，６０１−３と表記）までの距離（本図中ではぞれぞれＬ１，Ｌ２，Ｌ３）を計算する。鏡像オブジェクト３３０の各領域６０１には、後述する生成部２０５によって第１のテクスチャの断片（テクスチャの一部分）がそれぞれ割り当てられる。透明度取得部２０４は、計算された各距離の長さに応じて、割り当てられた第１のテクスチャの断片の透明度をそれぞれ取得する。典型的には、透明度取得部２０４は、計算された距離の長さに対して透明度が単調増加するように計算して、各領域の透明度を取得する。透明度は全体として単調増加する傾向であればよく、ある任意の距離区間で一定値をとることがあってもよい。例えば、所定の何段階かのグラデーションをつけるように透明度を変えることができる。
【００４２】
結果として、鏡像オブジェクト３３０の画像は、面オブジェクト３２０に近いほど透明度が小さくなって第１のテクスチャの元色に近い色になり、鏡像オブジェクト３３０は面オブジェクト３２０に近いほどだんだんとはっきり表示されることになる。一方、面オブジェクト３２０から遠ざかるほど透明度が大きくなって、鏡像オブジェクト３３０はだんだんと背景に溶け込んで霞んでいくように表示されることになる。このように、α値を変えることによって、背景色とテクスチャの色との混合比率が領域ごとに変わる。
【００４３】
例えば、透明度取得部２０４は、図７（ａ）〜（ｄ）に示すような関係を満たすように、鏡像オブジェクト３３０を構成する各領域の透明度を変化させる。縦軸は鏡像オブジェクト３３０を構成する各領域の透明度（α値）、横軸は各領域から面オブジェクト３３２０までの距離である。透明度は０から１までの値を取りうる。透明度が０であれば完全不透明、透明度が１であれば完全透明になる。
図７（ａ）は、透明度取得部２０４が取得する透明度の一例をグラフにして示した図である。本例では、透明度は距離に対して直線的に増加する。そして、閾距離Ｄ１に達すると透明度は一定値（ここではα＝１）になる。
図７（ｂ）は、透明度と距離の関係の、他の例である。本例では、透明度の増加する比率がだんだんと増加する。あるいは２次関数や指数関数等で表されるように増加してもよい。そして、同様に閾距離Ｄ１に達すると透明度は一定値になる。なお、透明度の増加する比率がだんだんと減少していってもよい。
図７（ｃ）は、透明度と距離の関係の、他の例である。本例では、距離が比較的短い範囲では透明度の増加する比率がだんだんと増加していき、距離が比較的長い範囲ではこの比率がだんだんと減少していく。やがて透明度は一定値（ここではα＝１）に収束していく。
図７（ｄ）は、透明度と距離の関係の、他の例である。本例では、透明度は階段関数のように非連続的に変化する。段階数を多くすれば、透明度が滑らかに変化していくように見える。
これらは例示に過ぎず、自由に組み合わせたり変形させたりした実施形態を採用できることは言うまでもない。透明度は０≦α≦１の範囲で変化させているが、他の任意の範囲αｍｉｎ≦α≦αｍａｘで変化させてもよい。αｍｉｎはゼロに限定されるわけではないし、αｍａｘは１に限定されるわけでもない。
【００４４】
生成部２０５は、仮想空間内に配置される投影面に対するモデルオブジェクト３１０と面オブジェクト３２０と鏡像オブジェクト３３０の投影先をそれぞれ求める。ＣＰＵ  １０１、画像処理部１０８、ＲＡＭ  １０３が協働して動作することにより、生成部２０５として機能する。
【００４５】
図８は、生成部２０５が各オブジェクトを投影面８１０に投影する様子を示した模式図である。投影面８１０は仮想空間内の任意の場所に配置される。生成部２０５は、同じく仮想空間内に配置された仮想的な視点８２０から視線方向（本図中の矢印Ｙ１方向）に見た各オブジェクトの画像を投影面８１０に投影する。投影面８１０に投影された画像が、画像生成装置２００に接続されるモニターに出力される表示画像となる。例えば、モデルオブジェクト３１０上の点８５１（本図ではモデルオブジェクト３１０の“手の先端”部分）の投影先は、投影面８１０上の点８６１（本図では鏡像オブジェクト３３０の同じ“手の先端”部分）に対応する。同様に、面オブジェクト３２０上の点８５２（本図では“ステージの先端”部分）の投影先は、投影面８１０上の点８６２に、鏡像オブジェクト３３０上の点８５３（本図では“頭の先端”部分）の投影先は投影面８１０上の点８６３に、それぞれ対応する。同様に、生成部２０５は、モデルオブジェクト３１０、面オブジェクト３２０、鏡像オブジェクト３３０の他の各点について投影先を計算する。
【００４６】
そして、生成部２０５は、各オブジェクトの表面に第１のテクスチャ又は第２のテクスチャを貼り付けて描画して（すなわちテクスチャマッピングして）、表示用の画像データを生成する。より詳細には、生成部２０５は、
（１）まず、面オブジェクト３２０の投影先に、第２のテクスチャを貼り付け、
（２）次に、鏡像オブジェクト３３０の各領域の投影先に、透明度取得部２０４により取得された透明度で、第１のテクスチャのうち各領域に対応する部分をそれぞれ貼り付け、
（３）さらに、モデルオブジェクト３１０の投影先に、テクスチャ記憶部２０２に記憶されている（透明度を変えていない）第１のテクスチャを貼り付けて、
画像データを生成する。
【００４７】
例えば、面オブジェクト３２０の表面が光を反射する（映り込みを作り出す）材質でできている場合、面オブジェクト３２０、鏡像オブジェクト３３０、モデルオブジェクト３１０、の順にテクスチャを貼り付けて描画する。もし、面オブジェクト３２０の表面が、例えば土の地面などのように光を反射しにくい（映り込みを作り出さない）材質でできているのであれば、鏡像オブジェクト３３０、面オブジェクト３２０、モデルオブジェクト３１０、の順にテクスチャを貼り付ければよい。
【００４８】
ここで、生成部２０５は、透明度取得部２０４によって取得された透明度ではなく、他の処理によって取得された透明度を用いて、テクスチャを貼り付けてもよい。例えば、地面に水たまりがある場合、水たまりの部分に対応する鏡像オブジェクト３３０の表面には透明度取得部２０４によって取得された透明度で第１のテクスチャを貼り付け、それ以外の土の部分に対応する鏡像オブジェクト３３０の表面には完全に不透明にして第１のテクスチャを貼り付けてもよい。
【００４９】
なお、視点８２０から見たときに鏡像オブジェクト３３０全体が完全に面オブジェクト３２０あるいは他のオブジェクトに隠れて見えないのであれば、鏡像オブジェクト３３０の表面にテクスチャを貼り付ける処理を省略することもできる。
【００５０】
次に、上述の各部が行う画像生成処理の流れについて、図９のフローチャートを用いて説明する。以下の説明では、画像生成装置２００が、コントローラ１０５を用いたユーザからの指示入力に基づいて、仮想空間内に配置されたオブジェクト（例えばゲームに登場するプレイヤーキャラクタオブジェクトなど）を含む画像を生成する場面を想定して説明する。
【００５１】
まず、鏡像計算部２０３は、モデルオブジェクト３１０の位置と形状を示すデータ、及び、面オブジェクト３２０の位置と形状を示すデータを、位置形状記憶部２０１からそれぞれ取得する（ステップＳ９０１）。
【００５２】
鏡像計算部２０３は、取得したモデルオブジェクト３１０の位置と形状、及び、面オブジェクト３２０の位置と形状から、鏡像オブジェクト３３０の位置と形状を求める（ステップＳ９０２）。求められた位置と形状を示すデータは、ＲＡＭ  １０３に一時記憶される。
【００５３】
透明度取得部２０４は、鏡像オブジェクト３３０を構成する各領域から面オブジェクト３２０までの距離をそれぞれ求める（ステップＳ９０３）。例えば、透明度取得部２０４は、鏡像オブジェクト３３０を構成する各ポリゴンに対応する各領域の中心点から面オブジェクトへ垂線を下ろし、中心点から垂線と面オブジェクト３２０の交点までの距離（垂線の長さ）をそれぞれ計算する。典型的には各領域の中心点は重心である。計算されたそれぞれの距離を示すデータは、ＲＡＭ  １０３に一時記憶される。
【００５４】
透明度取得部２０４は、ステップＳ９０３で計算した距離に応じて、各領域に貼り付けるテクスチャ部分（第１のテクスチャのうち各領域に割り当てられる部分）の透明度を取得する（ステップＳ９０４）。例えば、透明度取得部２０４は、０≦α≦１の範囲で、計算された距離が長ければ長いほどα値を大きく、短ければ短いほどα値を小さくした透明度を取得する。
【００５５】
この鏡像オブジェクト３３０の表面に貼り付けるテクスチャの透明度は、視点８１０から鏡像オブジェクト３３０（を構成する各ポリゴン）までの距離ではなく、面オブジェクト３２０から鏡像オブジェクト３３０（を構成する各ポリゴン）までの距離によって変わる。
【００５６】
生成部２０５は、この仮想空間内に投影面８１０を配置する（ステップＳ９０５）。生成部２０５は、視点８２０の位置と、視線ベクトルの向き（視線方向）と、ズーム倍率とに基づいて、投影面８１０の位置を決定する。ユーザは、コントローラ１０５を用いて、仮想カメラ（視点８１０）の位置、仮想カメラの向き（視線方向Ｙ１）、仮想カメラの撮影倍率等を指定するためのパラメータを変更する旨の指示ができ、生成部２０５はこのユーザからの指示入力に基づいて投影面８１０の位置と向きを決定する。
【００５７】
例えば、生成部２０５は、視点８１０を起点とする視線ベクトルと垂直に交わる向きに投影面８１０を配置し、ズームインの際には投影面８１０を撮影対象のオブジェクトに近づくように（視点８１０から遠ざかるように）平行移動させ、ズームアウトの際には撮影対象のオブジェクトから遠ざかるように（視点８１０に近づくように）平行移動させる。視線ベクトルの向きを変える（すなわち仮想カメラをパンする）ときには、視線方向の向きの変化に従って投影面８１０の向きも変える。
【００５８】
生成部２０５は、モデルオブジェクト３１０、面オブジェクト３２０、鏡像オブジェクト３３０のそれぞれについて、ステップＳ９０５で配置した投影面８１０への投影先を求める（ステップＳ９０６）。例えば、生成部２０５は、各オブジェクトを投影面８１０に透視投影する。これにより、３次元仮想空間に配置された各オブジェクトが、２次元仮想スクリーンに投影される。本実施形態では、投影の手法として透視投影を採用するので、視点８１０から遠くにあるオブジェクトは小さく、近くにあるオブジェクトは大きく投影されることになる。ただし、透視投影の代わりに平行投影を採用することもできる。
【００５９】
生成部２０５は、テクスチャ記憶部２０２に記憶された、面オブジェクト３２０用のテクスチャである第２のテクスチャを読み出して、面オブジェクト３２０の投影先に貼り付けて描画する（ステップＳ９０７）。
【００６０】
また、生成部２０５は、鏡像オブジェクト３３０の投影先の各領域に、第１のテクスチャのうち各領域に対応する部分を、ステップＳ９０４で取得した透明度で貼り付けて描画する（ステップＳ９０８）。
【００６１】
さらに、生成部２０５は、テクスチャ記憶部２０２に記憶された、モデルオブジェクト３１０用のテクスチャである第１のテクスチャを読み出して、モデルオブジェクト３１０の投影先に貼り付けて描画する（ステップＳ９０９）。ここでは生成部２０５は透明度を変えずにテクスチャを貼り付ける。
【００６２】
このように生成された画像データが、モニターに表示するための画像データとなる。生成された画像データにはモデルオブジェクト３１０の床面（面オブジェクト３２０）への映り込み（鏡像オブジェクト３３０）が含まれるので、より立体感がありリアリティのある画像が得られる。しかも、床面から高い位置にあるものほど、その床面への映り込みが霞んでいくので、高さの違いを把握しやすい画像となる。
【００６３】
例えば、本発明を用いて、ステージの上にモデルが垂直に立っている画像を生成すると、モデルの足付近（ステージに近い部分）のステージへの映り込みははっきりとするが、視点８１０がモデルの近くにあったとしても、頭付近（ステージから遠い部分）の映り込みは霧がかかったようにだんだんとぼんやりしていき、代わりにステージの模様等がはっきり映るようになる。つまり、ステージから高い位置にある部分ほど、そのステージへの映り込みは透明度が上がって薄くなっていく。もし頭付近の映り込みの透明度が、足元付近の映り込みの透明度より大きければ、頭付近が足元付近より相対的にステージから高いところにあることが容易に分かる。
【００６４】
もし、鏡像オブジェクト３３０を構成する各領域の透明度を、面オブジェクト３２０からの距離ではなく、視点８１０からの距離に応じて変化させるとすると、「遠くのものほど霞んで見える」ように透明度を変えることになる。よって、視点８１０がモデルオブジェクト３１０に数メートル程度まで接近していれば、透明度はほとんど変化しないことになる。しかし、本実施形態では、透明度取得部２０４は、鏡像オブジェクト３３０の各領域の透明度を、視点８１０からの距離ではなく、面オブジェクト３２０からの距離に応じて変えている。つまり、面オブジェクト３２０までの距離（床面からの高さ）に依存して透明度が変わる。したがって、視点８１０がモデルオブジェクト３１０に接近していても、鏡像オブジェクト３３０は面オブジェクト３２０から離れている部分ほど透明度が大きくなって薄れていき、面オブジェクト３２０に近いほど透明度が小さくなってはっきり映るようになる。
【００６５】
もし、単純にＺバッファ法やＺソート法を用いて、視点８１０から遠くにあるオブジェクトから順にテクスチャを貼り付けていくと、通常、面オブジェクト３２０より鏡像オブジェクト３３０の方が遠くにあるので、鏡像オブジェクト３３０に面オブジェクト３２０が上書きされてしまい、鏡像が表示されないことになる。しかし、本実施形態では、面オブジェクト３２０、鏡像オブジェクト３３０、モデルオブジェクト３１０の順にテクスチャを貼り付けているので、鏡像オブジェクト３３０が面オブジェクト３２０に隠れて表示されないということはない。
【００６６】
なお、モデルオブジェクト３１０、面オブジェクト３２０、鏡像オブジェクト３３０以外に、例えば背景用のキャラクタオブジェクトなど他のオブジェクトが存在する場合には、そのオブジェクトの位置と形状も計算して所定のテクスチャを貼り付ければよい。その場合、そのテクスチャを貼り付ける順番を先にするほど、後からテクスチャを貼り付けたオブジェクトの陰になって消される（視点８１０から見えなくなる）ので、テクスチャを貼り付ける処理は、ステップＳ９０７の前、ステップＳ９０８の前、ステップＳ９０９の前、あるいは、ステップＳ９０９の後のうちのいずれかに場面に応じて行えばよい。例えば、モデルオブジェクト３１０より遠くに固定されている背景のオブジェクトであれば、ステップＳ９０７の前であることが望ましい。
【００６７】
本実施形態では、面オブジェクト３２０に第２のテクスチャを貼り付けているが、面オブジェクト３２０が全くの透明である場合などには、ステップＳ９０７を省略してもよい。また、例えばステップＳ９０７を省略して面オブジェクト３２０の表面に第２のテクスチャを貼り付けず、結果的に面オブジェクト３２０が表示されない画像を生成したとしても、モデルオブジェクト３１０と共に鏡像オブジェクト３３０を表示させれば、モデルオブジェクト３１０と鏡像オブジェクト３３０の間に映り込みを作り出すステージがあることをユーザに想起させることができ、しかも描画処理の負荷を軽減できる。
【００６８】
本発明は、上述した実施形態に限定されず、種々の変形及び応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
【００６９】
面オブジェクト３２０は床やステージに限られない。例えば、水面に浮かぶ船を表す画像などを生成することもできる。この場合、船がモデルオブジェクト３１０であり、水面が面オブジェクト３２０であり、水面に映った船体像が鏡像オブジェクト３３０に相当する。水面が穏やかな状態であれば、生成部２０５は、水面、水面に映る船体像（かげ）、船、の順にテクスチャを貼り付けて画像を生成する。つまり、生成される画像は、水面に船体像が反射して映っているかのような画像になる。水面が荒れている状態であれば、生成部２０５は、水面に映る船体像、水面、船、の順にテクスチャを貼り付けて画像を生成する。つまり、穏やかであれば水面に映っていたはずの船体像を隠すことができる。
【００７０】
面オブジェクト３２０は、光沢のある床やステージ、水面、海面、逃げ水などのように水平方向に広がるものに限られない。例えば任意の方向に立てかけられた鏡、窓、ガラスで覆われたビルの側面などでもよい。
【００７１】
上記実施形態では、透明度取得部２０４は、鏡像オブジェクト３３０の透明度を、視点８２０からの距離ではなく、面オブジェクト３２０からの距離に応じて変えている。しかし、面オブジェクト３２０からの距離に応じて変えるとともに、視点８２０からの距離に応じて透明度を変えるようにしてもよい。つまり、透明度取得部２０４は、鏡像オブジェクト３３０を構成する各領域の透明度を、（ａ）各領域から面オブジェクト３２０までの距離が長くなるほど大きくし、且つ、（ｂ）各領域から視点８２０までの距離が長くなるほど大きくする、ようにしてもよい。このようにすれば、遠くのものほど霞んで見えるように表現でき、より現実感のある画像となる。
【００７２】
画像生成装置２００を装置の全部又は一部として動作させるためのプログラムを、メモリカード、ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ（Magneto Optical disk）などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、上述の手段として動作させ、あるいは、上述の工程を実行させてもよい。
【００７３】
さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【００７４】
以上説明したように、本発明によれば、オブジェクトの位置や形状を認識しやすくしつつそのオブジェクトの映り込みを表現するために好適な画像生成装置、画像生成方法、ならびに、プログラムを提供することができる。
【図面の簡単な説明】
【００７５】
【図１】本発明の画像生成装置が実現される典型的なゲーム装置の概要構成を示す図である。
【図２】画像生成装置の機能的構成を説明するための図である。
【図３】画像生成装置によって生成される画像の例である。
【図４】（ａ）モデルオブジェクトと面オブジェクトと鏡像オブジェクトを説明するための図である。（ｂ）面オブジェクトの一例である。
【図５】（ａ）モデルオブジェクトと面オブジェクトと鏡像オブジェクトを説明するための図である。（ｂ）面オブジェクトの一例である。
【図６】面オブジェクトと、鏡像オブジェクト上の各領域との距離を説明するための図である。
【図７】（ａ）〜（ｄ）は、鏡像オブジェクト上の各領域の透明度と、各領域から面オブジェクトまでの距離との関係の例を示す図である。
【図８】投影面に画像を投影する処理を説明するための図である。
【図９】画像生成処理を説明するためのフローチャートである。
【符号の説明】
【００７６】
１００  ゲーム装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  インターフェース
１０５  コントローラ
１０６  外部メモリ
１０７  ＤＶＤ−ＲＯＭドライブ
１０８  画像処理部
１０９  音声処理部
１１０  ＮＩＣ
２００  画像生成装置
２０１  位置形状記憶部
２０２  テクスチャ記憶部
２０３  鏡像計算部
２０４  透明度取得部
２０５  生成部
３１０  モデルオブジェクト
３２０  面オブジェクト
３３０  鏡像オブジェクト
８１０  投影面
８２０  視点
【図１】
0004575937.tif 000002
【図２】
0004575937.tif 000003
【図３】
0004575937.tif 000004
【図４】
0004575937.tif 000005
【図５】
0004575937.tif 000006
【図６】
0004575937.tif 000007
【図７】
0004575937.tif 000008
【図８】
0004575937.tif 000009
【図９】
0004575937.tif 000010