(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-26
(45)【発行日】2024-01-10
(54)【発明の名称】情報処理システム、情報処理プログラム、情報処理装置、および情報処理方法
(51)【国際特許分類】
A63F 13/42 20140101AFI20231227BHJP
A63F 13/211 20140101ALI20231227BHJP
A63F 13/245 20140101ALI20231227BHJP
【FI】
A63F13/42
A63F13/211
A63F13/245
(21)【出願番号】P 2020174110
(22)【出願日】2020-10-15
(62)【分割の表示】P 2020067260の分割
【原出願日】2019-08-30
【審査請求日】2022-06-29
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】倉田 雄一
(72)【発明者】
【氏名】吉尾 享
【審査官】鈴木 崇雅
(56)【参考文献】
【文献】特開2009-020656(JP,A)
【文献】特開2008-264195(JP,A)
【文献】特開2013-228771(JP,A)
【文献】特開2009-165577(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A63F 13/00-98
A63F 9/24
(57)【特許請求の範囲】
【請求項1】
少なくとも第1センサを備える入力装置と第2センサと情報処理装置とを含む情報処理システムであって、
前記入力装置は、外部から力が加わることに応じて少なくとも一部が弾性変形し、
前記第1センサは、前記入力装置の変形に応じた出力を行い、
前記第2センサは、当該第2センサの動きおよび/または姿勢に応じた出力を行い、
前記情報処理装置は、
前記第1センサの出力に応じた第1データと前記第2センサの出力に応じた第2データとを取得するデータ取得部と、
前記第1データに基づいて、前記入力装置が変形していることを当該第1データが示す間、前記第2データに基づいて所定のゲーム処理を実行するゲーム処理部とを備え、
前記ゲーム処理部は、
前記入力装置が変形していない状態から変形した状態となったタイミングの当該入力装置の姿勢を基準とし、当該タイミング以降に取得した前記第2データに基づく前記入力装置の姿勢に応じて前記所定のゲーム処理を実行し、
前記入力装置が変形していることを前記第1データが示す間に前記第2センサに動きが生じている場合には、前記所定のゲーム処理として、仮想空間に配置される標的オブジェクトに対する攻撃を成功させる処理を実行し、当該入力装置が変形していないことを当該第1データが示す間または当該第2センサに動きが生じていない場合には、当該所定のゲーム処理を実行せず、
前記入力装置が変形した状態から変形していない状態に所定条件を満たすように戻ったことを前記第1データが示すまでは、前記所定のゲーム処理の再実行を制限する制限部を含む、情報処理システム。
【請求項2】
前記第2センサは、前記入力装置に備えられる、請求項1に記載の情報処理システム。
【請求項3】
前記第2センサは、角速度センサおよび/または加速度センサである、請求項1または2に記載の情報処理システム。
【請求項4】
前記ゲーム処理部は、前記第2データに基づいて、所定の達成目標が設定されるゲームの達成度合いを更新する更新処理を、前記所定のゲーム処理として実行し、前記入力装置が変形していることを前記第1データが示さない間は、当該更新処理を実行しない、請求項1乃至3の何れか1つに記載の情報処理システム。
【請求項5】
前記ゲーム処理部は、前記入力装置の変形量が第1閾値を越えていることを前記第1データが示す場合には前記第2データに基づいて前記所定のゲーム処理を実行し、当該変形量が当該第1閾値を超えていることを当該第1データが示さない場合であっても、前記入力装置の変形量が第1閾値を超えたことを示した後であって当該第1閾値よりも小さい第2閾値を下回らないことを示す場合には、前記第2データに基づいて前記所定のゲーム処理を実行する、請求項1に記載の情報処理システム。
【請求項6】
前記ゲーム処理部は、前記第2センサに動きが生じたタイミングにおける前記第1データが示す前記入力装置の変形量に応じて、前記所定のゲーム処理を実行する、請求項1乃至5の何れか1つに記載の情報処理システム。
【請求項7】
前記ゲーム処理部は、前記第2センサに動きが生じたタイミングにおける前記第1データが示す前記入力装置の変形量が当該タイミングから所定時間前までの前記入力装置の変形量より小さい場合、当該所定時間前までの前記第1データが示す前記入力装置の変形量に応じて、前記所定のゲーム処理を実行する、請求項6に記載の情報処理システム。
【請求項8】
前記ゲーム処理部は、前記入力装置が変形していることを前記第1データが示す間、当該入力装置の変形量を示す画像を生成する変形量画像生成部を含む、請求項7に記載の情報処理システム。
【請求項9】
前記制限部は、前記所定のゲーム処理の実行開始後であって当該ゲーム処理が行われている間において前記入力装置が変形した状態から変形していない状態に前記所定条件を満たすように戻ったことを前記第1データが示す場合、前記再実行の制限を解除する、請求項1に記載の情報処理システム。
【請求項10】
前記データ取得部は、前記所定のゲーム処理の実行中にも前記第1データまたは前記第2データを取得し、
前記ゲーム処理部は、前記所定のゲーム処理の実行中に取得した前記第1データおよび/または前記第2データに基づいて、当該所定のゲーム
処理の実行後に新たに所定のゲーム処理を再実行する、請求項1に記載の情報処理システム。
【請求項11】
前記ゲーム処理部は、前記第2データが所定の方向へ前記入力装置が動いたことを示す場合に前記所定のゲーム処理として前記達成度合いを更新する更新処理を実行し、前記第2データが当該所定の方向とは異なる方向へ前記入力装置が動いたことを示す場合には前記更新処理を実行しない、請求項4に記載の情報処理システム。
【請求項12】
前記ゲーム処理部は、前記第2データを用いて前記所定の方向へ前記入力装置が動いたことを判定するための閾値を、前記異なる方向へ前記入力装置が動いたことを判定するための閾値より緩く設定する、請求項11に記載の情報処理システム。
【請求項13】
少なくとも第1センサを備える入力装置からの出力と第2センサからの出力とを用いて処理を行う情報処理装置のコンピュータで実行される情報処理プログラムであって、
前記入力装置は、外部から力が加わることに応じて少なくとも一部が弾性変形し、
前記第1センサは、前記入力装置の変形に応じた出力を行い、
前記第2センサは、当該第2センサの動きおよび/または姿勢に応じた出力を行い、
前記コンピュータを、
前記第1センサの出力に応じた第1データと前記第2センサの出力に応じた第2データとを取得するデータ取得手段と、
前記第1データに基づいて、前記入力装置が変形していることを当該第1データが示す間、前記第2データに基づいて所定のゲーム処理を実行するゲーム処理手段として機能させ、
前記ゲーム処理手段は、
前記入力装置が変形していない状態から変形した状態となったタイミングの当該入力装置の姿勢を基準とし、当該タイミング以降に取得した前記第2データに基づく前記入力装置の姿勢に応じて前記所定のゲーム処理を実行し、
前記入力装置が変形していることを前記第1データが示す間に前記第2センサに動きが生じている場合には、前記所定のゲーム処理として、仮想空間に配置される標的オブジェクトに対する攻撃を成功させる処理を実行し、当該入力装置が変形していないことを当該第1データが示す間または当該第2センサに動きが生じていない場合には、当該所定のゲーム処理を実行せず、
前記入力装置が変形した状態から変形していない状態に所定条件を満たすように戻ったことを前記第1データが示すまでは、前記所定のゲーム処理の再実行を制限する制限手段を含む、情報処理プログラム。
【請求項14】
少なくとも第1センサを備える入力装置からの出力と第2センサからの出力とを用いて処理を行う情報処理装置であって、
前記入力装置は、外部から力が加わることに応じて少なくとも一部が弾性変形し、
前記第1センサは、前記入力装置の変形に応じた出力を行い、
前記第2センサは、当該第2センサの動きおよび/または姿勢に応じた出力を行い、
前記情報処理装置は、
前記第1センサの出力に応じた第1データと前記第2センサの出力に応じた第2データとを取得するデータ取得部と、
前記第1データに基づいて、前記入力装置が変形していることを当該第1データが示す間、前記第2データに基づいて所定のゲーム処理を実行するゲーム処理部とを備え。
前記ゲーム処理部は、
前記入力装置が変形していない状態から変形した状態となったタイミングの当該入力装置の姿勢を基準とし、当該タイミング以降に取得した前記第2データに基づく前記入力装置の姿勢に応じて前記所定のゲーム処理を実行し、
前記入力装置が変形していることを前記第1データが示す間に前記第2センサに動きが生じている場合には、前記所定のゲーム処理として、仮想空間に配置される標的オブジェクトに対する攻撃を成功させる処理を実行し、当該入力装置が変形していないことを当該第1データが示す間または当該第2センサに動きが生じていない場合には、当該所定のゲーム処理を実行せず、
前記入力装置が変形した状態から変形していない状態に所定条件を満たすように戻ったことを前記第1データが示すまでは、前記所定のゲーム処理の再実行を制限する制限部を含む、情報処理装置。
【請求項15】
少なくとも第1センサを備える入力装置からの出力と第2センサからの出力とを用いて処理を行う情報処理方法であって、
前記入力装置は、外部から力が加わることに応じて少なくとも一部が弾性変形し、
前記第1センサは、前記入力装置の変形に応じた出力を行い、
前記第2センサは、当該第2センサの動きおよび/または姿勢に応じた出力を行い、
前記第1センサの出力に応じた第1データと前記第2センサの出力に応じた第2データとを取得するデータ取得ステップと、
前記第1データに基づいて、前記入力装置が変形していることを当該第1データが示す間、前記第2データに基づいて所定のゲーム処理を実行するゲーム処理ステップとを含み、
前記ゲーム処理ステップでは、
前記入力装置が変形していない状態から変形した状態となったタイミングの当該入力装置の姿勢を基準とし、当該タイミング以降に取得した前記第2データに基づく前記入力装置の姿勢に応じて前記所定のゲーム処理が実行され、
前記入力装置が変形していることを前記第1データが示す間に前記第2センサに動きが生じている場合には、前記所定のゲーム処理として、仮想空間に配置される標的オブジェクトに対する攻撃を成功させる処理が実行され、当該入力装置が変形していないことを当該第1データが示す間または当該第2センサに動きが生じていない場合には、当該所定のゲーム処理が実行されず、
前記ゲーム処理ステップは、前記入力装置が変形した状態から変形していない状態に所定条件を満たすように戻ったことを前記第1データが示すまでは、前記所定のゲーム処理の再実行を制限する制限ステップを含む、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザ操作に応じてオブジェクトを動作させる処理を行う情報処理システム、情報処理プログラム、情報処理装置、および情報処理方法に関する。
【背景技術】
【0002】
従来、ユーザに把持される装置の出力を用いたゲーム処理が実行可能な入力装置が開示されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1で開示された入力装置を用いたゲームでは、ユーザ体感においては改良の余地があった。
【0005】
それ故に、本発明の目的は、ユーザ体感を向上させることを可能とする情報処理システム、情報処理プログラム、情報処理装置、および情報処理方法を提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【0007】
本発明の情報処理システムの一構成例は、少なくとも歪センサを含む入力装置と動きセンサと情報処理装置とを含む。入力装置は、外部から力が加わることに応じて少なくとも一部が弾性変形する。歪センサは、入力装置の変形に応じた出力を行う。動きセンサは、当該動きセンサの動きおよび/または姿勢に応じた出力を行う。情報処理装置は、データ取得部およびゲーム処理部を備える。データ取得部は、歪センサの出力に応じた歪データと動きセンサの出力に応じた動きデータとを取得する。ゲーム処理部は、歪データに基づいて、入力装置が変形していることを検知している間、動きデータに基づいて所定のゲーム処理を実行する。
【0008】
上記によれば、入力装置を変形させながら動きセンサを動かすことによって所定のゲーム処理が行われるため、入力装置を用いた操作におけるユーザ体感を向上させることができる。
【0009】
また、上記動きセンサは、入力装置に備えられてもよい。
【0010】
上記によれば、入力装置を変形させながら動かすことによって所定のゲーム処理が行われるため、入力装置を用いた操作におけるユーザ体感を向上させることができる。
【0011】
また、上記動きセンサは、角速度センサおよび/または加速度センサを含んでもよい。
【0012】
上記によれば、角速度および/または加速度によって容易に動きセンサの動きを検出することができる。
【0013】
また、上記ゲーム処理部は、動きデータに基づいて、所定の達成目標が設定されるゲームの達成度合いを更新する更新処理を、所定のゲーム処理として実行し、入力装置が変形していることを検知しない間は、当該更新処理を実行しなくてもよい。
【0014】
上記によれば、入力装置を変形させながら動きセンサを動かす複合的な操作について、ユーザが行うインセンティブを与えることができる。
【0015】
また、上記ゲーム処理部は、入力装置が変形している間に動きセンサに動きが生じている場合には所定のゲーム処理を実行し、入力装置が変形していない間または動きセンサに動きが生じていない場合には当該所定のゲーム処理を実行しなくてもよい。
【0016】
上記によれば、入力装置を変形させないまたは動きセンサを動かしていない場合、所定のゲーム処理が実行されないため、当該所定のゲーム処理を特定の操作に応じた限定的なものにすることができる。
【0017】
また、上記ゲーム処理部は、入力装置の変形量が第1閾値を越えていることを歪データが示す場合には動きデータに基づいて所定のゲーム処理を実行し、当該変形量が当該第1閾値を超えていることを当該歪データが示さない場合であっても、入力装置の変形量が第1閾値を超えたことを示した後であって当該第1閾値よりも小さい第2閾値を下回らないことを示す場合には、動きデータに基づいて所定のゲーム処理を実行してもよい。
【0018】
上記によれば、入力装置を変形させる操作後に当該変形が戻った場合を許容して所定のゲーム処理を継続することができる。
【0019】
また、上記ゲーム処理部は、動きセンサに動きが生じたタイミングにおける入力装置の変形量に応じて、所定のゲーム処理を実行してもよい。
【0020】
上記によれば、変形量に応じたゲーム処理となるため、入力装置の変形量によってゲーム内容を制御することができる。
【0021】
また、上記ゲーム処理部は、動きセンサに動きが生じたタイミングにおける入力装置の変形量が当該タイミングから所定時間前までの入力装置の変形量より小さい場合、当該所定時間前までの入力装置の変形量に応じて、所定のゲーム処理を実行してもよい。
【0022】
上記によれば、動きセンサに動きが生じたタイミングにおいて入力装置の変形が戻った場合を考慮して所定のゲーム処理を継続することができる。
【0023】
また、上記ゲーム処理部は、変形量画像生成部を含んでもよい。変形量画像生成部は、入力装置が変形していると間、当該入力装置の変形量を示す画像を生成する。
【0024】
上記によれば、入力装置を変形させている変形量をユーザに示すことができる。
【0025】
また、上記ゲーム処理部は、制限部を含んでもよい。制限部は、入力装置が変形状態から定常状態に所定条件を満たすように戻るまでは、所定のゲーム処理の再実行を制限する。
【0026】
上記によれば、所定のゲーム処理を再度行うためには、入力装置の変形状態を戻す必要があり、入力装置を用いた操作におけるユーザ体感をさらに向上させることができる。
【0027】
また、上記制限部は、所定のゲーム処理の実行開始後であって当該ゲーム処理が行われている間において入力装置が変形状態から定常状態に所定条件を満たすように戻った場合、再実行の制限を解除してもよい。
【0028】
上記によれば、所定のゲーム処理の実行中であっても、入力装置の変形状態を戻すことによって、所定のゲーム処理の再実行が可能となるため、入力装置を用いた先行入力が可能となる。
【0029】
また、上記データ取得部は、所定のゲーム処理の実行中にも歪データまたは動きデータを取得してもよい。上記ゲーム処理部は、所定のゲーム処理の実行中に取得した歪データおよび/または動きデータに基づいて、当該所定のゲームの実行後に新たに所定のゲーム処理を再実行してもよい。
【0030】
上記によれば、所定のゲーム処理の実行中であっても、当該実行中に取得された歪データおよび/または動きデータに基づいて新たな所定のゲーム処理が可能となるため、ユーザによる先行入力が可能となる。
【0031】
また、上記ゲーム処理部は、入力装置が変形していない状態から変形した状態となったタイミングの動きデータを用いて当該入力装置の基準姿勢を算出し当該基準姿勢と、当該タイミング以降に取得した動きデータとに基づいて所定のゲーム処理を実行してもよい。
【0032】
上記によれば、動きセンサの動きによる操作の判定に用いる基準姿勢の算出を、入力装置を変形させる操作によって行うことができる。
【0033】
また、上記ゲーム処理部は、動きデータが所定の方向へ入力装置が動いたことを示す場合に所定のゲーム処理として達成度合いを更新する更新処理を実行し、動きデータが当該所定の方向とは異なる方向へ入力装置が動いたことを示す場合には更新処理を実行しなくてもよい。
【0034】
上記によれば、入力装置が動く方向に応じて、異なるゲーム処理を行うことができる。
【0035】
また、上記ゲーム処理部は、動きデータを用いて所定の方向へ入力装置が動いたことを判定するための閾値を、異なる方向へ入力装置が動いたことを判定するための閾値より緩く設定してもよい。
【0036】
上記によれば、入力装置が動く方向に応じて、操作感覚を調整することができる。
【0037】
また、本発明は、情報処理プログラム、情報処理装置、情報処理方法の形態で実施されてもよい。
【0038】
本発明の情報処理システムの他の構成例は、少なくとも歪センサを備える入力装置と動きセンサと情報処理装置とを含む。入力装置は、外部から力が加わることに応じて少なくとも一部が弾性変形する。歪センサは、入力装置の変形に応じた出力を行う。動きセンサは、当該動きセンサの動きおよび/または姿勢に応じた出力を行う。情報処理装置は、データ取得部およびゲーム処理部を備える。データ取得部は、歪センサの出力に応じた歪データと動きセンサの出力に応じた動きデータとを取得する。ゲーム処理部は、動きデータに基づいて動きセンサに動きが生じたことを検知したタイミングにおいて、歪データに基づいて入力装置が変形していることを検知した場合、所定のゲーム処理を実行する。
【0039】
上記によれば、入力装置を変形させながら動きセンサを動かすことによって所定のゲーム処理が行われるため、入力装置を用いた操作におけるユーザ体感を向上させることができる。
【発明の効果】
【0040】
本発明によれば、入力装置を変形させながら動きセンサを動かすことによって所定のゲーム処理が行われるため、入力装置を用いた操作におけるユーザ体感を向上させることができる。
【図面の簡単な説明】
【0041】
【
図1】ゲームシステム1に含まれる各装置の一例を示す図
【
図2】本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図
【
図3】本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図
【
図7】本体装置2の内部構成の一例を示すブロック図
【
図8】本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図
【
図10】リング型拡張装置5が備える構成要素の電気的な接続関係を示すブロック図
【
図11】ユーザがリング型拡張装置5を両手で把持してプレイする様子を示す図
【
図12】第1のゲーム例において、ユーザがリング型拡張装置5を操作する様子の一例を示す図
【
図13】ユーザ操作に応じて据置型モニタ9に表示される第1のゲーム例におけるゲーム画像の第1の例を示す図
【
図14】ユーザ操作に応じて据置型モニタ9に表示される第1のゲーム例におけるゲーム画像の第2の例を示す図
【
図15】ユーザ操作に応じて据置型モニタ9に表示される第1のゲーム例におけるゲーム画像の第3の例を示す図
【
図16】第1のゲーム例において本体装置2のDRAM85に設定されるデータ領域の一例を示す図
【
図17】第1のゲーム例においてゲームシステム1で実行される情報処理の一例を示すフローチャート
【
図18】
図17におけるステップS307において行われるスイング設定処理の詳細な一例を示すサブルーチン
【
図19】
図17におけるステップS311において行われるスイング演出処理の詳細な一例を示すサブルーチン
【
図20】第2のゲーム例において、ユーザがリング型拡張装置5を操作する様子の一例を示す図
【
図21】ユーザ操作に応じて据置型モニタ9に表示される第2のゲーム例におけるゲーム画像の第1の例を示す図
【
図22】ユーザ操作に応じて据置型モニタ9に表示される第2のゲーム例におけるゲーム画像の第2の例を示す図
【
図23】ユーザ操作に応じて据置型モニタ9に表示される第2のゲーム例におけるゲーム画像の第3の例を示す図
【
図24】第2のゲーム例において本体装置2のDRAM85に設定されるデータ領域の一例を示す図
【
図25】第2のゲーム例においてゲームシステム1で実行される情報処理の一例を示すフローチャート
【
図26】
図25におけるステップS410において行われるジャンプ演出処理の詳細な一例を示すサブルーチン
【発明を実施するための形態】
【0042】
以下、本実施形態の一例に係る情報処理システムについて説明する。本実施形態における情報処理システムは、一例としてゲームシステム1を用いている。
図1は、ゲームシステム1に含まれる各装置の一例を示す図である。
図1に示すように、ゲームシステム1は、本体装置2と、右コントローラ4と、リング型拡張装置5とを含む。
【0043】
本体装置2は、情報処理装置の一例であり、本実施形態ではゲーム機本体として機能する。本体装置2には、左コントローラ3および右コントローラ4がそれぞれ着脱可能である(
図1および
図3参照)。つまり、ユーザは、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として使用することができる(
図2参照)。また、ユーザは、本体装置2と左コントローラ3および右コントローラ4とを別体として使用することもできる(
図3参照)。なお、以下においては、本体装置2と各コントローラ3および4とをまとめて、「ゲーム装置」と呼ぶことがある。
【0044】
リング型拡張装置5は、右コントローラ4に用いられる拡張装置の一例である。リング型拡張装置5は、右コントローラ4をリング型拡張装置5に装着した状態で使用される。このように、本実施形態においては、ユーザは、コントローラ4を拡張装置に装着した状態で使用することもできる(
図11参照)。
【0045】
図2は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。
図2に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0046】
図3は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。
図2および
図3に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0047】
図4は、本体装置2の一例を示す六面図である。
図4に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0048】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0049】
図4に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0050】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0051】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、
図7に示すスピーカ88)を備えている。
図4に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0052】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0053】
図4に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0054】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0055】
図5は、左コントローラ3の一例を示す六面図である。
図5に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、
図2および
図5に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0056】
左コントローラ3は、アナログスティック32を備える。
図5に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
【0057】
左コントローラ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プログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0058】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0059】
図6は、右コントローラ4の一例を示す六面図である。
図6に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0060】
右コントローラ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を備える。
【0061】
また、ハウジング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がフィルタの機能を有していてもよい。
【0062】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0063】
図7は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、
図4に示す構成の他、
図7に示す各構成要素81~91、97、および98を備える。これらの構成要素81~91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0064】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System-on-a-chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
【0065】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0066】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0067】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0068】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi-Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0069】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0070】
プロセッサ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は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0071】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
【0072】
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
【0073】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0074】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0075】
また、本体装置2は、加速度センサ89を備える。本実施形態においては、加速度センサ89は、所定の3軸(例えば、
図2に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ89は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。
【0076】
また、本体装置2は、角速度センサ90を備える。本実施形態においては、角速度センサ90は、所定の3軸(例えば、
図2に示すxyz軸)回りの角速度を検出する。なお、角速度センサ90は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。
【0077】
加速度センサ89および角速度センサ90は、プロセッサ81に接続され、加速度センサ89および角速度センサ90の検出結果は、プロセッサ81へ出力される。プロセッサ81は、上記の加速度センサ89および角速度センサ90の検出結果に基づいて、本体装置2の動きおよび/または姿勢に関する情報を算出することが可能である。
【0078】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0079】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0080】
図8は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、
図7で示しているため
図8では省略している。
【0081】
左コントローラ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(登録商標)の規格に従って行われる。
【0082】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0083】
左コントローラ3は、各ボタン103(具体的には、ボタン33~39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(
図8では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0084】
左コントローラ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へ出力される。
【0085】
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0086】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサ104および角速度センサ105の検出結果)に基づいて算出することができる。
【0087】
左コントローラ3は、振動によってユーザに通知を行うための振動子107を備える。本実施形態においては、振動子107は、本体装置2からの指令によって制御される。すなわち、通信制御部101は、本体装置2からの上記指令を受け取ると、当該指令に従って振動子107を駆動させる。ここで、左コントローラ3は、コーデック部106を備える。通信制御部101は、上記指令を受け取ると、指令に応じた制御信号をコーデック部106へ出力する。コーデック部106は、通信制御部101からの制御信号から振動子107を駆動させるための駆動信号を生成して振動子107へ与える。これによって振動子107が動作する。
【0088】
振動子107は、より具体的にはリニア振動モータである。リニア振動モータは、回転運動をする通常のモータと異なり、入力される電圧に応じて所定方向に駆動されるため、入力される電圧の波形に応じた振幅および周波数で振動をさせることができる。本実施形態において、本体装置2から左コントローラ3に送信される振動制御信号は、単位時間ごとに周波数と振幅とを表すデジタル信号であってよい。別の実施形態においては、本体装置2から波形そのものを示す情報を送信するようにしてもよいが、振幅および周波数だけを送信することで通信データ量を削減することができる。また、さらにデータ量を削減するため、そのときの振幅および周波数の数値に替えて、前回の値からの差分だけを送信するようにしてもよい。この場合、コーデック部106は、通信制御部101から取得される振幅および周波数の値を示すデジタル信号をアナログの電圧の波形に変換し、当該波形に合わせて電圧を入力することで振動子107を駆動させる。したがって、本体装置2は、単位時間ごとに送信する振幅および周波数を変えることによって、そのときに振動子107を振動させる振幅および周波数を制御することができる。なお、本体装置2から左コントローラ3に送信される振幅および周波数は、1つに限らず、2つ以上送信するようにしてもよい。その場合、コーデック部106は、受信された複数の振幅および周波数それぞれが示す波形を合成することで、振動子107を制御する電圧の波形を生成することができる。
【0089】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0090】
図8に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0091】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、アナログスティック52、慣性センサ(加速度センサ114および角速度センサ115)を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。なお、右コントローラ4に備えられる慣性センサ(例えば、加速度センサ114や角速度センサ115)が動きセンサの一例に相当する。
【0092】
また、右コントローラ4は、振動子117およびコーデック部116を備える。振動子117およびコーデック部116は、左コントローラ3の振動子107およびコーデック部106と同様に動作する。すなわち、通信制御部111は、本体装置2からの指令に従って、コーデック部116を用いて振動子117を動作させる。
【0093】
また、右コントローラ4は、赤外撮像部123を備える。赤外撮像部123は、右コントローラ4の周囲を撮像する赤外線カメラを有する。一例として、本体装置2および/または右コントローラ4は、撮像された情報(例えば、撮像された撮像画像における少なくとも一部の領域全体を分割した複数のブロックの輝度に関連する情報等)を算出し、当該情報に基づいて、右コントローラ4の周囲変化を判別する。また、赤外撮像部123は、環境光によって撮像を行ってもよいが、本実施形態においては、赤外線を照射する赤外発光部124を有する。赤外発光部124は、例えば、赤外線カメラが画像を撮像するタイミングと同期して、赤外線を照射する。そして、赤外発光部124によって照射された赤外線が撮像対象によって反射され、当該反射された赤外線が赤外線カメラによって受光されることで、赤外線の画像が取得される。これによって、赤外撮像部123は、より鮮明な赤外線画像を得ることができる。なお、赤外撮像部123と赤外発光部124とは、それぞれ別のデバイスとして右コントローラ4内に設けられてもよいし、同じパッケージ内に設けられた単一のデバイスとして右コントローラ4内に設けられてもよい。また、本実施形態においては、赤外線カメラを有する赤外撮像部123が用いられるが、他の実施形態においては、撮像手段として、赤外線カメラに代えて可視光カメラ(可視光イメージセンサを用いたカメラ)が用いられてもよい。
【0094】
右コントローラ4は、処理部121を備える。処理部121は、通信制御部111に接続される。また、処理部121は、赤外撮像部123、および赤外発光部124に接続される。
【0095】
また、処理部121は、CPUやメモリ等を含み、右コントローラ4に備えられた図示しない記憶装置(例えば、不揮発性メモリ等)に記憶された所定のプログラム(例えば、画像処理や各種演算を行うためのアプリケーションプログラム)に基づいて、本体装置2からの指令に応じて赤外撮像部123に対する管理処理を実行する。例えば、処理部121は、赤外撮像部123に撮像動作を行わせたり、撮像結果に基づく情報(撮像画像の情報、あるいは、当該情報から算出される情報等)を取得および/または算出して通信制御部111を介して本体装置2へ送信したりする。また、処理部121は、本体装置2からの指令に応じて赤外発光部124に対する管理処理を実行する。例えば、処理部121は、本体装置2からの指令に応じて赤外発光部124の発光を制御する。なお、処理部121が処理を行う際に用いるメモリは、処理部121内に設けられてもいいし、メモリ112であってもよい。
【0096】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0097】
図9は、リング型拡張装置の一例を示す図である。なお、
図9は、右コントローラ4が装着された状態のリング型拡張装置5を示している。本実施形態においては、リング型拡張装置5は、右コントローラ4を装着可能な拡張装置である。詳細は後述するが、本実施形態においては、ユーザは、リング型拡張装置5に力を加えて変形させるという新規な操作を行う。ユーザは、例えばエクササイズを行う感覚でリング型拡張装置5を用いたフィットネス動作を行うことによって、リング型拡張装置5に対する操作を行うことができる。なお、リング型拡張装置5が入力装置の一例に相当する。
【0098】
図9に示すように、リング型拡張装置5は、環状部201と、本体部202とを備える。環状部201は、環状の形状を有する。なお、本実施形態においては、環状部201は、後述する弾性部材および台座部によって環状に形成される。本実施形態においては、環状部201は円環状である。なお、他の実施形態においては、環状部201の形状は任意であり、例えば楕円環状であってもよい。
【0099】
本体部202は、環状部201に設けられる。本体部202は、図示しないレール部を有する。レール部は、右コントローラ4を装着可能な装着部の一例である。本実施形態においては、レール部は、右コントローラ4のスライダ62(
図6参照)に対してスライド可能に係合する。スライダ62がレール部材に対して所定の直線方向(すなわち、スライド方向)に挿入されることで、レール部材に対してスライダ62が当該直線方向にスライド移動が可能な状態でレール部材がスライダ62と係合する。なお、レール部は、コントローラのスライダに対してスライド可能に係合することが可能である点で、本体装置2が有するレール部と同様である。そのため、レール部は、本体装置2が有するレール部と同様の構成であってもよい。
【0100】
本実施形態においては、右コントローラ4は、係止部63を有する(
図6参照)。係止部63は、スライダ62から側方(すなわち、
図6に示すz軸正方向)に突出して設けられる。係止部63は、スライダ62の内部の方向へ移動可能であるとともに、上記側方へ突出した状態となる向きに(例えばバネによって)付勢されている。また、レール部には、切欠きが設けられる。スライダ62がレール部の奥まで挿入された状態において、係止部63は切欠きに係止する。レール部にスライダ62が係合した状態で係止部63が切欠きに係止することによって、本体部202に右コントローラ4が装着される。
【0101】
なお、右コントローラ4は、押下可能な解除ボタン69を備える(
図6参照)。上記係止部63は、解除ボタン69が押下されることに応じて、スライダ62の内部の方向へ移動し、スライダ62に対して突出しない(あるいは、ほとんど突出しない)状態となる。したがって、リング型拡張装置5の本体部202に右コントローラ4が装着された状態において、解除ボタン69が押下されると、係止部63は切欠きに係止しなくなる(あるいは、ほとんど係止しなくなる)。以上より、リング型拡張装置5の本体部202に右コントローラ4が装着される状態において、ユーザは、解除ボタン69を押下することによって右コントローラ4をリング型拡張装置5から容易に取り外すことができる。
【0102】
図9に示すように、リング型拡張装置5は、グリップカバー203および204を有する。グリップカバー203および204は、ユーザが把持するための部品である。本実施形態においては、グリップカバー203および204は、環状部201に対して取り外し可能である。本実施形態においては、環状部201の左端付近の左把持部分に左グリップカバー203が設けられ、環状部201の右端付近の右把持部分に右グリップカバー204が設けられる。なお、把持部分の数は任意であり、想定される操作方法に応じて、3箇所以上に把持部分が設けられてもよいし、1箇所のみに把持部分が設けられてもよい。また、ゲームの内容(あるいは、ゲームにおいてユーザが行うフィットネス動作の内容)によっては、複数の把持部のうちの特定の把持部のみが片手または両手で把持されることがあってもよい。
【0103】
図10は、リング型拡張装置5が備える構成要素の電気的な接続関係を示すブロック図である。
図10に示すように、リング型拡張装置5は、歪み検出部211を備える。歪み検出部211は、環状部201が変形したことを検出する検出部の一例である。本実施形態においては、歪み検出部211は、歪みゲージを含む。歪み検出部211は、後述する弾性部材の変形に応じた台座部の歪みを示す信号(換言すれば、弾性部材の変形の大きさおよび変形の向きを示す信号)を出力する。
【0104】
ここで、本実施形態においては、環状部201は、弾性変形可能な弾性部と、台座部とを有する。台座部は、当該台座部と弾性部材とによって環が形成されるように当該弾性部材の両端部を保持する。なお、台座部は、本体部202の内部に設けられるので、
図9において図示されていない。台座部は、弾性部材よりも剛性が高い材質で構成される。例えば、弾性部材は、樹脂(具体的には、FRP(Fiber Reinforced Plastics))で構成され、台座部は、金属で構成される。上記歪みゲージは、台座部に設けられ、当該台座部の歪みを検出する。環状部201が定常状態から変形した場合、変形によって台座部に歪みが生じるので、歪みゲージによって台座部の歪みが検出される。検出された歪みに基づいて、環状部201が変形する向き(すなわち、2つのグリップカバー203および204が近づく向き、または、離れる向き)と、変形量とを算出することができる。ここで、環状部201の定常状態とは、上記台座部と弾性部材とによって環が形成されるように当該弾性部材を環形状に成形し、上記台座部が当該弾性部材の両端部を保持した状態において、環状部201に対して外部から(例えば、ユーザから)弾性部材を当該環形状から変形させる力が加わっていない状態を示している。そして、環状部201の変形状態とは、外部から力が加えられることによって、加えられた力に応じて定常状態から変形している状態を指すものとする。環状部201を上記歪みゲージは、当該環形状を初期値として当該環形状から変形した際の歪みを検出することになる。
【0105】
なお、他の実施形態においては、歪み検出部211は、歪みゲージに代えて、環状部201が定常状態から変形したことを検出可能な任意のセンサを含んでもよい。例えば、検出部211は、環状部201が変形した場合に加わる圧力を検出する感圧センサを含んでもよいし、環状部201が曲げられた量を検出する曲げセンサを含んでもよい。
【0106】
リング型拡張装置5は、信号変換部212を備える。本実施形態においては、信号変換部212は、アンプと、ADコンバータとを含む。信号変換部212は、歪み検出部211に電気的に接続され、歪み検出部211の出力信号をアンプによって増幅し、ADコンバータによってAD変換を行う。信号変換部212は、歪み検出部211によって検出された歪み値を示すデジタル信号を出力する。なお、他の実施形態においては、信号変換部212はADコンバータを含まず、後述する処理部213がADコンバータを含んでいてもよい。
【0107】
リング型拡張装置5は、処理部213を備える。処理部213は、プロセッサとメモリとを備える処理回路であり、例えばMCU(Micro Controller Unit)である。処理部213は、信号変換部212に電気的に接続され、信号変換部212の出力信号が処理部213に入力される。また、リング型拡張装置5は、端子214を備える。端子214は、処理部213に電気的に接続される。リング型拡張装置5に右コントローラ4が装着されている場合、処理部213は、信号変換部212の出力信号が示す歪み値を示す情報(換言すれば、後述するリング操作データ)を、端子214を介して右コントローラ4へ送信する。
【0108】
リング型拡張装置5は、電力変換部215を備える。電力変換部215は、上記各部211~214に電気的に接続される。電力変換部215は、端子214を介して外部(すなわち、右コントローラ4)から供給される電力を、上記各部211~214に供給する。電力変換部215は、供給される電力について電圧等の調整を行って上記各部211~214に供給してもよい。
【0109】
なお、リング型拡張装置5が他の装置へ送信する「歪み検出部の検出結果に関するデータ」は、当該検出結果(本実施形態においては、台座部の歪みを示す、歪み検出部211の出力信号)そのものを示すデータであってもよいし、当該検出結果に対して何らかの処理(例えば、データ形式の変換、および/または、歪み値に対する計算処理等)が行われることによって得られるデータであってもよい。例えば、処理部213は、上記検出結果である歪み値に基づいて弾性部材の変形量を算出する処理を行ってもよく、このとき、「歪み検出部の検出結果に関するデータ」は、当該変形量を示すデータであってもよい。
【0110】
なお、他の実施形態においては、リング型拡張装置5は、電池を備え、当該電池の電力によって動作してもよい。また、リング型拡張装置5が備える電池は、右コントローラ4から供給される電力によって充電可能な充電池であってもよい。
【0111】
図11は、リング型拡張装置5およびベルト型拡張装置6をユーザが使用する様子の一例を示す図である。
図11に示すように、ユーザは、ゲーム装置(すなわち、本体装置2および右コントローラ4)に加えて、リング型拡張装置5を用いてゲームを行うことができる。
【0112】
例えば
図11に示すように、ユーザは、右コントローラ4が装着されたリング型拡張装置5を両手で把持する。このとき、ユーザは、リング型拡張装置5に対する操作(例えば、リング型拡張装置5を曲げる操作、および、リング型拡張装置5を動かす操作)によって、ゲームを行うことができる。
【0113】
なお、
図11においては、ユーザがグリップカバー203および204を把持してリング型拡張装置5を曲げる動作を行う様子を例示している。この動作によって、ユーザは、両腕を鍛えるフィットネス動作をゲーム操作として行うことができる。なお、ユーザはリング型拡張装置5に対する種々の動作でゲーム操作を行うことができる。例えば、ユーザは、一方のグリップカバーを両手で把持し、他方のグリップカバーを腹部に当てた状態で、リング型拡張装置5を曲げる動作を行うこともできる。この動作によって、ユーザは、腕と腹筋を鍛えるフィットネス動作をゲーム操作として行うことができる。また、ユーザは、両足の内股にグリップカバー203および204を当ててリング型拡張装置5を足で挟んだ状態で、リング型拡張装置5を曲げる動作を行うこともできる。この動作によって、ユーザは、足の筋肉を鍛えるフィットネス動作をゲーム操作として行うことができる。
【0114】
本体装置2においてゲーム処理が実行される場合、右コントローラ4は、リング型拡張装置5からリング操作データを受信する。リング操作データは、上記歪み値を示す情報を含む。具体的には、リング型拡張装置5の処理部213は、端子214を介してリング操作データを右コントローラ4へ送信する。例えば、処理部213は、所定時間に1回の割合でリング操作データを繰り返し送信する。
【0115】
上記の場合、右コントローラ4の通信制御部111は、リング型拡張装置5から端子64を介して受信したリング操作データを本体装置2へ送信する。また、通信制御部111は、右コントローラ4に含まれる各入力部(具体的には、各ボタン113、アナログスティック52、各センサ114および115)から取得された情報を含む右コントローラ操作データを本体装置2へ送信する。なお、右コントローラ4がリング型拡張装置5に装着される状態では、右コントローラ4から本体装置2への通信は、無線通信によって行われる。通信制御部111は、右コントローラ操作データとリング操作データとをまとめて本体装置2へ送信してもよいし、別個に本体装置2へ送信してもよい。また、通信制御部111は、受信したリング操作データをそのまま本体装置2へ送信してもよいし、受信したリング操作データに何らかの加工(例えば、データ形式の変換、および/または、歪み値に対する計算処理等)を行って本体装置2へ送信してもよい。
【0116】
(第1のゲーム例)
次に、本体装置2が行う第1のゲーム例における具体的な処理を説明する前に、
図12~
図15を用いて、本体装置2で行う第1のゲーム例の概要について説明する。なお、
図12は、第1のゲーム例において、ユーザがリング型拡張装置5を操作する様子の一例を示す図である。
図13は、ユーザ操作に応じて据置型モニタ9に表示される第1のゲーム例におけるゲーム画像の第1の例を示す図である。
図14は、ユーザ操作に応じて据置型モニタ9に表示される第1のゲーム例におけるゲーム画像の第2の例を示す図である。
図15は、ユーザ操作に応じて据置型モニタ9に表示される第1のゲーム例におけるゲーム画像の第3の例を示す図である。
【0117】
図12に示すように、第1のゲーム例では、ユーザがリング型拡張装置5における一方のグリップカバー(例えば、グリップカバー203)を両手で把持した状態で、他方のグリップカバー(例えば、グリップカバー204)をユーザの腹部に当接させることによって、ユーザの両手と腹部との間にリング型拡張装置5を挟むような状態で操作が行われる。そして、両手と腹部との間に挟んだリング型拡張装置5における2つのグリップカバー203および204が近づくようにリング型拡張装置5を変形させながら、リング型拡張装置5を左右に振るように動かすユーザ操作が行われる。ここで、ユーザの両手と腹部との間にリング型拡張装置5を挟むような状態でリング型拡張装置5を左右に振るためには、ユーザの腹部全体、すなわちユーザの腰を左右に回転するように振ることとなり、第1のゲーム例では、両手を腹部に近づけるように力を加えながら腰をツイストさせるようなゲーム操作が必要となる。
【0118】
上述したように、本実施形態におけるゲームシステム1については、左コントローラ3および右コントローラ4が本体装置2から着脱可能である。また、
図13~
図15に示すように、クレードル8に本体装置2単体を装着することによって据置型モニタ9に画像(および音声)を出力可能である。以下、左コントローラ3および右コントローラ4を本体装置2から取り外した状態で、クレードル8に本体装置2単体を装着して、クレードル8に接続された据置型モニタ9から画像(および音声)を出力する利用態様におけるゲームシステムを用いて説明する。そして、ユーザは、リング型拡張装置5に装着された右コントローラ4を用いて、ゲーム操作を行う例を用いる。また、第1のゲーム例におけるゲーム処理の一例として、据置型モニタ9に表示されるプレイヤキャラクタPCがユーザ操作に応じて、左右のオブジェクトOBJLおよびOBJRを振り動かすことによって、仮想ゲーム空間内の標的オブジェクトTを倒す(攻撃する)処理を用いる。
【0119】
例えば、
図13においては、仮想ゲーム空間内にプレイヤキャラクタPCが配置されている。プレイヤキャラクタPCの左方にはオブジェクトOBJLが備えられており、プレイヤキャラクタPCの右方にはオブジェクトOBJRが備えられている。左右のオブジェクトOBJLおよびOBJRは、標的オブジェクトTを倒すことが可能な開いた状態と標的オブジェクトTを倒すことができない閉じた状態とに変化可能であり、
図13に示すようなリング型拡張装置5の環状部201が変形していない定常状態においては閉じた状態とされる。
【0120】
一方、
図14に示すように、グリップカバー203および204が互いに近づくように環状部201を定常状態から所定の状態以上までリング型拡張装置5を変形させる操作(図示B方向に変形させる押込操作)が行われた場合、左右のオブジェクトOBJLおよびOBJRは、プレイヤキャラクタPCの左右にそれぞれ開くように移動することによって標的オブジェクトTを倒すことが可能な開いた状態に変化する。このような押込操作は、リング型拡張装置5に設けられた歪みゲージが検出する歪みに基づいて検出される。リング型拡張装置5の環状部201が定常状態から変形した場合、上記歪みゲージによって台座部の歪みが検出され、検出された歪みに基づいて、環状部201が変形する向き(すなわち、2つのグリップカバー203および204が離れる向き、または、近づく向き)と変形量とを算出することができる。そして、環状部201が変形する向きが2つのグリップカバー203および204が近づく向きであり、予め設定された閾値以上の変形量である場合、左右のオブジェクトOBJLおよびOBJRを開いた状態とするための押込操作が行われたと判定される。なお、上記押込操作が解除された場合、左右のオブジェクトOBJLおよびOBJRは、プレイヤキャラクタPCの後方にそれぞれ閉じるように移動することによって標的オブジェクトTを倒すことができない閉じた状態に変化する。この場合、標的オブジェクトTを倒すことによって得られるゲームスコアを得ることができず、ゲーム達成度合いを更新することができなくなる。したがって、左右のオブジェクトOBJLおよびOBJRが閉じられた状態である場合、一例として、ユーザにリング型拡張装置5を変形させる操作を促すために、所定の画像や音声によってユーザに報知(例えば、文字画像「押し込んでください」を表示する、音声「押し込んでください」を生じさせる)してもかまわない。他の例として、左右のオブジェクトOBJLおよびOBJRが閉じられた状態である場合、リング型拡張装置5が左右に振られる操作が行われたとしても、左右のオブジェクトOBJLおよびOBJRが空振りして標的オブジェクトTを倒せない演出が行われることによって、ユーザにリング型拡張装置5を変形させる操作を促してもかまわない。
【0121】
図15に示すように、プレイヤキャラクタPCの攻撃対象となる複数の標的オブジェクトT(
図15においては標的オブジェクトT1およびT2)が、プレイヤキャラクタPCの前方から近づくように移動する。そして、プレイヤキャラクタPCは、左右のオブジェクトOBJLおよびOBJRの一方を標的オブジェクトTに衝突させることによって、当該標的オブジェクトTを倒して消滅させる攻撃が可能となり、標的オブジェクトTを倒すことによって所定のゲームスコアを得ることができる。
【0122】
例えば、
図15に示すように、上記押込操作された状態でリング型拡張装置5が右に振られる操作が行われた場合、プレイヤキャラクタPCは、開いた状態の左のオブジェクトOBJLを前方に回しながら右のオブジェクトOBJRを後方に回すように左右のオブジェクトOBJLおよびOBJRの両方を回転させるような動作を行う。ここで、リング型拡張装置5が右に振られる操作とは、実空間において、リング型拡張装置5における環状部201の円環軸が鉛直方向となった状態(すなわち、環状部201が水平に配置されている状態)で押込操作されている場合、当該円環軸が鉛直状態を維持した状態で右に移動しながら円環軸周りに右(図示C方向)に回転するようにリング型拡張装置5が移動するような操作である。また、上記押込操作された状態でリング型拡張装置5が左に振られる操作が行われた場合、プレイヤキャラクタPCは、開いた状態の右のオブジェクトOBJRを前方に回しながら左のオブジェクトOBJLを後方に回すように左右のオブジェクトOBJLおよびOBJRの両方を回転させるような動作を行う。ここで、リング型拡張装置5が左に振られる操作とは、実空間において、リング型拡張装置5における環状部201の円環軸が鉛直方向となった状態で押込操作されている場合、当該円環軸が鉛直状態を維持した状態で左に移動しながら円環軸周りに左に回転するようにリング型拡張装置5が移動するような操作である。なお、第1のゲーム例においては、リング型拡張装置5が押込操作された状態で左右に振られる操作に応じて、標的オブジェクトTを攻撃するゲーム処理が所定のゲーム処理の一例に相当する。
【0123】
このようにリング型拡張装置5が左または右に振られる操作が行われた場合、リング型拡張装置5に装着されている右コントローラ4には、実空間の水平方向への加速度が生じるとともに、z軸方向周り(
図6参照)の角速度が生じることになる。したがって、右コントローラ4における加速度センサ114によって検出される加速度および/または角速度センサ115によって検出される角速度を用いることによって、リング型拡張装置5が左または右に振られた操作の操作方向、操作角度、および操作速度等を算出することができる。そして、第1のゲーム例では、上記押込操作された状態でリング型拡張装置5が所定の操作角度以上に振られた場合、当該方向に振られる操作が行われたと判定される。なお、現実には、リング型拡張装置5が左または右に振られる操作は、リング型拡張装置5のロール操作、ピッチ操作、ヨー操作が混ざった操作となることがあるため、ロール操作、ピッチ操作、およびヨー操作によってそれぞれ変化するリング型拡張装置5の方向を合成することによって、最終的な操作角度や操作速度が算出されてもよい。
【0124】
ここで、振られる操作が行われたことを判定するための操作角度は、上記押込操作された時点におけるリング型拡張装置5の姿勢を基準姿勢、すなわち操作角度を0として、当該基準姿勢から変化したリング型拡張装置5の円環軸周りの回転角度を操作角度としてもよい。すなわち、ユーザは、リング型拡張装置5を定常状態に戻した後に押込操作を行うことによって、上記操作角度を0に戻すことが可能となる。なお、上記押込操作された時点とリング型拡張装置5の基準姿勢、すなわち操作角度を0に設定する時点とは、ある程度、時間差があってもかまわない。例えば、上記押込操作された時点から所定時間経過後のリング型拡張装置5の姿勢を基準姿勢、すなわち操作角度を0に設定してもかまわない。また、リング型拡張装置5に装着される右コントローラ4内の角速度センサ115の性質として、検出を続けることによってノイズが加算されて、正確な角速度が検出できなくなる、いわゆる検出値がドリフトすることがある。このように角速度センサ115の検出値に誤差が累積する状態になったとしても、リング型拡張装置5を定常状態に戻した状態において操作角度を0に初期化することによって、当該誤差を除去しながら操作角度が0の方向(例えば、正面方向)を再設定することが可能となる。
【0125】
また、左右のオブジェクトOBJLおよびOBJRの両方を回転させる操作は、1回の押込操作に対して1回のみ可能としてもよい。一例として、左右のオブジェクトOBJLおよびOBJRが振り出される動作が行われた後は、上記押込操作が継続されている場合であっても、左右のオブジェクトOBJLおよびOBJRがプレイヤキャラクタPCの後方にそれぞれ閉じるように移動することによって標的オブジェクトTを倒すことができない閉じた状態に変化してもよい。この場合、ユーザは、左右のオブジェクトOBJLおよびOBJRを開いた状態にして複数回動かすためには、リング型拡張装置5の環状部201を定常状態に一旦戻した後に再度押込操作を行って、リング型拡張装置5を振り動かす操作が必要となる。
【0126】
なお、左右のオブジェクトOBJLおよびOBJRの両方を回転させる指示を行う操作は、プレイヤキャラクタPCの演出に対して先行して入力可能であってもよい。例えば、プレイヤキャラクタPCが左右のオブジェクトOBJLおよびOBJRを振り動かすアクション中に、リング型拡張装置5の押込操作が一旦解除されて再度押込操作が新たに行われた場合、上記演出中であっても新たな押込操作に応じて左右のオブジェクトOBJLおよびOBJRの両方を回転させる指示を行う操作を先行して入力可能としてもよい。また、アクション中に先行入力可能な上記操作の回数は、制限(例えば、先行入力可能な回数を1回に制限)が設けられてもよい。
【0127】
また、上記押込操作が行われていない状態から上記押込操作が有効となったと判定するためにリング型拡張装置5の環状部201の変形量を判定するための閾値(第1閾値)と、上記押込操作が行われている状態から上記押込操作を無効と判定するための閾値(第2閾値)とは、異なる値に設定してもよい。例えば、上記第1閾値に対して上記第2閾値を相対的に小さく設定することによって、上記押込操作が行われた後にリング型拡張装置5を振り動かす操作によって当該押込操作に対する力が緩んでしまうような状態となっても、左右のオブジェクトOBJLおよびOBJRが閉じた状態に戻ってしまうような状況をある程度防止することができる。一例として、上記第2閾値は、リング型拡張装置5が定常状態からの最大変形可能量を10割とした場合に、当該定常状態から2割程度変形する状態に押込操作された変形量に設定される。
【0128】
また、標的オブジェクトTは、左右のオブジェクトOBJLおよびOBJRの何れがプレイヤキャラクタPC前方に振り出される場合であっても倒して消滅させることが可能としてもよいし、左右のオブジェクトOBJLおよびOBJRの何れか一方がプレイヤキャラクタPC前方に振り出される場合に限って倒して消滅させることが可能としてもよい。第1の例として、出現する標的オブジェクトT毎に、左右のオブジェクトOBJLおよびOBJRの両方によって倒すことが可能な特性、左のオブジェクトOBJLのみによって倒すことが可能な特性、右のオブジェクトOBJRのみによって倒すことが可能な特性を設定し、それぞれの特性がユーザによって視認可能に表示してもかまわない。第2の例として、標的オブジェクトTの位置に応じて、倒すことが可能なオブジェクトOBJLおよびOBJRが区別されてもよい。例えば、プレイヤキャラクタPCの正面から近づく標的オブジェクトTを左右のオブジェクトOBJLおよびOBJRの両方によって倒すことが可能とし、プレイヤキャラクタPCの左方から近づく標的オブジェクトTを左のオブジェクトOBJLのみによって倒すことが可能とし、プレイヤキャラクタPCの右方から近づく標的オブジェクトTを右のオブジェクトOBJRのみによって倒すことが可能としてもよい。
【0129】
このように、左右のオブジェクトOBJLおよびOBJRの何れか一方がプレイヤキャラクタPC前方に振り出される場合に限って倒して消滅させる標的オブジェクトTが設定されている場合、標的オブジェクトTを倒すためにはリング型拡張装置5を振る方向が限定されることになる。すなわち、
図12に示したようにリング型拡張装置5を操作するユーザは、一方向だけにリング型拡張装置5を振るだけでなく、標的オブジェクトTのタイプや位置に応じて両方向にリング型拡張装置5を振ることが必要となる。なお、標的オブジェクトTを倒すためのリング型拡張装置5を振る方向が限定されている場合、リング型拡張装置5が振られたと判定するための判定角度をそれぞれの方向において異なる角度に設定してもよい。例えば、標的オブジェクトTを倒すことが可能な方向(正方向)にリング型拡張装置5が振られたと判定するための判定角度に対して、標的オブジェクトTを倒すことができない方向(誤方向)にリング型拡張装置5が振られたと判定するための判定角度を大きく設定してもかまわない。この場合、左右のオブジェクトOBJLおよびOBJRが標的オブジェクトTを倒すことができない誤方向に振り出されるような、ユーザが意図しないユーザ操作を少なくすることができる。
【0130】
なお、リング型拡張装置5を用いた操作は、右コントローラ4(リング型拡張装置5)における動きセンサの出力に加えて、左コントローラ3や他の入力装置からの出力を用いて判定されてもかまわない。
【0131】
また、上述した説明では、リング型拡張装置5が振られたことを判定するために、リング型拡張装置5の操作角度を用いているが、他のパラメータを用いて当該判定が行われてもよい。例えば、リング型拡張装置5が実空間において左右に振られる速度や加速度を用いて、これらのパラメータが所定の閾値を越える場合にリング型拡張装置5が振られたと判定されてもよい。
【0132】
次に、
図16~
図19を参照して、第1のゲーム例においてゲームシステム1で実行される具体的な処理の一例について説明する。
図16は、第1のゲーム例において本体装置2のDRAM85に設定されるデータ領域の一例を示す図である。なお、DRAM85には、
図16に示すデータの他、他の処理で用いられるデータも記憶されるが、詳細な説明を省略する。
【0133】
第1のゲーム例において、DRAM85のプログラム記憶領域には、ゲームシステム1で実行される各種プログラムP1が記憶される。本実施形態においては、各種プログラムP1は、上述した右コントローラ4との間で無線通信するための通信プログラムや、右コントローラ4から取得したデータに基づいた情報処理を行うためのアプリケーションプログラム(例えば、ゲームプログラム)等が記憶される。なお、各種プログラムP1は、フラッシュメモリ84に予め記憶されていてもよいし、ゲームシステム1に着脱可能な記憶媒体(例えば、スロット23に装着された所定の種類の記憶媒体)から取得されてDRAM85に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されてDRAM85に記憶されてもよい。プロセッサ81は、DRAM85に記憶された各種プログラムP1を実行する。
【0134】
また、第1のゲーム例において、DRAM85のデータ記憶領域には、ゲームシステム1において実行される通信処理や情報処理等の処理において用いられる各種のデータが記憶される。本実施形態においては、DRAM85には、操作データD1a、角速度データD1b、加速度データD1c、姿勢データD1d、重力方向データD1e、リング変形量データD1g、リング回転速度データD1h、リング回転角度データD1i、スイング動作データD1j、変形フラグデータD1k、スイング設定フラグデータD1m、スイング演出フラグデータD1n、スコアデータD1p、プレイヤキャラクタ動作データD1q、標的オブジェクト動作データD1r、および画像データD1s等が記憶される。
【0135】
操作データD1aは、右コントローラ4から適宜取得した操作データである。上述したように、右コントローラ4から送信される操作データには、各入力部(具体的には、各ボタン、アナログスティック、各センサ)からの入力に関する情報(具体的には、操作に関する情報や各センサによる検出結果)やリング型拡張装置5における環状部201の変形状態を示す歪み値が含まれている。本実施形態では、無線通信によって右コントローラ4から所定周期で操作データが送信されており、当該受信した操作データを用いて操作データD1aが適宜更新される。なお、操作データD1aの更新周期は、ゲームシステム1で実行される処理の周期である1フレーム毎に更新されてもよいし、上記無線通信によって操作データが送信される周期毎に更新されてもよい。
【0136】
角速度データD1bは、右コントローラ4から取得した操作データのうち、現時点から所定時間前までに取得された右コントローラ4に生じている角速度の履歴を示すデータである。例えば、角速度データD1bは、右コントローラ4に生じているxyz軸周りの角速度を示すデータの履歴等を含んでいる。
【0137】
加速度データD1cは、右コントローラ4から取得した操作データのうち、現時点から所定時間前までに取得された右コントローラ4に生じている加速度の履歴を示すデータである。例えば、加速度データD1cは、右コントローラ4に生じているxyz軸方向の加速度を示すデータの履歴等を含んでいる。
【0138】
姿勢データD1dは、実空間における右コントローラ4の姿勢を示すデータであり、現時点から所定時間前までにおける姿勢の履歴を示すデータである。一例として、姿勢データD1dは、実空間における右コントローラ4のxyz軸方向(例えば、実空間におけるXYZ軸に対する角度)の履歴を示すデータである。
【0139】
重力方向データD1eは、右コントローラ4に作用している重力加速度の方向を示すデータである。
【0140】
リング変形量データD1gは、リング型拡張装置5の変形方向および変形量を示すデータである。リング回転速度データD1hは、リング型拡張装置5が振られて回転する速度(操作速度)を示すデータである。リング回転角度データD1iは、リング型拡張装置5が振られて回転した角度(操作角度)を示すデータである。
【0141】
スイング動作データD1jは、リング型拡張装置5を用いた操作に応じて設定された、プレイヤキャラクタPCを動作させるスイング動作を示すデータである。
【0142】
変形フラグデータD1kは、リング型拡張装置5が押込操作されている場合にオンに設定される変形フラグを示すデータである。スイング設定フラグデータD1mは、リング型拡張装置5を用いた操作によってスイング動作が設定されている場合にオンに設定されるスイング設定フラグを示すデータである。スイング演出フラグデータD1nは、プレイヤキャラクタPCがスイング動作をしている場合にオンに設定されるスイング演出フラグを示すデータである。
【0143】
スコアデータD1pは、現時点のゲームスコアを示すデータである。
【0144】
プレイヤキャラクタ動作データD1qは、仮想ゲーム空間に配置されているプレイヤキャラクタPCの位置、状態、姿勢、動作等を示すデータである。標的オブジェクト動作データD1rは、標的オブジェクトTの位置、状態、姿勢、動作等を示すデータである。
【0145】
画像データD1sは、表示画面に画像(例えば、プレイヤキャラクタPCの画像、標的オブジェクトTの画像、フィールド画像、背景画像等)を表示するためのデータである。
【0146】
次に、
図17~
図19を参照して、第1のゲーム例における情報処理の詳細な一例を説明する。
図17は、第1のゲーム例においてゲームシステム1で実行される情報処理の一例を示すフローチャートである。
図18は、
図17におけるステップS307において行われるスイング設定処理の詳細な一例を示すサブルーチンである。
図19は、
図17におけるステップS311において行われるスイング演出処理の詳細な一例を示すサブルーチンである。第1のゲーム例においては、
図17~
図19に示す一連の処理は、プロセッサ81が各種プログラムP1に含まれる通信プログラムや所定のアプリケーションプログラム(ゲームプログラム)を実行することによって行われる。また、
図17~
図19に示す情報処理が開始されるタイミングは任意である。
【0147】
なお、
図17~
図19に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理をプロセッサ81が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、プロセッサ81以外のプロセッサや専用回路が実行するようにしてもよい。また、本体装置2において実行される処理の一部は、本体装置2と通信可能な他の情報処理装置(例えば、本体装置2とネットワークを介して通信可能なサーバ)によって実行されてもよい。すなわち
図17~
図19に示す各処理は、本体装置2を含む複数の情報処理装置が協働することによって実行されてもよい。
【0148】
図17において、プロセッサ81は、情報処理における初期設定を行い(ステップS301)、次のステップに処理を進める。例えば、上記初期設定では、プロセッサ81は、以下に説明する処理を行うためのパラメータを初期化する。例えば、プロセッサ81は、仮想ゲーム空間において各オブジェクト(オブジェクトOBJLおよびOBJRを備えるプレイヤキャラクタPCを含む)を初期配置して仮想ゲーム空間の初期状態を生成し、プレイヤキャラクタPCの位置、方向、状態(左右のオブジェクトOBJLおよびOBJRを閉じた状態)、および姿勢等を用いてプレイヤキャラクタ動作データD1qを更新する。
【0149】
次に、プロセッサ81は、右コントローラ4から操作データを取得して操作データD1aを更新し(ステップS302)、次のステップに処理を進める。なお、プロセッサ81は、上記ステップS302において右コントローラ4から取得した操作データのうち、右コントローラ4に生じている角速度を示すデータを、角速度データD1bに格納する。また、プロセッサ81は、上記ステップS302において右コントローラ4から取得した操作データのうち、右コントローラ4に生じている加速度を示すデータを、加速度データD1cに格納する。なお、データ取得部は、歪データと動きデータとを取得する処理を行うものであり、一例として右コントローラ4から操作データを取得して操作データD1aを更新する処理を行うプロセッサ81に相当する。
【0150】
次に、プロセッサ81は、右コントローラ4の姿勢を算出し(ステップS303)、次のステップに処理を進める。例えば、プロセッサ81は、角速度データD1bに格納されている角速度データを用いて、右コントローラ4のxyz軸周りの角速度を取得する。そして、プロセッサ81は、姿勢データD1dが示す右コントローラ4の姿勢における重力加速度方向を基準としたxyz軸を、取得された角速度に応じてそれぞれ回転させて、当該回転後の重力加速度方向を基準としたxyz軸の方向を右コントローラ4の姿勢を示す最新のデータとして、姿勢データD1dに格納する。また、プロセッサ81は、加速度データD1cに格納されている加速度データを用いて、右コントローラ4に作用している重力加速度の方向を算出して、重力方向データD1eに格納する。なお、重力加速度を抽出する方法については任意の方法を用いればよく、例えば右コントローラ4に平均的に生じている加速度成分を算出して当該加速度成分を重力加速度として抽出してもよい。また、プロセッサ81は、重力方向データD1eが示す右コントローラ4に生じている重力加速度の方向を用いて、姿勢データD1dが示す右コントローラ4の最新の姿勢を適時補正してもかまわない。
【0151】
次に、プロセッサ81は、リング型拡張装置5の変形量を算出し(ステップS304)、次のステップに処理を進める。例えば、プロセッサ81は、操作データD1aが示す歪み値を用いて、リング型拡張装置5における環状部201の変形量および変形方向を算出し、当該算出結果を用いてリング変形量データD1gを更新する。
【0152】
次に、プロセッサ81は、変形フラグがオフであるか否かを判定する(ステップS305)。例えば、プロセッサ81は、変形フラグデータD1kが示す変形フラグがオフに設定されている場合、上記ステップS305において肯定判定する。そして、プロセッサ81は、変形フラグがオフである場合、ステップS306に処理を進める。一方、プロセッサ81は、変形フラグがオンである場合、ステップS308に処理を進める。
【0153】
ステップS306において、プロセッサ81は、上記ステップS304において算出された変形量が第1閾値以上であるか否かを判定する。そして、プロセッサ81は、上記変形量が第1閾値以上である場合、ステップS307に処理を進める。一方、プロセッサ81は、上記変形量が第1閾値未満である場合、ステップS310に処理を進める。ここで、上記第1閾値は、リング型拡張装置5に対する押込操作が開始されたことを検出するために、リング型拡張装置5の変形量を判定するための閾値であり、リング型拡張装置5の変形量が当該第1閾値以上に到達した場合に押込操作が開始されたと判定される。
【0154】
ステップS307において、プロセッサ81は、スイング設定処理を行い、ステップS310に処理を進める。以下、
図18を参照して、上記ステップS307において行われるスイング設定処理について説明する。なお、ゲーム処理部は、歪データに基づいて、入力装置が変形していることを検出している間、動きデータに基づいて所定のゲーム処理を実行する処理を行うものであり、一例としてスイング設定処理を行うプロセッサ81に相当する。
【0155】
図18において、プロセッサ81は、変形フラグをオンに設定して(ステップS321)、次のステップに処理を進める。例えば、プロセッサ81は、変形フラグデータD1kが示す変形フラグをオンに設定して、変形フラグデータD1kを更新する。
【0156】
次に、プロセッサ81は、スイング設定フラグがオフであるか否かを判定する(ステップS322)。例えば、プロセッサ81は、スイング設定フラグデータD1mが示すスイング設定フラグがオフに設定されている場合、上記ステップS322において肯定判定する。そして、プロセッサ81は、スイング設定フラグがオフである場合、ステップS323に処理を進める。一方、プロセッサ81は、スイング設定フラグがオンである場合、当該サブルーチンによる処理を終了する。
【0157】
ステップS323において、プロセッサ81は、実空間においてリング型拡張装置5が振られて回転移動する速度(操作速度)を算出し、次のステップに処理を進める。例えば、プロセッサ81は、加速度データD1cを参照して、上記操作速度を算出して、リング回転速度データD1hを更新する。なお、上記操作速度は、姿勢データD1dが示す最新の姿勢に基づいて算出される実空間における水平方向へリング型拡張装置5(右コントローラ4)が移動する速度としてもよいし、リング型拡張装置5の環状部201の円環軸に垂直な方向(すなわち、右コントローラ4のz軸方向に垂直な方向)へリング型拡張装置5(右コントローラ4)が移動する速度としてもよい。
【0158】
次に、プロセッサ81は、実空間においてリング型拡張装置5が振られて回転した角度(操作角度)および操作方向を算出し、次のステップに処理を進める。例えば、プロセッサ81は、角速度データD1cおよび姿勢データD1dを参照して、変形フラグがオフからオンに変化した時点のリング型拡張装置5を基準姿勢として、当該基準姿勢から回転したリング型拡張装置5の角度を上記操作角度およびとして算出して、当該操作角度および操作方向を用いてリング回転角度データD1iを更新する。なお、上記操作角度は、上記基準姿勢における実空間の鉛直方向周りにリング型拡張装置5(右コントローラ4)が回転する角度としてもよいし、リング型拡張装置5の環状部201の円環軸周り(すなわち、右コントローラ4のz軸方向周り)にリング型拡張装置5(右コントローラ4)が回転する角度としてもよい。
【0159】
次に、プロセッサ81は、正方向/誤方向を設定し(ステップS325)、次のステップに処理を進める。ここで、上述したように、正方向は、左右のオブジェクトOBJLまたはOBJRによって標的オブジェクトTを倒すことが可能な方向であり、誤方向は、左右のオブジェクトOBJLまたはOBJRによって標的オブジェクトTを倒すことができない方向である。そして、プロセッサ81は、現時点における仮想ゲーム空間においてプレイヤキャラクタPCに最も接近している標的オブジェクトTのタイプに基づいて、正方向/誤方向を設定する。
【0160】
次に、プロセッサ81は、上記ステップS324において算出された操作方向に対応して左右のオブジェクトOBJLまたはOBJRが振り出される仮想ゲーム空間における方向が、正方向であるか否かを判定する(ステップS326)。そして、プロセッサ81は、上記振り出される方向が正方向である場合、ステップS327に処理を進める。一方、プロセッサ81は、上記振り出される方向が誤方向である場合、ステップS329に処理を進める。なお、プロセッサ81は、上記ステップS325において正方向/誤方向が設定されていない場合や上記ステップS324において操作方向が算出されていない(すなわち、操作角度が0)である場合、上記ステップS326において肯定判定する。
【0161】
ステップS327において、プロセッサ81は、上記ステップS324において算出された操作角度が第3閾値以上であるか否かを判定する。そして、プロセッサ81は、上記操作角度が第3閾値以上である場合、ステップS328に処理を進める。一方、プロセッサ81は、上記操作角度が第3閾値未満である場合、当該サブルーチンによる処理を終了する。ここで、上記第3閾値は、正方向にリング型拡張装置5が振られたことを検出するために、リング型拡張装置5の操作角度を判定するための閾値であり、例えば、45度に設定される。そして、正方向へのリング型拡張装置5の操作角度が当該第3閾値以上に到達した場合に正方向にリング型拡張装置5が振られる操作が行われたと判定される。
【0162】
ステップS328において、プロセッサ81は、プレイヤキャラクタPCにおける正方向へのスイング動作を設定し、ステップS331に処理を進める。例えば、プロセッサ81は、プレイヤキャラクタPCが左右のオブジェクトOBJLまたはOBJRを正方向に予め定められた速度で予め定められた角度まで振り出すように左右のオブジェクトOBJLおよびOBJRをスイングする動作を設定し、当該設定された動作を用いてスイング動作データD1jを更新する。なお、設定されるスイング動作は、上記ステップS323において算出された操作速度が速いほどスイング速度が速くなるように設定してもよい。
【0163】
一方、ステップS329において、プロセッサ81は、上記ステップS324において算出された操作角度が第4閾値以上であるか否かを判定する。そして、プロセッサ81は、上記操作角度が第4閾値以上である場合、ステップS330に処理を進める。一方、プロセッサ81は、上記操作角度が第4閾値未満である場合、当該サブルーチンによる処理を終了する。ここで、上記第4閾値は、誤方向にリング型拡張装置5が振られたことを検出するために、リング型拡張装置5の操作角度を判定するための閾値であり、上記第3閾値より大きな値(例えば、60度)に設定されてもよい。
【0164】
ステップS330において、プロセッサ81は、プレイヤキャラクタPCにおける誤方向へのスイング動作を設定し、ステップS331に処理を進める。例えば、プロセッサ81は、プレイヤキャラクタPCが左右のオブジェクトOBJLまたはOBJRを誤方向に予め定められた速度で予め定められた角度まで振り出すように左右のオブジェクトOBJLおよびOBJRをスイングする動作を設定し、当該設定された動作を用いてスイング動作データD1jを更新する。
【0165】
ステップS331において、プロセッサ81は、スイング演出フラグをオンに設定して、次のステップに処理を進める。例えば、プロセッサ81は、スイング演出フラグデータD1nが示すスイング演出フラグをオンに設定して、スイング演出フラグデータD1nを更新する。
【0166】
次に、プロセッサ81は、スイング設定フラグをオンに設定して(ステップS332)、当該サブルーチンによる処理を終了する。例えば、プロセッサ81は、スイング設定フラグデータD1mが示すスイング設定フラグをオンに設定して、スイング設定フラグデータD1mを更新する。このように、リング型拡張装置5の操作に応じて正方向または誤方向へのスイング動作が設定された場合、スイング設定フラグがオンに設定されるため、スイング動作が設定された後もリング型拡張装置5の押込操作が続いたとしても上記ステップS322において否定判定され、新たなスイング動作が設定されることはない。
【0167】
図17に戻り、上記ステップS305において変形フラグがオンされていると判定された場合、プロセッサ81は、上記ステップS308において算出された変形量が第2閾値以上であるか否かを判定する。そして、プロセッサ81は、上記変形量が第2閾値以上である場合、上記ステップS307に処理を進める。一方、プロセッサ81は、上記変形量が第2閾値未満である場合、ステップS309に処理を進める。ここで、上記第2閾値は、リング型拡張装置5に対する押込操作が開始された後にリング型拡張装置5に対する押込力が緩んだ場合であっても、当該押込操作が継続していると判定するための閾値であり、上記第1閾値より小さな値に設定される。
【0168】
ステップS309において、プロセッサ81は、変形フラグおよびスイング設定フラグをオフに設定して、ステップS310に処理を進める。例えば、プロセッサ81は、変形フラグデータD1kが示す変形フラグおよびスイング設定フラグデータD1mが示すスイング設定フラグをそれぞれオフに設定して、変形フラグデータD1kおよびスイング設定フラグデータD1mをそれぞれ更新する。このようにリング型拡張装置5に対する押込操作が上記第2閾値未満の変形量まで緩んだ場合、当該押込操作が解除されたと判定されて変形フラグがオフに設定され、スイング設定フラグがオフに設定されることによって新たなスイング動作を設定することが可能となる。なお、制限部は、入力装置が変形状態から定常状態に所定条件を満たすように戻るまでは、所定のゲーム処理の再実行を制限する処理を行うものであり、一例として上記ステップS308および上記ステップS309における処理を行うプロセッサ81に相当する。
【0169】
ステップS310において、プロセッサ81は、スイング演出フラグがオンであるか否かを判定する。例えば、プロセッサ81は、スイング演出フラグデータD1nが示すスイング演出フラグがオンに設定されている場合、上記ステップS310において肯定判定する。そして、プロセッサ81は、スイング演出フラグがオンである場合、ステップS311に処理を進める。一方、プロセッサ81は、スイング演出フラグがオフである場合、ステップS312に処理を進める。
【0170】
ステップS311において、プロセッサ81は、スイング演出処理を行い、ステップS312に処理を進める。以下、
図19を参照して、上記ステップS311において行われるスイング演出処理について説明する。
【0171】
図19において、プロセッサ81は、プレイヤキャラクタPCのスイング状態を設定し(ステップS341)、次のステップに処理を進める。例えば、プロセッサ81は、スイング動作データD1jが示すスイング動作に基づいて、プレイヤキャラクタPCが左右のオブジェクトOBJLおよびOBJRを振る現時点の姿勢(例えば、左右のオブジェクトOBJLおよびOBJRを振る現時点の角度やそのプレイヤキャラクタPCの姿勢)を設定し、プレイヤキャラクタ動作データD1qを更新する。
【0172】
次に、プロセッサ81は、プレイヤキャラクタPCによる標的オブジェクトTに対する攻撃が成功したか否かを判定する(ステップS342)。例えば、プロセッサ81は、上記ステップS341におけるスイング状態が標的オブジェクトTと衝突する状態であり、プレイヤキャラクタPCが正方向に左右のオブジェクトOBJLおよびOBJRをスイングしている場合、当該標的オブジェクトTに対する攻撃が成功したと判定する。そして、プロセッサ81は、プレイヤキャラクタPCによる標的オブジェクトTに対する攻撃が成功した場合、ステップS343に処理を進める。一方、プロセッサ81は、プレイヤキャラクタPCによる標的オブジェクトTに対する攻撃が成功していない場合、ステップS345に処理を進める。
【0173】
ステップS343において、プロセッサ81は、速度パラメータに応じてゲームスコアを算出し、次のステップに処理を進める。例えば、プロセッサ81は、スイングが開始された時点においてリング型拡張装置5に作用している速度パラメータ(速度、加速度、角速度等)に基づいた攻撃力によって、標的オブジェクトTに対する攻撃が成功したことによるゲームスコアを算出し、当該ゲームスコアを加算してスコアデータD1pを更新する。具体的には、プロセッサ81は、スイングが開始された時点においてリング型拡張装置5が左右に振られている加速度や角速度、リング回転速度データD1hが示す速度等に基づいて、上記ゲームスコアを算出してもよい。一例として、上記速度パラメータを複数段階に分類し、当該分類に応じてゲームパラメータを算出することが考えられる。なお、ゲームスコアは、標的オブジェクトTに対する攻撃が成功したことによって予め定められた一定のゲームスコアが得られてもよく、この場合、上記速度パラメータとは無関係にゲームスコアが加算されることになる。
【0174】
次に、プロセッサ81は、攻撃された標的オブジェクトTの状態を設定し(ステップS344)、ステップS347に処理を進める。例えば、プロセッサ81は、攻撃された標的オブジェクトTが当該攻撃によって倒される状態に設定するとともに、仮想ゲーム空間から当該標的オブジェクトTを消滅させる演出を行い、当該演出に基づいて標的オブジェクト動作データD1rを更新する。
【0175】
一方、上記ステップS342において標的オブジェクトTに対する攻撃が成功していないと判定された場合、プロセッサ81は、プレイヤキャラクタPCによる標的オブジェクトTに対する攻撃が失敗したことが確定したか否かを判定する(ステップS345)。例えば、プロセッサ81は、上記ステップS341におけるスイング状態が標的オブジェクトTと衝突する状態であるが、プレイヤキャラクタPCが誤方向に左右のオブジェクトOBJLおよびOBJRをスイングしている場合や、左右のオブジェクトOBJLおよびOBJRが標的オブジェクトTと衝突せずにスイングが振り切った状態となった場合、当該標的オブジェクトTに対する攻撃が失敗したことが確定したと判定する。そして、プロセッサ81は、プレイヤキャラクタPCによる標的オブジェクトTに対する攻撃が失敗したことが確定した場合、ステップS346に処理を進める。一方、プロセッサ81は、プレイヤキャラクタPCによる標的オブジェクトTに対する攻撃が失敗したことが確定していない場合、ステップS348に処理を進める。
【0176】
ステップS346において、プロセッサ81は、攻撃に失敗した標的オブジェクトTの状態を設定し(ステップS346)、ステップS347に処理を進める。例えば、プロセッサ81は、攻撃に失敗した標的オブジェクトTがプレイヤキャラクタPCに勝利した演出を行った後に、仮想ゲーム空間から当該標的オブジェクトTを消滅させる演出を行い、当該演出に基づいて標的オブジェクト動作データD1rを更新する。
【0177】
ステップS347において、プロセッサ81は、スイング演出フラグをオフに設定して、ステップS348に処理を進める。例えば、プロセッサ81は、スイング演出フラグデータD1nが示すスイング演出フラグをオフに設定して、スイング演出フラグデータD1nを更新する。
【0178】
ステップS348において、プロセッサ81は、上記ステップS304において算出された変形量が第2閾値未満であるか否かを判定する。そして、プロセッサ81は、上記変形量が第2閾値未満である場合、上記ステップS349に処理を進める。一方、プロセッサ81は、上記変形量が第2閾値以上である場合、当該サブルーチンによる処理を終了する。
【0179】
ステップS349において、プロセッサ81は、変形フラグおよびスイング設定フラグをオフに設定して、当該サブルーチンによる処理を終了する。例えば、プロセッサ81は、変形フラグデータD1kが示す変形フラグおよびスイング設定フラグデータD1mが示すスイング設定フラグをそれぞれオフに設定して、変形フラグデータD1kおよびスイング設定フラグデータD1mをそれぞれ更新する。このようにスイング演出処理中、すなわちプレイヤキャラクタPCが左右のオブジェクトOBJLおよびOBJRをスイングする演出中であっても、リング型拡張装置5に対する押込操作が上記第2閾値未満の変形量まで緩んだ場合、当該押込操作が解除されたと判定されて変形フラグがオフに設定され、スイング設定フラグがオフに設定されることによって新たなスイング動作を設定することが可能となる。なお、スイング演出中に変形フラグおよびスイング設定フラグがオフに変更される処理は、制限が設けられてもよい。例えば、1回のスイング演出中に変形フラグおよびスイング設定フラグがオフに変更される処理は、1回以内に制限が設けられてもよい。なお、制限部は、入力装置が変形状態から定常状態に所定条件を満たすように緩むまでは、所定のゲーム処理の再実行を制限する処理を行うものであり、他の例として上記ステップS348および上記ステップS349における処理を行うプロセッサ81に相当する。
【0180】
図17に戻り、上記ステップS312において、プロセッサ81は、オブジェクト(プレイヤキャラクタPCや標的オブジェクトT等)の動作制御処理を行い、次のステップに処理を進める。例えば、プロセッサ81は、プレイヤキャラクタ動作データD1qが示すプレイヤキャラクタPCの位置、状態、姿勢、動作等に基づいて、仮想ゲーム空間においてプレイヤキャラクタPCを配置する。また、プロセッサ81は、所定のアルゴリズム(出現パターン)に基づいて、仮想ゲーム空間に標的オブジェクトTを出現させるとともに、プレイヤキャラクタPCに向かって移動させ、当該出現後および移動後の位置に基づいて標的オブジェクト動作データD1rを更新する。
【0181】
次に、プロセッサ81は、画像生成表示制御処理を行い(ステップS313)、次のステップに処理を進める。例えば、プロセッサ81は、上記ステップS311およびステップS312の処理による設定に基づいて、仮想ゲーム空間に複数のオブジェクト(オブジェクトOBJLおよびOBJRを備えるプレイヤキャラクタPC、標的オブジェクトT等)を配置して、仮想ゲーム空間を生成する。そして、プロセッサ81は、仮想ゲーム空間に仮想カメラを配置し、当該仮想カメラから見た仮想ゲーム空間画像を生成して、当該仮想ゲーム空間画像を据置型モニタ9に出力する。また、プロセッサ81は、スコアデータD1pが示すゲームスコアを示す画像を上記仮想ゲーム空間画像の適所に重畳して据置型モニタ9に出力する。
【0182】
次に、プロセッサ81は、ゲーム処理を終了するか否かを判定する(ステップS314)。上記ステップS314においてゲーム処理を終了する条件としては、例えば、ゲーム処理が終了される条件が満たされたことや、ユーザがゲーム処理を終了する操作を行ったこと等がある。プロセッサ81は、ゲーム処理を終了しない場合に上記ステップS302に戻って処理を繰り返し、ゲーム処理を終了する場合に当該フローチャートによる処理を終了する。以降、ステップS302~ステップS314の一連の処理は、ステップS314でゲーム処理を終了すると判定されるまで繰り返し実行される。
【0183】
このように、第1のゲーム例においては、リング型拡張装置5を変形させながら振り動かすことによって所定のゲーム処理が行われるため、リング型拡張装置5を用いた操作におけるユーザ体感を向上させることができる。また、第1のゲーム例においては、リング型拡張装置5が変形していない、またはリング型拡張装置5を変形させながら振り動かされていない場合に所定のゲーム処理の実行が制限されるため、当該所定のゲーム処理が特定のユーザ操作による限定的なものとなる。なお、プレイヤキャラクタPCによる標的オブジェクトTへの攻撃が成功したり、ゲームスコアがユーザに付与(加算)されたりする処理が、所定の達成目標が設定されるゲームの達成度合いを更新する更新処理の一例に相当する。
【0184】
(第2のゲーム例)
次に、本体装置2が行う第2のゲーム例における具体的な処理を説明する前に、
図20~
図23を用いて、本体装置2で行う第2のゲーム例の概要について説明する。なお、
図20は、第2のゲーム例において、ユーザがリング型拡張装置5を操作する様子の一例を示す図である。
図21は、ユーザ操作に応じて据置型モニタ9に表示される第2のゲーム例におけるゲーム画像の第1の例を示す図である。
図22は、ユーザ操作に応じて据置型モニタ9に表示される第2のゲーム例におけるゲーム画像の第2の例を示す図である。
図23は、ユーザ操作に応じて据置型モニタ9に表示される第2のゲーム例におけるゲーム画像の第3の例を示す図である。
【0185】
図20に示すように、第2のゲーム例では、ユーザがリング型拡張装置5における両方のグリップカバー203および204をそれぞれ両手で把持した状態で、リング型拡張装置5における2つのグリップカバー203および204が近づくようにリング型拡張装置5を両手で変形させながら、リング型拡張装置5を上からユーザの腹部付近まで振り下ろすように動かすユーザ操作が行われる。ここで、リング型拡張装置5における2つのグリップカバー203および204が近づくように変形させながらリング型拡張装置5を上から振り下ろすためには、ユーザは両手に力を加えながらジャンプするときの上半身の動きを模した動作を行うこととなり、あたかもジャンプするようなゲーム操作が必要となる。
【0186】
第2のゲーム例においても、左コントローラ3および右コントローラ4を本体装置2から取り外した状態で、クレードル8に本体装置2単体を装着して、クレードル8に接続された据置型モニタ9から画像(および音声)を出力する利用態様におけるゲームシステムを用いて説明する。そして、ユーザは、リング型拡張装置5に装着された右コントローラ4を用いて、ゲーム操作を行う例を用いる。また、第2のゲーム例におけるゲーム処理の一例として、据置型モニタ9に表示されるプレイヤキャラクタPCがユーザ操作に応じて、仮想ゲーム空間内を移動(ジャンプ)する処理を用いる。
【0187】
例えば、
図21においては、仮想ゲーム空間内にプレイヤキャラクタPCが配置されている。プレイヤキャラクタPCは、仮想ゲーム空間における上方へ延びる壁に沿って配置されており、
図21に示すようなリング型拡張装置5の環状部201が変形していない定常状態においては、当該壁に沿って静止した状態とされる。
【0188】
一方、
図22に示すように、グリップカバー203および204が互いに近づくように環状部201を定常状態から所定の状態以上までリング型拡張装置5を変形させる操作(図示B方向に変形させる押込操作)が行われた場合、プレイヤキャラクタPCがジャンプ移動した場合に到達可能な高さを示す標識Mが、上記壁に沿ったプレイヤキャラクタPCの上方に表示される。このような押込操作は、上記第1のゲーム例と同様に、リング型拡張装置5に設けられた歪みゲージが検出する歪みに基づいて検出される。また、リング型拡張装置5の環状部201が定常状態から変形した場合、上記歪みゲージによって台座部の歪みが検出され、検出された歪みに基づいて、環状部201が変形する向き(すなわち、2つのグリップカバー203および204が離れる向き、または、近づく向き)と変形量とを算出することができる。そして、環状部201が変形する向きが2つのグリップカバー203および204が近づく向きである場合、算出された変形量に応じた到達高さの標識Mが表示される。上記押込操作が解除された場合、標識Mが示す到達高さが漸減的に減少して表示され、最終的に標識Mが消滅する。なお、標識Mが入力装置の変形量を示す画像の一例に相当する。
【0189】
そして、
図23に示すように、上記押込操作された状態でリング型拡張装置5が実空間における下方向(図示D方向)に振られる操作が行われた場合、プレイヤキャラクタPCは、振られる操作が行われる直前に標識Mが示していた到達可能高さを目標として、壁に沿ってジャンプする動作を行う。ここで、リング型拡張装置5がした方向に振られる操作とは、実空間において、リング型拡張装置5が押込操作された状態で鉛直方向へ移動するピッチ操作である。そして、上記押込操作された状態でリング型拡張装置5が下方向に振られる操作が行われた場合、プレイヤキャラクタPCは、壁に沿ってジャンプするように仮想ゲーム空間を移動するような動作を行う。そして、プレイヤキャラクタPCが到達した位置にそれぞれ設定されているゲームポイントに基づいて、所定のゲームスコアを得ることができる。具体的には、高く飛び過ぎることによってゲームポイントが得られないこともあるため、ユーザは、適切なジャンプ力でプレイヤキャラクタPCをジャンプさせて移動させることが必要となる。なお、第2のゲーム例においては、リング型拡張装置5が押込操作された状態で下方向に振られる操作に応じて、プレイヤキャラクタPCがジャンプするゲーム処理が所定のゲーム処理の他の例に相当する。
【0190】
このように、リング型拡張装置5が下方向に振られるピッチ操作が行われた場合、リング型拡張装置5に装着されている右コントローラ4には、実空間の鉛直方向への加速度が生じるとともに、y軸方向周り(
図6参照)の角速度が生じることになる。したがって、右コントローラ4における加速度センサ114によって検出される加速度および/または角速度センサ115によって検出される角速度を用いることによって、リング型拡張装置5が下方向に振られるピッチ操作の操作方向、操作角度、および操作速度等を算出することができる。そして、第2のゲーム例では、上記押込操作された状態でリング型拡張装置5が下方向へのピッチ操作が行われた場合、上記押込操作が行われている変形量に応じた到達可能高さまでプレイヤキャラクタPCをジャンプさせて移動させる処理が行われる。なお、現実には、リング型拡張装置5が下方向に振られるピッチ操作は、リング型拡張装置5のロール操作やヨー操作が混ざった操作となることがあるため、ロール操作、ピッチ操作、およびヨー操作によってそれぞれ変化するリング型拡張装置5の方向を合成することによって、最終的に下方向に振られるピッチ操作の有無が判定されてもよい。
【0191】
なお、プレイヤキャラクタPCをジャンプ移動させる操作は、1回の押込操作に対して1回のみ可能としてもよい。一例として、プレイヤキャラクタPCをジャンプ移動した後は、上記押込操作が継続されている場合であっても、標識Mが表示されないようにしてもよい。この場合、ユーザは、再度標識Mを表示させてプレイヤキャラクタPCを再度ジャンプ移動させるためには、リング型拡張装置5の環状部201を定常状態に一旦戻した後に再度押込操作を行って、リング型拡張装置5を振り動かす操作が必要となる。
【0192】
また、上記押込操作を行った状態でリング型拡張装置5を下方向に振るピッチ操作を行う場合、当該ピッチ操作を行うことによって当該押込操作を行う力が緩んでしまうことが考えられる。この場合、上記ピッチ操作前に表示していた標識Mが示す到達可能高さまでプレイヤキャラクタPCがジャンプできない状態となるため、このような押込操作を行う力が緩むことによるジャンプ力の意図しない低下を防ぐために、上記ピッチ操作が行われた直前の所定時間前(例えば、5フレーム前)におけるリング型拡張装置5の変形量や現時点から所定時間前までの期間におけるリング型拡張装置5の変形量の最大値に基づいて、プレイヤキャラクタPCの到達高さを算出してもかまわない。
【0193】
また、上記押込操作を行っていない状態でリング型拡張装置5を下方向に振るピッチ操作が行われた場合、ジャンプ力が算出されないためにプレイヤキャラクタPCがジャンプしない演出が行われてもよい。この場合、プレイヤキャラクタPCがジャンプすることによって得られるゲームスコアを得ることができず、ゲーム達成度合いを更新することができなくなる。したがって、リング型拡張装置5の押込操作が行われずにリング型拡張装置5を下方向に振るピッチ操作が行われた場合、一例として、ユーザにリング型拡張装置5を変形させる操作を促すために、所定の画像や音声によってユーザに報知(例えば、文字画像「押し込んでください」を表示する、音声「押し込んでください」を生じさせる)してもかまわない。
【0194】
また、プレイヤキャラクタPCがジャンプするジャンプ力は、リング型拡張装置5の変形量だけでなく、他のパラメータが加えられてもかまわない。例えば、ジャンプを行う際にリング型拡張装置5が下方向に振られる速度パラメータ(速度、加速度、角速度等)と上記変形量との両方を用いて、上記ジャンプ力が算出されてもよい。
【0195】
また、ユーザがリング型拡張装置5を正規な姿勢で把持していない状態で操作していない場合、リング型拡張装置5を変形させて下方向に振る操作を行ったとしても、プレイヤキャラクタPCをジャンプする演出が行われないようにしてもよい。ここで、リング型拡張装置5を把持する正規な姿勢とは、
図20に示すように、右コントローラ4が装着されている位置が最上位置となって2つのグリップカバー203および204を結ぶ方向が略水平となるようにユーザが両手でグリップカバー203および204を把持して、環状部201の円環軸が略水平になった状態で、リング型拡張装置5を押込操作および下方向に振る操作を行うものである。このような正規な姿勢で操作が行われているか否かについては、リング型拡張装置5が下方向に振られたと判定された時点におけるリング型拡張装置5の姿勢を分析することによって可能となる。
【0196】
次に、
図24~
図26を参照して、第2のゲーム例においてゲームシステム1で実行される具体的な処理の一例について説明する。
図24は、第2のゲーム例において本体装置2のDRAM85に設定されるデータ領域の一例を示す図である。なお、DRAM85には、
図24に示すデータの他、他の処理で用いられるデータも記憶されるが、詳細な説明を省略する。
【0197】
第2のゲーム例において、DRAM85のプログラム記憶領域には、ゲームシステム1で実行される各種プログラムP2が記憶される。本実施形態においては、各種プログラムP2は、上述した右コントローラ4との間で無線通信するための通信プログラムや、右コントローラ4から取得したデータに基づいた情報処理を行うためのアプリケーションプログラム(例えば、ゲームプログラム)等が記憶される。なお、各種プログラムP2は、フラッシュメモリ84に予め記憶されていてもよいし、ゲームシステム1に着脱可能な記憶媒体(例えば、スロット23に装着された所定の種類の記憶媒体)から取得されてDRAM85に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されてDRAM85に記憶されてもよい。プロセッサ81は、DRAM85に記憶された各種プログラムP2を実行する。
【0198】
また、第2のゲーム例において、DRAM85のデータ記憶領域には、ゲームシステム1において実行される通信処理や情報処理等の処理において用いられる各種のデータが記憶される。本実施形態においては、DRAM85には、操作データD2a、角速度データD2b、加速度データD2c、姿勢データD2d、重力方向データD2e、リング変形量データD2g、ジャンプ力データD2h、ジャンプフラグデータD2i、スコアデータD2j、プレイヤキャラクタ動作データD2k、および画像データD2m等が記憶される。
【0199】
操作データD2aは、右コントローラ4から適宜取得した操作データである。上述したように、右コントローラ4から送信される操作データには、各入力部(具体的には、各ボタン、アナログスティック、各センサ)からの入力に関する情報(具体的には、操作に関する情報や各センサによる検出結果)やリング型拡張装置5における環状部201の変形状態を示す歪み値が含まれている。本実施形態では、無線通信によって右コントローラ4から所定周期で操作データが送信されており、当該受信した操作データを用いて操作データD2aが適宜更新される。なお、操作データD2aの更新周期は、ゲームシステム1で実行される処理の周期である1フレーム毎に更新されてもよいし、上記無線通信によって操作データが送信される周期毎に更新されてもよい。
【0200】
角速度データD2bは、右コントローラ4から取得した操作データのうち、現時点から所定時間前までに取得された右コントローラ4に生じている角速度の履歴を示すデータである。例えば、角速度データD2bは、右コントローラ4に生じているxyz軸周りの角速度を示すデータの履歴等を含んでいる。
【0201】
加速度データD2cは、右コントローラ4から取得した操作データのうち、現時点から所定時間前までに取得された右コントローラ4に生じている加速度の履歴を示すデータである。例えば、加速度データD2cは、右コントローラ4に生じているxyz軸方向の加速度を示すデータの履歴等を含んでいる。
【0202】
姿勢データD2dは、実空間における右コントローラ4の姿勢を示すデータであり、現時点から所定時間前までにおける姿勢の履歴を示すデータである。一例として、姿勢データD2dは、実空間における右コントローラ4のxyz軸方向(例えば、実空間におけるXYZ軸に対する角度)の履歴を示すデータである。
【0203】
重力方向データD2eは、右コントローラ4に作用している重力加速度の方向を示すデータである。
【0204】
リング変形量データD2gは、現時点から所定時間前までに算出されたリング型拡張装置5の変形方向および変形量の履歴を示すデータである。
【0205】
ジャンプ力データD2hは、リング型拡張装置5を用いた操作に応じて設定された、プレイヤキャラクタPCを動作させるジャンプ力を示すデータである。
【0206】
ジャンプフラグデータD2iは、プレイヤキャラクタPCがジャンプする演出を行う場合にオンに設定されるジャンプフラグを示すデータである。
【0207】
スコアデータD2jは、現時点のゲームスコアを示すデータである。
【0208】
プレイヤキャラクタ動作データD2kは、仮想ゲーム空間に配置されているプレイヤキャラクタPCの位置、状態、姿勢、動作等を示すデータである。
【0209】
画像データD2mは、表示画面に画像(例えば、プレイヤキャラクタPCの画像、フィールド画像、背景画像等)を表示するためのデータである。
【0210】
次に、
図25および
図26を参照して、第2のゲーム例における情報処理の詳細な一例を説明する。
図25は、第2のゲーム例においてゲームシステム1で実行される情報処理の一例を示すフローチャートである。
図26は、
図25におけるステップS410において行われるジャンプ演出処理の詳細な一例を示すサブルーチンである。第2のゲーム例においては、
図25および
図26に示す一連の処理は、プロセッサ81が各種プログラムP2に含まれる通信プログラムや所定のアプリケーションプログラム(ゲームプログラム)を実行することによって行われる。また、
図25および
図26に示す情報処理が開始されるタイミングは任意である。
【0211】
なお、
図25および
図26に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて(または代えて)別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理をプロセッサ81が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、プロセッサ81以外のプロセッサや専用回路が実行するようにしてもよい。また、本体装置2において実行される処理の一部は、本体装置2と通信可能な他の情報処理装置(例えば、本体装置2とネットワークを介して通信可能なサーバ)によって実行されてもよい。すなわち
図25および
図26に示す各処理は、本体装置2を含む複数の情報処理装置が協働することによって実行されてもよい。
【0212】
図25において、プロセッサ81は、情報処理における初期設定を行い(ステップS401)、次のステップに処理を進める。例えば、上記初期設定では、プロセッサ81は、以下に説明する処理を行うためのパラメータを初期化する。例えば、プロセッサ81は、仮想ゲーム空間においてプレイヤキャラクタPCを初期配置して仮想ゲーム空間の初期状態を生成し、プレイヤキャラクタPCの位置、方向、状態、および姿勢等を用いてプレイヤキャラクタ動作データD2kを更新する。
【0213】
次に、プロセッサ81は、右コントローラ4から操作データを取得して操作データD2aを更新し(ステップS402)、次のステップに処理を進める。なお、プロセッサ81は、上記ステップS402において右コントローラ4から取得した操作データのうち、右コントローラ4に生じている角速度を示すデータを、角速度データD2bに格納する。また、プロセッサ81は、上記ステップS402において右コントローラ4から取得した操作データのうち、右コントローラ4に生じている加速度を示すデータを、加速度データD2cに格納する。なお、データ取得部は、歪データと動きデータとを取得する処理を行うものであり、一例として右コントローラ4から操作データを取得して操作データD2aを更新する処理を行うプロセッサ81に相当する。
【0214】
次に、プロセッサ81は、右コントローラ4の姿勢を算出し(ステップS403)、次のステップに処理を進める。例えば、プロセッサ81は、角速度データD2bに格納されている角速度データを用いて、右コントローラ4のxyz軸周りの角速度を取得する。そして、プロセッサ81は、姿勢データD2dが示す右コントローラ4の姿勢における重力加速度方向を基準としたxyz軸を、取得された角速度に応じてそれぞれ回転させて、当該回転後の重力加速度方向を基準としたxyz軸の方向を右コントローラ4の姿勢を示す最新のデータとして、姿勢データD2dに格納する。また、プロセッサ81は、加速度データD2cに格納されている加速度データを用いて、右コントローラ4に作用している重力加速度の方向を算出して、重力方向データD2eに格納する。なお、重力加速度を抽出する方法については任意の方法を用いればよく、例えば右コントローラ4に平均的に生じている加速度成分を算出して当該加速度成分を重力加速度として抽出してもよい。また、プロセッサ81は、重力方向データD2eが示す右コントローラ4に生じている重力加速度の方向を用いて、姿勢データD2dが示す右コントローラ4の最新の姿勢を適時補正してもかまわない。
【0215】
次に、プロセッサ81は、リング型拡張装置5の変形量を算出し(ステップS404)、次のステップに処理を進める。例えば、プロセッサ81は、操作データD2aが示す歪み値を用いて、リング型拡張装置5における環状部201の変形量および変形方向を算出し、当該算出結果を用いてリング変形量データD2gが示す変形量の履歴に追加する。
【0216】
次に、プロセッサ81は、ジャンプフラグがオフであるか否かを判定する(ステップS405)。例えば、プロセッサ81は、ジャンプフラグデータD2iが示すジャンプフラグがオフに設定されている場合、上記ステップS405において肯定判定する。そして、プロセッサ81は、ジャンプフラグがオフである場合、ステップS406に処理を進める。一方、プロセッサ81は、ジャンプフラグがオンである場合、ステップS408に処理を進める。
【0217】
ステップS406において、プロセッサ81は、上記ステップS404において算出された変形量に基づいて、ジャンプ力を算出し、次のステップに処理を進める。例えば、プロセッサ81は、リング変形量データD2gが示す変形量の履歴における最新の変形量に基づいてジャンプ力を算出し、当該ジャンプ力を用いてジャンプ力データD2hを更新する。
【0218】
次に、プロセッサ81は、上記ステップS406において算出されたジャンプ力に応じた到達予測高さに応じた標識Mを設定し(ステップS407)、ステップS408に処理を進める。例えば、プロセッサ81は、ジャンプ力データD2hが示すジャンプ力によってプレイヤキャラクタPCがジャンプした場合に到達可能な高さを算出し、当該到達可能な高さに応じた標識Mを設定する。
【0219】
ステップS408において、プロセッサ81は、実空間においてリング型拡張装置5が下方向に移動する速度パラメータ(例えば、加速度、速度、角速度)を算出し、次のステップに処理を進める。例えば、プロセッサ81は、加速度データD2cを参照して、実空間における下方向に移動するリング型拡張装置5の加速度、速度、または角速度を速度パラメータとして算出する。第1の例として、速度パラメータは、姿勢データD2dが示す最新の姿勢に基づいて算出される実空間における下方向へリング型拡張装置5(右コントローラ4)が移動する加速度または速度やリング型拡張装置5が水平方向周りにピッチ操作される角速度としてもよい。第2の例として、速度パラメータは、リング型拡張装置5において右コントローラ4から環状部201の円環軸に向かう方向(すなわち、右コントローラ4のz軸方向に垂直な方向)x軸負方向)へ移動する加速度または速度やピッチ操作(すなわち、右コントローラ4のy軸方向周りに回転する方向への操作)される角速度としてもよい。
【0220】
次に、プロセッサ81は、プレイヤキャラクタPCがジャンプする演出を行うか否かについて判定する(ステップS409)。例えば、プロセッサ81は、上記ステップS408において算出された速度パラメータが、リング型拡張装置5が下方向に振り動かされる操作が開始されたと判定するための所定の閾値以上であることを示す場合、上記ステップS409において肯定判定する。また、プロセッサ81は、ジャンプフラグデータD2iが示すジャンプフラグがオンに設定されている場合、上記ステップS409において肯定判定する。そして、プロセッサ81は、上記ステップS409において肯定判定された場合、ステップS410に処理を進める。一方、プロセッサ81は、上記ステップS409において否定判定された場合、ステップS411に処理を進める。
【0221】
なお、ユーザがリング型拡張装置5を正規な姿勢で把持していない状態で操作していないと判定される場合、上記ステップS409においては否定判定されてもかまわない。ここで、リング型拡張装置5を把持する正規な姿勢とは、
図20に例示したように、右コントローラ4が装着されている位置が最上位置となって2つのグリップカバー203および204を結ぶ方向が略水平となるようにユーザが両手でグリップカバー203および204を把持して、環状部201の円環軸が略水平になった状態で、リング型拡張装置5を押込操作および下方向に振る操作が行われるものである。このような正規な姿勢で操作が行われているか否かについては、姿勢データD2dが示すリング型拡張装置5の姿勢を分析することによって可能となる。
【0222】
ステップS410において、プロセッサ81は、ジャンプ演出処理を行い、ステップS411に処理を進める。以下、
図26を参照して、上記ステップS410において行われるジャンプ演出処理について説明する。なお、ゲーム処理部は、歪データに基づいて、入力装置が変形していることを検知している間、動きデータに基づいて所定のゲーム処理を実行する処理を行うものであり、一例としてジャンプ演出処理を行うプロセッサ81に相当する。
【0223】
図26において、プロセッサ81は、ジャンプフラグデータD2iが示すジャンプフラグがオフであるか否かを判定する(ステップS420)。そして、プロセッサ81は、ジャンプフラグがオフである場合、ステップS421に処理を進める。一方、プロセッサ81は、ジャンプフラグがオンである場合、ステップS424に処理を進める。
【0224】
ステップS421において、プロセッサ81は、ジャンプフラグをオンに設定して、次のステップに処理を進める。例えば、プロセッサ81は、ジャンプフラグデータD2iが示すジャンプフラグをオンに設定して、ジャンプフラグデータD2iを更新する。また、プロセッサ81は、上記ステップS407において設定されている標識Mの設定を解除する。
【0225】
次に、プロセッサ81は、リング型拡張装置5の変形量が漸減的に減少している状態にあるか否かを判定する(ステップS422)。例えば、プロセッサ81は、リング変形量データD2gが示す変形量の履歴を参照して、当該変形量が漸減的に減少している状態にあるか否かを判定する。そして、プロセッサ81は、リング型拡張装置5の変形量が漸減的に減少している状態にある場合、ステップS423に処理を進める。一方、プロセッサ81は、リング型拡張装置5の変形量が漸減的に減少している状態にない場合、ステップS424に処理を進める。
【0226】
ステップS423において、プロセッサ81は、所定時間前のリング型拡張装置5の変形量を用いて、新たにジャンプ力を算出し、ステップS424に処理を進める。一例として、プロセッサ81は、リング変形量データD2gが示す変形量の履歴における所定時間前(例えば、5フレーム前)の変形量に基づいて新たなジャンプ力を算出し、当該新たなジャンプ力を用いてジャンプ力データD2hを更新する。他の例として、プロセッサ81は、リング変形量データD2gが示す変形量の履歴における所定時間前までの変形量の最大値に基づいて新たなジャンプ力を算出し、当該新たなジャンプ力を用いてジャンプ力データD2hを更新する。
【0227】
ステップS424において、プロセッサ81は、設定されているジャンプ力に応じて、プレイヤキャラクタPCを移動させる処理を行い、次のステップに処理を進める。例えば、プロセッサ81は、ジャンプ力データD2hが示すジャンプ力に基づいて、プレイヤキャラクタPCを仮想ゲーム空間において上昇するように移動させ、移動後のプレイヤキャラクタPCの位置および状態に基づいて、プレイヤキャラクタ動作データD2kを更新する。
【0228】
次に、プロセッサ81は、プレイヤキャラクタPCをジャンプさせる演出を終了するか否かを判定する(ステップS425)。例えば、プロセッサ81は、プレイヤキャラクタPCがジャンプを終了する位置まで到達した場合(ジャンプの到達目標高さまで到達した場合、他のオブジェクト等と衝突することによってジャンプが終了する場合等)、上記ステップS425において肯定判定する。そして、プロセッサ81は、ジャンプさせる演出を終了する場合、ステップS426に処理を進める。一方、プロセッサ81は、ジャンプさせる演出を終了しない場合、当該サブルーチンによる処理を終了する。
【0229】
ステップS426において、プロセッサ81は、ジャンプによってプレイヤキャラクタPCを移動させる処理を停止する処理を行って、次のステップに処理を進める。例えば、プロセッサ81は、ジャンプを停止して現時点の位置に止まる状態にプレイヤキャラクタPCの状態を設定して、プレイヤキャラクタ動作データD2kを更新する。また、プロセッサ81は、ジャンプフラグデータD2iが示すジャンプフラグをオフに設定して、ジャンプフラグデータD2iを更新する。
【0230】
次に、プロセッサ81は、ゲームスコアを算出し、当該サブルーチンによる処理を終了する。例えば、プロセッサ81は、ジャンプによってプレイヤキャラクタPCが到達した位置に基づいてゲームスコアを算出し、当該ゲームスコアを加算してスコアデータD2jを更新する。
【0231】
図25に戻り、ステップS411において、プロセッサ81は、プレイヤキャラクタPCの動作制御処理を行い、次のステップに処理を進める。例えば、プロセッサ81は、プレイヤキャラクタ動作データD2kが示すプレイヤキャラクタPCの位置、状態、姿勢、動作等に基づいて、仮想ゲーム空間においてプレイヤキャラクタPCを配置する。
【0232】
次に、プロセッサ81は、画像生成表示制御処理を行い(ステップS412)、次のステップに処理を進める。例えば、プロセッサ81は、上記ステップS411の処理による設定に基づいて、仮想ゲーム空間にプレイヤキャラクタPCを配置する。また、プロセッサ81は、上記ステップS407において標識Mが設定されている場合、当該標識Mを示す画像を仮想ゲーム空間に配置する。そして、プロセッサ81は、仮想ゲーム空間に仮想カメラを配置し、当該仮想カメラから見た仮想ゲーム空間画像を生成して、当該仮想ゲーム空間画像を据置型モニタ9に出力する。また、プロセッサ81は、スコアデータD2jが示すゲームスコアを示す画像を上記仮想ゲーム空間画像の適所に重畳して据置型モニタ9に出力する。なお、変形量画像生成部は、入力装置が変形している間、当該入力装置の変形量を示す画像を生成する処理を行うものであり、一例として標識Mを設定する上記ステップS407および/または標識Mを表示する上記ステップS412の処理を行うプロセッサ81に相当する。
【0233】
次に、プロセッサ81は、ゲーム処理を終了するか否かを判定する(ステップS413)。上記ステップS413においてゲーム処理を終了する条件としては、例えば、ゲーム処理が終了される条件が満たされたことや、ユーザがゲーム処理を終了する操作を行ったこと等がある。プロセッサ81は、ゲーム処理を終了しない場合に上記ステップS402に戻って処理を繰り返し、ゲーム処理を終了する場合に当該フローチャートによる処理を終了する。以降、ステップS402~ステップS413の一連の処理は、ステップS413でゲーム処理を終了すると判定されるまで繰り返し実行される。
【0234】
このように、第2のゲーム例においては、リング型拡張装置5を変形させながら振り動かすことによって所定のゲーム処理が行われるため、リング型拡張装置5を用いた操作におけるユーザ体感を向上させることができる。また、第2のゲーム例においては、リング型拡張装置5が変形していない、またはリング型拡張装置5を変形させながら振り動かされていない場合に所定のゲーム処理の実行が制限されるため、当該所定のゲーム処理が特定のユーザ操作による限定的なものとなる。なお、プレイヤキャラクタPCがジャンプして移動する処理が、所定の達成目標が設定されるゲームの達成度合いを更新する更新処理の一例に相当する。
【0235】
なお、上述した実施例では、弾性変形可能な材質で構成された環状部201をリング型拡張装置5が備えており、環状部201を弾性変形させることによる操作に応じた処理が行われている。このように入力装置の主部を弾性変形させる操作が可能であることによって、連続でユーザが押込操作を行うことが容易となる、押込操作に弾性変形が伴うことによってユーザの操作感覚が向上する、押込操作に弾性変形が伴うことによってプレイヤオブジェクトOBJが動く感覚をユーザが体感しやすくなる、押込操作を必要とすることによってユーザの身体を動かす運動(例えば、腕を動かす運動)を促すことができる等、様々な効果を期待することができる。
【0236】
また、上記実施例では、リング型拡張装置5を変形させながら振り動かすことによって所定のゲーム処理が行われる操作例として、グリップカバー203および204が互いに近づくように環状部201を定常状態から所定の状態以上までリング型拡張装置5を変形させる押込操作を用いたが、他の態様によってリング型拡張装置5を変形させる操作が行われてもよい。例えば、リング型拡張装置5のグリップカバー203および204が互いに離れるように環状部201を定常状態から所定の状態以上までリング型拡張装置5を変形させる引張操作を行いながら振り動かすことによって、所定のゲーム処理が行われてもよい。
【0237】
また、上述した実施例におけるリング型拡張装置5を変形させる操作は、様々な態様を含んでいる。例えば、リング型拡張装置5の環状部201の形状に定常状態から微少な変化が生じた場合に、リング型拡張装置5を変形させる操作が行われていると定義してもよい。他の例として、リング型拡張装置5の環状部201の形状に定常状態から各ゲームにおいて設定される閾値以上の変形量の変形が生じた場合に、リング型拡張装置5を変形させる操作が行われていると定義してもよい。
【0238】
また、上述した実施例では、本体装置2と右コントローラ4とが無線通信を行うことによって、右コントローラ4の操作データが本体装置2へ送信される例を用いたが、他の態様によって上記操作データが本体装置2へ送信されてもよい。例えば、右コントローラ4のコントローラの操作データが左コントローラ3へ送信された後、左コントローラ3から両方の操作データ(または加工された操作データ)が本体装置2へ合わせて送信されてもかまわない。
【0239】
また、上述した実施例において、右コントローラ4の姿勢や動き(リング型拡張装置5の姿勢や動き)を検出する方法については、単なる一例であって、他の方法や他のデータを用いて当該姿勢や当該動きを検出してもよい。上述した加速度センサおよび/または角速度センサは、右コントローラ4の姿勢や動きを算出するためのデータを出力するセンサの一例である。例えば、他の実施例においては、右コントローラ4は、加速度センサおよび/または角速度センサに代えてまたは加えて磁気センサを備えていてもよく、当該磁気センサによって検出された磁気を用いて右コントローラ4の姿勢や動きが算出されてもよい。また、右コントローラ4の姿勢や動きを算出する方法は任意であり、例えば他の実施例においては、本体装置2は、右コントローラ4(リング型拡張装置5)を撮像装置によって撮像し、撮影された画像を用いて右コントローラ4(リング型拡張装置5)の姿勢を算出してもよい。また、右コントローラ4に備えられた加速度センサおよび/または角速度センサにおいて検出されたデータを用いて、右コントローラ4内部において右コントローラ4の姿勢や動きを算出してもよい。この場合、右コントローラ4内部で算出された右コントローラ4の姿勢や動きを示すデータが加えられた操作データが、右コントローラ4から本体装置2へ送信されることになる。
【0240】
また、上述した実施例では、リング型拡張装置5を変形させながら振り動かすことによって所定のゲーム処理が行われる例を用いたが、リング型拡張装置5を変形させながら他の入力装置を動かすことによって当該所定のゲーム処理が行われてもよい。一例として、リング型拡張装置5を変形させながら左コントローラ3本体を動かすことによって所定のゲーム処理が行われてもよい。例えば、ユーザが左コントローラ3を身体(例えば、足)に取り付けてゲーム操作している場合、リング型拡張装置5を変形させながら左コントローラ3が取り付けられた足を動かすことによって所定のゲーム処理をおこなうことが可能となる。
【0241】
また、ゲームシステム1は、どのような装置であってもよく、携帯型のゲーム装置、任意の携帯型電子機器(PDA(Personal Digital Assistant)、携帯電話、パーソナルコンピュータ、カメラ、タブレット等)等であってもよい。この場合、オブジェクトを移動する操作を行うための入力装置は、左コントローラ3や右コントローラ4でなくてもよく、別のコントローラ、マウス、タッチパッド、タッチパネル、トラックボール、キーボード、十字キー、スライドパッド等であってもよい。
【0242】
また、上述した例では、リング型拡張装置5は、右コントローラ4が装着されることによって慣性センサ(例えば、加速度センサや角速度センサ)が搭載された入力装置として機能する例を用いたが、他の態様によって当該機能が搭載されてもよい。例えば、リング型拡張装置5自体に慣性センサの機能が搭載されていてもよい。一例として、リング型拡張装置5に生じる1軸以上の方向に沿った加速度を検出する加速度センサおよび/またはリング型拡張装置5に生じる1軸以上の軸方向周りの角速度を検出する角速度センサが、本体部202内部に設けられていてもよい。
【0243】
また、上述した説明では情報処理をゲームシステム1でそれぞれ行う例を用いたが、上記処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、ゲームシステム1がさらに他の装置(例えば、別のサーバ、他の画像表示装置、他のゲーム装置、他の携帯端末)と通信可能に構成されている場合、上記処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記処理ステップの少なくとも一部を他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した情報処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施例においては、ゲームシステム1のプロセッサ81が所定のプログラムを実行することによって情報処理を行うことが可能であるが、ゲームシステム1が備える専用回路によって上記処理の一部または全部が行われてもよい。
【0244】
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置(据置型のゲーム装置)と携帯型の情報処理装置(携帯型のゲーム装置)との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
【0245】
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
【0246】
また、上記プログラムは、外部メモリ等の外部記憶媒体を通じてゲームシステム1に供給されるだけでなく、有線または無線の通信回線を通じて当該装置に供給されてもよい。また、上記プログラムは、当該装置内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD-ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
【0247】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。また、当業者は、本発明の具体的な実施例の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
【産業上の利用可能性】
【0248】
以上のように、本発明は、ユーザ体感を向上させることを可能とする情報処理システム、情報処理プログラム、情報処理装置、および情報処理方法等として利用することができる。
【符号の説明】
【0249】
1…情報処理システム
2…本体装置
3…左コントローラ
4…右コントローラ
5…リング型拡張装置
11…ハウジング
12…ディスプレイ
17…左側端子
21…右側端子
27…下側端子
29…照度センサ
32、52…アナログスティック
42、64…端子
81…プロセッサ
82…ネットワーク通信部
83…コントローラ通信部
85…DRAM
101、111…通信制御部
89、104、114…加速度センサ
90、105、115…角速度センサ
201…環状部
202…本体部
203、204…グリップカバー