ゲーム装置、このゲーム装置を実現するためのプログラム、および、このプログラムを記録した記録媒体
【課題】プレイヤキャラクタが攻撃を受けたときに、三次元の仮想ゲーム空間における攻撃方向をプレイヤが直感的に判断できるように表示するゲーム装置を提供する。
【解決手段】三次元の仮想ゲーム空間内において、プレイヤキャラクタPCと、このプレイヤキャラクタPCを攻撃する敵キャラクタとを活動させるゲーム装置において、ゲーム空間内におけるプレイヤキャラクタPCの位置を示すプレイヤ位置情報と敵キャラクタの位置を示す敵位置情報とに基づいて、プレイヤキャラクタPCが敵キャラクタから受けた攻撃の方向を取得し、プレイヤキャラクタPCの周囲に設定された所定の領域における攻撃の方向に対応した位置に、攻撃の方向を示すオブジェクトであるダメージマークDMT1,DMT2,DMCを生成し、プレイヤキャラクタPC及びダメージマークを含む、ゲーム空間の少なくとも一部を表示させるようにした。
【解決手段】三次元の仮想ゲーム空間内において、プレイヤキャラクタPCと、このプレイヤキャラクタPCを攻撃する敵キャラクタとを活動させるゲーム装置において、ゲーム空間内におけるプレイヤキャラクタPCの位置を示すプレイヤ位置情報と敵キャラクタの位置を示す敵位置情報とに基づいて、プレイヤキャラクタPCが敵キャラクタから受けた攻撃の方向を取得し、プレイヤキャラクタPCの周囲に設定された所定の領域における攻撃の方向に対応した位置に、攻撃の方向を示すオブジェクトであるダメージマークDMT1,DMT2,DMCを生成し、プレイヤキャラクタPC及びダメージマークを含む、ゲーム空間の少なくとも一部を表示させるようにした。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、敵キャラクタからの攻撃方向が直感的に判るように表示されるゲーム装置、このゲーム装置を実現するためのプログラム、および、このプログラムを記録した記録媒体に関する。
【背景技術】
【0002】
従来、プレイヤが所定のキャラクタ(例えば、戦闘員、戦闘機、戦車など)を操作し、銃弾やミサイル、レーザなどの武器を用いて、敵であるキャラクタを攻撃するシューティングゲームが開発されている。以下では、プレイヤが操作するキャラクタを「プレイヤキャラクタ」といい、敵であるキャラクタを「敵キャラクタ」という。
【0003】
一般的に、シューティングゲームでは、プレイヤがプレイヤキャラクタに敵キャラクタを攻撃させ、敵キャラクタに攻撃を与える(例えば、銃弾やミサイルが直撃するなど)と、得点が加算される。一方、プレイヤキャラクタが敵キャラクタから攻撃を受けると、プレイヤキャラクタはダメージを受け、当該プレイヤキャラクタに予め設定される体力値が減少する。受けたダメージの蓄積量が所定の値を超え、プレイヤキャラクタの体力値がゼロになると、ゲームが終了となる。したがって、プレイヤは、敵キャラクタの攻撃を受けないようにしつつ敵キャラクタに攻撃を与えるように、プレイヤキャラクタを操作する必要がある。
【0004】
しかし、表示画面には仮想ゲーム空間の一部しか表示されないので、プレイヤは、表示画面に表示されない位置に存在する敵キャラクタに気付くことができない。プレイヤは、表示画面上に表示されない敵キャラクタから攻撃を受けても避けることができず、また、存在することに気付かない敵キャラクタを攻撃することもできない。このプレイヤの不利な状況を改善するために、表示画面上に表示されない敵キャラクタの位置をプレイヤに知らせる機能を設けたシューティングゲームが開発されている(例えば、特許文献1)。
【0005】
例えば、敵キャラクタの位置を表示するレーダを表示画面上に表示するゲームがある。このレーダでは、例えば上空からプレイヤキャラクタを中心として仮想ゲーム空間を見た場合の敵キャラクタの位置が表示されており、プレイヤはプレイヤキャラクタに対する敵キャラクタの相対的な位置や方向を知ることができる。また、敵キャラクタが移動することにより表示画面上から外れた場合に、表示画面上の当該敵キャラクタが存在する方向に対応する位置に当該方向を示すマーカを表示するゲームがある。プレイヤは当該マーカにより敵キャラクタの存在する方向を把握することができる。
【0006】
しかしながら、仮想ゲーム空間上に敵キャラクタが多数存在する場合、前者においてはレーダに多数の敵キャラクタの位置が表示されることになり、後者においては表示画面上に多数のマーカが表示されることになる。この場合、多数のマーカ表示などによりゲーム画面が見づらくなるとともに、常に全ての敵キャラクタから同時に攻撃を受けるとは限らず、プレイヤはどの敵キャラクタからの攻撃を避けるべきかの判断に迷うことにもなるので、表示画面上に全ての敵キャラクタの位置をプレイヤに知らせることは必ずしも好ましいとは言えない。
【0007】
仮想ゲーム空間上に敵キャラクタが多数存在する場合、プレイヤには、必ずしも全ての敵キャラクタの位置を知らせる必要はなく、攻撃してきた敵キャラクタの位置だけをプレイヤに知らせる方がゲーム画面の煩雑化を防止でき、プレイヤにとっても攻撃をしてきた敵キャラクタに対する対処に集中できるので、好ましい。すなわち、プレイヤは、敵キャラクタから攻撃を受けた場合に、当該敵キャラクタからの次の攻撃をかわすか、当該敵キャラクタを攻撃すればよいので、プレイヤキャラクタを操作し易くなる。そこで、プレイヤキャラクタが敵キャラクタから攻撃を受けた場合に、当該敵キャラクタからの攻撃の方向(以下、「攻撃方向」と記載する。)を示すダメージマークが表示されるシューティングゲームが開発されている。
【0008】
図13は、敵キャラクタから攻撃を受けた場合に、攻撃方向を示すダメージマークが表示される従来のシューティングゲームを説明するための図である。同図は当該ゲームの1場面の表示画像を示しており、三次元の仮想ゲーム空間におけるプレイヤキャラクタの視点から見た画像が表示されている。
【0009】
図13に示す画像には、マシンガンGUN、敵キャラクタEC、ダメージマークDMが表示されている。マシンガンGUNは、プレイヤキャラクタが構えるマシンガンであり、その照準部分が表示されている。敵キャラクタECは、プレイヤキャラクタを攻撃するキャラクタである。ダメージマークDMは、プレイヤキャラクタが攻撃を受けたときに表示される円弧形状のマークであり、表示される方向や位置によって攻撃方向を示すものである。このダメージマークDMは、画面中央の1点を中心として形成される円上を表示領域とし、その形状がこの円を4分割した形である。このダメージマークDMは、上記1点を中心に上下左右の4つの位置に回転移動して表示可能である。図13では、上側の位置に上向きにダメージマークDMが表示されている。これら4つのダメージマークDMの表示位置は、仮想ゲーム空間におけるプレイヤキャラクタを中心にその正面方向に対する前方領域、右側領域、左側領域、後方領域の4つの領域に対応している。すなわち、プレイヤキャラクタを中心に水平方向に円を描き、その円をプレイヤキャラクタの正面方向を基準に4分割してできる4つの領域を、ダメージマークDMの4つの表示位置及び4種類の円弧の向き(上の位置及び向き、右の位置及び向き、左の位置及び向きおよび下の位置及び向き)に対応させるようにしている。
【0010】
従って、プレイヤキャラクタが前方向から攻撃を受けた場合、ダメージマークDMは上の位置及び向きの円弧形状となり、右方向から攻撃を受けた場合ダメージマークDMは右の位置及び向きの円弧形状となる。また、プレイヤキャラクタが左方向から攻撃を受けた場合、ダメージマークDMは左の位置及び向きの円弧形状となり、後方向から攻撃を受けた場合ダメージマークDMは下の位置及び向きの円弧形状となる。
【0011】
図13に示す画像はプレイヤキャラクタが前方向にいる敵キャラクタEC(すなわち、敵キャラクタECが存在する領域は前方領域)から攻撃を受けた状態の画像なので、上の位置に上側を向いたダメージマークDMが表示されている。なお、同図に示す画像では敵キャラクタECも表示されているが、敵キャラクタECが画像内に表示されない場合でも、プレイヤキャラクタが攻撃を受けた場合は、ダメージマークDMが表示される。
【0012】
従って、プレイヤは、ダメージマークDMが表示されることで攻撃を受けたことを知ることができ、かつ、ダメージマークDMの表示位置と向きとによって、攻撃方向を判断することができるので、ダメージマークDMを見ながら効率よく、攻撃をしてきた敵キャラクタECの次の攻撃をかわしたり、当該敵キャラクタECを攻撃したりすることができる。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】特開平11−70274号公報
【発明の概要】
【発明が解決しようとする課題】
【0014】
上述したように、ダメージマークDMの表示領域は、画面中央の1点を中心として形成される円上(鉛直面上の円)である。このため、プレイヤは、ダメージマークDMの示す攻撃方向が、仮想ゲーム空間においてプレイヤキャラクタから見て何れの方向にあたるのかを変換して考えなければならず、直感的に攻撃方向を把握することが難しかった。
【0015】
また、図13に示す敵キャラクタECからの攻撃方向の表示方法は、仮想ゲーム空間におけるプレイヤキャラクタを中心に水平方向に円を描き、その円をプレイヤキャラクタの正面方向を基準に4分割してできる4つの領域(4つの方向)を、ダメージマークDMの表示位置及び向きで表示する方法である。この様に、従来の方法では、水平方向の攻撃方向が鉛直面上の向きで表示されており、ゲーム展開を示す画像(プレイヤキャラクタの視点から見た画像)と敵キャラクタECからの攻撃方向を示す画像(ダメージマークDM)が同一の方向を見た画面内の画像ではないので、プレイヤはダメージマークDMによって敵キャラクタECの攻撃方向を直感的に判断することは難しい。
【0016】
また、ダメージマークDMはプレイヤキャラクタを頭上の位置から見たときの攻撃の方向を二次元的に示しているので、ゲーム画像における攻撃の上下(高さ)方向を示すことができない。ゲーム空間のフィールドに高低差があり敵キャラクタECが上記の4つの領域のうちのいずれかの領域内で高い位置から攻撃してきた場合でも低い位置から攻撃してきた場合でも、両者のダメージマークDMの表示は同じものとなる。したがって、プレイヤは三次元の仮想ゲーム空間における上下の攻撃方向を判断することができず、敵キャラクタからの次の攻撃をかわしたり、反撃したりするのが難しいという問題があった。
【0017】
本発明は上記した事情のもとで考え出されたものであって、プレイヤキャラクタが攻撃を受けたときに、三次元の仮想ゲーム空間における攻撃方向をプレイヤが直感的に判断できるようにダメージマークを表示するゲーム装置を提供することをその目的としている。
【課題を解決するための手段】
【0018】
上記課題を解決するため、本発明では、次の技術的手段を講じている。
【0019】
本発明の第1の側面によって提供されるプログラムは、コンピュータを、三次元の仮想ゲーム空間内において、プレイヤが操作するプレイヤキャラクタと、このプレイヤキャラクタを攻撃する敵キャラクタとを活動させるゲーム装置として機能させるためのプログラムであって、前記コンピュータを、前記仮想ゲーム空間内における前記プレイヤキャラクタの位置を示すプレイヤ位置情報を取得するプレイヤ位置情報取得手段と、前記仮想ゲーム空間内における前記敵キャラクタの位置を示す敵位置情報を取得する敵位置情報取得手段と、前記プレイヤ位置情報と前記敵位置情報とに基づいて、前記プレイヤキャラクタが前記敵キャラクタから受けた攻撃の方向を取得する攻撃方向取得手段と、前記プレイヤキャラクタが前記敵キャラクタから攻撃を受けた際に、前記プレイヤキャラクタの周囲に設定された所定の領域における前記攻撃の方向に対応した位置に、前記攻撃の方向を示すオブジェクトであるダメージマークを生成するダメージマーク生成手段と、前記プレイヤキャラクタ及び前記ダメージマークを含む、前記三次元の仮想ゲーム空間の少なくとも一部を表示させる表示制御手段と、して機能させる。
【0020】
本発明の好ましい実施の形態においては、前記所定の領域は、前記三次元の仮想ゲーム空間を上方から見たときに前記プレイヤキャラクタの基準点を中心とした円状に設定されている。
【0021】
本発明の好ましい実施の形態においては、前記コンピュータを、前記プレイヤ位置情報における高さ情報と前記敵位置情報における高さ情報とから、攻撃の方向の高さ情報である攻撃方向高さ情報を算出する算出手段として更に機能させ、前記ダメージマーク生成手段は、前記算出手段によって算出された前記攻撃方向高さ情報に基づいて、前記ダメージマークを生成する。
【0022】
本発明の好ましい実施の形態においては、前記敵位置情報取得手段は、前記仮想ゲーム空間内における前記敵キャラクタが攻撃を発した位置である攻撃発動位置を示す攻撃発動位置情報を前記敵位置情報として取得し、前記プレイヤ位置情報取得手段は、前記仮想ゲーム空間内における前記プレイヤキャラクタが攻撃を受けた位置である攻撃到達位置を示す攻撃到達位置情報を前記プレイヤ位置情報として取得する。
【0023】
本発明の好ましい実施の形態においては、前記攻撃方向高さ情報は、前記攻撃到達位置と前記攻撃発動位置を通る直線の水平面に対する角度、又は前記直線と重力方向に延びる直線との間の角度で表される。
【0024】
本発明の好ましい実施の形態においては、前記ダメージマーク生成手段は、前記攻撃方向高さ情報に応じて、前記ダメージマークを傾けて生成する。
【0025】
本発明の好ましい実施の形態においては、前記ダメージマーク生成手段は、前記攻撃方向高さ情報に応じた高さに、前記ダメージマークを生成する。
【0026】
本発明の好ましい実施の形態においては、前記ダメージマーク生成手段は、複数種類の前記ダメージマークを生成する。
【0027】
本発明の好ましい実施の形態においては、前記複数種類のダメージマークは、前記攻撃の方向を指し示す第1のマークと、この第1のマークより広い範囲で前記攻撃の方向を指し示す第2のマークを含む。
【0028】
本発明の好ましい実施の形態においては、前記ダメージマーク生成手段は、前記第1のマーク及び第2のマークを所定時間だけ前記仮想ゲーム空間に配置した後に消去し、前記第1のマークの前記所定時間と前記第2のマークの前記所定時間とは異なっている。
【0029】
本発明の好ましい実施の形態においては、前記ダメージマーク生成手段は、前記第1のマーク及び第2のマークをそれぞれ所定個数のみ配置し、前記所定個数は、前記第2のマークより前記第1のマークの方が多い。
【0030】
本発明の好ましい実施の形態においては、前記第1のマーク及び第2のマークは、前記攻撃の方向を指し示す部位である指示部を有する形状であり、前記ダメージマーク生成手段は、前記第2のマークの前記指示部の中心を、最も新しく生成された第1のマークの指示部と重ねて配置する。
【0031】
本発明の好ましい実施の形態においては、記ダメージマークは、円錐形状であり、当該円錐の高さ方向が攻撃の方向であり、当該円錐の頂点がプレイヤキャラクタの方を向いている。
【0032】
本発明の好ましい実施の形態においては、前記ダメージマークは、前記プレイヤキャラクタ位置を中心とする円の攻撃方向の部分である円弧形状である。
【0033】
本発明の好ましい実施の形態においては、前記ダメージマーク生成手段は、前記プレイヤキャラクタが攻撃を受けたときから所定時間のみ前記ダメージマークを配置する。
【0034】
本発明の好ましい実施の形態においては、前記ダメージマーク生成手段は、所定個数のみ前記ダメージマークを配置し、新たにダメージマークを生成する際に、前記ダメージマークが所定個数を超える場合には、最先に生成された前記ダメージマークを消去する。
【0035】
本発明の好ましい実施の形態においては、前記ダメージマーク生成手段は、前記プレイヤキャラクタと攻撃を行なった前記敵キャラクタとの距離に応じて、前記ダメージマークの態様を変化させる。
【0036】
本発明の好ましい実施の形態においては、前記所定の領域は、前記プレイヤキャラクタの基準点を中心とした球状に設定されている。
【0037】
本発明の第2の側面によって提供される記録媒体は、本発明の第1の側面によって適用されるプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0038】
本発明の第3の側面によって提供されるゲーム装置は、本発明の第1の側面によって適用されるプログラムを実行するゲーム装置である。
【発明の効果】
【0039】
本発明によれば、プレイヤキャラクタが攻撃を受けたときに、プレイヤ位置情報と敵位置情報とに基づいて攻撃の方向が取得され、当該攻撃の方向を示すオブジェクトであるダメージマークが生成されて表示される。当該ダメージマークはプレイヤキャラクタの周囲に設定された所定の領域における攻撃の方向に対応した位置に表示されるので、プレイヤは、三次元の仮想ゲーム空間における攻撃方向を直感的に判断することができる。
【0040】
本発明のその他の特徴および利点は、添付図面を参照して以下に行う詳細な説明によって、より明らかとなろう。
【図面の簡単な説明】
【0041】
【図1】本実施形態に係るシューティングゲームの1場面の表示画像である。
【図2】三次元の仮想ゲーム空間に設定されたワールド座標系を説明するための図である。
【図3】プレイヤキャラクタ位置座標Pと、円弧ダメージマークDMCおよび三角ダメージマークDMTとの関係を説明するための図である。
【図4】仮想ゲーム空間のXZ平面における攻撃方向のZ軸に対する角度θdを算出する方法を説明する図である。
【図5】仮想ゲーム空間のXZ平面に対する攻撃方向の角度θyを算出する方法を説明する図である。
【図6】ダメージマークテーブルを説明するための図である。
【図7】本発明に係るゲーム装置を示す構成図である。
【図8】ダメージマーク処理を示すフローチャートである。
【図9】三角ダメージマーク計時処理を示すフローチャートである。
【図10】円弧ダメージマーク計時処理を示すフローチャートである。
【図11】ダメージマークテーブル更新処理を示すフローチャートである。
【図12】ダメージマーク情報送信処理を示すフローチャートである。
【図13】従来のシューティングゲームを説明するための図である。
【発明を実施するための形態】
【0042】
以下、本発明の実施の形態を、添付図面を参照して具体的に説明する。本実施形態では、シューティングゲームを家庭用ゲーム装置(以下、「ゲーム装置」とする。)において実施する場合を例にして具体的に説明する。
【0043】
本実施形態に係るシューティングゲームは、三次元の仮想ゲーム空間内において、プレイヤがプレイヤキャラクタを操作して、プレイヤキャラクタを攻撃してくる複数の敵キャラクタと戦うゲームである。プレイヤは、プレイヤキャラクタにマシンガンや手榴弾などの武器を使用させて攻撃させることで、敵キャラクタを倒すことができる。一方、敵キャラクタも、同様の武器でプレイヤキャラクタを攻撃してくる。プレイヤキャラクタが攻撃を受けると、プレイヤキャラクタはダメージを受け、当該プレイヤキャラクタに予め設定される体力値が減少する。受けたダメージの蓄積量が所定の値を超え、プレイヤキャラクタの体力値がゼロになると、ゲームが終了となる。したがって、敵キャラクタから攻撃を受けた場合、次の攻撃をかわすか、あるいは攻撃をしてきた敵キャラクタに反撃するように、プレイヤはプレイヤキャラクタを操作する必要がある。本実施形態においては、敵キャラクタからの攻撃を受けた場合に、敵キャラクタが三次元の仮想ゲーム空間のどの方向から攻撃をしてきたか(攻撃方向)を示すダメージマークが表示される。当該ダメージマークが表示されることが、本発明の特徴的部分である。
【0044】
各オブジェクト(プレイヤキャラクタや敵キャラクタを含む仮想ゲーム空間内の物体であり、ダメージマークも含まれる。)は、三次元の仮想ゲーム空間内に配置され、プレイヤキャラクタはプレイヤの操作に基づいて三次元の仮想ゲーム空間内を移動する。その他のオブジェクトは、三次元の仮想ゲーム空間内に固定されているか、ゲームプログラムに基づいて移動する。三次元の仮想ゲーム空間内の各オブジェクトは、投影処理により二次元の画像に投影されて、表示画面に表示される。ダメージマークもオブジェクトであり、三次元の仮想ゲーム空間内に配置されて、投影処理により表示画面上に表示される。ダメージマークは、三次元の仮想ゲーム空間を上から見た状態での攻撃方向を示す位置に配置される。また、ダメージマークは、敵キャラクタがプレイヤキャラクタと同じくらいの高さの位置から攻撃してきたのか、高い位置から攻撃してきたのか、低い位置から攻撃してきたのかも表している。以下、攻撃方向の高さの要素を「攻撃方向における高さ方向」という。本実施形態では、攻撃方向における高さ方向に応じて、ダメージマークの配置の態様(傾き)を3段階で変えている。
【0045】
図1は、ダメージマークを説明するための図であり、本実施形態に係るシューティングゲームの1場面の表示画像を示している。本実施形態に係るシューティングゲームはいわゆるサードパーソン(三人称視点)・シューティングゲームであるため、プレイヤキャラクタの後部上方からプレイヤキャラクタおよびその周辺を俯瞰した画像が表示されている。同図に示す表示画像には、プレイヤキャラクタPC、スコアSC、体力値HP、円弧ダメージマークDMC、三角ダメージマークDMT1,DMT2が表示されている。体力値HPは表示画面の左上に表示され、スコアSCは体力値HPのすぐ下に表示される。プレイヤキャラクタPCは、表示画面の中央に表示される。円弧ダメージマークDMCおよび三角ダメージマークDMT1,DMT2は、プレイヤキャラクタPCの周囲に設定された所定の領域に表示される。なお、三角ダメージマークDMT1,DMT2が本発明の「第1のマーク」に対応し、円弧ダメージマークDMCが本発明の「第2のマーク」に対応する。
【0046】
プレイヤキャラクタPCは、プレイヤが操作するキャラクタであり、ゲーム開始時にプレイヤによって選択されて決定される。なお、プレイヤの選択によらず、あらかじめ所定のキャラクタに決められていてもよい。スコアSCは、プレイヤが獲得した得点であり、敵キャラクタを攻撃したり倒したりすることなどにより取得され加算されていく。体力値HPは、プレイヤキャラクタPCの体力値を示すレベル表示であり、敵キャラクタからの攻撃を受けることにより減少していく。
【0047】
円弧ダメージマークDMCおよび三角ダメージマークDMT1,DMT2は、敵キャラクタからの攻撃を受けたときに、敵キャラクタの攻撃方向を示すための表示である。なお、円弧ダメージマークおよび三角ダメージマークを総称してダメージマークという。
【0048】
円弧ダメージマークDMCは、プレイヤキャラクタPCが受けた攻撃のおおまかな方向を表すために表示される。円弧ダメージマークDMCは、三次元の仮想ゲーム空間におけるプレイヤキャラクタPCの位置を示すプレイヤキャラクタ位置P(例えば、プレイヤキャラクタPCの上半身の中心)を中心とする、所定の幅及び厚みのある円弧形状のオブジェクトを表示したものある。なお、円弧ダメージマークDMCのプレイヤキャラクタPCから遠い方の縁が、本発明の「攻撃方向を指し示す部位である指示部」に対応し、後述の中心位置P2(図4を参照)が本発明の「指示部の中心」に対応する。本実施形態では、円弧ダメージマークDMCは、プレイヤキャラクタPCが攻撃を受けたときから1秒間表示される。なお、この表示時間は1秒間に限定されるものではない。また、本実施形態では、円弧ダメージマークDMCが表示されている間に次の攻撃を受けた場合、表示画面が見にくくなることを防ぐために、前の攻撃に基づく円弧ダメージマークDMCは消去され、後の攻撃に基づく円弧ダメージマークDMCのみが表示される。したがって、連続して攻撃を受けると、最後の攻撃に基づく円弧ダメージマークDMCのみが表示される。なお、次の攻撃を受けた場合でも、この攻撃に基づく円弧ダメージマークDMCとともに、前の攻撃に基づく円弧ダメージマークDMCを表示し続けるようにしてもよい。
【0049】
三角ダメージマークDMT1,DMT2は、プレイヤキャラクタPCが受けた攻撃の詳細な方向を表すために表示される。すなわち、三角ダメージマークDMT1,DMT2が指し示す攻撃方向の範囲(高さ方向でなく水平方向での範囲)は、円弧ダメージマークDMCが指し示す攻撃方向よりも狭く、このため、三角ダメージマークDMT1,DMT2は円弧ダメージマークDMCよりも詳細に攻撃方向を示すことができる。なお、三角ダメージマークDMT1,DMT2の底面部分が、本発明の「攻撃方向を指し示す部位である指示部」に対応する。三角ダメージマークDMT1,DMT2は、三次元の仮想ゲーム空間における攻撃方向に底面を向け、プレイヤキャラクタPCの方に頂点を向けた円錐形状のオブジェクトを表示したものである。三次元の仮想ゲーム空間内の各オブジェクトは投影処理により二次元の表示画面に投影されて表示されるので、三角ダメージマークDMT1,DMT2は、表示画面上では略三角形状の表示となっている。なお、プレイヤキャラクタPCの真後ろからの攻撃の場合は、円錐の底面だけが表示されることになるので、円形状の表示となる。このように、三角ダメージマークDMT1,DMT2は円錐形状であるため、真後ろから見た場合に円形状、その他は三角形状で表示されることになり、何れの角度から見ても好適に表示される。
【0050】
三角ダメージマークDMT2は最後の攻撃に基づいて表示されており、三角ダメージマークDMT1はその1つ前の攻撃に基づいて表示されている。本実施形態では、表示画面が見にくくなることを防ぐために、表示画面に表示される三角ダメージマークを3個までとし、それ以前の攻撃に基づく三角ダメージマークは消去される。すなわち、表示画面上には最大3個の三角ダメージマークが表示される(なお、三角ダメージマークを攻撃の順に関係なく総称して説明する場合、「三角ダメージマークDMT」という。)。なお、表示個数は3個に限定されるものではなく、1個または2個だけとしてもよいし、4個以上の個数に制限してもよい。また、表示個数を制限しないようにしてもよい。
【0051】
また、本実施形態では、各三角ダメージマークDMTは、プレイヤキャラクタPCが攻撃を受けたときから0.5秒間表示されるが、この表示時間は0.5秒間に限定されるものではない。また、本実施形態では、三角ダメージマークDMTの表示時間を円弧ダメージマークDMCの表示時間より短い時間としているが、次の理由による。すなわち、三角ダメージマークDMTをあまり長い時間表示すると表示画面が見にくくなるからである。また、プレイヤキャラクタPCおよび敵キャラクタは仮想ゲーム空間上を移動しているので、長い時間表示された三角ダメージマークDMTが指し示す方向にはすでに敵キャラクタが位置しなくなっている可能性がある。さらに、詳細は後述するが、ゲーム装置の処理速度や通信ラグの関係上、三角ダメージマークDMTが指し示す方向に敵キャラクタが位置しない場合がある。このため、詳細な方向を表す三角ダメージマークDMTの表示時間を短くし、おおまかな攻撃方向を表す円弧ダメージマークDMCの表示時間を長くしている。なお、三角ダメージマークDMTの表示時間と円弧ダメージマークDMCの表示時間を同じとしてもよい。
【0052】
三角ダメージマークDMTだけでなく、円弧ダメージマークDMCも表示するのは、次の理由による。すなわち、プレイヤキャラクタPCの正面から攻撃を受けた場合、三角ダメージマークDMTはプレイヤキャラクタPCに隠れてしまうので、プレイヤが攻撃を受けたことに気付けない虞がある。したがって、本実施形態では、最新の攻撃方向のおおまかな方向を表すために、プレイヤキャラクタPCに隠れない大きさの円弧ダメージマークDMCも合わせて表示している。また、他のゲーム機と通信可能に接続され、他のゲーム機のプレイヤキャラクタ(敵キャラクタ)と自ゲーム機のプレイヤキャラクタとの間で通信対戦を行う場合には、通信ラグ(通信による遅延時間)から、三角ダメージマークDMTが指し示す攻撃方向に敵キャラクタが居ない場合がある。このような場合でも、おおまかな攻撃方向を表す円弧ダメージマークDMCによって、敵キャラクタの位置を指し示すことができ、プレイヤのダメージマークの表示への信頼性を損なうことが防止される。なお、本発明は、両方のダメージマークを表示することに限定されるものではなく、いずれか一方のみを表示するようにしてもよい。また、3種類以上のダメージマークを表示するようにしてもよい。また、各ダメージマークの形状や大きさは限定されない。
【0053】
三角ダメージマークDMTおよび円弧ダメージマークDMCは、攻撃方向における高さの方向も表している。三角ダメージマークDMT1は、仮想ゲーム空間における、円錐の高さ方向(円錐の底面に垂直であり頂点を通る線分の方向)が水平方向(水平面と平行な方向)であり、底面が鉛直方向と平行であるオブジェクトを表示したものである。これは、プレイヤキャラクタPCがほぼ同じ高さの敵キャラクタから攻撃されたことを表している。三角ダメージマークDMT2は、仮想ゲーム空間における、円錐の高さ方向が水平方向から上向きに傾いており、底面が鉛直方向から上向きに傾いていているオブジェクトを表示したものである。これは、プレイヤキャラクタPCが高い位置の敵キャラクタから攻撃されたことを表している。本実施形態において、三角ダメージマークDMTは、攻撃方向における高さ方向に応じて3段階に傾けて配置されて表示される。すなわち、水平方向より所定の角度(例えば15°)以上高い方向からプレイヤキャラクタPCが攻撃された場合、円錐の高さ方向が水平方向より例えば30°上方向に傾いた状態で配置され、水平方向より所定の角度(例えば15°)以上低い方向から攻撃された場合、円錐の高さ方向が水平方向より例えば30°下方向に傾いた状態で配置される。
【0054】
円弧ダメージマークDMCも、同様に、攻撃方向における高さ方向に応じて3段階に傾けて配置されて表示される。同図に示す円弧ダメージマークDMCは、仮想ゲーム空間において、斜め上方向に傾けて配置された円弧状のオブジェクトを表示したものであり、プレイヤキャラクタPCが高い位置の敵キャラクタから攻撃されたことを表している。なお、上記角度はあくまでも例示であって、これらの値に限定されるものではなく、適宜設定すればよい。また、ダメージマークの表示における傾き角度を3段階とすることに限定されるものでもなく、より細かく段階を分けて表示するようにしてもよいし、攻撃方向と水平方向とがなす角度に比例させてダメージマークの傾き角度を連続的に変化させるようにしてもよい。
【0055】
ダメージマークは、敵キャラクタが発射した弾丸のプレイヤキャラクタPCにおける着弾位置、および着弾した弾丸が発射されたときの発射位置に基づいて配置される。また、三次元の仮想ゲーム空間には、座標系が設定されている。以下、仮想ゲーム空間に設定されている座標系を、「ワールド座標系」という。
【0056】
図2は、三次元の仮想ゲーム空間に設定されたワールド座標系を説明するための図である。ワールド座標系のY軸は仮想ゲーム空間の鉛直方向に設定されており、ワールド座標系のXZ平面は、仮想ゲーム空間の水平平面に設定されている。仮想ゲーム空間内の位置
は、ワールド座標系の座標で表される。また、各オブジェクトの位置もワールド座標系の座標で表される。例えば、プレイヤキャラクタPCの位置は、例えばプレイヤキャラクタの上半身の中心点であるプレイヤキャラクタ位置座標P(Xp,Yp,Zp)で表される
。
【0057】
各オブジェクトは、複数のポリゴン(例えば、三角形)によって構成されている。各ポリゴンは当該オブジェクトの位置との相対的な位置の情報を有しており、各ポリゴンの座標(ポリゴンが三角形の場合は3つの頂点の座標)は、当該オブジェクトの位置の座標から決定される。もっとも、ダメージマークの各ポリゴン座標は、プレイヤキャラクタ位置座標P(Xp,Yp,Zp)を基準として決定される。投影処理により、各ポリゴンのワ
ールド座標系での三次元座標が表示画面に対応する二次元の座標系(以下、「スクリーン座標系」という。)の座標に変換され、変換後の座標にポリゴンが描画されることで、仮想ゲーム空間上の各オブジェクトが表示画面上に描画される。
【0058】
図3は、プレイヤキャラクタ位置座標Pと、円弧ダメージマークDMCおよび三角ダメージマークDMTとの関係を説明するための図である。円弧ダメージマークDMCは、座標P(Xp,Yp,Zp)を中心とし所定の半径(距離d2)を有するXZ平面(水平面
)と平行な円のうち、座標PからZ軸に平行に延ばした直線Sが当該円と交わる点を中心とする円弧(例えば半円)形状のオブジェクトである。また、三角ダメージマークDMTは、座標PからZ軸方向に所定の距離d1はなれた点を頂点とし、座標PからZ軸と平行に延ばした直線Sの方向を高さ方向とする円錐形状のオブジェクトである。
【0059】
円弧ダメージマークDMCおよび三角ダメージマークDMTは、敵キャラクタからの攻撃方向に基づいて、座標P(Xp,Yp,Zp)を中心として回転されて配置される。
【0060】
図2においては、高い位置にいる敵キャラクタECのマシンガンから発射された弾丸がプレイヤキャラクタPCに着弾した状態を表示している。なお、プレイヤキャラクタPCに着弾したことは、弾丸の座標とプレイヤキャラクタPCを構成するいずれかのポリゴン上の座標(ポリゴンの各頂点の座標で囲まれる領域の座標)とが一致したことで判定される。この場合、弾丸の着弾位置Aは、プレイヤキャラクタPCに着弾したときの弾丸の座標であり、その座標をA(Xa,Ya,Za)とする。同図においては、プレイヤキャラ
クタPCの頭部となっている。また、弾丸の発射位置Bは、着弾した弾丸が発射されたときの敵キャラクタECのマシンガンの先端の座標であり、その座標をB(Xb,Yb,Z
b)とする。ダメージマークは、プレイヤキャラクタ位置P(Xp,Yp,Zp)、着弾
位置A(Xa,Ya,Za)、および発射位置B(Xb,Yb,Zb)に基づいて配置さ
れる。なお、弾丸の発射位置B(Xb,Yb,Zb)は、プレイヤキャラクタPCに弾丸
が着弾したときの敵キャラクタECのマシンガンの先端の座標であってもよい。
【0061】
図4は、仮想ゲーム空間のXZ平面における攻撃方向のZ軸に対する角度θdを算出する方法を説明する図である。図4は、図2に示す仮想ゲーム空間をXZ平面に投影した図である。XZ平面に投影された攻撃方向は、着弾位置A(Xa,Za)から発射位置B(
Xb,Zb)に向かうベクトルで表される。当該ベクトルをベクトルWとすると、ベクト
ルW=(Xb−Xa,Zb−Za)となる。ここで、Z方向の単位ベクトルをベクトルZ
=(0,1)とすると、ベクトルWとベクトルZとの内積は、下記(1)式となる。したがって、θdは、下記(2)式で算出される。
【0062】
【数1】
【0063】
三角ダメージマークDMTおよび円弧ダメージマークDMCは、その中心位置(P1およびP2)が、プレイヤキャラクタ位置座標P(Xp,Yp,Zp)を中心としてY軸周
りに、Z軸に対してθd回転されて配置される。なお、三角ダメージマークDMTの中心位置P1は、例えば円錐の頂点(頂点の近傍も含む)であり、円弧ダメージマークDMCの中心位置P2は、例えば円弧の中心の点(中心の点近傍も含む)である。もっとも、中心位置P1,P2は、これらの位置に限定されず、三角ダメージマークDMTおよび円弧ダメージマークDMCにおける任意の1点であればよい。
【0064】
上述したように、プレイヤキャラクタPCの鉛直(Y軸)方向から見たときに、プレイヤキャラクタ位置座標P(Xp,Yp,Zp)を中心として所定の距離d1を半径とする
円R1(図略)の上に三角ダメージマークDMTの中心位置P1が位置し、当該中心位置P1を中心として三角ダメージマークDMTが配置される。すなわち、円R1の上が、三角ダメージマークDMTの配置領域となる。また、プレイヤキャラクタ位置座標P(Xp
,Yp,Zp)を中心として所定の距離d2を半径とする円R2(図略)の上に円弧ダメージマークDMCの中心位置P2が位置し、当該中心位置P2を中心として円弧ダメージマークDMCが配置される。すなわち、円R2の上が、円弧ダメージマークDMCの配置領域となる。
【0065】
図5は、仮想ゲーム空間のXZ平面(水平面)に対する攻撃方向の角度θyを算出する方法を説明する図である。図5は、図2に示す仮想ゲーム空間を横から見た図である。着弾位置AのY座標はYaであり、発射位置BのY座標はYbである。各Y座標は、水平面からの高さを表している。水平面に投影された発射位置Bと着弾位置Aとの距離Lは、下記(3)式で算出される。したがって、仮想ゲーム空間のXZ平面に対する攻撃方向の角度θyは、下記(4)式で算出される。
【0066】
【数2】
【0067】
三角ダメージマークDMTおよび円弧ダメージマークDMCは、θyに応じて、軸Q(ベクトルWに直交し、プレイヤキャラクタの位置Pを通過する水平方向に延びる軸、図4参照)周りに回転させて(Y軸方向に傾けて)配置される。すなわち、θy≦−15°の場合、Y軸の負方向に30°傾けて配置され、−15°<θy<15°の場合、Y軸方向に傾けることなく配置され、15°≦θyの場合、Y軸の正方向に30°傾けて配置される。
【0068】
上述したように、円R1の上の点を軸Q周りに±30°回転させた点にも中心位置P1が位置し、当該中心位置P1を中心として三角ダメージマークDMTが配置される。すなわち、円R1の中心のY座標にd1・sin(30°)=(1/2)d1を加えた点を中心とし、円R1に平行な円R1'(図略)の上、および、円R1の中心のY座標にd1・sin(−30°)=−(1/2)d1を加えた点を中心とし、円R1に平行な円R1”(図略)の上も、三角ダメージマークDMTの配置領域となる。なお、円R1’および円R1”は、点(Xp,Yp±(1/2)d1,Zp)を中心としXZ平面に平行な半径(
√3/2)d1の円となる。
【0069】
また、円R2の上の点を軸Q周りに±30°回転させた点にも中心位置P2が位置し、当該中心位置P2を中心として円弧ダメージマークDMCが配置される。すなわち、円R2の中心のY座標にd2・sin(30°)=(1/2)d2を加えた点を中心とし、円R2に平行な円R2'(図略)の上、および、円R2の中心のY座標にd2・sin(−30°)=−(1/2)d2を加えた点を中心とし、円R2に平行な円R2”(図略)の上も、円弧ダメージマークDMCの配置領域となる。なお、円R2’および円R2”は、点(Xp,Yp±(1/2)d2,Zp)を中心としXZ平面に平行な半径(√3/2)
d2の円となる。
【0070】
プレイヤキャラクタPCが攻撃を受けたとき(プレイヤキャラクタPCに着弾した)の着弾位置Aおよび発射位置Bの座標は、ダメージマークテーブルに記録される。ダメージマークテーブルは、ダメージマークを表示するための情報を記録するためのテーブルである。
【0071】
図6は、ダメージマークテーブルを説明するための図である。ダメージマークテーブルは、ゲーム開始時にゲーム装置の記憶領域に設けられ、後述するダメージマーク処理で書き換えられて使用される。ダメージマークテーブルには、ダメージマークID、描画フラグ、カウンタ、発射位置座標、および着弾位置座標が記録される。
【0072】
ダメージマークIDは、各ダメージマークを表すIDである。DMT1,DMT2,DMT3は3つの三角ダメージマークを表している。本実施形態では三角ダメージマークを3個まで表示するため、3つのIDが設けられている。DMCは円弧ダメージマークを表している。
【0073】
描画フラグは、当該ダメージマークを描画するか否かを識別するためのフラグである。描画フラグが「ON」のダメージマークは描画されるが、描画フラグが「OFF」のダメージマークは描画されない。プレイヤキャラクタが攻撃を受けたとき、ダメージマークID「DMC」の描画フラグが「ON」にされ、ダメージマークID「DMT1」,「DMT2」,「DMT3」のいずれかの描画フラグが「ON」にされる。また、「ON」にされた描画フラグは、所定の時間が経過すると「OFF」に切り替えられる。この「ON」と「OFF」の切り替えについては、後述するダメージマーク処理で説明する。
【0074】
カウンタは、当該ダメージマークの描画フラグが「ON」にされてからの時間を計時するためのものであり、描画処理されたフレーム数をカウントしている。本実施形態においては、1/30秒毎に描画処理を行うことから、描画処理されたフレーム数をカウントすることで時間を計時している。この場合、カウンタが15になると0.5秒経過したことになる。なお、描画処理のタイミングは、1/30秒毎に限られない。また、描画処理のタイミングは、固定されていなくともよく、変動していてもよい。例えば、描画処理が1/60秒毎となる期間は、0.5ずつカウントするように変化させればよい。また、フレームをカウントする代わりに、実際に時間を計時するようにしても構わない。
【0075】
着弾位置座標および発射位置座標は、プレイヤキャラクタPCが攻撃を受けたとき(プレイヤキャラクタPCに弾丸が着弾した)の着弾位置Aおよび着弾した弾丸が発射された発射位置Bのワールド座標系における座標である。なお、本実施形態では、着弾位置座標が本発明の「プレイヤ位置情報」および「攻撃到達位置情報」に対応し、発射位置座標が本発明の「敵位置情報」および「攻撃発動位置情報」に対応する。
【0076】
ダメージマークテーブルに記録された発射位置座標および着弾位置座標に基づいて、上記(2)式および(4)式により角度θdおよびθyが算出される。なお、角度θdおよびθyが本発明の「プレイヤキャラクタが敵キャラクタから受けた攻撃の方向」に対応する。また、角度θyが本発明の「攻撃方向高さ情報」に対応するが、図5の角度θy2が本発明の「攻撃方向高さ情報」であってもよい。この角度θdおよび、角度θyまたは角度θy2に基づいて、三角ダメージマークDMTおよび円弧ダメージマークDMCが仮想ゲーム空間に配置される。仮想ゲーム空間に配置された三角ダメージマークDMTおよび円弧ダメージマークDMCは、他のオブジェクトとともに、投影処理により座標変換されて表示画面上に表示される。
【0077】
なお、上記では、敵キャラクタのマシンガンによる攻撃での弾丸の発射位置および着弾位置について説明したが、攻撃はこれに限られない。例えば、ライフルやピストルなどによる攻撃でも同様であり、弾丸が発射されないレーザ光線銃や弓矢などでも同様である。また、手榴弾や投石による攻撃などの飛び道具による攻撃でも同様である。
【0078】
次に、本実施形態のハード構成について説明する。
【0079】
図7は、本発明に係るゲーム装置を示す構成図である。ゲーム装置1は、本体11、操作コントローラ12、およびモニタ13を備えている。操作コントローラ12およびモニタ13は、専用のケーブルによって本体11に接続されている。本体11には、ゲームプログラムやゲームデータが記録されているディスク14が装着され、また、必要に応じてゲームデータを保存するためのメモリカード15も装着される。
【0080】
本体11は、制御部111、描画処理部112、音声処理部113、ディスクドライブユニット114、メモリカード接続ユニット115、I/Oインターフェース部116、および通信処理部117を備える。制御部111には、描画処理部112、音声処理部113、I/Oインターフェース部116、および通信処理部117が接続されている。また、I/Oインターフェース部116には、ディスクドライブユニット114、メモリカード接続ユニット115、操作コントローラ12、およびモニタ13が接続されている。
【0081】
ゲーム装置1では、上記シューティングゲームのソフトウェアが記録されたディスク14がディスクドライブユニット114に装着され、このディスクドライブユニット114からディスク14内のゲームプログラムおよびゲームデータが制御部111内のRAM111c(後述)に読み込まれる。読み込まれたゲームプログラムがCPU111a(後述)によって実行されることにより、プレイヤはゲーム内容を楽しむことができる。プレイヤは、操作コントローラ12の操作部材12a〜12c(後述)を操作することによりプレイヤキャラクタを操作し、ゲームを進行させることができる。
【0082】
ディスク14内のゲームデータには、プレイヤキャラクタや敵キャラクタなどのキャラクタ、敵キャラクタからの攻撃を受けたときに表示されるダメージマーク、背景などの画像データ、効果音などの音声データ、および、ゲーム進行や描画の際に参照される各種テーブルなどが含まれる。
【0083】
制御部111は、本体11の全体動作を制御するマイクロコンピュータを有している。マイクロコンピュータは、CPU111a、ROM111b、およびRAM111c等からなり、各部は、それぞれバスラインで接続されている。
【0084】
CPU111aは、ディスクドライブユニット114によってディスク14からRAM111cに読み込まれるゲームプログラムを実行することより、ゲーム進行を統括的に制御する。より具体的には、操作コントローラ12からプレイヤが操作することによる操作信号が入力されると、CPU111aは、ゲームプログラムにしたがってその操作信号に対する所定のゲーム進行処理を行う。CPU111aは、その処理結果をモニタ13に例えば三次元画像によって表示するとともに、モニタ13のスピーカ13a(後述)から効果音によって出力する。
【0085】
ROM111bには、ディスクローディング機能等のゲーム装置1の基本的な機能やディスク14に記録されたゲームプログラムおよびゲームデータを読み出す手順等を示す基本プログラムが記憶されている。CPU111aは、ディスクドライブユニット114にディスク14が装着されると、ROM111bの基本プログラムにしたがってディスクドライブユニット114を動作させ、ディスク14からゲームプログラムおよびゲームデータをRAM111cに読み込み、ゲーム開始状態に設定する。
【0086】
RAM111cは、ディスクドライブユニット114によってディスク14から読み込まれたゲームプログラムやゲームデータ(ダメージマーク等の画像データを含む)が格納されるエリアと、CPU111aがゲームプログラムを実行するためのワークエリアとを提供するものである。当該ワークエリアには、ダメージマークテーブル(図6参照)などが保存される。
【0087】
上記ゲームプログラムは、複数のプログラムが組み合わされて構成されており、例えばモニタ13に表示されているプレイヤキャラクタの動作を操作コントローラ12からのプレイヤの操作信号に基づいて制御するゲーム進行プログラムやモニタ13に表示すべき三次元画像を制御するグラフィック制御プログラム等によって構成されている。
【0088】
CPU111aは、操作コントローラ12からのプレイヤの操作信号に基づき、必要に応じてディスク14からゲームプログラムや画像データ等をRAM111cに読み込み、これらのデータを処理したりゲームプログラムを実行したりすることにより、モニタ13に表示すべき三次元画像の内容を決定する。また、CPU111aは、敵キャラクタからの攻撃をプレイヤキャラクタが被弾したかの判定を行い、後述するダメージマーク処理により、ダメージマークの表示も決定する。
【0089】
描画処理部112は、描画処理に必要な各種の演算処理を行うものである。CPU111aは、例えば、1/30秒毎に、描画処理部112に描画指令を出力する。このとき、CPU111aは、モニタ13に表示すべき画像を決定し、その画像の描画に必要な画像データ(キャラクタ、ダメージマークなどのオブジェクトのポリゴンデータ、および背景データ)、および光源データ等をRAM111cから読み出して描画処理部112に供給する。また、CPU111aは、各キャラクタの位置データや、ダメージマークを表示するための情報(具体的には、上記(2)式および(4)式で算出された攻撃方向の角度データθdおよびθy)、操作コントローラ12から入力される操作信号を描画処理部112に供給する。
【0090】
描画処理部112は、CPU111aから供給される画像データ等および操作信号に基づいて、描画に必要なデータ(各オブジェクトおよび背景の位置関係、モニタ13の画面上における各オブジェクトを構成するポリゴンの座標、各ポリゴンに対応するテクスチャ、並びに各ポリゴンの反射特性等のデータ)を演算し、その演算結果に基づいて描画処理部112内のVRAM(図示せず)に1コマ(1フレーム)の表示画面の画像データを作成する。作成された表示画面の画像データは、例えば、1/30秒毎に映像信号としてモニタ13に出力されて表示される。
【0091】
音声処理部113は、効果音等の音声を発生させる処理に必要な各種の演算処理を行うものである。CPU111aは、モニタ13のスピーカ13aから出力すべき効果音若しくはBGMの音響内容を決定すると、音声処理部113に音声指令を出力する。音声処理部113は、CPU111aからの音声指令に基づき、RAM111cから効果音もしくはBGMの音声データを読み出し、所定の加工処理とD/A変換処理とを施した後、スピーカ13aに出力する。
【0092】
ディスクドライブユニット114は、CPU111aからのローディング指令(ローディングすべきゲームプログラムとゲームデータを指定した読出指令)に基づき、ディスク14に記録されたゲームプログラムやゲームデータを読み出すものである。
【0093】
メモリカード接続ユニット115は、ゲーム進行に関する情報をメモリカード15に書き込んだり、読み出したりするためのユニットである。CPU111aは、ゲーム進行中やゲーム終了時にプレイヤから「データのセーブ」が指令されると、メモリカード接続ユニット115を介してメモリカード15に、ゲーム進行に関する情報(この情報には、例えば、プレイヤが設定したゲームキャラクタの種類、対戦成績、獲得したポイントやアイテムなどの各種の特典などの情報が含まれる。)を記憶する。また、メモリカード15に記憶されたゲーム進行に関する情報は、ゲーム開始前にRAM111cに読み出される。
【0094】
I/Oインターフェース部116は、ディスクドライブユニット114やメモリカード接続ユニット115によって読み出されたゲームプログラムやゲームデータ、および操作コントローラ12からの操作信号等を制御部111に伝送したり、制御部111、描画処理部112や音声処理部113からの映像信号やオーディオ信号等をモニタ13に伝送したりするものである。
【0095】
通信処理部117は、ネットワークを介して他のゲーム装置1と通信を行う場合に、データの送信および受信を行うための制御を行うものである。通信処理部117は、操作コントローラ12から入力される操作信号やCPU111aから出力される信号をネットワークを介して他のゲーム装置1に送信し、ネットワークを介して他のゲーム装置1から送信される信号を受信してCPU111aに入力する。
【0096】
操作コントローラ12は、キャラクタを動作させたり、ゲームに関する各種の設定を行ったりするためにプレイヤによって操作されるものであり、複数のボタン12aと左レバー12bと右レバー12cとを有する。プレイヤによって操作コントローラ12が操作されると、その操作信号が制御部111に伝送され、モニタ13に表示されたキャラクタが所定の動作を行う。所定の動作としては、例えば、走る、しゃがむ、ジャンプする等の移動動作や武器を使用して相手を攻撃する攻撃動作がある。移動動作は、主に左レバー12bによって操作され、攻撃動作は主に複数のボタン12aおよび右レバー12cによって操作される。
【0097】
モニタ13は、本体11から送られてきた映像信号に応じてゲーム進行状態を示す表示画面を映し出したり、本体11から送られてきたオーディオ信号に応じてスピーカ13aから効果音等の音声を出力させたりするための装置である。モニタ13は、映像信号やオーディオ信号を入力するための外部入力端子を備えた、例えばテレビジョン受像機によって構成されている。
【0098】
ディスク14は、例えばDVD−ROM又はCD−ROM等の光ディスクである。ディスク14には、ゲームプログラムやそのゲームプログラムの実行に必要な種々のデータや画像データが記録されている。メモリカード15は、例えばフラッシュメモリ等のデータの書き換えが可能な不揮発性の記録媒体である。RAM111cのワークエリアの記録は、ゲーム装置本体11の電源を切ると消滅してしまうことから、メモリカード15は、RAM111cのワークエリアの記録のうち消滅させずに残しておくべきゲーム進行に関する情報を記録する。
【0099】
ゲーム装置1は、ネットワークアダプタ16を介して、インターネット回線などのネットワーク回線2に接続することができる。この場合、ネットワーク回線2を介して、複数のゲーム装置1間でゲームを行うこともできる(いわゆる「オンラインゲーム」)。本実施形態では、ゲーム装置1単独で行うゲームについて説明しているが、このようなオンラインゲームでも本発明を適用することができる。
【0100】
次に、本発明に係るゲーム装置のCPU111aで実行されるダメージマーク処理について、図8〜図12に示すフローチャートを参照して説明する。
【0101】
図8は、ダメージマーク処理を示すフローチャートである。ダメージマーク処理は、ダメージマークを表示画面に表示するための情報(以下、「ダメージマーク情報」という)を算出して、描画処理部112に送信するための処理である。描画処理部112が描画処理をするときにダメージマーク情報を受信している必要があることから、このダメージマーク処理は、CPU111aが描画指令を描画処理部112に送信する前に実行される。つまり、ダメージマーク処理も、描画処理と同様、例えば1/30秒毎に実行される。
【0102】
まず、三角ダメージマーク計時処理が実行される(S1)。これは、各三角ダメージマークが表示されてからの時間を計時するための処理であり、詳細は後述する。次に、円弧ダメージマーク計時処理が実行される(S2)。これは、円弧ダメージマークが表示されてからの時間を計時するための処理であり、詳細は後述する。
【0103】
続いて、ダメージマークテーブル更新処理が実行される(S3)。これは、プレイヤキャラクタが攻撃を受けたか(ダメージを受けたか)を判別し、攻撃を受けた場合にダメージマークテーブル(図6参照)を更新する処理であり、詳細は後述する。次に、ダメージマーク情報送信処理が実行され(S4)、ダメージマーク処理は終了される。ダメージマーク情報送信処理は、描画処理に必要なダメージマーク情報を算出して、描画処理部112に送信するための処理であり、詳細は後述する。
【0104】
描画処理部112は、ダメージマーク処理によって送信されたダメージマーク情報と、RAM111cから読み出されたダメージマークの画像データとを用いて、ダメージマークが表示画面に表示されるように、表示画面の画像データを作成する。なお、ダメージマーク情報が送信されなかった場合、描画処理部112は、ダメージマークが表示されない表示画面の画像データを作成する。
【0105】
図9は、三角ダメージマーク計時処理を示すフローチャートである。三角ダメージマーク計時処理は、各三角ダメージマークが表示されてからの時間を計時するための処理である。
【0106】
まず、ダメージマークテーブル(図6参照)の三角ダメージマークDMT1〜DMT3のうち、描画フラグが「ON」のものの数がカウントされ、変数jに入力される(S11)。例えば、図6に示すダメージマークテーブルの状態であればj=2とされる。三角ダメージマークの描画フラグがすべて「OFF」の場合、表示されている三角ダメージマークがないことから、後述するS13〜19、および、後述する図12のS42〜S46の処理が省略される。これらの処理を省略するか否かの判別をするために変数jが設けられている。
【0107】
次に、変数jが「0」であるか否かが判別され(S12)、j=0の場合(S12:YES)、三角ダメージマーク計時処理は終了される。描画フラグが「ON」の三角ダメージマーク(DMT1〜DMT3)がない場合、表示されている三角ダメージマークがないので、表示時間を計時する必要がないからである。
【0108】
j≠0の場合(S12:NO)、すなわち、描画フラグが「ON」の三角ダメージマークがある場合、各三角ダメージマークの表示時間が計時される(S13〜S19)。三角ダメージマーク計時処理は1/30秒毎に実行されるので、処理回数をカウントすることで時間を計時することができる。本実施形態では、ダメージマークテーブルのカウンタを1増加させることで計時を行なっている。カウンタが15を超えた場合、0.5秒が経過したので、対応する三角ダメージマークを表示しないようにするために、描画フラグを「OFF」に切り替える。
【0109】
次に、ステップS13で変数iに「1」が入力される。変数iは、ダメージマークテーブルの三角ダメージマークDMT1〜DMT3のいずれかを示すためのものである。続いて、F(i)が「ON」であるか否かが判別される(S14)。F(i)は、ダメージマークテーブルの描画フラグの内容を示す変数であり、例えば、F(1)は、DMT1の描画フラグの内容を示している。図6に示すダメージマークテーブルの状態では、F(1)=「ON」、F(2)=「ON」、F(3)=「OFF」である。F(i)が「ON」である場合(S14:YES)、C(i)が1増加される(S15)。C(i)は、ダメージマークテーブルのカウンタの内容を示す変数であり、例えば、C(1)は、DMT1のカウンタの内容を示している。図6に示すダメージマークテーブルの状態では、C(1)=12、C(2)=5、C(3)=0である。
【0110】
次に、C(i)が15以上であるか否かが判別される(S16)。C(i)≧15の場合(S16:YES)、F(i)が「OFF」にされ、変数jが1減少される(S17)。すなわち、カウンタが15を超えた場合(表示されてから0.5秒が経過した場合)、対応する描画フラグを「OFF」にして、対応する三角ダメージマークが表示されないようにする。また、このとき、描画フラグが「ON」の三角ダメージマークが減少するので、変数jが1減少される。C(i)<15の場合(S16:NO)、ステップS17をとばして、ステップS18に進む。すなわち、対応する描画フラグを「ON」のままとして、対応する三角ダメージマークの表示を継続する。ステップS14で、F(i)が「OFF」である場合(S14:NO)、対応する三角ダメージマークが表示されておらず表示時間の計時を行なう必要がないので、ステップS18に進む。
【0111】
次に、変数iが1増加され(S18)、変数iが3を超えたか否かが判別される(D19)。i≦3の場合(S19:NO)、ステップS14に戻り、変数iに対応する三角ダメージマークについての計時処理が行われる。i>3の場合(S19:YES)、すべての三角ダメージマークについての計時処理が行われたので、三角ダメージマーク計時処理は終了される。
【0112】
図10は、円弧ダメージマーク計時処理を示すフローチャートである。円弧ダメージマーク計時処理は、円弧ダメージマークが表示されてからの時間を計時するための処理である。
【0113】
まず、Fcが「ON」であるか否かが判別される(S21)。Fcは、ダメージマークテーブルの円弧ダメージマークDMCの描画フラグの内容を示す変数であり、図6に示すダメージマークテーブルの状態では、Fc=「ON」である。Fcが「ON」である場合(S21:YES)、Ccが1増加される(S22)。Ccは、ダメージマークテーブルの円弧ダメージマークDMCのカウンタの内容を示す変数であり、図6に示すダメージマークテーブルの状態では、Cc=5である。円弧ダメージマークDMCの描画フラグが「ON」の場合のみ、表示時間を計時するために、カウンタを1増加させる。
【0114】
次に、Ccが30以上であるか否かが判別される(S23)。Cc≧30の場合(S23:YES)、Fcが「OFF」にされ(S24)、円弧ダメージマーク計時処理は終了される。すなわち、カウンタが30を超えた場合(表示されてから1秒が経過した場合)、円弧ダメージマークDMCの描画フラグを「OFF」にして、円弧ダメージマークが表示されないようにする。Cc<30の場合(S23:NO)、ステップS24をとばして、円弧ダメージマーク計時処理は終了される。すなわち、円弧ダメージマークDMCの描画フラグを「ON」のままとして、円弧ダメージマークの表示を継続する。ステップS21で、Fcが「OFF」である場合(S21:NO)、円弧ダメージマークが表示されておらず表示時間の計時を行なう必要がないので、円弧ダメージマーク計時処理は終了される。
【0115】
図9および図10に示すフローチャートでは、ダメージマーク処理が1/30秒毎に実行されることを利用して、ダメージマークテーブルのカウンタを1ずつ増加させることで計時を行なっている。なお、ダメージマーク処理が行われるタイミング間隔(描画処理が行われるタイミング間隔)は、固定ではなく変動していてもよい。この場合、そのタイミング間隔に基づいて、カウントする数を変動させればよい。例えば、ダメージマーク処理が1/60秒毎であるときは、0.5ずつカウントすればよいし、ダメージマーク処理が1/15秒毎であるときは、2ずつカウントすればよい。また、処理回数をカウントする代わりに、実際の経過時間を計時するようにしてもよい。すなわち、CPU111aで時間を計時しておき、前回のダメージマーク処理からの経過時間を加算していくようにしてもよい。
【0116】
図11は、ダメージマークテーブル更新処理を示すフローチャートである。ダメージマークテーブル更新処理は、プレイヤキャラクタが攻撃を受けたか(ダメージを受けたか)を判別し、攻撃を受けた場合にダメージマークテーブル(図6参照)を更新する処理である。
【0117】
まず、プレイヤキャラクタがダメージを受けたか、すなわち、敵キャラクタからの攻撃を受けたか否かが判別される(S31)。当該判別は、ダメージ判定処理(各敵キャラクタが発射した各弾丸の座標と、プレイヤキャラクタを構成するポリゴン上の座標とを比較することで、プレイヤキャラクタが敵キャラクタからの攻撃を受けたかを判定する。詳細説明は省略)で行われる処理結果に基づいて判別される。また、ダメージ判定処理では、敵キャラクタが発射した弾丸の座標とプレイヤキャラクタを構成するポリゴン上の座標とが一致した場合に、当該弾丸の座標を着弾位置座標として取得し、着弾した弾丸が発射されたときのマシンガンの先端の座標を発射位置座標として取得している。なお、ダメージ判定処理の結果は、体力値HP(図1参照)の減少にも反映される。ダメージ有りの場合(S31:YES)、ダメージマークテーブルの円弧ダメージマークといずれかの三角ダメージマークの発射位置座標などが書き換えられる(S34〜S38)。
【0118】
なお、j=3の場合、すなわち、すべての三角ダメージマークの描画フラグが「ON」の場合(S32:YES)、一番古い(カウンタの値が最大である)三角ダメージマークの描画フラグが「OFF」にされ、変数jが1減少される(S33)。本実施形態では、表示する三角ダメージマークを3個としているので、すでに3個表示されている場合は、新しい三角ダメージマークを表示できるように、1番古い三角ダメージマークを消去するようにしている。また、このとき、描画フラグが「ON」の三角ダメージマークが減少するので、変数jが1減少される。
【0119】
次に、描画フラグが「OFF」の三角ダメージマークのうちのいずれかを示す番号kが取得される(S34)。ステップS32、S33の処理により、少なくとも1つの三角ダメージマークの描画フラグは「OFF」になっている。図6に示すダメージマークテーブルの状態では、DMT3の描画フラグが「OFF」になっているので、k=3となる。描画フラグが「OFF」になっている三角ダメージマークが2以上ある場合は、小さい方の番号が取得される。例えば、DMT1とDMT3の描画フラグが「OFF」の場合、k=1となる。なお、大きい方の番号が取得されるようにしてもよいし、任意に取得されるようにしてもよい。
【0120】
次に、ダメージマークテーブルの番号kに対応する三角ダメージマークの発射位置座標および着弾位置座標が、ダメージ判定処理で取得された座標に書き換えられ(S35)、カウンタC(k)が「0」に初期化され、描画フラグF(k)が「ON」にされる(S36)。このとき、描画フラグが「ON」の三角ダメージマークが増加するので、変数jが1増加される。
【0121】
次に、ダメージマークテーブルの円弧ダメージマークの発射位置座標および着弾位置座標が、ダメージ判定処理で取得された座標に書き換えられ(S37)、カウンタCcが「0」に初期化され、描画フラグFcが「ON」にされて(S38)、ダメージマークテーブル更新処理は終了される。
【0122】
ステップS31において、ダメージ無しの場合(S31:NO)、ダメージマークテーブルの更新は行われず、ダメージマークテーブル更新処理は終了される。
【0123】
図12は、ダメージマーク情報送信処理を示すフローチャートである。ダメージマーク情報送信処理は、描画処理に必要なダメージマーク情報を算出して、描画処理部112に送信するための処理である。
【0124】
まず、変数jが「0」であるか否かが判別され(S41)、j=0の場合(S41:YES)、ステップS47に進む。描画フラグが「ON」の三角ダメージマーク(DMT1〜DMT3)がない場合、表示すべき三角ダメージマークがないので、ダメージマーク情報を送信する必要がないからである。
【0125】
j≠0の場合(S41:NO)、すなわち、描画フラグが「ON」の三角ダメージマークがある場合、描画フラグが「ON」の三角ダメージマークのダメージマーク情報が算出され送信される(S42〜46)。
【0126】
次に、ステップS42で変数iに「1」が入力され、F(i)が「ON」であるか否かが判別される(S43)。F(i)が「ON」である場合(S43:YES)、対応する三角ダメージマークのダメージマーク情報が算出され、描画処理部112に送信される(S44)。このダメージマーク情報とは、ダメージマークを描画するのに必要な角度θdおよびθyであり、ダメージマークテーブルに記録されている発射位置座標および着弾位置座標に基づいて、上記(2)式および(4)式により算出される。
【0127】
なお、角度θdおよびθyを算出せず、発射位置座標および着弾位置座標をダメージマーク情報として描画処理部112に送信し、描画処理部112で角度θdおよびθyを算出するようにしてもよい。また、着弾位置座標から発射位置座標に向かうベクトルを算出し、発射位置座標および着弾位置座標の代わりに当該ベクトルをダメージマークテーブルに記録しておくようにしてもよい。また、発射位置座標および着弾位置座標から角度θdおよびθyを算出しておいて、発射位置座標および着弾位置座標の代わりにダメージマークテーブルに記録しておくようにしてもよい。この場合、ステップS44では、ダメージマーク情報を算出することなく、送信することができる。
【0128】
ステップS43において、F(i)が「OFF」である場合(S43:NO)、対応する三角ダメージマークは表示されないので、ステップS44をとばして、ステップS45に進む。次に、変数iが1増加され(S45)、変数iが3を超えたか否かが判別される(S46)。i≦3の場合(S46:NO)、ステップS43に戻る。i>3の場合(S46:YES)、ステップS47に進む。
【0129】
次に、Fcが「ON」であるか否かが判別される(S47)。Fcが「ON」である場合(S47:YES)、円弧ダメージマークのダメージマーク情報が算出され、描画処理部112に送信される(S48)。ダメージマーク情報である角度θdおよびθyは、ダメージマークテーブルに記録されている発射位置座標および着弾位置座標に基づいて、上記(2)式および(4)式により算出される。
【0130】
なお、円弧ダメージマークの発射位置座標および着弾位置座標は、最新の三角ダメージマーク(図6の場合DMT2)の発射位置座標および着弾位置座標と共通するので、当該三角ダメージマークの発射位置座標および着弾位置座標を用いてダメージマーク情報を算出して送信するようにしてもよいし、ステップS44で算出されたダメージマーク情報を送信するようにしてもよい。また、発射位置座標および着弾位置座標をダメージマーク情報として描画処理部112に送信し、描画処理部112で角度θdおよびθyを算出するようにしてもよいし、着弾位置座標から発射位置座標に向かうベクトルをダメージマークテーブルに記録しておくようにしてもよい。また、あらかじめ角度θdおよびθyを算出しておいて、ダメージマークテーブルに記録しておくようにしてもよい。
【0131】
ステップS47において、Fcが「OFF」である場合(S47:NO)、円弧ダメージマークは表示されないので、ステップS48をとばして、ダメージマーク情報送信処理は終了される。
【0132】
本実施形態によると、プレイヤキャラクタが攻撃を受けたときに、敵キャラクタが発射した弾丸などの発射位置座標とプレイヤキャラクタに着弾したときの着弾位置座標とに基づいて、プレイヤキャラクタの周囲に設定された領域の攻撃方向に対応する位置にダメージマークが配置されて表示される。このように、プレイヤキャラクタの周囲にダメージマークが表示されるため、ダメージマークの位置が示す攻撃方向と、仮想空間における実際の攻撃方向を対応させて表示することができ、プレイヤは、敵キャラクタがどの方向から攻撃してきたかを直感的に判断することができる。また、当該ダメージマークは、三次元の仮想ゲーム空間の他のオブジェクトと同様に表示画面に投影されて表示されるので、仮想ゲーム空間の前後方向(奥行き方向)も表すことができる。これにより、プレイヤは、更に容易に、敵キャラクタがどの方向から攻撃してきたかを直感的に判断することができる。また、ダメージマークの表示は、敵キャラクタの攻撃方向の高さの要素も反映された表示となっている。したがって、プレイヤは、攻撃してきた敵キャラクタが高い位置から攻撃してきたのか、低い位置から攻撃してきたのかを直感的に判断することができる。
【0133】
また、本実施形態によると、円錐形状の三角ダメージマークと円弧形状の円弧ダメージマークとが表示される。したがって、三角ダメージマークで攻撃の詳細な方向を表すとともに、三角ダメージマークがプレイヤキャラクタに隠れて見えにくい場合でも、大きな円弧ダメージマークが攻撃の大まかな方向を表すことができる。また、三角ダメージマークは3個まで、円弧ダメージマークは1個だけの表示とし、表示時間をそれぞれ0.5秒および1秒に限定しているので、ダメージマークがたくさん表示されすぎて表示画面が見にくくなることを抑制することができる。
【0134】
なお、上記実施形態は、敵キャラクタが発射した弾丸などの発射位置座標とプレイヤキャラクタに着弾したときの着弾位置座標とに基づいてダメージマークを表示する場合について説明したがこれに限られない。例えば、敵キャラクタが弓や石等で攻撃する場合には、矢を放った位置や石等の投げ始めの位置(本発明の攻撃発動位置に対応)の座標を発射位置情報に代えて使用し、矢や石等がプレイヤキャラクタに到達した位置(本発明の攻撃到達位置に対応)の座標を着弾位置座標に代えて使用してもよい。また、例えば、発射位置座標等の敵キャラクタにおける攻撃を繰り出す部位の座標に代えて、敵キャラクタの他の位置座標を用いてもよいし、着弾位置座標等のプレイヤキャラクタにおける攻撃を受ける部位の座標に代えて、プレイヤキャラクタの他の位置座標を用いてもよい。例えば、敵キャラクタに予め設定された任意の1点(基準点)の位置の座標を発射位置座標に代えて使用し、プレイヤキャラクタに予め設定された任意の1点(基準点)の位置の座標を着弾位置座標に代えて使用してもよい。
【0135】
また、上記実施形態は、プレイヤキャラクタ位置座標を基準として各ダメージマークを配置する場合について説明したが、これに限定されない。各ダメージマークを配置する場合の基準点を着弾位置座標にしてもよいし、その他のプレイヤキャラクタにおける任意の点にしてもよい。なお、プレイヤキャラクタに対する攻撃方向を表すためには、プレイヤキャラクタ上(プレイヤキャラクタの内部およびプレイヤキャラクタの近傍を含む)の点にする必要がある。また、ダメージマークの配置領域を設定するための中心点は1つに限られず、複数設定してもよい。例えば、プレイヤキャラクタ位置座標の他に、プレイヤキャラクタの頭部および脚部の点を中心点としてダメージマークの配置領域を設定し、角度θy(図5参照)に応じていずれの配置領域に配置するかが切り替えられてもよい。例えば、角度θyが15度以上の場合には、頭部の点に基づく配置領域とし、角度θyが−15度以下の場合には、脚部の点に基づく配置領域とし、−15度<角度θy<15度の場合には、プレイヤキャラクタ位置座標に基づく配置領域としてもよい。また、このとき表示される三角ダメージマークを角度θyに応じて傾けて表示してもよい。
【0136】
また、プレイヤキャラクタの着弾位置に応じていずれの配置領域に配置するかが切り替えられてもよい。例えば、着弾位置がプレイヤキャラクタの上半身の場合はプレイヤキャラクタ位置座標を基準点とし(ダメージマークがプレイヤキャラクタ位置座標に基づく配置領域に配置され)、着弾位置がプレイヤキャラクタの頭部の場合は頭部の中心点を基準点とするようにしてもよい(ダメージマークが頭部の点に基づく配置領域に配置されてもよい)。また、ダメージマークの種類により基準点が異なるようにしてもよい。
【0137】
また、上記実施形態は、プレイヤキャラクタ位置座標を基準として各ダメージマークの画像データを準備しておき、プレイヤキャラクタ位置座標を中心として攻撃方向に応じた角度だけ各ダメージマークを回転させて配置する場合について説明したが、これに限定されない。プレイヤキャラクタ位置座標を中心とした円、円柱、あるいは球と攻撃方向とに基づいて基準点を決定し、各ダメージマークを当該基準点に基づいて配置するようにしてもよい。例えば、プレイヤキャラクタ位置座標を中心とした所定半径の球と、発射位置座標と着弾位置座標とを結ぶ線分との交点を基準点とし、当該基準点に基づいて各ダメージマークを配置するようにしてもよい。また、ダメージマークの種類により配置方法が異なるようにしてもよい。
【0138】
また、上記実施形態は、円錐形状の三角ダメージマークと円弧形状の円弧ダメージマークとを用いた場合について説明したが、これに限定されない。用いるダメージマークの種類数、各ダメージマークの表示個数、表示時間は、適宜決定すればよい。また、用いるダメージマークの形状、大きさ、色は限定されず、これらが状態によって変化するようにしてもよい。例えば、通常はダメージマークの色を黄色とし、プレイヤの体力値HP(図1参照)が所定の値(例えば、20%)以下となった場合は赤色としてもよい。この色の変化により、プレイヤは、危険な状態であることを認識することができる。また、敵キャラクタとの距離に応じて、ダメージマークの大きさ、形状、色を変えるようにしてもよい。例えば、敵キャラクタとの距離に応じて三角ダメージマーク長さ(円錐の高さ)を大きくしたり、円弧ダメージマークの大きさ(円弧の長さ)を大きくしてもよい。この大きさの違いにより、プレイヤは、敵キャラクタとの距離を認識することができる。
【0139】
上記実施形態では、ダメージ判定処理を弾丸の座標とプレイヤキャラクタを構成するポリゴン上の座標とで行っているが、ダメージ判定処理はこれに限定されない。ダメージ判定処理は、プレイヤキャラクタを包含する(あるいはプレイヤキャラクタに内包される)立体(いわゆる「アタリ」)と、弾丸との衝突判定により行われても良い。なお、立体(アタリ)の形状には、球、楕円体、直方体やこれら立体の組み合わせ等がある。アタリの形状は、これらのうち何れの形状であってもよいが、プレイヤキャラクタの形状とほぼ一致する形状であることが好ましい。
【0140】
上記実施形態では、家庭用ゲーム装置でゲームを実施する場合について説明したが、これに限られない。本発明は、ゲームが実施されるゲーム装置の種類に限定されず適用することができ、例えば、携帯型ゲーム装置、アーケードゲーム装置、および、ゲームソフトが搭載されているパーソナルコンピュータ等でゲームを実施する場合にも適用することができる。
【0141】
上記実施形態では、ゲーム装置1を単独で用いる場合について説明したが、これに限られない。本発明は、複数のゲーム装置1をケーブルあるいは無線通信により接続したり、ゲーム装置1をゲームサーバにインターネット回線2で接続したりすることにより、複数のゲーム装置1で同時にゲームを実施する場合にも適用することができる。
【0142】
上記実施形態では、シューティングゲームを例に説明したが、これに限られない。本発明は、モニタの画面に表示されない敵キャラクタが、どの方向から攻撃してきているかをプレイヤが直感的に理解できるようにするものであるから、敵キャラクタが離れた場所から攻撃を仕掛けるゲームにおいて適用できる。例えば、リアルタイムでのシューティングを行うロールプレイイングゲームにも適用することができるし、格闘ゲームにおいて複数の敵キャラクタが飛び道具を用いて攻撃するような場合にも適用することができる。また、プレイヤキャラクタが敵キャラクタを攻撃するのではなく、敵キャラクタからの一方的な攻撃を避けながら逃亡するゲームにおいても適用することができる。
【0143】
また、本発明は、複数のプレイヤの操作するキャラクタ若しくはCPUの制御するキャラクタがチームを組んで協同して敵キャラクタと対戦するようなゲームや、敵キャラクタとしての他のプレイヤの操作するキャラクタと対戦するようなゲームにも適用することができる。また、敵キャラクタは、人格を持ったものを模したオブジェクトでなくてもよく、ロボット、戦闘機、戦車、大砲等の移動可能な武器等であってもよい。
【0144】
本発明に係るゲーム装置は、上述した実施形態に限定されるものではない。本発明に係るゲーム装置の各部の具体的な構成は、種々に設計変更自在である。
【符号の説明】
【0145】
1 ゲーム装置
11 本体
111 制御部
111a CPU(プレイヤ位置情報取得手段、敵位置情報取得手段、攻撃方向取得手段、ダメージマーク生成手段、表示制御手段、算出手段)
111b ROM
111c RAM
112 描画処理部(表示制御手段)
113 音声処理部
114 ディスクドライブユニット
115 メモリカード接続ユニット
116 I/Oインターフェース部
117 通信処理部
12 操作コントローラ
13 モニタ
14 ディスク
15 メモリカード
16 ネットワークアダプタ
2 ネットワーク回線
【技術分野】
【0001】
本発明は、敵キャラクタからの攻撃方向が直感的に判るように表示されるゲーム装置、このゲーム装置を実現するためのプログラム、および、このプログラムを記録した記録媒体に関する。
【背景技術】
【0002】
従来、プレイヤが所定のキャラクタ(例えば、戦闘員、戦闘機、戦車など)を操作し、銃弾やミサイル、レーザなどの武器を用いて、敵であるキャラクタを攻撃するシューティングゲームが開発されている。以下では、プレイヤが操作するキャラクタを「プレイヤキャラクタ」といい、敵であるキャラクタを「敵キャラクタ」という。
【0003】
一般的に、シューティングゲームでは、プレイヤがプレイヤキャラクタに敵キャラクタを攻撃させ、敵キャラクタに攻撃を与える(例えば、銃弾やミサイルが直撃するなど)と、得点が加算される。一方、プレイヤキャラクタが敵キャラクタから攻撃を受けると、プレイヤキャラクタはダメージを受け、当該プレイヤキャラクタに予め設定される体力値が減少する。受けたダメージの蓄積量が所定の値を超え、プレイヤキャラクタの体力値がゼロになると、ゲームが終了となる。したがって、プレイヤは、敵キャラクタの攻撃を受けないようにしつつ敵キャラクタに攻撃を与えるように、プレイヤキャラクタを操作する必要がある。
【0004】
しかし、表示画面には仮想ゲーム空間の一部しか表示されないので、プレイヤは、表示画面に表示されない位置に存在する敵キャラクタに気付くことができない。プレイヤは、表示画面上に表示されない敵キャラクタから攻撃を受けても避けることができず、また、存在することに気付かない敵キャラクタを攻撃することもできない。このプレイヤの不利な状況を改善するために、表示画面上に表示されない敵キャラクタの位置をプレイヤに知らせる機能を設けたシューティングゲームが開発されている(例えば、特許文献1)。
【0005】
例えば、敵キャラクタの位置を表示するレーダを表示画面上に表示するゲームがある。このレーダでは、例えば上空からプレイヤキャラクタを中心として仮想ゲーム空間を見た場合の敵キャラクタの位置が表示されており、プレイヤはプレイヤキャラクタに対する敵キャラクタの相対的な位置や方向を知ることができる。また、敵キャラクタが移動することにより表示画面上から外れた場合に、表示画面上の当該敵キャラクタが存在する方向に対応する位置に当該方向を示すマーカを表示するゲームがある。プレイヤは当該マーカにより敵キャラクタの存在する方向を把握することができる。
【0006】
しかしながら、仮想ゲーム空間上に敵キャラクタが多数存在する場合、前者においてはレーダに多数の敵キャラクタの位置が表示されることになり、後者においては表示画面上に多数のマーカが表示されることになる。この場合、多数のマーカ表示などによりゲーム画面が見づらくなるとともに、常に全ての敵キャラクタから同時に攻撃を受けるとは限らず、プレイヤはどの敵キャラクタからの攻撃を避けるべきかの判断に迷うことにもなるので、表示画面上に全ての敵キャラクタの位置をプレイヤに知らせることは必ずしも好ましいとは言えない。
【0007】
仮想ゲーム空間上に敵キャラクタが多数存在する場合、プレイヤには、必ずしも全ての敵キャラクタの位置を知らせる必要はなく、攻撃してきた敵キャラクタの位置だけをプレイヤに知らせる方がゲーム画面の煩雑化を防止でき、プレイヤにとっても攻撃をしてきた敵キャラクタに対する対処に集中できるので、好ましい。すなわち、プレイヤは、敵キャラクタから攻撃を受けた場合に、当該敵キャラクタからの次の攻撃をかわすか、当該敵キャラクタを攻撃すればよいので、プレイヤキャラクタを操作し易くなる。そこで、プレイヤキャラクタが敵キャラクタから攻撃を受けた場合に、当該敵キャラクタからの攻撃の方向(以下、「攻撃方向」と記載する。)を示すダメージマークが表示されるシューティングゲームが開発されている。
【0008】
図13は、敵キャラクタから攻撃を受けた場合に、攻撃方向を示すダメージマークが表示される従来のシューティングゲームを説明するための図である。同図は当該ゲームの1場面の表示画像を示しており、三次元の仮想ゲーム空間におけるプレイヤキャラクタの視点から見た画像が表示されている。
【0009】
図13に示す画像には、マシンガンGUN、敵キャラクタEC、ダメージマークDMが表示されている。マシンガンGUNは、プレイヤキャラクタが構えるマシンガンであり、その照準部分が表示されている。敵キャラクタECは、プレイヤキャラクタを攻撃するキャラクタである。ダメージマークDMは、プレイヤキャラクタが攻撃を受けたときに表示される円弧形状のマークであり、表示される方向や位置によって攻撃方向を示すものである。このダメージマークDMは、画面中央の1点を中心として形成される円上を表示領域とし、その形状がこの円を4分割した形である。このダメージマークDMは、上記1点を中心に上下左右の4つの位置に回転移動して表示可能である。図13では、上側の位置に上向きにダメージマークDMが表示されている。これら4つのダメージマークDMの表示位置は、仮想ゲーム空間におけるプレイヤキャラクタを中心にその正面方向に対する前方領域、右側領域、左側領域、後方領域の4つの領域に対応している。すなわち、プレイヤキャラクタを中心に水平方向に円を描き、その円をプレイヤキャラクタの正面方向を基準に4分割してできる4つの領域を、ダメージマークDMの4つの表示位置及び4種類の円弧の向き(上の位置及び向き、右の位置及び向き、左の位置及び向きおよび下の位置及び向き)に対応させるようにしている。
【0010】
従って、プレイヤキャラクタが前方向から攻撃を受けた場合、ダメージマークDMは上の位置及び向きの円弧形状となり、右方向から攻撃を受けた場合ダメージマークDMは右の位置及び向きの円弧形状となる。また、プレイヤキャラクタが左方向から攻撃を受けた場合、ダメージマークDMは左の位置及び向きの円弧形状となり、後方向から攻撃を受けた場合ダメージマークDMは下の位置及び向きの円弧形状となる。
【0011】
図13に示す画像はプレイヤキャラクタが前方向にいる敵キャラクタEC(すなわち、敵キャラクタECが存在する領域は前方領域)から攻撃を受けた状態の画像なので、上の位置に上側を向いたダメージマークDMが表示されている。なお、同図に示す画像では敵キャラクタECも表示されているが、敵キャラクタECが画像内に表示されない場合でも、プレイヤキャラクタが攻撃を受けた場合は、ダメージマークDMが表示される。
【0012】
従って、プレイヤは、ダメージマークDMが表示されることで攻撃を受けたことを知ることができ、かつ、ダメージマークDMの表示位置と向きとによって、攻撃方向を判断することができるので、ダメージマークDMを見ながら効率よく、攻撃をしてきた敵キャラクタECの次の攻撃をかわしたり、当該敵キャラクタECを攻撃したりすることができる。
【先行技術文献】
【特許文献】
【0013】
【特許文献1】特開平11−70274号公報
【発明の概要】
【発明が解決しようとする課題】
【0014】
上述したように、ダメージマークDMの表示領域は、画面中央の1点を中心として形成される円上(鉛直面上の円)である。このため、プレイヤは、ダメージマークDMの示す攻撃方向が、仮想ゲーム空間においてプレイヤキャラクタから見て何れの方向にあたるのかを変換して考えなければならず、直感的に攻撃方向を把握することが難しかった。
【0015】
また、図13に示す敵キャラクタECからの攻撃方向の表示方法は、仮想ゲーム空間におけるプレイヤキャラクタを中心に水平方向に円を描き、その円をプレイヤキャラクタの正面方向を基準に4分割してできる4つの領域(4つの方向)を、ダメージマークDMの表示位置及び向きで表示する方法である。この様に、従来の方法では、水平方向の攻撃方向が鉛直面上の向きで表示されており、ゲーム展開を示す画像(プレイヤキャラクタの視点から見た画像)と敵キャラクタECからの攻撃方向を示す画像(ダメージマークDM)が同一の方向を見た画面内の画像ではないので、プレイヤはダメージマークDMによって敵キャラクタECの攻撃方向を直感的に判断することは難しい。
【0016】
また、ダメージマークDMはプレイヤキャラクタを頭上の位置から見たときの攻撃の方向を二次元的に示しているので、ゲーム画像における攻撃の上下(高さ)方向を示すことができない。ゲーム空間のフィールドに高低差があり敵キャラクタECが上記の4つの領域のうちのいずれかの領域内で高い位置から攻撃してきた場合でも低い位置から攻撃してきた場合でも、両者のダメージマークDMの表示は同じものとなる。したがって、プレイヤは三次元の仮想ゲーム空間における上下の攻撃方向を判断することができず、敵キャラクタからの次の攻撃をかわしたり、反撃したりするのが難しいという問題があった。
【0017】
本発明は上記した事情のもとで考え出されたものであって、プレイヤキャラクタが攻撃を受けたときに、三次元の仮想ゲーム空間における攻撃方向をプレイヤが直感的に判断できるようにダメージマークを表示するゲーム装置を提供することをその目的としている。
【課題を解決するための手段】
【0018】
上記課題を解決するため、本発明では、次の技術的手段を講じている。
【0019】
本発明の第1の側面によって提供されるプログラムは、コンピュータを、三次元の仮想ゲーム空間内において、プレイヤが操作するプレイヤキャラクタと、このプレイヤキャラクタを攻撃する敵キャラクタとを活動させるゲーム装置として機能させるためのプログラムであって、前記コンピュータを、前記仮想ゲーム空間内における前記プレイヤキャラクタの位置を示すプレイヤ位置情報を取得するプレイヤ位置情報取得手段と、前記仮想ゲーム空間内における前記敵キャラクタの位置を示す敵位置情報を取得する敵位置情報取得手段と、前記プレイヤ位置情報と前記敵位置情報とに基づいて、前記プレイヤキャラクタが前記敵キャラクタから受けた攻撃の方向を取得する攻撃方向取得手段と、前記プレイヤキャラクタが前記敵キャラクタから攻撃を受けた際に、前記プレイヤキャラクタの周囲に設定された所定の領域における前記攻撃の方向に対応した位置に、前記攻撃の方向を示すオブジェクトであるダメージマークを生成するダメージマーク生成手段と、前記プレイヤキャラクタ及び前記ダメージマークを含む、前記三次元の仮想ゲーム空間の少なくとも一部を表示させる表示制御手段と、して機能させる。
【0020】
本発明の好ましい実施の形態においては、前記所定の領域は、前記三次元の仮想ゲーム空間を上方から見たときに前記プレイヤキャラクタの基準点を中心とした円状に設定されている。
【0021】
本発明の好ましい実施の形態においては、前記コンピュータを、前記プレイヤ位置情報における高さ情報と前記敵位置情報における高さ情報とから、攻撃の方向の高さ情報である攻撃方向高さ情報を算出する算出手段として更に機能させ、前記ダメージマーク生成手段は、前記算出手段によって算出された前記攻撃方向高さ情報に基づいて、前記ダメージマークを生成する。
【0022】
本発明の好ましい実施の形態においては、前記敵位置情報取得手段は、前記仮想ゲーム空間内における前記敵キャラクタが攻撃を発した位置である攻撃発動位置を示す攻撃発動位置情報を前記敵位置情報として取得し、前記プレイヤ位置情報取得手段は、前記仮想ゲーム空間内における前記プレイヤキャラクタが攻撃を受けた位置である攻撃到達位置を示す攻撃到達位置情報を前記プレイヤ位置情報として取得する。
【0023】
本発明の好ましい実施の形態においては、前記攻撃方向高さ情報は、前記攻撃到達位置と前記攻撃発動位置を通る直線の水平面に対する角度、又は前記直線と重力方向に延びる直線との間の角度で表される。
【0024】
本発明の好ましい実施の形態においては、前記ダメージマーク生成手段は、前記攻撃方向高さ情報に応じて、前記ダメージマークを傾けて生成する。
【0025】
本発明の好ましい実施の形態においては、前記ダメージマーク生成手段は、前記攻撃方向高さ情報に応じた高さに、前記ダメージマークを生成する。
【0026】
本発明の好ましい実施の形態においては、前記ダメージマーク生成手段は、複数種類の前記ダメージマークを生成する。
【0027】
本発明の好ましい実施の形態においては、前記複数種類のダメージマークは、前記攻撃の方向を指し示す第1のマークと、この第1のマークより広い範囲で前記攻撃の方向を指し示す第2のマークを含む。
【0028】
本発明の好ましい実施の形態においては、前記ダメージマーク生成手段は、前記第1のマーク及び第2のマークを所定時間だけ前記仮想ゲーム空間に配置した後に消去し、前記第1のマークの前記所定時間と前記第2のマークの前記所定時間とは異なっている。
【0029】
本発明の好ましい実施の形態においては、前記ダメージマーク生成手段は、前記第1のマーク及び第2のマークをそれぞれ所定個数のみ配置し、前記所定個数は、前記第2のマークより前記第1のマークの方が多い。
【0030】
本発明の好ましい実施の形態においては、前記第1のマーク及び第2のマークは、前記攻撃の方向を指し示す部位である指示部を有する形状であり、前記ダメージマーク生成手段は、前記第2のマークの前記指示部の中心を、最も新しく生成された第1のマークの指示部と重ねて配置する。
【0031】
本発明の好ましい実施の形態においては、記ダメージマークは、円錐形状であり、当該円錐の高さ方向が攻撃の方向であり、当該円錐の頂点がプレイヤキャラクタの方を向いている。
【0032】
本発明の好ましい実施の形態においては、前記ダメージマークは、前記プレイヤキャラクタ位置を中心とする円の攻撃方向の部分である円弧形状である。
【0033】
本発明の好ましい実施の形態においては、前記ダメージマーク生成手段は、前記プレイヤキャラクタが攻撃を受けたときから所定時間のみ前記ダメージマークを配置する。
【0034】
本発明の好ましい実施の形態においては、前記ダメージマーク生成手段は、所定個数のみ前記ダメージマークを配置し、新たにダメージマークを生成する際に、前記ダメージマークが所定個数を超える場合には、最先に生成された前記ダメージマークを消去する。
【0035】
本発明の好ましい実施の形態においては、前記ダメージマーク生成手段は、前記プレイヤキャラクタと攻撃を行なった前記敵キャラクタとの距離に応じて、前記ダメージマークの態様を変化させる。
【0036】
本発明の好ましい実施の形態においては、前記所定の領域は、前記プレイヤキャラクタの基準点を中心とした球状に設定されている。
【0037】
本発明の第2の側面によって提供される記録媒体は、本発明の第1の側面によって適用されるプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【0038】
本発明の第3の側面によって提供されるゲーム装置は、本発明の第1の側面によって適用されるプログラムを実行するゲーム装置である。
【発明の効果】
【0039】
本発明によれば、プレイヤキャラクタが攻撃を受けたときに、プレイヤ位置情報と敵位置情報とに基づいて攻撃の方向が取得され、当該攻撃の方向を示すオブジェクトであるダメージマークが生成されて表示される。当該ダメージマークはプレイヤキャラクタの周囲に設定された所定の領域における攻撃の方向に対応した位置に表示されるので、プレイヤは、三次元の仮想ゲーム空間における攻撃方向を直感的に判断することができる。
【0040】
本発明のその他の特徴および利点は、添付図面を参照して以下に行う詳細な説明によって、より明らかとなろう。
【図面の簡単な説明】
【0041】
【図1】本実施形態に係るシューティングゲームの1場面の表示画像である。
【図2】三次元の仮想ゲーム空間に設定されたワールド座標系を説明するための図である。
【図3】プレイヤキャラクタ位置座標Pと、円弧ダメージマークDMCおよび三角ダメージマークDMTとの関係を説明するための図である。
【図4】仮想ゲーム空間のXZ平面における攻撃方向のZ軸に対する角度θdを算出する方法を説明する図である。
【図5】仮想ゲーム空間のXZ平面に対する攻撃方向の角度θyを算出する方法を説明する図である。
【図6】ダメージマークテーブルを説明するための図である。
【図7】本発明に係るゲーム装置を示す構成図である。
【図8】ダメージマーク処理を示すフローチャートである。
【図9】三角ダメージマーク計時処理を示すフローチャートである。
【図10】円弧ダメージマーク計時処理を示すフローチャートである。
【図11】ダメージマークテーブル更新処理を示すフローチャートである。
【図12】ダメージマーク情報送信処理を示すフローチャートである。
【図13】従来のシューティングゲームを説明するための図である。
【発明を実施するための形態】
【0042】
以下、本発明の実施の形態を、添付図面を参照して具体的に説明する。本実施形態では、シューティングゲームを家庭用ゲーム装置(以下、「ゲーム装置」とする。)において実施する場合を例にして具体的に説明する。
【0043】
本実施形態に係るシューティングゲームは、三次元の仮想ゲーム空間内において、プレイヤがプレイヤキャラクタを操作して、プレイヤキャラクタを攻撃してくる複数の敵キャラクタと戦うゲームである。プレイヤは、プレイヤキャラクタにマシンガンや手榴弾などの武器を使用させて攻撃させることで、敵キャラクタを倒すことができる。一方、敵キャラクタも、同様の武器でプレイヤキャラクタを攻撃してくる。プレイヤキャラクタが攻撃を受けると、プレイヤキャラクタはダメージを受け、当該プレイヤキャラクタに予め設定される体力値が減少する。受けたダメージの蓄積量が所定の値を超え、プレイヤキャラクタの体力値がゼロになると、ゲームが終了となる。したがって、敵キャラクタから攻撃を受けた場合、次の攻撃をかわすか、あるいは攻撃をしてきた敵キャラクタに反撃するように、プレイヤはプレイヤキャラクタを操作する必要がある。本実施形態においては、敵キャラクタからの攻撃を受けた場合に、敵キャラクタが三次元の仮想ゲーム空間のどの方向から攻撃をしてきたか(攻撃方向)を示すダメージマークが表示される。当該ダメージマークが表示されることが、本発明の特徴的部分である。
【0044】
各オブジェクト(プレイヤキャラクタや敵キャラクタを含む仮想ゲーム空間内の物体であり、ダメージマークも含まれる。)は、三次元の仮想ゲーム空間内に配置され、プレイヤキャラクタはプレイヤの操作に基づいて三次元の仮想ゲーム空間内を移動する。その他のオブジェクトは、三次元の仮想ゲーム空間内に固定されているか、ゲームプログラムに基づいて移動する。三次元の仮想ゲーム空間内の各オブジェクトは、投影処理により二次元の画像に投影されて、表示画面に表示される。ダメージマークもオブジェクトであり、三次元の仮想ゲーム空間内に配置されて、投影処理により表示画面上に表示される。ダメージマークは、三次元の仮想ゲーム空間を上から見た状態での攻撃方向を示す位置に配置される。また、ダメージマークは、敵キャラクタがプレイヤキャラクタと同じくらいの高さの位置から攻撃してきたのか、高い位置から攻撃してきたのか、低い位置から攻撃してきたのかも表している。以下、攻撃方向の高さの要素を「攻撃方向における高さ方向」という。本実施形態では、攻撃方向における高さ方向に応じて、ダメージマークの配置の態様(傾き)を3段階で変えている。
【0045】
図1は、ダメージマークを説明するための図であり、本実施形態に係るシューティングゲームの1場面の表示画像を示している。本実施形態に係るシューティングゲームはいわゆるサードパーソン(三人称視点)・シューティングゲームであるため、プレイヤキャラクタの後部上方からプレイヤキャラクタおよびその周辺を俯瞰した画像が表示されている。同図に示す表示画像には、プレイヤキャラクタPC、スコアSC、体力値HP、円弧ダメージマークDMC、三角ダメージマークDMT1,DMT2が表示されている。体力値HPは表示画面の左上に表示され、スコアSCは体力値HPのすぐ下に表示される。プレイヤキャラクタPCは、表示画面の中央に表示される。円弧ダメージマークDMCおよび三角ダメージマークDMT1,DMT2は、プレイヤキャラクタPCの周囲に設定された所定の領域に表示される。なお、三角ダメージマークDMT1,DMT2が本発明の「第1のマーク」に対応し、円弧ダメージマークDMCが本発明の「第2のマーク」に対応する。
【0046】
プレイヤキャラクタPCは、プレイヤが操作するキャラクタであり、ゲーム開始時にプレイヤによって選択されて決定される。なお、プレイヤの選択によらず、あらかじめ所定のキャラクタに決められていてもよい。スコアSCは、プレイヤが獲得した得点であり、敵キャラクタを攻撃したり倒したりすることなどにより取得され加算されていく。体力値HPは、プレイヤキャラクタPCの体力値を示すレベル表示であり、敵キャラクタからの攻撃を受けることにより減少していく。
【0047】
円弧ダメージマークDMCおよび三角ダメージマークDMT1,DMT2は、敵キャラクタからの攻撃を受けたときに、敵キャラクタの攻撃方向を示すための表示である。なお、円弧ダメージマークおよび三角ダメージマークを総称してダメージマークという。
【0048】
円弧ダメージマークDMCは、プレイヤキャラクタPCが受けた攻撃のおおまかな方向を表すために表示される。円弧ダメージマークDMCは、三次元の仮想ゲーム空間におけるプレイヤキャラクタPCの位置を示すプレイヤキャラクタ位置P(例えば、プレイヤキャラクタPCの上半身の中心)を中心とする、所定の幅及び厚みのある円弧形状のオブジェクトを表示したものある。なお、円弧ダメージマークDMCのプレイヤキャラクタPCから遠い方の縁が、本発明の「攻撃方向を指し示す部位である指示部」に対応し、後述の中心位置P2(図4を参照)が本発明の「指示部の中心」に対応する。本実施形態では、円弧ダメージマークDMCは、プレイヤキャラクタPCが攻撃を受けたときから1秒間表示される。なお、この表示時間は1秒間に限定されるものではない。また、本実施形態では、円弧ダメージマークDMCが表示されている間に次の攻撃を受けた場合、表示画面が見にくくなることを防ぐために、前の攻撃に基づく円弧ダメージマークDMCは消去され、後の攻撃に基づく円弧ダメージマークDMCのみが表示される。したがって、連続して攻撃を受けると、最後の攻撃に基づく円弧ダメージマークDMCのみが表示される。なお、次の攻撃を受けた場合でも、この攻撃に基づく円弧ダメージマークDMCとともに、前の攻撃に基づく円弧ダメージマークDMCを表示し続けるようにしてもよい。
【0049】
三角ダメージマークDMT1,DMT2は、プレイヤキャラクタPCが受けた攻撃の詳細な方向を表すために表示される。すなわち、三角ダメージマークDMT1,DMT2が指し示す攻撃方向の範囲(高さ方向でなく水平方向での範囲)は、円弧ダメージマークDMCが指し示す攻撃方向よりも狭く、このため、三角ダメージマークDMT1,DMT2は円弧ダメージマークDMCよりも詳細に攻撃方向を示すことができる。なお、三角ダメージマークDMT1,DMT2の底面部分が、本発明の「攻撃方向を指し示す部位である指示部」に対応する。三角ダメージマークDMT1,DMT2は、三次元の仮想ゲーム空間における攻撃方向に底面を向け、プレイヤキャラクタPCの方に頂点を向けた円錐形状のオブジェクトを表示したものである。三次元の仮想ゲーム空間内の各オブジェクトは投影処理により二次元の表示画面に投影されて表示されるので、三角ダメージマークDMT1,DMT2は、表示画面上では略三角形状の表示となっている。なお、プレイヤキャラクタPCの真後ろからの攻撃の場合は、円錐の底面だけが表示されることになるので、円形状の表示となる。このように、三角ダメージマークDMT1,DMT2は円錐形状であるため、真後ろから見た場合に円形状、その他は三角形状で表示されることになり、何れの角度から見ても好適に表示される。
【0050】
三角ダメージマークDMT2は最後の攻撃に基づいて表示されており、三角ダメージマークDMT1はその1つ前の攻撃に基づいて表示されている。本実施形態では、表示画面が見にくくなることを防ぐために、表示画面に表示される三角ダメージマークを3個までとし、それ以前の攻撃に基づく三角ダメージマークは消去される。すなわち、表示画面上には最大3個の三角ダメージマークが表示される(なお、三角ダメージマークを攻撃の順に関係なく総称して説明する場合、「三角ダメージマークDMT」という。)。なお、表示個数は3個に限定されるものではなく、1個または2個だけとしてもよいし、4個以上の個数に制限してもよい。また、表示個数を制限しないようにしてもよい。
【0051】
また、本実施形態では、各三角ダメージマークDMTは、プレイヤキャラクタPCが攻撃を受けたときから0.5秒間表示されるが、この表示時間は0.5秒間に限定されるものではない。また、本実施形態では、三角ダメージマークDMTの表示時間を円弧ダメージマークDMCの表示時間より短い時間としているが、次の理由による。すなわち、三角ダメージマークDMTをあまり長い時間表示すると表示画面が見にくくなるからである。また、プレイヤキャラクタPCおよび敵キャラクタは仮想ゲーム空間上を移動しているので、長い時間表示された三角ダメージマークDMTが指し示す方向にはすでに敵キャラクタが位置しなくなっている可能性がある。さらに、詳細は後述するが、ゲーム装置の処理速度や通信ラグの関係上、三角ダメージマークDMTが指し示す方向に敵キャラクタが位置しない場合がある。このため、詳細な方向を表す三角ダメージマークDMTの表示時間を短くし、おおまかな攻撃方向を表す円弧ダメージマークDMCの表示時間を長くしている。なお、三角ダメージマークDMTの表示時間と円弧ダメージマークDMCの表示時間を同じとしてもよい。
【0052】
三角ダメージマークDMTだけでなく、円弧ダメージマークDMCも表示するのは、次の理由による。すなわち、プレイヤキャラクタPCの正面から攻撃を受けた場合、三角ダメージマークDMTはプレイヤキャラクタPCに隠れてしまうので、プレイヤが攻撃を受けたことに気付けない虞がある。したがって、本実施形態では、最新の攻撃方向のおおまかな方向を表すために、プレイヤキャラクタPCに隠れない大きさの円弧ダメージマークDMCも合わせて表示している。また、他のゲーム機と通信可能に接続され、他のゲーム機のプレイヤキャラクタ(敵キャラクタ)と自ゲーム機のプレイヤキャラクタとの間で通信対戦を行う場合には、通信ラグ(通信による遅延時間)から、三角ダメージマークDMTが指し示す攻撃方向に敵キャラクタが居ない場合がある。このような場合でも、おおまかな攻撃方向を表す円弧ダメージマークDMCによって、敵キャラクタの位置を指し示すことができ、プレイヤのダメージマークの表示への信頼性を損なうことが防止される。なお、本発明は、両方のダメージマークを表示することに限定されるものではなく、いずれか一方のみを表示するようにしてもよい。また、3種類以上のダメージマークを表示するようにしてもよい。また、各ダメージマークの形状や大きさは限定されない。
【0053】
三角ダメージマークDMTおよび円弧ダメージマークDMCは、攻撃方向における高さの方向も表している。三角ダメージマークDMT1は、仮想ゲーム空間における、円錐の高さ方向(円錐の底面に垂直であり頂点を通る線分の方向)が水平方向(水平面と平行な方向)であり、底面が鉛直方向と平行であるオブジェクトを表示したものである。これは、プレイヤキャラクタPCがほぼ同じ高さの敵キャラクタから攻撃されたことを表している。三角ダメージマークDMT2は、仮想ゲーム空間における、円錐の高さ方向が水平方向から上向きに傾いており、底面が鉛直方向から上向きに傾いていているオブジェクトを表示したものである。これは、プレイヤキャラクタPCが高い位置の敵キャラクタから攻撃されたことを表している。本実施形態において、三角ダメージマークDMTは、攻撃方向における高さ方向に応じて3段階に傾けて配置されて表示される。すなわち、水平方向より所定の角度(例えば15°)以上高い方向からプレイヤキャラクタPCが攻撃された場合、円錐の高さ方向が水平方向より例えば30°上方向に傾いた状態で配置され、水平方向より所定の角度(例えば15°)以上低い方向から攻撃された場合、円錐の高さ方向が水平方向より例えば30°下方向に傾いた状態で配置される。
【0054】
円弧ダメージマークDMCも、同様に、攻撃方向における高さ方向に応じて3段階に傾けて配置されて表示される。同図に示す円弧ダメージマークDMCは、仮想ゲーム空間において、斜め上方向に傾けて配置された円弧状のオブジェクトを表示したものであり、プレイヤキャラクタPCが高い位置の敵キャラクタから攻撃されたことを表している。なお、上記角度はあくまでも例示であって、これらの値に限定されるものではなく、適宜設定すればよい。また、ダメージマークの表示における傾き角度を3段階とすることに限定されるものでもなく、より細かく段階を分けて表示するようにしてもよいし、攻撃方向と水平方向とがなす角度に比例させてダメージマークの傾き角度を連続的に変化させるようにしてもよい。
【0055】
ダメージマークは、敵キャラクタが発射した弾丸のプレイヤキャラクタPCにおける着弾位置、および着弾した弾丸が発射されたときの発射位置に基づいて配置される。また、三次元の仮想ゲーム空間には、座標系が設定されている。以下、仮想ゲーム空間に設定されている座標系を、「ワールド座標系」という。
【0056】
図2は、三次元の仮想ゲーム空間に設定されたワールド座標系を説明するための図である。ワールド座標系のY軸は仮想ゲーム空間の鉛直方向に設定されており、ワールド座標系のXZ平面は、仮想ゲーム空間の水平平面に設定されている。仮想ゲーム空間内の位置
は、ワールド座標系の座標で表される。また、各オブジェクトの位置もワールド座標系の座標で表される。例えば、プレイヤキャラクタPCの位置は、例えばプレイヤキャラクタの上半身の中心点であるプレイヤキャラクタ位置座標P(Xp,Yp,Zp)で表される
。
【0057】
各オブジェクトは、複数のポリゴン(例えば、三角形)によって構成されている。各ポリゴンは当該オブジェクトの位置との相対的な位置の情報を有しており、各ポリゴンの座標(ポリゴンが三角形の場合は3つの頂点の座標)は、当該オブジェクトの位置の座標から決定される。もっとも、ダメージマークの各ポリゴン座標は、プレイヤキャラクタ位置座標P(Xp,Yp,Zp)を基準として決定される。投影処理により、各ポリゴンのワ
ールド座標系での三次元座標が表示画面に対応する二次元の座標系(以下、「スクリーン座標系」という。)の座標に変換され、変換後の座標にポリゴンが描画されることで、仮想ゲーム空間上の各オブジェクトが表示画面上に描画される。
【0058】
図3は、プレイヤキャラクタ位置座標Pと、円弧ダメージマークDMCおよび三角ダメージマークDMTとの関係を説明するための図である。円弧ダメージマークDMCは、座標P(Xp,Yp,Zp)を中心とし所定の半径(距離d2)を有するXZ平面(水平面
)と平行な円のうち、座標PからZ軸に平行に延ばした直線Sが当該円と交わる点を中心とする円弧(例えば半円)形状のオブジェクトである。また、三角ダメージマークDMTは、座標PからZ軸方向に所定の距離d1はなれた点を頂点とし、座標PからZ軸と平行に延ばした直線Sの方向を高さ方向とする円錐形状のオブジェクトである。
【0059】
円弧ダメージマークDMCおよび三角ダメージマークDMTは、敵キャラクタからの攻撃方向に基づいて、座標P(Xp,Yp,Zp)を中心として回転されて配置される。
【0060】
図2においては、高い位置にいる敵キャラクタECのマシンガンから発射された弾丸がプレイヤキャラクタPCに着弾した状態を表示している。なお、プレイヤキャラクタPCに着弾したことは、弾丸の座標とプレイヤキャラクタPCを構成するいずれかのポリゴン上の座標(ポリゴンの各頂点の座標で囲まれる領域の座標)とが一致したことで判定される。この場合、弾丸の着弾位置Aは、プレイヤキャラクタPCに着弾したときの弾丸の座標であり、その座標をA(Xa,Ya,Za)とする。同図においては、プレイヤキャラ
クタPCの頭部となっている。また、弾丸の発射位置Bは、着弾した弾丸が発射されたときの敵キャラクタECのマシンガンの先端の座標であり、その座標をB(Xb,Yb,Z
b)とする。ダメージマークは、プレイヤキャラクタ位置P(Xp,Yp,Zp)、着弾
位置A(Xa,Ya,Za)、および発射位置B(Xb,Yb,Zb)に基づいて配置さ
れる。なお、弾丸の発射位置B(Xb,Yb,Zb)は、プレイヤキャラクタPCに弾丸
が着弾したときの敵キャラクタECのマシンガンの先端の座標であってもよい。
【0061】
図4は、仮想ゲーム空間のXZ平面における攻撃方向のZ軸に対する角度θdを算出する方法を説明する図である。図4は、図2に示す仮想ゲーム空間をXZ平面に投影した図である。XZ平面に投影された攻撃方向は、着弾位置A(Xa,Za)から発射位置B(
Xb,Zb)に向かうベクトルで表される。当該ベクトルをベクトルWとすると、ベクト
ルW=(Xb−Xa,Zb−Za)となる。ここで、Z方向の単位ベクトルをベクトルZ
=(0,1)とすると、ベクトルWとベクトルZとの内積は、下記(1)式となる。したがって、θdは、下記(2)式で算出される。
【0062】
【数1】
【0063】
三角ダメージマークDMTおよび円弧ダメージマークDMCは、その中心位置(P1およびP2)が、プレイヤキャラクタ位置座標P(Xp,Yp,Zp)を中心としてY軸周
りに、Z軸に対してθd回転されて配置される。なお、三角ダメージマークDMTの中心位置P1は、例えば円錐の頂点(頂点の近傍も含む)であり、円弧ダメージマークDMCの中心位置P2は、例えば円弧の中心の点(中心の点近傍も含む)である。もっとも、中心位置P1,P2は、これらの位置に限定されず、三角ダメージマークDMTおよび円弧ダメージマークDMCにおける任意の1点であればよい。
【0064】
上述したように、プレイヤキャラクタPCの鉛直(Y軸)方向から見たときに、プレイヤキャラクタ位置座標P(Xp,Yp,Zp)を中心として所定の距離d1を半径とする
円R1(図略)の上に三角ダメージマークDMTの中心位置P1が位置し、当該中心位置P1を中心として三角ダメージマークDMTが配置される。すなわち、円R1の上が、三角ダメージマークDMTの配置領域となる。また、プレイヤキャラクタ位置座標P(Xp
,Yp,Zp)を中心として所定の距離d2を半径とする円R2(図略)の上に円弧ダメージマークDMCの中心位置P2が位置し、当該中心位置P2を中心として円弧ダメージマークDMCが配置される。すなわち、円R2の上が、円弧ダメージマークDMCの配置領域となる。
【0065】
図5は、仮想ゲーム空間のXZ平面(水平面)に対する攻撃方向の角度θyを算出する方法を説明する図である。図5は、図2に示す仮想ゲーム空間を横から見た図である。着弾位置AのY座標はYaであり、発射位置BのY座標はYbである。各Y座標は、水平面からの高さを表している。水平面に投影された発射位置Bと着弾位置Aとの距離Lは、下記(3)式で算出される。したがって、仮想ゲーム空間のXZ平面に対する攻撃方向の角度θyは、下記(4)式で算出される。
【0066】
【数2】
【0067】
三角ダメージマークDMTおよび円弧ダメージマークDMCは、θyに応じて、軸Q(ベクトルWに直交し、プレイヤキャラクタの位置Pを通過する水平方向に延びる軸、図4参照)周りに回転させて(Y軸方向に傾けて)配置される。すなわち、θy≦−15°の場合、Y軸の負方向に30°傾けて配置され、−15°<θy<15°の場合、Y軸方向に傾けることなく配置され、15°≦θyの場合、Y軸の正方向に30°傾けて配置される。
【0068】
上述したように、円R1の上の点を軸Q周りに±30°回転させた点にも中心位置P1が位置し、当該中心位置P1を中心として三角ダメージマークDMTが配置される。すなわち、円R1の中心のY座標にd1・sin(30°)=(1/2)d1を加えた点を中心とし、円R1に平行な円R1'(図略)の上、および、円R1の中心のY座標にd1・sin(−30°)=−(1/2)d1を加えた点を中心とし、円R1に平行な円R1”(図略)の上も、三角ダメージマークDMTの配置領域となる。なお、円R1’および円R1”は、点(Xp,Yp±(1/2)d1,Zp)を中心としXZ平面に平行な半径(
√3/2)d1の円となる。
【0069】
また、円R2の上の点を軸Q周りに±30°回転させた点にも中心位置P2が位置し、当該中心位置P2を中心として円弧ダメージマークDMCが配置される。すなわち、円R2の中心のY座標にd2・sin(30°)=(1/2)d2を加えた点を中心とし、円R2に平行な円R2'(図略)の上、および、円R2の中心のY座標にd2・sin(−30°)=−(1/2)d2を加えた点を中心とし、円R2に平行な円R2”(図略)の上も、円弧ダメージマークDMCの配置領域となる。なお、円R2’および円R2”は、点(Xp,Yp±(1/2)d2,Zp)を中心としXZ平面に平行な半径(√3/2)
d2の円となる。
【0070】
プレイヤキャラクタPCが攻撃を受けたとき(プレイヤキャラクタPCに着弾した)の着弾位置Aおよび発射位置Bの座標は、ダメージマークテーブルに記録される。ダメージマークテーブルは、ダメージマークを表示するための情報を記録するためのテーブルである。
【0071】
図6は、ダメージマークテーブルを説明するための図である。ダメージマークテーブルは、ゲーム開始時にゲーム装置の記憶領域に設けられ、後述するダメージマーク処理で書き換えられて使用される。ダメージマークテーブルには、ダメージマークID、描画フラグ、カウンタ、発射位置座標、および着弾位置座標が記録される。
【0072】
ダメージマークIDは、各ダメージマークを表すIDである。DMT1,DMT2,DMT3は3つの三角ダメージマークを表している。本実施形態では三角ダメージマークを3個まで表示するため、3つのIDが設けられている。DMCは円弧ダメージマークを表している。
【0073】
描画フラグは、当該ダメージマークを描画するか否かを識別するためのフラグである。描画フラグが「ON」のダメージマークは描画されるが、描画フラグが「OFF」のダメージマークは描画されない。プレイヤキャラクタが攻撃を受けたとき、ダメージマークID「DMC」の描画フラグが「ON」にされ、ダメージマークID「DMT1」,「DMT2」,「DMT3」のいずれかの描画フラグが「ON」にされる。また、「ON」にされた描画フラグは、所定の時間が経過すると「OFF」に切り替えられる。この「ON」と「OFF」の切り替えについては、後述するダメージマーク処理で説明する。
【0074】
カウンタは、当該ダメージマークの描画フラグが「ON」にされてからの時間を計時するためのものであり、描画処理されたフレーム数をカウントしている。本実施形態においては、1/30秒毎に描画処理を行うことから、描画処理されたフレーム数をカウントすることで時間を計時している。この場合、カウンタが15になると0.5秒経過したことになる。なお、描画処理のタイミングは、1/30秒毎に限られない。また、描画処理のタイミングは、固定されていなくともよく、変動していてもよい。例えば、描画処理が1/60秒毎となる期間は、0.5ずつカウントするように変化させればよい。また、フレームをカウントする代わりに、実際に時間を計時するようにしても構わない。
【0075】
着弾位置座標および発射位置座標は、プレイヤキャラクタPCが攻撃を受けたとき(プレイヤキャラクタPCに弾丸が着弾した)の着弾位置Aおよび着弾した弾丸が発射された発射位置Bのワールド座標系における座標である。なお、本実施形態では、着弾位置座標が本発明の「プレイヤ位置情報」および「攻撃到達位置情報」に対応し、発射位置座標が本発明の「敵位置情報」および「攻撃発動位置情報」に対応する。
【0076】
ダメージマークテーブルに記録された発射位置座標および着弾位置座標に基づいて、上記(2)式および(4)式により角度θdおよびθyが算出される。なお、角度θdおよびθyが本発明の「プレイヤキャラクタが敵キャラクタから受けた攻撃の方向」に対応する。また、角度θyが本発明の「攻撃方向高さ情報」に対応するが、図5の角度θy2が本発明の「攻撃方向高さ情報」であってもよい。この角度θdおよび、角度θyまたは角度θy2に基づいて、三角ダメージマークDMTおよび円弧ダメージマークDMCが仮想ゲーム空間に配置される。仮想ゲーム空間に配置された三角ダメージマークDMTおよび円弧ダメージマークDMCは、他のオブジェクトとともに、投影処理により座標変換されて表示画面上に表示される。
【0077】
なお、上記では、敵キャラクタのマシンガンによる攻撃での弾丸の発射位置および着弾位置について説明したが、攻撃はこれに限られない。例えば、ライフルやピストルなどによる攻撃でも同様であり、弾丸が発射されないレーザ光線銃や弓矢などでも同様である。また、手榴弾や投石による攻撃などの飛び道具による攻撃でも同様である。
【0078】
次に、本実施形態のハード構成について説明する。
【0079】
図7は、本発明に係るゲーム装置を示す構成図である。ゲーム装置1は、本体11、操作コントローラ12、およびモニタ13を備えている。操作コントローラ12およびモニタ13は、専用のケーブルによって本体11に接続されている。本体11には、ゲームプログラムやゲームデータが記録されているディスク14が装着され、また、必要に応じてゲームデータを保存するためのメモリカード15も装着される。
【0080】
本体11は、制御部111、描画処理部112、音声処理部113、ディスクドライブユニット114、メモリカード接続ユニット115、I/Oインターフェース部116、および通信処理部117を備える。制御部111には、描画処理部112、音声処理部113、I/Oインターフェース部116、および通信処理部117が接続されている。また、I/Oインターフェース部116には、ディスクドライブユニット114、メモリカード接続ユニット115、操作コントローラ12、およびモニタ13が接続されている。
【0081】
ゲーム装置1では、上記シューティングゲームのソフトウェアが記録されたディスク14がディスクドライブユニット114に装着され、このディスクドライブユニット114からディスク14内のゲームプログラムおよびゲームデータが制御部111内のRAM111c(後述)に読み込まれる。読み込まれたゲームプログラムがCPU111a(後述)によって実行されることにより、プレイヤはゲーム内容を楽しむことができる。プレイヤは、操作コントローラ12の操作部材12a〜12c(後述)を操作することによりプレイヤキャラクタを操作し、ゲームを進行させることができる。
【0082】
ディスク14内のゲームデータには、プレイヤキャラクタや敵キャラクタなどのキャラクタ、敵キャラクタからの攻撃を受けたときに表示されるダメージマーク、背景などの画像データ、効果音などの音声データ、および、ゲーム進行や描画の際に参照される各種テーブルなどが含まれる。
【0083】
制御部111は、本体11の全体動作を制御するマイクロコンピュータを有している。マイクロコンピュータは、CPU111a、ROM111b、およびRAM111c等からなり、各部は、それぞれバスラインで接続されている。
【0084】
CPU111aは、ディスクドライブユニット114によってディスク14からRAM111cに読み込まれるゲームプログラムを実行することより、ゲーム進行を統括的に制御する。より具体的には、操作コントローラ12からプレイヤが操作することによる操作信号が入力されると、CPU111aは、ゲームプログラムにしたがってその操作信号に対する所定のゲーム進行処理を行う。CPU111aは、その処理結果をモニタ13に例えば三次元画像によって表示するとともに、モニタ13のスピーカ13a(後述)から効果音によって出力する。
【0085】
ROM111bには、ディスクローディング機能等のゲーム装置1の基本的な機能やディスク14に記録されたゲームプログラムおよびゲームデータを読み出す手順等を示す基本プログラムが記憶されている。CPU111aは、ディスクドライブユニット114にディスク14が装着されると、ROM111bの基本プログラムにしたがってディスクドライブユニット114を動作させ、ディスク14からゲームプログラムおよびゲームデータをRAM111cに読み込み、ゲーム開始状態に設定する。
【0086】
RAM111cは、ディスクドライブユニット114によってディスク14から読み込まれたゲームプログラムやゲームデータ(ダメージマーク等の画像データを含む)が格納されるエリアと、CPU111aがゲームプログラムを実行するためのワークエリアとを提供するものである。当該ワークエリアには、ダメージマークテーブル(図6参照)などが保存される。
【0087】
上記ゲームプログラムは、複数のプログラムが組み合わされて構成されており、例えばモニタ13に表示されているプレイヤキャラクタの動作を操作コントローラ12からのプレイヤの操作信号に基づいて制御するゲーム進行プログラムやモニタ13に表示すべき三次元画像を制御するグラフィック制御プログラム等によって構成されている。
【0088】
CPU111aは、操作コントローラ12からのプレイヤの操作信号に基づき、必要に応じてディスク14からゲームプログラムや画像データ等をRAM111cに読み込み、これらのデータを処理したりゲームプログラムを実行したりすることにより、モニタ13に表示すべき三次元画像の内容を決定する。また、CPU111aは、敵キャラクタからの攻撃をプレイヤキャラクタが被弾したかの判定を行い、後述するダメージマーク処理により、ダメージマークの表示も決定する。
【0089】
描画処理部112は、描画処理に必要な各種の演算処理を行うものである。CPU111aは、例えば、1/30秒毎に、描画処理部112に描画指令を出力する。このとき、CPU111aは、モニタ13に表示すべき画像を決定し、その画像の描画に必要な画像データ(キャラクタ、ダメージマークなどのオブジェクトのポリゴンデータ、および背景データ)、および光源データ等をRAM111cから読み出して描画処理部112に供給する。また、CPU111aは、各キャラクタの位置データや、ダメージマークを表示するための情報(具体的には、上記(2)式および(4)式で算出された攻撃方向の角度データθdおよびθy)、操作コントローラ12から入力される操作信号を描画処理部112に供給する。
【0090】
描画処理部112は、CPU111aから供給される画像データ等および操作信号に基づいて、描画に必要なデータ(各オブジェクトおよび背景の位置関係、モニタ13の画面上における各オブジェクトを構成するポリゴンの座標、各ポリゴンに対応するテクスチャ、並びに各ポリゴンの反射特性等のデータ)を演算し、その演算結果に基づいて描画処理部112内のVRAM(図示せず)に1コマ(1フレーム)の表示画面の画像データを作成する。作成された表示画面の画像データは、例えば、1/30秒毎に映像信号としてモニタ13に出力されて表示される。
【0091】
音声処理部113は、効果音等の音声を発生させる処理に必要な各種の演算処理を行うものである。CPU111aは、モニタ13のスピーカ13aから出力すべき効果音若しくはBGMの音響内容を決定すると、音声処理部113に音声指令を出力する。音声処理部113は、CPU111aからの音声指令に基づき、RAM111cから効果音もしくはBGMの音声データを読み出し、所定の加工処理とD/A変換処理とを施した後、スピーカ13aに出力する。
【0092】
ディスクドライブユニット114は、CPU111aからのローディング指令(ローディングすべきゲームプログラムとゲームデータを指定した読出指令)に基づき、ディスク14に記録されたゲームプログラムやゲームデータを読み出すものである。
【0093】
メモリカード接続ユニット115は、ゲーム進行に関する情報をメモリカード15に書き込んだり、読み出したりするためのユニットである。CPU111aは、ゲーム進行中やゲーム終了時にプレイヤから「データのセーブ」が指令されると、メモリカード接続ユニット115を介してメモリカード15に、ゲーム進行に関する情報(この情報には、例えば、プレイヤが設定したゲームキャラクタの種類、対戦成績、獲得したポイントやアイテムなどの各種の特典などの情報が含まれる。)を記憶する。また、メモリカード15に記憶されたゲーム進行に関する情報は、ゲーム開始前にRAM111cに読み出される。
【0094】
I/Oインターフェース部116は、ディスクドライブユニット114やメモリカード接続ユニット115によって読み出されたゲームプログラムやゲームデータ、および操作コントローラ12からの操作信号等を制御部111に伝送したり、制御部111、描画処理部112や音声処理部113からの映像信号やオーディオ信号等をモニタ13に伝送したりするものである。
【0095】
通信処理部117は、ネットワークを介して他のゲーム装置1と通信を行う場合に、データの送信および受信を行うための制御を行うものである。通信処理部117は、操作コントローラ12から入力される操作信号やCPU111aから出力される信号をネットワークを介して他のゲーム装置1に送信し、ネットワークを介して他のゲーム装置1から送信される信号を受信してCPU111aに入力する。
【0096】
操作コントローラ12は、キャラクタを動作させたり、ゲームに関する各種の設定を行ったりするためにプレイヤによって操作されるものであり、複数のボタン12aと左レバー12bと右レバー12cとを有する。プレイヤによって操作コントローラ12が操作されると、その操作信号が制御部111に伝送され、モニタ13に表示されたキャラクタが所定の動作を行う。所定の動作としては、例えば、走る、しゃがむ、ジャンプする等の移動動作や武器を使用して相手を攻撃する攻撃動作がある。移動動作は、主に左レバー12bによって操作され、攻撃動作は主に複数のボタン12aおよび右レバー12cによって操作される。
【0097】
モニタ13は、本体11から送られてきた映像信号に応じてゲーム進行状態を示す表示画面を映し出したり、本体11から送られてきたオーディオ信号に応じてスピーカ13aから効果音等の音声を出力させたりするための装置である。モニタ13は、映像信号やオーディオ信号を入力するための外部入力端子を備えた、例えばテレビジョン受像機によって構成されている。
【0098】
ディスク14は、例えばDVD−ROM又はCD−ROM等の光ディスクである。ディスク14には、ゲームプログラムやそのゲームプログラムの実行に必要な種々のデータや画像データが記録されている。メモリカード15は、例えばフラッシュメモリ等のデータの書き換えが可能な不揮発性の記録媒体である。RAM111cのワークエリアの記録は、ゲーム装置本体11の電源を切ると消滅してしまうことから、メモリカード15は、RAM111cのワークエリアの記録のうち消滅させずに残しておくべきゲーム進行に関する情報を記録する。
【0099】
ゲーム装置1は、ネットワークアダプタ16を介して、インターネット回線などのネットワーク回線2に接続することができる。この場合、ネットワーク回線2を介して、複数のゲーム装置1間でゲームを行うこともできる(いわゆる「オンラインゲーム」)。本実施形態では、ゲーム装置1単独で行うゲームについて説明しているが、このようなオンラインゲームでも本発明を適用することができる。
【0100】
次に、本発明に係るゲーム装置のCPU111aで実行されるダメージマーク処理について、図8〜図12に示すフローチャートを参照して説明する。
【0101】
図8は、ダメージマーク処理を示すフローチャートである。ダメージマーク処理は、ダメージマークを表示画面に表示するための情報(以下、「ダメージマーク情報」という)を算出して、描画処理部112に送信するための処理である。描画処理部112が描画処理をするときにダメージマーク情報を受信している必要があることから、このダメージマーク処理は、CPU111aが描画指令を描画処理部112に送信する前に実行される。つまり、ダメージマーク処理も、描画処理と同様、例えば1/30秒毎に実行される。
【0102】
まず、三角ダメージマーク計時処理が実行される(S1)。これは、各三角ダメージマークが表示されてからの時間を計時するための処理であり、詳細は後述する。次に、円弧ダメージマーク計時処理が実行される(S2)。これは、円弧ダメージマークが表示されてからの時間を計時するための処理であり、詳細は後述する。
【0103】
続いて、ダメージマークテーブル更新処理が実行される(S3)。これは、プレイヤキャラクタが攻撃を受けたか(ダメージを受けたか)を判別し、攻撃を受けた場合にダメージマークテーブル(図6参照)を更新する処理であり、詳細は後述する。次に、ダメージマーク情報送信処理が実行され(S4)、ダメージマーク処理は終了される。ダメージマーク情報送信処理は、描画処理に必要なダメージマーク情報を算出して、描画処理部112に送信するための処理であり、詳細は後述する。
【0104】
描画処理部112は、ダメージマーク処理によって送信されたダメージマーク情報と、RAM111cから読み出されたダメージマークの画像データとを用いて、ダメージマークが表示画面に表示されるように、表示画面の画像データを作成する。なお、ダメージマーク情報が送信されなかった場合、描画処理部112は、ダメージマークが表示されない表示画面の画像データを作成する。
【0105】
図9は、三角ダメージマーク計時処理を示すフローチャートである。三角ダメージマーク計時処理は、各三角ダメージマークが表示されてからの時間を計時するための処理である。
【0106】
まず、ダメージマークテーブル(図6参照)の三角ダメージマークDMT1〜DMT3のうち、描画フラグが「ON」のものの数がカウントされ、変数jに入力される(S11)。例えば、図6に示すダメージマークテーブルの状態であればj=2とされる。三角ダメージマークの描画フラグがすべて「OFF」の場合、表示されている三角ダメージマークがないことから、後述するS13〜19、および、後述する図12のS42〜S46の処理が省略される。これらの処理を省略するか否かの判別をするために変数jが設けられている。
【0107】
次に、変数jが「0」であるか否かが判別され(S12)、j=0の場合(S12:YES)、三角ダメージマーク計時処理は終了される。描画フラグが「ON」の三角ダメージマーク(DMT1〜DMT3)がない場合、表示されている三角ダメージマークがないので、表示時間を計時する必要がないからである。
【0108】
j≠0の場合(S12:NO)、すなわち、描画フラグが「ON」の三角ダメージマークがある場合、各三角ダメージマークの表示時間が計時される(S13〜S19)。三角ダメージマーク計時処理は1/30秒毎に実行されるので、処理回数をカウントすることで時間を計時することができる。本実施形態では、ダメージマークテーブルのカウンタを1増加させることで計時を行なっている。カウンタが15を超えた場合、0.5秒が経過したので、対応する三角ダメージマークを表示しないようにするために、描画フラグを「OFF」に切り替える。
【0109】
次に、ステップS13で変数iに「1」が入力される。変数iは、ダメージマークテーブルの三角ダメージマークDMT1〜DMT3のいずれかを示すためのものである。続いて、F(i)が「ON」であるか否かが判別される(S14)。F(i)は、ダメージマークテーブルの描画フラグの内容を示す変数であり、例えば、F(1)は、DMT1の描画フラグの内容を示している。図6に示すダメージマークテーブルの状態では、F(1)=「ON」、F(2)=「ON」、F(3)=「OFF」である。F(i)が「ON」である場合(S14:YES)、C(i)が1増加される(S15)。C(i)は、ダメージマークテーブルのカウンタの内容を示す変数であり、例えば、C(1)は、DMT1のカウンタの内容を示している。図6に示すダメージマークテーブルの状態では、C(1)=12、C(2)=5、C(3)=0である。
【0110】
次に、C(i)が15以上であるか否かが判別される(S16)。C(i)≧15の場合(S16:YES)、F(i)が「OFF」にされ、変数jが1減少される(S17)。すなわち、カウンタが15を超えた場合(表示されてから0.5秒が経過した場合)、対応する描画フラグを「OFF」にして、対応する三角ダメージマークが表示されないようにする。また、このとき、描画フラグが「ON」の三角ダメージマークが減少するので、変数jが1減少される。C(i)<15の場合(S16:NO)、ステップS17をとばして、ステップS18に進む。すなわち、対応する描画フラグを「ON」のままとして、対応する三角ダメージマークの表示を継続する。ステップS14で、F(i)が「OFF」である場合(S14:NO)、対応する三角ダメージマークが表示されておらず表示時間の計時を行なう必要がないので、ステップS18に進む。
【0111】
次に、変数iが1増加され(S18)、変数iが3を超えたか否かが判別される(D19)。i≦3の場合(S19:NO)、ステップS14に戻り、変数iに対応する三角ダメージマークについての計時処理が行われる。i>3の場合(S19:YES)、すべての三角ダメージマークについての計時処理が行われたので、三角ダメージマーク計時処理は終了される。
【0112】
図10は、円弧ダメージマーク計時処理を示すフローチャートである。円弧ダメージマーク計時処理は、円弧ダメージマークが表示されてからの時間を計時するための処理である。
【0113】
まず、Fcが「ON」であるか否かが判別される(S21)。Fcは、ダメージマークテーブルの円弧ダメージマークDMCの描画フラグの内容を示す変数であり、図6に示すダメージマークテーブルの状態では、Fc=「ON」である。Fcが「ON」である場合(S21:YES)、Ccが1増加される(S22)。Ccは、ダメージマークテーブルの円弧ダメージマークDMCのカウンタの内容を示す変数であり、図6に示すダメージマークテーブルの状態では、Cc=5である。円弧ダメージマークDMCの描画フラグが「ON」の場合のみ、表示時間を計時するために、カウンタを1増加させる。
【0114】
次に、Ccが30以上であるか否かが判別される(S23)。Cc≧30の場合(S23:YES)、Fcが「OFF」にされ(S24)、円弧ダメージマーク計時処理は終了される。すなわち、カウンタが30を超えた場合(表示されてから1秒が経過した場合)、円弧ダメージマークDMCの描画フラグを「OFF」にして、円弧ダメージマークが表示されないようにする。Cc<30の場合(S23:NO)、ステップS24をとばして、円弧ダメージマーク計時処理は終了される。すなわち、円弧ダメージマークDMCの描画フラグを「ON」のままとして、円弧ダメージマークの表示を継続する。ステップS21で、Fcが「OFF」である場合(S21:NO)、円弧ダメージマークが表示されておらず表示時間の計時を行なう必要がないので、円弧ダメージマーク計時処理は終了される。
【0115】
図9および図10に示すフローチャートでは、ダメージマーク処理が1/30秒毎に実行されることを利用して、ダメージマークテーブルのカウンタを1ずつ増加させることで計時を行なっている。なお、ダメージマーク処理が行われるタイミング間隔(描画処理が行われるタイミング間隔)は、固定ではなく変動していてもよい。この場合、そのタイミング間隔に基づいて、カウントする数を変動させればよい。例えば、ダメージマーク処理が1/60秒毎であるときは、0.5ずつカウントすればよいし、ダメージマーク処理が1/15秒毎であるときは、2ずつカウントすればよい。また、処理回数をカウントする代わりに、実際の経過時間を計時するようにしてもよい。すなわち、CPU111aで時間を計時しておき、前回のダメージマーク処理からの経過時間を加算していくようにしてもよい。
【0116】
図11は、ダメージマークテーブル更新処理を示すフローチャートである。ダメージマークテーブル更新処理は、プレイヤキャラクタが攻撃を受けたか(ダメージを受けたか)を判別し、攻撃を受けた場合にダメージマークテーブル(図6参照)を更新する処理である。
【0117】
まず、プレイヤキャラクタがダメージを受けたか、すなわち、敵キャラクタからの攻撃を受けたか否かが判別される(S31)。当該判別は、ダメージ判定処理(各敵キャラクタが発射した各弾丸の座標と、プレイヤキャラクタを構成するポリゴン上の座標とを比較することで、プレイヤキャラクタが敵キャラクタからの攻撃を受けたかを判定する。詳細説明は省略)で行われる処理結果に基づいて判別される。また、ダメージ判定処理では、敵キャラクタが発射した弾丸の座標とプレイヤキャラクタを構成するポリゴン上の座標とが一致した場合に、当該弾丸の座標を着弾位置座標として取得し、着弾した弾丸が発射されたときのマシンガンの先端の座標を発射位置座標として取得している。なお、ダメージ判定処理の結果は、体力値HP(図1参照)の減少にも反映される。ダメージ有りの場合(S31:YES)、ダメージマークテーブルの円弧ダメージマークといずれかの三角ダメージマークの発射位置座標などが書き換えられる(S34〜S38)。
【0118】
なお、j=3の場合、すなわち、すべての三角ダメージマークの描画フラグが「ON」の場合(S32:YES)、一番古い(カウンタの値が最大である)三角ダメージマークの描画フラグが「OFF」にされ、変数jが1減少される(S33)。本実施形態では、表示する三角ダメージマークを3個としているので、すでに3個表示されている場合は、新しい三角ダメージマークを表示できるように、1番古い三角ダメージマークを消去するようにしている。また、このとき、描画フラグが「ON」の三角ダメージマークが減少するので、変数jが1減少される。
【0119】
次に、描画フラグが「OFF」の三角ダメージマークのうちのいずれかを示す番号kが取得される(S34)。ステップS32、S33の処理により、少なくとも1つの三角ダメージマークの描画フラグは「OFF」になっている。図6に示すダメージマークテーブルの状態では、DMT3の描画フラグが「OFF」になっているので、k=3となる。描画フラグが「OFF」になっている三角ダメージマークが2以上ある場合は、小さい方の番号が取得される。例えば、DMT1とDMT3の描画フラグが「OFF」の場合、k=1となる。なお、大きい方の番号が取得されるようにしてもよいし、任意に取得されるようにしてもよい。
【0120】
次に、ダメージマークテーブルの番号kに対応する三角ダメージマークの発射位置座標および着弾位置座標が、ダメージ判定処理で取得された座標に書き換えられ(S35)、カウンタC(k)が「0」に初期化され、描画フラグF(k)が「ON」にされる(S36)。このとき、描画フラグが「ON」の三角ダメージマークが増加するので、変数jが1増加される。
【0121】
次に、ダメージマークテーブルの円弧ダメージマークの発射位置座標および着弾位置座標が、ダメージ判定処理で取得された座標に書き換えられ(S37)、カウンタCcが「0」に初期化され、描画フラグFcが「ON」にされて(S38)、ダメージマークテーブル更新処理は終了される。
【0122】
ステップS31において、ダメージ無しの場合(S31:NO)、ダメージマークテーブルの更新は行われず、ダメージマークテーブル更新処理は終了される。
【0123】
図12は、ダメージマーク情報送信処理を示すフローチャートである。ダメージマーク情報送信処理は、描画処理に必要なダメージマーク情報を算出して、描画処理部112に送信するための処理である。
【0124】
まず、変数jが「0」であるか否かが判別され(S41)、j=0の場合(S41:YES)、ステップS47に進む。描画フラグが「ON」の三角ダメージマーク(DMT1〜DMT3)がない場合、表示すべき三角ダメージマークがないので、ダメージマーク情報を送信する必要がないからである。
【0125】
j≠0の場合(S41:NO)、すなわち、描画フラグが「ON」の三角ダメージマークがある場合、描画フラグが「ON」の三角ダメージマークのダメージマーク情報が算出され送信される(S42〜46)。
【0126】
次に、ステップS42で変数iに「1」が入力され、F(i)が「ON」であるか否かが判別される(S43)。F(i)が「ON」である場合(S43:YES)、対応する三角ダメージマークのダメージマーク情報が算出され、描画処理部112に送信される(S44)。このダメージマーク情報とは、ダメージマークを描画するのに必要な角度θdおよびθyであり、ダメージマークテーブルに記録されている発射位置座標および着弾位置座標に基づいて、上記(2)式および(4)式により算出される。
【0127】
なお、角度θdおよびθyを算出せず、発射位置座標および着弾位置座標をダメージマーク情報として描画処理部112に送信し、描画処理部112で角度θdおよびθyを算出するようにしてもよい。また、着弾位置座標から発射位置座標に向かうベクトルを算出し、発射位置座標および着弾位置座標の代わりに当該ベクトルをダメージマークテーブルに記録しておくようにしてもよい。また、発射位置座標および着弾位置座標から角度θdおよびθyを算出しておいて、発射位置座標および着弾位置座標の代わりにダメージマークテーブルに記録しておくようにしてもよい。この場合、ステップS44では、ダメージマーク情報を算出することなく、送信することができる。
【0128】
ステップS43において、F(i)が「OFF」である場合(S43:NO)、対応する三角ダメージマークは表示されないので、ステップS44をとばして、ステップS45に進む。次に、変数iが1増加され(S45)、変数iが3を超えたか否かが判別される(S46)。i≦3の場合(S46:NO)、ステップS43に戻る。i>3の場合(S46:YES)、ステップS47に進む。
【0129】
次に、Fcが「ON」であるか否かが判別される(S47)。Fcが「ON」である場合(S47:YES)、円弧ダメージマークのダメージマーク情報が算出され、描画処理部112に送信される(S48)。ダメージマーク情報である角度θdおよびθyは、ダメージマークテーブルに記録されている発射位置座標および着弾位置座標に基づいて、上記(2)式および(4)式により算出される。
【0130】
なお、円弧ダメージマークの発射位置座標および着弾位置座標は、最新の三角ダメージマーク(図6の場合DMT2)の発射位置座標および着弾位置座標と共通するので、当該三角ダメージマークの発射位置座標および着弾位置座標を用いてダメージマーク情報を算出して送信するようにしてもよいし、ステップS44で算出されたダメージマーク情報を送信するようにしてもよい。また、発射位置座標および着弾位置座標をダメージマーク情報として描画処理部112に送信し、描画処理部112で角度θdおよびθyを算出するようにしてもよいし、着弾位置座標から発射位置座標に向かうベクトルをダメージマークテーブルに記録しておくようにしてもよい。また、あらかじめ角度θdおよびθyを算出しておいて、ダメージマークテーブルに記録しておくようにしてもよい。
【0131】
ステップS47において、Fcが「OFF」である場合(S47:NO)、円弧ダメージマークは表示されないので、ステップS48をとばして、ダメージマーク情報送信処理は終了される。
【0132】
本実施形態によると、プレイヤキャラクタが攻撃を受けたときに、敵キャラクタが発射した弾丸などの発射位置座標とプレイヤキャラクタに着弾したときの着弾位置座標とに基づいて、プレイヤキャラクタの周囲に設定された領域の攻撃方向に対応する位置にダメージマークが配置されて表示される。このように、プレイヤキャラクタの周囲にダメージマークが表示されるため、ダメージマークの位置が示す攻撃方向と、仮想空間における実際の攻撃方向を対応させて表示することができ、プレイヤは、敵キャラクタがどの方向から攻撃してきたかを直感的に判断することができる。また、当該ダメージマークは、三次元の仮想ゲーム空間の他のオブジェクトと同様に表示画面に投影されて表示されるので、仮想ゲーム空間の前後方向(奥行き方向)も表すことができる。これにより、プレイヤは、更に容易に、敵キャラクタがどの方向から攻撃してきたかを直感的に判断することができる。また、ダメージマークの表示は、敵キャラクタの攻撃方向の高さの要素も反映された表示となっている。したがって、プレイヤは、攻撃してきた敵キャラクタが高い位置から攻撃してきたのか、低い位置から攻撃してきたのかを直感的に判断することができる。
【0133】
また、本実施形態によると、円錐形状の三角ダメージマークと円弧形状の円弧ダメージマークとが表示される。したがって、三角ダメージマークで攻撃の詳細な方向を表すとともに、三角ダメージマークがプレイヤキャラクタに隠れて見えにくい場合でも、大きな円弧ダメージマークが攻撃の大まかな方向を表すことができる。また、三角ダメージマークは3個まで、円弧ダメージマークは1個だけの表示とし、表示時間をそれぞれ0.5秒および1秒に限定しているので、ダメージマークがたくさん表示されすぎて表示画面が見にくくなることを抑制することができる。
【0134】
なお、上記実施形態は、敵キャラクタが発射した弾丸などの発射位置座標とプレイヤキャラクタに着弾したときの着弾位置座標とに基づいてダメージマークを表示する場合について説明したがこれに限られない。例えば、敵キャラクタが弓や石等で攻撃する場合には、矢を放った位置や石等の投げ始めの位置(本発明の攻撃発動位置に対応)の座標を発射位置情報に代えて使用し、矢や石等がプレイヤキャラクタに到達した位置(本発明の攻撃到達位置に対応)の座標を着弾位置座標に代えて使用してもよい。また、例えば、発射位置座標等の敵キャラクタにおける攻撃を繰り出す部位の座標に代えて、敵キャラクタの他の位置座標を用いてもよいし、着弾位置座標等のプレイヤキャラクタにおける攻撃を受ける部位の座標に代えて、プレイヤキャラクタの他の位置座標を用いてもよい。例えば、敵キャラクタに予め設定された任意の1点(基準点)の位置の座標を発射位置座標に代えて使用し、プレイヤキャラクタに予め設定された任意の1点(基準点)の位置の座標を着弾位置座標に代えて使用してもよい。
【0135】
また、上記実施形態は、プレイヤキャラクタ位置座標を基準として各ダメージマークを配置する場合について説明したが、これに限定されない。各ダメージマークを配置する場合の基準点を着弾位置座標にしてもよいし、その他のプレイヤキャラクタにおける任意の点にしてもよい。なお、プレイヤキャラクタに対する攻撃方向を表すためには、プレイヤキャラクタ上(プレイヤキャラクタの内部およびプレイヤキャラクタの近傍を含む)の点にする必要がある。また、ダメージマークの配置領域を設定するための中心点は1つに限られず、複数設定してもよい。例えば、プレイヤキャラクタ位置座標の他に、プレイヤキャラクタの頭部および脚部の点を中心点としてダメージマークの配置領域を設定し、角度θy(図5参照)に応じていずれの配置領域に配置するかが切り替えられてもよい。例えば、角度θyが15度以上の場合には、頭部の点に基づく配置領域とし、角度θyが−15度以下の場合には、脚部の点に基づく配置領域とし、−15度<角度θy<15度の場合には、プレイヤキャラクタ位置座標に基づく配置領域としてもよい。また、このとき表示される三角ダメージマークを角度θyに応じて傾けて表示してもよい。
【0136】
また、プレイヤキャラクタの着弾位置に応じていずれの配置領域に配置するかが切り替えられてもよい。例えば、着弾位置がプレイヤキャラクタの上半身の場合はプレイヤキャラクタ位置座標を基準点とし(ダメージマークがプレイヤキャラクタ位置座標に基づく配置領域に配置され)、着弾位置がプレイヤキャラクタの頭部の場合は頭部の中心点を基準点とするようにしてもよい(ダメージマークが頭部の点に基づく配置領域に配置されてもよい)。また、ダメージマークの種類により基準点が異なるようにしてもよい。
【0137】
また、上記実施形態は、プレイヤキャラクタ位置座標を基準として各ダメージマークの画像データを準備しておき、プレイヤキャラクタ位置座標を中心として攻撃方向に応じた角度だけ各ダメージマークを回転させて配置する場合について説明したが、これに限定されない。プレイヤキャラクタ位置座標を中心とした円、円柱、あるいは球と攻撃方向とに基づいて基準点を決定し、各ダメージマークを当該基準点に基づいて配置するようにしてもよい。例えば、プレイヤキャラクタ位置座標を中心とした所定半径の球と、発射位置座標と着弾位置座標とを結ぶ線分との交点を基準点とし、当該基準点に基づいて各ダメージマークを配置するようにしてもよい。また、ダメージマークの種類により配置方法が異なるようにしてもよい。
【0138】
また、上記実施形態は、円錐形状の三角ダメージマークと円弧形状の円弧ダメージマークとを用いた場合について説明したが、これに限定されない。用いるダメージマークの種類数、各ダメージマークの表示個数、表示時間は、適宜決定すればよい。また、用いるダメージマークの形状、大きさ、色は限定されず、これらが状態によって変化するようにしてもよい。例えば、通常はダメージマークの色を黄色とし、プレイヤの体力値HP(図1参照)が所定の値(例えば、20%)以下となった場合は赤色としてもよい。この色の変化により、プレイヤは、危険な状態であることを認識することができる。また、敵キャラクタとの距離に応じて、ダメージマークの大きさ、形状、色を変えるようにしてもよい。例えば、敵キャラクタとの距離に応じて三角ダメージマーク長さ(円錐の高さ)を大きくしたり、円弧ダメージマークの大きさ(円弧の長さ)を大きくしてもよい。この大きさの違いにより、プレイヤは、敵キャラクタとの距離を認識することができる。
【0139】
上記実施形態では、ダメージ判定処理を弾丸の座標とプレイヤキャラクタを構成するポリゴン上の座標とで行っているが、ダメージ判定処理はこれに限定されない。ダメージ判定処理は、プレイヤキャラクタを包含する(あるいはプレイヤキャラクタに内包される)立体(いわゆる「アタリ」)と、弾丸との衝突判定により行われても良い。なお、立体(アタリ)の形状には、球、楕円体、直方体やこれら立体の組み合わせ等がある。アタリの形状は、これらのうち何れの形状であってもよいが、プレイヤキャラクタの形状とほぼ一致する形状であることが好ましい。
【0140】
上記実施形態では、家庭用ゲーム装置でゲームを実施する場合について説明したが、これに限られない。本発明は、ゲームが実施されるゲーム装置の種類に限定されず適用することができ、例えば、携帯型ゲーム装置、アーケードゲーム装置、および、ゲームソフトが搭載されているパーソナルコンピュータ等でゲームを実施する場合にも適用することができる。
【0141】
上記実施形態では、ゲーム装置1を単独で用いる場合について説明したが、これに限られない。本発明は、複数のゲーム装置1をケーブルあるいは無線通信により接続したり、ゲーム装置1をゲームサーバにインターネット回線2で接続したりすることにより、複数のゲーム装置1で同時にゲームを実施する場合にも適用することができる。
【0142】
上記実施形態では、シューティングゲームを例に説明したが、これに限られない。本発明は、モニタの画面に表示されない敵キャラクタが、どの方向から攻撃してきているかをプレイヤが直感的に理解できるようにするものであるから、敵キャラクタが離れた場所から攻撃を仕掛けるゲームにおいて適用できる。例えば、リアルタイムでのシューティングを行うロールプレイイングゲームにも適用することができるし、格闘ゲームにおいて複数の敵キャラクタが飛び道具を用いて攻撃するような場合にも適用することができる。また、プレイヤキャラクタが敵キャラクタを攻撃するのではなく、敵キャラクタからの一方的な攻撃を避けながら逃亡するゲームにおいても適用することができる。
【0143】
また、本発明は、複数のプレイヤの操作するキャラクタ若しくはCPUの制御するキャラクタがチームを組んで協同して敵キャラクタと対戦するようなゲームや、敵キャラクタとしての他のプレイヤの操作するキャラクタと対戦するようなゲームにも適用することができる。また、敵キャラクタは、人格を持ったものを模したオブジェクトでなくてもよく、ロボット、戦闘機、戦車、大砲等の移動可能な武器等であってもよい。
【0144】
本発明に係るゲーム装置は、上述した実施形態に限定されるものではない。本発明に係るゲーム装置の各部の具体的な構成は、種々に設計変更自在である。
【符号の説明】
【0145】
1 ゲーム装置
11 本体
111 制御部
111a CPU(プレイヤ位置情報取得手段、敵位置情報取得手段、攻撃方向取得手段、ダメージマーク生成手段、表示制御手段、算出手段)
111b ROM
111c RAM
112 描画処理部(表示制御手段)
113 音声処理部
114 ディスクドライブユニット
115 メモリカード接続ユニット
116 I/Oインターフェース部
117 通信処理部
12 操作コントローラ
13 モニタ
14 ディスク
15 メモリカード
16 ネットワークアダプタ
2 ネットワーク回線
【特許請求の範囲】
【請求項1】
コンピュータを、三次元の仮想ゲーム空間内において、プレイヤが操作するプレイヤキャラクタと、このプレイヤキャラクタを攻撃する敵キャラクタとを活動させるゲーム装置として機能させるためのプログラムであって、
前記コンピュータを、
前記仮想ゲーム空間内における前記プレイヤキャラクタの位置を示すプレイヤ位置情報を取得するプレイヤ位置情報取得手段と、
前記仮想ゲーム空間内における前記敵キャラクタの位置を示す敵位置情報を取得する敵位置情報取得手段と、
前記プレイヤ位置情報と前記敵位置情報とに基づいて、前記プレイヤキャラクタが前記敵キャラクタから受けた攻撃の方向を取得する攻撃方向取得手段と、
前記プレイヤキャラクタが前記敵キャラクタから攻撃を受けた際に、前記プレイヤキャラクタの周囲に設定された所定の領域における前記攻撃の方向に対応した位置に、前記攻撃の方向を示すオブジェクトであるダメージマークを生成するダメージマーク生成手段と、
前記プレイヤキャラクタ及び前記ダメージマークを含む、前記三次元の仮想ゲーム空間の少なくとも一部を表示させる表示制御手段と、
して機能させるためのプログラム。
【請求項2】
前記所定の領域は、前記三次元の仮想ゲーム空間を上方から見たときに前記プレイヤキャラクタの基準点を中心とした円状に設定されている、
請求項1に記載のプログラム。
【請求項3】
前記コンピュータを、
前記プレイヤ位置情報における高さ情報と前記敵位置情報における高さ情報とから、攻撃の方向の高さ情報である攻撃方向高さ情報を算出する算出手段として更に機能させ、
前記ダメージマーク生成手段は、前記算出手段によって算出された前記攻撃方向高さ情報に基づいて、前記ダメージマークを生成する、
請求項1又は2に記載のプログラム。
【請求項4】
前記敵位置情報取得手段は、前記仮想ゲーム空間内における前記敵キャラクタが攻撃を発した位置である攻撃発動位置を示す攻撃発動位置情報を前記敵位置情報として取得し、
前記プレイヤ位置情報取得手段は、前記仮想ゲーム空間内における前記プレイヤキャラクタが攻撃を受けた位置である攻撃到達位置を示す攻撃到達位置情報を前記プレイヤ位置情報として取得する、
請求項3に記載のプログラム。
【請求項5】
前記攻撃方向高さ情報は、前記攻撃到達位置と前記攻撃発動位置を通る直線の水平面に対する角度、又は前記直線と重力方向に延びる直線との間の角度で表される、
請求項4に記載のプログラム。
【請求項6】
前記ダメージマーク生成手段は、前記攻撃方向高さ情報に応じて、前記ダメージマークを傾けて生成する、
請求項3ないし5のいずれかに記載のプログラム。
【請求項7】
前記ダメージマーク生成手段は、前記攻撃方向高さ情報に応じた高さに、前記ダメージマークを生成する、
請求項3ないし6のいずれかに記載のプログラム。
【請求項8】
前記ダメージマーク生成手段は、複数種類の前記ダメージマークを生成する、
請求項1ないし7のいずれかに記載のプログラム。
【請求項9】
前記複数種類のダメージマークは、前記攻撃の方向を指し示す第1のマークと、この第1のマークより広い範囲で前記攻撃の方向を指し示す第2のマークを含む、
請求項8に記載のプログラム。
【請求項10】
前記ダメージマーク生成手段は、前記第1のマーク及び第2のマークを所定時間だけ前記仮想ゲーム空間に配置した後に消去し、
前記第1のマークの前記所定時間と前記第2のマークの前記所定時間とは異なっている、
請求項9に記載のプログラム。
【請求項11】
前記ダメージマーク生成手段は、前記第1のマーク及び第2のマークをそれぞれ所定個数のみ配置し、
前記所定個数は、前記第2のマークより前記第1のマークの方が多い、
請求項9または10に記載のプログラム。
【請求項12】
前記第1のマーク及び第2のマークは、前記攻撃の方向を指し示す部位である指示部を有する形状であり、
前記ダメージマーク生成手段は、前記第2のマークの前記指示部の中心を、最も新しく生成された第1のマークの指示部と重ねて配置する
請求項11に記載のプログラム。
【請求項13】
前記ダメージマークは、円錐形状であり、当該円錐の高さ方向が攻撃の方向であり、当該円錐の頂点がプレイヤキャラクタの方を向いている、
請求項1ないし7のいずれかに記載のプログラム。
【請求項14】
前記ダメージマークは、前記プレイヤキャラクタ位置を中心とする円の攻撃方向の部分である円弧形状である、
請求項1ないし7のいずれかに記載のプログラム。
【請求項15】
前記ダメージマーク生成手段は、前記プレイヤキャラクタが攻撃を受けたときから所定時間のみ前記ダメージマークを配置する、
請求項1ないし14のいずれかに記載のプログラム。
【請求項16】
前記ダメージマーク生成手段は、所定個数のみ前記ダメージマークを配置し、新たにダメージマークを生成する際に、前記ダメージマークが所定個数を超える場合には、最先に生成された前記ダメージマークを消去する、
請求項1ないし15のいずれかに記載のプログラム。
【請求項17】
前記ダメージマーク生成手段は、前記プレイヤキャラクタと攻撃を行なった前記敵キャラクタとの距離に応じて、前記ダメージマークの態様を変化させる、
請求項1ないし16のいずれかに記載のプログラム。
【請求項18】
前記所定の領域は、前記プレイヤキャラクタの基準点を中心とした球状に設定されている、
請求項1に記載のプログラム。
【請求項19】
請求項1ないし18に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項20】
請求項1ないし18に記載のプログラムを実行するゲーム装置。
【請求項1】
コンピュータを、三次元の仮想ゲーム空間内において、プレイヤが操作するプレイヤキャラクタと、このプレイヤキャラクタを攻撃する敵キャラクタとを活動させるゲーム装置として機能させるためのプログラムであって、
前記コンピュータを、
前記仮想ゲーム空間内における前記プレイヤキャラクタの位置を示すプレイヤ位置情報を取得するプレイヤ位置情報取得手段と、
前記仮想ゲーム空間内における前記敵キャラクタの位置を示す敵位置情報を取得する敵位置情報取得手段と、
前記プレイヤ位置情報と前記敵位置情報とに基づいて、前記プレイヤキャラクタが前記敵キャラクタから受けた攻撃の方向を取得する攻撃方向取得手段と、
前記プレイヤキャラクタが前記敵キャラクタから攻撃を受けた際に、前記プレイヤキャラクタの周囲に設定された所定の領域における前記攻撃の方向に対応した位置に、前記攻撃の方向を示すオブジェクトであるダメージマークを生成するダメージマーク生成手段と、
前記プレイヤキャラクタ及び前記ダメージマークを含む、前記三次元の仮想ゲーム空間の少なくとも一部を表示させる表示制御手段と、
して機能させるためのプログラム。
【請求項2】
前記所定の領域は、前記三次元の仮想ゲーム空間を上方から見たときに前記プレイヤキャラクタの基準点を中心とした円状に設定されている、
請求項1に記載のプログラム。
【請求項3】
前記コンピュータを、
前記プレイヤ位置情報における高さ情報と前記敵位置情報における高さ情報とから、攻撃の方向の高さ情報である攻撃方向高さ情報を算出する算出手段として更に機能させ、
前記ダメージマーク生成手段は、前記算出手段によって算出された前記攻撃方向高さ情報に基づいて、前記ダメージマークを生成する、
請求項1又は2に記載のプログラム。
【請求項4】
前記敵位置情報取得手段は、前記仮想ゲーム空間内における前記敵キャラクタが攻撃を発した位置である攻撃発動位置を示す攻撃発動位置情報を前記敵位置情報として取得し、
前記プレイヤ位置情報取得手段は、前記仮想ゲーム空間内における前記プレイヤキャラクタが攻撃を受けた位置である攻撃到達位置を示す攻撃到達位置情報を前記プレイヤ位置情報として取得する、
請求項3に記載のプログラム。
【請求項5】
前記攻撃方向高さ情報は、前記攻撃到達位置と前記攻撃発動位置を通る直線の水平面に対する角度、又は前記直線と重力方向に延びる直線との間の角度で表される、
請求項4に記載のプログラム。
【請求項6】
前記ダメージマーク生成手段は、前記攻撃方向高さ情報に応じて、前記ダメージマークを傾けて生成する、
請求項3ないし5のいずれかに記載のプログラム。
【請求項7】
前記ダメージマーク生成手段は、前記攻撃方向高さ情報に応じた高さに、前記ダメージマークを生成する、
請求項3ないし6のいずれかに記載のプログラム。
【請求項8】
前記ダメージマーク生成手段は、複数種類の前記ダメージマークを生成する、
請求項1ないし7のいずれかに記載のプログラム。
【請求項9】
前記複数種類のダメージマークは、前記攻撃の方向を指し示す第1のマークと、この第1のマークより広い範囲で前記攻撃の方向を指し示す第2のマークを含む、
請求項8に記載のプログラム。
【請求項10】
前記ダメージマーク生成手段は、前記第1のマーク及び第2のマークを所定時間だけ前記仮想ゲーム空間に配置した後に消去し、
前記第1のマークの前記所定時間と前記第2のマークの前記所定時間とは異なっている、
請求項9に記載のプログラム。
【請求項11】
前記ダメージマーク生成手段は、前記第1のマーク及び第2のマークをそれぞれ所定個数のみ配置し、
前記所定個数は、前記第2のマークより前記第1のマークの方が多い、
請求項9または10に記載のプログラム。
【請求項12】
前記第1のマーク及び第2のマークは、前記攻撃の方向を指し示す部位である指示部を有する形状であり、
前記ダメージマーク生成手段は、前記第2のマークの前記指示部の中心を、最も新しく生成された第1のマークの指示部と重ねて配置する
請求項11に記載のプログラム。
【請求項13】
前記ダメージマークは、円錐形状であり、当該円錐の高さ方向が攻撃の方向であり、当該円錐の頂点がプレイヤキャラクタの方を向いている、
請求項1ないし7のいずれかに記載のプログラム。
【請求項14】
前記ダメージマークは、前記プレイヤキャラクタ位置を中心とする円の攻撃方向の部分である円弧形状である、
請求項1ないし7のいずれかに記載のプログラム。
【請求項15】
前記ダメージマーク生成手段は、前記プレイヤキャラクタが攻撃を受けたときから所定時間のみ前記ダメージマークを配置する、
請求項1ないし14のいずれかに記載のプログラム。
【請求項16】
前記ダメージマーク生成手段は、所定個数のみ前記ダメージマークを配置し、新たにダメージマークを生成する際に、前記ダメージマークが所定個数を超える場合には、最先に生成された前記ダメージマークを消去する、
請求項1ないし15のいずれかに記載のプログラム。
【請求項17】
前記ダメージマーク生成手段は、前記プレイヤキャラクタと攻撃を行なった前記敵キャラクタとの距離に応じて、前記ダメージマークの態様を変化させる、
請求項1ないし16のいずれかに記載のプログラム。
【請求項18】
前記所定の領域は、前記プレイヤキャラクタの基準点を中心とした球状に設定されている、
請求項1に記載のプログラム。
【請求項19】
請求項1ないし18に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項20】
請求項1ないし18に記載のプログラムを実行するゲーム装置。
【図2】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図1】
【図3】
【図4】
【図13】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図1】
【図3】
【図4】
【図13】
【公開番号】特開2010−246851(P2010−246851A)
【公開日】平成22年11月4日(2010.11.4)
【国際特許分類】
【出願番号】特願2009−102368(P2009−102368)
【出願日】平成21年4月20日(2009.4.20)
【出願人】(000129149)株式会社カプコン (192)
【Fターム(参考)】
【公開日】平成22年11月4日(2010.11.4)
【国際特許分類】
【出願日】平成21年4月20日(2009.4.20)
【出願人】(000129149)株式会社カプコン (192)
【Fターム(参考)】
[ Back to top ]