(57)【特許請求の範囲】
【請求項１】
コンピュータを、
３次元の仮想空間を生成する仮想空間生成手段、
前記仮想空間に配置した仮想カメラで撮影した画像をゲーム画面として表示する画面表示手段、
前記仮想空間内における流体要素の疑似的な３次元表現を前記ゲーム画面上で行う流体表現手段、および
前記仮想空間を移動可能な移動オブジェクトの移動を制御する移動オブジェクト制御手段、として機能させ、
前記流体表現手段は、
平面要素を有し、前記平面要素が前記仮想カメラの位置を向くように当該平面要素内に設けられた所定の中心点回りに回動するビルボードを、前記仮想空間に配置するビルボード配置手段と、
前記ビルボードの前記平面要素上で前記流体要素の２次元シミュレーションを行い、その結果を前記平面要素上に表示する、２次元シミュレーション表示手段と、を含み、
前記移動オブジェクトの周囲には、前記ビルボードとの接触を判定するための当たり判定領域が設けられ、
前記２次元シミュレーション表示手段は、前記ビルボードに前記移動オブジェクトが接触したと判定された場合、前記ビルボード上に表示された前記流体要素のうち、前記ビルボードに接触している前記当たり判定領域の境界より内側の流体要素が前記当たり判定領域の内側から外側へ向かうような外向きの力を受けることを、前記流体要素の２次元シミュレーション条件として加える、ゲームプログラム。
【請求項２】
前記２次元シミュレーション表示部は、前記ビルボードに前記移動オブジェクトが接触したと判定された後、前記ビルボードから前記移動オブジェクトが接触しなくなったと判定された場合、前記ビルボード上に表示された前記流体要素のうち、前記ビルボードに接触していたときの前記当たり判定領域の境界より外側の流体要素が前記当たり判定領域の外側から内側へ向かうような内向きの力を受けることを、前記流体要素の２次元シミュレーション条件として加える、請求項１に記載のゲームプログラム。
【請求項３】
前記当たり判定領域は、前記移動オブジェクト自体の境界より外側に位置する、請求項１または２に記載のゲームプログラム。
【請求項４】
前記ビルボード配置手段は、一連の前記流体要素を形成する複数の前記ビルボードを配置し、
前記複数のビルボードは、前記仮想カメラから見て、当該複数のビルボードのうちの少なくとも２つのビルボードの前記中心点が奥行方向にずれるように配置される、請求項１から３の何れかに記載のゲームプログラム。
【請求項５】
前記ビルボード配置手段は、前記ビルボードを前記移動オブジェクトに付随して動くように配置する、請求項１から４の何れかに記載のゲームプログラム。
【請求項６】
前記流体表現手段は、
前記流体要素に応じたテクスチャを前記ビルボードに投影するテクスチャ投影手段を含み、
前記２次元シミュレーション表示手段は、前記ビルボードに投影された前記テクスチャを前記２次元シミュレーションによって得られる前記流体要素の動きに従って変形させる、請求項１から５の何れかに記載のゲームプログラム。
【請求項７】
請求項１から６の何れかに記載のゲームプログラムを記憶したプログラム記憶部と、
前記プログラム記憶部に記憶されたプログラムを実行するコンピュータとを備えた、ゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームプログラムおよびゲームシステムに関する。
【背景技術】
【０００２】
従来、アクションゲームまたはロールプレイングゲーム等、ユーザの操作に応じてプレイヤキャラクタ等の操作対象を仮想の３次元の仮想空間内で動作させるゲームがある。３次元の仮想空間には様々なオブジェクト等が配置され、それらはコンピュータグラフィックスによって生成されている。
【０００３】
流体をより現実的に表現するための方法が考えられている。例えば、非特許文献１から３には、３次元の仮想空間において３次元の流体シミュレーションを行いながらコンピュータグラフィックスを生成することで流体の３次元表現を行うことが示されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Jonathan M. Cohen, Sarah Tariq, Simon Green, "Interactive Fluid-Particle Simulation using Translating Eulerian Grids", Cohen interactive 2010, (NVIDIA), [online], [平成２８年１月４日検索], <http://jcohen.name/papers/Cohen_Interactive_2010.pdf>
【非特許文献２】Keenan Crane, Ignacio Llamas, Sarah Tariq, "Real-Time Simulation and Rendering of 3D Fluids", Chapter 30, CPU Gem 3, (Hubert Nguyen), [online], [平成２８年１月４日検索], <http://www.cs.columbia.edu/~keenan/Projects/GPUFluid/paper.pdf>
【非特許文献３】QING YANG, "Real-Time Simulation of 3D Smoke on GPU", Proceedings of the 3rd WSEAS Int. Conf. on CIRCUITS, SYSTEMS, SIGNAL and TELECOMMUNICATIONS (CISST'09), pp.130-134, [online], [平成２８年１月４日検索], <http://www.wseas.us/e-library/conferences/2009/ningbo/CD-CISST/CISST25.pdf>
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ゲームを進行させながら、流体の３次元表現を行うために３次元シミュレーションを行うと、コンピュータへの処理負荷が大きく、処理速度が遅くなる問題がある。
【０００６】
そこで本発明は、３次元の仮想空間を用いたゲームにおいて、流体の表現を豊かにしつつ当該流体表現のための処理負荷の増大を抑制することができるゲームプログラムおよびゲームシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係るゲームプログラムは、コンピュータを、３次元の仮想空間を生成する仮想空間生成手段、前記仮想空間に配置した仮想カメラで撮影した画像をゲーム画面として表示する画面表示手段、および前記仮想空間内における流体要素の疑似的な３次元表現を前記ゲーム画面上で行う流体表現手段、として機能させ、前記流体表現手段は、平面要素を有し、前記平面要素が前記仮想カメラの位置を向くように当該平面要素内に設けられた所定の中心点回りに回動するビルボードを、前記仮想空間に配置するビルボード配置手段と、前記ビルボードの前記平面要素上で前記流体要素の２次元シミュレーションを行い、その結果を前記平面要素上に表示する、２次元シミュレーション表示手段と、を含む。
【０００８】
前記２次元シミュレーション表示手段は、前記ビルボードの前記平面要素と前記仮想空間における前記ビルボードの周囲の所定の環境要素との前記仮想空間における位置関係に基づいて、前記流体要素が前記所定の環境要素からの干渉を受けるように前記２次元シミュレーションを行ってもよい。
【０００９】
前記２次元シミュレーション表示手段は、前記仮想空間に所定の流体発生源を配置し、前記ビルボードの前記平面要素における前記流体発生源と接触している箇所から前記流体要素の前記２次元シミュレーションを行ってもよい。
【００１０】
前記ビルボード配置手段は、一連の前記流体要素を形成する複数の前記ビルボードを配置し、前記複数のビルボードは、前記仮想カメラから見て、当該複数のビルボードのうちの少なくとも２つのビルボードの前記中心点が奥行き方向にずれるように配置されてもよい。
【００１１】
前記コンピュータを、前記仮想空間を移動可能な移動オブジェクトの移動を制御する移動オブジェクト制御手段として機能させ、前記ビルボード配置手段は、前記ビルボードを前記移動オブジェクトに付随して動くように配置してもよい。
【００１２】
前記流体表現手段は、前記流体要素に応じたテクスチャを前記ビルボードに投影するテクスチャ投影手段を含み、前記２次元シミュレーション表示手段は、前記ビルボードに投影された前記テクスチャを前記２次元シミュレーションによって得られる前記流体要素の動きに従って変形させてもよい。
【００１３】
本発明の他の態様に係るゲームシステムは、上記ゲームプログラムを記憶したプログラム記憶部と、前記プログラム記憶部に記憶されたプログラムを実行するコンピュータとを備えている。
【発明の効果】
【００１４】
本発明によれば、３次元の仮想空間を用いたゲームにおいて、流体の表現を豊かにしつつ当該流体表現のための処理負荷の増大を抑制することができるゲームプログラムおよびゲームシステムを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態におけるゲーム装置のハードウェア構成を示すブロック図である。
【図２】図１に示すゲーム装置の機能的な構成を示すブロック図である。
【図３】本実施の形態における３次元の仮想空間を示す平面図である。
【図４】本実施の形態におけるゲーム画面を示す図である。
【図５】本実施の形態における流体の疑似的な３次元表現方法を説明するための図である。
【図６】本実施の形態の他の例におけるキャラクタに配置された複数のビルボードを示す図である。
【図７】本実施の形態の他の例における仮想空間に配置されたビルボードを示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態に係るゲームプログラムおよびゲームシステムについて、図面を参照しつつ説明する。
【００１７】
［ゲーム概要］
以下の説明では、家庭用ゲーム装置において実行されるアクションゲームを例として説明する。本実施の形態に係るアクションゲームは、３次元の仮想空間が生成され、ユーザが当該仮想空間内で行動するプレイヤキャラクタを操作して、敵キャラクタを全滅させる、またはゲーム空間内の所定の位置に到達する等といった所定の目標を達成するために、敵キャラクタと戦うことにより進行する。
【００１８】
［ハードウェア構成］
上述したゲームを実現するゲーム装置の構成について説明する。本実施の形態におけるゲームシステムは、下記ゲーム装置２と、当該ゲーム装置２に接続されるモニタ（表示部）１９、スピーカ２２およびコントローラ（操作部）２４などの外部装置とで構成され、下記ディスク型記憶媒体３０から読み込んだゲームプログラム３０ａおよびゲームデータ３０ｂに基づいてゲームを行い得るものである。ただし、以下では、説明を簡単にするため、単にゲーム装置２と称する場合がある。
【００１９】
図１は、本実施の形態におけるゲーム装置２のハードウェア構成を示すブロック図である。図１に示すように、ゲーム装置２は、他のゲーム装置２およびサーバ装置３との間で、インターネットまたはＬＡＮなどの通信ネットワークＮＷを介して互いに通信可能である。このゲーム装置２は、その動作を制御するコンピュータであるＣＰＵ１０を備え、このＣＰＵ１０にはバス１１を介してディスクドライブ１２、メモリカードスロット１３、プログラム記憶部を成すＨＤＤ１４、ＲＯＭ１５およびＲＡＭ１６が接続されている。
【００２０】
また、ＣＰＵ１０には、バス１１を介してグラフィック処理部１７、オーディオ合成部２０、無線通信制御部２３およびネットワークインタフェース２５が接続されている。
【００２１】
このうちグラフィック処理部１７は、ＣＰＵ１０の指示にしたがってゲーム空間および各キャラクタなどを含むゲーム画像を描画する。また、グラフィック処理部１７にはビデオ変換部１８を介して外部のモニタ１９が接続されており、グラフィック処理部１７にて描画されたゲーム画像はビデオ変換部１８において動画形式に変換され、モニタ１９にて表示されるようになっている。
【００２２】
オーディオ合成部２０は、ＣＰＵ１０の指示に従ってデジタルのゲーム音声を再生および合成する。また、オーディオ合成部２０にはオーディオ変換部２１を介して外部のスピーカ２２が接続されている。したがって、オーディオ合成部２０にて再生および合成されたゲーム音声は、オーディオ変換部２１にてアナログ形式にデコードされ、さらにスピーカ２２から外部へ出力されるようになっている。
【００２３】
さらに、オーディオ合成部２０は、ゲーム装置２に接続されるヘッドセットやコントローラ２４等に設けられたマイク２６から入力されるユーザの音声等がオーディオ変換部２１にてデジタル形式にコードされたデータを取得可能である。オーディオ合成部２０は、取得したデータをＣＰＵ１０に入力情報として伝えることができる。
【００２４】
無線通信制御部２３は、２．４ＧＨｚ帯の無線通信モジュールを有し、ゲーム装置２に付属するコントローラ２４との間で無線により接続され、データの送受信が可能となっている。ユーザは、このコントローラ２４に設けられたボタン等の操作子（後述）を操作することにより、ゲーム装置２へ信号を入力することができ、モニタ１９に表示されるプレイヤキャラクタの動作を制御可能になっている。また、ネットワークインタフェース２５は、インターネットまたはＬＡＮなどの通信ネットワークＮＷに対してゲーム装置２を接続するものであり、他のゲーム装置２またはサーバ装置３との間で通信可能である。そして、ゲーム装置２を、通信ネットワークＮＷを介して他のゲーム装置２と接続し、互いにデータを送受信することにより、同一のゲーム空間内で同期して複数のプレイヤキャラクタを表示させることができる。これにより、本ゲームにおいては、複数のユーザに対応する複数のプレイヤキャラクタが協同して敵キャラクタと戦う、または複数のユーザ同士が敵対して対戦する、マルチプレイが可能である。
【００２５】
［ゲーム装置の機能的構成］
図２は、図１に示すゲーム装置２の機能的な構成を示すブロック図である。図１に示すようにゲーム装置２は、ＣＰＵ１０、ＨＤＤ１４、ＲＯＭ１５、ＲＡＭ１６、グラフィック処理部１７、ビデオ変換部１８、オーディオ合成部２０、オーディオ変換部２１、ネットワークインタフェース２５などを含む制御部４を備えたコンピュータとして動作する。そして、図２に示すように、ゲーム装置２の制御部４は、本発明のゲームプログラム３０ａを実行することで、仮想空間生成手段４１、画面表示手段４２、流体表現手段４３、および、移動オブジェクト制御手段４４等の機能を発揮する。流体表現手段４３は、ビルボード配置手段４５、２次元シミュレーション表示手段４６、および、テクスチャ投影手段４７を含んでいる。移動オブジェクト制御手段４４は、キャラクタ制御手段４８を含んでいる。
【００２６】
このうち、仮想空間生成手段４１は、３次元の仮想空間を生成する。当該仮想空間が、ユーザが操作するプレイヤキャラクタが行動するゲーム空間となる。さらに、仮想空間生成手段４１は、仮想空間に配置される固定オブジェクトおよび／または当該仮想空間内を移動するプレイヤキャラクタ等の移動オブジェクトを生成する。例えば、仮想空間生成手段４１は、プレイヤキャラクタの移動に伴って、ゲームデータ３０ｂに含まれるオブジェクトおよびテクスチャなどのデータを読み出し、三次元の仮想空間を生成する。
【００２７】
図３は、本実施の形態における３次元の仮想空間を示す平面図である。また、図４は、本実施の形態におけるゲーム画面を示す図である。図３に示すように、３次元の仮想空間Ｓには、地形がポリゴン、テクスチャ等で描画され、当該地形上に各種のオブジェクト、仮想カメラＣ等が配置される。例えば、図３の例においては、移動オブジェクトとして、ユーザがコントローラ２４を介して操作可能なプレイヤキャラクタＰ、ノンプレイヤキャラクタである敵キャラクタＥが仮想空間Ｓに配置され、固定オブジェクトとして噴水台Ｑが仮想空間Ｓに配置されている。
【００２８】
移動オブジェクト制御手段４４は、仮想空間を移動可能な移動オブジェクトＰ，Ｅの移動を制御する。特に、移動オブジェクト制御手段４４は、キャラクタ制御手段４８として機能し、少なくとも当該コンピュータを操作するユーザに対応するキャラクタ（プレイヤキャラクタ）の動作を、当該ユーザによるコントローラ２４の操作入力またはゲームの進行状況に応じて制御する。移動オブジェクトは、プレイヤキャラクタＰおよびノンプレイヤキャラクタＥ以外の移動可能な物体を含む。例えば移動オブジェクトには、車、飛行機等の乗物や、ボール、爆弾、弾丸、弓矢等の飛翔物や、動物や、爆発等によって飛散する家具等の固定物等が含まれる。これらの移動オブジェクトも、移動オブジェクト制御手段４４によって制御される。
【００２９】
画面表示手段４２は、仮想空間Ｓに配置した仮想カメラＣで撮影した画像をゲーム画面Ｇ（図４）としてモニタ１９に表示する。ゲーム画面Ｇには、仮想カメラＣの撮影範囲Ｕに含まれる移動オブジェクトＰ，Ｅ、固定オブジェクトＱ、後述する流体要素Ｔ１，Ｔ２等も表示される。
【００３０】
流体表現手段４３は、仮想空間Ｓ内における流体要素Ｔ１，Ｔ２の疑似的な３次元表現をゲーム画面Ｇ上で行う。本実施の形態においては、図４に示すように、ノンプレイヤキャラクタＥに纏わりつく一連の炎Ｔ１および噴水台Ｑから噴出する一連の噴水Ｔ２を例示している。流体要素は、これらに限られず、例えば炎、煙、水蒸気等の気体または気体中を浮遊する粒子であってもよいし、例えば水、血等の液体であってもよい。
【００３１】
［流体表現処理］
ビルボード配置手段４５は、仮想空間Ｓにおける流体要素Ｔ１，Ｔ２を表現すべき位置にビルボードＢ１，Ｂ２を配置する。ビルボードＢ１は、ノンプレイヤキャラクタＥに配置され、ノンプレイヤキャラクタＥの移動に応じてビルボードＢ１も移動する。すなわち、ビルボード配置手段４５は、ビルボードＢ１を移動オブジェクトであるノンプレイヤキャラクタＥに付随して動くように配置する。このため、ビルボードＢ１の中心点Ａ１（後述）の位置座標は、ノンプレイヤキャラクタＥの位置座標に連動して移動する。ビルボードＢ２は、固定オブジェクトである噴水台Ｑに配置される。すなわち、ビルボードＢ２は、仮想空間Ｓにおける所定の位置座標に固定配置される。
【００３２】
図５は、本実施の形態における流体の疑似的な３次元表現方法を説明するための図である。図５においてはノンプレイヤキャラクタＥに配置されるビルボードＢ１（炎Ｔ１）の表現態様について例示しているが、噴水台Ｑに配置されるビルボードＢ２（噴水Ｔ２）の表現態様についても同様である。ビルボードＢ１は、平面要素Ｄと、当該平面要素Ｄ内に設けられた所定の中心点Ａ１と、を有し、平面要素Ｄが仮想カメラＣの位置を向くように中心点Ａ１回りに回動する。すなわち、平面要素Ｄは、仮想カメラＣの中心点Ａ１に対する位置が変化しても、後述する流体要素Ｔ１の表示面が仮想カメラＣの位置と中心点Ａ１とを結ぶ線分Ｆ１に直交するように配置される。ビルボードＢ２の平面要素Ｄも同様に、仮想カメラＣの位置を向くように中心点Ａ２回りに回動する。平面要素Ｄ自体は、ゲーム画面Ｇ上には表示されない（透明である）が、図３および図４においては分かり易くするために明示している。
【００３３】
なお、ビルボードＢ１は、中心点Ａ１回りの回動が所定範囲に制限されていてもよい。例えば、ビルボードＢ１は、中心点Ａ１を含む鉛直軸回りの回動のみが許容され、高さ方向には回動しないこととしてもよい。この場合、仮想カメラＣは、高さ方向の角度（俯仰角）が変わらないことが好ましい。
【００３４】
一般的なビルボードは、平面要素Ｄに文字または絵が貼り付けられる。ビルボードが仮想カメラＣの位置を向くことにより、仮想空間Ｓのどの位置から見ても同じ文字または絵が表示される。後述するように、本実施の形態におけるビルボードＢ１，Ｂ２は、文字または絵の代わりに、平面要素Ｄ上で行われた流体要素Ｔ１の２次元シミュレーションの結果を表示する。
【００３５】
２次元シミュレーション表示手段４６は、ビルボードＢ１の平面要素Ｄ上で流体要素Ｔ１の２次元シミュレーションを行い、その結果を平面要素Ｄ上に表示する。２次元シミュレーションにおいて、ビルボードＢ１の平面要素Ｄは、所定のグリッド（シミュレーショングリッド）が設定される。例えば、シミュレーショングリッドは、平面要素Ｄを６４マス×６４マスに区分けするグリッドとして構成される。２次元シミュレーション表示手段４６は、平面要素Ｄ上における所定の流体発生源Ｒ１，Ｒ２を起点とする流体要素（炎Ｔ１）の動きを平面要素Ｄ上においてグリッド単位でシミュレーションする。
【００３６】
２次元シミュレーションの方法は特に限定されず、公知のシミュレーション方法を種々適用可能である。例えば、２次元シミュレーションとしては、"Real-Time Fluid Dynamics for Games", Jos Stam, <http://www.intpowertechcorp.com/GDC03.pdf>、"Fast Fluid Dynamics Simulation on the GPU", Mark J. Harris, Chapter 38. GPU Gems, <http://http.developer.nvidia.com/GPUGems/gpugems_ch38.html>、"A Simple Fluid Solver based on the FFT", Jos Stam, <http://www.dgp.toronto.edu/people/stam/reality/Research/pdf/jgt01.pdf>、"Go With The Flow: Fluid and Particle Physics in PixelJunk Shooter", Jaymin Kessler, Game Developers Conference 2010, <http://fumufumu.q-games.com/gdc2010/shooterGDC.pdf>等に記載された態様が例示できる。
【００３７】
このように、仮想カメラＣの位置の変更に伴って当該仮想カメラＣの位置に向くようにビルボードＢ１，Ｂ２が回動することにより、ビルボードＢ１，Ｂ２の平面要素Ｄ上に表示される流体要素Ｔ１，Ｔ２を疑似的に３次元的に表現することができる。さらに、２次元の表現要素である流体要素Ｔ１，Ｔ２に対して所定の物理的法則等に従った２次元シミュレーションをビルボードＢ１，Ｂ２の平面要素Ｄ上で行うことにより、疑似的に３次元的に表現された流体要素Ｔ１，Ｔ２が平面要素Ｄ上をよりリアルに移動する。したがって、２次元の表現要素（流体要素Ｔ１，Ｔ２）を３次元的に見せるビルボードＢ１，Ｂ２と２次元シミュレーションとを組み合わせることにより、流体の表現を豊かにしつつ当該流体表現のための処理負荷の増大を抑制することができる。すなわち、流体表現を含む３次元の仮想空間の表示に関する処理速度の低減を抑制することができる。また、ビルボードＢ１のように、ビルボードを移動オブジェクト（ノンプレイヤキャラクタＥ）に配置することにより、移動オブジェクトの周囲における流体要素Ｔ１を移動オブジェクトの移動に応じて表現することができる。
【００３８】
２次元シミュレーションは、所定のシミュレーション条件に基づいて行われる。例えば、シミュレーション条件は、流体要素の性質（気体または液体の種類、流体要素自体の粘性等）、起点における流体要素の移動方向、初速、重力の加わる方向等に基づいて一ないし複数のパラメータとして設定される。さらに、２次元シミュレーション表示手段４６は、ビルボードＢ１の平面要素と仮想空間ＳにおけるビルボードＢ１の周囲において相対的な位置が変化する所定の環境要素との仮想空間Ｓにおける位置関係に基づいて、流体要素Ｔ１，Ｔ２が所定の要素からの干渉を受けるように２次元シミュレーションを行う。例えば、仮想空間Ｓにおける所定の環境要素は、風、雨等の仮想空間Ｓ内の流体の流れであってもよいし、ビルボードＢ１に衝突する所定のオブジェクト（キャラクタ等）であってもよい。また、ビルボードＢ１が仮想空間Ｓ内を移動する場合には、所定の環境要素には、当該移動に伴ってビルボードＢ１が受ける風圧または水圧等も含まれる。
【００３９】
これにより、ビルボードＢ１の周囲の環境要素から流体への３次元的な干渉がビルボードＢ１上の平面的な干渉要素として扱われる。すなわち、ビルボードＢ１に投影された環境要素による平面的な干渉を考慮して流体の２次元シミュレーションが行われる。これにより、３次元シミュレーションにおいて３次元的な干渉を考慮する場合に比べてシミュレーションの負荷を格段に低減させることができる。
【００４０】
例えば、３次元シミュレーションにおいて６４マス×６４マス×６４マスのグリッドを用いた立方体内で３次元シミュレーションを行う場合、一のグリッドにおける環境要素による干渉を考慮しようとすると、一平面だけではなく当該平面の奥行き方向からの干渉も考慮する必要がある。一方、平面要素Ｄ（６４マス×６４マス）内での２次元シミュレーションではこのような奥行き方向からの干渉は考慮されない。したがって、単にグリッドの数が減る（１／６４になる）だけでなく、立体的なベクトル演算が不要となるため、ビルボードＢ１，Ｂ２上で２次元シミュレーションを行うことは、３次元シミュレーションを行う場合に比べて格段に処理負荷が小さくなる。
【００４１】
本実施の形態において、ビルボードＢ１における流体発生源Ｒ１，Ｒ２は、ノンプレイヤキャラクタＥ上に設定される。図５の上段の左図に示すように、流体発生源Ｒ１は、ノンプレイヤキャラクタＥの頭部に設定され、流体発生源Ｒ２は、ノンプレイヤキャラクタＥの腹部に設定される。２次元シミュレーション表示手段４６は、所定の流体表示条件を満たした場合に、流体発生源Ｒ１，Ｒ２に接触しているビルボードＢ１の平面要素Ｄのグリッドを起点として流体要素（炎Ｔ１）の動きを平面要素Ｄ上でシミュレーションし、その結果を平面要素Ｄ上に表示する（図５の中段の図）。２次元シミュレーションに基づいてビルボードＢ１上に生じた流体要素Ｔ１が平面要素Ｄ上を移動することにより、流体要素Ｔ１の様子が変化する。ビルボードＢ１がノンプレイヤキャラクタＥ上に配置されることにより、仮想カメラＣに対するノンプレイヤキャラクタＥの向きに拘わらず、ノンプレイヤキャラクタＥ上に炎Ｔ１が表示され、ノンプレイヤキャラクタＥが炎Ｔ１に包まれる表現が可能となる（図５の下段の図）。
【００４２】
ビルボードＢ２における流体発生源は、例えば噴水台Ｑの中央箇所（噴水噴出部）に設定される。なお、流体発生源は、上記の例のように、移動オブジェクトまたは固定オブジェクトの内部に設けられてもよいが、移動オブジェクトまたは固定オブジェクトの外部に設けられてもよい。また、流体発生源は、ビルボードＢ１，Ｂ２の平面要素上の所定位置に設けられてもよい。
【００４３】
流体表示条件は、特に限定されないが、例えば、本実施の形態において、ビルボードＢ１（の平面要素）上に表示される炎Ｔ１の流体表示条件は、「プレイヤキャラクタＰの攻撃（火炎放射等）がノンプレイヤキャラクタＥに命中すること」に設定されている。また、例えば、ビルボードＢ２（の平面要素）上に表示される噴水Ｔ２の流体表示条件は、「噴水台Ｑが仮想カメラＣの撮影範囲内に位置すること」としてもよいし、「仮想空間Ｓに配置された所定のスイッチをプレイヤキャラクタＰ等が操作すること」としてもよい。また、流体表示条件を設定せず、流体要素が常に表示されるような態様としてもよい。
【００４４】
ビルボードＢ１，Ｂ２上に表示される流体要素Ｔ１，Ｔ２は、２次元シミュレーションに用いられる流体要素（ドット等）自身が着色されることにより表現されてもよい。これに代えて、テクスチャ投影手段４７が、流体要素Ｔ１，Ｔ２に応じたテクスチャをビルボードＢ１，Ｂ２に投影し、２次元シミュレーション表示手段４６が、ビルボードＢ１，Ｂ２に投影されたテクスチャを２次元シミュレーションによって得られる流体要素の動きに従って変形させることにより、流体要素Ｔ１，Ｔ２を表現してもよい。これにより、流体要素Ｔ１，Ｔ２に細かいディティールを付加しつつ流体の挙動をリアルにすることができる。したがって、流体の疑似的な３次元表現をより豊かにすることができる。
【００４５】
テクスチャを投影する場合、２次元シミュレーションにおける解像度は、投影されるテクスチャの描画解像度より低く設定されてもよい。例えば、１つのビルボードＢ１，Ｂ２あたり６４マス×６４マスのシミュレーショングリッドに対して、１２８マス×１２８マスの描画解像度（２倍の描画解像度）でテクスチャが描画される。すなわち、２次元シミュレーション表示手段４６は、１２８マス×１２８マスの描画解像度でテクスチャを描画するために、６４マス×６４マスのシミュレーショングリッドで実行された２次元シミュレーションの結果を縦横２倍に引き延ばし、当該２次元シミュレーションの結果に応じて投影されたテクスチャを変形させる。これにより、２次元シミュレーションにおける解像度がテクスチャの描画解像度と同じ場合に比べて、２次元シミュレーションに要する処理負荷を低減しつつ遜色のないリアルな表現を実現することができる。なお、２次元シミュレーションの解像度およびテクスチャの描画解像度の組み合わせ（２次元シミュレーションにおける解像度に対するテクスチャの描画解像度の割合）は、表現する流体要素Ｔ１，Ｔ２の種類、ゲームにおける表示の重要度、流体要素Ｔ１，Ｔ２の周囲のオブジェクト等の描画解像度等によって適宜設定され得る。例えば、上記例に加えて６４マス×６４マスのシミュレーショングリッドに対して２５６マス×２５６マスの描画解像度（４倍の描画解像度）としてもよい。
【００４６】
［その他の例１］
上記例では、一連の流体要素Ｔ１，Ｔ２を一のビルボードＢ１，Ｂ２で表現する例について説明したが、一連の流体要素を複数のビルボードで表現することも可能である。図６は、本実施の形態の他の例におけるキャラクタに配置された複数のビルボードを示す図である。図６（ａ）は仮想カメラ側から見た図であり、図６（ｂ）はキャラクタを上方から見た図（平面図）である。
【００４７】
本変形例において、ビルボード配置手段４５は、一連の流体要素（図６には図示せず）を形成する複数のビルボードＢｉ（ｉ＝ａ〜ｆ）を配置する。複数のビルボードＢｉは、仮想カメラＣから見て、当該複数のビルボードＢｉのうちの少なくとも２つのビルボードの中心点Ａｉ（ｉ＝ａ〜ｆ）が奥行き方向（仮想カメラＣの中心軸Ｆ方向）にずれるように配置される。本変形例においては、各ビルボードＢａ〜Ｂｆの中心点Ａａ〜ＡｇがキャラクタＨの頭部、胴、右手、左手、右膝、左膝の順に配置されている。これにより、仮想カメラＣがキャラクタＨに対してどのような位置からキャラクタＨを撮影しても、複数のビルボードＢｉのうちの少なくとも２つのビルボードの中心点Ａｉが奥行き方向にずれた状態となる。
【００４８】
複数のビルボードＢｉを用い、仮想カメラＣから見て中心点Ａｉの位置が奥行き方向にずれたビルボードＢｉを複数存在させることにより、流体の疑似的な３次元表現にビルボードＢｉの奥行方向の厚みを持たせることができ、より立体的な表現とすることができる。例えば、図６（ａ）および図６（ｂ）に示すように、キャラクタＨに複数のビルボードＢｉが配置される場合、キャラクタＨの全身に一連の流体表現を生じさせるにはキャラクタＨが仮想カメラＣの向きに対してどのような向きに配置されてもキャラクタＨに接触するビルボードＢｉが常に３枚以上あるようにしてもよい。これにより、仮想カメラＣがどの位置からキャラクタＨを撮影しても、より違和感の少ない流体要素の疑似的な３次元表現を行うことができる。
【００４９】
本例において、流体発生源は、例えばキャラクタＨの全身の表面に設定される。この場合、２次元シミュレーション表示手段４６は、所定の流体表示条件を満たした場合に、流体発生源、すなわち、キャラクタＨに接触しているビルボードＢｉの各平面要素Ｄのグリッドを起点として流体要素（例えば図３〜５の例と同様の炎Ｔ１等）の動きを平面要素Ｄ上でシミュレーションする。なお、これに代えて、流体発生源が、複数のビルボードＢｉのそれぞれが接触し得るキャラクタＨの表面における複数個所に設定されてもよい。このように、複数のビルボードＢｉを用いて流体要素を表現する場合、流体発生源は、各ビルボードＢｉが少なくとも特定の姿勢となった場合に、流体発生源が当該ビルボードＢｉに接触可能となるような位置に設定されればよい。
【００５０】
なお、２次元シミュレーション表示手段４６は、仮想カメラＣと複数のビルボードＢｉとの距離に応じて複数のビルボードＢｉのうちの一部のビルボード上の流体表現の表示／非表示（または２次元シミュレーションの実行／停止）を切り替えてもよい。また、複数のビルボードＢｉがキャラクタＨ等のオブジェクトに配置されている場合、仮想カメラＣの向きに対するオブジェクトの向きに応じて複数のビルボードＢｉのうちの一部のビルボード上の流体表現の表示／非表示（または２次元シミュレーションの実行／停止）を切り替えてもよい。
【００５１】
［その他の例２］
また、上記例では、固定オブジェクトまたは移動オブジェクトにビルボードＢ１，Ｂ２を配置して、各オブジェクトに関連した流体表現を行うこととしたが、流体要素を仮想空間Ｓ自体に配置された環境要素として表現してもよい。図７は、本実施の形態の他の例における仮想空間に配置されたビルボードを示す図である。図７の例において、例えば仮想空間Ｓの所定位置に中心点Ａｊ（ｊ＝ｍ〜ｏ）が固定配置された３つのビルボードＢｊ（ｊ＝ｍ〜ｏ）が配置されている。理解容易のために、移動オブジェクトであるキャラクタＫは、ビルボードＢｊにおける流体要素Ｔ１の表示面（平面要素Ｄ）が仮想カメラＣの位置と中心点Ａｊとを結ぶ線分Ｆに平行に移動する（ＶＫ方向に移動する）場合を考える。なお、キャラクタＫの移動方向が線分Ｆに交差する方向（所定の角度を有する方向）に移動する場合も同様である。各ビルボードＢｊには、流体要素（例えば煙）Ｓｊ（ｊ＝ｍ〜ｏ）がそれぞれ独立した２次元シミュレーションに基づいて表示される。特に、キャラクタＫが通過していないビルボードＢｏには、流体要素ＴｏがビルボードＢｏ（の平面要素）上に一様に表示されている。
【００５２】
このようなビルボードＢｊにキャラクタＫが接触する（通り抜ける）場合、図７におけるビルボードＢｎに示されるように、ビルボードＢｎ上に表示された流体要素ＴｎがキャラクタＫの周囲に広がるように表示される。キャラクタＫの周囲には、当たり判定領域Ｌが設けられ、ビルボードＢｎと接触した当たり判定領域Ｌの境界より内側の流体要素Ｔｎは、環境要素による干渉として外向きの力Ｖ１を受ける。この外向きの力Ｖ１は、ビルボードＢｎ上の流体要素Ｔｎのための２次元シミュレーションの条件として加えられ、流体要素Ｔｎの表示態様が当該外向きの力Ｖ１の影響を受けたものとなる。この結果、キャラクタＫが接触したビルボードＢｎにおける当たり判定領域Ｌの境界より内側に表示される流体要素Ｔｎは薄くなる。
【００５３】
キャラクタＫの通過後、ビルボードＢｍのように当たり判定領域ＬとビルボードＢｍとの接触がなくなると、元々ビルボードＢｍに接触していた当たり判定領域Ｌの境界より外側（境界の周囲）の流体要素Ｔｍは、環境要素による干渉として内向きの力Ｖ２を受ける。この内向きの力Ｖ２は、ビルボードＢｍ上の流体要素Ｔｍのための２次元シミュレーションの条件として加えられ、流体要素Ｔｍの表示態様が当該内向きの力Ｖ２の影響を受けたものとなる。この結果、キャラクタＫの通過によりビルボードＢｍにおいて流体要素Ｔｍが薄くなった領域（キャラクタＫのビルボードＢｍへの接触時における当たり判定領域Ｌの境界より内側の領域）に流体要素Ｔｍが流れ込むような表現態様となる。以上のような流体要素Ｔｊの表示態様により、キャラクタＫが煙（流体要素Ｔｊ）の中を進むことでキャラクタＫの周囲の煙がキャラクタＫの移動に応じて巻き込まれるといった表現が容易に実現できる。
【００５４】
なお、キャラクタＫの周囲に設けられる当たり判定領域Ｌは、キャラクタＫ自体の境界より外側に位置する方が好ましい。これにより、流体要素の動きをよりリアルに表現することができる。
【００５５】
［変形例］
以上、本発明の実施形態について説明したが、本発明は上記実施の形態に限定されるものではなく、その趣旨を逸脱しない範囲内で種々の改良、変更、修正が可能である。
【００５６】
例えば、流体要素を表示するビルボードの配置態様は、仮想空間Ｓ内において１枚ずつ配置される態様に限られない。例えば複数のビルボードが連設された構成であってもよい。これは、いわゆるリボンと一般的に呼称され、仮想空間Ｓの所定位置に配置された一のビルボードの端部に他のビルボード（複数でもよい）が接続されたものである。このような配置態様は、長く立ちのぼる煙（のろし）等の表現を行う際に有効となる。
【００５７】
また、ビルボードは、仮想空間Ｓ内に配置されるオブジェクトとは独立して仮想空間Ｓの所定の範囲を移動するように配置されてもよい。例えば、このような配置態様は、広範囲に流れていく煙等の表現を行う際に有効となる。
【００５８】
２次元シミュレーション表示手段４６は、仮想カメラＣとビルボードとの距離に応じて当該ビルボード上の流体要素の表示または非表示（あるいは２次元シミュレーションの実行または停止）を切り替えてもよい。この場合、２次元シミュレーション表示手段４６は、仮想カメラＣとビルボードとの距離が所定距離より遠い場合に、ビルボード上の流体要素の表示を非表示とする、または、２次元シミュレーションを停止する。これによって、ビルボード上の流体要素がゲーム画面上であまり見えない場合に、流体要素の表示を行わないことにより、処理負荷の低減を行うことができる。なお、ビルボード上の流体要素の表示または非表示（あるいは２次元シミュレーションの実行または停止）の切り替えは段階的に行うことが好ましい。
【００５９】
また、ビルボードがオブジェクトに配置されている場合において、２次元シミュレーション表示手段４６は、仮想カメラＣの向きに対するオブジェクトの向きに応じてビルボード上の流体表現の表示または非表示（あるいは２次元シミュレーションの実行または停止）を切り替えてもよい。また、ビルボードが移動オブジェクトに配置されている場合において、２次元シミュレーション表示手段４６は、仮想カメラＣから見て移動オブジェクトが固定オブジェクト等の遮蔽部に隠れたとき、２次元シミュレーションを変化させてもよい（例えばシミュレーションの速度を遅くしてもよい）。
【００６０】
また、上記実施の形態において、仮想カメラＣは、プレイヤキャラクタＰの背後に配置され、プレイヤキャラクタＰの移動に伴って移動するように構成されることを例示した。しかし、これに限られず、例えば仮想カメラＣをプレイヤキャラクタＰとは独立して移動可能としてもよいし、仮想カメラＣを仮想空間Ｓの所定の位置に固定配置する態様としてもよい。仮想カメラＣを固定配置する場合、特に、複数の仮想カメラＣで異なる角度から同じオブジェクトを撮影する態様において、当該オブジェクトに流体要素を表示する場合に、ビルボードを用いた上記表現態様が好適に適用され得る。
【００６１】
また、一連の流体要素に対して複数のビルボードを用いる場合、２次元シミュレーション表示手段４６は、流体要素を表示するビルボードの数（２次元シミュレーションを行うビルボードの数）を所定数（上限数）に制限してもよい。これにより、処理負荷の増大を抑えつつ、過不足のない流体表現を行うことができる。
【００６２】
また、上記実施の形態において、アクションゲームを例示したが、ビルボードを用いた上記表現態様は、ロールプレイングゲーム、シミュレーションゲームまたはシューティングゲーム等、３次元の仮想空間を用いる種々のゲームに適用可能である。
【００６３】
また、上記実施の形態では据え置き型のゲーム装置について説明したが、携帯型のゲーム装置、携帯電話機、およびパーソナルコンピュータなどのコンピュータについても、本発明を好適に適用することができる。
【産業上の利用可能性】
【００６４】
本発明は、３次元の仮想空間を用いたゲームにおいて、流体の表現を豊かにしつつ当該流体表現のための処理負荷の増大を抑制するために有用である。
【符号の説明】
【００６５】
２  ゲーム装置
３０ａ  ゲームプログラム
３０ｂ  ゲームデータ
４１  仮想空間生成手段
４２  画面表示手段
４３  流体表現手段
４４  移動オブジェクト制御手段
４５  ビルボード配置手段
４６  ２次元シミュレーション表示手段
４７  テクスチャ投影手段
４８  キャラクタ制御手段
Ａ１，Ａ２，Ａａ〜Ａｆ，Ａｍ〜Ａｏ  中心点
Ｂ１，Ｂ２，Ｂａ〜Ｂｆ，Ｂｍ〜Ｂｏ  ビルボード
Ｃ  仮想カメラ
Ｄ  平面要素
Ｓ  仮想空間
Ｔ１，Ｔ２，Ｔｍ〜Ｔｏ  流体要素
Ｅ，Ｐ，Ｈ，Ｋ  キャラクタ（移動オブジェクト）
Ｑ  固定オブジェクト
【図１】
0006441843.tif 000002
【図２】
0006441843.tif 000003
【図３】
0006441843.tif 000004
【図４】
0006441843.tif 000005
【図５】
0006441843.tif 000006
【図６】
0006441843.tif 000007
【図７】
0006441843.tif 000008