(57)【特許請求の範囲】
【請求項１】
コンピュータを、
３次元の仮想空間を生成する仮想空間生成手段、
前記仮想空間に配置した仮想カメラで撮影した画像をゲーム画面として表示する画面表示手段、および
前記仮想空間内における光の少なくとも一部が透過する表現要素の疑似的な３次元表現を前記ゲーム画面上で行う表現手段、として機能させ、
前記表現手段は、
平面要素を有し、前記平面要素が前記仮想カメラの位置を向くように当該平面要素内に設けられた所定の中心点回りに回動するビルボードを、前記仮想空間に配置するビルボード配置手段と、
前記ビルボード上に描画する前記表現要素の描画データと、前記ビルボード上に描画された前記表現要素における前記ビルボード上の２次元座標と各座標位置における前記表現要素の厚み情報との相関関係を示す２次元の厚みマップのデータと、を取得するデータ取得手段と、
前記表現要素の厚み情報に基づいて、前記仮想空間に配置した光源からの光の前記表現要素における透過度を設定する透過度設定手段と、を含む、ゲームプログラム。
【請求項２】
前記透過度設定手段は、前記光源から前記ビルボードの前記平面要素への入射角に応じて、前記光源からの光の前記表現要素における透過度を変化させる、請求項１に記載のゲームプログラム。
【請求項３】
前記表現手段は、前記表現要素の座標位置における前記光源からの光の前記表現要素における反射度を設定する反射度設定手段を含み、
前記表現手段は、前記透過度の前記表現要素への影響度と前記反射度の前記表現要素への影響度とを、前記光源から前記ビルボードの前記平面要素への入射角に応じて変化させる、請求項１に記載のゲームプログラム。
【請求項４】
前記表現要素は、一連の流体要素であり、
前記コンピュータを、
前記ビルボードの前記平面要素上で一連の流体要素の２次元シミュレーションを行い、その結果を前記平面要素上に表示する、２次元シミュレーション表示手段、として機能させる、請求項１から３の何れかに記載のゲームプログラム。
【請求項５】
請求項１から４の何れかに記載のゲームプログラムを記憶したプログラム記憶部と、
前記プログラム記憶部に記憶されたプログラムを実行するコンピュータとを備えた、ゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームプログラムおよびゲームシステムに関する。
【背景技術】
【０００２】
従来、アクションゲームまたはロールプレイングゲーム等、ユーザの操作に応じてプレイヤキャラクタ等の操作対象を仮想の３次元の仮想空間内で動作させるゲームがある。３次元の仮想空間には様々なオブジェクト等が配置され、それらはコンピュータグラフィックスによって生成されている。仮想空間に配置された仮想カメラで撮影した画像がゲーム画面として表示され、ユーザはゲーム画面を見ながら仮想空間に配置されたプレイヤキャラクタ等の操作を行う。
【０００３】
このような３次元の仮想空間を用いたゲームにおいて、３次元の仮想空間に配置される３次元のオブジェクト等の表現要素に、仮想空間内の所定位置に配置された光源からの光の影響を反映することでよりリアルな３次元表示を行うことができる。特に、仮想カメラと光源との間に光を透過する３次元オブジェクトが配置された場合または透過光自体が３次元オブジェクトとして配置された場合に、当該光を透過するオブジェクト等における光源からの光の透過表現を行うための技術（例えばボリューメトリックライティングとも呼ばれる）が知られている（例えば非特許文献１，２参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Naty Hoffman, Arcot J Preetham, "Rendering Outdoor Light Scattering in Real Time", Game Developers Conference 2002, (ATI Technologies Inc.), [online], [平成２８年１月１３日検索], < http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/ATI-LightScattering.pdf>
【非特許文献２】Balazs Toth, Tamas Umenhoffer, "Real-Time Volumetric Lighting in Participating Media", Eurographics 2009, [online], [平成２８年１月１３日検索], <http://sirkan.iit.bme.hu/~szirmay/lightshaft.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>等に記載された態様が例示できる。
【００５８】
このように、２次元の流体要素（表現要素Ｔ２〜Ｔ８）を３次元的に見せるビルボードＢ２〜Ｂ８と２次元シミュレーションとを組み合わせることにより、流体の表現を豊かにしつつ当該流体表現のための処理負荷の増大を抑制することができる。すなわち、流体表現を含む３次元の仮想空間の表示に関する処理速度の低減を抑制することができる。
【００５９】
上記のように、２次元シミュレーションまたはアニメーションによって表現要素Ｔ２〜Ｔ８を描画する場合には、当該２次元シミュレーションに予め設定されている「濃度」の項目を２次元の厚みマップの厚み情報として利用することができる。これにより、既存の描画ソフトウェアを用いて、光の透過表現を容易に実現することができる。
【００６０】
２次元シミュレーションは、所定のシミュレーション条件に基づいて行われる。例えば、シミュレーション条件は、流体要素の性質（気体または液体の種類、流体要素自体の粘性等）、起点における流体要素の移動方向、初速、重力の加わる方向等に基づいて一ないし複数のパラメータとして設定される。さらに、２次元シミュレーション表示手段４９は、ビルボードＢ２〜Ｂ８の平面要素Ｄ２〜Ｄ８と仮想空間Ｓにおける所定の要素との仮想空間Ｓにおける位置関係に基づいて、所定の流体が所定の要素からの干渉を受けるように２次元シミュレーションを行う。なお、仮想空間Ｓにおける所定の要素には、ビルボードＢ２〜Ｂ８が配置されるキャラクタ、オブジェクト等の移動に伴うビルボードＢ２〜Ｂ８の動き（動く場合）、風、雨等の環境要素等が含まれる。
【００６１】
これにより、外部要素から流体への３次元的な干渉がビルボードＢ２〜Ｂ８上の平面的な干渉要素として扱われる。すなわち、ビルボードＢ２〜Ｂ８に投影された外部要素による平面的な干渉を考慮して流体の２次元シミュレーションが行われる。これにより、３次元シミュレーションにおいて３次元的な干渉を考慮する場合に比べてシミュレーションの負荷を格段に低減させることができる。
【００６２】
例えば、３次元シミュレーションにおいて６４マス×６４マス×６４マスのグリッドを用いた立方体内で３次元シミュレーションを行う場合、一のグリッドにおける外部要素による干渉を考慮しようとすると、一平面だけではなく当該平面の奥行き方向からの干渉も考慮する必要がある。一方、平面要素Ｄ２〜Ｄ８（６４マス×６４マス）内での２次元シミュレーションではこのような奥行き方向からの干渉は考慮されない。したがって、単にグリッドの数が減る（１／６４になる）だけでなく、立体的なベクトル演算が不要となるため、ビルボードＢ２〜Ｂ８上で２次元シミュレーションを行うことは、３次元シミュレーションを行う場合に比べて格段に処理負荷が小さくなる。
【００６３】
本例において、ビルボードＢ２における流体発生源は、当該ビルボードＢ２の平面要素Ｄ２の右下位置に設定される。他のビルボードＢ３〜Ｂ８における流体発生源は、各ビルボードＢ３〜Ｂ８の上流側に位置するビルボードにおける表現要素が対応する平面要素の端部に到達した位置に近い位置に設定される。例えば、ビルボードＢ２の上方に位置するビルボードＢ３における流体発生源は、平面要素Ｄ３の下端部に設定され、ビルボードＢ２の左方に位置するビルボードＢ４における流体発生源は、平面要素Ｄ４の右端部に設定される。これにより、ビルボードＢ２〜Ｂ８全体で一連の流体要素の連続的な流れを表現することができる。
【００６４】
なお、流体発生源は、上記の例のように、ビルボードＢ２〜Ｂ８の平面要素Ｄ２〜Ｄ８上の所定位置に設けられてもよいが、移動オブジェクトまたは固定オブジェクトにビルボードＢ２〜Ｂ８が配置される場合には、当該移動オブジェクトまたは固定オブジェクトの座標位置に関連付けて（当該オブジェクトの内部または外部に）設定され、ビルボードＢ２〜Ｂ８と当該流体発生源とが重なったときに、当該重なった箇所から一連の流体要素がビルボードＢ２〜Ｂ８上に発生してもよい。
【００６５】
また、表現要素Ｔ２〜Ｔ８を用いて表現される一連の流体要素は、上記例の煙だけでなく、霧、靄、水蒸気、炎等の細かい粒子が含まれる気体または水、血等の液体であってもよい。また、上記例では複数のビルボードＢ２〜Ｂ８の中心点Ａ２〜Ａ８が仮想空間Ｓ内に固定配置される例を示したが、一または複数のビルオードが中心点の仮想空間Ｓ内における移動（例えば矢符Ｖａまたは矢符Ｖｂの方向への移動）に応じて仮想空間Ｓ内に配置されるオブジェクトとは独立して仮想空間Ｓ内を移動してもよい。
【００６６】
［変形例］
以上、本発明の実施形態について説明したが、本発明は上記実施の形態に限定されるものではなく、その趣旨を逸脱しない範囲内で種々の改良、変更、修正が可能である。
【００６７】
例えば、上記実施の形態において、仮想空間Ｓ内に１つの光源Ｌが配置された場合について説明したが、仮想空間Ｓ内に複数の光源が配置されてもよい。この場合、透過度設定手段４７および反射度設定手段４８は、各光源のビルボードに対する位置に応じて各光源の透過度および反射度の影響度を設定し、当該影響度に基づいて、各光源からの光の透過度および反射度を平面要素上の表現要素に反映させる。また、各光源の透過度および反射度の影響度は、ビルボードとの距離に応じて変化させてもよい。
【００６８】
また、表現要素を表示するビルボードの配置態様は、仮想空間Ｓ内において１枚ずつ配置される態様に限られない。例えば複数のビルボードが連設された構成であってもよい。これは、いわゆるリボンと一般的に呼称され、仮想空間Ｓの所定位置に配置された一のビルボードの端部に他のビルボード（複数でもよい）が接続されたものである。このような配置態様は、長く立ちのぼる煙（のろし）等の表現を行う際に有効となる。
【００６９】
２次元シミュレーション表示手段４９は、仮想カメラＣとビルボードとの距離に応じて当該ビルボード上の表現要素の表示または非表示（あるいは２次元シミュレーションの実行または停止）を切り替えてもよい。この場合、２次元シミュレーション表示手段４９は、仮想カメラＣとビルボードとの距離が所定距離より遠い場合に、ビルボード上の表現要素の表示を非表示とする、または、２次元シミュレーションを停止する。これによって、ビルボード上の表現要素がゲーム画面上であまり見えない場合に、表現要素の表示を行わないことにより、処理負荷の低減を行うことができる。なお、ビルボード上の表現要素の表示または非表示（あるいは２次元シミュレーションの実行または停止）の切り替えは段階的に行うことが好ましい。
【００７０】
また、ビルボードがオブジェクトに配置されている場合において、２次元シミュレーション表示手段４９は、仮想カメラＣの向きに対するオブジェクトの向きに応じてビルボード上の表現要素の表示または非表示（あるいは２次元シミュレーションの実行または停止）を切り替えてもよい。また、ビルボードが移動オブジェクトに配置されている場合において、２次元シミュレーション表示手段４９は、仮想カメラＣから見て移動オブジェクトが固定オブジェクト等の遮蔽部に隠れたとき、２次元シミュレーションを変化させてもよい（例えばシミュレーションの速度を遅くしてもよい）。
【００７１】
また、上記実施の形態において、仮想カメラＣは、プレイヤキャラクタＰの背後に配置され、プレイヤキャラクタＰの移動に伴って移動するように構成されることを例示した。しかし、これに限られず、例えば仮想カメラＣをプレイヤキャラクタＰとは独立して移動可能としてもよいし、仮想カメラＣを仮想空間Ｓの所定の位置に固定配置する態様としてもよい。仮想カメラＣを固定配置する場合、特に、複数の仮想カメラＣで異なる角度から同じオブジェクトを撮影する態様において、当該オブジェクトに表現要素を表示する場合に、ビルボードを用いた上記表現態様が好適に適用され得る。
【００７２】
また、一の表現要素（一連の流体要素等）に対して複数のビルボードを用いる場合、２次元シミュレーション表示手段４９は、表現要素を表示するビルボードの数（２次元シミュレーションを行うビルボードの数）を所定数（上限数）に制限してもよい。これにより、処理負荷の増大を抑えつつ、過不足のない表現を行うことができる。
【００７３】
また、上記実施の形態において、アクションゲームを例示したが、ビルボードを用いた上記表現態様は、ロールプレイングゲーム、シミュレーションゲームまたはシューティングゲーム等、３次元の仮想空間を用いる種々のゲームに適用可能である。
【００７４】
また、上記実施の形態では据え置き型のゲーム装置について説明したが、携帯型のゲーム装置、携帯電話機、およびパーソナルコンピュータなどのコンピュータについても、本発明を好適に適用することができる。
【産業上の利用可能性】
【００７５】
本発明は、３次元の仮想空間を用いたゲームにおいて、光が透過する表現要素の表示および当該表現要素における光の透過表現を軽い負荷で行うために有用である。
【符号の説明】
【００７６】
２  ゲーム装置
３０ａ  ゲームプログラム
３０ｂ  ゲームデータ
４１  仮想空間生成手段
４２  画面表示手段
４３  表現手段
４４  移動オブジェクト制御手段
４５  ビルボード配置手段
４６  データ取得手段
４７  透過度設定手段
４８  反射度設定手段
４９  ２次元シミュレーション表示手段
５０  キャラクタ制御手段
Ａ１〜Ａ８  中心点
Ｂ１〜Ｂ８  ビルボード
Ｃ  仮想カメラ
Ｄ１〜Ｄ８  平面要素
Ｌ  光源
Ｓ  仮想空間
Ｔ１〜Ｔ８  表現要素
【図１】
0006351647.tif 000002
【図２】
0006351647.tif 000003
【図３】
0006351647.tif 000004
【図４】
0006351647.tif 000005
【図５】
0006351647.tif 000006
【図６】
0006351647.tif 000007
【図７】
0006351647.tif 000008
【図８】
0006351647.tif 000009