説明

プログラム、情報記憶媒体及びゲームシステム

【課題】衝撃(例えば攻撃)等によりオブジェクトが分断される場合の分断時や分断後の様子をリアルに表現すること。
【解決手段】オブジェクト空間において、オブジェクトが分断される画像を生成するゲーム装置のためのプログラムであって、入力情報を受け付ける受け付け手段と、オブジェクトに複数の代表点を設定し、前記入力情報に基づいて代表点の位置情報を演算する代表点位置情報演算手段と、前記入力情報に基づいてオブジェクトの分断の有無を判断し、分断ありと判断した場合にはオブジェクトを複数の部分オブジェクトに分断する分断処理を行う分断処理手段と、前記代表点の位置情報に基づき、オブジェクトの分断状態を判断する分断状態判断手段と、前記分断状態に基づき、画像生成処理またはゲームパラメータ演算処理の少なくとも1つを行う処理手段と、してコンピュータを機能させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明本発明の幾つかの態様は、プログラム、情報記憶媒体及びゲームシステムに関する。
【背景技術】
【0002】
従来から、仮想的な3次元空間であるオブジェクト空間内において仮想カメラ(所与の視点)から見える画像を生成するゲームシステム(画像生成システム)が知られており、いわゆる仮想現実感を体験できるものとして人気が高い。
【0003】
例えば、プレーヤの入力情報に基づいて、プレーヤオブジェクトが敵オブジェクトを攻撃する処理を行うゲームシステムが存在する(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平8−182860号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、従来のゲームシステムでは、衝撃(例えば攻撃)等によりオブジェクトが分断される場合の分断後の様子をリアルに表現できないという問題があった。
【0006】
本発明は、以上のような問題点に鑑みてなされたものである。本発明のいくつかの態様によれば、衝撃(例えば攻撃)等によりオブジェクトが分断される場合の分断後の様子をリアルに表現可能なプログラム、情報記憶媒体及びゲームシステムを提供することができる。
【課題を解決するための手段】
【0007】
(1)本発明は、
オブジェクト空間において、オブジェクトが分断される画像を生成するゲーム装置のためのプログラムであって、
入力情報を受け付ける受け付け手段と、
オブジェクトに複数の代表点を設定し、前記入力情報に基づいて代表点の位置情報を演算する代表点位置情報演算手段と、
前記入力情報に基づいてオブジェクトの分断の有無を判断し、分断ありと判断した場合にはオブジェクトを複数の部分オブジェクトに分断する分断処理を行う分断処理手段と、
前記代表点の位置情報に基づき、オブジェクトの分断状態を判断する分断状態判断手段と、
前記分断状態に基づき、画像生成処理またはゲームパラメータ演算処理の少なくとも1つを行う処理手段と、してコンピュータを機能させることを特徴とするプログラムに関する。また、本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関する。また、本発明は、上記各部を含むゲームシステムに関係する。
【0008】
本発明によれば、衝撃(例えば攻撃)等によりオブジェクトが分断される場合の分断後の様子をリアルに表現することができる。
【0009】
(2)このプログラム、情報記憶媒体、及びゲームシステムは、
前記代表点はオブジェクトを構成する部位に対応付けて設定されており、
分断状態判断手段は、
所与の部位に対応付けられた代表点の位置情報と他の部位に対応付けられた代表点の位置情報に基づき所与の部位と他の部位の位置関係を求め、当該位置関係が所定の分断条件を満たしていると判断した場合には、所与の部位を含む部分と他の部位を含む部分は分断されている分断状態であると判断してもよい。
【0010】
前記代表点はオブジェクトを構成する複数の部位の各部位に対応付けて少なくとも1つ設定されていてもよい。
【0011】
例えば所与の部位と他の部位の分轄前の位置関係(例えば所与の部位の代表点と他の部位の代表点が分轄前に取り得る距離の最大値)を求めて保持しておき、所与の部位と他の部位の現在の位置関係と分轄前の位置関係を比較して、比較結果に基づき、所与の部位を含む部分と他の部位を含む部分の分離の有無を判断してもよい。
【0012】
(3)このプログラム、情報記憶媒体、及びゲームシステムは、
前記代表点位置情報演算手段は、
オブジェクトの分断後に分断された複数の部分オブジェクトに設定された前記複数の代表点の位置情報を演算してもよい。
【0013】
分離前は演算せずに、分離後に演算することで、分離前の演算負荷を軽減することが出来る。例えば分離前は初期値を設定しておいてもよい。代表点に初期値が設定されている場合には、分断前と判断することが出来る。
【0014】
分断後に代表点の位置情報を演算する場合には、同じ座標系における位置情報を求めることがこのましい。例えば所与のオブジェクトが第1の部分オブジェクトと第2の部分オブジェクトに分断された場合には、第1の部分オブジェクトと第2の部分オブジェクトにわかれた各代表点の位置座標を、ワールド座標系でもよいし、分断前の元のオブジェクトのローカル座標系でも良いし、分断後のいずれかの一方の部分オブジェクトのローカル座標系でもよいが、同じ座標系で求める。このようにすると、分断後の代表点の位置関係の演算負荷が軽くなる。
【0015】
(4)このプログラム、情報記憶媒体、及びゲームシステムは、
オブジェクト空間において、オブジェクトが分断される画像を生成するゲーム装置のためのプログラムであって、
入力情報を受け付ける受け付け手段と、
オブジェクトに複数の代表点を設定し、前記入力情報に基づいて代表点の位置情報を演算する代表点位置情報演算手段と、
前記入力情報に基づいてオブジェクトの分断の有無を判断し、分断ありと判断した場合にはオブジェクトを複数の部分オブジェクトに分断する分断処理を行う分断処理手段と、
前記代表点間を結ぶ仮想的なラインを設定し、前記分断処理によって分断されたラインを検出し、分断されたラインを特定するための分断ライン情報を保持する分断ライン検出手段と、
前記分断ライン情報に基づき、オブジェクトの分断状態を判断する分断状態判断手段と、
分断状態に基づき、画像生成処理またはゲームパラメータ演算処理の少なくとも1つを行う処理手段と、してコンピュータを機能させることを特徴とするプログラムに関する。また、本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関する。また、本発明は、上記各部を含むゲームシステムに関係する。
【0016】
本発明によれば、衝撃(例えば攻撃)等によりオブジェクトが分断される場合の分断後の様子をリアルに表現することができる。
【0017】
(5)このプログラム、情報記憶媒体、及びゲームシステムは、
前記処理手段は、
分断状態に基づき、分断後の部分オブジェクトの移動や動作パターン、分断後の部分オブジェクトに付随するエフェクトパターンの少なくとも1つを決定して、決定した移動や動作パターン及びエフェクトパターンの少なくとも1つに従って画像生成処理を行う画像生成処理手段を含んでもよい。
【0018】
例えば分断状態に対応づけてパターンの異なるエフェクト要素(例えばエフェクト用のオブジェクトやエフェクト用のテクスチャ)を記憶し、
分断状態基づき、対応するエフェクト要素を選択し、選択したエフェクト要素を用いて画像生成を行ってもよい。
【0019】
また例えば分断状態に対応づけてパターンの異なるエフェクト処理をおこなってもよい。例えばピクセルシェーダーに切断時のエフェクト放出物を異なる描画パターンで描画させてもよい。
【0020】
(6)このプログラム、情報記憶媒体、及びゲームシステムは、
前記画像生成処理手段は、
分断状態に対応づけてパターンの異なるモーションデータを記憶し、
分断状態に基づき、対応するモーションデータを選択し、選択したモーションデータを用いて画像生成を行ってもよい。
【0021】
(7)このプログラム、情報記憶媒体、及びゲームシステムは、
前記処理手段は、
分断状態に基づき、ゲーム処理に用いるゲームパラメータを演算し、ゲームパラメータに基づきゲーム演算を行うゲーム演算手段と、を含んでもよい。
ゲームパラメータは、例えば成績、得点、体力、ライフ等を示すパラメータでもよい。
【図面の簡単な説明】
【0022】
【図1】本実施形態のゲームシステムの機能ブロック図。
【図2】本実施形態のゲーム画像の一例を示す図。
【図3】図3(A)、図3(B)は、分断処理について説明するための図。
【図4】図4(A)、図4(B)は、分断処理について説明するための図。
【図5】図5(A)、図5(B)は、分断処理について説明するための図。
【図6】図6(A)、図6(B)は、分断処理について説明するための図。
【図7】分断対象となるオブジェクトの構成(モデル情報)について説明する図。
【図8】オブジェクトに設定される複数の代表点について説明するための図。
【図9】代表点の位置情報について説明するための図である。
【図10】オブジェクトが分断された場合の各代表点の距離の変化について説明するための図。
【図11】分断前後の代表点の位置関係の変化について説明するための図。
【図12】図12(A)(B)は、オブジェクトの分断状態のことなる例を示す図。
【図13】代表点間に設定される仮想的なラインと、オブジェクトが分断された場合の分断されるラインの検出について説明するための図。
【図14】分断ライン情報について説明するための図
【図15】図15(A)(B)は分断状態とエフェクトパターンについて説明するための図。
【図16】代表点情報に基づき分断状態を判断を判断する場合のフローチャート図。
【図17】分断ライン情報に基づき分断状態を判断を判断する場合のフローチャート図。
【発明を実施するための形態】
【0023】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0024】
1.構成
図1に本実施形態のゲームシステム(画像生成システム)の機能ブロック図の例を示す。なお本実施形態のゲームシステムは図1の構成要素(各部)の一部を省略した構成としてもよい。
【0025】
入力部160は、プレーヤからの入力情報を入力するための機器であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部160は、プレーヤの入力情報(方向キー、RBボタン、LBボタン、Xボタン、Yボタン等のキー入力によって検出された信号)を検出する。入力部160は、例えば、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどがある。
【0026】
また、入力部160は、3軸の加速度を検出する加速度センサや、角速度を検出するジャイロセンサ、撮像部を備えた入力機器でもよい。例えば、入力機器は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力機器には、プレーヤが把持する刀型コントローラ、あるいはプレーヤが身につける(プレーヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力機器には、入力機器と一体化されているゲーム装置、携帯型ゲーム装置、携帯電話なども含まれる。
【0027】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0028】
オブジェクトデータ記憶部179には、オブジェクトデータが記憶される。例えば、オブジェクトデータ記憶部179には、頭部位、首部位、腕部位など、オブジェクト(プレーヤオブジェクト、他のオブジェクト)を構成する部位単位での特定点や、オブジェクト単位での代表点が記憶される。
【0029】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)、メモリカードなどにより実現できる。
【0030】
処理部100は、情報記憶媒体180に入力されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。
【0031】
即ち情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。また、情報記憶媒体180に、プレーヤの個人データやゲームのセーブデータなどを記憶してもよい。
【0032】
なお、本実施形態では、情報記憶媒体180にオブジェクトデータを記憶させ、所与のプログラムの実行によって、情報記憶媒体180に記憶されているオブジェクトデータをオブジェクトデータ記憶部179にロードしてもよい。
【0033】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0034】
通信部196は外部(例えばホスト装置や他のゲームシステム)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0035】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム(データ)を、ネットワークを介してサーバからダウンロードし、記憶部170や、情報記憶媒体180に記憶するようにしてもよい。このようなサーバの記憶部に記憶されているプログラムも本発明の範囲内に含めることができる。
【0036】
処理部100(プロセッサ)は、記憶部170内の主記憶部171をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0037】
処理部100は、代表点位置情報演算部110,オブジェクト空間設定部111、移動・動作処理部112、仮想カメラ制御部113、受け付け部114、分断状態判断部115、分断処理部116、分断ライン検出部117、ヒットエフェクト処理部118、ゲーム演算部119、描画部120、音生成部130を含む。なおこれらの一部を省略する構成としてもよい。
【0038】
オブジェクト空間設定部111は、プレーヤオブジェクト、敵オブジェクト(他のオブジェクトの一例)、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0039】
移動・動作処理部112は、プレーヤオブジェクト、敵オブジェクト、車、又は飛行機等の移動・動作演算(移動・動作シミュレーション)を行う。すなわち入力部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させる処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(各パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0040】
また移動・動作処理部112は、モデルオブジェクト(キャラクタ)にモーション(アニメーション)を行わせるモーション処理(モーション再生、モーション生成)を行う。このモーション処理は、モデルオブジェクトのモーションを、モーションデータ記憶部172に記憶されているモーションデータに基づいて再生することなどで実現できる。
【0041】
具体的にはモーションデータ記憶部172には、モデルオブジェクトのスケルトンを構成する各骨(モデルオブジェクトを構成するパーツオブジェクト、関節、モーション骨)の位置又は回転角度(親の骨に対する子の骨の3軸周りの回転角度)等を含むモーションデータが記憶されている。移動・動作処理部112は、このモーションデータをモーションデータ記憶部172から読み出し、読み出されたモーションデータに基づいてモデルオブジェクトのスケルトンを構成する各骨(パーツオブジェクト)を動かすことで(スケルトン形状を変形させることで)、モデルオブジェクトのモーションを再生する。
【0042】
仮想カメラ制御部113は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、仮想カメラの位置(X、Y、Z)又は回転角度(X、Y、Z軸回りでの回転角度)を制御する処理(視点位置や視線方向を制御する処理)を行う。
【0043】
例えば仮想カメラによりプレーヤオブジェクトを後方から撮影する場合には、プレーヤオブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度(仮想カメラの向き)を制御する。この場合には、移動・動作処理部111で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0044】
受け付け部114は、プレーヤの入力情報を受け付ける。例えば、受け付け部114は、プレーヤの攻撃の入力情報、プレーヤの所定モード切替入力情報、方向指示の入力情報等を受け付ける。
【0045】
分断状態判断部115は、前記代表点の位置情報に基づき、オブジェクトの分断状態(分断の有無、分断された部位等)を判断する。
【0046】
分断処理部116は、入力情報に基づいてオブジェクトの分断の有無を判断し、分断ありと判断した場合にはオブジェクトを複数の部分オブジェクトに分断する分断処理を行う。例えば、プレーヤオブジェクトが他のオブジェクトを攻撃する攻撃方向に基づいて他のオブジェクトの分断面を設定し、他のオブジェクトを分断するか否かを判定し、他のオブジェクトを分断すると判定された場合に、他のオブジェクトを分断ラインに沿って分断する処理を行ってもよい。ここで、他のオブジェクトを分断ラインに沿って分断する処理とは、設定された分断面を境に、他のオブジェクトを複数のオブジェクトに分離させる処理を行う。分断処理部116は、他のオブジェクトを分断すると判定した場合に、分断面に基づきリアルタイムに複数のオブジェクトの頂点を求め、複数のオブジェクトを生成する処理を行う。
【0047】
分断ライン検出部117は、代表点間を結ぶ仮想的なラインを設定し、前記分断処理によって分断されたラインを検出し、分断されたラインを特定するための分断ライン情報を保持する。
【0048】
ゲーム演算部118は、入力部160からの入力データやプログラムなどに基づいて、ゲーム処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、プレーヤオブジェクト、敵オブジェクトやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【0049】
またゲーム演算部はヒット判定をおこなってもよい。例えばプレーヤオブジェクトと敵オブジェクト(他のオブジェクトの一例)とのヒット判定を行う。ここで、プレーヤオブジェクト、敵オブジェクトとは、各オブジェクトが所持する武器(例えば、剣、ブーメラン、斧)などを含む。プレーヤオブジェクトと敵オブジェクトとがヒットしたか否かを判定する処理を行う場合には、プレーヤオブジェクトのヒット領域と、敵オブジェクトのヒット領域とに基づいて、第1のモデルオブジェクトと第2のモデルオブジェクトとがヒットしたか否かを判定してもよい。
【0050】
ゲーム演算部118は、分断状態に基づき、ゲーム処理に用いるゲームパラメータ(成績、得点、体力、ライフ等)を演算し、ゲームパラメータに基づきゲーム演算を行う。
【0051】
ゲーム演算部118は、複数のステージを用意し、各ステージにおいて、プレーヤオブジェクトが、ステージに存在する所定数の敵オブジェクトを倒したか否かを判断する処理を行う。具体的には、ヒット判定結果に基づいて、プレーヤオブジェクトの体力値(ゲームパラメータの一例)や、敵オブジェクトの体力値(ゲームパラメータの一例)を変動させる処理を行う。例えば、プレーヤの攻撃の入力情報が検知されると、プレーヤの攻撃の入力情報に基づいて、プレーヤオブジェクトを移動・動作させ(攻撃のモーションを実行させ)、敵オブジェクトにヒットしたと判定されると、敵オブジェクトの体力値から所定値(例えば攻撃に応じたダメージ値)を減算する処理を行う。そして、敵オブジェクトの体力値が零になると、敵オブジェクトを倒したと判断する。特に、本実施形態のゲーム演算部118は、分断されたと判定された場合に、敵オブジェクトの体力値を零にする処理を行なうようにしている。
【0052】
また、プレーヤオブジェクトが敵オブジェクトからの攻撃を防御できず、敵オブジェクトからの攻撃を受けた場合には、プレーヤオブジェクトの体力値から所定値を減算する処理を行う。そして、プレーヤオブジェクトの体力値が零になると、ゲームが終了する。
【0053】
ヒットエフェクト処理部119は、プレーヤオブジェクトが敵オブジェクトにヒットしたと判定された場合には、ヒットエフェクト処理を行う。例えば、ヒットエフェクト処理部119は、敵オブジェクトが分断されたと判定された場合に、敵オブジェクトの分断面から、液体が放出する画像生成処理、光が放出する画像生成処理等を行う。
【0054】
エフェクトデータ記憶部174には、分断状態に対応づけてパターンの異なるエフェクト要素(例えばエフェクト用のオブジェクトやエフェクト用のテクスチャ)が記憶されている。ヒットエフェクト処理部119は、分断状態基づき、対応するエフェクト要素を選択し、選択したエフェクト要素を用いて画像生成を行うための処理を行う。
【0055】
またヒットエフェクト処理部119は分断状態に対応づけてパターンの異なるエフェクト処理をおこなってもよい。例えばピクセルシェーダーに切断時のエフェクト放出物を異なる描画パターンで描画させてもよい。
【0056】
描画部120は、処理部100で行われる種々の処理(ゲーム処理)の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。いわゆる3次元ゲーム画像を生成する場合には、まず、座標変換(ワールド座標変換、カメラ座標変換)、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ(プリミティブの頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が作成される。そして、この描画データ(オブジェクトデータ)に基づいて、透視変換後(ジオメトリ処理後)のオブジェクト(1又は複数のプリミティブ)を画像バッファ173(フレームバッファや中間バッファ(ワークバッファ)などのピクセル単位で画像情報を記憶できるバッファ。VRAM)に描画する。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として1画面に表示できるように描画処理を行う。
【0057】
描画部120は、ジオメトリ処理部122、シェーディング処理部124、αブレンディング部126、陰面消去部128を含む。
【0058】
ジオメトリ処理部122は、オブジェクトに対してジオメトリ処理を行う。具体的には、座標変換、クリッピング処理、透視変換、或いは光源計算等のジオメトリ処理を行う。そして、ジオメトリ処理後(透視変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、オブジェクトデータ記憶部179に保存される。
【0059】
シェーディング処理部124は、オブジェクトに対して陰影付けをするシェーディング処理を行う。具体的には、ジオメトリ処理部122で行われた光源計算の結果(陰影情報)に基づき、オブジェクトの描画ピクセルの輝度を調整する。必要に応じて、ジオメトリ処理部122で光源計算を行わずに、シェーディング処理部124で光源計算を行わせてもよい。シェーディング処理としては、例えば、フラットシェーディング(flat Shading)、あるいはグローシェーディング(Gourand Shading)やフォンシェーディング(Phong Shading)などのスムーズシェーディングをオブジェクトに対して行うことができる。
【0060】
αブレンディング部126は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)を行う。例えば通常αブレンディングの場合には下式(1)〜(3)の処理を行う。
【0061】
=(1−α)×R+α×R (1)
=(1−α)×G+α×G (2)
=(1−α)×B+α×B (3)
【0062】
また、加算αブレンディングの場合には下式(4)〜(6)の処理を行う。
【0063】
=R+α×R (4)
=G+α×G (5)
=B+α×B (6)
【0064】
また、減算αブレンディングの場合には下式(7)〜(9)の処理を行う。
【0065】
=R−α×R (7)
=G−α×G (8)
=B−α×B (9)
【0066】
ここで、R、G、Bは、画像バッファ173に既に描画されている画像(元画像)のRGB成分であり、R、G、Bは、画像バッファ173に描画すべき画像のRGB成分である。また、R、G、Bは、αブレンディングにより得られる画像のRGB成分である。なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0067】
隠面消去部128は、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ175(奥行きバッファ)を用いて、Zバッファ法(奥行き比較法、Zテスト)により隠面消去処理を行う。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファ175に格納されるZ値を参照する。そして参照されたZバッファ175のZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファ175のZ値を新たなZ値に更新する。
【0068】
音生成部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0069】
なお、本実施形態のゲームシステムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0070】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよい。
【0071】
また、本実施形態のゲームシステムでは、ネットワーク(伝送ライン、通信回線)を介して接続された他の1又は複数のゲームシステムと、データ(例えば入力情報)を送受信する処理を行い、オンラインゲームを実現できるようにしてもよい。
【0072】
2.本実施形態の手法の概要
2−1.ゲーム概要
図2は、本実施形態のゲームの概要を説明するための図である。
【0073】
本実施形態のゲームシステムは、オブジェクト空間において、オブジェクトが分断される画像を生成するゲームシステムである。本実施形態では、オブジェクト空間に存在するプレーヤオブジェクトPOが敵オブジェクトEO(他のオブジェクトの一例)に対して攻撃を行う。本実施形態のゲームシステムは、プレーヤから入力された攻撃入力情報(縦切り攻撃入力情報、横切り攻撃入力情報)を受け付けると、プレーヤオブジェクトPOが装備する剣SDで敵オブジェクトEOを斬る攻撃モーションを行わせる処理を行う。
【0074】
例えば、本実施形態では、「縦斬り攻撃入力情報」を受け付けると、プレーヤオブジェクトPOに、剣SDを上から下へ振り下ろす「縦斬り」の攻撃動作を行わせ、「横斬り攻撃入力情報」を受け付けると、プレーヤオブジェクトPOに、剣SDを右から左へ或いは左から右へ振る「横斬り」の攻撃動作を行わせる。
【0075】
2−2.分断処理
また、本実施形態では、プレーヤから入力された攻撃入力情報を受け付けると、攻撃対象である敵オブジェクトEOを切断する処理(分断処理の一例)を行う。
【0076】
例えば、本実施形態では、「縦斬り攻撃入力情報」を受け付けると、図3(A)に示すように、攻撃対象となる敵オブジェクトEOに対して、攻撃方向である縦方向(Y軸方向)に平行な仮想面VPを設定し、図3(B)に示すように、敵オブジェクトEOを、仮想面VPを境に複数のオブジェクトEO1、EO2に分離する処理を行う。
【0077】
また「横斬り攻撃入力情報」を受け付けると、図4(A)に示すように、攻撃対象となる敵オブジェクトEOに対して、攻撃方向である横方向(X軸方向)に平行な仮想面VPを設定し、図4(B)に示すように、敵オブジェクトEOを、仮想面VPを境に複数のオブジェクトEO1〜EO4に分離する処理を行う。
【0078】
より詳細には、「縦斬り攻撃入力情報」を受け付けた場合には、図5(A)に示すように、プレーヤオブジェクトPOの代表点PPと敵オブジェクトEOの代表点EPとを通過する線を含み、攻撃方向である縦方向(Y軸方向)に平行な仮想面VPを設定する。また、図5(B)に示すように、プレーヤオブジェクトPOの方向PV(又は移動方向)に延び、縦方向(Y軸方向)に平行な仮想面VPを設定するようにしてもよい。
【0079】
同様に、「横斬り攻撃入力情報」を受け付けた場合には、図6(A)に示すように、プレーヤオブジェクトPOの代表点PPと敵オブジェクトEOの代表点EPとを通過する線を含み、攻撃方向である横方向(X軸方向)に平行な仮想面VPを設定する。また、図6(B)に示すように、プレーヤオブジェクトPOの方向PV(又は移動方向)に延び、横方向(X軸方向)に平行な仮想面VPを設定するようにしてもよい。
【0080】
このように仮想面VPは、プレーヤオブジェクトPOと敵オブジェクトEOの位置や、プレーヤオブジェクトPOの向き或いは攻撃方向に基づき設定される。また入力部からの方向指示の入力情報に基づき仮想面VPを移動するようにしてもよい。例えば図5(B)に示す例において、方向指示の入力情報に基づいて仮想面VPを横方向(プレーヤオブジェクトの方向PVに垂直な方向)に平行移動するようにしてもよいし、図6(B)に示す例において、方向指示の入力情報に基づいて仮想面VPを縦方向(プレーヤオブジェクトの方向PVに垂直な方向)に平行移動するようにしてもよい。
【0081】
2−3.分断対象となるオブジェクトの構成
本実施の形態の分断対象となるオブジェクトの構成(モデル情報)について説明する。
【0082】
本実施形態で分断対象となるオブジェクトは、図7に示すように、モデルオブジェクトMOB(キャラクタ)が、複数のパーツオブジェクト(腰12、胸14、首16、頭18、右上腕20、右前腕22、右手24、左上腕26、左前腕28、左手30、右股R32、右すね34、右足36、左股38、左すね40、左足42)により構成されている。そして、これらのパーツオブジェクト(部位)の位置や回転角度(方向)は、スケルトンモデルを構成する骨B0〜B19の位置(関節J0〜J15の位置)や回転角度(親の骨に対する子の骨の相対的な回転角度)により特定される。なお、これらの骨、関節は仮想的なものであり、現実に表示されるオブジェクトではない。
【0083】
本実施形態では、モデルオブジェクトMOBのスケルトンを構成する骨(モーション骨、関節、パーツオブジェクト)が親子(階層)構造を有している。例えば、手24、30の骨B7、B11の親は前腕22、28の骨B6、B10となり、B6、B10の親は上腕20、26の骨B5、B9となる。また、B5、B9の親は胸14の骨B1となり、B1の親は腰12の骨B0となる。また、足36、42の骨B15、B19の親はすね34、40の骨B14、B18となり、B14、B18の親は股32、38の骨B13、B17となり、B13、B17の親は腰12の骨B12、B16となる。
【0084】
モーションデータ記憶部172には、これらの骨(パーツオブジェクト、関節)の位置、回転角度が、モーションデータとして記憶されている。なお骨の回転角度だけをモーションデータに含ませて、骨の位置(関節の位置)についてはモデルオブジェクトのモデルデータの中に含ませてもよい。
【0085】
例えば、歩きモーションが、M0、M1、M2・・・・MNという基準モーション(各フレームでのモーション)により構成されているとする。するとこれらの各基準モーションM0、M1、M2・・・・MNでの各骨の位置又は回転角度が、モーションデータとして予め記憶されている。そして、例えば基準モーションM0の各パーツオブジェクトの位置、回転角度を読み出し、次に基準モーションM1の各パーツオブジェクトの位置、回転角度を読み出すというように、基準モーションのモーションデータを時間経過に伴い順次読み出すことで、モーション処理(モーション再生)が実現される。
【0086】
なお、モーションデータ記憶部172に記憶するモーションデータは、一般的には、モーションキャプチャにより取得したり、デザイナが作成する。またモーションデータは、親の骨の位置、回転角度に対する子の骨の相対的な位置、相対的な回転角度(3軸周りの回転角度)で表される。例えば、親の骨BMPに対する子の骨BMCの、X軸、Y軸、Z軸回りの回転角度α、β、γが、モーションデータとして記憶されてもよい。
【0087】
また、図7においてRPはモデルオブジェクトMOBの代表点であり、このRPは例えば腰(J0)の真下の位置(高さ零の位置)に設定されている。また図7の骨B1〜B19以外にも、モーション骨によるモデルオブジェクトの変形を補助する補助骨を設けてもよい。
【0088】
2−4.代表点の位置情報演算処理
本実施の形態では、オブジェクトに複数の代表点を設定し、入力情報に基づいて代表点の位置情報(位置座標等)を演算する代表点位置情報演算処理を行う。
【0089】
図8は、本実施の形態のオブジェクトに設定される複数の代表点について説明するための図である。
【0090】
D1〜D32がオブジェクトに設定された代表点である。代表点D1〜D32はオブジェクトを構成する複数の部位の各部位に対応付けて(少なくとも1つ)設定されていてもよい。図7におけるRP(モデルオブジェクトMOBの代表点)は、モデルオブジェクトMOBの位置座標を設定するために用いられるが、以下に説明する代表点はオブジェクトのの各部位の位置を把握するために用いられてもよい。
【0091】
代表点D1〜D4はオブジェクトの頭部に対応付けて設定された代表点である。オブジェクトの頭部を仮想的に4つの部位B1からB4(部位B1は左目付近の部位であり、部位B2は左目付近の部位であり、部位B3は口の左側付近の部位であり、部位B4は口の右側付近の部位)に分轄して、代表点D1からD4はそれぞれ部位B1〜B4に対応させてもよい。
【0092】
代表点D5、D6はオブジェクトの胸部に対応付けて設定された代表点である。オブジェクトの胸部を仮想的に2つの部位B5、B6(部位B5は左胸付近の部位であり、部位B6は右胸付近の部位である)に分轄して、代表点D5、D6はそれぞれ部位B5、64に対応させてもよい。
【0093】
代表点D7、D9はオブジェクトの左上腕部に対応付けて設定された代表点である。オブジェクトの左上腕部を仮想的に2つの部位B7、B9(部位B7は左上腕上部付近の部位であり、部位B9は左上腕下部付近の部位である)に分轄して、代表点D7、D9はそれぞれ部位B7、B9に対応させてもよい。
【0094】
代表点D8、D10はオブジェクトの右上腕部に対応付けて設定された代表点である。オブジェクトの右上腕部を仮想的に2つの部位B8、B10(部位B8は右上腕上部付近の部位であり、部位B10は右上腕下部付近の部位である)に分轄して、代表点D8、D10はそれぞれ部位B8、B10に対応させてもよい。
【0095】
代表点D11、D13はオブジェクトの左下腕部に対応付けて設定された代表点である。オブジェクトの左下腕部を仮想的に2つの部位B11、B13(部位B11は左下腕上部付近の部位であり、部位B13は左下腕下部付近の部位である)に分轄して、代表点D11、D13はそれぞれ部位B11、B13に対応させてもよい。
【0096】
代表点D12、D14はオブジェクトの右下腕部に対応付けて設定された代表点である。オブジェクトの右下腕部を仮想的に2つの部位B12、B14(部位B12は右下腕上部付近の部位であり、部位B14は右下腕下部付近の部位である)に分轄して、代表点D12、D14はそれぞれ部位B12、B14に対応させてもよい。
【0097】
代表点D15、D17はオブジェクトの左手部に対応付けて設定された代表点である。オブジェクトの左手部を仮想的に2つの部位B15、B17(部位B15は左手上部付近の部位であり、部位B17は左手下部付近の部位である)に分轄して、代表点D15、D17はそれぞれ部位B15、B17に対応させてもよい。
【0098】
代表点D16、D18はオブジェクトの右手部に対応付けて設定された代表点である。オブジェクトの右手部を仮想的に2つの部位B16、B18(部位B16は右手上部付近の部位であり、部位B18は右手下部付近の部位である)に分轄して、代表点D16、D18はそれぞれ部位B16、B18に対応させてもよい。
【0099】
代表点D19、D20はオブジェクトの腰部に対応付けて設定された代表点である。オブジェクトの腰部を仮想的に2つの部位B19、B20(部位B19は腰部付近の部位であり、部位B20は腰部付近の部位である)に分轄して、代表点D19、D20はそれぞれ部位B19、B20に対応させてもよい。
【0100】
代表点D21、D23はオブジェクトの左股部に対応付けて設定された代表点である。オブジェクトの左股部を仮想的に2つの部位B21、B23(部位B21は左股上部付近の部位であり、部位B23は左股下部付近の部位である)に分轄して、代表点D21、D23はそれぞれ部位B21、B23に対応させてもよい。
【0101】
代表点D22、D24はオブジェクトの右股部に対応付けて設定された代表点である。オブジェクトの右股部を仮想的に2つの部位B22、B24(部位B22は右股上部付近の部位であり、部位B24は右股下部付近の部位である)に分轄して、代表点D22、D24はそれぞれ部位B22、B24に対応させてもよい。
【0102】
代表点D25、D27はオブジェクトの左すね部に対応付けて設定された代表点である。オブジェクトの左すね部を仮想的に2つの部位B25、B27(部位B25は左すね上部付近の部位であり、部位B27は左すね下部付近の部位である)に分轄して、代表点D25、D27はそれぞれ部位B25、B27に対応させてもよい。
【0103】
代表点D26、D28はオブジェクトの右すね部に対応付けて設定された代表点である。オブジェクトの右すね部を仮想的に2つの部位B26、B28(部位B26は左すね上部付近の部位であり、部位B28は左すね下部付近の部位である)に分轄して、代表点D26、D28はそれぞれ部位B26、B28に対応させてもよい。
【0104】
代表点D29、D31はオブジェクトの左足部に対応付けて設定された代表点である。オブジェクトの左足部を仮想的に2つの部位B29、B31(部位B29は左足上部付近の部位であり、部位B31は左足下部付近の部位である)に分轄して、代表点D29、D31はそれぞれ部位B29、B31に対応させてもよい。
【0105】
代表点D30、D32はオブジェクトの右足部に対応付けて設定された代表点である。オブジェクトの右足部を仮想的に2つの部位B30、B32(部位B30は右足上部付近の部位であり、部位B32は右足下部付近の部位である)に分轄して、代表点D30、D32はそれぞれ部位B30、B32に対応させてもよい。
【0106】
各代表点D1からD32は、例えば図7のスケルトンモデルを構成する骨B0〜B19の位置(関節J0〜J15の位置)に関連づけて、モデル情報として設定しておいてもよい。例えば骨B0〜B19上に代表点を設定してもよい。また関節J0〜J15を代表点としてもよい。
【0107】
そして各フレーム毎にオブジェクトの位置やモーション演算を行う際に、オブジェクトの位置情報や骨B0〜B19の位置(関節J0〜J15の位置)情報に基づき各代表点の位置座標を演算するようにしても良い。
【0108】
図9は代表点の位置情報について説明するための図である。本実施の形態では、オブジェクトの代表点の位置情報を各フレーム毎に演算し、図9に示すように、オブジェクト情報310として、オブジェクトの代表点320の位置座標330を代表点320が属するオブジェクトOB1に関連づけて記憶させている。
【0109】
オブジェクトが有する各代表点320の位置情報330はたとえば、各代表点のワールド座標系における位置座標でもよいし、各オブジェクトのローカル座標系における位置座標でもよい。ただし、各オブジェクトのローカル座標系における位置座標としてもつ場合には、オブジェクトが複数の部分オブジェクトに分断された場合も同じローカル座標系の位置座標としてもつことが好ましい(例えば分断後も分断前のオブジェクトのローカル座標系における位置座標としてもってもよいし、分断後のいずれかの部分オブジェクトのローカル座標系における位置座標としてもってもよい)。
【0110】
またオブジェクトが有する各代表点の位置情報はオブジェクト情報として、オブジェクトに関連づけて保持されてもよい。オブジェクトが複数の部分オブジェクトに分断された後も、分断前のオブジェクトに関連づけてオブジェクトが有する各代表点の位置情報を管理するようにしてもよい。またオブジェクトが複数の部分オブジェクトに分断された後は、分断後の代表点の位置情報は、代表点が属する新たたな分断オブジェクトに関連づけて管理されてもよいし、いずれか一方のオブジェクトに関連づけて管理するようにしてもよい。例えば分断後の主たるオブジェクト(例えば分断後の本体にあたるほう)に関連づけて管理するようにしてもよい。
【0111】
また各代表点の位置情報は、オブジェクトの分断前後に関わらず、オブジェクトが存在している間は、各フレーム毎にもとめるようにしても良いし、オブジェクトの分断後に分断された複数の部分オブジェクトに設定された前記複数の代表点の位置情報(位置座標等)を演算するようにしてもよい。
【0112】
2−5.分断状態判断処理
本実施の形態では、前記代表点の位置情報に基づき、オブジェクトの分断状態(分断の有無、分断された部位等)を判断する。
【0113】
図10は、オブジェクトOB1(図8参照)が分断された場合の各代表点の距離の変化について説明するための図である。同図に示すようにオブジェクトOB1(図8参照)の頭部の右部分が分断されている。この場合分断後の代表点D1’と代表点D3’の距離K1’は、分断前の代表点D1’と代表点D3’の距離の距離K1と同じである。しかし分断後の代表点D1’と代表点D2’の距離L2は、分断前の代表点D1と代表点D2の距離の距離K2より長くなっている。代表点D1と代表点D3は同じ関節の同じ部位に設定された代表点であるため、分断されなければ距離は一定K1である。従って所与のフレームにおいて演算された代表点D1と代表点D3の距離がK1より大きくなった場合には、代表点D1が属する部位(ここではB1)と代表点D3が属する部位(ここではB3)が分断されていると判断することができる。
【0114】
また同図に示すように、オブジェクトOB1(図8参照)の右足部36が右すね部34から分断されている。この場合分断後の代表点D28’と代表点D30’の距離K3’は、分断前の代表点D28と代表点D30の距離の距離K3より長くなっている。ここで代表点D28と代表点D30は異なる関節の異なる部位に設定された代表点である。
【0115】
図11は、分断前後の代表点D28と代表点D30の位置関係の変化について説明するための図である。右足部36と右すね部34は図示しない関節で接続されているため、右足部36と右すね部34の位置関係は変化する。例えば右足部36は右すね部34に対して、36−1〜36−3に示すように様々な位置関係を取ることができる。従って代表点D28と代表点D30の距離もK3−1〜K31−3と変化する。そこで変化可能な距離の最大値K3maxを求めておいて、代表点D28と代表点D30の距離が変化可能な距離の最大値K3maxより大きくなった場合には、代表点D1が属する部位(ここではB1)と代表点D3が属する部位(ここではB3)が分断されていると判断することができる。
【0116】
2−6.分断ライン検出処理と分断ライン情報を用いた分断状態判断処理
本実施の形態の他の態様では、代表点間を結ぶ仮想的なラインを設定し、前記分断処理によって分断されたラインを検出し、分断されたラインを特定するための分断ライン情報を保持し、分断ライン情報に基づき、オブジェクトの分断状態を判断する。
【0117】
図13は、代表点間に設定される仮想的なラインと、オブジェクトOB1(図8参照)が分断された場合の分断されるラインの検出について説明するための図である。同図に示すようにオブジェクトOB1が第1の仮想面410で分断された場合には、代表点D8と代表点D10を結ぶ仮想的なラインL1が分断されている。また同図に示すようにオブジェクトOB1が第2の仮想面420で分断された場合には、代表点D1と代表点D2を結ぶ仮想的なラインL2、代表点D3と代表点D4を結ぶ仮想的なラインL3、代表点D5と代表点D6を結ぶ仮想的なラインL4、代表点D19と代表点D20を結ぶ仮想的なラインL5が分断されている。
【0118】
本実施の形態では分断時の各代表点の位置情報と入力情報によって設定される分断用の仮想面の位置関係に基づき分断処理によって分断されたラインを検出する。そして分断されたラインを特定するための分断ライン情報を保持しておく。例えば図14(A)に示すように分断されたラインID452と、当該ラインに対応する代表点情報454(当該ラインの分断前の端点にあたる代表点ID)を分断ライン情報450として、分断ラインが属するオブジェクトOB1に関連づけて記憶させてもよい。
【0119】
このようにすると、分断ライン情報を参照することで、分断後の任意のタイミングでオブジェクトの分断状態を判断することが出来る。
【0120】
なお図7の関節J1〜J15を代表点とし、骨B1〜B19(骨は関節を繋ぐラインに相当)を代表点を繋ぐ仮想的なラインと考えて、分断される骨の情報を分断ライン情報として記憶してもよい。
【0121】
この場合、図14(B)に示すように分断ライン情報460として、骨ID462と当該骨の分断の有無を示す分断フラグ464をもたせてもよい。
【0122】
2−7.分断状態に応じたモーション選択
本実施の形態では、分断状態に対応づけてパターンの異なるモーションデータを記憶し、分断状態に基づき、対応するモーションデータを選択し、選択したモーションデータを用いて画像生成を行う。
【0123】
図12(A)(B)は、オブジェクトの分断状態のことなる例を示している。図12(A)は、オブジェクトOB1が、右股32と右すね34と右足36を含む第1の部分410とそれ以外の第2の部分420に分断された状態(第1の分断状態)を示している。
【0124】
分断後は第1の部分410は第1の部分オブジェクトとなり、第2の部分420は第2の部分オブジェクトとなり、いずれも独立して移動動作する別個のオブジェクトとなる。
【0125】
図12(B)は、オブジェクトOB1が、左上腕26の下部と左下腕部28と左手部30を含む第3の部分430とそれ以外の第4の部分440に分断された状態(第2の分断状態)を示している。
【0126】
分断後は第3の部分430は第3の部分オブジェクトとなり、第4の部分440は第4の部分オブジェクトとなり、いずれも独立して移動動作する別個のオブジェクトとなる。
【0127】
このような場合、分断後の第2の部分オブジェクトと第4の部分オブジェクトは、分断された部分が異なるので、使用するモーションデータも異なってくる。
【0128】
本実施の形態では、オブジェクトがどの部分が分断されたかに応じて異なる動作をさせるための分断された部位に応じたモーションデータが複数用意している。
【0129】
例えば頭が分断された場合(第1の分断状態)では、本体(頭以外の部分)の動作を表現する場合にはモーションデータmd1を使用し、右腕が分断された場合(第2の分断状態)の本体(右腕以外の部分)の動作を表現する場合にはモーションデータmd2を使用し、左腕が分断された場合(第3の分断状態)の本体(左腕以外の部分)の動作を表現する場合にはモーションデータmd3を使用し、右足が分断された場合(第4の分断状態)の本体(右足以外の部分)の動作を表現する場合にはモーションデータmd4使用し、左足が分断された場合(第5の分断状態)の本体(左足以外の部分)の動作を表現する場合にはモーションデータmd5を使用するものとする。
【0130】
図12(A)の場合は第4の分断状態であるので、第2の部分オブジェクト420のモーションとしては、モーションデータmd4を選択する。また図12(B)の場合は第3の分断状態であるので、第4の部分オブジェクト440のモーションとしては、モーションデータmd3を選択する。
【0131】
2−8.分断状態に応じたエフェクト選択
本実施形態では、プレーヤオブジェクトの攻撃により敵オブジェクトが切断された場合に、敵オブジェクトEOが受けたダメージを表すエフェクト表示物を、敵オブジェクトに関連付けて描画する。本実施の形態では敵オブジェクトの分断状態に応じて異なるパターのエフェクト標示物を標示する制御を行う。
【0132】
図15(A)(B)は分断状態とエフェクトパターンについて説明するための図である。図15(A)は敵オブジェクトEOが、右股32で分断された状態(第1の分断状態)とそのときに分断後に表示されるエフェクト表示物450を示している。 図15(B)は敵オブジェクトEOが、左上腕26で分断された状態(第2の分断状態)とそのときに分断後に表示されるエフェクト表示物480を示している。
【0133】
ここではエフェクト表示物として、分断によって敵オブジェクトEO(例えばロボット)から放出される液体(オイル)を表しているが、切断によって敵オブジェクトEOから放出される炎や光、或いはロボットを構成する部品を、エフェクト表示物として表示するようにしてもよい。
【0134】
本実施の形態では図15(A)(B)に示すように敵オブジェクトEOの分断状態が異なると異なるパターンのエフェクト表示物を表示する。
【0135】
異なるパターンのエフェクト表示物に対応した異なるモデルのエフェクト用オブジェクトを用意して、分断状態に応じて選択して、選択したエフェクト用オブジェクトを用いて画像生成を行うようにしてもよい。
【0136】
また異なるパターンのエフェクト表示物に対応した異なるテクスチャを用意して、分断状態に応じて選択して、選択したテクスチャをもちいて画像生成を行うようにしてもよい。
【0137】
また異なるパターンのエフェクト表示物に対応した異なるシェーディングパターンのプログラムを用意して、分断状態に応じて選択してピクセルシェーダーに実行させてもよい。
【0138】
2−9.ゲームパラメータの演算
本実施形態では、分断状態に基づきゲームパラメータ(得点、体力、難易度等)を算出してもよい。
【0139】
分断状態に基づき得点を算出する場合には、例えば倒した敵オブジェクトの分断状態に基づき分断された部位を判断して、部位に応じて設定された得点を加算するようにしてもよい。また分断状態に基づき分断された部位の数を判断し、部位の数に応じて設定された得点を加算するようにしても良い。
【0140】
このようにすることで、敵オブジェクトEOに与えたダメージに応じた得点を得ることができる。本実施の形態によれば、代表点の位置情報や分断ライン情報に基づき分断状態が判断出来るので、ゲーム中任意のタイミングで分断状態の判断が出来る。また分断処理モジュール以外の他のモジュールにおいても代表点の位置情報や分断ライン情報に基づき分断状態が判断出来る。
【0141】
3.処理
次に、本実施形態の処理の一例(代表点情報に基づき分断状態を判断を判断する場合)について図16のフローチャートを用いて説明する。本実施の形態では各フレーム毎に以下の処理を行う。
【0142】
入力情報を受け付けると以下のステップS20〜S50の処理を行う(ステップS10)。
【0143】
まず前記入力情報に基づいてオブジェクトの位置座標を演算し、オブジェクトの位置座標に基づき代表点の位置座標を演算する(ステップS20)。
【0144】
また入力情報に基づき敵オブジェクトとのヒットチェックを行う(ステップS30)。ヒット有りの場合には(ステップS40)、分断処理を行う(ステップS50)。入力情報が攻撃指示の入力情報である場合には、プレーヤオブジェクトから所定範囲内に位置する敵オブジェクトに対して、攻撃方向、プレーヤオブジェクトの位置、向き、敵オブジェクトの位置に基づき、仮想面を設定し、攻撃方向については、攻撃指示の入力情報(縦斬り攻撃入力情報であるか、横斬り攻撃入力情報であるか)に基づき判断して、敵オブジェクトと仮想面のヒットチェック処理を行い、ヒットした場合には敵オブジェクトを、設定した仮想面を境に複数のオブジェクトに切断(分離)する処理を行ってもよい。
【0145】
次にモーション選択タイミングである場合には(ステップS60)、代表点情報に基づき分断状態を判断し、分断状態に基づきモーションデータの選択を行う(ステップS70)。
【0146】
またゲームパラメータ算出タイミングである場合には(ステップS80)、代表点情報に基づき分断状態を判断し、分断状態に基づきゲームパラメータの算出を行う(ステップS90)。
【0147】
次に、本実施形態の他の処理の一例(分断ライン情報に基づき分断状態を判断を判断する場合)について図17のフローチャートを用いて説明する。本実施の形態では各フレーム毎に以下の処理を行う。
【0148】
入力情報を受け付けると以下のステップS120〜S160の処理を行う(ステップS10)。
【0149】
まず前記入力情報に基づいてオブジェクトの位置座標を演算し、オブジェクトの位置座標に基づき代表点の位置座標を演算する(ステップS120)。
【0150】
また入力情報に基づき敵オブジェクトとのヒットチェックを行う(ステップS130)。ヒット有りの場合には(ステップS140)、分断処理を行う(ステップS150)。入力情報が攻撃指示の入力情報である場合には、プレーヤオブジェクトから所定範囲内に位置する敵オブジェクトに対して、攻撃方向、プレーヤオブジェクトの位置、向き、敵オブジェクトの位置に基づき、仮想面を設定し、攻撃方向については、攻撃指示の入力情報(縦斬り攻撃入力情報であるか、横斬り攻撃入力情報であるか)に基づき判断して、敵オブジェクトと仮想面のヒットチェック処理を行い、ヒットした場合には敵オブジェクトを、設定した仮想面を境に複数のオブジェクトに切断(分離)する処理を行ってもよい。
【0151】
また代表点間を結ぶ仮想的なラインを設定し、前記分断処理によって分断されたラインを検出し、分断されたラインを特定するための分断ライン情報を保持する(ステップS160)
次にモーション選択タイミングである場合には(ステップS170)、分断ライン情報に基づき分断状態を判断し、分断状態に基づきモーションデータの選択を行う(ステップS180)。
【0152】
またゲームパラメータ算出タイミングである場合には(ステップS190)、分断ライン情報に基づき分断状態を判断し、分断状態に基づきゲームパラメータの算出を行う(ステップS200)。
【0153】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【符号の説明】
【0154】
100 処理部、110 代表点位置情報演算部、111 オブジェクト空間設定部、
112 移動・動作処理部、113 仮想カメラ制御部、114 受け付け部、
115 分断状態判断部、116 分断処理部、117 分断ライン検出部、
118 ゲーム演算部、119 ヒットエフェクト処理部、120 描画部、
122 ジオメトリ処理部、124 シェーディング処理部、126 αブレンディング部、128 隠面消去部、130 音生成部、160 入力部、170 記憶部、171 主記憶部、172 モーションデータ記憶部、173 画像バッファ、174 エフェクトデータ記憶部、175 Zバッファ、179 オブジェクトデータ記憶部、
180 情報記憶媒体、190 表示部、192 音出力部、196 通信部


【特許請求の範囲】
【請求項1】
オブジェクト空間において、オブジェクトが分断される画像を生成するゲーム装置のためのプログラムであって、
入力情報を受け付ける受け付け手段と、
オブジェクトに複数の代表点を設定し、前記入力情報に基づいて代表点の位置情報を演算する代表点位置情報演算手段と、
前記入力情報に基づいてオブジェクトの分断の有無を判断し、分断ありと判断した場合にはオブジェクトを複数の部分オブジェクトに分断する分断処理を行う分断処理手段と、
前記代表点の位置情報に基づき、オブジェクトの分断状態を判断する分断状態判断手段と、
前記分断状態に基づき、画像生成処理またはゲームパラメータ演算処理の少なくとも1つを行う処理手段と、してコンピュータを機能させることを特徴とするプログラム。
【請求項2】
請求項1において
前記代表点はオブジェクトを構成する部位に対応付けて設定されており、
分断状態判断手段は、
所与の部位に対応付けられた代表点の位置情報と他の部位に対応付けられた代表点の位置情報に基づき所与の部位と他の部位の位置関係を求め、当該位置関係が所定の分断条件を満たしていると判断した場合には、所与の部位を含む部分と他の部位を含む部分は分断されている分断状態であると判断することを特徴とするプログラム。
【請求項3】
請求項1において、
前記代表点位置情報演算手段は、
オブジェクトの分断後に分断された複数の部分オブジェクトに設定された前記複数の代表点の位置情報を演算することを特徴とするプログラム。
【請求項4】
オブジェクト空間において、オブジェクトが分断される画像を生成するゲーム装置のためのプログラムであって、
入力情報を受け付ける受け付け手段と、
オブジェクトに複数の代表点を設定し、前記入力情報に基づいて代表点の位置情報を演算する代表点位置情報演算手段と、
前記入力情報に基づいてオブジェクトの分断の有無を判断し、分断ありと判断した場合にはオブジェクトを複数の部分オブジェクトに分断する分断処理を行う分断処理手段と、
前記代表点間を結ぶ仮想的なラインを設定し、前記分断処理によって分断されたラインを検出し、分断されたラインを特定するための分断ライン情報を保持する分断ライン検出手段と、
前記分断ライン情報に基づき、オブジェクトの分断状態を判断する分断状態判断手段と、
分断状態に基づき、画像生成処理またはゲームパラメータ演算処理の少なくとも1つを行う処理手段と、してコンピュータを機能させることを特徴とするプログラム。
【請求項5】
請求項1乃至4のいずれかにおいて
前記処理手段は、
分断状態に基づき、分断後の部分オブジェクトの移動や動作パターン、分断後の部分オブジェクトに付随するエフェクトパターンの少なくとも1つを決定して、決定した移動や動作パターン及びエフェクトパターンの少なくとも1つに従って画像生成処理を行う画像生成処理手段を含むことを特徴とするプログラム。
【請求項6】
請求項1乃至5のいずれかにおいて
前記画像生成処理手段は、
分断状態に対応づけてパターンの異なるモーションデータを記憶し、
分断状態に基づき、対応するモーションデータを選択し、選択したモーションデータを用いて画像生成を行うことを特徴とするプログラム。
【請求項7】
請求項1乃至6のいずれかにおいて、
前記処理手段は、
分断状態に基づき、ゲーム処理に用いるゲームパラメータを演算し、ゲームパラメータに基づきゲーム演算を行うゲーム演算手段と、を含むことを特徴とするプログラム。
【請求項8】
コンピュータにより読取可能な情報記憶媒体であって、請求項1〜7のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
【請求項9】
オブジェクト空間において、オブジェクトが分断される画像を生成するゲームシステムであって、
入力情報を受け付ける受け付け手段と、
オブジェクトに複数の代表点を設定し、前記入力情報に基づいて代表点の位置情報を演算する代表点位置情報演算手段と、
前記入力情報に基づいてオブジェクトの分断の有無を判断し、分断ありと判断した場合にはオブジェクトを複数の部分オブジェクトに分断する分断処理を行う分断処理手段と、
前記代表点の位置情報に基づき、オブジェクトの分断状態を判断する分断状態判断手段と、
前記分断状態に基づき、画像生成処理またはゲームパラメータ演算処理の少なくとも1つを行う処理手段と、を含むことを特徴とするゲームシステム
【請求項10】
オブジェクト空間において、オブジェクトが分断される画像を生成するゲームシステムであって、
入力情報を受け付ける受け付け手段と、
オブジェクトに複数の代表点を設定し、前記入力情報に基づいて代表点の位置情報を演算する代表点位置情報演算手段と、
前記入力情報に基づいてオブジェクトの分断の有無を判断し、分断ありと判断した場合にはオブジェクトを複数の部分オブジェクトに分断する分断処理を行う分断処理手段と、
前記代表点間を結ぶ仮想的なラインを設定し、前記分断処理によって分断されたラインを検出し、分断されたラインを特定するための分断ライン情報を保持する分断ライン検出手段と、
前記分断ライン情報に基づき、オブジェクトの分断状態を判断する分断状態判断手段と、
分断状態に基づき、画像生成処理またはゲームパラメータ演算処理の少なくとも1つを行う処理手段と、を含むことを特徴とするゲームシステム。

【図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


【公開番号】特開2010−170505(P2010−170505A)
【公開日】平成22年8月5日(2010.8.5)
【国際特許分類】
【出願番号】特願2009−14822(P2009−14822)
【出願日】平成21年1月26日(2009.1.26)
【出願人】(509025555)ナムコバンダイゲームスアメリカインコーポレイテッド (3)
【Fターム(参考)】