(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024071578
(43)【公開日】2024-05-24
(54)【発明の名称】ゲームプログラム、情報処理システム、および、ゲーム処理方法
(51)【国際特許分類】
A63F 13/56 20140101AFI20240517BHJP
A63F 13/422 20140101ALI20240517BHJP
A63F 13/55 20140101ALI20240517BHJP
A63F 13/79 20140101ALI20240517BHJP
【FI】
A63F13/56
A63F13/422
A63F13/55
A63F13/79 510
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2024049970
(22)【出願日】2024-03-26
(62)【分割の表示】P 2022144903の分割
【原出願日】2022-09-12
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】佐藤 祐也
(72)【発明者】
【氏名】出口 拓麻
(72)【発明者】
【氏名】迫岡 洋輔
(57)【要約】
【課題】ユーザの意図に従ってプレイヤキャラクタをノンプレイヤキャラクタに近づける操作を行いやすくする。
【解決手段】情報処理システムは、プレイヤキャラクタに同行するようにノンプレイヤキャラクタを移動させる制御と、当該プレイヤキャラクタの移動の停止に応じて第1範囲内で当該ノンプレイヤキャラクタの移動を停止させる制御とを行う。情報処理システムは、プレイヤキャラクタとノンプレイヤキャラクタとが近いことを示す所定の位置関係となる状態で第2操作入力が行われたことに応じて、当該ノンプレイヤキャラクタに対応する制御を実行する。プレイヤキャラクタが停止後に移動を再開した場合において、プレイヤキャラクタが第1範囲を含む第2範囲内に位置するときは、ノンプレイヤキャラクタは、プレイヤキャラクタに同行する移動を再開せず、プレイヤキャラクタが第2範囲外に出たことに応じて、当該同行する移動を再開する。
【選択図】
図14
【特許請求の範囲】
【請求項1】
ゲーム処理をコンピュータに実行させるゲームプログラムであって、前記コンピュータを、
ユーザによる第1操作入力に応じて仮想空間内においてプレイヤキャラクタを移動させるプレイヤキャラクタ制御手段と、
前記仮想空間内において、前記プレイヤキャラクタの移動に応じて当該プレイヤキャラクタに同行するようにノンプレイヤキャラクタを移動させる制御と、当該プレイヤキャラクタの移動の停止に応じて、当該プレイヤキャラクタを含む第1範囲内で当該ノンプレイヤキャラクタの移動を停止させる制御とを少なくとも含む移動制御を行うノンプレイヤキャラクタ制御手段と、
前記プレイヤキャラクタと前記ノンプレイヤキャラクタとが近いことを示す所定の位置関係となる状態で前記ユーザによる第2操作入力が行われたことに応じて、当該ノンプレイヤキャラクタに対応する第1制御を実行する第1制御実行手段として機能させ、
前記ノンプレイヤキャラクタ制御手段は、前記プレイヤキャラクタが停止後に移動を再開した場合において、
(1)前記プレイヤキャラクタが前記第1範囲を含む第2範囲内に位置するときは、当該プレイヤキャラクタが移動しても、当該プレイヤキャラクタに同行するように前記ノンプレイヤキャラクタを移動させる制御を再開させず、
(2)前記プレイヤキャラクタが前記第2範囲外に出たことに応じて、当該プレイヤキャラクタに同行するように前記ノンプレイヤキャラクタを移動させる制御を再開させる、
ゲームプログラム。
【請求項2】
前記ノンプレイヤキャラクタ制御手段は、
複数の前記ノンプレイヤキャラクタについて前記移動制御を行い、
前記プレイヤキャラクタの移動の停止に応じて、前記複数のノンプレイヤキャラクタのそれぞれについて前記第1範囲内で移動を停止させる、
請求項1に記載のゲームプログラム。
【請求項3】
前記ノンプレイヤキャラクタ制御手段は、前記プレイヤキャラクタの移動の停止に応じて、前記複数のノンプレイヤキャラクタによって当該プレイヤキャラクタが囲まれる位置で当該複数のノンプレイヤキャラクタの移動をそれぞれ停止させる、
請求項2に記載のゲームプログラム。
【請求項4】
前記第1制御実行手段は、前記ノンプレイヤキャラクタに対応する前記第1制御の実行から所定時間が経過したことを条件として当該ノンプレイヤキャラクタに対応する再度の第1制御の実行を許容する、
請求項2に記載のゲームプログラム。
【請求項5】
前記ノンプレイヤキャラクタ制御手段は、前記プレイヤキャラクタの移動に応じて、当該プレイヤキャラクタが前を向いて前方に移動するときに当該プレイヤキャラクタよりも前側に前記ノンプレイヤキャラクタが位置するように当該ノンプレイヤキャラクタを移動させる、
請求項1に記載のゲームプログラム。
【請求項6】
前記ノンプレイヤキャラクタ制御手段は、前記ノンプレイヤキャラクタが前記プレイヤキャラクタに同行するように移動を行っている場合に前記プレイヤキャラクタが当該ノンプレイヤキャラクタの方へ移動することに応じて、当該ノンプレイヤキャラクタの移動速度を前記プレイヤキャラクタの移動速度よりも遅くする、
請求項1に記載のゲームプログラム。
【請求項7】
前記ノンプレイヤキャラクタ制御手段は、前記プレイヤキャラクタが移動を停止した時点において前記ノンプレイヤキャラクタが前記第1範囲外に位置する場合、当該ノンプレイヤキャラクタを当該第1範囲内に移動させてから停止させる、
請求項1から請求項6のいずれか1項に記載のゲームプログラム。
【請求項8】
前記ゲームプログラムは、前記コンピュータを、
前記プレイヤキャラクタの移動の停止に応じて前記ノンプレイヤキャラクタが移動を停止する目標となる停止目標位置を、当該プレイヤキャラクタが移動を停止した位置に基づく前記第1範囲内に設定する目標設定手段としてさらに機能させる、
請求項1から請求項6のいずれか1項に記載のゲームプログラム。
【請求項9】
前記所定の位置関係は、前記プレイヤキャラクタの位置に基づいて設定される第3範囲内に前記ノンプレイヤキャラクタが位置する関係であり、
前記ノンプレイヤキャラクタ制御手段は、複数の前記ノンプレイヤキャラクタについて前記移動制御を行い、
前記目標設定手段は、2つの停止目標位置が同時に前記第3範囲内に位置することがないように、前記複数のノンプレイヤキャラクタの各停止目標位置を設定する、
請求項8に記載のゲームプログラム。
【請求項10】
前記ノンプレイヤキャラクタ制御手段は、前記プレイヤキャラクタが移動を停止した時に前記ノンプレイヤキャラクタが前記第1範囲内に位置する場合、当該ノンプレイヤキャラクタが前記停止目標位置に位置するか否かにかかわらず、当該ノンプレイヤキャラクタの移動を停止させる、
請求項8に記載のゲームプログラム。
【請求項11】
前記ノンプレイヤキャラクタ制御手段は、前記プレイヤキャラクタが移動を停止した時に、前記第1範囲内の範囲である第4範囲内に前記ノンプレイヤキャラクタが位置する場合、当該ノンプレイヤキャラクタが前記停止目標位置に位置するか否かにかかわらず、当該ノンプレイヤキャラクタの移動を停止させ、前記第4範囲外に前記ノンプレイヤキャラクタが位置する場合、当該ノンプレイヤキャラクタを前記停止目標位置へ移動させる、
請求項8に記載のゲームプログラム。
【請求項12】
前記第2範囲は、前記第1範囲と、前記ノンプレイヤキャラクタから所定距離内の範囲との少なくともいずれかの内側となる範囲である、
請求項1から請求項6のいずれか1項に記載のゲームプログラム。
【請求項13】
前記所定の位置関係は、前記プレイヤキャラクタの位置に基づいて設定される第3範囲内に前記ノンプレイヤキャラクタが位置する関係であり、
前記ゲームプログラムは、前記コンピュータを、
前記プレイヤキャラクタの位置に基づいて設定される第4範囲内にオブジェクトが位置する状態で前記ユーザによる前記第2操作入力が行われたことに応じて、当該オブジェクトに対応する第2制御を実行する第2制御実行手段としてさらに機能させ、
前記ノンプレイヤキャラクタ制御手段は、前記オブジェクトが前記第4範囲内に位置する状態における前記プレイヤキャラクタの位置に基づく前記第3範囲内とならない位置に前記ノンプレイヤキャラクタを停止させる、
請求項1から請求項6のいずれか1項に記載のゲームプログラム。
【請求項14】
前記第1制御は、前記ノンプレイヤキャラクタに対応する第3制御の準備状態へと当該ノンプレイヤキャラクタを移行させる制御であり、
前記ゲームプログラムは、前記コンピュータを、
前記ノンプレイヤキャラクタが前記第3制御の準備状態となる場合において、前記ユーザによる方向または位置の指定を含む第3操作入力が行われたことに応じて、指定された方向または位置に向けて前記第3制御を実行する第3制御実行手段としてさらに機能させる、
請求項1から請求項6のいずれか1項に記載のゲームプログラム。
【請求項15】
前記ノンプレイヤキャラクタ制御手段は、前記ノンプレイヤキャラクタが他のキャラクタとの戦闘を行う戦闘条件が満たされた場合、前記プレイヤキャラクタが前記第2範囲外に出ているか否かにかかわらず、前記ノンプレイヤキャラクタを移動させる、
請求項1から請求項6のいずれか1項に記載のゲームプログラム。
【請求項16】
前記第1制御は、前記ノンプレイヤキャラクタが他のキャラクタを攻撃するための制御であり、
前記プレイヤキャラクタ制御手段は、ユーザによる第4操作入力に応じて前記プレイヤキャラクタが他のキャラクタを攻撃するための制御を行う、
請求項1から請求項6のいずれか1項に記載のゲームプログラム。
【請求項17】
ユーザによる第1操作入力に応じて仮想空間内においてプレイヤキャラクタを移動させるプレイヤキャラクタ制御手段と、
前記仮想空間内において、前記プレイヤキャラクタの移動に応じて当該プレイヤキャラクタに同行するようにノンプレイヤキャラクタを移動させる制御と、当該プレイヤキャラクタの移動の停止に応じて、当該プレイヤキャラクタを含む第1範囲内で当該ノンプレイヤキャラクタの移動を停止させる制御とを少なくとも含む移動制御を行うノンプレイヤキャラクタ制御手段と、
前記プレイヤキャラクタと前記ノンプレイヤキャラクタとが近いことを示す所定の位置関係となる状態で前記ユーザによる第2操作入力が行われたことに応じて、当該ノンプレイヤキャラクタに対応する制御を実行する制御実行手段とを備え、
前記ノンプレイヤキャラクタ制御手段は、前記プレイヤキャラクタが停止後に移動を再開した場合において、
(1)前記プレイヤキャラクタが前記第1範囲を含む第2範囲内に位置するときは、当該プレイヤキャラクタが移動しても、当該プレイヤキャラクタに同行するように前記ノンプレイヤキャラクタを移動させる制御を再開させず、
(2)前記プレイヤキャラクタが前記第2範囲外に出たことに応じて、当該プレイヤキャラクタに同行するように前記ノンプレイヤキャラクタを移動させる制御を再開させる、
情報処理システム。
【請求項18】
情報処理システムによって実行されるゲーム処理方法であって、
ユーザによる第1操作入力に応じて仮想空間内においてプレイヤキャラクタを移動させるプレイヤキャラクタ制御ステップと、
前記仮想空間内において、前記プレイヤキャラクタの移動に応じて当該プレイヤキャラクタに同行するようにノンプレイヤキャラクタを移動させる制御と、当該プレイヤキャラクタの移動の停止に応じて、当該プレイヤキャラクタを含む第1範囲内で当該ノンプレイヤキャラクタの移動を停止させる制御とを少なくとも含む移動制御を行うノンプレイヤキャラクタ制御ステップと、
前記プレイヤキャラクタと前記ノンプレイヤキャラクタとが近いことを示す所定の位置関係となる状態で前記ユーザによる第2操作入力が行われたことに応じて、当該ノンプレイヤキャラクタに対応する制御を実行する制御実行ステップとを備え、
前記ノンプレイヤキャラクタ制御ステップにおいては、前記プレイヤキャラクタが停止後に移動を再開した場合において、
(1)前記プレイヤキャラクタが前記第1範囲を含む第2範囲内に位置するときは、当該プレイヤキャラクタが移動しても、当該プレイヤキャラクタに同行するように前記ノンプレイヤキャラクタを移動させる制御を再開させず、
(2)前記プレイヤキャラクタが前記第2範囲外に出たことに応じて、当該プレイヤキャラクタに同行するように前記ノンプレイヤキャラクタを移動させる制御を再開させる、
ゲーム処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームにおいてプレイヤキャラクタおよびノンプレイヤキャラクタを制御するためのゲームプログラム、情報処理システム、および、ゲーム処理方法に関する。
【背景技術】
【0002】
従来、ゲームにおいてプレイヤキャラクタおよびノンプレイヤキャラクタを制御する技術がある。このような技術において、プレイヤキャラクタの移動時にはノンプレイヤキャラクタをプレイヤキャラクタと共に移動させ、プレイヤキャラクタの停止時にはノンプレイヤキャラクタを停止させることが行われている(例えば、特許文献1参照)。また、プレイヤキャラクタがユーザによって操作されていない場合においては、プレイヤキャラクタが近くにいるノンプレイヤキャラクタに近づくようにプレイヤキャラクタを自動的に移動させ、当該ノンプレイヤキャラクタに対する動作をプレイヤキャラクタに行わせることが行われている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記の技術においては、ユーザがプレイヤキャラクタを操作する際にノンプレイヤキャラクタが移動するために、ユーザの意図に沿ってプレイヤキャラクタをノンプレイヤキャラクタに近づける操作が困難になるおそれがあった。
【0005】
それ故、本発明の目的は、ユーザの意図に従ってプレイヤキャラクタをノンプレイヤキャラクタに近づける操作を行いやすくするゲームプログラム、情報処理システム、および、ゲーム処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記の課題を解決すべく、本発明は、以下の(1)~(16)の構成を採用した。
【0007】
(1)
本発明の一例は、ゲーム処理をコンピュータに実行させるゲームプログラムである。ゲームプログラムは、コンピュータを、プレイヤキャラクタ制御手段と、ノンプレイヤキャラクタ制御手段と、第1制御実行手段として機能させる。プレイヤキャラクタ制御手段は、ユーザによる第1操作入力に応じて仮想空間内においてプレイヤキャラクタを移動させる。ノンプレイヤキャラクタ制御手段は、仮想空間内において、プレイヤキャラクタの移動に応じて当該プレイヤキャラクタに同行するようにノンプレイヤキャラクタを移動させる制御と、当該プレイヤキャラクタの移動の停止に応じて、当該プレイヤキャラクタを含む第1範囲内で当該ノンプレイヤキャラクタの移動を停止させる制御とを少なくとも含む移動制御を行う。第1制御実行手段は、プレイヤキャラクタとノンプレイヤキャラクタとが近いことを示す所定の位置関係となる状態でユーザによる第2操作入力が行われたことに応じて、当該ノンプレイヤキャラクタに対応する第1制御を実行する。ノンプレイヤキャラクタ制御手段は、プレイヤキャラクタが停止後に移動を再開した場合において、(1)プレイヤキャラクタが第1範囲を含む第2範囲内に位置するときは、当該プレイヤキャラクタが移動しても、当該プレイヤキャラクタに同行するようにノンプレイヤキャラクタを移動させる制御を再開させず、(2)プレイヤキャラクタが第2範囲外に出たことに応じて、当該プレイヤキャラクタに同行するようにノンプレイヤキャラクタを移動させる制御を再開させる。
【0008】
上記(1)の構成によれば、ユーザの意図に従ってプレイヤキャラクタをノンプレイヤキャラクタに近づける操作を行いやすくすることができる。
【0009】
(2)
上記(1)の構成において、ノンプレイヤキャラクタ制御手段は、複数のノンプレイヤキャラクタについて移動制御を行ってもよく、プレイヤキャラクタの移動の停止に応じて、複数のノンプレイヤキャラクタのそれぞれについて第1範囲内で移動を停止させてもよい。
【0010】
上記(2)の構成によれば、複数のノンプレイヤキャラクタについてプレイヤキャラクタを近づける操作を行いやすくすることができる。
【0011】
(3)
上記(2)の構成において、ノンプレイヤキャラクタ制御手段は、プレイヤキャラクタの移動の停止に応じて、複数のノンプレイヤキャラクタによって当該プレイヤキャラクタが囲まれる位置で当該複数のノンプレイヤキャラクタの移動をそれぞれ停止させてもよい。
【0012】
上記(3)の構成によれば、いずれのノンプレイヤキャラクタに対してもプレイヤキャラクタが近づきやすくすることができる。
【0013】
(4)
上記(2)の構成において、第1制御実行手段は、ノンプレイヤキャラクタに対応する第1制御の実行から所定時間が経過したことを条件として当該ノンプレイヤキャラクタに対応する再度の第1制御の実行を許容してもよい。
【0014】
上記(4)の構成によれば、1つのノンプレイヤキャラクタだけでなく他のノンプレイヤキャラクタについても第1制御を行わせる動機付けをプレイヤに与えることができ、複数のノンプレイヤキャラクタを用いてゲームを進める動機付けをプレイヤに与えることができる。
【0015】
(5)
上記(1)から(4)のいずれかの構成において、ノンプレイヤキャラクタ制御手段は、プレイヤキャラクタの移動に応じて、当該プレイヤキャラクタが前を向いて前方に移動するときに当該プレイヤキャラクタよりも前側にノンプレイヤキャラクタが位置するように当該ノンプレイヤキャラクタを移動させてもよい。
【0016】
上記(5)の構成によれば、各ノンプレイヤキャラクタがゲーム画像に含まれやすくなるので、各ノンプレイヤキャラクタの位置をユーザにとって把握しやすくすることができる。
【0017】
(6)
上記(1)から(5)のいずれかの構成において、ノンプレイヤキャラクタ制御手段は、ノンプレイヤキャラクタがプレイヤキャラクタに同行するように移動を行っている場合にプレイヤキャラクタが当該ノンプレイヤキャラクタの方へ移動することに応じて、当該ノンプレイヤキャラクタの移動速度をプレイヤキャラクタの移動速度よりも遅くしてもよい。
【0018】
上記(6)の構成によれば、ノンプレイヤキャラクタの移動中においてもプレイヤキャラクタをノンプレイヤキャラクタに近づきやすくすることができる。
【0019】
(7)
上記(1)から(6)のいずれかの構成において、ノンプレイヤキャラクタ制御手段は、プレイヤキャラクタが移動を停止した時点においてノンプレイヤキャラクタが第1範囲外に位置する場合、当該ノンプレイヤキャラクタを当該第1範囲内に移動させてから停止させてもよい。
【0020】
上記(7)の構成によれば、プレイヤキャラクタの移動停止時に離れた位置にノンプレイヤキャラクタが位置する場合であっても、プレイヤキャラクタをノンプレイヤキャラクタに近づきやすくすることができる。
【0021】
(8)
上記(1)から(7)のいずれかの構成において、ゲームプログラムは、コンピュータを、目標設定手段としてさらに機能させてもよい。目標設定手段は、プレイヤキャラクタの移動の停止に応じてノンプレイヤキャラクタが移動を停止する目標となる停止目標位置を、当該プレイヤキャラクタが移動を停止した位置に基づく第1範囲内に設定する。
【0022】
上記(8)の構成によれば、停止目標位置を設定することで、ノンプレイヤキャラクタをプレイヤキャラクタに近い位置まで移動させる制御を容易に行うことができる。
【0023】
(9)
上記(8)の構成において、所定の位置関係は、プレイヤキャラクタの位置に基づいて設定される第3範囲内にノンプレイヤキャラクタが位置する関係であってもよい。ノンプレイヤキャラクタ制御手段は、複数のノンプレイヤキャラクタについて移動制御を行ってもよい。目標設定手段は、2つの停止目標位置が同時に第3範囲内に位置することがないように、複数のノンプレイヤキャラクタの各停止目標位置を設定してもよい。
【0024】
上記(9)の構成によれば、複数のノンプレイヤキャラクタに関する第1制御を同時に行い得る状況を生じにくくすることができるので、ユーザが意図していないノンプレイヤキャラクタに対応する第1制御を行ってしまう可能性を低減することができる。
【0025】
(10)
上記(8)または(9)の構成において、ノンプレイヤキャラクタ制御手段は、プレイヤキャラクタが移動を停止した時にノンプレイヤキャラクタが第1範囲内に位置する場合、当該ノンプレイヤキャラクタが停止目標位置に位置するか否かにかかわらず、当該ノンプレイヤキャラクタの移動を停止させてもよい。
【0026】
上記(10)の構成によれば、プレイヤキャラクタが移動を停止した時にノンプレイヤキャラクタがプレイヤキャラクタから離れるように移動する挙動が生じる可能性を低減することができ、このような挙動に対してプレイヤが違和感を抱く可能性を低減することができる。
【0027】
(11)
上記(8)または(9)の構成において、ノンプレイヤキャラクタ制御手段は、プレイヤキャラクタが移動を停止した時に、第1範囲内の範囲である第4範囲内にノンプレイヤキャラクタが位置する場合、当該ノンプレイヤキャラクタが停止目標位置に位置するか否かにかかわらず、当該ノンプレイヤキャラクタの移動を停止させ、第4範囲外にノンプレイヤキャラクタが位置する場合、当該ノンプレイヤキャラクタを停止目標位置へ移動させてもよい。
【0028】
上記(11)の構成によれば、上記のような挙動に対してプレイヤが違和感を抱く可能性を低減することができるとともに、待機モードへの移行時において仲間キャラクタが停止目標位置まで移動して停止する場合を増やすことができる。
【0029】
(12)
上記(1)から(11)のいずれかの構成において、第2範囲は、第1範囲と、ノンプレイヤキャラクタから所定距離内の範囲との少なくともいずれかの内側となる範囲であってもよい。
【0030】
上記(12)の構成によれば、プレイヤの意図に反してプレイヤキャラクタが第2範囲を出てしまうことで、プレイヤの意図に反してノンプレイヤキャラクタが移動を開始してしまう可能性を低減することができる。
【0031】
(13)
上記(1)から(12)のいずれかの構成において、所定の位置関係は、プレイヤキャラクタの位置に基づいて設定される第3範囲内にノンプレイヤキャラクタが位置する関係であってもよい。ゲームプログラムは、コンピュータを、第2制御実行手段としてさらに機能させてもよい。第2制御実行手段は、プレイヤキャラクタの位置に基づいて設定される第4範囲内にオブジェクトが位置する状態でユーザによる第2操作入力が行われたことに応じて、当該オブジェクトに対応する第2制御を実行する。ノンプレイヤキャラクタ制御手段は、オブジェクトが第4範囲内に位置する状態におけるプレイヤキャラクタの位置に基づく第3範囲内とならない位置にノンプレイヤキャラクタを停止させてもよい。
【0032】
上記(13)の構成によれば、ノンプレイヤキャラクタに関する第1制御とオブジェクトに関する第2制御とを同時に行い得る状況を生じにくくすることができるので、意図していない第1制御または第2制御をユーザが行ってしまう可能性を低減することができる。
【0033】
(14)
上記(1)から(13)のいずれかの構成において、第1制御は、ノンプレイヤキャラクタに対応する第3制御の準備状態へと当該ノンプレイヤキャラクタを移行させる制御であってもよい。ゲームプログラムは、コンピュータを、第3制御実行手段としてさらに機能させてもよい。第3制御実行手段は、ノンプレイヤキャラクタが第3制御の準備状態となる場合において、ユーザによる方向または位置の指定を含む第3操作入力が行われたことに応じて、指定された方向または位置に向けて第3制御を実行する。
【0034】
上記(14)の構成によれば、ユーザが意図しない方向または位置に向かって第3制御が行われたり、意図しない第3制御が行われたりするといった誤操作が生じる可能性を低減することができる。
【0035】
(15)
上記(1)から(14)のいずれかの構成において、ノンプレイヤキャラクタ制御手段は、ノンプレイヤキャラクタが他のキャラクタとの戦闘を行う戦闘条件が満たされた場合、プレイヤキャラクタが第2範囲外に出ているか否かにかかわらず、ノンプレイヤキャラクタを移動させてもよい。
【0036】
上記(15)の構成によれば、戦闘のための自然な動作をノンプレイヤキャラクタに行わせることができる。
【0037】
(16)
上記(1)から(15)のいずれかの構成において、第1制御は、ノンプレイヤキャラクタが他のキャラクタを攻撃するための制御であってもよい。プレイヤキャラクタ制御手段は、ユーザによる第4操作入力に応じてプレイヤキャラクタが他のキャラクタを攻撃するための制御を行ってもよい。
【0038】
上記(16)の構成によれば、攻撃の選択肢を増やすことができ、ゲームにおける戦略性を向上することができる。
【0039】
なお、本発明の別の一例は、上記(1)~(16)における処理を実行する情報処理装置または情報処理システムであってもよい。また、本発明の別の一例は、上記(1)~(16)における処理を実行する情報処理方法であってもよい。
【発明の効果】
【0040】
上記ゲームプログラム、情報処理システム、または、ゲーム処理方法によれば、ユーザの意図に従ってプレイヤキャラクタをノンプレイヤキャラクタに近づける操作を行いやすくすることができる。
【図面の簡単な説明】
【0041】
【
図1】本体装置に左コントローラおよび右コントローラを装着した状態の一例を示す図
【
図2】本体装置から左コントローラおよび右コントローラをそれぞれ外した状態の一例を示す図
【
図7】本体装置と左コントローラおよび右コントローラとの内部構成の一例を示すブロック図
【
図8】プレイヤキャラクタが仲間キャラクタにスキル動作を行わせる際のゲーム画像の一例を示す図
【
図9】仲間キャラクタが準備状態となった状況におけるゲーム画像の一例を示す図
【
図10】仲間キャラクタがスキル動作を行った状況におけるゲーム画像の一例を示す図
【
図11】同行モードで各仲間キャラクタが移動しているときのゲーム画像の一例を示す図
【
図12】同行モードにおける各キャラクタの配置の一例を示す図
【
図13】同行モードにおいてプレイヤキャラクタが移動方向を変えたときの各キャラクタの一例を示す図
【
図14】待機モードにおける各キャラクタの配置の一例を示す図
【
図15】プレイヤキャラクタの近くにアクション対象オブジェクトが配置される様子の一例を示す図
【
図16】待機モードにおける各キャラクタの配置の一例を示す図
【
図18】照準モードにおけるゲーム画像の一例を示す図
【
図19】同行モードにおいて指定仲間キャラクタが設定される場合における各キャラクタの配置の一例を示す図
【
図20】待機モードにおいて指定仲間キャラクタが設定される場合における各キャラクタの配置の一例を示す図
【
図21】ゲームシステムにおける情報処理に用いられる各種データの一例を示す図
【
図22】ゲームシステムによって実行されるゲーム処理の流れの一例を示すフローチャート
【
図23】ゲームシステムによって実行されるゲーム処理の流れの一例を示すフローチャート
【
図24】
図22に示すステップS13の同行モード処理の詳細な流れの一例を示すサブフローチャート
【
図25】
図22に示すステップS14の待機モード処理の詳細な流れの一例を示すサブフローチャート
【
図26】
図22に示すステップS14の待機モード処理の詳細な流れの一例を示すサブフローチャート
【発明を実施するための形態】
【0042】
[1.ゲームシステムの構成]
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(
図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
【0043】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。
図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0044】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。
図1および
図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0045】
図3は、本体装置2の一例を示す六面図である。
図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0046】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0047】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0048】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0049】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0050】
図4は、左コントローラ3の一例を示す六面図である。
図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、
図1および
図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0051】
左コントローラ3は、アナログスティック32を備える。
図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
【0052】
左コントローラ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プログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0053】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0054】
図5は、右コントローラ4の一例を示す六面図である。
図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0055】
右コントローラ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を備える。
【0056】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0057】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、
図3に示す構成の他、
図6に示す各構成要素81、83~85、および、91を備える。これらの構成要素81、83~85、および、91のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0058】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0059】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0060】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0061】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0062】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0063】
プロセッサ81は、上述の左側端子17および右側端子21に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。このように、本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。
【0064】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0065】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、
図6で示しているため
図7では省略している。
【0066】
左コントローラ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(登録商標)の規格に従って行われる。
【0067】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0068】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(
図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0069】
通信制御部101は、各入力部(具体的には、各ボタン103、および、アナログスティック32)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0070】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。
【0071】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0072】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0073】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、および、アナログスティック52を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0074】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0075】
[2.ゲームシステムにおける処理の概要]
以下、ゲームシステム1において実行される情報処理の概要について説明する。本実施形態においては、ゲームシステム1は、プレイヤ(ユーザとも言う)によって操作されるプレイヤキャラクタを含む複数のキャラクタが仮想のゲーム空間に登場するゲームを実行する。ゲームには、プレイヤキャラクタの他に、プレイヤキャラクタの仲間である仲間キャラが登場する。プレイヤキャラクタは、例えば仲間キャラクタと協力して敵キャラクタを倒すことでゲームを進行させる。
【0076】
仲間キャラクタは、ゲームシステム1によって動作が自動的に制御されるノンプレイヤキャラクタである。つまり、仲間キャラクタについては、基本的にはゲームシステム1によって動作内容が決定される。ただし、本実施形態においては、プレイヤキャラクタは、仲間キャラクタに指示を行うことができ、仲間キャラクタは、プレイヤキャラクタによる指示に応じて所定のスキル動作を行う。スキル動作とは、仲間キャラクタの能力を用いた動作であり、具体的な内容は任意である。スキル動作は、例えば、敵を攻撃する動作であってもよいし、味方(すなわち、プレイヤキャラクタおよび他の仲間キャラクタ)を回復または補助する動作であってもよい。本実施形態においては、プレイヤキャラクタの指示に応じて行われるスキル動作は、仲間キャラクタ毎に設定される。本実施形態においては、各仲間キャラクタは、プレイヤキャラクタの指示に応じて、仲間キャラクタ毎に固有のスキル動作を行う。
【0077】
[2-1.仲間キャラクタにスキル動作を行わせる処理]
以下、
図8~
図10を参照して、プレイヤキャラクタが仲間キャラクタにスキル動作を行わせる際の動作について説明する。
図8は、プレイヤキャラクタが仲間キャラクタにスキル動作を行わせる際のゲーム画像の一例を示す図である。
図8に示すように、ゲーム中において、ゲームシステム1は、プレイヤキャラクタ201の周囲のゲーム空間を表すゲーム画像をディスプレイ12に表示する。
図8に示す例においては、プレイヤキャラクタ201と、5体の仲間キャラクタ202~206とがゲーム空間に配置されている。なお、本実施形態においては、
図8に示すように、5体の仲間キャラクタ202~206がゲーム空間に登場するものとする。なお、ゲーム空間に登場する仲間キャラクタの数は任意である。
【0078】
図8に示す例においては、プレイヤキャラクタ201が仲間キャラクタ202に近づいた状況である。このように、プレイヤキャラクタ201は、仲間キャラクタに近づくことで、当該仲間キャラクタに対して準備指示を行うことができる。準備指示とは、スキル動作を行うことが可能な準備状態となることを仲間キャラクタに指示するものである。つまり、仲間キャラクタは、準備指示が行われたことに応じて、スキル動作を実行可能な準備状態となる。
【0079】
なお、本実施形態においては、プレイヤキャラクタ201の前方においてプレイヤキャラクタ201から所定距離内の領域にアクション範囲が設定される(後述する
図15参照)。詳細は後述するが、本実施形態においては、プレイヤキャラクタ201は、アクション範囲内のオブジェクト(仲間キャラクタを含む意味である)に対してアクションを行うことができる。このアクションは、オブジェクトに応じた動作であり、例えば、仲間キャラクタに対する準備指示を行う動作や、アイテムを取得する動作である。プレイヤキャラクタ201のアクション範囲内に仲間キャラクタが位置する場合、プレイヤキャラクタ201は当該仲間キャラクタに対して準備指示を行うことができる。
【0080】
また、
図8に示すように、プレイヤキャラクタ201が仲間キャラクタ202に準備指示を行うことが可能な状況においては、ゲームシステム1は、準備指示を示す準備指示画像208をゲーム空間の画像とともに表示する。これによって、準備指示が可能であることをプレイヤに通知することができる。なお、準備指示画像208は、準備指示の対象となる仲間キャラクタをプレイヤに通知するべく、プレイヤキャラクタ201または仲間キャラクタ202の近傍に表示される。また、準備指示画像208は、準備指示を行うための操作入力(ここでは、右コントローラ4のAボタン53を押下する入力)を示す画像を含む。これによって、準備指示を行うための操作入力をプレイヤに通知することができる。
【0081】
図8に示す状況において準備指示が行われた(すなわち、準備指示を行うための操作入力が行われた)ことに応じて、ゲームシステム1は、準備指示の対象となった仲間キャラクタ202を準備状態とする。
図9は、仲間キャラクタ202が準備状態となった状況におけるゲーム画像の一例を示す図である。ここで、仲間キャラクタ202のスキル動作は、プレイヤキャラクタ201の背後からプレイヤキャラクタ201の前方に向けて風を発生させるものである。そのため、ゲームシステム1は、準備状態となる仲間キャラクタ202に、プレイヤキャラクタ201の背後に移動する動作を行わせる(
図9参照)。なお、仲間キャラクタ202は、風を発生させることで、例えば、ゲーム空間に配置されているオブジェクトを風で飛ばしたり、空中を滑空するアイテムを使用中であるプレイヤキャラクタ201を風によって移動させたりする(つまり、プレイヤキャラクタ201が風を受けて空中を移動する)ことができる。なお、仲間キャラクタが準備状態となる場合、ゲームシステム1は、準備状態であること、および、スキル動作の内容をユーザに認識させるべく、スキル動作に応じたエフェクト画像を表示したり、スキル動作に応じた予備動作を仲間キャラクタに行わせたりしてもよい。
【0082】
仲間キャラクタが準備状態となっている場合、プレイヤキャラクタ201は、当該仲間キャラクタに対して実行指示を行うことでスキル動作を行わせることができる。
図9に示すように、仲間キャラクタ202が準備状態となっている状況においては、ゲームシステム1は、実行指示を示す実行指示画像209をゲーム空間の画像とともに表示する。これによって、実行指示が可能であることをプレイヤに通知することができる。なお、実行指示画像209は、実行指示の対象となる仲間キャラクタをプレイヤに通知するべく、プレイヤキャラクタ201または仲間キャラクタ202の近傍に表示される。また、実行指示画像209は、実行指示を行うための操作入力(ここでは、右コントローラ4のAボタン53を押下する入力)を示す画像を含む。これによって、実行指示を行うための操作入力をプレイヤに通知することができる。
【0083】
図9に示す状況において実行指示が行われた(すなわち、実行指示を行うための操作入力が行われた)ことに応じて、ゲームシステム1は、実行指示の対象となった仲間キャラクタ202にスキル動作を行わせる。
図10は、仲間キャラクタ202がスキル動作を行った状況におけるゲーム画像の一例を示す図である。
図10に示す例においては、仲間キャラクタ202は、実行指示に応じて、プレイヤキャラクタ201の前方に向けて風を発生させるスキル動作を行う。プレイヤは、プレイヤキャラクタ201の向きを変更する操作(例えば、左コントローラ3のアナログスティック32に対する操作)によって、プレイヤキャラクタ201の向きを指定することを通じて風の向きを指定しつつ、上記実行指示に応じて、指定した向きに風を発生させることができる。
【0084】
なお、
図10に示す例においては、仲間キャラクタ202にスキル動作を行わせる方向をプレイヤが指定するものとした。ここで、仲間キャラクタ202とは異なる他の仲間キャラクタが行う他のスキル動作は、スキル動作による目標位置をプレイヤが指定することができるものであってもよい。例えば、スキル動作は、ゲーム空間においてプレイヤが指定した位置に所定の攻撃を行う動作であってもよい。具体的には、スキル動作は、プレイヤによる操作に応じてプレイヤキャラクタが矢を放った場合において、矢が着弾した位置に仲間キャラクタが遠隔攻撃をする動作であってもよい。スキル動作は、プレイヤによる操作に応じてプレイヤキャラクタが向く方向に向けてプレイヤキャラクタから射出攻撃をする動作であってもよい。また、各仲間キャラクタがそれぞれ行う各スキル動作のうちには、方向および位置を指定する必要がない動作が含まれていてもよい。例えば、ある仲間キャラクタのスキル動作は、仲間キャラクタを中心として周囲全体を攻撃する動作であってもよいし、プレイヤキャラクタと合体する動作であってもよい。
【0085】
また、
図10に示す例においては、実行指示を行うための操作入力は、準備指示を行うための操作入力と同じ、右コントローラ4のAボタン53を押下する入力である。これによれば、準備指示と実行指示とをプレイヤにとってわかりやすい操作で行うことができ、仲間キャラクタにスキル動作を行わせるための操作の操作性を向上することができる。ただし、他のスキル動作について実行指示を行うための操作入力は、準備指示を行うための操作入力とは異なるものであってもよい。例えば、上記の矢が着弾した位置に対して仲間キャラクタが遠隔攻撃をするスキル動作については、プレイヤキャラクタが矢を放つための操作入力が、実行指示を行うための操作入力として機能する。矢を放つための操作入力は、Aボタン53に対する入力とは異なるものであってもよい。
【0086】
上記のように、本実施形態においては、プレイヤキャラクタは、仲間キャラクタに対してまず準備指示を行い、準備指示に応じて準備状態となった仲間キャラクタに対して実行指示を行うことで、当該仲間キャラクタに対してスキル動作を行わせる。すなわち、ゲームシステム1は、プレイヤキャラクタと仲間キャラクタとが近いことを示す所定の位置関係となる(具体的には、上記アクション範囲に仲間キャラクタが位置する)状態でユーザによる操作入力が行われたことに応じて、当該仲間キャラクタに対応する制御(具体的には、スキル動作を行わせる制御)の準備状態へと当該仲間キャラクタを移行させる。そして、ゲームシステム1は、仲間キャラクタが上記準備状態となる場合において、ユーザによる方向または位置の指定を含む操作入力(具体的には、プレイヤキャラクタの向きを指定する入力と、実行指示を行う入力とからなる入力)が行われたことに応じて、指定された方向または位置に向けて上記制御を実行する。プレイヤキャラクタが仲間キャラクタと所定の位置関係となるためには当該仲間キャラクタに近づく必要があるところ、プレイヤキャラクタは当該仲間キャラクタの方向を向いて移動する可能性がある。このとき、操作入力に応じて即座にスキル動作が実行されると、プレイヤの意図とは異なり、スキル動作が例えばプレイヤキャラクタから仲間キャラクタに向かう方向に向けて実行される可能性がある。この点、上記によれば、プレイヤは準備指示を行ってから、方向または位置を指定して実行指示を行うので、例えば、意図しない方向または位置に向かってスキル動作が行われたり、スキル動作を行わせる意図がないにもかかわらずスキル動作が行われたりするといった誤操作の可能性を低減することができる。これによってゲームの操作性を向上することができる。
【0087】
なお、上記「ユーザによる方向または位置の指定を含む操作入力」とは、方向または位置を指定する入力のみであってもよい。例えば、ゲームシステム1は、準備指示に応じて仲間キャラクタを準備状態としてから所定時間が経過した時点で、その時点で指定されている方向(すなわち、プレイヤキャラクタの向き)に向かって当該仲間キャラクタにスキル動作を行わせるようにしてもよい。また、上記「ユーザによる方向または位置の指定を含む操作入力」とは、方向または位置を指定する入力と、準備指示を行う入力を解除する入力とによって行われるものであってもよい。例えば、ゲームシステム1は、上記Aボタン53を押下する入力によって仲間キャラクタを準備状態とした後(このとき、Aボタン53は押下し続けられている状態である)、方向を指定する入力を受け付けつつ、当該Aボタン53の押下が解除されたことに応じて、解除時に指定されていた方向に向かって当該仲間キャラクタにスキル動作を行わせるようにしてもよい。
【0088】
なお、他の実施形態においては、ゲームシステム1は、準備指示を受け付けることなく実行指示を受け付けるようにしてもよい。すなわち、ゲームシステム1は、プレイヤキャラクタの上記アクション範囲内に仲間キャラクタが位置する状態において実行指示を受け付け、プレイヤによって実行指示が行われたことに応じて当該仲間キャラクタにスキル動作を行わせるようにしてもよい。
【0089】
本実施形態においては、仲間キャラクタがスキル動作を行った場合、当該スキル動作が行われてから所定の待機時間が経過した後でなければ、当該仲間キャラクタは再度のスキル動作を実行することができないものとする。すなわち、ゲームシステム1は、仲間キャラクタに対応するスキル動作の制御の実行から待機時間が経過したことを条件として当該制御の再度の実行を許容する。これによれば、スキル動作を高い頻度で仲間キャラクタに行わせることでプレイヤが有利になりすぎることを抑制することができる。また、ある仲間キャラクタにスキル動作を行わせた直後は、他の仲間キャラクタについてのみスキル動作を行わせることができる状態となるので、1つの仲間キャラクタだけでなく他の仲間キャラクタについてもスキル動作を行わせる動機付けをプレイヤに与えることができる。これによって、複数の仲間キャラクタと協力してゲームを進める動機付けをプレイヤに与えることができる。なお、各仲間キャラクタに関する待機時間は、各仲間キャラクタについて同じであってもよいし、仲間キャラクタ毎に異なっていてもよい。また、図示しないが、ゲームシステム1は、スキル動作が行われてから上記待機時間が経過する前においてプレイヤキャラクタのアクション範囲に仲間キャラクタが入った場合、当該仲間キャラクタに関する上記待機時間が経過するまでの残り時間を示す画像(例えば、残り時間を示すゲージ)を表示するようにしてもよい。
【0090】
なお、他の実施形態においては、ゲームシステム1は、仲間キャラクタがスキル動作を行った後において、待機時間を待つことなく、当該仲間キャラクタに再度のスキル動作を行わせるようにしてもよい。また、他の実施形態においては、ゲームシステム1は、仲間キャラクタ毎のスキル動作について待機時間を設定することに代えて、任意の仲間キャラクタに対するプレイヤキャラクタによる実行指示について待機時間を設定するようにしてもよい。すなわち、ゲームシステム1は、プレイヤキャラクタが任意の仲間キャラクタに対して実行指示を行ってから待機時間が経過したことを条件として、各仲間キャラクタに対するプレイヤキャラクタによる実行指示を許容するようにしてもよい。
【0091】
[2-2.仲間キャラクタの移動を制御する処理]
次に、各仲間キャラクタの移動を制御する処理について説明する。本実施形態においては、ゲームシステム1は、プレイヤキャラクタ201の移動に応じて各仲間キャラクタ202~206の移動を制御する。本実施形態においては、ゲームシステム1は、各仲間キャラクタ202~206の移動を制御する制御モードとして、同行モードと、待機モードとの少なくともいずれかをとり得る。同行モードは、プレイヤキャラクタ201の移動に応じて当該プレイヤキャラクタ201に同行するように各仲間キャラクタ202~206を移動させる制御を行う。待機モードは、仲間キャラクタの移動を停止させ、その場に待機させる制御モードである。待機モードにおいては、ゲームシステム1は、プレイヤキャラクタ201の移動の停止に応じて、当該プレイヤキャラクタ201を含む所定の範囲(後述する基準範囲)内で各仲間キャラクタ202~206の移動を停止させる制御を行う。上記によって、ゲームシステム1は、複数の仲間キャラクタの移動を制御することができる。また、ゲームシステム1は、複数の仲間キャラクタのうちから所望の仲間キャラクタにプレイヤキャラクタ201を近づけやすくすることができ、上記のスキル動作に関する指示を行いやすくすることができる。
【0092】
なお、他の実施形態においては、ゲームシステム1は、同行モードおよび待機モードとは異なる制御モードで各仲間キャラクタ202~206の移動等を制御することが可能であってもよい。
【0093】
図11は、同行モードで各仲間キャラクタ202~206が移動しているときのゲーム画像の一例を示す図である。同行モードにおいては、各仲間キャラクタ202~206は、プレイヤキャラクタ201の移動に応じて、プレイヤキャラクタ201に同行するように移動する。詳細は後述するが、各仲間キャラクタ202~206は、プレイヤキャラクタ201の近くにおいて、プレイヤキャラクタ201の移動方向と略同じ方向に移動するように制御される。
図11に示す例においては、プレイヤキャラクタ201は、プレイヤによる操作入力に応じてゲーム画像における奥側へ移動しているものとする。このとき、各仲間キャラクタ202~206は、プレイヤキャラクタ201がゲーム画像における奥側へ移動することに応じて、奥側へ移動する(
図11に示す矢印参照)。
【0094】
なお、「プレイヤキャラクタに同行するように移動する」とは、プレイヤキャラクタの近くにおいてプレイヤキャラクタと略同じ方向に移動するような移動態様を指すが、プレイヤキャラクタから一定の距離内に仲間キャラクタが常に位置するように移動する態様に限定される意味ではない。同行モードにおいて、仲間キャラクタは、何らかの理由によって(例えば、障害物を迂回する等の理由によって)プレイヤキャラクタから離れることがあってもよい。つまり、「プレイヤキャラクタに同行するように移動する」場合において、プレイヤキャラクタと仲間キャラクタとの位置関係は固定である必要はない。また、「プレイヤキャラクタに同行するように移動する」場合、仲間キャラクタはプレイヤキャラクタの移動方向と概ね同じ方向に移動するが、仲間キャラクタの移動方向とプレイヤキャラクタの移動方向とが常に厳密に一致する必要はない。例えば、ゲームシステム1は、仲間キャラクタがプレイヤキャラクタに同行するように移動している間において、例えば、障害物を避ける目的や、仲間キャラクタの移動が自然に見えるようにする目的で、プレイヤキャラクタの移動方向とは異なる方向に仲間キャラクタを移動させることがあってもよい。
【0095】
図12は、同行モードにおける各キャラクタ201~206の配置の一例を示す図である。本実施形態においては、ゲームシステム1は、各仲間キャラクタ202~206についての目標位置を設定し、目標位置に向けて各仲間キャラクタ202~206を移動させることで移動制御を行う。同行モードにおいては、ゲームシステム1は、各仲間キャラクタ202~206についての移動目標位置211~215をそれぞれ設定する(
図12参照)。
【0096】
移動目標位置211~215は、プレイヤキャラクタ201の移動方向(プレイヤキャラクタ201の向きとも言える)と位置とに基づいて設定される。本実施形態においては、各移動目標位置211~215は、プレイヤキャラクタ201の移動方向に関して斜め前の予め定められた位置にそれぞれ設定される(
図12参照)。なお、
図12に示す例においては、5つの移動目標位置211~215のうち3つの移動目標位置213~215がプレイヤキャラクタ201の左側に設定される。ただし、ゲームシステム1は、ゲームの状況によっては、5つの移動目標位置211~215のうち3つの移動目標位置をプレイヤキャラクタ201の右側に設定してもよい(例えば、移動目標位置215は、移動目標位置214の前に設定されることに代えて、移動目標位置212の前に設定されてもよい。)。例えば、移動目標位置を設定する時点でプレイヤキャラクタ201の右側に位置する仲間キャラクタの数が左側に位置する仲間キャラクタの数よりも多い場合には、5つの移動目標位置211~215のうち3つの移動目標位置をプレイヤキャラクタ201の右側に設定してもよい。
【0097】
上記のようにして移動目標位置を設定すると、ゲームシステム1は、仲間キャラクタと移動目標位置との対応関係(すなわち、各仲間キャラクタがそれぞれ向かうべき移動目標位置)を設定する。なお、上記対応関係は、複数の仲間キャラクタが同じ移動目標位置に対応付けられないように(すなわち、仲間キャラクタ毎に異なる移動目標位置が対応付けられるように)設定される。本実施形態においては、ゲームシステム1は、各仲間キャラクタの現在位置と各移動目標位置とに基づいて上記対応関係を設定する。具体的には、各仲間キャラクタとそれらに対応する各移動目標位置との距離が最も小さくなるように、上記対応関係が設定される。例えば、ゲームシステム1は、各仲間キャラクタがそれぞれ移動目標位置へ移動するときの距離の合計が最も小さくなるように、上記対応関係を設定する。したがって、
図12に示す例においては、各仲間キャラクタ202~206にはそれぞれ、自身に最も近い移動目標位置が対応付けられ、各仲間キャラクタ202~206は当該移動目標位置に向かって移動する(
図12に示す点線矢印参照)。上記によれば、各仲間キャラクタ202~206が例えば互いに交差して移動する可能性を低減することができる。そのため、各仲間キャラクタ202~206を移動目標位置へと迅速に移動させることができるとともに、各仲間キャラクタ202~206の移動の際の挙動を自然なものとすることができる。
【0098】
なお、上記対応関係を設定する方法は任意である。他の実施形態においては、上記対応関係は、仲間キャラクタと移動目標位置との位置関係によらず固定であってもよい。例えば、仲間キャラクタ202には、プレイヤキャラクタ201の右斜め前の移動目標位置211が常に対応付けられ、仲間キャラクタ202は常に移動目標位置211に向けて移動するように制御されてもよい。
【0099】
仲間キャラクタと移動目標位置との対応関係が設定されると、ゲームシステム1は、各仲間キャラクタ202~206を、対応する移動目標位置へ向けてそれぞれ移動させる。なお、ゲームシステム1は、仲間キャラクタを移動目標位置の方へ移動させればよく、必ずしも移動目標位置に到達するように移動させる必要はない。例えば、ゲームシステム1は、移動速度に上限を設けて、仲間キャラクタを移動目標位置に向けて移動させてもよい。本実施形態においては、ゲームシステム1は、仲間キャラクタの移動速度は、上限速度以下の速度で当該仲間キャラクタに対応する移動目標位置に到達可能である場合には、移動目標位置に到達する速度に設定され、到達不可能な場合には、上限速度に設定される。本実施形態においては、仲間キャラクタが移動目標位置に到達しやすくするべく、上限速度は、プレイヤキャラクタ201の移動速度の上限よりも速い速度に設定される。なお、上限速度は、仲間キャラクタ毎に異なっていてもよいし、同じであってもよい。また、仲間キャラクタの上限速度は、一定である必要はなく、ゲーム状況に応じて可変に制御されてもよい。
【0100】
同行モードにおいては、ゲームシステム1は、移動目標位置の設定処理と、移動目標位置に向けて各仲間キャラクタ202~206を移動させる移動処理とを、所定時間毎(具体的には、1フレーム時間毎)に繰り返し実行する。つまり、プレイヤキャラクタ201の移動に応じて移動目標位置が逐次変化して設定され、各仲間キャラクタ202~206は、逐次変化する移動目標位置に向けての移動を繰り返す。これによって、同行モードにおいては、各仲間キャラクタ202~206がプレイヤキャラクタ201に同行するように移動することとなる。例えば、プレイヤキャラクタ201が直進する場合、移動目標位置は、プレイヤキャラクタ201との位置関係が変化しないようにプレイヤキャラクタ201の進行方向と同じ方向に移動するように設定され、その結果、各仲間キャラクタ202~206もプレイヤキャラクタ201の進行方向と同じ方向に移動する。なお、上記のようにプレイヤキャラクタ201と移動目標位置との位置関係は変化しないものの、各仲間キャラクタの配置によっては移動目標位置と仲間キャラクタとの対応関係は変化することもある。
【0101】
以上のように、本実施形態においては、各移動目標位置211~215は、プレイヤキャラクタ201よりも前側に設定される(
図12参照)。これによって、ゲームシステム1は、プレイヤキャラクタ201の移動に応じて、当該プレイヤキャラクタ201が前を向いて前方に移動するときには当該プレイヤキャラクタ201よりも前側に仲間キャラクタが位置するように当該仲間キャラクタを移動させることとなる。つまり、同行モードにおいては、各仲間キャラクタ202~206は、プレイヤキャラクタ201よりも前を移動することとなる。これによれば、同行モードにおいて、ゲーム画像を生成するための仮想カメラがプレイヤキャラクタ201の前方を向くように設定される場合には、各仲間キャラクタ202~206が仮想カメラの視野範囲に入りやすくなる。その結果、各仲間キャラクタ202~206を含むゲーム画像(
図11参照)が生成されやすくなる。したがって、プレイヤは、同行モードにおいて各仲間キャラクタ202~206の位置を把握しやすくなる。なお、他の実施形態においては、同行モードにおける各仲間キャラクタ202~206の配置は任意であり、いくつかの仲間キャラクタは、プレイヤキャラクタ201よりも後を移動するように制御されてもよい。
【0102】
なお、本実施形態においては、プレイヤキャラクタ201および各仲間キャラクタ202~206は、上から見てV字型に配置される(
図12参照)。つまり、各キャラクタ201~206は左右方向に関して異なる位置に配置されるので、仮想カメラがプレイヤキャラクタ201の前方を向くように設定される場合において各キャラクタ201~206が重ならずに見やすく配置される。なお、上記「V字型に配置される」とは、各キャラクタ201~206が厳密なV字を表すように配置される態様に限定されず、前方に行くにしたがって概ね横に拡がるように配置される態様を含む意味である。
【0103】
なお、仲間キャラクタは、同行モードにおいて常にプレイヤキャラクタよりも前側に位置している必要はない。上述のように、仲間キャラクタは、何らかの理由によって(例えば、障害物を迂回する等の理由によって)プレイヤキャラクタから離れることがあってもよく、このとき、プレイヤキャラクタの後方に位置することがあってもよい。
【0104】
また、同行モードにおいて、仲間キャラクタがプレイヤキャラクタから離れた位置となった場合、ゲームシステム1は、プレイヤキャラクタに近い位置に当該仲間キャラクタを再配置する(ワープさせるとも言える)ようにしてもよい。例えば、仲間キャラクタがプレイヤキャラクタから所定距離以上離れた場合、ゲームシステム1は、当該仲間キャラクタをゲーム空間から一旦退場させてから、プレイヤキャラクタの近くの位置に当該仲間キャラクタを再配置してもよい。これによれば、プレイヤキャラクタから離れた位置の仲間キャラクタを移動目標位置に迅速に到達させることができる。なお、上記のように仲間キャラクタを再配置する場合、ゲームシステム1は、仮想カメラの視野範囲外の位置を再配置の位置としてもよい。これによれば、仲間キャラクタがプレイヤキャラクタの近くに急に現れることでプレイヤが違和感を抱く可能性を低減することができる。
【0105】
図13は、同行モードにおいてプレイヤキャラクタ201が移動方向を変えたときの各キャラクタ201~206の配置の一例を示す図である。
図13に示す例は、
図13における上方向にプレイヤキャラクタ201が移動していた状態から、プレイヤキャラクタ201が仲間キャラクタ202および203の方へ移動方向を変化させた状況を示している。
図13に示す例においては、直前までプレイヤキャラクタ201が
図13における上方向に移動していたため、各仲間キャラクタ202~206は、プレイヤキャラクタ201よりも、
図13における上側に配置されている。
【0106】
図13に示すように、同行モードにおいてプレイヤキャラクタ201が仲間キャラクタ202および203の方へ移動する場合、プレイヤは、プレイヤキャラクタ201を仲間キャラクタ202または203に近づけて、仲間キャラクタ202または203に対してスキル動作に関する指示を行う意思があると推測される。これに対して、同行モードにおいては、上述のように各仲間キャラクタ202~206はプレイヤキャラクタ201の移動方向に基づく移動目標位置に向けて移動するので、プレイヤキャラクタ201が仲間キャラクタ202および203の方へ移動しても、仲間キャラクタ202および203はプレイヤキャラクタ201から離れる方向へ移動することとなる。その結果、プレイヤキャラクタ201が仲間キャラクタ202および203に追いつくことが難しく、仲間キャラクタ202または203に対してスキル動作に関する指示を行うことが難しいおそれがある。
【0107】
そこで、本実施形態においては、プレイヤキャラクタ201が仲間キャラクタの方へ移動する場合、ゲームシステム1は、プレイヤキャラクタ201が当該仲間キャラクタに近づきやすくするべく、当該仲間キャラクタの移動速度を減少させる。
図13に示す例においては、ゲームシステム1は、プレイヤキャラクタ201が近づこうとしている仲間キャラクタ202および203の移動速度を減少させる(
図13に示す矢印参照)。これによって、プレイヤキャラクタ201は仲間キャラクタ202および203に容易に追いつくことができる。
【0108】
なお、
図13に示す例において、その他の仲間キャラクタ204~206については、移動速度は減少されず、上述した通常の方法で設定される移動速度(すなわち、上限速度以下の速度で当該仲間キャラクタに対応する移動目標位置に到達可能である場合には、当該移動目標位置に到達する速度。到達不可能な場合には、上限速度。)が維持される。なお、
図13に示すようにプレイヤキャラクタ201が移動方向を変えた場合、仲間キャラクタ204~206について移動目標位置が大きく変化し、移動目標位置はそれに対応する仲間キャラクタから離れた位置となり得る。ただし、各仲間キャラクタ204~206の上限速度がプレイヤキャラクタ201の移動速度よりも速く設定されるとすれば、仲間キャラクタ204~206の移動速度はプレイヤキャラクタ201の移動速度よりも速くなるので、上記の場合には仲間キャラクタ204~206は移動目標位置に到達することができる。
【0109】
以上のように、本実施形態においては、ゲームシステム1は、仲間キャラクタが同行モードにおける移動を行っている場合にプレイヤキャラクタが当該仲間キャラクタの方へ移動することに応じて、当該仲間キャラクタの移動速度をプレイヤキャラクタの移動速度よりも遅くする。これによれば、プレイヤキャラクタが仲間キャラクタに容易に追いつくことができるので、同行モードにおいても仲間キャラクタに対する指示を行いやすくすることができる。なお、他の実施形態においては、ゲームシステム1は、プレイヤキャラクタが仲間キャラクタの方向へ移動しているか否かによって当該仲間キャラクタの移動速度を変化させる処理を実行しなくてもよい。
【0110】
なお、プレイヤキャラクタが仲間キャラクタの方へ移動しているか否かを判定する具体的な方法は任意である。例えば、ゲームシステム1は、プレイヤキャラクタの移動方向と、プレイヤキャラクタから仲間キャラクタへ延びる線分とのなす角度が所定角度未満である場合、プレイヤキャラクタが仲間キャラクタの方へ移動していると判定し、当該角度が所定角度以上である場合、プレイヤキャラクタが仲間キャラクタの方へ移動していないと判定する。
【0111】
また、仲間キャラクタの移動速度をプレイヤキャラクタの移動速度よりも遅くするとは、例えば、仲間キャラクタの移動速度を、プレイヤキャラクタの移動速度の通常の上限値よりも低い速度に変更したり、移動速度の上限値を通常時よりも低く変更したり、プレイヤキャラクタの現在の移動速度よりも低い速度に変更したりすることを含む意味である。また、仲間キャラクタの移動速度をプレイヤキャラクタの移動速度よりも遅くするとは、当該仲間キャラクタの移動速度を0にする(つまり、移動を停止させる)ことを含む意味である。なお、プレイヤキャラクタの移動速度は、プレイヤによる操作入力によって(例えば、左コントローラ3のアナログスティック32を傾倒させる度合いによって)変化するように制御されてもよい。
【0112】
図14は、待機モードにおける各キャラクタ201~206の配置の一例を示す図である。本実施形態においては、ゲームシステム1は、同行モードにおいてプレイヤキャラクタ201の移動が停止した時点で、制御モードを同行モードから待機モードに移行する。待機モードにおいては、同行モードにおいて移動していた各仲間キャラクタ202~206は、プレイヤキャラクタ201を基準とした基準範囲220内で停止するように制御される。
【0113】
待機モードにおいても同行モードと同様、ゲームシステム1は、各仲間キャラクタ202~206についての目標位置を設定する。具体的には、待機モードにおいては、各仲間キャラクタ202~206について停止目標位置221~225が設定される(
図14参照)。各仲間キャラクタ202~206は、一定条件下で停止目標位置221~225へ移動して停止するように制御される。
【0114】
本実施形態においては、待機モードにおいて、ゲームシステム1は、プレイヤキャラクタ201の位置に基づいて基準範囲220を設定する。具体的には、基準範囲220は、プレイヤキャラクタ201の位置から第1距離内の範囲である(
図14参照)。
図14に示すように、設定される各停止目標位置221~225は、上記の基準範囲220内に位置している。
【0115】
上記のように、本実施形態においては、ゲームシステム1は、プレイヤキャラクタの移動の停止に応じて仲間キャラクタが移動を停止する目標となる停止目標位置を、当該プレイヤキャラクタが移動を停止した位置に基づく基準範囲内に設定する。これによれば、プレイヤキャラクタが移動を停止した際にはプレイヤキャラクタの周囲に仲間キャラクタが配置されることとなるので、プレイヤキャラクタは仲間キャラクタに近づきやすくなる。したがって、プレイヤは、仲間キャラクタに対してスキル動作に関する指示を行いやすくなる。
【0116】
なお、本実施形態においては、各停止目標位置221~225はそれぞれ、基準範囲220の外周付近に設定される。例えば、各停止目標位置221~225は、停止目標位置221~225に各仲間キャラクタ202~205がそれぞれ位置するとしたときに当該各仲間キャラクタ202~205の位置に基づいて設定される後述の追加範囲の一部が基準範囲220の外側となるような位置(
図16参照)に設定される。ただし、他の実施形態においては、各停止目標位置221~225は基準範囲220内の任意の位置に設定されてもよい。また、他の実施形態においては、各停止目標位置221~225は、基準範囲220外の位置に設定されてもよい。
【0117】
図14に示すように、本実施形態においては、各停止目標位置221~225は、プレイヤキャラクタ201を囲むように設定される。具体的には、停止目標位置221~225は、それぞれ、プレイヤキャラクタ201の右後方、右前方、左後方、左前方、および、前方に設定される。つまり、停止目標位置が3つ以上である場合において、各停止目標位置は、当該各停止目標位置を頂点とする多角形の内側にプレイヤキャラクタ201が配置されるように設定される。したがって、ゲームシステム1は、プレイヤキャラクタ201の移動の停止に応じて、複数の仲間キャラクタ202~206によって当該プレイヤキャラクタ201が囲まれる位置で当該複数の仲間キャラクタ202~206の移動をそれぞれ停止させることとなる。これによれば、いずれの仲間キャラクタ202~206に対してもプレイヤキャラクタ201が近づきやすい位置関係で各仲間キャラクタ202~206が配置されるので、プレイヤは、いずれの仲間キャラクタ202~206に対しても、スキル動作に関する指示を行いやすくなる。また、仲間キャラクタ間の距離を空けて配置しやすくなるので、プレイヤキャラクタ201のアクション範囲内に複数の仲間キャラクタが同時に含まれにくくなる。プレイヤキャラクタ201のアクション範囲内に複数の仲間キャラクタが同時に含まれると、プレイヤが意図していない仲間キャラクタに対してスキル動作に関する指示を行ってしまう可能性がある一方、上記のように各停止目標位置221~225を設定することで、このような可能性を低減することができる。
【0118】
また、本実施形態においては、ゲームシステム1は、2つの停止目標位置が同時に上記アクション範囲内に位置することがないように、各停止目標位置221~225をそれぞれ設定する。より具体的には、ゲームシステム1は、任意の2つの停止目標位置間の距離が、アクション範囲の最も長い部分の幅よりも長くなるように、各停止目標位置221~225を設定する。これによれば、上述したような、プレイヤが意図していない仲間キャラクタに対してスキル動作に関する指示を行ってしまう可能性を、より確実に低減することができる。
【0119】
なお、待機モードにおいて各仲間キャラクタ202~206を停止させる位置は任意であり、各仲間キャラクタ202~206は、プレイヤキャラクタ201を囲むような配置で停止する必要はない。例えば、他の実施形態においては、プレイヤキャラクタ201よりも前側の位置で各仲間キャラクタ202~206が停止してもよい。また例えば、他の実施形態においては、2つの停止目標位置が同時に上記アクション範囲内に位置することがあり得るような配置で各停止目標位置221~225が設定されてもよい。
【0120】
上記のようにして停止目標位置を設定すると、ゲームシステム1は、仲間キャラクタと停止目標位置との対応関係(すなわち、各仲間キャラクタがそれぞれ向かうべき停止目標位置)を設定する。仲間キャラクタと停止目標位置との対応関係は、上述した、仲間キャラクタと移動目標位置との対応関係を設定する場合と同様に設定されてもよい。すなわち、ゲームシステム1は、各仲間キャラクタとそれらに対応する各移動目標位置との距離が最も小さくなるように、上記対応関係を設定する。
【0121】
なお、仲間キャラクタと停止目標位置との対応関係を設定する方法は任意である。仲間キャラクタと停止目標位置との対応関係を設定する方法は、仲間キャラクタと移動目標位置との対応関係を設定する方法とは異なるものであってもよい。例えば、他の実施形態においては、仲間キャラクタと停止目標位置との対応関係は、各仲間キャラクタと各停止目標位置との位置関係によらず固定であってもよい。
【0122】
本実施形態においては、ゲームシステム1は、待機モードの開始時(すなわち、プレイヤキャラクタ201が移動を停止した時点)において上記停止目標位置221~225を設定する。
【0123】
仲間キャラクタと停止目標位置との対応関係が設定されると、ゲームシステム1は、停止目標位置に基づいて各仲間キャラクタ202~206の移動を制御する。
図14に示す例において、ゲームシステム1は、仲間キャラクタ202~206のうち、上記基準範囲220外に位置する仲間キャラクタ203,205,および206を、それぞれ対応する停止目標位置まで移動させてから停止させる。これによって、待機モードにおいては各仲間キャラクタ203,205,および206が基準範囲220内で停止することとなる。例えば、同行モードにおいてプレイヤキャラクタ201の前方に設定される各移動目標位置の近傍に各仲間キャラクタ203,205,および206が位置する状態においてプレイヤキャラクタ201が停止したことによって、各仲間キャラクタ203,205,および206が
図14に示す配置となる場合、各仲間キャラクタ203,205,および206は、待機モードとなった時点で基準範囲220外に位置するので、それぞれ停止目標位置222,224,および225まで移動してから停止する。
【0124】
上記のように、本実施形態においては、ゲームシステム1は、プレイヤキャラクタが移動を停止した時点において仲間キャラクタが基準範囲外に位置する場合、当該仲間キャラクタを基準範囲220内に移動させてから停止させる。これによれば、プレイヤキャラクタが移動を停止した際に、プレイヤキャラクタの周囲に仲間キャラクタを配置することができるので、プレイヤは、仲間キャラクタに対してスキル動作に関する指示を行いやすくなる。なお、他の実施形態においては、プレイヤキャラクタが移動を停止した際において仲間キャラクタを停止させるための制御方法は任意であり、ゲームシステム1は、基準範囲220外の位置で仲間キャラクタを停止させてもよい。
【0125】
上記のように、待機モードに移行した時点において仲間キャラクタが基準範囲外に位置する場合、当該仲間キャラクタは、基本的には基準範囲220内の停止目標位置で停止する。ただし、プレイヤキャラクタがアクションを行うことが可能なオブジェクト(「アクション対象オブジェクト」と呼ぶ)が停止目標位置の近くに配置される場合、仲間キャラクタは停止目標位置とは異なる位置で停止する。
【0126】
図15は、プレイヤキャラクタ201の近くにアクション対象オブジェクト227が配置される様子の一例を示す図である。アクション対象オブジェクト227は、例えば、プレイヤキャラクタ201が取得することが可能なアイテムや、プレイヤキャラクタ201が開けることが可能な扉や、プレイヤキャラクタ201が話しかけることが可能なノンプレイヤキャラクタ(仲間キャラクタとは異なるノンプレイヤキャラクタ)である。また、上述のように、ゲームシステム1は、プレイヤキャラクタ201の位置および向きに基づいてアクション範囲228を設定する。本実施形態においては、アクション範囲228は、プレイヤキャラクタ201から所定距離内の範囲であって、プレイヤキャラクタ201の前方向を中心として左右に所定の角度の範囲である(
図15参照)。なお、アクション範囲228の形状および大きさは任意である。
【0127】
プレイヤキャラクタ201の上記アクション範囲228内にアクション対象オブジェクト227が配置される場合、プレイヤによる所定の操作入力に応じて、プレイヤキャラクタ201は当該アクション対象オブジェクト227に対してアクションを行う。上記アクションは、アクション対象オブジェクト毎に決められている。例えば、アクション対象オブジェクトがアイテムである場合には、当該アイテムを取得するアクションをプレイヤキャラクタ201が行い、アクション対象オブジェクトが上記ノンプレイヤキャラクタである場合には、当該ノンプレイヤキャラクタに話しかけるアクションをプレイヤキャラクタ201が行う。また、本実施形態においては、上記所定の操作入力は、上記準備指示を行うための操作入力と同じであり、具体的には右コントローラ4のAボタン53を押下する入力である。
【0128】
図15に示す例においては、ゲーム空間にアクション対象オブジェクト227が配置されており、仲間キャラクタ203に対応する停止目標位置222がアクション対象オブジェクト227の近くに設定されている。
図15に示す例においては、例えばプレイヤキャラクタ201がアクション対象オブジェクト227に対するアクションを行うべくアクション対象オブジェクト227に近づいた場合、停止目標位置222がプレイヤキャラクタ201のアクション範囲228内に含まれてしまう。したがって、仮に停止目標位置222に仲間キャラクタ203が位置するとすれば、
図15に示す状況においてアクション対象オブジェクト227と仲間キャラクタ203との両方がアクション範囲228に含まれることになる。この場合、ゲームシステム1は、例えばアクション範囲228内に含まれるオブジェクトのうち一つをアクション対象として採用する。例えば、プレイヤキャラクタ201に最も近いオブジェクトがアクション対象に採用される。そのため、プレイヤは、アクション対象オブジェクト227をアクション対象としたい場合、単にアクション対象オブジェクト227をアクション範囲228内に含ませるようにプレイヤキャラクタ201を移動させるだけでなく、アクション対象オブジェクト227の方を仲間キャラクタ203よりも近い位置まで移動させたり、あるいは仲間キャラクタ228がアクション範囲228内に含まれないような位置および向きとなるように移動させたりする必要がある。
【0129】
そのため、本実施形態においては、待機モードに移行した時点で基準範囲外に位置する仲間キャラクタ203に対応する停止目標位置222がアクション対象オブジェクト227の近くに設定されている場合、ゲームシステム1は、仲間キャラクタ203を当該アクション対象オブジェクト227から離れた位置で停止させる。具体的には、ゲームシステム1は、アクション対象オブジェクト227がアクション範囲228内に位置する状態では、仲間キャラクタ203が当該アクション範囲228内に含まれないような位置222’(さらに、基準範囲220内の位置としてもよい)で、当該仲間キャラクタ203を停止させる。すなわち、ゲームシステム1は、仲間キャラクタ203に対応する停止目標位置を上記位置222’に変更することで、仲間キャラクタ203を当該位置222’に移動してから停止するようにする。なお、上記の位置222’は、アクション対象オブジェクト227と仲間キャラクタ203との間の距離がアクション範囲228の最も長い部分の幅よりも長くなる位置と言うこともできる。以上によれば、プレイヤキャラクタ201がアクション対象オブジェクト227と仲間キャラクタ203との両方に対してアクションを行うことが可能となる状況を生じにくくすることができるので、これらのアクションをプレイヤキャラクタ201に行わせる操作をプレイヤにとって行いやすくすることができる。
【0130】
なお、待機モードに移行した時点で基準範囲外に位置した仲間キャラクタが停止目標位置へと移動している途中において、当該停止目標位置の近くにアクション対象オブジェクトが新たに出現した場合、ゲームシステム1は、アクション対象オブジェクトから離れた位置に停止目標位置を変更する。これによって、待機モードに移行した後で停止目標位置の近くにアクション対象オブジェクトが新たに出現した場合においても、仲間キャラクタまたはアクション対象オブジェクトに対するアクションをプレイヤキャラクタに行わせる操作をプレイヤにとって行いやすくすることができる。
【0131】
また、
図14に示す例において、仲間キャラクタ202~206のうち、待機モードになった時点で上記基準範囲220内に位置する仲間キャラクタ202および204は、停止目標位置まで移動することなく、その場で(つまり、待機モードになった時点の位置で)移動を停止する。このように、ゲームシステム1は、プレイヤキャラクタ201が移動を停止した時に仲間キャラクタが基準範囲202内に位置する場合、当該仲間キャラクタが停止目標位置に位置するか否かにかかわらず、当該仲間キャラクタの移動を停止させる。例えば、同行モードにおいてプレイヤキャラクタ201の前方に設定される各移動目標位置まで各仲間キャラクタ202および204が到達していない状態においてプレイヤキャラクタ201が停止したことによって、各仲間キャラクタ202および204が
図14に示す配置となる場合、プレイヤキャラクタ201の近傍に位置していた各仲間キャラクタ202および204は、待機モードとなった時点で基準範囲220内に位置するので、それぞれ停止目標位置221および223まで移動することなくその場で停止する。
【0132】
なお、プレイヤキャラクタ201が移動を停止した際に、仮にプレイヤキャラクタ201の近くで仲間キャラクタが移動を継続しているとすれば、プレイヤキャラクタ201が移動を停止した際に仲間キャラクタがプレイヤキャラクタ201から離れるように移動する挙動となることもあり、仲間キャラクタのこのような挙動に対してプレイヤが違和感を抱く可能性がある。これに対して、本実施形態によれば、プレイヤキャラクタ201が移動を停止した際にすでにプレイヤキャラクタ201の近くにいる(すなわち、基準範囲220内に位置する)仲間キャラクタについてはすぐに移動を停止させることで、上記の可能性を低減することができる。
【0133】
なお、待機モードになった時点で上記基準範囲内に位置する仲間キャラクタの近くに上記アクション対象オブジェクトが配置されている場合、ゲームシステム1は、当該仲間キャラクタを当該アクション対象オブジェクトから離れた位置で停止させる。すなわち、上記の場合、ゲームシステム1は、待機モードになった時点の位置から、アクション対象オブジェクトから離れた位置まで仲間キャラクタを移動させてから停止させる。なお、停止させる位置は、
図15に示す例において仲間キャラクタ203を停止させる位置(
図15に示す位置222’)を決定する場合と同様にして決定されてもよい。上記によれば、待機モードになった時点で基準範囲内に位置する仲間キャラクタの近くにアクション対象オブジェクトが配置されている場合においても、仲間キャラクタまたはアクション対象オブジェクトに対するアクションをプレイヤキャラクタに行わせる操作をプレイヤにとって行いやすくすることができる。
【0134】
待機モードにおいては、上記のようにして各仲間キャラクタ202~206は基準範囲220内で移動を停止する。なお、待機モードにおいて仲間キャラクタが移動を停止している間、ゲームシステム1は、例えば体を揺らしたり足踏みをしたりする等、移動を伴わない動作を仲間キャラクタに行わせてもよい。これによって、仲間キャラクタの挙動を自然なものとすることができる。
【0135】
図16は、待機モードにおける各キャラクタ201~206の配置の一例を示す図である。本実施形態においては、ゲームシステム1は、待機モード中においてプレイヤキャラクタ201が移動を再開した場合であっても、移動後においてすぐには同行モードを再開せず、プレイヤキャラクタ201が所定の停止範囲229から出たことに応じて、待機モードから同行モードへと移行する。すなわち、プレイヤキャラクタ201が停止範囲229内で移動する間は、ゲームシステム1は制御モードを待機モードから同行モードへと移行せず、制御モードは待機モードに維持される(
図16参照)。また、詳細は後述するが、停止範囲229は、基準範囲220を含む範囲である(
図16参照)。そのため、待機モードにおいて各仲間キャラクタ202~206は停止範囲229内に位置することとなる。以上より、待機モードにおいて、例えば、スキル動作に関する指示を行うべくプレイヤキャラクタ201が仲間キャラクタに近づくように移動しても同行モードへと移行しないため、仲間キャラクタは移動しない。したがって、プレイヤキャラクタ201は所望の仲間キャラクタに容易に近づくことができ、仲間キャラクタに対してスキル動作に関する指示を容易に行うことができる。
【0136】
一方、プレイヤキャラクタ201が停止範囲229外へ出たことに応じて、ゲームシステム1は、制御モードを待機モードから同行モードへと移行する(
図16参照)。同行モードに移行した後は、上述したように、ゲームシステム1は、仲間キャラクタ202~206をプレイヤキャラクタ201に同行するように移動させる制御を再開する。
【0137】
本実施形態においては、上記停止範囲229は、待機モードの開始時において設定された上述の基準範囲220と、各仲間キャラクタ202~206の位置に基づく追加範囲231~235とを含む範囲である。具体的には、停止範囲229は、基準範囲220および各追加範囲231~235の少なくともいずれかの内側となる範囲である。なお、追加範囲231~235は、仲間キャラクタ202~206の位置から第2距離内の範囲である。例えば、第2距離は、基準範囲220の半径である上記第1距離よりも短く設定される。上記より、停止範囲229の外周は、基準範囲220の一部の外周と各追加範囲231~235の一部の外周とによって構成される(ただし、
図16においては、停止範囲229を見やすくする目的で、停止範囲229の外周を、基準範囲220および各追加範囲231~235の外周のやや外側に示している。)。
【0138】
例えば上記の準備指示を行うためにプレイヤキャラクタ201が仲間キャラクタに近づいた際に、少し行きすぎてしまってプレイヤキャラクタ201が基準範囲220の外へと移動してしまう場合も考えられる。ここで、仮に停止範囲229を基準範囲220と同じ範囲であるとすると、上記の場合には、プレイヤの意図に反してプレイヤキャラクタ201が停止範囲229を出てしまうこととなる。その結果、待機モードから同行モードへと移行することで仲間キャラクタが移動を開始してしまうので、プレイヤキャラクタ201が仲間キャラクタに指示を行いにくくなってしまう。そこで、本実施形態においては、基準範囲220に加えて追加範囲231~235も含む停止範囲229を設定することで、上記の場合にプレイヤキャラクタ201が停止範囲229から出にくくすることができる。これによって、プレイヤの意図に反してプレイヤキャラクタ201が停止範囲229を出てしまう可能性を低減することができ、仲間キャラクタに対する指示を行いやすくすることができる。
【0139】
なお、他の実施形態においては、停止範囲229の形状および大きさは任意であり、停止範囲229は基準範囲220と同じ範囲に設定されてもよい。
【0140】
なお、プレイヤキャラクタが停止範囲内に位置するか否かの判定は、停止範囲を設定し、設定された停止範囲内にプレイヤキャラクタが位置するか否かを判定する処理によって行われてもよいし、直接的に停止範囲を設定せず、基準範囲内および追加範囲内の少なくともいずれかにプレイヤキャラクタが位置するか否かを判定する処理によって行われてもよい。後者の処理は、実質的に停止範囲に基づく上記の判定を行うものであると言うことができる。
【0141】
上記のように、本実施形態においては、待機モードへの移行時にノンプレイヤキャラクタをその場で停止させるか否かの判定のために上記基準範囲が用いられる。ここで、他の実施形態においては、ゲームシステム1は、基準範囲とは異なる停止判定用範囲を用いて上記の判定を行うようにしてもよい。
【0142】
図17は、停止判定用範囲の一例を示す図である。
図17に示す例において、停止判定用範囲241は、基準範囲220内の範囲である。すなわち、停止判定用範囲241は、基準範囲220よりも小さく、全体が基準範囲220内に含まれる。具体的には、
図17に示す例においては、基準範囲220は、待機モードへの移行時におけるプレイヤキャラクタ201の位置から所定距離だけ前方に離れた位置を中心とした円形領域である。また、停止判定用範囲241は、プレイヤキャラクタ201の位置を中心とした、基準範囲220よりも半径が小さい円形領域である。なお、「停止判定用範囲241が基準範囲220内の範囲である」とは、停止判定用範囲241の外周の一部が、基準範囲220の外周の一部と重なる態様を含む意味である。また、他の例においては、停止判定用範囲241は、プレイヤキャラクタ201の位置を含まない範囲であってもよい。基準範囲220および停止判定用範囲241の具体的な位置、大きさ、および、形状は任意である。例えば基準範囲220および停止判定用範囲241はともに、プレイヤキャラクタ201の位置を中心とする円形領域であってもよい。
【0143】
また、
図17に示す変形例において、ゲームシステム1は、上記実施形態と同様、基準範囲220内に各停止目標位置221~225を設定する。本変形例においては、各停止目標位置221~225は、停止判定用範囲241外に位置する。なお、他の例においては、各停止目標位置221~225は、停止判定用範囲241内に位置するように設定されてもよい。
【0144】
上記変形例においては、待機モードへの移行時において、ゲームシステム1は、基準範囲220とともに停止判定用範囲241を設定する。そして、ゲームシステム1は、待機モードへの移行時において停止判定用範囲241内に位置する仲間キャラクタ(
図17に示す例においては、仲間キャラクタ202および204)を、その場で停止させる。つまり、ゲームシステム1は、待機モードへの移行時において停止判定用範囲241内に位置する仲間キャラクタについては、当該仲間キャラクタが停止目標位置に位置するか否かにかかわらず、移動を停止させる。
【0145】
一方、待機モードへの移行時において停止判定用範囲241外に位置する仲間キャラクタ(
図17に示す例においては、仲間キャラクタ203,205,および206)については、ゲームシステム1は、当該仲間キャラクタを停止目標位置へ移動させてから停止させる。したがって、本変形例においては、待機モードへの移行時において基準範囲220内に位置しても、停止判定範囲241外に位置する仲間キャラクタ(
図17に示す例においては、仲間キャラクタ206)は、停止目標位置へと移動することとなる。なお、本変形例では、停止目標位置は、上記実施形態と同様、基準範囲220の外周付近に位置する(
図17参照)。そのため、
図17に示す例においては、待機モードへの移行時において基準範囲220内であってかつ停止判定範囲241外に位置する仲間キャラクタ206は、プレイヤキャラクタ201から離れる方向に移動することとなる。また、待機モードへの移行時において基準範囲220外に位置する仲間キャラクタ(
図17に示す例においては、仲間キャラクタ203および205)は、本変形例においても上記実施形態と同様、停止目標位置へと移動することで、基準範囲220外の位置から基準範囲220内の位置に移動してから停止することとなる。以上によって、本変形例においても上記実施形態と同様、各仲間キャラクタ202~206は待機モードにおいて基準範囲220内で移動を停止することとなる。
【0146】
上記変形例のように、ゲームシステム1は、プレイヤキャラクタが移動を停止した時に、基準範囲220内の範囲である停止判定用範囲241内に仲間キャラクタが位置する場合、当該仲間キャラクタが停止目標位置に位置するか否かにかかわらず、当該仲間キャラクタの移動を停止させ、停止判定用範囲241外に仲間キャラクタが位置する場合、当該仲間キャラクタを停止目標位置へ移動させるようにしてもよい。これによれば、待機モードへの移行時において仲間キャラクタが停止目標位置まで移動して停止する場合を上記実施形態に比べて増やすことができる。また、待機モードへの移行時においてプレイヤキャラクタ201の近くにいる仲間キャラクタ(すなわち、停止判定用範囲241内の仲間キャラクタ)については、上記変形例においても上記実施形態と同様に、その場で移動を停止する。そのため、本変形例においても上記実施形態と同様に、プレイヤキャラクタ201が移動を停止した際に近くにいる仲間キャラクタが移動を継続することでプレイヤが違和感を抱く可能性を低減することができる。
【0147】
本実施形態においては、待機モード中において仲間キャラクタ202~206は基本的には移動しないが、下記の第1~第3の例外の場合には待機モード中であっても仲間キャラクタが移動することがある。なお、下記の第1~第3の例外が生じる場合における仲間キャラクタの移動は、プレイヤキャラクタの移動方向とは異なる方向に移動したり、プレイヤキャラクタの移動方向とは無関係の方向に移動したりするものである。この点で、第1~第3の例外が生じる場合における仲間キャラクタの移動は、同行モードにおける仲間キャラクタの移動とは異なる種類の移動であると言うことができる。
【0148】
第1の例外は、仲間キャラクタが戦闘可能状態となる場合である。ここで、本実施形態においては、仲間キャラクタは、敵キャラクタとの戦闘に関する状態として、非戦闘状態、および、戦闘可能状態のうちいずれか1つの状態をとり得るようにゲームシステム1によって制御される。非戦闘状態とは、仲間キャラクタが戦闘を行わない状態であり、戦闘可能状態とは、仲間キャラクタが戦闘可能な状態(すなわち、戦闘に関する動作を行うことができる状態)である。仲間キャラクタが戦闘可能状態となる場合、当該仲間キャラクタは、敵キャラクタに対する攻撃に関する動作(すなわち、攻撃対象となる敵キャラクタの方へ移動する動作や、当該敵キャラクタに対して攻撃する動作)を行うように制御される。本実施形態においては、ゲームシステム1は、所定の戦闘条件が満たされたことに応じて、仲間キャラクタを非戦闘状態から戦闘可能状態へと移行させる。戦闘条件の具体的な内容は任意である。例えば、戦闘条件は、仲間キャラクタ自身またはプレイヤキャラクタが敵キャラクタに発見されたこと、あるいは、仲間キャラクタ自身が敵キャラクタを発見したことである。なお、例えば敵キャラクタが倒される等によって戦闘条件が満たされなくなった場合、仲間キャラクタは戦闘可能状態から非戦闘状態へと戻るように制御される。
【0149】
ゲームシステム1は、戦闘条件が満たされたことで戦闘可能状態となった仲間キャラクタについては、戦闘時の動作アルゴリズムに基づいて動作を制御する。したがって、戦闘可能状態である仲間キャラクタは、待機モード中であっても、戦闘時の動作アルゴリズムに基づいて動作が制御される結果、移動(例えば、敵キャラクタに近づく移動)を行うことがある。
【0150】
なお、待機モード中に仲間キャラクタが戦闘可能状態から非戦闘状態へと戻った場合には、ゲームシステム1は、上記基準範囲内で当該仲間キャラクタを停止させる。例えば、ゲームシステム1は、非戦闘状態に戻った時点の位置が上記基準範囲内であれば当該仲間キャラクタをその場で停止させ、非戦闘状態に戻った時点の位置が上記基準範囲外であれば当該仲間キャラクタを停止目標位置まで移動させてから停止させてもよい。
【0151】
なお、待機モードに限らず同行モードにおいても、仲間キャラクタが戦闘可能状態となることがある。この場合においても、ゲームシステム1は、目標位置(同行モードにおいては移動目標位置)にかかわらず、仲間キャラクタの移動を制御する。すなわち、同行モードにおける移動中であっても、ゲームシステム1は、仲間キャラクタを戦闘可能状態に設定し、移動目標位置にかかわらず、戦闘に関する移動を行わせることがある。
【0152】
上記のように、本実施形態においては、ゲームシステム1は、仲間キャラクタが他のキャラクタとの戦闘を行う戦闘条件が満たされた場合、プレイヤキャラクタが停止範囲外に出ているか否かにかかわらず、当該仲間キャラクタを移動させる。これによれば、待機モード中であっても、戦闘のための自然な動作を仲間キャラクタに行わせることができる。なお、他の実施形態においては、ゲームシステム1は、戦闘可能状態においても非戦闘状態と同様に、目標位置(すなわち、移動目標位置または停止目標位置)に向けて仲間キャラクタを移動させるようにしてもよい。
【0153】
なお、戦闘可能状態における仲間キャラクタの移動は、目標位置または基準範囲を考慮して制御されてもよいし、目標位置および基準範囲を考慮せずに制御されてもよい。前者の場合、ゲームシステム1は、例えば、目標位置を中心とした所定範囲内、または、基準範囲内において仲間キャラクタを移動させるようにしてもよい。
【0154】
また、本実施形態においては、プレイヤキャラクタ自身も敵キャラクタに対する攻撃を行うことが可能である。具体的には、ゲームシステム1は、ユーザによる操作入力に応じてプレイヤキャラクタが他のキャラクタ(例えば、敵キャラクタ)を攻撃するための制御を行う。例えば、プレイヤキャラクタは、上記操作入力に応じて、自身が装備する武器によって敵キャラクタを攻撃する動作を行う。なお、上記操作入力は、プレイヤキャラクタが仲間キャラクタに対して指示を行うための操作入力とは異なる入力であり、例えば、プレイヤキャラクタが武器を構えた状態で右コントローラ4のYボタン56を押下する入力である。上記により、本実施形態によれば、プレイヤは、プレイヤキャラクタ自身に攻撃を行わせるとともに、プレイヤキャラクタによる指示に応じて仲間キャラクタに攻撃を行わせることもできる。これによって、攻撃の選択肢を増やすことができ、ゲームにおける戦略性を向上することができる。
【0155】
第2の例外は、待機モード中において停止している仲間キャラクタの近くに上記アクション対象オブジェクトが配置される場合である。上記の場合とは、例えば、仲間キャラクタの近くにアイテムが出現したり、プレイヤキャラクタ201が話しかけることができるノンプレイヤキャラクタが仲間キャラクタの近くに移動してきたりした場合である。上記の場合、仲間キャラクタがそのまま停止していると、
図15において説明した場合と同様、プレイヤは、アクション対象オブジェクトと仲間キャラクタとのうちで意図する方の対象に対してプレイヤキャラクタにアクションを行わせることがしにくくなる。
【0156】
そのため、待機モード中において停止している仲間キャラクタの近くに上記アクション対象オブジェクトが出現した場合、ゲームシステム1は、当該仲間キャラクタを当該アクション対象オブジェクトから離れた位置へ移動させて停止させる。なお、停止させる位置は、
図15に示す例において仲間キャラクタを停止させる位置を決定する場合と同様にして決定されてもよい。なお、上記の場合において、(例えば待機モードとなった時点で基準範囲内に位置していたために)停止目標位置とは異なる位置に仲間キャラクタが配置されており、かつ、当該停止目標位置がアクション対象オブジェクトから離れた位置であれば、ゲームシステム1は、仲間キャラクタを停止目標位置へ移動させるようにしてもよい。上記によれば、待機モード中において、仲間キャラクタの近くにアクション対象オブジェクトが出現した場合においても、仲間キャラクタまたはアクション対象オブジェクトに対するアクションをプレイヤキャラクタに行わせる操作をプレイヤにとって行いやすくすることができる。
【0157】
なお、同行モードにおいて、アクション対象オブジェクトの近くに移動目標位置が設定される場合があり得る。この場合、ゲームシステム1は、待機モードにおいて停止目標位置を変更する場合(
図15参照)と同様にして、アクション対象オブジェクトから離れた位置となるように移動目標位置を変更してもよい。
【0158】
上記のように、本実施形態においては、ゲームシステム1は、プレイヤキャラクタの位置に基づいて設定されるアクション範囲内にアクション対象オブジェクトが位置する状態でプレイヤによる操作入力が行われたことに応じて、当該アクション対象オブジェクトに対応する制御(例えば、プレイヤキャラクタにアイテムを取得させる制御や、プレイヤキャラクタがノンプレイヤキャラクタに話しかける制御)を実行する。また、ゲームシステム1は、アクション対象オブジェクトがアクション範囲内に位置する状態におけるプレイヤキャラクタの位置に基づくアクション範囲内とならない位置(すなわち、プレイヤキャラクタがアクション対象オブジェクトに対するアクションを行うことができる状態では仲間キャラクタに対する指示を行うことができない位置)に、仲間キャラクタを停止させる。具体的には、本実施形態においては、ゲームシステム1は、待機モードとなった時点で基準範囲外に位置する仲間キャラクタを基準範囲内において停止させるケース(
図15参照)、待機モードとなった時点で基準範囲内に位置する仲間キャラクタを基準範囲内において停止させるケース、待機モードに移行した後で仲間キャラクタの近くにアクション対象オブジェクトが出現するケース(すなわち、上記第2の例外)という3つのケースにおいて、アクション対象オブジェクトから離れた位置で仲間キャラクタを停止させるようにする。上記によれば、プレイヤキャラクタがアクション対象オブジェクトと仲間キャラクタとの両方に対してアクションを行うことが可能となる状況を生じにくくすることができるので、これらのアクションをプレイヤキャラクタに行わせる操作をプレイヤにとって行いやすくすることができる。なお、他の実施形態においては、ゲームシステム1は、上記3つのケースのうちいずれか1つまたは2つのケースにおいてのみ、アクション対象オブジェクトから離れた位置で仲間キャラクタを停止させるようにしてもよい。
【0159】
なお、他の実施形態においては、プレイヤキャラクタが仲間キャラクタに対して指示を行うことが可能な第1アクション範囲と、プレイヤキャラクタがアクション対象オブジェクトに対してアクションを行うことが可能な第2アクション範囲とが、異なる形状および/または大きさであってもよい。これらのアクション範囲が互いに異なる場合であっても本実施形態と同様、ゲームシステム1は、アクション対象オブジェクトが第2アクション範囲内に位置する状態では仲間キャラクタが第1アクション範囲内とならない位置に、仲間キャラクタを停止させる。例えば、第1アクション範囲が第2アクション範囲よりも大きい場合には、ゲームシステム1は、アクション対象オブジェクトと仲間キャラクタとの間の距離が第1アクション範囲の最も長い部分の幅よりも長くなる位置で当該仲間キャラクタを停止させるようにしてもよい。上記によれば本実施形態と同様、プレイヤキャラクタがアクション対象オブジェクトと仲間キャラクタとの両方に対してアクションを行うことが可能となる状況を生じにくくすることができる。
【0160】
第3の例外は、照準モードの操作が行われる場合である。ここで、本実施形態においては、ゲームシステム1は、ゲーム画像を生成するモードとして、通常モードと照準モードとでゲーム画像を生成することが可能である。通常モードは、プレイヤキャラクタに対して後方の位置に配置される仮想カメラに基づいてゲーム画像が生成されるモードである(例えば、
図8参照)。一方、照準モードは、通常モードよりもプレイヤキャラクタに近い位置に配置される仮想カメラに基づいてゲーム画像が生成されるモードである。本実施形態においては、例えば、プレイヤキャラクタが特定の武器またはアイテムを使用する場合に、ゲーム画像を生成するモードが照準モードに設定される。
【0161】
図18は、照準モードにおけるゲーム画像の一例を示す図である。
図18に示す例は、プレイヤキャラクタ201が遠隔攻撃を放とうとしている状態である。このとき、
図18に示すように、ゲーム画像は照準モードで生成される。照準モードにおいては、ゲームシステム1は、方向を指定するプレイヤによる操作入力(例えば、右コントローラ4のアナログスティック52に対する操作入力)に応じて、仮想カメラの向きを変化させる。なお、本実施形態においては、プレイヤキャラクタ201は、ゲーム画像の中央付近に表示される照準マーク251の方へ遠隔攻撃を発射するものとする。したがって、プレイヤは、上記の操作入力によって、ゲーム画像における視線方向および遠隔攻撃を発射する方向を変化させることができる。
【0162】
なお、本実施形態においては、照準モードにおいても通常モードと同様にプレイヤキャラクタ201を含むゲーム画像が生成されるが、他の実施形態においては、照準モードにおいてはプレイヤキャラクタ201を含まないゲーム画像(いわゆる一人称視点のゲーム画像)が生成されてもよい。また、プレイヤキャラクタ201が遠隔攻撃する場合に限らず、他のアイテムを使用する場合(例えば、使用する方向をプレイヤが指定するようなアイテムが使用される場合)や、仮想空間内において仮想的に撮影をする場合においても照準モードでゲーム画像が生成されてもよい。
【0163】
待機モードにおいて上記のように照準モードでゲーム画像が生成される場合、ゲームシステム1は、仮想カメラの視野範囲外となるように仲間キャラクタを移動させる。例えば、仮想カメラの向きを変化させる操作入力が行われたことによって仮想カメラの視野範囲内に仲間キャラクタが位置する場合には、当該仲間キャラクタは、仮想カメラの視野範囲外の位置まで移動してから停止する。これによって、照準モードにおいて仲間キャラクタが視界を遮ることを防止することができ、照準モードにおけるプレイヤの操作を行いやすくすることができる。なお、ゲームシステム1は、仮想カメラの視野範囲内に仲間キャラクタが位置する前に、視野範囲内に入りそうな仲間キャラクタを移動させてもよいし、仮想カメラの視野範囲内に仲間キャラクタが位置した後で当該仲間キャラクタを移動させてもよい。
【0164】
なお、待機モードに限らず同行モードにおいても、ゲームシステム1は照準モードでゲーム画像を生成するようにしてもよい。このとき、ゲームシステム1は、待機モードに限らず同行モードにおいても、仮想カメラの視野範囲外となるように仲間キャラクタを移動させてもよい。例えば、ゲームシステム1は、移動目標位置が仮想カメラの視野範囲内となる場合には、視野範囲外となるように移動目標位置を変更してもよい。
【0165】
なお、他の実施形態においては、各仲間キャラクタの移動を制御する制御モードの1つとして、仲間キャラクタが上記の戦闘状態となる戦闘モード、および、上記照準モードが設定されてもよい。すなわち、ゲームシステム1は、一定条件下で、同行モードまたは待機モードから戦闘モードに移行したり照準モードに移行したりして仲間キャラクタの移動を制御してもよい。また、本実施形態においては、上記の制御モードを変更することで、各仲間キャラクタの移動を制御する方法を変更しているが、他の実施形態においては、制御モードが設定される必要はなく、各仲間キャラクタの移動を制御する方法は任意の処理によって変更されてよい。すなわち、ゲームシステム1は、制御モードを設定することなく、プレイヤキャラクタが停止範囲を出たこと、プレイヤキャラクタが停止したこと、あるいは、ノンプレイヤキャラクタが戦闘状態となったこと、といった条件が満たされたことに応じて、満たされた条件に対応する制御方法で、上述したようなノンプレイヤキャラクタの移動制御を行うようにしてもよい。
【0166】
以上においては、同行モードおよび待機モードにおいて、プレイヤキャラクタの位置および向きに基づいて、予め定められた位置関係となるように目標位置(すなわち、同行モードにおける移動目標位置、または、待機モードにおける停止目標位置)が設定される場合を例として説明した。ここで、ゲームシステム1は、特定の状況においては、各目標位置を、プレイヤキャラクタとの位置関係が予め定められた位置関係となる位置から変更して設定してもよい。目標位置は、例えば下記のように、ゲーム状況に応じて異なる位置に設定されてもよい。
【0167】
例えば、上記の予め定められた位置関係となる位置に目標位置を設定すると、当該目標位置に仲間キャラクタが移動することができない場合もあり得る。例えば、当該位置に地面がない(つまり、空中である)場合や、当該位置が壁の内側となる場合等である。これらのような場合、ゲームシステム1は、適切な位置(すなわち、仲間キャラクタが移動可能な位置)となるように目標位置を設定する。したがって、例えば左右が崖である細い道にプレイヤキャラクタが位置する場合や、左右が壁である細い道にプレイヤキャラクタが位置する場合には、道上の位置となるように目標位置が設定されてもよい。このとき、ゲームシステム1は、プレイヤがプレイヤキャラクタの前方を見やすいように、プレイヤキャラクタの後方の位置に目標位置を設定してもよい。
【0168】
また例えば、上記第2の例外または上記第3の例外が生じた場合には、ゲームシステム1は、目標位置を変更せずに仲間キャラクタを移動させることに代えて、目標位置を変更して、変更後の目標位置へと仲間キャラクタを移動させるようにしてもよい。例えば、第2の例外が生じた場合、ゲームシステム1は、アクション対象オブジェクトから離れた位置に目標位置を設定するようにしてもよい。また例えば、プレイヤキャラクタが遠隔攻撃を使用する場合のように第3の例外が生じる場合、ゲームシステム1は、プレイヤキャラクタの後方となるように各目標位置を変更し、変更後の目標位置へ移動するように仲間キャラクタを制御してもよい。
【0169】
また、本実施形態においては、プレイヤは、各仲間キャラクタについて、ゲーム空間に登場させたりゲーム空間から退場させたりする指示を行うことができる。そのため、ゲーム空間に登場している仲間キャラクタの数は4体以下となることもある。したがって、ゲームシステム1は、上記同行モードおよび待機モードにおいては、登場している仲間キャラクタの数に応じた(すなわち、当該数と同数の)目標位置を設定する。
【0170】
なお、4つ以下の目標位置を設定する場合における各目標位置の配置は任意である。本実施形態においては、同行モードにおいて、4つ以下の目標位置を設定する場合においても5つの目標位置を設定する場合と同様、ゲームシステム1は、プレイヤキャラクタの移動方向に関してプレイヤキャラクタよりも前側の位置に目標位置を設定する。また、待機モードにおいて、4つ以下の目標位置を設定する場合においても5つの目標位置を設定する場合と同様(ただし、停止目標位置が1つである場合を除く)、ゲームシステム1は、プレイヤキャラクタを囲むように各停止目標位置を設定する。例えば、3つの目標位置を設定する場合における各目標位置は、
図14に示す停止目標位置221~225のうち、プレイヤキャラクタ201を囲むように配置される3つの停止目標位置211,213,および215と同じ位置であってもよい。なお、ゲームシステム1は、4つ以下の目標位置を設定する場合には、5つの目標位置を設定する場合における各目標位置とは異なる位置に目標位置を設定してもよい。
【0171】
また、ゲームシステム1は、プレイヤキャラクタが特定の状況となる場合には、プレイヤの指示の有無にかかわらず、仲間キャラクタを一時的にゲーム空間から退場させてもよい。例えば、プレイヤキャラクタが壁を登っている間や、空中を滑空したり落下したりしている間においては、仲間キャラクタはゲーム空間から退場してもよい。上記の間、ゲームシステム1は、目標位置を設定してもよいし、設定しなくてもよい。
【0172】
[2-3.指定仲間キャラクタが設定される場合の処理]
次に、仲間キャラクタのうちから指定仲間キャラクタが設定される場合について説明する。本実施形態においては、ゲームシステム1は、仲間キャラクタのうち1つを指定仲間キャラクタとして設定することがある。詳細は後述するが、例えば、仲間キャラクタのうちで最後に準備指示が行われた仲間キャラクタが指定仲間キャラクタに設定される。本実施形態においては、指定仲間キャラクタについては、上記同行モードおよび待機モードにおいて、通常の仲間キャラクタ(すなわち、指定仲間キャラクタ以外の仲間キャラクタ)に比べてプレイヤキャラクタに近い位置に配置される。以下、指定仲間キャラクタについて説明する。
【0173】
図19は、同行モードにおいて指定仲間キャラクタが設定される場合における各キャラクタの配置の一例を示す図である。なお、
図19に示す例においては、仲間キャラクタ202が指定仲間キャラクタに設定されているものとする。同行モードにおいて指定仲間キャラクタが設定されている場合、ゲームシステム1は、
図19に示すように、指定仲間キャラクタに対応する移動目標位置である指定移動目標位置261を設定する。
【0174】
なお、指定移動目標位置261が設定される場合、通常の移動目標位置は4つ(すなわち、登場している仲間キャラクタの数より1小さい数)設定される。なお、
図19に示す例においては、通常の移動目標位置211~214の位置は、指定移動目標位置261が設定されてない場合(
図12参照)と同じであるが、異なる位置であってもよい。また、
図19に示す例においては、通常の移動目標位置215に代えて指定移動目標位置261が設定されるものとするが、他の移動目標位置211~214のいずれか1つに代えて指定移動目標位置261が設定されてもよい。
【0175】
図19に示すように、指定移動目標位置261は、各移動目標位置211~214および261のうちでプレイヤキャラクタ201に最も近い位置となるように設定される。すなわち、ゲームシステム1は、プレイヤキャラクタ201から指定移動目標位置261までの距離が、プレイヤキャラクタ201から通常の移動目標位置211~214までの各距離よりも短くなるように、指定移動目標位置261を設定する。なお、各仲間キャラクタを各移動目標位置へと移動させるための制御方法は、指定仲間キャラクタが設定される場合も、指定仲間キャラクタが設定されない場合と同様である。したがって、指定仲間キャラクタ202は、指定移動目標位置261に向けて移動するように制御されるので、仲間キャラクタ202~206のうちでプレイヤキャラクタ201に最も近い位置に配置されやすくなる。
【0176】
以上より、指定仲間キャラクタ202については、通常の仲間キャラクタ203~206に比べて、プレイヤキャラクタ201による指示が行いやすくなる。ここで、ゲームにおいては、プレイヤがスキル動作の実行を指示した仲間キャラクタについて、再度の指示を続けて(すなわち、他の仲間キャラクタへの指示を行うことなく)行うことをプレイヤが望む状況があると考えられる。本実施形態によれば、指定仲間キャラクタを設定することによって、上記のような状況において所望の仲間キャラクタ(すなわち、指定仲間キャラクタに設定される仲間キャラクタ)に対する指示をプレイヤが行いやすくすることができる。
【0177】
なお、同行モードにおいては、指定移動目標位置261は、他の移動目標位置211~214と同様、プレイヤキャラクタ201よりも前側に設定される(
図19参照)。したがって、指定仲間キャラクタが設定される場合も、設定されない場合と同様、各仲間キャラクタ202~206を含むゲーム画像(
図11参照)が生成されやすくなり、プレイヤは、同行モードにおいて各仲間キャラクタ202~206の位置を把握しやすくなる。
【0178】
また、上述のように、ゲームシステム1は、同行モードにおいて、複数の仲間キャラクタのうちの少なくとも1つの仲間キャラクタの方向へプレイヤキャラクタが移動することに応じて、当該仲間キャラクタの移動速度をプレイヤキャラクタの移動速度よりも遅くする(
図13参照)。したがって、ゲームシステム1は、指定仲間キャラクタについても通常の仲間キャラクタと同様、プレイヤキャラクタが指定仲間キャラクタの方へ移動する場合には、当該指定仲間キャラクタの移動速度をプレイヤキャラクタの移動速度よりも遅くする。例えば、指定仲間キャラクタの移動速度は、プレイヤキャラクタの移動速度の上限値よりも低い速度に変更されてもよいし、プレイヤキャラクタの現在の移動速度よりも低い速度に変更されてもよいし、0に変更されてもよい。上記によって、プレイヤキャラクタは指定仲間キャラクタに近づきやすくなるので、指定仲間キャラクタに対する指示を行いやすくすることができる。
【0179】
図20は、待機モードにおいて指定仲間キャラクタが設定される場合における各キャラクタの配置の一例を示す図である。なお、
図20に示す例においては、仲間キャラクタ202が指定仲間キャラクタに設定されているものとする。待機モードにおいて指定仲間キャラクタが設定されている場合、ゲームシステム1は、
図20に示すように、指定仲間キャラクタに対応する停止目標位置である指定停止目標位置262を設定する。
【0180】
指定停止目標位置262が設定される場合、通常の停止目標位置は4つ(すなわち、登場している仲間キャラクタの数より1小さい数)設定される。なお、
図20に示す例においては、通常の停止目標位置222~225の位置は、指定停止目標位置262が設定されてない場合(
図14参照)と同様であるが、異なる位置であってもよい。また、
図20に示す例においては、通常の停止目標位置221に代えて指定停止目標位置262が設定されるものとするが、他の停止目標位置222~225のいずれか1つに代えて指定停止目標位置262が設定されてもよい。
【0181】
図20に示すように、指定停止目標位置262は、各停止目標位置221~224および262のうちでプレイヤキャラクタ201に最も近いとなるように位置に設定される。すなわち、ゲームシステム1は、プレイヤキャラクタ201から指定停止目標位置262までの距離が、プレイヤキャラクタ201から通常の停止目標位置222~225までの各距離よりも短くなるように、指定停止目標位置262を設定する。なお、待機モードにおいて仲間キャラクタを目標位置へと移動させるための制御方法は、指定仲間キャラクタが設定される場合も、指定仲間キャラクタが設定されない場合と同様である。すなわち、ゲームシステム1は、待機モードに移行した時点の位置が上記基準範囲220内である仲間キャラクタについてはその場で停止させ、待機モードに移行した時点の位置が基準範囲220外である仲間キャラクタについては停止目標位置まで移動させてから停止させる。
【0182】
以上より、同行モードにおいて指定仲間キャラクタ202はプレイヤキャラクタ201の近くに配置されやすいため、同行モードから待機モードに移行した時に指定仲間キャラクタ202が基準範囲220内に位置していればそのままプレイヤキャラクタ201の近くに配置される。また、仮に同行モードから待機モードに移行した時に指定仲間キャラクタ202が基準範囲220外に位置していたとしても、指定仲間キャラクタ202はプレイヤキャラクタ201の近くの指定停止目標位置262まで移動してから停止するため、プレイヤキャラクタ201の近くに配置されることとなる。したがって、待機モードにおいても、指定仲間キャラクタ202は、仲間キャラクタ202~206のうちでプレイヤキャラクタ201に最も近い位置に配置されやすくなる。
【0183】
上記のように、本実施形態においては、ゲームシステム1は、プレイヤキャラクタの移動に応じた複数の仲間キャラクタの移動中(すなわち、同行モード中)においては、指定仲間キャラクタとプレイヤキャラクタとの距離が、通常の仲間キャラクタとプレイヤキャラクタとの距離よりも近くなる位置関係となるように、当該複数の仲間キャラクタの移動制御を行う(
図19参照)。また、ゲームシステム1は、プレイヤキャラクタの移動の停止に応じて、指定仲間キャラクタとプレイヤキャラクタとの距離が、通常の仲間キャラクタとプレイヤキャラクタとの距離よりも近くなる位置となるように、当該複数の仲間キャラクタの移動を停止させる。具体的には、ゲームシステム1は、指定仲間キャラクタの停止目標位置とプレイヤキャラクタとの距離が、通常の仲間キャラクタの停止目標位置とプレイヤキャラクタとの距離よりも近くなるように、複数の仲間キャラクタの停止目標位置をそれぞれ設定する。これによれば、複数の仲間キャラクタを移動させている場合と停止させた場合との両方において、指定仲間キャラクタがプレイヤキャラクタに近い位置に配置されやすくなる。また、停止目標位置を用いることで、停止させる際における各仲間キャラクタの移動制御を容易に行うことができる。なお、他の実施形態においては、ゲームシステム1は、同行モードおよび待機モードのうちいずれか一方についてのみ、指定仲間キャラクタとプレイヤキャラクタとの距離が、通常の仲間キャラクタとプレイヤキャラクタとの距離よりも近くなる位置関係となるように、当該複数の仲間キャラクタの移動制御を行うようにしてもよい。
【0184】
待機モードから同行モードへと移行させる処理は、指定仲間キャラクタが設定されている場合も、設定されていない場合と同様である。すなわち、ゲームシステム1は、プレイヤキャラクタが停止後に移動を再開した場合において、プレイヤキャラクタが停止範囲内で移動する間は、プレイヤキャラクタの移動に応じた仲間キャラクタによる移動(すなわち、同行モードにおいて制御される移動)を再開させず、プレイヤキャラクタが停止範囲外に出たことに応じて、プレイヤキャラクタの移動に応じた仲間キャラクタによる移動を再開させる。
【0185】
なお、他の実施形態においては、指定仲間キャラクタについては、通常の仲間キャラクタに用いられる停止範囲とは異なる停止範囲が用いられてもよい。すなわち、ゲームシステム1は、指定仲間キャラクタについては、上記停止範囲として第1の停止範囲を用い、通常の仲間キャラクタについては、上記停止範囲として第2の停止範囲を用いるようにし、第1の停止範囲を第2の停止範囲よりも狭く設定してもよい。具体的には、第2の停止範囲は、上記基準範囲と、通常の仲間キャラクタの位置に基づく追加範囲との少なくともいずれかの内側となる範囲であり、第1の停止範囲は、上記基準範囲よりも半径が小さい円形の範囲と、指定仲間キャラクタの位置に基づく追加範囲との少なくともいずれかの内側となる範囲であってもよい。上記によれば、ゲームシステム1は、指定仲間キャラクタについては通常の仲間キャラクタよりも早いタイミングで、同行モードでの移動制御を開始することができる。これによって、指定仲間キャラクタは、プレイヤキャラクタに同行する移動を通常の仲間キャラクタよりも早いタイミングで開始するので、指定仲間キャラクタをプレイヤキャラクタに近い位置に配置しやすくすることができる。
【0186】
また、上述した第1~第3の例外が生じる場合に、目標位置にかかわらず仲間キャラクタを移動させる処理は、指定仲間キャラクタが設定されている場合も設定されていない場合と同様である。なお、他の実施形態においては、指定仲間キャラクタが戦闘可能状態となっている場合において、ゲームシステム1は、指定仲間キャラクタをプレイヤキャラクタに近い位置で移動するように制御されてもよい。すなわち、ゲームシステム1は、戦闘条件が満たされたことに応じた仲間キャラクタの移動中において、指定仲間キャラクタとプレイヤキャラクタとの距離が、通常の仲間キャラクタとプレイヤキャラクタとの距離よりも近くなる位置関係で、当該複数の仲間キャラクタの移動制御を行うようにしてもよい。具体的には、ゲームシステム1は、通常の仲間キャラクタについては目標位置にかかわらず、戦闘のための移動制御を行う一方、指定仲間キャラクタについては、指定停止目標位置または指定移動目標位置を中心とした所定範囲内、あるいは、基準範囲内において移動するように、戦闘のための移動制御を行うようにしてもよい。上記によれば、指定仲間キャラクタが戦闘を行う間においても、当該指定仲間キャラクタをプレイヤキャラクタに近い位置に配置しやすくすることができる。
【0187】
次に、指定仲間キャラクタの設定方法について説明する。本実施形態においては、ゲームシステム1は、後述する特定のゲーム場面を除いて、仲間キャラクタのうちで最後に準備指示が行われた仲間キャラクタを指定仲間キャラクタに設定する。したがって、例えば、指定仲間キャラクタが設定されている状態で、通常の仲間キャラクタに対して準備指示が行われた場合には、指定仲間キャラクタが入れ替わる。すなわち、ゲームシステム1は、通常の仲間キャラクタに対応する所定の制御(すなわち、当該仲間キャラクタを準備状態とする制御)が実行された場合、それまで設定されていた指定仲間キャラクタを通常の仲間キャラクタに変更するとともに、当該所定の制御が実行された通常の仲間キャラクタを新たな指定仲間キャラクタに設定する。ここで、指定仲間キャラクタが多くなりすぎると、プレイヤキャラクタの近くに多くの仲間キャラクタが配置されてしまい、プレイヤキャラクタを基準としたアクション範囲に複数の仲間キャラクタが含まれる可能性が高くなる。その結果、プレイヤが意図する仲間キャラクタに対して指示を行うことがかえって難しくなる可能性がある。これに対して、本実施形態によれば、指定仲間キャラクタを入れ替えることができるので、指定仲間キャラクタが多くなりすぎることを抑制することができ、上記の可能性を低減することができる。また、本実施形態においては、準備指示によって指定仲間キャラクタを入れ替えることができるので、プレイヤは入れ替えのための操作を別途行う必要がなく、当該操作を容易に行うことができる。なお、他の実施形態においては、ゲームシステム1は、指定仲間キャラクタが設定されている状態で通常の仲間キャラクタに対して準備指示が行われた場合には、指定仲間キャラクタを上記のように入れ替えずに、指定仲間キャラクタを単に追加するようにしてもよい。
【0188】
なお、本実施形態においては、同時に設定される指定仲間キャラクタの数は1体であるが、他の実施形態においては、複数体の仲間キャラクタが同時に指定仲間キャラクタに設定されてもよい。ただし、指定仲間キャラクタの上限数は、同行可能な仲間キャラクタの数よりも少ないものとされる。ゲームシステム1は、設定されている指定仲間キャラクタの数がすでに上限に達している場合、通常の仲間キャラクタを準備状態とする制御が実行されたことに応じて、それまで設定されていた指定仲間キャラクタのうち1体を通常の仲間キャラクタに変更するとともに、当該制御が実行された通常の仲間キャラクタを新たな指定仲間キャラクタに設定する。上記「それまで設定されていた指定仲間キャラクタを通常の仲間キャラクタに変更する」とは、複数の指定仲間キャラクタが設定されている場合には、それらのうちの1体を通常の仲間キャラクタに変更することを含む意味である。
【0189】
上記のようにして指定仲間キャラクタが入れ替えられた場合、ゲームシステム1は、仲間キャラクタと目標位置との対応関係も変更する。すなわち、新たに指定仲間キャラクタに設定された仲間キャラクタを指定移動目標位置または指定停止目標位置に対応付け、通常の仲間キャラクタに戻された仲間キャラクタについては通常の移動目標位置または停止目標位置を対応付ける。これによって、新たな指定仲間キャラクタがプレイヤキャラクタの近くに配置されやすくなる。
【0190】
また、上述のように、本実施形態においては、ゲームシステム1は、仲間キャラクタに対する準備指示が行われたことに応じて当該仲間キャラクタを指定仲間キャラクタに設定する。ここで、本実施形態においては、準備指示に応じて実行される第1制御は、仲間キャラクタが他のオブジェクトに影響を与え得る第2制御の準備状態に移行する制御である。また、ゲームシステム1は、第2制御の準備状態において、ユーザによる操作入力(すなわち、実行指示を行うための操作入力)が行われたことに応じて第2制御を実行する。なお、上記第2制御は、仲間キャラクタが他のオブジェクトに影響を与え得るものであればよく、本実施形態における、敵キャラクタを攻撃するスキル動作を行わせる制御であってもよいし、ゲーム空間に配置されるオブジェクト(例えば、岩)を破壊する動作を行わせる制御であってもよい。以上より、本実施形態によれば、プレイヤは、他のキャラクタに影響を与え得る上記第2制御を仲間キャラクタに行わせなくても、準備指示によって指定仲間キャラクタを設定することができる。なお、本実施形態においては、スキル動作を行わせる上記第2制御が実行されると、上述した待機時間が経過するまでは、仲間キャラクタは再度のスキル動作が制限される。しかし、上記のように準備指示によって指定仲間キャラクタを設定することで、スキル動作の実行が制限されることなく、指定仲間キャラクタを設定することができる。
【0191】
また、本実施形態においては、特定のゲーム場面では、最後に準備指示が行われた仲間キャラクタがいずれであるかにかかわらず、その場面に応じた仲間キャラクタが指定仲間キャラクタに設定される。すなわち、ゲームシステム1は、特定のゲーム場面においては、複数の仲間キャラクタのうち、当該特定のゲーム場面に関連付けられる仲間キャラクタを指定仲間キャラクタに設定する。これによれば、特定のゲーム場面において特定の仲間キャラクタに対する指示を行わせやすくすることができる。例えば、特定のゲーム場面においては、当該ゲーム場面に関連付けられる仲間キャラクタによるスキル動作による攻撃に弱い敵キャラクタが多く出現したり、当該スキル動作を利用することで先に進めるように地形が構成されたりする等、当該仲間キャラクタによるスキル動作がゲームの進行に有効であるようにゲームが設計されてもよい。このとき、ゲーム場面に適した仲間キャラクタが指定仲間キャラクタとして設定されることで、プレイヤはゲームを進めやすくなる。
【0192】
なお、特定のゲーム場面とは、例えば、ゲームシナリオ中の特定の期間であってもよいし、プレイヤキャラクタが特定のエリアにいる場面であってもよいし、プレイヤキャラクタが特定の敵キャラクタと戦闘する場面であってもよい。また、ゲームシステム1は、例えば、複数のゲーム場面についてそれぞれ異なる仲間キャラクタを関連付けていてもよい。これによれば、ゲームシステム1は、複数のゲーム場面毎に指定仲間キャラクタを変更することができる。
【0193】
なお、特定のゲーム場面において、当該特定のゲーム場面に関連付けられる仲間キャラクタが指定仲間キャラクタに設定される場合には、プレイヤキャラクタが通常の仲間キャラクタに対して準備指示が行っても、当該通常の仲間キャラクタは指定仲間キャラクタに設定されない(つまり、指定仲間キャラクタは変更されない。)。ただし、他の実施形態においては、上記の場合にプレイヤキャラクタが通常の仲間キャラクタに対して準備指示が行ったことに応じて、当該通常の仲間キャラクタが指定仲間キャラクタに設定されてもよい。さらに、特定のゲーム場面において、当該特定のゲーム場面に関連付けられる仲間キャラクタ以外の他の仲間キャラクタが指定仲間キャラクタに設定されている場合において、当該指定仲間キャラクタがゲーム空間から退場したことに応じて、ゲームシステム1は、当該特定のゲーム場面に関連付けられる仲間キャラクタを指定仲間キャラクタに設定してもよい。
【0194】
なお、他の実施形態においては、上記特定のゲーム場面は設定されず、特定のゲーム場面に応じた仲間キャラクタを指定仲間キャラクタに設定する処理は実行されなくてもよい。また、他の実施形態においては、ゲームシステム1は、特定のゲーム場面に応じた仲間キャラクタを指定仲間キャラクタに設定する処理を実行し、仲間キャラクタのうちで最後に準備指示が行われた仲間キャラクタを指定仲間キャラクタに設定する処理を実行しないようにしてもよい。さらに、他の実施形態においては、ゲームシステム1は、指定仲間キャラクタに設定する処理を実行しなくてもよい。
【0195】
本実施形態においては、ゲームシステム1は、所定の解除条件が満たされた場合、指定仲間キャラクタの設定を解除する。解除条件の具体的な内容は任意である。本実施形態においては、プレイヤの指示によって指定仲間キャラクタがゲーム空間から退場した場合、当該指定仲間キャラクタの設定は解除される。したがって、プレイヤは、指定仲間キャラクタをゲーム空間から退場させることで、指定仲間キャラクタの設定を容易に解除することができる。また、上記の場合の他、例えばゲームが中断されてからセーブデータを用いて再開される場合や、ゲーム中において、ゲーム空間に設定されるワープポイントへプレイヤキャラクタが移動する場合等においても、指定仲間キャラクタの設定が解除されてもよい。
【0196】
[3.ゲームシステムにおける処理の具体例]
次に、
図21~
図26を参照して、ゲームシステム1における情報処理の具体例について説明する。
【0197】
図21は、ゲームシステム1における情報処理に用いられる各種データの一例を示す図である。
図21に示す各種データは、本体装置2がアクセス可能な記憶媒体(例えば、フラッシュメモリ84、DRAM85、および/または、スロット23に装着されたメモリカード等)に記憶される。
【0198】
図21に示すように、ゲームシステム1は、ゲームプログラムを記憶する。ゲームプログラムは、本実施形態におけるゲーム処理(具体的には、
図22~
図26に示す処理)を実行するためのゲームプログラムである。また、ゲームシステム1は、プレイヤキャラクタデータ、仲間キャラクタデータ、および、指定仲間キャラクタデータを記憶する。
【0199】
プレイヤキャラクタデータは、プレイヤキャラクタに関するデータである。例えば、プレイヤキャラクタデータは、プレイヤキャラクタのゲーム空間における位置および向きを示すデータや、プレイヤキャラクタの状態(体力等)を示すデータや、プレイヤキャラクタが所持しているアイテムを示すデータを含む。
【0200】
仲間キャラクタデータは、仲間キャラクタに関するデータである。仲間キャラクタデータは、仲間キャラクタ毎に記憶される。本実施形態においては、仲間キャラクタデータは、配置データ、目標位置データ、移動速度データ、経過時間データ、および、戦闘状態データを含む。配置データは、当該仲間キャラクタのゲーム空間における位置および向きを示す。目標位置データは、ゲームシステム1によって設定される各目標位置のうち、当該仲間キャラクタに対応する目標位置を示す。移動速度データは、当該仲間キャラクタの移動速度を示す。残り時間データは、当該仲間キャラクタがスキル動作を行った場合に上述の待機時間が経過するまで(つまり、再度のスキル動作が可能となるまで)の残り時間を示す。戦闘状態データは、当該仲間キャラクタについての戦闘に関する状態(すなわち、非戦闘状態であるか、または、戦闘可能状態であるかの状態)を示す。
【0201】
指定仲間キャラクタデータは、設定中の指定仲間キャラクタを示すデータである。なお、指定仲間キャラクタが設定されていない場合、指定仲間キャラクタデータは記憶されない。
【0202】
図22および
図23は、ゲームシステム1によって実行されるゲーム処理の流れの一例を示すフローチャートである。
図22に示すゲーム処理は、例えば、上記ゲームプログラムの実行中において、ゲームを開始する指示がプレイヤによって行われたことに応じて開始される。なお、ゲーム開始時において、各仲間キャラクタは、ゲーム空間に登場した状態であってもよいし、ゲーム空間から退場した状態であってもよい。
【0203】
なお、本実施形態では、本体装置2のプロセッサ81が、ゲームシステム1に記憶されている上記ゲームプログラムを実行することによって、
図22~
図26に示す各ステップの処理を実行するものとして説明する。ただし、他の実施形態においては、上記各ステップの処理のうちの一部の処理を、プロセッサ81とは別のプロセッサ(例えば、専用回路等)が実行するようにしてもよい。また、ゲームシステム1が他の情報処理装置(例えば、サーバ)と通信可能である場合、
図22~
図26に示す各ステップの処理の一部は、他の情報処理装置において実行されてもよい。また、
図22~
図26に示す各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。
【0204】
また、プロセッサ81は、
図22~
図26に示す各ステップの処理を、メモリ(例えば、DRAM85)を用いて実行する。すなわち、プロセッサ81は、各処理ステップによって得られる情報(換言すれば、データ)をメモリに記憶し、それ以降の処理ステップにおいて当該情報を用いる場合には、メモリから当該情報を読み出して利用する。
【0205】
図22に示すステップS1において、プロセッサ81は、プレイヤによる操作入力に基づいてプレイヤキャラクタの動作を制御する。すなわち、プロセッサ81は、コントローラ通信部83および/または各端子17および21を介して各コントローラから受信される操作データを適宜のタイミングで取得し、取得された操作データに基づいてプレイヤキャラクタの動作を制御する。これにより、プレイヤキャラクタはゲーム空間内を移動したり、攻撃動作を行ったり、上述のアクション対象オブジェクトに対するアクションを行ったりする。ステップS1の次にステップS2の処理が実行される。
【0206】
ステップS2において、プロセッサ81は、プレイヤキャラクタおよび仲間キャラクタ以外の他のキャラクタ(例えば、敵キャラクタ)の動作を制御する。すなわち、プロセッサ81は、ゲームプログラムにおいて定められるアルゴリズムに従って上記他のキャラクタの動作を制御する。ステップS2の次にステップS3の処理が実行される。
【0207】
ステップS3において、プロセッサ81は、ゲーム空間に登場している仲間キャラクタをゲーム空間から退場させるか否かを判定する。具体的には、プロセッサ81は、仲間キャラクタをゲーム空間から退場させる指示がプレイヤによって行われた場合、または、仲間キャラクタをゲーム空間から一時的に退場させる条件が満たされた場合、仲間キャラクタをゲーム空間から退場させると判定する。一方、上記指示がプレイヤによって行われておらず、かつ、上記条件が満たされていない場合、プロセッサ81は、仲間キャラクタをゲーム空間から退場させないと判定する。なお、仲間キャラクタをゲーム空間から退場させる指示をプレイヤが行う具体的な方法は任意である。例えば、プロセッサ81は、プレイヤによる所定の操作入力に応じて表示されるメニュー画面において、ゲーム空間から退場させる仲間キャラクタを指定する指示のための操作入力を受け付けるようにしてもよい。また、上記条件は、プレイヤキャラクタから当該仲間キャラクタが所定距離以上離れたこと、または、プレイヤキャラクタが上述の特定の状況(具体的には、壁を登ったり空中を滑空したりする状況)となったことである。ステップS3の判定結果が肯定である場合、ステップS4の処理が実行される。一方、ステップS3の判定結果が否定である場合、ステップS4の処理がスキップされてステップS5の処理が実行される。
【0208】
ステップS4において、プロセッサ81は、仲間キャラクタをゲーム空間から退場させる。すなわち、プロセッサ81は、プレイヤによって指示された仲間キャラクタ、または、上記条件が満たされた仲間キャラクタをゲーム空間から退場させる。このとき、プロセッサ81は、メモリに記憶されている、退場した仲間キャラクタに関する仲間キャラクタデータに含まれる配置データを、ゲーム空間に配置されていないことを示すように更新する。また、プロセッサ81は、退場する仲間キャラクタが、プレイヤによる指示によって退場するものであり、かつ、指定仲間キャラクタである場合には、指定仲間キャラクタの設定を解除する。すなわち、この場合、プロセッサ81は、メモリに記憶されている指定仲間キャラクタデータを削除する。ステップS4の次にステップS5の処理が実行される。
【0209】
ステップS5において、プロセッサ81は、仲間キャラクタをゲーム空間に登場させるか否かを判定する。具体的には、プロセッサ81は、仲間キャラクタをゲーム空間に登場させる指示がプレイヤによって行われた場合、または、一時的に退場していた仲間キャラクタがゲーム空間に再度登場する条件が満たされた場合、仲間キャラクタをゲーム空間に登場させると判定する。一方、上記指示がプレイヤによって行われておらず、かつ、上記条件が満たされていない場合、プロセッサ81は、仲間キャラクタをゲーム空間に登場させないと判定する。なお、仲間キャラクタをゲーム空間に登場させる指示をプレイヤが行う具体的な方法は任意である。例えば、プロセッサ81は、上述のメニュー画面において、ゲーム空間に登場させる仲間キャラクタを指定する指示のための操作入力を受け付けるようにしてもよい。また、上記条件は、プレイヤキャラクタから所定距離以上離れたために当該仲間キャラクタがゲーム空間から一旦退場させられたこと、または、プレイヤキャラクタが上述の特定の状況(具体的には、壁を登ったり空中を滑空したりする状況)となったことによって仲間キャラクタが一時的に退場していた場合に、当該特定の状況が解除されたことである。ステップS5の判定結果が肯定である場合、ステップS6の処理が実行される。一方、ステップS5の判定結果が否定である場合、ステップS6の処理がスキップされてステップS7の処理が実行される。
【0210】
ステップS6において、プロセッサ81は、仲間キャラクタをゲーム空間に登場させる。すなわち、プロセッサ81は、プレイヤによって指示された仲間キャラクタ、または、上記条件が満たされた仲間キャラクタを、プレイヤキャラクタの周囲における所定の位置に登場させる。このとき、プロセッサ81は、メモリに記憶されている、登場した仲間キャラクタに関する仲間キャラクタデータを、ゲーム空間に配置された位置および向きを示すように更新する。なお、ステップS6で1人目の仲間キャラクタが登場する場合(つまり、仲間キャラクタが登場していない状態から仲間キャラクタが登場する状態となった場合)、当該仲間キャラクタの移動を制御する制御モードは、同行モードおよび待機モードのうち、予め定められたデフォルトのモードに設定されてもよいし、最後に仲間キャラクタが登場していた状態において設定されていたモードに設定されてもよい。また、ステップS6で2人目以降の仲間キャラクタが登場する場合、現時点で設定されている制御モード(すなわち、同行モードまたは待機モード)が維持される。つまり、新たに登場した2人目以降の仲間キャラクタは、登場済みの仲間キャラクタと同じ制御モードで制御される。ステップS6の次にステップS7の処理が実行される。
【0211】
ステップS7において、プロセッサ81は、各仲間キャラクタの戦闘に関する状態を制御する。すなわち、プロセッサ81は、ゲーム空間に登場している仲間キャラクタ毎に、上記ステップS1およびS2の処理によって各キャラクタの動作が制御された結果に基づいて、戦闘条件が満たされたか否かを判定する。そして、プロセッサ81は、戦闘条件が満たされる仲間キャラクタを戦闘可能状態に設定するとともに、戦闘条件が満たされない仲間キャラクタを非戦闘状態に設定する。このとき、プロセッサ81は、メモリに記憶されている仲間キャラクタ毎の戦闘状態データを、設定された内容を示すように更新する。ステップS7の次にステップS8の処理が実行される。
【0212】
ステップS8において、プロセッサ81は、仲間キャラクタを移動させるための制御モードが、上述の同行モードであるか否かを判定する。ステップS8の判定結果が肯定である場合、ステップS9の処理が実行される。一方、ステップS8の判定結果が否定である場合(すなわち、制御モードが待機モードである場合)、後述するステップS11の処理が実行される。
【0213】
ステップS9において、プロセッサ81は、上述のステップS1における処理結果に基づいて、プレイヤキャラクタの移動が停止されたか否かを判定する。ステップS9の判定結果が肯定である場合、ステップS10の処理が実行される。一方、ステップS9の判定結果が否定である場合、後述するステップS13の処理が実行される。
【0214】
ステップS10において、プロセッサ81は、仲間キャラクタを移動させるための制御モードを待機モードに移行する。ステップS10の次に、後述するステップS14の処理が実行される。
【0215】
ステップS11において、プロセッサ81は、上述のステップS1における処理結果に基づいて、プレイヤキャラクタが停止範囲外に出たか否かを判定する。ステップS11の判定結果が肯定である場合、ステップS12の処理が実行される。一方、ステップS11の判定結果が否定である場合、後述するステップS13の処理が実行される。
【0216】
ステップS12において、プロセッサ81は、仲間キャラクタを移動させるための制御モードを同行モードに移行する。ステップS12の次にステップS13の処理が実行される。
【0217】
ステップS13において、プロセッサ81は、同行モードにおいて仲間キャラクタの移動を制御するための同行モード処理を実行する。詳細は後述するが、同行モード処理においては、プロセッサ81は、プレイヤキャラクタの移動に応じて当該プレイヤキャラクタに同行するように各仲間キャラクタを移動させる(
図24参照)。ステップS13の次にステップS15の処理(
図23参照)が実行される。
【0218】
ステップS14において、プロセッサ81は、待機モードにおいて仲間キャラクタの移動を制御するための待機モード処理を実行する。詳細は後述するが、待機モード処理においては、プロセッサ81は、プレイヤキャラクタの移動の停止に応じて、当該プレイヤキャラクタを基準とした基準範囲内で各仲間キャラクタの移動を停止させる(
図26参照)。ステップS14の次にステップS15の処理(
図23参照)が実行される。
【0219】
図23に示すステップS15において、プロセッサ81は、プレイヤキャラクタのアクション範囲内に仲間キャラクタが位置する状態で、準備指示を行うための操作入力がプレイヤによって行われたか否かを、上記操作データに基づいて判定する。ステップS15の判定結果が肯定である場合、ステップS16の処理が実行される。一方、ステップS15の判定結果が否定である場合、ステップS16~S18の処理がスキップされ、後述するステップS19の処理が実行される。
【0220】
ステップS16において、プロセッサ81は、プレイヤキャラクタによる準備指示が行われた仲間キャラクタに、上述の準備状態となる動作(例えば、
図9に示す、プレイヤキャラクタの背後に回り込む動作)を行わせる。このとき、プロセッサ81は、メモリに記憶されている仲間キャラクタデータを、動作後の内容を示すように更新する。ステップS16の次にステップS17の処理が実行される。
【0221】
ステップS17において、プロセッサ81は、特定の仲間キャラクタが指定仲間キャラクタに設定される上述の特定のゲーム場面であるか否かを判定する。ステップS17の判定結果が否定である場合、ステップS18の処理が実行される。一方、ステップS17の判定結果が肯定である場合、ステップS18の処理がスキップされ、後述するステップS19の処理が実行される。
【0222】
ステップS18において、プロセッサ81は、準備指示が行われた仲間キャラクタを指定仲間キャラクタに設定する。すなわち、プロセッサ81は、メモリに記憶されている指定仲間キャラクタデータを、準備指示が行われた仲間キャラクタを示す内容となるように更新する。ステップS18の次にステップS19の処理が実行される。
【0223】
ステップS19において、プロセッサ81は、準備状態にある仲間キャラクタがスキル動作を実行可能な状態で、当該仲間キャラクタに対して実行指示を行うための操作入力がプレイヤによって行われたか否かを、上記操作データに基づいて判定する。なお、仲間キャラクタがスキル動作を実行可能な状態とは、当該仲間キャラクタが前回にスキル動作を実行してから上述の待機時間が経過した(すなわち、メモリに記憶されている残り時間データが示す時間が0となった)後の状態である。ステップS19の判定結果が肯定である場合、ステップS20の処理が実行される。一方、ステップS19の判定結果が否定である場合、ステップS20の処理がスキップされ、ステップS21の処理が実行される。
【0224】
ステップS20において、プロセッサ81は、プレイヤキャラクタによる実行指示が行われたに仲間キャラクタに、上述のスキル動作(例えば、
図10に示す、風を発生させる動作)を行わせる。このとき、プロセッサ81は、メモリに記憶されている仲間キャラクタデータを、動作後の内容を示すように更新する。また、プロセッサ81は、メモリに記憶されている仲間キャラクタデータに含まれる残り時間データを、上述の待機時間の長さを示すように更新する。以降、プロセッサ81は、上記残り時間データが示す時間を時間経過に応じて減少させるように、残り時間データを逐次更新する。ステップS20の次にステップS21の処理が実行される。
【0225】
ステップS21において、プロセッサ81は、上記ステップS1およびS2の処理によって各キャラクタの動作が制御された結果に基づいて、ゲームが上述の特定のゲーム場面である(例えば、プレイヤキャラクタが特定のエリアに位置している、あるいは、プレイヤキャラクタが特定の敵キャラクタと戦闘する場面である等)か否かを判定する。ステップS21の判定結果が肯定である場合、ステップS22の処理が実行される。一方、ステップS21の判定結果が否定である場合、ステップS22の処理がスキップされ、ステップS23の処理が実行される。
【0226】
ステップS22において、プロセッサ81は、現在のゲーム場面(すなわち、ステップS21で移行したと判定されたゲーム場面)に関連付けられる仲間キャラクタを指定仲間キャラクタに設定する。すなわち、プロセッサ81は、メモリに記憶されている指定仲間キャラクタデータを、上記仲間キャラクタを示す内容となるように更新する。ステップS22の次にステップS23の処理が実行される。なお、上記ゲーム場面が継続する間は、準備指示が行われても指定仲間キャラクタの変更は行われないので(ステップS17,S18参照)、ゲーム場面に関連付けられる仲間キャラクタが指定仲間キャラクタとして設定される状態が維持される。
【0227】
ステップS23において、プロセッサ81は、ゲーム空間を表すゲーム画像を生成して表示装置に表示させる。例えば、プロセッサ81は、プレイヤによる操作入力に応じて制御される仮想カメラの位置および向きに基づいて、プレイヤキャラクタを含むゲーム空間を表すゲーム画像を生成する。このとき、ゲーム画像に仲間キャラクタが含まれる場合は、上記ステップS13またはS14の処理結果を反映した仲間キャラクタデータに基づいて当該仲間キャラクタの画像が生成される。なお、プロセッサ81は、仲間キャラクタに対する準備指示が可能である場合には、上述の準備指示画像をゲーム空間の画像とともに表示し(
図8参照)、仲間キャラクタに対する実行指示が可能である場合には、上述の実行指示画像をゲーム空間の画像とともに表示する(
図9参照)。また、上述のように、プロセッサ81は、ゲーム状況によっては照準モードでゲーム画像を生成する。ゲーム中において、ステップS1~S23の処理ループは所定時間(例えば、1フレーム時間)に1回の割合で繰り返し実行され、これによって、ゲーム空間の様子を動的に反映するようにゲーム画像が更新される。なお、ゲーム画像が表示される表示装置は、上述のディスプレイ12であってもよいし、本体装置2に接続される他の表示装置であってもよい。
【0228】
上記ステップS23の次にステップS1の処理が再度実行される。以降、ゲーム中においてはステップS1~S23の一連の処理が繰り返し実行される。なお、
図22および
図23に示すゲーム処理は、ゲームが終了される場合に終了される。また、ゲーム中において、所定の状況(例えば、ゲームの演出上の動画が再生される場合等)において上記ゲーム処理が中断されてもよい。
【0229】
図24は、
図22に示すステップS13の同行モード処理の詳細な流れの一例を示すサブフローチャートである。同行モード処理においては、まずステップS31において、プロセッサ81は、上述の移動目標位置を設定する。具体的には、プロセッサ81は、上記“[2-2.仲間キャラクタの移動を制御する処理]”で述べた方法に従って、ゲーム空間に登場している仲間キャラクタと同じ数の移動目標位置を設定する。なお、指定仲間キャラクタが設定されている場合には、設定される1以上の移動目標位置のうち1つは指定移動目標位置である。ステップS31の次にステップS32の処理が実行される。
【0230】
ステップS32において、プロセッサ81は、ステップS31において設定された移動目標位置と仲間キャラクタとの対応関係を設定する。この対応関係は、上記“[2-2.仲間キャラクタの移動を制御する処理]”で述べた方法に従って設定される。なお、指定仲間キャラクタが設定されている場合には、指定仲間キャラクタが指定移動目標位置に対応するように上記対応関係が設定される。プロセッサ81は、メモリに記憶されている各仲間キャラクタデータに含まれる各目標位置データを、設定された対応関係を示す内容となるように更新する。ステップS32の次にステップS33の処理が実行される。
【0231】
ステップS33において、プロセッサ81は、ゲーム空間に登場している仲間キャラクタのうちから1体を選択する。このとき、プロセッサ81は、今回の同行モードにおけるステップS33~S40の処理ループにおいてまだ選択されていない仲間キャラクタを選択する。ステップS33の次にステップS34の処理が実行される。
【0232】
ステップS34において、プロセッサ81は、ステップS33で選択された仲間キャラクタが戦闘可能状態であるか否かを判定する。この判定は、メモリに記憶されている当該仲間キャラクタに関する戦闘状態データに基づいて行われる。ステップS34の判定結果が肯定である場合、ステップS35の処理が実行される。一方、ステップS34の判定結果が否定である場合、ステップS36の処理が実行される。
【0233】
ステップS35において、プロセッサ81は、ステップS33で選択された仲間キャラクタを、戦闘のための動作を行うように制御する。すなわち、プロセッサ81は、ゲームプログラムにおいて定められる戦闘時の動作アルゴリズムに基づいて、攻撃対象となる他のキャラクタに対する攻撃動作や、攻撃対象となる他のキャラクタに向けての移動動作を当該仲間キャラクタに行わせる。このとき、プロセッサ81は、メモリに記憶されている仲間キャラクタデータを、動作後の内容を示すように更新する。ステップS35の次に、後述するステップS40の処理が実行される。
【0234】
ステップS36において、プロセッサ81は、上記ステップS1の処理によってプレイヤキャラクタの動作が制御された結果に基づいて、ステップS33で選択された仲間キャラクタの方へプレイヤキャラクタが移動しているか否かを判定する。ステップS36の判定結果が否定である場合、ステップS37の処理が実行される。一方、ステップS36の判定結果が肯定である場合、ステップS38の処理が実行される。
【0235】
ステップS37において、プロセッサ81は、ステップS33で選択された仲間キャラクタの移動速度を通常の方法で設定する。すなわち、仲間キャラクタの移動速度は、上限速度以下の速度で当該仲間キャラクタに対応する移動目標位置に到達可能である場合には、移動目標位置に到達する速度に設定され、到達不可能な場合には、上限速度に設定される。このとき、プロセッサ81は、メモリに記憶されている仲間キャラクタデータに含まれる移動速度データを、設定された速度を示すように更新する。ステップS37の次にステップS39の処理が実行される。
【0236】
一方、ステップS38において、プロセッサ81は、ステップS33で選択された仲間キャラクタの移動速度を、プレイヤキャラクタの移動速度よりも遅い速度に設定する。このとき、プロセッサ81は、メモリに記憶されている仲間キャラクタデータに含まれる移動速度データを、設定された速度を示すように更新する。ステップS38の次にステップS39の処理が実行される。
【0237】
ステップS39において、プロセッサ81は、ステップS33で選択された仲間キャラクタを、上記ステップS32で設定された移動目標位置へ向けて移動させる。このとき、プロセッサ81は、上記ステップS37またはS38で設定された移動速度で上記仲間キャラクタを移動させる。すなわち、プロセッサ81は、当該仲間キャラクタについてメモリに記憶されている目標位置データが示す位置に向けて、移動速度データが示す移動速度で、当該仲間キャラクタを移動させる。また、プロセッサ81は、メモリに記憶されている仲間キャラクタデータを、移動後の位置および向きを示すように更新する。ステップS39の次にステップS40の処理が実行される。
【0238】
ステップS40において、プロセッサ81は、ゲーム空間に登場している仲間キャラクタを上記ステップS33において全て選択したか(つまり、全ての仲間キャラクタについて移動制御を行ったか)否かを判定する。ステップS40の判定結果が否定である場合、ステップS33の処理が再度実行される。以降、全ての仲間キャラクタがステップS33において選択されるまで、ステップS33~S40における処理ループが繰り返し実行される。一方、ステップS40の判定結果が肯定である場合、プロセッサ81は同行モード処理を終了する。
【0239】
図25および
図26は、
図22に示すステップS14の待機モード処理の詳細な流れの一例を示すサブフローチャートである。待機モード処理においては、まずステップS51において、プロセッサ81は、待機モードが開始された時点であるか否かを判定する。この判定は、今回のステップS1~S23の処理ループにおいて、上記ステップS10の処理(すなわち、制御モードを待機モードに移行する処理)が実行されたか否かに基づいて行われる。ステップS51の判定結果が肯定である場合、ステップS52の処理が実行される。一方、ステップS51の判定結果が否定である場合、ステップS52~S54の処理がスキップされてステップS55の処理が実行される。
【0240】
ステップS52において、プロセッサ81は、上述の停止目標位置を設定する。具体的には、プロセッサ81は、上記“[2-2.仲間キャラクタの移動を制御する処理]”で述べた方法に従って、ゲーム空間に登場している仲間キャラクタと同じ数の停止目標位置を設定する。なお、指定仲間キャラクタが設定されている場合には、設定される1以上の停止目標位置のうち1つは指定停止目標位置である。ステップS52の次にステップS53の処理が実行される。
【0241】
ステップS53において、プロセッサ81は、ステップS52において設定された停止目標位置と仲間キャラクタとの対応関係を設定する。この対応関係は、上記“[2-2.仲間キャラクタの移動を制御する処理]”で述べた方法に従って設定される。なお、指定仲間キャラクタが設定されている場合には、指定仲間キャラクタが指定停止目標位置に対応するように上記対応関係が設定される。プロセッサ81は、メモリに記憶されている各仲間キャラクタデータに含まれる各目標位置データを、設定された対応関係を示す内容となるように更新する。ステップS53の次にステップS54の処理が実行される。
【0242】
ステップS54において、プロセッサ81は、上記ステップS1の処理によってプレイヤキャラクタの動作が制御された結果に基づいて、ゲーム空間において基準範囲を設定する。例えば、プロセッサ81は、基準範囲を特定するための情報(例えば、基準範囲の中心位置、すなわち、プレイヤキャラクタの現在位置)をメモリに記憶しておく。ステップS54の次にステップS55の処理が実行される。
【0243】
ステップS55において、プロセッサ81は、ゲーム空間に登場している仲間キャラクタのうちから1体を選択する。このとき、プロセッサ81は、今回の停止モードにおけるステップS55~S65の処理ループにおいてまだ選択されていない仲間キャラクタを選択する。ステップS55の次にステップS56の処理が実行される。
【0244】
ステップS56において、プロセッサ81は、ステップS55で選択された仲間キャラクタが戦闘可能状態であるか否かを判定する。この判定は、上述のステップS34における判定と同様に行われる。ステップS56の判定結果が肯定である場合、ステップS57の処理が実行される。一方、ステップS56の判定結果が否定である場合、ステップS58の処理が実行される。
【0245】
ステップS57において、プロセッサ81は、ステップS55で選択された仲間キャラクタを、戦闘のための動作を行うように制御する。ステップS57の処理は、上述のステップS35における処理と同様に行われる。ステップS57の次に、後述する
図26に示すステップS67の処理が実行される。
【0246】
ステップS58において、プロセッサ81は、上述の照準モードでゲーム画像が生成される場合において、ステップS55で選択された仲間キャラクタが仮想カメラの視野範囲内に位置するか否かを判定する。ステップS58の判定結果が肯定である場合、ステップS59の処理が実行される。一方、ステップS58の判定結果が否定である場合、ステップS60の処理が実行される。
【0247】
ステップS59において、プロセッサ81は、ステップS55で選択された仲間キャラクタを、仮想カメラの視野範囲外に位置するように移動させる。このとき、プロセッサ81は、メモリに記憶されている仲間キャラクタデータを、移動後の位置および向きを示すように更新する。なお、仲間キャラクタは、1回のステップS59の処理によって仮想カメラの視野範囲外まで移動するように制御される必要はなく、移動速度に上限が設けられる結果、複数回のステップS59の処理によって仮想カメラの視野範囲外まで移動するように制御されてもよい。ステップS59の次に、後述する
図26に示すステップS67の処理が実行される。
【0248】
ステップS60において、プロセッサ81は、ステップS55で選択された仲間キャラクタが上述のアクション対象オブジェクトの近くに配置されているか否かを判定する。なお、(1)待機モードとなった時点で、基準範囲内に位置する仲間キャラクタの近くにアクション対象オブジェクトが配置されている場合、または、(2)待機モードに移行した後で、停止目標位置で停止した状態の仲間キャラクタの近くにアクション対象オブジェクトが出現した場合、ステップS60の判定結果は肯定となる。なお、仲間キャラクタがアクション対象オブジェクトの近くに配置されているか否かの判定は、例えば、アクション対象オブジェクトと当該仲間キャラクタとの間の距離が、アクション範囲の最も長い部分の幅よりも短いか否かに応じて行われる。ステップS60の判定結果が肯定である場合、ステップS61の処理が実行される。一方、ステップS60の判定結果が否定である場合、
図26に示すステップS62の処理が実行される。
【0249】
ステップS61において、プロセッサ81は、ステップS55で選択された仲間キャラクタを、アクション対象オブジェクトから離れた位置に移動させる。具体的には、プロセッサ81は、アクション対象オブジェクトと当該仲間キャラクタとの間の距離が、アクション範囲の最も長い部分の幅よりも長くなる位置へと当該仲間キャラクタを移動させる。このとき、プロセッサ81は、メモリに記憶されている仲間キャラクタデータを、移動後の位置および向きを示すように更新する。なお、仲間キャラクタは、1回のステップS61の処理によって上記の位置へ移動するように制御される必要はなく、移動速度に上限が設けられる結果、複数回のステップS61の処理によって上記位置まで移動するように制御されてもよい。ステップS61の次に、後述する
図26に示すステップS67の処理が実行される。
【0250】
図26に示すステップS62において、プロセッサ81は、ステップS55で選択された仲間キャラクタが、待機モードが開始された時点で上述の基準範囲外に位置していたか否かを判定する。ステップS62の判定処理は、ステップS55で選択された仲間キャラクタを、停止目標位置まで移動させてから停止させるか、それとも、待機モードが開始された時点の位置で停止させるかを判定するための処理である。ステップS62の判定結果が肯定である場合、ステップS63の処理が実行される。一方、ステップS62の判定結果が否定である場合、後述するステップS65の処理が実行される。
【0251】
ステップS63において、プロセッサ81は、ステップS44で選択された仲間キャラクタが停止目標位置に到達したか否かを判定する。ステップS63の判定結果が否定である場合、ステップS64の処理が実行される。一方、ステップS63の判定結果が肯定である場合、後述するステップS67の処理が実行される。
【0252】
ステップS64において、プロセッサ81は、ステップS55で選択された仲間キャラクタに対応する停止目標位置が上述のアクション対象オブジェクトの近くに配置されているか否かを判定する。ステップS64の判定処理は、待機モードとなった時点で基準範囲外に位置する仲間キャラクタに対応する停止目標位置が、アクション対象オブジェクトの近くに配置されているか否かを判定するための処理である。なお、上記停止目標位置がアクション対象オブジェクトの近くに配置されているか否かの判定は、例えば、アクション対象オブジェクトと当該停止目標位置との間の距離が、アクション範囲の最も長い部分の幅よりも短いか否かに応じて行われる。ステップS64の判定結果が肯定である場合、ステップS65の処理が実行される。一方、ステップS64の判定結果が否定である場合、ステップS66の処理が実行される。
【0253】
ステップS65において、プロセッサ81は、ステップS55で選択された仲間キャラクタに対応する停止目標位置を変更する。具体的には、プロセッサ81は、具体的には、プロセッサ81は、アクション対象オブジェクトと当該停止目標位置との間の距離が、アクション範囲の最も長い部分の幅よりも長くなるような位置に当該停止目標位置を変更する。このとき、プロセッサ81は、メモリに記憶されている仲間キャラクタデータに含まれる目標位置データを、変更後の位置を示す内容となるように更新する。ステップS65の次にステップS66の処理が実行される。
【0254】
ステップS66において、プロセッサ81は、ステップS55で選択された仲間キャラクタを、当該仲間キャラクタに対応する停止目標位置へ向けて移動させる。なお、ステップS66における仲間キャラクタの移動速度は、上述のステップS37と同様の方法で設定されてもよい。また、プロセッサ81は、メモリに記憶されている仲間キャラクタデータを、移動後の位置および向きを示すように更新する。ステップS66の次にステップS67の処理が実行される。
【0255】
なお、上記ステップS57,S59,S61,またはS66の処理が実行される場合に仲間キャラクタは移動し、これらの処理が実行されない場合には、仲間キャラクタを移動させる処理は実行されずに仲間キャラクタは停止した状態となる。
【0256】
ステップS67において、プロセッサ81は、ゲーム空間に登場している仲間キャラクタを上記ステップS55において全て選択したか(つまり、全ての仲間キャラクタについて移動制御を行ったか)否かを判定する。ステップS67の判定結果が否定である場合、ステップS55の処理が再度実行される。以降、全ての仲間キャラクタがステップS55において選択されるまで、ステップS55~S67における処理ループが繰り返し実行される。一方、ステップS67の判定結果が肯定である場合、ステップS68の処理が実行される。
【0257】
ステップS68において、プロセッサ81は、上記ステップS11の判定に用いられる停止範囲を設定する。停止範囲は、上記ステップS54で設定された基準範囲と、現在の各仲間キャラクタの位置に基づいて設定される各追加範囲とに基づいて設定される(
図16参照)。ステップS68の後、プロセッサ81は待機モード処理を終了する。
【0258】
[4.本実施形態の作用効果および変形例]
以上のように、上記実施形態においては、情報処理システム(具体例としては、ゲームシステム1)は、下記の手段を備える構成である(情報処理プログラムの一例であるゲームプログラムがコンピュータを下記の手段として機能させる構成であるとも言える)。
・ユーザによる第1操作入力に応じて仮想空間内においてプレイヤキャラクタを移動させるプレイヤキャラクタ制御手段(ステップS1)
・仮想空間内において、プレイヤキャラクタの移動に応じて当該プレイヤキャラクタに同行するようにノンプレイヤキャラクタ(例えば、仲間キャラクタ202~206)を移動させる制御(ステップS13)と、当該プレイヤキャラクタの移動の停止に応じて、当該プレイヤキャラクタを含む第1範囲(例えば、基準範囲)内で当該ノンプレイヤキャラクタの移動を停止させる制御(ステップS14)とを少なくとも含む移動制御を行うノンプレイヤキャラクタ制御手段
・プレイヤキャラクタとノンプレイヤキャラクタとが近いことを示す所定の位置関係となる状態(例えば、プレイヤキャラクタのアクション範囲内にノンプレイヤキャラクタが位置する状態)でユーザによる第2操作入力が行われたことに応じて、当該ノンプレイヤキャラクタに対応する第1制御(例えば、仲間キャラクタに準備状態の動作を行わせる制御、または、仲間キャラクタにスキル動作を行わせる制御)を実行する第1制御実行手段(ステップS16またはS20)
また、ノンプレイヤキャラクタ制御手段は、プレイヤキャラクタが停止後に移動を再開した場合において、(1)プレイヤキャラクタが第1範囲を含む第2範囲(例えば、停止範囲)内に位置するときは、当該プレイヤキャラクタが移動しても、当該プレイヤキャラクタに同行するように前記ノンプレイヤキャラクタを移動させる制御を再開させず、(2)プレイヤキャラクタが第2範囲外に出たことに応じて、当該プレイヤキャラクタに同行するように前記ノンプレイヤキャラクタを移動させる制御を再開させる。
【0259】
上記の構成によれば、プレイヤキャラクタの移動および停止に応じてノンプレイヤキャラクタの移動を制御することで、プレイヤキャラクタの周囲にノンプレイヤキャラクタを配置することができるとともに、ノンプレイヤキャラクタをプレイヤキャラクタの周囲で停止させることができる。これによって、ユーザの意図に従ってプレイヤキャラクタをノンプレイヤキャラクタに近づける操作を行いやすくすることができる。
【0260】
なお、上記第1制御とは、それに対応するノンプレイヤキャラクタに動作を行わせる制御に限らず、当該ノンプレイヤキャラクタに関して実行される任意の制御であってよい。例えば、ゲームシステム1は、上記第1制御として、ノンプレイヤキャラクタに対してプレイヤキャラクタに何らかの動作(例えば、プレイヤキャラクタがノンプレイヤキャラクタに話しかける動作)を行わせる制御を実行してもよいし、ノンプレイヤキャラクタに関する情報(例えば、能力値等のステータス情報)を表示する制御を実行してもよい。
【0261】
上記「プレイヤキャラクタとノンプレイヤキャラクタとが近いことを示す所定の位置関係」とは、プレイヤキャラクタとノンプレイヤキャラクタとの距離を条件とする関係を指すが、当該距離のみを条件とする関係に限定されない意味である。例えば、上記位置関係とは、上記実施形態における、プレイヤキャラクタのアクション範囲内にノンプレイヤキャラクタが位置する場合のように、プレイヤキャラクタとノンプレイヤキャラクタとの距離に加えて、プレイヤキャラクタの向きを条件とする関係であってもよい。このように、上記「プレイヤキャラクタとノンプレイヤキャラクタとが近いことを示す所定の位置関係」とは、プレイヤキャラクタとノンプレイヤキャラクタとの距離が一定以下であれば常に当該位置関係に該当する必要はなく、プレイヤキャラクタとノンプレイヤキャラクタとの距離が一定以下であっても当該位置関係に該当しない場合があってもよい意味である。
【0262】
上記における「プレイヤキャラクタの移動の停止に応じて、ノンプレイヤキャラクタの移動を停止させる」とは、プレイヤキャラクタの移動の停止を契機としてノンプレイヤキャラクタの移動が停止することを意味し、ノンプレイヤキャラクタの移動を停止させるタイミングは限定されない意味である。すなわち、上記実施形態のように、ノンプレイヤキャラクタの一例である仲間キャラクタは、プレイヤキャラクタが停止した時点で停止してもよいし、プレイヤキャラクタが停止した時点よりも後の時点で停止してもよい。また、上記「プレイヤキャラクタの移動の停止に応じて、ノンプレイヤキャラクタの移動を停止させる」とは、移動を停止するようにノンプレイヤキャラクタが制御された後で、プレイヤキャラクタが第2範囲外に出ていない場合であっても、何からの条件に応じて(例えば、上記実施形態における第1~第3の例外が生じたことに応じて)ノンプレイヤキャラクタが移動を行うことを排除しない意味である。
【0263】
また、上記における「プレイヤキャラクタを含む第1範囲内でノンプレイヤキャラクタの移動を停止させる」とは、ノンプレイヤキャラクタの移動の停止位置が第1範囲内であることを意味し、第1範囲の設定方法および設定タイミングは限定されない意味である。例えば、第1範囲は、上記実施形態における基準範囲のように、プレイヤキャラクタの位置に基づいて設定されるものであってもよい。また、第1範囲は、上記実施形態とは異なり、プレイヤキャラクタの位置に加えてノンプレイヤキャラクタの位置に基づいて設定されるものであってもよい。
【0264】
以上より、「プレイヤキャラクタの移動の停止に応じて、当該プレイヤキャラクタを含む第1範囲内でノンプレイヤキャラクタの移動を停止させる制御」とは、次のような制御を含む意味である。
・プレイヤキャラクタが移動を停止した時点でノンプレイヤキャラクタを停止させ、プレイヤキャラクタおよびノンプレイヤキャラクタを含むように第1範囲を設定する制御
・プレイヤキャラクタの位置を基準とした範囲を常時設定し(なお、プレイヤキャラクタに同行するように移動する間は当該範囲を考慮せずにノンプレイヤキャラクタの移動制御が行われる。)、プレイヤキャラクタが移動を停止した時点における当該範囲を第1範囲として設定し、当該時点よりも後の時点で、第1範囲内に位置するようにノンプレイヤキャラクタを移動させた後で停止させる制御
【0265】
なお、上記第1範囲と第2範囲とは、同じ範囲であってもよいし、異なる範囲であってもよい。
【0266】
また、上記実施形態における情報処理システム(具体例としては、ゲームシステム1)は、下記の手段を備える構成であると言うこともできる(情報処理プログラムの一例であるゲームプログラムがコンピュータを下記の手段として機能させる構成であるとも言える)。
・ユーザによる第1操作入力に応じて仮想空間内においてプレイヤキャラクタを移動させるプレイヤキャラクタ制御手段
・仮想空間内において、プレイヤキャラクタの移動に応じて当該プレイヤキャラクタに同行するようにノンプレイヤキャラクタを移動させる制御を行うノンプレイヤキャラクタ制御手段
・プレイヤキャラクタとノンプレイヤキャラクタとが近いことを示す所定の位置関係となる状態でユーザによる第2操作入力が行われたことに応じて、当該ノンプレイヤキャラクタに対応する所定の制御の準備状態へと当該ノンプレイヤキャラクタを移行させる準備制御を実行する第1制御実行手段
・ノンプレイヤキャラクタが所定の制御の準備状態となる場合において、ユーザによる方向または位置の指定を含む第3操作入力が行われたことに応じて、指定された方向または位置に向けて所定の制御を実行する第2制御実行手段
【0267】
上記の構成によれば、ユーザは、準備制御のための第2操作入力を行ってから、所定の制御のための第3操作入力を行うので、例えば、意図しない方向または位置に向かって所定の制御が行われたり、意図しない所定の制御が行われたりするといった誤操作が生じる可能性を低減することができる。なお、上記の構成においては、上述したようなノンプレイヤキャラクタを停止させる制御は行われてもよいし、行われなくてもよい。いずれの場合においても、上記の構成によれば、上記の誤操作が生じる可能性を低減することができるという効果を奏する。
【0268】
また、上記実施形態における情報処理システム(具体例としては、ゲームシステム1)は、下記の手段を備える構成であると言うこともできる(情報処理プログラムの一例であるゲームプログラムがコンピュータを下記の手段として機能させる構成であるとも言える)。
・ユーザによる第1操作入力に応じて仮想空間内においてプレイヤキャラクタを移動させるプレイヤキャラクタ制御手段
・仮想空間内において、プレイヤキャラクタの移動に応じて当該プレイヤキャラクタに同行するようにノンプレイヤキャラクタを移動させる制御を行うノンプレイヤキャラクタ制御手段
・プレイヤキャラクタとノンプレイヤキャラクタとが近いことを示す所定の位置関係となる状態でユーザによる第2操作入力が行われたことに応じて、当該ノンプレイヤキャラクタに対応する第1制御を実行する第1制御実行手段
また、上記ノンプレイヤキャラクタ制御手段は、ノンプレイヤキャラクタがプレイヤキャラクタに同行するように移動を行っている場合にプレイヤキャラクタが当該ノンプレイヤキャラクタの方へ移動することに応じて、当該ノンプレイヤキャラクタの移動速度をプレイヤキャラクタの移動速度よりも遅くする(ステップS38)。
【0269】
上記の構成によれば、プレイヤキャラクタがノンプレイヤキャラクタに近づきやすくすることができるので、ノンプレイヤキャラクタに対応する第1制御を実行しやすくすることができる。なお、上記の構成においては、上述したようなノンプレイヤキャラクタを停止させる制御は行われてもよいし、行われなくてもよい。いずれの場合においても、上記の構成によれば、上記の誤操作が生じる可能性を低減することができるという効果を奏する。
【0270】
また、上記実施形態における情報処理システム(具体例としては、ゲームシステム1)は、下記の手段を備える構成であると言うこともできる(情報処理プログラムの一例であるゲームプログラムがコンピュータを下記の手段として機能させる構成であるとも言える)。
・ユーザの第1操作入力に応じて、仮想空間内においてプレイヤキャラクタを移動させるプレイヤキャラクタ制御手段(ステップS1)
・プレイヤキャラクタの移動に応じて、当該プレイヤキャラクタの味方となる複数のノンプレイヤキャラクタ(例えば、仲間キャラクタ202~206)を仮想空間内においてそれぞれ移動させるノンプレイヤキャラクタ制御手段(ステップS13,S14)
・複数のノンプレイヤキャラクタのうちの1つのノンプレイヤキャラクタとプレイヤキャラクタとが近いことを示す所定の位置関係となる状態(例えば、プレイヤキャラクタのアクション範囲内にノンプレイヤキャラクタが位置する状態)でユーザの第2操作入力が行われたことに応じて、当該ノンプレイヤキャラクタに対応する第1制御を実行する制御実行手段(ステップS16またはS20)
・第1制御が実行されたノンプレイヤキャラクタを指定ノンプレイヤキャラクタとして設定する指定キャラクタ設定手段(ステップS18)
また、ノンプレイヤキャラクタ制御手段は、複数のノンプレイヤキャラクタのうち指定ノンプレイヤキャラクタとプレイヤキャラクタとの距離が、当該指定ノンプレイヤキャラクタとは異なる通常ノンプレイヤキャラクタとプレイヤキャラクタとの距離よりも近くなる状態とするように、複数のノンプレイヤキャラクタの移動制御を行う(
図19および
図20)。
【0271】
上記によれば、指定ノンプレイヤキャラクタについては通常ノンプレイヤキャラクタに比べて第1制御を行いやすくなるので、ユーザは、所望のノンプレイヤキャラクタについて第1制御を行うことで、当該ノンプレイヤキャラクタについての再度の第1制御を行いやすくすることができる。これによって、所望のノンプレイヤキャラクタに対する動作(すなわち、第1制御に応じた動作)をプレイヤキャラクタに行わせやすくすることができる。なお、上記の構成においては、上述したようなノンプレイヤキャラクタを停止させる制御は行われてもよいし、行われなくてもよい。いずれの場合においても、上記の構成によれば、上記の誤操作が生じる可能性を低減することができるという効果を奏する。
【0272】
なお、上記「複数のノンプレイヤキャラクタのうち指定ノンプレイヤキャラクタとプレイヤキャラクタとの距離が、当該指定ノンプレイヤキャラクタとは異なる通常ノンプレイヤキャラクタとプレイヤキャラクタとの距離よりも近くなる状態とするように、複数のノンプレイヤキャラクタの移動制御を行う」とは、当該状態が常に維持されるように各ノンプレイヤキャラクタが配置される態様に限定される意味ではなく、当該状態とするためのアルゴリズムで移動制御が行われればよい意味である。上記の移動制御とは、例えば、プレイヤキャラクタからの距離が上限を超えたことに応じてノンプレイヤキャラクタをプレイヤキャラクタの方へ近づける制御を行い、指定仲間キャラクタについての上限を、通常キャラクタについての上限よりも小さく設定する制御処理であってもよい。また例えば、上記の移動制御とは、ノンプレイヤキャラクタの移動可能範囲を設定し、指定仲間キャラクタについての移動可能範囲を、通常キャラクタについての移動可能範囲に比べてプレイヤキャラクタに近い範囲に制限する制御処理であってもよい。
【0273】
上記実施形態においては、各種の範囲(具体的には、基準範囲、追加範囲、および、停止範囲)や目標位置(具体的には、移動目標位置および停止目標位置)は表示されない。これによって、ゲーム画像をユーザにとって見やすいものとすることができる。なお、他の実施形態においては、上記各種の範囲および目標位置のうちの一部または全部は表示されてもよい。
【0274】
上記実施形態においては、プレイヤキャラクタと、ノンプレイヤキャラクタの一例である仲間キャラクタとが入れ替わることはなかったが、他の実施形態においては、プレイヤキャラクタとノンプレイヤキャラクタとが入れ替わることがあってもよい。
【0275】
なお、上記の実施形態において、ある情報処理装置においてデータ(プログラムを含む意味である)を用いて処理が実行される場合、当該処理に必要なデータの一部が、当該ある情報処理装置とは異なる他の情報処理装置から送信されてもよい。このとき、当該ある情報処理装置は、他の情報処理装置から受信されたデータと、自身に記憶されているデータとを用いて上記処理を実行してもよい。
【0276】
なお、他の実施形態において、情報処理システムは、上記実施形態における構成の一部を備えていなくてもよいし、上記実施形態において実行される処理の一部を実行しなくてもよい。例えば、情報処理システムは、上記実施形態における一部の特定の効果を奏するためには、当該効果を奏するための構成を備え、当該効果を奏するための処理を実行すればよく、その他の構成を備えていなくてもよいし、その他の処理を実行しなくてもよい。
【産業上の利用可能性】
【0277】
上記実施形態は、ユーザの意図に従ってプレイヤキャラクタをノンプレイヤキャラクタに近づける操作を行いやすくすること等を目的として、例えばゲームシステムおよびゲームプログラムに利用することが可能である。
【符号の説明】
【0278】
1 ゲームシステム
2 本体装置
81 プロセッサ
201 プレイヤキャラクタ
202~206 仲間キャラクタ
211~215 移動目標位置
220 基準範囲
221~225 停止目標位置
227 アクション対象オブジェクト
228 アクション範囲
229 停止範囲
241 停止判定用範囲
261 指定移動目標位置
262 指定停止目標位置