(57)【要約】【課題】少ない処理負荷でリアルな影画像を生成できるプログラム等を提供すること。【解決手段】  画像生成システムは、モデルオブジェクトを描画するモデルオブジェクト描画部と、モデルオブジェクトの影領域に設定される影プリミティブ面を生成する影プリミティブ面生成部と、モデルオブジェクトの影画像を生成する影画像生成部を含む。影画像生成部は、モデルオブジェクトの描画により得られたα値に基づいて、影テクスチャのα値を設定し、影テクスチャがマッピングされた影プリミティブ面を描画することで、モデルオブジェクトの影画像を生成する。【選択図】      図２
2006252291.tif 000002
【特許請求の範囲】
【請求項１】
画像を生成するためのプログラムであって、
モデルオブジェクトを描画するモデルオブジェクト描画部と、
前記モデルオブジェクトの影領域に設定される影プリミティブ面を生成する影プリミティブ面生成部と、
前記モデルオブジェクトの影画像を生成する影画像生成部として、
コンピュータを機能させ、
前記影画像生成部は、
前記モデルオブジェクトの描画により得られたα値に基づいて、影テクスチャのα値を設定し、前記影テクスチャがマッピングされた前記影プリミティブ面を描画することで、前記モデルオブジェクトの影画像を生成することを特徴とするプログラム。
【請求項２】
請求項１において、
前記影画像生成部は、
前記影画像をワークバッファ上で生成し、前記ワークバッファに生成された前記影画像を、前記モデルオブジェクトが描画されているフレームバッファに対して減算αブレンディングで描画することを特徴とするプログラム。
【請求項３】
請求項1又は２において、
前記モデルオブジェクト描画部は、
第１〜第Ｎのモデルオブジェクトを描画し、
前記影プリミティブ面生成部は、
前記第１〜第Ｎのモデルオブジェクトの影領域に設定される第１〜第Ｎの影プリミティブ面を生成し、
前記影画像生成部は、
前記第１〜第Ｎのモデルオブジェクトの描画により得られたα値に基づいて、前記第１〜第Ｎのモデルオブジェクトに対応する第1〜第Ｎの影テクスチャのα値を設定し、前記第1〜第Ｎの影テクスチャがマッピングされた前記第１〜第Ｎの影プリミティブ面を描画することで、第1〜第Ｎのモデルオブジェクトの全体的な影を表す影画像を生成することを特徴とするプログラム。
【請求項４】
請求項1乃至３のいずれかにおいて、
前記影プリミティブ面生成部は、
前記モデルオブジェクトに設定される複数の制御点又は前記複数の制御点を前記モデルオブジェクトの移動フィールドに投影することで得られる複数の投影点に基づいて、前記影プリミティブ面を生成することを特徴とするプログラム。
【請求項５】
請求項1乃至４のいずれかにおいて、
前記モデルオブジェクトの移動フィールドには、影の表示許可領域を区画するための影表示許可ラインが設定され、
前記影画像生成部は、
前記影表示許可ラインに近づくにつれて徐々に薄くなる影画像を生成することを特徴とするプログラム。
【請求項６】
画像を生成するためのプログラムであって、
モデルオブジェクトを描画するモデルオブジェクト描画部と、
前記モデルオブジェクトの影領域に設定される影プリミティブ面を生成する影プリミティブ面生成部と、
前記モデルオブジェクトの描画により得られた画像を影テクスチャとして前記影プリミティブ面にマッピングし、前記影テクスチャがマッピングされた前記影プリミティブ面を描画することで、前記モデルオブジェクトの影画像を生成する影画像生成部として、
コンピュータを機能させ、
前記影プリミティブ面生成部は、
前記モデルオブジェクトに設定される複数の制御点又は前記複数の制御点を前記モデルオブジェクトの移動フィールドに投影することで得られる複数の投影点に基づいて、前記影プリミティブ面を生成することを特徴とするプログラム。
【請求項７】
請求項６において、
前記複数の制御点は、前記モデルオブジェクトを構成するパーツオブジェクトのうち、前記移動フィールドに接地するパーツオブジェクトに対して設定されていることを特徴とするプログラム。
【請求項８】
請求項６又は７において、
前記影プリミティブ面生成部は、
前記モデルオブジェクトに設定されるバウンディングボックスの頂点と、前記複数の制御点又は前記複数の投影点に基づいて、前記影プリミティブ面の頂点を求めることを特徴とするプログラム。
【請求項９】
画像を生成するためのプログラムであって、
モデルオブジェクトを描画するモデルオブジェクト描画部と、
前記モデルオブジェクトの影画像を生成する影画像生成部として、
コンピュータを機能させ、
前記モデルオブジェクトの移動フィールドには、影の表示許可領域を区画するための影表示許可ラインが設定され、
前記影画像生成部は、
前記影表示許可ラインに近づくにつれて徐々に薄くなる影画像を生成することを特徴とするプログラム。
【請求項１０】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至９のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１１】
画像を生成する画像生成システムであって、
モデルオブジェクトを描画するモデルオブジェクト描画部と、
前記モデルオブジェクトの影領域に設定される影プリミティブ面を生成する影プリミティブ面生成部と、
前記モデルオブジェクトの影画像を生成する影画像生成部とを含み、
前記影画像生成部は、
前記モデルオブジェクトの描画により得られたα値に基づいて、影テクスチャのα値を設定し、前記影テクスチャがマッピングされた前記影プリミティブ面を描画することで、前記モデルオブジェクトの影画像を生成することを特徴とする画像生成システム。
【請求項１２】
画像を生成する画像生成システムであって、
モデルオブジェクトを描画するモデルオブジェクト描画部と、
前記モデルオブジェクトの影領域に設定される影プリミティブ面を生成する影プリミティブ面生成部と、
前記モデルオブジェクトの描画により得られた画像を影テクスチャとして前記影プリミティブ面にマッピングし、前記影テクスチャがマッピングされた前記影プリミティブ面を描画することで、前記モデルオブジェクトの影画像を生成する影画像生成部とを含み、
前記影プリミティブ面生成部は、
前記モデルオブジェクトに設定される複数の制御点又は前記複数の制御点を前記モデルオブジェクトの移動フィールドに投影することで得られる複数の投影点に基づいて、前記影プリミティブ面を生成することを特徴とする画像生成システム。
【請求項１３】
画像を生成する画像生成システムであって、
モデルオブジェクトを描画するモデルオブジェクト描画部と、
前記モデルオブジェクトの影画像を生成する影画像生成部とを含み、
前記モデルオブジェクトの移動フィールドには、影の表示許可領域を区画するための影表示許可ラインが設定され、
前記影画像生成部は、
前記影表示許可ラインに近づくにつれて徐々に薄くなる影画像を生成することを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。ロールプレイングゲーム（ＲＰＧ）を楽しむことができる画像生成システムを例にとれば、プレイヤは、自身の分身であるキャラクタ（広義にはモデルオブジェクト）を操作してオブジェクト空間内のマップ上で移動させて、敵キャラクタと対戦したり、他のキャラクタと対話したり、様々な町を訪れたりすることでゲームを楽しむ。
【０００３】
さて、このような画像生成システムでは、キャラクタなどのモデルオブジェクトのリアルな影画像を生成することが望まれる。そして従来の影画像生成手法としては、影ポリゴンを用いる手法やモディファイアボリュームを用いる手法などがある。
【０００４】
しかしながら、従来の影画像生成手法では、モデルオブジェクトの影画像を生成するのに、モデルオブジェクトの描画パスと影用簡易オブジェクトの描画パスという２回の描画パスが必要であった。このため、リアルな影画像を生成しようとすると、処理負荷が重くなってしまうという課題があった。
【特許文献１】特開２０００−３５３２５１号公報
【特許文献２】特開２００３−２４２５２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、少ない処理負荷でリアルな影画像を生成できるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明は、画像を生成する画像生成システムであって、モデルオブジェクトを描画するモデルオブジェクト描画部と、前記モデルオブジェクトの影領域に設定される影プリミティブ面を生成する影プリミティブ面生成部と、前記モデルオブジェクトの影画像を生成する影画像生成部とを含み、前記影画像生成部は、前記モデルオブジェクトの描画により得られたα値に基づいて、影テクスチャのα値を設定し、前記影テクスチャがマッピングされた前記影プリミティブ面を描画することで、前記モデルオブジェクトの影画像を生成する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【０００７】
本発明によれば、モデルオブジェクトの描画により得られたα値に基づいて、影テクスチャのα値が設定される。そして、影テクスチャがマッピングされた影プリミティブ面を描画することで、モデルオブジェクトの影画像が生成される。このようにすれば、モデルオブジェクトの影画像を生成するための描画パスを最小限に抑えることができ、少ない処理負荷でリアルな影画像を生成できるようになる。
【０００８】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記影画像生成部は、前記影画像をワークバッファ上で生成し、前記ワークバッファに生成された前記影画像を、前記モデルオブジェクトが描画されているフレームバッファに対して減算αブレンディングで描画するようにしてもよい。
【０００９】
このようにすれば、ワークバッファ上で複数のモデルオブジェクトの影画像を合成することなども容易に行えるようになる。
【００１０】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記モデルオブジェクト描画部は、第１〜第Ｎのモデルオブジェクトを描画し、前記影プリミティブ面生成部は、前記第１〜第Ｎのモデルオブジェクトの影領域に設定される第１〜第Ｎの影プリミティブ面を生成し、前記影画像生成部は、前記第１〜第Ｎのモデルオブジェクトの描画により得られたα値に基づいて、前記第１〜第Ｎのモデルオブジェクトに対応する第1〜第Ｎの影テクスチャのα値を設定し、前記第1〜第Ｎの影テクスチャがマッピングされた前記第１〜第Ｎの影プリミティブ面を描画することで、第1〜第Ｎのモデルオブジェクトの全体的な影を表す影画像を生成するようにしてもよい。
【００１１】
このようにすれば、単体のモデルオブジェクトの影画像のみならず、第１〜第Ｎのモデルオブジェクトの全体的な影を表す影画像の生成も可能になる。なおこの場合の第１〜第Ｎのモデルオブジェクトの影画像の生成はワークバッファ上で行うことができる。
【００１２】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記影プリミティブ面生成部は、前記モデルオブジェクトに設定される複数の制御点又は前記複数の制御点を前記モデルオブジェクトの移動フィールドに投影することで得られる複数の投影点に基づいて、前記影プリミティブ面を生成するようにしてもよい。
【００１３】
このようにすれば、モデルオブジェクトの画像のフリップ画像である影画像を生成した場合に、モデルオブジェクトのパーツオブジェクトの位置から離れた位置に影が生成されてしまう事態の発生を防止できる。
【００１４】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記モデルオブジェクトの移動フィールドには、影の表示許可領域を区画するための影表示許可ラインが設定され、前記影画像生成部は、前記影表示許可ラインに近づくにつれて徐々に薄くなる影画像を生成するようにしてもよい。
【００１５】
このようにすれば、影画像が、影表示許可領域内にだけ表示されるのを保証できるようになり、影表示に破綻が生じる事態を防止できる。
【００１６】
また本発明は、画像を生成する画像生成システムであって、モデルオブジェクトを描画するモデルオブジェクト描画部と、前記モデルオブジェクトの影領域に設定される影プリミティブ面を生成する影プリミティブ面生成部と、
前記モデルオブジェクトの描画により得られた画像を影テクスチャとして前記影プリミティブ面にマッピングし、前記影テクスチャがマッピングされた前記影プリミティブ面を描画することで、前記モデルオブジェクトの影画像を生成する影画像生成部とを含み、前記影プリミティブ面生成部は、前記モデルオブジェクトに設定される複数の制御点又は前記複数の制御点を前記モデルオブジェクトの移動フィールドに投影することで得られる複数の投影点に基づいて、前記影プリミティブ面を生成する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【００１７】
本発明によれば、制御点又はその投影点に基づいて影プリミティブ面が生成され、生成された影プリミティブ面に影テクスチャがマッピングされて影画像が生成される。従って、モデルオブジェクトの画像のフリップ画像である影画像を生成した場合に、モデルオブジェクトのパーツオブジェクトの位置から離れた位置に影が生成されるなどの事態の発生を防止できる。
【００１８】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記複数の制御点は、前記モデルオブジェクトを構成するパーツオブジェクトのうち、前記移動フィールドに接地するパーツオブジェクトに対して設定されていてもよい。
【００１９】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記影プリミティブ面生成部は、前記モデルオブジェクトに設定されるバウンディングボックスの頂点と、前記複数の制御点又は前記複数の投影点に基づいて、前記影プリミティブ面の頂点を求めるようにしてもよい。
【００２０】
また本発明は、画像を生成する画像生成システムであって、モデルオブジェクトを描画するモデルオブジェクト描画部と、前記モデルオブジェクトの影画像を生成する影画像生成部とを含み、前記モデルオブジェクトの移動フィールドには、影の表示許可領域を区画するための影表示許可ラインが設定され、前記影画像生成部は、前記影表示許可ラインに近づくにつれて徐々に薄くなる影画像を生成する画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【００２１】
本発明によれば、影表示許可ラインに近づくにつれて徐々に薄くなる影画像が生成されるようになる。従って、影画像が、影表示許可領域内にだけ表示されるのを保証できるようになり、影表示に破綻が生じる事態を防止できる。
【発明を実施するための最良の形態】
【００２２】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２３】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００２４】
操作部１６０は、プレイヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域やメインメモリとなるものであり、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００２５】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、ハードディスク、メモリーカード、メモリーカセット、磁気ディスク、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されているプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理手順をコンピュータに実行させるためのプログラム）が記憶される。
【００２６】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ（液晶表示装置）、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００２７】
携帯型情報記憶装置１９４は、プレイヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００２８】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバ）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信してもよい。このようなホスト装置（サーバ）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００２９】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００３０】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、影プリミティブ面生成部１１６、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００３１】
オブジェクト空間設定部１１０は、キャラクタ、車、戦車、建物、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクト（モデルオブジェクト）の位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００３２】
移動・動作処理部１１２は、オブジェクト（キャラクタ、車、又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。即ち操作部１６０によりプレイヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクト（移動オブジェクト）をオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（各パーツオブジェクトの位置、或いは回転角度）を、１フレーム毎（１／６０秒）に順次求めるシミュレーション処理を行う。なおフレーム（フレームレート）は、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００３３】
また本実施形態では、移動・動作処理部１１２（移動処理部）は、操作部１６０からの操作情報に基づいて、複数のモデルオブジェクト（キャラクタ）を移動フィールド（移動マップ、ゲームフィールド）上の基準ライン（移動ライン）上で移動させたり、動作させる制御を行う。例えばプレイヤが操作部１６０により左移動を指示すると、モデルオブジェクトは基準ライン上で左に移動し、右移動を指示すると右に移動する。またプレイヤが操作部１６０により攻撃を指示すると、自身が操作するモデルオブジェクト（自キャラクタ）が敵のモデルオブジェクト（敵キャラクタ）に対して攻撃する動作を行う。
【００３４】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置や視線方向を制御する処理）を行う。
【００３５】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、ボール、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【００３６】
影プリミティブ面生成部１１６は、モデルオブジェクトの影領域（モデルオブジェクトの影が落ちる領域）に設定される影プリミティブ面（狭義には影ポリゴン、影スプライト）の生成処理を行う。具体的には、モデルオブジェクトに設定される複数の制御点（影プリミティブ面の形状を制御するための点）、或いは複数の制御点をモデルオブジェクトの移動フィールド（地面、地形マップ）に投影することで得られる複数の投影点に基づいて、影プリミティブ面を生成する。更に具体的には、モデルオブジェクトに設定されるバウンディングボックス（バウンディングボリューム）の頂点と、複数の制御点又は複数の投影点に基づいて、影プリミティブ面の頂点を求めることで、影プリミティブ面を生成する。なお、複数の制御点は、モデルオブジェクトを構成するパーツオブジェクト（頭、首、胸、腰、腕、脚、手、足等）のうち、移動フィールドに接地することが予定されているパーツオブジェクト（例えば足）に対して設定することができる。また影プリミティブ面生成部１１６は、複数の第１〜第Ｎのモデルオブジェクトの影画像を生成する場合には、第１のモデルオブジェクトの影領域に設定される第１の影プリミティブ面、第２のモデルオブジェクトの影領域に設定される第２の影プリミティブ面、・・・・第Ｎのモデルオブジェクトの影領域に設定される第Ｎの影プリミティブ面をそれぞれ生成することになる。
【００３７】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まず、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数プリミティブ面）を描画バッファ１７２（フレームバッファ、ワークバッファなどのピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ）に描画する。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお描画部１２０での描画処理は、いわゆるピクセルシェーダーや頂点シェーダーにより実現してもよい。
【００３８】
描画部１２０は、テクスチャマッピング処理や隠面消去処理やαブレンディング処理を行うことができる。
【００３９】
ここでテクスチャマッピング処理は、テクスチャ記憶部１７４に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングする処理である。具体的には、オブジェクト（プリミティブ面）の頂点に設定（付与）されるテクスチャ座標等を用いてテクスチャ記憶部１７４からテクスチャ（色、α値などの表面プロパティ）を読み出す。そして、２次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間（テクセル補間）などを行う。
【００４０】
また隠面消去処理は、例えば、各ピクセルのＺ値（奥行き情報）が格納されているＺバッファ１７６（奥行きバッファ）を用いるＺバッファ法（奥行き比較法、Ｚテスト）により実現される。即ちオブジェクトのプリミティブ面の各ピクセルを描画する際に、Ｚバッファ１７６に格納されているＺ値（カメラ座標系でのＺ値）を参照する。そして参照されたＺバッファ１７６のＺ値と、プリミティブ面の描画対象ピクセルでのＺ値とを比較し、描画対象ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば大きなＺ値）である場合には、そのピクセルの描画処理を行うと共にＺバッファ１７６のＺ値を新たなＺ値に更新する。
【００４１】
またαブレンディング処理は、α値（Ａ値）に基づいて行う処理であり、通常αブレンディング、加算αブレンディング或いは減算αブレンディングなどがある。例えば通常αブレンディングの場合には下式の処理を行う。
【００４２】
ＲQ＝（１−α）×Ｒ1＋α×Ｒ2
ＧQ＝（１−α）×Ｇ1＋α×Ｇ2
ＢQ＝（１−α）×Ｂ1＋α×Ｂ2
一方、加算αブレンディングの場合には下式の処理を行う。
【００４３】
ＲQ＝Ｒ1＋α×Ｒ2
ＧQ＝Ｇ1＋α×Ｇ2
ＢQ＝Ｂ1＋α×Ｂ2
また、減算αブレンディングの場合には下式の処理を行う。
【００４４】
ＲQ＝Ｒ1−α×Ｒ2
ＧQ＝Ｇ1−α×Ｇ2
ＢQ＝Ｂ1−α×Ｂ2
ここで、Ｒ1、Ｇ1、Ｂ1は、描画バッファ１７２（フレームバッファ）に既に描画されている画像（元画像）のＲＧＢ成分であり、Ｒ2、Ｇ2、Ｂ2は、描画バッファ１７２に描画すべき画像のＲＧＢ成分である。また、ＲQ、ＧQ、ＢQは、αブレンディングにより得られる画像のＲＧＢ成分である。なおα値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、半透明度（透明度、不透明度と等価）情報、マスク情報、或いはバンプ情報などとして使用できる。
【００４５】
描画部１２０はモデルオブジェクト描画部１２２、影画像生成部１２４を含む。
【００４６】
ここでモデルオブジェクト描画部１２２はキャラクタなどのモデルオブジェクトの描画処理を行う。具体的にはジオメトリ処理後のモデルオブジェクト（モデルオブジェクトを構成する複数のプリミティブ面）をフレームバッファ（描画バッファ１７２の中の１つのバッファ）に描画して、モデルオブジェクトの画像を生成する。またモデルオブジェクトが複数存在する場合には、これらの複数の第１〜第Ｎのモデルオブジェクトをフレームバッファに描画する。
【００４７】
影画像生成部１２４はモデルオブジェクトの影画像の生成処理を行う。具体的にはモデルオブジェクトの描画（フレームバッファへの描画）により得られたα値（αプレーン。ジオメトリ処理後のモデルオブジェクトの形状を有するαプレーン）に基づいて、影テクスチャのα値（αプレーン）を設定する。そして、影テクスチャ（影設定色の色プレーンと、モデルオブジェクトの描画により得られたαプレーンを有するテクスチャ）がマッピングされた影プリミティブ面の描画（例えばワークバッファへの描画）を行うことで、モデルオブジェクトの影画像を生成する。そして例えば、モデルオブジェクトが描画されているフレームバッファに対して、生成された影画像（ワークバッファ上の影画像）を例えば減算αブレンディング描画する。これにより、モデルオブジェクトの画像とその影画像が、フレームバッファ上に生成されるようになる。
【００４８】
なおモデルオブジェクトが複数存在する場合には、影画像生成部１２４は、第１〜第Ｎのモデルオブジェクトの描画により得られたα値（第１〜第Ｎのαプレーン）に基づいて、第１〜第Ｎのモデルオブジェクトに対応する第1〜第Ｎの影テクスチャのα値（第１〜第Ｎの影αプレーン）を設定する。そして第1〜第Ｎの影テクスチャがマッピングされた第１〜第Ｎの影プリミティブ面を描画することで、第1〜第Ｎのモデルオブジェクトの全体的な影を表す影画像（第１〜第Ｎのモデルオブジェクトの影が重なり合った影画像）を生成する。
【００４９】
またモデルオブジェクトの移動フィールドに、影の表示許可領域を区画するための影表示許可ライン（第１、第２の影表示許可ライン）が設定されている場合には、影画像生成部１２４は、影表示許可ラインに近づくにつれて徐々に薄くなる（透明になる）影画像を生成する。即ち影表示許可ラインに近づくにつれて影画像が薄くなるように影画像（影テクスチャ）のα値（αプレーン）を設定する。
【００５０】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００５１】
なお、本実施形態の画像生成システムは、１人のプレイヤのみがプレイできるシングルプレイヤモード専用のシステムにしてもよいし、複数のプレイヤがプレイできるマルチプレイヤモードも備えるシステムにしてもよい。また複数のプレイヤがプレイする場合に、これらの複数のプレイヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００５２】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【００５３】
２．１  モデルオブジェクトのα値を利用した影画像の生成
影画像の生成手法としては、影ポリゴンを用いる手法やモディファイアボリュームを用いる手法などがある。そして影ポリゴンを用いる従来の影画像生成手法では、以下のようにして影画像を生成する。即ち、まずモデルオブジェクトを透視変換してフレームバッファに描画し、モデルオブジェクトの画像を生成する（モデルオブジェクトの描画パス）。次に、モデルオブジェクトの形状を近似した影用の簡易オブジェクトを構成するポリゴンを影平面に投影し、投影により得られた影ポリゴンを透視変換してフレームバッファに描画し、影画像を生成する（影用簡易オブジェクトの描画パス）。
【００５４】
このように従来の影画像生成手法では、モデルオブジェクトの描画パスと影用簡易オブジェクトの描画パスという２回の描画パスが必要であった。このため、描画負荷（ジオメトリ処理）が２倍になってしまい、処理負荷が非常に重くなっていた。
【００５５】
そこで本実施形態は、モデルオブジェクトの描画により得られたα値（元画像のα値）を利用して、影画像を生成する手法を採用している。即ちモデルオブジェクトの描画により得られたαプレーン（モデルオブジェクトの形状を有するαプレーン）をマスクとして利用して、影画像を生成する。
【００５６】
具体的には、まず図２のＡ１に示すように、モデルオブジェクトＯＢをフレームバッファに描画する。次にＡ２に示すように、モデルオブジェクトＯＢの影領域（光源又は仮想的な光源により、モデルオブジェクトの影が落ちる領域）に設定される影プリミティブ面ＳＰＬ（狭義には影ポリゴン）を生成する。この影プリミティブ面は後述するようにモデルオブジェクトＯＢに設定された制御点又は制御点の投影点に基づいて生成できる。
【００５７】
次にＡ３に示すように、モデルオブジェクトＯＢの描画により生成されたα値（αプレーン）に基づいて、影テクスチャＳＴＥＸのα値（αプレーン）を設定する。ここで影テクスチャＳＴＥＸは、モデルオブジェクトＯＢの描画により生成されたα値のプレーンと、影色設定色（影色を設定するための色）のＲＧＢプレーンを有することができる。
【００５８】
次にＡ４に示すように、影テクスチャＳＴＥＸがマッピングされた影プリミティブ面ＳＰＬを描画することで、影画像ＳＤを生成する。ここで、影画像ＳＤは、フレームバッファ上に生成してもよいが、ワークバッファ（影バッファ）上に生成してもよい。そしてワークバッファ上で影画像ＳＤを生成した場合には、ワークバッファ上の影画像ＳＤを、モデルオブジェクトＯＢが描画されているフレームバッファに対して減算αブレンディングで描画すればよい。このように減算αブレンディングで描画する場合、影色が黒の時には影色設定色を白にすればよく、影色が薄い黒の時には影色設定色を灰色にすればよい。
【００５９】
影テクスチャＳＴＥＸに基づく影画像ＳＤの生成は図３に示す手法で実現できる。図３において影テクスチャＳＴＥＸの頂点Ｐ１、Ｐ２、Ｐ３、Ｐ４の座標（Ｘ１、Ｙ１）、（Ｘ２、Ｙ２）、（Ｘ３、Ｙ３）、（Ｘ４、Ｙ４）は、ＳＴＥＸの画像のフレームバッファ上でのＸ、Ｙ座標に相当する。影プリミティブ面ＳＰＬの頂点Ｖ１、Ｖ２、Ｖ３、Ｖ４のテクスチャ座標（ＴＸ１、ＴＹ１）、（ＴＸ２、ＴＹ２）、（ＴＸ３、ＴＹ３）、（ＴＸ４、ＴＹ４）に対し、これらの（Ｘ４、Ｙ４）、（Ｘ３、Ｙ３）、（Ｘ２、Ｙ２）、（Ｘ１、Ｙ１）を設定して、ＳＴＥＸをＳＰＬにマッピングすれば、モデルオブジェクトＯＢの影画像ＳＤを生成できる。即ち、モデルオブジェクトＯＢの画像を所与のラインを基準にひっくり返したフリップ（flip）画像である影画像ＳＤを得ることができる。
【００６０】
図４に本実施形態の手法により生成された画像の例を示す。図４に示すように本実施形態によればモデルオブジェクトＯＢのリアルな影画像ＳＤを生成できる。
【００６１】
特に本実施形態では図４のようなリアルな影画像を生成するのに、ジオメトリ処理（透視変換）が必要な描画パスが、モデルオブジェクトの１回の描画パスだけで済むという利点がある。
【００６２】
即ち従来の影画像生成手法では、モデルオブジェクトの描画パスと影用の簡易オブジェクトの描画パスという２回の描画パスが必要であった。これに対して本実施形態によれば１回の描画パスで済むため、処理負荷を格段に軽減できる。
【００６３】
また従来の影画像生成手法では、影画像は影用の簡易オブジェクトにより生成されていたため、影のディテールを表現することがで難しかった。これに対して本実施形態によれば、モデルオブジェクトの描画により得られたαプレーンの形状を利用して、影画像が生成される。従って影のディテールまで表現されたリアルな影画像を少ない処理負荷で生成できるという効果がある。
【００６４】
なおモデルオブジェクトが複数存在する場合に、図２の手法で各モデルオブジェクトの影画像をワークバッファ（影バッファ）上に順次生成し、生成された全体的な影を表す影画像をフレームバッファに描画（減算αブレンディング）すれば、図５のような画像を生成できる。
【００６５】
具体的には、モデルオブジェクトＯＢ１の影領域に設定される第１の影プリミティブ面を生成する。そしてＯＢ１の描画により得られたα値に基づいて、ＯＢ１に対応する第1の影テクスチャのα値を設定し、第1の影テクスチャがマッピングされた第１の影プリミティブ面をワークバッファに描画する。次にモデルオブジェクトＯＢ２の影領域に設定される第２の影プリミティブ面を生成する。そしてＯＢ２の描画により得られたα値に基づいて、ＯＢ２に対応する第２の影テクスチャのα値を設定し、第２の影テクスチャがマッピングされた第２の影プリミティブ面をワークバッファに描画する。そしてワークバッファに最終的に生成された影画像を、フレームバッファに減算αブレンディングで描画する。このようにすれば、ＯＢ１、ＯＢ２の全体的な影を表す影画像ＳＤを生成できるようになる。しかもこの場合に、ＯＢ１の影画像とＯＢ２の影画像が重なり合う部分の色が、重なり合わない部分の色に比べて濃くはならないため、よりリアルで自然な影を表現できるようになる。
【００６６】
２．２  影プリミティブ面の生成
さて図６に示すように、モデルオブジェクトＯＢの画像をラインＬＮを基準に単純にフリップ（反転）して影画像ＳＤを生成すると、現実世界とは異なる影が生成されてしまうとおそれがある。即ち図６のＢ１に示す左足の影は、本来ならば左足の直ぐ下に表示されるはずである。しかしながら図６では、Ｂ２に示すように左足から離れた位置に左足の影が表示されてしまう。図７に、このような影の不具合画像の例を示す。図７のＣ１に示すように、左足に対してその影が離れた位置に表示されてしまい、不自然な画像になっている。
【００６７】
そこで本実施形態では図８に示すように、モデルオブジェクトＯＢに設定される複数の制御点ＣＰ１、ＣＰ２に基づいて、影プリミティブ面ＳＰＬを生成する手法を採用している。即ちモデルオブジェクトＯＢに対して、影プリミティブ面ＳＰＬを変形させるための制御点ＣＰ１、ＣＰ２を設定し、この制御点ＣＰ１、ＣＰ２に基づき変形されて生成された影プリミティブ面ＳＰＬに対して、図３に示すように影テクスチャＳＴＥＸをマッピングし、影画像ＳＤを生成する。
【００６８】
このようにすれば、図７に示すような不具合画像が生成されるのを防止でき、図４に示すように正確でリアルな影画像ＳＤを生成できるようになる。
【００６９】
なお図８ではモデルオブジェクトＯＢに設定される制御点の個数が２個である場合の例を示しているが、制御点の個数は３個以上であってもよい。例えばモデルオブジェクトが４つ足のキャラクタである場合には、各足に１つずつ、合計で４個の制御点を設定すればよい。
【００７０】
また制御点は、モデルオブジェクトＯＢを構成するパーツオブジェクト（頭、首、胸、腰、腕、脚、手、足等）のうち、移動フィールド（地面）に接地するパーツオブジェクト（例えば足）に対して設定することができる。なお、モデルオブジェクトが足以外のパーツオブジェクト（例えば手）を接地させて移動するキャラクタである場合には、その足以外のパーツオブジェクトに対して制御点を設定すればよい。
【００７１】
また図９のようにモデルオブジェクトＯＢが足を上げた場合においても正確な影を生成するためには、制御点ＣＰ１を移動フィールドに投影した投影点ＰＰ１に基づいて、影プリミティブ面ＳＰＬを生成すればよい。このようにすれば、図９において右足の制御点ＣＰ１の投影点ＰＰ１の位置に、右足の影が表示されるようになり、更に正確でリアルな影画像の生成が可能になる。
【００７２】
制御点ＣＰ１、ＣＰ２に基づく影プリミティブ面ＳＰＬの生成は、具体的には以下のような手法により実現できる。
【００７３】
即ち、まず図１０に示すように、モデルオブジェクトＯＢを内包するバウンディングボックスＢＢ（バウンディングボリューム）を生成する。このバウンディングボックスＢＢは、モデルオブジェクトＯＢのスクリーン座標系での頂点（ジオメトリ処理後のＯＢの頂点）のＸ座標、Ｙ座標を求め、これらの頂点のＸ座標の最小値ＸＭＩＮ、最大値ＸＭＡＸと、Ｙ座標の最小値ＹＭＩＮ、最大値ＹＭＡＸを求めることで生成できる。なお、余裕を持たせるために、バウンディングボックスＢＢの大きさを、図１０よりも若干だけ広げた大きさに設定してもよい。
【００７４】
次に図１１に示すように、生成されたバウンディングボックスＢＢの頂点と、制御点ＣＰ１、ＣＰ２（又は投影点。他の説明でも同様）とに基づいて、影プリミティブ面ＳＰＬの頂点を求める。具体的には、制御点ＣＰ１、ＣＰ２に基づいてバウンディングボックスＢＢを分割し、分割により得られたＢＢの頂点ＰＡ１、ＰＡ２を、ＣＰ１、ＣＰ２を基準に点対称に移動した点を、ＳＰＬの頂点ＰＢ１、ＰＢ２に設定する。このようにして影プリミティブ面ＳＰＬを生成し、図３の手法で影テクスチャＳＴＥＸをＳＰＬをマッピングすれば、図７のような不具合を解消して、図４に示すように正確でリアルな影画像を生成できるようになる。
【００７５】
なお図１１では、ＰＡ１、ＰＡ２とＰＢ１、ＰＢ２がＣＰ１、ＣＰ２を基準に点対称な点になるように、影プリミティブ面ＳＰＬを生成しているが、ＳＰＬの生成手法はこれに限定されない。例えば図１２に示すように影プリミティブ面ＳＰＬを更に変形するようにしてもよい。例えば光源からの光の方向に応じて影プリミティブ面ＳＰＬを変形すれば、光の方向に応じて影の落ち方が変化する表現を実現でき、更にリアルな影画像を生成できる。そしてこの図１２の場合には、ＰＡ１、ＰＡ２とＰＢ１、ＰＢ２がＣＰ１、ＣＰ２を基準に点対称な点になっておらず、ＰＡ１、ＣＰ１の線分とＰＢ１、ＣＰ１の線分は平行になっておらず、ＰＡ２、ＣＰ２の線分とＰＢ２、ＣＰ２の線分も平行になっていない。更に、ＰＡ１、ＣＰ１間の距離とＰＢ１、ＣＰ１間の距離を異ならせたり、ＰＡ２、ＣＰ２間の距離とＰＢ２、ＣＰ２間の距離を異ならせるようにしてもよい。
【００７６】
２．３  影のグラディエーション
ロールプレイングゲームや格闘ゲームなどでは、従来の２次元ゲームの移動制御システムを踏襲するものがある。例えば図１３では、モデルオブジェクトＯＢ１、ＯＢ２は、基準ラインＢＬ（移動ライン）上で移動する。具体的には第１のプレイヤの操作により、ＯＢ１は基準ラインＢＬ上で左右に移動し、第２のプレイヤ又はコンピュータの操作により、ＯＢ２は基準ラインＢＬ上で左右に移動する。そしてＯＢ１、ＯＢ２が接近して、プレイヤが攻撃操作を行うと、ＯＢ１、ＯＢ２間での戦闘が行われる。なお基準ラインＢＬは例えばワールド座標系でのＺＷが一定となるライン（例えばＺＷ＝０）である。但し、基準ラインＢＬはＺＷが一定とならないラインであってもよいし、直線のみならず、曲線であってもよい。
【００７７】
通常の３次元ゲームでは、モデルオブジェクトＯＢ１、ＯＢ２が移動フィールド上で自由な方向に移動できる移動制御システムを採用するのが一般的である。しかしながら、この移動制御システムでは、ＯＢ１、ＯＢ２の移動の自由度が高すぎて、プレイヤが操作に混乱するおそれがある。
【００７８】
この点、図１３のような移動制御システムによれば、モデルオブジェクトＯＢ１、ＯＢ２の移動の自由度が、左右方向（ＸＷ軸上の方向）だけであるため、プレイヤの操作を簡素化できる。特に従来の２次元ゲームの移動制御システムに慣れているプレイヤにとっては、３次元ゲームであっても図１３のような移動制御システムを踏襲している方が望ましい。
【００７９】
そして図１３のような移動制御システムを採用している場合には、影が表示される領域も所定の範囲に限定できる。そこで図１３では、影表示許可領域ＤＲを設定し、この影表示許可領域ＤＲにおいてのみ影が表示されるようにしている。ここで、影表示許可領域ＤＲは、影表示許可ラインＤＬ１、ＤＬ２により区画される領域であり、ＤＬ１、ＤＬ２の内側の領域で影の表示が許可される。この影表示許可ラインＤＬ１、ＤＬ２は例えば基準ラインＢＬに平行なラインである。
【００８０】
図１３では、地面の凹凸を変化させるようなオブジェクトＯＢ４、ＯＢ５を、影表示許可領域ＤＲ内に配置することを、ゲームデザインのルールで禁止している。こうすれば、影表示許可領域ＤＲにおいては、地面に凹凸が無く、平らであることが保証されるようになる。従って、図２に示す手法で影画像を生成したとしても、破綻の無い影を表現できるようになる。即ち図２の手法で影画像を生成した場合に、地面の凹凸を変化させるオブジェクトＯＢ４、ＯＢ５が、影が落ちる領域に配置されてしまうと、その部分に影が乗らなくなり、不自然な画像が生成されるおそれがある。影表示許可領域ＤＲを設定して、ＤＲへのＯＢ４、ＯＢ５の配置を禁止すれば、このようなおそれを防止できる。
【００８１】
但し、モデルオブジェクトＯＢ１、ＯＢ２の大きさは多様であり、ＯＢ１、ＯＢ２の高さが高いと、ＯＢ１、ＯＢ２の影が影表示許可領域ＤＲからはみ出してしまう事態が生じる。そこで本実施形態では、モデルオブジェクトの影にグラディエーションを付けることで、このような事態の発生を防止している。
【００８２】
即ち図１４に示すように、モデルオブジェクトの影として、影表示許可ラインＤＬ１、ＤＬ２に近づくにつれて徐々に薄くなるような影画像を生成する。具体的には、基準ラインＢＬ上でのα値をα＝１２８（最大値）とした場合に、影表示許可ラインＤＬ１、ＤＬ２でのα値がα＝０（最小値）になるように、α値を徐々に変化させる。
【００８３】
このようにすれば図１５に示すように、モデルオブジェクトＯＢの影が影表示許可ラインに近づくにつれて徐々に薄くなる影画像ＳＤを生成できるようになる。これにより、影表示許可領域ＤＲの外側に影がはみ出して表示されてしまうのを防止できる。従って、影表示許可領域ＤＲの外側にある図１３のオブジェクトＯＢ４、ＯＢ５の位置に影が落ちないようになり、影表示が破綻してしまう事態を防止できる。
【００８４】
２．４  詳細な処理例
次に本実施形態の詳細な処理例を図１６のフローチャートを用いて説明する。
【００８５】
まず、ワークバッファ（影バッファ）のＲＧＢプレーンに影色設定色（例えば白、灰色）を書き込み、αプレーンのα値を０に初期化する（ステップＳ１）。
【００８６】
次にフレームバッファにα＝１２８のプレーンを描画する（ステップＳ２）。そして図２のＡ１で説明したように、フレームバッファにキャラクタ（モデルオブジェクト）を描画する（ステップＳ３）。この場合にキャラクタのα値はα＜１２８になるように設定されている。従ってステップＳ３でキャラクタを描画することにより、フレームバッファのうち、キャラクタの描画部分はα＜１２８になり、それ以外の部分はステップＳ２の処理によりα＝１２８に設定されることになる。
【００８７】
次にフレームバッファのα＜１２８の部分（キャラクタの描画部分）にα＝６４の値を描く（ステップＳ４）。具体的には、αテストによってα＝１２８の部分が描画されないように設定して、α＝６４に設定されたポリゴンをフレームバッファに上書き描画する。このようにすれば、キャラクタのα値が不均一な値であっても、この不均一な値をα＝６４の一定値に設定することが可能になる。
【００８８】
次に、図９で説明したようにキャラクタに設定された制御点を移動フィールドに投影した投影点を求める（ステップＳ５）。そして投影点に基づいて影ポリゴン（広義には影プリミティブ面）を生成する（ステップＳ６）。
【００８９】
次に、図２のＡ３、Ａ４で説明したように、フレームバッファのα値がαプレーンに設定された影テクスチャを影ポリゴンにマッピングして、その影ポリゴンをワークバッファに描画する（ステップＳ７）。この際に、αテストによって、影テクスチャのα＝１２８の部分（ステップＳ２でα＝１２８に設定された部分）が、ワークバッファに描画されないように設定する。更に、影テクスチャのα値に影ポリゴンのα値を加算して、フレームバッファのα＝６４の部分（ステップＳ４でα＝６４に設定された部分）がα＝１２８として描画されるようにする。
【００９０】
次に全てのキャラクタの描画が完了したか否かを判断し（ステップＳ８）、完了した場合にはステップＳ２の処理に戻る。そして、全てのキャラクタの描画が完了するまでステップＳ２〜Ｓ８の処理を繰り返す。一方、全てのキャラクタの描画が完了した場合には、ワークバッファのα≧１２８の部分に対し、影表示許可ラインに近づくにつれて影が徐々に薄くなるように、グラディエーションを付けたα値を描く（ステップＳ９）。具体的には、αが図１４のように設定された、影表示許可領域ＤＲのサイズのポリゴンを、ワークバッファに描画する。
【００９１】
次に、図２のＡ５で説明したように、ワークバッファのα＞０の部分をテクスチャとして、フレームバッファに減算αブレンディングで描画する（ステップＳ１０）。具体的には、ワークバッファの画像がテクスチャとしてマッピングされた、影表示許可領域ＤＲのサイズのポリゴンを、フレームバッファに減算αブレンディングで描画する。これにより、ワークバッファの影画像がフレームバッファにコピーされ、フレームバッファ上に、モデルオブジェクトの画像と影画像が生成されるようになる。
【００９２】
３．ハードウェア構成
図１７に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【００９３】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセラレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【００９４】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【００９５】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【００９６】
ＲＯＭ９５０にはシステムプログラムなどが格納されている。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されている。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されているＣＤ９８２にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【００９７】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されているプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００９８】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納されている。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【００９９】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語（描画バッファ、モデルオブジェクト、影プリミティブ面等）と共に記載された用語（フレームバッファ・ワークバッファ、キャラクタ、影ポリゴン等）は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。
【０１００】
また、影プリミティブ面の生成手法や、影画像の生成手法や、制御点の設定手法なども、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。例えばモデルオブジェクトに設定された制御点又はその投影点に基づいて影プリミティブ面を生成する発明や、影表示許可ラインに近づくにつれて徐々に薄くなる影画像を生成する発明では、図２で説明した手法以外の手法で影画像を生成してもよい。
【０１０１】
また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレイヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１０２】
【図１】本実施形態の画像生成システムの機能ブロック図の例。
【図２】本実施形態の影画像生成手法の説明図。
【図３】影プリミティブ面への影テクスチャのマッピング手法の説明図。
【図４】本実施形態により生成された画像の例。
【図５】本実施形態により生成された画像の例。
【図６】影画像の生成の際に生じる不具合についての説明図。
【図７】不具合画像の例。
【図８】影プリミティブ面の生成手法の説明図。
【図９】影プリミティブ面の生成手法の説明図。
【図１０】影プリミティブ面の生成手法の説明図。
【図１１】影プリミティブ面の生成手法の説明図。
【図１２】影プリミティブ面の生成手法の説明図。
【図１３】モデルオブジェクトの移動制御手法の説明図。
【図１４】影にグラディエーションを付ける手法の説明図。
【図１５】本実施形態により生成された画像の例。。
【図１６】本実施形態の処理の詳細例。
【図１７】ハードウェア構成例。
【符号の説明】
【０１０３】
ＯＢ、ＯＢ１、ＯＢ２  モデルオブジェクト、ＳＰＬ  影プリミティブ面、
ＳＴＥＸ  影テクスチャ、ＳＤ  影画像
１００  処理部、１１０  オブジェクト空間設定部、１１２  移動・動作処理部、
１１４  仮想カメラ制御部、１１６  影プリミティブ面生成部、
１２０  描画部、１２２  モデルオブジェクト描画部、１２４  影画像生成部、
１３０  音生成部、１６０  操作部、１７０  記憶部、１７２  描画バッファ、
１７４  テクスチャ記憶部、１７６  Ｚバッファ、１８０  情報記憶媒体、
１９０  表示部、１９２  音出力部、１９４  携帯型情報記憶装置、１９６  通信部
【図１】
2006252291.tif 000003
【図２】
2006252291.tif 000004
【図３】
2006252291.tif 000005
【図６】
2006252291.tif 000006
【図８】
2006252291.tif 000007
【図９】
2006252291.tif 000008
【図１０】
2006252291.tif 000009
【図１１】
2006252291.tif 000010
【図１２】
2006252291.tif 000011
【図１３】
2006252291.tif 000012
【図１４】
2006252291.tif 000013
【図１６】
2006252291.tif 000014
【図１７】
2006252291.tif 000015
【図４】
2006252291.tif 000016
【図５】
2006252291.tif 000017
【図７】
2006252291.tif 000018
【図１５】
2006252291.tif 000019