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

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

Info

Publication number
JP4343000B2
JP4343000B2 JP2004098534A JP2004098534A JP4343000B2 JP 4343000 B2 JP4343000 B2 JP 4343000B2 JP 2004098534 A JP2004098534 A JP 2004098534A JP 2004098534 A JP2004098534 A JP 2004098534A JP 4343000 B2 JP4343000 B2 JP 4343000B2
Authority
JP
Japan
Prior art keywords
posture
aerial
landing
character
motion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004098534A
Other languages
English (en)
Other versions
JP2005278957A (ja
Inventor
幸司 名田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Namco Ltd
Bandai Namco Entertainment Inc
Original Assignee
Namco Ltd
Namco Bandai Games Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Namco Ltd, Namco Bandai Games Inc filed Critical Namco Ltd
Priority to JP2004098534A priority Critical patent/JP4343000B2/ja
Publication of JP2005278957A publication Critical patent/JP2005278957A/ja
Application granted granted Critical
Publication of JP4343000B2 publication Critical patent/JP4343000B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)

Description

本発明は、コンピュータに、所定方向への重力を有するゲーム空間を設定させ、ゲーム進行中に所与のダメージを受けた被ダメージキャラクタをゲーム空間中に浮かせて落下させた後、復帰姿勢に変位させる制御を行わせるためのプログラム等に関する。
ビデオゲームでは、関節構造を有するモデルで成るキャラクタ(以下、単にキャラクタという)を動作させる際に、動作毎に予め用意されたモーションに従って制御することが一般的である。しかし、1つのモーションでは1つの動作パターンしか表現できないので、多様な表現を可能とするため、動作毎に複数のモーションが用意されていることが多い。
モーションに基づくキャラクタの制御として、操作タイミングに合わせてオブジェクトの移動モーションの速度を制御する技術が知られている。具体的には、例えばテニスゲームにおいて、操作入力によって選手(キャラクタ)にテニスラケットを振る動作(スウィング動作)を行わせる場合に、操作タイミングが適性タイミングに対して速い場合には動作の速度を遅く(低速)し、遅い場合には速く(高速)している(例えば、特許文献1)。
また、野球等の球技系ゲームにおいて、ボールの捕球時でのキャラクタの姿勢とボールの位置関係のずれに基づいてモーションを補正する技術も知られている。具体的には、例えば野球ゲームにおいて、野手(キャラクタ)がボールを捕球する捕球動作を行う際に、モーション群による野手の捕球時のグローブの位置とボールの到達位置との差分に応じて、モーション群に基づくモーションにおけるグローブの位置を補正している(例えば、特許文献2)。
特開平13−029654号公報 特開平14−052242号公報
ところで、RPG(ロールプレイングゲーム)やアクションゲーム等における戦闘シーンでは、攻撃によってダメージを受けたキャラクタ(被ダメージキャラクタ)は、受けたダメージ応じた、いわゆる「やられ動作(やられモーション)」を行う。「やられ動作」は、基本的には、ダメージを受けて飛ばされた後、落下(着地)する動作であり、受けたダメージに応じて、例えば着地する際の姿勢が異なる、空中での姿勢が異なる、或いは、飛ばされる高さや距離が異なる等、様々なパターンがある。
そして、「やられ動作」を行った後は、着地した際の状態(姿勢)から、再度、戦闘に戻るための動作(復帰動作)を行うことが普通である。即ち、この復帰動作を行わせるためのモーションを、着地した際の状態(姿勢)毎に用意しておく必要がある。従って、着地した際の状態(姿勢)が多様であればある程、より多くのモーションが必要になり、結果的に、「やられ動作」及びこれに付随する動作の表現に要するデータ量が膨大になるという問題が発生していた。
上記事情に鑑み、本発明は、戦闘シーンにおけるいわゆる「やられ動作」及びこれに付随する動作を、より少ないデータ量で表現可能とすることを目的としている。
上記課題を解決するために、第1の発明は、
コンピュータに、所定方向への重力を有するゲーム空間を設定させ、ゲーム進行中に所与のダメージを受けた被ダメージキャラクタを前記ゲーム空間中に浮かせて落下させた後、復帰姿勢に変位させる制御を行わせるためのプログラムであって、
受けたダメージに応じて空中軌道及び滞空時間が異なるように前記被ダメージキャラクタの空中の移動制御を行う空中移動制御手段(例えば、図9の空中移動制御部234)、
前記空中移動制御手段による移動制御中の前記被ダメージキャラクタの空中姿勢を変化させるとともに、前記移動制御による前記被ダメージキャラクタの着地時の姿勢が常に一定の姿勢となるように空中姿勢を制御する姿勢制御手段(例えば、図9の空中姿勢制御部236A)、
前記空中移動制御手段による移動制御によって前記被ダメージキャラクタが着地した後、前記被ダメージキャラクタを前記復帰姿勢に変位させる制御を行う復帰制御手段(例えば、図9の復帰動作制御部240)、
として前記コンピュータを機能させるためのプログラムである。
また、第9の発明は、
所定方向への重力を有するゲーム空間を設定し、ゲーム進行中に所与のダメージを受けた被ダメージキャラクタを前記ゲーム空間中に浮かせて落下させた後、復帰姿勢に変位させる制御を行うゲーム装置であって、
受けたダメージに応じて空中軌道及び滞空時間が異なるように前記被ダメージキャラクタの空中の移動制御を行う空中移動制御手段(例えば、図9の空中移動制御部234)と、
前記空中移動制御手段による移動制御中の前記被ダメージキャラクタの空中姿勢を変化させるとともに、前記移動制御による前記被ダメージキャラクタの着地時の姿勢が常に一定の姿勢となるように空中姿勢を制御する姿勢制御手段(例えば、図9の空中姿勢制御部236A)と、
前記空中移動制御手段による移動制御によって前記被ダメージキャラクタが着地した後、前記被ダメージキャラクタを前記復帰姿勢に変位させる制御を行う復帰制御手段(例えば、図9の復帰動作制御部240)と、
を備えるゲーム装置である。
この第1又は第9の発明によれば、被ダメージキャラクタをゲーム空間中(空中)に浮かせて落下させた後、復帰姿勢に変位させる場合に、受けたダメージに応じて空中軌道及び滞空時間が異なるように移動させるとともに、着地時の姿勢が常に一定の姿勢となるように空中姿勢を変化させることができる。
従って、ダメージを受けた被ダメージキャラクタを浮かせて落下させるといった、いわゆる「やられ動作」において、着地時の姿勢を常に一定の姿勢とすることができるので、着地した後の動作、即ち着地時の姿勢から復帰姿勢に変位させるためのモーションが1つで済む。この結果、「やられ動作」及びこれに付随する動作の表現に要するデータ量を削減できる。また、受けたダメージによって空中軌道及び滞空時間を変化できるので、例えば多くのダメージを受ける程、より高くより遠くまで飛ばされるといった、ダメージに応じた「やられ動作」を、データ量を増加させることなく表現可能となる。
第2の発明は、第1の発明のプログラムにおいて、
前記姿勢制御手段が、空中姿勢の変化が設定された基準モーションに従って前記被ダメージキャラクタの空中姿勢を変化させる制御を行うとともに、前記移動制御手段の移動制御による前記被ダメージキャラクタの着地時に前記基準モーションの最終姿勢となるように空中姿勢を制御する、ように前記コンピュータを機能させるためのプログラムである。
この第2の発明によれば、第1の発明と同様の効果を奏するとともに、空中姿勢の変化が設定された基準モーションに従って被ダメージキャラクタの空中姿勢を変化させ、着地時の姿勢がこの基準モーションの最終姿勢となるように空中姿勢を制御することができる。従って、基準モーションの最終姿勢を適当な着地姿勢に設定しておくことで、着地時の姿勢を常にこの着地姿勢とすることが可能となる。
第3の発明は、第2の発明のプログラムにおいて、
前記姿勢制御手段が、前記移動制御による前記被ダメージキャラクタの着地時に前記基準モーションの最終姿勢となるように空中姿勢の変化速度を可変する速度可変手段(例えば、図9の空中姿勢制御部236A)を有する、ように前記コンピュータを機能させるためのプログラムである。
この第3の発明によれば、第2の発明と同様の効果を奏するとともに、被ダメージキャラクタの着地時の姿勢が基準モーションの最終姿勢となるように空中姿勢の変化速度を可変することができる。従って、空中姿勢の変化速度を可変することで、滞空時間に関わらずに着地時の姿勢を常に一定の姿勢とすることが可能となる。具体的には、空中姿勢の変化速度を、滞空時間が長い程遅く、滞空時間が短い程速くすることで、着地姿勢を基準モーションの最終姿勢とすることができる。
第4の発明は、第2の発明のプログラムにおいて、
前記基準モーションには、基準姿勢から転回してこの基準姿勢に戻る転回モーションと、前記基準姿勢から着地姿勢に至る着地モーションとが含まれ、
前記姿勢制御手段が、
前記滞空時間に基づいて前記被ダメージキャラクタを転回させる回数を決定する転回数決定手段(例えば、図21の転回数算出部238)と、
前記転回モーションに基づいて前記被ダメージキャラクタを前記決定された回数分転回させる制御を行うとともに、前記被ダメージキャラクタの転回速度を可変する制御を行う転回姿勢制御手段(例えば、図21の空中姿勢制御部236B)と、
前記転回姿勢制御手段による転回制御の後、前記着地モーションに基づいて前記被ダメージキャラクタを前記基準姿勢から着地姿勢に変化させる制御を行う着地姿勢制御手段(例えば、図12の空中姿勢制御部236B)と、
を有し、
前記転回姿勢制御手段が、前記移動制御手段の移動制御によって前記被ダメージキャラクタが着地した時に、前記着地姿勢制御手段により制御された前記被ダメージキャラクタの姿勢が着地姿勢となるように転回速度の可変制御を行う、
ように前記コンピュータを機能させるためのプログラムである。
この第4の発明によれば、第2の発明と同様の効果を奏するとともに、被ダメージキャラクタを、基準モーションに含まれる転回モーションに基づいて滞空時間に基づく回数分だけ転回させた後、基準モーションに含まれる着地モーションに基づいて基準姿勢から着地姿勢に変化させることができる。また、着地した際の姿勢が着地姿勢になるように転回速度を可変することができる。従って、滞空時間に基づく回数だけ転回させることができるので、例えば滞空時間が長いほど多くの回数で転回させる等、「やられ動作」の表現に多様性を持たせることが可能となる。また、転回速度を可変できるので、転回が終了した時点での姿勢を、常に基準姿勢とすることが可能となる。
第5の発明は、第4の発明のプログラムにおいて、
前記転回数決定手段が、前記滞空時間から前記着地姿勢制御手段による着地姿勢の変化制御に要する時間を除いた転回時間に基づいて、前記被ダメージキャラクタを転回させる回数を決定するように前記コンピュータを機能させ、
前記転回姿勢制御手段が、前記転回時間をかけて前記決定された回数分前記被ダメージキャラクタを転回させる制御を行うように前記コンピュータを機能させるためのプログラムである。
この第5の発明によれば、第4の発明と同様の効果を奏するとともに、滞空時間から、基準姿勢から着地姿勢に変化させるのに要する時間を除いた転回時間に基づいて転回させる回数を決定し、この転回時間をかけて被ダメージキャラクタを決定した回数だけ転回させることができる。
第6の発明は、
コンピュータに、所定方向への重力を有するゲーム空間を設定させ、ゲーム進行中に所与のダメージを受けた被ダメージキャラクタを前記ゲーム空間中に浮かせて落下させた後、復帰姿勢に変位させる制御を行わせるためのプログラムであって、
受けたダメージに応じて空中軌道及び滞空時間が異なるように前記被ダメージキャラクタの空中の移動制御を行う空中移動制御手段(例えば、図21の空中移動制御部234)、
前記空中移動制御手段による移動制御中の前記被ダメージキャラクタの空中姿勢を所定の基準モーションに従って所定速度で変化させる制御を行う姿勢制御手段(例えば、図21の空中姿勢制御部236B)、
前記空中移動制御手段による移動制御によって前記被ダメージキャラクタが着地した後、前記被ダメージキャラクタを前記復帰姿勢に変位させる制御を行う復帰制御手段(例えば、図21の復帰動作制御部240)、
として前記コンピュータを機能させるとともに、
前記空中移動制御手段が、前記姿勢制御手段の前記所定速度での姿勢制御により、着地時の前記被ダメージキャラクタの姿勢が所定姿勢とならない場合に、所定姿勢となるように前記空中軌道及び/又は前記滞空時間を変化させて前記移動制御を行うように前記コンピュータを機能させるためのプログラムである。
また、第10の発明は、
所定方向への重力を有するゲーム空間を設定し、ゲーム進行中に所与のダメージを受けた被ダメージキャラクタを前記ゲーム空間中に浮かせて落下させた後、復帰姿勢に変位させる制御を行うゲーム装置であって、
受けたダメージに応じて空中軌道及び滞空時間が異なるように前記被ダメージキャラクタの空中の移動制御を行う空中移動制御手段(例えば、図21の空中移動制御部234)と、
前記空中移動制御手段による移動制御中の前記被ダメージキャラクタの空中姿勢を所定の基準モーションに従って所定速度で変化させる制御を行う姿勢制御手段(例えば、図21の空中姿勢制御部236B)と、
前記空中移動制御手段による移動制御によって前記被ダメージキャラクタが着地した後、前記被ダメージキャラクタを前記復帰姿勢に変位させる制御を行う復帰制御手段(例えば、図21の復帰動作制御部240)と、
を備え、
前記空中移動制御手段が、前記姿勢制御手段の前記所定速度での姿勢制御により、着地時の前記被ダメージキャラクタの姿勢が所定姿勢とならない場合に、所定姿勢となるように前記空中軌道及び/又は前記滞空時間を変化させて前記移動制御を行うゲーム装置である。
この第6又は第10の発明によれば、被ダメージキャラクタをゲーム空間中(空中)に浮かせて落下させた後、復帰姿勢に変位させる場合に、受けたダメージに応じて空中軌道及び滞空時間が異なるように移動させるとともに、空中姿勢を所定の基準モーションに従って所定速度で変化させることができる。また、着地時の姿勢が所定姿勢とならない場合に、所定姿勢となるように空中軌道及び/又は滞空時間を変化させることができる。
即ち、空中軌道及び/又は滞空時間を変化させることで着地時の姿勢を常に所定姿勢とすることができる。従って、ダメージを受けた被ダメージキャラクタを浮かせて落下させるといったいわゆる「やられ動作」において、着地時の姿勢を常に一定の姿勢とすることができるので、着地した後の動作、即ち着地時の姿勢から復帰姿勢に変位させるためのモーションが1つで済む。この結果、「やられ動作」及びこれに付随する動作の表現に要するデータ量を削減できる。また、受けたダメージによって空中軌道及び滞空時間を変化できるので、例えば多くのダメージを受ける程、より高くより遠くまで飛ばされるといった、ダメージに応じた「やられ動作」の表現が、データ量を増加させることなく可能となる。
また、第7の発明は、
コンピュータを、
ゲーム空間内のキャラクタを、該キャラクタに対する負荷に応じた所定の軌道を所定の時間で移動させる移動制御手段(例えば、図9の空中移動制御部234)、
前記移動制御手段による移動中の前記キャラクタの姿勢を変化させるとともに、前記移動終了時における前記キャラクタの姿勢が常に一定となるように移動中の姿勢の変化を制御する姿勢制御手段(例えば、図9の空中姿勢制御部236A)、
として機能させるためのプログラムである。
この第7の発明によれば、ゲーム空間内のキャラクタを、このキャラクタに対する負荷に応じた所定の軌道で所定の時間で移動させるとともに、移動終了時における姿勢が常に一定となるよう、移動中のキャラクタの姿勢を変化させることができる。
従って、例えばキャラクタとしてゲーム進行中に所与のダメージを受けた被ダメージキャラクタに適用した場合、被ダメージキャラクタを浮かせて落下させるといったいわゆる「やられ動作」において、移動終了時、即ち着地時の姿勢を常に一定することができるので、着地した後の動作を行わせるためのモーションが少なくて済む。またこの場合、受けたダメージがキャラクタに対する負荷となり、受けたダメージに応じて軌道を変化させることができるので、例えばより多くのダメージを受ける程、より高く、より遠くまで飛ばされるといった、ダメージに応じた「やられ動作」を、データ量を増加させることなく表現可能となる。
第8の発明は、第1〜7の何れかの発明のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体である。
ここでいう「情報記憶媒体」とは、コンピュータが記憶されている情報を読み取り可能な、例えばCD−ROM、MO、メモリカード、DVD、ハードディスク、ICメモリ等であってある。従って、この第7の発明によれば、該情報記憶媒体に記憶されている情報をコンピュータに読み取らせて演算処理を実行させることで、第1〜7の何れかの発明と同様の効果を奏することができる。
本発明によれば、戦闘シーンにおけるいわゆる「やられ動作」及びこれに付随する動作を、より少ないデータ量で表現できる。
以下、図面を参照して、本発明を実施するための最良の形態を説明する。尚、以下では、家庭用ゲーム装置においてRPG(ロールプレイングゲーム)を実行する場合を説明するが、本発明の適用がこれに限定されるものではない。また、各図面において、関節構造を有するキャラクタモデル(以下、「キャラクタ」と称する。)を、適宜、簡略化して示すが、実際には、図12のように、人間同様の関節構造を有していたり、他の複雑な構造を有していたりして良い。
[外観]
図1は、本発明を家庭用ゲーム装置に適用した一例を示す外観図である。同図に示すように、家庭用ゲーム装置1000は、本体装置1100と、ゲームコントローラ1110,1110と、スピーカ1202を具備するディスプレイ1200と、を備える。ゲームコントローラ1110は本体装置1100に接続され、ディスプレイ1200は、画像信号及び音信号を伝送可能なケーブルKによって本体装置1100に接続されている。
本体装置1100は、例えばCPUやICメモリ等を搭載した制御ユニットや、CD−ROM1104等の情報記憶媒体の読取装置を具備する。そして、CD−ROM1104等から読み出したゲーム情報と、ゲームコントローラ1110からの操作信号とに基づいて種々のゲーム処理を実行し、ゲーム画面の画像信号及びゲーム音の音信号を生成する。そして、生成した画像信号及び音信号をディスプレイ1200に出力して、ディスプレイ1200にゲーム画面を表示させるとともに、スピーカ1202からゲーム音を出力させる。
本体装置1100がゲーム処理を行うために必要なプログラムやデータ等を含むゲーム情報等は、例えば本体装置1100に着脱自在な情報記憶媒体であるCD−ROM1104やICメモリ1106、メモリカード1108等に格納されている。ゲームコントローラ1110は、プレーヤがゲーム操作を入力するためのものであり、操作に応じた操作信号を本体装置1100に出力する。プレーヤは、ディスプレイ1200に表示されたゲーム画面を見ながらゲームコントローラ1110を操作してロールプレイングゲーム(RPG)を楽しむ。
[第1実施形態]
先ず、第1実施形態を説明する。
<原理>
RPGでは、プレーヤが、操作対象であるプレーヤキャラクタを、仮想三次元空間(ゲーム空間)に背景やキャラクタ等の各種オブジェクトを配置して設定されたゲームステージ内で移動させ、発生する様々なイベントをクリアすることでゲームが進行される。そして、所与の視点、例えばプレーヤキャラクタに追従するように設定された仮想カメラCMからゲーム空間を見た3DCG画像がゲーム画面としてディスプレイ1200に表示される。
尚ここで、ゲーム空間は、XZ平面を水平面とするXYZ直交座標系によって定義されており、後述する位置やベクトル等は、特に断らない限り、このXYZ座標系で表現されることとする。また、ゲーム空間は、現実空間と同様に鉛直下向き(Y軸負方向)に重力が作用する重力場であることとする。
RPGでは、プレーヤキャラクタがゲームステージを移動中に敵キャラクタと遭遇すると、戦闘モードに突入して該敵キャラクタとの戦闘が開始される。
図2は、戦闘モードにおけるゲーム空間の概略図である。同図では、キャラクタCAとキャラクタCBとが戦闘を行っている。キャラクタCA,CBは、それぞれ、攻撃魔法を唱える、パンチやキックをする、武器(剣等)で斬りつける等の攻撃動作を行ったり、或いは、防御魔法を唱える、身を守るための防御体勢を取る、防具(盾)をかざす等、相手キャラクタの攻撃に対する防御動作を行ったりする。キャラクタCA,CBは、相手キャラクタの攻撃動作によってダメージを受けると、受けたダメージの大きさに応じてライフポイント(生命値)が低下する。そして、先にライフポイントが“ゼロ(0)”となったキャラクタが「負け」となって戦闘が終了する。
また、戦闘モードでは、相手キャラクタの攻撃によってダメージを受けたキャラクタ(以下、「被ダメージキャラクタ」と称する。)DCは、受けたダメージに応じた、いわゆる「やられ動作」を行う。本実施形態では、この「やられ動作」の制御に特徴がある。
本実施形態における「やられ動作」では、被ダメージキャラクタDCは、上方に打ち上げられて空中に浮かんだ後、ゲーム空間に働く重力の作用によって落下する。同図(a)では、キャラクタCAがキャラクタCBを攻撃した様子を示している。即ち、キャラクタCBが被ダメージキャラクタDCである。被ダメージキャラクタDCであるキャラクタCBは、同図(b)に示すように、この攻撃によって斜め後方に打ち上げられて空中に浮かんだ後、地面に落下(着地)する。
このとき、被ダメージキャラクタDCは、常に同一姿勢で着地するように制御される。ここでは、仰向けの姿勢(仰向け姿勢)で着地するように制御されることとするが、腹這い姿勢や逆さま姿勢(頭から着地する姿勢)等、どのような姿勢であっても良い。また、被ダメージキャラクタDCが打ち上げられる空中の高さや着地位置までの距離は、受けたダメージ等によって変化する。
具体的に説明する。
やられ動作の制御では、先ず、図3に示すように、被ダメージキャラクタDCを空中に浮かび上がらせる原動力となる初速度ベクトルV0が設定される。初速度ベクトルV0は、攻撃ベクトルF及び被ダメージキャラクタの体重Wによって決定される。
攻撃ベクトルFとは、攻撃側のキャラクタ(攻撃キャラクタ;図2ではキャラクタCA)による攻撃の大きさ(強さ)及び向きを表すベクトルである。攻撃ベクトルFの大きさは、攻撃キャラクタのパワー等の攻撃能力やレベル、用いた攻撃の種類等によって決定される。攻撃ベクトルFの大きさが大きい程、被ダメージキャラクタDCに多くのダメージが与えられることになる。
また、攻撃ベクトルFの方向は、基本的には、攻撃キャラクタから被ダメージキャラクタDCへ向かう方向として設定されるが、例えば下から蹴り上げるようなキックを行った場合には略鉛直上向きの方向に設定される等、用いた攻撃の種類に応じて適当に設定される。
そして、初速度ベクトルV0は、その向きが攻撃ベクトルFの向きとほぼ平行に設定される。これは、被ダメージキャラクタDCがダメージを受けることで後方へ飛ばされるような様子を表現するためである。
また、初速度ベクトルV0の大きさは、攻撃ベクトルFの大きさに比例する値を、被ダメージキャラクタDCの体重Wで補正した値として設定される。これは、より多くのダメージを受ける程、或いは、被ダメージキャラクタの体重Wが軽い程、被ダメージキャラクタDCがより高く、また、より遠くまで飛ばされるような様子を表現するためである。
具体的には、次式(1)に示すように、攻撃ベクトルFの大きさ|F|に、所定の係数kを乗じ、更に、所定の基準体重Wbに対する被ダメージキャラクタDCの体重Wの割合ΔM(=Mb/M)を乗じた値として設定される。
|V0|=k×ΔM×|F| ・・・(1)
但し、k≧0、である。
初速度ベクトルV0が設定されると、この初速度ベクトルV0を基に、被ダメージキャラクタDCが空中を移動する軌道(空中軌道)ARが算出される。
図4は、空中軌道ARの算出を説明するための図である。尚、同図では、説明の簡明のため、被ダメージキャラクタDCの代表点の位置を質点として扱っている。同図に示すように、被ダメージキャラクタDCは、ダメージを受けた位置(攻撃位置)P0(X0,Y0,Z0)において初速度ベクトルV0(Vx0,Vy0,Vz0)が与えられると、物理法則に従って次のように運動する。
即ち、ダメージを受けてからt秒後の被ダメージキャラクタDCの速度ベクトルV(Vx,Vy,Vz)は、次式(2a)〜(2c)で与えられる。
Vx=Vx0 ・・・(2a)
Vy=Vy0−g×t ・・・(2b)
Vz=Vz0 ・・・(2c)
但し、gはゲーム空間に働く重力加速度である。
そして、式(2a)〜(2c)より、被ダメージキャラクタDCのt秒後の位置P(X,Y,Z)が次式(3a)〜(3c)で与えられる。
X=Vx0×t+X0 ・・・(3a)
Y=Vy0×t−(g×t2)/2+Y0 ・・・(3b)
Z=Vz0×t+Z0 ・・・(3c)
即ち、式(3a)〜(3c)より、被ダメージキャラクタDCが取り得るゲーム空間での軌道が定義される。そして、この軌道と地形オブジェクトとの交点を求めることで、被ダメージキャラクタDCが着地する位置(着地位置)Pf(Xf、Yf、Zf)が算出される。従って、式(3a)〜(3c)で定義される軌道の内、攻撃位置P0から着地位置Pfに至る部分が被ダメージキャラクタDCの空中軌道ARとなる。つまり、空中軌道ARは放物線を描く。
続いて、被ダメージキャラクタDCが空中軌道ARに沿って移動するのに要する時間、即ち、攻撃位置P0から着地位置Pfに到達するのに要する時間(滞空時間)Tfが算出される。即ち、式(3a)〜(3c)において、P(X,Y,Z)=Pf(Xf,Yf,Zf)、となる時刻tが滞空時間Tfとなる。例えば、戦闘が行われている場所が平坦(平地)である場合には、式(3b)において、Y=Y0、となる時刻tが滞空時間Tfとなる。
滞空時間Tfが算出されると、この滞空時間Tfに相当するフレーム数(滞空フレーム数)Nfが算出される。滞空フレーム数Nfは、次式(4)に示すように、秒単位で表現された滞空時間Tf[秒]に1秒当たりの描画フレーム数FNを乗することで算出される。
Nf=Tf×FN ・・・(4)
例えば、1秒間に60フレームの割合で画像が描画されている場合には、滞空フレーム数Nfは次式で与えられる。
Nf=Tf×60 ・・・(4a)
以下では、この滞空時間Tfに相当するNf枚のフレームを包括して「滞空フレーム」と称する。また、これらの滞空フレームの内、n番目のフレームを「フレームF(n)」と称する。但し、n=1,2,・・・,Nf、である。そして、1番目のフレームF(1)を「先頭フレームF(1)」と称し、Nf番目のフレームF(Nf)を「最終フレームF(Nf)」と称することとする。
このように、空中軌道AR及び滞空フレーム数Nfが算出されると、算出したこれらの空中軌道AR及び滞空フレーム数Nfに基づいて被ダメージキャラクタDCのやられ動作が制御される。本実施形態では、動作の構成要素である“移動”と“姿勢”とは独立して制御される。
(1)“移動”の制御
やられ動作における被ダメージキャラクタDCの“移動”は、算出された空中軌道ARに沿って制御される。具体的には、図5に示すように、滞空時間Tfの間、フレーム毎に被ダメージキャラクタDCの位置P(X,Y,Z)が、例えば式(3a)〜(3c)に従って算出される。そして、算出したこの位置P(X,Y,Z)に被ダメージキャラクタDCが配置される。このように、被ダメージキャラクタDCは、空中軌道ARに沿って攻撃位置P0から着地位置Pfまで、滞空時間Tfをかけて“移動”するように制御される。
(2)“姿勢”の制御
一方、やられ動作における被ダメージキャラクタDCの“姿勢”は、予め定められている空中姿勢モーションに従って制御される。空中姿勢モーションとは、空中での被ダメージキャラクタDCの姿勢を時系列で並べたものであり、時間tに対する姿勢の変化を表している。
図6は、空中姿勢モーションの一例を示す図である。空中姿勢モーションは、やられ動作の開始時点での姿勢である戦闘中の姿勢(戦闘姿勢)を先頭コマとし、着地姿勢を最終コマとする連続した複数のコマ(Mコマ)から構成される。また、途中のコマは、先頭コマの姿勢から徐々に変化して最終コマの姿勢(最終姿勢)となるように設定されている。
同図によれば、空中姿勢モーションの先頭コマ(#1)は、キャラクタが起立した姿勢(起立姿勢)で戦闘を行っているために起立姿勢である。また、最終コマ(#M)は、仰向け姿勢で着地するために仰向け姿勢となっている。そして、途中のコマ(#1〜#(M−1))は、起立姿勢から徐々に後方に倒れて仰向け姿勢となる過程の姿勢に設定されている。
このような空中姿勢モーションが滞空フレームに適用される。このとき、滞空フレームの先頭フレームF(1)及び最終フレームF(Nf)に、それぞれ、空中姿勢モーションの先頭コマ(#1)及び最終コマ(#M)を一致させるように適用される。そして、先頭フレームF(1)及び最終フレームF(Nf)を除く中間のフレームF(2)〜F(Nf−1)での姿勢は、フレーム数とコマ数の関係から、空中姿勢モーションの各コマを補間することによって算出(いわゆる、中割りのコマ)されたり、或いは、コマそのものが適用されたりする(以下、単に「補間」と称する。)。補間処理は、直線補間やスプライン補間等、公知の補間演算を用いることで実現できる。
図7は、空中姿勢モーションの適用例を示す図である。同図において、(a)、(c)は、空中姿勢モーションが適用された滞空フレームでの姿勢を示し、(b)は、空中姿勢モーションそのものを示している。詳細には、(a)は、滞空フレーム数Nfが空中姿勢モーションのコマ数Mよりも小さい場合(Nf=Nf1<M)を示し、(c)は、滞空フレーム数Nfが空中姿勢モーションのコマ数Mよりも大きい場合(Nf=Nf2>M)を示している。
同図に示すように、(a)、(c)の何れの場合も、最終フレームF(Nf1)、F(Nf2)は仰向け姿勢である。つまり、滞空フレーム数Nfの多少(即ち、滞空時間Tfの長短)に関わらず、最終フレームF(Nf)での姿勢は、常に仰向け姿勢となる。このとき、被ダメージキャラクタDCの空中での“姿勢”は、滞空フレーム数Nfが少ない(即ち、滞空時間Tfが短い)程速く変化し、滞空フレーム数Nfが多い(即ち、滞空時間Tfが長い)程遅く変化する。
従って、“移動”及び“姿勢”が制御された被ダメージキャラクタDCのやられ動作は、図8に示すようになる。即ち、被ダメージキャラクタDCは、ダメージを受けた攻撃位置P0での起立姿勢から徐々に後方に倒れつつ、放物線を描くように空中を移動し、仰向けの姿勢で着地位置Pfに着地する。
このように、やられ動作では、滞空フレーム数Nf、即ち着地までに要するフレーム数を算出し、この滞空フレーム数Nfから成る滞空フレームに、予め定められている空中姿勢モーションを適用することで被ダメージキャラクタDCの空中での“姿勢”を制御している。このため、空中軌道ARや滞空時間Tfに関わらず、常に一定の姿勢(ここでは、仰向け姿勢)で被ダメージキャラクタDCを着地させることができる。
やられ動作が終了すると、続いて復帰動作が行われる。復帰動作では、被ダメージキャラクタDCは、やられ動作が終了した位置(即ち、着地位置Pf)において、やられ動作の終了時点における姿勢(即ち、着地姿勢)から所定の復帰姿勢に復帰する(変位する)動作を行う。ここでは、戦闘を継続するため、着地姿勢である仰向け姿勢から起き上がり、再度、戦闘姿勢である起立姿勢に戻る動作を行う。
ところで、上述のように、やられ動作では、常に同一姿勢で着地するように制御されている。即ち、やられ動作の終了時点での姿勢は常に同一である。このため、復帰動作を制御するための復帰モーションは、少なくとも1パターンあれば済む。つまり、着地姿勢である仰向け姿勢から起上がって起立姿勢に戻るパターンである。
<機能構成>
図9は、第1実施形態における機能構成を示すブロック図である。同図によれば、第1実施形態は、機能的には、操作入力部10と、処理部20と、記憶部40と、画像表示部72と、音出力部74と、を備えて構成される。
操作入力部10は、プレーヤによる操作指示を受け付け、なされた操作に応じた操作信号を処理部20に出力する。この機能は、例えばボタンスイッチやレバー、ダイヤル、マウス、キーボード、各種センサ等によって実現される。図1ではゲームコントローラ1110がこれに該当する。
処理部20は、家庭用ゲーム装置1000全体の制御やゲームの進行、画像生成等の各種演算処理を行う。この機能は、例えばCPU(CISC型、RISC型)、ASIC(ゲートアレイ等)等の演算装置やその制御プログラムにより実現される。図1では、本体装置1100に具備される制御ユニットがこれに該当する。
また、処理部20は、主にゲームに係る演算処理を行うゲーム演算部22と、ゲーム演算部22の処理によって求められた各種のデータに基づき、仮想カメラCM等の所与の視点から見たゲーム空間の画像の生成及びゲーム画面を表示させるための画像信号の生成を実行する画像生成部32と、効果音やBGM等のゲーム音の生成及びゲーム音を出力させるための音信号の生成を実行する音生成部34と、を含んでいる。
ゲーム演算部22は、操作入力部10から入力された操作信号や、記憶部40から読み出したゲームプログラム42やゲームデータ等に基づいて種々のゲーム処理を実行する。ゲーム処理としては、例えばゲーム空間に背景やキャラクタ等の各種オブジェクトを配置してゲームステージを設定する処理、仮想カメラCMの配置処理、操作入力部10からの操作信号に基づくプレーヤキャラクタの制御、オブジェクトの交差判定処理(ヒットチェック)、ダメージの算出処理等がある。
第1実施形態では、ゲーム演算部22は、被ダメージキャラクタDCを制御する被ダメージキャラクタ制御部220Aを含んでいる。また、この被ダメージキャラクタ制御部220Aは、被ダメージキャラクタDCの「やられ動作」を制御するやられ動作制御部230Aと、「復帰動作」を制御する復帰動作制御部240と、を含んでいる。やられ動作制御部230Aは、更に、フレーム数算出部232と、空中移動制御部234と、空中姿勢制御部236Aと、を含んでいる。
フレーム数算出部232は、被ダメージキャラクタDCが受けたダメージ等に基づいて滞空フレーム数Nfを算出する。具体的には、図3に示したように、被ダメージキャラクタDCが受けた攻撃ベクトルF及び被ダメージキャラクタDCの体重Wに基づいて初速度ベクトルV0を設定する。次いで、図4に示したように、ダメージを受けた攻撃位置P0及び設定した初速度ベクトルV0に基づき、式(3)で定義される、被ダメージキャラクタDCが取り得るゲーム空間中の軌道を算出する。続いて、この軌道と、ステージデータ52を参照して判断した戦闘が行われている場所の地形との交点を求め、着地位置Pfとする。そして、攻撃位置P0からこの着地位置Pfまで軌道に沿って移動するのに要する滞空時間Tfを算出し、更に、式(4)に従って滞空フレーム数Nfを算出する。
フレーム数算出部232によって算出された各データはフレーム数算出データ62に格納される。図10に、フレーム数算出データ62のデータ構成の一例を示す。同図によれば、フレーム数算出データ62には、攻撃位置(62a)と、初速度ベクトル(62b)と、着地位置(62c)と、滞空時間(62d)と、滞空フレーム数(62e)と、が格納される。このフレーム数算出データ62は、やられ動作が行われる毎に更新される。
図9において、空中移動制御部234は、被ダメージキャラクタDCの空中での“移動”を制御する。具体的には、滞空時間Tfに相当する先頭フレームF(1)から最終フレームF(Nf)までの間、フレーム毎に、被ダメージキャラクタDCの位置Pを算出し、算出した位置Pに被ダメージキャラクタDCを配置する。
空中移動制御部234によって算出された位置Pは、順次、空中軌道データ64に格納される。図11に、空中軌道データ64のデータ構成の一例を示す。同図によれば、空中軌道データ64は、滞空フレームの各フレーム(64a)における被ダメージキャラクタDCの位置(64b)を格納する。即ち、先頭フレームF(1)から最終フレームF(Nf)までの滞空フレーム数Nf分のデータを格納する。また、この空中軌道データ64は、やられ動作が行われる毎に更新される。
図9において、空中姿勢制御部236Aは、被ダメージキャラクタDCの空中での“姿勢”を制御する。具体的には、Nfフレームから成る滞空フレームに、空中姿勢モーションデータ56Aに基づく空中姿勢モーションを適用する。このとき、先頭フレームF(1)及び最終フレームF(Nf)のそれぞれに、空中姿勢モーションの先頭コマ(#1)及び最終コマ(#M)を一致させる。即ち、先頭フレームF(1)から最終フレームF(Nf)までのNfフレームの間、フレーム毎に、空中姿勢モーションデータ56Aに基づく補間演算を行って被ダメージキャラクタDCの姿勢を算出する。そして、空中移動制御部234によって配置された被ダメージキャラクタDCの姿勢を、この算出した姿勢に制御する。
復帰動作制御部240は、やられ動作制御部230Aによる被ダメージキャラクタDCのやられ動作の制御が終了した後、復帰モーションデータ58に基づいて被ダメージキャラクタの復帰動作を制御する。
画像生成部32は、ゲーム演算部22による演算結果に基づき、幾何変換処理やシェーディング処理等を実行してゲーム画面を表示するためのゲーム画像(3DCG画像)を生成し、生成した画像の画像信号を画像表示部72に出力する。この機能は、例えばCPUやDSP等の演算装置やその制御プログラム、フレームバッファ等の描画フレーム用ICメモリ等によって実現される。
画像表示部72は、画像生成部32からの画像信号に基づいて、例えば1/60秒毎に1フレームの画面を再描画しながらゲーム画面を表示する。この機能は、例えばCRT、LCD、ELD、PDP、HMD等のハードウェアによって実現される。図1では、ディスプレイ1200がこれに該当する。
音生成部34は、ゲーム中に使用される効果音やBGM等のゲーム音を生成し、生成したゲーム音の音信号を音出力部74に出力する。この機能は、例えばCPUやDSP等の演算装置及びその制御プログラムによって実現される。
音出力部74は、音生成部34からの音信号に基づいて、BGMや効果音等のゲーム音声を出力する。この機能は、例えばスピーカ等によって実現される。図1では、スピーカ1202がこれに相当する。
記憶部40は、処理部20に家庭用ゲーム装置1000を統合的に制御させるための諸機能を実現するためのシステムプログラムや、ゲームを実行させるために必要なプログラムやデータ等を記憶するとともに、処理部20の作業領域として用いられ、処理部20が各種プログラムに従って実行した演算結果や操作入力部10から入力される入力データ等を一時的に記憶する。この機能は、例えば各種ICメモリやハードディスク、CD−ROM、DVD、MO、RAM、VRAM等によって実現される。図1では、本体装置1100が具備するCD−ROM1104、ICメモリ1106、メモリカード1108がこれに該当する。
また、記憶部40は、処理部20をゲーム演算部22として機能させるためのゲームプログラム42及びゲームデータを記憶する。第1実施形態では、ゲームプログラム42として、ゲーム演算部22を被ダメージキャラクタ制御部220Aとして機能させるための被ダメージキャラクタ制御プログラム420Aを記憶している。この被ダメージキャラクタ制御プログラム420Aは、やられ動作制御部230Aとして機能させるためのやられ動作制御プログラム230Aと、復帰動作制御部240として機能させるための復帰動作制御プログラム440と、を含んでいる。また、やられ動作制御プログラム230Aは、フレーム数算出部232として機能させるためのフレーム数算出プログラム432と、空中移動制御部234として機能させるための空中移動制御プログラム434と、空中姿勢制御部236Aとして機能させるための空中姿勢制御プログラム436Aと、を含んでいる。
また、記憶部40は、ゲームデータとして、ステージデータ52と、キャラクタデータ54と、空中姿勢モーションデータ56Aと、復帰モーションデータ58と、フレーム数算出データ62と、空中軌道データ64と、を記憶している。
ステージデータ52は、ゲーム空間にゲームステージを設定(構築)するためのデータであり、地形データ、背景やキャラクタ等の各種のモデリングデータやテクスチャデータ等を含んでいる。
キャラクタデータ54は、ゲームに登場する関節構造を有するキャラクタモデルに関するデータであり、キャラクタ毎に用意されている。図12に、キャラクタデータ54のデータ構成の一例を示す。同図によれば、キャラクタデータ54は、モデル(54a)と、関節構造(54b)と、体重(54c)と、位置(54d)と、姿勢(54e)と、を対応付けて格納している。
モデル(54a)は、キャラクタをゲーム空間にモデリングするためのデータを格納する。また、マッピングするテクスチャデータもここに格納される。
関節構造(54b)は、キャラクタの階層化した関節構造のデータを格納する。具体的には、同図に示すように、人間を模したキャラクタの場合には、該キャラクタを、胴体、頭、右上腕、右前腕、右手、左上腕、左前腕、左手、・・・、といったパーツ(部位)に分け、胴体には、首関節(関節a)で頭が連結し、右肩関節(関節b)で右上腕が連結し、左肩関節(関節e)で左上腕が連結し、更に、右上腕には、右肘関節(関節c)で右上腕が連結し、・・・・、といった具合に各パーツの関節での連結を階層化して格納する。
位置(54d)は、キャラクタの現在位置Pとして、該キャラクタの代表点での現在位置を格納する。また、姿勢(54e)は、関節構造(54b)によって定義されているキャラクタの各関節の角度(より具体的には、その関節で連結される部位同士の相対的な角度)を格納する。
図9において、空中姿勢モーションデータ56Aは、やられ動作における被ダメージキャラクタDCの“姿勢”を制御するための空中姿勢モーションのデータである。この空中姿勢モーションデータ56Aに基づき、空中姿勢制御部236Aによって、やられ動作における被ダメージキャラクタDCの“姿勢”が制御される。
図13に、空中姿勢モーションデータ56Aのデータ構成の一例を示す。同図によれば、空中姿勢モーションデータ56Aは、空中姿勢モーションを構成するコマ毎に、コマ番号(56A−a)と、設定されているキャラクタの姿勢(56A−b)と、を対応付けて格納している。即ち、空中姿勢モーションのコマ数に等しいMコマ分のデータを格納している。姿勢(56A−b)は、キャラクタデータ54において関節構造(54b)で定義されているキャラクタの各関節の角度を格納する。
図9において、復帰モーションデータ58は、被ダメージキャラクタDCの復帰動作を制御するための復帰モーションのデータである。ここでは、被ダメージキャラクタDCが仰向け姿勢から起き上がり、戦闘姿勢である起立姿勢に戻る動作を行うためのモーションデータを格納している。この復帰モーションデータ58に基づき、復帰動作制御部240によって、被ダメージキャラクタDCの復帰動作が制御される。
尚、空中姿勢モーションデータ56A及び復帰モーションデータ58は、ゲームに登場するキャラクタが全て同一の関節構造であれば、それぞれ1種類のみを用意することで全てのキャラクタについて適用することができる。しかし、例えば人間を模したキャラクタと鳥を模したキャラクタとが登場する場合には、人間と鳥とでは関節構造が異なるため、登場するキャラクタの種類毎に、対応する空中姿勢モーションデータ56A及び復帰モーションデータ58を用意する必要がある。そして、やられ動作及び復帰動作の制御を行う際には、それぞれ、被ダメージキャラクタDCの種類に応じた空中姿勢モーションデータ56A及び復帰モーションデータ58を用いることになる。
<処理の流れ>
図14は、第1実施形態における「やられ動作」に関わる処理の流れを示すフローチャートである。この処理は、被ダメージキャラクタ制御部220Aが記憶部40の被ダメージキャラクタ制御プログラム420Aを実行することで実現される。尚、その他のゲーム処理については公知であるので、ここでの説明は省略する。
同図によれば、先ず、やられ動作制御部230Aが被ダメージキャラクタDCのやられ動作を制御する。即ち、フレーム数算出部232が、受けた攻撃の種類(例えば、パンチか蹴りか等)に基づいて攻撃ベクトルFを算出し、この攻撃ベクトルF及び被ダメージキャラクタDCの体重Wに基づいて初速度ベクトルV0を設定する(ステップS11)。次いで、被ダメージキャラクタDCの現在位置を攻撃位置P0とし、算出した初速度ベクトルV0をこの攻撃位置P0において与えた場合に被ダメージキャラクタDCが取り得るゲーム空間での軌道を算出する(ステップS12)。
フレーム数算出部232は、続いて、ステージデータ52を参照して戦闘を行っている場所の地形を判断し、判断した地形と算出した軌道との交点を求めることで着地位置Pfを算出する(ステップS13)。そして、攻撃位置P0から着地位置Pfまでこの軌道に沿って移動するのに要する時間、即ち滞空時間Tfを算出するとともに、この滞空時間Tfに相当する滞空フレーム数Nfを算出する(ステップS14)。
その後、算出した滞空フレーム数Nfに相当するNfフレームの間、フレーム毎にループAの処理が実行される。
ループAでは、空中移動制御部234が、例えば攻撃位置P0及び初速度ベクトルV0に基づき、式(3)に従って被ダメージキャラクタDCの次フレームでの位置Pを算出する(ステップS15)。また、空中姿勢制御部236Aが、空中姿勢モーションデータ56Aに基づく補間演算を行って、次フレームでの被ダメージキャラクタDCの姿勢を算出する(ステップS16)。
次いで、空中移動制御部234が、算出した位置Pに被ダメージキャラクタDCを配置し、また、空中姿勢制御部236Aが、被ダメージキャラクタDCの姿勢を算出した姿勢となるように制御する(ステップS17)。その後、画像生成部32が、ゲーム空間に設定されている仮想カメラCMに基づく画像を生成して画像表示部72に表示させる(ステップS18)。そして、ループAが終了する。
ループAが終了すると、続いて、復帰動作制御部240が、復帰モーションデータ58に基づいて被ダメージキャラクタDCの復帰動作を制御する(ステップS19)。そして、復帰動作の制御が終了すると、本処理は終了となる。
<ハードウェア構成>
図15は、本実施の形態における家庭用ゲーム装置1000のハードウェア構成の一例を示す図である。同図によれば、家庭用ゲーム装置1000は、CPU1002と、ROM1004と、RAM1006と、情報記憶媒体1008と、画像生成IC1010と、音生成IC1012と、I/Oポート1014,1016とを有し、システムバス1030により相互にデータの入出力が可能に接続されている。また、画像生成IC1010には表示装置1018が接続され、音生成IC1012にはスピーカ1020が接続され、I/Oポート1014にはコントロール装置1022が接続され、I/Oポート1016には通信装置1024が接続されている。
CPU1002は、情報記憶媒体1008に格納されているプログラムやデータ、ROM1004に格納されているシステムプログラムやデータ、コントロール装置1022によって入力される操作入力信号等に従って、家庭用ゲーム装置1000全体の制御や各種データ処理を行う。このCPU1002は、図9の処理部20に該当する。
ROM1004、RAM1006及び情報記憶媒体1008は、図9の記憶部40に該当する。ROM1004は、家庭用ゲーム装置1000のシステムプログラムや、図9の記憶部40に記憶されている情報の内、特に、予め設定されているプログラムやデータ等を記憶する。RAM1006は、CPU1002の作業領域として用いられる記憶手段であり、例えば、ROM1004や情報記憶媒体1008の所与の内容、1フレーム分の画像データ、CPU1002の演算結果等が格納される。また、情報記憶媒体1008は、ICメモリカードや本体装置に着脱自在なハードディスクユニット、MO等によって実現される。
画像生成IC1010は、CPU1002からの画像情報に基づいて表示装置1018に表示するゲーム画面の画素情報を生成する集積回路である。表示装置1018は、画像生成IC1010で生成された画素情報に基づくゲーム画面を表示する。この画像生成IC1010は、図9の画像生成部32に該当し、表示装置1018は、図9の画像表示部72、図1のディスプレイ1200に該当する。
音生成IC1012は、情報記憶媒体1008やROM1004に記憶される情報に基づいて効果音やBGM等のゲーム音を生成する集積回路であり、生成されたゲーム音はスピーカ1020によって出力される。この音生成IC1012は、図9の処理部20に含まれる音生成部(不図示)に該当し、スピーカ1020は、図1のスピーカ1202に該当する。
尚、画像生成IC1010、音生成IC1012等で行われる処理は、CPU1002或いは汎用のDSP等によってソフトウェア的に実行されることとしても良い。
コントロール装置1022は、プレーヤがゲームの進行に応じて種々のゲーム操作を入力するための装置である。このコントロール装置1022は、図9の操作入力部10、図1のゲームコントローラ1110に該当する。
音生成IC1012は、情報記憶媒体1008やROM1004に記憶される情報に基づいて効果音やBGM等のゲーム音を生成する集積回路であり、生成されたゲーム音はスピーカ1020によって出力される。この音生成IC1012は、図9の処理部20に含まれる音生成部(不図示)に該当し、スピーカ1020は、図1のスピーカ1202に該当する。
尚、画像生成IC1010、音生成IC1012等で行われる処理は、CPU1002或いは汎用のDSP等によってソフトウェア的に実行されることとしても良い。
コントロール装置1022は、プレーヤがゲームの進行に応じて種々のゲーム操作を入力するための装置である。このコントロール装置1022は、図9の操作入力部10、図1のゲームコントローラ1110に該当する。
<作用・効果>
以上のように、第1実施形態では、戦闘シーンにおける「やられ動作」の制御が次のように行われる。即ち、被ダメージキャラクタDCが受けた攻撃ベクトルF及び被ダメージキャラクタDCの体重Wに基づいて初速度ベクトルV0が設定される。次いで、この初速度ベクトルV0に基づき、被ダメージキャラクタDCが移動する空中軌道AR及び着地する着地位置Pfが算出され、この空中軌道ARに沿って攻撃位置P0から着地位置Pfまで移動するのに要する滞空時間Tf及びこの滞空時間Tfに相当する滞空フレーム数Nfが算出される。そして、被ダメージキャラクタDCが、算出された空中軌道ARに沿って攻撃位置P0からPfまで、滞空時間Tfをかけて“移動”するように制御されるとともに、滞空時間Tfに相当するNfフレームに空中姿勢モーションを適用することで“姿勢”が制御される。
従って、被ダメージキャラクタDCを、受けたダメージ、即ち空中軌道ARや滞空時間Tf等に関わらず、常に同一の姿勢(ここでは、仰向け姿勢)で着地させることができる。つまり、やられ動作の終了時点での姿勢、即ち着地姿勢が常に同一の姿勢であるため、やられ動作に続いて行われる「復帰動作」を制御するためのモーションが1つで済む。この結果、「やられ動作」及びこれに付随する動作の表現に要するデータ量を削減できる。
また、受けた攻撃ベクトルFに基づいて空中軌道AR及び滞空時間Tfが算出されるので、例えば多くのダメージを受ける程(ダメージ量が大きい程)、より高くより遠くまで飛ばされるといった、ダメージに応じた「やられ動作」を、データ量を増加させることなく表現可能となる。
[第2実施形態]
次に、第2実施形態を説明する。
尚、第2実施形態において上述した第1実施形態と同一要素については同符合を付し、詳細な説明を省略する。
<原理>
第2実施形態では、被ダメージキャラクタDCが、やられ動作として、空中を転回(回転)しつつ移動する動作を行う点で第1実施形態と異なる。即ち、適用される空中姿勢モーションが第1実施形態と異なる。尚、常に同一の姿勢で着地するように制御される点では第1実施形態と同様である。
図16は、第2実施形態における空中姿勢モーションの一例を示す図である。同図に示すように、第2実施形態における空中姿勢モーションは、(A)転回姿勢モーションと、(B)着地姿勢モーションと、から構成される。
転回姿勢モーションは、被ダメージキャラクタDCに空中で転回する転回動作を行わせるためのモーションであり、合計M1コマで構成されている。即ち、転回姿勢モーションは、やられ動作の開始時点での姿勢である戦闘姿勢を先頭コマ(#1)とし、この姿勢から徐々に転回するように変化して、再度、先頭コマ(#1)に戻る過程の姿勢が設定されている。また、最終コマ(#M1)は、複数回転回する場合の整合性を考慮して、先頭コマ(#1)の姿勢に戻る1歩手前(1コマ分手前)の姿勢が設定されている。同図では、起立姿勢を先頭コマ(#1)とし、この姿勢から後方に倒れるように転回して、再度、最終コマ(#M1)で起立姿勢に戻る一歩手前の姿勢となるように設定されている。
着地姿勢モーションは、被ダメージキャラクタDCに着地させる着地動作を行わせるためのモーションであり、合計M2コマで構成される。即ち、着地姿勢モーションは、転回姿勢モーションの最終コマ(#M1)に続く姿勢を先頭コマ(#1)とし、着地姿勢を最終コマ(#M2)として設定されている、また、途中のコマ(#2〜#(M2−1))は、先頭コマ(#1)である着地姿勢から徐々に変化して最終コマ(#M2)である着地姿勢となるように設定されている。同図では、起立姿勢を先頭コマ(#1)とし、この姿勢から後方に倒れ、最終コマ(#M2)で着地姿勢である仰向け姿勢となるように設定されている。
第2実施形態では、このような空中姿勢モーションが滞空フレームに適用される。詳細には、図17に示すように、Nfフレームから成る滞空フレームの内、先頭フレームF(1)からN1番目のフレームF(N1)までのN1フレームに、転回姿勢モーションが適用され、続く(N1+1)番目のフレームF(N1+1)から最終フレームF(N)までのN2(=Nf−N1)フレームに、着地姿勢モーションが適用される。但し、1<N1<Nf、である。
本実施形態では、転回姿勢モーションが適用される前半のフレーム(以下、「転回フレーム」と称する。)の数(転回フレーム数)N1と、着地姿勢モーションが適用される後半のフレーム(以下、「着地フレーム」と称する。)の数(着地フレーム数)N2とは、次式(5a)、(5b)のように定められている。
N2=M2 ・・・(5a)
N1=Nf−N2
=Nf−M2 ・・・(5b)
即ち、Nfフレームから成る滞空フレームの内、着地姿勢モーションのコマ数に等しい後半のM2フレームに、着地姿勢モーションが適用され、この着地フレームを除いた残りの(Nf−M2)フレームに、転回姿勢モーションが適用される。
(A)転回姿勢フレームの適用
転回姿勢フレームの適用にあたっては、先ず、被ダメージキャラクタDCを空中で転回させる回数(転回数)Rが算出される。具体的には、転回フレーム数N1を転回姿勢モーションのコマ数M1で除算することで算出する。ここで、割り切れない(除算結果が自然数にならない)場合には、除算結果の小数点以下第1位を四捨五入した値(自然数)を転回数Rとする。尚、四捨五入ではなく、小数点以下第1位の桁を切り上げ/切り捨てることとしても良い。
例えば、転回姿勢モーションのコマ数M1が「10」である場合、転回フレーム数N1が「20」であれば、転回数Rは「2(=20/10)」と算出され、また、転回フレーム数N1が「25」であれば、転回数Rは、除算結果(2.5=25/10)の小数点以下第1位を四捨五入して「3」と算出される。
転回数Rが算出されると、転回数Rに応じた転回適用姿勢モーションが生成される。具体的には、転回動作において、被ダメージキャラクタDCを転回数Rだけ転回させるため、図18に示すように、転回姿勢モーションを転回数Rの数だけ繋げて一連のモーションとする。従って、生成される転回適用モーションのコマ数MRは、次式(6)で与えられる。
MR=M1×R ・・・(6)
同図では、転回数Rが「2」の場合が示されており、従って、この場合に生成される転回適用姿勢モーションのコマ数MRは「M1×2」となる。
そして、この転回適用姿勢モーションが転回フレームに適用される。このとき、先頭フレームF(1)及びフレームF(N1)に、それぞれ、転回適用姿勢モーションの先頭コマ(#1)及び最終コマ(#MR)が一致するように適用される。
図19は、転回適用モーションの適用例を示す図であり、転回数Rが「2」(R=2)の場合を示している。同図において、(a)は、転回適用姿勢モーションそのものを示し、(b)は、転回適用姿勢モーションが適用された転回フレームでの姿勢を示している。
このように、転回動作では、被ダメージキャラクタDCが転回数Rだけ転回するように制御される。そして、転回動作において姿勢が変化する速度は、転回フレーム数N1及び転回数Rによって変化する。即ち、転回フレーム数N1が同じであれば、転回数Rが多い程変化が速くなり、転回数Rが少ない程変化が遅くなる。また、転回数Rが同じであれば、N1が大きい程変化が遅くなり、N1小さい程変化が早くなる。また、転回動作の終了時点での被ダメージキャラクタDCの姿勢は、転回姿勢モーションの最終コマ(#M1)の姿勢となる。
(B)着地姿勢モーションの適用
そして、着地フレームに着地姿勢モーションが適用される。このとき、着地フレーム数N2と着地姿勢モーションのコマ数M2とは等しいので、着地フレームの各フレームと着地姿勢モーションの各コマとは1対1で対応する。即ち、フレームF(N1+1)及び最終フレームF(Nf)に、着地姿勢モーションの先頭コマ(#1)及び最終コマ(#M2)が一致する。そして、着地動作における姿勢の変化の速度は常に一定である。
従って、第2実施形態において“移動”及び“姿勢”が制御された被ダメージキャラクタDCのやられ動作は、図20に示すようになる。即ち、被ダメージキャラクタDCは、攻撃位置P0から、後方に1又は複数回転回しつつ放物線を描いて空中を移動し、仰向けの姿勢で着地位置Pfに着地する。
<機能構成>
図21は、第2実施形態における機能構成を示すブロック図である。
同図によれば、第2実施形態では、ゲーム演算部22は、被ダメージキャラクタ制御部220Bを含んでいる。この被ダメージキャラクタ制御部220Bは、やられ動作制御部230Bと、復帰動作制御部240と、を含んでいる。やられ動作制御部230Bは、更に、フレーム数算出部232と、転回数算出部238と、空中移動制御部234と、空中姿勢制御部236Bと、を含んでいる。
転回数算出部238は、被ダメージキャラクタDCを空中で転回させる転回数Rを算出する。具体的には、先ず、フレーム数算出部232によって算出された滞空フレーム数Nf及び着地姿勢モーションのコマ数M2に基づき、式(5a)、(5b)に従って転回フレーム数N1及び着地フレーム数N2を算出する。次いで、算出したN1をM1で除算することで転回数Rを算出する。
転回数算出部238によって算出された各データは転回数算出データ66に格納される。図22に、転回数算出データ66のデータ構成の一例を示す。同図によれば、転回数算出データ66は、滞空フレーム数(66a)と、転回フレーム数(66b)と、着地フレーム数(66c)と、転回数(66d)と、を格納する。この転回数算出データ66は、やられ動作が行われる毎に更新される。
図21において、空中姿勢制御部236Bは、やられ動作での被ダメージキャラクタDCの“姿勢”を制御する。具体的には、先ず、転回数算出部238によって算出された転回数Rに基づいて転回適用姿勢モーションを生成する。即ち、図18に示したように、転回数Rに等しい数だけ転回姿勢モーションを繋げて一連のモーションにすることで生成する。生成された転回適用姿勢モーションは、転回適用姿勢モーションデータ68に格納される。
図23は、転回適用姿勢モーションデータ68のデータ構成の一例を示す図である。同図によれば、転回適用姿勢モーションデータ68は、転回適用姿勢モーションを構成するコマ毎に、コマ番号(68a)と、設定されているキャラクタの姿勢(68b)と、を対応付けて格納している。同図に示すように、転回適用姿勢モーションは、転回数Rが2以上であれば、その転回数R分の転回姿勢モーションを繋げて生成されたデータであるため、M1コマ毎に同一のデータ内容(姿勢)が繰り返し現れている。
そして、空中姿勢制御部236Bは、Nfフレームから成る滞空フレームの内、先頭フレームF(1)からフレームF(N1)までのN1フレームに、転回適用姿勢モーションデータ68に基づく転回適用姿勢モーションを適用する。このとき、フレームF(1)及びフレーム(N1)に、転回適用姿勢モーションの先頭コマ(#1)及び最終コマ(#MR)が一致するように適用する。
また、フレームF(N1+1)から最終フレームF(Nf)までのN2フレームに、着地姿勢モーションデータ564に基づく着地姿勢モーションを適用する。このとき、フレームF(N1+1)及び最終フレームF(Nf)に、着地姿勢モーションの先頭コマ(#1)及び最終コマ(#M2)が一致するように適用する。
図21において、記憶部40は、ゲームプログラム42として、ゲーム演算部22を被ダメージキャラクタ制御部220Bとして機能させるための被ダメージキャラクタ制御プログラム420Bを記憶している。この被ダメージキャラクタ制御プログラム420Bは、やられ動作制御プログラム230Bと、復帰動作制御プログラム440と、を含んでいる。また、やられ動作制御プログラム230Bは、フレーム数算出プログラム432と、転回数算出部238として機能させるための転回数算出プログラム438と、空中移動制御プログラム434と、空中姿勢制御部236Bとして機能させるための空中姿勢制御プログラム436Bと、を含んでいる。
また、記憶部40は、ゲームデータとして、ステージデータ52と、キャラクタデータ54と、空中姿勢モーションデータ56Bと、復帰モーションデータ58と、フレーム数算出データ62と、空中軌道データ64と、転回数算出データ66と、転回適用姿勢モーションデータ68と、を記憶している。
空中姿勢モーションデータ56Bは、第2実施形態におけるやられ動作での被ダメージキャラクタDCの“姿勢”を制御するための空中姿勢モーションのデータである。図24に、空中姿勢モーションデータ56Bのデータ構成の一例を示す。同図に示すように、空中姿勢モーションデータ56Bは、転回姿勢モーションデータ562と、着地姿勢モーションデータ564と、を含んでいる。
転回姿勢モーションデータ562は、やられ動作を構成する転回動作での被ダメージキャラクタDCの“姿勢”を制御するための転回姿勢モーションのデータである。同図に示すように、転回姿勢モーションデータ562は、転回姿勢モーションを構成するコマ毎に、コマ番号(562a)と、設定されているキャラクタの姿勢(562b)と、を対応付けて記憶している。即ち、転回姿勢モーションのコマ数であるM1コマ分のデータを格納している。
また、着地姿勢モーションデータ564は、やられ動作を構成する着地動作での被ダメージキャラクタDCの“姿勢”を制御するための着地モーションのデータである。同図に示すように、着地姿勢モーションデータ564は、着地姿勢モーションを構成するコマ毎に、コマ番号(564a)と、設定されているキャラクタの姿勢(564b)と、を対応付けて記憶している。即ち、着地姿勢モーションのコマ数であるM2コマ分のデータを格納している。
<処理の流れ>
図25は、第2実施形態におけるやられ動作に関わる処理の流れを説明するためのフローチャートである。この処理は、被ダメージキャラクタ制御部220Bが記憶部40の被ダメージキャラクタ制御プログラム420Bを実行することで実現される。
同図によれば、先ず、やられ動作制御部230Bが被ダメージキャラクタDCのやられ動作を制御する。即ち、フレーム数算出部232が、受けた攻撃の種類に応じて攻撃ベクトルを算出し、この攻撃ベクトルF及び被ダメージキャラクタDCの体重Wに基づいて初速度ベクトルV0を設定する(ステップS31)。次いで、被ダメージキャラクタDCの現在位置を攻撃位置P0とし、算出した初速度ベクトルV0をこの攻撃位置P0において与えた場合に被ダメージキャラクタDCが取り得るゲーム空間での軌道を算出する(ステップS32)。
フレーム数算出部232は、続いて、ステージデータ52を参照して戦闘を行っている場所の地形を判断し、判断した地形と算出した軌道との交点を求めることで着地位置Pfを算出する(ステップS33)。そして、攻撃位置P0から着地位置Pfまでのこの軌道に沿って移動するのに要する時間(滞空時間Tf)を算出するとともに、この滞空時間Tfに相当する滞空フレーム数Tfを算出する(ステップS34)。
次いで、転回数算出部238が、算出された滞空フレーム数Nfに基づき、式(5a)、(5b)に従って転回フレーム数N1及び着地フレーム数N2を算出する。即ち、着地フレーム数N2を着地姿勢モーションのコマ数M2と等しい数とし、転回フレーム数N1を、滞空フレーム数Nfからこの着地フレーム数N2を引いた数とする(ステップS35)。
そして、転回数算出部238は、算出した転回フレーム数N1及び転回姿勢モーションのコマ数M1に基づいて転回数Rを算出する。即ち、転回フレーム数N1を転回姿勢モーションのコマ数M1で除算する。割り切れない場合には、除算結果の小数点以下第1位を四捨五入(或いは、切り上げ/切り捨て)した値(自然数)を転回数Rとする(ステップS36)。
続いて、空中姿勢制御部236Bが、算出された転回数Rに等しい数の転回姿勢モーションを繋げて一連のデータとすることで、転回適用姿勢モーションを生成する(ステップS37)。
その後、算出した転回フレーム数N1に相当するN1フレームの間、フレーム毎にループBの処理が実行される。
ループBでは、空中移動制御部234が、被ダメージキャラクタDCの次フレームでの位置Pを算出する(ステップS38)。また、空中姿勢制御部236Bが、転回適用姿勢モーションデータ68に基づく補間演算を行って、次フレームでの被ダメージキャラクタDCの姿勢を算出する(ステップS39)。
次いで、空中移動制御部234が、算出した位置Pに被ダメージキャラクタDCを配置し、また、空中姿勢制御部236Bが、配置された被ダメージキャラクタDCの姿勢を算出した姿勢となるように制御する(ステップS40)。その後、画像生成部32が、ゲーム空間に設定されている仮想カメラCMに基づく画像を生成して画像表示部72に表示させる(ステップS41)。そして、ループBが終了する。
ループBが終了すると、続いて、着地フレーム数N2に相当するN2フレームの間、フレーム毎にループCの処理が実行される。
ループCでは、空中移動制御部234が、被ダメージキャラクタDCの次フレームでの位置Pを算出する(ステップS42)。また、空中姿勢制御部236Bが、着地姿勢モーションデータ564に基づいて、次フレームでの被ダメージキャラクタDCの姿勢を算出する(ステップS43)。
次いで、空中移動制御部234が、算出した位置Pに被ダメージキャラクタDCを配置し、また、空中姿勢制御部236Bが、配置された被ダメージキャラクタDCの姿勢を算出した姿勢となるように制御する(ステップS44)。その後、画像生成部32が、ゲーム空間に設定されている仮想カメラCMに基づく画像を生成して画像表示部72に表示させる(ステップS45)。そして、ループCが終了する。
ループCが終了すると、続いて、復帰動作制御部240が、復帰モーションデータ58に基づいて被ダメージキャラクタDCの復帰動作を制御する(ステップS46)。そして、復帰動作の制御が終了すると、本処理は終了となる。
<作用・効果>
以上のように、第2実施形態では、戦闘シーンにおける「やられ動作」の制御が次のように行われる。即ち、第1実施形態と同様に滞空フレーム数Nfが算出される。次いで、滞空フレーム数Tfから成る滞空フレームの内、転回動作をさせる転回フレームの数(転回フレーム数)N1と、着地動作をさせる着地フレームの数(着地フレーム数)N2とが決定され、更に、転回動作において被ダメージキャラクタDCを転回させる回数(転回数)Rが算出される。そして、N1フレームから成る転回フレームに、転回数Rの数だけ転回姿勢モーションを繋げた転回適用姿勢モーションが適用されるとともに、N2フレームから成る着地フレームに着地姿勢フレームが適用されることで、被ダメージキャラクタDCの“姿勢”が制御される。
従って、被ダメージキャラクタDCを、受けたダメージ、即ち空中軌道ARや滞空時間Tf等に関わらず、常に同一の姿勢(ここでは、仰向け姿勢)で着地させることができる。つまり、やられ動作の終了時点での姿勢、即ち着地姿勢が常に同一の姿勢であるため、やられ動作に続いて行われる「復帰動作」を制御するためのモーションが1つで済む。この結果、「やられ動作」及びこれに付随する動作の表現に要するデータ量を削減できる。
また、受けた攻撃ベクトルFに基づいて空中軌道AR及び滞空時間Tfが算出されるので、例えば多くのダメージを受ける程、より高くより遠くまで飛ばされるといった、ダメージに応じた「やられ動作」を、データ量を増加させることなく表現可能となる。更に、空中を移動させる途中、滞空時間Tfに応じた転回数Rで回転させることで、「やられ動作」の表現に多様性を持たせることが可能となる。
[変形例]
尚、本発明の適用は、上述した実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
(A)空中での姿勢の変化速度を一定とする
上述した実施形態では、設定した初速度ベクトルV0に基づいて滞空時間Tfを算出し、算出した滞空時間Tfに相当するNfフレームから成る滞空フレームに空中姿勢モーションを適用することで、被ダメージキャラクタDCの着地時の姿勢(着地姿勢)を常に一定の姿勢(仰向け姿勢)としている。即ち、空中姿勢の変化速度を可変しているが、これを一定とし、滞空時間Tfを可変することで着地時の姿勢を常に一定の姿勢にすることとしても良い。
具体的には、例えば第2実施形態において、転回フレーム数N1を、次式(7)に従った転回フレーム数N1´に変更する。
N1´=M1×R ・・・(7)
即ち、転回フレーム数N1を、転回姿勢モーションのコマ数M1の倍数に変更する。
そして、転回フレーム数N1´のフレームに転回適用姿勢モーションを適用する。従って、転回フレームの各フレームF(1)〜F(N1´)と、転回適用姿勢モーションの各コマ(#1)〜(#NR)とが1対1で対応することになる。このため、転回動作における被ダメージキャラクタDCの姿勢の変化速度は、常に一定となる。
このとき、被ダメージキャラクタDCの“移動”は、次のように制御する。
(A−1)空中軌道ARを変化させない
例えば、変更前の転回フレーム数N1で移動させた場合の各フレーム(フレームF(1)〜F(N1))での被ダメージキャラクタDCの位置Pを補間することで、変更後の転回フレーム数N1´で移動させた場合の各フレーム(フレームF(1)〜F(N1´))での位置P´を算出する。この場合、空中軌道ARは変化することなく、被ダメージキャラクタDCの“移動”の速度が変化することになる。
(A−2)空中軌道ARを変化させる
或いは、次式(8)に従って、変更後の滞空フレーム数Nf´を算出する。
Nf´=N1´+N2 ・・・(8)
次いで、次式(9)に従って、変更後の滞空フレーム数Nf´に相当する滞空時間Tf´を算出する。
Tf´=Nf´/FN ・・・(9)
但し、FNは1秒当たりの描画フレーム数である。
続いて、放物線を描いて攻撃位置P0及び着地位置Pfを通る軌道であり、且つ、該軌道に沿って攻撃位置P0から着地位置Pfまで移動するのに要する時間が滞空時間Tf´となる軌道を算出する。そして、この軌道の内、攻撃位置P0から着地位置Pfに至る部分を新たな空中軌道ARとし、この空中軌道ARに沿うように被ダメージキャラクタDCを“移動”させる。
(B)「やられ動作」の最中に、再度ダメージを受けた場合
また、上述した実施形態は、「やられ動作」の最中、即ち空中を移動中の被ダメージキャラクタDCが、再度、ダメージを受けた場合にも適用可能である。その場合には、図26に示すように、被ダメージキャラクタDCが、再度ダメージを受けた位置Pdを新たな攻撃位置P0´として、同様に、該ダメージに応じた初速度ベクトルV0´を再設定する。そして、この再設定した初速度ベクトルV0´に基づいて空中軌道AR´及び滞空フレーム数Nf´を再算出し、以降は、これに基づいて被ダメージキャラクタDCの“移動”及び“姿勢“を制御する。
(C)被ダメージキャラクタDC
また、上述した実施形態では、2人のキャラクタCA,CBが戦闘を行う場合を説明したが、直接交戦している場合に限らず、例えば遠く離れているキャラクタから銃等によって攻撃(銃撃)された場合や、地中に埋められている地雷を踏んだ場合等、何らかの外的ダメージを受けたキャラクタについても同様に適用可能である。また、被ダメージキャラクタDCは、人間等のキャラクタに限らず、自動車や飛行機等のオブジェクトにも同様に適用可能である。この場合、例えば2台の飛行機が衝突(空中衝突)するような場合にも適用可能である。
(D)適用するゲーム装置
また、上述した実施形態では、本発明を家庭用ゲーム装置に適用した場合について説明したが、図1に示した家庭用ゲーム装置1000のみではなく、業務用ゲーム装置や携帯型ゲーム装置、多数のプレーヤが参加する大型アトラクション装置等の種々の装置にも同様に適用できる。
例えば、図27は、本発明を業務用ゲーム装置に適用した一例を示す外観図である。同図によれば、業務用ゲーム装置1300は、ゲーム画面を表示するディスプレイ1302と、ゲームの効果音やBGMを出力するスピーカ1304と、前後左右方向を入力するジョイスティック1306と、プッシュボタン1308と、演算処理によって業務用ゲーム装置1300を統合的に制御して所与のゲームを実行する制御ユニット1310とを備える。
制御ユニット1310は、CPU等の演算処理装置と、業務用ゲーム装置1300の制御及びゲームの実行に必要なプログラムやデータが格納されたROMを搭載する。制御ユニット1310に搭載されるCPUは、ROMに記憶されたプログラムやデータを適宜読み出して演算処理することによって、ゲーム処理等の種々の処理を実行する。プレーヤは、ディスプレイ1302に表示されたゲーム画面を見て、スピーカ1304から出力されるゲーム音声を聞きながら、ジョイスティック1306やプッシュボタン1308を操作してゲームを楽しむ。
本発明を適用した家庭用ゲーム装置の外観図。 戦闘モードでのゲーム空間の概略図。 初速度ベクトルV0の設定を説明する図。 空中軌道の算出を説明する図。 「やられ動作」における“位置”の制御を説明する図。 第1実施形態における空中姿勢モーションの一例。 空中姿勢モーションの適用例。 第1実施形態における「やられ動作」の一例。 第1実施形態の機能構成図。 フレーム数算出データのデータ構成例。 空中軌道データのデータ構成例。 キャラクタデータのデータ構成例。 第1実施形での空中姿勢モーションデータのデータ構成例。 第1実施形態でのやられ動作に関する処理の流れを示すフローチャート。 家庭用ゲーム装置のハードウェア構成例。 第2実施形態における空中姿勢モーションの一例。 転回フレーム及び着地フレームを説明する図。 転回適用姿勢モーションの生成を説明する図。 転回適用姿勢モーションの適用例。 第2実施形態における「やられ動作」の一例。 第2実施形態の機能構成図。 転回数算出データのデータ構成例。 転回適用姿勢モーションデータのデータ構成例。 空中姿勢モーションデータのデータ構成例。 第2実施形態でのやられ動作に関する処理の流れを示すフローチャート。 「やられ動作」の最中に再度ダメージを受けた場合を説明する図。 本発明を適用した業務用ゲーム装置に適用した場合の外観例。
符号の説明
1000 家庭用ゲーム装置
10 操作入力部
20 処理部
22 ゲーム演算部
220A、220B 被ダメージキャラクタ制御部
230A、230B やられ動作制御部
232 フレーム数算出部
234 空中移動制御部
236A、236B 空中姿勢制御部
238 転回数算出部
240 復帰動作制御部
32 画像生成部
34 音生成部
40 記憶部
42 ゲームプログラム
420A、420B 被ダメージキャラクタ制御プログラム
430A、430B やられ動作制御プログラム
432 フレーム数算出プログラム
434 空中移動制御プログラム
436A、436B 空中姿勢制御プログラム
438 転回数算出プログラム
440 復帰動作制御プログラム
52 ステージデータ
54 キャラクタデータ
56A、56B 空中姿勢モーションデータ
562 転回姿勢モーションデータ
664 着地姿勢モーションデータ
58 復帰モーションデータ
62 フレーム数算出データ
64 空中軌道データ
66 転回数算出データ
68 転回適用姿勢モーションデータ
72 画像表示部
74 音出力部
DC 被ダメージキャラクタ
AR 空中軌道

Claims (6)

  1. コンピュータに、所定方向への重力を有するゲーム空間を設定させ、ゲーム進行中に所与のダメージを受けた被ダメージキャラクタを前記ゲーム空間中に浮かせて落下させた後、復帰姿勢に変位させる制御を行わせるためのプログラムであって、
    前記被ダメージキャラクタが受けたダメージに応じて空中軌道及び滞空時間を算出する算出手段、
    前記被ダメージキャラクタを、前記算出された空中軌道に沿って前記算出された滞空時間をかけて空中を移動させる制御を行う空中移動制御手段、
    基準姿勢から転回してこの基準姿勢に戻る転回モーションと、前記基準姿勢から着地姿勢に至る着地モーションとを用いて、前記空中移動制御手段による移動制御中の前記被ダメージキャラクタの空中姿勢を変化させる制御を行う空中姿勢制御手段、
    前記空中移動制御手段による移動制御によって前記被ダメージキャラクタが着地した後、前記被ダメージキャラクタを前記復帰姿勢に変位させる制御を行う復帰制御手段、
    として前記コンピュータを機能させるとともに、
    前記空中姿勢制御手段が、
    前記滞空時間に基づいて前記被ダメージキャラクタを転回させる回数を決定する転回数決定手段と、
    前記転回モーションに基づいて前記被ダメージキャラクタを前記決定された転回数分転回させる制御を行うとともに、前記空中移動制御手段の移動制御による着地時の姿勢が前記着地モーションの前記着地姿勢となるように前記被ダメージキャラクタの転回速度を可変する制御を行う転回姿勢制御手段、
    前記転回姿勢制御手段による転回制御の後、前記着地モーションに基づいて前記被ダメージキャラクタを前記基準姿勢から前記着地姿勢に変化させる制御を行う着地姿勢制御手段と、
    を有するように前記コンピュータを機能させるためのプログラム。
  2. 前記転回数決定手段が、前記滞空時間から前記着地姿勢制御手段による着地姿勢の変化制御に要する時間を除いた転回時間に基づいて、前記被ダメージキャラクタを転回させる回数を決定する、
    ように前記コンピュータを機能させるための請求項1に記載のプログラム。
  3. コンピュータに、所定方向への重力を有するゲーム空間を設定させ、ゲーム進行中に所与のダメージを受けた被ダメージキャラクタを前記ゲーム空間中に浮かせて落下させた後、復帰姿勢に変位させる制御を行わせるためのプログラムであって、
    前記被ダメージキャラクタが受けたダメージに応じて空中軌道及び滞空時間を算出する算出手段、
    前記被ダメージキャラクタを、前記算出された空中軌道に沿って前記算出された滞空時間をかけて空中を移動させる制御を行う空中移動制御手段、
    基準姿勢から転回してこの基準姿勢に戻る転回モーションと、前記基準姿勢から着地姿勢に至る着地モーションとを用いて、前記空中移動制御手段による移動制御中の前記被ダメージキャラクタの空中姿勢を所定の姿勢変化速度で変化させる制御を行う空中姿勢制御手段、
    前記空中移動制御手段による移動制御によって前記被ダメージキャラクタが着地した後、前記被ダメージキャラクタを前記復帰姿勢に変位させる制御を行う復帰制御手段、
    として前記コンピュータを機能させるとともに、
    前記空中姿勢制御手段が、
    前記滞空時間に基づいて前記被ダメージキャラクタを転回させる回数を決定する転回数決定手段と、
    前記転回モーションに基づいて、前記被ダメージキャラクタを、前記所定の姿勢変化速度で前記決定された回数分転回させる転回姿勢制御手段と、
    前記転回姿勢制御手段による転回制御の後、前記着地モーションに基づいて前記被ダメージキャラクタを前記基準姿勢から前記着地姿勢に変化させる制御を行う着地姿勢制御手段と、
    を有するように前記コンピュータを機能させ、
    更に、
    前記算出手段により算出された空中軌道及び滞空時間を基準として、前記空中姿勢制御手段が前記被ダメージキャラクタを前記姿勢変化速度で姿勢変化制御したときの着地時の姿勢が前記着地モーションの前記着地姿勢とならない場合に、当該着地姿勢となるように前記算出された空中軌道及び/又は滞空時間を補正する補正手段、
    として前記コンピュータを機能させるためのプログラム。
  4. 請求項1〜の何れか一項に記載のプログラムを記憶したコンピュータ読み取り可能な情報記憶媒体。
  5. 所定方向への重力を有するゲーム空間を設定させ、ゲーム進行中に所与のダメージを受けた被ダメージキャラクタを前記ゲーム空間中に浮かせて落下させた後、復帰姿勢に変位させる制御を行うゲーム装置であって、
    前記被ダメージキャラクタが受けたダメージに応じて空中軌道及び滞空時間を算出する算出手段と、
    前記被ダメージキャラクタを、前記算出された空中軌道に沿って前記算出された滞空時間をかけて空中を移動させる制御を行う空中移動制御手段と、
    基準姿勢から転回してこの基準姿勢に戻る転回モーションと、前記基準姿勢から着地姿勢に至る着地モーションとを用いて、前記空中移動制御手段による移動制御中の前記被ダメージキャラクタの空中姿勢を変化させる制御を行う空中姿勢制御手段と、
    前記空中移動制御手段による移動制御によって前記被ダメージキャラクタが着地した後、前記被ダメージキャラクタを前記復帰姿勢に変位させる制御を行う復帰制御手段と、
    を備え、
    前記空中姿勢制御手段が、
    前記滞空時間に基づいて前記被ダメージキャラクタを転回させる回数を決定する転回数決定手段と、
    前記転回モーションに基づいて前記被ダメージキャラクタを前記決定された転回数分転回させる制御を行うとともに、前記空中移動制御手段の移動制御による着地時の姿勢が前記着地モーションの前記着地姿勢となるように前記被ダメージキャラクタの転回速度を可変する制御を行う転回姿勢制御手段と、
    前記転回姿勢制御手段による転回制御の後、前記着地モーションに基づいて前記被ダメージキャラクタを前記基準姿勢から前記着地姿勢に変化させる制御を行う着地姿勢制御手段と、
    を有するゲーム装置。
  6. 所定方向への重力を有するゲーム空間を設定させ、ゲーム進行中に所与のダメージを受けた被ダメージキャラクタを前記ゲーム空間中に浮かせて落下させた後、復帰姿勢に変位させる制御を行うゲーム装置であって、
    前記被ダメージキャラクタが受けたダメージに応じて空中軌道及び滞空時間を算出する算出手段と、
    前記被ダメージキャラクタを、前記算出された空中軌道に沿って前記算出された滞空時間をかけて空中を移動させる制御を行う空中移動制御手段と、
    基準姿勢から転回してこの基準姿勢に戻る転回モーションと、前記基準姿勢から着地姿勢に至る着地モーションとを用いて、前記空中移動制御手段による移動制御中の前記被ダメージキャラクタの空中姿勢を所定の姿勢変化速度で変化させる制御を行う空中姿勢制御手段と、
    前記空中移動制御手段による移動制御によって前記被ダメージキャラクタが着地した後、前記被ダメージキャラクタを前記復帰姿勢に変位させる制御を行う復帰制御手段と、
    を備え、
    前記空中姿勢制御手段が、
    前記滞空時間に基づいて前記被ダメージキャラクタを転回させる回数を決定する転回数決定手段と、
    前記転回モーションに基づいて、前記被ダメージキャラクタを、前記所定の姿勢変化速度で前記決定された回数分転回させる転回姿勢制御手段と、
    前記転回姿勢制御手段による転回制御の後、前記着地モーションに基づいて前記被ダメージキャラクタを前記基準姿勢から前記着地姿勢に変化させる制御を行う着地姿勢制御手段と、
    を有し、
    更に、
    前記算出手段により算出された空中軌道及び滞空時間を基準として、前記空中姿勢制御手段が前記被ダメージキャラクタを前記姿勢変化速度で姿勢変化制御したときの着地時の姿勢が前記着地モーションの前記着地姿勢とならない場合に、当該着地姿勢となるように前記算出された空中軌道及び/又は滞空時間を補正する補正手段、
    を備えるゲーム装置。
JP2004098534A 2004-03-30 2004-03-30 プログラム、情報記憶媒体及びゲーム装置 Expired - Fee Related JP4343000B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004098534A JP4343000B2 (ja) 2004-03-30 2004-03-30 プログラム、情報記憶媒体及びゲーム装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004098534A JP4343000B2 (ja) 2004-03-30 2004-03-30 プログラム、情報記憶媒体及びゲーム装置

Publications (2)

Publication Number Publication Date
JP2005278957A JP2005278957A (ja) 2005-10-13
JP4343000B2 true JP4343000B2 (ja) 2009-10-14

Family

ID=35177977

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004098534A Expired - Fee Related JP4343000B2 (ja) 2004-03-30 2004-03-30 プログラム、情報記憶媒体及びゲーム装置

Country Status (1)

Country Link
JP (1) JP4343000B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4580742B2 (ja) * 2004-11-30 2010-11-17 任天堂株式会社 ゲームプログラムおよびゲーム装置
JP2008119224A (ja) * 2006-11-10 2008-05-29 Namco Bandai Games Inc プログラム、情報記憶媒体及びゲーム装置
JP2009207625A (ja) * 2008-03-03 2009-09-17 Namco Bandai Games Inc プログラム、情報記憶媒体、及び画像生成システム
CN107019915B (zh) * 2016-02-01 2018-09-07 腾讯科技(深圳)有限公司 一种确定移动轨迹的方法、用户设备及***
JP6427160B2 (ja) * 2016-12-12 2018-11-21 株式会社カプコン ゲームプログラム及びゲームシステム

Also Published As

Publication number Publication date
JP2005278957A (ja) 2005-10-13

Similar Documents

Publication Publication Date Title
JP3871224B2 (ja) 画像生成装置、画像生成方法及びこれを用いたゲーム機並びに媒体
JP3239683B2 (ja) 画像処理装置および画像処理方法
US20100069152A1 (en) Method of generating image using virtual camera, storage medium, and computer device
US6532015B1 (en) Image generation system and program
JP4794343B2 (ja) 画像生成システム、プログラム及び情報記憶媒体
US20100245365A1 (en) Image generation system, image generation method, and computer program product
JP2003334382A (ja) ゲーム装置、画像処理装置及び画像処理方法
JP4776831B2 (ja) プログラム、情報記憶媒体、ゲーム装置及びホスト装置
KR20090096324A (ko) 게임 프로그램, 게임 장치 및 게임 제어 방법
JP7426462B2 (ja) プログラム、ゲーム装置、サーバ装置及びゲームシステム
JP2006268676A (ja) プログラム、情報記憶媒体、及び画像生成システム
KR100281837B1 (ko) 화상 처리 장치 및 이를 구비한 게임 장치
JP2012101025A (ja) プログラム、情報記憶媒体、ゲーム装置及びサーバシステム
JP3894937B2 (ja) プログラム、情報記憶媒体及びゲーム装置
JP4343000B2 (ja) プログラム、情報記憶媒体及びゲーム装置
JP2010233752A (ja) プログラム、情報記憶媒体及び画像生成システム
JP2001006000A (ja) 画像生成システム及び情報記憶媒体
JP4097236B2 (ja) 画像生成装置及び情報記憶媒体
JP4292483B2 (ja) コンピュータプログラム
JP4117687B2 (ja) 画像処理装置
JP5957258B2 (ja) プログラム、情報記憶媒体、ゲーム装置、およびサーバシステム
JP4251589B2 (ja) 画像生成システム及び情報記憶媒体
JP2001005990A (ja) 画像生成システム及び情報記憶媒体
JP6905568B2 (ja) ゲームプログラム、ゲーム処理方法及び情報処理装置
JP2009045273A (ja) プログラム、情報記憶媒体、およびゲームシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070322

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070406

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070406

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090515

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090707

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090708

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4343000

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120717

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130717

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees