IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 任天堂株式会社の特許一覧

特開2022-124256情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022124256
(43)【公開日】2022-08-25
(54)【発明の名称】情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法
(51)【国際特許分類】
   A63F 13/55 20140101AFI20220818BHJP
   A63F 13/53 20140101ALI20220818BHJP
   A63F 13/52 20140101ALI20220818BHJP
【FI】
A63F13/55
A63F13/53
A63F13/52
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2021021912
(22)【出願日】2021-02-15
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】松本 健児
(72)【発明者】
【氏名】中川 慎哉
(57)【要約】      (修正有)
【課題】ユーザキャラクタの移動を促し、ユーザキャラクタの操作性を向上させることが可能な情報処理プログラムを提供する。
【解決手段】ユーザキャラクタが潜伏状態において第1方向に移動中に、ジャンプボタンの入力と、ユーザキャラクタを第2方向に移動させることとなる方向操作入力とが行われた場合、速度条件と第1方向条件とが満たされる場合は、ユーザキャラクタを即座に第2方向に方向転換させるとともに、ジャンプさせる。速度条件は、ユーザキャラクタが高速で移動中のときに満たされる。第1方向条件は、第1方向と第2方向との差が大きいときに満たされる。
【選択図】図17
【特許請求の範囲】
【請求項1】
仮想空間において、ユーザによって操作されるユーザキャラクタが対戦相手と対戦するゲームをコンピュータに実行させる情報処理プログラムであって、前記コンピュータを、
前記ユーザによる第1の操作入力に応じて、指定された前記仮想空間の領域を第1状態に変化させる領域変化手段と、
前記ユーザキャラクタが前記第1状態の領域に位置するとき、前記ユーザによる第2の操作入力が継続している間、前記ユーザキャラクタを、前記第1状態の領域において潜伏状態とするキャラクタ状態変化手段と、
前記ユーザキャラクタが前記潜伏状態になっているときに、前記ユーザによる方向操作入力に応じて、前記ユーザキャラクタを前記潜伏状態のまま前記第1状態の領域内において移動させる移動手段と、
前記ユーザキャラクタが前記潜伏状態になっているときに、前記ユーザによる第3の操作入力に応じて、前記ユーザキャラクタをジャンプさせることで前記潜伏状態から露出状態に変化させるジャンプ実行手段、として機能させ、
前記ジャンプ実行手段は、前記ユーザキャラクタが第1方向に移動しているときに前記第3の操作入力があった場合、
前記第3の操作入力があったときを基準とした所定期間における前記ユーザキャラクタの移動速度と移動方向とに基づいて、前記ユーザキャラクタの移動速度に関する速度条件と、前記第1方向とは異なる第2方向に前記ユーザキャラクタを移動させることとなる方向操作入力に関する方向条件と、のうちの少なくとも何れか一方が満たされない場合には、前記ユーザキャラクタの移動方向を前記第2方向へ方向転換させるとともに前記ジャンプを行わせる第1ジャンプ処理を実行し、
前記第3の操作入力があったときを基準とした所定期間における前記ユーザキャラクタの移動速度と移動方向とに基づいて、前記速度条件と前記方向条件とが満たされる場合には、前記ユーザキャラクタの移動方向を前記第2方向へ方向転換させるとともに前記ジャンプを行わせる第2ジャンプ処理を実行し、
前記速度条件は、前記所定期間における前記ユーザキャラクタの移動速度が速いときに満たされやすい条件であり、
前記方向条件は、前記第1方向と前記第2方向との差が大きいときに満たされやすい条件であり、
前記第2ジャンプ処理が実行される場合には前記第1ジャンプ処理が実行される場合よりも、前記ユーザキャラクタが前記第2方向への方向転換を完了するまでの時間が短い、又は、前記方向転換後の前記ユーザキャラクタの移動速度が速い、情報処理プログラム。
【請求項2】
前記仮想空間内において前記対戦相手である敵キャラクタを制御する敵キャラクタ制御手段と、
前記敵キャラクタに、前記ユーザオブジェクトが受けると前記ユーザオブジェクトに対してゲームにおいて不利な影響を与える攻撃を行わせる攻撃手段と、
前記第2ジャンプ処理が行われる場合、所定条件を満たすまでは前記ユーザオブジェクトが前記攻撃を受けたときに与えられる不利な影響を抑制する抑制手段、として前記コンピュータをさらに機能させる、請求項1に記載の情報処理プログラム。
【請求項3】
所定時間内に前記第2ジャンプ処理が連続して実行される場合は、前記第2ジャンプ処理が連続して実行されない場合よりも、前記方向転換後の前記ユーザキャラクタの移動速度が遅くなる、請求項2に記載の情報処理プログラム。
【請求項4】
前記第1方向と前記第2方向との差が90度である場合でも、前記方向条件は満たされる、請求項1から3の何れかに記載の情報処理プログラム。
【請求項5】
前記所定期間における前記ユーザキャラクタの移動速度が速いほど、前記方向条件が満たされる前記第1方向と前記第2方向との差が小さい、請求項1から4の何れかに記載の情報処理プログラム。
【請求項6】
前記第1ジャンプ処理が実行される場合、前記方向転換後の前記ユーザキャラクタの移動速度は、前記方向転換前の前記ユーザキャラクタの移動速度よりも遅く、
前記第2ジャンプ処理が実行される場合、前記方向転換後の前記ユーザキャラクタの移動速度は、前記方向転換前の前記ユーザキャラクタの移動速度に維持される、請求項1から5の何れかに記載の情報処理プログラム。
【請求項7】
前記第2ジャンプ処理が実行される場合は、前記第1ジャンプ処理が実行される場合よりも、前記ユーザキャラクタの前記第1方向の速度が速く減少する、請求項1から6の何れかに記載の情報処理プログラム。
【請求項8】
前記仮想空間内には地形オブジェクトの壁面が存在し、
前記移動手段は、前記ユーザキャラクタが前記第1状態の前記壁面上に位置するときに、前記方向操作入力に応じて、前記ユーザキャラクタを前記潜伏状態のまま前記第1状態の前記壁面上で移動させ、
前記ジャンプ実行手段は、前記ユーザキャラクタが前記第1状態の前記壁面上で移動しているときに前記第3の操作入力と、第2方向条件を満たす方向操作入力とがあった場合には、前記ユーザキャラクタを前記壁面から離れる方向にジャンプさせる第3ジャンプ処理を実行し、
前記抑制手段は、前記第3ジャンプ処理が行われる場合も、前記不利な影響を抑制する、請求項2に記載の情報処理プログラム。
【請求項9】
仮想空間において、ユーザによって操作されるユーザキャラクタが対戦相手と対戦するゲームを実行する情報処理装置であって、
前記ユーザによる第1の操作入力に応じて、指定された前記仮想空間の領域を第1状態に変化させる領域変化手段と、
前記ユーザキャラクタが前記第1状態の領域に位置するとき、前記ユーザによる第2の操作入力が継続している間、前記ユーザキャラクタを、前記第1状態の領域において潜伏状態とするキャラクタ状態変化手段と、
前記ユーザキャラクタが前記潜伏状態になっているときに、前記ユーザによる方向操作入力に応じて、前記ユーザキャラクタを前記潜伏状態のまま前記第1状態の領域内において移動させる移動手段と、
前記ユーザキャラクタが前記潜伏状態になっているときに、前記ユーザによる第3の操作入力に応じて、前記ユーザキャラクタをジャンプさせることで前記潜伏状態から露出状態に変化させるジャンプ実行手段と、を備え、
前記ジャンプ実行手段は、前記ユーザキャラクタが第1方向に移動しているときに前記第3の操作入力があった場合、
前記第3の操作入力があったときを基準とした所定期間における前記ユーザキャラクタの移動速度と移動方向とに基づいて、前記ユーザキャラクタの移動速度に関する速度条件と、前記第1方向とは異なる第2方向に前記ユーザキャラクタを移動させることとなる方向操作入力に関する方向条件と、のうちの少なくとも何れか一方が満たされない場合には、前記ユーザキャラクタの移動方向を前記第2方向へ方向転換させるとともに前記ジャンプを行わせる第1ジャンプ処理を実行し、
前記第3の操作入力があったときを基準とした所定期間における前記ユーザキャラクタの移動速度と移動方向とに基づいて、前記速度条件と前記方向条件とが満たされる場合には、前記ユーザキャラクタの移動方向を前記第2方向へ方向転換させるとともに前記ジャンプを行わせる第2ジャンプ処理を実行し、
前記速度条件は、前記所定期間における前記ユーザキャラクタの移動速度が速いときに満たされやすい条件であり、
前記方向条件は、前記第1方向と前記第2方向との差が大きいときに満たされやすい条件であり、
前記第2ジャンプ処理が実行される場合には前記第1ジャンプ処理が実行される場合よりも、前記ユーザキャラクタが前記第2方向への方向転換を完了するまでの時間が短い、又は、前記方向転換後の前記ユーザキャラクタの移動速度が速い、情報処理装置。
【請求項10】
仮想空間において、ユーザによって操作されるユーザキャラクタが対戦相手と対戦するゲームを実行する情報処理システムであって、
前記ユーザによる第1の操作入力に応じて、指定された前記仮想空間の領域を第1状態に変化させる領域変化手段と、
前記ユーザキャラクタが前記第1状態の領域に位置するとき、前記ユーザによる第2の操作入力が継続している間、前記ユーザキャラクタを、前記第1状態の領域において潜伏状態とするキャラクタ状態変化手段と、
前記ユーザキャラクタが前記潜伏状態になっているときに、前記ユーザによる方向操作入力に応じて、前記ユーザキャラクタを前記潜伏状態のまま前記第1状態の領域内において移動させる移動手段と、
前記ユーザキャラクタが前記潜伏状態になっているときに、前記ユーザによる第3の操作入力に応じて、前記ユーザキャラクタをジャンプさせることで前記潜伏状態から露出状態に変化させるジャンプ実行手段と、を備え、
前記ジャンプ実行手段は、前記ユーザキャラクタが第1方向に移動しているときに前記第3の操作入力があった場合、
前記第3の操作入力があったときを基準とした所定期間における前記ユーザキャラクタの移動速度と移動方向とに基づいて、前記ユーザキャラクタの移動速度に関する速度条件と、前記第1方向とは異なる第2方向に前記ユーザキャラクタを移動させることとなる方向操作入力に関する方向条件と、のうちの少なくとも何れか一方が満たされない場合には、前記ユーザキャラクタの移動方向を前記第2方向へ方向転換させるとともに前記ジャンプを行わせる第1ジャンプ処理を実行し、
前記第3の操作入力があったときを基準とした所定期間における前記ユーザキャラクタの移動速度と移動方向とに基づいて、前記速度条件と前記方向条件とが満たされる場合には、前記ユーザキャラクタの移動方向を前記第2方向へ方向転換させるとともに前記ジャンプを行わせる第2ジャンプ処理を実行し、
前記速度条件は、前記所定期間における前記ユーザキャラクタの移動速度が速いときに満たされやすい条件であり、
前記方向条件は、前記第1方向と前記第2方向との差が大きいときに満たされやすい条件であり、
前記第2ジャンプ処理が実行される場合には前記第1ジャンプ処理が実行される場合よりも、前記ユーザキャラクタが前記第2方向への方向転換を完了するまでの時間が短い、又は、前記方向転換後の前記ユーザキャラクタの移動速度が速い、情報処理システム。
【請求項11】
仮想空間において、ユーザによって操作されるユーザキャラクタが対戦相手と対戦するゲームを行うための情報処理システムにおいて実行させる情報処理方法であって、
前記ユーザによる第1の操作入力に応じて、指定された前記仮想空間の領域を第1状態に変化させる領域変化ステップと、
前記ユーザキャラクタが前記第1状態の領域に位置するとき、前記ユーザによる第2の操作入力が継続している間、前記ユーザキャラクタを、前記第1状態の領域において潜伏状態とするキャラクタ状態変化ステップと、
前記ユーザキャラクタが前記潜伏状態になっているときに、前記ユーザによる方向操作入力に応じて、前記ユーザキャラクタを前記潜伏状態のまま前記第1状態の領域内において移動させる移動ステップと、
前記ユーザキャラクタが前記潜伏状態になっているときに、前記ユーザによる第3の操作入力に応じて、前記ユーザキャラクタをジャンプさせることで前記潜伏状態から露出状態に変化させるジャンプ実行ステップと、を前記情報処理システムに実行させ、
前記ジャンプ実行ステップでは、前記ユーザキャラクタが第1方向に移動しているときに前記第3の操作入力があった場合、
前記第3の操作入力があったときを基準とした所定期間における前記ユーザキャラクタの移動速度と移動方向とに基づいて、前記ユーザキャラクタの移動速度に関する速度条件と、前記第1方向とは異なる第2方向に前記ユーザキャラクタを移動させることとなる方向操作入力に関する方向条件と、のうちの少なくとも何れか一方が満たされない場合には、前記ユーザキャラクタの移動方向を前記第2方向へ方向転換させるとともに前記ジャンプを行わせる第1ジャンプ処理を実行し、
前記第3の操作入力があったときを基準とした所定期間における前記ユーザキャラクタの移動速度と移動方向とに基づいて、前記速度条件と前記方向条件とが満たされる場合には、前記ユーザキャラクタの移動方向を前記第2方向へ方向転換させるとともに前記ジャンプを行わせる第2ジャンプ処理を実行し、
前記速度条件は、前記所定期間における前記ユーザキャラクタの移動速度が速いときに満たされやすい条件であり、
前記方向条件は、前記第1方向と前記第2方向との差が大きいときに満たされやすい条件であり、
前記第2ジャンプ処理が実行される場合には前記第1ジャンプ処理が実行される場合よりも、前記ユーザキャラクタが前記第2方向への方向転換を完了するまでの時間が短い、又は、前記方向転換後の前記ユーザキャラクタの移動速度が速い、情報処理方法。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法に関する。
【背景技術】
【0002】
従来より、ユーザキャラクタが仮想空間内で移動し、指定した領域を自チームに対応する領域に変化させ、変化された領域において当該ユーザキャラクタが視認され難い状態になるとともに移動するゲームがある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2018-102931号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記従来のゲームでは、ユーザキャラクタの移動を促すとともにユーザキャラクタの操作性を向上させるという点では改善の余地があった。
【0005】
それ故、本発明の目的は、ユーザキャラクタの移動を促し、ユーザキャラクタの操作性を向上させる情報処理プログラム、情報処理装置、情報処理システム、及び、情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記の課題を解決すべく、本発明は、以下の構成を採用した。
【0007】
本発明の情報処理プログラムは、仮想空間において、ユーザによって操作されるユーザキャラクタが対戦相手と対戦するゲームをコンピュータに実行させる情報処理プログラムである。情報処理プログラムは、前記コンピュータを、前記ユーザによる第1の操作入力に応じて、指定された前記仮想空間の領域を第1状態に変化させる領域変化手段と、前記ユーザキャラクタが前記第1状態の領域に位置するとき、前記ユーザによる第2の操作入力が継続している間、前記ユーザキャラクタを、前記第1状態の領域において潜伏状態とするキャラクタ状態変化手段と、前記ユーザキャラクタが前記潜伏状態になっているときに、前記ユーザによる方向操作入力に応じて、前記ユーザキャラクタを前記潜伏状態のまま前記第1状態の領域内において移動させる移動手段と、前記ユーザキャラクタが前記潜伏状態になっているときに、前記ユーザによる第3の操作入力に応じて、前記ユーザキャラクタをジャンプさせることで前記潜伏状態から露出状態に変化させるジャンプ実行手段、として機能させる。前記ジャンプ実行手段は、前記ユーザキャラクタが第1方向に移動しているときに前記第3の操作入力があった場合、前記第3の操作入力があったときを基準とした所定期間における前記ユーザキャラクタの移動速度と移動方向とに基づいて、前記ユーザキャラクタの移動速度に関する速度条件と、前記第1方向とは異なる第2方向に前記ユーザキャラクタを移動させることとなる方向操作入力に関する方向条件と、のうちの少なくとも何れか一方が満たされない場合には、前記ユーザキャラクタの移動方向を前記第2方向へ方向転換させるとともに前記ジャンプを行わせる第1ジャンプ処理を実行する。また、前記ジャンプ実行手段は、前記ユーザキャラクタが第1方向に移動しているときに前記第3の操作入力があった場合、前記第3の操作入力があったときを基準とした所定期間における前記ユーザキャラクタの移動速度と移動方向とに基づいて、前記速度条件と前記方向条件とが満たされる場合には、前記ユーザキャラクタの移動方向を前記第2方向へ方向転換させるとともに前記ジャンプを行わせる第2ジャンプ処理を実行する。前記速度条件は、前記所定期間における前記ユーザキャラクタの移動速度が速いときに満たされやすい条件である。前記方向条件は、前記第1方向と前記第2方向との差が大きいときに満たされやすい条件である。前記第2ジャンプ処理が実行される場合には前記第1ジャンプ処理が実行される場合よりも、前記ユーザキャラクタが前記第2方向への方向転換を完了するまでの時間が短い、又は、前記方向転換後の前記ユーザキャラクタの移動速度が速い。
【0008】
上記によれば、ユーザキャラクタが潜伏状態で移動中に、速度条件と方向条件とが満たされる場合には、第2ジャンプ処理が行われる。これにより、素早くユーザキャラクタを第2方向に移動させるとともにジャンプさせることができ、ユーザキャラクタの操作性を向上させることができる。ユーザキャラクタが高速で移動中に、大きな方向転換を伴う場合に第2ジャンプ処理が行われるため、ユーザキャラクタの積極的な移動を促すことができる。また、このような素早い方向転換は、ユーザキャラクタがジャンプにより露出状態になるときに可能となるため、ユーザキャラクタが有利になり過ぎないようにすることができ、ゲームの興趣性を維持、向上させることができる。
【0009】
また、上記情報処理プログラムは、前記仮想空間内において前記対戦相手である敵キャラクタを制御する敵キャラクタ制御手段と、前記敵キャラクタに、前記ユーザオブジェクトが受けると前記ユーザオブジェクトに対してゲームにおいて不利な影響を与える攻撃を行わせる攻撃手段と、前記第2ジャンプ処理が行われる場合、所定条件を満たすまでは前記ユーザオブジェクトが前記攻撃を受けたときに与えられる不利な影響を抑制する抑制手段、として前記コンピュータをさらに機能させてもよい。
【0010】
上記によれば、第2ジャンプ処理が行われる場合には敵キャラクタからの攻撃による不利な影響を抑制することができ、ジャンプによって露出状態となる場合でも、ユーザキャラクタを不利になり過ぎないようにすることができる。
【0011】
また、所定時間内に前記第2ジャンプ処理が連続して実行される場合は、前記第2ジャンプ処理が連続して実行されない場合よりも、前記方向転換後の前記ユーザキャラクタの移動速度が遅くなってもよい。
【0012】
上記によれば、第2ジャンプ処理が連続して実行されることによってユーザキャラクタが有利になり過ぎないようにすることができる。
【0013】
また、前記第1方向と前記第2方向との差が90度である場合でも、前記方向条件は満たされてもよい。
【0014】
上記によれば、ユーザキャラクタが進行方向に対して真横に移動する場合でも、第2ジャンプ処理によってユーザキャラクタを真横へ方向転換させるとともにジャンプさせることができる。
【0015】
また、前記所定期間における前記ユーザキャラクタの移動速度が速いほど、前記方向条件が満たされる前記第1方向と前記第2方向との差が小さくてもよい。
【0016】
上記によれば、例えば、ユーザキャラクタの移動速度が速い場合には、第1方向と第2方向との差が小さくても方向条件は満たされる。逆に、ユーザキャラクタの移動速度が遅い場合は、第1方向と第2方向との差が大きくなければ、方向条件は満たされない。これにより、ユーザキャラクタが高速で移動中は第2ジャンプ処理が行われ易く、低速で移動中は第2ジャンプ処理が行われ難くすることができる。よって、ユーザキャラクタの積極的な移動を促すことができる。
【0017】
また、前記第1ジャンプ処理が実行される場合、前記方向転換後の前記ユーザキャラクタの移動速度は、前記方向転換前の前記ユーザキャラクタの移動速度よりも遅くてもよい。前記第2ジャンプ処理が実行される場合、前記方向転換後の前記ユーザキャラクタの移動速度は、前記方向転換前の前記ユーザキャラクタの移動速度に維持されてもよい。
【0018】
上記によれば、第2ジャンプ処理が行われる場合には、移動速度を落とさずにユーザキャラクタを方向転換させるとともにジャンプさせることができる。
【0019】
また、前記第2ジャンプ処理が実行される場合は、前記第1ジャンプ処理が実行される場合よりも、前記ユーザキャラクタの前記第1方向の速度が速く減少してもよい。
【0020】
上記によれば、第2ジャンプ処理が実行される場合はユーザキャラクタの第1方向の速度を急激に減少させることができる。例えば、第2ジャンプ処理が実行される場合は、第1方向の速度を瞬間的に0にして、第2方向への方向転換を即座に完了させることができる。
【0021】
また、前記仮想空間内には地形オブジェクトの壁面が存在し、前記移動手段は、前記ユーザキャラクタが前記第1状態の前記壁面上に位置するときに、前記方向操作入力に応じて、前記ユーザキャラクタを前記潜伏状態のまま前記第1状態の前記壁面上で移動させてもよい。前記ジャンプ実行手段は、前記ユーザキャラクタが前記第1状態の前記壁面上で移動しているときに前記第3の操作入力と、第2方向条件を満たす方向操作入力とがあった場合には、前記ユーザキャラクタを前記壁面から離れる方向にジャンプさせる第3ジャンプ処理を実行してもよい。前記抑制手段は、前記第3ジャンプ処理が行われる場合も、前記不利な影響を抑制してもよい。
【0022】
上記によれば、ユーザキャラクタが第1状態の壁面上にいる場合に、壁面から離れる方向にジャンプさせるとともに、ユーザキャラクタへの不利な影響を抑制することができる。
【0023】
また、本発明の別の一例は、上記情報処理プログラムを実行する情報処理装置であってもよいし、情報処理システムであってもよいし、情報処理方法であってもよい。
【発明の効果】
【0024】
本発明によれば、ユーザキャラクタの積極的な移動を促すとともにユーザキャラクタの操作性を向上させることができる。
【図面の簡単な説明】
【0025】
図1】本体装置2に左コントローラ3および右コントローラ4を装着した状態を示す図
図2】本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図
図3】本体装置2の一例を示す六面図
図4】左コントローラ3の一例を示す六面図
図5】右コントローラ4の一例を示す六面図
図6】本体装置2の内部構成の一例を示すブロック図
図7】本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図
図8】本実施形態のゲームが実行されたときに表示装置に表示されるゲーム画像の一例を示す図
図9】ユーザキャラクタPが特殊状態に変化しているときのゲーム画像の一例を示す図
図10】特殊状態のユーザキャラクタPBが壁面オブジェクト210上にいる様子の一例を示す図
図11】特殊状態のユーザキャラクタPBが壁面オブジェクト210上を移動する様子の一例を示す図
図12】特殊状態のユーザキャラクタPBが地面オブジェクト200における第1状態の領域201を右方向に移動している場合において、画面の奥行き方向への方向転換を伴う第1ジャンプ動作が行われる場合のユーザキャラクタPBの軌道の一例を示す図
図13】特殊状態のユーザキャラクタPBが地面オブジェクト200における第1状態の領域201を右方向に移動している場合において、左方向への方向転換を伴う第1ジャンプ動作が行われる場合のユーザキャラクタPBの軌道の一例を示す図
図14図12に示される第1ジャンプ動作が行われる場合のユーザキャラクタPBの位置の変化とその位置における速度ベクトルの一例を示す図
図15図13に示される第1ジャンプ動作が行われる場合のユーザキャラクタPBの位置の変化とその位置における速度ベクトルの一例を示す図
図16】特殊状態のユーザキャラクタPBが地面オブジェクト200における第1状態の領域201を右方向に移動している場合において、奥行き方向への方向転換を伴う第2ジャンプ動作が行われる場合のユーザキャラクタPBの軌道の一例を示す図
図17】特殊状態のユーザキャラクタPBが地面オブジェクト200における第1状態の領域201を右方向に移動している場合において、左方向への方向転換を伴う第2ジャンプ動作が行われる場合のユーザキャラクタPBの軌道の一例を示す図
図18図16に示される第2ジャンプ動作が行われる場合のユーザキャラクタPBの位置の変化とその位置における速度ベクトルの一例を示す図
図19図17に示される第2ジャンプ動作が行われる場合のユーザキャラクタPBの位置の変化とその位置における速度ベクトルの一例を示す図
図20】特殊状態のユーザキャラクタPBが壁面オブジェクト210上で第3ジャンプ動作を行う様子の一例を示す図
図21】第2方向条件を説明するための図
図22】ユーザキャラクタPBが壁のぼり動作を行う前の予備動作を行っている様子の一例を示す図
図23】予備動作が所定時間行われたときのチャージ完了演出の一例を示す図
図24】ジャンプボタンの長押しが解除された後、ユーザキャラクタPBが壁のぼり動作を開始する様子の一例を示す図
図25】壁のぼり動作中にユーザキャラクタPBが第1状態の領域201の境界に到達したときの一例を示す図
図26図25の後、ユーザキャラクタPBが第1状態の領域201の境界を越えて上方に高くジャンプする様子の一例を示す図
図27図26の後、ユーザキャラクタPBが上面220上に着地したときの一例を示す図
図28】情報処理システム1において記憶されるデータの一例を示す図
図29】本体装置2によって行われるゲーム処理の一例を示すフローチャート
図30】ステップS8のジャンプ処理の一例を示すフローチャート
図31】ステップS9の壁のぼり処理の一例を示すフローチャート
図32】ステップS51の壁のぼり中処理の一例を示すフローチャート
【発明を実施するための形態】
【0026】
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
【0027】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0028】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。図1および図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0029】
図3は、本体装置2の一例を示す六面図である。図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0030】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0031】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0032】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0033】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、図6に示すスピーカ88)を備えている。図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0034】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0035】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0036】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0037】
図4は、左コントローラ3の一例を示す六面図である。図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、図1および図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0038】
左コントローラ3は、アナログスティック32を備える。図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
【0039】
左コントローラ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プログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0040】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0041】
図5は、右コントローラ4の一例を示す六面図である。図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0042】
右コントローラ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を備える。
【0043】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0044】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、図3に示す構成の他、図6に示す各構成要素81~91、97、および98を備える。これらの構成要素81~91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0045】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0046】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0047】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0048】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0049】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0050】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0051】
プロセッサ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は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0052】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
【0053】
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
【0054】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0055】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0056】
また、本体装置2は、加速度センサ89を備える。本実施形態においては、加速度センサ89は、所定の3軸(例えば、図1に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ89は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。
【0057】
また、本体装置2は、角速度センサ90を備える。本実施形態においては、角速度センサ90は、所定の3軸(例えば、図1に示すxyz軸)回りの角速度を検出する。なお、角速度センサ90は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。
【0058】
加速度センサ89および角速度センサ90は、プロセッサ81に接続され、加速度センサ89および角速度センサ90の検出結果は、プロセッサ81へ出力される。プロセッサ81は、上記の加速度センサ89および角速度センサ90の検出結果に基づいて、本体装置2の動きおよび/または姿勢に関する情報を算出することが可能である。
【0059】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0060】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0061】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、図6で示しているため図7では省略している。
【0062】
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。図7に示すように、通信制御部101は、端子42を含む各構成要素に接続される。本実施形態においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
【0063】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0064】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0065】
左コントローラ3は、慣性センサを備える。具体的には、左コントローラ3は、加速度センサ104を備える。また、左コントローラ3は、角速度センサ105を備える。本実施形態においては、加速度センサ104は、所定の3軸(例えば、図4に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ104は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサ105は、所定の3軸(例えば、図4に示すxyz軸)回りの角速度を検出する。なお、角速度センサ105は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。加速度センサ104および角速度センサ105は、それぞれ通信制御部101に接続される。そして、加速度センサ104および角速度センサ105の検出結果は、適宜のタイミングで繰り返し通信制御部101へ出力される。
【0066】
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0067】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサ104および角速度センサ105の検出結果)に基づいて算出することができる。
【0068】
左コントローラ3は、振動によってユーザに通知を行うための振動子107を備える。本実施形態においては、振動子107は、本体装置2からの指令によって制御される。すなわち、通信制御部101は、本体装置2からの上記指令を受け取ると、当該指令に従って振動子107を駆動させる。ここで、左コントローラ3は、コーデック部106を備える。通信制御部101は、上記指令を受け取ると、指令に応じた制御信号をコーデック部106へ出力する。コーデック部106は、通信制御部101からの制御信号から振動子107を駆動させるための駆動信号を生成して振動子107へ与える。これによって振動子107が動作する。
【0069】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0070】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0071】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、アナログスティック52、慣性センサ(加速度センサ114および角速度センサ115)を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0072】
また、右コントローラ4は、振動子117およびコーデック部116を備える。振動子117およびコーデック部116は、左コントローラ3の振動子107およびコーデック部106と同様に動作する。すなわち、通信制御部111は、本体装置2からの指令に従って、コーデック部116を用いて振動子117を動作させる。
【0073】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0074】
(本実施形態のゲームの概要)
次に、本実施形態のゲームの概要について説明する。本実施形態のゲームは、複数のユーザが、それぞれのキャラクタをそれぞれのゲーム装置(本体装置2及びコントローラ3,4)を用いて操作するマルチプレイゲームである。複数のゲーム装置は、ネットワーク(LANやインターネット)に接続され、直接又はサーバ等を介して間接的に通信することで、ゲーム処理を行う。例えば、複数のユーザは、2つのチームのうちのどちらかに属し、各ユーザは、自チームのユーザと協力しながら敵チームと対戦する。各ユーザに対応するキャラクタは、同一の仮想空間内に配置され、当該仮想空間内で各キャラクタを動作させることで、ゲームが進行する。各ユーザのゲーム装置の表示装置(ディスプレイ12又は据置型モニタ)には、自身のキャラクタが表示されるとともに、他のユーザに対応するキャラクタも表示される。
【0075】
図8は、本実施形態のゲームが実行されたときに表示装置に表示されるゲーム画像の一例を示す図である。本実施形態のゲームでは複数のゲームステージが用意されている。3次元仮想空間内にはゲームステージに応じた地形オブジェクトが配置され、地形オブジェクト上で複数のキャラクタが制御される。
【0076】
図8に示されるように、仮想空間内には、ユーザキャラクタPと、敵キャラクタECとが配置される。ユーザキャラクタPは、本ゲーム装置(本体装置2)のユーザによって操作される。敵キャラクタECは、対戦相手である他のユーザによって操作される。
【0077】
仮想空間内には地形を形成する地形オブジェクトが配置される。具体的には、地形オブジェクトとして、地面オブジェクト200と、壁面オブジェクト210とが配置される。地面オブジェクト200は、地面を形成するオブジェクトであり、例えば、仮想空間に固定のXZ平面に平行な面である。また、壁面オブジェクト210は、壁面を構成するオブジェクトであり、例えば、XZ平面に垂直な面(仮想空間に固定のY軸に平行な面)である。
【0078】
仮想空間には、ユーザキャラクタPに対応する仮想カメラが設定され、当該仮想カメラに基づいて、ユーザキャラクタPを含む仮想空間のゲーム画像が生成され、表示装置に表示される。仮想カメラは、ユーザキャラクタPの移動に応じて移動し、ユーザの操作入力(例えば、アナログスティック52に対する方向操作入力)に応じて、ユーザキャラクタPの周りを回転する。
【0079】
ユーザキャラクタPは、左コントローラ3及び右コントローラ4に対する操作入力に応じて、仮想空間内を移動したり、仮想空間内で所定のアクションを行ったりする。例えば、ユーザキャラクタPは、発射ボタン(例えば、右コントローラ3のZRボタン61)の押下に応じて、仮想空間内に液体(例えば、赤色のインク)を発射する。液体が発射される方向は、ユーザの操作入力に応じて定められる。例えば、ユーザの操作入力に応じて制御される仮想カメラの視線方向に、液体が発射される。液体が発射された方向の仮想空間内の所定領域は、発射された液体によって第1状態(例えば、赤色で塗られた状態)に変化される。自チームの他のユーザが発射ボタンを押下した場合も、当該自チームの他のユーザに対応するキャラクタが同じ色の液体を発射し、液体が発射された方向の仮想空間内の所定領域が第1状態となる。仮想空間内の地形オブジェクトの各面は、第1状態に変化し得る。図8では、XZ平面と平行な地面オブジェクト200の一部の領域と、XZ平面と垂直な壁面オブジェクト210の一部の領域とが、第1状態に変化されている。図8において、領域201は、自チームの各ユーザが液体を発射することによって変化した第1状態の領域である。なお、ユーザキャラクタPが発射する液体が敵キャラクタECに当たると、敵キャラクタECにダメージが与えられる。
【0080】
敵キャラクタECに対応するユーザが発射ボタンを押下した場合、敵キャラクタECから異なる色の液体(例えば、青色のインク)が発射され、液体が発射された方向の仮想空間内の所定領域が、発射された液体によって第2状態(例えば、青色で塗られた状態)に変化される。敵チームの他のキャラクタについても同様である。図8において、領域202は、敵チームの各ユーザが液体を発射することによって変化した第2状態の領域である。なお、敵キャラクタECが発射する液体がユーザキャラクタPに当たった場合、ユーザキャラクタPにダメージが与えられる。
【0081】
ゲームの開始時は、地形オブジェクトの各面は、第1状態でも第2状態でもない初期状態になっている。図8において、領域203は初期状態の領域である。各ユーザは、自身が属するチームの色で仮想空間内の地形オブジェクトの領域を塗りつぶしながらゲームを進める。
【0082】
ユーザキャラクタPは、通常状態と特殊状態とに変化し得る。ユーザキャラクタPは、例えば左コントローラ3のZLボタン39が押下されている間は、特殊状態となり、ZLボタン39が押下されていない間は、通常状態となる。敵キャラクタEC及び自チームの他のキャラクタについても、通常状態と特殊状態とに変化し得る。
【0083】
通常状態のユーザキャラクタPは、例えば人型のキャラクタである。なお、図8に示されるように、通常状態のユーザキャラクタPを、以下では「ユーザキャラクタPA」と表記する。また、通常状態のユーザキャラクタ及び特殊状態のユーザキャラクタを総称して、「ユーザキャラクタP」と表記する。
【0084】
ユーザキャラクタPは、ユーザの方向操作入力(例えば、左コントローラ3のアナログスティック32に対する方向入力)に応じて、地面オブジェクト200上を移動可能である。例えば、ユーザキャラクタPは、地面オブジェクト200上にいるときに、アナログスティック32の右方向が入力された場合には画面の右方向に移動し、アナログスティック32の上方向が入力された場合には画面の奥行き方向に移動する。
【0085】
通常状態のユーザキャラクタPAは、地面オブジェクト200が第1状態、第2状態、及び、初期状態の何れの状態でも、地面オブジェクト200上を移動可能である。ユーザキャラクタPAが地面オブジェクト200上で停止している場合において、方向操作入力が行われた場合、ユーザキャラクタPAは、アナログスティック32の入力方向に応じた仮想空間の方向に加速し、一定速度まで到達する。方向操作入力が終了すると、ユーザキャラクタPは減速を開始し、時間経過後に停止する。ユーザキャラクタPが地面オブジェクト200上を移動するときの加速度および一定速度は、ユーザキャラクタPが位置する領域、及び、ユーザキャラクタPの状態によって異なる。
【0086】
具体的には、通常状態のユーザキャラクタPAは、第1状態の領域201又は初期状態の領域203上にいる場合、方向操作入力に応じて、第1状態の領域201又は初期状態の領域203上を通常速度で移動する。以下で「通常速度」は、ユーザキャラクタPAが、第1状態の領域201又は初期状態の領域203上を一定速度で移動するときの速度を意味する。
【0087】
また、通常状態のユーザキャラクタPAは、第2状態の領域202上にいる場合、方向操作入力に応じて、第2状態の領域202上を通常速度よりも遅い速度で移動する。すなわち、ユーザキャラクタPAの第2状態の領域202上での一定速度は、通常速度よりも遅い速度である。
【0088】
また、仮想空間内には常に下方に重力が働き、ユーザキャラクタPの下方にXZ平面と平行な面、又は、XZ平面に対して所定の角度以下の面が無い場合は、ユーザキャラクタPは、下方に落下し続ける。このため、ユーザキャラクタPAは、壁面オブジェクト210上に位置し続けることはできず、瞬間的に壁面オブジェクト210に接触した場合でも、地面オブジェクト200に落下する。ただし、後述の通りユーザキャラクタPが特殊状態であれば、壁面オブジェクト上に位置し続けたり、移動したりすることもできる。
【0089】
また、通常状態のユーザキャラクタPAは、ジャンプボタン(例えば、右コントローラ4のBボタン54)に対する操作入力に応じて、第1状態、第2状態、及び、初期状態の何れかの状態の地面オブジェクト200上でジャンプする。ユーザキャラクタPAがジャンプした後、重力により下方に落下する。
【0090】
図9は、ユーザキャラクタPが特殊状態に変化しているときのゲーム画像の一例を示す図である。図9に示されるように、特殊状態のユーザキャラクタPは、通常状態とは異なる表示態様(形状、色、模様等)となる。図9では、特殊状態のユーザキャラクタPが、三角形で表されている。なお、特殊状態のユーザキャラクタPの表示態様はどのようなものでもよい。図9に示されるように、特殊状態のユーザキャラクタPを、以下では「ユーザキャラクタPB」と表記することがある。
【0091】
特殊状態のユーザキャラクタPBは、第1状態の領域201上にいる場合、液体の中に潜った潜伏状態となる。潜伏状態では、特殊状態のユーザキャラクタPBは、視認し難い状態となり、敵キャラクタEC(敵キャラクタに対応するユーザ)から発見され難い状態となる。このため、潜伏状態であるユーザキャラクタPBは、敵キャラクタECから攻撃を受け難く、有利な状態となる。具体的には、第1状態の領域201は、地面オブジェクト200の上に液体が塗られたような画像であり、平面的(初期状態の地面との段差がない又は僅かしかない)に見えるが、潜伏状態ではユーザキャラクタPBが地面の下に潜り込んだような画像となる。その結果、ユーザキャラクタPBが潜伏している箇所と潜伏していない箇所とでは、表面上の見え方が同じもしくは微差しかなく、他のユーザに発見され難い。なお、潜伏状態ではユーザキャラクタPBが平面的になって液体の表面と同化するようになり、他のユーザから発見され難くなってもよい。図9では、潜伏状態のユーザキャラクタPBが、点線の三角形で示されている。他の図においても同様である。
【0092】
一方、特殊状態のユーザキャラクタPBは、初期状態または第2状態の領域上にいる場合、露出状態となる。露出状態では、特殊状態のユーザキャラクタPBは、視認し易い状態となり、敵キャラクタEC(敵キャラクタに対応するユーザ)から発見され易い状態となる。例えば、露出状態は特殊状態のユーザキャラクタPBの全身が晒されている状態である。このため、露出状態であるユーザキャラクタPBは、敵キャラクタECから攻撃を受け易い。通常状態のユーザキャラクタPAは、領域201~203の何れにいるときでも、露出状態である。また、第2状態の領域202上ではユーザキャラクタPは、特殊状態になれない。このため、第2状態の領域202上ではユーザキャラクタPは露出状態となる。
【0093】
また、特殊状態のユーザキャラクタPBは、ジャンプボタンに対する操作入力に応じて、地面オブジェクト200上でジャンプする。潜伏状態のユーザキャラクタPBがジャンプした場合、仮想空間の上方向に一時的に移動して露出状態となる。以降の図では、露出状態のユーザキャラクタPBを実線の三角形で示す。露出状態のユーザキャラクタPBは、敵キャラクタECから発見され易くなる。
【0094】
特殊状態のユーザキャラクタPBは、ユーザによる方向操作入力(例えば、アナログスティック32に対する方向入力)に応じて、地面オブジェクト200上を移動可能である。特殊状態のユーザキャラクタPBは、地面オブジェクト200における第1状態の領域201上にいるとき(つまり潜伏状態であるとき)、方向操作入力に応じて、通常速度よりも速い第1速度で移動可能である。具体的には、ユーザキャラクタPBが潜伏状態であるときにアナログスティック32を用いて方向操作入力が行われた場合、ユーザキャラクタPBに対して、入力方向に応じた仮想空間の方向に加速度が加えられる。同じ方向への入力が継続されると、潜伏状態のユーザキャラクタPBは、通常速度よりも速い第1速度まで加速される。ユーザキャラクタPBが潜伏状態であるときの加速度は、ユーザキャラクタPAが通常状態であるときの加速度よりも大きくてもよい。方向操作入力が終了すると、潜伏状態のユーザキャラクタPBは減速し、時間経過後に停止する。
【0095】
ユーザキャラクタPBが地面オブジェクト200における第1状態の領域201上を第1方向に移動しているときに、ユーザキャラクタPBを第2方向へ移動させることとなる方向操作入力が行われた場合、ユーザキャラクタPBの移動方向が第2方向へ変化する。具体的には、ユーザキャラクタPBは、即座に第2方向へ方向転換するのではなく、慣性の影響によって、ある程度の時間をかけて第2方向に方向転換する。すなわち、ユーザキャラクタPBが第1方向に移動しているときに、ユーザキャラクタPBを第2方向へ移動させることとなる方向操作入力が行われた場合、ユーザキャラクタPBの移動方向は、第1方向からある程度の時間をかけて第2方向に変化する。「方向転換中」は、ユーザキャラクタPBの移動方向が第1方向から第2方向に変化する間であり、「方向転換が完了する」ことは、ユーザキャラクタPBの移動方向が第2方向になることである。
【0096】
初期状態の領域203上では、特殊状態のユーザキャラクタPBは、方向操作入力に応じて通常速度よりも遅い速度で移動する。初期状態の領域203上では、特殊状態のユーザキャラクタPBの加速度は、潜伏状態のユーザキャラクタPB及び通常状態のユーザキャラクタPAの加速度よりも小さくてもよい。
【0097】
図10は、特殊状態のユーザキャラクタPBが壁面オブジェクト210上にいる様子の一例を示す図である。図11は、特殊状態のユーザキャラクタPBが壁面オブジェクト210上を移動する様子の一例を示す図である。
【0098】
図10及び図11に示されるように、特殊状態のユーザキャラクタPBは、壁面オブジェクト210上を移動することができる。具体的には、ユーザキャラクタPBは、壁面オブジェクト210における第1状態の領域201上を、方向操作入力に応じた方向に移動する。例えば、特殊状態のユーザキャラクタPBが壁面オブジェクト210における第1状態の領域201上にいる場合において、アナログスティック32を用いて上方向への方向操作入力が行われた場合、ユーザキャラクタPBは、壁面オブジェクト210における第1状態の領域201上を上方向に移動する。また、ユーザキャラクタPBは、右方向への方向操作入力が行われた場合は、壁面オブジェクト210における第1状態の領域201上を右方向に移動する。
【0099】
壁面オブジェクト210上でのユーザキャラクタPBの移動速度は、通常速度よりも速い。その移動速度は、上記第1速度としてもよいし、上記第1速度よりも遅くてもよい。また、壁面オブジェクト210上での上方向および下方向への移動速度は、重力の影響を受けてもよい。
【0100】
ユーザキャラクタPBが壁面オブジェクト210における第1状態の領域201上にいる場合において、方向操作入力が行われていない場合、ユーザキャラクタPBは、重力の影響により自動的に下方に移動する。この場合の落下速度は、通常の落下速度(例えば壁面上であって第1状態の領域201上にいない場合の落下速度)よりも遅く、ユーザキャラクタPBは比較的ゆっくりと下方に壁面オブジェクト210に沿って移動する。
【0101】
図11に示されるように、壁面オブジェクト210における第1状態の領域201上にいるユーザキャラクタPBは、当該領域201と他の領域(壁面オブジェクト210における第2状態の領域202、又は、初期状態の領域203)との境界を越えて潜伏状態のまま移動することができず、境界を越えた場合は露出状態となって落下する。
【0102】
次に、特殊状態のユーザキャラクタPBが第1状態の領域201上を移動しているときにジャンプボタンが押下されたときの動作について説明する。まず、特殊状態のユーザキャラクタPBが地面オブジェクト200における第1状態の領域201を移動しているときのジャンプ動作について説明する。本実施形態では、特殊状態のユーザキャラクタPBが地面オブジェクト200における第1状態の領域201を移動しているときに、ジャンプボタンが押下された場合、後述する速度条件及び第1方向条件が満たされる場合と満たされない場合とで、異なるジャンプ動作が行われる。具体的には、速度条件と第1方向条件とのうちの少なくとも何れか一方が満たされない場合は、第1ジャンプ動作が行われる。速度条件と第1方向条件とが満たされる場合は、第2ジャンプ動作が行われる。以下、第1ジャンプ動作および第2ジャンプ動作について説明する。
【0103】
(第1ジャンプ動作)
図12は、特殊状態のユーザキャラクタPBが地面オブジェクト200における第1状態の領域201を右方向に移動している場合において、画面の奥行き方向への方向転換を伴う第1ジャンプ動作が行われる場合のユーザキャラクタPBの軌道の一例を示す図である。図13は、特殊状態のユーザキャラクタPBが地面オブジェクト200における第1状態の領域201を右方向に移動している場合において、左方向への方向転換を伴う第1ジャンプ動作が行われる場合のユーザキャラクタPBの軌道の一例を示す図である。
【0104】
図12及び図13において、点線の三角形は、ジャンプボタンが押下される直前の潜伏状態のユーザキャラクタPBの位置を示し、実線の三角形は、方向転換後のジャンプ中(露出状態中)のユーザキャラクタPBを示す。また、実線の矢印は、ユーザキャラクタPBの軌道を示す。なお、図12及び図13では、見やすさのためユーザキャラクタPB及びその周辺の領域201を拡大して表示している。図12及び図13では、ユーザキャラクタPBがジャンプしているときの画像であり、ユーザキャラクタPBの影が地面に投影されており、空中に浮いていることが表されている。
【0105】
図12に示されるように、ユーザキャラクタPBが地面オブジェクト200における第1状態の領域201上にいるときに、右方向への方向操作入力が継続されると、ユーザキャラクタPBは潜伏状態のまま右方向へ移動する。ユーザキャラクタPBが右方向に移動しているときに、例えば、上方向の方向操作入力とジャンプボタンに対する押下とが行われた場合、速度条件と第1方向条件とのうちの少なくとも何れか一方が満たされない場合は、第1ジャンプ動作が行われる。第1ジャンプ動作では、上述のように、慣性の影響により、ユーザキャラクタPBの移動方向が奥行き方向に変化するには、ある程度の時間がかかる。具体的には、ユーザキャラクタPBが右方向に移動しているときに上方向の方向操作入力とジャンプボタンに対する押下とが行われた場合、ユーザキャラクタPBはジャンプしつつ、右方向の速度が減少するとともに奥方向へ加速し、ある程度時間が経過すると、ユーザキャラクタPBの移動方向が奥行き方向(図12ではZ軸方向)になる。なお、ユーザキャラクタPBがジャンプしている間は露出状態となり、潜伏状態のときよりも入力方向に応じた方向への加速度が小さくなる。このため、ジャンプボタンの入力とともに方向転換のための方向操作入力が行われた場合は、単に方向転換のための方向操作入力のみが行われた場合よりも、方向転換後のある位置までの到達時間は長くなる。なお、ユーザキャラクタPBがジャンプするタイミングは、ジャンプボタンの押下のタイミングに限らず、右方向の速度の減少中でもよいし、奥行き方向への方向転換後であってもよい。また、ユーザキャラクタPBのジャンプの開始時には、ユーザキャラクタPBの移動方向は右方向のままであり、ジャンプ中に移動方向が奥行き方向に変化してもよい。
【0106】
また、図13に示されるように、ユーザキャラクタPBが潜伏状態のまま右方向に移動しているときに、例えば、左方向の方向操作入力とジャンプボタンに対する押下とが行われた場合、速度条件と第1方向条件とのうちの少なくとも何れか一方が満たされない場合は、第1ジャンプ動作が行われる。具体的には、左方向の方向操作入力とジャンプボタンの押下とが行われた場合、ユーザキャラクタPBはジャンプしつつ、右方向の速度が減少し、ある程度の時間経過後にユーザキャラクタPBの移動方向が左方向に変化する。なお、左方向の方向操作入力による左方向への加速の影響により、右方向の速度の減少速度は速くされる。
【0107】
図14は、図12に示される第1ジャンプ動作が行われる場合のユーザキャラクタPBの位置の変化とその位置における速度ベクトルの一例を示す図である。図15は、図13に示される第1ジャンプ動作が行われる場合のユーザキャラクタPBの位置の変化とその位置における速度ベクトルの一例を示す図である。
【0108】
図14及び図15において、各矢印は、各時点(t0、t1、t2・・・)におけるユーザキャラクタPBの速度ベクトルを表している。矢印の始点は各時点のユーザキャラクタPBの位置を表し、矢印の方向は移動方向を表し、矢印の長さは速さを表す。各時点の間隔は、例えば、1~数フレーム時間である。例えば、1フレーム時間は1/60秒であってもよい。
【0109】
図14に示されるように、時点t0では、右方向の方向操作入力が行われており、ユーザキャラクタPBは、速度条件を満たさない速度で右方向に移動している。時点t1において、上方向の方向操作入力と、ジャンプボタンの入力とが行われたとする。この場合、時点t1において、ユーザキャラクタPBはジャンプをし、ジャンプによって露出状態となる。なお、この時点t1ではユーザキャラクタPBの移動方向は画面の奥行き方向(Z軸方向)にはならず、ユーザキャラクタPBは、右方向への移動を維持しつつ、右方向への速度を減少させる。時点t1の速度ベクトルの長さは、時点t0の速度ベクトルの長さよりも短い。時点t2~t4の間でも、ユーザキャラクタPBは、ジャンプ状態を継続したまま右方向への移動を継続するが、この間、右方向の速度を減少させ続ける。すなわち、時点t1~t4は方向転換中である。そして、時点t5において、ユーザキャラクタPBの速度ベクトルのX方向成分は「0」になる。すなわち、時点t5において、ユーザキャラクタPBの移動方向は、画面の奥行き方向になる(つまり、方向転換が完了する)。方向転換直後のユーザキャラクタPBの速度(時点t5での速度ベクトルの長さ)は、第1速度未満である。時点t6以降では、落下によってジャンプ状態が終了する。なお、ユーザキャラクタPBの移動方向は、引き続き画面の奥行き方向とされている。ユーザキャラクタPBのジャンプが終了するタイミングは、時点t2からt5の間であってもよい。なお、第1ジャンプ動作によって方向転換とともにジャンプが行われる場合は、潜伏状態のまま方向転換する場合よりも加速が遅くされるため、ユーザキャラクタPBは敵キャラクタECからいっそう攻撃を受けやすくなる。
【0110】
また、図15に示されるように、ユーザキャラクタPBが右方向に移動しているときに、時点t1において、左方向の方向操作入力と、ジャンプボタンの入力とが行われたとする。この場合、時点t1において、ユーザキャラクタPBはジャンプをし、ジャンプによって露出状態となる。なお、この時点t1ではユーザキャラクタPBの移動方向は左方向にはならず、ユーザキャラクタPBは、右方向への移動を維持しつつ、右方向への速度を減少させる。時点t1の速度ベクトルの長さは、時点t0の速度ベクトルの長さよりも短い。時点t2~t4の間でも、ユーザキャラクタPBは、ジャンプ状態を継続したまま右方向への移動を継続するが、この間、右方向の速度を減少させ続ける。そして、時点t5において、ユーザキャラクタPBの速度ベクトルは、X軸負方向の成分を有するようになる。すなわち、時点t5において、ユーザキャラクタPBの移動方向は、画面の左方向になる(つまり、方向転換が完了する)。方向転換直後のユーザキャラクタPBの速度(時点t5での速度ベクトルの長さ)は、第1速度未満である。時点t6以降では、落下によってジャンプ状態が終了する。なお、ユーザキャラクタPBの移動方向は、引き続き左方向とされている。なお、ユーザキャラクタPBのジャンプが終了するタイミングは、時点t2からt5の間の何れであってもよい。また、ユーザキャラクタPBがジャンプを開始するタイミングは、ユーザキャラクタPBが左方向への移動を開始するタイミング(時点t5)であってもよい。
【0111】
このように、方向転換を伴うジャンプ動作が行われる場合において、速度条件又は第1方向条件を満たさない場合、第1ジャンプ動作が行われる。第1ジャンプ動作が行われる場合は、ユーザキャラクタPBは、慣性の影響により所定時間かけて減速した後、移動方向を変化させる。
【0112】
(速度条件、第1方向条件)
次に、速度条件及び第1方向条件について説明する。本実施形態では、速度条件は、ユーザキャラクタPBが潜伏状態であるときにジャンプボタンの入力があった場合に、当該ジャンプボタンの入力時点を基準として定められる所定期間におけるユーザキャラクタPBの移動速度に関する条件である。所定期間は、例えば、ジャンプボタンの入力時点を含む過去の所定数フレーム時間(例えば、10~20フレーム時間)であってもよいし、入力時点また入力時点の過去の所定時点であってもよい。また、所定期間には、ジャンプボタンの入力時点は含まれてもよいし、含まれなくてもよい。具体的には、速度条件は、上記所定期間におけるユーザキャラクタPBの移動速度の最大値が第1閾値以上のときに満たされる。例えば、この第1閾値は、上記第1速度の70-80%であってもよい。なお、上記所定期間におけるユーザキャラクタPBの平均速度が第1閾値以上の場合に速度条件が満たされてもよい。また、上記所定期間におけるユーザキャラクタPBの速度が常に第1閾値以上の場合に、速度条件が満たされてもよい。すなわち、速度条件は、ジャンプボタンの入力があった時点やその直前のユーザキャラクタPBの移動速度が比較的速いときに満たされる条件であり、ユーザキャラクタPBが移動していない、又は、遅い速度で移動しているときには満たされない条件である。
【0113】
また、第1方向条件は、ユーザキャラクタPBが潜伏状態で第1方向に移動しているときにジャンプボタンの入力があった場合に、当該第1方向とは異なる第2方向にユーザキャラクタPBを移動させることとなる方向操作入力に関する条件である。第1方向条件は、第1方向と第2方向との差が、第2閾値以上のときに満たされる。すなわち、第1方向条件は、ユーザキャラクタPBの進行方向から大きく離れた方向への方向操作入力があった場合に満たされる。具体的には、ユーザキャラクタPBが潜伏状態であるときにジャンプボタンの入力があった場合に、当該ジャンプボタンの入力時点を基準として定められる所定期間におけるユーザキャラクタPBの速度ベクトル(ここでは「方向転換前速度ベクトル」という)の方向と、当該ジャンプボタンの入力時点における方向操作入力によって定められるユーザキャラクタPBの移動方向との差が、第2閾値以上か否かが判定される。判定結果が肯定の場合、第1方向条件は満たされる。例えば、第2閾値は、60度であってもよいし、70度であってもよい。ここで、方向転換前速度ベクトルは、上記所定期間における各時点の速度ベクトルのうち、大きさが最大の速度ベクトルであってもよい。また、方向転換前速度ベクトルは、上記所定期間における各時点の速度ベクトルの平均の速度ベクトルであってもよい。また、「ジャンプボタンの入力時点における方向操作入力によって定められるユーザキャラクタPBの移動方向」は、方向転換後のユーザキャラクタPBの移動方向であり、上記第2方向である。具体的には、「ジャンプボタンの入力時点における方向操作入力によって定められるユーザキャラクタPBの移動方向」は、ジャンプボタンの入力時点におけるユーザキャラクタPBの姿勢、仮想カメラの位置、及び、入力方向に対応する仮想空間における方向であり、仮にその時点で即座に入力方向に応じた方向に方向転換を完了した場合の移動方向である。なお、第1方向条件を満たすか否かの判定に用いられる「ジャンプボタンの入力時点を基準として定められる所定期間」は、上記速度条件を満たすか否かの判定に用いられる「所定期間」と同じ(完全に一致)でもよいし、異なってもよい(その一部が重複する又は全く重複しなくてもよい)。
【0114】
例えば、図13に示されるように、ユーザキャラクタPBがX軸正方向に移動しているときに、ジャンプボタンの入力があった場合、当該ジャンプボタンの入力時点においてX軸負方向へユーザキャラクタPBを移動させることとなる方向操作入力(アナログスティック32の左方向への入力)があった場合には、上記差は180度である。この場合、第1方向条件は満たされる。すなわち、ユーザキャラクタPBが進行方向と反対方向に方向転換することとなる方向操作入力があった場合、第1方向条件は満たされる。
【0115】
また、図12に示されるように、例えば、ユーザキャラクタPBがX軸正方向に移動しているときに、ジャンプボタンの入力があった場合、当該ジャンプボタンの入力時点においてZ軸正方向へユーザキャラクタPBを移動させることとなる方向操作入力(アナログスティック32の上方向への入力)があった場合には、上記差は90度である。この場合も、第1方向条件は満たされる。すなわち、ユーザキャラクタPBが進行方向の真横に方向転換することとなる方向操作入力があった場合でも、第1方向条件は満たされる。
【0116】
上記速度条件及び第1方向条件の両方が満たされる場合には、第2ジャンプ動作が行われる。
【0117】
なお、上記速度条件の判定に用いられる所定期間、上記第1方向条件の判定に用いられる所定期間、又は、これらとは異なる所定期間におけるユーザキャラクタPBの移動速度に応じて、上記第1方向条件を満たすための第2閾値が異なってもよい。例えば、上記所定期間におけるユーザキャラクタPBの移動速度が速いほど、第2閾値が小さくてもよい。この場合、ユーザキャラクタPBが速い速度で移動しているときには、アナログスティック32の入力方向の変化が小さくても第1方向条件は満たされ、第2ジャンプ動作が行われるが、ユーザキャラクタPBが遅い速度で移動しているときには、入力方向の変化が大きくなければ第1方向条件は満たされず、第2ジャンプ動作は行われない。このように、十分な速度に達していない場合は、第2ジャンプ動作が行われない。これにより、ユーザキャラクタを高速で移動させているときには小さい角度で方向転換する場合でも第2ジャンプ動作を実行し易くし、ユーザキャラクタを低速で移動させているときには大きな角度で方向転換する場合に第2ジャンプ動作を実行させることができる。
【0118】
また、ジャンプボタンの入力があった時点で、過去の速度ベクトルの変化量を算出し、当該変化量に応じて、第1方向条件を満たすための第2閾値を異ならせてもよい。例えば、ある程度の期間、直進している場合には、第2閾値を小さくしてもよい。これにより、ユーザキャラクタPBが直進している状態で入力方向が変化した場合に、第2ジャンプ動作が行われ易くすることができる。
【0119】
(第2ジャンプ動作)
次に、第2ジャンプ動作について説明する。図16は、特殊状態のユーザキャラクタPBが地面オブジェクト200における第1状態の領域201を右方向に移動している場合において、奥行き方向への方向転換を伴う第2ジャンプ動作が行われる場合のユーザキャラクタPBの軌道の一例を示す図である。図17は、特殊状態のユーザキャラクタPBが地面オブジェクト200における第1状態の領域201を右方向に移動している場合において、左方向への方向転換を伴う第2ジャンプ動作が行われる場合のユーザキャラクタPBの軌道の一例を示す図である。なお、図16及び図17では、見やすさのためユーザキャラクタPB及びその周辺の領域201を拡大して表示している。図16及び図17では、ユーザキャラクタPBがジャンプしているときの画像であり、ユーザキャラクタPBの影が地面に投影されており、空中に浮いていることが表されている。
【0120】
図16に示されるように、ユーザキャラクタPBが右方向に移動しているときに、例えば、上方向の方向操作入力とジャンプボタンの押下とが行われた場合、速度条件と第1方向条件とが満たされる場合は、第2ジャンプ動作が行われる。第2ジャンプ動作では、上述した慣性の影響はなく、即座にユーザキャラクタPBの方向転換が完了する。具体的には、右方向の速度は即座にゼロとなり、ユーザキャラクタPBの移動方向は、即座に、画面の奥行き方向に変化する。また、この奥行き方向への方向転換とともにジャンプが行われる。
【0121】
また、図17に示されるように、ユーザキャラクタPBが潜伏状態のまま右方向に移動しているときに、例えば、左方向の方向操作入力とジャンプボタンの押下とが行われた場合、速度条件と第1方向条件とが満たされる場合は、第2ジャンプ動作が行われる。具体的には、ユーザキャラクタPBの移動方向は、即座に、左方向に変化する。また、この左方向への方向転換とともにジャンプが行われる。
【0122】
なお、第2ジャンプ動作が行われる場合は、ユーザキャラクタPBは、所定時間(例えば、10-20フレーム時間)、攻撃影響軽減状態となる。攻撃影響軽減状態は、敵キャラクタECからの攻撃(液体の発射等)による不利な影響が軽減される状態である。通常状態又は特殊状態のユーザキャラクタPは、攻撃影響軽減状態ではない場合、敵キャラクタECからの攻撃を受けると、不利な影響を受ける。例えば、ユーザキャラクタPの体力値が低下したり、ユーザキャラクタPの攻撃力が弱くなったり、ユーザキャラクタPの攻撃が停止したり、ユーザキャラクタPの移動速度が低下したり、ユーザキャラクタPが現在の位置よりも敵側の位置から離れた位置に後退させられたりする。攻撃影響軽減状態である場合は、この不利な影響が抑制される。攻撃影響軽減状態においてこの不利な影響を抑制する方法はどのようなものでもよい。例えば、攻撃影響軽減状態においては、ユーザキャラクタPの体力値を上昇させたり、ユーザキャラクタPの防御力を上昇させたり、敵キャラクタECの攻撃力を低下させたり、敵キャラクタECの攻撃を停止させたりすることで、ユーザキャラクタPが攻撃を受けたときの影響を小さくしてもよいし、全く影響を受けないようにしてもよい。
【0123】
また、図16及び図17に示されるように、攻撃影響軽減状態では、ユーザキャラクタPBの表示態様が変化する。例えば、攻撃影響軽減状態では、ユーザキャラクタPBの色が変化してもよいし、ユーザキャラクタPBに攻撃影響軽減状態であることを示すエフェクト画像が付加されてもよい。また、攻撃影響軽減状態では、攻撃影響軽減状態を示す効果音が出力されてもよい。
【0124】
攻撃影響軽減状態は、ユーザキャラクタPBがジャンプしている間(すなわち、ユーザキャラクタPBが露出状態となっている間)、継続してもよい。また、ユーザキャラクタPBがジャンプしている間の第1期間(例えば前半期間)だけ、攻撃影響軽減状態になってもよい。また、ユーザキャラクタPBがジャンプしている間と、ジャンプ後にユーザキャラクタPBが再び潜伏状態になってからの所定期間とで、攻撃影響軽減状態になってもよい。
【0125】
図18は、図16に示される第2ジャンプ動作が行われる場合のユーザキャラクタPBの位置の変化とその位置における速度ベクトルの一例を示す図である。図19は、図17に示される第2ジャンプ動作が行われる場合のユーザキャラクタPBの位置の変化とその位置における速度ベクトルの一例を示す図である。
【0126】
図18に示されるように、時点t0では、右方向の方向操作入力が行われており、ユーザキャラクタPBは、速度条件を満たす速度(例えば第1速度)で右方向に移動している。時点t1において、上方向の方向操作入力とジャンプボタンの入力とが行われ、かつ、速度条件と第1方向条件とが満たされているとする。この場合、時点t1において、ユーザキャラクタPBは画面の奥行き方向(Z軸方向)への方向転換を完了するとともにジャンプする。すなわち、第2ジャンプ動作が行われる場合は、第1ジャンプ動作が行われる場合よりも、ユーザキャラクタPBの移動方向が奥行き方向へ変化するまでの時間が短い。例えば、第2ジャンプ動作が行われる場合は、ジャンプボタンの入力があった時点で方向転換が完了するが、第1ジャンプ動作が行われる場合は、ジャンプボタンの入力があった時点からある程度の時間が経過したときに方向転換が完了する。
【0127】
また、第2ジャンプ動作が行われる場合の方向転換完了時点「t1」における速度ベクトルの長さは、第1ジャンプ動作が行われる場合の方向転換完了時点「t5」における速度ベクトルの長さよりも長い。すなわち、第2ジャンプ動作が行われる場合は、第1ジャンプ動作が行われる場合よりも、方向転換後の移動速度が速い。例えば、第2ジャンプ動作が行われる場合、方向転換完了時点t1の速度は、方向転換前の時点t0の速度と同じであってもよい。また、方向転換完了時点t1の速度は、ジャンプボタンの入力時点を基準として定められる上記所定期間における最大速度に設定されてもよいし、当該所定期間における平均速度に設定されてもよい。このように、第2ジャンプ動作が行われる場合、方向転換後のユーザキャラクタPBの移動速度は、方向転換前のユーザキャラクタPBの移動速度に維持される。すなわち、ユーザキャラクタPBは、第2ジャンプ動作が行われる場合、速度を落とすことなく方向転換とともにジャンプする。これにより、ユーザキャラクタPBの移動方向を素早く変化させるとともに、移動後の速度を速くすることができ、例えば、敵キャラクタECからの攻撃を回避し易くすることができる。なお、第2ジャンプ動作中は第1ジャンプ動作中よりも移動速度の減少を小さくしてもよい。あるいは、第2ジャンプ動作中は移動速度が減少しないようにしてもよい。
【0128】
また、図19に示されるように、ユーザキャラクタPBが右方向に移動しているときに、時点t1において、左方向の方向操作入力とジャンプボタンの入力とが行われ、かつ、速度条件と第1方向条件とが満たされているとする。この場合、時点t1において、ユーザキャラクタPBは左方向への方向転換を完了するとともにジャンプする。第2ジャンプ動作が行われる場合は、第1ジャンプ動作が行われる場合よりも、ユーザキャラクタPBの移動方向が左方向に変化するまでの時間が短い。また、第2ジャンプ動作が行われる場合は、第1ジャンプ動作が行われる場合よりも、方向転換後の移動速度が速い。
【0129】
このように、第2ジャンプ動作では、ユーザキャラクタPBは急な方向転換が可能であり、かつ、方向転換後の速度が速いため、第1ジャンプ動作が行われる場合よりも有利となる。また、第2ジャンプ動作が行われるとユーザキャラクタPBは攻撃影響軽減状態となり、有利になる。
【0130】
ところで、第2ジャンプ動作が連続して行われると、ユーザキャラクタPBは素早く方向転換をしつつ連続して攻撃影響軽減状態となり、ユーザキャラクタPBが有利になりすぎる可能性がある。このため、所定時間内で第2ジャンプ動作が連続して行われる場合は、方向転換後のユーザキャラクタPBの移動速度が制限されるようにしてもよい。例えば、第2ジャンプ動作が行われた後、所定時間(例えば90フレーム時間)内に第2ジャンプ動作が再び行われる場合は、方向転換後のユーザキャラクタPBの速度が減少される。例えば、第2ジャンプ動作が連続して行われない場合には、上記のように方向転換後の移動速度は、方向転換前の移動速度に維持される。一方、第2ジャンプ動作が連続して行われる場合は、方向転換後の移動速度は、上記のようにして算出される「方向転換前の移動速度」に所定の減衰率をかけた値に設定されてもよい。また、第2ジャンプ動作が連続して行われない場合には、方向転換後の移動速度は第1速度に設定され、第2ジャンプ動作が連続して行われる場合は、方向転換後の移動速度は第1速度より小さい速度に設定されてもよい。また、第2ジャンプ動作が連続して行われる毎に、方向転換後の移動速度が減少してもよい。このように、方向転換後の移動速度が低下することによって不利になることから、ユーザが第2ジャンプ動作を連続して行うことを抑制することができる。また、方向転換後の移動速度が低下していくことによって速度条件が満たせなくなることで、そもそも第2ジャンプ動作を行えないようにすることができる。
【0131】
このように、本実施形態では、ユーザキャラクタPBが第1方向に移動しているときに、ジャンプボタンの押下と、ユーザキャラクタPBを第2方向に移動させることとなる方向操作入力とが行われた場合、速度条件及び第1方向条件を満たす場合には、第2ジャンプ動作が行われる。第2ジャンプ動作が行われる場合は、ユーザキャラクタPBは、即座に、方向転換とともにジャンプを行う。
【0132】
これにより、ユーザキャラクタPBを即座に方向転換させることができる。速度条件が満たされる場合に第2ジャンプ動作が可能であるため、進行方向に速い速度で移動させることを促進することができる。また、進行方向から離れた方向への方向転換のときに第2ジャンプ動作が行われるため、例えば、敵側に向けて移動しているときに、必要に応じて進行方向と反対方向に素早く移動させることができ、敵からの攻撃を回避することができる。また、第2ジャンプ動作が行われる場合は攻撃影響軽減状態となるため、敵から逃げるときに敵からの攻撃を軽減することができる。また、攻撃影響軽減状態は短時間で終了するため、第2ジャンプ動作を行ったユーザが有利になりすぎないようにすることができる。また、第2ジャンプ動作が所定時間内で連続して行われる場合は、方向転換後の速度が遅くなる。このため、連続して第2ジャンプ動作が行われることを抑制することができ、ユーザキャラクタPBが有利になりすぎることを抑制することができる。
【0133】
(壁面上でのジャンプ動作)
次に、壁面オブジェクト210上でのジャンプ動作について説明する。上述のように、特殊状態のユーザキャラクタPBは、壁面オブジェクト210における第1状態の領域201上で移動可能である。特殊状態のユーザキャラクタPBは、壁面オブジェクト210上でジャンプ動作を行うこともできる。具体的には、特殊状態のユーザキャラクタPBは、壁面オブジェクト210上にいるときにジャンプボタンの入力があった場合、第2方向条件を満たす場合には、第3ジャンプ動作を行う。第3ジャンプ動作は、上記第2ジャンプ動作と同様に、素早い方向転換が可能なジャンプ動作であり、ユーザキャラクタPBが一時的に攻撃影響軽減状態となるジャンプ動作である。また、特殊状態のユーザキャラクタPBは、壁面オブジェクト210上にいるときにジャンプボタンの入力があった場合において、第2方向条件を満たさない場合には、壁面に沿った通常のジャンプ動作を行うことができる。また、特殊状態のユーザキャラクタPBは、壁面オブジェクト210上にいるときにジャンプボタンの長押し入力があった場合は、後述する壁のぼり動作を行う。
【0134】
図20は、特殊状態のユーザキャラクタPBが壁面オブジェクト210上で第3ジャンプ動作を行う様子の一例を示す図である。
【0135】
図20に示されるように、特殊状態のユーザキャラクタPBが壁面オブジェクト210上の第1状態の領域201にいるときに、ジャンプボタンの入力があった場合、第2方向条件を満たす場合には、第3ジャンプ動作が行われる。第2方向条件は、壁面オブジェクト210から離れる方向への方向操作入力があった場合に満たされる。ジャンプボタンの入力があった時点における方向操作入力と、壁面オブジェクト210の法線方向とに基づいて、第2方向条件が満たされるか否かが判定される。具体的には、ジャンプボタンの入力があった時点におけるアナログスティック32の入力方向と、仮想カメラから見た壁面オブジェクト210の法線ベクトルの方向との角度が、閾値(例えば、60度)以内である場合、第2方向条件が満たされる。
【0136】
図21は、第2方向条件を説明するための図である。図21に示されるように、アナログスティックの入力方向は、xy座標系の入力ベクトルとして表される。x軸方向は右方向の入力を示し、y軸方向は上方向の入力を示す。図21における「2次元法線ベクトル」は、「仮想カメラから見た壁面オブジェクト210の法線ベクトルの方向」である。例えば、2次元法線ベクトルは、仮想空間内の壁面オブジェクト210の3次元の法線ベクトルを、仮想カメラの視線方向に垂直な平面(射影面)に投影したベクトルである。入力ベクトルと2次元法線ベクトルとがなす角が所定値以内である場合、第2方向条件が満たされる。例えば、画面の左側に壁面オブジェクトが表示され、当該壁面オブジェクト上に特殊状態のユーザキャラクタPBが位置している場合において、アナログスティック32の右方向が入力された場合、当該壁面オブジェクトの法線ベクトルと入力ベクトルとは同じ方向を向く。この場合、第2方向条件は満たされる。また、仮想カメラの正面に存在する壁面オブジェクトがあり、当該壁面オブジェクト上に特殊状態のユーザキャラクタPBがいる場合には、アナログスティック32の下方向が入力された場合に、第2方向条件が満たされる。
【0137】
図20に示されるように、第3ジャンプ動作が行われた場合、ユーザキャラクタPBは壁面オブジェクト210から離れる方向にジャンプする。このとき、ユーザキャラクタPBは、一時的に攻撃影響軽減状態となる。第3ジャンプ動作に伴う攻撃影響軽減状態の継続時間は、第2ジャンプ動作に伴う攻撃影響軽減状態の継続時間と同じ(例えば、10-20フレーム時間)であってもよいし、異なってもよい。
【0138】
ユーザキャラクタPBが壁面オブジェクト210上で第1方向に移動しているときに第3ジャンプ動作が行われる場合は、上記第2ジャンプ動作と同様に、第1方向への移動の減速が行われることなく、即座にユーザキャラクタPBが壁面オブジェクト210から離れる方向に移動開始する。すなわち、ユーザキャラクタPBは、即座に壁面から離れる方向に方向転換する。また、第3ジャンプ動作が行われる場合も、第2ジャンプ動作が行われる場合と同様に、方向転換後のユーザキャラクタPBの速度は、方向転換前のユーザキャラクタPBの速度に設定される。例えば、ユーザキャラクタPBが画面の正面にある壁面オブジェクト210上を上方向に移動しているときに、ジャンプボタンとともに下方向が入力された場合は、上方向への移動の減速が行われることなく、ユーザキャラクタPBは壁面オブジェクト210から離れる方向に移動開始する。なお、第3ジャンプ動作が行われる場合において、方向転換後のユーザキャラクタPBの速度(壁面から離れる方向へのジャンプが行われるときの速度)は、方向転換前のユーザキャラクタPBの速度には依存せず、一定の速度であってもよい。この一定の速度は、第2速度と同じであってもよいし、第2速度より速くてもよいし、第2速度より遅くてもよい。
【0139】
これに対して、図示は省略するが、ユーザキャラクタPBが壁面オブジェクト210上で第1方向に移動しているときに、ジャンプボタンとともに方向操作入力が行われても、その入力方向が上記第2方向条件を満たさない場合は、第3ジャンプ動作は行わない。この場合、ユーザキャラクタPBは、壁面上での通常ジャンプ動作を行う。具体的には、ユーザキャラクタPBが壁面オブジェクト210上にいるときにジャンプボタンが短押しされた場合(押下されてから短時間で離された場合)、ユーザキャラクタPBは、入力方向かつ壁面オブジェクト210に沿った方向に潜伏状態のまま所定距離だけ移動する。ユーザキャラクタPBが壁面オブジェクト210上にいるときにジャンプボタンが長押しされた場合は、ユーザキャラクタPBは、壁のぼり動作を行う。以下、壁のぼり動作について説明する。
【0140】
(壁のぼり動作)
壁のぼり動作は、ユーザキャラクタPBが壁面オブジェクト210上を高速で上る動作である。壁のぼり動作は、ユーザキャラクタPBが壁面オブジェクト210上にいるときにジャンプボタンが長押しされた後、当該ジャンプボタンが離されたときに行われる。壁のぼり動作が行われる前は、ユーザキャラクタPBは予備動作を行う。予備動作は、壁のぼり動作を行うための力をチャージするための動作と捉えることができる。予備動作の時間が長いほど多くの力が蓄えられ、壁のぼり動作が行われたときの移動速度が速くなる。
【0141】
図22は、ユーザキャラクタPBが壁のぼり動作を行う前の予備動作を行っている様子の一例を示す図である。図23は、予備動作が所定時間行われたときのチャージ完了演出の一例を示す図である。
【0142】
図22に示されるように、ユーザキャラクタPBが壁面オブジェクト210上にいるときにジャンプボタンが長押しされている間、ユーザキャラクタPBは予備動作を行う。予備動作中は、ユーザキャラクタPBは潜伏状態よりも視認し易い表示態様となる。このため、予備動作中は、敵キャラクタEC(に対応するユーザ)からも視認され易い。例えば、予備動作中は、ユーザキャラクタPBは、液体からその一部が浮き出たような表示態様となる。また、ユーザキャラクタPBが予備動作を行っている間、予備動作中であることを示すエフェクト画像が表示され、視認され易くなる。ここでは、予備動作中の視認性が高くなるユーザキャラクタPBの表示態様を「予備動作態様」ということがある。図22では、予備動作態様のユーザキャラクタPBが太字の三角形で表示されている。他の図でも同様である。なお、予備動作中は、ユーザキャラクタPBが予備動作態様となるとともに、効果音が出力されてもよい。
【0143】
予備動作中にアナログスティック32を用いて方向操作入力が行われた場合、ユーザキャラクタPBは、壁面オブジェクト210上を入力方向に移動するが、その移動速度は、予備動作中でないときよりも遅い。具体的には、予備動作が開始されてから時間が経過するほど、方向操作入力が行われたときの移動速度が遅くなる。また、予備動作中は、重力による下方への移動速度が遅くなる。予備動作が開始されてから時間が経過するほど、重力による下方への移動速度が遅くなる。
【0144】
図23に示されるように、予備動作が開始されてから所定時間が経過すると、チャージ完了演出が行われる。例えば、チャージ完了演出では、ユーザキャラクタPBの色や形状が変化してもよいし、ユーザキャラクタPBにエフェクト画像が付加されてもよいし、効果音が出力されてもよい。チャージ完了演出後も、ジャンプボタンの長押しが継続している限り、ユーザキャラクタPBは予備動作を継続する。チャージ完了演出後の予備動作中は、ユーザキャラクタPBは重力の影響により僅かに下方に落下する。なお、チャージ完了演出後の予備動作中は、ユーザキャラクタPBは重力の影響により下方に落下しなくてもよい。また、チャージ完了演出後の予備動作中でも、ユーザキャラクタPBは、方向操作入力に応じて壁面オブジェクト210上を低速で移動する。
【0145】
次に、図24から図27を参照して、ユーザキャラクタPBが予備動作を行った後の壁のぼり動作の一例について説明する。図24は、ジャンプボタンの長押しが解除された後、ユーザキャラクタPBが壁のぼり動作を開始する様子の一例を示す図である。図25は、壁のぼり動作中にユーザキャラクタPBが第1状態の領域201の境界に到達したときの一例を示す図である。図26は、図25の後、ユーザキャラクタPBが第1状態の領域201の境界を越えて上方に高くジャンプする様子の一例を示す図である。図27は、図26の後、ユーザキャラクタPBが上面220上に着地したときの一例を示す図である。
【0146】
図24に示されるように、チャージ完了演出が行われた後、ジャンプボタンが離されたことに応じて、ユーザキャラクタPBは壁面オブジェクト210における第1状態の領域201上を移動する。この場合のユーザキャラクタPBの移動速度は、上記第1速度よりも速い第2速度である。具体的には、ジャンプボタンが離されたときに、アナログスティック32を用いて例えば上方向への方向操作入力が行われている場合は、ユーザキャラクタPBは、壁面オブジェクト210における第1状態の領域201上を、上方向に第2速度で移動する。上方向への方向操作入力が継続している間、ユーザキャラクタPBの移動速度は、第2速度に維持される。このジャンプボタンの長押しが解除されたことに応じてユーザキャラクタPBが壁面オブジェクト210における第1状態の領域201上を上方向に移動する動作を、「壁のぼり動作」という。壁のぼり動作中に、アナログスティック32の入力方向が、例えば右斜め上方向に変化した場合、ユーザキャラクタPBは、移動速度を維持したまま移動方向を右斜め上方向に変化させる。すなわち、壁のぼり動作中は、ナログスティック32の入力方向に応じた方向に、ユーザキャラクタPBが第2速度で移動する。
【0147】
なお、壁のぼり動作中に、上方向への入力が終了した場合、壁のぼり動作は終了する。具体的には、アナログスティック32の入力方向の上方向成分が「0」となった場合、ユーザキャラクタPBは減速して、図10で示したように通常の壁面オブジェクト210上での制御に戻る。
【0148】
また、ジャンプボタンが離されたときに上記第2方向条件が満たされる場合は、図20を参照して説明した第3ジャンプ動作が行われる。
【0149】
壁のぼり動作が開始された後、上方向への入力が継続する場合、ユーザキャラクタPBは、壁面オブジェクト210における第1状態の領域201と、当該領域201とは異なる領域との境界まで第2速度で移動する。例えば、図25に示されるように、ユーザキャラクタPBは、第1状態の領域201と、初期状態の領域203との境界まで移動する。あるいは、第1状態の領域201と第2状態の領域202とで境界が形成される場合は、ユーザキャラクタPBは、当該境界まで移動する。
【0150】
図26に示されるように、ユーザキャラクタPBが上記境界まで到達した後、ユーザキャラクタPBは、当該境界からジャンプし、境界を越えて仮想空間の上方に移動する。第2速度で移動していたユーザキャラクタPBが、慣性によって境界を越えて勢いよく飛び出すように高くジャンプする。ここでは、この壁のぼり動作によってユーザキャラクタPBが境界を越えてジャンプする動作を、「第4ジャンプ動作」ということがある。ユーザキャラクタPBが境界から飛び出すときの方向は、その時点でのアナログスティック32の入力方向に依存し、飛び出すときの初速は壁のぼり動作中と同じ第2速度である。
【0151】
ユーザキャラクタPBが境界から飛び出すときに、ユーザキャラクタPBは、上記攻撃影響軽減状態となる。この壁のぼり動作に伴う攻撃影響軽減状態の継続時間は、第2ジャンプ動作に伴う攻撃影響軽減状態の継続時間よりも長くてもよいし同じでもよい。例えば、壁のぼり動作に伴う攻撃影響軽減状態の継続時間は、40-50フレーム時間であってもよい。なお、攻撃影響軽減状態は、ジャンプボタンが離されたタイミングで設定されてもよい。また、攻撃影響軽減状態は、壁のぼり動作中に設定されてもよい。
【0152】
ユーザキャラクタPBが境界から勢いよく飛び出した後、ユーザキャラクタPBは最高到達点まで仮想空間の上方に移動し、その後、重力により下方に落下する。例えば、図27に示されるように、壁面オブジェクト210の上方にある上面220(地面オブジェクト200と平行な面)上に、ユーザキャラクタPBが落下する。
【0153】
なお、ジャンプボタンの長押しが開始された後、チャージ完了演出が行われる前にジャンプボタンが離された場合、上記壁のぼり動作は行われるが、壁のぼり動作中及び上記境界到達時の移動速度は、上記第2速度よりも遅い。この場合でも、ユーザキャラクタPBは境界に到達するときに攻撃影響軽減状態になる。具体的には、ジャンプボタンの長押しの継続時間(予備動作の継続時間)が長いほど、壁のぼり動作中の移動速度が速くなる。長押しの継続時間が所定時間に達すると、チャージ完了演出が行われ、壁のぼり動作中の移動速度は、最大速度である第2速度となる。チャージ完了演出が行われる前にジャンプボタンが離された場合は、ユーザキャラクタPBが領域201の境界に到達するときの速度が第2速度よりも遅くなる(予備動作の時間によっては上記第1速度よりも遅くなることがある)ため、ユーザキャラクタPBは、境界を越えてジャンプする場合でも、上記最高到達点よりも低い位置までしかジャンプしない。なお、攻撃影響軽減状態が継続する時間は、チャージ完了演出が行われるか否かによって異なってもよいし、同じでもよい。チャージ完了演出が行われる前にジャンプボタンの長押しが解除された場合において、予備動作の時間に応じて攻撃影響軽減状態が継続する時間が異なってもよいし、同じでもよい。例えば、予備動作の時間が長いほど、攻撃影響軽減状態が継続する時間が長くてもよい。
【0154】
また、予備動作中、及び、壁のぼり動作中に、ユーザキャラクタPが特殊状態から通常状態に戻った場合(ZLボタン39が離された場合)、予備動作、及び、壁のぼり動作は中断され、ユーザキャラクタPは、壁面オブジェクト210から落下する。また、ユーザキャラクタPBが攻撃影響軽減状態になっているときに、ユーザキャラクタPが特殊状態から通常状態に戻った場合は、攻撃影響軽減状態も終了する。
【0155】
このように、壁のぼり動作を行わせることで、ユーザキャラクタPBを壁面上の第1状態の領域201の境界から勢いよく飛び出させることができ、より高くジャンプさせることができる。これにより、壁面オブジェクト210がその上側領域まで第1状態に変化されていない場合でも、ユーザキャラクタPBを上方まで移動させることができる。ユーザキャラクタPBが高く飛び出すことで、ユーザキャラクタPBは露出状態となるが、攻撃影響軽減状態になるため、ユーザキャラクタPBが不利な状態にならないようにすることができる。また、ユーザキャラクタPBが攻撃影響軽減状態になる時間は制限されているため、ユーザキャラクタPBが極端に有利になりすぎることを抑制することができる。
【0156】
(ゲーム処理に用いられるデータ)
次に、ゲーム処理に用いられるデータについて説明する。図28は、情報処理システム1において記憶されるデータの一例を示す図である。ゲーム処理の実行中、図28に示されるデータは、主に本体装置2のDRAM85に記憶される。なお、情報処理システム1には、これらの他にも様々なデータが記憶される。
【0157】
図28に示されるように、情報処理システム1には、ゲームプログラムと、操作データと、領域状態データと、ユーザキャラクタデータと、他キャラクタデータとが記憶される。
【0158】
ゲームプログラムは、後述するゲーム処理を実行するためのゲームプログラムである。ゲームプログラムは、スロット23に装着された記憶媒体又はフラッシュメモリ84に予め記憶されており、ゲームの実行時にDRAM85に読み込まれる。
【0159】
操作データは、左コントローラ3及び右コントローラ4の各ボタン、アナログスティック等に対する操作入力に応じたデータである。操作データは、左コントローラ3及び右コントローラ4から本体装置2に所定の時間間隔(例えば、1/200秒間隔)で送信される。
【0160】
領域状態データは、仮想空間内の地形オブジェクト(地面オブジェクト200や壁面オブジェクト210等)の各面の状態を記憶したデータである。領域状態データは、地形オブジェクトの各面の領域が第1状態か、第2状態か、初期状態かを表す。
【0161】
ユーザキャラクタデータは、本体装置2のユーザに対応するユーザキャラクタPに関するデータである。ユーザキャラクタデータは、位置データと、状態データと、速度データと、体力値データとを含む。位置データは、ユーザキャラクタPの仮想空間内の位置を示すデータである。状態データは、ユーザキャラクタPが通常状態か特殊状態かを示すデータを含む。また、状態データは、ユーザキャラクタPが潜伏状態か露出状態かを示すデータを含む。また、状態データは、ユーザキャラクタPが攻撃影響軽減状態か否かを示すデータを含む。
【0162】
速度データは、ユーザキャラクタPの移動速度及び移動方向を示すデータであり、速度ベクトルを示すデータである。速度データは、現在と過去の所定数フレームにおける速度ベクトルを含む。
【0163】
体力値データは、ユーザキャラクタPの現在の体力値を示すデータである。ユーザキャラクタPが敵キャラクタECから攻撃を受けると、体力値が減少する。
【0164】
他キャラクタデータは、本体装置2とは異なる装置のユーザに対応するキャラクタに関するデータであり、自チームの各キャラクタに関するデータと、敵チームの各キャラクタに関するデータとを含む。他キャラクタデータは、ユーザキャラクタデータと同様に、位置データと、状態データと、速度データと、体力値データとを含む。なお、本体装置2は、例えばインターネットを介して他の装置から他キャラクタデータを受信する。本体装置2は、受信した他キャラクタデータに基づいて、自チームの各キャラクタや敵チームの各キャラクタを制御する。
【0165】
(本体装置におけるゲーム処理の詳細)
次に、本体装置2において行われるゲーム処理の詳細について説明する。図29は、本体装置2によって行われるゲーム処理の一例を示すフローチャートである。図29に示されるゲーム処理は、本体装置2のプロセッサ81がゲームプログラムを実行することにより行われる。なお、プロセッサ81は、ステップS1~ステップS11の処理を、所定の時間間隔(例えば、1/60秒間隔)で繰り返し行う。
【0166】
ステップS1において、プロセッサ81は、左コントローラ3及び右コントローラ4から出力された操作データを取得する。ステップS1の後、ステップS2が実行される。
【0167】
ステップS2において、プロセッサ81は、取得した操作データに基づいて、ユーザキャラクタPを特殊状態に変化させるための状態変化ボタン(例えばZLボタン39)が押下されているか否かを判定する。ステップS2でYESと判定された場合、次にステップS3の処理が行われる。ステップS2でNOと判定された場合、次にステップS4の処理が行われる。
【0168】
ステップS3において、プロセッサ81は、ユーザキャラクタPを特殊状態に設定する。また、プロセッサ81は、ユーザキャラクタPを特殊状態に設定した場合において、ユーザキャラクタPが第1状態の領域201上に位置する場合は、ユーザキャラクタPを潜伏状態に設定する。具体的には、プロセッサ81は、DRAM85に記憶されたユーザキャラクタデータの状態データに各状態に応じたデータを設定する。
【0169】
ステップS4において、プロセッサ81は、取得した操作データに基づいて、ユーザキャラクタPに液体を発射させるための発射ボタン(例えばZRボタン61)が押下されたか否かを判定する。ステップS4でYESと判定された場合、次にステップS5の処理が行われる。ステップS4でNOと判定された場合、次にステップS6の処理が行われる。
【0170】
ステップS5において、プロセッサ81は、液体の発射処理を行う。具体的には、発射ボタンが押下された場合、プロセッサ81は、仮想カメラの視線方向(ユーザによって指定された方向)に、ユーザキャラクタPのチームに対応する色の液体の発射を開始する。液体の発射が開始された場合、複数のフレーム時間、ユーザキャラクタPは発射処理中の状態になる。1回の発射ボタンの押下に応じて開始された発射処理が複数のフレーム時間にわたって繰り返し行われることにより、ユーザキャラクタPが液体を発射する様子が表示されるとともに、地形オブジェクトの面が液体で塗りつぶされていく様子が表示される。なお、ユーザキャラクタPが特殊状態であるときに、発射ボタンが押下された場合、ユーザキャラクタPは通常状態に戻って液体を発射し、発射処理中の状態になる。発射処理が終了すると、状態変化ボタンが押下されている場合には、ユーザキャラクタPは特殊状態に変化する。また、発射ボタンが押下された後、状態変化ボタンが押下された場合、ユーザキャラクタPは発射処理中の状態を終了し(液体の発射を途中で終了し)、特殊状態になる。また、発射ボタンが押下されている状態で、状態変化ボタンが押下されてから状態変化ボタンが離されると、ユーザキャラクタPは特殊状態に変化するのをやめて液体を発射する。すなわち、発射ボタンと状態変化ボタンに関して、最後に押されたボタンが処理に反映される。プロセッサ81は、DRAM85に記憶された領域状態データを更新することで、指定された領域(液体の発射方向に応じた所定範囲の領域)を第1状態に変化させる。これにより、仮想空間内の地形オブジェクトのうち、ユーザにより指定された領域が第1状態に変化される。
【0171】
ステップS6において、プロセッサ81は、液体の発射処理中か否かを判定する。ステップS6でYESと判定された場合、次にステップS5の処理が行われる。ステップS6でNOと判定された場合、次にステップS7の処理が行われる。
【0172】
ステップS7において、プロセッサ81は、ユーザキャラクタPの移動処理を行う。具体的には、プロセッサ81は、ユーザキャラクタPが特殊状態か否か、第1状態の領域201上に位置するか否か、壁面上に位置するか否かによって異なる処理を行う。ユーザキャラクタPが壁面上に位置するか否かは、ユーザキャラクタPが位置する面と、仮想空間内のXZ平面との角度に応じて判定される。当該角度が所定値(例えば60度)以上である場合は、ユーザキャラクタPが壁面上に位置すると判定される。例えば、ユーザキャラクタPが通常状態である場合において、地面(XZ平面との角度が所定値未満の面)における第1状態の領域201又は初期状態の領域203上に位置する場合は、プロセッサ81は、ユーザキャラクタPを、方向操作入力に応じた仮想空間の方向に通常速度で移動させる。また、ユーザキャラクタPが通常状態である場合において、地面における第2状態の領域202上に位置する場合は、プロセッサ81は、ユーザキャラクタPを、方向操作入力に応じた方向に通常速度よりも遅い速度で移動させる。また、ユーザキャラクタPが特殊状態である場合において、地面又は壁面における第1状態の領域201上に位置する場合は、プロセッサ81は、ユーザキャラクタPを、方向操作入力に応じた仮想空間の方向に第1速度で移動させる。
【0173】
また、移動処理においては、プロセッサ81は、ユーザキャラクタPが第1方向に移動しているときに、当該第1方向とは異なる第2方向にユーザキャラクタPを移動させることとなる方向操作入力が行われた場合、複数のフレーム時間をかけてユーザキャラクタPを第2方向に方向転換させる。当該方向転換に係る処理は、ユーザキャラクタPが通常状態でも特殊状態でも潜伏状態でも行われる。例えば、ユーザキャラクタPが画面の右方向に移動しているときに、アナログスティック32を用いてユーザキャラクタPを左方向へ移動させることとなる方向操作入力が行われた場合、左方向への方向転換を即座に行うのではなく、右方向への移動速度を減少させた後に、左方向へ方向転換させる(左方向への移動を開始させる)。例えば、プロセッサ81は、現在のユーザキャラクタPの速度ベクトルに、最新の方向操作入力に応じた速度ベクトルを加えることで、ユーザキャラクタPの最新の速度ベクトルを算出する。そして、算出した速度ベクトルに応じてユーザキャラクタPを仮想空間内で移動させる。これにより、ユーザキャラクタPが第1方向に移動しているときに第2方向にユーザキャラクタPを移動させることとなる方向操作入力が行われた場合、複数のフレーム時間をかけてユーザキャラクタPの移動方向が第1方向から第2方向に変化する。例えば、第1方向と第2方向の差が比較的大きい場合は、第2方向への方向転換が完了するまでの時間が長くなる。
【0174】
また、移動処理では、重力の影響により下方への移動が行われる。例えば、ユーザキャラクタPが空中にいる場合には、下方への重力加速度が働き、ユーザキャラクタPは下方に落下する。なお、ユーザキャラクタPBが壁面上にいる場合には、空中にいる場合よりも下方への落下速度が遅くなる。
【0175】
ステップS8において、プロセッサ81はジャンプ処理を行う。ステップS8のジャンプ処理は、ジャンプボタンの押下に応じて、ユーザキャラクタPに上述した第1ジャンプ動作、第2ジャンプ動作、又は、第3ジャンプ動作を行わせるための処理である。ジャンプ処理の詳細については後述する。ステップS8の後、ステップS9が実行される。
【0176】
ステップS9において、プロセッサ81は壁のぼり処理を行う。ステップS9の壁のぼり処理は、ジャンプボタンの長押しに応じて、ユーザキャラクタPに上述した予備動作や壁のぼり動作を行わせるための処理である。壁のぼり処理の詳細については後述する。ステップS9の後、ステップS10が実行される。
【0177】
ステップS10において、プロセッサ81は、画像生成・出力処理を行う。具体的には、プロセッサ81は、仮想カメラに基づいてゲーム画像を生成し、表示装置に出力する。ステップS10の後、ステップS11が実行される。
【0178】
ステップS11において、プロセッサ81は、ゲーム処理を終了するか否かを判定する。例えば、ゲームの開始から所定時間が経過した場合、又は、ユーザによってゲーム終了の指示が行われた場合は、プロセッサ81は、ゲーム処理を終了する。ステップS11の判定結果がNOの場合、ステップS1の処理が再び行われる。
【0179】
なお、ゲーム処理では、これらの他にも、他の装置から他キャラクタに関するデータを受信する処理や他キャラクタの動作に関する処理、敵キャラクタECから攻撃を受けたときの処理、敵キャラクタECに攻撃を加えたときの処理等、様々な処理が行われるが、それらの処理については説明を省略する。
【0180】
(ジャンプ処理)
次に、ステップS8のジャンプ処理の詳細について説明する。図30は、ステップS8のジャンプ処理の一例を示すフローチャートである。
【0181】
ステップS20において、プロセッサ81は、ユーザキャラクタPがジャンプ中の状態か否かを判定する。ここでは、後述するステップS27の第1ジャンプ処理、ステップS28の第2ジャンプ処理、ステップS32又はS63の第3ジャンプ処理、テップS29又はS54の通常ジャンプ処理、又はステップS69の第4ジャンプ処理によってユーザキャラクタPがジャンプ中である場合、YESと判定される。ステップS20でNOと判定された場合、次にステップS21の処理が行われる。ステップS20でYESと判定された場合、実行中の各ジャンプ処理(第1ジャンプ処理、第2ジャンプ処理、第3ジャンプ処理、通常ジャンプ処理、又は第4ジャンプ処理)に移行する。また、ユーザキャラクタPが各ジャンプ処理によってジャンプ中の状態でなくても、空中にいる場合は、ステップS20でYESと判定される。この場合は、実行中の各ジャンプ処理(第1ジャンプ処理、第2ジャンプ処理、第3ジャンプ処理、通常ジャンプ処理、又は第4ジャンプ処理)には移行せず、図30に示すジャンプ処理が終了される。
【0182】
ステップS21において、プロセッサ81は、操作データに基づいて、ジャンプボタン(例えばBボタン54)が押下されたか否かを判定する。ステップS21でYESと判定された場合、次にステップS22の処理が行われる。ステップS21でNOと判定された場合、図30に示すジャンプ処理が終了される。
【0183】
ステップS22において、プロセッサ81は、ユーザキャラクタPが壁面上にいるか否かを判定する。具体的には、プロセッサ81は、ユーザキャラクタPが位置する面とXZ平面との角度が所定値(例えば60度)以上であるか否かを判定する。ステップS22でNOと判定された場合、次にステップS23の処理が行われる。ステップS22でYESと判定された場合、次にステップS30の処理が行われる。
【0184】
ステップS23において、プロセッサ81は、ユーザキャラクタPが潜伏状態か否かを判定する。具体的には、プロセッサ81は、ユーザキャラクタPが特殊状態であり、かつ、第1状態の領域201上に位置するか否かを判定する。ステップS23でYESと判定された場合、次にステップS24の処理が行われる。ステップS23でNOと判定された場合、次にステップS29の処理が行われる。
【0185】
ステップS24において、プロセッサ81は、速度条件判定処理を実行する。具体的には、プロセッサ81は、所定期間(現時点から所定数フレーム前までの期間)におけるユーザキャラクタPBの移動速度の最大値が、第1閾値を超えているか否かを判定する。所定期間におけるユーザキャラクタPBの移動速度の最大値が第1閾値を超えている場合、速度条件が満たされる。DRAM85には過去所定数フレームにおけるユーザキャラクタPBの速度ベクトルが記憶されており、当該速度ベクトルから速度条件が満たされるか否かが判定される。ステップS24の後、ステップS25が実行される。
【0186】
ステップS25において、プロセッサ81は、第1方向条件判定処理を実行する。ここでは、上記所定期間におけるユーザキャラクタPBの移動方向と、最新の方向操作入力によって定められる方向との差に基づいて、第1方向条件判定処理が行われる。具体的には、プロセッサ81は、上記所定期間における最大の移動速度を有する速度ベクトルが示す方向と、最新の方向操作入力によって定められる方向との角度が、第2閾値以上である場合、第1方向条件を満たすと判定する。ここで、「最新の方向操作入力によって定められる方向」は、最新の操作データに含まれるアナログスティック32の入力方向(入力ベクトルの方向)によって定まる仮想空間の方向であり、当該最新の入力方向と、仮想カメラの視線方向とに基づいて算出される。アナログスティック32が同じ方向に傾倒され続けている場合、「最新の方向操作入力によって定められる方向」に、ユーザキャラクタPBが移動することになる。ステップS25の後、ステップS26が実行される。
【0187】
ステップS26において、プロセッサ81は、2つの条件(速度条件及び第1方向条件)の両方が満たされるか否かを判定する。2つの条件のうち少なくとも何れか一方が満たされない場合(ステップS26:NO)、次にステップS27の処理が実行される。2つの条件のうち両方が満たされる場合(ステップS26:YES)、次にステップS28の処理が実行される。
【0188】
ステップS27において、プロセッサ81は、第1ジャンプ処理を行う。第1ジャンプ処理は、ユーザキャラクタPBに第1ジャンプ動作を行わせるための処理である。ステップS26でNOと判定されたことに応じて第1ジャンプ処理が開始されると、第1ジャンプ処理によるジャンプ中の状態になり、次の処理ループにおいて上記ステップS20でYESと判定される。このため、第1ジャンプ処理は、複数のフレーム時間(例えば、ユーザキャラクタPBが地面に落下するまで、又は、壁面に張り付くまで)実行される。ここでは、ジャンプボタンの押下とともに方向操作入力が行われている場合は、上記ステップS7の移動処理と同様の方法でユーザキャラクタPBの移動方向が算出されるとともにジャンプ動作(仮想空間の上方への移動)が行われる。また、方向操作入力が行われていない場合は、ジャンプ動作のみが行われる。なお、ユーザキャラクタPBが移動中であって同じ方向が入力され続けている場合、プロセッサ81は、ユーザキャラクタPBを進行方向にジャンプさせる。また、ユーザキャラクタPBが移動中でなく、方向操作入力が行われていない場合は、プロセッサ81は、ユーザキャラクタPBを仮想空間の上方向にジャンプさせる。ステップS27の後、図30に示す処理が終了される。
【0189】
ステップS28において、プロセッサ81は、第2ジャンプ処理を行う。第2ジャンプ処理は、ユーザキャラクタPBに第2ジャンプ動作を行わせるための処理である。ステップS26でYESと判定されたことに応じて第2ジャンプ処理が開始されると、第2ジャンプ処理によるジャンプ中の状態になり、次の処理ループにおいて上記ステップS20でYESと判定される。このため、第2ジャンプ処理は、複数のフレーム時間(例えば、ユーザキャラクタPBが地面に落下するまで、又は、壁面に張り付くまで)実行される。ここでは、ユーザキャラクタPBが第1方向へ比較的速く移動中であり、かつ、ユーザキャラクタPBを第2方向に移動させることとなる方向操作入力が行われている。この場合、プロセッサ81は、ユーザキャラクタPBを地面に沿った方向である第2方向へ移動させるとともに仮想空間の上方向にジャンプさせる。具体的には、プロセッサ81は、取得した操作データに含まれる方向操作入力に基づいて方向転換後速度ベクトルを算出し、現在のユーザキャラクタPBの速度ベクトルを、算出した方向転換後速度ベクトルに書き換える。方向転換後速度ベクトルは、方向操作入力に応じた第2方向のベクトルと、ジャンプボタンの押下に応じた上方向のベクトルとに基づいて算出される。また、方向転換後速度ベクトルの大きさは、現在のユーザキャラクタPBの速度ベクトル(方向転換前の速度ベクトル)の大きさと同じである。これにより、ユーザキャラクタPBは、即座に第2方向に方向転換するとともにジャンプする。すなわち、ユーザキャラクタPBは、第1ジャンプ処理のように複数のフレーム時間をかけて第1方向への速度を減少させてから第2方向に移動するのではなく、即座に(1フレーム時間で)移動方向を第2方向に変化させるとともにジャンプする。また、方向転換後の移動速度は、方向転換前の移動速度に維持される。
【0190】
なお、第2ジャンプ処理が終了してから所定時間が経過するまでに第2ジャンプ処理が再び行われる場合、方向転換後のユーザキャラクタPBの移動速度が低下される。具体的には、前回の第2ジャンプ処理が終了してから所定時間が経過した後に第2ジャンプ処理が実行される場合には、現在のユーザキャラクタPBの速度ベクトルと同じ大きさの速度ベクトルが、方向転換後速度ベクトルとして算出される。所定時間内に再び第2ジャンプ処理が実行された場合には、方向転換後速度ベクトルとして、現在のユーザキャラクタPBの速度ベクトルの大きさに所定の減衰率をかけた値を有する速度ベクトルが算出される。
【0191】
また、ステップS28の第2ジャンプ処理では、プロセッサ81は、ユーザキャラクタPBを所定時間(例えば、10~20フレーム時間)だけ攻撃影響軽減状態に設定する。なお、攻撃影響軽減状態に設定されている間、ユーザキャラクタPが通常状態に戻った場合は、所定時間が経過する前に攻撃影響軽減状態は終了される。
【0192】
一方、ユーザキャラクタPが潜伏状態でない場合、ステップS29において、プロセッサ81は、通常ジャンプ処理を行う。ステップS29の通常ジャンプ処理は、ユーザキャラクタPが通常状態である場合、又は、ユーザキャラクタPが特殊状態であって初期状態又は第2状態の領域上にいる場合に実行される。ステップS23でNOと判定されたことに応じて通常ジャンプ処理が開始されると、通常ジャンプ処理によるジャンプ中の状態になり、次の処理ループにおいて上記ステップS20でYESと判定される。このため、通常ジャンプ処理は、複数のフレーム時間(例えば、ユーザキャラクタPが地面に落下するまで)実行される。ここでは、ユーザキャラクタPが移動中でない場合は、ユーザキャラクタPを仮想空間の上方へ移動させるジャンプ動作が行われる。また、ユーザキャラクタPが移動中である場合は、ステップS7の移動処理と同様の方向転換に係る処理が行われるとともにジャンプ動作が行われる。
【0193】
一方、ユーザキャラクタPBが壁面上にいる場合、ステップS30において、プロセッサ81は、第2方向条件判定処理を行う。ここでは、ユーザキャラクタPBが壁面上に位置し、当該壁面から離れる方向への方向操作入力があったか否かが判定される。具体的には、ユーザキャラクタPBが位置する壁面の法線ベクトルと、アナログスティック32の入力ベクトルとに基づいて、第2方向条件が満たされているか否かが判定される。より具体的には、2次元の法線ベクトルを算出し、算出した2次元の法線ベクトルと入力ベクトルとの角度が閾値(例えば60度)以内か否かが判定される。ステップS30の後、ステップS31が実行される。
【0194】
ステップS31において、プロセッサ81は、第2方向条件が満たされるか否かを判定する。ステップS31でYESと判定された場合、次にステップS32の処理が行われる。ステップS31でNOと判定された場合、図30に示す処理が終了される。
【0195】
ステップS32において、プロセッサ81は、第3ジャンプ処理を行う。ステップS31でYESと判定されたことに応じて第3ジャンプ処理が開始されると、第3ジャンプ処理によるジャンプ中の状態になり、次の処理ループにおいて上記ステップS20でYESと判定される。このため、第3ジャンプ処理は、複数のフレーム時間(例えば、ユーザキャラクタPが地面に落下するまで)実行される。ここでは、プロセッサ81は、ユーザキャラクタPBに上記第3ジャンプ動作を行わせる。ユーザキャラクタPBが壁面上で第1方向に移動している場合は、第1方向への移動の減速が行われることなく、ユーザキャラクタPBは、即座に壁面オブジェクト210から離れる方向に移動開始される。また、第3ジャンプ処理では、プロセッサ81は、ユーザキャラクタPBを所定時間(例えば、10~20フレーム時間)だけ攻撃影響軽減状態に設定する。ステップS32の後、図30に示す処理が終了される。
【0196】
(壁のぼり処理)
次に、ステップS9の壁のぼり処理の詳細について説明する。図31は、ステップS9の壁のぼり処理の一例を示すフローチャートである。
【0197】
ステップS40において、プロセッサ81は、ユーザキャラクタPBが壁面上にいるか否かを判定する。ステップS40でYESと判定された場合、次にステップS42の処理が行われる。ステップS40でNOと判定された場合、次にステップS41の処理が行われる。
【0198】
ステップS41において、プロセッサ81は、ユーザキャラクタPがジャンプ中の状態か否かを判定する。ここでは、ステップS27の第1ジャンプ処理、ステップS28の第2ジャンプ処理、ステップS32又はS63の第3ジャンプ処理、ステップS29又はS54の通常ジャンプ処理、又はステップS69の第4ジャンプ処理によってユーザキャラクタPがジャンプ中である場合、YESと判定される。ステップS41でNOと判定された場合、図31に示す壁のぼり処理が終了される。ステップS41でYESと判定された場合、実行中の各ジャンプ処理(第1ジャンプ処理、第2ジャンプ処理、第3ジャンプ処理、通常ジャンプ処理、又は第4ジャンプ処理)に移行する。また、ユーザキャラクタPが各ジャンプ処理によってジャンプ中の状態でなくても、空中にいる場合は、ステップS41でNOと判定される。
【0199】
ステップS42において、プロセッサ81は、ユーザキャラクタPBが壁のぼり動作中か否かを判定する。具体的には、プロセッサ81は、後述する壁のぼり中フラグがONか否かを判定する。ステップS42でNOと判定された場合、次にステップS43の処理が行われる。ステップS42でYESと判定された場合、次にステップS51の処理が行われる。
【0200】
ステップS43において、プロセッサ81は、ジャンプボタンが押下されているか否かを判定する。ステップS43でYESと判定された場合、次にステップS44の処理が行われる。ステップS43でNOと判定された場合、次にステップS46の処理が行われる。
【0201】
ステップS44において、プロセッサ81は、ジャンプボタンが長押しされているか否かを判定する。具体的には、プロセッサ81は、ジャンプボタンの押下が開始されてから所定時間が経過したか否かを判定する。ステップS44でYESと判定された場合、次にステップS45の処理が行われる。ステップS44でNOと判定された場合、次にステップS46の処理が行われる。
【0202】
ステップS45において、プロセッサ81は、長押しフラグをONに設定する。長押しフラグは、ジャンプボタンが長押しされているときにONに設定され、ジャンプボタンが長押しされていないときにはOFFに設定される。ステップS45の後、次にステップS46の処理が行われる。
【0203】
ステップS46において、プロセッサ81は、長押しフラグがONか否かを判定する。ステップS46でYESと判定された場合、次にステップS47の処理が行われる。ステップS46でNOと判定された場合、次にステップS53の処理が行われる。
【0204】
ステップS47において、プロセッサ81は、ユーザキャラクタPBに予備動作を行わせる。これにより、ユーザキャラクタPBは予備動作態様となる。予備動作中は、ユーザキャラクタPBに対応するユーザの表示装置においてユーザキャラクタPBの視認性が高くなるとともに、自チームのユーザの表示装置および対戦相手のユーザの表示装置においてもユーザキャラクタPBの視認性が高くなる。ステップS47の後、次にステップS48の処理が行われる。
【0205】
ステップS48において、プロセッサ81は、予備動作が開始されてから所定時間(例えば30-60フレーム時間)が経過したか否かを判定する。ステップS48でYESと判定された場合、次にステップS49の処理が行われる。ステップS48でNOと判定された場合、次にステップS50の処理が行われる。
【0206】
ステップS49において、プロセッサ81は、チャージ完了演出を行う。例えば、チャージが完了したことを示すエフェクト画像が表示されたり、効果音が出力されたりする。なお、チャージ完了演出は、予備動作が開始されてから所定時間が経過した時点で1回だけ行われてもよいし、所定時間が経過した後、ジャンプボタンの長押し中に継続的に行われてもよい。ステップS49の後、次にステップS50の処理が行われる。
【0207】
ステップS50において、プロセッサ81は、ジャンプボタンが解除されたか否かを判定する。ジャンプボタンが離された場合、プロセッサ81は、ステップS50でYESと判定する。ステップS50でYESと判定された場合、プロセッサ81は、長押しフラグをOFFに設定して、次にステップS51の処理を実行する。ステップS50でNOと判定された場合、次にステップS52の処理が行われる。
【0208】
ステップS51において、プロセッサ81は、壁のぼり中処理を行う。ステップS51の処理は、ユーザキャラクタPBに壁のぼり動作を行わせるための処理である。壁のぼり中処理では、上方向への方向操作入力が行われている間、ユーザキャラクタPBが壁面上を上方向に移動される。ステップS51の壁のぼり中処理の詳細については後述する。ステップS51の後、図31に示す壁のぼり処理が終了される。
【0209】
ステップS52において、プロセッサ81は、移動制限処理を行う。ここでは、予備動作中にユーザキャラクタPBの移動が制限される。例えば、アナログスティック32を用いて方向操作入力が行われた場合、予備動作が行われているときは、予備動作が行われていないときよりも、ユーザキャラクタPBの移動速度が遅くなる。これにより、予備動作中でもユーザキャラクタPBの壁面上での位置を調整することができる。予備動作中に、ユーザキャラクタPBの移動速度を遅くすることで位置の調整をし易くすることができる。また、予備動作中でなく、かつ、方向操作入力が無い場合は、ユーザキャラクタPBは、重力の影響により仮想空間の下方に自動的に移動するが、予備動作中は、この重力による下方への移動も制限される。
【0210】
具体的には、予備動作が開始されてからの経過時間に応じて、方向操作入力が行われたときのユーザキャラクタPBの移動速度が遅くなる。チャージ完了演出が行われた後は、ユーザキャラクタPBの移動速度は、最小となる。チャージ完了演出が行われた場合でも、方向操作入力が行われた場合、ユーザキャラクタPBの位置が調整される。また、予備動作が開始されてからの経過時間に応じて、重力による落下速度が遅くなる。チャージ完了演出が行われた後は、ユーザキャラクタPBは、重力により落下せず、壁面上の現在位置に留まる。なお、チャージ完了演出が行われた後、ユーザキャラクタPBは、方向操作入力が行われても壁面上を移動しなくてもよい。また、チャージ完了演出が行われた後、ユーザキャラクタPBは、重力の影響により下方に僅かに移動してもよい。ステップS52の後、図31に示す壁のぼり処理が終了される。
【0211】
一方、長押しフラグがOFFの場合、ステップS53において、プロセッサ81は、ジャンプボタンが解除されたか否かを判定する。ジャンプボタンが離された場合、プロセッサ81は、ステップS53でYESと判定する。ステップS53でYESと判定された場合、次にステップS54の処理が行われる。ステップS53でNOと判定された場合、図31に示す壁のぼり処理が終了される。
【0212】
ステップS54において、プロセッサ81は、壁面上での通常ジャンプ処理を行う。ステップS53でYESと判定されたことに応じて壁面上での通常ジャンプ処理が開始されると、壁面上での通常ジャンプ処理によるジャンプ中の状態になり、次の処理ループにおいて上記ステップS41でYESと判定される。このため、壁面上での通常ジャンプ処理は、複数のフレーム時間実行される。これにより、ユーザキャラクタPBが壁面上でジャンプする様子が表示される。具体的には、ユーザキャラクタPBは壁面に沿って又は壁面から一時的に離れて所定距離だけ上方に移動する。ステップS54の処理は、ユーザキャラクタPBが壁面上にいるときに、ジャンプボタンが押下され、短時間で離されたときに実行される。すなわち、ジャンプボタンの長押しが検知される前に、ジャンプボタンが離された場合に、ステップS54の処理が実行されて、ユーザキャラクタPBが壁面に沿って又は壁面から一時的に離れてジャンプされる。ユーザキャラクタPBが第1状態の領域201と他の領域との境界にいる場合において、ステップS54の処理が行われた場合、ユーザキャラクタPBは当該境界を越えてジャンプすることがあるが、そのジャンプの高さは、ステップS51の壁のぼり中処理においてユーザキャラクタPBが境界を越えてジャンプするときの高さよりも低い。また、ユーザキャラクタPBが壁面上にいるときにジャンプボタンが押下されたときに、第2方向条件が満たされる場合は、上記第3ジャンプ処理が行われるが、第2方向条件が満たされない場合は、ステップS54において壁面上での通常ジャンプ処理が行われる。第3ジャンプ処理では、上述のようにユーザキャラクタPBが即座に壁面から離れる方向にジャンプするが、ステップS54の壁面上での通常ジャンプ処理では、ユーザキャラクタPBは壁面上に張り付いたまま又は壁面から一時的に離れて壁面に沿ってジャンプし、再び壁面上に戻る。また、ステップS54では、ジャンプボタンの押下とともに方向転換を伴う方向操作入力が行われた場合は、上記ステップS7と同様に、方向転換に係る処理が行われる。すなわち、ユーザキャラクタPBが第1方向に移動しているときに、第2方向にユーザキャラクタPBを移動させることとなる方向操作入力が行われ、かつ、第2方向条件が満たされない場合は、ステップS54の処理が行われ、1又は複数のフレーム時間をかけてユーザキャラクタPBが第2方向に方向転換される。ステップS54の後、図31に示す壁のぼり処理が終了される。
【0213】
(壁のぼり中処理)
次に、図31のステップS51の壁のぼり中処理の詳細について説明する。図32は、ステップS51の壁のぼり中処理の一例を示すフローチャートである。
【0214】
ステップS61において、プロセッサ81は、壁のぼり中フラグがONか否かを判定する。壁のぼり中フラグは、後述するステップS64においてONに設定されるフラグであり、デフォルトではOFFに設定されている。ステップS61でNOと判定された場合、次にステップS62の処理が行われる。ステップS61でYESと判定された場合、次にステップS65の処理が行われる。
【0215】
ステップS62において、プロセッサ81は、第2方向条件を満たすか否かを判定する。ここでは、上記ステップS31と同様の判定が行われる。すなわち、ユーザキャラクタPBが壁面上に位置しているときに、当該壁面から離れる方向への方向操作入力があったか否かが判定される。ステップS62でYESと判定された場合、次にステップS63の処理が行われる。ステップS62でNOと判定された場合、次にステップS64の処理が行われる。
【0216】
ステップS63において、プロセッサ81は、第3ジャンプ処理を行う。ここでは、上記ステップS32と同様の処理が行われる。ステップS63の後、図32に示す壁のぼり中処理は終了される。なお、ステップS62でYESと判定されたことに応じて第3ジャンプ処理が開始されると、第3ジャンプ処理によるジャンプ中の状態になり、次の処理ループにおいて上記ステップS20でYESと判定される。このため、第3ジャンプ処理は、複数のフレーム時間(例えば、ユーザキャラクタPが地面に落下するまで)実行される。
【0217】
ステップS64において、プロセッサ81は、壁のぼり中フラグをONに設定する。ステップS64の後、次にステップS65の処理が行われる。
【0218】
上記ステップS62~S64の処理は、ジャンプボタンの長押しが解除されたときに1回だけ実行される。ジャンプボタンの長押しが解除されたときに、第2方向条件を満たす方向操作入力が行われているときは(ステップS62:YES)、第3ジャンプ処理が行われる。これにより、ユーザキャラクタPBは壁面から離れる方向にジャンプし、ステップS65以降の処理は行われない。一方、ジャンプボタンの長押しが解除されたときに、第2方向条件が満たされない場合は(ステップS62:NO)、壁のぼり中フラグがONに設定され(ステップS64)、ステップS65以降の処理が行われる。壁のぼり中フラグがONに設定されている間、ステップS65以降の処理は繰り返し行われる。
【0219】
ステップS65において、プロセッサ81は、アナログスティック32を用いて上方向の方向操作入力があるか否かを判定する。具体的には、プロセッサ81は、アナログスティック32の入力ベクトルの上方向の成分(y成分)が正の値か否かを判定する。ステップS65でYESと判定された場合、次にステップS66の処理が行われる。ステップS65でNOと判定された場合、次にステップS71の処理が行われる。
【0220】
ステップS66において、プロセッサ81は、予備動作の継続時間に応じてユーザキャラクタPBの移動速度を設定する。具体的には、プロセッサ81は、予備動作の継続時間(ジャンプボタンの長押しが継続した時間)が長いほど、移動速度を速くする。チャージ完了演出が行われた後は、最大速度である第2速度が設定される。ジャンプボタンが離される前の予備動作の継続時間に応じた速度が設定されるため、上方向の入力が継続している間、ユーザキャラクタPBの移動速度は維持されることになる。ステップS66の後、次にステップS67の処理が行われる。
【0221】
ステップS67において、プロセッサ81は、ユーザキャラクタPBをステップS66で設定した速度で移動させる。これにより、ユーザキャラクタPBは、まだ壁面上で移動開始していない場合は移動開始し、壁面上で既に移動開始している場合は引き続き移動する。ユーザキャラクタPBの移動方向は、アナログスティック32の入力方向に応じた方向に設定される。例えば、チャージ完了演出が行われた場合は、ユーザキャラクタPBは、第2速度で移動する。また、チャージ完了演出が行われていない場合は、ユーザキャラクタPBは予備動作の継続時間に応じた速度で移動する。なお、アナログスティック32の入力方向が変化した場合には、このステップS67において、ユーザキャラクタPBの移動方向も変化される。これにより、壁のぼり動作中にユーザキャラクタPBの移動方向を変化させることができる。ステップS67の後、次にステップS68の処理が行われる。
【0222】
ステップS68において、プロセッサ81は、ユーザキャラクタPBが壁面上の第1状態の領域201と他の領域との境界に到達したか否かを判定する。例えば、ユーザキャラクタPBが、壁面上の第1状態の領域201と壁面上の第2状態の領域202との境界に到達した場合は、ステップS68でYESと判定される。また、ユーザキャラクタPBが、壁面上の第1状態の領域201と壁面上の初期状態の領域203との境界に到達した場合は、ステップS68でYESと判定される。また、ユーザキャラクタPBが、壁面の端(壁面と、壁面でない面(例えば、図26の上面220)との境界)に到達した場合も、ステップS68でYESと判定される。ステップS68でYESと判定された場合、次にステップS69の処理が行われる。ステップS68でNOと判定された場合、図32に示す壁のぼり中処理は終了される。
【0223】
ステップS69において、プロセッサ81は、ユーザキャラクタPBに第4ジャンプ動作を行わせる第4ジャンプ処理を行う。例えば、上記チャージ完了演出が行われた場合、ユーザキャラクタPBは、第1状態の領域201の境界から勢いよくジャンプする。このときの初速は、最大速度である第2速度である。また、このときのジャンプの方向は、アナログスティック32の入力方向に応じた方向となる。また、第4ジャンプ動作が行われる場合、所定時間(例えば、40-50フレーム時間)、ユーザキャラクタPBは攻撃影響軽減状態に設定される。なお、上記チャージ完了演出が行われる前にジャンプボタンの長押しが解除された場合において、ユーザキャラクタPBが境界に到達した場合、ユーザキャラクタPBは当該境界からジャンプ(第4ジャンプ動作)するとともに、攻撃影響軽減状態に設定される。この場合、ユーザキャラクタPは、チャージ完了演出が行われるときの最高到達点よりも低い位置までしかジャンプしない。なお、予備動作の時間に応じた速度が所定未満であれば、ユーザキャラクタPBは境界からジャンプしないことがあってもよく、この場合は、攻撃影響軽減状態に設定されなくてもよい。ステップS69の後、次にステップS70の処理が行われる。
【0224】
ステップS70において、プロセッサ81は、壁のぼり中フラグをOFFに設定する。ステップS70の後、図32に示す壁のぼり中処理は終了される。
【0225】
一方、上方向の入力が終了した場合、ステップS71において、プロセッサ81は、ユーザキャラクタPBが既に壁面上を移動開始しているか否かを判定する。ここでは、壁のぼり中フラグがONにされてから、ステップS67の処理が行われることでユーザキャラクタPBが既に壁面上を移動しているか否かが判定される。ステップS71でYESと判定された場合、次にステップS72の処理が行われる。ステップS71でNOと判定された場合、図32に示す壁のぼり中処理は終了される。
【0226】
ステップS72において、プロセッサ81は、ユーザキャラクタPBの壁のぼり動作を停止させるための停止処理を行う。これにより、ユーザキャラクタPBは減速されて、所定時間経過後に停止される。ステップS72の後、次にステップS73の処理が行われる。
【0227】
ステップS73において、プロセッサ81は、壁のぼり中フラグをOFFに設定する。ステップS73の後、図32に示す壁のぼり中処理は終了される。なお、壁のぼり動作中にジャンプボタンが押下された場合において、上記第2方向条件を満たす方向操作入力が行われた場合は、ステップS65でNOと判定される。この場合、ステップS72では上記第3ジャンプ処理が行われて、ユーザキャラクタPBが壁から離れる方向に第3ジャンプ動作する。
【0228】
なお、上記処理は単なる例示であり、例えば各ステップで用いられた判定のための閾値が変更されたり、各ステップの順番が入れ替えられたりしてもよい。また、上記ステップに、別のステップが加えられたり、上記ステップの一部が省略されたりしてもよい。
【0229】
以上のように、ユーザキャラクタPBが地面上で潜伏状態であるときにジャンプボタンが押下された場合(ステップS23:YES)、速度条件と第1方向条件とが満たされる場合は、第2ジャンプ処理が行われる(ステップS28)。速度条件及び第1方向条件の少なくとも何れか一方が満たされない場合は、第1ジャンプ処理が行われる(ステップS27)。速度条件は、ジャンプボタンが押下される直前の所定期間において、ユーザキャラクタPBが速い速度で移動している場合に満たされやすい。具体的には、速度条件は、ユーザキャラクタPBが第1閾値よりも速い速度で移動している場合に満たされる。また、第1方向条件は、ユーザキャラクタPBが第1方向に移動しているときに、ユーザキャラクタPBを第2方向に移動させることとなる方向操作入力が行われた場合において、第1方向と第2方向との差が大きい場合に満たされやすい。具体的には、第1方向条件は、第1方向と第2方向との差が第2閾値より大きい場合に満たされる。第2ジャンプ処理が行われる場合は、第1ジャンプ処理が行われる場合よりも、ユーザキャラクタPBは、早く第2方向への方向転換を完了するとともにジャンプする。また、第2ジャンプ処理が行われる場合は、第1ジャンプ処理が行われる場合よりも、方向転換後のユーザキャラクタPBの移動速度が比較的速い。
【0230】
このように本実施形態では、ユーザキャラクタPBを速い速度で移動させているときに第2ジャンプ動作によって素早く方向転換させることができる。これにより、ユーザキャラクタPBの操作性を向上させることができる。ユーザキャラクタPBが高速で移動中であって大きな方向転換を伴う場合に第2ジャンプ動作が行われるため、潜伏状態であるユーザキャラクタPBの積極的な移動を促すことができる。例えば、ユーザキャラクタPBを敵キャラクタに向かって高速で移動させつつ、敵キャラクタからの攻撃を回避し易くすることができ、ユーザキャラクタに多様な動きをさせることで、ゲームの興趣性を向上させることができる。また、ユーザキャラクタPBがジャンプにより露出状態となるときに第2ジャンプ動作が行われるため、ユーザキャラクタPBが有利になり過ぎないようにすることができ、ゲームの興趣性を維持、向上させることができる。
【0231】
また、本実施形態では、第2ジャンプ動作が行われた場合、ユーザキャラクタPBは、攻撃影響軽減状態になる。攻撃影響軽減状態では、ユーザキャラクタPBが敵キャラクタECから攻撃を受けたときの不利な影響が抑制される。これにより、ユーザに第2ジャンプ動作を行わせる動機づけを与えることができる。攻撃影響軽減状態は、第2ジャンプ動作が行われた場合に短い時間しか継続しないため、ユーザキャラクタPBが有利になりすぎることを抑制することができる。
【0232】
また、本実施形態では、所定時間内で第2ジャンプ動作が連続して行われる場合は、連続して行われない場合よりも、方向転換後のユーザキャラクタPBの移動速度が遅くなる。すなわち、第2ジャンプ動作が行われた場合、方向転換後にユーザキャラクタPBが第1の速度で移動し、所定時間内に再び第2ジャンプ動作が行われた場合、方向転換後にユーザキャラクタPBは第1の速度よりも遅い第2の速度で移動する。これにより、ユーザキャラクタPBが有利になり過ぎることを抑制することができる。
【0233】
また、本実施形態では、ユーザキャラクタPBが壁面上にいるときにジャンプボタンが押下された場合(ジャンプボタンが短押しされた場合)(ステップS22:YES)、第2方向条件が満たされる場合は、ユーザキャラクタPBを壁面から離れる方向にジャンプさせる第3ジャンプ処理が行われる(ステップS32)。第3ジャンプ処理では、ユーザキャラクタPBが第1方向に移動中であっても、ユーザキャラクタPBは即座に方向転換して壁面から離れる方向にジャンプする。これにより、ユーザキャラクタPBが壁面上にいるときでも、素早く壁面から離れる方向にジャンプさせることができ、例えば敵キャラクタからの攻撃を回避し易くすることができる。
【0234】
また、本実施形態では、上記第1方向と第2方向との差が90度であっても、第1方向条件は満たされ、第2ジャンプ処理が行われる。すなわち、ジャンプボタンとともに、ユーザキャラクタPBが進行方向に対して真横に進む方向に方向操作入力が行われた場合でも、第2ジャンプ処理が行われる。これにより、真横への方向転換を即座に行うことができる。
【0235】
なお、ジャンプボタンが押下される直前の所定期間におけるユーザキャラクタPBの移動速度が速いほど、第1方向条件が満たされるための第1方向と第2方向との差が小さくてもよい。
【0236】
また、本実施形態では、ユーザキャラクタPBが壁面上にいるときにジャンプボタンが長押しされた場合、長押し中に予備動作が行われ(ステップS47)、ジャンプボタンが離されたことに応じて、壁のぼり動作が行われる(ステップS51)。壁のぼり動作中は、上方向への入力が継続している間、ユーザキャラクタPBは、壁面上を予備動作の継続時間に応じた速度で移動し続ける(ステップS66、S67)。予備動作が所定時間行われた場合には、ユーザキャラクタPBが壁面における第1状態の領域201の境界に到達したときに、ユーザキャラクタPBは、当該境界から第4ジャンプ動作を行う(ステップS69)。
【0237】
これにより、壁面上で第1状態の領域201との境界を越えて、ユーザキャラクタPBを大きくジャンプさせることができる。ユーザキャラクタの壁面における移動を多様化し、ゲームの興趣性を向上させることができる。
【0238】
また、本実施形態では、ユーザキャラクタPBが予備動作を行っている間、方向操作入力があった場合、当該方向操作入力に応じて、ユーザキャラクタPBの壁面上での位置が調整される(ステップS52)。具体的には、予備動作が開始されてからの時間に応じて、方向操作入力が行われたときのユーザキャラクタPBの移動速度が遅くなる。これにより、壁のぼり動作の開始位置を調整することができる。また、予備動作中はユーザキャラクタPBの移動速度が遅くなるため、ユーザがユーザキャラクタPBの位置を調整し易くすることができる。
【0239】
また、本実施形態では、ジャンプボタンの長押しが終了した後、上方向への方向操作入力が継続する間、ユーザキャラクタPBが壁面における第1状態の領域201上を移動し続け(ステップS67)、上方向への方向操作入力が終了すると当該移動も終了する(ステップS71)。また、上方向への方向操作入力が継続する間、ユーザキャラクタPBの移動速度が維持される(ステップS66)。これにより、壁のぼり動作が開始した後、壁のぼり動作を継続させたり、終了させたりすることができる。また、上方向への方向操作入力を継続することで、第1状態の領域201の境界までユーザキャラクタPBの移動速度を維持することができ、速度を維持したまま当該境界からユーザキャラクタPBをジャンプさせることができる。これにより、ユーザキャラクタPBを境界からジャンプさせることができる。
【0240】
また、本実施形態では、方向操作入力に応じて、壁のぼり動作中にユーザキャラクタPBの移動方向を変化させる(ステップS67)。方向操作入力が所定条件を満たす場合には、ユーザキャラクタPBの移動が停止される(ステップS72)。具体的には、上方向への入力が無くなった場合(ステップS65:NO)は、壁のぼり動作によるユーザキャラクタPBの移動は停止される。これにより、壁のぼり動作中に方向操作入力によって、ユーザキャラクタPBの移動方向を変化させたり、停止させたりすることができる。
【0241】
また、本実施形態では、方向操作入力に応じてユーザキャラクタPBを第1状態の領域201で移動させるときには、ユーザキャラクタPBを視認性の低い第1表示態様とし、ユーザキャラクタPBに予備動作を行わせている間は、第1表示態様よりも視認性の高い第2表示態様(予備動作態様)で表示する。このため、予備動作中に他のユーザから視認され易くなり、対戦相手から攻撃を受けやすくなる。これにより、壁のぼり動作によってユーザが対戦相手に対して有利になり過ぎないようにすることができ、ゲームのバランスを保つことができる。
【0242】
また、本実施形態では、予備動作の時間に応じて、ユーザキャラクタPBのジャンプの高さが異なる。具体的には、予備動作の時間に応じて、壁のぼり動作中のユーザキャラクタPBの移動速度が速くなり、第1状態の領域201の境界に達したときの速度が速くなる。このため、結果として、予備動作の時間が長いほど、ユーザキャラクタPBが境界を越えてジャンプするときのジャンプの高さが高くなる。これにより、予備動作を長くするほど、ユーザキャラクタPBを高くジャンプさせることができる。
【0243】
また、本実施形態では、ユーザキャラクタPBが壁面上にいる場合において、方向操作入力が行われない場合、重力によってユーザキャラクタPBが仮想空間の下方に自動で移動する。予備動作が行われている場合は、この下方への自動的な移動が抑制される(ステップS52)。これにより、予備動作中にユーザキャラクタPBの壁面上での位置を維持することができ、利便性を向上させることができる。
【0244】
また、本実施形態では、ユーザキャラクタPBが壁のぼり動作によって第1状態の領域201の境界に達し、第4ジャンプ動作が行われた場合は、ユーザキャラクタPBは攻撃影響軽減状態になる(ステップS69)。攻撃影響軽減状態では、ユーザキャラクタPBが敵キャラクタECから攻撃を受けたときの不利な影響が抑制される。これにより、ユーザに壁のぼり動作を行わせる動機づけを与えることができる。攻撃影響軽減状態は、第4ジャンプ動作が行われた場合に短い時間しか継続しないため、ユーザキャラクタPBが有利になりすぎることを抑制することができる。
【0245】
また、本実施形態では、予備動作中に、ジャンプボタンが離されるとともに第2方向条件を満たす方向操作入力が行われた場合、第3ジャンプ動作が行われる(ステップS63)。また、壁のぼり動作中に、ジャンプボタンが押下されるとともに第2方向条件を満たす方向操作入力が行われた場合も、第3ジャンプ動作が行われる。これにより、予備動作中、又は、壁のぼり動作中でも、所定の操作入力があった場合には、ユーザキャラクタPBを壁面から離れる方向にジャンプさせることができる。
【0246】
また、本実施形態では、ユーザキャラクタPBが壁面上で方向操作入力に応じて移動するときの移動速度よりも、ユーザキャラクタPBが壁のぼり動作によって壁面上を移動するときの移動速度の方を速くすることができる。これにより、壁のぼり動作による移動を促進することができ、ユーザキャラクタPBの壁面上での移動にバリエーションを持たせ、ゲームの興趣性を向上させることができる。
【0247】
また、本実施形態では、ユーザキャラクタPBが壁面上で方向操作入力に応じて移動する場合には、ユーザキャラクタPBは、壁面上の第1状態の領域201を超えて移動せず、ユーザキャラクタPBが壁のぼり動作によって壁面上を移動する場合には、ユーザキャラクタPBは、壁面上の第1状態の領域201を超えてジャンプする。これにより、ユーザキャラクタPBの壁面上での移動にバリエーションを持たせることができる。
【0248】
(変形例)
以上、本実施形態について説明したが、上述したものに限らず、以下のような変形が加えられてもよい。
【0249】
例えば、上記実施形態では、第2ジャンプ動作が行われる場合は、ユーザキャラクタを即座に方向転換させるとともに方向転換後の速度を比較的速くし、第1ジャンプ動作が行われる場合には、所定時間かけてユーザキャラクタを方向転換させるとともに方向転換後の速度を比較的遅くした。これにより、第2ジャンプ動作が行われる場合は第1ジャンプ動作が行われる場合よりも、ユーザキャラクタを素早く方向転換させるとともにジャンプさせるようにした。他の実施形態では、例えば、第1ジャンプ動作が行われる場合は、第1時間かけて方向転換とともにジャンプ動作が行われ、第2ジャンプ動作が行われる場合は、第1時間よりも短い第2時間かけて方向転換とともにジャンプ動作が行われてもよい。このように、第2ジャンプ動作が行われる場合は、第1ジャンプ動作が行われる場合よりも、方向転換までの時間が短くなるようにしてもよい。また、例えば、第1ジャンプ動作が行われる場合は、方向転換後のユーザキャラクタの初速が第1速度であり、第2ジャンプ動作が行われる場合は、方向転換後のユーザキャラクタの初速が第1速度より速い第2速度になるようにしてもよい。また、第1ジャンプ動作が行われる場合は、方向転換後にユーザキャラクタが第1加速度で加速され、第2ジャンプ動作が行われる場合は、方向転換後にユーザキャラクタが第1加速度より大きな第2加速度で加速されるようにしてもよい。このようにして、第2ジャンプ動作が行われる場合は、第1ジャンプ動作が行われる場合よりも、方向転換後のユーザキャラクタの移動速度が速くなるようにしてもよい。
【0250】
また、上記実施形態では、ジャンプボタンの入力があった場合に、当該入力時点より過去の方向操作入力と、当該入力時点における方向操作入力とに基づいて第1方向条件が満たされるか否かが判定された。他の実施形態では、ジャンプボタンの入力があった場合に、当該入力時点より過去の方向操作入力と、当該入力時点より後の方向操作入力とに基づいて第1方向条件が満たされるか否かが判定されてもよい。また、ジャンプボタンの入力があった場合に、当該入力時点における方向操作入力と、当該入力時点より後の方向操作入力とに基づいて第1方向条件が満たされるか否かが判定されてもよい。すなわち、ジャンプボタンの入力後に、移動方向と異なる方向への方向操作入力があったか否かを判定し、判定結果が肯定の場合に第2ジャンプ動作が行われてもよい。
【0251】
また、上記実施形態では、ジャンプボタンの入力があった時点から過去の所定期間におけるユーザキャラクタの移動速度と移動方向とに基づいて第2ジャンプ動作を行うか否かが判定された。所定期間は、ジャンプボタンの入力があった時点の1フレーム時間であってもよい。
【0252】
また、上記実施形態では、ジャンプボタンの入力があったか否かを判定し、ジャンプボタンの入力があった場合に、速度条件が満たされるか否かを判定するとともに、その時点の方向操作入力に基づいて第1方向条件が満たされるか否かを判定した。他の実施形態では、これらの判定の順番は適宜変更されてもよい。例えば、第1方向条件を満たす方向操作入力が行われたか否かを判定し、判定結果が肯定の場合にジャンプボタンの入力があるか否か、速度条件が満たされるか否かを判定してもよい。
【0253】
また、上記実施形態では、ユーザキャラクタPが地面(XZ平面と平行又は所定の角度未満の面)上にいる場合に第2ジャンプ動作を行い、壁面上にいる場合に第3ジャンプ動作を行い、何れのジャンプ動作を行う場合でも、方向転換後のユーザキャラクタPの移動速度は、方向転換前の移動速度に維持された。他の実施形態では、方向転換後のユーザキャラクタPの移動速度は、方向転換前の移動速度に依存せず、一定であってもよい。この場合、ユーザキャラクタPが壁面上にいる場合だけ方向転換後の移動速度が一定であり、一定の速度は、第2速度と同じであってもよいし、第2速度より速くてもよいし、第2速度より遅くてもよい。一方、ユーザキャラクタPが地面上にいる場合は方向転換前の移動速度に依存してもよい。
【0254】
また、上記実施形態では、仮想空間内にXZ平面と平行な地面オブジェクト200及び上面220が存在し、XZ平面と垂直な壁面オブジェクト210が存在するものとした。他の実施形態では、これらの他にも様々な地形オブジェクトの面が配置され、地形オブジェクトの各面がユーザの操作入力によって第1状態又は第2状態に変化されてもよい。地形オブジェクトには、XZ平面との角度が所定値(例えば60度)以上である壁面が配置され、当該壁面上でユーザキャラクタが上記壁のぼり動作を行うようにしてもよい。
【0255】
また、上記実施形態では、ジャンプボタンの長押しが解除された後、上方向への方向操作入力が継続している間、壁のぼり動作が継続するものとした。他の実施形態では、ジャンプボタンの長押しの解除に応じて壁のぼり動作が開始され、方向操作入力が無くても、壁面における第1状態の領域201の境界までユーザキャラクタが移動するようにしてもよい。
【0256】
また、上記実施形態では、壁のぼり動作中は予備動作の時間に応じた速度が維持されるものとしたが、他の実施形態では、壁のぼり動作中の移動速度が変化してもよい。例えば、壁のぼり動作中にユーザキャラクタを加速させてもよい。この場合、予備動作の時間が長いほど、壁のぼり動作中の加速度が大きくてもよい。
【0257】
また、上記実施形態ではユーザキャラクタPBが液体の中に潜ることで潜伏状態になり、ユーザキャラクタPBがジャンプすることで露出状態に変化するものとした。ユーザキャラクタの状態はこれに限らず、ユーザキャラクタは、潜伏状態と非潜伏状態とに変化してもよい。潜伏状態は、他のユーザから視認され難い状態であれば、液体の中に潜った状態に限られなくてもよい。
【0258】
また、上記実施形態では所定の操作入力が継続している間、ユーザキャラクタが特殊状態に設定されたが、他の実施形態では、所定の操作入力が継続されなくても、ユーザキャラクタが特殊状態に設定されてもよい。例えば、ユーザキャラクタが第1の状態の領域201上に位置する場合に、ユーザキャラクタが特殊状態に設定されてもよい。
【0259】
また、上記実施形態では、第2ジャンプ処理及び第3ジャンプ処理が行われる場合は、即座に方向転換が完了するとともに、ユーザキャラクタが攻撃影響軽減状態になるものとした。すなわち、ユーザキャラクタが第1方向への移動中に、ジャンプボタンの押下とともに第2方向に方向転換させることとなる方向操作入力が行われた場合、第1方向へ速度をある程度の時間をかけて減少させることなく、即座に「0」にし、第2方向に移動させた。他の実施形態では、第2ジャンプ処理及び/又は第3ジャンプ処理が行われる場合、ある程度の時間をかけて第1方向へ速度を減少させる一方で、ユーザキャラクタを攻撃影響軽減状態に設定してもよい。すなわち、他の実施形態では、第2ジャンプ処理が行われる場合は、即座に方向転換を行わずにユーザキャラクタを攻撃影響軽減状態に設定し、第1ジャンプ処理が行われる場合は、即座に方向転換を行わないとともにユーザキャラクタを攻撃影響軽減状態に設定しないようにしてもよい。
【0260】
また、上記フローチャートによる処理は単なる一例であり、例えば、ジャンプ処理の一部が壁のぼり処理において実行されてもよいし、壁のぼり処理の一部がジャンプ処理において実行されてもよい。例えば、壁面上での処理と、地面上での処理とで分けて、壁面上での処理において、上記第3ジャンプ処理に分岐するようにしてもよいし、地面上での処理において、上記第2ジャンプ処理に分岐するようにしてもよい。このように、図30で示したジャンプ処理、図31で示した壁のぼり処理は、いくつかの処理に分散されてもよい。
【0261】
また、上記実施形態では、複数のユーザによるマルチプレイゲームが行われるものとしたが、他の実施形態では、一人のユーザによってゲームが行われてもよい。この場合、敵キャラクタはCPUによって制御される。また、上記ゲームは単なる一例であり、例示したゲーム以外の他のゲームにおいて上記キャラクタの制御が適用されてもよい。
【0262】
また、上記ゲームプログラムは、他の任意の情報処理装置(例えば、スマートフォン、タブレット端末、パーソナルコンピュータ、サーバ等)において実行されてもよい。また、ゲームプログラムは、複数の装置によって構成される情報処理システムにおいて実行されてもよい。上述した処理は複数の装置によって分散実行されてもよい。
【0263】
また、上記実施形態及びその変形例に係る構成は、互いに矛盾しない限り、任意に組み合わせることが可能である。また、上記説明は本発明の例示に過ぎず、種々の改良や変形が加えられてもよい。
【符号の説明】
【0264】
1 ゲームシステム
2 本体装置
3 左コントローラ
4 右コントローラ
200 地面オブジェクト
201 第1の状態の領域
202 第2の状態の領域
203 初期状態の領域
210 壁面オブジェクト
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32