図面 (/)

技術 ビデオゲーム用のプログラムを記録したコンピュータ読み取り可能な記録媒体、ビデオゲームにおけるオブジェクト描画方法及びビデオゲーム装置

出願人 株式会社スクウェア・エニックス・ホールディングス
発明者 皆川裕史土田善紀
出願日 1999年12月28日 (21年5ヶ月経過) 出願番号 1999-374875
公開日 2001年7月10日 (19年11ヶ月経過) 公開番号 2001-188920
状態 特許登録済
技術分野 電子ゲーム機 イメージ生成 イメージ処理・作成
主要キーワード 部位単位 ソートテーブル オブジェクト識別番号 描画順番 描画演算処理 輪郭色 横縞模様 次領域
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2001年7月10日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

輪郭描画の対象となるオブジェクトに対し輪郭検出処理を実施せずに輪郭を描画すること。

解決手段

オブジェクトよりサイズの大きい輪郭描画用オブジェクトを生成する(S35,S37)。輪郭描画用オブジェクトの色は輪郭色に設定される(S39)。そしてZソート法を用いてオブジェクト及び輪郭描画用オブジェクトを描画する。但し、オブジェクトのポリゴンについては通常通りソートテーブル登録し、一方輪郭描画用オブジェクトのポリゴンについてはソートテーブルの先頭アドレスをずらして実際のデプス値より視点から見て後ろになるようソートテーブルに登録する(S45)。視点から遠い、ソートテーブル内のポリゴンから描画されるので、輪郭描画用オブジェクトに対しオブジェクトが上書きされる。最終的に輪郭描画用オブジェクトは、オブジェクトからはみ出た当該オブジェクトの縁全体を囲む部分のみが残り、輪郭色で描画される。

概要

背景

近年、ビデオゲームの分野で非写実的レンダリング(non-photorealistic rendering)の技術が研究されている。非写実的レンダリング技術は、例えばカートゥーン(Cartoon)と呼ばれるアニメーション画像CG(Computer Graphics)で表現しようとするものである。非写実的レンダリング技術の中のひとつの技術として、3次元物体を2次元画像として描画する際に、3次元物体の輪郭を描画する技術がある。

例えば、特開平7−85310号公報には、以下に示す技術が示されている。すなわち、多面体近似で与えられる3次元物体を2次元画像として表示する際に、多面体の各面を構成する辺を単位として、辺毎に輪郭として表示すべき辺であるか否かを所定のアルゴリズムに基づいて判断する。そして判断結果に基づいて輪郭として表示する辺を検出し、検出した辺の線種や、線幅、又は線色を変えて表示することにより多面体の輪郭を表示する。

また、特開平7−160905号公報には、以下に示す技術が示されている。すなわち、多面体近似で与えられる3次元物体を2次元画像として表示する際に、表示された多面体を構成する多角形の辺を表示画面の画素単位で追跡する。辺毎に輪郭として表示すべき辺であるか否かを所定のアルゴリズムに基づいて判断する。そして判断結果に基づいて輪郭として表示する辺を検出し、検出した辺の線色を変えて表示することにより物体の輪郭を表示する。

概要

輪郭描画の対象となるオブジェクトに対し輪郭検出処理を実施せずに輪郭を描画すること。

オブジェクトよりサイズの大きい輪郭描画用オブジェクトを生成する(S35,S37)。輪郭描画用オブジェクトの色は輪郭色に設定される(S39)。そしてZソート法を用いてオブジェクト及び輪郭描画用オブジェクトを描画する。但し、オブジェクトのポリゴンについては通常通りソートテーブル登録し、一方輪郭描画用オブジェクトのポリゴンについてはソートテーブルの先頭アドレスをずらして実際のデプス値より視点から見て後ろになるようソートテーブルに登録する(S45)。視点から遠い、ソートテーブル内のポリゴンから描画されるので、輪郭描画用オブジェクトに対しオブジェクトが上書きされる。最終的に輪郭描画用オブジェクトは、オブジェクトからはみ出た当該オブジェクトの縁全体を囲む部分のみが残り、輪郭色で描画される。

目的

本発明の目的は、輪郭描画の対象となるオブジェクトに対して輪郭を検出する処理を実施することなく、オブジェクトに輪郭を描画することが可能な輪郭描画技術を提供することである。

効果

実績

技術文献被引用数
2件
牽制数
4件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

仮想空間におけるオブジェクトを描画する、ビデオゲーム用のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、前記コンピュータに、前記オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する第1ステップと、視点から見て前記オブジェクトの後ろに前記第1ステップで生成された前記輪郭描画用オブジェクトが配置されるように、前記輪郭描画用オブジェクト及び前記オブジェクトの位置を決定する第2ステップと、前記第2ステップで決定された位置に前記オブジェクトを描画すると共に、視点から見て前記オブジェクトと前記輪郭描画用オブジェクトとが重なる部分を除いて前記第2ステップで決定された位置に前記輪郭描画用オブジェクトを任意の輪郭色で描画する第3ステップと、を実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。

請求項2

前記第3ステップが、前記第2ステップで決定された位置に、前記輪郭描画用オブジェクト、前記オブジェクトの順で、前記輪郭描画用オブジェクト及び前記オブジェクトを描画するステップであることを特徴とする請求項1記載のコンピュータ読み取り可能な記録媒体。

請求項3

前記第3ステップが、Zバッファを用いた隠面消去処理を行って、前記第2ステップで決定された位置に前記オブジェクトを描画すると共に、前記第2ステップで決定された位置に前記輪郭描画用オブジェクトを任意の輪郭色で描画するステップ、であることを特徴とする請求項1記載のコンピュータ読み取り可能な記録媒体。

請求項4

前記第1ステップが、前記オブジェクトのサイズを拡大して輪郭描画用オブジェクトを生成するステップであることを特徴とする請求項1記載のコンピュータ読み取り可能な記録媒体。

請求項5

前記第2ステップが、視点から見て前記第1ステップで生成された前記輪郭描画用オブジェクトが前記オブジェクトの縁の外側に現れるように、前記輪郭描画用オブジェクト及び前記オブジェクトの位置を決定するステップ、であることを特徴とする請求項1記載のコンピュータ読み取り可能な記録媒体。

請求項6

前記第3ステップが、前記第2ステップで決定された位置に前記オブジェクトを描画すると共に、視点から見て前記オブジェクトと前記輪郭描画用オブジェクトとが重なる部分を除いて前記第2ステップで決定された位置に前記輪郭描画用オブジェクトをテクスチャマッピングを用いて描画するステップであることを特徴とする請求項1記載のコンピュータ読み取り可能な記録媒体。

請求項7

前記第3ステップが、前記第2ステップで決定された位置に前記オブジェクトを描画すると共に、視点から見て前記オブジェクトと前記輪郭描画用オブジェクトとが重なる部分を除いて前記第2ステップで決定された位置に前記輪郭描画用オブジェクトを、時間に応じて変化させたテクスチャによるテクスチャマッピングを用いて描画するステップ、であることを特徴とする請求項1記載のコンピュータ読み取り可能な記録媒体。

請求項8

複数のポリゴンにより構成されるオブジェクトを描画する、ビデオゲーム用のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、前記コンピュータに、前記オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する第1ステップと、視点から見て前記オブジェクトの後ろに前記第1ステップで生成された前記輪郭描画用オブジェクトが配置されるように、前記輪郭描画用オブジェクト及び前記オブジェクトを構成する各ポリゴンの視点からの距離を設定する第2ステップと、前記第2ステップで設定された視点からの距離が遠い順に前記各ポリゴンを順序付けることにより得られる、前記各ポリゴンの描画順番に従って、前記オブジェクトを構成する各ポリゴンを描画すると共に、前記輪郭描画用オブジェクトを構成する各ポリゴンを任意の輪郭色で描画する第3ステップと、を実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。

請求項9

複数のポリゴンにより構成されるオブジェクトを描画する、ビデオゲーム用のプログラムを記録したコンピュータ読み取り可能な記録媒体であって、前記コンピュータに、前記オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する第1ステップと、視点から見て前記オブジェクトの後ろに前記第1ステップで生成された前記輪郭描画用オブジェクトが配置されるように、前記輪郭描画用オブジェクト及び前記オブジェクトを構成する各ポリゴンの視点からの距離を設定する第2ステップと、画素毎に、当該画素に投影可能なポリゴンのうち前記第2ステップで設定された視点からの距離が最も近いポリゴンに従って描画処理を行う際に、画素に投影されるポリゴンが前記オブジェクトを構成するポリゴンである場合は当該ポリゴンに従って当該画素を描画すると共に、画素に投影されるポリゴンが前記輪郭描画用オブジェクトを構成するポリゴンである場合は当該画素を任意の輪郭色で描画する第3ステップと、を実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。

請求項10

仮想空間におけるオブジェクトを描画する、ビデオゲームにおけるオブジェクト描画方法であって、前記オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する第1ステップと、視点から見て前記オブジェクトの後ろに前記第1ステップで生成された前記輪郭描画用オブジェクトが配置されるように、前記輪郭描画用オブジェクト及び前記オブジェクトの位置を決定する第2ステップと、前記第2ステップで決定された位置に前記オブジェクトを描画すると共に、視点から見て前記オブジェクトと前記輪郭描画用オブジェクトとが重なる部分を除いて前記第2ステップで決定された位置に前記輪郭描画用オブジェクトを任意の輪郭色で描画する第3ステップと、を含むことを特徴とするビデオゲームにおけるオブジェクト描画方法。

請求項11

前記第3ステップが、前記第2ステップで決定された位置に、前記輪郭描画用オブジェクト、前記オブジェクトの順で、前記輪郭描画用オブジェクト及び前記オブジェクトを描画するステップであることを特徴とする請求項10記載のビデオゲームにおけるオブジェクト描画方法。

請求項12

複数のポリゴンにより構成されるオブジェクトを描画する、ビデオゲームにおけるオブジェクト描画方法であって、前記オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する第1ステップと、視点から見て前記オブジェクトの後ろに前記第1ステップで生成された前記輪郭描画用オブジェクトが配置されるように、前記輪郭描画用オブジェクト及び前記オブジェクトを構成する各ポリゴンの視点からの距離を設定する第2ステップと、前記第2ステップで設定された視点からの距離が遠い順に前記各ポリゴンを順序付けることにより得られる、前記各ポリゴンの描画順番に従って、前記オブジェクトを構成する各ポリゴンを描画すると共に、前記輪郭描画用オブジェクトを構成する各ポリゴンを任意の輪郭色で描画する第3ステップと、を含むことを特徴とする、ビデオゲームにおけるオブジェクト描画方法。

請求項13

複数のポリゴンにより構成されるオブジェクトを描画する、ビデオゲームにおけるオブジェクト描画方法であって、前記オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する第1ステップと、視点から見て前記オブジェクトの後ろに前記第1ステップで生成された前記輪郭描画用オブジェクトが配置されるように、前記輪郭描画用オブジェクト及び前記オブジェクトを構成する各ポリゴンの視点からの距離を設定する第2ステップと、画素毎に、当該画素に投影可能なポリゴンのうち前記第2ステップで設定された視点からの距離が最も近いポリゴンに従って描画処理を行う際に、画素に投影されるポリゴンが前記オブジェクトを構成するポリゴンである場合は当該ポリゴンに従って当該画素を描画すると共に、画素に投影されるポリゴンが前記輪郭描画用オブジェクトを構成するポリゴンである場合は当該画素を任意の輪郭色で描画する第3ステップと、を含むことを特徴とする、ビデオゲームにおけるオブジェクト描画方法。

請求項14

仮想空間におけるオブジェクトを描画するビデオゲーム装置であって、前記オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する生成手段と、視点から見て前記オブジェクトの後ろに前記生成手段により生成された前記輪郭描画用オブジェクトが配置されるように、前記輪郭描画用オブジェクト及び前記オブジェクトの位置を決定する位置決定手段と、前記位置決定手段により決定された位置に前記オブジェクトを描画すると共に、視点から見て前記オブジェクトと前記輪郭描画用オブジェクトとが重なる部分を除いて前記位置決定手段により決定された位置に前記輪郭描画用オブジェクトを任意の輪郭色で描画する描画手段と、を有することを特徴とするビデオゲーム装置。

請求項15

前記描画手段が、前記位置決定手段により決定された位置に、前記輪郭描画用オブジェクト、前記オブジェクトの順で、前記輪郭描画用オブジェクト及び前記オブジェクトを描画することを特徴とする請求項14記載のビデオゲーム装置。

請求項16

複数のポリゴンにより構成されるオブジェクトを描画するビデオゲーム装置であって、前記オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する生成手段と、視点から見て前記オブジェクトの後ろに前記生成手段により生成された前記輪郭描画用オブジェクトが配置されるように、前記輪郭描画用オブジェクト及び前記オブジェクトを構成する各ポリゴンの視点からの距離を設定する設定手段と、前記設定手段により設定された視点からの距離が遠い順に前記各ポリゴンを順序付けることにより得られる、前記各ポリゴンの描画順番に従って、前記オブジェクトを構成する各ポリゴンを描画すると共に、前記輪郭描画用オブジェクトを構成する各ポリゴンを任意の輪郭色で描画する描画手段と、を有することを特徴とするビデオゲーム装置。

請求項17

複数のポリゴンにより構成されるオブジェクトを描画するビデオゲーム装置であって、前記オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する生成手段と、視点から見て前記オブジェクトの後ろに前記生成手段により生成された前記輪郭描画用オブジェクトが配置されるように、前記輪郭描画用オブジェクト及び前記オブジェクトを構成する各ポリゴンの視点からの距離を設定する設定手段と、画素毎に、当該画素に投影可能なポリゴンのうち前記設定手段により設定された視点からの距離が最も近いポリゴンに従って描画処理を行う際に、画素に投影されるポリゴンが前記オブジェクトを構成するポリゴンである場合は当該ポリゴンに従って当該画素を描画すると共に、画素に投影されるポリゴンが前記輪郭描画用オブジェクトを構成するポリゴンである場合は当該画素を任意の輪郭色で描画する描画手段と、を有することを特徴とするビデオゲーム装置。

請求項18

仮想空間におけるオブジェクトを描画するビデオゲーム装置であって、コンピュータと、前記コンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体と、を有し、前記プログラムは、前記コンピュータに、前記オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する生成処理と、視点から見て前記オブジェクトの後ろに前記生成処理において生成された前記輪郭描画用オブジェクトが配置されるように、前記輪郭描画用オブジェクト及び前記オブジェクトの位置を決定する位置決定処理と、前記位置決定処理において決定された位置に前記オブジェクトを描画すると共に、視点から見て前記オブジェクトと前記輪郭描画用オブジェクトとが重なる部分を除いて前記位置決定処理において決定された位置に前記輪郭描画用オブジェクトを任意の輪郭色で描画する描画処理と、を実行させることを特徴とするビデオゲーム装置。

--

0001

本発明は、ビデオゲームに関し、より詳しくは、仮想空間におけるオブジェクト輪郭を描画する技術に関する。

背景技術

0002

近年、ビデオゲームの分野で非写実的レンダリング(non-photorealistic rendering)の技術が研究されている。非写実的レンダリング技術は、例えばカートゥーン(Cartoon)と呼ばれるアニメーション画像CG(Computer Graphics)で表現しようとするものである。非写実的レンダリング技術の中のひとつの技術として、3次元物体を2次元画像として描画する際に、3次元物体の輪郭を描画する技術がある。

0003

例えば、特開平7−85310号公報には、以下に示す技術が示されている。すなわち、多面体近似で与えられる3次元物体を2次元画像として表示する際に、多面体の各面を構成する辺を単位として、辺毎に輪郭として表示すべき辺であるか否かを所定のアルゴリズムに基づいて判断する。そして判断結果に基づいて輪郭として表示する辺を検出し、検出した辺の線種や、線幅、又は線色を変えて表示することにより多面体の輪郭を表示する。

0004

また、特開平7−160905号公報には、以下に示す技術が示されている。すなわち、多面体近似で与えられる3次元物体を2次元画像として表示する際に、表示された多面体を構成する多角形の辺を表示画面の画素単位で追跡する。辺毎に輪郭として表示すべき辺であるか否かを所定のアルゴリズムに基づいて判断する。そして判断結果に基づいて輪郭として表示する辺を検出し、検出した辺の線色を変えて表示することにより物体の輪郭を表示する。

発明が解決しようとする課題

0005

従来技術によれば、輪郭を表示するためには、表示対象となる多角形や3次元物体(オブジェクト)を面や多角形の辺単位まで分解して、辺毎に輪郭として表示すべき辺であるか否かを判断しなければならなかった。また、判断の結果に基づいて表示対象となるオブジェクトの辺を強調表示しなければならなかった。

0006

つまり、輪郭描画の対象となるオブジェクトに対して輪郭となる辺を検出する処理を実施し、検出結果に基づいてオブジェクトの辺を強調表示しなければ、輪郭を表示することができなかった。

0007

本発明の目的は、輪郭描画の対象となるオブジェクトに対して輪郭を検出する処理を実施することなく、オブジェクトに輪郭を描画することが可能な輪郭描画技術を提供することである。

課題を解決するための手段

0008

本発明の第1の態様に係る、仮想空間におけるオブジェクトを描画するビデオゲームにおけるオブジェクト描画方法は、オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する第1ステップと、視点から見てオブジェクトの後ろに第1ステップで生成された輪郭描画用オブジェクトが配置されるように、輪郭描画用オブジェクト及びオブジェクトの位置を決定する第2ステップと、第2ステップで決定された位置にオブジェクトを描画すると共に、視点から見てオブジェクトと輪郭描画用オブジェクトとが重なる部分を除いて第2ステップで決定された位置に輪郭描画用オブジェクトを任意の輪郭色で描画する第3ステップとを含む。

0009

輪郭描画用オブジェクトを導入することにより、輪郭描画の対象となるオブジェクトに対して輪郭を検出する処理を実施することなく、当該オブジェクトの輪郭を描画できるようになる。

0010

なお、第2ステップで決定される輪郭描画用オブジェクトの位置をオブジェクトの位置に設定し、オブジェクトの位置を通常より前に設定することも可能である。また輪郭描画用オブジェクトの位置を、既に位置が設定されたオブジェクトの後ろに設定することも可能である。すなわち、視点から見て相対的に、オブジェクトの後ろに輪郭描画用オブジェクトが配置されるようにオブジェクト及び輪郭描画用オブジェクトの位置が設定されていればよい。

0011

上で述べた第3ステップを、第2ステップで決定された位置に、輪郭描画用オブジェクト、オブジェクトの順で、輪郭描画用オブジェクト及びオブジェクトを描画するステップとするような構成も可能である。

0012

また、上で述べた第3ステップを、Zバッファを用いた隠面消去処理を行って、第2ステップで決定された位置にオブジェクトを描画すると共に、第2ステップで決定された位置に輪郭描画用オブジェクトを任意の輪郭色にて描画するステップとするような構成も可能である。Zバッファを用いた描画手法に対しても本発明を適用することができる。

0013

上で述べた第1ステップを、オブジェクトを拡大して輪郭描画用オブジェクトを生成するステップとするような構成も可能である。輪郭描画用オブジェクトには、オブジェクトとそのサイズのみが異なる場合が存在する。また、形状も多少異なる場合も存在する。

0014

上で述べた第2ステップを、視点から見て第1ステップで生成された輪郭描画用オブジェクトがオブジェクトの縁の外側に現れるように、輪郭描画用オブジェクト及びオブジェクトの位置を決定するステップとする構成も可能である。

0015

また、上で述べた第3ステップを、第2ステップで決定された位置にオブジェクトを描画すると共に、視点から見てオブジェクトと輪郭描画用オブジェクトとが重なる部分を除いて第2ステップで決定された位置に輪郭描画用オブジェクトをテクスチャマッピングを用いて描画するステップとすることも可能である。

0016

さらに、この第3ステップを、第2ステップで決定された位置にオブジェクトを描画すると共に、視点から見てオブジェクトと輪郭描画用オブジェクトとが重なる部分を除いて第2ステップで決定された位置に輪郭描画用オブジェクトを、時間に応じて変化させたテクスチャによるテクスチャマッピングを用いて描画するステップとすることも可能である。この構成により、例えばオブジェクトの輪郭を時間に応じて動的に変化させて描画することができるようになる。時間に応じて変化させたテクスチャではなく、複数のテクスチャを切り換えて使用する場合もある。

0017

本発明の第2の態様に係る、複数のポリゴンにより構成されるオブジェクトを描画する、ビデオゲームにおけるオブジェクト描画方法は、オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する第1ステップと、視点から見てオブジェクトの後ろに第1ステップで生成された輪郭描画用オブジェクトが配置されるように、輪郭描画用オブジェクト及びオブジェクトを構成する各ポリゴンの視点からの距離を設定する第2ステップと、第2ステップで設定された視点からの距離が遠い順に各ポリゴンを順序付けることにより得られる、各ポリゴンの描画順番に従って、オブジェクトを構成する各ポリゴンを描画すると共に、輪郭描画用オブジェクトを構成する各ポリゴンを任意の輪郭色で描画する第3ステップとを含む。いわゆるZソート法により描画する場合を示している。

0018

本発明の第3の態様に係るビデオゲームにおけるオブジェクト描画方法は、オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する第1ステップと、視点から見てオブジェクトの後ろに第1ステップで生成された輪郭描画用オブジェクトが配置されるように、輪郭描画用オブジェクト及びオブジェクトを構成する各ポリゴンの視点からの距離を設定する第2ステップと、画素毎に、当該画素に投影可能なポリゴンのうち第2ステップで設定された視点からの距離が最も近いポリゴンに従って描画処理を行う際に、画素に投影されるポリゴンがオブジェクトを構成するポリゴンである場合は当該ポリゴンに従って当該画素を描画すると共に、画素に投影されるポリゴンが輪描画用オブジェクトを構成するポリゴンである場合は当該画素を任意の輪郭色で描画する描画手段とを備える。いわゆるZバッファ法を使用した場合を示している。

0019

本発明の第1乃至第3の態様に係るビデオゲームにおけるオブジェクト描画方法をコンピュータに実行させるプログラムを作成することは可能である。その際、第1乃至第3の態様に対する上記のような変形は、当該プログラムに対しても応用可能である。本発明に係るプログラムは、例えばCD−ROM(Compact Disc - Read Only Memory)、DVD(Digital Versatile Disc)、フロッピーディスクメモリカートリッジメモリハードディスクなどの記録媒体又は記憶装置に格納される。記録媒体又は記憶装置に格納されるプログラムをコンピュータに読み込ませることで以下で述べるビデオゲーム装置を実現できる。また、記録媒体によって本発明に係るプログラムをソフトウエア製品として装置と独立して容易に配布販売することができるようになる。さらに、コンピュータなどのハードウエアを用いて本発明に係るプログラムを実行することにより、コンピュータ等のハードウエアで本発明のグラフィックス技術が容易に実施できるようになる。

0020

本発明の第4の態様に係る、仮想空間におけるオブジェクトを描画するビデオゲーム装置は、オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する生成手段と、視点から見てオブジェクトの後ろに生成手段により生成された輪郭描画用オブジェクトが配置されるように、輪郭描画用オブジェクト及びオブジェクトの位置を決定する位置決定手段と、位置決定手段により決定された位置にオブジェクトを描画すると共に、視点から見てオブジェクトと輪郭描画用オブジェクトとが重なる部分を除いて位置決定手段により決定された位置に輪郭描画用オブジェクトを任意の輪郭色で描画する描画手段とを有する。

0021

上で述べた描画手段を、位置決定手段により決定された位置に、輪郭描画用オブジェクト、オブジェクトの順で、輪郭描画用オブジェクト及びオブジェクトを描画するような構成とすることも可能である。

0022

本発明の第5の態様に係る、複数のポリゴンにより構成されるオブジェクトを描画するビデオゲーム装置は、オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する生成手段と、視点から見てオブジェクトの後ろに生成手段により生成された輪郭描画用オブジェクトが配置されるように、輪郭描画用オブジェクト及びオブジェクトを構成する各ポリゴンの視点からの距離を設定する設定手段と、設定手段により設定された視点からの距離が遠い順に各ポリゴンを順序付けることにより得られる、各ポリゴンの描画順番に従って、オブジェクトを構成する各ポリゴンを描画すると共に、輪郭描画用オブジェクトを構成する各ポリゴンを任意の輪郭色で描画する描画手段とを有する。

0023

本発明の第6の態様に係るビデオゲーム装置は、オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する生成手段と、視点から見てオブジェクトの後ろに生成手段により生成された輪郭描画用オブジェクトが配置されるように、輪郭描画用オブジェクト及びオブジェクトを構成する各ポリゴンの視点からの距離を設定する設定手段と、画素毎に、当該画素に投影可能なポリゴンのうち設定手段により設定された視点からの距離が最も近いポリゴンに従って描画処理を行う際に、画素に投影されるポリゴンがオブジェクトを構成するポリゴンである場合は当該ポリゴンに従って当該画素を描画すると共に、画素に投影されるポリゴンが輪郭描画用オブジェクトを構成するポリゴンである場合は当該画素を任意の輪郭色で描画する描画手段とを有する。

0024

本発明の第7の態様に係る、仮想空間におけるオブジェクトを描画するビデオゲーム装置は、コンピュータと、コンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体とを有し、本プログラムは、コンピュータに、オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する生成処理と、視点から見てオブジェクトの後ろに生成処理において生成された輪郭描画用オブジェクトが配置されるように、輪郭描画用オブジェクト及びオブジェクトの位置を決定する位置決定処理と、位置決定処理において決定された位置にオブジェクトを描画すると共に、視点から見てオブジェクトと輪郭描画用オブジェクトとが重なる部分を除いて位置決定処理において決定された位置に輪郭描画用オブジェクトを任意の輪郭色で描画する描画処理とを実行させる。

発明を実施するための最良の形態

0025

本発明をコンピュータ・プログラムにより実施する場合において当該コンピュータ・プログラムを実行する家庭用ゲーム機101の一例を図1に示す。家庭用ゲーム機101は、例えば内部バス119に接続された演算処理部103、RAM(Random Access Memory)105、サウンド処理部109、グラフィックス処理部111、CD−ROMドライブ113、通信インターフェース115、及びインターフェース部117を備える。グラフィックス処理部111は、フレームバッファ112を備える。

0026

家庭用ゲーム機101のサウンド処理部109及びグラフィックス処理部111は表示画面120を有するTVセット121に接続されている。また、CD−ROMドライブ113にはCD−ROMドライブ113に対して着脱自在なCD−ROM131が装着されている。通信インターフェース115はネットワーク151と通信媒体141を介して接続される。インターフェース部117には、操作ボタンを備えたキーパッド161及びメモリカード171が接続される。

0027

演算処理部103は、CPUやROM(Read Only Memory)などを含み、CD−ROM131上に格納されたプログラムを実行し、家庭用ゲーム機101の制御を行う。RAM105は、演算処理部103のワークエリアである。メモリカード171は、プログラムにより参照されるデータを保存するための記憶領域である。サウンド処理部109は、演算処理部103により実行されているプログラムがサウンド出力を行うよう指示している場合に、その指示を解釈して、TVセット121にサウンド信号を出力する。

0028

グラフィックス処理部111は、演算処理部103から出力される描画命令に従って、画像データを生成してフレームバッファ112に書き込む。そして、書き込んだ画像データを表示画面120に表示するための信号をTVセット121に出力する。CD−ROMドライブ113は、CD−ROM131上のプログラム及びデータを読み出す。通信インターフェース115は、通信媒体141を介してネットワーク151に接続され、他のコンピュータ等との間で行われるデータ通信入出力制御を行う。インターフェース部117は、キーパッド161からの入力をRAM105に出力し、演算処理部103がキーパッド161からの入力を解釈して演算処理を実施する。

0029

本発明に係るプログラム及びデータは最初例えばCD−ROM131に記憶されている。そして、このプログラム及びデータは実行時にCD−ROMドライブ113により読み出されて、RAM105に転送される。演算処理部103はRAM105にロードされた、本発明に係るプログラム及びデータを処理し、描画命令をグラフィックス処理部111に出力する。なお、中間的なデータはRAM105に記憶される。グラフィックス処理部111は演算処理部103からの描画命令に従って処理を行い、画像データをフレームバッファ112に書き込み、表示画面120に表示するための信号をTVセット121に出力する。

0030

以上のような家庭用ゲーム機101において実行される本発明のプログラムのアルゴリズム及び使用されるデータについて以下で詳しく述べる。

0031

(実施の形態1)例えばCD−ROM131に記録されていた本発明に係るプログラム及びデータが、CD−ROMドライブ113によりRAM105にロードされ、本発明に係るプログラムが実行されている場合におけるRAM105の状態を図2に示す。本実施の形態においてRAM105には、少なくともプログラム記憶領域1050と、関連データ記憶領域1052と、ワークエリア1060とが含まれる。プログラム記憶領域1050に記憶されるプログラムについては後に説明する。関連データ記憶領域1052には、ポリゴンテーブル1054と、頂点テーブル1056と、アウトライン制御テーブル1058とが含まれる。ワークエリア1060には、ソートテーブル1062が含まれる。

0032

関連データ記憶領域1052に含まれるポリゴンテーブル1054の一例を図3に示す。ポリゴンテーブル1054は、描画対象となるオブジェクトと、そのオブジェクトを構成するポリゴンと、そのポリゴンを構成する頂点とを特定するためのテーブルである。描画対象となるオブジェクトを特定するために、オブジェクト識別番号を格納する欄541が設けられている。図3の例ではM1というオブジェクト識別番号が示されている。

0033

オブジェクトを構成するポリゴンを特定するために、ポリゴン識別番号を格納する欄543が設けられている。図3の例では、オブジェクトM1を構成するポリゴンとして、P1、P2及びP3というポリゴン識別番号が示されている。

0034

ポリゴンを構成する頂点を特定するために、頂点識別番号を格納する欄545が設けられている。図3の例では、ポリゴンP1を構成する頂点として、V1、V2及びV3という頂点識別番号が示されている。また、ポリゴンP2を構成する頂点として、V3、V2及びV4という頂点識別番号が示されている。加えて、ポリゴンP3を構成する頂点として、V4、V5及びV3という頂点識別番号が示されている。

0035

例えば描画対象となるオブジェクトM1は、図4に示すようにポリゴンの集合で構成されている。ポリゴンテーブル1054においてオブジェクトM1を構成するポリゴンの識別番号は、オブジェクトM1に対応するポリゴン識別番号の欄543に格納される。また、各ポリゴンを構成する頂点の識別番号は、各ポリゴンに対応する頂点識別番号の欄545に格納される。

0036

なお、図4に示されているように、オブジェクトには基準位置Cs(X0,Y0,Z0)が設定されており、各ポリゴンの位置はこの基準位置Csからの変位にて定義される。また、後に説明するが、輪郭描画用オブジェクトの位置を決定する際にもオブジェクトの基準位置は用いられる。

0037

関連データ記憶領域1052に含まれる頂点テーブル1056の一例を図5に示す。頂点テーブル1056は、描画対象となるオブジェクトと、そのオブジェクトを構成するポリゴンの頂点と、その頂点の座標値と、テクスチャ座標とを特定するためのテーブルである。描画対象となるオブジェクトを特定するために、オブジェクト識別番号を格納する欄561が設けられている。図5の例ではM1というオブジェクト識別番号が示されている。

0038

オブジェクトを構成するポリゴンの頂点を特定するために、頂点識別番号を格納する欄563が設けられている。図5の例ではV1、V2、V3、V4及びV5という頂点識別番号が示されている。各頂点の座標値を特定するために頂点データを格納する欄565が設けられている。図5の例では、頂点V1の座標値は(X1,Y1,Z1)である。頂点V2の座標値は(X2,Y2,Z2)である。頂点V3の座標値は(X3,Y3,Z3)である。頂点V4の座標値は(X4,Y4,Z4)である。頂点V5の座標値は(X5,Y5,Z5)である。

0039

各頂点のテクスチャ座標を特定するためにテクスチャデータの欄567が設けられている。図5の例では、頂点V1のテクスチャ座標は(U1,V1)である。頂点V2のテクスチャ座標は(U2,V2)である。頂点V3のテクスチャ座標は(U3,V3)である。頂点V4のテクスチャ座標は(U4,V4)である。頂点V5のテクスチャ座標は(U5,V5)である。

0040

関連データ記憶領域1052に含まれるアウトライン制御テーブル1058の一例を図6に示す。アウトライン制御テーブル1058は、輪郭描画の対象となるオブジェクト毎に、輪郭描画に必要なデータを格納するためのテーブルである。図6におけるオブジェクト識別番号の欄581には、輪郭描画の対象となるオブジェクトのオブジェクト識別番号が格納される。図6の例では、オブジェクトM1、M3及びM8が輪郭描画の対象となるオブジェクトとして指定されている。

0041

図6における拡大率の欄583には、輪郭描画の対象となるオブジェクトに対して生成される輪郭描画用オブジェクトの、元のオブジェクトに対する拡大率が格納される。図6の例では、オブジェクトM1に対する輪郭描画用オブジェクトはオブジェクトM1を1.05倍拡大することにより生成される。オブジェクトM3に対する輪郭描画用オブジェクトはオブジェクトM3を1.10倍拡大することにより生成される。オブジェクトM8に対する輪郭描画用オブジェクトはオブジェクトM8を1.25倍拡大することにより生成される。

0042

図6における色データの欄585には、輪郭描画の対象となるオブジェクト毎に、そのオブジェクトの輪郭色が格納される。なお、図6では輪郭色は単色である。図6の例では、オブジェクトM1の輪郭色は(Ra,Ga,Ba)である。オブジェクトM3の輪郭色は(Rb,Gb,Bb)である。単色の輪郭色として黒、白、、青など任意の色が設定可能である。オブジェクトM8の輪郭色は(Rc,Gc,Bc)である。

0043

図6における座標調整値の欄587には、例えば輪郭描画の対象となるオブジェクトに均等に輪郭が付されるように輪郭描画用オブジェクトを移動させるための座標調整値が格納される。座標調整値はワールド座標系における値である。

0044

通常、拡大率の欄583に格納されている拡大率で輪郭描画の対象となるオブジェクトを拡大して輪郭描画用オブジェクトを生成するだけでは、輪郭描画の対象となるオブジェクトには均等に輪郭が付されない。輪郭描画用オブジェクトの基準位置を、輪郭描画の対象となるオブジェクトの基準位置から、座標調整値の欄587に格納された座標調整値だけ移動させ、輪郭描画の対象となるオブジェクトに均等に輪郭が付されるようにする。

0045

但し、必ずしも輪郭描画の対象となるオブジェクトに均一に輪郭を付する必要は無い。例えば、ある部分だけ太い輪郭を付するように意図する場合には、ある部分だけ太い輪郭が実現できるように座標調整値を決定し、この座標調整値の欄587に格納する。

0046

図6の例では、オブジェクトM1の輪郭描画用オブジェクトの座標調整値は(Xa,Ya,Za)である。オブジェクトM3の輪郭描画用オブジェクトの座標調整値は(Xb,Yb,Zb)である。オブジェクトM8の輪郭描画用オブジェクトの座標調整値は(Xc,Yc,Zc)である。

0047

図6におけるデプス調整値の欄589には、後に述べるソートテーブルの先頭アドレス値をずらすための調整値が格納される。輪郭描画用オブジェクトは、視点から見て、輪郭描画の対象となるオブジェクトの後ろに位置が決定される。結果的に、輪郭描画の対象となるオブジェクトはそのまま描画され、輪郭描画用オブジェクトは視点から見て輪郭描画の対象となるオブジェクトと重ならない部分のみが描画されることになる。

0048

輪郭描画用オブジェクトの位置を視点から見て輪郭描画の対象となるオブジェクトの後ろに設定するため、輪郭描画用オブジェクトを構成するポリゴンの各頂点の座標を調整してもよいが、処理量が多くなる。ここでは、隠面消去法としてZソート法を用いる。Zソート法で用いられるソートテーブルにおいて、輪郭描画用オブジェクトのポリゴンの格納位置を、ソートテーブルの先頭アドレスをずらすことにより調整する。ソートテーブルの先頭アドレスをずらすことによって、輪郭描画用オブジェクトの位置を視点から見て輪郭描画の対象となるオブジェクトの後ろに設定する。

0049

図6の例では、オブジェクトM1に対応する輪郭描画用オブジェクトの各ポリゴンをソートテーブルに登録する際のデプス調整値はDaである。オブジェクトM2に対応する輪郭描画用オブジェクトの各ポリゴンをソートテーブルに登録する際のデプス調整値はDbである。オブジェクトM8に対応する輪郭描画用オブジェクトの各ポリゴンをソートテーブルに登録する際のデプス調整値はDcである。

0050

なお、輪郭描画用オブジェクトの位置は視点から見て相対的に輪郭描画の対象となる元のオブジェクトの後ろであれば良い。従って、輪郭描画用オブジェクトの位置を元のオブジェクトに設定し、元のオブジェクトの位置をより視点に近い位置に設定する構成であってもよい。

0051

関連データ記憶領域1052に含まれるソートテーブル1062の一例を図7に示す。ソートテーブル1062は、隠面消去の一手法であるZソート法を利用する際に、描画順番を決定するためのテーブルである。描画されるポリゴンのポリゴン識別番号は、描画されるポリゴンの視点からの距離であるデプス値に対応するアドレスに登録される。結果として、ポリゴンはデプス値によりソートされる。デプス値が大きいほど視点から遠く、描画はデプス値の大きい順に実施される。その結果、奥の方にあるポリゴンの画像は手前にあるポリゴンの画像で重ね描きされ、隠面消去が実施される。

0052

図7の例では、ソートテーブル1062の先頭アドレス621に、デプス値0のポリゴン識別番号が格納されるようになっている。実際には、ポリゴンのデプス値に対応するアドレスにそのポリゴンのデータへのポインタが格納される。

0053

図7において、先頭アドレス621である0x80010000とデプス値の欄623とは本実施の形態を理解するためにのみに示してある。通常、ポリゴン識別番号の欄625のみが存在する。すなわち、図7中点線で示された部分は本実施の形態の理解を容易にするために示されている。ここではデプス値の値が小さいほど視点に近く、1023が最も遠いものとする。ポリゴン識別番号の欄625の各アドレスは、先頭アドレスからデプス値の小さい順に順次割り当てられる。

0054

なお、ポリゴンのデプス値には、例えばポリゴンを構成する各頂点のデプス値の平均値を用いる。但し、ポリゴンを構成する頂点のデプス値のうち最も大きいデプス値を使用しても良い。また、最も小さいデプス値を使用してもよい。さらに、ポリゴン内の所定の点、例えば重心のデプス値を使用することもできる。

0055

次に本実施の形態におけるプログラムのアルゴリズムについて図8乃至図16を用いて説明する。

0056

演算処理部103は、起動時に、ROM等に記憶されているオペレーティングシステムに基づき、CD−ROMドライブ113を介してCD−ROM131から画像処理やゲームの実行に必要なプログラムやデータを読み出し、RAM105に転送させる。そして、演算処理部103は、RAM105に転送されたプログラムを実行することにより、以下に記載する処理を実現する。

0057

なお、家庭用ゲーム装置101で行われる制御及び処理の中には、演算処理部103以外の回路が演算処理部103と協働して実際の制御及び処理を行っている場合もある。説明の便宜上、以下では、演算処理部103が関係する制御及び処理は、演算処理部103が直接的に実行しているものとして説明する。

0058

また、画像処理やゲームを実行するために必要なプログラムやデータは、実際には演算制御部103からの命令に従って処理の進行状況に応じて順次CD−ROM131から読み出されてRAM105に転送される。しかし、以下に示す説明では、発明の理解を容易にするため、CD−ROM131からのデータの読み出しや、RAM105への転送に関する記述は省略している。

0059

表示に関するメインフロー図8に示されている。まず、表示させるオブジェクトが特定される(ステップS1)。次に、表示させるオブジェクトのうち1つのオブジェクトに対して描画演算処理が実施される(ステップS2)。本描画演算処理については後に詳しく述べる。そして表示させる全オブジェクトについて描画演算処理が終了したか否かが判断される(ステップS3)。

0060

もし、表示させるオブジェクトのうち未処理のオブジェクトが存在する場合にはステップS2に戻る。もし、表示させる全オブジェクトを処理した場合には、フレームバッファ112に描画処理を実施する(ステップS4)。そして、フレームバッファ112に格納された画像データをTVセット121の表示画面120に表示する(ステップS5)。

0061

本実施の形態において描画処理は、Zソート法による隠面消去処理を伴うものである。すなわち、図7に示したソートテーブル1062の中で最も視点から遠い、すなわちデプス値が最も大きいポリゴンから順番にフレームバッファ112に描き込む。1つのポリゴンの描画は以下に示す処理にて実施される。ポリゴンを構成する各頂点の座標及び色に基づいて補間処理を行い、ポリゴン内部の各画素の色を計算する。テクスチャマッピングを行わない場合には、上述のように計算された色が各画素の色としてフレームバッファ112に描き込まれる。一方、テクスチャマッピングを行う場合には、ポリゴンを構成する各頂点のテクスチャ座標に基づいて補間処理を行い、ポリゴン内部の各画素のテクスチャ座標を計算する。そして、テクスチャ座標のテクセル値と上で計算された画素の色とを用いて生成された色が各画素の色としてフレームバッファ112に描き込まれる。

0062

輪郭描画用オブジェクトは視点から見て輪郭描画の対象となるオブジェクトより後ろに位置が決定される。後ろに位置する輪郭描画用オブジェクトが輪郭描画の対象となるオブジェクトと全く被さらない場合には、輪郭描画用オブジェクトの方が輪郭描画の対象となるオブジェクトより先に描画される。

0063

一方、後ろに位置する輪郭描画用オブジェクトが輪郭描画の対象となるオブジェクトと被さっている場合には、ソートテーブル1062の中で最も視点から遠いポリゴンから順番にフレームバッファ112に描き込まれる。従って、輪郭描画の対象となるオブジェクトのポリゴンには輪郭描画用オブジェクトのポリゴンより先にフレームバッファ112に描き込まれるものもある。

0064

次に図9を用いてステップS2の描画演算処理の説明を行う。まず、表示する1つの未処理オブジェクトを特定する(ステップS11)。特定したオブジェクトについて現在の姿勢を計算する(ステップS13)。オブジェクトを構成するポリゴンの位置を現在の姿勢に合わせて変更する。そして、現在の処理が輪郭描画用オブジェクトに対する処理であるか判断する(ステップS15)。なお、最初は、ステップS11において1つの未処理オブジェクトを特定しているので、輪郭描画用オブジェクトに対する処理ではない。よって、ステップS17に移行する。

0065

ステップS17では、特定された1つの未処理オブジェクトのデータを用意する。そして、用意された1つの未処理オブジェクトのデータを透視変換する(ステップS21)。透視変換とは、ワールド座標系のポリゴンの各頂点の座標値をスクリーン座標系における座標値に変換するものである。透視変換により、特定された1つの未処理オブジェクトを構成する各ポリゴンについて、ポリゴンの各頂点における視点からの距離、すなわちデプス値が算出される。

0066

次に特定された1つの未処理オブジェクトを構成する各ポリゴンについて以下の処理を行う。すなわち、ポリゴン毎にポリゴンの各頂点におけるデプス値から、ポリゴンのデプス値を計算する。例えば、三角形ポリゴンの場合、3頂点の3つのデプス値の平均値を求め、ポリゴンのデプス値とする。計算されたポリゴンのデプス値を用いて、ソートテーブル1062の先頭アドレスから登録先アドレスを算出し、各ポリゴンをソートテーブル1062に登録する(ステップS23)。なお、実際にソートテーブル1062に登録されるのは、ポリゴンのデータへのポインタである。特定された1つの未処理オブジェクトを構成する各ポリゴンをソートテーブル1062に登録する際には、ソートテーブル1062の先頭アドレスをずらすことはしない。初期の設定のまま登録する。

0067

ソートテーブル1062にポリゴンを登録する際の処理を説明するための図を図10に示す。先頭アドレス621は図7と同じである。既にデプス値15に対応するアドレスにはP4というポリゴンが登録されている。なおP4といったポリゴン識別番号の後ろには括弧で囲まれたデプス値を記載している。デプス値の図示は後の説明のためであって、実際にはデプス値は格納されない。デプス値16のアドレスにはポリゴンP2が登録されている。デプス値17に対応するアドレスにはポリゴンP1及びP3が登録されている。デプス値19に対応するアドレスにはポリゴンP5が登録されている。ここでポリゴンP6を登録する際には、ポリゴンP6のデプス値18というデータを用いて、デプス値18に対応するアドレスに、ポリゴンP6を登録する。

0068

図9戻り、次に、特定された1つの未処理オブジェクトを処理していたのか判断する(ステップS25)。最初の実行時には特定された1つの未処理オブジェクトを処理していたので、ステップS29に移行する。ステップS29では、特定された1つの未処理オブジェクトが輪郭描画の対象となっているか判断する。ここでは図6のアウトライン制御テーブル1058を参照して、アウトライン制御テーブル1058に登録されているオブジェクトであるか否かを判断すれば良い。

0069

もし、アウトライン制御テーブル1058に登録されていないオブジェクトであれば、輪郭を描画する処理は必要無いので、処理を終了する。一方、アウトライン制御テーブル1058に登録されているオブジェクトであれば、ステップS31に移行する。ステップS31では、処理の対象を、特定された1つの未処理オブジェクトから、対応する輪郭描画用オブジェクトに切り換える。

0070

ステップS15に戻って、再度、輪郭描画用オブジェクトに対する処理であるか判断する。ステップS31で輪郭描画用オブジェクトに処理の対象を切り換えているので、今回はステップS19に移行する。ステップS19ではアウトライン設定処理を行う。アウトライン設定処理については図11を用いて詳細に説明する。

0071

図11ではまず特定された1つの未処理オブジェクト(輪郭描画の対象となる元のオブジェクト)のデータを複写し、輪郭描画用オブジェクトのデータとして生成する(ステップS35)。次に、輪郭描画用オブジェクトのサイズを元のオブジェクトよりも拡大する(ステップS37)。輪郭描画用オブジェクトのサイズの拡大にはアウトライン制御テーブル1058の拡大率の欄583の値を使用する。なお、各ポリゴンの頂点の法線ベクトルの方向に当該頂点を移動させることにより、サイズの拡大を実現することができる。そして、輪郭描画用オブジェクトの色データを変更する(ステップS39)。輪郭描画用オブジェクトの色データには、アウトライン制御テーブル1058の色データの欄585のデータを使用する。色データの欄585の色が輪郭色として設定される。

0072

加えて輪郭描画用オブジェクトの座標データの調整を行う(ステップS41)。座標データの調整にはアウトライン制御テーブル1058の座標調整値の欄587の座標値を用いる。すなわち、輪郭描画用オブジェクトの基準位置を座標調整値だけずらす。そして、生成された輪郭描画用オブジェクトのデータを透視変換用に用意する(ステップS43)。最後に、ソートテーブル1062の先頭アドレス値をアウトライン制御テーブル1058のデプス調整値の欄589のデータで調整する(ステップS45)。すなわち、ソートテーブル1062の先頭アドレスの値をずらす。この段階で図9のステップS21に戻る。

0073

図9では、用意した輪郭描画用オブジェクトのデータを透視変換する(ステップS21)。透視変換により、輪郭描画用オブジェクトを構成する各ポリゴンについて、ポリゴンの各頂点における視点からの距離、すなわちデプス値が算出される。

0074

次に輪郭描画用オブジェクトを構成する各ポリゴンについて以下の処理を行う。すなわち、ポリゴン毎にポリゴンの各頂点おけるデプス値から、ポリゴンのデプス値を計算する。例えば、三角形ポリゴンの場合、3頂点の3つのデプス値の平均を求め、ポリゴンのデプス値とする。計算されたポリゴンのデプス値を用いて、ソートテーブル1062の先頭アドレスから登録先アドレスを算出し、各ポリゴンをソートテーブル1062に登録する(ステップS23)。

0075

図11のステップS45でソートテーブル1062の先頭アドレスが調整されている。先頭アドレスが調整された状態を図12に示す。図12のソートテーブル1062では、先頭アドレス621が0x80010000から0x80010010(先頭アドレス621')に、16バイトだけずらされている。すなわち、今までデプス値2に対応するアドレスが先頭アドレス621'になり、以下全て繰り下がるようになる。なお、ステップS45のように先頭アドレスをずらすので、ソートテーブル1062の上下には余分な領域を確保しておく必要がある。

0076

図12においてデプス値15に対応するアドレスには先頭アドレス調整前にデプス値17であったポリゴンP1及びP3が登録されている。デプス値16に対応するアドレスには先頭アドレス調整前にデプス値18であったポリゴンP6が登録されている。デプス値17に対応するアドレスには先頭アドレス調整前にデプス値19であったポリゴンP5が登録されている。

0077

また、デプス値17に対応するアドレスには、輪郭描画用オブジェクトを構成するポリゴンであってデプス値17のポリゴンPc1が登録されている。デプス値19の輪郭描画用オブジェクトを構成するポリゴンPc2をソートテーブル1062に登録する場合には、図12のように先頭アドレスがずらされた後のデプス値19に対応するアドレスに登録する。

0078

図9に戻って、現在処理しているオブジェクトがステップS11で特定した1つの未処理オブジェクトの処理であるか判断する(ステップS25)。現在は輪郭描画用オブジェクトを処理しているので、ステップS27に移行する。ステップS27では輪郭描画用オブジェクトの処理終了に応じてソートテーブル1062の先頭アドレスを元に戻す(ステップS27)。このように輪郭描画用オブジェクトを処理している期間のみ、ソートテーブルの先頭アドレスは調整されている。そして、処理を終了する。

0079

なおステップS27終了段階のソートテーブル1062の一例を図13に示す。図13のソートテーブル1062では、先頭アドレスの値が元に戻っている。ソートテーブル1062において、デプス値15に対応するアドレスにはポリゴンP4が登録されている。デプス値16に対応するアドレスにはポリゴンP2が登録されている。デプス値17に対応するアドレスにはポリゴンP1及びポリゴンP3が登録されている。デプス値17に対応するアドレスには、輪郭描画用オブジェクトを構成するポリゴンPc4も登録されている。但し、括弧で示されているように、ポリゴンPc4のデプス値は実際には15である。すなわち、輪郭描画用オブジェクトを構成するポリゴンPc4は、実際よりデプス値2だけ後ろに登録されている。結果的に、輪郭描画用オブジェクトは対応するオブジェクトよりデプス値で2だけ後ろに配置されることになる。

0080

デプス値18に対応するアドレスにはポリゴンP6及びポリゴンPc2が登録されている。ポリゴンPc2の実際のデプス値は16であるから、デプス値2だけ後ろに登録されている。デプス値19に対応するアドレスにはポリゴンP5、Pc1及びPc3が登録されている。ポリゴンPc1及びPc3の実際のデプス値は17であるから、デプス値2だけ後ろに登録されている。

0081

以上のように表示するオブジェクト及び輪郭描画用オブジェクトの各ポリゴンがソートテーブル1062に登録される。そして、ソートテーブル1062において最も視点から遠いポリゴンから順番に図8のステップS4でフレームバッファ112に描画される。そして、ステップS5で、フレームバッファ112に描画された画像がTVセット121の表示画面120に表示される。

0082

上で述べた処理では処理速度を速めることを優先するために、ソートテーブル1062の先頭アドレスを調整することにより輪郭描画用オブジェクトのデプス値を変更していた。しかし、先頭アドレスを調整せずに、輪郭描画用オブジェクトを構成する各ポリゴンのデプス値を直接調整することも可能である。また、ポリゴンの各頂点のデプス値を調整することも可能である。なお、調整には、加算引き算掛け算等の演算処理を含む。

0083

さらに上で述べた処理では輪郭描画用オブジェクトを構成するポリゴンを処理する期間中にソートテーブル1062の先頭アドレスを調整していた。しかし、輪郭描画用オブジェクトに対応するオブジェクト(輪郭描画の対象となる元のオブジェクト)を処理する期間中にソートテーブル1062の先頭アドレスを調整する構成とすることも可能である。すなわち、元のオブジェクトを構成する各ポリゴンがソートテーブル1062において実際の位置よりも、より視点に近い位置に登録されるようにする構成である。ソートテーブル1062の先頭アドレスの調整でなく、オブジェクトを構成する各ポリゴンのデプス値を直接変更することも可能である。

0084

実施の形態1によれば、オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する(ステップS35)。次に、オブジェクトに対して例えば縁全体に均等な太さの輪郭が付されるように輪郭描画用オブジェクトの位置が微調整される(ステップS41)。その後、Zソート法を用いてオブジェクト及び輪郭描画用オブジェクトを描画する(ステップS4)。ここで、オブジェクトを構成する各ポリゴンについては通常通りソートテーブル1062に登録する。一方、輪郭描画用オブジェクトを構成する各ポリゴンについてはソートテーブル1062の先頭アドレスをずらして実際のデプス値より視点から見て後ろになるようにソートテーブル1062に登録する(ステップS23)。

0085

従って、ソートテーブル1062内の視点から遠いポリゴンから順に描画されるので、輪郭描画用オブジェクトに対して元のオブジェクトが上書きされる。最終的に輪郭描画用オブジェクトは、オブジェクトの縁全体を囲む部分だけが残り、この部分が輪郭色で描画されることとなる。

0086

結果的に、輪郭描画の対象となるオブジェクトに対して輪郭を検出する処理を実施することなく、オブジェクトに対して輪郭を描画することができる。

0087

例えば、既に述べた従来の手法によれば、輪郭を描画するためには、表示対象となる多面体や三次元物体を面や多角形の辺単位まで分解して、辺毎に所定のアルゴリズムに基づいて輪郭として表示すべき辺であるか否かを判断する必要がある。そのため、輪郭を描画するための処理が非常に複雑であった。

0088

これに対して本発明によれば、輪郭描画の対象であるオブジェクトを拡大すると共に任意の輪郭色を設定した輪郭描画用オブジェクトを生成してオブジェクトの後ろに位置を設定すれば良いだけである。従って、従来に比して輪郭を描画する処理が簡素化され、輪郭描画に関する処理速度を高めることができる。

0089

輪郭描画に関する処理速度を高めることは、ビデオゲームに対して特に有用である。ビデオゲームでは、操作入力等に応じて、表示されるオブジェクトの位置や形状、カメラワークなどが逐次変化する。そして、この逐次変化する内容に応じた投影画像を即座に画面に表示しなければならない。輪郭描画に関する処理が複雑であると、たとえ輪郭を描画できたとしても画像の表示速度が遅くなってしまう。従って、表示速度を低下させることなく輪郭描画を行うためには、輪郭描画に関する手順が簡単であることが重要となるからである。

0090

図6に示したアウトライン制御テーブル1058では、輪郭描画用オブジェクトは単色で描画されることを前提に、色データの欄585に輪郭色のデータが格納されていた。しかし、輪郭描画用オブジェクトにテクスチャマッピングを行うことも可能である。例えば、アウトライン制御テーブル1058の色データの欄585に、マッピングするテクスチャに関するデータ、例えばテクスチャの識別情報を格納しておく。そして、輪郭描画用オブジェクトに対応するオブジェクトを構成するポリゴンの各頂点に設定されたテクスチャ座標をそのまま使用して、色データの欄585に示されたテクスチャを輪郭描画用オブジェクトを構成する各ポリゴンにマッピングする。

0091

この場合、図11のステップS39の処理はスキップされる。また、図8のステップS4では、通常のオブジェクトと同様に輪郭描画用オブジェクトを構成するポリゴンについても、ポリゴンを構成する各頂点のテクスチャ座標に基づいて補間処理を行い、ポリゴン内部の各画素のテクスチャ座標を計算する。そして、テクスチャ座標のテクセル値と、ポリゴンの各頂点に設定された色から計算された画素に対する色とを用いて生成された色が各画素の色としてフレームバッファ112に描き込まれる。

0092

さらに、輪郭描画用オブジェクトへのテクスチャマッピングで使用されるテクスチャを工夫すればオブジェクトの輪郭部分描画態様を動的に変化させることができるようになる。例えば、図14に示す処理を図8のステップS4と並行して実施する。まず、CD−ROM131に格納された輪郭描画用のテクスチャデータをフレームバッファ112のテクスチャ領域に読み出して展開する(ステップS51)。そして、以下の処理を処理終了まで繰り返す。繰り返される処理はテクスチャの書き換え処理である(ステップS55)。

0093

テクスチャの書き換え処理には様々な方法がある。第1の方法は、図15に示したように、例えば横方向の縞模様を含むテクスチャを横方向に区分された複数の領域に分割して、順次領域が上方向に移動していくように書き換える方法である。最も上の領域は最も下に移動する。例えば図15のように一番下の領域から一番上の領域まで、1からn(nは自然数)の番号を付した場合には、図16のように領域を移動させる。

0094

すなわち、時刻tでは図15に示した状態で、時刻t+1になると、nの領域を最も下に移動させ、1からn−1までの全ての領域を一つ上に移動させる。時刻t+2では、n−1の領域を最も下に移動させ、n及び1からn−2までの全ての領域を一つ上に移動させる。以上のような処理を繰り返すものである。以上のような処理によりオブジェクトの輪郭部分において縞模様がゆらゆらと上方向に移動するような状態が表現できる。なお、テクスチャを縦方向に区分された複数の領域に分割し、左又は右方向に領域を時間に応じて移動させることも可能である。

0095

第2の方法は、時間に応じてテクスチャの明度を変化させるものである。例えば、テクスチャのパレットを時間に応じて変更することによりテクスチャの明度を変化させる。テクスチャの各テクセル値を時間に応じて直接変更するような手法も可能である。明度を変化させるだけであれば、テクスチャを書き換えない方法もある。例えば輪郭描画用オブジェクトのポリゴンの明度を時間に応じて変化させれば、テクスチャをマッピングしても最終的な明度は変化する。このように明度が変化する場合には、オブジェクトの輪郭部分がゆっくり点滅するような状態を表現することができる。

0096

従って、単にオブジェクトの輪郭を描画するだけでなく、例えば、ゲームキャラクタオーラを発している状態を表現することができるようになる。また、複数のゲームキャラクタのうち、注目するゲームキャラクタの輪郭部分の描画態様を動的に変化させるようにすれば、注目キャラクタをユーザに分かり易く告知することもできる。

0097

以上のように、オブジェクトの輪郭描画を工夫することにより、オブジェクトの強調表示の態様を充実させることもできる。

0098

(実施の形態2)実施の形態1は描画処理の際にZソート法を使用した隠面消去を行っていた。本実施の形態では描画の際にZバッファを使用した隠面消去を行う。

0099

本実施の形態において、例えばCD−ROM131に記録されていた本発明に係るプログラム及びデータが、CD−ROMドライブ113によりRAM105にロードされ、本発明に係るプログラムが実行されている場合におけるRAM105の状態を図17に示す。本実施の形態においてRAM105には、少なくともプログラム記憶領域1050と、関連データ記憶領域1052と、ワークエリア1060とが含まれる。プログラム記憶領域1050に記憶されるプログラムについては後に説明する。

0100

関連データ記憶領域1052には、ポリゴンテーブル1054と、頂点テーブル1056と、アウトライン制御テーブル1058とが含まれる。ここまでは実施の形態1と同じである。ワークエリア1060には、ソートテーブル1062の代わりに、ピクセルテーブル1064及びZバッファ1066が含まれる。但し、ピクセルテーブル1064及びZバッファ1066は、フレームバッファ112に設けられる場合もある。

0101

関連データ記憶領域1052に含まれるポリゴンテーブル1054は実施の形態1と同じであり、図3に示されている。ポリゴンテーブル1054は、描画対象となるオブジェクトと、そのオブジェクトを構成するポリゴンと、そのポリゴンを構成する頂点とを特定するためのテーブルである。

0102

関連データ記憶領域1052に含まれる頂点テーブル1056は実施の形態1と同じであり、図5に示されている。頂点テーブル1056は、描画対象となるオブジェクトと、そのオブジェクトを構成するポリゴンの頂点と、その頂点の座標値と、テクスチャ座標とを特定するためのテーブルである。

0103

関連データ記憶領域1052に含まれるアウトライン制御テーブル1058は図6に示されている限りにおいては実施の形態1と同じである。アウトライン制御テーブル1058は、輪郭描画の対象となるオブジェクト毎に、輪郭描画に必要なデータを格納するためのテーブルである。

0104

オブジェクト識別番号の欄581には、輪郭描画の対象となるオブジェクトのオブジェクト識別番号が格納される。拡大率の欄583には、輪郭描画の対象となるオブジェクトに対して生成される輪郭描画用オブジェクトの、元のオブジェクトに対する拡大率が格納される。色データの欄585には、輪郭描画の対象となるオブジェクト毎に、そのオブジェクトの輪郭色が格納される。

0105

座標調整値の欄587には、例えば輪郭描画の対象となるオブジェクトに均等に輪郭が付されるように輪郭描画用オブジェクトを移動させるための座標調整値が格納される。座標調整値はワールド座標系における値である。デプス調整値の欄589には、透視変換後における各ポリゴンのに対して、ポリゴンの各頂点のZ値を調整するための値が格納される。

0106

本実施の形態では、後に述べるが輪郭描画用オブジェクトを構成するポリゴンを描画する際には、透視変換後にポリゴンの各頂点のデプス値を視点から見て後ろにずらす。後ろにずらすことにより、実施の形態1と同じように、対応するオブジェクトより輪郭描画用オブジェクトが後ろに配置されるようにする。以上述べたような処理を行うことにより、輪郭描画用オブジェクトは対応するオブジェクトと重ならない部分のみが描画されるようになる。

0107

ワークエリア1060に含まれるピクセルテーブル1064の一例を図18に示す。ピクセルテーブル1064は、各画素の表示すべき色データを格納するためのテーブルである。図18に示したように、ピクセルテーブル1064には画素識別番号の欄641と色データ(R,G,B)の欄643とが設けられている。画素識別番号は、図19に示すように、表示画面120の画素ひとつひとつに付された識別番号である。図19のように縦240画素、横320画素の場合には、例えば左上の0から順番に右下の76799まで識別番号が付される。ピクセルテーブル1064では画素識別番号毎に色データが記憶される。

0108

ワークエリア1060に含まれるZバッファ1066の一例を図20に示す。Zバッファ1066は、画素毎に、ピクセルテーブル1064に格納された色データの元となるポリゴン内部の点(ポリゴンの頂点を含む)のZ値を格納するためのテーブルである。よって、Zバッファ1066には、画素識別番号の欄661とZ値の欄663が設けられている。

0109

次に本実施の形態におけるプログラムのアルゴリズムについて図8図21及び図22を用いて説明する。

0110

演算処理部103は、起動時に、ROM等に記憶されているオペレーティングシステムに基づき、CD−ROMドライブ113を介してCD−ROM131から画像処理やゲームの実行に必要なプログラムやデータを読み出し、RAM105に転送させる。そして、演算処理部103は、RAM105に転送されたプログラムを実行することにより、以下に記載する処理を実現する。

0111

なお、家庭用ゲーム装置101で行われる制御及び処理の中には、演算処理部103以外の回路が演算処理部103と協働して実際の制御及び処理を行っている場合もある。説明の便宜上、以下では、演算処理部103が関係する制御及び処理は、演算処理部103が直接的に実行しているものとして説明する。

0112

また、画像処理やゲームを実行するために必要なプログラムやデータは、実際には演算制御部103からの命令に従って処理の進行状況に応じて順次CD−ROM131から読み出されてRAM105に転送される。しかし、以下に示す説明では、発明の理解を容易にするため、CD−ROM131からのデータの読み出しや、RAM105への転送に関する記述は省略している。

0113

表示に関するメインフローは図8に示されている限りにおいて実施の形態1と同じである。まず、表示させるオブジェクトが特定される(ステップS1)。次に、表示させるオブジェクトのうち1つのオブジェクトに対して描画演算処理が実施される(ステップS2)。描画演算処理については後に詳しく述べる。そして表示させる全オブジェクトについて描画演算処理が終了したか否かが判断される(ステップS3)。もし、表示させるオブジェクトのうち未処理のオブジェクトが存在する場合にはステップS2に戻る。もし、表示させる全オブジェクトを処理した場合には、フレームバッファ112に描画処理を実施する(ステップS4)。そして、フレームバッファ112に格納された画像データをTVセット121の表示画面120に表示する(ステップS5)。

0114

本実施の形態ではZバッファ法を用いて描画処理を実施する。Zバッファ法では、描画すべきポリゴンのデータを含むディスプレイリストを用いてフレームバッファ112への描画処理を実行する。ディスプレイリストに含まれるポリゴンのデータには、ポリゴンの各頂点のスクリーン座標系における座標(デプス値を含む)、テクスチャ座標及び色データが含まれる。

0115

ステップS4では、ディスプレイリストから一つずつポリゴンのデータを取り出し、ポリゴンの各頂点の座標、テクスチャ座標及び色データに基づいて補間処理を行い、ポリゴン内部の点の座標、テクスチャ座標及び色データを計算する。この際、ポリゴン内部の点(ポリゴンの頂点を含む)の座標に含まれるデプス値と、当該ポリゴン内部の点の座標に対応する画素識別番号のZバッファ1066内のZ値とを比較する。そして、デプス値の方が小さな値を有している場合のみ後の処理を実施する。

0116

すなわち、デプス値を、ポリゴン内部の点の座標に対応する画素識別番号に対応してZバッファ1066のZ値の欄663に格納する。そして、テクスチャ座標を使用してテクセル値を取り出し、テクセル値と補間により得られた色データ(又はポリゴンの頂点の色データ)とを使用して描画すべき画素の色を計算する。画素の色は、ポリゴン内部の点の座標に対応する画素識別番号に対応してピクセルテーブル1064の色データの欄643に格納される。テクスチャを使用しない場合には、補間により得られた色データ(又はポリゴンの頂点の色データ)が、ポリゴン内部の点の座標に対応する画素識別番号に対応してピクセルテーブル1064の色データの欄643に格納される。

0117

従って、同一画素に対して投影されるポリゴン内部の点が複数存在する場合に、その中から最も視点に近いポリゴン内部の点の色データがピクセルテーブル1064に格納されることになる。視点に最も近いポリゴン内部の点が、元のオブジェクトを構成するポリゴン内部の点である場合には、元のオブジェクトを構成するポリゴン内部の点における色データが画素に対応する画素識別番号に対応してピクセルテーブル1064に格納される。

0118

一方、視点に最も近いポリゴン内部の点が、輪郭描画用オブジェクトを構成するポリゴン内部の点である場合には、輪郭描画用オブジェクトの輪郭色が、画素に対応する画素識別番号に対応してピクセルテーブル1064に格納される。なお、輪郭描画用オブジェクトの輪郭色は、輪郭描画用オブジェクトのポリゴンの色データである。

0119

次に図21を用いてステップS2の描画演算処理の説明を行う。最初に、表示する1つの未処理オブジェクトを特定する(ステップS71)。特定したオブジェクトについて現在の姿勢を計算する(ステップS73)。オブジェクトを構成するポリゴンの位置を現在の姿勢に合わせて変更する。そして、現在の処理が輪郭描画用オブジェクトに対する処理であるか判断する(ステップS75)。なお、最初は、ステップS71において1つの未処理オブジェクトを特定しているので、輪郭描画用オブジェクトに対する処理ではない。よって、ステップS77に移行する。

0120

ステップS77では、特定された1つの未処理オブジェクトのデータを用意する。そして、用意された1つの未処理オブジェクトのデータを透視変換する(ステップS81)。透視変換により、特定された1つの未処理オブジェクトを構成する各ポリゴンについて、ポリゴンの各頂点における視点からの距離、すなわちデプス値が算出される。

0121

次に、特定された1つの未処理オブジェクト(輪郭描画の対象となるオブジェクト)を構成する各ポリゴンについて、ポリゴンの各頂点におけるデプス値を、デプス調整値で調整する(ステップS83)。なお、特定された1つの未処理オブジェクトを処理している間はデプス調整値は0である。従って、実質的に本ステップはスキップされる。そして、特定された1つの未処理オブジェクトを構成する各ポリゴンのデータをディスプレイリストに加える(ステップS85)。

0122

次に、特定された1つの未処理オブジェクトを処理していたのか判断する(ステップS87)。最初の実行時には特定された1つの未処理オブジェクトを処理していたので、ステップS89に移行する。ステップS89では、特定された1つの未処理オブジェクトが輪郭描画の対象となっているか判断する。ここでは図6のアウトライン制御テーブル1058を参照して、アウトライン制御テーブル1058に登録されているオブジェクトであるか否かを判断すれば良い。

0123

もし、アウトライン制御テーブル1058に登録されていないオブジェクトであれば、輪郭を描画する必要は無いので、処理を終了する。一方、アウトライン制御テーブル1058に登録されているオブジェクトであれば、ステップS93に移行する。ステップS93では、処理の対象を、特定された1つの未処理オブジェクトに対応する輪郭描画用オブジェクトに切り換える。

0124

ステップS75に戻って、再度輪郭描画用オブジェクトに対する処理であるか判断する。ステップS93で輪郭描画用オブジェクトに処理の対象を切り換えているので、今回はステップS79に移行する。ステップS79ではアウトライン設定処理を行う。アウトライン設定処理については図22を用いて詳細に説明する。

0125

図22ではまず特定された1つの未処理オブジェクト(輪郭の描画対象となる元のオブジェクト)のデータを複写し、輪郭描画用オブジェクトのデータとして生成する(ステップS95)。次に、輪郭描画用オブジェクトのサイズを元のオブジェクトよりも拡大する(ステップS97)。サイズの拡大にはアウトライン制御テーブル1058の拡大率の欄583の値を使用する。そして、輪郭描画用オブジェクトの色データを変更する(ステップS99)。輪郭描画用オブジェクトの色データには、アウトライン制御テーブル1058の色データの欄585のデータを使用する。色データの欄585における色が輪郭色となる。

0126

次に輪郭描画用オブジェクトの座標データの調整を行う(ステップS101)。座標データの調整にはアウトライン制御テーブル1058の座標調整値の欄587の座標値を用いる。すなわち、輪郭描画用オブジェクトの基準位置を座標調整値だけずらす。そして、図21のステップS83で使用するデプス調整値の設定を行う(ステップS103)。デプス調整値にはアウトライン制御テーブル1058のデプス調整値の欄589の値を用いる。以上のようにして生成された輪郭描画用オブジェクトのデータを透視変換用に用意する(ステップS105)。この段階で図21のステップS81に戻る。

0127

図21では、用意した輪郭描画用オブジェクトのデータを透視変換する(ステップS81)。透視変換により、輪郭描画用オブジェクトを構成する各ポリゴンについて、ポリゴンの各頂点における視点からの距離、すなわちデプス値が算出される。そして、図22のステップS103で設定されたデプス調整値で、輪郭描画用オブジェクトを構成する各ポリゴンについて、ポリゴンの各頂点のデプス値を調整する。すなわち、輪郭描画用オブジェクトを構成する各ポリゴンを、輪郭描画の対象となる元のオブジェクトより後ろに配置する。そして、デプス調整値によりデプス値が調整された輪郭描画用オブジェクトの各ポリゴンのデータをディスプレイリストに加える(ステップS85)。

0128

次いで、現在処理しているオブジェクトがステップS71で特定した1つの未処理オブジェクトの処理であるか判断する(ステップS87)。現在は輪郭描画用オブジェクトを処理しているので、ステップS91に移行する。ステップS91では輪郭描画用オブジェクトの処理終了に応じてデプス調整値を0にリセットする(ステップS91)。そして、処理を終了する。

0129

以上の処理により、オブジェクトを構成するポリゴンについては通常通りディスプレイリストに登録される。一方、オブジェクトに対応する輪郭描画用オブジェクトを構成するポリゴンについては、オブジェクトより各頂点のデプス値を大きく設定して、ディスプレイリストに登録される。そして、ディスプレイリストに従って、Zバッファ法による隠面消去処理を行い、フレームバッファ112に画像を描画し、表示画面120に表示する。従って、視点から見てオブジェクトと重なる部分を除き輪郭描画用オブジェクトは、輪郭色で描画される。

0130

本実施の形態においても、相対的に輪郭描画用オブジェクトが、輪郭描画の対象となる元のオブジェクトの後ろに位置すれば良い。よって、輪郭描画の対象となる元のオブジェクトの処理における図21のステップS83で、輪郭描画の対象となる元のオブジェクトを構成するポリゴンの各頂点のデプス値を調整して、輪郭描画の対象となる元のオブジェクトが輪郭描画用オブジェクトより前に位置するように、すなわちより視点に近い位置になるように設定しても良い。

0131

実施の形態2によれば、オブジェクトより大きいサイズを有する輪郭描画用オブジェクトを生成する(ステップS97)。次に、オブジェクトに対して例えば縁全体に均等な太さの輪郭が付されるように輪郭描画用オブジェクトの位置が微調整される(ステップS101)。その後、Zバッファ法を用いてオブジェクト及び輪郭描画用オブジェクトを描画する(ステップS4)。ここで、オブジェクトを構成する各ポリゴンについては通常通りディスプレイリストに登録する。一方、輪郭描画用オブジェクトを構成する各ポリゴンについてはポリゴンの各頂点のデプス値を視点から見て後ろにずらした後にディスプレイリストに登録する(ステップS85)。

0132

従って、同一画素に投影されるポリゴンが複数存在し且つ視点から最も近いポリゴンが輪郭描画の対象となるオブジェクトを構成するポリゴンである場合には、輪郭描画の対象となるオブジェクトを構成するポリゴン内部の点の色データに従って画素が描画される。一方、同一画素に投影されるポリゴンが複数存在し且つ視点から最も近いポリゴンが輪郭描画用オブジェクトを構成するポリゴンである場合には、輪郭描画用オブジェクトを構成するポリゴン内部の点の色データに従って、すなわち輪郭色で画素が描画される。最終的に輪郭描画用オブジェクトは、オブジェクトの縁全体を囲む部分だけが残り、この部分が輪郭色で描画されることとなる。

0133

結果的に、輪郭描画の対象となるオブジェクトに対して輪郭を検出する処理を実施することなく、オブジェクトに対して輪郭を描画することができる。

0134

例えば、既に述べた従来の手法によれば、輪郭を描画するためには、表示対象となる多面体や三次元物体を面や多角形の辺単位まで分解して、辺毎に所定のアルゴリズムに基づいて輪郭として表示すべき辺であるか否かを判断する必要がある。そのため、輪郭を描画するための処理が非常に複雑であった。

0135

これに対して本発明によれば、輪郭描画の対象であるオブジェクトを拡大すると共に任意の輪郭色を設定した輪郭描画用オブジェクトを生成してオブジェクトの後ろに位置を設定すれば良いだけである。従って、従来に比して輪郭を描画する処理が簡素化され、輪郭描画に関する処理速度を高めることができる。

0136

輪郭描画に関する処理速度を高めることは、ビデオゲームに対して特に有用である。ビデオゲームでは、操作入力等に応じて、表示されるオブジェクトの位置や形状、カメラワークなどが逐次変化する。そして、この逐次変化する内容に応じた投影画像を即座に画面に表示しなければならない。輪郭描画に関する処理が複雑であると、たとえ輪郭を描画できたとしても画像の表示速度が遅くなってしまう。従って、表示速度を低下させることなく輪郭描画を行うためには、輪郭描画に関する手順が簡単であることが重要となるからである。

0137

実施の形態1で述べたように本実施の形態においても輪郭描画用オブジェクトにテクスチャマッピングを行うことが可能である。加えて、オブジェクトの輪郭部分の描画態様を動的に変化させるために、テクスチャマッピングで使用されるテクスチャを時間に応じて変化させることも可能である。また、テクスチャを変化させず、輪郭描画用オブジェクトを構成するポリゴンの各頂点に設定される色データの明度を時間に応じて変化させることも可能である。

0138

(その他の実施の形態)
(1)上の説明では、オブジェクトを、ビデオゲームのキャラクタモデル全体として説明してきた。しかし、オブジェクトをモデルの一部分として取り扱うことも可能である。例えば、人型のゲームキャラクタにおいてオブジェクトを頭部、胸部右腕部、左腕部等々と各部位単位に設定し、オブジェクト単位で輪郭を描画する処理を実行することも可能である。各部位単位にオブジェクトを設定すると、部位毎にデプス調整値を設定することにより、輪郭色や輪郭の太さをきめ細やかに設定することが可能となる。

0139

(2)上の説明ではオブジェクトを複製することにより輪郭描画用オブジェクトを生成していたが、オブジェクトを構成するポリゴンの数より、輪郭描画用オブジェクトを構成するポリゴンの数が少なくなるように、より簡易的に輪郭描画用オブジェクトを構成することも可能である。また、オブジェクトから輪郭描画用オブジェクトを生成することなく、別途輪郭描画用オブジェクトのデータを予め用意しておくことも可能である。

0140

(3)上の説明ではポリゴン、特に三角形ポリゴンを前提に処理を説明していた。しかし、オブジェクト及び輪郭描画用オブジェクトが、四角形以上の多角形ポリゴンを含む複数のポリゴンにて構成されるとすることも可能である。さらに、オブジェクト及び輪郭描画用オブジェクトが曲面を含む複数の面で構成され、各面が1又は複数のポリゴンで近似されて処理されるとしてもよい。

0141

(4)上の説明ではオブジェクトをアウトライン制御テーブル1058の拡大率の欄583に格納される拡大率の値に従って拡大し、輪郭描画用オブジェクトを生成していた。しかし、輪郭描画用オブジェクトのサイズを元のオブジェクトと同一として、元のオブジェクトのサイズを縮小してもよい。

0142

(5)上の説明では時間に応じてテクスチャを書き換える処理について説明していたが、複数のテクスチャを用意し、マッピングすべきテクスチャを時間に応じて切り換えてもよい。

0143

(6)使用するハードウエアの変更
図1は一例であって、様々な変更が可能である。通信インターフェース115を備えるか否かは任意である。本発明は直接サウンド処理には関係しないので、サウンド処理部109を備えている必要は無い。

0144

また、CD−ROMは記録媒体の一例であって、ROMのような内部メモリ、CD−ROM、DVD−ROM、メモリカートリッジ、フロッピーディスク、磁気ディスク、DVD−RAM等の他の記録媒体であってもよい。その場合にはCD−ROMドライブ113を、対応する媒体読み出し可能なドライブにする必要がある。

0145

さらに、以上は本発明をコンピュータ・プログラムにより実装した場合であるが、コンピュータ・プログラムと電子回路などの専用の装置の組み合せ、又は電子回路などの専用の装置のみによっても実装することは可能である。

0146

以上、本発明を実施の形態に基づいて具体的に説明したが、本発明は上記実施の形態に限定されるものではない。要旨を逸脱しない範囲で適宜変更可能である。例えば、上記実施の形態では、家庭用ゲーム機をプラットフォームとして本発明を実現した場合について述べたが、本発明は通常のコンピュータ、アーケードゲーム機などをプラットフォームとして実現しても良い。また、携帯情報端末カーナビゲーション・システム等をプラットフォームにして実現することも考えられる。

0147

また、本発明を実現するためのプログラムやデータは、コンピュータやゲーム機に対して着脱可能なCD−ROM等の記録媒体により提供される形態に限定されない。すなわち、本発明を実現するためのプログラムやデータを、図1に示す通信インターフェース115、通信回線141を介して接続されたネットワーク151上の他の機器側のメモリに記録し、プログラムやデータを通信回線141を介して必要に応じて順次RAM105に格納して使用する形態であってもよい。

0148

(表示例)図23に輪郭描画の対象となる元のオブジェクト10の表示例を示す。図23に示されるようにオブジェクト10には輪郭は付されていない。そこで図24に示すように、輪郭描画の対象となる元のオブジェクト10のサイズを拡大し(ステップS37)、所定の輪郭色を設定した輪郭描画用オブジェクト20を生成する(ステップS35、S39)。そして、上で述べたようにデプス値を調整し、輪郭描画用オブジェクト20を輪郭描画の対象である元のオブジェクト10の後ろに配置する(ステップS23)。適切なデプス調整値を選択すれば、図25に示すように、輪郭が付されたオブジェクト30を描画することができる(ステップS4)。図25では、オブジェクト10の右手の先端部分がオブジェクト10の体より前に来ているが、この右手の先端部分にも輪郭が付されている。

0149

デプス調整値による輪郭の違いを図26乃至図28にて説明する。図26はデプス調整値0、すなわちオブジェクト10と輪郭描画用オブジェクト20のデプス値が同じ場合の輪郭付オブジェクト32の表示例を示している。同じデプス値が設定されていると、フレームバッファ112に描き込まれる順番によって輪郭描画用オブジェクト20のポリゴンが描画される部分と、オブジェクト10のポリゴンが描画される部分とが生じる。よってオブジェクトの手の内部には本来現れるべきではない輪郭描画用オブジェクト20のポリゴンの色が描画されてしまっている。

0150

図27はデプス調整値12における輪郭付オブジェクト34の表示例である。デプス調整値は図25の場合と同じであり、オブジェクト10の体より前に位置するオブジェクト10の左手の先端部分の輪郭も表示される。また、デプス調整0における場合とは異なり、オブジェクト10の手の内部には輪郭描画用オブジェクトのポリゴンは描画されていない。

0151

図28はデプス調整値30における輪郭付オブジェクト36の表示例である。デプス調整値30の場合、輪郭描画用オブジェクト20のポリゴンの位置はオブジェクト10の体の部分のポリゴンよりも視点から見て後ろに位置するため、オブジェクト10の体の前に位置するオブジェクト10の左手の先端部分の輪郭は描画されていない。

0152

次に図23に示したオブジェクトの輪郭部分を時間に応じて動的に変化させて描画する場合を説明する。図29は、横縞模様のテクスチャをマッピングした輪郭描画用オブジェクト40の表示例を示している。輪郭描画用オブジェクト40を、適切なデプス調整値を選択して、図23に示したオブジェクト10の後ろに配置すれば、図30のように、横縞模様の輪郭が付されたオブジェクト50を描画することができるようになる。図14乃至図16で説明したようにテクスチャを時間に応じて書き換えれば、輪郭部分の横縞模様が徐々に上に移動していくように描画することができる。

0153

従って、単にオブジェクトの輪郭を描画するだけでなく、例えばゲームキャラクタがオーラを発している状態を表現すること等ができるようになる。また、複数のゲームキャラクタのうち、注目するゲームキャラクタの輪郭部分の描画態様を動的に変化させるようにすれば、注目キャラクタをユーザに分かり易く告知することもできる。

0154

以上説明したように、オブジェクトの輪郭描画を工夫することにより、オブジェクトの強調表示の態様を充実させることもできる。

0155

デプス調整値による輪郭の違いを図31乃至図33にて説明する。図31はデプス調整値0、すなわちオブジェクト10と輪郭描画用オブジェクト40のデプス値が同じ場合の輪郭付オブジェクト52の表示例を示している。同じデプス値が設定されていると、フレームバッファ112に描き込まれる順番によって輪郭描画用オブジェクト40のポリゴンが描画される部分と、オブジェクト10のポリゴンが描画される部分とが生じる。よってオブジェクトの手の内部には本来現れるべきではない輪郭描画用オブジェクト40のポリゴンの色が描画されてしまっている。

0156

図32はデプス調整値12における輪郭付オブジェクト54の表示例である。デプス調整値は図30の場合と同じであり、オブジェクト10の体より前に位置するオブジェクト10の左手の先端部分の輪郭も表示される。また、デプス調整0における場合とは異なり、オブジェクト10の左手の内部には輪郭描画用オブジェクト40のポリゴンは描画されていない。

0157

図33はデプス調整値30における輪郭付オブジェクト56の表示例である。デプス調整値30の場合、輪郭描画用オブジェクト40のポリゴンの位置はオブジェクト10の体の部分のポリゴンよりも視点から見て後ろに位置するため、オブジェクト10の体の前に位置するオブジェクト10の左手の先端部分の輪郭は描画されていない。

発明の効果

0158

以上述べたように本発明によれば、輪郭描画の対象となるオブジェクトに対して輪郭を検出する処理を実施することなく、オブジェクトに輪郭を描画することが可能となる。

図面の簡単な説明

0159

図1家庭用ゲーム機のブロック構成図である。
図2実施の形態1におけるRAMの状態を示すブロック図である。
図3ポリゴンテーブルの一例を示す図である。
図4オブジェクトの一例を示す図である。
図5頂点テーブルの一例を示す図である。
図6アウトライン制御テーブルの一例を示す図である。
図7ソートテーブルを説明するための模式図である。
図8実施の形態1及び2における表示処理フローを示すフローチャートである。
図9実施の形態1における描画演算処理の処理フローを示すフローチャートである。
図10ソートテーブルにオブジェクトを構成するポリゴンを登録する際の処理を説明するための模式図である。
図11実施の形態1におけるアウトライン設定処理の処理フローを示すフローチャートである。
図12ソートテーブルに輪郭描画用オブジェクトを構成するポリゴンを登録する際の処理を説明するための模式図である。
図13輪郭描画用オブジェクト及びオブジェクトのポリゴンを登録後、先頭アドレスを元に戻した状態におけるソートテーブルを説明するための模式図である。
図14テクスチャ制御処理の処理フローを示すフローチャートである。
図15時間に応じて変化するテクスチャの説明をするための模式図である。
図16時間に応じてどのようにテクスチャが変化するかを説明するための模式図である。
図17実施の形態2におけるRAMの状態を示すブロック図である。
図18ピクセルテーブルの一例を示す図である。
図19画素識別番号を説明するための模式図である。
図20Zバッファの一例を示す図である。
図21実施の形態2における描画演算処理の処理フローを示すフローチャートである。
図22実施の形態2におけるアウトライン設定処理の処理フローを示すフローチャートである。
図23輪郭描画の対象となるオブジェクトの一例を示す表示画像である。
図24単色の輪郭色を伴う輪郭描画用オブジェクトの一例を示す表示画像である。
図25輪郭付オブジェクトの一例を示す表示画像である。
図26デプス調整値0における輪郭付オブジェクトの一例を示す表示画像である。
図27デプス調整値12における輪郭付オブジェクトの一例を示す表示画像である。
図28デプス調整値30における輪郭付オブジェクトの一例を示す表示画像である。
図29横縞模様のテクスチャがマッピングされた輪郭描画用オブジェクトの一例を示す表示画像である。
図30横縞模様の輪郭付オブジェクトの一例を示す表示画像である。
図31デプス調整値0における横縞模様の輪郭付オブジェクトの一例を示す表示画像である。
図32デプス調整値12における横縞模様の輪郭付オブジェクトの一例を示す表示画像である。
図33デプス調整値30における横縞模様の輪郭付オブジェクトの一例を示す表示画像である。

--

0160

101家庭用ゲーム機103演算処理部
105 RAM 109サウンド処理部 112フレームバッファ
111グラフィックス処理部 113CD−ROMドライブ
115通信インターフェース117インターフェース部
119内部バス121TVセット120表示画面
131 CD−ROM 141通信媒体151ネットワーク
161キーパッド171メモリカード
1050プログラム記憶領域1052 関連データ記憶領域
1054ポリゴンテーブル 1056頂点テーブル
1058アウトライン制御テーブル 1060ワークエリア
1062ソートテーブル1064ピクセルテーブル
1066 Zバッファ

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ