(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-25
(45)【発行日】2024-05-08
(54)【発明の名称】ゲームプログラム、情報処理システム、情報処理装置、および情報処理方法
(51)【国際特許分類】
A63F 13/52 20140101AFI20240426BHJP
A63F 13/55 20140101ALI20240426BHJP
G06T 13/40 20110101ALI20240426BHJP
【FI】
A63F13/52
A63F13/55
G06T13/40
(21)【出願番号】P 2023075782
(22)【出願日】2023-05-01
【審査請求日】2023-05-22
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】遠藤 勇
【審査官】岸 智史
(56)【参考文献】
【文献】特開2011-186834(JP,A)
【文献】特開2017-221553(JP,A)
【文献】特開2001-229395(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24、13/00-13/98
G06T 13/40
(57)【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータに、
操作入力に基づいて、仮想空間内においてプレイヤキャラクタを制御させ、
前記仮想空間内における第1のオブジェクトを、
第1の状態において、
自動的に移動をさせる処理、アニメーション処理、他のオブジェクトとの相互作用の検知処理、および当該相互作用の検知に応じた挙動をさせる処理、を少なくとも含む複数の処理による第1のオブジェクト制御処理に基づいて制御させ、
前記第1のオブジェクトが移動中でないという条件と、前記第1のオブジェクトが他のオブジェクトと相互作用していないという条件とを少なくとも含む複数の条件を満たす第2の状態において、
前記第1のオブジェクト制御処理に含まれる複数の処理のうち、移動を伴わないアニメーションに関する前記アニメーション処理、および少なくとも一部の前記相互作用の検知処理を少なくとも行わせ、前記自動的に移動をさせる処理を含む他の少なくとも一部の処理を行わせない第2のオブジェクト制御処理に基づいて前記第1のオブジェクトを制御させる、
ゲームプログラム。
【請求項2】
前記第2のオブジェクト制御処理に含まれる、少なくとも一部の前記相互作用の検知処理は、前記プレイヤキャラクタのアクションに基づいた相互作用の検知を少なくとも含み、
前記コンピュータにさらに、
前記第2の状態の前記第1のオブジェクトに対する、前記プレイヤキャラクタのアクションに基づいた相互作用が検知された場合に、前記第1のオブジェクトを前記第1の状態へと遷移させて、前記第1のオブジェクト制御処理に基づいて前記第1のオブジェクトを制御させる、請求項1に記載のゲームプログラム。
【請求項3】
前記第2のオブジェクト制御処理に含まれる、少なくとも一部の前記相互作用の検知処理は、前記プレイヤキャラクタのアクションに基づいた相互作用の検知を少なくとも含み、
前記コンピュータにさらに、
前記第2の状態の前記第1のオブジェクトに対する、前記プレイヤキャラクタのアクションに基づいた相互作用が検知された場合に、前記第1のオブジェクトに、当該相互作用の検知に応じた挙動をさせる、請求項1に記載のゲームプログラム。
【請求項4】
前記第1のオブジェクト制御処理は、前記相互作用の発生を含むゲーム状況に基づいて、前記挙動の開始および前記移動の開始を含む前記第1のオブジェクトの行動の決定をする行動決定処理を含み、
前記第2のオブジェクト制御処理は、前記行動決定処理を含まない、請求項2に記載のゲームプログラム。
【請求項5】
前記第1のオブジェクト制御処理は、
開始された前記第1のオブジェクトの前記挙動および前記移動を進行させる処理を含む、請求項4に記載のゲームプログラム。
【請求項6】
前記複数の条件はさらに、前記プレイヤキャラクタまたは仮想カメラと前記第1のオブジェクトとの距離が所定の基準を超えているという条件を含む、請求項1から5のいずれかに記載のゲームプログラム。
【請求項7】
前記第2のオブジェクト制御処理はさらに、前記プレイヤキャラクタまたは前記仮想カメラと前記第1のオブジェクトとの距離の検知を少なくとも含み、
前記コンピュータにさらに、
前記第2の状態の前記第1のオブジェクトと、前記プレイヤキャラクタまたは仮想カメラとの距離が所定の基準以下になった場合に、前記第1のオブジェクトを前記第1の状態へと遷移させて、前記第1のオブジェクト制御処理に基づいて前記第1のオブジェクトを制御させる、請求項6に記載のゲームプログラム。
【請求項8】
前記コンピュータにさらに、
前記第1のオブジェクトが、前記複数の条件を満たすか否かに関わらず、他の所定の条件が満たされる場合に、前記第1のオブジェクト制御処理および前記第2のオブジェクト制御処理の一方に基づいて前記第1のオブジェクトを制御させる、請求項1に記載のゲームプログラム。
【請求項9】
前記第1のオブジェクトは、ノンプレイヤキャラクタを含み、
前記コンピュータにさらに、
複数の前記ノンプレイヤキャラクタに戦闘を行わせ、
前記戦闘中において、前記複数の前記ノンプレイヤキャラクタのうち、少なくともいずれかの前記ノンプレイヤキャラクタを前記第1のオブジェクト制御処理に基づいて制御させ、前記行動決定処理に基づいて戦闘を行わせると共に、他の前記ノンプレイヤキャラクタを前記第2のオブジェクト制御処理に基づいて制御させる、請求項4に記載のゲームプログラム。
【請求項10】
前記コンピュータに、
非戦闘中において、前記第2のオブジェクト制御処理に基づいて制御される前記ノンプレイヤキャラクタに、前記移動を伴わないアニメーションとして、第1のアニメーションをさせ、
前記戦闘中において、前記第2のオブジェクト制御処理に基づいて制御される前記ノンプレイヤキャラクタに、前記移動を伴わないアニメーションとして、前記第1のアニメーションと異なる第2のアニメーションをさせる、請求項9に記載のゲームプログラム。
【請求項11】
前記ノンプレイヤキャラクタは、敵キャラクタであって、
前記戦闘は、前記プレイヤキャラクタと複数の前記敵キャラクタとの戦闘であって、
前記コンピュータに、
前記プレイヤキャラクタまた
は仮想カメラに近いものから所定数の前記敵キャラクタを前記第1のオブジェクト制御処理に基づいて制御させ、他の前記敵キャラクタを前記第2のオブジェクト制御処理に基づいて制御させる、請求項9に記載のゲームプログラム。
【請求項12】
複数の前記ノンプレイヤキャラクタは、味方キャラクタおよび敵キャラクタを含み、
前記戦闘は、複数の前記味方キャラクタと複数の前記敵キャラクタとの戦闘であって、
前記コンピュータに、
前記味方キャラクタと前記敵キャラクタが含まれるグループであって、当該グループ内において前記戦闘を行う戦闘グループを複数設定させ、
それぞれのグループ内において、少なくとも1体の前記味方キャラクタと少なくとも1体の前記敵キャラクタとを前記第1のオブジェクト制御処理に基づいて制御させ、他の前記味方キャラクタおよび前記敵キャラクタを前記第2のオブジェクト制御処理に基づいて制御させる、請求項9に記載のゲームプログラム。
【請求項13】
前記コンピュータにさらに、
前記戦闘中において、
前記仮想空間内における前記味方キャラクタと前記敵キャラクタの位置関係に基づいて前記戦闘グループを設定させ、
第1の領域に配置された少なくともいずれかの前記第1のオブジェクト制御処理に基づいて制御される前記味方キャラクタを、前記敵キャラクタが配置された第2の領域に移動させることにより、当該味方キャラクタと前記敵キャラクタを含む前記戦闘グループを設定させる、請求項12に記載のゲームプログラム。
【請求項14】
プロセッサを備える情報処理システムであって、前記プロセッサは、
操作入力に基づいて、仮想空間内においてプレイヤキャラクタを制御させ、
前記仮想空間内における第1のオブジェクトを、
第1の状態において、
自動的に移動をさせる処理、アニメーション処理、他のオブジェクトとの相互作用の検知処理、および当該相互作用の検知に応じた挙動をさせる処理、を少なくとも含む複数の処理による第1のオブジェクト制御処理に基づいて制御し、
前記第1のオブジェクトが移動中でないという条件と、前記第1のオブジェクトが他のオブジェクトと相互作用していないという条件とを少なくとも含む複数の条件を満たす第2の状態において、
前記第1のオブジェクト制御処理に含まれる複数の処理のうち、移動を伴わないアニメーションに関する前記アニメーション処理、および少なくとも一部の前記相互作用の検知処理を少なくとも行わせ、前記自動的に移動をさせる処理を含む他の少なくとも一部の処理を行わせない第2のオブジェクト制御処理に基づいて前記第1のオブジェクトを制御する、
情報処理システム。
【請求項15】
前記第2のオブジェクト制御処理に含まれる、少なくとも一部の前記相互作用の検知処理は、前記プレイヤキャラクタのアクションに基づいた相互作用の検知を少なくとも含み、
前記プロセッサはさらに、
前記第2の状態の前記第1のオブジェクトに対する、前記プレイヤキャラクタのアクションに基づいた相互作用が検知された場合に、前記第1のオブジェクトを前記第1の状態へと遷移させて、前記第1のオブジェクト制御処理に基づいて前記第1のオブジェクトを制御する、請求項14に記載の情報処理システム。
【請求項16】
前記第2のオブジェクト制御処理に含まれる、少なくとも一部の前記相互作用の検知処理は、前記プレイヤキャラクタのアクションに基づいた相互作用の検知を少なくとも含み、
前記プロセッサはさらに、
前記第2の状態の前記第1のオブジェクトに対する、前記プレイヤキャラクタのアクションに基づいた相互作用が検知された場合に、前記第1のオブジェクトに、当該相互作用の検知に応じた挙動をさせる、請求項14に記載の情報処理システム。
【請求項17】
前記第1のオブジェクト制御処理は、前記相互作用の発生を含むゲーム状況に基づいて、前記挙動の開始および前記移動の開始を含む前記第1のオブジェクトの行動の決定をする行動決定処理を含み、
前記第2のオブジェクト制御処理は、前記行動決定処理を含まない、請求項15に記載の情報処理システム。
【請求項18】
前記第1のオブジェクト制御処理は、
開始された前記第1のオブジェクトの前記挙動および前記移動を進行させる処理を含む、請求項17に記載の情報処理システム。
【請求項19】
前記複数の条件はさらに、前記プレイヤキャラクタまたは仮想カメラと前記第1のオブジェクトとの距離が所定の基準を超えているという条件を含む、請求項14から18のいずれかに記載の情報処理システム。
【請求項20】
前記第2のオブジェクト制御処理はさらに、前記プレイヤキャラクタまたは前記仮想カメラと前記第1のオブジェクトとの距離の検知を少なくとも含み、
前記プロセッサはさらに、
前記第2の状態の前記第1のオブジェクトと、前記プレイヤキャラクタまたは仮想カメラとの距離が所定の基準以下になった場合に、前記第1のオブジェクトを前記第1の状態へと遷移させて、前記第1のオブジェクト制御処理に基づいて前記第1のオブジェクトを制御する、請求項19に記載の情報処理システム。
【請求項21】
前記プロセッサはさらに、
前記第1のオブジェクトが、前記複数の条件を満たすか否かに関わらず、他の所定の条件が満たされる場合に、前記第1のオブジェクト制御処理および前記第2のオブジェクト制御処理の一方に基づいて前記第1のオブジェクトを制御する、請求項14に記載の情報処理システム。
【請求項22】
前記第1のオブジェクトは、ノンプレイヤキャラクタを含み、
前記プロセッサはさらに、
複数の前記ノンプレイヤキャラクタに戦闘を行わせ、
前記戦闘中において、前記複数の前記ノンプレイヤキャラクタのうち、少なくともいずれかの前記ノンプレイヤキャラクタを前記第1のオブジェクト制御処理に基づいて制御し、前記行動決定処理に基づいて戦闘を行わせると共に、他の前記ノンプレイヤキャラクタを前記第2のオブジェクト制御処理に基づいて制御する、請求項17に記載の情報処理システム。
【請求項23】
前記プロセッサは、
非戦闘中において、前記第2のオブジェクト制御処理に基づいて制御される前記ノンプレイヤキャラクタに、前記移動を伴わないアニメーションとして、第1のアニメーションをさせ、
前記戦闘中において、前記第2のオブジェクト制御処理に基づいて制御される前記ノンプレイヤキャラクタに、前記移動を伴わないアニメーションとして、前記第1のアニメーションと異なる第2のアニメーションをさせる、請求項22に記載の情報処理システム。
【請求項24】
前記ノンプレイヤキャラクタは、敵キャラクタであって、
前記戦闘は、前記プレイヤキャラクタと複数の前記敵キャラクタとの戦闘であって、
前記プロセッサは、
前記プレイヤキャラクタまた
は仮想カメラに近いものから所定数の前記敵キャラクタを前記第1のオブジェクト制御処理に基づいて制御し、他の前記敵キャラクタを前記第2のオブジェクト制御処理に基づいて制御する、請求項22に記載の情報処理システム。
【請求項25】
複数の前記ノンプレイヤキャラクタは、味方キャラクタおよび敵キャラクタを含み、
前記戦闘は、複数の前記味方キャラクタと複数の前記敵キャラクタとの戦闘であって、
前記プロセッサは、
前記味方キャラクタと前記敵キャラクタが含まれるグループであって、当該グループ内において前記戦闘を行う戦闘グループを複数設定し、
それぞれのグループ内において、少なくとも1体の前記味方キャラクタと少なくとも1体の前記敵キャラクタとを前記第1のオブジェクト制御処理に基づいて制御し、他の前記味方キャラクタおよび前記敵キャラクタを前記第2のオブジェクト制御処理に基づいて制御する、請求項22に記載の情報処理システム。
【請求項26】
前記プロセッサはさらに、
前記戦闘中において、
前記仮想空間内における前記味方キャラクタと前記敵キャラクタの位置関係に基づいて前記戦闘グループを設定し、
第1の領域に配置された少なくともいずれかの前記第1のオブジェクト制御処理に基づいて制御される前記味方キャラクタを、前記敵キャラクタが配置された第2の領域に移動させることにより、当該味方キャラクタと前記敵キャラクタを含む前記戦闘グループを設定する、請求項25に記載の情報処理システム。
【請求項27】
プロセッサを備える情報処理装置であって、前記プロセッサは、
操作入力に基づいて、仮想空間内においてプレイヤキャラクタを制御させ、
前記仮想空間内における第1のオブジェクトを、
第1の状態において、
自動的に移動をさせる処理、アニメーション処理、他のオブジェクトとの相互作用の検知処理、および当該相互作用の検知に応じた挙動をさせる処理、を少なくとも含む複数の処理による第1のオブジェクト制御処理に基づいて制御し、
前記第1のオブジェクトが移動中でないという条件と、前記第1のオブジェクトが他のオブジェクトと相互作用していないという条件とを少なくとも含む複数の条件を満たす第2の状態において、
前記第1のオブジェクト制御処理に含まれる複数の処理のうち、移動を伴わないアニメーションに関する前記アニメーション処理、および少なくとも一部の前記相互作用の検知処理を少なくとも行わせ、前記自動的に移動をさせる処理を含む他の少なくとも一部の処理を行わせない第2のオブジェクト制御処理に基づいて前記第1のオブジェクトを制御する、
情報処理装置。
【請求項28】
情報処理システムにおいて行われる情報処理方法であって、
操作入力に基づいて、仮想空間内においてプレイヤキャラクタを制御すること、
前記仮想空間内における第1のオブジェクトを、
第1の状態において、
自動的に移動をさせる処理、アニメーション処理、他のオブジェクトとの相互作用の検知処理、および当該相互作用の検知に応じた挙動をさせる処理、を少なくとも含む複数の処理による第1のオブジェクト制御処理に基づいて制御すること、
前記第1のオブジェクトが移動中でないという条件と、前記第1のオブジェクトが他のオブジェクトと相互作用していないという条件とを少なくとも含む複数の条件を満たす第2の状態において、
前記第1のオブジェクト制御処理に含まれる複数の処理のうち、移動を伴わないアニメーションに関する前記アニメーション処理、および少なくとも一部の前記相互作用の検知処理を少なくとも行わせ、前記自動的に移動をさせる処理を含む他の少なくとも一部の処理を行わせない第2のオブジェクト制御処理に基づいて前記第1のオブジェクトを制御すること、
を備える、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ゲームプログラム、情報処理システム、情報処理装置、および情報処理方法に関する。
【背景技術】
【0002】
従来、処理負荷が高いときに負荷を軽減させる技術の一つとして、一部のオブジェクトの更新頻度を下げる技術がある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、ゲーム内のオブジェクトの更新頻度を下げる方法では、表示中のオブジェクトの動きが粗くなり、プレイヤに違和感を与える可能性がある。
【0005】
それ故、本発明の目的は、見た目の違和感を生じさせ難くしながらオブジェクトの処理に関する負荷を軽減することが可能なゲームプログラム、情報処理システム、情報処理装置、および情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記の課題を解決すべく、本発明は、以下の構成を採用した。
【0007】
(第1の構成)
第1の構成に係るゲームプログラムは、情報処理装置のコンピュータに、操作入力に基づいて、仮想空間内においてプレイヤキャラクタを制御させ、前記仮想空間内における第1のオブジェクトを、第1の状態において、自動的に移動をさせる処理、アニメーション処理、他のオブジェクトとの相互作用の検知処理、および当該相互作用の検知に応じた挙動をさせる処理、を少なくとも含む複数の処理による第1のオブジェクト制御処理に基づいて制御させる。また、前記ゲームプログラムは、前記コンピュータに、前記第1のオブジェクトが移動中でないという条件と、前記第1のオブジェクトが他のオブジェクトと相互作用していないという条件とを少なくとも含む複数の条件を満たす第2の状態において、前記第1のオブジェクト制御処理に含まれる複数の処理のうち、移動を伴わないアニメーションに関する前記アニメーション処理、および少なくとも一部の前記相互作用の検知処理を少なくとも行わせ、前記自動的に移動をさせる処理を含む他の少なくとも一部の処理を行わせない第2のオブジェクト制御処理に基づいて前記第1のオブジェクトを制御させる。
【0008】
上記によれば、第2のオブジェクト制御処理において、第1のオブジェクトを自動的に移動をさせる処理を行わず、移動を伴わないアニメーション処理および他のオブジェクトとの相互作用の検知処理を行うため、見た目の違和感を生じさせ難くして、プレイヤとのインタラクションも可能にすることができるとともに、コンピュータの処理負荷を軽減することができる。
【0009】
(第2の構成)
第2の構成では、上記第1の構成において、前記第2のオブジェクト制御処理に含まれる、少なくとも一部の前記相互作用の検知処理は、前記プレイヤキャラクタのアクションに基づいた相互作用の検知を少なくとも含んでもよい。前記ゲームプログラムは、前記コンピュータにさらに、前記第2の状態の前記第1のオブジェクトに対する、前記プレイヤキャラクタのアクションに基づいた相互作用が検知された場合に、前記第1のオブジェクトを前記第1の状態へと遷移させて、前記第1のオブジェクト制御処理に基づいて前記第1のオブジェクトを制御させてもよい。
【0010】
上記によれば、プレイヤによる第1のオブジェクトに対する相互作用が行われた場合に、第1のオブジェクトを通常状態に遷移させることができ、プレイヤにとって違和感のないゲームを行うことができる。
【0011】
(第3の構成)
第3の構成では、上記第1又は第2の構成において、前記第2のオブジェクト制御処理に含まれる、少なくとも一部の前記相互作用の検知処理は、前記プレイヤキャラクタのアクションに基づいた相互作用の検知を少なくとも含んでもよい。前記ゲームプログラムは、前記コンピュータにさらに、前記第2の状態の前記第1のオブジェクトに対する、前記プレイヤキャラクタのアクションに基づいた相互作用が検知された場合に、前記第1のオブジェクトに、当該相互作用の検知に応じた挙動をさせてもよい。
【0012】
上記によれば、プレイヤによる第1のオブジェクトに対する相互作用が行われた場合に、第1のオブジェクトに当該相互作用に応じた挙動を行わせることができる。
【0013】
(第4の構成)
第4の構成では、上記第1から第3の構成において、前記第1のオブジェクト制御処理は、前記相互作用の発生を含むゲーム状況に基づいて、前記挙動の開始および前記移動の開始を含む前記第1のオブジェクトの行動の決定をする行動決定処理を含んでもよい。前記第2のオブジェクト制御処理は、前記行動決定処理を含まない。
【0014】
上記によれば、第2のオブジェクト制御処理では、ゲーム状況に応じた行動決定という負荷の高い処理を行わないようにすることができる。
【0015】
(第5の構成)
第5の構成では、上記第4の構成において、前記第1のオブジェクト制御処理は、開始された前記第1のオブジェクトの前記挙動および前記移動を進行させる処理を含んでもよい。
【0016】
上記によれば、第2のオブジェクト制御処理では、挙動及び移動を開始させる処理が行われないため、開始した行動を進行させる処理も発生せず、処理負荷を軽減することができる。
【0017】
(第6の構成)
第6の構成では、上記第1から第5の構成において、前記複数の条件はさらに、前記プレイヤキャラクタまたは仮想カメラと前記第1のオブジェクトとの距離が所定の基準を超えているという条件を含んでもよい。
【0018】
上記によれば、プレイヤキャラクタまたは仮想カメラと第1のオブジェクトとの距離が所定の基準を超えている場合は、第2のオブジェクト制御処理に基づいて第1のオブジェクトを制御することができる。
【0019】
(第7の構成)
第7の構成では、上記第6の構成において、前記第2のオブジェクト制御処理はさらに、前記プレイヤキャラクタまたは前記仮想カメラと前記第1のオブジェクトとの距離の検知を少なくとも含んでもよい。前記ゲームプログラムは、前記コンピュータにさらに、前記第2の状態の前記第1のオブジェクトと、前記プレイヤキャラクタまたは仮想カメラとの距離が所定の基準以下になった場合に、前記第1のオブジェクトを前記第1の状態へと遷移させて、前記第1のオブジェクト制御処理に基づいて前記第1のオブジェクトを制御させてもよい。
【0020】
上記によれば、第1のオブジェクトとプレイヤキャラクタまたは仮想カメラとの距離が短くなった場合には、第1のオブジェクトを、第1の状態へと遷移させて、第1のオブジェクト制御処理に基づいて制御することができる。
【0021】
(第8の構成)
第8の構成では、上記第1から第7の構成において、前記ゲームプログラムは、前記コンピュータにさらに、前記第1のオブジェクトが、前記複数の条件を満たすか否かに関わらず、他の所定の条件が満たされる場合に、前記第1のオブジェクト制御処理および前記第2のオブジェクト制御処理の一方に基づいて前記第1のオブジェクトを制御させてもよい。
【0022】
上記によれば、さらに所定の条件が満たされる場合に、第1のオブジェクトを、強制的に第1のオブジェクト制御処理、又は第2のオブジェクト制御処理に基づいて制御させることができる。
【0023】
(第9の構成)
第9の構成では、上記第4又は第5の構成において、前記第1のオブジェクトは、ノンプレイヤキャラクタを含んでもよい。前記ゲームプログラムは、前記コンピュータにさらに、複数の前記ノンプレイヤキャラクタに戦闘を行わせ、前記戦闘中において、前記複数の前記ノンプレイヤキャラクタのうち、少なくともいずれかの前記ノンプレイヤキャラクタを前記第1のオブジェクト制御処理に基づいて制御させ、前記行動決定処理に基づいて戦闘を行わせると共に、他の前記ノンプレイヤキャラクタを前記第2のオブジェクト制御処理に基づいて制御させてもよい。
【0024】
上記によれば、複数のノンプレイヤキャラクタが戦闘する場面において、処理負荷を軽減しつつ、見た目やゲーム性を維持することができる。
【0025】
(第10の構成)
第10の構成では、上記第9の構成において、前記ゲームプログラムは、前記コンピュータに、非戦闘中において、前記第2のオブジェクト制御処理に基づいて制御される前記ノンプレイヤキャラクタに、前記移動を伴わないアニメーションとして、第1のアニメーションをさせ、前記戦闘中において、前記第2のオブジェクト制御処理に基づいて制御される前記ノンプレイヤキャラクタに、前記移動を伴わないアニメーションとして、前記第1のアニメーションと異なる第2のアニメーションをさせてもよい。
【0026】
上記によれば、非戦闘中と戦闘中とで、移動を伴わないアニメーションとして、ノンプレイヤキャラクタに異なるアニメーションをさせることができ、シーンに応じてより自然な見た目にすることができる。
【0027】
(第11の構成)
第11の構成では、上記第9又は第10の構成において、前記ノンプレイヤキャラクタは、敵キャラクタであって、前記戦闘は、前記プレイヤキャラクタと複数の前記敵キャラクタとの戦闘であってもよい。前記ゲームプログラムは、前記コンピュータに、前記プレイヤキャラクタまたは前記仮想カメラに近いものから所定数の前記敵キャラクタを前記第1のオブジェクト制御処理に基づいて制御させ、他の前記敵キャラクタを前記第2のオブジェクト制御処理に基づいて制御させてもよい。
【0028】
上記によれば、多数の敵キャラクタと戦闘する場合において、所定数を超え遠い位置にいる敵キャラクタについての処理を削減することで、見た目やゲーム性を維持しつつ処理負荷が高くなり過ぎないようにすることができる。
【0029】
(第12の構成)
第12の構成では、上記第9から第11の構成において、複数の前記ノンプレイヤキャラクタは、味方キャラクタおよび敵キャラクタを含み、前記戦闘は、複数の前記味方キャラクタと複数の前記敵キャラクタとの戦闘であってもよい。前記ゲームプログラムは、前記コンピュータに、前記味方キャラクタと前記敵キャラクタが含まれるグループであって、当該グループ内において前記戦闘を行う戦闘グループを複数設定させ、それぞれのグループ内において、少なくとも1体の前記味方キャラクタと少なくとも1体の前記敵キャラクタとを前記第1のオブジェクト制御処理に基づいて制御させ、他の前記味方キャラクタおよび前記敵キャラクタを前記第2のオブジェクト制御処理に基づいて制御させてもよい。
【0030】
上記によれば、戦闘グループ内で敵キャラクタ及び味方キャラクタが少なくとも1体ずつ戦闘を行うため、それぞれのグループにおいて戦闘を行わせつつ、処理負荷を軽減することができる。
【0031】
(第13の構成)
第13の構成では、上記第12の構成において、前記ゲームプログラムは、前記コンピュータにさらに、前記戦闘中において、前記仮想空間内における前記味方キャラクタと前記敵キャラクタの位置関係に基づいて前記戦闘グループを設定させ、第1の領域に配置された少なくともいずれかの前記第1のオブジェクト制御処理に基づいて制御される前記味方キャラクタを、前記敵キャラクタが配置された第2の領域に移動させることにより、当該味方キャラクタと前記敵キャラクタを含む前記戦闘グループを設定させてもよい。
【0032】
上記によれば、自然に戦闘グループを形成させることができる。
【0033】
また、他の構成は、情報処理システムであってもよいし、情報処理装置であってもよいし、情報処理方法であってもよい。
【発明の効果】
【0034】
本発明によれば、見た目の違和感を生じさせ難くしながらオブジェクトの処理に関する負荷を軽減することができる。
【図面の簡単な説明】
【0035】
【
図2】本体装置2の内部構成の一例を示すブロック図
【
図3】本実施形態のゲームが実行された場合に表示されるゲーム画像の一例を示す図
【
図4】通常状態における敵キャラクタに関する処理の一例を示す図
【
図5】軽減状態における敵キャラクタに関する処理の一例を示す図
【
図6】あるゲーム状況における各ノンプレイヤオブジェクトの位置関係と各ノンプレイヤオブジェクトの状態の一例を示す図
【
図7】第1の戦闘シーンにおけるゲーム画像の一例を示す図
【
図8】第1の戦闘シーンにおいて、敵キャラクタが軽減状態に設定されているときの敵キャラクタに関する処理の一例を示す図
【
図9】第2の戦闘シーンにおけるゲーム状況の一例を示す図
【
図10】第2の戦闘シーンの開始時におけるゲーム画像の一例を示す図であって、味方キャラクタが移動される前のゲーム画像の一例を示す図
【
図11】第2の戦闘シーンにおいて味方キャラクタが移動された後のゲーム画像の一例を示す図
【
図12】ゲーム処理の実行中に本体装置2のメモリに記憶されるデータの一例を示す図
【
図13】プロセッサ21によって実行されるゲーム処理の一例を示すフローチャート
【
図14】ステップS107のノンプレイヤオブジェクト更新処理の一例を示すフローチャート
【
図15】ステップS201の状態設定処理の詳細を示すフローチャート
【発明を実施するための形態】
【0036】
(ゲームシステムの構成)
以下、本実施形態の一例に係るゲームシステムについて説明する。
図1は、ゲームシステムの一例を示す図である。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。左コントローラ3は、ユーザが入力を行うための操作部の一例として、複数のボタン5L(上下左右の方向キー)と、アナログスティック6Lとを含む。右コントローラ4は、ユーザが入力を行うための操作部の一例として、複数のボタン5R(Aボタン、Bボタン、Xボタン、Yボタン)と、アナログスティック6Rとを含む。また、左コントローラ3の上面にはLボタン7Lが設けられ、右コントローラ4の上面にはRボタン7Rが設けられる。
【0037】
本体装置2は、左コントローラ3および右コントローラ4をそれぞれ着脱可能に構成される。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できるし、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0038】
図2は、本体装置2の内部構成の一例を示すブロック図である。
図2に示されるように、本体装置2は、プロセッサ21を備える。プロセッサ21は、本体装置2において実行される各種の情報処理(例えばゲーム処理)を実行する情報処理部であって、例えば、CPU(Central Processing Unit)と、GPU(Graphics Processing Unit)とを含む。なお、プロセッサ21は、CPUのみから構成されてもよいし、CPU機能、GPU機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ21は、記憶部(具体的には、フラッシュメモリ26等の内部記憶媒体、あるいは、スロット29に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0039】
また、本体装置2は、ディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。ディスプレイ12は、プロセッサ21に接続される。プロセッサ21は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0040】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子23と、本体装置2が右コントローラ4と有線通信を行うための右側端子22を備える。
【0041】
また、本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ26およびDRAM(Dynamic Random Access Memory)27を備える。フラッシュメモリ26およびDRAM27は、プロセッサ21に接続される。フラッシュメモリ26は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM27は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0042】
本体装置2は、スロット29を備える。スロット29は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、ゲームアプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、ゲームプログラム等)を記憶するために用いられる。
【0043】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)28を備える。スロットI/F28は、プロセッサ21に接続される。スロットI/F28は、スロット29に接続され、スロット29に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ21の指示に応じて行う。
【0044】
プロセッサ21は、フラッシュメモリ26およびDRAM27、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0045】
また、本体装置2は、ネットワーク通信部24を備える。ネットワーク通信部24は、プロセッサ21に接続される。ネットワーク通信部24は、ネットワークを介して外部の装置と無線又は有線により通信を行う。本実施形態においては、ネットワーク通信部24は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部24は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0046】
本体装置2は、コントローラ通信部25を備える。コントローラ通信部25は、プロセッサ21に接続される。コントローラ通信部25は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部25は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0047】
プロセッサ21は、上述の左側端子23および右側端子22に接続される。プロセッサ21は、左コントローラ3と有線通信を行う場合、左側端子23を介して左コントローラ3へデータを送信するとともに、左側端子23を介して左コントローラ3から操作データを受信する。また、プロセッサ21は、右コントローラ4と有線通信を行う場合、右側端子22を介して右コントローラ4へデータを送信するとともに、右側端子22を介して右コントローラ4から操作データを受信する。このように、本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。
【0048】
なお、本体装置2は、
図2に示す各要素の他にも、電源を供給するためのバッテリー、ディスプレイ12とは別の表示装置(例えばテレビ)に画像及び音声を出力するための出力端子を備える。
【0049】
(ゲームの概要)
次に、本実施形態のゲームについて説明する。
図3は、本実施形態のゲームが実行された場合に表示されるゲーム画像の一例を示す図である。
図3では、プレイヤキャラクタ100及び味方キャラクタ110,120が仮想空間を移動しながら敵キャラクタに遭遇する通常のゲームシーンにおけるゲーム画像の一例が示されている。
【0050】
図3に示されるように、3次元の仮想空間(ゲーム空間)の地面30上には、プレイヤキャラクタ100と、複数の味方キャラクタ(110、120)と、複数の敵キャラクタ(200、201)とが配置される。
【0051】
プレイヤキャラクタ100は、プレイヤによって操作されるキャラクタであり、コントローラ(3又は4)に対する操作入力に基づいて、仮想空間内で複数のアクション(移動アクション、攻撃アクション、掴むアクション、オブジェクト操作アクション等)を実行可能である。
【0052】
プレイヤキャラクタ100は、例えば、アナログスティック6Lに対する操作入力に応じて、仮想空間内を移動する。また、プレイヤキャラクタ100は、プレイヤの操作入力に基づいて、武器オブジェクトを用いた攻撃アクションを行う。
【0053】
プレイヤキャラクタ100から所定距離離れた位置に、仮想カメラが配置されている。仮想カメラは、プレイヤキャラクタ100の移動に応じて移動する。仮想カメラの撮像範囲にプレイヤキャラクタ100が含まれるように、仮想カメラが制御される。
【0054】
敵キャラクタ200、201は、本体装置2のプロセッサ21によって自動的に制御されるノンプレイヤキャラクタである。敵キャラクタ200、201は、仮想空間内を自動で移動する。また、敵キャラクタ200、201は、プレイヤキャラクタ100又は味方キャラクタに対して攻撃を加える。なお、敵キャラクタの数は、1つであってもよいし、3つ以上あってもよい。また、敵キャラクタの数は、ゲーム中に増加したり、減少したりする。
【0055】
味方キャラクタ110、120は、本体装置2のプロセッサ21によって自動的に制御されるノンプレイヤキャラクタであり、プレイヤキャラクタ100をサポートするキャラクタである。味方キャラクタ110、120は、プレイヤキャラクタ100に追従して仮想空間を移動する。また、味方キャラクタ110、120は、敵キャラクタが現れると、プレイヤキャラクタ100を助けるために敵キャラクタと戦闘する。例えば、味方キャラクタ110は、単独で敵キャラクタ200に攻撃を加えたり、味方キャラクタ110が有する能力をプレイヤキャラクタ100に使用させたりして、プレイヤキャラクタ100を助ける。なお、味方キャラクタの数は、1つであってもよいし、3つ以上あってもよい。また、味方キャラクタの数は、ゲーム中に増加してもよいし、減少してもよい。
【0056】
プレイヤキャラクタ100は、敵キャラクタに近づいて、近接用武器オブジェクト(例えば剣オブジェクト)を用いた近接攻撃アクションを行うことが可能である。また、プレイヤキャラクタ100は、遠隔用武器オブジェクト(例えば矢オブジェクトや弾丸オブジェクト)を用いた遠隔攻撃アクションを行うことにより、離れた位置から敵キャラクタに対して攻撃を加えることができる。
【0057】
プレイヤは、プレイヤキャラクタ100に遠隔攻撃アクションを行わせる場合、まず、自身が狙うオブジェクト(例えば敵キャラクタ200)に照準を合わせる。例えば、プレイヤの所定の操作入力に応じて、画面の中央部分に照準画像が表示される。プレイヤは、コントローラを用いて、照準画像をオブジェクトに一致させ、発射指示を行う。これにより、遠隔用武器オブジェクトが、照準画像によって示される仮想空間の位置に向かって発射され、その位置に例えば敵キャラクタ200が存在する場合、敵キャラクタ200に遠隔用武器オブジェクトが当たる。敵キャラクタ200に遠隔用武器オブジェクトが当たると、当たったことに応じたリアクションが行われる。例えば、敵キャラクタ200の周辺にエフェクト画像が表示されたり、敵キャラクタ200が、ダメージを受けたことを示すリアクションを行ったり、声を発するリアクションを行ったりする。
【0058】
敵キャラクタも、プレイヤキャラクタ100に攻撃アクションを行う。例えば、敵キャラクタ200は、プレイヤキャラクタ100を探し回り、プレイヤキャラクタ100を発見した場合には、プレイヤキャラクタ100に近づいて攻撃アクションを行う。敵キャラクタ200の攻撃アクションがプレイヤキャラクタ100に当たった場合、当たったことに応じたリアクションが行われる。例えば、プレイヤキャラクタ100の周辺にエフェクト画像が表示される。また、プレイヤキャラクタ100が、ダメージを受けたことを示すリアクションを行ったり、声を発するリアクションを行ったりする。
【0059】
味方キャラクタ110、120も、キャラクタの種類に応じた攻撃アクションを行う。例えば、味方キャラクタ110は、敵キャラクタ200に近づいて攻撃アクションを行う。味方キャラクタ110の攻撃アクションが敵キャラクタ200に当たった場合も、それに応じたリアクションが行われる。また、敵キャラクタ200も味方キャラクタ110に対して攻撃アクションを行うことがあり、敵キャラクタ200の攻撃アクションが味方キャラクタ110に当たった場合、それに応じたリアクションが行われる。
【0060】
このように、プレイヤキャラクタ100は、仮想空間内を移動し、プロセッサ21によって自動的に制御される敵キャラクタに遭遇して当該敵キャラクタと戦闘しながらゲームを進める。また、プレイヤキャラクタ100は、プロセッサ21によって自動的に制御される味方キャラクタと協力しながらゲームを進める。
【0061】
また、仮想空間には、様々な仮想オブジェクト300が配置される。仮想オブジェクト300は、例えば、宝箱オブジェクト、板オブジェクト、車輪オブジェクト等を含む。宝箱オブジェクトは、プレイヤキャラクタ100が開けることが可能なオブジェクトであり、その中にゲームにおいて用いられるアイテムが入っている。また、車輪オブジェクトは、推進力を有し、プレイヤの指示やゲーム状況に応じて移動可能なオブジェクトである。板オブジェクト及び車輪オブジェクトは、プレイヤキャラクタ100によるオブジェクト操作アクションに基づいて操作可能なオブジェクトである。プレイヤキャラクタ100は、オブジェクト操作アクションに基づいて、例えば、板オブジェクトと4つの車輪オブジェクトを接続(結合)させて、四輪車オブジェクトを生成することができる。四輪車オブジェクトは、プレイヤの指示やゲーム状況に応じて仮想空間内を移動可能である。
【0062】
なお、仮想オブジェクト300は、予め仮想空間に配置されてもよいし、プレイヤキャラクタ100がゲーム中に取得し、仮想空間に配置したアイテムであってもよい。
【0063】
プレイヤキャラクタ100の攻撃アクションが仮想オブジェクト300に当たった場合も、それに応じたリアクションが行われる。例えば、当該リアクションとして、仮想オブジェクト300から音が発せられたり、仮想オブジェクト300の周辺にエフェクト画像が表示されたりする。
【0064】
また、プレイヤキャラクタ100は、複数のアクションのうちの1つとして、仮想オブジェクト300に対するオブジェクト操作アクションを行う。オブジェクト操作アクションは、例えば、プレイヤキャラクタ100の前方にある仮想オブジェクト300(例えば板オブジェクトや車輪オブジェクト)を遠隔で操作するアクションである。なお、複数の仮想オブジェクト300の中には、オブジェクト操作アクションの対象となるオブジェクトと、対象とならないオブジェクトとがあってもよい。
【0065】
具体的には、プレイヤは、所定の操作入力を行うことにより、プレイヤキャラクタ100の前方にある複数の仮想オブジェクト300のうちの何れかに狙いを定める。すると、複数の仮想オブジェクト300のうちの何れかが選択され、さらにプレイヤによって決定指示が行われた場合、選択された仮想オブジェクト300がオブジェクト操作アクションの制御対象として決定される。制御対象である仮想オブジェクト300は、特別な表示態様で表示され、仮想空間において浮いた状態となる。制御対象がオブジェクト操作アクションによって操作中である場合、プレイヤの操作入力に基づいて、制御対象は仮想空間を移動されたり、制御対象の姿勢が変化されたり、他の仮想オブジェクトと接続されたりする。
【0066】
このように、複数の仮想オブジェクト300のうちの少なくとも何れかは、プレイヤキャラクタ100のオブジェクト操作アクションによって操作され得る。
【0067】
また、複数の仮想オブジェクト300のうち、例えば、宝箱オブジェクトはオブジェクト操作アクションの対象とならないオブジェクトであるが、プレイヤキャラクタ100が近づくことによって、開けられる。
【0068】
上述した、敵キャラクタ、味方キャラクタ、及び仮想オブジェクト300は、他のオブジェクトと相互作用(インタラクション)するオブジェクトである。ここで、相互作用とは、あるオブジェクトのアクションが、他のオブジェクトに何らかの影響を与えることを含む。また、相互作用とは、あるオブジェクトが他のオブジェクトに対して何らかのアクションを行うこと、あるオブジェクトが他のオブジェクトの何らかのアクションを受けることを含む。また、相互作用とは、あるオブジェクトが、他のオブジェクトの何らかのアクションを受けたことに応じて、何らかの反応をすることを含む。
【0069】
例えば、敵キャラクタは、プレイヤキャラクタ100の移動に応じて移動したり、プレイヤキャラクタ100の攻撃アクションに応じてリアクションしたり、反撃したりする。また、敵キャラクタは、プレイヤキャラクタ100が遠隔用武器オブジェクトを用いて狙ったこと(照準を合わせたこと)に応じて、例えば、プレイヤキャラクタ100を向くリアクションを行う。このようなプレイヤキャラクタ100の何らかのアクションに対して、敵キャラクタは何らかの反応をするため、敵キャラクタは、「相互作用」するオブジェクトである。
【0070】
また、味方キャラクタは、プレイヤキャラクタ100の移動に応じて移動したり、プレイヤキャラクタ100の状況に応じてプレイヤキャラクタ100を助けたりする。プレイヤキャラクタ100の移動等によって、味方キャラクタは影響を受けるため、味方キャラクタは「相互作用」するオブジェクトである。
【0071】
また、敵キャラクタと味方キャラクタとは互いに攻撃アクションを行ったり、それに応じたリアクションを行ったりする。このため、敵キャラクタと味方キャラクタとは「相互作用」する。
【0072】
また、複数の仮想オブジェクト300のうちの何れか(例えば、板オブジェクト、車輪オブジェクト等)は、プレイヤキャラクタ100のオブジェクト操作アクションに応じて移動されたり、他の仮想オブジェクトと接続されたりする。また、複数の仮想オブジェクト300のうちの宝箱オブジェクトは、例えばプレイヤキャラクタ100が近づくことによって、開けられる。このため、仮想オブジェクト300は「相互作用」するオブジェクトである。
【0073】
また、複数の仮想オブジェクト300のうちの何れかは、プレイヤキャラクタ100以外のキャラクタ(味方キャラクタ又は敵キャラクタ)によって拾われたり、使用されたりする。このため、複数の仮想オブジェクト300のうちの何れかは、プレイヤキャラクタ100以外のキャラクタと「相互作用」する。
【0074】
このように、仮想空間には、他のオブジェクトと相互作用するオブジェクトが存在する。このような、プロセッサ21によって制御され、他のオブジェクトと相互作用するオブジェクトを、ここでは「ノンプレイヤオブジェクト」という。ノンプレイヤオブジェクトは、そのオブジェクトに応じた何らかのアクションを行う。
【0075】
一方、仮想空間には、そのような他のオブジェクトと相互作用をせず、何らかのアクションを行わないオブジェクトも存在する。例えば、仮想空間に固定された岩、山、建築物、地面、川、海等の地形オブジェクトは、相互作用しないオブジェクトである。例えば、プレイヤキャラクタ100が地形オブジェクトに対して攻撃を行っても、地形オブジェクトは変形、破壊、消滅、移動等、何ら変化しないため、地形オブジェクトは相互作用しないオブジェクトである。
【0076】
各ノンプレイヤオブジェクトは、それぞれ独自のAI(人工知能)を有している。ノンプレイヤオブジェクトのAIは、ゲーム状況に応じて、当該ノンプレイヤオブジェクトの行動を決定する行動決定処理を行う。そして、ノンプレイヤオブジェクトは、AIが決定した行動を行う。具体的には、プロセッサ21は、それぞれのノンプレイヤオブジェクトについて、ゲーム状況に応じて、行動決定処理を行い、行動決定処理において所定の行動を行うと決定した場合に、決定した行動に応じたアクション処理を行う。アクション処理は、ノンプレイヤオブジェクトに実際にその行動を開始させ、開始した行動を進行させるための処理であり、ゲーム状況を判定してアニメーションを開始及び更新する処理を含む。これにより、ノンプレイヤオブジェクトが所定の行動を行う様子が画面に表示される。
【0077】
仮想空間に複数のノンプレイヤオブジェクトが存在する場合、プロセッサ21は、各ノンプレイヤオブジェクトについて上述した行動決定処理、アクション処理等を行う。例えば、ノンプレイヤオブジェクトの数が多い場合、プロセッサ21の処理負荷が増大する可能性がある。そこで、本実施形態のゲームでは、仮想空間に配置された各ノンプレイヤオブジェクトを、通常状態又は軽減状態に設定する。軽減状態は、プロセッサ21の処理負荷を軽減するためのノンプレイヤオブジェクトの状態である。プロセッサ21は、ノンプレイヤオブジェクトに関する複数の処理について、通常状態においては全ての処理を行い、軽減状態においては一部の処理を行わない。これにより、プロセッサ21の処理負荷が軽減される。
【0078】
なお、本実施形態では、以下に示す処理負荷の軽減のための処理に加えて、例えば、仮想カメラからの距離に応じて、3Dモデルのポリゴン数を制限するなどの描画における軽減処理(LOD:Level Of Detail)も行われる。
【0079】
以下、敵キャラクタを例にして、プロセッサ21によって行われる、通常状態における敵キャラクタに関する処理と、軽減状態における敵キャラクタに関する処理について説明する。
【0080】
(通常状態における敵キャラクタに関する処理)
図4は、通常状態における敵キャラクタに関する処理の一例を示す図である。
図4に示されるように、敵キャラクタが通常状態に設定されている場合、「行動決定処理」が行われる。
【0081】
行動決定処理は、敵キャラクタのAIが行う処理であり、ゲーム状況に応じて、敵キャラクタに所定の行動(移動、攻撃、防御、その他の行動)を行わせるか否かを決定する処理を含む。また、行動決定処理は、決定した行動の具体的な内容を決定する処理を含む。また、行動決定処理は、相互作用検知処理における相互作用の検知に応じたリアクションを決定する処理を含む。具体的には、プロセッサ21が、これら複数の処理を含む行動決定処理を行う。
【0082】
具体的には、プロセッサ21は、ゲーム状況に応じて、敵キャラクタを移動させるか否か、移動させる場合の具体的な内容(移動先、移動経路、移動態様等)を決定する。例えば、プロセッサ21は、敵キャラクタの周囲の仮想空間の状況、敵キャラクタとプレイヤキャラクタ100との距離、プレイヤキャラクタ100の状況、他の敵キャラクタ201の状況、敵キャラクタと味方キャラクタ110,120との距離や味方キャラクタ110,120の状況等、様々なゲーム状況に応じて、敵キャラクタを移動させるか否かを決定する。例えば、プロセッサ21は、敵キャラクタから最も近い位置にいるプレイヤキャラクタ100や味方キャラクタに向かって当該敵キャラクタを移動させることを決定する。そして、プロセッサ21は、移動させると決定した場合に、敵キャラクタをどのように移動させるかを決定する。例えば、プロセッサ21は、敵キャラクタを「プレイヤキャラクタ100に向かって走って移動させる」と決定したり、「周辺を探し回るように移動させる」と決定したりする。また、プロセッサ21は、敵キャラクタに、プレイヤキャラクタ100又は味方キャラクタに対して攻撃アクションを行わせるか否か、攻撃アクションを行わせる場合の攻撃アクションの態様(例えば、素手か武器を使うか)等を決定する。また、プロセッサ21は、敵キャラクタに防御アクションを行わせるか否か、防御アクションの態様等を決定する。
【0083】
プロセッサ21は、決定した行動を敵キャラクタに行わせる。具体的には、プロセッサ21は、行動決定処理の決定に応じたアクション処理を行う。例えば、敵キャラクタを移動させると決定した場合、プロセッサ21は、移動アクションを敵キャラクタに行わせる。具体的には、プロセッサ21は、移動に関するアクション処理において、敵キャラクタを移動開始させる際、及び、敵キャラクタの移動中に様々な判定(例えば、足元の地面の状況の判定)を行い、判定結果に応じて移動アニメーションの開始及び更新を行う。また、敵キャラクタに攻撃アクションを行わせると決定した場合、プロセッサ21は、攻撃アクションを敵キャラクタに行わせる。具体的には、プロセッサ21は、攻撃に関するアクション処理において、敵キャラクタの攻撃中に判定(攻撃が当たったか否か等の判定)を行い、判定結果に応じて攻撃アニメーションの開始及び更新を行う。
【0084】
また、プロセッサ21は、敵キャラクタについての相互作用検知処理を行う。相互作用検知処理は、他のオブジェクトとの相互作用を検知するための処理である。例えば、プロセッサ21は、敵キャラクタがプレイヤキャラクタ100から狙われているか否かを検知する。例えば、プレイヤキャラクタ100が敵キャラクタ200に照準を合わせている場合、プロセッサ21は、敵キャラクタ200がプレイヤキャラクタ100によって狙われていることを検知する。また、プロセッサ21は、敵キャラクタに、プレイヤキャラクタ100又は味方キャラクタの攻撃アクションが当たったか否かを検知する。
【0085】
また、プロセッサ21は、敵キャラクタに対する第3の相互作用があったか否かを検知する。第3の相互作用は、例えば、敵キャラクタに他のオブジェクトが当たったことであってもよい。また、第3の相互作用は、敵キャラクタが水に濡れたことであってもよい。また、第3の相互作用は、敵キャラクタに火がついたことであってもよい。また、第3の相互作用は、プレイヤキャラクタ100又は味方キャラクタが仮想空間に置いた爆弾が爆発したことであってもよい。また、第3の相互作用は、プレイヤキャラクタ100又は味方キャラクタのアクションに基づく効果(例えば落雷)が仮想空間に発生したことであってもよい。さらに、プロセッサ21は、敵キャラクタに対する第4の相互作用があったか否かを検知する。
【0086】
プロセッサ21は、相互作用検知処理において相互作用を検知した場合、行動決定処理を実行し、その相互作用の検知に応じたリアクションを決定する。具体的には、プロセッサ21は、検知した相互作用に応じて、リアクションの内容を決定し、決定したリアクションに応じたリアクション処理を行う。例えば、プロセッサ21は、敵キャラクタが狙われていることを検知した場合、狙われていることに応じたリアクションを敵キャラクタに行わせる。具体的には、プロセッサ21は、敵キャラクタがプレイヤキャラクタ100を向くアニメーションの開始及び更新を行う。また、プロセッサ21は、敵キャラクタに攻撃アクションが当たったことを検知した場合、攻撃が当たったことに応じたリアクション処理を行う。これにより、例えば、敵キャラクタが声を出す、敵キャラクタの周辺にエフェクトが発生するなどのリアクションが行われる。また、プロセッサ21は、敵キャラクタに第3の相互作用が発生したことを検知した場合、第3の相互作用の検知に応じたリアクション処理を行う。また、プロセッサ21は、敵キャラクタに第4の相互作用が発生したことを検知した場合、第4の相互作用の検知に応じたリアクション処理を行う。
【0087】
敵キャラクタが通常状態に設定されているときには、プロセッサ21は、
図4に示した全ての処理を実行し得る。一方、敵キャラクタが軽減状態に設定されているときには、
図4に示す複数の処理のうち、一部の処理のみ行われ、その他の処理は行われない。
【0088】
(軽減状態における敵キャラクタに関する処理)
図5は、軽減状態における敵キャラクタに関する処理の一例を示す図である。
【0089】
図5に示されるように、軽減状態においては、通常状態において行われる複数の処理のうち、「行動決定処理」は行われない。行動決定処理が実行されないため、決定に応じたアクション処理も実行されず、それに対応するアニメーションの開始及び更新に関するアニメーション処理も実行されない。したがって、敵キャラクタは、軽減状態においては、仮想空間内において移動せず、攻撃や防御等のアクションを行わない。
【0090】
敵キャラクタが軽減状態に設定されている場合、プロセッサ21は、停止中アニメーション処理を行う。停止中アニメーション処理は、敵キャラクタを、その場で移動せずに立った状態で動作させる処理である。
【0091】
具体的には、本体装置2のメモリ(DRAM27、フラッシュメモリ26、又はスロット29に挿入された記憶媒体)には、例えば、1~数秒程度の長さの停止中アニメーションが記憶されている。停止中アニメーションは、例えば、敵キャラクタが立った状態を維持したまま、その体部分を左に動かした後に右に動かして戻る一連のアニメーションである。プロセッサ21は、敵キャラクタが軽減状態である場合、当該停止中アニメーションを繰り返し再生する停止中アニメーション処理を実行する。これにより、敵キャラクタは立った状態で揺れ動く動作を繰り返す。仮に敵キャラクタが、移動やその他アクションを行っていないときに、完全に静止してしまうと、プレイヤに違和感を生じさせる可能性がある。しかしながら、本実施形態では、敵キャラクタが軽減状態に設定されているときに、停止中アニメーション処理が行われるため、そのような違和感を感じさせ難くすることができる。
【0092】
また、軽減状態であっても、少なくとも一部の相互作用検知処理は実行される。例えば、複数の相互作用検知処理のうち、敵キャラクタが狙われているか否かの検知処理、攻撃が当たったか否かの検知処理、及び、第3の相互作用の検知処理は、軽減状態であっても実行される。一方、軽減状態である場合、第4の相互作用の検知処理は行われない。なお、軽減状態である場合も、通常状態と同様に、全ての相互作用検知処理が行われてもよい。
【0093】
軽減状態であっても、少なくとも一部の相互作用検知処理が実行されるため、敵キャラクタに対する一部の相互作用を検知することができる。プロセッサ21は、敵キャラクタに対する相互作用を検知した場合、敵キャラクタを通常状態に遷移させ、行動決定処理を実行し、当該検知に応じたリアクションを決定し、リアクション処理を行う。これにより、敵キャラクタが軽減状態に設定されている場合でも、敵キャラクタに相互作用が発生したときには、敵キャラクタにリアクションを行わせることができる。
【0094】
このように、敵キャラクタが軽減状態である場合、プロセッサ21は、敵キャラクタに関する複数の処理のうち、「行動決定処理」を実行しない一方、移動(位置の更新)を伴わない停止中アニメーション処理と、少なくとも一部の相互作用の検知処理とを実行する。
【0095】
これにより、プロセッサ21の処理負荷を軽減することができるとともに、敵キャラクタが軽減状態であっても、停止中アニメーション処理は実行されるため、敵キャラクタをその場で立った状態で動作させることができ、違和感のない表示とすることができる。また、敵キャラクタが軽減状態であっても、少なくとも一部の相互作用の検知処理が行われるため、敵キャラクタに対して他のキャラクタが相互作用を行った場合には、敵キャラクタを通常状態に遷移させ、リアクションを行わせることができる。
【0096】
なお、
図4及び
図5では、敵キャラクタに関する処理の一例を示したが、ノンプレイヤオブジェクトの種類毎に、ノンプレイヤオブジェクトに関する処理が異なる。例えば、味方キャラクタも、自身がどのような行動を行うかを決定するAI(行動決定処理)を有し、AIが決定した行動を実行する。また、味方キャラクタは他のオブジェクトとの相互作用を検知し、相互作用の検知に応じたリアクションを行う。
【0097】
例えば、味方キャラクタ110は、自身の行動を決定する独自のAIを有している。味方キャラクタ110のAIは、移動するか否か、移動する場合の移動先、経路等を決定したり、攻撃アクションを行うか否かを決定したり、自身に特有の特殊能力を発動するか否か等を決定したりする。そして、味方キャラクタ110は、AIが決定した行動を実行する。また、味方キャラクタ110は、他のオブジェクトとの様々な相互作用を検知し、相互作用の検知に応じたリアクションを行う。また、味方キャラクタ110の停止中アニメーションも予め用意されている。
【0098】
プロセッサ21は、味方キャラクタ110が通常状態のときには、行動決定処理、決定に応じたアクション処理、相互作用検知処理、及び、相互作用の検知に応じたリアクション処理を行い、味方キャラクタ110が軽減状態のときには、行動決定処理を行わず、味方キャラクタ110に関する停止中アニメーション処理と少なくとも一部の相互作用検知処理とを行う。
【0099】
また、キャラクタ以外の仮想オブジェクト300も、独自のAIを有しており、AIが決定した行動を実行する。例えば、宝箱オブジェクト、板オブジェクト、車輪オブジェクトは、それぞれ独自のAIを有し、特有のアクションを実行可能である。また、仮想オブジェクト300は、相互作用を検知し、検知に応じたリアクションをする。例えば、宝箱オブジェクトは、プレイヤキャラクタ100が近づいたことを検知し、近づいたことに応じたリアクションを行う。また、板オブジェクトおよび車輪オブジェクトは、オブジェクト操作アクションの対象として狙いを定められた場合に、狙われたことを検知し、検知に応じたリアクションを行う。
【0100】
これら敵キャラクタ以外のノンプレイヤオブジェクト(味方キャラクタ、仮想オブジェクト300)も、通常状態と、軽減状態とを有し、ゲーム状況に応じて軽減状態に移行したり、通常状態に移行したりする。プロセッサ21は、ノンプレイヤオブジェクトが通常状態のときには、行動決定処理、決定に応じたアクション処理、相互作用検知処理、検知に応じたリアクション処理、及びアクション及びリアクションに応じたアニメーション処理を行う。プロセッサ21は、ノンプレイヤオブジェクトが軽減状態のときには、行動決定処理を行わず、少なくとも一部の相互作用検知処理と移動を伴わない停止中アニメーション処理を行う。
【0101】
(通常状態から軽減状態への移行)
次に、通常状態から軽減状態への移行について説明する。ノンプレイヤオブジェクトは、所定の条件を満たしている場合に、通常状態から軽減状態に移行する。
【0102】
例えば、敵キャラクタが通常状態から軽減状態に移行するための第1の条件は、敵キャラクタが移動中でないことである。また、敵キャラクタが通常状態から軽減状態に移行するための第2の条件は、敵キャラクタと他のオブジェクトとの相互作用が発生していないことである。また、敵キャラクタが通常状態から軽減状態に移行するための第3の条件は、仮想カメラ又はプレイヤキャラクタ100と、敵キャラクタとの距離が所定の基準値を超えていることである。
【0103】
第1の条件および第2の条件を少なくとも含む複数の条件が満たされる場合、敵キャラクタは通常状態から軽減状態に移行する。また、第1の条件、第2の条件、及び、第3の条件の何れもが満たされる場合に、敵キャラクタは通常状態から軽減状態に移行してもよい。
【0104】
敵キャラクタは、通常状態において、移動するか否かを自身で決定し、移動すると決定した場合は移動し、移動中に自身の判断で停止する。仮に、敵キャラクタが移動中に軽減状態に移行した場合、敵キャラクタは突然停止し、(停止中アニメーション処理により)その場で揺れ動くことになり、違和感を生じさせる可能性がある。このようなことが発生しないように、本実施形態では、敵キャラクタが移動中でないことを、敵キャラクタが軽減状態に移行するための第1の条件とする。
【0105】
また、敵キャラクタが、例えばプレイヤキャラクタ100と戦闘しているなどプレイヤキャラクタ100と相互作用中である場合に、軽減状態に移行した場合、敵キャラクタは、突然停止してしまう。このようなことが発生しないように、本実施形態では、敵キャラクタが他のオブジェクトと相互作用中でないことを、敵キャラクタが軽減状態に移行するための第2の条件とする。
【0106】
また、プレイヤキャラクタ100又は仮想カメラと敵キャラクタとの距離が比較的近い場合、敵キャラクタとプレイヤキャラクタ100との間で相互作用が発生する可能性が高くなる。例えば、プレイヤは、プレイヤキャラクタ100から近い敵キャラクタに対して攻撃を加えようとする。また、通常のゲームシーンにおいては、プレイヤキャラクタ100を含む所定範囲に、味方キャラクタが配置される。プレイヤキャラクタ100と敵キャラクタとの距離が比較的近い場合は、敵キャラクタと味方キャラクタとの距離も比較的近く、敵キャラクタと味方キャラクタとの間でも相互作用が発生する可能性が高くなる。このため、本実施形態では、プレイヤキャラクタ100又は仮想カメラと敵キャラクタとの距離が所定の基準値を超えていることを、敵キャラクタが軽減状態に移行するための第3の条件とする。
【0107】
なお、第3の条件は、敵キャラクタが軽減状態に移行するための必須の条件でなくてもよい。また、第3の条件を満たすための上記「所定の基準値」は敵キャラクタの種類に応じて異なってもよいし、ゲームのシーンに応じて異なってもよい。例えば、第1の敵キャラクタについては、仮想カメラ又はプレイヤキャラクタ100との距離が第1の距離を超えている場合に、第3の条件が満たされ、第2の敵キャラクタについては、仮想カメラ又はプレイヤキャラクタ100との距離が第2の距離を超えている場合に、第3の条件が満たされたものとしてもよい。また、第1のシーンでは、仮想カメラ又はプレイヤキャラクタ100との距離が第1の距離を超えている場合に、第3の条件が満たされ、第2のシーンでは、仮想カメラ又はプレイヤキャラクタ100との距離が第2の距離を超えている場合に、第3の条件が満たされてもよい。
【0108】
味方キャラクタも、少なくとも上記第1の条件および第2の条件が満たされる場合に、通常状態から軽減状態に移行する。また、第1の条件、第2の条件、及び、第3の条件の何れもが満たされる場合に、味方キャラクタは通常状態から軽減状態に移行してもよい。なお、味方キャラクタが通常状態から軽減状態に移行するための第3の条件は、仮想カメラ又はプレイヤキャラクタ100と、味方キャラクタとの距離が第2の基準値を超えていることであってもよい。第2の基準値は、敵キャラクタに関する上記「所定の基準値」よりも小さくてもよいし、逆に大きくてもよい。通常のゲームシーンにおいては、味方キャラクタはプレイヤキャラクタ100から離れすぎないように制御されるが、第2の基準値として比較的小さい値を設定することで、味方キャラクタを軽減状態に移行させ易くすることができる。
【0109】
(軽減状態から通常状態への移行)
次に、軽減状態から通常状態への移行について説明する。ノンプレイヤオブジェクトは、軽減状態に設定されている場合において、所定の条件を満たした場合に、軽減状態から通常状態に移行する。例えば、ノンプレイヤオブジェクトは、他のオブジェクトとの相互作用を検知した場合、軽減状態から通常状態に移行する。
【0110】
例えば、敵キャラクタが軽減状態に設定されている場合において、当該敵キャラクタがプレイヤキャラクタ100から狙われていることを検知した場合、当該敵キャラクタは、通常状態に移行する。敵キャラクタは通常状態への移行とともに、上述したリアクションを行う。また、例えば、軽減状態の敵キャラクタに攻撃アクションが当たった場合、敵キャラクタは通常状態への移行とともに、当たったことに応じたリアクションを行う。
【0111】
また、敵キャラクタが軽減状態に設定されている場合において、当該敵キャラクタとプレイヤキャラクタ100又は仮想カメラとの距離が所定の基準値以下となった場合、当該敵キャラクタは、通常状態に移行する。なお、通常状態から軽減状態に移行するための上記第3の条件に関する「所定の基準値」と、軽減状態から通常状態に移行するための条件に関する「所定の基準値」とは、異なってもよいし、同じでもよい。
【0112】
味方キャラクタについても、他のオブジェクトとの相互作用を検知した場合、軽減状態から通常状態に移行する。例えば、味方キャラクタが軽減状態に設定されている場合において、プレイヤキャラクタ100が移動して当該味方キャラクタとプレイヤキャラクタ100との距離が所定値を超えた場合、味方キャラクタは通常状態に移行し、プレイヤキャラクタ100に追従するように移動開始する。また、味方キャラクタが軽減状態に設定されている場合において、敵キャラクタからの相互作用が発生した場合(例えば、敵キャラクタが味方キャラクタに近づいてきた場合や敵キャラクタの攻撃アクションが当たった場合)、味方キャラクタは通常状態に移行する。
【0113】
図6は、あるゲーム状況における各ノンプレイヤオブジェクトの位置関係と各ノンプレイヤオブジェクトの状態の一例を示す図である。
図6では、各ノンプレイヤオブジェクトを仮想空間の上方から見た図が示されている。
【0114】
図6に示されるように、仮想カメラの前方にプレイヤキャラクタ100が位置しており、プレイヤキャラクタ100から比較的近い位置に、敵キャラクタ200が位置している。プレイヤキャラクタ100と敵キャラクタ200との距離は所定の基準値内であるため、敵キャラクタ200は通常状態である。
【0115】
また、プレイヤキャラクタ100及び仮想カメラから比較的離れた位置には敵キャラクタ201と、敵キャラクタ202とがいる。敵キャラクタ202は、プレイヤキャラクタ100及び仮想カメラから所定の基準値を超えて離れているため、軽減状態に設定されている。したがって、敵キャラクタ202は、その場で立った状態で揺れ動く。一方、敵キャラクタ201は、プレイヤキャラクタ100及び仮想カメラから所定の基準値を超えて離れているが、プレイヤキャラクタ100に狙われているため(遠隔攻撃の照準が合っているため)、軽減状態に設定されず、通常状態に設定されている。
【0116】
また、プレイヤキャラクタ100の右前方(
図6では右上)には、味方キャラクタ120が配置されており、味方キャラクタ120と敵キャラクタ203とが戦闘している。このため、これら味方キャラクタ120および敵キャラクタ203は、通常状態のままである。また、敵キャラクタ204は、味方キャラクタ120と戦闘しておらず、移動しておらず、プレイヤキャラクタ100及び仮想カメラからの距離も所定の基準値を超えているため、軽減状態に設定される。
【0117】
また、プレイヤキャラクタ100の左前方(
図6では左上)には、味方キャラクタ110が配置されている。ここで、味方キャラクタ110は、自身のAIの決定により、複数の敵キャラクタ205、206に対して攻撃アクションを行っている。このため、味方キャラクタ110、敵キャラクタ205、206は、軽減状態に設定されず、通常状態に設定されている。
【0118】
また、仮想空間には、仮想オブジェクト300と、仮想オブジェクト301とが配置されている。仮想オブジェクト301は、例えば4輪車オブジェクトであり、仮想空間内を移動している。このため、仮想オブジェクト301は、通常状態に設定されている。一方、仮想オブジェクト300は、仮想空間内で停止されており、プレイヤキャラクタ100及び仮想カメラから離れており、他のオブジェクトと相互作用していないため、軽減状態に設定されている。
【0119】
このように、仮想空間の各ノンプレイヤオブジェクトは、それぞれのゲーム状況に応じて、通常状態又は軽減状態に設定される。これにより、プロセッサ21の処理負荷を軽減することができるとともに、見た目を違和感のないものとすることができ、相互作用も行うことができるためゲーム性を担保することができる。
【0120】
(第1の戦闘シーン)
次に、上述した通常のゲームシーンとは異なる戦闘シーンについて説明する。本実施形態のゲームの実行中に、第1の戦闘シーンに移行することがある。
図7は、第1の戦闘シーンにおけるゲーム画像の一例を示す図である。
【0121】
第1の戦闘シーンは、多数の敵キャラクタと、プレイヤ側のキャラクタ(プレイヤキャラクタ100と1又は複数の味方キャラクタ)とが戦闘するシーンである。なお、プレイヤ側のキャラクタは、プレイヤキャラクタ100のみであってもよい。ここでは、プレイヤ側のキャラクタは、プレイヤキャラクタ100と、味方キャラクタ110、120とを含むものとして説明する。
【0122】
図7に示されるように、第1の戦闘シーンでは、多数の敵キャラクタ(例えば200~206)が1つの集団となって一斉にプレイヤ側のキャラクタに戦闘を仕掛けてくる。複数の敵キャラクタ200~206と、プレイヤキャラクタ100又は仮想カメラとの距離は、例えば所定の基準値内である。このような第1の戦闘シーンにおいて、各ノンプレイヤオブジェクトは、所定の条件を満たす場合に軽減状態に設定される。
【0123】
具体的には、第1の戦闘シーンにおいては、複数の敵キャラクタ200~206のうち、プレイヤキャラクタ100又は仮想カメラから近い順に所定数の敵キャラクタ(例えば3体の敵キャラクタ200~202)が通常状態に設定され、それ以外の敵キャラクタ(203~206)については、軽減状態に設定される。通常状態の敵キャラクタ200~202は、プレイヤキャラクタ100又は味方キャラクタ110、120に向かって移動し、プレイヤキャラクタ100又は味方キャラクタ110、120と積極的に戦闘を行う。一方、軽減状態の敵キャラクタ203~206は、その場で停止し戦闘を行わない。例えば、敵キャラクタ200~202のうちの何れかが倒された場合は、敵キャラクタ203~206のうちのプレイヤキャラクタ100又は仮想カメラに近い敵キャラクタが通常状態に移行し、プレイヤキャラクタ100に向かって移動し、プレイヤキャラクタ100又は味方キャラクタ110、120と戦闘することになる。
【0124】
なお、所定数を超えて敵キャラクタが通常状態になることがあってもよい。例えば、上述のように、プレイヤキャラクタ100と相互作用した敵キャラクタ(プレイヤキャラクタ100に遠隔攻撃で狙われた敵キャラクタ、遠隔攻撃が当たった敵キャラクタ等)については、軽減状態から通常状態に移行してもよい。例えば、所定数の敵キャラクタが通常状態に設定されているときに、プレイヤキャラクタ100又は味方キャラクタが遠くに爆弾(ノンプレイヤオブジェクトの一例)を投げ、爆弾が爆発した場合には、軽減状態の敵キャラクタに相互作用が発生し、通常状態に移行する。この場合は、所定数を超えて敵キャラクタが通常状態になる。
【0125】
図8は、第1の戦闘シーンにおいて、敵キャラクタが軽減状態に設定されているときの敵キャラクタに関する処理の一例を示す図である。
図8と
図5との違いは、通常のゲームシーンでは、停止用アニメーション処理において、通常用停止中アニメーションが表示されるのに対して、第1の戦闘シーンでは、停止用アニメーション処理において、戦闘用停止中アニメーションが表示される。戦闘用停止中アニメーションは、敵キャラクタが、その場で相手を威嚇するような動作を行うアニメーションである。これにより、軽減状態であっても、敵キャラクタが戦闘に参加しているように見せることができる。
【0126】
このように、第1の戦闘シーンでは、プレイヤキャラクタ100又は仮想カメラから近い所定数の敵キャラクタについては通常状態に設定され、それ以外の敵キャラクタについては軽減状態に設定される。プレイヤキャラクタ100と比較的近い距離にいる所定数の敵キャラクタは通常状態に設定されるため、プレイヤ側のキャラクタと所定数の敵キャラクタとで積極的に戦闘を行わせることができる。所定数の敵キャラクタ以外は軽減状態に設定されるため、多数の敵キャラクタが出現する第1の戦闘シーンであっても、プロセッサ21の処理負荷を軽減することができる。また、軽減状態に設定された敵キャラクタは、戦闘用停止中アニメーションに基づいてその場で相手を威嚇する動作を行うため、軽減状態の敵キャラクタも、戦闘に参加しているように見せることができる。
【0127】
(第2の戦闘シーン)
次に、第2の戦闘シーン(小集団戦闘シーン)について説明する。本実施形態のゲームの実行中に、第2の戦闘シーンに移行することがある。
図9は、第2の戦闘シーンにおけるゲーム状況の一例を示す図である。
【0128】
第2の戦闘シーンでは、複数の小集団が形成され、それぞれの小集団内で戦闘が行われる。例えば、
図9に示されるように、プレイヤキャラクタ100と、1又は複数の敵キャラクタ(200、201)とが、小集団GP0を形成し、小集団GP0内で戦闘が行われる。また、味方キャラクタ110と、1又は複数の敵キャラクタ(210、211、212)とが、小集団GP1を形成し、小集団GP1内で戦闘が行われる。また、味方キャラクタ120と、1又は複数の敵キャラクタ(220、221、222)とが、小集団GP2を形成し、小集団GP2内で戦闘が行われる。
【0129】
このような第2の戦闘シーンにおいて、プロセッサ21の処理負荷を軽減するため、各キャラクタは、ゲーム状況に応じて、通常状態又は軽減状態に設定される。具体的には、各小集団において、少なくとも1体の敵キャラクタと、少なくとも1体の味方キャラクタとが戦闘を行うように、各キャラクタが通常状態又は軽減状態に設定される。
【0130】
例えば、小集団GP0内において、敵キャラクタ201は、現在、通常状態に設定されており、プレイヤキャラクタ100と戦闘を行っている。すなわち、敵キャラクタ201は、自身が攻撃アクションや防御アクション、移動アクションを行っている、又は、プレイヤキャラクタ100から攻撃を受けている。一方、敵キャラクタ200は、現在、軽減状態に設定されており、プレイヤキャラクタ100と戦闘しておらず、移動もしていない。
【0131】
また、小集団GP1内において、敵キャラクタ211は、現在、通常状態に設定されており、味方キャラクタ110と戦闘している。一方、敵キャラクタ210及び212は、現在、軽減状態に設定されており、味方キャラクタ110と戦闘しておらず移動もしていない。
【0132】
また、小集団GP2内において、敵キャラクタ222は、現在、通常状態に設定されており、味方キャラクタ120と戦闘している。一方、敵キャラクタ220及び221は、現在、軽減状態に設定されており、味方キャラクタ120と戦闘しておらず、移動もしていない。
【0133】
第2の戦闘シーンにおいても、敵キャラクタは、軽減状態に設定されているときには、戦闘用停止中アニメーションに基づいてその場で相手を威嚇する動作を行う。
【0134】
なお、
図9では、味方キャラクタ110及び120は、通常状態に設定されているが、味方キャラクタも軽減状態に移行する場合がある。また、
図9では、1つの小集団には、1体の味方キャラクタが含まれているが、1つの小集団に複数体の味方キャラクタが含まれてもよい。
【0135】
このように、第2の戦闘シーンでは、複数の小集団のそれぞれにおいて、敵キャラクタと味方キャラクタとで戦闘を行わせる。各小集団において、戦闘を行っていない他のキャラクタは軽減状態に設定されるため、処理負荷を軽減しつつ、複数の小集団のそれぞれにおいて、キャラクタ同士で戦闘を行わせることができる。
【0136】
なお、各小集団において、必ずしも同時に、少なくとも1体の敵キャラクタと、少なくとも1体の味方キャラクタとが通常状態に設定されていなくてもよい。例えば、1の小集団において、1体の敵キャラクタのみが通常状態に設定され、他の敵キャラクタ及び味方キャラクタが軽減状態に設定される期間があってもよい。1体の敵キャラクタが味方キャラクタに近づいて、味方キャラクタに対して攻撃を仕掛けた場合(又は攻撃が当たった場合)に、味方キャラクタが相互作用を検知し、その瞬間に通常状態に移行してもよい。逆に、1の小集団において、1体の味方キャラクタのみが通常状態に設定され、全ての敵キャラクタは軽減状態に設定される期間があってもよい。このように、1の小集団において、敵キャラクタと味方キャラクタのうちの一方が通常状態であり、他方が軽減状態である瞬間があってもよい。すなわち、少なくとも1体の敵キャラクタと、少なくとも1体の味方キャラクタとが戦闘を行っているように見えるのであれば、常に同時に少なくとも1体の敵キャラクタと、少なくとも1体の味方キャラクタとが通常状態である必要はない。
【0137】
(第2の戦闘シーンにおける状態の移行)
次に、第2の戦闘シーンにおける各ノンプレイヤオブジェクトの通常状態から軽減状態への移行、軽減状態から通常状態への移行について説明する。仮に、プレイヤキャラクタ100又は仮想カメラから離れたキャラクタを軽減状態に設定する場合、プレイヤキャラクタ100から離れた小集団GP1及びGP2内の各キャラクタは、何れも軽減状態に設定されてしまう。一方、全てのノンプレイヤオブジェクトを通常状態に設定した場合は、それぞれの小集団で積極的な戦闘が行われるが、その場合はプロセッサ21の処理負荷が増大する可能性がある。このため、第2の戦闘シーンでは、複数の小集団のそれぞれにおいて戦闘を行わせつつ、処理負荷を軽減するための処理が行われる。
【0138】
具体的には、第2の戦闘シーンにおいては、プロセッサ21は、プレイヤキャラクタ100又は仮想カメラからの距離にかかわらず、所定の強制軽減条件が満たされる場合は、各ノンプレイヤオブジェクトに対して、強制的に軽減状態に移行させるための強制軽減命令を送る。強制軽減命令を受けたノンプレイヤオブジェクトは、軽減状態への移行を拒否しない場合、軽減状態に移行する。
【0139】
例えば、敵キャラクタは、強制軽減命令に対して、軽減状態への移行を拒否しない場合は、軽減状態に移行する。敵キャラクタは、何らかのアクションの実行中である場合は、軽減状態への移行を拒否する。例えば、敵キャラクタがプレイヤキャラクタ100に対して攻撃アクションをまさに実行中である場合(攻撃アクションに対応するアニメーションが完了していない場合)、敵キャラクタは、その時点での軽減状態への移行を拒否する。この場合、敵キャラクタは、実行中の攻撃アクションが終了したときに、軽減状態に移行してもよい。また、例えば、敵キャラクタが防御アクションをまさに実行中である場合、敵キャラクタは、その時点での軽減状態への移行を拒否する。この場合、敵キャラクタは、実行中の防御アクションが終了したときに、軽減状態に移行してもよい。また、敵キャラクタが移動アクションを実行中である場合(例えば、敵キャラクタが足を上げて、足が着地する前の状態である場合。あるいは決定した移動先に移動する途中の状態である場合)、敵キャラクタは、その時点での軽減状態への移行を拒否する。この場合、敵キャラクタは、実行中の移動アクションが終了したときに(例えば、足が着地して通常の姿勢に戻ったとき、あるいは、決定した移動先に移動したとき)、軽減状態に移行してもよい。また、敵キャラクタが他のオブジェクトと相互作用中の場合、敵キャラクタは、その時点での軽減状態への移行を拒否する。例えば、敵キャラクタが、プレイヤキャラクタ100から攻撃を受けていたり、仮想空間で移動中のオブジェクトと衝突したり、近くで爆弾が爆発したりした場合は、他のオブジェクトとの相互作用中であり、その場合は、敵キャラクタは、その時点での軽減状態への移行を拒否する。なお、敵キャラクタは、他のオブジェクトとの相互作用が終了したときに、軽減状態に移行してもよい。
【0140】
プロセッサ21は、味方キャラクタに対しても、上記強制軽減命令を送信する。味方キャラクタは、軽減状態への移行を拒否しない場合は、軽減状態に移行する。味方キャラクタは、敵キャラクタと同様に、例えば、現在移動中である場合、攻撃アクション中である場合、その他のアクション中である場合、又は、他のオブジェクトと相互作用中である場合は、軽減状態への移行を拒否する。
【0141】
なお、プロセッサ21は、各小集団において、通常状態になるキャラクタ(敵キャラクタ及び味方キャラクタ)の上限数を定める。プロセッサ21は、各小集団において、通常状態のキャラクタの数が当該上限数に達する場合に、通常状態のキャラクタに対して上記強制軽減命令を送る。これにより、各小集団内で上限数を超えてキャラクタが通常状態になることを抑制することができる。なお、各小集団内で、上限数を超えてキャラクタが通常状態になることがあってもよい。
【0142】
このように、第2の戦闘シーンにおいては、プロセッサ21は、プレイヤキャラクタ100又は仮想カメラからの距離にかかわらず、各ノンプレイヤオブジェクトに対して、強制軽減命令を送る。これにより、軽減状態への移行が可能なノンプレイヤオブジェクトは、軽減状態に移行する。
【0143】
また、ノンプレイヤオブジェクトが軽減状態に設定されている場合において、所定の強制解除条件が満たされる場合、当該ノンプレイヤオブジェクトは、通常状態に移行する。例えば、プロセッサ21は、ゲーム状況に応じて、軽減状態に設定されているノンプレイヤオブジェクトに対して、強制的に通常状態に移行させるための強制解除命令を送る。ノンプレイヤオブジェクトは、強制解除命令に対して、通常状態への移行を拒否しない場合は、通常状態に移行する。
【0144】
例えば、各小集団において、少なくとも1体の通常状態の味方キャラクタと、少なくとも1体の通常状態の敵キャラクタとが含まれるように、プロセッサ21は、各小集団内の各キャラクタに対して強制解除命令を送ってもよい。また、プロセッサ21は、各小集団において、少なくとも1体の通常状態の味方キャラクタ又は敵キャラクタが含まれるように、各キャラクタに対して強制解除命令を送ってもよい。強制解除命令を受信した敵キャラクタ又は味方キャラクタは、通常状態への移行を拒否しない場合、通常状態に移行する。強制解除命令を受信した敵キャラクタ又は味方キャラクタは、例えば、何らかの理由で通常状態への移行ができない場合、たとえば戦闘用停止中アニメーションの再生途中である場合などに、通常状態への移行を拒否し、その時点での通常状態への移行を拒否してもよい。この場合、当該アニメーションの再生が終了すると、敵キャラクタは通常状態に移行してもよい。
【0145】
このように、第2の戦闘シーンでは、各小集団内のキャラクタに対して、強制解除命令又は強制軽減命令が送信される。これにより、各小集団において、少なくとも1体の味方キャラクタと少なくとも1体の敵キャラクタとが積極的に戦闘を行うように制御することができるとともに、プロセッサ21の処理負荷が増大することを抑制することができる。
【0146】
なお、強制軽減命令や強制解除命令の送信は、第2の戦闘シーンに限らず、任意のゲームシーンにおいて行われてもよい。
【0147】
(小集団の形成)
第2の戦闘シーンにおいて、
図9に示される複数の小集団を形成するために、味方キャラクタを、小集団が形成され易い位置に移動させる処理が行われる。
図10は、第2の戦闘シーンの開始時におけるゲーム画像の一例を示す図であって、味方キャラクタが移動される前のゲーム画像の一例を示す図である。
図11は、第2の戦闘シーンにおいて味方キャラクタが移動された後のゲーム画像の一例を示す図である。
【0148】
図10に示されるように、第2の戦闘シーンの開始時には、プレイヤキャラクタ100の近くに味方キャラクタ110及び120が配置され、多数の敵キャラクタがプレイヤキャラクタ100から離れて配置される。この時点では複数のキャラクタは小集団を形成しておらず、プレイヤキャラクタ100側(プレイヤキャラクタ100と味方キャラクタ)と、敵キャラクタ側とで、2つの大きな集団を形成している。なお、第2の戦闘シーンの開始時に、敵キャラクタ側の集団において、ある程度複数の小集団が形成されてもよい。例えば、第2の戦闘シーンの開始時に、敵キャラクタ200~201はある程度近い位置に配置され、敵キャラクタ210~212はある程度近い位置に配置され、敵キャラクタ220~222はある程度近い位置に配置されてもよい。
【0149】
第2の戦闘シーンが開始されると、プレイヤキャラクタ100に近い複数の敵キャラクタ(200及び201)は、プレイヤキャラクタ100に近づいてくる。このとき、プレイヤキャラクタ100側から遠い敵キャラクタ(220や210)は、基本的にその場で待機する。
【0150】
第2の戦闘シーンの開始から所定時間が経過すると、
図11に示されるように、味方キャラクタ110は、仮想カメラから見て右奥側にいる複数の敵キャラクタ(210、211、212)の近くに移動される。
図11では、移動前の味方キャラクタ110’が破線で示されている。また、味方キャラクタ120は、仮想カメラから見て左奥側にいる複数の敵キャラクタ(220、221、222)の近くに移動される。
図11では、移動前の味方キャラクタ120’が破線で示されている。
【0151】
味方キャラクタ110が右奥側に移動すると、右奥側にいる複数の敵キャラクタ210、211、212は、自身のAIの判断により、味方キャラクタ110に近づくように移動する。これにより、
図9で示される小集団GP1が形成される。同様に、味方キャラクタ120が左奥側に移動すると、左奥側にいる複数の敵キャラクタ220、221、222は、自身のAIの判断により、味方キャラクタ120に近づくように移動する。これにより、
図9で示された小集団GP2が形成される。また、プレイヤキャラクタ100と、画面中央付近にいる複数の敵キャラクタ200及び201とが、小集団GP0を形成する。
【0152】
このように、複数の小集団を形成するために、味方キャラクタが移動される。具体的は、味方キャラクタ110は第1の領域から、敵キャラクタ210~212がいる第2の領域に移動される。また、味方キャラクタ120は第1の領域から、敵キャラクタ220~222がいる第3の領域に移動される。これにより、複数の小集団を形成し易くすることができ、各小集団において、敵キャラクタとプレイヤキャラクタ100又は味方キャラクタとの戦闘を行うことができる。ここでいう第1の領域は、仮想空間の固定の領域ではなく、ゲーム状況に応じて変化する、現時点で味方キャラクタ110、120がいる領域である。また、第2の領域は、仮想空間の固定の領域ではなく、ゲーム状況に応じて変化する、現時点で敵キャラクタ210~212がいる領域である。また、第3の領域は、仮想空間の固定の領域ではなく、ゲーム状況に応じて変化する、現時点で敵キャラクタ220~222がいる領域である。なお、第1の領域、第2の領域、第3の領域の少なくとも何れかは固定の領域であってもよい。
【0153】
以上のように、本実施形態のゲームでは、プロセッサ21によって制御されるノンプレイヤオブジェクトは通常状態又は軽減状態に設定される。プロセッサ21は、ノンプレイヤオブジェクトが通常状態に設定されている場合、当該ノンプレイヤオブジェクトの行動を決定する行動決定処理を行い、決定した行動に応じたアクション処理を行う。ノンプレイヤオブジェクトが軽減状態に設定されている場合には、プロセッサ21は、行動決定処理を行わない一方、停止中アニメーション処理を行う。これにより、ノンプレイヤオブジェクトは、通常のゲームシーンでは、立った状態で揺れ動く動作を行い、戦闘シーンでは、立った状態で相手を威嚇する動作を行う。したがって、プロセッサ21の処理負荷を軽減することができるとともに、違和感なくノンプレイヤオブジェクトを停止した状態にすることができる。
【0154】
また、ノンプレイヤオブジェクトが軽減状態に設定されている場合でも、プロセッサ21は、少なくとも一部の相互作用検知処理を行い、相互作用を検知した場合にはノンプレイヤオブジェクトを通常状態に移行させるとともに、検知に応じたリアクション処理を行う。これにより、ノンプレイヤオブジェクトは、軽減状態に設定されている場合でも、他のオブジェクトとの相互作用を行うことができる。
【0155】
(ゲーム処理に用いられるデータ)
次に、上述したゲームに関するゲーム処理の詳細について説明する。まず、ゲーム処理に用いられるデータについて説明する。
図12は、ゲーム処理の実行中に本体装置2のメモリに記憶されるデータの一例を示す図である。
【0156】
図12に示されるように、本体装置2のメモリ(DRAM27、フラッシュメモリ26、又は外部記憶媒体)には、ゲームプログラムD100と、操作データD110と、プレイヤキャラクタデータD120と、味方キャラクタデータD130と、敵キャラクタデータD140と、仮想オブジェクトデータD150とが記憶される。なお、これらのデータの他にも、メモリにはゲーム処理に用いられる様々なデータが記憶される。
【0157】
ゲームプログラムD100は、後述するゲーム処理を実行するためのプログラムである。ゲームプログラムは、スロット29に装着される外部記憶媒体又はフラッシュメモリ26に予め記憶されており、ゲームの実行時にDRAM27に読み込まれる。なお、ゲームプログラムは、ネットワーク(例えばインターネット)を介して他の装置から取得されてもよい。
【0158】
操作データD110は、コントローラ3及び4から本体装置2に送信されたデータである。コントローラ3及び4は、所定の時間間隔(例えば、1/200秒間隔)で繰り返し操作データD110を本体装置2に送信する。
【0159】
プレイヤキャラクタデータD120は、プレイヤキャラクタ100に関するデータである。プレイヤキャラクタデータD120は、例えば、プレイヤキャラクタ100の位置及び姿勢に関するデータと、プレイヤキャラクタ100の状態(移動アクション中か、攻撃アクション中か、防御アクション中か、他のオブジェクトと相互作用中か等)を示すデータを含む。
【0160】
味方キャラクタデータD130は、味方キャラクタに関するデータである。味方キャラクタ毎に、味方キャラクタデータD130が記憶される。味方キャラクタデータD130は、味方キャラクタの位置および姿勢に関するデータを含む。また、味方キャラクタデータD130は、味方キャラクタの形状や種類、性質を示すデータを含む。また、味方キャラクタデータD130は、味方キャラクタの状態(通常状態か軽減状態)を示すデータを含む。味方キャラクタデータD130は、味方キャラクタが他のオブジェクトと相互作用中か否かを示すデータを含む。また、味方キャラクタデータD130は、味方キャラクタが、通常状態から軽減状態、又は、軽減状態から通常状態への移行を拒否しているか否かを示すデータを含む。
【0161】
敵キャラクタデータD140は、敵キャラクタに関するデータである。敵キャラクタ毎に、敵キャラクタデータD140が記憶される。敵キャラクタデータD140は、敵キャラクタの位置および姿勢に関するデータを含む。また、敵キャラクタデータD140は、敵キャラクタの形状や種類、性質を示すデータを含む。また、敵キャラクタデータD140は敵キャラクタの状態(通常状態又は軽減状態)を示すデータを含む。敵キャラクタデータD140は、敵キャラクタが他のオブジェクトと相互作用中か否かを示すデータを含む。また、敵キャラクタデータD140は、敵キャラクタが、通常状態から軽減状態、又は、軽減状態から通常状態への移行を拒否しているか否かを示すデータを含む。
【0162】
仮想オブジェクトデータD150は、仮想オブジェクト300に関するデータである。仮想オブジェクト毎に、仮想オブジェクトデータD150が記憶される。仮想オブジェクトデータD150は、仮想オブジェクトの位置および姿勢に関するデータを含む。また、仮想オブジェクトデータD150は、仮想オブジェクトの形状や種類、性質を示すデータを含む。また、仮想オブジェクトデータD150は仮想オブジェクトの状態(通常状態又は軽減状態)を示すデータを含む。また、仮想オブジェクトデータD150は、仮想オブジェクトが他のオブジェクトと相互作用中か否かを示すデータを含む。また、仮想オブジェクトデータD150は、仮想オブジェクト300が、通常状態から軽減状態、又は、軽減状態から通常状態への移行を拒否しているか否かを示すデータを含む。
【0163】
(ゲーム処理の詳細)
次に、本体装置2において行われるゲーム処理の詳細について説明する。
図13は、プロセッサ21によって実行されるゲーム処理の一例を示すフローチャートである。
【0164】
図13に示されるように、ゲーム処理が開始されると、プロセッサ21は、初期処理を実行する(ステップS100)。具体的には、プロセッサ21は、仮想空間を設定し、仮想空間に地形オブジェクトを配置し、プレイヤキャラクタ100、味方キャラクタ110,120、仮想カメラ等を配置する。また、プロセッサ21は、仮想空間に敵キャラクタと仮想オブジェクト300とを配置する。
【0165】
次に、プロセッサ21は、コントローラから送信されてメモリに格納された操作データを取得する(ステップS101)。操作データは、左右のコントローラのボタンやアナログスティック等に対する操作に応じたデータを含む。以降、プロセッサ21は、ステップS101~ステップS109の処理を所定のフレーム時間間隔(例えば、1/60秒間隔)で繰り返し実行する。
【0166】
次に、プロセッサ21は、現在のゲームシーンが第1の戦闘シーン又は第2の戦闘シーンか否かを判定する(ステップS102)。ゲーム処理の実行中に、上述した第1の戦闘シーン又は第2の戦闘シーンに移行される。例えば、後述するステップS104においてプレイヤキャラクタ100が仮想空間の所定の領域に到達した場合、第1の戦闘シーンに移行される。また、例えば、プレイヤキャラクタ100が仮想空間の別の領域に到達した場合、第2の戦闘シーンに移行される。
【0167】
現在のゲームシーンが第1の戦闘シーン又は第2の戦闘シーンであると判定した場合(ステップS102:YES)、プロセッサ21は、戦闘管理処理を行う(ステップS103)。ここでは、プロセッサ21は、第1の戦闘シーンか第2の戦闘シーンかに応じて、異なる処理を行う。具体的には、プロセッサ21は、第1の戦闘シーンが開始された場合、仮想空間に、プレイヤキャラクタ100と、味方キャラクタ110、120と、仮想カメラと、多数の敵キャラクタとを配置する。また、プロセッサ21は、第1の戦闘シーンにおいて、通常状態に設定する敵キャラクタを決定する。具体的には、プロセッサ21は、プレイヤキャラクタ100又は仮想カメラからの距離が所定の基準値内にある複数の敵キャラクタのうち、プレイヤキャラクタ100又は仮想カメラから近い順に所定数の敵キャラクタを決定する。ここで決定された敵キャラクタを、以下では「戦闘対象敵キャラクタ」という。所定数は、固定の値であってもよいし、ゲーム状況に応じて変化する値であってもよい。ここで決定された敵キャラクタは、後述するノンプレイヤオブジェクト更新処理において通常状態に設定される。また、プロセッサ21は、第2の戦闘シーンが開始された場合、プレイヤ側の領域に、プレイヤキャラクタ100と、味方キャラクタ110、120と、仮想カメラとを配置し、敵側の領域に多数の敵キャラクタを配置する。第2の戦闘シーンが開始されてから所定時間が経過すると、プロセッサ21は、味方キャラクタ110を複数の敵キャラクタが集まった領域に移動させ、味方キャラクタ120を複数の敵キャラクタが集まった別の領域に移動させる。また、プロセッサ21は、例えば、第2の戦闘シーンの開始時に、各小集団において、通常状態になるキャラクタ(敵キャラクタ及び味方キャラクタ)の上限数を決定する。第2の戦闘シーンにおいては、プロセッサ21は、各小集団において、通常状態になるキャラクタの数がこの上限数を超えないように、小集団内のキャラクタの状態を制御する。なお、ゲーム状況によっては、小集団内において、ここで決定された上限数を超える数のキャラクタが通常状態になる場合もある。
【0168】
ステップS103の処理を行った場合、又は、ステップS102でNOと判定した場合、プロセッサ21は、操作データに基づいて、プレイヤキャラクタ制御処理を行う(ステップS104)。ここでは、プロセッサ21は、プレイヤの操作入力に応じて、プレイヤキャラクタ100を仮想空間内で制御する。具体的には、プロセッサ21は、操作データに基づいて、プレイヤキャラクタ100を移動させたり、プレイヤキャラクタ100に攻撃アクションを行わせたり、プレイヤキャラクタ100にオブジェクト操作アクションを行わせたりする。
【0169】
例えば、移動操作入力(例えばアナログスティック6Lに対する方向操作入力)が行われた場合、プロセッサ21は、ステップS104において、プレイヤキャラクタ100を仮想空間内で移動させ、プレイヤキャラクタ100の位置及び姿勢を更新する。プレイヤキャラクタ100が仮想空間の所定の領域に到達した場合、第1の戦闘シーンに移行される。また、プレイヤキャラクタ100が仮想空間の別の領域に到達した場合、第2の戦闘シーンに移行される。
【0170】
また、攻撃アクションのための操作入力が行われた場合、プロセッサ21は、ステップS104において、プレイヤキャラクタ100に攻撃アクションを行わせる。例えば、遠隔用武器オブジェクトを用いた遠隔攻撃アクションが行われる場合には、プロセッサ21は、照準を設定し、プレイヤの発射指示に応じて、照準が示す仮想空間の位置に向かって遠隔用武器オブジェクトを発射させる。また、近接用武器オブジェクトを用いた近接攻撃アクションが行われる場合、プロセッサ21は、プレイヤの攻撃指示に応じて、プレイヤキャラクタ100に近接攻撃アクションを行わせる。また、プロセッサ21は、ステップS104において、オブジェクト操作アクションに関する処理を行う。具体的には、プロセッサ21は、プレイヤの操作入力に基づいて、仮想空間に配置された仮想オブジェクトに狙いを定めて当該仮想オブジェクトを指定し、指定した仮想オブジェクトをオブジェクト操作アクションの制御対象として設定する。その他にも、プロセッサ21は、操作入力に応じてプレイヤキャラクタ100に様々なアクションを行わせてもよい。
【0171】
ステップS104を実行した場合、プロセッサ21は、今回の
図13の処理において、仮想空間に配置された全てのノンプレイヤオブジェクト(味方キャラクタ、敵キャラクタ、及び仮想オブジェクト300)について、ステップS106~ステップS107の処理を行ったか否かを判定する(ステップS105)。
【0172】
ステップS105でNOと判定した場合、プロセッサ21は、まだ処理を行っていないノンプレイヤオブジェクトを処理対象として選択する(ステップS106)。
【0173】
次に、プロセッサ21は、処理対象のノンプレイヤオブジェクトについて、ノンプレイヤオブジェクト更新処理を実行する(ステップS107)。ここでは、プロセッサ21は、処理対象のノンプレイヤオブジェクトについて、通常状態又は軽減状態に設定する処理、行動決定処理等を行う。ノンプレイヤオブジェクト更新処理の詳細については後述する。
【0174】
ステップS107の処理を行った場合、プロセッサ21は、再びステップS105の処理を実行する。
【0175】
ステップS105でYESと判定した場合、プロセッサ21は、描画処理を行う(ステップS108)。ここでは、仮想空間に配置された仮想カメラから仮想空間を見た画像が生成される。これにより、ステップS101~ステップS107の処理の結果に応じたゲーム画像が生成される。生成されたゲーム画像は、ディスプレイ12又は別の表示装置に出力される。ステップS108の描画処理が所定のフレーム時間間隔で繰り返し実行されることにより、仮想空間内でプレイヤキャラクタ100が移動したり、味方キャラクタや敵キャラクタが移動したり、味方キャラクタや敵キャラクタが様々なアクションを行ったりする様子が表示される。
【0176】
次に、プロセッサ21は、ゲームを終了するか否かの判定を行う(ステップS109)。例えば、プレイヤによりゲームの終了が指示された場合、プロセッサ21は、ゲームを終了すると判定し、
図13に示すゲーム処理を終了する。一方、ステップS109でNOと判定した場合、プロセッサ21は、ステップS101の処理を再び実行する。
【0177】
(ノンプレイヤオブジェクト更新処理)
次に、ステップS107のノンプレイヤオブジェクト更新処理について説明する。
図14は、ステップS107のノンプレイヤオブジェクト更新処理の一例を示すフローチャートである。
【0178】
図14に示されるように、プロセッサ21は、まず、相互作用検知処理を行う(ステップS200)。相互作用検知処理は、処理対象のノンプレイヤオブジェクトが、他のオブジェクトと相互作用している否かを検知する処理である。例えば、処理対象の敵キャラクタがプレイヤキャラクタ100に狙われているか否か、攻撃アクションが当たったか否か等の検知処理が行われる。具体的には、処理対象のノンプレイヤオブジェクトが通常状態である場合、プロセッサ21は、当該ノンプレイヤオブジェクトに関する複数の相互作用検知処理の全てを実行する。一方、ノンプレイヤオブジェクトが軽減状態である場合、プロセッサ21は、当該ノンプレイヤオブジェクトに関する複数の相互作用検知処理のうちの少なくとも一部を実行する。
【0179】
次に、プロセッサ21は、状態設定処理を行う(ステップS201)。ここでは、プロセッサ21は、処理対象のノンプレイヤオブジェクトを通常状態又は軽減状態に設定する。以下、ステップS201の状態設定処理の詳細について説明する。
【0180】
(状態設定処理)
図15は、ステップS201の状態設定処理の詳細を示すフローチャートである。
【0181】
図15に示されるように、プロセッサ21は、ノンプレイヤオブジェクトに強制軽減命令を送信するか否かを判定する(ステップS300)。例えば、プロセッサ21は、第2の戦闘シーンにおいて、処理対象である敵キャラクタが通常状態である場合であって、かつ、同じ小集団内の通常状態のキャラクタ(敵キャラクタ及び味方キャラクタ)の数がステップS103で決定した上限数を超えている場合、当該敵キャラクタに強制軽減命令を送信する。また、プロセッサ21は、第2の戦闘シーンにおいて、処理対象である味方キャラクタが通常状態であり、かつ、同じ小集団内の通常状態のキャラクタの数がステップS103で決定した上限数を超えている場合、当該味方キャラクタに強制軽減命令を送信する。なお、通常のゲームシーン又は第1の戦闘シーンにおいては、プロセッサ21は、ステップS300でNOと判定する。
【0182】
強制軽減命令を送信すると判定した場合(ステップS300:YES)、プロセッサ21は、ノンプレイヤオブジェクトが現在通常状態であり、かつ、軽減状態への移行を拒否しているか否かを判定する(ステップS301)。ノンプレイヤオブジェクトは、移動中である場合、アクション中である場合、又は、他のオブジェクトと相互作用中である場合、通常状態から軽減状態への移行を拒否する。例えば、処理対象のノンプレイヤオブジェクトが敵キャラクタである場合、プロセッサ21は、敵キャラクタデータD140を参照して、敵キャラクタが現在通常状態であり、かつ、軽減状態への移行を拒否しているか否かを判定する。また、例えば、処理対象のノンプレイヤオブジェクトが味方キャラクタである場合、プロセッサ21は、味方キャラクタデータD130を参照して、味方キャラクタが現在通常状態であり、かつ、軽減状態への移行を拒否しているか否かを判定する。
【0183】
ステップS301でYESと判定した場合、プロセッサ21は、ノンプレイヤオブジェクトを通常状態に設定する(ステップS302)。
【0184】
一方、ステップS301でNOと判定した場合、プロセッサ21は、ノンプレイヤオブジェクトを軽減状態に設定する(ステップS303)。
【0185】
強制軽減命令を送信しないと判定した場合(ステップS300:NO)、プロセッサ21は、ノンプレイヤオブジェクトに強制解除命令を送信するか否かを判定する(ステップS304)。具体的には、プロセッサ21は、第2の戦闘シーンにおいて、処理対象である敵キャラクタが軽減状態であり、かつ、同じ小集団内に少なくとも1体の通常状態の敵キャラクタが存在しない場合、当該敵キャラクタに強制解除命令を送信する。また、プロセッサ21は、第2の戦闘シーンにおいて、処理対象である味方キャラクタが軽減状態であり、かつ、同じ小集団内に少なくとも1体の通常状態の味方キャラクタが存在しない場合、当該味方キャラクタに強制解除命令を送信する。なお、通常のゲームシーン又は第1の戦闘シーンにおいては、プロセッサ21は、ステップS304でNOと判定する。
【0186】
強制解除命令を送信しないと判定した場合(ステップS304:NO)、プロセッサ21は、ノンプレイヤオブジェクトが移動中か否かを判定する(ステップS305)。ここでは、ノンプレイヤオブジェクトが通常状態において仮想空間を移動中か否かが判定される。例えば、処理対象の敵キャラクタ又は味方キャラクタが移動中か否かが判定される。また、プロセッサ21は、処理対象の仮想オブジェクト300が移動中か否かを判定する。
【0187】
ノンプレイヤオブジェクトが移動中でない場合(ステップS305:NO)、プロセッサ21は、ノンプレイヤオブジェクトが他のオブジェクトと相互作用中か否かを判定する(ステップS306)。ここでは、プロセッサ21は、上記ステップS200と同様に、処理対象のノンプレイヤオブジェクトが、他のオブジェクトと相互作用している否かを検知する。具体的には、処理対象のノンプレイヤオブジェクトが通常状態である場合、プロセッサ21は、当該ノンプレイヤオブジェクトに関する複数の相互作用検知処理の全てを実行する。一方、ノンプレイヤオブジェクトが軽減状態である場合、プロセッサ21は、当該ノンプレイヤオブジェクトに関する複数の相互作用検知処理のうちの少なくとも一部を実行する。例えば、処理対象の敵キャラクタが、プレイヤキャラクタ100又は味方キャラクタから攻撃を受けたり、遠隔攻撃アクションによって狙われたりしている場合、プロセッサ21は、敵キャラクタが他のオブジェクトと相互作用中であると判定する。
【0188】
ノンプレイヤオブジェクトが他のオブジェクトと相互作用中でない場合(ステップS306:NO)、プロセッサ21は、ノンプレイヤオブジェクトと仮想カメラとの距離が所定の基準値内か否かを判定する(ステップS307)。なお、ここでは、プロセッサ21は、ノンプレイヤオブジェクトとプレイヤキャラクタ100との距離が所定の基準値内か否かを判定してもよい。具体的には、プロセッサ21は、通常のゲームシーンにおいて、ノンプレイヤオブジェクトと仮想カメラとの距離が第1の基準値内か否かを判定する。また、プロセッサ21は、第1の戦闘シーンにおいて、処理対象である敵キャラクタと仮想カメラとの距離が第2の基準値内であり、かつ、当該処理対象の敵キャラクタがステップS103で決定した戦闘対象敵キャラクタか否かを判定する。なお、第2の戦闘シーンにおいては、プロセッサ21は、ステップS307でNOと判定する。
【0189】
ステップS307でNOと判定した場合、プロセッサ21は、次に、ステップS301の処理を実行する。
【0190】
ステップS304、ステップS305、ステップS306、ステップS307の何れかでYESと判定した場合、プロセッサ21は、ノンプレイヤオブジェクトが現在軽減状態であり、かつ、通常状態への移行を拒否しているか否かを判定する(ステップS308)。ノンプレイヤオブジェクトは、例えば、通常用停止中アニメーション又は戦闘用停止中アニメーションの再生途中である場合、軽減状態から通常状態への移行を拒否してもよい。例えば、処理対象のノンプレイヤオブジェクトが敵キャラクタである場合、プロセッサ21は、敵キャラクタデータD140を参照して、敵キャラクタが現在軽減状態であり、かつ、通常状態への移行を拒否しているか否かを判定する。また、例えば、処理対象のノンプレイヤオブジェクトが味方キャラクタである場合、プロセッサ21は、味方キャラクタデータD130を参照して、味方キャラクタが現在軽減状態であり、かつ、通常状態への移行を拒否しているか否かを判定する。
【0191】
ステップS308でYESと判定した場合、プロセッサ21は、ノンプレイヤオブジェクトを軽減状態に設定する(ステップS303)。
【0192】
一方、ステップS308でNOと判定した場合、プロセッサ21は、ノンプレイヤオブジェクトを通常状態に設定する(ステップS302)。
【0193】
ステップS302の処理、又は、ステップS303の処理を実行した場合、プロセッサ21は、
図15に示す処理を終了し、処理を
図14に戻す。
【0194】
図14に戻り、ステップS201の処理の後、プロセッサ21は、ノンプレイヤオブジェクトが通常状態であるか否かを判定する(ステップS202)。
【0195】
ノンプレイヤオブジェクトが通常状態である場合(ステップS202:YES)、プロセッサ21は、行動決定処理、アクション処理、リアクション処理、及びアニメーション処理を行う(ステップS203)。行動決定処理は、処理対象であるノンプレイヤオブジェクトの行動を決定する処理である。例えば、処理対象のノンプレイヤオブジェクトが敵キャラクタである場合、プロセッサ21は、ゲーム状況に応じて、当該敵キャラクタの行動(移動、攻撃、防御等、当該敵キャラクタが実行可能なアクション)を決定する。例えば、プロセッサ21は、敵キャラクタの位置、プレイヤキャラクタ100の位置、味方キャラクタの位置、その他のゲーム状況に基づいて、敵キャラクタを移動させると決定する。この場合、プロセッサ21は、移動先、移動経路、移動態様等も決定する。また、プロセッサ21は、ゲーム状況に基づいて、敵キャラクタに攻撃アクションを行わせるか否かを決定し、攻撃アクションを行わせると決定した場合、攻撃アクションの態様等を決定する。また、処理対象のノンプレイヤオブジェクトが味方キャラクタである場合、プロセッサ21は、プレイヤキャラクタ100の位置や状況、敵キャラクタの位置や状況等を含むゲーム状況に応じて、当該味方キャラクタの行動(移動、攻撃、防御等、当該味方キャラクタが実行可能なアクション)を決定する。例えば、プロセッサ21は、通常のゲームシーンにおいて、味方キャラクタとプレイヤキャラクタ100に追従するように移動させる。また、処理対象のノンプレイヤオブジェクトが仮想オブジェクトである場合、プロセッサ21は、当該仮想オブジェクトの行動を決定する。
【0196】
また、プロセッサ21は、ステップS203において、決定した行動をノンプレイヤオブジェクトに行わせるためのアクション処理及び対応するアニメーション処理を実行する。例えば、プロセッサ21は、敵キャラクタを移動させると決定した場合、当該敵キャラクタの位置を更新する。プロセッサ21は、ステップS203の処理を実行する毎に、敵キャラクタの位置を更新する。また、プロセッサ21は、敵キャラクタを移動させるアニメーションを開始し、以後、ステップS203の処理を実行する毎に、当該アニメーションを更新する。例えば、プロセッサ21は、移動中の敵キャラクタの足元の地面の状況(例えば凹凸の有無等)を判定し、当該判定結果に応じてアニメーションを更新する。プロセッサ21は、ステップS203で決定した移動先まで敵キャラクタを移動させた場合、敵キャラクタを停止させる。また、プロセッサ21は、敵キャラクタに攻撃アクションを行わせると決定した場合、当該攻撃アクションを行わせるためのアニメーションを開始し、以後、数~数十フレームの間、ステップS203の処理を実行する毎に、当該アニメーションを更新する。また、プロセッサ21は、味方キャラクタを移動させると決定した場合は、上記と同様に、味方キャラクタの位置を更新し、味方キャラクタを移動させるアニメーションの開始及び更新を行う。
【0197】
また、プロセッサ21は、ステップS203において、上記ステップS200の相互作用検知処理でノンプレイヤオブジェクトと他のオブジェクトとの相互作用を検知した場合、ノンプレイヤオブジェクトにリアクションを行わせる。具体的には、プロセッサ21は、検知結果に応じたリアクションを決定し、決定したリアクションに関するリアクション処理及びアニメーション処理を行う。例えば、処理対象の敵キャラクタがプレイヤキャラクタ100に狙われていることを検知した場合、プロセッサ21は、当該検知に応じたリアクションを敵キャラクタに行わせる。具体的には、プロセッサ21は、当該リアクションに対応するアニメーションを開始する。また、プロセッサ21は、当該アニメーションを開始した後、数~数十フレームの間、ステップS203の処理を実行する毎に、当該アニメーションを更新する。また、プロセッサ21は、味方キャラクタと他のオブジェクトとの相互作用を検知した場合、検知に応じたリアクションを決定し、リアクション処理及び対応するアニメーション処理を実行する。
【0198】
一方、ノンプレイヤオブジェクトが通常状態でない場合(ステップS202:NO)、すなわち、軽減状態である場合、プロセッサ21は、停止中アニメーション処理を行う(ステップS204)。例えば、プロセッサ21は、処理対象である敵キャラクタについて停止中アニメーション処理を行う。具体的には、プロセッサ21は、通常のゲームシーンである場合、通常用停止中アニメーションに基づいて、敵キャラクタに立った状態で揺れ動く動作をさせる。また、第1の戦闘シーン又は第2の戦闘シーンである場合、プロセッサ21は、戦闘用停止中アニメーションに基づいて、敵キャラクタに立った状態で相手を威嚇する動作をさせる。
【0199】
ステップS203の処理を行った場合、又は、ステップS204の処理を行った場合、プロセッサ21は、
図14に示す処理を終了する。
【0200】
以上のように、本実施形態のゲームでは、プロセッサ21によって制御されるノンプレイヤオブジェクトを通常状態又は軽減状態に設定する。通常状態において、ノンプレイヤオブジェクトを、自動的に移動させる処理(S203)、アニメーション処理(S203)、他のオブジェクトとの相互作用の検知処理(S200)、および、相互作用の検知に応じた挙動を行わせる処理(S203)を少なくとも含む第1のオブジェクト制御処理に基づいて制御する。また、軽減状態において、ノンプレイヤオブジェクトを、第1のオブジェクト制御処理に含まれる複数の処理のうち、移動を伴わないアニメーションに関するアニメーション処理(S204)、及び少なくとも一部の相互作用の検知処理(S200)を少なくとも行い、自動的に移動させる処理を含む他の処理を行わない第2のオブジェクト制御処理に基づいて制御する。軽減状態は、ノンプレイヤオブジェクトが移動中でないという条件と、ノンプレイヤオブジェクトが他のオブジェクトと相互作用していないという条件を含む複数の条件を満たす状態である。
【0201】
ノンプレイヤオブジェクトを第2のオブジェクト制御処理に基づいて制御することにより、プロセッサ21の処理負荷を軽減することができる。軽減状態であっても、移動を伴わないアニメーションについては表示され、他のオブジェクトとの相互作用も検知することができる。これにより、見た目の違和感を生じさせず、プレイヤとのインタラクションも可能にしてゲーム性を担保しつつ、プロセッサの処理負荷を軽減することができる。
【0202】
また、本実施形態では、第2のオブジェクト制御処理における一部の相互作用の検知処理は、プレイヤキャラクタのアクション(例えば攻撃アクション)に基づいた相互作用の検知を含み、軽減状態のノンプレイヤオブジェクトに対する当該プレイヤキャラクタのアクションに基づいた相互作用が検知された場合に(S306:YES)、ノンプレイヤオブジェクトを通常状態へと遷移させて(S302)、第1のオブジェクト制御処理に基づいて制御させる。
【0203】
プレイヤによるノンプレイヤオブジェクトに対する相互作用が行われた場合に、ノンプレイヤオブジェクトを通常状態に遷移させることができ、プレイヤにとって違和感のないゲームを行うことができる。
【0204】
また、本実施形態では、軽減状態のノンプレイヤオブジェクトに対する当該プレイヤキャラクタのアクションに基づいた相互作用が検知された場合に(S306:YES)、ノンプレイヤオブジェクトに、当該相互作用の検知に応じた挙動を行わせる(S203)。
【0205】
これにより、軽減状態のノンプレイヤオブジェクトに対してプレイヤによる相互作用が行われた場合に、当該ノンプレイヤオブジェクトに相互作用に応じた挙動を行わせることができ、プレイヤにとって違和感のないゲームを行うことができる。
【0206】
また、本実施形態では、第1のオブジェクト制御処理は、相互作用の発生を含むゲーム状況に基づいて、挙動の開始および移動の開始を含むノンプレイヤオブジェクトの行動の決定をする行動決定処理(S203)を含む。また、第2のオブジェクト制御処理は、行動決定処理を含まない。また、第1のオブジェクト制御処理は、開始されたノンプレイヤオブジェクトの挙動および移動を進行させる処理を含む。これにより、第2のオブジェクト制御処理では、ゲーム状況に応じた行動決定という負荷の高い処理を行わないようにすることができる。第2のオブジェクト制御処理ではノンプレイヤオブジェクトが移動開始されないため、処理負荷を軽減することができる。
【0207】
また、本実施形態では、軽減状態に関する複数の条件は、プレイヤキャラクタまたは仮想カメラとノンプレイヤオブジェクトとの距離が所定の基準を超えているという条件を含む。これにより、ノンプレイヤオブジェクトがプレイヤキャラクタ又は仮想カメラから離れている場合は、ノンプレイヤオブジェクトを軽減状態に設定することができる。
【0208】
また、本実施形態では、第2のオブジェクト制御処理は、プレイヤキャラクタまたは仮想カメラとノンプレイヤオブジェクトとの距離の検知を少なくとも含み、軽減状態のノンプレイヤオブジェクトと、プレイヤキャラクタ又は仮想カメラとの距離が所定の基準以下となった場合(S307:YES)、ノンプレイヤオブジェクトを通常状態に遷移させて、当該ノンプレイヤオブジェクトを第1のオブジェクト制御処理に基づいて制御させる。これにより、軽減状態のノンプレイヤオブジェクトがプレイヤキャラクタ又は仮想カメラに近づいた場合は、ノンプレイヤオブジェクトを通常状態に設定することができる。
【0209】
また、本実施形態では、ノンプレイヤオブジェクトが上記複数の条件を満たすか否かに関わらず、他の所定の条件が満たされる場合(S300でYES又はS304でYES)に、第1のオブジェクト制御処理および第2のオブジェクト制御処理の一方に基づいて、ノンプレイヤオブジェクトが制御される。
【0210】
また、本実施形態では、ノンプレイヤオブジェクトは、ノンプレイヤキャラクタ(敵キャラクタ又は味方キャラクタ)であり、複数のノンプレイヤキャラクタに戦闘を行わせ、戦闘中に、複数のノンプレイヤキャラクタのうち、少なくとも何れかのノンプレイヤキャラクタが第1のオブジェクト制御処理に基づいて制御されて戦闘を行わせ、他のノンプレイヤキャラクタは第2のオブジェクト制御処理に基づいて制御される。これにより、複数のノンプレイヤキャラクタが戦闘するシーンにおいて、処理負荷を軽減しつつ、見た目やゲーム性を維持することができる。
【0211】
また、本実施形態では、非戦闘中において第2のオブジェクト制御処理に基づいてノンプレイヤキャラクタを制御する場合に、ノンプレイヤキャラクタに、移動を伴わないアニメーションとして第1のアニメーション(通常用停止中アニメーション)をさせ、戦闘中において、第2のオブジェクト制御処理に基づいてノンプレイヤキャラクタを制御する場合に、ノンプレイヤキャラクタに、移動を伴わないアニメーションとして第1のアニメーションとは異なる第2のアニメーション(戦闘用停止中アニメーション)をさせる。これにより、非戦闘中と戦闘中とで、移動を伴わないアニメーションとして、ノンプレイヤキャラクタに異なるアニメーションをさせることができ、シーンに応じてより自然な見た目にすることができる。
【0212】
また、本実施形態では、ノンプレイヤキャラクタは、敵キャラクタであり、プレイヤキャラクタと複数の敵キャラクタとの戦闘が行われ、プレイヤキャラクタ又は仮想カメラから近いものから所定数の敵キャラクタを第1のオブジェクト制御処理に基づいて制御させ(S103)、他の敵キャラクタを第2のオブジェクト制御処理に基づいて制御する。これにより、多数の敵キャラクタと戦闘する場合でも、所定数を超える遠い位置にいる敵キャラクタを軽減状態にさせて、処理負荷を軽減することができるとともに、見た目やゲーム性を維持することができる。
【0213】
また、本実施形態では、ノンプレイヤキャラクタは、味方キャラクタおよび敵キャラクタを含み、味方キャラクタと敵キャラクタが含まれる戦闘グループを複数設定し、グループ内において味方キャラクタおよび敵キャラクタに戦闘を行わせる。それぞれのグループ内において、少なくとも1体の味方キャラクタと少なくとも1体の敵キャラクタとを第1のオブジェクト制御処理に基づいて制御し、他の味方キャラクタおよび敵キャラクタを第2のオブジェクト制御処理に基づいて制御する(S103)。これにより、処理負荷を軽減しつつ、それぞれのグループ内で戦闘を行わせることができる。
【0214】
また、本実施形態では、戦闘中において、仮想空間内における味方キャラクタと敵キャラクタの位置関係に基づいて戦闘グループを設定させ、第1の領域に配置された少なくともいずれかの第1のオブジェクト制御処理に基づいて制御される味方キャラクタを、敵キャラクタが配置された第2の領域に移動させることにより、味方キャラクタと敵キャラクタを含む戦闘グループを設定させる。これにより、自然と戦闘グループを形成させることができる。
【0215】
(変形例)
以上、本実施形態について説明したが、上記実施形態は単なる一例であり、例えば以下のような変形が加えられてもよい。
【0216】
例えば、上記フローチャートで示した処理は単なる例示に過ぎず、処理の順番や内容、判定に用いられる閾値等は適宜変更されてもよい。
【0217】
また、上記実施形態では、通常状態では、行動決定処理においてノンプレイヤオブジェクトに行動を行わせるか否かを決定し、行動を行わせると決定した場合には、その決定に応じたアクション処理及びアニメーション処理を行うことで、決定した行動をノンプレイヤオブジェクトに行わせた。軽減状態では、ノンプレイヤオブジェクトの行動を決定する行動決定処理を行わないようにすることで、通常状態において実行可能な行動をノンプレイヤオブジェクトに行わせないようにした。他の実施形態では、軽減状態において、ノンプレイヤオブジェクトに行動を行わせるか否かの決定を行い、実際の行動については行わせないようにしてもよい。すなわち、行動決定処理において行動の決定を行うが、その決定した行動をノンプレイヤオブジェクトに行わせるためのアクション処理及びアニメーション処理を行わないようにしてもよい。
【0218】
また、上記実施形態では、ノンプレイヤオブジェクトが軽減状態である場合に、少なくとも一部の相互作用検知処理を行い、相互作用検知処理において他のオブジェクトとの相互作用を検知した場合に、ノンプレイヤオブジェクトを通常状態に設定するとともに、ノンプレイヤオブジェクトに相互作用の検知に応じたリアクションを行わせた。他の実施形態では、ノンプレイヤオブジェクトが軽減状態である場合において、他のオブジェクトとの相互作用を検知した場合に、ノンプレイヤオブジェクトを通常状態に設定する一方、ノンプレイヤオブジェクトに相互作用の検知に応じたリアクションを行わせないようにしてもよい。また、他の実施形態では、ノンプレイヤオブジェクトが軽減状態である場合において、他のオブジェクトとの相互作用を検知した場合に、ノンプレイヤオブジェクトに相互作用の検知に応じたリアクションを行わせる一方で、ノンプレイヤオブジェクトを通常状態に設定しないようにしてもよい。
【0219】
また、通常のゲームシーン、第1の戦闘シーン、第2の戦闘シーンのそれぞれにおいて行われる処理は、別のシーンにおいて行われてもよい。例えば、第1の戦闘シーンでは、プレイヤキャラクタ100又は仮想カメラから近い所定数の敵キャラクタを通常状態に設定し、他の敵キャラクタを軽減状態に設定したが、これを第2の戦闘シーンに適用してもよい。例えば、第2の戦闘シーンにおいて、各小集団において、プレイヤキャラクタ100又は味方キャラクタから近い所定数の敵キャラクタを通常状態に設定し、それ以外の敵キャラクタを軽減状態に設定してもよい。また、通常のゲームシーンでもこのような処理が行われてもよい。
【0220】
また、上記実施形態では、第2の戦闘シーンにおいて、強制軽減命令及び強制解除命令をノンプレイヤオブジェクトに送信することとしたが、通常のゲームシーン及び/又は第1の戦闘シーンにおいても、強制軽減命令及び強制解除命令をノンプレイヤオブジェクトに送信してもよい。
【0221】
また、上記ゲーム処理を行うハードウェアの構成は単なる一例であり、他の任意のハードウェアにおいて上記ゲーム処理が行われてもよい。例えば、パーソナルコンピュータ、タブレット端末、スマートフォン、インターネット上のサーバ等、任意の情報処理システムにおいて上記ゲーム処理が実行されてもよい。また、上記ゲーム処理は、複数の装置によって分散実行されてもよい。
【0222】
また上記実施形態及びその変形例に係る構成は、互いに矛盾しない限り、任意に組み合わせることが可能である。また、上記は本発明の例示に過ぎず、上記以外にも種々の改良や変形が加えられてもよい。
【符号の説明】
【0223】
1 ゲームシステム
2 本体装置
3 左コントローラ
4 右コントローラ
21 プロセッサ
100 プレイヤキャラクタ
110、120 味方キャラクタ
200、201、202 敵キャラクタ
210、211、212 敵キャラクタ
220、221、222 敵キャラクタ