説明

ゲーム装置および画像処理プログラム

【課題】 ゲームフィールドの雰囲気をできるだけ損なわずに、プレイヤキャラクタなどの特定のオブジェクトを常に表示することのできるゲーム装置を提供すること。
【解決手段】 まず、キャラクタオブジェクトCH1をスクリーン平面に投影し、スクリーン平面に投影されたキャラクタオブジェクトCH1の位置を中心とした円形の領域をマスク領域として描画する。こうして得られた画像データはマスクデータとしてメインメモリに格納され、仮想ゲーム空間の各オブジェクトを描画するときに利用される。各フィールドオブジェクトOB1〜OB3には透過フラグが予め設定されており、透過フラグが1であるフィールドオブジェクトOB1については、マスクデータを用いて描画され、キャラクタオブジェクトCH1と透過フラグが0であるフィールドオブジェクトOB2、OB3については普通に描画される。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ゲーム装置および画像処理プログラムに関し、特に、例えば三次元の仮想ゲーム空間に描画された建物の画像とプレイヤが操作するプレイヤキャラクタの画像とが混在して表示されるとき、プレイヤキャラクタが建物に隠れて見えなくなってしまうような不都合を解消したゲーム装置および画像処理プログラムに関する。
【背景技術】
【0002】
三次元の仮想ゲーム空間において展開されるゲームにおいて、例えば建物の間をプレイヤが操作するプレイヤキャラクタが移動するときに、ゲーム画面においてプレイヤキャラクタが建物に隠れてしまうことがある。このような場合、従来から視点を移動させることによってプレイヤキャラクタを表示させることが一般的であった。しかしながらゲームによっては、視点移動を行わずに常に同じ方向から仮想ゲーム空間を見たようなゲーム画像を表示することが好ましい場合もある。
【0003】
特許文献1に記載の技術では、プレイヤキャラクタの表示位置に重なったかその近傍に位置したときにのみ壁や床に対して透過処理を行うことによって、プレイヤキャラクタが表示画面上で常に視認できるようにしている。
【0004】
特許文献2に記載の技術では、障害物が被写体を隠しているかどうかを判定し、障害物が被写体を隠しているときにのみ、この障害物に透過処理を行うことによって、表示画面上でプレイヤキャラクタが常に視認できるようにしている。
【特許文献1】特許第2902352号公報
【特許文献2】特許第3141737号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載の技術では、プレイヤキャラクタが建物の壁の陰に隠れたときに、その壁全体が透過処理されてしまうため、ゲームフィールドの雰囲気が大きく変わってしまう。特許文献2に記載の技術でも、被写体が障害物の陰に隠れたときに、その障害物全体が透過処理され、今まで表示されていた障害物が突然消えてしまうため、ゲームフィールドの雰囲気が大きく変わってしまう。また、いずれの技術においても、壁や障害物などのオブジェクト毎に、プレイヤキャラクタ(または被写体)や視点との位置関係に基づいてプレイヤキャラクタ(または被写体)を隠しているか否かを判定してから各オブジェクトを描画する必要があり、オブジェクトの数の増加に応じて判定のための処理負担が大きくなる。
【0006】
それ故に、この発明の主たる目的は、ゲームフィールドの雰囲気をできるだけ損なわずに、プレイヤキャラクタなどの特定のオブジェクトを常に視認できるように表示することのできるゲーム装置を提供することである。
【0007】
この発明のその他の目的は、壁や障害物などのオブジェクト毎に、プレイヤキャラクタや視点との位置関係に基づいてプレイヤキャラクタを隠しているか否かを判定することなしに、それらオブジェクトを適切に透過処理して、プレイヤキャラクタなどの特定のオブジェクトを視認できるように表示することができる、新規なゲーム装置およびゲームプログラムを提供することである。
【課題を解決するための手段】
【0008】
上記課題を解決するために、この発明は以下の構成を採用した。なお、括弧内の参照符号、図番号および補足説明は、この発明の理解を助けるために図面との対応関係を示したものであって、この発明の範囲を何ら限定するものではない。
【0009】
請求項1に記載の発明は、ユーザによって操作される操作手段(20)、オブジェクト記憶手段(28、66)、マスクデータ生成手段(24、26、54、S16)、マスクデータ記憶手段(28、86)、投影手段(24、26、56)、ゲーム画像生成手段(24、26、58)、および表示制御手段(24、26、60)を備えたゲーム装置である。
オブジェクト記憶手段(28、66)は、三次元の仮想ゲーム空間に存在する1以上の第1オブジェクト(CH1、CH2、・・・)を含む複数のオブジェクトのそれぞれの位置を記憶する。マスクデータ生成手段(24、26、54、S16)は、仮想ゲーム空間における第1オブジェクトの位置に応じたマスクデータ(図12、図14、図19、図34、図38)を生成する。マスクデータ記憶手段(28、86)は、マスクデータ生成手段が生成したマスクデータを記憶する。投影手段(24、26、56)は、仮想ゲーム空間に存在するオブジェクトを仮想ゲーム空間に設定されたスクリーン平面に投影(透視投影でも平行投影でもよい)する。ゲーム画像生成手段(24、26、58)は、投影手段による投影結果に基づいてオブジェクトを描画してゲーム画像を生成する。表示制御手段(24、26、60)は、ゲーム画像生成手段によって生成されたゲーム画像を表示装置(12)に表示させる。そして、マスクデータ生成手段は、表示装置の画面における第1オブジェクトの表示位置を含む所定のマスク領域についてはオブジェクトを透過表示(非表示または半透明表示)し、その他の領域についてはオブジェクトを通常表示する(すなわち不透明のものは不透明で表示し、半透明のものは半透明で表示する)マスクデータを生成する。さらに、ゲーム画像生成手段は、第1オブジェクトを描画するときにはマスク処理を行わず(S38)、仮想ゲーム空間に存在する第1オブジェクト以外のオブジェクトである第2オブジェクト(OB1、OB2、・・・)を描画するときにのみマスクデータを用いたマスク処理を行う(S36)。
【0010】
請求項2に記載の発明は、請求項1に記載の発明において、ゲーム装置は、各第2オブジェクトについてマスクデータを用いたマスク処理を行うか否かを示す透過対象識別情報を記憶する透過対象識別情報記憶手段(28、84)をさらに備える。そして、ゲーム画像生成手段は、透過対象識別情報記憶手段に記憶されている透過対象識別情報に従って、特定の第2オブジェクトにのみマスクデータを用いたマスク処理を行う(S34)ことを特徴とする(図6)。
【0011】
請求項3に記載の発明は、請求項1に記載の発明において、ゲーム画像生成手段は、仮想ゲーム空間に設定された視点に対して予め決められた基準位置(88)よりも近い第2オブジェクトにのみマスクデータを用いたマスク処理を行う(S42)ことを特徴とする(図24)。
【0012】
請求項4に記載の発明は、請求項3に記載の発明において、ゲーム画像生成手段は、仮想ゲーム空間に設定された視点に対して第1オブジェクトよりも近い第2オブジェクトにのみマスクデータを用いたマスク処理を行うことを特徴とする。
【0013】
請求項5に記載の発明は、請求項3に記載の発明において、ゲーム装置は、仮想ゲーム空間に設定された視体積に第1オブジェクトが複数存在する場合に、これら複数の第1オブジェクトのうち、仮想ゲーム空間に設定された視点から最も遠い第1オブジェクトの位置を基準位置として決定する基準位置決定手段(24、S44、S46)をさらに備える。そして、ゲーム画像生成手段は、仮想ゲーム空間に設定された視点に対して基準位置決定手段によって決定された基準位置よりも近い第2オブジェクトにのみマスクデータを用いたマスク処理を行うことを特徴とする(図29)。
【0014】
請求項6に記載の発明は、請求項1に記載の発明において、マスクデータ生成手段は、仮想ゲーム空間における第1オブジェクトの位置から仮想ゲーム空間に設定された視点に向かって延びる所定のマスク空間(図32、図33)についてはオブジェクトを透過表示し、その他の空間についてはオブジェクトを通常表示するマスクデータ(デプスマスクデータ、図34、図40)を生成することを特徴とする。
【0015】
請求項7に記載の発明は、請求項6に記載の発明において、マスクデータ生成手段は、仮想ゲーム空間に設定された視体積に第1オブジェクトが複数存在する場合に、各第1オブジェクトの位置に応じた長さを有する複数のマスク空間を規定したマスクデータを生成することを特徴とする(図32)。
【0016】
請求項8に記載の発明は、請求項1に記載の発明において、ゲーム画像生成手段は、マスクデータに応じてオブジェクトの各点のアルファ値を変化させる。そして、変化後のアルファ値に基づくアルファ合成によってゲーム画像の各画素の色を決定することを特徴とする。
【0017】
請求項9に記載の発明は、請求項1に記載の発明において、第1オブジェクトは、ユーザが操作手段を用いて制御するプレイヤキャラクタであることを特徴とする。
【0018】
請求項10に記載の発明は、請求項1に記載の発明において、マスクデータ生成手段は、表示装置の画面における第1オブジェクトの表示位置を含む所定のマスク領域についてはオブジェクトを透過表示(非表示または半透明表示)する。そして、その他の領域についてはオブジェクトを通常表示(すなわち不透明のものは不透明で表示し、半透明のものは半透明で表示する)する。さらに、マスク領域の境界においてオブジェクトの透明度を徐々に変化させるマスクデータ(図14、図38)を生成することを特徴とする。
【0019】
請求項11に記載の発明は、請求項1に記載の発明において、マスクデータ生成手段は、ゲーム画像生成手段によって生成されるゲーム画像よりも解像度の低いマスクデータを作成する。そして、ゲーム画像生成手段は、マスクデータを拡大して利用することを特徴とする。
【0020】
請求項12に記載の発明は、請求項1に記載の発明において、投影手段は、仮想ゲーム空間に存在するオブジェクトを仮想ゲーム空間に設定された視点に基づくスクリーン平面に透視投影する。そして、マスクデータ生成手段は、仮想ゲーム空間に設定された視点から第1オブジェクトまでの距離に応じてマスク領域の大きさを変化させることを特徴とする(図17B、図17C)。
【0021】
請求項13に記載の発明は、ユーザによって操作される操作手段(20)を備えたゲーム装置のコンピュータ(24、26、28)を、オブジェクト記憶手段(28、66)、マスクデータ生成手段(24、26、54、S16)、マスクデータ生成手段が生成したマスクデータを記憶するマスクデータ記憶手段(28、86)、投影手段(24、26、56)、ゲーム画像生成手段(24、26、58)、および表示制御手段(24、26、60)として機能させるための画像処理プログラムである。
オブジェクト記憶手段(28、66)は、三次元の仮想ゲーム空間に存在する1以上の第1オブジェクト(CH1、CH2、・・・)を含む複数のオブジェクトのそれぞれの位置を記憶する。マスクデータ生成手段(24、26、54、S16)は、仮想ゲーム空間における第1オブジェクトの位置に応じたマスクデータ(図12、図14、図19、図34、図38)を生成する。マスクデータ記憶手段(28、86)は、マスクデータ生成手段が生成したマスクデータを記憶する。投影手段(24、26、56)は、仮想ゲーム空間に存在するオブジェクトを仮想ゲーム空間に設定されたスクリーン平面に投影(透視投影でも平行投影でもよい)する。ゲーム画像生成手段(24、26、58)は、投影手段による投影結果に基づいてオブジェクトを描画してゲーム画像を生成する。表示制御手段(24、26、60)は、ゲーム画像生成手段によって生成されたゲーム画像を表示装置(12)に表示させる。
そして、マスクデータ生成手段は、表示装置の画面における第1オブジェクトの表示位置を含む所定のマスク領域についてはオブジェクトを透過表示(非表示または半透明表示)し、その他の領域についてはオブジェクトを通常表示する(すなわち不透明のものは不透明で表示し、半透明のものは半透明で表示する)マスクデータを生成する。また、ゲーム画像生成手段は、第1オブジェクトを描画するときにはマスク処理を行わず(S38)、仮想ゲーム空間に存在する第1オブジェクト以外のオブジェクトである第2オブジェクト(OB1、OB2、・・・)を描画するときにのみマスクデータを用いたマスク処理を行う(S36)。
【0022】
請求項25に記載の発明は、三次元の仮想ゲーム空間における複数のオブジェクトを仮想ゲーム空間に設定された視点に基づいて透視投影変換を行うことにより、表示画面に表示するためのゲーム画像を描画バッファに描画する処理をゲーム装置のコンピュータ(24、26)に実行させるゲームプログラムである。このゲームプログラムは、コンピュータに、配置位置決定ステップ(S10、S14)、算出ステップ(S24)、マスクデータ生成ステップ(S26)、第1オブジェクト描画ステップ(S38)、および第2オブジェクト描画ステップ(S36)を実行させる。
配置位置決定ステップは、三次元の仮想ゲーム空間に第1オブジェクト(CH1、CH2、・・・)を配置するための第1三次元座標と第2オブジェクト(OB1、OB2、・・・)を配置するための第2三次元配置座標を決定する。ここで、算出ステップは、第1オブジェクトの三次元配置座標を視点に基づいて透視投影変換することにより、表示画面上の二次元座標を算出する(図11)。マスクデータ生成ステップは、表示画面上の二次元座標に対応する描画用バッファ領域内の位置に所定形状のマスク画像(マスク領域を示す画像)を描画した1画面分のマスクデータ(図12、図14、図19、図34、図38)を生成する。第1オブジェクト描画ステップは、第1三次元座標に配置された第1オブジェクトを透視投影変換して描画バッファに描画するとき、マスクデータを参照することなく、第1オブジェクトを描画バッファに描画する。第2オブジェクト描画ステップは、第2三次元座標に配置された第2オブジェクトを透視投影変換して描画バッファに描画するとき、マスクデータを参照することにより、マスク画像との重なっている部分における第2オブジェクトの透明度をマスク画像と重なっていない部分に比べて変化させて、第2オブジェクトを描画する(図13)。
【0023】
請求項26に記載の発明は、請求項25に記載の発明において、マスク画像は中心から周辺に向けて色濃度が薄く又は濃くなる画像である(図14、図38)。そして、透明度変化ステップは、マスク画像と第2オブジェクトとが重なる部分においてマスク画像の色濃度に応じて第2オブジェクトの透明度が変化するようにゲーム画像を描画する(図15、図16)。
【発明の効果】
【0024】
請求項1及び13に記載の発明によれば、第1オブジェクトを隠している他のオブジェクトを、オブジェクト全体を透過処理するのではなく、オブジェクトのうちのマスク領域に含まれる部分だけを透過処理することができるため、ゲームフィールドの雰囲気を損なうことなく、また、第1オブジェクトを隠している他のオブジェクトが突然消えたりするような違和感を抱かせることなく、第1オブジェクトをユーザに視認させることができる。
【0025】
請求項2及び14に記載の発明によれば、第2オブジェクトが複数存在する場合に、そのうちの特定の第2オブジェクトに対してのみマスク処理を行うことができる。
【0026】
請求項3及び15に記載の発明によれば、視点に対して予め決められた基準位置よりも近い第2オブジェクトにのみマスク処理を行うことができるので、視点から第1キャラクタよりも遙かに遠方にある第2オブジェクトまで透過処理されてしまうことを回避してより違和感の少ないゲーム画像を得ることができる。
【0027】
請求項4及び16に記載の発明によれば、視点に対して第1オブジェクトよりも近い第2オブジェクトにのみマスクデータを用いたマスク処理を行うことができるので、視点から第1キャラクタよりも遠方にある第2オブジェクトまで透過処理されてしまうことを回避してより違和感の少ないゲーム画像を得ることができる。
【0028】
請求項5及び17に記載の発明によれば、仮想ゲーム空間に設定された視体積に第1オブジェクトが複数存在する場合に、視体積に含まれる全ての第1オブジェクトをユーザに視認させることができ、かつ、これら複数の第1オブジェクトのうち視点から最も遠い第1オブジェクトよりも遠方にある第2オブジェクトまで透過処理されてしまうことを回避してより違和感の少ないゲーム画像を生成することができる。
【0029】
請求項6及び18に記載の発明によれば、第1オブジェクトの位置から視点に向かって延びるマスク空間に含まれるオブジェクトの部分だけを透過処理することができるため、マスクデータを用いたマスク処理を全ての第2オブジェクトに対して行ったとしても、第1キャラクタの手前(すなわち第1キャラクタよりも視点に近い空間)に位置する第2オブジェクトだけを透過処理した違和感の少ないゲーム画像が得られる。
【0030】
請求項7及び19に記載の発明によれば、第1オブジェクトが複数存在している場合であっても、それぞれの第1キャラクタの手前に位置する第2オブジェクトだけを透過処理した違和感の少ないゲーム画像が得られる。
【0031】
請求項8及び20に記載の発明によれば、マスクデータに応じてオブジェクトのアルファ値を変化させることによって、アルファ合成を利用して簡単にオブジェクトを非表示または半透明表示することができる。
【0032】
請求項9及び21に記載の発明によれば、ユーザによる制御対象であるプレイヤキャラクタが常に視認できるように表示されるため、ゲームプレイの操作性を向上させることができる。
【0033】
請求項10及び22に記載の発明によれば、マスク領域の境界においてオブジェクトの透過度合いが徐々に変化するため、よりゲームプレイに伴う画像変化の違和感が少ないゲーム画像を得ることができる。
【0034】
請求項11及び23に記載の発明によれば、マスクデータのサイズが抑えられるので、マスクデータ記憶手段の記憶容量を抑えることができる。
【0035】
請求項12及び24に記載の発明によれば、透視投影の結果、視点からの距離が遠くなるほど第1オブジェクトは小さく表示されるが、それに応じてマスク領域の大きさも小さくなるので、より違和感の少ないゲーム画像を得ることができる。
【0036】
請求項25に記載の発明によれば、第1オブジェクトの第1三次元座標を透視投影変換し、当該変換後の二次元座標に基づいて1画面分に相当するマスクデータを作成し、第2オブジェクトを描画するときにマスクデータを参照し、マスク画像との重なり部分に関しては第2オブジェクトの透明度を変化させている。その結果、第1オブジェクトと第2オブジェクトが重なっているか否かを判定する処理がないので、処理負担を軽減することができる。
【0037】
請求項26に記載の発明によれば、マスク画像は周囲に向けて射ろ濃度が薄く又は濃くなるので、マスク画像が第2オブジェクトと重なっている部分では透明度が徐々に変化している。その結果、第2オブジェクトの後ろの第1オブジェクトが透け具合が自然に見えるようにすることが可能になる。
【発明を実施するための最良の形態】
【0038】
(第1の実施形態)
以下、図面を参照して、本発明の一実施形態に係るゲームシステムについて説明する。
【0039】
図1は、本発明の一実施形態に係るゲームシステムの構成を示す外観図である。図1に示すように、ゲームシステム10は、モニタ12、ゲーム機本体14、光ディスク16、メモリカード18およびコントローラ20を備える。光ディスク16および外部メモリカード18は、ゲーム機本体14に着脱自在に装着される。コントローラ20は、通信ケーブルを介して、ゲーム機本体14に設けられた複数(図1では4つ)のコントローラポート用コネクタのいずれかに接続される。モニタ12は、AVケーブル等によってゲーム機本体14と接続される。なお、ゲーム機本体14とコントローラ20との通信は無線通信であってもよい。
【0040】
コントローラ20は、プレイヤがゲームに関する入力操作を行うための入力装置であり、複数の操作スイッチを有する。コントローラ20は、操作スイッチの状態を示す操作データをゲーム機本体14に出力する。プレイヤは、コントローラ20を操作することによって、ゲームに登場するプレイヤキャラクタを動作させたり移動させたりすることができる。
【0041】
光ディスク16は、ゲームプログラムやゲームデータを固定的に記憶している。プレイヤがゲームをプレイするとき、光ディスク16はゲーム機本体14に装着される。なお、ゲームプログラム等を記憶する手段として、光ディスク16の代わりに、例えばDVD−ROM、CD−ROM、MO、メモリカード、ROMカートリッジなど、任意の外部記憶媒体を用いることができる。
【0042】
ゲーム機本体14は、光ディスク16に記録されているゲームプログラムを読み出し、読み出したゲームプログラムに応じた処理を行う。
【0043】
モニタ12は、ゲーム機本体14から出力される映像信号に基づいてゲーム画像を画面に表示する。また、モニタ12にはスピーカ22が設けられており、スピーカ22は、ゲーム機本体14から出力される音声信号に基づいてゲームサウンドを出力する。
【0044】
メモリカード18は、例えばフラッシュメモリ等の書き換え可能な記憶媒体をバックアップメモリとして備えており、このバックアップメモリにはゲームのセーブデータ等が記録される。
【0045】
図2は、ゲーム機本体14の内部構成を示すブロックである。以下、図2を参照しながら、ゲーム機本体14の各部についてより詳細に説明する。
【0046】
ゲーム機本体14には、CPU24およびそれに接続されるメモリコントローラ34が設けられる。メモリコントローラ34は、GPU(グラフィックスプロセッシングユニット)26、メインメモリ28、DSP(Digital Signal Processor)30、および各種インターフェースに接続される。メモリコントローラ34は、これら各構成要素間のデータ転送を制御するものである。
【0047】
ゲーム開始の際、まず、ディスクドライブ46が、ゲーム機本体14に装着された光ディスク16を駆動する。光ディスク16に記憶されているゲームプログラムは、ディスクI/F(インターフェース)44およびメモリコントローラ34を介して、メインメモリ28に読み込まれる。このメインメモリ28にロードされたゲームプログラムをCPU24が実行することによってゲームが開始される。ゲーム開始後、プレイヤがコントローラ20を用いて入力操作を行うと、コントローラ20からゲーム機本体14に操作データが出力される。コントローラ20から出力される操作データは、コントローラI/F36およびメモリコントローラ34を介してCPU24に入力される。CPU24は、入力された操作データに基づいてゲーム処理を行う。ゲーム画像の生成は主にGPU26によって行われ、ゲームサウンドの生成には主にDSP30が用いられる。ARAM(Audio RAM)32は、オーディオ信号を記憶するために用いられる。
【0048】
GPU26は、三次元の仮想ゲーム空間に配置されたオブジェクトの座標に関する演算(例えば、オブジェクトの回転・拡大縮小・変形や、ワールド座標系からカメラ座標系またはスクリーン座標系への座標変換)を行い、さらに、スクリーン平面に投影されたオブジェクトをテクスチャデータ等に基づいて描画(オブジェクトに対応する画素の色を決定してカラーバッファに書込む)してゲーム画像を生成する。カラーバッファは、モニタ12に表示すべきゲーム画像データ(RGBデータ)を保持するために確保されたメモリ領域である。GPU26は、カラーバッファ以外にも必要に応じて、視点からカラーバッファに描画したオブジェクトまでの距離を保持しておくためのZバッファや、シャドウボリューム技法のためのステンシルバッファを利用してゲーム画像を生成する。
【0049】
図3および図4に、メインメモリ28のメモリマップを示す。特に、図3はプログラムに関するメモリマップであり、図4はデータに関するメモリマップである。
【0050】
図3において、メインメモリ28には、ゲームメインプログラム48や、オブジェクト移動制御プログラム50や、画像処理プログラム52が、光ディスク16からロードされる。
【0051】
オブジェクト移動制御プログラム50は、三次元の仮想ゲーム空間に存在するオブジェクトを所定のアルゴリズムまたはユーザの指示に従って移動させるためのプログラムである。画像処理プログラム52には、マスク生成プログラム54、投影プログラム56、描画プログラム58および表示制御プログラム60が含まれている。マスク生成プログラムは、CPU24やGPU26に、後述するマスクデータを生成するためのプログラムである。投影プログラム56は、CPU24やGPU26に、仮想ゲーム空間に存在するオブジェクトを所定のスクリーン平面に投影させるためのプログラムである。投影の手法としては、透視投影や平行投影などがある。描画プログラム58は、CPU24またはGPU26に、仮想ゲーム空間に存在するオブジェクトを描画させる(すなわちカラーバッファにオブジェクトの色を書込ませる)ためのプログラムである。表示制御プログラム60は、CPU24またはGPU26に、カラーバッファに格納された画像データに基づいて一定周期でモニタ12に映像信号を出力させるためのプログラムである。
【0052】
図4において、メインメモリ28には、操作データバッファ62として利用される領域と、カラーバッファ64として利用される領域と、キャラクタオブジェクトに関するデータを記憶するための領域と、フィールドオブジェクトに関するデータを記憶するための領域と、後述するマスクデータ86を記憶するための領域と、その他のデータを記憶するための領域を含んでいる。
【0053】
操作データバッファ62は、コントローラ20から出力される操作データを一時的に記憶するための記憶領域である。カラーバッファ64は、モニタ12に表示されるゲーム画像の色データを一時的に記憶するための記憶領域である。
【0054】
キャラクタオブジェクトとは、仮想ゲーム空間に存在するキャラクタを表すオブジェクトで、プレイヤが操作するプレイヤキャラクタや、プレイヤは操作できないが、プレイヤキャラクタの動きに応じて、コンピュータ側で動きを制御する、ノンプレイヤキャラクタとして設定される。本実施形態では、仮想ゲーム空間に複数のキャラクタオブジェクト(CH1、CH2、CH3、・・・)が存在するものとする。メインメモリ28には、キャラクタオブジェクト毎に、仮想ゲーム空間におけるキャラクタオブジェクトの位置(三次元座標)を示す位置データ66、キャラクタオブジェクトの形状を規定するポリゴンデータ68、およびキャラクタオブジェクトの表面の模様を規定するテクスチャデータ70が保持される。
【0055】
フィールドオブジェクトとは、仮想ゲーム空間のフィールドを構成するオブジェクトであって、具体的には、仮想ゲーム空間に存在する建物、壁、地面、道などである。本実施形態では、仮想ゲーム空間に複数のフィールドオブジェクト(OB1、OB2、OB3、・・・)が存在するものとする。メインメモリ28には、フィールドオブジェクト毎に、仮想ゲーム空間におけるフィールドオブジェクトの位置(三次元座標)を示す位置データ78、フィールドオブジェクトの形状を規定するポリゴンデータ80、フィールドオブジェクトの表面の模様を規定するテクスチャデータ82、および後述する透過フラグ84が保持される。
【0056】
図5および図6は、本発明の第1の実施形態におけるゲーム画面例である。図5では、仮想ゲーム空間に配置されたキャラクタオブジェクトCH1とフィールドオブジェクトOB1〜OB3が表示されている。キャラクタオブジェクトCH1が図5の位置から矢印の方向へ移動すると、図6のように、フィールドオブジェクトOB1のうち、キャラクタオブジェクトCH1を中心とした所定の領域だけが透明になり、その結果、キャラクタオブジェクトCH1がフィールドオブジェクトOB1の陰に移動したときでもユーザはキャラクタオブジェクトCH1を視認することができる。
【0057】
以下、図3に示した各種プログラムに基づいて実行されるCPU24またはGPU26の処理の流れを、図7〜図9のフローチャートを参照して説明する。
【0058】
図7において、メイン処理が開始されると、まずステップS10で、初期設定が行われる。ここでは、例えば視点やオブジェクトや光源が仮想ゲーム空間内の初期位置に配置される。ステップS12では、コントローラ20から出力される操作データが操作データバッファ62に格納される。ステップS14では、図3のオブジェクト移動制御プログラム50に基づいて、仮想ゲーム空間内の各オブジェクトの位置が更新される。特にキャラクタオブジェクトCH1が、プレイヤのコントローラ20の操作に基づいて動作するプレイヤキャラクタとして設定されていれば、その位置は、ステップS12で操作データバッファ62に格納された操作データに基づいて更新される。勿論キャラクタオブジェクトCH1は、例えばプレイヤキャラクタを攻撃するようなノンプレイヤキャラクタとして設定されても良い。このとき、プレイヤキャラクタの位置に応じて、あらかじめ記憶されたプログラムに基づいて、キャラクタオブジェクトCH1の位置が更新される。
【0059】
ステップS16では、図3のマスク生成プログラムに基づいてマスク生成処理が行われる。このマスク生成処理の詳細については後述する。ステップS18では、図3の描画プログラム58に基づいて描画処理が行われ、その結果、モニタ12に表示すべきゲーム画像がカラーバッファ64に格納される。この描画処理の詳細についても後述する。ステップS20では、図3の表示制御プログラム60に基づいて、カラーバッファ64に格納されているゲーム画像に基づく映像信号がモニタ12に出力され、その結果、モニタ12の画面にゲーム画像として画像が表示される。ステップS22では、ゲーム終了かどうかが判定され、ゲームが続行している場合にはステップS12に戻る。ゲームが続行する間は、ステップS12〜ステップS18の処理が例えば30分の1秒の周期で繰り返される。
【0060】
次に、マスク生成処理の詳細を図8のフローチャートを参照して説明する。ここでは、仮想ゲーム空間に図10に示すように視点および各オブジェクト(キャラクタオブジェクトCH1およびフィールドオブジェクトOB1〜OB3)が配置されているものとして説明する。図10は、視線方向に対して垂直方向からゲーム空間を見た様子を示している。図10において、ニアークリップ面とファークリップ面との間の空間(視体積)に含まれるオブジェクトが表示対象となる。なお、図10の例では透視投影によってオブジェクトを描画する例を示しているが、本発明はこれに限らず、平行投影によってオブジェクトを描画してもよい。なお、図6に示すように、フィールドオブジェクトOB1の透過フラグ84は1であり、フィールドオブジェクトOB2とフィールドオブジェクトOB3の透過フラグ84は0に設定されているものとする。
【0061】
マスク生成処理が開始されると、まずステップS24で、図3の投影プログラム56に基づいて、各キャラクタオブジェクト(図5の例ではキャラクタオブジェクトCH1)が仮想ゲーム空間に設定されたスクリーン平面に投影される。具体的には、三次元の仮想ゲーム空間における各キャラクタオブジェクトの配置座標(三次元座標)を視点に基づいて透視投影変換することにより、各キャラクタオブジェクトに対応した、モニタ12の表示画面上の座標(二次元座標)を算出する。なお、図10の例ではニアークリップ面をスクリーン平面として設定しているが、本発明はこれに限らない。この投影処理は、典型的には、各キャラクタオブジェクトを構成するポリゴンの頂点座標を、所定の変換行列を用いて座標変換することによって行われる。図11に、キャラクタオブジェクトCH1をスクリーン平面に投影した結果を示す。なお、ここではキャラクタオブジェクトCH1を構成するポリゴンをスクリーン平面に投影する例を示したが、本発明はこれに限らず、キャラクタオブジェクトCH1の位置を示す点だけをスクリーン平面に投影しても構わない。
【0062】
ステップS26では、スクリーン平面に投影された各キャラクタオブジェクトの位置に基づいて、図12のようなモノクロの画像データを生成する。具体的には、スクリーン平面に投影された各キャラクタオブジェクトの位置を中心とした図12のような円形の領域(マスク領域)を示す画像を描画する。このマスク領域の描画には、カラーバッファ64を一時的に利用してもよい。
【0063】
ステップS28では、ステップS26で得られた画像データを、マスクデータとしてメインメモリ28に格納する。このとき、マスクデータとして格納される画像データの解像度は、必ずしもゲーム画像の解像度と同一である必要はなく、ゲーム画像よりも解像度を下げてからメインメモリ28に格納してもよい。これにより、マスクデータの格納のために必要となるメインメモリ28の記憶領域を節約することができる。なお、こうして解像度を下げたマスクデータを後述の描画処理において利用する場合には、メインメモリ28に格納されているマスクデータの解像度をゲーム画像の解像度に変換すればよい。
【0064】
次に、描画処理の詳細を図9のフローチャートを参照して説明する。
【0065】
描画処理が開始すると、まずステップS30で、カラーバッファに描画すべき描画対象オブジェクトが決定される。オブジェクトの描画の順序は任意であるが、必要に応じて、オブジェクトの描画の順序を予め決定し、決定した順序に従ってオブジェクトを描画するようにしてもよい。例えば、不透明のオブジェクトを描画し、その後で半透明のオブジェクトを描画するようにすれば、半透明処理(アルファ合成)が比較的容易となる。また例えば、視点から遠いオブジェクトをまず描画し、その後で視点に近いオブジェクトを描画するようにすれば、Zバッファを用いたZテストを行うこと無しに隠面消去が可能となる。
【0066】
ステップS32では、ステップS30で決定された描画対象オブジェクトがキャラクタオブジェクトかどうか判断される。キャラクタオブジェクトである場合はステップS38に進み、キャラクタオブジェクトでない場合(すなわちフィールドオブジェクトである場合)はステップS34に進む。
【0067】
ステップS34では、メインメモリ28を参照して、描画対象となっているフィールドオブジェクトの透過フラグ84が0かどうかが判断される。透過フラグ84が0である場合はステップS38に進み、透過フラグ84が0でない場合(すなわち1である場合)はステップS36に進む。
【0068】
ステップS36では、描画対象オブジェクト(ここでは透過フラグが1であるフィールドオブジェクト)が、前述のマスク生成処理によってメインメモリ28に格納されたマスクデータ86を用いて描画される。また、1画面分のマスクデータ86に含まれるマスク画像(マスク領域の画像)の各ピクセルの値に応じて、描画対象オブジェクトの各ピクセルの透明度がきまる。具体的には、三次元の仮想ゲーム空間に配置された描画対象オブジェクトを透視投影変換してカラーバッファ64に描画するとき、メインメモリ28に格納されたマスクデータ86を参照することにより、マスク領域と重なっている部分における描画対象オブジェクトの透過率を100%(すなわちマスク領域に当たる部分がカラーバッファ64に描画されない)に変化させ、それ以外の部分の透過率は変化させずに(すなわち通常表示)、描画対象オブジェクトが描画される。例えば、図12のマスクデータを用いてフィールドオブジェクトOB1を描画した場合、描画結果は図13のようになる。
【0069】
ステップS38では、描画対象オブジェクト(ここではキャラクタオブジェクト、または透過フラグが0であるフィールドオブジェクト)が普通に、すなわち前述のマスク生成処理によってメインメモリ28に格納されたマスクデータ86を参照することなしに、描画される。
【0070】
ステップS40では、描画が完了したかどうか(すなわち視体積に含まれる全てのオブジェクトの描画が完了したかどうか)が判断される。描画が完了していない場合はステップS30に戻り、次の描画対象オブジェクトを決定して描画する。描画が完了した場合は図7のステップS20に進み、その結果、例えば図6のようなゲーム画像がモニタ12に表示されることとなる。
【0071】
なお、本実施形態では描画対象オブジェクトのうち、マスク領域に当たる部分を描画しないとしたが、本発明はこれに限らない。例えば、描画対象オブジェクトのうち、マスク領域に当たる部分を半透明表示するようにしてもよい。この場合、描画対象オブジェクトのうち、マスク領域に当たる部分のアルファ値(透明度を決定する値)を適当な値に変更し、変更後のアルファ値に基づくアルファ合成を行えばよい。
【0072】
なお、本実施形態ではマスクデータとして図12に示すような2値の画像データを用いるとしたが、本発明はこれに限らず、より階調数の多い画像データを用いてもよい。図14は、透過率に応じて4つの値を有する画像データをマスクデータとして利用する場合の例である。特に、図14のマスクデータは、マスク領域の境界においてオブジェクトの透明度を徐々に変化させるようなマスクデータである。図15は、このマスクデータを用いてフィールドオブジェクトOB1を描画した結果を示している。フィールドオブジェクトOB1は、マスクデータの値に応じて透過率(アルファ値)が変更され、この変更後のアルファ値に基づくアルファ合成により、図16のようなゲーム画像が生成される。図16の例では、フィールドオブジェクトOB1のうち、マスク領域の境界部分に当たる部分の透過率が徐々に変化しているため、図6の例に比べて画像表現として豪華さや美しさを加えることができる。
【0073】
なお、本実施形態ではマスク領域が円形であるとしたが、本発明はこれに限らず、マスク領域は任意の形状(例えば楕円、矩形、星形)であってもよい。
【0074】
なお、マスク領域の大きさは、固定であっても良いし、キャラクタオブジェクトの大きさや状態に応じて変化してもよい。また、視点からキャラクタオブジェクトまでの距離に応じてマスク領域の大きさを変化させても良い。特に、透視投影によってゲーム画像が生成される場合には、例えば、図17Aの矢印の方向にキャラクタオブジェクトが移動したときに、図17Bおよび図17Cに示すようにキャラクタオブジェクトが視点から遠ざかるほどマスク領域の大きさを小さくするのが好ましい。これにより、キャラクタオブジェクトを常に表示しつつもさらに、画像表現の凝ったゲーム画像が得られる。
【0075】
なお、図11の例ではスクリーン平面に投影されたキャラクタオブジェクトが1つしか存在しないため、図12ではマスク領域が1つしか存在しないが、図18のようにキャラクタオブジェクトが複数存在する場合には、図19のように、マスクデータにはこれら複数のキャラクタオブジェクト(ここではキャラクタオブジェクトCH1、CH2)にそれぞれ対応する複数のマスク領域が設けられる。透過フラグが1であるフィールドオブジェクト(ここではフィールドオブジェクトOB1)を図19のマスクデータを用いて描画することで、図20のようなゲーム画像が得られる。
【0076】
なお、本実施形態では図10のフィールドオブジェクトOB1の透過フラグ84は1に、フィールドオブジェクトOB2とフィールドオブジェクトOB3の透過フラグ84は0に設定されているものとしたが、フィールドオブジェクトの透過フラグの値は、フィールドオブジェクトの位置や視点の設定を考慮して予め適切に設定される。例えば、地面を表すフィールドオブジェクトについては、通常はキャラクタオブジェクトが地面の陰に隠れてしまうことは無いため、透過フラグを0に設定しておく。一方、船の帆など、キャラクタオブジェクトよりも高い位置にあるものを表すフィールドオブジェクトについては、視点がキャラクタオブジェクトの上方に設定されている場合にキャラクタオブジェクトを隠してしまいがちとなるので、透過フラグを1に設定しておく。また、キャラクタオブジェクトよりも小さいフィールドオブジェクトや、半透明のフィールドオブジェクトについては、キャラクタオブジェクトの表示を大きくは妨げないため、透過フラグを0に設定しておいても構わない。
【0077】
なお、違和感のあるゲーム画像になってしまうことを許容するのであれば、透過フラグを設定することなしに、全てのフィールドオブジェクトに対してマスクデータを用いたマスク処理を適用するようにしても構わない。これにより、少なくともキャラクタオブジェクトが必ず表示されるという効果が得られる。
【0078】
以上のように、第1の実施形態によれば、キャラクタオブジェクトの位置に基づいてマスクデータを生成し、このマスクデータを用いてフィールドオブジェクトにマスク処理を施すため、キャラクタオブジェクトを常に表示することができる。
【0079】
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。
【0080】
まず、三次元の仮想ゲーム空間に複数のオブジェクト(キャラクタオブジェクトCH1〜CH3とフィールドオブジェクトOB1、OB2)が図21のように配置されている場合を考える。なお、フィールドオブジェクトOB1は透過フラグが1に設定されているものとし、フィールドオブジェクトOB2は透過フラグが0に設定されているものとする。ここで、図21の視点Aから見たシーンを第1の実施形態の手法を用いて描画した場合、図22のようなゲーム画像が得られる。図22のゲーム画像では、各キャラクタオブジェクトCH1〜CH3が適切に表示されている。しかしながら、図21の視点Bから見たシーンを第1の実施形態の手法を用いて描画した場合には、図23のように、キャラクタオブジェクトCH1、CH2が表示されない。また、キャラクタオブジェクトCH1に対応するマスク領域の影響を受けてフィールドオブジェクトOB1の一部が欠けてしまっているので、違和感のあるゲーム画像となっている。第2の実施形態では、このような不具合を解消することができる。
【0081】
第2の実施形態では、視点に対して予め決められた基準位置よりも近いフィールドオブジェクトにのみマスクデータを用いたマスク処理が適用される。基準位置は、仮想ゲーム空間における絶対位置により規定されてもよいし、視点を基準とした相対位置により規定されてもよいし、特定のキャラクタオブジェクトの位置として規定されてもよい。
【0082】
例えば、仮想ゲーム空間に複数のオブジェクト(キャラクタオブジェクトCH1〜CH3とフィールドオブジェクトOB1、OB2)が図24のように配置され、基準位置が図のような位置に設定されている場合について説明する。
【0083】
図24の視点Aから見たシーンを描画する場合、キャラクタオブジェクトCH1〜CH3の位置に基づいてマスクデータが生成され、基準位置よりも視点(ここでは視点A)に近いフィールドオブジェクトOB1についてはマスクデータを用いたマスク処理が施され、基準位置よりも視点から遠いフィールドオブジェクトOB2については普通に描画される。その結果、図25のようなゲーム画像が得られる。
【0084】
一方、図24の視点Bから見たシーンを描画する場合、キャラクタオブジェクトCH1〜CH3の位置に基づいてマスクデータが生成され、基準位置よりも視点(ここでは視点B)に近いフィールドオブジェクトOB2についてはマスクデータを用いたマスク処理が施され、基準位置よりも視点から遠いフィールドオブジェクトOB1については普通に描画される。その結果、図26のようなゲーム画像が得られる。
【0085】
ここで、図25のゲーム画像においても図26のゲーム画像においても、全てのキャラクタオブジェクトCH1〜CH3が表示されており、また、キャラクタオブジェクトよりも視点から遠い位置にあるフィールドオブジェクトが不自然に欠けてしまうこともない。
【0086】
以下、第2の実施形態の詳細な動作を、第1の実施形態との相違点を中心に説明する。
【0087】
第2の実施形態では、図27のように、メインメモリ28に前述の基準位置88が記憶される。ここでは、基準位置が視点からの距離により規定されているものとする。
【0088】
以下、第2の実施形態の描画処理について図28のフローチャートを参照して説明する。なお、図28のフローチャートは、描画処理の一部のみを示しており、残りのステップについては図9のフローチャートを援用する。また、図28のフローチャートにおいて、図9のフローチャートと同一のステップについては同一の参照符号が付されている。
【0089】
図9のステップS30で描画対象オブジェクトが決定されると、図28のステップS32で、描画対象オブジェクトがキャラクタオブジェクトかどうか判断される。キャラクタオブジェクトである場合はステップS38に進み、キャラクタオブジェクトでない場合(すなわちフィールドオブジェクトである場合)はステップS34に進む。
【0090】
ステップS42では、メインメモリ28を参照して、描画対象となっているフィールドオブジェクトが、基準位置88よりも視点に近いかどうかが判断される。透過フラグ84が0である場合はステップS38に進み、透過フラグ84が0でない場合(すなわち1である場合)はステップS36に進む。
【0091】
ステップS36では、描画対象オブジェクト(ここでは基準位置88よりも視点に近いフィールドオブジェクト)が、マスク生成処理によってメインメモリ28に格納されたマスクデータ86を用いて描画される。
【0092】
ステップS38では、描画対象オブジェクト(ここではキャラクタオブジェクト、または基準位置88よりも視点から遠いフィールドオブジェクト)が普通に描画される。
【0093】
上記のような描画処理の結果、図25や図26のようなゲーム画像が生成される。
【0094】
なお、本実施形態では基準位置を視点からの距離で規定するとしたが、本発明はこれに限らない。例えば、前述したように、特定のキャラクタオブジェクトの位置を基準位置として設定してもよい。この場合、その特定のキャラクタオブジェクトの移動に応じて、メインメモリ28に記憶される基準位置88を更新する必要がある。
【0095】
なお、図29のように、仮想ゲーム空間に複数のキャラクタオブジェクト(ここではキャラクタオブジェクトCH1〜CH4)が存在する場合には、視体積に含まれるキャラクタオブジェクト(ここではキャラクタオブジェクトCH1〜CH3)の中で最も視点から遠いキャラクタオブジェクト(ここではキャラクタオブジェクトCH3)の位置を基準位置として設定するのが好ましい。これにより、視体積に含まれる全てのキャラクタオブジェクトが表示されることになり、しかも違和感の少ない(図29の例ではフィールドオブジェクトOB3の一部が欠けてしまうことのない)ゲーム画像が得られることになる。これを実現するには、図7のステップS18の描画処理よりも前に、図30のステップS44〜ステップS46を実行すればよい。具体的には、ステップS44では、視体積に含まれるキャラクタオブジェクトのうち、視点から最も遠いキャラクタオブジェクトの位置が取得される。ステップS46では、ステップS44で取得されたキャラクタオブジェクトの位置(仮想空間における絶対位置であってもよいし、視点を基準とした相対位置であってもよい)をメインメモリ28に基準位置88として格納する。
【0096】
なお、第1の実施形態の手法と第2の実施形態の手法とを組み合わせることも可能である。すなわち、基準位置よりも視点に近く、かつ透過フラグが1であるようなフィールドオブジェクトにのみ、マスクデータを用いたマスク処理を適用し、その他のフィールドオブジェクトに対してはマスク処理を適用しないようにしてもよい。
【0097】
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。
【0098】
まず、三次元の仮想ゲーム空間に複数のオブジェクト(キャラクタオブジェクトCH1〜CH3とフィールドオブジェクトOB1、OB2)が図31のように配置されている場合を考える。この場合、第1の実施形態の手法と第2の実施形態の手法のいずれの手法を用いたとしても、キャラクタオブジェクトCH3が表示され、かつフィールドオブジェクトOB2のうち、キャラクタオブジェクトCH1、CH2の背後に当たる部分が不必要に欠けてしまうことの無いようなゲーム画像を得ることは不可能である。第3の実施形態では、このような不具合を解決することができる。
【0099】
第3の実施形態では、図12や図14や図19のようなマスクデータに対してさらに深さ情報を付加したようなマスクデータが生成され、こうして生成したマスクデータを用いてマスク処理が行われる。
【0100】
図32は、第3の実施形態の原理を示す図である。図12や図14や図19のようなマスクデータの各マスク領域に対して、キャラクタオブジェクトの位置に応じた深さ情報を付加することにより、図32のように、各キャラクタオブジェクト(ここではキャラクタオブジェクトCH1〜CH3)の位置から視点に向かって延びるマスク空間を定義することができる。図33のように、マスク空間は、仮想ゲーム空間におけるキャラクタオブジェクトの位置から視点に向かって延びる空間であって、その形状は、透視投影によってオブジェクトを描画する場合には基本的には円錐形となり、平行投影によってオブジェクトを描画する場合には基本的には円柱形となる。描画処理では、このマスクデータに基づいて、図33のようにマスク空間の内部についてはフィールドオブジェクトが透明(もしくは半透明)表示され、それ以外の空間についてはフィールドオブジェクトが普通に表示される。
【0101】
図34は、第3の実施形態で生成されるマスクデータの一例を示している。第3の実施形態におけるマスク生成処理では、第1の実施形態と同様にスクリーン平面に投影された各キャラクタオブジェクトの位置に基づいてマスク領域が描画されるが、その色の濃さは、マスク空間の深さ(すなわち視点から対応するキャラクタオブジェクトまでの距離)に応じて決定される。図34の例では、マスク空間の深さが大きいほどマスク領域の色の濃さが濃くなっている。マスク領域の色の濃さのレベルの段階数は任意である。なお、図12や図14のマスクデータにおけるマスク領域の色の濃さが透過率を表しているのに対して、図34のマスクデータにおけるマスク領域の色の濃さはマスク空間の深さを表している。また、図34のマスクデータにおけるマスク領域の大きさも同時に変化させることによって、図17に準じた画像の表現を行わせることができる。すなわち、マスク空間の深さが大きくなるほど、マスク領域を小さく描画する。こうすることで、より高度な画像表現が可能となる。なお、特にこれらを区別する必要がある場合には、図12や図14のような透過率を規定するマスクデータをカラーマスクデータと称し、図34のようなマスク空間の深さを規定するマスクデータをデプスマスクデータと称するものとする。
【0102】
描画処理において、各フィールドオブジェクトOB1、OB2が、図34のようなマスクデータを用いて描画される。具体的には、各フィールドオブジェクトOB1、OB2のうち、いずれかのマスク空間と交わる部分については透過率が100%(すなわちマスク空間と交わる部分がカラーバッファ64に描画されない)となり、それ以外の部分の透過率が0%(すなわち通常表示)となるように、各フィールドオブジェクトOB1、OB2が描画される。その結果、図35のようなゲーム画像が得られる。図35のゲーム画像では、キャラクタオブジェクトCH3が表示され、かつフィールドオブジェクトOB1、OB2のうち、キャラクタオブジェクトCH1、CH2の背後に当たる部分が不必要に欠けていない。
【0103】
以下、第3の実施形態におけるマスク生成処理の詳細を図36のフローチャートを参照して説明する。
【0104】
ステップS24では、第1および第2の実施形態と同様に、各キャラクタオブジェクトがスクリーン平面に投影される。ステップS26では、スクリーン平面における各キャラクタオブジェクトの位置に基づいて、各マスク領域の位置が決定される。ステップS28では、視点から対応する各キャラクタオブジェクトまでの距離に応じて、マスクデータにおける各マスク領域の色の濃さが決定される。ステップS30では、ステップS26とステップS28の決定結果に基づいて、マスク領域を描画する。ステップS32では、ステップS30で得られた画像データを、マスクデータとしてメインメモリ28に格納する。
【0105】
次に、第3の実施形態における描画処理の詳細を図37のフローチャートを参照して説明する。なお、図37において、図9と異なる点は、ステップS34が無い点と、ステップS36がステップS56に変更された点のみである。よって、ここではステップS56以外のステップについては説明を省略する。
【0106】
ステップS32では描画対象オブジェクトがキャラクタオブジェクトかどうか判断され、キャラクタオブジェクトでない場合(すなわちフィールドオブジェクトである場合)はステップS56に進む。ステップS56では、描画対象オブジェクト(ここではフィールドオブジェクト)が、マスク生成処理によってメインメモリ28に格納されたマスクデータ86を用いて描画される。具体的には、描画対象オブジェクトのうち、この描画対象オブジェクトをスクリーン平面に投影したときにマスク領域に当たる部分であってなおかつマスクデータが示すマスク空間の深さよりも視点からの距離が小さい部分については透過率が100%(すなわちカラーバッファ64に描画されない)となり、それ以外の部分については透過率が0%(すなわち通常表示)となるように、描画対象オブジェクトが描画される。
【0107】
なお、本実施形態ではデプスマスクデータだけを用いてフィールドオブジェクトを描画するとしたが、デプスマスクデータに加えてカラーマスクデータも利用することにより、図16のように、フィールドオブジェクトのうち、マスク領域の境界に当たる部分の透明度を徐々に変化させることも可能である。具体的には、マスク生成処理において、図34のデプスマスクデータに加えて、例えば図38のようなカラーマスクデータを生成し、これら2つのマスクデータをメインメモリ28に格納する。そして描画処理において、デプスマスクデータに基づいて、描画対象オブジェクトのうちのマスク空間に含まれる部分とその他の部分とを区別し、マスク空間に含まれる部分については、カラーマスクデータに従ってその部分の透過率(アルファ値)を変更するようにすればよい。
【0108】
なお、本実施形態では図34のように、デプスマスクデータにおいて、各マスク領域の色の濃さを均一としたが、本発明はこれに限らない。例えば、仮想ゲーム空間に、図39のようにキャラクタオブジェクトCH1、CH2とフィールドオブジェクトOB1、OB2が配置されている場合に、図40のようなデプスマスクデータを生成することが考えられる。図40では、それぞれの中心から離れるほど色が薄くなるように各マスク領域が描画されている。このようなデプスマスクデータを用いて図39のフィールドオブジェクトOB1、OB2を描画すると、図41のようなゲーム画像が得られる。図35のゲーム画像からは、ユーザは、キャラクタオブジェクトCH3がフィールドオブジェクトOB2の手前に位置するのか奥に位置するのかを判断することはできないが、図41のゲーム画像によれば、キャラクタオブジェクトCH2がフィールドオブジェクトOB2の奥に位置していることを、ユーザは明確に把握することができる。
【図面の簡単な説明】
【0109】
【図1】本発明の一実施形態に係るゲームシステムの外観図
【図2】ゲーム機本体の内部構成図
【図3】メインメモリ28のメモリマップの一部
【図4】メインメモリ28のメモリマップの一部
【図5】第1の実施形態に係るゲーム画像例
【図6】第1の実施形態に係るゲーム画像例
【図7】メイン処理の流れを示すフローチャート
【図8】マスク生成処理の流れを示すフローチャート
【図9】描画処理の流れを示すフローチャート
【図10】仮想ゲーム空間におけるオブジェクトの配置例
【図11】マスクデータ生成処理においてスクリーン平面に投影されたキャラクタオブジェクトを示す図
【図12】マスクデータ生成処理において生成されるマスクデータの例
【図13】マスクデータを用いてフィールドオブジェクトを描画した結果を示す図
【図14】マスクデータ生成処理において生成されるマスクデータの例
【図15】マスクデータを用いてフィールドオブジェクトを描画した結果を示す図
【図16】第1の実施形態に係るゲーム画像例
【図17A】第1の実施形態に係るゲーム画像例
【図17B】第1の実施形態に係るゲーム画像例
【図17C】第1の実施形態に係るゲーム画像例
【図18】第1の実施形態に係るゲーム画像例
【図19】マスクデータ生成処理において生成されるマスクデータの例
【図20】複数のキャラクタオブジェクトが表示される場合のゲーム画像例
【図21】仮想ゲーム空間におけるオブジェクトの配置例
【図22】ゲーム画像例
【図23】ゲーム画像例
【図24】仮想ゲーム空間におけるオブジェクトの配置例
【図25】第2の実施形態に係るゲーム画像例
【図26】第2の実施形態に係るゲーム画像例
【図27】第2の実施形態に係るメインメモリ28のメモリマップの一部
【図28】第2の実施形態に係る描画処理の流れを示すフローチャート
【図29】基準位置の設定例を示す図
【図30】第2の実施形態の変形例に係るメイン処理の流れを示すフローチャート
【図31】仮想ゲーム空間におけるオブジェクトの配置例
【図32】第3の実施形態の原理を示す図
【図33】マスク空間を説明するための図
【図34】第3の実施形態において生成されるデプスマスクデータの例
【図35】第3の実施形態に係るゲーム画像例
【図36】第3の実施形態に係るマスク生成処理の流れを示すフローチャート
【図37】第3の実施形態に係る描画処理の流れを示すフローチャート
【図38】第3の実施形態において生成されるカラーマスクデータの例
【図39】仮想ゲーム空間におけるオブジェクトの配置例
【図40】第3の実施形態において生成されるデプスマスクデータの例
【図41】第1の実施形態に係るゲーム画像例
【図42】従来技術に係るゲーム画像例
【図43】従来技術に係るゲーム画像例
【符号の説明】
【0110】
10 ゲームシステム
12 モニタ
14 ゲーム機本体
16 光ディスク
18 メモリカード
20 コントローラ
22 スピーカ
24 CPU
26 GPU
28 メインメモリ
30 DSP
32 ARAM
34 メモリコントローラ
36 コントローラI/F
38 ビデオI/F
40 外部メモリI/F
42 オーディオI/F
44 ディスクI/F
46 ディスクドライブ

【特許請求の範囲】
【請求項1】
ユーザによって操作される操作手段、
三次元の仮想ゲーム空間に存在する1以上の第1オブジェクトを含む複数のオブジェクトのそれぞれの位置を記憶するオブジェクト記憶手段、
仮想ゲーム空間における第1オブジェクトの位置に応じたマスクデータを生成するマスクデータ生成手段、
前記マスクデータ生成手段が生成したマスクデータを記憶するマスクデータ記憶手段、
仮想ゲーム空間に存在するオブジェクトを仮想ゲーム空間に設定された視点に基づくスクリーン平面に投影する投影手段、
前記投影手段による投影結果に基づいてオブジェクトを描画してゲーム画像を生成するゲーム画像生成手段、および
前記ゲーム画像生成手段によって生成されたゲーム画像を表示装置に表示させる表示制御手段を備えたゲーム装置であって、
前記マスクデータ生成手段は、表示装置の画面における第1オブジェクトの表示位置を含む所定のマスク領域についてはオブジェクトを透過表示し、その他の領域についてはオブジェクトを通常表示するマスクデータを生成し、
前記ゲーム画像生成手段は、第1オブジェクトを描画するときにはマスク処理を行わず、仮想ゲーム空間に存在する第1オブジェクト以外のオブジェクトである第2オブジェクトを描画するときにのみ前記マスクデータを用いたマスク処理を行うことを特徴とする、ゲーム装置。
【請求項2】
前記ゲーム装置は、各第2オブジェクトについて前記マスクデータを用いたマスク処理を行うか否かを示す透過対象識別情報を記憶する透過対象識別情報記憶手段をさらに備え、
前記ゲーム画像生成手段は、前記透過対象識別情報記憶手段に記憶されている透過対象識別情報に従って、特定の第2オブジェクトにのみ前記マスクデータを用いたマスク処理を行うことを特徴とする、請求項1に記載のゲーム装置。
【請求項3】
前記ゲーム画像生成手段は、仮想ゲーム空間に設定された視点に対して予め決められた基準位置よりも近い第2オブジェクトにのみ前記マスクデータを用いたマスク処理を行うことを特徴とする、請求項1に記載のゲーム装置。
【請求項4】
前記ゲーム画像生成手段は、仮想ゲーム空間に設定された視点に対して第1オブジェクトよりも近い第2オブジェクトにのみ前記マスクデータを用いたマスク処理を行うことを特徴とする、請求項3に記載のゲーム装置。
【請求項5】
前記ゲーム装置は、仮想ゲーム空間に設定された視体積に第1オブジェクトが複数存在するとき、これら複数の第1オブジェクトのうち、仮想ゲーム空間に設定された視点から最も遠い第1オブジェクトの位置を基準位置として決定する基準位置決定手段をさらに備え、
前記ゲーム画像生成手段は、仮想ゲーム空間に設定された視点に対して前記基準位置決定手段によって決定された基準位置よりも近い第2オブジェクトにのみ前記マスクデータを用いたマスク処理を行うことを特徴とする、請求項3に記載のゲーム装置。
【請求項6】
前記マスクデータ生成手段は、仮想ゲーム空間における第1オブジェクトの位置から仮想ゲーム空間に設定された視点に向かって延びる所定のマスク空間についてはオブジェクトを透過表示し、その他の空間についてはオブジェクトを通常表示するマスクデータを生成することを特徴とする、請求項1に記載のゲーム装置。
【請求項7】
前記マスクデータ生成手段は、仮想ゲーム空間に設定された視体積に第1オブジェクトが複数存在するとき、各第1オブジェクトの位置に応じた長さを有する複数の前記マスク空間を規定したマスクデータを生成することを特徴とする、請求項6に記載のゲーム装置。
【請求項8】
前記ゲーム画像生成手段は、前記マスクデータに応じてオブジェクトの各点のアルファ値を変化させ、当該変化後のアルファ値に基づくアルファ合成によってゲーム画像の各画素の色を決定することを特徴とする、請求項1に記載のゲーム装置。
【請求項9】
前記第1オブジェクトは、ユーザが前記操作手段を用いて制御するプレイヤキャラクタであることを特徴とする、請求項1に記載のゲーム装置。
【請求項10】
前記マスクデータ生成手段は、表示装置の画面における第1オブジェクトの表示位置を含む所定のマスク領域についてはオブジェクトを透過表示し、その他の領域についてはオブジェクトを通常表示し、前記マスク領域の境界においてオブジェクトの透明度を徐々に変化させるマスクデータを生成することを特徴とする、請求項1に記載のゲーム装置。
【請求項11】
前記マスクデータ生成手段は、前記ゲーム画像生成手段によって生成されるゲーム画像よりも解像度の低いマスクデータを作成し、
前記ゲーム画像生成手段は、前記マスクデータを拡大して利用することを特徴とする、請求項1に記載のゲーム装置。
【請求項12】
前記投影手段は、仮想ゲーム空間に存在するオブジェクトを仮想ゲーム空間に設定された視点に基づくスクリーン平面に透視投影するものであり、
前記マスクデータ生成手段は、仮想ゲーム空間に設定された視点から第1オブジェクトまでの距離に応じて前記マスク領域の大きさを変化させることを特徴とする、請求項1に記載のゲーム装置。
【請求項13】
ユーザによって操作される操作手段を備えたゲーム装置のコンピュータを、
三次元の仮想ゲーム空間に存在する1以上の第1オブジェクトを含む複数のオブジェクトのそれぞれの位置を記憶するオブジェクト記憶手段、
仮想ゲーム空間における第1オブジェクトの位置に応じたマスクデータを生成するマスクデータ生成手段、
前記マスクデータ生成手段が生成したマスクデータを記憶するマスクデータ記憶手段、
仮想ゲーム空間に存在するオブジェクトを仮想ゲーム空間に設定された視点に基づくスクリーン平面に投影する投影手段、
前記投影手段による投影結果に基づいてオブジェクトを描画してゲーム画像を生成するゲーム画像生成手段、および
前記ゲーム画像生成手段によって生成されたゲーム画像を表示装置に表示させる表示制御手段として機能させるための画像処理プログラムであって、
前記マスクデータ生成手段は、表示装置の画面における第1オブジェクトの表示位置を含む所定のマスク領域についてはオブジェクトを透過表示し、その他の領域についてはオブジェクトを通常表示するマスクデータを生成し、
前記ゲーム画像生成手段は、第1オブジェクトを描画するときにはマスク処理を行わず、仮想ゲーム空間に存在する第1オブジェクト以外のオブジェクトである第2オブジェクトを描画するときにのみ前記マスクデータを用いたマスク処理を行うことを特徴とする、画像処理プログラム。
【請求項14】
前記画像処理プログラムは、前記コンピュータを、各第2オブジェクトについて前記マスクデータを用いたマスク処理を行うか否かを示す透過対象識別情報を記憶する透過対象識別情報記憶手段としてさらに機能させるものであり、
前記ゲーム画像生成手段は、前記透過対象識別情報記憶手段に記憶されている透過対象識別情報に従って、特定の第2オブジェクトにのみ前記マスクデータを用いたマスク処理を行うことを特徴とする、請求項13に記載の画像処理プログラム。
【請求項15】
前記ゲーム画像生成手段は、仮想ゲーム空間に設定された視点に対して予め決められた基準位置よりも近い第2オブジェクトにのみ前記マスクデータを用いたマスク処理を行うことを特徴とする、請求項13に記載の画像処理プログラム。
【請求項16】
前記ゲーム画像生成手段は、仮想ゲーム空間に設定された視点に対して第1オブジェクトよりも近い第2オブジェクトにのみ前記マスクデータを用いたマスク処理を行うことを特徴とする、請求項15に記載の画像処理プログラム。
【請求項17】
前記画像処理プログラムは、前記コンピュータを、仮想ゲーム空間に設定された視体積に第1オブジェクトが複数存在する場合に、これら複数の第1オブジェクトのうち、仮想ゲーム空間に設定された視点から最も遠い第1オブジェクトの位置を基準位置として決定する基準位置決定手段としてさらに機能させるものであり、
前記ゲーム画像生成手段は、仮想ゲーム空間に設定された視点に対して前記基準位置決定手段によって決定された基準位置よりも近い第2オブジェクトにのみ前記マスクデータを用いたマスク処理を行うことを特徴とする、請求項15に記載の画像処理プログラム。
【請求項18】
前記マスクデータ生成手段は、仮想ゲーム空間における第1オブジェクトの位置から仮想ゲーム空間に設定された視点に向かって延びる所定のマスク空間についてはオブジェクトを透過表示し、その他の空間についてはオブジェクトを通常表示するようなマスクデータを生成することを特徴とする、請求項13に記載の画像処理プログラム。
【請求項19】
前記マスクデータ生成手段は、仮想ゲーム空間に設定された視体積に第1オブジェクトが複数存在する場合に、各第1オブジェクトの位置に応じた長さを有する複数の前記マスク空間を規定したマスクデータを生成することを特徴とする、請求項18に記載の画像処理プログラム。
【請求項20】
前記ゲーム画像生成手段は、前記マスクデータに応じてオブジェクトの各点のアルファ値を変化させ、当該変化後のアルファ値に基づくアルファ合成によってゲーム画像の各画素の色を決定することを特徴とする、請求項13に記載の画像処理プログラム。
【請求項21】
前記第1オブジェクトは、ユーザが前記操作手段を用いて制御することのできるプレイヤキャラクタであることを特徴とする、請求項13に記載の画像処理プログラム。
【請求項22】
前記マスクデータ生成手段は、表示装置の画面における第1オブジェクトの表示位置を含む所定のマスク領域についてはオブジェクトを透過表示し、その他の領域についてはオブジェクトを通常表示し、前記マスク領域の境界においてオブジェクトの透明度を徐々に変化させるマスクデータを生成することを特徴とする、請求項13に記載の画像処理プログラム。
【請求項23】
前記マスクデータ生成手段は、前記ゲーム画像生成手段によって生成されるゲーム画像よりも解像度の低いマスクデータを作成し、
前記ゲーム画像生成手段は、前記マスクデータを拡大して利用することを特徴とする、請求項13に記載の画像処理プログラム。
【請求項24】
前記投影手段は、仮想ゲーム空間に存在するオブジェクトを仮想ゲーム空間に設定された視点に基づくスクリーン平面に透視投影し、
前記マスクデータ生成手段は、仮想ゲーム空間に設定された視点から第1オブジェクトまで距離に応じて前記マスク領域の大きさを変化させることを特徴とする、請求項13に記載の画像処理プログラム。
【請求項25】
三次元の仮想ゲーム空間における複数のオブジェクトを当該仮想ゲーム空間に設定された視点に基づいて透視投影変換を行うことにより、表示画面に表示するためのゲーム画像を描画バッファに描画する処理をゲーム装置のコンピュータに実行させるゲームプログラムであって、
前記コンピュータに、
前記三次元の仮想ゲーム空間に第1オブジェクトを配置するための第1三次元座標と第2オブジェクトを配置するための第2三次元配置座標を決定する配置位置決定ステップ、
前記第1オブジェクトの三次元配置座標を前記視点に基づいて透視投影変換することにより、前記表示画面上の二次元座標を算出する算出ステップ、
前記表示画面上の二次元座標に対応する描画用バッファ領域内の位置に所定形状のマスク画像を描画した一画面分のマスクデータを生成するマスクデータ生成ステップ、
前記第1三次元座標に配置された前記第1オブジェクトを透視投影変換して描画バッファに描画するとき、前記マスクデータを参照することなく、当該第1オブジェクトを当該描画バッファに描画する第1オブジェクト描画ステップ、および
前記第2三次元座標に配置された前記第2オブジェクトを透視投影変換して描画バッファに描画するとき、前記マスクデータを参照することにより、前記マスク画像と重なっている部分における当該第2オブジェクトの透明度を当該マスク画像と重なっていない部分に比べて変化させて、当該第2オブジェクトを描画する第2オブジェクト描画ステップ、
を実行させるゲームプログラム。
【請求項26】
前記マスク画像は中心から周辺に向けて色濃度が薄く又は濃くなる画像であり、
前記透明度変化ステップは、前記マスク画像と前記第2オブジェクトとが重なる部分において前記マスク画像の色濃度に応じて前記第2オブジェクトの透明度が変化するようにゲーム画像を描画する、請求項25に記載のゲームプログラム。

【図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

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17A】
image rotate

【図17B】
image rotate

【図17C】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate