以下、本発明の一実施の形態について図面を参照しつつ説明する。
<1.ゲームシステムの全体構成>
まず、図1及び図2を用いて、本実施形態に係るゲームシステム1の全体構成の一例について説明する。図1に示すように、ゲームシステム1は、複数の端末装置3と、サーバ5を有する。複数の端末装置3とサーバ5は、例えばLANやインターネット等のネットワークNWを介して通信可能に接続されている。なお、図1ではサーバ5が1台のコンピュータで構成されているが、複数台のコンピュータで構成されてもよい。
図2に示すように、各端末装置3は、ゲームコントローラ7と表示装置9に有線又は無線により通信可能に接続されている。
端末装置3は、例えば据え置き型のゲーム機である。但しこれに限定されるものではなく、例えば入力部や表示部等を一体に備えた携帯型のゲーム機でもよい。また、ゲーム機以外にも、例えば、サーバコンピュータ、デスクトップ型コンピュータ、ノート型コンピュータ、タブレット型コンピュータ等のように、コンピュータとして製造、販売等されているものや、携帯電話、スマートフォン、ファブレット等のように、電話機として製造、販売等されているものでもよい。
プレイヤは、ゲームコントローラ7を用いて各種の操作入力を行う。図2に示す例では、ゲームコントローラ7は例えば十字キー11や複数のボタン13等を有する。なお、ゲームコントローラ7は上記に代えて又は加えて、例えばジョイスティックやタッチパッド等を有してもよい。
表示装置9は、例えばブラウン管、液晶、プラズマ、有機EL、プロジェクター等によるディスプレイ装置である。表示装置9は、音声を出力するスピーカー(図示省略)等を一体又は別体として備えてもよい。
サーバ5(情報処理装置の一例)は、ゲームサービスを受ける各ユーザの端末装置3からのネットワークNWを介したアクセスを受け付けて、各ユーザのゲーム情報を記憶装置に蓄積して管理し、各ユーザにネットワークNWを介したゲームサービス(オンラインゲーム)を提供する。
サーバ5によるゲームサービスの提供の形態としては、ゲームプログラム(アプリケーションソフトウェアともいう)がサーバ5に実装されており、端末装置3でゲームを実行するのではなく、端末装置3でのプレイヤの操作入力に応じてサーバ5でゲームを実行し、その実行結果を各プレイヤの端末装置3に送信する形態がある。例えば、各プレイヤの端末装置3に搭載されたウェブブラウザによってゲームをプレイできる、いわゆるブラウザゲームをサーバ5が提供してもよい。また、サーバ5でゲームを実行した結果のゲーム映像を、例えばストリーミング形式等で端末装置3に送信する、いわゆるクラウドゲームをサーバ5が提供してもよい。あるいは、SNS(ソーシャルネットワーキングサービス)においてウェブブラウザ上で動作するAPI(アプリケーションプログラミングインタフェース)などの動作環境を基に作成されるアプリケーションソフトウェアによって実行される、いわゆるソーシャルゲームをサーバ5が提供してもよい。なお、端末装置3にゲームプログラムの一部をインストールし、サーバ5だけでなく端末装置3においても部分的にゲーム処理が実行されるようにしてもよい。
<2.ゲームの概略内容>
次に、本実施形態に係るゲーム、すなわち、本発明のゲームプログラム及びゲーム処理方法がサーバ5等によって実行されることにより提供されるゲームの概略内容の一例について説明する。
本実施形態に係るゲームは、サーバ5に接続された複数の端末装置3において各プレイヤにより操作される複数のプレイヤキャラクタが、ゲームプログラムにより規定される所定のアルゴリズム(いわゆるゲームAI)により自動制御される敵キャラクタと戦闘を行いつつストーリーを進めていく、いわゆるオンラインアクションロールプレイングゲームである。戦闘は、各プレイヤキャラクタがゲームフィールド上で敵キャラクタと遭遇するとゲームフィールド上で直接行われ、各プレイヤの操作に連動してリアルタイムに各プレイヤキャラクタが行動する。
なお、本実施形態では、ゲームキャラクタが人間のキャラクタ(例えば戦士、侍、武士等)である場合を説明するが、人間以外の動物キャラクタ、人間や動物以外の仮想的な生物キャラクタ、ロボット等の機械、生物以外の物体等でもよい。
本実施形態に係るゲームでは、プレイヤキャラクタは各種のアクション(例えば攻撃、回復、防御、補助、強化等を目的とした魔法、スキル、アイテム等)を発動することができる。各アクションには、その種類に応じて、ゲームフィールド上において効果が及ぶ範囲(以下「効果範囲」という)が設定されている。本実施形態に係るゲームは、プレイヤキャラクタが適切な位置でアクションを発動できるように支援する。以下、この内容について詳細に説明する。
<3.サーバの機能的構成>
次に、図3及び図4乃至図13を用いて、サーバ5の機能的構成の一例について説明する。
図3に示すように、サーバ5は、位置情報取得処理部15と、発動位置特定処理部17と、第1領域設定処理部19と、効果範囲取得処理部21と、第1キャラクタ数集計処理部23と、第2キャラクタ数集計処理部25と、第3キャラクタ数集計処理部27と、キャラクタ特定処理部29と、アクション発動処理部31とを有する。
位置情報取得処理部15は、ゲームフィールドに配置された複数のゲームキャラクタのゲームフィールドでの位置情報を取得する。「ゲームキャラクタ」は、プレイヤキャラクタ及び敵キャラクタの少なくとも一方を含む。例えば、プレイヤキャラクタが攻撃系のアクションを発動する場合には、位置情報取得処理部15は各敵キャラクタの位置情報をそれぞれ取得する。また、プレイヤキャラクタが回復系(防御、補助、強化等を含む)のアクションを発動する場合には、位置情報取得処理部15は味方キャラクタである各プレイヤキャラクタの位置情報をそれぞれ取得する。
また、「複数のゲームキャラクタ」は、処理対象となるゲームフィールドに配置された全てのゲームキャラクタである。なお、例えば処理対象がゲームフィールドの一部のエリアに限定されるような場合には、当該エリア内のゲームキャラクタとしてもよい。
「位置情報」は、例えば3次元仮想空間であるゲームフィールドのワールド座標系(X,Y,Z)における位置座標である。なお、例えばゲームフィールドを適宜の大きさ(例えば発動するアクションの効果範囲に対応する大きさ等)の領域に分割し、各ゲームキャラクタが位置する領域の場所を指定することで位置情報としてもよい。
発動位置特定処理部17は、位置情報取得処理部15により取得された位置情報に基づいて、プレイヤが操作するプレイヤキャラクタが発動するアクションであってゲームフィールドでの効果範囲が設定されたアクションのゲームフィールドでの発動位置を特定する。なお、「プレイヤキャラクタが発動するアクション」には、例えば敵キャラクタに対する攻撃系又は攻撃補助系(例えば敵の防御力を低下させる等)の魔法、スキル、アイテムの発動や、例えば味方キャラクタに対する回復系、防御系、補助系(例えば敵から受けるダメージを減少させる等)、強化系(例えば味方の攻撃力を増加させる等)の魔法、スキル、アイテムの発動等が含まれる。本実施形態では、発動位置特定処理部17等により例えば5種類の発動位置特定処理が実行される。以下、これらの発動位置特定処理の詳細内容について説明する。
(3-1.第1の発動位置特定処理)
第1の発動位置特定処理は、比較的狭いエリアにゲームキャラクタが集中している場合に有効である。この処理では、第1領域設定処理部19が、位置情報取得処理部15により取得された位置情報に基づいて、所定数のゲームキャラクタが含まれるように第1の領域をゲームフィールドに設定する。そして、発動位置特定処理部17は、第1の領域の中心位置を発動位置として特定する。
なお、「ゲームキャラクタ」は、前述と同様、プレイヤキャラクタ及び敵キャラクタの少なくとも一方を含む。また、「所定数のゲームキャラクタ」は、処理対象となるゲームフィールドに配置された全てのゲームキャラクタでもよいし、例えば処理対象がゲームフィールドの一部のエリアに限定されるような場合には、当該エリア内のゲームキャラクタでもよい。
図4~図7を用いて、第1の発動位置特定処理の一例について説明する。なお、図5及び図6は敵キャラクタの配置とアクションの効果範囲との位置関係を表す説明図であり、図5は敵キャラクタを中心にアクションを発動させる場合(比較例)、図6は第1の発動位置特定処理により最適化された位置でアクションを発動させる場合である。
図4に、戦闘中のゲーム画面の一例を示す。図4に示す例では、ゲームフィールド33上でプレイヤキャラクタ35A(ゲームキャラクタの一例)の正面に複数の敵キャラクタ37A~37D(ゲームキャラクタの一例)が対峙している。敵キャラクタ37A~37Dは、例えば四角形状に配置されている。この場合において、プレイヤからゲームコントローラ7を介したアクション(例えば攻撃魔法)の発動の指示を受け付けると、プレイヤキャラクタ35Aが攻撃魔法を発動させる。
図5は、例えば敵キャラクタ37Aの位置を発動位置とした場合の攻撃魔法の効果範囲39を表している。この例では、敵キャラクタ37A~37D(ハッチングで図示)が、効果範囲39の半径よりも大きな間隔を空けて位置しているものとする。この場合、攻撃魔法の効果範囲39内に1人の敵キャラクタ37Aしか存在せず、敵キャラクタ37Aのみにしかダメージを与えることができない。
図6に、第1の発動位置特定処理の一例を示す。図6に示すように、第1領域設定処理部19により、敵キャラクタ37A~37Dが含まれるように例えば四角形状の第1の領域41がゲームフィールド33に設定される。そして、発動位置特定処理部17により、第1の領域41の中心位置が発動位置43として特定される。このようにして発動位置を最適化することにより、攻撃魔法の効果範囲39内に全ての敵キャラクタ37A~37Dを含めることができる。なお、第1の領域41の形状は四角形に限られるものではなく、例えば四角形以外の多角形としてもよいし、円形や楕円形としてもよい。
図7に、上述のようにして特定された発動位置43でプレイヤキャラクタ35Aが攻撃魔法を発動した場合のゲーム画面の一例を示す。図7に示すように、全ての敵キャラクタ37A~37Dに効率的にダメージを与えることができる。
なお、以上では敵キャラクタに対して攻撃魔法を発動させる場合を一例として説明したが、第1の発動位置特定処理を、味方キャラクタに対してアクション(例えば回復系、防御系、補助系、強化系の魔法、スキル、アイテム)を発動させる場合に適用してもよい。例えば、比較的狭いエリアに味方キャラクタが集中しているような場合に、それらの味方キャラクタが含まれるように第1の領域を設定し、その中心位置でアクションを発動させることで、効率的に味方キャラクタの回復等を行うことができる。
(3-2.第2の発動位置特定処理)
第2の発動位置特定処理は、比較的広いエリアにゲームキャラクタが分散している場合に有効である。この処理では、上述した第1の発動位置特定処理と同様に、第1領域設定処理部19が、位置情報取得処理部15により取得された位置情報に基づいて、所定数のゲームキャラクタが含まれるように第1の領域をゲームフィールドに設定する。そして、効果範囲取得処理部21が、発動されるアクションの効果範囲を取得する。なお、各アクションの効果範囲はアクションの種類ごとに予め設定され、ゲームプログラムに記録されている。
また、第1キャラクタ数集計処理部23が、第1領域設定処理部19により設定された第1の領域の内部で、取得した効果範囲に対応する第2の領域を所定の間隔で移動させ、各移動位置において第2の領域内に存在するゲームキャラクタの数を集計する。そして、発動位置特定処理部17は、第2の領域内に存在するゲームキャラクタの数が最も多かった移動位置を発動位置として特定する。なお、集計対象となる「第2の領域内に存在するゲームキャラクタ」は、ゲームキャラクタの全部が第2の領域内に含まれる場合だけでもよいし、その一部が第2の領域内に含まれる場合を含めてもよい。
図8及び図9を用いて、第2の発動位置特定処理の一例について説明する。なお、図8及び図9は、第2の発動位置特定処理の処理内容を説明するための説明図であり、ゲーム画面(前述の図4、図7等)については図示を省略する。
図8に示す例では、ゲームフィールド44が陸部44aと海部44bとを有しており、陸部44aの広いエリアに亘って複数のプレイヤキャラクタ45A~45D(ゲームキャラクタの一例。白色で図示)と複数の敵キャラクタ47(ゲームキャラクタの一例。ハッチングで図示)とが分散して配置されている。そして、図8に示すように、第1領域設定処理部19により、この例では全ての敵キャラクタ47が含まれるように例えば四角形状の第1の領域49がゲームフィールド44に設定される。なお、第1の領域49の形状は四角形に限られるものではなく、例えば四角形以外の多角形としてもよいし、円形や楕円形としてもよい。
次に、図9に示すように、第1キャラクタ数集計処理部23により、第1の領域49の内部で、発動するアクションの効果範囲と同等の大きさである円形の第2の領域51(以下適宜「効果範囲51」ともいう)を所定の間隔で移動させ、各移動位置において第2の領域51内に存在する敵キャラクタ47の数が集計される。なお、「所定の間隔」は特に限定されるものではないが、この例では例えば第2の領域51(効果範囲)の半径程度としている。そして、発動位置特定処理部17により、第2の領域51内に存在する敵キャラクタ47の数が最も多かった移動位置が発動位置43として特定される。図9に示す例では、敵キャラクタ47の数が最大の4人となる第2の領域51(図9中太実線で図示)の中心位置が発動位置43として特定される。
このようにして、第1の領域49を設定することにより、ゲームフィールド44における敵キャラクタ47が存在しないエリアについては排除することができ、無駄な処理を防止できる。その上で、敵キャラクタ47が存在するエリアについては漏れなく探索を行うことができるので、効率的に敵キャラクタ47を倒すことができる適切な発動位置を精度良く特定することができる。
なお、以上では敵キャラクタに対してアクションを発動させる場合を一例として説明したが、第2の発動位置特定処理を、味方キャラクタに対してアクションを発動させる場合に適用してもよい。例えば、比較的広いエリアに味方キャラクタが分散しているような場合に、上記と同様の処理を行い、味方キャラクタの数が最も多かった移動位置で例えば回復、防御、補助、強化系のアクションを発動させることで、効率的に味方キャラクタの回復等を行うことができる。
(3―3.第3の発動位置特定処理)
第3の発動位置特定処理も、比較的広いエリアにゲームキャラクタが分散している場合に有効である。この処理では、上述した第2の発動位置特定処理と同様に、第1領域設定処理部19が、位置情報取得処理部15により取得された位置情報に基づいて、所定数のゲームキャラクタが含まれるように第1の領域をゲームフィールドに設定する。そして、効果範囲取得処理部21が、発動されるアクションの効果範囲を取得する。
また、第2キャラクタ数集計処理部25が、第1の領域を、効果範囲に対応する間隔でX軸方向(第1の方向の一例)に分割して複数の第1分割領域を生成し、各第1分割領域内に存在するゲームキャラクタの数を集計すると共に、ゲームキャラクタの数が最も多かった第1分割領域を、効果範囲に対応する間隔でX軸方向に垂直なZ軸方向(第2の方向の一例)に分割して複数の第2分割領域を生成し、各第2分割領域内に存在するゲームキャラクタの数を集計する。そして、発動位置特定処理部17は、ゲームキャラクタの数が最も多かった第2分割領域を発動位置として特定する。なお、ゲームキャラクタが複数の分割領域に跨って位置する場合には、それぞれの分割領域に対して1ずつ計数してもよいし、ゲームキャラクタの最も多くの部分が含まれる分割領域に対してのみ計数してもよい。
図10及び図11を用いて、第3の発動位置特定処理の一例について説明する。なお、図10及び図11は、第3の発動位置特定処理の処理内容を説明するための説明図であり、ゲーム画面(前述の図4、図7等)については図示を省略する。
図10に示す例では、ゲームフィールド44の陸部44aの広いエリアに亘って複数のプレイヤキャラクタ45A~45D(白色で図示)と複数の敵キャラクタ47(ハッチングで図示)とが分散して配置されている。そして、図10に示すように、第1領域設定処理部19により、この例では全ての敵キャラクタ47が含まれるように例えば四角形状の第1の領域49がゲームフィールド44に設定される。
次に、図10に示すように、第2キャラクタ数集計処理部25により、第1の領域49が、効果範囲51に対応する間隔でX軸方向に分割されて複数(この例では7個)の第1分割領域53A~53Gが生成され、各第1分割領域53A~53G内に存在する敵キャラクタ47の数が集計される。そして、図11に示すように、敵キャラクタ47の数が最も多かった第1分割領域、すなわち図11に示す例では敵キャラクタ47の数が最大の5人である第1分割領域53Bが、効果範囲51に対応する間隔でZ軸方向に分割されて複数(この例では4個)の第2分割領域55A~55Dが生成され、各第2分割領域55A~55D内に存在する敵キャラクタ47の数が集計される。
そして、発動位置特定処理部17により、敵キャラクタ47の数が最も多かった第2分割領域が発動位置として特定される。図11に示す例では、敵キャラクタ47の数が最大の3人となる第2分割領域55D(効果範囲51を太実線で図示)の中心位置が発動位置43として特定される。
このようにして、複数の第1分割領域53A~53Gを生成して特定の第1分割領域53Bについてのみ探索を実行するので、第1の領域49の全範囲について探索を行う場合に比べて処理負荷を大幅に軽減できる。したがって、処理負荷の増大を抑制しつつ広範囲を探索することができる。
なお、以上では敵キャラクタに対してアクションを発動させる場合を一例として説明したが、第3の発動位置特定処理を、味方キャラクタに対してアクションを発動させる場合に適用してもよい。例えば、比較的広いエリアに味方キャラクタが分散しているような場合に、上記と同様の処理を行い、味方キャラクタの数が最も多かった第2分割領域で例えば回復、防御、補助、強化系のアクションを発動させることで、効率的に味方キャラクタの回復等を行うことができる。
(3-4.第4の発動位置特定処理)
第4の発動位置特定処理も、比較的広いエリアにゲームキャラクタが分散している場合に有効である。この処理では、上述した第3の発動位置特定処理と同等の処理を実行するのに加えて、さらに以下の処理を実行する。
すなわち、第3キャラクタ数集計処理部27が、第1の領域を、効果範囲に対応する間隔でZ軸方向(第2の方向の一例)に分割して複数の第3分割領域を生成し、各第3分割領域内に存在するゲームキャラクタの数を集計すると共に、ゲームキャラクタの数が最も多かった第3分割領域を、効果範囲に対応する間隔でX軸方向(第1の方向の一例)に分割して複数の第4分割領域を生成し、各第4分割領域内に存在するゲームキャラクタの数を集計する。そして、発動位置特定処理部17は、上述した第3の発動位置特定処理と同等の処理においてゲームキャラクタの数が最も多かった第2分割領域(以下適宜「第1ターゲット」という)と、ゲームキャラクタの数が最も多かった第4分割領域(以下適宜「第2ターゲット」という)と、を比較し、第1ターゲットと第2ターゲットのうちゲームキャラクタの数がより多い方の分割領域を発動位置として特定する。なお、ゲームキャラクタが複数の分割領域に跨って位置する場合には、それぞれの分割領域に対して1ずつ計数してもよいし、ゲームキャラクタの最も多くの部分が含まれる分割領域に対してのみ計数してもよい。
図12及び図13を用いて、第4の発動位置特定処理の一例について説明する。なお、図12及び図13は、第4の発動位置特定処理の処理内容を説明するための説明図であり、ゲーム画面(前述の図4、図7等)については図示を省略する。
まず、第4の発動位置特定処理では、前述の図10及び図11で説明した処理が実行されるが、この内容については同等であるため説明を省略する。
次に、図12に示すように、第3キャラクタ数集計処理部27により、第1の領域49が、効果範囲51に対応する間隔でZ軸方向に分割されて複数(この例では4個)の第3分割領域57A~57Dが生成され、各第3分割領域57A~57D内に存在する敵キャラクタ47の数が集計される。そして、図12に示すように、敵キャラクタ47の数が最も多かった第3分割領域、すなわち図12に示す例では敵キャラクタ47の数が最大の6人である第3分割領域57Cが、効果範囲51に対応する間隔でX軸方向(第1の方向の一例)に分割されて複数(この例では7個)の第4分割領域59A~59Gが生成され、各第4分割領域59A~59G内に存在する敵キャラクタ47の数が集計される。
そして、発動位置特定処理部17により、上述した第3の発動位置特定処理と同等の処理において敵キャラクタ47の数が最大の3人となる第2分割領域55D(第1ターゲット)と、敵キャラクタ47の数が最も多かった第4分割領域、すなわち図13に示す例では敵キャラクタ47の数が最大の4人となる第4分割領域59E(第2ターゲット)とが比較され、第1ターゲットと第2ターゲットのうち敵キャラクタ47の数がより多い方の第4分割領域59E(第2ターゲット。効果範囲51を太実線で図示)の中心位置が発動位置43として特定される。
このようにして、第4の発動位置特定処理では、第3の発動位置特定処理と同等の処理(X軸方向からZ軸方向の流れの探索処理)を実行するのに加えて、同様の探索処理を反対のZ軸方向からX軸方向の流れで実行する。これにより、上述の例のように、第3の発動位置特定処理で特定された第2分割領域(第1ターゲット)とは異なる第4分割領域(第2ターゲット)が特定される場合がありうる。その場合に、より多くの敵キャラクタ47が含まれるターゲットの方を選択して発動位置に特定することで、適切な発動位置の特定精度をより高めることができる。
なお、以上では敵キャラクタに対してアクションを発動させる場合を一例として説明したが、第4の発動位置特定処理を、味方キャラクタに対してアクションを発動させる場合に適用してもよい。例えば、比較的広いエリアに味方キャラクタが分散しているような場合に、上記と同様の処理を行い、味方キャラクタの数が最も多かったターゲットで例えば回復、防御、補助、強化系のアクションを発動させることで、効率的に味方キャラクタの回復等を行うことができる。
(3-5.第5の発動位置特定処理)
例えば多人数同時参加型オンラインRPG(MMORPG)等においては、各パーティにおいてプレイヤキャラクタが分業される場合がある(例えば攻撃役、回復役、サポート役、敵引きつけ役等)。このうち敵引きつけ役のプレイヤキャラクタは、例えば体力値、防御力、耐久力、ヘイト値(敵からの狙われやすさを表す値)等のパラメータが他のプレイヤキャラクタより高く、敵キャラクタの攻撃を一手に引き受けて他の仲間を守ったり、他の仲間が敵キャラクタに効率良く攻撃できるようにする役割を果たす(タンク、タゲ取りとも言われる)。このため、敵引きつけ役のプレイヤキャラクタの近傍には敵キャラクタが集中している場合が多い。
そこで第5の発動位置特定処理では、そのようなプレイヤキャラクタの近傍位置で例えば攻撃又は攻撃補助系のアクションを発動させることで、効率的に敵キャラクタを倒すことを可能とする。
この処理では、キャラクタ特定処理部29が、複数のプレイヤキャラクタのうち、所定のパラメータが他のプレイヤキャラクタよりも高いキャラクタを特定する。「所定のパラメータ」は、例えば上述した体力値、防御力、耐久力、ヘイト値等である。そして、発動位置特定処理部17は、特定されたプレイヤキャラクタの近傍における所定の位置を発動位置として特定する。「所定の位置」の設定の仕方は特に限定されるものではないが、例えば特定されたプレイヤキャラクタに対してある特定の方向に敵キャラクタが集中する場合には、当該特定の方向に所定の位置を定めてもよい。また、特定されたプレイヤキャラクタの周囲に所定の範囲の領域を設定し、当該領域に対して前述の第1~第4の発動位置特定処理のいずれかを適用してもよい。
図14及び図15を用いて、第5の発動位置特定処理の一例について説明する。なお、図14及び図15は、第5の発動位置特定処理の処理内容を説明するための説明図であり、ゲーム画面(前述の図4、図7等)については図示を省略する。
図14に示す例では、プレイヤキャラクタ45A~45Dのうち、例えばプレイヤキャラクタ45Dが敵引きつけ役であり、当該プレイヤキャラクタ45Dの近傍には敵キャラクタ47が集中している。
そこで、図15に示すように、まず第1領域設定処理部19により、プレイヤキャラクタ45Dの周囲に所定の範囲の例えば四角形状の第1の領域61が設定される。次に、第1キャラクタ数集計処理部23により、第1の領域61の内部で、発動するアクションの効果範囲と同等の大きさである円形の第2の領域63を所定の間隔で移動させ、各移動位置において第2の領域63内に存在する敵キャラクタ47の数が集計される。そして、発動位置特定処理部17により、第2の領域63内に存在する敵キャラクタ47の数が最も多かった移動位置が発動位置43として特定される。図15に示す例では、敵キャラクタ47の数が最大の5人となる第2の領域63(図15中太実線で図示)の中心位置が発動位置43として特定される。
これにより、プレイヤキャラクタ45Dの近傍に位置する敵キャラクタ47を効率的に倒すことができる。なお、以上ではプレイヤキャラクタ45Dの近傍領域に対して第2の発動位置特定処理を適用した場合について説明したが、他の第1、第3又は第4の発動位置特定処理を適用してもよい。
なお、上記では敵引きつけ役のプレイヤキャラクタをパラメータに基づいて自動的に特定するようにしたが、当該役割のキャラクタをプレイヤが登録できるようにしてもよい。この場合には、上述したキャラクタ特定処理部29が不要となる。
また、例えばプレイヤキャラクタが発動する攻撃又は攻撃補助系のアクションが例えば味方のキャラクタにはダメージを与えないように設定されている場合(いわゆるフレンドリーファイアが無効の場合)には、敵引きつけ役のプレイヤキャラクタの位置を発動位置として特定してもよい。
なお、以上説明した5種類の発動位置特定処理のうちのどの処理を実行するかは、プレイヤにより例えばゲーム開始時等に選択されてもよいし(モード設定等)、ゲームプレイ中の切替操作によって任意のタイミングで切替えられるようにしてもよい。また、ゲーム状況(例えばゲームフィールドの広さや種類、敵キャラクタやプレイヤキャラクタの数やパラメータ(レベル等)、ストーリーの内容、難易度など)に応じて自動的に選択されるようにしてもよい。
図3に戻り、アクション発動処理部31は、プレイヤからアクションの発動の指示を受け付けた場合に、発動位置特定処理部17により特定された発動位置でアクションを発動させる。
なお、以上説明した各処理部における処理等は、これらの処理の分担の例に限定されるものではなく、例えば、更に少ない数の処理部(例えば1つの処理部)で処理されてもよく、また、更に細分化された処理部により処理されてもよい。また、上述した各処理部の機能は、後述するCPU501(後述の図26参照)が実行するゲームプログラムにより実装されるものであるが、例えばその一部がASICやFPGA等の専用集積回路、その他の電気回路等の実際の装置により実装されてもよい。さらに、以上説明した各処理部は、全部がサーバ5側に実装される場合に限定されるものではなく、その一部又は全部が端末装置3側に実装されてもよい。
<4.サーバが実行する処理手順>
次に、図16を用いて、サーバ5のCPU501によって実行される処理手順の一例について説明する。
ステップS10では、サーバ5は、各プレイヤの入力内容に応じて各プレイヤキャラクタ35,45(45A~45D)を行動させると共に、敵キャラクタ37(37A~37D),47をゲームプログラムにより行動させ、ゲームを進行させる。
ステップS20では、サーバ5は、プレイヤからプレイヤキャラクタによるアクションの発動の指示を受け付けたか否かを判定する。アクション発動の指示を受け付けていない場合には(ステップS20:NO)、後述のステップS50に移る。一方、アクション発動の指示を受け付けた場合には(ステップS20:YES)、ステップS30に移る。
ステップS30では、サーバ5は、位置情報取得処理部15により、ゲームフィールド33,44に配置された複数の敵キャラクタ37,47のゲームフィールド33,44での位置情報を取得する。
ステップS100では、サーバ5は、発動位置特定処理部17等により発動位置特定処理を実行する。前述のように、本実施形態では5種類の発動位置特定処理が用意されており、プレイヤあるいは自動で選択された発動位置特定処理が実行される。各発動位置特定処理の処理内容については後述する。
ステップS40では、サーバ5は、アクション発動処理部31により、ステップS100の発動位置特定処理部17により特定された発動位置でアクションを発動させる。
ステップS50では、サーバ5は、ゲームを終了するか否かを判定する。例えばサーバ管理者等によりゲーム終了の指示入力があった場合には(ステップS50:YES)、本フローを終了する。一方、ゲーム終了の指示入力がない場合には(ステップS50:NO)、先のステップS10に戻る。
図17に、第1の発動位置特定処理が選択されている場合に、前述のステップS100で実行される第1の発動位置特定処理(ステップS100A)の処理手順の一例を示す。
ステップS110Aでは、サーバ5は、第1領域設定処理部19により、前述のステップS30で取得された敵キャラクタ37A~37Dの位置情報に基づいて、所定数(例えばゲームフィールド33上の全て)の敵キャラクタ37A~37Dが含まれるように第1の領域41をゲームフィールド33に設定する。
ステップS110Bでは、サーバ5は、発動位置特定処理部17により、第1の領域41の中心位置を発動位置43として特定する。その後、前述のステップS40に移る。
図18に、第2の発動位置特定処理が選択されている場合に、前述のステップS100で実行される第2の発動位置特定処理(ステップS100B)の処理手順の一例を示す。
ステップS110Bでは、サーバ5は、第1領域設定処理部19により、前述のステップS30で取得された敵キャラクタ47の位置情報に基づいて、所定数(例えばゲームフィールド44上の全て)の敵キャラクタ47が含まれるように第1の領域49をゲームフィールド44に設定する。
ステップS120Bでは、サーバ5は、効果範囲取得処理部21により、発動されるアクションの効果範囲を取得する。
ステップS130Bでは、サーバ5は、第1キャラクタ数集計処理部23により、上記ステップS110Bで設定された第1の領域49の内部で、上記ステップS120Bで取得した効果範囲に対応する第2の領域51を所定の間隔で移動させ、各移動位置において第2の領域51内に存在する敵キャラクタ47の数を集計する。
ステップS140Bでは、サーバ5は、発動位置特定処理部17により、上記ステップS130Bの集計で敵キャラクタ47の数が最も多かった第2の領域51の移動位置を発動位置43として特定する。その後、前述のステップS40に移る。
図19に、第3の発動位置特定処理が選択されている場合に、前述のステップS100で実行される第3の発動位置特定処理(ステップS100C)の処理手順の一例を示す。
ステップS110Cでは、サーバ5は、第1領域設定処理部19により、前述のステップS30で取得された敵キャラクタ47の位置情報に基づいて、所定数(例えばゲームフィールド44上の全て)の敵キャラクタ47が含まれるように第1の領域49をゲームフィールド44に設定する。
ステップS120Cでは、サーバ5は、効果範囲取得処理部21により、発動されるアクションの効果範囲を取得する。
ステップS130Cでは、サーバ5は、第2キャラクタ数集計処理部25により、上記ステップS110Cで設定した第1の領域49を、上記ステップS120Cで取得した効果範囲に対応する間隔でX軸方向に分割して複数の第1分割領域53A~53Gを生成し、各第1分割領域53A~53G内に存在する敵キャラクタ47の数を集計する。
ステップS140Cでは、サーバ5は、第2キャラクタ数集計処理部25により、上記ステップS130Cの集計で敵キャラクタ47の数が最も多かった第1分割領域(例えば第1分割領域53B)を、効果範囲に対応する間隔でZ軸方向に分割して複数の第2分割領域55A~55Dを生成し、各第2分割領域55A~55D内に存在する敵キャラクタ47の数を集計する。
ステップS150Cでは、サーバ5は、発動位置特定処理部17により、上記ステップS140Cの集計で敵キャラクタ47の数が最も多かった第2分割領域(例えば第2分割領域55D)を発動位置として特定する。その後、前述のステップS40に移る。
図20に、第4の発動位置特定処理が選択されている場合に、前述のステップS100で実行される第4の発動位置特定処理(ステップS100D)の処理手順の一例を示す。
ステップS110D~ステップS140Dは、前述の図19に示すステップS110C~ステップS140Cと同様であるので説明を省略する。
ステップS150Dでは、サーバ5は、発動位置特定処理部17により、上記ステップS150Cの集計で敵キャラクタ47の数が最も多かった第2分割領域(例えば第2分割領域55D)を第1ターゲットとして特定する。
ステップS160Dでは、サーバ5は、第3キャラクタ数集計処理部27により、上記ステップS110Dで設定した第1の領域49を、上記ステップS120Dで取得した効果範囲に対応する間隔でZ軸方向に分割して複数の第3分割領域57A~57Dを生成し、各第3分割領域57A~57D内に存在する敵キャラクタ47の数を集計する。
ステップS170Dでは、サーバ5は、第3キャラクタ数集計処理部27により、上記ステップS160Dの集計で敵キャラクタ47の数が最も多かった第3分割領域(例えば第3分割領域57C)を、効果範囲に対応する間隔でX軸方向に分割して複数の第4分割領域59A~59Gを生成し、各第4分割領域59A~59G内に存在する敵キャラクタ47の数を集計する。
ステップS180Dでは、サーバ5は、発動位置特定処理部17により、上記ステップS170Dの集計で敵キャラクタ47の数が最も多かった第4分割領域(例えば第4分割領域59E)を第2ターゲットとして特定する。
ステップS190Dでは、サーバ5は、発動位置特定処理部17により、上記ステップS150Dで特定した第1ターゲットと、上記ステップS180Dで特定した第2ターゲットとを比較し、第1ターゲットと第2ターゲットのうち敵キャラクタ47の数がより多い方の分割領域(例えば第4分割領域59E)を発動位置として特定する。その後、前述のステップS40に移る。
図21に、第5の発動位置特定処理が選択されている場合に、前述のステップS100で実行される第5の発動位置特定処理(ステップS100E)の処理手順の一例を示す。
ステップS110Eでは、サーバ5は、キャラクタ特定処理部29により、複数のプレイヤキャラクタのうち、所定のパラメータが他のプレイヤキャラクタよりも高いキャラクタを特定する。
ステップS120Eでは、サーバ5は、発動位置特定処理部17により、上記ステップS110Eで特定されたプレイヤキャラクタの近傍における所定の位置を発動位置として特定する。その後、前述のステップS40に移る。
なお、上述した処理手順は一例であって、上記手順の少なくとも一部を削除又は変更してもよいし、上記以外の手順を追加してもよい。また、上記手順の少なくとも一部の順番を変更してもよいし、複数の手順が単一の手順にまとめられてもよい。
<5.実施形態の効果>
本実施形態のゲームプログラムは、サーバ5を、ゲームフィールド33,44に配置された複数のゲームキャラクタ35,37,45,47のゲームフィールド33,44での位置情報を取得する位置情報取得処理部15、位置情報に基づいて、プレイヤが操作するプレイヤキャラクタ35,45が発動するアクションであってゲームフィールド33,44での効果範囲が設定されたアクションのゲームフィールド33,44での発動位置を特定する発動位置特定処理部17、として機能させる。
これにより、プレイヤキャラクタが発動するアクションの効果が最も効率良く発揮される発動位置を特定することができる。その結果、プレイヤがアクション実行の指示をすると自動的に最適化された発動位置でアクションが発動されるようにすることができる。したがって、プレイヤキャラクタがアクションを適切な位置で発動できるように支援することができる。
また、本実施形態では特に、サーバ5を、位置情報に基づいて、所定数のゲームキャラクタ35,37が含まれるように第1の領域41をゲームフィールド33に設定する第1領域設定処理部19、としてさらに機能させ、発動位置特定処理部17は、第1の領域41の中心位置を発動位置43として特定する。
このようにして発動位置43を特定する第1の発動位置特定処理は、比較的狭いエリアにゲームキャラクタ35,37が集中している場合に有効である。例えば、比較的狭いエリアに敵キャラクタ37A~37Dが集中しているような場合に、それらの敵キャラクタ37A~37Dが含まれるように第1の領域41を設定し、その中心位置で例えば攻撃又は攻撃補助系のアクションを発動させることで、効率的に敵キャラクタ37A~37Dを倒すことができる。また例えば、比較的狭いエリアに複数の味方キャラクタ35が集中しているような場合に、それらの味方キャラクタ35が含まれるように第1の領域41を設定し、その中心位置で例えば回復、防御、補助、強化系のアクションを発動させることで、効率的に味方キャラクタ35の回復等を行うことができる。
また、本実施形態では特に、サーバ5を、位置情報に基づいて、所定数のゲームキャラクタ45,47が含まれるように第1の領域49をゲームフィールド44に設定する第1領域設定処理部19、発動されるアクションの効果範囲を取得する効果範囲取得処理部21、第1の領域49の内部で効果範囲に対応する第2の領域51を所定の間隔で移動させ、各移動位置において第2の領域51内に存在するゲームキャラクタ45,47の数を集計する第1キャラクタ数集計処理部23、としてさらに機能させ、発動位置特定処理部17は、第2の領域51内に存在するゲームキャラクタ45,47の数が最も多かった移動位置を発動位置43として特定する。
このようにして発動位置43を特定する第2の発動位置特定処理は、比較的広いエリアにゲームキャラクタが分散している場合に有効である。例えば、比較的広いエリアに敵キャラクタ47が分散しているような場合に、それらの敵キャラクタ47の全部又は一部が含まれるように第1の領域49を設定する。そして、第1の領域49の内部で効果範囲に対応する第2の領域51を所定の間隔で移動させ、各移動位置において第2の領域51内に存在する敵キャラクタ47の数を集計し、敵キャラクタ47の数が最も多かった移動位置で例えば攻撃又は攻撃補助系のアクションを発動させることで、効率的に敵キャラクタ47を倒すことができる。
また例えば、比較的広いエリアに味方キャラクタ45が分散しているような場合にも、同様の処理を行い、味方キャラクタ45の数が最も多かった移動位置で例えば回復、防御、補助、強化系のアクションを発動させることで、効率的に味方キャラクタ45の回復等を行うことができる。
このように、第1の領域49を設定することにより、ゲームフィールド44におけるゲームキャラクタ45,47が存在しないエリアについては排除することができ、無駄な処理を防止できる。その上で、ゲームキャラクタ45,47が存在するエリアについては漏れなく探索を行うことができるので、適切な発動位置を精度良く特定することができる。
また、本実施形態では特に、サーバ5を、位置情報に基づいて、所定数のゲームキャラクタ45,47が含まれるように第1の領域49をゲームフィールド44に設定する第1領域設定処理部19、発動されるアクションの効果範囲を取得する効果範囲取得処理部21、第1の領域49を、効果範囲に対応する間隔でX軸方向に分割して複数の第1分割領域53A~53Gを生成し、各第1分割領域53A~53G内に存在するゲームキャラクタ45,47の数を集計すると共に、ゲームキャラクタ45,47の数が最も多かった第1分割領域を、効果範囲に対応する間隔でZ軸方向に分割して複数の第2分割領域55A~55Dを生成し、各第2分割領域55A~55D内に存在するゲームキャラクタ45,47の数を集計する第2キャラクタ数集計処理部25、としてさらに機能させ、発動位置特定処理部17は、ゲームキャラクタ45,47の数が最も多かった第2分割領域を発動位置43として特定する。
このようにして発動位置43を特定する第3の発動位置特定処理は、比較的広いエリアにゲームキャラクタ45,47が分散している場合に有効である。例えば、比較的広いエリアに敵キャラクタ47が分散しているような場合に、それらの敵キャラクタ47の全部又は一部が含まれるように第1の領域49を設定する。そして、第1の領域49を、発動させるアクションの効果範囲に対応する間隔でX軸方向に分割して複数の第1分割領域53A~53Gを生成し、各第1分割領域53A~53G内に存在する敵キャラクタ47の数を集計すると共に、敵キャラクタ47の数が最も多かった第1分割領域(例えば第1分割領域53B)を、発動させるアクションの効果範囲に対応する間隔でZ軸方向に分割して複数の第2分割領域55A~55Dを生成し、各第2分割領域55A~55D内に存在する敵キャラクタ47の数を集計し、敵キャラクタ47の数が最も多かった第2分割領域(例えば第2分割領域55D)で例えば攻撃又は攻撃補助系のアクションを発動させることで、効率的に敵キャラクタ47を倒すことができる。
また例えば、比較的広いエリアに味方キャラクタ45が分散しているような場合にも、同様の処理を行い、味方キャラクタ45の数が最も多かった第2分割領域で例えば回復、防御、補助、強化系のアクションを発動させることで、効率的に味方キャラクタ45の回復等を行うことができる。
このように、複数の第1分割領域53A~53Gを生成して特定の第1分割領域についてのみ探索を実行するので、第1の領域49の全範囲について探索を行う場合に比べて処理負荷を大幅に軽減できる。したがって、処理負荷の増大を抑制しつつ広範囲を探索することができる。
また、本実施形態では特に、サーバ5を、第1の領域49を、効果範囲に対応する間隔でZ軸方向に分割して複数の第3分割領域57A~57Dを生成し、各第3分割領域57A~57D内に存在するゲームキャラクタ45,47の数を集計すると共に、ゲームキャラクタ45,47の数が最も多かった第3分割領域を、効果範囲に対応する間隔でX軸方向に分割して複数の第4分割領域59A~59Gを生成し、各第4分割領域59A~59G内に存在するゲームキャラクタ45,47の数を集計する第3キャラクタ数集計処理部27、としてさらに機能させ、発動位置特定処理部17は、ゲームキャラクタ45,47の数が最も多かった前記第2分割領域と、ゲームキャラクタ45,47の数が最も多かった第4分割領域と、を比較し、ゲームキャラクタ45,47の数がより多い方の分割領域を発動位置43として特定する。
このようにして発動位置43を特定する第4の発動位置特定処理では、上記第3の発動位置特定処理と同様の探索処理を実行するのに加えて、当該第3の発動位置特定処理とは反対のZ軸方向からX軸方向の流れでさらに実行する。これにより、第3の発動位置特定処理と同様の探索処理で特定された第2分割領域(例えば第2分割領域55D)とは異なる第4分割領域(例えば第4分割領域59E)が特定される場合がありうる。その場合には、より多くのゲームキャラクタ45,47が含まれる分割領域の方を選択して発動位置に特定することで、適切な発動位置43の特定精度をより高めることができる。
また、本実施形態では特に、サーバ5を、複数のプレイヤキャラクタ45A~45Dのうち、所定のパラメータが他のプレイヤキャラクタよりも高いプレイヤキャラクタ(例えばプレイヤキャラクタ45D)を特定するキャラクタ特定処理部29、としてさらに機能させ、発動位置特定処理部17は、特定されたプレイヤキャラクタの近傍における所定の位置を発動位置43として特定する。
例えば、多人数同時参加型オンラインRPG(MMORPG)等においては、各パーティにおいてプレイヤキャラクタ45A~45Dが分業される場合がある(例えば攻撃役、回復役、サポート役、敵引きつけ役等)。このうち敵引きつけ役のプレイヤキャラクタ45Dは、例えば体力値、防御力、耐久力、ヘイト値(敵からの狙われやすさを表す値)等のパラメータが他のプレイヤキャラクタ45A~45Cより高く、敵キャラクタ47の攻撃を一手に引き受けて他の仲間を守ったり、他の仲間が敵キャラクタ47に効率良く攻撃できるようにする役割を果たす。このため、敵引きつけ役のプレイヤキャラクタ45Dの近傍には敵キャラクタ47が集中している場合が多い。
第5の発動位置特定処理ではそのようなプレイヤキャラクタ45Dの近傍位置で例えば攻撃又は攻撃補助系のアクションを発動させることで、効率的に敵キャラクタ47を倒すことができる。
また、本実施形態では特に、サーバ5を、プレイヤからアクションの発動の指示を受け付けた場合に、アクションを特定された発動位置43で発動させるアクション発動処理部31、としてさらに機能させる。
本実施形態によれば、プレイヤがアクション発動の操作入力をすると、アクションの発動位置が特定された発動位置43に補正されて、プレイヤキャラクタ35,45によるアクションを自動的に最適化された位置で発動させることができる。これにより、例えばプレイヤが初心者であったり、ゲームの難易度が高いような場合等でも、プレイヤはゲームを効率良く進めることができる。また、敵キャラクタ37,47を見なくても最適位置で発動できるので、例えばプレイヤキャラクタ35,45を移動させながら(あるいは逃げながら)攻撃を行うことが可能となり、戦略性を向上できる。さらに、例えば本実施形態をチュートリアルに適用することで、プレイヤに効率良くゲーム操作を教示すること等も可能となる。
さらに、例えば多人数同時参加型オンラインRPG(MMORPG)等においては、パーティのうちの1人のプレイヤキャラクタの不適切なアクションによりパーティの全滅を招いてしまう等、シビアな戦闘が繰り広げられる場合がある。このため、プレイヤ間の関係が悪化したり、重責を感じて初心者がパーティに参加し難くなる等、オンラインゲームの敷居を高くする結果となっていた。本実施形態によれば、プレイヤキャラクタによるアクションを自動的に最適化された位置で発動させることができるので、初心者でもパーティに参加し易くなり、オンラインゲームの敷居を下げることができる。
<6.変形例>
なお、本発明は、上記の実施形態に限られるものではなく、その趣旨及び技術的思想を逸脱しない範囲内で種々の変形が可能である。
(6-1.最適化された発動位置をガイド表示する場合)
上記実施形態では、プレイヤがアクション発動の操作入力をすると、自動的に特定された発動位置(最適化された発動位置)でプレイヤキャラクタによるアクションが発動される場合について説明した。しかし、例えば味方キャラクタの誰かが特定の敵キャラクタから攻撃を受けて窮地に陥っているような場合には、多くの敵キャラクタを効率良く倒せる位置でアクションを発動させるよりも、味方キャラクタを救うために当該味方キャラクタを攻撃している敵キャラクタを倒すことを優先する方が好ましい場合もある。このように、ゲーム状況によっては効率のみでアクションの発動位置を決めることができない場合がある。そこで、例えば特定された発動位置をガイド表示し、その位置でアクションを発動させるか否かはプレイヤが選択するようにしてもよい。
図22に、本変形例のサーバ5Aの機能的構成の一例を示す。図22に示すように、サーバ5Aは、ガイド表示処理部65を有する。なお、サーバ5Aのガイド表示処理部65以外の構成は、前述の図3と同様であるため説明を省略する。
ガイド表示処理部65は、ゲームフィールドにおいて特定された発動位置をガイドする表示を行う。ガイド表示が行われるタイミングは、プレイヤからアクションの発動の指示を受け付けた後所定の時間が経過したタイミングである。「所定の時間」には、少なくとも最適化された発動位置を特定するための処理時間が含まれるが、発動されるアクションの種類等に応じてタイミングが適宜調整されてもよい。
例えば、プレイヤキャラクタが発動するアクションに、複数回の通常攻撃を行った後に大きな範囲攻撃を実行する組み合わせ攻撃が含まれる場合がある。例えば組み合わせ攻撃が4回の通常攻撃と5回目の範囲攻撃で構成される場合、例えば通常攻撃を3回実行したタイミングで最適化された発動位置を特定する処理を開始し、4回目の通常攻撃時に5回目の範囲攻撃の最適化された発動位置をガイド表示してもよい。これにより、組み合わせ攻撃の流れを阻害することなく、且つ、適切なタイミングでプレイヤに対して最適化された発動位置をガイドすることができる。
図23及び図24にガイド表示の一例を示す。なお、図23及び図24は前述の図4に対応している。この例では、プレイヤからアクション(例えば攻撃魔法)の発動の指示を受け付けると、図23に示すように、攻撃魔法の最適化された発動位置43と効果範囲39を示すガイド表示67がゲームフィールド33に表示される。併せて、プレイヤに最適化された発動位置でアクションを発動させるか否かを確認するための確認ウィンドウ69が表示される。この場合において、プレイヤからゲームコントローラ7を介して「YES」の選択指示を受け付けた場合には、最適化された発動位置でアクションが発動される。
一方、「NO」の選択指示を受け付けた場合には、図24に示すようにプレイヤに発動位置を指定するように促す確認ウィンドウ71が表示される。このとき、ガイド表示67は継続して表示されており、プレイヤはガイド表示67を参照しつつ、例えばカーソル73を用いて発動位置を任意の位置に指定することができる。その後、指定された発動位置でアクションが発動される。
図25に、サーバ5AのCPU501によって実行される処理手順の一例を示す。
ステップS10~ステップS30及びステップS100は、前述の図16と同様であるため説明を省略する。
ステップS35では、サーバ5は、ガイド表示処理部65により、前述のステップS100(ステップS100A~ステップS100E)により特定された発動位置をガイドする表示をゲームフィールドに行う。
ステップS45では、サーバ5は、アクション発動処理部31により、プレイヤにより指定された発動位置でアクションを発動させる。なお、ここでいう「プレイヤにより指定された発動位置」とは、例えば前述の図23に示す画面において「YES」が選択された場合には前述のステップS100(ステップS100A~ステップS100E)により特定された発動位置、「NO」が選択された場合には前述の図24に示す画面においてプレイヤにより指定された発動位置、である。
ステップS50は、前述の図16と同様であるため説明を省略する。
以上説明した本変形例によれば、特定された発動位置をガイド表示するので、それに従うか否かはプレイヤが選択することができる。これにより、プレイヤはゲーム状況に応じて自分の判断で発動位置を決定することができるようになり、戦略性や戦術性を高め、興趣性を向上することができる。
(6-2.その他)
例えば、以上説明したアクションの発動位置の最適化、あるいは、最適化された発動位置のガイド表示が、所定の条件が満たされた場合に実行されるようにしてもよい。「所定の条件が満たされた場合」とは、例えば特定のアイテム(有償でも無償でもよい)が使用された場合、ゲームの難易度が特定の難易度である場合(イージーモードでプレイなど)等である。
また、以上では、ゲームキャラクタの数のみを考慮して発動位置を特定するようにしたが、ゲームキャラクタの種類を考慮してもよい。例えば、敵キャラクタがボスキャラクタと雑魚キャラクタで構成される場合、単純に数のみの集計だと(ボスと雑魚は関係なく)なるべく多くの敵キャラクタが範囲に入る発動位置が特定されることとなるが、ボスを含めつつなるべく多くの雑魚キャラクタが範囲に入る発動位置が特定されるようにしてもよい。この場合、例えばボスキャラクタは雑魚キャラクタの複数人分として集計されるように設定すればよい。
また例えば、発動されるアクションの属性と、ゲームキャラクタの属性等を考慮してもよい。例えば、所定の属性(炎属性など)の攻撃系のアクションを発動する場合に、敵キャラクタの中から当該属性攻撃に弱い属性(炎攻撃に弱い水属性など)の敵キャラクタを抽出して第1領域を設定したり、水属性の敵キャラクタのみを集計対象としてもよい。
また例えば、ゲームキャラクタの職業(ジョブ、役割等)を考慮してもよい。例えば味方キャラクタに対して回復、防御、補助、強化系のアクションを発動する場合に、前述の敵引きつけ役のキャラクタや回復役のキャラクタを含めつつなるべく多くの味方キャラクタが範囲に入る発動位置が特定されるようにしてもよい。
また、以上のようにゲームキャラクタの種類(例えばボス、雑魚、属性、職業など)を考慮する場合、プレイヤが任意に優先順位を設定できるようにしてもよい。この場合、ゲームプレイ中の任意のタイミングで優先順位を変更できるようにしてもよい。
また、以上では、本発明をオンラインゲームに適用した場合について説明したが、オフラインゲームにも適用可能である。その場合には、各端末装置3(情報処理装置の一例)がスタンドアローンとなり、前述したサーバ5が有する処理機能をそれぞれ有し、同様の処理を実行する。
また以上では、本発明がアクションロールプレイングゲームに適用される場合を一例に説明したが、その他のジャンルのゲーム、例えば、ターン制バトルシステムを採用したシミュレーションゲーム、アクションゲーム、アドベンチャーゲーム等、効果範囲が設定されたアクションを発動可能なゲームであれば、ジャンルを問わずに本発明は適用可能である。
また、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。その他、一々例示はしないが、上記実施形態や各変形例は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
<7.サーバのハードウェア構成>
次に、図26を用いて、上記で説明したCPU501が実行するプログラムにより実装された各処理部を実現するサーバ5のハードウェア構成の一例について説明する。なお、端末装置3が同様のハードウェア構成を有してもよい。
図26に示すように、サーバ5は、例えば、CPU501と、ROM503と、RAM505と、GPU506と、例えばASIC又はFPGA等の特定の用途向けに構築された専用集積回路507と、入力装置513と、出力装置515と、記録装置517と、ドライブ519と、接続ポート521と、通信装置523を有する。これらの構成は、バス509や入出力インターフェース511等を介し相互に信号を伝達可能に接続されている。
ゲームプログラムは、例えば、ROM503やRAM505、記録装置517等に記録しておくことができる。
また、ゲームプログラムは、例えば、フレキシブルディスクなどの磁気ディスク、各種のCD、MOディスク、DVD等の光ディスク、半導体メモリ等のリムーバブルな記録媒体525に、一時的又は永続的(非一時的)に記録しておくこともできる。このような記録媒体525は、いわゆるパッケージソフトウエアとして提供することもできる。この場合、これらの記録媒体525に記録されたゲームプログラムは、ドライブ519により読み出されて、入出力インターフェース511やバス509等を介し上記記録装置517に記録されてもよい。
また、ゲームプログラムは、例えば、ダウンロードサイト、他のコンピュータ、他の記録装置等(図示せず)に記録しておくこともできる。この場合、ゲームプログラムは、LANやインターネット等のネットワークNWを介し転送され、通信装置523がこのプログラムを受信する。そして、通信装置523が受信したプログラムは、入出力インターフェース511やバス509等を介し上記記録装置517に記録されてもよい。
また、ゲームプログラムは、例えば、適宜の外部接続機器527に記録しておくこともできる。この場合、ゲームプログラムは、適宜の接続ポート521を介し転送され、入出力インターフェース511やバス509等を介し上記記録装置517に記録されてもよい。
そして、CPU501が、上記記録装置517に記録されたプログラムに従い各種の処理を実行することにより、前述の位置情報取得処理部15と、発動位置特定処理部17等による処理が実現される。この際、CPU501は、例えば、上記記録装置517からプログラムを、直接読み出して実行してもよく、RAM505に一旦ロードした上で実行してもよい。更にCPU501は、例えば、プログラムを通信装置523やドライブ519、接続ポート521を介し受信する場合、受信したプログラムを記録装置517に記録せずに直接実行してもよい。
また、CPU501は、各端末装置3のゲームコントローラ7からネットワークNWを介して入力される信号に加えて、必要に応じて、例えばマウス、キーボード、マイク等の入力装置513から入力する信号や情報に基づいて各種の処理を行ってもよい。
GPU506は、CPU501からの指示に応じて例えばレンダリング処理などの画像表示のための処理を行う。
そして、CPU501及びGPU506は、上記の処理を実行した結果を、ネットワークNWを介して各端末装置3の表示装置9に出力すると共に、必要に応じて、例えばスピーカーやヘッドフォン等の音声出力部(図示せず)を含む、出力装置515から出力する。さらにCPU501及びGPU506は、必要に応じてこの処理結果を通信装置523や接続ポート521を介し送信してもよく、上記記録装置517や記録媒体525に記録させてもよい。