(57)【特許請求の範囲】
【請求項１】
画像生成を行うシステムであって、
第１のオブジェクトと第２のオブジェクトの位置関係に基づいて、第１のオブジェクトの面の色に関連づけて設定する仮想光源の色情報を決定する決定手段と、
決定された色情報に基づいて第１のオブジェクトの代表点に仮想光源を設定し第２のオブジェクトに対して光源処理を施して第２のオブジェクトの画像を生成する手段と、
を含み、
あらかじめ第１のオブジェクトと第２のオブジェクトの複数の位置関係に対応した、仮想光源の色情報をテーブル情報としてもたせておき、
前記決定手段が、リアルタイムに検出された第１のオブジェクトと第２のオブジェクトの位置関係に基づき、前記テーブル情報から対応する光源の色情報を読み出して、読み出した色情報に基づき第１のオブジェクトの面の色に関連づけて設定する仮想光源の色情報を決定することを特徴とする画像生成システム。
【請求項２】
請求項１において、
前記第１のオブジェクトは、複数の色を含むオブジェクトであることを特徴とする画像生成システム。
【請求項３】
請求項１または２のいずれかにおいて、
前記決定手段が、第１のオブジェクトからみた第２のオブジェクトの方向に基づいて設定する仮想光源の色情報を決定することを特徴とする画像生成システム。
【請求項４】
請求項１〜３のいずれかにおいて、
前記決定手段が、第２のオブジェクトから第１のオブジェクトをみたときの画像を描画した場合の全描画領域に対する第１のオブジェクトの描画領域の割合に基づいて第１のオブジェクトの面の色に関連づけて設定する仮想光源の色情報を決定することを特徴とする画像生成システム。
【請求項５】
請求項１〜４のいずれかにおいて、
前記決定手段が、第２のオブジェクトから第１のオブジェクトをみたときの画像を描画した場合の描画領域のピクセルの色情報に基づき第１のオブジェクトの面の色に関連づけて設定する仮想光源の色情報を決定することを特徴とする画像生成システム。
【請求項６】
請求項１〜５のいずれかにおいて、 
あらかじめ複数の異なる位置関係にある第１のオブジェクトと第２のオブジェクトについて第２のオブジェクトから第１のオブジェクトをみたときの画像を描画して、第２のオブジェクトから第１のオブジェクトをみたときの画像を描画した場合の全描画領域に対する第１のオブジェクトの描画領域の割合または第１のオブジェクトの描画領域のピクセルの色情報に基づいて、各位置関係に対応した、光源の色情報をテーブル情報としてもたせることを特徴とする画像生成システム。
【請求項７】
コンピュータが実行可能なプログラムであって、
第１のオブジェクトと第２のオブジェクトの位置関係に基づいて、第１のオブジェクトの面の色に関連づけて設定する仮想光源の色情報を決定する決定手段と、
決定された色情報に基づいて第１のオブジェクトの代表点に仮想光源を設定し第２のオブジェクトに対して光源処理を施して第２のオブジェクトの画像を生成する手段と、
をコンピュータに実現させ、
あらかじめ第１のオブジェクトと第２のオブジェクトの複数の位置関係に対応した、仮想光源の色情報をテーブル情報としてもたせておき、
前記決定手段として、リアルタイムに検出された第１のオブジェクトと第２のオブジェクトの位置関係に基づき、前記テーブル情報から対応する光源の色情報を読み出して、読み出した色情報に基づき第１のオブジェクトの面の色に関連づけて設定する仮想光源の色情報を決定するように、前記コンピュータを実行させることを特徴とするプログラム。
【請求項８】
請求項７において、
前記第１のオブジェクトは、複数の色を含むオブジェクトであることを特徴とするプログラム。
【請求項９】
請求項７または８のいずれかにおいて、
前記決定手段として、第１のオブジェクトからみた第２のオブジェクトの方向に基づいて設定する仮想光源の色情報を決定するようにコンピュータを実行させることを特徴とするプログラム。
【請求項１０】
請求項７〜９のいずれかにおいて、
前記決定手段として、第２のオブジェクトから第１のオブジェクトをみたときの画像を描画した場合の全描画領域に対する第１のオブジェクトの描画領域の割合に基づいて第１のオブジェクトの面の色に関連づけて設定する仮想光源の色情報を決定するようにコンピュータを実行させることを特徴とするプログラム。
【請求項１１】
請求項７〜１０のいずれかにおいて、
前記決定手段として、第２のオブジェクトから第１のオブジェクトをみたときの画像を描画した場合の描画領域のピクセルの色情報に基づき第１のオブジェクトの面の色に関連づけて設定する仮想光源の色情報を決定するようにコンピュータを実行させることを特徴とするプログラム。
【請求項１２】
請求項７〜１１のいずれかにおいて、
あらかじめ複数の異なる位置関係にある第１のオブジェクトと第２のオブジェクトについて第２のオブジェクトから第１のオブジェクトをみたときの画像を描画して、第２のオブジェクトから第１のオブジェクトをみたときの画像を描画した場合の全描画領域に対する第１のオブジェクトの描画領域の割合または第１のオブジェクトの描画領域のピクセルの色情報に基づいて、各位置関係に対応した、光源の色情報をテーブル情報としてもたせることを特徴とするプログラム。
【請求項１３】
コンピュータにより読みとり可能な情報記憶媒体であって、請求項７〜１３のいずれかのプログラムを記憶することを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
現実世界では、例えば色のついた看板の近くにオブジェクトがある場合に、当該看板が日光を反射して、その反射光により看板のそばのあるオブジェクトが照らされ、オブジェクトに看板の色が反映して見えることがある。
【０００３】
ここにおいて看板に表と裏で異なる色が塗られていた場合には、オブジェクトが看板にたいしてどの位置に置かれているかによって、オブジェクトあたる反射光の色が異なってくる。
【０００４】
このように所与のオブジェクトが他のオブジェクトの反射光の影響を受ける様子は例えばラジオシティ法等によって表現等の手法を用いることによりコンピュータグラフィックスによって表現することができる。
【０００５】
しかし例えばゲーム装置のように限られた処理能力のハードウエアを用いてリアルタイム処理を行う場合には、ラジオシティ法は処理負荷が高すぎるという問題点があった。
【０００６】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、所与のオブジェクトが他のオブジェクトの反射光や発光の影響を受ける様子を少ない演算負荷でリアルに表現することが可能な画像生成システム、プログラム及び情報記憶媒体を提供することである。
【０００７】
【課題を解決するための手段】
（１）本発明は、画像生成を行うシステムであって、
第１のオブジェクトと第２のオブジェクトの位置関係に基づいて、第１のオブジェクトに関連づけて設定する仮想光源の色情報を決定する手段と、
決定された色情報に基づいて第１のオブジェクトの代表点に仮想光源を設定し第２のオブジェクトに対して光源処理を施して第２のオブジェクトの画像を生成する手段と、
を含むことを特徴とする。
【０００８】
また本発明にかかるプログラムは、コンピュータにより使用可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記手段をコンピュータに実現させることを特徴とする。また本発明にかかる情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体、上記手段をコンピュータに実現させるためのプログラムを含むことを特徴とする。
【０００９】
ここにおいて仮想光源の色情報とは、例えば仮想光源の色及び強度の少なくとも一方に関する情報である。なお色と強度は別個のパラメータで制御される場合でもよいし、例えばＲＧＢ値のように一体的に制御する場合でもよい。例えばＲＧＢ値で制御を行うハードにおいては仮想光源の色情報はＲＧＢ値となる。
【００１０】
またＲＢＧシステムに限られず、ＨＳＶシステムやＨＬＳシステムやＣＭＹＫシステム等の他のカラー体系を有する場合の色情報でもよく、それらの場合にはその体系に応じた色情報となる。
【００１１】
本発明によれば、第１のオブジェクトと第２のオブジェクトの位置関係に基づいて得られた色情報に基づき第１のオブジェクトの代表点に仮想光源を設定し、第２のオブジェクトに対して光源処理を行う。
【００１２】
第１のオブジェクトの代表点とは例えば第１のオブジェクトの回転中心等である。
【００１３】
一般に光源処理とは、光源光線に対してオブジェクトの表面がどのような明るさを持つか演算し、その明るさに応じた色をオブジェクトの置くために必要な処理であり、例えば所与のシェーディング処理を含む。
【００１４】
第１のオブジェクトの代表点に仮想光源を設定し第２のオブジェクトに対して光源処理を行うとは、第２のオブジェクトの表面に仮想光源からの光の影響を考慮した色をつけることである。
【００１５】
本発明では仮想光源による光源処理を施して第２のオブジェクトの画像を生成することにより、第１のオブジェクトの反射、発光が第２のオブジェクトに与える影響を擬似的に表現することができる。従って所与のオブジェクトが他のオブジェクトの反射光や発光の影響を受ける様子を少ない演算負荷でリアルに表現することができる。
【００１６】
（２）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、前記第１のオブジェクトは、複数の色を含むオブジェクトであることを特徴とする。
【００１７】
複数の色を含むオブジェクトとは、例えばオブジェクトに複数の異なる色のついた部分がある場合等である。また複数の色は、色の色相、彩度、明度の少なくとも１つに基づいて判断することができる。例えば色の色相が異なる場合でもよいし、色の彩度がことなる場合でもよいし、色の明度がことなる場合でもよい。
【００１８】
本発明によれば複数の色を含むオブジェクトの反射、発光が第２のオブジェクトに与える影響を擬似的に表現することができる。従って、複数の色を含むオブジェクトが他のオブジェクトの反射光や発行の影響を受ける様子を少ない演算負荷でリアルに表現することができる。
【００１９】
（３）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、第１のオブジェクトからみた第２のオブジェクトの方向に基づいて設定する仮想光源の色情報を決定することを特徴とする。
【００２０】
第１のオブジェクトからみた第２のオブジェクトの方向に基づいて光源の色情報を設定するとは例えば、第１のオブジェクトからみた第２のオブジェクトの基準方向に対して第１のオブジェクトからみた第２のオブジェクトの方向がどの程度変化したかに基づいて光源の色情報を設定するような場合でもよい。
【００２１】
また第１のオブジェクトからみた第２のオブジェクトの方向に基づいて所定の演算を行い計算により色情報もとめてもいよいし、予め方向と光源の色情報の対応テーブルを作成しておいて、リアルタイムに検出した方向に基づき前記対応テーブルから色情報読み出してくる場合でもよい。また前記対応テーブルから読み出した色情報に基づき補間演算を行って色情報を求める場合でもよい。
【００２２】
（４）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、第２のオブジェクト方向から第１のオブジェクトをみたときの画像を描画した場合の全描画領域に対する第１のオブジェクトの描画領域の割合に基づいて第１のオブジェクトに関連づけて設定する仮想光源の色情報を設定することを特徴とする。
【００２３】
第２のオブジェクト方向から第１のオブジェクトをみたときの画像とは、例えば第１のオブジェクトから第２のオブジェクト方向にある一定距離だけ離れた点に視点をおいて第１のオブジェクトをみた場合の画像等である。
【００２４】
ここで第２のオブジェクト方向から第１のオブジェクトをみたときの画像を描画した場合の全描画領域に対する第１のオブジェクトの描画領域の割合は、リアルタイムに演算して求める場合もよいし、予め各方向から第２のオブジェクトから第１のオブジェクトをみたときの画像を描画して求めた割合について方向と割合の対応テーブルを作成しておき、リアルタイムに検出した方向に基づき前記対応テーブルから読み出してくる場合でもよい。
【００２５】
（５）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、第２のオブジェクト方向から第１のオブジェクトをみたときの画像を描画した場合の描画領域のピクセルの色情報に基づき第１のオブジェクトに関連づけて設定する仮想光源の色情報を決定することを特徴とする。
【００２６】
第２のオブジェクト方向から第１のオブジェクトをみたときの画像とは、例えば第１のオブジェクトから第２のオブジェクト方向にある一定距離だけ離れた点に視点をおいて第１のオブジェクトをみた場合の画像等である。
【００２７】
描画領域のピクセルの色とは例えば描画された第１のオブジェクトのピクセルの色情でもよいし、描画領域全体のピクセルの色情報でもよい。
【００２８】
例えば描画された第１のオブジェクトの全ピクセルの色情報であるＲＧＢ値の合計を行い、その合計値に所定の計数を掛けた値に基づき光源の色を決定するようにしてもよい。
【００２９】
また例えば背景を黒にして第１のオブジェクトを描画する場合には、全描画領域のすべてのピクセルのＲＧＢ値の合計を行い、その合計値に所定の係数を掛けた値に基づき光源の色を決定するようにしてもよい。
【００３０】
ここで第２のオブジェクト方向から第１のオブジェクトをみたときの画像を描画した場合の描画領域のピクセルの色情報は、リアルタイムに演算して求める場合もよいし、予め各方向から第２のオブジェクトから第１のオブジェクトをみたときの画像を描画して求めたピクセルの色情報について方向と割合の対応テーブルを作成しておき、リアルタイムに検出した方向に基づき前記対応テーブルから読み出してくる場合でもよい。
【００３１】
（６）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、あらかじめ第１のオブジェクトと第２のオブジェクトの複数の位置関係に対応した、仮想光源の色情報をテーブル情報としてもたせておき、
リアルタイムに検出された第１のオブジェクトと第２のオブジェクトの位置関係に基づき、前記テーブル情報から対応する光源の色情報を読み出して、読み出した色情報に基づき第１のオブジェクトに関連づけて設定する仮想光源の色情報を決定することを特徴とする。
【００３２】
予めテーブル情報として設定しておくことによりリアルタイムに演算を行う際の処理付加を軽減することができる。
【００３３】
（７）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、あらかじめ複数の異なる位置関係にある第１のオブジェクトと第２のオブジェクトについて第２のオブジェクト方向から第１のオブジェクトをみたときの画像を描画して、第２のオブジェクト方向から第１のオブジェクトをみたときの画像を描画した場合の全描画領域に対する第１のオブジェクトの描画領域の割合または第１のオブジェクトの描画領域のピクセルの色情報に基づいて、各位置関係に対応した、光源の色情報をテーブル情報としてもたせることを特徴とする。
【００３４】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて説明する。
【００３５】
１．構成
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を何ら限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００３６】
図１に、本実施形態のブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部１００を含めばよく、それ以外のブロックについては、任意の構成要素とすることができる。
【００３７】
ここで処理部１００は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、或いはＡＳＩＣ（ゲートアレイ等）などのハードウェアや、所与のプログラム（ゲームプログラム）により実現できる。
【００３８】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、筺体などのハードウェアにより実現できる。
【００３９】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、メインメモリ１７２、フレームバッファ１７４（第１のフレームバッファ、第２のフレームバッファ）として機能し、ＲＡＭなどのハードウェアにより実現できる。
【００４０】
情報記憶媒体（コンピュータにより使用可能な記憶媒体）１８０は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納される情報に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１８０には、本発明（本実施形態）の手段（特に処理部１００に含まれるブロック）を実行するための情報（プログラム或いはデータ）が格納される。
【００４１】
なお、情報記憶媒体１８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１７０に転送されることになる。また情報記憶媒体１８０に記憶される情報は、本発明の処理を行うためのプログラムコード、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも１つを含むものである。
【００４２】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００４３】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００４４】
セーブ用情報記憶装置１９４は、プレーヤの個人データ（セーブデータ）などが記憶されるものであり、このセーブ用情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００４５】
通信部１９６は、外部（例えばホスト装置や他のゲームシステム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００４６】
なお本発明（本実施形態）の手段を実行するためのプログラム或いはデータは、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００４７】
処理部１００は、ゲーム処理部１１０、画像生成部１３０、音生成部１５０を含む。
【００４８】
ここでゲーム処理部１１０は、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ面）の位置や回転角度（Ｘ、Ｙ又はＺ軸回り回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置するための処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などの種々のゲーム処理を、操作部１６０からの操作データや、セーブ用情報記憶装置１９４からの個人データや、ゲームプログラムなどに基づいて行う。
【００４９】
画像生成部１３０は、ゲーム処理部１１０からの指示等にしたがって各種の画像処理を行い、例えばオブジェクト空間内で仮想カメラ（視点）から見える画像を生成して、表示部１９０に出力する。また、音生成部１５０は、ゲーム処理部１１０からの指示等にしたがって各種の音処理を行い、ＢＧＭ、効果音、音声などの音を生成し、音出力部１９２に出力する。
【００５０】
なお、ゲーム処理部１１０、画像生成部１３０、音生成部１５０の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００５１】
ゲーム処理部１１０は、移動・動作演算部１１２を含む。
【００５２】
ここで移動・動作演算部１１２は、キャラクタ車などのオブジェクトの移動情報（位置データ、回転角度データ）や動作情報（オブジェクトの各パーツの位置データ、回転角度データ）を演算するものであり、例えば、操作部１６０によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、オブジェクトを移動させたり動作させたりする処理を行う。
【００５３】
より具体的には、移動・動作演算部１１２は、オブジェクトの位置や回転角度を例えば１フレーム（１／６０秒）毎に求める処理を行う。例えば（ｋ−１）フレームでのオブジェクトの位置をＰＭk-1、速度をＶＭk-1、加速度をＡＭk-1、１フレームの時間を△ｔとする。するとｋフレームでのオブジェクトの位置ＰＭk、速度ＶＭkは例えば下式（１）、（２）のように求められる。
【００５４】
ＰＭk＝ＰＭk-1＋ＶＭk-1×△ｔ              （１）
ＶＭk＝ＶＭk-1＋ＡＭk-1×△ｔ              （２）
【００５５】
画像生成部１３０は、座標変換、クリッピング処理、透視変換、或いは光源計算などの種々のジオメトリ処理（３次元演算）や、ジオメトリ処理後のオブジェクト（モデル）を、フレームバッファに描画する描画処理を行う。
【００５６】
画像生成部１３０は照り返し画像生成処理部１４０を含む。
【００５７】
照り返し画像生成処理部１４０は、第１のオブジェクトと第２のオブジェクトの位置関係に基づいて、第１のオブジェクトに関連づけて設定する仮想光源の色情報を決定する処理と、決定された色情報に基づいて第１のオブジェクトの代表点に仮想光源を設定し第２のオブジェクトに対して光源処理を施して第２のオブジェクトの画像を生成する処理を行う。
【００５８】
ここにおいて第１のオブジェクトからみた第２のオブジェクトの方向に基づいて設定する仮想光源の色情報を決定するようにしてもよい。
【００５９】
また第２のオブジェクト方向から第１のオブジェクトをみたときの画像を描画した場合の全描画領域に対する第１のオブジェクトの描画領域の割合に基づいて第１のオブジェクトに関連づけて設定する仮想光源の色情報を設定するようにしてもよい。
【００６０】
また第２のオブジェクト方向から第１のオブジェクトをみたときの画像を描画した場合の描画領域のピクセルの色情報に基づき第１のオブジェクトに関連づけて設定する仮想光源の色情報を決定するようにしてもよい。
【００６１】
またあらかじめ第１のオブジェクトと第２のオブジェクトの複数の位置関係に対応した、仮想光源の色情報をテーブル情報としてもたせておき、リアルタイムに検出された第１のオブジェクトと第２のオブジェクトの位置関係に基づき、前記テーブル情報から対応する光源の色情報を読み出して、読み出した色情報に基づき第１のオブジェクトに関連づけて設定する仮想光源の色情報を決定するようにしてもよい。
【００６２】
なお、本実施形態のゲームシステムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００６３】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末を用いて生成してもよい。
【００６４】
２．本実施形態の特徴と処理
本実施の形態の特徴と処理を図面を用いて説明する。
【００６５】
図２はオブジェクトの反射光による照り返し現象について説明するための図である。
【００６６】
第１のオブジェクト２１０は、緑色の面２１２と赤色の面２１４の色の異なる面を有する立方体である。このような第１のオブジェクト２１０の近くに他の物体がくると、立方体からの反射光によって立方体のほうをむいた面が反射光の照り返しにより明るくなる。このときの照り返しは立方体から受ける反射光の色を反映する。
【００６７】
例えば第２のオブジェクト２２０−２が赤色の面２１４側にある場合には第２のオブジェクト２２０−２の赤色の面２１４に向いた部分が赤く染まることになる。また第２のオブジェクト２２０−２が緑色の面２１２側にある場合には第２のオブジェクト２２０−２の緑色の面２１２に向いた部分が緑に染まることになる。
【００６８】
本実施の形態では第１のオブジェクトの代表点に仮想光源を設定し光源処理を行うことで、第２のオブジェクトに生じる第１のオブジェクトの反射光による照り返し画像を生成する。
【００６９】
ここで本実施の形態では複数の色の面を含む第１のオブジェクトに対する照り返しを第２のオブジェクトの置かれた位置に応じてリアルに表現するために、第１のオブジェクトと第２のオブジェクトの位置関係に基づいて、前記仮想光源の色情報を決定する。
【００７０】
図３は第１のオブジェクトと第２のオブジェクトの位置関係と仮想光源の色情報の関係について説明するための図である。
【００７１】
Ｏ１、Ｏ２はそれぞれ第１のオブジェクト２１０、第２のオブジェクト２２０の回転中心である。Ｘ、Ｙ、Ｚは、原点をＯ１とする第１のオブジェクト２１０のローカル座標系の座標軸である。
【００７２】
２３０は第１のオブジェクトからみた第２のオブジェクトの方向ベクトルであり、第１のオブジェクト２１０の回転中心Ｏ１と第２のオブジェクト２２０の回転中心Ｏ２を結んだベクトルである。２３２は２３０をＸＺ平面に投影したベクトルである。
【００７３】
またβは、方向ベクトル２３０とその投影ベクトル２３２のなす角であり、αは投影ベクトル２３２とＺ軸のなす角である。このαとβの値により、方向ベクトル２３０を特定することができる。ここでαはＺ軸負方向を０とし、そこからＸ正方向が正方向とする。またβはＸＺ平面を０とし、Ｙ方向が正方向とする。
【００７４】
ここで第１のオブジェクト２１０は、立方体の各面が異なる色で構成されているものとする。このような場合、第２のオブジェクト２２０が、立方体からのどのような色の反射光を受けるかは第２のオブジェクトに対して向いている第１のオブジェクトの面の色によって決まってくる。
【００７５】
すなわち第１のオブジェクト２１０と第２のオブジェクト２２０の位置関係（例えば第１のオブジェクトからみた第２のオブジェクトの方向）によって決まってくる。
【００７６】
そこで本実施の形態では、第１のオブジェクト２１０と第２のオブジェクト２２０の位置関係（例えば第１のオブジェクトからみた第２のオブジェクトの方向）を、相対角度α、βで特定し、この値に基づき仮想光源の色情報（例えばＲＧＢ値）を決定する。
【００７７】
なお相対角度α、βにより仮想光源の色情報（例えばＲＧＢ値）を決定する処理は例えば、リアルタイムに得られた相対角度α、βに基づき、所定の演算処理を行い求める場合でもよい。
【００７８】
また例えば予め複数の相対角度α、βに対応した仮想光源の色情報（例えばＲＧＢ値）の値を求めて、その結果に基づき各相対角度α、β値と仮想光源の色情報（例えばＲＧＢ値）値の対応テーブルを設定し、リアルタイムに得られた相対角度α、βに基づき、対応する仮想光源の色情報（例えばＲＧＢ値）の値を対応テーブルから読み出して求めるようにしてもよい。
【００７９】
図４は相対角度α、β値と仮想光源のＲＧＢ値の対応テーブルの作成例について説明するための図である。
【００８０】
α、βをそれぞれ適当な分割数で分割し、各分割値に対応する仮想光源のＲＧＢ値について予め算出しておく。
【００８１】
ここで図３の第１のオブジェクト２１０をＸ軸正方向からみた面が黒（０，０，０）、Ｘ軸負方向からみた面が赤（２５５，０，０）、Ｙ軸正方向からみた面が青（０，０，２５５）、Ｙ軸負方向からみた面が黒（０，０，０）、Ｚ軸正方向からみた面が緑（０，２５５，０）、Ｚ軸負方向からみた面が緑（０，２５５，０）とする。
【００８２】
対応テーブル３００は、上記ケースについてα、βを１６分割した各値について求めたＲＧＢ値を格納するテーブルである。
【００８３】
Ｒ00、Ｇ00、Ｂ00はα＝０、β＝０の場合について求められたＲＧＢの各値である。
【００８４】
本実施の形態では、リアルタイムに検出されたα、β値に基づいて対応テーブル３００から該当するＲＧＢ値を読み出して、読み出したＲＧＢ値に基づき仮想光源のＲＧＢ値を設定する。
【００８５】
ここで例えばαの値がα＝１とα＝２の間にあたる場合には、α＝１の場合のＲＧＢ値とα＝２のＲＧＢ値を両方読み出して、両方のＲＧＢ値から補間演算を行って仮想光源に設定するＲＧＢ値を求めるようにしてもよい。
【００８６】
図５（Ａ）（Ｂ）は、第２のオブジェクト方向から第１のオブジェクトをみた画像の描画結果に基づき仮想光源の情報を設定する例について説明するための図である。
【００８７】
図５（Ａ）は、図３において第１のオブジェクトと第２のオブジェクトの位置関係がα＝０、β＝０の場合の、第２のオブジェクト方向から第１のオブジェクトをみた画像の描画結果を示した図である。
【００８８】
第２のオブジェクト方向から第１のオブジェクトをみたときの画像とは、例えば第１のオブジェクトから第２のオブジェクト方向にある一定距離だけ離れた点に視点をおいて第１のオブジェクトをみた場合の画像等である。
【００８９】
図５（Ａ）の第１のオブジェクトの画像３１０は、Ｚ方向からみた立方体（第１のオブジェクト）の面である。例えば立方体（第１のオブジェクト）の各辺を１とすると、第１のオブジェクトの画像３１０の描画面積は１となる。
【００９０】
ここで全描画領域３００の面積をＭＡ、第１のオブジェクトの描画領域の面積をＭ１とすると、本実施の形態では全描画領域の面積ＭＡに対する第１のオブジェクトの描画領域の面積Ｍ１の割合Ｍ１／ＭＡに基づいて設定する光源の強度を設定する。
【００９１】
すなわちＭ１／ＭＡの値が大きいほど設定する光源の強度を大きくする。
【００９２】
また第１のオブジェクトの画像（描画領域）３１０の全ピクセルの色情報であるＲＧＢ値の合計を行い、その合計値に所定の計数を掛けた値に基づき光源の色を決定するようにしてもよい。
【００９３】
また例えば背景３１２を黒にして第１のオブジェクトを描画する場合には、全描画領域３００のすべてのピクセルのＲＧＢ値の合計を行い、その合計値に所定の計数を掛けた値に基づき光源の色を決定するようにしてもよい。
【００９４】
図５（Ｂ）は、図３において第１のオブジェクトと第２のオブジェクトの位置関係がα＝４５、β＝３５．２６４４の場合の、第２のオブジェクト方向から第１のオブジェクトをみた画像の描画結果を示した図である。
【００９５】
第２のオブジェクト方向から第１のオブジェクトをみたときの画像とは、例えば第１のオブジェクトから第２のオブジェクト方向にある一定距離だけ離れた点に視点をおいて第１のオブジェクトをみた場合の画像等である。ここで一定距離とは図５（Ａ）の場合と同じ距離である。
【００９６】
図５（Ｂ）の第１のオブジェクトの画像３２０には、立方体（第１のオブジェクト）の３面が描画されている。
【００９７】
例えば立方体（第１のオブジェクト）の各辺を１とすると、立方体（第１のオブジェクト）の各面３２２，３２４，３２６の面積はそれぞれ１／√３となる。もし各面の色がすべて同じであるとすると各面３２２，３２４，３２６の合計は３／√３＝√３になる。
【００９８】
従って第１のオブジェクトと第２のオブジェクトの位置関係がα＝４５、β＝３５．２６４４の場合（図５（Ｂ）の場合）は、第１のオブジェクトと第２のオブジェクトの位置関係がα＝０、β＝０の場合（図５（Ａ）の場合）に比べ、仮想光源の強度が大きくなるように（例えば√３倍になるように）設定する。
【００９９】
なお例えば形状が複雑で、立方体のように簡単な計算で求まらないオブジェクトの場合には、当該オブジェクトを背景を黒くした領域に描画し、その全描画領域のすべてのピクセルについてのＲＧＢ成分を合計して、その合計値に所定の計数を掛けた値に基づいて仮想光源のＲＧＢ値を設定するようにしてもよい。
【０１００】
図６は、本実施の形態の光源処理について説明するための図である。
【０１０１】
本実施の形態では、第１のオブジェクトの代表点４１０に点光源４２０を設定して光源処理を行い第２のオブジェクト２２０を描画する。
【０１０２】
ここで仮想光源には、図２から図５で説明した手法によって求められたＲＧＢ値が光源パラメータとして設定されている。
【０１０３】
そしてこの仮想光源からの光線に対して第２のオブジェクト２２０の表面がどのような明るさを持つか演算し、その明るさに応じた色をオブジェクトの置くために必要な光源処理を行う。これにより、第２のオブジェクトの表面に仮想光源からの光の影響を考慮した色４３０をつけることができる。
【０１０４】
図７は、本実施の形態の照り返し画像生成処理の流れについて説明するためのフローチャート図である。
【０１０５】
ここで第１のオブジェクトは光線を反射する物体であり、第２のオブジェクトは第１のオブジェクトが反射した光線に照らされる物体である。
【０１０６】
まず第１のオブジェクトのローカル座標系において、第１のオブジェクトからみた第２のオブジェクトの方向ベクトルから相対角α、βを求める（ステップＳ１０）。
【０１０７】
次に、求めたα、βに基づき対応テーブルから光源パラメータを求める（ステップＳ２０）。光源パラメータとは、例えばＲＧＢ値である。
【０１０８】
次に、第１のオブジェクトの代表点に仮想光源を置き、求めた光源パラメータを設定する（ステップＳ３０）。
【０１０９】
次に設定された仮想光源により光源処理を行い、第２のオブジェクトが照らされる様子を描画する（ステップＳ４０）。
【０１１０】
３．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図８を用いて説明する。
【０１１１】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【０１１２】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１１３】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０１１４】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、所与の画像圧縮方式で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【０１１５】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０１１６】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０１１７】
ゲームコントローラ９４２からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０１１８】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０１１９】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０１２０】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０１２１】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０１２２】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他のゲームシステム、他のゲームシステムとの間でのデータ転送が可能になる。
【０１２３】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実行してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実行してもよい。或いは、ハードウェアとプログラムの両方により実行してもよい。
【０１２４】
そして、本発明の各手段をハードウェアとプログラムの両方により実行する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実行するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各手段を実行することになる。
【０１２５】
図９（Ａ）に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、レバー１１０２、ボタン１１０４等を操作してゲームを楽しむ。内蔵されるシステムボード（サーキットボード）１１０６には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報（プログラム又はデータ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、この情報を格納情報と呼ぶ。
【０１２６】
図９（Ｂ）に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２、１２０４を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９等に格納されている。
【０１２７】
図９（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）を介して接続される端末１３０４-1〜１３０４-nとを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。端末１３０４-1〜１３０４-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-1〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-1〜１３０４-nに伝送し端末において出力することになる。
【０１２８】
なお、図９（Ｃ）の構成の場合に、本発明の各手段を、ホスト装置（サーバー）と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置（サーバー）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０１２９】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能なセーブ用情報記憶装置（メモリカード、携帯型ゲーム装置）を用いることが望ましい。
【０１３０】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１３１】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１３２】
また本実施の形態では、ＲＧＢシステムを採用する場合を例にとり、説明したがこれに限られない。
【０１３３】
例えばＨＳＶシステムやＨＬＳシステムやＣＭＹＫシステム等の他のカラー体系を有する場合でもよい。
【０１３４】
また本実施の形態では仮想光源として点光源を設定する場合を例にとり説明したがこれに限られない。例えば仮想光源として平行光源を設定する場合でもよい。なお仮想光源として平行光源を設定する場合には、光線の減衰処理を施すようにしてもよい。
【０１３５】
また本実施の形態では、予め対応テーブルを設定しておいて当該対応テーブルから仮想光源の色情報を読み出す場合を例にとり説明したがこれに限られない。例えば第１のオブジェクトと第２のオブジェクトの位置関係に基づき演算処理を施して求める場合でもよい。
【０１３６】
また本実施の形態では、所与のオブジェクトが他のオブジェクトの反射光の影響を受ける場合の照り返し画像を生成する場合を例にとり説明したがそれに限られない。例えば他のオブジェクトが自ら発光している場合に他のオブジェクトがこの発光の影響を受ける場合の照り返し画像を生成する場合でもよい。
【０１３７】
また、本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０１３８】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステムに適用できる。
【図面の簡単な説明】
【図１】本実施形態のゲームシステムのブロック図の例である。
【図２】オブジェクトの反射光による照り返し現象について説明するための図である。
【図３】第１のオブジェクトと第２のオブジェクトの位置関係と仮想光源の色及び強度の少なくとも一方の関係について説明するための図である。
【図４】相対角度α、β値と仮想光源のＲＧＢ値の対応テーブルの作成例について説明するための図である。
【図５】図５（Ａ）（Ｂ）は、第２のオブジェクト方向から第１のオブジェクトをみた画像の描画結果に基づき仮想光源の情報を設定する例について説明するための図である。
【図６】本実施の形態の光源処理について説明するための図である。
【図７】図７は、本実施の形態の照り返し画像生成処理の流れについて説明するためのフローチャート図である。
【図８】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図９】図９（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
１００  処理部
１１０  ゲーム処理部
１１２  移動・動作演算部
１３０  画像生成部
１４０  照り返し画像生成処理部
１５０  音生成部
１６０  操作部
１７０  記憶部
１７２  メインメモリ
１７４  フレームバッファ
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  セーブ用情報記憶装置
１９６  通信部
【図１】
0004827217.tif 000002
【図２】
0004827217.tif 000003
【図３】
0004827217.tif 000004
【図４】
0004827217.tif 000005
【図５】
0004827217.tif 000006
【図６】
0004827217.tif 000007
【図７】
0004827217.tif 000008
【図８】
0004827217.tif 000009
【図９】
0004827217.tif 000010