(57)【特許請求の範囲】
【請求項１】
コンピュータに、所与の視点から見た仮想空間の画像を生成して、所与のゲームを実行させるためのプログラムであって、
仮想空間内に複数の反射オブジェクトを配置する配置手段、
環境テクスチャを記憶する記憶手段、
前記配置された反射オブジェクトの内、描画対象の反射オブジェクトを特定する特定手段、
前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定する判定手段、
前記判定手段により環境テクスチャを生成すると判定された場合に、前記特定された反射オブジェクトに対する環境テクスチャを生成し、当該環境テクスチャに基づいて当該反射オブジェクトを描画するとともに、当該環境テクスチャを前記記憶手段に記憶させる第１の描画手段、
前記判定手段により環境テクスチャを生成しないと判定された場合に、前記記憶手段に記憶された環境テクスチャに基づいて、前記特定された反射オブジェクトを描画する第２の描画手段、
として前記コンピュータを機能させるとともに、
更に、前記判定手段が、判定済みの反射オブジェクトの配置位置と、前記特定された反射オブジェクトの配置位置とに基づいて、前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定する、
ように前記コンピュータを機能させるためのプログラム。
【請求項２】
コンピュータに、所与の視点から見た仮想空間の画像を生成して、所与のゲームを実行させるためのプログラムであって、
仮想空間内に複数の反射オブジェクトを配置する配置手段、
環境テクスチャを記憶する記憶手段、
前記配置された反射オブジェクトの内、描画対象の反射オブジェクトを特定する特定手段、
前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定する判定手段、
前記判定手段により環境テクスチャを生成すると判定された場合に、前記特定された反射オブジェクトに対する環境テクスチャを生成し、当該環境テクスチャに基づいて当該反射オブジェクトを描画するとともに、当該環境テクスチャを前記記憶手段に記憶させる第１の描画手段、
前記判定手段により環境テクスチャを生成しないと判定された場合に、前記記憶手段に記憶された環境テクスチャに基づいて、前記特定された反射オブジェクトを描画する第２の描画手段、
として前記コンピュータを機能させるとともに、
更に、前記判定手段が、判定済みの反射オブジェクトと前記視点の位置関係と、前記特定された反射オブジェクトと前記視点の位置関係とに基づいて、前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定する、
ように前記コンピュータを機能させるためのプログラム。
【請求項３】
請求項１において、
前記判定手段が、判定済みの反射オブジェクトと前記視点の位置関係と、前記特定された反射オブジェクトと前記視点の位置関係とに基づいて、前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定する、ように前記コンピュータを機能させるためのプログラム。
【請求項４】
コンピュータに、所与の視点から見た仮想空間の画像を生成して、所与のゲームを実行させるためのプログラムであって、
仮想空間内に複数の反射オブジェクトを配置する配置手段、
仮想空間内に光源オブジェクトを配置する手段、
環境テクスチャを記憶する記憶手段、
前記配置された反射オブジェクトの内、描画対象の反射オブジェクトを特定する特定手段、
前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定する判定手段、
前記判定手段により環境テクスチャを生成すると判定された場合に、前記特定された反射オブジェクトに対する環境テクスチャを生成し、当該環境テクスチャに基づいて当該反射オブジェクトを描画するとともに、当該環境テクスチャを前記記憶手段に記憶させる第１の描画手段、
前記判定手段により環境テクスチャを生成しないと判定された場合に、前記記憶手段に記憶された環境テクスチャに基づいて、前記特定された反射オブジェクトを描画する第２の描画手段、
として前記コンピュータを機能させるとともに、
更に、前記判定手段が、判定済みの反射オブジェクトと前記光源オブジェクトの位置関係と、前記特定された反射オブジェクトと前記光源オブジェクトの位置関係とに基づいて、前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定する、
ように前記コンピュータを機能させるためのプログラム。
【請求項５】
請求項１〜３の何れかにおいて、
仮想空間内に光源オブジェクトを配置する手段として前記コンピュータを更に機能させるとともに、
前記判定手段が、判定済みの反射オブジェクトと前記光源オブジェクトの位置関係と、前記特定された反射オブジェクトと前記光源オブジェクトの位置関係とに基づいて、前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定する、ように前記コンピュータを機能させる、
ためのプログラム。
【請求項６】
請求項４又は５において、
前記第１の描画手段が、反射オブジェクトに対する環境テクスチャとして、前記配置された光源オブジェクトに係る環境テクスチャを生成する、
ように前記コンピュータを機能させるためのプログラム。
【請求項７】
コンピュータに、所与の視点から見た仮想空間の画像を生成して、所与のゲームを実行させるためのプログラムであって、
仮想空間内に複数の反射オブジェクトを配置する配置手段、
前記各反射オブジェクトの配置位置に基づいて、反射オブジェクトをグループ化するグループ化手段、
環境テクスチャを記憶する記憶手段、
前記グループ化手段によりグループ化された反射オブジェクト毎に、描画対象の反射オブジェクトを特定する特定手段、
前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定する判定手段、
前記判定手段により環境テクスチャを生成すると判定された場合に、前記特定された反射オブジェクトに対する環境テクスチャを生成し、当該環境テクスチャに基づいて当該反射オブジェクトを描画するとともに、当該環境テクスチャを前記記憶手段に記憶させる第１の描画手段、
前記判定手段により環境テクスチャを生成しないと判定された場合に、前記記憶手段に記憶された環境テクスチャに基づいて、前記特定された反射オブジェクトを描画する第２の描画手段、
として前記コンピュータを機能させるためのプログラム。
【請求項８】
請求項１〜６の何れかにおいて、
前記各反射オブジェクトの配置位置に基づいて、反射オブジェクトをグループ化するグループ化手段として前記コンピュータを更に機能させるとともに、
前記特定手段が、前記グループ化手段によりグループ化された反射オブジェクト毎に、反射オブジェクトを特定する、ように前記コンピュータを機能させる、
ためのプログラム。
【請求項９】
請求項１〜８の何れか記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項１０】
所与の視点から見た仮想空間の画像を生成して、所与のゲームを実行するゲーム装置であって、
仮想空間内に複数の反射オブジェクトを配置する配置手段と、
環境テクスチャを記憶する記憶手段と、
前記配置された反射オブジェクトの内、描画対象の反射オブジェクトを特定する特定手段と、
前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定する判定手段と、
前記判定手段により環境テクスチャを生成すると判定された場合に、前記特定された反射オブジェクトに対する環境テクスチャを生成し、当該環境テクスチャに基づいて当該反射オブジェクトを描画するとともに、当該環境テクスチャを前記記憶手段に記憶させる第１の描画手段と、
前記判定手段により環境テクスチャを生成しないと判定された場合に、前記記憶手段に記憶された環境テクスチャに基づいて、前記特定された反射オブジェクトを描画する第２の描画手段と、
を備え、
前記判定手段が、判定済みの反射オブジェクトの配置位置と、前記特定された反射オブジェクトの配置位置とに基づいて、前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定する、
ゲーム装置。
【請求項１１】
所与の視点から見た仮想空間の画像を生成して、所与のゲームを実行するゲーム装置であって、
仮想空間内に複数の反射オブジェクトを配置する配置手段と、
環境テクスチャを記憶する記憶手段と、
前記配置された反射オブジェクトの内、描画対象の反射オブジェクトを特定する特定手段と、
前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定する判定手段と、
前記判定手段により環境テクスチャを生成すると判定された場合に、前記特定された反射オブジェクトに対する環境テクスチャを生成し、当該環境テクスチャに基づいて当該反射オブジェクトを描画するとともに、当該環境テクスチャを前記記憶手段に記憶させる第１の描画手段と、
前記判定手段により環境テクスチャを生成しないと判定された場合に、前記記憶手段に記憶された環境テクスチャに基づいて、前記特定された反射オブジェクトを描画する第２の描画手段と、
を備え、
前記判定手段が、判定済みの反射オブジェクトと前記視点の位置関係と、前記特定された反射オブジェクトと前記視点の位置関係とに基づいて、前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定する、
ゲーム装置。
【請求項１２】
所与の視点から見た仮想空間の画像を生成して、所与のゲームを実行するゲーム装置であって、
仮想空間内に複数の反射オブジェクトを配置する配置手段と、
仮想空間内に光源オブジェクトを配置する手段と、
環境テクスチャを記憶する記憶手段と、
前記配置された反射オブジェクトの内、描画対象の反射オブジェクトを特定する特定手段と、
前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定する判定手段と、
前記判定手段により環境テクスチャを生成すると判定された場合に、前記特定された反射オブジェクトに対する環境テクスチャを生成し、当該環境テクスチャに基づいて当該反射オブジェクトを描画するとともに、当該環境テクスチャを前記記憶手段に記憶させる第１の描画手段と、
前記判定手段により環境テクスチャを生成しないと判定された場合に、前記記憶手段に記憶された環境テクスチャに基づいて、前記特定された反射オブジェクトを描画する第２の描画手段と、
を備え、
前記判定手段が、判定済みの反射オブジェクトと前記光源オブジェクトの位置関係と、前記特定された反射オブジェクトと前記光源オブジェクトの位置関係とに基づいて、前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定する、
ゲーム装置。
【請求項１３】
所与の視点から見た仮想空間の画像を生成して、所与のゲームを実行するゲーム装置であって、
仮想空間内に複数の反射オブジェクトを配置する配置手段と、
前記各反射オブジェクトの配置位置に基づいて、反射オブジェクトをグループ化するグループ化手段と、
環境テクスチャを記憶する記憶手段と、
前記グループ化手段によりグループ化された反射オブジェクト毎に、描画対象の反射オブジェクトを特定する特定手段と、
前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定する判定手段と、
前記判定手段により環境テクスチャを生成すると判定された場合に、前記特定された反射オブジェクトに対する環境テクスチャを生成し、当該環境テクスチャに基づいて当該反射オブジェクトを描画するとともに、当該環境テクスチャを前記記憶手段に記憶させる第１の描画手段と、
前記判定手段により環境テクスチャを生成しないと判定された場合に、前記記憶手段に記憶された環境テクスチャに基づいて、前記特定された反射オブジェクトを描画する第２の描画手段と、
を備えたゲーム装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プロセッサによる演算・制御により、装置に対して、所与の視点から見た仮想空間の画像を生成して所与のゲームを実行させるためのプログラム等に関する。
【０００２】
【従来の技術】
従来、３次元仮想空間であるオブジェクト空間内に複数のオブジェクトを配置し、オブジェクト空間内の所与の視点から見える３ＤＣＧ画像を表示するゲームが知られている。そうしたゲームは、所謂仮想現実感を楽しむものとして人気が高く、最近ではよりリアルな仮想現実感を求められる傾向にある。
【０００３】
リアルな仮想現実感を実現するために重要な要素の一つが、３ＤＣＧ画像自体のリアリティである。特に、周囲の環境からの反射が元になるオブジェクト表面の光沢や映り込みは、プレーヤに対してオブジェクトの質感や存在感といったリアリティを感じさせるとともに、周囲の環境との関係の深さを示し、環境のリアリティをも感じさせる重要な要素である。
【０００４】
光沢表現が可能な３ＤＣＧ画像の生成手法としては、例えばレイ・トレーシングや環境マッピングなど種々の方法が提案されている。
【０００５】
環境マッピングでは、先ず３次元仮想空間における所与の視点からみた周囲の環境を、仮想の円柱や球、或いは立方体の内面に写像することで２次元画像情報、即ち環境テクスチャを生成する。そして、オブジェクトの表面にあたかも環境テクスチャが反射しているかのようにテクスチャマッピングすることによって、光沢表現や映り込みなどを表現する。
環境マッピングは、レイ・トレーシング法などと比較すると、演算負荷が小さい。その為、例えば、単純で高速処理可能なシェーディング・アルゴリズムであるレイ・キャスティングとの組み合わせで、多くの場面で光沢や映り込の表現に利用されている。
【０００６】
【本発明が解決しようとする課題】
ところが、ゲームでは動画を多用する場合が多く、３ＤＣＧ画像の生成に多くの演算負荷を掛けて時間を割くことはできない。例えば、ＴＶモニタに表示する場合、約１／６０秒ごとに画像を生成する必要があり、演算負荷の大きいレンダリング法では画像の生成が追い着かずにゲームとして成り立たないといった事態が起こる。
【０００７】
前述の環境マッピングを利用する場合であっても、現状では環境テクスチャをレンダリングの都度オブジェクト毎に求めなければならず、どうしてもゲーム処理における演算負荷が大きくなる。その為、光沢や映り込みが極限られたオブジェクトにしか描けない、あるいはオブジェクトの数が制限される、など多くの問題があった。処理能力が低くメモリ容量の少ない装置では、光沢表現そのものを実現できない場合もあった。
【０００８】
本発明は、以上の課題を鑑みて考えられたものであって、その目的とするところは、少ない演算負荷とメモリ消費で効率的に光沢や映り込みの表現を可能とすることである。
【０００９】
【課題の解決手段】
上記課題を解決するための第１の発明は、プロセッサの演算・制御によって、装置に対して、所与の視点から見た仮想空間の画像を生成して、所与のゲームを実行させるためのゲーム情報であって、仮想空間内に複数の反射オブジェクトを配置する配置手段（例えば、図３のゲーム演算部２２）と、環境テクスチャを記憶する記憶手段（例えば、図３の画像生成部２４、一時記憶部４４）と、前記配置された反射オブジェクトの内、描画対象の反射オブジェクトを特定する特定手段（例えば、図３の画像生成部２４）と、前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定する判定手段（例えば、図３のシェーディング部２４０）と、前記判定手段により環境テクスチャを生成すると判定された場合に、当該反射オブジェクトに対する環境テクスチャを生成し、前記記憶手段に記憶させる生成手段（例えば、図３のスペキュラマップ生成部２４２）と、前記記憶手段に記憶された環境テクスチャに基づいて、前記特定された反射オブジェクトを描画する描画手段（例えば、図３のテクスチャマッピング部２４４）と、を前記装置に機能させるための情報を含むゲーム情報である。
【００１０】
また、第９の発明は、所与の視点から見た仮想空間の画像を生成して、所与のゲームを実行するゲーム装置であって、仮想空間内に複数の反射オブジェクトを配置する配置手段と、環境テクスチャを記憶する記憶手段と、前記配置された反射オブジェクトの内、描画対象の反射オブジェクトを特定する特定手段と、前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定する判定手段と、前記判定手段により環境テクスチャを生成すると判定された場合に、当該反射オブジェクトに対する環境テクスチャを生成し、前記記憶手段に記憶させる生成手段と、前記記憶手段に記憶された環境テクスチャに基づいて、前記特定された反射オブジェクトを描画する描画手段と、を備えるゲーム装置である。
【００１１】
反射オブジェクトとは、環境マッピングによって環境テクスチャが貼り込まれるオブジェクトのことであって、光沢や映り込みを表現されるオブジェクトのことである。
【００１２】
反射オブジェクトに適用される環境テクスチャは、厳密にはオブジェクトと、光源と、及び視点との相対的な位置関係によって異なった内容となる。しかし、実際の利用においては、環境テクスチャはテクスチャマッピング処理によって元の画像から歪んだ状態になる。また、ゲームの場合、動画を多用するために、環境テクスチャの厳密さを必要としない場合が多い。即ち、環境テクスチャの差異が小さい、或いは差異があってもゲーム画面上でプレーヤが認識できない条件においては、環境テクスチャを流用することができる。
【００１３】
第１又は第９の発明では、配置手段によって仮想空間内に複数の反射オブジェクトが配置され、特定手段が描画対象とする反射オブジェクトを選択（特定）する。そして、判定手段が環境テクスチャを生成するか否かを判定する。
【００１４】
ここで、生成の判定がなされて生成手段が環境テクスチャを生成したならば、環境テクスチャを記憶手段に記憶しておく。そして、特定手段が次の反射オブジェクトを特定し処理する際に、判定手段が環境テクスチャを新たに生成しないと判定したならば、前記記憶手段によって記憶された環境テクスチャを流用する。即ち、新たに環境テクスチャを生成するのに必要とされた演算負荷とメモリ領域の消費を軽減させる。
この様に、環境テクスチャを適宜異なるオブジェクトに流用することによって演算負荷とメモリ消費を軽減することで、動画を多用するゲームであっても、環境テクスチャを用いて光沢表現や映り込みを表現することができる。
【００１５】
また、光沢表現のみを必要とする場合には、第２の発明として、第１の発明のゲーム情報において、仮想空間内に光源オブジェクトを配置する手段（例えば、図３のゲーム演算部２２）を前記装置に機能させるための情報（例えば、図３のゲーム情報４２）と、前記生成手段が、反射オブジェクトに対する環境テクスチャとして、前記配置された光源オブジェクトに係る環境テクスチャを生成するための情報（例えば、図３のシェーディングプログラム４２２）と、を含むゲーム情報を構成することとしても良い。
【００１６】
又は、第１０の発明として、第９の発明のゲーム装置において、仮想空間内に光源オブジェクトを配置する手段を備え、前記生成手段が、反射オブジェクトに対する環境テクスチャとして、前記配置された光源オブジェクトに係る環境テクスチャを生成するゲーム装置を構成することとしても良い。
【００１７】
光源オブジェクトとは、所与の光を発するように設定された光源やオブジェクトである。
【００１８】
第２又は第１０の発明によれば、生成手段が、環境テクスチャを生成する際に光源オブジェクトのみをその写像対象とする。環境テクスチャには、光源オブジェクトからの光の情報のみが描かれるために、所謂スペキュラマップとして利用すること可能となる。そして、描画手段が、例えば、加算合成でテクスチャマッピングすることによって、反射オブジェクトの表面に光沢を表現できる。
従って、第２又は第１０の発明によれば、第１又は第９の発明と同様の効果を奏するとともに、光沢のみを表現する場合には、環境テクスチャの生成に要する演算負荷をさらに軽減することができる。
【００１９】
また、演算負荷を更に軽減するには、第３の発明として、第１又は第２の発明のゲーム情報において、前記判定手段が、判定済みの反射オブジェクトの配置位置と、前記特定された反射オブジェクトの配置位置とに基づいて、前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定するための情報（例えば、図３の近接判定情報４４２）を含むゲーム情報を構成することとしても良い。
【００２０】
或いは、第１１の発明として、第９又は第１０の発明のゲーム装置において、前記判定手段が、判定済みの反射オブジェクトの配置位置と、前記特定された反射オブジェクトの配置位置とに基づいて、前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定するゲーム装置を構成することとしても良い。
【００２１】
判定手段による、環境テクスチャの生成するか否かの判定、即ち環境テクスチャの流用可否判定の一つの考え方は、環境テクスチャを新たに生成しても記憶手段に記憶されている環境テクスチャと差異が小さいと予想されるかどうかである。
【００２２】
第３又は第１１の発明によれば、例えば、ワールド座標におけるＸＹＺ座標値の差から、判定済みの反射オブジェクトと特定された反射オブジェクトとの距離を求める。そして、判定手段が、該距離が所与の判定値より小さい場合に環境テクスチャを流用し新たには生成しないと判断する。
即ち、距離が近い場合には、視点や光源オブジェクトとの相対的な位置関係の変化が少なく、環境テクスチャを新たに生成しても記憶手段に記憶されている環境テクスチャと差異が小さく、環境テクスチャの流用が可能と考える。
【００２３】
判定に係る要素はオブジェクトの配置位置だけで良いので、判定に要する演算負荷は小さくてすむ。従って、第１又は第２、或いは第９又は第１０の発明と同様の効果を奏するとともに、より演算負荷を軽減することができる。
【００２４】
また、判定におけるオブジェクトの位置関係については、双方のＸＹＺ座標値に基づいた距離による判定に限らず、所与の基準となる位置からの距離の差であっても良く、第４の発明として、第１〜第３の何れかの発明のゲーム情報において、前記判定手段が、判定済みの反射オブジェクトと前記視点の位置関係と、前記特定された反射オブジェクトと前記視点の位置関係とに基づいて、前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定するための情報（例えば、図３のシェーディングプログラム２４０、近接判定条件４４２、オブジェクト・データ４２４）を含むゲーム情報を構成することとしても良い。
【００２５】
第４の発明によれば、例えば、判定手段は反射オブジェクトと視点との距離、或いはワールド座標軸の何れかからの距離を求め、両オブジェクトの距離の差が所与の判定値より小さい場合には、環境テクスチャを生成しないと判断する。
反射オブジェクトと視点の距離や座標軸からの距離は、光沢を表現するシェーディング処理の前段階で既に求められている場合が多い。即ち、反射オブジェクトの配置位置を認識するにあたって、両反射オブジェクト間の直接的な距離値を求めるよりも演算負荷を軽減できる。従って、第１〜第３の何れかの発明と同様の効果を奏するとともに、より演算負荷を少なくすることができる。
【００２６】
また、判定手段が、第３の発明のような、判定済みの反射オブジェクトの配置位置と特定された反射オブジェクトの配置位置と、第４の発明のような、それぞれの反射オブジェクトと視点との位置関係との、両方の関係から判断するならば、視点からの距離に応じた細かな判定も可能になる。
例えば、視点から両オブジェクトが離れている場合には、視点からの距離に応じて判定基準値を大きくして、両反射オブジェクトの距離が大きめであっても環境テクスチャの流用可と判定する。即ち、視点から遠く離れた反射オブジェクトは、ゲーム画面上は小さく表現されるために、環境テクスチャの差異が認識され難いので、通常よりも判定を甘くしても不都合は無いと考える。従って、より環境テクスチャが流用される度合を高め、演算負荷の軽減を促進することができる。
【００２７】
或いは、判定条件に両反射オブジェクトと光源オブジェクトの相対的な位置関係を加味して、第５の発明として、第１〜第４の何れかの発明のゲーム情報において、仮想空間内に光源オブジェクトを配置する手段を前記装置に機能させるための情報と、前記判定手段が、判定済みの反射オブジェクトと前記光源オブジェクトの位置関係と、前記特定された反射オブジェクトと前記光源オブジェクトの位置関係とに基づいて、前記特定された反射オブジェクトの環境テクスチャを生成するか否かを判定するための情報（例えば、図３のシェーディングプログラム２４０、近接判定条件４４２、オブジェクト・データ４２４）と、を含むゲーム情報を構成することとしても良い。
【００２８】
例えば、光源オブジェクトが、反射オブジェクトより視点近くに配置された場合と、反射オブジェクトより視点から離れて配置された場合とでは、光沢の位置は違わなくては不自然になる。
そこで、第５の発明によれば、判定手段は、例えば、判定済みの反射オブジェクトと光源オブジェクトの位置関係と、特定された反射オブジェクトと光源オブジェクトの位置関係を比較し、差異が大きい場合には環境テクスチャの流用をしないと判断することで、環境テクスチャの無理な流用を避ける。
【００２９】
具体的には、例えば、それぞれの反射オブジェクトから光源オブジェクトへの単位ベクトルを求める。ここで、更にベクトルの内積を求めると、ベクトルが略同方向を向いている場合は正になり、ベクトルが略反対方向を向いている場合は負になる。求められたベクトルの内積の正負や大小によって、両反射オブジェクトと光源オブジェクトとの相対的な位置関係を判断することができる。
従って、第５の発明によれば、第１〜第４の何れかの発明と同様の効果を奏するとともに、より適切な流用によって自然な光沢や映り込みを実現することができる。
【００３０】
第７の発明は、第１〜第６の何れかの発明のゲーム情報を記憶することを特徴とする情報記憶媒体（例えば、図７のＣＤ−ＲＯＭ１２０６、ＩＣメモリ１２０８、メモリカード１２１２）である。
【００３１】
情報記憶媒体とは、例えば、ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ、ハードディスク、ＩＣメモリ、メモリースティック、ＤＡＴなどの磁気テープ媒体を利用したものなどである。装置に、前記情報記憶媒体よりゲーム情報を読込ませることによって、第１〜第６の発明の何れかの効果をもたらすことができる。
【００３２】
【発明の実施の形態】
[第１の実施形態]
以下、図１〜図８を参照して、本発明を業務用ゲーム装置に適用した第１の実施形態について詳細に説明する。
第１の実施形態は、本発明を、宇宙空間で敵戦闘機を打ち落とすシューティングゲームに適用し、光沢表現をする場合を例とするが、本発明の適用範囲がこれに限定されるものではない。
【００３３】
[構成の説明]
先ず、図１を参照して、本実施形態における構成を説明する。図１は、本発明を適用した業務用ゲーム装置１３００の外観の一例を示す図である。同図において、プレーヤは、ディスプレイ１３０４に映し出された３ＤＣＧによるゲーム画面を見ながら、操作レバー１３０６と操作ボタン１３０８を操作して、敵戦闘機ＯＢに照準Ｍを移動させ、射撃タイミング等を入力してシューティングゲームを楽しむ。
【００３４】
ゲームプレイや画像の生成に係る演算処理や制御を行うハードウェアは、システム基盤１３１０上に実現され、種々の処理に必要なゲームプログラムやデータ等を含むゲーム情報は、システム基板１３１０上の情報記憶媒体であるＩＣメモリ１３１２に格納されている。
【００３５】
[原理の説明]
次に、図２〜図３を参照して、本実施形態における原理を説明する。
図２は、３次元仮想空間におけるオブジェクトの配置と、適用されるスペキュラマップの関係を示す図である。同図に示すように、仮想空間内には、視点Ｃ、光源オブジェクトＬ１とＬ２、反射オブジェクトである敵戦闘機ＯＢ１〜ＯＢ３が配置されている。
【００３６】
視点Ｃはカメラに相当し、視点Ｃから見た様子がレンダリングされてゲーム画面として表示される。
光源オブジェクトＬ１とＬ２は、所与の色の光を発するよう設定された光源やオブジェトであって、例えば、恒星、灯台、戦闘機やミサイル等の推進装置の噴射物、レーザ兵器などの光軌跡などがこれに相当する。
敵戦闘機ＯＢ１〜ＯＢ３は、ゲーム設定上の標的となる反射オブジェクトであって、他のオブジェクトと同様に複数のポリゴンによって形成されている。敵戦闘機ＯＢ１とＯＢ２は、視点Ｃの近くに互いに近接して配置され、敵戦闘機ＯＢ３は、敵戦闘機ＯＢ１とＯＢ２とは離れて視点Ｃの遠くに配置されている。
【００３７】
本実施形態では、他の多くのゲーム装置と同様に、レイ・キャスティング法によるレンダリングを行う。そこで、敵戦闘機ＯＢ１〜ＯＢ３の表面に、よりリアルな光沢表現（表面の反射）を描画するために、敵戦闘機ＯＢ１〜ＯＢ３の周囲の環境から来る光を、環境マッピングの考え方を利用してレンダリングに取り入れる。
【００３８】
具体的には、例えば、図３（ａ）に示すように、敵戦闘機ＯＢの代表点Ｐから見える光源オブジェクトＬ１とＬ２を、例えば、仮想的な円筒や球、或いは立方体の内面に描画する。描画された環境テクスチャは、光源オブジェクトＬのみを対象としたことで、例えば図３（ｂ）に示すような黒地に光のＲＧＢ情報が描かれ、スペキュラマップとして利用することができる。
このスペキュラマップは、所定のシェーディング・アルゴリズムやテクスチャマッピングによって敵戦闘機ＯＢのポリゴンの色を決定した後に、例えば、加算合成でテクスチャマッピングされ、光源色を備えたハイライトや映り込みとなって戦闘機ＯＢの光沢を表現する。
【００３９】
上述のような環境テクスチャの内容、ならびにこれに基づくスペキュラマップの内容は、敵戦闘機ＯＢの位置によって変化する。その為、従来は敵戦闘機ＯＢ毎、即ち処理対象の反射オブジェクトが変わる毎に「オブジェクトの選択」→「スペキュラマップの生成」→「メモリに記憶」→「スペキュラマップのマッピング」→「メモリから消去」といった処理をリアルタイムに繰り返す必要があった。
【００４０】
しかし、反射オブジェクトが近接する場合、生成される環境テクスチャ（スペキュラマップ）の差異は小さい場合が多く、また反射オブジェクトへのマッピング時に歪みが生じるために、プレーヤに差異が伝わらない場合が多い。そこで、本実施形態では、仮想空間に近接して配置されたオブジェクト間で、スペキュラマップを流用することによって、スペキュラマップの生成負荷を軽減させる。
【００４１】
具体的には、図２の例では、敵戦闘機ＯＢ１とＯＢ２が近接しているので、敵戦闘機ＯＢ１の処理をする際に生成されたメモリ内に記憶されたスペキュラマップＳＭ１を消去せずに残しておいて、敵戦闘機ＯＢ２にそのまま適用する。敵戦闘機ＯＢ３は、離れた位置に配置されているので、スペキュラマップＳＭ１を適用すると違和感が生じるので、別途スペキュラマップＳＭ２を生成して使用する。
【００４２】
この様に、メモリ内に記憶されたスペキュラマップＳＭをそのまま流用することによって、演算負荷を軽減するとともに、メモリ消費を少なくして利用効率を上げることで、メモリの容量が少ない装置であっても光沢表現が可能となる。また、演算負荷を軽減させたことで、その分より多数の敵戦闘機ＯＢを登場させて、ゲームの迫力を増すことも可能となる。
【００４３】
尚、本実施形態では、反射オブジェト間でスペキュラマップを流用するか否かの判断は、前回処理した反射オブジェクトと今回処理する反射オブジェクトの距離で（図２の例では、敵戦闘機ＯＢ１とＯＢ２の距離、ＯＢ２とＯＢ３の距離に応じて）決定するものとし、流用の可否判定を以下、近接判定と言うが、適宜判定条件を設定しても構わない。
【００４４】
[機能ブロックの説明]
次に、本実施形態を実現するための機能ブロックを説明する。
図４は、本発明における機能ブロックの一例を示すブロック図である。同図において、機能ブロックは、操作部１０、処理部２０、表示部３０、記憶部４０を備える。
【００４５】
操作部１０は、プレーヤが、例えばゲームステージの選択や照準Ｍの移動操作、射撃タイミングなどの入力をするためのものであって、操作入力信号は処理部２０に出力される。その機能は、例えば、十字キー、レバー、ボタンなどのハードウェアによって実現できる。
【００４６】
処理部２０は、ゲーム装置全体の制御、装置内の各機能ブロックへの命令、ゲーム処理などの各種の演算処理を行う。その機能は、例えば、ＣＰＵ（ＣＩＳＣ型、ＲＩＳＣ型）、ＤＳＰ、あるいはＡＳＩＣ（ゲートアレイ等）などのハードウェア、及び所与のプログラムにより実現できる。
また、処理部２０には、主にゲーム処理に係る演算処理を行うゲーム演算部２２と、ゲーム演算部２２の処理によって求められた３次元仮想空間のデータから、ゲーム画像となる３ＤＣＧ画像を生成する画像生成部２４とが含まれる。
【００４７】
ゲーム演算部２２は、操作部１０からの操作入力信号や、記憶部４０から読み出したプログラム等に基づいて種々のゲーム処理を実行する。ゲーム処理としては、例えは、ゲームステージの選択処理、反射オブジェクトや光源オブジェクトなどをオブジェクト空間に配置する処理、オブジェクトへのテクスチャマッピングするテクスチャの選択処理、照準Ｍや敵戦闘機ＯＢなどの移動に伴う位置・姿勢・運動等を求める演算処理、視点の位置や視線方向の決定、ヒットチェック処理、或いはゲーム結果（成績)を求める処理等が挙げられる。
【００４８】
画像生成部２４は、例えば、ＣＰＵ、ＤＳＰ、画像生成専用のＬＳＩなどのハードウェア、及び記憶部４０に格納されたプログラムやデータによって実現され、ゲーム演算部２２からの指示信号や各種データ等に基づいて３ＤＣＧ画像の生成を行う。具体的には、例えば、ゲーム演算部２２によって３次元仮想空内に配置されたオブジェクトの座標変換処理や陰面消去及びクリッピングなどの幾何学変換処理、幾何学変換されたオブジェクトの色を決めるシェーディング処理、描画用のメモリ領域（フレームメモリ）へのデータの描きこみなどの処理を行う。そして、生成された画像データは表示部３０に出力されてゲーム画面として表示される。
【００４９】
また、画像生成部２４には、シェーディング部２４０が含まれ、シェーディング部２４０には、さらにスペキュラマップ生成部２４２と、テクスチャマッピング部２４４とが備えられている。
【００５０】
シェーディング部２４０は、レンダリング・パイプラインの一部であって、オブジェクトを構成するポリゴンの表面の色や輝度を演算・決定する機能を有する。そして、シェーディング部２４０は、例えば、処理対象の反射オブジェクトの選択処理や、グロー・シェ−ディイングやフォン・シェーディングなどといった所謂シェーディングによる表面の濃淡の決定、及び描画用のメモリ領域へのデータの書込み／読込みなどを行う。
【００５１】
スペキュラマップ生成部２４２は、環境マッピングの考え方を基にして、敵戦闘機ＯＢの代表点Ｐから見たと仮定される周囲の環境（周囲に配置された他のオブジェクトや背景情報）のなかから光源オブジェクトＬのみを対象とした環境テクスチャを作成する。そして、生成された環境テクスチャは、光源オブジェクトＬのみが描かれていることから、敵戦闘機ＯＢのスペキュラマップとして利用する。環境テクスチャ（スペキュラマップ）は、記憶部４０に格納される。
【００５２】
テクスチャマッピング部２４４は、所謂テクスチャマッピングを実行する手段であって、処理対象となる反射オブジェクトの表面に所与のテクスチャを貼りこむ。テクスチャマッピングの手法は、適宜設定して構わない。
【００５３】
そして本実施形態では、テクスチャマッピング部２４４は、敵戦闘機ＯＢの表面にマーキングなどのディテールを表現するための従来のテクスチャマッピング処理と、先のスペキュラマップ生成部２４２によって作成されたスペキュラマップを適用して光沢表現をする処理と、を担う。
【００５４】
表示部３０は、画像生成部２４からの画像信号に基づいて、ゲーム画面を表示するものであり、例えば、ＣＲＴ、ＬＣＤ、ＥＬＤ、ＰＤＰ、ＨＭＤ等のハードウェアによって実現できる。
【００５５】
記憶部４０は、例えば、ＣＤ−ＲＯＭ、ゲームカセット、ＩＣカード、ＭＣ、ＦＤ(R) 、ＤＶＤ、ＩＣメモリ、ハードディスク等のハードウェアによって実現される。
記憶部４０には、種々のゲーム処理を実行させるゲームプログラムや、画像生成における処理を実行させるプログラム、及びプログラムの実行に必要な設定値等のデータが含まれるゲーム情報４２と、処理部２０や他のブロックがプログラムやデータ等の情報を一時的に格納する一時記憶部４４とが、含まれている。
【００５６】
ゲーム情報４２には、特に、シェーディング部２４０を実現するシェーディングプログラム４２２と、ゲーム内に登場するオブジェクトの設定に関する情報が格納されたオブジェクト・データ４２４と、オブジェクトに貼りこむテクスチャが格納されたテクスチャ・データ４２６と、が含まれる。
【００５７】
オブジェクト・データ４２４は、反射オブジェクトである敵戦闘機ＯＢや光源オブジェクトＬなどのオブジェクト毎に用意され、例えば、オブジェクトの形状や、適用されるテクスチャのＩＤ、光の色などの発光に関する諸設定、オブジェクトの位置や姿勢及び運動などのデータ、適用されるシェーディング方法の設定などを格納する。
【００５８】
通常のオブジェクトと光源オブジェクトＬの識別は、例えば、光に関する設定値が所与の値以上であることで判断しても良いし、識別用のフラグを設けても良く、適宜設定して構わない。
また、ゲームに多数のオブジェクトが配置される場合には、オブジェクト・データ４２４に本発明の適用するオブジェクト（反射オブジェクト）を選択／指定するフラグ等を適宜設け、演算負荷を更に軽減させるとしても良い。
【００５９】
テクスチャ・データ４２６は、例えば、敵戦闘機ＯＢの色彩のディテールを表現する２次元画像データ、所謂テクスチャであって、敵戦闘機ＯＢの機種毎に用意されている。
【００６０】
一時記憶部４４は、処理部２０が演算処理に必要なデータを一時的に格納する記憶領域であって、近接判定情報４４２と、スペキュラマップ情報４４４とを含む。
【００６１】
近接判定情報４４２は、例えば、現在処理対象となっている反射オブジェクトの識別情報と、前回処理対象であった反射オブジェクトの位置座標と、近接判定の判定値Ｄｍｉｎと、を記憶する。該位置情報は、現在処理対象となっている反射オブジェクトの処理が終了したら、次回の判定に備えて現在処理対象の反射オブジェクトの位置情報が上書きされる。
スペキュラマップ情報４４４は、スペキュラマップ生成部２４２が、生成したスペキュラマップを記憶する。
【００６２】
効果音やＢＧＭなどゲーム音を必要とする場合は、例えば、処理部２０内に音信号を生成する機能ブロックを設け、記憶部４０に音生成プログラムや音データ等を備え、更に音信号を出力する音出力部を設けることによって実現できる。
【００６３】
[処理フローの説明]
次に、図５と図１３を参照して、処理の流れについて説明する。
【００６４】
図１３は、ゲーム画面の表示に係る一連の処理における一般的な流れを説明するためのフローチャートである。同図に示すように、先ず、ゲーム演算部２２によってゲーム処理が実行され、３次元仮想空間における敵戦闘機ＯＢや視点Ｃ及び光源オブジェクトＬの位置や姿勢及び運動などが決定される（ステップ；Ｓ３０２）。求められたデータは、記憶部４０内のオブジェクト・データ４２４に格納される。
【００６５】
オブジェクトの３次元仮想空間内の位置や姿勢等が定まったならば、次に、画像生成部２４によって幾何学変換処理が行われる。具体的には、例えば、モデル座標系からワールド座標系への座標変換処理と、視点Ｃから見てオブジェクトの隠れる面を見つけてレンダリング処理から外す陰面処理と、表示面からはみ出す個所を予め見つけレンダリングの対象から外すクリッピング処理と、及び視点座標系から最終的に表示部３０に表示するときのスクリーン座標を求める透視変換処理と、が行われる（ステップ；Ｓ３０４）。
【００６６】
幾何学変換処理が終了すると、シェーディング部２４０によって、シェーディング処理が行われて、光沢表現を含めたオブジェクトの描かれるべき色が決定される（ステップ；Ｓ３０６）。決定された色情報は、公知のごとくピクセル毎に画像データは描画用のメモリ領域であるフレームメモリに格納される。
【００６７】
シェーディング処理を終えたならば、画像生成部２４から表示部３０に、フレームメモリに格納された画像データの信号が出力され、表示部３０のディスプレイにゲーム画面が表示される（ステップ；Ｓ３０８）。
【００６８】
次に、図５を参照して、図２に示した３次元仮想空間のオブジェクトの配置状態を例にシェーディング処理の流れを具体的に説明する。
【００６９】
図５は、本実施形態におけるシェ−ディング処理の流れを説明するためのフローチャートである。同図に示すように、先ず、シェーディング部２４０が、処理対象となる反射オブジェクトである敵戦闘機ＯＢ１を選択する（ステップ；Ｓ５０２）。
【００７０】
反射オブジェクト（敵戦闘機ＯＢ１）を選択したならば、シェーディング部２４０は、敵戦闘機ＯＢ１のオブジェクト・データ４２４の設定に基づいて、所定のシェーディング・アルゴリズム（例えば、フラット・シェーディングや、グローシェーディング、フォン・シェーディングなど）によって、敵戦闘機ＯＢ１の表面に濃淡をつける（ステップ；Ｓ５０４）。
【００７１】
次に、テクスチャマッピング部２４４が、敵戦闘機ＯＢ１のオブジェクト・データ４２４の設定に基づいて、テクスチャ・データ４２６から所定のテクスチャを読み出し、テクスチャマッピングする（ステップ；Ｓ５０６）。この段階で、現在処理中の反射オブジェクトである敵戦闘機ＯＢ１には、光沢表現を除く一応の色彩が施された状態にある。
【００７２】
次に、敵戦闘機ＯＢ１は、そのフレームにおける最初のオブジェクトにあたるので（ステップ；Ｓ５０８のＹＥＳ）、無条件でスペキュラマップ生成部２４２がスペキュラマップ情報４４４を作成する（ステップ；Ｓ５１４）。
【００７３】
そして、テクスチャマッピング部２４４が、敵戦闘機ＯＢ１にスペキュラマップ情報４４４を、例えば、加算合成によってテクスチャマッピングして、敵戦闘機ＯＢ１への光沢表現を実現する（ステップ；Ｓ５１６）。
【００７４】
敵戦闘機ＯＢ１への光沢表現が終了したならば、画像生成部２４は、敵戦闘機ＯＢ１の位置座標を近接判定情報４４２に記憶し（ステップ；Ｓ５１８）、まだ未処理の反射オブジェクトがある場合は、次の反射オブジェクトの処理に移る（ステップ；Ｓ５２０のＹＥＳ）。
【００７５】
次に、シェーディング部２４０は、処理対象の反射オブジェクトとして敵戦闘機ＯＢ２を選ぶ（ステップ；Ｓ５０２）。敵戦闘機ＯＢ２は、そのフレームにおける最初の処理対象の反射オブジェクトではないので、敵戦闘機ＯＢ１との近接条件の判定に移る（ステップ；Ｓ５０８のＮＯ）
【００７６】
シェーディング部２４０は、近接判定情報４４２から敵戦闘機ＯＢ１の位置座標（前回処理した反射オブジェクトの位置座標）を取得し、敵戦闘機ＯＢ２の位置座標（現在処理対象の反射オブジェクトの位置座標）との距離ｄｎを求める（ステップ；Ｓ５１０）。
【００７７】
距離ｄｎが求められたならば、シェーディング部２４０は、距離ｄｎを判定値Ｄｍｉｎと比較する。図２の例では、敵戦闘機ＯＢ１とＯＢ２とは近接して配置されており、距離ｄｎ＜判定値Ｄｍｉｎを満たす（ステップ；Ｓ５１２のＹＥＳ）。シェーディング部２４０は、敵戦闘機ＯＢ１と敵戦闘機ＯＢ２とが近接していると判断して、スペキュラマップ情報４４４をそのまま敵戦闘機ＯＢ２に適用する(ステップ；Ｓ５１６）。これによって、敵戦闘機ＯＢ２向けにスペキュラマップを生成する演算負荷を省略することができる。
【００７８】
次いで、シェーディング部２４０は、戦闘機ＯＢ２の位置座標を、近接判定情報４４２に記憶し、次回の判定に備える（ステップ；Ｓ５１８）。そして、まだ未処理の反射オブジェクトがある場合は、次の反射オブジェクトの処理に移る（ステップ；Ｓ５２０のＹＥＳ）
【００７９】
次に、シェーディング部２４０は、処理対象の反射オブジェクトとして敵戦闘機ＯＢ３を選ぶ（ステップ；Ｓ５０２）。敵戦闘機ＯＢ３は、そのフレームにおける最初の処理対象の反射オブジェクトではないので、敵戦闘機ＯＢ２との近接条件の判定に移る（ステップ；Ｓ５０８のＮＯ）
即ち、シェーディング部２４０は、近接判定情報４４２から敵戦闘機ＯＢ２の位置座標（前回処理した反射オブジェクトの位置座標）を取得し、敵戦闘機ＯＢ３の位置座標（現在処理対象の反射オブジェクトの位置座標）との距離ｄｎを求める（ステップ；Ｓ５１０）。
【００８０】
そして、シェーディング部２４０は、距離ｄｎを判定値Ｄｍｉｎと比較する。図２の例では、敵戦闘機ＯＢ２とＯＢ３とは離れて配置されており、距離ｄｎ＜判定値Ｄｍｉｎを満たさない（ステップ；Ｓ５１２のＮＯ）。従ってシェーディング部２４０は、敵戦闘機ＯＢ２と敵戦闘機ＯＢ３とが近接していないと判断して、スペキュラマップ生成部２４２がスペキュラマップを生成し、スペキュラマップ情報４４４は更新される(ステップ；Ｓ５１４）。そして、テクスチャマッピング部２４４が、更新されたスペキュラマップ情報４４４を敵戦闘機ＯＢ３に適用する(ステップ；Ｓ５１６）。
【００８１】
シェーディング部２４０は、戦闘機ＯＢ３の位置座標を、近接判定情報４４２に記憶し、次回の判定に備える（ステップ；Ｓ５１８）。以上で、図２における敵戦闘機ＯＢは全て処理されたので、シェーディング処理を終了する（ステップ；Ｓ５２０のＮＯ）。
【００８２】
シェーディング処理が終了したならば、図１３に示したように従来と同様にして表示部３０にゲーム画面が表示される。
【００８３】
［ハードウェアの構成］
次に、本実施形態を実現できるハードウェアの構成について説明する。
図６は、本実施形態のハードウェア構成の一例を示す図である。同図に示す装置ではＣＰＵ１０００、ＲＯＭ１００２、ＲＡＭ１００４、情報記憶媒体１００６、音生成ＩＣ１００８、画像生成ＩＣ１０１０、Ｉ／Ｃポート１０１２、１０１４が、システムバス１０１６により相互にデータの入出力可能に接続されている。
更に、音生成ＩＣ１００８には、スピーカ１０２０が接続され、画像生成ＩＣ１０１０には、表示装置１０１８が接続され、Ｉ／Ｃポート１０１２には、コントロール装置１０２２が接続され、Ｉ／Ｃポート１０１４には、通信装置１０２４が接続されている。
【００８４】
ＣＰＵ１０００は、ＲＯＭ１００２に格納されているシステムプログラム、情報記憶媒体１００６に格納されているプログラム、コントロール装置１０２２によって入力される操作入力信号等に従って、装置全体の制御や各種のデータ処理を行う。
【００８５】
ＲＡＭ１００４は、このＣＰＵ１０００の作業領域などとして用いられる記憶手段であり、情報記憶媒体１００６やＲＯＭ１００６の所与の内容、或いはＣＰＵ１０００の演算結果が格納される。
【００８６】
情報記憶媒体１００６は、プログラム、画像データ、音データなど予め設定されている情報や、ゲームの進行状況を記憶するプレイデータなどが主に格納されるものであり、図４におけるゲーム情報４２も格納される。業務用ゲーム装置１３００では、システム基板１３１０上に実装されたＲＯＭ等のＩＣメモリ１３１２やハードディスクが該当する。この場合、情報記憶媒体１００６は、ＲＯＭ１００２になる。
【００８７】
音生成ＩＣ１００８は、情報記憶媒体１００６やＲＯＭ１００２に記憶される情報に基づいて効果音やＢＧＭ等のゲーム音を生成する集積回路であり、生成されたゲーム音はスピーカ１０２０によって出力される。
【００８８】
また、画像生成ＩＣ１０１０は、ＲＡＭ１００４、ＲＯＭ１００２、情報記憶媒体１００６等から出力される画像情報にもとづいて表示装置１０１８にゲーム画面を出力するための画素情報を生成する集積回路である。
【００８９】
コントロール装置１０２２は、図１の操作レバー１３０６と操作ボタン１３０８等に相当するものであり、プレーヤが、ゲームの進行に応じて種々の操作を装置本体に入力するための装置である。
【００９０】
また、通信装置１０２４は、ゲーム装置内部で利用される各種の情報を外部とやり取りするものであり、他のゲーム装置と接続されてプログラムに応じて所与の情報を送受信し、通信回線を介してプログラム等のゲーム情報を送受信することなどに利用される。
【００９１】
図５で説明した処理は、当該処理を行うプログラムと、該プログラムを格納した情報記憶媒体１００６と、該プログラムに従って動作するＣＰＵ１０００、画像生成ＩＣ１０１０１、音生成ＩＣ１００８等によって実現される。尚、画像生成ＩＣ１０１０、音生成ＩＣ１００８等で行われる処理はＣＰＵ１０００、或いは汎用のＤＳＰなどのＬＳＩによってソフトウェア的に実行されても良い。
【００９２】
［変形例の説明]
尚、本発明は図１に示した業務用ゲーム装置だけでなく、家庭用ゲーム装置、多数のプレーヤが参加する大型アトラクション装置、マルチメディア端末、画像生成装置、ゲーム画像を生成するシステム基板等の種々の装置に適用できる。
【００９３】
例えば、図７は、本発明を家庭用のゲーム装置１２００に適用した場合の一例を示す図である。同図において、プレーヤは、ディスプレイ１２０１に映し出されたゲーム画面を見ながら、ゲームコントローラ１２０２、１２０４に備えられた十字キーやジョイレバー、各種のボタン等を操作してゲームを楽しむ。
この場合、ゲームプログラムや初期設定データ等のゲームを実行するために必要なゲーム情報は、本体装置１２１０に着脱自在な情報記憶媒体であるＣＤ−ＲＯＭ１２０６、ＩＣメモリ１２０８、メモリカード１２１２等に格納されている。
【００９４】
また、図８は、本実施形態を、ネットワークを介して接続された装置を含むゲーム装置に適用した場合の一例を示す図である。
図８（ａ）の構成では、ホスト装置１４００と、ホスト装置１４００と通信回線１４０２を介して接続される端末１４０４−１〜１４０４−ｎ（ｎは整数）とを含む。
この場合、ゲーム情報４２は、例えはホスト装置１４００が制御可能な磁気ディスク装置、磁気テープ装置、ＩＣメモリ等の情報記憶媒体１４０６に格納されている。端末１４０４−１〜１４０４−ｎが、スタンドアロンでゲーム画像、ゲーム音を再生できるものである場合には、ホスト装置１４００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラムなどが端末１４０４−１〜１４０４−ｎに配信される。一方、スタンドアロンで生成できない場合には、ホスト装置１４００がゲーム画像、ゲーム音を生成して端末１４０４−１〜１４０４−ｎに伝送することにより端末において出力することとなる。
【００９５】
図８（ｂ）の構成の場合、ホスト装置１４００に該当する装置は無く、端末１４０４−１〜１４０４−ｎが通信回線１４０２を介して接続され、本発明の各手段を端末１４０４−１〜１４０４−ｎ間で分散して実行する。同様に、本発明の各手段を実行するためのプログラムやデータを端末の情報記憶媒体に分散して格納するようにしても良い。
【００９６】
ネットワークに接続する端末は、上述した家庭用ゲーム装置であることは勿論のこと、パーソナルコンピュータ、業務用ゲーム装置、ＰＤＡなどの携帯端末などで有っても良い。そして、業務用ゲーム装置をネットワークに接続する場合には、業務用ゲーム装置の間で情報のやり取りが可能であるとともに、家庭用ゲーム装置との間でも情報のやり取りが可能な携帯型情報記憶装置（メモリカード、携帯型ゲーム装置）を使用可能な構成としても良い。
【００９７】
[第２の実施の形態]
次に、本発明の第２の実施形態について説明する。
第２の実施形態は、第１の実施形態と同様に業務用ゲーム装置１３００（図１参照）にてシューティングゲームを行う場合を例に説明するが、本実施形態では、敵戦闘機ＯＢの近接判定においてオブジェクト間の距離だけでなく、敵戦闘機ＯＢと光源オブジェクトＬの相対的な位置関係で判定する。また、敵戦闘機ＯＢの処理順番に関しても、より多数の敵戦闘機ＯＢが登場する場合に効率的な処理ができるようにグループ化する場合について説明する。
尚、第１の実施形態と同様の要素については同じ符号とし、説明を省略する。
【００９８】
[原理の説明]
先ず、図９と図１０を参照して、本実施形態における原理を説明する。
図９は、３次元仮想空間におけるオブジェクトの配置状態の一例を示す図であって、仮想空間のワールド座標Ｚ−Ｘ面を真上から見た概念図である。
【００９９】
同図に示すように、３次元仮想空間には、視点Ｃ、敵戦闘機ＯＢ１〜ＯＢ６と、味方戦闘機ＯＢ７とＯＢ８、光源オブジェクトＬ１とＬ２とが配置されている。特に、敵戦闘機ＯＢ１とＯＢ５、敵戦闘機ＯＢ２とＯＢ４とＯＢ６、味方戦闘機ＯＢ７とＯＢ８は、それぞれ近接して配置されている。
【０１００】
全体的に見ると幾つかの範囲に寄り集まって配置されているこれらの反射オブジェクトも、第１の実施形態に示すように、各オブジェクトの添付番号順にＯＢ１→ＯＢ２→ＯＢ３・・・→ＯＢ８とシェーディング処理を行うと、処理上は離れて配置されていると判断されてしまう。その為、図９の場合では、味方戦闘機ＯＢ７とＯＢ８の間でしかスペキュラマップの流用は実現されないことになる。
そこで、本実施形態では、シェーディング処理に先立って近接して配置された反射オブジェクトをグループＧ１〜Ｇ４にグループ化し、グループの添付番号順にシェーディングを行うことでスペキュラマップの流用度合を高める。
【０１０１】
そして、各グループ毎にシェーディング処理を実行するが、クループ内の反射オブジェクトに付いては、以下の近接判定方法によってスペキュラマップの流用可否を判断する。
【０１０２】
図１０は、本実施形態における近接判定方法の概念を説明する図である。同図に示すように、３次元仮想空間内に敵戦闘機ＯＢ１とＯＢ２、及び光源オブジェクトＬが配置されているとする。敵戦闘機ＯＢ１とＯＢ２では、光源オブジェクトＬによって光沢が表現されるべき面（向き）を白く表現している。
【０１０３】
図１０（ａ）の場合、光源オブジェクトＬは、敵戦闘機ＯＢ１と敵戦闘機ＯＢ２のどちらに対しても、ワールド座標Ｚ軸方向の前方に位置している。光沢は敵戦闘機ＯＢ１とＯＢ２ともに右側部の白色部分に光沢が表現され、現象としての矛盾は生じないので、スペキュラマップの流用が可能と判断する。
一方、図１０（ｂ）の場合、光源オブジェクトＬは、敵戦闘機ＯＢ１よりは後方だが敵戦闘機ＯＢ２よりは前方に位置している。このため、光沢は、敵戦闘機ＯＢ１の光沢は後部の白色部分に表現され、敵戦闘機ＯＢ２の光沢は左側部の白色部分に表現されるべきである。従って、敵戦闘機ＯＢ１とＯＢ２は近接して配置されているがスペキュラマップの流用は不可能と判断する。
【０１０４】
具体的には、敵戦闘機ＯＢ１とＯＢ２それぞれについて、代表点から光源オブジェクトＬへの単位ベクトルｎ１及びｎ２を求め、両ベクトルの内積で流用の可否を判断する。例えば、先の図１０（ａ)に示した配置条件ではベクトルの内積は正になり、図１０（ｂ）の配置条件では負になる。即ち、内積が正なら流用可、負なら流用不可と判定する。
【０１０５】
この様に、スペキュラマップの流用にあたって、敵戦闘機ＯＢと光源オブジェクトＬの相対的な位置関係から流用可否の判定を行うことによって、光源オブジェクトＬが敵戦闘機ＯＢ１とＯＢ２の間をすり抜ける条件であっても、より自然に見えるように光沢表現を実現できる。
【０１０６】
尚、以上の近接判定においては、全ての光源オブジェクトＬを判定に加える必要は無く、ゲーム演出の観点から適宜選択することによって、よりメリハリの有る効果的な画面を作り出すことができる。この際、判定対象とする光源オブジェクトＬの識別は、例えばオブジェクト・データ４２４に識別用のフラグを設け、或いは別途判定対処の光源オブジェクトＬの識別番号を格納して参照する、などの方法で実現できる。
【０１０７】
[機能ブロックの説明]
次に、本実施形態を実現するための機能ブロックを説明する。
図１１は、本発明における機能ブロックの一例を示すブロック図である。同図において、機能ブロックは、操作部１０、処理部２０、表示部３０、記憶部４０を備える。
【０１０８】
本実施形態では、特に、処理部２０の画像生成部２４に処理順設定部２４６を備え、また記憶部４０の一時記憶部４４にはグループ情報４４６が含まれる。
【０１０９】
処理順設定部２４６は、３次元仮想空間内に多数配置されているオブジェクト、即ち敵戦闘機ＯＢ１からＯＢ６、及び味方戦闘機ＯＢ７とＯＢ８を、シェーディングに先立って近接して配置されている反射オブジェクト同士をグループ化する。グループ化の方法としては、例えば、視点Ｃに向かって一つ前の反射オブジェクトからの距離を求め、該距離が所与の値以下である場合を同一のグループとみなすなど、適宜公知の技術によって実現して構わない。
【０１１０】
処理順設定部２４６によってグループ化された情報は、グループ情報４４６として記憶される。グループ情報４４６は、例えば、グループごとに用意され、そのグループに含まれる反射オブジェクトの番号を格納する。
【０１１１】
[処理フローの説明]
次に、図１２を参照して、図９に示した３次元仮想空間のオブジェクトの配置状態を元に処理の流れを詳細に説明する。
【０１１２】
図１２は、本実施形態における光沢表現の処理の流れを説明するためのフローチャートである。具体的には、シェーディング処理における一処理に位置付けられる。従って、第１の実施形態と同様に前段階として以下の処理が行われる。即ち、ゲーム演算部２２よる敵戦闘機ＯＢや視点Ｃ及び光源オブジェクトＬなどの３次元仮想空間における位置や姿勢の決定と情報の記憶。画像生成部２４による、幾何学変換処理である。（図１３参照）。
【０１１３】
以上の前段階処理が終わったならば、図１２に示すシェーディング処理に移行する。先ず、処理順設定部２４６は、３次元仮想空間内に多数配置されている敵戦闘機ＯＢ１からＯＢ６、及び味方戦闘機ＯＢ７とＯＢ８をシェーディングに先立って、近接して配置されている反射オブジェクト同士をグループ化し（ステップ；Ｓ７０２）、グループ情報４４６を作成する（ステップ；Ｓ７０４）。
【０１１４】
グループ化が行われたならば、シェーディング部２４０は、グループ情報４４６から処理対象のグループＧを選択する（ステップ；Ｓ７０６）。図９の例では、グループＧ１が選択される。シェーディング部２４０は、グループＧ１に含まれる敵戦闘機ＯＢ１とＯＢ５について順にシェーディングを行う。
【０１１５】
先ず、シェーディング部２４０は、処理対処のオブジェクトとして戦闘機ＯＢ１を選択し（ステップ；Ｓ７０８）、該当するオブジェクト・データ４２４の設定に基づいて、所定のシェーディング・アルゴリズム（例えば、フラット・シェーディングや、グローシェーディング、フォン・シェーディングなど）によって、敵戦闘機ＯＢ１の表面に濃淡をつける（ステップ；Ｓ７１０）。
【０１１６】
次いで、テクスチャマッピング部２４４が、テクスチャ・データ４２６から所定のテクスチャを読み出し、敵戦闘機ＯＢ１にマッピングする（ステップ；Ｓ７１２）。
【０１１７】
オブジェクトの濃淡の決定とテクスチャマッピングがされたならば、光沢の表現に移る。敵戦闘機ＯＢ１はグループＧ１における最初の反射オブジェクトに当るので（ステップ；Ｓ７１４のＹＥＳ）、無条件でスペキュラマップ生成部２４２がスペキュラマップ情報４４４を生成する（ステップ；Ｓ７２２）。
【０１１８】
そして、テクスチャマッピング部２４４が、敵戦闘機ＯＢ１にスペキュラマップ情報４４４を、例えば、加算合成でテクスチャマッピングして、敵戦闘機ＯＢ１への光沢表現を実現する（ステップ；Ｓ７２４）。
【０１１９】
敵戦闘機ＯＢ１への光沢表現が終了したならば、シェーディング部２４０は、敵戦闘機ＯＢ１の位置座標を近接判定情報４４２に記憶し（ステップ；Ｓ７２６）、まだ未処理の反射オブジェクトがある場合は、次の反射オブジェクトの処理に移る（ステップ；Ｓ７２８のＹＥＳ）。
【０１２０】
次に、グループ情報４４６に基づいて、シェーディング部２４０は、処理対象の反射オブジェクトとして敵戦闘機ＯＢ５を選択する（ステップ；Ｓ７０６）。そして、前述と同様にして敵戦闘機ＯＢ５にシェーディングとテクスチャマッピングが実行される（ステップ；Ｓ７１０→Ｓ７１２）。
【０１２１】
次に、光沢表現を施すにあたって、シェーディング部２４０は、敵戦闘機ＯＢ５はグループＧ１における最初の処理対象の反射オブジェクトではないので、敵戦闘機ＯＢ１との近接条件の判定を行う（ステップ；Ｓ７１４）。
【０１２２】
先ず、シェーディング部２４０は、敵戦闘機ＯＢ１の代表点から光源オブジェクトＬへの単位ベクトルｎ１を求め（ステップ；Ｓ７１６）、敵戦闘機ＯＢ５の代表点から光源オブジェクトＬへの単位ベクトルｎ２を求める（ステップ；Ｓ７１８）。
【０１２３】
次いで、シェーディング部２４０は、単位ベクトルｎ１とｎ２の内積を求める（ステップ；Ｓ７２０）。
内積が正の場合は（ステップ；Ｓ７２０のＹＥＳ）、図１０（ａ）に示した状態と同様の相対位置関係に相当し、スペキュラマップの流用が可能であると判断され、テクスチャマッピング部２４４が、スペキュラマップ情報４４４をそのまま敵戦闘機ＯＢ５に適用する(ステップ；Ｓ７２４）。
内積が負の場合は（ステップ；Ｓ７２０のＮＯ）、図１０（ｂ）に示した状態と同様の相対位置関係に相当し、スペキュラマップの流用は不可であると判断される。従って、スペキュラマップ生成部２４２が、敵戦闘機ＯＢ５向けに新たにスペキュラマップ情報４４４を生成し（ステップ；Ｓ７２２）、テクスチャマッピング部２４４が、新しいスペキュラマップ情報４４４を敵戦闘機ＯＢ５に適用する(ステップ；Ｓ７２４）。
【０１２４】
スペキュラマップが適用されて光沢が表現されたならば、シェーディング部２４０は、戦闘機ＯＢ５の位置座標を、近接判定情報４４２に記憶し、次回の判定に備える（ステップ；Ｓ７２６）。
図９の例では、グループＧ１は、それ以上の反射オブジェクトが含まれていないので、シェーディング部２４０は、処理対象となる次のグループを選択する（ステップ；Ｓ７２８のＮＯ→Ｓ７３０のＹＥＳ）。
【０１２５】
全てのグループＧに対して処理を終えたらば、シェーディング処理を終了し（ステップ；Ｓ７３０のＮＯ）、従来と同様にして表示部３０にゲーム画面を表示する。
【０１２６】
以上のように、処理順番のグループ化を行うことによって、反射オブジェクトの添付番号順に従ったＯＢ１→ＯＢ２…→ＯＢ８の処理では１回（敵戦闘機ＯＢ７とＯＢ８の間）だけであったスペキュラマップの流用を４回（敵戦闘機ＯＢ１とＯＢ５、ＯＢ２とＯＢ４、ＯＢ４とＯＢ６、ＯＢ７とＯＢ８）に高めることができる。また、敵戦闘機ＯＢと光源オブジェクトＬの相対位置に基づくスペキュラマップの流用可否判断をすることによって、無理の無い流用でより自然な光沢表現を実現することができる。
【０１２７】
第２の実施形態を実現するハードウェアの構成は、第１の実施形態と同様であるので説明は省略する。
【０１２８】
以上、本発明を実現する第１及び第２の実施形態について説明したが、本発明の適用がこれらに限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて適宜変更可能である。
【０１２９】
例えば、両実施形態では、シューティングゲームを例としたが、３ＤＣＧを用いてゲーム画面を構成するゲームであれば、例えば、レースゲーム、アクションゲーム、ＲＰＧゲーム、パズルゲームなど他の分野のゲームでも適用可能である。またその対象となるオブジェクトも、ポリゴンによって形成されるのであれば、例えば、戦闘機やレーシングカーなどの乗り物、ロボット、人物、生物、背景、建築物、メニュー画面、文字、マークなど他の種類であっても構わない。
【０１３０】
また、スペキュラマップの流用可否の判定は、装置の処理能力とゲーム内容に応じて、演算負荷とゲームのバランスを考慮して適宜設定されるべきである。
【０１３１】
ゲーム内容に応じてスペキュラマップの流用を使い分けるならば、例えば、反射オブジェクトが少ない場合は流用をしないとしても良い。
具体的には、例えば、宇宙戦闘機によるシューティングゲームの場合、自機が敵戦艦の狭い通路構造状の内部に突入したシチュエーションでは、狭い通路をいかに抜けるかその操縦テクニックがポイントであって、反射オブジェクトである敵戦闘機ＯＢが少ない場合が多い。従って、こうした場合、敵艦内部では演算負荷が軽いのでスペキュラマップの流用判定せず、敵戦艦内部を突破して宇宙空間に出たならば、再びスペキュラマップを流用判定をするとしても良い。
【０１３２】
また、光源の数によって流用判定の適用を設定するとしても良く、例えば、レーシングゲームでトンネル内を走行する場面では、多数のトンネル灯火が映り込んで演算負荷が増加するのでスペキュラマップの流用判定をし、一方トンネル外では、映り込む対象が少ないのでスペキュラマップの流用判定をしないとしても良い。
【０１３３】
また更に、スペキュラマップの流用可否の判定の方法に関しても、例えば、第２の実施形態では、上述のごとくグループ化とベクトルの内積関係から求めたが、これに内積関係に基づく判定の前段階として、第１の実施形態において示したオブジェクト間の距離による判定を適宜含めるとしても構わない。或いは、第１の実施形態において、適戦闘機ＯＢと視点Ｃの距離ｄｃ（図２参照）を求め、例えば、該距離ｄｃに応じて判定値Ｄｍｉｎを増加させるように変化させて判定に使用することで、より流用の度合いを高めるとしても良い。
【図面の簡単な説明】
【図１】第１の実施形態における業務用ゲーム装置の外観の一例を示す図。
【図２】第１の実施形態における原理を説明する図。
【図３】環境マッピングを利用したスペキュラマップの求め方を説明する図。
【図４】第１の実施形態における機能ブロック図。
【図５】第１の実施形態におけるシェーディング処理の流れを説明するためのフローチャート。
【図６】第１の実施形態を実現するハードウェアの構成の一例を示す図。
【図７】第１の実施形態を家庭用ゲーム装置に適用した場合の外観の一例を示す図。
【図８】第１の実施形態をネットワークを介して接続された装置を含むゲーム装置に適用した場合の一例を示す図。
【図９】第２の実施形態におけるグループ化の概念を説明する図。
【図１０】第２の実施形態におけるスペキュラマップ流用可否判定の原理を説明する図。
【図１１】第２の実施形態における機能ブロック図。
【図１２】第２の実施形態におけるシェーディング処理の流れを説明するためのフローチャート。
【図１３】一般的なシェーディング処理の流れを説明するためのフローチャート。
【符号の説明】
２０  処理部
２２  ゲーム演算部
２４  画像生成部
２４０  シェーディング部
２４２  スペキュラマップ生成部
２４４  テクスチャマッピング部
２４６  処理順設定部
４０  記憶部
４２  ゲーム情報
４２２  シェーディングプログラム
４２４  オブジェクト・データ
４２６  テクスチャ・データ
４４  一時記憶部
４４２  近接判定情報
４４４  スペキュラマップ情報
４４６  グループ情報
Ｃ  視点
Ｄｍｉｎ  判定値
ｄｎ  距離
Ｇ  グループ
Ｌ  光源オブジェクト
ＯＢ  敵戦闘機
Ｐ  代表点
ＳＭ  スペキュラマップ
【図１】
0004856335.tif 000002
【図２】
0004856335.tif 000003
【図３】
0004856335.tif 000004
【図４】
0004856335.tif 000005
【図５】
0004856335.tif 000006
【図６】
0004856335.tif 000007
【図７】
0004856335.tif 000008
【図８】
0004856335.tif 000009
【図９】
0004856335.tif 000010
【図１０】
0004856335.tif 000011
【図１１】
0004856335.tif 000012
【図１２】
0004856335.tif 000013
【図１３】
0004856335.tif 000014