説明

ゲームシステム及び情報記憶媒体

【課題】 物が炎により燃える様子などを表現する画像を、少ないデータ量と少ない処理負担で生成できるゲームシステム及び情報記憶媒体を提供すること。
【解決手段】 隣り合うノード同士が束縛力(仮想スプリング)により連結される複数のノードにより布オブジェクトが表されている。ノードが燃え尽きて無効ノードになった場合に、無効ノードとその隣接ノードとを連結する束縛力を無効にしたり、無効ノードを頂点として含むポリゴンの描画を省略する。無効ノードになったか否は、燃焼度(ノード状態)パラメータに基づき判断する。燃焼度パラメータに基づき、隣接ノードに燃焼状態を伝達するか否かを判断し、伝達する場合には、隣接ノードの燃焼度パラメータを変化させる。燃焼度パラメータに基づき、そのノードからパーティクルを発生するか否かを判断し、発生する場合には、燃焼度パラメータに基づきパーティクルの炎の強さを決める。燃焼度パラメータに基づき、そのノードを頂点とするポリゴンの画像を変化させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームシステム及び情報記憶媒体に関する。
【背景技術】
【0002】
従来より、仮想的な3次元空間であるオブジェクト空間内の所与の視点から見える画像を生成するゲームシステムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。ロールプレイングゲームを楽しむことができるゲームシステムを例にとれば、プレーヤは、キャラクタ(オブジェクト)を操作してオブジェクト空間内のマップ上で移動させ、敵キャラクタと対戦したり、他のキャラクタと対話したり、様々な町を訪れたりすることでゲームを楽しむ。
【0003】
さて、このようなゲームシステムでは、プレーヤの仮想現実感の向上のために、よりリアルな画像を生成することが重要な技術的課題になっている。従って、炎により物が燃える様子についても、リアルな画像で表現できることが望まれる。即ち、炎により布が燃える場合を例にとれば、着火した炎が次第に燃え広がり、布が燃えちぎれて無くなって行く様子などを表現できることが望まれる。
【0004】
そして、このような布の燃えちぎれ表現を実現する手法として、例えば以下の第1、第2の手法が考えられる。
【0005】
第1の手法では、燃えちぎれる前の布を表す布オブジェクトOB1と燃えちぎれた後の布を表す布オブジェクトOB1-1、OB1-2を予め用意しておく。そして、布が燃えちぎれたと判断した場合に、使用する布オブジェクトをOB1からOB1-1、OB1-2に切り替える。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平9−223247号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、この第1の手法では、生成される画像が画一的になってしまい、今一つリアルで多様な画像を生成できないという問題がある。そして、この問題を解決するために、様々なちぎれ方を表現するための多数のオブジェクトを用意しておく手法も考えることができるが、これは、オブジェクトデータの使用記憶容量の増加の問題を招く。
【0008】
また第2の手法では、布が燃えちぎれたと判断した場合に、布オブジェクトOB1をリアルタイムに分割し、燃えちぎれた後の布を表す布オブジェクトOB1-1、OB1- 2をリアルタイムに生成する。
【0009】
しかしながら、この第2の手法では、布が燃えちぎれる毎に、布オブジェクトのデータ構造が変化してしまい、データの管理が煩雑化する。また、布が燃えちぎれる毎に、データ量が増加してしまい。メモリの使用データ量が増加してしまうという問題も招く。
【0010】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、物が炎により燃える様子などを表すリアルな画像を、少ないデータ量と少ない処理負担で生成できるゲームシステム及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【0011】
本発明は、画像生成を行うゲームシステムであって、
隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトを、オブジェクト空間内に設定する手段と、
ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードの色を決定する手段と、
オブジェクト空間内の所与の視点での画像を生成する手段と、
を含むことを特徴とする。
【0012】
また、本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各手段としてコンピュータを機能させるためのプログラムを記憶した情報記憶媒体に関係する。
【図面の簡単な説明】
【0013】
【図1】本実施形態のゲームシステムのブロック図の例である。
【図2】図2(A)、(B)は、本実施形態により生成されるゲーム画像の例である。
【図3】図3(A)、(B)も、本実施形態により生成されるゲーム画像の例である。
【図4】燃え尽きたノードの束縛力を無効にすると共に、そのノードを頂点とするポリゴンを非表示にする手法について説明するための図である。
【図5】ノードのデータ構造の例を示す図である。
【図6】仮想バネのデータ構造の例を示す図である。
【図7】図7(A)、(B)は、燃焼度(ノード状態)パラメータを利用して布の燃えちぎれ表現を実現する手法について説明するための図である。
【図8】図8(A)、(B)も、燃焼度パラメータを利用して布の燃えちぎれ表現を実現する手法について説明するための図である。
【図9】燃焼度パラメータに基づいてパーティクルを発生する手法について説明するための図である。
【図10】パーティクルを3Dスプライトで表現する手法について説明するための図である。
【図11】図11(A)、(B)は、炎パーティクルについて説明するための図である。
【図12】図12(A)、(B)も、炎パーティクルについて説明するための図である。
【図13】図13(A)、(B)も、炎パーティクルについて説明するための図である。
【図14】燃焼度パラメータに基づいてノード付近の画像を変化させる手法について説明するための図である。
【図15】図15(A)、(B)は、本実施形態の手法により徐々に画像が変化する布オブジェクトの画像の例である。
【図16】図16(A)、(B)も、本実施形態の手法により徐々に画像が変化する布オブジェクトのワイヤーフレーム画像の例である。
【図17】図17(A)、(B)も、本実施形態の手法により徐々に画像が変化する布オブジェクトのワイヤーフレーム画像の例である。
【図18】本実施形態の詳細な処理例について示すフローチャートである。
【図19】本実施形態の詳細な処理例について示すフローチャートである。
【図20】本実施形態の詳細な処理例について示すフローチャートである。
【図21】本実施形態の詳細な処理例について示すフローチャートである。
【図22】本実施形態の詳細な処理例について示すフローチャートである。
【図23】図23(A)、(B)、(C)は、本実施形態の詳細な処理例について説明するための図である。
【図24】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図25】図25(A)、(B)、(C)は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【発明を実施するための形態】
【0014】
上記課題を解決するために、本実施形態は、画像生成を行うゲームシステムであって、隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトを、オブジェクト空間内に設定する手段と、前記複数のノードの中のあるノードが無効ノードになったと判断した場合に、該無効ノードと該無効ノードの隣接ノードとを連結する束縛力を無効にする手段と、オブジェクト空間内の所与の視点での画像を生成する手段とを含むことを特徴とする。また本実施形態に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本実施形態に係るプログラムは、コンピュータにより使用可能なプログラム(搬送波に具現化されるプログラムを含む)であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【0015】
本実施形態によれば、あるノードが無効ノードになったと判断されると、無効ノードとその隣接ノードとを連結する束縛力が無効になる。従って、無効ノードが、その周りの隣接ノードから切り離されるようになり、オブジェクトに穴が空いたり、オブジェクトがちぎれるなどの画像表現が可能になる。
【0016】
特に、各ノードが位置、速度、加速度などのアトリビュートデータを有する場合には、オブジェクトのちぎれた部分を物理計算に基づいて落下させたりすることなどが可能になり、よりリアルな画像を生成できるようになる。
【0017】
また本実施形態は、画像生成を行うゲームシステムであって、隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトを、オブジェクト空間内に設定する手段と、前記複数のノードの中のあるノードが無効ノードになったと判断した場合に、オブジェクトを構成するプリミティブのうち、該無効ノードを定義点として含むプリミティブの描画を省略する手段と、オブジェクト空間内の所与の視点での画像を生成する手段とを含むことを特徴とする。また本実施形態に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本実施形態に係るプログラムは、コンピュータにより使用可能なプログラム(搬送波に具現化されるプログラムを含む)であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【0018】
本実施形態によれば、あるノードが無効ノードになったと判断されると、その無効ノードを定義点(頂点、制御点)として含むプリミティブの描画が省略される。従って、無効ノード付近の画像が表示されないようになり、オブジェクトに穴が空いたり、オブジェクトがちぎれるなどの画像表現が可能になる。
【0019】
なお、無効ノードを定義点として含むプリミティブの描画を省略する際には、無効ノードと無効ノードの隣接ノードとを連結する束縛力も無効にすることが望ましい。
【0020】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードが無効ノードになったか否かが判断されることを特徴とする。
【0021】
このようにすれば、例えば、ノード状態パラメータが変化したり、ノード状態パラメータが所与の値に達したことを条件に、ノードが無効になったと判断できるようになり、処理の簡素化を図れる。
【0022】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードの隣接ノードに対して該ノードのノード状態を伝達する手段(或いは該手段を実行するためのプログラム又は処理ルーチン)を含むことを特徴とする。
【0023】
また本実施形態は、画像生成を行うゲームシステムであって、隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトを、オブジェクト空間内に設定する手段と、ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードの隣接ノードに対して該ノードのノード状態を伝達する手段と、オブジェクト空間内の所与の視点での画像を生成する手段とを含むことを特徴とする。また本実施形態に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本実施形態に係るプログラムは、コンピュータにより使用可能なプログラム(搬送波に具現化されるプログラムを含む)であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【0024】
本実施形態によれば、ノード状態パラメータを利用して、あるノードのノード状態を隣接ノードに伝達することが可能になる。従って、あるノードのノード状態が、そのノードから周りのノードに徐々に伝達して行く様子を表現できるようになり、例えば炎の燃え移り表現などに最適な画像表現が可能になる。
【0025】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードの隣接ノードに対して該ノードのノード状態を伝達するか否かを判断し、ノード状態を伝達すると判断した場合には、ノード状態が伝達された隣接ノードのノード状態パラメータを変化させることを特徴とする。
【0026】
このようにすれば、そのノードのノード状態パラメータが変化したり、ノード状態パラメータが所与の値に達したことを条件に、そのノードの隣接ノードのノード状態パラメータを変化させることが可能になる。これにより、あるノードを出発点として、その周りのノードのノード状態が次々と変化する様子を表現できるようになる。
【0027】
また本実施形態は、画像生成を行うゲームシステムであって、隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトを、オブジェクト空間内に設定する手段と、ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードからパーティクルを発生する手段と、オブジェクト空間内の所与の視点での画像を生成する手段とを含むことを特徴とする。また本実施形態に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本実施形態に係るプログラムは、コンピュータにより使用可能なプログラム(搬送波に具現化されるプログラムを含む)であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【0028】
本実施形態によれば、ノード状態パラメータを利用して、そのノードからパーティクルを発生させることが可能になる。従って、ノード状態に応じたパーティクルをそのノードから発生させることが可能になり、よりリアルなパーティクル表現を実現できる。
【0029】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードからパーティクルを発生するか否かを判断し、パーティクルを発生すると判断した場合には、該ノードのノード状態パラメータに基づいてパーティクルのアトリビュートデータを決めることを特徴とする。
【0030】
このようにすれば、そのノードのノード状態パラメータが変化したり、ノード状態パラメータが所与の値に達したことを条件に、ノード状態パラメータの値に応じたアトリビュートデータを有するパーティクルを、そのノードから発生させることが可能になる。従って、例えば、ノード状態パラメータに基づいて隣接ノードにノード状態を伝達する発明と組み合わせれば、パーティクルを発生するノードの領域が徐々に広がって行く様子などを表現でき、炎の燃え広がり表現などに最適な画像を生成できるようになる。
【0031】
また本実施形態は、画像生成を行うゲームシステムであって、隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトを、オブジェクト空間内に設定する手段と、ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードの付近でのオブジェクトの画像を変化させる手段と、オブジェクト空間内の所与の視点での画像を生成する手段とを含むことを特徴とする。また本実施形態に係る情報記憶媒体は、コンピュータにより使用可能な情報記憶媒体であって、上記手段を実行するためのプログラムを含むことを特徴とする。また本実施形態に係るプログラムは、コンピュータにより使用可能なプログラム(搬送波に具現化されるプログラムを含む)であって、上記手段を実行するための処理ルーチンを含むことを特徴とする。
【0032】
本実施形態によれば、ノード状態パラメータを利用して、ノード付近でのオブジェクトの画像を変化させることが可能になる。従って、ノード状態に応じて、そのノード付近でのオブジェクトの色等の画像を局所的に変化させることが可能になり、よりリアルな画像表現を実現できる。
【0033】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、オブジェクトを構成するプリミティブのうち、該ノードを定義点として含むプリミティブの画像を変化させることを特徴とする。
【0034】
このようにすれば、プリミティブの定義点に与える画像データを変化させて、その画像データに基づいて、プリミティブ単位で画像を変化させることが可能になる。
【0035】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、前記ノード状態パラメータが、各ノードの燃焼度を表すパラメータであることを特徴とする。
【0036】
このような燃焼度パラメータを用いれば、ノードが燃え尽きたか否かの判断や、ノードの燃焼状態を他のノードに伝達するか否かの判断や、ノードから炎パーティクルを発生する否かの判断などを、簡素な処理で実現できるようになる。
【0037】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、前記ノード状態パラメータが初期値である第1の値から変化した場合に、該ノードの状態変化が開始したと判断され、前記ノード状態パラメータが第2の値になった場合に、該ノードの状態変化が終了したと判断されることを特徴とする。
【0038】
このようにすれば、例えば、ノード状態パラメータが第1の値から変化した場合に、ノード状態の変化が開始したと判断し、ノード状態パラメータが第1〜第2の値の間にある場合には、ノード状態の変化が進行中であると判断し、ノード状態パラメータが第2の値になった場合には、ノード状態の変化が終了し、例えばノードが無効になったと判断できるようになる。
【0039】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、各ノードがアトリビュートデータとして、各ノードの位置、速度、加速度を有することを特徴とする。
【0040】
このような位置、速度、加速度などのアトリビュートデータを各ノードに持たせれば、各ノードを物理シミュレーションにより移動させることが可能になり、よりリアルな画像表現が可能になる。
【0041】
また本実施形態に係るゲームシステム、情報記憶媒体及びプログラムは、前記複数のノードが格子状に配列されるノードであることを特徴とする。
【0042】
このようにすれば、布オブジェクトや紙オブジェクトなどの板状オブジェクトの状態変化表現やちぎれ表現を、リアルに実現できるようになる。
【0043】
以下、本発明の好適な実施形態について図面を用いて説明する。
【0044】
1.構成
図1に、本実施形態のゲームシステム(画像生成システム)のブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部100を含めばよく(或いは処理部100と記憶部170を含めばよく)、それ以外のブロックについては任意の構成要素とすることができる。
【0045】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、マイク、或いは筺体などのハードウェアにより実現できる。
【0046】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAMなどのハードウェアにより実現できる。
【0047】
情報記憶媒体(コンピュータにより使用可能な記憶媒体)180は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。処理部100は、この情報記憶媒体180に格納される情報に基づいて本発明(本実施形態)の種々の処理を行う。即ち情報記憶媒体180には、本発明(本実施形態)の手段(特に処理部100に含まれるブロック)を実行するための情報(プログラム或いはデータ)が格納される。
【0048】
なお、情報記憶媒体180に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部170に転送されることになる。また情報記憶媒体180には、本発明の処理を行うためのプログラム、画像データ、音データ、表示物の形状データ、本発明の処理を指示するための情報、或いはその指示に従って処理を行うための情報などを含ませることができる。
【0049】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
【0050】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【0051】
携帯型情報記憶装置194は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【0052】
通信部196は、外部(例えばホスト装置や他のゲームシステム)との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0053】
なお本発明(本実施形態)の手段を実行するためのプログラム或いはデータは、ホスト装置(サーバー)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180に配信するようにしてもよい。このようなホスト装置(サーバー)の情報記憶媒体の使用も本発明の範囲内に含まれる。
【0054】
処理部100(プロセッサ)は、操作部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この処理部100の機能は、各種プロセッサ(CPU、DSP等)又はASIC(ゲートアレイ等)などのハードウェアや、所与のプログラム(ゲームプログラム)により実現できる。
【0055】
ここで、処理部100が行うゲーム処理としては、コイン(代価)の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト(1又は複数のプリミティブ面)の位置や回転角度(X、Y又はZ軸回り回転角度)を求める処理、オブジェクトを動作させる処理(モーション処理)、視点の位置(仮想カメラの位置)や視線角度(仮想カメラの回転角度)を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果(成果、成績)を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などを考えることができる。
【0056】
また、処理部100は、上記のゲーム処理結果に基づいて例えばオブジェクト空間内において所与の視点(で仮想カメラ)から見える画像を生成し、表示部190に出力する。
【0057】
更に、処理部100は、上記のゲーム処理結果に基づいて各種の音処理を行い、BGM、効果音、又は音声などの音を生成し、音出力部192に出力する。
【0058】
なお、処理部100の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0059】
処理部100は、オブジェクト空間設定部102、ノード状態処理部104、束縛力処理部106、ノード移動処理部108、パーティクル処理部110、描画処理部112を含む。
【0060】
ここで、オブジェクト空間設定部102は、ゲームキャラクタ、マップなどの各種オブジェクト(モデル)をオブジェクト空間内に設定するための処理を行う。より具体的には、オブジェクトのワールド座標系での位置や回転角度(方向)を決定し、その位置にその回転角度でオブジェクトを配置する。
【0061】
そして、本実施形態では、布などの表示物を表すためのオブジェクトとして、隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトが、オブジェクト空間内に設定されることになる。
【0062】
ノード状態処理部104は、ノードがアトリビュートデータとして有するノード状態パラメータ(燃焼度パラメータ)に基づいて、ノード状態(燃焼度等)の判定処理や、隣接ノードへのノード状態の伝達処理などを行う。より具体的には、ノード状態パラメータに基づいて、隣接ノードにノード状態(燃焼状態)を伝達するか否か(炎を燃え移らせるか否か)を判断し、ノード状態を伝達すると判断した場合には、ノード状態が伝達された隣接ノードのノード状態パラメータを変化させる処理(燃焼状態にする処理)を行う。
【0063】
なお、ノード状態パラメータは、その時のノードの状態(燃焼度、温度、湿度、強度、発光度等)を量的或いは質的に表すための変数であり、ノード状態に関連する処理において各種の判断の材料に使用されるものである。
【0064】
また、ノードに与えるアトリビュートデータとしては、ノード状態パラメータの他に、各ノードの位置、速度又は加速度などを考えることができる。
【0065】
束縛力処理部106は、ノード状態パラメータに基づいて、ノードが無効か否か(燃え尽きたか否か)を判断し、無効ノードと判断した場合には、無効ノードとその隣接ノードとを連結する束縛力(仮想バネ)を無効にする処理を行う。一方、ノードが無効でないと判断した場合には、ノード間に働かせるべき束縛力を演算する。
【0066】
ノード移動処理部108は、各フレームでのノードの加速度、速度、位置を演算する。この場合、ノードの加速度は、ノードに働く束縛力や、重力や風の力などの物理パラメータに基づいて演算される。
【0067】
パーティクル処理部110は、その形状が変形する不定形な表示物(例えば炎、煙、水、爆発)を表現するためのパーティクル(例えば炎パーティクル、煙パーティクル)を、時間経過に伴い順次発生させたり、移動させたり、消滅させたりする処理を行う。より具体的には、パーティクルの発生量、発生位置、移動状態(速度、加速度等)又は寿命をランダムに変化させる処理を行う。これにより、炎などの不定形な表示物もリアルに表現できるようになる。
【0068】
そして、本実施形態では、パーティクル処理部110は、ノード状態パラメータに基づいてノードからパーティクルを発生する処理を行う。より具体的には、ノード状態パラメータに基づいて、そのノードからパーティクルを発生するか否かを判断する。そして、パーティクルを発生すると判断した場合には、そのノードのノード状態パラメータに基づいてパーティクルのアトリビュートデータ(炎の強さ、光の強度、発生量、速度、加速度、或いは寿命等)を決める。例えば、ノードの燃焼度が高い場合には、強い炎のパーティクルを発生するようにする。
【0069】
描画処理部112は、テクスチャマッピングや色(輝度)補間処理や陰面消去などを行いながら、ジオメトリ処理後のオブジェクト(プリミティブ面)を描画領域174(例えばフレームバッファ)に描画するための処理を行う。これにより、オブジェクトが配置されるオブジェクト空間内の所与の視点(仮想カメラ)での画像が生成されるようになる。
【0070】
そして本実施形態では、複数のノードの中のあるノードが、ノード状態パラメータなどに基づいて無効であると判断した場合には、その無効ノードを定義点(オブジェクトの形状を定義するための点であり、ポリゴンの頂点或いは自由曲面の制御点などがある)として含むプリミティブ(ポリゴン、自由曲面等)の描画が省略されるようになる。より具体的には、ノードを定義点とするプリミティブを描画することで、複数のノードにより形状が特定されるオブジェクト(例えば布)の画像が生成されるようになる。そして、例えばプリミティブがポリゴンである場合には、そのポリゴンの頂点の中に無効ノードがある場合には、そのポリゴンの描画は省略されるようになる。
【0071】
更に本実施形態では、前述したノード状態パラメータに基づいて、そのノードの付近でのオブジェクトの画像(色、輝度等のプロパティ)を変化させている。より具体的には、ノード状態パラメータに基づいて、オブジェクトを構成するプリミティブのうち、そのノードを定義点として含むプリミティブの画像を変化させる。例えば、ノード状態パラメータに基づいてノードが燃焼状態であると判断された場合には、そのノードの付近での布(オブジェクト)の色を、元の色から変化させて徐々に黒くする。
【0072】
なお、本実施形態のゲームシステムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0073】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末を用いて生成してもよい。
【0074】
2.本実施形態の特徴
2.1 布の燃えちぎれ表現
図2(A)、(B)、図3(A)、(B)に本実施形態により生成されるゲーム画像の例を示す。
【0075】
図2(A)では、ロウソク18に炎20が灯っている。この炎20は、ロウソク18の先端から発生する複数の炎パーティクルにより表現されている。そして、炎20の周囲の小熊22、机24、布25、絨毯29などのオブジェクトは、この炎20からの光(具体的には、炎パーティクルの代表位置に設定された代表光源からの光)により、陰影づけされる。また、この光により小熊22の影30なども生成される。
【0076】
図2(B)では、ロウソク18が倒れて、炎20が机24上の布25に燃え移っている。そして、図3(A)では、燃え移った炎20が更に燃え広がっており、布が布片26、28に燃えちぎれている。また、布片26、28の色も徐々に黒くなっている。また図3(B)では、布が布片26、27、28に燃えちぎれており、その色も更に黒くなっている。また、燃えちぎれた布片26、28は、重力(或いは風)により下に落ち始めている。
【0077】
このように本実施形態では、布に燃え移った炎が徐々に燃え広がり、布が燃えちぎれて無くなって行く様子をリアルに表現している。そして、このような布の燃えちぎれ表現を実現するために、本実施形態では、以下に説明するような手法を採用している。
【0078】
即ち、本実施形態では図4のA1に示すように、隣り合うノード同士が仮想バネ(広義には束縛力)により連結され、格子状に配置された複数のノードを用いて、布オブジェクトを表現している。そして、図4のA2に示すように、布オブジェクトの画像は、これらのノードを頂点(広義には定義点)として含むポリゴン(広義にはプリミティブ面)を描画することで生成される。
【0079】
そして本実施形態では、炎が布に燃え移り、図4のA3に示すように、あるノードが燃え尽きたと判断した場合(無効ノードになったと判断した場合)には、その燃え尽きたノードとその隣接ノードとを連結していた仮想バネ(広義には束縛力)を無効にする。また、図4のA4に示すように、燃え尽きたノードを頂点として含むポリゴンを非表示(描画省略)にする。
【0080】
このようにすることで、本実施形態では、布が徐々に燃えて行き、布が燃えちぎれる様子をリアルに表現できる。即ち、図4のA4に示すような布の非表示領域が徐々に広がって行くことで、布が燃えて行く様子がリアルに表現される。また、図4のA5に示す部分がA6に示す部分から切り離されて、重力(或いは風)などにより落下することで、布が燃えちぎれる様子がリアルに表現される。
【0081】
また本実施形態には、布オブジェクトのデータ構造を変化させることなく、布の燃えちぎれ表現を実現できるという利点がある。
【0082】
例えば図5、図6に、本実施形態で使用される布オブジェクトのデータ構造を示す。図5は、ノードについてのデータ構造の例であり、図6は、ノードを連結する仮想バネ(束縛力)についてのデータ構造である。
【0083】
図5に示すように、各ノードは、そのアトリビュートデータとして、ノードの位置p、速度v、加速度a、質量M、燃焼度パラメータF(広義にはノード状態パラメータ)を有する。これらのアトリビュートデータは、そのノードのインデックスi,jを指定することで読み出すことができる。
【0084】
また図6に示すように、各仮想バネは、そのアトリビュートデータとして、ノード間に働かせる張力Tや抗力D、静止距離R(張力が0になる距離)、仮想バネの一端に接続されるノードAのインデックスi,jや他端に接続されるノードBのインデックスi,jを有する。これらのアトリビュートデータは、その仮想バネのインデックスKを指定することで読み出すことができる。
【0085】
例えば、布の燃えちぎれ表現を実現する手法として第1、第2の手法を考えることができる。
【0086】
第1の手法では、布が燃えちぎれたと判断した場合に、燃えちぎれる前の布を表す布オブジェクトOB1を、燃えちぎれた後の布を表す布オブジェクトOB1-1、OB1-2に切り替えることで、布の燃えちぎれ表現を実現する。
【0087】
しかしながら、この第1の手法には、生成される画像が画一的になってしまったり、オブジェクトデータの使用記憶容量が増加してしまうなどの問題がある。
【0088】
また第2の手法では、布が燃えちぎれたと判断した場合に、布オブジェクトOB1をリアルタイムに分割し、燃えちぎれた後の布を表す布オブジェクトOB1-1、OB1-2をリアルタイムに生成する。
【0089】
しかしながら、この第2の手法では、布オブジェクトのデータ構造が変化してしまうため処理が煩雑化したり、布が燃えちぎれる毎にデータ量が増加してしまうためメモリの使用データ量が増えてしまうなどの問題がある。
【0090】
本実施形態によれば、図5、図6から明らかなように、布が燃えたり、燃えちぎれても、布オブジェクトのデータ構造やデータ量は変化しない。従って、布が燃えちぎれる様子を表すリアルな画像を、少ないデータ量と少ない処理負担で生成できるようになる。
【0091】
2.2 燃焼度(ノード状態)パラメータ
さて、本実施形態では図5に示すように、各ノードのアトリビュートデータの中に燃焼度(ノード状態)パラメータFを含ませている。本実施形態では、この燃焼度パラメータFを有効利用することで、炎の燃え広がりや、布の燃えちぎれ表現を簡素な処理で実現することに成功している。
【0092】
例えば図7(A)に示すように、初期状態においては、燃焼度パラメータFは、すべてのノードにおいて1000(第1の値)に設定されている。そして、このF=1000は、ノードが燃えていないことを示す。
【0093】
そして、何らかの原因でノードに炎が燃え移ると、図7(B)のC1に示すように、そのノードの燃焼度パラメータFの値が1だけ減って、999に変化する。そして、このようにノードの燃焼度パラメータFが1000よりも小さくなると、そのノードから隣接ノードに燃焼状態(ノード状態)が伝達する。
【0094】
即ち、隣接ノード(自ノードも含む)の中からランダムに選択されたノードに対して炎が燃え移る。例えば図8(A)では、D1に示すノードからD2に示すノードに火が燃え移っており、炎が燃え移ったD2に示すノードの燃焼度パラメータFの値も1だけ減って、999に変化する。
【0095】
そして、今度は、図8(A)のD1に示すノードのみならず、D2に示すノードからも、隣接ノードに炎が燃え移るようになる。また、D1に示すノードの燃焼度パラメータFの値は更に1だけ減って、998に変化する。
【0096】
一度、炎が燃え移ると、そのノードの燃焼度パラメータは、1又は複数のフレーム毎に1ずつ減少し続ける。図8(B)のD3に示すノードでは、燃焼度パラメータF=0になっており、そのノードは燃え尽きた(無効になった)と判断される。すると、そのノードとその隣接ノードとを連結する仮想バネも無効になる。
【0097】
このように、ノードにアトリビュートデータとして燃焼度パラメータFを持たせれば、ノードが燃焼状態か否かの判定や、隣接ノードに炎を燃え移らせる処理や、ノードが燃え尽きたか否かの判定や、燃え尽きたノードの仮想バネを無効にする処理などを、1つの燃焼度パラメータFを用いて一元的に処理できるようになる。従って、処理の簡素化、処理負担の軽減化を図れる。
【0098】
本実施形態では、この燃焼度パラメータFを、炎のパーティクルの発生にも有効利用している。即ち、各ノードの燃焼度パラメータFに基づいて、そのノードから炎パーティクルを発生するか否かを判断する。そして、発生すると判断した場合には、燃焼度パラメータFに基づいて炎パーティクルのアトリビュートデータ(炎の強さ等)を決定している。
【0099】
より具体的には、本実施形態では、図9のE1、E2に示すように、燃焼度パラメータFが1000よりも小さくなっているノード(燃焼しているノード)の中から、ランダムな個数のノードを選択する。そして、その選択されたノードから炎パーティクルを発生する。この際に、発生する炎パーティクルの炎の強さIFを、燃焼度パラメータFに基づいて演算する。
【0100】
例えばIF=sin(π×F/1000)とすれば、燃焼度パラメータF=1000の時には、炎の強さIF=0になり、F=500の時にIFが最大になり、F=0の時には、炎の強さIF=0に戻る。即ち、ノードが燃え始めて炎パーティクルが発生した時点では炎パーティクルの炎の強さは弱く、その後に徐々に強くなり、ノードが燃え尽きた時には、炎パーティクルの炎の強さが0になる。従って、炎パーティクルの炎の強さを、よりリアルに表現できるようになる。
【0101】
なお、本実施形態では、燃焼度パラメータFに基づいて求められた炎パーティクルの炎の強さIFに基づいて、炎パーティクルの速度、加速度、寿命、光の強度などを求めるようにしている。
【0102】
さて、本実施形態では、時間経過に伴い順次発生、移動、消滅する炎パーティクルを用いることで、図2(A)、(B)、図3(A)、(B)に示すように、形状が不定形に変化する炎20の表現に成功している。
【0103】
ここで、炎パーティクルは、球のような立体形状の物であってもよいし、平面形状の物であってもよい。或いは、線や点であってもよい。
【0104】
そして、平面形状の炎パーティクルを採用する場合には、図10に示すように、視点VPと炎パーティクルFPとを結ぶ線(或いは視線ベクトル)に対して、炎パーティクルFPの主面が略垂直になるように、FPを配置することが望ましい。このように、いわゆる3Dスプライトにより炎パーティクルを表現すれば、視点VPと炎パーティクルFPとの相対的な位置関係が変化した場合にも、視点VPから見て炎パーティクルFPが常に最大の大きさで表示されるようになる。従って、炎パーティクルFPの数をそれほど増やすことなく、炎などの不定形な表示物を効率よく表現できるようになる。
【0105】
なお、図10の3Dスプライトにおいて、炎の絵が描かれている領域のα値(透明度)は、0以外の値(0<α≦1)に設定されており、その他の領域のα値は、0(透明)に設定されている。このようにすることで、四角形のポリゴンを用いながらも、しずく形の形をした炎パーティクルを表現できる。
【0106】
次に、炎パーティクルの具体的な制御手法について説明する。
【0107】
例えば図11(A)において、ロウソク18に灯る炎20は、発生位置40から順次発生する炎パーティクルにより表現されている。これらの各炎パーティクルは、発生位置40で発生した後に、上方向(Y方向)に移動し、寿命が尽きると消滅する。このような炎パーティクルを発生位置40から次々と発生することで、図11(A)に示すような炎20を表現できる。
【0108】
そして、この場合に本実施形態では、炎パーティクルの移動状態(速度或いは加速度等)や寿命がランダムに変化する。従って、複数の炎パーティクルを同時タイミングで発生しても、これらの複数の炎パーティクルが占める範囲は、ある程度の広がり(面積)を持つようになり、ロウソク18の炎20をリアルに表現できるようになる。
【0109】
図11(B)では、ロウソク18が倒れて、炎が布25に燃え移っている。この場合には、図6(B)のB1に示すように、炎が燃え移ったノードの中からランダムに選択されたノードの位置から、炎パーティクルが順次発生する。また、炎パーティクルの発生量もランダムに変化する。
【0110】
図12(A)、(B)では、B2、B3に示すように、炎が燃え移ったノードの範囲(燃え広がり範囲)が更に広がっており、布25上の色々な場所から炎パーティクルが発生している。これにより、布25上で炎が燃え広がって行く様子をリアルに表現できる。
【0111】
そして、図13(A)、(B)では、布25の全体に燃え広がり範囲が広がっている。そして、この場合に本実施形態では、炎パーティクルの発生量、発生位置、移動状態、寿命がランダムに変化し、各炎パーティクルの位置もリアルタイムに変化する。従って、図13(A)、(B)に示すように、炎の全体形状が、あたかも現実世界の炎のようにゆらゆらと変化するようになり、非常にリアルな炎の画像を生成できるようになる。
【0112】
さて、本実施形態では、燃焼度パラメータFに基づいて、そのノードの付近での画像(そのノードを定義点として含むプリミティブの画像)を変化させている。
【0113】
例えば図14では、各ノードの色(R,G,B)は、燃焼度パラメータFの関数になっている。即ち、燃焼度パラメータFが小さいノードほど、その色が黒に近づくようになっている。従って、図14のG1〜G4に示すノードの中では、G2に示すノードの色が最も黒くなる。
【0114】
そして、本実施形態では、燃焼度パラメータFに基づいて求められた各ノードの色が、ポリゴン50、52の頂点色として設定されることになる。即ち、G1、G3、G4に示すノードの色が、ポリゴン50の3つの頂点色として設定され、ポリゴン50内の各ドットの色は、これらの3つの頂点色を補間することで求められる。同様に、G1、G2、G4に示すノードの色が、ポリゴン52の3つの頂点色として設定され、ポリゴン52内の各ドットの色は、これらの3つの頂点色を補間することで求められる。
【0115】
図15(A)、(B)、図16(A)、(B)、図17(A)、(B)に、本実施形態の手法により徐々に画像が変化する布オブジェクトの画像の例を示す。
【0116】
炎は、図15(B)のF1に示す部分から徐々に燃え広がっている。従って、F1に示す部分の色が、元の色から徐々に黒くなる。
【0117】
そして図16(A)のF2に示す部分では、炎によりノードが燃え尽きて、それらのノードに連結される仮想バネが無効になると共に、それらのノードを含むポリゴンが徐々に非表示になってゆく。また、布全体が徐々に黒くなっている。
【0118】
図16(B)のF3では、燃え尽きたノードの範囲が更に広がっている。そして、図17(A)、(B)では、F4、F5、F6に示す部分が燃えちぎれて、他の部分から切り離されている。また、布の色も更に黒くなる。
【0119】
このように、本実施形態によれば、あたかも布が本当に燃えているかのように見える画像を生成でき、プレーヤの仮想現実感を格段に高めることができる。
【0120】
3.本実施形態の処理
次に、本実施形態の処理の詳細例について、図18、図19、図20、図21、図22のフローチャートを用いて説明する。
【0121】
まず、布オブジェクトの設定(構築)処理を行う(ステップS1)。具体的には図19のフローチャートに示すように、まず、各ノードの燃焼度パラメータFに初期値を設定する(ステップS11)。
【0122】
ここで、F=1000は、ノードが燃えていないことを示し、0<F<1000は、ノードが燃焼状態であることを示し、F=0は、ノードが燃え尽きたことを示す。初期状態では、すべてのノードが燃えていないので、すべてのノードの燃焼度パラメータFが1000に設定される。
【0123】
次に、各ノードの燃焼度パラメータF以外の残りのアトリビュートデータ(図5参照)に対して、初期値を設定する(ステップS12)。
【0124】
位置pi,j ←定数(xi,j,yi,j,zi,j
速度vi,j ←定数(0.0,0.0,0.0)
加速度ai,j←定数(0.0,0.0,0.0)
質量Mi,j ←定数mi,j
なお、位置pi,j、速度vi,j、加速度ai,jはベクトルである。
【0125】
次に、隣接したノードを格子状に連結するように、すべての仮想バネについて、その連結ノードのインデックスを設定する(ステップS13)。
【0126】
次に、各仮想バネについて、残りのパラメータに定数を代入する(ステップS14)。
【0127】
張力TS ←定数tS
抗力DS ←定数dS
静止距離RS←定数rS
以上のようにして、布オブジェクトの設定処理が終了する。
【0128】
次に、図18に示すように、描画領域(フレームバッファ等)をクリアして、フレーム処理を開始する(ステップS2)。
【0129】
次に、燃焼度処理(燃え広がり判定)を行う(ステップS3)。
【0130】
より具体的には、図20に示すように、ノードi,jの燃焼度パラメータFi,jが、0<Fi,j<1000であるか否かを判断する(ステップS21)。そして、0<Fi,j<1000である場合には、そのノードの隣接ノードを燃やすか否かを、ランダムに決定する(ステップS22)。
【0131】
そして、燃やすと決定した場合には、図23(A)に示すように、ノードi,jと隣り合うノードk,lの中から、ランダムに選択した1つのノードを選択し、そのノードの燃焼度パラメータFk,lから1を引く(ステップS23)。これにより、そのノードの燃焼度が隣接ノードに伝達されるようになる。
【0132】
k,l←Fk,l−1
なお、ここで、k,lは、図23(A)に示すように、k=i−1,i,i+1、l=j−1,j,j+1となるすべてのk,jの組み合わせを意味する。
【0133】
以上のようにして、燃焼度処理が終了する。
【0134】
次に、図18に示すように、下式にしたがって、すべてのノードに対して風、重力の力を加える処理を行う(ステップS4)。
【0135】
【数1】

【0136】
次に、束縛力処理(束縛力判定)を行う(ステップS5)。
【0137】
より具体的には図21のフローチャートに示すように、まず、仮想バネに連結している2つのノードA、Bの燃焼度パラメータFA、FBのいずれかが0か否かを判断する(ステップS31)。そして、FA、FBのいずれかが0である場合には、図4のA3で説明したように、その仮想バネを無効にする。一方、FA、FBが共に0でない場合には、連結している2つのノードA、Bに、下式に示すような仮想バネの力を加える(ステップS32)。
【0138】
【数2】

【0139】
以上のようにして、束縛力処理が終了する。
【0140】
次に、図18に示すように、すべてのノードについて、加速度a(ベクトル)と速度v(ベクトル)に基づいて、位置p(ベクトル)を決定する(ステップS6)。
【0141】
v←v+a
p←p+v
a←0
次に、燃焼度Fが0<F<1000となるノードの中から、ランダムな個数のノードを選択して、図9で説明したように、そのノードの位置から炎パーティクルを発生する(ステップS7)。この時に、炎のパーティクルの炎の強さIFは、下式のようになる。
【0142】
【数3】

【0143】
次に、布オブジェクトの描画処理を行う(ステップS8)。
【0144】
より具体的には、図22に示すように、まず、隣接して四角形を形成する4つのノードi,j、i+1,j、i+1,j+1、i,j+1を選択する(ステップS41)。
【0145】
次に、ポリゴンを描画するために、各ノードについて位置pと燃焼度パラメータFを用いて、頂点位置、頂点色を決定する(ステップS42)。
【0146】
【数4】

【0147】
次に、ノードi,j、i+1,j、i+1,j+1の中に、燃焼度パラメータF=0となるノードが1つもない場合には、これらの3つのノードを頂点とする3角形ポリゴンを描画する(ステップS43)。例えば図23(B)において、ノードi,j、i+1,j、i+1,j+1の中に、F=0となるノードが1つも無かった場合には、ポリゴンPL1が描画される。
【0148】
次に、ノードi,j、i+1,j+1、i,j+1の中に、燃焼度パラメータF=0となるノードが1つもない場合には、これらの3つのノードを頂点とする3角形ポリゴンを描画する(ステップS44)。例えば図23(B)において、ノードi,j、i+1,j+1、i,j+1の中に、F=0となるノードが1つも無かった場合には、ポリゴンPL2が描画される。
【0149】
次に、今回の4つのノードi,j、i+1,j、i+1,j+1、i,j+1を用いて、ポリゴンが1つでも描画されたかを判断し(ステップS45)、描画されている場合にはステップS48に移行し、描画されていない場合にはステップS46に移行する。即ち、図23(B)のポリゴンPL1、PL2のいずれかが描画されている場合にはステップS48に移行し、いずれも描画されていない場合にはステップS46に移行する。
【0150】
ステップS46では、ノードi,j、i+1,j、i,j+1の中に、燃焼度パラメータF=0となるノードが1つもない場合には、これらの3つのノードを頂点とする3角形ポリゴンを描画する。例えば図23(C)において、ノードi,j、i+1,j、i,j+1の中に、F=0となるノードが1つも無かった場合には、ポリゴンPL3が描画される。
【0151】
次に、ノードi+1,j、i+1,j+1、i,j+1の中に、燃焼度パラメータF=0となるノードが1つもない場合には、これらの3つのノードを頂点とする3角形ポリゴンを描画する(ステップS47)。例えば図23(C)において、ノードi+1,j、i+1,j+1、i,j+1の中に、F=0となるノードが1つも無かった場合には、ポリゴンPL4が描画される。
【0152】
以上の処理を、すべてのノードi,jについて終了するまで繰り返す(ステップS48)。
【0153】
なお、ステップS43〜S47に示すような処理を行うのは、以下の理由による。
【0154】
即ち、図23(B)において例えばノードi,jの燃焼度パラメータFが0の場合(燃え尽きた場合)には、ステップS43、S44の処理によっては、ポリゴンPL1、PL2は共に描画されない。
【0155】
しかしながら、このような場合にも、ステップS47において、ポリゴンPL4のみが描画(PL3は非描画)されるようになり、正しい結果を得ることができる。
【0156】
同様に、図23(B)において例えばノードi+1,j+1の燃焼度パラメータFが0の場合には、ステップS43、S44の処理によっては、ポリゴンPL1、PL2は共に描画されない。
【0157】
しかしながら、このような場合にも、ステップS46において、ポリゴンPL3のみが描画(PL4は非描画)されるようになり、正しい結果を得ることができる。
【0158】
以上のようにして、布オブジェクトの描画処理が終了する。
【0159】
そして、最後に、図18に示すように、描画された布オブジェクトを表示部に表示して、フレーム処理を終了する(ステップS9)。
【0160】
4.ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図24を用いて説明する。
【0161】
メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介して転送されたプログラム、或いはROM950(情報記憶媒体の1つ)に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【0162】
コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、オブジェクトを移動させたり動作(モーション)させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0163】
ジオメトリプロセッサ904は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ900で動作するプログラムが、その処理をジオメトリプロセッサ904に指示する。
【0164】
データ伸張プロセッサ906は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、所与の画像圧縮方式で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ROM950、CD982に格納されたり、或いは通信インターフェース990を介して外部から転送される。
【0165】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画(レンダリング)処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970の機能を利用して、オブジェクトデータを描画プロセッサ910に渡すと共に、必要であればテクスチャ記憶部924にテクスチャを転送する。すると、描画プロセッサ910は、これらのオブジェクトデータやテクスチャに基づいて、Zバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ922に高速に描画する。また、描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、1フレーム分の画像がフレームバッファ922に書き込まれると、その画像はディスプレイ912に表示される。
【0166】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ932から出力される。
【0167】
ゲームコントローラ942からの操作データや、メモリカード944からのセーブデータ、個人データは、シリアルインターフェース940を介してデータ転送される。
【0168】
ROM950にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納されることになる。なお、ROM950の代わりにハードディスクを利用するようにしてもよい。
【0169】
RAM960は、各種プロセッサの作業領域として用いられる。
【0170】
DMAコントローラ970は、プロセッサ、メモリ(RAM、VRAM、ROM等)間でのDMA転送を制御するものである。
【0171】
CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982(情報記憶媒体)を駆動し、これらのプログラム、データへのアクセスを可能にする。
【0172】
通信インターフェース990は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース990に接続されるネットワークとしては、通信回線(アナログ電話回線、ISDN)、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他のゲームシステムとの間でのデータ転送が可能になる。
【0173】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実行してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実行してもよい。或いは、ハードウェアとプログラムの両方により実行してもよい。
【0174】
そして、本発明の各手段をハードウェアとプログラムの両方により実行する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実行するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930等は、その指示と渡されたデータとに基づいて、本発明の各手段を実行することになる。
【0175】
図25(A)に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ1100上に映し出されたゲーム画像を見ながら、レバー1102、ボタン1104等を操作してゲームを楽しむ。内蔵されるシステムボード(サーキットボード)1106には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報(プログラム或いはデータ)は、システムボード1106上の情報記憶媒体であるメモリ1108に格納される。以下、この情報を格納情報と呼ぶ。
【0176】
図25(B)に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ1200に映し出されたゲーム画像を見ながら、ゲームコントローラ1202、1204を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるCD1206、或いはメモリカード1208、1209等に格納されている。
【0177】
図25(C)に、ホスト装置1300と、このホスト装置1300とネットワーク1302(LANのような小規模ネットワークや、インターネットのような広域ネットワーク)を介して接続される端末1304-1〜1304-nとを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置1300が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体1306に格納されている。端末1304-1〜1304-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置1300からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末1304-1〜1304-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置1300がゲーム画像、ゲーム音を生成し、これを端末1304-1〜1304-nに伝送し端末において出力することになる。
【0178】
なお、図25(C)の構成の場合に、本発明の各手段を、ホスト装置(サーバー)と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置(サーバー)の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【0179】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能な携帯型情報記憶装置(メモリカード、携帯型ゲーム装置)を用いることが望ましい。
【0180】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【0181】
例えば、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【0182】
また本実施形態では、布オブジェクトに本発明を適用した場合について主に説明したが、本発明が適用されるオブジェクトは布オブジェクトに限定されない。即ち、隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトであればよく、例えば、紙オブジェクト、鉄板オブジェクト、岩オブジェクトなどにも本発明は適用できる。
【0183】
また本実施形態では、ノードが燃え尽きることでノードが無効になる場合について説明したが、例えば、打撃などによる破壊でノードが無効になる場合にも本発明は適用できる。
【0184】
また、オブジェクトのデータ構造も、図5、図6で説明した構造が特に望ましいが、これに限定されるものではない。
【0185】
また、本実施形態ではノード状態パラメータが燃焼度パラメータである場合について説明したが、本発明のノード状態パラメータは、ノードの他の状態(温度、湿度、強度、発光度等)を表すパラメータであってもよい。
【0186】
また、パーティクルにより表現される表示物は炎に限定されず、例えば、爆発等、リアルタイムに形が変形する種々の表示物を表現できる。
【0187】
また、パーティクルは、図10に示すような3Dスプライトで表現することが望ましいが、立体オブジェクト、線、点で表現してもよい。
【0188】
また本発明は種々のゲーム(格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等)に適用できる。
【0189】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々のゲームシステム(画像生成システム)に適用できる。
【符号の説明】
【0190】
100 処理部
102 オブジェクト空間設定部
104 ノード状態処理部
106 束縛力処理部
108 ノード移動処理部
110 パーティクル処理部
112 描画処理部
160 操作部
170 記憶部
174 描画領域
180 情報記憶媒体
190 表示部
192 音出力部
194 携帯型情報記憶装置
196 通信部

【特許請求の範囲】
【請求項1】
画像生成を行うゲームシステムであって、
隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトを、オブジェクト空間内に設定する手段と、
ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードの色を決定する手段と、
オブジェクト空間内の所与の視点での画像を生成する手段と、
を含むことを特徴とするゲームシステム。
【請求項2】
コンピュータ読み取り可能な情報記憶媒体であって、
隣り合うノード同士が束縛力により連結される複数のノードにより形状が特定されるオブジェクトを、オブジェクト空間内に設定する手段と、
ノードがアトリビュートデータとして有するノード状態パラメータに基づいて、該ノードの色を決定する手段と、
オブジェクト空間内の所与の視点での画像を生成する手段としてコンピュータを機能させるためのプログラムを記憶したことを特徴とする情報記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate


【公開番号】特開2009−178575(P2009−178575A)
【公開日】平成21年8月13日(2009.8.13)
【国際特許分類】
【出願番号】特願2009−119622(P2009−119622)
【出願日】平成21年5月18日(2009.5.18)
【分割の表示】特願2000−59131(P2000−59131)の分割
【原出願日】平成12年3月3日(2000.3.3)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】