(57)【要約】【課題】仮想カメラの向きに正対するスプライトに対して、小さな処理負荷で光源に応じた陰影をつけるようにした画像生成システム、プログラム及び情報記憶媒体を提供すること。【解決手段】オブジェクト空間を所与の視点ＣＭから見た画像を生成するための画像生成システムである。この画像生成システムでは、視点ＣＭの向きｖｖに正対するように配置されるスプライトＳＰを構成する複数の頂点のうち少なくとも２つの頂点に対して向きの異なる法線ｎｐが設定されており、頂点色設定部１２４が、各頂点に設定されている法線ｎｐの向きと光源ＬＴからの光の向きｌｖとに応じて、当該各頂点の頂点色Ｃｐを設定する。【選択図】図５
2010033295.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト空間を所与の視点から見た画像を生成するためのプログラムであって、
前記オブジェクト空間に光源を配置するとともに、前記視点の向きに正対するようにスプライトを配置するオブジェクト空間設定部と、
前記スプライトに対応づけられたテクスチャをマッピングするテクスチャマッピング部と、
前記スプライトを構成する複数の頂点のそれぞれに対して、頂点色を設定する頂点色設定部と、
前記各頂点の頂点色と、前記スプライトにマッピングされた前記テクスチャのテクセルの色とに基づいて、前記スプライトの描画ピクセルの色を設定する描画色設定部としてコンピュータを機能させ、
前記スプライトを構成する複数の頂点のうち少なくとも２つの頂点に対して向きの異なる法線が設定されており、
前記頂点色設定部が、
前記各頂点に設定されている法線の向きと前記光源からの光の向きとに応じて、当該各頂点の頂点色を設定することを特徴とするプログラム。
【請求項２】
請求項１において、
前記テクスチャマッピング部が、
前記スプライトを構成する各頂点に対応づけられるテクスチャ座標を所定条件下で変動させることを特徴とするプログラム。
【請求項３】
コンピュータにより読み取り可能な情報記憶媒体であって、請求項１または２に記載のプログラムを記憶していることを特徴とする情報記憶媒体。
【請求項４】
オブジェクト空間を所与の視点から見た画像を生成するための画像生成システムであって、
前記オブジェクト空間に光源を配置するとともに、前記視点の向きに正対するようにスプライトを配置するオブジェクト空間設定部と、
前記スプライトに対応づけられたテクスチャをマッピングするテクスチャマッピング部と、
前記スプライトを構成する複数の頂点のそれぞれに対して、頂点色を設定する頂点色設定部と、
前記各頂点の頂点色と、前記スプライトにマッピングされた前記テクスチャのテクセルの色とに基づいて、前記スプライトの描画ピクセルの色を設定する描画色設定部とを含み、
前記スプライトを構成する複数の頂点のうち少なくとも２つの頂点に対して向きの異なる法線が設定されており、
前記頂点色設定部が、
前記各頂点に設定されている法線の向きと前記光源からの光の向きとに応じて、当該各頂点の頂点色を設定することを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【背景技術】
【０００２】
従来より、仮想的な３次元空間であるオブジェクト空間において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。格闘ゲームを楽しむことができる画像生成システムを例に取れば、プレーヤは、操作部（ゲームコントローラ等）を用いて移動体（キャラクタ等）に関する操作（攻撃操作、防御操作、移動操作等）を行い、他のプレーヤ（コンピュータプレーヤも含まれる）の移動体と格闘するゲームを楽しむ。
【０００３】
ところで、上述した画像生成システムに関して、仮想カメラの向きが変化しても仮想カメラの向きに正対するようにスプライトを配置することにより、スプライトにマッピングされたテクスチャを立体的に見せるようにするいわゆるビルボード手法が提案されている（非特許文献１参照）。
【非特許文献１】Ｎ２Ｆａｃｔｏｒｙ、「ＤｉｒｅｃｔＸゲームグラフィックスプログラミングＶｅｒ．２．０」Ｐ．２６８、ソフトバンクパブリッシング株式会社、２００３年１０月１日
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来から提案されている手法では、スプライトは平面であるため光源に応じた陰影がつかず、画像が不自然に見えることがあった。
【０００５】
本出願は上記事情に鑑みてなされたものであり、その目的は、仮想カメラの向きに正対するスプライトに対して、小さな処理負荷で光源に応じた陰影をつけるようにした画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００６】
（１）本発明は、
オブジェクト空間を所与の視点から見た画像を生成するための画像生成システムであって、
前記オブジェクト空間に光源を配置するとともに、前記視点の向きに正対するようにスプライトを配置するオブジェクト空間設定部と、
前記スプライトに対応づけられたテクスチャをマッピングするテクスチャマッピング部と、
前記スプライトを構成する複数の頂点のそれぞれに対して、頂点色を設定する頂点色設定部と、
前記各頂点の頂点色と、前記スプライトにマッピングされた前記テクスチャのテクセルの色とに基づいて、前記スプライトの描画ピクセルの色を設定する描画色設定部とを含み、
前記スプライトを構成する複数の頂点のうち少なくとも２つの頂点に対して向きの異なる法線が設定されており、
前記頂点色設定部が、
前記各頂点に設定されている法線の向きと前記光源からの光の向きとに応じて、当該各頂点の頂点色を設定することを特徴とする画像生成システムに関するものである。また本発明は、上記各部としてコンピュータを機能させるプログラム及びそのようなプログラムを記憶するコンピュータが読み取り可能な情報記憶媒体に関するものである。
【０００７】
本発明では、仮想カメラの向きが変化することによりスプライトの向きが変化すると、スプライトの頂点に設定された法線の向きと光源からの光の向きとの関係が変化し、向きの異なる法線が設定された各頂点の頂点色が異なる値に変化する。これにより本発明では、スプライトの描画ピクセルの色を仮想カメラの向きと光源からの光の向きとに応じて変化するように設定することができ、いわゆるビルボードにおいて光源に応じた陰影を表現することができる。
【０００８】
（２）また本発明の画像生成システム、プログラム及び情報記憶媒体では、
前記テクスチャマッピング部が、
前記スプライトを構成する各頂点に対応づけられるテクスチャ座標を所定条件下で変動させるようにしてもよい。
【０００９】
このようにすれば、例えば、アニメーションするテクスチャ画像に対して光源に応じた陰影を表現することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００１１】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００１２】
操作部１６０は、プレーヤがプレーヤオブジェクト（移動体オブジェクトの一例、プレーヤが操作するプレーヤキャラクタなど）の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（メインメモリ１７２）、ＶＲＡＭ（ビデオメモリ１７４）などにより実現できる。
【００１３】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００１４】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００１５】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００１６】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０のメインメモリ１７２）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００１７】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０内のメインメモリ１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ（メインプロセッサ）、ＧＰＵ（描画プロセッサ）、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００１８】
処理部１００は、オブジェクト空間設定部１１０、頂点法線設定部１１１、移動・動作処理部１１２、仮想カメラ制御部１１４、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００１９】
オブジェクト空間設定部１１０は、オブジェクトデータ記憶部１７２に記憶されているオブジェクトデータに基づいて、キャラクタ、車、建物、樹木、柱、壁、コース（道路）、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）や、光が進行する方向や強さや色を示す光源をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、決定された位置（Ｘ、Ｙ、Ｚ）に決定された回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトや光源を配置する。
【００２０】
また本実施形態では、オブジェクト空間設定部１１０は、平面を構成するオブジェクトであるスプライトをオブジェクト空間に配置する。ここで本実施形態において、スプライトとは、板状のポリゴンからなるオブジェクトであって、スプライトに予め用意された煙や雲などの表現対象を表したテクスチャをマッピングすることによって、煙や雲などの表現対象を頂点データによって定義することなく表現することができる。また煙や雲などの動きを表現する場合には、煙や雲などの動きに応じたテクスチャを複数種類用意して、スプライトにマッピングされるテクスチャを時間経過に伴って変更することによって、または、スプライトにマッピングされるテクスチャの参照先を時間経過に伴って変更することによって、煙や雲などが動いている様子を擬似的に表現することができる。またスプライトは、オブジェクト空間に固定的に配置されるものであってもよいし、オブジェクト空間を所与のアルゴリズムに従って移動あるいは回転させるようにして、表示対象の動きを表現することもできる。
【００２１】
特に本実施形態では、オブジェクト空間設定部１１０は、このようなスプライトを仮想カメラの向きに正対するように配置する。詳細にはオブジェクト設定部１１０は、スプライトの面に設定された法線（第１の法線）、すなわちスプライトの面の向きを示す法線と、仮想カメラの向きを示す視線ベクトルとがなす角度が１８０°となるように、視線ベクトルに合わせてスプライトを配置する。これにより本実施形態では、特定のスプライトをいわゆるビルボードとして機能させている。
【００２２】
頂点法線設定部１１１は、仮想カメラの向きに正対するように配置されるスプライトを構成する複数の頂点のうち、少なくとも２つの頂点に対して向きの異なる法線を設定する。本実施形態では頂点法線設定部１１１は、スプライトを構成する各頂点に、所定の角度範囲内でランダムに決定した向きの法線を設定する。そして頂点法線設定部１１１は、各頂点に設定した法線の向きを時間経過とともに（所定条件下の一例）変更する。
【００２３】
移動・動作処理部１１２は、オブジェクト（キャラクタ、車、又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。すなわち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００２４】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。
【００２５】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報（所定の制御情報の一例）に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させたりする制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータ（所定の制御情報の一例）に基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００２６】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）がオブジェクトデータ記憶部１７２Ｂから入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセル（画素）とが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色をレンダリングターゲット（ピクセル単位で画像情報を記憶できるバッファ。メインメモリ１７２のフレームバッファ１７２Ｂ、ビデオメモリ１７４のワークバッファ１７４Ｃやフレームバッファ１７４Ｄ）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色（色値、輝度値）、法線、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００２７】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００２８】
そして描画部１２０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００２９】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、メインメモリ１７２のオブジェクトデータ記憶部１７２Ａに保存される。
【００３０】
テクスチャマッピングは、ビデオメモリ１７４のデカールテクスチャ記憶部１７４Ａに記憶されるデカールテクスチャなどのテクスチャ（テクセル値、ＵＶ座標値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いてビデオメモリ１７４のデカールテクスチャ記憶部１７４Ａからテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間、トライリニア補間などを行う。
【００３１】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７４Ｂ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファ１７４Ｂに格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファ１７４ＢのＺ値を新たなＺ値に更新する。
【００３２】
αブレンディングとしては、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）を行う。例えば通常αブレンディングの場合には下式（１）〜（３）の処理を行う。
【００３３】
ＲＱ＝（１−α）×Ｒ１＋α×Ｒ２    （１）
ＧＱ＝（１−α）×Ｇ１＋α×Ｇ２    （２）
ＢＱ＝（１−α）×Ｂ１＋α×Ｂ２    （３）
また、加算αブレンディングの場合には下式（４）〜（６）の処理を行う。なお単純加算の場合はα＝１として下式（４）〜（６）の処理を行う。
【００３４】
ＲＱ＝Ｒ１＋α×Ｒ２                （４）
ＧＱ＝Ｇ１＋α×Ｇ２                （５）
ＢＱ＝Ｂ１＋α×Ｂ２                （６）
また、減算αブレンディングの場合には下式（７）〜（９）の処理を行う。なお単純減算の場合はα＝１として下式（７）〜（９）の処理を行う。
【００３５】
ＲＱ＝Ｒ１−α×Ｒ２                （７）
ＧＱ＝Ｇ１−α×Ｇ２                （８）
ＢＱ＝Ｂ１−α×Ｂ２                （９）
ここで、Ｒ１、Ｇ１、Ｂ１は、フレームバッファ１７２Ｂあるいはフレームバッファ１７４Ｄに既に描画されている画像（原画像）のＲＧＢ成分であり、Ｒ２、Ｇ２、Ｂ２は、フレームバッファ１７２Ｂあるいはフレームバッファ１７４Ｄに描画すべき画像のＲＧＢ成分である。また、ＲＱ、ＧＱ、ＢＱは、αブレンディングにより得られる画像のＲＧＢ成分である。なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００３６】
そして本実施形態では描画部１２０は、上述したテクスチャマッピング処理を行うテクスチャマッピング部１２２と、頂点色設定部１２４と、描画色設定部１２６とを更に含む。
【００３７】
テクスチャマッピング部１２２は、上述した仮想カメラの向きに正対するスプライトに対応づけられたテクスチャを、スプライトにマッピングする。詳細にはテクスチャマッピング部１２２は、スプライトを構成する各頂点に対応づけられるテクスチャ座標に基づいて、スプライトの各描画ピクセルにおけるテクスチャの参照先（テクセル値）を設定する。本実施形態では、テクスチャマッピング部１２２は、スプライトを構成する各頂点に対応づけられるテクスチャ座標を、時間経過とともに（所定条件下の一例）変動させる。
すなわちテクスチャマッピング部１２２は、テクスチャの参照先を時間経過とともに変化させる。
【００３８】
頂点色設定部１２４は、スプライトを構成する複数の頂点のそれぞれに対して、頂点色を設定する。本実施形態では、スプライトを構成する複数の頂点のうち少なくとも２つの頂点に対して向きの異なる法線が設定されており、頂点色設定部１２４は、各頂点に設定されている法線の向きと光源からの光の向きとに応じて、当該各頂点の頂点色を設定する。本実施形態では頂点色設定部１２４は、各頂点の頂点色をグレースケール値（ＲＧＢ成分それぞれの輝度値が同一の色値）に設定する。
【００３９】
具体的には本実施形態では、頂点色設定部１２４は、頂点に設定された法線と光源の向きを示す光源ベクトルとの内積に応じて、当該頂点の頂点色を設定する。例えば頂点色設定部１２４は、頂点に設定された法線と光源ベクトルとがなす角度が１８０°（正対する角度）に近づくにつれ、当該頂点の頂点色の輝度値が相対的に高くなるように頂点色を設定し、１８０°から離れるにつれ、当該頂点の頂点色の輝度値が相対的に低くなるように頂点色を設定する。
【００４０】
ここで本実施形態では、スプライトを構成する複数の頂点に向きの異なる法線（第２の法線）が設定されているので、向きの異なる法線が設定された各頂点は、それぞれの頂点色が異なる値となるように頂点色が変更される。すなわち頂点色設定部１２４は、各頂点の頂点色が不均一となるように各頂点の頂点色を設定する。
【００４１】
描画色設定部１２６は、スプライトを構成する各頂点の頂点色と、スプライトにマッピングされたテクスチャのテクセルの色とに基づいて、スプライトの描画ピクセルの色を設定する。詳細には描画色設定部１２６は、スプライトの描画ピクセルにおけるテクスチャの参照先として設定されたテクスチャのテクセルの色を参照し、参照した色を各頂点の頂点色に基づいて調整し、調整した色を当該描画ピクセルの色として設定する。
【００４２】
具体的には本実施形態では、描画色設定部１２６は、上述のようにして各頂点の頂点色が不均一となるように設定された頂点色に基づいて、スプライトの各描画ピクセルにおいて頂点色がグラデーションするように、各頂点の頂点色を補間してスプライトの描画ピクセルの補間色を求める。そして描画色設定部１２６は、描画ピクセルの補間色とその描画ピクセルについてテクセルを参照した参照色とを乗算して、描画ピクセルの色を設定する。すなわち描画色設定部１２６は、頂点に設定された法線の向きと光源からの光の向きとに応じて不均一に設定された頂点色に基づいて、スプライトの描画ピクセルの色を設定する。
【００４３】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００４４】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００４５】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。本実施形態では、板状ポリゴンからなるオブジェクトであるスプライトを構成する複数の頂点のうち、少なくとも２つの頂点に対して向きの異なる法線を設定しておき、各頂点に設定されている法線の向きと光源からの光の向きとに応じて、当該各頂点の頂点色を設定する手法を採用する。これにより本実施形態では、各頂点に設定されている法線の向きと光源からの光の向きとに応じて各頂点の頂点色を異なる値に設定して、仮想カメラの向きと光源からの光の向きとに応じてスプライトの描画ピクセルの色を変化させている。
【００４６】
図２は、本実施形態のスプライトにテクスチャがマッピングされた状態を示す図である。図２に示すように本実施形態では、平面を構成する矩形のスプライトＳＰに、キャラクタが地面の上を移動する際に発生する土煙を表すテクスチャがマッピングされる。ここで土煙を表すテクスチャは、土煙を表す領域以外の領域は透明となるようにα値が設定されているため、土煙を表す領域の色Ｃｔが描画されることになる。また、スプライトＳＰの面の向きを示す法線として、スプライトＳＰの面に対して垂直な法線ｎｓ（第１の法線）がスプライトＳＰの面に対して設定されている。そして仮想カメラＣＭの向きを示す視線ベクトルｖｖが変化すると、面に対して設定されている法線ｎｓの向きが視線ベクトルｖｖと正対するように、スプライトＳＰの向きが変更される。すなわち本実施形態では、スプライトＳＰがいわゆるビルボードとして機能して、仮想カメラＣＭの向きが変化しても土煙を表す領域の色Ｃｔが立体的に描画されているかのように見えるようにしている。
【００４７】
図３は、本実施形態のスプライトＳＰの頂点に設定されたデータを説明するための図である。図３に示すように、本実施形態のスプライトＳＰには、４つの頂点に、互いに向きが異なる法線ｎｐ１〜法線ｎｐ４（第２の法線）がそれぞれ設定されている。本実施形態では、図３に示すように、法線ｎｐ１〜法線ｎｐ４の延長線が互いに交差しないように、スプライトＳＰの面に対して設定された法線ｎｓの方向に向かって法線ｎｐ１〜法線ｎｐ４が開くように、法線ｎｐ１〜法線ｎｐ４の向きが決定される。すなわち図９に示すように、法線ｎｐ１〜法線ｎｐ４の向きが、法線ｎｓの向きから外側に５°〜２０°の範囲でランダムにずれた向きに決定される。
【００４８】
そして本実施形態では、図４に示すように、スプライトＳＰが視線ベクトルｖｖに正対するように配置されると、その状態において、各頂点に設定されている法線ｎｐ１〜法線ｎｐ４のそれぞれと、平行光源として設定されている光源ＬＴの光源ベクトルｌｖとの内積が求められる。そして、各頂点についての内積に応じて、各頂点の頂点色Ｃｐ１〜Ｃｐ４が設定される。
【００４９】
本実施形態では、頂点に設定されている法線ｎｐと光源ベクトルｌｖとがなす角度が１８０°（正対する角度）に近づくにつれ、当該頂点の頂点色の輝度値が相対的に高くなるように頂点色Ｃｐ１〜Ｃｐ４が設定され、１８０°から離れるにつれ、当該頂点の頂点色の輝度値が相対的に低くなるように頂点色Ｃｐ１〜Ｃｐ４が設定される。すなわち本実施形態では、スプライトＳＰの面に対して設定された法線ｎｓの方向に向かって法線ｎｐ１〜法線ｎｐ４が開くように法線ｎｐ１〜法線ｎｐ４の向きが設定されているので、法線ｎｐと光源ベクトルｌｖとがなす角度が１８０°（正対する角度）により近い場合には、その法線ｎｐが設定されている頂点が、光源ＬＴにより近い頂点となる。従って本実施形態では、光源ＬＴにより近い頂点の頂点色の輝度値を、より高くすることができる。
【００５０】
図４の例では、法線ｎｐ１と光源ベクトルｌｖとがなす角度が最も１８０°に近いので、法線ｎｐ１が設定されている頂点の頂点色Ｃｐ１が最も高い輝度値となる。そして、法線ｎｐ２と光源ベクトルｌｖとがなす角度が次に１８０°に近いので、法線ｎｐ２が設定されている頂点の頂点色Ｃｐ２が次に高い輝度値となる。そして、法線ｎｐ４と光源ベクトルｌｖとがなす角度が次に１８０°に近いので、法線ｎｐ４が設定されている頂点の頂点色Ｃｐ４が次に高い輝度値となる。そして、法線ｎｐ３と光源ベクトルｌｖとがなす角度が最も１８０°から離れているので、法線ｎｐ３が設定されている頂点の頂点色Ｃｐ３が最も低い輝度値となる。
【００５１】
従って本実施形態では、頂点色Ｃｐ１〜Ｃｐ４をスプライトＳＰの各描画ピクセルについて補間した補間色が、図４に示すように、法線ｎｐ１が設定されている頂点から法線ｎｐ３が設定されている頂点に向かって次第に輝度値が低くなるように求められる。すなわち本実施形態では、光源ＬＴに近づくにつれて輝度値が高く、光源ＬＴから離れるにつれて輝度値が低くなるように、スプライトＳＰの各描画ピクセルの補間色が求められる。
【００５２】
図５は、図４のように各頂点の頂点色Ｃｐ１〜Ｃｐ４が設定されたスプライトＳＰに土煙を表すテクスチャがマッピングされた状態を示す図である。本実施形態では、スプライトＳＰにテクスチャがマッピングされる際には、スプライトＳＰの各描画ピクセルにおいて、スプライトＳＰの頂点色を補間した補間色と、テクスチャを参照した参照色とが乗算される。そして乗算結果の色が、描画ピクセルの色として設定される。
【００５３】
従って本実施形態では、図５に示すように、土煙を表す領域の色Ｃｔが、法線ｎｐ１が設定されている頂点に近づくほど明るく、法線ｎｐ３が設定されている頂点に近づくほど暗くなるように設定される。すなわち本実施形態では、土煙を表す領域の色Ｃｔが、光源ＬＴに近づくにつれて明るく（輝度値が高く）、光源ＬＴから離れるにつれて暗く（輝度値が低く）なるように設定される。
【００５４】
こうして本実施形態では、スプライトＳＰの描画ピクセルの色を、光源ＬＴに対するスプライトＳＰの向きに応じて変化するように設定することができ、いわゆるビルボードにおいて光源に応じた陰影を表現することができる。これにより本実施形態では、スプライトＳＰをいわゆるビルボードとして機能させる際に、スプライトＳＰの描画ピクセルの色（土煙を表す領域の色Ｃｔ）がより立体的に描画されているかのように見えるようにすることができる。
【００５５】
３．本実施形態の処理
次に、本実施形態の処理の一例についてフローチャートを用いて説明する。図６は、本実施形態の処理の概略を示すフローチャートである。図６に示すように、本実施形態では、まず、キャラクタが地面の上を移動するイベントが発生すると（ステップＳ１０でＹ）、スプライトＳＰの各頂点に法線ｎｐを向きが互いに異なるようにランダムに設定する（ステップＳ１２）。本実施形態では、同時に複数のスプライトＳＰをオブジェクト空間に配置するので、複数のスプライトＳＰの各頂点に法線ｎｐをランダムに設定する。そして、複数のスプライトＳＰを描画し（ステップＳ１４）、イベントが発生してから所定時間が経過すると（ステップＳ１６でＮ）、処理を終了する。
【００５６】
図７は、図６のステップＳ１４のスプライトＳＰを描画する処理の詳細を示すフローチャートである。図６に示すように、スプライトＳＰを描画する処理では、まず、フレームが更新されると（ステップＳ３０でＹ）、各頂点の法線の向きをランダムに変更する（ステップＳ３２）。すなわち各頂点の法線をアニメーションさせる。そして、各頂点のテクセル値を、土煙を表す領域の色ＣｔがスプライトＳＰにおいて回転するように変更する（ステップＳ３４）。
【００５７】
そして、仮想カメラの向きに正対するようにスプライトＳＰをオブジェクト空間に配置する（ステップＳ３６）。そしてこの状態において、各頂点の法線ｎｐと光源ベクトルｌｖとの内積を求め（ステップＳ３８）、各頂点の内積に応じて各頂点の頂点色を設定する（ステップＳ４０）。そして、頂点色を補間した補間色とテクスチャを参照した参照色とを乗算して描画ピクセルに設定する（ステップＳ４２）。
【００５８】
４．ハードウェア構成例
本実施形態の画像生成システムを実現するハードウェアの構成の一例について図８を用いて説明する。なお図８では、主要な構成のみを図示しており、図８に示されていないハードウェア（メモリコントローラやスピーカなど）を必要に応じて設けることができる。
【００５９】
メインプロセッサ１０は、光ディスク７２（ＣＤ、ＤＶＤ、ブルーレイディスク等の情報記憶媒体）に格納されたプログラム、通信インターフェース８０を介して転送されたプログラム、或いはハードディスク６０に格納されたプログラムなどに基づき動作し、内部バスｂ４を介してアクセス可能なメインメモリ４０を作業領域（ワーク領域）としてゲーム処理、画像処理、音処理などの種々の処理を実行する。
【００６０】
メインプロセッサ１０は、１基のプロセッサ１２と複数のベクトルプロセッサ１４で構成される。プロセッサ１２は、ＯＳの実行、ハードウェアリソースの管理、ゲーム処理、ベクトルプロセッサ１４の動作管理などの種々の処理を実行する。またベクトルプロセッサ１４は、ベクトル演算に特化したプロセッサであり、主にジオメトリ処理、画像データや音データのコーデック処理などの処理を実行する。
【００６１】
描画プロセッサ２０は、内部バスｂ１（第１の内部バス）を介してビデオメモリ３０にアクセス可能に形成されている。また描画プロセッサ２０は、描画プロセッサ２０とメインプロセッサ１０を接続する内部バスｂ２（第２の内部バス）と、メインプロセッサ１０内部のバスｂ３と、メインプロセッサ１０とメインメモリ４０を接続する内部バスｂ４を介してメインメモリ４０にアクセス可能に形成されている。すなわち描画プロセッサ２０はビデオメモリ３０と、メインメモリ４０とをレンダリングターゲットとして利用することができる。
【００６２】
描画プロセッサ２０は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ１０で動作するプログラムが、その処理を描画プロセッサ２０に指示する。
【００６３】
また描画プロセッサ２０は、ジオメトリ処理後のオブジェクト（ポリゴンや曲面などのプリミティブ面で構成されるオブジェクト）の画像のレンダリング処理を高速に実行するものである。マルチパスレンダリング処理の際には、描画プロセッサ２０は、描画データ（頂点データや他のパラメータ）等に基づいて、Ｚバッファ３４などを利用した陰面消去を行いながら、画像をビデオメモリ３０又はメインメモリ４０の一方のメモリにレンダリングする。そしてビデオメモリ３０又はメインメモリ４０の一方のメモリに記憶された画像に基づき他方のメモリに新たな画像をレンダリングする処理を必要なレンダリングパスの回数だけ行う。描画プロセッサ２０は、上記マルチパスレンダリング処理として、グレアフィルタ処理、モーションブラー処理、被写界深度処理、フォグ処理等のフィルタ処理を行うことができる。
【００６４】
そして、最後のレンダリングパスで画像がビデオメモリ３０に設けられたフレームバッファ３２にレンダリングされると、その画像をディスプレイ５０に出力する。また最後のレンダリングパスで画像がメインメモリ４０にレンダリングされた場合には当該画像をフレームバッファ３２にコピー（書き込み）した上でディスプレイ５０に出力する。
【００６５】
ハードディスク６０にはシステムプログラム、セーブデータ、個人データなどが格納される。
【００６６】
光学ドライブ７０は、プログラム、画像データ、或いは音データなどが格納される光ディスク７２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【００６７】
通信インターフェース８０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース１７０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【００６８】
上述したように本実施形態の画像生成システム（コンピュータ）は、内部バスｂ１（第１の内部バス）を介してビデオメモリ３０にアクセス可能であるとともに、内部バスｂ２（第２の内部バス）を介してメインメモリ４０にアクセス可能である描画プロセッサ２０を含んで構成されており、描画プロセッサ２０は、光ディスク７２（情報記憶媒体の一例）あるいはハードディスク６０（情報記憶媒体の一例）に格納されているシェーダプログラムに従って種々のシェーダ処理を実行する。
【００６９】
なお、本実施形態の各部（各手段）は、その全てを、ハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００７０】
そして、本実施形態の各部をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ１０、２０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ１０、２０等は、その指示と渡されたデータとに基づいて、本発明の各部を実現することになる。
【００７１】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。またグレアフィルタの手法は、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【００７２】
また本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【００７３】
また上記実施形態では、本実施形態の手法によりキャラクタが地面の上を移動する際に発生する土煙に対して光源に応じた陰影をつける例を挙げて説明したが、土煙以外の煙や雲などの他、スプライトにおいて表現される種々のものに対して光源に応じた陰影をつける際にも本実施形態の手法を用いることができる。
【図面の簡単な説明】
【００７４】
【図１】本実施形態の画像生成システムの機能ブロック図。
【図２】本実施形態の手法の説明図。
【図３】本実施形態の手法の説明図。
【図４】本実施形態の手法の説明図。
【図５】本実施形態の手法の説明図。
【図６】本実施形態の処理の流れを示すフローチャート。
【図７】本実施形態の処理の流れを示すフローチャート。
【図８】本実施形態の画像生成システムのハードウェア構成例。
【図９】本実施形態の手法の説明図。
【符号の説明】
【００７５】
１００  処理部、１１０  オブジェクト空間設定部、１１１  頂点法線設定部、
１１２  移動・動作処理部、１１４  仮想カメラ制御部、１２０  描画部、
１２２  テクスチャマッピング部、１２４  頂点色設定部、１２６  描画色設定部、
１３０  音生成部、１６０  操作部、１７０  記憶部、１７２  メインメモリ、
１７２Ａ  オブジェクトデータ記憶部、１７２Ｂ  フレームバッファ、
１７４  ビデオメモリ、１７４Ａ  デカールテクスチャ記憶部、１７４Ｂ  Ｚバッファ、
１７４Ｃ  ワークバッファ、１７４Ｄ  フレームバッファ、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、
１９４  携帯型情報記憶装置、１９６  通信部
【図１】
2010033295.tif 000003
【図２】
2010033295.tif 000004
【図３】
2010033295.tif 000005
【図６】
2010033295.tif 000006
【図７】
2010033295.tif 000007
【図８】
2010033295.tif 000008
【図９】
2010033295.tif 000009
【図４】
2010033295.tif 000010
【図５】
2010033295.tif 000011