(57)【特許請求の範囲】
【請求項１】
コンピュータに複数のポリゴンで構成されている３次元モデルの影のテクスチャ画像を生成する処理を実行させるための画像処理プログラムであって、
３次元モデルを配置する位置とカメラの位置との距離を求める距離計算工程と、
前記距離計算工程で求めた距離に応じて、使用する各頂点をどのようにしてリンクさせてポリゴンを生成するかを示すリンク情報を特定する特定工程と、
前記特定工程で特定したリンク情報を参照して３次元モデルを構成する各ポリゴンを決定し、決定したポリゴンにより３次元モデルを生成する生成工程と、
前記生成工程で生成された３次元モデルを用いて、当該３次元モデルの影を示すテクスチャ画像を生成するテクスチャ画像生成工程とを前記コンピュータに実行させるための画像処理プログラム。
【請求項２】
前記特定工程では、３次元モデルを配置する位置とカメラの位置との距離に応じて使用する各頂点をどのようにしてリンクさせてポリゴンを生成するかを示すリンク情報が登録されたテーブルから、前記距離計算工程で求めた距離に応じたリンク情報を特定することを特徴とする請求項１に記載の画像処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のポリゴンにより構成されている３次元モデル、当該３次元モデルの影を示すテクスチャ画像を生成する画像処理プログラムに関するものである。
【０００２】
【従来の技術】
最近、家庭用ゲーム機や業務用ゲーム機などで遊ぶことのできるゲームには、仮想の３次元空間内に設けられた３次元モデルとしてのゲームフィールドで、３次元モデルとしての自キャラクタ（プレーヤが操作するキャラクタ）をプレーヤが操作し、遊戯するタイプのものがある。また、一般に３次元モデルとしてはポリゴンにより構成されるポリゴンモデルが使用されている。
【０００３】
実際にポリゴンモデルをゲーム機内部で生成し、表示画面に表示する場合、ゲーム機は各ポリゴンの各頂点の座標値に対して平行移動、回転などのマトリクス計算処理を行う必要がある。またこの処理以降、各ポリゴンに対して行う処理もいくつかある。これらのことから、３次元モデルを構成するポリゴンの数（頂点の数）が多くなると、それだけゲーム機に対する処理の負荷は大きなものとなることがわかるが、多くのポリゴン（多くの頂点）を用いた３次元モデルは高精細なものとなる。
【０００４】
【発明が解決しようとする課題】
しかしこの高精細な３次元モデルがカメラの位置（上記ゲームフィールドにおけるプレーヤの視点位置）から比較的近い位置にある場合には、この高精細な３次元モデルをプレーヤに見せることができるが、高精細な３次元モデルがカメラの位置から比較的遠い場合には、画面の解像度などに起因して、プレーヤに対して高精細な３次元モデルを見せることができない。これはすなわち高精細な３次元モデルを生成するに要した処理の効果が得られないということになる。また、この問題は３次元モデルが高精細でない場合にも発生する問題である。
【０００５】
本発明はこのような点を考慮して成されたものであり、３次元モデルとカメラとの距離に応じて、３次元モデルを構成するポリゴンの数を変化させる画像処理プログラムを提供することを目的とする。
【０００６】
【課題を解決するための手段】
本発明の目的を達成するために、例えば本発明の画像処理プログラムは以下の構成を備える。
【０００７】
すなわち、コンピュータに複数のポリゴンで構成されている３次元モデルの影のテクスチャ画像を生成する処理を実行させるための画像処理プログラムであって、
３次元モデルを配置する位置とカメラの位置との距離を求める距離計算工程と、
前記距離計算工程で求めた距離に応じて、使用する各頂点をどのようにしてリンクさせてポリゴンを生成するかを示すリンク情報を特定する特定工程と、
前記特定工程で特定したリンク情報を参照して３次元モデルを構成する各ポリゴンを決定し、決定したポリゴンにより３次元モデルを生成する生成工程と、
前記生成工程で生成された３次元モデルを用いて、当該３次元モデルの影を示すテクスチャ画像を生成するテクスチャ画像生成工程とを前記コンピュータに実行させる。
【００１４】
【発明の実施の形態】
以下添付図面を参照して、本発明を好適な実施形態について詳細に説明する。
【００１５】
［第１の実施形態］
図１に本実施形態におけるゲーム装置の基本構成を示す。１０１はＣＰＵで、ＲＡＭ１０２にロードされたゲームプログラムやゲームデータを用いてゲームの進行処理を行ったり、後述のポリゴンモデル生成処理を行う。また、ＲＯＭ１０３に格納された本装置全体の制御を行うプログラムや、本装置の設定データなどを用いて本装置の起動やその後の制御を行う。
【００１６】
１０２はＲＡＭで、ＣＰＵ１０１が各処理を行うために使用するワークエリアを備えると共に、処理対象のデータを一時的に記憶したり、記憶媒体ドライブ１０６からロードされたゲームプログラムやゲームデータを記憶するエリアも備える。１０３はＲＯＭで、上述の通り、本装置全体の制御を行うプログラムや、本装置の設定データなどを格納する。１０４は操作部で、自キャラクタやカーソルなどを移動させる方向指示ボタンや、決定やキャンセルなどを入力するためのボタン群を備える。
【００１７】
１０５は表示部で、ＣＲＴや液晶画面などにより構成されており、ゲーム画面を表示する。１０６は記憶媒体ドライブで、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの後述の記憶媒体からゲームプログラムやゲームデータを読み込み、必要に応じてＲＡＭ１０２に出力する。１０７は記憶媒体で、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどにより構成されており、ゲームプログラム１０８やゲームデータ１０９を格納する。１０８はゲームプログラムで、ゲームの進行を制御するプログラムや、後述のポリゴンモデル生成処理を行うプログラムを含む。１０９はゲームデータで、自キャラクタを含む各種のキャラクタやゲームフィールドの３次元モデルのデータを含む。
【００１８】
１１０はサウンド処理部で、ゲームデータに含まれる効果音やバックグラウンドミュージックなどのデータをＤ／Ａ変換し、アナログ信号に変換するＤ／Ａ変換器と、Ｄ／Ａ変換器により変換されたアナログ信号を音として外部に出力するスピーカとで構成されている。１１１は上記各部をつなぐバスである。
【００１９】
図２は仮想の３次元空間内におけるカメラと３次元モデルとの関係を示す図である。２０１は３次元モデルで、複数の３角形のポリゴンにより構成された円錐のモデルである。以下の説明では３次元モデルとして円錐のモデルを使用するが、これに限定されるものではないことは、以下の説明により明らかである。
【００２０】
２０２はプレーヤの視点としてのカメラである。また３次元モデル２０１の位置（３次元モデル２０１を代表する位置）とカメラ２０２の位置（プレーヤの視点位置）との距離を以下、Ｌとする。Ｌが比較的小さい値の場合、カメラ２０２から見た３次元モデル２０１の画像は表示部１０５には図３に示す如く表示される。しかしＬが比較的大きい値の場合、カメラ２０２から見た３次元モデル２０１の画像は表示部１０５には図４に示す如く表示される。図３，図４は夫々カメラ２０２から見た３次元モデル２０１を示す図である。
【００２１】
図３，４に示すとおり、カメラ２０２と３次元モデル２０１との距離Ｌの値が比較的大きい値の場合、３次元モデル２０１の形状などの詳細は表示部１０５の解像度などによって表示部１０５を見たプレーヤには認知され難い。これは距離Ｌの値が大きくなるに従って、３次元モデルの形状などの詳細情報が必要ではなくなることを意味する。
【００２２】
そこで本実施形態におけるゲーム装置は、カメラ２０２と３次元モデル２０１との距離Ｌの値に応じたポリゴン数で構成される３次元モデルを生成する。以下、このポリゴンモデル生成処理について説明する。
【００２３】
図５は距離Ｌの範囲に応じた３次元モデル２０１のデータ（モデルデータ）を保持するテーブルを示す図である。同テーブルは上記ゲームデータ１０９に含まれており、記憶媒体１０７に保持されている。また、モデルデータは一般には各ポリゴンを定義する各頂点の座標値、各ポリゴンの法線ベクトルの方向成分などが含まれているので、ＣＰＵ１０１はこのモデルデータを用いて公知の方法により３次元モデルを生成することができる。またこのモデルデータは予め作成され、図６に示す如くゲームデータとして記憶媒体１０７に保持されている。
【００２４】
図５において例えば０≦Ｌ＜Ｌ１の場合、ＣＰＵ１０１はファイル名「ＭｏｄｅｌＡ．ｄａｔ」で特定されるモデルデータを用いて、３次元モデル２０１を生成する。またＬ１≦Ｌ＜Ｌ２の場合、ＣＰＵ１０１はファイル名「ＭｏｄｅｌＢ．ｄａｔ」で特定されるモデルデータを用いて、３次元モデル２０１を生成する。また、「ＭｏｄｅｌＡ．ｄａｔ」に基づいて生成される３次元モデルを構成するポリゴンの数Ａと「ＭｏｄｅｌＢ．ｄａｔ」に基づいて生成される３次元モデルのポリゴンの数ＢとではＡ＞Ｂとなっており、一般にはＬの範囲の上限、下限の値が共に大きくなるに従ってそのポリゴン数は少なくなる。しかしＡとＢとの差分があまりに大きいと距離Ｌの変化に伴っていきなり３次元モデルの形状が変化するので、その差分は３次元モデルを表示する表示部１０５を見ているプレーヤに認知し難いレベルにする。
【００２５】
以上の説明により、距離Ｌが大きくなるに従ってより少ないポリゴン数の３次元モデルが生成されるので、距離Ｌが大きい値である場合にポリゴン数を変化させずに３次元モデルを生成する処理に比べて、視覚的に効果が得られ難い余分な処理は行っていないので、ゲーム装置に与える処理の負荷を軽減することができる。また軽減した分を他の処理に回すこともできる。
【００２６】
図７に、距離Ｌに応じて変化する３次元モデルを示す。図７（ａ）は０≦Ｌ＜Ｌ１の場合の３次元モデルを示す図で、図７（ｂ）はＬ１≦Ｌ＜Ｌ２の場合の３次元モデルを示す図で、図７（ｃ）はＬ２≦Ｌ＜Ｌ３の場合の３次元モデルを示す図である。図７（ｂ）に示した３次元モデルは図７（ａ）に示した３次元モデルよりも少ないポリゴンにより構成されており、図７（ｃ）に示した３次元モデルは図７（ａ）に示した３次元モデルよりも少ないポリゴンにより構成されている。
【００２７】
図８に、上記ポリゴンモデル生成処理のフローチャートを示す。なお同フローチャートに従った処理はメインのゲーム処理から、３次元モデルを生成するためのサブルーチンとして実行される。
【００２８】
まずステップＳ８０１において、これから生成する３次元モデルの配置位置とカメラの位置との距離Ｌを求める。次にステップＳ８０２では、図５に例示したテーブルを参照して、ステップＳ８０１で求めた距離Ｌに対応するモデルデータを特定する。そしてステップＳ８０３では、特定したモデルデータを用いて３次元モデルを生成し、メインのゲーム処理にリターンする。なお生成された３次元モデルはテクスチャマッピングなどの処理を施され、表示部１０５に表示される。
【００２９】
以上の説明により、本実施形態におけるゲーム装置は、３次元モデルとカメラからの距離が大きくなるに従って３次元モデルを構成するポリゴンの数を少なくすることで、ゲーム画面を見ているプレーヤに対して違和感を与えることなくゲーム装置に対して与える処理の負荷を軽減させることができる。また３次元モデルとカメラとの距離に応じて段階的に３次元モデルを構成するポリゴンの数を少なくしているので、距離の変化による３次元モデルの形状の変化がプレーヤに与える違和感は少ないものとなる。
【００３０】
なお、図５に示したテーブルでは３次元モデルのデータ、影のモデルのデータを夫々ファイル名で特定していたがこれに限定されるものではなく、他にも例えばＩＤ番号などを用いてもよい。
【００３１】
［第２の実施形態］
本実施形態では、第１の実施形態で説明した３次元モデルの生成方法をこの３次元モデルの影を生成する処理に適用した、影の生成処理について説明する。
【００３２】
一般の影の生成方法についてまず説明する。図９は影を生成する仮想空間を示す図である。同図において９０１は光源で、３次元モデル９０２を含む仮想空間内に光を照射する。９０５は照射方向を示すベクトルである。９０２は３次元モデル、９０３は光源９０１の位置から見て３次元モデルの背後に位置する壁、９０４は３次元モデル９０１が立っている床である。同図に示した仮想空間において影は、３次元モデルの背後の方向（３次元モデルの位置から見て光源９０１とは逆の方向）に床と壁（背景となるモデル）の表面に生じる。
【００３３】
この空間において影を生成する方法を図１０を用いて説明する。図１０は影の生成方法を図示したものである。まず、光源９０１の位置にカメラを光源方向ベクトル９０５の方向に設定したと仮定し、このカメラから見える画像をテクスチャ画像としてＲＡＭ１０２に記憶する。このテクスチャ画像を図１０（ａ）に示す。なお、このテクスチャ画像を生成する際に、モデル９０２全体に黒のテクスチャ画像を貼ったものとして上記処理を行う（黒のテクスチャを貼ったモデル９０２を以下、影モデルと呼称する）。これにより図１０（ａ）に示すように、上記カメラから見える壁９０３、床９０４と共に、影モデルが含まれたテクスチャ画像を生成することができる。
【００３４】
そして図１０（ａ）に示したテクスチャ画像において壁９０３の部分（図１０（ｂ））を壁９０３のポリゴンに、床９０４の部分（図１０（ｃ））を床９０４のポリゴンに貼り付ける。なお、夫々の部分（図１０（ｂ）、図１０（ｃ）に示した各部分）と貼り付けるポリゴンの形状、大きさは夫々異なるが、夫々４隅の頂点の位置を合わせるように、テクスチャを拡大、縮小処理を行った後に貼り付ける。上記処理の結果を図１１に示す。同図のとおり、床９０４、壁９０３に夫々３次元モデル９０２の影が映っている。
【００３５】
以上の処理により、３次元モデル９０２の影を生成することができるが、３次元モデル９０２を構成するポリゴンの数が多い場合、当然影モデルを構成するポリゴンの数も多いわけであるから、上述の処理からもわかるとおり影を生成する処理の負荷は大きいものとなる。そこで以下では、３次元モデル９０２とカメラとの距離に応じて影モデルを構成するポリゴンの数を少なくする２つの方法について説明する。
【００３６】
＜方法１＞
第１の実施形態の如く３次元モデル９０２を構成するポリゴンの数を、３次元モデル９０２とカメラとの距離に応じて少なくした場合、上記一般の影の生成方法を使用することで、３次元モデル９０２とカメラとの距離に応じて影モデルを構成するポリゴンの数も少なくなるので、ゲーム装置に対して与える影の生成処理の負荷を軽減させることができる。
【００３７】
＜方法２＞
３次元モデル９０２を構成するポリゴンの数は変化させることなく、影モデルを構成するポリゴンの数のみを変化させる場合、図５に示したテーブルを参照し（この場合、各モデルデータは３次元モデル９０２のモデルデータであるとし、「ＭｏｄｅｌＡ．ｄａｔ」に基づいて生成される３次元モデルを構成するポリゴンの数Ａと「ＭｏｄｅｌＢ．ｄａｔ」に基づいて生成される３次元モデルのポリゴンの数ＢとではＡ＞Ｂとなっており、一般にはＬの範囲の上限、下限の値が共に大きくなるに従ってそのポリゴン数は少なくなる）、３次元モデル９０２とカメラとの距離Ｌに応じたモデルデータを影モデルとして、上記一般の影の生成方法を用いる。
【００３８】
その結果、３次元モデル９０２とカメラとの距離に応じて影モデルを構成するポリゴンの数も少なくなるので、ゲーム装置に対して与える影の生成処理の負荷を軽減させることができる。
【００３９】
［第３の実施形態］
本実施形態では、第２の実施形態で説明した影の生成処理とは異なる影の生成処理について説明する。第２の実施形態で説明した影の生成処理は、３次元モデルとカメラとの距離Ｌに応じた複数の３次元モデルのモデルデータを記憶媒体１０７に記憶させておく必要がある。しかしそのデータ量は膨大なものとなるため、より多くの記憶容量の記憶媒体を必要とする。本実施形態では、３次元モデルを構成するポリゴンの各頂点にレベルを付け、カメラとの距離Ｌに応じたレベルの頂点を用いて影モデルを生成する。
【００４０】
図１２に、図３に示した円錐のモデルを上から見た図を示す。同図では、３次元モデルを構成する各ポリゴンの各頂点ａ〜ｍには３つのレベルのいずれかが割り当てられている。以下の説明ではレベルは３つとするが、以下の説明の本質はこれに限定されるものではない。
【００４１】
同図において黒丸で示されている頂点には最もレベルの高いレベル３が割り当てられており、グレーの丸で示されている頂点には次にレベルの高いレベル２が割り当てられており、白丸で示されている頂点には次にレベルの高いレベル１が割り当てられている。各頂点に割り当てられたレベルを示すデータは、各頂点の座標データと共にモデルデータとして記憶媒体１０７に記憶されているものとする。
【００４２】
次に距離Ｌに応じてどのレベルの頂点を使用するかを決定するテーブルを図１３に示す。同図のテーブルには、距離Ｌの値に応じて用いるレベルの頂点を特定するレベル情報と、使用する各頂点をどのようにしてリンクさせてポリゴンを生成するかを示すリンク情報とが登録されている。
【００４３】
同図のテーブルにおいて０≦Ｌ＜Ｌ１の場合にはすべてのレベルの頂点、即ち全ての頂点を用いて影モデルを生成する。用いる各頂点をどのようにしてリンクさせるかは、リンク情報を参照する。例えばリンク情報「ｍ−ｆ−ｇ」を参照することで、頂点ｍと頂点ｆ、頂点ｆと頂点ｇ、頂点ｇと頂点ｍの夫々をリンクさせ、１つのポリゴンを生成する。そして生成した影モデルを用いて第２の実施形態の如く、３次元モデルの影を生成する。
【００４４】
またＬ１≦Ｌ＜Ｌ２の場合、レベル１，レベル２に割り当てられた頂点のみを用いて影モデルを生成する。この場合、レベル３に割り当てられた頂点は用いないので、リンク情報が変わるところもある。例えば０≦Ｌ＜Ｌ１の場合は「ｍ−ｇ−ｈ」、「ｍ−ｈ−ｉ」と、頂点ｈを用いて２つのポリゴンを定義していたが、Ｌ１≦Ｌ＜Ｌ２では頂点ｈは使用しないため、これら２つのポリゴンを融合する。具体的にはこれら２つのリンク情報を「ｍ−ｇ−ｉ」とする。このようにＬ１≦Ｌ＜Ｌ２の場合の新たなリンク情報も同図に示す如く登録されている。そして生成した影モデルを用いて第２の実施形態の如く、３次元モデルの影を生成する。
【００４５】
またＬ２≦Ｌの場合、レベル１に割り当てられた頂点のみを用いて影モデルを生成する。この場合も同じように新たなリンク情報も同図に示す如く登録されている。そして生成した影モデルを用いて第２の実施形態の如く、３次元モデルの影を生成する。
【００４６】
このように図１３に示したテーブルを用いて影モデルを生成することで、１つの３次元モデルに対して複数の影モデルを距離Ｌに応じて作成することができるので、記憶媒体１０７に記憶させるゲームデータのデータ量を第２の実施形態の場合よりも少なくすることができる。更に、距離Ｌに応じて用いる頂点数を少なくすることで、ゲーム装置に対して与える影の生成処理の負荷を軽減させることができる。
【００４７】
図１４に本実施形態における影の生成処理のフローチャートを示す。なお同フローチャートに従った処理はメインのゲーム処理から、影を生成するためのサブルーチンとして実行される。
【００４８】
まずステップＳ１４０１において、３次元モデルとカメラとの距離Ｌを求める。なお、本処理の前に、例えば図８に示した処理が実行されている場合には、ステップＳ８０１で距離Ｌが求まっているので、ステップＳ１４０１の処理は省略する。次にステップＳ１４０２では、図１３に示したテーブルを参照して、ステップＳ１４０１（もしくはステップＳ８０１）で求めた距離Ｌに対応するレベル情報、リンク情報を特定する。そしてステップＳ１４０３では、特定したレベル情報とリンク情報とを用いて、影モデルを生成する。そしてステップＳ１４０４では生成した影モデルを用いて、第２の実施形態で説明した一般の影の生成方法を用いて３次元モデルの影を含むテクスチャ画像を生成する。
【００４９】
以上の説明により本実施形態のゲーム装置は、１つの３次元モデルに対して複数の影モデルを距離Ｌに応じて作成することができるので、記憶媒体１０７に記憶させるゲームデータのデータ量を第２の実施形態の場合よりも少なくすることができる。更に、距離Ｌに応じて用いる頂点数を少なくすることで、ゲーム装置に対して与える影の生成処理の負荷を軽減させることができる。
【００５０】
なお本実施形態では、距離Ｌに応じて用いる頂点を決定する方法として、各頂点にレベルを付け、図１３に示すテーブルに登録したが、他にも例えばレベル情報の代わりに、用いる頂点を示すインデックスを登録しても良く、これに限定されるものではない。
【００５１】
また本実施形態における影モデルの生成方法は、３次元モデルの生成方法に適用しても良い。また、図１３に示したテーブルを３次元モデル用と影モデル用と２つ予め作成しておき、夫々のモデルで異なった頂点の選択方法を用いてもよい。
【００５２】
［第４の実施形態］
以上の処理（例えば図８、図１４に示したフローチャートの一部、もしくは全部に従った処理）をプログラムとしてＣＤ−Ｒ、ＲＯＭやＤＶＤ−ＲＯＭ、ＭＯ等の記憶媒体に記憶させ、この記憶媒体に記憶されているプログラムをコンピュータに読み込ませる（インストール、もしくはコピーさせる）ことで、このコンピュータに以上の処理を行わせることができる。よって、この記憶媒体も本発明の範疇にあることは明白である。
【００５３】
【発明の効果】
以上の説明により、本発明によって、３次元モデルとカメラとの距離に応じて３次元モデルを構成するポリゴンの数を変化させ、ゲーム画面を見ているプレーヤに対して違和感を与えることなく処理の負荷を軽減させることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態におけるゲーム装置の基本構成を示すブロック図である。
【図２】仮想の３次元空間内におけるカメラと３次元モデルとの関係を示す図である。
【図３】カメラから見た３次元モデル２０１を示す図である。
【図４】カメラから見た３次元モデル２０１を示す図である。
【図５】距離Ｌの範囲に応じた３次元モデル２０１のデータを保持するテーブルを示す図である。
【図６】記憶媒体１０７に格納されたモデルデータを示す図である。
【図７】距離Ｌに応じて変化する３次元モデルを示す図である。
【図８】本発明の第１の実施形態におけるポリゴンモデル生成処理のフローチャートである。
【図９】影を生成する仮想空間を示す図である。
【図１０】影の生成方法を説明するための説明図である。
【図１１】影の生成方法の処理の結果を示す図である。
【図１２】図３に示した円錐のモデルを上から見た図である。
【図１３】距離Ｌに応じてどのレベルの頂点を使用するかを決定するテーブルを示す図である。
【図１４】本発明の第３の実施形態における影の生成処理のフローチャートである。
【図１】
0003708904.tif 000002
【図２】
0003708904.tif 000003
【図３】
0003708904.tif 000004
【図４】
0003708904.tif 000005
【図５】
0003708904.tif 000006
【図６】
0003708904.tif 000007
【図７】
0003708904.tif 000008
【図８】
0003708904.tif 000009
【図９】
0003708904.tif 000010
【図１０】
0003708904.tif 000011
【図１１】
0003708904.tif 000012
【図１２】
0003708904.tif 000013
【図１３】
0003708904.tif 000014
【図１４】
0003708904.tif 000015