説明

プログラム、情報記憶媒体及びゲーム装置

【課題】 過去に受けたダメージによる性能低下や機能障害といったものをより自然な形で実現する。
【解決手段】キャラクタCRをパーツの階層構造によって構成し、パーツ毎にゲーム開始から今までに受けた積算ダメージ値を算出する。算出した積算ダメージ値に基づくダメージレベルを判定し、このダメージレベル及びパーツの位置関係に基づいて、機能制限度合の異なるモーションデータから何れか一つを選択して、該モーションデータに従ってキャラクタの動作を制御する。また、ダメージを負ったパーツには、火花やスモークといった破損外観物オブジェクトが付与される。また、所定の分離条件を満たすパーツ(12)及びそれから先端側のパーツ(14、16、18)は、複製されて破損物オブジェクト68として配置され、キャラクタCRから離脱落下するように移動制御される。また、複製元となったパーツの表示設定が「非表示」とされ、分離条件を満たすパーツ(12)に対応する破損パーツ12bの表示設定が「表示」に変更される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータに、3次元仮想空間を仮想カメラで撮影した画像を生成させて、ゲームを実行させるためのプログラム等に関する。
【背景技術】
【0002】
ビデオゲームのゲームジャンルは様々あるが、キャラクタが敵キャラクタや障害物によってダメージを受け、ダメージの総和が基準を超えた場合に使用不可となるケースは多々見られるところである。
例えば、プレーヤが操作するプレーヤキャラクタと、コンピュータが自動制御するCOMキャラクタとが対戦する対戦ゲームの場合であれば、互いに相手からの攻撃を受けると受けた攻撃に応じたダメージが積算され、先に基準値以上のダメージを受けた側が戦闘不能となり敗者となるケースがこれに該当する。勿論、ダメージを積算する方法に限らず、ヒットポイントから攻撃を受ける都度減算し、ヒットポイントが「0」になった場合を積算ダメージ値が基準値に達したことと同義とする方法もこれに同等と言える。
【0003】
さて、そうしたビデオゲームでは、現在どの程度のダメージを受けたかを認識することはゲームに勝利する上でプレーヤが最も気にするところの一つである。その為、キャラクタがダメージを受けたことを如何に表現するかは重要な点とされている。
【0004】
ダメージ表現の技術としては、例えば、攻撃を受けたオブジェクトから、攻撃を受けた位置を含む部分オブジェクトを切り離すとともに、部分オブジェクトが切り離された断面にポリゴンを新たに生成することによって、あたかも攻撃を受けた部分が破壊されて分離したように表現するものが知られている(例えば、特許文献1参照)。
また、各々複数のメタボールを所属させる複数のノードを、階層構造を持たせて連結することでキャラクタを構成し、外部からダメージを受けたときにメタボール毎に残存パワーを演算し、特定のメタボールの残存パワーが所定値以下となった場合に、この特定のメタボール及び階層構造におけるこの特定のメタボールより下位のメタボールをノードから崩落させ自然落下するように制御するものも知られている(例えば、特許文献2)。
【特許文献1】特許第3340970号公報
【特許文献2】特許第3760347号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
ところで、現実世界ではダメージを受けると、ダメージの程度によって何がしかの性能の低下や機能障害が出るのが一般的である。しかし、上述の従来技術では、受けたダメージの状態を視覚的に上手く表現することができるが、受けたダメージによって生じた性能の低下や機能障害を表現できていないために、破壊・損傷に係るリアリティを十分得ることができていなかった。
【0006】
特には、特定のダメージの表出と機能低下の進行が十分表現できなかった。例えば、ダメージが有る一定量に達するまでは外観上は変化していない様に見えるし正常時と同じように機能していても、ダメージが有る一定量に達した途端に第1段階目の不具合が発生する。更にダメージが次の一定量だけ追加されるまではそのまま機能が維持され、ダメージが次の一定量だけ追加された途端により重い第2段階目の不具合が発生する。そうした過程を繰り返し、ついには全く機能しなくなるといった表現ができれば、プレーヤにとっても分かり易い。従来の技術では、こうした段階的なダメージの表出と機能低下の進行を上手く表現できていなかった。
【0007】
本発明は、こうした事情を鑑みてなされたものであり、その目的とするところは、過去に受けたダメージによる性能低下や機能障害といったものをより自然な形で実現することである。
【課題を解決するための手段】
【0008】
上記の課題を解決するための第1の発明は、コンピュータに、3次元仮想空間を仮想カメラで撮影した画像を生成させて、ゲームを実行させるためのプログラムであって、複数のパーツオブジェクトで一体的に形成されたキャラクタの前記パーツオブジェクト毎に、過去に受けたダメージの積算を算出するパーツ別積算ダメージ算出手段(例えば、図6の処理部200、ゲーム演算部210、積算ダメージ算出部212、図13のステップS34)、パーツオブジェクトの積算ダメージ及び当該パーツオブジェクトの部位に基づいて、動作性能の優劣を可変して前記キャラクタの動作を制御するキャラクタ制御手段(例えば、図6の処理部200、ゲーム演算部210、モーション選択部214、図12のステップS24〜S28)、として前記コンピュータを機能させるためのプログラムである。
【0009】
別の形態として、3次元仮想空間を仮想カメラで撮影した画像を生成してゲームを実行するゲーム装置であって、複数のパーツオブジェクトで一体的に形成されたキャラクタの前記パーツオブジェクト毎に、過去に受けたダメージの積算を算出するパーツ別積算ダメージ算出手段と、パーツオブジェクトの積算ダメージ及び当該パーツオブジェクトの部位に基づいて、動作性能の優劣を可変して前記キャラクタの動作を制御するキャラクタ制御手段と、を備えたゲーム装置とすることもできる。
【0010】
第1の発明によれば、キャラクタを構成するパーツオブジェクト毎に過去に受けたダメージの積算を求め、求めたダメージの積算とそのパーツオブジェクトがキャラクタの何所を構成しているかに基づいて、動作性能の優劣を可変させてキャラクタの動作を制御することできる。つまり、ダメージの蓄積にともなう性能低下や機能障害によって動作に制限が生じていくといったダメージの進行を表現することが可能になる。
【0011】
第2の発明は、前記キャラクタは、少なくとも、胴部と、複数のパーツオブジェクトが直列的な階層構造を成して前記胴部に接続された肢部(例えば、図2の右腕10、左腕20、右脚30、左脚40)とを有しており、前記キャラクタ制御手段が、前記肢部を構成するパーツオブジェクトの積算ダメージに基づいて前記肢部の可動範囲及び/又は可動速度を可変して当該肢部の可動を制御する肢部可動制御手段(例えば、図6の処理部200、ゲーム演算部210、キャラクタ動作制御部216、図12のステップS24〜S28)を有するように前記コンピュータを機能させるための第1の発明のプログラムである。
【0012】
第2の発明によれば、第1の発明と同様の効果を奏するとともに、キャラクタが、胴に肢部が接続された構造を有するケースにおいて、肢部を複数のパーツオブジェクトが直列的な階層構造で構成し、これらパーツオブジェクトの積算ダメージに基づいて肢部の可動範囲及び/又は可動速度を可変して当該肢部の可動を制御することで、肢部毎のダメージの状況に応じた表現が可能になる。
【0013】
第3の発明は、前記肢部可動制御手段が、前記肢部を構成するパーツオブジェクトのうち、積算ダメージが最も大きいパーツオブジェクトの積算ダメージに基づいて前記肢部の可動範囲及び/又は可動速度を可変して当該肢部の可動を制御するように前記コンピュータを機能させるための第2の発明のプログラムである。
【0014】
第3の発明によれば、第2の発明と同様の効果を奏するとともに、あたかも積算ダメージが最も大きい部分から先端側の部分が機能不全に陥っているかのように表現できる。例えば、肩がダメージを負うとその腕全体を使う事が困難になることを示しており、ダメージの進行を表現する上でより一層リアリティのあるダメージ表現をすることができる。尚、ここ言う「肢部」とは、胴に相当する中核部位に接続されて特定の動作を行うときに連係して一連の動作をする部分の集合を意味する。したがって、腕や脚に限定されるものではなく、翼・尾・触覚・長首を有する頭部などもこれに該当する。また生物に限るものではなく、機械に於いても同様の構成的特長を満たせばこれに該当する。
【0015】
第4の発明は、前記肢部可動制御手段が、前記肢部を構成する各パーツオブジェクトの積算ダメージの総合又は平均に基づいて前記肢部の可動範囲及び/又は可動速度を可変して当該肢部の可動を制御するように前記コンピュータを機能させるための第2の発明のプログラムである。
【0016】
第4の発明によれば、第2の発明と同様の効果を奏するとともに、肢部全体としてのダメージ度合に応じたダメージ表現が可能になる。
【0017】
第5の発明は、前記キャラクタ制御手段が、動作性能の優劣を段階的に可変して前記キャラクタの動作を段階的に変更するように制御する、ように前記コンピュータを機能させるための第1〜第4の何れかの発明のプログラムである。
【0018】
第5の発明によれば、第1〜第4の何れか一つの発明と同様の効果を奏するとともに、動作性能の優劣を段階的に可変させてキャラクタの動作を制御することできる。つまり、ダメージの蓄積に伴う性能低下や機能障害によって動作に制限が段階的に生じていくといったダメージの進行を表現することが可能になる。
【0019】
第6の発明は、前記肢部の可動範囲及び/又は可動速度が段階的に異なる複数のモーションデータの中から、前記肢部を構成するパーツオブジェクトの積算ダメージに基づいて2つのモーションデータを選択し、該選択したモーションデータを合成することで、当該積算ダメージに相応するモーションデータを生成するモーションデータ生成手段(例えば、図16の補間モーション生成部219)として前記コンピュータを機能させ、前記肢部可動制御手段が、前記生成されたモーションデータに従って前記肢部の可動を制御するように前記コンピュータを機能させるための第2〜第4の何れか一項の発明のプログラムである。
【0020】
第6の発明によれば、第2〜第4の何れかの発明と同様の効果を奏するとともに、予め用意されている複数のモーションデータから、それらの中間的な動作のモーションデータを合成し、合成したモーションデータに従って肢部の可動を制御できる。したがって、予め多数のモーションデータを用意せずとも、ダメージの程度に応じた微細に動作性能に優劣が生じた動作を制御可能になるので、ダメージ表現がより多彩でリアリティあるものになる。
【0021】
第7の発明は、前記キャラクタと他キャラクタとの接触を検出する接触検出手段(例えば、図6の処理部200、ゲーム演算部210、図13のステップS32)として前記コンピュータを機能させ、前記パーツ別積算ダメージ算出手段が、前記検出に応じて、前記他キャラクタと接触したパーツオブジェクトの積算ダメージに応じて、当該パーツオブジェクトの積算ダメージを増加させる手段を有するように前記コンピュータを機能させるための第1〜第6の何れか一つの発明のプログラムである。
【0022】
第7の発明によれば、第1〜第6の何れか一つの発明と同様の効果を奏するとともに、キャラクタと他キャラクタとが接触した場合に、他キャラクタと接触したパーツオブジェクトの積算ダメージに応じて、当該パーツオブジェクトの積算ダメージを増加させることができる。例えば「殴る」といった攻撃がヒットした場合、殴った側のパーツオブジェクトの積算ダメージに応じて、当該パーツオブジェクトが新たに受けるダメージの量を変えることが可能になる。したがって、怪我をした手で殴ると、怪我をしていない状態で殴った場合に比べて殴った手や腕に、より多くの負担がかかり、場合によっては損傷を進めてしまうといったダメージ表現が可能になる。
【0023】
第8の発明は、前記キャラクタは、複数のパーツオブジェクトが階層構造を成して一体的に形成されたオブジェクトであり、前記複数のパーツオブジェクトの中から積算ダメージが所定の分離条件を満たしたパーツオブジェクトを抽出し、抽出されたパーツオブジェクトと該パーツオブジェクトの下位階層のパーツオブジェクトとを一体として前記キャラクタから離脱させ、破損物オブジェクトとして前記3次元仮想空間に配置制御する破損物オブジェクト配置制御手段(例えば、図6の処理部200、ゲーム演算部210、ダメージ表現物制御部218、図14のダメージ表現表示処理)として前記コンピュータを機能させるための第1〜第7の何れか一つの発明のプログラムである。
【0024】
第8の発明によれば、第1〜第7の何れか一つの発明と同様の効果を奏するとともに、キャラクタを構成する複数のパーツオブジェクトの中から積算ダメージが所定の分離条件を満たしたパーツオブジェクトを抽出し、抽出されたパーツオブジェクトと該パーツオブジェクトの下位階層のパーツオブジェクトとを一体として前記キャラクタから離脱させることができる。つまり、分離条件を満たすほどのダメージを受けたパーツから先の部分を、切り離して離脱させるように表現できる。例えば、肩から腕ごと切り落とされるといった表現が可能になる。しかも、従来のように条件を満たせば突然分離が起きるのではなく、作動性能の低下を分離より先に生じさせることによって、作動性の低下といったダメージの進行があって、さらにダメージを受けることで当該部分の離脱となるので、プレーヤにとってダメージの程度が分かり易い。
【0025】
第9の発明は、前記破損物オブジェクト配置制御手段が、前記抽出されたパーツオブジェクトと該パーツオブジェクトの下位階層のパーツオブジェクトとを複製して破損物オブジェクトを生成して前記3次元仮想空間に配置制御するように前記コンピュータを機能させ、前記破損物オブジェクトとして複製された前記抽出されたパーツオブジェクトの表示を非表示にする破損パーツ非表示制御手段(例えば、図6の処理部200、ゲーム演算部210、ダメージ表現物制御部218、図13のステップS68〜S72)として前記コンピュータを機能させるための第8の発明のプログラムである。
【0026】
第9の発明によれば、第8の発明と同様の効果を奏するとともに、分離条件を満たすほどのダメージを受けたパーツオブジェクトとその下位階層のパーツオブジェクトとを、表示させないようにして実質的に見えなくする一方で、それらのパーツオブジェクトの複製をダミーとして配置することで、キャラクタのモデルをパーツで切り離し、断面のポリゴンを別途生成するといった従来技術のような複雑な処理を行なわずとも、簡単な処理で部分分離して破損する表現を実現できる。
【0027】
第10の発明は、前記コンピュータを更に、前記キャラクタが受けた積算ダメージの総量を示す総積算ダメージを算出する総積算ダメージ算出手段(例えば、図6の処理部200、ゲーム演算部210、図12のステップS8)、算出された総積算ダメージが所定の撃破条件を満たす場合に、当該キャラクタを使用不可に設定する撃破制御手段(例えば、図6の処理部200、ゲーム演算部210、図12のステップS8のNO〜S14)、として機能させるための第1〜第9の何れか一つの発明のプログラムである。
【0028】
第10の発明によれば、第1〜第9の何れか一つの発明と同様の効果を奏するとともに、キャラクタが受けた積算ダメージの総量を示す総積算ダメージに基づいてキャラクタが撃破されたか否かを判定できる。つまり、徐々にダメージが蓄積して行って、ついに損傷が全体に及んで使用不可になるといったダメージの進行を表現できるようになる。
【0029】
第11の発明は、前記キャラクタは脚部のパーツオブジェクトを有し、前記キャラクタが受けた積算ダメージの総量を示す総積算ダメージを算出する総積算ダメージ算出手段、算出された総積算ダメージが所定の撃破条件を満たす場合に、当該キャラクタを使用不可に設定する撃破制御手段、として前記コンピュータを機能させるとともに、前記破損物オブジェクト配置制御手段が、前記脚部のパーツオブジェクトの分離条件を、前記所定の撃破条件相当の条件として、前記脚部のパーツオブジェクトの分離を判定するように前記コンピュータを機能させるための第8又は第9の発明のプログラムである。
【0030】
第11の発明によれば、第8又は第9の発明と同様の効果を奏するとともに、キャラクタの脚部を、キャラクタが撃破されるまで分離させないようにできる。したがって、早々に脚が分離して動けなくなるといったゲームプレイするには不適当な状況を未然に防ぐことができる。したがって、ダメージの進行の表現とゲーム性との両立を図ることができる。
【0031】
第12の発明は、各パーツオブジェクトの積算ダメージに基づいて、当該パーツオブジェクト及び/又は当該パーツオブジェクト近傍位置に破損外観物(例えば、図4の火花60、スモーク62)を発生させる破損外観物発生制御手段(例えば、図6の処理部200、ゲーム演算部210、ダメージ表現物制御部218、図14のステップS66)として前記コンピュータを機能させるための第1〜第11の何れか一つの発明のプログラムである。
【0032】
第12の発明によれば、第1〜第11の何れか一つの発明と同様の効果を奏するとともに、各パーツオブジェクトの積算ダメージに基づいて、当該パーツオブジェクト及び/又は当該パーツオブジェクト近傍位置に破損外観物を表示させることができる。ここで言う破損外観表示物とは、火花、スパーク、煙、滲出する液体といった破損した箇所を視覚的に特定し得る現象や、特定の現象の発生に伴って表出するものを言う。したがって、視覚的にもダメージの進行を表現することができる。
【0033】
第13の発明は、第1〜第12の何れか一つの発明のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。
ここで言う「情報記憶媒体」とは、例えば磁気ディスクや光学ディスク、ICメモリ、ゲームカセットなどを含む。第9の発明によれば、第1〜第12の何れか一つの発明のプログラムをコンピュータに読み取らせて実行させることによって、コンピュータに第1〜第8の何れか一つの発明と同様の効果を発揮させることができる。
【発明の効果】
【0034】
本発明によれば、キャラクタを構成するパーツオブジェクト毎に過去に受けたダメージの積算を求め、求めたダメージの積算とそのパーツオブジェクトがキャラクタの何所を構成しているかに基づいて、動作性能の優劣を可変させてキャラクタの動作を制御することできる。つまり、ダメージの蓄積に伴う性能低下や機能障害によって動作に制限が生じていくといったダメージの進行を表現することが可能になる。
【発明を実施するための最良の形態】
【0035】
〔第1実施形態〕
次に本発明を適用した第1実施形態として、ロボットのキャラクタが登場するビデオゲームであって、プレーヤが操るプレーヤキャラクタと、コンピュータが自動制御するCOMキャラクタとが対戦するロボット対戦ゲームを例に挙げて説明する。
【0036】
[ゲーム装置の構成]
図1は、本実施形態における家庭用ゲーム装置の構成例を説明するためのシステム構成図である。家庭用ゲーム装置1200のゲーム装置本体1201は、例えばCPUや画像処理用LSI、ICメモリ等が実装された制御ユニット1210と、光学ディスク1202やメモリカード1204といった情報記憶媒体の読み取り装置1206,1208を備える。そして、家庭用ゲーム装置1200は、光学ディスク1202やメモリカード1204からゲームプログラム及び各種設定データを読み出し、ゲームコントローラに為される操作入力に基づいて各種のゲーム演算を実行し、所与のビデオゲームを実行する。
【0037】
家庭用ゲーム装置1200の制御ユニット1210で生成されたゲーム画像やゲーム音は、信号ケーブル1209で接続されたビデオモニタ1220に出力される。プレーヤは、ビデオモニタ1220のディスプレイ1222に表示されるゲーム画像を見つつ、スピーカ1224から出力されるBGMや効果音といったゲーム音を聞きながら、ゲームコントローラ1230から各種操作を入力してゲームを楽しむ。
【0038】
ゲームコントローラ1230は、選択の決定やキャンセル、タイミングの入力などに用いられるコントローラ上面に設けられたプッシュボタン1232と、左右の前側面に設けられたプッシュボタン1233R,1233Lと、図で言うところの上下左右の各方向を単独入力するための方向入力キー1234と、右アナログレバー1236と、左アナログレバー1238とを備える。
【0039】
右アナログレバー1236及び左アナログレバー1238は、図で言うところの上下方向と左右方向の2軸方向を同時入力可能な方向入力デバイスである。通常はゲームコントローラ1230を左右の手で把持し、レバー1236a,1238aにそれぞれ親指を添えて操作する。レバー1236a,1238aを倒すことによって2軸成分を含む任意の方向入力と、レバーの傾倒量に応じた任意操作量を入力することができる。また、何れのアナログレバーも、操作入力していない中立状態からレバーの軸方向に押し込むことでプッシュスイッチとしても使用することもできる。
【0040】
本実施形態では、左アナログレバー1238からの操作入力によってプレーヤキャラクタの前後左右の移動を入力する。また、右アナログレバー1236からの操作入力によって、プレーヤキャラクタの視線方向を上下左右に移動させる操作を入力する。
そして、特定のプッシュボタン1232の押下によって射撃動作の実行を入力し、また左側部のプッシュボタン1233Lの押下によって防御動作の実行を入力する。
【0041】
尚、ゲーム実行に必要なゲームプログラム及び各種設定データは、通信装置1212を介して通信回線1に接続し、外部装置からダウンロードして取得する構成であっても良い。ここで言う、通信回線とは、データ授受が可能な通信路を意味する。すなわち、通信回線とは、直接接続のための専用線(専用ケーブル)やイーサネット(登録商標)等によるLAN(Local Area Network)の他、電話通信網やケーブル網、インターネット等の通信網を含む意味であり、また、通信方法については有線/無線を問わない。
【0042】
[プレーヤキャラクタの構成]
本実施形態におけるビデオゲームには、3次元仮想空間に形成されたゲーム空間に、プレーヤが操作するプレーヤキャラクタと、コンピュータが自動制御する複数のCOMキャラクタとが配置されて対戦するロボット対戦ゲームである。プレーヤキャラクタ及びCOMキャラクタは、ロボットの設定であり、左右の手にそれぞれ一つのアイテムを所持することができる。本実施形態では、右手に銃を持って対戦相手を射撃し、左腕に装備された盾を使って相手キャラクタの射撃から防御しながら対戦する。
【0043】
そして、本実施形態におけるビデオゲームではダメージ制を採用する。すなわち、プレーヤキャラクタ及びCOMキャラクタの何れに於いても、対戦相手のキャラクタからの受けた攻撃を受ける都度、受けた攻撃に応じてダメージ値を積算し、キャラクタ全体として受けたダメージ値の総和が撃破基準値に到達すると、当該キャラクタは撃破されて使用不可となる。プレーヤキャラクタが撃破、または全てのCOMキャラクタの撃破でゲームオーバとなる。
【0044】
図2(a)は本実施形態におけるビデオゲームに登場するキャラクタの正面外観を示す図であり、図2(b)はキャラクタオブジェクトの構成を説明するための図である。尚、図2(b)においては、黒太線がオブジェクト間の階層関係を示している。
【0045】
図2(a)に示すように、本実施形態におけるキャラクタオブジェクトCR(以下単に「キャラクタCR」とも言う。)は、3次元ポリゴンモデルで形成されており、図2(b)に示すように、複数のパーツオブジェクト(以下、単に「パーツ」とも言う。)が階層構造を成して連結されている。具体的には、キャラクタオブジェクトCRは人型の外観を有しており、胴6を最上位階層として、頭4、腰8、右腕10、左腕20、右脚30、左脚40の部位が、胴6から連結を経るほど下位階層となるように構成されている。
【0046】
そして、右腕10、左腕20、右脚30、左脚40は、各々、更に複数のパーツの連結で構成されており、パーツは胴6に近いほど上位階層、先端ほど下位階層に設定されている。具体的には、右腕10は、右肩12を当該部位としては最上位階層に位置づけて、右上腕14、右下腕16、右手18の順に下位階層を成して連結されている。右手18のローカル原点には、銃50のオブジェクトのローカル原点が対応づけられており、右手18と一緒に銃50が移動する格好となる。つまり、右手18で銃50を所持した状態となっている。銃50のオブジェクトの対応付けを解除することによってゲーム中は着脱自在に装備される。
【0047】
同様に、左腕20は、左肩22を当該部位としては最上位階層に位置づけて、左上腕24、左下腕26、左手28の順に下位階層を成して連結されている。左下腕26には、盾52のオブジェクトが対応づけられており、ゲーム中は着脱自在に装備される。勿論、左手28に所持するように装備しても良い。以下、統括的に適宜「左手28に所持する」と言う。また、右脚部30は、右大腿関節32を上位階層にして、右大腿34、右脛36、右足38の順に下位階層を成して連結されている。左脚部40は、左大腿関節42を上位階層にして、左大腿44、左脛46、左足48の順位に下位階層を成して連結されている。
【0048】
また本実施形態では、右腕10及び左腕20を構成する各パーツに対応する破損パーツ12b〜18b、22b〜28bが用意されている。破損パーツは、対応するパーツと同じようにして上位階層のパーツに階層付けされている。例えば、右肩12のオブジェクトはなんら破損を負っていない状態の外観を有し、これに一対一で対応する右肩破損12bのオブジェクトは、例えば右肩12が胴6から破断された後に残った部品を表す外観を有しており、右肩12のオブジェクトと同じ胴6の下位階層に位置づけられる。そして、ゲーム開始当初は、各パーツ12〜18,22〜28が「表示」とされ、破損パーツ12b〜18b,22b〜28bが「非表示」とされている。つまり、ゲーム画面上はなんら損傷を負っていない正常な状態のキャラクタCRの外観が描画される。
【0049】
[ダメージ表現の原理]
図3は、本実施形態におけるパーツ毎のダメージの積算について説明するための概念図である。図3に示すように、本実施形態では各パーツには、ゲーム開始後に受けたダメージの積算である積算ダメージ値が対応づけられている。ゲーム開始時の初期状態は何れの積算ダメージ値も「0(ダメージ無し)」が格納されており、相手キャラクタから攻撃を受ける都度、受けた攻撃の種類に応じたダメージ値が攻撃を受けたパーツの積算ダメージ値に加算され続ける。
【0050】
そして、積算ダメージ値から各パーツのダメージレベル、つまり損傷の程度を判定する。ダメージレベルの判定は、パーツ毎に予め設定された判定閾値に基づいてダメージレベル(DLV)0〜DLV3の4段階に分類される。初期状態はDLV0であり破損無しを意味する。DLV1は小破損、DLV2は中破損を意味し、これらは何れも損傷を追っていてある程度の機能障害を伴うが全く機能を失ったわけではない状態に相当する。一方、DLV3は、全破損を意味し、損傷が限界を超えて全く機能しなくなった状態に相当する。
【0051】
各パーツのダメージレベルが判定されたならば、ダメージに伴って当該ダメージを表現するためのオブジェクト(ダメージ表現オブジェクト)をダメージレベルに基づいて選択し、各々のパーツに付属・配置させる。ダメージ表現オブジェクトとしては、例えばダメージを受けたパーツの外側に配置されて、外観からダメージを受けた状態であることが見て分かるように示す破損外観物が適当である。より具体的には、火花、スパーク、煙、滲出する液体といった特定の現象や、特定の現象の発生に伴って放出されるものが該当する。
【0052】
例えば、図3の例では、キャラクタCRが初期状態から攻撃を受けた状態を示している。右肩12にはミサイル攻撃のような比較的打撃力の高い攻撃を受けたので、当該パーツの積算ダメージ値が「20」に設定され、右下腕16には機銃が着弾したような小程度の攻撃を受けたので積算ダメージ値が「5」に設定されている。また、左脛46には蹴られるような中程度の攻撃を受けたので積算ダメージ値が「15」に設定されている。
【0053】
図4は、本実施形態における視覚的なダメージ表現の例を説明するための図である。
これらのダメージレベルが、右肩12がDLV3、右下腕16がDLV1、左脛46がDLV2と判定されたとする。この場合、図4(a)に示すように、右下腕16には、DLV1に対応する破損外観物として小破損を表現する火花60のオブジェクトが、右下腕16に付属するように配置される。具体的には、右下腕16が上位階層のパーツ(右上腕14)に連結する箇所に火花60が配置される。同様にして、DLV2に対応する破損外観物として中破損を表現するスモーク62のオブジェクトが左脛46の周囲に配置される。具体的には、左脛46と上位階層で左大腿44との連結する箇所に配置される。これらを段階的に表示させることによって、あたかも損傷が小さいうちは、火花60が見える程度であったが、損傷が進むことによって発火したり、スモーク62が出るに至ったようにダメージの進行を表現できる。
【0054】
そして、右肩12はDLV3なので、右肩12から先の部分がキャラクタCRから分離脱落するように表現するための特別なダメージ表現オブジェクトを配置する。
具体的には、図4(b)に示すように、DLV3に判定されたパーツ(=全破損したパーツ。右肩12。)を含む下位階層のパーツ(=右上腕14、右下腕16、右手18)をこれらの階層構造を維持したまま複製する。そして、全破損パーツの上位階層パーツ(胴6)との連結箇所に、爆発を表現する爆煙や閃光といった爆発効果オブジェクト66を配置するとともに、同連結箇所からやや離れた位置に、先に複製したオブジェクトを破損物オブジェクト68(=ダメージ表現オブジェクト)として配置する。本実施形態は地上戦をする設定なので、この破損物オブジェクト68は地表に向けて落下するように移動制御されるが、無重力空間で戦闘する設定であれば、破損物オブジェクト68を、配置時に決定されたランダムな方向に離脱するように移動制御すると良い。
【0055】
尚、全破損パーツ及びその下位階層のパーツに対応付けられているオブジェクト(例えば、銃50のオブジェクト。)は、複製された側のパーツに対応付けを変更する。すなわち、右手18に所持されるように対応付けられていた銃50は、右手18への対応付けが解消され、破損物オブジェクト68の右手18を複製したオブジェクへの対応付けに変更される。
【0056】
また、破損物オブジェクト68の複製元のパーツは、全破損したパーツ(右肩12)及びその下位階層のパーツ(=右上腕14、右下腕16、右手18)が表示から非表示に切り換えられ、反対に全破損したパーツに対応する破損パーツである右肩破損12bが非表示から表示に切り換えられる。つまり、ゲーム画面上は右肩12が描画されず、代わりに右肩破損12bが描画されることになる。また、複製元になったパーツ(右肩12、右上腕14、右下腕16、右手18)のヒット判定は行われないように設定が変更される。
【0057】
この結果、破損物オブジェクト68の配置ならびに落下移動によって、あたかも右肩12が破壊されて右腕12が胴6から分離脱落するように表現される。そして、右腕10がもと有った付け根部分には、右肩破損12bによって右肩12と胴6の連結部品の破損した様子が描画される格好となる。
【0058】
また、本実施形態ではダメージ表現に関連して、パーツの損傷度合に応じて動作が制限されたモーションでキャラクタCRが動作制御される。
図5は、本実施形態におけるキャラクタの動作性能におけるダメージ表現の例を説明するための図である。同図では、キャラクタCRが右腕10で銃を構えて射撃する一連の動作を例に挙げている。
【0059】
本実施形態では、モーションデータに従って関連するパーツが移動制御され、全体としてキャラクタCRが一連の動作をするように制御される。そして本実施形態では、移動・射撃・防御の基本動作を有し、各動作には動作の制限度合が異なる複数のモーションデータ(標準モーションデータ、小破損用モーションデータ、中破損用モーションデータ、全破損用モーションデータ)が予め用意されている。動作の制限とは、例えば、関節の可動範囲、関節の動く早さの制限を含む意味である。勿論何れか一方の制限でも良い。
【0060】
図5の例は「射撃」の例である。「射撃」の動作が選択された場合、射撃のモーションデータを参照するが、射撃動作に伴って移動される右腕10の各パーツのダメージレベルが参照され、右腕10のダメージの状況に応じてこのときモーションデータ群から何れか一つのモーションデータが選択される。
【0061】
同図の例で言うと、例えば右肩12のダメージレベルが「0」である場合には、標準モーションデータが選択される。標準モーションデータでは制限の無い射撃動作が設定されている。つまり、標的へ銃50を向けるように右腕10を動かす動作が設定されている。具体的には、「射撃範囲100%、可動速度100%」の標準性能を発揮するように設定されており、腕の可動範囲で言えば設定値の100%の範囲がカバーされ、可動速度で言えば設定値の100%の速度で動作制御されるモーションの内容となっている。例えば、大きく振りかぶるようにして銃を構えるといった、迫力ある動作を設定すると好適である。
【0062】
右肩12のダメージレベルが「1」の場合には、小破損用モーションデータが選択される。小破損用モーションデータでは、標準モーションデータよりも動作に制限がかけられている。具体的には、「射撃範囲45%、可動速度60%」の制限された性能を発揮するように設定されており、腕の可動範囲で言えば設定値の45%しかカバーされず、可動速度の設定値の60%しか発揮されない。したがって、視界に入った標的を攻撃したて「射撃」動作を選択したとしても、右肩12が損傷を負っているので右腕10が正常状態に比べると機能しないことになる。例えば、各関節の可動範囲が標準状態の半分を下回る範囲となる不自由さでしかも動作がやや遅い動作を設定できる。
【0063】
また、右肩12がダメージレベル「2」の場合には、中破損用モーションデータが選択される。中破損用モーションデータでは、小破損用モーションデータよりもさらに動作に制限がかけられている。具体的には、「射撃範囲が右方のみで且つ20%、可動速度30%」の制限された性能を発揮するように設定されており、腕の可動範囲では正面より右方向のみ20%しかカバーされず、可動速度も30%しか発揮されない。したがって、ますます持って標的を攻撃しにくくなる。例えば、ほとんど腕が動かない、極めてゆっくり或いはギクシャクした断続的な動作を設定することができる。
【0064】
そして、右肩12がダメージレベル「3」の場合には、全破損用モーションデータが選択される。先に述べたように右腕10は、モデル上は存在するが非表示とされ、分離脱落したものとして扱う。したがって、全破損用モーションデータでは、射撃が行われないように動作が制限されている。具体的には、全破損用モーショを、関連パーツが全く動作しないモーションデータとしても良いし、何がしかの動作をするモーションデータとしても良い。後者の場合、標準外観オブジェクト12aは、非表示とされている上にヒット判定がキャンセルされているので該モーションデータによって移動制御されても、実質的に何もされていないのに等しい。しかし、破損外観オブジェクト12bが該モーションデータに従って制御されるので、あたかも腕は無いが残った付け根部分の部品のみが動いているかのようにリアルな表現を実現できる。
【0065】
したがって、ダメージ表出オブジェクトによる視覚的なダメージ表現と連携して、キャラクタCRの動作からもダメージの存在を感じさせることできるので、リアルなダメージ表現が可能になる。また、パーツ毎の積算ダメージ値を、一旦ダメージレベルを判定することによって段階的に区分し、ダメージレベル毎に異なるダメージ表現をすることで、機械的なダメージらしさを表現できる。すなわち、ダメージが有る一定量に達するまでは、外観上は変化していないように見え、正常時と同じように機能していても、ダメージが有る一定量に達した途端に第1段階目の不具合(本実施形態で言えば、火花60と小破損用モーションデータによる機能不全。)が発生する。そして、更にダメージが次の一定量だけ追加されるまではそのまま維持され、ダメージが次の一定量だけ追加された途端により重い第2段階目の不具合(本実施形態で言えば、スモーク62と中破損モーションデータによる機能不全。)が発生する過程を繰り返し、ついには全く機能しなくなるといった段階的なダメージの表出と機能低下の進行を上手く表現できるようになる。
【0066】
尚、同図の例では、4パターンのモーションデータを右肩12のダメージレベルと対応づけて説明しているが、実際には右肩12に限らず右腕10を構成する各パーツのダメージレベルの状態に応じてモーションデータを選択する。また、モーションデータも4つのパターンに限らず更に多く設定すると、よりリアリティを高めることができる。
【0067】
[機能ブロックの説明]
では次に、具体的な機能構成について説明する。
図6は、本実施形態における機能構成の一例を示す機能ブロック図である。同図に示すように本実施形態では、操作入力部100と、処理部200と、音出力部350と、画像表示部360と、通信部370と、記憶部500とを備える。
【0068】
操作入力部100は、プレーヤによって為された各種の操作入力に応じて操作入力信号を処理部200に出力する。図1では、ゲームコントローラ1230が操作入力部100に該当する。
【0069】
処理部200は、例えばマイクロプロセッサやASIC(特定用途向け集積回路)、ICメモリなどの電子部品によって実現され、操作入力部100や記憶部500を含むゲーム装置1200の各機能部との間でデータの入出力を行うとともに、所定のプログラムやデータ、操作入力部100からの操作入力信号に基づいて各種の演算処理を実行して、ゲーム装置1200の動作を制御する。図1では、ゲーム装置本体1201に内蔵された制御ユニット1210が処理部200に該当する。
そして本実施形態における処理部200は、ゲーム演算部210と、音生成部250と、画像生成部260と、通信制御部270とを備える。
【0070】
ゲーム演算部210は、ゲームの進行に係る処理を実行する。例えば、ゲーム空間を仮想空間中に形成する処理や、仮想空間中に配置されたキャラクタ以外のオブジェクトの配置制御処理、COMキャラクタの動作の自動制御処理、ヒット判定処理、物理演算処理、ゲーム結果の算出処理が実行対象に含まれる。そして本実施形態のゲーム演算部210は、積算ダメージ算出部212と、モーション選択部214と、キャラクタ動作制御部216と、ダメージ表現物制御部218とを含んでいる。
【0071】
積算ダメージ算出部212は、キャラクタCRを構成するパーツ毎に、受けた攻撃に応じたダメージ値を算出するとともに、ゲーム開始からのダメージ値を積算した積算ダメージ値を算出する。
【0072】
モーション選択部214は、動作性能が異なる複数のモーションデータから、パーツの積算ダメージ及び当該パーツオブジェクトの部位に基づいて、パーツの損傷度合を表現するのに適当なモーションを選択する。
【0073】
キャラクタ動作制御部216は、キャラクタCRを構成するパーツを、モーションデータに従って移動制御することで、キャラクタCRが一連の動作をするように動作制御する。具体的には、腕や脚といった肢部は関節を有しているので、各関節を軸にしてパーツの可動範囲及び/又は可動速度を可変してそうした部位の可動を制御する。
【0074】
ダメージ表現物制御部218は、ダメージの視覚的表現に係る処理を実行する。例えば、複数のパーツの中から積算ダメージ値が所定の分離条件を満たしたパーツ(本実施形態では、DLV3のパーツに同じ。)を抽出し、抽出されたパーツと該パーツの下位階層のパーツとを一体として複製し、破損物オブジェクトとして3次元仮想空間に配置制御する処理、および複製された元のパーツを非表示に表示設定を切り換える処理、分離条件を満たしたパーツに対応する破損パーツを表示させるように表示設定を切り換える処理が含まれる。また、パーツ及び/又はパーツオブジェクト近傍位置に破損外観物を発生させる処理が含まれる。
【0075】
音生成部250は、例えばデジタルシグナルプロセッサ(DSP)などのプロセッサやその制御プログラムによって実現され、ゲーム演算部210による処理結果に基づいてゲームに係る効果音やBGM、各種操作音の音信号を生成し、音出力部350に出力する。
【0076】
音出力部350は、音生成部250から入力される音信号に基づいて効果音やBGM等を音出力する装置によって実現される。図1ではビデオモニタ1220のスピーカ1224がこれに該当する。
【0077】
画像生成部260は、例えば、デジタルシグナルプロセッサ(DSP)などのプロセッサ、その制御プログラム、フレームバッファ等の描画フレーム用ICメモリ等によって実現される。画像生成部260は、ゲーム演算部210による処理結果に基づいて1フレーム時間(1/60秒)で1枚のゲーム画像を生成し、生成したゲーム画像の画像信号を画像表示部360に出力する。
【0078】
画像表示部360は、画像生成部260から入力される画像信号に基づいて各種ゲーム画像を表示する。例えば、フラットパネルディスプレイ、ブラウン管(CRT)、プロジェクター、ヘッドマウントディスプレイといった画像表示装置によって実現できる。図1ではビデオモニタ1220のディスプレイ1222が該当する。
【0079】
通信制御部270は、データ通信に係るデータ処理を実行し、通信部370を介して外部装置とのデータのやりとりを実現する。
【0080】
通信部370は、通信回線2と接続して通信を実現する。例えば、無線通信機、モデム、TA(ターミナルアダプタ)、有線用の通信ケーブルのジャックや制御回路等によって実現され、図1では通信装置1212がこれに該当する。
【0081】
記憶部500は、処理部200にゲーム装置1200を統合的に制御させるための諸機能を実現するためのシステムプログラム501や、ゲームを実行させるために必要なゲームプログラム502、並びに各種データ等を記憶する。処理部200がゲームプログラム502を読み出して実行することによって、処理部200にゲーム演算部210としての機能を実現させることができる。
【0082】
また、記憶部500は、処理部200の作業領域として用いられ、処理部200が各種プログラムに従って実行した演算結果や操作部100から入力される入力データ等を一時的に記憶する。この機能は、例えばRAMやROMなどのICメモリ、ハードディスク等の磁気ディスク、CD−ROMやDVDなどの光学ディスクなどによって実現される。
【0083】
記憶部500には、予め用意されるデータとしてゲーム空間設定データ520、キャラクタ初期設定データ522、仮想カメラ移動制御データ524、爆発効果オブジェクト設定データ526、ダメージ表現物オブジェクト設定データ528、ダメージ算出TBLデータ530、ダメージレベル設定データ532、動作設定データ534、撃破モーション設定データ536が記憶されている。
【0084】
更にゲームの進行に伴って随時書き換えられるデータとして、キャラクタ制御データ540、ダメージ表現物制御データ550を記憶する。また、ゲームの進行に係る処理を実行するにあたり必要となる情報が適宜記憶される。
【0085】
ゲーム空間設定データ520には、仮想空間にゲーム空間を形成するための各種データが格納されている。例えば、地表や建物などの配置物に関するモデルデータやテクスチャデータ及びモーションデータが含まれる。また、各キャラクタの初期配置位置、初期装備などの情報も含まれている。
【0086】
キャラクタ初期設定データ522には、プレーヤキャラクタおよびCOMキャラクタの初期設定データが格納されている。例えば、図2で説明したキャラクタオブジェクト、パーツオブジェクトのモデリングデータ、階層構造データ、テクスチャデータが格納されている。
【0087】
仮想カメラ移動制御データ524には、ゲーム空間を撮影する仮想カメラの制御に関するデータが格納されている。仮想カメラによって撮影されたゲーム空間の様子に、ゲーム進行に必要な情報(例えば、ゲームの残り時間、残弾数、マップ、ポイントなどの情報。)を合成してゲーム画面が生成される。
【0088】
爆発効果オブジェクト設定データ526は、ダメージレベルが「3」になったパーツの分離脱落を表現する際に、演出として配置されるオブジェクトであって、例えば爆発の煙や閃光などを表現するオブジェクトに関する情報が格納されている。具体的には、オブジェクトのモデリングデータ、テクスチャデータ、モーションデータが含まれる。
【0089】
ダメージ表現物オブジェクト設定データ528は、ダメージレベルが「1」及び「2」になったパーツに付与されるオブジェクト(=破損外観物)に関する情報が格納されている。本実施形態では、図4における火花60やスモーク62を配置し演出するための動作に関するデータが格納されている。より具体的には、オブジェクトのモデリングデータ、テクスチャデータ、モーションデータが含まれる。
【0090】
ダメージ算出TBL(テーブル)データ530は、攻撃によって生じるダメージ値を定義するデータである。例えば、図7は本実施形態におけるダメージ算出TBLデータ530の一例を示すデータ構成図である。同図に示すように、例えば攻撃の種類530aに対応づけて、攻撃を受けた場合に生じるダメージ値530bと、攻撃を加えた側に生じる反作用ダメージ値530cと、攻撃を加えた側に反作用ダメージ値530cが加えられるパーツを示す反作用先パーツ530dとが格納されている。
【0091】
同図の例では、例えば攻撃種類530aが「殴る」の場合、攻撃を受けた側の攻撃を受けたパーツには「45」だけ、積算ダメージ値(図3参照)に加算される。そして、右手で殴った場合には、攻撃を加えた側のキャラクタの右手18の積算ダメージ値に、右手18の現在のダメージレベル「0」「1」「2」に応じて「5」「10」「15」のダメージ値が加算されることを示している。つまり、攻撃を受けた側は勿論、攻撃を加えた側も「殴る」動作に関連するパーツに、その時のダメージレベルに応じた反作用としてのダメージを生じさせることができるので、対戦をより一層リアルなものにできる。尚、本実施形態では、右手18及び左下腕26(或いは左手28)にアイテム(銃50や盾52)を所持・装備していない場合、攻撃動作として「殴る」が選択可能になるものとする。
【0092】
ダメージレベル設定データ532は、各パーツの積算ダメージ値からダメージレベルを判定するための情報を格納している。図8は、本実施形態におけるダメージレベル設定データ532の一例を示すデータ構成図である。同図に示すように、ダメージレベル設定データ532は、パーツを識別するためのパーツ識別情報532aに対応づけて、ダメージレベルが「1」「2」「3」に判定される判定閾値532bが対応づけられている。
【0093】
ダメージレベル「3」に到達したパーツがあると、本実施形態では原則そこから先は分離脱落したものとされる。しかし、ゲームをプレイする都合上、右脚30、左脚40のように脱落してはプレイを続けられなくなってしまう部位については、ダメージレベル「3」の判定閾値をキャラクタが撃破されるまで「3」にならないような閾値に適当に設定する。例えば、同図の例では、右大腿関節、右大腿、右脛および右足のダメージレベル「3」の判定閾値「800」は、キャラクタCRの撃破基準値と同じまたはそれ以上の値が設定されている。つまり、右脚は腕のようにレベル3「全破損」でも分離しないように設定されているので、破損箇所の分離脱落という基本的な表現を維持しつつ、ゲーム進行に不可欠な部位の分離脱落を実質的に無効化しゲームのバランスをとることができる。
【0094】
動作設定データ534は、キャラクタCRの動作を実行する際に参照されるパーツオブジェクトのモーションデータを格納する。
図9は、本実施形態における動作設定データ534の一例を示すデータ構成図である。同図に示すように、動作設定データ534は、動作種類534a毎に当該動作種類の具体的なモーションデータ534bと、当該モーションデータを選択する選択条件534cとが対応付けて格納されている。尚、モーションデータ534aは、図の上から順に優先度が高く設定されている。つまり、上から順に選択条件534cに合致するか否かが判定され、判定されたモーションデータ534bが、その時の動作制御に用いられる。
【0095】
動作種類534aが「射撃」動作の例では、モーションデータ534bは、右腕10で銃50を標的に向けて構える一連の動作を定義する。したがって、選択条件534cは、右腕10を構成するパーツのダメージレベルを用いて定義されている。
【0096】
動作種類534aが「移動」動作の例では、モーションデータ534bは、キャラクタCRの移動速度に応じた脚の一連の歩行(或いは走行)動作を定義するデータである。例えば、左脚40の各パーツはいずれもDLV0で、右脚30の右大腿34にDLV2のダメージレベルが設定されている場合には、「一方の脚がDLV2のパーツを含む」の選択条件534cが適用される。したがって、小破損用移動モーションデータが選択される。小破損用移動モーションは、一方の脚用に関節の可動範囲が標準の20%に制限されたモーションデータと、他方の脚用に関節の可動範囲が標準100%のままのモーションデータとで構成されている。したがって、このケースでは、キャラクタCRは、右脚30が十分に曲がらずに、右脚30を引きずるようにして左脚40で片足歩きをするようなモーションになる。そして、キャラクタCRの移動速度は標準の60%に制限され、旋回速度は30%に制限される。
【0097】
尚、動作設定データ534では、図示される以外に盾52を構える「左腕に盾を装備した場合の防御」の動作、「所持しているアイテムの放棄」動作、「アイテムを所持していない腕でキャラクタ前方に配置されているアイテムを取得する」動作、「アイテムを所持していない腕で殴る」動作、「右脚或いは左脚で蹴る」動作が設定されている。
【0098】
そして、例えば「アイテムを所持していない腕でキャラクタ前方に配置されているアイテムを取得する」動作では、同様に腕のパーツのダメージレベルに応じて動作性能に優劣のある複数のモーションを設定する。具体的には、標準のモーションとして、一度の動作で100%アイテムを取得できるモーションを設定する。これに対し、DLV3のパーツが含まれる場合には「取得できない」モーションを設定し、DLV1およびDLV2には「取得を失敗する確率」を有するモーションを設定すると好適である。
勿論、「アイテムを所持していない腕でキャラクタ前方に配置されているアイテムを取得する」動作、並びに「アイテムを所持していない腕で殴る」動作は、アイテム放棄の動作によって、アイテムが未所持の状態でなければ選択されない。
【0099】
撃破モーション設定データ536は、キャラクタCRの全パーツの積算ダメージ値の総和が所定の撃破基準値に達して、撃破されたと判定された場合に実行されるモーションデータである。例えば崩れるようにして倒れる動作のモーションデータや、各パーツが爆発飛散するように動作させるモーションデータなどを適宜定義する。
【0100】
キャラクタ制御データ540は、キャラクタCR毎に設けられ、ゲーム実行中における当該キャラクタのオブジェクトの制御に係る情報を格納する。
図10は、本実施形態におけるキャラクタ制御データ540の一例を示すデータ構成図である。同図に示すように、キャラクタ制御データ540は、当該キャラクタの全パーツの積算ダメージ値の総和にあたる総ダメージ値540a、右手18並びに左手20に所持されているアイテムのオブジェクトの識別情報と格納する右アイテム情報540b、左手18に所持されているアイテムのオブジェクトの識別情報を格納する左アイテム情報540c、銃50の残弾数540d、現在実行中のモーションの制御に係る実行モーション制御情報540e、キャラクタCRの代表点座標540f、キャラクタCRの代表点の運動パラメータ値540g(例えば速度、加速度、ゲーム空間座標系の各軸周りの角度)を含んでいる。
【0101】
右アイテム情報540b及び左アイテム情報540cには、ゲーム開始の初期状態では、それぞれ銃50のオブジェクトの識別情報、盾52のオブジェクトの識別情報が設定されている。本実施形態では、所定のアイテム放棄動作によって、現在所持しているアイテムを左右別々で放棄させることができる。その場合、右アイテム情報540b及び左アイテム情報540cには「NULL」が格納される。また、所定のアイテム取得動作によって、ゲーム空間中に置かれているアイテムを新たに所持させることができる。
【0102】
また、キャラクタ制御データ540は、キャラクタCRの部位毎に部位制御データ542を含んでいる。部位制御データ542は、当該データが適用される部位を示す適用部位542aを含み、更に当該部位を構成するパーツ542bに対応づけて、当該パーツの上位階層のパーツを示す上位階層パーツ542c、当該パーツの下位階層のパーツを示す下位階層パーツ542d、当該パーツの現在の位置や姿勢に関する情報を格納する位置姿勢情報542e、積算ダメージ値542f、ダメージレベル542g、表示モード設定542hを格納している。表示モード設定542hは、当該パーツの表示/非表示を示す情報であり、本実施形態では「1」が表示、「0」が非表示を表している。
【0103】
ダメージ表現物制御データ550は、パーツのダメージレベルに応じて付与されたダメージ表現のためのオブジェクトの制御に係る情報を格納する。
図11は、本実施形態におけるダメージ表現物制御データ550の一例を示すデータ構成図である。同図に示すように、ダメージ表現物制御データ550は、破損外観物制御データ552と、破損物制御データ554データとを含む。
【0104】
破損外観物制御データ552は、破損外観物552b毎にデータセットが形成されており、各データセットには当該破損外観物の配置位置や姿勢値を格納する位置データ552c、速度や加速度などの運動パラメータ値や所定の制御パターン情報等の制御データ552dが含まれている。
【0105】
破損物制御データ554は、破損物オブジェクト、つまりDLV3に達したパーツ及び当該パーツより下位階層のパーツを階層構造を維持して複製されたオブジェクト毎に設定され、当該オブジェクトの移動制御に係る情報を格納している。例えば、破損物識別情報554aと、代表点の位置座標と姿勢値を格納する位置姿勢554bと、代表点の運動パラメータ値554cと、パーツ554dに対応付けられた上位階層パーツ554e、下位階層パーツ554f、破損物オブジェクトの代表点の位置座標と姿勢値を格納する位置姿勢554gを含んでいる。
【0106】
[動作の説明]
次に、本発明の動作について説明する。図12は、本実施形態における主たる処理の流れを説明するためのフローチャートである。ここで説明される処理は、処理部200がシステムプログラム501、ゲームプログラム502を読み出して実行することによって実現される。尚、以下で説明する処理は、所定のサイクルで繰り返し実行される。
【0107】
同図に示すように、処理部200は、先ずゲーム空間設定データ520、キャラクタ初期設定データ522、仮想カメラ移動制御データ524を参照して、3次元仮想空間にゲーム空間を形成する。そして、形成したゲーム空間内にプレーヤキャラクタとCOMキャラクタを配置し、仮想カメラを配置する(ステップS2)。この段階で、キャラクタ制御データ540が記憶部500に格納される。
【0108】
操作入力部100から所定のゲーム開始操作が入力されたならば(ステップS4のYES)、処理部200はゲームを開始させ、使用可能な(撃破されていない)全キャラクタについてループAの処理を実行する(ステップS6〜S30)。ゲーム開始当初は、いずれのキャラクタも使用可能であるのは言うまでも無い。
【0109】
ループAの処理では、先ず、キャラクタ制御データ540を参照して処理対象のキャラクタの全パーツの積算ダメージ値542fを合算して総ダメージ値540aを求め、求めた総ダメージ値540aが所定の撃破基準値に達しているか否かを判定する(ステップS8)。
【0110】
撃破基準値に達していると判定された場合(ステップS8のYES)、処理部200は、当該対象キャラクタの各パーツオブジェクトを撃破モーション設定データ536に従って制御して、撃破されてゆく様子を表現する(ステップS10)。そして、撃破モーションを終了したならば(ステップS12のYES)、対象キャラクタを使用不可に設定する(ステップS14。例えば、対象キャラクタのキャラクタ制御データ540を削除しても良いし、撃破されたことを示すフラグをセットして、次の制御サイクルで当該キャラクタを制御対象外とする。
【0111】
一方、処理対象キャラクタの総ダメージ値540aが、撃破基準に達しておらずまだ戦闘できると判断された場合には(ステップS8のNO)、処理部200はダメージ表現物表示処理を実行する(ステップS16)。
【0112】
ダメージ表現物表示処理は、現時点における対象キャラクタのパーツの損傷度合に応じたダメージ表現をするためのオブジェクトを配置する処理である。
図14は、本実施形態におけるダメージ表現物表示処理の流れを説明するためのフローチャートである。同図に示すように、処理部200は先ず、ダメージレベル設定データ532を参照して、各パーツのダメージレベル542gを積算ダメージ値542fに基づいて決定・更新する(ステップS60)。ゲーム開始当初に設定されたキャラクタ制御データ540では、全パーツの積算ダメージ値542fは「0(ダメージ無し)」、ダメージレベル542gはDLV(ダメージレベル)0に設定されている。対象キャラクタが一度も攻撃を受けていなければ、各パーツのダメージレベル542gは「0」のままである。
【0113】
次に、処理部200は全ての部位について下位階層のパーツから順にループBを実行する(ステップS62〜S80)。ループBでは、先ず処理対象のパーツのダメージレベル542gを参照する。ダメージレベル542gが「0」であれば(ステップS64の「0」)、対象パーツは損傷を受けていない、或いは受けていても軽微であり機能不全を起こすほどの損傷ではないと判断されるので、当該パーツへのループBの処理を終了する。
【0114】
ダメージレベル542gが「1」または「2」の場合(ステップS64の「1または2」)、処理部200は対象パーツを、ダメージが表出する程度までダメージが進行した状態にあると判断して、ダメージ表現物オブジェクト設定データ528を参照して、ダメージレベル542gに応じた破損外観物を選択して、対象パーツの近傍に配置する(ステップS66)。図4の例で言うところの火花60、スモーク62といったオブジェクトが新規配置される。そして、ループBの処理を終了する
【0115】
ダメージレベル542gが「3」の場合(ステップS64の「3」)、処理部200は対象パーツが全破損した状態であると判断して、対象パーツから先の部分が分離脱落するように表現するための処理を実行する。すなわち、先ず対象パーツの表示モード設定542hを参照する(ステップS68)。
【0116】
そして、表示モード設定542hが「1」の場合(ステップS68の「1」)、処理部200は、対象パーツ及びその下位階層のパーツの表示モード設定542hを「0(非表示)」に設定変更し(ステップS70)、対象パーツに対応する破損パーツの表示モード設定542hを「1(表示)」に設定変更する(ステップS72)。これによって、対象パーツから先の部分が実質的に描画されなくなり、代わりに対象パーツ部分が破損した様子が描画されることになる。
【0117】
次いで処理部200は、爆発効果オブジェクト設定データ526を参照して、対象パーツの位置に爆発効果オブジェクト66を配置する(ステップS74)。そして、対象パーツとその下位階層のパーツを、階層構造を維持して複製し、破損物オブジェクトとして複製元の対象パーツから脱落した位置に新規配置し(ステップS76)、ループBの処理を終了する。記憶部500のダメージ表現物制御データ550には、新たな破損物制御データ554が設定される。
【0118】
全部位の全てのパーツについてループBの処理を実行したならば、ダメージ表現物表示処理を終了し、図12のフローに戻る。
【0119】
図12のフローに戻って、処理部200は次に、破損物オブジェクトの落下移動処理を実行する(ステップS18)。より具体的には、ダメージ表現物制御データ550に破損物制御データ554が設定されている場合には、破損物オブジェクトがあることを意味するため、設定されている破損物オブジェクトを地表に落下するように移動制御する。そして、着地した破損物オブジェクトが、銃50などのアイテムを所持している場合には、所持を解除して破損物オブジェクトとは別個にアイテム単独で地表に配置される状況とする。勿論、破損物制御データ554が設定されていなければ何もしない。
【0120】
次に処理部200は、対象キャラクタについて実行中の動作のモーションがあるか否かを判定する(ステップS20)。キャラクタ制御データ540の実行モーション制御情報540eにモーション実行中を示す情報(例えば、未実行のフレーム情報など。)が存在する場合には(ステップS20のYES)、実行途中のモーションを実行して関連するパーツオブジェクトの配置を移動させる(ステップS22)。
【0121】
一方、実行中の動作のモーションが無い場合には(ステップS20のNO)、処理部200は次に実行する動作を決定する(ステップS24)。具体的には、対象キャラクタが、プレーヤが使用するプレーヤキャラクタであれば、操作入力部100からの操作入力信号に基づいて次の動作を決定する。また、COMキャラクタの場合には、所定の思考ルーチンに従って次の動作を決定する。
【0122】
そして、次の動作が決まったならば、処理部200は動作設定データ534を参照して、決定された次の動作と同じ動作種類534aのデータセットから選択条件534cに従って何れか一つのモーションデータ534bを選択する(ステップS26)。そして更に、選択したモーションデータに従って関連するパーツオブジェクトを配置制御して(ステップS28)、ループAの処理を終了する。実行開始されたモーションに関する情報は、実行モーション制御情報540eに格納される。
【0123】
ここまでの処理で、使用可能なキャラクタ全てについて、各パーツの積算ダメージ値に基づくダメージ表現物の付与配置、およびパーツの損傷程度に応じて制限されたモーションを適用することが可能になったことになる。
【0124】
次に、図13のフローに移って、処理部200はヒット判定を実行する(ステップS32)。具体的には、射撃による着弾判定、殴る・蹴るといった打撃攻撃の判定に伴うキャラクタ間のヒット判定が含まれる。尚、破損物オブジェクトの複製元になったパーツ、つまりDLV3に達したパーツ及びその下位階層のパーツはヒット判定から除外される。
【0125】
次いでダメージ算出TBLデータ530と、先のヒット判定の結果に基づいて、全キャラクタの全パーツの積算ダメージ値542fを更新する(ステップS34)。次いで、仮想カメラ移動制御データ524に従って仮想カメラの移動・撮影を制御して(ステップS36)、この仮想カメラによって撮影された画像を元にゲーム画面の生成と描画を実行する(ステップS38)。
【0126】
そして、処理部200は所定のゲーム終了条件を満たすか否かを判定する(ステップS40)。本実施形態では、プレーヤキャラクタが撃破されて使用不可になった場合、或いは、COMキャラクタ全てが撃破されて使用不可になった場合に、ゲーム終了条件を満たすと判定される。
【0127】
ゲーム終了と判定されなければ(ステップS40のNO)、図12のステップS6に移行する。反対にゲーム終了と判定された場合には(ステップS40のYES)、所定のゲーム終了処理、例えばゲーム成績の表示やエンディングムービーの表示などの各種処理を実行して終了する。
【0128】
[ハードウェア構成]
次に、本実施形態におけるハードウェア構成について説明する。
図15は、本実施形態における家庭用ゲーム装置1200を実現するためのハードウェア構成の一例を示す図である。家庭用ゲーム装置1200は、CPU1000、ROM1002、RAM1004、情報記憶媒体1006、画像生成IC1008、音生成IC1010、I/Oポート1012,1014がシステムバス1016により相互にデータ入出力可能に接続されている。I/Oポート1012にはコントロール装置1022が、I/Oポート1014には通信装置1024が、それぞれ接続されている。
【0129】
CPU1000は、情報記憶媒体1006に格納されるプログラム、ROM1002に格納されるシステムプログラム(装置本体の初期化情報等)、コントロール装置1022によって入力される信号等に従って、装置全体の制御や各種データ処理を行う。
【0130】
RAM1004は、CPU1000の作業領域等として用いられる記憶手段であり、情報記憶媒体1006やROM1002内の所与の内容、CPU1000の演算結果等が格納される。
【0131】
情報記憶媒体1006は、プログラム、画像データ、音データ、プレーデータ等が主に格納されるものであり、情報記憶媒体として、ROM等のメモリやハードディスクや、CD−ROM、DVD、ICカード、磁気ディスク、光ディスク等が用いられる。尚、この情報記憶媒体1006は、図6の記憶部500に相当するものである。
【0132】
また、この装置に設けられている画像生成IC1008と音生成IC1010により、音や画像の好適な出力が行えるようになっている。
【0133】
画像生成IC1008は、CPU1000の命令によって、ROM1002、RAM1004、情報記憶媒体1006等から送られる情報に基づいて画素情報を生成する集積回路であり、生成される画像信号は、表示装置1018に出力される。表示装置1018は、CRTやLCD、ELD、プラズマディスプレイ、或いはプロジェクター等により実現され、図6の画像表示部360に相当する。
【0134】
また、音生成IC1010は、CPU1000の命令によって、情報記憶媒体1006やROM1002に記憶される情報、RAM1004に格納される音データに応じた音信号を生成する集積回路であり、生成される音信号はスピーカ1020によって出力される。スピーカ1020は、図6の音出力部350に相当するものである。
【0135】
コントロール装置1022は、プレーヤがゲームに係る操作を入力するための装置であり、その機能は、レバー、ボタン、パッチパネル、ダイヤル、ポインター等のハードウェアにより実現される。尚、このコントロール装置1022は、図6の操作入力部100に相当するものである。
【0136】
通信装置1024は、装置内部で利用される情報を外部とやりとりするものであり、所与の情報を他の装置と送受すること等に利用される。尚、この通信装置1024は、図6の通信部370に相当するものである。
【0137】
そして、ゲーム処理等の上記した処理は、図6のゲームプログラム502等を格納した情報記憶媒体1006と、これらプログラムに従って動作するCPU1000、画像生成IC1008、音生成IC1010等によって実現される。CPU1000、画像生成IC1008、及び音生成IC1010は、図6の処理部200に相当するものであり、主にCPU1000がゲーム演算部210、画像生成IC1008が画像生成部260に、音生成IC1010が音生成部250にそれぞれ相当する。
【0138】
尚、画像生成IC1008、音生成IC1010等で行われる処理は、CPU1000或いは汎用のDSP等によりソフトウェア的に行ってもよい。この場合には、CPU1000が、図6の処理部200に相当する。
【0139】
以上の構成並びに処理によって、パーツ毎に過去に受けたダメージを積算し、積算されたダメージ及び当該パーツオブジェクトの部位に基づいて、動作性能の優劣を段階的に可変してキャラクタの動作を制御することが可能になる。つまり、ダメージが徐々に蓄積し、ある一定量に達すると外観的にも動作性能的にも劣化が始まり、さらにダメージが蓄積してある一定量に達すると更に劣化が起るといった、ダメージが進行する様子をリアルに表現できる。
【0140】
以上、本発明を適用した第1実施形態について説明したが、本発明の適用形態がこれらに限定されるものではない。
【0141】
例えば、家庭用ゲーム装置でビデオゲームを実行する構成を例に挙げたが、業務用のゲーム装置やパソコン、携帯型ゲーム装置などでゲームを実行することもできる。
【0142】
また、上記実施形態では、パーツの積算ダメージ値からダメージレベルを判定することで、ダメージ状態の段階化を行っているが、ダメージレベルの判定を省略し、ダメージレベルの代わりに積算ダメージ値の範囲を用いる構成とすることもできる。例えば、特定パーツの積算ダメージ値が、第1の積算ダメージ値範囲に含まれる場合には、小破損用のモーションデータを選択し、第2の積算ダメージ値範囲に含まれる場合には中破損用のモーションデータを選択する。そして、第3の積算ダメージ値範囲に含まれる場合には全破損用のモーションデータを選択する。
【0143】
また、上記実施形態ではダメージ値を積算する方法を採っているが、初期状態で各パーツに所定のヒットポイントを設定し、攻撃を受けた場合に受けた攻撃に応じたダメージ値を減算する構成としても良い。そして、ヒットポイントが初期値からどれだけ減少しているか、初期値に対するパーセンテージでダメージのレベルを判定する構成としても良い。
【0144】
〔第2実施形態〕
次に、本発明を適用した第2実施形態について説明する。本実施形態は、基本的に第1実施形態と同様の構成を有しているが、現在のダメージ値に基づいて動作モーションを2つ選択し、現在のダメージ値に応じた割合でブレンドして使用する点が異なる。尚、第1実施形態と同様の構成要素については、同じ符号を付与して説明は省略する。
【0145】
図16は、本実施形態における機能構成の一例を示す機能ブロック図である。同図に示すように、本実施形態では家庭用ゲーム装置1200は、ゲーム演算部210に補間モーション生成部219を備える。
【0146】
補間モーション生成部219は、複数の異なるモーションデータからそれらの中間的な動作をするモーションデータを新たに生成する処理を実行する。
【0147】
図17は、本実施形態における主たる処理の流れを説明するためのフローチャートである。同図に示すように、基本的には第1実施形態と同様の処理の流れを有するが、処理部200は、第1実施形態におけるステップS26及びS28に代えて、ステップS25の補間モーション生成処理を実行する。
【0148】
図18は、補間モーション生成処理の流れを説明するためのフローチャートである。同図に示すように、補間モーション生成処理では、処理部200は先ず、動作設定データ534を参照して、ステップS24で決定された次に実行する動作種類534aに対応するモーションデータ群から、選択条件534cに従って第1モーションデータを選択し(ステップS100)、更にこの第1モーションデータより次に優先度が低い第2モーションデータを選択する(ステップS102)。
【0149】
次に、選択された動作種類534aに関連する部位のパーツで最も高いダメージレベルを求め(ステップS104)、仮に当該部位の全てのパーツがこの最も高いダメージレベルに達していたとした場合におけるダメージレベルの数値の合計である第1総和を求める(ステップS106)。次いで、当該部位のパーツで最も低いダメージレベルを求め(ステップS108)、仮に当該部位の全てのパーツがこの最も低いダメージレベルであった場合のダメージレベルの数値の合計である第2総和を求める(ステップS110)。更に、処理部200は現時点における当該部位を構成する全パーツのダメージレベルの数値の合計に当る第3総和を算出する(ステップS112)。
【0150】
例えば、次の動作種類が「右腕で銃を所持した場合の射撃」の場合であって、右肩12がDLV2、その他の右腕10のパーツがDLV1の場合、第1総和=2×(右腕10のパーツ数)=「8」となる。一方、第2総和=1×(右腕10のパーツ数)=4となる。また、第3総和=2+1+1+1=5となる。
つまり、第1総和が、選択された動作種類534aに関連する部位について第1モーションデータが選択される場合の最も重いダメージ状態に該当する閾値を示し、第2総和が、該部位について第2モーションデータが選択される場合のダメージ状態に該当する閾値を示すことになる。そして、該部位のダメージの状態が、これら2つの閾値の間の何所に位置するかを第3総和が示している。
【0151】
そこで次に、処理部200は、先に選択された第1モーションデータと第2モーションデータとを第1〜第3総和に基づいて重み付けして、これらモーションデータの中間動作となる補間モーションデータを生成する(ステップS114)。
具体的には、例えば、第1モーションデータと第2モーションデータとが同じ時間で完了するように設定さているとして、同じ有る時点における第1モーションデータで定義されている位置座標及び姿勢値と、同時点における第2モーションデータで定義されている位置座標及び姿勢値とを、(第1総和−第3総和):(第3総和−第2総和)で内分した位置座標及び姿勢値を求める。モーションの開始から終了までの各時点について同様に求めれば、一連の補間モーションデータが生成されることになる。
【0152】
補間モーションデータを生成したならば、補間モーションデータ生成処理を終了して図17のフローに戻る。そして、処理部200は生成した補間モーションデータに従って関連するパーツオブジェクトの配置移動処理を実行する(ステップS27)。
【0153】
以上の処理によって、動作設定データ534に格納されているモーションデータ群を補間してよりダメージの状況に応じた細やかな動作表現が可能になる。
【0154】
尚、本実施形態では、ダメージレベルの総和に基づいて補間モーションデータの生成を行ったがこれに限らず、例えばダメージレベルの平均に基づいて重み付けをして補間モーションデータを生成する構成としても良い。
【0155】
また、ダメージレベルの判定を省略し、動作設定データ534の選択条件534cをダメージレベルに基づく条件を設定する代わりに積算ダメージ値の範囲を設定し、ダメージレベルを経ずに直接パーツの積算ダメージ値からモーションデータを選択する構成とすることもできる。この場合には、第1モーションデータの選択条件534cで該当部位のパーツが最も積算ダメージ値が高い値と仮定した場合の積算ダメージ値の総和を第1総和とし、同選択条件において該当部位のパーツが最もダメージ値が低い値と仮定した場合の積算ダメージ値の総和を第2総和、現在の該当部位の全パーツにおける積算ダメージ値の総和を第3総和、とすることによって同様の処理が可能になる。
【0156】
〔変形例〕
以上、本発明を適用した第1及び第2実施形態について説明したが、本発明の適用形態がこれらに限定されるものではなく、発明の主旨を逸脱しない限りにおいて適宜変更を加えることができる。
【0157】
例えば、上記実施形態では、分離条件(DLV3)を満たしたパーツ及び該パーツの下位階層のパーツを複製して破損物オブジェクトとして配置する一方、これらのパーツを表示状態から非表示に切り換えることで、あたかも分離条件を満たしたパーツから先の部分が破壊分離したかのようにみせているが、これに限るものではない。
【0158】
例えば、上記実施形態と同様に、右腕10及び左腕20を構成する各パーツに対応する破損パーツを予め用意するが、データとして記憶部500に記憶させておくにとどめておく。つまり、ゲーム開始当初の状態では、破損パーツはキャラクタCRに階層付けされていないものとする。
【0159】
分離条件と満たすパーツから先の部分のパーツを、階層関係を維持したままキャラクタCRから分離独立させ、分離の後、地表に落下するようにこれらのパーツのオブジェクトを移動制御する
より具体的には、例えば、ダメージ表現物表示処理のループBの処理において、処理対象のパーツのダメージレベルが「3」の場合、ステップS70、S72を行わずに対象パーツの位置に爆発効果オブジェクトを配置する(ステップS74)。そして、ステップS76の代わりに、対象パーツと該パーツの上位階層との階層関係を解除し、対象パーツからその下位階層のパーツまでの階層構造を維持したまま分離独立させる。図5の例では、右肩12と胴6との間の階層関係を解除し、右肩12から右上腕14、右下腕16、右手18(及び銃50)までの階層関係は維持し、右肩12〜右手18及び銃50までを一体のオブジェクト群として、キャラクタCRから分離独立させる処理を行う。更に、分離条件を満たすパーツに変えて、該パーツに対応する破損パーツを、上位階層のパーツに階層付ける。図5の例では、右肩12に対応する右肩破損12b(破損パーツ)のオブジェクトを、分離された右肩12のオブジェクトに代えて、胴位置に胴6の下位階層オブジェクトとして階層づける処理を行って、ループBの処理を終了する。
【0160】
このように、モデル上において正常な外観を有するパーツのオブジェクトを切り離し、代わりに破損した外観を有する破損パーツのオブジェクトに差し換える構成とすると、例えば、破損パーツを複数形態用意しておき、ランダムに差し換えることによって、時々によって破損された部分の様子が異なるように表現できるので、より一層リアリティのあるダメージ表現が可能になる。
【図面の簡単な説明】
【0161】
【図1】家庭用ゲーム装置の構成例を示すシステム構成図。
【図2】ビデオゲームに登場するキャラクタの正面外観と、キャラクタオブジェクトの構成を説明するための図。
【図3】パーツ毎のダメージの積算について説明するための概念図。
【図4】視覚的なダメージ表現の例を説明するための図。
【図5】キャラクタの動作性能におけるダメージ表現の例を説明するための図。
【図6】機能構成の一例を示す機能ブロック図。
【図7】ダメージ算出TBLデータの一例を示すデータ構成図。
【図8】機能構成の一例を示す機能ブロック図。
【図9】動作設定データの一例を示すデータ構成図。
【図10】キャラクタ制御データの一例を示すデータ構成図。
【図11】ダメージ表現物制御データの一例を示すデータ構成図。
【図12】主たる処理の流れを説明するためのフローチャート。
【図13】図12のつづきを示すフローチャート。
【図14】ダメージ表現物表示処理の流れを説明するためのフローチャート。
【図15】家庭用ゲーム装置を実現するためのハードウェア構成の一例を示す図。
【図16】第2実施形態における機能構成の一例を示す機能ブロック図。
【図17】第2実施形態における主たる処理の流れを説明するためのフローチャート。
【図18】補間モーション生成処理の流れを説明するためのフローチャート。
【符号の説明】
【0162】
200 処理部
210 ゲーム演算部
212 積算ダメージ算出部
214 モーション選択部
216 キャラクタ動作制御部
218 ダメージ表現物制御部
500 記憶部
528 ダメージ表現物オブジェクト設定データ
532 ダメージレベル設定データ
534 動作設定データ
540 キャラクタ制御データ
542 部位制御データ
542f 積算ダメージ値
542g DLV(ダメージレベル)
542h 表示モード設定
550 ダメージ表現物制御データ
1200 家庭用ゲーム装置

【特許請求の範囲】
【請求項1】
コンピュータに、3次元仮想空間を仮想カメラで撮影した画像を生成させて、ゲームを実行させるためのプログラムであって、
複数のパーツオブジェクトで一体的に形成されたキャラクタの前記パーツオブジェクト毎に、過去に受けたダメージの積算を算出するパーツ別積算ダメージ算出手段、
パーツオブジェクトの積算ダメージ及び当該パーツオブジェクトの部位に基づいて、動作性能の優劣を可変して前記キャラクタの動作を制御するキャラクタ制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項2】
前記キャラクタは、少なくとも、胴部と、複数のパーツオブジェクトが直列的な階層構造を成して前記胴部に接続された肢部とを有しており、
前記キャラクタ制御手段が、前記肢部を構成するパーツオブジェクトの積算ダメージに基づいて前記肢部の可動範囲及び/又は可動速度を可変して当該肢部の可動を制御する肢部可動制御手段を有するように前記コンピュータを機能させるための請求項1に記載のプログラム。
【請求項3】
前記肢部可動制御手段が、前記肢部を構成するパーツオブジェクトのうち、積算ダメージが最も大きいパーツオブジェクトの積算ダメージに基づいて前記肢部の可動範囲及び/又は可動速度を可変して当該肢部の可動を制御するように前記コンピュータを機能させるための請求項2に記載のプログラム。
【請求項4】
前記肢部可動制御手段が、前記肢部を構成する各パーツオブジェクトの積算ダメージの総合又は平均に基づいて前記肢部の可動範囲及び/又は可動速度を可変して当該肢部の可動を制御するように前記コンピュータを機能させるための請求項2に記載のプログラム。
【請求項5】
前記キャラクタ制御手段が、動作性能の優劣を段階的に可変して前記キャラクタの動作を段階的に変更するように制御する、ように前記コンピュータを機能させるための請求項1〜4の何れか一項に記載のプログラム。
【請求項6】
前記肢部の可動範囲及び/又は可動速度が段階的に異なる複数のモーションデータの中から、前記肢部を構成するパーツオブジェクトの積算ダメージに基づいて2つのモーションデータを選択し、該選択したモーションデータを合成することで、当該積算ダメージに相応するモーションデータを生成するモーションデータ生成手段として前記コンピュータを機能させ、
前記肢部可動制御手段が、前記生成されたモーションデータに従って前記肢部の可動を制御するように前記コンピュータを機能させるための請求項2〜4の何れか一項に記載のプログラム。
【請求項7】
前記キャラクタと他キャラクタとの接触を検出する接触検出手段として前記コンピュータを機能させ、
前記パーツ別積算ダメージ算出手段が、前記検出に応じて、前記他キャラクタと接触したパーツオブジェクトの積算ダメージに応じて、当該パーツオブジェクトの積算ダメージを増加させる手段を有するように前記コンピュータを機能させるための請求項1〜6の何れか一項に記載のプログラム。
【請求項8】
前記キャラクタは、複数のパーツオブジェクトが階層構造を成して一体的に形成されたオブジェクトであり、
前記複数のパーツオブジェクトの中から積算ダメージが所定の分離条件を満たしたパーツオブジェクトを抽出し、抽出されたパーツオブジェクトと該パーツオブジェクトの下位階層のパーツオブジェクトとを一体として前記キャラクタから離脱させ、破損物オブジェクトとして前記3次元仮想空間に配置制御する破損物オブジェクト配置制御手段として前記コンピュータを機能させるための請求項1〜7の何れか一項に記載のプログラム。
【請求項9】
前記破損物オブジェクト配置制御手段が、前記抽出されたパーツオブジェクトと該パーツオブジェクトの下位階層のパーツオブジェクトとを複製して破損物オブジェクトを生成して前記3次元仮想空間に配置制御するように前記コンピュータを機能させ、
前記破損物オブジェクトとして複製された前記抽出されたパーツオブジェクトの表示を非表示にする破損パーツ非表示制御手段として前記コンピュータを機能させる、
ための請求項8に記載のプログラム。
【請求項10】
前記コンピュータを更に、
前記キャラクタが受けた積算ダメージの総量を示す総積算ダメージを算出する総積算ダメージ算出手段、
算出された総積算ダメージが所定の撃破条件を満たす場合に、当該キャラクタを使用不可に設定する撃破制御手段、
として機能させるための請求項1〜9の何れか一項に記載のプログラム。
【請求項11】
前記キャラクタは脚部のパーツオブジェクトを有し、
前記キャラクタが受けた積算ダメージの総量を示す総積算ダメージを算出する総積算ダメージ算出手段、
算出された総積算ダメージが所定の撃破条件を満たす場合に、当該キャラクタを使用不可に設定する撃破制御手段、
として前記コンピュータを機能させるとともに、
前記破損物オブジェクト配置制御手段が、前記脚部のパーツオブジェクトの分離条件を、前記所定の撃破条件相当の条件として、前記脚部のパーツオブジェクトの分離を判定するように前記コンピュータを機能させるための請求項8又は9に記載のプログラム。
【請求項12】
各パーツオブジェクトの積算ダメージに基づいて、当該パーツオブジェクト及び/又は当該パーツオブジェクト近傍位置に破損外観物を発生させる破損外観物発生制御手段として前記コンピュータを機能させるための請求項1〜11の何れか一項に記載のプログラム。
【請求項13】
請求項1〜12の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
【請求項14】
3次元仮想空間を仮想カメラで撮影した画像を生成してゲームを実行するゲーム装置であって、
複数のパーツオブジェクトで一体的に形成されたキャラクタの前記パーツオブジェクト毎に、過去に受けたダメージの積算を算出するパーツ別積算ダメージ算出手段と、
パーツオブジェクトの積算ダメージ及び当該パーツオブジェクトの部位に基づいて、動作性能の優劣を可変して前記キャラクタの動作を制御するキャラクタ制御手段と、
を備えたゲーム装置。

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


【公開番号】特開2008−119224(P2008−119224A)
【公開日】平成20年5月29日(2008.5.29)
【国際特許分類】
【出願番号】特願2006−306047(P2006−306047)
【出願日】平成18年11月10日(2006.11.10)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】