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

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

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

特許7166219ゲームプログラム、ゲームシステム、ゲーム装置制御方法、およびゲーム装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-27
(45)【発行日】2022-11-07
(54)【発明の名称】ゲームプログラム、ゲームシステム、ゲーム装置制御方法、およびゲーム装置
(51)【国際特許分類】
   A63F 13/211 20140101AFI20221028BHJP
   A63F 13/22 20140101ALI20221028BHJP
   A63F 13/428 20140101ALI20221028BHJP
   A63F 13/55 20140101ALI20221028BHJP
   A63F 13/5372 20140101ALI20221028BHJP
   G06F 3/01 20060101ALI20221028BHJP
   G06F 3/0346 20130101ALI20221028BHJP
   G06F 3/038 20130101ALI20221028BHJP
【FI】
A63F13/211
A63F13/22
A63F13/428
A63F13/55
A63F13/5372
G06F3/01 570
G06F3/0346 425
G06F3/038 310B
【請求項の数】 21
(21)【出願番号】P 2019096747
(22)【出願日】2019-05-23
(65)【公開番号】P2020188985
(43)【公開日】2020-11-26
【審査請求日】2021-03-09
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】110001276
【氏名又は名称】特許業務法人 小笠原特許事務所
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】神門 有史
(72)【発明者】
【氏名】大西 良明
(72)【発明者】
【氏名】森脇 彩湖
【審査官】磯田 真美
(56)【参考文献】
【文献】特開2015-047198(JP,A)
【文献】特開2011-036588(JP,A)
【文献】特開2018-019894(JP,A)
【文献】特開2002-320777(JP,A)
【文献】国際公開第2012/001754(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00 - 13/98
A63F 9/24
(57)【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータに実行させるゲームプログラムであって、
前記コンピュータを、
方向入力部および慣性センサを少なくとも備えるコントローラから、方向入力データおよび慣性センサデータを少なくとも含む操作データを取得する操作データ取得手段と、
前記方向入力データに基づいて、仮想空間内におけるプレイヤキャラクタの移動を制御するプレイヤキャラクタ制御手段と、
所定のゲーム処理に用いられるカーソルの位置の制御モードを第1の制御モードと第2の制御モードとの間で切り替える切り替え手段と、
前記第1の制御モードのときに、前記プレイヤキャラクタの位置および向きに基づいて算出した前記仮想空間内の位置を第1の位置とし、更に、当該第1の位置を基点としてその位置を前記慣性センサデータに基づいて更に移動させた位置を第2の位置とし、当該第2の位置を前記カーソルの位置として決定するカーソル制御第1手段と、
前記第2の制御モードのときに、前記仮想空間内の所定のオブジェクト毎に関連付けられている所定の位置を前記第1の位置とし、前記カーソルの移動範囲を当該第1の位置を含む当該仮想空間内の所定の範囲内に制限し、当該範囲内において当該第1の位置を基点としてその位置を前記慣性センサデータに基づいて更に移動させた位置を前記第2の位置とし、当該第2の位置を前記カーソルの位置として決定するカーソル制御第2手段と、
前記操作データに基づいた指示に応じて、前記仮想空間内における前記カーソルの位置に対して所定のゲーム処理を行うカーソル位置関連処理手段として機能させる、ゲームプログラム。
【請求項2】
前記カーソル制御第1手段は、前記仮想空間内において、前記プレイヤキャラクタの位置から当該プレイヤキャラクタの向きに沿った方向に所定量変位させた位置を前記第1の位置とする、請求項1記載のゲームプログラム。
【請求項3】
前記カーソル制御第1手段および前記カーソル制御第2手段は、前記慣性センサデータに基づいて、所定の基準姿勢からの前記コントローラの姿勢の変化量を算出し、当該変化量に応じた位置を前記第2の位置とする、請求項1または2に記載のゲームプログラム。
【請求項4】
前記カーソル制御第2手段は、前記コントローラの姿勢の変化量に対するカーソルの移動量を、前記カーソル制御第1手段における移動量よりも少なくする、請求項3に記載のゲームプログラム。
【請求項5】
前記切り替え手段は、前記第1の制御モードと前記第2の制御モードとの切り替えが行われたときに、前記第1の位置からの前記慣性センサデータに基づく移動量を初期化すると共に、当該切り替えが行われたときの前記コントローラの姿勢を前記所定の基準姿勢とする、請求項3または4に記載のゲームプログラム。
【請求項6】
前記切り替え手段は、前記第1の制御モードから第2の制御モードに切り替えられたとき、予め設定対象として設定されている所定の対象オブジェクト上の所定の位置を前記第1の位置として設定し、
前記カーソル制御第2手段は、前記第2の制御モードのときに、前記カーソル位置を含む所定範囲内に前記対象オブジェクトが複数存在する場合は、前記第1の位置の設定対象となる対象オブジェクトを前記操作データに基づいて切り替えると共に、切り替え後の対象オブジェクト上の所定の位置を前記第1の位置として設定する、請求項1乃至5のいずれか記載のゲームプログラム。
【請求項7】
前記カーソル位置関連処理手段は、前記プレイヤキャラクタに、所定のオブジェクトを
前記カーソル位置に向けて移動させる処理を行う、請求項1乃至6のいずれか記載のゲームプログラム。
【請求項8】
方向入力部および慣性センサを少なくとも備えるコントローラを有するゲームシステムであって、
前記コントローラから、方向入力データおよび慣性センサデータを少なくとも含む操作データを取得する操作データ取得手段と、
前記方向入力データに基づいて、仮想空間内におけるプレイヤキャラクタの移動を制御するプレイヤキャラクタ制御手段と、
所定のゲーム処理に用いられるカーソルの位置の制御モードを第1の制御モードと第2の制御モードとの間で切り替える切り替え手段と、
前記第1の制御モードのときに、前記プレイヤキャラクタの位置および向きに基づいて算出した前記仮想空間内の位置を第1の位置とし、更に、当該第1の位置を基点としてその位置を前記慣性センサデータに基づいて更に移動させた位置を第2の位置とし、当該第2の位置を前記カーソルの位置として決定するカーソル制御第1手段と、
前記第2の制御モードのときに、前記仮想空間内の所定のオブジェクト毎に関連付けられている所定の位置を前記第1の位置とし、前記カーソルの移動範囲を当該第1の位置を含む当該仮想空間内の所定の範囲内に制限し、当該範囲内において当該第1の位置を基点としてその位置を前記慣性センサデータに基づいて更に移動させた位置を前記第2の位置とし、当該第2の位置を前記カーソルの位置として決定するカーソル制御第2手段と、
前記操作データに基づいた指示に応じて、前記仮想空間内における前記カーソルの位置に対して所定のゲーム処理を行うカーソル位置関連処理手段とを備える、ゲームシステム。
【請求項9】
前記カーソル制御第1手段は、前記仮想空間内において、前記プレイヤキャラクタの位置から前記プレイヤキャラクタの向きに沿った方向に所定量変位させた位置を前記第1の位置とする、請求項8に記載のゲームシステム。
【請求項10】
前記カーソル制御第1手段および前記カーソル制御第2手段は、前記慣性センサデータに基づいて、所定の基準姿勢からの前記コントローラの姿勢の変化量を算出し、当該変化量に応じた位置を前記第2の位置とする、請求項8または9に記載のゲームシステム。
【請求項11】
前記カーソル制御第2手段は、前記コントローラの姿勢の変化量に対するカーソルの移動量を、前記カーソル制御第1手段における移動量よりも少なくする、請求項10に記載のゲームシステム。
【請求項12】
前記切り替え手段は、前記第1の制御モードと前記第2の制御モードとの切り替えが行われたときに、前記第1の位置からの前記慣性センサデータに基づく移動量を初期化すると共に、当該切り替えが行われたときの前記コントローラの姿勢を前記所定の基準姿勢とする、請求項10または11に記載のゲームシステム。
【請求項13】
前記切り替え手段は、前記第1の制御モードから第2の制御モードに切り替えられたとき、予め設定対象として設定されている所定の対象オブジェクト上の所定の位置を前記第1の位置として設定し、
前記カーソル制御第2手段は、前記第2の制御モードのときに、前記カーソル位置を含む所定範囲内に前記対象オブジェクトが複数存在する場合は、前記第1の位置の設定対象となる対象オブジェクトを前記操作データに基づいて切り替えると共に、切り替え後の対象オブジェクト上の所定の位置を前記第1の位置として設定する、請求項8乃至12のいずれか記載のゲームシステム。
【請求項14】
前記カーソル位置関連処理手段は、前記プレイヤキャラクタが前記カーソル位置に向かって所定のオブジェクトを移動させる処理を行う、請求項8乃至13のいずれか記載のゲームシステム。
【請求項15】
前記ゲームシステムは、組み合わせて1つのコントローラとしても利用可能な2つのコントローラを有し、
前記コントローラは、
プレイヤがゲームをプレイするため当該コントローラを把持したときに当該プレイヤ側を向き、所定の操作部が設けられている当該コントローラの所定面における所定の一辺が他の一辺よりも長くなっている形状を有しており、
第1の姿勢で前記2つのコントローラがプレイヤに把持されている状態で、当該2つのコントローラの組み合わせを1つのコントローラとして前記ゲーム処理に係る操作に利用可能であると共に、前記所定面がプレイヤ側を向く状態を保つように当該第1の姿勢を所定の1軸周りに90度回転させた姿勢である第2の姿勢でいずれか1つのコントローラがプレイヤに把持されている状態でも、当該1つのコントローラを前記ゲーム処理に係る操作に利用可能である、請求項8に記載のゲームシステム。
【請求項16】
ゲーム装置を制御するコンピュータが実行するゲーム装置制御方法であって、
前記コンピュータは、
方向入力部および慣性センサを少なくとも備えるコントローラから、方向入力データおよび慣性センサデータを少なくとも含む操作データを取得する操作データ取得ステップと、
前記方向入力データに基づいて、仮想空間内におけるプレイヤキャラクタの移動を制御するプレイヤキャラクタ制御ステップと、
所定のゲーム処理に用いられるカーソルの位置の制御モードを第1の制御モードと第2の制御モードとの間で切り替える切り替えステップと、
前記第1の制御モードのときに、前記プレイヤキャラクタの位置および向きに基づいて算出した前記仮想空間内の位置を第1の位置とし、更に、当該第1の位置を基点としてその位置を前記慣性センサデータに基づいて更に移動させた位置を第2の位置とし、当該第2の位置を前記カーソルの位置として決定するカーソル制御第1ステップと、
前記第2の制御モードのときに、前記仮想空間内の所定のオブジェクト毎に関連付けられている所定の位置を前記第1の位置とし、前記カーソルの移動範囲を当該第1の位置を含む当該仮想空間内の所定の範囲内に制限し、当該範囲内において当該第1の位置を基点としてその位置を前記慣性センサデータに基づいて更に移動させた位置を前記第2の位置とし、当該第2の位置を前記カーソルの位置として決定するカーソル制御第2ステップと、
前記操作データに基づいた指示に応じて、前記仮想空間内における前記カーソルの位置に対して所定のゲーム処理を行うカーソル位置関連処理ステップとを実行する、ゲーム装置制御方法。
【請求項17】
前記カーソル制御第1ステップでは、前記仮想空間内において、前記プレイヤキャラクタの位置から前記プレイヤキャラクタの向きに沿った方向に所定量変位させた位置を前記第1の位置とする、請求項16記載のゲーム装置制御方法。
【請求項18】
前記カーソル制御第1ステップおよび前記カーソル制御第2ステップにおいては、前記慣性センサデータに基づいて、所定の基準姿勢からの前記コントローラの姿勢の変化量を算出し、当該変化量に応じた位置を前記第2の位置とする、請求項16または17に記載のゲーム装置制御方法。
【請求項19】
方向入力部および慣性センサを少なくとも備えるコントローラを有するゲーム装置であって、
前記コントローラから、方向入力データおよび慣性センサデータを少なくとも含む操作データを取得する操作データ取得手段と、
前記方向入力データに基づいて、仮想空間内におけるプレイヤキャラクタの移動を制御するプレイヤキャラクタ制御手段と、
所定のゲーム処理に用いられるカーソルの位置の制御モードを第1の制御モードと第2の制御モードとの間で切り替える切り替え手段と、
前記第1の制御モードのときに、前記プレイヤキャラクタの位置および向きに基づいて算出した前記仮想空間内の位置を第1の位置とし、更に、当該第1の位置を基点としてその位置を前記慣性センサデータに基づいて更に移動させた位置を第2の位置とし、当該第2の位置を前記カーソルの位置として決定するカーソル制御第1手段と、
前記第2の制御モードのときに、前記仮想空間内の所定のオブジェクト毎に関連付けられている所定の位置を前記第1の位置とし、前記カーソルの移動範囲を当該第1の位置を含む当該仮想空間内の所定の範囲内に制限し、当該範囲内において当該第1の位置を基点としてその位置を前記慣性センサデータに基づいて更に移動させた位置を前記第2の位置とし、当該第2の位置を前記カーソルの位置として決定するカーソル制御第2手段と、
前記操作データに基づいた指示に応じて、前記仮想空間内における前記カーソルの位置に対して所定のゲーム処理を行うカーソル位置関連処理手段とを備える、ゲーム装置。
【請求項20】
前記カーソル制御第1手段は、前記仮想空間内において、前記プレイヤキャラクタの位置から前記プレイヤキャラクタの向きに沿った方向に所定量変位させた位置を前記第1の位置とする、請求項19記載のゲーム装置。
【請求項21】
前記カーソル制御第1手段および前記カーソル制御第2手段は、前記慣性センサデータに基づいて、所定の基準姿勢からの前記コントローラの姿勢の変化量を算出し、当該変化量に応じた位置を前記第2の位置とする、請求項19または20に記載のゲーム装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カーソルの移動を制御するゲームプログラム、ゲームシステム、ゲーム装置制御方法、およびゲーム装置処理に関する。
【背景技術】
【0002】
従来から、プレイヤキャラクタの移動と連動してカーソルを移動させることが可能なゲームが知られている(例えば、非特許文献1)。このゲームでは、左アナログスティックを操作することで、プレイヤキャラクタを仮想3次元空間内で移動させることができる。そして、このプレイヤキャラクタの移動に伴って、プレイヤキャラクタの位置から所定距離離れた位置にあるカーソルも移動させることができる。すなわち、左アナログスティックの操作で、プレイヤキャラクタおよびカーソルを連動して移動させることができた。また、プレイヤはプレイヤキャラクタに、このカーソルが示す位置に向けて所定のオブジェクトを投げさせることも可能であった。
【先行技術文献】
【非特許文献】
【0003】
【文献】任天堂株式会社、”ピクミン3”、[online]、[平成30年5月9日検索]、インターネット(URL:https://www.nintendo.co.jp/wiiu/ac3j/index.html)
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のように、プレイヤは、カーソルの位置に向けて所定のオブジェクトを投げさせることが可能である。その一方で、カーソルの移動は、プレイヤキャラクタの移動(上記の例では左アナログスティックの操作)に連動するものとなっている。この点について、所定のオブジェクトを投げる位置についてより細かく狙いをつけたいというニーズの発生も想定された。例えば、敵キャラクタの「弱点」を狙って所定のオブジェクトを投げたいというような場合である。このような点から、カーソルの移動に関して、操作性を更に改善する余地があった。
【0005】
それ故に、本発明の目的は、プレイヤキャラクタの移動およびこれと連動して動くカーソルの移動制御に関して、より操作性を高めることが可能なゲームプログラム等を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、例えば以下のような構成例が挙げられる。
【0007】
構成例の一例は、情報処理装置のコンピュータに実行させるゲームプログラムであって、コンピュータを、操作データ取得手段と、プレイヤキャラクタ制御手段と、切り替え手段と、カーソル制御第1手段と、カーソル制御第2手段と、カーソル位置関連処理手段として機能させる。操作データ取得手段は、方向入力部および慣性センサを少なくとも備えるコントローラから、方向入力データおよび慣性センサデータを少なくとも含む操作データを取得する。プレイヤキャラクタ制御手段は、方向入力データに基づいて、仮想空間内におけるプレイヤキャラクタの移動を制御する。切り替え手段は、所定のゲーム処理に用いられるカーソルの位置の制御モードを第1の制御モードと第2の制御モードとの間で切り替える。カーソル制御第1手段は、第1の制御モードのときに、プレイヤキャラクタの
位置および向きに基づいて算出した仮想空間内の位置を第1の位置とし、更に、当該第1の位置を基点としてその位置を慣性センサデータに基づいて更に移動させた位置を第2の位置とし、当該第2の位置をカーソルの位置として決定する。カーソル制御第2手段は、第2の制御モードのときに、仮想空間内の所定の位置を第1の位置とし、カーソルの移動範囲を当該第1の位置を含む当該仮想空間内の所定の範囲内に制限し、当該範囲内において当該第1の位置を基点としてその位置を慣性センサデータに基づいて更に移動させた位置を第2の位置とし、当該第2の位置をカーソルの位置として決定する。カーソル位置関連処理手段は、操作データに基づいた指示に応じて、仮想空間内におけるカーソルの位置に対して所定のゲーム処理を行う。
【0008】
上記構成例によれば、カーソルの位置について、プレイヤキャラクタの移動に連動させるようにして、その位置指定が行える。更に、例えばコントローラの姿勢を変更することで、このカーソルの位置を更に変化させることができ、カーソル位置の微調整も可能となっている。これにより、カーソル位置の操作についての操作性をより高めることができる。更に、第2の制御モードのときは、所定の位置を基点とした範囲内でのみカーソルの移動が可能となっている。これにより、例えばあるオブジェクトに対してより細かい狙いをつけたいような場合に、より狙いをつけやすくなり、操作性を向上できる。
【0009】
他の構成例として、
カーソル制御第1手段は、仮想空間内において、プレイヤキャラクタの位置からプレイヤキャラクタの向きに沿った方向に所定量変位させた位置を第1の位置としてもよい。
【0010】
上記構成例によれば、カーソル位置について、プレイヤキャラクタの移動方向の入力操作だけでおおまかな位置指定が行うことができ、操作性を向上させることができる。
【0011】
他の構成例として、カーソル制御第1手段およびカーソル制御第2手段は、慣性センサデータに基づいて、所定の基準姿勢からのコントローラの姿勢の変化量を算出し、当該変化量に応じた位置を第2の位置としてもよい。
【0012】
上記構成例によれば、コントローラの姿勢の変化でカーソルの位置を微調整することができ、直感的かつ細やかな操作性を提供できる。
【0013】
他の構成例として、カーソル制御第2手段は、コントローラの姿勢の変化量に対するカーソルの移動量を、カーソル制御第1手段における移動量よりも少なくしてもよい。
【0014】
上記構成例によれば、第2の制御モードの場合に、より細やかで正確なカーソルの位置指定を行いやすくさせることができる。すなわち、カーソルの微妙な位置調整を行いやすくさせることができる。
【0015】
他の構成例として、切り替え手段は、第1の制御モードと第2の制御モードとの切り替えが行われたときに、第1の位置からの慣性センサデータに基づく移動量を初期化すると共に、当該切り替えが行われたときのコントローラの姿勢を所定の基準姿勢としてもよい。
【0016】
上記構成例によれば、制御モードの切り替え時に、例えば当該切り替え時のコントローラの姿勢を基準として、慣性センサデータに基づくカーソル位置の微調整が可能となるため、操作性をより高めることができる。
【0017】
他の構成例として、切り替え手段は、第1の制御モードから第2の制御モードに切り替えられたとき、予め設定対象として設定されている所定の対象オブジェクト上の所定の位
置を第1の位置として設定してもよい。更に、カーソル制御第2手段は、第2の制御モードのときに、カーソル位置を含む所定範囲内に前記対象オブジェクトが複数存在する場合は、第1の位置の設定対象となる対象オブジェクトを操作データに基づいて切り替えると共に、切り替え後の対象オブジェクト上の所定の位置を第1の位置として設定してもよい。
【0018】
上記構成例によれば、例えば、所定のゲーム処理(攻撃等)を行いたい対象が複数存在する場合に、第2の制御モードのまま、その対象を切り替えることが切換えることができ、操作性を向上させることができる。
【0019】
他の構成例として、カーソル位置関連処理手段は、プレイヤキャラクタに、所定のオブジェクトをカーソル位置に向けて移動させる処理を行わせるようにしてもよい。
【0020】
上記構成例によれば、例えば、仮想空間内のある位置に「狙い」を付け、その位置に対して所定のオブジェクト等を移動させて遊ぶゲームにおける操作性を高めることができる。
【0021】
他の構成例として、方向入力部および慣性センサを少なくとも備えるコントローラを有するゲームシステムに上記の構成を適用してもよい。また、この場合、ゲームシステムは、組み合わせて1つのコントローラとしても利用可能な2つのコントローラを有していてもよい。そして、当該コントローラは、プレイヤがゲームをプレイするため当該コントローラを把持したときに当該プレイヤ側を向き、所定の操作部が設けられている当該コントローラの所定面における所定の一辺が他の一辺よりも長くなっている形状を有しており、第1の姿勢で前記2つのコントローラがプレイヤに把持されている状態で、当該2つのコントローラの組み合わせを1つのコントローラとして前記ゲーム処理に係る操作に利用可能であると共に、所定面がプレイヤ側を向く状態を保つように当該第1の姿勢を所定の1軸周りに90度回転させた姿勢である第2の姿勢でいずれか1つのコントローラがプレイヤに把持されている状態でも、当該1つのコントローラをゲーム処理に係る操作に利用可能なように構成してもよい。
【0022】
上記構成例によれば、例えば、略直方体の形状の2つのコントローラを用いる場合であって、縦長の姿勢で2本のコントローラを1つのコントローラとして組み合わせて用いる場合でも、横長の姿勢で1つのコントローラを用いる場合でも、プレイヤから見て奥行き方向にかかるカーソル位置の微調整について、直感的な操作を提供し、操作のしやすさを向上することができる。
【発明の効果】
【0023】
本実施形態によれば、プレイヤキャラクタの移動(方向入力操作等)に合わせた大まかなカーソル位置の移動制御と、慣性センサデータに基づいたカーソル位置の微調整の制御の双方を併用でき、操作性を向上することができる。
【図面の簡単な説明】
【0024】
図1】本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図
図2】本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図
図3】本体装置2の一例を示す六面図
図4】左コントローラ3の一例を示す六面図
図5】右コントローラ4の一例を示す六面図
図6】本体装置2の内部構成の一例を示すブロック図
図7】本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図
図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】ロックオン調整可能範囲について説明するための図
図33】投げ対象選択UIの一例
図34】投げ対象選択UIの一例
図35】投げ対象選択UIの動き方の一例を説明するための図
図36】投げ対象選択UIの動き方の一例を説明するための図
図37】投げ対象選択UIの動き方の一例を説明するための図
図38】本体装置2のDRAM85に記憶される各種データの一例を示すメモリマップ
図39】お供キャラクタマスタデータ312のデータ構成の一例を示す図
図40】お供キャラクタデータ313のデータ構成の一例を示す図
図41】第1隊列データ315のデータ構成の一例を示す図
図42】1P用選択UIデータ319のデータ構造の一例を示す図
図43】本ゲーム処理の詳細を示すフローチャート
図44】操作内容に基づく処理の詳細を示すフローチャート
図45】移動処理の詳細を示すフローチャート
図46】ロックオン処理の詳細を示すフローチャート
図47】ロックオン処理の詳細を示すフローチャート
図48】カーソル制御処理の詳細を示すフローチャート
図49】投げ対象切り替え処理を示すフローチャート
図50】投げ対象切り替え処理の詳細を示すフローチャート
図51】投げ処理の詳細を示すフローチャート
図52】モード設定処理の詳細を示すフローチャート
図53】合流処理の詳細を示すフローチャート
図54】分割処理の詳細を示すフローチャート
図55】仮想カメラ設定処理の詳細を示すフローチャート
図56】UI配置処理の詳細を示すフローチャート
【発明を実施するための形態】
【0025】
以下、本発明の一実施形態について説明する。
【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は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0057】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0058】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、図6で示しているため図7では省略している。
【0059】
左コントローラ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(登録商標)の規格に従って行われる。
【0060】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0061】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0062】
左コントローラ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へ出力される。
【0063】
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0064】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサ104および角速度センサ105の検出結果)に基づいて算出することができる。
【0065】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0066】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0067】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、アナログスティック52、慣性センサ(加速度センサ114および角速度センサ115)を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0068】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0069】
[本実施形態におけるゲーム処理の概要]
次に、本実施形態にかかるゲームシステムで実行されるゲーム処理の動作概要を説明す
る。なお、本実施形態では、本体装置2単体がクレードルに装着され、本体装置2が、クレードルを介して画像データや音声データを据置型モニタ等に出力する態様でゲームプレイを行う場合を例に説明する。
【0070】
本実施形態で想定するゲーム処理は、主に2人のプレイヤで遊ぶ場合、すなわち、2人同時プレイを想定するが、理解の容易化のため、まず、1人プレイの場合を例として、本実施形態にかかるゲームの概要を説明する。
【0071】
図8は、本ゲームの舞台となる仮想3次元ゲーム空間を仮想カメラで撮像することで生成される本ゲームの画面例である。図8では、プレイヤキャラクタ201A、201B、201C(以下、総称してプレイヤキャラクタと呼ぶこともある)、複数のお供キャラクタ202、カーソルオブジェクト203(以下、単にカーソルと呼ぶ)、投げ対象選択UI(ユーザインタフェース)204、操作キャラ情報画像205とが表示されている。プレイヤキャラクタは、プレイヤの操作入力に基づいて操作可能なオブジェクトである。一方、お供キャラクタ202は、プレイヤが直接的には操作できないオブジェクトである。当該お供キャラクタ202は、基本的には、プレイヤキャラクタの移動に追従して移動する。ここで、本ゲームでは、「隊列」の概念がある。当該「隊列」は、1体の「リーダー」と複数の「メンバー」で構成され得る。なお、隊列には、少なくとも1体の「リーダー」が必要であるが、「メンバー」は0体でもよい。すなわち、「リーダー」だけで構成される隊列もあり得る。そして、上記3体のプレイヤキャラクタ201のうち、いずれか1体が「リーダー」となり得る。「リーダー」ではない他のプレイヤキャラクタ201については「メンバー」となる。または、別の隊列の「リーダー」となる。また上記お供キャラクタ202は、「メンバー」として構成される。このお供キャラクタ202は、ゲームフィールド上に点在しており、プレイヤが所定の操作を行うことで、所定のお供キャラクタ202を隊列に加えることができる。本ゲームでは、基本的にはこの「隊列」単位で移動する。そして、本ゲームは、このお供キャラクタ202を様々な場面で利用して進めていくゲームである。
【0072】
カーソル203は、プレイヤキャラクタ201の進行方向側であって、プレイヤキャラクタ201の位置から所定距離離れた位置に表示されるオブジェクトであり、照準としての役割を有する。以下に説明するが、本ゲームでは、お供キャラクタ202をカーソル203のある地点に向けて「投げる」ことができる。また、投げ対象選択UI204は、当該投げる対象を選択するためのUIである。当該投げ対象選択UI204については後ほど説明する。操作キャラ情報画像205は、同じ隊列内にいるプレイヤキャラクタ201を示すものであり、かつ、現在操作中のプレイヤキャラクタを示すものである。これも後述するが、本ゲームでは、プレイヤは3体のプレイヤキャラクタのうちいずれか1体を操作対象として操作できる。また、操作対象は切換える事が可能である。
【0073】
また、図示は省略するが、ゲーム画面には、例えばミニマップ画像や所持アイテムとその個数を示す画像等のゲームに関する各種情報も表示され得る。
【0074】
本ゲームでは、プレイヤキャラクタ201が可能な動作として、「投げる」という動作と、「笛を吹く」という動作がある。「投げる」動作は、隊列内のお供キャラクタ202をカーソル203の地点に向けて投げる動作である。このカーソル203の地点は、操作対象となっているプレイヤキャラクタ201A~201Cのいずれかの位置から所定距離以上離れた位置である。そのため、当該「投げる」動作は、お供キャラクタ202をプレイヤキャラクタ201から所定距離以上離れた地点に移動させる処理であるともいえる。なお、投げられたお供キャラクタ202は、その投げられた先の近傍に存在する各種オブジェクトに応じて、様々な行動を行う。例えば、投げられた先に「敵キャラクタ」がいる場合は、お供キャラクタ202はその敵キャラクタに攻撃を行う。また、投げられた先に
「素材オブジェクト」や「食料オブジェクト」があるときは、お供キャラクタ202は、ゲームフィールド上で「拠点」として予め設定されている場所にこれらのオブジェクトを運搬するという行動を行う。なお、投げる対象に関しては、プレイヤは、後述の「後衛キャラ」であるプレイヤキャラクタ201も投げることができる。そして、「後衛キャラ」を投げることで、プレイヤは、当該投げられた後衛キャラクタを「リーダー」とする別の隊列を生成することができる。このように「後衛キャラ」を投げて別の隊列を生成することを隊列の「分割」と呼ぶ。この分割にかかる操作に関しては、別途後述する。
【0075】
一方、「笛を吹く」動作は、隊列の構成を制御するための動作である、具体的には、笛の吹き方に応じて、ゲームフィールドに点在しているお供キャラクタ202を自分の隊列に合流させたり、隊列を解散したりすることができる。隊列の合流・解散の制御に関しては、後ほど別途説明する
【0076】
なお、本ゲームでは、お供キャラクタ202として、その性質や能力が異なる数種類のお供キャラクタが用意されている。上記図8では、お供キャラクタ202の色の違いによって、その種類の違いを示している。そして、上述したような投げられたお供キャラクタ202が取る行動は、その種類によって異なる。また、攻撃行動に関しても、その種類に応じて攻撃力が異なっていたり、ある種類のお供キャラクタ202は敵キャラクタに状態異常(例えば毒状態等)を付与したりする。そのため、プレイヤは、投げる先にあるオブジェクトに応じて、どの種類のお供キャラクタ202を投げるのが適切か、等を考えながらプレイすることになる。なお、投げるお供キャラクタ等の選択操作に関しては、後述する。
【0077】
ところで、本ゲームでは、上記のように3体のプレイヤキャラクタ201A~201Cが存在している。1人プレイの場合は、プレイヤが直接的に操作できるのは、このうちのいずれか一体となっている。そして、プレイヤは、操作対象となるプレイヤキャラクタ201を切換えることも可能である。つまり、1人プレイの場合は、プレイヤは、この3体のプレイヤキャラクタを切り替えてプレイすることが可能である。また、後述する2人プレイの場合は、3体のプレイヤキャラクタ201のうち2体をそれぞれのプレイヤが操作することが可能となる。例えば、同じ隊列にプレイヤキャラクタ201Aおよびプレイヤキャラクタ201Bが存在し、プレイヤキャラクタ201Cだけ別隊列にいる場合を想定する。この場合、プレイヤキャラクタ201Aを第1のプレイヤが操作し、プレイヤキャラクタ201Bを第2のプレイヤが操作することができる。また、プレイ中に操作対象を切り替えることも可能であるため、プレイ中に、第2のプレイヤは、自身の操作対象をプレイヤキャラクタ201Bからプレイヤキャラクタ201Cに切り替えることもできる。更にその後、第1のプレイヤが、自身の操作対象をプレイヤキャラクタ201Aからプレイヤキャラクタ201Bに切り替えることも可能である。つまり、操作対象となっていないプレイヤキャラクタ201への切り替えが可能となっている。なお、本実施形態では、切り替え先となるプレイヤキャラクタは、同じ隊列内のプレイヤキャラクタであってもよいし、別の隊列のプレイヤキャラクタであってもよい。他の実施形態では、例えば、別の隊列のプレイヤキャラクタにのみ切り替え可能な構成としてもよい。
【0078】
なお、このような切り替えに際して、基本的には、操作対象となっているプレイヤキャラクタ201が画面の略中央に表示されるように仮想カメラが適宜制御される。例えば、各プレイヤキャラクタに対応する仮想カメラが用意されており(つまり、合計3つの仮想カメラがある)、上記の切り替え操作に応じて、使用する仮想カメラを切り替える制御等が行われる。また、他の例では、仮想カメラは各プレイヤに応じて用意され、上記に切り替え操作に応じて、操作対象のプレイヤキャラクタ201が画面の略中央に表示されるように、仮想カメラの位置や向き等のパラメータを変更するようにしてもよい。つまり、1つの仮想カメラを操作対象の変更に応じて移動させるような処理としてもよい。
【0079】
図9図10に、1人プレイの場合の、キャラクタ切り替えの際の画面例を示す。図9では、現在の操作対象がプレイヤキャラクタ201Aである状態を示す。また、その隊列内のプレイヤキャラクタとして、プレイヤキャラクタ201Aしかいない状態を示す。プレイヤキャラクタ201B、201Cは、それぞれ、別の隊列として、画面には表示されていない別の場所で待機中の状態である。この状態で、例えば、プレイヤが操作対象をプレイヤキャラクタ201Cに切り替える場合を考える。この場合、プレイヤがキャラクタ切り替えのための所定の操作、例えばYボタン56を押すと、図9に示すようなキャラ切り替えメニュー207が現在プレイ中のゲーム画面に重畳して表示される。このキャラ切り替えメニュー207では、切換えることが可能なプレイヤキャラクタの画像が表示されている。この状態で、プレイヤは、例えばYボタン56を押下したまま、アナログスティック32を右または左に傾け、Yボタン56から指を離すことで、その方向に対応したプレイヤキャラクタ201に操作対象を切換えることができる。このとき、当該キャラ切り替えメニュー207は画面から消去される。例えば、図9の状態でプレイヤが、Yボタン56を押下したまま、スティック32を左に傾け、Yボタン56から指を離した場合、図10に示すように、操作対象をプレイヤキャラクタ201Aからプレイヤキャラクタ201Cに切り替えることができる。または、Yボタン56を押下したまま、スティック32を傾けただけで切り替えるようにしてもよい。この切り替えに伴い、ゲーム画面もプレイヤキャラクタ201Cに合わせたゲーム画面が表示される。また、カーソル203の位置も、プレイヤキャラクタ201Aの進行方向に沿う直線上の位置から、プレイヤキャラクタ201Cの進行方向に沿う直線上の位置に変化している。
【0080】
以下の説明では、第1プレイヤの操作対象となっているプレイヤキャラクタ201のことを「1Pキャラ」と呼ぶ。また、第2プレイヤの操作対象となっているプレイヤキャラクタ201のことを「2Pキャラ」と呼ぶ。また、上記隊列においては、上記3体のプレイヤキャラクタのうち、いずれか1体が「リーダー」として設定される。1人プレイ時は、1Pキャラが隊列のリーダーとなる。つまり、リーダーがプレイヤの操作に応じて移動し、他のプレイヤキャラクタ201および隊列内のお供キャラクタ202は、このリーダーに追従して移動する。以下の説明では、リーダーではなく隊列のメンバーになっているプレイヤキャラクタ201のことを「後衛キャラ」と呼ぶ。リーダーに設定されているプレイヤキャラクタ201については「リーダーキャラ」と呼ぶ。
【0081】
ここで、上記「投げる」動作に関して、本ゲームでは、リーダーキャラは、自身の隊列内のお供キャラクタ202だけでなく、上記後衛キャラも「投げる」対象とすることができる。後衛キャラがいずれかのプレイヤの操作対象となっている場合でも、「投げる」対象となる。換言すれば、後衛キャラについては、プレイヤの操作の有無に関わらず、「投げる」ことで、その位置を強制的に移動させることが可能となっている。そのため、次のような動作も可能となっている。まず、1人プレイの場合は、例えば、プレイヤキャラクタ201Aが1Pキャラのとき、プレイヤキャラクタ201Bを「投げる」ことで、プレイヤキャラクタ201Bを隊列から外し、投げた先の地点に待機させることができる。また、これに応じて、プレイヤキャラクタ201Bを「リーダー」とする別の隊列が生成される。つまり、プレイヤキャラクタ201Bを「投げる」ことで、隊列を分割することができる。その後、上記のキャラクタ切り替え操作を行い、プレイヤキャラクタ201Aからプレイヤキャラクタ201Bに1Pキャラを切り替えることで、操作対象をプレイヤキャラクタ201Bとすることができる。この場合は、プレイヤキャラクタ201Bがリーダーキャラとなっている隊列(但し、この時点ではお供キャラクタ202は1体もいない)を操作することになる。また、2人プレイの場合は、例えばリーダーキャラである1Pキャラが2Pキャラを投げることで、2Pキャラをリーダーキャラとする別の隊列として分割することができる。そのため、2人プレイの場合は、1Pキャラ、2Pキャラがそれぞれ別の隊列で行動している場合は、それぞれがリーダーキャラとなる。一方、1Pキャ
ラ、2Pキャラが同じ隊列にいる場合は、いずれか一方がリーダーキャラとなり、他方は後衛キャラとして扱われる。以下の説明において、リーダーキャラと後衛キャラの区別が必要な説明においては、例えば、1Pキャラがリーダーキャラであり、2Pキャラが後衛キャラである場合は、「1Pキャラ(リーダー)」、「2Pキャラ(後衛)」のように表記する。
【0082】
但し、後衛キャラがリーダーキャラを投げることはできない。そのため、同じ隊列内で、1Pキャラがリーダー、2Pキャラが後衛キャラとなっている場合は、2Pキャラが1Pキャラを投げるということはできないものとする。また、投げることができるのは同じ隊列内の後衛キャラまたはお供キャラクタであり、別隊列のプレイヤキャラクタ201およびお供キャラクタ202については投げることはできない。
【0083】
次に、本ゲームにおける2人プレイの際の制御について説明する。まず、1人プレイの状態から2人プレイを開始する流れについて説明し、その後、2人プレイの場合における画面制御の概要等を説明する。
【0084】
[2人プレイの開始について]
本ゲームでは、「ストーリーモード」と呼ばれる、所定のシナリオに沿ってゲームを進行させていくゲームモードがある。ここでは、このゲームモードを最初は1人でプレイしており、途中から2人プレイに切り替えるという場合を例に説明する。まず、上記図8のような1人プレイ時のゲーム画面が表示されている状態で、第1プレイヤは、「オプションメニュー」を開く操作を行う。更に、オプションメニューの中から、「ふたりであそぶ」という項目を選択する。つまり、1人プレイから、2人プレイに変更する(2人プレイを開始する)ことを示す操作が行われる。
【0085】
上記のような操作が行われると、図11に示すように、各プレイヤが利用するコントローラを設定するための画面が表示される。図11では、画面左側に、第1プレイヤのコントローラ枠208、右側に、第2プレイヤのコントローラ枠209が表示されている。また、画面上部には、「使いたいコントローラのL+Rを押してください」というメッセージも表示されている。第1プレイヤ、および第2プレイヤは、それぞれ、自身が用いるコントローラのL+Rボタンを押すことで、本体装置2に自身の用いるコントローラが何であるかを伝えることができる。具体的には、押下されたボタン内容と、どのようなコントローラであるのかを示すコントローラID等が、コントローラからゲーム装置に送信される。本体装置2では、これを判別することで、第1プレイヤ、第2プレイヤが用いるコントローラを識別する。そして、識別されたコントローラを示す画像がコントローラ枠208、および209の中に表示される。
【0086】
ここで、コントローラの種類、使用態様について補足説明する。上記のように、本ゲームシステム1では、左コントローラ3および右コントローラ4という2つのコントローラがある。そして、本ゲームでは、左コントローラ3および右コントローラ4の2つのコントローラを1セットとして用いることができる。換言すれば、左コントローラ3および右コントローラ4を合わせて1体のコントローラとみなして用いることができる。この場合、例えば、第1プレイヤは、右手に右コントローラ4を把持し、左手に左コントローラ4を把持するようにして、ゲームの操作を行うことができる。また、この場合、プレイヤから見て、各コントローラが縦長となる姿勢で把持することになる(以下、この持ち方を「縦持ち」と呼ぶ)。
【0087】
また、本ゲームでは、上記左コントローラ3および右コントローラ4を、それぞれ別々のコントローラとして扱うことも可能となっている。例えば、2人プレイの場合に、第1プレイヤが左コントローラ3を、第2プレイヤが右コントローラ4を用いてプレイすると
いうことも可能となっている。つまり、左コントローラ3および右コントローラ4のいずれか1つだけを用いる態様である。図12に、上記左コントローラ3および右コントローラ4を第1プレイヤと第2プレイヤとで分けて用いる場合のコントローラ設定画面の一例を示す。図12では、第1プレイヤのコントローラ枠208には、左コントローラ3を横長の姿勢にした画像が、第2プレイヤのコントローラ枠209には、右コントローラ4を横長の姿勢にした画像が示されている。このように左コントローラ3および右コントローラ4を2人のプレイヤで分け合って用いる場合、各プレイヤは、各コントローラの姿勢を、「縦持ち」の状態から90度傾けた姿勢にして用いる。すなわち、プレイヤから見て各コントローラが横長となる姿勢でそれぞれのコントローラを把持する(以下、この持ち方を「横持ち」と呼ぶ)。なお、この場合は、左コントローラ3および右コントローラ4を一体的に用いる場合に比べて、スティックやボタン等の操作部の数が少ないコントローラとして用いることになる。そのため、ゲーム処理においても、このような操作部の数の違いと姿勢の違いに鑑みて、ボタンの割り当てを異ならせることになる。
【0088】
なお、第1プレイヤと第2プレイヤが用いるコントローラの組み合わせは、例えば次のような組み合わせでも良い。例えば、図13に示すように、第1プレイヤは左コントローラ3および右コントローラ4を一体的に利用し、第2プレイヤは、第1プレイヤが用いるものとは別の右コントローラ4のみを用いるようにしてもよい。また、その他、図14に示すように、第2プレイヤは、上記左コントローラ3および右コントローラ4とは異なる他のゲームコントローラを用いるようにしてもよい。
【0089】
上記のようにして、各プレイヤが用いるコントローラの設定が終われば、2人プレイが開始される。図15は、2人プレイ開始直後のゲーム画面の例である。図15では、画面の表示領域が左右に2分割されている。第1プレイヤは左側の表示領域でプレイし、第2プレイヤは右側の表示領域でプレイする。以下では、このような分割画面における左側の表示領域を「1P表示領域」、右側の表示領域を「2P表示領域」と呼ぶ。また、この画面では、1Pキャラはプレイヤキャラクタ201A、2Pキャラはプレイヤキャラクタ021Bであるとする。また、1Pキャラの上方と2Pキャラの上方とでそれぞれカーソル203が表示されている。つまり、2人プレイ時は、1Pキャラ、2Pキャラそれぞれに対応したカーソル203が表示される。以下では、1Pキャラに対応するカーソル203を「1Pカーソル」と呼び、2Pキャラに対応するカーソル203を「2Pカーソル」と呼ぶ。なお、1Pカーソルと、2Pカーソルとは、そのカーソルの色は異なっており、どのカーソルが1Pキャラのものか、あるいは2Pキャラのものかを識別しやすいようにしている。なお、このカーソルの移動制御に関しては、別途後述する。
【0090】
また、「1P表示領域」、「2P表示領域」のそれぞれに、投げ対象選択UI204、操作キャラ情報画像205が表示されている。これらは、プレイヤ毎に変化する要素であることから、それぞれの表示領域に表示している。
【0091】
また、本ゲームでは、2人プレイの開始直後の状態では、1Pキャラと2Pキャラは別の隊列になっているものとする。つまり、1Pキャラ、2Pキャラが共にリーダーキャラの状態で、2人プレイが開始されるものとする。また、2Pキャラの隊列については、この時点では、2Pキャラしかいない状態である。図15の状態から、第2プレイヤは、2Pキャラを操作し、1Pキャラと別行動をとることができる。そして、2Pキャラも独自にお供キャラクタ202を自身の隊列に加えることができる。図16に、2Pキャラが図15とは別の場所に移動し、また、その道中で何隊かのお供キャラクタを自身の隊列に加えた状態の画面例を示す。このように、分割画面を用いて、それぞれ別個にプレイヤキャラクタ201および隊列を操作することができる。
【0092】
[隊列の合流・分割等について]
次に、上記隊列の「合流」、「分割」、「解散」、および、これに伴う画面制御に関して説明する。本ゲームでは、隊列の状況によって、分割画面表示と1画面表示とを使い分ける画面制御が行われる。
【0093】
まず、隊列の「合流」について説明する。上記のように、2人プレイ開始直後は、それぞれ別の隊列となっている。本ゲームでは、このような別隊列を1つの隊列として「合流」させることができる。所定の「合流操作」を行うことで、合流が可能である。本実施形態では、別隊列である1Pキャラと2Pキャラとを接触させるような操作を行うことで、1つの隊列として合流させることができるとする。この場合、いずれが隊列のリーダーになるかについては、例えば、「接触した」側が「接触された」側を自身の隊列に加えるような制御としても良いし、その逆の制御であっても良い。なお、他の実施形態では、例えば、1Pキャラと2Pキャラがある程度近づいている状態で、所定のパターンで「笛を吹く」という操作を行うことで笛を吹いた側の隊列に他方を合流させるようにしてもよい。
【0094】
上記図15の状態で、第2プレイヤが所定の合流操作を行ったとする。これにより、2Pキャラを1Pキャラの隊列に加える制御が実行される。更に、1Pキャラと2Pキャラの合流により、画面の表示態様が変更される。具体的には、分割画面で表示されていたものが、1画面で表示される。図17に、1Pキャラと2Pキャラが合流した状態におけるゲーム画面の例を示す。図17では、1つの表示領域(この例では画面全体)を用いてゲーム画面が表示されている。以下の説明では、1Pキャラと2Pキャラが合流した状態におけるゲーム画面のことを「合流画面」と呼ぶ。また、1Pキャラと2Pキャラとが別隊列で行動している状態の画面を「分割画面」と呼ぶ。また、合流画面における操作モードのことを「合流モード」、「分割画面」における操作モードのことを「別隊列モード」と呼ぶ。
【0095】
図17で示す合流画面では、1Pキャラおよびこれに対応する1Pカーソルが表示され、2Pキャラおよびこれに対応する2Pカーソルも表示されている。また、投げ対象選択UI204、操作キャラ情報画像205に関して、上記分割画面の場合は、それぞれの表示領域に1つずつ表示されていたが、この合流画面では、それぞれ1つだけ表示される。投げ対象選択UI204に関しては、第1プレイヤ、第2プレイヤとで共用する形となる(投げ対象選択UI204のレイアウトに関しては別途後述する)。また、操作キャラ情報画像205では、隊列内のプレイヤキャラクタ201を示す画像が略縦並びに表示されている。そして、1Pキャラの画像の右側には「1P」の文字が、2Pキャラの画像の右側には「2P」の文字が表示されており、各プレイヤが操作しているプレイヤキャラクタを識別しやすいようになっている。
【0096】
ここで、操作対象が後衛キャラである場合の、当該後衛キャラの移動範囲および可能な操作に関して説明する。図18は、後衛キャラの移動範囲の概念を示す図である。2Pキャラ(後衛)は、1Pキャラ(リーダー)を中心とした円状の範囲211内においては、第2プレイヤの操作に基づいて自由に移動可能となっている。なお、この範囲211は、例えば、リーダーキャラがお供キャラクタ202を投げて届く範囲となっている。そして、2Pキャラ(後衛)が、この範囲211外に出るような距離まで離れた場合は、2Pキャラの移動操作の有無に関わらず、2Pキャラ(後衛)が自動的に1Pキャラ(リーダー)を追尾するような移動制御が行われ、1Pキャラ(リーダ-)との距離を自動的に保つように制御されることになる。換言すれば、1Pキャラ(リーダー)と連動して移動する範囲211があり、2Pキャラ(後衛)は、この範囲211から出ることができないような移動制御が行われるものである。
【0097】
2Pキャラ(後衛)に移動に関しては、上記のような制限が設けられるが、「投げる」動作に関しては、第2プレイヤは自由に行うことができる。換言すれば、第2プレイヤは
、2Pキャラが後衛キャラである間は、その移動は第1プレイヤに任せておき、自分は「投げる」ことに専念することも可能となっている。
【0098】
次に、隊列の分割、解散の操作等に関して説明する。合流モードにおいて、以下のような操作が行われることで、隊列を分割あるいは解散することができる。ここでは、1Pキャラがリーダーキャラ、2Pキャラが後衛である場合を例とする。まず、合流モードにおいて、第1プレイヤが「解散操作」を行うと、隊列を解散することができる。この場合、1Pキャラと2Pキャラは別々の隊列となる(なお、2Pキャラではないほうの後衛キャラがいた場合は、1Pキャラの隊列に残るものとする)。また、それぞれの隊列には、お供キャラクタ202は1体も存在しない状態となる。また、これに伴い、操作モードが「別隊列モード」に切り替わり、画面も上記「分割画面」に変更される。
【0099】
一方、合流モードにおいて、第2プレイヤが「解散操作」を行った場合は、2Pキャラだけを隊列から外して別隊列とすることで、隊列を分割することができる。この場合も、操作モードが「別隊列モード」に切り替わり、画面も上記「分割画面」に変更される。隊列構成については、1Pキャラの隊列については、それまでの状態から2Pキャラだけ抜けた隊列構成となる。2Pキャラの隊列については、お供キャラクタ202は1体もいない状態である。
【0100】
また、合流モードにおいて、1Pキャラ(リーダー)が2Pキャラ(後衛)を「投げる」ことでも、2Pキャラだけを隊列から外して別隊列とすることができる。つまり、2Pキャラ(後衛)を投げるという操作も、1種の解散操作といえる。例えば、図19で示すような合流画面の状態において、図20に示すように、1Pキャラ(リーダー)が2Pキャラ(後衛)を樹木オブジェクト213の近くに投げたとする。この場合は、2Pキャラ(後衛)が1Pキャラの隊列から抜け、新たな隊列のリーダーとして設定される。そして、上記同様に、操作モードが「別隊列モード」に切り替わり、図21に示すように、画面も「分割画面」に変更される。また、2Pキャラの隊列については、お供キャラクタ202が1体もいない状態となっている。
【0101】
また、上記の他、以下のような操作が行われた場合も、合流画面から分割画面に切り替わる。例えば、図22に示すような合流画面の状態において、図23に示すように、1Pキャラが2Pキャラ(後衛)ではないほうのプレイヤキャラクタ201Cを樹木オブジェクト213の近くに投げたとする。この場合、プレイヤキャラクタ201Cは、別隊列のリーダーとして設定される。但し、操作を担当するプレイヤが割り当てられていないため、図24で示すように、樹木オブジェクト213の近くで待機する状態となる。
【0102】
その後、1Pキャラ(リーダー)、2Pキャラ(後衛)を含む隊列が、図25に示すように他の場所に移動したとする。この状態で、第1プレイヤが、上記のような操作対象を切り替えるための操作を行い、上記待機させているプレイヤキャラクタ201Cを第1プレイヤの操作対象に切り替えたとする。この場合、図26に示すように、分割画面に切り替わり、1P表示領域には、プレイヤキャラクタ201Cが1Pキャラとして表示される。また、2P表示領域では、それまで後衛キャラであった2Pキャラがあらたにリーダーキャラとして設定される。また、先ほどまでリーダーキャラであったプレイヤキャラクタ201Aは後衛キャラとして設定される。そして、第2プレイヤは、その隊列構成を引き継いで、当該隊列を操作することができる。
【0103】
本ゲームでは、上記のように操作対象を切り替えたり、隊列を合流したり分割したりすることができる。そして、このような隊列の合流・分割操作が行われることで、合流画面と分割画面との切り替えがシームレスに行われる(つまり、画面の表示設定や切り替え設定のための操作をいちいち行う必要が無い)。特に、2人プレイ時において、上記のよう
な隊列の合流・分割に発生頻度が高くなるようなゲームにおいて、両者の隊列の状況に応じてシームレスな画面切り替えを行うことで、プレイヤの利便性を高めることができる。
【0104】
ここで、合流画面、分割画面の切り替えの際の画面演出の例を説明する。本実施形態では、合流画面から分割画面に切り替わる際は、例えば、2P表示領域が画面右側から左に向けて、1P表示領域を押し込むようにして入り込んでくる演出が行われる。これに伴い、1P表示領域の幅が徐々に狭くなっていき、最終的に当初の半分の幅となる。また、この演出の間も、1Pキャラの表示位置が1P表示領域の略中央位置を保つように、仮想カメラの位置や画角等の各種パラメータが適宜調整され、仮想カメラの制御も行われる。これは、2Pキャラ側の仮想カメラについても同様である。なお、これはあくまで一例であり、合流画面と分割画面とを切り替えるときの画面演出については、どのような演出であってもよい。
【0105】
[カーソル制御について]
次に、本ゲームにおけるカーソル203の制御に関して説明する。本ゲームでは、基本的には、カーソル203は、操作対象のプレイヤキャラクタ201の位置から、当該プレイヤキャラクタ201の向き(進行方向)に沿った方向に所定量変位させた位置に配置される。以下、この位置のことを、カーソル基本位置と呼ぶ。そして、プレイヤキャラクタ201を移動させる操作に連動して、このカーソル基本位置も変更される。プレイヤから見た場合、カーソル203は、操作対象キャラクタの前方の所定距離だけ離れた位置に常に表示されているように見えることになる。但し、本実施形態では、上記慣性センサに対する入力に基づいて、このカーソルの位置を更に微調整することが可能となっている。
【0106】
図27および図28に、上記慣性センサを用いたカーソル位置の微調整の例を示す。まず、図27のような状態で、第1プレイヤが、方向キー等の入力は行わずに、例えば縦持ちしている左コントローラ3のその先端部分を少し上に上げるように、左コントローラの姿勢を変更したとする。この場合、例えば、図28に示すように、1Pカーソルの位置を、仮想ゲーム空間内において、1Pキャラから見て奥行き方向側に少し移動させることができる。また、図示は省略するが、例えば左コントローラ3を右に傾けるように姿勢変化させれば、1Pカーソルを右に移動させることができる。同様に、左に傾けるよう姿勢変化させることで、1Pカーソルを左に移動させることができる。このように、プレイヤは、左コントローラの姿勢を変化させることで、カーソル203の位置をカーソル基本位置から更に移動させることが可能となっている。なお、カーソル位置を微調整した結果、お供キャラクタ202を投げても届かないような位置となっている場合は、そのことを示すためにカーソルの表示色が変更される。
【0107】
ところで、本ゲームでは、所定のオブジェクトに対して、カーソルを「ロックオン」させることが可能となっている。例えば、所定の敵キャラクタの近くにカーソル203がある場合に、プレイヤが所定の「ロックオン操作」を行うことで、カーソル203をその敵キャラクタに合わせて表示させる、ロックオン状態とすることができる。図29に、ある敵キャラクタをロックオン中である状態の画面例を示す。図29は、「合流画面」の場合の例であり、1Pキャラが敵キャラクタ220をロックオンしている状態を示す。一例として、1Pカーソルが敵キャラクタ220の足下に位置されている状態で、第1プレイヤが「ロックオン操作」として、例えばZRボタン61を押下することで、1Pキャラが敵キャラクタをロックオンした状態(以下、ロックオン状態という)とすることができる。なお、ロックオン操作を行ったときに最初にカーソルが表示される位置については、オブジェクト毎に予め定義されているものとする。以下、この位置のことを「ロックオン基準位置」と呼ぶ。また、ロックオンの対象となっているオブジェクトのことを、「ロックオン対象」と呼ぶ。
【0108】
また、ロックオン状態においては、ロックオン状態であることをプレイヤにわかりやすくするため等で、カーソル203の表示態様も少し変化する。図29では、1Pカーソルの表示態様が、照準のような外観に変化している。以下、このように表示態様が変化したロックオン状態におけるカーソルのことを、「ロックオンカーソル」と呼ぶ。また、このロックオンカーソルは、ロックオン対象となっている敵キャラクタ220が移動すれば、その移動に追従して移動する。すなわち、ロックオンカーソルとロックオン対象のオブジェクトとの相対的な位置関係は変化しない。図30に、ロックオンカーソルが追従移動している例を示す。図30では、ロックオンカーソルが、ロックオン基準位置として設定されている敵キャラクタ220の右肩付近に合わせられている状態で、敵キャラクタ220が左方向に移動した例を示す。この移動において、ロックオンカーソルは敵キャラクタ220の右肩付近の位置を維持したままその表示位置が左方向に移動しているものである。
【0109】
なお、1Pキャラとロックオン中の敵キャラクタ220との距離が一定以上離れると、ロックオン状態は自動的に解除され、1Pカーソルの表示態様は元に戻る。また、その配置位置も、上記のようなカーソル基本位置に上記の微調整分を加味した位置となる。また、1Pキャラから所定距離内にロックオン可能な対象が複数存在していた場合は、上記ロックオン操作が行われる度に、ロックオン対象が切り替えられていくものとする。
【0110】
このように、ロックオンカーソルはそのロックオン対象の移動に追従して動くが、このロックオンカーソルの位置についても、上記慣性センサを用いてロックオン基準位置から微調整することが可能となっている。図31および図32に、ロックオン状態でのロックオンカーソル位置の微調整の例を示す。まず、図31では、ロックオン基準位置である敵キャラクタ220の顔部右側の位置にロックオンカーソルが位置している状態である。プレイヤは、コントローラの姿勢を変化させることで、このロックオンカーソル(の中心点)を、ロックオン調整可能範囲221の範囲内で移動させることが可能となっている。当該ロックオン調整可能範囲221は、敵キャラクタ220をおおよそ囲むような領域である。この領域は、ロックオンが可能な各オブジェクトについて、予め定義されている領域である。なお、図31では、説明をわかりやすくするため、ロックオン調整可能範囲221を点線で示しているが、実際のゲーム画面では、この点線は表示されない。そして、ロックオン状態のときは、プレイヤが左コントローラをどれだけ傾けても、ロックオンカーソル(の中心点)はこの範囲221から外に出ることはない。例えば、図32で示すように、プレイヤが左コントローラ3の先端部分の向きを、矢印222で示される角度まで左に傾けたとしても、ロックオンカーソルは、ロックオン調整可能範囲221を越えて左側には移動しない。同様に、矢印223で示される角度まで左コントローラ3の先端を右に傾けても、ロックオンカーソルは、ロックオン調整可能範囲221を越えて右側には移動しない。
【0111】
更に、本実施形態では、ロックオン状態の場合と、そうではない場合とで、上記姿勢変化に基づくカーソルの移動速度に差を設けている。具体的には、ロックオン状態の場合のほうがより細かい微調整が可能なように、同じ傾き具合におけるカーソルの移動速度がより遅くなるような制御も行っている。例えば、左コントローラ3の姿勢を、右側に20度変化させた場合を想定する。この場合、ロックオン状態ではない場合は、例えば仮想空間内において20の距離だけカーソルを移動させるが、ロックオン状態の場合は、5の距離だけしか移動させないような制御(移動速度を25%に落とす制御)が行われる。これにより、例えば、敵キャラクタ220を攻撃する場合、「弱点部位」として予め設定されている箇所を狙いやすくなる等のように、狙いを付ける必要性が高くなることが想定されるロックオン状態等において、その操作性を高めることができる。
【0112】
ところで、本実施形態では、上記のような微調整を行うに際して、コントローラの基準姿勢を適宜設定する処理も行っている、例えば、ロックオン操作が行われた場合は、この
操作が行われたときのコントローラの姿勢を基準姿勢として設定し、上記ロックオン基準位置と対応づける。そのため、プレイヤは、ロックオン操作を行ったときのコントローラの姿勢を基準に、その姿勢を変化させることで上記のカーソル(ロックオンカーソル)の位置の微調整が可能である。これにより、直感的で違和感の少ない微調整操作が可能となっている。
【0113】
このように、本実施形態では、カーソルの移動制御について、基本的には上記カーソル基準位置にカーソルを配置しつつ、コントローラの姿勢を変化させることで、更にカーソル位置を変化できるようにしている。これにより、カーソルの移動について、直感的で柔軟な操作性を提供できる。また、本実施形態では、コントローラについて、上記の「横持ち」、「縦持ち」のいずれの持ち方でもプレイ可能である。この場合に、特に「横持ち」でプレイする場合に、奥行き方向へのカーソルの微調整について、直感的でわかりやすい操作性を提供することもできる。
【0114】
[投げ対象選択UIについて]
上記のように、本ゲームでは、お供キャラクタ202を敵キャラクタ等に「投げる」ことで、お供キャラクタに様々な行動を取らせることができる。また、上述したように、お供キャラクタ202には、数種類のお供キャラクタ202が用意されている。そのため、プレイヤには、どの種類のお供キャラクタ、あるいは後衛キャラを投げるのかを選択させるための投げ対象選択UI204が提供されている。
【0115】
ところで、本ゲームでは、左コントローラ3および右コントローラ4を1セットとして1つのコントローラとしてプレイすることも可能であり、また、左コントローラ3および右コントローラ4を、それぞれ別々のコントローラとしてプレイすることも可能となっている。このように、左コントローラ3および右コントローラ4を別々のコントローラとして用いる場合、左コントローラ3および右コントローラ4を1セットで用いる場合に比べると、利用できる物理的なボタン数やスティック等の操作部が減ることになる。このような操作部の数の違いに鑑みて、本実施形態では、各プレイヤが用いるコントローラの種類に応じて、異なった「投げ対象選択UI」をプレイヤに提示するようにしている。
【0116】
一例として、第1プレイヤが左コントローラ3および右コントローラ4を1セットとして用い、第2プレイヤが左コントローラ3のみを用いて2人プレイが行われる場合を例として、投げ対象選択UI204の表示例を説明する。また、第1プレイヤは左コントローラ3および右コントローラ4を縦持ちし、第2プレイヤは、左コントローラ3を横持ちしてプレイしているものとする。図33は、このような場合に、上記1P表示領域に表示される投げ対象選択UI204の例である。また、図34は、このような場合に上記2P表示領域に表示される投げ対象選択UI204の例である。以下の説明では、図33で示した投げ対象選択UIのことを「第1レイアウトの選択UI」、図34で示した投げ対象選択UIについては「第2レイアウトの選択UI」と呼ぶこともある。
【0117】
まず、図33について説明する。図33で示す第1レイアウトの選択UIでは、現在枠231、前番枠232、後番枠233の3つの枠が表示されている。その配置としては、現在枠231を中心として、その左側に前番枠232が配置され、右側に後番枠233が配置されている。また、現在枠231は、他の2つの枠よりも大きく表示されている。前番枠232および後番枠233は同じ大きさで表示されている。そして、プレイヤが「投げる」操作を行うと、現在枠231に表示されているお供キャラクタと同種類のお供キャラクタ202、あるいは、後衛キャラが投げられることになる。
【0118】
次に、当該第1レイアウトの選択UIにおける操作について説明する。この場合は、プレイヤは、上記第1Lボタン38および第1Rボタン60を用いて、現在枠231の内容
を切換えることができる。例えば、上記図33において、現在枠231にはお供キャラクタA、前番枠232にはお供キャラクタB、後番枠233にはお供キャラクタCが表示されているとして、プレイヤが第1Lボタン38を押下した場合を想定する。この場合は、第1レイアウトの選択UIの表示が全体的に左方向に移動する。具体的には、図35で示すように、現在枠231が、その大きさを縮小しながら前番枠232の位置に移動し、後番枠233が、その大きさを拡大しながら、現在枠231の位置に移動していく。また、後番枠233の裏から、後衛キャラが表示される新たな枠が回り込んでくるような表示がされ、この新たな枠が後番枠233の位置に移動する様子が示される。また、前番枠232は当該枠の裏に回り込むように移動して、画面から表示されないようになる。その結果、図36に示すように、前番枠232にはお供キャラクタAが、現在枠231にはお供キャラクタCが、後番枠233には後衛キャラが表示される。
【0119】
また、上記図33で示した状態でプレイヤが第1Rボタン60を押下した場合は、上記の動きとは逆方向の動きが行われることになる。すなわち、第1レイアウトの選択UIの表示が全体的に右方向に移動することになる。その結果、例えば前番枠232には後衛キャラが、現在枠231にはお供キャラクタBが、後番枠233にはお供キャラクタAが表示されることになる。このように、左コントローラ3および右コントローラ4を1セットとして用いている場合は、投げる対象を選択する操作のために、第1Lボタン38および第1Rボタン60との2つのボタンを割り当てている。そして、投げ対象選択UI204としても、このような操作に合わせたレイアウトである第1レイアウトの選択UIを用いるようにしている。
【0120】
次に、上記図34に示した第2レイアウトの選択UIについて説明する。図34で示す第2レイアウトの選択UIでは、現在枠234、次番枠235、次々番枠236の3つの枠が表示されている。その配置としては、現在枠234が一番左に配置され、その右隣に次番枠235、更にその右隣に、次々番枠236が配置されている。また、現在枠234は、他の2つの枠よりも大きく表示されている。また、次番枠235は、次々番枠236よりも大きく表示されている。
【0121】
次に、当該第2レイアウトの選択UIにおける操作について説明する。この場合は、プレイヤは、上記第2Lボタン43のみを用いて、現在枠234の内容を切換えることができる。具体的には、図34の状態でプレイヤが第2Lボタン43を押下すると、図37に示すように、第2レイアウトの選択UIの表示が全体的に左方向に移動する。具体的には、次番枠235が現在枠234の位置に移動し、次々番枠236が次番枠235の位置に移動する。また、次々番枠236の後ろから回り込むようにして新たな枠が登場し、これが次々番枠236の位置に移動する様子が表示される。つまり、上記第1レイアウトのUIの場合と異なり、1方向のみの切り替え操作となっている。このように、第2プレイヤが左コントローラ3のみ用いてプレイしている場合は、その操作部の数の少なさに鑑みて、投げる対象を選択する操作には第2Lボタン43という1つのボタンのみを割り当てている。そして、投げ対象選択UI204も、当該1つのボタンのみで操作することに適したレイアウトである第2レイアウトの選択UIを用いている。
【0122】
ここで、上記のように、第1プレイヤが左コントローラ3および右コントローラ4を1セットとして用い、第2プレイヤが左コントローラ3のみを用いて2人プレイを行う場合であって、上記合流画面が表示される場合について説明する。上記のように、合流画面においては、投げ対象選択UI204は、第1プレイヤ、第2プレイヤで共用される。この場合は、操作部がより少ない方のコントローラに応じたレイアウトの投げ対象選択UIが用いられる、上記例では、第2レイアウトの選択UIが用いられる。そして、第1プレイヤは、第1Lボタン38のみを用いて選択操作を行い、第2プレイヤは、第2Lボタン43のみを用いて選択操作を行うことになる。なお、他の実施形態では、合流画面において
も、各自のコントローラに応じた投げ対象選択UI204をそれぞれ表示するようにしてもよい。
【0123】
このように、各プレイヤが使用するコントローラに応じて、各プレイヤに対応する投げ対象選択UIを異ならせている。これにより、各コントローラの操作部の数に応じて、選択操作にかかる操作性を高めるとともに、その表示内容も各コントローラに適したものにすることができる。
【0124】
[本実施形態のゲーム処理の詳細]
次に、図38図52を参照して、本実施形態におけるゲーム処理についてより詳細に説明する。
【0125】
[使用データについて]
まず、本ゲーム処理にて用いられる各種データに関して説明する。図38は、本体装置2のDRAM85に記憶される各種データの一例を示すメモリマップである。本体装置2のDRAM85には、ゲームプログラム301、1P操作データ302、2P操作データ306、1Pキャラ情報307、2Pキャラ情報308、1Pコントローラ種別情報309、2Pコントローラ種別情報310、プレイヤキャラクタデータ311、お供キャラクタマスタデータ312、お供キャラクタデータ313、その他のキャラクタデータ314、第1隊列データ315、第2隊列データ316、第3隊列データ317、操作モード318、1P用選択UIデータ319、2P用選択UIデータ320、1P用切り替え用メニュー表示フラグ321、2P用切り替え用メニュー表示フラグ322、モード変更指示データ323、画面切り替え状態データ324、等が記憶されている。
【0126】
ゲームプログラム301は、本実施形態にかかるゲーム処理を実行するためのプログラムである。
【0127】
1P操作データ302は、第1プレイヤが操作するコントローラから得られるデータであり、第1プレイヤの操作内容を示すデータである。また、2P操作データ306は、同様に、第2プレイヤが操作するコントローラから得られるデータであり、第2プレイヤの操作内容を示すデータである。1P操作データ302には、デジタルボタンデータ303、アナログスティックデータ304、慣性センサデータ305が含まれている。また、2P操作データ306にも、同様のデータが含まれている。デジタルボタンデータ303は、コントローラが有する各種ボタンの押下状態を示すデータである。アナログスティックデータ304は、コントローラが有するアナログスティックに対する操作内容を示すためのデータである。慣性センサデータ305は、上述した加速度センサや角速度センサ等の慣性センサの検出結果を示すデータである。具体的には、加速度データや角速度データが含まれる。
【0128】
1Pキャラ情報307は、上記1Pキャラに関する情報である。具体的には、上記3体のプレイヤキャラクタ201のうち、どれが第1プレイヤの現在の操作対象となっているかを示すための情報が含まれる。具体的には、操作対象となっているプレイヤキャラクタ201にかかるプレイヤキャラクタID(後述)が設定される。また、1Pキャラがいずれかのオブジェクトを「ロックオン」しているか否かを示す情報と、ロックオン中であれば、そのロックオンの対象となっているオブジェクトを示す情報も含まれる。また、2Pキャラ情報308は、上記2Pキャラに関する情報であり、1Pキャラ情報307と同趣旨の情報が含まれる。
【0129】
1Pコントローラ種別情報309、および、2Pコントローラ種別情報310は、各プレイヤが本ゲームのプレイに用いているコントローラの種別および使用態様、操作部のマ
ッピング情報を示すためのデータである。操作部のマッピング情報とは、このような種別・使用態様に応じてゲーム内における各種操作に対する各操作部の割り当てを定義した情報である。コントローラの種別および使用態様を示す情報としては、例えば、左コントローラ3のみが用いられていることを示す情報(使用コントローラ本数=1)、左コントローラ3および右コントローラ4の2つのコントローラが1セットとして用いられていることを示す情報(使用コントローラ本数=2)等が格納される。また、マッピング情報としては、例えば、「投げる」操作として、左コントローラ3のみ用いる場合はAボタン53が割り当てられ、左コントローラ3および右コントローラ4の2つを用いる場合はボタン34が割り当てられていることを示す情報である。
【0130】
プレイヤキャラクタデータ311は、上記3体のプレイヤキャラクタ201A、201B、201Cに関するデータである。これらを一意に識別するためのプレイヤキャラクタIDと、その外観の画像データ、モデリングデータ等が含まれる。
【0131】
お供キャラクタマスタデータ312は、上記お供キャラクタ202の基本的な情報を定義したデータである。また、お供キャラクタデータ313は、実際に仮想ゲーム空間内に登場している個々のお供キャラクタ202を管理等するためのデータである。図39は、お供キャラクタマスタデータ312のデータ構成の一例を示す図である。お供キャラクタマスタデータ312は、種別ID331、外観データ332、行動定義データ333等の項目を有するテーブル形式のデータである。種別IDは、お供キャラクタ202の「種類」を示すIDである。外観データ332は、その種類のお供キャラクタの画像データやモデリングデータである。行動定義データ333は、その種類のお供キャラクタ202が取り得る行動内容について定義したデータである。例えば、「攻撃」する場合にどのような動作・方法で攻撃を行うか、等である。また、その他、その種類のお供キャラクタ202に関する各種パラメータ、例えばHP(ヒットポイント)や攻撃力等のパラメータの基本値等も定義されている。仮想ゲーム空間内に登場する個々のお供キャラクタ202は、このお供キャラクタマスタデータ312に基づいて生成され、それぞれに固有のIDを割り当てられて、次に説明するお供キャラクタデータ313によって管理される。
【0132】
図40は、お供キャラクタデータ313のデータ構成の一例を示す図である。お供キャラクタデータ313は、お供キャラクタID341、種別ID342、参加隊列情報343、現在位置データ344、現在状態データ345等の項目を有するテーブル形式のデータである。お供キャラクタID341は、仮想ゲーム空間に登場するお供キャラクタ202を一意に識別するためのIDである。種別ID342は、そのお供キャラクタ202の種類を示すIDであり、上記お供キャラクタマスタデータ312の種別ID331に対応する。参加隊列情報343は、そのお供キャラクタ202がいずれかの隊列に参加しているか、あるいは、いずれの隊列にも参加していない「フリー」の状態であるのかを示すための情報である。また、隊列に参加している場合は、どの隊列に参加しているのかを示す情報でもある。現在位置データ344は、そのお供キャラクタ202の、仮想ゲーム空間内における現在位置を示すデータである。現在状態データ345は、そのお供キャラクタ202が現在どのような行動を行っているか等を示すためのデータである。例えば、敵キャラクタを攻撃中の状態であることを示す情報や、リーダーキャラに追従して移動中の状態であることを示す情報等が、ゲームの状況に応じて適宜設定される。
【0133】
図38に戻り、その他のキャラクタデータ314は、上記プレイヤキャラクタ201、お供キャラクタ202以外の各種キャラクタに関するデータである。例えば、敵キャラクタの外観や動作について定義したデータである。また、特に、上記ロックオンの対象となり得るオブジェクトについては、上述した「ロックオン基準位置」および「ロックオン調整可能範囲」を定義した情報も含まれる。
【0134】
第1隊列データ315、第2隊列データ316、第3隊列データ317は、上述した隊列の構成を示すデータである。本ゲームでは、プレイヤキャラクタ201は3体であるため、同時に併存可能な隊列数は、最大で3隊となる。そのため、3つの隊列データが用意されている。図41は、第1隊列データ315のデータ構成の一例である。第1隊列データ315には、リーダーキャラ情報351、第1後衛キャラ情報352、第2後衛キャラ情報353、お供キャラクタ情報354が含まれる。リーダーキャラ情報351は、その隊列のリーダーキャラがどのプレイヤキャラクタ201であるのかを示す情報である。第1後衛キャラ情報352、第2後衛キャラ情報353は、その隊列における後衛キャラの有無を示す情報である。また、後衛キャラがいる場合は、それがどのプレイヤキャラクタ201であるのかを示す情報である。例えば、隊列内に後衛キャラが1体しかいない場合は、第1後衛キャラ情報352にはその後衛キャラのプレイヤキャラクタIDが設定され、第2後衛キャラ情報353については「存在しない」ことを示す情報が設定される。お供キャラクタ情報354は、その隊列に参加しているお供キャラクタ202の情報である。具体的には、上記お供キャラクタID341が含まれる。
【0135】
なお、第2隊列データ316、第3隊列データ317も同様の構成であるため、その説明は割愛する。また、以下の説明では、第1隊列データ315、第2隊列データ316、第3隊列データ317を総称して、単に「隊列データ」と呼ぶこともある。
【0136】
図38に戻り、操作モード318は、1Pキャラおよび2Pキャラが合流している状態(上記合流モード)であるか、別隊列で行動している状態(上記別隊列モード)であるかを示すためのデータである。具体的には、合流モードであることを示す情報、あるいは、別隊列モードであることを示す情報が設定される。
【0137】
1P用選択UIデータ319、2P用選択UIデータ320は、上記図33図37を用いて上述した投げ対象選択UIに関するデータである。1P用選択UIデータ319は、主に第1プレイヤのためのデータであり、2P用選択UIデータ320は、第2プレイヤのためのデータである。但し、上記のように合流画面において、投げ対象選択UIを第1プレイヤと第2プレイヤとで共用する場合は、1P用選択UIデータ319が共用される。図42に、1P用選択UIデータ319のデータ構造の一例を示す。なお、2P用選択UIデータ320のデータ構造も同様である。図42において、1P用選択UIデータ319は、レイアウト種別361、現在枠データ362、候補データ363が含まれている。レイアウト種別361は、上述した第1レイアウトの選択UIを用いるか、第2レイアウトの選択UIを用いるかを示すための情報である。各プレイヤが用いるコントローラの使用態様に応じて、いずれかのUIを特定するための情報が設定される。現在枠データ362は、第1レイアウトの選択UIにおける現在枠231、または、第2レイアウトの選択UIにおける現在枠234の内容を示すデータである。候補データ363は、第1レイアウトの選択UIにおける前番枠232および後番枠233の内容、または、第2レイアウトの選択UIにおける次番枠235および次々番枠236の内容を示すためのデータである。また、当該現在枠データ362は、次に説明する候補データ363に含まれるデータのうちのいずれか1つのデータを指し示す、ポインタとしての役割を有するデータでもある。候補データ363は、当該UIにおける選択候補を示すデータであり、隊列内の上記各種類のお供キャラクタ202を示すデータ、および、後衛キャラを示すデータが、シーケンシャルなデータとして所定の順番で格納されている。候補データ363に含まれるデータの数は、隊列に加わっているお供オブジェクト202の種類、後衛キャラの数に応じて増減する。図42では、一例として、隊列内に3種類のお供キャラクタと、2隊の後衛キャラクタがいる場合を想定した候補データ363の例を示す。この場合、候補データ363には、第1候補364a~第5項候補364eの5つのデータが格納される。そして、例えば、第1候補364aとして第1の種類のお供キャラクタを示すデータが、第2候補364bとして、第2の種類のお供キャラクタを示すデータが、第3候補364c
として、第3の種類のお供キャラクタを示すデータが、第4候補364dとして1体目の後衛キャラを示すデータが、第5候補364eとして2体目の後衛キャラを示すデータが格納される。
【0138】
1P用切り替えメニュー表示フラグ321は、第1プレイヤの操作に基づいたキャラ切り替えメニュー207を画面に表示するか否かを示すためのフラグである。また、2P用切り替えメニュー表示フラグ322は、第1プレイヤの操作に基づいたキャラ切り替えメニュー207を画面に表示するか否かを示すためのフラグである。いずれも、オンに設定されている場合が、キャラ切り替えメニュー207を画面に表示することを示すものとする。
【0139】
モード変更指示データ323は、後述の処理で、上記の操作モードの切り替え制御(換言すれば、合流画面と分割画面の切り替え制御)のために用いられるデータであり、操作モードを別隊列モードとするか、合流モードとするかを示す情報が設定される。本例では、操作モードを別隊列モードにしたい場合は「別隊列モード変更指示」が設定され、操作モードを合流モードにしたい場合は「合流モード変更指示」が設定されるものとする。
【0140】
画面切り替え状態データ324は、上記「合流画面」から「分割画面」へ切り替えている状態であるか、上記「分割画面」から「合流画面」へ切り替えている状態であるかを示す為のデータである。本実施形態では、これらの画面の切り替えは数フレームかけて実行されるところ、切り替え中の仮想カメラの各種パラメータの設定等のために、当該データが利用される。本例では、「分割画面」から「合流画面」へ切り替えている状態を示す場合は「合流画面切り替え中」という情報が設定される。また、「合流画面」から「分割画面」へ切り替えている状態を示す場合は「分割画面切り替え中」という情報が設定されるものとする。また、いずれでもない状態の場合は、当該データには何も設定されないものとする。
【0141】
[プロセッサ81が実行する処理の詳細]
次に、図43図56のフローチャートを参照して、本実施形態にかかるゲーム処理の詳細を説明する。なお、この説明では、主に、上述したような隊列の合流・分離とこれに伴う画面制御、カーソルの移動制御、投げ対象選択UIに関する制御、について説明し、その他のゲーム処理についての説明は割愛する。
【0142】
図43は、本ゲーム処理の詳細を示すフローチャートである。ここでは、1人プレイ中の状態から、上述したような2人プレイを開始する(つまり、第2のプレイヤが途中参加する)という場面を想定して説明を始める。すなわち、第1プレイヤが、1人プレイの状態において、上記のようなオプションメニューを開いたという場面を想定する。
【0143】
まず、ステップS1で、2人プレイの開始指示を受付ける処理が実行される。すなわち、プロセッサ81は、1P操作データ302に基づいて、上記オプションメニューから、2人プレイを開始する旨の指示操作が行われたことを検出する。
【0144】
次に、ステップS2で、プロセッサ81は、コントローラ設定処理を実行する。この処理は、2人プレイにおいて各プレイヤが用いるコントローラを識別するための処理である。具体的には、プロセッサ81は、上記図11で示したようなコントローラ設定画面を表示する。そして、コントローラから送られてくる信号に基づき、各プレイヤが使用するコントローラの種類および使用態様を判別する。コントローラの種類としては、例えば、上記左コントローラ3および右コントローラ4であるか、これ以外のゲームコントローラであるか、等が判別される。また、使用態様については、左コントローラ3および右コントローラ4を1セットで用いる態様であるか、左コントローラ3または右コントローラ4を
単体で用いる態様であるか、が判別される。そして、当該判別結果に基づいて、プロセッサ81は、第1プレイヤが用いるコントローラを示す情報を1Pコントローラ種別情報309に設定する。また、第2プレイヤが用いるコントローラを示す情報を2Pコントローラ種別情報310に設定する。各コントローラに応じた上記操作部のマッピング情報も、1Pコントローラ種別情報309および2Pコントローラ種別情報310に適宜設定される。以降の処理では、操作データに基づき操作内容を判別する際、プロセッサ81は、各コントローラに対応する当該マッピング情報を参照して、その操作内容を判別する。各プレイイヤが用いるコントローラの使用態様等が識別できれば、第2のプレイヤの操作対象を決定するための処理も実行される。そして、第2のプレイヤの操作対象となるプレイヤキャラクタIDを2Pキャラ情報308に設定する処理も実行される。なお、1人プレイが既に行われている場合を例としているため、1Pキャラ情報307については既に設定済みである。また、途中参加ではなく、最初から2人プレイを行う場合は、このタイミングで、第1プレイヤの操作対象を決定するための処理も行えばよい。
【0145】
次に、ステップS3で、プロセッサ81は、各プレイヤに応じた投げ対象選択UI204を決定する処理を実行する。具体的には、プロセッサ81は、上記1Pコントローラ種別情報に基づいて、1P表示領域に表示する投げ対象選択UI204のレイアウトを決定する。そして、1P用選択UIデータ319のレイアウト種別361に、決定したレイアウトを示す情報を設定する。また、上記2Pコントローラ種別情報に基づいて、2P表示領域に表示する投げ対象選択UIを決定し、その情報を2P用選択UIデータ320のレイアウト種別361に設定する。
【0146】
次に、ステップS4で、プロセッサ81は、画面表示について、「分割画面」に切り替える処理を実行する。具体的には、まず、プロセッサ81は、第1プレイヤの操作対象となっていないプレイヤキャラクタ201のうち、いずれかを第2プレイヤの操作対象として決定する。いずれを操作対象とするかはどのように決定してもよいが、例えば、プレイヤキャラクタIDの小さいほうを自動的に選択するようにしてもよいし、操作対象を選択させる画面を一旦表示して、第2プレイヤに選ばせるようにしてもよい。第2プレイヤの操作対象、すなわち、2Pキャラが決定されれば、プロセッサ81は、図15で示したような分割画面が表示されるように、1Pキャラに対応する仮想カメラ、および、2Pキャラに対応する仮想カメラにそれぞれ適切なパラメータを設定する。また、プロセッサ81は、2Pカーソルの配置位置を2Pキャラの位置に基づいて算出する。そして、当該算出した位置に2Pカーソルを配置する。また、プロセッサ81は、操作モード318に、別隊列モードであることを示す情報を設定する。
【0147】
次に、ステップS5で、プロセッサ81は、ゲーム画像を描画する処理を実行する。具体的には、プロセッサ81は、操作キャラ情報画像205と、適切な投げ対象選択UI204とを仮想ゲーム空間内に配置した仮想ゲーム空間を1Pキャラに対応する仮想カメラで撮像した画像を生成し、これを1P表示領域に描画する。また、同様に2Pキャラに対応する仮想カメラで仮想ゲーム空間を撮像した画像を生成し、これを2P表示領域に描画する。そして、当該ゲーム画像を据置型モニタに表示する処理を実行する。
【0148】
次に、ステップS6で、プロセッサ81は、1P操作データ302および2P操作データ306を取得する。続くステップS7で、プロセッサ81は、取得した操作データで示される各プレイヤの操作内容に基づいた各種処理を実行する。次に、ステップS8で、プロセッサ81は、ステップS7の処理の結果が反映された仮想ゲーム空間を仮想カメラで撮像し、ゲーム画像として描画するための処理を実行する。その後、上記ステップS6に戻り、処理が繰り返される。
【0149】
[操作内容に基づく各種処理]
次に、上記ステップS7で実行される、操作内容に基づく処理について説明する。図44は、当該操作内容に基づく処理の詳細を示すフローチャートである。図44において、まず、ステップS11で、プロセッサ81は、移動処理を実行する。この処理では、プレイヤが行った移動操作の内容に基づき、各プレイヤキャラクタ201を移動させるための処理が実行される。なお、この移動操作の例としては、コントローラを「縦持ち」している場合は、アナログスティック32を用いた方向入力操作がある。また、「横持ち」の場合も、アナログスティック32を用いた方向入力操作となる。但し、「縦持ち」と「横持ち」とで、コントローラの姿勢が90度回転していることから、ゲーム処理においては、方向入力信号と移動方向との割り当てもこれに応じて適宜変更される。例えば、上記図4において、アナログスティック32を第1Lボタン38がある方向に入力した場合、「縦持ち」のときは「上方向」の入力として扱われるが、「横持ち」の場合は、「左方向」の入力として扱われる。
【0150】
[移動処理]
図45は、上記移動処理の詳細を示すフローチャートである。図45において、まず、ステップS21で、プロセッサ81は、1P操作データ302に基づき、1Pキャラを移動させる処理を実行する。続いて、ステップS22で、プロセッサ81は、2P操作データ306に基づき、2Pキャラを移動させる処理を実行する。なお、このステップS41およびS42における移動制御に関して、操作モード318が「合流モード」である場合は、上記図28を用いて説明したような後衛キャラの移動範囲211内での移動となるように、適宜制御が行われる。以上で、移動処理は終了する。
【0151】
[ロックオン処理]
図44に戻り、次に、ステップS12で、プロセッサ81は、ロックオン処理を実行する。この処理は、主に、プレイヤがロックオン操作を行った場合に行われる処理である。なお、ロックオン操作の例としては、例えば、「縦持ち」の場合はZRボタン61の押下、「横持ち」の場合は第2Rボタン44の押下である。
【0152】
図46~47は、上記ロックオン処理の詳細を示すフローチャートである。図46において、まず、ステップS31で、プロセッサ81は、1P操作データ302および2P操作データ306に基づき、いずれかのプレイヤがロックオン操作を行ったか否かを判定する。当該判定の結果、ロックオン操作が行われていない場合は(ステップS31でNO)、後述するステップS41に処理が進められる。一方、ロックオン操作が行われていた場合は(ステップS31でYES)、ステップS33に進む。
【0153】
次に、ステップS33で、プロセッサ81は、上記ロックオン操作を行ったプレイヤに応じて、1Pキャラ情報307または2Pキャラ情報308を参照し、当該特定したプレイヤの操作するプレイヤキャラクタ201が、所定のオブジェクトをロックオンしている上記ロックオン状態であるか否かを判定する。当該判定の結果、ロックオン状態ではないときは(ステップS33でNO)、ステップS34で、プロセッサ81は、上記特定したプレイヤにかかるカーソル(1Pカーソルまたは2Pカーソル)の近くに、ロックオンの候補となるオブジェクト(以下、ロックオン候補)が存在するか否かを判定する。その結果、ロックオン候補が存在しない場合は(ステップS34でNO)、後述するステップS47に処理が進められる。一方、ロックオン候補が存在している場合は(ステップ34でYES)、ステップS35で、プロセッサ81は、ロックオン候補をロックオン対象として設定する。なお、ロックオン候補が複数存在している場合は、カーソルに最も近いものが選択される。また、プロセッサ81は、上記特定したプレイヤについて、ロックオン状態であることを示す情報を設定する。すなわち、上記特定したプレイヤに応じて、1Pキャラ情報307あるいは2Pキャラ情報308のいずれかにロックオン状態であることを示す情報を設定する。
【0154】
次に、ステップS36で、プロセッサ81は、カーソルの外観を上記「ロックオンカーソル」の外観に変更する。更に、プロセッサ81は、上記ロックオン対象毎に予め設定されている上記ロックオン基準位置にロックオンカーソルを配置する。
【0155】
次に、ステップS37で、プロセッサ81は、ロックオン対象に関して上述したロックオン調整可能範囲221の設定を行う。本実施形態では、その他のキャラクタデータ314に、ロックオン対象となり得るキャラクタ毎に予めロックオン調整可能範囲221の大きさ等が定義されている。そのため、プロセッサ81は、その他のキャラクタデータ314を参照して、上記ロックオン対象に応じたロックオン調整可能範囲221を設定する。その後、後述するステップS47に処理が進められる。
【0156】
一方、上記ステップS33の判定の結果、ロックオン状態である場合は(ステップS33でYES)、ステップS38で、プロセッサ81は、現在のロックオン対象から所定距離内に他のロックオン候補が存在しているか否かを判定する。その結果、存在している場合は(ステップS38でYES)、ステップS39で、プロセッサ81は、ロックオン対象を切り替える処理を実行する。すなわち、当該他のロックオン候補を新たなロックオン対象として設定する処理を実行する。他のロックオン候補が複数存在している場合は、例えば、現在のロックオン対象に最も近いロックオン候補を選択すればよい。あるいは、現在のロックオン対象を中心とした所定の大きさの円状の範囲内に存在するロックオン候補について、距離が近い順に順番付けを行い、ロックオン操作が行われる度にこの順番に沿って切り替えられるようにしてもよい。ロックオン対象の切り替えが行われれば、その後、上記ステップS36に処理が進められる。
【0157】
一方、他のロックオン候補が存在しない場合は(ステップS38でNO)、ステップS40で、プロセッサ81は、ロックオン状態を解除する処理を実行する。すなわち、1Pキャラ情報307あるいは2Pキャラ情報308において、ロックオン状態ではないことを示す情報を設定する。また、カーソルの外観もロックオンカーソルから、通常移動時のカーソル外観に戻される。更に、カーソルの位置も、上記のような1Pキャラあるいは2Pキャラの位置および向きに基づいて決定される位置に配置される。その後、後述するステップS47に処理が進められる。
【0158】
一方、上記ステップS31の判定の結果、ロックオン操作が行われていない場合は、図47のステップS41で、プロセッサ81は、1Pキャラ情報307を参照し、1Pキャラがロックオン状態であるか否かを判定する。当該判定の結果、ロックオン状態ではない場合は(ステップS41でNO)、後述のステップS44に処理が進められる。一方、ロックオン状態の場合は(ステップS41でYES)、ステップS42で、プロセッサ81は、1Pキャラとロックオン対象との距離が所定距離以上離れたか否かを判定する。その結果、所定距離以上離れた場合は(ステップS42でYES)、ステップS43で、プロセッサ81は、1Pキャラのロックオン状態を解除するための処理を実行する。具体的には、1Pキャラ情報307について、ロックオン状態ではないことを示す情報を設定する。また、ロックオンカーソルを消去し、上記同様に1Pカーソルの配置位置を算出し、その位置に1Pカーソルを移動させる処理も実行する。一方、所定距離以上離れていない場合は(ステップS42でNO)。上記ステップS43の処理は行わず、次のステップS44に処理が進められる。つまり、1Pキャラのロックオン状態は維持されたままとなる。
【0159】
次に、ステップS44で、プロセッサ81は、2Pキャラ情報308を参照し、2Pキャラがロックオン状態であるか否かを判定する。当該判定の結果、ロックオン状態ではない場合は(ステップS44でNO)、後述のステップS47に処理が進められる。一方、ロックオン状態の場合は(ステップS44でYES)、ステップS45で、プロセッサ8
1は、2Pキャラとロックオン対象との距離が所定距離以上離れたか否かを判定する。その結果、所定距離以上離れた場合は(ステップS45でYES)、ステップS46で、プロセッサ81は、上記1Pキャラの場合と同様に、2Pキャラのロックオン状態を解除するための処理を実行する。具体的には、2Pキャラ情報308について、ロックオン状態ではないことを示す情報を設定する。また、ロックオンカーソルを消去し、2Pカーソルの配置位置を算出して、その位置に移動させる処理も実行する。一方、所定距離以上離れていない場合は(ステップS45でNO)。上記ステップS46の処理は行われずに、2Pキャラのロックオン状態が維持される。
【0160】
次に、ステップS47で、プロセッサ81は、上述したようなロックオンカーソルが表示されているか否かを判定する。すなわち、いずれかのプレイヤが、所定のオブジェクトをロックオンしている状態であるか否かを判定する。当該判定の結果、ロックオンカーソルが表示されている状態の場合は(ステップS47でYES)、ステップS48で、プロセッサ81は、ロックオン対象の位置に合わせてロックオンカーソルを適宜移動させる処理を実行する。つまり、ロックオンカーソルをロックオン対象に追従移動させる処理を実行する。一方、ロックオンカーソルがない場合は(ステップS47でNO)、当該ステップS48の処理はスキップされ、次の処理に進む。
【0161】
次に、ステップS49で、プロセッサ81は、上述したような慣性センサを用いたカーソル位置の微調整に関連して、コントローラの「基準姿勢」を再設定する処理を実行する。具体的には、プロセッサ81は、ロックオン基準位置からのロックオンカーソルの移動量を初期化し、上記ロックオン操作が行われたコントローラの現在の姿勢を「基準姿勢」として再設定する。つまり、ロックオン操作が行われることで、上記「基準姿勢」の再設定が行われることになる。以上で、ロックオン処理は終了する。
【0162】
[カーソル制御処理]
図44に戻り、ロックオン処理の次に、ステップS13で、プロセッサ81は、カーソル制御処理を実行する。この処理では、プレイヤキャラクタの位置に基づいてカーソルの位置を決める処理と、この位置から、上記慣性センサを用いて更にその位置を微調整するための処理が実行される。
【0163】
図48は、上記カーソル制御処理の詳細を示すフローチャートである。まず、ステップS51で、プロセッサ81は、移動後の1Pキャラの位置および向き(進行方向)に基づいて、1Pカーソルの配置位置を算出する。そして、当該算出した位置に1Pカーソルを移動させる。この位置は、移動後の1Pキャラの位置から、その向きに沿った方向に所定量変位させた位置である。また、後述するカーソル位置の微調整の処理において、「基準位置」となる位置でもある。
【0164】
次に、ステップS52で、プロセッサ81は、1Pキャラの場合と同様に、移動後の2Pキャラの位置および向き(進行方向)に基づいて、2Pカーソルの配置位置を算出する。この位置も、次に説明するカーソル位置の微調整の処理において「基準位置」となる位置である。そして、当該算出した位置に2Pカーソルを移動させる。
【0165】
次に、上記慣性センサを利用したカーソル位置の微調整に関する処理が実行される。具体的には、まず、ステップS53で、プロセッサ81は、1P操作データ302から慣性センサデータ305を取得する。次に、ステップS54で1Pキャラ情報307を参照し、1Pキャラがロックオン状態であるか否かを判定する。その結果、ロックオン状態ではない場合は(ステップS54でNO)、ステップS55で、プロセッサ81は、慣性センサに基づいて1Pカーソルを移動させる際の速度として、第1の移動速度を設定する。一方、ロックオン状態の場合(ステップS54でYES)、ステップS56で、プロセッサ
81は、慣性センサに基づいて1Pカーソルを移動させる際の速度として、第2の移動速度を設定する。第1の移動速度は、ロックオン状態ではない場合における移動速度であり、第2の移動速度は、ロックオン状態のときの移動速度である。上述したように、ロックオン状態のときのほうがより細かい微調整が可能なように、同じ傾き具合におけるカーソルの移動速度として、より遅い移動速度を設定するものである。例えば、第2の移動速度を第1の移動速度の25%の速度として設定する、等である。
【0166】
なお、他の実施形態では、移動速度ではなく、例えば移動量や移動距離として、上記と同趣旨の内容を算出および設定してもよい。
【0167】
次に、ステップS57で、プロセッサ81は、慣性センサデータ305、および、上記設定された第1の移動速度または第2の移動速度に基づいて、1Pカーソルの位置を移動させる処理を実行する。本実施形態では、まず、慣性センサデータ305に含まれる角速度データから現在のコントローラの姿勢を算出する。更に、所定のタイミングで設定された所定の基準姿勢と、コントローラの現在の姿勢との差分を算出する。すなわち、当該基準姿勢からの変化量を算出する。そして、上記設定された移動速度と当該算出した差分とに基づいて、上述した「基準位置」から1Pカーソルを移動させる。なお、他の実施形態では、基準姿勢を用いず、毎フレームの角速度を算出し、この角速度に基づいて1Pカーソルを移動させるという制御を行っても良い。この場合は、例えば、毎フレームの角速度に基づいて、前フレームにおける1Pカーソルの位置から移動させていく制御を行えばよい。
【0168】
なお、1Pキャラがロックオン状態である場合は、1Pカーソルの位置が上述したようなロックオン調整可能範囲221(上記図31参照)の外には出ないように移動制御が行われる(ロックオン調整可能範囲221は、後述するロックオン処理において設定される)。また、ロックオン状態ではない場合には、上記の微調整による移動の結果、1Pカーソルの位置がお供キャラクタ202を投げて届く位置である否かに応じて、1Pカーソルの色を変更する処理も実行される。
【0169】
ステップS57の処理が終われば、次に、上記のような慣性センサによるカーソル移動制御と同様の処理を2Pカーソルについて行うための処理が実行される。まず、ステップS58で、プロセッサ81は、2P操作データ306から慣性センサデータ305を取得する。次に、ステップS59で2Pキャラ情報308を参照し、2Pキャラがロックオン状態であるか否かを判定する。その結果、ロックオン状態であれば(ステップS59でYES)、ステップS61で上記第2の移動速度が設定され、ロックオン状態ではない場合は(ステップS59でNO)、ステップS60で上記第1の移動速度が設定される。そして、ステップS62で、プロセッサ81は、1Pカーソルの場合と同様に、慣性センサデータ305および上記設定された移動速度に基づいて2Pカーソルの位置を移動させる処理をする(ロックオン調整可能範囲221に関する移動制御と、カーソル色の変更についても1Pカーソルの場合と同様に処理される)。以上で、カーソル制御処理は終了する。
【0170】
[操作対象切り替え処理]
図44に戻り、カーソル制御処理の次に、ステップS14で、操作対象切り替え処理が実行される。この処理では、上記キャラ切り替えメニュー207を用いた操作対象の切り替えを制御するための処理が実行される。
【0171】
図49は、操作対象切り替え処理の詳細を示すフローチャートである。まず、ステップS71で、プロセッサ81は、1P用切り替えメニュー表示フラグ321がオンに設定されているか否かを判定する。すなわち、現在、第1プレイヤの操作に基づくキャラ切り替えメニュー207が表示されている状態であるか否かを判定する。当該判定の結果、オン
ではない場合は(ステップS71でNO)、キャラ切り替えメニュー207は表示されていない状態である。この場合は、ステップS75で、プロセッサ81は、上記キャラ切り替えメニュー207を表示するための操作が行われたか否かを1P操作データ302に基づいて判定する。その結果、当該操作が行われている場合は(ステップS75でYES)、ステップS76で、プロセッサ81は、1P用切り替えメニュー表示フラグ321をオンに設定する。一方、当該操作が行われていない場合は(ステップS75でNO)、上記ステップS76の処理はスキップされて、後述のステップS77に処理が進められる。
【0172】
一方、上記ステップS71の判定の結果、1P用切り替えメニュー表示フラグ321がオンに設定されている場合は(ステップS71でYES)、現在、第1プレイヤの操作に基づくキャラ切り替えメニュー207が表示されている状態であり、その操作中の状態である。この場合は、ステップS72で、プロセッサ81は、第1プレイヤによる操作対象の切り替え指示操作が完了したか否かを、1P操作データ302に基づいて判定する。当該判定の結果、まだ完了していない場合は(ステップS72でNO)、後述のステップS77に処理が進められる。一方、切り替え指示操作が完了していた場合は(ステップS72でYES)、ステップS73で、プロセッサ81は、1P操作データ302に基づき、第1プレイヤの操作対象キャラクタを変更する。具体的には、操作内容に基づいて、1Pキャラ情報307における、現在の操作対象を示すプレイヤキャラクタIDを適宜更新する処理が実行される。その後、ステップS74で、プロセッサ81は、1P用切り替えメニュー表示フラグ321にオフを設定する。つまり、第1プレイヤにかかるキャラ切り替えメニュー207を画面から消去するための処理が実行される。
【0173】
次に、ステップS77~S82で、上記ステップS71~S76と同様の処理が、第2のプレイヤを対象として実行される。まず、ステップS77で、プロセッサ81は、2P用切り替えメニュー表示フラグ322がオンに設定されているか否かを判定する。その結果、オンではない場合は(ステップS77でNO)、ステップS81で、プロセッサ81は、上記キャラ切り替えメニュー207を表示するための操作が行われたか否かを2P操作データ306に基づいて判定する。その結果、当該操作が行われている場合は(ステップS81でYES)、ステップS82で、プロセッサ81は、2P用切り替えメニュー表示フラグ322がオンに設定する。一方、当該操作が行われていない場合は(ステップS81でNO)、上記ステップS82の処理はスキップされて、後述のステップS83に処理が進められる。
【0174】
一方、上記ステップS77の判定の結果、2P用切り替えメニュー表示フラグ322がオンに設定されている場合は(ステップS77でYES)、ステップS78で、プロセッサ81は、第2プレイヤによる操作対象の切り替え指示操作が完了したか否かを2P操作データ306に基づいて判定する。当該判定の結果、まだ完了していない場合は(ステップS72でNO)、後述のステップS83に処理が進められる。一方、完了していた場合は(ステップS78でYES)、ステップS79で、プロセッサ81は、2P操作データ306に基づき、第2プレイヤの操作対象キャラクタを変更する。具体的には、操作内容に基づいて、2Pキャラ情報307における、現在の操作対象を示すプレイヤキャラクタIDを適宜更新する処理が実行される。その後、ステップS80で、プロセッサ81は、2P用切り替えメニュー表示フラグ322にオフを設定する。
【0175】
次に、ステップS83で、上記ステップS71~S82の処理の結果、いずれかのプレイヤの操作対象の切り替えが発生したか否かが判定される。すなわち、いずれかのプレイヤにおいて、操作対象の切り替え操作が完了したか否かが判定される。当該判定の結果、いずれかのプレイヤにおいても操作対象の切り替えが発生していない場合は(ステップS83でNO)、当該操作対象切り替え処理を終了する。一方、操作対象の切り替えが発生していた場合は(ステップS83でYES)、ステップS84で、プロセッサ81は、操
作モード318が「合流モード」か否かを判定する。当該判定の結果、「合流モード」の場合は(ステップS84でYES)、ステップS85で、プロセッサ81は、切り替え後の操作対象が、それまで操作対象であった隊列とは別の隊列に属しているプレイヤキャラクタ201であるか否かを判定する。つまり、1Pキャラと2Pキャラが合流している状態で、操作対象ではないもう一体のプレイヤキャラクタ201を別隊列としている場合に操作対象の切り替えが行われたか否かを判定するものである。当該判定の結果、別隊列のプレイヤキャラクタ201への切り替えであるときは(ステップS85でYES)、ステップS86で、プロセッサ81は、操作モードを合流モードから別隊列モードに切り替えるため、モード変更指示データ323に「別隊列モード変更指示」を設定する。一方、上記判定の結果、別隊列のプレイヤキャラクタ201への切り替えではなかった場合は(ステップS85でNO)、ステップS86の処理は行われず、処理が先に進められる。
【0176】
一方、上記ステップS84の判定の結果、操作モード318が「合流モード」ではない場合は(ステップS84でNO)、ステップS87で、プロセッサ81は、切り替え後の操作対象が、別隊列の後衛キャラであるか否かを判定する。つまり、別隊列でプレイしている状態(分割画面)において、例えば第2プレイヤが2Pキャラを1Pキャラの隊列の後衛キャラに切り替える操作を行ったか否かを判定するものである。当該判定の結果、後衛キャラへの切り替えである場合は(ステップS87でYES)、ステップS88で、プロセッサ81は、操作モードを別隊列モードから合流モードに切り替えるため、モード変更指示データ323に「合流モード変更指示」を設定する。一方、後衛キャラへの切り替えではない場合は(ステップS87でNO)、上記ステップS88の処理は行われず、処理が次に進められる。
【0177】
次に、ステップS89で、プロセッサ81は、上述した慣性センサを用いた微調整操作に関連する処理として、上記基準位置からのカーソルの移動量を初期化し、上記切り替え操作が行われたコントローラの現在の姿勢を「基準姿勢」として設定する処理を実行する。移動操作以外の操作が行われるタイミングで、コントローラの姿勢を一旦リセットして、上記カーソルの微調整操作の操作性を高めるための処理である。以上で、操作対象切り替え処理が終了する。
【0178】
[投げ処理]
図44に戻り、操作対象切り替え処理の次に、ステップS15で、プロセッサ81は、投げ処理を実行する。この処理では、お供キャラクタ202等を「投げる」操作、および、投げる対象を選択するための操作に関する処理が実行される。ここで、「投げる」操作としては、例えば、上記「縦持ち」の場合はAボタン53の押下、「横持ち」の場合はボタン34の押下である。また、投げる対象を選択する操作については、上述したように、表示される投げ対象選択UI204によって異なり、原則的には、「縦持ち」の場合は、第1Lボタン38または第1Rボタン60のいずれかのボタンの押下であり、「横持ち」の場合は、第2Lボタン43の押下となる。但し、合流画面において、操作部がより少ない方のコントローラに応じたレイアウトの投げ対象選択UI204が共用されている場合は、「縦持ち」の場合でも、第1Lボタン38のみが選択操作に割り当てられている。なお、以下の説明では、投げる操作によって投げられる各種オブジェクトのことを「投げ対象」と呼ぶ。
【0179】
図51は、上記投げ処理の詳細を示すフローチャートである。まず、ステップS101で、プロセッサ81は、投げ対象を選択するための操作がいずれかのプレイヤによって行われたか否かを1P操作データ302および2P操作データ306に基づいて判定する。その結果、投げ対象を選択するための操作が行われていた場合は(ステップS101でYES)、ステップS102で、その操作内容に基づいて、1P用選択UIデータ319、あるいは、2P用選択UIデータ320の現在枠データ362の内容を変更する。また、
これに伴い、候補データ363の内容も適宜更新する。一方、投げ対象を選択するための操作が行われていない場合は(ステップS101でNO)、上記ステップS102の処理はスキップされ、処理が次に進められる。
【0180】
次に、ステップS103で、プロセッサ81は、「投げる」操作がいずれかのプレイヤによって行われたか否かを1P操作データ302および2P操作データ306に基づいて判定する。その結果、「投げる」操作が行われていない場合は(ステップS103でNO)、棟が投げ処理を終了する。一方、「投げる」操作が行われた場合は(ステップS103でYES)、ステップS104で、プロセッサ81は、「投げる」操作を行ったプレイヤにかかる、現在選択中の投げ対象を特定する。例えば、操作モードが別隊列モードのときは、操作を行ったプレイヤにかかる投げ対象選択UIの現在枠に設定されているお供キャラクタあるいは後衛キャラが「投げ対象」となる。また、合流モードの場合は、投げ対象選択UI204は1つだけ表示され、第1プレイヤおよび第2プレイヤで共用となっている。そのため、いずれかのプレイヤの選択操作によって現在枠231(第1レイアウトの選択UI)または現在枠234(第2レイアウトの選択UIの場合)に設定されているお供キャラクタあるいは後衛キャラが「投げ対象」となる。
【0181】
次に、ステップS105で、プロセッサ81は、「投げ対象」が上記後衛キャラであるか否かを判定する。後衛キャラである場合は(ステップS105でYES)、ステップS106で、プロセッサ81は、「投げる」操作を行った1Pキャラあるいは2Pキャラに、後衛キャラを投げる動作を行わせる。更に、「投げる」操作を行ったプレイヤキャラクタに対応するカーソル(1Pカーソルまたは2Pカーソル)の位置に当該後衛キャラを(例えば放物線を描くようにして)移動させる。
【0182】
次に、ステップS107で、プロセッサ81は、投げられた後衛キャラが別隊列のリーダーとなるように、隊列データの内容を適宜更新する。
【0183】
次に、ステップS108で、プロセッサ81は、投げられた後衛キャラが、いずれかのプレイヤの操作対象となっているか否かを判定する。その結果、操作対象であった場合は(ステップS108でYES)、1Pキャラと2Pキャラが同じ隊列にいる状態で、後衛キャラを「投げる」ことにより隊列の分割が発生する状況であると考えられる。そのため、この場合は、合流モードから別隊列モードに操作モードを切り替えるため、ステップS109で、プロセッサ81は、モード変更指示データ323に、「別隊列モード変更指示」を設定する。一方、操作対象ではない場合は(ステップS108でNO)、ステップS109の処理はスキップされる。なお、この場合の投げられた後衛キャラについては、投げた先で待機させる処理が実行される。
【0184】
一方、上記ステップS105の判定の結果、「投げ対象」が後衛キャラではない場合は(ステップS105でNO)、お供キャラクタ202を投げることになる。この場合は、ステップS110で、プロセッサ81は、「投げる」操作を行った1Pキャラあるいは2Pキャラに、それぞれのカーソル(1Pカーソルまたは2Pカーソル)の位置に向けて「投げ対象」として設定されているお供キャラクタを投げる動作を行わせる。ここで、隊列内には複数のお供キャラクタ202が存在する場合もある。この場合は、隊列内で、「投げ対象」として示されるお供キャラクタと同種類のお供キャラクタ202のうちのいずれか1体を選択して投げる動作を行わせる。選択手法はどのような手法でもよいが、例えば、一番近くのお供キャラクタ202を選択すること等が挙げられる。そして、プロセッサ81は、投げ対象のお供キャラクタ202を1Pカーソルまたは2Pカーソルの位置まで移動開始させる。
【0185】
なお、プロセッサ81は、投げられたお供キャラクタ202について、その後、お供キ
ャラクタマスタデータ312の種別ID331および行動定義データ333に基づいて、その移動先において所定の行動を実行させる。例えば、敵キャラクタを攻撃させる等である。また、その行動内容に基づき、現在位置データ344および現在状態データ345の内容を適宜更新する処理も実行される。以上で、投げ処理は終了する。
【0186】
[モード設定処理]
図44に戻り、投げ処理の次に、ステップS16で、プロセッサ81は、モード設定処理を実行する。この処理では、操作モードを変更するための処理が実行される。図52は、当該モード設定処理の詳細を示す図である。まず、ステップS121で、プロセッサ81は、操作モード318を参照して、現在の操作モードが「合流モード」であるか否かを判定する。当該判定の結果、「合流モード」ではない、すなわち、「別隊列モード」の場合は(ステップS121でNO)、ステップS122で、プロセッサ81は、上記のような「合流操作」が行われたか否か、あるいは、モード変更指示データ323に「合流モード変更指示」が設定されているか否か、を判定する。当該判定の結果、合流操作も行われておらず、かつ、「合流モード変更指示」も設定されていない場合は(ステップS122でNO)、後述のステップS127に処理が進められる。一方、「合流操作」が行われている場合、または、「合流モード変更指示」が設定されている場合は(ステップS122でYES)、ステップS123で、プロセッサ81は、合流処理を実行する。
【0187】
図53は、上記合流処理の詳細を示すフローチャートである。まず、ステップS131で、プロセッサ81は、合流操作が行われたか否かを判定する。すなわち、当該合流処理が、合流操作によって実行されているものか、「合流モード変更指示」によって実行されているものかを判定する。当該判定の結果、合流操作が行われていた場合は(ステップS131でYES)、ステップS132で、プロセッサ81は、1P操作データ302および2P操作データ306を参照し、その操作内容に基づいて、1Pキャラまたは2Pキャラのいずれか一方をリーダーキャラとして決定する処理を実行する。更に、ステップS132で、リーダーキャラとして決定されなかったほうを後衛キャラとして設定する処理が実行される。例えば、移動していない1Pキャラに対して2Pキャラが移動してくることによって接触した場合(つまり、1Pキャラに2Pキャラがぶつかってくるようにして接触した場合)は、1Pキャラをリーダーキャラとして決定する、つまり、1Pキャラの隊列に2Pキャラを加えるような処理を行うことになる。具体的には、決定されたリーダーキャラが属する隊列に対応する隊列データ(ここでは、第1隊列データ315であるとする)のリーダーキャラ情報に1PキャラのプレイヤキャラクタIDを設定し、第1後衛キャラ情報352に、2PキャラのプレイヤキャラクタIDを設定する処理が実行される。つまり、ステップS132およびS133で、合流操作を反映した隊列の再設定処理が実行されることになる。
【0188】
一方、上記ステップS131の判定の結果、合流操作が行われていない場合、すなわち、「合流モード変更指示」によって当該合流処理が実行されている場合は(ステップS131でNO)、上述の操作キャラクタの切り替えの結果、別隊列モードから合流モードに切り替わる場合となる。この場合は、既にリーダーキャラ、後衛キャラは設定済みであるため、上記ステップS132、S133の処理はスキップされて、次の処理に進められる。
【0189】
次に、ステップS134で、プロセッサ81は、上記画面切り替え状態データ324に、「合流画面切り替え中」を示す情報を設定する。以上で、合流処理は終了する
【0190】
図52に戻り、次に、ステップS124で、プロセッサ81は、操作モード318に「合流モード」を設定する。その後、モード設定処理は終了する。
【0191】
一方、上記ステップS121の判定の結果、現在の操作モードが「合流モード」の場合は(ステップS121でYES)、ステップS125で、プロセッサ81は、上記のような「解散操作」が行われたか否か、あるいは、モード変更指示データ323に「別隊列モード変更指示」が設定されているか否か、を判定する。当該判定の結果、解散操作も行われておらず、かつ、「別隊列モード変更指示」も設定されていない場合は(ステップS125でNO)、上記ステップS124に処理が進められる。一方、「解散操作」が行われている場合、または、「別隊列モード変更指示」が設定されている場合は(ステップS125でYES)、ステップS126で、プロセッサ81は、分割処理を実行する。
【0192】
図54は、上記分割処理の詳細を示すフローチャートである。まず、ステップS141で、プロセッサ81は、上記のような解散操作が行われたか否かを判定する。すなわち、当該分割処理が、解散操作によって実行されているものか、「別隊列モード変更指示」によって実行されているものかを判定する。ここで、解散操作の例としては、例えば、コントローラを「縦持ち」で操作している場合は、Bボタン54を所定時間内に連続して3回押す操作であり、「横持ち」で操作している場合は、アナログスティック32を下方向に連続して3回入れる操作、等である。当該判定の結果、解散操作が行われていた場合は(ステップS141でYES)、ステップS142で、プロセッサ81は、後衛キャラを操作しているプレイヤによる解散操作を行ったか否かを判定する。当該判定の結果、後衛キャラを操作しているプレイヤによる解散操作ではない場合は(ステップS142でNO)、リーダーキャラを操作しているプレイヤが解散操作を行ったことになる。この場合は、ステップS143で、プロセッサ81は、解散操作が行われた隊列を解散する処理を実行する。例えば、リーダーキャラが1Pキャラであり、第1プレイヤが解散操作を行った場合を考える。この場合は、第1プレイヤの操作対象となっている隊列データについて、お供キャラクタ情報354の内容をクリアする処理が実行される。また、2Pキャラ(後衛)が同じ隊列にいた場合は、第1プレイヤの操作対象となっている隊列に対応する隊列データから2Pキャラ(後衛)を外し、当該2Pキャラを別隊列の隊列データのリーダーキャラとして設定する処理も行われる。また、2Pキャラ以外の後衛キャラが隊列内にいた場合は、それを第1後衛キャラ情報352として再設定する処理も実行される。なお、2Pキャラが同隊列内にいなければ、お供キャラクタ情報354の内容をクリアする処理だけが実行されることになる。その他、隊列を解散するための各種処理も適宜実行される。その後、後述のステップS145に処理は進められる。
【0193】
一方、後衛キャラを操作しているプレイヤによる解散操作であった場合は(ステップS142でYES)、ステップS144で、プロセッサ81は、解散操作を行ったプレイヤの操作対象となっている後衛キャラを別隊列のリーダーとして設定するための処理を実行する。例えば、第1プレイヤの操作対象の隊列に第1隊列データ315が対応している場合は、第1隊列データ315の第1後衛キャラ情報352の内容を、第2隊列データ316のリーダーキャラ情報351として設定する処理が実行される。また、他の後衛キャラが隊列内にいた場合は、それを第1後衛キャラ情報352として再設定する処理も実行される。また。他の後衛キャラが隊列内にいない場合は、第1隊列データ315の第1後衛キャラ情報352の内容をクリアする処理が実行される。
【0194】
次に、ステップS145で、プロセッサ81は、上記画面切り替え状態データ324に、「分割画面切り替え中」を示す情報を設定する。以上で、分割処理は終了する。
【0195】
図52に戻り、次に、ステップS127で、プロセッサ81は、操作モード318に「別隊列モード」を設定する。以上で、モード設定処理は終了する。
【0196】
[その他オブジェクトの処理]
図44に戻り、モード設定処理の次に、ステップS17で、プロセッサ81は、プレイ
ヤキャラクタ201以外の各種オブジェクトに関する処理を実行する。例えば、敵キャラクタの移動制御等が実行される。
【0197】
[仮想カメラ設定処理]
次に、ステップS18で、プロセッサ81は、仮想カメラ設定処理を実行する。この処理では、仮想ゲーム空間を撮像する仮想カメラの各種パラメータを設定する処理が行われる。図55は、仮想カメラ設定処理の詳細を示すフローチャートである。図55において、まず、ステップS161で、プロセッサ81は、画面切り替え状態データ324を参照して、「合流画面切り替え中」が設定されているか否かを判定する。当該判定の結果、「合流画面切り替え中」であれば(ステップS161でYES)、「分割画面」から「合流画面」へ数フレームかけて切り替えている状態であると考えられる。この場合は、ステップS162で、プロセッサ81は、「分割画面」から「合流画面」へと切り替え中のときの仮想カメラの各種パラメータを設定する。例えば、「分割画面」から「合流画面」に切り替わるとき、1P表示領域の横幅を徐々に大きくして行くと共に、2P表示領域が画面外に押し出されるようにして、その表示領域が小さくなっていくような演出が数フレームかけて行われるとする。この場合は、例えば、1Pキャラに注視点を設定したまま、1P用の仮想カメラの表示領域を徐々に広げていくような設定等が行われる。また、2P用の仮想カメラの表示領域を狭めるような設定等も行われる。その他、仮想カメラの位置等の各種パラメータも適宜設定される。
【0198】
次に、ステップS163で、プロセッサ81は、「分割画面」から「合流画面」への切り替えが完了したか否かを判定する。当該判定の結果、完了した場合は(ステップS163でYES)、ステップS167で、プロセッサ81は、画面切り替え状態データ324をクリアする。その後、ステップS168へ進む。一方、完了していない場合は(ステップS163でNO)、ステップS167の処理は行わずに、ステップS168へ進む。
【0199】
一方、上記ステップS161の判定の結果、「合流画面切り替え中」が設定されていない場合は(ステップS161でNO)、次に、ステップS164で、プロセッサ81は、「分割画面切り替え中」が設定されているか否かを判定する。当該判定の結果、「分割画面切り替え中」が設定されている場合は(ステップS164でYES)、「合流画面」から「分割画面」へと数フレームかけて切り替えている状態であると考えられる。この場合は、ステップS165で、プロセッサ81は、「合流画面」から「分割画面」に切り替え中のときの仮想カメラの各種パラメータを設定する。例えば、「合成画面」から「分割画面」に切り替えるとき、上述のように2P表示領域が画面右側から左に向けて、1P表示領域を押し込むようにして入り込んでくる演出が行われる。この場合は、例えば、最終的に画面の左半分を占有する大きさとなるように、1P用の仮想カメラの表示領域を徐々に狭めていくような設定等が行われる。また、2P用の仮想カメラについても、最終的に画面の右半分を占有する大きさとなるように、その表示領域を徐々に大きくしていくような設定等が行われる。
【0200】
次に、ステップS166で、プロセッサ81は、「合流画面」から「分割画面」への切り替えが完了したか否かを判定する。当該判定の結果、完了した場合は(ステップS166でYES)、上記ステップS167で、プロセッサ81は、画面切り替え状態データ324をクリアする。その後、仮想カメラ設定処理を終了する。一方、完了していない場合は(ステップS166でNO)、ステップS167の処理は行わずに、ステップS168へ進む。
【0201】
一方、上記ステップS164の判定の結果、分割画面切り替え中でもない場合は(ステップS164でNO)、切り替えが終わった後の上記「合流画面」または「分割画面」のいずれかの状態であると考えられる。この場合は、ステップS169で、プロセッサ81
は、そのときの操作モード318に応じた仮想カメラの設定を行う。つまり、「合流画面」であるか「分割画面」であるかに応じて、それぞれの画面に適した仮想カメラの設定を行う。例えば、「合流画面」の場合は、画面の全域を用いるように1P用仮想カメラの表示領域の大きさが設定され、「分割画面」の場合は、表示領域が「合流画面」時の半分の大きさとなるように、1P用仮想カメラの表示領域の大きさ、および、2P用仮想カメラの表示領域の大きさのそれぞれが設定される。
【0202】
次に、ステップS168で、プロセッサ81は、仮想カメラの各種パラメータの設定処理を適宜実行する。例えば、プロセッサ81は、各プレイヤキャラクタ201の移動に追従して、各プレイヤキャラクタに対応する仮想カメラが移動するように、毎フレームにおける仮想カメラの位置、姿勢、画角等を設定する。また、その他、プレイヤが仮想カメラを回転させる操作や、ズームイン/アウトさせる操作を行っていた場合は、その操作内容に応じて仮想カメラの撮像方向や画角等を適宜設定する処理も実行される。その後、仮想カメラ設定処理は終了する。
【0203】
[UI配置処理]
図44に戻り、仮想カメラ設定処理が終われば、次に、ステップS19で、プロセッサ81は、UI配置処理を実行する。この処理は、上述した投げ対象選択UI204および操作キャラ情報画像205がゲーム画像に表示されるように、これらに対応するオブジェクトを仮想ゲーム空間内の適切な位置に配置する処理等が実行される。この適切な位置とは、ゲーム画像として画面に表示された場合に、投げ対象選択UI204および操作キャラ情報画像205が上記図8図15等で示したような位置に表示されるような、仮想ゲーム空間内における位置である。また、その他、必要に応じて、上記と同趣旨でキャラ切り替えメニュー207に対応するオブジェクトを仮想ゲーム空間内に配置する処理も実行される。
【0204】
図56は、UI配置処理の詳細を示すフローチャートである。まず、ステップS181で、プロセッサ81は、操作モード318を参照して、現在の操作モードが「合流モード」であるか否かを判定する。その結果、「合流モード」である場合は(ステップS181でYES)、ステップS182で、プロセッサ81は、「合流モード」における投げ対象選択UI204を仮想ゲーム空間内に配置する。上記のように、「合流モード」の場合は、操作部の数が少ないほうのコントローラに応じた投げ対象選択UI204が用いられる。そのため、この処理では、用いられているコントローラの種類に応じて、上記「第1レイアウトの選択UI」、または「第2レイアウトの選択UI」のいずれかが選択され、そのUIに対応するオブジェクトが仮想ゲーム空間内の適切な位置に配置される。また、UIの表示内容については、現在枠データ362および候補データ363の内容に基づいて適宜設定される。
【0205】
一方、上記ステップS181の判定の結果、「合流モード」ではない場合、すなわち、「別隊列モード」の場合は(ステップS181でNO)、ステップS183で、プロセッサ81は、「別隊列モード」における投げ対象選択UI204を仮想ゲーム空間内に配置する。この場合は、「分割画面」であるため、各プレイヤの用いるコントローラに応じたレイアウトの投げ対象選択UI204が、それぞれ仮想ゲーム空間内の適切な位置に配置される。
【0206】
次に、ステップS184で、プロセッサ81は、1P用切り替えメニュー表示フラグ321がオンであるか否かを判定する。オンの場合は(ステップS184でYES)、ステップS185で、プロセッサ81は、第1プレイヤの操作のためのキャラ切り替えメニュー207を仮想空間内の適切な位置に配置する。一方、オフの場合は(ステップS184でNO)、ステップS186で、プロセッサ81は、第1プレイヤの操作のためのキャラ
切り替えメニュー207が仮想ゲーム空間内に配置されていれば、それを消去する処理を実行する。なお、配置されていなければ、特に何も行われない。
【0207】
次に、ステップS187で、プロセッサ81は、2P用切り替えメニュー表示フラグ322がオンであるか否かを判定する。オンの場合は(ステップS187でYES)、ステップS188で、プロセッサ81は、第2プレイヤの操作のためのキャラ切り替えメニュー207を仮想空間内の適切な位置に配置する。また、その表示内容についても、現在枠データ362および候補データ363の内容に基づいて適宜設定する。一方、オフの場合は(ステップS187でNO)、ステップS189で、プロセッサ81は、第2プレイヤの操作のためのキャラ切り替えメニュー207が仮想ゲーム空間内に配置されていれば、それを消去する処理を実行する。また、ステップS186同様、配置されていなければ特に何も行われない。以上で、UI配置処理は終了する。
【0208】
図44に戻り、UI配置処理が終了すれば、操作内容に基づく処理は終了する。
【0209】
以上で、本実施形態にかかるゲーム処理の詳細説明を終了する。
【0210】
このように、本実施形態では、1Pキャラと2Pキャラが同じ隊列であるか別隊列であるかに応じて、合流画面と分割画面とをシームレスに切り替える制御を行っている。これにより、ゲームの状況に応じた見やすい画面表示を提供することが可能となる。例えば、1Pキャラと2Pキャラとが同じ隊列にいる場合は、双方の距離があまり離れないように制御されるため(すなわち、後衛キャラの移動がリーダーキャラの位置に基づく制限を受けている)、1画面で表示する方が見やすくなる。また、別隊列時は、1Pキャラ、2Pキャラとで完全に別個の操作が可能となるため、分割画面のほうが見やすくなる。これにより、各プレイヤの隊列の参加状況に応じた適切で見やすいゲーム画面を提供できる。
【0211】
また、本実施形態では、上記1Pカーソルおよび2Pカーソル(ロックオンカーソルの場合も含む)について、1Pキャラ、2Pキャラの位置と向きに基づいてカーソルの基準位置を設定している。そして、慣性センサによる入力に基づき、この基準位置から更にカーソル位置を変化させることができる。これにより、プレイヤキャラクタ201の移動方向入力という簡易な操作だけでカーソル位置を操作できると共に、例えばコントローラの姿勢を変化させることで、この位置を更に微調整することができ、操作性を向上することができる。更に、本実施形態では、上記ロックオン状態の場合とそうではない場合とで、慣性センサに基づいてカーソル位置を微調整する際のカーソルの移動速度に差を設けている。これにより、例えば、敵キャラクタに狙いをつける必要性が高いロックオン状態において、同じ姿勢変化に対するカーソルの移動量がより小さくなるようにすることで、カーソル位置の微調整をより行わせやすくすることができ、操作性を更に向上できる。
【0212】
また、本実施形態では、第1プレイヤと第2プレイヤとで、操作部の数が異なるコントローラを利用することが可能であるところ、このようなコントローラの操作部の数の違いに応じて、複数の投げ対象選択UIを使い分けている、これにより、コントローラの操作部の数に応じた選択操作を行いやすくすると共に、選択操作に用いるUI自体も、コントローラに応じたUIとすることができ、プレイヤの利便性を高めることができる。
【0213】
[変形例]
なお、上記の例では、2人プレイを例とし、分割画面として表示領域を2つ用いる場合を例に説明した。他の実施形態では、3人以上のプレイヤとし、分割時の表示領域もプレイヤ数に応じた数としてもよい。例えば、4体のプレイヤキャラクタを用いた4人プレイの場合は、表示領域については最大で4つとしてもよい。そして、隊列構成の変更に応じて、同じ隊列に属しているプレイヤについては同じ表示領域にまとめればよい。例えば、
プレイヤA、B、C、Dがいる場合、全員が別隊列であれば、分割画面としては4つの表示領域を用いればよい。例えば、縦2×横2の表示領域とすればよい。また、プレイヤAとBが第1の隊列、プレイヤCとDが第2の隊列にいる構成であれば、左右2画面の分割画面の体裁を取り、片方の表示領域は第1の隊列にかかる合流画面とし、他方の表示領域は第2の隊列にかかる合流画面として表示しても良い。また、プレイヤA、B、Cが第1の隊列、プレイヤDのみが第2の隊列を構成している場合も、左右2つの表示領域からなる分割画面の体裁を取り、片方を第1の隊列にかかる合流画面とし、他方は第2の隊列に係る合流画面としてもよい。また、4人のプレイヤ全員が同じ隊列となる場合は、1画面だけの合流画面を表示すれば良い。また、隊列が3つになる場合は、例えば分割画面として3分割の表示領域を用いても良いし、上記2×2の4分割の表示領域として、そのうち3つの表示領域だけを使用するような構成としてもよい。
【0214】
また、上記実施形態において、お供キャラクタ202等を移動させる際に「投げる」動作を行う例を示した。この動作については、「投げる」動作に限らず、他の動作でお供キャラクタ等を移動させるようにしてもよい。つまり、プレイヤキャラクタ201の位置からある程度離れた位置に、所定時間内(例えば数秒程度の時間内)にお供キャラクタ202等を移動させるような動作であれば、どのような動作を用いてもよい。例えば、カーソルの位置にお供キャラクタ202等を「瞬間移動」させるようにしてもよいし、また、例えば、ボーリング玉のように、お供キャラクタ202等を「転がす」ようにしてカーソル位置まで移動させるようにしてもよい。
【0215】
また、上記の例では、プレイヤが操作可能なキャラクタの数として、3体の場合を例にしたが、他の実施形態では、4体以上のプレイヤキャラクタを用いるようにしてもよい。また、他の実施形態では、プレイヤキャラクタを2体だけ用いるようにしてもよい。この場合は、上記操作対象を切り替える操作が行われた場合は、第1プレイヤと第2プレイヤの操作対象キャラクタを交換するような処理を行えばよい。
【0216】
また、上記実施形態においては、ゲーム処理にかかる一連の処理が単一の装置において実行される場合を説明したが、他の実施形態においては、上記一連の処理が複数の情報処理装置からなる情報処理システムにおいて実行されてもよい。例えば、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの一部の処理がサーバ側装置によって実行されてもよい。さらには、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの主要な処理がサーバ側装置によって実行され、当該端末側装置では一部の処理が実行されてもよい。また、上記情報処理システムにおいて、サーバ側のシステムは、複数の情報処理装置によって構成され、サーバ側で実行するべき処理を複数の情報処理装置が分担して実行してもよい。
【符号の説明】
【0217】
1 ゲームシステム
2 本体装置
3 左コントローラ
4 右コントローラ
81 プロセッサ
84 フラッシュメモリ
85 DRAM
図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
図33
図34
図35
図36
図37
図38
図39
図40
図41
図42
図43
図44
図45
図46
図47
図48
図49
図50
図51
図52
図53
図54
図55
図56