(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024052730
(43)【公開日】2024-04-11
(54)【発明の名称】ゲームプログラム、情報処理システム、情報処理装置、および情報処理方法
(51)【国際特許分類】
A63F 13/55 20140101AFI20240404BHJP
A63F 13/42 20140101ALI20240404BHJP
A63F 13/537 20140101ALI20240404BHJP
A63F 13/56 20140101ALI20240404BHJP
A63F 13/58 20140101ALI20240404BHJP
【FI】
A63F13/55
A63F13/42
A63F13/537
A63F13/56
A63F13/58
【審査請求】未請求
【請求項の数】24
【出願形態】OL
(21)【出願番号】P 2024031191
(22)【出願日】2024-03-01
(62)【分割の表示】P 2022144908の分割
【原出願日】2022-09-12
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】佐藤 祐也
(72)【発明者】
【氏名】迫岡 洋輔
(57)【要約】
【課題】プレイヤキャラクタに遠隔攻撃を行わせるゲームにおいて、ゲームのバランスを保ちつつ遠隔攻撃に関連した効果を発生させることが可能なゲームプログラムを提供する。
【解決手段】情報処理システムの一例は、プレイヤキャラクタをプレイヤの操作入力に応じて移動させ、第2の操作入力に基づいてプレイヤキャラクタに遠隔攻撃を行わせ、第1のノンプレイヤキャラクタを自動的に移動させる。情報処理システムの一例は、プレイヤキャラクタが第1のノンプレイヤキャラクタに近づいた場合、プレイヤの操作入力に応じて、判定領域を生成して時間経過に応じて拡大させ、プレイヤキャラクタの遠隔攻撃が判定領域内に当たった場合、当該遠隔攻撃が当たった位置に第1の効果を発生させる。
【選択図】
図13
【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータに、
仮想空間内において、プレイヤキャラクタに対して、第1の操作入力に基づいた移動と、第2の操作入力に基づいた遠隔攻撃とを少なくとも含む制御を行わせ、
操作入力に基づいた所定の指示が行われたことに応じて、前記仮想空間内において判定領域を生成させ、当該判定領域を時間経過に応じて拡大させ、
前記遠隔攻撃が、前記仮想空間内のオブジェクトに前記判定領域内において当たった場合、当該遠隔攻撃が当たった場所に第1の効果を発生させる、ゲームプログラム。
【請求項2】
前記コンピュータにさらに、
前記仮想空間内において、第1のノンプレイヤキャラクタを自動制御させ、
前記所定の指示は、前記プレイヤキャラクタと前記第1のノンプレイヤキャラクタとが所定の位置関係であるときに第3の操作入力が行われることである、請求項1に記載のゲームプログラム。
【請求項3】
前記判定領域は、前記第1のノンプレイヤキャラクタの位置に生成される、請求項2に記載のゲームプログラム。
【請求項4】
前記判定領域は、前記第1のノンプレイヤキャラクタの位置を中心として拡大される、請求項3に記載のゲームプログラム。
【請求項5】
前記コンピュータにさらに、
前記第1の効果が発生された場合に、前記判定領域を消去させる、請求項1に記載のゲームプログラム。
【請求項6】
前記コンピュータにさらに、
前記判定領域が生成されてから所定時間が経過した場合、又は、前記判定領域が所定の大きさまで拡大された場合、前記判定領域を消去させる、請求項5に記載のゲームプログラム。
【請求項7】
前記コンピュータにさらに、
前記判定領域が消去された後、所定時間が経過するまでの間、前記判定領域の生成を制限する、請求項5に記載のゲームプログラム。
【請求項8】
前記コンピュータにさらに、
前記判定領域の範囲を示す表示を行わせる、請求項1から7の何れかに記載のゲームプログラム。
【請求項9】
前記第1の効果は、前記遠隔攻撃が当たった場所に配置された敵オブジェクトにダメージを加える、又は、前記遠隔攻撃が当たった場所に配置された障害オブジェクトを破壊する効果である、請求項1から7の何れかに記載のゲームプログラム。
【請求項10】
前記コンピュータにさらに、
前記仮想空間内において、第2のノンプレイヤキャラクタを自動的に移動させ、
前記プレイヤキャラクタと前記第2のノンプレイヤキャラクタとが所定の位置関係である場合に、前記第3の操作入力に応じて、第2の効果を生じさせる、請求項2から4の何れかに記載のゲームプログラム。
【請求項11】
プロセッサを備える情報処理システムであって、前記プロセッサは、
仮想空間内において、プレイヤキャラクタに対して、第1の操作入力に基づいた移動と、第2の操作入力に基づいた遠隔攻撃とを少なくとも含む制御を行い、
操作入力に基づいた所定の指示が行われたことに応じて、前記仮想空間内において判定領域を生成させ、当該判定領域を時間経過に応じて拡大させ、
前記遠隔攻撃が、前記仮想空間内のオブジェクトに前記判定領域内において当たった場合、当該遠隔攻撃が当たった場所に第1の効果を発生させる、情報処理システム。
【請求項12】
前記プロセッサは、さらに、
前記仮想空間内において、第1のノンプレイヤキャラクタを自動制御し、
前記所定の指示は、前記プレイヤキャラクタと前記第1のノンプレイヤキャラクタとが所定の位置関係であるときに第3の操作入力が行われることである、請求項11に記載の情報処理システム。
【請求項13】
前記判定領域は、前記第1のノンプレイヤキャラクタの位置に生成される、請求項12に記載の情報処理システム。
【請求項14】
前記判定領域は、前記第1のノンプレイヤキャラクタの位置を中心として拡大される、請求項13に記載の情報処理システム。
【請求項15】
前記プロセッサはさらに、
前記第1の効果が発生された場合に、前記判定領域を消去する、請求項11に記載の情報処理システム。
【請求項16】
前記プロセッサはさらに、
前記判定領域が生成されてから所定時間が経過した場合、又は、前記判定領域が所定の大きさまで拡大された場合、前記判定領域を消去する、請求項15に記載の情報処理システム。
【請求項17】
前記プロセッサはさらに、
前記判定領域が消去された後、所定時間が経過するまでの間、前記判定領域の生成を制限する、請求項15に記載の情報処理システム。
【請求項18】
前記プロセッサはさらに、
前記判定領域の範囲を示す表示を行う、請求項11から17の何れかに記載の情報処理システム。
【請求項19】
前記第1の効果は、前記遠隔攻撃が当たった場所に配置された敵オブジェクトにダメージを加える、又は、前記遠隔攻撃が当たった場所に配置された障害オブジェクトを破壊する効果である、請求項11から17の何れかに記載の情報処理システム。
【請求項20】
前記プロセッサはさらに、
前記仮想空間内において、第2のノンプレイヤキャラクタを自動的に移動し、
前記プレイヤキャラクタと前記第2のノンプレイヤキャラクタとが所定の位置関係である場合に、前記第3の操作入力に応じて、第2の効果を生じさせる、請求項12から14の何れかに記載の情報処理システム。
【請求項21】
プロセッサを備える情報処理装置であって、前記プロセッサは、
仮想空間内において、プレイヤキャラクタに対して、第1の操作入力に基づいた移動と、第2の操作入力に基づいた遠隔攻撃とを少なくとも含む制御を行い、
操作入力に基づいた所定の指示が行われたことに応じて、前記仮想空間内において判定領域を生成させ、当該判定領域を時間経過に応じて拡大させ、
前記遠隔攻撃が、前記仮想空間内のオブジェクトに前記判定領域内において当たった場合、当該遠隔攻撃が当たった場所に第1の効果を発生させる、情報処理装置。
【請求項22】
前記プロセッサは、さらに、
前記仮想空間内において、第1のノンプレイヤキャラクタを自動制御し、
前記所定の指示は、前記プレイヤキャラクタと前記第1のノンプレイヤキャラクタとが所定の位置関係であるときに第3の操作入力が行われることである、請求項21に記載の情報処理装置。
【請求項23】
情報処理システムにおいて行われる情報処理方法であって、
仮想空間内において、プレイヤキャラクタに対して、第1の操作入力に基づいた移動と、第2の操作入力に基づいた遠隔攻撃とを少なくとも含む制御を行うステップと、
操作入力に基づいた所定の指示が行われたことに応じて、前記仮想空間内において判定領域を生成させ、当該判定領域を時間経過に応じて拡大させるステップと、
前記遠隔攻撃が、前記仮想空間内のオブジェクトに前記判定領域内において当たった場合、当該遠隔攻撃が当たった場所に第1の効果を発生させるステップと、を含む、情報処理方法。
【請求項24】
前記仮想空間内において、第1のノンプレイヤキャラクタを自動制御するステップをさらに含み、
前記所定の指示は、前記プレイヤキャラクタと前記第1のノンプレイヤキャラクタとが所定の位置関係であるときに第3の操作入力が行われることである、請求項23に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プレイヤキャラクタを仮想空間で移動させて攻撃動作を行わせるゲームを行うことが可能なゲームプログラム、情報処理システム、情報処理装置、および情報処理方法に関する。
【背景技術】
【0002】
従来より、少なくとも1つのプレイヤキャラクタが複数種類の攻撃を行うことが可能なゲームがある(例えば、特許文献1参照)。例えば、従来のゲームではプレイヤキャラクタは特殊攻撃と通常攻撃とを行う。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、プレイヤキャラクタに遠隔攻撃を行わせるゲームにおいて、遠隔攻撃に関連した効果を発生させる場合に、ゲームのバランスを保つためには改善の余地があった。
【0005】
それ故、本発明の目的は、プレイヤキャラクタに遠隔攻撃を行わせるゲームにおいて、ゲームのバランスを保ちつつ遠隔攻撃に関連した効果を発生させることが可能なゲームプログラム、情報処理システム、情報処理装置、および情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記の課題を解決すべく、本発明は、以下の構成を採用した。
【0007】
(第1の構成)
第1の構成のゲームプログラムは、情報処理装置のコンピュータに、仮想空間内において、プレイヤキャラクタに対して、第1の操作入力に基づいた移動と、第2の操作入力に基づいた遠隔攻撃とを少なくとも含む制御を行わせる。また、ゲームプログラムは、コンピュータに、操作入力に基づいた所定の指示が行われたことに応じて、前記仮想空間内において判定領域を生成させ、当該判定領域を時間経過に応じて拡大させ、前記遠隔攻撃が、前記仮想空間内のオブジェクトに前記判定領域内において当たった場合、当該遠隔攻撃が当たった場所に第1の効果を発生させる。
【0008】
上記によれば、プレイヤキャラクタによる遠隔攻撃が判定領域内で当たった場合に第1の効果を発生させることができる。所定の指示に応じて判定領域が生成されて、時間経過に応じて拡大されるため、遠隔攻撃に関連して第1の効果を発生させる場合でも、プレイヤが有利になり過ぎず、ゲームのバランスを保つことができる。
【0009】
(第2の構成)
第2の構成では、上記第1の構成において、前記コンピュータにさらに、前記仮想空間内において、第1のノンプレイヤキャラクタを自動制御させてもよい。前記所定の指示は、前記プレイヤキャラクタと前記第1のノンプレイヤキャラクタとが所定の位置関係であるときに第3の操作入力が行われることであってもよい。
【0010】
上記によれば、第1のノンプレイヤキャラクタに関連付けて第1の効果を発生させることができる。
【0011】
(第3の構成)
第3の構成では、上記第2の構成において、前記判定領域は、前記第1のノンプレイヤキャラクタの位置に生成されてもよい。
【0012】
上記によれば、第1のノンプレイヤキャラクタの位置に判定領域を生成し、第1のノンプレイヤキャラクタと第1の効果を関連付けることができる。
【0013】
(第4の構成)
第4の構成では、上記第3の構成において、前記判定領域は、前記第1のノンプレイヤキャラクタの位置を中心として拡大されてもよい。
【0014】
上記によれば、第1のノンプレイヤキャラクタを中心に判定領域が拡大されるため、プレイヤに、自動制御される第1のノンプレイヤキャラクタの位置を意識させながらゲームを進めさせることができ、第1のノンプレイヤキャラクタの活用を促進することができる。
【0015】
(第5の構成)
第5の構成では、上記第1から第4の構成の何れかにおいて、前記コンピュータにさらに、前記第1の効果が発生された場合に、前記判定領域を消去させてもよい。
【0016】
上記によれば、第1の効果が発生された場合は、判定領域が消去されるため、第1の効果の連続的な発生を抑制することができ、ゲームのバランスを保つことができる。
【0017】
(第6の構成)
第6の構成では、上記第1から第5の構成の何れかにおいて、前記コンピュータにさらに、前記判定領域が生成されてから所定時間が経過した場合、又は、前記判定領域が所定の大きさまで拡大された場合、前記判定領域を消去させてもよい。
【0018】
上記によれば、判定領域が生成されてから所定時間が経過した場合、又は、判定領域が所定の大きさまで拡大された場合、判定領域が消去されるため、第1の効果を発生させることができる期間をある程度制限することができ、ゲームのバランスを保つことができる。
【0019】
(第7の構成)
第7の構成では、上記第5の構成又は第6の構成において、前記コンピュータにさらに、前記判定領域が消去された後、所定時間が経過するまでの間、前記判定領域の生成を制限してもよい。
【0020】
上記によれば、判定領域が消去された後、所定時間が経過するまでの間、判定領域の生成が制限されるため、例えば、短時間で連続的に第1の効果が発生することを抑制することができ、ゲームのバランスを保つことができる。
【0021】
(第8の構成)
第8の構成では、上記第1から第7の構成の何れかにおいて、前記コンピュータにさらに、前記判定領域の範囲を示す表示を行わせてもよい。
【0022】
上記によれば、判定領域の範囲を表示することができ、プレイヤが判定領域内を狙って遠隔攻撃を行いやすくすることができる。
【0023】
(第9の構成)
第9の構成では、上記第1から第8の構成の何れかにおいて、前記第1の効果は、前記遠隔攻撃が当たった場所に配置された敵オブジェクトにダメージを加える、又は、前記遠隔攻撃が当たった場所に配置された障害オブジェクトを破壊する効果であってもよい。
【0024】
上記によれば、第1の効果として、敵オブジェクトにダメージを与えたり、障害オブジェクトを破壊したりすることができる。
【0025】
(第10の構成)
第10の構成では、上記第2から第9の構成の何れかにおいて、前記コンピュータにさらに、前記仮想空間内において、第2のノンプレイヤキャラクタを自動的に移動させ、前記プレイヤキャラクタと前記第2のノンプレイヤキャラクタとが所定の位置関係である場合に、前記第3の操作入力に応じて、第2の効果を生じさせてもよい。
【0026】
上記によれば、複数のノンプレイヤキャラクタに関連して効果を発生させることができるゲームにおいて、第1のノンプレイヤキャラクタを指示した場合はすぐに効果が発生するのではなく、判定領域が拡大するまで第1の効果は発生しないため、ある程度時間をかけて遠隔攻撃で狙う位置を決定したり、時間をかけて狙いを定めたりすることができる。
【0027】
また、他の実施形態は、上記ゲームプログラムを実行する情報処理システムであってもよいし、情報処理装置であってもよいし、情報処理システムにおいて実行される情報処理方法であってもよい。
【発明の効果】
【0028】
本発明によれば、ゲームのバランスを保ちつつ、遠隔攻撃に関連した効果を発生させることができる。
【図面の簡単な説明】
【0029】
【
図1】本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図
【
図2】本体装置2の内部構成の一例を示すブロック図
【
図5】本実施形態のゲームが実行された場合にディスプレイ12又は据置型モニタに表示されるゲーム画像の一例を示す図
【
図6】プレイヤキャラクタ100が弓矢オブジェクトを装備しているときのゲーム画像の一例を示す図
【
図7】プレイヤキャラクタ100が矢オブジェクト101を発射したときのゲーム画像の一例を示す図
【
図8】プレイヤキャラクタ100が第1のNPC110に近づいたときのゲーム画像の一例を示す図
【
図9】
図8においてAボタンが押下された直後のゲーム画像の一例を示す図
【
図10】
図9に示す状態から所定時間が経過した後のゲーム画像の一例を示す図
【
図11】仮想空間を横から見た図であって判定領域の設定について説明するための図
【
図12】判定領域120が設定されているときに、プレイヤキャラクタ100が弓矢オブジェクトを用いて敵キャラクタ200に遠隔攻撃を行うときのゲーム画像の一例を示す図
【
図13】
図12に示す状態からプレイヤキャラクタ100が矢オブジェクト101を発射し、矢オブジェクト101が地面オブジェクトに当たったときのゲーム画像の一例を示す図
【
図14】
図13の後、プレイヤキャラクタ100が第1のNPC110に近づいたときのゲーム画像の一例を示す図
【
図15】ゲーム処理の実行中に本体装置2のメモリに記憶されるデータの一例を示す図
【
図16】本体装置2のプロセッサ81によって実行されるゲーム処理の一例を示すフローチャート
【
図17】ステップS102におけるプレイヤキャラクタの制御処理の一例を示すフローチャート
【
図18】ステップS105における判定領域設定処理の一例を示すフローチャート
【
図19】ステップS106におけるプレイヤキャラクタの攻撃アクション処理の一例を示すフローチャート
【発明を実施するための形態】
【0030】
(システム構成)
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
【0031】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。
図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0032】
左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0033】
本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0034】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0035】
図2は、本体装置2の内部構成の一例を示すブロック図である。
【0036】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0037】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0038】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0039】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0040】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。
【0041】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0042】
プロセッサ81は、左側端子17、右側端子21、および下側端子27に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。また、プロセッサ81は、クレードルと通信を行う場合、下側端子27を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置または本体装置2単体がクレードルに装着された場合、本体装置2は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0043】
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
【0044】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0045】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0046】
図3は、左コントローラ3の一例を示す六面図である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0047】
左コントローラ3は、アナログスティック32を備える。
図3に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
【0048】
左コントローラ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プログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0049】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0050】
図4は、右コントローラ4の一例を示す六面図である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0051】
右コントローラ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を備える。
【0052】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0053】
(ゲームの概要)
次に、本実施形態のゲームについて説明する。
図5は、本実施形態のゲームが実行された場合にディスプレイ12又は据置型モニタに表示されるゲーム画像の一例を示す図である。
【0054】
図5に示されるように、3次元の仮想空間(ゲーム空間)には、プレイヤキャラクタ100と敵キャラクタ200とが配置される。プレイヤキャラクタ100は、プレイヤによって操作されるキャラクタであり、例えば、左アナログスティック32に対する操作に応じて仮想空間を移動する。また、敵キャラクタ200は、プロセッサ81によって自動で制御される。
【0055】
プレイヤキャラクタ100は、プレイヤの指示に応じて攻撃アクションを行う。具体的には、プレイヤキャラクタ100は、ゲームの進行中に複数の武器オブジェクトを取得して所有することができる。プレイヤは、所有する複数の武器オブジェクトの中から何れかを選択し、プレイヤキャラクタ100に装備させる。プレイヤキャラクタ100は、プレイヤの操作入力に応じて、装備している武器オブジェクトを用いた攻撃アクションを行う。
【0056】
本実施形態のゲームでは、武器オブジェクトとして、遠隔攻撃を行うことが可能な弓矢オブジェクトがある。また、武器オブジェクトとして、近接攻撃を行うことが可能な剣オブジェクトがある。複数の武器オブジェクトのそれぞれは、予め異なる攻撃力を有している。攻撃力の大きな武器オブジェクトを用いて攻撃アクションが行われ、当該攻撃アクションが敵キャラクタ200に当たった場合、敵キャラクタ200には大きなダメージが加わる。敵キャラクタ200のダメージが所定値以上となった場合、敵キャラクタ200は倒れる。
【0057】
ここで、プレイヤキャラクタ100による弓矢オブジェクトを用いた攻撃について説明する。
図6は、プレイヤキャラクタ100が弓矢オブジェクトを装備しているときのゲーム画像の一例を示す図である。
図7は、プレイヤキャラクタ100が矢オブジェクト101を発射したときのゲーム画像の一例を示す図である。
【0058】
図6に示されるように、プレイヤキャラクタ100が弓矢オブジェクトを装備している場合において、プレイヤによって所定の操作入力(例えばZRボタンの押下)が行われた場合、プレイヤキャラクタ100は、矢オブジェクト101を引いて構える準備状態となる。この準備状態では、照準画像102が表示される。照準画像102は、矢オブジェクト101が飛んでいく目標を示す画像である。プレイヤは、例えば右アナログスティック52を用いて照準画像102を目標に合わせる。そして、発射指示(例えばZRボタンの押下)が行われると、矢オブジェクト101は、照準画像102が指示する仮想空間の位置に向かって発射される。
図6では、照準画像102は、敵キャラクタ200の手前の地面オブジェクト300上の位置を指示している。この状態で発射指示が行われた場合、
図7に示されるように、矢オブジェクト101は、照準画像102に向かって発射され、照準画像102が指示する地面オブジェクト300上の位置に当たる。この場合、敵キャラクタ200には矢オブジェクト101が当たっていないため、敵キャラクタ200にはダメージが加えられない。矢オブジェクト101が敵キャラクタ200に当たった場合は、当該敵キャラクタ200にダメージが加えられる。
【0059】
図5に戻り、仮想空間には第1のノンプレイヤキャラクタ(以下、「NPC」と表記する)110と第2のノンプレイヤキャラクタ(NPC)111とが配置される。第1のNPC110及び第2のNPC111は、プレイヤキャラクタ100の仲間のキャラクタであり、プロセッサ81によって自動で制御される。プレイヤキャラクタ100が仮想空間を移動すると、第1のNPC110及び第2のNPC111は、プレイヤキャラクタ100に追従して移動する。例えば、第1のNPC110及び第2のNPC111は、プレイヤキャラクタ100から所定の距離以上離れないように仮想空間内を自動で移動する。また、第1のNPC110及び第2のNPC111は、プレイヤキャラクタ100を補助する。例えば、第1のNPC110及び第2のNPC111は、自動で敵キャラクタ200と格闘し、敵キャラクタ200を倒す。
【0060】
第1のNPC110及び第2のNPC111には、それぞれ、特有の効果が関連付けられている。プレイヤキャラクタ100が第1のNPC110又は第2のNPC111に近づいた場合、第1のNPC110又は第2のNPC111に関連付けられた効果が発動可能となる。
【0061】
図8は、プレイヤキャラクタ100が第1のNPC110に近づいたときのゲーム画像の一例を示す図である。第1のNPC110及び第2のNPC111は、例えば、プレイヤキャラクタ100の移動に応じて自動で移動するが、プレイヤキャラクタ100が停止すると、第1のNPC110及び第2のNPC111も停止する。この状態でプレイヤは、左アナログスティック32を用いてプレイヤキャラクタ100を第1のNPC110に向かって移動させる。
図8に示されるように、プレイヤキャラクタ100が第1のNPC110に近づいた場合(プレイヤキャラクタ100と第1のNPC110との距離が所定値以下になった場合)、例えば、Aボタンの押下を促すボタン画像400が表示される。
【0062】
図9は、
図8においてAボタンが押下された直後のゲーム画像の一例を示す図である。
図10は、
図9に示す状態から所定時間が経過した後のゲーム画像の一例を示す図である。
図11は、仮想空間を横から見た図であって判定領域の設定について説明するための図である。
【0063】
図9に示されるように、プレイヤキャラクタ100が第1のNPC110に近づいてAボタンが押下された場合、第1のNPC110を中心とした判定領域120が生成される。
【0064】
具体的には、
図11に示されるように、Aボタンの押下に応じて、第1のNPC110を中心として仮想空間に球形の判定領域120が設定される。なお、
図9及び
図10では、球形の判定領域120の上半分のみが表示されている。例えば、判定領域120は、画面に半透明で表示される。なお、判定領域120は、画面に表示されず、内部的に設定される領域であってもよい。例えば、
図11では、地面オブジェクト300上に第1のNPC110と岩オブジェクトとが配置されている。地面オブジェクト300の表面のうち、判定領域120に含まれる部分(図の太線部分)が、判定領域120に含まれない部分とは異なる特定表示態様に変化する。また、岩オブジェクトの表面のうち、判定領域120に含まれる部分(図の太線で囲まれる部分)が、判定領域120に含まれない部分とは異なる特定表示態様に変化する。
図9では、平面である地面オブジェクト300の一部が判定領域120に含まれるため、地面オブジェクト300上の円形の領域が、他の領域とは異なる特定表示態様で表示されている。時間経過に応じて、判定領域120が拡大される。例えば、判定領域120の半径を一定の速度で長くすることにより、判定領域120が拡大される。一定時間(例えば、10秒)が経過すると判定領域120の拡大が停止する。
【0065】
仮想空間に配置された様々なオブジェクトが判定領域120に含まれる場合、当該判定領域120に含まれる様々なオブジェクトの表面の表示態様が、特定表示態様に変化する。例えば、敵キャラクタ200の一部または全部が判定領域120に含まれる場合、当該判定領域120に含まれる敵キャラクタ200の表面が、特定表示態様に変化する。以下では、球形の判定領域120に含まれるオブジェクトの部分(特定表示態様に変化した部分)を、「特定表示領域121」と表記する。
【0066】
第1のNPC110が移動した場合は、判定領域120も移動する。具体的には、プレイヤキャラクタ100が第1のNPC110に近づいてAボタンが押下された後、第1のNPC110の位置に判定領域120の中心が設定され、その後、プレイヤキャラクタ100が移動を開始すると、第1のNPC110もプレイヤキャラクタ100に追従して移動する。第1のNPC110の移動に応じて、判定領域120の中心も移動する。すなわち、第1のNPC110が移動する場合でも、判定領域120の中心は、第1のNPC110の位置に設定される。判定領域120が拡大中も、判定領域120の拡大が停止した後も、判定領域120は第1のNPC110の移動に応じて移動する。
【0067】
図12は、判定領域120が設定されているときに、プレイヤキャラクタ100が弓矢オブジェクトを用いて敵キャラクタ200に遠隔攻撃を行うときのゲーム画像の一例を示す図である。
図13は、
図12に示す状態からプレイヤキャラクタ100が矢オブジェクト101を発射し、矢オブジェクト101が地面オブジェクトに当たったときのゲーム画像の一例を示す図である。なお、
図12及び
図13では、球形の判定領域120自体については表示が省略されており、判定領域120に含まれるオブジェクトの部分(特定表示領域121)が表示されている。
【0068】
プレイヤキャラクタ100が弓矢オブジェクトを装備しているときに、プレイヤによって所定の操作入力(例えばZRボタンの押下)が行われた場合、プレイヤキャラクタ100は、矢オブジェクト101を引いて構える準備状態となる。
図12に示されるように、敵キャラクタ200の手前側の地面オブジェクト300上の位置であって、判定領域120に含まれる位置に、照準画像102が表示されている。
【0069】
このとき、プレイヤによって発射指示が行われた場合、
図13に示されるように、照準画像102が指示する地面オブジェクト300上の位置に、矢オブジェクト101が当たるとともに、当該矢オブジェクト101が当たった位置に雷130が落ちる。雷130は、電気の特性を有しており、周囲に影響を及ぼす。このため、矢オブジェクト101が当たった位置(雷130が落ちた位置)が、敵キャラクタ200の位置と異なっていても、敵キャラクタ200にはダメージが加えられる。雷130によって敵キャラクタ200に加わるダメージの大きさは、敵キャラクタ200が有する特性によって異なってもよい。例えば、敵キャラクタ200には、電気に弱い特性を有するキャラクタや電気に強い特性を有するキャラクタがある。電気に弱い敵キャラクタ200は、雷130によってより大きなダメージを受ける。また、雷130が落ちた位置からの距離に応じて、敵キャラクタ200に加わるダメージの大きさが異なる。例えば、雷130が落ちた位置からの距離が短いほど、敵キャラクタ200のダメージは大きくなる。
【0070】
判定領域120に含まれるオブジェクト(ここでは地面オブジェクト300)に矢オブジェクト101が当たり、当該矢オブジェクト101が当たった位置に雷130が落ちた場合、判定領域120が消去され、当該判定領域120に含まれる各オブジェクトは通常の表示態様に戻る。また、判定領域120が生成された後、所定の有効期間が経過した場合、判定領域120は消去される。例えば、判定領域120が生成された時点(
図8でAボタンが押下された時点)から所定の有効期間の経過後に、判定領域120が消去されてもよい。また、判定領域120の拡大が停止された時点から所定の有効期間の経過後に、判定領域120が消去されてもよい。
【0071】
なお、仮想空間内に判定領域120が設定されていても、判定領域120に含まれないオブジェクトの表面に矢オブジェクト101が当たった場合は、上記雷130は発生せず、
図7で示したように通常の矢オブジェクト101が当たったときと同じ効果が発生する。この場合、判定領域120は消去されず、上記所定の有効期間が経過するまで判定領域120は維持される。
【0072】
図14は、
図13の後、プレイヤキャラクタ100が第1のNPC110に近づいたときのゲーム画像の一例を示す図である。
【0073】
雷130が落ちた後、所定の制限期間(例えば10秒)が経過するまで、上記判定領域120の生成が制限される。具体的には、
図14に示されるように、雷130が落ちた後、プレイヤキャラクタ100が第1のNPC110の近傍に移動しても、ボタン画像400が、Aボタンの押下が有効でないことを示す表示態様になる。例えば、ボタン画像400にゲージが表示され、時間経過に応じてゲージが伸びる。所定の制限期間内でも、プレイヤキャラクタ100は矢オブジェクト101を発射することができるが、判定領域120は生成されないため、矢オブジェクト101が当たった位置に雷130は落ちない。所定の制限期間が経過すると、ボタン画像400のゲージが端まで伸び、Aボタンの押下が有効となる。そして、Aボタンが押下された場合、第1のNPC110を中心とした判定領域120が再び生成され、当該判定領域120が時間経過に応じて拡大される。
【0074】
なお、雷130には、敵キャラクタ200への攻撃効果に加えて、仮想空間に配置された所定のオブジェクトを破壊する効果を有する。例えば、仮想空間にプレイヤキャラクタ100にとって障害となる岩オブジェクトが配置されている場合において、当該岩オブジェクトの位置またはその周辺に雷130が落ちた場合、当該岩オブジェクトが破壊される。例えば、プレイヤキャラクタ100は、所有する所定のアイテム(例えばハンマーアイテム)を用いても、仮想空間に配置された岩オブジェクトを破壊することができる。所定のアイテムを用いる場合よりも、雷130を用いた方が、岩オブジェクトを容易に破壊することができてもよい。例えば、所定のアイテムが岩オブジェクトに当たった場合よりも、雷130が岩オブジェクトに当たった場合の方が、岩オブジェクトの破壊範囲が大きくてもよい。また、雷130が岩オブジェクトに当たった場合は1回で岩オブジェクトが破壊されるが、所定のアイテムが岩オブジェクトに当たった場合は複数回で岩オブジェクトが破壊されてもよい。プレイヤは、岩オブジェクトの他にも、プレイヤキャラクタ100にとって障害となる任意のオブジェクトを、雷130を落とすことで破壊することができる。
【0075】
また、雷130には、周囲を発火させる効果を有する。例えば、雷130が落ちた位置の周囲に発火し易いオブジェクト(例えば草や木)がある場合は、当該オブジェクトが発火される。
【0076】
また、図示は省略するが、プレイヤキャラクタ100が第2のNPC111に近づいた場合、
図8で示したように、Aボタンの押下を促すボタン画像400が表示される。この状態でAボタンが押下された場合は、第2のNPC111に関連付けられた第2の効果が生じる。「第2の効果が生じる」とは、上記雷130が落ちるときに発生する効果(第1の効果)とは異なる効果が生じることである。例えば、第2の効果は、プレイヤキャラクタ100が所定の攻撃を発することが可能な状態になることであってもよいし、第2のNPC111が所定の攻撃を行うことが可能な状態になることであってもよいし、特定の状況からプレイヤキャラクタ100が保護される状態になることであってもよい。
【0077】
以上のように、本実施形態のゲームでは、プレイヤキャラクタ100が、プレイヤの操作入力に基づいて仮想空間を移動したり、プレイヤの操作入力に基づいて、例えば弓矢オブジェクトを用いた遠隔攻撃を行ったりする。プレイヤによって所定の指示が行われたことに応じて、仮想空間内に判定領域120が生成され、当該判定領域120が時間経過に応じて拡大される。本実施形態では、所定の指示は、プレイヤキャラクタ100が第1のNPC110の近くに移動し、かつ、Aボタンが押下されることである。プレイヤキャラクタ100の遠隔攻撃が、判定領域120内においてオブジェクトに当たった場合、当該遠隔攻撃が当たった場所(矢オブジェクト101が当たった位置を含む所定範囲)に第1の効果(雷130の効果)が発生する。
【0078】
判定領域120が生成されてから遠隔攻撃に応じて第1の効果が発生するため、プレイヤは、判定領域120を生成させた後、遠隔攻撃の狙いを定めたり、移動して狙いを定めたりすることができる。
【0079】
また、判定領域120が時間経過に応じて拡大されるため、プレイヤが遠い位置を狙って第1の効果を発生させる場合には、判定領域120が拡大されるまで待つ必要がある。これにより、遠隔攻撃によってプレイヤが有利になり過ぎることを防止することができ、ゲームのバランスを保つことができる。すなわち、プレイヤキャラクタ100が遠隔攻撃を行う場合、敵キャラクタ200から離れた位置で敵キャラクタ200にダメージを加えることができるため、プレイヤにとって有利な攻撃方法である。そのような遠隔攻撃に加えて第1の効果が即座に発生する場合、プレイヤにとって有利になり過ぎる可能性がある。本実施形態では、所定の指示に応じて判定領域120が生成されて、時間経過に応じて判定領域120が拡大されるため、プレイヤにとって有利になり過ぎないようにして、ゲームのバランスを保つことができる。
【0080】
また、本実施形態では、雷130が発生した後、判定領域120が消去されるとともに、判定領域120が生成されない所定の制限期間が設けられる。このため、短時間で連続して雷130を発生させないようにして、プレイヤが有利になり過ぎることを抑制することができる。
【0081】
また、プレイヤキャラクタ100が第1のNPC110の近くに移動し、Aボタンが押下されたことに応じて、第1のNPC110に関連した判定領域120が生成される。これにより、プレイヤは、自動制御される第1のNPC110を積極的に活用してゲームを進めることができる。第1のNPC110の近くに移動することで、遠隔攻撃に加えて第1の効果を発生させることができるため、第1のNPC110の利用を促進することができる。
【0082】
なお、本実施形態では、判定領域120が生成されていなくても、例えば、火や電気を付加した特殊な矢オブジェクトを発射させ、通常の矢オブジェクトの攻撃効果に加えて、火や電気の効果を発生させることが可能である。上記第1のNPC110に関連した雷130の効果は、電気を付加した矢オブジェクトの効果よりも高い。例えば、第1のNPC110に関連した雷130の攻撃力や破壊力は、電気を付加した矢オブジェクトの攻撃力や破壊力よりも高い。
【0083】
(ゲーム処理に用いられるデータの説明)
次に、ゲーム処理の詳細について説明する。まず、ゲーム処理に用いられるデータについて説明する。
図15は、ゲーム処理の実行中に本体装置2のメモリに記憶されるデータの一例を示す図である。
【0084】
図15に示されるように、本体装置2のメモリ(DRAM85、フラッシュメモリ84、又は外部記憶媒体)には、ゲームプログラムと、操作データと、プレイヤキャラクタデータと、第1NPCデータと、第2NPCデータと、敵キャラクタデータと、オブジェクトデータと、判定領域データとが記憶される。これらの他にも、メモリには、様々なデータが記憶される。
【0085】
ゲームプログラムは、後述するゲーム処理を実行するためのプログラムである。ゲームプログラムは、スロット23に装着される外部記憶媒体又はフラッシュメモリ84に予め記憶されており、ゲームの実行時にDRAM85に読み込まれる。なお、ゲームプログラムは、ネットワーク(例えばインターネット)を介して他の装置から取得されてもよい。
【0086】
操作データは、左コントローラ3及び右コントローラ4から取得された操作に関するデータである。操作データには、例えば、左右のアナログスティックに対する操作に応じたデータ、各ボタンの操作に応じたデータが含まれる。例えば、操作データは、左コントローラ3及び右コントローラ4から所定の時間間隔(例えば、1/200秒間隔)で本体装置2に送信され、メモリに記憶される。
【0087】
プレイヤキャラクタデータは、プレイヤキャラクタ100に関するデータであり、プレイヤキャラクタ100の仮想空間における位置、向き、移動方向、移動速度等に関するデータを含む。また、プレイヤキャラクタデータは、プレイヤキャラクタ100のライフ値を含む。また、プレイヤキャラクタデータは、プレイヤキャラクタ100の形状等外観に関するデータを含む。また、プレイヤキャラクタデータは、プレイヤキャラクタ100が所有しているアイテム(武器オブジェクト、防具オブジェクト、その他ゲームに用いられるアイテム等)を表す所有アイテムデータを含む。また、プレイヤキャラクタデータは、プレイヤキャラクタ100が装備している武器オブジェクトを表す装備データを含む。
【0088】
第1NPCデータは、上記第1のNPC110に関するデータである。第1NPCデータは、第1のNPC110の仮想空間における位置、向き、移動方向、移動速度等に関するデータを含む。また、第1NPCデータは、第1のNPC110の形状等の外観を表すデータと、属性データとを含む。
【0089】
また、第2NPCデータは、上記第2のNPC111に関するデータである。第2NPCデータは、第2のNPC111の仮想空間における位置、向き、移動方向、移動速度等に関するデータを含む。また、第2NPCデータは、第2のNPC111の形状等の外観を表すデータと、属性データとを含む。さらに、仮想空間には、第1のNPC110及び第2のNPC111に加えて、第3のNPC、第4のNPCが配置されてもよい。この場合、第3のNPCに関するデータ、第4のNPCに関するデータがメモリに記憶される。
【0090】
敵キャラクタデータは、仮想空間に配置される複数の敵キャラクタ200に関するデータである。敵キャラクタデータは、各敵キャラクタ200の仮想空間における位置、向き、移動方向、移動速度等に関するデータを含む。また、敵キャラクタデータは、各敵キャラクタ200のライフ値を含む。また、敵キャラクタデータは、各敵キャラクタ200の形状等の外観に関するデータや属性に関するデータを含む。
【0091】
オブジェクトデータは、仮想空間に配置されたオブジェクト(例えば、地面オブジェクト、プレイヤキャラクタ100にとって障害となる障害オブジェクト等)に関するデータである。オブジェクトデータは、各オブジェクトの仮想空間における位置に関するデータを含む。また、オブジェクトデータは、各オブジェクトの形状等の外観に関するデータと、属性に関するデータとを含む。
【0092】
判定領域データは、上記判定領域120に関するデータである。具体的には、判定領域データは、判定領域120が設定されているか否かを示すデータと、判定領域120の位置及び半径に関するデータとを含む。また、判定領域データは、判定領域120が生成されてからの経過時間に関するデータを含む。
【0093】
(本体装置2におけるゲーム処理の詳細)
次に、本体装置2において行われるゲーム処理の詳細について説明する。
図16は、本体装置2のプロセッサ81によって実行されるゲーム処理の一例を示すフローチャートである。
【0094】
図16に示されるように、プロセッサ81は、まず、初期処理を実行する(ステップS100)。具体的には、プロセッサ81は、3次元の仮想空間を設定し、仮想空間にプレイヤキャラクタ100、敵キャラクタ200、第1のNPC110、第2のNPC111、仮想カメラ、その他のオブジェクトを配置する。プロセッサ81は初期処理を実行した後、次のステップS101~ステップS108の処理を所定のフレーム時間間隔(例えば、1/60秒間隔)で繰り返し実行する。
【0095】
ステップS101において、プロセッサ81は、コントローラからの操作データを取得する。操作データは、左コントローラ3の各ボタン、アナログスティック、右コントローラ4の各ボタン、アナログスティック等の操作状態に関するデータを含む。ステップS101では、プロセッサ81は、各コントローラから送信されてメモリに記憶された操作データを取得する。
【0096】
次に、プロセッサ81は、プレイヤキャラクタの制御処理を行う(ステップS102)。ここでは、例えば、操作データに基づいてプレイヤキャラクタ100を仮想空間内で移動させる処理が行われる。また、ステップS102では、プレイヤキャラクタの攻撃アクションに関する処理が行われる。ステップS102におけるプレイヤキャラクタの制御処理の詳細については後述する。
【0097】
次に、プロセッサ81は、NPC制御処理を行う(ステップS103)。ここでは、プロセッサ81は、所定のアルゴリズムに従って第1のNPC110及び第2のNPC111を仮想空間内で移動させたり、仮想空間内で所定のアクションを行わせたりする。例えば、プロセッサ81は、第1のNPC110がプレイヤキャラクタ100に追従するように、第1のNPC110の位置を自動で制御する。プロセッサ81は、プレイヤキャラクタ100が停止した場合、第1のNPC110を停止させる。また、プロセッサ81は、第1のNPC110にアクションを行わせる。例えば、プロセッサ81は、アクションとして、第1のNPC110が敵キャラクタ200と格闘するように制御する。なお、プロセッサ81は、仮想空間内に判定領域120が設定されているか否かに関わらず、第1のNPC110を自動で制御する。プロセッサ81は、同様に、第2のNPC111の移動及びアクションを制御する。これらの制御に基づいて、プロセッサ81は、1フレーム分の移動量でNPCを移動させたり、アクションに基づいたNPCのアニメーションを1フレーム分進行させる。
【0098】
次に、プロセッサ81は、敵キャラクタ制御処理を行う(ステップS104)。具体的には、プロセッサ81は、所定のアルゴリズムに従って、敵キャラクタ200を仮想空間内で移動させたり、仮想空間内に出現させたりする。また、プロセッサ81は、所定のアルゴリズムに従って、敵キャラクタ200にプレイヤキャラクタ100への攻撃アクションを行わせる。例えば、敵キャラクタ200の攻撃アクションがプレイヤキャラクタ100に当たった場合、プロセッサ81は、プレイヤキャラクタ100のライフ値を減少させる。
【0099】
次に、プロセッサ81は、判定領域設定処理を行う(ステップS105)。ここでは、仮想空間に判定領域120が設定されている場合、プロセッサ81は、時間経過に応じて判定領域120を拡大させる。ステップS105の判定領域設定処理の詳細については後述する。
【0100】
次に、プロセッサ81は、プレイヤキャラクタの攻撃アクション処理を行う(ステップS106)。ここでは、プロセッサ81は、操作データに基づいて、プレイヤキャラクタ100に武器オブジェクトを装備させたり、武器オブジェクトを用いて攻撃アクションを行わせたりする。例えば、プレイヤキャラクタ100が弓矢オブジェクトを装備している場合、プロセッサ81は、操作データに基づいて、矢オブジェクト101を発射する。プレイヤキャラクタの攻撃アクション処理の詳細については後述する。
【0101】
次に、プロセッサ81は、出力処理を行う(ステップS108)。具体的には、プロセッサ81は上記ステップS102~ステップS107の処理の結果に応じた仮想空間の画像を仮想カメラを用いて生成し、当該生成した画像を表示装置に出力する。また、プロセッサ81は、画像の生成及び出力とともに音声を出力する。これにより、表示装置においてゲーム画像が表示されるとともに、スピーカからゲーム処理に応じた音声が出力される。
【0102】
次に、プロセッサ81は、ゲーム処理を終了するか否かを判定する(ステップS108)。例えば、プレイヤによってゲームの終了が指示された場合、プロセッサ81は、ゲーム処理を終了すると判定し(ステップS108:YES)、
図16に示すゲーム処理を終了する。プロセッサ81は、ゲーム処理を終了しないと判定した場合(ステップS108:NO)、ステップS101の処理を再び実行する。以上で、
図16に示すゲーム処理の説明を終了する。
【0103】
(プレイヤキャラクタの制御処理)
次に、上記ステップS102におけるプレイヤキャラクタの制御処理の詳細について説明する。
図17は、ステップS102におけるプレイヤキャラクタの制御処理の一例を示すフローチャートである。
【0104】
図17に示されるように、プロセッサ81は、まず、操作データに基づいてプレイヤキャラクタ100を仮想空間内で移動させる(ステップS120)。ここでは、プロセッサ81は、例えば、左アナログスティック32に対する操作入力に基づいて、1フレーム分の移動量でプレイヤキャラクタ100を仮想空間において移動させる。
【0105】
次に、プロセッサ81は、後述するプレイヤキャラクタの攻撃アクション処理において、攻撃アクションが開始され、当該攻撃アクションの実行中か否かを判定する(ステップS121)。例えば、攻撃アクション毎に予め実行時間が定められており、攻撃アクションが開始されてから予め定められた実行時間内か否かが判定される。
【0106】
攻撃アクションの実行中である場合(ステップS121:YES)、プロセッサ81は、実行中の攻撃アクションのアニメーションを1フレーム分進行させる(ステップS122)。ステップS122の処理を実行した場合、プロセッサ81は、
図17に示す処理を終了する。
【0107】
攻撃アクションの実行中でない場合(ステップS121:NO)、プロセッサ81は、仮想空間内に判定領域120が設定されているか否かを判定する(ステップS123)。具体的には、プロセッサ81は、判定領域データを参照して、現在、判定領域120が設定されているか否かを判定する。
【0108】
判定領域120が設定されていない場合(ステップS123:NO)、プロセッサ81は、プレイヤキャラクタ100と第1のNPC110とが近いことを示す所定の位置関係か否かを判定する(ステップS124)。具体的には、プロセッサ81は、プレイヤキャラクタ100と第1のNPC110との距離が所定の閾値未満か否かを判定する。
【0109】
プレイヤキャラクタ100と第1のNPC110とが所定の位置関係であると判定した場合(ステップS124:YES)、プロセッサ81は、所定の制限期間内か否かを判定する(ステップS125)。所定の制限期間は、後述するステップS170で雷130が発生されたことに応じて設定される。所定の制限期間は、雷130が発生されてから一定時間(例えば10秒)が経過するまでの期間であってもよい。なお、判定領域120が生成されてから、雷130が発生されずに所定の有効期間が経過したことによって判定領域120が消去された場合も(後述するステップS147が行われた場合)、所定の制限期間が設定されてもよい。逆に、判定領域120が生成されてから、雷130が発生されずに所定の有効期間が経過したことによって判定領域120が消去された場合は、所定の制限期間は設定されなくてもよい。
【0110】
所定の制限期間内ではない場合(ステップS125:NO)、プロセッサ81は、操作データに基づいて、Aボタンが押下されたか否かを判定する(ステップS126)。
【0111】
Aボタンが押下された場合(ステップS126:YES)、プロセッサ81は、仮想空間内に判定領域120を生成する(ステップS127)。具体的には、プロセッサ81は、第1のNPC110の位置に判定領域120の中心を設定し、判定領域120の半径を初期値に設定する。また、プロセッサ81は、判定領域データに、現在、判定領域120が設定されていることを示すデータを格納する。
【0112】
ステップS123でYESと判定した場合、ステップS125でYESと判定した場合、ステップS126でNOと判定した場合、又はステップS127の処理を実行した場合、プロセッサ81は、
図17に示す処理を終了する。
【0113】
一方、プレイヤキャラクタ100と第1のNPC110とが所定の位置関係でないと判定した場合(ステップS124:NO)、プロセッサ81は、プレイヤキャラクタ100と第2のNPC111とが近いことを示す所定の位置関係か否かを判定する(ステップS128)。例えば、プロセッサ81は、プレイヤキャラクタ100と第2のNPC111との距離が所定の閾値未満か否かを判定する。
【0114】
プレイヤキャラクタ100と第2のNPC111とが所定の位置関係であると判定した場合(ステップS128:YES)、プロセッサ81は、所定の制限期間内か否かを判定する(ステップS129)。このステップS129の所定の制限期間は、第2のNPC111に関連付けられた第2の効果が発動されてから一定時間が経過するまでの期間であってもよい。
【0115】
所定の制限期間内ではない場合(ステップS129:NO)、プロセッサ81は、操作データに基づいて、Aボタンが押下されたか否かを判定する(ステップS130)。
【0116】
Aボタンが押下された場合(ステップS130:YES)、プロセッサ81は、第2のNPC111に関連付けられた第2の効果を発動させる(ステップS131)。第2の効果は、上記第1の効果とは異なる効果である。第2の効果は、第2のNPC111の特性に関連する効果であってもよい。
【0117】
ステップS128でNOと判定した場合、ステップS129でYESと判定した場合、ステップS130でNOと判定した場合、又は、ステップS131の処理を実行した場合、プロセッサ81は、
図17に示す処理を終了する。
【0118】
(判定領域設定処理)
次に、上記ステップS105における判定領域設定処理の詳細について説明する。
図18は、ステップS105における判定領域設定処理の一例を示すフローチャートである。
【0119】
プロセッサ81は、まず、判定領域120が設定されているか否かを判定する(ステップS140)。具体的には、プロセッサ81は、判定領域データを参照して、現在、判定領域120が設定されているか否かを判定する。
【0120】
判定領域120が設定されている場合(ステップS140:YES)、プロセッサ81は、所定の有効期間が経過したか否かを判定する(ステップS141)。例えば、プロセッサ81は、ステップS127で判定領域120が生成されてから一定時間(例えば10秒)が経過したか否かを判定する。
【0121】
判定領域120が生成されてから所定の有効期間が経過していない場合(ステップS141:NO)、プロセッサ81は、第1のNPC110の位置に応じて判定領域120の中心位置を設定する(ステップS142)。ここでは、第1のNPC110の位置に、判定領域120の中心位置が設定される。例えば、ステップS127で判定領域120が生成された時点から第1のNPC110の位置が変化している場合、判定領域120の中心位置も変化される。
【0122】
次に、プロセッサ81は、判定領域120の半径が最大値か否かを判定する(ステップS143)。なお、プロセッサ81は、ステップS127で判定領域120が生成された時点から所定時間(例えば5秒)が経過したか否かを判定してもよい。
【0123】
判定領域120の半径が最大値ではないと判定した場合(ステップS143:NO)、プロセッサ81は、ステップS127で判定領域120が生成された時点からの経過時間に応じて、判定領域120の半径を更新する(ステップS144)。例えば、プロセッサ81は、一定の速さで判定領域120が拡大するように、判定領域120の半径を所定の長さだけ大きくする。これにより、判定領域120が時間経過に応じて拡大される。なお、判定領域120が拡大する速さは一定でなくてもよい。
【0124】
ステップS143でYESと判定した場合、又は、ステップS144の処理を実行した場合、プロセッサ81は、判定領域120に含まれるオブジェクトの部分を算出する(ステップS145)。具体的には、プロセッサ81は、仮想空間に配置された各オブジェクト(地面オブジェクト、敵キャラクタ200、プレイヤキャラクタ100の障害となる障害オブジェクト等)の表面のうち、判定領域120の内側に含まれる部分を算出する。
【0125】
次に、プロセッサ81は、ステップS145で算出した判定領域120に含まれるオブジェクトの部分を特定表示態様に変化させる(ステップS146)。これにより、各オブジェクトの表面のうち、判定領域120の内側に含まれる部分が特定表示態様(例えば、判定領域120が設定されていることを示す色)に変化する。
【0126】
一方、判定領域120が生成されてから所定の有効期間が経過した場合(ステップS141:YES)、プロセッサ81は、判定領域120を消去する(ステップS147)。具体的には、プロセッサ81は、判定領域120の半径を「0」に設定するとともに、判定領域データに、判定領域120が設定されていないことを示すデータを格納する。これにより、各オブジェクトの表示態様も特定表示態様から通常の態様に戻る。
【0127】
ステップS140でNOと判定した場合、ステップS146の処理を実行した場合、又は、ステップS147の処理を実行した場合、プロセッサ81は、
図18に示す処理を終了する。
【0128】
(プレイヤキャラクタの攻撃アクション処理)
次に、上記ステップS106におけるプレイヤキャラクタの攻撃アクション処理の詳細について説明する。
図19は、ステップS106におけるプレイヤキャラクタの攻撃アクション処理の一例を示すフローチャートである。
【0129】
プロセッサ81は、まず、武器選択処理を行う(ステップS160)。ここでは、プロセッサ81は、操作データに基づいてプレイヤによって武器の選択操作が行われたか否かを判定する。プレイヤによって武器の選択操作が行われたと判定した場合、プロセッサ81は、操作データに基づいてプレイヤキャラクタ100が装備する武器オブジェクトを選択し、当該選択した武器オブジェクトを示すデータを装備データとして格納する。これにより、プレイヤキャラクタ100は、所有する複数の武器オブジェクトのうちの何れかを装備する。
【0130】
次に、プロセッサ81は、プレイヤキャラクタ100が弓矢オブジェクトを装備中か否かを判定する(ステップS161)。
【0131】
プレイヤキャラクタ100が弓矢オブジェクトを装備中であると判定した場合(ステップS161:YES)、プロセッサ81は、照準設定処理を行う(ステップS162)。ここでは、プロセッサ81は、操作データに基づいて、照準画像102を表示するか否かを判定し、表示すると判定した場合は、照準画像102を画面に表示させる。例えば、ZRボタンが押下された場合、プロセッサ81は、照準画像102を画面に表示させる。また、プロセッサ81は、照準画像102の位置を、例えば右アナログスティック52に対する操作入力に応じて変化させる。
【0132】
次に、プロセッサ81は、操作データに基づいて、発射指示が行われたか否かを判定する(ステップS163)。具体的には、プロセッサ81は、照準画像102が表示された状態で、操作データに基づいて、発射指示が行われたか否かを判定する。
【0133】
発射指示が行われたと判定した場合(ステップS163:YES)、プロセッサ81は、矢オブジェクト101を仮想空間に発射する(ステップS164)。具体的には、プロセッサ81は、プレイヤキャラクタ100に矢オブジェクト101の発射に関する攻撃アクションを開始させるとともに、プレイヤキャラクタ100の位置から照準画像102によって指示される仮想空間の位置に向かって矢オブジェクト101を発射する。これにより、矢オブジェクト101が仮想空間を移動開始する。
【0134】
一方、弓矢オブジェクトを装備中でない場合(ステップS161:NO)、プロセッサ81は、装備中の武器オブジェクトに応じた攻撃アクションを開始する(ステップS165)。攻撃アクション開始から複数フレームの間、当該攻撃アクションに関するプレイヤキャラクタ100のアニメーションが行われる。例えば、プロセッサ81は、プレイヤキャラクタ100が剣オブジェクトを装備中である場合、操作データに基づいて、攻撃アクションの指示が行われたか否かを判定し、攻撃アクションの指示が行われた場合は、当該剣オブジェクトを用いた攻撃アクションをプレイヤキャラクタ100に開始させる。
【0135】
ステップS163でNOと判定した場合、ステップS164の処理を実行した場合、又は、ステップS165の処理を実行した場合、プロセッサ81は、矢オブジェクト101が仮想空間を移動中か否かを判定する(ステップS166)。ここでは、ステップS164において発射された矢オブジェクト101が仮想空間内を移動しているか否かが判定される。
【0136】
矢オブジェクト101が仮想空間を移動中である場合(ステップS166:YES)、プロセッサ81は、矢オブジェクト101の位置を更新する(ステップS167)。プロセッサ81は、矢オブジェクト101の現在の位置と、速度(発射方向及び速さ)とに基づいて、矢オブジェクト101の位置を更新する。
【0137】
次に、プロセッサ81は、矢オブジェクト101が仮想空間内の他のオブジェクトに当たったか否かを判定する(ステップS168)。具体的には、プロセッサ81は、矢オブジェクト101の位置と、仮想空間内の他のオブジェクトの位置及び形状とに基づいて、矢オブジェクト101と他のオブジェクトとの当たり判定を行う。例えば、プロセッサ81は、矢オブジェクト101が地面オブジェクト300に当たったか否か、敵キャラクタ200に当たったか否か、仮想空間内の障害オブジェクトに当たったか否かを判定する。
【0138】
矢オブジェクト101が仮想空間内のオブジェクトに当たったと判定した場合(ステップS168:YES)、プロセッサ81は、当該矢オブジェクト101が当たった位置が、判定領域120内か否かを判定する(ステップS169)。
【0139】
矢オブジェクト101が当たった位置が判定領域120内である場合(ステップS169:YES)、プロセッサ81は、矢オブジェクト101が当たった位置に雷130を落とす(ステップS170)。これにより、矢オブジェクト101が当たった位置を中心とした所定範囲に、雷130の効果が発生する。例えば、雷130が敵キャラクタ200に直接当たった場合、敵キャラクタ200に大きなダメージが加えられる。また、雷130が敵キャラクタ200に直接当たっていない場合でも、雷130が当たった位置から所定範囲内に敵キャラクタ200が存在する場合、当該敵キャラクタ200にダメージが加えられる。また、雷130が所定の障害オブジェクトに直接当たった場合、又は、雷130が当たった位置から所定範囲内に障害オブジェクトが存在する場合、障害オブジェクトが破壊(消去)される。
【0140】
ステップS169でNOと判定した場合、又は、ステップS170の処理を行った場合、プロセッサ81は、矢オブジェクト101が当たったことに応じた処理を行う(ステップS171)。例えば、矢オブジェクト101が敵キャラクタ200に当たった場合、敵キャラクタ200にダメージが加えられる。なお、矢オブジェクト101が当たったことによる敵キャラクタ200のダメージよりも、雷130が敵キャラクタ200に当たったことによる敵キャラクタ200のダメージの方が大きい。
【0141】
ステップS166でNOと判定した場合、ステップS168でNOと判定した場合、又は、ステップS171の処理を実行した場合、プロセッサ81は、
図19に示す処理を終了する。
【0142】
(変形例)
以上、本実施形態について説明したが、上記実施形態は単なる一例であり、例えば以下のような変形が加えられてもよい。
【0143】
例えば、上記実施形態では、プレイヤキャラクタ100が第1のNPC110の近くに移動し、Aボタンが押下されたことに応じて、第1のNPC110の位置に球形の判定領域120を設定した。判定領域120の形状は、球に限らず、直方体、立方体、楕円体等、任意の形状であってもよい。また、判定領域は、3次元形状に限らず、2次元形状であってもよい。例えば、判定領域は、仮想空間内のオブジェクトの表面に設定されてもよい。例えば、判定領域は、地形オブジェクト300上であって、第1のNPC110の位置に生成されてもよく、時間経過に応じて拡大されてもよい。
【0144】
また、上記実施形態では、判定領域120は、第1のNPC110の位置に設定され、第1のNPC110の移動に応じて移動するものとした。他の実施形態では、判定領域120は、第1のNPC110の位置に設定された後、移動しないように構成されてもよい。具体的には、上記ステップS127において、第1のNPC110の位置に判定領域120が生成されるとともに、当該位置が記憶される。その後、判定領域120は時間経過に応じて拡大されるが、判定領域120の中心は、第1のNPC110の位置が変化しても、ステップS127で生成された時点の位置に固定される。
【0145】
また、上記実施形態では、プレイヤキャラクタ100が遠隔攻撃の一例として矢オブジェクト101を仮想空間に飛ばす攻撃を行った。遠隔攻撃は、弓矢オブジェクトを用いた攻撃に限られない。例えば、遠隔攻撃として、銃を用いて弾丸を飛ばす攻撃、大砲の弾を飛ばす攻撃、石を投げる攻撃等が行われてもよい。
【0146】
また、上記実施形態では、判定領域120は、所定の有効期間が経過した場合に消去された。他の実施形態では、判定領域120は、所定の大きさまで拡大された場合に消去されてもよい。
【0147】
また、他の実施形態では、判定領域120は、生成されてから所定の有効期間が経過した場合、又は、所定の大きさまで拡大された場合に消去されなくてもよい。すなわち、判定領域120は雷130が発生するまで消去されなくてもよい。
【0148】
また、他の実施形態では、判定領域120は雷130が発生した後も消去されずに維持され、所定の有効期間が経過した場合、又は、所定の大きさまで拡大された場合に消去されてもよい。
【0149】
また、上記実施形態では、判定領域120内において遠隔攻撃が当たった場合に雷130を発生させ、その後、所定の制限期間が経過するまで、所定の指示(プレイヤキャラクタ100が第1のNPC110に近づき、かつ、Aボタンが押下されること)が行われても、判定領域120が生成されないようにした。他の実施形態では、雷130が発生した後、所定の制限期間が経過するまで、所定の指示ができないように制御されることで、判定領域120が生成されないようにしてもよい。例えば、雷130が発生した後、所定の制限期間が経過するまで、プレイヤキャラクタ100が第1のNPC110に近づくことができないように制御されてもよい。
【0150】
また、雷130が発生して判定領域120が消去された場合には、所定の制限期間が設定され、所定の有効期間の経過に応じて判定領域120が消去された場合には、所定の制限期間は設定されなくてもよい。すなわち、判定領域120が生成された後、雷130が発生せずに所定の有効期間が経過したことによって判定領域120が消去された場合には、所定の制限期間は設けられず、即座に判定領域120を再び生成可能としてもよい。
【0151】
また、雷130が発生して判定領域120が消去された後、第1の制限期間が経過するまで判定領域120の生成が制限され、所定の有効期間の経過に応じて判定領域120が消去された後、第1の制限期間よりも短い(又は長い)第2の制限期間が経過するまで、判定領域120の生成が制限されてもよい。
【0152】
また、上記実施形態では、所定の制限期間内は、判定領域120が生成されないようにした。他の実施形態では、所定の制限期間内は、判定領域120の生成に制限が加わってもよい。例えば、所定の制限期間内でも判定領域120は生成されるが、所定の制限期間内における判定領域120の拡大速度が、所定の制限期間外における拡大速度と比べて遅くてもよい。
【0153】
また、上記実施形態では、判定領域120内で遠隔攻撃が当たった場合に雷130を発生させた。判定領域120内で遠隔攻撃が当たった場合に発生する第1の効果は、単なる一例であり、他の任意の効果が発生されてもよい。
【0154】
また、上記実施形態では、判定領域120内で遠隔攻撃が当たった場合に、当該遠隔攻撃が当たった位置に、第1の効果(例えば、雷130)が発生した。第1の効果が発生する場所は、遠隔攻撃が当たった位置と厳密に同じ位置でなくてもよい。例えば、遠隔攻撃が当たった位置を含む所定範囲に、第1の効果が発生してもよい。
【0155】
また、上述した各処理が行われるための操作は単なる一例であり、他の操作に代替されてもよい。
【0156】
また、上記実施形態では、プレイヤがプレイヤキャラクタ100を制御し、プロセッサ81によって自動で制御される敵キャラクタ200を倒しながら進行するゲームを想定した。他の実施形態では、例えば、プレイヤ同士が自身のプレイヤキャラクタを制御しながら、互いに格闘するゲームが行われてもよい。この場合、各プレイヤキャラクタは、上述した第1のNPC110に近づいて判定領域120を生成し、判定領域120内に遠隔攻撃を当てることで第1の効果を発生させることができる。
【0157】
また、上記フローチャートで示した処理は単なる例示に過ぎず、処理の順番や内容等は適宜変更されてもよい。
【0158】
また、上記ゲームを行うハードウェアの構成は単なる一例であり、他の任意のハードウェアにおいて上記ゲーム処理が行われてもよい。例えば、パーソナルコンピュータ、タブレット端末、スマートフォン、インターネット上のサーバ等、任意の情報処理装置において上記ゲーム処理が実行されてもよい。また、上記ゲーム処理は、複数の装置を含む情報処理装置において実行されてもよい。
【0159】
また上記実施形態及びその変形例に係る構成は、互いに矛盾しない限り、任意に組み合わせることが可能である。また、上記は本発明の例示に過ぎず、上記以外にも種々の改良や変形が加えられてもよい。
【符号の説明】
【0160】
1 ゲームシステム
2 本体装置
3 左コントローラ
4 右コントローラ
81 プロセッサ
100 プレイヤキャラクタ
101 矢オブジェクト
102 照準画像
110 第1のNPC
111 第2のNPC
120 判定領域
130 雷
200 敵キャラクタ
300 地面オブジェクト