(57)【特許請求の範囲】
【請求項１】
画像生成を行う画像生成システムであって、
第１、第２のオブジェクトを含む複数のオブジェクトをオブジェクト空間に配置設定するオブジェクト空間設定手段と、
オブジェクト空間内の視点から見て第１のオブジェクトが第２のオブジェクトの奥側にあるか否かを判断する処理を行う第１の判断手段と、
前記視点に基づき第１のオブジェクトを２次元のスクリーンに透視変換した第１の透視変換画像と、前記視点に基づき第２のオブジェクトを当該スクリーンに透視変換した第２の透視変換画像とが重なったか否かを判断する処理を行う第２の判断手段と、
前記視点から見て第１のオブジェクトが第２のオブジェクトの奥側にあると判断され、且つ、前記第１の透視変換画像と前記第２の透視変換画像とが重なったと判断された場合に、第２のオブジェクトを透過して第１のオブジェクトが前記視点から見えるようにするための第２のオブジェクトの透過処理を行う手段と、
前記視点での画像を生成する手段とを含むことを特徴とする画像生成システム。
【請求項２】
請求項１において、
前記第１の判断手段が、
視点座標系における奥行き方向の座標をＺ座標とした場合に、前記視点から見て第１のオブジェクトが第２のオブジェクトの奥側にあるか否かを、第１、第２のオブジェクトのＺ座標に基づいて判断することを特徴とする画像生成システム。
【請求項３】
請求項１又は２において、
前記透過処理を行う手段が、
スクリーン座標系における水平方向の座標をＸ座標とした場合に、スクリーン座標系における第１、第２のオブジェクトのＸ座標に基づいて、第２のオブジェクトの透過処理を行うことを特徴とする画像生成システム。
【請求項４】
請求項３において、
前記透過処理を行う手段が、
第１のオブジェクトの代表点のＸ座標と、第２のオブジェクトの代表点のＸ座標と、第２のオブジェクトのＸ座標方向の大きさを表すためのパラメータとに基づいてα値を求め、求められたα値に基づいて第２のオブジェクトの半透明処理を行うことを特徴とする画像生成システム。
【請求項５】
画像生成を行う画像生成システムであって、
第１、第２のオブジェクトを含む複数のオブジェクトをオブジェクト空間に配置設定するオブジェクト空間設定手段と、
オブジェクト空間内の視点から見て第１のオブジェクトが第２のオブジェクトの奥側にあるか否かを判断する処理を行う判断手段と、
前記視点から見て第１のオブジェクトが第２のオブジェクトの奥側にあると判断された場合に、第２のオブジェクトを透過して第１のオブジェクトが前記視点から見えるようにするための第２のオブジェクトの透過処理を行う手段と、
前記視点での画像を生成する手段とを含み、
前記判断手段が、
前記視点から見て第１のオブジェクトが第２のオブジェクトの奥側にあるか否かを、第１のオブジェクトの代表点と第２のオブジェクトの代表点とを結ぶ方向のベクトルと、第２のオブジェクトの面の方向を表す法線ベクトルとに基づいて判断することを特徴とする画像生成システム。
【請求項６】
請求項５において、
前記透過処理を行う手段が、
スクリーン座標系における水平方向の座標をＸ座標とした場合に、第１のオブジェクトの代表点のＸ座標と、第２のオブジェクトの左端点、右端点、代表点のＸ座標とに基づいてα値を求め、求められたα値に基づいて第２のオブジェクトの半透明処理を行うことを特徴とする画像生成システム。
【請求項７】
画像生成を行う画像生成システムであって、
第１、第２のオブジェクトを含む複数のオブジェクトをオブジェクト空間に配置設定するオブジェクト空間設定手段と、
オブジェクト空間内の視点に基づき第１のオブジェクトを２次元のスクリーンに透視変換した第１の透視変換画像と、前記視点に基づき第２のオブジェクトを当該スクリーンに透視変換した第２の透視変換画像とが重なったか否かを判断する処理を行う判断手段と、
前記第１の透視変換画像と前記第２の透視変換画像とが重なったと判断された場合に、第２のオブジェクトを透過して第１のオブジェクトが前記視点から見えるようにするための第２のオブジェクトの透過処理を行う手段と、
前記視点での画像を生成する手段とを含むことを特徴とする画像生成システム。
【請求項８】
請求項１〜７のいずれかにおいて、
前記オブジェクト空間設定手段が、
第２のオブジェクトが透過状態になった場合にも非透過状態のままとなる、第２のオブジェクトの位置確認用の第３のオブジェクトを、オブジェクト空間に配置設定することを特徴とする画像生成システム。
【請求項９】
請求項８において、
前記第３のオブジェクトが、前記第２のオブジェクトと地形面との間に配置設定されることを特徴とする画像生成システム。
【請求項１０】
画像生成を行うプログラムであって、
第１、第２のオブジェクトを含む複数のオブジェクトをオブジェクト空間に配置設定するオブジェクト空間設定手段と、
オブジェクト空間内の視点から見て第１のオブジェクトが第２のオブジェクトの奥側にあるか否かを判断する処理を行う第１の判断手段と、
前記視点に基づき第１のオブジェクトを２次元のスクリーンに透視変換した第１の透視変換画像と、前記視点に基づき第２のオブジェクトを当該スクリーンに透視変換した第２の透視変換画像とが重なったか否かを判断する処理を行う第２の判断手段と、
前記視点から見て第１のオブジェクトが第２のオブジェクトの奥側にあると判断され、且つ、前記第１の透視変換画像と前記第２の透視変換画像とが重なったと判断された場合に、第２のオブジェクトを透過して第１のオブジェクトが前記視点から見えるようにするための第２のオブジェクトの透過処理を行う手段と、
前記視点での画像を生成する手段として、
コンピュータを機能させることを特徴とするプログラム。
【請求項１１】
画像生成を行うプログラムであって、
第１、第２のオブジェクトを含む複数のオブジェクトをオブジェクト空間に配置設定するオブジェクト空間設定手段と、
オブジェクト空間内の視点から見て第１のオブジェクトが第２のオブジェクトの奥側にあるか否かを判断する処理を行う判断手段と、
前記視点から見て第１のオブジェクトが第２のオブジェクトの奥側にあると判断された場合に、第２のオブジェクトを透過して第１のオブジェクトが前記視点から見えるようにするための第２のオブジェクトの透過処理を行う手段と、
前記視点での画像を生成する手段として、コンピュータを機能させ、
前記判断手段が、
前記視点から見て第１のオブジェクトが第２のオブジェクトの奥側にあるか否かを、第１のオブジェクトの代表点と第２のオブジェクトの代表点とを結ぶ方向のベクトルと、第２のオブジェクトの面の方向を表す法線ベクトルとに基づいて判断することを特徴とするプログラム。
【請求項１２】
画像生成を行うプログラムであって、
第１、第２のオブジェクトを含む複数のオブジェクトをオブジェクト空間に配置設定するオブジェクト空間設定手段と、
オブジェクト空間内の視点に基づき第１のオブジェクトを２次元のスクリーンに透視変換した第１の透視変換画像と、前記視点に基づき第２のオブジェクトを当該スクリーンに透視変換した第２の透視変換画像とが重なったか否かを判断する処理を行う判断手段と、
前記第１の透視変換画像と前記第２の透視変換画像とが重なったと判断された場合に、第２のオブジェクトを透過して第１のオブジェクトが前記視点から見えるようにするための第２のオブジェクトの透過処理を行う手段と、
前記視点での画像を生成する手段として、コンピュータを機能させることを特徴とするプログラム。
【請求項１３】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１０〜１２のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な３次元空間であるオブジェクト空間内において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。格闘ゲームを楽しむことができる画像生成システムを例にとれば、プレーヤは、ゲームコントローラ（操作手段）を用いて自キャラクタ（オブジェクト）を操作し、相手プレーヤやコンピュータが操作する敵キャラクタと対戦することで３次元ゲームを楽しむ。
【０００３】
さて、このような３次元ゲームでは、プレーヤの視点とキャラクタとの間に障害物となるオブジェクトが入り込むと、プレーヤの視界がその障害物オブジェクトによりふさがれてしまい、キャラクタの周辺がプレーヤから見えなくなってしまうという問題がある。
【０００４】
このような問題を解決する従来技術として、例えば特開平９−５０５４１号公報に開示される技術が知られている。この従来技術では、障害物オブジェクトの形状データとキャラクタの位置データとに基づいて、視点から見て障害物オブジェクトとキャラクタが重なっているか否かを判定し、重なっていると判定した場合には、障害物オブジェクトを透過表示にすることで、上記問題を解決している。
【０００５】
しかしながら、この従来技術では、障害物オブジェクトとキャラクタの重なり判定に、障害物オブジェクトの形状データや、視点及びキャラクタの位置データを用いた複雑な処理が必要になる。従って、処理負荷及び処理時間が過大になるという問題があった。
【０００６】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、他のオブジェクトが視点障害物となって、注視すべきオブジェクトが見えなくなる事態を、少ない処理負荷で解決できる画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【０００７】
【課題を解決するための手段】
上記課題を解決するために、本発明は、画像生成を行う画像生成システムであって、第１、第２のオブジェクトを含む複数のオブジェクトをオブジェクト空間に配置設定するオブジェクト空間設定手段と、視点から見て第１のオブジェクトが第２のオブジェクトの奥側にあると判断され、且つ、第１のオブジェクトのスクリーンへの透視変換画像が、第２のオブジェクトのスクリーンへの透視変換画像に重なった場合に、第２のオブジェクトを透過して第１のオブジェクトが視点から見えるようにするための第２のオブジェクトの透過処理を行う手段と、オブジェクト空間内の所与の視点での画像を生成する手段とを含むことを特徴とする。また本発明に係るプログラムは、上記手段としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータ読み取り可能な情報記憶媒体であって、上記手段としてコンピュータを機能させるためのプログラムを記憶（記録）したことを特徴とする。
【０００８】
本発明によれば、視点から見て第１のオブジェクトが第２のオブジェクトの奥側にあると判断され、第１のオブジェクトの透視変換画像が第２のオブジェクトの透視変換画像に重なった場合に、第２のオブジェクトを透過して第１のオブジェクトが視点から見えるようになる。
【０００９】
従って、本発明によれば、第２のオブジェクトが視点障害物となって第１のオブジェクトが見えなく事態を解決できる。また、視点から見て第１のオブジェクトが第２のオブジェクトの奥側にあるか否かの判断と、第１、第２のオブジェクトの透視変換画像の重なりの判断だけで、上記のような事態を解決できるため、処理負荷の軽減化を図れる。
【００１０】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、視点座標系又はスクリーン座標系における奥行き方向の座標をＺ座標とした場合に、視点から見て第１のオブジェクトが第２のオブジェクトの奥側にあるか否かを、第１、第２のオブジェクトのＺ座標に基づいて判断することを特徴とする。
【００１１】
このようにすれば、第１、第２のオブジェクトのＺ座標（例えば代表点のＺ座標）を用いた処理（例えば比較処理）だけで、第１のオブジェクトが第２のオブジェクトの奥側にあるか否かを判断できるようになり、処理負荷の軽減化を図れる。
【００１２】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、スクリーン座標系における水平方向の座標をＸ座標とした場合に、スクリーン座標系における第１、第２のオブジェクトのＸ座標に基づいて、第２のオブジェクトの透過処理を行うことを特徴とする。
【００１３】
このようにすれば、第１、第２のオブジェクトのＸ座標（例えば代表点のＸ座標）を用いた処理（例えば線形演算処理）だけで、第２のオブジェクトの透過処理を実現できるようになり、処理負荷の軽減化を図れる。
【００１４】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、前記透過処理がα値に基づく半透明処理であり、第１のオブジェクトの代表点のＸ座標と、第２のオブジェクトの代表点のＸ座標と、第２のオブジェクトのＸ座標方向の大きさを表すためのパラメータとに基づいてα値を求め、求められたα値に基づいて第２のオブジェクトの半透明処理を行うことを特徴とする。
【００１５】
このようにすれば、第１、第２のオブジェクトの代表点のＸ座標とパラメータとにより、半透明処理のためのα値を直接求め、半透明処理を行うことが可能になる。
【００１６】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、視点から見て第１のオブジェクトが第２のオブジェクトの奥側にあるか否かを、第１のオブジェクトの代表点と第２のオブジェクトの代表点とを結ぶ方向のベクトルと、第２のオブジェクトの面の方向を表す法線ベクトルとに基づいて判断することを特徴とする。
【００１７】
このようにすれば、第１、第２のオブジェクトの代表点を結ぶ方向のベクトルと第２のオブジェクトの面の法線ベクトルを用いた処理（例えば内積処理）だけで、第１のオブジェクトが第２のオブジェクトの奥側にあるか否かを判断できるようになり、処理負荷の軽減化を図れる。
【００１８】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、前記透過処理がα値に基づく半透明処理であり、スクリーン座標系における水平方向の座標をＸ座標とした場合に、第１のオブジェクトの代表点のＸ座標と、第２のオブジェクトの左端点、右端点、代表点のＸ座標とに基づいてα値を求め、求められたα値に基づいて第２のオブジェクトの半透明処理を行うことを特徴とする。
【００１９】
このようにすれば、第１のオブジェクトの代表点のＸ座標と、第２のオブジェクトの左端点、右端点、代表点のＸ座標とにより、半透明処理のためのα値を直接求め、半透明処理を行うことが可能になる。
【００２０】
また本発明は、画像生成を行う画像生成システムであって、第１、第２のオブジェクトを含む複数のオブジェクトをオブジェクト空間に配置設定するオブジェクト空間設定手段と、スクリーン座標系における水平方向の座標をＸ座標とした場合に、スクリーン座標系における第１、第２のオブジェクトのＸ座標に基づいて、第２のオブジェクトを透過して第１のオブジェクトが視点から見えるようにするための第２のオブジェクトの透過処理を行う手段と、オブジェクト空間内の所与の視点での画像を生成する手段とを含むことを特徴とする。また本発明に係るプログラムは、上記手段としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータ読み取り可能な情報記憶媒体であって、上記手段としてコンピュータを機能させるためのプログラムを記憶（記録）したことを特徴とする。
【００２１】
本発明によれば、第１、第２のオブジェクトのＸ座標（例えば代表点のＸ座標）を用いた処理（例えば線形演算処理）だけで、第２のオブジェクトの透過処理を実現できるようになり、処理負荷の軽減化を図れる。
【００２２】
なお、視点から見て第１のオブジェクトが第２のオブジェクトの奥側にあると判断されたことを条件に、第２のオブジェクトの透過処理を行うことが望ましい。
【００２３】
また本発明は、画像生成を行う画像生成システムであって、第１、第２のオブジェクトを含む複数のオブジェクトをオブジェクト空間に配置設定するオブジェクト空間設定手段と、第２のオブジェクトを透過して第１のオブジェクトが視点から見えるようにするための第２のオブジェクトの透過処理を行う手段と、オブジェクト空間内の所与の視点での画像を生成する手段とを含み、前記オブジェクト空間設定手段が、第２のオブジェクトが透過状態になった場合にも非透過状態のままとなる、第２のオブジェクトの位置確認用の第３のオブジェクトを、オブジェクト空間に配置設定することを特徴とする。また本発明に係るプログラムは、上記手段としてコンピュータを機能させることを特徴とする。また本発明に係る情報記憶媒体は、コンピュータ読み取り可能な情報記憶媒体であって、上記手段としてコンピュータを機能させるためのプログラムを記憶（記録）したことを特徴とする。
【００２４】
本発明によれば、透過処理により第２のオブジェクトが透過状態（例えば透明、半透明）になっている場合にも、第３のオブジェクトは非透過状態（例えば不透明）になる。従って、プレーヤ（操作者）は、この非透過状態の第３のオブジェクトを見ることで、第２のオブジェクトの位置（或いは形状）を確認できるようになり、好適な操作環境をプレーヤに提供できる。
【００２５】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、前記第３のオブジェクトが、前記第２のオブジェクトと地形面との間に配置設定されることを特徴とする。
【００２６】
このようにすれば、透過状態になった第２のオブジェクトの地形面上での位置を、効果的にプレーヤ（操作者）に知らせることが可能になる。
【００２７】
【発明の実施の形態】
以下、本実施形態について図面を用いて説明する。
【００２８】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を何ら限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２９】
１．構成
図１に、本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１７０を含めばよく）、それ以外のブロックについては任意の構成要素とすることができる。
【００３０】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、マイク、センサー或いは筺体などのハードウェアにより実現できる。
【００３１】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００３２】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１８０には、本発明（本実施形態）の各手段（特に処理部１００に含まれるブロック）としてコンピュータを機能させるためのプログラム（各手段をコンピュータに実現させるためのプログラム）が記憶（記録、格納）される。
【００３３】
なお、情報記憶媒体１８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１７０に転送されることになる。また情報記憶媒体１８０には、本発明の処理を行うためのプログラム、画像データ、音データ、表示物の形状データなどを含ませることができる。
【００３４】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００３５】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００３６】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００３７】
通信部１９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３８】
なお本発明（本実施形態）の各手段としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００３９】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この場合、処理部１００は、記憶部１７０内の主記憶部１７２をワーク領域として使用して、各種の処理を行う。
【００４０】
ここで、処理部１００が行う処理としては、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ）の位置や回転角度（Ｘ、Ｙ又はＺ軸回り回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバー処理などを考えることができる。
【００４１】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、透過処理部１１４、画像生成部１２０、音生成部１３０を含む。なお、処理部１００は、これらの全ての機能ブロックを含む必要はない。
【００４２】
ここで、オブジェクト空間設定部１１０は、キャラクタ、車、柱、壁、建物、マップ（地形）などの各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間内に設定配置するための処理を行う。より具体的には、ワールド座標系でのオブジェクトの位置や回転角度（方向）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転）でオブジェクトを配置する。
【００４３】
そして本実施形態では、オブジェクト空間設定部１１０が、キャラクタ、車などを表す第１のオブジェクト（移動オブジェクト）と、柱、壁、建物などを表す第２のオブジェクト（障害物オブジェクト）をオブジェクト空間に配置設定する。更に、第２のオブジェクトの位置確認用の第３のオブジェクト（第２のオブジェクトが透過状態になった場合にも透過状態にならないオブジェクト）をオブジェクト空間に配置設定する。より具体的には、この第３のオブジェクトは、第２のオブジェクトと地形面（人工的な地形の面を含む）との間に配置設定される。
【００４４】
移動・動作処理部１１２は、キャラクタ、車などのオブジェクト（移動オブジェクト）の移動情報（位置、回転角度）や動作情報（オブジェクトの各パーツの位置、回転角度）を求める処理を行うものであり、例えば、操作部１６０によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、オブジェクトを移動させたり動作（モーション、アニメーション）させたりする処理を行う。
【００４５】
より具体的には、移動・動作処理部１１２は、オブジェクトの位置や回転角度を例えば１フレーム（１／６０秒、１／３０秒等）毎に変化させる。例えば（ｋ−１）フレームでのオブジェクトの位置、回転角度をＰk-1、θk-1とし、オブジェクトの１フレームでの位置変化量（速度）、回転変化量（回転速度）を△Ｐ、△θとする。するとｋフレームでのオブジェクトの位置Ｐk、回転角度θkは例えば下式（１）、（２）のように求められる。
【００４６】
Ｐk＝Ｐk-1＋△Ｐ              （１）
θk＝θk-1＋△θ              （２）
透過処理部１１４は、第２のオブジェクト（柱、壁、建物等）を透過して第１のオブジェクト（キャラクタ、車等）が見えるようにするための、第２のオブジェクトの透過処理（半透明処理、透明処理又はメッシュ処理等）を行うものである。
【００４７】
より具体的には透過処理部１１４は、まず、視点（仮想カメラ）から見て第１のオブジェクトが第２のオブジェクトの奥側にあるか否かを判断する。これは、例えば、第１、第２のオブジェクトの代表点（オブジェクトの位置等を代表的に表す点）のＺ座標（視点座標系又はスクリーン座標系における奥行き方向の座標）に基づいて判断できる。或いは、第１、第２のオブジェクトの代表点を結ぶ方向のベクトルと、第２のオブジェクトを構成する面の方向を表すための法線ベクトルとに基づいて判断してもよい。
【００４８】
そして透過処理部１１４は、第１のオブジェクトのスクリーン（透視変換面）への透視変換画像が、第２のオブジェクトのスクリーンへの透視変換画像に重なった場合には、第２のオブジェクトを透過して第１のオブジェクトが視点から見えるように、第２のオブジェクトを透過表示（透明表示、半透明表示又はメッシュ表示等）状態に設定する。即ち、第１、第２のオブジェクトのスクリーン座標系でのＸ座標（スクリーン座標系における水平方向の座標）に基づいて、第２のオブジェクトの透過処理を行う。なお、第２のオブジェクトの半透明状態の設定は、第２のオブジェクトの頂点（構成点）に与えるα値（各ピクセル、テクセル、ドットに関連づけて記憶できる情報であり、色情報以外のプラスアルファの情報）の制御により実現できる。
【００４９】
画像生成部１２０は、処理部１００で行われる種々の処理の結果に基づいて画像処理を行い、ゲーム画像を生成し、表示部１９０に出力する。例えば、いわゆる３次元のゲーム画像を生成する場合には、まず、座標変換、クリッピング処理、透視変換、或いは光源計算等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点（構成点）に付与される位置座標、テクスチャ座標、色（輝度）データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、ジオメトリ処理後のオブジェクト（１又は複数プリミティブ面）の画像が、描画バッファ１７４（フレームバッファ、ワークバッファ等のピクセル単位で画像情報を記憶できるバッファ）に描画される。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成されるようになる。
【００５０】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００５１】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００５２】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて生成してもよい。
【００５３】
２．本実施形態の特徴
次に本実施形態の特徴について図面を用いて説明する。なお、以下では、格闘ゲームに本実施形態を適用した場合を主に例にとり説明するが、本実施形態は、格闘ゲーム以外の他のゲームにも広く適用できる。
【００５４】
２．１  障害物オブジェクトの透過表示
さて、本実施形態では、以下のような手法により、障害物となるオブジェクトの透過表示を実現している。
【００５５】
まず、本実施形態では図２（Ａ）、（Ｂ）に示すように、視点ＶＰ（仮想カメラ）から見て、オブジェクトＯＢ１（キャラクタ等の移動オブジェクト）がオブジェクトＯＢ２（柱、壁、建物等の障害物オブジェクト）の奥側にあるか否かを判断する。例えば、図２（Ａ）では、視点ＶＰから見てオブジェクトＯＢ１はＯＢ２の手前側にあると判断され、図２（Ｂ）では、視点ＶＰから見てＯＢ１はＯＢ２の奥側にあると判断される。
【００５６】
そして、図２（Ｂ）のように視点ＶＰから見てオブジェクトＯＢ１がＯＢ２の奥側にあると判断された場合には、次のような処理を行う。
【００５７】
即ち図２（Ｃ）、（Ｄ）に示すように、オブジェクトＯＢ１のスクリーンＳＣ（透視変換面）への透視変換画像ＰＭ１が、オブジェクトＯＢ２のスクリーンへの透視変換画像ＰＭ２に重なったか否かを判断する。
【００５８】
そして、図２（Ｃ）に示すように、透視変換画像ＰＭ１がＰＭ２に重なっていない場合には、オブジェクトＯＢ２の透過処理（半透明処理、透明処理又はメッシュ処理等）は行わない。
【００５９】
一方、図２（Ｄ）に示すように、透視変換画像ＰＭ１がＰＭ２に重なっている場合には、オブジェクトＯＢ２の透過処理を行い、ＯＢ２を透過（半透明、透明又はメッシュ等）状態に設定する。
【００６０】
以上のようにすれば、図２（Ａ）のように、オブジェクトＯＢ１がＯＢ２の手前側にある場合にＯＢ１が透過状態になってしまう事態を防止できる。そして、図２（Ｂ）のようにオブジェクトＯＢ１がＯＢ２の奥側にあり、且つ、図２（Ｄ）のように視点ＶＰから見てオブジェクトＯＢ１がＯＢ２に隠れている時にだけ、ＯＢ２を透過状態にできる。これにより、プレーヤは、ＯＢ２を透過してＯＢ１を見ることが可能になり、スムーズなゲーム進行を実現できる。
【００６１】
しかも、図２（Ａ）、（Ｂ）に示すような、オブジェクトＯＢ１がＯＢ２の奥側にあるか否かの判定や、図２（Ｃ）、（Ｄ）に示すような、透視変換画像ＰＭ１、ＰＭ２の重なり判定は、その処理負荷が非常に軽い。従って、オブジェクトＯＢ２が視点障害物となってオブジェクトＯＢ１が見えなくなる事態を、特開平９−５０５４１の従来技術よりも少ない処理負荷で解決できる。
【００６２】
２．２  第１の処理例
次に、図２（Ａ）〜（Ｄ）の手法を実現する第１の処理例について説明する。
【００６３】
この第１の処理例では、まず、視点座標系（又はスクリーン座標系）でのＺ座標（奥行き方向の座標。スクリーン座標系では視点座標系でのＺ座標の符号を反転させればよい）に基づいて、視点ＶＰから見てオブジェクトＯＢ１がＯＢ２の奥側にあるか否かを判断する。
【００６４】
より具体的には図３（Ａ）に示すように、オブジェクトＯＢ１の代表点ＲＰ１（例えばＯＢ１の中心点。キャラクタであるＯＢ１の腰の位置の点）のＺ座標Ｚ１と、オブジェクトＯＢ２の代表点ＲＰ２（例えばＯＢ１の中心点。中心点から所与のオフセットだけ手前側の点）のＺ座標Ｚ２を得る。そして、このＺ座標Ｚ１、Ｚ２の大小関係を調べることで、オブジェクトＯＢ１がＯＢ２の奥側にあるか否かを判断する。例えば、視点ＶＰから遠くなるほどＺ座標が大きくなる場合（逆の場合でもよい）には、Ｚ１＞Ｚ２の場合に、オブジェクトＯＢ１がＯＢ２の奥側にあると判断することになる。
【００６５】
そして、この第１の処理例では、図３（Ａ）の手法により、オブジェクトＯＢ２がＯＢ１の奥側にあると判断された場合に、スクリーン座標系におけるオブジェクトＯＢ１、ＯＢ２のＸ座標（水平方向の座標）に基づいて、ＯＢ２の透過処理を行う。
【００６６】
より具体的には図３（Ｂ）に示すように、オブジェクトＯＢ１の代表点ＲＰ１のＸ座標Ｘ１と、オブジェクトＯＢ２の代表点ＲＰ２のＸ座標Ｘ２と、オブジェクトＯＢ２（円柱、多角柱）の半径パラメータＲ（広義にはＸ座標方向のＯＢ２の大きさを表すためのパラメータであり、視点からの距離（パース）に応じて小さくすることが望ましい）とに基づいてα値を求める。即ち、Ｘ１とＸ２の差が小さくなるほどオブジェクトＯＢ２がより透明になるようなα値を求める。そして、この求められたα値（半透明度、透明度又は不透明度等）に基づいてオブジェクトＯＢ２の半透明処理（α合成処理）を行う。この場合に、α値は、例えば下式のように表すことができる。
【００６７】
α＝Ｆ（｜Ｘ１ーＸ２｜／Ｒ）    （３）
上式において、｜Ａ｜はＡの絶対値であり、Ｆ（Ｂ）はＢを引数とする関数である。この関数としては、Ｂの線形式（例えばＢに定数を乗算した式）を考えることができる。
【００６８】
以上の第１の処理例によれば、図４の領域ＲＧＡ（斜線の領域）にオブジェクトＯＢ１（キャラクタ）が入った場合に、オブジェクトＯＢ２（障害物）が透過状態（半透明）になる。従って、プレーヤ（視点ＶＰ）は、オブジェクトＯＢ２を透過してオブジェクトＯＢ１を見ることができるようになり、自身が操作するオブジェクトＯＢ１（或いは相手プレーヤが操作するオブジェクト）がＯＢ２に隠れて見えなくなる事態を防止できる。
【００６９】
しかも、この第１の処理例によれば、図３（Ａ）のようにオブジェクトＯＢ１、ＯＢ２のＺ座標を比較し、図３（Ｂ）のようにＯＢ１、ＯＢ２のＸ座標の差と半径パラメータＲとからα値を求めるだけで、図４のようなオブジェクトＯＢ２の透過表示を実現できる。即ち、Ｚ座標とＸ座標を用いた線形演算等だけでオブジェクトＯＢ２の透過表示処理を実現できる。従って、オブジェクトＯＢ２が視点障害物となってオブジェクトＯＢ１が見えなくなる事態を、特開平９−５０５４１の従来技術に比べて格段に少ない処理負荷で解決できる。
【００７０】
なお、オブジェクトＯＢ２を透過表示にする際にプレーヤが不自然さを感じないようにするためには、図４の領域ＲＧ１、ＲＧ２（透過処理が開始される境界を含む領域）において、オブジェクトＯＢ２のα値を徐々に変化させることが望ましい。即ち、オブジェクトＯＢ１がＯＢ２の奥側に回り込んだ時にＯＢ２を直ぐに透明にするのではなく、ＯＢ１が回り込んだ深さに応じて、ＯＢ２を不透明から徐々に透明にして行く。これにより、ＯＢ２が透過状態になったことが目立たなくなり、プレーヤが不自然さをそれほど感じない画像を生成できる。
【００７１】
２．３  第２の処理例
次に、図２（Ａ）〜（Ｄ）の手法を実現する第２の処理例について説明する。
【００７２】
さて、前述の第１の処理例は、オブジェクトＯＢ２が円柱形状や多角形形状の場合には好適な処理になるが、ＯＢ２が壁などの板形状である場合には、不具合が生じる可能性がある。
【００７３】
例えば図５では、板形状のオブジェクトＯＢ２（壁）が、その面と視線方向とのなす角度が鋭角になるように配置されており、このＯＢ２の手前側の直ぐ近くにオブジェクトＯＢ１（キャラクタ）が位置している。図５のような状況の場合、オブジェクトＯＢ１の代表点ＲＰ１のＺ座標はオブジェクトＯＢ２（壁）の代表点ＲＰ２のＺ座標よりも大きいため、視点から見てＯＢ１はＯＢ２の奥側にあると判断されてしまう。また、図５の状況の場合、オブジェクトＯＢ１の代表点ＲＰ１のＸ座標は、オブジェクトＯＢ２の代表点ＲＰ２のＸ座標から半径パラメータＲ以内にあると判断されてしまう。従って、図３（Ａ）、（Ｂ）の第１の処理例を用いると、図５のようにオブジェクトＯＢ１がＯＢ２に隠れていないような状況の場合でも、ＯＢ２が透過状態になってしまう。このように不必要にオブジェクトＯＢ２が透過状態になってしまうと、プレーヤが不自然さを感じる事態が生じる。
【００７４】
これに対して、以下に説明する第２の処理例によれば、このような事態を防止できる。
【００７５】
この第２の処理例では、図６（Ａ）に示すように、オブジェクトＯＢ１の代表点ＲＰ１（例えばＯＢ１の中心点。キャラクタであるＯＢ１の腰の位置の点）とオブジェクトＯＢ２の代表点ＲＰ２（例えばＯＢ１の中心点。中心点から所与のオフセットだけ手前側の点）とを結ぶ方向のベクトルＶ１２と、オブジェクトＯＢ２の面（主面）の方向を表す法線ベクトルＶＮ２（面に垂直なベクトル）とに基づいて、オブジェクトＯＢ１がＯＢ２の奥側にあるか否かを判断する。
【００７６】
より具体的には、ベクトルＶ１２と法線ベクトルＶＮ２との内積を計算し、この内積の値に基づいて、図６（Ａ）の領域ＲＧＢ、ＲＧＣのいずれにオブジェクトＯＢ１が位置するかを調べる。そして、領域ＲＧＣにオブジェクトＯＢ１が位置している場合には、ＯＢ１がＯＢ２の奥側にあると判断する。
【００７７】
そして、この第２の処理例では、図６（Ａ）の手法により、オブジェクトＯＢ２がＯＢ１の奥側にあると判断された場合に、スクリーン座標系におけるオブジェクトＯＢ１、ＯＢ２のＸ座標（水平方向の座標）に基づいて、ＯＢ２の透過処理を行う。
【００７８】
より具体的には図６（Ｂ）に示すように、オブジェクトＯＢ１の代表点ＲＰ１のＸ座標Ｘ１と、オブジェクトＯＢ２の代表点ＲＰ２、左端点ＥＬ２、右端点ＥＲ２のＸ座標Ｘ２、ＸＬ２、ＸＲ２とに基づいてα値を求める。
【００７９】
即ち、オブジェクトＯＢ１がＯＢ２の左側に位置する場合（Ｘ１＜Ｘ２）には、｜ＸＬ２−Ｘ２｜に対する｜Ｘ１ーＸ２｜の比が小さくなるほどオブジェクトＯＢ２がより透明になるようなα値を求める。
【００８０】
一方、オブジェクトＯＢ１がＯＢ２の右側に位置する場合（Ｘ１≧Ｘ２）には、｜ＸＲ２−Ｘ２｜に対する｜Ｘ１ーＸ２｜の比が小さくなるほどオブジェクトＯＢ２がより透明になるようなα値を求める。そして、この求められたα値（半透明度、透明度又は不透明度等）に基づいてオブジェクトＯＢ２の半透明処理（α合成処理）を行う。この場合に、α値は、例えば下式のように表すことができる。
【００８１】
Ｘ１＜Ｘ２の場合
α＝Ｆ（｜Ｘ１ーＸ２｜／｜ＸＬ２−Ｘ２｜）    （４）
Ｘ１≧Ｘ２の場合
α＝Ｆ（｜Ｘ１ーＸ２｜／｜ＸＲ２−Ｘ２｜）    （５）
上式において、｜Ａ｜はＡの絶対値であり、Ｆ（Ｂ）はＢを引数とする関数である。この関数としては、Ｂの線形式（例えばＢに定数を乗算した式）を考えることができる。
【００８２】
以上の第２の処理例によれば、図７の領域ＲＧＤ（斜線領域）にオブジェクトＯＢ１（キャラクタ）が入った場合に、オブジェクトＯＢ２（障害物）が透過状態（半透明）になる。従って、プレーヤ（視点ＶＰ）は、オブジェクトＯＢ２を透過してオブジェクトＯＢ１を見ることができるようになり、自身が操作するオブジェクトＯＢ１（或いは相手プレーヤが操作するオブジェクト）がオブジェクトＯＢ２に隠れて見えなくなってしまう事態を防止できる。
【００８３】
しかも、この第２の処理例によれば、図６（Ａ）のようにベクトルＶ１２、ＶＮ２の内積を求め、図６（Ｂ）のようにＸ座標Ｘ１、Ｘ２、ＸＬ２、ＸＲ２の線形演算等によりα値を求めるだけで、図７のようなオブジェクトＯＢ２の透過表示を実現できる。従って、オブジェクトＯＢ２が視点障害物となってオブジェクトＯＢ１が見えなくなる事態を、特開平９−５０５４１の従来技術に比べて格段に少ない処理負荷で解決できるようになる。
【００８４】
また、この第２の処理例によれば、前述の第１の処理例とは異なり、オブジェクトＯＢ２が板形状の場合に不必要にＯＢ２が透過状態になってしまう事態を防止できる。
【００８５】
なお、オブジェクトＯＢ２を透過状態にする際にプレーヤが不自然さを感じないようにするためには、図７の領域ＲＧ３、ＲＧ４（透過処理が開始される境界を含む領域）において、オブジェクトＯＢ２のα値を徐々に変化させることが望ましい。即ち、オブジェクトＯＢ１がＯＢ２の奥側に回り込んだ時に、ＯＢ２を直ぐに透明にするのではなく、ＯＢ１が回り込んだ深さに応じて、ＯＢ２を不透明から徐々に透明にして行く。これにより、ＯＢ２が透過状態になったことが目立たなくなり、プレーヤが不自然さをそれほど感じない画像を生成できる。
【００８６】
２．４  位置確認用オブジェクト
さて、本実施形態の手法では、図８に示すように視点ＶＰから見てオブジェクトＯＢ１がＯＢ２の後ろに隠れてしまった場合に、ＯＢ２を透過状態にする。この手法によれば、ＯＢ２を透過してＯＢ１を見ることができるため、プレーヤがＯＢ１を見失ってしまう事態を防止できる。
【００８７】
しかしながら、その反面、この手法には、ＯＢ２が透明になってしまうためＯＢ２の存在位置をプレーヤが全く認識できなくなってしまうという問題がある。
【００８８】
そして、図８のようにオブジェクトＯＢ２（柱等）が透過状態になった場合にも、ゲーム上はＯＢ２は存在したままとなっている。従って、例えば、プレーヤがオブジェクトＯＢ１（キャラクタ）を操作して、図８のＡ１に示すように移動させた場合には、ヒットチェック処理により、Ａ２に示す地点でＯＢ１がＯＢ２に衝突したと判定する。そして、オブジェクトＯＢ１がＯＢ２の内部に侵入しないように、ＯＢ１は移動の制限を受けることになる。このため、プレーヤは、図８のＡ３に示すような迂回経路に沿ってオブジェクトＯＢ１を移動させなければならなくなる。
【００８９】
ところが、オブジェクトＯＢ２が透過状態になっていると、どのような経路でオブジェクトＯＢ１を迂回させれば、ＯＢ２を避けて移動できるのかをプレーヤは認識できなくなる。即ち、何も存在しない場所に、見えない障害物があるかのような感覚をプレーヤに与えるようになり、プレーヤのゲーム操作環境を阻害する。
【００９０】
そこで本実施形態では、オブジェクトＯＢ２が透過状態になった場合にも非透過状態のままとなる位置確認用のオブジェクトＯＢ３を設ける手法を採用している。
【００９１】
より具体的には図９（Ａ）に示すように、オブジェクトＯＢ２（柱、壁、建物）と地形面ＧＳ（人工的な地形の面も含む）との間に、ＯＢ２の位置確認用のオブジェクトＯＢ３を配置する。この場合、オブジェクトＯＢ２とＯＢ３の境界は目立たないようにしておく。
【００９２】
そして図９（Ｂ）に示すように、オブジェクトＯＢ１がＯＢ２の後ろに隠れ、ＯＢ２が透過状態（透明、半透明）になった場合にも、オブジェクトＯＢ３については非透過状態（不透明）のままにしておく。
【００９３】
このようにすることで、プレーヤは、オブジェクトＯＢ２が存在していた場所を、オブジェクトＯＢ３を見ることで確認できるようになる。従って、図８のＡ１、Ａ２に示すようにオブジェクトＯＢ１がＯＢ２に衝突する事態を防止でき、Ａ３に示すような適正な迂回路に沿ってＯＢ１を移動させることができるようになる。
【００９４】
しかも、オブジェクトＯＢ２の下に位置するＯＢ３は非透過状態になっているが、ＯＢ３の上のＯＢ２については透過状態になっている。従って、プレーヤは、この透過状態のオブジェクトＯＢ２を介してＯＢ１を見ることが可能になり、プレーヤが、注視物であるＯＢ１を見失ってしまう事態も防止できる。
【００９５】
なお、オブジェクトＯＢ３は図９（Ｂ）に示す形状に限定されず、種々の形状を採用できる。例えば地形面ＧＳ（地面。ゲームフィールド面）に配置された、厚みの無い板状のオブジェクト（ポリゴン）でもよい。
【００９６】
なお、プレーヤがオブジェクトＯＢ２の位置及び形状を容易に認識できるようにするためには、オブジェクトＯＢ２の断面（ＸＺ平面に平行な断面）の形状とほぼ同一の断面形状をオブジェクトＯＢ３に持たせることが望ましい。
【００９７】
３．本実施形態の処理
次に、本実施形態の処理の詳細例について、図１０、図１１のフローチャートを用いて説明する。
【００９８】
図１０は、図３（Ａ）、（Ｂ）の第１の処理例のフローチャートである。
【００９９】
まず、視点（スクリーン）座標系でのオブジェクトＯＢ１、ＯＢ２の代表点ＲＰ１、ＲＰ２のＺ座標Ｚ１、Ｚ２を得る（ステップＳ１。図３（Ａ）参照）。そして、Ｚ１＞Ｚ２か否かを判断し（ステップＳ２）、Ｚ１≦Ｚ２の場合には、処理を終了する。
【０１００】
一方、Ｚ１＞Ｚ２の場合には、スクリーン座標系でのオブジェクトＯＢ１、ＯＢ２の代表点ＲＰ１、ＲＰ２のＸ座標Ｘ１、Ｘ２を求める（ステップＳ３。図３（Ｂ）参照）。そして、Ｘ座標の差｜Ｘ１ーＸ２｜とオブジェクトＯＢ２の半径パラメータＲとに基づき、ＯＢ２のα値であるα＝Ｆ（｜Ｘ１−Ｘ２｜／Ｒ）を求める（ステップＳ４）。
【０１０１】
次に、求められたα値に基づき、オブジェクトＯＢ２の半透明処理を行う（ステップＳ５）。具体的には、求められたα値をオブジェクトＯＢ２の頂点α値に設定して、この頂点α値に基づきオブジェクトＯＢ２のα合成処理（αブレンディング、α加算又はα減算等）を行う。
【０１０２】
図１１は、図６（Ａ）、（Ｂ）の第２の処理例のフローチャートである。
【０１０３】
まず、視線ベクトルＶＬとオブジェクトＯＢ１の面（主面）の法線ベクトルＶＮ２の内積を求める（ステップＳ１１）。そして、この求められた内積に基づいて、オブジェクトＯＢ２の面が表向きか裏向きかを調べる（ステップＳ１２）。そして、裏向きの場合（ＶＮ２が視点から遠ざかる方向に向いている場合）には、オブジェクトＯＢ２の表示が不要になるため、処理を終了する。
【０１０４】
一方、表向きの場合には、オブジェクトＯＢ１、ＯＢ２の代表点ＲＰ１、ＲＰ２を結ぶ方向のベクトルＶ１２と法線ベクトルＶＮ２の内積を求める（ステップＳ１３。図６（Ａ）参照）。そして、求められた内積に基づいて、オブジェクトＯＢ１がＯＢ２の奥側の領域（ＲＧＣ）に位置するか否かを判断する（ステップＳ１４）。そして、手前側の領域（ＲＧＢ）にある場合には処理を終了する。
【０１０５】
一方、奥側の領域にある場合には、オブジェクトＯＢ１の代表点ＲＰ１のスクリーン座標系でのＸ座標Ｘ１と、オブジェクトＯＢ２の代表点ＲＰ２、左端点ＥＬ２、右端点ＥＲ２のスクリーン座標系でのＸ座標Ｘ２、ＸＬ２、ＸＲ２を求める（ステップＳ１５）。
【０１０６】
次に、Ｘ１＜Ｘ２か否かを判断し（ステップＳ１６）、Ｘ１＜Ｘ２の場合には、Ｘ座標の差｜Ｘ１−Ｘ２｜と｜ＸＬ２−Ｘ２｜に基づき、オブジェクトＯＢ２のα値であるα＝Ｆ（｜Ｘ１−Ｘ２｜／｜ＸＬ２−Ｘ２｜）を求める（ステップＳ１７）。一方、Ｘ１≧Ｘ２の場合には、Ｘ座標の差｜Ｘ１−Ｘ２｜と｜ＸＲ２−Ｘ２｜に基づき、オブジェクトＯＢ２のα値であるα＝Ｆ（｜Ｘ１−Ｘ２｜／｜ＸＲ２−Ｘ２｜）を求める（ステップＳ１８）。
【０１０７】
そして、求められたα値に基づいて、オブジェクトＯＢ２の半透明処理を行う（ステップＳ１９）。
【０１０８】
４．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図１２を用いて説明する。
【０１０９】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【０１１０】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１１１】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０１１２】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、ＭＰＥＧ方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【０１１３】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ（プリミティブ面）で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０１１４】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０１１５】
ゲームコントローラ９４２（レバー、ボタン、筺体、パッド型コントローラ又はガン型コントローラ等）からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０１１６】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０１１７】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０１１８】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０１１９】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０１２０】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【０１２１】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１２２】
そして、本発明の各手段をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本発明の各手段として機能させるためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各手段を実現することになる。
【０１２３】
図１３（Ａ）に、本実施形態を業務用ゲームシステム（画像生成システム）に適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、コントローラ１１０２などを操作してゲームを楽しむ。内蔵されるシステムボード（サーキットボード）１１０６には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実現するためのプログラム（データ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、このプログラムを格納プログラム（格納情報）と呼ぶ。
【０１２４】
図１３（Ｂ）に、本実施形態を家庭用のゲームシステム（画像生成システム）に適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、コントローラ１２０２、１２０４などを操作してゲームを楽しむ。この場合、上記格納プログラム（格納情報）は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９などに格納されている。
【０１２５】
図１３（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）を介して接続される端末１３０４-１〜１３０４-n（ゲーム機、携帯電話）とを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納プログラム（格納情報）は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリなどの情報記憶媒体１３０６に格納されている。端末１３０４-１〜１３０４-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-１〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-１〜１３０４-nに伝送し端末において出力することになる。
【０１２６】
なお、図１３（Ｃ）の構成の場合に、本発明の各手段を、ホスト装置（サーバー）と端末とで分散して実現するようにしてもよい。また、本発明の各手段を実現するための上記格納プログラム（格納情報）を、ホスト装置（サーバー）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０１２７】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であると共に家庭用ゲームシステムとの間でも情報のやり取りが可能なセーブ用情報記憶装置（メモリカード、携帯型ゲーム装置）を用いることが望ましい。
【０１２８】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１２９】
例えば本実施形態では、第２のオブジェクト（ＯＢ２）の透過処理として、半透明処理を例にあげて主に説明したが、本発明の透過処理はこれに限定されない。例えば、透明処理（透明と不透明を切り替える処理）やメッシュ処理（第２のオブジェクトの画素とその背景の画素がメッシュ状に表示される処理）などを行ってもよい。
【０１３０】
また、第２のオブジェクトを透過表示にする処理としては、図３（Ａ）、（Ｂ）、図６（Ａ）、（Ｂ）で説明した手法が望ましいが、これと均等な種々の変形実施が可能である。例えば、スクリーン座標系での第１、第２のオブジェクトのＹ座標（垂直方向に沿った座標）に基づいて第２のオブジェクトの透過処理を行うことも可能である。
【０１３１】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１３２】
また、本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０１３３】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム（ゲームシステム）に適用できる。
【図面の簡単な説明】
【図１】本実施形態の画像生成システムの機能ブロック図の例である。
【図２】図２（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）は、オブジェクトＯＢ２を透過状態にする本実施形態の手法について説明するための図である。
【図３】図３（Ａ）、（Ｂ）は、オブジェクトＯＢ１、ＯＢ２のＺ座標、Ｘ座標に基づいてＯＢ２を透過状態にする第１の処理例について説明するための図である。
【図４】第１の処理例によりオブジェクトＯＢ２が透過状態になる様子を示す図である。
【図５】第１の処理例の問題点を説明するための図である。
【図６】図６（Ａ）、（Ｂ）は、板形状のオブジェクトＯＢ２を透過状態にする第２の処理例について説明するための図である。
【図７】第２の処理例によりオブジェクトＯＢ２が透過状態になる様子を示す図である。
【図８】オブジェクトＯＢ２を透過状態にすることで生じる問題点について説明するための図である。
【図９】図９（Ａ）、（Ｂ）は、オブジェクトＯＢ２の位置確認用のオブジェクトＯＢ３を配置する手法について説明するための図である。
【図１０】本実施形態の処理の詳細例について示すフローチャートである。
【図１１】本実施形態の処理の詳細例について示すフローチャートである。
【図１２】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図１３】図１３（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
ＯＢ１  第１のオブジェクト
ＯＢ２  第２のオブジェクト
ＯＢ３  第３のオブジェクト
ＰＭ１、ＰＭ２  透視変換画像
ＶＰ    視点
ＳＣ    スクリーン
１００  処理部
１１０  オブジェクト空間設定部
１１２  移動・動作処理部
１１４  透過処理部
１２０  画像生成部
１３０  音生成部
１６０  操作部
１７０  記憶部
１７２  主記憶部
１７４  描画バッファ
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  携帯型情報記憶装置
１９６  通信部
【図１】
0004707080.tif 000002
【図２】
0004707080.tif 000003
【図３】
0004707080.tif 000004
【図４】
0004707080.tif 000005
【図５】
0004707080.tif 000006
【図６】
0004707080.tif 000007
【図７】
0004707080.tif 000008
【図８】
0004707080.tif 000009
【図９】
0004707080.tif 000010
【図１０】
0004707080.tif 000011
【図１１】
0004707080.tif 000012
【図１２】
0004707080.tif 000013
【図１３】
0004707080.tif 000014