[1.ゲームシステムの構成]
以下、本実施形態の一例に係るゲームシステムについて説明する。図1は、ゲームシステムに含まれる各装置の一例を示す図である。図1に示すように、ゲームシステム1は、本体装置2と、左コントローラ3および右コントローラ4と、リング型拡張装置5と、ベルト型拡張装置6とを含む。
本体装置2は、情報処理装置の一例であり、本実施形態ではゲーム機本体として機能する。本体装置2には、左コントローラ3および右コントローラ4がそれぞれ着脱可能である(図1および図3参照)。つまり、ユーザは、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として使用することができる(図2参照)。また、ユーザは、本体装置2と左コントローラ3および右コントローラ4とを別体として使用することもできる(図3参照)。なお、以下においては、本体装置2と各コントローラ3および4とをまとめて、「ゲーム装置」と呼ぶことがある。
リング型拡張装置5は、右コントローラ4に用いられる拡張装置の一例である。リング型拡張装置5は、右コントローラ4をリング型拡張装置5に装着した状態で使用される。また、ベルト型拡張装置6は、左コントローラ3に用いられる拡張装置の一例である。ベルト型拡張装置6は、左コントローラ3をベルト型拡張装置6に装着した状態で使用される。このように、本実施形態においては、ユーザは、各コントローラ3および4を各拡張装置に装着した状態で使用することもできる(図12参照)。なお、リング型拡張装置5は、右コントローラ4に限らず、左コントローラ3を自身に装着することが可能であってもよい。ベルト型拡張装置6は、左コントローラ3に限らず、右コントローラ4を自身に装着することが可能であってもよい。
図2は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。図2に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
図3は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。図2および図3に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
図4は、本体装置2の一例を示す六面図である。図4に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
図4に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、図7に示すスピーカ88)を備えている。図4に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
図4に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
図5は、左コントローラ3の一例を示す六面図である。図5に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、図2および図5に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
左コントローラ3は、アナログスティック32を備える。図5に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
左コントローラ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プログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
図6は、右コントローラ4の一例を示す六面図である。図6に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
右コントローラ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を備える。
また、ハウジング51の下側面には、窓部68が設けられる。詳細は後述するが、右コントローラ4は、ハウジング51の内部に配置される赤外撮像部123および赤外発光部124を備えている。赤外撮像部123は、右コントローラ4の下方向(図6に示すy軸負方向)を撮像方向として、窓部68を介して右コントローラ4の周囲を撮像する。赤外発光部124は、右コントローラ4の下方向(図6に示すy軸負方向)を中心とする所定範囲を照射範囲として、赤外撮像部123が撮像する撮像対象に窓部68を介して赤外光を照射する。窓部68は、赤外撮像部123のカメラのレンズや赤外発光部124の発光体等を保護するためのものであり、当該カメラが検知する波長の光や当該発光体が照射する光を透過する材質(例えば、透明な材質)で構成される。なお、窓部68は、ハウジング51に形成された孔であってもよい。なお、本実施形態においては、カメラが検知する光(本実施形態においては、赤外光)以外の波長の光の透過を抑制するフィルタ部材を赤外撮像部123自身が有する。ただし、他の実施形態においては、窓部68がフィルタの機能を有していてもよい。
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
図7は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、図4に示す構成の他、図7に示す各構成要素81〜91、97、および98を備える。これらの構成要素81〜91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System−on−a−chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi−Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
プロセッサ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は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
また、本体装置2は、加速度センサ89を備える。本実施形態においては、加速度センサ89は、所定の3軸(例えば、図2に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ89は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。
また、本体装置2は、角速度センサ90を備える。本実施形態においては、角速度センサ90は、所定の3軸(例えば、図2に示すxyz軸)回りの角速度を検出する。なお、角速度センサ90は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。
加速度センサ89および角速度センサ90は、プロセッサ81に接続され、加速度センサ89および角速度センサ90の検出結果は、プロセッサ81へ出力される。プロセッサ81は、上記の加速度センサ89および角速度センサ90の検出結果に基づいて、本体装置2の動きおよび/または姿勢に関する情報を算出することが可能である。
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
図8は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、図7で示しているため図8では省略している。
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。図8に示すように、通信制御部101は、端子42を含む各構成要素に接続される。本実施形態においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
左コントローラ3は、各ボタン103(具体的には、ボタン33〜39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(図8では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
左コントローラ3は、慣性センサを備える。具体的には、左コントローラ3は、加速度センサ104を備える。また、左コントローラ3は、角速度センサ105を備える。本実施形態においては、加速度センサ104は、所定の3軸(例えば、図5に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ104は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサ105は、所定の3軸(例えば、図5に示すxyz軸)回りの角速度を検出する。なお、角速度センサ105は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。加速度センサ104および角速度センサ105は、それぞれ通信制御部101に接続される。そして、加速度センサ104および角速度センサ105の検出結果は、適宜のタイミングで繰り返し通信制御部101へ出力される。
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサ104および角速度センサ105の検出結果)に基づいて算出することができる。
左コントローラ3は、振動によってユーザに通知を行うための振動子107を備える。本実施形態においては、振動子107は、本体装置2からの指令によって制御される。すなわち、通信制御部101は、本体装置2からの上記指令を受け取ると、当該指令に従って振動子107を駆動させる。ここで、左コントローラ3は、コーデック部106を備える。通信制御部101は、上記指令を受け取ると、指令に応じた制御信号をコーデック部106へ出力する。コーデック部106は、通信制御部101からの制御信号から振動子107を駆動させるための駆動信号を生成して振動子107へ与える。これによって振動子107が動作する。
振動子107は、より具体的にはリニア振動モータである。リニア振動モータは、回転運動をする通常のモータと異なり、入力される電圧に応じて所定方向に駆動されるため、入力される電圧の波形に応じた振幅および周波数で振動をさせることができる。本実施形態において、本体装置2から左コントローラ3に送信される振動制御信号は、単位時間ごとに周波数と振幅とを表すデジタル信号であってよい。別の実施形態においては、本体装置2から波形そのものを示す情報を送信するようにしてもよいが、振幅および周波数だけを送信することで通信データ量を削減することができる。また、さらにデータ量を削減するため、そのときの振幅および周波数の数値に替えて、前回の値からの差分だけを送信するようにしてもよい。この場合、コーデック部106は、通信制御部101から取得される振幅および周波数の値を示すデジタル信号をアナログの電圧の波形に変換し、当該波形に合わせて電圧を入力することで振動子107を駆動させる。したがって、本体装置2は、単位時間ごとに送信する振幅および周波数を変えることによって、そのときに振動子107を振動させる振幅および周波数を制御することができる。なお、本体装置2から左コントローラ3に送信される振幅および周波数は、1つに限らず、2つ以上送信するようにしてもよい。その場合、コーデック部106は、受信された複数の振幅および周波数それぞれが示す波形を合成することで、振動子107を制御する電圧の波形を生成することができる。
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
図8に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、アナログスティック52、慣性センサ(加速度センサ114および角速度センサ115)を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
また、右コントローラ4は、振動子117およびコーデック部116を備える。振動子117およびコーデック部116は、左コントローラ3の振動子107およびコーデック部106と同様に動作する。すなわち、通信制御部111は、本体装置2からの指令に従って、コーデック部116を用いて振動子117を動作させる。
また、右コントローラ4は、赤外撮像部123を備える。赤外撮像部123は、右コントローラ4の周囲を撮像する赤外線カメラを有する。一例として、本体装置2および/または右コントローラ4は、撮像された情報(例えば、撮像された撮像画像における少なくとも一部の領域全体を分割した複数のブロックの輝度に関連する情報等)を算出し、当該情報に基づいて、右コントローラ4の周囲変化を判別する。また、赤外撮像部123は、環境光によって撮像を行ってもよいが、本実施形態においては、赤外線を照射する赤外発光部124を有する。赤外発光部124は、例えば、赤外線カメラが画像を撮像するタイミングと同期して、赤外線を照射する。そして、赤外発光部124によって照射された赤外線が撮像対象によって反射され、当該反射された赤外線が赤外線カメラによって受光されることで、赤外線の画像が取得される。これによって、赤外撮像部123は、より鮮明な赤外線画像を得ることができる。なお、赤外撮像部123と赤外発光部124とは、それぞれ別のデバイスとして右コントローラ4内に設けられてもよいし、同じパッケージ内に設けられた単一のデバイスとして右コントローラ4内に設けられてもよい。また、本実施形態においては、赤外線カメラを有する赤外撮像部123が用いられるが、他の実施形態においては、撮像手段として、赤外線カメラに代えて可視光カメラ(可視光イメージセンサを用いたカメラ)が用いられてもよい。
右コントローラ4は、処理部121を備える。処理部121は、通信制御部111に接続される。また、処理部121は、赤外撮像部123、および赤外発光部124に接続される。
また、処理部121は、CPUやメモリ等を含み、右コントローラ4に備えられた図示しない記憶装置(例えば、不揮発性メモリ等)に記憶された所定のプログラム(例えば、画像処理や各種演算を行うためのアプリケーションプログラム)に基づいて、本体装置2からの指令に応じて赤外撮像部123に対する管理処理を実行する。例えば、処理部121は、赤外撮像部123に撮像動作を行わせたり、撮像結果に基づく情報(撮像画像の情報、あるいは、当該情報から算出される情報等)を取得および/または算出して通信制御部111を介して本体装置2へ送信したりする。また、処理部121は、本体装置2からの指令に応じて赤外発光部124に対する管理処理を実行する。例えば、処理部121は、本体装置2からの指令に応じて赤外発光部124の発光を制御する。なお、処理部121が処理を行う際に用いるメモリは、処理部121内に設けられてもいいし、メモリ112であってもよい。
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
図9は、リング型拡張装置の一例を示す図である。なお、図9は、右コントローラ4が装着された状態のリング型拡張装置5を示している。本実施形態においては、リング型拡張装置5は、右コントローラ4を装着可能な拡張装置である。詳細は後述するが、本実施形態においては、ユーザは、リング型拡張装置5に力を加えて変形させるという新規な操作を行う。ユーザは、例えばエクササイズを行う感覚でリング型拡張装置5を用いたフィットネス動作を行うことによって、リング型拡張装置5に対する操作を行うことができる。
図9に示すように、リング型拡張装置5は、環状部201と、本体部202とを備える。環状部201は、環状の形状を有する。なお、本実施形態においては、環状部201は、後述する弾性部材および台座部によって環状に形成される。本実施形態においては、環状部201は円環状である。なお、他の実施形態においては、環状部201の形状は任意であり、例えば楕円環状であってもよい。
本体部202は、環状部201に設けられる。本体部202は、図示しないレール部を有する。レール部は、右コントローラ4を装着可能な装着部の一例である。本実施形態においては、レール部は、右コントローラ4のスライダ62(図6参照)に対してスライド可能に係合する。スライダ62がレール部材に対して所定の直線方向(すなわち、スライド方向)に挿入されることで、レール部材に対してスライダ62が当該直線方向にスライド移動が可能な状態でレール部材がスライダ62と係合する。なお、レール部は、コントローラのスライダに対してスライド可能に係合することが可能である点で、本体装置2が有するレール部と同様である。そのため、レール部は、本体装置2が有するレール部と同様の構成であってもよい。
本実施形態においては、右コントローラ4は、係止部63を有する(図6参照)。係止部63は、スライダ62から側方(すなわち、図6に示すz軸正方向)に突出して設けられる。係止部63は、スライダ62の内部の方向へ移動可能であるとともに、上記側方へ突出した状態となる向きに(例えばバネによって)付勢されている。また、レール部には、切欠きが設けられる。スライダ62がレール部の奥まで挿入された状態において、係止部63は切欠きに係止する。レール部にスライダ62が係合した状態で係止部63が切欠きに係止することによって、本体部202に右コントローラ4が装着される。
なお、右コントローラ4は、押下可能な解除ボタン69を備える(図6参照)。上記係止部63は、解除ボタン69が押下されることに応じて、スライダ62の内部の方向へ移動し、スライダ62に対して突出しない(あるいは、ほとんど突出しない)状態となる。したがって、リング型拡張装置5の本体部202に右コントローラ4が装着された状態において、解除ボタン69が押下されると、係止部63は切欠きに係止しなくなる(あるいは、ほとんど係止しなくなる)。以上より、リング型拡張装置5の本体部202に右コントローラ4が装着される状態において、ユーザは、解除ボタン69を押下することによって右コントローラ4をリング型拡張装置5から容易に取り外すことができる。
図9に示すように、リング型拡張装置5は、グリップカバー203および204を有する。グリップカバー203および204は、ユーザが把持するための部品である。本実施形態においては、グリップカバー203および204は、環状部201に対して取り外し可能である。本実施形態においては、環状部201の左端付近の左把持部分に左グリップカバー203が設けられ、環状部201の右端付近の右把持部分に右グリップカバー204が設けられる。なお、把持部分の数は任意であり、想定される操作方法に応じて、3箇所以上に把持部分が設けられてもよいし、1箇所のみに把持部分が設けられてもよい。また、ゲームの内容(あるいは、ゲームにおいてユーザが行うフィットネス動作の内容)によっては、複数の把持部のうちの特定の把持部のみが片手または両手で把持されることがあってもよい。
図10は、リング型拡張装置5が備える構成要素の電気的な接続関係を示すブロック図である。図10に示すように、リング型拡張装置5は、歪み検出部211を備える。歪み検出部211は、環状部201が変形したことを検出する検出部の一例である。本実施形態においては、歪み検出部211は、歪みゲージを含む。歪み検出部211は、後述する弾性部材の変形に応じた台座部の歪みを示す信号(換言すれば、弾性部材の変形の大きさおよび変形の向きを示す信号)を出力する。
ここで、本実施形態においては、環状部201は、弾性変形可能な弾性部と、台座部とを有する。台座部は、当該台座部と弾性部材とによって環が形成されるように当該弾性部材の両端部を保持する。なお、台座部は、本体部202の内部に設けられるので、図9において図示されていない。台座部は、弾性部材よりも剛性が高い材質で構成される。例えば、弾性部材は、樹脂(具体的には、FRP(Fiber Reinforced Plastics))で構成され、台座部は、金属で構成される。上記歪みゲージは、台座部に設けられ、当該台座部の歪みを検出する。環状部201が定常状態から変形した場合、変形によって台座部に歪みが生じるので、歪みゲージによって台座部の歪みが検出される。検出された歪みに基づいて、環状部201が変形する向き(すなわち、2つのグリップカバー203および204が近づく向き、または、離れる向き)と、変形量とを算出することができる。
なお、他の実施形態においては、歪み検出部211は、歪みゲージに代えて、環状部201が定常状態から変形したことを検出可能な任意のセンサを含んでもよい。例えば、検出部211は、環状部201が変形した場合に加わる圧力を検出する感圧センサを含んでもよいし、環状部201が曲げられた量を検出する曲げセンサを含んでもよい。
リング型拡張装置5は、信号変換部212を備える。本実施形態においては、信号変換部212は、アンプと、ADコンバータとを含む。信号変換部212は、歪み検出部211に電気的に接続され、歪み検出部211の出力信号をアンプによって増幅し、ADコンバータによってAD変換を行う。信号変換部212は、歪み検出部211によって検出された歪み値を示すデジタル信号を出力する。なお、他の実施形態においては、信号変換部212はADコンバータを含まず、後述する処理部213がADコンバータを含んでいてもよい。
リング型拡張装置5は、処理部213を備える。処理部213は、プロセッサとメモリとを備える処理回路であり、例えばMCU(Micro Controller Unit)である。処理部213は、信号変換部212に電気的に接続され、信号変換部212の出力信号が処理部213に入力される。また、リング型拡張装置5は、端子214を備える。端子214は、処理部213に電気的に接続される。リング型拡張装置5に右コントローラ4が装着されている場合、処理部213は、信号変換部212の出力信号が示す歪み値を示す情報(換言すれば、後述するリング操作データ)を、端子214を介して右コントローラ4へ送信する。
リング型拡張装置5は、電力変換部215を備える。電力変換部215は、上記各部211〜214に電気的に接続される。電力変換部215は、端子214を介して外部(すなわち、右コントローラ4)から供給される電力を、上記各部211〜214に供給する。電力変換部215は、供給される電力について電圧等の調整を行って上記各部211〜214に供給してもよい。
なお、リング型拡張装置5が他の装置へ送信する「歪み検出部の検出結果に関するデータ」は、当該検出結果(本実施形態においては、台座部の歪みを示す、歪み検出部211の出力信号)そのものを示すデータであってもよいし、当該検出結果に対して何らかの処理(例えば、データ形式の変換、および/または、歪み値に対する計算処理等)が行われることによって得られるデータであってもよい。例えば、処理部213は、上記検出結果である歪み値に基づいて弾性部材の変形量を算出する処理を行ってもよく、このとき、「歪み検出部の検出結果に関するデータ」は、当該変形量を示すデータであってもよい。
なお、他の実施形態においては、リング型拡張装置5は、電池を備え、当該電池の電力によって動作してもよい。また、リング型拡張装置5が備える電池は、右コントローラ4から供給される電力によって充電可能な充電池であってもよい。
図11は、ベルト型拡張装置の一例を示す図である。ベルト型拡張装置6は、自身に左コントローラ3が装着された状態で、ユーザの足に締着して使用する(図12参照)。図11に示すように、ベルト型拡張装置6は、収容部301と、ベルト部302とを備える。収容部301は、平面状の形状であり、左コントローラ3を収容可能である。具体的には、収容部301は、ポケット部303を有する。ポケット部303は、左コントローラ3を収容可能な大きさの袋状に形成される。本実施形態においては、収容部301が左コントローラを収容することで、左コントローラ3がベルト型拡張装置6に装着される。なお、他の実施形態においては、ベルト型拡張装置6に左コントローラ3を装着させるための構成は任意である。
収容部301には、ポケット部303の側方に通し孔304が設けられる。ベルト部302は、収容部301のうち、ポケット部303の側方であって、ポケット部303を基準に通し孔304の反対側に設けられる。ベルト部302は、帯状の形状であり、その一端が収容部301に固定される。本実施形態においては、ベルト部302は、伸縮性を有する材質(例えば、織ゴム)で構成される。
ベルト部302のうち、収容部301においてポケット部303が設けられる側の面と同じ側の面には、第1面ファスナー305および第2面ファスナー306が設けられる。第1面ファスナー305は、収容部301に固定される側と反対側の端部付近に設けられる。また、第2面ファスナー306は、第1面ファスナー305と同じ面において、第1面ファスナー305と比べて収容部301に近い側に設けられる。第1面ファスナー305と第2面ファスナー306とは、互いに着脱可能である。例えば、第1面ファスナー305は、フック面の面ファスナーであり、第2面ファスナー306は、ループ面の面ファスナーである。
ベルト型拡張装置6を締着する際、ユーザは、ベルト部302を足に一周させた状態でベルト部302を通し孔304に通して、第1面ファスナー305と第2面ファスナー306とを接着させる。これによって、ユーザは、左コントローラ3が装着されたベルト型拡張装置6を足に締着することができる(図12参照)。
図12は、リング型拡張装置5およびベルト型拡張装置6をユーザが使用する様子の一例を示す図である。図12に示すように、ユーザは、ゲーム装置(すなわち、本体装置2ならびに各コントローラ3および4)に加えて、2つの拡張装置5および6を用いてゲームを行うことができる。例えば、ユーザは、リング型拡張装置5とベルト型拡張装置6とをセットで使用することができる。
例えば図12に示すように、ユーザは、右コントローラ4が装着されたリング型拡張装置5を両手で把持し、左コントローラ3が装着されたベルト型拡張装置6を足に締着する。このとき、ユーザは、リング型拡張装置5に対する操作(例えば、リング型拡張装置5を曲げる操作、および、リング型拡張装置5を動かす操作)と、ベルト型拡張装置6を締着した足を動かす操作とによって、ゲームを行うことができる。
なお、図12においては、ユーザがグリップカバー203および204を把持してリング型拡張装置5を曲げる動作を行う様子を例示している。この動作によって、ユーザは、両腕を鍛えるフィットネス動作をゲーム操作として行うことができる。なお、ユーザはリング型拡張装置5に対する種々の動作でゲーム操作を行うことができる。例えば、ユーザは、一方のグリップカバーを両手で把持し、他方のグリップカバーを腹部に当てた状態で、リング型拡張装置5を曲げる動作を行うこともできる。この動作によって、ユーザは、腕と腹筋を鍛えるフィットネス動作をゲーム操作として行うことができる。また、ユーザは、両足の内股にグリップカバー203および204を当ててリング型拡張装置5を足で挟んだ状態で、リング型拡張装置5を曲げる動作を行うこともできる。この動作によって、ユーザは、足の筋肉を鍛えるフィットネス動作をゲーム操作として行うことができる。
本体装置2においてゲーム処理が実行される場合、右コントローラ4は、リング型拡張装置5からリング操作データを受信する。リング操作データは、上記歪み値を示す情報を含む。具体的には、リング型拡張装置5の処理部213は、端子214を介してリング操作データを右コントローラ4へ送信する。例えば、処理部213は、所定時間に1回の割合でリング操作データを繰り返し送信する。
上記の場合、右コントローラ4の通信制御部111は、リング型拡張装置5から端子64を介して受信したリング操作データを本体装置2へ送信する。また、通信制御部111は、右コントローラ4に含まれる各入力部(具体的には、各ボタン113、アナログスティック52、各センサ114および115)から取得された情報を含む右コントローラ操作データを本体装置2へ送信する。なお、右コントローラ4がリング型拡張装置5に装着される状態では、右コントローラ4から本体装置2への通信は、無線通信によって行われる。通信制御部111は、右コントローラ操作データとリング操作データとをまとめて本体装置2へ送信してもよいし、別個に本体装置2へ送信してもよい。また、通信制御部111は、受信したリング操作データをそのまま本体装置2へ送信してもよいし、受信したリング操作データに何らかの加工(例えば、データ形式の変換、および/または、歪み値に対する計算処理等)を行って本体装置2へ送信してもよい。
一方、本体装置2においてゲーム処理が実行される場合、左コントローラ3の通信制御部101は、左コントローラ3に含まれる各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から取得された情報を含む左コントローラ操作データを本体装置2へ送信する。左コントローラ3がベルト型拡張装置6に装着される状態では、左コントローラ3から本体装置2への通信は、無線通信によって行われる。
[2.ゲームにおける情報処理]
次に、ゲームシステム1において実行されるゲームにおける情報処理について説明する。本実施形態におけるゲームにおいては、プレイヤ(換言すれば、ユーザ)は、フィットネス動作を行うことでゲームにおける指示を行うことができる。フィットネス動作は、健康や体力の維持・向上に繋がる任意の運動である。フィットネス動作は、例えば、スクワット・腿あげ・腕立て伏せ・腹筋、あるいは、リング型拡張装置5を変形させる動作のような筋力を鍛える運動であってもよいし、脂肪を燃焼させるための運動であってもよいし、ストレッチ、あるいは、ヨガのような柔軟性を高める運動であってもよい。本実施形態においては、ゲームにおいて、プレイヤによって操作されるプレイヤキャラクタが敵キャラクタと戦闘を行う際、プレイヤは、フィットネス動作を行うことによって、プレイヤキャラクタに攻撃および防御を行わせることができる。以下、ゲームイベントの一例として、プレイヤキャラクタが敵キャラクタと戦闘を行うゲームイベントである戦闘イベントにおけるゲームの流れについて説明する。なお、ゲームイベントとは、ゲーム中において発生する任意の出来事である。ゲームイベントにおいては、例えば、プレイヤによるゲーム操作に応じて、ゲームが進行する様子を示すゲーム画像が表示される。
[2−1.戦闘イベントにおけるゲームの流れ]
図13は、戦闘イベントにおけるゲーム画像の一例を示す図である。なお、戦闘イベントの達成条件は、当該戦闘イベントに勝利する(すなわち、敵キャラクタを全て倒す)ことである。戦闘イベントが開始されると、ゲームシステム1は、図13に示すゲーム画像を表示装置に表示する。なお、ゲーム画像が表示される表示装置は、上述のディスプレイ12であってもよいし、上述の据置型モニタであってもよい。
図13に示すゲーム画像には、プレイヤキャラクタ401と、敵キャラクタ403〜405とを含む。本実施形態においては、プレイヤキャラクタ401は、リング型拡張装置5を模したリングオブジェクト402を持っている。図13においては、3体の敵キャラクタ403〜405が登場するが、戦闘イベントに登場する敵キャラクタの数は何体であってもよい。
図14は、戦闘イベントにおけるゲームの流れの一例を示す図である。図14に示すように、本実施形態においては、戦闘イベントにおいてはターン制で戦闘が進行される。すなわち、プレイヤキャラクタ401が敵キャラクタに攻撃を行う攻撃ターンと、プレイヤキャラクタ401が敵キャラクタからの攻撃を防御する防御ターンとが、交互に行われることによって戦闘が進む。本実施形態においては、戦闘イベントが開始されると、(図13に示すゲーム画像が表示された後で、)攻撃ターンが行われるものとするが、先に防御ターンが行われてもよい。また、戦闘イベントの進行方法はターン制に限らず、任意の方法であってよい。例えば、他の実施形態においては、キャラクタ(すなわち、プレイヤキャラクタ401および敵キャラクタ)毎に設定された待ち時間が経過したことに応じて、当該キャラクタが攻撃を行うようにしてもよい。
まず、プレイヤキャラクタ401の攻撃ターンにおけるゲームの流れについて説明する。攻撃ターンが開始されると、まず、攻撃ターンにおいてプレイヤが行うフィットネス動作をプレイヤが選択する選択イベントが実行される(図14に示すステップS1)。選択イベントにおいて、ゲームシステム1は、選択画像を表示装置に表示する。選択画像は、フィットネス動作をプレイヤに選択させるためのUI(ユーザインターフェース)画像である。
図15は、選択画像の一例を示す図である。選択画像は、選択可能な複数種類のフィットネス動作のうちから1つのフィットネス動作をプレイヤが選択するための画像411〜413を含む。これらの画像411〜413は、戦闘中の敵キャラクタ403〜405を含むゲーム空間の画像に重ねて配置される。画像411は、フィットネス動作の選択をプレイヤに促すメッセージ(具体的には、「フィットネス動作を選びましょう」というメッセージ)を示す。
本実施形態におけるゲームにおいては、攻撃ターンにおいてゲームの指示のためにプレイヤが行うことが可能なフィットネス動作として、複数種類のフィットネス動作が用意されている。複数種類のフィットネス動作の内容は任意である。本実施形態においては、複数種類のフィットネス動作には、リング型拡張装置5を押し込んで変形させる動作、ベルト型拡張装置6を装着したプレイヤの足を動かす動作、および、プレイヤに所定のポーズを取らせる動作等が含まれる。
また、本実施形態におけるゲームにおいては、プレイヤがフィットネス動作を行ったことに応じて(すなわち、フィットネス動作による指示に応じて)プレイヤキャラクタ401が行う行動が、フィットネス動作の種類毎に関連付けられている。本実施形態においては、プレイヤキャラクタは、敵キャラクタ1体を攻撃する行動である単体攻撃と、複数の敵キャラクタを一度に攻撃する行動である複数攻撃と、プレイヤキャラクタ401の体力を回復する行動である回復との行動をとることができる。なお、フィットネス動作に関連付けられるプレイヤキャラクタ401の行動は、フィットネス動作の種類毎に異なっていてもよいし、いくつかの種類のフィットネス動作に対してプレイヤキャラクタ401の同じ行動が関連付けられていてもよい。選択イベントにおいて、プレイヤは、自身が行いたいフィットネス動作を選択してもよいし、プレイヤキャラクタ401に行わせたい行動(例えば、複数攻撃)に関連付けられるフィットネス動作を選択してもよい。
選択動作画像412は、選択可能な複数種類のフィットネス動作のうちの1つのフィットネス動作を示す。図15においては、選択動作画像412は、「上方押し込み」というフィットネス動作を表す絵と、当該フィットネス動作の名前とを示す。選択イベントにおいて、ゲームシステム1は、プレイヤによる切替指示を受け付ける。切替指示に応じて、ゲームシステム1は、選択動作画像412が示すフィットネス動作を切り替える。本実施形態においては、選択可能な複数種類のフィットネス動作は順序が設定されている。切替指示のうちの第1の切替指示(例えば、右コントローラ4のアナログスティック52を左方向に傾倒する操作による指示)が行われると、ゲームシステム1は、選択動作画像412が示すフィットネス動作を上記順序に従って切り替える。また、切替指示のうちの第2の切替指示(例えば、右コントローラ4のアナログスティック52を右方向に傾倒する操作による指示)が行われると、ゲームシステム1は、選択動作画像412が示すフィットネス動作を上記順序の逆の順序に従って切り替える。なお、本実施形態においては、戦闘イベント中においてプレイヤが行う指示(ただし、フィットネス動作によって行われる指示を除く)は、コントローラのボタンやアナログスティックに対する操作によって行われてもよいし、リング型拡張装置5を動かす操作によって行われてもよい。
上記のように、選択イベントにおいては、複数種類のフィットネス動作が選択肢として提示される。本実施形態においては、選択肢となる複数種類のフィットネス動作のうち1つを示す選択動作画像412が表示されたが、他の実施形態においては、選択肢である複数種類のフィットネス動作を示すそれぞれの選択動作画像が同時に表示されてもよい。
説明画像413は、表示中の選択動作画像412が示すフィットネス動作に関する説明を示す。ここで、本実施形態においては、フィットネス動作に関連付けられるプレイヤキャラクタ401の行動(すなわち、攻撃または回復)による効果の大きさ(具体的には、攻撃によるダメージ量または回復量。以下、「効果量」と呼ぶ。)は、当該フィットネス動作に設定されている効果基本値に基づいて算出される。なお、詳細は後述するが、プレイヤキャラクタ401の行動による効果量は、上記効果基本値、および、フィットネス動作の評価結果等に基づいて算出される。説明画像413は、フィットネス動作に設定されている上記効果基本値を示す。例えば、図15においては、説明画像413は、「上方押し込み」のフィットネス動作に設定されている効果基本値(ここでは、攻撃力)が25であることを示している。
また、本実施形態においては、フィットネス動作には待機ターン数が設定される。詳細は後述するが、待機ターン数は、プレイヤがフィットネス動作を行ってから当該フィットネス動作を次に選択可能となるまでのターン数である。説明画像413は、表示中の選択動作画像412が示すフィットネス動作に設定される待機ターン数を示す。例えば、図15においては、説明画像413は、「上方押し込み」のフィットネス動作に設定された待機ターン数が2であることを示している。
選択画像の表示中において、ゲームシステム1は、プレイヤによる選択指示を受け付ける。選択指示は、例えば、右コントローラ4のうちの所定のボタンを押下する操作によって行われる。ゲームシステム1は、選択指示が行われた時点で表示されている選択動作画像412が示すフィットネス動作を、プレイヤによって選択されたフィットネス動作として指定する。なお、フィットネス動作の指定とは、当該フィットネス動作をプレイヤに行わせるフィットネスイベントの指定であると言うこともできる。
以上のように、本実施形態においては、ゲームシステム1は、プレイヤによる選択指示に基づいて、複数種類のフィットネス動作のうちから1種類を指定する。そして、指定されたフィットネス動作をプレイヤに行わせるフィットネスイベントが実行される(詳細は後述する)。このように、本実施形態においては、プレイヤが行うべきフィットネス動作をプレイヤ自身が選択することができる。なお、他の実施形態においては、ゲームシステム1は、複数種類のフィットネス動作のうちから複数のフィットネス動作をプレイヤによる選択指示に従って指定してもよく、フィットネスイベントにおいては、指定された複数のフィットネス動作をプレイヤに行わせるようにしてもよい。
なお、選択肢として提示される複数種類のフィットネス動作は、固定であってもよいし、可変であってもよい。フィットネス動作の選択肢は、例えば、ゲーム進行、プレイヤの設定、および、ゲーム状況(具体的には、敵キャラクタの種類、あるいは、プレイヤキャラクタ401が所有するアイテム)のうち少なくとも1つに応じて変化してもよい。具体的には、ゲームシステム1は、ゲームが進行するにつれてフィットネス動作の選択肢を増やしてもよいし、プレイヤキャラクタ401が所定のアイテムを取得する(または使用する)ことに応じてフィットネス動作の選択肢を増やしてもよい。
選択画像の表示中にプレイヤによってフィットネス動作が選択されると、ゲームシステム1は、選択イベントを終了し、準備イベントを実行する(図14に示すステップS2)。準備イベントは、選択されたフィットネス動作の開始時の体勢(「開始体勢」と呼ぶ)をとるようにプレイヤを促すゲームイベントである。
なお、選択されたフィットネス動作に関連付けられるプレイヤキャラクタ401の行動が上述の単体攻撃であり、戦闘中の敵キャラクタが複数である場合、ゲームシステム1は、準備イベントが開始される前に、攻撃対象をプレイヤに選択させるための画像を表示装置に表示する。上記画像を表示した場合、ゲームシステム1は、敵キャラクタのうちから攻撃対象となる敵キャラクタをプレイヤの指示に従って特定する。攻撃対象となる敵キャラクタが特定された後、準備イベントが開始される。
準備イベントにおいて、ゲームシステム1は、選択されたフィットネス動作の準備動作画像を表示装置に表示する。準備動作画像は、フィットネス動作の開始体勢をとるようにプレイヤを促すための画像である。
図16は、準備動作画像の一例を示す図である。図16に示すように、準備動作画像は、プレイヤによって選択されたフィットネス動作を示す(具体的には、当該フィットネス動作の名前を示す)画像421を含む。また、準備動作画像は、開始体勢をとることをプレイヤに促すメッセージ(具体的には、「お手本をマネしましょう」というメッセージ)を示す画像422を含む。さらに、準備動作画像は、当該フィットネス動作の開始体勢の手本を示す開始手本画像423を含む。ゲームシステム1は、開始手本画像423によって、開始体勢としてプレイヤがどのような体勢をとればよいかを直感的でわかりやすい形でプレイヤに通知することができる。
図16に示すように、準備動作画像は、部分体勢画像424および425を含む。部分体勢画像は、開始体勢においてプレイヤの体の一部がとるべき状態(「部分開始体勢」と呼ぶ)を示す。図16において、部分体勢画像424は、プレイヤの足に関する部分開始体勢(すなわち、「足を肩幅に開く」)を示し、部分体勢画像425は、プレイヤの手に関する部分開始体勢(すなわち、「両腕を上げる」)を示している。
本実施形態においては、部分開始体勢には、ゲームシステム1によるチェックが行われるチェック有り体勢と、チェックが行われないチェック無し体勢とがある。図16に示す例においては、部分体勢画像425が示す部分開始体勢は、チェック有り体勢であり、部分体勢画像424が示す部分開始体勢は、チェック無し体勢である。なお、チェック有り体勢である部分開始体勢を示す部分体勢画像425には、チェックボックスが含まれる(図16参照)。
準備イベントにおいて、ゲームシステム1は、プレイヤがチェック有り体勢をとったか否かを判定する。この判定は、例えば、コントローラが備える上述の慣性センサの出力に基づいて算出されるコントローラの傾きに基づいて行われる。例えば、部分体勢画像425が示す部分開始体勢をプレイヤがとったか否かの判定は、リング型拡張装置5に装着された右コントローラ4が、開始手本画像423に示す傾きとなったか否かを判定することによって行うことができる。
準備イベントにおいて、所定長さ(例えば、3秒間)の間、プレイヤがチェック有り体勢を維持した場合、ゲームシステム1は、プレイヤが開始体勢をとったと判断する。この場合、ゲームシステム1は、部分体勢画像425のチェックボックスにチェックが入るように画像を変更し、その後、準備イベントを終了する。なお、ゲームシステム1は、チェック有り体勢をプレイヤが取り始めた時点で、当該時点からの経過時間(または、プレイヤが開始体勢をとったと判断されるまでの残り時間)を示すカウント画像を表示装置に表示するようにしてもよい。準備イベントが終了されたことに続いて、後述するフィットネスイベントが開始される。
なお、開始体勢に含まれる部分開始体勢の数、および、当該部分開始体勢の種類(具体的には、チェック有り体勢であるか、それとも、チェック無し体勢であるか)は、フィットネス動作の種類毎に設定される。本実施形態においては、少なくとも1つのチェック有り体勢を含むように、各フィットネス動作の開始体勢が設定される。なお、複数のチェック有り体勢を含む部分開始体勢が設定されるフィットネス動作に関する準備動作画像が表示される場合、ゲームシステム1は、当該複数のチェック有り体勢の全てをプレイヤがとったことに応じて、上記経過時間のカウントを開始する。また、各フィットネス動作の開始体勢をどのように設定するかは任意である。例えば、他の実施形態においては、特定のフィットネス動作については、チェック有り体勢を含まない部分開始体勢のみが設定されてもよい。なお、チェック有り体勢を含まない部分開始体勢のみが設定されるフィットネス動作に関する準備動作画像が表示される場合、ゲームシステム1は、所定時間(例えば、5秒)の間、準備動作画像を表示した後でフィットネスイベントを開始するようにしてもよい。また、上記の場合、ゲームシステム1は、プレイヤが開始指示を行ったことに応じてフィットネスイベントを開始するようにしてもよい。
上記のように、本実施形態においては、ゲームシステム1は、フィットネス動作をプレイヤに行わせるフィットネスイベントの前に、当該プレイヤの体勢が当該フィットネス動作の開始時の体勢であるか否かを判定する。そして、ゲームシステム1は、フィットネス動作の開始時の体勢をプレイヤがとったと判定されたことに応じてフィットネスイベントを開始する。これによれば、プレイヤがフィットネス動作の準備ができていない状態でフィットネスイベントが開始される可能性を低減することができる。また、フィットネス動作の開始時の体勢によっては、フィットネスイベントを開始する旨の指示を行いにくい可能性も考えられる。これに対して、本実施形態においては、プレイヤは、フィットネス動作の準備ができた状態で上記の指示を行う必要がないので、フィットネスイベントにおいて開始時の体勢から容易にフィットネス動作を開始することができる。
ゲームシステム1は、上記準備イベントの次に、フィットネスイベントを実行する(図14に示すステップS3)。フィットネスイベントは、フィットネス動作をプレイヤに行わせるゲームイベントである。フィットネスイベントにおいては、ゲームシステム1は、フィットネス動作をプレイヤに促すとともに、プレイヤが行ったフィットネス動作の状況(例えば、フィットネス動作を行った回数)を通知するための画像を表示装置に表示する。
図17は、フィットネスイベントにおいて表示される画像の一例を示す図である。フィットネスイベントにおいて、ゲームシステム1は、プレイヤキャラクタ401および敵キャラクタ403〜405を含むゲーム空間を示す画像431を表示する。また、ゲームシステム1は、フィットネス動作を行うことをプレイヤに促すメッセージ(具体的には、「押し込んで」というメッセージ)を示す画像432を表示する。さらに、ゲームシステム1は、手本動作画像433、動作回数画像434、残り回数画像435、および、消費カロリー画像436を表示する。
手本動作画像433は、プレイヤが行うフィットネス動作(すなわち、選択イベントにおいて選択されたフィットネス動作)の手本を示す。図17に示す例においては、手本動作画像433は、「上方押し込み」のフィットネス動作の手本として、リング型拡張装置5を頭上で押し込むように曲げる動作を表す画像を含む。手本動作画像433によって、フィットネス動作の内容を直感的でわかりやすい形でプレイヤに通知することができる。
動作回数画像434は、選択イベントにおいて選択されたフィットネス動作をプレイヤが行うべき回数(「単位動作回数」と呼ぶ)と、現時点でプレイヤがフィットネス動作を行うべき残り回数とを示すゲージ画像である。また、残り回数画像435は、上記残り回数の数値を示す。なお、図17に示す例においては、動作回数画像434は、単位動作回数が5回であるのに対して残り回数が4回であることを示している。なお、他の実施形態においては、ゲームシステム1は、動作回数画像434に代えて(または動作回数画像434と共に)、単位動作回数の数値と残り回数の数値とを示す画像を表示してもよい。
消費カロリー画像436は、プレイヤが行ったフィットネス動作によって消費される消費カロリーを示す。本実施形態においては、消費カロリー画像436は、1回の攻撃ターン中におけるフィットネス動作による消費カロリーを示す。ただし、他の実施形態においては、消費カロリー画像436は、1回の戦闘イベント中におけるフィットネス動作による消費カロリーを示してもよいし、ゲーム開始からの累積の消費カロリーを示してもよい。
ゲームシステム1は、プレイヤが行ったフィットネス動作に基づいて消費カロリーを算出し、算出された消費カロリーを示す消費カロリー画像436を表示する。なお、フィットネス動作に基づいて消費カロリーを算出する方法は任意である。本実施形態においては、消費カロリーは、厳密に算出する必要はなく、概算であってよい。例えば、1回のフィットネス動作による消費カロリーの基準値が設定されており、ゲームシステム1は、フィットネス動作が1回行われる毎に、当該フィットネス動作に設定された消費カロリーの基準値を、それまでの消費カロリーに加算することによって、消費カロリーを算出してもよい。
フィットネスイベントにおいては、プレイヤは、必要に応じて手本動作画像433を見ながら、フィットネス動作を行う。本実施形態においては、ゲームシステム1は、フィットネスイベント中にプレイヤがフィットネス動作を行ったことに応じて、プレイヤと同じフィットネス動作をプレイヤキャラクタ401が行うようにプレイヤキャラクタ401を制御する。
上記「上方押し込み」のフィットネス動作は、リング型拡張装置5を押し込むように変形させ、変形させた状態を一定時間維持した後、リング型拡張装置5を元に戻す動作である。例えば、上記「上方押し込み」のフィットネス動作が行われた場合、ゲームシステム1は、リング型拡張装置5の変形状態(具体的には、変形する向きおよび変形量)を算出し、算出された変形状態に応じてリングオブジェクト402を変形させるようにプレイヤキャラクタ401の動作を制御する。具体的には、ゲームシステム1は、算出されたリング型拡張装置5の変形状態と、リングオブジェクト402の変形状態とが一致するようにプレイヤキャラクタ401の動作を制御する。したがって、プレイヤが上記「上方押し込み」のフィットネス動作を行った場合、プレイヤキャラクタ401は、プレイヤと同様に、「上方押し込み」のフィットネス動作を行うように制御される。
なお、上記「上方押し込み」のフィットネス動作が行われる場合、ゲームシステム1は、リング型拡張装置5が変形していない状態においては、上述のように、「押し込んで」というメッセージを示す画像432を表示する。また、上記の状態において、ゲームシステム1は、手本動作画像433として、リング型拡張装置5を押し込む動作を示す画像を表示する(図17参照)。また、図示しないが、ゲームシステム1は、リング型拡張装置5が所定量以上変形された状態においては、「キープ!」というメッセージを示す画像を表示し、手本動作画像433として、リング型拡張装置5を押し込んだ状態で維持する様子を示す画像を表示する。さらに、リング型拡張装置5が変形した状態が一定時間維持されると、ゲームシステム1は、「元に戻して」というメッセージを示す画像を表示し、手本動作画像433として、リング型拡張装置5に対する押し込みを元に戻す動作を示す画像を表示する。このように、ゲームシステム1は、フィットネス動作中におけるプレイヤの動作状態に応じて、プレイヤが次に行うべき動作を促す画像を表示する。これによって、フィットネス動作における動作の仕方をより詳細にプレイヤに通知することができる。
また、図17に示すように、フィットネスイベントにおいて、ゲームシステム1は、プレイヤキャラクタ401のうち、フィットネス動作に対応する部位を、当該部位とは異なる他の部位に比べて強調して表示する。なお、「フィットネス動作に対応する部位」とは、フィットネス動作においてプレイヤが主に使用する部位(フィットネス動作よって鍛えられる部位と言うこともできるし、フィットネス動作によって効果がある部位と言うこともできる)である。なお、本実施形態においては、フィットネス動作に対して、当該フィットネス動作に対応する部位が関連付けられているものとする。図17に示す例においては、「上方押し込み」のフィットネス動作においてプレイヤが使用する部位である上腕部分に対応するプレイヤキャラクタ401の部位が光って表示される(図17では、当該部位が光っている状態を斜線によって示している)。
また、図17に示すように、手本動作画像433は、当該手本動作画像433におけるプレイヤを模した人の部位のうち、フィットネス動作に対応する部位を指し示す吹き出し画像437を含む。また、本実施形態においては、吹き出し画像437は、フィットネス動作において用いられる筋肉の名前(ここでは、「三角筋」)を示す。
上記のように、本実施形態においては、ゲームシステム1は、フィットネスイベント中において、プレイヤの体の画像(すなわち、手本動作画像433)、および、プレイヤキャラクタ401の体の画像を表示装置に表示する。そして、これらの体の画像のうち、フィットネスイベント中にプレイヤに行わせるフィットネス動作に対応する部位を強調して表示する(例えば、当該部位の色を変えて表示する、あるいは、吹き出し画像によって当該部位を指し示して表示する)。これによって、フィットネス動作がどの部位に効果があるかをプレイヤにわかりやすく通知することができる。
なお、本実施形態においては、ゲームシステム1は、フィットネス動作に対応する部位を示す画像として、プレイヤキャラクタ401の体の部位を示す画像と、プレイヤの体の部位を示す画像(すなわち、手本動作画像433)との両方を表示した。ここで、他の実施形態においては、ゲームシステム1は、上記2つの画像のうちいずれか一方の画像のみを表示してもよく、それによっても本実施形態と同様の効果を奏することができる。
なお、フィットネス動作に対応する部位の強調表示は、フィットネスイベント中において常に行われてもよいし、フィットネスイベント中における所定の期間(例えば、プレイヤがフィットネス動作を行っている間)に行われてもよい。
フィットネスイベントは、プレイヤが1回のフィットネス動作を完了したことに応じて終了する。なお、プレイヤが1回のフィットネス動作を完了する度に、ゲームシステム1は、動作回数画像434および残り回数画像435が示す残り回数を更新する。
ゲームシステム1は、フィットネスイベントの次に、攻撃イベントを実行する(図14に示すステップS4)。攻撃イベントは、プレイヤキャラクタ401が敵キャラクタに対して攻撃を行うゲームイベントである。攻撃イベントにおいて、ゲームシステム1は、プレイヤキャラクタ401による敵キャラクタへの攻撃によって敵キャラクタがダメージを受ける様子を示す画像を表示装置に表示する。上記のように、本実施形態においては、フィットネスイベント中にプレイヤがフィットネス動作を行ったことに応じて、プレイヤキャラクタ401による敵キャラクタに対する攻撃が行われる。つまり、本実施形態においては、フィットネスイベント中にプレイヤが行うフィットネス動作が攻撃指示を表しており、当該フィットネス動作による攻撃指示に応じて、プレイヤキャラクタ401による敵キャラクタに対する攻撃が行われる。
図18は、攻撃イベントにおいて表示される画像の一例を示す図である。攻撃イベントにおいて、ゲームシステム1は、プレイヤキャラクタ401による敵キャラクタへの攻撃を示すエフェクト画像441を表示する。なお、本実施形態においては、ゲームシステム1は、フィットネスイベント中においてプレイヤによるフィットネス動作に応じて行われるフィットネス動作とは異なる動作によって、敵キャラクタに対する攻撃動作をプレイヤキャラクタ401に行わせる。例えば、ゲームシステム1は、フィットネスイベントにおいては、プレイヤのフィットネス動作に応じてプレイヤキャラクタ401が魔力を溜めるようにプレイヤキャラクタ401の動作を制御し、攻撃イベントにおいては、溜められた魔力がリングオブジェクト402から放出される魔法によってプレイヤキャラクタ401が敵キャラクタを攻撃するようにプレイヤキャラクタ401の動作を制御する。
また、ゲームシステム1は、敵キャラクタに対して与えられたダメージ量を示す数値(図18においては、「114」)を表示する。なお、ダメージ量(換言すれば、体力の減少量)の算出方法については後述する。また、ゲームシステム1は、攻撃を受けた敵キャラクタの体力を示すゲージ画像442を表示する。ゲージ画像442は、上記ダメージ量だけ体力が減少するように変化して表示される。
なお、フィットネス動作に関連付けられるプレイヤキャラクタ401の行動が回復である場合には、攻撃イベントにおいて、ゲームシステム1は、プレイヤキャラクタ401に対して体力の回復が行われることを示すエフェクト画像を表示し、回復量を示す数値を表示する。また、ゲームシステム1は、プレイヤキャラクタ401の体力を示すゲージ画像を、回復量だけ体力が上昇するように変化させて表示する。以上によって、攻撃イベントが終了する。
攻撃イベントにおいて敵キャラクタにダメージが与えられた場合、ゲームシステム1は、当該敵キャラクタが倒された(すなわち、体力値が0になった)か否かを判定する。全ての敵キャラクタが倒された場合、ゲームシステム1は、戦闘イベントを終了する。この場合、プレイヤキャラクタ401が戦闘に勝利し、戦闘イベントに設定される達成条件が満たされたこととなる。
一方、倒されていない敵キャラクタが存在する場合、上述の単位動作回数のフィットネス動作が行われていなければ(換言すれば、単位動作回数のフィットネスイベントが実行されていなければ)、フィットネスイベントが再度実行される(図14参照)。このとき、フィットネスイベントおよび攻撃イベントは、単位動作回数実行されるまで、または、全ての敵キャラクタが倒されるまで、繰り返し実行される。
単位動作回数のフィットネスイベントおよび攻撃イベントが実行され、倒されていない敵キャラクタが存在する場合、ゲームシステム1は、攻撃ターンを終了する(図14参照)。攻撃ターンが終了すると、防御ターンが開始される。以下、プレイヤキャラクタ401の防御ターンにおけるゲームの流れについて説明する。
防御ターンが開始されると、ゲームシステム1は、フィットネスイベントを実行する(図14に示すステップS5)。ここで、本実施形態においては、防御ターンにおいては、プレイヤが行うべきフィットネス動作は、所定のフィットネス動作(ここでは、「腹部押し込み」のフィットネス動作)に定められている。つまり、プレイヤがフィットネス動作を選択する選択イベントは防御ターンにおいては実行されない。また、準備動作画像が表示される準備イベントも防御ターンにおいては実行されない。ただし、他の実施形態においては、防御ターンにおいても攻撃ターンと同様に、準備イベントが実行されてもよい。また、他の実施形態においては、防御ターンにおいても攻撃ターンと同様に、選択イベントが実行されてもよい。
図19は、防御ターンにおけるフィットネスイベントにおいて表示される画像の一例を示す図である。防御ターンにおけるフィットネスイベントにおいても、攻撃ターンにおけるフィットネスイベントと同様、ゲームシステム1は、プレイヤキャラクタ401および敵キャラクタ403〜405を含むゲーム空間を示す画像431を表示装置に表示する。また、ゲームシステム1は、フィットネス動作を行うことをプレイヤに促すメッセージ(図19に示す例においては、「押し込んで」というメッセージ)を示す画像432、手本動作画像433、動作回数画像434、残り回数画像435、および、消費カロリー画像436を表示する。なお、図19に示す例においては、手本動作画像433は、上記「腹部押し込み」のフィットネス動作の手本の画像を含む。また、防御ターンにおいて行われるフィットネス動作である「腹部押し込み」については、単位動作回数は2回に設定されており、動作回数画像434は、単位動作回数が2回であって残り回数が2回であることを示している。
なお、防御ターンにおいても攻撃ターンと同様、プレイヤがフィットネス動作を行った場合、ゲームシステム1は、プレイヤと同様のフィットネス動作を行うようにプレイヤキャラクタ401を制御する。また、ゲームシステム1は、プレイヤキャラクタ401のうち、フィットネス動作に対応する部位(図19においては、腹部)を、当該部位とは異なる他の部位に比べて強調して表示する。また、手本動作画像433は、当該手本動作画像433におけるプレイヤを模した人の部位のうち、フィットネス動作に対応する部位を指し示す吹き出し画像437を含む。また、吹き出し画像437は、フィットネス動作において動かされる筋肉の名前(ここでは、「腹直筋」)を示す。
上記「腹部押し込み」のフィットネス動作は、リング型拡張装置5の一方側を腹部に当てながら他方側を押し込むように変形させ、変形させた状態を一定時間維持する動作である。防御ターンにおけるフィットネスイベントにおいて、プレイヤがフィットネス動作を終了すると、フィットネスイベントが終了する。具体的には、プレイヤが、リング型拡張装置5の一方側を腹部に当てながら他方側を押し込むように変形させた状態を一定時間維持した場合、フィットネスイベントが終了する。つまり、ゲームシステム1は、リング型拡張装置5が変形された状態が一定時間維持されたか否かを判別し、維持されたと判別した場合、フィットネスイベントを終了する。ゲームシステム1は、フィットネスイベントの次に、防御イベントを実行する(図14に示すステップS6)。
図20は、防御ターンにおける防御イベントにおいて表示される画像の一例を示す図である。防御イベントにおいては、ゲームシステム1は、敵キャラクタ(ここでは、敵キャラクタ404)がプレイヤキャラクタ401に攻撃を行う様子を示すゲーム画像を表示する。このとき、ゲームシステム1は、敵キャラクタによるプレイヤキャラクタ401への攻撃を示すエフェクト画像451を表示する。また、ゲームシステム1は、プレイヤキャラクタ401に対して与えられたダメージ量を算出し、当該ダメージ量を示す数値(図20においては、「54」)を表示する。なお、ダメージ量(換言すれば、体力の減少量)の算出方法については後述する。また、防御イベントにおいて、ゲームシステム1は、攻撃を受けたプレイヤキャラクタ401の体力を示すゲージ画像452を表示する。ゲージ画像452は、上記ダメージ量だけ体力が減少するように変化して表示される。以上の表示が終了した後、防御イベントは終了する。
上記防御イベントにおいてプレイヤキャラクタ401にダメージが与えられた場合、ゲームシステム1は、プレイヤキャラクタ401が倒された(すなわち、体力値が0になった)か否かを判定する。プレイヤキャラクタ401が倒された場合、ゲームシステム1は、戦闘イベントを終了する。この場合、プレイヤキャラクタ401が戦闘に敗北し、戦闘イベントに設定される達成条件は満たされないこととなる。
一方、プレイヤキャラクタ401が倒されていない場合、上述の単位動作回数のフィットネスイベント(換言すれば、フィットネス動作)が実行されていなければ、フィットネスイベントが再度実行される(図14参照)。このとき、フィットネスイベントおよび防御イベントは、単位動作回数実行されるまで、または、プレイヤキャラクタ401が倒されるまで、繰り返し実行される。
単位動作回数のフィットネスイベントが実行され、プレイヤキャラクタ401が倒されていない場合、防御ターンが終了する(図14参照)。防御ターンが終了すると、攻撃ターンが再度行われる。以降においては、プレイヤキャラクタ401が倒されるか、または、全ての敵キャラクタが倒されるまで、攻撃ターンと防御ターンとが交互に繰り返し行われる。
上記のように、本実施形態においては、ゲームシステム1は、攻撃ターンにおける第1フィットネスイベント中にプレイヤが行ったフィットネス動作に応じて、敵キャラクタを攻撃する攻撃イベントを実行し、戦闘イベント中において、第1フィットネスイベントとは異なる第2フィットネスイベント(すなわち、防御ターンにおけるフィットネスイベント)を実行する。そして、ゲームシステム1は、第2フィットネスイベント中にプレイヤが行ったフィットネス動作に応じて、敵キャラクタからの攻撃を防御する防御イベントを実行する。これによれば、戦闘イベントにおける攻撃と防御との両方に関してフィットネス動作が反映されるので、プレイヤにフィットネス動作を行わせる機会を増やすことができる。
また、本実施形態においては、上記第2フィットネスイベントにおいてプレイヤに行わせるフィットネス動作は、当該プレイヤによる指示とは独立して決定される(プレイヤによる指示無しで決定される、と言うこともできる)。つまり、第2フィットネスイベントは、プレイヤによる指示とは独立して決定される。したがって、防御ターンにおいては、プレイヤがフィットネス動作を選択することなしにフィットネスイベントが開始される。これによれば、敵キャラクタからの攻撃をプレイヤキャラクタ401が防御するというゲームの流れが選択イベントによって妨げられることがなく、ゲームシステム1は、当該ゲームの流れをテンポ良く行うことができる。
なお、本実施形態においては、防御ターンにおいてプレイヤが行うフィットネス動作は1種類であるとするが、他の実施形態においては、複数種類のフィットネス動作のうちから1つが指定されてもよい。このとき、フィットネス動作は、本実施形態と同様、フィットネス動作は、プレイヤによる指示とは独立して決定されてもよい。具体的には、フィットネス動作は、ゲームプログラムにおいて定められたアルゴリズムに従って指定され、プレイヤによって選択されなくてもよい。これによっても本実施形態と同様、敵キャラクタからの攻撃をプレイヤキャラクタ401が防御するというゲームの流れをテンポ良く行うことができる。また、他の実施形態においては、防御ターンにおいても攻撃ターンと同様、フィットネス動作をユーザが選択するようにしてもよい。
[2−2.戦闘イベントに応じたゲーム進行]
本実施形態におけるゲームにおいては、上記で説明した戦闘イベントが繰り返し実行される。例えば、ゲームシステム1は、プレイヤキャラクタ401がマップ上を移動している際に敵キャラクタと遭遇する毎に、戦闘イベントを実行する。また、ゲームシステム1は、戦闘イベントの達成に応じてゲームを進行させる。例えば、ゲームシステム1は、特定の敵キャラクタとの戦闘にプレイヤキャラクタ401が勝利したことに応じて、ゲームを進行させる。なお、「ゲームを進行させる」とは、ゲーム状況を進める任意の処理でよく、例えば、プレイヤキャラクタ401が新たなステージに進むことができるようにすることであってもよいし、ゲームのストーリーを進めることであってもよいし、プレイヤキャラクタ401に新たな能力またはアイテムを付与することであってもよい。上記のように、本実施形態においては、プレイヤは、戦闘イベントを繰り返しながらゲームを進行させる。つまり、プレイヤは、ゲームにおいて繰り返しフィットネス動作を行うことによってゲームを進行させる。
[2−3.フィットネス動作に基づくゲーム処理]
上述のように、本実施形態においては、ゲームシステム1は、プレイヤによるフィットネス動作に基づくゲーム処理を実行する。具体的には、ゲームシステム1は、プレイヤによるフィットネス動作の評価を行い、評価結果に基づいて、当該フィットネス動作に関連付けられるプレイヤキャラクタ401の行動による効果量(すなわち、ダメージ量または回復量)を算出する。以下、フィットネス動作に基づいて効果量を算出する方法について説明する。
まず、フィットネス動作の評価方法について説明する。本実施形態において、複数種類のフィットネス動作は、キープ動作グループ、反復動作グループ、および、ポーズ動作グループという3つのグループに分けることができる。ゲームシステム1は、これら3つのグループに応じて異なる方法でフィットネス動作の評価を行う。なお、本実施形態においては、ゲームシステム1は、フィットネス動作の評価結果として評価点を算出する。評価点が高いことは、評価が良いことを意味する。
キープ動作グループに属するフィットネス動作は、プレイヤが、上述の開始体勢から、体(体の一部であってもよい)を所定の体勢(「キープ体勢」と呼ぶ)にして一定時間維持する動作を含む動作である。例えば、上述の「上方押し込み」および「腹部押し込み」は、キープ動作グループに属するフィットネス動作である。なお、キープ動作グループに属するフィットネス動作は、プレイヤが腕を動かすフィットネス動作に限らない。例えば、プレイヤが直立する開始体勢から、スクワットのように膝を曲げたキープ体勢にして一定時間維持した後で、開始体勢に戻すフィットネス動作も、キープ動作グループに属するフィットネス動作である。
キープ動作グループに属するフィットネス動作については、ゲームシステム1は、プレイヤが正しいキープ体勢をとっていること、および、十分な時間キープ体勢を維持していることを評価して、評価点を算出する。具体的には、評価点は次のようにして算出される。
まず、ゲームシステム1は、キープ体勢をとっているプレイヤの体の一部の傾きと、設定される理想値との差に基づいて、評価係数を算出する。評価係数は、所定の範囲内(例えば、0から1の範囲内)で、プレイヤの体の一部の傾きが理想値に近いほど大きい値となるように算出される。
次に、ゲームシステム1は、プレイヤがキープ体勢をとっている期間において、算出された評価係数に応じた継続時間の間、当該評価係数に応じた傾きをプレイヤが維持した場合、評価点を加算する。ゲームシステム1は、上記期間の間、評価点を累積加算し、累積加算された評価点を評価結果とする。ここで、継続時間は、評価係数に応じて設定され、評価係数が高いほど短くなるように設定される。例えば、継続時間は、次のように設定される。
・評価係数a=1の場合、継続時間t=3(フレーム時間)
・評価係数1>a≧0.9の場合、継続時間t=5(フレーム時間)
・評価係数0.9>a≧0.6の場合、継続時間t=10(フレーム時間)
・評価係数0.6>a≧0.3の場合、継続時間t=20(フレーム時間)
・評価係数0.3>a≧0の場合、継続時間t=40(フレーム時間)
以上より、キープ体勢をとっている期間において、プレイヤの体の一部が理想値に近い傾きであれば、短時間で評価点が加算され、プレイヤの体の一部が理想値から離れた傾きであれば、評価点がなかなか加算されないこととなる。したがって、本実施形態においては、キープ体勢をとっている期間において、プレイヤが良い体勢(すなわち、傾きが理想値に近い体勢)をとっていれば、評価点が多く加算され、合計の評価点が高くなる。また、プレイヤがある傾きでキープ体勢を維持すると仮定する場合、キープ体勢を維持する時間が長い方がキープ体勢を維持する時間が短い場合よりも評価点が多く加算され、合計の評価点が高くなる。
反復動作グループに属するフィットネス動作は、1回のフィットネス動作において所定の運動を所定回数反復して行わせる動作である。例えば、もも上げを所定回数反復して行う動作や、体を左右にひねる運動を所定回数反復して行うフィットネス動作は、反復動作グループに属するフィットネス動作である。
反復動作グループに属するフィットネス動作については、ゲームシステム1は、所定の動作を行ったときのプレイヤの体の一部の傾きと、当該体の一部の加速度とに基づいて評価点を算出する。具体的には、ゲームシステム1は、所定の基準に対する、上記所定の動作を行ったときの傾きの大きさに応じて高くなるように、評価点を算出する。また、ゲームシステム1は、上記所定の動作を行ったときの加速度の大きさに応じて高くなるように、評価点を算出する。つまり、反復動作グループに属するフィットネス動作については、プレイヤは、所定の動作を勢いよく(つまり、加速度が大きくなるように)、しっかりと(つまり、基準に対して上記傾きが大きくなるように)行うことによって高い評価点を得ることができる。本実施形態においては、ゲームシステム1は、所定の動作の1回毎に評価点を算出し、複数回の所定の動作による評価点を合計することで、1回のフィットネス動作における評価点を算出する。
なお、他の実施形態においては、反復動作グループに属するフィットネス動作については、ゲームシステム1は、所定の運動を所定回数行った速さに基づいて(換言すれば、所定の運動を所定回数行うのに要した時間に基づいて)評価点を算出してもよい。具体的には、ゲームシステム1は、上記速さが早くなる(換言すれば、上記時間が短くなる)ことに応じて高くなるように、評価点を算出してもよい。このとき、反復動作グループに属するフィットネス動作については、プレイヤは、運動を速く行うことによって高い評価点を得ることができる。
ポーズ動作グループに属するフィットネス動作は、プレイヤが、所定の第1体勢から、第1体勢とは異なる第2体勢へと変化させる動作である。例えば、プレイヤが直立する第1体勢から、膝を曲げて手を上方へ伸ばした第2体勢へと変化させるフィットネス動作は、ポーズ動作グループに属するフィットネス動作である。
ポーズ変化動作に属するフィットネス動作については、ゲームシステム1は、プレイヤが第1体勢をとった時点から第2体勢をとった時点までの変化時間に基づいて評価点を算出する。具体的には、ゲームシステム1は、上記変化時間が長くなるに応じて高くなるように、評価点を算出する。つまり、ポーズ変化動作に属するフィットネス動作については、プレイヤは、体勢を変化させる動作をゆっくり行うことによって高い評価点を得ることができる。なお、本実施形態においては、評価点には上限が設定される。したがって、上記変化時間がある時間以上であれば評価点は上限値となり、当該時間以上に変化時間が長くなっても評価点は上がらない。
上記3つのグループのいずれのグループに属するフィットネス動作についても、ゲームシステム1は、プレイヤによるフィットネス動作に応じたセンサの出力(例えば、歪みゲージ、または、慣性センサの出力)に基づく動作データを取得し、当該動作データに基づいて評価点を算出する。なお、動作データは、プレイヤによるフィットネス動作に応じた内容を示すデータである。本実施形態においては、動作データは、歪みゲージおよび/または慣性センサの出力を示すデータである。なお、他の実施形態においては、動作データは、歪みゲージおよび/または慣性センサの出力に何らかの処理(例えば、データ形式の変換、および/または、出力値に対する計算処理等)が行われることによって得られるデータであってもよい。
上記キープ動作グループに属するフィットネス動作については、ゲームシステム1は、上記キープ体勢をとっているプレイヤの体の一部の傾きを、リング型拡張装置5の変形量、または、コントローラの傾きに基づいて算出することができる。なお、リング型拡張装置5の変形量は、操作データ(具体的には、リング操作データ)が示す歪みゲージの出力に基づいて算出される。コントローラの傾きは、操作データ(具体的には、左コントローラ操作データまたは右コントローラ操作データ)が示す慣性センサの出力に基づいて算出される。キープ体勢が、プレイヤがリング型拡張装置5を押し込んだ体勢である場合には、ゲームシステム1は、リング型拡張装置5の変形量に基づいてプレイヤの体の一部(ここでは、腕)の傾きを算出することができる。また、キープ体勢が、プレイヤが膝を曲げた体勢である場合には、ゲームシステム1は、プレイヤの足に装着された左コントローラ3の傾きに基づいてプレイヤの体の一部(ここでは、足)の傾きを算出することができる。そして、ゲームシステム1は、算出されたプレイヤの体の一部の傾きに基づいて、上述した方法によって評価点を算出することができる。
また、反復動作グループに属するフィットネス動作については、ゲームシステム1は、所定回数反復して行う上記所定の運動を行ったときのプレイヤの体の一部の傾きおよび加速度を、コントローラの傾きおよび加速度に基づいて算出することができる。なお、コントローラの傾きは、動作データが示す角速度センサの出力に基づいて算出することができる。コントローラの加速度は、上記動作データが示す加速度センサの出力に基づいて算出することができる。例えば、上記所定の運動としてもも上げが行われる場合、ゲームシステム1は、プレイヤの足に装着された左コントローラ3の傾きに基づいて、プレイヤの体の一部(ここでは、太もも)の傾きを算出することができ、当該左コントローラ3の加速度に基づいて、当該体の一部の加速度を算出することができる。
また、ポーズ変化動作に属するフィットネス動作については、ゲームシステム1は、プレイヤが第1体勢をとったこと、および、第2体勢をとったことを、コントローラの傾きに基づいて算出することができる。例えば、プレイヤが上記第2体勢として、膝を曲げて手を上方へ伸ばした体勢をとる場合、ゲームシステム1は、プレイヤの足に装着された左コントローラ3の傾きに基づいて、プレイヤが膝を曲げた体勢をとっていることを判別することができ、プレイヤが把持するリング型拡張装置5に装着された右コントローラ4の傾きに基づいて、プレイヤが手を上方に伸ばした体勢をとっていることを判別することができる。そして、ゲームシステム1は、これらの判別結果に基づいて、プレイヤが第1体勢をとった時点から第2体勢をとった時点までの変化時間を算出することができ、評価点を算出することができる。
なお、例えばプレイヤの体の柔軟性が低かったり、プレイヤが体を痛めていたりする場合には、上記第1または第2体勢をとることがプレイヤにとって難しいことがあり得る。そのため、本実施形態においては、プレイヤが第1または第2体勢をとったと判別されない状態で所定時間が経過した場合、ゲームシステム1は、プレイヤが第1または第2体勢をとったと判別されやすくなるように閾値を変更する。例えば、あるフィットネス動作の評価結果を算出する処理において、右コントローラ4のある方向における角度が閾値(具体的には、90°)以上となった場合に、プレイヤが第2体勢をとったと判別される例を考える。この例において、右コントローラ4の上記方向における角度が90°未満の状態で上記所定時間が経過した場合、ゲームシステム1は、判別のための閾値を、90°から所定値だけ減少させた値(例えば、80°)へと変更する。その結果、右コントローラ4の上記方向における角度が80°である体勢をプレイヤがとった場合に、プレイヤが第2体勢をとったと判別されることとなる。以降においては、ゲームシステム1は、当該フィットネス動作の評価結果を算出する処理において、変更後の閾値を用いて判別を行う。なお、ゲームシステム1は、変更後の閾値を用いて判別を行った場合においても、プレイヤが第1または第2体勢をとったと判別されない状態で所定時間が経過した場合には、変更後の閾値をさらに上記所定値だけ減少させてもよい。なお、閾値には下限値が設定されてもよい。
なお、他の実施形態においては、ゲームシステム1は、上記の場合において、上記所定の目標体勢に達していないプレイヤの体勢に基づいて、変更後の閾値を設定してもよい。例えば、上記の例において、右コントローラ4の上記方向における角度が70°である体勢をプレイヤが一定時間維持したと判別された場合、ゲームシステム1は、判別のための閾値を、90°から70°へと変更してもよい。このように、ゲームシステム1は、プレイヤが実際にとった体勢に基づいて、目標体勢に達したと判別されるように閾値を変更してもよい。
また、例えば、あるフィットネス動作の評価結果を算出する処理において、プレイヤがリング型拡張装置5を所定量Aだけ変形させた場合に、プレイヤが第2体勢をとったと判別される例を考える。この例において、リング型拡張装置5の変形量が上記所定量Aに満たない状態で一定時間維持された場合、ゲームシステム1は、判別のための閾値を、上記所定量Aより小さい値Bへと変更する。その結果、リング型拡張装置5の変形量がBとなる体勢で、プレイヤは上記第2体勢をとったと判別されることとなる。
なお、上記の例においては、ポーズ変化動作に属するフィットネス動作における第2体勢を判別する場合に閾値を変更する例について説明した。ここで、他の実施形態においては、ゲームシステム1は、ポーズ変化動作とは異なる他のグループに属するフィットネス動作における体勢を判別する場合においても、上記の例と同様にして閾値を変更するようにしてもよい。
上記のように、本実施形態においては、ゲームシステム1は、所定の目標体勢をとるフィットネス動作をプレイヤに行わせるフィットネスイベントにおいて、当該所定の目標体勢に達していない状態が所定時間継続されたことが動作データに基づいて判別された場合、当該プレイヤが当該目標体勢をとったと判別されやすくなるように、判別に用いられる閾値を更新する。換言すれば、ゲームシステム1は、フィットネスイベントにおいて、当該フィットネスイベント中に取得された動作データが目標体勢に対応する値に達していない状態が所定時間継続する場合、動作データが当該目標体勢に対応する値に達した状態になりやすくなるように、当該目標体勢に関する閾値を更新する。これによれば、プレイヤは無理な体勢をとることなくフィットネス動作を行うことができる。また、本実施形態においては、フィットネスイベントが行われる期間に閾値が自動的に変更されるので、プレイヤは設定変更の操作を行う必要がなく、プレイヤの手間を省くことができる。
なお、ゲームシステム1は、目標体勢に達していない状態におけるプレイヤの体勢が、上記「目標体勢」にある程度近いこと(例えば、目標体勢に達していない状態におけるプレイヤの体の一部の傾きと、「目標体勢」における体の一部の傾きとの差が所定値以下であること)を条件として、プレイヤが当該目標体勢をとったものとみなすようにしてもよい。これによれば、フィットネス動作において定められている本来の目標体勢とは全く異なる体勢をプレイヤがとった場合に閾値が変更されてしまう可能性を低減することができる。
なお、上記の評価方法は一例であり、ゲームシステム1は、任意の方法でフィットネス動作の評価を行ってよい。例えば、他の実施形態においては、ゲームシステム1は、フィットネス動作によって消費される消費カロリーに基づいて当該フィットネス動作の評価を行ってもよいし、フィットネス動作の運動強度に基づいて当該フィットネス動作の評価を行ってもよい。
ゲームシステム1は、上記のように算出される評価結果に基づいて、プレイヤキャラクタ401の行動による効果量を算出する。本実施形態においては、効果量は、少なくとも次の情報に基づいて算出される。
・フィットネス動作の評価結果
・フィットネス動作の種類毎に設定される効果基本値
・プレイヤパラメータ
上記評価結果に基づいて効果量を算出することによって、ゲームシステム1は、敵キャラクタの体力値を減少させる量を、プレイヤが行ったフィットネス動作に対する評価結果に応じて変化させることができる。これによれば、良い評価結果を得るべくフィットネス動作を行う質を向上するモチベーションをプレイヤに与えることができる。
上記効果基本値は、フィットネス動作の種類毎に設定される。上述のように、選択イベントにおいて表示される説明画像413は、フィットネス動作に設定された効果基本値を示す。なお、プレイヤキャラクタ401の行動が攻撃である場合、効果基本値は当該行動の攻撃力であり、プレイヤキャラクタ401の行動が回復である場合、効果基本値は当該行動の回復力であり、プレイヤキャラクタ401の行動が防御である場合、効果基本値は当該行動の防御力である。
上記効果基本値を用いることによって、ゲームシステム1は、敵キャラクタの体力値を減少させる量を、プレイヤに行わせるフィットネス動作の種類に応じて(換言すれば、フィットネスイベントの種類に応じて)変化させることができる。これによれば、ゲームの戦略性を向上させることができる。また、フィットネス動作の種類に応じてゲーム上の効果が異なるので、いろいろな種類のフィットネス動作を行うモチベーションをプレイヤに与えることができる。
上記のように、本実施形態においては、ゲームシステム1は、敵キャラクタの体力値を減少させる量をフィットネス動作の内容に応じて変化させる。なお、「フィットネス動作の内容に応じて(上記の量を)変化させる」とは、上記のように、戦闘イベント中に取得された動作データに関する評価(例えば、当該動作データが、効果的なフィットネス動作を示しているか否かの評価。すなわち、フィットネス動作の評価結果)に応じて変化させる態様であってもよいし、フィットネス動作の種類に応じて変化させる態様であってもよい。
また、「フィットネス動作の内容に応じて(上記の量を)変化させる」とは、フィットネス動作の負荷に応じて変化させる態様であってもよい。なお、フィットネス動作の負荷とは、フィットネスイベント前に予め設定される値(例えば、フィットネスイベント関して設定される、当該フィットネスイベントに対応するフィットネス動作の負荷を示す値)であってもよいし、フィットネスイベント中にプレイヤが行ったフィットネス動作に基づいて算出される値であってもよい。例えば、ゲームシステム1は、フィットネス動作の負荷が大きい場合(例えば、上記単位動作回数が多い場合、あるいは、フィットネス動作について設定される消費カロリーの基準値が大きい場合)、当該フィットネス動作の負荷が小さい場合よりも、敵キャラクタの体力値を減少させる量を大きくするようにしてもよい。例えば、ゲームシステム1は、フィットネス動作の種類毎に設定される上記効果基本値を、当該フィットネス動作について設定される負荷に応じて(具体的には、負荷が大きいフィットネス動作に設定される効果基本値ほど、効果基本値が大きくなるように)設定してもよい。また、ゲームシステム1は、プレイヤが実際に行ったフィットネス動作の負荷を算出し、算出された負荷が大きいほど、敵キャラクタの体力値を減少させる量を大きくするようにしてもよい。例えば、ゲームシステム1は、フィットネス動作の評価を行う際に、算出された負荷が大きいほど高い評価点となるように評価を行ってもよい。上記によれば、プレイヤは、フィットネス動作をしっかり行うことによって良いゲーム結果を得られるので、フィットネス動作を行う質を向上するモチベーションをプレイヤに与えることができる。
上記プレイヤパラメータは、プレイヤに関連付けられる(プレイヤキャラクタに関連付けられるとも言える)パラメータである。ゲームシステム1は、プレイヤパラメータを、ゲーム進行に応じて高くなるように設定する。例えば、上記プレイヤパラメータは、戦闘イベントにおいて敵キャラクタに勝利することに応じて増加されてもよいし、ゲームのストーリーが進んだことに応じて増加されてもよい。なお、ゲームのストーリーが進むことの例としては、例えば、プレイヤキャラクタ401が新しいゲームステージに進むことが挙げられる。また、プレイヤキャラクタ401に経験値およびレベルが設定され、経験値の増加に応じてプレイヤキャラクタ401のレベルが増加する場合において、プレイヤパラメータは、当該レベルおよび/または経験値の増加に応じて増加されてもよい。
プレイヤキャラクタ401の行動による効果量は、上記3つのパラメータ(すなわち、評価結果、効果基本値、および、プレイヤパラメータ)が高いほど大きくなるように算出される。例えば、上記効果量は、効果基本値に、評価点とプレイヤパラメータとを乗算することによって算出されてもよい。
なお、ゲームシステム1は、上記3つのパラメータに加え、他のパラメータに基づいて、プレイヤキャラクタ401の行動による効果量を算出してもよい。本実施形態においては、上記効果量は、後述する身体情報(具体的には、運動能力情報)にも基づいて算出される。また例えば、プレイヤキャラクタ401の行動が攻撃である場合、ゲームシステム1は、上記3つのパラメータに加え、敵キャラクタの防御力に基づいて、敵キャラクタのダメージ量を算出してもよい。また例えば、プレイヤキャラクタ401の行動が防御である場合、ゲームシステム1は、上記3つのパラメータに加え、敵キャラクタの攻撃力に基づいて、プレイヤキャラクタ401のダメージ量を算出してもよい。
以上のように、本実施形態においては、プレイヤによるフィットネス動作の評価結果に基づいて、プレイヤキャラクタ401の行動による効果量が決定される。また、上記プレイヤパラメータに基づいて上記効果量が決定される。ここで、本実施形態においては、ゲームシステム1は、戦闘イベントにおいては、ゲーム進行に応じて強い敵キャラクタ(例えば、体力が多い、攻撃力が高い、および/または、防御力が高いキャラクタ)を登場させやすくする。具体的には、ゲームシステム1は、第1の敵キャラクタが登場する戦闘イベントがプレイヤによって達成された後で、当該第1の敵キャラクタよりも体力値が大きい第2の敵キャラクタが登場する戦闘イベントを実行する。これによって、プレイヤがゲームの達成感を十分に味わうことができるようにするためである。
ここで、強い敵キャラクタを倒すためには、上記効果量が大きくなるようにフィットネス動作を行うことが必要となるが、実際にはプレイヤの運動能力が目に見えて上昇するとは限らない。実際には、プレイヤの運動能力は、少しだけ上昇する、あるいは、ほとんど変わらない場合も考えられる。そのため、仮に、フィットネス動作の評価結果のみに基づいて上記効果量を決定するとすれば、ゲームが進むにつれて強い敵キャラクタが登場した場合に、効果量はあまり増加せず、敵キャラクタを倒すことができなくなってしまうおそれがある。また、仮に、ゲームが進んでも敵キャラクタの強さが変わらないとすれば、プレイヤがゲームに飽きてしまい、フィットネス運動を継続して行わなくなってしまうおそれがある。
そこで、本実施形態においては、ゲームシステム1は、ゲームの進行に応じてプレイヤパラメータを上昇させ、プレイヤパラメータに基づいて上記効果量を算出する。これによれば、プレイヤによるフィットネス動作の評価結果が同じであっても、ゲームの進行に応じて上記効果量が大きくなるので、強い敵キャラクタを倒しやすくなる。本実施形態によれば、仮にプレイヤの実際の運動能力が大きく向上していない場合であっても、ゲームにおいてプレイヤは自身が成長した達成感を得ることができ、ゲームシステム1は、ゲームを継続的に行うことによってフィットネス動作を継続的に行うモチベーションをプレイヤに与えることができる。また、ゲームシステム1は、強い敵キャラクタを倒すことによる達成感をプレイヤに与えることによっても、ゲームを継続的に行うモチベーションをプレイヤに与えることができる。
以上のように、本実施形態においては、ゲームシステム1は、達成条件(すなわち、戦闘イベントにおいて勝利すること)が満たされたか否かを、上記動作データと、上記プレイヤパラメータとに基づくゲーム結果(具体的には、ダメージ量だけ減少された敵キャラクタの体力値)に基づいて判定する。そして、ゲームシステム1は、戦闘イベントの達成に応じてゲームを進行させ、プレイヤパラメータを、ゲーム進行に応じて達成条件が満たされやすくなるように(すなわち、敵キャラクタを倒しやすくするべく、値を増加させるように)更新する。換言すれば、ゲームシステム1は、戦闘イベント中に取得された動作データが同一である場合(例えば、プレイヤが行ったフィットネス動作の内容が同一である場合)における敵キャラクタの体力値の減少量がゲームの進行に応じて大きくなるように、プレイヤパラメータを更新する。これによって、ゲームを継続的に行うことによってフィットネス動作を継続的に行うモチベーションをプレイヤに与えることができる。
[2−4.待機ターン数の設定]
上述のように、本実施形態においては、フィットネス動作には待機ターン数が設定される。ゲームシステム1は、上述の攻撃ターンにおける選択イベントにおいてフィットネス動作が選択された場合、現在のターンから、当該フィットネス動作に設定される待機ターン数が経過するまでの期間においては、当該フィットネス動作を選択できないようにする。例えば、「上方押し込み」のフィットネス動作については待機ターン数が2に設定されているものとする。このとき、プレイヤが「上方押し込み」を選択した場合、「上方押し込み」のフィットネス動作を行った攻撃ターンの次の2回の攻撃ターンにおける選択イベントにおいては、ゲームシステム1は、「上方押し込み」を選択肢として提示しない。つまり、上記2回の攻撃ターンにおいては、プレイヤは、「上方押し込み」以外の選択肢からフィットネス動作を選択することとなる。
なお、ある攻撃ターンにおいて、待機ターン数による制限が無いとすれば選択肢となる各フィットネス動作のうちの全てのフィットネス動作が、待機ターン数による制限によって選択できない場合、ゲームシステム1は、当該攻撃ターンをスキップして防御ターンを行うようにしてもよい。また、あるフィットネス動作について待機ターン数による制限が課される場合において、プレイヤキャラクタ401が所定のアイテムを使用することによって、当該制限が解除されて当該フィットネス動作が選択可能となるようにしてもよい。
なお、本実施形態においては、フィットネスイベントにおいて行われるフィットネス動作としてあるフィットネス動作が1回指定された場合、ゲームシステム1は、当該フィットネス動作について待機ターン数による制限をかけるようにする。ここで、他の実施形態においては、ゲームシステム1は、フィットネス動作が2回以上の所定回数指定された場合に、当該フィットネス動作について待機ターン数による制限をかけるようにしてもよい。なお、上記所定回数は、フィットネス動作の種類毎に設定されてもよいし、各フィットネス動作について同じ回数であってもよい。
上記のように、本実施形態においては、ゲームシステム1は、所定の回数(本実施形態においては、1回)指定されたフィットネス動作(換言すれば、フィットネスイベント)について、再度指定可能となる条件(すなわち、待機ターン数が経過すること)を満たすまでの間、指定されることを制限する。ここで、プレイヤが同じフィットネス動作を続けて行うと、同じ部位の筋力ばかりを使うことになる結果、疲れてしまうおそれがある。これに対して、本実施形態によれば、プレイヤが特定のフィットネス動作ばかりを行って疲れてしまう可能性を低減することができる。また、プレイヤは、同じフィットネス動作ばかりを繰り返すことができないので、複数回の攻撃ターンにおいて行うフィットネス動作の組を考慮して戦闘イベントを行うこととなる。これによって、ゲームの戦術性を向上することができる。
なお、本実施形態においては、フィットネス動作が再度指定可能となる条件は、当該フィットネス動作に関するフィットネスイベントが最後に実行されてから、当該フィットネス動作とは異なる他のフィットネス動作に関するフィットネスイベントが実行された回数に関する条件であると言うことができる。ここで、他の実施形態においては、フィットネス動作が再度指定可能となる条件は、当該フィットネス動作に関するフィットネスイベントが最後に実行されてからの経過時間に関する条件であってもよい。例えば、上記待機ターン数に代えて待機時間がフィットネス動作に設定されてもよい。このとき、ゲームシステム1は、選択イベントにおいてフィットネス動作が選択された場合、当該フィットネス動作に関するフィットネスイベントが終了してから上記待機時間が経過するまでの期間においては、当該フィットネス動作を選択できないようにする。これによっても本実施形態と同様、プレイヤが特定のフィットネス動作ばかりを行って疲れてしまうおそれを低減することができる。また、多くの種類のフィットネス動作をプレイヤに行わせることで、全身をバランス良く用いてフィットネス動作を行わせることができる。
なお、他の実施形態においては、フィットネス動作が再度指定可能となる条件は、上記回数に関する条件と、上記経過時間に関する条件との少なくとも1つを含むものであってもよい。
さらに、他の実施形態においては、フィットネス動作が再度指定可能となる条件は、上記以外の条件であってもよい。フィットネス動作が再度指定可能となる条件は、例えば、プレイヤキャラクタ401が敵キャラクタに与えたダメージ量、または、プレイヤキャラクタ401が敵キャラクタから受けたダメージ量に関する条件であってもよい。具体的には、ゲームシステム1は、上記ダメージ量を示すゲージを表示装置に表示し、ゲージが満タンになったことを条件に、フィットネス動作が再度指定可能となるようにしてもよい。このような条件であっても、本実施形態と同様、プレイヤが特定のフィットネス動作ばかりを行う可能性を低減することができる。
また、フィットネス動作が再度指定可能となる条件は、当該フィットネス動作とは異なる特定のフィットネス動作を行ったことであってもよい。例えば、腕を使うフィットネス動作が再度指定可能となる条件は、足を使うフィットネス動作をプレイヤが行ったことであってもよい。このような条件であっても、本実施形態と同様、プレイヤが特定のフィットネス動作ばかりを行う可能性を低減することができる。
本実施形態においては、再度指定可能となる条件(具体的には、待機ターン数)は、フィットネス動作の種類毎(換言すれば、フィットネスイベントの種類毎)に設定される。これによれば、フィットネス動作によるプレイヤの負担の大きさをフィットネス動作の種類毎に考慮して条件を設定することができるので、フィットネス動作の種類毎に適切な条件を設定することができる。
なお、本実施形態においては、選択イベントにおいて、ゲームシステム1は、プレイヤによる選択指示に従って、複数種類のフィットネス動作のうちから1種類を指定する。これに対して、他の実施形態においては、選択イベントにおいて、ゲームシステム1は、プレイヤによる指示によらずに自動的に、複数種類のフィットネス動作のうちから1種類を指定するようにしてもよい。また、このような実施形態においても、再度指定可能となる条件がフィットネス動作に設定されてもよい。これによっても本実施形態と同様、プレイヤが特定のフィットネス動作ばかりを行って疲れてしまうおそれを低減することができる。
[2−5.身体情報の設定]
本実施形態においては、ゲームシステム1は、戦闘イベントが実行される前に、プレイヤの身体能力および/または体の状態を示す身体情報を設定する。そして、ゲームシステム1は、身体情報を用いて戦闘イベントを実行する。例えば、ゲームシステム1は、プレイヤに関する身体情報に基づいてフィットネスイベントを実行したり、フィットネス動作の評価結果を算出したりする。これによれば、プレイヤ毎の身体情報に応じて戦闘イベントが実行されるので、プレイヤは、自身の身体能力や体の状態に応じたフィットネス動作を行いやすくなる。以下、身体情報を用いた処理の詳細について説明する。
(運動強度情報)
本実施形態においては、ゲームシステム1は、身体情報として、運動強度情報を設定する。運動強度情報は、プレイヤにとって適切と推定される運動強度を示す情報である。本実施形態においては、運動強度情報は、「軽め」、「通常」、および、「ハード」のいずれかを示す。
運動強度情報は、戦闘イベントの開始前に設定される。例えば、ゲームシステム1は、ゲームプログラムの起動後、ゲームの開始時に、運動強度情報を設定する。このとき、ゲームシステム1は、今日の体調に関する質問をプレイヤに対して行う。例えば、ゲームシステム1は、「体調はどうですか?」、「体が疲れていませんか?」、および、「痛めている箇所はありますか?」といった質問を行う。そして、ゲームシステム1は、上記質問に対するプレイヤの回答結果に基づいて、運動強度情報を設定する。例えば、体調が良くない、あるいは、疲れていると推測されるような回答をプレイヤが行った場合には、ゲームシステム1は、運動強度情報として「軽め」を示す情報を設定する。
本実施形態においては、ゲームシステム1は、上記運動強度情報に基づいて、戦闘イベントにおいて行われる各フィットネス動作についての上述の単位動作回数を設定する。すなわち、運動強度情報が「通常」である場合、ゲームシステム1は、各フィットネス動作についての単位動作回数を、ゲームプログラムにおいて定められた基準値に設定する。また、運動強度情報が「軽め」である場合、ゲームシステム1は、各フィットネス動作についての単位動作回数を、上記基準値より小さい値に設定し、運動強度情報が「ハード」である場合、ゲームシステム1は、各フィットネス動作についての単位動作回数を、上記基準値より大きい値に設定する。
なお、他の実施形態においては、ゲームシステム1は、単位動作回数を示す情報を運動強度情報として用いてもよい。このとき、ゲームシステム1は、今日の体調に関する質問をプレイヤに対して行うことに代えて、単位動作回数をプレイヤに入力させるようにしてもよい。
上記のように、本実施形態においては、ゲームシステム1は、戦闘イベント中にプレイヤに行わせるフィットネス動作の量(具体的には、単位動作回数)を身体情報(具体的には、運動強度情報)に応じて変化させる。これによれば、プレイヤは、その日の体調に応じた負荷でフィットネス動作を行うことができる。
また、他の実施形態においては、フィットネスイベント中にプレイヤに行わせるフィットネス動作の量は、上述のキープ動作グループに属するフィットネス動作において上記キープ体勢を維持する時間であってもよい。すなわち、ゲームシステム1は、身体情報に応じて上記時間を変化させてもよい。これによっても本実施形態と同様、プレイヤは、その日の体調に応じた負荷でフィットネス動作を行うことができる。
(運動能力情報)
本実施形態においては、ゲームシステム1は、身体情報として、プレイヤの運動能力を示す運動能力情報を設定する。本実施形態においては、運動能力情報は、運動能力が高いほど大きい値となる数値を示す情報である。
運動能力情報は、戦闘イベントの開始前に設定される。例えば、ゲームシステム1は、ゲームプログラムの起動後、プレイヤがゲームを最初に始める時(例えば、セーブデータを作成する時)に、当該プレイヤに関する運動能力情報を設定する。このとき、ゲームシステム1は、フィットネス運動を実際にプレイヤに行わせ、プレイヤによるフィットネス運動の評価結果を算出する。ゲームシステム1は、算出された評価結果に基づいて、運動能力情報が示す数値を設定する。具体的には、評価結果が高いほど大きい数値を示すように、運動能力情報が設定される。このように、身体情報は、戦闘イベントが実行される前にプレイヤが行ったフィットネス動作に基づく動作データに基づいて決定されてもよい。これによれば、ゲームシステム1は、実際にプレイヤが行ったフィットネス動作に基づいて、精度の良い身体情報を得ることができる。なお、運動能力情報を設定する方法は任意である。例えば、他の実施形態においては、ゲームシステム1は、運動能力を推測するための質問(例えば、年齢を質問する)をプレイヤに行い、当該質問に対するプレイヤの回答に基づいて運動能力情報を設定してもよい。
本実施形態においては、ゲームシステム1は、上記運動能力情報に基づいて、フィットネス動作に関連付けられるプレイヤキャラクタ401の行動による効果量(すなわち、ダメージ量または回復量)を算出する。ゲームシステム1は、運動能力情報が示す数値が高いほど効果量が小さくなるように、当該効果量を算出する。なお、運動能力情報に応じて効果量を変化させるための具体的な方法は、任意である。例えば、ゲームシステム1は、運動能力情報に応じて上記効果基本値を変化させてもよいし、フィットネス動作の評価方法を運動能力情報に応じて変化させてもよい(具体的には、運動能力情報が示す数値が高いほど、良い評価を得にくくしてもよい)。また、ゲームシステム1は、上記“[2−3.フィットネス動作に基づくゲーム処理]”で述べた評価方法によって算出された評価点に、運動能力情報に応じた係数を乗算することによって、最終的な評価点を算出するようにしてもよい。
上記のように、本実施形態においては、ゲームシステム1は、フィットネスイベント中に取得された動作データと、上記身体情報(具体的には、運動能力情報)とに基づいて敵キャラクタの体力値を減少させる。これによれば、ゲームシステム1は、プレイヤの身体能力に応じてゲーム結果を調整することができる。例えば、運動能力が低いプレイヤであってもゲームを進めやすくなるので、ゲームを継続的に行うことによってフィットネス動作を継続的に行うモチベーションをプレイヤに与えることができる。
なお、他の実施形態においては、ゲームシステム1は、フィットネスイベント中にプレイヤに行わせるフィットネス動作の量(具体的には、単位動作回数)を運動能力情報に基づいて変化させてもよい。これによれば、プレイヤは、自身の身体能力に応じた負荷でフィットネス動作を行うことができる。
(動作基準値)
また、本実施形態においては、ゲームシステム1は、身体情報として、動作基準値を設定する。本実施形態においては、動作基準値は、押し込み基準値と曲げ基準値とを含む。押し込み基準値は、戦闘イベントにおいて、リング型拡張装置5に対する押し込み動作に関する評価を行うために用いられる値である。曲げ基準値は、戦闘イベントにおいて、スクワットのように膝を曲げる動作に関する評価を行うために用いられる値である。
上記動作基準値を設定する処理は、戦闘イベントの開始前に実行される。例えば、動作基準値を設定する処理は、ゲームプログラムの起動後、ゲームの開始時に実行される。
動作基準値を設定する処理において、ゲームシステム1は、リング型拡張装置5を押し込む動作をプレイヤに行わせる。例えば、ゲームシステム1は、「リングを押し込んで下さい」というメッセージを表示装置に表示し、リング型拡張装置5を押し込む動作をプレイヤに促す。これに応じて、プレイヤは、両手でリング型拡張装置5の各グリップカバー203および204を押し込む動作を行う。上記動作が行われた場合、ゲームシステム1は、リング型拡張装置5の変形量を算出する。ゲームシステム1は、算出された変形量に基づいて、押し込み基準値を設定する。例えば、押し込み基準値は、上記動作中における変形量の最大値に設定されてもよいし、最大値に所定の係数(例えば、0.8)を乗算した値に設定されてもよい。
また、動作基準値を設定する処理において、ゲームシステム1は、膝を曲げる動作をプレイヤに行わせる。例えば、ゲームシステム1は、「膝を曲げて下さい」というメッセージを表示装置に表示し、膝を曲げる動作をプレイヤに促す。これに応じて、プレイヤは、スクワットのように両膝を曲げる動作を行う。上記動作が行われた場合、ゲームシステム1は、左コントローラ3の傾きを算出する。ゲームシステム1は、算出された傾きに基づいて、曲げ基準値を設定する。例えば、曲げ基準値は、上記動作中における傾きの最大値に設定されてもよいし、最大値に所定の係数(例えば、0.8)を乗算した値に設定されてもよい。
戦闘イベントにおいては、ゲームシステム1は、例えば次の処理において押し込み基準値を用いる。まず、上述の反復動作グループに属するフィットネス動作における所定の運動として、リング型拡張装置5を押し込む動作が行われる場合、ゲームシステム1は、当該フィットネス動作に関する評価点を算出する処理において、押し込み基準値を用いる。すなわち、ゲームシステム1は、リング型拡張装置5の変形量が押し込み基準値以上となったか否かによって、リング型拡張装置5を押し込む動作が行われたか否かを判別する。また、ゲームシステム1は、上述のキープ動作グループに属するフィットネス動作に関する評価点を算出する処理において、押し込み基準値を用いる。すなわち、ゲームシステム1は、上述の評価係数を算出する場合に用いられる理想値として、押し込み基準値を用いる。
また、戦闘イベントにおいて、ゲームシステム1は、例えば次の処理において曲げ基準値を用いる。まず、上述の反復動作グループに属するフィットネス動作における所定の運動として、膝を曲げる動作が行われる場合、ゲームシステム1は、当該フィットネス動作に関する評価点を算出する処理において、曲げ基準値を用いる。すなわち、ゲームシステム1は、左コントローラ3の傾きが上記曲げ基準値以上となったか否かによって、膝を曲げる動作が行われたか否かを判別する。また、ゲームシステム1は、上述のキープ動作グループに属するフィットネス動作に関する評価点を算出する処理において、曲げ基準値を用いる。すなわち、ゲームシステム1は、上述の評価係数を算出する場合に用いられる理想値として、曲げ基準値を用いる。
以上によれば、例えばプレイヤの筋力が弱い場合には、押し込み基準値が小さい値に設定されたり、曲げ基準値が膝をあまり曲げない状態における値に設定されたりする。そのため、戦闘イベントにおいて、ゲームシステム1は、プレイヤがリング型拡張装置5を少し変形させることに応じて、リング型拡張装置5を押し込む動作が行われたと判別したり、プレイヤが膝を少し曲げることに応じて、膝を曲げる動作が行われたと判別したりする。一方、プレイヤの筋力が強い場合には、押し込み基準値が大きい値に設定されたり、曲げ基準値が膝を深く曲げた状態における値に設定されたりする。そのため、戦闘イベントにおいて、ゲームシステム1は、プレイヤがリング型拡張装置5を大きく変形させることに応じて、リング型拡張装置5を押し込む動作が行われたと判別したり、プレイヤが膝を深く曲げることに応じて、膝を曲げる動作が行われたと判別したりする。このように、本実施形態によれば、ゲームシステム1は、リング型拡張装置5を押し込む動作および膝を曲げる動作に関する判別および評価を、プレイヤの力に応じて適切に行うことができる。
以上のように、本実施形態においては、ゲームシステム1は、フィットネスイベント中に取得された動作データと、身体情報(すなわち、動作基準値)とに基づいて、当該フィットネスイベント中にプレイヤが行ったフィットネス動作の評価結果を算出する。また、ゲームシステム1は、戦闘イベントの達成条件が満たされたか否かを評価結果に基づくゲーム結果に基づいて判定する。これによれば、ゲームシステム1は、プレイヤの身体能力を考慮することによってフィットネス動作の評価を精度良く行うことができる。
また、他の実施形態においては、ゲームシステム1は、戦闘イベント中にプレイヤに行わせるフィットネス動作の負荷(具体的には、単位動作回数)を身体情報(具体的には、動作基準値)に応じて変化させてもよい。これによれば、プレイヤは、自身の身体能力を考慮した負荷でフィットネス動作を行うことができる。なお、ゲームシステム1は、上記負荷を変化させる例として、例えば、フィットネス動作を行ったと判別されるための閾値を変化させてもよい。例えば、フィットネス動作としてリング型拡張装置5を押し込む動作が行われる場合、ゲームシステム1は、フィットネス動作を行ったと判別されるための、押し込み量に関する閾値を変化させてもよい。また例えば、フィットネス動作としてスクワットが行われる場合、ゲームシステム1は、フィットネス動作を行ったと判別されるための、膝を曲げる角度に関する閾値を変化させてもよい。これらの閾値を変化させることによっても、プレイヤに行わせるフィットネス動作の負荷を変化させることができる。
[3.ゲームシステムにおける情報処理の具体例]
次に、図21〜図25を参照して、ゲームシステム1における情報処理の具体例について説明する。
[3−1.情報処理に用いられるデータ]
図21は、ゲームシステム1における情報処理に用いられる各種データの一例を示す図である。図21に示す各種情報は、本体装置2がアクセス可能な記憶媒体(例えば、フラッシュメモリ84、DRAM85、および/または、スロット23に装着されたメモリカード等)に記憶される。
図21に示すように、ゲームシステム1は、ゲームプログラムを記憶する。ゲームプログラムは、本実施形態におけるゲームアプリケーションを実行するためのゲームプログラムであり、例えば、フラッシュメモリ84、および/または、スロット23に装着されたメモリカードに記憶される。
また、図21に示すように、ゲームシステム1は、フィットネス動作内容データを記憶する。フィットネス動作内容データは、ゲームプログラムとともに記憶媒体に記憶されてもよい。フィットネス動作内容データは、フィットネス動作の内容を示す情報を、フィットネス動作毎に示す。例えば、キープ動作グループに属するフィットネス動作に関して、フィットネス動作内容データは、プレイヤが上述の開始体勢およびキープ体勢をとったと判別されるための閾値(例えば、コントローラの傾きに関する閾値)、ならびに、キープ体勢を維持する時間、等を示すデータを含む。また例えば、反復動作グループに属するフィットネス動作に関して、フィットネス動作内容データは、反復して行う所定の運動をプレイヤが行ったと判別されるための閾値、ならびに、当該運動を反復して行う回数、等を示すデータを含む。また例えば、ポーズ動作グループに属するフィットネス動作に関して、フィットネス動作内容データは、プレイヤが上述の第1体勢および第2体勢をとったと判別されるための閾値等を示すデータを含む。また、フィットネス動作内容データは、各フィットネス動作についての単位動作回数を示すデータを含む。本実施形態においては、フィットネス動作内容データは、1つのフィットネス動作について、運動強度情報が示す内容(すなわち、「軽め」、「通常」、および、「ハード」)に応じた3種類の単位動作回数を示すデータを含む。また、フィットネス動作内容データは、各フィットネス動作に関連付けられる上記「フィットネス動作に対応する部位」を示すデータを含む。
さらに、フィットネス動作内容データは、フィットネス動作に関連付けられるプレイヤキャラクタ401の行動内容を示す情報(上記効果基本値を含む)を、フィットネス動作毎に示すデータを含む。
また、図21に示すように、ゲームシステム1は、身体情報データ、プレイヤパラメータデータ、プレイヤキャラクタデータ、および、敵キャラクタデータを含む。これらのデータは、上記ゲームプログラムによって実行される情報処理(図22〜図25参照)において生成されて用いられる。なお、図21に示すデータの他、上記記憶媒体には、上記ゲームプログラムによって実行される情報処理において用いられる各種のデータが記憶される。
身体情報データは、上述の身体情報を示す。本実施形態においては、身体情報は、上述の運動強度情報および押し込み基準値を含む。プレイヤパラメータデータは、上述のプレイヤパラメータを示す。プレイヤキャラクタデータは、プレイヤキャラクタ401に関する各種のパラメータ(具体的には、体力等のパラメータ)を示す。敵キャラクタデータは、敵キャラクタに関する各種のパラメータ(具体的には、体力等のパラメータ)を、敵キャラクタ毎に示す。
[3−2.ゲームシステムにおいて実行される処理]
図22〜図25は、ゲームシステム1によって実行される情報処理の一例を示すフローチャートである。図22〜図25に示す一連の処理は、上記ゲームプログラムの実行が開始された後、例えば、ゲームを開始する旨の指示がプレイヤによって行われたことに応じて開始される。
なお、本実施形態では、本体装置2のプロセッサ81が、ゲームシステム1に記憶されている上記ゲームプログラムを実行することによって、図22〜図25に示す各ステップの処理を実行するものとして説明する。ただし、他の実施形態においては、上記各ステップの処理のうちの一部の処理を、プロセッサ81とは別のプロセッサ(例えば、専用回路等)が実行するようにしてもよい。また、ゲームシステム1が他の情報処理装置(例えば、サーバ)と通信可能である場合、図22〜図25に示す各ステップの処理の一部は、他の情報処理装置において実行されてもよい。例えば、ゲームシステム1がサーバと通信可能である場合、ゲーム処理(例えば、後述するステップS12におけるゲーム制御処理)の一部は、サーバによって実行されてもよい。また例えば、動作データに基づいてプレイヤの動作を判別する処理の一部は、当該動作データを送信するコントローラによって実行されてもよい。また、図22〜図25に示す各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。
また、プロセッサ81は、図22〜図25に示す各ステップの処理を、メモリ(例えば、DRAM85)を用いて実行する。すなわち、プロセッサ81は、各処理ステップによって得られる情報(換言すれば、データ)をメモリに記憶し、それ以降の処理ステップにおいて当該情報を用いる場合には、メモリから当該情報を読み出して利用する。
図22に示すステップS11において、プロセッサ81は、身体情報を設定する。具体的には、プロセッサ81は、“[2−5.身体情報の設定]”において述べた方法で、身体情報として、運動強度情報および押し込み基準値を特定し、特定された身体情報を示す身体情報データをメモリに記憶する。また、プロセッサ81は、メモリに記憶されている上記フィットネス動作内容データを参照し、設定された運動強度情報に基づいて、各フィットネス動作の単位運動回数を特定する。ステップS11の次に、ステップS12の処理が実行される。ステップS12以降において、ゲームが開始される。
ステップS12において、プロセッサ81は、ゲーム制御処理を実行する。プロセッサ81は、ゲーム制御処理として、プレイヤからの指示を受け付け、指示に基づくゲーム処理を実行し、ゲーム処理の結果を示すゲーム画像を表示装置に表示する。プロセッサ81は、ゲーム制御処理として、例えば、プレイヤによる指示に基づいてゲームマップ上でプレイヤキャラクタ401を移動させる処理を実行する。また、所定の戦闘イベントにおいてプレイヤキャラクタ401が勝利した場合には、プロセッサ81は、ゲーム制御処理として、ゲームを進行させる処理を実行する。ゲーム制御処理は適宜のタイミングで一時的に中断され、ステップS13の処理が実行される。
ステップS13において、プロセッサ81は、戦闘イベントを開始するか否かを判定する。例えば、上記ゲーム制御処理において、ゲームマップ上でプレイヤキャラクタ401が敵キャラクタと遭遇した場合、プロセッサ81は、戦闘イベントを開始すると判定する。一方、ゲームマップ上でプレイヤキャラクタ401が敵キャラクタと遭遇していない場合、プロセッサ81は、戦闘イベントを開始しないと判定する。ステップS13の判定結果が肯定である場合、ステップS14の処理が実行される。一方、ステップS13の判定結果が否定である場合、後述するステップS16の処理が実行される。
ステップS14において、プロセッサ81は、戦闘イベントを実行するためのゲーム処理である戦闘イベント処理を実行する。以下、図23〜図25を参照して、戦闘イベント処理の詳細について説明する。
図23は、図22に示すステップS14の戦闘イベント処理の詳細な流れの一例を示すサブフローチャートである。戦闘イベント処理においては、まず、攻撃ターンにおけるゲーム処理として、ステップS20〜S26の一連の処理が実行される。
ステップS20において、プロセッサ81は、上述の選択イベントを実行する。すなわち、プロセッサ81は、選択画像(図15参照)を表示装置に表示し、プレイヤによる切替指示および選択指示を受け付け、プレイヤが選択したフィットネス動作を指定する。ステップS20の次に、ステップS21の処理が実行される。
ステップS21において、プロセッサ81は、上述の準備イベントを実行する。準備イベントにおいては、プロセッサ81は、準備動作画像(図16参照)を表示装置に表示し、動作データを取得する。なお、本実施形態において、プロセッサ81は、各コントローラ3および4から各操作データを取得する。具体的には、プロセッサ81は、動作データを含む右コントローラ操作データ、左コントローラ操作データ、および、リング操作データを取得する。
また、準備イベントにおいて、プロセッサ81は、フィットネス動作の開始時の体勢をプレイヤがとったか否かを動作データに基づいて判定する。上述のように、本実施形態においては、この判定は、プレイヤがチェック有り体勢をとったか否かによって行われる。なお、上記判定を行う際、プロセッサ81は、メモリに記憶されているフィットネス動作内容データを必要に応じて参照する。フィットネス動作の開始時の体勢をプレイヤがとったと判定された場合、プロセッサ81は、ステップS21の処理を終了し、ステップS22の処理を実行する。
ステップS22において、プロセッサ81は、攻撃時フィットネスイベント処理を実行する。攻撃時フィットネスイベント処理は、攻撃ターンにおけるフィットネスイベントを実行するための処理である。以下、図24を参照して、攻撃時フィットネスイベント処理の詳細について説明する。
図24は、図23に示すステップS22の攻撃時フィットネスイベント処理の詳細な流れの一例を示すサブフローチャートである。攻撃時フィットネスイベント処理においては、まずステップS41において、プロセッサ81は、上記ステップS21と同様の方法で動作データを取得する。ステップS41の次に、ステップS42の処理が実行される。
ステップS42において、プロセッサ81は、ステップS41において取得された動作データに基づいてプレイヤの動作を判別する。例えば、プロセッサ81は、プレイヤがリング型拡張装置5をどの程度押し込んでいるか、および/または、プレイヤが足をどの程度曲げているか、等を判別する。なお、ステップS42および後述するステップS44の処理において、プロセッサ81は、メモリに記憶されているフィットネス動作内容データ、および、身体情報データを必要に応じて参照する。ステップS42の次に、ステップS43の処理が実行される。
ステップS43において、プロセッサ81は、フィットネスイベントにおけるゲーム画像(図17参照)を表示装置に表示する。このとき、プロセッサ81は、ステップS42で判別されたプレイヤの動作に応じてプレイヤキャラクタ401を動作させ、当該プレイヤキャラクタ401を含むゲーム空間を示す画像を表示する。また、プロセッサ81は、上述の手本動作画像433、動作回数画像434、残り回数画像435、および、消費カロリー画像436を表示する。ステップS43の次に、ステップS44の処理が実行される。
ステップS44において、プロセッサ81は、プレイヤによる1回のフィットネス動作が完了したか否かを判定する。この判定は、ステップS42で判別されたプレイヤの動作に基づいて行うことができる。ステップS44の判定結果が否定である場合、ステップS41の処理が再度実行される。以降、ステップS44の判定結果が肯定となるまで、ステップS41〜S43の一連の処理が繰り返し実行される。なお、本実施形態においては、ステップS41〜S43の一連の処理は、所定時間(例えば、1フレーム時間)に1回の割合で実行される。一方、ステップS44の判定結果が肯定である場合、プロセッサ81は、図24に示す攻撃時フィットネスイベント処理を終了する。
図23の説明に戻り、ステップS22の次のステップS23において、プロセッサ81は、ステップS22におけるフィットネスイベントにおいてプレイヤが行ったフィットネス動作の評価を行う。具体的には、プロセッサ81は、上記“[2−3.フィットネス動作に基づくゲーム処理]”で述べた方法に従って、フィットネス動作の評価結果(具体的には、評価点)を算出する。ステップS23の次に、ステップS24の処理が実行される。
ステップS24において、プロセッサ81は、上述の攻撃イベントを実行する。攻撃イベントにおいては、プロセッサ81は、プレイヤキャラクタ401による敵キャラクタへの攻撃によって敵キャラクタに与えられるダメージ量を算出し、敵キャラクタがダメージを受ける様子を示す画像(図18参照)を表示装置に表示する。なお、ダメージ量の算出は、上記“[2−3.フィットネス動作に基づくゲーム処理]”で述べた方法に従って行われる。このとき、プロセッサ81は、攻撃を受けた敵キャラクタの体力をダメージ量に応じて減少し、減少後の体力を示すように、メモリに記憶されている敵キャラクタデータを更新する。ステップS24の次に、ステップS25の処理が実行される。
ステップS25において、プロセッサ81は、メモリに記憶されている敵キャラクタデータを参照して、戦闘イベントに登場する全ての敵キャラクタが倒されたか否かを判定する。ステップS25の判定結果が肯定である場合、プロセッサ81は、図23に示す戦闘イベント処理を終了する。一方、ステップS25の判定結果が否定である場合、ステップS26の処理が実行される。
ステップS26において、プロセッサ81は、今回の攻撃ターンにおいて単位動作回数のフィットネスイベントが実行されたか否かを判定する。なお、この判定において用いられる単位動作回数は、上記ステップS11において特定された単位動作回数である。ステップS26の判定結果が否定である場合、プロセッサ81は、上記ステップ22の処理を再度実行する。一方、ステップS26の判定結果が肯定である場合、ステップS27の処理が実行される。上記ステップS20〜S26の一連の処理によって攻撃ターンにおけるゲーム処理が実行された後、防御ターンにおけるゲーム処理として、ステップS27〜S29の一連の処理が実行される。
ステップS27において、プロセッサ81は、防御時フィットネスイベント処理を実行する。防御時フィットネスイベント処理は、防御ターンにおけるフィットネスイベントを実行するための処理である。以下、図25を参照して、防御時フィットネスイベント処理の詳細について説明する。
図25は、図23に示すステップS27の防御時フィットネスイベント処理の詳細な流れの一例を示すサブフローチャートである。防御時フィットネスイベント処理においては、まずステップS51において、プロセッサ81は、動作データを取得する。次に、ステップS52において、プロセッサ81は、プレイヤの動作を判別する。さらに、ステップS53において、プロセッサ81は、フィットネスイベントにおけるゲーム画像(図19参照)を表示装置に表示する。ステップS51〜S53の一連の処理は、上述したS41〜S43の一連の処理と同様に実行される。ステップS53の次に、ステップS54の処理が実行される。
ステップS54において、プロセッサ81は、プレイヤによる1回のフィットネス動作が完了したか否かを判定する。この判定は、ステップS52で判別されたプレイヤの動作に基づいて行うことができる。ステップS54の判定結果が否定である場合、ステップS51の処理が再度実行される。以降、ステップS54の判定結果が肯定となるまで、ステップS51〜S54の一連の処理が繰り返し実行される。一方、ステップS54の判定結果が肯定である場合、プロセッサ81は、図25に示す防御時フィットネスイベント処理を終了する。
図23の説明に戻り、ステップS27の次のステップS28において、プロセッサ81は、ステップS27の防御時フィットネスイベント処理におけるフィットネスイベントにおいてプレイヤが行ったフィットネス動作の評価を行う。ステップS28の処理は、上述したS23の処理と同様に実行される。ステップS28の次に、ステップS29の処理が実行される。
ステップS29において、プロセッサ81は、防御イベントを実行する。防御イベントにおいては、プロセッサ81は、敵キャラクタによるプレイヤキャラクタ401への攻撃によってプレイヤキャラクタ401に与えられるダメージ量を算出し、プレイヤキャラクタ401がダメージを受ける様子を示す画像(図20参照)を表示装置に表示する。なお、ダメージ量の算出は、上記“[2−3.フィットネス動作に基づくゲーム処理]”で述べた方法に従って行われる。このとき、プロセッサ81は、プレイヤキャラクタ401の体力をダメージ量に応じて減少し、減少後の体力を示すように、メモリに記憶されているプレイヤキャラクタデータを更新する。ステップS29の次に、ステップS30の処理が実行される。
ステップS30において、プロセッサ81は、メモリに記憶されているプレイヤキャラクタデータを参照して、プレイヤキャラクタが倒されたか否かを判定する。ステップS30の判定結果が肯定である場合、プロセッサ81は、図23に示す戦闘イベント処理を終了する。一方、ステップS30の判定結果が否定である場合、ステップS31の処理が実行される。
ステップS31において、プロセッサ81は、今回の防御ターンにおいて単位動作回数のフィットネスイベントが実行されたか否かを判定する。なお、この判定において用いられる単位動作回数は、上記ステップS11において特定された単位動作回数である。ステップS31の判定結果が否定である場合、プロセッサ81は、上記ステップS27の処理を再度実行する。一方、ステップS31の判定結果が肯定である場合、上記ステップS20の処理が再度実行される。つまり、防御ターンが終了して攻撃ターンが再度行われる。以上で、ステップS14の戦闘イベント処理の説明を終了する。
図22の説明に戻り、ステップS14の次のステップS15において、プロセッサ81は、プレイヤパラメータを一定条件下で増加する。なお、プレイヤパラメータを更新する条件は任意である。上述のように、プレイヤパラメータは、戦闘イベントにおいてプレイヤキャラクタ401が敵キャラクタに勝利することを条件として増加されてもよいし、ゲームのストーリーが進んだこと(例えば、プレイヤキャラクタ401が新しいゲームステージに進んだこと)を条件として増加されてもよい。ステップS15の処理においてプレイヤパラメータが増加された場合、プロセッサ81は、メモリに記憶されているプレイヤパラメータデータを増加後の値を示すように更新する。ステップS15の次に、ステップS16の処理が実行される。
ステップS16において、プロセッサ81は、ゲームを終了するか否かを判定する。例えば、プロセッサ81は、ゲームを終了する旨の指示がユーザによって行われたか否かを判定する。ステップS16の判定結果が否定である場合、ステップS12の処理が再度実行される。以降、ステップS16において、ゲームを終了すると判定されるまで、ステップS11〜S16の一連の処理が繰り返し実行される。一方、ステップS16の判定結果が肯定である場合、プロセッサ81は、ゲームアプリケーションにおける情報処理を終了する。
[4.上記実施形態の作用効果および変形例]
上記実施形態においては、情報処理装置(具体的には、本体装置2)のコンピュータ(具体的には、プロセッサ81)によって実行される情報処理プログラム(具体的には、ゲームプログラム)は、次の手段としてコンピュータを機能させる。
・プレイヤによるフィットネス動作に応じたセンサ(具体的には、歪みゲージ、加速度センサ、および/または、角速度センサ)の出力に基づく動作データを取得する取得手段(ステップS31,S41)
・達成条件が設定されるゲームイベント(具体的には、戦闘イベント)を実行するゲームイベント実行手段(ステップS14)
また、ゲームイベント実行手段は、次の手段を含む。
・プレイヤにフィットネス動作を行わせるフィットネスイベントであって、複数種類のフィットネスイベントのうちから少なくとも1種類のフィットネスイベントを指定する動作指定手段(ステップS20)
・ゲームイベント中において、指定されたフィットネスイベントに対応するフィットネス動作を、終了条件が満たされるまでプレイヤに行わせる第1フィットネスイベント(具体的には、攻撃ターンにおける戦闘イベント)を実行する第1フィットネスイベント実行手段(ステップS22)
・第1フィットネスイベント中に取得された動作データに基づいて、達成条件が満たされたか否かを判定する達成判定手段(ステップS25)
また、ゲームイベント実行手段は、第1フィットネスイベントの指定および実行を、達成条件が満たされたと判定されるまで繰り返す(図23参照)。
上記によれば、ゲームイベントの達成を目標として、ゲームイベント中においてプレイヤにフィットネス動作を行わせることができる。これによれば、ゲームイベントの達成という目標に向けてプレイヤにフィットネス動作を行わせることができるので、フィットネス動作を行うモチベーションをプレイヤに与えることができる。
なお、上記実施形態においては、上記ゲームイベントは、敵キャラクタと戦闘を行う戦闘イベントであったが、任意のゲームイベントであってもよい。他の実施形態においては、ゲームイベントは、例えばプレイヤキャラクタが所定の課題を行うゲームイベントであってもよい。
なお、ゲームイベントに設定される達成条件とは、プレイヤがゲームイベントを達成した(または、ゲームイベントに成功した)と判断されるための条件である。上記実施形態においては、上記達成条件は、戦闘に勝利することであった。つまり、ゲームシステム1は、達成条件として、敵キャラクタの体力値に関する条件が満たされたか否かを判定した。これによれば、敵キャラクタを倒すと言うゲーム上の目標に向けてプレイヤにフィットネス動作を行わせることができるので、フィットネス動作を行うモチベーションをプレイヤに与えることができる。
なお、達成条件は、フィットネスイベント中に取得された動作データに基づいて判定される任意の条件であってもよい。例えば、他の実施形態において、プレイヤによるフィットネス動作に応じてプレイヤキャラクタがアイテムを取得するゲームイベントが実行される場合において、達成条件は、プレイヤキャラクタが所定数のアイテムを取得することであってもよい。達成条件としてゲームに関する条件を設定することによって、プレイヤにゲーム感覚でフィットネス動作を行わせることができる。なお、達成条件は、ゲームに関する条件に限らず、例えば、ゲームイベント中において所定回数フィットネスイベントを実行することであってもよい。なお、「動作データに基づいて判定される」とは、動作データを直接的に用いて判定を行う態様(例えば、動作データが条件を満たしたか否かを判定する態様)と、動作データを間接的に用いて判定を行う態様(例えば、動作データを用いて算出されるゲーム結果が条件を満たしたか否かを判定する態様)との両方を含む意味である。
上記実施形態においては、情報処理装置(具体的には、本体装置2)のコンピュータ(具体的には、プロセッサ81)によって実行される情報処理プログラム(具体的には、ゲームプログラム)は、次の手段としてコンピュータを機能させると言うこともできる。
・プレイヤによるフィットネス動作に応じたセンサの出力(具体的には、歪みゲージ、加速度センサ、および/または、角速度センサの出力)に基づく動作データを取得する取得手段(ステップS31,S41)
・敵キャラクタと戦闘を行う戦闘イベントを実行し、当該戦闘イベントの達成に応じてゲームを進行させるゲーム処理手段(ステップS12〜S16)
また、ゲームイベント実行手段は、次の手段を含む。
・戦闘イベント中において、フィットネス動作をプレイヤに行わせるフィットネスイベントを実行するフィットネスイベント実行手段(ステップS22)
・フィットネスイベント中において取得された動作データが当該フィットネスイベントに応じた条件を満たす場合(例えば、プレイヤによってフィットネス動作が行われたことが動作データに基づいて判別される場合)、敵キャラクタの体力値を減少させる体力値更新手段(ステップS24)
ゲーム処理手段は、敵キャラクタの体力値が所定の条件を満たした場合(具体的には、体力値が0となった場合)、戦闘イベントが達成されたとしてゲームを進行させる(ステップS25)。
なお、上記敵キャラクタの体力値は、ゲーム中に実行される情報処理において敵キャラクタのパラメータとして用いられるデータが示す値であってもよいし、ゲームにおいて当該敵キャラクタの体力値を示すものとしてプレイヤに明示的または黙示的に提示される情報(例えば、体力値を示すゲージの長さ)が示す値であってもよい。
上記のように、上記実施形態においては、フィットネス動作という、攻撃とは異なる動作を、ゲームにおける攻撃を行うための指示として用いている。なお、従来、プレイヤがコントローラを剣のように振る操作に応じてプレイヤキャラクタに剣による攻撃を行わせるゲームや、プレイヤがパンチを行うようにコントローラを動かす操作に応じてプレイヤキャラクタにパンチ攻撃を行わせるゲームがある。このような従来のゲームは、ゲーム内においてプレイヤキャラクタが行う攻撃動作と同じまたは似た動作を、現実世界におけるプレイヤに攻撃指示として行わせるものであるのに対して、上記実施形態は、ゲーム内における攻撃動作とは異なるフィットネス動作を、攻撃指示としてプレイヤに行わせる点で、従来のゲームとは異なるものであり、従来のゲームからは想起し得ないものである。
また、上記実施形態によれば、ゲームにおける攻撃を行うための指示としてフィットネス動作を用いることによって、「敵キャラクタを倒してゲームを進行させる」というゲーム上のモチベーションが、プレイヤがフィットネス動作を行うモチベーションとなる。これによって、ゲームにおいてフィットネス動作を行うモチベーションをプレイヤに与えることができる。
また、上記実施形態においては、ゲームシステム1は、フィットネスイベント中にプレイヤが行ったフィットネス動作に応じて、プレイヤに対応する体力値を減少させる(ステップS46)。そして、ゲームシステム1は、プレイヤに対応する体力値が所定の条件を満たした場合、戦闘イベントにおいてプレイヤが敗北したと判定して当該戦闘イベントを終了する(ステップS28)。これによれば、単にフィットネス動作を行う場合には得られない緊張感を持たせつつ、プレイヤにフィットネス動作を行わせることができる。したがって、上記実施形態によれば、フィットネス動作を行うゲームの興趣性を向上することができるとともに、プレイヤは、より一生懸命にフィットネス動作を行うので、フィットネス動作による運動効果をより効果的に得ることができる。
なお、上記「プレイヤに対応する体力値」とは、プレイヤキャラクタの体力値であってもよいし、プレイヤに関連付けられる体力値であってもよい。ここで、本実施形態においては、プレイヤキャラクタがゲームに登場したが、他の実施形態においては、プレイヤキャラクタはゲームに登場しなくてもよい。プレイヤキャラクタがゲームに登場しない場合、ゲーム内においてプレイヤの体力値が設定され、戦闘イベントにおいては、敵キャラクタの攻撃に応じてプレイヤの体力値が変更されてもよい。
(フィットネスイベントに関する変形例)
上記実施形態においては、フィットネスイベントにおいて行われたフィットネス動作に基づくゲーム結果が表示されるゲームイベントである攻撃イベントは、当該フィットネスイベントの終了後に実行された。これによれば、フィットネス動作中には当該フィットネス動作に基づくゲーム結果が表示されないので、プレイヤは当該ゲーム結果を気にすることなくフィットネス動作を行うことができる。したがって、上記実施形態によれば、プレイヤがフィットネス動作に集中しやすくすることができる。
これに対して、他の実施形態においては、フィットネスイベントと攻撃イベントとは時間的に分けて実行される必要はなく、ゲームシステム1は、フィットネスイベントの途中で攻撃イベントを実行してもよい。例えば、ゲームシステム1は、プレイヤによるフィットネス動作の途中において、敵キャラクタに対する攻撃動作をプレイヤキャラクタ401が行うようにプレイヤキャラクタ401を制御してもよい。
なお、フィットネスイベント中において、ゲームシステム1は、上記動作データを取得し、プレイヤによるフィットネス動作の判別を動作データに基づいて行う。つまり、ゲームシステム1がプレイヤによるフィットネス動作の判別を行う期間は、(当該期間中に攻撃イベント等のゲームイベントが実行される場合であっても、)フィットネスイベントの期間であると言うことができる。
また、上記実施形態においては、フィットネスイベントにおいて、プレイヤは任意のタイミングでフィットネス動作を開始することが可能であった。つまり、ゲームシステム1は、フィットネスイベントにおいて、プレイヤがフィットネス動作を行うまで待機し、プレイヤがフィットネス動作を完了したことに応じてフィットネスイベントを終了した。これによれば、プレイヤは自分のペースでフィットネス動作を開始および終了することができるので、フィットネス動作をプレイヤにとって行いやすくすることができる。
これに対して、他の実施形態においては、ゲームシステム1は、ゲームにおいて決められたタイミングでプレイヤにフィットネス動作を行わせるようにしてもよい。例えば、戦闘イベント中における防御ターンにおいて、ゲームシステム1は、プレイヤのフィットネス動作とは独立したタイミングで敵キャラクタに攻撃動作を開始させ、当該攻撃動作に応じたタイミングでプレイヤにフィットネス動作を開始させるようにしてもよい。例えば、ゲームシステム1は、上記攻撃動作に応じたタイミングでフィットネスイベントを開始し、当該フィットネスイベントの開始時点から所定時間が経過したことに応じてフィットネスイベントを終了する(例えば、フィットネス動作を判別する処理を終了する)ようにしてもよい。