説明

プログラム、情報記憶媒体、及び、画像生成装置

【課題】従来よりも処理負荷を軽減させて、処理対象のオブジェクトを決定して当該オブジェクトについて所与の演算処理を行うことが可能なプログラム、情報記憶媒体、及び画像生成装置を提供すること。
【解決手段】複数のオブジェクトそれぞれを識別する画素データに基づいて、当該複数のオブジェクトを含む画像を生成する処理を行い、入力部からの入力情報に基づいて、前記画像の指示位置を取得し、指示位置に対応する画素の画素データに基づいて、当該画素が示すオブジェクトを決定する処理を行い、決定されたオブジェクトに応じた所与の演算処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、及び、画像生成装置に関する。
【背景技術】
【0002】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内(仮想的な3次元空間)において仮想カメラ(所与の視点)から見える画像を生成する画像生成装置(ゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【0003】
例えば、プレーヤが入力部を用いて、オブジェクト空間(3次元空間)において、弾を発射させて敵キャラクタを射撃するシューティングゲームの画像を生成する画像生成装置が存在する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平11−259686
【発明の概要】
【発明が解決しようとする課題】
【0005】
このような従来の画像生成装置では、オブジェクト空間において、弾の移動速度や移動方向に基づき、弾の移動経路を示すレイ(線)と敵オブジェクトとのヒット処理(所与の演算処理の一例)を行っている。つまり、従来のヒット処理は、3次元空間における弾の移動速度や移動方向を毎フレーム演算しながら、レイと敵オブジェクトとのヒット処理を行っていたので、処理負荷が高いという問題があった。
【0006】
本発明は、上記課題に鑑みたものであり、従来よりも処理負荷を軽減させて、処理対象のオブジェクトを決定して当該オブジェクトについて所与の演算処理を行うことが可能なプログラム、情報記憶媒体、及び画像生成装置を提供することにある。
【課題を解決するための手段】
【0007】
(1)本発明は、所与の演算処理を行うプログラムであって、複数のオブジェクトそれぞれを識別する画素データに基づいて、当該複数のオブジェクトを含む画像を生成する処理を行う画像生成部と、入力部からの入力情報に基づいて、前記画像の指示位置を取得する取得部と、前記指示位置に対応する画素の画素データに基づいて、当該画素が示すオブジェクトを決定する処理を行う決定部と、前記決定部によって決定された前記オブジェクトに応じた所与の演算処理を行う演算処理部として、コンピュータを機能させるプログラムに関する。
【0008】
本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部として、コンピュータを機能させるプログラムを記憶した情報記憶媒体、上記各部を含む画像生成装置に関係する。
【0009】
本発明によれば、指示位置に対応する画素の画素データに基づいて、オブジェクトを決定する処理を行い、決定されたオブジェクトに応じた所与の演算処理を行うので、従来よりも処理負荷を軽減させて、処理対象のオブジェクトを決定して当該オブジェクトについて所与の演算処理を行うことが可能となる。例えば、所与の演算処理とは、決定されたオブジェクトが所与のオブジェクトであるか否かを判定する判定処理、決定されたオブジェクトについてエフェクト処理(動作処理)、決定されたオブジェクトに応じたパラメータ制御等である。
【0010】
(2)また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記画素データは、色情報又は半透明情報を含み、前記色情報又は半透明情報によって、複数のオブジェクトそれぞれを識別するようにしてもよい。本発明によれば、色情報(例えば、RGBの3原色)や、半透明情報(A値(α値))を用いて複数のオブジェクトそれぞれを識別可能な画像を生成するので、簡易に複数のオブジェクトそれぞれを識別することができる。
【0011】
(3)また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記画像生成部が、奥行き値を定義した画素データに基づいて、前記画像を生成し、前記決定部が、前記指示位置に対応する画素の画素データが示す奥行き値に基づいて、オブジェクトを決定する処理を行うようにしてもよい。本発明によれば、奥行きを考慮してオブジェクトを決定する処理を行うので処理効率が高まり、更に処理負荷を軽減させることができる。
【0012】
(4)また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記画像生成部が、オブジェクトを構成する複数の部位それぞれを識別する画素データに基づいて、前記画像を生成し、前記決定部が、前記指示位置に対応する画素の画素データに基づいて、前記オブジェクトを構成する複数の部位のうちいずれかの部位を決定する処理を行い、前記演算処理部が、前記決定部によって決定された前記部位に応じた所与の演算処理を行うようにしてもよい。本発明によれば、指示位置に対応する画素の画素データに基づいて決定された部位に応じた所与の演算処理を行うので、従来よりも処理負荷を軽減させて、処理対象の部位を決定して当該部位に応じた所与の演算処理を行うことが可能となる。
【0013】
(5)また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記画像生成部が、表示出力用画像を生成すると共に、奥行き値を定義した画素データに基づいて前記画像を生成し、前記演算処理部が、前記決定部によって決定された前記オブジェクトが所与のオブジェクトである場合に、前記表示出力用画像において、前記指示位置に対応する画素の画素データが示す奥行き値に基づいて、前記オブジェクトに対してエフェクト処理を行うようにしてもよい。本発明によれば、画像の指示位置に対応する画素の画素データが示す奥行き値に基づいて、エフェクト処理を行うので、処理負荷を軽減させて奥行きを考慮したエフェクトを表現することができる。
【0014】
(6)また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記画像生成部が、表示出力用画像を生成すると共に、法線ベクトルを定義した画素データに基づいて、前記画像を生成し、前記演算処理部が、前記決定部によって決定された前記オブジェクトが所与のオブジェクトである場合に、前記表示出力用画像において、前記指示位置に対応する画素の画素データが示す法線ベクトルに基づいて、前記オブジェクトに対してエフェクト処理を行うようにしてもよい。本発明によれば、画像の指示位置に対応する画素の画素データが示す法線ベクトルに基づいて、エフェクト処理を行うので、処理負荷を軽減させて法線ベクトルを考慮したエフェクトを表現することができる。
【0015】
(7)また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記画像生成部が、表示出力用画像を生成すると共に、属性情報を定義した画素データに基づいて、前記画像を生成し、前記演算処理部が、前記決定部によって決定された前記オブジェクトが所与のオブジェクトである場合に、前記表示出力用画像において、前記指示位置に対応する画素の画素データが示す属性情報に基づいて、前記オブジェクトに対してエフェクト処理を行うようにしてもよい。本発明によれば、画像の指示位置に対応する画素の画素データが示す属性情報に基づいて、エフェクト処理を行うので、処理負荷を軽減させて属性情報を考慮したエフェクトを表現することができる。例えば、属性情報は素材情報とすることができる。
【0016】
(8)また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記指示位置に基づいて、前記画像において所定範囲を設定する設定部として、コンピュータを更に機能させ、前記決定部が、前記所定範囲内の1又は複数の画素の画素データそれぞれに基づいて、1又は複数のオブジェクトを決定する処理を行い、前記演算処理部が、前記決定部によって決定された1又は複数の前記オブジェクトそれぞれについて、所与の演算処理を行うようにしてもよい。本発明によれば、例えば、所与の演算処理対象の1又は複数のオブジェクトを簡易に決定することができる。
【0017】
(9)また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記画像生成部が、前記指示位置に対応する指示マーカーを描画した表示出力用画像を生成する処理を行い、前記設定部が、前記指示マーカーの形状及び大きさの少なくとも1つに応じた所定範囲を設定するようにしてもよい。本発明によれば、表示出力用画像で描画されるマーカーの形状及び大きさの少なくとも1つに応じた所定範囲を設定するので、表示出力用画像で表示される指示マーカーの形状及び大きさの少なくとも1つを反映した所与の演算処理を行うことができる。
【0018】
(10)また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記取得部が、複数の指示位置を取得した場合に、各指示位置の位置関係に基づいて共通指示位置を発生させるか否かを判定する指示位置制御部として、コンピュータを更に機能させ、前記決定部が、前記共通指示位置を発生させると判定された場合に、前記共通指示位置に対応する画素の画素データに基づいてオブジェクトを決定する処理を行うようにしてもよい。
【0019】
本発明によれば、各プレーヤが互いに協力し合う環境を提供でき、プレーヤに対してマルチプレイへの参加を促すことができる。
【0020】
(11)また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記共通指示位置に基づいて、前記画像において第2の所定範囲を設定する設定部として、コンピュータを更に機能させ、前記決定部が、前記共通指示位置を発生させると判定された場合に、前記第2の所定範囲内の1又は複数の画素の画素データそれぞれに基づいて、1又は複数のオブジェクトを決定する処理を行い、前記演算処理部が、前記決定部によって決定された1又は複数の前記オブジェクトそれぞれについて、所与の演算処理を行うようにしてもよい。
【0021】
本発明によれば、マルチプレイモードにおいて特有の所与の演算処理を行う環境を提供でき、プレーヤに対してマルチプレイへの参加を促すことができる。
【0022】
(12)また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記画像生成部が、表示出力用画像を、表示出力用の画像バッファに描画する処理を行い、前記画像を、前記表示出力用の画像バッファを縮小させた縮小用の画像バッファに描画する処理を行うようにしてもよい。本発明によれば、画像を生成する際の処理負荷を軽減することができる。
【図面の簡単な説明】
【0023】
【図1】本実施形態の画像生成装置の機能ブロック図の例。
【図2】本実施形態の画像生成装置の外観図。
【図3】図3(A)は、表示出力用画像の一例。図3(B)は、演算処理用画像の一例。
【図4】図4(A)は、表示出力用画像で用いられるオブジェクトの一例。図4(B)は、演算処理用画像で用いられるオブジェクトの一例。
【図5】図5(A)(B)は、色情報又は半透明情報によって、複数のオブジェクトそれぞれを識別することを説明するための図。
【図6】図6(A)は、表示出力用画像を格納する画像バッファ、Zバッファの説明図。図6(B)は、演算処理用画像を格納する画像バッファ、Zバッファの説明図。
【図7】図7(A)(B)は、指示位置を取得する手法の説明図。
【図8】図8(A)〜(C)は、ヒットエリア、及び、画素を選択する手法の説明図。
【図9】図9(A)〜(C)は従来のヒット手法の説明図。
【図10】図10は、法線ベクトルの説明図。
【図11】図11(A)(B)は、色情報又は半透明情報によって、法線ベクトル、属性の説明図。
【図12】図12(A)(B)は、共通指示位置を取得する手法の説明図。
【図13】図13(A)は表示出力用画像の一例。図13(B)は、演算処理用画像の一例。
【図14】図14(A)(B)は、敵オブジェクトの一例を示す図。
【図15】図15(A)は、表示出力用画像のZ画像を示す。図15(B)は、演算処理用画像のZ画像を示す。
【図16】図16(A)(B)は、物理演算によってヒット処理を行う例を示す図。
【図17】本実施形態のフローチャート図。
【図18】本実施形態の応用例の説明図。
【図19】図19(A)(B)は、演算処理用画像の説明図。
【発明を実施するための形態】
【0024】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0025】
1.構成
図1に本実施形態の画像生成装置(コンピュータ、端末、ゲーム装置)の機能ブロック図の例を示す。なお本実施形態の画像生成装置は図1の構成要素(各部)の一部を省略した構成としてもよい。
【0026】
入力部160は、プレーヤからの入力情報を入力するための機器であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部160は、プレーヤの入力情報(入力信号)を検出する検出部162を備える。入力部160は、例えば、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどがある。また、入力部160は、所定振動信号に基づいて振動させる処理を行う振動部を備えていてもよい。
【0027】
また、入力部160は、3軸の加速度を検出する加速度センサや、角速度を検出するジャイロセンサ、撮像部を備えた入力機器でもよい。例えば、入力機器は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力機器には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける(プレーヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力機器には、入力機器と一体化されている画像生成装置、携帯型画像生成装置、携帯電話なども含まれる。
【0028】
検出部162は、入力部160からの入力情報を検出する処理を行う。例えば、検出部162は、入力部160の引き金(トリガ)が引かれることによって発生する入力信号を、入力情報(攻撃入力情報)として検出する。例えば、検出部162は、入力部160から照準(ガンサイト)の位置を指示する入力情報(指示入力情報)を検出する。
【0029】
例えば、入力部160が、液晶ディスプレイと、プレーヤの接触位置を検出するためのタッチパネルとが積層されたタッチパネル型ディスプレイで有る場合には、タッチペンなどの指示入力機器や指先の接触位置情報を入力情報として検出する。
【0030】
また、入力部160が撮像部を備える入力機器である場合には、撮像画像におおける指示位置情報を入力情報として検出する。より具体的に説明すると、撮像部は、赤外線フィルタ、レンズ、撮像素子(イメージセンサ)、画像処理回路を含む。ここで、赤外線フィルタは、入力機器の前方に配置され、表示部190に関連付けられて配置されている光源(2つの光源)から入射する光から赤外線のみを通過させる。また、レンズは、赤外線フィルタを透過した赤外線を集光して撮像素子へ出射する。また、撮像素子は、例えば、CMOSセンサやCCDのような固体撮像素子であり、レンズが集光した赤外線を撮像して撮像画像を生成する。そして、撮像素子で生成された撮像画像は、画像処理回路で処理される。例えば、撮像部を備える入力機器は、撮像素子から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報(指示位置情報)を入力情報として検出する。
【0031】
記憶部200は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM、VRAMなどにより実現できる。
【0032】
記憶部200は、画像を記憶する画像バッファ、画像の各ピクセルの奥行き値(深度値、Z値)を記憶するZバッファを備える。画像バッファ221は、表示出力用画像の各画素(ピクセル)の(R,G,B,A)(RGBカラー値、及びα値(A値))が格納される。つまり、表示出力用画像の各画素の色情報(R、G、B)及び半透明情報(α値(A値ともいう))が画像バッファ221に格納される。Zバッファ222は、画像バッファ221に描画される各画素の奥行き値が格納される。
【0033】
また、画像バッファ231(描画面A)は、演算処理用画像の各画素の(R,G,B,A)が格納される。画像バッファ231に格納される演算処理用画像は、オブジェクトのID(ヒットID)、オブジェクトの部位、オブジェクトのヒットタイプなどの情報を示す(R,G,B,A)が格納される。また、画像バッファ232(描画面B)も、演算処理用画像の各画素の(R,G,B,A)が格納される。画像バッファ232に格納される演算処理用画像は、法線ベクトルや、属性情報(オブジェクトの素材を情報など)を示す(R,G,B,A)が格納される。また、Zバッファ233(描画面C)は、画像バッファ231、232に描画される各画素の奥行き値が格納される。なお、画像バッファ231、232、Zバッファ233は、それぞれ縮小用のバッファであり、画像バッファ231、232、Zバッファ233の大きさは、画像バッファ221、Zバッファ222を1/8の大きさである。
【0034】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0035】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0036】
通信部196は外部(例えば他の画像生成装置)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0037】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部200に記憶してもよい。このようにプログラムやデータを受信して画像生成装置を機能させる場合も本発明の範囲内に含む。
【0038】
処理部100(プロセッサ)は、入力部160からの入力情報やプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【0039】
この処理部100は記憶部200内の主記憶部210をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、GPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0040】
処理部100は、オブジェクト空間設定部110、取得部111、決定部112、演算処理部113、移動・動作処理部114、ゲーム演算部115、設定部116、指示位置制御部117、画像生成部(描画部)120、音処理部130を含む。なおこれらの一部を省略する構成としてもよい。
【0041】
オブジェクト空間設定部110は、キャラクタ(敵オブジェクト)の他に、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を、オブジェクト空間に配置設定する処理を行う。
【0042】
ここでオブジェクト空間とは、仮想的なゲーム空間であり、2次元空間、3次元空間の両方を含む。2次元空間とは、例えば2次元座標(X,Y)においてオブジェクトが配置される空間であり、3次元空間とは、例えば3次元座標(X,Y,Z)においてオブジェクトが配置される空間である。
【0043】
例えば、オブジェクト空間設定部110は、オブジェクト空間を3次元空間とした場合には、ワールド座標系にオブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)を配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0044】
取得部111は、入力部160からの入力情報に基づいて、画像(演算処理用画像)の指示位置(カーソル位置)を取得する処理を行う。例えば、取得部111は、入力部160からの入力情報に基づいて、表示出力用画像の指示位置を取得する処理を行ってもよい。例えば、取得部111は、入力部160で検出された指示位置を、画像(演算処理用画像)の指示位置として取得する処理を行う。
【0045】
決定部112は、画像(演算処理用画像)の指示位置に対応する画素の画素データ(ピクセルデータ、ボクセルデータ、色情報(R,G,B)、α値、Z値、輝度などのピクセル単位の値を示すデータ)に基づいて、画素が示すオブジェクトを決定する処理を行う。例えば、指示位置に対応する画素の画素データは、指示位置の画素の画素データ、指示位置周囲の画素の画素データ、及び、指示位置に基づく所定範囲に含まれる1又は複数の画素の画素データの少なくとも1つとすることができる。なお、画素データは、所定値域(0〜127、或いは、0.0〜1.0までの値域など)の値として定義するようにしてもよい。
【0046】
また、決定部112は、指示位置に対応する画素の画素データが示す奥行き値に基づいて、1又は複数のオブジェクトを決定する処理を行う。
【0047】
また、決定部112は、指示位置に対応する画素の画素データに基づいて、オブジェクトを構成する複数の部位のうちいずれかの1又は複数の部位を決定する処理を行う。つまり、決定部112によって、決定されたオブジェクトについて、指示位置に対応する画素の画素データに基づいて、更にそのオブジェクトの部位を決定してもよい。
【0048】
また、決定部112は、所定範囲内の1又は複数の画素の画素データそれぞれに基づいて、1又は複数のオブジェクトを決定する処理を行う。
【0049】
また、決定部112は、共通指示位置を発生させると判定された場合に、共通指示位置に対応する画素の画素データに基づいて、複数のオブジェクトのうち1又は複数のオブジェクトを決定する処理を行う。なお、決定部112は、共通指示位置を発生させると判定された場合に、共通指示位置に対応する画素の画素データに基づいて、決定されたオブジェクトについて、更にそのオブジェクトの部位を決定してもよい。
【0050】
また、決定部112は、共通指示位置を発生させると判定された場合に、第2の所定範囲内の1又は複数の画素の画素データそれぞれに基づいて、1又は複数のオブジェクトを決定する処理を行う。
【0051】
演算処理部113は、決定部112によって決定されたオブジェクトに応じた所与の演算処理を行う。また、演算処理部113は、決定部112によって決定されたオブジェクトの部位に応じた所与の演算処理を行う。例えば、所与の演算処理とは、決定されたオブジェクトが所与のオブジェクト(例えば、敵オブジェクト)であるか否かを判定する処理、決定されたオブジェクトに対して行うエフェクト処理(動作処理)、決定されたオブジェクトに対するパラメータ制御処理などである。
【0052】
より具体的に説明すると、演算処理部113は、ヒット判定部113−1、エフェクト処理部113−2とを含む。
【0053】
例えば、ヒット判定部113−1は、決定部112によって決定されたオブジェクトが所与のオブジェクトであるか否かを判定する。例えば、決定部112によって決定されたオブジェクトが所与のオブジェクト(例えば、敵オブジェクト)であると判定された場合には、特定オブジェクト(例えば、弾オブジェクトなど)が所与のオブジェクトにヒットしたと判定する処理を行う。一方、決定部112によって決定されたオブジェクトが所与のオブジェクトではないと判定された場合には、特定オブジェクトが所与のオブジェクトにヒットしないと判定する処理を行う。なお、特定オブジェクトは、オブジェクト空間に存在していてもよいし、存在しなくてもよい。
【0054】
また、ヒット判定部113−1は、決定部112によって決定されたオブジェクトの部位が、所与のオブジェクトの部位(例えば、敵オブジェクトの頭部)であると判定された場合には、特定オブジェクトが該部位にヒットしたと判定し、決定部112によって決定されたオブジェクトの部位が、所与のオブジェクトの部位(例えば、敵オブジェクトの頭部)でないと判定された場合には、特定オブジェクトが該部位にヒットしないと判定する処理を行ってもよい。
【0055】
また、ヒット判定部113−1は、指示位置に対応する画素の画素データが示す奥行き値に基づいて、決定部112によって決定されたオブジェクトに応じた所与の演算処理を行うようにしてもよい。例えば、決定部112によって決定されたオブジェクトが所与のオブジェクト(例えば、敵オブジェクト)であって、指示位置に対応する画素の画素データが示す奥行き値Zaが所定奥行き範囲内(例えば、Z1≦Za≦Z2)にある場合には、特定オブジェクト(例えば、弾オブジェクト)が、オブジェクト(敵オブジェクト)にヒットしたと判定する処理を行う。一方、決定部112によって決定されたオブジェクトが所与のオブジェクト(例えば、敵オブジェクト)であって、指示位置に対応する画素の画素データが示す奥行き値Zaが所定奥行き範囲内でない場合には、特定オブジェクト(例えば、弾オブジェクト)が、オブジェクト(敵オブジェクト)にヒットしないと判定する処理を行う。
【0056】
例えば、エフェクト処理部113−2は、決定部112によって決定されたオブジェクトが所与のオブジェクトである場合に、表示出力用画像において、指示位置に対応する画素の画素データが示す奥行き値に基づいて、オブジェクトに対してエフェクト処理を行う。
【0057】
また、エフェクト処理部113−2は、決定部112によって決定されたオブジェクトが所与のオブジェクトである場合に、表示出力用画像において、指示位置に対応する画素の画素データが示す法線ベクトルに基づいて、オブジェクトに対してエフェクト処理を行う。
【0058】
また、エフェクト処理部113−2は、決定部112によって決定されたオブジェクトが所与のオブジェクトである場合に、表示出力用画像において、指示位置に対応する画素の画素データが示す属性情報に基づいて、オブジェクトに対してエフェクト処理を行う。
【0059】
移動・動作処理部114は、オブジェクト空間において、オブジェクトを移動・動作させる処理を行う。すなわち入力部160から入力された入力情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、移動速度、加速度、移動量、移動方向などの移動パラメータ)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(例えば、1/60秒)毎に順次求める処理を行う。なおフレームは、オブジェクトの移動・動作処理や画像生成処理を行う時間の単位である。
【0060】
ゲーム演算部115は、種々のゲーム処理を行う。例えば、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、ゲーム終了条件が満たされた場合にゲームを終了する処理、最終ステージをクリアした場合にはエンディングを進行させる処理などがある。
【0061】
また、ゲーム演算部115は、プレーヤキャラクタの所与のパラメータ(体力値)が所定値(0)に達したか否かを判断する処理を行い、プレーヤキャラクタの所与のパラメータ(体力値)が所定値(0)に達した場合に、ゲーム終了と判定する処理を行う。
【0062】
設定部116は、指示位置に基づいて、画像(演算処理用画像)において所定範囲(ヒットエリア)を設定する処理を行う。また、設定部116は、表示出力用画像に描画される指示マーカーの形状及び大きさの少なくとも1つに応じた所定範囲を設定する処理を行う。また設定部116は、共通指示位置に基づいて、画像(演算処理用画像)において第2の所定範囲(第2のヒットエリア)を設定する処理を行う。
【0063】
指示位置制御部117は、取得部111が、複数の指示位置を取得した場合に、各指示位置の位置関係に基づいて共通指示位置を発生させるか否かを判定する処理を行う。
【0064】
画像生成部120は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。画像生成部120が生成する画像は、いわゆる2次元画像であってもよいし、いわゆる3次元画像であってもよい。
【0065】
2次元画像を生成する場合には、例えば、オブジェクト(スプライト)毎に優先度を設定し、設定された優先度が低いオブジェクトから順に描画する。オブジェクト同士が重なる場合には、優先度が低いオブジェクトの上に、優先度の高いオブジェクトを描画する。
【0066】
いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値
等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0067】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、透視変換(投影変換)、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。
【0068】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、ピクセルデータ、ボクセルデータなどの画素データ(色(RGB)、α値、Z値、輝度等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を生成することができる。
【0069】
なお、画像生成部120は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、3次元の画像を生成する場合には、ワールド座標系における仮想カメラの位置(X、Y、Z)又は回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。また、画像生成部120は、仮想カメラを、予め決められた回転角度で回転させてもよい。この場合には、仮想カメラの位置又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0070】
本実施形態では、プレーヤキャラクタの視点(一人称視点)に基づいて画像を生成する処理を行っている(いわゆる、ファーストパーソン・シューティングゲームである)。また、本実施形態では、仮想カメラの移動、向き、画角はプログラムで制御してもよいし、入力部160の入力情報に基づいて仮想カメラの移動、向き、画角を制御してもよい。
【0071】
例えば仮想カメラによりオブジェクト(例えば、プレーヤキャラクタ)を後方から撮影する場合には、オブジェクトの位置、向きの変化に仮想カメラが追従するように、仮想カメラの位置、仮想カメラの向きを制御する。この場合には、移動・動作処理部114で得られたオブジェクトの位置、向き又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた向きに設定したり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は向きを特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0072】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0073】
そして画像生成部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0074】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、記憶部200に保存される。
【0075】
テクスチャマッピングは、記憶部200に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部200からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0076】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0077】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0078】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0079】
なお、本実施形態の画像生成部120は、表示出力用画像と、演算処理用画像を生成する処理を行う。そして、本実施形態の画像生成部120は、演算処理用画像を生成する場合には、上記ピクセル処理(ピクセルシェーダによるパーピクセル処理)を行わないように制御しているが、演算処理の必要性に応じて、上記ピクセル処理を行うようにしてもよい。また、演算処理用のZ値を決定する際には、複数のオブジェクト間の予め決められた奥行き関係に基づいて、Z値を変更するようにしてもよい。
【0080】
音処理部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0081】
なお、本実施形態の画像生成装置は、1人のプレーヤのみがプレイできるシングルプレーヤモード用の装置にしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードを備える装置にしてもよい。
【0082】
例えば、図2に示すように、マルチプレーヤモードの場合には、プレーヤそれぞれの入力部160−1、160−2を用意し、各入力部160−1、160−2が指示する照準位置に基づいて敵キャラクタ等のヒット処理を行う。また、本実施形態では、マルチプレーヤモードの場合には、複数のプレーヤに提供するデータ、表示出力用画像、演算処理用画像、ゲーム音を、1つの画像生成装置を用いて生成している。なお、画像生成装置が他の画像生成装置とネットワークを介して入力情報などのデータを送受信し、受信したデータと入力部160からの入力情報とに基づいて、画像生成処理を行うようにしてもよい。
【0083】
2.画素データを用いてヒット処理を行う手法
(1)概要
本実施形態の画像生成装置は、オブジェクト空間内で弾(特定オブジェクトの一例)を敵キャラクタにヒットさせて攻撃を行うシューティングゲームに関する処理を行うものである。
【0084】
図2は、本実施形態における画像生成装置の外観図を示す。本実施形態では、入力部160(160−1、160−2)が設けられ、表示部190に画像生成装置が生成した表示出力用画像が表示される。つまり、本実施形態のシューティングゲームは、プレーヤが入力部160に設定されている引き金(トリガ)を引いて、出現する多数の敵キャラクタを攻撃して敵キャラクタを倒しながらゲームを進行させるゲームである。
【0085】
そして、本実施形態の画像生成装置は、表示部190に表示させる表示出力用画像Dを生成すると共に、演算処理用画像E(E1〜E3)を生成し、演算処理用画像Eに基づいてヒット処理を行う。
【0086】
つまり、本実施形態では、弾オブジェクト以外のオブジェクトであって、オブジェクト空間に存在する敵オブジェクト、背景オブジェクトなどの複数のオブジェクトを色分けした演算処理用画像Eを生成する。そして、演算処理用画像Eにおいて、指示位置(照準位置)に対応する所定範囲内のピクセルを選択し、選択されたピクセルの色が敵オブジェクトを示す色である場合に、敵オブジェクトにヒットしたと判定する処理を行っている。このようにすれば、3次元のオブジェクト空間内で、弾の軌跡(レイ)と、オブジェクトとのヒット処理を行う従来の手法に比べて処理負荷を軽減することができる。
【0087】
(2)画像を生成する手法
本実施形態は、表示出力用画像Dと、演算処理用画像E1(ヒット処理用画像E1)とを生成する手法について説明する。つまり、本実施形態では、フレーム毎に(例えば、1/60秒単位で)、図3(A)に示す表示出力用画像Dと、図3(B)に示す演算処理用画像E1とを生成する処理を行う。
【0088】
図4(A)(B)は、敵オブジェクトOB1のオブジェクトデータ(モデルデータ)を図示したものである。図4(A)は、表示出力用画像Dで用いられる敵オブジェクトOB1−1のオブジェクトデータを図示したものである。一方、図4(B)は、演算処理用画像E1で用いられる敵オブジェクトEOB1−2のオブジェクトデータを図示したものである。つまり、演算処理用画像E1で用いられるオブジェクト(モデル)は、当該オブジェクトの頂点数が表示出力用画像Dで用いられるオブジェクトの頂点数よりも少ない簡略オブジェクトである。例えば、本実施形態では、表示出力用画像Dを生成する際には、敵オブジェクトOB1−1を用いて生成する処理を行う。一方、演算処理用画像E1を描画する際には、表示出力用画像Dで用いられる敵オブジェクトOB1−1に替えて、敵オブジェクトOB1−1の頂点数を減らした敵オブジェクトOB1−2を用いて描画する処理を行っている。この理由は、演算処理用画像E1は、ヒット処理に関する処理を行うために用いられる画像であるので、ヒット処理の処理負荷の軽減や効率性を考えると、表示出力用画像Dで用いられるオブジェクトよりも頂点数を減らした簡易なオブジェクトを用いる方が適しているからである。
【0089】
ところで、本実施形態では、演算処理用画像E1を生成する際には、各オブジェクトの頂点データの(R,G,B,A)を、そのオブジェクトを特定できる(識別可能な)(R,G,B,A)に決定する。さらに、複数の部位で構成されるオブジェクトについては、オブジェクトを構成する部位を特定できる(識別可能な)(R,G,B,A)に決定する。そして、決定されたオブジェクトの頂点データの(R,G,B,A)に基づいて、演算処理用画像E1を生成する処理を行っている。
【0090】
つまり、本実施形態では、演算処理用画像E1を生成する場合には、複数のオブジェクト単位で色分けし、さらに、オブジェクトの部位単位で色分けする処理を行っている。
【0091】
例えば、図5(A)に示すように、各オブジェクトを識別するIDを、R値、G値で決定し、オブジェクトの部位をB値で決定し、ヒットタイプをA値で決定する。なお、このヒットタイプは、複数のオブジェクトを、グループ化したものであり、例えば、「キャラクタ」というグループ、「背景」というグループ、「キャラクタ、背景以外のオブジェクト」という3種のグループに分けることができる。
【0092】
例えば、図5(B)に示すように、敵キャラクタOB1−2の頭部オブジェクトは、ID=1、部位=1、ヒットタイプ=1であるので、敵キャラクタOB1−2の頭部オブジェクトF1の頂点データの(R,G,B,A)は(1,1,1,1)と決定される。
【0093】
以上のように、オブジェクト単位で(R,G,B,A)を決定し、さらに、オブジェクトが複数の部位で構成されている場合には、部位単位での(R,G,B,A)が決定される。そして、決定された(R,G,B,A)に基づいて演算処理用画像E1を生成する。
【0094】
つまり、本実施形態では、画像生成部120によって、表示出力用画像D、演算処理用画像E1とが次のように生成される。まず、本実施形態では、ワールド座標系(3次元のオブジェクト空間)に、表示出力用のオブジェクト(例えば、OB1−1)を配置させ、仮想カメラを用いて、表示出力用画像Dを描画する処理を行う。同様に、ワールド座標系に、演算処理用のオブジェクト(例えば、OB1−2)を配置させ、仮想カメラを用いて、演算処理用画像E1を描画する処理を行う。本実施形態では、同一の仮想カメラの位置、向き、画角に基づいて、表示出力用画像Dと、演算処理用画像E1とを生成する処理を行う。
【0095】
なお、演算処理用画像E1を生成する際には、表示出力用画像Dよりも画角を広げて描画するようにしてもよい。このようにすれば、広範囲でのヒット判定を行うことができる。
【0096】
また、本実施形態では、演算処理用画像E1を生成する際には、攻撃側のオブジェクトである弾オブジェクト(特定オブジェクト)を含まないように、画像を生成する処理を行う。なぜなら、弾オブジェクトが、弾オブジェクト以外のオブジェクトに対してヒットしたか否かを判定する必要があるからである。
【0097】
そして、表示出力用画像Dを生成する際には、頂点処理後のピクセル処理を行う。一方、演算処理用画像E1を生成する際には、頂点処理後のピクセル処理は行わないようにし、オブジェクト単位(部位オブジェクト単位)での色分けを保つようにしている。つまり、演算処理用画像のオブジェクト単位(部位オブジェクト単位)でのポリゴンの頂点色は全て同一であり、オブジェクト単位でのポリゴンの色が一様になるように制御している。なぜなら、ピクセル処理によってピクセル単位で色が変更されてしまうと、正確なヒット判定処理を行うことができなくなるからである。
【0098】
なお、本実施形態では、図6(A)に示すように表示出力用画像Dが画像バッファ221に描画され、図6(B)に示すように、演算処理用画像E1が演算処理用の画像バッファ231に描画される。本実施形態では、演算処理用の画像バッファ231(232、233も同様)は、縮小用バッファ(1/8フレームバッファ)であるので、演算処理用画像Eの解像度は、表示出力用画像Dの解像度よりも低くなる。しかし、演算処理用画像は、プレーヤが違和感を感じない程度のヒット処理が可能であるので問題は生じない。また、縮小用バッファを用いれば、演算処理用画像Eを生成するため描画処理(GPUの処理負荷)を軽減することができるメリットがある。
【0099】
また、図6(A)に示すZバッファ222は、表示出力用画像Dの各画素のZ値(奥行き値、深度値)を格納し、また、図6(B)に示すZバッファ233は、演算処理用画像E1の各画素のZ値を格納する。
【0100】
また、図3(A)に示すように、表示出力用画像Dに入力部160によって指示される指示位置Pに、照準(指示マーカーの一例)Mを描画する処理を行っている。つまり、プレーヤは、表示出力用画像Dを見ながら、シューティング対象に対する狙いを定めて、照準Mを制御する入力操作を行うことになる。一方、図3(B)に示すように、演算処理用画像E1では、照準Mは描画されない。ヒット処理に影響を及ぼしてしまうからである。
【0101】
なお、図4(A)に示すモデルデータを構成するオブジェクトの各頂点の頂点データ(R,G,B,A)が、図5(B)に示すように予め定義された(R,G,B,A)の情報(或いは一部の情報)を含むように定義してもよい。
【0102】
以上のように、本実施形態では、表示出力用画像Dと、演算処理用画像E1を生成している。
【0103】
(3)ヒット処理
次に、本実施形態におけるヒット処理について説明する。本実施形態では、演算処理用画像E1において、指示位置Qに基づくヒットエリア(所定範囲)Nにおいて、1又は複数の画素を選択(抽出)する処理を行い、選択された画素の色情報又は半透明情報(R,G,B,A)に基づいて、弾オブジェクトが所与のオブジェクトにヒットしたか否かを判定する処理を行っている。
【0104】
例えば、本実施形態では、図7(A)(B)に示すように、入力部160からの入力情報に基づいて、表示出力用画像Dにおける指示位置Pと、演算処理用画像E1における、指示位置Pに対応する指示位置Qを取得する。なお、表示出力用画像D上の指示位置Pを、演算処理用画像E1上の指示位置Qに変換する処理を行って求めてもよい。例えば、演算処理用画像E1の大きさは表示出力用画像Dの1/8の大きさであるので、大きさの比率に基づいて指示位置Qを求めることができる。
【0105】
また、本実施形態では、図8(A)〜(C)に示すように、演算処理用画像E1において、指示位置Qを中心とするヒットエリアNにおいて複数の画素を選択する。例えば、図8(A)に示すように、所定間隔で画素を選択するようにしてもよい。また、図8(B)に示すように、ヒットエリアNにおいて、所定数の画素をランダムに選択するようにしてもよい。
【0106】
なお、本実施形態では、照準Mの形状及び大きさの少なくとも1つに基づいてヒットエリアNを設定している。したがって、表示出力用画像Dにおいてプレーヤが狙いを定めた照準Mの形状の大きさに対応したオブジェクトに対して、ヒットさせるように制御することができる。
【0107】
例えば、図7(A)に示すように、円形の照準Mである場合には、ヒットエリアNを円形にしている。
【0108】
また、表示出力用画像Dで表示される照準Mの形状が菱形である場合には、図8(C)に示すように、ヒットエリアNを菱形にする。かかる場合には、演算処理用画像E1において指示位置Qの画素と、菱形の頂点(頂点付近)の画素とを選択するようにしてもよい。
【0109】
そして、本実施形態では、ヒットエリア内から画素が選択されると、画素の(R,G,B,A)(画素データの一例)に基づいて、弾オブジェクトと、所与のオブジェクトとのヒット判定を行う。
【0110】
例えば、図8(A)に示すように、選択した画素K1〜K9であるとすると、各画素K1〜K9それぞれの(R,G,B,A)に基づいて特定したオブジェクトにヒットしたと判定する。また、ヒットしたと判定されたオブジェクトのヒット部位を、各画素K1〜K9それぞれの(R,G,B,A)に基づいて判定する。
【0111】
例えば、画素K1の色情報(R,G)=(1,1)であるとすると、図5(B)に示すように、色情報(R,G)=(1,1)は、ID=1のオブジェクトであるので、敵オブジェクトOB1であると決定することができる。つまり、画素K1の色情報に基づいて、画素K1が示すオブジェクトが敵オブジェクトOB1であると決定することができる。そして、本実施形態では、弾オブジェクトが決定された敵オブジェクトOB1にヒットしたと判定する。また、図5(B)に示すように、画素K1の色情報B値=1である場合には、頭部F1であると決定することができる。つまり、画素K1の色情報に基づいて、画素K1が示すオブジェクトが敵オブジェクトOB1の頭部F1であると決定できる。したがって、本実施形態では、弾オブジェクトが敵オブジェクトOB1の頭部F1にヒットしたと判定する。つまり、画素K1の色情報及び半透明情報(R,G,B,A)が(1,1,1,1)である場合には、図5(B)に示すように、弾が敵オブジェクトOB1の頭部F1にヒットしたと判定する処理を行う。
【0112】
なお、本実施形態では、Zバッファ233の画素K1〜K9それぞれの奥行き値を参照し、ヒットタイプ毎に、最も投影面に近い(最も視点に対して手前にある)オブジェクトに対してヒットしたと判定してもよい。
【0113】
例えば、画素K1〜K9の半透明情報Aに基づいて、画素K1〜K9をヒットタイプ毎に分類する。例えば、「キャラクタ」のヒットタイプ(A=1)の画素が、K1、K2である場合には、画素K1と、画素K2との奥行き値を参照し、仮想カメラに対して手前にある画素が画素K1である場合には、画素K1の(R,G,B,A)で決定されるキャラクタにヒットしたと判定する。同様に、背景のヒットタイプ(A=2)、他のオブジェクトのヒットタイプ(A=3)について、いずれのオブジェクトにヒットしたのかを判定する。
【0114】
また、本実施形態では、入力部160の引き金が引かれたタイミングで(攻撃入力情報を検出したタイミングで)、ヒット判定処理を行っている。つまり、引き金が引かれるタイミングで、オブジェクト空間において、弾がオブジェクトにヒットしたものとみなしている。
【0115】
そして、本実施形態では、選択した画素の(R,G,B,A)が示すオブジェクトが敵オブジェクトである場合には、敵オブジェクトに応じた所与の演算処理を行う。例えば、敵オブジェクトがヒット攻撃を受けるヒット処理を行う。より具体的には、敵オブジェクトの体力値などのパラメータを制御する処理(例えば減算処理)や、敵オブジェクトが攻撃を受けるエフェクト処理(攻撃を受ける動作処理)を行う。また、弾オブジェクトを敵オブジェクトにヒットさせる表示出力用画像を生成する処理を行う。なお、敵オブジェクトをヒットさせることによって、プレーヤキャラクタの得点を加算するなどの処理を行う。
【0116】
以上のように、本実施形態のヒット処理によれば、広範囲におけるヒット判定の負荷を軽減することができる。例えば、従来の手法では、図9(A)に示すように、指示位置Pに基づく照準Mが表示出力用画像に表示されていた場合、図9(B)に示すように、指示位置Pに基づくオブジェクト空間のレイVとオブジェクトとのヒット判定を行ったり、図9(C)に示すように、ヒットボリュームSVとオブジェクトとのヒット判定を行っていた。このような、3次元のオブジェクト空間における軌跡や、ヒットボリュームを用いる演算は、処理負荷が高いという問題があった。
【0117】
一方、本実施形態では、3次元空間内で、弾と各オブジェクトとのヒット判定を行わずに、選択された画素の(R,G,B,A)に基づいて、弾とオブジェクトとのヒット判定処理を行うことができる。したがって、本実施形態の手法によれば、3次元の演算処理が不要になるので、従来よりも処理負荷が軽減されるという効果がある。
【0118】
なお、本実施形態では、オブジェクト空間内に弾オブジェクトを存在させずに、ヒット処理を行うようにしてもよい。つまり、演算処理用画像において選択された画素の(R,G,B,A)に基づいて、弾オブジェクトが所与のオブジェクトにヒットしたとみなしてヒット判定処理を行ってもよい。
【0119】
(4)エフェクト処理
本実施形態では、弾オブジェクトが敵オブジェクト、箱などの所与のオブジェクトにヒットしたと判定された場合に、表示出力用画像Dに対してエフェクト処理(動作処理)を行う。例えば、図10に示すように、箱オブジェクトTOBに弾がヒットしたと判定されると、箱オブジェクトTOBを構成する各ポリゴンは、それぞれの法線ベクトルNV1〜NV6に基づいて、箱が破壊されるエフェクト処理を行う。例えば、本実施形態では、法線ベクトルNV1〜NV6に基づいて、適切な方向に破片オブジェクト(パーティクル)を離散させるエフェクト処理を行うようにしている。
【0120】
また、本実施形態では、ヒット位置のオブジェクトの属性情報(木材、金属、布などの素材情報)に基づいて、エフェクト処理を行っている。例えば、箱オブジェクトTOBの素材が木である場合には、箱オブジェクトTOBに替えて、木用の破片オブジェクトを離散させるエフェクト処理を行うようにする。
【0121】
本実施形態では、これらの法線ベクトルや属性情報を定義した(R,G,B,A)に基づいて、演算処理用画像(エフェクト用画像)E2を生成する。そして、弾オブジェクトが所与のオブジェクトにヒットしたと判定された場合に、演算処理用画像E2の指示位置Qに対応する画素の(R,G,B,A)に基づいて、エフェクト処理を行う。
【0122】
この演算処理用画像E2は、演算処理用画像E1と同様に生成されるが、オブジェクトの頂点データ(R,G,B,A)は、法線ベクトルや属性情報を定義した(R,G,B,A)に基づいて決定される。
【0123】
具体的には、図11(A)に示すように、オブジェクトの頂点の(R,G,B,A)の(R,G,B)は、オブジェクトを構成するポリゴンの法線ベクトルの(x,y,z)に対応し、A値は属性情報に対応する。図11(B)に示すように、法線ベクトル(x、y、z)=(5,10,12)であって、属性情報が金属である場合の頂点データの(R,G,B,A)は、(5,10,12,1)と決定される。
【0124】
そして、本実施形態では、エフェクト処理は次のように処理を行う。例えば、演算処理用画像E1の指示位置Qに基づいて選択された画素K1の(R,G,B,A)に基づいて、弾オブジェクトが例えば箱オブジェクトTOBにヒットされたと判定されると、演算処理用画像E2の当該指示位置Qに基づき選択された画素K1の(R,G,B,A)に基づいて、箱オブジェクトTOBの法線ベクトルを求め、属性情報を決定する。例えば、画素K1の(R,G,B)に基づいて箱オブジェクトTOBの法線ベクトルを求め、画素K1のA値に基づいて、箱オブジェクトTOBの属性情報を決定する。そして、求めた法線ベクトルと、決定された属性情報に基づいて、箱オブジェクトTOBに替えて、破片オブジェクトを離散させるエフェクト処理を行う。
【0125】
このようにすれば、エフェクト処理に必要な情報を、画素の(R,G,B,A)のデータで保持することができ、ヒット処理に応じたエフェクト処理を容易に行うことができる。
【0126】
なお、本実施形態では、演算処理用画像E2を用いて、弾がヒットしたオブジェクトを破壊させる破壊音を発生させるような音処理を行うようにしてもよい。例えば、弾が箱オブジェクトTOBにヒットした場合に、演算処理用画像E2の指示位置Qに基づいて選択された画素K1の(R,G,B,A)が示す法線ベクトルの方向に応じた音を発生させてもよい。
【0127】
また、演算処理用画像E2の指示位置Qに基づいて選択された画素K1のAが示す属性情報に応じた音を発生させるようにしてもよい。このようにすれば、臨場感溢れる演出を提供することができる。
【0128】
また、本実施形態では、Zバッファ233に格納される奥行き値を参照して、エフェクト処理を行うようにしてもよい。例えば、演算処理用画像E1における指示位置に基づき選択される画素K1に基づき、弾が箱オブジェクトTOBにヒットしたと判定された場合には、Zバッファ233の画素K1の奥行き値を参照し、参照された奥行き値に破片オブジェクト(エフェクトオブジェクト)を配置させる処理を行う。このようにすれば、奥行きに応じたエフェクト処理を行うことができる。
【0129】
なお、本実施形態では、表示出力用画像Dについて、エフェクト処理に関する画像生成処理を行っている。演算処理用画像Eについて、エフェクト処理を行うと、ピクセル単位で色情報等が変更されてしまい、正確なヒット処理を行うことができなるからである。
【0130】
(5)マルチプレーヤモード
本実施形態では、複数のプレーヤが協力して、敵オブジェクトを攻撃できる環境を提供している。
【0131】
例えば、図12に示すように、第1のプレーヤの指示位置をP1、第2のプレーヤの指示位置をP2とすると、指示位置P1から指示位置P2までの距離が所定距離以内になると、共通指示位置PAが発生する。つまり、表示出力用画像Dにおいて、共通指示位置PAに共通照準(共通ガンサイト)MAを描画する処理を行う。
【0132】
そして、本実施形態では、共通照準MAに基づいて、弾オブジェクトが所与のオブジェクトにヒットしたか否かを判定する場合には、演算処理用画像Eの共通指示位置QAに基づくヒットエリア(第2の所定範囲)NA内における画素を選択し、選択された複数の画素それぞれの(R,G,B,A)に基づいて、弾オブジェクトが所与のオブジェクトにヒットしたか否かを判定する処理を行う。
【0133】
また、本実施形態では、共通照準MAの大きさを、照準M1、M2よりも大きなサイズにしている。そして、本実施形態では、演算処理用画像EのヒットエリアNAは、共通照準MAの大きさに応じて決めるので、各プレーヤが単独で照準M1、M2を狙うヒットエリアN1、N2よりもヒットエリアNAが広くなり、共通照準MAが現れた場合には、敵オブジェクトをヒットさせる確率(命中度)が高まる。
【0134】
(6)ポリゴンを上書き描画する例
本実施形態では、図13(A)に示すように、所定のゲーム状況になると、表示出力用画像Dにおいて敵オブジェクトの狙いを誘導する所定エリアTMを描画して、プレーヤに所定エリアTMをヒットさせることを促すようにしている。この所定エリアTMに弾がヒットすると、敵オブジェクトに大きなダメージを与えて倒すことができる。
【0135】
かかる場合には、図13(B)に示すように、演算処理用画像E1において、の所定エリアTMに相当するエリアS1の全画素について、所定エリアTMに対応する色情報及び半透明情報(R,G,B,A)を上書き描画する。つまり、演算処理用画像を生成する最終段階で、エリアS1の全画素について、同一色、同一のα値描画する処理を行う。このようにすれば、表示出力用画像Dにおいて所定エリアTMが表示されている場合には、敵オブジェクトOB1の動作に関係なく、確実に所定エリアTMに対するヒット処理を実現できる。
【0136】
(7)Z値の制御
本実施形態では、演算処理用の奥行き値をZバッファに格納する場合には、ゲーム状況に応じて、3次元のオブジェクト空間における奥行き値とは異なる値を格納する処理を行っている。
【0137】
例えば、本実施形態では、図14(A)(B)に示すように、部位C1(腕部位)に防御機能があり(つまり弾がヒットしてもダメージを受けない)、部位C2が弱点部位(つまり弾がヒットするとダメージを大きく受ける)であるオブジェクトOB3を、オブジェクト空間に配置させる。そして、例えば、敵キャラクタOB3は図14(A)(B)のように、部位C1を動作させる処理を行っている。かかる場合には、プレーヤは部位C1ではなく部位C2を狙うように、指示位置を制御する入力操作を要する。本実施形態では、操作の不得手なプレーヤに対して、攻撃が容易になるように、演算処理用画像のZ値を次のように制御している。
【0138】
例えば、図15(A)(B)に示すように、部位C1が開いている状態(図14(A)の状態)である場合について説明する。かかる場合、部位C1が開いているので、プレーヤは部位C2を狙って攻撃しようとする。
【0139】
例えば、図14(A)に示すように、オブジェクト空間において、部位C1は部位C2よりも視点に対して手前にあるので、表示出力用画像Dを生成する際は、部位C2よりも部位C1が手前になるように描画する。つまり、図15(A)に示すように、表示出力用画像DのZ画像D2は、部位C1は部位C2よりも手前になるように隠面消去(デプスソート)が行われる。一方、演算処理用画像E(E1、E2)のZ画像E3を生成する際は、オブジェクト空間において、部位C1は部位C2よりも視点に対して手前にあっても、部位C2が、部位C1よりも視点に対して手前になるように描画する。例えば、図15(B)に示すように、演算処理用画像E1、E2のZ画像E3は、部位C2は部位C1よりも手前になるように、隠面消去が行われる。
【0140】
このようにすれば、プレーヤは、表示出力用画像Dにおいて、本来は見ることができないC2の一部分についても、ヒット攻撃を行うことができるので、敵キャラクタOB3の弱点の部位C2を狙い易くなり、効果的に敵を倒すことが出来る。
【0141】
(8)物理演算との切り替え
本実施形態では、武器に応じて、物理演算に基づくヒット処理と、演算処理用の画像Eを用いたヒット処理とを切り替えている。
【0142】
例えば、図16(A)に示すように、大砲GOBから発射される弾SOBをオブジェクトOB4に着弾させるような攻撃手法の場合は、オブジェクト空間において、所定距離Lを弾SOBが移動することになる。
【0143】
一方、本実施形態では、演算処理用画像Eを用いてヒット処理を行う場合には、弾の発射スピードなどに関係なく、トリガが引かれたタイミングで、弾とオブジェクトとのヒット判定を行っている。したがって、大砲GOBなどの、弾が所定距離Lを移動する武器を用いた攻撃には、演算処理用画像Eを用いたヒット処理は不向きである。大砲GOBの場合には、弾の発射スピードなどに応じて、実際に弾がオブジェクトに着弾した瞬間にヒットしたか否かを判定することが望ましいからである。
【0144】
そこで、本実施形態では、武器の種類に応じて、演算処理用画像Eを用いたヒット処理と、物理演算に基づくヒット処理との切り替えを行っている。
【0145】
例えば、本実施形態では、プレーヤキャラクタが使用する武器が、大砲GOB(ミサイル)などの距離を有する武器(第1の攻撃オブジェクト)で攻撃する場面では、物理的にヒット処理を実行するプログラム(第1のヒット処理プログラム)を実行する。一方、プレーヤキャラクタが使用する武器が、ハンドガン、ショットガン、マシンガンなどの近距離用の武器(第2の攻撃オブジェクト)で攻撃する場合には、演算処理用画像Eを用いたヒット処理を実行するプログラム(第2のヒット処理プログラム)を実行する。つまり、プレーヤキャラクタが使用する武器に応じて、ヒット処理プログラムを切り替える処理を行う。
【0146】
このように、本実施形態では、武器に応じて、処理演算負荷のバランスを測りながら適切なヒット処理を行うので、プレーヤは違和感を感じることなく、ゲームプレイを行うことができる。
【0147】
3.フローチャート
本実施形態の処理の流れについて、図17を用いて説明する。本実施形態では、CPU側の処理において、各モデルを初期化する際に、各モデルデータにヒットID、ヒットタイプを割り当てる処理を行う。なお、モデルデータを構成するポリゴンの各頂点カラーには、属性値、部位を特定する値が設定される。これらの値が実際に取り得る値の範囲は0〜127であるが、0〜127を0.0〜1.0にマッピングした値(0〜127の範囲の値を0.0〜1.0の範囲の値に変換した値)を、各モデルデータを構成するポリゴンの各頂点カラーとして設定する。また、ヒットIDは、モデルデータそれぞれを識別可能な値が設定される。
【0148】
第Nフレーム目における描画処理について説明する。まず、CPU側の描画処理において、各モデルデータを描画する処理を行う(ステップS11)。各モデルデータ描画する場合には、各モデルデータを描画するタイミングで、各モデルデータに割り当てたヒットID、ヒットタイプをGPU(シェーダ)に転送する処理を行う。そして、モデルの描画が終了したか否かを判定する(ステップS12)。モデルの描画が終了していない場合には(ステップS12のN)、ステップS11に戻り、モデルの描画が終了している場合には(ステップS12のY)、Nフレーム目のCPU側の描画処理を終了する処理を行う。
【0149】
そして、ステップS11において、各モデルデータを描画する場合には、モデルデータを描画する度に、GPUへヒットID、ヒットタイプの値を転送し、GPU(シェーダ)側の描画処理を行う。つまり、GPUが、CPU側から描画要求を受け取ると、描画面A〜Cへの描画処理(ステップS21、S22、S23)を行う。
【0150】
まず、ヒットID、ヒットタイプ、部位を、描画面A(フレームバッファ231)に描画する処理を行う(ステップS21)。つまり、ヒットID、ヒットタイプ、及び、モデルデータに含まれる部位の値を元にした色情報を、描画面Aへ、そのモデル形状を用いて描画する処理を行う。
【0151】
そして、属性、法線を、描画面Bに(フレームバッファ232)に描画する処理を行う(ステップS22)。つまり、モデルデータに含まれる属性値と、実際に描画するモデルのそれぞれの描画点に対する法線情報を色情報とし、描画面Bへ、そのモデル形状を用いて描画する処理を行う。
【0152】
そして、深度値(奥行き値)を、描画面C(Zバッファ233)に描画する処理を行う(ステップS23)すなわち、モデル形状を用いて描画面Cへ深度情報を描画する。
【0153】
次に、CPU側における第N+1フレーム目におけるヒット処理について説明する。なお、以下の説明は、各ヒットタイプに1箇所にだけヒットするものとして、処理を行う例である。
【0154】
まず、指示される範囲(ヒットエリア)内のピクセルを走査する(ステップS31)。そして、深度値から投影面に近いピクセルを割り出す(選択する)(ステップS32)。すなわち、第Nフレーム目において描画された描画面Cにおいて、指示される範囲内のピクセルのうち、深度値に基づき投影面に近い画素を割り出す。そして、ヒットタイプ毎に投影面に近い点の画面座標を保持する(ステップS33)。そして、走査を終了する(ステップS34)。
【0155】
次に、ヒットタイプ毎の処理に移行する(ステップS35)。まず、ステップS33において保持された当該ヒットタイプの画面座標における、第Nフレームにおいて描画された描画面Aを参照してヒットIDを抽出する処理を行う(ステップS36)。すなわち、抽出されたヒットIDに対応するモデルデータにヒットがあったものと判定する。
【0156】
次に、深度値(0.0〜1.0の値域の値)からZ値(3次元の奥行き値)を求め(ステップS37)、ステップS33において保持された当該ヒットタイプの画面座標とZ値から逆透視変換を行い、3D座標を求める(ステップS38)。そして、第Nフレームにおいて描画された描画面Bを参照して、ステップS38で求められた3D座標における法線を算出する(ステップS39)。そして、第Nフレームにおいて描画された描画面Bを参照して、ステップS38で求められた3D座標における属性を求める。そして、求められた法線、属性に基づいて、エフェクト処理を行い、法線、属性に基づいてサウンドの発音させる音処理を行う(ステップS41)。以上で処理が終了する。
【0157】
4.応用例
(1)他のゲームへの応用
本実施形態では、シューティングゲームに関するヒット処理について説明を行ったが、他のゲームのヒット処理に応用してもよい。例えば、対戦格闘ゲーム、レースゲーム、ロールプレイングゲーム、スポーツゲーム、アクションゲーム、音楽ゲーム、シミュレーションゲームなど、種々のゲームにおけるヒット処理に応用してもよい。
【0158】
例えば、プレーヤキャラクタと敵キャラクタとが対戦格闘を行う対戦格闘ゲームの場合には、プレーヤキャラクタ、敵キャラクタに対して相手キャラクタを含むヒット処理用の画像Eを生成する。
【0159】
通常、対戦格闘ゲームでは、図18に示すように、3人称視点(仮想カメラVC)で、プレーヤキャラクタCH1と敵キャラクタCH2とを含む画像を生成し、生成された画像を表示出力用画像として表示部に表示させる。
【0160】
対戦格闘ゲームで本実施形態のヒット処理を応用する場合には、各キャラクタの視点から見える演算処理用の画像を生成する。例えば、図19(A)に示すように、プレーヤキャラクタCH1が敵キャラクタCH2とのヒット処理を行う場合には、プレーヤキャラクタ用の仮想カメラVC1(一人称視点)に基づいて、敵キャラクタCH2を含む演算処理用画像E1−1を生成する。一方、図19(B)に示すように、敵キャラクタCH2がプレーヤキャラクタCH1とのヒット処理を行う場合には、敵キャラクタCH2用の仮想カメラVC2(一人称視点)に基づいて、プレーヤキャラクタCH1を含む演算処理用画像E1−2を生成する。
【0161】
そして、入力部から、プレーヤキャラクタCH1が攻撃に関する入力情報を受け付けると、入力情報に基づいてプレーヤキャラクタCH1が敵キャラクタCH2に対する攻撃位置I1を求め、演算処理用画像E1−1の攻撃位置I1の画素J1(攻撃位置I1に基づくヒットエリア内の1又は複数の画素J1〜Jkでもよい)の画素データ(R,G,B,A)と、当該画素J1(J1〜Jk)の奥行き値とに基づいて、プレーヤキャラクタCH1と敵キャラクタCH2とがヒットしたか否かを判定する。
【0162】
例えば、攻撃位置I1に基づき選択された画素の画素データが敵キャラクタを識別する画素データである場合には、プレーヤキャラクタCH1が、敵キャラクタCH2にヒットしたと判定し、敵キャラクタを識別する画素データでない場合には、ヒットしないと判定する。また、攻撃位置I1に基づき選択された画素の画素データが敵キャラクタを識別する画素データである場合、かつ、攻撃位置I1に基づき選択された画素の奥行き値が所定奥行き範囲内の値である場合にプレーヤキャラクタCH1が、敵キャラクタCH2にヒットしたと判定してもよい。
【0163】
一方、敵キャラクタCH2の攻撃によって、敵キャラクタCH2がプレーヤキャラクタCH1にヒットしたか否かの判定も、同様に、演算処理用画像E1−2に基づいて判定する。このようにすれば、瞬時にヒット処理を行うことができる。
【0164】
(2)なお、本実施形態では、演算処理用画像E1、E2、Z画像E3を生成する処理について説明したが、1つの演算処理用画像において、オブジェクトを識別する情報、部位を識別する情報、法線ベクトル、属性情報、奥行き値それぞれを定義するようにしてもよい。また、演算処理用画像は、表示出力用画像と同じサイズのバッファに描画するようにしてもよい。また、1つの画像を生成し、生成された画像を表示処理用と共に演算処理用としてもよい。
【0165】
(3)タッチパネル型ディスプレイ
本実施形態では、入力部160と共に表示部190としても機能するタッチパネル型ディスプレイを用いて処理を行ってもよい。なお、タッチパネル型ディスプレイへの接触操作は、タッチペンなどの入力機器を用いて行っても良いし、指先を用いて行ってもよい。例えば、タッチパネル型ディスプレイで検出された接触位置を指示位置(照準位置)として取得すればよい。
【0166】
例えば、2次元オブジェクト(スプライト)それぞれを識別するID(ヒットID)に対応する色情報を用いて、2次元オブジェクトを描画する。つまり、2次元オブジェクトそれぞれを識別する色情報によって、各2次元オブジェクトを色分けして描画する。
【0167】
そして、タッチパネル型ディスプレイにおいて検出された接触位置を指示位置とし、指示位置に対応する画素(指示位置に基づく所定範囲内の1又は複数の画素)をスキャンし、スキャンされた画素の色情報に基づいてオブジェクトを決定する処理を行う。
【0168】
そして、決定されたオブジェクトが、例えば敵オブジェクトである場合には、敵オブジェクトのパラメータを制御する処理、敵オブジェクトが攻撃を受ける動作処理、敵オブジェクトに対してエフェクト処理等を行う。このようにすれば、敵オブジェクトが複雑な形状であっても、指示位置に対応する画素の画素データに基づいて敵オブジェクトを特定することができるので、処理負荷を軽減させてその形状に応じた細やかな処理を行うことができる。
【符号の説明】
【0169】
100 処理部、110 オブジェクト空間設定部、111 取得部、112 決定部、113 演算処理部、113−1 ヒット判定部、113−2 エフェクト処理部、
114 移動・動作処理部、115 ゲーム演算部、
116 設定部、117 指示位置制御部、
120 画像生成部、130 音処理部、
160 入力部、162 検出部、180 情報記憶媒体、190 表示部、
192 音出力部、196 通信部、
200 記憶部、210 主記憶部、
221 画像バッファ、222 Zバッファ、
231 画像バッファ(描画面A)、232 画像バッファ(描画面B)、
231 Zバッファ(描画面C)

【特許請求の範囲】
【請求項1】
所与の演算処理を行うプログラムであって、
複数のオブジェクトそれぞれを識別する画素データに基づいて、当該複数のオブジェクトを含む画像を生成する処理を行う画像生成部と、
入力部からの入力情報に基づいて、前記画像の指示位置を取得する取得部と、
前記指示位置に対応する画素の画素データに基づいて、当該画素が示すオブジェクトを決定する処理を行う決定部と、
前記決定部によって決定された前記オブジェクトに応じた所与の演算処理を行う演算処理部として、コンピュータを機能させることを特徴とするプログラム。
【請求項2】
請求項1において、
前記画素データは、色情報又は半透明情報を含み、
前記色情報又は半透明情報によって、複数のオブジェクトそれぞれを識別することを特徴とするプログラム。
【請求項3】
請求項1又は2において、
前記画像生成部が、
奥行き値を定義した画素データに基づいて、前記画像を生成し、
前記決定部が、
前記指示位置に対応する画素の画素データが示す奥行き値に基づいて、オブジェクトを決定する処理を行うことを特徴とするプログラム。
【請求項4】
請求項1〜3のいずれかにおいて、
前記画像生成部が、
オブジェクトを構成する複数の部位それぞれを識別する画素データに基づいて、前記画像を生成し、
前記決定部が、
前記指示位置に対応する画素の画素データに基づいて、前記オブジェクトを構成する複数の部位のうちいずれかの部位を決定する処理を行い、
前記演算処理部が、
前記決定部によって決定された前記部位に応じた所与の演算処理を行うことを特徴とするプログラム。
【請求項5】
請求項1〜4のいずれかにおいて、
前記画像生成部が、
表示出力用画像を生成すると共に、
奥行き値を定義した画素データに基づいて前記画像を生成し、
前記演算処理部が、
前記決定部によって決定された前記オブジェクトが所与のオブジェクトである場合に、前記表示出力用画像において、前記指示位置に対応する画素の画素データが示す奥行き値に基づいて、前記オブジェクトに対してエフェクト処理を行うことを特徴とするプログラム。
【請求項6】
請求項1〜5のいずれかにおいて、
前記画像生成部が、
表示出力用画像を生成すると共に、
法線ベクトルを定義した画素データに基づいて、前記画像を生成し、
前記演算処理部が、
前記決定部によって決定された前記オブジェクトが所与のオブジェクトである場合に、前記表示出力用画像において、前記指示位置に対応する画素の画素データが示す法線ベクトルに基づいて、前記オブジェクトに対してエフェクト処理を行うことを特徴とするプログラム。
【請求項7】
請求項1〜6のいずれかにおいて、
前記画像生成部が、
表示出力用画像を生成すると共に、
属性情報を定義した画素データに基づいて、前記画像を生成し、
前記演算処理部が、
前記決定部によって決定された前記オブジェクトが所与のオブジェクトである場合に、前記表示出力用画像において、前記指示位置に対応する画素の画素データが示す属性情報に基づいて、前記オブジェクトに対してエフェクト処理を行うことを特徴とするプログラム。
【請求項8】
請求項1〜7のいずれかにおいて、
前記指示位置に基づいて、前記画像において所定範囲を設定する設定部として、コンピュータを更に機能させ、
前記決定部が、
前記所定範囲内の1又は複数の画素の画素データそれぞれに基づいて、1又は複数のオブジェクトを決定する処理を行い、
前記演算処理部が、
前記決定部によって決定された1又は複数の前記オブジェクトそれぞれについて、所与の演算処理を行うことを特徴とするプログラム。
【請求項9】
請求項8において、
前記画像生成部が、
前記指示位置に対応する指示マーカーを描画した表示出力用画像を生成する処理を行い、
前記設定部が、
前記指示マーカーの形状及び大きさの少なくとも1つに応じた所定範囲を設定することを特徴とするプログラム。
【請求項10】
請求項1〜9のいずれかにおいて、
前記取得部が、複数の指示位置を取得した場合に、各指示位置の位置関係に基づいて共通指示位置を発生させるか否かを判定する指示位置制御部として、コンピュータを更に機能させ、
前記決定部が、
前記共通指示位置を発生させると判定された場合に、前記共通指示位置に対応する画素の画素データに基づいてオブジェクトを決定する処理を行うことを特徴とするプログラム。
【請求項11】
請求項10において、
前記共通指示位置に基づいて、前記画像において第2の所定範囲を設定する設定部として、コンピュータを更に機能させ、
前記決定部が、
前記共通指示位置を発生させると判定された場合に、前記第2の所定範囲内の1又は複数の画素の画素データそれぞれに基づいて、1又は複数のオブジェクトを決定する処理を行い、
前記演算処理部が、
前記決定部によって決定された1又は複数の前記オブジェクトそれぞれについて、所与の演算処理を行うことを特徴とするプログラム。
【請求項12】
請求項1〜11のいずれかにおいて、
前記画像生成部が、
表示出力用画像を、表示出力用の画像バッファに描画する処理を行い、
前記画像を、前記表示出力用の画像バッファを縮小させた縮小用の画像バッファに描画する処理を行うことを特徴とするプログラム。
【請求項13】
コンピュータにより読取可能な情報記憶媒体であって、請求項1〜12のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
【請求項14】
所与の演算処理を行う画像生成装置であって、
複数のオブジェクトそれぞれを識別する画素データに基づいて、当該複数のオブジェクトを含む画像を生成する処理を行う画像生成部と、
入力部からの入力情報に基づいて、前記画像の指示位置を取得する取得部と、
前記指示位置に対応する画素の画素データに基づいて、当該画素が示すオブジェクトを決定する処理を行う決定部と、
前記決定部によって決定された前記オブジェクトに応じた所与の演算処理を行う演算処理部とを含むことを特徴とする画像生成装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2011−53838(P2011−53838A)
【公開日】平成23年3月17日(2011.3.17)
【国際特許分類】
【出願番号】特願2009−200967(P2009−200967)
【出願日】平成21年8月31日(2009.8.31)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】