(57)【要約】【課題】従来よりも処理負荷を軽減させて、処理対象のオブジェクトを決定して当該オブジェクトについて所与の演算処理を行うことが可能なプログラム、情報記憶媒体、及び画像生成装置を提供すること。【解決手段】複数のオブジェクトそれぞれを識別する画素データに基づいて、当該複数のオブジェクトを含む画像を生成する処理を行い、入力部からの入力情報に基づいて、前記画像の指示位置を取得し、指示位置に対応する画素の画素データに基づいて、当該画素が示すオブジェクトを決定する処理を行い、決定されたオブジェクトに応じた所与の演算処理を行う。【選択図】図１７
2011053838.tif 000002
【特許請求の範囲】
【請求項１】
所与の演算処理を行うプログラムであって、
複数のオブジェクトそれぞれを識別する画素データに基づいて、当該複数のオブジェクトを含む画像を生成する処理を行う画像生成部と、
入力部からの入力情報に基づいて、前記画像の指示位置を取得する取得部と、
前記指示位置に対応する画素の画素データに基づいて、当該画素が示すオブジェクトを決定する処理を行う決定部と、
前記決定部によって決定された前記オブジェクトに応じた所与の演算処理を行う演算処理部として、コンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記画素データは、色情報又は半透明情報を含み、
前記色情報又は半透明情報によって、複数のオブジェクトそれぞれを識別することを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記画像生成部が、
奥行き値を定義した画素データに基づいて、前記画像を生成し、
前記決定部が、
前記指示位置に対応する画素の画素データが示す奥行き値に基づいて、オブジェクトを決定する処理を行うことを特徴とするプログラム。
【請求項４】
請求項１〜３のいずれかにおいて、
前記画像生成部が、
オブジェクトを構成する複数の部位それぞれを識別する画素データに基づいて、前記画像を生成し、
前記決定部が、
前記指示位置に対応する画素の画素データに基づいて、前記オブジェクトを構成する複数の部位のうちいずれかの部位を決定する処理を行い、
前記演算処理部が、
前記決定部によって決定された前記部位に応じた所与の演算処理を行うことを特徴とするプログラム。
【請求項５】
請求項１〜４のいずれかにおいて、
前記画像生成部が、
表示出力用画像を生成すると共に、
奥行き値を定義した画素データに基づいて前記画像を生成し、
前記演算処理部が、
前記決定部によって決定された前記オブジェクトが所与のオブジェクトである場合に、前記表示出力用画像において、前記指示位置に対応する画素の画素データが示す奥行き値に基づいて、前記オブジェクトに対してエフェクト処理を行うことを特徴とするプログラム。
【請求項６】
請求項１〜５のいずれかにおいて、
前記画像生成部が、
表示出力用画像を生成すると共に、
法線ベクトルを定義した画素データに基づいて、前記画像を生成し、
前記演算処理部が、
前記決定部によって決定された前記オブジェクトが所与のオブジェクトである場合に、前記表示出力用画像において、前記指示位置に対応する画素の画素データが示す法線ベクトルに基づいて、前記オブジェクトに対してエフェクト処理を行うことを特徴とするプログラム。
【請求項７】
請求項１〜６のいずれかにおいて、
前記画像生成部が、
表示出力用画像を生成すると共に、
属性情報を定義した画素データに基づいて、前記画像を生成し、
前記演算処理部が、
前記決定部によって決定された前記オブジェクトが所与のオブジェクトである場合に、前記表示出力用画像において、前記指示位置に対応する画素の画素データが示す属性情報に基づいて、前記オブジェクトに対してエフェクト処理を行うことを特徴とするプログラム。
【請求項８】
請求項１〜７のいずれかにおいて、
前記指示位置に基づいて、前記画像において所定範囲を設定する設定部として、コンピュータを更に機能させ、
前記決定部が、
前記所定範囲内の１又は複数の画素の画素データそれぞれに基づいて、１又は複数のオブジェクトを決定する処理を行い、
前記演算処理部が、
前記決定部によって決定された１又は複数の前記オブジェクトそれぞれについて、所与の演算処理を行うことを特徴とするプログラム。
【請求項９】
請求項８において、
前記画像生成部が、
前記指示位置に対応する指示マーカーを描画した表示出力用画像を生成する処理を行い、
前記設定部が、
前記指示マーカーの形状及び大きさの少なくとも１つに応じた所定範囲を設定することを特徴とするプログラム。
【請求項１０】
請求項１〜９のいずれかにおいて、
前記取得部が、複数の指示位置を取得した場合に、各指示位置の位置関係に基づいて共通指示位置を発生させるか否かを判定する指示位置制御部として、コンピュータを更に機能させ、
前記決定部が、
前記共通指示位置を発生させると判定された場合に、前記共通指示位置に対応する画素の画素データに基づいてオブジェクトを決定する処理を行うことを特徴とするプログラム。
【請求項１１】
請求項１０において、
前記共通指示位置に基づいて、前記画像において第２の所定範囲を設定する設定部として、コンピュータを更に機能させ、
前記決定部が、
前記共通指示位置を発生させると判定された場合に、前記第２の所定範囲内の１又は複数の画素の画素データそれぞれに基づいて、１又は複数のオブジェクトを決定する処理を行い、
前記演算処理部が、
前記決定部によって決定された１又は複数の前記オブジェクトそれぞれについて、所与の演算処理を行うことを特徴とするプログラム。
【請求項１２】
請求項１〜１１のいずれかにおいて、
前記画像生成部が、
表示出力用画像を、表示出力用の画像バッファに描画する処理を行い、
前記画像を、前記表示出力用の画像バッファを縮小させた縮小用の画像バッファに描画する処理を行うことを特徴とするプログラム。
【請求項１３】
コンピュータにより読取可能な情報記憶媒体であって、請求項１〜１２のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
【請求項１４】
所与の演算処理を行う画像生成装置であって、
複数のオブジェクトそれぞれを識別する画素データに基づいて、当該複数のオブジェクトを含む画像を生成する処理を行う画像生成部と、
入力部からの入力情報に基づいて、前記画像の指示位置を取得する取得部と、
前記指示位置に対応する画素の画素データに基づいて、当該画素が示すオブジェクトを決定する処理を行う決定部と、
前記決定部によって決定された前記オブジェクトに応じた所与の演算処理を行う演算処理部とを含むことを特徴とする画像生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、及び、画像生成装置に関する。
【背景技術】
【０００２】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成装置（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
例えば、プレーヤが入力部を用いて、オブジェクト空間（３次元空間）において、弾を発射させて敵キャラクタを射撃するシューティングゲームの画像を生成する画像生成装置が存在する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−２５９６８６
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このような従来の画像生成装置では、オブジェクト空間において、弾の移動速度や移動方向に基づき、弾の移動経路を示すレイ（線）と敵オブジェクトとのヒット処理（所与の演算処理の一例）を行っている。つまり、従来のヒット処理は、３次元空間における弾の移動速度や移動方向を毎フレーム演算しながら、レイと敵オブジェクトとのヒット処理を行っていたので、処理負荷が高いという問題があった。
【０００６】
本発明は、上記課題に鑑みたものであり、従来よりも処理負荷を軽減させて、処理対象のオブジェクトを決定して当該オブジェクトについて所与の演算処理を行うことが可能なプログラム、情報記憶媒体、及び画像生成装置を提供することにある。
【課題を解決するための手段】
【０００７】
（１）本発明は、所与の演算処理を行うプログラムであって、複数のオブジェクトそれぞれを識別する画素データに基づいて、当該複数のオブジェクトを含む画像を生成する処理を行う画像生成部と、入力部からの入力情報に基づいて、前記画像の指示位置を取得する取得部と、前記指示位置に対応する画素の画素データに基づいて、当該画素が示すオブジェクトを決定する処理を行う決定部と、前記決定部によって決定された前記オブジェクトに応じた所与の演算処理を行う演算処理部として、コンピュータを機能させるプログラムに関する。
【０００８】
本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部として、コンピュータを機能させるプログラムを記憶した情報記憶媒体、上記各部を含む画像生成装置に関係する。
【０００９】
本発明によれば、指示位置に対応する画素の画素データに基づいて、オブジェクトを決定する処理を行い、決定されたオブジェクトに応じた所与の演算処理を行うので、従来よりも処理負荷を軽減させて、処理対象のオブジェクトを決定して当該オブジェクトについて所与の演算処理を行うことが可能となる。例えば、所与の演算処理とは、決定されたオブジェクトが所与のオブジェクトであるか否かを判定する判定処理、決定されたオブジェクトについてエフェクト処理（動作処理）、決定されたオブジェクトに応じたパラメータ制御等である。
【００１０】
（２）また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記画素データは、色情報又は半透明情報を含み、前記色情報又は半透明情報によって、複数のオブジェクトそれぞれを識別するようにしてもよい。本発明によれば、色情報（例えば、ＲＧＢの３原色）や、半透明情報（Ａ値（α値））を用いて複数のオブジェクトそれぞれを識別可能な画像を生成するので、簡易に複数のオブジェクトそれぞれを識別することができる。
【００１１】
（３）また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記画像生成部が、奥行き値を定義した画素データに基づいて、前記画像を生成し、前記決定部が、前記指示位置に対応する画素の画素データが示す奥行き値に基づいて、オブジェクトを決定する処理を行うようにしてもよい。本発明によれば、奥行きを考慮してオブジェクトを決定する処理を行うので処理効率が高まり、更に処理負荷を軽減させることができる。
【００１２】
（４）また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記画像生成部が、オブジェクトを構成する複数の部位それぞれを識別する画素データに基づいて、前記画像を生成し、前記決定部が、前記指示位置に対応する画素の画素データに基づいて、前記オブジェクトを構成する複数の部位のうちいずれかの部位を決定する処理を行い、前記演算処理部が、前記決定部によって決定された前記部位に応じた所与の演算処理を行うようにしてもよい。本発明によれば、指示位置に対応する画素の画素データに基づいて決定された部位に応じた所与の演算処理を行うので、従来よりも処理負荷を軽減させて、処理対象の部位を決定して当該部位に応じた所与の演算処理を行うことが可能となる。
【００１３】
（５）また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記画像生成部が、表示出力用画像を生成すると共に、奥行き値を定義した画素データに基づいて前記画像を生成し、前記演算処理部が、前記決定部によって決定された前記オブジェクトが所与のオブジェクトである場合に、前記表示出力用画像において、前記指示位置に対応する画素の画素データが示す奥行き値に基づいて、前記オブジェクトに対してエフェクト処理を行うようにしてもよい。本発明によれば、画像の指示位置に対応する画素の画素データが示す奥行き値に基づいて、エフェクト処理を行うので、処理負荷を軽減させて奥行きを考慮したエフェクトを表現することができる。
【００１４】
（６）また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記画像生成部が、表示出力用画像を生成すると共に、法線ベクトルを定義した画素データに基づいて、前記画像を生成し、前記演算処理部が、前記決定部によって決定された前記オブジェクトが所与のオブジェクトである場合に、前記表示出力用画像において、前記指示位置に対応する画素の画素データが示す法線ベクトルに基づいて、前記オブジェクトに対してエフェクト処理を行うようにしてもよい。本発明によれば、画像の指示位置に対応する画素の画素データが示す法線ベクトルに基づいて、エフェクト処理を行うので、処理負荷を軽減させて法線ベクトルを考慮したエフェクトを表現することができる。
【００１５】
（７）また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記画像生成部が、表示出力用画像を生成すると共に、属性情報を定義した画素データに基づいて、前記画像を生成し、前記演算処理部が、前記決定部によって決定された前記オブジェクトが所与のオブジェクトである場合に、前記表示出力用画像において、前記指示位置に対応する画素の画素データが示す属性情報に基づいて、前記オブジェクトに対してエフェクト処理を行うようにしてもよい。本発明によれば、画像の指示位置に対応する画素の画素データが示す属性情報に基づいて、エフェクト処理を行うので、処理負荷を軽減させて属性情報を考慮したエフェクトを表現することができる。例えば、属性情報は素材情報とすることができる。
【００１６】
（８）また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記指示位置に基づいて、前記画像において所定範囲を設定する設定部として、コンピュータを更に機能させ、前記決定部が、前記所定範囲内の１又は複数の画素の画素データそれぞれに基づいて、１又は複数のオブジェクトを決定する処理を行い、前記演算処理部が、前記決定部によって決定された１又は複数の前記オブジェクトそれぞれについて、所与の演算処理を行うようにしてもよい。本発明によれば、例えば、所与の演算処理対象の１又は複数のオブジェクトを簡易に決定することができる。
【００１７】
（９）また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記画像生成部が、前記指示位置に対応する指示マーカーを描画した表示出力用画像を生成する処理を行い、前記設定部が、前記指示マーカーの形状及び大きさの少なくとも１つに応じた所定範囲を設定するようにしてもよい。本発明によれば、表示出力用画像で描画されるマーカーの形状及び大きさの少なくとも１つに応じた所定範囲を設定するので、表示出力用画像で表示される指示マーカーの形状及び大きさの少なくとも１つを反映した所与の演算処理を行うことができる。
【００１８】
（１０）また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記取得部が、複数の指示位置を取得した場合に、各指示位置の位置関係に基づいて共通指示位置を発生させるか否かを判定する指示位置制御部として、コンピュータを更に機能させ、前記決定部が、前記共通指示位置を発生させると判定された場合に、前記共通指示位置に対応する画素の画素データに基づいてオブジェクトを決定する処理を行うようにしてもよい。
【００１９】
本発明によれば、各プレーヤが互いに協力し合う環境を提供でき、プレーヤに対してマルチプレイへの参加を促すことができる。
【００２０】
（１１）また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記共通指示位置に基づいて、前記画像において第２の所定範囲を設定する設定部として、コンピュータを更に機能させ、前記決定部が、前記共通指示位置を発生させると判定された場合に、前記第２の所定範囲内の１又は複数の画素の画素データそれぞれに基づいて、１又は複数のオブジェクトを決定する処理を行い、前記演算処理部が、前記決定部によって決定された１又は複数の前記オブジェクトそれぞれについて、所与の演算処理を行うようにしてもよい。
【００２１】
本発明によれば、マルチプレイモードにおいて特有の所与の演算処理を行う環境を提供でき、プレーヤに対してマルチプレイへの参加を促すことができる。
【００２２】
（１２）また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記画像生成部が、表示出力用画像を、表示出力用の画像バッファに描画する処理を行い、前記画像を、前記表示出力用の画像バッファを縮小させた縮小用の画像バッファに描画する処理を行うようにしてもよい。本発明によれば、画像を生成する際の処理負荷を軽減することができる。
【図面の簡単な説明】
【００２３】
【図１】本実施形態の画像生成装置の機能ブロック図の例。
【図２】本実施形態の画像生成装置の外観図。
【図３】図３（Ａ）は、表示出力用画像の一例。図３（Ｂ）は、演算処理用画像の一例。
【図４】図４（Ａ）は、表示出力用画像で用いられるオブジェクトの一例。図４（Ｂ）は、演算処理用画像で用いられるオブジェクトの一例。
【図５】図５（Ａ）（Ｂ）は、色情報又は半透明情報によって、複数のオブジェクトそれぞれを識別することを説明するための図。
【図６】図６（Ａ）は、表示出力用画像を格納する画像バッファ、Ｚバッファの説明図。図６（Ｂ）は、演算処理用画像を格納する画像バッファ、Ｚバッファの説明図。
【図７】図７（Ａ）（Ｂ）は、指示位置を取得する手法の説明図。
【図８】図８（Ａ）〜（Ｃ）は、ヒットエリア、及び、画素を選択する手法の説明図。
【図９】図９（Ａ）〜（Ｃ）は従来のヒット手法の説明図。
【図１０】図１０は、法線ベクトルの説明図。
【図１１】図１１（Ａ）（Ｂ）は、色情報又は半透明情報によって、法線ベクトル、属性の説明図。
【図１２】図１２（Ａ）（Ｂ）は、共通指示位置を取得する手法の説明図。
【図１３】図１３（Ａ）は表示出力用画像の一例。図１３（Ｂ）は、演算処理用画像の一例。
【図１４】図１４（Ａ）（Ｂ）は、敵オブジェクトの一例を示す図。
【図１５】図１５（Ａ）は、表示出力用画像のＺ画像を示す。図１５（Ｂ）は、演算処理用画像のＺ画像を示す。
【図１６】図１６（Ａ）（Ｂ）は、物理演算によってヒット処理を行う例を示す図。
【図１７】本実施形態のフローチャート図。
【図１８】本実施形態の応用例の説明図。
【図１９】図１９（Ａ）（Ｂ）は、演算処理用画像の説明図。
【発明を実施するための形態】
【００２４】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２５】
１．構成
図１に本実施形態の画像生成装置（コンピュータ、端末、ゲーム装置）の機能ブロック図の例を示す。なお本実施形態の画像生成装置は図１の構成要素（各部）の一部を省略した構成としてもよい。
【００２６】
入力部１６０は、プレーヤからの入力情報を入力するための機器であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部１６０は、プレーヤの入力情報（入力信号）を検出する検出部１６２を備える。入力部１６０は、例えば、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどがある。また、入力部１６０は、所定振動信号に基づいて振動させる処理を行う振動部を備えていてもよい。
【００２７】
また、入力部１６０は、３軸の加速度を検出する加速度センサや、角速度を検出するジャイロセンサ、撮像部を備えた入力機器でもよい。例えば、入力機器は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力機器には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける（プレーヤが手に装着する）グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力機器には、入力機器と一体化されている画像生成装置、携帯型画像生成装置、携帯電話なども含まれる。
【００２８】
検出部１６２は、入力部１６０からの入力情報を検出する処理を行う。例えば、検出部１６２は、入力部１６０の引き金（トリガ）が引かれることによって発生する入力信号を、入力情報（攻撃入力情報）として検出する。例えば、検出部１６２は、入力部１６０から照準（ガンサイト）の位置を指示する入力情報（指示入力情報）を検出する。
【００２９】
例えば、入力部１６０が、液晶ディスプレイと、プレーヤの接触位置を検出するためのタッチパネルとが積層されたタッチパネル型ディスプレイで有る場合には、タッチペンなどの指示入力機器や指先の接触位置情報を入力情報として検出する。
【００３０】
また、入力部１６０が撮像部を備える入力機器である場合には、撮像画像におおける指示位置情報を入力情報として検出する。より具体的に説明すると、撮像部は、赤外線フィルタ、レンズ、撮像素子（イメージセンサ）、画像処理回路を含む。ここで、赤外線フィルタは、入力機器の前方に配置され、表示部１９０に関連付けられて配置されている光源（２つの光源）から入射する光から赤外線のみを通過させる。また、レンズは、赤外線フィルタを透過した赤外線を集光して撮像素子へ出射する。また、撮像素子は、例えば、ＣＭＯＳセンサやＣＣＤのような固体撮像素子であり、レンズが集光した赤外線を撮像して撮像画像を生成する。そして、撮像素子で生成された撮像画像は、画像処理回路で処理される。例えば、撮像部を備える入力機器は、撮像素子から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報（指示位置情報）を入力情報として検出する。
【００３１】
記憶部２００は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ、ＶＲＡＭなどにより実現できる。
【００３２】
記憶部２００は、画像を記憶する画像バッファ、画像の各ピクセルの奥行き値（深度値、Ｚ値）を記憶するＺバッファを備える。画像バッファ２２１は、表示出力用画像の各画素（ピクセル）の（Ｒ，Ｇ，Ｂ，Ａ）（ＲＧＢカラー値、及びα値（Ａ値））が格納される。つまり、表示出力用画像の各画素の色情報（Ｒ、Ｇ、Ｂ）及び半透明情報（α値（Ａ値ともいう））が画像バッファ２２１に格納される。Ｚバッファ２２２は、画像バッファ２２１に描画される各画素の奥行き値が格納される。
【００３３】
また、画像バッファ２３１（描画面Ａ）は、演算処理用画像の各画素の（Ｒ，Ｇ，Ｂ，Ａ）が格納される。画像バッファ２３１に格納される演算処理用画像は、オブジェクトのＩＤ（ヒットＩＤ）、オブジェクトの部位、オブジェクトのヒットタイプなどの情報を示す（Ｒ，Ｇ，Ｂ，Ａ）が格納される。また、画像バッファ２３２（描画面Ｂ）も、演算処理用画像の各画素の（Ｒ，Ｇ，Ｂ，Ａ）が格納される。画像バッファ２３２に格納される演算処理用画像は、法線ベクトルや、属性情報（オブジェクトの素材を情報など）を示す（Ｒ，Ｇ，Ｂ，Ａ）が格納される。また、Ｚバッファ２３３（描画面Ｃ）は、画像バッファ２３１、２３２に描画される各画素の奥行き値が格納される。なお、画像バッファ２３１、２３２、Ｚバッファ２３３は、それぞれ縮小用のバッファであり、画像バッファ２３１、２３２、Ｚバッファ２３３の大きさは、画像バッファ２２１、Ｚバッファ２２２を１／８の大きさである。
【００３４】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）を記憶することができる。
【００３５】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００３６】
通信部１９６は外部（例えば他の画像生成装置）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３７】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体１８０や記憶部２００に記憶してもよい。このようにプログラムやデータを受信して画像生成装置を機能させる場合も本発明の範囲内に含む。
【００３８】
処理部１００（プロセッサ）は、入力部１６０からの入力情報やプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【００３９】
この処理部１００は記憶部２００内の主記憶部２１０をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＧＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００４０】
処理部１００は、オブジェクト空間設定部１１０、取得部１１１、決定部１１２、演算処理部１１３、移動・動作処理部１１４、ゲーム演算部１１５、設定部１１６、指示位置制御部１１７、画像生成部（描画部）１２０、音処理部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００４１】
オブジェクト空間設定部１１０は、キャラクタ（敵オブジェクト）の他に、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を、オブジェクト空間に配置設定する処理を行う。
【００４２】
ここでオブジェクト空間とは、仮想的なゲーム空間であり、２次元空間、３次元空間の両方を含む。２次元空間とは、例えば２次元座標（Ｘ，Ｙ）においてオブジェクトが配置される空間であり、３次元空間とは、例えば３次元座標（Ｘ，Ｙ，Ｚ）においてオブジェクトが配置される空間である。
【００４３】
例えば、オブジェクト空間設定部１１０は、オブジェクト空間を３次元空間とした場合には、ワールド座標系にオブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）を配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００４４】
取得部１１１は、入力部１６０からの入力情報に基づいて、画像（演算処理用画像）の指示位置（カーソル位置）を取得する処理を行う。例えば、取得部１１１は、入力部１６０からの入力情報に基づいて、表示出力用画像の指示位置を取得する処理を行ってもよい。例えば、取得部１１１は、入力部１６０で検出された指示位置を、画像（演算処理用画像）の指示位置として取得する処理を行う。
【００４５】
決定部１１２は、画像（演算処理用画像）の指示位置に対応する画素の画素データ（ピクセルデータ、ボクセルデータ、色情報（Ｒ，Ｇ，Ｂ）、α値、Ｚ値、輝度などのピクセル単位の値を示すデータ）に基づいて、画素が示すオブジェクトを決定する処理を行う。例えば、指示位置に対応する画素の画素データは、指示位置の画素の画素データ、指示位置周囲の画素の画素データ、及び、指示位置に基づく所定範囲に含まれる１又は複数の画素の画素データの少なくとも１つとすることができる。なお、画素データは、所定値域（０〜１２７、或いは、０．０〜１．０までの値域など）の値として定義するようにしてもよい。
【００４６】
また、決定部１１２は、指示位置に対応する画素の画素データが示す奥行き値に基づいて、１又は複数のオブジェクトを決定する処理を行う。
【００４７】
また、決定部１１２は、指示位置に対応する画素の画素データに基づいて、オブジェクトを構成する複数の部位のうちいずれかの１又は複数の部位を決定する処理を行う。つまり、決定部１１２によって、決定されたオブジェクトについて、指示位置に対応する画素の画素データに基づいて、更にそのオブジェクトの部位を決定してもよい。
【００４８】
また、決定部１１２は、所定範囲内の１又は複数の画素の画素データそれぞれに基づいて、１又は複数のオブジェクトを決定する処理を行う。
【００４９】
また、決定部１１２は、共通指示位置を発生させると判定された場合に、共通指示位置に対応する画素の画素データに基づいて、複数のオブジェクトのうち１又は複数のオブジェクトを決定する処理を行う。なお、決定部１１２は、共通指示位置を発生させると判定された場合に、共通指示位置に対応する画素の画素データに基づいて、決定されたオブジェクトについて、更にそのオブジェクトの部位を決定してもよい。
【００５０】
また、決定部１１２は、共通指示位置を発生させると判定された場合に、第２の所定範囲内の１又は複数の画素の画素データそれぞれに基づいて、１又は複数のオブジェクトを決定する処理を行う。
【００５１】
演算処理部１１３は、決定部１１２によって決定されたオブジェクトに応じた所与の演算処理を行う。また、演算処理部１１３は、決定部１１２によって決定されたオブジェクトの部位に応じた所与の演算処理を行う。例えば、所与の演算処理とは、決定されたオブジェクトが所与のオブジェクト（例えば、敵オブジェクト）であるか否かを判定する処理、決定されたオブジェクトに対して行うエフェクト処理（動作処理）、決定されたオブジェクトに対するパラメータ制御処理などである。
【００５２】
より具体的に説明すると、演算処理部１１３は、ヒット判定部１１３−１、エフェクト処理部１１３−２とを含む。
【００５３】
例えば、ヒット判定部１１３−１は、決定部１１２によって決定されたオブジェクトが所与のオブジェクトであるか否かを判定する。例えば、決定部１１２によって決定されたオブジェクトが所与のオブジェクト（例えば、敵オブジェクト）であると判定された場合には、特定オブジェクト（例えば、弾オブジェクトなど）が所与のオブジェクトにヒットしたと判定する処理を行う。一方、決定部１１２によって決定されたオブジェクトが所与のオブジェクトではないと判定された場合には、特定オブジェクトが所与のオブジェクトにヒットしないと判定する処理を行う。なお、特定オブジェクトは、オブジェクト空間に存在していてもよいし、存在しなくてもよい。
【００５４】
また、ヒット判定部１１３−１は、決定部１１２によって決定されたオブジェクトの部位が、所与のオブジェクトの部位（例えば、敵オブジェクトの頭部）であると判定された場合には、特定オブジェクトが該部位にヒットしたと判定し、決定部１１２によって決定されたオブジェクトの部位が、所与のオブジェクトの部位（例えば、敵オブジェクトの頭部）でないと判定された場合には、特定オブジェクトが該部位にヒットしないと判定する処理を行ってもよい。
【００５５】
また、ヒット判定部１１３−１は、指示位置に対応する画素の画素データが示す奥行き値に基づいて、決定部１１２によって決定されたオブジェクトに応じた所与の演算処理を行うようにしてもよい。例えば、決定部１１２によって決定されたオブジェクトが所与のオブジェクト（例えば、敵オブジェクト）であって、指示位置に対応する画素の画素データが示す奥行き値Ｚａが所定奥行き範囲内（例えば、Ｚ１≦Ｚａ≦Ｚ２）にある場合には、特定オブジェクト（例えば、弾オブジェクト）が、オブジェクト（敵オブジェクト）にヒットしたと判定する処理を行う。一方、決定部１１２によって決定されたオブジェクトが所与のオブジェクト（例えば、敵オブジェクト）であって、指示位置に対応する画素の画素データが示す奥行き値Ｚａが所定奥行き範囲内でない場合には、特定オブジェクト（例えば、弾オブジェクト）が、オブジェクト（敵オブジェクト）にヒットしないと判定する処理を行う。
【００５６】
例えば、エフェクト処理部１１３−２は、決定部１１２によって決定されたオブジェクトが所与のオブジェクトである場合に、表示出力用画像において、指示位置に対応する画素の画素データが示す奥行き値に基づいて、オブジェクトに対してエフェクト処理を行う。
【００５７】
また、エフェクト処理部１１３−２は、決定部１１２によって決定されたオブジェクトが所与のオブジェクトである場合に、表示出力用画像において、指示位置に対応する画素の画素データが示す法線ベクトルに基づいて、オブジェクトに対してエフェクト処理を行う。
【００５８】
また、エフェクト処理部１１３−２は、決定部１１２によって決定されたオブジェクトが所与のオブジェクトである場合に、表示出力用画像において、指示位置に対応する画素の画素データが示す属性情報に基づいて、オブジェクトに対してエフェクト処理を行う。
【００５９】
移動・動作処理部１１４は、オブジェクト空間において、オブジェクトを移動・動作させる処理を行う。すなわち入力部１６０から入力された入力情報や、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、移動速度、加速度、移動量、移動方向などの移動パラメータ）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（例えば、１／６０秒）毎に順次求める処理を行う。なおフレームは、オブジェクトの移動・動作処理や画像生成処理を行う時間の単位である。
【００６０】
ゲーム演算部１１５は、種々のゲーム処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などがある。
【００６１】
また、ゲーム演算部１１５は、プレーヤキャラクタの所与のパラメータ（体力値）が所定値（０）に達したか否かを判断する処理を行い、プレーヤキャラクタの所与のパラメータ（体力値）が所定値（０）に達した場合に、ゲーム終了と判定する処理を行う。
【００６２】
設定部１１６は、指示位置に基づいて、画像（演算処理用画像）において所定範囲（ヒットエリア）を設定する処理を行う。また、設定部１１６は、表示出力用画像に描画される指示マーカーの形状及び大きさの少なくとも１つに応じた所定範囲を設定する処理を行う。また設定部１１６は、共通指示位置に基づいて、画像（演算処理用画像）において第２の所定範囲（第２のヒットエリア）を設定する処理を行う。
【００６３】
指示位置制御部１１７は、取得部１１１が、複数の指示位置を取得した場合に、各指示位置の位置関係に基づいて共通指示位置を発生させるか否かを判定する処理を行う。
【００６４】
画像生成部１２０は、処理部１００で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。画像生成部１２０が生成する画像は、いわゆる２次元画像であってもよいし、いわゆる３次元画像であってもよい。
【００６５】
２次元画像を生成する場合には、例えば、オブジェクト（スプライト）毎に優先度を設定し、設定された優先度が低いオブジェクトから順に描画する。オブジェクト同士が重なる場合には、優先度が低いオブジェクトの上に、優先度の高いオブジェクトを描画する。
【００６６】
いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値
等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００６７】
頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換（カメラ座標変換）、クリッピング処理、透視変換（投影変換）、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。
【００６８】
そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、ピクセルデータ、ボクセルデータなどの画素データ（色（ＲＧＢ）、α値、Ｚ値、輝度等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を生成することができる。
【００６９】
なお、画像生成部１２０は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、３次元の画像を生成する場合には、ワールド座標系における仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（例えば、Ｘ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。また、画像生成部１２０は、仮想カメラを、予め決められた回転角度で回転させてもよい。この場合には、仮想カメラの位置又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００７０】
本実施形態では、プレーヤキャラクタの視点（一人称視点）に基づいて画像を生成する処理を行っている（いわゆる、ファーストパーソン・シューティングゲームである）。また、本実施形態では、仮想カメラの移動、向き、画角はプログラムで制御してもよいし、入力部１６０の入力情報に基づいて仮想カメラの移動、向き、画角を制御してもよい。
【００７１】
例えば仮想カメラによりオブジェクト（例えば、プレーヤキャラクタ）を後方から撮影する場合には、オブジェクトの位置、向きの変化に仮想カメラが追従するように、仮想カメラの位置、仮想カメラの向きを制御する。この場合には、移動・動作処理部１１４で得られたオブジェクトの位置、向き又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた向きに設定したり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は向きを特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００７２】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００７３】
そして画像生成部１２０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００７４】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、記憶部２００に保存される。
【００７５】
テクスチャマッピングは、記憶部２００に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部２００からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００７６】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファに格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００７７】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。
【００７８】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００７９】
なお、本実施形態の画像生成部１２０は、表示出力用画像と、演算処理用画像を生成する処理を行う。そして、本実施形態の画像生成部１２０は、演算処理用画像を生成する場合には、上記ピクセル処理（ピクセルシェーダによるパーピクセル処理）を行わないように制御しているが、演算処理の必要性に応じて、上記ピクセル処理を行うようにしてもよい。また、演算処理用のＺ値を決定する際には、複数のオブジェクト間の予め決められた奥行き関係に基づいて、Ｚ値を変更するようにしてもよい。
【００８０】
音処理部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００８１】
なお、本実施形態の画像生成装置は、１人のプレーヤのみがプレイできるシングルプレーヤモード用の装置にしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードを備える装置にしてもよい。
【００８２】
例えば、図２に示すように、マルチプレーヤモードの場合には、プレーヤそれぞれの入力部１６０−１、１６０−２を用意し、各入力部１６０−１、１６０−２が指示する照準位置に基づいて敵キャラクタ等のヒット処理を行う。また、本実施形態では、マルチプレーヤモードの場合には、複数のプレーヤに提供するデータ、表示出力用画像、演算処理用画像、ゲーム音を、１つの画像生成装置を用いて生成している。なお、画像生成装置が他の画像生成装置とネットワークを介して入力情報などのデータを送受信し、受信したデータと入力部１６０からの入力情報とに基づいて、画像生成処理を行うようにしてもよい。
【００８３】
２．画素データを用いてヒット処理を行う手法 
（１）概要
本実施形態の画像生成装置は、オブジェクト空間内で弾（特定オブジェクトの一例）を敵キャラクタにヒットさせて攻撃を行うシューティングゲームに関する処理を行うものである。
【００８４】
図２は、本実施形態における画像生成装置の外観図を示す。本実施形態では、入力部１６０（１６０−１、１６０−２）が設けられ、表示部１９０に画像生成装置が生成した表示出力用画像が表示される。つまり、本実施形態のシューティングゲームは、プレーヤが入力部１６０に設定されている引き金（トリガ）を引いて、出現する多数の敵キャラクタを攻撃して敵キャラクタを倒しながらゲームを進行させるゲームである。
【００８５】
そして、本実施形態の画像生成装置は、表示部１９０に表示させる表示出力用画像Ｄを生成すると共に、演算処理用画像Ｅ（Ｅ１〜Ｅ３）を生成し、演算処理用画像Ｅに基づいてヒット処理を行う。
【００８６】
つまり、本実施形態では、弾オブジェクト以外のオブジェクトであって、オブジェクト空間に存在する敵オブジェクト、背景オブジェクトなどの複数のオブジェクトを色分けした演算処理用画像Ｅを生成する。そして、演算処理用画像Ｅにおいて、指示位置（照準位置）に対応する所定範囲内のピクセルを選択し、選択されたピクセルの色が敵オブジェクトを示す色である場合に、敵オブジェクトにヒットしたと判定する処理を行っている。このようにすれば、３次元のオブジェクト空間内で、弾の軌跡（レイ）と、オブジェクトとのヒット処理を行う従来の手法に比べて処理負荷を軽減することができる。
【００８７】
（２）画像を生成する手法
本実施形態は、表示出力用画像Ｄと、演算処理用画像Ｅ１（ヒット処理用画像Ｅ１）とを生成する手法について説明する。つまり、本実施形態では、フレーム毎に（例えば、１／６０秒単位で）、図３（Ａ）に示す表示出力用画像Ｄと、図３（Ｂ）に示す演算処理用画像Ｅ１とを生成する処理を行う。
【００８８】
図４（Ａ）（Ｂ）は、敵オブジェクトＯＢ１のオブジェクトデータ（モデルデータ）を図示したものである。図４（Ａ）は、表示出力用画像Ｄで用いられる敵オブジェクトＯＢ１−１のオブジェクトデータを図示したものである。一方、図４（Ｂ）は、演算処理用画像Ｅ１で用いられる敵オブジェクトＥＯＢ１−２のオブジェクトデータを図示したものである。つまり、演算処理用画像Ｅ１で用いられるオブジェクト（モデル）は、当該オブジェクトの頂点数が表示出力用画像Ｄで用いられるオブジェクトの頂点数よりも少ない簡略オブジェクトである。例えば、本実施形態では、表示出力用画像Ｄを生成する際には、敵オブジェクトＯＢ１−１を用いて生成する処理を行う。一方、演算処理用画像Ｅ１を描画する際には、表示出力用画像Ｄで用いられる敵オブジェクトＯＢ１−１に替えて、敵オブジェクトＯＢ１−１の頂点数を減らした敵オブジェクトＯＢ１−２を用いて描画する処理を行っている。この理由は、演算処理用画像Ｅ１は、ヒット処理に関する処理を行うために用いられる画像であるので、ヒット処理の処理負荷の軽減や効率性を考えると、表示出力用画像Ｄで用いられるオブジェクトよりも頂点数を減らした簡易なオブジェクトを用いる方が適しているからである。
【００８９】
ところで、本実施形態では、演算処理用画像Ｅ１を生成する際には、各オブジェクトの頂点データの（Ｒ，Ｇ，Ｂ，Ａ）を、そのオブジェクトを特定できる（識別可能な）（Ｒ，Ｇ，Ｂ，Ａ）に決定する。さらに、複数の部位で構成されるオブジェクトについては、オブジェクトを構成する部位を特定できる（識別可能な）（Ｒ，Ｇ，Ｂ，Ａ）に決定する。そして、決定されたオブジェクトの頂点データの（Ｒ，Ｇ，Ｂ，Ａ）に基づいて、演算処理用画像Ｅ１を生成する処理を行っている。
【００９０】
つまり、本実施形態では、演算処理用画像Ｅ１を生成する場合には、複数のオブジェクト単位で色分けし、さらに、オブジェクトの部位単位で色分けする処理を行っている。
【００９１】
例えば、図５（Ａ）に示すように、各オブジェクトを識別するＩＤを、Ｒ値、Ｇ値で決定し、オブジェクトの部位をＢ値で決定し、ヒットタイプをＡ値で決定する。なお、このヒットタイプは、複数のオブジェクトを、グループ化したものであり、例えば、「キャラクタ」というグループ、「背景」というグループ、「キャラクタ、背景以外のオブジェクト」という３種のグループに分けることができる。
【００９２】
例えば、図５（Ｂ）に示すように、敵キャラクタＯＢ１−２の頭部オブジェクトは、ＩＤ＝１、部位＝１、ヒットタイプ＝１であるので、敵キャラクタＯＢ１−２の頭部オブジェクトＦ１の頂点データの（Ｒ，Ｇ，Ｂ，Ａ）は（１，１，１，１）と決定される。
【００９３】
以上のように、オブジェクト単位で（Ｒ，Ｇ，Ｂ，Ａ）を決定し、さらに、オブジェクトが複数の部位で構成されている場合には、部位単位での（Ｒ，Ｇ，Ｂ，Ａ）が決定される。そして、決定された（Ｒ，Ｇ，Ｂ，Ａ）に基づいて演算処理用画像Ｅ１を生成する。
【００９４】
つまり、本実施形態では、画像生成部１２０によって、表示出力用画像Ｄ、演算処理用画像Ｅ１とが次のように生成される。まず、本実施形態では、ワールド座標系（３次元のオブジェクト空間）に、表示出力用のオブジェクト（例えば、ＯＢ１−１）を配置させ、仮想カメラを用いて、表示出力用画像Ｄを描画する処理を行う。同様に、ワールド座標系に、演算処理用のオブジェクト（例えば、ＯＢ１−２）を配置させ、仮想カメラを用いて、演算処理用画像Ｅ１を描画する処理を行う。本実施形態では、同一の仮想カメラの位置、向き、画角に基づいて、表示出力用画像Ｄと、演算処理用画像Ｅ１とを生成する処理を行う。
【００９５】
なお、演算処理用画像Ｅ１を生成する際には、表示出力用画像Ｄよりも画角を広げて描画するようにしてもよい。このようにすれば、広範囲でのヒット判定を行うことができる。
【００９６】
また、本実施形態では、演算処理用画像Ｅ１を生成する際には、攻撃側のオブジェクトである弾オブジェクト（特定オブジェクト）を含まないように、画像を生成する処理を行う。なぜなら、弾オブジェクトが、弾オブジェクト以外のオブジェクトに対してヒットしたか否かを判定する必要があるからである。
【００９７】
そして、表示出力用画像Ｄを生成する際には、頂点処理後のピクセル処理を行う。一方、演算処理用画像Ｅ１を生成する際には、頂点処理後のピクセル処理は行わないようにし、オブジェクト単位（部位オブジェクト単位）での色分けを保つようにしている。つまり、演算処理用画像のオブジェクト単位（部位オブジェクト単位）でのポリゴンの頂点色は全て同一であり、オブジェクト単位でのポリゴンの色が一様になるように制御している。なぜなら、ピクセル処理によってピクセル単位で色が変更されてしまうと、正確なヒット判定処理を行うことができなくなるからである。
【００９８】
なお、本実施形態では、図６（Ａ）に示すように表示出力用画像Ｄが画像バッファ２２１に描画され、図６（Ｂ）に示すように、演算処理用画像Ｅ１が演算処理用の画像バッファ２３１に描画される。本実施形態では、演算処理用の画像バッファ２３１（２３２、２３３も同様）は、縮小用バッファ（１／８フレームバッファ）であるので、演算処理用画像Ｅの解像度は、表示出力用画像Ｄの解像度よりも低くなる。しかし、演算処理用画像は、プレーヤが違和感を感じない程度のヒット処理が可能であるので問題は生じない。また、縮小用バッファを用いれば、演算処理用画像Ｅを生成するため描画処理（ＧＰＵの処理負荷）を軽減することができるメリットがある。
【００９９】
また、図６（Ａ）に示すＺバッファ２２２は、表示出力用画像Ｄの各画素のＺ値（奥行き値、深度値）を格納し、また、図６（Ｂ）に示すＺバッファ２３３は、演算処理用画像Ｅ１の各画素のＺ値を格納する。
【０１００】
また、図３（Ａ）に示すように、表示出力用画像Ｄに入力部１６０によって指示される指示位置Ｐに、照準（指示マーカーの一例）Ｍを描画する処理を行っている。つまり、プレーヤは、表示出力用画像Ｄを見ながら、シューティング対象に対する狙いを定めて、照準Ｍを制御する入力操作を行うことになる。一方、図３（Ｂ）に示すように、演算処理用画像Ｅ１では、照準Ｍは描画されない。ヒット処理に影響を及ぼしてしまうからである。
【０１０１】
なお、図４（Ａ）に示すモデルデータを構成するオブジェクトの各頂点の頂点データ（Ｒ，Ｇ，Ｂ，Ａ）が、図５（Ｂ）に示すように予め定義された（Ｒ，Ｇ，Ｂ，Ａ）の情報（或いは一部の情報）を含むように定義してもよい。
【０１０２】
以上のように、本実施形態では、表示出力用画像Ｄと、演算処理用画像Ｅ１を生成している。
【０１０３】
（３）ヒット処理
次に、本実施形態におけるヒット処理について説明する。本実施形態では、演算処理用画像Ｅ１において、指示位置Ｑに基づくヒットエリア（所定範囲）Ｎにおいて、１又は複数の画素を選択（抽出）する処理を行い、選択された画素の色情報又は半透明情報（Ｒ，Ｇ，Ｂ，Ａ）に基づいて、弾オブジェクトが所与のオブジェクトにヒットしたか否かを判定する処理を行っている。
【０１０４】
例えば、本実施形態では、図７（Ａ）（Ｂ）に示すように、入力部１６０からの入力情報に基づいて、表示出力用画像Ｄにおける指示位置Ｐと、演算処理用画像Ｅ１における、指示位置Ｐに対応する指示位置Ｑを取得する。なお、表示出力用画像Ｄ上の指示位置Ｐを、演算処理用画像Ｅ１上の指示位置Ｑに変換する処理を行って求めてもよい。例えば、演算処理用画像Ｅ１の大きさは表示出力用画像Ｄの１／８の大きさであるので、大きさの比率に基づいて指示位置Ｑを求めることができる。
【０１０５】
また、本実施形態では、図８（Ａ）〜（Ｃ）に示すように、演算処理用画像Ｅ１において、指示位置Ｑを中心とするヒットエリアＮにおいて複数の画素を選択する。例えば、図８（Ａ）に示すように、所定間隔で画素を選択するようにしてもよい。また、図８（Ｂ）に示すように、ヒットエリアＮにおいて、所定数の画素をランダムに選択するようにしてもよい。
【０１０６】
なお、本実施形態では、照準Ｍの形状及び大きさの少なくとも１つに基づいてヒットエリアＮを設定している。したがって、表示出力用画像Ｄにおいてプレーヤが狙いを定めた照準Ｍの形状の大きさに対応したオブジェクトに対して、ヒットさせるように制御することができる。
【０１０７】
例えば、図７（Ａ）に示すように、円形の照準Ｍである場合には、ヒットエリアＮを円形にしている。
【０１０８】
また、表示出力用画像Ｄで表示される照準Ｍの形状が菱形である場合には、図８（Ｃ）に示すように、ヒットエリアＮを菱形にする。かかる場合には、演算処理用画像Ｅ１において指示位置Ｑの画素と、菱形の頂点（頂点付近）の画素とを選択するようにしてもよい。
【０１０９】
そして、本実施形態では、ヒットエリア内から画素が選択されると、画素の（Ｒ，Ｇ，Ｂ，Ａ）（画素データの一例）に基づいて、弾オブジェクトと、所与のオブジェクトとのヒット判定を行う。
【０１１０】
例えば、図８（Ａ）に示すように、選択した画素Ｋ１〜Ｋ９であるとすると、各画素Ｋ１〜Ｋ９それぞれの（Ｒ，Ｇ，Ｂ，Ａ）に基づいて特定したオブジェクトにヒットしたと判定する。また、ヒットしたと判定されたオブジェクトのヒット部位を、各画素Ｋ１〜Ｋ９それぞれの（Ｒ，Ｇ，Ｂ，Ａ）に基づいて判定する。
【０１１１】
例えば、画素Ｋ１の色情報（Ｒ，Ｇ）＝（１，１）であるとすると、図５（Ｂ）に示すように、色情報（Ｒ，Ｇ）＝（１，１）は、ＩＤ＝１のオブジェクトであるので、敵オブジェクトＯＢ１であると決定することができる。つまり、画素Ｋ１の色情報に基づいて、画素Ｋ１が示すオブジェクトが敵オブジェクトＯＢ１であると決定することができる。そして、本実施形態では、弾オブジェクトが決定された敵オブジェクトＯＢ１にヒットしたと判定する。また、図５（Ｂ）に示すように、画素Ｋ１の色情報Ｂ値＝１である場合には、頭部Ｆ１であると決定することができる。つまり、画素Ｋ１の色情報に基づいて、画素Ｋ１が示すオブジェクトが敵オブジェクトＯＢ１の頭部Ｆ１であると決定できる。したがって、本実施形態では、弾オブジェクトが敵オブジェクトＯＢ１の頭部Ｆ１にヒットしたと判定する。つまり、画素Ｋ１の色情報及び半透明情報（Ｒ，Ｇ，Ｂ，Ａ）が（１，１，１，１）である場合には、図５（Ｂ）に示すように、弾が敵オブジェクトＯＢ１の頭部Ｆ１にヒットしたと判定する処理を行う。
【０１１２】
なお、本実施形態では、Ｚバッファ２３３の画素Ｋ１〜Ｋ９それぞれの奥行き値を参照し、ヒットタイプ毎に、最も投影面に近い（最も視点に対して手前にある）オブジェクトに対してヒットしたと判定してもよい。
【０１１３】
例えば、画素Ｋ１〜Ｋ９の半透明情報Ａに基づいて、画素Ｋ１〜Ｋ９をヒットタイプ毎に分類する。例えば、「キャラクタ」のヒットタイプ（Ａ＝１）の画素が、Ｋ１、Ｋ２である場合には、画素Ｋ１と、画素Ｋ２との奥行き値を参照し、仮想カメラに対して手前にある画素が画素Ｋ１である場合には、画素Ｋ１の（Ｒ，Ｇ，Ｂ，Ａ）で決定されるキャラクタにヒットしたと判定する。同様に、背景のヒットタイプ（Ａ＝２）、他のオブジェクトのヒットタイプ（Ａ＝３）について、いずれのオブジェクトにヒットしたのかを判定する。
【０１１４】
また、本実施形態では、入力部１６０の引き金が引かれたタイミングで（攻撃入力情報を検出したタイミングで）、ヒット判定処理を行っている。つまり、引き金が引かれるタイミングで、オブジェクト空間において、弾がオブジェクトにヒットしたものとみなしている。
【０１１５】
そして、本実施形態では、選択した画素の（Ｒ，Ｇ，Ｂ，Ａ）が示すオブジェクトが敵オブジェクトである場合には、敵オブジェクトに応じた所与の演算処理を行う。例えば、敵オブジェクトがヒット攻撃を受けるヒット処理を行う。より具体的には、敵オブジェクトの体力値などのパラメータを制御する処理（例えば減算処理）や、敵オブジェクトが攻撃を受けるエフェクト処理（攻撃を受ける動作処理）を行う。また、弾オブジェクトを敵オブジェクトにヒットさせる表示出力用画像を生成する処理を行う。なお、敵オブジェクトをヒットさせることによって、プレーヤキャラクタの得点を加算するなどの処理を行う。
【０１１６】
以上のように、本実施形態のヒット処理によれば、広範囲におけるヒット判定の負荷を軽減することができる。例えば、従来の手法では、図９（Ａ）に示すように、指示位置Ｐに基づく照準Ｍが表示出力用画像に表示されていた場合、図９（Ｂ）に示すように、指示位置Ｐに基づくオブジェクト空間のレイＶとオブジェクトとのヒット判定を行ったり、図９（Ｃ）に示すように、ヒットボリュームＳＶとオブジェクトとのヒット判定を行っていた。このような、３次元のオブジェクト空間における軌跡や、ヒットボリュームを用いる演算は、処理負荷が高いという問題があった。
【０１１７】
一方、本実施形態では、３次元空間内で、弾と各オブジェクトとのヒット判定を行わずに、選択された画素の（Ｒ，Ｇ，Ｂ，Ａ）に基づいて、弾とオブジェクトとのヒット判定処理を行うことができる。したがって、本実施形態の手法によれば、３次元の演算処理が不要になるので、従来よりも処理負荷が軽減されるという効果がある。
【０１１８】
なお、本実施形態では、オブジェクト空間内に弾オブジェクトを存在させずに、ヒット処理を行うようにしてもよい。つまり、演算処理用画像において選択された画素の（Ｒ，Ｇ，Ｂ，Ａ）に基づいて、弾オブジェクトが所与のオブジェクトにヒットしたとみなしてヒット判定処理を行ってもよい。
【０１１９】
（４）エフェクト処理
本実施形態では、弾オブジェクトが敵オブジェクト、箱などの所与のオブジェクトにヒットしたと判定された場合に、表示出力用画像Ｄに対してエフェクト処理（動作処理）を行う。例えば、図１０に示すように、箱オブジェクトＴＯＢに弾がヒットしたと判定されると、箱オブジェクトＴＯＢを構成する各ポリゴンは、それぞれの法線ベクトルＮＶ１〜ＮＶ６に基づいて、箱が破壊されるエフェクト処理を行う。例えば、本実施形態では、法線ベクトルＮＶ１〜ＮＶ６に基づいて、適切な方向に破片オブジェクト（パーティクル）を離散させるエフェクト処理を行うようにしている。
【０１２０】
また、本実施形態では、ヒット位置のオブジェクトの属性情報（木材、金属、布などの素材情報）に基づいて、エフェクト処理を行っている。例えば、箱オブジェクトＴＯＢの素材が木である場合には、箱オブジェクトＴＯＢに替えて、木用の破片オブジェクトを離散させるエフェクト処理を行うようにする。
【０１２１】
本実施形態では、これらの法線ベクトルや属性情報を定義した（Ｒ，Ｇ，Ｂ，Ａ）に基づいて、演算処理用画像（エフェクト用画像）Ｅ２を生成する。そして、弾オブジェクトが所与のオブジェクトにヒットしたと判定された場合に、演算処理用画像Ｅ２の指示位置Ｑに対応する画素の（Ｒ，Ｇ，Ｂ，Ａ）に基づいて、エフェクト処理を行う。
【０１２２】
この演算処理用画像Ｅ２は、演算処理用画像Ｅ１と同様に生成されるが、オブジェクトの頂点データ（Ｒ，Ｇ，Ｂ，Ａ）は、法線ベクトルや属性情報を定義した（Ｒ，Ｇ，Ｂ，Ａ）に基づいて決定される。
【０１２３】
具体的には、図１１（Ａ）に示すように、オブジェクトの頂点の（Ｒ，Ｇ，Ｂ，Ａ）の（Ｒ，Ｇ，Ｂ）は、オブジェクトを構成するポリゴンの法線ベクトルの（ｘ，ｙ，ｚ）に対応し、Ａ値は属性情報に対応する。図１１（Ｂ）に示すように、法線ベクトル（ｘ、ｙ、ｚ）＝（５，１０，１２）であって、属性情報が金属である場合の頂点データの（Ｒ，Ｇ，Ｂ，Ａ）は、（５，１０，１２，１）と決定される。
【０１２４】
そして、本実施形態では、エフェクト処理は次のように処理を行う。例えば、演算処理用画像Ｅ１の指示位置Ｑに基づいて選択された画素Ｋ１の（Ｒ，Ｇ，Ｂ，Ａ）に基づいて、弾オブジェクトが例えば箱オブジェクトＴＯＢにヒットされたと判定されると、演算処理用画像Ｅ２の当該指示位置Ｑに基づき選択された画素Ｋ１の（Ｒ，Ｇ，Ｂ，Ａ）に基づいて、箱オブジェクトＴＯＢの法線ベクトルを求め、属性情報を決定する。例えば、画素Ｋ１の（Ｒ，Ｇ，Ｂ）に基づいて箱オブジェクトＴＯＢの法線ベクトルを求め、画素Ｋ１のＡ値に基づいて、箱オブジェクトＴＯＢの属性情報を決定する。そして、求めた法線ベクトルと、決定された属性情報に基づいて、箱オブジェクトＴＯＢに替えて、破片オブジェクトを離散させるエフェクト処理を行う。
【０１２５】
このようにすれば、エフェクト処理に必要な情報を、画素の（Ｒ，Ｇ，Ｂ，Ａ）のデータで保持することができ、ヒット処理に応じたエフェクト処理を容易に行うことができる。
【０１２６】
なお、本実施形態では、演算処理用画像Ｅ２を用いて、弾がヒットしたオブジェクトを破壊させる破壊音を発生させるような音処理を行うようにしてもよい。例えば、弾が箱オブジェクトＴＯＢにヒットした場合に、演算処理用画像Ｅ２の指示位置Ｑに基づいて選択された画素Ｋ１の（Ｒ，Ｇ，Ｂ，Ａ）が示す法線ベクトルの方向に応じた音を発生させてもよい。
【０１２７】
また、演算処理用画像Ｅ２の指示位置Ｑに基づいて選択された画素Ｋ１のＡが示す属性情報に応じた音を発生させるようにしてもよい。このようにすれば、臨場感溢れる演出を提供することができる。
【０１２８】
また、本実施形態では、Ｚバッファ２３３に格納される奥行き値を参照して、エフェクト処理を行うようにしてもよい。例えば、演算処理用画像Ｅ１における指示位置に基づき選択される画素Ｋ１に基づき、弾が箱オブジェクトＴＯＢにヒットしたと判定された場合には、Ｚバッファ２３３の画素Ｋ１の奥行き値を参照し、参照された奥行き値に破片オブジェクト（エフェクトオブジェクト）を配置させる処理を行う。このようにすれば、奥行きに応じたエフェクト処理を行うことができる。
【０１２９】
なお、本実施形態では、表示出力用画像Ｄについて、エフェクト処理に関する画像生成処理を行っている。演算処理用画像Ｅについて、エフェクト処理を行うと、ピクセル単位で色情報等が変更されてしまい、正確なヒット処理を行うことができなるからである。
【０１３０】
（５）マルチプレーヤモード
本実施形態では、複数のプレーヤが協力して、敵オブジェクトを攻撃できる環境を提供している。
【０１３１】
例えば、図１２に示すように、第１のプレーヤの指示位置をＰ１、第２のプレーヤの指示位置をＰ２とすると、指示位置Ｐ１から指示位置Ｐ２までの距離が所定距離以内になると、共通指示位置ＰＡが発生する。つまり、表示出力用画像Ｄにおいて、共通指示位置ＰＡに共通照準（共通ガンサイト）ＭＡを描画する処理を行う。
【０１３２】
そして、本実施形態では、共通照準ＭＡに基づいて、弾オブジェクトが所与のオブジェクトにヒットしたか否かを判定する場合には、演算処理用画像Ｅの共通指示位置ＱＡに基づくヒットエリア（第２の所定範囲）ＮＡ内における画素を選択し、選択された複数の画素それぞれの（Ｒ，Ｇ，Ｂ，Ａ）に基づいて、弾オブジェクトが所与のオブジェクトにヒットしたか否かを判定する処理を行う。
【０１３３】
また、本実施形態では、共通照準ＭＡの大きさを、照準Ｍ１、Ｍ２よりも大きなサイズにしている。そして、本実施形態では、演算処理用画像ＥのヒットエリアＮＡは、共通照準ＭＡの大きさに応じて決めるので、各プレーヤが単独で照準Ｍ１、Ｍ２を狙うヒットエリアＮ１、Ｎ２よりもヒットエリアＮＡが広くなり、共通照準ＭＡが現れた場合には、敵オブジェクトをヒットさせる確率（命中度）が高まる。
【０１３４】
（６）ポリゴンを上書き描画する例
本実施形態では、図１３（Ａ）に示すように、所定のゲーム状況になると、表示出力用画像Ｄにおいて敵オブジェクトの狙いを誘導する所定エリアＴＭを描画して、プレーヤに所定エリアＴＭをヒットさせることを促すようにしている。この所定エリアＴＭに弾がヒットすると、敵オブジェクトに大きなダメージを与えて倒すことができる。
【０１３５】
かかる場合には、図１３（Ｂ）に示すように、演算処理用画像Ｅ１において、の所定エリアＴＭに相当するエリアＳ１の全画素について、所定エリアＴＭに対応する色情報及び半透明情報（Ｒ，Ｇ，Ｂ，Ａ）を上書き描画する。つまり、演算処理用画像を生成する最終段階で、エリアＳ１の全画素について、同一色、同一のα値描画する処理を行う。このようにすれば、表示出力用画像Ｄにおいて所定エリアＴＭが表示されている場合には、敵オブジェクトＯＢ１の動作に関係なく、確実に所定エリアＴＭに対するヒット処理を実現できる。
【０１３６】
（７）Ｚ値の制御
本実施形態では、演算処理用の奥行き値をＺバッファに格納する場合には、ゲーム状況に応じて、３次元のオブジェクト空間における奥行き値とは異なる値を格納する処理を行っている。
【０１３７】
例えば、本実施形態では、図１４（Ａ）（Ｂ）に示すように、部位Ｃ１（腕部位）に防御機能があり（つまり弾がヒットしてもダメージを受けない）、部位Ｃ２が弱点部位（つまり弾がヒットするとダメージを大きく受ける）であるオブジェクトＯＢ３を、オブジェクト空間に配置させる。そして、例えば、敵キャラクタＯＢ３は図１４（Ａ）（Ｂ）のように、部位Ｃ１を動作させる処理を行っている。かかる場合には、プレーヤは部位Ｃ１ではなく部位Ｃ２を狙うように、指示位置を制御する入力操作を要する。本実施形態では、操作の不得手なプレーヤに対して、攻撃が容易になるように、演算処理用画像のＺ値を次のように制御している。
【０１３８】
例えば、図１５（Ａ）（Ｂ）に示すように、部位Ｃ１が開いている状態（図１４（Ａ）の状態）である場合について説明する。かかる場合、部位Ｃ１が開いているので、プレーヤは部位Ｃ２を狙って攻撃しようとする。
【０１３９】
例えば、図１４（Ａ）に示すように、オブジェクト空間において、部位Ｃ１は部位Ｃ２よりも視点に対して手前にあるので、表示出力用画像Ｄを生成する際は、部位Ｃ２よりも部位Ｃ１が手前になるように描画する。つまり、図１５（Ａ）に示すように、表示出力用画像ＤのＺ画像Ｄ２は、部位Ｃ１は部位Ｃ２よりも手前になるように隠面消去（デプスソート）が行われる。一方、演算処理用画像Ｅ（Ｅ１、Ｅ２）のＺ画像Ｅ３を生成する際は、オブジェクト空間において、部位Ｃ１は部位Ｃ２よりも視点に対して手前にあっても、部位Ｃ２が、部位Ｃ１よりも視点に対して手前になるように描画する。例えば、図１５（Ｂ）に示すように、演算処理用画像Ｅ１、Ｅ２のＺ画像Ｅ３は、部位Ｃ２は部位Ｃ１よりも手前になるように、隠面消去が行われる。
【０１４０】
このようにすれば、プレーヤは、表示出力用画像Ｄにおいて、本来は見ることができないＣ２の一部分についても、ヒット攻撃を行うことができるので、敵キャラクタＯＢ３の弱点の部位Ｃ２を狙い易くなり、効果的に敵を倒すことが出来る。
【０１４１】
（８）物理演算との切り替え
本実施形態では、武器に応じて、物理演算に基づくヒット処理と、演算処理用の画像Ｅを用いたヒット処理とを切り替えている。
【０１４２】
例えば、図１６（Ａ）に示すように、大砲ＧＯＢから発射される弾ＳＯＢをオブジェクトＯＢ４に着弾させるような攻撃手法の場合は、オブジェクト空間において、所定距離Ｌを弾ＳＯＢが移動することになる。
【０１４３】
一方、本実施形態では、演算処理用画像Ｅを用いてヒット処理を行う場合には、弾の発射スピードなどに関係なく、トリガが引かれたタイミングで、弾とオブジェクトとのヒット判定を行っている。したがって、大砲ＧＯＢなどの、弾が所定距離Ｌを移動する武器を用いた攻撃には、演算処理用画像Ｅを用いたヒット処理は不向きである。大砲ＧＯＢの場合には、弾の発射スピードなどに応じて、実際に弾がオブジェクトに着弾した瞬間にヒットしたか否かを判定することが望ましいからである。
【０１４４】
そこで、本実施形態では、武器の種類に応じて、演算処理用画像Ｅを用いたヒット処理と、物理演算に基づくヒット処理との切り替えを行っている。
【０１４５】
例えば、本実施形態では、プレーヤキャラクタが使用する武器が、大砲ＧＯＢ（ミサイル）などの距離を有する武器（第１の攻撃オブジェクト）で攻撃する場面では、物理的にヒット処理を実行するプログラム（第１のヒット処理プログラム）を実行する。一方、プレーヤキャラクタが使用する武器が、ハンドガン、ショットガン、マシンガンなどの近距離用の武器（第２の攻撃オブジェクト）で攻撃する場合には、演算処理用画像Ｅを用いたヒット処理を実行するプログラム（第２のヒット処理プログラム）を実行する。つまり、プレーヤキャラクタが使用する武器に応じて、ヒット処理プログラムを切り替える処理を行う。
【０１４６】
このように、本実施形態では、武器に応じて、処理演算負荷のバランスを測りながら適切なヒット処理を行うので、プレーヤは違和感を感じることなく、ゲームプレイを行うことができる。
【０１４７】
３．フローチャート
本実施形態の処理の流れについて、図１７を用いて説明する。本実施形態では、ＣＰＵ側の処理において、各モデルを初期化する際に、各モデルデータにヒットＩＤ、ヒットタイプを割り当てる処理を行う。なお、モデルデータを構成するポリゴンの各頂点カラーには、属性値、部位を特定する値が設定される。これらの値が実際に取り得る値の範囲は０〜１２７であるが、０〜１２７を０．０〜１．０にマッピングした値（０〜１２７の範囲の値を０．０〜１．０の範囲の値に変換した値）を、各モデルデータを構成するポリゴンの各頂点カラーとして設定する。また、ヒットＩＤは、モデルデータそれぞれを識別可能な値が設定される。
【０１４８】
第Ｎフレーム目における描画処理について説明する。まず、ＣＰＵ側の描画処理において、各モデルデータを描画する処理を行う（ステップＳ１１）。各モデルデータ描画する場合には、各モデルデータを描画するタイミングで、各モデルデータに割り当てたヒットＩＤ、ヒットタイプをＧＰＵ（シェーダ）に転送する処理を行う。そして、モデルの描画が終了したか否かを判定する（ステップＳ１２）。モデルの描画が終了していない場合には（ステップＳ１２のＮ）、ステップＳ１１に戻り、モデルの描画が終了している場合には（ステップＳ１２のＹ）、Ｎフレーム目のＣＰＵ側の描画処理を終了する処理を行う。
【０１４９】
そして、ステップＳ１１において、各モデルデータを描画する場合には、モデルデータを描画する度に、ＧＰＵへヒットＩＤ、ヒットタイプの値を転送し、ＧＰＵ（シェーダ）側の描画処理を行う。つまり、ＧＰＵが、ＣＰＵ側から描画要求を受け取ると、描画面Ａ〜Ｃへの描画処理（ステップＳ２１、Ｓ２２、Ｓ２３）を行う。
【０１５０】
まず、ヒットＩＤ、ヒットタイプ、部位を、描画面Ａ（フレームバッファ２３１）に描画する処理を行う（ステップＳ２１）。つまり、ヒットＩＤ、ヒットタイプ、及び、モデルデータに含まれる部位の値を元にした色情報を、描画面Ａへ、そのモデル形状を用いて描画する処理を行う。
【０１５１】
そして、属性、法線を、描画面Ｂに（フレームバッファ２３２）に描画する処理を行う（ステップＳ２２）。つまり、モデルデータに含まれる属性値と、実際に描画するモデルのそれぞれの描画点に対する法線情報を色情報とし、描画面Ｂへ、そのモデル形状を用いて描画する処理を行う。
【０１５２】
そして、深度値（奥行き値）を、描画面Ｃ（Ｚバッファ２３３）に描画する処理を行う（ステップＳ２３）すなわち、モデル形状を用いて描画面Ｃへ深度情報を描画する。
【０１５３】
次に、ＣＰＵ側における第Ｎ＋１フレーム目におけるヒット処理について説明する。なお、以下の説明は、各ヒットタイプに１箇所にだけヒットするものとして、処理を行う例である。
【０１５４】
まず、指示される範囲（ヒットエリア）内のピクセルを走査する（ステップＳ３１）。そして、深度値から投影面に近いピクセルを割り出す（選択する）（ステップＳ３２）。すなわち、第Ｎフレーム目において描画された描画面Ｃにおいて、指示される範囲内のピクセルのうち、深度値に基づき投影面に近い画素を割り出す。そして、ヒットタイプ毎に投影面に近い点の画面座標を保持する（ステップＳ３３）。そして、走査を終了する（ステップＳ３４）。
【０１５５】
次に、ヒットタイプ毎の処理に移行する（ステップＳ３５）。まず、ステップＳ３３において保持された当該ヒットタイプの画面座標における、第Ｎフレームにおいて描画された描画面Ａを参照してヒットＩＤを抽出する処理を行う（ステップＳ３６）。すなわち、抽出されたヒットＩＤに対応するモデルデータにヒットがあったものと判定する。
【０１５６】
次に、深度値（０．０〜１．０の値域の値）からＺ値（３次元の奥行き値）を求め（ステップＳ３７）、ステップＳ３３において保持された当該ヒットタイプの画面座標とＺ値から逆透視変換を行い、３Ｄ座標を求める（ステップＳ３８）。そして、第Ｎフレームにおいて描画された描画面Ｂを参照して、ステップＳ３８で求められた３Ｄ座標における法線を算出する（ステップＳ３９）。そして、第Ｎフレームにおいて描画された描画面Ｂを参照して、ステップＳ３８で求められた３Ｄ座標における属性を求める。そして、求められた法線、属性に基づいて、エフェクト処理を行い、法線、属性に基づいてサウンドの発音させる音処理を行う（ステップＳ４１）。以上で処理が終了する。
【０１５７】
４．応用例
（１）他のゲームへの応用
本実施形態では、シューティングゲームに関するヒット処理について説明を行ったが、他のゲームのヒット処理に応用してもよい。例えば、対戦格闘ゲーム、レースゲーム、ロールプレイングゲーム、スポーツゲーム、アクションゲーム、音楽ゲーム、シミュレーションゲームなど、種々のゲームにおけるヒット処理に応用してもよい。
【０１５８】
例えば、プレーヤキャラクタと敵キャラクタとが対戦格闘を行う対戦格闘ゲームの場合には、プレーヤキャラクタ、敵キャラクタに対して相手キャラクタを含むヒット処理用の画像Ｅを生成する。
【０１５９】
通常、対戦格闘ゲームでは、図１８に示すように、３人称視点（仮想カメラＶＣ）で、プレーヤキャラクタＣＨ１と敵キャラクタＣＨ２とを含む画像を生成し、生成された画像を表示出力用画像として表示部に表示させる。
【０１６０】
対戦格闘ゲームで本実施形態のヒット処理を応用する場合には、各キャラクタの視点から見える演算処理用の画像を生成する。例えば、図１９（Ａ）に示すように、プレーヤキャラクタＣＨ１が敵キャラクタＣＨ２とのヒット処理を行う場合には、プレーヤキャラクタ用の仮想カメラＶＣ１（一人称視点）に基づいて、敵キャラクタＣＨ２を含む演算処理用画像Ｅ１−１を生成する。一方、図１９（Ｂ）に示すように、敵キャラクタＣＨ２がプレーヤキャラクタＣＨ１とのヒット処理を行う場合には、敵キャラクタＣＨ２用の仮想カメラＶＣ２（一人称視点）に基づいて、プレーヤキャラクタＣＨ１を含む演算処理用画像Ｅ１−２を生成する。
【０１６１】
そして、入力部から、プレーヤキャラクタＣＨ１が攻撃に関する入力情報を受け付けると、入力情報に基づいてプレーヤキャラクタＣＨ１が敵キャラクタＣＨ２に対する攻撃位置Ｉ１を求め、演算処理用画像Ｅ１−１の攻撃位置Ｉ１の画素Ｊ１（攻撃位置Ｉ１に基づくヒットエリア内の１又は複数の画素Ｊ１〜Ｊｋでもよい）の画素データ（Ｒ，Ｇ，Ｂ，Ａ）と、当該画素Ｊ１（Ｊ１〜Ｊｋ）の奥行き値とに基づいて、プレーヤキャラクタＣＨ１と敵キャラクタＣＨ２とがヒットしたか否かを判定する。
【０１６２】
例えば、攻撃位置Ｉ１に基づき選択された画素の画素データが敵キャラクタを識別する画素データである場合には、プレーヤキャラクタＣＨ１が、敵キャラクタＣＨ２にヒットしたと判定し、敵キャラクタを識別する画素データでない場合には、ヒットしないと判定する。また、攻撃位置Ｉ１に基づき選択された画素の画素データが敵キャラクタを識別する画素データである場合、かつ、攻撃位置Ｉ１に基づき選択された画素の奥行き値が所定奥行き範囲内の値である場合にプレーヤキャラクタＣＨ１が、敵キャラクタＣＨ２にヒットしたと判定してもよい。
【０１６３】
一方、敵キャラクタＣＨ２の攻撃によって、敵キャラクタＣＨ２がプレーヤキャラクタＣＨ１にヒットしたか否かの判定も、同様に、演算処理用画像Ｅ１−２に基づいて判定する。このようにすれば、瞬時にヒット処理を行うことができる。
【０１６４】
（２）なお、本実施形態では、演算処理用画像Ｅ１、Ｅ２、Ｚ画像Ｅ３を生成する処理について説明したが、１つの演算処理用画像において、オブジェクトを識別する情報、部位を識別する情報、法線ベクトル、属性情報、奥行き値それぞれを定義するようにしてもよい。また、演算処理用画像は、表示出力用画像と同じサイズのバッファに描画するようにしてもよい。また、１つの画像を生成し、生成された画像を表示処理用と共に演算処理用としてもよい。
【０１６５】
（３）タッチパネル型ディスプレイ
本実施形態では、入力部１６０と共に表示部１９０としても機能するタッチパネル型ディスプレイを用いて処理を行ってもよい。なお、タッチパネル型ディスプレイへの接触操作は、タッチペンなどの入力機器を用いて行っても良いし、指先を用いて行ってもよい。例えば、タッチパネル型ディスプレイで検出された接触位置を指示位置（照準位置）として取得すればよい。
【０１６６】
例えば、２次元オブジェクト（スプライト）それぞれを識別するＩＤ（ヒットＩＤ）に対応する色情報を用いて、２次元オブジェクトを描画する。つまり、２次元オブジェクトそれぞれを識別する色情報によって、各２次元オブジェクトを色分けして描画する。
【０１６７】
そして、タッチパネル型ディスプレイにおいて検出された接触位置を指示位置とし、指示位置に対応する画素（指示位置に基づく所定範囲内の１又は複数の画素）をスキャンし、スキャンされた画素の色情報に基づいてオブジェクトを決定する処理を行う。
【０１６８】
そして、決定されたオブジェクトが、例えば敵オブジェクトである場合には、敵オブジェクトのパラメータを制御する処理、敵オブジェクトが攻撃を受ける動作処理、敵オブジェクトに対してエフェクト処理等を行う。このようにすれば、敵オブジェクトが複雑な形状であっても、指示位置に対応する画素の画素データに基づいて敵オブジェクトを特定することができるので、処理負荷を軽減させてその形状に応じた細やかな処理を行うことができる。
【符号の説明】
【０１６９】
１００  処理部、１１０  オブジェクト空間設定部、１１１  取得部、１１２  決定部、１１３  演算処理部、１１３−１  ヒット判定部、１１３−２  エフェクト処理部、
１１４  移動・動作処理部、１１５  ゲーム演算部、
１１６  設定部、１１７  指示位置制御部、
１２０  画像生成部、１３０  音処理部、
１６０  入力部、１６２  検出部、１８０  情報記憶媒体、１９０  表示部、
１９２  音出力部、１９６  通信部、
２００  記憶部、２１０  主記憶部、
２２１  画像バッファ、２２２  Ｚバッファ、
２３１  画像バッファ（描画面Ａ）、２３２  画像バッファ（描画面Ｂ）、
２３１  Ｚバッファ（描画面Ｃ）
【図１】
2011053838.tif 000003
【図２】
2011053838.tif 000004
【図３】
2011053838.tif 000005
【図４】
2011053838.tif 000006
【図５】
2011053838.tif 000007
【図６】
2011053838.tif 000008
【図７】
2011053838.tif 000009
【図８】
2011053838.tif 000010
【図９】
2011053838.tif 000011
【図１０】
2011053838.tif 000012
【図１１】
2011053838.tif 000013
【図１２】
2011053838.tif 000014
【図１３】
2011053838.tif 000015
【図１４】
2011053838.tif 000016
【図１５】
2011053838.tif 000017
【図１６】
2011053838.tif 000018
【図１７】
2011053838.tif 000019
【図１８】
2011053838.tif 000020
【図１９】
2011053838.tif 000021