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