(57)【要約】【課題】プレイヤキャラクタの移動に連動して動くカーソルの移動制御に関して、より操作性を高めることが可能なゲームプログラム等を提供することを提供すること。【解決手段】方向入力部および慣性センサを備えるコントローラから、方向入力データおよび慣性センサデータを取得する。この方向入力データに基づいて、プレイヤキャラクタの移動を制御する。また、カーソルの位置の制御モードは第１の制御モードと第２の制御モードとの間で切り替え可能であり、第１の制御モードのときは、プレイヤキャラクタの位置および向きに基づいて算出された位置を基点として慣性センサデータに基づいて更に移動させた位置をカーソル位置とする。第２の制御モードのときは、仮想空間内の所定の位置を含む当該仮想空間内の所定の範囲内において、当該所定位置を基点として慣性センサデータに基づいて移動させた位置をカーソル位置とする。【選択図】図４７
2020188985.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置のコンピュータに実行させるゲームプログラムであって、
前記コンピュータを、
方向入力部および慣性センサを少なくとも備えるコントローラから、方向入力データおよび慣性センサデータを少なくとも含む操作データを取得する操作データ取得手段と、
前記方向入力データに基づいて、仮想空間内におけるプレイヤキャラクタの移動を制御するプレイヤキャラクタ制御手段と、
所定のゲーム処理に用いられるカーソルの位置の制御モードを第１の制御モードと第２の制御モードとの間で切り替える切り替え手段と、
前記第１の制御モードのときに、前記プレイヤキャラクタの位置および向きに基づいて算出した前記仮想空間内の位置を第１の位置とし、更に、当該第１の位置を基点としてその位置を前記慣性センサデータに基づいて更に移動させた位置を第２の位置とし、当該第２の位置を前記カーソルの位置として決定するカーソル制御第１手段と、
前記第２の制御モードのときに、前記仮想空間内の所定の位置を前記第１の位置とし、前記カーソルの移動範囲を当該第１の位置を含む当該仮想空間内の所定の範囲内に制限し、当該範囲内において当該第１の位置を基点としてその位置を前記慣性センサデータに基づいて更に移動させた位置を前記第２の位置とし、当該第２の位置を前記カーソルの位置として決定するカーソル制御第２手段と、
前記操作データに基づいた指示に応じて、前記仮想空間内における前記カーソルの位置に対して所定のゲーム処理を行うカーソル位置関連処理手段として機能させる、ゲームプログラム。
【請求項２】
前記カーソル制御第１手段は、前記仮想空間内において、前記プレイヤキャラクタの位置から当該プレイヤキャラクタの向きに沿った方向に所定量変位させた位置を前記第１の位置とする、請求項１記載のゲームプログラム。
【請求項３】
前記カーソル制御第１手段および前記カーソル制御第２手段は、前記慣性センサデータに基づいて、所定の基準姿勢からの前記コントローラの姿勢の変化量を算出し、当該変化量に応じた位置を前記第２の位置とする、請求項１または２に記載のゲームプログラム。
【請求項４】
前記カーソル制御第２手段は、前記コントローラの姿勢の変化量に対するカーソルの移動量を、前記カーソル制御第１手段における移動量よりも少なくする、請求項３に記載のゲームプログラム。
【請求項５】
前記切り替え手段は、前記第１の制御モードと前記第２の制御モードとの切り替えが行われたときに、前記第１の位置からの前記慣性センサデータに基づく移動量を初期化すると共に、当該切り替えが行われたときの前記コントローラの姿勢を前記所定の基準姿勢とする、請求項３または４に記載のゲームプログラム。
【請求項６】
前記切り替え手段は、前記第１の制御モードから第２の制御モードに切り替えられたとき、予め設定対象として設定されている所定の対象オブジェクト上の所定の位置を前記第１の位置として設定し、
前記カーソル制御第２手段は、前記第２の制御モードのときに、前記カーソル位置を含む所定範囲内に前記対象オブジェクトが複数存在する場合は、前記第１の位置の設定対象となる対象オブジェクトを前記操作データに基づいて切り替えると共に、切り替え後の対象オブジェクト上の所定の位置を前記第１の位置として設定する、請求項１乃至５のいずれか記載のゲームプログラム。
【請求項７】
前記カーソル位置関連処理手段は、前記プレイヤキャラクタに、所定のオブジェクトを
前記カーソル位置に向けて移動させる処理を行う、請求項１乃至６のいずれか記載のゲームプログラム。
【請求項８】
方向入力部および慣性センサを少なくとも備えるコントローラを有するゲームシステムであって、
前記コントローラから、方向入力データおよび慣性センサデータを少なくとも含む操作データを取得する操作データ取得手段と、
前記方向入力データに基づいて、仮想空間内におけるプレイヤキャラクタの移動を制御するプレイヤキャラクタ制御手段と、
所定のゲーム処理に用いられるカーソルの位置の制御モードを第１の制御モードと第２の制御モードとの間で切り替える切り替え手段と、
前記第１の制御モードのときに、前記プレイヤキャラクタの位置および向きに基づいて算出した前記仮想空間内の位置を第１の位置とし、更に、当該第１の位置を基点としてその位置を前記慣性センサデータに基づいて更に移動させた位置を第２の位置とし、当該第２の位置を前記カーソルの位置として決定するカーソル制御第１手段と、
前記第２の制御モードのときに、前記仮想空間内の所定の位置を前記第１の位置とし、前記カーソルの移動範囲を当該第１の位置を含む当該仮想空間内の所定の範囲内に制限し、当該範囲内において当該第１の位置を基点としてその位置を前記慣性センサデータに基づいて更に移動させた位置を前記第２の位置とし、当該第２の位置を前記カーソルの位置として決定するカーソル制御第２手段と、
前記操作データに基づいた指示に応じて、前記仮想空間内における前記カーソルの位置に対して所定のゲーム処理を行うカーソル位置関連処理手段とを備える、ゲームシステム。
【請求項９】
前記カーソル制御第１手段は、前記仮想空間内において、前記プレイヤキャラクタの位置から前記プレイヤキャラクタの向きに沿った方向に所定量変位させた位置を前記第１の位置とする、請求項８に記載のゲームシステム。
【請求項１０】
前記カーソル制御第１手段および前記カーソル制御第２手段は、前記慣性センサデータに基づいて、所定の基準姿勢からの前記コントローラの姿勢の変化量を算出し、当該変化量に応じた位置を前記第２の位置とする、請求項８または９に記載のゲームシステム。
【請求項１１】
前記カーソル制御第２手段は、前記コントローラの姿勢の変化量に対するカーソルの移動量を、前記カーソル制御第１手段における移動量よりも少なくする、請求項１０に記載のゲームシステム。
【請求項１２】
前記切り替え手段は、前記第１の制御モードと前記第２の制御モードとの切り替えが行われたときに、前記第１の位置からの前記慣性センサデータに基づく移動量を初期化すると共に、当該切り替えが行われたときの前記コントローラの姿勢を前記所定の基準姿勢とする、請求項１０または１１に記載のゲームシステム。
【請求項１３】
前記切り替え手段は、前記第１の制御モードから第２の制御モードに切り替えられたとき、予め設定対象として設定されている所定の対象オブジェクト上の所定の位置を前記第１の位置として設定し、
前記カーソル制御第２手段は、前記第２の制御モードのときに、前記カーソル位置を含む所定範囲内に前記対象オブジェクトが複数存在する場合は、前記第１の位置の設定対象となる対象オブジェクトを前記操作データに基づいて切り替えると共に、切り替え後の対象オブジェクト上の所定の位置を前記第１の位置として設定する、請求項８乃至１２のいずれか記載のゲームシステム。
【請求項１４】
前記カーソル位置関連処理手段は、前記プレイヤキャラクタが前記カーソル位置に向かって所定のオブジェクトを移動させる処理を行う、請求項８乃至１３のいずれか記載のゲームシステム。
【請求項１５】
前記ゲームシステムは、組み合わせて１つのコントローラとしても利用可能な２つのコントローラを有し、
前記コントローラは、
プレイヤがゲームをプレイするため当該コントローラを把持したときに当該プレイヤ側を向き、所定の操作部が設けられている当該コントローラの所定面における所定の一辺が他の一辺よりも長くなっている形状を有しており、
第１の姿勢で前記２つのコントローラがプレイヤに把持されている状態で、当該２つのコントローラの組み合わせを１つのコントローラとして前記ゲーム処理に係る操作に利用可能であると共に、前記所定面がプレイヤ側を向く状態を保つように当該第１の姿勢を所定の１軸周りに９０度回転させた姿勢である第２の姿勢でいずれか１つのコントローラがプレイヤに把持されている状態でも、当該１つのコントローラを前記ゲーム処理に係る操作に利用可能である、請求項８に記載のゲームシステム。
【請求項１６】
ゲーム装置を制御するコンピュータが実行するゲーム装置制御方法であって、
前記コンピュータは、
方向入力部および慣性センサを少なくとも備えるコントローラから、方向入力データおよび慣性センサデータを少なくとも含む操作データを取得する操作データ取得ステップと、
前記方向入力データに基づいて、仮想空間内におけるプレイヤキャラクタの移動を制御するプレイヤキャラクタ制御ステップと、
所定のゲーム処理に用いられるカーソルの位置の制御モードを第１の制御モードと第２の制御モードとの間で切り替える切り替えステップと、
前記第１の制御モードのときに、前記プレイヤキャラクタの位置および向きに基づいて算出した前記仮想空間内の位置を第１の位置とし、更に、当該第１の位置を基点としてその位置を前記慣性センサデータに基づいて更に移動させた位置を第２の位置とし、当該第２の位置を前記カーソルの位置として決定するカーソル制御第１ステップと、
前記第２の制御モードのときに、前記仮想空間内の所定の位置を前記第１の位置とし、前記カーソルの移動範囲を当該第１の位置を含む当該仮想空間内の所定の範囲内に制限し、当該範囲内において当該第１の位置を基点としてその位置を前記慣性センサデータに基づいて更に移動させた位置を前記第２の位置とし、当該第２の位置を前記カーソルの位置として決定するカーソル制御第２ステップと、
前記操作データに基づいた指示に応じて、前記仮想空間内における前記カーソルの位置に対して所定のゲーム処理を行うカーソル位置関連処理ステップとを実行する、ゲーム装置制御方法。
【請求項１７】
前記カーソル制御第１ステップでは、前記仮想空間内において、前記プレイヤキャラクタの位置から前記プレイヤキャラクタの向きに沿った方向に所定量変位させた位置を前記第１の位置とする、請求項１６記載のゲーム装置制御方法。
【請求項１８】
前記カーソル制御第１ステップおよび前記カーソル制御第２ステップにおいては、前記慣性センサデータに基づいて、所定の基準姿勢からの前記コントローラの姿勢の変化量を算出し、当該変化量に応じた位置を前記第２の位置とする、請求項１６または１７に記載のゲーム装置制御方法。
【請求項１９】
方向入力部および慣性センサを少なくとも備えるコントローラを有するゲーム装置であって、
前記コントローラから、方向入力データおよび慣性センサデータを少なくとも含む操作データを取得する操作データ取得手段と、
前記方向入力データに基づいて、仮想空間内におけるプレイヤキャラクタの移動を制御するプレイヤキャラクタ制御手段と、
所定のゲーム処理に用いられるカーソルの位置の制御モードを第１の制御モードと第２の制御モードとの間で切り替える切り替え手段と、
前記第１の制御モードのときに、前記プレイヤキャラクタの位置および向きに基づいて算出した前記仮想空間内の位置を第１の位置とし、更に、当該第１の位置を基点としてその位置を前記慣性センサデータに基づいて更に移動させた位置を第２の位置とし、当該第２の位置を前記カーソルの位置として決定するカーソル制御第１手段と、
前記第２の制御モードのときに、前記仮想空間内の所定の位置を前記第１の位置とし、前記カーソルの移動範囲を当該第１の位置を含む当該仮想空間内の所定の範囲内に制限し、当該範囲内において当該第１の位置を基点としてその位置を前記慣性センサデータに基づいて更に移動させた位置を前記第２の位置とし、当該第２の位置を前記カーソルの位置として決定するカーソル制御第２手段と、
前記操作データに基づいた指示に応じて、前記仮想空間内における前記カーソルの位置に対して所定のゲーム処理を行うカーソル位置関連処理手段とを備える、ゲーム装置。
【請求項２０】
前記カーソル制御第１手段は、前記仮想空間内において、前記プレイヤキャラクタの位置から前記プレイヤキャラクタの向きに沿った方向に所定量変位させた位置を前記第１の位置とする、請求項１９記載のゲーム装置。
【請求項２１】
前記カーソル制御第１手段および前記カーソル制御第２手段は、前記慣性センサデータに基づいて、所定の基準姿勢からの前記コントローラの姿勢の変化量を算出し、当該変化量に応じた位置を前記第２の位置とする、請求項１９または２０に記載のゲーム装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カーソルの移動を制御するゲームプログラム、ゲームシステム、ゲーム装置制御方法、およびゲーム装置処理に関する。
【背景技術】
【０００２】
従来から、プレイヤキャラクタの移動と連動してカーソルを移動させることが可能なゲームが知られている（例えば、非特許文献１）。このゲームでは、左アナログスティックを操作することで、プレイヤキャラクタを仮想３次元空間内で移動させることができる。そして、このプレイヤキャラクタの移動に伴って、プレイヤキャラクタの位置から所定距離離れた位置にあるカーソルも移動させることができる。すなわち、左アナログスティックの操作で、プレイヤキャラクタおよびカーソルを連動して移動させることができた。また、プレイヤはプレイヤキャラクタに、このカーソルが示す位置に向けて所定のオブジェクトを投げさせることも可能であった。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】任天堂株式会社、”ピクミン３”、［online］、［平成３０年５月９日検索］、インターネット（ＵＲＬ：https://www.nintendo.co.jp/wiiu/ac3j/index.html）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記のように、プレイヤは、カーソルの位置に向けて所定のオブジェクトを投げさせることが可能である。その一方で、カーソルの移動は、プレイヤキャラクタの移動（上記の例では左アナログスティックの操作）に連動するものとなっている。この点について、所定のオブジェクトを投げる位置についてより細かく狙いをつけたいというニーズの発生も想定された。例えば、敵キャラクタの「弱点」を狙って所定のオブジェクトを投げたいというような場合である。このような点から、カーソルの移動に関して、操作性を更に改善する余地があった。
【０００５】
それ故に、本発明の目的は、プレイヤキャラクタの移動およびこれと連動して動くカーソルの移動制御に関して、より操作性を高めることが可能なゲームプログラム等を提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、例えば以下のような構成例が挙げられる。
【０００７】
構成例の一例は、情報処理装置のコンピュータに実行させるゲームプログラムであって、コンピュータを、操作データ取得手段と、プレイヤキャラクタ制御手段と、切り替え手段と、カーソル制御第１手段と、カーソル制御第２手段と、カーソル位置関連処理手段として機能させる。操作データ取得手段は、方向入力部および慣性センサを少なくとも備えるコントローラから、方向入力データおよび慣性センサデータを少なくとも含む操作データを取得する。プレイヤキャラクタ制御手段は、方向入力データに基づいて、仮想空間内におけるプレイヤキャラクタの移動を制御する。切り替え手段は、所定のゲーム処理に用いられるカーソルの位置の制御モードを第１の制御モードと第２の制御モードとの間で切り替える。カーソル制御第１手段は、第１の制御モードのときに、プレイヤキャラクタの
位置および向きに基づいて算出した仮想空間内の位置を第１の位置とし、更に、当該第１の位置を基点としてその位置を慣性センサデータに基づいて更に移動させた位置を第２の位置とし、当該第２の位置をカーソルの位置として決定する。カーソル制御第２手段は、第２の制御モードのときに、仮想空間内の所定の位置を第１の位置とし、カーソルの移動範囲を当該第１の位置を含む当該仮想空間内の所定の範囲内に制限し、当該範囲内において当該第１の位置を基点としてその位置を慣性センサデータに基づいて更に移動させた位置を第２の位置とし、当該第２の位置をカーソルの位置として決定する。カーソル位置関連処理手段は、操作データに基づいた指示に応じて、仮想空間内におけるカーソルの位置に対して所定のゲーム処理を行う。
【０００８】
上記構成例によれば、カーソルの位置について、プレイヤキャラクタの移動に連動させるようにして、その位置指定が行える。更に、例えばコントローラの姿勢を変更することで、このカーソルの位置を更に変化させることができ、カーソル位置の微調整も可能となっている。これにより、カーソル位置の操作についての操作性をより高めることができる。更に、第２の制御モードのときは、所定の位置を基点とした範囲内でのみカーソルの移動が可能となっている。これにより、例えばあるオブジェクトに対してより細かい狙いをつけたいような場合に、より狙いをつけやすくなり、操作性を向上できる。
【０００９】
他の構成例として、
カーソル制御第１手段は、仮想空間内において、プレイヤキャラクタの位置からプレイヤキャラクタの向きに沿った方向に所定量変位させた位置を第１の位置としてもよい。
【００１０】
上記構成例によれば、カーソル位置について、プレイヤキャラクタの移動方向の入力操作だけでおおまかな位置指定が行うことができ、操作性を向上させることができる。
【００１１】
他の構成例として、カーソル制御第１手段およびカーソル制御第２手段は、慣性センサデータに基づいて、所定の基準姿勢からのコントローラの姿勢の変化量を算出し、当該変化量に応じた位置を第２の位置としてもよい。
【００１２】
上記構成例によれば、コントローラの姿勢の変化でカーソルの位置を微調整することができ、直感的かつ細やかな操作性を提供できる。
【００１３】
他の構成例として、カーソル制御第２手段は、コントローラの姿勢の変化量に対するカーソルの移動量を、カーソル制御第１手段における移動量よりも少なくしてもよい。
【００１４】
上記構成例によれば、第２の制御モードの場合に、より細やかで正確なカーソルの位置指定を行いやすくさせることができる。すなわち、カーソルの微妙な位置調整を行いやすくさせることができる。
【００１５】
他の構成例として、切り替え手段は、第１の制御モードと第２の制御モードとの切り替えが行われたときに、第１の位置からの慣性センサデータに基づく移動量を初期化すると共に、当該切り替えが行われたときのコントローラの姿勢を所定の基準姿勢としてもよい。
【００１６】
上記構成例によれば、制御モードの切り替え時に、例えば当該切り替え時のコントローラの姿勢を基準として、慣性センサデータに基づくカーソル位置の微調整が可能となるため、操作性をより高めることができる。
【００１７】
他の構成例として、切り替え手段は、第１の制御モードから第２の制御モードに切り替えられたとき、予め設定対象として設定されている所定の対象オブジェクト上の所定の位
置を第１の位置として設定してもよい。更に、カーソル制御第２手段は、第２の制御モードのときに、カーソル位置を含む所定範囲内に前記対象オブジェクトが複数存在する場合は、第１の位置の設定対象となる対象オブジェクトを操作データに基づいて切り替えると共に、切り替え後の対象オブジェクト上の所定の位置を第１の位置として設定してもよい。
【００１８】
上記構成例によれば、例えば、所定のゲーム処理（攻撃等）を行いたい対象が複数存在する場合に、第２の制御モードのまま、その対象を切り替えることが切換えることができ、操作性を向上させることができる。
【００１９】
他の構成例として、カーソル位置関連処理手段は、プレイヤキャラクタに、所定のオブジェクトをカーソル位置に向けて移動させる処理を行わせるようにしてもよい。
【００２０】
上記構成例によれば、例えば、仮想空間内のある位置に「狙い」を付け、その位置に対して所定のオブジェクト等を移動させて遊ぶゲームにおける操作性を高めることができる。
【００２１】
他の構成例として、方向入力部および慣性センサを少なくとも備えるコントローラを有するゲームシステムに上記の構成を適用してもよい。また、この場合、ゲームシステムは、組み合わせて１つのコントローラとしても利用可能な２つのコントローラを有していてもよい。そして、当該コントローラは、プレイヤがゲームをプレイするため当該コントローラを把持したときに当該プレイヤ側を向き、所定の操作部が設けられている当該コントローラの所定面における所定の一辺が他の一辺よりも長くなっている形状を有しており、第１の姿勢で前記２つのコントローラがプレイヤに把持されている状態で、当該２つのコントローラの組み合わせを１つのコントローラとして前記ゲーム処理に係る操作に利用可能であると共に、所定面がプレイヤ側を向く状態を保つように当該第１の姿勢を所定の１軸周りに９０度回転させた姿勢である第２の姿勢でいずれか１つのコントローラがプレイヤに把持されている状態でも、当該１つのコントローラをゲーム処理に係る操作に利用可能なように構成してもよい。
【００２２】
上記構成例によれば、例えば、略直方体の形状の２つのコントローラを用いる場合であって、縦長の姿勢で２本のコントローラを１つのコントローラとして組み合わせて用いる場合でも、横長の姿勢で１つのコントローラを用いる場合でも、プレイヤから見て奥行き方向にかかるカーソル位置の微調整について、直感的な操作を提供し、操作のしやすさを向上することができる。
【発明の効果】
【００２３】
本実施形態によれば、プレイヤキャラクタの移動（方向入力操作等）に合わせた大まかなカーソル位置の移動制御と、慣性センサデータに基づいたカーソル位置の微調整の制御の双方を併用でき、操作性を向上することができる。
【図面の簡単な説明】
【００２４】
【図１】本体装置２に左コントローラ３および右コントローラ４を装着した状態の一例を示す図
【図２】本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図
【図３】本体装置２の一例を示す六面図
【図４】左コントローラ３の一例を示す六面図
【図５】右コントローラ４の一例を示す六面図
【図６】本体装置２の内部構成の一例を示すブロック図
【図７】本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図
【図８】本実施形態に係るゲーム画面の一例
【図９】本実施形態に係るゲーム画面の一例
【図１０】本実施形態に係るゲーム画面の一例
【図１１】本実施形態に係るゲーム画面の一例
【図１２】本実施形態に係るゲーム画面の一例
【図１３】本実施形態に係るゲーム画面の一例
【図１４】本実施形態に係るゲーム画面の一例
【図１５】本実施形態に係るゲーム画面の一例
【図１６】本実施形態に係るゲーム画面の一例
【図１７】本実施形態に係るゲーム画面の一例
【図１８】本実施形態に係るゲーム画面の一例
【図１９】本実施形態に係るゲーム画面の一例
【図２０】本実施形態に係るゲーム画面の一例
【図２１】本実施形態に係るゲーム画面の一例
【図２２】本実施形態に係るゲーム画面の一例
【図２３】本実施形態に係るゲーム画面の一例
【図２４】本実施形態に係るゲーム画面の一例
【図２５】本実施形態に係るゲーム画面の一例
【図２６】本実施形態に係るゲーム画面の一例
【図２７】本実施形態に係るゲーム画面の一例
【図２８】本実施形態に係るゲーム画面の一例
【図２９】本実施形態に係るゲーム画面の一例
【図３０】ロックオンカーソルの追従移動について説明するための図
【図３１】ロックオン調整可能範囲について説明するための図
【図３２】ロックオン調整可能範囲について説明するための図
【図３３】投げ対象選択ＵＩの一例
【図３４】投げ対象選択ＵＩの一例
【図３５】投げ対象選択ＵＩの動き方の一例を説明するための図
【図３６】投げ対象選択ＵＩの動き方の一例を説明するための図
【図３７】投げ対象選択ＵＩの動き方の一例を説明するための図
【図３８】本体装置２のＤＲＡＭ８５に記憶される各種データの一例を示すメモリマップ
【図３９】お供キャラクタマスタデータ３１２のデータ構成の一例を示す図
【図４０】お供キャラクタデータ３１３のデータ構成の一例を示す図
【図４１】第１隊列データ３１５のデータ構成の一例を示す図
【図４２】１Ｐ用選択ＵＩデータ３１９のデータ構造の一例を示す図
【図４３】本ゲーム処理の詳細を示すフローチャート
【図４４】操作内容に基づく処理の詳細を示すフローチャート
【図４５】移動処理の詳細を示すフローチャート
【図４６】ロックオン処理の詳細を示すフローチャート
【図４７】ロックオン処理の詳細を示すフローチャート
【図４８】カーソル制御処理の詳細を示すフローチャート
【図４９】投げ対象切り替え処理を示すフローチャート
【図５０】投げ対象切り替え処理の詳細を示すフローチャート
【図５１】投げ処理の詳細を示すフローチャート
【図５２】モード設定処理の詳細を示すフローチャート
【図５３】合流処理の詳細を示すフローチャート
【図５４】分割処理の詳細を示すフローチャート
【図５５】仮想カメラ設定処理の詳細を示すフローチャート
【図５６】ＵＩ配置処理の詳細を示すフローチャート
【発明を実施するための形態】
【００２５】
以下、本発明の一実施形態について説明する。
【００２６】
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム１の一例は、本体装置（情報処理装置；本実施形態ではゲーム装置本体として機能する）２と左コントローラ３および右コントローラ４とを含む。本体装置２は、左コントローラ３および右コントローラ４がそれぞれ着脱可能である。つまり、ゲームシステム１は、左コントローラ３および右コントローラ４をそれぞれ本体装置２に装着して一体化された装置として利用できる。また、ゲームシステム１は、本体装置２と左コントローラ３および右コントローラ４とを別体として利用することもできる（図２参照）。以下では、本実施形態のゲームシステム１のハードウェア構成について説明し、その後に本実施形態のゲームシステム１の制御について説明する。
【００２７】
図１は、本体装置２に左コントローラ３および右コントローラ４を装着した状態の一例を示す図である。図１に示すように、左コントローラ３および右コントローラ４は、それぞれ本体装置２に装着されて一体化されている。本体装置２は、ゲームシステム１における各種の処理（例えば、ゲーム処理）を実行する装置である。本体装置２は、ディスプレイ１２を備える。左コントローラ３および右コントローラ４は、ユーザが入力を行うための操作部を備える装置である。
【００２８】
図２は、本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図である。図１および図２に示すように、左コントローラ３および右コントローラ４は、本体装置２に着脱可能である。なお、以下において、左コントローラ３および右コントローラ４の総称として「コントローラ」と記載することがある。
【００２９】
図３は、本体装置２の一例を示す六面図である。図３に示すように、本体装置２は、略板状のハウジング１１を備える。本実施形態において、ハウジング１１の主面（換言すれば、表側の面、すなわち、ディスプレイ１２が設けられる面）は、大略的には矩形形状である。
【００３０】
なお、ハウジング１１の形状および大きさは、任意である。一例として、ハウジング１１は、携帯可能な大きさであってよい。また、本体装置２単体または本体装置２に左コントローラ３および右コントローラ４が装着された一体型装置は、携帯型装置となってもよい。また、本体装置２または一体型装置が手持ち型の装置となってもよい。また、本体装置２または一体型装置が可搬型装置となってもよい。
【００３１】
図３に示すように、本体装置２は、ハウジング１１の主面に設けられるディスプレイ１２を備える。ディスプレイ１２は、本体装置２が生成した画像を表示する。本実施形態においては、ディスプレイ１２は、液晶表示装置（ＬＣＤ）とする。ただし、ディスプレイ１２は任意の種類の表示装置であってよい。
【００３２】
また、本体装置２は、ディスプレイ１２の画面上にタッチパネル１３を備える。本実施形態においては、タッチパネル１３は、マルチタッチ入力が可能な方式（例えば、静電容量方式）のものである。ただし、タッチパネル１３は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式（例えば、抵抗膜方式）のものであってもよい。
【００３３】
本体装置２は、ハウジング１１の内部においてスピーカ（すなわち、図６に示すスピーカ８８）を備えている。図３に示すように、ハウジング１１の主面には、スピーカ孔１１ａおよび１１ｂが形成される。そして、スピーカ８８の出力音は、これらのスピーカ孔１１ａおよび１１ｂからそれぞれ出力される。
【００３４】
また、本体装置２は、本体装置２が左コントローラ３と有線通信を行うための端子である左側端子１７と、本体装置２が右コントローラ４と有線通信を行うための右側端子２１を備える。
【００３５】
図３に示すように、本体装置２は、スロット２３を備える。スロット２３は、ハウジング１１の上側面に設けられる。スロット２３は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム１およびそれと同種の情報処理装置に専用の記憶媒体（例えば、専用メモリカード）である。所定の種類の記憶媒体は、例えば、本体装置２で利用されるデータ（例えば、アプリケーションのセーブデータ等）、および／または、本体装置２で実行されるプログラム（例えば、アプリケーションのプログラム等）を記憶するために用いられる。また、本体装置２は、電源ボタン２８を備える。
【００３６】
本体装置２は、下側端子２７を備える。下側端子２７は、本体装置２がクレードルと通信を行うための端子である。本実施形態において、下側端子２７は、ＵＳＢコネクタ（より具体的には、メス側コネクタ）である。上記一体型装置または本体装置２単体をクレードルに載置した場合、ゲームシステム１は、本体装置２が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置２単体を充電する機能を有する。また、クレードルは、ハブ装置（具体的には、ＵＳＢハブ）の機能を有する。
【００３７】
図４は、左コントローラ３の一例を示す六面図である。図４に示すように、左コントローラ３は、ハウジング３１を備える。本実施形態においては、ハウジング３１は、縦長の形状、すなわち、上下方向（すなわち、図１および図４に示すｙ軸方向）に長い形状である。左コントローラ３は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング３１は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ３は、横長となる向きで把持されることも可能である。左コントローラ３が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００３８】
左コントローラ３は、アナログスティック３２を備える。図４に示すように、アナログスティック３２は、ハウジング３１の主面に設けられる。アナログスティック３２は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック３２を傾倒することによって傾倒方向に応じた方向の入力（および、傾倒した角度に応じた大きさの入力）が可能である。なお、左コントローラ３は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック３２を押下する入力が可能である。
【００３９】
左コントローラ３は、各種操作ボタンを備える。左コントローラ３は、ハウジング３１の主面上に４つの操作ボタン３３〜３６（具体的には、右方向ボタン３３、下方向ボタン３４、上方向ボタン３５、および左方向ボタン３６）を備える。さらに、左コントローラ３は、録画ボタン３７および−（マイナス）ボタン４７を備える。左コントローラ３は、ハウジング３１の側面の左上に第１Ｌボタン３８およびＺＬボタン３９を備える。また、左コントローラ３は、ハウジング３１の側面の、本体装置２に装着される際に装着される
側の面に第２Ｌボタン４３および第２Ｒボタン４４を備える。これらの操作ボタンは、本体装置２で実行される各種プログラム（例えば、ＯＳプログラムやアプリケーションプログラム）に応じた指示を行うために用いられる。
【００４０】
また、左コントローラ３は、左コントローラ３が本体装置２と有線通信を行うための端子４２を備える。
【００４１】
図５は、右コントローラ４の一例を示す六面図である。図５に示すように、右コントローラ４は、ハウジング５１を備える。本実施形態においては、ハウジング５１は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ４は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング５１は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ４は、横長となる向きで把持されることも可能である。右コントローラ４が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００４２】
右コントローラ４は、左コントローラ３と同様、方向入力部としてアナログスティック５２を備える。本実施形態においては、アナログスティック５２は、左コントローラ３のアナログスティック３２と同じ構成である。また、右コントローラ４は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ４は、左コントローラ３と同様、ハウジング５１の主面上に４つの操作ボタン５３〜５６（具体的には、Ａボタン５３、Ｂボタン５４、Ｘボタン５５、およびＹボタン５６）を備える。さらに、右コントローラ４は、＋（プラス）ボタン５７およびホームボタン５８を備える。また、右コントローラ４は、ハウジング５１の側面の右上に第１Ｒボタン６０およびＺＲボタン６１を備える。また、右コントローラ４は、左コントローラ３と同様、第２Ｌボタン６５および第２Ｒボタン６６を備える。
【００４３】
また、右コントローラ４は、右コントローラ４が本体装置２と有線通信を行うための端子６４を備える。
【００４４】
図６は、本体装置２の内部構成の一例を示すブロック図である。本体装置２は、図３に示す構成の他、図６に示す各構成要素８１〜９１、９７、および９８を備える。これらの構成要素８１〜９１、９７、および９８のいくつかは、電子部品として電子回路基板上に実装されてハウジング１１内に収納されてもよい。
【００４５】
本体装置２は、プロセッサ８１を備える。プロセッサ８１は、本体装置２において実行される各種の情報処理を実行する情報処理部であって、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ
Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のみから構成されてもよいし、ＣＰＵ機能、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）機能等の複数の機能を含むＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）から構成されてもよい。プロセッサ８１は、記憶部（具体的には、フラッシュメモリ８４等の内部記憶媒体、あるいは、スロット２３に装着される外部記憶媒体等）に記憶される情報処理プログラム（例えば、ゲームプログラム）を実行することによって、各種の情報処理を実行する。
【００４６】
本体装置２は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ８４およびＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８５を備える。フラッシュメモリ８４およびＤＲＡＭ８５は、プロセッサ８１に接続される。フラッシュメモリ８４は、主に、本体装置２に保存される各種のデータ（プログラムであってもよい）を記憶するために用いられるメモリである。ＤＲＡＭ８５は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【００４７】
本体装置２は、スロットインターフェース（以下、「Ｉ／Ｆ」と略記する。）９１を備える。スロットＩ／Ｆ９１は、プロセッサ８１に接続される。スロットＩ／Ｆ９１は、スロット２３に接続され、スロット２３に装着された所定の種類の記憶媒体（例えば、専用メモリカード）に対するデータの読み出しおよび書き込みを、プロセッサ８１の指示に応じて行う。
【００４８】
プロセッサ８１は、フラッシュメモリ８４およびＤＲＡＭ８５、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【００４９】
本体装置２は、ネットワーク通信部８２を備える。ネットワーク通信部８２は、プロセッサ８１に接続される。ネットワーク通信部８２は、ネットワークを介して外部の装置と通信（具体的には、無線通信）を行う。本実施形態においては、ネットワーク通信部８２は、第１の通信態様としてＷｉ−Ｆｉの規格に準拠した方式により、無線ＬＡＮに接続して外部装置と通信を行う。また、ネットワーク通信部８２は、第２の通信態様として所定の通信方式（例えば、独自プロトコルによる通信や、赤外線通信）により、同種の他の本体装置２との間で無線通信を行う。なお、上記第２の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置２との間で無線通信可能であり、複数の本体装置２の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【００５０】
本体装置２は、コントローラ通信部８３を備える。コントローラ通信部８３は、プロセッサ８１に接続される。コントローラ通信部８３は、左コントローラ３および／または右コントローラ４と無線通信を行う。本体装置２と左コントローラ３および右コントローラ４との通信方式は任意であるが、本実施形態においては、コントローラ通信部８３は、左コントローラ３との間および右コントローラ４との間で、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信を行う。
【００５１】
プロセッサ８１は、上述の左側端子１７、右側端子２１、および下側端子２７に接続される。プロセッサ８１は、左コントローラ３と有線通信を行う場合、左側端子１７を介して左コントローラ３へデータを送信するとともに、左側端子１７を介して左コントローラ３から操作データを受信する。また、プロセッサ８１は、右コントローラ４と有線通信を行う場合、右側端子２１を介して右コントローラ４へデータを送信するとともに、右側端子２１を介して右コントローラ４から操作データを受信する。また、プロセッサ８１は、クレードルと通信を行う場合、下側端子２７を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置２は、左コントローラ３および右コントローラ４との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ３および右コントローラ４が本体装置２に装着された一体型装置または本体装置２単体がクレードルに装着された場合、本体装置２は、クレードルを介してデータ（例えば、画像データや音声データ）を据置型モニタ等に出力することができる。
【００５２】
ここで、本体装置２は、複数の左コントローラ３と同時に（換言すれば、並行して）通信を行うことができる。また、本体装置２は、複数の右コントローラ４と同時に（換言すれば、並行して）通信を行うことができる。したがって、複数のユーザは、左コントローラ３および右コントローラ４のセットをそれぞれ用いて、本体装置２に対する入力を同時に行うことができる。一例として、第１ユーザが左コントローラ３および右コントローラ４の第１セットを用いて本体装置２に対して入力を行うと同時に、第２ユーザが左コントローラ３および右コントローラ４の第２セットを用いて本体装置２に対して入力を行うことが可能となる。
【００５３】
本体装置２は、タッチパネル１３の制御を行う回路であるタッチパネルコントローラ８６を備える。タッチパネルコントローラ８６は、タッチパネル１３とプロセッサ８１との間に接続される。タッチパネルコントローラ８６は、タッチパネル１３からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ８１へ出力する。
【００５４】
また、ディスプレイ１２は、プロセッサ８１に接続される。プロセッサ８１は、（例えば、上記の情報処理の実行によって）生成した画像および／または外部から取得した画像をディスプレイ１２に表示する。
【００５５】
本体装置２は、コーデック回路８７およびスピーカ（具体的には、左スピーカおよび右スピーカ）８８を備える。コーデック回路８７は、スピーカ８８および音声入出力端子２５に接続されるとともに、プロセッサ８１に接続される。コーデック回路８７は、スピーカ８８および音声入出力端子２５に対する音声データの入出力を制御する回路である。
【００５６】
本体装置２は、電力制御部９７およびバッテリ９８を備える。電力制御部９７は、バッテリ９８およびプロセッサ８１に接続される。また、図示しないが、電力制御部９７は、本体装置２の各部（具体的には、バッテリ９８の電力の給電を受ける各部、左側端子１７、および右側端子２１）に接続される。電力制御部９７は、プロセッサ８１からの指令に基づいて、バッテリ９８から上記各部への電力供給を制御する。
【００５７】
また、バッテリ９８は、下側端子２７に接続される。外部の充電装置（例えば、クレードル）が下側端子２７に接続され、下側端子２７を介して本体装置２に電力が供給される場合、供給された電力がバッテリ９８に充電される。
【００５８】
図７は、本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図である。なお、本体装置２に関する内部構成の詳細については、図６で示しているため図７では省略している。
【００５９】
左コントローラ３は、本体装置２との間で通信を行う通信制御部１０１を備える。図７に示すように、通信制御部１０１は、端子４２を含む各構成要素に接続される。本実施形態においては、通信制御部１０１は、端子４２を介した有線通信と、端子４２を介さない無線通信との両方で本体装置２と通信を行うことが可能である。通信制御部１０１は、左コントローラ３が本体装置２に対して行う通信方法を制御する。すなわち、左コントローラ３が本体装置２に装着されている場合、通信制御部１０１は、端子４２を介して本体装置２と通信を行う。また、左コントローラ３が本体装置２から外されている場合、通信制御部１０１は、本体装置２（具体的には、コントローラ通信部８３）との間で無線通信を行う。コントローラ通信部８３と通信制御部１０１との間の無線通信は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）の規格に従って行われる。
【００６０】
また、左コントローラ３は、例えばフラッシュメモリ等のメモリ１０２を備える。通信制御部１０１は、例えばマイコン（マイクロプロセッサとも言う）で構成され、メモリ１０２に記憶されるファームウェアを実行することによって各種の処理を実行する。
【００６１】
左コントローラ３は、各ボタン１０３（具体的には、ボタン３３〜３９、４３、４４、および４７）を備える。また、左コントローラ３は、アナログスティック（図７では「スティック」と記載する）３２を備える。各ボタン１０３およびアナログスティック３２は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部１０１へ出力する。
【００６２】
左コントローラ３は、慣性センサを備える。具体的には、左コントローラ３は、加速度センサ１０４を備える。また、左コントローラ３は、角速度センサ１０５を備える。本実施形態においては、加速度センサ１０４は、所定の３軸（例えば、図４に示すｘｙｚ軸）方向に沿った加速度の大きさを検出する。なお、加速度センサ１０４は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサ１０５は、所定の３軸（例えば、図４に示すｘｙｚ軸）回りの角速度を検出する。なお、角速度センサ１０５は、１軸回りあるいは２軸回りの角速度を検出するものであってもよい。加速度センサ１０４および角速度センサ１０５は、それぞれ通信制御部１０１に接続される。そして、加速度センサ１０４および角速度センサ１０５の検出結果は、適宜のタイミングで繰り返し通信制御部１０１へ出力される。
【００６３】
通信制御部１０１は、各入力部（具体的には、各ボタン１０３、アナログスティック３２、各センサ１０４および１０５）から、入力に関する情報（具体的には、操作に関する情報、またはセンサによる検出結果）を取得する。通信制御部１０１は、取得した情報（または取得した情報に所定の加工を行った情報）を含む操作データを本体装置２へ送信する。なお、操作データは、所定時間に１回の割合で繰り返し送信される。なお、入力に関する情報が本体装置２へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【００６４】
上記操作データが本体装置２へ送信されることによって、本体装置２は、左コントローラ３に対して行われた入力を得ることができる。すなわち、本体装置２は、各ボタン１０３およびアナログスティック３２に対する操作を、操作データに基づいて判別することができる。また、本体装置２は、左コントローラ３の動きおよび／または姿勢に関する情報を、操作データ（具体的には、加速度センサ１０４および角速度センサ１０５の検出結果）に基づいて算出することができる。
【００６５】
左コントローラ３は、電力供給部１０８を備える。本実施形態において、電力供給部１０８は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ３の各部（具体的には、バッテリの電力の給電を受ける各部）に接続される。
【００６６】
図７に示すように、右コントローラ４は、本体装置２との間で通信を行う通信制御部１１１を備える。また、右コントローラ４は、通信制御部１１１に接続されるメモリ１１２を備える。通信制御部１１１は、端子６４を含む各構成要素に接続される。通信制御部１１１およびメモリ１１２は、左コントローラ３の通信制御部１０１およびメモリ１０２と同様の機能を有する。したがって、通信制御部１１１は、端子６４を介した有線通信と、端子６４を介さない無線通信（具体的には、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信）との両方で本体装置２と通信を行うことが可能であり、右コントローラ４が本体装置２に対して行う通信方法を制御する。
【００６７】
右コントローラ４は、左コントローラ３の各入力部と同様の各入力部を備える。具体的には、各ボタン１１３、アナログスティック５２、慣性センサ（加速度センサ１１４および角速度センサ１１５）を備える。これらの各入力部については、左コントローラ３の各入力部と同様の機能を有し、同様に動作する。
【００６８】
右コントローラ４は、電力供給部１１８を備える。電力供給部１１８は、左コントローラ３の電力供給部１０８と同様の機能を有し、同様に動作する。
【００６９】
［本実施形態におけるゲーム処理の概要］
次に、本実施形態にかかるゲームシステムで実行されるゲーム処理の動作概要を説明す
る。なお、本実施形態では、本体装置２単体がクレードルに装着され、本体装置２が、クレードルを介して画像データや音声データを据置型モニタ等に出力する態様でゲームプレイを行う場合を例に説明する。
【００７０】
本実施形態で想定するゲーム処理は、主に２人のプレイヤで遊ぶ場合、すなわち、２人同時プレイを想定するが、理解の容易化のため、まず、１人プレイの場合を例として、本実施形態にかかるゲームの概要を説明する。
【００７１】
図８は、本ゲームの舞台となる仮想３次元ゲーム空間を仮想カメラで撮像することで生成される本ゲームの画面例である。図８では、プレイヤキャラクタ２０１Ａ、２０１Ｂ、２０１Ｃ（以下、総称してプレイヤキャラクタと呼ぶこともある）、複数のお供キャラクタ２０２、カーソルオブジェクト２０３（以下、単にカーソルと呼ぶ）、投げ対象選択ＵＩ（ユーザインタフェース）２０４、操作キャラ情報画像２０５とが表示されている。プレイヤキャラクタは、プレイヤの操作入力に基づいて操作可能なオブジェクトである。一方、お供キャラクタ２０２は、プレイヤが直接的には操作できないオブジェクトである。当該お供キャラクタ２０２は、基本的には、プレイヤキャラクタの移動に追従して移動する。ここで、本ゲームでは、「隊列」の概念がある。当該「隊列」は、１体の「リーダー」と複数の「メンバー」で構成され得る。なお、隊列には、少なくとも１体の「リーダー」が必要であるが、「メンバー」は０体でもよい。すなわち、「リーダー」だけで構成される隊列もあり得る。そして、上記３体のプレイヤキャラクタ２０１のうち、いずれか１体が「リーダー」となり得る。「リーダー」ではない他のプレイヤキャラクタ２０１については「メンバー」となる。または、別の隊列の「リーダー」となる。また上記お供キャラクタ２０２は、「メンバー」として構成される。このお供キャラクタ２０２は、ゲームフィールド上に点在しており、プレイヤが所定の操作を行うことで、所定のお供キャラクタ２０２を隊列に加えることができる。本ゲームでは、基本的にはこの「隊列」単位で移動する。そして、本ゲームは、このお供キャラクタ２０２を様々な場面で利用して進めていくゲームである。
【００７２】
カーソル２０３は、プレイヤキャラクタ２０１の進行方向側であって、プレイヤキャラクタ２０１の位置から所定距離離れた位置に表示されるオブジェクトであり、照準としての役割を有する。以下に説明するが、本ゲームでは、お供キャラクタ２０２をカーソル２０３のある地点に向けて「投げる」ことができる。また、投げ対象選択ＵＩ２０４は、当該投げる対象を選択するためのＵＩである。当該投げ対象選択ＵＩ２０４については後ほど説明する。操作キャラ情報画像２０５は、同じ隊列内にいるプレイヤキャラクタ２０１を示すものであり、かつ、現在操作中のプレイヤキャラクタを示すものである。これも後述するが、本ゲームでは、プレイヤは３体のプレイヤキャラクタのうちいずれか１体を操作対象として操作できる。また、操作対象は切換える事が可能である。
【００７３】
また、図示は省略するが、ゲーム画面には、例えばミニマップ画像や所持アイテムとその個数を示す画像等のゲームに関する各種情報も表示され得る。
【００７４】
本ゲームでは、プレイヤキャラクタ２０１が可能な動作として、「投げる」という動作と、「笛を吹く」という動作がある。「投げる」動作は、隊列内のお供キャラクタ２０２をカーソル２０３の地点に向けて投げる動作である。このカーソル２０３の地点は、操作対象となっているプレイヤキャラクタ２０１Ａ〜２０１Ｃのいずれかの位置から所定距離以上離れた位置である。そのため、当該「投げる」動作は、お供キャラクタ２０２をプレイヤキャラクタ２０１から所定距離以上離れた地点に移動させる処理であるともいえる。なお、投げられたお供キャラクタ２０２は、その投げられた先の近傍に存在する各種オブジェクトに応じて、様々な行動を行う。例えば、投げられた先に「敵キャラクタ」がいる場合は、お供キャラクタ２０２はその敵キャラクタに攻撃を行う。また、投げられた先に
「素材オブジェクト」や「食料オブジェクト」があるときは、お供キャラクタ２０２は、ゲームフィールド上で「拠点」として予め設定されている場所にこれらのオブジェクトを運搬するという行動を行う。なお、投げる対象に関しては、プレイヤは、後述の「後衛キャラ」であるプレイヤキャラクタ２０１も投げることができる。そして、「後衛キャラ」を投げることで、プレイヤは、当該投げられた後衛キャラクタを「リーダー」とする別の隊列を生成することができる。このように「後衛キャラ」を投げて別の隊列を生成することを隊列の「分割」と呼ぶ。この分割にかかる操作に関しては、別途後述する。
【００７５】
一方、「笛を吹く」動作は、隊列の構成を制御するための動作である、具体的には、笛の吹き方に応じて、ゲームフィールドに点在しているお供キャラクタ２０２を自分の隊列に合流させたり、隊列を解散したりすることができる。隊列の合流・解散の制御に関しては、後ほど別途説明する
【００７６】
なお、本ゲームでは、お供キャラクタ２０２として、その性質や能力が異なる数種類のお供キャラクタが用意されている。上記図８では、お供キャラクタ２０２の色の違いによって、その種類の違いを示している。そして、上述したような投げられたお供キャラクタ２０２が取る行動は、その種類によって異なる。また、攻撃行動に関しても、その種類に応じて攻撃力が異なっていたり、ある種類のお供キャラクタ２０２は敵キャラクタに状態異常（例えば毒状態等）を付与したりする。そのため、プレイヤは、投げる先にあるオブジェクトに応じて、どの種類のお供キャラクタ２０２を投げるのが適切か、等を考えながらプレイすることになる。なお、投げるお供キャラクタ等の選択操作に関しては、後述する。
【００７７】
ところで、本ゲームでは、上記のように３体のプレイヤキャラクタ２０１Ａ〜２０１Ｃが存在している。１人プレイの場合は、プレイヤが直接的に操作できるのは、このうちのいずれか一体となっている。そして、プレイヤは、操作対象となるプレイヤキャラクタ２０１を切換えることも可能である。つまり、１人プレイの場合は、プレイヤは、この３体のプレイヤキャラクタを切り替えてプレイすることが可能である。また、後述する２人プレイの場合は、３体のプレイヤキャラクタ２０１のうち２体をそれぞれのプレイヤが操作することが可能となる。例えば、同じ隊列にプレイヤキャラクタ２０１Ａおよびプレイヤキャラクタ２０１Ｂが存在し、プレイヤキャラクタ２０１Ｃだけ別隊列にいる場合を想定する。この場合、プレイヤキャラクタ２０１Ａを第１のプレイヤが操作し、プレイヤキャラクタ２０１Ｂを第２のプレイヤが操作することができる。また、プレイ中に操作対象を切り替えることも可能であるため、プレイ中に、第２のプレイヤは、自身の操作対象をプレイヤキャラクタ２０１Ｂからプレイヤキャラクタ２０１Ｃに切り替えることもできる。更にその後、第１のプレイヤが、自身の操作対象をプレイヤキャラクタ２０１Ａからプレイヤキャラクタ２０１Ｂに切り替えることも可能である。つまり、操作対象となっていないプレイヤキャラクタ２０１への切り替えが可能となっている。なお、本実施形態では、切り替え先となるプレイヤキャラクタは、同じ隊列内のプレイヤキャラクタであってもよいし、別の隊列のプレイヤキャラクタであってもよい。他の実施形態では、例えば、別の隊列のプレイヤキャラクタにのみ切り替え可能な構成としてもよい。
【００７８】
なお、このような切り替えに際して、基本的には、操作対象となっているプレイヤキャラクタ２０１が画面の略中央に表示されるように仮想カメラが適宜制御される。例えば、各プレイヤキャラクタに対応する仮想カメラが用意されており（つまり、合計３つの仮想カメラがある）、上記の切り替え操作に応じて、使用する仮想カメラを切り替える制御等が行われる。また、他の例では、仮想カメラは各プレイヤに応じて用意され、上記に切り替え操作に応じて、操作対象のプレイヤキャラクタ２０１が画面の略中央に表示されるように、仮想カメラの位置や向き等のパラメータを変更するようにしてもよい。つまり、１つの仮想カメラを操作対象の変更に応じて移動させるような処理としてもよい。
【００７９】
図９〜図１０に、１人プレイの場合の、キャラクタ切り替えの際の画面例を示す。図９では、現在の操作対象がプレイヤキャラクタ２０１Ａである状態を示す。また、その隊列内のプレイヤキャラクタとして、プレイヤキャラクタ２０１Ａしかいない状態を示す。プレイヤキャラクタ２０１Ｂ、２０１Ｃは、それぞれ、別の隊列として、画面には表示されていない別の場所で待機中の状態である。この状態で、例えば、プレイヤが操作対象をプレイヤキャラクタ２０１Ｃに切り替える場合を考える。この場合、プレイヤがキャラクタ切り替えのための所定の操作、例えばＹボタン５６を押すと、図９に示すようなキャラ切り替えメニュー２０７が現在プレイ中のゲーム画面に重畳して表示される。このキャラ切り替えメニュー２０７では、切換えることが可能なプレイヤキャラクタの画像が表示されている。この状態で、プレイヤは、例えばＹボタン５６を押下したまま、アナログスティック３２を右または左に傾け、Ｙボタン５６から指を離すことで、その方向に対応したプレイヤキャラクタ２０１に操作対象を切換えることができる。このとき、当該キャラ切り替えメニュー２０７は画面から消去される。例えば、図９の状態でプレイヤが、Ｙボタン５６を押下したまま、スティック３２を左に傾け、Ｙボタン５６から指を離した場合、図１０に示すように、操作対象をプレイヤキャラクタ２０１Ａからプレイヤキャラクタ２０１Ｃに切り替えることができる。または、Ｙボタン５６を押下したまま、スティック３２を傾けただけで切り替えるようにしてもよい。この切り替えに伴い、ゲーム画面もプレイヤキャラクタ２０１Ｃに合わせたゲーム画面が表示される。また、カーソル２０３の位置も、プレイヤキャラクタ２０１Ａの進行方向に沿う直線上の位置から、プレイヤキャラクタ２０１Ｃの進行方向に沿う直線上の位置に変化している。
【００８０】
以下の説明では、第１プレイヤの操作対象となっているプレイヤキャラクタ２０１のことを「１Ｐキャラ」と呼ぶ。また、第２プレイヤの操作対象となっているプレイヤキャラクタ２０１のことを「２Ｐキャラ」と呼ぶ。また、上記隊列においては、上記３体のプレイヤキャラクタのうち、いずれか１体が「リーダー」として設定される。１人プレイ時は、１Ｐキャラが隊列のリーダーとなる。つまり、リーダーがプレイヤの操作に応じて移動し、他のプレイヤキャラクタ２０１および隊列内のお供キャラクタ２０２は、このリーダーに追従して移動する。以下の説明では、リーダーではなく隊列のメンバーになっているプレイヤキャラクタ２０１のことを「後衛キャラ」と呼ぶ。リーダーに設定されているプレイヤキャラクタ２０１については「リーダーキャラ」と呼ぶ。
【００８１】
ここで、上記「投げる」動作に関して、本ゲームでは、リーダーキャラは、自身の隊列内のお供キャラクタ２０２だけでなく、上記後衛キャラも「投げる」対象とすることができる。後衛キャラがいずれかのプレイヤの操作対象となっている場合でも、「投げる」対象となる。換言すれば、後衛キャラについては、プレイヤの操作の有無に関わらず、「投げる」ことで、その位置を強制的に移動させることが可能となっている。そのため、次のような動作も可能となっている。まず、１人プレイの場合は、例えば、プレイヤキャラクタ２０１Ａが１Ｐキャラのとき、プレイヤキャラクタ２０１Ｂを「投げる」ことで、プレイヤキャラクタ２０１Ｂを隊列から外し、投げた先の地点に待機させることができる。また、これに応じて、プレイヤキャラクタ２０１Ｂを「リーダー」とする別の隊列が生成される。つまり、プレイヤキャラクタ２０１Ｂを「投げる」ことで、隊列を分割することができる。その後、上記のキャラクタ切り替え操作を行い、プレイヤキャラクタ２０１Ａからプレイヤキャラクタ２０１Ｂに１Ｐキャラを切り替えることで、操作対象をプレイヤキャラクタ２０１Ｂとすることができる。この場合は、プレイヤキャラクタ２０１Ｂがリーダーキャラとなっている隊列（但し、この時点ではお供キャラクタ２０２は１体もいない）を操作することになる。また、２人プレイの場合は、例えばリーダーキャラである１Ｐキャラが２Ｐキャラを投げることで、２Ｐキャラをリーダーキャラとする別の隊列として分割することができる。そのため、２人プレイの場合は、１Ｐキャラ、２Ｐキャラがそれぞれ別の隊列で行動している場合は、それぞれがリーダーキャラとなる。一方、１Ｐキャ
ラ、２Ｐキャラが同じ隊列にいる場合は、いずれか一方がリーダーキャラとなり、他方は後衛キャラとして扱われる。以下の説明において、リーダーキャラと後衛キャラの区別が必要な説明においては、例えば、１Ｐキャラがリーダーキャラであり、２Ｐキャラが後衛キャラである場合は、「１Ｐキャラ（リーダー）」、「２Ｐキャラ（後衛）」のように表記する。
【００８２】
但し、後衛キャラがリーダーキャラを投げることはできない。そのため、同じ隊列内で、１Ｐキャラがリーダー、２Ｐキャラが後衛キャラとなっている場合は、２Ｐキャラが１Ｐキャラを投げるということはできないものとする。また、投げることができるのは同じ隊列内の後衛キャラまたはお供キャラクタであり、別隊列のプレイヤキャラクタ２０１およびお供キャラクタ２０２については投げることはできない。
【００８３】
次に、本ゲームにおける２人プレイの際の制御について説明する。まず、１人プレイの状態から２人プレイを開始する流れについて説明し、その後、２人プレイの場合における画面制御の概要等を説明する。
【００８４】
［２人プレイの開始について］
本ゲームでは、「ストーリーモード」と呼ばれる、所定のシナリオに沿ってゲームを進行させていくゲームモードがある。ここでは、このゲームモードを最初は１人でプレイしており、途中から２人プレイに切り替えるという場合を例に説明する。まず、上記図８のような１人プレイ時のゲーム画面が表示されている状態で、第１プレイヤは、「オプションメニュー」を開く操作を行う。更に、オプションメニューの中から、「ふたりであそぶ」という項目を選択する。つまり、１人プレイから、２人プレイに変更する（２人プレイを開始する）ことを示す操作が行われる。
【００８５】
上記のような操作が行われると、図１１に示すように、各プレイヤが利用するコントローラを設定するための画面が表示される。図１１では、画面左側に、第１プレイヤのコントローラ枠２０８、右側に、第２プレイヤのコントローラ枠２０９が表示されている。また、画面上部には、「使いたいコントローラのＬ＋Ｒを押してください」というメッセージも表示されている。第１プレイヤ、および第２プレイヤは、それぞれ、自身が用いるコントローラのＬ＋Ｒボタンを押すことで、本体装置２に自身の用いるコントローラが何であるかを伝えることができる。具体的には、押下されたボタン内容と、どのようなコントローラであるのかを示すコントローラＩＤ等が、コントローラからゲーム装置に送信される。本体装置２では、これを判別することで、第１プレイヤ、第２プレイヤが用いるコントローラを識別する。そして、識別されたコントローラを示す画像がコントローラ枠２０８、および２０９の中に表示される。
【００８６】
ここで、コントローラの種類、使用態様について補足説明する。上記のように、本ゲームシステム１では、左コントローラ３および右コントローラ４という２つのコントローラがある。そして、本ゲームでは、左コントローラ３および右コントローラ４の２つのコントローラを１セットとして用いることができる。換言すれば、左コントローラ３および右コントローラ４を合わせて１体のコントローラとみなして用いることができる。この場合、例えば、第１プレイヤは、右手に右コントローラ４を把持し、左手に左コントローラ４を把持するようにして、ゲームの操作を行うことができる。また、この場合、プレイヤから見て、各コントローラが縦長となる姿勢で把持することになる（以下、この持ち方を「縦持ち」と呼ぶ）。
【００８７】
また、本ゲームでは、上記左コントローラ３および右コントローラ４を、それぞれ別々のコントローラとして扱うことも可能となっている。例えば、２人プレイの場合に、第１プレイヤが左コントローラ３を、第２プレイヤが右コントローラ４を用いてプレイすると
いうことも可能となっている。つまり、左コントローラ３および右コントローラ４のいずれか１つだけを用いる態様である。図１２に、上記左コントローラ３および右コントローラ４を第１プレイヤと第２プレイヤとで分けて用いる場合のコントローラ設定画面の一例を示す。図１２では、第１プレイヤのコントローラ枠２０８には、左コントローラ３を横長の姿勢にした画像が、第２プレイヤのコントローラ枠２０９には、右コントローラ４を横長の姿勢にした画像が示されている。このように左コントローラ３および右コントローラ４を２人のプレイヤで分け合って用いる場合、各プレイヤは、各コントローラの姿勢を、「縦持ち」の状態から９０度傾けた姿勢にして用いる。すなわち、プレイヤから見て各コントローラが横長となる姿勢でそれぞれのコントローラを把持する（以下、この持ち方を「横持ち」と呼ぶ）。なお、この場合は、左コントローラ３および右コントローラ４を一体的に用いる場合に比べて、スティックやボタン等の操作部の数が少ないコントローラとして用いることになる。そのため、ゲーム処理においても、このような操作部の数の違いと姿勢の違いに鑑みて、ボタンの割り当てを異ならせることになる。
【００８８】
なお、第１プレイヤと第２プレイヤが用いるコントローラの組み合わせは、例えば次のような組み合わせでも良い。例えば、図１３に示すように、第１プレイヤは左コントローラ３および右コントローラ４を一体的に利用し、第２プレイヤは、第１プレイヤが用いるものとは別の右コントローラ４のみを用いるようにしてもよい。また、その他、図１４に示すように、第２プレイヤは、上記左コントローラ３および右コントローラ４とは異なる他のゲームコントローラを用いるようにしてもよい。
【００８９】
上記のようにして、各プレイヤが用いるコントローラの設定が終われば、２人プレイが開始される。図１５は、２人プレイ開始直後のゲーム画面の例である。図１５では、画面の表示領域が左右に２分割されている。第１プレイヤは左側の表示領域でプレイし、第２プレイヤは右側の表示領域でプレイする。以下では、このような分割画面における左側の表示領域を「１Ｐ表示領域」、右側の表示領域を「２Ｐ表示領域」と呼ぶ。また、この画面では、１Ｐキャラはプレイヤキャラクタ２０１Ａ、２Ｐキャラはプレイヤキャラクタ０２１Ｂであるとする。また、１Ｐキャラの上方と２Ｐキャラの上方とでそれぞれカーソル２０３が表示されている。つまり、２人プレイ時は、１Ｐキャラ、２Ｐキャラそれぞれに対応したカーソル２０３が表示される。以下では、１Ｐキャラに対応するカーソル２０３を「１Ｐカーソル」と呼び、２Ｐキャラに対応するカーソル２０３を「２Ｐカーソル」と呼ぶ。なお、１Ｐカーソルと、２Ｐカーソルとは、そのカーソルの色は異なっており、どのカーソルが１Ｐキャラのものか、あるいは２Ｐキャラのものかを識別しやすいようにしている。なお、このカーソルの移動制御に関しては、別途後述する。
【００９０】
また、「１Ｐ表示領域」、「２Ｐ表示領域」のそれぞれに、投げ対象選択ＵＩ２０４、操作キャラ情報画像２０５が表示されている。これらは、プレイヤ毎に変化する要素であることから、それぞれの表示領域に表示している。
【００９１】
また、本ゲームでは、２人プレイの開始直後の状態では、１Ｐキャラと２Ｐキャラは別の隊列になっているものとする。つまり、１Ｐキャラ、２Ｐキャラが共にリーダーキャラの状態で、２人プレイが開始されるものとする。また、２Ｐキャラの隊列については、この時点では、２Ｐキャラしかいない状態である。図１５の状態から、第２プレイヤは、２Ｐキャラを操作し、１Ｐキャラと別行動をとることができる。そして、２Ｐキャラも独自にお供キャラクタ２０２を自身の隊列に加えることができる。図１６に、２Ｐキャラが図１５とは別の場所に移動し、また、その道中で何隊かのお供キャラクタを自身の隊列に加えた状態の画面例を示す。このように、分割画面を用いて、それぞれ別個にプレイヤキャラクタ２０１および隊列を操作することができる。
【００９２】
［隊列の合流・分割等について］
次に、上記隊列の「合流」、「分割」、「解散」、および、これに伴う画面制御に関して説明する。本ゲームでは、隊列の状況によって、分割画面表示と１画面表示とを使い分ける画面制御が行われる。
【００９３】
まず、隊列の「合流」について説明する。上記のように、２人プレイ開始直後は、それぞれ別の隊列となっている。本ゲームでは、このような別隊列を１つの隊列として「合流」させることができる。所定の「合流操作」を行うことで、合流が可能である。本実施形態では、別隊列である１Ｐキャラと２Ｐキャラとを接触させるような操作を行うことで、１つの隊列として合流させることができるとする。この場合、いずれが隊列のリーダーになるかについては、例えば、「接触した」側が「接触された」側を自身の隊列に加えるような制御としても良いし、その逆の制御であっても良い。なお、他の実施形態では、例えば、１Ｐキャラと２Ｐキャラがある程度近づいている状態で、所定のパターンで「笛を吹く」という操作を行うことで笛を吹いた側の隊列に他方を合流させるようにしてもよい。
【００９４】
上記図１５の状態で、第２プレイヤが所定の合流操作を行ったとする。これにより、２Ｐキャラを１Ｐキャラの隊列に加える制御が実行される。更に、１Ｐキャラと２Ｐキャラの合流により、画面の表示態様が変更される。具体的には、分割画面で表示されていたものが、１画面で表示される。図１７に、１Ｐキャラと２Ｐキャラが合流した状態におけるゲーム画面の例を示す。図１７では、１つの表示領域（この例では画面全体）を用いてゲーム画面が表示されている。以下の説明では、１Ｐキャラと２Ｐキャラが合流した状態におけるゲーム画面のことを「合流画面」と呼ぶ。また、１Ｐキャラと２Ｐキャラとが別隊列で行動している状態の画面を「分割画面」と呼ぶ。また、合流画面における操作モードのことを「合流モード」、「分割画面」における操作モードのことを「別隊列モード」と呼ぶ。
【００９５】
図１７で示す合流画面では、１Ｐキャラおよびこれに対応する１Ｐカーソルが表示され、２Ｐキャラおよびこれに対応する２Ｐカーソルも表示されている。また、投げ対象選択ＵＩ２０４、操作キャラ情報画像２０５に関して、上記分割画面の場合は、それぞれの表示領域に１つずつ表示されていたが、この合流画面では、それぞれ１つだけ表示される。投げ対象選択ＵＩ２０４に関しては、第１プレイヤ、第２プレイヤとで共用する形となる（投げ対象選択ＵＩ２０４のレイアウトに関しては別途後述する）。また、操作キャラ情報画像２０５では、隊列内のプレイヤキャラクタ２０１を示す画像が略縦並びに表示されている。そして、１Ｐキャラの画像の右側には「１Ｐ」の文字が、２Ｐキャラの画像の右側には「２Ｐ」の文字が表示されており、各プレイヤが操作しているプレイヤキャラクタを識別しやすいようになっている。
【００９６】
ここで、操作対象が後衛キャラである場合の、当該後衛キャラの移動範囲および可能な操作に関して説明する。図１８は、後衛キャラの移動範囲の概念を示す図である。２Ｐキャラ（後衛）は、１Ｐキャラ（リーダー）を中心とした円状の範囲２１１内においては、第２プレイヤの操作に基づいて自由に移動可能となっている。なお、この範囲２１１は、例えば、リーダーキャラがお供キャラクタ２０２を投げて届く範囲となっている。そして、２Ｐキャラ（後衛）が、この範囲２１１外に出るような距離まで離れた場合は、２Ｐキャラの移動操作の有無に関わらず、２Ｐキャラ（後衛）が自動的に１Ｐキャラ（リーダー）を追尾するような移動制御が行われ、１Ｐキャラ（リーダ−）との距離を自動的に保つように制御されることになる。換言すれば、１Ｐキャラ（リーダー）と連動して移動する範囲２１１があり、２Ｐキャラ（後衛）は、この範囲２１１から出ることができないような移動制御が行われるものである。
【００９７】
２Ｐキャラ（後衛）に移動に関しては、上記のような制限が設けられるが、「投げる」動作に関しては、第２プレイヤは自由に行うことができる。換言すれば、第２プレイヤは
、２Ｐキャラが後衛キャラである間は、その移動は第１プレイヤに任せておき、自分は「投げる」ことに専念することも可能となっている。
【００９８】
次に、隊列の分割、解散の操作等に関して説明する。合流モードにおいて、以下のような操作が行われることで、隊列を分割あるいは解散することができる。ここでは、１Ｐキャラがリーダーキャラ、２Ｐキャラが後衛である場合を例とする。まず、合流モードにおいて、第１プレイヤが「解散操作」を行うと、隊列を解散することができる。この場合、１Ｐキャラと２Ｐキャラは別々の隊列となる（なお、２Ｐキャラではないほうの後衛キャラがいた場合は、１Ｐキャラの隊列に残るものとする）。また、それぞれの隊列には、お供キャラクタ２０２は１体も存在しない状態となる。また、これに伴い、操作モードが「別隊列モード」に切り替わり、画面も上記「分割画面」に変更される。
【００９９】
一方、合流モードにおいて、第２プレイヤが「解散操作」を行った場合は、２Ｐキャラだけを隊列から外して別隊列とすることで、隊列を分割することができる。この場合も、操作モードが「別隊列モード」に切り替わり、画面も上記「分割画面」に変更される。隊列構成については、１Ｐキャラの隊列については、それまでの状態から２Ｐキャラだけ抜けた隊列構成となる。２Ｐキャラの隊列については、お供キャラクタ２０２は１体もいない状態である。
【０１００】
また、合流モードにおいて、１Ｐキャラ（リーダー）が２Ｐキャラ（後衛）を「投げる」ことでも、２Ｐキャラだけを隊列から外して別隊列とすることができる。つまり、２Ｐキャラ（後衛）を投げるという操作も、１種の解散操作といえる。例えば、図１９で示すような合流画面の状態において、図２０に示すように、１Ｐキャラ（リーダー）が２Ｐキャラ（後衛）を樹木オブジェクト２１３の近くに投げたとする。この場合は、２Ｐキャラ（後衛）が１Ｐキャラの隊列から抜け、新たな隊列のリーダーとして設定される。そして、上記同様に、操作モードが「別隊列モード」に切り替わり、図２１に示すように、画面も「分割画面」に変更される。また、２Ｐキャラの隊列については、お供キャラクタ２０２が１体もいない状態となっている。
【０１０１】
また、上記の他、以下のような操作が行われた場合も、合流画面から分割画面に切り替わる。例えば、図２２に示すような合流画面の状態において、図２３に示すように、１Ｐキャラが２Ｐキャラ（後衛）ではないほうのプレイヤキャラクタ２０１Ｃを樹木オブジェクト２１３の近くに投げたとする。この場合、プレイヤキャラクタ２０１Ｃは、別隊列のリーダーとして設定される。但し、操作を担当するプレイヤが割り当てられていないため、図２４で示すように、樹木オブジェクト２１３の近くで待機する状態となる。
【０１０２】
その後、１Ｐキャラ（リーダー）、２Ｐキャラ（後衛）を含む隊列が、図２５に示すように他の場所に移動したとする。この状態で、第１プレイヤが、上記のような操作対象を切り替えるための操作を行い、上記待機させているプレイヤキャラクタ２０１Ｃを第１プレイヤの操作対象に切り替えたとする。この場合、図２６に示すように、分割画面に切り替わり、１Ｐ表示領域には、プレイヤキャラクタ２０１Ｃが１Ｐキャラとして表示される。また、２Ｐ表示領域では、それまで後衛キャラであった２Ｐキャラがあらたにリーダーキャラとして設定される。また、先ほどまでリーダーキャラであったプレイヤキャラクタ２０１Ａは後衛キャラとして設定される。そして、第２プレイヤは、その隊列構成を引き継いで、当該隊列を操作することができる。
【０１０３】
本ゲームでは、上記のように操作対象を切り替えたり、隊列を合流したり分割したりすることができる。そして、このような隊列の合流・分割操作が行われることで、合流画面と分割画面との切り替えがシームレスに行われる（つまり、画面の表示設定や切り替え設定のための操作をいちいち行う必要が無い）。特に、２人プレイ時において、上記のよう
な隊列の合流・分割に発生頻度が高くなるようなゲームにおいて、両者の隊列の状況に応じてシームレスな画面切り替えを行うことで、プレイヤの利便性を高めることができる。
【０１０４】
ここで、合流画面、分割画面の切り替えの際の画面演出の例を説明する。本実施形態では、合流画面から分割画面に切り替わる際は、例えば、２Ｐ表示領域が画面右側から左に向けて、１Ｐ表示領域を押し込むようにして入り込んでくる演出が行われる。これに伴い、１Ｐ表示領域の幅が徐々に狭くなっていき、最終的に当初の半分の幅となる。また、この演出の間も、１Ｐキャラの表示位置が１Ｐ表示領域の略中央位置を保つように、仮想カメラの位置や画角等の各種パラメータが適宜調整され、仮想カメラの制御も行われる。これは、２Ｐキャラ側の仮想カメラについても同様である。なお、これはあくまで一例であり、合流画面と分割画面とを切り替えるときの画面演出については、どのような演出であってもよい。
【０１０５】
［カーソル制御について］
次に、本ゲームにおけるカーソル２０３の制御に関して説明する。本ゲームでは、基本的には、カーソル２０３は、操作対象のプレイヤキャラクタ２０１の位置から、当該プレイヤキャラクタ２０１の向き（進行方向）に沿った方向に所定量変位させた位置に配置される。以下、この位置のことを、カーソル基本位置と呼ぶ。そして、プレイヤキャラクタ２０１を移動させる操作に連動して、このカーソル基本位置も変更される。プレイヤから見た場合、カーソル２０３は、操作対象キャラクタの前方の所定距離だけ離れた位置に常に表示されているように見えることになる。但し、本実施形態では、上記慣性センサに対する入力に基づいて、このカーソルの位置を更に微調整することが可能となっている。
【０１０６】
図２７および図２８に、上記慣性センサを用いたカーソル位置の微調整の例を示す。まず、図２７のような状態で、第１プレイヤが、方向キー等の入力は行わずに、例えば縦持ちしている左コントローラ３のその先端部分を少し上に上げるように、左コントローラの姿勢を変更したとする。この場合、例えば、図２８に示すように、１Ｐカーソルの位置を、仮想ゲーム空間内において、１Ｐキャラから見て奥行き方向側に少し移動させることができる。また、図示は省略するが、例えば左コントローラ３を右に傾けるように姿勢変化させれば、１Ｐカーソルを右に移動させることができる。同様に、左に傾けるよう姿勢変化させることで、１Ｐカーソルを左に移動させることができる。このように、プレイヤは、左コントローラの姿勢を変化させることで、カーソル２０３の位置をカーソル基本位置から更に移動させることが可能となっている。なお、カーソル位置を微調整した結果、お供キャラクタ２０２を投げても届かないような位置となっている場合は、そのことを示すためにカーソルの表示色が変更される。
【０１０７】
ところで、本ゲームでは、所定のオブジェクトに対して、カーソルを「ロックオン」させることが可能となっている。例えば、所定の敵キャラクタの近くにカーソル２０３がある場合に、プレイヤが所定の「ロックオン操作」を行うことで、カーソル２０３をその敵キャラクタに合わせて表示させる、ロックオン状態とすることができる。図２９に、ある敵キャラクタをロックオン中である状態の画面例を示す。図２９は、「合流画面」の場合の例であり、１Ｐキャラが敵キャラクタ２２０をロックオンしている状態を示す。一例として、１Ｐカーソルが敵キャラクタ２２０の足下に位置されている状態で、第１プレイヤが「ロックオン操作」として、例えばＺＲボタン６１を押下することで、１Ｐキャラが敵キャラクタをロックオンした状態（以下、ロックオン状態という）とすることができる。なお、ロックオン操作を行ったときに最初にカーソルが表示される位置については、オブジェクト毎に予め定義されているものとする。以下、この位置のことを「ロックオン基準位置」と呼ぶ。また、ロックオンの対象となっているオブジェクトのことを、「ロックオン対象」と呼ぶ。
【０１０８】
また、ロックオン状態においては、ロックオン状態であることをプレイヤにわかりやすくするため等で、カーソル２０３の表示態様も少し変化する。図２９では、１Ｐカーソルの表示態様が、照準のような外観に変化している。以下、このように表示態様が変化したロックオン状態におけるカーソルのことを、「ロックオンカーソル」と呼ぶ。また、このロックオンカーソルは、ロックオン対象となっている敵キャラクタ２２０が移動すれば、その移動に追従して移動する。すなわち、ロックオンカーソルとロックオン対象のオブジェクトとの相対的な位置関係は変化しない。図３０に、ロックオンカーソルが追従移動している例を示す。図３０では、ロックオンカーソルが、ロックオン基準位置として設定されている敵キャラクタ２２０の右肩付近に合わせられている状態で、敵キャラクタ２２０が左方向に移動した例を示す。この移動において、ロックオンカーソルは敵キャラクタ２２０の右肩付近の位置を維持したままその表示位置が左方向に移動しているものである。
【０１０９】
なお、１Ｐキャラとロックオン中の敵キャラクタ２２０との距離が一定以上離れると、ロックオン状態は自動的に解除され、１Ｐカーソルの表示態様は元に戻る。また、その配置位置も、上記のようなカーソル基本位置に上記の微調整分を加味した位置となる。また、１Ｐキャラから所定距離内にロックオン可能な対象が複数存在していた場合は、上記ロックオン操作が行われる度に、ロックオン対象が切り替えられていくものとする。
【０１１０】
このように、ロックオンカーソルはそのロックオン対象の移動に追従して動くが、このロックオンカーソルの位置についても、上記慣性センサを用いてロックオン基準位置から微調整することが可能となっている。図３１および図３２に、ロックオン状態でのロックオンカーソル位置の微調整の例を示す。まず、図３１では、ロックオン基準位置である敵キャラクタ２２０の顔部右側の位置にロックオンカーソルが位置している状態である。プレイヤは、コントローラの姿勢を変化させることで、このロックオンカーソル（の中心点）を、ロックオン調整可能範囲２２１の範囲内で移動させることが可能となっている。当該ロックオン調整可能範囲２２１は、敵キャラクタ２２０をおおよそ囲むような領域である。この領域は、ロックオンが可能な各オブジェクトについて、予め定義されている領域である。なお、図３１では、説明をわかりやすくするため、ロックオン調整可能範囲２２１を点線で示しているが、実際のゲーム画面では、この点線は表示されない。そして、ロックオン状態のときは、プレイヤが左コントローラをどれだけ傾けても、ロックオンカーソル（の中心点）はこの範囲２２１から外に出ることはない。例えば、図３２で示すように、プレイヤが左コントローラ３の先端部分の向きを、矢印２２２で示される角度まで左に傾けたとしても、ロックオンカーソルは、ロックオン調整可能範囲２２１を越えて左側には移動しない。同様に、矢印２２３で示される角度まで左コントローラ３の先端を右に傾けても、ロックオンカーソルは、ロックオン調整可能範囲２２１を越えて右側には移動しない。
【０１１１】
更に、本実施形態では、ロックオン状態の場合と、そうではない場合とで、上記姿勢変化に基づくカーソルの移動速度に差を設けている。具体的には、ロックオン状態の場合のほうがより細かい微調整が可能なように、同じ傾き具合におけるカーソルの移動速度がより遅くなるような制御も行っている。例えば、左コントローラ３の姿勢を、右側に２０度変化させた場合を想定する。この場合、ロックオン状態ではない場合は、例えば仮想空間内において２０の距離だけカーソルを移動させるが、ロックオン状態の場合は、５の距離だけしか移動させないような制御（移動速度を２５％に落とす制御）が行われる。これにより、例えば、敵キャラクタ２２０を攻撃する場合、「弱点部位」として予め設定されている箇所を狙いやすくなる等のように、狙いを付ける必要性が高くなることが想定されるロックオン状態等において、その操作性を高めることができる。
【０１１２】
ところで、本実施形態では、上記のような微調整を行うに際して、コントローラの基準姿勢を適宜設定する処理も行っている、例えば、ロックオン操作が行われた場合は、この
操作が行われたときのコントローラの姿勢を基準姿勢として設定し、上記ロックオン基準位置と対応づける。そのため、プレイヤは、ロックオン操作を行ったときのコントローラの姿勢を基準に、その姿勢を変化させることで上記のカーソル（ロックオンカーソル）の位置の微調整が可能である。これにより、直感的で違和感の少ない微調整操作が可能となっている。
【０１１３】
このように、本実施形態では、カーソルの移動制御について、基本的には上記カーソル基準位置にカーソルを配置しつつ、コントローラの姿勢を変化させることで、更にカーソル位置を変化できるようにしている。これにより、カーソルの移動について、直感的で柔軟な操作性を提供できる。また、本実施形態では、コントローラについて、上記の「横持ち」、「縦持ち」のいずれの持ち方でもプレイ可能である。この場合に、特に「横持ち」でプレイする場合に、奥行き方向へのカーソルの微調整について、直感的でわかりやすい操作性を提供することもできる。
【０１１４】
［投げ対象選択ＵＩについて］
上記のように、本ゲームでは、お供キャラクタ２０２を敵キャラクタ等に「投げる」ことで、お供キャラクタに様々な行動を取らせることができる。また、上述したように、お供キャラクタ２０２には、数種類のお供キャラクタ２０２が用意されている。そのため、プレイヤには、どの種類のお供キャラクタ、あるいは後衛キャラを投げるのかを選択させるための投げ対象選択ＵＩ２０４が提供されている。
【０１１５】
ところで、本ゲームでは、左コントローラ３および右コントローラ４を１セットとして１つのコントローラとしてプレイすることも可能であり、また、左コントローラ３および右コントローラ４を、それぞれ別々のコントローラとしてプレイすることも可能となっている。このように、左コントローラ３および右コントローラ４を別々のコントローラとして用いる場合、左コントローラ３および右コントローラ４を１セットで用いる場合に比べると、利用できる物理的なボタン数やスティック等の操作部が減ることになる。このような操作部の数の違いに鑑みて、本実施形態では、各プレイヤが用いるコントローラの種類に応じて、異なった「投げ対象選択ＵＩ」をプレイヤに提示するようにしている。
【０１１６】
一例として、第１プレイヤが左コントローラ３および右コントローラ４を１セットとして用い、第２プレイヤが左コントローラ３のみを用いて２人プレイが行われる場合を例として、投げ対象選択ＵＩ２０４の表示例を説明する。また、第１プレイヤは左コントローラ３および右コントローラ４を縦持ちし、第２プレイヤは、左コントローラ３を横持ちしてプレイしているものとする。図３３は、このような場合に、上記１Ｐ表示領域に表示される投げ対象選択ＵＩ２０４の例である。また、図３４は、このような場合に上記２Ｐ表示領域に表示される投げ対象選択ＵＩ２０４の例である。以下の説明では、図３３で示した投げ対象選択ＵＩのことを「第１レイアウトの選択ＵＩ」、図３４で示した投げ対象選択ＵＩについては「第２レイアウトの選択ＵＩ」と呼ぶこともある。
【０１１７】
まず、図３３について説明する。図３３で示す第１レイアウトの選択ＵＩでは、現在枠２３１、前番枠２３２、後番枠２３３の３つの枠が表示されている。その配置としては、現在枠２３１を中心として、その左側に前番枠２３２が配置され、右側に後番枠２３３が配置されている。また、現在枠２３１は、他の２つの枠よりも大きく表示されている。前番枠２３２および後番枠２３３は同じ大きさで表示されている。そして、プレイヤが「投げる」操作を行うと、現在枠２３１に表示されているお供キャラクタと同種類のお供キャラクタ２０２、あるいは、後衛キャラが投げられることになる。
【０１１８】
次に、当該第１レイアウトの選択ＵＩにおける操作について説明する。この場合は、プレイヤは、上記第１Ｌボタン３８および第１Ｒボタン６０を用いて、現在枠２３１の内容
を切換えることができる。例えば、上記図３３において、現在枠２３１にはお供キャラクタＡ、前番枠２３２にはお供キャラクタＢ、後番枠２３３にはお供キャラクタＣが表示されているとして、プレイヤが第１Ｌボタン３８を押下した場合を想定する。この場合は、第１レイアウトの選択ＵＩの表示が全体的に左方向に移動する。具体的には、図３５で示すように、現在枠２３１が、その大きさを縮小しながら前番枠２３２の位置に移動し、後番枠２３３が、その大きさを拡大しながら、現在枠２３１の位置に移動していく。また、後番枠２３３の裏から、後衛キャラが表示される新たな枠が回り込んでくるような表示がされ、この新たな枠が後番枠２３３の位置に移動する様子が示される。また、前番枠２３２は当該枠の裏に回り込むように移動して、画面から表示されないようになる。その結果、図３６に示すように、前番枠２３２にはお供キャラクタＡが、現在枠２３１にはお供キャラクタＣが、後番枠２３３には後衛キャラが表示される。
【０１１９】
また、上記図３３で示した状態でプレイヤが第１Ｒボタン６０を押下した場合は、上記の動きとは逆方向の動きが行われることになる。すなわち、第１レイアウトの選択ＵＩの表示が全体的に右方向に移動することになる。その結果、例えば前番枠２３２には後衛キャラが、現在枠２３１にはお供キャラクタＢが、後番枠２３３にはお供キャラクタＡが表示されることになる。このように、左コントローラ３および右コントローラ４を１セットとして用いている場合は、投げる対象を選択する操作のために、第１Ｌボタン３８および第１Ｒボタン６０との２つのボタンを割り当てている。そして、投げ対象選択ＵＩ２０４としても、このような操作に合わせたレイアウトである第１レイアウトの選択ＵＩを用いるようにしている。
【０１２０】
次に、上記図３４に示した第２レイアウトの選択ＵＩについて説明する。図３４で示す第２レイアウトの選択ＵＩでは、現在枠２３４、次番枠２３５、次々番枠２３６の３つの枠が表示されている。その配置としては、現在枠２３４が一番左に配置され、その右隣に次番枠２３５、更にその右隣に、次々番枠２３６が配置されている。また、現在枠２３４は、他の２つの枠よりも大きく表示されている。また、次番枠２３５は、次々番枠２３６よりも大きく表示されている。
【０１２１】
次に、当該第２レイアウトの選択ＵＩにおける操作について説明する。この場合は、プレイヤは、上記第２Ｌボタン４３のみを用いて、現在枠２３４の内容を切換えることができる。具体的には、図３４の状態でプレイヤが第２Ｌボタン４３を押下すると、図３７に示すように、第２レイアウトの選択ＵＩの表示が全体的に左方向に移動する。具体的には、次番枠２３５が現在枠２３４の位置に移動し、次々番枠２３６が次番枠２３５の位置に移動する。また、次々番枠２３６の後ろから回り込むようにして新たな枠が登場し、これが次々番枠２３６の位置に移動する様子が表示される。つまり、上記第１レイアウトのＵＩの場合と異なり、１方向のみの切り替え操作となっている。このように、第２プレイヤが左コントローラ３のみ用いてプレイしている場合は、その操作部の数の少なさに鑑みて、投げる対象を選択する操作には第２Ｌボタン４３という１つのボタンのみを割り当てている。そして、投げ対象選択ＵＩ２０４も、当該１つのボタンのみで操作することに適したレイアウトである第２レイアウトの選択ＵＩを用いている。
【０１２２】
ここで、上記のように、第１プレイヤが左コントローラ３および右コントローラ４を１セットとして用い、第２プレイヤが左コントローラ３のみを用いて２人プレイを行う場合であって、上記合流画面が表示される場合について説明する。上記のように、合流画面においては、投げ対象選択ＵＩ２０４は、第１プレイヤ、第２プレイヤで共用される。この場合は、操作部がより少ない方のコントローラに応じたレイアウトの投げ対象選択ＵＩが用いられる、上記例では、第２レイアウトの選択ＵＩが用いられる。そして、第１プレイヤは、第１Ｌボタン３８のみを用いて選択操作を行い、第２プレイヤは、第２Ｌボタン４３のみを用いて選択操作を行うことになる。なお、他の実施形態では、合流画面において
も、各自のコントローラに応じた投げ対象選択ＵＩ２０４をそれぞれ表示するようにしてもよい。
【０１２３】
このように、各プレイヤが使用するコントローラに応じて、各プレイヤに対応する投げ対象選択ＵＩを異ならせている。これにより、各コントローラの操作部の数に応じて、選択操作にかかる操作性を高めるとともに、その表示内容も各コントローラに適したものにすることができる。
【０１２４】
［本実施形態のゲーム処理の詳細］
次に、図３８〜図５２を参照して、本実施形態におけるゲーム処理についてより詳細に説明する。
【０１２５】
［使用データについて］
まず、本ゲーム処理にて用いられる各種データに関して説明する。図３８は、本体装置２のＤＲＡＭ８５に記憶される各種データの一例を示すメモリマップである。本体装置２のＤＲＡＭ８５には、ゲームプログラム３０１、１Ｐ操作データ３０２、２Ｐ操作データ３０６、１Ｐキャラ情報３０７、２Ｐキャラ情報３０８、１Ｐコントローラ種別情報３０９、２Ｐコントローラ種別情報３１０、プレイヤキャラクタデータ３１１、お供キャラクタマスタデータ３１２、お供キャラクタデータ３１３、その他のキャラクタデータ３１４、第１隊列データ３１５、第２隊列データ３１６、第３隊列データ３１７、操作モード３１８、１Ｐ用選択ＵＩデータ３１９、２Ｐ用選択ＵＩデータ３２０、１Ｐ用切り替え用メニュー表示フラグ３２１、２Ｐ用切り替え用メニュー表示フラグ３２２、モード変更指示データ３２３、画面切り替え状態データ３２４、等が記憶されている。
【０１２６】
ゲームプログラム３０１は、本実施形態にかかるゲーム処理を実行するためのプログラムである。
【０１２７】
１Ｐ操作データ３０２は、第１プレイヤが操作するコントローラから得られるデータであり、第１プレイヤの操作内容を示すデータである。また、２Ｐ操作データ３０６は、同様に、第２プレイヤが操作するコントローラから得られるデータであり、第２プレイヤの操作内容を示すデータである。１Ｐ操作データ３０２には、デジタルボタンデータ３０３、アナログスティックデータ３０４、慣性センサデータ３０５が含まれている。また、２Ｐ操作データ３０６にも、同様のデータが含まれている。デジタルボタンデータ３０３は、コントローラが有する各種ボタンの押下状態を示すデータである。アナログスティックデータ３０４は、コントローラが有するアナログスティックに対する操作内容を示すためのデータである。慣性センサデータ３０５は、上述した加速度センサや角速度センサ等の慣性センサの検出結果を示すデータである。具体的には、加速度データや角速度データが含まれる。
【０１２８】
１Ｐキャラ情報３０７は、上記１Ｐキャラに関する情報である。具体的には、上記３体のプレイヤキャラクタ２０１のうち、どれが第１プレイヤの現在の操作対象となっているかを示すための情報が含まれる。具体的には、操作対象となっているプレイヤキャラクタ２０１にかかるプレイヤキャラクタＩＤ（後述）が設定される。また、１Ｐキャラがいずれかのオブジェクトを「ロックオン」しているか否かを示す情報と、ロックオン中であれば、そのロックオンの対象となっているオブジェクトを示す情報も含まれる。また、２Ｐキャラ情報３０８は、上記２Ｐキャラに関する情報であり、１Ｐキャラ情報３０７と同趣旨の情報が含まれる。
【０１２９】
１Ｐコントローラ種別情報３０９、および、２Ｐコントローラ種別情報３１０は、各プレイヤが本ゲームのプレイに用いているコントローラの種別および使用態様、操作部のマ
ッピング情報を示すためのデータである。操作部のマッピング情報とは、このような種別・使用態様に応じてゲーム内における各種操作に対する各操作部の割り当てを定義した情報である。コントローラの種別および使用態様を示す情報としては、例えば、左コントローラ３のみが用いられていることを示す情報（使用コントローラ本数＝１）、左コントローラ３および右コントローラ４の２つのコントローラが１セットとして用いられていることを示す情報（使用コントローラ本数＝２）等が格納される。また、マッピング情報としては、例えば、「投げる」操作として、左コントローラ３のみ用いる場合はＡボタン５３が割り当てられ、左コントローラ３および右コントローラ４の２つを用いる場合はボタン３４が割り当てられていることを示す情報である。
【０１３０】
プレイヤキャラクタデータ３１１は、上記３体のプレイヤキャラクタ２０１Ａ、２０１Ｂ、２０１Ｃに関するデータである。これらを一意に識別するためのプレイヤキャラクタＩＤと、その外観の画像データ、モデリングデータ等が含まれる。
【０１３１】
お供キャラクタマスタデータ３１２は、上記お供キャラクタ２０２の基本的な情報を定義したデータである。また、お供キャラクタデータ３１３は、実際に仮想ゲーム空間内に登場している個々のお供キャラクタ２０２を管理等するためのデータである。図３９は、お供キャラクタマスタデータ３１２のデータ構成の一例を示す図である。お供キャラクタマスタデータ３１２は、種別ＩＤ３３１、外観データ３３２、行動定義データ３３３等の項目を有するテーブル形式のデータである。種別ＩＤは、お供キャラクタ２０２の「種類」を示すＩＤである。外観データ３３２は、その種類のお供キャラクタの画像データやモデリングデータである。行動定義データ３３３は、その種類のお供キャラクタ２０２が取り得る行動内容について定義したデータである。例えば、「攻撃」する場合にどのような動作・方法で攻撃を行うか、等である。また、その他、その種類のお供キャラクタ２０２に関する各種パラメータ、例えばＨＰ（ヒットポイント）や攻撃力等のパラメータの基本値等も定義されている。仮想ゲーム空間内に登場する個々のお供キャラクタ２０２は、このお供キャラクタマスタデータ３１２に基づいて生成され、それぞれに固有のＩＤを割り当てられて、次に説明するお供キャラクタデータ３１３によって管理される。
【０１３２】
図４０は、お供キャラクタデータ３１３のデータ構成の一例を示す図である。お供キャラクタデータ３１３は、お供キャラクタＩＤ３４１、種別ＩＤ３４２、参加隊列情報３４３、現在位置データ３４４、現在状態データ３４５等の項目を有するテーブル形式のデータである。お供キャラクタＩＤ３４１は、仮想ゲーム空間に登場するお供キャラクタ２０２を一意に識別するためのＩＤである。種別ＩＤ３４２は、そのお供キャラクタ２０２の種類を示すＩＤであり、上記お供キャラクタマスタデータ３１２の種別ＩＤ３３１に対応する。参加隊列情報３４３は、そのお供キャラクタ２０２がいずれかの隊列に参加しているか、あるいは、いずれの隊列にも参加していない「フリー」の状態であるのかを示すための情報である。また、隊列に参加している場合は、どの隊列に参加しているのかを示す情報でもある。現在位置データ３４４は、そのお供キャラクタ２０２の、仮想ゲーム空間内における現在位置を示すデータである。現在状態データ３４５は、そのお供キャラクタ２０２が現在どのような行動を行っているか等を示すためのデータである。例えば、敵キャラクタを攻撃中の状態であることを示す情報や、リーダーキャラに追従して移動中の状態であることを示す情報等が、ゲームの状況に応じて適宜設定される。
【０１３３】
図３８に戻り、その他のキャラクタデータ３１４は、上記プレイヤキャラクタ２０１、お供キャラクタ２０２以外の各種キャラクタに関するデータである。例えば、敵キャラクタの外観や動作について定義したデータである。また、特に、上記ロックオンの対象となり得るオブジェクトについては、上述した「ロックオン基準位置」および「ロックオン調整可能範囲」を定義した情報も含まれる。
【０１３４】
第１隊列データ３１５、第２隊列データ３１６、第３隊列データ３１７は、上述した隊列の構成を示すデータである。本ゲームでは、プレイヤキャラクタ２０１は３体であるため、同時に併存可能な隊列数は、最大で３隊となる。そのため、３つの隊列データが用意されている。図４１は、第１隊列データ３１５のデータ構成の一例である。第１隊列データ３１５には、リーダーキャラ情報３５１、第１後衛キャラ情報３５２、第２後衛キャラ情報３５３、お供キャラクタ情報３５４が含まれる。リーダーキャラ情報３５１は、その隊列のリーダーキャラがどのプレイヤキャラクタ２０１であるのかを示す情報である。第１後衛キャラ情報３５２、第２後衛キャラ情報３５３は、その隊列における後衛キャラの有無を示す情報である。また、後衛キャラがいる場合は、それがどのプレイヤキャラクタ２０１であるのかを示す情報である。例えば、隊列内に後衛キャラが１体しかいない場合は、第１後衛キャラ情報３５２にはその後衛キャラのプレイヤキャラクタＩＤが設定され、第２後衛キャラ情報３５３については「存在しない」ことを示す情報が設定される。お供キャラクタ情報３５４は、その隊列に参加しているお供キャラクタ２０２の情報である。具体的には、上記お供キャラクタＩＤ３４１が含まれる。
【０１３５】
なお、第２隊列データ３１６、第３隊列データ３１７も同様の構成であるため、その説明は割愛する。また、以下の説明では、第１隊列データ３１５、第２隊列データ３１６、第３隊列データ３１７を総称して、単に「隊列データ」と呼ぶこともある。
【０１３６】
図３８に戻り、操作モード３１８は、１Ｐキャラおよび２Ｐキャラが合流している状態（上記合流モード）であるか、別隊列で行動している状態（上記別隊列モード）であるかを示すためのデータである。具体的には、合流モードであることを示す情報、あるいは、別隊列モードであることを示す情報が設定される。
【０１３７】
１Ｐ用選択ＵＩデータ３１９、２Ｐ用選択ＵＩデータ３２０は、上記図３３〜図３７を用いて上述した投げ対象選択ＵＩに関するデータである。１Ｐ用選択ＵＩデータ３１９は、主に第１プレイヤのためのデータであり、２Ｐ用選択ＵＩデータ３２０は、第２プレイヤのためのデータである。但し、上記のように合流画面において、投げ対象選択ＵＩを第１プレイヤと第２プレイヤとで共用する場合は、１Ｐ用選択ＵＩデータ３１９が共用される。図４２に、１Ｐ用選択ＵＩデータ３１９のデータ構造の一例を示す。なお、２Ｐ用選択ＵＩデータ３２０のデータ構造も同様である。図４２において、１Ｐ用選択ＵＩデータ３１９は、レイアウト種別３６１、現在枠データ３６２、候補データ３６３が含まれている。レイアウト種別３６１は、上述した第１レイアウトの選択ＵＩを用いるか、第２レイアウトの選択ＵＩを用いるかを示すための情報である。各プレイヤが用いるコントローラの使用態様に応じて、いずれかのＵＩを特定するための情報が設定される。現在枠データ３６２は、第１レイアウトの選択ＵＩにおける現在枠２３１、または、第２レイアウトの選択ＵＩにおける現在枠２３４の内容を示すデータである。候補データ３６３は、第１レイアウトの選択ＵＩにおける前番枠２３２および後番枠２３３の内容、または、第２レイアウトの選択ＵＩにおける次番枠２３５および次々番枠２３６の内容を示すためのデータである。また、当該現在枠データ３６２は、次に説明する候補データ３６３に含まれるデータのうちのいずれか１つのデータを指し示す、ポインタとしての役割を有するデータでもある。候補データ３６３は、当該ＵＩにおける選択候補を示すデータであり、隊列内の上記各種類のお供キャラクタ２０２を示すデータ、および、後衛キャラを示すデータが、シーケンシャルなデータとして所定の順番で格納されている。候補データ３６３に含まれるデータの数は、隊列に加わっているお供オブジェクト２０２の種類、後衛キャラの数に応じて増減する。図４２では、一例として、隊列内に３種類のお供キャラクタと、２隊の後衛キャラクタがいる場合を想定した候補データ３６３の例を示す。この場合、候補データ３６３には、第１候補３６４ａ〜第５項候補３６４ｅの５つのデータが格納される。そして、例えば、第１候補３６４ａとして第１の種類のお供キャラクタを示すデータが、第２候補３６４ｂとして、第２の種類のお供キャラクタを示すデータが、第３候補３６４ｃ
として、第３の種類のお供キャラクタを示すデータが、第４候補３６４ｄとして１体目の後衛キャラを示すデータが、第５候補３６４ｅとして２体目の後衛キャラを示すデータが格納される。
【０１３８】
１Ｐ用切り替えメニュー表示フラグ３２１は、第１プレイヤの操作に基づいたキャラ切り替えメニュー２０７を画面に表示するか否かを示すためのフラグである。また、２Ｐ用切り替えメニュー表示フラグ３２２は、第１プレイヤの操作に基づいたキャラ切り替えメニュー２０７を画面に表示するか否かを示すためのフラグである。いずれも、オンに設定されている場合が、キャラ切り替えメニュー２０７を画面に表示することを示すものとする。
【０１３９】
モード変更指示データ３２３は、後述の処理で、上記の操作モードの切り替え制御（換言すれば、合流画面と分割画面の切り替え制御）のために用いられるデータであり、操作モードを別隊列モードとするか、合流モードとするかを示す情報が設定される。本例では、操作モードを別隊列モードにしたい場合は「別隊列モード変更指示」が設定され、操作モードを合流モードにしたい場合は「合流モード変更指示」が設定されるものとする。
【０１４０】
画面切り替え状態データ３２４は、上記「合流画面」から「分割画面」へ切り替えている状態であるか、上記「分割画面」から「合流画面」へ切り替えている状態であるかを示す為のデータである。本実施形態では、これらの画面の切り替えは数フレームかけて実行されるところ、切り替え中の仮想カメラの各種パラメータの設定等のために、当該データが利用される。本例では、「分割画面」から「合流画面」へ切り替えている状態を示す場合は「合流画面切り替え中」という情報が設定される。また、「合流画面」から「分割画面」へ切り替えている状態を示す場合は「分割画面切り替え中」という情報が設定されるものとする。また、いずれでもない状態の場合は、当該データには何も設定されないものとする。
【０１４１】
［プロセッサ８１が実行する処理の詳細］
次に、図４３〜図５６のフローチャートを参照して、本実施形態にかかるゲーム処理の詳細を説明する。なお、この説明では、主に、上述したような隊列の合流・分離とこれに伴う画面制御、カーソルの移動制御、投げ対象選択ＵＩに関する制御、について説明し、その他のゲーム処理についての説明は割愛する。
【０１４２】
図４３は、本ゲーム処理の詳細を示すフローチャートである。ここでは、１人プレイ中の状態から、上述したような２人プレイを開始する（つまり、第２のプレイヤが途中参加する）という場面を想定して説明を始める。すなわち、第１プレイヤが、１人プレイの状態において、上記のようなオプションメニューを開いたという場面を想定する。
【０１４３】
まず、ステップＳ１で、２人プレイの開始指示を受付ける処理が実行される。すなわち、プロセッサ８１は、１Ｐ操作データ３０２に基づいて、上記オプションメニューから、２人プレイを開始する旨の指示操作が行われたことを検出する。
【０１４４】
次に、ステップＳ２で、プロセッサ８１は、コントローラ設定処理を実行する。この処理は、２人プレイにおいて各プレイヤが用いるコントローラを識別するための処理である。具体的には、プロセッサ８１は、上記図１１で示したようなコントローラ設定画面を表示する。そして、コントローラから送られてくる信号に基づき、各プレイヤが使用するコントローラの種類および使用態様を判別する。コントローラの種類としては、例えば、上記左コントローラ３および右コントローラ４であるか、これ以外のゲームコントローラであるか、等が判別される。また、使用態様については、左コントローラ３および右コントローラ４を１セットで用いる態様であるか、左コントローラ３または右コントローラ４を
単体で用いる態様であるか、が判別される。そして、当該判別結果に基づいて、プロセッサ８１は、第１プレイヤが用いるコントローラを示す情報を１Ｐコントローラ種別情報３０９に設定する。また、第２プレイヤが用いるコントローラを示す情報を２Ｐコントローラ種別情報３１０に設定する。各コントローラに応じた上記操作部のマッピング情報も、１Ｐコントローラ種別情報３０９および２Ｐコントローラ種別情報３１０に適宜設定される。以降の処理では、操作データに基づき操作内容を判別する際、プロセッサ８１は、各コントローラに対応する当該マッピング情報を参照して、その操作内容を判別する。各プレイイヤが用いるコントローラの使用態様等が識別できれば、第２のプレイヤの操作対象を決定するための処理も実行される。そして、第２のプレイヤの操作対象となるプレイヤキャラクタＩＤを２Ｐキャラ情報３０８に設定する処理も実行される。なお、１人プレイが既に行われている場合を例としているため、１Ｐキャラ情報３０７については既に設定済みである。また、途中参加ではなく、最初から２人プレイを行う場合は、このタイミングで、第１プレイヤの操作対象を決定するための処理も行えばよい。
【０１４５】
次に、ステップＳ３で、プロセッサ８１は、各プレイヤに応じた投げ対象選択ＵＩ２０４を決定する処理を実行する。具体的には、プロセッサ８１は、上記１Ｐコントローラ種別情報に基づいて、１Ｐ表示領域に表示する投げ対象選択ＵＩ２０４のレイアウトを決定する。そして、１Ｐ用選択ＵＩデータ３１９のレイアウト種別３６１に、決定したレイアウトを示す情報を設定する。また、上記２Ｐコントローラ種別情報に基づいて、２Ｐ表示領域に表示する投げ対象選択ＵＩを決定し、その情報を２Ｐ用選択ＵＩデータ３２０のレイアウト種別３６１に設定する。
【０１４６】
次に、ステップＳ４で、プロセッサ８１は、画面表示について、「分割画面」に切り替える処理を実行する。具体的には、まず、プロセッサ８１は、第１プレイヤの操作対象となっていないプレイヤキャラクタ２０１のうち、いずれかを第２プレイヤの操作対象として決定する。いずれを操作対象とするかはどのように決定してもよいが、例えば、プレイヤキャラクタＩＤの小さいほうを自動的に選択するようにしてもよいし、操作対象を選択させる画面を一旦表示して、第２プレイヤに選ばせるようにしてもよい。第２プレイヤの操作対象、すなわち、２Ｐキャラが決定されれば、プロセッサ８１は、図１５で示したような分割画面が表示されるように、１Ｐキャラに対応する仮想カメラ、および、２Ｐキャラに対応する仮想カメラにそれぞれ適切なパラメータを設定する。また、プロセッサ８１は、２Ｐカーソルの配置位置を２Ｐキャラの位置に基づいて算出する。そして、当該算出した位置に２Ｐカーソルを配置する。また、プロセッサ８１は、操作モード３１８に、別隊列モードであることを示す情報を設定する。
【０１４７】
次に、ステップＳ５で、プロセッサ８１は、ゲーム画像を描画する処理を実行する。具体的には、プロセッサ８１は、操作キャラ情報画像２０５と、適切な投げ対象選択ＵＩ２０４とを仮想ゲーム空間内に配置した仮想ゲーム空間を１Ｐキャラに対応する仮想カメラで撮像した画像を生成し、これを１Ｐ表示領域に描画する。また、同様に２Ｐキャラに対応する仮想カメラで仮想ゲーム空間を撮像した画像を生成し、これを２Ｐ表示領域に描画する。そして、当該ゲーム画像を据置型モニタに表示する処理を実行する。
【０１４８】
次に、ステップＳ６で、プロセッサ８１は、１Ｐ操作データ３０２および２Ｐ操作データ３０６を取得する。続くステップＳ７で、プロセッサ８１は、取得した操作データで示される各プレイヤの操作内容に基づいた各種処理を実行する。次に、ステップＳ８で、プロセッサ８１は、ステップＳ７の処理の結果が反映された仮想ゲーム空間を仮想カメラで撮像し、ゲーム画像として描画するための処理を実行する。その後、上記ステップＳ６に戻り、処理が繰り返される。
【０１４９】
［操作内容に基づく各種処理］
次に、上記ステップＳ７で実行される、操作内容に基づく処理について説明する。図４４は、当該操作内容に基づく処理の詳細を示すフローチャートである。図４４において、まず、ステップＳ１１で、プロセッサ８１は、移動処理を実行する。この処理では、プレイヤが行った移動操作の内容に基づき、各プレイヤキャラクタ２０１を移動させるための処理が実行される。なお、この移動操作の例としては、コントローラを「縦持ち」している場合は、アナログスティック３２を用いた方向入力操作がある。また、「横持ち」の場合も、アナログスティック３２を用いた方向入力操作となる。但し、「縦持ち」と「横持ち」とで、コントローラの姿勢が９０度回転していることから、ゲーム処理においては、方向入力信号と移動方向との割り当てもこれに応じて適宜変更される。例えば、上記図４において、アナログスティック３２を第１Ｌボタン３８がある方向に入力した場合、「縦持ち」のときは「上方向」の入力として扱われるが、「横持ち」の場合は、「左方向」の入力として扱われる。
【０１５０】
［移動処理］
図４５は、上記移動処理の詳細を示すフローチャートである。図４５において、まず、ステップＳ２１で、プロセッサ８１は、１Ｐ操作データ３０２に基づき、１Ｐキャラを移動させる処理を実行する。続いて、ステップＳ２２で、プロセッサ８１は、２Ｐ操作データ３０６に基づき、２Ｐキャラを移動させる処理を実行する。なお、このステップＳ４１およびＳ４２における移動制御に関して、操作モード３１８が「合流モード」である場合は、上記図２８を用いて説明したような後衛キャラの移動範囲２１１内での移動となるように、適宜制御が行われる。以上で、移動処理は終了する。
【０１５１】
［ロックオン処理］
図４４に戻り、次に、ステップＳ１２で、プロセッサ８１は、ロックオン処理を実行する。この処理は、主に、プレイヤがロックオン操作を行った場合に行われる処理である。なお、ロックオン操作の例としては、例えば、「縦持ち」の場合はＺＲボタン６１の押下、「横持ち」の場合は第２Ｒボタン４４の押下である。
【０１５２】
図４６〜４７は、上記ロックオン処理の詳細を示すフローチャートである。図４６において、まず、ステップＳ３１で、プロセッサ８１は、１Ｐ操作データ３０２および２Ｐ操作データ３０６に基づき、いずれかのプレイヤがロックオン操作を行ったか否かを判定する。当該判定の結果、ロックオン操作が行われていない場合は（ステップＳ３１でＮＯ）、後述するステップＳ４１に処理が進められる。一方、ロックオン操作が行われていた場合は（ステップＳ３１でＹＥＳ）、ステップＳ３３に進む。
【０１５３】
次に、ステップＳ３３で、プロセッサ８１は、上記ロックオン操作を行ったプレイヤに応じて、１Ｐキャラ情報３０７または２Ｐキャラ情報３０８を参照し、当該特定したプレイヤの操作するプレイヤキャラクタ２０１が、所定のオブジェクトをロックオンしている上記ロックオン状態であるか否かを判定する。当該判定の結果、ロックオン状態ではないときは（ステップＳ３３でＮＯ）、ステップＳ３４で、プロセッサ８１は、上記特定したプレイヤにかかるカーソル（１Ｐカーソルまたは２Ｐカーソル）の近くに、ロックオンの候補となるオブジェクト（以下、ロックオン候補）が存在するか否かを判定する。その結果、ロックオン候補が存在しない場合は（ステップＳ３４でＮＯ）、後述するステップＳ４７に処理が進められる。一方、ロックオン候補が存在している場合は（ステップ３４でＹＥＳ）、ステップＳ３５で、プロセッサ８１は、ロックオン候補をロックオン対象として設定する。なお、ロックオン候補が複数存在している場合は、カーソルに最も近いものが選択される。また、プロセッサ８１は、上記特定したプレイヤについて、ロックオン状態であることを示す情報を設定する。すなわち、上記特定したプレイヤに応じて、１Ｐキャラ情報３０７あるいは２Ｐキャラ情報３０８のいずれかにロックオン状態であることを示す情報を設定する。
【０１５４】
次に、ステップＳ３６で、プロセッサ８１は、カーソルの外観を上記「ロックオンカーソル」の外観に変更する。更に、プロセッサ８１は、上記ロックオン対象毎に予め設定されている上記ロックオン基準位置にロックオンカーソルを配置する。
【０１５５】
次に、ステップＳ３７で、プロセッサ８１は、ロックオン対象に関して上述したロックオン調整可能範囲２２１の設定を行う。本実施形態では、その他のキャラクタデータ３１４に、ロックオン対象となり得るキャラクタ毎に予めロックオン調整可能範囲２２１の大きさ等が定義されている。そのため、プロセッサ８１は、その他のキャラクタデータ３１４を参照して、上記ロックオン対象に応じたロックオン調整可能範囲２２１を設定する。その後、後述するステップＳ４７に処理が進められる。
【０１５６】
一方、上記ステップＳ３３の判定の結果、ロックオン状態である場合は（ステップＳ３３でＹＥＳ）、ステップＳ３８で、プロセッサ８１は、現在のロックオン対象から所定距離内に他のロックオン候補が存在しているか否かを判定する。その結果、存在している場合は（ステップＳ３８でＹＥＳ）、ステップＳ３９で、プロセッサ８１は、ロックオン対象を切り替える処理を実行する。すなわち、当該他のロックオン候補を新たなロックオン対象として設定する処理を実行する。他のロックオン候補が複数存在している場合は、例えば、現在のロックオン対象に最も近いロックオン候補を選択すればよい。あるいは、現在のロックオン対象を中心とした所定の大きさの円状の範囲内に存在するロックオン候補について、距離が近い順に順番付けを行い、ロックオン操作が行われる度にこの順番に沿って切り替えられるようにしてもよい。ロックオン対象の切り替えが行われれば、その後、上記ステップＳ３６に処理が進められる。
【０１５７】
一方、他のロックオン候補が存在しない場合は（ステップＳ３８でＮＯ）、ステップＳ４０で、プロセッサ８１は、ロックオン状態を解除する処理を実行する。すなわち、１Ｐキャラ情報３０７あるいは２Ｐキャラ情報３０８において、ロックオン状態ではないことを示す情報を設定する。また、カーソルの外観もロックオンカーソルから、通常移動時のカーソル外観に戻される。更に、カーソルの位置も、上記のような１Ｐキャラあるいは２Ｐキャラの位置および向きに基づいて決定される位置に配置される。その後、後述するステップＳ４７に処理が進められる。
【０１５８】
一方、上記ステップＳ３１の判定の結果、ロックオン操作が行われていない場合は、図４７のステップＳ４１で、プロセッサ８１は、１Ｐキャラ情報３０７を参照し、１Ｐキャラがロックオン状態であるか否かを判定する。当該判定の結果、ロックオン状態ではない場合は（ステップＳ４１でＮＯ）、後述のステップＳ４４に処理が進められる。一方、ロックオン状態の場合は（ステップＳ４１でＹＥＳ）、ステップＳ４２で、プロセッサ８１は、１Ｐキャラとロックオン対象との距離が所定距離以上離れたか否かを判定する。その結果、所定距離以上離れた場合は（ステップＳ４２でＹＥＳ）、ステップＳ４３で、プロセッサ８１は、１Ｐキャラのロックオン状態を解除するための処理を実行する。具体的には、１Ｐキャラ情報３０７について、ロックオン状態ではないことを示す情報を設定する。また、ロックオンカーソルを消去し、上記同様に１Ｐカーソルの配置位置を算出し、その位置に１Ｐカーソルを移動させる処理も実行する。一方、所定距離以上離れていない場合は（ステップＳ４２でＮＯ）。上記ステップＳ４３の処理は行わず、次のステップＳ４４に処理が進められる。つまり、１Ｐキャラのロックオン状態は維持されたままとなる。
【０１５９】
次に、ステップＳ４４で、プロセッサ８１は、２Ｐキャラ情報３０８を参照し、２Ｐキャラがロックオン状態であるか否かを判定する。当該判定の結果、ロックオン状態ではない場合は（ステップＳ４４でＮＯ）、後述のステップＳ４７に処理が進められる。一方、ロックオン状態の場合は（ステップＳ４４でＹＥＳ）、ステップＳ４５で、プロセッサ８
１は、２Ｐキャラとロックオン対象との距離が所定距離以上離れたか否かを判定する。その結果、所定距離以上離れた場合は（ステップＳ４５でＹＥＳ）、ステップＳ４６で、プロセッサ８１は、上記１Ｐキャラの場合と同様に、２Ｐキャラのロックオン状態を解除するための処理を実行する。具体的には、２Ｐキャラ情報３０８について、ロックオン状態ではないことを示す情報を設定する。また、ロックオンカーソルを消去し、２Ｐカーソルの配置位置を算出して、その位置に移動させる処理も実行する。一方、所定距離以上離れていない場合は（ステップＳ４５でＮＯ）。上記ステップＳ４６の処理は行われずに、２Ｐキャラのロックオン状態が維持される。
【０１６０】
次に、ステップＳ４７で、プロセッサ８１は、上述したようなロックオンカーソルが表示されているか否かを判定する。すなわち、いずれかのプレイヤが、所定のオブジェクトをロックオンしている状態であるか否かを判定する。当該判定の結果、ロックオンカーソルが表示されている状態の場合は（ステップＳ４７でＹＥＳ）、ステップＳ４８で、プロセッサ８１は、ロックオン対象の位置に合わせてロックオンカーソルを適宜移動させる処理を実行する。つまり、ロックオンカーソルをロックオン対象に追従移動させる処理を実行する。一方、ロックオンカーソルがない場合は（ステップＳ４７でＮＯ）、当該ステップＳ４８の処理はスキップされ、次の処理に進む。
【０１６１】
次に、ステップＳ４９で、プロセッサ８１は、上述したような慣性センサを用いたカーソル位置の微調整に関連して、コントローラの「基準姿勢」を再設定する処理を実行する。具体的には、プロセッサ８１は、ロックオン基準位置からのロックオンカーソルの移動量を初期化し、上記ロックオン操作が行われたコントローラの現在の姿勢を「基準姿勢」として再設定する。つまり、ロックオン操作が行われることで、上記「基準姿勢」の再設定が行われることになる。以上で、ロックオン処理は終了する。
【０１６２】
［カーソル制御処理］
図４４に戻り、ロックオン処理の次に、ステップＳ１３で、プロセッサ８１は、カーソル制御処理を実行する。この処理では、プレイヤキャラクタの位置に基づいてカーソルの位置を決める処理と、この位置から、上記慣性センサを用いて更にその位置を微調整するための処理が実行される。
【０１６３】
図４８は、上記カーソル制御処理の詳細を示すフローチャートである。まず、ステップＳ５１で、プロセッサ８１は、移動後の１Ｐキャラの位置および向き（進行方向）に基づいて、１Ｐカーソルの配置位置を算出する。そして、当該算出した位置に１Ｐカーソルを移動させる。この位置は、移動後の１Ｐキャラの位置から、その向きに沿った方向に所定量変位させた位置である。また、後述するカーソル位置の微調整の処理において、「基準位置」となる位置でもある。
【０１６４】
次に、ステップＳ５２で、プロセッサ８１は、１Ｐキャラの場合と同様に、移動後の２Ｐキャラの位置および向き（進行方向）に基づいて、２Ｐカーソルの配置位置を算出する。この位置も、次に説明するカーソル位置の微調整の処理において「基準位置」となる位置である。そして、当該算出した位置に２Ｐカーソルを移動させる。
【０１６５】
次に、上記慣性センサを利用したカーソル位置の微調整に関する処理が実行される。具体的には、まず、ステップＳ５３で、プロセッサ８１は、１Ｐ操作データ３０２から慣性センサデータ３０５を取得する。次に、ステップＳ５４で１Ｐキャラ情報３０７を参照し、１Ｐキャラがロックオン状態であるか否かを判定する。その結果、ロックオン状態ではない場合は（ステップＳ５４でＮＯ）、ステップＳ５５で、プロセッサ８１は、慣性センサに基づいて１Ｐカーソルを移動させる際の速度として、第１の移動速度を設定する。一方、ロックオン状態の場合（ステップＳ５４でＹＥＳ）、ステップＳ５６で、プロセッサ
８１は、慣性センサに基づいて１Ｐカーソルを移動させる際の速度として、第２の移動速度を設定する。第１の移動速度は、ロックオン状態ではない場合における移動速度であり、第２の移動速度は、ロックオン状態のときの移動速度である。上述したように、ロックオン状態のときのほうがより細かい微調整が可能なように、同じ傾き具合におけるカーソルの移動速度として、より遅い移動速度を設定するものである。例えば、第２の移動速度を第１の移動速度の２５％の速度として設定する、等である。
【０１６６】
なお、他の実施形態では、移動速度ではなく、例えば移動量や移動距離として、上記と同趣旨の内容を算出および設定してもよい。
【０１６７】
次に、ステップＳ５７で、プロセッサ８１は、慣性センサデータ３０５、および、上記設定された第１の移動速度または第２の移動速度に基づいて、１Ｐカーソルの位置を移動させる処理を実行する。本実施形態では、まず、慣性センサデータ３０５に含まれる角速度データから現在のコントローラの姿勢を算出する。更に、所定のタイミングで設定された所定の基準姿勢と、コントローラの現在の姿勢との差分を算出する。すなわち、当該基準姿勢からの変化量を算出する。そして、上記設定された移動速度と当該算出した差分とに基づいて、上述した「基準位置」から１Ｐカーソルを移動させる。なお、他の実施形態では、基準姿勢を用いず、毎フレームの角速度を算出し、この角速度に基づいて１Ｐカーソルを移動させるという制御を行っても良い。この場合は、例えば、毎フレームの角速度に基づいて、前フレームにおける１Ｐカーソルの位置から移動させていく制御を行えばよい。
【０１６８】
なお、１Ｐキャラがロックオン状態である場合は、１Ｐカーソルの位置が上述したようなロックオン調整可能範囲２２１（上記図３１参照）の外には出ないように移動制御が行われる（ロックオン調整可能範囲２２１は、後述するロックオン処理において設定される）。また、ロックオン状態ではない場合には、上記の微調整による移動の結果、１Ｐカーソルの位置がお供キャラクタ２０２を投げて届く位置である否かに応じて、１Ｐカーソルの色を変更する処理も実行される。
【０１６９】
ステップＳ５７の処理が終われば、次に、上記のような慣性センサによるカーソル移動制御と同様の処理を２Ｐカーソルについて行うための処理が実行される。まず、ステップＳ５８で、プロセッサ８１は、２Ｐ操作データ３０６から慣性センサデータ３０５を取得する。次に、ステップＳ５９で２Ｐキャラ情報３０８を参照し、２Ｐキャラがロックオン状態であるか否かを判定する。その結果、ロックオン状態であれば（ステップＳ５９でＹＥＳ）、ステップＳ６１で上記第２の移動速度が設定され、ロックオン状態ではない場合は（ステップＳ５９でＮＯ）、ステップＳ６０で上記第１の移動速度が設定される。そして、ステップＳ６２で、プロセッサ８１は、１Ｐカーソルの場合と同様に、慣性センサデータ３０５および上記設定された移動速度に基づいて２Ｐカーソルの位置を移動させる処理をする（ロックオン調整可能範囲２２１に関する移動制御と、カーソル色の変更についても１Ｐカーソルの場合と同様に処理される）。以上で、カーソル制御処理は終了する。
【０１７０】
［操作対象切り替え処理］
図４４に戻り、カーソル制御処理の次に、ステップＳ１４で、操作対象切り替え処理が実行される。この処理では、上記キャラ切り替えメニュー２０７を用いた操作対象の切り替えを制御するための処理が実行される。
【０１７１】
図４９は、操作対象切り替え処理の詳細を示すフローチャートである。まず、ステップＳ７１で、プロセッサ８１は、１Ｐ用切り替えメニュー表示フラグ３２１がオンに設定されているか否かを判定する。すなわち、現在、第１プレイヤの操作に基づくキャラ切り替えメニュー２０７が表示されている状態であるか否かを判定する。当該判定の結果、オン
ではない場合は（ステップＳ７１でＮＯ）、キャラ切り替えメニュー２０７は表示されていない状態である。この場合は、ステップＳ７５で、プロセッサ８１は、上記キャラ切り替えメニュー２０７を表示するための操作が行われたか否かを１Ｐ操作データ３０２に基づいて判定する。その結果、当該操作が行われている場合は（ステップＳ７５でＹＥＳ）、ステップＳ７６で、プロセッサ８１は、１Ｐ用切り替えメニュー表示フラグ３２１をオンに設定する。一方、当該操作が行われていない場合は（ステップＳ７５でＮＯ）、上記ステップＳ７６の処理はスキップされて、後述のステップＳ７７に処理が進められる。
【０１７２】
一方、上記ステップＳ７１の判定の結果、１Ｐ用切り替えメニュー表示フラグ３２１がオンに設定されている場合は（ステップＳ７１でＹＥＳ）、現在、第１プレイヤの操作に基づくキャラ切り替えメニュー２０７が表示されている状態であり、その操作中の状態である。この場合は、ステップＳ７２で、プロセッサ８１は、第１プレイヤによる操作対象の切り替え指示操作が完了したか否かを、１Ｐ操作データ３０２に基づいて判定する。当該判定の結果、まだ完了していない場合は（ステップＳ７２でＮＯ）、後述のステップＳ７７に処理が進められる。一方、切り替え指示操作が完了していた場合は（ステップＳ７２でＹＥＳ）、ステップＳ７３で、プロセッサ８１は、１Ｐ操作データ３０２に基づき、第１プレイヤの操作対象キャラクタを変更する。具体的には、操作内容に基づいて、１Ｐキャラ情報３０７における、現在の操作対象を示すプレイヤキャラクタＩＤを適宜更新する処理が実行される。その後、ステップＳ７４で、プロセッサ８１は、１Ｐ用切り替えメニュー表示フラグ３２１にオフを設定する。つまり、第１プレイヤにかかるキャラ切り替えメニュー２０７を画面から消去するための処理が実行される。
【０１７３】
次に、ステップＳ７７〜Ｓ８２で、上記ステップＳ７１〜Ｓ７６と同様の処理が、第２のプレイヤを対象として実行される。まず、ステップＳ７７で、プロセッサ８１は、２Ｐ用切り替えメニュー表示フラグ３２２がオンに設定されているか否かを判定する。その結果、オンではない場合は（ステップＳ７７でＮＯ）、ステップＳ８１で、プロセッサ８１は、上記キャラ切り替えメニュー２０７を表示するための操作が行われたか否かを２Ｐ操作データ３０６に基づいて判定する。その結果、当該操作が行われている場合は（ステップＳ８１でＹＥＳ）、ステップＳ８２で、プロセッサ８１は、２Ｐ用切り替えメニュー表示フラグ３２２がオンに設定する。一方、当該操作が行われていない場合は（ステップＳ８１でＮＯ）、上記ステップＳ８２の処理はスキップされて、後述のステップＳ８３に処理が進められる。
【０１７４】
一方、上記ステップＳ７７の判定の結果、２Ｐ用切り替えメニュー表示フラグ３２２がオンに設定されている場合は（ステップＳ７７でＹＥＳ）、ステップＳ７８で、プロセッサ８１は、第２プレイヤによる操作対象の切り替え指示操作が完了したか否かを２Ｐ操作データ３０６に基づいて判定する。当該判定の結果、まだ完了していない場合は（ステップＳ７２でＮＯ）、後述のステップＳ８３に処理が進められる。一方、完了していた場合は（ステップＳ７８でＹＥＳ）、ステップＳ７９で、プロセッサ８１は、２Ｐ操作データ３０６に基づき、第２プレイヤの操作対象キャラクタを変更する。具体的には、操作内容に基づいて、２Ｐキャラ情報３０７における、現在の操作対象を示すプレイヤキャラクタＩＤを適宜更新する処理が実行される。その後、ステップＳ８０で、プロセッサ８１は、２Ｐ用切り替えメニュー表示フラグ３２２にオフを設定する。
【０１７５】
次に、ステップＳ８３で、上記ステップＳ７１〜Ｓ８２の処理の結果、いずれかのプレイヤの操作対象の切り替えが発生したか否かが判定される。すなわち、いずれかのプレイヤにおいて、操作対象の切り替え操作が完了したか否かが判定される。当該判定の結果、いずれかのプレイヤにおいても操作対象の切り替えが発生していない場合は（ステップＳ８３でＮＯ）、当該操作対象切り替え処理を終了する。一方、操作対象の切り替えが発生していた場合は（ステップＳ８３でＹＥＳ）、ステップＳ８４で、プロセッサ８１は、操
作モード３１８が「合流モード」か否かを判定する。当該判定の結果、「合流モード」の場合は（ステップＳ８４でＹＥＳ）、ステップＳ８５で、プロセッサ８１は、切り替え後の操作対象が、それまで操作対象であった隊列とは別の隊列に属しているプレイヤキャラクタ２０１であるか否かを判定する。つまり、１Ｐキャラと２Ｐキャラが合流している状態で、操作対象ではないもう一体のプレイヤキャラクタ２０１を別隊列としている場合に操作対象の切り替えが行われたか否かを判定するものである。当該判定の結果、別隊列のプレイヤキャラクタ２０１への切り替えであるときは（ステップＳ８５でＹＥＳ）、ステップＳ８６で、プロセッサ８１は、操作モードを合流モードから別隊列モードに切り替えるため、モード変更指示データ３２３に「別隊列モード変更指示」を設定する。一方、上記判定の結果、別隊列のプレイヤキャラクタ２０１への切り替えではなかった場合は（ステップＳ８５でＮＯ）、ステップＳ８６の処理は行われず、処理が先に進められる。
【０１７６】
一方、上記ステップＳ８４の判定の結果、操作モード３１８が「合流モード」ではない場合は（ステップＳ８４でＮＯ）、ステップＳ８７で、プロセッサ８１は、切り替え後の操作対象が、別隊列の後衛キャラであるか否かを判定する。つまり、別隊列でプレイしている状態（分割画面）において、例えば第２プレイヤが２Ｐキャラを１Ｐキャラの隊列の後衛キャラに切り替える操作を行ったか否かを判定するものである。当該判定の結果、後衛キャラへの切り替えである場合は（ステップＳ８７でＹＥＳ）、ステップＳ８８で、プロセッサ８１は、操作モードを別隊列モードから合流モードに切り替えるため、モード変更指示データ３２３に「合流モード変更指示」を設定する。一方、後衛キャラへの切り替えではない場合は（ステップＳ８７でＮＯ）、上記ステップＳ８８の処理は行われず、処理が次に進められる。
【０１７７】
次に、ステップＳ８９で、プロセッサ８１は、上述した慣性センサを用いた微調整操作に関連する処理として、上記基準位置からのカーソルの移動量を初期化し、上記切り替え操作が行われたコントローラの現在の姿勢を「基準姿勢」として設定する処理を実行する。移動操作以外の操作が行われるタイミングで、コントローラの姿勢を一旦リセットして、上記カーソルの微調整操作の操作性を高めるための処理である。以上で、操作対象切り替え処理が終了する。
【０１７８】
［投げ処理］
図４４に戻り、操作対象切り替え処理の次に、ステップＳ１５で、プロセッサ８１は、投げ処理を実行する。この処理では、お供キャラクタ２０２等を「投げる」操作、および、投げる対象を選択するための操作に関する処理が実行される。ここで、「投げる」操作としては、例えば、上記「縦持ち」の場合はＡボタン５３の押下、「横持ち」の場合はボタン３４の押下である。また、投げる対象を選択する操作については、上述したように、表示される投げ対象選択ＵＩ２０４によって異なり、原則的には、「縦持ち」の場合は、第１Ｌボタン３８または第１Ｒボタン６０のいずれかのボタンの押下であり、「横持ち」の場合は、第２Ｌボタン４３の押下となる。但し、合流画面において、操作部がより少ない方のコントローラに応じたレイアウトの投げ対象選択ＵＩ２０４が共用されている場合は、「縦持ち」の場合でも、第１Ｌボタン３８のみが選択操作に割り当てられている。なお、以下の説明では、投げる操作によって投げられる各種オブジェクトのことを「投げ対象」と呼ぶ。
【０１７９】
図５１は、上記投げ処理の詳細を示すフローチャートである。まず、ステップＳ１０１で、プロセッサ８１は、投げ対象を選択するための操作がいずれかのプレイヤによって行われたか否かを１Ｐ操作データ３０２および２Ｐ操作データ３０６に基づいて判定する。その結果、投げ対象を選択するための操作が行われていた場合は（ステップＳ１０１でＹＥＳ）、ステップＳ１０２で、その操作内容に基づいて、１Ｐ用選択ＵＩデータ３１９、あるいは、２Ｐ用選択ＵＩデータ３２０の現在枠データ３６２の内容を変更する。また、
これに伴い、候補データ３６３の内容も適宜更新する。一方、投げ対象を選択するための操作が行われていない場合は（ステップＳ１０１でＮＯ）、上記ステップＳ１０２の処理はスキップされ、処理が次に進められる。
【０１８０】
次に、ステップＳ１０３で、プロセッサ８１は、「投げる」操作がいずれかのプレイヤによって行われたか否かを１Ｐ操作データ３０２および２Ｐ操作データ３０６に基づいて判定する。その結果、「投げる」操作が行われていない場合は（ステップＳ１０３でＮＯ）、棟が投げ処理を終了する。一方、「投げる」操作が行われた場合は（ステップＳ１０３でＹＥＳ）、ステップＳ１０４で、プロセッサ８１は、「投げる」操作を行ったプレイヤにかかる、現在選択中の投げ対象を特定する。例えば、操作モードが別隊列モードのときは、操作を行ったプレイヤにかかる投げ対象選択ＵＩの現在枠に設定されているお供キャラクタあるいは後衛キャラが「投げ対象」となる。また、合流モードの場合は、投げ対象選択ＵＩ２０４は１つだけ表示され、第１プレイヤおよび第２プレイヤで共用となっている。そのため、いずれかのプレイヤの選択操作によって現在枠２３１（第１レイアウトの選択ＵＩ）または現在枠２３４（第２レイアウトの選択ＵＩの場合）に設定されているお供キャラクタあるいは後衛キャラが「投げ対象」となる。
【０１８１】
次に、ステップＳ１０５で、プロセッサ８１は、「投げ対象」が上記後衛キャラであるか否かを判定する。後衛キャラである場合は（ステップＳ１０５でＹＥＳ）、ステップＳ１０６で、プロセッサ８１は、「投げる」操作を行った１Ｐキャラあるいは２Ｐキャラに、後衛キャラを投げる動作を行わせる。更に、「投げる」操作を行ったプレイヤキャラクタに対応するカーソル（１Ｐカーソルまたは２Ｐカーソル）の位置に当該後衛キャラを（例えば放物線を描くようにして）移動させる。
【０１８２】
次に、ステップＳ１０７で、プロセッサ８１は、投げられた後衛キャラが別隊列のリーダーとなるように、隊列データの内容を適宜更新する。
【０１８３】
次に、ステップＳ１０８で、プロセッサ８１は、投げられた後衛キャラが、いずれかのプレイヤの操作対象となっているか否かを判定する。その結果、操作対象であった場合は（ステップＳ１０８でＹＥＳ）、１Ｐキャラと２Ｐキャラが同じ隊列にいる状態で、後衛キャラを「投げる」ことにより隊列の分割が発生する状況であると考えられる。そのため、この場合は、合流モードから別隊列モードに操作モードを切り替えるため、ステップＳ１０９で、プロセッサ８１は、モード変更指示データ３２３に、「別隊列モード変更指示」を設定する。一方、操作対象ではない場合は（ステップＳ１０８でＮＯ）、ステップＳ１０９の処理はスキップされる。なお、この場合の投げられた後衛キャラについては、投げた先で待機させる処理が実行される。
【０１８４】
一方、上記ステップＳ１０５の判定の結果、「投げ対象」が後衛キャラではない場合は（ステップＳ１０５でＮＯ）、お供キャラクタ２０２を投げることになる。この場合は、ステップＳ１１０で、プロセッサ８１は、「投げる」操作を行った１Ｐキャラあるいは２Ｐキャラに、それぞれのカーソル（１Ｐカーソルまたは２Ｐカーソル）の位置に向けて「投げ対象」として設定されているお供キャラクタを投げる動作を行わせる。ここで、隊列内には複数のお供キャラクタ２０２が存在する場合もある。この場合は、隊列内で、「投げ対象」として示されるお供キャラクタと同種類のお供キャラクタ２０２のうちのいずれか１体を選択して投げる動作を行わせる。選択手法はどのような手法でもよいが、例えば、一番近くのお供キャラクタ２０２を選択すること等が挙げられる。そして、プロセッサ８１は、投げ対象のお供キャラクタ２０２を１Ｐカーソルまたは２Ｐカーソルの位置まで移動開始させる。
【０１８５】
なお、プロセッサ８１は、投げられたお供キャラクタ２０２について、その後、お供キ
ャラクタマスタデータ３１２の種別ＩＤ３３１および行動定義データ３３３に基づいて、その移動先において所定の行動を実行させる。例えば、敵キャラクタを攻撃させる等である。また、その行動内容に基づき、現在位置データ３４４および現在状態データ３４５の内容を適宜更新する処理も実行される。以上で、投げ処理は終了する。
【０１８６】
［モード設定処理］
図４４に戻り、投げ処理の次に、ステップＳ１６で、プロセッサ８１は、モード設定処理を実行する。この処理では、操作モードを変更するための処理が実行される。図５２は、当該モード設定処理の詳細を示す図である。まず、ステップＳ１２１で、プロセッサ８１は、操作モード３１８を参照して、現在の操作モードが「合流モード」であるか否かを判定する。当該判定の結果、「合流モード」ではない、すなわち、「別隊列モード」の場合は（ステップＳ１２１でＮＯ）、ステップＳ１２２で、プロセッサ８１は、上記のような「合流操作」が行われたか否か、あるいは、モード変更指示データ３２３に「合流モード変更指示」が設定されているか否か、を判定する。当該判定の結果、合流操作も行われておらず、かつ、「合流モード変更指示」も設定されていない場合は（ステップＳ１２２でＮＯ）、後述のステップＳ１２７に処理が進められる。一方、「合流操作」が行われている場合、または、「合流モード変更指示」が設定されている場合は（ステップＳ１２２でＹＥＳ）、ステップＳ１２３で、プロセッサ８１は、合流処理を実行する。
【０１８７】
図５３は、上記合流処理の詳細を示すフローチャートである。まず、ステップＳ１３１で、プロセッサ８１は、合流操作が行われたか否かを判定する。すなわち、当該合流処理が、合流操作によって実行されているものか、「合流モード変更指示」によって実行されているものかを判定する。当該判定の結果、合流操作が行われていた場合は（ステップＳ１３１でＹＥＳ）、ステップＳ１３２で、プロセッサ８１は、１Ｐ操作データ３０２および２Ｐ操作データ３０６を参照し、その操作内容に基づいて、１Ｐキャラまたは２Ｐキャラのいずれか一方をリーダーキャラとして決定する処理を実行する。更に、ステップＳ１３２で、リーダーキャラとして決定されなかったほうを後衛キャラとして設定する処理が実行される。例えば、移動していない１Ｐキャラに対して２Ｐキャラが移動してくることによって接触した場合（つまり、１Ｐキャラに２Ｐキャラがぶつかってくるようにして接触した場合）は、１Ｐキャラをリーダーキャラとして決定する、つまり、１Ｐキャラの隊列に２Ｐキャラを加えるような処理を行うことになる。具体的には、決定されたリーダーキャラが属する隊列に対応する隊列データ（ここでは、第１隊列データ３１５であるとする）のリーダーキャラ情報に１ＰキャラのプレイヤキャラクタＩＤを設定し、第１後衛キャラ情報３５２に、２ＰキャラのプレイヤキャラクタＩＤを設定する処理が実行される。つまり、ステップＳ１３２およびＳ１３３で、合流操作を反映した隊列の再設定処理が実行されることになる。
【０１８８】
一方、上記ステップＳ１３１の判定の結果、合流操作が行われていない場合、すなわち、「合流モード変更指示」によって当該合流処理が実行されている場合は（ステップＳ１３１でＮＯ）、上述の操作キャラクタの切り替えの結果、別隊列モードから合流モードに切り替わる場合となる。この場合は、既にリーダーキャラ、後衛キャラは設定済みであるため、上記ステップＳ１３２、Ｓ１３３の処理はスキップされて、次の処理に進められる。
【０１８９】
次に、ステップＳ１３４で、プロセッサ８１は、上記画面切り替え状態データ３２４に、「合流画面切り替え中」を示す情報を設定する。以上で、合流処理は終了する
【０１９０】
図５２に戻り、次に、ステップＳ１２４で、プロセッサ８１は、操作モード３１８に「合流モード」を設定する。その後、モード設定処理は終了する。
【０１９１】
一方、上記ステップＳ１２１の判定の結果、現在の操作モードが「合流モード」の場合は（ステップＳ１２１でＹＥＳ）、ステップＳ１２５で、プロセッサ８１は、上記のような「解散操作」が行われたか否か、あるいは、モード変更指示データ３２３に「別隊列モード変更指示」が設定されているか否か、を判定する。当該判定の結果、解散操作も行われておらず、かつ、「別隊列モード変更指示」も設定されていない場合は（ステップＳ１２５でＮＯ）、上記ステップＳ１２４に処理が進められる。一方、「解散操作」が行われている場合、または、「別隊列モード変更指示」が設定されている場合は（ステップＳ１２５でＹＥＳ）、ステップＳ１２６で、プロセッサ８１は、分割処理を実行する。
【０１９２】
図５４は、上記分割処理の詳細を示すフローチャートである。まず、ステップＳ１４１で、プロセッサ８１は、上記のような解散操作が行われたか否かを判定する。すなわち、当該分割処理が、解散操作によって実行されているものか、「別隊列モード変更指示」によって実行されているものかを判定する。ここで、解散操作の例としては、例えば、コントローラを「縦持ち」で操作している場合は、Ｂボタン５４を所定時間内に連続して３回押す操作であり、「横持ち」で操作している場合は、アナログスティック３２を下方向に連続して３回入れる操作、等である。当該判定の結果、解散操作が行われていた場合は（ステップＳ１４１でＹＥＳ）、ステップＳ１４２で、プロセッサ８１は、後衛キャラを操作しているプレイヤによる解散操作を行ったか否かを判定する。当該判定の結果、後衛キャラを操作しているプレイヤによる解散操作ではない場合は（ステップＳ１４２でＮＯ）、リーダーキャラを操作しているプレイヤが解散操作を行ったことになる。この場合は、ステップＳ１４３で、プロセッサ８１は、解散操作が行われた隊列を解散する処理を実行する。例えば、リーダーキャラが１Ｐキャラであり、第１プレイヤが解散操作を行った場合を考える。この場合は、第１プレイヤの操作対象となっている隊列データについて、お供キャラクタ情報３５４の内容をクリアする処理が実行される。また、２Ｐキャラ（後衛）が同じ隊列にいた場合は、第１プレイヤの操作対象となっている隊列に対応する隊列データから２Ｐキャラ（後衛）を外し、当該２Ｐキャラを別隊列の隊列データのリーダーキャラとして設定する処理も行われる。また、２Ｐキャラ以外の後衛キャラが隊列内にいた場合は、それを第１後衛キャラ情報３５２として再設定する処理も実行される。なお、２Ｐキャラが同隊列内にいなければ、お供キャラクタ情報３５４の内容をクリアする処理だけが実行されることになる。その他、隊列を解散するための各種処理も適宜実行される。その後、後述のステップＳ１４５に処理は進められる。
【０１９３】
一方、後衛キャラを操作しているプレイヤによる解散操作であった場合は（ステップＳ１４２でＹＥＳ）、ステップＳ１４４で、プロセッサ８１は、解散操作を行ったプレイヤの操作対象となっている後衛キャラを別隊列のリーダーとして設定するための処理を実行する。例えば、第１プレイヤの操作対象の隊列に第１隊列データ３１５が対応している場合は、第１隊列データ３１５の第１後衛キャラ情報３５２の内容を、第２隊列データ３１６のリーダーキャラ情報３５１として設定する処理が実行される。また、他の後衛キャラが隊列内にいた場合は、それを第１後衛キャラ情報３５２として再設定する処理も実行される。また。他の後衛キャラが隊列内にいない場合は、第１隊列データ３１５の第１後衛キャラ情報３５２の内容をクリアする処理が実行される。
【０１９４】
次に、ステップＳ１４５で、プロセッサ８１は、上記画面切り替え状態データ３２４に、「分割画面切り替え中」を示す情報を設定する。以上で、分割処理は終了する。
【０１９５】
図５２に戻り、次に、ステップＳ１２７で、プロセッサ８１は、操作モード３１８に「別隊列モード」を設定する。以上で、モード設定処理は終了する。
【０１９６】
［その他オブジェクトの処理］
図４４に戻り、モード設定処理の次に、ステップＳ１７で、プロセッサ８１は、プレイ
ヤキャラクタ２０１以外の各種オブジェクトに関する処理を実行する。例えば、敵キャラクタの移動制御等が実行される。
【０１９７】
［仮想カメラ設定処理］
次に、ステップＳ１８で、プロセッサ８１は、仮想カメラ設定処理を実行する。この処理では、仮想ゲーム空間を撮像する仮想カメラの各種パラメータを設定する処理が行われる。図５５は、仮想カメラ設定処理の詳細を示すフローチャートである。図５５において、まず、ステップＳ１６１で、プロセッサ８１は、画面切り替え状態データ３２４を参照して、「合流画面切り替え中」が設定されているか否かを判定する。当該判定の結果、「合流画面切り替え中」であれば（ステップＳ１６１でＹＥＳ）、「分割画面」から「合流画面」へ数フレームかけて切り替えている状態であると考えられる。この場合は、ステップＳ１６２で、プロセッサ８１は、「分割画面」から「合流画面」へと切り替え中のときの仮想カメラの各種パラメータを設定する。例えば、「分割画面」から「合流画面」に切り替わるとき、１Ｐ表示領域の横幅を徐々に大きくして行くと共に、２Ｐ表示領域が画面外に押し出されるようにして、その表示領域が小さくなっていくような演出が数フレームかけて行われるとする。この場合は、例えば、１Ｐキャラに注視点を設定したまま、１Ｐ用の仮想カメラの表示領域を徐々に広げていくような設定等が行われる。また、２Ｐ用の仮想カメラの表示領域を狭めるような設定等も行われる。その他、仮想カメラの位置等の各種パラメータも適宜設定される。
【０１９８】
次に、ステップＳ１６３で、プロセッサ８１は、「分割画面」から「合流画面」への切り替えが完了したか否かを判定する。当該判定の結果、完了した場合は（ステップＳ１６３でＹＥＳ）、ステップＳ１６７で、プロセッサ８１は、画面切り替え状態データ３２４をクリアする。その後、ステップＳ１６８へ進む。一方、完了していない場合は（ステップＳ１６３でＮＯ）、ステップＳ１６７の処理は行わずに、ステップＳ１６８へ進む。
【０１９９】
一方、上記ステップＳ１６１の判定の結果、「合流画面切り替え中」が設定されていない場合は（ステップＳ１６１でＮＯ）、次に、ステップＳ１６４で、プロセッサ８１は、「分割画面切り替え中」が設定されているか否かを判定する。当該判定の結果、「分割画面切り替え中」が設定されている場合は（ステップＳ１６４でＹＥＳ）、「合流画面」から「分割画面」へと数フレームかけて切り替えている状態であると考えられる。この場合は、ステップＳ１６５で、プロセッサ８１は、「合流画面」から「分割画面」に切り替え中のときの仮想カメラの各種パラメータを設定する。例えば、「合成画面」から「分割画面」に切り替えるとき、上述のように２Ｐ表示領域が画面右側から左に向けて、１Ｐ表示領域を押し込むようにして入り込んでくる演出が行われる。この場合は、例えば、最終的に画面の左半分を占有する大きさとなるように、１Ｐ用の仮想カメラの表示領域を徐々に狭めていくような設定等が行われる。また、２Ｐ用の仮想カメラについても、最終的に画面の右半分を占有する大きさとなるように、その表示領域を徐々に大きくしていくような設定等が行われる。
【０２００】
次に、ステップＳ１６６で、プロセッサ８１は、「合流画面」から「分割画面」への切り替えが完了したか否かを判定する。当該判定の結果、完了した場合は（ステップＳ１６６でＹＥＳ）、上記ステップＳ１６７で、プロセッサ８１は、画面切り替え状態データ３２４をクリアする。その後、仮想カメラ設定処理を終了する。一方、完了していない場合は（ステップＳ１６６でＮＯ）、ステップＳ１６７の処理は行わずに、ステップＳ１６８へ進む。
【０２０１】
一方、上記ステップＳ１６４の判定の結果、分割画面切り替え中でもない場合は（ステップＳ１６４でＮＯ）、切り替えが終わった後の上記「合流画面」または「分割画面」のいずれかの状態であると考えられる。この場合は、ステップＳ１６９で、プロセッサ８１
は、そのときの操作モード３１８に応じた仮想カメラの設定を行う。つまり、「合流画面」であるか「分割画面」であるかに応じて、それぞれの画面に適した仮想カメラの設定を行う。例えば、「合流画面」の場合は、画面の全域を用いるように１Ｐ用仮想カメラの表示領域の大きさが設定され、「分割画面」の場合は、表示領域が「合流画面」時の半分の大きさとなるように、１Ｐ用仮想カメラの表示領域の大きさ、および、２Ｐ用仮想カメラの表示領域の大きさのそれぞれが設定される。
【０２０２】
次に、ステップＳ１６８で、プロセッサ８１は、仮想カメラの各種パラメータの設定処理を適宜実行する。例えば、プロセッサ８１は、各プレイヤキャラクタ２０１の移動に追従して、各プレイヤキャラクタに対応する仮想カメラが移動するように、毎フレームにおける仮想カメラの位置、姿勢、画角等を設定する。また、その他、プレイヤが仮想カメラを回転させる操作や、ズームイン／アウトさせる操作を行っていた場合は、その操作内容に応じて仮想カメラの撮像方向や画角等を適宜設定する処理も実行される。その後、仮想カメラ設定処理は終了する。
【０２０３】
［ＵＩ配置処理］
図４４に戻り、仮想カメラ設定処理が終われば、次に、ステップＳ１９で、プロセッサ８１は、ＵＩ配置処理を実行する。この処理は、上述した投げ対象選択ＵＩ２０４および操作キャラ情報画像２０５がゲーム画像に表示されるように、これらに対応するオブジェクトを仮想ゲーム空間内の適切な位置に配置する処理等が実行される。この適切な位置とは、ゲーム画像として画面に表示された場合に、投げ対象選択ＵＩ２０４および操作キャラ情報画像２０５が上記図８や図１５等で示したような位置に表示されるような、仮想ゲーム空間内における位置である。また、その他、必要に応じて、上記と同趣旨でキャラ切り替えメニュー２０７に対応するオブジェクトを仮想ゲーム空間内に配置する処理も実行される。
【０２０４】
図５６は、ＵＩ配置処理の詳細を示すフローチャートである。まず、ステップＳ１８１で、プロセッサ８１は、操作モード３１８を参照して、現在の操作モードが「合流モード」であるか否かを判定する。その結果、「合流モード」である場合は（ステップＳ１８１でＹＥＳ）、ステップＳ１８２で、プロセッサ８１は、「合流モード」における投げ対象選択ＵＩ２０４を仮想ゲーム空間内に配置する。上記のように、「合流モード」の場合は、操作部の数が少ないほうのコントローラに応じた投げ対象選択ＵＩ２０４が用いられる。そのため、この処理では、用いられているコントローラの種類に応じて、上記「第１レイアウトの選択ＵＩ」、または「第２レイアウトの選択ＵＩ」のいずれかが選択され、そのＵＩに対応するオブジェクトが仮想ゲーム空間内の適切な位置に配置される。また、ＵＩの表示内容については、現在枠データ３６２および候補データ３６３の内容に基づいて適宜設定される。
【０２０５】
一方、上記ステップＳ１８１の判定の結果、「合流モード」ではない場合、すなわち、「別隊列モード」の場合は（ステップＳ１８１でＮＯ）、ステップＳ１８３で、プロセッサ８１は、「別隊列モード」における投げ対象選択ＵＩ２０４を仮想ゲーム空間内に配置する。この場合は、「分割画面」であるため、各プレイヤの用いるコントローラに応じたレイアウトの投げ対象選択ＵＩ２０４が、それぞれ仮想ゲーム空間内の適切な位置に配置される。
【０２０６】
次に、ステップＳ１８４で、プロセッサ８１は、１Ｐ用切り替えメニュー表示フラグ３２１がオンであるか否かを判定する。オンの場合は（ステップＳ１８４でＹＥＳ）、ステップＳ１８５で、プロセッサ８１は、第１プレイヤの操作のためのキャラ切り替えメニュー２０７を仮想空間内の適切な位置に配置する。一方、オフの場合は（ステップＳ１８４でＮＯ）、ステップＳ１８６で、プロセッサ８１は、第１プレイヤの操作のためのキャラ
切り替えメニュー２０７が仮想ゲーム空間内に配置されていれば、それを消去する処理を実行する。なお、配置されていなければ、特に何も行われない。
【０２０７】
次に、ステップＳ１８７で、プロセッサ８１は、２Ｐ用切り替えメニュー表示フラグ３２２がオンであるか否かを判定する。オンの場合は（ステップＳ１８７でＹＥＳ）、ステップＳ１８８で、プロセッサ８１は、第２プレイヤの操作のためのキャラ切り替えメニュー２０７を仮想空間内の適切な位置に配置する。また、その表示内容についても、現在枠データ３６２および候補データ３６３の内容に基づいて適宜設定する。一方、オフの場合は（ステップＳ１８７でＮＯ）、ステップＳ１８９で、プロセッサ８１は、第２プレイヤの操作のためのキャラ切り替えメニュー２０７が仮想ゲーム空間内に配置されていれば、それを消去する処理を実行する。また、ステップＳ１８６同様、配置されていなければ特に何も行われない。以上で、ＵＩ配置処理は終了する。
【０２０８】
図４４に戻り、ＵＩ配置処理が終了すれば、操作内容に基づく処理は終了する。
【０２０９】
以上で、本実施形態にかかるゲーム処理の詳細説明を終了する。
【０２１０】
このように、本実施形態では、１Ｐキャラと２Ｐキャラが同じ隊列であるか別隊列であるかに応じて、合流画面と分割画面とをシームレスに切り替える制御を行っている。これにより、ゲームの状況に応じた見やすい画面表示を提供することが可能となる。例えば、１Ｐキャラと２Ｐキャラとが同じ隊列にいる場合は、双方の距離があまり離れないように制御されるため（すなわち、後衛キャラの移動がリーダーキャラの位置に基づく制限を受けている）、１画面で表示する方が見やすくなる。また、別隊列時は、１Ｐキャラ、２Ｐキャラとで完全に別個の操作が可能となるため、分割画面のほうが見やすくなる。これにより、各プレイヤの隊列の参加状況に応じた適切で見やすいゲーム画面を提供できる。
【０２１１】
また、本実施形態では、上記１Ｐカーソルおよび２Ｐカーソル（ロックオンカーソルの場合も含む）について、１Ｐキャラ、２Ｐキャラの位置と向きに基づいてカーソルの基準位置を設定している。そして、慣性センサによる入力に基づき、この基準位置から更にカーソル位置を変化させることができる。これにより、プレイヤキャラクタ２０１の移動方向入力という簡易な操作だけでカーソル位置を操作できると共に、例えばコントローラの姿勢を変化させることで、この位置を更に微調整することができ、操作性を向上することができる。更に、本実施形態では、上記ロックオン状態の場合とそうではない場合とで、慣性センサに基づいてカーソル位置を微調整する際のカーソルの移動速度に差を設けている。これにより、例えば、敵キャラクタに狙いをつける必要性が高いロックオン状態において、同じ姿勢変化に対するカーソルの移動量がより小さくなるようにすることで、カーソル位置の微調整をより行わせやすくすることができ、操作性を更に向上できる。
【０２１２】
また、本実施形態では、第１プレイヤと第２プレイヤとで、操作部の数が異なるコントローラを利用することが可能であるところ、このようなコントローラの操作部の数の違いに応じて、複数の投げ対象選択ＵＩを使い分けている、これにより、コントローラの操作部の数に応じた選択操作を行いやすくすると共に、選択操作に用いるＵＩ自体も、コントローラに応じたＵＩとすることができ、プレイヤの利便性を高めることができる。
【０２１３】
［変形例］
なお、上記の例では、２人プレイを例とし、分割画面として表示領域を２つ用いる場合を例に説明した。他の実施形態では、３人以上のプレイヤとし、分割時の表示領域もプレイヤ数に応じた数としてもよい。例えば、４体のプレイヤキャラクタを用いた４人プレイの場合は、表示領域については最大で４つとしてもよい。そして、隊列構成の変更に応じて、同じ隊列に属しているプレイヤについては同じ表示領域にまとめればよい。例えば、
プレイヤＡ、Ｂ、Ｃ、Ｄがいる場合、全員が別隊列であれば、分割画面としては４つの表示領域を用いればよい。例えば、縦２×横２の表示領域とすればよい。また、プレイヤＡとＢが第１の隊列、プレイヤＣとＤが第２の隊列にいる構成であれば、左右２画面の分割画面の体裁を取り、片方の表示領域は第１の隊列にかかる合流画面とし、他方の表示領域は第２の隊列にかかる合流画面として表示しても良い。また、プレイヤＡ、Ｂ、Ｃが第１の隊列、プレイヤＤのみが第２の隊列を構成している場合も、左右２つの表示領域からなる分割画面の体裁を取り、片方を第１の隊列にかかる合流画面とし、他方は第２の隊列に係る合流画面としてもよい。また、４人のプレイヤ全員が同じ隊列となる場合は、１画面だけの合流画面を表示すれば良い。また、隊列が３つになる場合は、例えば分割画面として３分割の表示領域を用いても良いし、上記２×２の４分割の表示領域として、そのうち３つの表示領域だけを使用するような構成としてもよい。
【０２１４】
また、上記実施形態において、お供キャラクタ２０２等を移動させる際に「投げる」動作を行う例を示した。この動作については、「投げる」動作に限らず、他の動作でお供キャラクタ等を移動させるようにしてもよい。つまり、プレイヤキャラクタ２０１の位置からある程度離れた位置に、所定時間内（例えば数秒程度の時間内）にお供キャラクタ２０２等を移動させるような動作であれば、どのような動作を用いてもよい。例えば、カーソルの位置にお供キャラクタ２０２等を「瞬間移動」させるようにしてもよいし、また、例えば、ボーリング玉のように、お供キャラクタ２０２等を「転がす」ようにしてカーソル位置まで移動させるようにしてもよい。
【０２１５】
また、上記の例では、プレイヤが操作可能なキャラクタの数として、３体の場合を例にしたが、他の実施形態では、４体以上のプレイヤキャラクタを用いるようにしてもよい。また、他の実施形態では、プレイヤキャラクタを２体だけ用いるようにしてもよい。この場合は、上記操作対象を切り替える操作が行われた場合は、第１プレイヤと第２プレイヤの操作対象キャラクタを交換するような処理を行えばよい。
【０２１６】
また、上記実施形態においては、ゲーム処理にかかる一連の処理が単一の装置において実行される場合を説明したが、他の実施形態においては、上記一連の処理が複数の情報処理装置からなる情報処理システムにおいて実行されてもよい。例えば、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの一部の処理がサーバ側装置によって実行されてもよい。さらには、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの主要な処理がサーバ側装置によって実行され、当該端末側装置では一部の処理が実行されてもよい。また、上記情報処理システムにおいて、サーバ側のシステムは、複数の情報処理装置によって構成され、サーバ側で実行するべき処理を複数の情報処理装置が分担して実行してもよい。
【符号の説明】
【０２１７】
１    ゲームシステム
２    本体装置
３    左コントローラ
４    右コントローラ
８１  プロセッサ
８４  フラッシュメモリ
８５  ＤＲＡＭ
【図１】
2020188985.tif 000003
【図２】
2020188985.tif 000004
【図３】
2020188985.tif 000005
【図４】
2020188985.tif 000006
【図５】
2020188985.tif 000007
【図６】
2020188985.tif 000008
【図７】
2020188985.tif 000009
【図８】
2020188985.tif 000010
【図９】
2020188985.tif 000011
【図１０】
2020188985.tif 000012
【図１１】
2020188985.tif 000013
【図１２】
2020188985.tif 000014
【図１３】
2020188985.tif 000015
【図１４】
2020188985.tif 000016
【図１５】
2020188985.tif 000017
【図１６】
2020188985.tif 000018
【図１７】
2020188985.tif 000019
【図１８】
2020188985.tif 000020
【図１９】
2020188985.tif 000021
【図２０】
2020188985.tif 000022
【図２１】
2020188985.tif 000023
【図２２】
2020188985.tif 000024
【図２３】
2020188985.tif 000025
【図２４】
2020188985.tif 000026
【図２５】
2020188985.tif 000027
【図２６】
2020188985.tif 000028
【図２７】
2020188985.tif 000029
【図２８】
2020188985.tif 000030
【図２９】
2020188985.tif 000031
【図３０】
2020188985.tif 000032
【図３１】
2020188985.tif 000033
【図３２】
2020188985.tif 000034
【図３３】
2020188985.tif 000035
【図３４】
2020188985.tif 000036
【図３５】
2020188985.tif 000037
【図３６】
2020188985.tif 000038
【図３７】
2020188985.tif 000039
【図３８】
2020188985.tif 000040
【図３９】
2020188985.tif 000041
【図４０】
2020188985.tif 000042
【図４１】
2020188985.tif 000043
【図４２】
2020188985.tif 000044
【図４３】
2020188985.tif 000045
【図４４】
2020188985.tif 000046
【図４５】
2020188985.tif 000047
【図４６】
2020188985.tif 000048
【図４７】
2020188985.tif 000049
【図４８】
2020188985.tif 000050
【図４９】
2020188985.tif 000051
【図５０】
2020188985.tif 000052
【図５１】
2020188985.tif 000053
【図５２】
2020188985.tif 000054
【図５３】
2020188985.tif 000055
【図５４】
2020188985.tif 000056
【図５５】
2020188985.tif 000057
【図５６】
2020188985.tif 000058