(57)【特許請求の範囲】
【請求項１】
仮想ゲーム空間内に複数のポリゴンから構成されるモデルを描画する３次元ゲーム画像処理プログラムであって、
立体モデルを拡大して得られる拡大モデルを構成する各ポリゴンの法線ベクトルの方向を前記立体モデルを構成する各ポリゴンの法線ベクトルの方向に対して反対方向とした裏モデルを前記立体モデルに重ねて縁付きモデルとして予め記憶しておき、
前記縁付きモデルの描画指示に基づいて、仮想ゲーム空間内における仮想カメラの視点位置の方向を向いているポリゴンのみを描画し、
前記裏モデルは元の立体モデルよりポリゴン数が少ないことを特徴とする３次元ゲーム画像処理プログラム。
【請求項２】
裏モデルを構成するポリゴンに対して複数種類のテクスチャのマッピングを可能とすることを特徴とする請求項１記載の３次元ゲーム画像処理プログラム。
【請求項３】
立体モデルが段差部を有する形状であるとき、その立体モデルの段差部の外側突出部を構成するポリゴンの頂点と、該立体モデルに対応する裏モデルの段差部の外側突出部を構成するポリゴンの頂点とを頂点とするポリゴンを縁付きモデルに含めることを特徴とする請求項１又は２記載の３次元ゲーム画像処理プログラム。
【請求項４】
平面モデルを構成するポリゴンの両面に対して描画処理が可能なことを特徴とする請求項１〜３のいずれかに記載の３次元ゲーム画像処理プログラム。
【請求項５】
仮想ゲーム空間内に複数のポリゴンから構成されるモデルを描画する３次元ゲーム画像処理方法であって、
立体モデルを拡大して得られる拡大モデルを構成する各ポリゴンの法線ベクトルの方向を前記立体モデルを構成する各ポリゴンの法線ベクトルの方向に対して反対方向とした裏モデルを前記モデルに重ねて縁付きモデルとして予め記憶しておき、
前記縁付きモデルの描画指示に基づいて、仮想ゲーム空間内における仮想カメラの視点位置の方向を向いているポリゴンのみを描画し、
前記裏モデルは元の立体モデルよりポリゴン数が少ないことを特徴とする３次元ゲーム画像処理方法。
【請求項６】
表示手段に表示される仮想ゲーム空間内に複数のポリゴンから構成されるモデルを描画するビデオゲーム装置であって、
立体モデルを拡大して得られる拡大モデルを構成する各ポリゴンの法線ベクトルの方向を前記立体モデルを構成する各ポリゴンの法線ベクトルの方向に対して反対方向とした裏モデルを前記立体モデルに重ねて縁付きモデルとして予め記憶しておく記憶手段と、
前記縁付きモデルの描画指示に基づいて、該縁付きモデルを読み出す読出手段と、
仮想ゲーム空間内における仮想カメラの視点位置と読み出した縁付きモデルを構成する各ポリゴンの法線ベクトルの方向とに基づいて、前記仮想カメラの視点位置の方向を向いている法線ベクトルを有するポリゴンか否かの判定を行う判定手段と、
前記仮想カメラの視点位置の方向を向いている法線ベクトルを有すると判定されたポリゴンにテクスチャマッピングして表示メモリに取り込み、該表示メモリの内容を所定周期で表示手段に読み出す描画手段とを備え、
前記裏モデルは元の立体モデルよりポリゴン数が少ないことを特徴とするビデオゲーム装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、モニタに表示される仮想ゲーム空間内において、複数のポリゴンで構成される立体モデル等を描画する３次元ゲーム画像処理プログラム、３次元ゲーム画像処理方法及びビデオゲーム装置に関するものである。
【０００２】
【従来の技術】
従来、３次元空間内で行われるゲームでは、ポリゴンモデルに対して輪郭線を付すことによってアニメーションのような表現を行う技法が知られており、ポリゴンモデルに輪郭線を付すことによって背景となる画像との差別化（輪郭誇張）を図り、対象となるポリゴンモデルを際立たせて表現することが行われている。
【０００３】
例えば特開２０００−２５１０９４号公報には、複数のポリゴンで構成される立体モデルに対して輪郭線を付す処理を行う場合、メモリから輪郭線を付すモデルのデータを読み出し、該モデルを所定の比率で拡大させた拡大モデルを作成してメモリに一旦保持し、この拡大モデルを元の立体モデルに重ね合わせるジオメトリ処理を行い、さらに、拡大モデルのポリゴンの法線ベクトルを反転させてから、両モデルを背景となる画像に重ねるレンダリング処理を行っているものが記載されている。かかる画像処理を施すことで輪郭線が付されたモデルをモニタ上に表示することができる。
【０００４】
【発明が解決しようとする課題】
しかしながら、かかる画像処理方法でモデルに輪郭線を付す場合、拡大モデルを一旦保持するので、拡大モデルを記憶するメモリが必要となる。又、前述のようにジオメトリ処理及びレンダリング処理を行う必要があり、これらの処理に時間がかかるので、所定のフレーム周期で画像を表示することが要求されるゲーム画像の表示方法としては、多くのモデルに対して輪郭線を付すことが困難であって、３次元ビデオゲームには適用できない。また、前述の従来の方法のように、輪郭線用のモデルを元の立体モデルから機械的な演算によって生成した場合、ポリゴンモデルの形状や仮想カメラの視点位置に起因して輪郭線がずれたり、輪郭線が表示されない等の不具合が生じることもあった。
【０００５】
したがって本発明は、上記の問題を解決するためになされたもので、拡大モデルを一旦保持するメモリが不要であって、複数のポリゴンで構成される立体モデルに対して輪郭線を付す場合にかかる処理時間を軽減させ、多くのモデルに輪郭線を付す必要があるゲーム画像の表示に対しても充分適用し得る３次元ゲーム画像処理プログラム、３次元ゲーム画像処理方法及びビデオゲーム装置を提供することを目的とするものである。
【０００６】
【課題を解決するための手段】
請求項１に記載の発明は、仮想ゲーム空間内に複数のポリゴンから構成されるモデルを描画する３次元ゲーム画像処理プログラムであって、
立体モデルを拡大して得られる拡大モデルを構成する各ポリゴンの法線ベクトルの方向を前記立体モデルを構成する各ポリゴンの法線ベクトルの方向に対して反対方向とした裏モデルを前記立体モデルに重ねて縁付きモデルとして予め記憶しておき、
前記縁付きモデルの描画指示に基づいて、仮想ゲーム空間内における仮想カメラの視点位置の方向を向いているポリゴンのみを描画し、
前記裏モデルは元の立体モデルよりポリゴン数が少ないことを特徴とする。
【０００７】
この構成によれば、立体モデルを拡大して得られる拡大モデルを構成する各ポリゴンの法線ベクトルの方向を前記立体モデルを構成する各ポリゴンの法線ベクトルの方向に対して反対方向とした裏モデルを前記モデルに重ねて縁付きモデルとして予め記憶しておく。この縁付きモデルの描画指示に基づいて、記録媒体から該縁付きモデルを読み出し、仮想ゲーム空間内における仮想カメラの視点位置と前記縁付きモデルを構成する各ポリゴンの法線ベクトルの方向に基づいて、前記仮想カメラの視点位置の方向を向いている法線ベクトルを有するポリゴンか否かの判定が行われる。そして、前記仮想カメラの視点位置の方向を向いている法線ベクトルを有すると判定されたポリゴンのみが描画される。
【０００８】
また、裏モデルは輪郭線に影響を与えないポリゴンの数を減らすことによって描画処理に要する時間を短縮することができる。つまり、元の立体モデルは多くのテクスチャを貼るためのポリゴンが必要なため細かく分割されており、モデルのポリゴン数が多くなっているので、裏モデルの形成に際して輪郭線に関係のないポリゴンの頂点を無くすことによってモデルが簡略化され、描画速度が上がることとなる。
【０００９】
請求項２に記載の発明は、裏モデルを構成するポリゴンに対して複数種類のテクスチャのマッピングを可能とすることを特徴とする。
【００１０】
この構成によれば、裏モデルを構成するポリゴンに対して複数種類のテクスチャのマッピングが可能となるため、裏モデルのポリゴンを単なる輪郭線としてだけでなく様々な色のテクスチャマッピングを施すことによって、他の表現手法などに利用することができる。この他の表現手法の一例としては、ゲームに登場するキャラクタに対して付される輪郭線にグラデーションを施すことによってオーラが出ているような表現等がある。
【００１１】
請求項３に記載の発明は、立体モデルが段差部を有する形状であるとき、その立体モデルの段差部の外側突出部を構成するポリゴンの頂点と、該立体モデルに対応する裏モデルの段差部の外側突出部を構成するポリゴンの頂点とを頂点とするポリゴンを縁付きモデルに含めることを特徴とする。
【００１２】
この構成によれば、立体モデルが段差部を有する形状であるとき、その立体モデルの段差部の外側突出部を構成するポリゴンの頂点と、該立体モデルに対応する裏モデルの段差部の外側突出部を構成するポリゴンの頂点とを頂点とするポリゴンを縁付きモデルに含めることによって、縁付きモデルの表示に際して、前記立体モデルから離れて縁が付いたり、ちらつきが起こるなどの不具合が解消され、きれいな縁付きモデルを提供することができるようになる。
【００１３】
請求項４に記載の発明は、平面モデルを構成するポリゴンの両面に対して描画処理が可能なことを特徴とする。
【００１４】
この構成によれば、平面モデルを構成するポリゴンが、両面に対して描画処理が可能な属性情報を有しているため、視点位置の変化に影響されることなく平面モデルが描画される。
【００１５】
請求項５に記載の発明は、仮想ゲーム空間内に複数のポリゴンから構成されるモデルを描画する３次元ゲーム画像処理方法であって、
立体モデルを拡大して得られる拡大モデルを構成する各ポリゴンの法線ベクトルの方向を前記立体モデルを構成する各ポリゴンの法線ベクトルの方向に対して反対方向とした裏モデルを前記モデルに重ねて縁付きモデルとして予め記憶しておき、
前記縁付きモデルの描画指示に基づいて、仮想ゲーム空間内における仮想カメラの視点位置の方向を向いているポリゴンのみを描画し、
前記裏モデルは元の立体モデルよりポリゴン数が少ないことを特徴とする。
【００１６】
この構成によれば、立体モデルを拡大して得られる拡大モデルを構成する各ポリゴンの法線ベクトルの方向を前記立体モデルを構成する各ポリゴンの法線ベクトルの方向に対して反対方向とした裏モデルを前記モデルに重ねて縁付きモデルとして予め記憶しておく。この縁付きモデルの描画指示に基づいて、記録媒体から該縁付きモデルを読み出し、仮想ゲーム空間内における仮想カメラの視点位置と前記縁付きモデルを構成する各ポリゴンの法線ベクトルの方向に基づいて、前記仮想カメラの視点位置の方向を向いている法線ベクトルを有するポリゴンか否かの判定が行われる。そして、前記仮想カメラの視点位置の方向を向いている法線ベクトルを有すると判定されたポリゴンのみが描画される。
【００１７】
また、裏モデルは輪郭線に影響を与えないポリゴンの数を減らすことによって描画処理に要する時間を短縮することができる。つまり、元の立体モデルは多くのテクスチャを貼るためのポリゴンが必要なため細かく分割されており、モデルのポリゴン数が多くなっているので、裏モデルの形成に際して輪郭線に関係のないポリゴンの頂点を無くすことによってモデルが簡略化され、描画速度が上がることとなる。
【００１８】
請求項６に記載の発明は、表示手段に表示される仮想ゲーム空間内に複数のポリゴンから構成されるモデルを描画するビデオゲーム装置であって、
立体モデルを拡大して得られる拡大モデルを構成する各ポリゴンの法線ベクトルの方向を前記立体モデルを構成する各ポリゴンの法線ベクトルの方向に対して反対方向とした裏モデルを前記立体モデルに重ねて縁付きモデルとして予め記憶しておく記憶手段と、
前記縁付きモデルの描画指示に基づいて、該縁付きモデルを読み出す読出手段と、
仮想ゲーム空間内における仮想カメラの視点位置と読み出した縁付きモデルを構成する各ポリゴンの法線ベクトルの方向とに基づいて、前記仮想カメラの視点位置の方向を向いている法線ベクトルを有するポリゴンか否かの判定を行う判定手段と、
前記仮想カメラの視点位置の方向を向いている法線ベクトルを有すると判定されたポリゴンにテクスチャマッピングして表示メモリに取り込み、該表示メモリの内容を所定周期で表示手段に読み出す描画手段とを備え、
前記裏モデルは元の立体モデルよりポリゴン数が少ないことを特徴とする。
【００１９】
この構成によれば、立体モデルを拡大して得られる拡大モデルを構成する各ポリゴンの法線ベクトルの方向を前記立体モデルを構成する各ポリゴンの法線ベクトルの方向に対して反対方向とした裏モデルを前記立体モデルに重ねて縁付きモデルとして予め記憶手段に記憶している。この縁付きモデルの描画指示に基づいて、読出手段によって記憶手段から該縁付きモデルを読み出し、判定手段によって仮想ゲーム空間内における仮想カメラの視点位置と縁付きモデルを構成する各ポリゴンの法線ベクトルの方向に基づいて、前記仮想カメラの視点位置の方向を向いている法線ベクトルを有するポリゴンか否かの判定が行われる。そして、描画手段によって前記仮想カメラの視点位置の方向を向いている法線ベクトルを有すると判定されたポリゴンにテクスチャマッピングをし、表示メモリに取り込み、この表示メモリの内容を所定周期で表示手段に読み出すことによって縁付きモデルが描画される。
【００２０】
また、裏モデルは輪郭線に影響を与えないポリゴンの数を減らすことによって描画処理に要する時間を短縮することができる。つまり、元の立体モデルは多くのテクスチャを貼るためのポリゴンが必要なため細かく分割されており、モデルのポリゴン数が多くなっているので、裏モデルの形成に際して輪郭線に関係のないポリゴンの頂点を無くすことによってモデルが簡略化され、描画速度が上がることとなる。
【００２１】
【発明の実施の形態】
図１は本発明の一実施形態に係る３次元ゲーム画像処理方法が適用されるビデオゲームシステム（ビデオゲーム装置）の電気的構成を示すブロック図である。このゲームシステムは、ゲーム機本体１００と、プログラムデータが記録された記録媒体２００とを備えている。ゲーム機本体１００は、ＣＰＵ（Central Processing Unit）１と、ＣＰＵ１に接続されたアドレスバス、データバス、コントロールバスからなるバスライン２と、グラフィックスデータ生成プロセッサ３とを備えている。
【００２２】
バスライン２には、インターフェース回路４、ＲＡＭ（Random Access Memory）等からなるメインメモリ５、ＲＯＭ（Read Only Memory）６、伸張回路７、パラレルポート８、シリアルポート９、描画プロセッサ１０、音声プロセッサ１１、デコーダ１２、インターフェース回路１３が接続されている。
【００２３】
描画プロセッサ１０には、バッファ２１が接続されると共に、表示手段であるテレビジョンモニタ（以下、「モニタ」という。）２２が接続され、音声プロセッサ１１には、バッファ２３が接続されると共に、増幅回路２４を介してスピーカ２５が接続されている。また、デコーダ１２には、バッファ２６が接続されると共に、記録媒体ドライバ２７が接続され、インターフェース回路１３には、メモリ２８が接続されると共に、コントローラ２９が接続されている。
【００２４】
このゲームシステムは、用途に応じてその形態が異なる。例えば、このゲームシステムが家庭用として構成されている場合においては、モニタ２２及びスピーカ２５はゲーム機本体１００とは別体となる。一方、このゲームシステムが業務用として構成されている場合においては、図１に示す構成要素は１つの筺体に収納される場合がある。なお、本実施形態では、このゲームシステムが家庭用として構成されている場合を例にして説明する。
【００２５】
また、このゲームシステムがパーソナルコンピュータやワークステーションを核として構成されている場合においては、モニタ２２は、コンピュータ用のディスプレイに対応し、描画プロセッサ１０、音声プロセッサ１１、伸張回路７は、それぞれ記録媒体２００に記録されているプログラムデータの一部若しくはコンピュータの拡張スロットに搭載される拡張ボード上のハードウエアに対応し、インターフェース回路４、パラレルポート８、シリアルポート９及びインターフェース回路１３は、コンピュータの拡張スロットに搭載される拡張ボード上のハードウエアに対応する。また、バッファ２１，２３，２６は、それぞれメインメモリ５若しくは拡張メモリ（図示省略）の各エリアに対応する。
【００２６】
次に、図１に示す各構成要素について説明する。グラフィックスデータ生成プロセッサ３は、ＣＰＵ１のいわばコプロセッサとしての役割を果たす。すなわち、このグラフィックスデータ生成プロセッサ３は、座標変換や光源計算、例えば固定小数点形式の行列やベクトルの演算を、並列処理により行う。このグラフィックスデータ生成プロセッサ３が行う主な処理としては、ＣＰＵ１から供給される画像データの２次元若しくは３次元空間内における各頂点の座標データ、移動量データ、回転量データ等に基づいて、所定の表示エリア上における処理対象画像のアドレスを求め、このアドレスデータをＣＰＵ１に返す処理、仮想的に設定された光源からの距離に応じて画像の輝度を計算する処理等がある。
【００２７】
インターフェース回路４は、周辺デバイス、例えばマウスやトラックボール等のポインティングデバイス等のインターフェース用である。ＲＯＭ６には、ゲームシステムのオペレーティングシステムとしてのプログラムデータが記憶されている。パーソナルコンピュータで言えば、ＢＩＯＳ(Basic Input Output System)に相当する。
【００２８】
伸張回路７は、動画に対するＭＰＥＧ(Moving Picture Engineering Group)規格や静止画に対するＪＰＥＧ(Joint Picture Engineering Group)規格に準拠したイントラ符号化により圧縮された圧縮画像に対し、伸張処理を施す。伸張処理は、デコード処理(VLC：Variable Length Codeによりエンコードされたデータのデコード)、逆量子化処理、ＩＤＣＴ(Inverse Discrete Cosine Transform)処理、イントラ画像の復元処理等である。
【００２９】
描画プロセッサ１０は、所定時間Ｔ（１フレーム、例えばＴ＝1／60秒）ごとに、ＣＰＵ１が発行する描画命令に基づいて、バッファ２１に対する描画処理を行う。
【００３０】
バッファ２１は、例えばＲＡＭからなり、表示エリア(フレームバッファ)と非表示エリアとからなる。表示エリアは、モニタ２２の表示面上に表示するデータの展開エリアからなる。本実施形態においては、非表示エリアは、スケルトンを定義するデータ、ポリゴンを定義するモデルデータ、モデルに動きを行わせるアニメデータ及び各アニメの内容を示すパターンデータの他、テクスチャデータやカラーパレットデータ等の記憶エリアからなる。
【００３１】
ここで、テクスチャデータは、２次元の画像データである。カラーパレットデータは、テクスチャデータ等の色を指定するためのデータである。これらのデータは、記録媒体２００から一度に、若しくはゲームの進行状況に合致して複数回に分けて、ＣＰＵ１により予めバッファ２１の非表示エリアに記録される。
【００３２】
描画命令としては、ポリゴンを用いて立体的な画像を描画するための描画命令、通常の２次元画像を描画するための描画命令がある。ここで、ポリゴンは、多角形の２次元仮想図形であり、本実施形態においては三角形が用いられる。
【００３３】
ポリゴンを用いて立体的な画像を描画するための描画命令は、ポリゴン頂点座標データのバッファ２１の表示エリア上における記憶位置を示すポリゴン頂点アドレスデータ、ポリゴンに貼り付けるテクスチャデータのバッファ２１上における記憶位置を示すテクスチャアドレスデータ、テクスチャデータの色を示すカラーパレットデータのバッファ２１上における記憶位置を示すカラーパレットアドレスデータ並びにテクスチャの輝度を示す輝度データのそれぞれに対して行われるものである。
【００３４】
これらのデータのうち、表示エリア上のポリゴン頂点アドレスデータは、グラフィックスデータ生成プロセッサ３が、ＣＰＵ１からの３次元空間上におけるポリゴン頂点座標データを画面自体の移動量データ及び回転量データに基づいて座標変換することによって２次元上でのポリゴン頂点座標データに置換されたものである。また、輝度データは、グラフィックスデータ生成プロセッサ３が、ＣＰＵ１からの上記座標変換後のポリゴン頂点座標データが示す位置から、仮想的に配置された光源間での距離に基づいて決定される。
【００３５】
上記ポリゴン頂点アドレスデータは、バッファ２１の表示エリア上のアドレスを示し、描画プロセッサ１０は、３個のポリゴン頂点アドレスデータで示されるバッファ２１の表示エリアの範囲に対応するテクスチャデータを書き込む処理を行う。
【００３６】
仮想ゲーム空間内におけるキャラクタ等の物体は複数のポリゴンで構成される。ＣＰＵ１は、各ポリゴンの３次元空間上の座標データを対応するスケルトンのベクトルデータと関連させてバッファ２１に記憶する。そして、後述するコントローラ２９の操作により、モニタ２２の表示面上でキャラクタを移動させるなど、キャラクタの動きを表現する場合若しくはキャラクタを見ている視点位置を変える場合、次のような処理が行われる。
【００３７】
すなわち、ＣＰＵ１は、グラフィックスデータ生成プロセッサ３に対し、バッファ２１の非表示エリア内に保持している各ポリゴンの頂点の３次元座標データと、スケルトンの座標及びその回転量のデータから求められた各ポリゴンの移動量データ及び回転量データを与える。
【００３８】
グラフィックスデータ生成プロセッサ３は、各ポリゴンの頂点の３次元座標データと、各ポリゴンの移動量データ及び回転量データとに基づいて、順次、各ポリゴンの移動後及び回転後の３次元座標データを求める。
【００３９】
このようにして求められた各ポリゴンの３次元座標データのうち、水平及び垂直方向の座標データが、バッファ２１の表示エリア上のアドレスデータ、すなわちポリゴン頂点アドレスデータとして、描画プロセッサ１０に供給される。
【００４０】
描画プロセッサ１０は、３個のポリゴン頂点アドレスデータによって示されるバッファ２１の三角形の表示エリア上に、予め割り当てられているテクスチャアドレスデータが示すテクスチャデータを書き込む。これによって、モニタ２２の表示面上には、多数のポリゴンにテクスチャデータの貼り付けられた物体が表示される。
【００４１】
通常の２次元画像を描画するための描画命令は、頂点アドレスデータ、テクスチャアドレスデータ、テクスチャデータの色を示すカラーパレットデータのバッファ２１上における記憶位置を示すカラーパレットアドレスデータ並びにテクスチャの輝度を示す輝度データのそれぞれに対して行われるものである。これらのデータのうち、頂点アドレスデータは、グラフィックスデータ生成プロセッサ３がＣＰＵ１からの２次元平面上における頂点座標データをＣＰＵ１からの移動量データ及び回転量データに基づいて、座標変換して得られる座標データである。
【００４２】
音声プロセッサ１１は、記録媒体２００から読み出されたＡＤＰＣＭ（Adaptive Differential Pulse Code Modulation）データをバッファ２３に記載し、このバッファ２３に記憶されたＡＤＰＣＭデータを音源とする。そして、音声プロセッサ１１は、ＡＤＰＣＭデータを例えば周波数44.1kHzのクロック信号に基づき読み出す。
【００４３】
そして、音声プロセッサ１１は、バッファ２３から読み出したＡＤＰＣＭデータに対し、ピッチの変換、ノイズの付加、エンベロープの設定、レベルの設定、リバーブの付加等の処理を施す。
【００４４】
記録媒体２００から読み出される音声データがＣＤ−ＤＡ(Compact Disk Digital Audio)等のＰＣＭデータの場合においては、音声プロセッサ１１によりＡＤＰＣＭデータに変換される。
【００４５】
また、ＰＣＭデータに対するプログラムデータによる処理はメインメモリ５上において直接行われる。メインメモリ５上において処理されたＰＣＭデータは、音声プロセッサ１１に供給されてＡＤＰＣＭデータに変換された後に上述した各種処理が施され、その後に音声としてスピーカ２５から出力される。
【００４６】
記録媒体ドライバ２７は、例えばＣＤ−ＲＯＭドライブ、ハードディスクドライブ、光ディスクドライブ、フレキシブルディスクドライブ、シリコンディスクドライブ、カセット媒体読み取り機等である。
【００４７】
記録媒体２００は、例えばＣＤ−ＲＯＭ、ハードディスク、光ディスク、フレキシブルディスク、半導体メモリ等である。
【００４８】
記録媒体ドライバ２７は、記録媒体２００から画像、音声、プログラムデータを読み出し、読み出したデータをデコーダ１２に供給する。デコーダ１２は、記録媒体ドライバ２７からの再生データに対し、ＥＣＣ(Error Correction Code)によるエラー訂正処理を施し、エラー訂正処理を施したデータを、メインメモリ５若しくは音声プロセッサ１１に供給する。
【００４９】
メモリ２８は、例えば、ホルダ及びカード型のメモリからなる。カード型のメモリは、例えばゲームの途中で中断した場合の中断時点での状態を保持する等のように、中断時点での各種ゲームパラメータを保持するためのものである。
【００５０】
コントローラ２９は、外部から操作可能な操作手段で、第１左ボタン２９Ｌ１、第２左ボタン２９Ｌ２、第１右ボタン２９Ｒ１、第２右ボタン２９Ｒ２、上方向キー２９Ｕ、下方向キー２９Ｄ、左方向キー２９Ｌ、右方向キー２９Ｒ、スタートボタン２９ａ、セレクトボタン２９ｂ、第１ボタン２９ｃ、第２ボタン２９ｄ、第３ボタン２９ｅ、第４ボタン２９ｆ、左スティック２９ＳＬ及び右スティック２９ＳＲを備え、遊技者の操作に応じた操作信号をＣＰＵ１に送出するものである。
【００５１】
上方向キー２９Ｕ、下方向キー２９Ｄ、左方向キー２９Ｌ、及び右方向キー２９Ｒは、遊技者がＣＰＵ１に対し、例えばキャラクタやカーソルをモニタ２２の画面上で上下左右に移動させるコマンドを与えるものである。
【００５２】
スタートボタン２９ａは、遊技者が、記録媒体２００からロードされるゲームプログラムデータの開始をＣＰＵ１に指示するためのものである。セレクトボタン２９ｂは、遊技者が、記録媒体２００からメインメモリ５にロードされるゲームプログラムデータに関する各種選択をＣＰＵ１に指示するためのものである。
【００５３】
コントローラ２９のうちで、左スティック２９ＳＬ及び右スティック２９ＳＲを除く各ボタン及び各キーは、外部からの押圧力により中立位置から押圧されるとオンになり、押圧力が解除されると上記中立位置に復帰してオフになるオンオフスイッチからなる。
【００５４】
左スティック２９ＳＬ及び右スティック２９ＳＲは、いわゆるジョイスティックとほぼ同一構成のスティック型コントローラである。すなわち、直立したスティックを有し、このスティックの所定位置を支点として前後左右を含む360°方向に亘って傾倒可能な構成になっている。そして、スティックの傾倒方向及び傾倒角度に応じて、直立位置を原点とする左右方向のｘ座標及び前後方向のｙ座標の値が、インターフェース回路１３を介して、操作信号としてＣＰＵ１に送出されるようになっている。
【００５５】
なお、第１左ボタン２９Ｌ１、第２左ボタン２９Ｌ２、第１右ボタン２９Ｒ１及び第２右ボタン２９Ｒ２の機能は、記録媒体２００からロードされるゲームプログラムデータによって異なる。
【００５６】
次に、このゲームシステムの概略動作について説明する。電源スイッチ（図示省略）がオンにされ、ゲームシステムに電源が投入される。この時、記録媒体２００が記録媒体ドライバ２７に装填されていると、ＣＰＵ１が、ＲＯＭ６に記憶されているオペレーティングシステムに基づいて、記録媒体ドライバ２７に対し記録媒体２００からのプログラムデータの読み出しを指示する。これにより、記録媒体ドライバ２７は、記録媒体２００から画像、音声及びプログラムデータを読み出す。読み出された画像、音声及びプログラムデータは、デコーダ１２に供給され、ここで、エラー訂正処理が施される。
【００５７】
デコーダ１２においてエラー訂正処理が施された画像データは、バスライン２を介して伸張回路７に供給され、ここで、上述した伸張処理が施された後に、描画プロセッサ１０に供給され、この描画プロセッサ１０により、バッファ２１の非表示エリアに書き込まれる。
【００５８】
また、デコーダ１２においてエラー訂正処理が施された音声データは、メインメモリ５に書き込まれるか、若しくは音声プロセッサ１１に供給されてバッファ２３に書き込まれる。
【００５９】
また、デコーダ１２においてエラー訂正処理が施されたプログラムデータは、メインメモリ５に書き込まれる。以降、ＣＰＵ１は、メインメモリ５に記憶されているゲームプログラムデータ、及び遊技者がコントローラ２９を介して指示する内容に基づいて、ゲームを進行する。すなわち、ＣＰＵ１は、コントローラ２９を介して遊技者から指示される指示内容に基づいて、適宜、画像処理の制御、音声処理の制御、内部処理の制御を行う。
【００６０】
画像処理の制御として、本実施形態においては、例えば、キャラクタに指示されるアニメに該当するパターンデータから、各スケルトンの座標の計算乃至ポリゴンの頂点座標データの計算、得られた３次元座標データや視点位置データのグラフィックスデータ生成プロセッサ３への供給、グラフィックスデータ生成プロセッサ３が求めたバッファ２１の表示エリア上のアドレスデータや輝度データを含む描画命令の発行等を行う。音声処理の制御として、例えば音声プロセッサ１１に対する音声出力コマンドの発行、レベル、リバーブ等の指定を行う。内部処理の制御として、例えば、コントローラ２９の操作に応じた演算等を行う。
【００６１】
デコーダ１２においてエラー訂正処理が施された画像データは、バスライン２を介して伸張回路７に供給され、ここで、上述した伸張処理が施された後に、描画プロセッサ１０に供給され、この描画プロセッサ１０により、バッファ２１の非表示エリアに書き込まれる。
【００６２】
また、デコーダ１２においてエラー訂正処理が施された音声データは、メインメモリ５に書き込まれるか、若しくは音声プロセッサ１１に供給されてバッファ２３に書き込まれる。
【００６３】
また、デコーダ１２においてエラー訂正処理が施されたプログラムデータは、メインメモリ５に書き込まれる。以降、ＣＰＵ１は、メインメモリ５に記憶されているゲームプログラムデータ、及び遊技者がコントローラ２９を介して指示する内容に基づいて、ゲームを進行する。すなわち、ＣＰＵ１は、コントローラ２９を介して遊技者から指示される指示内容に基づいて、適宜、画像処理の制御、音声処理の制御、内部処理の制御を行う。
【００６４】
本実施形態では、輪郭線を付すモデルと輪郭線用のモデル（裏モデル）とを重ね合わせて一体とした縁付きモデルのデータを予め記録媒体２００に記憶しておき、ＣＰＵ１の描画命令によってモデルのデータを所定のバッファ２１の非表示エリア上に読み出し、前述の画像処理を行って表示エリアに書き込ませ、この後、表示手段であるモニタ２２に繰り返し読み出して描画するようにしている。
【００６５】
図２は、図１に示すビデオゲームシステムの動作を中心とする主要部の機能構成を示すブロック図であり、主にＣＰＵ１と、グラフィックスデータ生成プロセッサ３と、描画プロセッサ１０と、記録媒体２００と、バッファ２１と、テレビジョンモニタ２２と、コントローラ２９とで構成されている。
【００６６】
記録媒体２００は、仮想カメラの視点位置及び視線の向きを表すベクトルデータを記憶するカメラ視線データ部２１０と、立体モデルの情報を記憶するモデルデータ記憶部２２０とを備えており、ゲーム展開に応じてバッファ２１にその都度あるいは一度に呼び出される。
【００６７】
モデルデータ記憶部２２０は、縁付きモデルを構成する各ポリゴンのテクスチャデータを格納するテクスチャデータ２２１と、縁付きモデルを構成する各ポリゴンの法線ベクトルを格納する法線ベクトルデータ２２２と、縁付きモデルを構成する各ポリゴンの各頂点位置の座標を格納する頂点座標データ２２３と、各ポリゴンが表面のみを描画するポリゴンであるか、両面を描画するポリゴン（平面モデルを構成するポリゴン）であるかを記憶する属性データ２２４とをそれぞれ各縁付きモデル毎に各ポリゴンに対応するデータとしてテーブル形式で備える。
【００６８】
本実施形態である３次元ゲーム画像処理の前段階として行われる処理を以下に説明する。なお、図３〜図５は、本実施形態である３次元ゲーム画像処理の前段階として行われる処理を説明する図である。
【００６９】
まず、元となる立体モデル（輪郭線を付すモデル）の拡大が行われる。この際、輪郭線を付すモデルの中心点となる座標を設定し、その中心点から全方向に所定の比率で拡大させる。つまり、この中心点は、ローカル座標系における原点となるので、元となるモデルの各頂点座標に所定の倍率を掛け合わせたものが拡大したモデルの頂点座標となる。また、拡大したモデル（輪郭線用のモデル）の各ポリゴンの頂点が、元の立体モデルの各頂点の法線ベクトル上に配置するようにする。これによって、元の立体モデルから均等に拡大されたモデルを作成することができる。さらに、この拡大されたモデルの法線ベクトルの向きを内側に反転する。続いて、上記作成されたモデルの修正が行われ、輪郭線を付すモデルと輪郭線用のモデルとを一体の縁付きモデルとし、該縁付きモデルをモデルデータとして記録媒体などに記憶する。ここでの修正は、元の立体モデルを所定の倍率で拡大した際に生じる不具合を修正するものであり、具体的には中心点を新たに設定し、その中心点から所定の倍率で拡大あるいは縮小することによって行われ、さらに、後述するように、ポリゴンの頂点座標を新たに設定することによって行われる。
【００７０】
図３は、輪郭線を付すモデルと、輪郭線用のモデルと、輪郭線を付すモデルと輪郭線用のモデルとで構成される縁付きモデルの一例を示す図である。図に示す（１）は輪郭線を付すモデルＡであり、（２）は輪郭線用のモデルＢであり、（３）はモデルＡとモデルＢとを重ね合わせた縁付きモデルＭである。モデルＡを輪郭線の幅だけ拡大したものがモデルＢであり、モデルＭは、モデルＡとモデルＢとを重ね合わせたモデルとして予め記憶媒体２００などに格納されている。また、モデルＡはテクスチャを貼るためにポリゴンが細かく分割されており、そのためモデルＡを所定の倍率で拡大しただけのモデルＢでは、描画するポリゴン数が多くなり、描画処理に時間がかかってしまう。したがって、モデルＢは、単にモデルＡを所定の倍率で拡大したものではなく、モデルＡのテクスチャ用の頂点や輪郭線に影響を与えないポリゴンの頂点等を省略することによってポリゴン数を減らすことが可能で、これにより、描画処理にかかる時間が短縮され、高速化が図られる。
【００７１】
図４は、平面モデルＡと輪郭線用のモデルＢで構成される縁付きモデルＭを示す図である。体積のない平面モデルＡは表裏両方から見える必要があるためポリゴンの表裏に関係無く常に両面が描画される。これは、モデル全体が平面の場合だけでなくモデルの一部が平面になっている場合も平面の部分のみは表裏に関係無く常に描画される。このような平面モデルＡは、直方体形状の輪郭線用のモデルＢで囲うことで、縁付きモデルＭとして予め記録媒体に記憶しておき、どの角度から見ても輪郭線が描画されるようにする。
【００７２】
図５の（１）、（２）のそれぞれ左側の図は描画されたポリゴンモデルを視線方向に対して側面から見た側面図であり、それぞれ右側の図は描画されたポリゴンモデルを視線方向から見た正面図である。２つ以上のポリゴンモデルが重なった部分や、小さな段差のような凸凹があるモデルの場合、元となるモデルの拡大だけでは、ある特定の視点から見た場合に、元となるモデルの端と輪郭線用のモデルのポリゴンとの間に隙間ができてしまい、輪郭線が浮いて見えたり、ちらついて見えたりする現象が起こる。例えば、図５の（１）では、頂点Ｐａと頂点Ｐｂとの間を結んで構成されるポリゴンが輪郭線として描画されるため、図に示すような視線方向から見た場合、輪郭線と元の立体モデルとの間に隙間ができてしまう。このような現象を防止するために様々な視点から見て、このような隙間ができる部分を閉じるように修正する。つまり、図５の（２）に示すように、頂点Ｐｂを頂点Ｐｃに移動させ、頂点Ｐａと頂点Ｐｃとの間を結ぶことによって、元の立体モデルと縁取り用のモデルとの間がポリゴンによって閉じられ、輪郭線として描画される。
【００７３】
図６は、描画された縁付きモデルの具体的な実施例を示す図である。図の（１）は輪郭線を付す前の立体モデルが描画された例であり、（２）は、（１）の立体モデルと輪郭線用のモデルとを重ね合わせた縁付きモデルが描画された例であり、モニタ２２上に実際に表示されるポリゴンモデル（キャラクタ）の一例である。図に示すように、ポリゴンモデルのキャラクタに対して輪郭線を付すことによってモデルがアニメーションのような表現となり、さらに、背景となる画像との差別化が図られ、モデルが際立つこととなる。
【００７４】
グラフィックスデータ生成プロセッサ３は、立体モデルを構成するポリゴンを仮想カメラの視点位置の方向を向いている表面ポリゴンと仮想カメラの視点位置に対して逆方向を向いている裏面ポリゴンとに選別するポリゴン選別部３１を備えている。
【００７５】
ポリゴン選別部３１は、立体モデルを構成する各ポリゴンの面法線ベクトルとカメラ視線ベクトルとの内積を計算し、立体モデルを構成する各ポリゴンを内積が正のポリゴンである裏面ポリゴンと、内積が正でないポリゴンである表面ポリゴンとに選別するものである。
【００７６】
描画プロセッサ１０は、３次元空間内に配置された各モデルに対してテクスチャマッピング及びレンダリング処理を施し、モデル全体の画像の形成を行うものである。ここでは、ポリゴン選別部３１によって選別された表面ポリゴンのみが描画されるため、輪郭線を付すモデルに関しては視点側の外側のポリゴンが描画され、輪郭線用のモデルに関しては視点側の外側のポリゴンは描画されず、内側のポリゴンが描画され、輪郭線を有する縁付きモデルが描画される。
【００７７】
図７は、本発明に係る３次元ゲーム画像処理方法の手順を示すフローチャートである。まず、グラフィックスデータ生成プロセッサ３は、ＣＰＵ１からの描画指示に基づいて、ポリゴンモデルをモデルデータ記憶部５２から読み出す（ＳＴ１）。続いて、読み出されたポリゴンモデルが表裏に関係無く描画されるポリゴンであるか否かが属性データを基に判定される（ＳＴ２）。そして、表裏に関係無く描画されるポリゴン（平面モデル）の場合（ＳＴ２でＹＥＳ）、そのまま描画され、体積のあるモデルの場合（ＳＴ２でＮＯ）、ステップＳＴ３に進むこととなる。ポリゴン選別部３１によって体積のあるモデルの各ポリゴンの表裏が選別され（ＳＴ３）、表面ポリゴンであれば（ＳＴ３でＹＥＳ）、描画プロセッサ１０によって描画され（ＳＴ４）、裏面ポリゴンであれば（ＳＴ３でＮＯ）、描画されずに終了となる。
【００７８】
本実施形態では、輪郭線の色は場所によって変更することが可能である。つまり、輪郭線用のモデルの各ポリゴンのテクスチャデータを様々な色や材質に設定することで実現される。例えば、ゲームに登場するキャラクタの輪郭線用のモデルのポリゴンにグラデーションをつけることによってオーラが出ているような表現となる。
【００７９】
【発明の効果】
請求項１に記載の発明によれば、輪郭線を付すモデルと輪郭線用のモデルとを一体とし、縁付きモデルとして予め記憶しておくので、描画処理が容易となると共に処理にかかる時間が短縮され、ゲームに適用して好適である。
【００８０】
また、裏モデルの形成に際して輪郭線に関係のないポリゴンの頂点を無くすことによってモデルが簡略化され、描画速度が上がることとなる。
【００８１】
請求項２に記載の発明によれば、描画処理による不具合が解消されるため、きれいな縁付きモデルを提供することができるようになる。
【００８２】
請求項３に記載の発明によれば、視点位置の変化に影響されることなく平面モデルの縁付きモデルが描画される。
【００８３】
請求項４に記載の発明によれば、視点位置の変化に影響されることなく平面モデルが描画される。
【００８４】
請求項５に記載の発明によれば、輪郭線を付すモデルと輪郭線用のモデルとを一体とし、縁付きモデルとして予め記憶しておくので、描画処理が容易となると共に処理にかかる時間が短縮され、ゲームに適用して好適である。
【００８５】
また、裏モデルの形成に際して輪郭線に関係のないポリゴンの頂点を無くすことによってモデルが簡略化され、描画速度が上がることとなる。
【００８６】
請求項６に記載の発明によれば、輪郭線を付すモデルと輪郭線用のモデルとを一体とし、縁付きモデルとして予め記憶しておくので、描画処理が容易となると共に処理にかかる時間が短縮され、ゲームに適用して好適である。
【００８７】
また、裏モデルの形成に際して輪郭線に関係のないポリゴンの頂点を無くすことによってモデルが簡略化され、描画速度が上がることとなる。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る３次元ゲーム画像処理方法が適用されるビデオゲームシステム（ビデオゲーム装置）の電気的構成を示すブロック図である。
【図２】ビデオゲームシステムの動作を中心とする主要部の機能構成を示すブロック図である。
【図３】本実施形態である３次元ゲーム画像処理の前段階として行われる処理を説明する図である。
【図４】本実施形態である３次元ゲーム画像処理の前段階として行われる処理を説明する図である。
【図５】本実施形態である３次元ゲーム画像処理の前段階として行われる処理を説明する図である。
【図６】描画された縁付きモデルの具体的な実施例を示す図である。
【図７】本発明に係る３次元ゲーム画像処理方法の手順を示すフローチャートである。
【符号の説明】
１  ＣＰＵ
３  グラフィックスデータ生成プロセッサ（読出手段）
３１  ポリゴン選別部（判定手段）
１０  描画プロセッサ（描画手段）
２１  バッファ
２２  テレビジョンモニタ
２９  コントローラ
２００  記録媒体（記憶手段）
２１０  カメラ視線データ部
２２０  モデルデータ記憶部
２２１  テクスチャデータ
２２２  法線ベクトルデータ
２２３  頂点座標データ
２２４  属性データ
Ａ  輪郭線を付すモデル（立体モデル）
Ｂ  輪郭線用のモデル（裏モデル）
Ｍ  縁付きモデル
【図１】
0003617960.tif 000002
【図２】
0003617960.tif 000003
【図３】
0003617960.tif 000004
【図４】
0003617960.tif 000005
【図５】
0003617960.tif 000006
【図６】
0003617960.tif 000007
【図７】
0003617960.tif 000008