(57)【要約】【課題】  三次元の仮想空間において地面に配置されたキャラクタの一部が地面にめり込んでいるように表示されてしまうのを防止する。【解決手段】  仮想空間における地面に立つキャラクタオブジェクト２００１を、地形オブジェクト１８０２に対して立てた状態で配置する。このとき、キャラクタオブジェクト２００１が仮想カメラ１６０１側に向くように配置する。さらに、地形オブジェクト１８０２を、仮想カメラ１６０１が向いている方向に沿って、仮想カメラ１６０１から離れる方向に所定の距離だけずらして配置する。【選択図】  図５ 
2005078601.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトが配置された三次元の仮想空間の様子を、前記仮想空間における仮想カメラに基づく投影平面に投影変換し、描画領域に描画することによって、前記仮想カメラから見た画像を生成する処理をコンピュータに実行させるための画像生成プログラムであって、前記コンピュータを、
少なくとも一枚のポリゴンによって平面状に構成される第１オブジェクトと、少なくとも一枚のポリゴンによって構成される第２オブジェクトとをメモリから読み出すオブジェクト読出し手段、
前記仮想空間におけるある水平面に対して、前記読み出した第１オブジェクトを立てた状態で配置する第１配置手段、
前記第１オブジェクトが配置された水平面に対する前記仮想カメラの方向とは逆方向、かつ前記水平面とは間隔を空けてほぼ平行に前記読み出された第２オブジェクトを配置する第２配置手段、
前記仮想空間における地面を表示するための地面テクスチャと、前記地面に接した位置に表示されるべきキャラクタを表示するためのキャラクタテクスチャとをメモリから読み出すテクスチャ読出し手段、および、
前記投影平面に投影変換された前記第１オブジェクトに前記読み出されたキャラクタテクスチャを貼り付け、前記第２オブジェクトに前記読み出された地面テクスチャを貼り付けることによって、前記仮想カメラから見える画像を前記描画領域に描画する描画手段、として機能させるための画像生成プログラム。
【請求項２】
前記第１配置手段は、前記第１オブジェクトの平面が前記水平面に対してほぼ垂直かつ前記仮想カメラ側に向くように前記第１オブジェクトを配置することを特徴とする、請求項１に記載の画像生成プログラム。
【請求項３】
前記第１配置手段は、前記第１オブジェクトの平面が前記仮想カメラに対して向くように前記第１オブジェクトを配置することを特徴とする、請求項１に記載の画像生成プログラム。
【請求項４】
前記第１オブジェクトは前記キャラクタテクスチャの表示態様によってその大きさが変化するものであり、
前記第２配置手段は、前記水平面に対する前記第１オブジェクトの垂直な辺が変化する長さ分の距離を少なくとも空けて前記水平面に対して前記第２オブジェクトを配置することを特徴とする、請求項１〜３のいずれかに記載の画像生成プログラム。
【請求項５】
前記第１オブジェクトは、前記仮想空間において人物を模したゲームキャラクタ又は前記仮想空間に発生させる特殊効果を表示するための特殊効果キャラクタである、請求項１〜４のいずれかに記載の画像生成プログラム。
【請求項６】
前記コンピュータを、前記仮想カメラの向きが前記水平面に対して鋭角となるように当該仮想カメラを仮想空間に配置する手段としてさらに機能させることを特徴とする、請求項１〜５のいずれかに記載の画像生成プログラム。
【請求項７】
三次元の仮想空間に配置された仮想カメラから当該仮想空間を見た画像を生成するための画像生成方法であって、
仮想空間に少なくとも地形に対応する地形オブジェクトと当該地形上に立つキャラクタに対応するキャラクタオブジェクトとを配置するステップと、
仮想空間に配置された前記地形オブジェクトおよび前記キャラクタオブジェクトを本来の位置関係から前記仮想カメラの向く方向に沿って所定距離だけ離した状態で描画するステップとを備えた画像生成方法。
【請求項８】
前記キャラクタオブジェクトが平面状であり、
前記配置ステップでは、前記地形オブジェクトによって規定される仮想空間内の地面に対して前記キャラクタオブジェクトを略垂直に配置し、
前記描画ステップでは、キャラクタを表すテクスチャを前記キャラクタオブジェクトに貼り付けることを特徴とする、請求項７に記載の画像生成方法。
【請求項９】
前記配置ステップでは、前記地形オブジェクトおよび前記キャラクタオブジェクトを本来の位置関係から前記仮想カメラの向く方向に沿って所定距離だけ離した状態で配置することを特徴とする、請求項７に記載の画像生成方法。
【請求項１０】
前記描画ステップでは、前記地形オブジェクトおよび前記キャラクタオブジェクトの位置を前記仮想カメラの位置を基準点としたカメラ座標系で表すときに、前記地形オブジェクトまたは前記キャラクタオブジェクトのＺ座標値を所定値だけずらすことを特徴とする、請求項７に記載の画像生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成プログラム及び画像生成方法に関し、より特定的には、三次元画像処理機能を備えたビデオゲーム装置における画像処理に関する。
【背景技術】
【０００２】
最近の技術の進歩によって、ジオメトリ演算回路やレンダリング回路などの三次元画像処理回路を搭載した高性能なビデオゲーム装置が登場している。このようなビデオゲーム装置では、ジオメトリ演算によって、三次元の仮想空間（ワールド座標系）に配置される複数の三次元のオブジェクトを仮想カメラに基づく二次元のスクリーン座標系に変換し、当該二次元の座標に変換されたオブジェクトの各ポリゴンにテクスチャを貼り付けることによって、仮想カメラから見たシーンに対応する画像を生成している。
【０００３】
従来、特に地形上を歩くキャラクタなどを表示する場合には、特許文献１及び特許文献２に記載されているように、地形オブジェクト上にキャラクタオブジェクトを配置し、その様子を仮想カメラに基づいて表示することによって三次元のゲーム画像を表示させていた。
【０００４】
また、平面状のポリゴンを使ってゲーム画面を表示するものとして、特許文献３に記載の先行技術が知られている。爆発パターンなどを立体的なオブジェクトにしてしまうとゲーム制作が煩雑になるが、この先行技術によれば、常に視点方向を向く平面状のポリゴンに爆発パターンを貼り付けることによって、爆発パターンを簡易な処理によって三次元表示することが可能となる。
【特許文献１】特許第３０６８２０５号公報（第４図、第６図）
【特許文献２】特開２０００−９３６５４号公報（第４図、第１１図）
【特許文献３】特開平１０−１７９９３２号公報（第４図）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１及び２のような３Ｄゲームプログラムを生成するためには、複数のポリゴンによって立体的な構造のオブジェクトを作成したり、そのオブジェクトに貼り付けるためのリアルな画像を作成したりする必要があったので、ゲームプログラムの制作に非常に時間がかかるという問題がある。
【０００６】
近年、このような問題の結果、販売本数が期待できないゲームタイトルに対しても同様の開発時間をかけてゲームプログラムを開発する必要が生じ、最終的に開発コストを回収できないという新たな問題が生じている。
【０００７】
そこで、三次元画像処理回路などを搭載していない機能の低いゲーム装置や旧式のゲーム装置用に開発された旧式のゲームタイトルを移植する動きがある。しかしながら、このようなゲーム装置のゲームプログラムには、キャラクタや地形などの二次元の画像データが含まれているだけで、ポリゴンによって構成される三次元のオブジェクトやそのオブジェクトに貼り付けるリアルなテクスチャなどが含まれていない。よって、このようなゲーム装置のゲームプログラムは、三次元画像処理回路を搭載するゲーム装置には簡単に移植できないという問題がある。
【０００８】
このような問題を解決するために、特許文献３を参考にして、立体でない平面状のポリゴンにキャラクタの画像を貼り付けることによって、旧式のゲームタイトルのプログラムの移植やゲームプログラムの開発時間を短縮することが考えられる。
【０００９】
ところで、特許文献１ないし３からも明らかなように、従来の三次元のゲームプログラムでは、地形上に表示される人物や爆発などのキャラクタオブジェクトは地形オブジェクト上に配置し、鳥や空中での爆発などは地形オブジェクトから離した位置に配置することが技術常識である。
【００１０】
しかしながら、上述したように、例えば旧式のゲームプログラムに含まれる二次元の画像を利用した移植などの場合には、以下の問題が生じ得る。
【００１１】
例えば、近年の三次元ゲームでは、図１６に示すような仮想カメラ１６０１とキャラクタオブジェクト１６０２とその他オブジェクト１６０３と地形オブジェクト１６０４とを含む仮想空間において、自身の半身より長い剣を持ったキャラクタオブジェクト１６０２が剣を前方に振り下ろした場合、図１７に示すように剣は斜め下に振り下ろされるため、長い剣が地面にめり込んで表示されることはない。
【００１２】
次に、特許文献３のように、図１６の３Ｄオブジェクトを平面ポリゴンで代用する場合を考える。この際、図１８（ａ）および図１８（ｂ）に示すように各オブジェクト毎に仮想カメラから見たテクスチャが貼り付けられる平面ポリゴン１８０１、１８０２を用意し、これを図１８（ｃ）のように合成表示する。図１８（ｃ）のように配置された平面ポリゴン１８０１、１８０２を仮想カメラに対して垂直な方向から見ると、図１９のようになる。同様に、キャラクタが長い剣を振り下ろした動作を表現する場合は、図２０（ａ）に示すように当該動作をしたキャラクタのテクスチャを平面ポリゴン２００１（平面ポリゴン１８０１と同一ポリゴンであってもよい）に貼り付けて合成表示することになる。しかしながら、このとき、キャラクタが図１８（ｃ）と同じ地点に立つように平面ポリゴン２００１を配置しようとすると、図２０（ｃ）のように平面ポリゴン２００１が地形にめり込んでしまうことになる。その結果、キャラクタが斜め下に振り下ろしたはずの剣が、地面にめり込んで表示されてしまうという不具合が生じる。
【００１３】
二次元の仮想空間では剣先がキャラクタの足先よりも下にくるような画像を利用したとしても特に問題は発生しないが、上記のように、三次元の仮想空間において地形オブジェクトに対して立てて配置したポリゴンに対して剣先がキャラクタの足先よりも下にくるような画像をテクスチャとして貼り付けた場合には、剣の一部が表示されないという問題が生じる。この問題は、キャラクタが剣よりも長い、例えば投げ縄を投げたときの画像をテクスチャとしてポリゴンに貼り付ける場合に、より深刻となる。
【００１４】
それゆえに、本発明の目的は、三次元の仮想空間において地面に配置されたキャラクタの一部が地面にめり込んでいるように表示されてしまうのを防止することのできる画像生成プログラムおよび画像生成方法を提供することである。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、本発明は下記のような構成を採用した。なお、括弧内の参照符号は、本発明の理解を助けるために図面との対応関係を示したものであって、本発明の範囲を何ら限定するものではない。
【００１６】
本発明の請求項１に係る画像生成プログラムは、オブジェクトが配置された三次元の仮想空間の様子を、仮想空間における仮想カメラ（１６０１）に基づく投影平面に投影変換し、描画領域（２１０）に描画することによって、仮想カメラから見た画像を生成する処理をコンピュータに実行させるための画像生成プログラムである。
【００１７】
この画像生成プログラムは、コンピュータを、オブジェクト読み出し手段（ステップＳ７０５を実行するＣＰＵ２０２；以下、単にステップ番号のみ示す）、第１配置手段（Ｓ７０６）、第２配置手段（Ｓ７０６）、テクスチャ読出し手段（Ｓ７０７）および描画手段（Ｓ７０８、Ｓ７１０）として機能させるためのものである。より具体的には、オブジェクト読出し手段は、少なくとも一枚のポリゴンによって平面状に構成される第１オブジェクト（１５０１、１８０１）と、少なくとも一枚のポリゴンによって構成される第２オブジェクト（１８０２）とをメモリ（２１４）から読み出すものである。第１配置手段は、仮想空間におけるある水平面に対して、読み出した第１オブジェクトを立てた状態（すなわち、水平面と第１オブジェクトとが平行ではない状態であって、垂直に限定されるものではない。）で配置するものである（図３、図１２）。第２配置手段は、第１オブジェクトが配置された水平面に対する仮想カメラの方向とは逆方向（図３や図１２の矢印が示す方向）、かつ水平面とは間隔を空けてほぼ平行に読み出された第２オブジェクトを配置するものである。テクスチャ読出し手段は、仮想空間における地面を表示するための地面テクスチャと、地面に接した位置に表示されるべきキャラクタ（人物に限らず爆発パターンなども含み得る。）を表示するためのキャラクタテクスチャとをメモリ（２１４）から読み出すものである。描画手段は、投影平面に投影変換された第１オブジェクトに読み出されたキャラクタテクスチャを貼り付け、第２オブジェクトに読み出された地面テクスチャを貼り付けることによって、仮想カメラから見える画像を描画領域に描画するものである。
【００１８】
なお、第１配置手段および第２配置手段は、第１オブジェクトおよび第２オブジェクトを本来の位置関係から仮想カメラの向く方向に沿って所定距離だけ離した状態で配置するものであって、第１オブジェクトおよび第２オブジェクトのいずれか一方を本来の位置からずらして配置してもよいし（図３、図１１）、第１オブジェクトおよび第２オブジェクトの両方を本来の位置からずらして配置してもよい。また、ずらして配置するのは、仮想空間に配置するときでもよいし、仮想空間の描画のためにカメラ座標系に座標変換するときでもよい。さらには、ずらす処理が変換行列に組み込まれていてもよい。
【００１９】
本発明の請求項２に係る画像生成プログラムは、請求項１において、第１配置手段は、第１オブジェクトの平面が水平面に対してほぼ垂直かつ仮想カメラ側に向くように第１オブジェクトを配置することを特徴とする。
【００２０】
本発明の請求項３に係る画像生成プログラムは、請求項１において、第１配置手段は、第１オブジェクトの平面が仮想カメラに対して向くように第１オブジェクトを配置することを特徴とする。
【００２１】
本発明の請求項４に係る画像生成プログラムは、請求項１〜３のいずれかにおいて、第１オブジェクトはキャラクタテクスチャの表示態様によってその大きさが変化するものであり、第２配置手段は、水平面に対する第１オブジェクトの垂直な辺が変化する長さ分の距離を少なくとも空けて水平面に対して第２オブジェクトを配置することを特徴とする。
【００２２】
本発明の請求項５に係る画像生成プログラムは、請求項１〜４のいずれかにおいて、第１オブジェクトは、仮想空間において人物を模したゲームキャラクタ又は仮想空間に発生させる特殊効果を表示するための特殊効果キャラクタであることを特徴とする。
【００２３】
本発明の請求項６に係る画像生成プログラムは、請求項１〜５のいずれかにおいて、コンピュータを、仮想カメラの向きが水平面に対して鋭角となるように当該仮想カメラを仮想空間に配置する手段としてさらに機能させることを特徴とする。
【００２４】
本発明の請求項７に係る画像生成方法は、三次元の仮想空間に配置された仮想カメラから当該仮想空間を見た画像を生成するための画像生成方法である。この画像生成方法は、仮想空間に少なくとも地形に対応する地形オブジェクト（１８０２）と当該地形上に立つキャラクタに対応するキャラクタオブジェクト（１５０１、１８０１）とを配置するステップ（Ｓ７０６）と、仮想空間に配置された地形オブジェクトおよびキャラクタオブジェクトを本来の位置関係から仮想カメラの向く方向に沿って所定距離だけ離した状態で描画するステップ（Ｓ７０８、Ｓ７１０、図３、図１１〜図１３）とを備える。
【００２５】
本発明の請求項８に係る画像生成方法は、請求項７において、キャラクタオブジェクトが平面状であり、配置ステップでは、地形オブジェクトによって規定される仮想空間内の地面に対してキャラクタオブジェクトを略垂直に配置し、描画ステップでは、キャラクタを表すテクスチャをキャラクタオブジェクトに貼り付けることを特徴とする。
【００２６】
本発明の請求項９に係る画像生成方法は、請求項７において、配置ステップでは、地形オブジェクトおよびキャラクタオブジェクトを本来の位置関係から仮想カメラの向く方向に沿って所定距離だけ離した状態で配置することを特徴とする（図３、図１１）。
【００２７】
本発明の請求項１０に係る画像生成方法は、請求項７において、描画ステップでは、地形オブジェクトおよびキャラクタオブジェクトの位置を仮想カメラの位置を基準点としたカメラ座標系で表すときに、地形オブジェクトまたはキャラクタオブジェクトのＺ座標値を所定値だけずらすことを特徴とする（図１２、図１３）。
【発明の効果】
【００２８】
本発明によれば、三次元の仮想空間において地面に配置されたキャラクタの一部が地面にめり込んでいるように表示されてしまうのを防止することができる。
【発明を実施するための最良の形態】
【００２９】
図１は、ゲームシステムの構成を示す外観図であり、図２はそのブロック図である。図１および図２に示すように、ゲームシステムは、ＴＶモニタ１０、ゲーム機本体２０、ＤＶＤ−ＲＯＭ３０、外部メモリカード４０、コントローラ５０およびスピーカ６０を備える。ＤＶＤ−ＲＯＭ３０および外部メモリカード４０は、ゲーム機本体２０に着脱自在に装着される。コントローラ５０は、通信ケーブルを介して、ゲーム機本体２０に設けられた複数（図１では４つ）のコントローラポート用コネクタのいずれかに接続される。ＴＶモニタ１０およびスピーカ６０は、ＡＶケーブル等によってゲーム機本体２０と接続される。なお、ゲーム機本体２０とコントローラ５０との通信は無線通信であってもよい。以下、図２を参照しながら、ゲームシステムの各部についてより詳細に説明する。
【００３０】
ＤＶＤ−ＲＯＭ３０は、ゲームプログラムやゲームデータ等を固定的に記憶している。プレイヤがゲームをプレイするとき、ＤＶＤ−ＲＯＭ３０はゲーム機本体２０に装着される。なお、ゲームプログラム等を記憶する手段として、ＤＶＤ−ＲＯＭ３０の代わりに例えばＣＤ−ＲＯＭ、ＭＯ、メモリカード、ＲＯＭカートリッジ等の外部記憶媒体を用いてもよい。
【００３１】
外部メモリカード４０は、例えばフラッシュメモリ等の書き換え可能な記憶媒体によって構成され、例えばゲームのセーブデータ等のデータを記録する。
【００３２】
ゲーム機本体２０は、ＤＶＤ−ＲＯＭ３０に記録されているプログラムを読み出し、読み出したプログラムに応じた処理を行う。
【００３３】
コントローラ５０は、プレイヤがゲーム操作に関する入力を行うための入力装置であり、複数の操作スイッチを有する。コントローラ５０は、プレイヤによる操作スイッチの押圧等に応じて操作データをゲーム機本体２０に出力する。
【００３４】
ＴＶモニタ１０は、ゲーム機本体２０から出力された画像データを画面に表示する。スピーカ６０は、典型的にはＴＶモニタ１０に内蔵されており、ゲーム機本体２０から出力されたゲーム中の音声を出力する。
【００３５】
次に、ゲーム機本体２０の構成について説明する。図２において、ゲーム機本体２０には、ＣＰＵ２０２およびそれに接続されるメモリコントローラ２２０が設けられる。さらにゲーム機本体２０において、メモリコントローラ２２０は、ＧＰＵ（グラフィックスプロセッシングユニット）２０４と、メインメモリ２１４と、ＤＳＰ２１６と、各種インターフェース（Ｉ／Ｆ）２２２、２２４、２２６、２２８、２３２とに接続される。メモリコントローラ２２０は、これら各構成要素間のデータ転送を制御する。
【００３６】
ゲーム開始の際、まず、ディスクドライブ２３０は、ゲーム機本体２０に装着されたＤＶＤ−ＲＯＭ３０を駆動する。ＤＶＤ−ＲＯＭ３０に記憶されているゲームプログラムは、ディスクＩ／Ｆ２３２およびメモリコントローラ２２０を介して、メインメモリ２１４に読み込まれる。このメインメモリ２１４上のプログラムをＣＰＵ２０２が実行することによってゲームが開始される。ゲーム開始後、プレイヤは、操作スイッチを用いてコントローラ５０に対してゲーム操作等の入力を行う。プレイヤによる入力に従い、コントローラ５０は、操作データをゲーム機本体２０に出力する。コントローラ５０から出力される操作データは、コントローラＩ／Ｆ２２２およびメモリコントローラ２２０を介してＣＰＵ２０２に供給される。ＣＰＵ２０２は、入力された操作データに応じてゲーム処理を行う。ゲーム処理における画像データ生成等に際して、ＧＰＵ２０４やＤＳＰ２１６が用いられる。また、サブメモリ２１８は、ＤＳＰ２１６が処理を行う際に用いられる。
【００３７】
ＧＰＵ２０４は、ジオメトリユニット２０６およびレンダリングユニット２０８を含み、画像処理専用のメモリに接続されている。この画像処理専用メモリは、例えばカラーバッファ２１０やＺバッファ２１２として利用される。ジオメトリユニット２０６は、三次元の仮想空間であるゲーム空間に置かれた物体や図形に関する立体モデル（例えばポリゴンで構成されるオブジェクト）の座標についての演算処理を行うものであり、例えば立体モデルの回転・拡大縮小・変形や、ワールド座標系の座標からカメラ座標系やスクリーン座標系の座標への変換を行うものである。レンダリングユニット２０８は、所定のテクスチャに基づいて、スクリーン座標に投影された立体モデルについて各ピクセルごとのカラーデータ（ＲＧＢデータ）をカラーバッファ２１０に書き込むことによって、ゲーム画像を生成するためのものである。また、カラーバッファ２１０は、レンダリングユニット２０８によって生成されたゲーム画像データ（ＲＧＢデータ）を保持するために確保されたメモリ領域である。Ｚバッファ２１２は、３次元の視点座標から２次元のスクリーン座標に変換する際に失われる視点からの奥行情報を保持するために確保されたメモリ領域である。ＧＰＵ２０４は、これらバッファを用いてＴＶモニタ１０に表示すべき画像データを生成し、メモリコントローラ２２０およびビデオＩ／Ｆ２２４を介して、この画像データをＴＶモニタ１０に適宜出力する。なお、ゲームプログラム実行時にＣＰＵ２０２において生成される音声データは、メモリコントローラ２２０からオーディオＩ／Ｆ２２８を介してスピーカ６０に出力される。なお本実施形態では、画像処理専用のメモリを別途設けたハードウェア構成としたが、これに限らず例えばメインメモリ２１４の一部を画像処理用のメモリとして利用する方式（ＵＭＡ：Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ）を使うようにしてもよい。
【００３８】
メインメモリ２１４には、ＤＶＤ−ＲＯＭ３０から読み出された各種プログラムやデータが格納される。これらのデータの中には、仮想ゲーム空間に配置される３次元モデルを構成するポリゴンに関するデータや、ポリゴンに色を貼り付けるためのテクスチャ等が含まれる。
【００３９】
次に、本実施形態のゲームシステムの動作について説明する。
【００４０】
詳細な説明を行う前にまず、本実施形態の原理について簡単に説明する。本実施形態では、図１６に示した３Ｄオブジェクト１６０２〜１６０３をそれぞれ平面状のオブジェクトで代用する。そして、図３に示すように、仮想空間における地面に立つキャラクタオブジェクト１８０１、１９０２が、地形オブジェクト１８０２に対して立てた状態（すなわち、地形オブジェクト１８０２とキャラクタオブジェクト１８０１とが平行ではない状態）で配置される。なお、キャラクタオブジェクト１８０１、１９０２を立てて配置する理由の一つは、地形オブジェクト１８０２に対して寝かして配置した場合に問題となるキャラクタオブジェクト１８０１、１９０２同士の重なりを防止するためである。仮想空間には仮想カメラ１６０１も配置される。この仮想カメラ１６０１は、地形オブジェクト１８０２を斜め上方からとらえる位置（すなわち、仮想カメラ１６０１の向きを示すベクトルと地形オブジェクト１８０２の角度が鋭角となる位置）に配置される。また、各オブジェクト１８０１、１８０２、１９０２が仮想カメラ１６０１側に向くように配置される。さらに、本発明に特徴的な処理として、地形オブジェクト１８０２とキャラクタオブジェクト１８０１とを、本来の位置よりも離して配置する。より具体的には、地形オブジェクト１８０２を、仮想カメラ１６０１が向いている方向に沿って、仮想カメラ１６０１から離れる方向に（すなわち図３の矢印の方向に）所定の距離だけずらして配置する。ここで、地形オブジェクト１８０２は仮想カメラ１６０１が向いている方向に沿って本来の位置からずらされるため、仮想カメラ１６０１から見てもずれていることは知覚されず、図４に示すようにキャラクタオブジェクト１８０１が本来の位置（図１８（ｃ）と同じ位置）にいるように見える。
【００４１】
一方、図５に示すように、剣を振り下ろしたキャラクタを示すキャラクタオブジェクト２００１を表示する場合にも同様に、地形オブジェクト１８０２を、仮想カメラ１６０１が向いている方向に沿って、仮想カメラ１６０１から離れる方向に所定の距離だけずらして配置する。この場合も、仮想カメラ１６０１から見ても地形オブジェクトがずらされていることは知覚されず、図６に示すようにキャラクタオブジェクト２００１が本来の位置（図２０（ｃ）と同じ位置）にいるように見える。しかも、図５に示すように、キャラクタオブジェクト２００１と地形オブジェクト１８０２が交わらないため、キャラクタオブジェクト２００１は地形オブジェクト１８０２にめり込まず、図６に示すように剣先までも正確に表示される。
【００４２】
以下、本実施形態のゲーム機本体２０の動作について説明する。
【００４３】
図７に、三次元仮想空間を仮想カメラから見た様子を示す画像を生成するときの処理の流れを示す。なお、以下の処理はゲーム機本体２０のＣＰＵ２０２がＤＶＤ−ＲＯＭ３０から読み出したプログラムに従って実行するものとして説明するが、それらの処理の一部をＧＰＵ２０４や画像処理専用ハードウェアを用いて処理しても構わない。
【００４４】
図７のステップＳ７０１で、ＣＰＵ２０２は、予め設定されている規定値Ａを、地形オブジェクト１８０２のＹ軸方向の移動量（ΔＹ）として設定する（図８参照）。規定値Ａとしては、少なくともキャラクタが地形にめり込まない十分な大きさを設定しておく。
【００４５】
ステップＳ７０２では、距離Ａ（規定値Ａ）と、仮想カメラ１６０１の向きを示すベクトルと地形オブジェクト１８０２の角度θとに基づいて、図８に示す距離Ｂを計算する。具体的な計算式は図７に示すとおりである。
【００４６】
ステップＳ７０３では、前ステップで計算した距離Ｂを、地形オブジェクト１８０２のＺ軸方向の移動量（ΔＺ）として設定する（図８参照）。
【００４７】
ステップＳ７０４では、地形オブジェクト１８０２の移動後の座標を計算する。
【００４８】
ステップＳ７０５では、メインメモリ２１４からキャラクタオブジェクト１８０１、１９０２と、地形オブジェクト１８０２を読み出す。
【００４９】
ステップＳ７０６では、前ステップで読み出したキャラクタオブジェクト１８０１、１９０２を仮想空間の所定の位置に配置する。また、同じく前ステップで読み出した地形オブジェクト１８０２をステップＳ７０１、Ｓ７０３でそれぞれ設定した移動量を反映した位置（つまり、地形オブジェクト１８０２を、仮想カメラ１６０１の向きに沿って仮想カメラ１６０１の反対方向に本来の位置からＹ軸方向にΔＹ、Ｚ軸方向にΔＺ移動させた位置）に配置する（図８参照）。
【００５０】
ステップＳ７０７では、メインメモリ２１４から各オブジェクトのテクスチャを読み出し、ステップＳ７０８で、読み出したテクスチャを各オブジェクトに貼り付けて描画を開始する。そして、ステップＳ７０９で、全オブジェクトの描画が終了したかどうかを判定し、全オブジェクトの描画が終了していた場合にはステップＳ７１０に進む。一方、まだ描画の終了していないオブジェクトが存在していた場合にはステップＳ７０７に戻り、テクスチャ処理を行う。
【００５１】
ステップＳ７１０では、変換行列を用いて、仮想空間を仮想カメラ１６０１でとらえたシーンを投影平面に平行投影（正射影）して描画し、描画結果をカラーバッファ２１０に格納する。
【００５２】
以上のような処理により、例えばキャラクタオブジェクト２００１を表示する場合にも、キャラクタオブジェクト２００１が本来の位置にいるように見え、しかも、キャラクタオブジェクト２００１が地形オブジェクト１８０２にめり込まないように見える画像を生成することができる。
【００５３】
なお、図７では、距離Ａを予め設定されている規定値であるとしたが、距離Ａを状況に応じて動的に決定しても構わない。例えば、図９に示すように、ステップＳ９０１でＺ軸と仮想カメラ１６０１の角度θを計算後、ステップＳ９０２で、図１０に示すように、地形オブジェクト１８０２上に立つ複数のキャラクタに対応するキャラクタオブジェクト１００１〜１００３のうちの最も全長が長いキャラクタオブジェクト（ここではキャラクタオブジェクト１００３）の全長Ｔを距離Ａとして設定してもよい。これにより、常に、いずれのキャラクタオブジェクトも地形オブジェクト１８０２にめり込まないことが保証される。図９におけるステップＳ７０１以降の処理は図７と同様であるため説明を省略する。さらに、距離Ａとしてその他の値を設定しても構わない。例えば、平面ポリゴンにおいてキャラクタの足元に対して下方に伸びた分の長さを計算してもよい。
【００５４】
なお、本実施形態では、地形オブジェクトを仮想カメラから離れる方向にずらす例について説明したが、キャラクタオブジェクトを仮想カメラに近づく方向にずらすことによっても同様の効果が得られることは言うまでもない。このとき、仮想カメラ方向にずらす距離をキャラクタオブジェクト毎に異ならせても構わない。また、地形オブジェクトとキャラクタオブジェクトの両方を、仮想カメラの向きに沿って相対的に所定の距離だけ離れるようにずらしてもよい。
【００５５】
また、本実施形態では、仮想空間を仮想カメラでとらえたシーンを投影平面に平行投影して描画するとしたが、透視投影により描画する場合にも本発明を適用することができる。この場合、図１１に示すように、仮想カメラ１６０１と各オブジェクトとを結ぶ直線に沿って各オブジェクトをずらせばよい。ただし、透視投影による場合は、オブジェクトを仮想カメラ１６０１の向きに沿ってずらしたときに画像に表示されるこのオブジェクトの大きさが幾らか変化してしまう。そこで、透視投影の場合には、ずらした方向と距離に応じて各オブジェクトをスケーリングすれば、より違和感の無い画像を生成できるため好ましい。
【００５６】
また、本実施形態では、キャラクタオブジェクトと地形オブジェクトとを仮想空間において本来の位置関係からずらして配置するとしたが、仮想空間にずらして配置する替わりに、仮想空間に配置されたオブジェクトを描画する処理の中で、キャラクタオブジェクトと地形オブジェクトとを本来の位置関係からずらしてもよい。例えば、ワールド座標系で表されている各オブジェクトの座標を、変換行列を用いて仮想カメラ１６０１を基準としたカメラ座標系に座標変換した後に、キャラクタオブジェクトと地形オブジェクトとを本来の位置関係からずらしてもよい。この場合、図１２および図１３に示すように、キャラクタオブジェクト２００１または地形オブジェクト１８０２をカメラ座標系のＺ軸方向に沿ってずらす（つまり、Ｚ座標値に所定値を加算または減算する）だけでよいため、処理がより単純になる。なお、このように各オブジェクトをずらす処理は、仮想空間を投影平面に投影する際に用いられるいずれかの変換行列に組み込まれても構わない。なお、変換処理後に求められる陰面処理用のＺ値に、ずれ分を考慮したオフセット値を与えるようにしてもよい。
【００５７】
また、本実施形態において、キャラクタオブジェクトは必ずしも１枚のポリゴンで構成されていなくてもよい。例えば、図１４（ａ）〜図１４（ｃ）に示す３枚のポリゴン１４０１〜１４０３を用いて、図１５（ａ）および図１５（ｂ）に示すようにキャラクタオブジェクト１５０１を構成してもよい。
【００５８】
また、本実施形態において、仮想空間には複数の平面状のオブジェクトが配置されるとしたが、本発明はこれに限らず、平面状オブジェクトに加えて３Ｄオブジェクトが配置されていても構わない。また、地形オブジェクトが３Ｄオブジェクト（例えば直方体）であっても構わない。また同様に、キャラクタオブジェクトが３Ｄオブジェクト（例えば直方体）であって、この３Ｄオブジェクトにキャラクタの画像に対応するテクスチャを貼り付けることによってキャラクタを表現するものであってもよい。
【００５９】
また、本実施形態では、キャラクタオブジェクトを地形オブジェクトに対して垂直になるように配置したが、本発明はこれに限らず、例えば、キャラクタオブジェクトが仮想カメラに対して正面を向くように（すなわち、仮想カメラの向きを示すベクトルとキャラクタオブジェクトの平面とが垂直となるように）キャラクタオブジェクトを配置してもよい。
【図面の簡単な説明】
【００６０】
【図１】本発明の一実施形態に係るゲームシステムの外観図
【図２】ゲーム機本体２０の内部構成を示すブロック図
【図３】本発明の原理を示す図
【図４】本発明の原理を示す別の図
【図５】本発明の一実施形態において仮想空間に配置されたオブジェクトを仮想カメラから見た図
【図６】本発明の一実施形態において仮想空間に配置されたオブジェクトを仮想カメラから見た別の図
【図７】ゲーム機本体２０の動作を示すフローチャート
【図８】図７のフローチャートの処理について説明するための図
【図９】ゲーム機本体２０の動作を示す別のフローチャート
【図１０】図９のフローチャートの処理について説明するための図
【図１１】本発明の一実施形態の変形例を示す図
【図１２】本発明の一実施形態の変形例を示す別の図
【図１３】本発明の一実施形態の変形例を示すさらに別の図
【図１４】キャラクタオブジェクトを構成するポリゴンの例を示す図
【図１５】キャラクタオブジェクトの構成例を示す図
【図１６】従来のゲーム装置におけるオブジェクトの配置例を示す図
【図１７】従来のゲーム装置におけるオブジェクトの配置例を示す別の図
【図１８】３Ｄオブジェクトを平面ポリゴンで代用した場合のオブジェクトの配置例を示す図
【図１９】図１８のように配置したオブジェクトを別の角度から見た図
【図２０】３Ｄオブジェクトを平面ポリゴンで代用した場合のオブジェクトの配置例を示す別の図
【図２１】図２０のように配置したオブジェクトを別の角度から見た図
【符号の説明】
【００６１】
１０  ＴＶモニタ
２０  ゲーム機本体
３０  ＤＶＤ−ＲＯＭ
４０  外部メモリカード
５０  コントローラ
６０  スピーカ
２０２  ＣＰＵ
２０４  ＧＰＵ
２０６  ジオメトリユニット
２０８  レンダリングユニット
２１０  カラーバッファ
２１２  Ｚバッファ
２１４  メインメモリ
２１６  ＤＳＰ
２１８  サブメモリ
２２０  メモリコントローラ
２２２  コントローラＩ／Ｆ
２２４  ビデオＩ／Ｆ
２２６  外部メモリＩ／Ｆ
２２８  オーディオＩ／Ｆ
２３０  ディスクドライブ
２３２  ディスクＩ／Ｆ
１００１  キャラクタオブジェクト
１００２  キャラクタオブジェクト
１００３  キャラクタオブジェクト
１４０１  ポリゴン
１４０２  ポリゴン
１４０３  ポリゴン
１５０１  キャラクタオブジェクト
１６０１  仮想カメラ
１６０２  キャラクタオブジェクト
１６０３  キャラクタオブジェクト
１６０４  地形オブジェクト
１８０１  キャラクタオブジェクト
１８０２  地形オブジェクト
１９０１  キャラクタオブジェクト
２００１  キャラクタオブジェクト
【図１】
2005078601.tif 000003
【図２】
2005078601.tif 000004
【図３】
2005078601.tif 000005
【図４】
2005078601.tif 000006
【図５】
2005078601.tif 000007
【図６】
2005078601.tif 000008
【図７】
2005078601.tif 000009
【図８】
2005078601.tif 000010
【図９】
2005078601.tif 000011
【図１０】
2005078601.tif 000012
【図１１】
2005078601.tif 000013
【図１２】
2005078601.tif 000014
【図１３】
2005078601.tif 000015
【図１４】
2005078601.tif 000016
【図１５】
2005078601.tif 000017
【図１６】
2005078601.tif 000018
【図１７】
2005078601.tif 000019
【図１８】
2005078601.tif 000020
【図１９】
2005078601.tif 000021
【図２０】
2005078601.tif 000022
【図２１】
2005078601.tif 000023