(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024069429
(43)【公開日】2024-05-21
(54)【発明の名称】ゲームプログラム、情報処理システム、および、ゲーム処理方法
(51)【国際特許分類】
A63F 13/55 20140101AFI20240514BHJP
【FI】
A63F13/55
【審査請求】未請求
【請求項の数】21
【出願形態】OL
(21)【出願番号】P 2024038908
(22)【出願日】2024-03-13
(62)【分割の表示】P 2022092410の分割
【原出願日】2022-06-07
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】バネル コリー
(72)【発明者】
【氏名】佐藤 祐也
(57)【要約】
【課題】戦闘時において複数のキャラクタに自然な挙動をとらせる。
【解決手段】情報処理システムは、仮想空間において複数のノンプレイヤキャラクタの動作を制御する。情報処理システムは、複数のノンプレイヤキャラクタのそれぞれについて、所定の条件に基づき、他のノンプレイヤキャラクタ、または、ユーザの操作入力によって操作されるプレイヤキャラクタとの戦闘を行うための戦闘可能状態に設定する。戦闘可能状態にあるノンプレイヤキャラクタを含む複数のキャラクタが参加する交戦グループが設定される。交戦グループに参加するノンプレイヤキャラクタについて、当該交戦グループに参加する他のキャラクタが戦闘ターゲットに設定される。ノンプレイヤキャラクタについて設定された戦闘ターゲットに基づいて、当該ノンプレイヤキャラクタの戦闘に関する動作が制御される。
【選択図】
図8
【特許請求の範囲】
【請求項1】
コンピュータにゲームを実行させるゲームプログラムであって、
仮想空間において複数のノンプレイヤキャラクタの動作を制御するキャラクタ制御手段と、
前記複数のノンプレイヤキャラクタのそれぞれについて、所定の条件に基づき、他のノンプレイヤキャラクタ、または、ユーザの操作入力によって操作されるプレイヤキャラクタとの戦闘を行うための戦闘可能状態に設定する状態設定手段と、
前記戦闘可能状態にあるノンプレイヤキャラクタを含む複数のキャラクタが参加する交戦グループを設定する交戦グループ管理手段と、
前記交戦グループに参加するノンプレイヤキャラクタについて、当該交戦グループに参加する他のキャラクタを戦闘ターゲットに設定するターゲット設定手段として前記コンピュータを機能させ、
前記キャラクタ制御手段は、前記ノンプレイヤキャラクタについて設定された戦闘ターゲットに基づいて、当該ノンプレイヤキャラクタの戦闘に関する動作を制御する、ゲームプログラム。
【請求項2】
前記交戦グループ管理手段は、前記戦闘可能状態にある前記ノンプレイヤキャラクタが参加する前記交戦グループを、前記ノンプレイヤキャラクタ毎に、前記ノンプレイヤキャラクタについて設定されるグループ設定条件に基づいて決定する、請求項1に記載のゲームプログラム。
【請求項3】
前記複数のノンプレイヤキャラクタはそれぞれ、複数のカテゴリのいずれかに分類され、
前記グループ設定条件は前記カテゴリ毎に設定され、
前記交戦グループ管理手段は、前記戦闘可能状態にあるノンプレイヤキャラクタを参加させる交戦グループを、当該ノンプレイヤキャラクタが分類されるカテゴリに設定されるグループ設定条件に基づいて決定する、請求項2に記載のゲームプログラム。
【請求項4】
前記交戦グループ管理手段は、
前記戦闘可能状態にあるノンプレイヤキャラクタおよび前記プレイヤキャラクタのうちから前記交戦グループの代表となるキャラクタを設定し、
前記代表となるキャラクタ毎に前記交戦グループを設定し、
前記戦闘可能状態にあるノンプレイヤキャラクタおよび前記プレイヤキャラクタのうち、前記代表が設定された前記交戦グループについての参加条件を満たすキャラクタを当該交戦グループに参加させる、請求項2に記載のゲームプログラム。
【請求項5】
前記交戦グループ管理手段は、前記交戦グループの解散、または、他の交戦グループとの統合を、当該交戦グループの代表となるキャラクタについて設定されるグループ設定条件に基づいて行う、請求項4に記載のゲームプログラム。
【請求項6】
前記交戦グループ管理手段は、前記プレイヤキャラクタを、前記代表でないキャラクタとしては前記交戦グループに参加させないように、前記代表となるキャラクタと前記交戦グループに参加するキャラクタとを設定する、請求項4に記載のゲームプログラム。
【請求項7】
前記交戦グループ管理手段は、第1交戦グループに参加し、当該第1交戦グループの代表でないキャラクタと、当該第1交戦グループの代表であるキャラクタとの位置関係が、所定の基準よりも遠い位置関係となったことを少なくとも条件として、当該第1交戦グループの代表でないキャラクタを代表とする第2交戦グループを新たに生成する、請求項4に記載のゲームプログラム。
【請求項8】
前記交戦グループ管理手段は、前記第1交戦グループにおいて前記第2交戦グループの代表となるキャラクタを戦闘ターゲットとしていた他のキャラクタを、前記第2交戦グループに参加させる、請求項7に記載のゲームプログラム。
【請求項9】
前記交戦グループ管理手段は、前記交戦グループの代表であるキャラクタが、他のいずれのキャラクタに関する戦闘ターゲットにも設定されていないことを条件として、当該交戦グループを解散させるとともに、解散された当該交戦グループの代表であるキャラクタを参加させる交戦グループを前記グループ設定条件に基づいて決定する、請求項4に記載のゲームプログラム。
【請求項10】
前記交戦グループ管理手段は、ある交戦グループの代表であるキャラクタと、他の交戦グループの代表であるキャラクタとの位置関係が所定の基準よりも近い位置関係となったことを少なくとも条件として、当該ある交戦グループと当該他の交戦グループとを1つの交戦グループに統合する、請求項4に記載のゲームプログラム。
【請求項11】
前記ターゲット設定手段は、前記交戦グループに参加するキャラクタが変更された場合、当該交戦グループに参加するノンプレイヤキャラクタのそれぞれについて前記戦闘ターゲットの再設定を行う、請求項1から請求項10のいずれか1項に記載のゲームプログラム。
【請求項12】
前記ターゲット設定手段は、前記交戦グループに参加するキャラクタに変更がない間は、当該交戦グループに参加するノンプレイヤキャラクタのそれぞれについての前記戦闘ターゲットを維持する、請求項11に記載のゲームプログラム。
【請求項13】
前記交戦グループ管理手段は、前記交戦グループに参加する各キャラクタを、第1タイプと第2タイプとのいずれかに設定し、
前記ターゲット設定手段は、前記第1タイプのノンプレイヤキャラクタに関する戦闘ターゲットを、前記第2タイプのキャラクタのうちから設定し、前記第2タイプのノンプレイヤキャラクタに関する戦闘ターゲットを、前記第1タイプのキャラクタのうちから設定する、請求項1から請求項10のいずれか1項に記載のゲームプログラム。
【請求項14】
前記複数のノンプレイヤキャラクタおよび前記プレイヤキャラクタはそれぞれ、複数のカテゴリのいずれかに分類され、
前記複数のカテゴリは、第1カテゴリと、前記第1カテゴリに分類されるキャラクタに敵対する第2カテゴリと、前記第1カテゴリおよび前記第2カテゴリとは異なる第3カテゴリとを含み、
前記交戦グループ管理手段は、
前記交戦グループに、前記第1カテゴリのキャラクタと、前記第3カテゴリのキャラクタとが参加し、前記第2カテゴリのキャラクタが参加していない場合、前記第1カテゴリのキャラクタを前記第1タイプに設定し、前記第3カテゴリのキャラクタを前記第2タイプに設定し、
前記交戦グループに、前記第1カテゴリのキャラクタと、前記第2カテゴリのキャラクタと、前記第3カテゴリのキャラクタとが参加している場合、前記第1カテゴリのキャラクタと前記第3カテゴリのキャラクタとを前記第1タイプに設定し、前記第2カテゴリのキャラクタを前記第2タイプに設定する、請求項13に記載のゲームプログラム。
【請求項15】
前記第1タイプのキャラクタには、当該キャラクタが前記第2タイプのキャラクタの前記戦闘ターゲットとなる場合における許容量を示す情報が少なくとも設定され、
前記第2タイプのキャラクタには、当該キャラクタが前記第1タイプのキャラクタを戦闘ターゲットとする場合における当該キャラクタの重みを示す情報が少なくとも設定され、
前記ターゲット設定手段は、前記交戦グループ内において、前記第1タイプの1つのキャラクタを戦闘ターゲットとする、前記第2タイプの1以上のキャラクタに設定される各重みに基づく大きさが、当該戦闘ターゲットとなる前記第1タイプのキャラクタに設定される許容量を超えないように、前記第2タイプのキャラクタに関する戦闘ターゲットを設定する、請求項13に記載のゲームプログラム。
【請求項16】
前記プレイヤキャラクタと、前記プレイヤキャラクタの仲間となるノンプレイヤキャラクタとは、前記第1タイプに設定される、請求項13に記載のゲームプログラム。
【請求項17】
前記ターゲット設定手段は、前記交戦グループ内において、戦闘ターゲットになっていない前記第1タイプのキャラクタを、戦闘ターゲットになっている前記第1タイプのキャラクタよりも優先して、前記第2タイプのキャラクタに関する戦闘ターゲットに設定する、請求項16に記載のゲームプログラム。
【請求項18】
前記第1タイプのキャラクタには、当該キャラクタが前記第2タイプのキャラクタの前記戦闘ターゲットとなる場合における許容量を示す情報が少なくとも設定され、
前記第2タイプのキャラクタには、当該キャラクタが前記第1タイプのキャラクタを戦闘ターゲットとする場合における当該キャラクタの重みを示す情報が少なくとも設定され、
前記ターゲット設定手段は、前記交戦グループ内において、前記第1タイプの1つのキャラクタを戦闘ターゲットとする、前記第2タイプの1以上のキャラクタに設定される各重みに基づく大きさが、当該戦闘ターゲットとなる前記第1タイプのキャラクタに設定される許容量を超えないように、前記第2タイプのキャラクタに関する戦闘ターゲットを設定し、
前記プレイヤキャラクタは、前記第1タイプに設定され、
前記プレイヤキャラクタに設定される許容量は、前記第1タイプのノンプレイヤキャラクタに設定される許容量よりも大きい、請求項17に記載のゲームプログラム。
【請求項19】
前記キャラクタ制御手段は、前記ノンプレイヤキャラクタについて設定された戦闘ターゲットと、当該ノンプレイヤキャラクタについて設定されたルールとに基づいて、当該ノンプレイヤキャラクタが攻撃動作を行う対象を決定する、請求項1から請求項10のいずれか1項に記載のゲームプログラム。
【請求項20】
仮想空間において複数のノンプレイヤキャラクタの動作を制御するキャラクタ制御手段と、
前記複数のノンプレイヤキャラクタのそれぞれについて、所定の条件に基づき、他のノンプレイヤキャラクタ、または、ユーザの操作入力によって操作されるプレイヤキャラクタとの戦闘を行うための戦闘可能状態に設定する状態設定手段と、
前記戦闘可能状態にあるノンプレイヤキャラクタを含む複数のキャラクタが参加する交戦グループを設定する交戦グループ管理手段と、
前記交戦グループに参加するノンプレイヤキャラクタについて、当該交戦グループに参加する他のキャラクタを戦闘ターゲットに設定するターゲット設定手段とを備え、
前記キャラクタ制御手段は、前記ノンプレイヤキャラクタについて設定された戦闘ターゲットに基づいて、当該ノンプレイヤキャラクタの戦闘に関する動作を制御する、情報処理システム。
【請求項21】
情報処理システムによって実行されるゲーム処理方法であって、
仮想空間において複数のノンプレイヤキャラクタの動作を制御するキャラクタ制御ステップと、
前記複数のノンプレイヤキャラクタのそれぞれについて、所定の条件に基づき、他のノンプレイヤキャラクタ、または、ユーザの操作入力によって操作されるプレイヤキャラクタとの戦闘を行うための戦闘可能状態に設定する状態設定ステップと、
前記戦闘可能状態にあるノンプレイヤキャラクタを含む複数のキャラクタが参加する交戦グループを設定する交戦グループ管理ステップと、
前記交戦グループに参加するノンプレイヤキャラクタについて、当該交戦グループに参加する他のキャラクタを戦闘ターゲットに設定するターゲット設定ステップとを含み、
前記キャラクタ制御ステップにおいて、前記ノンプレイヤキャラクタについて設定された戦闘ターゲットに基づいて、当該ノンプレイヤキャラクタの戦闘に関する動作を制御する、ゲーム処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のキャラクタが戦闘を行うゲームを実行するためのゲームプログラム、情報処理システム、および、ゲーム処理方法に関する。
【背景技術】
【0002】
従来、ゲームに登場する複数のキャラクタについて戦闘を行わせる場合において、攻撃目標となる他のキャラクタを、攻撃目標との位置関係や、攻撃目標がダメージを受けているか否か等によって決定することが行われている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来、キャラクタの攻撃目標を決定する処理はキャラクタ毎に行われていたため、複数のキャラクタが戦闘を行う場合には、例えば攻撃目標が偏ってしまう等、全体として見ると意図しない戦闘状況になるおそれがあった。
【0005】
それ故、本発明の目的は、戦闘を管理するためのゲームプログラム、情報処理システム、および、ゲーム処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記の課題を解決すべく、本発明は、以下の(1)~(19)の構成を採用した。
【0007】
(1)
本発明の一例は、コンピュータにゲームを実行させるゲームプログラムである。ゲームプログラムは、キャラクタ制御手段と、状態設定手段と、交戦グループ管理手段と、ターゲット設定手段としてコンピュータを機能させる。キャラクタ制御手段は、仮想空間において複数のノンプレイヤキャラクタの動作を制御する。状態設定手段は、複数のノンプレイヤキャラクタのそれぞれについて、所定の条件に基づき、他のノンプレイヤキャラクタ、または、ユーザの操作入力によって操作されるプレイヤキャラクタとの戦闘を行うための戦闘可能状態に設定する。交戦グループ管理手段は、戦闘可能状態にあるノンプレイヤキャラクタを含む複数のキャラクタが参加する交戦グループを設定する。ターゲット設定手段は、交戦グループに参加するノンプレイヤキャラクタについて、当該交戦グループに参加する他のキャラクタを戦闘ターゲットに設定する。キャラクタ制御手段は、ノンプレイヤキャラクタについて設定された戦闘ターゲットに基づいて、当該ノンプレイヤキャラクタの戦闘に関する動作を制御する。
【0008】
上記(1)の構成によれば、複数のキャラクタが参加する交戦グループが設定され、交戦グループ内において各ノンプレイヤキャラクタの戦闘ターゲットが設定される。これによれば、各ノンプレイヤキャラクタの挙動が意図しないものとなる(例えば、複数のノンプレイヤキャラクタの攻撃目標が意図せずに偏ってしまう等)おそれを低減することができ、全体として意図する戦闘を実現することができる。
【0009】
(2)
上記(1)の構成において、交戦グループ管理手段は、戦闘可能状態にあるノンプレイヤキャラクタが参加する交戦グループを、ノンプレイヤキャラクタ毎に、ノンプレイヤキャラクタについて設定されるグループ設定条件に基づいて決定してもよい。
【0010】
上記(2)の構成によれば、戦闘時におけるノンプレイヤキャラクタの挙動をノンプレイヤキャラクタ毎に決定することができ、ノンプレイヤキャラクタの特徴に応じた挙動をノンプレイヤキャラクタにとらせることで全体として意図する戦闘を実現することができる。
【0011】
(3)
上記(2)の構成において、複数のノンプレイヤキャラクタはそれぞれ、複数のカテゴリのいずれかに分類されてもよい。グループ設定条件はカテゴリ毎に設定されてもよい。交戦グループ管理手段は、戦闘可能状態にあるノンプレイヤキャラクタを参加させる交戦グループを、当該ノンプレイヤキャラクタが分類されるカテゴリに設定されるグループ設定条件に基づいて決定してもよい。
【0012】
上記(3)の構成によれば、ノンプレイヤキャラクタのカテゴリ毎の特徴に応じた挙動をノンプレイヤキャラクタにとらせることで全体として意図する戦闘を実現することができる。また、グループ設定条件のデータ量を抑えることができるとともに、グループ設定条件のための開発コストを抑えることができる。
【0013】
(4)
上記(1)から(3)のいずれかの構成において、交戦グループ管理手段は、戦闘可能状態にあるノンプレイヤキャラクタおよびプレイヤキャラクタのうちから交戦グループの代表となるキャラクタを設定してもよい。交戦グループ管理手段は、代表となるキャラクタ毎に交戦グループを設定してもよい。交戦グループ管理手段は、戦闘可能状態にあるノンプレイヤキャラクタおよびプレイヤキャラクタのうち、代表が設定された交戦グループについての参加条件を満たすキャラクタを当該交戦グループに参加させてもよい。
【0014】
上記(4)の構成によれば、交戦グループ毎に代表となるキャラクタを設定することで、交戦グループの管理を容易にすることができる。
【0015】
(5)
上記(4)の構成において、交戦グループ管理手段は、交戦グループの解散、または、他の交戦グループとの統合を、当該交戦グループの代表となるキャラクタについて設定されるグループ設定条件に基づいて行ってもよい。
【0016】
上記(5)の構成によれば、交戦グループの解散および/または統合を、代表となるキャラクタに基づいて容易に判定することができる。
【0017】
(6)
上記(4)または(5)の構成において、交戦グループ管理手段は、プレイヤキャラクタを、代表でないキャラクタとしては交戦グループに参加させないように、代表となるキャラクタと交戦グループに参加するキャラクタとを設定してもよい。
【0018】
上記(6)の構成によれば、プレイヤキャラクタがノンプレイヤキャラクタと戦闘を行う状況を発生しやすくすることができる。
【0019】
(7)
上記(4)から(6)の構成において、交戦グループ管理手段は、第1交戦グループに参加し、当該第1交戦グループの代表でないキャラクタと、当該第1交戦グループの代表であるキャラクタとの位置関係が、所定の基準よりも遠い位置関係となったことを少なくとも条件として、当該第1交戦グループの代表でないキャラクタを代表とする第2交戦グループを新たに生成してもよい。
【0020】
上記(7)の構成によれば、ノンプレイヤキャラクタ間の距離が離れてしまった場合でも全体として意図する、より自然な戦闘を実現することができる。
【0021】
(8)
上記(7)の構成において、交戦グループ管理手段は、第1交戦グループにおいて第2交戦グループの代表となるキャラクタを戦闘ターゲットとしていた他のキャラクタを、第2交戦グループに参加させてもよい。
【0022】
上記(8)の構成によれば、新たな交戦グループが生成される場合においても全体として意図する、より自然な戦闘を実現することができる。
【0023】
(9)
上記(4)から(8)の構成において、交戦グループ管理手段は、交戦グループの代表であるキャラクタが、他のいずれのキャラクタに関する戦闘ターゲットにも設定されていないことを条件として、当該交戦グループを解散させるとともに、解散された当該交戦グループの代表であるキャラクタを参加させる交戦グループをグループ設定条件に基づいて決定してもよい。
【0024】
上記(9)の構成によれば、交戦グループが解散された後においても全体として意図する戦闘を実現することができる。
【0025】
(10)
上記(4)から(9)の構成において、交戦グループ管理手段は、ある交戦グループの代表であるキャラクタと、他の交戦グループの代表であるキャラクタとの位置関係が所定の基準よりも近い位置関係となったことを少なくとも条件として、当該ある交戦グループと当該他の交戦グループとを1つの交戦グループに統合してもよい。
【0026】
上記(10)の構成によれば、異なる交戦グループに参加するキャラクタ同士が近い位置に配置される場合において、全体として意図する、より自然な戦闘を実現することができる。
【0027】
(11)
上記(1)から(10)の構成において、ターゲット設定手段は、交戦グループに参加するキャラクタが変更された場合、当該交戦グループに参加するノンプレイヤキャラクタのそれぞれについて戦闘ターゲットの再設定を行ってもよい。
【0028】
交戦グループに参加するキャラクタが変更された場合には、全体として意図する、自然と考えられるような戦闘状態も変わる可能性があるところ、上記(11)の構成によれば、各ノンプレイヤキャラクタの戦闘ターゲットを適切に設定することができ、全体として意図する戦闘を実現することができる。
【0029】
(12)
上記(11)の構成において、ターゲット設定手段は、交戦グループに参加するキャラクタに変更がない間は、当該交戦グループに参加するノンプレイヤキャラクタのそれぞれについての戦闘ターゲットを維持してもよい。
【0030】
上記(12)の構成によれば、交戦グループに参加するキャラクタに変更がない状況で全体として意図する戦闘を実現することができる。
【0031】
(13)
上記(1)から(12)の構成において、交戦グループ管理手段は、交戦グループに参加する各キャラクタを、第1タイプと第2タイプとのいずれかに設定してもよい。ターゲット設定手段は、第1タイプのノンプレイヤキャラクタに関する戦闘ターゲットを、第2タイプのキャラクタのうちから設定し、第2タイプのノンプレイヤキャラクタに関する戦闘ターゲットを、第1タイプのキャラクタのうちから設定してもよい。
【0032】
上記(13)の構成によれば、敵対する2つの勢力が戦闘を行う場合における戦闘ターゲットの設定を容易に行うことができる。
【0033】
(14)
上記(13)の構成において、複数のノンプレイヤキャラクタおよびプレイヤキャラクタはそれぞれ、複数のカテゴリのいずれかに分類されてもよい。複数のカテゴリは、第1カテゴリと、第1カテゴリに分類されるキャラクタに敵対する第2カテゴリと、第1カテゴリおよび第2カテゴリとは異なる第3カテゴリとを含んでもよい。交戦グループ管理手段は、交戦グループに、第1カテゴリのキャラクタと、第3カテゴリのキャラクタとが参加し、第2カテゴリのキャラクタが参加していない場合、第1カテゴリのキャラクタを第1タイプに設定し、第3カテゴリのキャラクタを第2タイプに設定してもよい。交戦グループ管理手段は、交戦グループに、第1カテゴリのキャラクタと、第2カテゴリのキャラクタと、第3カテゴリのキャラクタとが参加している場合、第1カテゴリのキャラクタと第3カテゴリのキャラクタとを第1タイプに設定し、第2カテゴリのキャラクタを第2タイプに設定してもよい。
【0034】
上記(14)の構成によれば、状況に応じて第1カテゴリのキャラクタと敵対したり、第1カテゴリのキャラクタと共闘したりするノンプレイヤキャラクタの挙動を容易に実現でき、意図する戦闘を容易に実現することができる。
【0035】
(15)
上記(13)または(14)の構成において、第1タイプのキャラクタには、当該キャラクタが第2タイプのキャラクタの戦闘ターゲットとなる場合における許容量を示す情報が少なくとも設定されてもよい。第2タイプのキャラクタには、当該キャラクタが第1タイプのキャラクタを戦闘ターゲットとする場合における当該キャラクタの重みを示す情報が少なくとも設定されてもよい。ターゲット設定手段は、交戦グループ内において、第1タイプの1つのキャラクタを戦闘ターゲットとする1以上のキャラクタ(具体的には、第2タイプのキャラクタ)に設定される各重みに基づく大きさが、当該戦闘ターゲットとなる第1タイプのキャラクタに設定される許容量を超えないように、第2タイプのキャラクタに関する戦闘ターゲットを設定してもよい。
【0036】
上記(15)の構成によれば、各キャラクタに許容量が設定されるので、1つのキャラクタに戦闘ターゲットが集中することによって全体として意図しない不自然な戦闘になる可能性を低減することができる。また、各キャラクタに重みが設定されるので、キャラクタ毎に特徴を持たせて戦闘ターゲットの設定を行うことができる。
【0037】
(16)
上記(13)から(15)の構成において、プレイヤキャラクタと、プレイヤキャラクタの仲間となるノンプレイヤキャラクタとは、第1タイプに設定されてもよい。
【0038】
上記(16)の構成によれば、プレイヤキャラクタとその仲間となるノンプレイヤキャラクタとが互いを戦闘ターゲットとすることがないので、これらのキャラクタが共闘する挙動を容易に実現でき、意図する戦闘を容易に実現することができる。
【0039】
(17)
上記(13)から(16)の構成において、ターゲット設定手段は、交戦グループ内において、戦闘ターゲットになっていない第1タイプのキャラクタを、戦闘ターゲットになっている第1タイプのキャラクタよりも優先して、第2タイプのキャラクタに関する戦闘ターゲットに設定してもよい。
【0040】
上記(17)の構成によれば、複数のキャラクタに関する戦闘ターゲットをバランスよく設定することができ、全体として意図する自然な戦闘を容易に実現することができる。
【0041】
(18)
上記(13)から(17)の構成において、第1タイプのキャラクタには、当該キャラクタが第2タイプのキャラクタの戦闘ターゲットとなる場合における許容量を示す情報が少なくとも設定されてもよい。第2タイプのキャラクタには、当該キャラクタが第1タイプのキャラクタを戦闘ターゲットとする場合における当該キャラクタの重みを示す情報が少なくとも設定されてもよい。ターゲット設定手段は、交戦グループ内において、第1タイプの1つのキャラクタを戦闘ターゲットとする1以上のキャラクタ(具体的には、第2タイプのキャラクタ)に設定される各重みに基づく大きさが、当該戦闘ターゲットとなる第1タイプのキャラクタに設定される許容量を超えないように、第2タイプのキャラクタに関する戦闘ターゲットを設定してもよい。プレイヤキャラクタは、第1タイプに設定されてもよい。プレイヤキャラクタに設定される許容量は、第1タイプのノンプレイヤキャラクタに設定される許容量よりも大きくてもよい。
【0042】
上記(18)の構成によれば、プレイヤキャラクタと、戦闘のためのゲーム操作をプレイヤが行う機会を増やすことができ、ゲームの興趣性を向上することができる。
【0043】
(19)
上記(1)から(18)の構成において、キャラクタ制御手段は、ノンプレイヤキャラクタについて設定された戦闘ターゲットと、当該ノンプレイヤキャラクタについて設定されたルールとに基づいて、当該ノンプレイヤキャラクタが攻撃動作を行う対象を決定してもよい。
【0044】
上記(19)の構成によれば、状況に応じてノンプレイヤキャラクタの攻撃対象を変化させることができるので、ノンプレイヤキャラクタの挙動をより自然なものとすることができる。
【0045】
なお、本発明の別の一例は、上記(1)~(19)における処理を実行する情報処理装置または情報処理システムであってもよい。また、本発明の別の一例は、上記(1)~(19)における処理を実行する情報処理方法であってもよい。
【発明の効果】
【0046】
上記ゲームプログラム、情報処理システム、または、ゲーム処理方法によれば、全体として意図する戦闘を実現することができる。
【図面の簡単な説明】
【0047】
【
図1】本体装置に左コントローラおよび右コントローラを装着した状態の一例を示す図
【
図2】本体装置から左コントローラおよび右コントローラをそれぞれ外した状態の一例を示す図
【
図7】本体装置と左コントローラおよび右コントローラとの内部構成の一例を示すブロック図
【
図8】戦闘ターゲットが設定される際における処理の流れの一例を示す図
【
図9】ゲーム空間にキャラクタが配置される一例を示す図
【
図11】
図9に示す状況から、敵キャラクタがプレイヤキャラクタを発見した状況の一例を示す図
【
図12】複数のキャラクタが参加する1つの交戦グループの一例を示す図
【
図13】
図12に示す状況から交戦グループが分裂された様子の一例を示す図
【
図14】プレイヤキャラクタ、仲間キャラクタ、敵キャラクタ、および、第3勢力キャラクタが参加する交戦グループの一例を示す図
【
図15】プレイヤキャラクタ、仲間キャラクタ、および、第3勢力キャラクタが参加する交戦グループの一例を示す図
【
図16】複数のキャラクタが参加する1つの交戦グループの一例を示す図
【
図17】ゲームシステム1における情報処理に用いられる各種データの一例を示す図
【
図18】ゲームシステム1によって実行されるゲーム処理の流れの一例を示すフローチャート
【
図19】
図18に示すステップS2の交戦グループ管理処理の詳細な流れの一例を示すサブフローチャート
【
図20】
図18に示すステップS3の戦闘ターゲット設定処理の詳細な流れの一例を示すサブフローチャート
【発明を実施するための形態】
【0048】
[1.ゲームシステムの構成]
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(
図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
【0049】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。
図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0050】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。
図1および
図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0051】
図3は、本体装置2の一例を示す六面図である。
図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0052】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0053】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0054】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0055】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0056】
図4は、左コントローラ3の一例を示す六面図である。
図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、
図1および
図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0057】
左コントローラ3は、アナログスティック32を備える。
図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
【0058】
左コントローラ3は、各種操作ボタンを備える。左コントローラ3は、ハウジング31の主面上に4つの操作ボタン33~36(具体的には、右方向ボタン33、下方向ボタン34、上方向ボタン35、および左方向ボタン36)を備える。さらに、左コントローラ3は、録画ボタン37および-(マイナス)ボタン47を備える。左コントローラ3は、ハウジング31の側面の左上に第1Lボタン38およびZLボタン39を備える。また、左コントローラ3は、ハウジング31の側面の、本体装置2に装着される際に装着される側の面に第2Lボタン43および第2Rボタン44を備える。これらの操作ボタンは、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0059】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0060】
図5は、右コントローラ4の一例を示す六面図である。
図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0061】
右コントローラ4は、左コントローラ3と同様、方向入力部としてアナログスティック52を備える。本実施形態においては、アナログスティック52は、左コントローラ3のアナログスティック32と同じ構成である。また、右コントローラ4は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ4は、左コントローラ3と同様、ハウジング51の主面上に4つの操作ボタン53~56(具体的には、Aボタン53、Bボタン54、Xボタン55、およびYボタン56)を備える。さらに、右コントローラ4は、+(プラス)ボタン57およびホームボタン58を備える。また、右コントローラ4は、ハウジング51の側面の右上に第1Rボタン60およびZRボタン61を備える。また、右コントローラ4は、左コントローラ3と同様、第2Lボタン65および第2Rボタン66を備える。
【0062】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0063】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、
図3に示す構成の他、
図6に示す各構成要素81、83~85、および、91を備える。これらの構成要素81、83~85、および、91のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0064】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0065】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0066】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0067】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0068】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0069】
プロセッサ81は、上述の左側端子17、右側端子21、および下側端子27に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。このように、本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。
【0070】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0071】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、
図6で示しているため
図7では省略している。
【0072】
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。
図7に示すように、通信制御部101は、端子42を含む各構成要素に接続される。本実施形態においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
【0073】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0074】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(
図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0075】
通信制御部101は、各入力部(具体的には、各ボタン103、および、アナログスティック32)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0076】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。
【0077】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0078】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0079】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、および、アナログスティック52を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0080】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0081】
[2.ゲームシステムにおける処理の概要]
以下、ゲームシステム1において実行される情報処理の概要について説明する。本実施形態においては、ゲームシステム1は、プレイヤ(ユーザとも言う)によって操作されるプレイヤキャラクタを含む複数のキャラクタが仮想のゲーム空間に登場し、キャラクタ同士が戦闘を行うゲームを実行する。本実施形態においては、ゲームシステム1は、キャラクタに対して敵対する他のキャラクタのうちから戦闘ターゲットとなるキャラクタを、キャラクタ毎に設定する。戦闘ターゲットとは、キャラクタによる攻撃の対象(すなわち、攻撃対象となる他のキャラクタ)を決定するための基準となるものである。本実施形態においては、ゲームシステム1は、各キャラクタの戦闘ターゲットを適切に設定することで、戦闘時における各キャラクタの挙動を自然なものとすることができる。
【0082】
[2-1.キャラクタのカテゴリ]
まず、戦闘を行う各キャラクタに関するカテゴリについて説明する。本実施形態においては、キャラクタに関して複数のカテゴリが用意されており、各キャラクタはそれぞれ、複数のカテゴリのうちの1つに分類される。そして、キャラクタが分類されるカテゴリ毎に、当該カテゴリのキャラクタが敵対し得るキャラクタのカテゴリが定められている。具体的には、本実施形態においては、戦闘を行うことが可能なキャラクタは、プレイヤカテゴリ、仲間カテゴリ、敵カテゴリ、および、第3勢力カテゴリの4つのいずれか1つに分類される。
【0083】
プレイヤカテゴリは、プレイヤによって操作されるプレイヤキャラクタが分類されるカテゴリである。本実施形態においては、ゲームに登場するプレイヤキャラクタは1つである。ただし、他の実施形態において、プレイヤカテゴリに分類されるプレイヤキャラクタは複数であってもよい。
【0084】
仲間カテゴリは、プレイヤキャラクタの味方となるキャラクタである仲間キャラクタが分類されるカテゴリである。キャラクタ同士の戦闘が行われる場合、仲間キャラクタは、プレイヤキャラクタが敵対するキャラクタ(具体的には、後述の敵キャラクタ等)を攻撃対象とする。
【0085】
敵カテゴリは、プレイヤキャラクタに敵対するキャラクタである敵キャラクタが分類されるカテゴリである。キャラクタ同士の戦闘が行われる場合、敵キャラクタは、プレイヤキャラクタおよびプレイヤキャラクタの味方となるキャラクタ(例えば、仲間キャラクタ)を攻撃対象とする。
【0086】
第3勢力カテゴリは、状況によってプレイヤキャラクタの味方となったり敵となったりするキャラクタである第3勢力キャラクタが分類されるカテゴリである。詳細は後述するが、キャラクタ同士の戦闘が行われる場合、第3勢力キャラクタは、ゲーム状況によっては、プレイヤキャラクタおよび仲間キャラクタを攻撃対象とすることもあるし、敵キャラクタを攻撃対象とすることもある。
【0087】
なお、上記仲間キャラクタ、敵キャラクタ、および、第3勢力キャラクタは、ノンプレイヤキャラクタ(以下、「NPC」と略記する)である。ここで、NPCとは、プレイヤによって操作されるプレイヤキャラクタとは異なるキャラクタであり、ゲームシステム1によって動作が自動的に制御されるキャラクタである。つまり、上記仲間キャラクタ、敵キャラクタ、および、第3勢力キャラクタについては、ゲームシステム1によって攻撃対象や攻撃動作が決定される。ただし、NPCによる一部の動作については、プレイヤによる操作の結果として行われる動作があってもよい。例えば、本実施形態においては、プレイヤは、プレイヤキャラクタに対する操作によって、プレイヤキャラクタが仲間キャラクタに対する指示を行う動作をプレイヤキャラクタに行わせることが可能であり、仲間キャラクタは、プレイヤキャラクタによる当該指示に応じて特定の動作を行ってもよい。この特定の動作の具体的な内容は任意であり、他のキャラクタを攻撃する動作であってもよいし、プレイヤキャラクタに対して回復や能力向上を行う動作であってもよい。
【0088】
また、キャラクタが分類されるカテゴリの種類および数は任意である。他の実施形態においては、上記4つのカテゴリとは異なる他のカテゴリが設定されてもよい。例えば、他の実施形態においては、敵キャラクタに対して敵対するが、その他のカテゴリのキャラクタに対しては敵対しないキャラクタが分類されるカテゴリが設定されてもよい。このように、あるカテゴリのキャラクタは、特定の他のカテゴリのキャラクタとの間では互いに敵対しない関係であってもよい。また、他の実施形態においては、特定の敵キャラクタ(例えば、ボスキャラクタ)が分類されるカテゴリと、その他の敵キャラクタが分類されるカテゴリとがそれぞれ設定されてもよい。このとき、後述するグループ設定条件は、それぞれのカテゴリで異なるように設定されてもよい。またさらに、複数の種族の敵キャラクタが存在する場合、種族毎にカテゴリが設定されてもよいし、いくつかの種族毎にカテゴリが設定されてもよい。
【0089】
また、他の実施形態においては、キャラクタが分類されるカテゴリはゲーム中において変更されてもよい。例えば、他の実施形態において、プレイヤが複数のキャラクタを切り替えて操作することができるゲームの場合、当該複数のキャラクタのうちプレイヤが操作中であるキャラクタがプレイヤキャラクタとなり、当該複数のキャラクタのうちその他のキャラクタが仲間キャラクタ(このとき、当該その他のキャラクタはNPCであると言える)となってもよい。そして、上記複数のキャラクタのうちプレイヤが操作中であるキャラクタが、第1キャラクタから第2キャラクタへと切り替えられた場合には、第1キャラクタはプレイヤキャラクタから仲間キャラクタへと変更され(つまり、プレイヤカテゴリから仲間カテゴリに変更され)、第2キャラクタは仲間キャラクタからプレイヤキャラクタへと変更されてもよい。
【0090】
[2-2.戦闘ターゲットの設定処理の概要]
次に、戦闘ターゲットを設定する処理の概要について説明する。
図8は、戦闘ターゲットが設定される際における処理の流れの一例を示す図である。
図8においては、プレイヤキャラクタ201、仲間キャラクタ202、ならびに、敵キャラクタ203および204がゲーム空間に配置されている。
図8の(a)に示す状況は、プレイヤキャラクタ201の付近に敵キャラクタ203および204が現れ、敵キャラクタ203および204がプレイヤキャラクタ201を発見した状況である。
【0091】
本実施形態においては、ゲームシステム1は、
図8の(a)に示す状況のようにゲーム空間にキャラクタが配置されている状況において、一定条件下で交戦グループを生成する。交戦グループとは、キャラクタ同士が戦闘を行うグループである。交戦グループは、各キャラクタの戦闘ターゲットを設定するために用いられるグループである。例えば
図8の(b)に示す例においては、4つのキャラクタ201~204が参加する交戦グループG1が生成されるものとする。なお、詳細は後述するが、本実施形態においては、ゲーム状況によっては複数の交戦グループが設定されることもある。
【0092】
なお、詳細は後述するが、本実施形態においては、ゲームシステム1は、交戦グループを新たに生成する他、交戦グループを解散(消滅とも言う)させたり、交戦グループを分裂させたり、交戦グループを他の交戦グループに統合させたりする。本実施形態においては、ゲームシステム1は、交戦グループの生成等を行うための各種条件をキャラクタ毎に判定することで、交戦グループの管理(具体的には、NPCの交戦グループへの参加、ならびに、交戦グループの生成、解散、分裂、および、統合)を行う。
【0093】
次に、ゲームシステム1は、交戦グループに基づいて、当該交戦グループに参加する各キャラクタの戦闘ターゲットを設定する。キャラクタの戦闘ターゲットは、当該キャラクタが参加する交戦グループに含まれる他のキャラクタのうちから設定される。また、キャラクタの戦闘ターゲットは、上述のカテゴリに基づいて、当該キャラクタと敵対するカテゴリのキャラクタのうちから設定される。例えば
図8の(c)に示す例においては、プレイヤキャラクタ201の戦闘ターゲットは敵キャラクタ203に設定され、敵キャラクタ203の戦闘ターゲットはプレイヤキャラクタ201に設定され、仲間キャラクタ202の戦闘ターゲットは敵キャラクタ204に設定され、敵キャラクタ204の戦闘ターゲットは仲間キャラクタ202に設定される(
図8に示す矢印参照)。なお、交戦グループが複数設定される場合には、ゲームシステム1は、交戦グループ毎に、交戦グループに参加する各キャラクタについて戦闘ターゲットを設定する。
【0094】
本実施形態においては、ゲームシステム1は、上記のようにして設定された戦闘ターゲットに基づいて、NPC(すなわち、仲間キャラクタ、敵キャラクタ、および、第3勢力キャラクタ)の戦闘中における動作を制御する。すなわち、ゲームシステム1は、キャラクタの攻撃対象を、当該キャラクタの戦闘ターゲットに基づいて決定し、決定された攻撃対象に対して攻撃動作を行うように当該キャラクタを制御する。なお、NPCは、戦闘ターゲットに設定された他のキャラクタを必ずしも攻撃対象とする必要はない。詳細は後述するが、キャラクタは、戦闘ターゲットに設定された他のキャラクタを攻撃対象としてもよいし、状況によっては、戦闘ターゲットに設定された他のキャラクタとは異なるキャラクタを攻撃対象としてもよい。
【0095】
ここで、プレイヤキャラクタについてはプレイヤによる操作によって攻撃対象が決定されるので、プレイヤキャラクタの攻撃対象はプレイヤによって決定されると言うことができる。ただし、上記のように、本実施形態においては、NPCについて戦闘ターゲットが設定されることに加えて、プレイヤキャラクタについても戦闘ターゲットが設定される。この理由については後述する。
【0096】
以上のように、本実施形態においては、ゲームシステム1は、交戦グループを管理し、戦闘に参加する各キャラクタの戦闘ターゲットを、交戦グループを用いて設定する。これによって、全体として意図される自然な戦闘となるように、戦闘時における各キャラクタの挙動を制御することができる。
【0097】
ここで、各NPCの攻撃対象を決定する方法としては、交戦グループを管理することなく、NPC毎の動作を決定するためのアルゴリズムにおいて当該NPCの攻撃対象を決定する方法も考えられる。しかし、同方法では、ゲームの開発者は、意図する挙動を各NPCにとらせるために、各NPCの特徴や各種の条件(例えば、どのような場合にどの対象を攻撃するか等の条件)を総合的に考慮して、攻撃対象を決定するためのアルゴリズムを設定することとなる。このとき、例えばキャラクタの数や種類が多い場合においては、開発者が意図する挙動を各NPCにとらせるためには、NPC毎に当該NPCの特徴だけではなくその他全てのNPCの特徴も踏まえた非常に複雑なアルゴリズムを作成しなければならず、意図する挙動を各NPCにとらせることが困難となる。
【0098】
これに対して、本実施形態においては、交戦グループを用いて、攻撃対象を決定するための戦闘ターゲットを設定することで、アルゴリズムが複雑になることを避けることができる。その結果、開発者が意図する挙動を各NPCに行わせやすくなる。それによって、各NPCの挙動が自然なものとなりやすくなる。
【0099】
また、本実施形態によれば、上述の戦闘ターゲットをそのまま攻撃対象とするのではなく、交戦グループを用いて戦闘ターゲットを設定する処理と、戦闘ターゲットに基づいて攻撃対象を決定する処理とを分けている。これら2つの処理を分けることで、各NPCの特徴を変更することが容易となる。例えば、あるNPCの特徴を変更するにあたって、当該NPCの攻撃対象を決定する処理を変更すれば、戦闘ターゲットを設定する処理や、当該設定された戦闘ターゲットに基づいて他のNPCが攻撃対象を決定する処理まで変更することが必須でなく、そのまま維持することもできる。したがって、本実施形態においては、このような一部の変更を行うことも容易になる。そのため、一部のNPCの動作アルゴリズムを調整することが容易となり、開発者が意図する挙動をNPCに行わせやすくなる。
【0100】
詳細は後述するが、本実施形態においては、戦闘ターゲットを設定する処理においては、ゲーム空間における全体状況を考慮して、戦闘ターゲットが設定される。なお、ゲーム空間における全体状況とは、戦闘ターゲットを設定するNPCに関する状況だけでなく、その他のキャラクタの状況も含む意味である。例えば、本実施形態においては、ゲーム空間における全体状況として、各キャラクタが戦闘可能状態であるか否かや、他のキャラクタの戦闘ターゲットがどれであるか等を考慮して戦闘ターゲットが設定される。これによれば、ゲームシステム1は、ゲーム空間における全体状況を考慮して各キャラクタによる戦闘の挙動を管理することができる。これによって、全体としてより自然な戦闘の挙動を実現することができる。一方、攻撃対象を決定する処理においては、個別のキャラクタ毎の状況(例えば、当該キャラクタが戦闘ターゲットを認識しているか否かや、当該キャラクタが特定の攻撃を受けたか否か等)を考慮して、NPC毎のアルゴリズムによって攻撃対象が決定される。これによれば、NPCの挙動を自然なものとすることができるとともに、NPC毎の特徴を反映した挙動を当該NPCにとらせることができる。
【0101】
[2-3.交戦グループの設定の具体例]
次に、交戦グループを設定する方法の一例を、具体例を用いて説明する。
図9は、ゲーム空間にキャラクタが配置される一例を示す図である。
図9に示す例においては、プレイヤキャラクタ201、仲間キャラクタ202、ならびに、敵キャラクタ203および204がゲーム空間に配置されている。なお、
図9に示す状況においては、敵キャラクタ203および204は、プレイヤキャラクタ201および仲間キャラクタ202をまだ発見していないものとする(
図9に示す点線矢印参照)。
【0102】
本実施形態においては、ゲームシステム1は、ゲーム空間に配置されている各キャラクタのうちで、戦闘可能状態に設定されるキャラクタを、一定条件下で交戦グループに参加させる。すなわち、ゲームシステム1は、戦闘可能状態にあるキャラクタについて、交戦グループに参加させるか否かを判定する。
【0103】
ここで、ゲームシステム1は、各NPCについて、非戦闘状態、および、戦闘可能状態のうちいずれか1つの状態を設定する。非戦闘状態とは、当該NPCが戦闘を行わない状態であり、戦闘可能状態とは、当該NPCが戦闘可能な状態(すなわち、戦闘に関する動作を行うことができる状態)である。非戦闘状態とは、NPCが戦闘を行う意思がない状態と言うことができ、戦闘可能状態とは、NPCが戦闘を行う意思がある状態と言うことができる。また、戦闘可能状態は、戦闘中の状態または戦闘準備状態であると言うこともできる。NPCが戦闘可能状態となる場合、当該NPCは、敵対するキャラクタに対する攻撃に関する動作(すなわち、敵対するキャラクタの方へ移動する動作や、敵対するキャラクタに対して攻撃する動作)を行うように制御される。
【0104】
本実施形態においては、仲間キャラクタについては、プレイヤの指示に応じてゲーム空間に登場させたりゲーム空間から退場させたりすることができる。本実施形態においては、仲間キャラクタについては、ゲーム空間に登場している場合は戦闘可能状態に設定される。したがって、
図9に示す状況においては、仲間キャラクタ202は戦闘可能状態であると判定される。
【0105】
また、敵キャラクタについては、敵対するカテゴリのキャラクタ(すなわち、プレイヤキャラクタ、仲間キャラクタ、および、第3勢力キャラクタ)を発見していない状況では、当該敵キャラクタは非戦闘状態に設定され、敵対するカテゴリのキャラクタを発見したことに応じて、当該敵キャラクタは戦闘可能状態に設定される。
図9に示す状況においては、敵キャラクタ203および204は、プレイヤキャラクタ201および仲間キャラクタ202をまだ発見していないので、敵キャラクタ203および204は、非戦闘状態に設定される。
【0106】
なお、本実施形態においては、ゲームシステム1は、各NPCについて、自身と敵対するカテゴリのキャラクタを発見したか否かを判定する。一例として、ゲームシステム1は、NPCの位置および向きに基づいて設定される発見領域内に他のキャラクタが存在する場合、当該NPCが当該他のキャラクタを発見したと判定する。発見領域は、例えば、NPCの正面方向を中心とした左右に所定角度の領域であって、NPCから所定距離内の領域である。なお、発見領域の大きさおよび形状は任意であり、各NPCについて同じであってもよいし、NPCのカテゴリや種類によって異なっていてもよい。
【0107】
なお、本実施形態においては、ゲームシステム1は、NPCが他のキャラクタを発見した場合、当該他のキャラクタを、当該NPCが認識したキャラクタとして記憶しておく。NPCの発見領域内に他のキャラクタが一旦位置した後で発見領域外へと移動した場合であっても、当該他のキャラクタは、当該NPCが認識したキャラクタとして記憶される。本実施形態においては、ゲームシステム1は、各NPCについて、認識したキャラクタを記憶しておく。
【0108】
また、NPCのうちの第3勢力キャラクタについては、敵対するカテゴリのキャラクタ(すなわち、プレイヤキャラクタ、仲間キャラクタ、および、敵キャラクタ)を発見したことがない状況では、当該第3勢力キャラクタは非戦闘状態に設定され、敵対するカテゴリのキャラクタを発見したことに応じて、当該第3勢力キャラクタは戦闘可能状態に設定される。
【0109】
NPCについて戦闘可能状態を判定する方法は任意であり、判定基準も任意であってよい。例えば、他の実施形態においては、仲間キャラクタ202は、敵対するカテゴリのキャラクタ(すなわち、敵キャラクタ、および、第3勢力キャラクタ)を発見したことがない状況では、非戦闘状態に設定され、敵対するカテゴリのキャラクタを発見したことに応じて、戦闘可能状態に設定されてもよい。あるいは、仲間キャラクタ202は、プレイヤキャラクタ201が敵対するカテゴリのキャラクタに発見されたことに応じて、戦闘可能状態に設定されてもよい。また例えば、他の実施形態においては、常に戦闘可能状態に設定される敵キャラクタや第3勢力キャラクタが存在してもよいし、上記以外の条件(例えば、自身が攻撃を受けたこと)に応じて非戦闘状態から戦闘可能状態へと移行するNPCが存在してもよい。
【0110】
また、本実施形態においては、プレイヤキャラクタ201については常時、戦闘可能状態に設定される。なお、プレイヤキャラクタ201についてはプレイヤによって動作が指定されるので、プレイヤキャラクタ201が行う動作は戦闘可能状態か否かの影響を受けない。本実施形態においては、ゲームシステム1は、プレイヤキャラクタ201については、交戦グループに参加させるか否かの判定を常時行うべく、戦闘可能状態に常時設定する。他の実施形態においては、プレイヤキャラクタ201も、所定の判定条件に応じて戦闘可能状態と非戦闘可能状態が切り替えられてもよい。
【0111】
交戦グループを設定する際、ゲームシステム1は、まず、戦闘可能状態であるキャラクタを選出する。戦闘可能状態であるキャラクタが選出された場合、ゲームシステム1は、選出されたキャラクタに関してグループ設定条件を判定することによって、交戦グループを設定するか否かを判定する。ここで、本実施形態においては、交戦グループを設定するために用いられる各種のグループ設定条件(
図10参照)が設定されており、ゲームシステム1は、戦闘可能状態であるキャラクタ毎にグループ設定条件を判定することで、交戦グループの管理を行う。
【0112】
図10は、グループ設定条件の一例を示す図である。本実施形態においては、上記グループ設定条件として、参加条件、生成条件、解散条件、分裂条件、および、統合条件が設定される。参加条件とは、キャラクタが、他のキャラクタが代表となる交戦グループに参加する条件である。生成条件とは、キャラクタ自身が代表となる交戦グループを生成する条件である。解散条件とは、キャラクタ自身が代表となる交戦グループを解散する条件である。分裂条件とは、キャラクタ自身が参加している交戦グループから新たな交戦グループを分裂させる条件である。統合条件とは、キャラクタ自身が代表となる交戦グループを、他の交戦グループに統合させる(具体的には、キャラクタ自身が代表となる交戦グループを消滅させて他の交戦グループに統合させる)条件である。本実施形態においては、ゲームシステム1は、上記のグループ設定条件をキャラクタ毎に判定することで、交戦グループにキャラクタを新たに参加させたり、新たな交戦グループを生成したり、交戦グループを解散したり、交戦グループを分裂させたり、交戦グループを他の交戦グループに統合させたりする。なお、他の実施形態においては、グループ設定条件に含まれる条件は、上記5つの条件に限らず、グループ設定条件は、上記5つの条件のいずれかを含まなくてもよいし、上記5つの条件とは異なる条件を含んでいてもよい。
【0113】
なお、本実施形態においては、上記生成条件が満たされたことに応じて交戦グループが生成された場合、当該生成条件を満たしたキャラクタが当該交戦グループの代表に設定される。交戦グループの解散、分裂、および、統合は、当該交戦グループの代表が解散条件、分裂条件、および、統合条件を満たしたか否かによって判定される。交戦グループの代表は、当該交戦グループの変更(具体的には、解散、分裂、および、統合)の判定に用いられるキャラクタであると言うことができる。
【0114】
また、
図10に示すように、本実施形態においては、グループ設定条件は、キャラクタのカテゴリ毎に設定される。なお、図示しないが、本実施形態においては、第3勢力カテゴリのキャラクタに関するグループ設定条件は、敵カテゴリのキャラクタに関するグループ設定条件と同じである。
【0115】
また、1つのカテゴリに関して設定されるグループ設定条件は、参加条件、生成条件、解散条件、分裂条件、および、統合条件の全てを含む必要はない。例えば、
図10に示す例においては、プレイヤカテゴリに関して設定されるグループ設定条件は、生成条件のみを含む。これは、本実施形態においては、プレイヤキャラクタについては、自身が代表となる交戦グループが優先して生成され、他のキャラクタが代表となる交戦グループにプレイヤキャラクタが参加することがないためである。
【0116】
図9に示す状況において、ゲームシステム1は、戦闘可能状態の各キャラクタについてグループ設定条件を判定することで、交戦グループを設定するか否かを判定する。上述のように、本実施形態においては、ゲームシステム1は、プレイヤキャラクタ201については常時戦闘可能状態であるとし、グループ設定条件を常に判定するものとする。また、プレイヤキャラクタ201については、
図10に示すように、生成条件は「自身が参加する交戦グループが生成されていないこと」である。したがって、ゲームシステム1は、プレイヤキャラクタ201を代表とする交戦グループを常時設定することとなる。なお、プレイヤキャラクタ201については生成条件以外の他の条件は設定されないので、当該他の条件については判定が行われない。
【0117】
次に、敵キャラクタ203および204については、
図9に示す状況においては非戦闘状態であるので、グループ設定条件の判定は行われない。したがって、敵キャラクタ203および204は、プレイヤキャラクタ201を代表とする交戦グループに参加しない。
【0118】
なお、本実施形態においては、敵キャラクタ203および204についても、プレイヤキャラクタ201と同様、「自身が参加する交戦グループが生成されていないこと」とする生成条件が設定されている(
図10参照)。そのため、仮に敵キャラクタ203および204が戦闘可能状態である場合には、敵キャラクタ203および204をそれぞれ代表とする交戦グループが生成されることがある。ただし、
図9に示す状況においては敵キャラクタ203および204は非戦闘状態であるので、敵キャラクタ203および204に関する交戦グループも生成されない。
【0119】
仲間キャラクタ202については、
図9に示す状況において戦闘可能状態であるので、グループ設定条件の判定が行われる。仲間キャラクタ202については、参加条件は、交戦グループの代表となるプレイヤキャラクタ201の位置に基づいて設定されるグループ領域210内に位置し、戦闘ターゲットを設定可能である(すなわち、敵キャラクタまたは第3勢力キャラクタが当該交戦グループに参加している)ことである(
図10参照)。なお、上記グループ領域210は、例えば、プレイヤキャラクタ201から所定距離内の領域である。
図9に示す状況においては、上記のように、敵キャラクタ203および204は交戦グループに参加しないので、仲間キャラクタ202について参加条件は満たされない。したがって、仲間キャラクタ202は、上記交戦グループに参加しない。
【0120】
なお、
図9に示す状況においては、仲間キャラクタ202を代表とする交戦グループは設定されていないので、仲間キャラクタ202に関する解散条件、分裂条件、および、統合条件については判定が行われず、当該交戦グループの解散、分裂、および、統合は行われない。
【0121】
以上より、
図9に示す状況においては、プレイヤキャラクタを代表とする交戦グループは、他のキャラクタを含まない。したがって、上記交戦グループにおいては戦闘ターゲットが設定されることはないので、当該交戦グループは実質的には設定されていないこととなる。
【0122】
図11は、
図9に示す状況から、敵キャラクタ203および204がプレイヤキャラクタ201を発見した状況の一例を示す図である。
図11に示す状況においても
図9に示す状況と同様にして、ゲームシステム1は、グループ設定条件をキャラクタ毎に判定することで、交戦グループの管理を行う。
【0123】
図11に示す状況において、プレイヤキャラクタについては、
図9に示す状況と同様、プレイヤキャラクタ201を代表とする交戦グループG1が設定される。
図11に示す状況においては、敵キャラクタ203および204はプレイヤキャラクタ201を発見しているので、戦闘可能状態となっており、敵キャラクタ203および204についてグループ設定条件の判定が行われる。
【0124】
ここで、敵キャラクタについての参加条件は、交戦グループの代表となるキャラクタ(ここでは、プレイヤキャラクタ)を認識しており、かつ、戦闘ターゲットを設定可能であることである(
図10参照)。なお、「戦闘ターゲットを設定可能である」とは、戦闘ターゲットとなり得るキャラクタ(敵キャラクタにとっては、プレイヤキャラクタ、仲間キャラクタ、または、第3勢力キャラクタ)が交戦グループに参加していることである。
図11に示す状況においては、敵キャラクタ203および204はプレイヤキャラクタ201を発見しているので、敵キャラクタ203および204についてはプレイヤキャラクタ201が上記の「認識されたキャラクタ」として記憶されている。したがって、敵キャラクタ203および204については参加条件が満たされるので、ゲームシステム1は、敵キャラクタ203および204を上記交戦グループG1に参加させる。
【0125】
上記のように、
図11に示す状況において、プレイヤキャラクタ201を代表とする交戦グループに敵キャラクタ203および204が参加する。なお、
図11に示す状況においては、仲間キャラクタ202は、プレイヤキャラクタ201を基準としたグループ領域210内に位置するものとする。したがって、仲間キャラクタ202は上記グループ領域210内に位置し、かつ、戦闘ターゲットを設定可能である(すなわち、敵キャラクタまたは第3勢力キャラクタが交戦グループに参加している)ので、仲間キャラクタ202の参加条件も満たされることとなる。上記より、
図11に示す状況においては、ゲームシステム1は、上記交戦グループに仲間キャラクタ202を参加させる。
【0126】
以上のように、
図11に示す状況においては、各キャラクタ201~204が参加する交戦グループG1が設定される(
図11参照)。このとき、交戦グループG1内の各キャラクタ201~204間で、戦闘ターゲットが設定される(
図11に示す矢印参照)。なお、戦闘ターゲットの詳細な設定方法については後述する。
【0127】
本実施形態においては、ゲームシステム1は、ゲーム中において、上記グループ設定条件の判定を所定時間毎(例えば、1フレーム時間毎)に行う。これによって、各キャラクタの戦闘中においても交戦グループは動的に変化し得る。例えば、
図11に示す状況において、敵キャラクタ203および204がプレイヤキャラクタ201および仲間キャラクタ202によって倒されて消滅した場合、
図9に示す状況と同様の状況となるので、交戦グループG1は実質的に設定されないこととなる。また例えば、
図11に示す状況において、敵キャラクタ203および204とは別の新たな敵キャラクタがプレイヤキャラクタ201を発見した場合には、当該新たな敵キャラクタが交戦グループG1に新たに参加することとなる。
【0128】
図12は、複数のキャラクタが参加する1つの交戦グループの一例を示す図である。
図12に示す状況は、
図11に示す状況から、新たな敵キャラクタ205および206が交戦グループG1に参加した状況である。なお、
図12に示す状況においては、敵キャラクタ205および206の戦闘ターゲットは仲間キャラクタ202に設定されているものとする。
【0129】
図12に示す状況において、仲間キャラクタ202が、プレイヤキャラクタ201を基準としたグループ領域210の外へ移動する場合を考える(
図12参照)。ここで、本実施形態においては、仲間キャラクタ202についての分裂条件は、自身が参加している交戦グループの代表となるプレイヤキャラクタ201を基準としたグループ領域210外に位置し、かつ、自身が戦闘ターゲットとなっていることである(
図10参照)。上記の場合、仲間キャラクタ202についての分裂条件が満たされるので、ゲームシステム1は、交戦グループG1を分裂させる。
【0130】
図13は、
図12に示す状況から交戦グループが分裂された様子の一例を示す図である。仲間キャラクタ202について分裂条件が満たされた場合、ゲームシステム1は、当該仲間キャラクタ202を代表とする新たな交戦グループG2を生成する。このとき、ゲームシステム1は、分裂時において当該仲間キャラクタ202を戦闘ターゲットとしていた敵キャラクタ205および206を、上記新たな交戦グループG2に参加させる。また、ゲームシステム1は、交戦グループG2に参加させた各キャラクタ202,205,206を、元の交戦グループG1から離脱させる。以上により、
図13に示す状況においては、プレイヤキャラクタ201を代表とし、敵キャラクタ203および204が参加する交戦グループG1と、仲間キャラクタ202を代表とし、敵キャラクタ205および206が参加する交戦グループG2とが設定される。これによって、1つの交戦グループが2つの交戦グループに分裂されたこととなる(
図13参照)。
【0131】
なお、本実施形態においては、プレイヤキャラクタおよび敵キャラクタについては、分裂条件は設定されないものとする(
図10参照)。したがって、本実施形態においては、プレイヤキャラクタまたは敵キャラクタが代表となる交戦グループが、分裂により新たに生成されることはない。
【0132】
上記のように、本実施形態においては、第1交戦グループ(例えば、
図12に示す交戦グループG1)に参加し、当該第1交戦グループの代表でないキャラクタ(例えば、仲間キャラクタ202)と、当該第1交戦グループの代表であるキャラクタ(例えば、プレイヤキャラクタ201)との位置関係が、所定の基準よりも遠い位置関係となったこと(例えば、仲間キャラクタ202がグループ領域210の外に出たこと)を少なくとも条件として、ゲームシステム1は、当該第1交戦グループの代表でないキャラクタを代表とする第2交戦グループ(例えば、
図13に示す交戦グループG2)を新たに生成する。
【0133】
ここで、本実施形態においては、キャラクタの戦闘ターゲットは、当該キャラクタと同じ交戦グループに参加するキャラクタのうちから設定される。そのため、仮に、
図13に示すように仲間キャラクタ202がプレイヤキャラクタ201から離れた状況となっても交戦グループの分裂が行われないとすれば、NPCの挙動が不自然になる可能性がある。例えば、敵対するキャラクタであって同じ交戦グループに参加していないキャラクタが近くに配置され、同じ交戦グループに参加しているものの離れた位置にいるキャラクタが戦闘ターゲットに設定される場合には、敵対するキャラクタが近くにいるにもかかわらず、遠くのキャラクタを攻撃するべく、遠くのキャラクタに向かってNPCが移動するといった不自然な挙動が生じる可能性がある。これに対して、本実施形態においては、交戦グループの分裂を行うことによって、開発者の意図に沿った挙動を実現しやすくなり、上記のような不自然な挙動が生じる可能性を低減することができる。
【0134】
なお、本実施形態においては、ゲームシステム1は、分裂条件の判定の際に、代表となる2つのキャラクタの位置関係が所定の基準よりも遠い位置関係であるか否かを、一方のキャラクタの位置に基づいて設定される領域(すなわち、グループ領域210)と、他方のキャラクタの位置とを用いて判定した。ここで、他の実施形態においては、ゲームシステム1は、一方のキャラクタに基づいて設定される領域と、他方のキャラクタに基づいて設定される領域とが重複するか否かによって、上記2つのキャラクタの位置関係が所定の基準よりも遠い位置関係となったか否かを判定してもよい。また例えば、ゲームシステム1は、一方のキャラクタの位置と他方のキャラクタの位置とに基づいて(例えば、2つの位置間の距離が所定距離以下となったか否かに基づいて)、上記2つのキャラクタの位置関係が所定の基準よりも遠い位置関係となったか否かを判定してもよい。また、分裂条件の具体的な内容は任意であり、
図10に示す例に限らず他の条件が用いられてもよい。
【0135】
また、ゲームシステム1は、上記第1交戦グループにおいて上記第2交戦グループの代表となるキャラクタ(
図13に示す例では、仲間キャラクタ202)を戦闘ターゲットとしていた他のキャラクタ(
図13に示す例では、敵キャラクタ205および206)を第2交戦グループに参加させる。これによれば、新たな交戦グループが生成される前後において戦闘ターゲットが変更される可能性を低減することができるので、各NPCの戦闘時の挙動を、開発者の意図に沿った自然なものとすることができる。なお、他の実施形態においては、ゲームシステム1は、上記第2グループを生成する場合であっても、上記第1交戦グループにおいて戦闘ターゲットに設定されていた他のキャラクタを必ずしも第2交戦グループに参加させなくてもよい。例えば、ゲームシステム1は、上記第2交戦グループを生成する時点において各キャラクタについて参加条件を判定することで、第1交戦グループおよび第2交戦グループに参加するキャラクタを決定してもよい。
【0136】
なお、上記他のキャラクタを第2交戦グループに参加させる場合において、第2交戦グループ内における戦闘ターゲットをどのように設定するかは任意である。例えば、本実施形態においては、ゲームシステム1は、上記の場合において、第2交戦グループ内における各キャラクタの戦闘ターゲットを、第2交戦グループの生成前と同じキャラクタ(つまり、第1交戦グループにおいて戦闘ターゲットであったキャラクタ)にする。なお、他の実施形態においては、上記の場合において、ゲームシステム1は、第2交戦グループの生成時に戦闘ターゲットを設定し直す(それによって、戦闘ターゲットが第1交戦グループの時とは異なるものとなる)ようにしてもよい。
【0137】
なお、他の実施形態においては、交戦グループを分裂させる条件は上記に限らず、他の条件であってもよい。また、他の実施形態においては、ゲームシステム1は、仲間キャラクタを代表として交戦グループの分裂を行う他に、他のNPCまたはプレイヤキャラクタを代表として交戦グループの分裂を行うようにしてもよい。また、他の実施形態においては、ゲームシステム1は、交戦グループの分裂を行わなくてもよい。
【0138】
図13に示す状況のように、仲間キャラクタ202が代表となる交戦グループG2が設定される場合、ゲームシステム1は、仲間キャラクタ202について解散条件を判定する。本実施形態においては、仲間キャラクタ202についての解散条件は、自身が代表となる交戦グループにおいて自身が他のNPCの戦闘ターゲットになっていないことである(
図10参照)。したがって、
図13に示す状況から、仮に仲間キャラクタ202が敵キャラクタ205および206を倒した場合には、上記解散条件が満たされることとなるので、ゲームシステム1は交戦グループG2を解散させる。
【0139】
なお、上述したように、グループ設定条件の判定は所定時間毎に繰り返し行われるので、上記解散条件が満たされたことによって交戦グループが解散された後、ゲームシステム1は、当該交戦グループの代表であった仲間キャラクタについて、グループ設定条件を判定する。したがって、交戦グループが解散された時点で当該仲間キャラクタについて参加条件が満たされている場合には、当該仲間キャラクタは参加条件を満たしている交戦グループに参加することとなる。一方、交戦グループが解散された時点で当該仲間キャラクタについて参加条件が満たされていない場合には、当該仲間キャラクタは交戦グループに参加しない。
【0140】
上記のように、本実施形態においては、ゲームシステム1は、交戦グループの代表であるキャラクタ(例えば、仲間キャラクタ)が、他のいずれのキャラクタに関する戦闘ターゲットに設定されていないことを条件として、当該交戦グループを解散させるとともに、解散された当該交戦グループの代表であるキャラクタを参加させる交戦グループをグループ設定条件に基づいて決定する。これによれば、交戦グループが解散された後においてもNPCに、開発者の意図に沿った自然な挙動をとらせることができる。
【0141】
なお、他の実施形態においては、解散条件の内容は任意であり、本実施形態とは異なる内容の解散条件が設定されてもよい。また、解散条件は設定されなくてもよく、このとき、設定された交戦グループは解散されなくてもよい。
【0142】
また、本実施形態において、ゲームシステム1は、仲間キャラクタ202について統合条件を判定する。本実施形態においては、仲間キャラクタ202についての統合条件は、自身が交戦グループの代表であり、かつ、自身よりも優先度が高い他のキャラクタが代表である他の交戦グループのグループ領域内に位置することである(
図10参照)。なお、「自身よりも優先度が高い他のキャラクタ」とは、本実施形態においては、プレイヤキャラクタ、あるいは、自身の交戦グループよりも参加しているキャラクタが多い交戦グループの代表である他の仲間キャラクタである。なお、本実施形態においては、キャラクタのカテゴリに応じて上記優先度が設定されており、プレイヤキャラクタは仲間キャラクタよりも優先度が高く設定されるものとする。また、カテゴリが同じである場合には、参加しているキャラクタが多い方の交戦グループの代表であるキャラクタの優先度が高く設定されるものとする。
【0143】
上記より、例えば
図13に示す状況から、仲間キャラクタ202がプレイヤキャラクタ201の方へ近づくことによって
図12に示す状況へと変化した場合には、仲間キャラクタ202が代表である交戦グループG2が、プレイヤキャラクタ201が代表である交戦グループG1に統合される。その結果、各キャラクタ201~206が参加する1つの交戦グループG1が設定される。なお、統合のための具体的な処理は任意であり、他の実施形態においては、ゲームシステム1は、交戦グループG1と交戦グループG2との両方を一旦解散させ、統合後の交戦グループを新たに生成するようにしてもよい。このとき、統合後の交戦グループの代表は任意であり、統合前の交戦グループの代表とは異なるキャラクタが代表となってもよい。
【0144】
なお、本実施形態においては、敵キャラクタが代表である交戦グループについても統合が行われることがある。敵キャラクタについての統合条件は、自身が交戦グループの代表であり、かつ、自身よりも優先度が高い他のキャラクタが代表である他の交戦グループの代表となるキャラクタを認識していることである(
図10参照)。したがって、敵キャラクタについて上記統合条件が満たされる場合、当該敵キャラクタが代表である交戦グループは、統合条件に係る他の交戦グループに統合される。
【0145】
上記のように、ある交戦グループの代表であるキャラクタと、他の交戦グループの代表であるキャラクタとの位置関係が所定の基準よりも近い位置関係となったこと(例えば、仲間キャラクタ202が、プレイヤキャラクタ201の交戦グループのグループ領域内に位置すること)を少なくとも条件として、ゲームシステム1は、当該ある交戦グループと当該他の交戦グループとを1つの交戦グループに統合する。
【0146】
ここで、互いに異なる交戦グループに参加する各キャラクタが近い位置にいる場合には、あるNPCと敵対するキャラクタであって同じ交戦グループに参加するキャラクタよりも、他の交戦グループに参加するキャラクタの方が当該NPCに近い位置にいる状況もあり得る。このような状況において、敵対するキャラクタ(ただし、他の交戦グループに参加するキャラクタ)が近くにいるにもかかわらず、遠くの敵対するキャラクタに向かって上記NPCが移動して攻撃を行うのは、不自然な挙動である。これに対して、本実施形態においては、上記のように2つの交戦グループを1つに統合することによって、例えば上記の状況において近くの敵対するキャラクタを上記NPCの戦闘ターゲットとして設定することができるので、開発者が意図しない不自然な挙動をNPCがとる可能性を低減することができる。
【0147】
なお、本実施形態においては、ゲームシステム1は、統合条件の判定の際に、代表となる2つのキャラクタの位置関係が所定の基準よりも近い位置関係であるか否かを、一方のキャラクタの位置に基づいて設定される領域と、他方のキャラクタの位置とを用いて判定した。なお、他の実施形態においては、統合条件についても上述の分裂条件と同様、ゲームシステム1は、一方のキャラクタに基づいて設定される領域と、他方のキャラクタに基づいて設定される領域とが重複するか否かによって、上記2つのキャラクタの位置関係が所定の基準よりも近い位置関係となったか否かを判定してもよい。また例えば、ゲームシステム1は、一方のキャラクタの位置と他方のキャラクタの位置とに基づいて(例えば、2つの位置間の距離が所定距離以下となったか否かに基づいて)、上記2つのキャラクタの位置関係が所定の基準よりも近い位置関係となったか否かを判定してもよい。また、統合条件の具体的な内容は任意であり、
図10に示す例に限らず他の条件が用いられてもよい。
【0148】
なお、他の実施形態においては、統合条件の内容は任意であり、本実施形態とは異なる内容の統合条件が設定されてもよい。また、統合条件は設定されなくてもよく、このとき、交戦グループの統合は行われなくてもよい。
【0149】
以上のように、本実施形態においては、ゲームシステム1は、戦闘可能状態にあるNPCが参加する交戦グループを、NPC毎に、当該NPCに設定されるグループ設定条件に基づいて決定する(例えば、NPCが参加する交戦グループを参加条件または統合条件に基づいて決定する、あるいは、NPCが代表となる交戦グループを生成条件または分裂条件に基づいて決定する)。なお、上記「NPC毎に、当該NPCについて設定されるグループ設定条件に基づいて」とは、本実施形態のようにグループ設定条件がカテゴリ毎に設定される態様と、グループ設定条件がNPC毎に設定される態様とのいずれの態様によって交戦グループが決定されてもよい意味である。上記によれば、ゲームシステム1は、戦闘時におけるNPCの挙動をNPC毎に決定することができる。このとき、ゲームシステム1は、NPCの特徴に沿ったグループ設定条件を設定することで、NPCの特徴に応じた挙動をNPCにとらせることも可能である。例えば、好戦的な性格のNPCについては、交戦グループに参加しやすいグループ設定条件を設定することで、戦闘に参加させやすくしたり、臆病な性格のNPCについては、交戦グループに参加しにくいグループ設定条件を設定することで、戦闘に参加しにくくしたりすることも可能である。
【0150】
なお、本実施形態においては、複数のNPCはそれぞれ、複数のカテゴリ(具体的には、仲間カテゴリ、敵カテゴリ、および、第3勢力カテゴリ)のいずれかに分類される。また、グループ設定条件はカテゴリ毎に設定される(
図10参照)。ゲームシステム1は、戦闘可能状態にあるNPCを参加させる交戦グループを、当該NPCが分類されるカテゴリに設定されるグループ設定条件に基づいて決定する。これによれば、ゲームシステム1は、戦闘時におけるNPCの挙動をカテゴリ毎に異ならせることができる。例えば、NPCのカテゴリ毎の特徴に応じた挙動をNPCにとらせることも可能である。また、ゲームシステム1はカテゴリ毎にグループ設定条件を記憶すればよいので、グループ設定条件のデータ量を抑えることができ、また、グループ設定条件のための開発コストを抑えることができる。なお、他の実施形態においては、グループ設定条件はカテゴリ毎に設定される必要はなく、例えばキャラクタ毎に設定されてもよい。
【0151】
また、本実施形態においては、ゲームシステム1は、戦闘可能状態にあるNPCおよびプレイヤキャラクタのうちから交戦グループの代表となるキャラクタを設定し、代表となるキャラクタ毎に交戦グループを生成する。また、ゲームシステム1は、戦闘可能状態にあるNPC(他の実施形態においては、プレイヤキャラクタであってもよい)のうち、代表が設定された交戦グループについての参加条件を満たすNPCを当該交戦グループに参加させる。上記によれば、代表となるキャラクタを設定することで、交戦グループの管理を容易にすることができる。
【0152】
さらに、本実施形態においては、ゲームシステム1は、交戦グループの解散、または、他の交戦グループとの統合を、当該交戦グループの代表となるキャラクタについて設定されるグループ設定条件に基づいて行う。上記によれば、交戦グループの解散および/または統合を、代表となるキャラクタに基づいて容易に判定することができる。なお、本実施形態においては、交戦グループを解散させるための解散条件、および、他の交戦グループと統合させるための統合条件は、カテゴリ毎に設定される。ただし、他の実施形態においては、解散条件および/または統合条件は、カテゴリ毎に設定されなくてもよく、キャラクタ毎、あるいは、キャラクタの種類毎に設定されてもよい。
【0153】
なお、他の実施形態においては、交戦グループについて代表が設定されなくてもよい。また、ゲームシステム1は、交戦グループに参加しているキャラクタ毎に解散条件および統合条件を判定するようにしてもよい。
【0154】
なお、本実施形態においては、プレイヤキャラクタは常に交戦グループの代表に設定される。つまり、ゲームシステム1は、プレイヤキャラクタを、代表でないキャラクタとしては交戦グループに参加させないように、代表となるキャラクタと交戦グループに参加するキャラクタとを設定する。これによれば、例えば他に交戦グループが生成されない状況ではプレイヤキャラクタが代表となる交戦グループにNPCが参加することとなるので、プレイヤキャラクタが他のNPCと戦闘を行う状況が発生しやすくなる。これによって、NPC同士でのみ戦闘が行われてプレイヤキャラクタが戦闘に参加していないといった状況が生じる可能性を低減することができる。また、プレイヤが戦闘のためのゲーム操作を行う機会を増やすことができ、ゲームの興趣性を向上することができる。なお、他の実施形態においては、ゲームシステム1は、NPCが代表となる交戦グループにプレイヤキャラクタを参加させるようにしてもよい。
【0155】
なお、
図9~
図13に示した例では第3勢力キャラクタがゲーム空間に配置されていないが、第3勢力カテゴリについては敵カテゴリと同じグループ設定条件が設定される。したがって、第3勢力キャラクタがゲーム空間に配置される場合も
図9~
図13に示した例と同様の方法で交戦グループの設定が行われる。なお、詳細は後述するが、第3勢力キャラクタについては敵キャラクタとは戦闘ターゲットの設定方法が異なっている。
【0156】
[2-4.戦闘ターゲットを設定する方法の具体例]
次に、交戦グループ内において戦闘ターゲットを設定する方法の一例を、具体例を用いて説明する。ゲームシステム1は、交戦グループに参加する各キャラクタ(すなわち、プレイヤキャラクタおよびNPC)について戦闘ターゲットを設定する処理を、交戦グループ毎に実行する。1つの交戦グループについては、当該交戦グループに参加するキャラクタの戦闘ターゲットを、当該交戦グループに参加する他のキャラクタのうちから設定する。
【0157】
本実施形態においては、ゲームシステム1は、交戦グループが新たに生成された場合、当該交戦グループに参加するキャラクタのそれぞれについて戦闘ターゲットの設定を行う。また、ゲームシステム1は、交戦グループに参加するキャラクタが変更された場合、当該交戦グループに参加するキャラクタのそれぞれについて戦闘ターゲットの再設定を行う。すなわち、ゲームシステム1は、交戦グループが新たに生成された場合の他、交戦グループにキャラクタが新たに参加した場合、および、交戦グループからキャラクタが離脱した場合にも、戦闘ターゲットの設定を行う。なお、交戦グループに参加するキャラクタが変更された場合には、変更前においては意図に沿った自然な挙動で行われていた戦闘が変化し、意図しない不自然な挙動となるおそれがある。これに関して、本実施形態によれば、上記の再設定を行うことで、各キャラクタの戦闘ターゲットを適切に設定することができ、意図に沿った自然な戦闘を実現することができる。例えば新たな敵キャラクタが出現したことに応じて交戦グループに新たなキャラクタが参加した場合や、例えばプレイヤキャラクタが敵キャラクタを倒したことに応じて当該敵キャラクタが交戦グループから離脱した場合においても、各キャラクタの戦闘ターゲットを適切に設定することができる。
【0158】
なお、本実施形態においては、ゲームシステム1は、交戦グループに参加するキャラクタに変更がない間は、当該交戦グループに参加するキャラクタのそれぞれについての戦闘ターゲットを維持する(つまり、戦闘ターゲットの再設定を行わない)。これによれば、交戦グループ内での参加キャラクタに変化がないにも関わらず戦闘ターゲットが変化することで各NPCの挙動が意図しない不自然なものとなる可能性を低減することができる。
【0159】
なお、他の実施形態においては、戦闘ターゲットの設定(再設定を含む意味である)が行われるタイミングは、上記に限らず、上記のタイミングにおいて戦闘ターゲットの設定が行われなくてもよいし、他のタイミングにおいて戦闘ターゲットの設定が行われてもよい。例えば、ゲームシステム1は、交戦グループに参加するキャラクタに変更がない場合であっても、所定時間間隔で戦闘ターゲットの設定を行うようにしてもよい。
【0160】
本実施形態においては、交戦グループ内において各キャラクタの戦闘ターゲットを設定する際、ゲームシステム1はまず、交戦グループに参加するキャラクタを、カテゴリに基づいて2つのタイプに区分する。具体的には、ゲームシステム1は、交戦グループに参加する各キャラクタを、それぞれ、第1タイプと第2タイプとのいずれかに設定する。第1タイプのキャラクタと第2タイプのキャラクタとは、互いに敵対する関係である。すなわち、ゲームシステム1は、第1タイプのキャラクタに関する戦闘ターゲットを、第2タイプのキャラクタのうちから設定し、第2タイプのキャラクタに関する戦闘ターゲットを、第1タイプのキャラクタのうちから設定する。
【0161】
上記のように、本実施形態においては、交戦グループに参加する各キャラクタについて2つのタイプのいずれかを設定することで、敵対する2つの勢力が戦闘を行う場合における戦闘ターゲットの設定を容易に行うことができる。なお、他の実施形態においては、設定されるタイプの種類は2種類に限らず、3種類以上であってもよい。例えば、互いに敵対する関係にある第1タイプおよび第2タイプに加えて、第1タイプおよび第2タイプの両方と敵対する第3タイプが用意されてもよい。また例えば、他の実施形態においては、ゲームシステム1は、タイプを用いずに(すなわち、タイプの設定を行わずに)戦闘ターゲットを設定するようにしてもよい。
【0162】
なお、本実施形態においては、プレイヤキャラクタおよび仲間キャラクタは第1タイプに設定される。これによれば、プレイヤキャラクタと仲間キャラクタとが互いを戦闘ターゲットとすることがないので、これらのキャラクタが共闘する挙動を容易に実現することができる。なお、他の実施形態においては、プレイヤキャラクタおよび仲間キャラクタが常に第1タイプに設定される必要はなく、例えば一定条件下でプレイヤキャラクタと仲間キャラクタとが異なるタイプに設定されてもよい。
【0163】
また、ゲームシステム1は、第3勢力キャラクタについては、交戦グループに参加している他のキャラクタに応じて(より具体的には、他のキャラクタのカテゴリに応じて)、タイプを設定する。
図14は、プレイヤキャラクタ、仲間キャラクタ、敵キャラクタ、および、第3勢力キャラクタが参加する交戦グループの一例を示す図である。
図14に示すように、交戦グループG3に第2タイプとして敵キャラクタ203および204が参加している場合、第3勢力キャラクタ208は第1タイプに設定される。なお、
図14および
図15においては、第2タイプに設定されるキャラクタに斜線を付している。上記より、
図14に示す例においては、第1タイプに設定されるプレイヤキャラクタ201、仲間キャラクタ202、および、第3勢力キャラクタ208については、第2タイプに設定される敵キャラクタ203および204のいずれかが戦闘ターゲットに設定され、第2タイプに設定される敵キャラクタ203および204については、第1タイプに設定されるプレイヤキャラクタ201、仲間キャラクタ202、および、第3勢力キャラクタ208のいずれかが戦闘ターゲットに設定される(
図14に示す矢印参照)。
【0164】
なお、本実施形態においては、交戦グループに第2タイプとして敵キャラクタが参加している場合、プレイヤキャラクタおよび仲間キャラクタが当該交戦グループに参加しているか否かに関わらず、第3勢力キャラクタは第1タイプに設定される。本実施形態においては、敵キャラクタおよび第3勢力キャラクタのみが参加する交戦グループが設定される場合もあるが、この場合には、第3勢力キャラクタが第1タイプに設定され、敵キャラクタが第2タイプに設定される。
【0165】
一方、
図15は、プレイヤキャラクタ、仲間キャラクタ、および、第3勢力キャラクタが参加する交戦グループの一例を示す図である。
図15に示す状況は、
図14に示す状況から、敵キャラクタ203および204が倒されたことによって敵キャラクタ203および204が交戦グループG3から離脱した状況である。
図15に示すように、交戦グループG3に第2タイプとして敵キャラクタが参加していない場合、第3勢力キャラクタ208は第2タイプに設定される。なお、上述のように、プレイヤキャラクタ201および仲間キャラクタ202は第1タイプに設定される。したがって、
図15に示す例においては、第1タイプに設定されるプレイヤキャラクタ201および仲間キャラクタ202については、第2タイプに設定される第3勢力キャラクタ208が戦闘ターゲットに設定され、第2タイプに設定される第3勢力キャラクタ208については、第1タイプに設定されるプレイヤキャラクタ201および仲間キャラクタ202のいずれかが戦闘ターゲットに設定される(
図15に示す矢印参照)。
【0166】
以上より、本実施形態においては、第3勢力キャラクタ208は、敵キャラクタ203および204が存在する間はプレイヤキャラクタ201および仲間キャラクタ202には攻撃してこない一方(
図14参照)、敵キャラクタ203および204が倒された後は、それまで攻撃してこなかった第3勢力キャラクタ208がプレイヤキャラクタ201および仲間キャラクタ202に対して攻撃してくる(
図15参照)、といった状況が生じることがある。このように、本実施形態においては、第3勢力キャラクタは、プレイヤキャラクタおよび仲間キャラクタとともに敵キャラクタを攻撃することもあるし、プレイヤキャラクタおよび仲間キャラクタに敵対することもある。
【0167】
上記のように、本実施形態においては、複数のNPCおよびプレイヤキャラクタはそれぞれ、複数のカテゴリのいずれかに分類され、複数のカテゴリは、第1カテゴリ(具体的には、仲間カテゴリ)と、第1カテゴリに分類されるキャラクタに敵対する第2カテゴリ(具体的には、敵カテゴリ)と、第1カテゴリおよび第2カテゴリとは異なる第3カテゴリ(具体的には、第3勢力カテゴリ)とを含む。ゲームシステム1は、交戦グループに、第1カテゴリのキャラクタと、第3カテゴリのキャラクタとが参加し、第2カテゴリのキャラクタが参加していない場合(
図15参照)、第1カテゴリのキャラクタを第1タイプに設定し、第3カテゴリのキャラクタを第2タイプに設定する。また、ゲームシステム1は、交戦グループに、第1カテゴリのキャラクタと、第2カテゴリのキャラクタと、第3カテゴリのキャラクタとが参加している場合(
図14参照)、第1カテゴリのキャラクタと第3カテゴリのキャラクタとを前記第1タイプに設定し、第2カテゴリのキャラクタを第2タイプに設定する。上記によれば、状況に応じて第1カテゴリのキャラクタと敵対したり、第1カテゴリのキャラクタと共闘したりするような、意図に沿ったNPCの挙動を容易に実現することができる。
【0168】
なお、第3勢力キャラクタについてのタイプの設定方法は上記の方法でなくてもよい。例えば、他の実施形態においては、交戦グループにプレイヤキャラクタまたは仲間キャラクタが参加している場合は、第3勢力キャラクタは第2タイプに設定され、交戦グループにプレイヤキャラクタまたは仲間キャラクタが参加しておらず、敵キャラクタが参加している場合は、第3勢力キャラクタは第1タイプに設定されてもよい。これによれば、ゲームシステム1は、第3勢力キャラクタの挙動を、敵キャラクタに対して敵対するものの、プレイヤキャラクタまたは仲間キャラクタが交戦グループに参加している場合には敵キャラクタとともにプレイヤキャラクタまたは仲間キャラクタを攻撃するような挙動とすることができる。
【0169】
本実施形態においては、ゲームシステム1は、上述のように、各キャラクタに設定されたタイプに基づいて各キャラクタの戦闘ターゲットを設定する。ここで、本実施形態においては、タイプに加えて、下記の第1条件および第2条件を考慮して戦闘ターゲットの設定が行われる。以下、
図16を参照して、戦闘ターゲットの設定方法の一例について説明する。
【0170】
図16は、複数のキャラクタが参加する1つの交戦グループの一例を示す図である。
図16に示す状況においては、交戦グループG4に、プレイヤキャラクタ201、仲間キャラクタ202、および、5体の敵キャラクタ203~207が参加している。
【0171】
第1条件は、キャラクタを戦闘ターゲットとする他のキャラクタに設定される重みの合計が、当該キャラクタに設定される許容数を超えないことである。ここで、本実施形態においては、各キャラクタには、重みおよび許容数の情報が設定される。許容量とは、キャラクタが他のキャラクタの戦闘ターゲットとなることが許容される量を示し、キャラクタがどのくらいの数の他のキャラクタの戦闘ターゲットとなることができるかを示す指標である。また、重みとは、キャラクタの戦闘ターゲットとなる他のキャラクタの許容量に対して当該キャラクタが影響を与える大きさを示す。例えば、あるキャラクタが、重みが1である2体のキャラクタの戦闘ターゲットに設定される場合、当該あるキャラクタに付加される重みは、合計で2である。本実施形態においては、上記第1条件により、キャラクタに付加される重みの合計が当該キャラクタに設定される許容量を超えないように、各キャラクタの戦闘ターゲットが設定される。
【0172】
図16に示す例においては、プレイヤキャラクタ201の許容量は無限大に設定され、仲間キャラクタ202の許容量は2に設定されるものとする(
図16に示す各キャラクタ201および202に付された円内の数字参照)。また、各敵キャラクタ203~206の重みは1に設定され、敵キャラクタ207の重みは3に設定されるものとする(
図16に示す各キャラクタ203~207に付された数字参照)。なお、キャラクタの許容量および重みは、任意の値に設定されてよい。本実施形態においては、キャラクタの種類(例えば、キャラクタの種族)毎に設定される。例えば、強力なキャラクタの許容量および重みについては大きい値に設定されてもよい。
【0173】
図16に示す例においては、第1条件を満たすべく、仲間キャラクタ202に関しては、許容量である2を超えないように戦闘ターゲットが設定される。すなわち、重みが1である敵キャラクタ203~206に関しては、仲間キャラクタ202を戦闘ターゲットとする敵キャラクタの数は最大で2体であり、3体以上の敵キャラクタが仲間キャラクタ202を戦闘ターゲットとすることはない。また、重みが3である敵キャラクタ207については、仲間キャラクタ202を戦闘ターゲットとすることはない。
【0174】
一方、プレイヤキャラクタ201については、許容量が無限大であるので、プレイヤキャラクタ201を戦闘ターゲットとする敵キャラクタの数に上限はない。
【0175】
上記のように、本実施形態においては、第1タイプのキャラクタ(例えば、プレイヤキャラクタおよび仲間キャラクタ)には、当該キャラクタが第2のタイプのキャラクタ(例えば、敵キャラクタ)の戦闘ターゲットとなる場合における許容量を示す情報が少なくとも設定される。また、第2タイプのキャラクタには、当該キャラクタが第1タイプのキャラクタを戦闘ターゲットとする場合における当該キャラクタの重みを示す情報が少なくとも設定される。ゲームシステム1は、交戦グループ内において、第1タイプの1つのキャラクタを戦闘ターゲットとする、第2タイプの1以上のキャラクタに設定される各重みに基づく大きさが、当該戦闘ターゲットとなる第1タイプのキャラクタに設定される許容量を超えないように、第2タイプのキャラクタに関する戦闘ターゲットを設定する。これによれば、各キャラクタに許容量を設定することによって、意図せず1つのキャラクタに戦闘ターゲットが集中する(例えば、1つのキャラクタのみが戦闘ターゲットとなる)ことによって各キャラクタの挙動が意図しない不自然なものになる可能性を低減することができる。また、各キャラクタに重みを設定することによって、例えば特定の第1タイプのキャラクタが特定の第2タイプのキャラクタの戦闘ターゲットに設定されないようにする等、キャラクタ毎に特徴を持たせて戦闘ターゲットの設定を行うことができる。なお、他の実施形態においては、ゲームシステム1は、各キャラクタについて許容量および重みの情報を設定しなくてもよく、許容量および重みを用いない方法で戦闘ターゲットを設定してもよい。
【0176】
なお、上記「許容量を示す情報」および「重みを示す情報」とは、数値である必要はなく、許容量の大きさまたは重みの大きさを示す任意の指標であってよい。例えば、「許容量を示す情報」は、高レベル、中レベル、および、低レベルのいずれか1つを示し、「重みを示す情報」は、大、中、および、小のいずれか1つを示すものであってもよい。このとき、許容量が高レベルに設定されるキャラクタについては、例えば、重みが大であるキャラクタについて1体まで、重みが中であるキャラクタについては2体まで、重みが小であるキャラクタについては5体までの戦闘ターゲットに設定されることが許容されてもよい。また例えば、許容量が低レベルに設定されるキャラクタについては、例えば、重みが大または中であるキャラクタの戦闘ターゲットに設定されることは禁止され、重みが小であるキャラクタ3体までの戦闘ターゲットに設定されることが許容されてもよい。
【0177】
上記「重みに基づく大きさ」とは、本実施形態においては各キャラクタの重みを示す数値の合計値であるが、これに限らない。上記「重みに基づく大きさ」とは、各キャラクタの重みを反映した大きさであって、重みの大きさに応じて大きくなるものであってよい。例えば、「重みに基づく大きさ」とは、各キャラクタの重みに対してキャラクタ毎の係数を乗算した上で合計した値であってもよい。また、上記「重みを示す情報」が数値ではなく、大、中、および、小のいずれか1つを示すものである場合、「重みに基づく大きさ」とは、例えば、「重みが大であるキャラクタ1体分の大きさ」や、「重みが小であるキャラクタ3体分の大きさ」として表されるものであってもよい。
【0178】
なお、本実施形態においては、プレイヤキャラクタは第1タイプに設定され、プレイヤキャラクタの許容量は、第1タイプのNPC(例えば、仲間キャラクタまたは第3勢力キャラクタ)の許容量よりも大きく(本実施形態においては、無限大に)設定される。これによれば、プレイヤキャラクタは、他の第1タイプのNPCよりも多くの敵キャラクタの戦闘ターゲットに設定されやすくなる。例えば、多くの敵キャラクタが交戦グループに参加している場合に、多くの敵キャラクタがプレイヤキャラクタを狙って攻撃してくる状況が生じやすくなる。上記の場合において、仮にプレイヤキャラクタを狙って攻撃してくる敵キャラクタが少ないと、戦闘のためのゲーム操作を行う機会をプレイヤは十分に得られず、戦闘のためのゲーム操作を行う楽しみをプレイヤが十分に得ることができないおそれがある。これに対して、本実施形態によれば、上記の場合においてプレイヤキャラクタが戦闘を行う機会を増やすことができ、ゲームの興趣性を向上することができる。なお、他の実施形態においては、各キャラクタに設定される許容量は可変であってもよい。ゲームシステム1は、例えば、プレイヤキャラクタが参加する交戦グループにおいて、当該交戦グループに参加するキャラクタのうちでプレイヤキャラクタの許容量が最も大きくなるように、各キャラクタの許容量を動的に変化させてもよい。また、各キャラクタに設定される許容量は任意であり、他の実施形態においては、プレイヤキャラクタの許容量よりも大きい許容量が設定されるNPCがあってもよい。
【0179】
第2条件は、同タイプの各キャラクタ間において、当該キャラクタをそれぞれ戦闘ターゲットとする他のキャラクタに設定される重みの合計が、できるだけ均等になることである。なお、本実施形態においては、上記第1条件は第2条件よりも優先される条件であり、ゲームシステム1は、上記の第1条件が満たされることを前提として、第2条件を満たすように戦闘ターゲットを設定する。
【0180】
具体的には、本実施形態においては、ゲームシステム1は、あるキャラクタの戦闘ターゲットを設定する際、他のタイプの複数のキャラクタのうち、当該あるキャラクタの重みを加算しても許容量を超えないキャラクタであって、付加されている重みの合計が最も少ないキャラクタを、戦闘ターゲットに設定する。したがって、例えば、敵キャラクタの戦闘ターゲットを設定する際において、敵キャラクタの戦闘ターゲットになっていない仲間キャラクタが存在する状態では、プレイヤキャラクタが複数の敵キャラクタの戦闘ターゲットになることはない。
【0181】
なお、本実施形態においては、上記第2条件として、キャラクタを戦闘ターゲットとする他のキャラクタに設定される重みの合計に関する条件が用いられたが、他の実施形態においては、キャラクタを戦闘ターゲットとする他のキャラクタの人数に関する条件が第2条件として用いられてもよい。例えば、全てのキャラクタに設定される重みが1である場合、第2条件は、キャラクタを戦闘ターゲットとする他のキャラクタの人数に関する条件であるということもできる。つまり、他の実施形態においては、キャラクタを戦闘ターゲットとする他のキャラクタの人数が、上記重みの合計として取り扱われてもよい。
【0182】
上記のように、本実施形態においては、交戦グループ内において、戦闘ターゲットになっていない第1タイプのキャラクタ(例えば、プレイヤキャラクタまたは仲間キャラクタ)を、戦闘ターゲットになっている第1タイプのキャラクタよりも優先して、第2のタイプのキャラクタ(例えば、敵キャラクタ)に関する戦闘ターゲットに設定する。これによれば、戦闘ターゲットをバランスよく設定することができる。例えば、敵キャラクタの戦闘ターゲットに設定されないために一部の仲間キャラクタは全く攻撃を受けない一方で、多数の敵キャラクタの戦闘ターゲットに設定されたために他の仲間キャラクタは多くの攻撃を受けるといった、不自然な挙動が生じる可能性を低減することができる。なお、他の実施形態においては、同タイプの複数のキャラクタのうちの一部のキャラクタが集中して戦闘ターゲットに設定されてもよい。
【0183】
以上より、
図16に示す例においては、プレイヤキャラクタ201は、3体の敵キャラクタ205~207の戦闘ターゲットとなり、仲間キャラクタ202は、2体の敵キャラクタ203および204の戦闘ターゲットとなるように、戦闘ターゲットが設定される。このように、本実施形態においては、上記第1条件および第2条件を用いることで、バランスよく戦闘ターゲットを設定することができ、戦闘時における各NPCの挙動を自然なものにすることができる。
【0184】
なお、他の実施形態においては、戦闘ターゲットを設定する具体的な方法は任意である。例えば、他の実施形態においては、戦闘ターゲットを設定するために、上記第1条件および第2条件のいずれかまたは両方が用いられなくてもよいし、他の条件が用いられてもよい。また、上記第1条件および第2条件が用いられない場合には、上述の許容量および重みの情報が各キャラクタに設定されなくてもよい。
【0185】
また、本実施形態においては、ゲームシステム1は、上記の第1条件および第2条件を満たすことを前提に、所定の優先ルールに基づいて戦闘ターゲットを設定する。第1の優先ルールは、第1タイプについては、プレイヤキャラクタが優先して戦闘ターゲットに設定されるというルールである。したがって、例えば、プレイヤキャラクタと、仲間キャラクタと、敵キャラクタとが1体ずつ参加する交戦グループにおいては、仲間キャラクタよりもプレイヤキャラクタが優先される結果、敵キャラクタの戦闘ターゲットはプレイヤキャラクタとなる。これによれば、プレイヤキャラクタが戦闘を行う機会を増やすことができるので、ゲームの興趣性を向上することができる。なお、他の実施形態においては、キャラクタのカテゴリ毎に優先順位が設定されてもよいし、キャラクタの種類(ここでは、カテゴリよりも詳細な区分を示す意味である)毎に優先順位が設定されてもよい。
【0186】
また、第2の優先ルールは、キャラクタ自身に近い他のキャラクタが優先して戦闘ターゲットに設定されるというルールである。これによれば、NPCが近くに敵対するキャラクタがいるにも関わらず遠くの敵対するキャラクタに向かって移動するといった不自然な挙動が生じる可能性を低減することができる。
【0187】
なお、本実施形態においては、上記優先ルールとして上記第1優先ルールおよび第2優先ルールが用いられ、第2優先ルールよりも第1優先ルールが優先されるものとする。ただし、他の実施形態においては、優先ルールの具体的な内容は任意であり、他のルールが用いられてもよい。また、第1優先ルールよりも第2優先ルールが優先されてもよい。また、他の実施形態においては、ゲームシステム1は、優先ルールを用いずに戦闘ターゲットを設定してもよい。
【0188】
なお、
図16においては示していないが、第1タイプのキャラクタ(すなわち、プレイヤキャラクタ201および仲間キャラクタ202)の戦闘ターゲットについても、第2タイプのキャラクタの戦闘ターゲットと同様に設定される。すなわち、ゲームシステム1は、上記第1条件および第2条件を満たすように、かつ、上記第1優先ルールおよび第2優先ルールに従って第1タイプのキャラクタの戦闘ターゲットを設定する。例えば、
図16に示す状況において、プレイヤキャラクタ201および仲間キャラクタ202の重みはそれぞれ1であり、各敵キャラクタ203~207の許容量はそれぞれ1であるとする。このとき、プレイヤキャラクタ201に最も近い敵キャラクタ205がプレイヤキャラクタ201の戦闘ターゲットとなり、仲間キャラクタ202に最も近い敵キャラクタ204が仲間キャラクタ202の戦闘ターゲットとなる。
【0189】
なお、本実施形態においては、プレイヤキャラクタ201についても戦闘ターゲットを設定している理由は、第1タイプの各NPCについての戦闘ターゲットを設定する際における上記の第1条件および第2条件の判定にプレイヤキャラクタ201の重みを用いるためである。なお、他の実施形態においては、ゲームシステム1は、プレイヤキャラクタ201については戦闘ターゲットを設定せず、第1タイプのキャラクタについての戦闘ターゲットを設定する際における第1条件および第2条件の判定を、プレイヤキャラクタを無視して行うようにしてもよい。また、本実施形態においては、プレイヤキャラクタ201についての戦闘ターゲットの情報は、上記の第1条件および第2条件の判定に用いられるのみであるが、他の実施形態においては、ゲームシステム1は、例えば、プレイヤキャラクタ201の戦闘ターゲットである敵キャラクタをプレイヤに通知する(例えば、当該敵キャラクタにマーカを付して表示する)ようにしてもよい。
【0190】
上記のように、ゲームシステム1は、交戦グループに参加している各キャラクタについて戦闘ターゲットを設定する。ただし、上記第1条件および第2条件を満たすために、上記各キャラクタのうち一部のキャラクタについて戦闘ターゲットが設定されないことがあってもよい。例えば、交戦グループに参加する第1タイプのキャラクタが多く、第2タイプのキャラクタが少ない場合、第1タイプの全てのキャラクタについて戦闘ターゲットを設定すると、第1条件が満たすことができないこともありうる。このとき、ゲームシステム1は、第1タイプの一部のキャラクタについては戦闘ターゲットを設定しないようにしてもよい。
【0191】
なお、戦闘ターゲットを設定するための具体的な処理のアルゴリズムは任意である。例えば、本実施形態においては、ゲームシステム1は、交戦グループに参加しているキャラクタと当該キャラクタの戦闘ターゲットとなり得るキャラクタとの全ての組み合わせを算出し、算出された組み合わせのうちから、第1条件および第2条件を満たす組み合わせを選出する。このとき、ゲームシステム1は、算出された全ての組み合わせを上記の優先ルールに従った順序に並べ替え、第1条件および第2条件を満たす組み合わせをこの順序で選出することで、優先ルールを考慮して組み合わせを選出することができる。
【0192】
[2-5.キャラクタの動作の制御]
ゲームシステム1は、各NPCについて設定された戦闘ターゲットに基づいて、各NPCに戦闘に関する動作を行わせる。戦闘に関する動作とは、例えば、攻撃対象であるキャラクタに対する攻撃動作や、当該攻撃対象の方へ移動する動作である。
【0193】
本実施形態においては、上述のように、NPCは、戦闘ターゲットに設定された他のキャラクタを必ずしも攻撃対象とするわけではない。すなわち、ゲームシステム1は、戦闘ターゲットに設定されたキャラクタをNPCの実際の攻撃対象に一義的に決定するわけではなく、攻撃対象となるキャラクタを、戦闘ターゲットに設定されたキャラクタを考慮して決定する。本実施形態においては、ゲームシステム1は、下記の対象決定ルールに基づいてNPCの攻撃対象を決定する。
【0194】
第1の対象決定ルールは、当該NPCの戦闘ターゲットと、当該NPCが認識したキャラクタとして記憶されている他のキャラクタとに基づくルールである。具体的には、第1の対象決定ルールは、「戦闘ターゲットのキャラクタが、当該NPCが認識したキャラクタとして記憶されている場合、当該キャラクタを攻撃対象とし、戦闘ターゲットのキャラクタが、当該NPCが認識したキャラクタとして記憶されていない場合、当該キャラクタを攻撃対象とせず、当該NPCが認識したキャラクタとして記憶されている他のキャラクタのうちから攻撃対象を決定する」というものである。これによれば、NPCが認識していない(例えば、NPCから離れた位置にいる)他のキャラクタが攻撃対象となることで、例えば離れた位置にいるキャラクタに向かって当該NPCが移動するといった不自然な挙動が生じる可能性を低減することができる。
【0195】
第2の対象決定ルールは、NPCの戦闘ターゲットと、当該NPCに特定の攻撃を行った他のキャラクタの有無とに基づくルールである。具体的には、第2の対象決定ルールは、「NPCに特定の攻撃を行った他のキャラクタが存在する場合、当該他のキャラクタを攻撃対象とし、NPCに特定の攻撃を行った他のキャラクタが存在しない場合、戦闘ターゲットのキャラクタを攻撃対象とする」というルールである。なお、上記特定の攻撃とは、例えば、必殺技等の強力な攻撃や、特定のアイテム(例えば、爆弾)を用いた攻撃や、当該NPCの弱点となる種類の攻撃等、通常の攻撃よりも当該NPCに対して有効な攻撃である。これによって、NPCの挙動をより自然なものとすることができる。
【0196】
上記のように、本実施形態においては、ゲームシステム1は、NPCについて設定された戦闘ターゲットと、当該NPCについて設定された対象決定ルールとに基づいて、当該NPCが攻撃動作を行う対象を決定する。これによれば、上述したように、戦闘ターゲットを設定する処理と、攻撃対象を決定する処理とを分けることができるので、開発者が意図する挙動を各NPCに行わせやすくなる。また、状況に応じてNPCの実際の攻撃対象を変化させることができるので、NPCの挙動をより自然なものとすることができる。なお、他の実施形態においては、攻撃対象の決定方法は任意であり、例えば、戦闘ターゲットが常に攻撃対象に決定されてもよい。
【0197】
上記のようにしてNPCの攻撃対象が決定されると、ゲームシステム1は、当該NPCが行うべき動作の内容を決定し、決定された動作を行うようにNPCを制御する。例えば、NPCは、攻撃対象であるキャラクタに対する攻撃を行う動作や、当該攻撃対象であるキャラクタの方へ移動する動作を行うように制御される。
【0198】
また、本実施形態においては、ゲームシステム1は、NPCの動作内容を決定する際、戦闘ターゲットの位置を参照しない。つまり、ゲームシステム1は、NPCについて設定された戦闘ターゲットの位置を用いずに、当該NPCの動作内容を決定する。ここで、本実施形態においては、NPCが認識していないキャラクタが当該NPCについての戦闘ターゲットとして設定される場合もある。このような場合において、NPCの動作内容を決定する際において戦闘ターゲットであるキャラクタの位置が用いられると、NPCは、まだ認識していないはずの当該キャラクタの方へ移動するといった、不自然な挙動をとるおそれがある。そのため、本実施形態においては、戦闘ターゲットの位置を用いずにNPCの動作内容を決定することで、上記のような不自然な挙動をNPCがとる可能性を低減する。なお、上記の場合において、NPCに行わせる動作の内容は任意であるが、例えば、ゲームシステム1は、NPCが認識しているキャラクタの方へ当該NPCを移動させる。これによれば、NPCの挙動を自然なものとすることができる。なお、他の実施形態においては、ゲームシステム1は、NPCについて設定された戦闘ターゲットの位置に基づいて当該NPCの動作内容を決定するようにしてもよい。
【0199】
なお、NPCの攻撃対象および動作内容を決定するためのアルゴリズム(上記の対象決定ルールを含む)は、NPC毎、あるいは、NPCの種類毎に設定されてもよい。これによって、例えば、特定のNPCについて、他のキャラクタから攻撃されても戦闘ターゲットを狙い続けるような挙動をとらせたり、戦闘ターゲットに近づかずに遠くから攻撃を行うような挙動をとらせたりすることも可能であり、NPC毎、あるいは、NPCの種類毎に、NPCの挙動に特徴を持たせることができる。
【0200】
[3.ゲームシステムにおける処理の具体例]
次に、
図17~
図20を参照して、ゲームシステム1における情報処理の具体例について説明する。
【0201】
図17は、ゲームシステム1における情報処理に用いられる各種データの一例を示す図である。
図17に示す各種データは、本体装置2がアクセス可能な記憶媒体(例えば、フラッシュメモリ84、DRAM85、および/または、スロット23に装着されたメモリカード等)に記憶される。
【0202】
図17に示すように、ゲームシステム1は、ゲームプログラムを記憶する。ゲームプログラムは、本実施形態におけるゲーム処理(具体的には、
図18~
図20に示す処理)を実行するためのゲームプログラムである。本実施形態においては、上述のグループ設定条件を示すデータは、ゲームプログラムに含まれる。また、ゲームシステム1は、キャラクタデータ、および、交戦グループデータを記憶する。
【0203】
キャラクタデータは、ゲーム空間に登場するキャラクタ(すなわち、プレイヤキャラクタおよびNPC)に関するデータである。ゲームシステム1は、キャラクタ毎にキャラクタデータを記憶する。キャラクタデータは、キャラクタに関する各種の情報(例えば、ゲーム空間における位置および向き、ならびに、キャラクタの状態等)を示すデータを含む。また、本実施形態においては、キャラクタデータは、キャラクタが認識したキャラクタを示すデータを含む。
【0204】
交戦グループデータは、ゲーム中に設定される交戦グループに関するデータである。ゲームシステム1は、設定されている交戦グループ毎に交戦グループデータを記憶する。本実施形態においては、交戦グループデータは、代表データ、メンバーデータ、タイプデータ、および、戦闘ターゲットデータを含む。代表データは、交戦グループの代表となるキャラクタを示す。メンバーデータは、交戦グループに参加している、代表以外のキャラクタを示す。タイプデータは、交戦グループに参加している各キャラクタに設定されるタイプ(すなわち、第1タイプまたは第2タイプ)を示す。戦闘ターゲットデータは、交戦グループに参加している各キャラクタの戦闘ターゲットとなるキャラクタを示す。
【0205】
図18は、ゲームシステム1によって実行されるゲーム処理の流れの一例を示すフローチャートである。
図18に示すゲーム処理は、例えば、上記ゲームプログラムの実行中において、ゲームを開始する指示がプレイヤによって行われたことに応じて開始される。
【0206】
なお、本実施形態では、本体装置2のプロセッサ81が、ゲームシステム1に記憶されている上記ゲームプログラムを実行することによって、
図18~
図20に示す各ステップの処理を実行するものとして説明する。ただし、他の実施形態においては、上記各ステップの処理のうちの一部の処理を、プロセッサ81とは別のプロセッサ(例えば、専用回路等)が実行するようにしてもよい。また、ゲームシステム1が他の情報処理装置(例えば、サーバ)と通信可能である場合、
図18~
図20に示す各ステップの処理の一部は、他の情報処理装置において実行されてもよい。また、
図18~
図20に示す各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。
【0207】
また、プロセッサ81は、
図18~
図20に示す各ステップの処理を、メモリ(例えば、DRAM85)を用いて実行する。すなわち、プロセッサ81は、各処理ステップによって得られる情報(換言すれば、データ)をメモリに記憶し、それ以降の処理ステップにおいて当該情報を用いる場合には、メモリから当該情報を読み出して利用する。
【0208】
図18に示すステップS1において、プロセッサ81は、ゲーム空間に登場する各キャラクタのうち、条件を満たすキャラクタについて戦闘可能状態に設定する。具体的には、プレイヤキャラクタおよび仲間キャラクタについては、プロセッサ81は、ゲーム空間に登場している場合は常に戦闘可能状態に設定する。また、敵キャラクタおよび第3勢力キャラクタについては、プロセッサ81は、敵対するキャラクタを発見したことを条件に戦闘可能状態に設定する。なお、プロセッサ81は、戦闘可能状態に設定されたキャラクタについて、戦闘可能状態であることを示すように、メモリに記憶されているキャラクタデータを更新する。ステップS1の次にステップS2の処理が実行される。
【0209】
ステップS2において、プロセッサ81は、交戦グループの管理を行うための交戦グループ管理処理を実行する。以下、
図19を参照して、交戦グループ管理処理の詳細な流れについて説明する。
【0210】
図19は、
図18に示すステップS2の交戦グループ管理処理の詳細な流れの一例を示すサブフローチャートである。交戦グループ管理処理においては、まずステップS11において、プロセッサ81は、ゲーム空間に配置されている各キャラクタのうちから、戦闘可能状態にあるキャラクタを1体選択する。このとき、プロセッサ81は、今回の交戦グループ管理処理におけるステップS11~S22の処理ループにおいてまだ選択されていないキャラクタを選択する。ステップS11の次にステップS12の処理が実行される。
【0211】
ステップS12において、プロセッサ81は、ステップS11で選択されたキャラクタについて、参加条件が満たされるか否かを判定する。すなわち、プロセッサ81は、現時点で設定されている1以上の交戦グループ(すなわち、メモリに記憶されている交戦グループデータが示す交戦グループ)のそれぞれについて、ステップS11で選択されたキャラクタが参加条件を満たすか否かを判定する。なお、ステップS11で選択されたキャラクタのカテゴリについて参加条件が設定されていない場合(すなわち、当該キャラクタがプレイヤキャラクタである場合)、プロセッサ81は、参加条件は満たされないと判定する。ステップS12の判定結果が肯定である場合、ステップS13の処理が実行される。一方、ステップS12の判定結果が否定である場合、ステップS14の処理が実行される。
【0212】
ステップS13において、プロセッサ81は、ステップS11で選択されたキャラクタを、参加条件が満たされた交戦グループに参加させる。具体的には、プロセッサ81は、メモリに記憶されている、上記交戦グループに関する交戦グループデータに含まれるメンバーデータを、上記キャラクタを含むように必要に応じて更新する。なお、上記キャラクタが上記交戦グループに既に参加している場合には、上記メンバーデータには当該キャラクタのデータが含まれるので、この場合はプロセッサ81はメンバーデータを更新しなくてもよい。ステップS13の次に、後述するステップS23の処理が実行される。
【0213】
一方、ステップS14において、プロセッサ81は、ステップS11で選択されたキャラクタを、参加条件が満たされていない交戦グループから離脱させる。具体的には、プロセッサ81は、メモリに記憶されている各交戦グループデータに含まれる各メンバーデータを、上記キャラクタを含まないように必要に応じて更新する。なお、上記キャラクタが上記交戦グループから参加していない場合には、上記各メンバーデータには当該キャラクタのデータは含まれないので、この場合はプロセッサ81はメンバーデータを更新しなくてもよい。ステップS14の次にステップS15の処理が実行される。
【0214】
ステップS15において、プロセッサ81は、ステップS11で選択されたキャラクタについて、生成条件が満たされるか否かを判定する。なお、ステップS11で選択されたキャラクタのカテゴリについて生成条件が設定されていない場合(すなわち、当該キャラクタが仲間キャラクタである場合)、プロセッサ81は、生成条件は満たされないと判定する。ステップS15の判定結果が肯定である場合、ステップS16の処理が実行される。一方、ステップS15の判定結果が否定である場合、ステップS17の処理が実行される。
【0215】
ステップS16において、プロセッサ81は、ステップS11で選択されたキャラクタを代表とする交戦グループを生成する。具体的には、プロセッサ81は、上記キャラクタを示す代表データを含む交戦グループデータを新たに生成してメモリに記憶する。ステップS15の次に、後述するステップS23の処理が実行される。
【0216】
ステップS17において、プロセッサ81は、ステップS11で選択されたキャラクタについて、解散条件が満たされるか否かを判定する。なお、ステップS11で選択されたキャラクタのカテゴリについて解散条件が設定されていない場合(すなわち、当該キャラクタが仲間キャラクタ以外のカテゴリに分類される場合)、プロセッサ81は、解散条件は満たされないと判定する。ステップS17の判定結果が肯定である場合、ステップS18の処理が実行される。一方、ステップS17の判定結果が否定である場合、ステップS19の処理が実行される。
【0217】
ステップS18において、プロセッサ81は、ステップS11で選択されたキャラクタを代表とする交戦グループを解散させる。具体的には、プロセッサ81は、上記キャラクタを示す代表データを含む交戦グループデータをメモリから削除する。ステップS18の次に、後述するステップS23の処理が実行される。
【0218】
ステップS19において、プロセッサ81は、ステップS11で選択されたキャラクタについて、分裂条件が満たされるか否かを判定する。なお、ステップS11で選択されたキャラクタのカテゴリについて分裂条件が設定されていない場合(すなわち、当該キャラクタが仲間キャラクタ以外のカテゴリに分類される場合)、プロセッサ81は、分裂条件は満たされないと判定する。ステップS19の判定結果が肯定である場合、ステップS20の処理が実行される。一方、ステップS19の判定結果が否定である場合、ステップS21の処理が実行される。
【0219】
ステップS20において、プロセッサ81は、ステップS11で選択されたキャラクタを代表とする交戦グループを分裂させる。具体的には、プロセッサ81は、上記キャラクタを示す代表データを含み、上記キャラクタを戦闘ターゲットとしていた他のキャラクタを示すメンバーデータを含む交戦グループデータを新たに生成し、メモリに記憶する。また、プロセッサ81は、分裂元となる交戦グループを示す交戦グループデータに含まれるメンバーデータが示すキャラクタから、新たに生成された交戦グループに参加したキャラクタを削除するように、当該メンバーデータを更新する。これによって、分裂条件を満たしたキャラクタが参加していた交戦グループから、上記キャラクタが代表となるとともに、当該キャラクタを戦闘ターゲットとしていた他のキャラクタが参加する交戦グループが分裂したこととなる。ステップS20の次に、後述するステップS23の処理が実行される。
【0220】
ステップS21において、プロセッサ81は、ステップS11で選択されたキャラクタについて、統合条件が満たされるか否かを判定する。なお、ステップS11で選択されたキャラクタのカテゴリについて統合条件が設定されていない場合(すなわち、当該キャラクタがプレイヤキャラクタである場合)、プロセッサ81は、統合条件は満たされないと判定する。ステップS21の判定結果が肯定である場合、ステップS22の処理が実行される。一方、ステップS21の判定結果が否定である場合、ステップS23の処理が実行される。
【0221】
ステップS22において、プロセッサ81は、ステップS11で選択されたキャラクタを代表とする交戦グループを、統合条件が満たされた他の交戦グループに統合する。具体的には、プロセッサ81は、上記キャラクタを示す代表データを含む交戦グループデータをメモリから削除するとともに、当該交戦グループデータが示す交戦グループに参加していた各キャラクタを示すメンバーデータを含むように、上記他の交戦グループを示す交戦グループを更新する。これによって、ステップS11で選択されたキャラクタを代表とする交戦グループに参加していた各キャラクタが、統合条件が満たされた他の交戦グループに組み込まれ、2つの交戦グループが統合されたこととなる。ステップS22の次にステップS23の処理が実行される。
【0222】
ステップS23において、プロセッサ81は、ゲーム空間に配置されているキャラクタを上記ステップS11において全て選択したか否かを判定する。ステップS23の判定結果が否定である場合、ステップS11の処理が再度実行される。以降、全てのキャラクタがステップS11において選択されるまで、ステップS11~S23における処理ループが繰り返し実行される。一方、ステップS23の判定結果が肯定である場合、プロセッサ81は交戦グループ管理処理を終了する。
【0223】
ステップS2の次のステップS3において、プロセッサ81は、戦闘ターゲットの設定を行うための戦闘ターゲット設定処理を実行する。以下、
図20を参照して、戦闘ターゲット設定処理の詳細な流れについて説明する。
【0224】
図20は、
図18に示すステップS3の戦闘ターゲット設定処理の詳細な流れの一例を示すサブフローチャートである。戦闘ターゲット設定処理においては、まずステップS31において、プロセッサ81は、現時点で設定されている交戦グループ(すなわち、メモリに記憶されている交戦グループデータが示す交戦グループ)のうちから1つを選択する。このとき、プロセッサ81は、今回の戦闘ターゲット設定処理におけるステップS31~S35の処理ループにおいてまだ選択されていない交戦グループを選択する。なお、後述するステップS32~S34の処理は、ステップS31で選択された交戦グループを示す(具体的には、交戦グループデータに参加する各キャラクタを示す)交戦グループデータを用いて行われる。ステップS31の次にステップS32の処理が実行される。
【0225】
ステップS32において、プロセッサ81は、ステップS31で選択された交戦グループについて、参加しているキャラクタに変更があったか否かを判定する。すなわち、上記ステップS2における交戦グループ管理処理において、上記交戦グループが新たに生成された場合(分裂によって生成される場合を含む)、上記交戦グループに新たなキャラクタが参加した場合(統合によって参加する場合を含む)、または、上記交戦グループからキャラクタが離脱した場合には、プロセッサ81は、参加しているキャラクタに変更があったと判定する。ステップS32の判定結果が肯定である場合、ステップS33の処理が実行される。一方、ステップS32の判定結果が否定である場合、後述するステップS35の処理が実行される。
【0226】
ステップS33において、プロセッサ81は、ステップS31で選択された交戦グループに参加している各キャラクタについてタイプを設定する。すなわち、プロセッサ81は、上記“[2-4.戦闘ターゲットを設定する方法の具体例]”で述べた方法に従って上記各キャラクタのそれぞれについて、第1タイプまたは第2タイプを設定する。具体的には、プロセッサ81は、メモリに記憶されている、上記交戦グループに関する交戦グループデータに含まれるタイプデータを、設定されたタイプを示すように更新する。ステップS33の次にステップS34の処理が実行される。
【0227】
ステップS34において、プロセッサ81は、ステップS31で選択された交戦グループに参加している各キャラクタについて戦闘ターゲットを設定する。すなわち、プロセッサ81は、上記“[2-4.戦闘ターゲットを設定する方法の具体例]”で述べた方法に従って上記各キャラクタのそれぞれについて戦闘ターゲットとなるキャラクタを設定する。具体的には、プロセッサ81は、メモリに記憶されている、上記交戦グループに関する交戦グループデータに含まれる戦闘ターゲットデータを、設定されたキャラクタを示すように更新する。ステップS34の次にステップS35の処理が実行される。
【0228】
ステップS35において、プロセッサ81は、現時点で設定されている交戦グループを上記ステップS31において全て選択したか否かを判定する。ステップS35の判定結果が否定である場合、ステップS31の処理が再度実行される。以降、現時点で設定されている全ての交戦グループがステップS31において選択されるまで、ステップS31~S35における処理ループが繰り返し実行される。一方、ステップS35の判定結果が肯定である場合、プロセッサ81は戦闘ターゲット設定処理を終了する。
【0229】
ステップS3の次のステップS4において、プロセッサ81は、ゲーム空間における各キャラクタ(すなわち、プレイヤキャラクタおよびNPC)の動作を制御する。プレイヤキャラクタについては、プロセッサ81は、プレイヤによる操作入力に基づいて動作を制御する。すなわち、プロセッサ81は、コントローラ通信部83および/または各端子17および21を介して各コントローラから受信される操作データを適宜のタイミングで取得し、取得された操作データに基づいてプレイヤキャラクタの動作を制御する。また、NPCについては、プロセッサ81は、当該NPCに戦闘ターゲットが設定されている場合には、上記“[2-5.キャラクタの動作の制御]”で述べた方法に従って、当該戦闘ターゲットを考慮して当該NPCの動作を決定する。また、NPCに戦闘ターゲットが設定されていない場合には、プロセッサ81は、ゲームプログラムにおいて定められるアルゴリズムに従って当該NPCの動作を決定する。なお、プロセッサ81は、上記によって動作が制御されたキャラクタについて、動作後の状態を示すように、メモリに記憶されているキャラクタデータを更新する。次に上記ステップS1の処理が実行される際には、ステップS4において更新されたキャラクタデータを参照してキャラクタを戦闘可能状態に設定するか否かが判断される。ステップS4の次にステップS5の処理が実行される。
【0230】
ステップS5において、プロセッサ81は、ゲーム空間を表すゲーム画像を生成して表示装置に表示させる。例えば、プロセッサ81は、プレイヤキャラクタを含むゲーム空間を表すゲーム画像を生成する。なお、ゲーム中において、ステップS1~S5の処理ループは所定時間(例えば、1フレーム時間)に1回の割合で繰り返し実行され、これによって、ゲーム空間の様子を動的に反映するようにゲーム画像が更新される。ステップS5の次にステップS1の処理が再度実行される。以降、ゲーム中においてはステップS1~S6の一連の処理が繰り返し実行される。なお、
図18に示すゲーム処理は、ゲームが終了される場合に終了される。また、ゲーム中において、所定の状況(例えば、ゲームの演出上の動画が再生される場合等)において上記ゲーム処理が中断されてもよい。
【0231】
なお、本実施形態においては、ゲームプログラムは、交戦グループ管理プログラムと、動作決定プログラムとを含む構成であってもよい。交戦グループ管理プログラムは、交戦グループの管理および戦闘ターゲットの設定を行うためのプログラムである。上記ステップS2およびS3の処理は、交戦グループ管理プログラムによって実行される。また、動作決定プログラムは、各NPCの動作内容を決定するためのプログラムである。上記ステップS4の処理における、各NPCの動作内容を決定する処理は、動作決定プログラムによって実行される。上記の構成においては、交戦グループ管理プログラムは、各NPCの戦闘ターゲットを設定し、設定された戦闘ターゲットの情報を動作決定プログラムに渡す。動作決定プログラムは、受け取った戦闘ターゲットの情報に基づいてNPCの動作内容を決定する。上記のように、交戦グループ管理プログラムと動作決定プログラムとを分けることで、戦闘ターゲットを設定するためのアルゴリズム、および、NPCの動作内容を決定するためのアルゴリズムが複雑になるおそれを低減することができ、ゲームプログラムの作成を容易にすることができる。
【0232】
[4.本実施形態の作用効果および変形例]
以上のように、上記実施形態においては、情報処理システム(具体例としては、ゲームシステム1)は、下記の手段を備える構成である(情報処理プログラムの一例であるゲームプログラムがコンピュータを下記の手段として機能させる構成であるとも言える)。
・仮想空間において複数のNPCの動作を制御するキャラクタ制御手段(ステップS4)
・複数のNPCのそれぞれについて、所定の条件に基づき、他のNPC、または、ユーザの操作入力によって操作されるプレイヤキャラクタとの戦闘を行うための戦闘可能状態に設定する状態設定手段(ステップS1)
・戦闘可能状態にあるNPCを含む複数のキャラクタが参加する交戦グループを設定する交戦グループ管理手段(ステップS2)
・交戦グループに参加するNPCについて、当該交戦グループに参加する他のキャラクタ(すなわち、他のNPCまたはプレイヤキャラクタ)を戦闘ターゲットに設定するターゲット設定手段(ステップS3)
また、キャラクタ制御手段は、NPCについて設定された戦闘ターゲットに基づいて、当該NPCの戦闘に関する動作を制御する。
【0233】
上記の構成によれば、複数のキャラクタが参加する交戦グループが設定され、交戦グループ内において各NPCの戦闘ターゲットが設定される。これによれば、各NPCの挙動が意図しないものとなる(例えば、複数のNPCの攻撃目標が意図せずに偏ってしまう等)おそれを低減することができ、戦闘時において複数のNPCの挙動を自然なものとすることができる。
【0234】
また、上記の構成によれば、情報処理システムは、交戦グループに基づく戦闘ターゲットの設定処理と、NPCの動作制御処理とを分けて行う。ここで、仮に、交戦グループに基づく戦闘ターゲットの設定処理を行うことなく、NPCの動作制御処理において各NPCの挙動が自然なものになるようなアルゴリズムを設定しようとすれば、当該アルゴリズムが複雑化してしまう。その結果、情報処理システムの処理負荷が増加したり、開発の負担が増加したりするおそれがある。これに対して、上記の構成によれば、NPCの動作制御処理におけるアルゴリズムが複雑化することを避けることができるので、情報処理システムの処理負荷や開発の負担を軽減することができる。
【0235】
なお、上記「戦闘可能状態にあるNPCを含む複数のキャラクタが参加する交戦グループ」とは、戦闘可能状態にあるNPCが少なくとも、当該交戦グループに参加すればよい意味であり、戦闘可能状態にないNPCが当該交戦グループに参加することを排除する意味ではない。例えば、上記交戦グループ管理手段は、戦闘可能状態にあるNPCと、戦闘可能状態にないNPCとを含む交戦グループを設定してもよい。なお、戦闘可能状態にないNPCが交戦グループに参加する場合、当該NPCについては戦闘ターゲットが設定されなくてもよいし、当該NPCは他のキャラクタの戦闘ターゲットにならなくてもよい。
【0236】
なお、上記の実施形態において、情報処理装置(具体的には、本体装置)においてデータ(プログラムを含む意味である)を用いて処理が実行される場合、当該処理に必要なデータの一部が、当該情報処理装置とは異なる他の情報処理装置から送信されてもよい。このとき、当該情報処理装置は、他の情報処理装置から受信されたデータと、自身に記憶されているデータとを用いて上記処理を実行してもよい。
【0237】
なお、他の実施形態において、情報処理システムは、上記実施形態における構成の一部を備えていなくてもよいし、上記実施形態において実行される処理の一部を実行しなくてもよい。例えば、情報処理システムは、上記実施形態における一部の特定の効果を奏するためには、当該効果を奏するための構成を備え、当該効果を奏するための処理を実行すればよく、その他の構成を備えていなくてもよいし、その他の処理を実行しなくてもよい。
【産業上の利用可能性】
【0238】
上記実施形態は、戦闘時において複数のキャラクタに自然な挙動をとらせること等を目的として、例えばゲームシステムやゲームプログラムとして利用することが可能である。
【符号の説明】
【0239】
1 ゲームシステム
2 本体装置
81 プロセッサ
201 プレイヤキャラクタ
202 仲間キャラクタ
203~207 敵キャラクタ
208 第3勢力キャラクタ