(57)【特許請求の範囲】
【請求項１】
光源及びオブジェクトが配置された仮想３次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置において、
前記オブジェクトの影を描画するための影描画用オブジェクトを前記仮想３次元空間に配置する影描画用オブジェクト配置手段と、
前記影描画用オブジェクトを構成する複数のポリゴンの各頂点の色を黒色に設定する手段と、
前記影描画用オブジェクトを構成する複数のポリゴンの各頂点の透過度を、前記光源の位置と、前記オブジェクトの位置と、前記オブジェクトの形状データと、に基づいて決定する透過度決定手段と、
前記透過度決定手段によって決定された透過度に基づいて前記ゲーム画面を生成し、表示させる表示制御手段と、
を含み、
前記透過度決定手段は、
前記影描画用オブジェクト上の、前記オブジェクトの影が表されるべき領域である影領域を、前記光源の位置と、前記オブジェクトの位置と、前記オブジェクトの形状データと、に基づいて特定する手段と、
前記影描画用オブジェクトを構成する複数のポリゴンの各頂点について、該頂点が前記影領域内に含まれるか否かを判定する手段と、
前記影描画用オブジェクトを構成する複数のポリゴンの各頂点の透過度を、該頂点が前記影領域内に含まれるか否かの判定結果に基づいて決定する手段と、を含み、
前記影描画用オブジェクト配置手段は、前記影描画用オブジェクトを構成するポリゴンの数を、前記視点と前記オブジェクトとの間の距離に基づいて制御するポリゴン数制御手段を含む、
ことを特徴とするゲーム装置。
【請求項２】
光源及びオブジェクトが配置された仮想３次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置の制御方法において、
前記オブジェクトの影を描画するための影描画用オブジェクトを前記仮想３次元空間に配置するための影描画用オブジェクト配置ステップと、
前記影描画用オブジェクトを構成する複数のポリゴンの各頂点の色を黒色に設定するためのステップと、
前記影描画用オブジェクトを構成する複数のポリゴンの各頂点の透過度を、前記光源の位置と、前記オブジェクトの位置と、前記オブジェクトの形状データと、に基づいて決定するための透過度決定ステップと、
前記透過度決定ステップによって決定された透過度に基づいて前記ゲーム画面を生成し、表示させるための表示制御ステップと、
を含み、
前記透過度決定ステップは、
前記影描画用オブジェクト上の、前記オブジェクトの影が表されるべき領域である影領域を、前記光源の位置と、前記オブジェクトの位置と、前記オブジェクトの形状データと、に基づいて特定するステップと、
前記影描画用オブジェクトを構成する複数のポリゴンの各頂点について、該頂点が前記影領域内に含まれるか否かを判定するステップと、
前記影描画用オブジェクトを構成する複数のポリゴンの各頂点の透過度を、該頂点が前記影領域内に含まれるか否かの判定結果に基づいて決定するステップと、を含み、
前記影描画用オブジェクト配置ステップは、前記影描画用オブジェクトを構成するポリゴンの数を、前記視点と前記オブジェクトとの間の距離に基づいて制御するポリゴン数制御ステップを含む、
ことを特徴とするゲーム装置の制御方法。
【請求項３】
光源及びオブジェクトが配置された仮想３次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置としてコンピュータを機能させるためのプログラムであって、
前記オブジェクトの影を描画するための影描画用オブジェクトを前記仮想３次元空間に配置する影描画用オブジェクト配置手段、
前記影描画用オブジェクトを構成する複数のポリゴンの各頂点の色を黒色に設定する手段、
前記影描画用オブジェクトを構成する複数のポリゴンの各頂点の透過度を、前記光源の位置と、前記オブジェクトの位置と、前記オブジェクトの形状データと、に基づいて決定する透過度決定手段、及び、
前記透過度決定手段によって決定された透過度に基づいて前記ゲーム画面を生成し、表示させる表示制御手段、
として前記コンピュータを機能させ、
前記透過度決定手段は、
前記影描画用オブジェクト上の、前記オブジェクトの影が表されるべき領域である影領域を、前記光源の位置と、前記オブジェクトの位置と、前記オブジェクトの形状データと、に基づいて特定する手段と、
前記影描画用オブジェクトを構成する複数のポリゴンの各頂点について、該頂点が前記影領域内に含まれるか否かを判定する手段と、
前記影描画用オブジェクトを構成する複数のポリゴンの各頂点の透過度を、該頂点が前記影領域内に含まれるか否かの判定結果に基づいて決定する手段と、を含み、
前記影描画用オブジェクト配置手段は、前記影描画用オブジェクトを構成するポリゴンの数を、前記視点と前記オブジェクトとの間の距離に基づいて制御するポリゴン数制御手段を含む、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はゲーム装置、ゲーム装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
ゲームキャラクタ等の各種オブジェクトが配置された仮想３次元空間を所与の視点から見た様子を表示し、いわゆる３次元ゲームを実行するゲーム装置が知られている。
【特許文献１】特開２００５−３４２１２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記のようなゲーム装置では、仮想３次元空間に設定される光源から発せられる光によって各種オブジェクトの影ができ、その影が光源の位置やそのオブジェクトの形状（姿勢）等の変化に応じて変化する様子を表現することにより、ゲームのリアリティを向上させることが可能になる。ただし、上記のような影表現を実現するにあたっては、ゲームの本質的部分に係る処理の実行を妨げてしまうことがないように、影表現に係る処理負荷の軽減を図る必要がある。
【０００４】
本発明は上記課題に鑑みてなされたものであって、その目的は、光源から発せられる光によってオブジェクトの影ができ、その影が光源の位置やそのオブジェクトの形状（姿勢）等の変化に応じて変化する様子を、処理負荷の軽減を図りつつ実現できるようになるゲーム装置、ゲーム装置の制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明に係るゲーム装置は、光源及びオブジェクトが配置された仮想３次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置において、前記オブジェクトの影を描画するための影描画用オブジェクトを前記仮想３次元空間に配置する影描画用オブジェクト配置手段と、前記影描画用オブジェクトを構成するポリゴンの各頂点の透過度を、前記光源の位置と、前記オブジェクトの位置と、前記オブジェクトの形状データと、に基づいて決定する透過度決定手段と、前記透過度決定手段によって決定された透過度に基づいて前記ゲーム画面を生成し、表示させる表示制御手段と、を含み、前記影描画用オブジェクト配置手段は、前記影描画用オブジェクトを構成するポリゴンの数を、前記視点と前記オブジェクトとの間の距離に基づいて制御するポリゴン数制御手段を含むことを特徴とする。
【０００６】
また、本発明に係るゲーム装置の制御方法は、光源及びオブジェクトが配置された仮想３次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置の制御方法において、前記オブジェクトの影を描画するための影描画用オブジェクトを前記仮想３次元空間に配置するための影描画用オブジェクト配置ステップと、前記影描画用オブジェクトを構成するポリゴンの各頂点の透過度を、前記光源の位置と、前記オブジェクトの位置と、前記オブジェクトの形状データと、に基づいて決定するための透過度決定ステップと、前記透過度決定ステップによって決定された透過度に基づいて前記ゲーム画面を生成し、表示させるための表示制御ステップと、を含み、前記影描画用オブジェクト配置ステップは、前記影描画用オブジェクトを構成するポリゴンの数を、前記視点と前記オブジェクトとの間の距離に基づいて制御するポリゴン数制御ステップを含むことを特徴とする。
【０００７】
また、本発明に係るプログラムは、光源及びオブジェクトが配置された仮想３次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置として、家庭用ゲーム機、携帯用ゲーム機、業務用ゲーム機、携帯電話機、携帯情報端末（ＰＤＡ）やパーソナルコンピュータなどのコンピュータを機能させるためのプログラムであって、前記オブジェクトの影を描画するための影描画用オブジェクトを前記仮想３次元空間に配置する影描画用オブジェクト配置手段、前記影描画用オブジェクトを構成するポリゴンの各頂点の透過度を、前記光源の位置と、前記オブジェクトの位置と、前記オブジェクトの形状データと、に基づいて決定する透過度決定手段、及び、前記透過度決定手段によって決定された透過度に基づいて前記ゲーム画面を生成し、表示させる表示制御手段、として前記コンピュータを機能させ、前記影描画用オブジェクト配置手段は、前記影描画用オブジェクトを構成するポリゴンの数を、前記視点と前記オブジェクトとの間の距離に基づいて制御するポリゴン数制御手段を含むことを特徴とするプログラムである。
【０００８】
また、本発明に係る情報記憶媒体は、上記プログラムを記録したコンピュータ読み取り可能な情報記憶媒体である。また、本発明に係るプログラム配信装置は、上記プログラムを記録した情報記憶媒体を備え、当該情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信装置である。また、本発明に係るプログラム配信方法は、上記プログラムを記録した情報記憶媒体を備え、当該情報記憶媒体から上記プログラムを読み出し、配信するプログラム配信方法である。
【０００９】
本発明は、光源及びオブジェクトが配置された仮想３次元空間を所与の視点から見た様子を表すゲーム画面を表示するゲーム装置に関するものである。本発明では、上記オブジェクトの影を描画するための影描画用オブジェクトが仮想３次元空間に配置される。また、影描画用オブジェクトを構成するポリゴンの各頂点の透過度が、光源の位置と、上記オブジェクトの位置と、上記オブジェクトの形状データと、に基づいて決定され、その決定された透過度に基づいてゲーム画面が生成され、表示される。特に、本発明では、影描画用オブジェクトを構成するポリゴンの数が、視点と上記オブジェクトとの間の距離に基づいて制御される。本発明によれば、光源から発せられる光によってオブジェクトの影ができ、その影が光源の位置やそのオブジェクトの形状（姿勢）等の変化に応じて変化する様子を、処理負荷の軽減を図りつつ実現できるようになる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施形態の一例について図面に基づき詳細に説明する。
【００１１】
図１は、本発明の実施形態に係るゲーム装置の構成を示す図である。同図に示すゲーム装置１０は、家庭用ゲーム機１１に情報記憶媒体たるＤＶＤ−ＲＯＭ２５及びメモリカード２８が装着され、さらにモニタ１８及びスピーカ２２が接続されることによって構成される。例えば、モニタ１８には家庭用テレビ受像機が用いられ、スピーカ２２にはその内蔵スピーカが用いられる。
【００１２】
家庭用ゲーム機１１は、バス１２、マイクロプロセッサ１４、画像処理部１６、音声処理部２０、ＤＶＤ−ＲＯＭ再生部２４、主記憶２６、入出力処理部３０及びコントローラ３２を含んで構成される公知のコンピュータゲームシステムである。コントローラ３２以外の構成要素は筐体内に収容される。
【００１３】
バス１２はアドレス及びデータを家庭用ゲーム機１１の各部でやり取りするためのものである。マイクロプロセッサ１４、画像処理部１６、主記憶２６及び入出力処理部３０は、バス１２によって相互データ通信可能に接続される。
【００１４】
マイクロプロセッサ１４は、図示しないＲＯＭに格納されるオペレーティングシステム、ＤＶＤ−ＲＯＭ２５から読み出されるプログラムや、メモリカード２８から読み出されるデータに基づいて、家庭用ゲーム機１１の各部を制御する。主記憶２６は、例えばＲＡＭを含んで構成されるものであり、ＤＶＤ−ＲＯＭ２５から読み出されたプログラムやメモリカード２８から読み出されたデータが必要に応じて書き込まれる。主記憶２６はマイクロプロセッサ１４の作業用としても用いられる。
【００１５】
画像処理部１６はＶＲＡＭを含んで構成されており、マイクロプロセッサ１４から送られる画像データに基づいてＶＲＡＭ上にゲーム画面を描画する。そして、その内容をビデオ信号に変換して所定のタイミングでモニタ１８に出力する。
【００１６】
入出力処理部３０は、マイクロプロセッサ１４が音声処理部２０、ＤＶＤ−ＲＯＭ再生部２４、メモリカード２８及びコントローラ３２にアクセスするためのインタフェースである。入出力処理部３０には、音声処理部２０、ＤＶＤ−ＲＯＭ再生部２４、メモリカード２８及びコントローラ３２が接続される。
【００１７】
音声処理部２０はサウンドバッファを含んで構成されており、ＤＶＤ−ＲＯＭ２５から読み出され、該サウンドバッファに記憶されたゲーム音楽、ゲーム効果音、メッセージ等の各種音声データを再生してスピーカ２２から出力する。
【００１８】
ＤＶＤ−ＲＯＭ再生部２４は、マイクロプロセッサ１４からの指示に従ってＤＶＤ−ＲＯＭ２５に記録されたプログラムを読み取る。なお、ここではプログラムを家庭用ゲーム機１１に供給するためにＤＶＤ−ＲＯＭ２５を用いることとするが、ＣＤ−ＲＯＭやＲＯＭカード等、他のあらゆる情報記憶媒体を用いるようにしてもよい。また、インターネット等のデータ通信網を介して遠隔地からプログラムを家庭用ゲーム機１１に供給するようにしてもよい。
【００１９】
メモリカード２８は、不揮発性メモリ（例えばＥＥＰＲＯＭ等）を含んで構成される。家庭用ゲーム機１１は、メモリカード２８を装着するための複数のメモリカードスロットを備えており、複数のメモリカード２８を同時に装着可能となっている。メモリカード２８は、このメモリカードスロットに対して脱着可能に構成され、例えばセーブデータなどの各種ゲームデータを記憶させるために用いられる。
【００２０】
コントローラ３２は、プレイヤが各種ゲーム操作の入力をするための汎用操作入力手段である。入出力処理部３０は一定周期毎（例えば１／６０秒毎）にコントローラ３２の各部の状態をスキャンし、そのスキャン結果を表す操作信号をバス１２を介してマイクロプロセッサ１４に渡す。マイクロプロセッサ１４は、その操作信号に基づいてプレイヤのゲーム操作を判定する。家庭用ゲーム機１１は複数のコントローラ３２を接続可能に構成されており、各コントローラ３２から入力される操作信号に基づいて、マイクロプロセッサ１４がゲーム制御を行うようになっている。
【００２１】
ゲーム装置１０では、仮想３次元空間（仮想的な３次元ゲーム空間）が主記憶２６に構築される。図２は、主記憶２６に構築される仮想３次元空間の一部を示している。同図に示すように、仮想３次元空間４０にはフィールドオブジェクト４２（第１のオブジェクト）が配置される。フィールドオブジェクト４２は例えば地面や床面等を表すオブジェクトである。フィールドオブジェクト４２上にはキャラクタオブジェクト４４（第２のオブジェクト；影をつくるオブジェクト）が配置される。キャラクタオブジェクト４４の状態（位置や形状（姿勢）等）は、例えばコントローラ３２に対する操作に応じて変化する。
【００２２】
また、仮想３次元空間４０には仮想カメラ４６が設定される。この仮想カメラ４６から仮想３次元空間４０を見た様子を表すゲーム画面が生成され、モニタ１８に表示される。
【００２３】
また、仮想３次元空間４０には光源４８が設定される。以下、光源４８から発せられる光によってフィールドオブジェクト４２上にキャラクタオブジェクト４４の影４５ができ、その影４５が光源４８の位置やキャラクタオブジェクト４４の状態等の変化に応じて変化する様子を好適に表現するための技術について説明する。
【００２４】
ゲーム装置１０では、キャラクタオブジェクト４４の影４５を表示するために、影描画用オブジェクト５０が仮想３次元空間４０に配置される。図３は影描画用オブジェクト５０の一例を示している。影描画用オブジェクト５０は板状の矩形オブジェクトであり、フィールドオブジェクト４２よりも小さいオブジェクトである。また、影描画用オブジェクト５０は、キャラクタオブジェクト４４の影４５を表すのに十分な程度の細かさのポリゴンに分割され、フィールドオブジェクト４２を構成するポリゴンよりも細かいポリゴンで構成される。なお、キャラクタオブジェクト４４の影４５をより精細に表すためには、影描画用オブジェクト５０をより細かいポリゴンに分割する必要があり、図３に示すような影４５を表す場合、実際には、影描画用オブジェクト５０を同図に示すよりも細かいポリゴンに分割する必要がある。
【００２５】
影描画用オブジェクト５０は、キャラクタオブジェクト４４の位置に基づくフィールドオブジェクト４２の一部に重畳して配置される。すなわち、影描画用オブジェクト５０の配置位置はキャラクタオブジェクト４４の現在位置に基づいて決定され、影描画用オブジェクト５０はキャラクタオブジェクト４４に従動する。本実施の形態の場合、影描画用オブジェクト５０の代表頂点Ｐ０の位置と、キャラクタオブジェクト４４の足元位置Ｆと、が一致するようにして、影描画用オブジェクト５０の配置位置が決定される。
【００２６】
また、影描画用オブジェクト５０の向き（姿勢）は、キャラクタオブジェクト４４及び光源４８の位置に基づいて決定される。本実施の形態の場合、影描画用オブジェクト５０の基準方向（本実施の形態の場合、図３におけるＹ軸方向）と、光源４８の位置をフィールドオブジェクト４２上に正射影した位置Ｌから、キャラクタオブジェクト４４の足元位置Ｆへの方向と、が一致するようにして、影描画用オブジェクト５０の向きが決定される。このため、影描画用オブジェクト５０の向きは、キャラクタオブジェクト４４及び光源４８の相対的位置関係の変化（ＸＷ軸方向又はＺＷ軸方向の変化）に応じて変化する。
【００２７】
なお、影描画用オブジェクト５０はフィールドオブジェクト４２から少し浮かした状態で配置されるようにしてもよいし、フィールドオブジェクト４２と同じ高さ（ＹＷ軸座標値）で配置されるようにしてもよい。後者の場合、ゲーム画面を生成する際に、フィールドオブジェクト４２の描画を行った後に、影描画用オブジェクト５０の描画を行うようにすればよい。
【００２８】
影描画用オブジェクト５０を構成するポリゴンの各頂点の色（例えばＲＧＢ値）は黒色に設定される（図３の頂点Ｐ０−Ｐ４参照）。また、影描画用オブジェクト５０を構成するポリゴンの各頂点のアルファ値（半透明合成率，透過度）は、キャラクタオブジェクト４４及び光源４８の位置等に基づいて決定される。具体的には、影描画用オブジェクト５０上の、キャラクタオブジェクト４４の影４５が表されるべき領域（図３の斜線部分。以下、影領域と記載する。）が、光源４８の位置、キャラクタオブジェクト４４の位置や、キャラクタオブジェクト４４の形状データ等に基づいて、シャドウボリューム等の公知のアルゴリズムによって特定される。そして、影領域内に含まれない頂点のアルファ値が第１所定値（本実施の形態では０）に設定される（図３の頂点Ｐ０及びＰ４参照）。また、影領域内に含まれる頂点のアルファ値が第１所定値以外の第２所定値（本実施の形態では２５５）に設定される（図３の頂点Ｐ１−Ｐ３参照）。なお、本実施の形態では、影描画用オブジェクト５０を構成するポリゴンの各頂点のアルファ値としては、０以上であって２５５以下の整数値が設定され得るようになっている。アルファ値が０である場合には「完全に透明な状態」となり、アルファ値が２５５である場合には「完全に不透明な状態」となる。すなわち、アルファ値が大きくなるにつれて、透過度が減少するようになっている。
【００２９】
上記の影描画用オブジェクト５０が仮想３次元空間４０に配置されることにより、ゲーム画面には、フィールドオブジェクト４２を仮想カメラ４６から見た様子を表す画像と、影描画用オブジェクト５０を仮想カメラ４６から見た様子を表す画像とが、影描画用オブジェクト５０の各頂点に設定されたアルファ値に基づいて半透明合成された画像が表示され、光源４８から発せられる光によってフィールドオブジェクト４２上にキャラクタオブジェクト４４の影４５ができる様子が表されることになる。そして、影描画用オブジェクト５０の位置、向き及び各頂点のアルファ値は、キャラクタオブジェクト４４や光源４８の状態の変化に応じて変化するため、「光源４８から発せられる光によって生じるキャラクタオブジェクト４４の影４５が、光源４８の位置やキャラクタオブジェクト４４の状態等の変化に応じて変化する様子」がゲーム画面に表されるようになる。
【００３０】
なお、ゲーム装置１０では、キャラクタオブジェクト４４の位置と、仮想カメラ４６の位置（視点位置）と、の間の距離に応じて、影描画用オブジェクト５０のポリゴン数が変化するようになっている。
【００３１】
より具体的には、ゲーム装置１０では、例えば図４に示すようなポリゴン数制御テーブルが記憶されており、このポリゴン数制御テーブルに基づき、影描画用オブジェクト５０のポリゴン数が変化するようになっている。同図に示すように、ポリゴン数制御テーブルは、キャラクタオブジェクト４４と仮想カメラ４６との間の距離ｄの範囲と、影描画用オブジェクト５０のポリゴン数（分割数）と、を対応づけてなるテーブルである。なお、同図において、分割数ｎｘは、影描画用オブジェクト５０のＸ軸方向（図３参照）の分割数（ポリゴン数）を示しており、分割数ｎｙは、影描画用オブジェクト５０のＹ軸方向（図３参照）の分割数（ポリゴン数）を示している。例えば、図３に示す影描画用オブジェクト５０の場合、分割数ｎｘは１０であり、分割数ｎｙは１４である。ポリゴン数制御テーブルにおいて、分割数ｎｘ及びｎｙの値は距離ｄが大きくなるにつれて小さくなるように設定されている。キャラクタオブジェクト４４と仮想カメラ４６との間の距離が大きくなると、キャラクタオブジェクト４４の影４５はゲーム画面に小さく表されるため、キャラクタオブジェクト４４の影４５を精細に表さなくても見た目上問題がない。すなわち、キャラクタオブジェクト４４と仮想カメラ４６との間の距離が大きくなると、影描画用オブジェクト５０のポリゴン数を減少させても見た目上問題がない。このため、ポリゴン数制御テーブルでは、キャラクタオブジェクト４４と仮想カメラ４６との間の距離が大きくなるにつれて、影描画用オブジェクト５０のポリゴン数が少なくなるように設定されている。なお、ポリゴン数制御テーブルを記憶せずに、キャラクタオブジェクト４４と仮想カメラ４６との間の距離ｄに基づき所定の演算を行うことにより分割数ｎｘ及びｎｙの値を算出し、影描画用オブジェクト５０のポリゴン数を変化させるようにしてもよい。
【００３２】
以上のようにして、キャラクタオブジェクト４４と仮想カメラ４６との間の距離に応じて影描画用オブジェクト５０のポリゴン数が変化することにより、ゲーム装置１０では、キャラクタオブジェクト４４と仮想カメラ４６との間の距離が比較的小さい場合、すなわち、キャラクタオブジェクト４４の影４５がゲーム画面に比較的大きく表される場合には、影描画用オブジェクト５０が細かいポリゴンに分割され、キャラクタオブジェクト４４の影４５が精細に表されるようになっている。一方、キャラクタオブジェクト４４と仮想カメラ４６との間の距離が比較的大きい場合、すなわち、キャラクタオブジェクト４４の影４５がゲーム画面に比較的小さく表される場合には、影描画用オブジェクト５０が粗いポリゴンに分割され、キャラクタオブジェクト４４の影４５を精細に表わさず、影表現に係る処理負荷の軽減を図るようになっている。
【００３３】
ここで、ゲーム装置１０で実行される処理について説明する。
【００３４】
図５は、ゲーム装置１０において所定時間ごと（例えば１／６０秒ごと）に実行されるメイン処理を示すフロー図である。同図に示す処理は、ＤＶＤ−ＲＯＭ２５から読み出されるプログラムがマイクロプロセッサ１４によって実行されることによって実現される。同図に示すように、ゲーム装置１０では、まず環境処理が実行される（Ｓ１０１）。環境処理では、仮想３次元空間４０のすべての静的オブジェクト及び動的オブジェクトの位置及び姿勢が算出される。静的オブジェクトは、建物等の位置を変えないオブジェクトである。これに対して動的オブジェクトは、プレイヤの操作対象のキャラクタオブジェクト４４のように位置や姿勢が変化するオブジェクトである。
【００３５】
環境処理では、仮想カメラ４６の位置、向き及び画角も算出される。例えば、仮想カメラ４６の位置（視点座標）は、プレイヤの操作対象のキャラクタオブジェクト４４の位置に基づき、該キャラクタオブジェクト４４に従動するように設定される。また例えば、仮想カメラ４６の向き（視線方向）は、プレイヤの操作対象のキャラクタオブジェクト４４の代表点を向くように設定される。また、画角には例えば固定値が用いられる。
【００３６】
その後、ゲーム装置１０ではジオメトリ処理が実行される（Ｓ１０２）。ジオメトリ処理では、ワールド座標系（ＸＷ，ＹＷ，ＺＷ）から視点座標系、すなわち視点座標を原点とする座標系への座標変換が行われる。また、各オブジェクトを構成するポリゴンの頂点の色情報が、光源４８の情報（光源４８の色及び位置）に基づいて算出される。さらに、クリッピング処理も行われる。
【００３７】
その後、ゲーム装置１０ではレンダリング処理が実行される（Ｓ１０３）。すなわち、マイクロプロセッサ１４が、仮想カメラ４６の撮影範囲内にある各ポリゴンの頂点座標、頂点色情報及びテクスチャ座標等を画像処理部１６に渡す。そして、画像処理部１６が、それらの情報に基づいてＶＲＡＭ上にゲーム画面を表す画像を形成する。この画像は、視点座標系で記述された各オブジェクトをスクリーン座標系に変換することによって形成される。こうして、ＶＲＡＭに形成される画像は所定タイミングでモニタ１８に出力される。
【００３８】
図６は、影描画用オブジェクト５０に関連する処理を特に示すフロー図である。この処理は、例えば環境処理（Ｓ１０１）やジオメトリ処理（Ｓ１０２）の一部として実行される。また、この処理は、影を落とすオブジェクト（キャラクタオブジェクト４４）ごとに実行される。
【００３９】
同図に示すように、影描画用オブジェクト５０に関連する処理としては、まず影描画用オブジェクト５０の位置及び向きが決定される（Ｓ２０１）。影描画用オブジェクト５０の位置は、影描画用オブジェクト５０の代表頂点Ｐ０の位置と、キャラクタオブジェクト４４の足元位置Ｆと、が一致するようにして決定される。また、影描画用オブジェクト５０の向きは、影描画用オブジェクト５０の基準方向と、光源４８の位置をフィールドオブジェクト４２上に正射影した位置Ｌから、キャラクタオブジェクト４４の足元位置Ｆへの方向と、が一致するようにして決定される。
【００４０】
次に、影描画用オブジェクト５０のポリゴン数が決定される（Ｓ２０２）。ここでは、まずキャラクタオブジェクト４４と仮想カメラ４６との間の距離が取得される。その後、ポリゴン数制御テーブル（図４）が参照され、その距離が含まれる範囲に対応づけられたｎｘ及びｎｙの値が取得される。こうして、影描画用オブジェクト５０のＸ軸及びＹ軸方向（図３参照）の分割数が決定され、影描画用オブジェクト５０のポリゴン数が決定される。
【００４１】
次に、影描画用オブジェクト５０における影領域が特定される（Ｓ２０３）。Ｓ２０１で決定された影描画用オブジェクト５０の位置及び向き、光源４８の位置、キャラクタオブジェクト４４の位置、キャラクタオブジェクト４４の形状データ等に基づいて、例えばシャドウボリューム等の公知のアルゴリズムにより、影描画用オブジェクト５０における影領域が算出される。
【００４２】
次に、影描画用オブジェクト５０を構成するポリゴンの各頂点のアルファ値が設定される（Ｓ２０４）。すなわち、影描画用オブジェクト５０を構成するポリゴンの各頂点について、その頂点が影領域内に含まれるか否かが判定され、その判定結果に応じてアルファ値が設定される。本実施の形態の場合、影領域内に含まれる頂点のアルファ値は２５５に設定され、影領域内に含まれない頂点のアルファ値は０に設定される。
【００４３】
以上説明したように、ゲーム装置１０では、「光源４８から発せられる光によってフィールドオブジェクト４２上にキャラクタオブジェクト４４の影４５ができ、その影４５が光源４８の位置やキャラクタオブジェクト４４の状態等の変化に応じて変化する様子」が表現されるようになっている。上記のような影表現を実現するためには、フィールドオブジェクト４２を細かいポリゴンに分割することが考えられるが、この場合、フィールドオブジェクト４２のデータ量が大きくなってしまうという難点がある。この点、ゲーム装置１０では、上記のような影表現がデータ量の増大を抑止しつつ実現されるようになっている。
【００４４】
また、ゲーム装置１０では、キャラクタオブジェクト４４と仮想カメラ４６との間の距離に基づいて、影描画用オブジェクト５０を構成するポリゴン数（言い換えれば、影描画用オブジェクト５０を構成するポリゴンの細かさ）が変化するようになっている。このため、ゲーム装置１０では、上記のような影表現が処理負荷の軽減を図りつつ実現されるようになっている。
【００４５】
なお、光源４８の高さが低い場合（ＹＷ軸座標値が小さい場合）、キャラクタオブジェクト４４の影４５が長くなり、影描画用オブジェクト５０内に納まらなくなってしまう場合が想定される。このような場合、キャラクタオブジェクト４４の影４５が不完全な状態で表されることになり、プレイヤに違和感を感じさせてしまうおそれがある。
【００４６】
そこで、影描画用オブジェクト５０の影領域内の頂点のアルファ値を一定値（例えば２５５）に設定するのではなく、キャラクタオブジェクト４４の位置からの距離に基づく値に設定するようにしてもよい。例えば図７に示すように、影描画用オブジェクト５０の影領域内の頂点のアルファ値を、キャラクタオブジェクト４４の位置から離れるにつれて、所定の最大値（同図の例では２５５）から所定の最小値（同図の例では３２）まで徐々に又は段階的に小さくなるように設定するようにしてもよい。こうすれば、ゲーム画面においてキャラクタオブジェクト４４の影４５がグラデーション表示されるようになる。すなわち、キャラクタオブジェクト４４の影４５がキャラクタオブジェクト４４から離れるにつれて徐々に又は段階的に薄くなるように表示されるようになる。その結果、キャラクタオブジェクト４４の影４５が、キャラクタオブジェクト４４から離れるにつれてぼかされて表示されることになるため、キャラクタオブジェクト４４の影４５が影描画用オブジェクト５０内に納まらなくなってしまう場合であっても、上記のような違和感をプレイヤに感じさせないように図ることが可能になる。なお、この場合、影描画用オブジェクト５０の影領域内の頂点の色（明度）を、キャラクタオブジェクト４４の位置から離れるにつれて徐々に又は段階的に変化させることによって、ゲーム画面においてキャラクタオブジェクト４４の影４５がグラデーション表示されるようにしてもよい。
【００４７】
または、光源４８の高さ（ＹＷ軸座標値）に応じて、影描画用オブジェクト５０の長さ（図３におけるＹ軸方向の長さ）を変化させるようにしてもよい。すなわち、光源４８の高さに応じた長さの影描画用オブジェクト５０が仮想３次元空間４０に配置されるようにしてもよい。例えば、光源４８の高さの範囲と、影描画用オブジェクト５０の長さと、を対応づけてなるテーブルを記憶しておき、このテーブルに基づき、影描画用オブジェクト５０の長さを決定するようにしてもよい。また例えば、光源４８の高さに基づき所定の演算を行うことによって影描画用オブジェクト５０の長さを決定するようにしてもよい。このようにすれば、キャラクタオブジェクト４４の影４５が影描画用オブジェクト５０内に納まらなくなってしまうことを防ぐことが可能になり、上記のような違和感をプレイヤに感じさせないように図ることが可能になる。
【００４８】
なお、本発明は以上に説明した実施の形態に限定されるものではない。
【００４９】
例えば、１体のキャラクタオブジェクト４４に対して、複数の影描画用オブジェクト５０を配置するようにしてもよい。例えば、仮想３次元空間４０に複数の光源４８が設定されており、キャラクタオブジェクト４４の影４５が複数生じる場合には、各光源４８ごとに、その光源４８に対応する影描画用オブジェクト５０を、その光源４８及びキャラクタオブジェクト４４の位置に基づいて配置するようにしてもよい。
【００５０】
また例えば、本実施の形態に比べて影描画用オブジェクト５０が大きくなるが、図８に示すような影描画用オブジェクト５０を配置するようにしてもよい。すなわち、キャラクタオブジェクト４４の位置から所定距離の範囲内をカバー可能な影描画用オブジェクト５０を、キャラクタオブジェクト４４の足元位置Ｆと、影描画用オブジェクト５０の中心点と、が一致するようにして配置するようにしてもよい。こうすれば、光源４８の位置が変化することによって、光源４８とキャラクタオブジェクト４４との相対的位置関係が変化しても、影描画用オブジェクト５０の配置位置を変化させる必要がなくなる。その結果、影描画用オブジェクト５０の配置位置を決定するにあたって、光源４８の位置を考慮する必要がなくなる。
【００５１】
また例えば、高さ（ＹＷ軸方向の長さ）の異なる複数のキャラクタオブジェクト４４が仮想３次元空間４０に配置される場合には、各キャラクタオブジェクト４４に対応づけて、影描画用オブジェクト５０の長さ（図３におけるＹ軸方向の長さ）を記憶しておくことにより、影描画用オブジェクト５０の長さを、各キャラクタオブジェクト４４ごとにそのキャラクタオブジェクト４４の高さに応じて変化させるようにしてもよい。或いは、キャラクタオブジェクト４４の高さの範囲と、影描画用オブジェクト５０の長さと、を対応づけてなるテーブルを記憶させておき、このテーブルに基づき、影描画用オブジェクト５０の長さを、各キャラクタオブジェクト４４ごとにそのキャラクタオブジェクト４４の高さに応じて変化させるようにしてもよい。
【００５２】
また例えば、影をつくるオブジェクトはキャラクタオブジェクト４４に限られず、他の種類のオブジェクトであってもよい。例えば建物等の静的オブジェクトであってもよい。
【００５３】
また例えば、以上の説明では、プログラムを情報記憶媒体たるＤＶＤ−ＲＯＭ２５から家庭用ゲーム機１１に供給するようにしたが、通信ネットワークを介してプログラムを家庭等に配信するようにしてもよい。図９は、通信ネットワークを用いたプログラム配信システムの全体構成を示す図である。同図に基づいて本発明に係るプログラム配信方法を説明する。同図に示すように、このプログラム配信システム１００は、ゲームデータベース１０２、サーバ１０４、通信ネットワーク１０６、パソコン１０８、家庭用ゲーム機１１０、ＰＤＡ（携帯情報端末）１１２を含んでいる。このうち、ゲームデータベース１０２とサーバ１０４とによりプログラム配信装置１１４が構成される。通信ネットワーク１０６は、例えばインターネットやケーブルテレビネットワークを含んで構成されている。このシステムでは、ゲームデータベース（情報記憶媒体）１０２に、ＤＶＤ−ＲＯＭ２５の記憶内容と同様のプログラムが記憶されている。そして、パソコン１０８、家庭用ゲーム機１１０又はＰＤＡ１１２等を用いて需要者がゲーム配信要求をすることにより、それが通信ネットワーク１０６を介してサーバ１０４に伝えられる。そして、サーバ１０４はゲーム配信要求に応じてゲームデータベース１０２からプログラムを読み出し、それをパソコン１０８、家庭用ゲーム機１１０、ＰＤＡ１１２等、ゲーム配信要求元に送信する。ここではゲーム配信要求に応じてゲーム配信するようにしたが、サーバ１０４から一方的に送信するようにしてもよい。また、必ずしも一度にゲームの実現に必要な全てのプログラムを配信（一括配信）する必要はなく、ゲームの局面に応じて必要な部分を配信（分割配信）するようにしてもよい。このように通信ネットワーク１０６を介してゲーム配信するようにすれば、プログラムを需要者は容易に入手することができるようになる。
【図面の簡単な説明】
【００５４】
【図１】本実施の形態に係るゲーム装置のハードウェア構成を示す図である。
【図２】仮想３次元空間の一例を示す図である。
【図３】影描画用オブジェクトの一例を示す図である。
【図４】ポリゴン数制御テーブルの一例を示す図である。
【図５】ゲーム装置で実行されるメイン処理を示すフロー図である。
【図６】影描画用オブジェクトに関連する処理を示すフロー図である。
【図７】影描画用オブジェクトの一例を示す図である。
【図８】仮想３次元空間の一例を示す図である。
【図９】本発明の他の実施形態に係るプログラム配信システムの全体構成を示す図である。
【符号の説明】
【００５５】
１０  ゲーム装置、１１，１１０  家庭用ゲーム機、１２  バス、１４  マイクロプロセッサ、１６  画像処理部、１８  モニタ、２０  音声処理部、２２  スピーカ、２４  ＤＶＤ−ＲＯＭ再生部、２５  ＤＶＤ−ＲＯＭ、２６  主記憶、２８  メモリカード、３０  入出力処理部、３２  コントローラ、４０  仮想３次元空間、４２  フィールドオブジェクト、４４  キャラクタオブジェクト、４５  影、４６  仮想カメラ、４８  光源、５０  影描画用オブジェクト、１００  プログラム配信システム、１０２  ゲームデータベース、１０４  サーバ、１０６  通信ネットワーク、１０８  パソコン、１１２  携帯情報端末（ＰＤＡ）、１１４  プログラム配信装置。
【図１】
0004833674.tif 000002
【図２】
0004833674.tif 000003
【図３】
0004833674.tif 000004
【図４】
0004833674.tif 000005
【図５】
0004833674.tif 000006
【図６】
0004833674.tif 000007
【図７】
0004833674.tif 000008
【図８】
0004833674.tif 000009
【図９】
0004833674.tif 000010