(57)【特許請求の範囲】
【請求項１】
コンピュータを、  三次元の仮想空間上に配置される半透明オブジェクトを所定の視点から投影した二次元画像を作成し、表示画面に表示するゲーム装置として機能させるためのゲームプログラムであって、  前記コンピュータを、  前記仮想空間上に配置され、描画対象となる半透明オブジェクトを抽出する抽出手段と、前記抽出手段によって抽出された前記半透明オブジェクトのうち、予め指定されている面状半透明オブジェクトが含まれているか否かを判別する判別手段と、前記判別手段によって前記面状半透明オブジェクトが含まれていると判別された場合、前記面状半透明オブジェクトの前記仮想空間上の位置に関連する座標点を取得する取得手段と、  前記取得手段によって取得された座標点を含む面であって前記面状半透明オブジェクトの面方向に平行な境界面を境にして、前記仮想空間に複数の領域を設定する領域設定手段と、  前記領域設定手段によって設定された領域ごとに、前記領域内に存在する前記半透明オブジェクトについての前記領域内での領域内描画順を決定するとともに、前記複数の領域及び前記面状半透明オブジェクトに対して前記所定の視点の位置から遠い順となる領域外描画順を決定する描画順決定手段と、  前記領域外描画順にしたがって前記領域内に存在する前記半透明オブジェクト及び前記面状半透明オブジェクトの描画を行い、前記領域内に存在する前記半透明オブジェクトの描画を行うときにはこの領域内における前記領域内描画順にしたがって前記半透明オブジェクトを描画する描画手段と、  して機能させることを特徴とするゲームプログラム。
【請求項２】
前記描画順決定手段は、  前記領域内に存在する前記半透明オブジェクトのそれぞれの代表点の座標を用いて、前記所定の視点の位置から遠い順に前記領域内描画順を決定する、請求項１に記載のゲームプログラム。
【請求項３】
前記面状半透明オブジェクトの前記仮想空間上の位置に関連する座標点は、  前記面状半透明オブジェクトの重心又は中心を示す代表点である、請求項１又は２に記載のゲームプログラム。
【請求項４】
請求項１ないし３のいずれかに記載のゲームプログラムを記憶したプログラム記憶部と、 前記プログラム記憶部に記憶されたゲームプログラムを実行するコンピュータと、を備えたゲームシステム。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、三次元の仮想空間上に配置される半透明オブジェクトを所定の視点から投影した二次元画像を作成し、表示画面に表示するゲーム装置に適用されるゲームプログラム及びゲームシステムに関するものである。
【背景技術】
【０００２】
従来、三次元のコンピュータグラフィックス（Computer Graphics、以下、「三次元のコンピュータグラフィックス」を「三次元ＣＧ」という。）を用いた映像によって、ゲーム展開を表示するゲーム装置が知られている。この種のゲーム装置では、三次元ＣＧの映像を作成する際には、数値化データとして与えられるオブジェクト（例えば物体や図形等）が、演算によって二次元画像にして生成され表示画面に表示される。
【０００３】
上記ゲーム装置で実行可能なゲームの中には、例えば半透明状のモンスターが登場し、その半透明状のモンスターが海や湖等に生息する（例えばこのモンスターが海に潜ったり水面上に出現したりする）シーンが描画されるものがある。この場合、上記半透明状のモンスターは、半透明オブジェクトとして二次元画像に生成される。また、海や湖等は、それらの水面を表す半透明オブジェクト（以下、「面状半透明オブジェクト」という。）として二次元画像に生成される。
【０００４】
ここで、近年のオブジェクトの描画処理では、一般にＺバッファ法が用いられるが、モンスター等の半透明オブジェクトや海や湖等の面状半透明オブジェクトが描画される場合、Ｚバッファ法では描画できないため、Ｚソート法が用いられる。しかしながら、仮想空間上に、面状半透明オブジェクトとモンスター等の半透明オブジェクトとが配置された場合には、Ｚソート法では、以下に示すように、リアルな画像描画を行うことができないといった問題点があった。
【０００５】
通常、Ｚソート法が用いられるときには、描画対象となる半透明オブジェクトが複数配置される場合には、複数の半透明オブジェクトの描画順が決定され、視点（仮想的に配置されたカメラ）から遠い順（カメラ座標系におけるＺ値が大きい順）に描画が行われる。描画順が決定される際には、各半透明オブジェクトに設定された代表点の位置座標が一般に用いられ、オブジェクト単位でのＺソートが行われる。代表点は、半透明オブジェクトの重心等に設定されることが多く、海や湖等の水面を有する面状半透明オブジェクトは、水面のほぼ中央の位置に設定されることが多い。
【０００６】
しかしながら、海や湖等といった大きな水面を有する面状半透明オブジェクト（以下、「水面オブジェクト」という。）の場合、オブジェクト単位でのＺソートでは代表点に基づいて描画順が決定されるため、水面下に位置する半透明オブジェクトの代表点と水面オブジェクトの代表点との視点に対する相対位置によっては、水面下にある半透明オブジェクトが水面上に浮かび上がるように描かれたり、水面上にある半透明オブジェクトが水面下に沈んでいるように描かれたりすることがあった。
【０００７】
以下、図８を参照して、半透明オブジェクト及び水面オブジェクトを、仮想カメラを視点として描画する場合の描画順序を説明する。図８は、従来の三次元仮想空間モデルを側方から示した図である。この仮想空間モデルでは、水面オブジェクトＷが配置され、水面オブジェクトＷの水面下に半透明オブジェクトＡ，Ｂが配置され、水面オブジェクトＷの水面に対して上方に半透明オブジェクトＣ，Ｄが配置されている。なお、仮想カメラＫは、上方から水面を映し出す方向であって半透明オブジェクトＡ，Ｂ，Ｃ，Ｄ及び水面オブジェクトＷだけを映し出す方向に視線が設定されている。
【０００８】
この場合、水面オブジェクトＷは、その代表点ｗが水面のほぼ中央の位置に設定され、各半透明オブジェクトＡ，Ｂ，Ｃ，Ｄの重心がそれぞれの代表点ａ，ｂ，ｃ，ｄとして設定される。
【０００９】
これらのオブジェクトＡ，Ｂ，Ｃ，Ｄ，Ｗを、各代表点ａ，ｂ，ｃ，ｄ，ｗを用いて仮想カメラＫの座標系におけるＺ値の大きい順（遠い順）に並べると、オブジェクトＡ，Ｃ，Ｗ，Ｂ，Ｄとなる。この順で、各オブジェクトＡ，Ｂ，Ｃ，Ｄ，Ｗが描画される。
【００１０】
半透明オブジェクトＢは、本来ならば、水面オブジェクトＷの下側に配置されているため、水面オブジェクトＷの下側に位置するように描画される必要がある。しかしながら、水面オブジェクトＷの代表点ｗが水面のほぼ中央に設定され、オブジェクトの描画順が各オブジェクトＡ，Ｂ，Ｃ，Ｄ，Ｗの各代表点ａ，ｂ，ｃ，ｄ，ｗから仮想カメラＫまでの距離の遠い順に決定されるため、半透明オブジェクトＢは、図９に示すように、水面オブジェクトＷの下側に配置されるにもかかわらず、水面オブジェクトＷの上側に位置するように描画されてしまうことになる。なお、図９は、図８に示す仮想カメラＫから見た三次元仮想空間の二次元画像を示す。この図９において実線の半透明オブジェクトは水面の上にあることを示し、点線の半透明オブジェクトは水面の下にあることを示している。
【００１１】
また、半透明オブジェクトＣは、本来ならば、水面オブジェクトＷより上側に配置されているため、水面オブジェクトＷの上側に位置するように描画される必要がある。しかしながら、上記した水面オブジェクトＷの代表点ｗ及び描画順の設定により、半透明オブジェクトＣは、図９に示すように、水面オブジェクトＷの上側に配置されるにもかかわらず、水面オブジェクトＷの下側に位置するように描画されてしまうことになる。
【００１２】
そこで、このようなＺソート法による描画方法に対し、Ｚソート法による描画順の対象を、オブジェクト単位とするのではなく、オブジェクトを構成するポリゴン単位とする方法も考えられる（例えば、特許文献１，２参照）。
【００１３】
【特許文献１】特開２００６−２７７３２９号公報
【特許文献２】特開２００１−１８８９２１号公報
【００１４】
このような方法によれば、例えば各ポリゴンに設定された代表点を基準にソートされるので、より詳細に描画順が設定され、上記したような水面オブジェクトに対する半透明オブジェクトの描画の不具合を解消することができる。
【００１５】
しかしながら、この方法では、ポリゴンの代表点を基準にソートするので、描画処理の負荷が増大するといった問題点が生じる。特に、水面オブジェクトＷ等の水面で構成される半透明のオブジェクトは、他の半透明オブジェクトに比してポリゴン数が多大となるため、この問題点が顕著となる。
【発明の開示】
【発明が解決しようとする課題】
【００１６】  本願発明は、上記した事情のもとで考え出されたものであって、描画対象に水面オブジェクト等の面状半透明オブジェクトが含まれる場合、他の半透明オブジェクトの描画を適切に行うことのできるゲームプログラム及びゲームシステムを提供することを、その課題とする。
【課題を解決するための手段】
【００１７】
上記の課題を解決するため、本願発明では、次の技術的手段を講じている。
【００１８】
本願発明の第１の側面によって提供されるゲームプログラムは、コンピュータを、三次元の仮想空間上に配置される半透明オブジェクトを所定の視点から投影した二次元画像を作成し、表示画面に表示するゲーム装置として機能させるためのゲームプログラムであって、前記コンピュータを、前記仮想空間上に配置され、描画対象となる半透明オブジェクトを抽出する抽出手段と、前記抽出手段によって抽出された前記半透明オブジェクトのうち、予め指定されている面状半透明オブジェクトが含まれているか否かを判別する判別手段と、前記判別手段によって前記面状半透明オブジェクトが含まれていると判別された場合、前記面状半透明オブジェクトの前記仮想空間上の位置に関連する座標点を取得する取得手段と、前記取得手段によって取得された座標点を含む面であって前記面状半透明オブジェクトの面方向に平行な境界面を境にして、前記仮想空間に複数の領域を設定する領域設定手段と、前記領域設定手段によって設定された領域ごとに、前記領域内に存在する前記半透明オブジェクトについての前記領域内での領域内描画順を決定するとともに、前記複数の領域及び前記面状半透明オブジェクトに対して前記所定の視点の位置から遠い順となる領域外描画順を決定する描画順決定手段と、前記領域外描画順にしたがって前記領域内に存在する前記半透明オブジェクト及び前記面状半透明オブジェクトの描画を行い、前記領域内に存在する前記半透明オブジェクトの描画を行うときにはこの領域内における前記領域内描画順にしたがって前記半透明オブジェクトを描画する描画手段と、して機能させることを特徴としている（請求項１）。
【００１９】
好ましい実施の形態によれば、前記描画順決定手段は、前記領域内に存在する前記半透明オブジェクトのそれぞれの代表点の座標を用いて、前記所定の視点の位置から遠い順に前記領域内描画順を決定するとよい（請求項２）。
【００２０】
他の好ましい実施の形態によれば、前記面状半透明オブジェクトの前記仮想空間上の位置に関連する座標点は、前記面状半透明オブジェクトの重心又は中心を示す代表点であるとよい（請求項３）。
【００２２】  本願発明の第２の側面によって提供されるゲームシステムは、本願発明の第１の側面によって提供されるゲームプログラムを記憶したプログラム記憶部と、前記プログラム記憶部に記憶されたゲームプログラムを実行するコンピュータと、を備えたことを特徴としている（請求項４）。
【発明の効果】
【００２３】
本願発明によれば、仮想空間上に配置され、描画対象となる半透明オブジェクトが抽出され、抽出された半透明オブジェクトのうち、予め指定されている面状半透明オブジェクトが含まれている場合、面状半透明オブジェクトについての仮想空間上の座標点を取得し、取得された座標点を含む境界面を境にして、仮想空間に複数の領域を設定する。次いで設定された領域ごとに、半透明オブジェクトについての領域内描画順を決定するとともに、複数の領域及び面状半透明オブジェクトについての領域外描画順を決定する。そして、この領域外描画順にしたがって半透明オブジェクト及び面状半透明オブジェクトの描画を行う。この場合、領域内に存在する半透明オブジェクトを描画するときには、領域内描画順にしたがって半透明オブジェクトを描画する。
【００２４】
これにより、従来の構成のように、本来、視点を基準にして面状半透明オブジェクトより奥に描かれるはずの半透明オブジェクトが面状半透明オブジェクトより手前に描画されたり、本来、視点を基準にして面状半透明オブジェクトより手前に描かれるはずの半透明オブジェクトが面状半透明オブジェクトより奥に位置するように描画されたりすることがなくなり、半透明オブジェクトを適切に描画することができる。また、本発明によれば、オブジェクトを構成するポリゴンに対してＺソート法による描画処理を行う必要もないので、処理負荷の増大化を招くこともない。
【発明を実施するための最良の形態】
【００２５】
以下、本願発明の好ましい実施の形態を、添付図面を参照して具体的に説明する。
【００２６】
図１は、本願発明の第１実施例に係るゲームプログラムが適用されるゲーム装置の一例を示すブロック構成図である。ゲーム装置１は、家庭用として用いられるテレビゲーム機であり、主として本体２及び操作コントローラ３によって構成されている。
【００２７】
本体２には、インターフェース（後述）を介して操作コントローラ３が接続され、プレイヤは、この操作コントローラ３の操作部材を操作することにより、このゲーム装置１で起動されるゲームを開始させたり進行させたりすることができる。
【００２８】
本体２には、ゲーム内容を表示するためのテレビジョン装置４が接続される。テレビジョン装置４には、ブラウン管や液晶ディスプレイ等の表示装置が備えられているとともに、ゲームの効果音を出力するための内蔵スピーカ４ａが備えられている。
【００２９】
本体２は、ゲームプログラム及びゲームデータが記録されたＤＶＤ−ＲＯＭ（Digital Versatile Disc−ＲＯＭ）５が装着可能とされている。また、本体２は、ゲームの途中結果等をゲームデータとして記録するためのメモリカード６が装着可能とされている。
【００３０】
ゲーム装置１では、ゲームプログラム及びゲームデータが記録されたＤＶＤ−ＲＯＭ５を本体２に装着し、本体２によってＤＶＤ−ＲＯＭ５内のゲームプログラム及びゲームデータが読み込まれ、ゲームプログラムが実行されることにより、プレイヤがゲーム内容を楽しむことができるようになっている。
【００３１】
ゲームプログラムには、本体２内に搭載されるＣＰＵ１１（後述）に実行させるための処理手順や各種命令等が記述されている。また、ゲームプログラムには、操作コントローラ３からの操作信号に応じてゲーム画面や音声等を制御するための内容が含まれている。ゲームプログラムに係るゲームは、例えばプレイヤの分身となるゲームキャラクタが登場し、そのゲームキャラクタが敵キャラクタとしての例えばモンスターを討伐することを主な目的としたアクションゲームである。
【００３２】
特に、本実施形態に係るゲームで描画されるシーンには、詳細は後述するが、三次元の仮想空間内に、例えば武器やモンスター等の半透明オブジェクトと、例えば海や湖等の水面を表す半透明オブジェクト（以下、「面状半透明オブジェクト」という。）とが配置されるものが含まれる。
【００３３】
また、ゲームデータには、ゲームキャラクタや建物といった不透明なオブジェクト、上記モンスター等の半透明オブジェクト、及び上記面状半透明オブジェクトを表す画像（テクスチャ）データ、ステータス等の情報表示用の画像データ、効果音やＢＧＭ等の音声データ、及び文字や記号によるメッセージデータ等が含まれる。
【００３４】
図２は、本体２の内部構成を示す図である。本体２の内部は、ＣＰＵ１１、描画データ生成プロセッサ１２、ＲＡＭ１３、ＲＯＭ１４、描画処理プロセッサ１５、ＶＲＡＭ（Video-ＲＡＭ）１６、Ｄ／Ａ（Digital-Analog）コンバータ１７、音声処理プロセッサ１８、アンプ１９、インターフェース（Ｉ／Ｆ）２０、ＤＶＤ−ＲＯＭドライブ２１、メモリカード接続ユニット２２及びバス２３によって構成されている。
【００３５】
ＣＰＵ１１、描画データ生成プロセッサ１２、ＲＡＭ１３、ＲＯＭ１４、描画処理プロセッサ１５、音声処理プロセッサ１８、インターフェース（Ｉ／Ｆ）２０、ＤＶＤ−ＲＯＭドライブ２１及びメモリカード接続ユニット２２は、バス２３によって相互にデータ伝送可能に接続されている。
【００３６】
ＣＰＵ１１は、上記のように、ＤＶＤ−ＲＯＭドライブ２１によってＤＶＤ−ＲＯＭ５からＲＡＭ１３に読み込まれるゲームプログラムを実行することにより、ゲーム進行を統括的に制御するものである。ＣＰＵ１１は、操作コントローラ３からプレイヤによる操作信号が入力されると、ゲームプログラムにしたがってその操作信号に対する所定のゲーム進行処理を行う。
【００３７】
ＣＰＵ１１は、例えばテレビジョン装置４に表示すべき三次元映像の内容を決定し、その内容に対して必要な描画データを描画データ生成プロセッサ１２に生成させ、その描画データを描画処理プロセッサ１５に転送して描画処理を行わせ、描画処理結果をテレビジョン装置４に三次元映像として表示する。また、ＣＰＵ１１は、内蔵スピーカ４ａから出力すべき効果音又はＢＧＭ等の音響内容を決定し、音声処理プロセッサ１８にその音響内容に対応した音声データを生成させ、その音声データをテレビジョン装置４の内蔵スピーカ４ａから出力させる。
【００３８】
描画データ生成プロセッサ１２は、描画処理に必要な各種の演算処理を行うものである。ＣＰＵ１１がテレビジョン装置４に表示すべき画像を決定し、その画像の描画に必要な画像データ（ゲームキャラクタ、背景及び半透明オブジェクト等のポリゴンデータ、テクスチャデータ、及び光源データ等）をＲＡＭ１３から読み出して描画データ生成プロセッサ１２に供給すると、描画データ生成プロセッサ１２は、ＣＰＵ１１から供給される画像データと操作情報に基づいて、描画に必要なデータ（仮想的なカメラ、各オブジェクトの位置関係、スクリーン画面上における各オブジェクトを構成するポリゴンの座標、各ポリゴンに対応するテクスチャ、及び各ポリゴンの反射特性等のデータ）を演算し、その演算結果を描画処理プロセッサ１５に供給する。描画処理プロセッサ１５では、描画データ生成プロセッサ１２から供給された演算データに基づいて、テレビジョン装置４に表示するための三次元映像の描画処理が行われる。
【００３９】
ＲＡＭ１３は、ＤＶＤ−ＲＯＭドライブ２１によってＤＶＤ−ＲＯＭ５から読み込まれたゲームプログラム及びゲームデータを格納するエリア（図示せず）と、ＣＰＵ１１がゲームプログラムを処理するためのワークエリア（図示せず）とを提供するものである。ＲＡＭ１３には、ゲームの進行に応じて必要なゲームプログラムとゲームデータとが、ＤＶＤ−ＲＯＭ５から読み込まれて記憶される。
【００４０】
ＲＯＭ１４には、ディスクローディング機能等のゲーム装置１の基本的機能や、ＤＶＤ−ＲＯＭ５に記憶されたゲームプログラム及びゲームデータを読み出す手順等を示す基本プログラムが記憶されている。ＣＰＵ１１は、ＤＶＤ−ＲＯＭドライブ２１にＤＶＤ−ＲＯＭ５が装着されると、ＲＯＭ１４の基本プログラムにしたがってＤＶＤ−ＲＯＭドライブ２１を動作させ、ＤＶＤ−ＲＯＭ５からゲームプログラム及びゲームデータをＲＡＭ１３に読み込ませ、ゲーム開始状態に設定する。
【００４１】
描画処理プロセッサ１５は、三次元映像の各フレームの画像（透視投影法による二次元画像）を生成し、テレビジョン装置４に表示させるものである。描画処理プロセッサ１５は、ＣＰＵ１１からの描画指令に基づき、描画データ生成プロセッサ１２から供給されるデータを用いて、テレビジョン装置４に表示させる各フレームの二次元画像を作成する。
【００４２】
描画処理プロセッサ１５には、各フレームの二次元画像の作成作業をするためのＶＲＡＭ１６が接続されている。描画処理プロセッサ１５は、ＶＲＡＭ１６を用いて例えば１／３０秒毎に各フレームの二次元画像のデータを生成する。
【００４３】
ＶＲＡＭ１６には、テレビジョン装置４に表示される各フレームの二次元画像のデータを格納するバッファメモリ２４（以下、「フレームバッファ」という。）と、フレームバッファ２４に格納すべき画像データを作成するための前処理を行うバッファメモリ（テクスチャバッファ）２５が設けられている。フレームバッファ２４は、同一のメモリ構造及びメモリ容量を有する２つのフレームバッファ２４Ａ，２４Ｂで構成されている。
【００４４】
ＶＲＡＭ１６に２つのフレームバッファ２４Ａ，２４Ｂが設けられていることにより、テレビジョン装置４への例えば１／３０秒毎の各フレームの描画処理をスムーズに行うことができる。すなわち、一方のフレームバッファ２４Ａを用いてテレビジョン装置４への表示処理を行っている間に、他方のフレームバッファ２４Ｂで次のフレームの画像データを生成し、この処理をフレームバッファ２４Ａとフレームバッファ２４Ｂとの間で交互に行うことにより、描画処理をスムーズに行う。
【００４５】
Ｄ／Ａコンバータ１７は、フレームバッファ２４から出力される画像データをアナログ信号に変換してテレビジョン装置４に出力するものである。Ｄ／Ａコンバータ１７には、フレームバッファ２４Ａからの画像データとフレームバッファ２４Ｂからの画像データとを切り換えるスイッチ回路が設けられ、このスイッチ回路の切り換えは描画処理プロセッサ１５によって制御される。
【００４６】
音声処理プロセッサ１８は、ＣＰＵ１１からの音声指令に基づき、ＲＡＭ１３から効果音又はＢＧＭ等の音声データを読み出し、所要の加工処理とＤ／Ａ変換処理をした後、アンプ１９に出力する。アンプ１９は、音声処理プロセッサ１８から入力される音声信号を所定の増幅度で増幅した後、テレビジョン装置４の内蔵スピーカ４ａに出力する。
【００４７】
インターフェース（Ｉ／Ｆ）２０は、操作コントローラ３を本体２に接続するためのインターフェースである。操作コントローラ３は、本体２に各種の操作情報を入力するものである。操作コントローラ３には、十字キー、左ボタン、右ボタン、セレクトボタン、スタートボタン、及びジョイスティック等の複数の操作部材３ａが設けられている。
【００４８】
スタートボタンはゲーム開始を入力するためのボタンであり、セレクトボタンはメニュー内容を選択するためのボタンである。また、ジョイスティックや十字キーは、主としてゲームキャラクタに移動、攻撃及び防御等の種々の動作を指令するための操作部材として使用される。左ボタン及び右ボタンは、例えばテレビジョン装置４に表示される三次元映像の画像の視線方向を左方向や右方向に移動又は回転したりするのに使用される。
【００４９】
本実施形態に係るゲームプログラムで適用されるゲームでは、三次元の仮想空間内に、半透明オブジェクトと、面状半透明オブジェクトとが配置される場合、それらのオブジェクトを透視投影法によりスクリーンに投影される二次元画像に変換して表示画面に表示させる際、例えば面状半透明オブジェクトより奥に描かれるはずの半透明オブジェクトが面状半透明オブジェクトより手前にあるように描写されたり、面状半透明オブジェクトより手前にある半透明オブジェクトが面状半透明オブジェクトより奥にあるように描写されたりすることのないようにされている。
【００５０】
なお、上記面状半透明オブジェクトとしては、具体的には、海、湖、池、川、滝、氷及びガラス等が挙げられる。以下では、面状半透明オブジェクトの一例として、海や湖等の水面を表すオブジェクト（以下、「水面オブジェクトＷ」という。）を対象として説明する。
【００５１】
図３は、本実施形態に係る、半透明オブジェクトの描画処理の制御動作を示すフローチャートである。なお、この制御動作は、主として描画処理プロセッサ１５によって行われる。
【００５２】
図４は、ゲームに登場するシーンの三次元仮想空間モデルを側方から見たときの図である。以下では、この図４に示す三次元仮想空間モデルを参照して、図３のフローチャートに示す制御動作を説明する。
【００５３】
図４に示すように、仮想空間内には、例えば海や湖等の水面オブジェクトＷ（面状半透明オブジェクト）が配置されている。この仮想空間内には、水面オブジェクトＷの下に半透明オブジェクトＡ，Ｂが配置されている。半透明オブジェクトＡ，Ｂは、ゲーム上に登場する例えば半透明状のモンスター等からなる。また、水面オブジェクトＷの水面の上方には、半透明オブジェクトＣ，Ｄが配置されている。半透明オブジェクトＣ，Ｄは、半透明オブジェクトＡ，Ｂと同様に、ゲーム上に登場する例えば半透明状のモンスター等からなる。
【００５４】  上記三次元仮想空間モデルでは、仮想的なカメラＫ（視点）が配置される。テレビジョン装置４の表示画面に描画される二次元画像は、上記三次元仮想空間モデルが仮想カメラＫによって撮像されるときに得られる撮像画像を単にシミュレーションしたものではなく、仮想カメラＫの位置から水面オブジェクトＷに視線を伸ばし、その視線が仮想カメラＫと水面オブジェクトＷとの間に仮想的に配置されたスクリーン（図示せず）と交差する位置に、水面オブジェクトＷや他のオブジェクトを描画したもの（透視投影法による二次元画像）である。【００５５】
図４に示す仮想空間モデルを描画する場合には、最初にキャラクタや建物等の不透明なオブジェクトについてＺバッファ法による描画処理を行う。なお、この描画処理には、Ｚソート法を用いてもよい。
【００５６】
その後、図３のフローチャートに示す制御動作による半透明オブジェクトの描画処理を行う。したがって、例えば図４の例において、水面オブジェクトＷである海等の底が不透明である場合には、前処理として海等の底が不透明オブジェクトとして描画される。なお、描画処理が実行される前提として、ＣＰＵ１１によって仮想カメラＫに映し出されるオブジェクトが抽出されてリストが生成される。このリストは、不透明オブジェクト、半透明オブジェクト別に生成される。このリストを読み出して不透明オブジェクトの描画処理、半透明オブジェクトの描画処理がそれぞれ行われる。
【００５７】
ステップＳ１では、上述のリストから仮想空間モデルにおける描画対象オブジェクトが抽出される。ここで、描画対象オブジェクトとしては、図４に示す仮想空間モデルでは、水面オブジェクトＷ及び半透明オブジェクトＡ，Ｂ，Ｃ，Ｄが挙げられ、これらが描画対象オブジェクトとして抽出される。
【００５８】
次いで、描画対象オブジェクトの中に水面オブジェクトＷが含まれるか否かが判別される（Ｓ２）。具体的には、面状半透明オブジェクトを特定するフラグ情報に基づいて抽出される。このフラグ情報は、水面オブジェクトＷに関連付けてゲームデータとして記憶されている。描画対象オブジェクトの中に水面オブジェクトＷが含まれると、背景技術の欄で説明したように、他の半透明オブジェクトが適切に描画されないことが生じるので、水面オブジェクトＷの有無が判別される。
【００５９】
ステップＳ２において、描画対象オブジェクトに水面オブジェクトＷが含まれない場合（Ｓ２：ＮＯ）、描画対象である全ての半透明オブジェクトを対象としてＺソート法による描画順が決定される（Ｓ３）。
【００６０】
Ｚソート法では、仮想カメラＫから遠い順に半透明オブジェクト単位での描画順が決定される。より詳細には、各半透明オブジェクトの代表点を用いて、仮想カメラＫの座標系におけるＺ値の大きい順（遠い順）に描画順が決定される。
【００６１】
そして、決定された描画順で各半透明オブジェクトの描画処理が行われる（Ｓ４）。具体的には、半透明オブジェクトの各画素に対応するフレームバッファ２４に格納されている画素の画素値をαブレンディングする処理等が行われる。なお、本処理は、一般的な半透明オブジェクトの描画処理と同様であるため、説明は省略する。
【００６２】
一方、ステップＳ２において、描画対象オブジェクトに水面オブジェクトＷが含まれる場合（Ｓ２：ＹＥＳ）、水面オブジェクトＷの代表点ｗにおける、ワールド座標系の上下方向（Ｙ軸方向）の座標ｗyを取得する（Ｓ５）。水面オブジェクトＷは、水面のほぼ中央位置が代表点ｗとして設定され、その代表点ｗのワールド座標系の座標位置が（ｗx，ｗy，ｗz）とされるので、そのＹ軸における座標ｗyが取得される。
【００６３】
そして、取得された座標ｗyを通る水平面を境界面として仮想空間を上下に分割し、２つの領域Ｐ，Ｑを設定する（Ｓ６）。この場合、座標ｗyを通るＸＺ軸平面に平行な水平面は、水面オブジェクトＷの水面と一致し、水面オブジェクトＷの水面は水平方向に広がるため、水面オブジェクトＷの水面が領域Ｐ，Ｑを区別するための境界面となる。この境界面を境にして境界面より下方（すなわち水中）の領域Ｐ及び境界面より上方の領域Ｑの２つの領域Ｐ，Ｑが設定される。図４の例では、水面オブジェクトＷの上方の空間が領域Ｑと、水面オブジェクトＷの水中が領域Ｐとして設定される。
【００６４】
本実施例では、水面オブジェクトＷ（面状半透明オブジェクト）の面方向に平行であって代表点を含んだ面を境界面としているが、境界面を設定するのに含ませる点としては代表点でなくてもよく、面状半透明オブジェクトの仮想空間上の位置に関連する座標点であればよい。例えば、水面オブジェクトＷの端側に位置するポリゴン頂点の座標を座標点としてもよい。また、厚みのある面状半透明オブジェクトであれば、表面のポリゴン頂点の座標を座標点としてもよい。
【００６５】
次に、半透明オブジェクトＡ，Ｂ，Ｃ，Ｄを、分割された２つの領域Ｐ，Ｑのうちいずれに属するかによってグループ分けする（Ｓ７）。図４の例を参照すれば、半透明オブジェクトＡ，Ｂ，Ｃ，Ｄは、それぞれの重心が代表点ａ，ｂ，ｃ，ｄにそれぞれ設定されている。そのため、この代表点ａ，ｂ，ｃ，ｄについてのＹ軸座標と、水面オブジェクトＷの代表点ｗについてのＹ軸座標ｗyとが比較され、各半透明オブジェクトＡ，Ｂ，Ｃ，Ｄの属する領域が決定される。
【００６６】
例えば、半透明オブジェクトＡのワールド座標系における位置座標を（ａx，ａy，ａz）とすれば、半透明オブジェクトＡの代表点ａのＹ軸座標ａyと水面オブジェクトＷの代表点ｗのＹ軸座標ｗyとが比較され、図４の例では、半透明オブジェクトＡの代表点ａのＹ軸座標ａyが水面オブジェクトＷの代表点ｗのＹ軸座標ｗyより下側にあるので、半透明オブジェクトＡは、境界面（水面）より下側の領域Ｐに属すると判定される。
【００６７】
半透明オブジェクトＢについても、同様の判定処理が行われ、半透明オブジェクトＢの代表点ｂのＹ軸座標は、水面オブジェクトＷの代表点ｗのＹ軸座標ｗyより下側にあるので、半透明オブジェクトＢは境界面（水面）より下側の領域Ｐに属すると判定される。また、半透明オブジェクトＣ，Ｄは、それぞれの代表点ｃ，ｄのＹ軸座標が水面オブジェクトＷの代表点ｗのＹ軸座標ｗyより上側にあるので、半透明オブジェクトＣ，Ｄは境界面（水面）より上側の領域Ｑに属すると判定される。
【００６８】
次いで、グループ分けされた各半透明オブジェクトＡ，Ｂ，Ｃ，Ｄに対して、領域ごとにオブジェクト単位でのＺソート法による描画順（領域内描画順）が決定され、領域ごとに描画処理が施される。まず、仮想カメラＫが属していない領域Ｐに属する半透明オブジェクトＡ，Ｂについて、Ｚソート法による描画順が決定される（Ｓ８）。つまり、複数の領域Ｐ，Ｑ及び水面オブジェクトＷ（面状半透明オブジェクト）のうち、仮想カメラＫ（所定の視点）の位置から遠い順（領域外描画順）に描画が行われる。仮想カメラＫが領域に属しているか否かは、例えば仮想カメラＫのＹ軸座標が水面オブジェクトＷの代表点の座標ｗyよりも大きいか否かによって判定することができる。
【００６９】
図４から明らかなように、代表点ａ，ｂに対する仮想カメラＫの座標系での半透明オブジェクトＡ，ＢのＺ値は、半透明オブジェクトＡの方が大きい（仮想カメラＫから遠い）ので、描画処理の順番は、半透明オブジェクトＡ、半透明オブジェクトＢの順番となる。なお、仮想カメラＫの座標系は、視線方向（矢印ｕ方向）がＺ軸となる。
【００７０】
その後、ステップＳ８において描画順が決定された、水面下の領域Ｐにある半透明オブジェクトＡ，Ｂについて、半透明オブジェクトＡ、半透明オブジェクトＢの順番で描画（ブレンディング）処理が施される（Ｓ９）。
【００７１】
領域Ｐにある半透明オブジェクトＡ，Ｂの描画処理が終了すると、水面オブジェクトＷの代表点ｗのＹ軸座標ｗyが描画未処理の半透明オブジェクトＣ，Ｄの代表点ｃ，ｄのＹ軸座標より下側にあるので、ステップＳ４、Ｓ９と同様に、水面オブジェクトＷについて描画（ブレンディング）処理が施される（Ｓ１０）。
【００７２】
次いで、境界面により上側の領域Ｑに属する半透明オブジェクトＣ，Ｄについて、ステップＳ８と同様にＺソート法による描画順が決定される（Ｓ１１）。図４から明らかなように、代表点ｃ，ｄに対する仮想カメラＫの座標系での半透明オブジェクトＣ，ＤのＺ値は、半透明オブジェクトＣの方が大きいので、描画処理の順番は、半透明オブジェクトＣ、半透明オブジェクトＤの順番となる。
【００７３】
その後、ステップＳ１１において描画順が決定された、領域Ｑにある半透明オブジェクトＣ，Ｄについて、半透明オブジェクトＣ、半透明オブジェクトＤの順番で描画（ブレンディング）処理が施される（Ｓ１２）。
【００７４】
上記のように、半透明オブジェクトの描画処理が終了すれば、図３のフローチャートには示していないが、粒子状のもの（パーティクル）等を描画するエフェクト処理、及び霧等を描画するフィルタ処理等が必要に応じて行われる。
【００７５】
上記フローチャートに基づき描画される画像は、例えば図５に示すような画像となる。すなわち、半透明オブジェクトＡ，Ｂは、水面オブジェクトＷで表される水面の下に位置するように、また、半透明オブジェクトＣ，Ｄは、水面オブジェクトＷで表される水面の上に位置するように、それぞれ描画される。なお、図５において実線の半透明オブジェクトは水面の上にあることを示し、点線の半透明オブジェクトは水面の下にあることを示す。
【００７６】
すなわち、本実施形態によれば、従来のように、本来水面オブジェクトＷの下側に描かれるはずの半透明オブジェクトが水面上に描画されたり（図９の半透明オブジェクトＢ参照）、本来水面オブジェクトＷの上側に描かれるはずの半透明オブジェクトが水面オブジェクトＷの下側に位置するように描画されたり（図９の半透明オブジェクトＣ参照）することがなくなる。
【００７７】
このように、本実施形態によれば、各オブジェクトの描画順が、境界面より下にある半透明オブジェクトＡ，Ｂ、水面オブジェクトＷ、及び境界面より上にある半透明オブジェクトＣ，Ｄというように、境界面を境にして分割された順番で描画される。これにより、描画対象オブジェクトに水面オブジェクトＷ（面状半透明オブジェクト）が含まれる場合であっても、半透明オブジェクトＡ，Ｂ，Ｃ，Ｄをリアルに描画することができる。また、本実施形態によれば、オブジェクトのポリゴン単位でＺソート法による描画処理を行う必要もないので、処理負荷の増大化を招くこともない。
【００７８】
なお、本実施例では、１つの領域の描画順を決定してすぐにこの領域の半透明オブジェクトの描画を行っているが、特にこれに限定されるものではない。例えば、領域Ｐ，Ｑに存在する半透明オブジェクトＡ，Ｂ，Ｃ，Ｄ及び水面オブジェクトＷの全ての描画順（Ａ→Ｂ→Ｗ→Ｃ→Ｄ）を決定した後に、各オブジェクトＡ，Ｂ，Ｃ，Ｄ，Ｗを描画順に描画してもよい。
【００７９】
図６は、本願発明の第２実施例に係る仮想空間モデルを示す図であり、この仮想空間モデルは、描画対象オブジェクトとして水面オブジェクトが複数含まれるものである。図６に示す仮想空間モデルでは、水面の面積が異なる２つの水面オブジェクトＷ１，Ｗ２が陸等を表す不透明オブジェクトＧを介在して独立に配置され、水面オブジェクトＷ１，Ｗ２の水面のＹ軸座標が異なっている。すなわち、水面オブジェクトＷ１の水面が水面オブジェクトＷ２の水面より低く設定されている。
【００８０】
水面オブジェクトＷ１には、その水面下に半透明オブジェクトＡ，Ｂが配置され、その水面上に半透明オブジェクトＣ，Ｄが配置されている。また、水面オブジェクトＷ２には、その水面下に半透明オブジェクトＥが配置され、その水面上に半透明オブジェクトＦが配置されている。その他の構成については、第１実施例の構成と略同様である。
【００８１】
上記仮想空間モデルのように水面オブジェクトが２つある場合の半透明オブジェクトの描画処理では、水面オブジェクトＷ１，Ｗ２の代表点ｗ１，ｗ２におけるＹ軸座標に基づいて、３つの領域に分割される。すなわち、水面オブジェクトＷ１の代表点ｗ１のＹ軸座標ｗ1yが取得され、そのＹ軸座標ｗ1yを通る水平面を第１の境界面として、その第１の境界面より下方の領域Ｐが設定される。また、水面オブジェクトＷ２の代表点ｗ２のＹ軸座標ｗ2yが取得され、そのＹ軸座標ｗ2yを通る水平面を第２の境界面として、第１の境界面より上方であって第２の境界面より下方の領域Ｑが設定される。さらに、第２の境界面より上方の領域Ｒが設定される。
【００８２】
次いで、半透明オブジェクトＡ〜Ｆが各領域Ｐ，Ｑ，Ｒのいずれに属するかが決定され、各領域Ｐ，Ｑ，Ｒにおいて半透明オブジェクトＡ〜Ｆの描画順が決定される。
【００８３】
まず、複数の領域Ｐ，Ｑ，Ｒ及び水面オブジェクトＷ１，Ｗ２のうち、仮想カメラＫの位置から遠い順に描画順（領域外描画順）が決定される。仮想カメラＫから遠い順を決定する判断は、例えば仮想カメラＫのＹ軸座標と水面オブジェクトＷ１，Ｗ２の各代表点のＹ軸座標とを比較することにより行われる。水面オブジェクトＷ１，Ｗ２のうち仮想カメラＫから最も遠いのは、Ｙ軸座標の比較により水面オブジェクトＷ１と判断される。これにより、水面オブジェクトＷ１よりも下方にある領域Ｐは、仮想カメラＫから最も遠いことが判断される。また、水面オブジェクトＷ１，Ｗ２の間にある領域Ｑは、水面オブジェクトＷ１よりも仮想カメラＫに近く、水面オブジェクトＷ２よりも仮想カメラＫに遠いことが判断される。さらに、水面オブジェクトＷ２よりも上方にある領域Ｒは、仮想カメラＫに最も近いことが判断される。したがって、図６に示す仮想空間モデルでは、領域Ｐ、水面オブジェクトＷ１、領域Ｑ、水面オブジェクトＷ２、領域Ｒの順で描画順が決定される。
【００８４】
仮想カメラＫから一番遠い領域Ｐに属する半透明オブジェクトＡ，Ｂの描画順が第１実施例と同様の処理で決定されると、決定された描画順で半透明オブジェクトＡ，Ｂの描画処理が行われる。続いて、水面オブジェクトＷ２より仮想カメラＫから遠い水面オブジェクトＷ１の描画処理が行われる。
【００８５】
次に、仮想カメラＫから次に遠い領域Ｑに属する半透明オブジェクトＣ，Ｄ，Ｅの描画順が第１実施例と同様の処理で決定され、決定された描画順で半透明オブジェクトＣ，Ｄ，Ｅの描画処理が行われる。その後、水面オブジェクトＷ２の描画処理が行われる。最後に、領域Ｒに属する半透明オブジェクトＦの描画処理が行われる。
【００８６】
このように、仮想空間モデルにおいて複数の水面オブジェクトＷ１，Ｗ２が配置され、領域を設定するための代表点ｗ１，ｗ２のＹ軸座標が異なる場合には、上記したように、３つの領域Ｐ，Ｑ，Ｒに分割して各領域Ｐ，Ｑ，Ｒにおいて半透明オブジェクトＡ〜Ｆの描画順が決定される。なお、図６に示す仮想空間モデルにおいて、仮に水面オブジェクトＷ１，Ｗ２の代表点ｗ１，ｗ２のＹ軸座標が一致する場合には、領域を２つに設定すればよい。
【００８７】
上記第２実施例においても、上述した第１実施例と同様の作用効果を奏する。なお、本第２実施例では、第１実施例と同様に、１つの領域の描画順を決定してすぐにこの領域の半透明オブジェクトの描画を行っているが、特にこれに限定されるものではない。
【００８８】
図７は、本願発明の第３実施例における仮想空間モデルを示す図であり、この仮想空間モデルは、描画対象オブジェクトに水面オブジェクトが複数含まれる点で第２実施例と同様であるが、複数の水面オブジェクトが層状に重なって配置される点で第２実施例と異なる。図７によると、水面オブジェクトＷ１，Ｗ２が例えば海等として設定された場合、水面オブジェクトＷ１は、水面オブジェクトＷ２に比べ色濃度の高いより深い層とされ、水面オブジェクトＷ２は、水面オブジェクトＷ１に比べ色濃度の低いより浅い層とされている。
【００８９】
また、水面オブジェクトＷ１の下に、半透明オブジェクトＡ，Ｂが配置され、水面オブジェクトＷ２の下であって水面オブジェクトＷ１の上方には、半透明オブジェクトＣ，Ｄが配置されている。また、水面オブジェクトＷ２の上に半透明オブジェクトＥが配置されている。その他の構成については、第１実施例及び第２実施例の構成と略同様である。
【００９０】
上記仮想空間モデルのように水面オブジェクトＷ１，Ｗ２が層状に重なり合っている場合の半透明オブジェクトの描画処理では、第２実施例に係る仮想空間モデルと同様に、水面オブジェクトＷ１，Ｗ２の代表点ｗ１，ｗ２におけるＹ軸座標に基づいて、３つの領域Ｐ，Ｑ，Ｒに分割される。
【００９１】
そして、半透明オブジェクトＡ〜Ｅが各領域Ｐ，Ｑ，Ｒのいずれに属するかが決定され、各領域Ｐ，Ｑ，Ｒにおいて描画順が決定される。まず、仮想カメラＫから一番遠い領域Ｐに属する半透明オブジェクトＡ，Ｂの描画順が決定され、決定された描画順で半透明オブジェクトＡ，Ｂの描画処理が行われる。続いて、水面オブジェクトＷ２より仮想カメラＫから遠い水面オブジェクトＷ１の描画処理が行われる。
【００９２】
次に、仮想カメラＫから次に遠い領域Ｑに属する半透明オブジェクトＣ，Ｄの描画順が決定され、決定された描画順で半透明オブジェクトＣ，Ｄの描画処理が行われる。その後、水面オブジェクトＷ２の描画処理が行われる。最後に、領域Ｒに属する半透明オブジェクトＥの描画処理が行われる。
【００９３】  このように、仮想空間モデルにおいて複数の水面オブジェクトＷ１，Ｗ２が層状に重なり合っている場合にも、上記したように、３つの領域Ｐ，Ｑ，Ｒに分割して各領域Ｐ，Ｑ，Ｒにおいて半透明オブジェクトＡ〜Ｅの描画順が決定される。したがって、この第３実施例においても、第１実施例及び第２実施例と同様の作用効果を奏する。なお、本第３実施例では、第１、第２実施例と同様に、１つの領域の描画順を決定してすぐにこの領域の半透明オブジェクトの描画を行っているが、特にこれに限定されるものではない。【００９４】
もちろん、この発明の範囲は上述した実施の形態に限定されるものではない。例えば、上記実施例では、分割される領域の数は２つ又は３つとされたが、分割される領域の数はこれらの数に限るものではない。また、１つの領域に属する半透明オブジェクトの数も、上記した実施例に限るものではない。
【００９５】
また、上記実施例では、面状半透明オブジェクトを水面オブジェクトとして説明したが、特にこれに限定されるものではなく、ガラス、氷、滝等の半透明オブジェクトであればよい。この場合、面状半透明オブジェクトが例えば傾斜している屋根に設けられた窓ガラスのオブジェクトの場合、ガラス面の斜め方向に沿った面が境界面として設定される。また、例えば滝のオブジェクトの場合には、滝の表面であって上下方向に沿った面が境界面として設定される。
【００９６】
また、面状半透明オブジェクトは、平面形状を有する半透明オブジェクトに限定されるものではなく、レンズのような曲面形状を有するものや、波立った水面オブジェクトのような凹凸形状を呈する面形状を有するものであってもよい。さらに、面状半透明オブジェクトは、水面オブジェクトＷのような板面形状に限らず、立方体形状や細長い棒形状であってもよい。また、三次元の仮想空間に存在する半透明オブジェクトのうち、いずれを面状半透明オブジェクトに設定してもよく、面状半透明オブジェクトは任意に設定可能である。
【００９７】
また、本発明は、上記したゲームの内容に限らず、対戦型ゲーム、シミュレーションゲーム又はロールプレーイングゲーム等の種々のゲームに適用することができる。また、上記ゲーム装置１は、一例として家庭用のテレビゲーム機とされているが、このゲーム装置１は、家庭用のテレビゲーム機に限らず、携帯型ゲーム機、アーケードゲーム機等の他の種類のゲーム機、又はゲーム機以外の三次元映像を表示する装置、例えばゲームプログラムがローディングされたパーソナルコンピュータ等であってもよい。
【図面の簡単な説明】
【００９８】
【図１】本願発明の第１実施例に係るゲームプログラムが適用されるゲーム装置の一例を示すブロック構成図である。
【図２】図１に示す本体の内部構成を示す図である。
【図３】本実施形態に係る、本願発明の描画処理の制御動作を示すフローチャートである。
【図４】ゲームに登場するシーンの三次元仮想空間モデルを側方から見たときの図である。
【図５】図４に示す三次元仮想空間モデルが透視投影された図である。
【図６】本願発明の第２実施例における仮想空間モデルを示す図である。
【図７】本願発明の第３実施例における仮想空間モデルを示す図である。
【図８】従来のゲームに登場するシーンの三次元仮想空間モデルを側方から見たときの図である。
【図９】図８に示す三次元仮想空間モデルが透視投影された図である。
【符号の説明】
【００９９】
１  ゲーム装置
２  本体
３  操作コントローラ
４  テレビジョン装置
４ａ  内蔵スピーカ
５  ＤＶＤ−ＲＯＭ
６  メモリカード
１１  ＣＰＵ
１２  描画データ生成プロセッサ
１３  ＲＡＭ
１４  ＲＯＭ
１５  描画処理プロセッサ
１６  ＶＲＡＭ
１７  Ｄ／Ａコンバータ
１８  音声処理プロセッサ
１９  アンプ
２０  インターフェース
２２  メモリカード接続ユニット
２１  ＤＶＤ−ＲＯＭドライブ
２４  フレームバッファ
２５  テクスチャバッファ
Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆ  半透明オブジェクト
ａ，ｂ，ｃ，ｄ，ｅ，ｆ  代表点（半透明オブジェクトの）
Ｋ  仮想カメラ
Ｐ，Ｑ，Ｒ  領域
Ｗ，Ｗ１，Ｗ２  水面オブジェクト
ｗ，ｗ１，ｗ２  代表点（水面オブジェクトの）
【図１】
0004937938.tif 000002
【図２】
0004937938.tif 000003
【図３】
0004937938.tif 000004
【図４】
0004937938.tif 000005
【図５】
0004937938.tif 000006
【図６】
0004937938.tif 000007
【図７】
0004937938.tif 000008
【図８】
0004937938.tif 000009
【図９】
0004937938.tif 000010