以下に添付図面を参照しながら、本発明の実施形態の一態様について詳細に説明する。かかる実施形態に示す寸法、材料、その他具体的な数値等は、理解を容易とするための例示にすぎず、特に断る場合を除き、本発明を限定するものではない。なお、本明細書および図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本発明に直接関係のない要素は図示を省略する。
(情報処理システムSの全体の構成)
図1は、情報処理システムSの概略的な構成を示した説明図である。情報処理システムSは、ゲーム装置1と、サーバ2と、通信基地局3aを有する通信ネットワーク3とを含む、所謂クライアントサーバシステムである。
ゲーム装置1は、プレイヤキャラクタが敵キャラクタと対戦するバトルゲームを実現する。ゲーム装置1は、例えば、ゲームをプレイするための専用のゲーム機器、スマートフォン等の携帯電話、タブレット装置、パーソナルコンピュータ等が挙げられる。本実施形態では、ゲーム装置1が専用のゲーム機器で構成される場合について説明する。ゲーム装置1は、通信ケーブルを介してディスプレイ10と接続可能であり、ディスプレイ10における画像の表示制御を行う。
なお、ゲーム装置1は、通信ネットワーク3を介してサーバ2との通信を確立することができる。ただし、ゲーム装置1において、通信機能は必須ではない。また、ここでは、ゲーム装置1とは別にディスプレイ10が設けられているが、ゲーム装置1がディスプレイ10を含んでもよい。
サーバ2は、複数のゲーム装置1と通信接続される。サーバ2は、ゲームをプレイするプレイヤごとに各種の情報を蓄積する。また、サーバ2は、ゲーム装置1から入力される操作に基づき、蓄積された情報の更新を行う。
通信基地局3aは、通信ネットワーク3と接続され、ゲーム装置1と無線による情報の送受信を行う。通信ネットワーク3は、携帯電話網、インターネット網、LAN(Local Area Network)、専用回線等で構成され、ゲーム装置1とサーバ2との無線もしくは有線による通信接続を実現する。
(ゲーム装置1のハードウェアの構成)
図2は、ゲーム装置1のハードウェアの構成を説明する図である。図2に示すように、ゲーム装置1は、CPU(Central Processing Unit)12、メモリ14、バス16、入出力インタフェース18、ディスクドライブ20、記憶部22、通信部24、入力部26を含んで構成される。
CPU12は、メモリ14に記憶されたプログラムを動作させ、ゲームの進行を制御する。メモリ14は、ROM(Read Only Memory)またはRAM(Random Access Memory)で構成され、ゲームの進行制御に必要となるプログラムおよび各種のデータを記憶する。メモリ14は、バス16を介してCPU12に接続されている。
バス16には、入出力インタフェース18が接続される。入出力インタフェース18には、ディスクドライブ20、記憶部22、通信部24、入力部26が接続されている。
ディスクドライブ20は、ゲームプログラムが記憶された記憶媒体を読み込む。記憶部22は、DRAM(Dynamic Random Access Memory)等の半導体メモリで構成され、各種プログラムおよびデータを記憶する。ゲーム装置1においては、ディスクドライブ20に挿入された記憶媒体、あるいは、記憶部22に記憶されたプログラムおよびデータが、CPU12によってメモリ14(RAM)にロードされる。
通信部24は、通信基地局3aと無線により通信接続され、通信ネットワーク3を介して、サーバ2との間で各種データおよびプログラムといった情報の送受信を行う。ゲーム装置1においては、サーバ2から受信したプログラム等が、メモリ14または記憶部22に格納可能である。
入力部26は、例えば、プレイヤの操作が入力される(操作を受け付ける)アナログコントローラ、タッチパネル、ボタン、キーボード、マウス等で構成される。さらには、入力部26は、傾きや移動を検知する加速度センサ、または、プレイヤの音声を検知するマイクで構成されてもよい。すなわち、入力部26には、プレイヤの意思を識別可能に入力させることができる装置が広く含まれる。ここでは、入力部26として、後述するコントローラ30が設けられる。
また、入出力インタフェース18には、上記のディスプレイ10およびスピーカ等で構成される出力部28が接続される。なお、ここでは、ゲーム装置1が出力部28を含まないものとして説明するが、ゲーム装置1が出力部28を含んで構成されてもよい。
(ゲーム内容)
次に、本実施形態のゲーム装置1(情報処理システムS)により提供されるゲームの内容について、一例を用いて説明する。本実施形態では、所謂アクションRPG(Roll Playing Game)が提供される。
図3Aは、ゲーム内容を説明する図である。プレイヤは、まず、操作対象となるプレイヤキャラクタ(プレイヤオブジェクト、以下、「プレイヤキャラPC」と呼ぶ)の装備を設定する。プレイヤは、敵キャラクタ(対象オブジェクト、以下、「敵キャラEC」と呼ぶ)を攻撃するための武器と、敵キャラECの攻撃を防御するための防具が設定可能である。
そして、装備が設定されると、バトルゲームがプレイ可能となる。バトルゲームの目的は、プレイヤキャラPCによって、敵キャラECを撃退することである。バトルゲームでは、プレイヤがコントローラ30を操作し、プレイヤキャラPCを移動させたり、敵キャラECに対する攻撃モーションを行わせたりする。
プレイヤキャラPCおよび敵キャラECには、それぞれライフポイントHPが設定されている。プレイヤキャラPCの攻撃が敵キャラECにヒットすると、敵キャラECにダメージポイントが付与され、敵キャラECのライフポイントHPからダメージポイントが減算される。一方、敵キャラECの攻撃がプレイヤキャラPCにヒットすると、プレイヤキャラPCにダメージポイントが付与され、プレイヤキャラPCのライフポイントHPからダメージポイントが減算される。バトルゲームは、敵キャラECのライフポイントHPが先に0になることでプレイヤの勝利となり、プレイヤキャラPCのライフポイントHPが先に0になることでプレイヤの敗北となる。
図3Aに示すように、バトルゲームでは、仮想のゲーム空間GSが表示される。ゲーム空間GSには、プレイヤキャラPCと、敵キャラECとが配される。ゲーム装置1では、ゲーム空間GS、および、キャラクタ(プレイヤキャラPCおよび敵キャラEC)を生成してディスプレイ10に表示させる画像処理が行われる。
例えば、ゲーム装置1は、各種のデータを読み出して、三次元の仮想のゲーム空間GSを生成する。そして、生成されたゲーム空間GSを所定の視点から仮想のカメラで撮像し、仮想的に見たときの二次元画像が生成される。この二次元画像がディスプレイ10に表示される。本実施形態において、ゲーム空間GSとは、画像処理の過程で生成される三次元データと、ディスプレイ10に表示される二次元画像との双方を含むものである。ゲーム空間GSには、図3Aに示すx軸、y軸、z軸の3軸の位置情報が規定されており、この位置情報に基づいて、キャラクタの動作が制御される。
図3Bは、敵キャラECのボーン情報を説明する図である。敵キャラECには、複数の関節Jo(図3Bに黒塗りの円で示す)と、関節Joを繋ぐ骨部Boとを含むボーン情報が予め設定されている。関節Joの相対位置に応じて、3軸方向それぞれに対する骨部Boの傾き、すなわち、敵キャラECの姿勢および向きが変化する。敵キャラECは、ボーン情報に基づいて動作が制御される。
例えば、敵キャラECの動作として、複数種類の攻撃モーションが設けられている。各攻撃モーションには、全ての骨部Boおよび関節Joの移動軌跡、タイミングが規定された動作情報が予め設定されている。敵キャラECは、決定された攻撃モーション用の動作情報に基づいて動作が制御される。なお、骨部Boの周囲の所定範囲が、敵キャラECの表示範囲となり、かつ、プレイヤキャラPCの攻撃がヒットする衝突範囲となる。このように、ボーン情報は、敵キャラECの動作および表示を制御するための情報である。また、ボーン情報は、衝突範囲や、敵キャラECの攻撃がプレイヤキャラPCにヒットする攻撃範囲を設定するために用いられる。
さらに、敵キャラECには、図3Bに白抜きの円で示すように、ボーン情報として、基点部P(基点情報)が設けられている。本実施形態では、敵キャラECの腰回りに複数(ここでは3つ)の基点部P1、P2、P3が設定されている。この基点部Pは、敵キャラECの位置変移に連動するものである。基点部Pは、プレイヤキャラPCの動作を制御するための情報であり、敵キャラECの動作制御に用いられることはない。
なお、詳しい説明は省略するが、プレイヤキャラPCにもボーン情報が設定されており、ボーン情報に基づいて、プレイヤキャラPCの動作および表示制御がなされる。すなわち、後述する回避モーションを含むプレイヤキャラPCの動作(モーション)には、全ての骨部Boおよび関節Joの移動軌跡、タイミングが規定された動作情報が予め設定されている。そして、プレイヤの操作が入力された場合、ゲーム空間GS内におけるプレイヤキャラPCの動作が、ボーン情報と動作情報とに基づいて制御される。
図3Cは、コントローラ30を説明する図である。コントローラ30は、入出力インタフェース18に無線または有線により通信接続される。コントローラ30は、本体部30aを備える。本体部30aは、プレイヤが両手で把持可能な形状に構成されている。また、本体部30aには、プレイヤの操作を受け付ける複数の操作部が設けられる。ここでは、コントローラ30に設けられる一部の操作部について説明する。
本体部30aには、第1ボタン32a、第2ボタン32b、第3ボタン32c、第4ボタン32dが設けられる。第1ボタン32aは、攻撃操作を受け付ける操作部である。第1ボタン32aの押下操作により、プレイヤキャラPCが刀剣を振り回す攻撃モーションを行う。第2ボタン32bは、抜刀用の操作部である。刀剣が鞘に納められた状態で第2ボタン32bが押下操作されると、プレイヤキャラPCが抜刀動作を行い、刀剣が把持される。一方、刀剣を把持した状態で第2ボタン32bが押下操作されると、刀剣を鞘に納める動作が行われる。
また、第3ボタン32cが押下操作されると、プレイヤキャラPCが段差を上り下りする。第4ボタン32dは、回避操作を受け付ける操作部である。第4ボタン32dの押下操作により、プレイヤキャラPCは回避モーションを行う。この回避モーション中は、敵キャラECの攻撃、すなわち、ダメージを受けない無敵状態となる。
また、本体部30aには、方向指示部34が設けられる。方向指示部34は、所謂アナログスティックであり、本体部30aから図面手前側に突出して設けられ、360°の全方向に傾倒可能に構成される。方向指示部34は、プレイヤの方向指示操作を受け付ける操作部であり、方向指示部34が操作されると、方向指示部34の傾倒方向(以下、「指示方向」という)にプレイヤキャラPCが動作する。
例えば、方向指示部34のみが操作されると、ゲーム空間GS内において、プレイヤキャラPCが指示方向に移動する。また、方向指示部34と第1ボタン32aとが同時に操作されると、プレイヤキャラPCは、指示方向に向けて攻撃モーションを行う。また、方向指示部34と第4ボタン32dとが同時に操作されると、プレイヤキャラPCは、指示方向に向けて回避モーションを行う。
さらに、本体部30aには、方向指示部34と同一構成の右アナログスティック36が設けられる。右アナログスティック36は、ディスプレイ10に表示されるゲーム空間GSのアングルを変更するための操作を受け付ける。右アナログスティック36が傾倒操作されると、傾倒方向にゲーム空間GSのアングルが変更される。
(敵キャラECの攻撃モーション)
次に、敵キャラECの攻撃モーションについて説明する。バトルゲーム中は、プログラムにしたがって敵キャラECの動作が決定される。敵キャラECの動作には、プレイヤキャラPCを攻撃する攻撃モーション、プレイヤキャラPCからダメージを受けた場合のダメージモーション、移動する際の移動モーション等が含まれている。
図4は、攻撃モーションの一例を説明する図である。また、図5Aは、攻撃モーションAを説明する図であり、図5Bは、攻撃モーションBを説明する図である。図4に示すように、攻撃モーションは複数種類設けられており、攻撃モーションごとに、敵キャラECの動作態様が異なっている。なお、図4には、攻撃モーションの一部のみを示している。
例えば、図4に示す攻撃モーションAが決定された場合、図5Aに示すように、敵キャラECは、前方に向けて突進する動作を行う。また、例えば、図4に示す攻撃モーションBが決定された場合には、図5Bに示すように、敵キャラECは、左前足を払う動作(足払い)を行う。
上記したように、各攻撃モーションには、動作情報が予め設定されている。この動作情報には、ディスプレイ10における画像の更新間隔(すなわちフレーム単位)で、関節Jo等の位置が規定されている。攻撃モーション中は、動作情報に基づいて、敵キャラECの動作が制御される。したがって、各攻撃モーションには、動作の開始から終了までに要する時間であるモーション時間が設定されることとなる。
例えば、図4に示すように、攻撃モーションAのモーション時間は1.6秒、攻撃モーションBのモーション時間は1.0秒である。攻撃モーションは、モーション時間が経過したところで完了となり、攻撃モーションが完了すると、敵キャラECの次の動作が決定される。
また、各攻撃モーションには、衝突判定タイミングが設定されている。衝突判定タイミングというのは、敵キャラECの攻撃がプレイヤキャラPCに衝突したか否かを判定するタイミングである。衝突判定タイミングでは、後述する衝突判定処理が実行される。この衝突判定タイミングは、攻撃モーションの開始から終了までの間の所定のタイミングに設定されている。例えば、攻撃モーションA、Bには、衝突判定タイミングとして0.5秒が設定されており、攻撃モーションKには、衝突判定タイミングとして0.7秒が設定されている。
各攻撃モーションには攻撃範囲が設定されており、衝突判定処理では、攻撃範囲にプレイヤキャラPCが含まれるか否かの判定が行われる。ここでは、攻撃範囲に、プレイヤキャラPCの少なくとも一部が含まれている場合に、攻撃がヒットしたと判定される(ヒット判定)。ただし、衝突判定処理では、プレイヤキャラPCの全部が攻撃範囲に含まれている場合にヒット判定がなされてもよい。また、例えば、プレイヤキャラPCの所定の部位が攻撃範囲に含まれている場合に、ヒット判定がなされてもよい。
(攻撃範囲の説明)
図6Aは、攻撃モーションAの攻撃範囲の一例を説明する図である。図6Bは、攻撃モーションBの攻撃範囲の一例を説明する図である。なお、図6Aおよび図6Bでは、敵キャラECをボーン情報で示している。また、図6Aおよび図6Bの上図は、敵キャラECをz方向から見た図であり、図6Aおよび図6Bの下図は、敵キャラECをx方向から見た図である。なお、図6Aおよび図6Bにおけるx方向は、敵キャラECの幅方向(肩幅方向)とする。
例えば、敵キャラECの攻撃モーションAでは、敵キャラECが、図6Aに示す黒塗り矢印の方向に移動する。この場合、図6Aにハッチングで示す攻撃範囲Aaが設定される。攻撃範囲Aaは、関節Joのうち、敵キャラECの頭部に設けられた頭部関節JoHを起点にして設定される。具体的には、頭部関節JoHを起点にして、x方向およびz方向の所定の範囲であって、かつ、攻撃モーションAの開始から終了までの頭部関節JoHのy方向の移動範囲が、攻撃範囲Aaに設定される。攻撃モーションAでは、敵キャラECの全身が攻撃部位となる。
また、敵キャラECの攻撃モーションBでは、敵キャラECの左前足が、図6Bに矢印で示す方向に移動する。この場合、図6Bにハッチングで示す攻撃範囲Abが設定される。攻撃範囲Abは、関節Joのうち、敵キャラECの左前足に設けられた左前足部関節JoLを起点にして設定される。つまり、攻撃モーションBでは、敵キャラECの左前足が攻撃部位となる。
以上のように、攻撃範囲は、攻撃モーションごとに設定される。また、攻撃範囲は、敵キャラECの見た目上の攻撃部位の移動軌跡と大凡一致するように設定される。そして、衝突判定タイミングにおいて、攻撃範囲内にプレイヤキャラPCが含まれている場合にヒット判定がなされる。したがって、厳密には、衝突判定タイミングにおいて、敵キャラECの攻撃部位がプレイヤキャラPCに接触していないこともある。しかしながら、攻撃モーションは、極めて短時間で完了し、また、攻撃範囲は、攻撃部位の近傍にのみ設定されるため、プレイヤに違和感が生じることはほぼない。
そして、プレイヤは、回避操作を行うことで、プレイヤキャラPCに回避モーションを行わせることができる。上記したように、回避操作は、方向指示部34と第4ボタン32dとで行われる。通常、回避操作が行われると、プレイヤキャラPCは、方向指示部34の指示方向にローリングする。ローリングとは、プレイヤキャラPCが地面を転がりながら移動する動作である。
そして、プレイヤキャラPCの回避モーション中は、無敵期間が設定される。この無敵期間中は、敵キャラECの攻撃範囲にプレイヤキャラPCが含まれていても、敵キャラECの攻撃を受けない無敵状態となる。より詳細に説明すると、敵キャラECの攻撃モーションが開始された後、所定時間が経過すると衝突判定タイミングとなる。この衝突判定タイミングでは、プレイヤキャラPCが攻撃範囲に含まれているか否かが判定される。このとき、プレイヤキャラPCが攻撃範囲に含まれていても、無敵期間中であれば、敵キャラECの攻撃、すなわち、被ダメージが回避される。
ところが、回避モーションが行われるタイミング、あるいは、回避モーションの方向によっては、プレイヤキャラPCが敵キャラECの攻撃を明らかに受ける位置関係となり得る。例えば、攻撃モーションBが実行され、敵キャラECの攻撃部位である左前足が、図6Bに示すように動作しているときに、プレイヤキャラPCが、左前足の移動軌跡上を横切るようにしてローリングしたとする。この場合、プレイヤキャラPCが、明らかに敵キャラECの左前足に衝突しているように見えるにも拘わらず、実際には、一切のダメージを受けないといった違和感をプレイヤに与えてしまう。
本実施形態では、発動条件が設定された複数種類の回避モーションが設けられている。そして、回避操作が行われた際に、発動条件にしたがって回避モーションを決定することで、プレイヤが上述の違和感を抱かないようにしている。
(プレイヤキャラPCの回避モーション)
本実施形態では、回避モーションが、通常回避モーション、汎用回避モーション、専用回避モーションの3つに大別される。これら3つの回避モーションには優先順位が設けられており、専用回避モーションの優先順位が最も高く、通常回避モーションの優先順位が最も低い。専用回避モーションおよび汎用回避モーションには、それぞれ異なる発動条件が設定されている。プログラム上は、まず、専用回避モーションの発動条件(以下、「専用発動条件」と呼ぶ)の成立可否が判定され、専用発動条件が成立すると判定した場合には、必ず、専用回避モーションが実行される。
専用発動条件が成立しないと判定した場合には、次に、汎用回避モーションの発動条件(以下、「汎用発動条件」と呼ぶ)の成立可否が判定される。そして、汎用発動条件が成立すると判定した場合には、必ず、汎用回避モーションが実行される。専用発動条件および汎用発動条件のいずれも成立しない場合には、通常回避モーションが実行される。
なお、3つの回避モーションは、回避操作が共通である。換言すれば、共通の回避操作が行われた場合に、3つの回避モーションのうちのいずれかが実行される。つまり、プレイヤは、回避モーションを選択的に実行させることができず、発動条件にしたがって自動的に決定された回避モーションが実行されることとなる。
通常回避モーションは、プレイヤキャラPCが上述のローリングを行うものである。敵キャラECが攻撃モーション中ではない場合に回避操作が行われると、必ず、通常回避モーションが決定される。すなわち、汎用回避モーションおよび専用回避モーションには、回避操作の入力時において、敵キャラECの攻撃モーション中であることが発動条件として設定されていると言える。
(汎用回避モーションの説明)
図7は、汎用回避モーションの一例を説明する図である。回避操作の入力時に、専用発動条件が成立しておらず、汎用発動条件が成立していると判定されると、汎用回避モーションが実行される。本実施形態では、汎用回避モーションの動作パターンが10種類設けられているが、図7には、その一つ(後述する前方遠距離パターン)を例示している。例えば、敵キャラECの攻撃モーションBの実行中に回避操作が行われ、汎用回避モーション(前方遠距離パターン)が決定されたとする。
この場合、図7に示すように、プレイヤキャラPCは、敵キャラECの左前足および頭部の下を潜り抜けるように、前方に向かって複数回連続してローリングを行う。そして、敵キャラECの左後方に回り込み、敵キャラECから一定距離離隔した位置で、敵キャラECの方向を向いて立ち上がる。このように、汎用回避モーションは、通常回避モーションに比べて、プレイヤキャラPCがダイナミックな動作を行うように設計されている。
図8Aは、回避操作を説明する図であり、図8Bは、汎用回避モーションの動作パターンを説明する図である。本実施形態では、第4ボタン32dの押下操作と、方向指示部34の傾倒操作との組み合わせが回避操作となる。回避操作では、方向指示部34の傾倒方向が、プレイヤの指示方向として特定される。本実施形態では、汎用回避モーションの指示方向が、図8Aに示すように、「前方」、「右前方」、「右後方」、「左前方」、「左後方」として定義される。
具体的には、方向指示部34の傾倒方向と、方向指示部34の基準方向(図中0°)とのなす角度をθとする。なお、方向指示部34の基準方向は、ゲーム空間GSのxy平面において、プレイヤキャラPCが向いている方向と一致する。「前方」は、-45°≦θ≦+45°の範囲を示している。同様に、「右前方」は、+45°<θ≦+115°の範囲を示し、「右後方」は、+115°<θ≦+180°の範囲を示し、「左前方」は、-45°>θ≧-115°の範囲を示し、「左後方」は、-115°>θ>-180°の範囲を示している。なお、方向指示部34が操作されず(指示方向なし)、第4ボタン32dのみが操作された場合には、-45°≦θ≦+45°の場合と同様に、指示方向は「前方」として扱われる。
図8Bに示すように、汎用回避モーションは、10種類の動作パターンが設けられている。各動作パターンには、プレイヤキャラPCの動作態様、動作方向、移動距離がそれぞれ設定されている。汎用回避モーションの動作パターンは、指示方向により、「前方パターン」、「左前方パターン」、「右前方パターン」、「左後方パターン」、「右後方パターン」の5種類の動作パターンに分類される。
「前方パターン」では、回避操作の入力時に向いている方向にプレイヤキャラPCが移動する。また、「左前方パターン」、「右前方パターン」、「左後方パターン」、「右後方パターン」では、回避操作の入力時に向いている方向に対して、プレイヤキャラPCが、それぞれ「左前方」、「右前方」、「左後方」、「右後方」の予め定められた方向に移動する。
また、上記の指示方向により分類される5つの動作パターンには、それぞれ「近距離パターン」および「遠距離パターン」が設けられている。「近距離パターン」は、プレイヤキャラPCの移動距離が相対的に小さく設定された動作パターンであり、「遠距離パターン」は、プレイヤキャラPCの移動距離が、「近距離パターン」よりも大きく設定された動作パターンである。
例えば、回避操作の指示方向が「前方」である場合、汎用回避モーションの動作パターンは、「前方近距離パターン」または「前方遠距離パターン」となる。「前方近距離パターン」および「前方遠距離パターン」は、いずれもプレイヤキャラPCが、回避操作の入力時に向いている方向に移動する。ただし、「前方近距離パターン」は、「前方遠距離パターン」よりも、プレイヤキャラPCの移動距離が小さい。そのため、「前方近距離パターン」および「前方遠距離パターン」では、例えば、ローリング回数が異なるなど、プレイヤキャラPCの動作態様が互いに異なるものとなっている。
なお、詳しい説明は省略するが、回避操作の指示方向が「左前方」である場合には、汎用回避モーションの動作パターンは、「左前方近距離パターン」または「左前方遠距離パターン」となる。同様に、回避操作の指示方向が「右前方」である場合には、汎用回避モーションの動作パターンは、「右前方近距離パターン」または「右前方遠距離パターン」となる。回避操作の指示方向が「左後方」である場合には、汎用回避モーションの動作パターンは、「左後方近距離パターン」または「左後方遠距離パターン」となる。回避操作の指示方向が「右後方」である場合には、汎用回避モーションの動作パターンは、「右後方近距離パターン」または「右後方遠距離パターン」となる。このように、汎用回避モーションの動作パターンは、5種類の指示方向と、2つの移動距離とを組み合わせた合計10種類となる。
ここで、汎用回避モーションの動作パターンを決定する際には、回避操作の指示方向に基づいて、「前方パターン」、「左前方パターン」、「右前方パターン」、「左後方パターン」、「右後方パターン」のいずれかが決定される。このとき、決定された動作パターンのうち、「近距離パターン」でプレイヤキャラPCを動作させたと仮定した場合に、動作完了時(汎用回避モーションの終了時)におけるプレイヤキャラPCの位置(動作完了位置)が導出される。そして、動作完了位置が敵キャラECの攻撃範囲外であれば、「近距離パターン」が決定され、動作完了位置が敵キャラECの攻撃範囲内であれば、「遠距離パターン」が決定される。
上記のようにして「近距離パターン」および「遠距離パターン」のいずれかが決定されるので、プレイヤキャラPCが、動作完了時に攻撃範囲内に位置してしまう事態が回避される。つまり、汎用回避モーションが実行された場合に、敵キャラECの攻撃部位にプレイヤキャラPCが衝突しているように見えるおそれが低減される。
また、汎用回避モーションは、通常回避モーションに比べて、プレイヤキャラPCの動作態様がダイナミックであり、高いリアリティ性が実現される。しかしながら、プレイヤキャラPCの動作態様がダイナミックとなったことで、敵キャラECの攻撃モーションの開始タイミングと、プレイヤキャラPCの回避モーションの開始タイミングとによっては、却って大きな違和感をプレイヤに与えるおそれがある。
例えば、敵キャラECの攻撃モーションに対して、プレイヤキャラPCの汎用回避モーションの開始タイミングが早すぎたとする。この場合、敵キャラECの攻撃部位がプレイヤキャラPCから遠い位置にあるにも拘わらず、プレイヤキャラPCが動作を行ってしまうと、不自然な印象をプレイヤに与えてしまう。そこで、本実施形態では、回避操作が入力された場合、回避操作の入力タイミングに応じて待機時間が設定され、この待機時間に亘って、プレイヤキャラPCが所定の待機モーションを行う。そして、待機モーションの実行後に、汎用回避モーションによる動作が開始される。
(待機モーションの説明)
図9Aは、攻撃モーションに設定された開始可能タイミングを説明する図であり、図9Bは、待機モーションの動作パターンを説明する図である。汎用回避モーションの動作パターンが決定されると、待機モーションの実行有無が決定される。ここでは、敵キャラECが実行している攻撃モーションの種別、および、回避操作の入力タイミングに基づいて、待機モーションの実行有無が決定される。
具体的には、図9Aに示すように、敵キャラECの各攻撃モーションには、汎用回避モーションを開始することができる開始可能タイミングがそれぞれ設定されている。開始可能タイミングは、攻撃モーションの開始からの経過時間として設定されている。例えば、攻撃モーションAには、開始可能タイミングとして0.3秒が設定されている。これは、攻撃モーションAの開始後、0.3秒が経過したところで、プレイヤキャラPCの汎用回避モーションが開始可能であることを意味している。
つまり、攻撃モーションAの開始後、0.3秒が経過する前に、プレイヤキャラPCが汎用回避モーションを実行することはない。回避操作の入力タイミングが、攻撃モーションAの開始後、0.3秒が経過するよりも前であった場合には、開始可能タイミングまで待ったうえで汎用回避モーションが実行される。この場合、回避操作の入力タイミングから、開始可能タイミングまでの時間が待機時間として設定されることとなる。
例えば、攻撃モーションAの開始と同時に、回避操作が行われたとする。この場合には、回避操作の入力タイミングから、開始可能タイミングまでの時間が0.3秒となる。したがって、この場合には、待機時間として0.3秒が設定され、この待機時間に亘って待機モーションが実行された後に、汎用回避モーションが実行される。したがって、待機時間、すなわち、待機モーションの実行時間は、回避操作の入力タイミングに応じて変化することとなる。
上記のように、本実施形態では、攻撃モーションごとに設定されている開始可能タイミングに基づいて待機時間が設定され得る。しかしながら、例えば、敵キャラECの位置、あるいは、敵キャラECの攻撃範囲に基づいて、待機時間が設定されてもよい。具体的には、敵キャラECの攻撃部位(攻撃範囲)が、プレイヤキャラPCから所定の距離以上離隔している場合に、攻撃部位(攻撃範囲)が所定の範囲内に含まれるまで、汎用回避モーションの実行を待機する。このように、敵キャラECの攻撃モーションごとに、プレイヤキャラPCの汎用回避モーションの開始可能エリアが設定されてもよい。
本実施形態では、図9Bに示すように、待機モーションの動作パターンが5種類設けられている。待機モーションの動作パターンは、回避操作の指示方向に基づいて決定される。具体的には、回避操作の指示方向が「前方」である場合、待機モーションの動作パターンはパターンFに決定される。同様に、回避操作の指示方向が「左前方」、「右前方」、「左後方」、「右後方」である場合、待機モーションの動作パターンは、それぞれ、パターンLF、パターンRF、パターンLB、パターンRBに決定される。
図示は省略するが、待機モーションの動作パターンは、例えば、プレイヤキャラPCが僅かに腰を屈める動作であったり、前後左右方向に僅かに体重をかけたりする動作である。つまり、待機モーションの動作パターンは、プレイヤキャラPCの動作が小さく、次に実行される汎用回避モーションの動作パターンの予備的な動作となっている。
なお、開始可能タイミング以降に回避操作が入力された場合には、待機モーションが実行されることなく、即座に汎用回避モーションが実行される。
以上のように、回避操作の入力タイミングに応じて設定される待機時間に亘って、待機モーションが実行される。したがって、仮に、攻撃モーションに対して、回避操作の入力タイミングが早すぎたとしても、汎用回避モーションが最適なタイミングで実行されることとなり、プレイヤに不自然な印象を与えることがない。しかも、敵キャラECの攻撃部位がプレイヤキャラPCに近づいたところで汎用回避モーションが開始されるので、攻撃を寸前のところで回避することができたかのような印象をプレイヤに付与することができる。
なお、ここでは、回避操作の入力タイミングから、開始可能タイミングまでの待機時間に亘り、待機モーションが実行されることとした。つまり、待機モーションの実行時間は、回避操作の入力タイミングによって異なる。ただし、待機モーションの各動作パターンに予め実行時間を設定しておき、必ず、設定されている実行時間に亘って待機モーションが実行されることとしてもよい。この場合には、回避操作の入力タイミングによって、汎用回避モーションの開始時間が異なることになる。
(専用回避モーションの説明)
図10は、専用回避モーションの一例を説明する図である。回避操作の入力時に、専用発動条件が成立していると判定されると、専用回避モーションが実行される。本実施形態では、専用回避モーションの動作パターンが、敵キャラECの攻撃モーションごとに設定されているが、図10には、その一つ(後述するパターンAL)を例示している。例えば、敵キャラECの攻撃モーションAの実行中に回避操作が行われ、専用回避モーション(パターンAL)が決定されたとする。
この場合、図10に示すように、プレイヤキャラPCは、突進する敵キャラECの左前足の外側に回り込む。このとき、プレイヤキャラPCは、回転したり、つまずいたりしながら移動する。そして、敵キャラECの左前足に対して斜め後方の動作完了位置において、刀剣を構えた状態で起立する。この専用回避モーションは、汎用回避モーションよりも、さらにプレイヤキャラPCの動作態様がダイナミックに設計されている。
また、この専用回避モーションが実行された場合のプレイヤキャラPCの動作完了位置は、敵キャラECの左前足にダメージを与えることができる位置となっている。つまり、この専用回避モーションは、敵キャラECの攻撃を回避したうえに、さらに、プレイヤキャラPCが、敵キャラECにダメージを与えやすい位置に誘導される動作パターンとなっている。
図11は、専用回避モーションにおけるプレイヤキャラPCの移動経路を説明する図である。敵キャラECの各攻撃モーションには、発動可能範囲Ba(図11ではクロスハッチングで示す)が設定されている。発動可能範囲Baは、専用回避モーションを発動可能な位置である。専用回避モーションは、回避操作の入力時にプレイヤキャラPCが発動可能範囲Ba内に位置する場合に実行可能となる。
例えば、敵キャラECの所定の攻撃モーションに、発動可能範囲Ba1、Ba2、Ba3の3つの発動可能範囲Baが設定されているとする。なお、ここでは、発動可能範囲Baが、敵キャラECに設定されるボーン情報である基点部Pを中心とする所定の範囲に設定されている。ただし、発動可能範囲Baと、基点部Pとの相対位置関係は特に限定されるものではない。また、各攻撃モーションに設定される発動可能範囲Baは1つでもよいし、3つ以外の複数であってもよい。さらには、発動可能範囲Baが設定されていない攻撃モーションが含まれてもよい。発動可能範囲Baが設定されていない攻撃モーション中は、専用回避モーションが実行されることはない。
この攻撃モーションには、専用回避モーションの動作パターンとして、パターンX1、X2、X3の3種類が設定されている。つまり、この攻撃モーションに対して実行される専用回避モーションは、パターンX1、X2、X3のいずれかとなる。
ここで、専用回避モーションの各動作パターンは、発動可能範囲Baごとに設けられている。換言すれば、専用回避モーションの各動作パターンは、発動可能範囲Baに対応付けられている。具体的には、発動可能範囲Ba1には、パターンX1が対応しており、発動可能範囲Ba2には、パターンX2が対応しており、発動可能範囲Ba3には、パターンX3が対応している。
さらに、専用回避モーションの各動作パターンには、3つの基点部P(P1、P2、P3)のいずれか1つが対応している。すなわち、専用回避モーションの各動作パターンは、敵キャラECに設定される1つの基点部P、および、1つの発動可能範囲Baに対応している。
そして、回避操作の入力時に、プレイヤキャラPCが発動可能範囲Ba1に位置している場合、専用回避モーションの動作パターンは、必ず、パターンX1となる。同様に、回避操作の入力時に、プレイヤキャラPCが発動可能範囲Ba2、Ba3に位置している場合、専用回避モーションの動作パターンは、それぞれ、パターンX2、X3となる。
専用回避モーションの動作パターンには、図11に破線の矢印で示すように、敵キャラECに対するプレイヤキャラPCの移動経路と、移動過程でのプレイヤキャラPCの動作態様とが詳細に設定されている。ここで、各動作パターンに設定されているプレイヤキャラPCの移動経路は、対応する基点部Pを起点として設定されている。つまり、各動作パターンには、対応する基点部Pから動作完了位置PF(図11では、PF1、PF2、PF3)までの、プレイヤキャラPCの移動経路が設定されている。
例えば、専用回避モーションの動作パターンがパターンX1に決定されたとする。この場合、プレイヤキャラPCは、基点部P1から、動作完了位置PF1まで、破線の矢印の経路で移動する。なお、専用回避モーションの開始時には、プレイヤキャラPCが、基点部Pまで引き寄せられるように移動した後に、基点部Pから移動経路にしたがって動作する。このように、プレイヤキャラPCは、専用回避モーションにおいて、基点部Pに基づいて動作することとなる。
図12Aは、専用発動条件を説明する図である。図12Bは、専用回避モーションの発動可能タイミングを説明する図である。図12Cは、攻撃モーション、発動可能範囲Ba、基点部P、専用回避モーションの動作パターンの関係を説明する図である。図12Dは、専用発動条件である回避操作の指示方向を説明する図である。なお、図12Aには、専用発動条件を構成する一部の条件を示しており、図12Aに示す条件以外にも、例えば、攻撃モーション中であるといった条件が設定されている。また、図12B、図12C、図12Dには、一部の攻撃モーションのみが例示されている。
図12Aに示すように、専用発動条件には、回避操作の入力タイミング、プレイヤキャラPCの位置、回避操作の指示方向が含まれている。敵キャラECの攻撃モーション中に回避操作が入力されると、回避操作の入力タイミングに基づいて、専用回避モーションを実行可能なタイミングであるかが判定される。
図12Bに示すように、各攻撃モーションには、専用回避モーションを発動(実行)可能な発動可能タイミングが設定されている。この発動可能タイミングは、攻撃モーションの開始からの経過時間で設定されており、各攻撃モーションのモーション時間(開始から終了までに要する時間)内で設定されている。
例えば、モーション時間が1.6秒である攻撃モーションAには、発動可能タイミングとして、0.4~0.5秒が設定されている。これは、攻撃モーションAの開始後の経過時間が、0.4~0.5秒であるときに回避操作が入力された場合に、専用回避モーションが実行可能であることを示している。
つまり、専用回避モーションは、敵キャラECの攻撃モーション中の予め設定されたタイミングで回避操作が行われない限り実行されることはない。図12Bからも明らかなように、発動可能タイミングは、モーション時間の中でも僅かな期間に設定されている。したがって、回避操作の入力タイミングから見ても、専用回避モーションの実行確率は低いと言える。
なお、ここでは、攻撃モーションごとに発動可能タイミングが設定されているが、全ての攻撃モーションに対して、共通の発動可能タイミングが設定されてもよい。また、発動可能タイミングは、衝突判定タイミングよりも前、衝突判定タイミングよりも後、あるいは、衝突判定タイミングの前後に跨って設定されてもよい。
また、図12Cに示すように、各攻撃モーションには、専用回避モーションを発動(実行)可能な発動可能範囲Ba、および、プレイヤキャラPCの移動経路の起点となる基点部Pが設定されている。さらに、各攻撃モーションには、発動可能範囲Ba(基点部P)ごとに、専用回避モーションの動作パターンが設定されている。つまり、攻撃モーションごとに、選択可能な専用回避モーションの動作パターンが予め対応付けられている。そして、実行中(制御中)の攻撃モーションの種別に対応する動作パターンが決定可能である。
上記したように、専用回避モーションは、回避操作の入力時、実行中の攻撃モーションに設定された発動可能範囲Ba内にプレイヤキャラPCが位置している場合に実行可能である。そして、発動可能範囲Ba内にプレイヤキャラPCが位置している場合には、この発動可能範囲Baに対応する動作パターンが決定される。このとき決定される動作パターンは、プレイヤキャラPCが位置する発動可能範囲Baに最も近い基点部Pを起点にプレイヤキャラPCが動作する内容となっている。
また、専用回避モーションの実行有無は、回避操作の指示方向に基づいて決定される。図12Dに示すように、敵キャラECの各攻撃モーションには、専用回避モーションを実行可能とする回避操作の指示方向が設定されている。例えば、プレイヤキャラPCと所定の基点部Pとを結ぶ仮想線と、プレイヤキャラPCから指示方向に伸ばした指示線とがなす角度をθとする。この場合、角度θが、攻撃モーションごとに設定された範囲(許容角度)内であれば、専用回避モーションが実行可能となる。例えば、攻撃モーションAが実行されている場合、-30°≦θ≦+30°であれば、専用回避モーションが実行可能となる。
具体的に説明すると、回避操作が行われたときに、プレイヤキャラPCが位置する発動可能範囲Baから、その発動可能範囲Baに対応する基点部Pに近づく方向に方向指示がなされた場合に限り、専用回避モーションが実行可能となる。したがって、回転操作の指示方向が、基点部Pから遠ざかる方向である場合等には、専用回避モーションが不実行となる。これにより、プレイヤの指示方向と関係のない方向にプレイヤキャラPCが移動してしまうことがなく、プレイヤに違和感を与えるおそれがない。
以上説明したように、本実施形態では、攻撃モーション中に回避操作が入力された場合、少なくとも、敵キャラECの位置および動作、プレイヤキャラPCの位置、回避操作の指示方向、および、回避操作の入力タイミングに基づいて、回避モーション、すなわち、プレイヤキャラPCの動作パターンが決定される。このように、さまざまな条件にしたがってプレイヤキャラPCの動作パターンが決定されることから、プレイヤに違和感を与える動作が行われるおそれが低減され、リアリティ性を向上させることが可能となる。
(ゲーム装置1の制御部の説明)
以下に、回避モーションを決定するためのゲーム装置1の制御部について説明する。
図13は、ゲーム装置1におけるメモリ14の構成およびコンピュータの機能を説明する図である。メモリ14には、プログラム記憶領域14a、および、データ記憶領域14bが設けられている。CPU12は、バトルゲームの開始時に、バトルゲーム制御処理用のプログラム(モジュール)をプログラム記憶領域14aに記憶する。
バトルゲーム制御処理用のプログラムには、ゲーム空間生成プログラム50、敵キャラ動作決定プログラム52、攻撃モーション設定プログラム54、攻撃範囲設定プログラム56、敵キャラ動作制御プログラム58、入力操作判定プログラム60、プレイヤキャラ攻撃決定プログラム62、回避モーション決定プログラム64、待機モーション決定プログラム66、プレイヤキャラ動作制御プログラム68、衝突判定プログラム70が含まれる。なお、図13に列挙したプログラムは一例であり、バトルゲーム制御処理用のプログラムは、この他にも多数設けられている。
データ記憶領域14bには、データを記憶する記憶部として、敵キャラ位置情報記憶部80、プレイヤキャラ位置情報記憶部82、攻撃種別情報記憶部84、攻撃範囲情報記憶部86、時間情報記憶部88、敵キャラHP記憶部90、プレイヤキャラHP記憶部92が設けられている。なお、上記の各記憶部は一例であり、データ記憶領域14bには、この他にも多数の記憶部が設けられている。
CPU12は、プログラム記憶領域14aに記憶された各プログラムを動作させ、データ記憶領域14bの各記憶部のデータを更新する。そして、CPU12は、プログラム記憶領域14aに記憶された各プログラムを動作させることで、ゲーム装置1(コンピュータ)を、バトルゲーム制御部として機能させる。
具体的には、CPU12は、ゲーム空間生成プログラム50を動作させ、コンピュータをゲーム空間生成部50aとして機能させる。同様に、CPU12は、敵キャラ動作決定プログラム52、攻撃モーション設定プログラム54、攻撃範囲設定プログラム56、敵キャラ動作制御プログラム58、入力操作判定プログラム60、プレイヤキャラ攻撃決定プログラム62、回避モーション決定プログラム64、待機モーション決定プログラム66、プレイヤキャラ動作制御プログラム68、衝突判定プログラム70を動作させ、それぞれ敵キャラ動作決定部52a、攻撃モーション設定部54a、攻撃範囲設定部56a(設定部)、敵キャラ動作制御部58a(対象制御部)、入力操作判定部60a、プレイヤキャラ攻撃決定部62a、回避モーション決定部64a(決定部)、待機モーション決定部66a(決定部)、プレイヤキャラ動作制御部68a(プレイヤ制御部)、衝突判定部70a(衝突判定部)として機能させる。
ゲーム空間生成部50aは、ゲーム空間GSを生成してディスプレイ10に表示させる。
敵キャラ動作決定部52aは、移動モーション、攻撃モーション、被ダメージモーション等、予め設定された動作(モーション)の中から、敵キャラECに実行させる動作を決定する。
攻撃モーション設定部54aは、敵キャラ動作決定部52aが決定した攻撃モーションの種別を示す攻撃種別情報を攻撃種別情報記憶部84に記憶する。
攻撃範囲設定部56aは、敵キャラ動作決定部52aが決定した攻撃モーションに対応する攻撃範囲情報を攻撃範囲情報記憶部86に記憶する。攻撃範囲情報は、敵キャラECの攻撃がヒットする範囲を示す位置情報で構成される。攻撃範囲設定部56aは、敵キャラ動作決定部52aが決定した攻撃モーションと、敵キャラECの位置情報とに基づいて、攻撃範囲情報を設定する。
敵キャラ動作制御部58aは、敵キャラECの動作を制御する。すなわち、敵キャラ動作制御部58aは、敵キャラ動作決定部52aが決定した動作を、ゲーム空間GSにおいて敵キャラECに実行させる。つまり、敵キャラ動作制御部58aは、敵キャラECの表示制御を行う。また、敵キャラ動作制御部58aは、敵キャラ位置情報記憶部80に敵キャラECの位置情報を記憶する。さらに、敵キャラ動作制御部58aは、時間情報記憶部88において、敵キャラECが各種動作を開始してからの経過時間を更新する。
入力操作判定部60aは、コントローラ30から操作が入力されたか否か、および、コントローラ30から入力される操作内容を判定する。すなわち、入力操作判定部60aは、攻撃操作および回避操作を含む操作種別、および、指示方向を特定する。
プレイヤキャラ攻撃決定部62aは、攻撃操作が入力された場合に、プレイヤキャラPCが実行する攻撃モーションを決定する。
回避モーション決定部64aは、回避操作が入力された場合に、回避モーションの種別(通常回避モーション、汎用回避モーション、専用回避モーション)および動作パターンを決定する。
待機モーション決定部66aは、回避モーション決定部64aが汎用回避モーションを決定した場合に、待機モーションの実行有無、および、動作パターンを決定する。
プレイヤキャラ動作制御部68aは、プレイヤキャラPCの動作を制御する。具体的には、プレイヤキャラ動作制御部68aは、プレイヤキャラ攻撃決定部62a、回避モーション決定部64a、待機モーション決定部66aが決定した動作を、ゲーム空間GSにおいてプレイヤキャラPCに実行させる。つまり、プレイヤキャラ動作制御部68aは、プレイヤキャラPCの表示制御を行う。
また、プレイヤキャラ動作制御部68aは、コントローラ30の方向指示部34のみが操作された場合、指示方向にプレイヤキャラPCを移動させる(移動モーション)。なお、プレイヤキャラ動作制御部68aは、プレイヤキャラ位置情報記憶部82にプレイヤキャラPCの位置情報を記憶する。また、プレイヤキャラ動作制御部68aは、時間情報記憶部88において、プレイヤキャラPCが各種動作を開始してからの経過時間を更新する。
衝突判定部70aは、敵キャラECおよびプレイヤキャラPCの攻撃モーション中、衝突判定タイミングになると、相手に攻撃がヒットしたかを判定する。また、衝突判定部70aは、攻撃がヒットしたと判定した場合に、ダメージポイントを決定する。さらに、衝突判定部70aは、決定したダメージポイントを、相手のライフポイントHPから減算する。
(バトルゲーム制御処理の説明)
次に、ゲーム装置1のバトルゲーム制御処理について説明する。なお、以下では、プレイヤキャラPCの回避モーションと関連する処理について説明し、プレイヤキャラPCの回避モーションと関係のない処理については説明を省略する。
図14は、バトルゲーム制御処理の一例を示すフローチャートである。ゲーム装置1におけるバトルゲーム制御処理は、ディスプレイ10における画像の更新間隔で行われる。画像の更新間隔、すなわち、フレーム数は、例えば60F/秒であるため、以下のバトルゲーム制御処理は、1秒間に60回行われる。なお、フレーム数は一例にすぎず、適宜設計可能である。
バトルゲーム制御処理では、ゲーム空間生成部50aがゲーム空間GSを生成してディスプレイ10に表示させる(S1)。衝突判定部70aは、敵キャラECまたはプレイヤキャラPCの攻撃が相手にヒットしたかを判定する衝突判定処理(S100)を行う。この衝突判定処理について、図15を用いて説明する。
図15は、衝突判定処理を説明するフローチャートである。衝突判定部70aは、攻撃種別情報記憶部84の記憶情報に基づき、敵キャラECの攻撃モーション中であるかを判定する(S100-1)。なお、攻撃種別情報記憶部84には、攻撃モーションの開始時に、実行する攻撃モーションを示す攻撃種別情報が記憶される。また、攻撃モーションの終了時には、攻撃種別情報記憶部84から攻撃種別情報が削除される。したがって、攻撃種別情報記憶部84の記憶情報により、敵キャラECが攻撃モーション中であるか否か、および、実行中の攻撃モーションの種別を確認可能である。
攻撃モーション中であれば(S100-1のYES)、衝突判定部70aは、衝突判定タイミングであるかを判定する(S100-2)。なお、データ記憶領域14bには、衝突判定タイミングが攻撃モーションごとに予め記憶されている(図4参照)。また、時間情報記憶部88には、攻撃モーションの開始からの経過時間が記憶されている。衝突判定部70aは、時間情報記憶部88に記憶された情報と、データ記憶領域14bに記憶された衝突判定タイミングとに基づいて、衝突判定タイミングであるかを判定する。
衝突判定タイミングであれば(S100-2のYES)、衝突判定部70aは、プレイヤキャラPCが攻撃範囲内に位置しているかを判定する(S100-3)。ここでは、攻撃範囲情報記憶部86に記憶された攻撃範囲情報と、プレイヤキャラ位置情報記憶部82に記憶されたプレイヤキャラPCの位置情報とに基づいて、プレイヤキャラPCが攻撃範囲内であるか否かの判定が行われる。
なお、本実施形態では、攻撃範囲情報は、攻撃モーションの開始時に設定され、時間の経過、すなわち、敵キャラEC(攻撃部位)の位置変移に伴って変化することはない。ただし、攻撃範囲情報は、攻撃モーションの開始からの経過時間に応じて変化してもよい。
プレイヤキャラPCが攻撃範囲内に位置している場合(S100-3のYES)、衝突判定部70aは、プレイヤキャラPCの無敵期間中であるか(無敵状態であるか)を判定する(S100-4)。なお、本実施形態では、回避モーションの開始から一定時間(例えば0.7秒)が経過するまでの間が無敵期間に設定されている。この一定時間は、敵キャラECの全ての攻撃モーションの開始から衝突判定タイミングまでの時間以上である(ここでは、攻撃モーションの開始から衝突判定タイミングまでの最長時間が0.7秒)。したがって、攻撃モーションの実行中に回避モーションが開始された場合、衝突判定タイミングでは、必ず、プレイヤキャラPCの無敵期間(無敵状態)となる。
プレイヤキャラPCの無敵期間ではない場合(S100-4のNO)、衝突判定部70aは、プレイヤキャラPCに与えるダメージポイントを決定する(S100-5)。ここでは、攻撃モーションの種別、プレイヤキャラPCの位置、装備等、種々の情報に基づいて、ダメージポイントが決定される。
そして、衝突判定部70aは、プレイヤキャラHP記憶部92に記憶されたプレイヤキャラPCのライフポイントHPから、決定したダメージポイントを減算する(S100-6)。これにより、プレイヤキャラPCのライフポイントHPが更新される。また、バトルゲーム制御部は、プレイヤキャラPCがダメージを受けた際の被ダメージモーションをセットする(S100-7)。
プレイヤキャラPCのライフポイントHPが0になると(S100-8のYES)、バトルゲーム制御部は、バトルゲームを終了させる際に必要な終了処理を実行する(S100-9)。一方、プレイヤキャラPCのライフポイントHPが0でなければ(S100-8のNO)、衝突判定部70aは、プレイヤキャラPCの攻撃モーション中であるかを判定する(S100-10)。
プレイヤキャラPCの攻撃モーション中であれば(S100-10のYES)、衝突判定部70aは、プレイヤキャラPCの攻撃が敵キャラECにヒットしたか否かを判定し、ヒットした場合にはダメージポイントを算出、減算する等、各種処理を行う(S100-11)。そして、敵キャラECのライフポイントHPが0であれば(S100-12のYES)、バトルゲーム制御部が、上記の終了処理を行う(S100-9)。
図14に戻り、バトルゲーム制御部は、敵キャラECの動作がセットされているかを判定する(S11)。敵キャラECの動作がセットされていない場合(S11のNO)、敵キャラ動作決定部52aが敵キャラECに実行させる動作を決定してデータ記憶領域14bに記憶する(S12)。なお、敵キャラ動作決定部52aが攻撃モーションを決定した場合、攻撃モーション設定部54aが攻撃種別情報記憶部84に攻撃種別情報を記憶し、攻撃範囲設定部56aが攻撃範囲情報記憶部86に攻撃範囲情報を記憶する。
敵キャラ動作制御部58aは、セットされている各種動作(モーション)のタイムラインにしたがって、ゲーム空間GS内における敵キャラECの表示制御を行う(S13)。
また、プレイヤキャラPCの動作がセットされていない場合(S14のNO)、入力操作判定部60aは、コントローラ30からの入力信号を解析する入力操作判定処理を行う(S15)。コントローラ30から操作入力がある場合(S16のYES)、バトルゲーム制御部は、操作無効期間中であるかを判定する(S17)。なお、操作無効期間は、例えば、プレイヤキャラPCの攻撃モーション中や被ダメージモーション中等、動作ごとに予め設定されるものと、プレイヤキャラPCの状態異常等、動作とは関係なく設定されるものとがある。
操作無効期間中でなければ(S17のNO)、入力操作判定部60aは、入力された操作が回避操作であるかを判定する(S18)。回避操作でなければ(S18のNO)、回避モーション以外のプレイヤキャラPCの動作が、入力操作に応じて決定される(S19)。ここでは、例えば、攻撃操作が入力されていれば、プレイヤキャラ攻撃決定部62aが、プレイヤキャラPCの攻撃モーションを決定する。
一方、回避操作が入力されると(S18のYES)、回避モーション決定部64aが後述の回避モーション決定処理を行う(S200)。プレイヤキャラ動作制御部68aは、新たに決定された、あるいは、先に決定されている動作(モーション)にしたがってプレイヤキャラPCを動作させる(S20)。なお、プレイヤキャラ動作制御部68aは、プレイヤキャラPCの動作制御に伴い、プレイヤキャラ位置情報記憶部82および時間情報記憶部88の各種情報を更新する。
図16は、回避モーション決定処理を説明するフローチャートである。回避モーション決定部64aは、敵キャラECの攻撃モーション中であるかを判定する(S200-1)。敵キャラECの攻撃モーション中でなければ(S200-1のNO)、回避モーション決定部64aは、通常回避モーションをセット(通常回避モーションを示す情報をデータ記憶領域14bに記憶)する(S200-2)。これにより、プレイヤキャラ動作制御部68aが、プレイヤキャラPCに通常回避モーションを実行させることとなる(図14のS20)。
一方、敵キャラECの攻撃モーション中であれば(S200-1のYES)、回避モーション決定部64aは、攻撃種別情報記憶部84に記憶されている敵キャラECの攻撃種別情報を確認する(S200-3)。そして、回避モーション決定部64aは、専用回避モーションを実行可能なタイミングであるかを判定する(S200-4)。なお、データ記憶領域14bには、発動可能タイミングが攻撃モーションごとに予め記憶されている(図12B参照)。また、時間情報記憶部88には、攻撃モーションの開始からの経過時間が記憶されている。回避モーション決定部64aは、時間情報記憶部88に記憶された情報と、データ記憶領域14bに記憶された発動可能タイミングとに基づいて、専用回避モーションを実行可能なタイミングであるかを判定する。
専用回避モーションを実行可能なタイミングであると判定した場合(S200-4のYES)、回避モーション決定部64aは、プレイヤキャラPCが、発動可能範囲Ba内に位置しているかを判定する。なお、データ記憶領域14bには、発動可能範囲Baが攻撃モーションごとに予め記憶されている(図12C参照)。回避モーション決定部64aは、プレイヤキャラ位置情報記憶部82に記憶されたプレイヤキャラPCの位置情報と、データ記憶領域14bに記憶された発動可能範囲Baとに基づいて、プレイヤキャラPCが発動可能範囲Ba内に位置しているかを判定する。
プレイヤキャラPCが発動可能範囲Ba内に位置していると判定した場合(S200-5のYES)、回避モーション決定部64aは、回避操作の指示方向が許容角度であるかを判定する(S200-6)。なお、データ記憶領域14bには、回避操作の指示方向の許容角度が攻撃モーションごとに予め記憶されている(図12D参照)。
回避操作の指示方向が許容角度であれば(S200-6のYES)、回避モーション決定部64aは、専用回避モーションの動作パターンを決定してデータ記憶領域14bにセットする(S200-7)。これにより、プレイヤキャラ動作制御部68aが、プレイヤキャラPCに専用回避モーションを実行させることとなる(図14のS20)。なお、S200-7では、回避モーション決定部64aは、実行中の敵キャラECの攻撃モーションと、プレイヤキャラPCが位置する発動可能範囲Baとに基づいて、専用回避モーションの動作パターンを決定する。
また、上記S200-4からS200-6のいずれかにおいてNOと判定した場合、すなわち、専用発動条件が成立しないと判定した場合、回避モーション決定部64aは、衝突判定タイミングが無敵期間中であるかを判定する(S200-8)。具体的には、回避モーション決定部64aは、敵キャラECの攻撃モーションに設定されている衝突判定タイミングを取得する。そして、衝突判定タイミングが、プレイヤキャラPCの無敵期間中でなければ(S200-8のNO)、回避モーション決定部64aは、通常回避モーションをセットする(S200-2)。
一方、プレイヤキャラPCの無敵期間中であれば(S200-8のYES)、回避モーション決定部64aは、攻撃範囲情報記憶部86に記憶されている敵キャラECの攻撃範囲情報を取得する(S200-9)。
また、回避モーション決定部64aは、敵キャラECの攻撃モーションおよび指示方向に対応する「近距離パターン」の動作を実行したと仮定した場合の動作完了位置を導出する(S200-10)。なお、ここでは、動作完了位置に代えて、回避操作入力時のプレイヤキャラPCの位置を参照してもよい。
動作完了位置が敵キャラECの攻撃範囲外であれば(S200-11のYES)、回避モーション決定部64aは、敵キャラECの攻撃モーションおよび指示方向に対応する「近距離パターン」の動作パターンをセットする(S200-12)。一方、動作完了位置が敵キャラECの攻撃範囲外でなければ(S200-11のNO)、回避モーション決定部64aは、敵キャラECの攻撃モーションおよび指示方向に対応する「遠距離パターン」の動作を実行したと仮定した場合の動作完了位置を導出する(S200-13)。
動作完了位置が敵キャラECの攻撃範囲外でなければ(S200-14のNO)、回避モーション決定部64aは、通常回避モーションをセットする(S200-2)。一方、動作完了位置が敵キャラECの攻撃範囲外であれば(S200-14のYES)、回避モーション決定部64aは、敵キャラECの攻撃モーションおよび指示方向に対応する「遠距離パターン」の動作パターンをセットする(S200-15)。
「近距離パターン」または「遠距離パターン」の汎用回避モーションがセットされると、待機モーション決定部66aは、汎用回避モーションの実行前に、待機モーションを実行させるか否かを決定する(S200-16)。具体的には、データ記憶領域14bには、汎用回避モーションの開始可能タイミングが記憶されている(図9A参照)。また、データ記憶領域14bには、回避操作の指示方向ごとに、待機モーションの動作パターンが記憶されている(図9B参照)。
待機モーション決定部66aは、敵キャラECの攻撃モーションの開始からの経過時間が、開始可能タイミングに達しているかを判定する。その結果、開始可能タイミングに達していれば、待機モーションの不実行を決定する。一方、開始可能タイミングに達していなければ、回避操作の指示方向に対応する待機モーションの動作パターンを決定して、データ記憶領域14bにセットする。なお、待機モーションの動作パターンが決定された場合、開始可能タイミングから、上記のS200-12またはS200-15でセットされた汎用回避モーションの動作パターンを開始させるようにタイムラインの設定が行われる。
そして、回避モーション決定部64aは、いずれかの回避モーションがセットされた場合に、時間情報記憶部88に無敵期間の時間(無敵時間)をセットする(S200-17)。ここでは、時間情報記憶部88にタイマ値がセットされるが、このタイマ値は、図14のS20においてデクリメントされる。タイマ値が0よりも大きい場合に、無敵期間中であると判定される。
以上、添付図面を参照しながら実施形態の一態様について説明したが、本発明は上記実施形態に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇において、各種の変形例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
例えば、上記実施形態におけるプレイヤキャラPCおよび敵キャラECの表示態様は一例にすぎない。いずれにしても、仮想のゲーム空間GSに配される対象オブジェクトが、少なくとも攻撃モーションを含むいずれかの動作を行えばよい。
また、上記実施形態では、敵キャラECの攻撃モーション中に回避操作が行われた場合に、回避モーションの種別、および、回避モーションの動作パターンが決定される。しかしながら、攻撃モーション中に行われる操作は回避操作に限らない。例えば、敵キャラECの攻撃モーション中に所定の攻撃操作が入力された場合に、プレイヤキャラPCが、相手の攻撃をかわしながら、敵キャラECにダメージを与える動作を行う、所謂、カウンターモーションを実行してもよい。
いずれにしても、対象オブジェクトの攻撃モーション中に、ゲーム空間GSにおける指示方向を識別可能な特定操作が入力された場合に、いずれかの動作パターンが決定されればよい。また、特定操作は、ゲーム空間GSにおける指示方向を識別可能であれば、具体的な操作態様は特に限定されない。
上記実施形態では、回避モーションとして、専用回避モーション、汎用回避モーションおよび通常回避モーションが設けられている。しかしながら、例えば、通常回避モーションとして、移動距離あるいは動作態様が異なる複数の動作パターンのみが設けられ、回避操作に応じて、通常回避モーションのいずれかの動作パターンが決定されてもよい。すなわち、上記実施形態における各回避モーションの動作パターンは一例に過ぎず、適宜設計可能である。
また、上記実施形態では、敵キャラECの攻撃モーションに対応する攻撃範囲情報が設定される。また、攻撃範囲情報とプレイヤキャラPCの位置情報とに基づいて、衝突の有無が判定される。そして、回避操作が入力された場合、プレイヤキャラPCの動作完了位置が、攻撃範囲情報に含まれるか否かに応じて、汎用回避モーションの動作パターンが決定される。したがって、上記実施形態では、プレイヤキャラPCの動作パターンを決定するために用いられる情報に、攻撃範囲情報が含まれていると言える。
さらには、攻撃範囲情報は、敵キャラECの位置および動作の双方に応じて設定されるものである。つまり、上記実施形態では、敵キャラECの位置および動作の双方に応じて、プレイヤキャラPCの動作パターンが決定されると言える。しかしながら、動作パターンは、例えば、回避操作が入力された場合、敵キャラECの位置情報および動作(モーション)のいずれか一方に基づいて決定されてもよい。
さらに、上記実施形態では、攻撃モーションの開始から終了までの間の予め設定された衝突判定タイミングで衝突の有無が判定される。そして、衝突すると判定された場合には、通常回避モーションが決定され、衝突しないと判定された場合に、汎用回避モーションが決定される。したがって、上記実施形態では、衝突判定タイミングに基づいて動作パターンが決定されるものと言える。さらには、上記実施形態では、ゲーム空間GSに配されるプレイヤキャラPCの位置情報、回避操作の指示方向、および、回避操作の入力タイミングに基づいて、動作パターンが決定されるとも言える。
また、上記実施形態では、敵キャラECの攻撃モーションが複数種類設けられ、攻撃モーションごとに、選択可能な専用回避モーションの動作パターンが予め対応付けられている。そして、専用回避モーションについては、制御中の攻撃モーションの種別に対応する動作パターンが決定可能である。
これに対して、汎用回避モーションの動作パターンは、回避操作の指示方向ごとに設定されている。しかしながら、汎用回避モーションの動作パターンについても、攻撃モーションの種別ごとに設けられ、制御中の攻撃モーションの種別に対応する動作パターンが決定されてもよい。また、汎用回避モーションと同様に、専用回避モーションについても、回避操作の指示方向ごとに設定されてもよい。
また、上記実施形態における待機モーションは必須ではない。したがって、回避操作が入力された場合に、回避操作の入力タイミングに拘わらず、即座に回避モーションが開始されてもよい。
以上のように、上記実施形態では、専用回避モーション、汎用回避モーション、通常回避モーションの各動作パターンが、種々の情報に基づいて決定される。しかしながら、プレイヤキャラPCの動作パターンは、敵キャラEC(対象オブジェクト)の攻撃モーション中に、ゲーム空間GSにおける指示方向を識別可能な回避操作(特定操作)が入力された場合、少なくとも、敵キャラEC(対象オブジェクト)の位置および動作のいずれか一方または双方に応じて設定される判定情報、ゲーム空間GSに配されるプレイヤキャラPC(プレイヤオブジェクト)の位置情報、回避操作(特定操作)の指示方向、および、回避操作(特定操作)の入力タイミングに基づいて決定されればよい。
また、上記実施形態に示す制御処理は一例に過ぎない。上記実施形態では、バトルゲームを実行するための制御処理が、ゲーム装置1において実行される。しかしながら、バトルゲームを実行するための制御処理は、例えば、ゲーム装置1とサーバ2とで並行して実行されてもよい。すなわち、クライアントサーバシステムである情報処理システムSが、上記の各制御処理を実行してもよい。
また、上記実施形態において、バトルゲームを実現するためのプログラムは、コンピュータが読み取り可能な記憶媒体に格納されてもよい。さらには、上記実施形態は、各機能およびフローチャートに示すステップを実現する情報処理方法としてもよい。