(57)【特許請求の範囲】
【請求項１】
画像生成を行うゲームシステムであって、
隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトを、オブジェクト空間内に設定する手段と、
ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードの隣接ノードが有する前記ノード状態パラメータを変化させる手段と、
ノードが有する前記ノード状態パラメータに基づいて、該ノードの色を決定する手段と、
オブジェクト空間内の所与の視点での画像を生成する手段と、
を含むことを特徴とするゲームシステム。
【請求項２】
コンピュータ読み取り可能な情報記憶媒体であって、
隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトを、オブジェクト空間内に設定する手段と、
ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードの隣接ノードが有する前記ノード状態パラメータを変化させる手段と、
ノードが有する前記ノード状態パラメータに基づいて、該ノードの色を決定する手段と、
オブジェクト空間内の所与の視点での画像を生成する手段としてコンピュータを機能させるためのプログラムを記憶したことを特徴とする情報記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームシステム及び情報記憶媒体に関する。
【背景技術】
【０００２】
従来より、仮想的な３次元空間であるオブジェクト空間内の所与の視点から見える画像を生成するゲームシステムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。ロールプレイングゲームを楽しむことができるゲームシステムを例にとれば、プレーヤは、キャラクタ（オブジェクト）を操作してオブジェクト空間内のマップ上で移動させ、敵キャラクタと対戦したり、他のキャラクタと対話したり、様々な町を訪れたりすることでゲームを楽しむ。
【０００３】
さて、このようなゲームシステムでは、プレーヤの仮想現実感の向上のために、よりリアルな画像を生成することが重要な技術的課題になっている。従って、炎により物が燃える様子についても、リアルな画像で表現できることが望まれる。即ち、炎により布が燃える場合を例にとれば、着火した炎が次第に燃え広がり、布が燃えちぎれて無くなって行く様子などを表現できることが望まれる。
【０００４】
そして、このような布の燃えちぎれ表現を実現する手法として、例えば以下の第１、第２の手法が考えられる。
【０００５】
第１の手法では、燃えちぎれる前の布を表す布オブジェクトＯＢ1と燃えちぎれた後の布を表す布オブジェクトＯＢ1-1、ＯＢ1-2を予め用意しておく。そして、布が燃えちぎれたと判断した場合に、使用する布オブジェクトをＯＢ1からＯＢ1-1、ＯＢ1-2に切り替える。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平９−２２３２４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、この第１の手法では、生成される画像が画一的になってしまい、今一つリアルで多様な画像を生成できないという問題がある。そして、この問題を解決するために、様々なちぎれ方を表現するための多数のオブジェクトを用意しておく手法も考えることができるが、これは、オブジェクトデータの使用記憶容量の増加の問題を招く。
【０００８】
また第２の手法では、布が燃えちぎれたと判断した場合に、布オブジェクトＯＢ1をリアルタイムに分割し、燃えちぎれた後の布を表す布オブジェクトＯＢ1-1、ＯＢ1- 2をリアルタイムに生成する。
【０００９】
しかしながら、この第２の手法では、布が燃えちぎれる毎に、布オブジェクトのデータ構造が変化してしまい、データの管理が煩雑化する。また、布が燃えちぎれる毎に、データ量が増加してしまい。メモリの使用データ量が増加してしまうという問題も招く。
【００１０】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、物が炎により燃える様子などを表すリアルな画像を、少ないデータ量と少ない処理負担で生成できるゲームシステム及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【００１１】
本発明は、画像生成を行うゲームシステムであって、
隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトを、オブジェクト空間内に設定する手段と、
ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードの色を決定する手段と、
オブジェクト空間内の所与の視点での画像を生成する手段と、
を含むことを特徴とする。
【００１２】
また、本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各手段としてコンピュータを機能させるためのプログラムを記憶した情報記憶媒体に関係する。
【図面の簡単な説明】
【００１３】
【図１】本実施形態のゲームシステムのブロック図の例である。
【図２】図２（Ａ）、（Ｂ）は、本実施形態により生成されるゲーム画像の例である。
【図３】図３（Ａ）、（Ｂ）も、本実施形態により生成されるゲーム画像の例である。
【図４】燃え尽きたノードの束縛力を無効にすると共に、そのノードを頂点とするポリゴンを非表示にする手法について説明するための図である。
【図５】ノードのデータ構造の例を示す図である。
【図６】仮想バネのデータ構造の例を示す図である。
【図７】図７（Ａ）、（Ｂ）は、燃焼度（ノード状態）パラメータを利用して布の燃えちぎれ表現を実現する手法について説明するための図である。
【図８】図８（Ａ）、（Ｂ）も、燃焼度パラメータを利用して布の燃えちぎれ表現を実現する手法について説明するための図である。
【図９】燃焼度パラメータに基づいてパーティクルを発生する手法について説明するための図である。
【図１０】パーティクルを３Ｄスプライトで表現する手法について説明するための図である。
【図１１】図１１（Ａ）、（Ｂ）は、炎パーティクルについて説明するための図である。
【図１２】図１２（Ａ）、（Ｂ）も、炎パーティクルについて説明するための図である。
【図１３】図１３（Ａ）、（Ｂ）も、炎パーティクルについて説明するための図である。
【図１４】燃焼度パラメータに基づいてノード付近の画像を変化させる手法について説明するための図である。
【図１５】図１５（Ａ）、（Ｂ）は、本実施形態の手法により徐々に画像が変化する布オブジェクトの画像の例である。
【図１６】図１６（Ａ）、（Ｂ）も、本実施形態の手法により徐々に画像が変化する布オブジェクトのワイヤーフレーム画像の例である。
【図１７】図１７（Ａ）、（Ｂ）も、本実施形態の手法により徐々に画像が変化する布オブジェクトのワイヤーフレーム画像の例である。
【図１８】本実施形態の詳細な処理例について示すフローチャートである。
【図１９】本実施形態の詳細な処理例について示すフローチャートである。
【図２０】本実施形態の詳細な処理例について示すフローチャートである。
【図２１】本実施形態の詳細な処理例について示すフローチャートである。
【図２２】本実施形態の詳細な処理例について示すフローチャートである。
【図２３】図２３（Ａ）、（Ｂ）、（Ｃ）は、本実施形態の詳細な処理例について説明するための図である。
【図２４】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図２５】図２５（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【発明を実施するための形態】
【００１４】
上記課題を解決するために、本実施形態は、画像生成を行うゲームシステムであって、隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトを、オブジェクト空間内に設定する手段と、前記複数のノードの中のあるノードが無効ノードになったと判断した場合に、該無効ノードと該無効ノードの隣接ノードとを連結する束縛力を無効にする手段と、オブジェクト空間内の所与の視点での画像を生成する手段とを含むことを特徴とする。また本実施形態に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本実施形態に係るプログラムは、コンピュータにより使用可能なプログラム（搬送波に具現化されるプログラムを含む）であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【００１５】
本実施形態によれば、あるノードが無効ノードになったと判断されると、無効ノードとその隣接ノードとを連結する束縛力が無効になる。従って、無効ノードが、その周りの隣接ノードから切り離されるようになり、オブジェクトに穴が空いたり、オブジェクトがちぎれるなどの画像表現が可能になる。
【００１６】
特に、各ノードが位置、速度、加速度などのアトリビュートデータを有する場合には、オブジェクトのちぎれた部分を物理計算に基づいて落下させたりすることなどが可能になり、よりリアルな画像を生成できるようになる。
【００１７】
また本実施形態は、画像生成を行うゲームシステムであって、隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトを、オブジェクト空間内に設定する手段と、前記複数のノードの中のあるノードが無効ノードになったと判断した場合に、オブジェクトを構成するプリミティブのうち、該無効ノードを定義点として含むプリミティブの描画を省略する手段と、オブジェクト空間内の所与の視点での画像を生成する手段とを含むことを特徴とする。また本実施形態に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本実施形態に係るプログラムは、コンピュータにより使用可能なプログラム（搬送波に具現化されるプログラムを含む）であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【００１８】
本実施形態によれば、あるノードが無効ノードになったと判断されると、その無効ノードを定義点（頂点、制御点）として含むプリミティブの描画が省略される。従って、無効ノード付近の画像が表示されないようになり、オブジェクトに穴が空いたり、オブジェクトがちぎれるなどの画像表現が可能になる。
【００１９】
なお、無効ノードを定義点として含むプリミティブの描画を省略する際には、無効ノードと無効ノードの隣接ノードとを連結する束縛力も無効にすることが望ましい。
【００２０】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードが無効ノードになったか否かが判断されることを特徴とする。
【００２１】
このようにすれば、例えば、ノード状態パラメータが変化したり、ノード状態パラメータが所与の値に達したことを条件に、ノードが無効になったと判断できるようになり、処理の簡素化を図れる。
【００２２】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードの隣接ノードに対して該ノードのノード状態を伝達する手段（或いは該手段を実行するためのプログラム又は処理ルーチン）を含むことを特徴とする。
【００２３】
また本実施形態は、画像生成を行うゲームシステムであって、隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトを、オブジェクト空間内に設定する手段と、ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードの隣接ノードに対して該ノードのノード状態を伝達する手段と、オブジェクト空間内の所与の視点での画像を生成する手段とを含むことを特徴とする。また本実施形態に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本実施形態に係るプログラムは、コンピュータにより使用可能なプログラム（搬送波に具現化されるプログラムを含む）であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【００２４】
本実施形態によれば、ノード状態パラメータを利用して、あるノードのノード状態を隣接ノードに伝達することが可能になる。従って、あるノードのノード状態が、そのノードから周りのノードに徐々に伝達して行く様子を表現できるようになり、例えば炎の燃え移り表現などに最適な画像表現が可能になる。
【００２５】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードの隣接ノードに対して該ノードのノード状態を伝達するか否かを判断し、ノード状態を伝達すると判断した場合には、ノード状態が伝達された隣接ノードのノード状態パラメータを変化させることを特徴とする。
【００２６】
このようにすれば、そのノードのノード状態パラメータが変化したり、ノード状態パラメータが所与の値に達したことを条件に、そのノードの隣接ノードのノード状態パラメータを変化させることが可能になる。これにより、あるノードを出発点として、その周りのノードのノード状態が次々と変化する様子を表現できるようになる。
【００２７】
また本実施形態は、画像生成を行うゲームシステムであって、隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトを、オブジェクト空間内に設定する手段と、ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードからパーティクルを発生する手段と、オブジェクト空間内の所与の視点での画像を生成する手段とを含むことを特徴とする。また本実施形態に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本実施形態に係るプログラムは、コンピュータにより使用可能なプログラム（搬送波に具現化されるプログラムを含む）であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【００２８】
本実施形態によれば、ノード状態パラメータを利用して、そのノードからパーティクルを発生させることが可能になる。従って、ノード状態に応じたパーティクルをそのノードから発生させることが可能になり、よりリアルなパーティクル表現を実現できる。
【００２９】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードからパーティクルを発生するか否かを判断し、パーティクルを発生すると判断した場合には、該ノードのノード状態パラメータに基づいてパーティクルのアトリビュートデータを決めることを特徴とする。
【００３０】
このようにすれば、そのノードのノード状態パラメータが変化したり、ノード状態パラメータが所与の値に達したことを条件に、ノード状態パラメータの値に応じたアトリビュートデータを有するパーティクルを、そのノードから発生させることが可能になる。従って、例えば、ノード状態パラメータに基づいて隣接ノードにノード状態を伝達する発明と組み合わせれば、パーティクルを発生するノードの領域が徐々に広がって行く様子などを表現でき、炎の燃え広がり表現などに最適な画像を生成できるようになる。
【００３１】
また本実施形態は、画像生成を行うゲームシステムであって、隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトを、オブジェクト空間内に設定する手段と、ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードの付近でのオブジェクトの画像を変化させる手段と、オブジェクト空間内の所与の視点での画像を生成する手段とを含むことを特徴とする。また本実施形態に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本実施形態に係るプログラムは、コンピュータにより使用可能なプログラム（搬送波に具現化されるプログラムを含む）であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【００３２】
本実施形態によれば、ノード状態パラメータを利用して、ノード付近でのオブジェクトの画像を変化させることが可能になる。従って、ノード状態に応じて、そのノード付近でのオブジェクトの色等の画像を局所的に変化させることが可能になり、よりリアルな画像表現を実現できる。
【００３３】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、オブジェクトを構成するプリミティブのうち、該ノードを定義点として含むプリミティブの画像を変化させることを特徴とする。
【００３４】
このようにすれば、プリミティブの定義点に与える画像データを変化させて、その画像データに基づいて、プリミティブ単位で画像を変化させることが可能になる。
【００３５】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、前記ノード状態パラメータが、各ノードの燃焼度を表すパラメータであることを特徴とする。
【００３６】
このような燃焼度パラメータを用いれば、ノードが燃え尽きたか否かの判断や、ノードの燃焼状態を他のノードに伝達するか否かの判断や、ノードから炎パーティクルを発生する否かの判断などを、簡素な処理で実現できるようになる。
【００３７】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、前記ノード状態パラメータが初期値である第１の値から変化した場合に、該ノードの状態変化が開始したと判断され、前記ノード状態パラメータが第２の値になった場合に、該ノードの状態変化が終了したと判断されることを特徴とする。
【００３８】
このようにすれば、例えば、ノード状態パラメータが第１の値から変化した場合に、ノード状態の変化が開始したと判断し、ノード状態パラメータが第１〜第２の値の間にある場合には、ノード状態の変化が進行中であると判断し、ノード状態パラメータが第２の値になった場合には、ノード状態の変化が終了し、例えばノードが無効になったと判断できるようになる。
【００３９】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、各ノードがアトリビュートデータとして、各ノードの位置、速度、加速度を有することを特徴とする。
【００４０】
このような位置、速度、加速度などのアトリビュートデータを各ノードに持たせれば、各ノードを物理シミュレーションにより移動させることが可能になり、よりリアルな画像表現が可能になる。
【００４１】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、前記複数のノードが格子状に配列されるノードであることを特徴とする。
【００４２】
このようにすれば、布オブジェクトや紙オブジェクトなどの板状オブジェクトの状態変化表現やちぎれ表現を、リアルに実現できるようになる。
【００４３】
以下、本発明の好適な実施形態について図面を用いて説明する。
【００４４】
１．構成
図１に、本実施形態のゲームシステム（画像生成システム）のブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１７０を含めばよく）、それ以外のブロックについては任意の構成要素とすることができる。
【００４５】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、マイク、或いは筺体などのハードウェアにより実現できる。
【００４６】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００４７】
情報記憶媒体（コンピュータにより使用可能な記憶媒体）１８０は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納される情報に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１８０には、本発明（本実施形態）の手段（特に処理部１００に含まれるブロック）を実行するための情報（プログラム或いはデータ）が格納される。
【００４８】
なお、情報記憶媒体１８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１７０に転送されることになる。また情報記憶媒体１８０には、本発明の処理を行うためのプログラム、画像データ、音データ、表示物の形状データ、本発明の処理を指示するための情報、或いはその指示に従って処理を行うための情報などを含ませることができる。
【００４９】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００５０】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００５１】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００５２】
通信部１９６は、外部（例えばホスト装置や他のゲームシステム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００５３】
なお本発明（本実施形態）の手段を実行するためのプログラム或いはデータは、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００５４】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）又はＡＳＩＣ（ゲートアレイ等）などのハードウェアや、所与のプログラム（ゲームプログラム）により実現できる。
【００５５】
ここで、処理部１００が行うゲーム処理としては、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ面）の位置や回転角度（Ｘ、Ｙ又はＺ軸回り回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などを考えることができる。
【００５６】
また、処理部１００は、上記のゲーム処理結果に基づいて例えばオブジェクト空間内において所与の視点（で仮想カメラ）から見える画像を生成し、表示部１９０に出力する。
【００５７】
更に、処理部１００は、上記のゲーム処理結果に基づいて各種の音処理を行い、ＢＧＭ、効果音、又は音声などの音を生成し、音出力部１９２に出力する。
【００５８】
なお、処理部１００の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００５９】
処理部１００は、オブジェクト空間設定部１０２、ノード状態処理部１０４、束縛力処理部１０６、ノード移動処理部１０８、パーティクル処理部１１０、描画処理部１１２を含む。
【００６０】
ここで、オブジェクト空間設定部１０２は、ゲームキャラクタ、マップなどの各種オブジェクト（モデル）をオブジェクト空間内に設定するための処理を行う。より具体的には、オブジェクトのワールド座標系での位置や回転角度（方向）を決定し、その位置にその回転角度でオブジェクトを配置する。
【００６１】
そして、本実施形態では、布などの表示物を表すためのオブジェクトとして、隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトが、オブジェクト空間内に設定されることになる。
【００６２】
ノード状態処理部１０４は、ノードがアトリビュートデータとして有するノード状態パラメータ（燃焼度パラメータ）に基づいて、ノード状態（燃焼度等）の判定処理や、隣接ノードへのノード状態の伝達処理などを行う。より具体的には、ノード状態パラメータに基づいて、隣接ノードにノード状態（燃焼状態）を伝達するか否か（炎を燃え移らせるか否か）を判断し、ノード状態を伝達すると判断した場合には、ノード状態が伝達された隣接ノードのノード状態パラメータを変化させる処理（燃焼状態にする処理）を行う。
【００６３】
なお、ノード状態パラメータは、その時のノードの状態（燃焼度、温度、湿度、強度、発光度等）を量的或いは質的に表すための変数であり、ノード状態に関連する処理において各種の判断の材料に使用されるものである。
【００６４】
また、ノードに与えるアトリビュートデータとしては、ノード状態パラメータの他に、各ノードの位置、速度又は加速度などを考えることができる。
【００６５】
束縛力処理部１０６は、ノード状態パラメータに基づいて、ノードが無効か否か（燃え尽きたか否か）を判断し、無効ノードと判断した場合には、無効ノードとその隣接ノードとを連結する束縛力（仮想バネ）を無効にする処理を行う。一方、ノードが無効でないと判断した場合には、ノード間に働かせるべき束縛力を演算する。
【００６６】
ノード移動処理部１０８は、各フレームでのノードの加速度、速度、位置を演算する。この場合、ノードの加速度は、ノードに働く束縛力や、重力や風の力などの物理パラメータに基づいて演算される。
【００６７】
パーティクル処理部１１０は、その形状が変形する不定形な表示物（例えば炎、煙、水、爆発）を表現するためのパーティクル（例えば炎パーティクル、煙パーティクル）を、時間経過に伴い順次発生させたり、移動させたり、消滅させたりする処理を行う。より具体的には、パーティクルの発生量、発生位置、移動状態（速度、加速度等）又は寿命をランダムに変化させる処理を行う。これにより、炎などの不定形な表示物もリアルに表現できるようになる。
【００６８】
そして、本実施形態では、パーティクル処理部１１０は、ノード状態パラメータに基づいてノードからパーティクルを発生する処理を行う。より具体的には、ノード状態パラメータに基づいて、そのノードからパーティクルを発生するか否かを判断する。そして、パーティクルを発生すると判断した場合には、そのノードのノード状態パラメータに基づいてパーティクルのアトリビュートデータ（炎の強さ、光の強度、発生量、速度、加速度、或いは寿命等）を決める。例えば、ノードの燃焼度が高い場合には、強い炎のパーティクルを発生するようにする。
【００６９】
描画処理部１１２は、テクスチャマッピングや色（輝度）補間処理や陰面消去などを行いながら、ジオメトリ処理後のオブジェクト（プリミティブ面）を描画領域１７４（例えばフレームバッファ）に描画するための処理を行う。これにより、オブジェクトが配置されるオブジェクト空間内の所与の視点（仮想カメラ）での画像が生成されるようになる。
【００７０】
そして本実施形態では、複数のノードの中のあるノードが、ノード状態パラメータなどに基づいて無効であると判断した場合には、その無効ノードを定義点（オブジェクトの形状を定義するための点であり、ポリゴンの頂点或いは自由曲面の制御点などがある）として含むプリミティブ（ポリゴン、自由曲面等）の描画が省略されるようになる。より具体的には、ノードを定義点とするプリミティブを描画することで、複数のノードにより形状が特定されるオブジェクト（例えば布）の画像が生成されるようになる。そして、例えばプリミティブがポリゴンである場合には、そのポリゴンの頂点の中に無効ノードがある場合には、そのポリゴンの描画は省略されるようになる。
【００７１】
更に本実施形態では、前述したノード状態パラメータに基づいて、そのノードの付近でのオブジェクトの画像（色、輝度等のプロパティ）を変化させている。より具体的には、ノード状態パラメータに基づいて、オブジェクトを構成するプリミティブのうち、そのノードを定義点として含むプリミティブの画像を変化させる。例えば、ノード状態パラメータに基づいてノードが燃焼状態であると判断された場合には、そのノードの付近での布（オブジェクト）の色を、元の色から変化させて徐々に黒くする。
【００７２】
なお、本実施形態のゲームシステムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００７３】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末を用いて生成してもよい。
【００７４】
２．本実施形態の特徴
２．１  布の燃えちぎれ表現
図２（Ａ）、（Ｂ）、図３（Ａ）、（Ｂ）に本実施形態により生成されるゲーム画像の例を示す。
【００７５】
図２（Ａ）では、ロウソク１８に炎２０が灯っている。この炎２０は、ロウソク１８の先端から発生する複数の炎パーティクルにより表現されている。そして、炎２０の周囲の小熊２２、机２４、布２５、絨毯２９などのオブジェクトは、この炎２０からの光（具体的には、炎パーティクルの代表位置に設定された代表光源からの光）により、陰影づけされる。また、この光により小熊２２の影３０なども生成される。
【００７６】
図２（Ｂ）では、ロウソク１８が倒れて、炎２０が机２４上の布２５に燃え移っている。そして、図３（Ａ）では、燃え移った炎２０が更に燃え広がっており、布が布片２６、２８に燃えちぎれている。また、布片２６、２８の色も徐々に黒くなっている。また図３（Ｂ）では、布が布片２６、２７、２８に燃えちぎれており、その色も更に黒くなっている。また、燃えちぎれた布片２６、２８は、重力（或いは風）により下に落ち始めている。
【００７７】
このように本実施形態では、布に燃え移った炎が徐々に燃え広がり、布が燃えちぎれて無くなって行く様子をリアルに表現している。そして、このような布の燃えちぎれ表現を実現するために、本実施形態では、以下に説明するような手法を採用している。
【００７８】
即ち、本実施形態では図４のＡ１に示すように、隣り合うノード同士が仮想バネ（広義には束縛力）により連結され、格子状に配置された複数のノードを用いて、布オブジェクトを表現している。そして、図４のＡ２に示すように、布オブジェクトの画像は、これらのノードを頂点（広義には定義点）として含むポリゴン（広義にはプリミティブ面）を描画することで生成される。
【００７９】
そして本実施形態では、炎が布に燃え移り、図４のＡ３に示すように、あるノードが燃え尽きたと判断した場合（無効ノードになったと判断した場合）には、その燃え尽きたノードとその隣接ノードとを連結していた仮想バネ（広義には束縛力）を無効にする。また、図４のＡ４に示すように、燃え尽きたノードを頂点として含むポリゴンを非表示（描画省略）にする。
【００８０】
このようにすることで、本実施形態では、布が徐々に燃えて行き、布が燃えちぎれる様子をリアルに表現できる。即ち、図４のＡ４に示すような布の非表示領域が徐々に広がって行くことで、布が燃えて行く様子がリアルに表現される。また、図４のＡ５に示す部分がＡ６に示す部分から切り離されて、重力（或いは風）などにより落下することで、布が燃えちぎれる様子がリアルに表現される。
【００８１】
また本実施形態には、布オブジェクトのデータ構造を変化させることなく、布の燃えちぎれ表現を実現できるという利点がある。
【００８２】
例えば図５、図６に、本実施形態で使用される布オブジェクトのデータ構造を示す。図５は、ノードについてのデータ構造の例であり、図６は、ノードを連結する仮想バネ（束縛力）についてのデータ構造である。
【００８３】
図５に示すように、各ノードは、そのアトリビュートデータとして、ノードの位置ｐ、速度ｖ、加速度ａ、質量Ｍ、燃焼度パラメータＦ（広義にはノード状態パラメータ）を有する。これらのアトリビュートデータは、そのノードのインデックスi,jを指定することで読み出すことができる。
【００８４】
また図６に示すように、各仮想バネは、そのアトリビュートデータとして、ノード間に働かせる張力Ｔや抗力Ｄ、静止距離Ｒ（張力が０になる距離）、仮想バネの一端に接続されるノードＡのインデックスi,jや他端に接続されるノードＢのインデックスi,jを有する。これらのアトリビュートデータは、その仮想バネのインデックスＫを指定することで読み出すことができる。
【００８５】
例えば、布の燃えちぎれ表現を実現する手法として第１、第２の手法を考えることができる。
【００８６】
第１の手法では、布が燃えちぎれたと判断した場合に、燃えちぎれる前の布を表す布オブジェクトＯＢ1を、燃えちぎれた後の布を表す布オブジェクトＯＢ1-1、ＯＢ1-2に切り替えることで、布の燃えちぎれ表現を実現する。
【００８７】
しかしながら、この第１の手法には、生成される画像が画一的になってしまったり、オブジェクトデータの使用記憶容量が増加してしまうなどの問題がある。
【００８８】
また第２の手法では、布が燃えちぎれたと判断した場合に、布オブジェクトＯＢ1をリアルタイムに分割し、燃えちぎれた後の布を表す布オブジェクトＯＢ1-1、ＯＢ1-2をリアルタイムに生成する。
【００８９】
しかしながら、この第２の手法では、布オブジェクトのデータ構造が変化してしまうため処理が煩雑化したり、布が燃えちぎれる毎にデータ量が増加してしまうためメモリの使用データ量が増えてしまうなどの問題がある。
【００９０】
本実施形態によれば、図５、図６から明らかなように、布が燃えたり、燃えちぎれても、布オブジェクトのデータ構造やデータ量は変化しない。従って、布が燃えちぎれる様子を表すリアルな画像を、少ないデータ量と少ない処理負担で生成できるようになる。  
【００９１】
２．２  燃焼度（ノード状態）パラメータ
さて、本実施形態では図５に示すように、各ノードのアトリビュートデータの中に燃焼度（ノード状態）パラメータＦを含ませている。本実施形態では、この燃焼度パラメータＦを有効利用することで、炎の燃え広がりや、布の燃えちぎれ表現を簡素な処理で実現することに成功している。
【００９２】
例えば図７（Ａ）に示すように、初期状態においては、燃焼度パラメータＦは、すべてのノードにおいて１０００（第１の値）に設定されている。そして、このＦ＝１０００は、ノードが燃えていないことを示す。
【００９３】
そして、何らかの原因でノードに炎が燃え移ると、図７（Ｂ）のＣ１に示すように、そのノードの燃焼度パラメータＦの値が１だけ減って、９９９に変化する。そして、このようにノードの燃焼度パラメータＦが１０００よりも小さくなると、そのノードから隣接ノードに燃焼状態（ノード状態）が伝達する。
【００９４】
即ち、隣接ノード（自ノードも含む）の中からランダムに選択されたノードに対して炎が燃え移る。例えば図８（Ａ）では、Ｄ１に示すノードからＤ２に示すノードに火が燃え移っており、炎が燃え移ったＤ２に示すノードの燃焼度パラメータＦの値も１だけ減って、９９９に変化する。
【００９５】
そして、今度は、図８（Ａ）のＤ１に示すノードのみならず、Ｄ２に示すノードからも、隣接ノードに炎が燃え移るようになる。また、Ｄ１に示すノードの燃焼度パラメータＦの値は更に１だけ減って、９９８に変化する。
【００９６】
一度、炎が燃え移ると、そのノードの燃焼度パラメータは、１又は複数のフレーム毎に１ずつ減少し続ける。図８（Ｂ）のＤ３に示すノードでは、燃焼度パラメータＦ＝０になっており、そのノードは燃え尽きた（無効になった）と判断される。すると、そのノードとその隣接ノードとを連結する仮想バネも無効になる。
【００９７】
このように、ノードにアトリビュートデータとして燃焼度パラメータＦを持たせれば、ノードが燃焼状態か否かの判定や、隣接ノードに炎を燃え移らせる処理や、ノードが燃え尽きたか否かの判定や、燃え尽きたノードの仮想バネを無効にする処理などを、１つの燃焼度パラメータＦを用いて一元的に処理できるようになる。従って、処理の簡素化、処理負担の軽減化を図れる。
【００９８】
本実施形態では、この燃焼度パラメータＦを、炎のパーティクルの発生にも有効利用している。即ち、各ノードの燃焼度パラメータＦに基づいて、そのノードから炎パーティクルを発生するか否かを判断する。そして、発生すると判断した場合には、燃焼度パラメータＦに基づいて炎パーティクルのアトリビュートデータ（炎の強さ等）を決定している。
【００９９】
より具体的には、本実施形態では、図９のＥ１、Ｅ２に示すように、燃焼度パラメータＦが１０００よりも小さくなっているノード（燃焼しているノード）の中から、ランダムな個数のノードを選択する。そして、その選択されたノードから炎パーティクルを発生する。この際に、発生する炎パーティクルの炎の強さＩＦを、燃焼度パラメータＦに基づいて演算する。
【０１００】
例えばＩＦ＝ｓｉｎ（π×Ｆ／１０００）とすれば、燃焼度パラメータＦ＝１０００の時には、炎の強さＩＦ＝０になり、Ｆ＝５００の時にＩＦが最大になり、Ｆ＝０の時には、炎の強さＩＦ＝０に戻る。即ち、ノードが燃え始めて炎パーティクルが発生した時点では炎パーティクルの炎の強さは弱く、その後に徐々に強くなり、ノードが燃え尽きた時には、炎パーティクルの炎の強さが０になる。従って、炎パーティクルの炎の強さを、よりリアルに表現できるようになる。
【０１０１】
なお、本実施形態では、燃焼度パラメータＦに基づいて求められた炎パーティクルの炎の強さＩＦに基づいて、炎パーティクルの速度、加速度、寿命、光の強度などを求めるようにしている。
【０１０２】
さて、本実施形態では、時間経過に伴い順次発生、移動、消滅する炎パーティクルを用いることで、図２（Ａ）、（Ｂ）、図３（Ａ）、（Ｂ）に示すように、形状が不定形に変化する炎２０の表現に成功している。
【０１０３】
ここで、炎パーティクルは、球のような立体形状の物であってもよいし、平面形状の物であってもよい。或いは、線や点であってもよい。
【０１０４】
そして、平面形状の炎パーティクルを採用する場合には、図１０に示すように、視点ＶＰと炎パーティクルＦＰとを結ぶ線（或いは視線ベクトル）に対して、炎パーティクルＦＰの主面が略垂直になるように、ＦＰを配置することが望ましい。このように、いわゆる３Ｄスプライトにより炎パーティクルを表現すれば、視点ＶＰと炎パーティクルＦＰとの相対的な位置関係が変化した場合にも、視点ＶＰから見て炎パーティクルＦＰが常に最大の大きさで表示されるようになる。従って、炎パーティクルＦＰの数をそれほど増やすことなく、炎などの不定形な表示物を効率よく表現できるようになる。
【０１０５】
なお、図１０の３Ｄスプライトにおいて、炎の絵が描かれている領域のα値（透明度）は、０以外の値（０＜α≦１）に設定されており、その他の領域のα値は、０（透明）に設定されている。このようにすることで、四角形のポリゴンを用いながらも、しずく形の形をした炎パーティクルを表現できる。
【０１０６】
次に、炎パーティクルの具体的な制御手法について説明する。
【０１０７】
例えば図１１（Ａ）において、ロウソク１８に灯る炎２０は、発生位置４０から順次発生する炎パーティクルにより表現されている。これらの各炎パーティクルは、発生位置４０で発生した後に、上方向（Ｙ方向）に移動し、寿命が尽きると消滅する。このような炎パーティクルを発生位置４０から次々と発生することで、図１１（Ａ）に示すような炎２０を表現できる。
【０１０８】
そして、この場合に本実施形態では、炎パーティクルの移動状態（速度或いは加速度等）や寿命がランダムに変化する。従って、複数の炎パーティクルを同時タイミングで発生しても、これらの複数の炎パーティクルが占める範囲は、ある程度の広がり（面積）を持つようになり、ロウソク１８の炎２０をリアルに表現できるようになる。
【０１０９】
図１１（Ｂ）では、ロウソク１８が倒れて、炎が布２５に燃え移っている。この場合には、図６（Ｂ）のＢ１に示すように、炎が燃え移ったノードの中からランダムに選択されたノードの位置から、炎パーティクルが順次発生する。また、炎パーティクルの発生量もランダムに変化する。
【０１１０】
図１２（Ａ）、（Ｂ）では、Ｂ２、Ｂ３に示すように、炎が燃え移ったノードの範囲（燃え広がり範囲）が更に広がっており、布２５上の色々な場所から炎パーティクルが発生している。これにより、布２５上で炎が燃え広がって行く様子をリアルに表現できる。
【０１１１】
そして、図１３（Ａ）、（Ｂ）では、布２５の全体に燃え広がり範囲が広がっている。そして、この場合に本実施形態では、炎パーティクルの発生量、発生位置、移動状態、寿命がランダムに変化し、各炎パーティクルの位置もリアルタイムに変化する。従って、図１３（Ａ）、（Ｂ）に示すように、炎の全体形状が、あたかも現実世界の炎のようにゆらゆらと変化するようになり、非常にリアルな炎の画像を生成できるようになる。
【０１１２】
さて、本実施形態では、燃焼度パラメータＦに基づいて、そのノードの付近での画像（そのノードを定義点として含むプリミティブの画像）を変化させている。
【０１１３】
例えば図１４では、各ノードの色（Ｒ，Ｇ，Ｂ）は、燃焼度パラメータＦの関数になっている。即ち、燃焼度パラメータＦが小さいノードほど、その色が黒に近づくようになっている。従って、図１４のＧ１〜Ｇ４に示すノードの中では、Ｇ２に示すノードの色が最も黒くなる。
【０１１４】
そして、本実施形態では、燃焼度パラメータＦに基づいて求められた各ノードの色が、ポリゴン５０、５２の頂点色として設定されることになる。即ち、Ｇ１、Ｇ３、Ｇ４に示すノードの色が、ポリゴン５０の３つの頂点色として設定され、ポリゴン５０内の各ドットの色は、これらの３つの頂点色を補間することで求められる。同様に、Ｇ１、Ｇ２、Ｇ４に示すノードの色が、ポリゴン５２の３つの頂点色として設定され、ポリゴン５２内の各ドットの色は、これらの３つの頂点色を補間することで求められる。
【０１１５】
図１５（Ａ）、（Ｂ）、図１６（Ａ）、（Ｂ）、図１７（Ａ）、（Ｂ）に、本実施形態の手法により徐々に画像が変化する布オブジェクトの画像の例を示す。
【０１１６】
炎は、図１５（Ｂ）のＦ１に示す部分から徐々に燃え広がっている。従って、Ｆ１に示す部分の色が、元の色から徐々に黒くなる。
【０１１７】
そして図１６（Ａ）のＦ２に示す部分では、炎によりノードが燃え尽きて、それらのノードに連結される仮想バネが無効になると共に、それらのノードを含むポリゴンが徐々に非表示になってゆく。また、布全体が徐々に黒くなっている。
【０１１８】
図１６（Ｂ）のＦ３では、燃え尽きたノードの範囲が更に広がっている。そして、図１７（Ａ）、（Ｂ）では、Ｆ４、Ｆ５、Ｆ６に示す部分が燃えちぎれて、他の部分から切り離されている。また、布の色も更に黒くなる。
【０１１９】
このように、本実施形態によれば、あたかも布が本当に燃えているかのように見える画像を生成でき、プレーヤの仮想現実感を格段に高めることができる。
【０１２０】
３．本実施形態の処理
次に、本実施形態の処理の詳細例について、図１８、図１９、図２０、図２１、図２２のフローチャートを用いて説明する。
【０１２１】
まず、布オブジェクトの設定（構築）処理を行う（ステップＳ１）。具体的には図１９のフローチャートに示すように、まず、各ノードの燃焼度パラメータＦに初期値を設定する（ステップＳ１１）。
【０１２２】
ここで、Ｆ＝１０００は、ノードが燃えていないことを示し、０＜Ｆ＜１０００は、ノードが燃焼状態であることを示し、Ｆ＝０は、ノードが燃え尽きたことを示す。初期状態では、すべてのノードが燃えていないので、すべてのノードの燃焼度パラメータＦが１０００に設定される。
【０１２３】
次に、各ノードの燃焼度パラメータＦ以外の残りのアトリビュートデータ（図５参照）に対して、初期値を設定する（ステップＳ１２）。
【０１２４】
位置ｐi,j  ←定数（ｘi,j，ｙi,j，ｚi,j）
速度ｖi,j  ←定数（0.0，0.0，0.0）
加速度ａi,j←定数（0.0，0.0，0.0）
質量Ｍi,j  ←定数ｍi,j
なお、位置ｐi,j、速度ｖi,j、加速度ａi,jはベクトルである。
【０１２５】
次に、隣接したノードを格子状に連結するように、すべての仮想バネについて、その連結ノードのインデックスを設定する（ステップＳ１３）。
【０１２６】
次に、各仮想バネについて、残りのパラメータに定数を代入する（ステップＳ１４）。
【０１２７】
張力ＴS    ←定数ｔS
抗力ＤS    ←定数ｄS
静止距離ＲS←定数ｒS
以上のようにして、布オブジェクトの設定処理が終了する。
【０１２８】
次に、図１８に示すように、描画領域（フレームバッファ等）をクリアして、フレーム処理を開始する（ステップＳ２）。
【０１２９】
次に、燃焼度処理（燃え広がり判定）を行う（ステップＳ３）。
【０１３０】
より具体的には、図２０に示すように、ノードi,jの燃焼度パラメータＦi,jが、０＜Ｆi,j＜１０００であるか否かを判断する（ステップＳ２１）。そして、０＜Ｆi,j＜１０００である場合には、そのノードの隣接ノードを燃やすか否かを、ランダムに決定する（ステップＳ２２）。
【０１３１】
そして、燃やすと決定した場合には、図２３（Ａ）に示すように、ノードi,jと隣り合うノードk,lの中から、ランダムに選択した１つのノードを選択し、そのノードの燃焼度パラメータＦk,lから１を引く（ステップＳ２３）。これにより、そのノードの燃焼度が隣接ノードに伝達されるようになる。
【０１３２】
Ｆk,l←Ｆk,l−１
なお、ここで、k,lは、図２３（Ａ）に示すように、ｋ＝ｉ−１，ｉ，ｉ＋１、ｌ＝ｊ−１，ｊ，ｊ＋１となるすべてのｋ，ｊの組み合わせを意味する。
【０１３３】
以上のようにして、燃焼度処理が終了する。
【０１３４】
次に、図１８に示すように、下式にしたがって、すべてのノードに対して風、重力の力を加える処理を行う（ステップＳ４）。
【０１３５】
【数１】
0004729116.tif 000002
【０１３６】
次に、束縛力処理（束縛力判定）を行う（ステップＳ５）。
【０１３７】
より具体的には図２１のフローチャートに示すように、まず、仮想バネに連結している２つのノードＡ、Ｂの燃焼度パラメータＦA、ＦBのいずれかが０か否かを判断する（ステップＳ３１）。そして、ＦA、ＦBのいずれかが０である場合には、図４のＡ３で説明したように、その仮想バネを無効にする。一方、ＦA、ＦBが共に０でない場合には、連結している２つのノードＡ、Ｂに、下式に示すような仮想バネの力を加える（ステップＳ３２）。
【０１３８】
【数２】
0004729116.tif 000003
【０１３９】
以上のようにして、束縛力処理が終了する。
【０１４０】
次に、図１８に示すように、すべてのノードについて、加速度ａ（ベクトル）と速度ｖ（ベクトル）に基づいて、位置ｐ（ベクトル）を決定する（ステップＳ６）。
【０１４１】
ｖ←ｖ＋ａ
ｐ←ｐ＋ｖ
ａ←０
次に、燃焼度Ｆが０＜Ｆ＜１０００となるノードの中から、ランダムな個数のノードを選択して、図９で説明したように、そのノードの位置から炎パーティクルを発生する（ステップＳ７）。この時に、炎のパーティクルの炎の強さＩＦは、下式のようになる。
【０１４２】
【数３】
0004729116.tif 000004
【０１４３】
次に、布オブジェクトの描画処理を行う（ステップＳ８）。
【０１４４】
より具体的には、図２２に示すように、まず、隣接して四角形を形成する４つのノードi,j、i＋１,j、i＋１,j＋１、i,j＋１を選択する（ステップＳ４１）。
【０１４５】
次に、ポリゴンを描画するために、各ノードについて位置ｐと燃焼度パラメータＦを用いて、頂点位置、頂点色を決定する（ステップＳ４２）。
【０１４６】
【数４】
0004729116.tif 000005
【０１４７】
次に、ノードi,j、i＋１,j、i＋１,j＋１の中に、燃焼度パラメータＦ＝０となるノードが１つもない場合には、これらの３つのノードを頂点とする３角形ポリゴンを描画する（ステップＳ４３）。例えば図２３（Ｂ）において、ノードi,j、i＋１,j、i＋１,j＋１の中に、Ｆ＝０となるノードが１つも無かった場合には、ポリゴンＰＬ１が描画される。
【０１４８】
次に、ノードi,j、i＋１,j＋１、i,j＋１の中に、燃焼度パラメータＦ＝０となるノードが１つもない場合には、これらの３つのノードを頂点とする３角形ポリゴンを描画する（ステップＳ４４）。例えば図２３（Ｂ）において、ノードi,j、i＋１,j＋１、i,j＋１の中に、Ｆ＝０となるノードが１つも無かった場合には、ポリゴンＰＬ２が描画される。
【０１４９】
次に、今回の４つのノードi,j、i＋１,j、i＋１,j＋１、i,j＋１を用いて、ポリゴンが１つでも描画されたかを判断し（ステップＳ４５）、描画されている場合にはステップＳ４８に移行し、描画されていない場合にはステップＳ４６に移行する。即ち、図２３（Ｂ）のポリゴンＰＬ１、ＰＬ２のいずれかが描画されている場合にはステップＳ４８に移行し、いずれも描画されていない場合にはステップＳ４６に移行する。
【０１５０】
ステップＳ４６では、ノードi,j、i＋１,j、i,j＋１の中に、燃焼度パラメータＦ＝０となるノードが１つもない場合には、これらの３つのノードを頂点とする３角形ポリゴンを描画する。例えば図２３（Ｃ）において、ノードi,j、i＋１,j、i,j＋１の中に、Ｆ＝０となるノードが１つも無かった場合には、ポリゴンＰＬ３が描画される。
【０１５１】
次に、ノードi＋１,j、i＋１,j＋１、i,j＋１の中に、燃焼度パラメータＦ＝０となるノードが１つもない場合には、これらの３つのノードを頂点とする３角形ポリゴンを描画する（ステップＳ４７）。例えば図２３（Ｃ）において、ノードi＋１,j、i＋１,j＋１、i,j＋１の中に、Ｆ＝０となるノードが１つも無かった場合には、ポリゴンＰＬ４が描画される。
【０１５２】
以上の処理を、すべてのノードi,jについて終了するまで繰り返す（ステップＳ４８）。
【０１５３】
なお、ステップＳ４３〜Ｓ４７に示すような処理を行うのは、以下の理由による。
【０１５４】
即ち、図２３（Ｂ）において例えばノードi,jの燃焼度パラメータＦが０の場合（燃え尽きた場合）には、ステップＳ４３、Ｓ４４の処理によっては、ポリゴンＰＬ１、ＰＬ２は共に描画されない。
【０１５５】
しかしながら、このような場合にも、ステップＳ４７において、ポリゴンＰＬ４のみが描画（ＰＬ３は非描画）されるようになり、正しい結果を得ることができる。
【０１５６】
同様に、図２３（Ｂ）において例えばノードi＋１,j＋１の燃焼度パラメータＦが０の場合には、ステップＳ４３、Ｓ４４の処理によっては、ポリゴンＰＬ１、ＰＬ２は共に描画されない。
【０１５７】
しかしながら、このような場合にも、ステップＳ４６において、ポリゴンＰＬ３のみが描画（ＰＬ４は非描画）されるようになり、正しい結果を得ることができる。
【０１５８】
以上のようにして、布オブジェクトの描画処理が終了する。
【０１５９】
そして、最後に、図１８に示すように、描画された布オブジェクトを表示部に表示して、フレーム処理を終了する（ステップＳ９）。
【０１６０】
４．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図２４を用いて説明する。
【０１６１】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【０１６２】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１６３】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０１６４】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、所与の画像圧縮方式で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【０１６５】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０１６６】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０１６７】
ゲームコントローラ９４２からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０１６８】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０１６９】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０１７０】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０１７１】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０１７２】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他のゲームシステムとの間でのデータ転送が可能になる。
【０１７３】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実行してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実行してもよい。或いは、ハードウェアとプログラムの両方により実行してもよい。
【０１７４】
そして、本発明の各手段をハードウェアとプログラムの両方により実行する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実行するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各手段を実行することになる。
【０１７５】
図２５（Ａ）に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、レバー１１０２、ボタン１１０４等を操作してゲームを楽しむ。内蔵されるシステムボード（サーキットボード）１１０６には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報（プログラム或いはデータ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、この情報を格納情報と呼ぶ。
【０１７６】
図２５（Ｂ）に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２、１２０４を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９等に格納されている。
【０１７７】
図２５（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）を介して接続される端末１３０４-1〜１３０４-nとを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。端末１３０４-1〜１３０４-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-1〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-1〜１３０４-nに伝送し端末において出力することになる。
【０１７８】
なお、図２５（Ｃ）の構成の場合に、本発明の各手段を、ホスト装置（サーバー）と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置（サーバー）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０１７９】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能な携帯型情報記憶装置（メモリカード、携帯型ゲーム装置）を用いることが望ましい。
【０１８０】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１８１】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１８２】
また本実施形態では、布オブジェクトに本発明を適用した場合について主に説明したが、本発明が適用されるオブジェクトは布オブジェクトに限定されない。即ち、隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトであればよく、例えば、紙オブジェクト、鉄板オブジェクト、岩オブジェクトなどにも本発明は適用できる。
【０１８３】
また本実施形態では、ノードが燃え尽きることでノードが無効になる場合について説明したが、例えば、打撃などによる破壊でノードが無効になる場合にも本発明は適用できる。
【０１８４】
また、オブジェクトのデータ構造も、図５、図６で説明した構造が特に望ましいが、これに限定されるものではない。
【０１８５】
また、本実施形態ではノード状態パラメータが燃焼度パラメータである場合について説明したが、本発明のノード状態パラメータは、ノードの他の状態（温度、湿度、強度、発光度等）を表すパラメータであってもよい。
【０１８６】
また、パーティクルにより表現される表示物は炎に限定されず、例えば、爆発等、リアルタイムに形が変形する種々の表示物を表現できる。
【０１８７】
また、パーティクルは、図１０に示すような３Ｄスプライトで表現することが望ましいが、立体オブジェクト、線、点で表現してもよい。
【０１８８】
また本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０１８９】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステム（画像生成システム）に適用できる。
【符号の説明】
【０１９０】
１００  処理部
１０２  オブジェクト空間設定部
１０４  ノード状態処理部
１０６  束縛力処理部
１０８  ノード移動処理部
１１０  パーティクル処理部
１１２  描画処理部
１６０  操作部
１７０  記憶部
１７４  描画領域
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  携帯型情報記憶装置
１９６  通信部
【図１】
0004729116.tif 000006
【図２】
0004729116.tif 000007
【図３】
0004729116.tif 000008
【図４】
0004729116.tif 000009
【図５】
0004729116.tif 000010
【図６】
0004729116.tif 000011
【図７】
0004729116.tif 000012
【図８】
0004729116.tif 000013
【図９】
0004729116.tif 000014
【図１０】
0004729116.tif 000015
【図１１】
0004729116.tif 000016
【図１２】
0004729116.tif 000017
【図１３】
0004729116.tif 000018
【図１４】
0004729116.tif 000019
【図１５】
0004729116.tif 000020
【図１６】
0004729116.tif 000021
【図１７】
0004729116.tif 000022
【図１８】
0004729116.tif 000023
【図１９】
0004729116.tif 000024
【図２０】
0004729116.tif 000025
【図２１】
0004729116.tif 000026
【図２２】
0004729116.tif 000027
【図２３】
0004729116.tif 000028
【図２４】
0004729116.tif 000029
【図２５】
0004729116.tif 000030