【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 開催日:平成27年8月26日〜8月28日 集会名:コンピュータエンターテインメントデベロッパーズ カンファレンス2015(CEDEC 2015) 開催場所:パシフィコ横浜 会議センター(神奈川県横浜市西区みなとみらい1−1−1)
【課題】 3次元の仮想空間を用いたゲームにおいて、光が透過する表現要素の表示および当該表現要素における光の透過表現を軽い負荷で行うことができるゲームプログラムおよびゲームシステムを提供する。
【解決手段】 コンピュータを、仮想空間生成手段、画面表示手段、および仮想空間内における光の少なくとも一部が透過する表現要素の疑似的な3次元表現をゲーム画面上で行う表現手段、として機能させ、表現手段は、ビルボードを、仮想空間に配置するビルボード配置手段と、ビルボード上に描画する表現要素の描画データと、ビルボード上に描画された表現要素におけるビルボード上の2次元座標と各座標位置における表現要素の厚み情報との相関関係を示す2次元の厚みマップのデータと、を取得するデータ取得手段と、表現要素の厚み情報に基づいて、仮想空間に配置した光源からの光の表現要素における透過度を設定する透過度設定手段と、を含む。
前記透過度設定手段は、前記光源から前記ビルボードの前記平面要素への入射角に応じて、前記光源からの光の前記表現要素における透過度を変化させる、請求項1に記載のゲームプログラム。
【発明を実施するための形態】
【0014】
以下、本発明の実施の形態に係るゲームプログラムおよびゲームシステムについて、図面を参照しつつ説明する。
【0015】
[ゲーム概要]
以下の説明では、家庭用ゲーム装置において実行されるアクションゲームを例として説明する。本実施の形態に係るアクションゲームは、3次元の仮想空間が生成され、ユーザが当該仮想空間内で行動するプレイヤキャラクタを操作して、敵キャラクタを全滅させる、またはゲーム空間内の所定の位置に到達する等といった所定の目標を達成するために、敵キャラクタと戦うことにより進行する。
【0016】
[ハードウェア構成]
上述したゲームを実現するゲーム装置の構成について説明する。本実施の形態におけるゲームシステムは、下記ゲーム装置2と、当該ゲーム装置2に接続されるモニタ(表示部)19、スピーカ22およびコントローラ(操作部)24などの外部装置とで構成され、下記ディスク型記憶媒体30から読み込んだゲームプログラム30aおよびゲームデータ30bに基づいてゲームを行い得るものである。ただし、以下では、説明を簡単にするため、単にゲーム装置2と称する場合がある。
【0017】
図1は、本実施の形態におけるゲーム装置2のハードウェア構成を示すブロック図である。
図1に示すように、ゲーム装置2は、他のゲーム装置2およびサーバ装置3との間で、インターネットまたはLANなどの通信ネットワークNWを介して互いに通信可能である。このゲーム装置2は、その動作を制御するコンピュータであるCPU10を備え、このCPU10にはバス11を介してディスクドライブ12、メモリカードスロット13、プログラム記憶部を成すHDD14、ROM15およびRAM16が接続されている。
【0018】
また、CPU10には、バス11を介してグラフィック処理部17、オーディオ合成部20、無線通信制御部23およびネットワークインタフェース25が接続されている。
【0019】
このうちグラフィック処理部17は、CPU10の指示にしたがってゲーム空間および各キャラクタなどを含むゲーム画像を描画する。また、グラフィック処理部17にはビデオ変換部18を介して外部のモニタ19が接続されており、グラフィック処理部17にて描画されたゲーム画像はビデオ変換部18において動画形式に変換され、モニタ19にて表示されるようになっている。
【0020】
オーディオ合成部20は、CPU10の指示に従ってデジタルのゲーム音声を再生および合成する。また、オーディオ合成部20にはオーディオ変換部21を介して外部のスピーカ22が接続されている。したがって、オーディオ合成部20にて再生および合成されたゲーム音声は、オーディオ変換部21にてアナログ形式にデコードされ、さらにスピーカ22から外部へ出力されるようになっている。
【0021】
さらに、オーディオ合成部20は、ゲーム装置2に接続されるヘッドセットやコントローラ24等に設けられたマイク26から入力されるユーザの音声等がオーディオ変換部21にてデジタル形式にコードされたデータを取得可能である。オーディオ合成部20は、取得したデータをCPU10に入力情報として伝えることができる。
【0022】
無線通信制御部23は、2.4GHz帯の無線通信モジュールを有し、ゲーム装置2に付属するコントローラ24との間で無線により接続され、データの送受信が可能となっている。ユーザは、このコントローラ24に設けられたボタン等の操作子(後述)を操作することにより、ゲーム装置2へ信号を入力することができ、モニタ19に表示されるプレイヤキャラクタの動作を制御可能になっている。また、ネットワークインタフェース25は、インターネットまたはLANなどの通信ネットワークNWに対してゲーム装置2を接続するものであり、他のゲーム装置2またはサーバ装置3との間で通信可能である。そして、ゲーム装置2を、通信ネットワークNWを介して他のゲーム装置2と接続し、互いにデータを送受信することにより、同一のゲーム空間内で同期して複数のプレイヤキャラクタを表示させることができる。これにより、本ゲームにおいては、複数のユーザに対応する複数のプレイヤキャラクタが協同して敵キャラクタと戦う、または複数のユーザ同士が敵対して対戦する、マルチプレイが可能である。
【0023】
[ゲーム装置の機能的構成]
図2は、
図1に示すゲーム装置2の機能的な構成を示すブロック図である。
図1に示すようにゲーム装置2は、CPU10、HDD14、ROM15、RAM16、グラフィック処理部17、ビデオ変換部18、オーディオ合成部20、オーディオ変換部21、ネットワークインタフェース25などを含む制御部4を備えたコンピュータとして動作する。そして、
図2に示すように、ゲーム装置2の制御部4は、本発明のゲームプログラム30aを実行することで、仮想空間生成手段41、画面表示手段42、表現手段43、および、移動オブジェクト制御手段44等の機能を発揮する。表現手段43は、ビルボード配置手段45、データ取得手段46、透過度設定手段47、反射度設定手段48、および、2次元シミュレーション表示手段49を含んでいる。移動オブジェクト制御手段44は、キャラクタ制御手段50を含んでいる。
【0024】
このうち、仮想空間生成手段41は、3次元の仮想空間を生成する。当該仮想空間が、ユーザが操作するプレイヤキャラクタが行動するゲーム空間となる。さらに、仮想空間生成手段41は、仮想空間に配置される固定オブジェクトおよび/または当該仮想空間内を移動するプレイヤキャラクタ等の移動オブジェクトを生成する。例えば、仮想空間生成手段41は、プレイヤキャラクタの移動に伴って、ゲームデータ30bに含まれるオブジェクトおよびテクスチャなどのデータを読み出し、三次元の仮想空間を生成する。
【0025】
図3は、本実施の形態における3次元の仮想空間を示す平面図である。また、
図4は、本実施の形態におけるゲーム画面を示す図である。
図3に示すように、3次元の仮想空間Sには、地形がポリゴン、テクスチャ等で描画され、当該地形上に各種のオブジェクト、仮想カメラC、光源L等が配置される。例えば、
図3の例においては、移動オブジェクトとして、ユーザがコントローラ24を介して操作可能なプレイヤキャラクタPが仮想空間Sに配置されている。
【0026】
移動オブジェクト制御手段44は、仮想空間を移動可能な移動オブジェクトPの移動を制御する。特に、移動オブジェクト制御手段44は、キャラクタ制御手段50として機能し、少なくとも当該コンピュータを操作するユーザに対応するキャラクタ(プレイヤキャラクタ)の動作を、当該ユーザによるコントローラ24の操作入力またはゲームの進行状況に応じて制御する。移動オブジェクトは、プレイヤキャラクタP以外の移動可能なキャラクタまたは物体を含む。例えば移動オブジェクトには、敵キャラクタ等のノンプレイヤキャラクタや、車、飛行機等の乗物や、ボール、爆弾、弾丸、弓矢等の飛翔物や、動物や、爆発等によって飛散する家具等の固定物等が含まれる。これらの移動オブジェクトも、移動オブジェクト制御手段44によって制御される。
【0027】
画面表示手段42は、仮想空間Sに配置した仮想カメラCで撮影した画像をゲーム画面G(
図4)としてモニタ19に表示する。ゲーム画面Gには、仮想カメラCの撮影範囲Uに含まれる移動オブジェクトP、後述する表現要素T1等も表示される。
【0028】
表現手段43は、仮想空間S内に配置され、光の少なくとも一部が透過する表現要素T1の疑似的な3次元表現をゲーム画面G上で行う。本実施の形態においては、
図4に示すように、半透明の球体T1を例示している。表現要素T1は、一部に光が透過するものであれば特に制限されない。本例のような一定の形状を有する物体、キャラクタ(例えば人の手のひらにおける光の透過表現)等に限られず、例えば、後述する煙等の細かい粒子が含まれる気体、または、水、血等の液体等のように一定の形状を有しない流体要素でもよい。
【0029】
[表現処理]
ビルボード配置手段45は、仮想空間Sにおける表現要素T1を表現すべき位置にビルボードB1を配置する。ビルボードB1は、仮想空間Sの所定座標位置に配置されている。なお、これに代えて、ビルボード配置手段45は、ビルボードB1を移動オブジェクトに付随して動くように配置してもよい。
【0030】
ビルボードB1は、平面要素D1と、当該平面要素D1内に設けられた所定の中心点A1と、を有し、平面要素D1が仮想カメラCの位置を向くように中心点A1回りに回動する。すなわち、平面要素D1は、仮想カメラCの中心点A1に対する位置が変化しても、後述する流体要素T1の表示面が仮想カメラCの位置と中心点A1とを結ぶ線分F1に直交するように配置される。平面要素D1自体は、ゲーム画面G上には表示されない(透明である)が、
図3および
図4においては分かり易くするために明示している。
【0031】
なお、ビルボードB1は、中心点A1回りの回動が所定範囲に制限されていてもよい。例えば、ビルボードB1は、中心点A1を含む鉛直軸回りの回動のみが許容され、高さ方向には回動しないこととしてもよい。この場合、仮想カメラCは、高さ方向の角度(俯仰角)が変わらないことが好ましい。
【0032】
このようなビルボードB1の平面要素D1上に、表現要素T1が描画されることにより、仮想カメラCの表現要素T1に対する位置が変化しても、当該表現要素T1が描画されるビルボードB1の平面要素D1が仮想カメラCの位置を向く。したがって、仮想カメラCの撮影範囲U内にビルボードB1が位置する限り、ゲーム画面G内では常に平面要素D1上に描画された表現要素T1が表示される。
【0033】
ここで、ゲームデータ30bには、表現要素T1に関するデータとして、表現要素T1を描画するための描画データと、ビルボードB1の平面要素D1上に描画された表現要素T1におけるビルボードB1上の2次元座標と、当該2次元座標の各座標位置における表現要素T1の厚み情報との相関関係を表す2次元の厚みマップのデータとが含まれている。
【0034】
図5は、本実施の形態における表現要素の2次元の厚みマップを概念的に示す図である。
図5に示すように、ビルボードB1の平面要素D1には、2次元座標が設定されている。
図5の例においては、平面要素D1において横軸をx、縦軸をyに取っている。x軸は平面要素D1の縦方向の二等分線に取り、y軸は平面要素D1の左辺となっている。x軸は0が平面要素D1の左端に位置し、正の値x
mが平面要素D1の右端に位置する。本例において、説明を容易にするために、半透明の球体として描画される表現要素T1は、中心が平面要素D1の中心点に一致している。なお、本例においては、ビルボードB1の中心点A1も、平面要素D1の中心点に一致している。ただし、これに限られず、ビルボードB1の中心点A1は、平面要素D1上のどこに位置してもよい。また、表現要素T1の中心は、平面要素D1上のどこに位置してもよい。前述したように、表現要素T1自体が特定の形状を有していなくてもよい。
【0035】
平面要素D1の2次元座標には、表現要素T1に応じた厚みが設定される。本例において、厚みが階段状に(離散的な値として)設定されている。
図5のビルボードB1上には、このことが分かり易いように、厚みが等しい領域を示す境界線Td1〜Td6が表現要素T1上に示されている。さらに、
図5の下のグラフは、x軸上において設定された表現要素T1の厚みdを示している。平面要素D1の垂直方向(仮想カメラCの位置と中心点A1とを結ぶ線分F1)から見たとき、球状の表現要素T1の外端部は薄く、表現要素T1の中心部が厚くなるため、厚みが等しい領域を示す境界線Td1〜Td6は、同心円状となる。同様に、
図5の下のグラフにおいても、x軸上における平面要素D1の厚みdも外端部の厚みd1から中心部の厚みd6に段階的に大きくなっていることが示されている。
【0036】
このような厚みdの情報が、平面要素D1に描画される表現要素T1の描画データの描画座標に対応して、平面要素D1の全領域にわたって予め設定されている。そして、平面要素D1全域の厚みdの情報が2次元の厚みマップとしてゲームデータ30bに記憶されている。
【0037】
なお、上記例においては、グラフによって可視化した例を示したが、2次元の厚みマップは、平面要素D1上に設定された2次元座標の各座標に対応して厚みの情報が読み出し可能である限りどのような構成であってもよい。また、本例においては厚みが階段状に設定された例を示したが、数式等を用いて連続的な値として設定されてもよい。
【0038】
データ取得手段46は、表現要素T1を平面要素D1上に描画する際、表現要素T1の描画データと、当該表現要素T1が描画される平面要素D1上における2次元の厚みマップのデータと、をゲームデータ30bから取得する。
【0039】
透過度設定手段47は、表現要素T1の厚み情報に基づいて、仮想空間Sに配置した光源Lからの光の表現要素T1における透過度を設定する。これによれば、2次元の表現要素T1を3次元的に見せるビルボードB1上の2次元座標と各座標位置における表現要素T1の厚み情報との相関関係を示す2次元の厚みマップに基づいて、仮想空間Sに配置した光源Lからの光の表現要素における透過度が設定される。すなわち、表現要素T1において厚みdがより大きい箇所ほど(d1からd6へ向かうほど)光の透過度がより低く設定され、厚みdがより小さい箇所ほど(d6からd1へ向かうほど)光の透過度がより高く設定される。球状の表現要素T1の場合、表現要素T1の中心部ほど光が透過せず暗くなり、外端部ほど光が透過して明るくなるような表現態様となる。
【0040】
このように、仮想カメラCの位置の変更に伴って当該仮想カメラCの位置に向くようにビルボードB1が回動することにより、ビルボードB1の平面要素D1上に表示される表現要素T1を疑似的に3次元的に表現することができる。さらに、2次元のビルボードB1上の各2次元座標における表現要素T1の厚み情報に基づいて透過度が設定される。したがって、ビルボードB1を用いることにより光が透過する表現要素T1の表示を軽い負荷で行うことができるとともに、ビルボードB1上の2次元の厚みマップを用いて表現要素T1における3次元的な光の透過表現を軽い負荷で実現することができる。
【0041】
ここで、透過度設定手段47は、ビルボードB1の向き(仮想カメラCの位置と中心点A1とを結ぶ線分F1)と光源LからビルボードB1の平面要素D1への光の入射方向との角度、すなわち、光源LからビルボードB1の平面要素D1への入射角に応じて、光源Lからの光の表現要素T1への透過度を変化させてもよい。
図6は、本実施の形態におけるビルボードと光源との位置関係を示す図である。
【0042】
図6に示すように、光源Lから平面要素D1への光(入射光)Jの入射角をθtとする。光源Lが仮想カメラCの位置と中心点A1とを結ぶ線分F1上かつビルボードB1を基準として仮想カメラCとは反対側に位置する場合(仮想カメラCに対して完全な逆光の場合)の入射角θt=0°とする。このとき、例えば、透過度設定手段47は、θtが0°のときの平面要素D1の各2次元座標上における透過度を100%とすると、θtが大きくなるほど当該透過度が低下し、θtが180°のときの透過度が0%になるように表現要素T1における光の透過度を変化させる。なお、入射角θtと透過度との対応関係は、これに限られず、例えば、入射角θtが90°のときの透過度が0%になるように表現要素T1における光の透過度を変化させてもよい。このように、光源Lからの光の入射角θtに応じて表現要素T1における光の透過度を変化させることにより、より自然な表現を行うことができる。
【0043】
さらに、光源Lから平面要素D1への光の反射を考慮してもよい。この場合、反射度設定手段48は、表現要素T1の座標位置における光源Lからの光の表現要素T1における反射度を設定する。反射度設定手段48も、表現要素T1の厚み情報に基づいて、仮想空間Sに配置した光源Lからの光の表現要素T1への反射度を設定してもよい。これに代えて、反射度設定手段48は、表現要素T1の厚み情報によらず、ビルボードB1の平面要素D1において反射する光を考慮した通常のレンダリングを行うこととしてもよい。
【0044】
光源Lから平面要素D1への光の反射を考慮する場合、表現手段43は、透過度の表現要素T1への影響度と反射度の表現要素T1への影響度とを、光源LからビルボードB1の平面要素D1への入射角θtに応じて変化させる。前述したように、透過度設定手段47は、θtが大きくなるほど透過度が低下し、θtが小さくなるほど透過度が上昇するように、透過度を設定する。また、反射度設定手段48は、θtが小さくなるほど(θr=180°−θtが大きくなるほど)反射度が低下し、θtが大きくなるほど(θrが小さくなるほど)反射度が上昇するように、反射度を設定する。このとき、表現要素T1に対する光の透過度についての影響度および反射度についての影響度の両者を加えた全体値を100とし、当該全体値が変化しないように(つねに100となるように)、入射角θtに応じて透過度および反射度が設定されてもよい。例えば、θt=0°のとき透過度:反射度=100:0であり、θt=180°のとき透過度:反射度=0:100であり、θt=90°のとき透過度:反射度=50:50であり、θt=45°のとき透過度:反射度75:25であるように設定される。
【0045】
このように、順光時と逆光時とでライティングの表現態様を変えつつ、2つの表現態様の切り替えをシームレスに行うことにより、より自然な表現を行うことができる。
【0046】
さらに、光の反射を考慮に入れる態様に加えてまたはこれに代えて、透過度設定手段47は、表現要素T1の座標位置における光の散乱現象を考慮して透過度を設定してもよい。
図7は、
図6の位置関係において光の散乱現象を考慮した場合の透過度の決定態様を説明するための図である。
【0047】
本例においては、ビルボードB1の中心点A1を中心とする表現要素T1を光を散乱させる粒子に見立てて、入射する光源Lからの光(入射光)Jが表現要素T1において散乱する現象が考慮される。
図7においては、ビルボードB1が中心点A1回りに回動することによって疑似的に3次元表現される表現要素T1を、球状の仮想的な外形T1vとして示している。光源Lからの入射光Jは、表現要素T1(の仮想的な外形T1v)において散乱し、散乱光が表現要素T1の周囲に向かって放射される。
【0048】
図7においては、散乱の一例としてミー散乱による散乱光を模式した例を示している。ミー散乱においては、入射光Jの進行方向と同じ方向に散乱する散乱光ほど光の強度が大きくなる。
図7においては、散乱光として入射光Jの進行方向と同じ方向成分しかない(入射光Jの進行方向に垂直な方向成分がない)散乱光S1および入射光Jの進行方向とは反対方向の成分しかない散乱光S6を含み、表現要素T1の仮想的な外形T1vの周囲を10等分する10個の散乱光S1,S21,S22,S31,S32,S41,S42,S51,S52,S6を矢印で示している。この場合において、各散乱光の強度は、S6<S51=S52<S41=S42<S31=S32<S21=S22<S1(<J)となる。
【0049】
透過度設定手段47は、散乱光の進行方向が仮想カメラCの位置と中心点A1とを結ぶ線分F1において仮想カメラCに向かう方向の散乱光(
図7においては散乱光S21)の強度を考慮して表現要素T1の透過度を決定する。言い換えると、光源LからビルボードB1の平面要素D1への入射角θtに一致する散乱角θsで散乱する散乱光の強度が考慮される。例えば、散乱角θs=0における散乱光(基準散乱光)S1による透過率を1として、散乱角θsが大きくなるほど透過率が低下するような1以下の相対比率(減衰比率)が散乱角θsに応じて設定される。この場合、
図7の例において、散乱光S21の基準散乱光S1に対する減衰比率を0.7とすると、透過度設定手段47は、表現要素T1の厚み情報に基づいて算出された光の透過度に減衰比率である0.7を掛けた値をビルボードB1上の各座標位置における透過度として設定する。なお、基準散乱光は、他の散乱角θsにおける散乱光(例えば散乱光S6)でもよい。この場合、各散乱光の相対比率は、1以上を取り得る。また、基準散乱光を設けずに、散乱角θsごとに透過度の補正値が設定されてもよい。
【0050】
このように、本例においては、実際の散乱現象に基づいて、ビルボードB1上に表現される表現要素T1の透過度が設定される。したがって、表現要素T1の厚み情報に基づく光の透過度を散乱現象に基づいて補正することにより、表現要素T1のよりリアルな陰影表現を実現することができる。
【0051】
[その他の例]
上記例では、表現要素T1として球状の光透過物をビルボードB1の平面要素D1上に静止画として表示する態様を示したが、ビルボード上に描画される表現要素は、ビルボードの平面要素上を移動する表示態様としてもよい。すなわち、表現手段43は、ビルボードの平面要素上に、アニメーションまたは後述する流体の2次元シミュレーション等に基づく動画を表示してもよい。また、複数のビルボードを用いて一連の表現を行ってもよい。
【0052】
図8は、本実施の形態の他の例におけるビルボード上の表現要素が撮影されたゲーム画面を示す図である。本例において、仮想カメラC(プレイヤキャラクタP)と光源Lとの間に複数(7つ)のビルボードB2〜B8が配置された状態となっている。各ビルボードB2〜B8の各平面要素D2〜D8には、表現要素T2〜T8が描画され、ゲーム画面G内に表示される。表現要素T2〜T8は、ゲーム画面Gにおける右下位置から左上位置の方向(矢符Va−Vb間)に流れていく一連の流体要素(煙等の細かい粒子が含まれた気体)として表現されている。本例において、ビルボードB2〜B8の各中心点A2〜A8は仮想空間S内に固定配置され、各表現要素T2〜T8は、各平面要素D2〜D8内を移動するような描画データに基づいて描画される。
【0053】
ここで、本例においては、表現要素T2〜T8によって表現される一連の流体要素が、ゲーム画面Gにおける右下位置から左上位置に行くに従って薄くなるように、表示される。
図8においては、表現要素T2〜T8が太いほど濃く表示され、表現要素T2〜T8が実線で示されるより破線で示される方が薄く表示されているものとする。このため、表現要素T2より表現要素T3,T4が全体的に薄く、表現要素T3,T4より表現要素T5〜T7が全体的に薄く、表現要素T5〜T7より表現要素T8が全体的に薄くなるように、各表現要素T2〜T8の平面要素D2〜D8上における2次元の厚みマップが設定される。
【0054】
なお、各平面要素D2〜D8において対応する表現要素T2〜T8のそれぞれが平面要素D2〜D8の2次元座標に応じて厚みが異なるように設定されてもよい。例えば、
図8においてビルボードB3,B4,B5,B7は、矢符Va−Vb間の中央部に位置する表現要素T3,T4,T5,T7ほど濃く、矢符Va−Vb間の端部に位置する(矢符Vaまたは矢符Vbに近い)表現要素T3,T4,T5,T7ほど薄くなるように、2次元の厚みマップが設定される。また、例えば、各平面要素D2〜D8における右下位置から左上位置に行くに従って厚みが薄くなるように2次元の厚みマップが設定されてもよい。
【0055】
各表現要素T2〜T8のための2次元の厚みマップは、各2次元座標位置における厚み情報が各表現要素T2〜T8の移動に伴って逐次書き換えられる。これにより、表現要素T2〜T8が平面要素D2〜D8内を移動しても当該移動に合わせて光源Lからの光の透過度を適切に設定することができる。
【0056】
本例において、2次元シミュレーション表示手段49は、ビルボードB2〜B8の平面要素D2〜D8上で表現要素T2〜T8の2次元シミュレーションを行い、その結果を平面要素D2〜D8上に表示する。2次元シミュレーションにおいて、ビルボードB2〜B8の平面要素D2〜D8には、それぞれ所定のグリッド(シミュレーショングリッド)が設定される。例えば、シミュレーショングリッドは、各平面要素D2〜D8を64マス×64マスに区分けするグリッドとして構成される。2次元シミュレーション表示手段49は、平面要素D2〜D8上における所定の流体発生源を起点とする流体要素(表現要素T2〜T8)の動きを平面要素D2〜D8上においてグリッド単位でシミュレーションする。
【0057】
2次元シミュレーションの方法は特に限定されず、公知のシミュレーション方法を種々適用可能である。例えば、2次元シミュレーションとしては、"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>等に記載された態様が例示できる。
【0058】
このように、2次元の流体要素(表現要素T2〜T8)を3次元的に見せるビルボードB2〜B8と2次元シミュレーションとを組み合わせることにより、流体の表現を豊かにしつつ当該流体表現のための処理負荷の増大を抑制することができる。すなわち、流体表現を含む3次元の仮想空間の表示に関する処理速度の低減を抑制することができる。
【0059】
上記のように、2次元シミュレーションまたはアニメーションによって表現要素T2〜T8を描画する場合には、当該2次元シミュレーションに予め設定されている「濃度」の項目を2次元の厚みマップの厚み情報として利用することができる。これにより、既存の描画ソフトウェアを用いて、光の透過表現を容易に実現することができる。
【0060】
2次元シミュレーションは、所定のシミュレーション条件に基づいて行われる。例えば、シミュレーション条件は、流体要素の性質(気体または液体の種類、流体要素自体の粘性等)、起点における流体要素の移動方向、初速、重力の加わる方向等に基づいて一ないし複数のパラメータとして設定される。さらに、2次元シミュレーション表示手段49は、ビルボードB2〜B8の平面要素D2〜D8と仮想空間Sにおける所定の要素との仮想空間Sにおける位置関係に基づいて、所定の流体が所定の要素からの干渉を受けるように2次元シミュレーションを行う。なお、仮想空間Sにおける所定の要素には、ビルボードB2〜B8が配置されるキャラクタ、オブジェクト等の移動に伴うビルボードB2〜B8の動き(動く場合)、風、雨等の環境要素等が含まれる。
【0061】
これにより、外部要素から流体への3次元的な干渉がビルボードB2〜B8上の平面的な干渉要素として扱われる。すなわち、ビルボードB2〜B8に投影された外部要素による平面的な干渉を考慮して流体の2次元シミュレーションが行われる。これにより、3次元シミュレーションにおいて3次元的な干渉を考慮する場合に比べてシミュレーションの負荷を格段に低減させることができる。
【0062】
例えば、3次元シミュレーションにおいて64マス×64マス×64マスのグリッドを用いた立方体内で3次元シミュレーションを行う場合、一のグリッドにおける外部要素による干渉を考慮しようとすると、一平面だけではなく当該平面の奥行き方向からの干渉も考慮する必要がある。一方、平面要素D2〜D8(64マス×64マス)内での2次元シミュレーションではこのような奥行き方向からの干渉は考慮されない。したがって、単にグリッドの数が減る(1/64になる)だけでなく、立体的なベクトル演算が不要となるため、ビルボードB2〜B8上で2次元シミュレーションを行うことは、3次元シミュレーションを行う場合に比べて格段に処理負荷が小さくなる。
【0063】
本例において、ビルボードB2における流体発生源は、当該ビルボードB2の平面要素D2の右下位置に設定される。他のビルボードB3〜B8における流体発生源は、各ビルボードB3〜B8の上流側に位置するビルボードにおける表現要素が対応する平面要素の端部に到達した位置に近い位置に設定される。例えば、ビルボードB2の上方に位置するビルボードB3における流体発生源は、平面要素D3の下端部に設定され、ビルボードB2の左方に位置するビルボードB4における流体発生源は、平面要素D4の右端部に設定される。これにより、ビルボードB2〜B8全体で一連の流体要素の連続的な流れを表現することができる。
【0064】
なお、流体発生源は、上記の例のように、ビルボードB2〜B8の平面要素D2〜D8上の所定位置に設けられてもよいが、移動オブジェクトまたは固定オブジェクトにビルボードB2〜B8が配置される場合には、当該移動オブジェクトまたは固定オブジェクトの座標位置に関連付けて(当該オブジェクトの内部または外部に)設定され、ビルボードB2〜B8と当該流体発生源とが重なったときに、当該重なった箇所から一連の流体要素がビルボードB2〜B8上に発生してもよい。
【0065】
また、表現要素T2〜T8を用いて表現される一連の流体要素は、上記例の煙だけでなく、霧、靄、水蒸気、炎等の細かい粒子が含まれる気体または水、血等の液体であってもよい。また、上記例では複数のビルボードB2〜B8の中心点A2〜A8が仮想空間S内に固定配置される例を示したが、一または複数のビルオードが中心点の仮想空間S内における移動(例えば矢符Vaまたは矢符Vbの方向への移動)に応じて仮想空間S内に配置されるオブジェクトとは独立して仮想空間S内を移動してもよい。
【0066】
[変形例]
以上、本発明の実施形態について説明したが、本発明は上記実施の形態に限定されるものではなく、その趣旨を逸脱しない範囲内で種々の改良、変更、修正が可能である。
【0067】
例えば、上記実施の形態において、仮想空間S内に1つの光源Lが配置された場合について説明したが、仮想空間S内に複数の光源が配置されてもよい。この場合、透過度設定手段47および反射度設定手段48は、各光源のビルボードに対する位置に応じて各光源の透過度および反射度の影響度を設定し、当該影響度に基づいて、各光源からの光の透過度および反射度を平面要素上の表現要素に反映させる。また、各光源の透過度および反射度の影響度は、ビルボードとの距離に応じて変化させてもよい。
【0068】
また、表現要素を表示するビルボードの配置態様は、仮想空間S内において1枚ずつ配置される態様に限られない。例えば複数のビルボードが連設された構成であってもよい。これは、いわゆるリボンと一般的に呼称され、仮想空間Sの所定位置に配置された一のビルボードの端部に他のビルボード(複数でもよい)が接続されたものである。このような配置態様は、長く立ちのぼる煙(のろし)等の表現を行う際に有効となる。
【0069】
2次元シミュレーション表示手段49は、仮想カメラCとビルボードとの距離に応じて当該ビルボード上の表現要素の表示または非表示(あるいは2次元シミュレーションの実行または停止)を切り替えてもよい。この場合、2次元シミュレーション表示手段49は、仮想カメラCとビルボードとの距離が所定距離より遠い場合に、ビルボード上の表現要素の表示を非表示とする、または、2次元シミュレーションを停止する。これによって、ビルボード上の表現要素がゲーム画面上であまり見えない場合に、表現要素の表示を行わないことにより、処理負荷の低減を行うことができる。なお、ビルボード上の表現要素の表示または非表示(あるいは2次元シミュレーションの実行または停止)の切り替えは段階的に行うことが好ましい。
【0070】
また、ビルボードがオブジェクトに配置されている場合において、2次元シミュレーション表示手段49は、仮想カメラCの向きに対するオブジェクトの向きに応じてビルボード上の表現要素の表示または非表示(あるいは2次元シミュレーションの実行または停止)を切り替えてもよい。また、ビルボードが移動オブジェクトに配置されている場合において、2次元シミュレーション表示手段49は、仮想カメラCから見て移動オブジェクトが固定オブジェクト等の遮蔽部に隠れたとき、2次元シミュレーションを変化させてもよい(例えばシミュレーションの速度を遅くしてもよい)。
【0071】
また、上記実施の形態において、仮想カメラCは、プレイヤキャラクタPの背後に配置され、プレイヤキャラクタPの移動に伴って移動するように構成されることを例示した。しかし、これに限られず、例えば仮想カメラCをプレイヤキャラクタPとは独立して移動可能としてもよいし、仮想カメラCを仮想空間Sの所定の位置に固定配置する態様としてもよい。仮想カメラCを固定配置する場合、特に、複数の仮想カメラCで異なる角度から同じオブジェクトを撮影する態様において、当該オブジェクトに表現要素を表示する場合に、ビルボードを用いた上記表現態様が好適に適用され得る。
【0072】
また、一の表現要素(一連の流体要素等)に対して複数のビルボードを用いる場合、2次元シミュレーション表示手段49は、表現要素を表示するビルボードの数(2次元シミュレーションを行うビルボードの数)を所定数(上限数)に制限してもよい。これにより、処理負荷の増大を抑えつつ、過不足のない表現を行うことができる。
【0073】
また、上記実施の形態において、アクションゲームを例示したが、ビルボードを用いた上記表現態様は、ロールプレイングゲーム、シミュレーションゲームまたはシューティングゲーム等、3次元の仮想空間を用いる種々のゲームに適用可能である。
【0074】
また、上記実施の形態では据え置き型のゲーム装置について説明したが、携帯型のゲーム装置、携帯電話機、およびパーソナルコンピュータなどのコンピュータについても、本発明を好適に適用することができる。