ゲーム装置、ゲーム装置の制御方法及びプログラム
【課題】例えば煙や霧等の不定形の表示物が濃く立ち込める様子を表現する際の処理負荷の軽減を図ることが可能になるゲーム装置を提供すること。
【解決手段】本発明では、仮想3次元空間40内に設定される発生源(発炎筒の先端52a)に複数の粒子を発生される。発生源(発炎筒の先端52a)に発生された複数の粒子を基準拡散方向56に向けて拡散される。基準拡散方向56は発生源(発炎筒の先端52a)から視点48aへの方向58に基づいて設定される。
【解決手段】本発明では、仮想3次元空間40内に設定される発生源(発炎筒の先端52a)に複数の粒子を発生される。発生源(発炎筒の先端52a)に発生された複数の粒子を基準拡散方向56に向けて拡散される。基準拡散方向56は発生源(発炎筒の先端52a)から視点48aへの方向58に基づいて設定される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はゲーム装置、ゲーム装置の制御方法及びプログラムに関する。
【背景技術】
【0002】
仮想3次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置が知られている。また、このようなゲーム装置で用いられる技術として、いわゆるパーティクルシステムが知られている。パーティクルシステムは、所定の法則に従って仮想3次元空間に発生され、拡散される多数のパーティクル(粒子)の集合によって、例えば煙や炎等の不定形の表示物を表現する技術である。このような技術は、例えば、サッカーゲームを実現するゲーム装置において、観客オブジェクトが持つ発炎筒から生じる煙を表現する場合に用いられる。
【特許文献1】特開2005−092754号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、現実のサッカーの試合会場では、例えば強豪チーム同士の試合の開始前において、多数の観客が発炎筒を焚いたことによって煙が濃く立ち込める場合がある。このため、上記のようなサッカーゲームでも、煙が濃く立ち込める様子を表現することによって、サッカーゲームのリアリティを向上することができる。
【0004】
煙が濃く立ち込める様子を表現するための方法としては、発炎筒を持った観客オブジェクトを仮想3次元空間に多数配置する方法が考えられる。しかしながら、発炎筒から生じる煙をパーティクルシステムによって表現する場合には、各パーティクルごとに位置演算等を行う必要がある。発炎筒を持った観客オブジェクトを多数配置した場合には、パーティクルの数も多くなるため、処理負荷が重くなってしまう。
【0005】
本発明は上記課題に鑑みてなされたものであって、その目的は、例えば煙や霧等の不定形の表示物が濃く立ち込める様子を表現する際の処理負荷の軽減を図ることが可能になるゲーム装置、ゲーム装置の制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明に係るゲーム装置は、仮想3次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置において、前記仮想3次元空間内に設定される発生源に複数の粒子を発生させる発生手段と、前記発生源に発生された前記複数の粒子を基準拡散方向に向けて拡散させる拡散手段と、前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定する設定手段と、を含むことを特徴とする。
【0007】
また、本発明に係るゲーム装置の制御方法は、仮想3次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置の制御方法において、前記仮想3次元空間内に設定される発生源に複数の粒子を発生させるための発生ステップと、前記発生源に発生された前記複数の粒子を基準拡散方向に向けて拡散させるための拡散ステップと、前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定するための設定ステップと、を含むことを特徴とする。
【0008】
また、本発明に係るプログラムは、仮想3次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置として、家庭用ゲーム機、携帯用ゲーム機、業務用ゲーム機、携帯電話機、携帯情報端末(PDA)やパーソナルコンピュータなどのコンピュータを機能させるためのプログラムであって、前記仮想3次元空間内に設定される発生源に複数の粒子を発生させる発生手段、前記発生源に発生された前記複数の粒子を基準拡散方向に向けて拡散させる拡散手段、及び、前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定する設定手段、として前記コンピュータを機能させるためのプログラムである。
【0009】
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。また、本発明に係るプログラム配信装置は、上記プログラムを記録した情報記憶媒体を備え、当該情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信装置である。また、本発明に係るプログラム配信方法は、上記プログラムを記録した情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信方法である。
【0010】
本発明は仮想3次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置に関するものである。本発明では、仮想3次元空間内に設定される発生源に複数の粒子が発生される。発生源に発生された複数の粒子が基準拡散方向に向けて拡散される。基準拡散方向が発生源から視点への方向に基づいて設定される。本発明によれば、例えば煙や霧等の不定形の表示物が濃く立ち込める様子を表現する際の処理負荷の軽減を図ることが可能になる。
【0011】
また、本発明の一態様では、前記設定手段は、前記基準拡散方向と、前記発生源から前記視点への方向と、の間の角度を所定の基準角度以下に設定するようにしてもよい。
【0012】
また、本発明の一態様では、前記拡散手段は、角度に関する角度条件に対応づけて、前記複数の粒子の移動速度に関する移動速度情報を記憶する移動速度情報記憶手段と、前記基準拡散方向と、前記発生源から前記視点への方向と、の間の角度が満足する前記角度条件に対応づけて記憶される前記移動速度情報に基づいて、前記複数の粒子の各々の移動速度を制御する移動速度制御手段と、を含むようにしてもよい。
【0013】
また、本発明の一態様では、前記拡散手段は、角度に関する角度条件に対応づけて、前記複数の粒子の透過度に関する透過度情報を記憶する透過度情報記憶手段と、前記基準拡散方向と、前記発生源から前記視点への方向と、の間の角度が満足する前記角度条件に対応づけて記憶される前記透過度情報に基づいて、前記複数の粒子の各々の透過度を制御させる透過度制御手段と、を含むようにしてもよい。
【0014】
また、本発明の一態様では、前記仮想3次元空間には前記発生源が複数設定され、前記設定手段は、前記発生源の密集度が所定の基準密集度以下であるか否かを判定する手段を含み、前記発生源の密集度が前記所定の基準密集度以下である場合、前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定するようにしてもよい。
【発明を実施するための最良の形態】
【0015】
以下、本発明の実施形態の一例について図面に基づき詳細に説明する。本発明の実施形態に係るゲーム装置は、例えば家庭用ゲーム機、携帯用ゲーム機、携帯電話機、携帯情報端末(PDA)又はパーソナルコンピュータ等によって実現される。ここでは、本発明の実施形態に係るゲーム装置を家庭用ゲーム機によって実現する場合について説明する。
【0016】
図1は、本発明の実施形態に係るゲーム装置の全体構成を示す図である。図1に示すゲーム装置10は、家庭用ゲーム機11、DVD−ROM25、メモリカード28、モニタ18、スピーカ22を含んでいる。DVD−ROM25及びメモリカード28は情報記憶媒体であり、家庭用ゲーム機11に装着される。モニタ18及びスピーカ22は家庭用ゲーム機11に接続される。モニタ18としては例えば家庭用テレビ受像機が用いられる。スピーカ22としては例えば家庭用テレビ受像機に内蔵されたスピーカが用いられる。
【0017】
家庭用ゲーム機11は公知のコンピュータゲームシステムである。家庭用ゲーム機11は、バス12、マイクロプロセッサ14、画像処理部16、音声処理部20、DVD−ROM再生部24、主記憶26、入出力処理部30及びコントローラ32を含んでいる。コントローラ32以外の構成要素は家庭用ゲーム機11の筐体内に収容される。
【0018】
バス12はアドレス及びデータを家庭用ゲーム機11の各部でやり取りするためのものである。マイクロプロセッサ14、画像処理部16、主記憶26及び入出力処理部30は、バス12によって相互データ通信可能に接続される。
【0019】
マイクロプロセッサ14は、図示しないROMに格納されるオペレーティングシステム、DVD−ROM25から読み出されるプログラム及びデータや、メモリカード28から読み出されるデータに基づいて、家庭用ゲーム機11の各部を制御する。主記憶26は、例えばRAMを含んでいる。主記憶26には、DVD−ROM25又はメモリカード28から読み出されたプログラムやデータが必要に応じて書き込まれる。主記憶26はマイクロプロセッサ14の作業用としても用いられる。
【0020】
画像処理部16はVRAMを含んでいる。画像処理部16は、マイクロプロセッサ14から送られる画像データに基づいてVRAM上にゲーム画面を描画する。そして、画像処理部16は、そのゲーム画面をビデオ信号に変換して所定のタイミングでモニタ18に出力する。
【0021】
入出力処理部30は、マイクロプロセッサ14が音声処理部20、DVD−ROM再生部24、メモリカード28及びコントローラ32にアクセスするためのインタフェースである。入出力処理部30には、音声処理部20、DVD−ROM再生部24、メモリカード28及びコントローラ32が接続される。
【0022】
音声処理部20はサウンドバッファを含んでいる。サウンドバッファには、DVD−ROM25から読み出されたゲーム音楽、ゲーム効果音、メッセージ等の各種音声データが記憶される。音声処理部20は、サウンドバッファに記憶された各種音声データを再生してスピーカ22から出力する。
【0023】
DVD−ROM再生部24はマイクロプロセッサ14からの指示に従ってDVD−ROM25に記録されたプログラムを読み取る。なお、ここではプログラムを家庭用ゲーム機11に供給するためにDVD−ROM25を用いることとするが、CD−ROMやROMカード等、他のあらゆる情報記憶媒体を用いるようにしてもよい。また、例えばインターネット等の通信ネットワークを介して遠隔地からプログラムを家庭用ゲーム機11に供給するようにしてもよい。
【0024】
メモリカード28は不揮発性メモリ(例えばEEPROM等)を含んでいる。家庭用ゲーム機11はメモリカード28を装着するためのメモリカードスロットを複数備えている。メモリーカード28には例えばセーブデータなどの各種ゲームデータが記憶される。
【0025】
コントローラ32は、ユーザが各種ゲーム操作の入力をするための汎用操作入力手段である。入出力処理部30は一定周期毎(例えば1/60秒毎)にコントローラ32の各部の状態をスキャンする。そして、入出力処理部30はそのスキャン結果を表す操作信号をバス12を介してマイクロプロセッサ14に渡す。マイクロプロセッサ14はその操作信号に基づいてユーザのゲーム操作を判定する。家庭用ゲーム機11には複数のコントローラ32を接続することが可能である。マイクロプロセッサ14は各コントローラ32から入力される操作信号に基づいてゲーム制御を実行する。
【0026】
上記の構成を備えるゲーム装置10では、DVD−ROM25から読み出されたゲームプログラムが実行されることによって、例えばサッカーゲームが実行される。
【0027】
ゲーム装置10の主記憶26には仮想3次元空間が構築される。図2は仮想3次元空間40の一例を示している。図2に示すように、仮想3次元空間40にはサッカーの試合会場が形成される。すなわち、仮想3次元空間40には、サッカーのフィールドを表すフィールドオブジェクト42と、ゴールを表すゴールオブジェクト44と、観客席を表す観客席オブジェクト46と、が配置される。フィールドオブジェクト42はXwZw平面に平行に配置される。
【0028】
また、仮想3次元空間40には仮想カメラ48が配置される。この仮想カメラ48から仮想3次元空間40を見た様子を表すゲーム画面がモニタ18に表示される。すなわち、視点48aから視線方向48bを見た場合の仮想3次元空間40の様子がゲーム画面に表される。
【0029】
図2では省略されているが、サッカー選手を表す選手オブジェクトと、サッカーボールを表すボールオブジェクトと、がフィールドオブジェクト42上に配置される。ユーザはコントローラ32を用いて操作対象の選手オブジェクトを操作し、対戦相手チームのゴールオブジェクト44内にボールオブジェクトを移動させること(得点イベントを発生させること)を目指す。
【0030】
また図2では省略されているが、観客を示す観客オブジェクトが観客席オブジェクト46上に配置される。観客席オブジェクト46上に配置される観客オブジェクトのうちの一部の観客オブジェクトは発炎筒を持っている。図3は、発炎筒52を持った観客オブジェクト50の一例を示している。
【0031】
発炎筒52から生じる煙は、いわゆるパーティクルシステムを用いて表現される。すなわち、所定の規則に従って発生・移動・消滅するパーティクル(粒子)の集合によって、発炎筒52から生じる煙が表現される。図4は、発炎筒52から生じる煙を表現するためのパーティクル54について説明するための図である。
【0032】
パーティクル54は所定の発生源に発生する。パーティクル54の色は煙の色(例えば白色や灰色)に設定される。パーティクル54の発生源は発炎筒52の先端52aに設定される。発生源には、所定時間(例えば1/60秒)ごとに所定数のパーティクル54が発生する。なお、所定時間ごとに発生するパーティクル54の数はランダムに決定されるようにしてもよい。
【0033】
パーティクル54の位置は、発生源(発炎筒52の先端52a)を原点とするローカル座標系(XYZ座標系)で管理される。パーティクル54は発生源からY軸方向に向けて拡散される。なお以下では、XYZ座標系のことを「パーティクル座標系」と記載する。
【0034】
また、各パーティクル54にはα値が設定される。α値はパーティクル54の透過度を示す情報である。α値は例えば0〜255の整数値をとる。パーティクル54のα値が0である場合、そのパーティクル54は完全に透明になる。パーティクル54のα値が255である場合、そのパーティクル54は完全に不透明になる。本実施の形態の場合、発生源に発生したパーティクル54のα値は所定の初期値(例えば255)に設定される。パーティクル54に設定されたα値は、そのパーティクル54が発生源に発生してからの経過時間に応じて徐々に減少していく。すなわち、パーティクル54の透過度はそのパーティクル54が発生してからの経過時間に比例して徐々に増していく。このため、発炎筒52から生じる煙は上昇するにしたがって薄くなっていく。なお、パーティクル54のα値の初期値はランダムに決定されるようにしてもよい。
【0035】
また、各パーティクル54には寿命時間が設定される。すなわち、パーティクル54は発生してから所定時間(寿命時間)が経過すると消滅する。なお、パーティクル54の寿命時間はランダムに決定されるようにしてもよい。
【0036】
ところで、実際のサッカーの試合会場では、例えば得点が入った後や特別な試合の開始前において、多数の観客が焚いた発煙筒によって煙が濃く立ち込める場合がある。このため、サッカーゲームにおいても、煙が濃く立ち込める様子が表現することによって、サッカーゲームのリアリティを向上できる。
【0037】
多数の観客が焚いた発煙筒によって煙が濃く立ち込める様子が表現するための方法としては、発炎筒52を持った観客オブジェクト50を観客席オブジェクト46上に多数配置する方法が考えられる。しかし、発炎筒52から生じる煙をパーティクルシステムによって表現する場合には、各パーティクル54ごとに位置演算等を行う必要がある。発炎筒52を持った観客オブジェクト50を多数配置した場合にはパーティクル54の数も多くなるため、処理負荷が重くなってしまう。
【0038】
以下、煙が濃く立ち込める様子を処理負荷の軽減を図りつつ好適に表現するための技術について説明する。
【0039】
ゲーム装置10が実行する処理について説明する。図5及び図6はゲーム装置10が所定時間(本実施の形態では1/60秒)ごとに実行する処理のうち、本発明に関連するものを主として示すフロー図である。マイクロプロセッサ14はDVD−ROM25から読み出されたプログラムに従って、図5及び図6に示す処理を実行する。
【0040】
図5に示すように、まず、マイクロプロセッサ14は現在のゲーム場面が特定場面であるか否かを判定する(S101)。ここで、特定場面とは、多数の観客によって焚かれた発煙筒によって煙が濃く立ち込める様子を演出すべき場面である。例えば、特定場面は得点が入った後の場面である。また例えば、特定場面は、強豪チームの同士の試合や決勝戦などの特別の試合が開始される前の場面である。得点が入ったか否かは、主記憶26に記憶されるボールオブジェクトの位置に基づいて判定される。これから開始される試合が強豪チームの同士の試合であるか否かは、これから開始される試合に係る両チームの組み合わせが、あらかじめDVD−ROM25に記憶された所定の組み合わせ(強豪チーム同士の組み合わせ)であるか否かを判定することによって判定される。
【0041】
そして、マイクロプロセッサ14は、S101における判定結果に基づいて、パーティクル座標系のY軸方向に対応するワールド座標系(図2に示すXwYwZw座標系)の方向(基準拡散方向)を設定する。図7及び図8は基準拡散方向56の設定について説明するための図である。
【0042】
S101において現在のゲーム場面が特定場面でないと判定された場合、図7に示すように、マイクロプロセッサ14は基準拡散方向56をYw軸正方向に設定する(S102)。言い換えれば、マイクロプロセッサ14は、パーティクル座標系のY軸方向をワールド座標系のYw軸正方向に対応づける。この場合、仮想カメラ48の視線方向48bがYw軸負方向になる場合を除き、基準拡散方向56と、パーティクル54の発生源(発炎筒52の先端52a)から視点48aへの方向58と、の間の角度θaは0より大きくなる。
【0043】
一方、S101において現在のゲーム場面が特定場面であると判定された場合、図8に示すように、マイクロプロセッサ14(設定手段)は基準拡散方向56を、パーティクル54の発生源(発炎筒52の先端52a)から視点48aへの方向58に設定する(S103)。言い換えれば、マイクロプロセッサ14は、パーティクル座標系のY軸方向をワールド座標系の、パーティクル54の発生源から視点48aへの方向58に対応づける。この場合、基準拡散方向56と、パーティクル54の発生源から視点48aへの方向58と、の間の角度θaは0になる。
【0044】
S102又はS103の処理が実行された後、マイクロプロセッサ14(発生手段)は所定数のパーティクル54を発生源に新たに発生させる(S104)。
【0045】
ここで、S104以降の処理に関連するデータについて説明する。図9及び図10はS104以降の処理に関連するデータを示している。
【0046】
図9は、主記憶26に記憶されるパーティクル状態テーブルの一例について示している。パーティクル状態テーブルは、一の発生源から発生されるパーティクル54の状態を管理するためのデータである。このパーティクル状態テーブルは仮想3次元空間40に配置された各発炎筒52ごとに用意される。すなわち、仮想3次元空間40に発炎筒52が3つ配置される場合、パーティクル状態テーブルが3つ用意される。
【0047】
図9に示すように、パーティクル状態テーブルは「ID」、「色」、「α値」、「移動速度ベクトル」、「減速度」、「位置」、「残存時間カウンタ」フィールドを含む。「ID」にはパーティクル54のIDが格納される。「色」にはパーティクル54の色を示す情報が格納される。「α値」にはパーティクル54のα値が格納される。「移動速度ベクトル」にはパーティクル54の移動速度ベクトルが格納される。移動速度ベクトルはパーティクル座標系(XYZ座標系)で表される。「減速度」にはパーティクル54の減速度が格納される。減速度は、パーティクル54の移動速度を所定時間(本実施の形態では1/60秒)ごとにどれだけ減速させるかを示す情報である。「位置」にはパーティクル54の現在位置をパーティクル座標系(XYZ座標系)で表す位置座標が格納される。「残存時間カウンタ」には、パーティクル54が消滅するまでの残り時間を1/60秒単位で示す数値が格納される。パーティクル状態テーブルの1レコードは一つのパーティクル54に対応する。
【0048】
図10は、DVD−ROM25(移動速度情報記憶手段、透過度情報記憶手段)に記憶されるパーティクル制御データの一例を示している。図10に示すように、パーティクル制御データは、角度条件に、移動速度補正係数(移動速度情報)及びα値補正係数(透過度情報)を対応づけたデータである。ここで、角度条件は、基準拡散方向56と、パーティクル54の発生源から視点48aへの方向58と、の間の角度θa(図7参照)に関する条件である。また、移動速度補正係数はパーティクル54の移動速度を補正するための係数であり、α値補正係数はパーティクル54のα値を補正するための係数である。移動速度補正係数及びα値補正係数は0以上1以下の値をとる。図10に示すパーティクル制御データでは、上記角度θaが0より大きい場合の移動速度補正係数及びα値補正係数がともに1.0に設定されている。また、図10に示すパーティクル制御データでは、上記角度θaが0である場合の移動速度補正係数が0.7に設定され、α値補正係数が0.9に設定されている。
【0049】
S104の処理では、マイクロプロセッサ14は所定数のレコードをパーティクル状態テーブルに追加する。この場合、追加されるレコードの各フィールドに格納される内容は次のようになる。すなわち、「色」フィールドには所定色(例えば白又は灰色等)を示す情報が格納される。「α値」フィールドには所定値(例えば255)が格納される。「減速度」フィールドには、パーティクル54ごとに乱数に基づいて決定される減速度が格納される。「位置」フィールドには、発生源の位置座標、すなわちパーティクル座標系の原点座標が格納される。「残存時間カウンタ」フィールドには、パーティクル54の寿命時間を1/60秒単位で示す数値が格納される。
【0050】
また、「移動速度ベクトル」フィールドには、パーティクル54ごとに乱数に基づいて決定される移動速度ベクトルが格納される。図11は移動速度ベクトルの決定について説明するための図である。まず、マイクロプロセッサ14はパーティクル54の所定時間(本実施の形態では1/60秒)ごとのY軸方向への移動量Vyを決定する。このとき、移動量Vyは一定としてもよいし、乱数に基づいて決定されるようにしてもよい。また、マイクロプロセッサ14はパーティクル54の所定時間(本実施の形態では1/60秒)ごとのX軸,Z軸方向への移動量Vx,Vzを乱数に基づいて決定する。このとき、移動量Vx,Vzは移動量Vyよりも小さくなるように決定される。また、移動量Vx,Vzは、パーティクル54の移動方向と、Y軸方向と、の間の角度θbが所定の基準角度以下となるように決定される。そして、マイクロプロセッサ14は上記の移動量Vx,Vy,Vzを表すベクトルを合成することによって得られる移動速度ベクトルVを「移動速度ベクトル」フィールドに格納する。
【0051】
S104の処理が実行された後、マイクロプロセッサ14は各パーティクル54の残存時間カウンタの値を1減らす(S105)。すなわち、マイクロプロセッサ14はパーティクル状態テーブルの各レコードの「残存時間カウンタ」フィールドの値を1減らす。そして、マイクロプロセッサ14は残存時間カウンタの値が0になったパーティクル54を消滅させる(S106)。すなわち、マイクロプロセッサ14は「残存時間カウンタ」フィールドの値が0であるレコードをパーティクル状態テーブルから削除する。
【0052】
その後、マイクロプロセッサ14は各パーティクル54のα値を所定値だけ減らす(S107)。すなわち、マイクロプロセッサ14はパーティクル状態テーブルの各レコードの「α値」フィールドに格納されるα値を所定値だけ減少させる。
【0053】
その後、マイクロプロセッサ14は各パーティクル54の移動速度ベクトルを更新する(S108)。すなわち、マイクロプロセッサ14は、パーティクル状態テーブルの各レコードの「移動速度ベクトル」フィールドに格納される移動速度ベクトルを、そのレコードの「減速度」フィールドに格納される減速度に基づいて更新する。
【0054】
その後、マイクロプロセッサ14(移動速度制御手段)は、S102又はS103において設定された基準拡散方向56と、パーティクル54の発生源から視点48aへの方向58と、の間の角度θa(図7参照)に基づいて、各パーティクル54の移動速度ベクトルを補正する(S109)。すなわち、マイクロプロセッサ14は上記角度θaに対応する移動速度補正係数をパーティクル制御データから読み出す。また、マイクロプロセッサ14は各パーティクル54の移動速度ベクトルをパーティクル状態テーブルから読み出す。そして、マイクロプロセッサ14は各パーティクル54の移動速度ベクトルに対して移動速度補正係数を乗じることによって、各パーティクル54の補正移動速度ベクトルを取得する。
【0055】
本実施の形態では、上記角度θaが0より大きい場合の移動速度補正係数は1.0になっている(図10参照)。このため、基準拡散方向56がYw軸方向に設定された場合、各パーティクル54の補正移動速度は、パーティクル状態テーブルに保持された移動速度ベクトルが示す元々の移動速度に等しくなる。一方、上記角度θaが0である場合の移動速度補正係数は0.7になっている(図10参照)。このため、基準拡散方向56が、パーティクル54の発生源から視点48aへの方向58に設定された場合、各パーティクル54の補正移動速度は、パーティクル状態テーブルに保持された移動速度ベクトルが示す元々の移動速度よりも遅くなる。
【0056】
その後、マイクロプロセッサ14(拡散手段)は、各パーティクル54の位置を、S109で取得されたそのパーティクル54の補正移動速度ベクトルに基づいて更新する(S110)。すなわち、マイクロプロセッサ14はパーティクル状態テーブルの各レコードの「位置」フィールドに格納される位置座標をS109で取得された補正移動速度ベクトルに基づいて更新する。
【0057】
その後、マイクロプロセッサ14は各パーティクル54のワールド座標系における位置を取得する(S111)。すなわち、マイクロプロセッサ14は各パーティクル54のパーティクル座標系における位置座標をパーティクル状態テーブルから読み出す。そしてマイクロプロセッサ14は、その位置座標を、S102又はS103において設定された、パーティクル座標系のY軸方向とワールド座標系の方向との対応関係に基づいてパーティクル座標系からワールド座標系に変換する。
【0058】
その後、マイクロプロセッサ14(透過度制御手段)は、S102又はS103において設定された基準拡散方向56と、パーティクル54の発生源から視点48aへの方向58と、の間の角度θa(図7参照)に基づいて、各パーティクル54のα値を補正する(S112)。すなわち、マイクロプロセッサ14は上記角度θaに対応するα値補正係数をパーティクル制御データから読み出す。また、マイクロプロセッサ14は各パーティクル54のα値をパーティクル状態テーブルから読み出す。そして、マイクロプロセッサ14は各パーティクル54のα値に対してα値補正係数を乗じることによって、各パーティクル54の補正α値を取得する。
【0059】
本実施の形態では、上記角度θaが0より大きい場合のα値補正係数は1.0になっている(図10参照)。このため、基準拡散方向56がYw軸方向に設定された場合、各パーティクル54の補正α値は、パーティクル状態テーブルに保持された元々のα値に等しくなる。一方、上記角度θaが0である場合のα値補正係数は0.9になっている(図10参照)。このため、基準拡散方向56が、パーティクル54の発生源(発炎筒52の先端52a)から視点48aへの方向58に設定された場合、各パーティクル54の補正α値は、パーティクル状態テーブルに保持された元々のα値よりも小さくなる。すなわち、パーティクル54の透過度が高くなる。
【0060】
なお、以上に説明したS104〜S112の処理は、仮想3次元空間40に設定されたパーティクル54の発生源の各々について実行される。
【0061】
S112の処理が実行された後、マイクロプロセッサ14及び画像処理部16は、S111で取得された各パーティクル54のワールド座標系における位置と、S112で取得された各パーティクル54の補正α値と、に基づいて、ゲーム画面をVRAM上に生成する(S113)。すなわち、マイクロプロセッサ14及び画像処理部16は仮想カメラ48から仮想3次元空間40を見た様子を表す画像をVRAM上に描画する。なお、主記憶26には仮想3次元空間40に配置された選手オブジェクトやボールオブジェクトの位置等が記憶されており、上記画像の描画はそれらの情報にも基づいて実行される。VRAM上に生成されたゲーム画面は所定のタイミングでモニタ18に表示出力される。
【0062】
ここで、発炎筒52を持った観客オブジェクト50が仮想カメラ48に対向するように配置されている場合のゲーム画面を想定する。図12は、ゲーム場面が特定場面でない場合にゲーム画面に表される煙60を表している。図13は、ゲーム場面が特定場面である場合にゲーム画面に表される煙60を表している。なお、実際のゲーム画面には観客オブジェクト50や発炎筒52も表示されるが、図12及び図13では省略されている。また、仮想3次元空間40には発炎筒52を持った観客オブジェクト50が複数配置されることによって、実際のゲーム画面には複数の煙60が表されるが、図12及び図13では一つの発炎筒52から生じる煙60にのみ着目している。また、図12及び図13において斜線部分は煙が比較的濃く表れる部分を示している。
【0063】
図12及び図13に示すように、ゲーム装置10では、ゲーム場面が特定場面でない場合とゲーム場面が特定場面である場合とで、一つの発炎筒52から生じる煙60のゲーム画面における広がり方が変わる。
【0064】
より具体的には、ゲーム場面が特定場面でない場合には、煙60を表現するためのパーティクル54の基準拡散方向56がYw軸方向に設定される(図5のS102参照)。すなわち、ゲーム場面が特定場面でない場合には、発生源に発生したパーティクル54が発生源からYw軸方向に向かって拡散される。その結果、図12に示すように、発炎筒52の先端52aから上方に昇るような煙60がゲーム画面に表される。すなわち、一つの発炎筒52から生じた煙60の形状は、発炎筒52の先端52aから上方に離れるにつれて徐々に左右に広がるような形状になる。この場合、パーティクル54のα値は、パーティクル54が上方に移動するにつれてパーティクル54の透明度が高くなるように変化する。その結果、煙60は発炎筒52の先端52aに比較的近い部分(斜線部分)だけが濃くなる。
【0065】
一方、ゲーム画面が特定場面である場合には、煙60を表現するためのパーティクル54の基準拡散方向56が、発生源(発炎筒52の先端52a)から視点48aへの方向58に設定される(図5のS103参照)。すなわち、ゲーム画面が特定場面である場合には、発生源に発生したパーティクル54が発生源から仮想カメラ48に向かって拡散される。その結果、図13に示すように、発炎筒52の先端52aを中心として上下左右斜めに広がるような煙60がゲーム画面が表される。すなわち、一つの発炎筒52から生じた煙60の形状は、発炎筒52の先端52aから上下左右斜めに広がるような形状になる。この場合、図12に示すゲーム画面に比べて、煙60は比較的広範囲にわたって表されるようになる。また、この場合、煙60は全体的に濃くなる。すなわち、図12に示すゲーム画面に比べて、煙60の濃い部分(斜線部分)の面積が広くなる。
【0066】
仮想3次元空間40に発生されるパーティクル54の数は図12に示すゲーム画面が表示される場合と図13に示すゲーム画面が表示される場合とで変わらない。このため、図12に示すゲーム画面が表示される場合と図13に示すゲーム画面が表示される場合とで処理負荷は変わらない。サッカーゲームのように複数のオブジェクト(選手オブジェクトやボールオブジェクト)を同時に制御するゲームでは、スタジアム等の表現に関する処理の負荷はできる限り軽減する必要がある。この点、本実施の形態によれば、処理負荷の増大を抑止しつつ、煙が濃く立ち込める様子を表現できるようになる。
【0067】
以上説明したように、ゲーム装置10によれば、特定の場面において煙が比較的広範囲にわたって濃く立ち込める様子を処理負荷の軽減を図りつつ表現できるようになる。
【0068】
ところで、煙が濃く立ち込める様子を表現するための方法としては、濃い煙を発生させる発炎筒52のデータを別途用意しておき、ゲーム状況に応じて、発炎筒52のデータを切り替えることも考えられる。しかし、この方法では、発炎筒52のデータを2つ用意しなければならず、ゲーム開発の作業量やゲームのデータ量が増加してしまう。この点、ゲーム装置10によれば、発炎筒52のデータを複数用意する必要はなく、上記のような不都合も生じない。
【0069】
また、ゲーム装置10では、パーティクル54の位置は発生源を原点としたローカル座標系(パーティクル座標系)で管理される。そしてゲーム装置10では、パーティクル座標系のY軸方向に対応するワールド座標系の方向を変えることによって、パーティクル54の基準拡散方向56が変わるようになっている。すなわち、ゲーム装置10では、ゲーム場面が特定場面でない場合とゲーム画面が特定場面である場合とでパーティクル座標系のY軸方向に対応するワールド座標系の方向を変えるだけですむようになっている。このため、ゲーム装置10では、ゲーム場面が特定場面でない場合とゲーム画面が特定場面である場合とでパーティクル54の位置演算処理を共通化できるようになっている。
【0070】
ところで、パーティクル54の基準拡散方向56が発生源から視点48aへの方向58に設定された場合、パーティクル54の基準拡散方向56がYw軸方向に設定された場合と同様の速さでパーティクル54が移動してしまうと、ゲーム画面において、煙が奥から手前に向かって噴き出てくるかのように表されてしまう場合がある。その結果、ユーザに不自然な印象を与えてしまう場合がある。この点、ゲーム装置10では、パーティクル制御データ(図10参照)に基づいてパーティクル54の移動速度ベクトルが補正される(図6のS109参照)。具体的には、パーティクル54の基準拡散方向56が発生源から視点48aへの方向58に設定された場合には、パーティクル54の移動速度が全体的に遅くなるように補正される。その結果、上記のような不具合が発生しないように図られている。
【0071】
また、パーティクル54の基準拡散方向56が発生源から視点48aへの方向58に設定された場合、パーティクル54は発生源から視点48aに向かって拡散される。このため、パーティクル54の基準拡散方向56がYw軸方向に設定された場合と同様にパーティクル54のα値を設定してしまうと、煙が全体的に濃く表されすぎてしまうおそれがある。この点、ゲーム装置10では、パーティクル制御データ(図10参照)に基づいてパーティクル54のα値が補正される(図16のS112参照)。具体的には、パーティクル54の基準拡散方向56が発生源から視点48aへの方向58に設定された場合には、パーティクル54のα値が多少小さくなるように補正される。言い換えれば、パーティクル54の基準拡散方向56が発生源から視点48aへの方向58に設定された場合には、煙の濃さが多少薄く表示されるように補正される。その結果、上記のような不具合が発生しないように図られている。
【0072】
なお、本発明は以上に説明した実施の形態に限定されるものではない。
【0073】
例えば、以上では、図5のS103において、基準拡散方向56と、パーティクル54の発生源から視点48aへの方向58と、の間の角度θaが0になるように、基準拡散方向56が設定されると説明した。しかしながら、図5のS103では、基準拡散方向56と、パーティクル54の発生源から視点48aへの方向58と、の間の角度θaが所定の基準角度以下になるように、基準拡散方向56が設定されるようにしてもよい。この場合、0°に近い角度(例えば5°)が基準角度として設定されるようにすればよい。また、この場合のパーティクル制御データ(図10参照)では、角度条件「θa>基準角度」に対応する移動速度補正係数が1.0に設定され、角度条件「θa≦基準角度」に対応する移動速度補正係数が0.7に設定されるようにすればよい。また、角度条件「θa>基準角度」に対応するα値補正係数が1.0に設定され、角度条件「θa≦基準角度」に対応するα値補正係数が0.9に設定されるようにすればよい。こうしても、基準角度として不当に大きい角度が設定されない限り、ゲーム画面が特定場面である場合において、一つの発炎筒52から生じる煙60が比較的広範囲にわたって表示されるようになり、かつ、煙60の濃い部分の面積も広くなる。すなわち、特定の場面において煙が比較的広範囲にわたって濃く立ち込める様子を処理負荷の軽減を図りつつ表現できるようになる。
【0074】
また例えば、発炎筒52の密集度が所定の基準密集度よりも低い場合にのみ、パーティクル54の基準拡散方向56を発生源から視点48aへの方向58に設定するようにしてもよい。発炎筒52の密集度は、例えば、一の発炎筒52と、その発炎筒52に最も近い発炎筒52と、の間の距離によって判断される。具体的には、上記距離が所定の基準距離より長い場合には、発炎筒52の密集度が所定の基準密集度よりも低いと判断される。一方、上記距離が所定の基準距離以下である場合には、発炎筒52の密集度が所定の基準密集度以上であると判断される。発炎筒52の密集度が高い場合には、あえてパーティクル54の基準拡散方向56を発生源から視点48aへの方向58に設定しなくても、煙が濃く立ち込める様子がゲーム画面に表されると考えられる。このため、発炎筒52の密集度が高い場合には、発炎筒52の密集度が低い場合に比べて、パーティクル54の基準拡散方向56を発生源から視点48aへの方向58に設定する必要性が薄い。この点、以上のようにすれば、パーティクル54の基準拡散方向56を発生源から視点48aへの方向58に設定する必要性が高い場合にのみ、パーティクル54の基準拡散方向56が発生源から視点48aへの方向58に設定されるようになる。
【0075】
また例えば、ゲーム装置10で実行されるゲームはサッカーゲーム以外のゲームであってもよい。また、本発明は、煙以外の不定形の表示物(例えば霧等)が濃く立ち込める様子を表現する場合にも用いることができる。
【0076】
また例えば、以上の説明では、プログラムを情報記憶媒体たるDVD−ROM25から家庭用ゲーム機11に供給するようにしたが、通信ネットワークを介してプログラムを家庭等に配信するようにしてもよい。図14は、通信ネットワークを用いたプログラム配信システムの全体構成を示す図である。図14に基づいて本発明に係るプログラム配信方法を説明する。図14に示すように、このプログラム配信システム100は、ゲームデータベース102、サーバ104、通信ネットワーク106、パソコン108、家庭用ゲーム機110、PDA(携帯情報端末)112を含んでいる。このうち、ゲームデータベース102とサーバ104とによりプログラム配信装置114が構成される。通信ネットワーク106は、例えばインターネットやケーブルテレビネットワークを含んで構成されている。このシステムでは、ゲームデータベース(情報記憶媒体)102に、DVD−ROM25の記憶内容と同様のプログラムが記憶されている。そして、パソコン108、家庭用ゲーム機110又はPDA112等を用いて需要者がゲーム配信要求をすることにより、それが通信ネットワーク106を介してサーバ104に伝えられる。そして、サーバ104はゲーム配信要求に応じてゲームデータベース102からプログラムを読み出し、それをパソコン108、家庭用ゲーム機110、PDA112等、ゲーム配信要求元に送信する。ここではゲーム配信要求に応じてゲーム配信するようにしたが、サーバ104から一方的に送信するようにしてもよい。また、必ずしも一度にゲームの実現に必要な全てのプログラムを配信(一括配信)する必要はなく、ゲームの局面に応じて必要な部分を配信(分割配信)するようにしてもよい。このように通信ネットワーク106を介してゲーム配信するようにすれば、プログラムを需要者は容易に入手することができるようになる。
【図面の簡単な説明】
【0077】
【図1】本実施の形態に係るゲーム装置のハードウェア構成を示す図である。
【図2】仮想3次元空間の一例を示す図である。
【図3】発炎筒を持った観客オブジェクトの一例を示す図である。
【図4】煙を表現するためのパーティクルについて説明するための図である。
【図5】ゲーム装置で実行される処理を示すフロー図である。
【図6】ゲーム装置で実行される処理を示すフロー図である。
【図7】基準拡散方向について説明するための図である。
【図8】基準拡散方向について説明するための図である。
【図9】パーティクル状態テーブルの一例を示す図である。
【図10】パーティクル制御データの一例を示す図である。
【図11】パーティクルの移動速度ベクトルについて説明するための図である。
【図12】ゲーム場面が特定場面でない場合のゲーム画面に表される煙の一例を示す図である。
【図13】ゲーム場面が特定場面である場合のゲーム画面に表される煙の一例を示す図である。
【図14】本発明の他の実施形態に係るプログラム配信システムの全体構成を示す図である。
【符号の説明】
【0078】
10 ゲーム装置、11,110 家庭用ゲーム機、12 バス、14 マイクロプロセッサ、16 画像処理部、18 モニタ、20 音声処理部、22 スピーカ、24 DVD−ROM再生部、25 DVD−ROM、26 主記憶、28 メモリカード、30 入出力処理部、32 コントローラ、40 仮想3次元空間、42 フィールドオブジェクト、44 ゴールオブジェクト、46 観客席オブジェクト、48 仮想カメラ、48a 視点、48b 視線方向、50 観客オブジェクト、52 発炎筒、54 パーティクル、56 基準拡散方向、60 煙、100 プログラム配信システム、102 ゲームデータベース、104 サーバ、106 通信ネットワーク、108 パソコン、112 携帯情報端末(PDA)、114 プログラム配信装置。
【技術分野】
【0001】
本発明はゲーム装置、ゲーム装置の制御方法及びプログラムに関する。
【背景技術】
【0002】
仮想3次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置が知られている。また、このようなゲーム装置で用いられる技術として、いわゆるパーティクルシステムが知られている。パーティクルシステムは、所定の法則に従って仮想3次元空間に発生され、拡散される多数のパーティクル(粒子)の集合によって、例えば煙や炎等の不定形の表示物を表現する技術である。このような技術は、例えば、サッカーゲームを実現するゲーム装置において、観客オブジェクトが持つ発炎筒から生じる煙を表現する場合に用いられる。
【特許文献1】特開2005−092754号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、現実のサッカーの試合会場では、例えば強豪チーム同士の試合の開始前において、多数の観客が発炎筒を焚いたことによって煙が濃く立ち込める場合がある。このため、上記のようなサッカーゲームでも、煙が濃く立ち込める様子を表現することによって、サッカーゲームのリアリティを向上することができる。
【0004】
煙が濃く立ち込める様子を表現するための方法としては、発炎筒を持った観客オブジェクトを仮想3次元空間に多数配置する方法が考えられる。しかしながら、発炎筒から生じる煙をパーティクルシステムによって表現する場合には、各パーティクルごとに位置演算等を行う必要がある。発炎筒を持った観客オブジェクトを多数配置した場合には、パーティクルの数も多くなるため、処理負荷が重くなってしまう。
【0005】
本発明は上記課題に鑑みてなされたものであって、その目的は、例えば煙や霧等の不定形の表示物が濃く立ち込める様子を表現する際の処理負荷の軽減を図ることが可能になるゲーム装置、ゲーム装置の制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明に係るゲーム装置は、仮想3次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置において、前記仮想3次元空間内に設定される発生源に複数の粒子を発生させる発生手段と、前記発生源に発生された前記複数の粒子を基準拡散方向に向けて拡散させる拡散手段と、前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定する設定手段と、を含むことを特徴とする。
【0007】
また、本発明に係るゲーム装置の制御方法は、仮想3次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置の制御方法において、前記仮想3次元空間内に設定される発生源に複数の粒子を発生させるための発生ステップと、前記発生源に発生された前記複数の粒子を基準拡散方向に向けて拡散させるための拡散ステップと、前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定するための設定ステップと、を含むことを特徴とする。
【0008】
また、本発明に係るプログラムは、仮想3次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置として、家庭用ゲーム機、携帯用ゲーム機、業務用ゲーム機、携帯電話機、携帯情報端末(PDA)やパーソナルコンピュータなどのコンピュータを機能させるためのプログラムであって、前記仮想3次元空間内に設定される発生源に複数の粒子を発生させる発生手段、前記発生源に発生された前記複数の粒子を基準拡散方向に向けて拡散させる拡散手段、及び、前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定する設定手段、として前記コンピュータを機能させるためのプログラムである。
【0009】
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。また、本発明に係るプログラム配信装置は、上記プログラムを記録した情報記憶媒体を備え、当該情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信装置である。また、本発明に係るプログラム配信方法は、上記プログラムを記録した情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信方法である。
【0010】
本発明は仮想3次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置に関するものである。本発明では、仮想3次元空間内に設定される発生源に複数の粒子が発生される。発生源に発生された複数の粒子が基準拡散方向に向けて拡散される。基準拡散方向が発生源から視点への方向に基づいて設定される。本発明によれば、例えば煙や霧等の不定形の表示物が濃く立ち込める様子を表現する際の処理負荷の軽減を図ることが可能になる。
【0011】
また、本発明の一態様では、前記設定手段は、前記基準拡散方向と、前記発生源から前記視点への方向と、の間の角度を所定の基準角度以下に設定するようにしてもよい。
【0012】
また、本発明の一態様では、前記拡散手段は、角度に関する角度条件に対応づけて、前記複数の粒子の移動速度に関する移動速度情報を記憶する移動速度情報記憶手段と、前記基準拡散方向と、前記発生源から前記視点への方向と、の間の角度が満足する前記角度条件に対応づけて記憶される前記移動速度情報に基づいて、前記複数の粒子の各々の移動速度を制御する移動速度制御手段と、を含むようにしてもよい。
【0013】
また、本発明の一態様では、前記拡散手段は、角度に関する角度条件に対応づけて、前記複数の粒子の透過度に関する透過度情報を記憶する透過度情報記憶手段と、前記基準拡散方向と、前記発生源から前記視点への方向と、の間の角度が満足する前記角度条件に対応づけて記憶される前記透過度情報に基づいて、前記複数の粒子の各々の透過度を制御させる透過度制御手段と、を含むようにしてもよい。
【0014】
また、本発明の一態様では、前記仮想3次元空間には前記発生源が複数設定され、前記設定手段は、前記発生源の密集度が所定の基準密集度以下であるか否かを判定する手段を含み、前記発生源の密集度が前記所定の基準密集度以下である場合、前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定するようにしてもよい。
【発明を実施するための最良の形態】
【0015】
以下、本発明の実施形態の一例について図面に基づき詳細に説明する。本発明の実施形態に係るゲーム装置は、例えば家庭用ゲーム機、携帯用ゲーム機、携帯電話機、携帯情報端末(PDA)又はパーソナルコンピュータ等によって実現される。ここでは、本発明の実施形態に係るゲーム装置を家庭用ゲーム機によって実現する場合について説明する。
【0016】
図1は、本発明の実施形態に係るゲーム装置の全体構成を示す図である。図1に示すゲーム装置10は、家庭用ゲーム機11、DVD−ROM25、メモリカード28、モニタ18、スピーカ22を含んでいる。DVD−ROM25及びメモリカード28は情報記憶媒体であり、家庭用ゲーム機11に装着される。モニタ18及びスピーカ22は家庭用ゲーム機11に接続される。モニタ18としては例えば家庭用テレビ受像機が用いられる。スピーカ22としては例えば家庭用テレビ受像機に内蔵されたスピーカが用いられる。
【0017】
家庭用ゲーム機11は公知のコンピュータゲームシステムである。家庭用ゲーム機11は、バス12、マイクロプロセッサ14、画像処理部16、音声処理部20、DVD−ROM再生部24、主記憶26、入出力処理部30及びコントローラ32を含んでいる。コントローラ32以外の構成要素は家庭用ゲーム機11の筐体内に収容される。
【0018】
バス12はアドレス及びデータを家庭用ゲーム機11の各部でやり取りするためのものである。マイクロプロセッサ14、画像処理部16、主記憶26及び入出力処理部30は、バス12によって相互データ通信可能に接続される。
【0019】
マイクロプロセッサ14は、図示しないROMに格納されるオペレーティングシステム、DVD−ROM25から読み出されるプログラム及びデータや、メモリカード28から読み出されるデータに基づいて、家庭用ゲーム機11の各部を制御する。主記憶26は、例えばRAMを含んでいる。主記憶26には、DVD−ROM25又はメモリカード28から読み出されたプログラムやデータが必要に応じて書き込まれる。主記憶26はマイクロプロセッサ14の作業用としても用いられる。
【0020】
画像処理部16はVRAMを含んでいる。画像処理部16は、マイクロプロセッサ14から送られる画像データに基づいてVRAM上にゲーム画面を描画する。そして、画像処理部16は、そのゲーム画面をビデオ信号に変換して所定のタイミングでモニタ18に出力する。
【0021】
入出力処理部30は、マイクロプロセッサ14が音声処理部20、DVD−ROM再生部24、メモリカード28及びコントローラ32にアクセスするためのインタフェースである。入出力処理部30には、音声処理部20、DVD−ROM再生部24、メモリカード28及びコントローラ32が接続される。
【0022】
音声処理部20はサウンドバッファを含んでいる。サウンドバッファには、DVD−ROM25から読み出されたゲーム音楽、ゲーム効果音、メッセージ等の各種音声データが記憶される。音声処理部20は、サウンドバッファに記憶された各種音声データを再生してスピーカ22から出力する。
【0023】
DVD−ROM再生部24はマイクロプロセッサ14からの指示に従ってDVD−ROM25に記録されたプログラムを読み取る。なお、ここではプログラムを家庭用ゲーム機11に供給するためにDVD−ROM25を用いることとするが、CD−ROMやROMカード等、他のあらゆる情報記憶媒体を用いるようにしてもよい。また、例えばインターネット等の通信ネットワークを介して遠隔地からプログラムを家庭用ゲーム機11に供給するようにしてもよい。
【0024】
メモリカード28は不揮発性メモリ(例えばEEPROM等)を含んでいる。家庭用ゲーム機11はメモリカード28を装着するためのメモリカードスロットを複数備えている。メモリーカード28には例えばセーブデータなどの各種ゲームデータが記憶される。
【0025】
コントローラ32は、ユーザが各種ゲーム操作の入力をするための汎用操作入力手段である。入出力処理部30は一定周期毎(例えば1/60秒毎)にコントローラ32の各部の状態をスキャンする。そして、入出力処理部30はそのスキャン結果を表す操作信号をバス12を介してマイクロプロセッサ14に渡す。マイクロプロセッサ14はその操作信号に基づいてユーザのゲーム操作を判定する。家庭用ゲーム機11には複数のコントローラ32を接続することが可能である。マイクロプロセッサ14は各コントローラ32から入力される操作信号に基づいてゲーム制御を実行する。
【0026】
上記の構成を備えるゲーム装置10では、DVD−ROM25から読み出されたゲームプログラムが実行されることによって、例えばサッカーゲームが実行される。
【0027】
ゲーム装置10の主記憶26には仮想3次元空間が構築される。図2は仮想3次元空間40の一例を示している。図2に示すように、仮想3次元空間40にはサッカーの試合会場が形成される。すなわち、仮想3次元空間40には、サッカーのフィールドを表すフィールドオブジェクト42と、ゴールを表すゴールオブジェクト44と、観客席を表す観客席オブジェクト46と、が配置される。フィールドオブジェクト42はXwZw平面に平行に配置される。
【0028】
また、仮想3次元空間40には仮想カメラ48が配置される。この仮想カメラ48から仮想3次元空間40を見た様子を表すゲーム画面がモニタ18に表示される。すなわち、視点48aから視線方向48bを見た場合の仮想3次元空間40の様子がゲーム画面に表される。
【0029】
図2では省略されているが、サッカー選手を表す選手オブジェクトと、サッカーボールを表すボールオブジェクトと、がフィールドオブジェクト42上に配置される。ユーザはコントローラ32を用いて操作対象の選手オブジェクトを操作し、対戦相手チームのゴールオブジェクト44内にボールオブジェクトを移動させること(得点イベントを発生させること)を目指す。
【0030】
また図2では省略されているが、観客を示す観客オブジェクトが観客席オブジェクト46上に配置される。観客席オブジェクト46上に配置される観客オブジェクトのうちの一部の観客オブジェクトは発炎筒を持っている。図3は、発炎筒52を持った観客オブジェクト50の一例を示している。
【0031】
発炎筒52から生じる煙は、いわゆるパーティクルシステムを用いて表現される。すなわち、所定の規則に従って発生・移動・消滅するパーティクル(粒子)の集合によって、発炎筒52から生じる煙が表現される。図4は、発炎筒52から生じる煙を表現するためのパーティクル54について説明するための図である。
【0032】
パーティクル54は所定の発生源に発生する。パーティクル54の色は煙の色(例えば白色や灰色)に設定される。パーティクル54の発生源は発炎筒52の先端52aに設定される。発生源には、所定時間(例えば1/60秒)ごとに所定数のパーティクル54が発生する。なお、所定時間ごとに発生するパーティクル54の数はランダムに決定されるようにしてもよい。
【0033】
パーティクル54の位置は、発生源(発炎筒52の先端52a)を原点とするローカル座標系(XYZ座標系)で管理される。パーティクル54は発生源からY軸方向に向けて拡散される。なお以下では、XYZ座標系のことを「パーティクル座標系」と記載する。
【0034】
また、各パーティクル54にはα値が設定される。α値はパーティクル54の透過度を示す情報である。α値は例えば0〜255の整数値をとる。パーティクル54のα値が0である場合、そのパーティクル54は完全に透明になる。パーティクル54のα値が255である場合、そのパーティクル54は完全に不透明になる。本実施の形態の場合、発生源に発生したパーティクル54のα値は所定の初期値(例えば255)に設定される。パーティクル54に設定されたα値は、そのパーティクル54が発生源に発生してからの経過時間に応じて徐々に減少していく。すなわち、パーティクル54の透過度はそのパーティクル54が発生してからの経過時間に比例して徐々に増していく。このため、発炎筒52から生じる煙は上昇するにしたがって薄くなっていく。なお、パーティクル54のα値の初期値はランダムに決定されるようにしてもよい。
【0035】
また、各パーティクル54には寿命時間が設定される。すなわち、パーティクル54は発生してから所定時間(寿命時間)が経過すると消滅する。なお、パーティクル54の寿命時間はランダムに決定されるようにしてもよい。
【0036】
ところで、実際のサッカーの試合会場では、例えば得点が入った後や特別な試合の開始前において、多数の観客が焚いた発煙筒によって煙が濃く立ち込める場合がある。このため、サッカーゲームにおいても、煙が濃く立ち込める様子が表現することによって、サッカーゲームのリアリティを向上できる。
【0037】
多数の観客が焚いた発煙筒によって煙が濃く立ち込める様子が表現するための方法としては、発炎筒52を持った観客オブジェクト50を観客席オブジェクト46上に多数配置する方法が考えられる。しかし、発炎筒52から生じる煙をパーティクルシステムによって表現する場合には、各パーティクル54ごとに位置演算等を行う必要がある。発炎筒52を持った観客オブジェクト50を多数配置した場合にはパーティクル54の数も多くなるため、処理負荷が重くなってしまう。
【0038】
以下、煙が濃く立ち込める様子を処理負荷の軽減を図りつつ好適に表現するための技術について説明する。
【0039】
ゲーム装置10が実行する処理について説明する。図5及び図6はゲーム装置10が所定時間(本実施の形態では1/60秒)ごとに実行する処理のうち、本発明に関連するものを主として示すフロー図である。マイクロプロセッサ14はDVD−ROM25から読み出されたプログラムに従って、図5及び図6に示す処理を実行する。
【0040】
図5に示すように、まず、マイクロプロセッサ14は現在のゲーム場面が特定場面であるか否かを判定する(S101)。ここで、特定場面とは、多数の観客によって焚かれた発煙筒によって煙が濃く立ち込める様子を演出すべき場面である。例えば、特定場面は得点が入った後の場面である。また例えば、特定場面は、強豪チームの同士の試合や決勝戦などの特別の試合が開始される前の場面である。得点が入ったか否かは、主記憶26に記憶されるボールオブジェクトの位置に基づいて判定される。これから開始される試合が強豪チームの同士の試合であるか否かは、これから開始される試合に係る両チームの組み合わせが、あらかじめDVD−ROM25に記憶された所定の組み合わせ(強豪チーム同士の組み合わせ)であるか否かを判定することによって判定される。
【0041】
そして、マイクロプロセッサ14は、S101における判定結果に基づいて、パーティクル座標系のY軸方向に対応するワールド座標系(図2に示すXwYwZw座標系)の方向(基準拡散方向)を設定する。図7及び図8は基準拡散方向56の設定について説明するための図である。
【0042】
S101において現在のゲーム場面が特定場面でないと判定された場合、図7に示すように、マイクロプロセッサ14は基準拡散方向56をYw軸正方向に設定する(S102)。言い換えれば、マイクロプロセッサ14は、パーティクル座標系のY軸方向をワールド座標系のYw軸正方向に対応づける。この場合、仮想カメラ48の視線方向48bがYw軸負方向になる場合を除き、基準拡散方向56と、パーティクル54の発生源(発炎筒52の先端52a)から視点48aへの方向58と、の間の角度θaは0より大きくなる。
【0043】
一方、S101において現在のゲーム場面が特定場面であると判定された場合、図8に示すように、マイクロプロセッサ14(設定手段)は基準拡散方向56を、パーティクル54の発生源(発炎筒52の先端52a)から視点48aへの方向58に設定する(S103)。言い換えれば、マイクロプロセッサ14は、パーティクル座標系のY軸方向をワールド座標系の、パーティクル54の発生源から視点48aへの方向58に対応づける。この場合、基準拡散方向56と、パーティクル54の発生源から視点48aへの方向58と、の間の角度θaは0になる。
【0044】
S102又はS103の処理が実行された後、マイクロプロセッサ14(発生手段)は所定数のパーティクル54を発生源に新たに発生させる(S104)。
【0045】
ここで、S104以降の処理に関連するデータについて説明する。図9及び図10はS104以降の処理に関連するデータを示している。
【0046】
図9は、主記憶26に記憶されるパーティクル状態テーブルの一例について示している。パーティクル状態テーブルは、一の発生源から発生されるパーティクル54の状態を管理するためのデータである。このパーティクル状態テーブルは仮想3次元空間40に配置された各発炎筒52ごとに用意される。すなわち、仮想3次元空間40に発炎筒52が3つ配置される場合、パーティクル状態テーブルが3つ用意される。
【0047】
図9に示すように、パーティクル状態テーブルは「ID」、「色」、「α値」、「移動速度ベクトル」、「減速度」、「位置」、「残存時間カウンタ」フィールドを含む。「ID」にはパーティクル54のIDが格納される。「色」にはパーティクル54の色を示す情報が格納される。「α値」にはパーティクル54のα値が格納される。「移動速度ベクトル」にはパーティクル54の移動速度ベクトルが格納される。移動速度ベクトルはパーティクル座標系(XYZ座標系)で表される。「減速度」にはパーティクル54の減速度が格納される。減速度は、パーティクル54の移動速度を所定時間(本実施の形態では1/60秒)ごとにどれだけ減速させるかを示す情報である。「位置」にはパーティクル54の現在位置をパーティクル座標系(XYZ座標系)で表す位置座標が格納される。「残存時間カウンタ」には、パーティクル54が消滅するまでの残り時間を1/60秒単位で示す数値が格納される。パーティクル状態テーブルの1レコードは一つのパーティクル54に対応する。
【0048】
図10は、DVD−ROM25(移動速度情報記憶手段、透過度情報記憶手段)に記憶されるパーティクル制御データの一例を示している。図10に示すように、パーティクル制御データは、角度条件に、移動速度補正係数(移動速度情報)及びα値補正係数(透過度情報)を対応づけたデータである。ここで、角度条件は、基準拡散方向56と、パーティクル54の発生源から視点48aへの方向58と、の間の角度θa(図7参照)に関する条件である。また、移動速度補正係数はパーティクル54の移動速度を補正するための係数であり、α値補正係数はパーティクル54のα値を補正するための係数である。移動速度補正係数及びα値補正係数は0以上1以下の値をとる。図10に示すパーティクル制御データでは、上記角度θaが0より大きい場合の移動速度補正係数及びα値補正係数がともに1.0に設定されている。また、図10に示すパーティクル制御データでは、上記角度θaが0である場合の移動速度補正係数が0.7に設定され、α値補正係数が0.9に設定されている。
【0049】
S104の処理では、マイクロプロセッサ14は所定数のレコードをパーティクル状態テーブルに追加する。この場合、追加されるレコードの各フィールドに格納される内容は次のようになる。すなわち、「色」フィールドには所定色(例えば白又は灰色等)を示す情報が格納される。「α値」フィールドには所定値(例えば255)が格納される。「減速度」フィールドには、パーティクル54ごとに乱数に基づいて決定される減速度が格納される。「位置」フィールドには、発生源の位置座標、すなわちパーティクル座標系の原点座標が格納される。「残存時間カウンタ」フィールドには、パーティクル54の寿命時間を1/60秒単位で示す数値が格納される。
【0050】
また、「移動速度ベクトル」フィールドには、パーティクル54ごとに乱数に基づいて決定される移動速度ベクトルが格納される。図11は移動速度ベクトルの決定について説明するための図である。まず、マイクロプロセッサ14はパーティクル54の所定時間(本実施の形態では1/60秒)ごとのY軸方向への移動量Vyを決定する。このとき、移動量Vyは一定としてもよいし、乱数に基づいて決定されるようにしてもよい。また、マイクロプロセッサ14はパーティクル54の所定時間(本実施の形態では1/60秒)ごとのX軸,Z軸方向への移動量Vx,Vzを乱数に基づいて決定する。このとき、移動量Vx,Vzは移動量Vyよりも小さくなるように決定される。また、移動量Vx,Vzは、パーティクル54の移動方向と、Y軸方向と、の間の角度θbが所定の基準角度以下となるように決定される。そして、マイクロプロセッサ14は上記の移動量Vx,Vy,Vzを表すベクトルを合成することによって得られる移動速度ベクトルVを「移動速度ベクトル」フィールドに格納する。
【0051】
S104の処理が実行された後、マイクロプロセッサ14は各パーティクル54の残存時間カウンタの値を1減らす(S105)。すなわち、マイクロプロセッサ14はパーティクル状態テーブルの各レコードの「残存時間カウンタ」フィールドの値を1減らす。そして、マイクロプロセッサ14は残存時間カウンタの値が0になったパーティクル54を消滅させる(S106)。すなわち、マイクロプロセッサ14は「残存時間カウンタ」フィールドの値が0であるレコードをパーティクル状態テーブルから削除する。
【0052】
その後、マイクロプロセッサ14は各パーティクル54のα値を所定値だけ減らす(S107)。すなわち、マイクロプロセッサ14はパーティクル状態テーブルの各レコードの「α値」フィールドに格納されるα値を所定値だけ減少させる。
【0053】
その後、マイクロプロセッサ14は各パーティクル54の移動速度ベクトルを更新する(S108)。すなわち、マイクロプロセッサ14は、パーティクル状態テーブルの各レコードの「移動速度ベクトル」フィールドに格納される移動速度ベクトルを、そのレコードの「減速度」フィールドに格納される減速度に基づいて更新する。
【0054】
その後、マイクロプロセッサ14(移動速度制御手段)は、S102又はS103において設定された基準拡散方向56と、パーティクル54の発生源から視点48aへの方向58と、の間の角度θa(図7参照)に基づいて、各パーティクル54の移動速度ベクトルを補正する(S109)。すなわち、マイクロプロセッサ14は上記角度θaに対応する移動速度補正係数をパーティクル制御データから読み出す。また、マイクロプロセッサ14は各パーティクル54の移動速度ベクトルをパーティクル状態テーブルから読み出す。そして、マイクロプロセッサ14は各パーティクル54の移動速度ベクトルに対して移動速度補正係数を乗じることによって、各パーティクル54の補正移動速度ベクトルを取得する。
【0055】
本実施の形態では、上記角度θaが0より大きい場合の移動速度補正係数は1.0になっている(図10参照)。このため、基準拡散方向56がYw軸方向に設定された場合、各パーティクル54の補正移動速度は、パーティクル状態テーブルに保持された移動速度ベクトルが示す元々の移動速度に等しくなる。一方、上記角度θaが0である場合の移動速度補正係数は0.7になっている(図10参照)。このため、基準拡散方向56が、パーティクル54の発生源から視点48aへの方向58に設定された場合、各パーティクル54の補正移動速度は、パーティクル状態テーブルに保持された移動速度ベクトルが示す元々の移動速度よりも遅くなる。
【0056】
その後、マイクロプロセッサ14(拡散手段)は、各パーティクル54の位置を、S109で取得されたそのパーティクル54の補正移動速度ベクトルに基づいて更新する(S110)。すなわち、マイクロプロセッサ14はパーティクル状態テーブルの各レコードの「位置」フィールドに格納される位置座標をS109で取得された補正移動速度ベクトルに基づいて更新する。
【0057】
その後、マイクロプロセッサ14は各パーティクル54のワールド座標系における位置を取得する(S111)。すなわち、マイクロプロセッサ14は各パーティクル54のパーティクル座標系における位置座標をパーティクル状態テーブルから読み出す。そしてマイクロプロセッサ14は、その位置座標を、S102又はS103において設定された、パーティクル座標系のY軸方向とワールド座標系の方向との対応関係に基づいてパーティクル座標系からワールド座標系に変換する。
【0058】
その後、マイクロプロセッサ14(透過度制御手段)は、S102又はS103において設定された基準拡散方向56と、パーティクル54の発生源から視点48aへの方向58と、の間の角度θa(図7参照)に基づいて、各パーティクル54のα値を補正する(S112)。すなわち、マイクロプロセッサ14は上記角度θaに対応するα値補正係数をパーティクル制御データから読み出す。また、マイクロプロセッサ14は各パーティクル54のα値をパーティクル状態テーブルから読み出す。そして、マイクロプロセッサ14は各パーティクル54のα値に対してα値補正係数を乗じることによって、各パーティクル54の補正α値を取得する。
【0059】
本実施の形態では、上記角度θaが0より大きい場合のα値補正係数は1.0になっている(図10参照)。このため、基準拡散方向56がYw軸方向に設定された場合、各パーティクル54の補正α値は、パーティクル状態テーブルに保持された元々のα値に等しくなる。一方、上記角度θaが0である場合のα値補正係数は0.9になっている(図10参照)。このため、基準拡散方向56が、パーティクル54の発生源(発炎筒52の先端52a)から視点48aへの方向58に設定された場合、各パーティクル54の補正α値は、パーティクル状態テーブルに保持された元々のα値よりも小さくなる。すなわち、パーティクル54の透過度が高くなる。
【0060】
なお、以上に説明したS104〜S112の処理は、仮想3次元空間40に設定されたパーティクル54の発生源の各々について実行される。
【0061】
S112の処理が実行された後、マイクロプロセッサ14及び画像処理部16は、S111で取得された各パーティクル54のワールド座標系における位置と、S112で取得された各パーティクル54の補正α値と、に基づいて、ゲーム画面をVRAM上に生成する(S113)。すなわち、マイクロプロセッサ14及び画像処理部16は仮想カメラ48から仮想3次元空間40を見た様子を表す画像をVRAM上に描画する。なお、主記憶26には仮想3次元空間40に配置された選手オブジェクトやボールオブジェクトの位置等が記憶されており、上記画像の描画はそれらの情報にも基づいて実行される。VRAM上に生成されたゲーム画面は所定のタイミングでモニタ18に表示出力される。
【0062】
ここで、発炎筒52を持った観客オブジェクト50が仮想カメラ48に対向するように配置されている場合のゲーム画面を想定する。図12は、ゲーム場面が特定場面でない場合にゲーム画面に表される煙60を表している。図13は、ゲーム場面が特定場面である場合にゲーム画面に表される煙60を表している。なお、実際のゲーム画面には観客オブジェクト50や発炎筒52も表示されるが、図12及び図13では省略されている。また、仮想3次元空間40には発炎筒52を持った観客オブジェクト50が複数配置されることによって、実際のゲーム画面には複数の煙60が表されるが、図12及び図13では一つの発炎筒52から生じる煙60にのみ着目している。また、図12及び図13において斜線部分は煙が比較的濃く表れる部分を示している。
【0063】
図12及び図13に示すように、ゲーム装置10では、ゲーム場面が特定場面でない場合とゲーム場面が特定場面である場合とで、一つの発炎筒52から生じる煙60のゲーム画面における広がり方が変わる。
【0064】
より具体的には、ゲーム場面が特定場面でない場合には、煙60を表現するためのパーティクル54の基準拡散方向56がYw軸方向に設定される(図5のS102参照)。すなわち、ゲーム場面が特定場面でない場合には、発生源に発生したパーティクル54が発生源からYw軸方向に向かって拡散される。その結果、図12に示すように、発炎筒52の先端52aから上方に昇るような煙60がゲーム画面に表される。すなわち、一つの発炎筒52から生じた煙60の形状は、発炎筒52の先端52aから上方に離れるにつれて徐々に左右に広がるような形状になる。この場合、パーティクル54のα値は、パーティクル54が上方に移動するにつれてパーティクル54の透明度が高くなるように変化する。その結果、煙60は発炎筒52の先端52aに比較的近い部分(斜線部分)だけが濃くなる。
【0065】
一方、ゲーム画面が特定場面である場合には、煙60を表現するためのパーティクル54の基準拡散方向56が、発生源(発炎筒52の先端52a)から視点48aへの方向58に設定される(図5のS103参照)。すなわち、ゲーム画面が特定場面である場合には、発生源に発生したパーティクル54が発生源から仮想カメラ48に向かって拡散される。その結果、図13に示すように、発炎筒52の先端52aを中心として上下左右斜めに広がるような煙60がゲーム画面が表される。すなわち、一つの発炎筒52から生じた煙60の形状は、発炎筒52の先端52aから上下左右斜めに広がるような形状になる。この場合、図12に示すゲーム画面に比べて、煙60は比較的広範囲にわたって表されるようになる。また、この場合、煙60は全体的に濃くなる。すなわち、図12に示すゲーム画面に比べて、煙60の濃い部分(斜線部分)の面積が広くなる。
【0066】
仮想3次元空間40に発生されるパーティクル54の数は図12に示すゲーム画面が表示される場合と図13に示すゲーム画面が表示される場合とで変わらない。このため、図12に示すゲーム画面が表示される場合と図13に示すゲーム画面が表示される場合とで処理負荷は変わらない。サッカーゲームのように複数のオブジェクト(選手オブジェクトやボールオブジェクト)を同時に制御するゲームでは、スタジアム等の表現に関する処理の負荷はできる限り軽減する必要がある。この点、本実施の形態によれば、処理負荷の増大を抑止しつつ、煙が濃く立ち込める様子を表現できるようになる。
【0067】
以上説明したように、ゲーム装置10によれば、特定の場面において煙が比較的広範囲にわたって濃く立ち込める様子を処理負荷の軽減を図りつつ表現できるようになる。
【0068】
ところで、煙が濃く立ち込める様子を表現するための方法としては、濃い煙を発生させる発炎筒52のデータを別途用意しておき、ゲーム状況に応じて、発炎筒52のデータを切り替えることも考えられる。しかし、この方法では、発炎筒52のデータを2つ用意しなければならず、ゲーム開発の作業量やゲームのデータ量が増加してしまう。この点、ゲーム装置10によれば、発炎筒52のデータを複数用意する必要はなく、上記のような不都合も生じない。
【0069】
また、ゲーム装置10では、パーティクル54の位置は発生源を原点としたローカル座標系(パーティクル座標系)で管理される。そしてゲーム装置10では、パーティクル座標系のY軸方向に対応するワールド座標系の方向を変えることによって、パーティクル54の基準拡散方向56が変わるようになっている。すなわち、ゲーム装置10では、ゲーム場面が特定場面でない場合とゲーム画面が特定場面である場合とでパーティクル座標系のY軸方向に対応するワールド座標系の方向を変えるだけですむようになっている。このため、ゲーム装置10では、ゲーム場面が特定場面でない場合とゲーム画面が特定場面である場合とでパーティクル54の位置演算処理を共通化できるようになっている。
【0070】
ところで、パーティクル54の基準拡散方向56が発生源から視点48aへの方向58に設定された場合、パーティクル54の基準拡散方向56がYw軸方向に設定された場合と同様の速さでパーティクル54が移動してしまうと、ゲーム画面において、煙が奥から手前に向かって噴き出てくるかのように表されてしまう場合がある。その結果、ユーザに不自然な印象を与えてしまう場合がある。この点、ゲーム装置10では、パーティクル制御データ(図10参照)に基づいてパーティクル54の移動速度ベクトルが補正される(図6のS109参照)。具体的には、パーティクル54の基準拡散方向56が発生源から視点48aへの方向58に設定された場合には、パーティクル54の移動速度が全体的に遅くなるように補正される。その結果、上記のような不具合が発生しないように図られている。
【0071】
また、パーティクル54の基準拡散方向56が発生源から視点48aへの方向58に設定された場合、パーティクル54は発生源から視点48aに向かって拡散される。このため、パーティクル54の基準拡散方向56がYw軸方向に設定された場合と同様にパーティクル54のα値を設定してしまうと、煙が全体的に濃く表されすぎてしまうおそれがある。この点、ゲーム装置10では、パーティクル制御データ(図10参照)に基づいてパーティクル54のα値が補正される(図16のS112参照)。具体的には、パーティクル54の基準拡散方向56が発生源から視点48aへの方向58に設定された場合には、パーティクル54のα値が多少小さくなるように補正される。言い換えれば、パーティクル54の基準拡散方向56が発生源から視点48aへの方向58に設定された場合には、煙の濃さが多少薄く表示されるように補正される。その結果、上記のような不具合が発生しないように図られている。
【0072】
なお、本発明は以上に説明した実施の形態に限定されるものではない。
【0073】
例えば、以上では、図5のS103において、基準拡散方向56と、パーティクル54の発生源から視点48aへの方向58と、の間の角度θaが0になるように、基準拡散方向56が設定されると説明した。しかしながら、図5のS103では、基準拡散方向56と、パーティクル54の発生源から視点48aへの方向58と、の間の角度θaが所定の基準角度以下になるように、基準拡散方向56が設定されるようにしてもよい。この場合、0°に近い角度(例えば5°)が基準角度として設定されるようにすればよい。また、この場合のパーティクル制御データ(図10参照)では、角度条件「θa>基準角度」に対応する移動速度補正係数が1.0に設定され、角度条件「θa≦基準角度」に対応する移動速度補正係数が0.7に設定されるようにすればよい。また、角度条件「θa>基準角度」に対応するα値補正係数が1.0に設定され、角度条件「θa≦基準角度」に対応するα値補正係数が0.9に設定されるようにすればよい。こうしても、基準角度として不当に大きい角度が設定されない限り、ゲーム画面が特定場面である場合において、一つの発炎筒52から生じる煙60が比較的広範囲にわたって表示されるようになり、かつ、煙60の濃い部分の面積も広くなる。すなわち、特定の場面において煙が比較的広範囲にわたって濃く立ち込める様子を処理負荷の軽減を図りつつ表現できるようになる。
【0074】
また例えば、発炎筒52の密集度が所定の基準密集度よりも低い場合にのみ、パーティクル54の基準拡散方向56を発生源から視点48aへの方向58に設定するようにしてもよい。発炎筒52の密集度は、例えば、一の発炎筒52と、その発炎筒52に最も近い発炎筒52と、の間の距離によって判断される。具体的には、上記距離が所定の基準距離より長い場合には、発炎筒52の密集度が所定の基準密集度よりも低いと判断される。一方、上記距離が所定の基準距離以下である場合には、発炎筒52の密集度が所定の基準密集度以上であると判断される。発炎筒52の密集度が高い場合には、あえてパーティクル54の基準拡散方向56を発生源から視点48aへの方向58に設定しなくても、煙が濃く立ち込める様子がゲーム画面に表されると考えられる。このため、発炎筒52の密集度が高い場合には、発炎筒52の密集度が低い場合に比べて、パーティクル54の基準拡散方向56を発生源から視点48aへの方向58に設定する必要性が薄い。この点、以上のようにすれば、パーティクル54の基準拡散方向56を発生源から視点48aへの方向58に設定する必要性が高い場合にのみ、パーティクル54の基準拡散方向56が発生源から視点48aへの方向58に設定されるようになる。
【0075】
また例えば、ゲーム装置10で実行されるゲームはサッカーゲーム以外のゲームであってもよい。また、本発明は、煙以外の不定形の表示物(例えば霧等)が濃く立ち込める様子を表現する場合にも用いることができる。
【0076】
また例えば、以上の説明では、プログラムを情報記憶媒体たるDVD−ROM25から家庭用ゲーム機11に供給するようにしたが、通信ネットワークを介してプログラムを家庭等に配信するようにしてもよい。図14は、通信ネットワークを用いたプログラム配信システムの全体構成を示す図である。図14に基づいて本発明に係るプログラム配信方法を説明する。図14に示すように、このプログラム配信システム100は、ゲームデータベース102、サーバ104、通信ネットワーク106、パソコン108、家庭用ゲーム機110、PDA(携帯情報端末)112を含んでいる。このうち、ゲームデータベース102とサーバ104とによりプログラム配信装置114が構成される。通信ネットワーク106は、例えばインターネットやケーブルテレビネットワークを含んで構成されている。このシステムでは、ゲームデータベース(情報記憶媒体)102に、DVD−ROM25の記憶内容と同様のプログラムが記憶されている。そして、パソコン108、家庭用ゲーム機110又はPDA112等を用いて需要者がゲーム配信要求をすることにより、それが通信ネットワーク106を介してサーバ104に伝えられる。そして、サーバ104はゲーム配信要求に応じてゲームデータベース102からプログラムを読み出し、それをパソコン108、家庭用ゲーム機110、PDA112等、ゲーム配信要求元に送信する。ここではゲーム配信要求に応じてゲーム配信するようにしたが、サーバ104から一方的に送信するようにしてもよい。また、必ずしも一度にゲームの実現に必要な全てのプログラムを配信(一括配信)する必要はなく、ゲームの局面に応じて必要な部分を配信(分割配信)するようにしてもよい。このように通信ネットワーク106を介してゲーム配信するようにすれば、プログラムを需要者は容易に入手することができるようになる。
【図面の簡単な説明】
【0077】
【図1】本実施の形態に係るゲーム装置のハードウェア構成を示す図である。
【図2】仮想3次元空間の一例を示す図である。
【図3】発炎筒を持った観客オブジェクトの一例を示す図である。
【図4】煙を表現するためのパーティクルについて説明するための図である。
【図5】ゲーム装置で実行される処理を示すフロー図である。
【図6】ゲーム装置で実行される処理を示すフロー図である。
【図7】基準拡散方向について説明するための図である。
【図8】基準拡散方向について説明するための図である。
【図9】パーティクル状態テーブルの一例を示す図である。
【図10】パーティクル制御データの一例を示す図である。
【図11】パーティクルの移動速度ベクトルについて説明するための図である。
【図12】ゲーム場面が特定場面でない場合のゲーム画面に表される煙の一例を示す図である。
【図13】ゲーム場面が特定場面である場合のゲーム画面に表される煙の一例を示す図である。
【図14】本発明の他の実施形態に係るプログラム配信システムの全体構成を示す図である。
【符号の説明】
【0078】
10 ゲーム装置、11,110 家庭用ゲーム機、12 バス、14 マイクロプロセッサ、16 画像処理部、18 モニタ、20 音声処理部、22 スピーカ、24 DVD−ROM再生部、25 DVD−ROM、26 主記憶、28 メモリカード、30 入出力処理部、32 コントローラ、40 仮想3次元空間、42 フィールドオブジェクト、44 ゴールオブジェクト、46 観客席オブジェクト、48 仮想カメラ、48a 視点、48b 視線方向、50 観客オブジェクト、52 発炎筒、54 パーティクル、56 基準拡散方向、60 煙、100 プログラム配信システム、102 ゲームデータベース、104 サーバ、106 通信ネットワーク、108 パソコン、112 携帯情報端末(PDA)、114 プログラム配信装置。
【特許請求の範囲】
【請求項1】
仮想3次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置において、
前記仮想3次元空間内に設定される発生源に複数の粒子を発生させる発生手段と、
前記発生源に発生された前記複数の粒子を基準拡散方向に向けて拡散させる拡散手段と、
前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定する設定手段と、
を含むことを特徴とするゲーム装置。
【請求項2】
請求項1に記載のゲーム装置において、
前記設定手段は、前記基準拡散方向と、前記発生源から前記視点への方向と、の間の角度を所定の基準角度以下に設定することを特徴とするゲーム装置。
【請求項3】
請求項1又は2に記載のゲーム装置において、
前記拡散手段は、
角度に関する角度条件に対応づけて、前記複数の粒子の移動速度に関する移動速度情報を記憶する移動速度情報記憶手段と、
前記基準拡散方向と、前記発生源から前記視点への方向と、の間の角度が満足する前記角度条件に対応づけて記憶される前記移動速度情報に基づいて、前記複数の粒子の各々の移動速度を制御する移動速度制御手段と、を含む、
ことを特徴とするゲーム装置。
【請求項4】
請求項1乃至3のいずれかに記載のゲーム装置において、
前記拡散手段は、
角度に関する角度条件に対応づけて、前記複数の粒子の透過度に関する透過度情報を記憶する透過度情報記憶手段と、
前記基準拡散方向と、前記発生源から前記視点への方向と、の間の角度が満足する前記角度条件に対応づけて記憶される前記透過度情報に基づいて、前記複数の粒子の各々の透過度を制御させる透過度制御手段と、を含む、
ことを特徴とするゲーム装置。
【請求項5】
請求項1乃至4のいずれかに記載のゲーム装置において、
前記仮想3次元空間には前記発生源が複数設定され、
前記設定手段は、前記発生源の密集度が所定の基準密集度以下であるか否かを判定する手段を含み、前記発生源の密集度が前記所定の基準密集度以下である場合、前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定する、
ことを特徴とするゲーム装置。
【請求項6】
仮想3次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置の制御方法において、
前記仮想3次元空間内に設定される発生源に複数の粒子を発生させるための発生ステップと、
前記発生源に発生された前記複数の粒子を基準拡散方向に向けて拡散させるための拡散ステップと、
前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定するための設定ステップと、
を含むことを特徴とするゲーム装置の制御方法。
【請求項7】
仮想3次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置としてコンピュータを機能させるためのプログラムであって、
前記仮想3次元空間内に設定される発生源に複数の粒子を発生させる発生手段、
前記発生源に発生された前記複数の粒子を基準拡散方向に向けて拡散させる拡散手段、及び、
前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定する設定手段、
として前記コンピュータを機能させるためのプログラム。
【請求項1】
仮想3次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置において、
前記仮想3次元空間内に設定される発生源に複数の粒子を発生させる発生手段と、
前記発生源に発生された前記複数の粒子を基準拡散方向に向けて拡散させる拡散手段と、
前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定する設定手段と、
を含むことを特徴とするゲーム装置。
【請求項2】
請求項1に記載のゲーム装置において、
前記設定手段は、前記基準拡散方向と、前記発生源から前記視点への方向と、の間の角度を所定の基準角度以下に設定することを特徴とするゲーム装置。
【請求項3】
請求項1又は2に記載のゲーム装置において、
前記拡散手段は、
角度に関する角度条件に対応づけて、前記複数の粒子の移動速度に関する移動速度情報を記憶する移動速度情報記憶手段と、
前記基準拡散方向と、前記発生源から前記視点への方向と、の間の角度が満足する前記角度条件に対応づけて記憶される前記移動速度情報に基づいて、前記複数の粒子の各々の移動速度を制御する移動速度制御手段と、を含む、
ことを特徴とするゲーム装置。
【請求項4】
請求項1乃至3のいずれかに記載のゲーム装置において、
前記拡散手段は、
角度に関する角度条件に対応づけて、前記複数の粒子の透過度に関する透過度情報を記憶する透過度情報記憶手段と、
前記基準拡散方向と、前記発生源から前記視点への方向と、の間の角度が満足する前記角度条件に対応づけて記憶される前記透過度情報に基づいて、前記複数の粒子の各々の透過度を制御させる透過度制御手段と、を含む、
ことを特徴とするゲーム装置。
【請求項5】
請求項1乃至4のいずれかに記載のゲーム装置において、
前記仮想3次元空間には前記発生源が複数設定され、
前記設定手段は、前記発生源の密集度が所定の基準密集度以下であるか否かを判定する手段を含み、前記発生源の密集度が前記所定の基準密集度以下である場合、前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定する、
ことを特徴とするゲーム装置。
【請求項6】
仮想3次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置の制御方法において、
前記仮想3次元空間内に設定される発生源に複数の粒子を発生させるための発生ステップと、
前記発生源に発生された前記複数の粒子を基準拡散方向に向けて拡散させるための拡散ステップと、
前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定するための設定ステップと、
を含むことを特徴とするゲーム装置の制御方法。
【請求項7】
仮想3次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置としてコンピュータを機能させるためのプログラムであって、
前記仮想3次元空間内に設定される発生源に複数の粒子を発生させる発生手段、
前記発生源に発生された前記複数の粒子を基準拡散方向に向けて拡散させる拡散手段、及び、
前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定する設定手段、
として前記コンピュータを機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2008−295786(P2008−295786A)
【公開日】平成20年12月11日(2008.12.11)
【国際特許分類】
【出願番号】特願2007−145839(P2007−145839)
【出願日】平成19年5月31日(2007.5.31)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】
【公開日】平成20年12月11日(2008.12.11)
【国際特許分類】
【出願日】平成19年5月31日(2007.5.31)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】
[ Back to top ]