説明

ゲームプログラム、そのゲームプログラムを記録した記録媒体及びコンピュータ

【課題】描画対象に水面オブジェクト等の面状半透明オブジェクトが含まれる場合、他の半透明オブジェクトの描画を適切に行う。
【解決手段】ゲームプログラムは、コンピュータを、仮想空間上に配置され、描画対象となる半透明オブジェクトの抽出手段と、半透明オブジェクトのうち水面オブジェクトWが含まれているか否かの判別手段と、Wの代表点wを取得し、その代表点wを含む境界面を境にして領域P,Qを設定する領域設定手段と、領域P,Qごとに、領域内の半透明オブジェクトについての領域内描画順を決定し、領域P,Q及び水面オブジェクトWに対して仮想カメラKから遠い順となる領域外描画順を決定する描画順決定手段と、領域外描画順にしたがって領域P,Q内の半透明オブジェクト及び水面オブジェクトWの描画を行う描画手段として機能させ、領域P,Q内の半透明オブジェクトの描画は、この領域内描画順にしたがって描画する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、三次元の仮想空間上に配置される半透明オブジェクトを所定の視点から投影した二次元画像を作成し、表示画面に表示するゲーム装置に適用されるゲームプログラムに関し、またそのゲームプログラムを記録した記録媒体、及びコンピュータに関するものである。
【背景技術】
【0002】
従来、三次元のコンピュータグラフィックス(Computer Graphics、以下、「三次元のコンピュータグラフィックス」を「三次元CG」という。)を用いた映像によって、ゲーム展開を表示するゲーム装置が知られている。この種のゲーム装置では、三次元CGの映像を作成する際には、数値化データとして与えられるオブジェクト(例えば物体や図形等)が、演算によって二次元画像にして生成され表示画面に表示される。
【0003】
上記ゲーム装置で実行可能なゲームの中には、例えば半透明状のモンスターが登場し、その半透明状のモンスターが海や湖等に生息する(例えばこのモンスターが海に潜ったり水面上に出現したりする)シーンが描画されるものがある。この場合、上記半透明状のモンスターは、半透明オブジェクトとして二次元画像に生成される。また、海や湖等は、それらの水面を表す半透明オブジェクト(以下、「面状半透明オブジェクト」という。)として二次元画像に生成される。
【0004】
ここで、近年のオブジェクトの描画処理では、一般にZバッファ法が用いられるが、モンスター等の半透明オブジェクトや海や湖等の面状半透明オブジェクトが描画される場合、Zバッファ法では描画できないため、Zソート法が用いられる。しかしながら、仮想空間上に、面状半透明オブジェクトとモンスター等の半透明オブジェクトとが配置された場合には、Zソート法では、以下に示すように、リアルな画像描画を行うことができないといった問題点があった。
【0005】
通常、Zソート法が用いられるときには、描画対象となる半透明オブジェクトが複数配置される場合には、複数の半透明オブジェクトの描画順が決定され、視点(仮想的に配置されたカメラ)から遠い順(カメラ座標系におけるZ値が大きい順)に描画が行われる。描画順が決定される際には、各半透明オブジェクトに設定された代表点の位置座標が一般に用いられ、オブジェクト単位でのZソートが行われる。代表点は、半透明オブジェクトの重心等に設定されることが多く、海や湖等の水面を有する面状半透明オブジェクトは、水面のほぼ中央の位置に設定されることが多い。
【0006】
しかしながら、海や湖等といった大きな水面を有する面状半透明オブジェクト(以下、「水面オブジェクト」という。)の場合、オブジェクト単位でのZソートでは代表点に基づいて描画順が決定されるため、水面下に位置する半透明オブジェクトの代表点と水面オブジェクトの代表点との視点に対する相対位置によっては、水面下にある半透明オブジェクトが水面上に浮かび上がるように描かれたり、水面上にある半透明オブジェクトが水面下に沈んでいるように描かれたりすることがあった。
【0007】
以下、図8を参照して、半透明オブジェクト及び水面オブジェクトを、仮想カメラを視点として描画する場合の描画順序を説明する。図8は、従来の三次元仮想空間モデルを側方から示した図である。この仮想空間モデルでは、水面オブジェクトWが配置され、水面オブジェクトWの水面下に半透明オブジェクトA,Bが配置され、水面オブジェクトWの水面に対して上方に半透明オブジェクトC,Dが配置されている。なお、仮想カメラKは、上方から水面を映し出す方向であって半透明オブジェクトA,B,C,D及び水面オブジェクトWだけを映し出す方向に視線が設定されている。
【0008】
この場合、水面オブジェクトWは、その代表点wが水面のほぼ中央の位置に設定され、各半透明オブジェクトA,B,C,Dの重心がそれぞれの代表点a,b,c,dとして設定される。
【0009】
これらのオブジェクトA,B,C,D,Wを、各代表点a,b,c,d,wを用いて仮想カメラKの座標系におけるZ値の大きい順(遠い順)に並べると、オブジェクトA,C,W,B,Dとなる。この順で、各オブジェクトA,B,C,D,Wが描画される。
【0010】
半透明オブジェクトBは、本来ならば、水面オブジェクトWの下側に配置されているため、水面オブジェクトWの下側に位置するように描画される必要がある。しかしながら、水面オブジェクトWの代表点wが水面のほぼ中央に設定され、オブジェクトの描画順が各オブジェクトA,B,C,D,Wの各代表点a,b,c,d,wから仮想カメラKまでの距離の遠い順に決定されるため、半透明オブジェクトBは、図9に示すように、水面オブジェクトWの下側に配置されるにもかかわらず、水面オブジェクトWの上側に位置するように描画されてしまうことになる。なお、図9は、図8に示す仮想カメラKから見た三次元仮想空間の二次元画像を示す。この図9において実線の半透明オブジェクトは水面の上にあることを示し、点線の半透明オブジェクトは水面の下にあることを示している。
【0011】
また、半透明オブジェクトCは、本来ならば、水面オブジェクトWより上側に配置されているため、水面オブジェクトWの上側に位置するように描画される必要がある。しかしながら、上記した水面オブジェクトWの代表点w及び描画順の設定により、半透明オブジェクトCは、図9に示すように、水面オブジェクトWの上側に配置されるにもかかわらず、水面オブジェクトWの下側に位置するように描画されてしまうことになる。
【0012】
そこで、このようなZソート法による描画方法に対し、Zソート法による描画順の対象を、オブジェクト単位とするのではなく、オブジェクトを構成するポリゴン単位とする方法も考えられる(例えば、特許文献1,2参照)。
【0013】
【特許文献1】特開2006−277329号公報
【特許文献2】特開2001−188921号公報
【0014】
このような方法によれば、例えば各ポリゴンに設定された代表点を基準にソートされるので、より詳細に描画順が設定され、上記したような水面オブジェクトに対する半透明オブジェクトの描画の不具合を解消することができる。
【0015】
しかしながら、この方法では、ポリゴンの代表点を基準にソートするので、描画処理の負荷が増大するといった問題点が生じる。特に、水面オブジェクトW等の水面で構成される半透明のオブジェクトは、他の半透明オブジェクトに比してポリゴン数が多大となるため、この問題点が顕著となる。
【発明の開示】
【発明が解決しようとする課題】
【0016】
本願発明は、上記した事情のもとで考え出されたものであって、描画対象に水面オブジェクト等の面状半透明オブジェクトが含まれる場合、他の半透明オブジェクトの描画を適切に行うことのできるゲームプログラム及びそのゲームプログラムを記録した記録媒体、及びコンピュータを提供することを、その課題とする。
【課題を解決するための手段】
【0017】
上記の課題を解決するため、本願発明では、次の技術的手段を講じている。
【0018】
本願発明の第1の側面によって提供されるゲームプログラムは、コンピュータを、三次元の仮想空間上に配置される半透明オブジェクトを所定の視点から投影した二次元画像を作成し、表示画面に表示するゲーム装置として機能させるためのゲームプログラムであって、前記コンピュータを、前記仮想空間上に配置され、描画対象となる半透明オブジェクトを抽出する抽出手段と、前記抽出手段によって抽出された前記半透明オブジェクトのうち、予め指定されている面状半透明オブジェクトが含まれているか否かを判別する判別手段と、前記判別手段によって前記面状半透明オブジェクトが含まれていると判別された場合、前記面状半透明オブジェクトの前記仮想空間上の位置に関連する座標点を取得する取得手段と、前記取得手段によって取得された座標点を含む面であって前記面状半透明オブジェクトの面方向に平行な境界面を境にして、前記仮想空間に複数の領域を設定する領域設定手段と、前記領域設定手段によって設定された領域ごとに、前記領域内に存在する前記半透明オブジェクトについての前記領域内での領域内描画順を決定するとともに、前記複数の領域及び前記面状半透明オブジェクトに対して前記所定の視点の位置から遠い順となる領域外描画順を決定する描画順決定手段と、前記領域外描画順にしたがって前記領域内に存在する前記半透明オブジェクト及び前記面状半透明オブジェクトの描画を行い、前記領域内に存在する前記半透明オブジェクトの描画を行うときにはこの領域内における前記領域内描画順にしたがって前記半透明オブジェクトを描画する描画手段と、して機能させることを特徴としている(請求項1)。
【0019】
好ましい実施の形態によれば、前記描画順決定手段は、前記領域内に存在する前記半透明オブジェクトのそれぞれの代表点の座標を用いて、前記所定の視点の位置から遠い順に前記領域内描画順を決定するとよい(請求項2)。
【0020】
他の好ましい実施の形態によれば、前記面状半透明オブジェクトの前記仮想空間上の位置に関連する座標点は、前記面状半透明オブジェクトの重心又は中心を示す代表点であるとよい(請求項3)。
【0021】
本願発明の第2の側面によって提供される記憶媒体は、本願発明の第1の側面によって提供されるゲームプログラムを記録したコンピュータ読み取り可能なものであることを特徴としている(請求項4)。
【0022】
本願発明の第3の側面によって提供されるコンピュータは、本願発明の第1の側面によって提供されるゲームプログラムを実行することを特徴としている(請求項5)。
【発明の効果】
【0023】
本願発明によれば、仮想空間上に配置され、描画対象となる半透明オブジェクトが抽出され、抽出された半透明オブジェクトのうち、予め指定されている面状半透明オブジェクトが含まれている場合、面状半透明オブジェクトについての仮想空間上の座標点を取得し、取得された座標点を含む境界面を境にして、仮想空間に複数の領域を設定する。次いで設定された領域ごとに、半透明オブジェクトについての領域内描画順を決定するとともに、複数の領域及び面状半透明オブジェクトについての領域外描画順を決定する。そして、この領域外描画順にしたがって半透明オブジェクト及び面状半透明オブジェクトの描画を行う。この場合、領域内に存在する半透明オブジェクトを描画するときには、領域内描画順にしたがって半透明オブジェクトを描画する。
【0024】
これにより、従来の構成のように、本来、視点を基準にして面状半透明オブジェクトより奥に描かれるはずの半透明オブジェクトが面状半透明オブジェクトより手前に描画されたり、本来、視点を基準にして面状半透明オブジェクトより手前に描かれるはずの半透明オブジェクトが面状半透明オブジェクトより奥に位置するように描画されたりすることがなくなり、半透明オブジェクトを適切に描画することができる。また、本発明によれば、オブジェクトを構成するポリゴンに対してZソート法による描画処理を行う必要もないので、処理負荷の増大化を招くこともない。
【発明を実施するための最良の形態】
【0025】
以下、本願発明の好ましい実施の形態を、添付図面を参照して具体的に説明する。
【0026】
図1は、本願発明の第1実施例に係るゲームプログラムが適用されるゲーム装置の一例を示すブロック構成図である。ゲーム装置1は、家庭用として用いられるテレビゲーム機であり、主として本体2及び操作コントローラ3によって構成されている。
【0027】
本体2には、インターフェース(後述)を介して操作コントローラ3が接続され、プレイヤは、この操作コントローラ3の操作部材を操作することにより、このゲーム装置1で起動されるゲームを開始させたり進行させたりすることができる。
【0028】
本体2には、ゲーム内容を表示するためのテレビジョン装置4が接続される。テレビジョン装置4には、ブラウン管や液晶ディスプレイ等の表示装置が備えられているとともに、ゲームの効果音を出力するための内蔵スピーカ4aが備えられている。
【0029】
本体2は、ゲームプログラム及びゲームデータが記録されたDVD−ROM(Digital Versatile Disc−ROM)5が装着可能とされている。また、本体2は、ゲームの途中結果等をゲームデータとして記録するためのメモリカード6が装着可能とされている。
【0030】
ゲーム装置1では、ゲームプログラム及びゲームデータが記録されたDVD−ROM5を本体2に装着し、本体2によってDVD−ROM5内のゲームプログラム及びゲームデータが読み込まれ、ゲームプログラムが実行されることにより、プレイヤがゲーム内容を楽しむことができるようになっている。
【0031】
ゲームプログラムには、本体2内に搭載されるCPU11(後述)に実行させるための処理手順や各種命令等が記述されている。また、ゲームプログラムには、操作コントローラ3からの操作信号に応じてゲーム画面や音声等を制御するための内容が含まれている。ゲームプログラムに係るゲームは、例えばプレイヤの分身となるゲームキャラクタが登場し、そのゲームキャラクタが敵キャラクタとしての例えばモンスターを討伐することを主な目的としたアクションゲームである。
【0032】
特に、本実施形態に係るゲームで描画されるシーンには、詳細は後述するが、三次元の仮想空間内に、例えば武器やモンスター等の半透明オブジェクトと、例えば海や湖等の水面を表す半透明オブジェクト(以下、「面状半透明オブジェクト」という。)とが配置されるものが含まれる。
【0033】
また、ゲームデータには、ゲームキャラクタや建物といった不透明なオブジェクト、上記モンスター等の半透明オブジェクト、及び上記面状半透明オブジェクトを表す画像(テクスチャ)データ、ステータス等の情報表示用の画像データ、効果音やBGM等の音声データ、及び文字や記号によるメッセージデータ等が含まれる。
【0034】
図2は、本体2の内部構成を示す図である。本体2の内部は、CPU11、描画データ生成プロセッサ12、RAM13、ROM14、描画処理プロセッサ15、VRAM(Video-RAM)16、D/A(Digital-Analog)コンバータ17、音声処理プロセッサ18、アンプ19、インターフェース(I/F)20、DVD−ROMドライブ21、メモリカード接続ユニット22及びバス23によって構成されている。
【0035】
CPU11、描画データ生成プロセッサ12、RAM13、ROM14、描画処理プロセッサ15、音声処理プロセッサ18、インターフェース(I/F)20、DVD−ROMドライブ21及びメモリカード接続ユニット22は、バス23によって相互にデータ伝送可能に接続されている。
【0036】
CPU11は、上記のように、DVD−ROMドライブ21によってDVD−ROM5からRAM13に読み込まれるゲームプログラムを実行することにより、ゲーム進行を統括的に制御するものである。CPU11は、操作コントローラ3からプレイヤによる操作信号が入力されると、ゲームプログラムにしたがってその操作信号に対する所定のゲーム進行処理を行う。
【0037】
CPU11は、例えばテレビジョン装置4に表示すべき三次元映像の内容を決定し、その内容に対して必要な描画データを描画データ生成プロセッサ12に生成させ、その描画データを描画処理プロセッサ15に転送して描画処理を行わせ、描画処理結果をテレビジョン装置4に三次元映像として表示する。また、CPU11は、内蔵スピーカ4aから出力すべき効果音又はBGM等の音響内容を決定し、音声処理プロセッサ18にその音響内容に対応した音声データを生成させ、その音声データをテレビジョン装置4の内蔵スピーカ4aから出力させる。
【0038】
描画データ生成プロセッサ12は、描画処理に必要な各種の演算処理を行うものである。CPU11がテレビジョン装置4に表示すべき画像を決定し、その画像の描画に必要な画像データ(ゲームキャラクタ、背景及び半透明オブジェクト等のポリゴンデータ、テクスチャデータ、及び光源データ等)をRAM13から読み出して描画データ生成プロセッサ12に供給すると、描画データ生成プロセッサ12は、CPU11から供給される画像データと操作情報に基づいて、描画に必要なデータ(仮想的なカメラ、各オブジェクトの位置関係、スクリーン画面上における各オブジェクトを構成するポリゴンの座標、各ポリゴンに対応するテクスチャ、及び各ポリゴンの反射特性等のデータ)を演算し、その演算結果を描画処理プロセッサ15に供給する。描画処理プロセッサ15では、描画データ生成プロセッサ12から供給された演算データに基づいて、テレビジョン装置4に表示するための三次元映像の描画処理が行われる。
【0039】
RAM13は、DVD−ROMドライブ21によってDVD−ROM5から読み込まれたゲームプログラム及びゲームデータを格納するエリア(図示せず)と、CPU11がゲームプログラムを処理するためのワークエリア(図示せず)とを提供するものである。RAM13には、ゲームの進行に応じて必要なゲームプログラムとゲームデータとが、DVD−ROM5から読み込まれて記憶される。
【0040】
ROM14には、ディスクローディング機能等のゲーム装置1の基本的機能や、DVD−ROM5に記憶されたゲームプログラム及びゲームデータを読み出す手順等を示す基本プログラムが記憶されている。CPU11は、DVD−ROMドライブ21にDVD−ROM5が装着されると、ROM14の基本プログラムにしたがってDVD−ROMドライブ21を動作させ、DVD−ROM5からゲームプログラム及びゲームデータをRAM13に読み込ませ、ゲーム開始状態に設定する。
【0041】
描画処理プロセッサ15は、三次元映像の各フレームの画像(透視投影法による二次元画像)を生成し、テレビジョン装置4に表示させるものである。描画処理プロセッサ15は、CPU11からの描画指令に基づき、描画データ生成プロセッサ12から供給されるデータを用いて、テレビジョン装置4に表示させる各フレームの二次元画像を作成する。
【0042】
描画処理プロセッサ15には、各フレームの二次元画像の作成作業をするためのVRAM16が接続されている。描画処理プロセッサ15は、VRAM16を用いて例えば1/30秒毎に各フレームの二次元画像のデータを生成する。
【0043】
VRAM16には、テレビジョン装置4に表示される各フレームの二次元画像のデータを格納するバッファメモリ24(以下、「フレームバッファ」という。)と、フレームバッファ24に格納すべき画像データを作成するための前処理を行うバッファメモリ(テクスチャバッファ)25が設けられている。フレームバッファ24は、同一のメモリ構造及びメモリ容量を有する2つのフレームバッファ24A,24Bで構成されている。
【0044】
VRAM16に2つのフレームバッファ24A,24Bが設けられていることにより、テレビジョン装置4への例えば1/30秒毎の各フレームの描画処理をスムーズに行うことができる。すなわち、一方のフレームバッファ24Aを用いてテレビジョン装置4への表示処理を行っている間に、他方のフレームバッファ24Bで次のフレームの画像データを生成し、この処理をフレームバッファ24Aとフレームバッファ24Bとの間で交互に行うことにより、描画処理をスムーズに行う。
【0045】
D/Aコンバータ17は、フレームバッファ24から出力される画像データをアナログ信号に変換してテレビジョン装置4に出力するものである。D/Aコンバータ17には、フレームバッファ24Aからの画像データとフレームバッファ24Bからの画像データとを切り換えるスイッチ回路が設けられ、このスイッチ回路の切り換えは描画処理プロセッサ15によって制御される。
【0046】
音声処理プロセッサ18は、CPU11からの音声指令に基づき、RAM13から効果音又はBGM等の音声データを読み出し、所要の加工処理とD/A変換処理をした後、アンプ19に出力する。アンプ19は、音声処理プロセッサ18から入力される音声信号を所定の増幅度で増幅した後、テレビジョン装置4の内蔵スピーカ4aに出力する。
【0047】
インターフェース(I/F)20は、操作コントローラ3を本体2に接続するためのインターフェースである。操作コントローラ3は、本体2に各種の操作情報を入力するものである。操作コントローラ3には、十字キー、左ボタン、右ボタン、セレクトボタン、スタートボタン、及びジョイスティック等の複数の操作部材3aが設けられている。
【0048】
スタートボタンはゲーム開始を入力するためのボタンであり、セレクトボタンはメニュー内容を選択するためのボタンである。また、ジョイスティックや十字キーは、主としてゲームキャラクタに移動、攻撃及び防御等の種々の動作を指令するための操作部材として使用される。左ボタン及び右ボタンは、例えばテレビジョン装置4に表示される三次元映像の画像の視線方向を左方向や右方向に移動又は回転したりするのに使用される。
【0049】
本実施形態に係るゲームプログラムで適用されるゲームでは、三次元の仮想空間内に、半透明オブジェクトと、面状半透明オブジェクトとが配置される場合、それらのオブジェクトを透視投影法によりスクリーンに投影される二次元画像に変換して表示画面に表示させる際、例えば面状半透明オブジェクトより奥に描かれるはずの半透明オブジェクトが面状半透明オブジェクトより手前にあるように描写されたり、面状半透明オブジェクトより手前にある半透明オブジェクトが面状半透明オブジェクトより奥にあるように描写されたりすることのないようにされている。
【0050】
なお、上記面状半透明オブジェクトとしては、具体的には、海、湖、池、川、滝、氷及びガラス等が挙げられる。以下では、面状半透明オブジェクトの一例として、海や湖等の水面を表すオブジェクト(以下、「水面オブジェクトW」という。)を対象として説明する。
【0051】
図3は、本実施形態に係る、半透明オブジェクトの描画処理の制御動作を示すフローチャートである。なお、この制御動作は、主として描画処理プロセッサ15によって行われる。
【0052】
図4は、ゲームに登場するシーンの三次元仮想空間モデルを側方から見たときの図である。以下では、この図4に示す三次元仮想空間モデルを参照して、図3のフローチャートに示す制御動作を説明する。
【0053】
図4に示すように、仮想空間内には、例えば海や湖等の水面オブジェクトW(面状半透明オブジェクト)が配置されている。この仮想空間内には、水面オブジェクトWの下に半透明オブジェクトA,Bが配置されている。半透明オブジェクトA,Bは、ゲーム上に登場する例えば半透明状のモンスター等からなる。また、水面オブジェクトWの水面の上方には、半透明オブジェクトC,Dが配置されている。半透明オブジェクトC,Dは、半透明オブジェクトA,Bと同様に、ゲーム上に登場する例えば半透明状のモンスター等からなる。
【0054】
上記三次元仮想空間モデルでは、仮想的なカメラK(視点)が配置される。テレビジョン受像機4の表示画面に描画される二次元画像は、上記三次元仮想空間モデルが仮想カメラKによって撮像されるときに得られる撮像画像を単にシミュレーションしたものではなく、仮想カメラKの位置から水面オブジェクトWに視線を伸ばし、その視線が仮想カメラKと水面オブジェクトWとの間に仮想的に配置されたスクリーン(図示せず)と交差する位置に、水面オブジェクトWや他のオブジェクトを描画したもの(透視投影法による二次元画像)である。
【0055】
図4に示す仮想空間モデルを描画する場合には、最初にキャラクタや建物等の不透明なオブジェクトについてZバッファ法による描画処理を行う。なお、この描画処理には、Zソート法を用いてもよい。
【0056】
その後、図3のフローチャートに示す制御動作による半透明オブジェクトの描画処理を行う。したがって、例えば図4の例において、水面オブジェクトWである海等の底が不透明である場合には、前処理として海等の底が不透明オブジェクトとして描画される。なお、描画処理が実行される前提として、CPU11によって仮想カメラKに映し出されるオブジェクトが抽出されてリストが生成される。このリストは、不透明オブジェクト、半透明オブジェクト別に生成される。このリストを読み出して不透明オブジェクトの描画処理、半透明オブジェクトの描画処理がそれぞれ行われる。
【0057】
ステップS1では、上述のリストから仮想空間モデルにおける描画対象オブジェクトが抽出される。ここで、描画対象オブジェクトとしては、図4に示す仮想空間モデルでは、水面オブジェクトW及び半透明オブジェクトA,B,C,Dが挙げられ、これらが描画対象オブジェクトとして抽出される。
【0058】
次いで、描画対象オブジェクトの中に水面オブジェクトWが含まれるか否かが判別される(S2)。具体的には、面状半透明オブジェクトを特定するフラグ情報に基づいて抽出される。このフラグ情報は、水面オブジェクトWに関連付けてゲームデータとして記憶されている。描画対象オブジェクトの中に水面オブジェクトWが含まれると、背景技術の欄で説明したように、他の半透明オブジェクトが適切に描画されないことが生じるので、水面オブジェクトWの有無が判別される。
【0059】
ステップS2において、描画対象オブジェクトに水面オブジェクトWが含まれない場合(S2:NO)、描画対象である全ての半透明オブジェクトを対象としてZソート法による描画順が決定される(S3)。
【0060】
Zソート法では、仮想カメラKから遠い順に半透明オブジェクト単位での描画順が決定される。より詳細には、各半透明オブジェクトの代表点を用いて、仮想カメラKの座標系におけるZ値の大きい順(遠い順)に描画順が決定される。
【0061】
そして、決定された描画順で各半透明オブジェクトの描画処理が行われる(S4)。具体的には、半透明オブジェクトの各画素に対応するフレームバッファ24に格納されている画素の画素値をαブレンディングする処理等が行われる。なお、本処理は、一般的な半透明オブジェクトの描画処理と同様であるため、説明は省略する。
【0062】
一方、ステップS2において、描画対象オブジェクトに水面オブジェクトWが含まれる場合(S2:YES)、水面オブジェクトWの代表点wにおける、ワールド座標系の上下方向(Y軸方向)の座標wyを取得する(S5)。水面オブジェクトWは、水面のほぼ中央位置が代表点wとして設定され、その代表点wのワールド座標系の座標位置が(wx,wy,wz)とされるので、そのY軸における座標wyが取得される。
【0063】
そして、取得された座標wyを通る水平面を境界面として仮想空間を上下に分割し、2つの領域P,Qを設定する(S6)。この場合、座標wyを通るXZ軸平面に平行な水平面は、水面オブジェクトWの水面と一致し、水面オブジェクトWの水面は水平方向に広がるため、水面オブジェクトWの水面が領域P,Qを区別するための境界面となる。この境界面を境にして境界面より下方(すなわち水中)の領域P及び境界面より上方の領域Qの2つの領域P,Qが設定される。図4の例では、水面オブジェクトWの上方の空間が領域Qと、水面オブジェクトWの水中が領域Pとして設定される。
【0064】
本実施例では、水面オブジェクトW(面状半透明オブジェクト)の面方向に平行であって代表点を含んだ面を境界面としているが、境界面を設定するのに含ませる点としては代表点でなくてもよく、面状半透明オブジェクトの仮想空間上の位置に関連する座標点であればよい。例えば、水面オブジェクトWの端側に位置するポリゴン頂点の座標を座標点としてもよい。また、厚みのある面状半透明オブジェクトであれば、表面のポリゴン頂点の座標を座標点としてもよい。
【0065】
次に、半透明オブジェクトA,B,C,Dを、分割された2つの領域P,Qのうちいずれに属するかによってグループ分けする(S7)。図4の例を参照すれば、半透明オブジェクトA,B,C,Dは、それぞれの重心が代表点a,b,c,dにそれぞれ設定されている。そのため、この代表点a,b,c,dについてのY軸座標と、水面オブジェクトWの代表点wについてのY軸座標wyとが比較され、各半透明オブジェクトA,B,C,Dの属する領域が決定される。
【0066】
例えば、半透明オブジェクトAのワールド座標系における位置座標を(ax,ay,az)とすれば、半透明オブジェクトAの代表点aのY軸座標ayと水面オブジェクトWの代表点wのY軸座標wyとが比較され、図4の例では、半透明オブジェクトAの代表点aのY軸座標ayが水面オブジェクトWの代表点wのY軸座標wyより下側にあるので、半透明オブジェクトAは、境界面(水面)より下側の領域Pに属すると判定される。
【0067】
半透明オブジェクトBについても、同様の判定処理が行われ、半透明オブジェクトBの代表点bのY軸座標は、水面オブジェクトWの代表点wのY軸座標wyより下側にあるので、半透明オブジェクトBは境界面(水面)より下側の領域Pに属すると判定される。また、半透明オブジェクトC,Dは、それぞれの代表点c,dのY軸座標が水面オブジェクトWの代表点wのY軸座標wyより上側にあるので、半透明オブジェクトC,Dは境界面(水面)より上側の領域Qに属すると判定される。
【0068】
次いで、グループ分けされた各半透明オブジェクトA,B,C,Dに対して、領域ごとにオブジェクト単位でのZソート法による描画順(領域内描画順)が決定され、領域ごとに描画処理が施される。まず、仮想カメラKが属していない領域Pに属する半透明オブジェクトA,Bについて、Zソート法による描画順が決定される(S8)。つまり、複数の領域P,Q及び水面オブジェクトW(面状半透明オブジェクト)のうち、仮想カメラK(所定の視点)の位置から遠い順(領域外描画順)に描画が行われる。仮想カメラKが領域に属しているか否かは、例えば仮想カメラKのY軸座標が水面オブジェクトWの代表点の座標wyよりも大きいか否かによって判定することができる。
【0069】
図4から明らかなように、代表点a,bに対する仮想カメラKの座標系での半透明オブジェクトA,BのZ値は、半透明オブジェクトAの方が大きい(仮想カメラKから遠い)ので、描画処理の順番は、半透明オブジェクトA、半透明オブジェクトBの順番となる。なお、仮想カメラKの座標系は、視線方向(矢印u方向)がZ軸となる。
【0070】
その後、ステップS8において描画順が決定された、水面下の領域Pにある半透明オブジェクトA,Bについて、半透明オブジェクトA、半透明オブジェクトBの順番で描画(ブレンディング)処理が施される(S9)。
【0071】
領域Pにある半透明オブジェクトA,Bの描画処理が終了すると、水面オブジェクトWの代表点wのY軸座標wyが描画未処理の半透明オブジェクトC,Dの代表点c,dのY軸座標より下側にあるので、ステップS4、S9と同様に、水面オブジェクトWについて描画(ブレンディング)処理が施される(S10)。
【0072】
次いで、境界面により上側の領域Qに属する半透明オブジェクトC,Dについて、ステップS8と同様にZソート法による描画順が決定される(S11)。図4から明らかなように、代表点c,dに対する仮想カメラKの座標系での半透明オブジェクトC,DのZ値は、半透明オブジェクトCの方が大きいので、描画処理の順番は、半透明オブジェクトC、半透明オブジェクトDの順番となる。
【0073】
その後、ステップS11において描画順が決定された、領域Qにある半透明オブジェクトC,Dについて、半透明オブジェクトC、半透明オブジェクトDの順番で描画(ブレンディング)処理が施される(S12)。
【0074】
上記のように、半透明オブジェクトの描画処理が終了すれば、図3のフローチャートには示していないが、粒子状のもの(パーティクル)等を描画するエフェクト処理、及び霧等を描画するフィルタ処理等が必要に応じて行われる。
【0075】
上記フローチャートに基づき描画される画像は、例えば図5に示すような画像となる。すなわち、半透明オブジェクトA,Bは、水面オブジェクトWで表される水面の下に位置するように、また、半透明オブジェクトC,Dは、水面オブジェクトWで表される水面の上に位置するように、それぞれ描画される。なお、図5において実線の半透明オブジェクトは水面の上にあることを示し、点線の半透明オブジェクトは水面の下にあることを示す。
【0076】
すなわち、本実施形態によれば、従来のように、本来水面オブジェクトWの下側に描かれるはずの半透明オブジェクトが水面上に描画されたり(図9の半透明オブジェクトB参照)、本来水面オブジェクトWの上側に描かれるはずの半透明オブジェクトが水面オブジェクトWの下側に位置するように描画されたり(図9の半透明オブジェクトC参照)することがなくなる。
【0077】
このように、本実施形態によれば、各オブジェクトの描画順が、境界面より下にある半透明オブジェクトA,B、水面オブジェクトW、及び境界面より上にある半透明オブジェクトC,Dというように、境界面を境にして分割された順番で描画される。これにより、描画対象オブジェクトに水面オブジェクトW(面状半透明オブジェクト)が含まれる場合であっても、半透明オブジェクトA,B,C,Dをリアルに描画することができる。また、本実施形態によれば、オブジェクトのポリゴン単位でZソート法による描画処理を行う必要もないので、処理負荷の増大化を招くこともない。
【0078】
なお、本実施例では、1つの領域の描画順を決定してすぐにこの領域の半透明オブジェクトの描画を行っているが、特にこれに限定されるものではない。例えば、領域P,Qに存在する半透明オブジェクトA,B,C,D及び水面オブジェクトWの全ての描画順(A→B→W→C→D)を決定した後に、各オブジェクトA,B,C,D,Wを描画順に描画してもよい。
【0079】
図6は、本願発明の第2実施例に係る仮想空間モデルを示す図であり、この仮想空間モデルは、描画対象オブジェクトとして水面オブジェクトが複数含まれるものである。図6に示す仮想空間モデルでは、水面の面積が異なる2つの水面オブジェクトW1,W2が陸等を表す不透明オブジェクトGを介在して独立に配置され、水面オブジェクトW1,W2の水面のY軸座標が異なっている。すなわち、水面オブジェクトW1の水面が水面オブジェクトW2の水面より低く設定されている。
【0080】
水面オブジェクトW1には、その水面下に半透明オブジェクトA,Bが配置され、その水面上に半透明オブジェクトC,Dが配置されている。また、水面オブジェクトW2には、その水面下に半透明オブジェクトEが配置され、その水面上に半透明オブジェクトFが配置されている。その他の構成については、第1実施例の構成と略同様である。
【0081】
上記仮想空間モデルのように水面オブジェクトが2つある場合の半透明オブジェクトの描画処理では、水面オブジェクトW1,W2の代表点w1,w2におけるY軸座標に基づいて、3つの領域に分割される。すなわち、水面オブジェクトW1の代表点w1のY軸座標w1yが取得され、そのY軸座標w1yを通る水平面を第1の境界面として、その第1の境界面より下方の領域Pが設定される。また、水面オブジェクトW2の代表点w2のY軸座標w2yが取得され、そのY軸座標w2yを通る水平面を第2の境界面として、第1の境界面より上方であって第2の境界面より下方の領域Qが設定される。さらに、第2の境界面より上方の領域Rが設定される。
【0082】
次いで、半透明オブジェクトA〜Fが各領域P,Q,Rのいずれに属するかが決定され、各領域P,Q,Rにおいて半透明オブジェクトA〜Fの描画順が決定される。
【0083】
まず、複数の領域P,Q,R及び水面オブジェクトW1,W2のうち、仮想カメラKの位置から遠い順に描画順(領域外描画順)が決定される。仮想カメラKから遠い順を決定する判断は、例えば仮想カメラKのY軸座標と水面オブジェクトW1,W2の各代表点のY軸座標とを比較することにより行われる。水面オブジェクトW1,W2のうち仮想カメラKから最も遠いのは、Y軸座標の比較により水面オブジェクトW1と判断される。これにより、水面オブジェクトW1よりも下方にある領域Pは、仮想カメラKから最も遠いことが判断される。また、水面オブジェクトW1,W2の間にある領域Qは、水面オブジェクトW1よりも仮想カメラKに近く、水面オブジェクトW2よりも仮想カメラKに遠いことが判断される。さらに、水面オブジェクトW2よりも上方にある領域Rは、仮想カメラKに最も近いことが判断される。したがって、図6に示す仮想空間モデルでは、領域P、水面オブジェクトW1、領域Q、水面オブジェクトW2、領域Rの順で描画順が決定される。
【0084】
仮想カメラKから一番遠い領域Pに属する半透明オブジェクトA,Bの描画順が第1実施例と同様の処理で決定されると、決定された描画順で半透明オブジェクトA,Bの描画処理が行われる。続いて、水面オブジェクトW2より仮想カメラKから遠い水面オブジェクトW1の描画処理が行われる。
【0085】
次に、仮想カメラKから次に遠い領域Qに属する半透明オブジェクトC,D,Eの描画順が第1実施例と同様の処理で決定され、決定された描画順で半透明オブジェクトC,D,Eの描画処理が行われる。その後、水面オブジェクトW2の描画処理が行われる。最後に、領域Rに属する半透明オブジェクトFの描画処理が行われる。
【0086】
このように、仮想空間モデルにおいて複数の水面オブジェクトW1,W2が配置され、領域を設定するための代表点w1,w2のY軸座標が異なる場合には、上記したように、3つの領域P,Q,Rに分割して各領域P,Q,Rにおいて半透明オブジェクトA〜Fの描画順が決定される。なお、図6に示す仮想空間モデルにおいて、仮に水面オブジェクトW1,W2の代表点w1,w2のY軸座標が一致する場合には、領域を2つに設定すればよい。
【0087】
上記第2実施例においても、上述した第1実施例と同様の作用効果を奏する。なお、本第2実施例では、第1実施例と同様に、1つの領域の描画順を決定してすぐにこの領域の半透明オブジェクトの描画を行っているが、特にこれに限定されるものではない。
【0088】
図7は、本願発明の第3実施例における仮想空間モデルを示す図であり、この仮想空間モデルは、描画対象オブジェクトに水面オブジェクトが複数含まれる点で第2実施例と同様であるが、複数の水面オブジェクトが層状に重なって配置される点で第2実施例と異なる。図7によると、水面オブジェクトW1,W2が例えば海等として設定された場合、水面オブジェクトW1は、水面オブジェクトW2に比べ色濃度の高いより深い層とされ、水面オブジェクトW2は、水面オブジェクトW1に比べ色濃度の低いより浅い層とされている。
【0089】
また、水面オブジェクトW1の下に、半透明オブジェクトA,Bが配置され、水面オブジェクトW2の下であって水面オブジェクトW1の上方には、半透明オブジェクトC,Dが配置されている。また、水面オブジェクトW2の上に半透明オブジェクトEが配置されている。その他の構成については、第1実施例及び第2実施例の構成と略同様である。
【0090】
上記仮想空間モデルのように水面オブジェクトW1,W2が層状に重なり合っている場合の半透明オブジェクトの描画処理では、第2実施例に係る仮想空間モデルと同様に、水面オブジェクトW1,W2の代表点w1,w2におけるY軸座標に基づいて、3つの領域P,Q,Rに分割される。
【0091】
そして、半透明オブジェクトA〜Eが各領域P,Q,Rのいずれに属するかが決定され、各領域P,Q,Rにおいて描画順が決定される。まず、仮想カメラKから一番遠い領域Pに属する半透明オブジェクトA,Bの描画順が決定され、決定された描画順で半透明オブジェクトA,Bの描画処理が行われる。続いて、水面オブジェクトW2より仮想カメラKから遠い水面オブジェクトW1の描画処理が行われる。
【0092】
次に、仮想カメラKから次に遠い領域Qに属する半透明オブジェクトC,Dの描画順が決定され、決定された描画順で半透明オブジェクトC,Dの描画処理が行われる。その後、水面オブジェクトW2の描画処理が行われる。最後に、領域Rに属する半透明オブジェクトEの描画処理が行われる。
【0093】
このように、仮想空間モデルにおいて複数の水面オブジェクトW1,W2が層状に重なり合っている場合にも、上記したように、3つの領域P,Q,Rに分割して各領域P,Q,Rにおいて不透明オブジェクトA〜Eの描画順が決定される。したがって、この第3実施例においても、第1実施例及び第2実施例と同様の作用効果を奏する。なお、本第3実施例では、第1、第2実施例と同様に、1つの領域の描画順を決定してすぐにこの領域の半透明オブジェクトの描画を行っているが、特にこれに限定されるものではない。
【0094】
もちろん、この発明の範囲は上述した実施の形態に限定されるものではない。例えば、上記実施例では、分割される領域の数は2つ又は3つとされたが、分割される領域の数はこれらの数に限るものではない。また、1つの領域に属する半透明オブジェクトの数も、上記した実施例に限るものではない。
【0095】
また、上記実施例では、面状半透明オブジェクトを水面オブジェクトとして説明したが、特にこれに限定されるものではなく、ガラス、氷、滝等の半透明オブジェクトであればよい。この場合、面状半透明オブジェクトが例えば傾斜している屋根に設けられた窓ガラスのオブジェクトの場合、ガラス面の斜め方向に沿った面が境界面として設定される。また、例えば滝のオブジェクトの場合には、滝の表面であって上下方向に沿った面が境界面として設定される。
【0096】
また、面状半透明オブジェクトは、平面形状を有する半透明オブジェクトに限定されるものではなく、レンズのような曲面形状を有するものや、波立った水面オブジェクトのような凹凸形状を呈する面形状を有するものであってもよい。さらに、面状半透明オブジェクトは、水面オブジェクトWのような板面形状に限らず、立方体形状や細長い棒形状であってもよい。また、三次元の仮想空間に存在する半透明オブジェクトのうち、いずれを面状半透明オブジェクトに設定してもよく、面状半透明オブジェクトは任意に設定可能である。
【0097】
また、本発明は、上記したゲームの内容に限らず、対戦型ゲーム、シミュレーションゲーム又はロールプレーイングゲーム等の種々のゲームに適用することができる。また、上記ゲーム装置1は、一例として家庭用のテレビゲーム機とされているが、このゲーム装置1は、家庭用のテレビゲーム機に限らず、携帯型ゲーム機、アーケードゲーム機等の他の種類のゲーム機、又はゲーム機以外の三次元映像を表示する装置、例えばゲームプログラムがローディングされたパーソナルコンピュータ等であってもよい。
【図面の簡単な説明】
【0098】
【図1】本願発明の第1実施例に係るゲームプログラムが適用されるゲーム装置の一例を示すブロック構成図である。
【図2】図1に示す本体の内部構成を示す図である。
【図3】本実施形態に係る、本願発明の描画処理の制御動作を示すフローチャートである。
【図4】ゲームに登場するシーンの三次元仮想空間モデルを側方から見たときの図である。
【図5】図4に示す三次元仮想空間モデルが透視投影された図である。
【図6】本願発明の第2実施例における仮想空間モデルを示す図である。
【図7】本願発明の第3実施例における仮想空間モデルを示す図である。
【図8】従来のゲームに登場するシーンの三次元仮想空間モデルを側方から見たときの図である。
【図9】図8に示す三次元仮想空間モデルが透視投影された図である。
【符号の説明】
【0099】
1 ゲーム装置
2 本体
3 操作コントローラ
4 テレビジョン装置
4a 内蔵スピーカ
5 DVD−ROM
6 メモリカード
11 CPU
12 描画データ生成プロセッサ
13 RAM
14 ROM
15 描画処理プロセッサ
16 VRAM
17 D/Aコンバータ
18 音声処理プロセッサ
19 アンプ
20 インターフェース
22 メモリカード接続ユニット
21 DVD−ROMドライブ
24 フレームバッファ
25 テクスチャバッファ
A,B,C,D,E,F 半透明オブジェクト
a,b,c,d,e,f 代表点(半透明オブジェクトの)
K 仮想カメラ
P,Q,R 領域
W,W1,W2 水面オブジェクト
w,w1,w2 代表点(水面オブジェクトの)

【特許請求の範囲】
【請求項1】
コンピュータを、
三次元の仮想空間上に配置される半透明オブジェクトを所定の視点から投影した二次元画像を作成し、表示画面に表示するゲーム装置として機能させるためのゲームプログラムであって、
前記コンピュータを、
前記仮想空間上に配置され、描画対象となる半透明オブジェクトを抽出する抽出手段と、
前記抽出手段によって抽出された前記半透明オブジェクトのうち、予め指定されている面状半透明オブジェクトが含まれているか否かを判別する判別手段と、
前記判別手段によって前記面状半透明オブジェクトが含まれていると判別された場合、前記面状半透明オブジェクトの前記仮想空間上の位置に関連する座標点を取得する取得手段と、
前記取得手段によって取得された座標点を含む面であって前記面状半透明オブジェクトの面方向に平行な境界面を境にして、前記仮想空間に複数の領域を設定する領域設定手段と、
前記領域設定手段によって設定された領域ごとに、前記領域内に存在する前記半透明オブジェクトについての前記領域内での領域内描画順を決定するとともに、前記複数の領域及び前記面状半透明オブジェクトに対して前記所定の視点の位置から遠い順となる領域外描画順を決定する描画順決定手段と、
前記領域外描画順にしたがって前記領域内に存在する前記半透明オブジェクト及び前記面状半透明オブジェクトの描画を行い、前記領域内に存在する前記半透明オブジェクトの描画を行うときにはこの領域内における前記領域内描画順にしたがって前記半透明オブジェクトを描画する描画手段と、
して機能させることを特徴とするゲームプログラム。
【請求項2】
前記描画順決定手段は、
前記領域内に存在する前記半透明オブジェクトのそれぞれの代表点の座標を用いて、前記所定の視点の位置から遠い順に前記領域内描画順を決定する、請求項1に記載のゲームプログラム。
【請求項3】
前記面状半透明オブジェクトの前記仮想空間上の位置に関連する座標点は、
前記面状半透明オブジェクトの重心又は中心を示す代表点である、請求項1又は2に記載のゲームプログラム。
【請求項4】
請求項1ないし3に記載のゲームプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項5】
請求項1ないし3に記載のゲームプログラムを実行することを特徴とするコンピュータ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate