(57)【要約】【課題】例えば煙や霧等の不定形の表示物が濃く立ち込める様子を表現する際の処理負荷の軽減を図ることが可能になるゲーム装置を提供すること。【解決手段】本発明では、仮想３次元空間４０内に設定される発生源（発炎筒の先端５２ａ）に複数の粒子を発生される。発生源（発炎筒の先端５２ａ）に発生された複数の粒子を基準拡散方向５６に向けて拡散される。基準拡散方向５６は発生源（発炎筒の先端５２ａ）から視点４８ａへの方向５８に基づいて設定される。【選択図】図８
2008295786.tif 000002
【特許請求の範囲】
【請求項１】
仮想３次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置において、
前記仮想３次元空間内に設定される発生源に複数の粒子を発生させる発生手段と、
前記発生源に発生された前記複数の粒子を基準拡散方向に向けて拡散させる拡散手段と、
前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定する設定手段と、
を含むことを特徴とするゲーム装置。
【請求項２】
請求項１に記載のゲーム装置において、
前記設定手段は、前記基準拡散方向と、前記発生源から前記視点への方向と、の間の角度を所定の基準角度以下に設定することを特徴とするゲーム装置。
【請求項３】
請求項１又は２に記載のゲーム装置において、
前記拡散手段は、
角度に関する角度条件に対応づけて、前記複数の粒子の移動速度に関する移動速度情報を記憶する移動速度情報記憶手段と、
前記基準拡散方向と、前記発生源から前記視点への方向と、の間の角度が満足する前記角度条件に対応づけて記憶される前記移動速度情報に基づいて、前記複数の粒子の各々の移動速度を制御する移動速度制御手段と、を含む、
ことを特徴とするゲーム装置。
【請求項４】
請求項１乃至３のいずれかに記載のゲーム装置において、
前記拡散手段は、
角度に関する角度条件に対応づけて、前記複数の粒子の透過度に関する透過度情報を記憶する透過度情報記憶手段と、
前記基準拡散方向と、前記発生源から前記視点への方向と、の間の角度が満足する前記角度条件に対応づけて記憶される前記透過度情報に基づいて、前記複数の粒子の各々の透過度を制御させる透過度制御手段と、を含む、
ことを特徴とするゲーム装置。
【請求項５】
請求項１乃至４のいずれかに記載のゲーム装置において、
前記仮想３次元空間には前記発生源が複数設定され、
前記設定手段は、前記発生源の密集度が所定の基準密集度以下であるか否かを判定する手段を含み、前記発生源の密集度が前記所定の基準密集度以下である場合、前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定する、
ことを特徴とするゲーム装置。
【請求項６】
仮想３次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置の制御方法において、
前記仮想３次元空間内に設定される発生源に複数の粒子を発生させるための発生ステップと、
前記発生源に発生された前記複数の粒子を基準拡散方向に向けて拡散させるための拡散ステップと、
前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定するための設定ステップと、
を含むことを特徴とするゲーム装置の制御方法。
【請求項７】
仮想３次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置としてコンピュータを機能させるためのプログラムであって、
前記仮想３次元空間内に設定される発生源に複数の粒子を発生させる発生手段、
前記発生源に発生された前記複数の粒子を基準拡散方向に向けて拡散させる拡散手段、及び、
前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定する設定手段、
として前記コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はゲーム装置、ゲーム装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
仮想３次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置が知られている。また、このようなゲーム装置で用いられる技術として、いわゆるパーティクルシステムが知られている。パーティクルシステムは、所定の法則に従って仮想３次元空間に発生され、拡散される多数のパーティクル（粒子）の集合によって、例えば煙や炎等の不定形の表示物を表現する技術である。このような技術は、例えば、サッカーゲームを実現するゲーム装置において、観客オブジェクトが持つ発炎筒から生じる煙を表現する場合に用いられる。
【特許文献１】特開２００５−０９２７５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、現実のサッカーの試合会場では、例えば強豪チーム同士の試合の開始前において、多数の観客が発炎筒を焚いたことによって煙が濃く立ち込める場合がある。このため、上記のようなサッカーゲームでも、煙が濃く立ち込める様子を表現することによって、サッカーゲームのリアリティを向上することができる。
【０００４】
煙が濃く立ち込める様子を表現するための方法としては、発炎筒を持った観客オブジェクトを仮想３次元空間に多数配置する方法が考えられる。しかしながら、発炎筒から生じる煙をパーティクルシステムによって表現する場合には、各パーティクルごとに位置演算等を行う必要がある。発炎筒を持った観客オブジェクトを多数配置した場合には、パーティクルの数も多くなるため、処理負荷が重くなってしまう。
【０００５】
本発明は上記課題に鑑みてなされたものであって、その目的は、例えば煙や霧等の不定形の表示物が濃く立ち込める様子を表現する際の処理負荷の軽減を図ることが可能になるゲーム装置、ゲーム装置の制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係るゲーム装置は、仮想３次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置において、前記仮想３次元空間内に設定される発生源に複数の粒子を発生させる発生手段と、前記発生源に発生された前記複数の粒子を基準拡散方向に向けて拡散させる拡散手段と、前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定する設定手段と、を含むことを特徴とする。
【０００７】
また、本発明に係るゲーム装置の制御方法は、仮想３次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置の制御方法において、前記仮想３次元空間内に設定される発生源に複数の粒子を発生させるための発生ステップと、前記発生源に発生された前記複数の粒子を基準拡散方向に向けて拡散させるための拡散ステップと、前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定するための設定ステップと、を含むことを特徴とする。
【０００８】
また、本発明に係るプログラムは、仮想３次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置として、家庭用ゲーム機、携帯用ゲーム機、業務用ゲーム機、携帯電話機、携帯情報端末（ＰＤＡ）やパーソナルコンピュータなどのコンピュータを機能させるためのプログラムであって、前記仮想３次元空間内に設定される発生源に複数の粒子を発生させる発生手段、前記発生源に発生された前記複数の粒子を基準拡散方向に向けて拡散させる拡散手段、及び、前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定する設定手段、として前記コンピュータを機能させるためのプログラムである。
【０００９】
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。また、本発明に係るプログラム配信装置は、上記プログラムを記録した情報記憶媒体を備え、当該情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信装置である。また、本発明に係るプログラム配信方法は、上記プログラムを記録した情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信方法である。
【００１０】
本発明は仮想３次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置に関するものである。本発明では、仮想３次元空間内に設定される発生源に複数の粒子が発生される。発生源に発生された複数の粒子が基準拡散方向に向けて拡散される。基準拡散方向が発生源から視点への方向に基づいて設定される。本発明によれば、例えば煙や霧等の不定形の表示物が濃く立ち込める様子を表現する際の処理負荷の軽減を図ることが可能になる。
【００１１】
また、本発明の一態様では、前記設定手段は、前記基準拡散方向と、前記発生源から前記視点への方向と、の間の角度を所定の基準角度以下に設定するようにしてもよい。
【００１２】
また、本発明の一態様では、前記拡散手段は、角度に関する角度条件に対応づけて、前記複数の粒子の移動速度に関する移動速度情報を記憶する移動速度情報記憶手段と、前記基準拡散方向と、前記発生源から前記視点への方向と、の間の角度が満足する前記角度条件に対応づけて記憶される前記移動速度情報に基づいて、前記複数の粒子の各々の移動速度を制御する移動速度制御手段と、を含むようにしてもよい。
【００１３】
また、本発明の一態様では、前記拡散手段は、角度に関する角度条件に対応づけて、前記複数の粒子の透過度に関する透過度情報を記憶する透過度情報記憶手段と、前記基準拡散方向と、前記発生源から前記視点への方向と、の間の角度が満足する前記角度条件に対応づけて記憶される前記透過度情報に基づいて、前記複数の粒子の各々の透過度を制御させる透過度制御手段と、を含むようにしてもよい。
【００１４】
また、本発明の一態様では、前記仮想３次元空間には前記発生源が複数設定され、前記設定手段は、前記発生源の密集度が所定の基準密集度以下であるか否かを判定する手段を含み、前記発生源の密集度が前記所定の基準密集度以下である場合、前記発生源から前記視点への方向に基づいて前記基準拡散方向を設定するようにしてもよい。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施形態の一例について図面に基づき詳細に説明する。本発明の実施形態に係るゲーム装置は、例えば家庭用ゲーム機、携帯用ゲーム機、携帯電話機、携帯情報端末（ＰＤＡ）又はパーソナルコンピュータ等によって実現される。ここでは、本発明の実施形態に係るゲーム装置を家庭用ゲーム機によって実現する場合について説明する。
【００１６】
図１は、本発明の実施形態に係るゲーム装置の全体構成を示す図である。図１に示すゲーム装置１０は、家庭用ゲーム機１１、ＤＶＤ−ＲＯＭ２５、メモリカード２８、モニタ１８、スピーカ２２を含んでいる。ＤＶＤ−ＲＯＭ２５及びメモリカード２８は情報記憶媒体であり、家庭用ゲーム機１１に装着される。モニタ１８及びスピーカ２２は家庭用ゲーム機１１に接続される。モニタ１８としては例えば家庭用テレビ受像機が用いられる。スピーカ２２としては例えば家庭用テレビ受像機に内蔵されたスピーカが用いられる。
【００１７】
家庭用ゲーム機１１は公知のコンピュータゲームシステムである。家庭用ゲーム機１１は、バス１２、マイクロプロセッサ１４、画像処理部１６、音声処理部２０、ＤＶＤ−ＲＯＭ再生部２４、主記憶２６、入出力処理部３０及びコントローラ３２を含んでいる。コントローラ３２以外の構成要素は家庭用ゲーム機１１の筐体内に収容される。
【００１８】
バス１２はアドレス及びデータを家庭用ゲーム機１１の各部でやり取りするためのものである。マイクロプロセッサ１４、画像処理部１６、主記憶２６及び入出力処理部３０は、バス１２によって相互データ通信可能に接続される。
【００１９】
マイクロプロセッサ１４は、図示しないＲＯＭに格納されるオペレーティングシステム、ＤＶＤ−ＲＯＭ２５から読み出されるプログラム及びデータや、メモリカード２８から読み出されるデータに基づいて、家庭用ゲーム機１１の各部を制御する。主記憶２６は、例えばＲＡＭを含んでいる。主記憶２６には、ＤＶＤ−ＲＯＭ２５又はメモリカード２８から読み出されたプログラムやデータが必要に応じて書き込まれる。主記憶２６はマイクロプロセッサ１４の作業用としても用いられる。
【００２０】
画像処理部１６はＶＲＡＭを含んでいる。画像処理部１６は、マイクロプロセッサ１４から送られる画像データに基づいてＶＲＡＭ上にゲーム画面を描画する。そして、画像処理部１６は、そのゲーム画面をビデオ信号に変換して所定のタイミングでモニタ１８に出力する。
【００２１】
入出力処理部３０は、マイクロプロセッサ１４が音声処理部２０、ＤＶＤ−ＲＯＭ再生部２４、メモリカード２８及びコントローラ３２にアクセスするためのインタフェースである。入出力処理部３０には、音声処理部２０、ＤＶＤ−ＲＯＭ再生部２４、メモリカード２８及びコントローラ３２が接続される。
【００２２】
音声処理部２０はサウンドバッファを含んでいる。サウンドバッファには、ＤＶＤ−ＲＯＭ２５から読み出されたゲーム音楽、ゲーム効果音、メッセージ等の各種音声データが記憶される。音声処理部２０は、サウンドバッファに記憶された各種音声データを再生してスピーカ２２から出力する。
【００２３】
ＤＶＤ−ＲＯＭ再生部２４はマイクロプロセッサ１４からの指示に従ってＤＶＤ−ＲＯＭ２５に記録されたプログラムを読み取る。なお、ここではプログラムを家庭用ゲーム機１１に供給するためにＤＶＤ−ＲＯＭ２５を用いることとするが、ＣＤ−ＲＯＭやＲＯＭカード等、他のあらゆる情報記憶媒体を用いるようにしてもよい。また、例えばインターネット等の通信ネットワークを介して遠隔地からプログラムを家庭用ゲーム機１１に供給するようにしてもよい。
【００２４】
メモリカード２８は不揮発性メモリ（例えばＥＥＰＲＯＭ等）を含んでいる。家庭用ゲーム機１１はメモリカード２８を装着するためのメモリカードスロットを複数備えている。メモリーカード２８には例えばセーブデータなどの各種ゲームデータが記憶される。
【００２５】
コントローラ３２は、ユーザが各種ゲーム操作の入力をするための汎用操作入力手段である。入出力処理部３０は一定周期毎（例えば１／６０秒毎）にコントローラ３２の各部の状態をスキャンする。そして、入出力処理部３０はそのスキャン結果を表す操作信号をバス１２を介してマイクロプロセッサ１４に渡す。マイクロプロセッサ１４はその操作信号に基づいてユーザのゲーム操作を判定する。家庭用ゲーム機１１には複数のコントローラ３２を接続することが可能である。マイクロプロセッサ１４は各コントローラ３２から入力される操作信号に基づいてゲーム制御を実行する。
【００２６】
上記の構成を備えるゲーム装置１０では、ＤＶＤ−ＲＯＭ２５から読み出されたゲームプログラムが実行されることによって、例えばサッカーゲームが実行される。
【００２７】
ゲーム装置１０の主記憶２６には仮想３次元空間が構築される。図２は仮想３次元空間４０の一例を示している。図２に示すように、仮想３次元空間４０にはサッカーの試合会場が形成される。すなわち、仮想３次元空間４０には、サッカーのフィールドを表すフィールドオブジェクト４２と、ゴールを表すゴールオブジェクト４４と、観客席を表す観客席オブジェクト４６と、が配置される。フィールドオブジェクト４２はＸｗＺｗ平面に平行に配置される。
【００２８】
また、仮想３次元空間４０には仮想カメラ４８が配置される。この仮想カメラ４８から仮想３次元空間４０を見た様子を表すゲーム画面がモニタ１８に表示される。すなわち、視点４８ａから視線方向４８ｂを見た場合の仮想３次元空間４０の様子がゲーム画面に表される。
【００２９】
図２では省略されているが、サッカー選手を表す選手オブジェクトと、サッカーボールを表すボールオブジェクトと、がフィールドオブジェクト４２上に配置される。ユーザはコントローラ３２を用いて操作対象の選手オブジェクトを操作し、対戦相手チームのゴールオブジェクト４４内にボールオブジェクトを移動させること（得点イベントを発生させること）を目指す。
【００３０】
また図２では省略されているが、観客を示す観客オブジェクトが観客席オブジェクト４６上に配置される。観客席オブジェクト４６上に配置される観客オブジェクトのうちの一部の観客オブジェクトは発炎筒を持っている。図３は、発炎筒５２を持った観客オブジェクト５０の一例を示している。
【００３１】
発炎筒５２から生じる煙は、いわゆるパーティクルシステムを用いて表現される。すなわち、所定の規則に従って発生・移動・消滅するパーティクル（粒子）の集合によって、発炎筒５２から生じる煙が表現される。図４は、発炎筒５２から生じる煙を表現するためのパーティクル５４について説明するための図である。
【００３２】
パーティクル５４は所定の発生源に発生する。パーティクル５４の色は煙の色（例えば白色や灰色）に設定される。パーティクル５４の発生源は発炎筒５２の先端５２ａに設定される。発生源には、所定時間（例えば１／６０秒）ごとに所定数のパーティクル５４が発生する。なお、所定時間ごとに発生するパーティクル５４の数はランダムに決定されるようにしてもよい。
【００３３】
パーティクル５４の位置は、発生源（発炎筒５２の先端５２ａ）を原点とするローカル座標系（ＸＹＺ座標系）で管理される。パーティクル５４は発生源からＹ軸方向に向けて拡散される。なお以下では、ＸＹＺ座標系のことを「パーティクル座標系」と記載する。
【００３４】
また、各パーティクル５４にはα値が設定される。α値はパーティクル５４の透過度を示す情報である。α値は例えば０〜２５５の整数値をとる。パーティクル５４のα値が０である場合、そのパーティクル５４は完全に透明になる。パーティクル５４のα値が２５５である場合、そのパーティクル５４は完全に不透明になる。本実施の形態の場合、発生源に発生したパーティクル５４のα値は所定の初期値（例えば２５５）に設定される。パーティクル５４に設定されたα値は、そのパーティクル５４が発生源に発生してからの経過時間に応じて徐々に減少していく。すなわち、パーティクル５４の透過度はそのパーティクル５４が発生してからの経過時間に比例して徐々に増していく。このため、発炎筒５２から生じる煙は上昇するにしたがって薄くなっていく。なお、パーティクル５４のα値の初期値はランダムに決定されるようにしてもよい。
【００３５】
また、各パーティクル５４には寿命時間が設定される。すなわち、パーティクル５４は発生してから所定時間（寿命時間）が経過すると消滅する。なお、パーティクル５４の寿命時間はランダムに決定されるようにしてもよい。
【００３６】
ところで、実際のサッカーの試合会場では、例えば得点が入った後や特別な試合の開始前において、多数の観客が焚いた発煙筒によって煙が濃く立ち込める場合がある。このため、サッカーゲームにおいても、煙が濃く立ち込める様子が表現することによって、サッカーゲームのリアリティを向上できる。
【００３７】
多数の観客が焚いた発煙筒によって煙が濃く立ち込める様子が表現するための方法としては、発炎筒５２を持った観客オブジェクト５０を観客席オブジェクト４６上に多数配置する方法が考えられる。しかし、発炎筒５２から生じる煙をパーティクルシステムによって表現する場合には、各パーティクル５４ごとに位置演算等を行う必要がある。発炎筒５２を持った観客オブジェクト５０を多数配置した場合にはパーティクル５４の数も多くなるため、処理負荷が重くなってしまう。
【００３８】
以下、煙が濃く立ち込める様子を処理負荷の軽減を図りつつ好適に表現するための技術について説明する。
【００３９】
ゲーム装置１０が実行する処理について説明する。図５及び図６はゲーム装置１０が所定時間（本実施の形態では１／６０秒）ごとに実行する処理のうち、本発明に関連するものを主として示すフロー図である。マイクロプロセッサ１４はＤＶＤ−ＲＯＭ２５から読み出されたプログラムに従って、図５及び図６に示す処理を実行する。
【００４０】
図５に示すように、まず、マイクロプロセッサ１４は現在のゲーム場面が特定場面であるか否かを判定する（Ｓ１０１）。ここで、特定場面とは、多数の観客によって焚かれた発煙筒によって煙が濃く立ち込める様子を演出すべき場面である。例えば、特定場面は得点が入った後の場面である。また例えば、特定場面は、強豪チームの同士の試合や決勝戦などの特別の試合が開始される前の場面である。得点が入ったか否かは、主記憶２６に記憶されるボールオブジェクトの位置に基づいて判定される。これから開始される試合が強豪チームの同士の試合であるか否かは、これから開始される試合に係る両チームの組み合わせが、あらかじめＤＶＤ−ＲＯＭ２５に記憶された所定の組み合わせ（強豪チーム同士の組み合わせ）であるか否かを判定することによって判定される。
【００４１】
そして、マイクロプロセッサ１４は、Ｓ１０１における判定結果に基づいて、パーティクル座標系のＹ軸方向に対応するワールド座標系（図２に示すＸｗＹｗＺｗ座標系）の方向（基準拡散方向）を設定する。図７及び図８は基準拡散方向５６の設定について説明するための図である。
【００４２】
Ｓ１０１において現在のゲーム場面が特定場面でないと判定された場合、図７に示すように、マイクロプロセッサ１４は基準拡散方向５６をＹｗ軸正方向に設定する（Ｓ１０２）。言い換えれば、マイクロプロセッサ１４は、パーティクル座標系のＹ軸方向をワールド座標系のＹｗ軸正方向に対応づける。この場合、仮想カメラ４８の視線方向４８ｂがＹｗ軸負方向になる場合を除き、基準拡散方向５６と、パーティクル５４の発生源（発炎筒５２の先端５２ａ）から視点４８ａへの方向５８と、の間の角度θａは０より大きくなる。
【００４３】
一方、Ｓ１０１において現在のゲーム場面が特定場面であると判定された場合、図８に示すように、マイクロプロセッサ１４（設定手段）は基準拡散方向５６を、パーティクル５４の発生源（発炎筒５２の先端５２ａ）から視点４８ａへの方向５８に設定する（Ｓ１０３）。言い換えれば、マイクロプロセッサ１４は、パーティクル座標系のＹ軸方向をワールド座標系の、パーティクル５４の発生源から視点４８ａへの方向５８に対応づける。この場合、基準拡散方向５６と、パーティクル５４の発生源から視点４８ａへの方向５８と、の間の角度θａは０になる。
【００４４】
Ｓ１０２又はＳ１０３の処理が実行された後、マイクロプロセッサ１４（発生手段）は所定数のパーティクル５４を発生源に新たに発生させる（Ｓ１０４）。
【００４５】
ここで、Ｓ１０４以降の処理に関連するデータについて説明する。図９及び図１０はＳ１０４以降の処理に関連するデータを示している。
【００４６】
図９は、主記憶２６に記憶されるパーティクル状態テーブルの一例について示している。パーティクル状態テーブルは、一の発生源から発生されるパーティクル５４の状態を管理するためのデータである。このパーティクル状態テーブルは仮想３次元空間４０に配置された各発炎筒５２ごとに用意される。すなわち、仮想３次元空間４０に発炎筒５２が３つ配置される場合、パーティクル状態テーブルが３つ用意される。
【００４７】
図９に示すように、パーティクル状態テーブルは「ＩＤ」、「色」、「α値」、「移動速度ベクトル」、「減速度」、「位置」、「残存時間カウンタ」フィールドを含む。「ＩＤ」にはパーティクル５４のＩＤが格納される。「色」にはパーティクル５４の色を示す情報が格納される。「α値」にはパーティクル５４のα値が格納される。「移動速度ベクトル」にはパーティクル５４の移動速度ベクトルが格納される。移動速度ベクトルはパーティクル座標系（ＸＹＺ座標系）で表される。「減速度」にはパーティクル５４の減速度が格納される。減速度は、パーティクル５４の移動速度を所定時間（本実施の形態では１／６０秒）ごとにどれだけ減速させるかを示す情報である。「位置」にはパーティクル５４の現在位置をパーティクル座標系（ＸＹＺ座標系）で表す位置座標が格納される。「残存時間カウンタ」には、パーティクル５４が消滅するまでの残り時間を１／６０秒単位で示す数値が格納される。パーティクル状態テーブルの１レコードは一つのパーティクル５４に対応する。
【００４８】
図１０は、ＤＶＤ−ＲＯＭ２５（移動速度情報記憶手段、透過度情報記憶手段）に記憶されるパーティクル制御データの一例を示している。図１０に示すように、パーティクル制御データは、角度条件に、移動速度補正係数（移動速度情報）及びα値補正係数（透過度情報）を対応づけたデータである。ここで、角度条件は、基準拡散方向５６と、パーティクル５４の発生源から視点４８ａへの方向５８と、の間の角度θａ（図７参照）に関する条件である。また、移動速度補正係数はパーティクル５４の移動速度を補正するための係数であり、α値補正係数はパーティクル５４のα値を補正するための係数である。移動速度補正係数及びα値補正係数は０以上１以下の値をとる。図１０に示すパーティクル制御データでは、上記角度θａが０より大きい場合の移動速度補正係数及びα値補正係数がともに１．０に設定されている。また、図１０に示すパーティクル制御データでは、上記角度θａが０である場合の移動速度補正係数が０．７に設定され、α値補正係数が０．９に設定されている。
【００４９】
Ｓ１０４の処理では、マイクロプロセッサ１４は所定数のレコードをパーティクル状態テーブルに追加する。この場合、追加されるレコードの各フィールドに格納される内容は次のようになる。すなわち、「色」フィールドには所定色（例えば白又は灰色等）を示す情報が格納される。「α値」フィールドには所定値（例えば２５５）が格納される。「減速度」フィールドには、パーティクル５４ごとに乱数に基づいて決定される減速度が格納される。「位置」フィールドには、発生源の位置座標、すなわちパーティクル座標系の原点座標が格納される。「残存時間カウンタ」フィールドには、パーティクル５４の寿命時間を１／６０秒単位で示す数値が格納される。
【００５０】
また、「移動速度ベクトル」フィールドには、パーティクル５４ごとに乱数に基づいて決定される移動速度ベクトルが格納される。図１１は移動速度ベクトルの決定について説明するための図である。まず、マイクロプロセッサ１４はパーティクル５４の所定時間（本実施の形態では１／６０秒）ごとのＹ軸方向への移動量Ｖｙを決定する。このとき、移動量Ｖｙは一定としてもよいし、乱数に基づいて決定されるようにしてもよい。また、マイクロプロセッサ１４はパーティクル５４の所定時間（本実施の形態では１／６０秒）ごとのＸ軸，Ｚ軸方向への移動量Ｖｘ，Ｖｚを乱数に基づいて決定する。このとき、移動量Ｖｘ，Ｖｚは移動量Ｖｙよりも小さくなるように決定される。また、移動量Ｖｘ，Ｖｚは、パーティクル５４の移動方向と、Ｙ軸方向と、の間の角度θｂが所定の基準角度以下となるように決定される。そして、マイクロプロセッサ１４は上記の移動量Ｖｘ，Ｖｙ，Ｖｚを表すベクトルを合成することによって得られる移動速度ベクトルＶを「移動速度ベクトル」フィールドに格納する。
【００５１】
Ｓ１０４の処理が実行された後、マイクロプロセッサ１４は各パーティクル５４の残存時間カウンタの値を１減らす（Ｓ１０５）。すなわち、マイクロプロセッサ１４はパーティクル状態テーブルの各レコードの「残存時間カウンタ」フィールドの値を１減らす。そして、マイクロプロセッサ１４は残存時間カウンタの値が０になったパーティクル５４を消滅させる（Ｓ１０６）。すなわち、マイクロプロセッサ１４は「残存時間カウンタ」フィールドの値が０であるレコードをパーティクル状態テーブルから削除する。
【００５２】
その後、マイクロプロセッサ１４は各パーティクル５４のα値を所定値だけ減らす（Ｓ１０７）。すなわち、マイクロプロセッサ１４はパーティクル状態テーブルの各レコードの「α値」フィールドに格納されるα値を所定値だけ減少させる。
【００５３】
その後、マイクロプロセッサ１４は各パーティクル５４の移動速度ベクトルを更新する（Ｓ１０８）。すなわち、マイクロプロセッサ１４は、パーティクル状態テーブルの各レコードの「移動速度ベクトル」フィールドに格納される移動速度ベクトルを、そのレコードの「減速度」フィールドに格納される減速度に基づいて更新する。
【００５４】
その後、マイクロプロセッサ１４（移動速度制御手段）は、Ｓ１０２又はＳ１０３において設定された基準拡散方向５６と、パーティクル５４の発生源から視点４８ａへの方向５８と、の間の角度θａ（図７参照）に基づいて、各パーティクル５４の移動速度ベクトルを補正する（Ｓ１０９）。すなわち、マイクロプロセッサ１４は上記角度θａに対応する移動速度補正係数をパーティクル制御データから読み出す。また、マイクロプロセッサ１４は各パーティクル５４の移動速度ベクトルをパーティクル状態テーブルから読み出す。そして、マイクロプロセッサ１４は各パーティクル５４の移動速度ベクトルに対して移動速度補正係数を乗じることによって、各パーティクル５４の補正移動速度ベクトルを取得する。
【００５５】
本実施の形態では、上記角度θａが０より大きい場合の移動速度補正係数は１．０になっている（図１０参照）。このため、基準拡散方向５６がＹｗ軸方向に設定された場合、各パーティクル５４の補正移動速度は、パーティクル状態テーブルに保持された移動速度ベクトルが示す元々の移動速度に等しくなる。一方、上記角度θａが０である場合の移動速度補正係数は０．７になっている（図１０参照）。このため、基準拡散方向５６が、パーティクル５４の発生源から視点４８ａへの方向５８に設定された場合、各パーティクル５４の補正移動速度は、パーティクル状態テーブルに保持された移動速度ベクトルが示す元々の移動速度よりも遅くなる。
【００５６】
その後、マイクロプロセッサ１４（拡散手段）は、各パーティクル５４の位置を、Ｓ１０９で取得されたそのパーティクル５４の補正移動速度ベクトルに基づいて更新する（Ｓ１１０）。すなわち、マイクロプロセッサ１４はパーティクル状態テーブルの各レコードの「位置」フィールドに格納される位置座標をＳ１０９で取得された補正移動速度ベクトルに基づいて更新する。
【００５７】
その後、マイクロプロセッサ１４は各パーティクル５４のワールド座標系における位置を取得する（Ｓ１１１）。すなわち、マイクロプロセッサ１４は各パーティクル５４のパーティクル座標系における位置座標をパーティクル状態テーブルから読み出す。そしてマイクロプロセッサ１４は、その位置座標を、Ｓ１０２又はＳ１０３において設定された、パーティクル座標系のＹ軸方向とワールド座標系の方向との対応関係に基づいてパーティクル座標系からワールド座標系に変換する。
【００５８】
その後、マイクロプロセッサ１４（透過度制御手段）は、Ｓ１０２又はＳ１０３において設定された基準拡散方向５６と、パーティクル５４の発生源から視点４８ａへの方向５８と、の間の角度θａ（図７参照）に基づいて、各パーティクル５４のα値を補正する（Ｓ１１２）。すなわち、マイクロプロセッサ１４は上記角度θａに対応するα値補正係数をパーティクル制御データから読み出す。また、マイクロプロセッサ１４は各パーティクル５４のα値をパーティクル状態テーブルから読み出す。そして、マイクロプロセッサ１４は各パーティクル５４のα値に対してα値補正係数を乗じることによって、各パーティクル５４の補正α値を取得する。
【００５９】
本実施の形態では、上記角度θａが０より大きい場合のα値補正係数は１．０になっている（図１０参照）。このため、基準拡散方向５６がＹｗ軸方向に設定された場合、各パーティクル５４の補正α値は、パーティクル状態テーブルに保持された元々のα値に等しくなる。一方、上記角度θａが０である場合のα値補正係数は０．９になっている（図１０参照）。このため、基準拡散方向５６が、パーティクル５４の発生源（発炎筒５２の先端５２ａ）から視点４８ａへの方向５８に設定された場合、各パーティクル５４の補正α値は、パーティクル状態テーブルに保持された元々のα値よりも小さくなる。すなわち、パーティクル５４の透過度が高くなる。
【００６０】
なお、以上に説明したＳ１０４〜Ｓ１１２の処理は、仮想３次元空間４０に設定されたパーティクル５４の発生源の各々について実行される。
【００６１】
Ｓ１１２の処理が実行された後、マイクロプロセッサ１４及び画像処理部１６は、Ｓ１１１で取得された各パーティクル５４のワールド座標系における位置と、Ｓ１１２で取得された各パーティクル５４の補正α値と、に基づいて、ゲーム画面をＶＲＡＭ上に生成する（Ｓ１１３）。すなわち、マイクロプロセッサ１４及び画像処理部１６は仮想カメラ４８から仮想３次元空間４０を見た様子を表す画像をＶＲＡＭ上に描画する。なお、主記憶２６には仮想３次元空間４０に配置された選手オブジェクトやボールオブジェクトの位置等が記憶されており、上記画像の描画はそれらの情報にも基づいて実行される。ＶＲＡＭ上に生成されたゲーム画面は所定のタイミングでモニタ１８に表示出力される。
【００６２】
ここで、発炎筒５２を持った観客オブジェクト５０が仮想カメラ４８に対向するように配置されている場合のゲーム画面を想定する。図１２は、ゲーム場面が特定場面でない場合にゲーム画面に表される煙６０を表している。図１３は、ゲーム場面が特定場面である場合にゲーム画面に表される煙６０を表している。なお、実際のゲーム画面には観客オブジェクト５０や発炎筒５２も表示されるが、図１２及び図１３では省略されている。また、仮想３次元空間４０には発炎筒５２を持った観客オブジェクト５０が複数配置されることによって、実際のゲーム画面には複数の煙６０が表されるが、図１２及び図１３では一つの発炎筒５２から生じる煙６０にのみ着目している。また、図１２及び図１３において斜線部分は煙が比較的濃く表れる部分を示している。
【００６３】
図１２及び図１３に示すように、ゲーム装置１０では、ゲーム場面が特定場面でない場合とゲーム場面が特定場面である場合とで、一つの発炎筒５２から生じる煙６０のゲーム画面における広がり方が変わる。
【００６４】
より具体的には、ゲーム場面が特定場面でない場合には、煙６０を表現するためのパーティクル５４の基準拡散方向５６がＹｗ軸方向に設定される（図５のＳ１０２参照）。すなわち、ゲーム場面が特定場面でない場合には、発生源に発生したパーティクル５４が発生源からＹｗ軸方向に向かって拡散される。その結果、図１２に示すように、発炎筒５２の先端５２ａから上方に昇るような煙６０がゲーム画面に表される。すなわち、一つの発炎筒５２から生じた煙６０の形状は、発炎筒５２の先端５２ａから上方に離れるにつれて徐々に左右に広がるような形状になる。この場合、パーティクル５４のα値は、パーティクル５４が上方に移動するにつれてパーティクル５４の透明度が高くなるように変化する。その結果、煙６０は発炎筒５２の先端５２ａに比較的近い部分（斜線部分）だけが濃くなる。
【００６５】
一方、ゲーム画面が特定場面である場合には、煙６０を表現するためのパーティクル５４の基準拡散方向５６が、発生源（発炎筒５２の先端５２ａ）から視点４８ａへの方向５８に設定される（図５のＳ１０３参照）。すなわち、ゲーム画面が特定場面である場合には、発生源に発生したパーティクル５４が発生源から仮想カメラ４８に向かって拡散される。その結果、図１３に示すように、発炎筒５２の先端５２ａを中心として上下左右斜めに広がるような煙６０がゲーム画面が表される。すなわち、一つの発炎筒５２から生じた煙６０の形状は、発炎筒５２の先端５２ａから上下左右斜めに広がるような形状になる。この場合、図１２に示すゲーム画面に比べて、煙６０は比較的広範囲にわたって表されるようになる。また、この場合、煙６０は全体的に濃くなる。すなわち、図１２に示すゲーム画面に比べて、煙６０の濃い部分（斜線部分）の面積が広くなる。
【００６６】
仮想３次元空間４０に発生されるパーティクル５４の数は図１２に示すゲーム画面が表示される場合と図１３に示すゲーム画面が表示される場合とで変わらない。このため、図１２に示すゲーム画面が表示される場合と図１３に示すゲーム画面が表示される場合とで処理負荷は変わらない。サッカーゲームのように複数のオブジェクト（選手オブジェクトやボールオブジェクト）を同時に制御するゲームでは、スタジアム等の表現に関する処理の負荷はできる限り軽減する必要がある。この点、本実施の形態によれば、処理負荷の増大を抑止しつつ、煙が濃く立ち込める様子を表現できるようになる。
【００６７】
以上説明したように、ゲーム装置１０によれば、特定の場面において煙が比較的広範囲にわたって濃く立ち込める様子を処理負荷の軽減を図りつつ表現できるようになる。
【００６８】
ところで、煙が濃く立ち込める様子を表現するための方法としては、濃い煙を発生させる発炎筒５２のデータを別途用意しておき、ゲーム状況に応じて、発炎筒５２のデータを切り替えることも考えられる。しかし、この方法では、発炎筒５２のデータを２つ用意しなければならず、ゲーム開発の作業量やゲームのデータ量が増加してしまう。この点、ゲーム装置１０によれば、発炎筒５２のデータを複数用意する必要はなく、上記のような不都合も生じない。
【００６９】
また、ゲーム装置１０では、パーティクル５４の位置は発生源を原点としたローカル座標系（パーティクル座標系）で管理される。そしてゲーム装置１０では、パーティクル座標系のＹ軸方向に対応するワールド座標系の方向を変えることによって、パーティクル５４の基準拡散方向５６が変わるようになっている。すなわち、ゲーム装置１０では、ゲーム場面が特定場面でない場合とゲーム画面が特定場面である場合とでパーティクル座標系のＹ軸方向に対応するワールド座標系の方向を変えるだけですむようになっている。このため、ゲーム装置１０では、ゲーム場面が特定場面でない場合とゲーム画面が特定場面である場合とでパーティクル５４の位置演算処理を共通化できるようになっている。
【００７０】
ところで、パーティクル５４の基準拡散方向５６が発生源から視点４８ａへの方向５８に設定された場合、パーティクル５４の基準拡散方向５６がＹｗ軸方向に設定された場合と同様の速さでパーティクル５４が移動してしまうと、ゲーム画面において、煙が奥から手前に向かって噴き出てくるかのように表されてしまう場合がある。その結果、ユーザに不自然な印象を与えてしまう場合がある。この点、ゲーム装置１０では、パーティクル制御データ（図１０参照）に基づいてパーティクル５４の移動速度ベクトルが補正される（図６のＳ１０９参照）。具体的には、パーティクル５４の基準拡散方向５６が発生源から視点４８ａへの方向５８に設定された場合には、パーティクル５４の移動速度が全体的に遅くなるように補正される。その結果、上記のような不具合が発生しないように図られている。
【００７１】
また、パーティクル５４の基準拡散方向５６が発生源から視点４８ａへの方向５８に設定された場合、パーティクル５４は発生源から視点４８ａに向かって拡散される。このため、パーティクル５４の基準拡散方向５６がＹｗ軸方向に設定された場合と同様にパーティクル５４のα値を設定してしまうと、煙が全体的に濃く表されすぎてしまうおそれがある。この点、ゲーム装置１０では、パーティクル制御データ（図１０参照）に基づいてパーティクル５４のα値が補正される（図１６のＳ１１２参照）。具体的には、パーティクル５４の基準拡散方向５６が発生源から視点４８ａへの方向５８に設定された場合には、パーティクル５４のα値が多少小さくなるように補正される。言い換えれば、パーティクル５４の基準拡散方向５６が発生源から視点４８ａへの方向５８に設定された場合には、煙の濃さが多少薄く表示されるように補正される。その結果、上記のような不具合が発生しないように図られている。
【００７２】
なお、本発明は以上に説明した実施の形態に限定されるものではない。
【００７３】
例えば、以上では、図５のＳ１０３において、基準拡散方向５６と、パーティクル５４の発生源から視点４８ａへの方向５８と、の間の角度θａが０になるように、基準拡散方向５６が設定されると説明した。しかしながら、図５のＳ１０３では、基準拡散方向５６と、パーティクル５４の発生源から視点４８ａへの方向５８と、の間の角度θａが所定の基準角度以下になるように、基準拡散方向５６が設定されるようにしてもよい。この場合、０°に近い角度（例えば５°）が基準角度として設定されるようにすればよい。また、この場合のパーティクル制御データ（図１０参照）では、角度条件「θａ＞基準角度」に対応する移動速度補正係数が１．０に設定され、角度条件「θａ≦基準角度」に対応する移動速度補正係数が０．７に設定されるようにすればよい。また、角度条件「θａ＞基準角度」に対応するα値補正係数が１．０に設定され、角度条件「θａ≦基準角度」に対応するα値補正係数が０．９に設定されるようにすればよい。こうしても、基準角度として不当に大きい角度が設定されない限り、ゲーム画面が特定場面である場合において、一つの発炎筒５２から生じる煙６０が比較的広範囲にわたって表示されるようになり、かつ、煙６０の濃い部分の面積も広くなる。すなわち、特定の場面において煙が比較的広範囲にわたって濃く立ち込める様子を処理負荷の軽減を図りつつ表現できるようになる。
【００７４】
また例えば、発炎筒５２の密集度が所定の基準密集度よりも低い場合にのみ、パーティクル５４の基準拡散方向５６を発生源から視点４８ａへの方向５８に設定するようにしてもよい。発炎筒５２の密集度は、例えば、一の発炎筒５２と、その発炎筒５２に最も近い発炎筒５２と、の間の距離によって判断される。具体的には、上記距離が所定の基準距離より長い場合には、発炎筒５２の密集度が所定の基準密集度よりも低いと判断される。一方、上記距離が所定の基準距離以下である場合には、発炎筒５２の密集度が所定の基準密集度以上であると判断される。発炎筒５２の密集度が高い場合には、あえてパーティクル５４の基準拡散方向５６を発生源から視点４８ａへの方向５８に設定しなくても、煙が濃く立ち込める様子がゲーム画面に表されると考えられる。このため、発炎筒５２の密集度が高い場合には、発炎筒５２の密集度が低い場合に比べて、パーティクル５４の基準拡散方向５６を発生源から視点４８ａへの方向５８に設定する必要性が薄い。この点、以上のようにすれば、パーティクル５４の基準拡散方向５６を発生源から視点４８ａへの方向５８に設定する必要性が高い場合にのみ、パーティクル５４の基準拡散方向５６が発生源から視点４８ａへの方向５８に設定されるようになる。
【００７５】
また例えば、ゲーム装置１０で実行されるゲームはサッカーゲーム以外のゲームであってもよい。また、本発明は、煙以外の不定形の表示物（例えば霧等）が濃く立ち込める様子を表現する場合にも用いることができる。
【００７６】
また例えば、以上の説明では、プログラムを情報記憶媒体たるＤＶＤ−ＲＯＭ２５から家庭用ゲーム機１１に供給するようにしたが、通信ネットワークを介してプログラムを家庭等に配信するようにしてもよい。図１４は、通信ネットワークを用いたプログラム配信システムの全体構成を示す図である。図１４に基づいて本発明に係るプログラム配信方法を説明する。図１４に示すように、このプログラム配信システム１００は、ゲームデータベース１０２、サーバ１０４、通信ネットワーク１０６、パソコン１０８、家庭用ゲーム機１１０、ＰＤＡ（携帯情報端末）１１２を含んでいる。このうち、ゲームデータベース１０２とサーバ１０４とによりプログラム配信装置１１４が構成される。通信ネットワーク１０６は、例えばインターネットやケーブルテレビネットワークを含んで構成されている。このシステムでは、ゲームデータベース（情報記憶媒体）１０２に、ＤＶＤ−ＲＯＭ２５の記憶内容と同様のプログラムが記憶されている。そして、パソコン１０８、家庭用ゲーム機１１０又はＰＤＡ１１２等を用いて需要者がゲーム配信要求をすることにより、それが通信ネットワーク１０６を介してサーバ１０４に伝えられる。そして、サーバ１０４はゲーム配信要求に応じてゲームデータベース１０２からプログラムを読み出し、それをパソコン１０８、家庭用ゲーム機１１０、ＰＤＡ１１２等、ゲーム配信要求元に送信する。ここではゲーム配信要求に応じてゲーム配信するようにしたが、サーバ１０４から一方的に送信するようにしてもよい。また、必ずしも一度にゲームの実現に必要な全てのプログラムを配信（一括配信）する必要はなく、ゲームの局面に応じて必要な部分を配信（分割配信）するようにしてもよい。このように通信ネットワーク１０６を介してゲーム配信するようにすれば、プログラムを需要者は容易に入手することができるようになる。
【図面の簡単な説明】
【００７７】
【図１】本実施の形態に係るゲーム装置のハードウェア構成を示す図である。
【図２】仮想３次元空間の一例を示す図である。
【図３】発炎筒を持った観客オブジェクトの一例を示す図である。
【図４】煙を表現するためのパーティクルについて説明するための図である。
【図５】ゲーム装置で実行される処理を示すフロー図である。
【図６】ゲーム装置で実行される処理を示すフロー図である。
【図７】基準拡散方向について説明するための図である。
【図８】基準拡散方向について説明するための図である。
【図９】パーティクル状態テーブルの一例を示す図である。
【図１０】パーティクル制御データの一例を示す図である。
【図１１】パーティクルの移動速度ベクトルについて説明するための図である。
【図１２】ゲーム場面が特定場面でない場合のゲーム画面に表される煙の一例を示す図である。
【図１３】ゲーム場面が特定場面である場合のゲーム画面に表される煙の一例を示す図である。
【図１４】本発明の他の実施形態に係るプログラム配信システムの全体構成を示す図である。
【符号の説明】
【００７８】
１０  ゲーム装置、１１，１１０  家庭用ゲーム機、１２  バス、１４  マイクロプロセッサ、１６  画像処理部、１８  モニタ、２０  音声処理部、２２  スピーカ、２４  ＤＶＤ−ＲＯＭ再生部、２５  ＤＶＤ−ＲＯＭ、２６  主記憶、２８  メモリカード、３０  入出力処理部、３２  コントローラ、４０  仮想３次元空間、４２  フィールドオブジェクト、４４  ゴールオブジェクト、４６  観客席オブジェクト、４８  仮想カメラ、４８ａ  視点、４８ｂ  視線方向、５０  観客オブジェクト、５２  発炎筒、５４  パーティクル、５６  基準拡散方向、６０  煙、１００  プログラム配信システム、１０２  ゲームデータベース、１０４  サーバ、１０６  通信ネットワーク、１０８  パソコン、１１２  携帯情報端末（ＰＤＡ）、１１４  プログラム配信装置。
【図１】
2008295786.tif 000003
【図２】
2008295786.tif 000004
【図３】
2008295786.tif 000005
【図４】
2008295786.tif 000006
【図５】
2008295786.tif 000007
【図６】
2008295786.tif 000008
【図７】
2008295786.tif 000009
【図８】
2008295786.tif 000010
【図９】
2008295786.tif 000011
【図１０】
2008295786.tif 000012
【図１１】
2008295786.tif 000013
【図１２】
2008295786.tif 000014
【図１３】
2008295786.tif 000015
【図１４】
2008295786.tif 000016