(57)【要約】    【構成】  ビデオゲーム装置１２はＣＰＵ３６を含み、ＣＰＵ３６はＧＰＵ４２と連携して、ゲーム画像を生成および表示する。具体的には、オブジェクトは仮想３次元空間に配置される。この仮想３次元空間は視点座標系に変換され、さらに、投影変換される。投影変換後、特定のオブクジェクトに対応して判定点が設定され、特定のオブジェクトのＺ値と判定点のＺ値とに基づいて、特定のオブジェクトの遮蔽度が算出される。遮蔽度に応じて、視点の移動を制御したり、光源の輝度を変化させたりする。    【効果】  遮蔽度に応じた様々な画像を生成・表示できるので、よりリアルな演出が可能である。【選択図】  図２
2005310020.tif 000002
【特許請求の範囲】
【請求項１】
操作者の操作入力に応じて３次元画像を生成する３次元画像生成装置であって、
操作者の操作入力を検出する操作入力検出手段、
３次元画像を構成するオブジェクトを描画するためのオブジェクトデータを記憶するオブジェクトデータ記憶手段、
仮想３次元空間内の投影スクリーンに投影された画像を表示する表示手段、
前記操作入力検出手段によって検出された操作入力と前記オブジェクトデータ記憶手段に記憶されたオブジェクトデータとに基づいて前記仮想３次元空間を生成する仮想３次元空間生成手段、
前記仮想３次元空間生成手段によって生成された仮想３次元空間内において視点を制御する視点制御手段、
前記視点制御手段によって制御された視点から見た前記仮想３次元空間を前記投影スクリーンに投影した前記画像を生成する表示画像生成手段、
前記表示画像生成手段によって生成された画像の各画素についての奥行き値を記憶する奥行き値記憶手段、
少なくとも前記仮想３次元空間における特定のオブジェクトの配置位置を記憶するオブジェクト配置位置記憶手段、
前記画像のうち前記特定のオブジェクトについての配置位置を含む所定範囲において、所定数の判定点を設定する判定点設定手段、
前記判定点設定手段において設定された所定数の判定点の第１奥行き値が前記特定のオブジェクトの第２奥行き値よりも小さいか否かを判定する判定手段、および
前記判定手段によって前記第１奥行き値が前記第２奥行き値よりも小さいと判定された前記判定点の個数に応じて前記特定のオブジェクトの遮蔽度を算出する遮蔽度算出手段を備える、３次元画像生成装置。
【請求項２】
前記判定点設定手段は、前記投影スクリーンに投影された前記特定のオブジェクトを近接して内包する範囲において、前記判定点を設定する、請求項１記載の３次元画像生成装置。
【請求項３】
前記判定点設定手段は、前記仮想３次元空間における前記特定のオブジェクトを前記投影スクリーンに投影した場合において、当該投影スクリーンに投影された当該特定のオブジェクトを近接して内包する円の円周上に前記判定点を設定する、請求項１記載の３次元画像生成装置。
【請求項４】
前記遮蔽度算出手段は、前記判定点の総数に対して、前記判定手段によって前記第１奥行き値が前記第２奥行き値よりも小さいと判定された前記判定点の個数の割合を算出し、
前記視点制御手段は、前記遮蔽度算出手段によって算出された割合に応じて、前記視点を別の視点に移動させる、請求項１ないし３のいずれかに記載の３次元画像生成装置。
【請求項５】
前記視点制御手段は、前記遮蔽度算出手段によって算出された割合が所定値よりも小さくなるまで前記視点の移動を繰り返す、請求項４記載の３次元画像生成装置。
【請求項６】
前記遮蔽度算出手段は、前記判定点の総数に対して、前記判定手段によって前記第１奥行き値が前記第２奥行き値よりも小さいと判定された前記判定点の個数の割合を算出し、
前記遮蔽度算出手段によって算出された割合に応じて、前記特定のオブジェクトの表示にかかるパラメータを変化させるパラメータ変化手段をさらに備える、請求項１ないし３のいずれかに記載の３次元画像生成装置。
【請求項７】
前記特定のオブジェクトは光源を含み、
前記パラメータ変化手段は、少なくとも前記光源の明るさを変化させる、請求項６記載の３次元画像生成装置。
【請求項８】
操作者の操作入力を検出する操作入力検出手段、
３次元画像を構成するオブジェクトを描画するためのオブジェクトデータを記憶するオブジェクトデータ記憶手段、
仮想３次元空間内の投影スクリーンに投影された画像を表示する表示手段、および
前記画像の各画素についての奥行き値を記憶する奥行き値記憶手段を備える３次元画像生成装置の３次元画像生成プログラムであって、
前記３次元画像生成装置のコンピュータに、
前記操作入力検出手段によって検出された操作入力と前記オブジェクトデータ記憶手段に記憶されたオブジェクトデータとに基づいて前記仮想３次元空間を生成する仮想３次元空間生成ステップ、
前記仮想３次元空間生成ステップによって生成された仮想３次元空間内において視点を制御する視点制御ステップ、
前記視点制御ステップによって制御された視点から見た前記仮想３次元空間を前記投影スクリーンに投影した前記画像を生成する表示画像生成ステップ、
少なくとも前記仮想３次元空間における特定のオブジェクトの配置位置を記憶するオブジェクト配置位置記憶ステップ、
前記画像のうち前記特定のオブジェクトについての配置位置を含む所定範囲において、所定数の判定点を設定する判定点設定ステップ、
前記判定点設定ステップにおいて設定された所定数の判定点の第１奥行き値が前記特定のオブジェクトの第２奥行き値よりも小さいか否かを判定する判定ステップ、および
前記判定ステップによって前記第１奥行き値が前記第２奥行き値よりも小さいと判定された前記判定点の個数に応じて前記特定のオブジェクトの遮蔽度を算出する遮蔽度算出ステップを、実行させる、３次元画像生成プログラム。
【請求項９】
前記判定点設定ステップは、前記投影スクリーンに投影された前記特定のオブジェクトを近接して内包する範囲において、前記判定点を設定する、請求項８記載の３次元画像生成プログラム。
【請求項１０】
前記判定点設定ステップは、前記仮想３次元空間における前記特定のオブジェクトを前記投影スクリーンに投影した場合において、当該投影スクリーンに投影された当該特定のオブジェクトを近接して内包する円の円周上に前記判定点を設定する、請求項８記載の３次元画像生成プログラム。
【請求項１１】
前記遮蔽度算出ステップは、前記判定点の総数に対して、前記判定ステップによって前記第１奥行き値が前記第２奥行き値よりも小さいと判定された前記判定点の個数の割合を算出し、
前記視点制御ステップは、前記遮蔽度算出ステップによって算出された割合に応じて、前記視点を別の視点に移動させる、請求項８ないし１１のいずれかに記載の３次元画像生成プログラム。
【請求項１２】
前記視点制御ステップは、前記遮蔽度算出ステップによって算出された割合が所定値よりも小さくなるまで前記視点の移動を繰り返す、請求項１１記載の３次元画像生成プログラム。
【請求項１３】
前記遮蔽度算出ステップは、前記判定点の総数に対して、前記判定ステップによって前記第１奥行き値が前記第２奥行き値よりも小さいと判定された前記判定点の個数の割合を算出し、
前記遮蔽度算出ステップによって算出された割合に応じて、前記特定のオブジェクトの表示にかかるパラメータを変化させるパラメータ変化ステップをさらに実行させる、請求項８ないし１１のいずれかに記載の３次元画像生成プログラム。
【請求項１４】
前記特定のオブジェクトは光源を含み、
前記パラメータ変化ステップは、少なくとも前記光源の明るさを変化させる、請求項１３記載の３次元画像生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は３次元画像生成装置および３次元画像生成プログラムに関し、特にたとえば、操作者の操作入力に応じて３次元画像を生成する、３次元画像生成装置および３次元画像生成プログラムに関する。
【背景技術】
【０００２】
一般的によく知られているいわゆるコンピュータグラフィックス（ＣＧ）技術では、仮想３次元空間が設定され、この空間にオブジェクトが描画され、仮想スクリーンが設定され、描画（表示）画像が投影変換され表示される。このＣＧ技術では、仮想空間のどの位置から見た画像を表示するかを決定するために、視点制御を行う必要がある。特にコントローラ入力に応じてリアルタイムで３次元画像を描画するようなゲームなどでは、視点制御は重要である。具体的には、視点の設定によっては、注目したいオブジェクトを他のオブジェクトが隠してしまい、意図した画像が得られないことがある。このようなときには、自動的に他のオブジェクトが注目したいオブジェクトを隠さないような位置に視点を移動させるのが一般的である。
【０００３】
たとえば、従来のこの種の３次元画像生成装置の一例が特許文献１に開示される。この特許文献１によれば、操作オブジェクトと、ゲーム空間中のカメラ位置との間に、他のオブジェクトなどの遮蔽物が入ってしまったときには、遮蔽物が操作オブジェクトを遮らないような位置に、カメラを回転移動させる。このようにして、常に操作オブジェクトを画面内に表示していた。
【０００４】
また、従来の３次元画像装置の他の例が特許文献２に開示される。この特許文献２によれば、プレイヤキャラクタとカメラとの間に、遮蔽物が入ってきたときには、遮蔽物が遮らなくなるまでカメラをプレイヤキャラクタに接近させる。
【０００５】
さらに、従来の３次元画像装置のその他の例が特許文献３に開示される。この特許文献３によれば、プレイヤキャラクタとカメラとの間に遮蔽物が入ってしまったときには、遮蔽物の内部にカメラを移動させ、急激な画像変化が起こらないように配慮している。
【特許文献１】特開平９−１６７２６０号
【特許文献２】特開２００２−３６０９２０号
【特許文献３】特開２００３−３３４３８０号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、いずれの従来技術においても、操作オブジェクト（プレイヤキャラクタ）とカメラとの間に遮蔽物が入ったときには、必ずカメラ位置を変更し、視点を移動させるようにしてある。このため、仮想３次元空間中に描画されるオブジェクトの数が多い場合には、視点移動が頻繁に行われてしまい、操作者（プレイヤ）に不快感を与えていた。また、操作オブジェクトの一部分だけが遮蔽物によって隠れている場合、または、画面表現上、多少の遮蔽物による操作オブジェクトの遮蔽があっても構わない場合であっても、視点移動が行われてしまっていた。このような問題を回避するために、操作オブジェクトが遮蔽されている度合い（遮蔽度）を検出（算出）して、遮蔽度に応じて視点移動を制御することが考えられるが、遮蔽度を検出するためには、いずれの従来技術においても注視点を増やす必要があり、しかも３次元空間における処理であるため、処理負担が増大するという問題があった。
【０００７】
それゆえに、この発明の主たる目的は、新規な、３次元画像生成装置および３次元画像生成プログラムを提供することである。
【０００８】
また、この発明の他の目的は、カメラで追従するオブジェクトのうち、遮蔽されているかどうかを考慮すべきオブジェクトについて、当該オブジェクトが隠れている度合いを考慮した表示画像を簡単に生成できる、３次元画像生成装置および３次元画像生成プログラムを提供することである。
【０００９】
さらに、この発明のその他の目的は、オブジェクトを或る程度隠すような表現の表示画像を生成できる、３次元画像生成装置および３次元画像生成プログラムを提供することである。
【課題を解決するための手段】
【００１０】
請求項１の発明は、操作者の操作入力に応じて３次元画像を生成する３次元画像生成装置であって、操作入力検出手段、オブジェクトデータ記憶手段、表示手段、仮想３次元空間生成手段、視点制御手段、表示画像生成手段、奥行き値記憶手段、オブジェクト配置位置記憶手段、判定点設定手段、判定手段、および遮蔽度算出手段を備える。操作検出手段は、操作者の操作入力を検出する。オブジェクトデータ記憶手段は、３次元画像を構成するオブジェクトを描画するためのオブジェクトデータを記憶する。表示手段は、仮想３次元空間内の投影スクリーンに投影された画像を表示する。仮想３次元空間生成手段は、操作入力検出手段によって検出された操作入力とオブジェクトデータ記憶手段に記憶されたオブジェクトデータとに基づいて仮想３次元空間を生成する。視点制御手段は、仮想３次元空間生成手段によって生成された仮想３次元空間内において視点を制御する。表示画像生成手段は、視点制御手段によって制御された視点から見た仮想３次元空間を投影スクリーンに投影した画像を生成する。奥行き値記憶手段は、表示画像生成手段によって生成された画像の各画素についての奥行き値を記憶する。オブジェクト配置位置記憶手段は、少なくとも仮想３次元空間における特定のオブジェクトの配置位置を記憶する。判定点設定手段は、画像のうち特定のオブジェクトの配置位置を含む所定範囲において、所定数の判定点を設定する。判定手段は、判定点設定手段において設定された所定数の判定点の第１奥行き値が特定のオブジェクトについての第２奥行き値よりも小さいか否かを判定する。そして、遮蔽度算出手段は、判定手段によって第１奥行き値が第２奥行き値よりも小さいと判定された判定点の個数に応じて特定のオブジェクトの遮蔽度を算出する。
【００１１】
請求項１の発明では、３次元画像生成装置は、操作者の操作入力に応じて３次元画像を生成する。操作者の操作入力は操作入力検出手段（３６，Ｓ１：後述する実施例で相当する参照符号。以下同じ。）によって検出される。オブジェクトデータ記憶手段（４０）は、３次元画像を構成するオブジェクトを描画するためのオブジェクトデータを記憶する。表示手段（３４，３６，３８，５８）は、仮想３次元空間内の投影スクリーンに投影された画像を表示する。仮想３次元空間生成手段（３６，４２，Ｓ３）は、操作入力検出手段（３６，Ｓ１）によって検出された操作入力とオブジェクトとデータ記憶手段（４０）に記憶されたオブジェクトデータとに基づいて仮想３次元空間を生成する。視点制御手段（３６，Ｓ５）は、仮想３次元空間生成手段（３６，４２，Ｓ３）によって生成された仮想３次元空間内において視点（仮想カメラ）を制御する。つまり、視点の位置および向きを制御する。表示画像生成手段（３６，４２，Ｓ７，Ｓ９，Ｓ１１）は、視点制御手段（３６，Ｓ５）によって制御された視点から見た仮想３次元空間を投影スクリーンに投影した画像を生成する。つまり、投影変換処理が実行される。奥行き値記憶手段（５０）は、表示画像生成手段（３６，４２，Ｓ７，Ｓ９，Ｓ１１）によって生成された画像の各画素についての奥行き値（Ｚ値）を記憶する。オブジェクト位置記憶手段（３６，４０）は、少なくとも３次元空間における特定のオブジェクトの配置位置（現在位置）を記憶する。判定点設定手段（３６，Ｓ１５）は、投影変換された画像のうち特定のオブジェクトについての配置位置を含む所定範囲において所定数の判定点を設定する。判定手段（３６，Ｓ５３〜Ｓ６３）は、判定点設定手段（３６，Ｓ１５）によって設定された所定数の判定点の第１奥行き値が特定のオブジェクトの第２奥行き値よりも小さいか否かを判定する。つまり、視点と特定のオブジェクトとの間に遮蔽物が存在するか否を判断する。遮蔽度算出手段（３６，Ｓ６５）は、判定手段（３６，Ｓ５３〜Ｓ６３）によって第１奥行き値が第２奥行き値よりも小さいと判定された判定点の個数に応じて特定のオブジェクトの遮蔽度を算出する。
【００１２】
請求項１の発明によれば、投影変換された特定のオブジェクトについて設定した判定点の奥行き値が、当該特定のオブジェクトについての奥行き値よりも小さいか否かを判定するだけなので、遮蔽度の算出が簡単である。したがって、遮蔽度を考慮した表示画像を簡単に生成することができる。
【００１３】
請求項２の発明は請求項１に従属し、判定点設定手段は、投影スクリーンに投影された特定のオブジェクトを近接して内包する範囲において、判定点を設定する。
【００１４】
請求項２の発明では、判定点設定手段（３６，Ｓ１５）は、投影スクリーンに投影された特定のオブジェクトを近接して内包する範囲において、判定点を設定する。たとえば、特定のオブジェクトの近傍に判定点が設定される。
【００１５】
請求項２の発明によれば、判定点は特定のオブジェクトが内包される範囲に設定されるので、他のオブジェクトが特定のオブジェクトを遮蔽する遮蔽度をより正確に知ることができる。
【００１６】
請求項３の発明は請求項１に従属し、判定点設定手段は、仮想３次元空間における特定のオブジェクトを投影スクリーンに投影した場合において、当該投影スクリーンに投影された当該特定のオブジェクトを近接して内包する円の円周上に判定点を設定する。
【００１７】
請求項３の発明では、判定点設定手段（３６，Ｓ１５）は、仮想３次元空間における特定のオブジェクトを投影スクリーンに投影した場合において、当該投影スクリーンに投影された当該特定のオブジェクトを近接して内包する円の円周上に判定点を設定する。
【００１８】
請求項３の発明では、投影変換した特定のオブジェクトを近接して内包する円の円周上に判定点を設定するので、円以外の形状の外周上に判定点を設定する場合よりも判定点を簡単に設定することができる。
【００１９】
請求項４の発明は請求項１ないし３のいずれかに従属し、遮蔽度算出手段は、判定点の総数に対して、判定手段によって第１奥行き値が第２奥行き値よりも小さいと判定された判定点の個数の割合を算出し、視点制御手段は、遮蔽度算出手段によって算出された割合に応じて、視点を別の視点に移動させる。
【００２０】
請求項４の発明では、遮蔽度算出手段（３６，Ｓ６５）は、判定点の総数に対する、判定手段（３６，Ｓ５３〜Ｓ６３）によって第１奥行き値が第２奥行き値よりも小さいと判定された判定点の個数の割合（遮蔽度）を算出する。視点制御手段（３６，Ｓ２５）は、遮蔽度算出手段（３６，Ｓ６５）によって算出された遮蔽度に応じて（Ｓ２３で“ＹＥＳ”）、視点を別の視点に移動させる。
【００２１】
請求項４の発明では、算出された遮蔽度に応じて視点を別の視点に移動させるので、たとえば、遮蔽度が大きく特定のオブジェクトが見難い場合に、視点を移動させて、当該特定のオブジェクトを見易い画像を生成することができる。
【００２２】
請求項５の発明は請求項４に従属し、視点制御手段（３６，Ｓ２５）は、遮蔽度算出手段（３６，Ｓ６５）によって算出された割合（遮蔽度）が所定値よりも小さくなるまで（Ｓ２３で“ＮＯ”）、視点の移動を繰り返す。
【００２３】
請求項５の発明によれば、遮蔽度が所定値よりも小さくなるまで視点の移動を繰り返すので、急激な視点移動ではなく、或る程度遮蔽された状態を維持するように、視点を移動することができる。つまり、特定のオブジェクトを或る程度隠すような画像を生成することができる。
【００２４】
請求項６の発明は請求項１ないし３のいずれかに従属し、遮蔽度算出手段は、判定点の総数に対する、判定手段によって第１奥行き値が第２奥行き値よりも小さいと判定された判定点の個数の割合を算出し、遮蔽度算出手段によって算出された割合に応じて、特定のオブジェクトの表示にかかるパラメータを変化させるパラメータ変化手段をさらに備える。
【００２５】
請求項６の発明では、遮蔽度算出手段（３６，Ｓ６５）は、判定点の総数に対する、判定手段（３６，Ｓ５３からＳ６３）によって第１奥行き値が第２奥行き値よりも小さいと判定された判定点の個数の割合（遮蔽度）を算出する。パラメータ変化手段（３６，Ｓ２１）は、遮蔽度算出手段（３６，Ｓ６５）によって算出された割合に応じて、特定のオブジェクトの表示にかかるパラメータを変化させる。
【００２６】
請求項６の発明によれば、遮蔽度に応じて特定のオブジェクトの表示にかかるパラメータを変化させるようにしても、遮蔽度に応じた画像を生成することができる。
【００２７】
請求項７の発明は請求項６に従属し、特定のオブジェクトは光源を含み、パラメータ変化手段は、少なくとも光源の明るさを変化させる。
【００２８】
請求項７の発明では、たとえば、特定のオブジェクトは光源を含み、パラメータ変化手段（３６，Ｓ２１）は、少なくとも光源の明るさを変化させる。したがって、光源からの光が或るオブジェクトの後ろから射すような画面を生成することができる。
【００２９】
請求項７の発明によれば、光源からの光が或るオブジェクトの後ろから射すような画面を生成できるので、よりリアルな演出が可能である。
【００３０】
請求項８の発明においても、請求項１の発明と同様に、遮蔽度を考慮した表示画像を簡単に生成することができる。
【発明の効果】
【００３１】
この発明によれば、投影変換された特定のオブジェクトに対して設定された判定点の奥行き値が、当該特定のオブジェクトの奥行き値よりも小さいかどうかを判定するだけなので、簡単に遮蔽度を算出することができる。したがって、遮蔽度を考慮した表示画像を簡単に生成することができる。
【００３２】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００３３】
図１を参照して、この発明の一実施例である３次元画像生成装置および３次元画像生成プログラムを備えるビデオゲーム装置１２を備えるビデオゲームシステム１０について説明する。ビデオゲーム装置１２は、略立方体のハウジング１４を含み、ハウジング１４の上端には光ディスクドライブ１６が設けられる。光ディスクドライブ１６には、ゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク１８が装着される。ハウジング１４の前面には複数の（実施例では４つの）コネクタ２０が設けられる。これらコネクタ２０は、ケーブル２４によって、コントローラ２２をビデオゲーム装置１２に接続するためのものであり、この実施例では最大４つのコントローラ２２をビデオゲーム装置１２に接続することができる。
【００３４】
コントローラ２２には、その上面，下面，或いは側面などに、操作部（操作スイッチ）２６が設けられる。操作部２６は、たとえば２つのアナログジョイスティック，１つの十字キー，複数のボタンスイッチ等を含む。１つのアナログジョイスティックは、スティックの傾き量と方向とによって、プレイヤオブジェクト（プレイヤがコントローラ２２によって操作可能な動画オブジェクト）の移動方向および／または移動速度ないし移動量などを入力するために用いられる。他のアナログジョイスティックは、傾斜方向によって、仮想カメラの移動を制御する。十字スイッチは、アナログジョイスティックに代えてプレイヤオブジェクトの移動方向を指示するために用いられる。ボタンスイッチは、プレイヤオブジェクトの動作を指示するために利用されたり、３次元画像の仮想カメラの視点を切り換えたり、プレイヤオブジェクトの移動スピード調節等に用いられる。ボタンスイッチは、さらに、たとえばメニュー選択やポインタあるいはカーソル移動を制御する。
【００３５】
なお、この実施例ではコントローラ２２がそれと一体的に設けられるケーブル２４によってビデオゲーム装置１２に接続された。しかしながら、コントローラ２２は、他の方法、たとえば電磁波（たとえば電波または赤外線）を介してワイヤレスで、ビデオゲーム装置１２に接続されてもよい。また、コントローラ２２の操作部２６の具体的構成は、もちろん実施例の構成に限られるものではなく、任意の変形が可能である。たとえば、アナログジョイスティックは１つだけでもよいし、用いられなくてもよい。十字スイッチは用いられなくてもよい。
【００３６】
ビデオゲーム装置１２のハウジング１４の前面であり、コネクタ２０の下方には、１つまたは複数の（この実施例では２つの）メモリスロット２８が設けられる。このメモリスロット２８にはメモリカード３０が挿入される。メモリカード３０は、光ディスク１８から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム１０を利用してプレイしたゲームのゲームデータ（たとえばゲームの結果）を保存（セーブ）しておいたりするために利用される。
【００３７】
ビデオゲーム装置１２のハウジング１４の後面には、ＡＶケーブルコネクタ（図示せず）が設けられ、そのコネクタを用いて、ＡＶケーブル３２を通してビデオゲーム装置１２にモニタ３４を接続する。このモニタ３４は典型的にはカラーテレビジョン受像機であり、ＡＶケーブル３２は、ビデオゲーム装置１２からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ（モニタ）３４の画面上にたとえば３次元（３Ｄ）ビデオゲームのゲーム画像が表示され、左右のスピーカ３４ａからゲーム音楽や効果音などのステレオゲーム音声が出力される。
【００３８】
このゲームシステム１０において、ユーザまたはゲームプレイヤがゲーム（または他のアプリケーション）をプレイするために、ユーザはまずビデオゲーム装置１２の電源をオンし、次いで、ユーザはビデオゲーム（もしくはプレイしたいと思う他のアプリケーション）をストアしている適宜の光ディスク１８を選択し、その光ディスク１８をビデオゲーム装置１２のディスクドライブ１６にローディングする。応じて、ビデオゲーム装置１２がその光ディスク１８にストアされているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはビデオゲーム装置１２に入力を与えるためにコントローラ２２を操作する。たとえば、操作部２６のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。操作部２６の他のものを動かすことによって、動画オブジェクト（プレイヤオブジェクト）を異なる方向に移動させ、または３次元（３Ｄ）のゲーム世界におけるユーザの視点（カメラ位置）を変化させることができる。
【００３９】
図２は図１実施例のビデオゲームシステム１０の電気的な構成を示すブロック図である。ビデオゲーム装置１２には、中央処理ユニット（以下、「ＣＰＵ」という。）３６が設けられる。このＣＰＵ３６は、コンピュータ或いはプロセサなどとも呼ばれ、ビデオゲーム装置１２の全体的な制御を担当する。ＣＰＵ３６ないしコンピュータは、ゲームプロセサとして機能し、このＣＰＵ３６には、バスを介して、メモリコントローラ３８が接続される。メモリコントローラ３８は主として、ＣＰＵ３６の制御の下で、バスを介して接続されるメインメモリ４０の書込みや読出しを制御する。このメモリコントローラ３８にはＧＰＵ(Graphics Processing Unit:グラフィックス処理装置) ４２が接続される。
【００４０】
ＧＰＵ４２は、描画手段の一部を形成し、たとえばシングルチップＡＳＩＣで構成され、メモリコントローラ３８を介してＣＰＵ３６からのグラフィクスコマンド(graphics command ：作画命令) を受け、そのコマンドに従って、ジオメトリユニット４４およびレンダリングユニット４６によって３次元（３Ｄ）ゲーム画像を生成する。つまり、ジオメトリユニット４４は、３次元座標系の各種オブジェクトやオブジェクト（複数のポリゴンで構成されている。そして、ポリゴンとは少なくとも３つの頂点座標によって定義される多角形平面をいう。）の回転，移動，変形等の座標演算処理を行う。レンダリングユニット４６は、各種オブジェクトの各ポリゴンにテクスチャ（Texture ：模様画像）を貼り付けるなどの画像生成処理を施す。したがって、ＧＰＵ４２によって、ゲーム画面上に表示すべき３Ｄ画像データが作成され、その画像データがフレームバッファ４８内に記憶される。
【００４１】
なお、ＧＰＵ４２が作画コマンドを実行するにあたって必要なデータ（プリミティブまたはポリゴンやテクスチャ等）は、ＧＰＵ４２がメモリコントローラ３８を介して、メインメモリ４０から入手する。
【００４２】
フレームバッファ４８は、たとえばラスタスキャンモニタ３４の１フレーム分の画像データを描画（蓄積）しておくためのメモリであり、ＧＰＵ４２によって１フレーム毎に書き換えられる。具体的には、フレームバッファ４８は、１画素（ピクセル）毎に、画像の色情報を順序立てて記憶している。ここで、色情報は、Ｒ，Ｇ，Ｂ，Ａについてのデータであり、たとえば、８ビットのＲ（赤）データ、８ビットのＧ（緑）データ、８ビットのＢ（青）データおよび８ビットのＡ（アルファ）データである。なお、Ａデータは、マスク（マット画像）についてのデータである。後述のビデオＩ／Ｆ５８がメモリコントローラ３８を介してフレームバッファ４８のデータを読み出すことによって、モニタ３４の画面上に３Ｄゲーム画像が表示される。
【００４３】
また、Ｚバッファ５０は、フレームバッファ４８に対応する画素数×１画素当たりの奥行きデータのビット数に相当する記憶容量を有し、フレームバッファ４８の各記憶位置に対応するドットの奥行き情報または奥行きデータ（Ｚ値）を記憶するものである。
【００４４】
なお、フレームバッファ４８およびＺバッファ５０は、ともにメインメモリ４０の一部を用いて構成されてもよく、また、これらはＧＰＵ４２の内部に設けられてもよい。
【００４５】
メモリコントローラ３８はまた、ＤＳＰ(Digital Signal Processor)５２を介して、ＡＲＡＭ５４に接続される。したがって、メモリコントローラ３８は、メインメモリ４０だけでなく、サブメモリとしてのＡＲＡＭ５４の書込みおよび／または読出しを制御する。
【００４６】
ＤＳＰ５２は、サウンドプロセサとして働き、メインメモリ４０に記憶されたサウンドデータ（図示せず）を用いたり、ＡＲＡＭ５４に書き込まれている音波形データ（図示せず）を用いたりして、ゲームに必要な音、音声或いは音楽に対応するオーディオデータを生成する。
【００４７】
メモリコントローラ３８は、さらに、バスによって、各インタフェース（Ｉ／Ｆ）５６，５８，６０，６２および６４に接続される。コントローラＩ／Ｆ５６は、コントローラ２２のためのインタフェースであり、コントローラ２２の操作部２６の操作信号またはデータを、メモリコントローラ３８を通してＣＰＵ３６に与える。ビデオＩ／Ｆ５８は、フレームバッファ４８にアクセスし、ＧＰＵ４２で作成した画像データを読み出して、画像信号または画像データ（ディジタルＲＧＢＡピクセル値）をＡＶケーブル３２（図１）を介してモニタ３４に与える。
【００４８】
外部メモリＩ／Ｆ６０は、ビデオゲーム装置１２の前面に挿入されるメモリカード３０（図１）をメモリコントローラ３８に連係させる。それによって、メモリコントローラ３８を介して、ＣＰＵ３６がこのメモリカード３０にデータを書込み、またはメモリカード３０からデータを読み出すことができる。オーディオＩ／Ｆ６２は、メモリコントローラ３８を通してＤＳＰ５２から与えられるオーディオデータまたは光ディスク１８から読み出されたオーディオストリームを受け、それらに応じたオーディオ信号（音声信号）をモニタ３４のスピーカ３４ａに与える。
【００４９】
そして、ディスクＩ／Ｆ６４は、そのディスクドライブ１６をメモリコントローラ３８に接続し、したがって、ＣＰＵ３６がディスクドライブ１６を制御する。このディスクドライブ１６によって光ディスク１８から読み出されたプログラムデータやテクスチャデータ等が、ＣＰＵ３６の制御の下で、メインメモリ４０に書き込まれる。
【００５０】
図３にはメインメモリ４０のメモリマップが示される。メインメモリ４０は、プログラム記憶領域４０２およびデータ記憶領域４０４を含む。プログラム記憶領域４０２には、３次元画像生成プログラムが記憶される。この３次元画像生成プログラムは、操作情報取得プログラム４０２ａ、オブジェクト生成プログラム４０２ｂ、オブジェクト配置プログラム４０２ｃ、視点設定プログラム４０２ｄ、注視点設定プログラム４０２ｅ、視点座標変換プログラム４０２ｆ、投影変換プログラム４０２ｇ、画像表示プログラム４０２ｈ、判定点設定プログラム４０２ｉ、遮蔽度算出プログラム４０２ｊおよび視点移動プログラム４０２ｋによって構成される。
【００５１】
操作情報取得プログラム４０２ａは、プレイヤによる操作情報（操作入力）を取得するためのプログラムであり、コントローラＩ／Ｆ５６を介して入力されるコントローラ２２からの操作データ（操作信号）を検出して、データ記憶領域４０４に記憶する。オブジェクト生成プログラム４０２ｂは、仮想ゲーム空間のような仮想３次元空間を生成するとともに、当該仮想３次元空間に存在するプレイヤオブジェクト、ノンプレイヤオブジェクト、アイテムオブジェクト或いは背景オブジェクトのようなオブジェクトを生成するためのプログラムである。
【００５２】
ここで、プレイヤオブジェクトとは、プレイヤの操作によって仮想３次元空間内を移動等するオブジェクトをいい、人物や動物を模した動画オブジェクトやアニメキャラクタについての動画オブジェクトなどが該当する。また、ノンプレイヤオブジェクトとは、プレイヤの操作によらないで、プログラムに従って移動等するオブジェクトをいい、プレイヤオブジェクトと同様に、人物や動物を模した動画オブジェクトやアニメキャラクタについての動画オブジェクトなどが該当する。アイテムオブジェクトとは、プレイヤオブジェクトもしくはノンプレイヤオブジェクトによって、取得または所持等されるアイテム（武器、薬、食物、金貨など）についてのオブジェクトをいう。背景オブジェクトとは、壁、床（地面）、柱、樹木などの背景についてのオブジェクトをいう。
【００５３】
オブジェクト配置プログラム４０２ｃは、オブジェクト生成プログラム４０２ｂに従って生成されたオブジェクトを、プレイヤの操作（操作データ）に従って、または自動で、仮想３次元空間内に配置するためのプログラムである。すなわち、モデリング変換処理を実行するためのプログラムである。視点設定プログラム４０２ｄは、仮想３次元空間内の視点（仮想カメラ）の位置（視点位置）および向きを設定（制御）するためのプログラムである。視点座標変換プログラム４０２ｆは、視点から見た３次元画像（仮想カメラで撮影された画像）を、視点位置（仮想カメラ位置）が原点となるように、視点座標ないしはカメラ座標に座標変換するためのプログラムである。
【００５４】
投影変換プログラム４０２ｇは、視点座標変換プログラム４０２ｆによって座標変換された画像を、視点位置を中心として、スクリーン（投影スクリーンまたは仮想スクリーン）上に投影（たとえば、透視投影）するためのプログラムである。画像表示プログラム４０２ｆは、投影変換プログラム４０２ｇによって投影スクリーン上に投影された画像をモニタ３４に表示するためのプログラムである。この実施例では、Ｚバッファ法に従って、投影スクリーン上の画像（ゲーム画像）がモニタ３４に表示される。
【００５５】
判定点設定プログラム４０２ｉは、特定（所定）のオブジェクトが他のオブジェクトによって遮られる度合い（遮蔽度）を算出するための判定点を設定するためのプログラムである。たとえば、プレイヤオブジェクトのような特定のオブジェクトを近接して内包する範囲において、所定のルールに従って複数の判定点が設定される。この設定方法については、後で詳細に説明することにする。遮蔽度算出プログラム４０２ｊは、プレイヤオブジェクトのような特定のオブジェクトについての遮蔽度を算出するためのプログラムである。すなわち、仮想カメラと特定のオブジェクトとの間を遮るオブジェクト（遮蔽物）が存在する場合に、その遮蔽度を算出する。視点移動プログラム４０２ｋは、視点位置を仮想３次元空間内において移動制御するためのプログラムである。
【００５６】
なお、図示は省略するが、プログラム記憶領域４０２には、ビデオゲーム装置１２で実行されるゲーム（仮想ゲーム）のメイン処理プログラム、当該仮想ゲームに必要な音（音楽）を出力するためのゲーム音楽再生プログラムやゲームの途中データや結果データのようなゲームデータを記憶（バックアップ）するためのバックアップ処理プログラムなども記憶される。
【００５７】
また、データ記憶領域４０４には、操作データ４０４ａ、オブジェクトポリゴンデータ４０４ｂ、オブジェクト配置位置データ４０４ｃ、視点位置データ４０４ｄ、注視点データ４０４ｅ、Ｚ値データ４０４ｆ、画像データ４０４ｇ、判定点データ４０４ｈ、テクスチャデータ４０４ｉなどのデータが記憶される。
【００５８】
操作データ４０４ａは、操作情報取得プログラム４０４ａに従って取得された操作データである。オブジェクトポリゴンデータ４０４ｂは、上述したようなオブジェクトを生成するためのポリゴンデータである。オブジェクト配置位置データ４０４ｃは、仮想３次元空間内に存在するオブジェクトの現在位置ないしは配置位置（３次元座標）についてのデータであり、各々のオブジェクトに対応して記憶される。
【００５９】
視点位置データ４０４ｄは、仮想３次元空間における視点（仮想カメラ）の位置（３次元座標）についてのデータである。注視点データ４０４ｅは、仮想カメラの注視位置（３次元座標）についてのデータである。Ｚ値データ４０４ｆは、特定のオブジェクトについてのＺ値を示す数値データである。ただし、この実施例では、特定のオブジェクトについてのＺ値のうち、最小値となるＺ値が選出され、その数値データが記憶される。これは、特定のオブジェクト内における特定の位置（部位ないしは箇所）についてのＺ値を固定的に選出するようにした場合には、当該オブジェクトの向きによっては、正確に遮蔽度を判定できない場合があるからである。
【００６０】
画像データ４０４ｇは、モニタ３４に表示するための画像についてのデータである。判定点データ４０４ｈは、特定のオブジェクトについての遮蔽度を判定するために、投影スクリーン上に設定された点（判定点）についての座標データ（２次元座標データ）である。テクスチャデータ４０４ｉは、上述したオブジェクトを生成するためのテクスチャデータであり、上述したオブジェクトポリゴンデータ４０４ｂに貼り付けられる。
【００６１】
なお、図示は省略するが、データ記憶領域４０４には、ゲーム中に演奏される音楽（ＢＧＭ）や効果音のような音（音楽）についてのサウンドデータや当該ゲームの進行に従って発生するゲームデータやフラグデータなども記憶される。
【００６２】
たとえば、図４に示すような仮想３次元空間についての画像をモニタ３４に表示する場合には、モニタ３４の表示画面は２次元であるため、仮想３次元空間に存在する（モデリングされた）オブジェクトは投影スクリーンに投影される。具体的には、視点から見える範囲の人物オブジェクトや壁オブジェクト等は、視点を中心とした視点座標（カメラ座標）に変換され、さらに投影変換されるのである。投影変換された画像がモニタ３４に表示される。
【００６３】
ここで、一般的なゲーム装置においては、人物オブジェクト（プレイヤオブジェクト）と仮想カメラとの間に遮蔽物が存在する場合には、仮想カメラの位置を移動（回転移動等）させ、当該プレイヤオブジェクトが遮蔽物によって遮蔽されるのを回避するようにしてある。
【００６４】
しかし、プレイヤオブジェクトを遮蔽する遮蔽物が多数存在する場合には、頻繁に仮想カメラの位置が移動されることとなり、したがって、ゲーム画像が頻繁に更新され、プレイヤにとって煩わしい場合がある。また、プレイヤオブジェクトの一部が遮蔽されているような状況では、ゲームの演出上、その状態をゲーム画像として表示したい場合もある。したがって、プレイヤオブジェクトと仮想カメラとの間に遮蔽物が存在する場合に、常に仮想カメラを移動させるのは妥当でないと言える。
【００６５】
そこで、この実施例では、プレイヤオブジェクトのような特定のオブジェクトが遮蔽物によって遮蔽される割合（遮蔽度）を算出し、遮蔽度に応じて仮想カメラを移動するようにしてある。また、たとえば、プレイヤオブジェクトの後ろからスポットライトの光が射すような演出をしたい場合には、特定のオブジェクトをスポットライト（点光源）に設定しておき、プレイヤオブジェクトが当該点光源からの光を遮る場合には、遮蔽度に応じて光の明るさを変化させることが可能である。以下、具体的に説明する。
【００６６】
まず、人物オブジェクト（特定のオブジェクト）と視点（仮想カメラ）との間に遮蔽物が存在しない場合を図示して、判定点の設定について説明する。図５（Ａ）は仮想３次元空間を視点から見た場合の人物オブジェクトを示す図解図である。この図５（Ａ）に示すように、人物オブジェクトすなわち特定のオブジェクト（以下、「被遮蔽オブジェクト」という。）に対応して、遮蔽度を判定するための所定数（この実施例では、８個）の判定点が設定される。ただし、この実施例では、投影変換後の被遮蔽オブジェクトに対して判定点は設定される。つまり、判定点は投影スクリーン上に設定される。なお、図５（Ａ）においては、判定点を点線で示してある。
【００６７】
具体的には、所定数の判定点は、投影変換された被遮蔽オブジェクトの位置座標を中心とし、当該被遮蔽オブジェクトの大きさに基づいて設定される半径を有する円の軌道（円周）上に所定間隔（所定の中心角）毎に配置される。また、判定点を設定する円の大きさは、被遮蔽オブジェクトを近接して内包するように決定される。
【００６８】
ただし、被遮蔽オブジェクトの位置座標は、その中心（人物オブジェクトの場合には、当該人物の腰の位置）に決定される。これは、複数の判定点を円の円周上に配置するとともに、当該円が被遮蔽オブジェクトを近接して囲むようにするためである。したがって、円の半径は、被遮蔽オブジェクトが人物オブジェクトであれば、その身長（高さ）のほぼ半分の長さで決定される。
【００６９】
なお、被遮蔽オブジェクトのような動画オブジェクトについての仮想３次元空間上の位置座標（３次元座標）は常に監視されているため、当該３次元座標をカメラ座標に変換し、投影変換した後の被遮蔽オブジェクトの位置座標は容易に知ることができる。
【００７０】
図５（Ｂ）は、図５（Ａ）に示したように、遮蔽物が存在しない状態において、仮想３次元空間における視点、投影スクリーンおよび被遮蔽オブジェクトを上方から見た図解図である。この図５（Ｂ）を参照して、上述したように、判定点は投影スクリーン上に設定される。また、視点のＺ値は「０」に設定され、このときの被遮蔽オブジェクトのＺ値を「Ｚｏ」とする。ここでは、視点と被遮蔽オブジェクトとの間に遮蔽物が存在しないため、設定された判定点の位置に対応してＺバッファ５０に記憶されるＺ値は、被遮蔽オブジェクトのＺ値（Ｚｏ）と同じ値またはそれよりも大きい値になる。
【００７１】
ここで、被遮蔽オブジェクトのＺ値（Ｚｏ）は、上述したように、被遮蔽オブジェクトの位置座標を、当該被遮蔽オブジェクトの部位（面ないしは点）のうち、最も仮想カメラ（視点）に近い位置に平行移動した位置についてのＺ値である。また、これ以降、説明の都合上、被遮蔽オブジェクトのＺ値（Ｚｏ）を、「基準Ｚ値」と呼ぶことにする。
【００７２】
図６は被遮蔽オブジェクトと視点との間に遮蔽物が存在する場合の一例を示す図解図である。ただし、図５（Ａ）と同様に、図６（Ａ）は仮想３次元空間を視点から見た場合の遮蔽オブジェクトと被遮蔽オブジェクトとを示す図解図である。また、図６（Ｂ）は、図６（Ａ）に示すような状態において、仮想３次元空間における視点、投影スクリーンおよび被遮蔽オブジェクトを上方から見た図解図である。図６（Ａ）に示すように、被遮蔽オブジェクトの右斜め前であり、当該被遮蔽オブジェクトを遮蔽するように、遮蔽物（遮蔽オブジェクト）が配置される。なお、判定点の設定は、図５（Ａ）を用いて説明した場合と同じであるため、ここでは、詳細な説明は省略する。かかる場合には、図６（Ｂ）からも分かるように、Ｚ値が基準Ｚ値ではなく、遮蔽オブジェクトのＺ値（Ｚｓ）となる判定点も存在することとなる。
【００７３】
具体的には、図６（Ａ）からよく分かるように、８個の判定点のうち、Ｚ値が「Ｚｓ」となる判定点が３個存在する。また、図６（Ｂ）から分かるように、Ｚ値が「Ｚｓ」となる判定点では、Ｚ値が基準Ｚ値よりも小さいと言える。このように、視点と被遮蔽オブジェクトとの間に遮蔽オブジェクトが存在する場合には、被遮蔽オブジェクトが遮蔽オブジェクトに遮られることがあり、その遮蔽度Ｈは数１に従って算出される。ただし、全判定点の個数をＭとし、基準Ｚ値よりも小さいＺ値を有する判定点の個数をＮとしてある。
【００７４】
[数１]
Ｈ＝Ｎ／Ｍ
したがって、図６に示した例では、遮蔽度Ｈは３／８（＝０．３７５）となる。なお、図５に示した例では、Ｎ＝０であるため、遮蔽度Ｈも「０」となる。
【００７５】
また、図７は被遮蔽オブジェクトと視点との間に遮蔽物が存在する場合の他の例を示す図解図である。ただし、図５（Ａ）と同様に、図７（Ａ）は仮想３次元空間を視点から見た場合の遮蔽オブジェクトと被遮蔽オブジェクトとを示す図解図である。また、図７（Ｂ）は、図７（Ａ）に示すような状態において、仮想３次元空間における視点、投影スクリーンおよび被遮蔽オブジェクトを上方から見た図解図である。図７（Ａ）および図７（Ｂ）に示すように、遮蔽オブジェクトが被遮蔽オブジェクトの右半分（右半身）を隠すように、視点と遮蔽オブジェクトとの間に存在する。この場合には、Ｚ値が「Ｚｓ」となる判定点が５つ存在するため、数１に従って遮蔽度Ｈを求めると５／８（＝０．６２５）となる。
【００７６】
ここで、図５に示した例では、被遮蔽オブジェクトは何ら遮蔽されておらず、また、図６に示した例では、被遮蔽オブジェクトは右下半身が遮蔽されているだけであり、たとえば、ゲームを進行する場合であってもプレイヤの操作に支障はなく、視点を変更する必要はないと考えられる。しかし、図７に示した例では、被遮蔽オブジェクトは右半身が遮蔽されてしまっており、ゲームを進行する場合にはプレイヤが操作し難いため、視点を移動して被遮蔽オブジェクトの遮蔽度を小さくする必要があると考えられる。
【００７７】
なお、視点を移動させる方法としては、注視点を中心にして視点を回転移動させたり、視点を被遮蔽オブジェクトに近づけたり、視点を遮蔽オブジェクトと被遮蔽オブジェクトとの間に回り込ませたりすることが考えられる。これらの方法は既に周知であるため、その詳細な説明は省略することにする。
【００７８】
図８（Ａ）および図８（Ｂ）は、仮想３次元空間において、視点から見た遮蔽オブジェクト（ここでは、人物オブジェクト）および被遮蔽オブジェクト（ここでは、光源オブジェクト）を示す図解図である。なお、図８（Ａ）および図８（Ｂ）においては、図面の都合上、判定点を実線で示してあるが、上述したように、判定点は投影変換された被遮蔽オブジェクトに対して設定される。図８（Ａ）に示す場合では、点光源（スポットライト）のような被遮蔽オブジェクトが人物オブジェクトのような遮蔽オブジェクトによって遮られていない。したがって、たとえば、このような場合には、点光源を最大の明るさ（設定値の範囲内での最大の明るさ）で点灯させる。一方、図８（Ｂ）に示すように、被遮蔽オブジェクトを遮蔽オブジェクトが遮る場合には、その遮蔽度に応じて点光源の明るさを変化させることが考えられる。このようにすれば、遮蔽オブジェクトの背後から光が射すような画像を表示することができ、単に視点を移動させる場合に比べて、より臨場感のある演出が可能である。
【００７９】
この実施例では、遮蔽度が「０」の場合の明るさを１００％とし、その値に数１に従って算出された遮蔽度Ｎで決まる割合（１−Ｎ）を掛け算して得られた明るさに変更するようにしてある。つまり、明るさＰは数２に従って算出される。
【００８０】
[数２]
Ｐ（％）＝（１−Ｎ）×１００
具体的には、図２に示したＣＰＵ３６が図９および図１０に示すフロー図に従って３次元画像生成処理を実行する。ＣＰＵ３６は３次元画像生成処理を開始すると、ステップＳ１で、操作データを取得する。具体的には、ＣＰＵ３６は、コントローラＩ／Ｆ５６を介してコントローラ２２から入力される操作データを検出し、メモリコントローラ３８を制御して、メインメモリ４０のデータ記憶領域４０４に記憶する。ただし、操作データを検出しない場合には、操作データは記憶されない。
【００８１】
次のステップＳ３では、操作データ（プレイヤの操作入力）に応じて、または自動で、オブジェクトを配置する。つまり、プレイヤオブジェクト、ノンプレイヤオブジェクト、アイテムオブジェクトおよび背景オブジェクトなどのオブジェクトを仮想３次元空間にモデリングする。ただし、ゲーム開始時においては、オブジェクトは予め設定された３次元位置にモデリングされる。続くステップＳ５では、視点および注視点を設定する。つまり、仮想カメラの位置および向きを設定する。なお、仮想カメラの位置および向きは、予め決定されているが、プレイヤの操作によって変更することもできる。そして、ステップＳ７で、視点座標系に変換する。具体的には、視点（仮想カメラ）を中心（０，０，０）とする視点座標（カメラ座標）に変換する。
【００８２】
続いて、ステップＳ９で、投影変換する。つまり、モニタ３４に表示するための画像を投影スクリーンに投影する。このとき、フレームバッファ４８に、表示する画像の画素毎の色情報（Ｒ，Ｇ，Ｂ，Ａ）が記憶され、Ｚバッファ５０に画素毎のＺ値が記憶される。次のステップＳ１１では、Ｚバッファ法に基づいて描画処理を実行する。つまり、画像データ４０４ｇが、データ記憶領域４０４に記憶（生成）される。図示は省略するが、その後、画像データ４０４ｇは、ＣＰＵ３６の指示の下、メモリコントローラ３８によって読み出され、ビデオＩ／Ｆ５８を介してモニタ３４に出力される。これにより、ゲーム画像がモニタ３４に表示される。
【００８３】
ステップＳ１３では、遮蔽確認オブジェクトすなわち被遮蔽オブジェクトを特定する。この実施例では、被遮蔽オブジェクトは、ゲームの進行に従った場面毎に予め決定されており、投影スクリーンに投影されたオブジェクトの中から被遮蔽オブジェクトが特定される。被遮蔽オブジェクトを特定すると、ステップＳ１５で、後述する判定点設定処理（図１１参照）を実行し、ステップＳ１７で、後述する遮蔽度算出処理（図１２参照）を実行する。
【００８４】
図１０に示すように、次のステップＳ１９では、ステップＳ１３において特定したオブジェクトが人物オブジェクトであるかどうかを判断する。ステップＳ１９で“ＮＯ”であれば、つまり特定したオブジェクトが点光源であれば、ステップＳ２１で、ステップＳ１７において算出した遮蔽度に応じて点光源の明るさを変更し、つまり数２に従って算出される明るさに変更して、ステップＳ２７に進む。
【００８５】
一方、ステップＳ１９で“ＹＥＳ”であれば、つまり特定したオブジェクトが人物オブジェクトであれば、ステップＳ２３で、遮蔽度が閾値よりも大きいかどうかを判断する。遮蔽度が閾値よりも大きければ、ステップＳ２３で“ＹＥＳ”となり、ステップＳ２５で、視点を移動して、図９に示したステップＳ５に戻る。しかし、遮蔽度が閾値以下であれば、ステップＳ２３で“ＮＯ”となり、ステップＳ２７に進む。つまり、遮蔽度が閾値以下になるまで、ステップＳ１〜ステップＳ１９、Ｓ２３およびＳ２５の処理が繰り返され、視点の移動が継続的に実行されるのである。したがって、視点を移動させる量（距離）を比較的小さく設定しておけば、急激な画像変化ではなく、或る程度遮蔽された状態すなわち特定のオブジェクトを或る程度隠した状態の画像を生成および表示することができる。
【００８６】
ステップＳ２７では、画像生成を終了するかどうかを判断する。つまり、ゲーム終了の指示がプレイヤから与えられたり、ゲームオーバになったりしたかどうかを判断する。ステップＳ２７で“ＮＯ”であれば、つまり画像生成を終了しない場合には、図９に示したステップＳ１に戻る。一方、ステップＳ２７で“ＹＥＳ”であれば、つまり画像生成を終了する場合には、そのまま３次元画像生成処理を終了する。
【００８７】
図１１は図９に示したステップＳ１５の判定点設定処理を示すフロー図である。この図１１を参照して、ＣＰＵ３６は、判定点設定処理を開始すると、ステップＳ４１で、投影変換後の画像データにおいて、オブジェクトを中心とした円を設定する。上述したように、特定のオブジェクトの位置座標を中心とし、特定のオブジェクトの高さによって決定される半径の円を設定する。
【００８８】
続くステップＳ４３では、当該オブジェクトが円内に内包されているかどうかを判断する。ステップＳ４３で“ＮＯ”であれば、つまり当該オブジェクトが円内に内包されていなければ、ステップＳ４５で、円を再設定し、ステップＳ４５に戻る。たとえば、ステップＳ４５では、予め設定された長さだけ、円の半径（直径）を大きくする。
【００８９】
一方、ステップＳ４３で“ＹＥＳ”であれば、つまり当該オブジェクトが円内に内包されていれば、ステップＳ４７で、判定点Ｊｉ（ｉ＝１〜Ｍ）を設定して、つまり判定点データ４０４Ｈをデータ記録領域４０４に記憶して、判定点設定処理をリターンする。
【００９０】
また、図１２は図９に示したステップＳ１７の遮蔽度算出処理を示すフロー図である。この図１２を参照して、ＣＰＵ３６は遮蔽度算出処理を開始すると、ステップＳ５１で、Ｚ値が基準Ｚ値よりも小さい判定点Ｊｉの個数Ｎを初期化する（Ｎ＝０）。次に、ステップＳ５３で、判定点Ｊ１の位置に応じたＺバッファ５０の値（Ｚ値）を抽出する。つまり、設定したＭ個の判定点のうち、所定の順番に従って選択した、或いは、ランダムに選択した１番目の判定点（判定点データ４０４ｈが示す位置）に対応する位置のＺ値をＺバッファ５０から読み出す。
【００９１】
続くステップＳ５５では、判定点ＪｉのＺ値が特定のオブジェクトのＺ値すなわち基準Ｚ値よりも小さいかどうかを判断する。ステップＳ５５で“ＮＯ”であれば、つまり判定点ＪｉのＺ値が基準Ｚ値以上の場合には、そのままステップＳ５９に進む。一方、ステップＳ５５で“ＹＥＳ”であれば、つまり判定点ＪｉのＺ値が基準Ｚ値よりも小さい場合には、Ｚ値が基準Ｚ値よりも小さい判定点Ｊｉの個数Ｎをインクリメントして（Ｎ＝Ｎ＋１）、ステップＳ５９に進む。
【００９２】
ステップＳ５９では、ｉ≧Ｍであるかどうかを判断する。つまり、すべての判定点Ｊｉについて、Ｚ値が基準Ｚ値よりも小さいかどうかを判断したかどうかを判断するのである。ここで、ｉ＜Ｍであれば、つまり、すべての判定点Ｊｉについて、Ｚ値が基準Ｚ値よりも小さいかどうかを判断していない場合には、“ＮＯ”となり、ステップＳ６１で、変数ｉをインクリメントして（ｉ＝ｉ＋１）、ステップＳ６３で、判定点Ｊｉの位置に応じたＺバッファの値を抽出して、つまり次の判定点ＪｉについてのＺ値を読み出して、ステップＳ５５に戻る。しかし、ｉ≧Ｍであれば、つまり、すべての判定点Ｊｉについて、Ｚ値が基準Ｚ値よりも小さいかどうかを判断した場合には、“ＹＥＳ”となり、ステップＳ６５で、遮蔽度Ｈを数１に従って算出し、遮蔽度算出処理をリターンする。
【００９３】
この実施例によれば、投影変換された後の特定のオブジェクトに対して判定点を設定し、特定のオブジェクトの遮蔽度を判定点のＺ値と当該特定のオブジェクトのＺ値とに基づいて算出するので、簡単に遮蔽度を算出することができる。したがって、遮蔽度に応じて、視点の移動を制御することができる。また、遮蔽度に応じて、視点の明るさを変化させることができ、よりリアルな演出が可能である。ただし、視点の移動制御や光源の明るさ変化は単なる例示であり、遮蔽度に応じた画面生成が可能な点に着目すべきである。たとえば、遮蔽度に応じて注視点を変更することができる。また、光源の種類，色または減衰量のそれぞれ、或いは、それらのいずれか２つ以上の組み合わせを変化させることもできる。
【００９４】
なお、この実施例では、遮蔽度が閾値を超えるかどうかに応じて、視点の移動を制御するようにしたが、遮蔽度に応じた移動速度で常に視点を移動させるようにしてもよい。たとえば、遮蔽度が小さい場合には、比較的遅い移動速度で視点を移動させ、遮蔽度が大きい場合には、比較的大きな移動速度で視点を移動させるようにすれば、プレイヤオブジェクトのような被遮蔽オブジェクトが見え難い状態を迅速に回避することができる。
【００９５】
また、この実施例では、遮蔽度に従う割合を乗じた明るさになるように光源の明るさを変化させるようにしたが、１または２以上の閾値を設けておき、段階的に明るさを変化させるようにすることも可能である。
【００９６】
さらに、この実施例では、判定点の設定を簡単にするために、投影変換した被遮蔽オブジェクトを近接して内包する円の円周上に判定点を設定するようにしたが、被遮蔽オブジェクトを近接して内包する範囲内であれば、判定点は任意に設定することができる。ただし、上述の実施例に示した場合には、人物オブジェクトのように、縦長のオブジェクトについては、そのような判定点の設定は適切でない場合もある。たとえば、図１３（Ａ）に示すように、被遮蔽オブジェクトの両脇であり、被遮蔽オブジェクトよりも視点に近い側に、遮蔽オブジェクトが存在する場合には、実際には被遮蔽オブジェクトは遮蔽されていないにも拘わらず、遮蔽度が高くなってしまう。したがって、人物オブジェクトのような縦長の被遮蔽オブジェクトの場合には、図１３（Ｂ）に示すように、その中心が被遮蔽オブジェクトの位置座標であり、当該被遮蔽オブジェクトを近接して内包する縦長の長方形の外周上に判定点を設定するようにしてもよい。図示は省略するが、横長の被遮蔽オブジェクトについては、横長の長方形の外周上に判定点を設定すればよい。つまり、被遮蔽オブジェクトの形状により近い形状の図形の外周上に判定点を設定すれば、遮蔽度をより正確に判断することができるのである。
【００９７】
さらにまた、この実施例では、円周上に８個の判定点を設定するようにしたが、判定点の個数はこれに限定されるべきではない。ただし、判定点を増加させるに従って、より正確な遮蔽度を算出することができると言える。
【００９８】
また、この実施例では、ビデオゲーム装置とモニタとが個別に設けられたゲームシステムについて説明したが、モニタとゲーム装置とが一体に設けられる携帯型のゲーム装置、ゲーム機能を備える携帯電話機、ＰＤＡやラップトップ型のＰＣのようなコンピュータにも適用できることは言うまでもない。
【００９９】
さらに、ゲーム画像の生成に限らず、ＣＧで映画を作製するような場合にも、この発明を適用できることは言うまでもない。
【図面の簡単な説明】
【０１００】
【図１】この発明の一実施例のゲームシステムを示す図解図である。
【図２】図１に示すゲームシステムの電気的な構成を示すブロック図である。
【図３】図２に示すメインメモリのメモリマップを示す図解図である。
【図４】図１に示すビデオゲーム装置で展開される仮想３次元空間の一例を示す図解図である。
【図５】視点と被遮蔽オブジェクトとの間に遮蔽物が存在しない場合において判定点の設定方法の一例を示す図解図である。
【図６】視点と被遮蔽オブジェクトとの間に遮蔽物が存在する場合の遮蔽度の一例を説明するための図解図である。
【図７】視点と被遮蔽オブジェクトとの間に遮蔽物が存在する場合の遮蔽度の他の例を説明するための図解図である。
【図８】視点と被遮蔽オブジェクトとの間に遮蔽物が存在しない場合と存在する場合との遮蔽度のその他の例を説明するための図解図である。
【図９】図２に示すＣＰＵの３次元画像生成処理の一部を示すフロー図である。
【図１０】図２に示すＣＰＵの３次元画像生成処理の他の一部であり、図９に後続するフロー図である。
【図１１】図２に示すＣＰＵの判定点設定処理を示すフロー図である。
【図１２】図２に示すＣＰＵの遮蔽度算出処理を示すフロー図である。
【図１３】視点と被遮蔽オブジェクトとの間に遮蔽オブジェクトが存在する他の例および判定点の設定方法の他の例を示す図解図である。
【符号の説明】
【０１０１】
１０  …ゲームシステム
１２  …ビデオゲーム装置
１８  …光ディスク
２２  …コントローラ
３４  …モニタ
３４ａ  …スピーカ
３６  …ＣＰＵ
３８  …メモリコントローラ
４０  …メインメモリ
４２  …ＧＰＵ
５２  …ＤＳＰ
５４  …ＡＲＡＭ
６２  …オーディオＩ／Ｆ
【図１】
2005310020.tif 000003
【図２】
2005310020.tif 000004
【図３】
2005310020.tif 000005
【図４】
2005310020.tif 000006
【図５】
2005310020.tif 000007
【図６】
2005310020.tif 000008
【図７】
2005310020.tif 000009
【図８】
2005310020.tif 000010
【図９】
2005310020.tif 000011
【図１０】
2005310020.tif 000012
【図１１】
2005310020.tif 000013
【図１２】
2005310020.tif 000014
【図１３】
2005310020.tif 000015