(57)【特許請求の範囲】
【請求項１】
オブジェクト空間における仮想カメラで見た画像を生成するためのプログラムであって、
第１のオブジェクトの位置移動を引き起こす特性をもつ衝撃移動イベントの発生を検出する衝撃移動イベント検出手段と、
前記衝撃移動イベントによって引起される前記オブジェクト空間での状態変化を特定する変化情報を演算する情報演算手段と、
前記変化情報に基づき前記オブジェクト空間でのオブジェクトを制御するオブジェクト制御手段としてコンピュータを機能させ、
前記情報演算手段は、
衝撃移動イベント発生に伴う衝撃の方向及び強さの少なくとも一方を表す衝撃情報と、前記衝撃が第１のオブジェクトに与えられる位置とに基づき、前記衝撃により引起される前記第１のオブジェクトのオブジェクト空間内での移動軌跡を予め特定するとともに、前記移動軌跡と交差する第２のオブジェクトを衝突対象オブジェクトとして予め特定する第１の特定演算処理を行う移動軌跡演算手段と、
前記第１オブジェクトが第２のオブジェクトに衝突する第１の衝突イベントの発生時における前記第２のオブジェクトの形状の変化を予め特定する第１の形状変化特定処理を行う衝突状況特定手段と、
を含み、
前記オブジェクト制御手段は、
前記オブジェクト空間内で、前記衝撃移動イベント発生時には前記予め特定された移動軌跡に沿って前記第１のオブジェクトを移動させ、前記第１及び第２のオブジェクトの第１の衝突イベント発生時には、特定された前記形状の変化に基づき前記第２のオブジェクトの状態を変更するオブジェクト制御を行うことを特徴とするプログラム。
【請求項２】
請求項１において、
前記第１の形状変化特定処理は、
前記第１及び第２のオブジェクトの衝突時における衝撃の方向及び強さの少なくとも一方を表す第２の衝撃情報と、前記衝撃が第２のオブジェクトに与えられた位置とに基づく物理シミュレーションにより実行されることを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記移動軌跡演算手段は、
前記第１のオブジェクトが第２のオブジェクトに衝突する第１の衝突イベント発生時における衝撃の方向及び強さの少なくとも一方を表す第２の衝撃情報と、前記衝撃が第２のオブジェクトに与えられる位置とに基づき、前記衝突後に第１のオブジェクトがさらに移動する衝突移動イベントが発生するか否かの判定を行うとともに、衝突移動イベントが発生する場合には衝突後の第１のオブジェクトの移動軌跡である第２の移動軌跡を予め特定するとともに、前記第２の移動軌跡と交差する第３のオブジェクトを衝突対象オブジェクトとして予め特定する第２の特定演算処理を行い、
前記衝突状況特定手段は、
前記衝突移動イベントが発生する場合には、第１のオブジェクトが前記第３のオブジェクトに衝突する第２の衝突イベント発生時の時における前記第３のオブジェクトの形状の変化を予め特定する第２の形状変化特定処理を行い、
前記オブジェクト制御手段は、
前記第１の衝突イベント発生後に前記第２の移動軌跡に沿って前記第１のオブジェクトを移動させ、前記第２の衝突イベント発生時には、特定された形状の変化に基づき前記第３のオブジェクトの状態を変更する処理を行うことを特徴とするプログラム。
【請求項４】
請求項１〜３のいずれかにおいて、
前記衝撃移動イベント検出手段は、
前記特定された移動軌跡に沿って移動中の前記第１のオブジェクトに、新たな衝撃を与
える新衝撃イベントの発生を検出し、
前記移動軌跡演算手段は、
前記新衝撃イベントの発生が検出された場合には、前記新たな衝撃の方向及び強さの少なくとも一方を表す衝撃情報と、前記衝撃が第１のオブジェクトに与えられる位置とに基づく物理シミュレーションにより、前記新たな衝撃により前記第１のオブジェクトがオブジェクト空間内で移動する新たな移動軌跡を予め特定するとともに、特定された前記新たな移動軌跡に基づき第１のオブジェクトと衝突する新たな第２のオブジェクトを予め特定する特定演算処理を行い、
前記衝突状況特定手段は、
前記新たな第２のオブジェクトが特定された場合には、第１及び第２のオブジェクトの衝突時における前記新たな第２のオブジェクトの形状の変化を予め特定する形状変化特定処理を行い、
前記オブジェクト制御手段は、
前記オブジェクト空間内で、前記新衝撃イベント発生時には前記新たな移動軌跡に沿って前記第１のオブジェクトを移動させ、前記第１及び第２のオブジェクトの第１の衝突イベント発生時には、特定された形状の変化に基づき前記新たな第２のオブジェクトの状態を変更する状態変更処理を行うことを特徴とするプログラム。
【請求項５】
オブジェクト空間における仮想カメラで見た画像を生成するためのプログラムであって、
第１のオブジェクトの位置移動を引き起こす特性をもつ衝撃移動イベントの発生を検出する衝撃移動イベント検出手段と、
前記衝撃移動イベントによって引起される前記オブジェクト空間での状態変化を特定する変化情報を演算する情報演算手段と、
前記変化情報に基づき前記オブジェクト空間でのオブジェクトを制御するオブジェクト制御手段としてコンピュータを機能させ、
前記情報演算手段は、
衝撃移動イベント発生に伴ない、衝撃により引起される前記第１のオブジェクトのオブジェクト空間内での移動軌跡を予め特定するとともに、前記移動軌跡と交差する第２のオブジェクトを衝突対象オブジェクトとして予め特定する第１の特定演算処理を行い、
前記第１オブジェクトが第２のオブジェクトに衝突する第１の衝突イベントの発生時における前記第２のオブジェクトの形状の変化を予め特定する第１の形状変化特定処理を行い、
前記オブジェクト制御手段は、
前記オブジェクト空間内で、前記衝撃移動イベント発生時には前記予め特定された移動軌跡に沿って前記第２のオブジェクトに向け第１のオブジェクトを移動させるオブジェクト制御を行い、
前記第１の形状変化特定処理は、
前記第１及び第２のオブジェクトの衝突時における衝撃の方向及び強さの少なくとも一方を表す第２の衝撃情報と、前記衝撃が第２のオブジェクトに与えられた位置とに基づく物理シミュレーションにより実行されることを特徴とするプログラム。
【請求項６】
オブジェクト空間における仮想カメラで見た画像を生成するためのプログラムであって、
第１のオブジェクトの位置移動を引き起こす特性をもつ衝撃移動イベントの発生を検出する衝撃移動イベント検出手段と、
前記衝撃移動イベントによって引起される前記オブジェクト空間での状態変化を特定する変化情報を演算する情報演算手段と、
前記変化情報に基づき前記オブジェクト空間でのオブジェクトを制御するオブジェクト制御手段としてコンピュータを機能させ、
前記情報演算手段は、
衝撃移動イベント発生に伴ない、衝撃により引起される前記第１のオブジェクトのオブジェクト空間内での移動軌跡を予め特定するとともに、前記移動軌跡と交差する第２のオブジェクトを衝突対象オブジェクトとして予め特定する第１の特定演算処理を行い、
前記オブジェクト制御手段は、
前記オブジェクト空間内で、前記衝撃移動イベント発生時には前記予め特定された移動軌跡に沿って前記第２のオブジェクトに向け第１のオブジェクトを移動させるオブジェクト制御を行い、
前記移動軌跡演算手段は、
前記第１のオブジェクトが第２のオブジェクトに衝突する第１の衝突イベント発生時における衝撃の方向及び強さの少なくとも一方を表す第２の衝撃情報と、前記衝撃が第２のオブジェクトに与えられる位置とに基づき、前記衝突後に第１のオブジェクトがさらに移動する衝突移動イベントが発生するか否かの判定を行うとともに、衝突移動イベントが発生する場合には衝突後の第１のオブジェクトの移動軌跡である第２の移動軌跡を予め特定するとともに、前記第２の移動軌跡と交差する第３のオブジェクトを衝突対象オブジェクトとして予め特定する第２の特定演算処理を行い、
前記衝突状況特定手段は、
前記衝突移動イベントが発生する場合には、第１のオブジェクトが前記第３のオブジェクトに衝突する第２の衝突イベント発生時の時における前記第３のオブジェクトの形状の変化を予め特定する第２の形状変化特定処理を行い、
前記オブジェクト制御手段は、
前記第１の衝突イベント発生後に前記第２の移動軌跡に沿って前記第１のオブジェクトを移動させ、前記第２の衝突イベント発生時には、特定された形状の変化に基づき前記第３のオブジェクトの状態を変更する処理を行うことを特徴とするプログラム。
【請求項７】
オブジェクト空間における仮想カメラで見た画像を生成するためのプログラムであって、
第１のオブジェクトの位置移動を引き起こす特性をもつ衝撃移動イベントの発生を検出する衝撃移動イベント検出手段と、
前記衝撃移動イベントによって引起される前記オブジェクト空間での状態変化を特定する変化情報を演算する情報演算手段と、
前記変化情報に基づき前記オブジェクト空間でのオブジェクトを制御するオブジェクト制御手段としてコンピュータを機能させ、
前記情報演算手段は、
衝撃移動イベント発生に伴ない、衝撃により引起される前記第１のオブジェクトのオブジェクト空間内での移動軌跡を予め特定するとともに、前記移動軌跡と交差する第２のオブジェクトを衝突対象オブジェクトとして予め特定する第１の特定演算処理を行い、
前記オブジェクト制御手段は、
前記オブジェクト空間内で、前記衝撃移動イベント発生時には前記予め特定された移動軌跡に沿って前記第２のオブジェクトに向け第１のオブジェクトを移動させるオブジェクト制御を行い、
前記衝撃移動イベント検出手段は、
前記特定された移動軌跡に沿って移動中の前記第１のオブジェクトに、新たな衝撃を与
える新衝撃イベントの発生を検出し、
前記移動軌跡演算手段は、
前記新衝撃イベントの発生が検出された場合には、前記新たな衝撃の方向及び強さの少なくとも一方を表す衝撃情報と、前記衝撃が第１のオブジェクトに与えられる位置とに基づく物理シミュレーションにより、前記新たな衝撃により前記第１のオブジェクトがオブジェクト空間内で移動する新たな移動軌跡を予め特定するとともに、特定された前記新たな移動軌跡に基づき第１のオブジェクトと衝突する新たな第２のオブジェクトを予め特定する特定演算処理を行い、
前記衝突状況特定手段は、
前記新たな第２のオブジェクトが特定された場合には、第１及び第２のオブジェクトの衝突時における前記新たな第２のオブジェクトの形状の変化を予め特定する形状変化特定処理を行い、
前記オブジェクト制御手段は、
前記オブジェクト空間内で、前記新衝撃イベント発生時には前記新たな移動軌跡に沿って前記第１のオブジェクトを移動させ、前記第１及び第２のオブジェクトの第１の衝突イベント発生時には、特定された形状の変化に基づき前記新たな第２のオブジェクトの状態を変更する状態変更処理を行うことを特徴とするプログラム。
【請求項８】
プレーヤからの操作入力に基づき関節構造を有するキャラクタ同士が格闘を行うゲーム空間として設定されたオブジェクト空間における仮想カメラで見た画像を生成するためのプログラムであって、
関節構造を有するキャラクタである第１のオブジェクトに対して、関節構造を有する他のキャラクタからの攻撃が加えられ、第１のキャラクタにヒットした場合に、前記第１のオブジェクトの位置移動を引き起こす特性をもつ衝撃移動イベントを発生させる衝撃移動イベント発生手段と、
前記衝撃移動イベントの発生を検出する衝撃移動イベント検出手段と、                前記衝撃移動イベントによって引起される前記オブジェクト空間での状態変化を特定する変化情報を演算する情報演算手段と、
前記変化情報に基づき前記オブジェクト空間でのオブジェクトを制御するオブジェクト制御手段としてコンピュータを機能させ、
前記情報演算手段は、
衝撃移動イベント発生に伴ない、衝撃により引起される前記第１のオブジェクトのオブジェクト空間内での移動軌跡を予め特定するとともに、前記移動軌跡と交差する第２のオブジェクトを衝突対象オブジェクトとして予め特定する第１の特定演算処理を行い、
前記オブジェクト制御手段は、
前記オブジェクト空間内で、前記衝撃移動イベント発生時には前記予め特定された移動軌跡に沿って前記第２のオブジェクトに向け第１のオブジェクトを移動させるオブジェクト制御を行うことを特徴とするプログラム。
【請求項９】
請求項１〜８のいずれかにおいて、
前記第１の特定演算処理は、
前記衝撃の方向及び強さの少なくとも一方を表す衝撃情報と、前記衝撃が第１のオブジェクトに与えられた位置とに基づく物理シミュレーションにより実行されることを特徴とするプログラム。
【請求項１０】
請求項１〜９のいずれかにおいて、
前記情報演算手段は、
前記衝撃情報と、前記第１のオブジェクトに衝撃が与えられた位置とに基づく物理シミュレーションにより、前記移動軌跡に沿って移動する前記第１のオブジェクトの移動モーションを生成する移動モーション生成処理を行い、
前記オブジェクト制御手段は、
前記生成された移動モーションに基づき、移動軌跡に沿って移動する前記第１のオブジェクトのモーションを制御することを特徴とするプログラム。
【請求項１１】
請求項１０において、
前記移動モーション生成処理では、
複数の部位により構成される第１のオブジェクトの第Ｎの部位に衝撃が与えられた場合に、衝撃情報に基づく物理シミュレーションにより第Ｎの部位を動かすと共に第Ｎ＋１の部位、第Ｎ＋２の部位、第Ｎ＋３の部位・・・・に衝撃情報を順次伝達し、伝達された衝撃情報に基づく物理シミュレーションにより第Ｎ＋１の部位、第Ｎ＋２の部位、第Ｎ＋３の部位・・・・を順次動かして、前記移動モーションを生成することを特徴とするプログラム。
【請求項１２】
請求項３又は６において、
前記第２の形状変化特定処理は、
前記第１及び第３のオブジェクトの衝突時における衝撃の方向及び強さの少なくとも一方を表す第３の衝撃情報と、前記衝撃が第３のオブジェクトに与えられた位置とに基づく物理シミュレーションにより実行されることを特徴とするプログラム。
【請求項１３】
請求項１〜１２のいずれかにおいて、
前記オブジェクトの状態を変更する処理は、
特定された形状の変化に基づきオブジェクトが破壊される画像を生成する処理であることを特徴とするプログラム。
【請求項１４】
請求項１〜１３のいずれかにおいて、
前記衝突が発生する可能性のあるオブジェクトの少なくとも一つに、ゲーム状況に応じて衝突時における形状の変化を禁止又は許可する第１の衝突パラメータを設定するパラメータ制御手段を含むことを特徴とするプログラム。
【請求項１５】
請求項１〜１４のいずれかにおいて、
前記衝突が発生する可能性のあるオブジェクトの少なくとも一つに、ゲーム状況に応じて衝突を誘引する第２の衝突パラメータを設定するパラメータ制御手段を含み、
前記移動軌跡演算手段は、
第２の衝突パラメータが衝突を誘引する状態に設定されているときに、所与の条件に基づき当該オブジェクトとの衝突を強制的に発生させるように前記移動軌跡を補正する処理を行うことを特徴とするプログラム。
【請求項１６】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１〜１５のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１７】
オブジェクト空間における仮想カメラで見た画像を生成する画像生成システムであって、
第１のオブジェクトの位置移動を引き起こす特性をもつ衝撃移動イベントの発生を検出する衝撃移動イベント検出手段と、
前記衝撃移動イベントによって引起される前記オブジェクト空間での状態変化を特定する変化情報を演算する情報演算手段と、
前記変化情報に基づき前記オブジェクト空間でのオブジェクトを制御するオブジェクト制御手段と、を含み、
前記情報演算手段は、
衝撃移動イベント発生に伴う衝撃の方向及び強さの少なくとも一方を表す衝撃情報と、前記衝撃が第１のオブジェクトに与えられる位置とに基づき、前記衝撃により引起される前記第１のオブジェクトのオブジェクト空間内での移動軌跡を予め特定するとともに、前記移動軌跡と交差する第２のオブジェクトを衝突対象オブジェクトとして予め特定する第１の特定演算処理を行う移動軌跡演算手段と、
前記第１オブジェクトが第２のオブジェクトに衝突する第１の衝突イベントの発生時における前記第２のオブジェクトの形状の変化を予め特定する第１の形状変化特定処理を行う衝突状況特定手段と、を含み、
前記オブジェクト制御手段は、
前記オブジェクト空間内で、前記衝撃移動イベント発生時には前記予め特定された移動軌跡に沿って前記第１のオブジェクトを移動させ、前記第１及び第２のオブジェクトの第１の衝突イベント発生時には、特定された前記形状の変化に基づき前記第２のオブジェクトの状態を変更するオブジェクト制御を行うことを特徴とする画像生成システム。
【請求項１８】
オブジェクト空間における仮想カメラで見た画像を生成する画像生成システムであって、
第１のオブジェクトの位置移動を引き起こす特性をもつ衝撃移動イベントの発生を検出する衝撃移動イベント検出手段と、
前記衝撃移動イベントによって引起される前記オブジェクト空間での状態変化を特定する変化情報を演算する情報演算手段と、
前記変化情報に基づき前記オブジェクト空間でのオブジェクトを制御するオブジェクト制御手段と、を含み、
前記情報演算手段は、
衝撃移動イベント発生に伴ない、衝撃により引起される前記第１のオブジェクトのオブジェクト空間内での移動軌跡を予め特定するとともに、前記移動軌跡と交差する第２のオブジェクトを衝突対象オブジェクトとして予め特定する第１の特定演算処理を行い、
前記第１オブジェクトが第２のオブジェクトに衝突する第１の衝突イベントの発生時における前記第２のオブジェクトの形状の変化を予め特定する第１の形状変化特定処理を行い、
前記オブジェクト制御手段は、
前記オブジェクト空間内で、前記衝撃移動イベント発生時には前記予め特定された移動軌跡に沿って前記第２のオブジェクトに向け第１のオブジェクトを移動させるオブジェクト制御を行い、
前記第１の形状変化特定処理は、
前記第１及び第２のオブジェクトの衝突時における衝撃の方向及び強さの少なくとも一方を表す第２の衝撃情報と、前記衝撃が第２のオブジェクトに与えられた位置とに基づく物理シミュレーションにより実行されることを特徴とする画像生成システム。
【請求項１９】
オブジェクト空間における仮想カメラで見た画像を生成する画像生成システムであって、
第１のオブジェクトの位置移動を引き起こす特性をもつ衝撃移動イベントの発生を検出する衝撃移動イベント検出手段と、
前記衝撃移動イベントによって引起される前記オブジェクト空間での状態変化を特定する変化情報を演算する情報演算手段と、
前記変化情報に基づき前記オブジェクト空間でのオブジェクトを制御するオブジェクト制御手段と、を含み、
前記情報演算手段は、
衝撃移動イベント発生に伴ない、衝撃により引起される前記第１のオブジェクトのオブジェクト空間内での移動軌跡を予め特定するとともに、前記移動軌跡と交差する第２のオブジェクトを衝突対象オブジェクトとして予め特定する第１の特定演算処理を行い、
前記オブジェクト制御手段は、
前記オブジェクト空間内で、前記衝撃移動イベント発生時には前記予め特定された移動軌跡に沿って前記第２のオブジェクトに向け第１のオブジェクトを移動させるオブジェクト制御を行い、
前記移動軌跡演算手段は、
前記第１のオブジェクトが第２のオブジェクトに衝突する第１の衝突イベント発生時における衝撃の方向及び強さの少なくとも一方を表す第２の衝撃情報と、前記衝撃が第２のオブジェクトに与えられる位置とに基づき、前記衝突後に第１のオブジェクトがさらに移動する衝突移動イベントが発生するか否かの判定を行うとともに、衝突移動イベントが発生する場合には衝突後の第１のオブジェクトの移動軌跡である第２の移動軌跡を予め特定するとともに、前記第２の移動軌跡と交差する第３のオブジェクトを衝突対象オブジェクトとして予め特定する第２の特定演算処理を行い、
前記衝突状況特定手段は、
前記衝突移動イベントが発生する場合には、第１のオブジェクトが前記第３のオブジェクトに衝突する第２の衝突イベント発生時の時における前記第３のオブジェクトの形状の変化を予め特定する第２の形状変化特定処理を行い、
前記オブジェクト制御手段は、
前記第１の衝突イベント発生後に前記第２の移動軌跡に沿って前記第１のオブジェクトを移動させ、前記第２の衝突イベント発生時には、特定された形状の変化に基づき前記第３のオブジェクトの状態を変更する処理を行うことを特徴とする画像生成システム。
【請求項２０】
オブジェクト空間における仮想カメラで見た画像を生成する画像生成システムであって、
第１のオブジェクトの位置移動を引き起こす特性をもつ衝撃移動イベントの発生を検出する衝撃移動イベント検出手段と、
前記衝撃移動イベントによって引起される前記オブジェクト空間での状態変化を特定する変化情報を演算する情報演算手段と、
前記変化情報に基づき前記オブジェクト空間でのオブジェクトを制御するオブジェクト制御手段と、を含み、
前記情報演算手段は、
衝撃移動イベント発生に伴ない、衝撃により引起される前記第１のオブジェクトのオブジェクト空間内での移動軌跡を予め特定するとともに、前記移動軌跡と交差する第２のオブジェクトを衝突対象オブジェクトとして予め特定する第１の特定演算処理を行い、
前記オブジェクト制御手段は、
前記オブジェクト空間内で、前記衝撃移動イベント発生時には前記予め特定された移動軌跡に沿って前記第２のオブジェクトに向け第１のオブジェクトを移動させるオブジェクト制御を行い、
前記衝撃移動イベント検出手段は、
前記特定された移動軌跡に沿って移動中の前記第１のオブジェクトに、新たな衝撃を与
える新衝撃イベントの発生を検出し、
前記移動軌跡演算手段は、
前記新衝撃イベントの発生が検出された場合には、前記新たな衝撃の方向及び強さの少なくとも一方を表す衝撃情報と、前記衝撃が第１のオブジェクトに与えられる位置とに基づく物理シミュレーションにより、前記新たな衝撃により前記第１のオブジェクトがオブジェクト空間内で移動する新たな移動軌跡を予め特定するとともに、特定された前記新たな移動軌跡に基づき第１のオブジェクトと衝突する新たな第２のオブジェクトを予め特定する特定演算処理を行い、
前記衝突状況特定手段は、
前記新たな第２のオブジェクトが特定された場合には、第１及び第２のオブジェクトの衝突時における前記新たな第２のオブジェクトの形状の変化を予め特定する形状変化特定処理を行い、
前記オブジェクト制御手段は、
前記オブジェクト空間内で、前記新衝撃イベント発生時には前記新たな移動軌跡に沿って前記第１のオブジェクトを移動させ、前記第１及び第２のオブジェクトの第１の衝突イベント発生時には、特定された形状の変化に基づき前記新たな第２のオブジェクトの状態を変更する状態変更処理を行うことを特徴とする画像生成システム。
【請求項２１】
プレーヤからの操作入力に基づき関節構造を有するキャラクタ同士が格闘を行うゲーム空間として設定されたオブジェクト空間における仮想カメラで見た画像を生成する画像生成システムであって、
関節構造を有するキャラクタである第１のオブジェクトに対して、関節構造を有する他のキャラクタからの攻撃が加えられ、第１のキャラクタにヒットした場合に、前記第１のオブジェクトの位置移動を引き起こす特性をもつ衝撃移動イベントを発生させる衝撃移動イベント発生手段と、
前記衝撃移動イベントの発生を検出する衝撃移動イベント検出手段と、
前記衝撃移動イベントによって引起される前記オブジェクト空間での状態変化を特定する変化情報を演算する情報演算手段と、
前記変化情報に基づき前記オブジェクト空間でのオブジェクトを制御するオブジェクト制御手段と、を含み、
前記情報演算手段は、
衝撃移動イベント発生に伴ない、衝撃により引起される前記第１のオブジェクトのオブジェクト空間内での移動軌跡を予め特定するとともに、前記移動軌跡と交差する第２のオブジェクトを衝突対象オブジェクトとして予め特定する第１の特定演算処理を行い、
前記オブジェクト制御手段は、
前記オブジェクト空間内で、前記衝撃移動イベント発生時には前記予め特定された移動軌跡に沿って前記第２のオブジェクトに向け第１のオブジェクトを移動させるオブジェクト制御を行うことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【背景技術】
【０００２】
従来より、仮想的な３次元空間であるオブジェクト空間内の所与の視点から見える画像を生成する画像生成システムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
格闘ゲームシステムを楽しむことができる画像生成システムを例にとると、プレーヤはコントローラを操作して、ゲーム画面に写し出される敵キャラクタ（オブジェクト）などを攻撃することで、３次元ゲームを楽しむ。
【０００４】
従来このような画像生成システムでは、プレーヤキャラクタによって攻撃を受けた敵キャラクタは、その衝撃でそのまま後方に飛ばされ、周囲に存在する壁などのオブジェクトにぶつかり、壁が崩れるというゲーム画面が生成されることも行われていた。
【特許文献１】特開２０００−１１３２２５号公報
【特許文献２】特開平８−３０５８９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、従来の３次元ゲームでは、衝撃によって敵キャラクタが後方に飛ばされて壁にぶつかる等の演出を行う場合には、攻撃を受けた敵キャラクタが後方に飛ばされる移動軌跡や、ぶつかる壁等の障害物の種類が予めパターン化されており、この結果、位置移動を引き起こす特性をもつ攻撃を受けた際の敵キャラクタの移動や、壁の壊れ方が不自然なゲーム画像になってしまうという問題があった。
【０００６】
また、攻撃を受け後方に飛ばされる移動軌跡のバリエーションや、敵キャラクタがぶつかって壊れる壁等の障害物のバリエーションを増やすには、それに比例してデータを増やす必要があるが、データを記憶するメモリの容量に限界があるため、前記バリエーションにも限界があった。
【０００７】
本発明は、このような課題に鑑みなされたものであり、その目的は、位置移動を引き起こす特性をもつ衝撃を受けた際のキャラクタの移動や、周囲のオブジェクトとの衝突の様子をリアリティーが高く自然なゲーム画像として生成することが可能な画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００８】
（１）上記課題を解決するために、本発明は、
オブジェクト空間における仮想カメラで見た画像を生成するためのプログラムであって、
第１のオブジェクトの位置移動を引き起こす特性をもつ衝撃移動イベントの発生を検出する衝撃移動イベント検出手段と、
前記衝撃移動イベントによって引起される前記オブジェクト空間での状態変化を特定する変化情報を演算する情報演算手段と、
前記変化情報に基づき前記オブジェクト空間でのオブジェクトを制御するオブジェクト制御手段としてコンピュータを機能させ、
前記情報演算手段は、
衝撃移動イベント発生に伴ない衝撃により引起される前記第１のオブジェクトのオブジェクト空間内での移動軌跡を予め特定するとともに、前記移動軌跡と交差する第２のオブジェクトを衝突対象オブジェクトとして予め特定する第１の特定演算処理を行い、
前記オブジェクト制御手段は、
前記オブジェクト空間内で、前記衝撃移動イベント発生時には前記予め特定された移動軌跡に沿って前記第２のオブジェクトに向け第１のオブジェクトを移動させるオブジェクト制御を行うことを特徴とする。
【０００９】
また本発明は、上記各手段を含む画像生成システムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。また本発明に係るプログラムは、上記手段を実現（実行）するための処理ルーチンを含むことを特徴とする。
【００１０】
本発明によれば、第１のオブジェクトに衝撃が与えられると、衝撃を受けた第１のオブジェクトが移動する移動軌跡が第１の移動軌跡として予め特定し、特定された移動軌跡と交差するオブジェクトが衝突対象となる第２のオブジェクトとして予め特定する処理を、前記第１及び第２のオブジェクトの衝突イベントの発生する以前に実行し、終了する構成を採用することにより、演算負荷を時間的に分散し衝突イベント発生時に演算負荷が集中することを防止し、ＣＰＵの演算能力に限界がある場合でも、限られた演算能力の範囲内でよりリアルな動画像を生成することができる。
【００１１】
（２）また本発明は、
オブジェクト空間における仮想カメラで見た画像を生成するためのプログラムであって、
第１のオブジェクトの位置移動を引き起こす特性をもつ衝撃移動イベントの発生を検出する衝撃移動イベント検出手段と、
前記衝撃移動イベントによって引起される前記オブジェクト空間での状態変化を特定する変化情報を演算する情報演算手段と、
前記変化情報に基づき前記オブジェクト空間でのオブジェクトを制御するオブジェクト制御手段としてコンピュータを機能させ、
前記情報演算手段は、
衝撃移動イベント発生に伴う衝撃の方向及び強さの少なくとも一方を表す衝撃情報と、前記衝撃が第１のオブジェクトに与えられる位置とに基づき、前記衝撃により引起される前記第１のオブジェクトのオブジェクト空間内での移動軌跡を予め特定するとともに、前記移動軌跡と交差する第２のオブジェクトを衝突対象オブジェクトとして予め特定する第１の特定演算処理を行う移動軌跡演算手段と、
前記第１オブジェクトが第２のオブジェクトに衝突する第１の衝突イベントの発生時における前記第２のオブジェクトの形状の変化を予め特定する第１の形状変化特定処理を行う衝突状況特定手段と、
を含み、
前記オブジェクト制御手段は、
前記オブジェクト空間内で、前記衝撃移動イベント発生時には前記予め特定された移動軌跡に沿って前記第１のオブジェクトを移動させ、前記第１及び第２のオブジェクトの第１の衝突イベント発生時には、特定された前記形状の変化に基づき前記第２のオブジェクトの状態を変更するオブジェクト制御を行うことを特徴とする。
【００１２】
また本発明は、上記各手段を含む画像生成システムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。また本発明に係るプログラムは、上記手段を実現（実行）するための処理ルーチンを含むことを特徴とする。
【００１３】
（３）ここにおいて、前記第１の特定演算処理は、
前記衝撃の方向及び強さの少なくとも一方を表す衝撃情報と、前記衝撃が第１のオブジェクトに与えられた位置とに基づく物理シミュレーションにより実行することが好ましい。
【００１４】
本発明によれば、第１のオブジェクトに衝撃が与えられると、当該衝撃の方向及び強さの少なくとも一方を表す衝撃情報と、第１のオブジェクトが衝撃を受けた位置とに基づく物理シミュレーション（疑似的な物理シミュレーションを含む）により、衝撃を受けた第１のオブジェクトが移動する移動軌跡が第１の移動軌跡として予め求められる。
【００１５】
この移動軌跡は、オブジェクト空間内に重力などが設定されていない場合には、例えば、直線的な移動軌跡として特定してもよい。また移動空間内に重力等が設定されている場合には、第１のオブジェクトの質量及び重力、さらにはオブジェクト空間内に移動抵抗、例えば、風圧や水圧などがある場合には、この移動抵抗などを考慮した物理シミュレーションにより、前記移動軌跡を予め求める特定演算処理を行えばよい。
【００１６】
そして、このようにして特定された移動軌跡に基づき第１のオブジェクトと衝突する第２のオブジェクトを特定する。移動軌跡と交差するオブジェクトが存在する場合には、当該オブジェクトが衝突対象となる第２のオブジェクトとして特定される。例えば移動軌跡と最初に交叉する壁等が存在する場合には、その壁が、第１のオブジェクトと衝突する第２のオブジェクトとして特定されることになる。
【００１７】
このようにして、第２のオブジェクトが特定されると、次に第１及び第２のオブジェクトの衝突時における第２のオブジェクトの形状の変化を予め特定する形状変化特定処理が行われる。例えば、第１のオブジェクトが衝突する第２のオブジェクトとして、壁が特定された場合には、この壁に第１のオブジェクトが衝突した際に、壁側の形状が変化するか否か、さらには変化する場合にはその形状がどのように変化するかを予め特定する演算処理が実行される。
【００１８】
この第２のオブジェクトの形状を変化させる場合には、当該形状の変化を、予め用意した一連の形状の変化を表すモーションデータを用いて行ってもよく、又物理シミュレーションにより、その都度計算により求めてもよい。
【００１９】
そして、オブジェクト制御手段は、前記特定された移動経路に沿って第１のオブジェクトを移動させる処理を行い、さらに第１のオブジェクトが第２のオブジェクトに衝突する衝突イベント発生時には、特定された形状の変化に基づき第２のオブジェクトの形状を変更する状態変更処理を行う。
【００２０】
このように、本発明は物理シミュレーションにより、衝撃を受けた第１のオブジェクトがオブジェクト空間内で移動する移動軌跡を特定し、さらに第１のオブジェクトと衝突する第２のオブジェクトを特定するため、衝撃を受けた第１のオブジェクトがオブジェクト空間内を移動する動画像をリアルに表現することができるとともに、第１のオブジェクトが衝突する第２のオブジェクトもリアルに表現される動画像を生成することができる。
【００２１】
特に、本発明によれば、演算量の多い物理シミュレーションで実行する第１のオブジェクトの移動軌跡を特定する処理と、衝突する第２のオブジェクトを特定する処理とを、第１のオブジェクトが第２のオブジェクトと衝突する衝突イベントが発生する前に予め終了しておくことにより、物理シミュレーションによる演算負荷を時間的に分散して実行することができる。
【００２２】
しかも、本発明によれば、第１及び第２のオブジェクトの衝突時における第２のオブジェクトの形状の変化を特定する形状変化特定処理を、前記第１及び第２のオブジェクトの衝突イベントの発生する以前に実行し、終了する構成を採用することにより、衝突イベント発生時における演算負荷をこの面からも大幅に低減し、よりリアルな衝突イベントの動画像を少ない演算負荷で実行することができる。
【００２３】
すなわち、本発明によれば一度に多量な演算負荷が集中して発生することを避けることができ、これによりＣＰＵの演算能力に限界がある場合でも、限られた演算能力の範囲内で物理シミュレーションによる一連の動画像、特に衝撃を受けた第１のオブジェクトが移動する動画像や、第１のオブジェクトが第２のオブジェクトに衝突する際に、衝突された第２のオブジェクトが変形するという一連の動画像を、リアルな画像として表示することが可能となる。
【００２４】
なお、前記移動軌跡及び第２のオブジェクトを予め特定する特定演算処理及び衝突時における第２のオブジェクトの形状変化特定処理は、第１のオブジェクトに対する衝撃情報と、衝撃を与える位置とが、実際に衝撃が加えられる前に予め判明している場合、その情報が判明した時点から演算を開始してもよく、このようにすることにより、物理シミュレーションによる演算負荷を、時間的にさらに分散することができる。
【００２５】
（４）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記情報演算手段は、
前記衝撃情報と、前記第１のオブジェクトに衝撃が与えられた位置とに基づく物理シミュレーションにより、前記移動軌跡に沿って移動する前記第１のオブジェクトの移動モーションを生成する移動モーション生成処理を行い、
前記オブジェクト制御手段は、
前記生成された移動モーションに基づき、移動軌跡に沿って移動する前記第１のオブジェクトのモーションを制御するようにしてもよい。
【００２６】
このように物理シミュレーション（疑似的な物理シミュレーションを含む）により移動モーションを生成することより、衝撃が与えられた第１のオブジェクトが移動する動画像を、よりリアルな画像として生成することができる。
【００２７】
（５）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記移動モーション生成処理は、
複数の部位により構成される第１のオブジェクトの第Ｎの部位に衝撃が与えられた場合に、衝撃情報に基づく物理シミュレーションにより第Ｎの部位を動かすと共に第Ｎ＋１の部位、第Ｎ＋２の部位、第Ｎ＋３の部位・・・・に衝撃情報を順次伝達し、伝達された衝撃情報に基づく物理シミュレーションにより第Ｎ＋１の部位、第Ｎ＋２の部位、第Ｎ＋３の部位・・・・を順次動かして、前記移動モーションを生成するようにしてもよい。
【００２８】
本発明によれば、オブジェクトの第Ｎの部位がヒットされると、衝撃情報に基づく物理シミュレーション（疑似的な物理シミュレーションを含む）により、第Ｎの部位が動く（回転又は移動する）ようになる。また、衝撃情報が第Ｎ＋１、第Ｎ＋２の部位等に順次伝達され、伝達された衝撃情報に基づいて第Ｎ＋１、第Ｎ＋２の部位等が動くようになる。本発明によれば、このようにしてオブジェクトのモーションが生成されるため、例えば衝撃位置、衝撃方向等に応じて、オブジェクトが異なったモーションを行うようになる。この結果、リアルで多様なモーション表現を実現できる。
【００２９】
また本発明に係る画像生成システム、情報記憶媒体及びプログラムは、衝撃情報が、衝撃方向に向く力ベクトルであり、前記力ベクトルにより求められる回転モーメントにより各部位を動かすようにしてもよい。このようにすれば、力ベクトルで各部位を動かしたり、力ベクトルを各部位に伝達するだけという簡素な処理で、リアルで多様なモーション表現を実現できるようになる。
【００３０】
また本発明に係る画像生成システム、情報記憶媒体及びプログラムは、各部位に力ベクトルを伝達する際に、伝達する力ベクトルの大きさを順次減衰させるようにしてもよい。このようにすれば、衝撃位置に近い部位ほど大きく動くようになり、リアルなモーション変化を簡素な処理で実現できるようになる。
【００３１】
また本発明に係る画像生成システム、情報記憶媒体及びプログラムは、各部位の角速度に応じた回転抵抗力を、各部位に作用させることを特徴とする。このようにすれば、各部位の角速度が過大になって、生成されるモーションが不自然なものになってしまう事態を防止できるようになる。
【００３２】
（６）また、本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記第１の形状変化特定処理は、
前記第１及び第２のオブジェクトの衝突時における衝撃の方向及び強さの少なくとも一方を表す第２の衝撃情報と、前記衝撃が第２のオブジェクトに与えられた位置とに基づく物理シミュレーションにより、前記第２のオブジェクトの形状の変化を予め生成する処理として実行するようにしてもよい。
【００３３】
本発明によれば第１及び第２のオブジェクトの衝突イベントが発生した際における第２のオブジェクトの形状の変化を、前記第２の衝突情報と、衝撃が第２のオブジェクトに加えられる位置とに基づく物理シミュレーション（疑似的な物理シミュレーションを含む）により求めることにより、衝突イベント発生時における第２のオブジェクトの形状変化を、リアルな動画像として生成することができる。
【００３４】
特に、本発明によれば、前記第２のオブジェクトの形状変化特定処理のための物理シミュレーションを、衝突イベント発生前に予め実行しておくことにより、演算負荷の重い物理シミュレーションが衝突イベント発生時に集中して実行されることを避けることができ、この面からも、限られたＣＰＵの演算能力の中で、リアルな動画像の生成を実現することが可能となる。
【００３５】
ここにおいて、第２のオブジェクトの形状の変形とは、第２のオブジェクトが破壊され、または崩壊する状況や、へこんだり、歪んだりするような形状変化が具体例として挙げられる。
【００３６】
（７）また、本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記第１のオブジェクトが第２のオブジェクトに衝突する第１の衝突イベント発生時における衝撃の方向及び強さの少なくとも一方を表す第２の衝撃情報と、前記衝撃が第２のオブジェクトに与えられる位置とに基づき、前記衝突後に第１のオブジェクトがさらに移動する衝突移動イベントが発生するか否かの判定を行うとともに、衝突移動イベントが発生する場合には衝突後の第１のオブジェクトの移動軌跡である第２の移動軌跡を予め特定するとともに、前記第２の移動軌跡と交差する第３のオブジェクトを衝突対象オブジェクトとして予め特定する第２の特定演算処理を行い、
前記衝突状況特定手段は、
前記衝突移動イベントが発生する場合には、第１のオブジェクトが前記第３のオブジェクトに衝突する第２の衝突イベント発生時の時における前記第３のオブジェクトの形状の変化を予め特定する第２の形状変化特定処理を行い、
前記オブジェクト制御手段は、
前記第１の衝突イベント発生時に前記第２の移動軌跡に沿って前記第１のオブジェクトを移動させ、前記第２の衝突イベント発生時には、特定された形状の変化に基づき前記第３のオブジェクトの状態を変更する処理を行うようにしてもよい。
【００３７】
本発明によれば、第１のオブジェクトが第２のオブジェクトと衝突後に移動する第２の移動軌跡をあらかじめ特定し、その後に衝突する第３のオブジェクトをも予め特定することができる。これにより第１のオブジェクトが第３のオブジェクトに衝突する際の演算負荷を時間的に分散することができる。
【００３８】
（８）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記第２の形状変化特定処理は、
前記第１及び第３のオブジェクトの衝突時における衝撃の方向及び強さの少なくとも一方を表す第３の衝撃情報と、前記衝撃が第３のオブジェクトに与えられた位置とに基づく物理シミュレーションにより実行するようにしてもよい。
【００３９】
（９）また、本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記衝撃移動イベント検出手段は、
前記特定された移動軌跡に沿って移動中の前記第１のオブジェクトに、新たな衝撃を与える新衝撃イベントの発生を検出し、
前記移動軌跡演算手段は、
前記新衝撃イベントの発生が検出された場合には、前記新たな衝撃の方向及び強さの少なくとも一方を表す衝撃情報と、前記衝撃が第１のオブジェクトに与えられる位置とに基づく物理シミュレーションにより、前記新たな衝撃により前記第１のオブジェクトがオブジェクト空間内で移動する新たな移動軌跡を予め特定するとともに、特定された前記新たな移動軌跡に基づき第１のオブジェクトと衝突する新たな第２のオブジェクトを予め特定する特定演算処理を行い、
前記衝突状況特定手段は、
前記新たな第２のオブジェクトが特定された場合には、第１及び第２のオブジェクトの衝突時における前記新たな第２のオブジェクトの形状の変化を予め特定する形状変化特定処理を行い、
前記オブジェクト制御手段は、
前記オブジェクト空間内で、前記新衝撃イベント発生時には前記新たな移動軌跡に沿って前記第１のオブジェクトを移動させ、前記第１及び第２のオブジェクトの第１の衝突イベント発生時には、特定された形状の変化に基づき前記新たな第２のオブジェクトの状態を変更する状態変更処理を行うようにしてもよい。
【００４０】
本発明によれば、衝撃を受けた第１のオブジェクトが移動軌跡に沿って移動中に、例えば予期しない新たな衝撃を受けた場合であっても、この新たな衝撃によってゲーム空間を移動し他のオブジェクトに衝突する動画像を、限られた演算能力のもとで、高いリアリティをもって生成することができる。
【００４１】
（１０）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記オブジェクトの状態を変更する処理は、
特定された形状の変化に基づきオブジェクトが破壊される画像を生成する処理としてもよい。
【００４２】
（１１）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記衝突が発生する可能性のあるオブジェクトの少なくとも一つに、ゲーム状況に応じて衝突時における形状の変化を禁止又は許可する第１の衝突パラメータを設定するパラメータ制御手段を含むようにしてもよい。
【００４３】
本発明によれば、衝突イベントの発生する可能性のあるオブジェクトの少なくとも１つに、ゲーム状況に応じて、衝突時における形状の変化を禁止又は許可する第１の衝突パラメータを設定する。そして、前記パラメータ制御手段は、当該第１の衝突パラメータを制御することにより、当該オブジェクトと第１のオブジェクトとの衝突イベントが発生した場合における、当該オブジェクトの形状の変化を制御することができる。
【００４４】
例えば、プレーヤキャラクタと対戦する複数の敵キャラクタが順次出現する格闘ゲームを想定した場合、最後に出現するキャラクタがぶつかった時にのみ崩壊してほしい建造物が、ゲームの最初に登場するキャラクタによって破壊されてしまうと、ゲーム演出上好ましくないという事態が発生する。
【００４５】
このような場合には、最終キャラクタが登場するまで、当該オブジェクトの第１のパラメータを、形状の変化を禁止するパラメータとして設定しておき、ゲームの後半で前記最後の敵キャラクタが登場した時に、当該構造物オブジェクトの第１のパラメータを、形状の変化を許可するパラメータに制御する。
【００４６】
このようにすることにより、ゲームの終盤に登場した敵キャラクタがプレーヤキャラクタの攻撃によって衝撃を受け、前記建造物のオブジェクトの方へ向かって飛んで行き衝突した場合にのみ、当該建造物キャラクタが崩壊するというゲーム演出を実現することができる。
【００４７】
このように、本発明によれば、ゲームの進行やゲームに登場するキャラクタ等のゲーム状況によって、第１の衝突パラメータを制御することにより、ゲーム展開に応じたより演出効果の高い動画像の生成を行なうことが可能となる。
【００４８】
（１２）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
前記衝突が発生する可能性のあるオブジェクトの少なくとも一つに、ゲーム状況に応じて衝突を誘引する第２の衝突パラメータを設定するパラメータ制御手段を含み、
前記移動軌跡演算手段は、
第２の衝突パラメータが衝突を誘引する状態に設定されているときに、所与の条件に基づき当該オブジェクトとの衝突を強制的に発生させるように前記移動軌跡を補正する処理を行うようにしてもよい。
【００４９】
本発明によれば、衝突が発生する可能性のあるオブジェクトの少なくとも１つに、ゲーム状況に応じて衝突を誘引する第２のパラメータを設定し、ゲーム状況に応じてこの第２のパラメータの値を制御する。
【００５０】
例えば、格闘ゲームを想定すると、ゲーム後半において、キャラクタが演出効果の高い構造物オブジェクトにぶつかり、この構造物を破壊するというゲーム演出を行なうことが求められる場合がある。
【００５１】
このような場合に、本発明によれば、ゲーム状況に応じて当該構造物オブジェクトの第２のパラメータを、衝突を誘引する状態のパラメータに切替制御すればよい。これにより、例えばプレーヤキャラクタによって攻撃を受けた敵キャラクタである第１のオブジェクトの移動軌跡が当該オブジェクトに関連付けた方向に向かっている場合であって、かつその移動距離が当該構造物オブジェクトに到達しないような場合でも、その移動軌跡が強制的に当該構造物オブジェクトに交わるように移動軌跡の補正演算処理が行なわれる。
【００５２】
これにより、攻撃を受けた敵キャラクタである第１のオブジェクトが、構造物オブジェクトである第２のオブジェクトに衝突し、これを破壊する自然な演出が実行される動画像を生成することができる。
【発明を実施するための最良の形態】
【００５３】
以下、本実施の形態について説明する。なお、以下に説明する本実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施の形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００５４】
１．構成
図１に本実施の形態のゲームシステムの機能ブロック図の例を示す。なお本実施の形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００５５】
操作部１６０は、プレーヤが行った操作をデータとして入力するものであり、例えばプレーヤオブジェクト（プレーヤが操作するプレーヤキャラクタ）の操作データを入力するために用いられ、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【００５６】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、主記憶部１７１、フレームバッファ１７３、パラメータ１７４、移動軌跡記憶部１７５、物理シミュレーションデータ記憶部１７６として機能し、ＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００５７】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施の形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施の形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム及びデータ）が記憶される。
【００５８】
なお、情報記憶媒体１８０に記憶される情報の一部又は全部は、必要に応じて記憶部１７０に転送される。情報記憶媒体１８０に記憶される情報は、本発明の処理を行うためのプログラムコード、画像データ、音データ、オブジェクトデータ、テクスチャデータ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行う情報の少なくとも一つを含む。
【００５９】
表示部１９０は、本実施の形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。
【００６０】
音出力部１９２は、本実施の形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００６１】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。
【００６２】
通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００６３】
なお本実施の形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００６４】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【００６５】
ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【００６６】
この処理部１００は、記憶部１７０内の主記憶部１７１をワーク領域として各種処理を行う。
【００６７】
処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００６８】
また、処理部１００は、ゲームの進行に伴い、必要とするオブジェクトデータ、テクスチャデータ、音データを情報記憶媒体１８０から読出し、記憶部１７０に転送書込みする（ダウンロードする）読込み処理を行う。
【００６９】
処理部１００は、ゲーム演算部１１０、画像生成部１２０、音生成部１３０を含む。
【００７０】
ゲーム演算部１１０は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト）のオブジェクトデータを記憶部１７０から読出し、各種オブジェクトをオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００７１】
そして、オブジェクト（キャラクタ、車、又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。即ち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、モデルオブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００７２】
さらに、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置や視線方向を制御する処理）を行う。
【００７３】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、ボール、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。
【００７４】
また、前記ゲーム演算部１１０は、衝撃が与えられたオブジェクトが移動する動画像を生成するための処理を行なう。例えば対戦ゲームで、攻撃を受けたオブジェクトが吹飛ばされて移動する動画像や、例えば格闘ゲームで、パンチを受けたキャラクタオブジェクトが跳ね飛ばされて移動する動画像や、またレーシングゲームで、走行中に横方向から衝撃を受けたレーシングカーオブジェクトが、跳ね飛ばされて移動する動画像を生成する処理などを実行する。
【００７５】
前記一連の動画像を生成するため、本実施の形態のゲーム演算部１１０は、オブジェクトの位置移動を引き起こす特性をもつ衝撃移動イベントの発生を検出する衝撃移動イベント検出部１１１と、前記衝撃移動イベントによって引起される前記オブジェクト空間での状態変化を特定する変化情報を演算する情報演算部１１２と、前記変化情報に基づき前記オブジェクト空間でのオブジェクトを制御するオブジェクト制御部１１８とを含む。
【００７６】
前記衝撃移動イベント検出部１１１は、動画像表示の対象となる第１のオブジェクトをターゲットとした衝撃イベントの発生を検出し、さらにこの衝撃イベントの中から、第１のオブジェクトの位置移動を引き起こす特性をもつ衝撃移動イベントの発生を検出する。
【００７７】
前記情報演算部１１２は、移動軌跡演算部１１３と、衝突状況特定部１１４と、パラメータ制御部１１６とを含む。
【００７８】
前記移動軌跡演算部１１３は、衝撃移動イベント発生に伴う衝撃の方向及び強さの少なくとも一方を表す衝撃情報と、前記衝撃が第１のオブジェクトに与えられる位置とに基づき、前記衝撃により引起される前記第１のオブジェクトのオブジェクト空間内での移動軌跡を第１の移動軌跡として予め特定するとともに、前記第１の移動軌跡と交差する第２のオブジェクトを衝突対象オブジェクトとして予め特定する第１の特定演算処理を行う。
【００７９】
前記衝突状況特定部１１４は、前記オブジェクト空間内において第１オブジェクトが第２のオブジェクトに衝突する第１の衝突イベント発生時の時における前記第２のオブジェクトの形状の変化を予め特定する第１の形状変化特定処理を行う。
【００８０】
本実施の形態の移動軌跡演算部１１３は、前記第1の特定演算処理を、物理シミュレーションにより実行する。そして、演算された第１の移動軌跡及び衝突対象となる第２のオブジェクトのデータは、移動軌跡記憶部１７５に書込み記憶される。
【００８１】
本実施の形態では、第２のオブジェクトの形状変化特定処理は、物理シミュレーションにより実行される。すなわち、第１及び第２のオブジェクトの衝突時における衝突の方向及び強さの少なくとも一方を表す第２の衝撃情報と、前記第２の衝撃が第２のオブジェクトに与えられた位置とに基づく物理シミュレーションにより、第２のオブジェクトの形状変化を予め生成する形状変化特定処理が実行される。
【００８２】
そして、前記衝突状況特定部１１４は、前記形状変化特定処理により求められた第２のオブジェクトの形状変化のデータを、物理シミュレーション記憶部１７６に記憶する。
【００８３】
なお、この第２のオブジェクトの形状変化を予め生成する物理シミュレーションの演算負荷が、ＣＰＵの演算能力に比べて大きすぎる場合や衝突対象の種類によっては、予め用意された衝突時における第２のオブジェクトの変形モーションデータを前記形状変化特定処理により特定するようにしててもよい。例えば例えば衝突の対象となる第２のオブジェクトである構造物を、崩壊後に分散させる表示ブロックオブジェクトのまとまりとして形成しておき、この表示ブロックオブジェクトを衝突イベント発生時に分離することにより、構造物が破壊される状況を生成することができる。このような先行技術としては、例えば特開２０００−１１３２２５号公報に記載の技術が知られている。
【００８４】
前記オブジェクト制御部１１８は、前記特定された第１の移動軌跡に沿って、第１のオブジェクトを移動させる処理を行なうとともに、第１及び第２のオブジェクトの衝突イベント発生時には、特定された形状の変化に基づき第２のオブジェクトの状態を変化する状態変更処理を行なう。
【００８５】
特に本実施の形態の情報演算部１１２では、第１のオブジェクトが前記第1の移動軌跡に沿って移動する際に、第１のオブジェクトに与えられた衝撃情報と、第１のオブジェクトに衝撃が与えられた位置とに基づく物理シミュレーションにより、前記移動軌跡に沿って移動する第１のオブジェクトの移動モーションを生成する物理シミュレーションデータ記憶部に記憶する移動モーション生成処理を行う。
【００８６】
そして、オブジェクト制御部１１８は、前記生成記憶された移動モーションに基づき、前記第１の移動軌跡に沿って移動する第１のオブジェクトのモーションを制御する。
【００８７】
例えば格闘ゲーム等でパンチを受けた第１のオブジェクトが、空中に放り出されるようにして後方に移動する場合には、第１のオブジェクトがその移動軌跡に沿って後方に移動する際のモーションを物理シミュレーションにより生成し、リアリティの高い動画像を生成することができる。
【００８８】
なお、この時の第１のオブジェクトの移動モーションは、第１のオブジェクトに衝撃を与えられる衝撃移動イベントの発生直後に全て行い、これをデータ記憶部１７６に記憶しておいてもよく、また第１のオブジェクトが移動軌跡に沿って移動する際にリアルタイムで演算し、その挙動を制御するようにしてもよい。
【００８９】
また、オブジェクト空間内には、第１のオブジェクトと衝突する可能性があるオブジェクトが多数存在する。本実施の形態では、このような多数のオブジェクトの中に、ゲーム状況に応じて衝突時における形状の変化を禁止または許可する第１の衝突パラメータが設定されたオブジェクトと、ゲーム状況において衝突を誘引する第２の衝突パラメータが設定されたオブジェクトが存在する。これら各オブジェクトのパラメータのデータは、パラメータ記憶部１７４に記憶される。図８には各オブジェクト毎に設定される第１及び第２のパラメータの具体例が示されている。
【００９０】
前記パラメータ制御部１１６は、これらの各オブジェクトに対応して設定されている第１、第２の衝突パラメータをゲームの状況に応じて設定制御する。
【００９１】
図８に則して説明すると、第１の衝突パラメータが「１」に設定されている場合には、衝突時における当該オブジェクトの形状の変化を禁止し、「０」に設定されている場合には、衝突時における当該オブジェクトの形状の変化を許容する。従って、第１の衝突パラメータが、衝突を禁止する状態に設定されている時には、第１のオブジェクトを第２のオブジェクトとしての当該オブジェクトにどのような勢いで衝突させても、当該第２のオブジェクトは変形しない。当該第２のオブジェクトの第１の衝突パラメータが変形を許容する状態に設定されている場合のみ、前記設定された形状の変化に基づき当該第２のオブジェクトの形状を変化させる処理が行なわれる。
【００９２】
また、前記第２の衝突パラメータが「１」に設定されている場合には衝突を誘引し、「０」に設定されている場合には、衝突を誘引しない状況を表す。そして、第２の衝突パラメータも、前記オブジェクト毎にゲーム状況に応じてその値が制御される。例えば、ゲーム後半において衝突イベントを積極的に発生させることにより、ゲームの雰囲気を盛り上げることができるオブジェクトに対しては、ゲームの後半になると衝突を誘引するように第２の衝突パラメータが設定される。
【００９３】
そして、当該オブジェクトの第２の衝突パラメータが衝突を誘引する状態に設定されている時には、第２の移動軌跡は当該第２のオブジェクトに到達するように補正演算される。これにより、第１のオブジェクトと、当該第２のオブジェクトとの衝突イベントの発生が強制的に誘引されることになる。
【００９４】
画像生成部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、例えばオブジェクト空間内において所与の視点（仮想カメラ）から見える画像を生成し、表示部１９０に出力する。
【００９５】
具体的には、処理部１００で行われる演算処理の結果に従って、例えば座標変換、クリッピング処理、透視変換、あるいは光源計算などの種々のジオメトリ処理（３次元演算）やジオメトリ処理後のオブジェクト（モデル）を、フレームバッファ１７３に描画するための描画処理等の各種の画像処理を行い、オブジェクト空間内で仮想カメラ（視点）から見える画像を生成して、表示部１９０に出力する。
【００９６】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００９７】
なお、本実施の形態のゲームシステムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて生成してもよい。
【００９８】
なお、処理部１００の基本は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。あるいは、ハードウェアとプログラムの両方により実現してもよい。
【００９９】
２．本実施の形態の手法
２−１．オブジェクトモーションの物理シミュレーション
図２には、本発明を格闘ゲームに適用した場合の、ゲーム画面の一例が示されている。
【０１００】
図２のゲーム画面では、所定の３次元ゲーム空間であるオブジェクト空間内で、プレーヤの操作するプレーヤキャラクタ２と敵キャラクタである第１のオブジェクト２、１０とが格闘ゲームを行なっている。本実施の形態では、各キャラクタ２、１０が相手キャラクタによりヒットされ衝撃を受けた場合には、物理シミュレーションによりそのモーション制御を行なう構成を採用する。
【０１０１】
本実施の形態では、図３に示すように、各キャラクタ（オブジェクト）２、１０が、複数の部位（右手１２、右前腕１４、右上腕１６、胸１８、腰２０、左手２２、左前腕２４、左上腕２６、頭３０、右足３２、右すね３４、右股３６、左足４２、左すね４４、左股４６）により構成されている。なお、これらの部位（パーツ）の位置や回転角度（方向）は、スケルトンモデルを構成する関節Ｊ０〜Ｊ１３の位置や骨（アーク）Ａ０〜Ａ１８の回転角度として表すことができる。但し、これらの骨、関節は仮想的なものであり、現実に表示されるオブジェクトではない。
【０１０２】
本実施の形態では、キャラクタを構成する部位が親子（階層）構造を有している（実際には関節が親子構造を有する）。即ち、手１２、２２の親は前腕１４、２４であり、前腕１４、２４の親は上腕１６、２６であり、上腕１６、２６の親は胸１８であり、胸１８の親は腰２０となる。また、頭３０の親は胸１８となる。また、足３２、４２の親はすね３４、４４であり、すね３４、４４の親は股３６、４６であり、股３６、４６の親は腰２０となる。
【０１０３】
そして、相手の攻撃によりヒットされ衝撃を受けたキャラクタ（オブジェクト）のモーションを、物理シミュレーションを用いて生成する。
【０１０４】
例えば図４において、敵キャラクタの前腕１４にプレーヤのショット（弾）がヒットすると、まず、衝撃力ベクトルＦＨ０（広義には衝撃情報）に基づき前腕１４を動かす（回転させる、移動させる）。更に、この衝撃力ベクトルＦＨ０を、ＦＨ１、ＦＨ２、ＦＨ３、ＦＨ４として親の部位である上腕１６、胸１８、腰２０に順次伝達（伝搬）する。そして、伝達された衝撃力ベクトルＦＨ１〜ＦＨ４により、上腕１６、胸１８、腰２０を動かす。
【０１０５】
より具体的には、衝撃力ベクトルＦＨ０は、その方向が、ヒットの方向（ショットの軌道方向）に向き、その大きさが、ヒットの威力を表すベクトルである。そして、関節Ｊ１と衝撃位置（着弾位置）ＨＰを結ぶベクトルＨＶと、衝撃力ベクトルＦＨ０との外積をとることで、回転モーメントが求められる。
【０１０６】
次に、この回転モーメントと前腕１４の仮想質量に基づき、前腕１４の角加速度が算出される。そして、算出された角加速度に基づき、前腕１４の角速度が算出され、この角速度で前腕１４がＲ０に示すように回転する。
【０１０７】
衝撃力ベクトルＦＨ０（衝撃情報）は、その大きさが減衰されてＦＨ１として親の部位である上腕１６に伝達される。より具体的には、このＦＨ１は関節Ｊ１に作用し、このＦＨ１による回転モーメントで、上腕１６がＲ１に示すように回転する。
【０１０８】
次に、胸１８に伝達されたＦＨ２は関節Ｊ２に作用し、このＦＨ２による回転モーメントで、胸１８がＲ２に示すように回転する。
【０１０９】
次に腰２０に伝達されたＦＨ３は関節Ｊ３に作用し、このＦＨ３による回転モーメントで、腰２０がＲ３に示すように回転する。また、腰２０に伝達されたＦＨ４は代表点ＲＰに作用し、このＦＨ４により、腰２０がＭＴ０に示すように移動する。なお、腰２０がＭＴ０の方向に移動すると、腰２０以外の他の部位もＭＴ０の方向に移動することになる。但し、この場合にも、腰２０と他の部位との間の相対的な位置関係は変化しない。
【０１１０】
本実施の形態によれば、上記のようなモーションデータを用意することなく、衝撃位置や衝撃方向や衝撃力の大きさなどに応じて異なる多様なモーションを生成できる。例えばショットの衝撃位置に応じて、敵キャラクタの反応が細かく変化するようになる。従って、リアルで多様なモーション表現を少ないデータ量で実現できるようになる。
【０１１１】
さて、本実施の形態では、各部位を動かす衝撃情報として、衝撃力ベクトルを採用している。そして、図５（Ａ）に示すように、例えば衝撃力ベクトルＦＨNにより回転モーメントＬN×ＦＨNを求め、求められた回転モーメントにより、第Ｎの部位を動かす（回転させる）。そして、衝撃力ベクトルＦＨN+1、ＦＨN+2を、隣の第Ｎ＋１、第Ｎ＋２の部位に順次伝達し、これらの衝撃力ベクトルで第Ｎ＋１、第Ｎ＋２の部位を動かす。より具体的には、フレームＫでは、ＦＨNを第Ｎの部位に作用させ、フレームＫ＋１ではＦＨN+1を第Ｎ＋１の部位に作用させ、フレームＫ＋２ではＦＨN+2を第Ｎ＋２の部位に作用させる。
【０１１２】
このようにすることで、衝撃力ベクトルの衝撃により敵キャラクタの各部位が動く様子を、衝撃力ベクトルを隣の部位に順次伝達するだけという簡易な処理で、リアルに表現できるようになる。
【０１１３】
そして、この場合に本実施の形態では、各部位に衝撃力ベクトルを順次伝達する際に、伝達する衝撃力ベクトルの大きさを順次減衰（減衰率は例えば９０％程度）させている。即ち、｜ＦＨN｜＞｜ＦＨN+1｜＞｜ＦＨN+2｜というように、衝撃力ベクトルの大きさを減衰させる。このようにすることで、衝撃位置に近い部位ほど大きく動くようになり、現実世界の事象により近いリアルなモーション変化を、衝撃力ベクトルの大きさを減少させるだけという簡易な処理で実現できるようになる。
【０１１４】
また本実施の形態では、各部位の角速度に応じた回転抵抗力を、各部位に作用させるようにしている。
【０１１５】
例えば図５（Ｂ）に示すように、第Ｎの部位には、第Ｎの部位の角速度ωNの大きさに応じた回転抵抗力ＦＲNを作用させる。また、第Ｎ＋１の部位には、第Ｎ＋１の部位の角速度ωN+1の大きさに応じた回転抵抗力ＦＲN+1を回転と逆方向に作用させる。また、第Ｎ＋２の部位には、第Ｎ＋２の部位の角速度ωN+2の大きさに応じた回転抵抗力ＦＲN+2を回転と逆方向に作用させる。
【０１１６】
このような回転抵抗力を作用させることで、各部位の角速度が急激に変化してしまい不自然なモーションになってしまう事態を効果的に防止できるようになる。
【０１１７】
また本実施の形態では、敵キャラクタを所与の姿勢に戻すための復元力を、各部位に作用させている。
【０１１８】
例えば、衝撃力ベクトルＦＨによりキャラクタの姿勢が変化した場合に、キャラクタを、デフォルトの姿勢に戻すようにする。
【０１１９】
このようにすれば、高速連射により何発ものショットがヒットすることで、敵キャラクタの姿勢が極端に崩れてしまうというような事態を防止できる。ショットが連続してヒットしても、ヒットする毎に復元力によりキャラクタが元のデフォルト姿勢に少しずつ戻るようになるからである。これにより、多くのショットがヒットしても、なかなか倒されないようなキャラクタを表現できるようにる。
【０１２０】
なお、キャラクタをデフォルト姿勢に戻す処理は、各部位のデフォルトの回転角度を記憶部に保持しておき、このデフォルトの角度に、各部位の角度を戻すように処理することで実現できる。
【０１２１】
２−２．衝撃を与えられたオブジェクトが移動する動画像の生成
図２に示す格闘ゲームを行なう場合を例にとると、例えばプレーヤキャラクタ２が、敵キャラクタである第１のオブジェクト１０をタイミング良く大きな衝撃力でヒットした場合に、この衝撃により敵キャラクタ１０が大きく飛ばされて周囲の障害物にぶつかるというゲーム演出が行なわれる。
【０１２２】
本実施の形態では、このように衝撃を与えられた第１のオブジェクト１０の移動する画像を物理シミュレーション（疑似的な物理シミュレーションを含む）により生成する。
【０１２３】
以下にその詳細を説明する。
【０１２４】
２−２−１．移動軌跡及び第１のオブジェクト２０と衝突する第２のオブジェクトを予め特定する特定演算処理
図６（Ａ）には、この特定演算処理の一例が示されている。
【０１２５】
本実施の形態では、衝撃移動イベント検出部１１１が、キャラクタ１０に対して当該キャラクタを移動させるだけの衝撃力が加えられる衝撃移動イベントが発生したことを検出すると、移動軌跡演算処理部１１３が、当該第１のオブジェクト１０がオブジェクト空間内で移動する第1の移動軌跡Ａを予め特定する処理を特定する特定演算処理を行なう。
【０１２６】
本実施の形態では、第１のオブジェクト１０に対して衝撃の加わった方向及び強さを表す衝撃力ベクトルを衝撃情報として用い、この衝撃情報と、前記衝撃が第１のオブジェクト１０に加えられた位置とに基づく物理シミュレーション（疑似的な物理シミュレーションを含む）により、前記衝撃により第１のオブジェクト１０がオブジェクト空間内を移動する移動軌跡を第１移動軌跡Ａとして特定する処理を行なう。
【０１２７】
ここにおいて、衝撃により例えば第１のオブジェクト１０が空中に飛び上がるような移動軌跡を描くような場合には、衝撃力ベクトル、衝撃の与えられた位置に加えて、重力Ｇやその他の環境情報、例えば風圧、空気抵抗力等を考慮した物理シミュレーションにより移動軌跡Ａを求める。
【０１２８】
このようにして、移動軌跡Ａが求まると、次にこの移動軌跡Ａと交差するオブジェクトを、衝突対象としての第２のオブジェクト４として特定する特定演算処理を行う。
【０１２９】
図６に示す例では、移動軌跡Ａと交わる壁オブジェクト４が第２のオブジェクトとして特定される。
【０１３０】
本実施の形態では、このような移動軌跡Ａ及び第２のオブジェクト４を求める物理シミュレーションによる特定演算処理は、第１のオブジェクト１０と第２のオブジェクト４との実際の衝突イベントが発生する前に予め終了するように実行される。
【０１３１】
２−２−２．形状変化特定処理
移動軌跡Ａ及び衝突対象である第２のオブジェクト４が特定されると、次に衝突情報特定部１１４は、第１及び第２のオブジェクト１０，４の衝突イベント発生時における第２のオブジェクト４の形状変化を予め特定する形状変化特定処理を実行する。
【０１３２】
具体的には、移動軌跡Ａに沿って第１のオブジェクト１０が移動する物理シミュレーションが実行されると、その物理シミュレーションに伴い、第１のオブジェクト１０が第２のオブジェクト４である壁オブジェクトにぶつかる位置や、衝突時における第１のオブジェクト１０の衝撃方向及び強さを表す衝撃力ベクトルが第２の衝撃情報として予め求められる。したがって、この壁オブジェクト４に対して、図８で示す第１の衝突パラメータが衝突を許容するパラメータとして設定されている場合には、当該衝突により、第２のパラメータ４である壁オブジェクトの形状の変化を物理シミュレーションにより特定する処理を行う。
【０１３３】
図６（Ｂ）では、物理シミュレーションにより壁オブジェクト４が破壊される形状変化が特定されている。
【０１３４】
すなわち、第１及び第２のオブジェクト１０，４の衝突イベント発生時における、第１のオブジェクト１０の衝撃力ベクトルが壁オブジェクトである第２のオブジェクト４の崩壊を発生させる衝撃力を持つ場合には、図６（Ｂ）に示すように、物理シミュレーションにより第２のオブジェクト１０が崩壊する際の形状変化が特定される。衝撃力ベクトルのパワーが、第２のオブジェクト１０の変形を発生させるレベルに達しない場合には、第２のオブジェクト４の形状変化が発生しないと特定される。
【０１３５】
このような移動軌跡Ａ及び第２のオブジェクト４を特定する処理や、第２のオブジェクト４の形状変化を特定する処理は、図７に示すように衝撃移動イベントが発生した後（ｔ１０以後）に速やかに開始され、実際の第１，第２のオブジェクト１０，４の第１回衝突イベントの発生以前（ｔ２０以前）に終了するように実行される。
【０１３６】
本実施の形態では、衝撃移動イベント発生時点ｔ１０と第１回衝突イベントが発生するタイミングｔ２０は、物理シミュレーションにより予測演算される。このため、このｔ２０以前に前記特定演算処理、形状変化特定処理が終了するように各種演算の優先順位が設定される。
【０１３７】
これにより、実際に第１回の衝突イベントが発生したタイミングｔ２０よりにおける、各種の演算負荷の一時的かつ急激な上昇を抑制し、限られた演算能力の中で、物理シミュレーションによるリアリティの高い動画像を生成することができる。
【０１３８】
２−２−３．第１のオブジェクトの移動モーション等の演算
本実施の形態では、第１のオブジェクト１０が衝撃を受けてから移動軌跡Ａに沿って移動する際の移動モーション及び第２のオブジェクト４に衝突する際の衝突モーションの生成を、物理シュミレーションの手法を用いて生成する。本実施の形態では、このような移動モーション及び衝突モーションの生成を、図７に示す衝撃移動イベント発生タイミングｔ１０の後に実行し、生成したデータをシミュレーションデータ記憶１７６へ記憶する。
【０１３９】
なお、ＣＰＵの演算能力が足りない場合には、このような移動モーション及び衝突モーションは、予め用意したモーションデータに基づいて生成してもよい。
【０１４０】
２−２−４．第２回目以降の衝突イベント
図６（Ｂ）に示すように、第１のオブジェクト１０が第２のオブジェクト４と衝突する衝突イベント発生した際、第２のオブジェクト１０の衝撃力ベクトルの強さ及び方向によっては、図６（Ｃ），（Ｄ）に示すように、更に、この第１のオブジェクト１０が第２の移動軌跡Ｂに沿って移動し、第３のオブジェクト６に衝突するという、第２回衝突イベントが発生する場合もある。
【０１４１】
本実施の形態では移動軌跡演算部１１３は、前記第１及び第２のオブジェクト１０，４の衝突イベント発生時における衝撃の方向及び強さを表す衝撃力ベクトル（第２の衝撃情報）と、当該衝撃が第２のオブジェクトに与えられる位置等に基づき、前記衝突後に第１のオブジェクト１０は更に移動する衝突移動イベントが発生するか否かの判定を行なう。
【０１４２】
そして、この判定の結果、衝突イベントが発生する場合には、前記第１及び第２のオブジェクト１０、４の衝突時における衝撃の方向及び強さを表す衝撃力ベクトルと、当該衝撃が第２のオブジェクト１０に与えられた位置とに基づく物理シミュレーションにより、前記第１回衝突イベント発生後における第１のオブジェクト１０の第２の移動軌跡Ｂを予め特定するとともに、特定された前記第２の移動軌跡Ｂに基づき第１のオブジェクト１０と衝突する第３のオブジェクト６とを予め特定する特定演算処理を行なう。
【０１４３】
更に、衝突状況演算部１１４は、特定された第３のオブジェクト６と第１のオブジェクト１０との衝突時における第３のオブジェクト６の形状の変化を予め特定する形状変化特定処理を行なう。
【０１４４】
そして、オブジェクト制御部１１８は、前記第１回衝突イベント発生後、特定された第２の移動軌跡Ｂに沿って第１のオブジェクト１０を移動させ、第１及び第３のオブジェクト１０，３の衝突イベント発生時には、特定された形状の変化に基づき前記第３のオブジェクト６の状態を変更する状態変更処理を、前述と同様にして実行する。
【０１４５】
図７には各演算の実行タイミングが示されており、ｔ２０のタイミングで第１の衝突イベントが発生すると、その後直ちに物理シミュレーションにより第２の移動軌跡Ｂ及び第３のオブジェクト６を特定する演算処理が実行され、その後第３のオブジェクト６の形状変化を特定する演算処理が行なわれる。
【０１４６】
さらに、これらの演算と平行して、第１の衝突イベント発生後に第２の移動軌跡Ｂに沿って移動する際の第１のオブジェクト１０の移動モーション及び第２回衝突時における衝突モーションの演算が、前述の場合と同様にして実行される。
【０１４７】
図６に示す例では、第１のオブジェクト１０が、壁である第２のオブジェクト４と衝突した際に、第２のオブジェクトが破壊され、その後第１のオブジェクト１０が第２の移動軌跡Ｂに沿って移動し第３のオブジェクトである壁６に衝突して停止するという一連の動作が行なわれる。ここでは、第２回衝突イベント発生時における衝撃力ベクトルは、壁である第３のオブジェクト６を破壊するパワーを有していないため、壁を表す第３のオブジェクト６は変形せず、そのままの状態で存在することになる。
【０１４８】
２−２−５．パラメータの設定制御
オブジェクト空間内において、第１のオブジェクト１０と衝突する可能性のある複数のオブジェクトのうち、所定のオブジェクトには図８に示すように第１の衝突パラメータ及び第２の衝突パラメータが設定され、このパラメータの値はゲーム状況に基づき制御される。
【０１４９】
例えば図６に示す例において、壁オブジェクトである第２のオブジェクト４の第１の衝突パラメータが、オブジェクトの形状の変化を禁止する値に設定されている場合には、仮に第１のオブジェクト１０が第２のオブジェクト４にこれを破壊する衝撃力をもって衝突したとしても、壁オブジェクトである第２のオブジェクト４は、衝突によって破壊されることなく何ら変形せずにそのまま存続することになる。この場合には、第１のオブジェクト１０は、第２のオブジェクト４にぶつかった際に跳ね飛ばされるか、その場で停止することになる。
【０１５０】
例えば格闘ゲームなどを行う場合に、ゲームの前半では、弱い敵キャラクタ１０が壁オブジェクト４にぶつかって、壁オブジェクト４を破壊してしまうことがないように、当該オブジェクト４の第１の衝突パラメータを、形状の変化を禁止する状態に設定しておき、ゲーム後半において強い敵キャラクタが出てきた場合に、当該壁キャラクタ４の第１の衝突パラメータを、破壊を許容する状態に制御するというパラメータ制御が行なわれる。
【０１５１】
これにより、ゲーム後半の強い敵キャラクタ１０が壁キャラクタ４にぶつかった場合にのみ、壁キャラクタ４が破壊され、ゲームの雰囲気を盛り上げるというゲーム演出が可能となる。
【０１５２】
また、本実施の形態では第１のオブジェクト１０と衝突する可能性のあるオブジェクトいずれかに対して、図８に示すようにに示すように第２の衝突パラメータが設定され、ゲーム状況に応じてそのパラメータ値が制御される。
【０１５３】
例えば、図６に示す場合を例にとると、壁を表す第３のオブジェクト６に対して第２の衝突パラメータが設定されている。第２の衝突パラメータは、ゲーム状況に応じて衝突を誘引するパラメータであり、ゲーム状況に応じてこのパラメータ値は制御される。
【０１５４】
例えば、ゲームを盛り上げるシーンにおいて、図６（Ｂ）に示すように第１のオブジェクト１０が壁オブジェクト４と衝突する第１回衝突イベントが発生すると、前述したように図（Ｃ）に示すように第２の移動軌跡Ｂと、これと交差する衝突対象物である第３のオブジェクト６が特定される。
【０１５５】
この時、物理シミュレーションの結果では、第２の移動軌跡Ｂが第３のオブジェクト６に届かず、壁を表す第３のオブジェクト６と第１のオブジェクト１０との第２回衝突イベントが発生しない場合もある。
【０１５６】
このような場合に、本実施の形態では、壁オブジェクト６の第２の衝突パラメータを、衝突を誘引する状態に設定制御することにより、第２の移動軌跡Ｂは第３のオブジェクト６へ届くように補正される補正演算処理がなされる。
【０１５７】
これにより、プレーヤキャラクタ２の攻撃によって衝撃を受けた第１のキャラクタ１０は、一つ目の壁を表す第２のオブジェクト４をなぎ倒して、そのまま奥にある壁を表す第３のオブジェクト６に衝突するという演出を自然に行うことができ、これによりゲームの雰囲気を盛り上げることができる。
【０１５８】
特に、このような演出は、ゲーム後半において強い敵キャラクタが出現した場合に実行することが好ましく、これにより格闘ゲームを後半において、プレーヤキャラクタが敵キャラクタに対してとどめを刺して、ゲームエンディングを迎えるという、ゲーム演出を行うことができる。
【０１５９】
３．本実施の形態の処理
次に本実施の形態の詳細な処理について、図９、図１０に示すフローチャートを用いて説明する。
【０１６０】
まず、ゲームが開始されると、ゲーム空間である３次元オブジェクト空間内においての格闘ゲームが開始され、図２に示すように、プレーヤキャラクタ２と、敵キャラクタ１０との格闘シーンのゲーム画面が表示される。
【０１６１】
プレーヤは、操作部１６０を操作して敵キャラクタ１０を攻撃し、又敵キャラクタ１０からの攻撃を避けるようにしてゲームを進める。
【０１６２】
この格闘ゲームにおいて、プレーヤキャラクタ２のパンチ又はキックにより、敵キャラクタ１０をその周囲に吹き飛ばすような衝撃力のある攻撃がヒットした場合には（ステップＳ１２）、この攻撃を受けたプレーヤキャラクタ１０がその周囲に吹き飛ばされて周囲のオブジェクトに衝突するというゲーム演出が実行される（ステップＳ１４〜Ｓ２２）。
【０１６３】
まず、ステップＳ１２において、第１のオブジェクト１０を吹き飛ばすレベルの衝撃が発生したと判断されると、図６(Ａ)に示すように、物理シミュレーションにより第１のオブジェクト１０が前記衝撃によって移動する移動軌跡Ａが特定され、更にこの移動軌跡Ａと交わるオブジェクトが衝突対象となる第２のオブジェクト４として特定される（ステップＳ１４）。
【０１６４】
これと平行して第１のオブジェクト１０が移動軌跡Ａに沿って移動する際の移動モーションを生成し、制御する処理が行われる（ステップＳ１６）。
【０１６５】
これにより、衝撃を受けた第１のオブジェクト１０は、移動軌跡Ａに沿って、生成された移動モーションに従って動作しながら第２のオブジェクト４に向けて移動することになる。
【０１６６】
更に、前記第１のオブジェクト１０が移動軌跡Ａに沿って移動し壁を表す第２のオブジェクト４と衝突した際における、第２オブジェクト４の形状変化を特定する処理が行われ、図６に示す実施例では、第２のオブジェクトが破壊される形状変化が特定される。
【０１６７】
図７のタイムチャートに示すように、キャラクタである第１のキャラクタ１０が衝撃を受けたタイミングｔ１０の時点で、第１回衝突イベントが発生するタイミングｔ２０が予測演算される。このため、この第１回衝突イベントが発生する以前に、これら一連の処理は全て終了するように実行される。すなわち、ステップＳ１４〜Ｓ１８の処理は第１回衝突イベントの発生タイミングｔ２０の時点で全て終了するように実行される。
【０１６８】
このようにすることにより、第１の衝突イベントが発生した際に、各種の処理が集中するという事態の発生を事前に防止し、負荷の重い物理シミュレーションの処理に基づく第１のオブジェクト１０と第２のオブジェクト４との衝突演出をリアルに実現できる。
【０１６９】
すなわち、第１のオブジェクト１０が第１の移動軌跡Ａに沿って移動し、壁である第２のオブジェクト４に衝突する第１回衝突イベントのタイミングｔ２０において、図６（Ｂ）に示すように第１のオブジェクト１０が第２のオブジェクト４にぶつかり、例えばこれを破壊するという衝突演出をスムーズに実行でき、しかもこの演出場面をリアリティの高い画像として表示することが可能となる（ステップＳ２０）。
【０１７０】
そして、第１回衝突イベントが発生すると、次に衝突後における第１のオブジェクト１０の次の挙動を特定する処理が行われる（ステップＳ２２）。
【０１７１】
図１０には、その一例が示されており、まず第１回衝突イベントが発生した際に、第１のオブジェクト１０に、更に移動するだけの衝撃力が残っているか否かが判定される（ステップＳ３０）。
【０１７２】
残っていると判定されると、次に図６（Ｃ）に示すように、第１のオブジェクト１０が更に移動する移動軌跡Ｂ及び第１のオブジェクト１０が衝突する第３のオブジェクト６を特定する処理が行なわれる。（ステップＳ３２）。
【０１７３】
更に移動軌跡Ｂに沿って移動する第１のオブジェクト１０の移動モーションの生成及び制御が行われ（ステップＳ３４）、加えて衝突時における第３のオブジェクト６の形状変化を特定する処理が行なわれる。
【０１７４】
これら各ステップＳ３２〜Ｓ３６の処理は、前記ステップＳ１４〜Ｓ１８の処理と同様にして実行される。
【０１７５】
そして、図６（Ｄ）に示すように、第１のオブジェクト１０が２つ目の壁を表す第３のオブジェクト６と衝突する衝突イベント発生タイミングｔ３０において、第１のオブジェクト１０が２つ目の壁を表す第３のオブジェクトと衝突する状況のゲーム演出がなされる。
【０１７６】
これらステップＳ１０〜Ｓ３８の一連の処理は、ゲームが終了するまで繰り返して実行され、これにより、物理シミュレーションに基づくリアリティの高いゲーム演出が実行されることになる。
【０１７７】
４．ハードウェア構成
図１１に本実施の形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＤＶＤ９８２（情報記憶媒体。ＣＤでもよい。）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１７８】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセラレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【０１７９】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データ（頂点データや他のパラメータ）を描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。
【０１８０】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【０１８１】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＤＶＤドライブ９８０（ＣＤドライブでもよい。）は、プログラム、画像データ、或いは音データなどが格納されるＤＶＤ９８２（ＣＤでもよい。）にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【０１８２】
なお本実施の形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１８３】
そして、本実施の形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施の形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１８４】
なお本発明は、上記実施の形態で説明したものに限らず、種々の変形実施が可能である。
【０１８５】
例えば、前記実施の形態では、衝撃情報として、衝撃の方向及び強さの双方を表す衝撃力ベクトルを用いる場合を例に取り説明したが、本発明はこれに限らず、衝撃の方向及び強さの少なくとも一報を衝撃情報として用いてもよい。
【０１８６】
更に、例えば図６（Ａ）又は（Ｃ）に示すように、第１のオブジェクト１０がこの移動軌跡Ａ、Ｂに沿って移動する途中において、第１のオブジェクト１０に新たな衝撃を与えた場合には、この衝撃に対して図９に示すステップＳ１２〜Ｓ１８に示す処理を実行し、新たな移動軌跡と、新たな第２のオブジェクトを特定し、前記ステップＳ２０，Ｓ２２の処理を行えばよい。
【０１８７】
また、本発明は本実施の形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【０１８８】
また、本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、レーシングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【０１８９】
この場合に、例えばシューティングゲームの場合には、第１のオブジェクトが被弾した際における衝撃情報と、その位置とに基づき、前記実施の形態と同様な物理シミュレーションに基づくゲーム演出を実現することができる。
【０１９０】
また、前記実施例では、衝撃移動イベント発生に伴ない衝撃により引起される前記第１のオブジェクトのオブジェクト空間内での移動軌跡を予め特定する処理を、物理シミュレーションにより行う場合を例にとり説明したが、これ以外にも、例えば第１のオブジェクトに対し複数の移動軌跡を予めデータとして用意しておき、発生した衝撃移動イベントの内容に応じて、適宜移動軌跡を選択することで特定する構成を採用してもよい。
【０１９１】
又、複数の移動体同士が競争するレーシングゲームにあっては、移動体に衝撃が加わった場合に、この衝撃に基づく挙動を前記実施の形態と同様に実現することが可能となる。
【図面の簡単な説明】
【０１９２】
【図１】本実施の形態の機能ブロック図である。
【図２】ゲーム画面の一例を示す説明図である。
【図３】複数の部位により構成されるキャラクタ（オブジェクト）の例について示す図である。
【図４】本実施の形態における衝撃発生時のモーション生成方法について説明する為の図である。
【図５】同図（Ａ）、（Ｂ）は、衝撃力ベクトルの大きさを減衰させながら、親の部位について伝達する手法や、各速度に応じた回転抵抗力を各部位に作用させる手法について説明するための図である。
【図６】同図（Ａ）〜（Ｄ）には、衝撃を受けたキャラクタが移動軌跡に沿って移動し渉外物に衝突する一連の状況を説明するための図である。
【図７】衝撃を受けたオブジェクトが第２のオブジェクト、第３のオブジェクトに衝突する際における各種演算のタイミングを説明するための図である。
【図８】各オブジェクトに対し設定されるパラメータの説明図である。
【図９】本実施の形態の具体的な処理例を示すフローチャート図である。
【図１０】図９に示すステップＳ２２の具体的な処理例を示すフローチャート図である。
【図１１】ハードウェア構成の説明図である。
【符号の説明】
【０１９３】
Ａ  第１の移動軌跡
Ｂ  第２の移動軌跡
４  第２のオブジェクト
６  第３のオブジェクト
１０  第１のオブジェクト
１００  処理部
１１０  ゲーム演算部
１１１  衝撃イベント検出部
１１２  情報演算部
１１３  移動軌跡演算部
１１４  衝突状況特定部
１１６  パラメータ制御部
１１８  オブジェクト制御部
１２０  画像生成部
１３０  音生成部
１６０  操作部
１７０  記憶部
１７１  主記憶部
１７３  フレームバッファ
１８０  情報記憶媒体
１９４  携帯型情報記憶装置
【図１】
0004794343.tif 000002
【図２】
0004794343.tif 000003
【図３】
0004794343.tif 000004
【図４】
0004794343.tif 000005
【図５】
0004794343.tif 000006
【図６】
0004794343.tif 000007
【図７】
0004794343.tif 000008
【図８】
0004794343.tif 000009
【図９】
0004794343.tif 000010
【図１０】
0004794343.tif 000011
【図１１】
0004794343.tif 000012