(57)【要約】  【課題】  複数の操作装置の振り入力のタイミングにずれが生じた場合にも、ユーザに遅延を感じさせることなく、同時振りゲーム処理を行うことができるゲーム装置等を提供する。  【解決手段】  ゲームシステム１の本体装置２は、加速度センサ１０４、１１４を備えた複数のコントローラ３、４の各々から、加速度データを少なくとも含む操作データを取得するコントローラ通信部８３と、各コントローラ３、４について、加速度データに基づいて振り入力が行われたことを判定し、振り入力判定に基づいてゲーム処理を行うＣＰＵ８１とを備える。ＣＰＵ８１は、コントローラ３、４のいずれか一方のコントローラについて、振り入力が行われたと判定した場合において、他方のコントローラが振り状態になっているときは、当該他方のコントローラについても、一方のコントローラと同時に振り入力が行われたと判定し、同時振りゲーム処理を行う。【選択図】  図１７
2017217139.tif 000002
【特許請求の範囲】
【請求項１】
慣性センサを少なくとも備える複数の操作装置から、当該慣性センサのデータを少なくとも含む操作データを取得する操作データ取得部と、
それぞれの前記操作装置について、前記操作データに基づいて、当該操作装置が振られている状態を示す振り状態になったこと、および当該操作装置に対する振り入力動作が行われたことを判定する振り入力判定部と、
前記振り入力判定部における判定に基づいてゲーム処理を行うゲーム処理部と、
を備え、
前記振り入力判定部は、前記複数の操作装置のうちの１つの操作装置について、前記振り入力動作が行われたと判定したときに、前記複数の操作装置のうちの他の操作装置が前記振り状態にある場合に、当該他の操作装置についても振り入力動作が行われたと判定する、ゲーム装置。
【請求項２】
前記振り入力判定部は、前記１つの操作装置について、前記振り入力動作が行われたと判定したときに、前記他の操作装置が前記振り状態にない場合は、前記１つの操作装置のみについて振り入力動作が行われたと判定する、請求項１に記載のゲーム装置。
【請求項３】
前記慣性センサには加速度センサが少なくとも含まれ、操作データは加速度データを含む、請求項１または２に記載のゲーム装置。
【請求項４】
前記振り入力判定部は、それぞれの前記操作装置について、少なくとも前記加速度データが示す加速度の変化が第１の閾値以上になったときに、前記振り状態になったと判定する、請求項３に記載のゲーム装置。
【請求項５】
前記振り入力判定部は、それぞれの前記操作装置について、少なくとも前記加速度データが示す加速度の大きさが第２の閾値以上になったときに、前記振り状態になったと判定する、請求項３に記載のゲーム装置。
【請求項６】
前記振り入力判定部は、それぞれの前記操作装置について、前記加速度データが示す加速度の変化が第１の閾値以上になった後に、前記加速度の大きさが第２の閾値以上になったときに、前記振り状態になったと判定する、請求項３に記載のゲーム装置。
【請求項７】
前記振り入力判定部は、それぞれの前記操作装置について、前記加速度データが示す加速度の変化が０または第３の閾値以下になったときに、前記振り入力動作があったと判定する、請求項３に記載のゲーム装置。
【請求項８】
前記慣性センサには角速度センサが少なくとも含まれ、前記操作データは、角速度データを含む、請求項１または２に記載のゲーム装置。
【請求項９】
それぞれの前記操作装置について、前記操作データに基づいて、振り方向を判定する振り方向判定部をさらに備え、
前記ゲーム処理部は、前記振り方向に基づいてゲーム処理を行う、請求項１または２に記載のゲーム装置。
【請求項１０】
前記慣性センサには、加速度センサおよび角速度センサが含まれ、前記操作データは、加速度データおよび角速度データを含み、
前記振り入力判定部は、前記加速度データに基づいて、前記振り状態になったことおよび前記振り入力動作が行われたことを判定し、
前記振り方向判定部は、前記角速度データに基づいて、振り方向を判定する、請求項９に記載のゲーム装置。
【請求項１１】
少なくとも前記角速度データに基づいて、前記操作装置の姿勢を算出する姿勢算出部をさらに備え、
前記振り方向判定部は、前記姿勢に基づいて前記振り方向を判定する、請求項１０に記載のゲーム装置。
【請求項１２】
前記加速度データの移動平均を算出する平滑化処理部をさらに備え、
前記振り入力判定部は、前記移動平均に基づいて、前記振り状態および振り入力動作が行われたことを判定する、請求項４ないし７および１０ないし１２のいずれかに記載のゲーム装置。
【請求項１３】
加速度センサを備えた複数の操作装置の各々から、加速度データを少なくとも含む操作データを取得する操作データ取得部と、
それぞれの前記操作装置について、前記加速度データに基づいて振り入力が行われたことを判定する振り入力判定部と、
前記振り入力判定部における判定に基づいてゲーム処理を行うゲーム処理部と、
を備え、
前記振り入力判定部は、前記複数の操作装置のうちの１つの操作装置について、前記振り入力が行われたと判定した場合において、前記複数の操作装置のうちの他の操作装置の前記加速度の変化が第４の閾値以上となった後に、当該他の操作装置の加速度の大きさが第５の閾値以上となっているときは、当該他の操作装置についても、前記１つの操作装置と同時に振り入力が行われたと判定するゲーム装置。
【請求項１４】
前記振り入力判定部は、前記加速度データが示す加速度の変化が第１の閾値以上となった後に、前記加速度の大きさが第２の閾値以上、かつ、前記加速度の変化が０または第３の閾値以下になったときに、前記振り入力動作が行われたと判定する、請求項１３に記載のゲーム装置。
【請求項１５】
前記複数の操作装置は角速度センサをさらに備え、
前記操作データには角速度データがさらに含まれ、
前記角速度データに基づいて前記操作装置の振り方向を判定する振り方向判定部をさらに備え、
前記ゲーム処理部は、さらに前記振り方向に基づいてゲーム処理を行う、請求項１３または１４に記載のゲーム装置。
【請求項１６】
複数の操作装置を少なくとも備えたゲームシステムであって、
前記複数の操作装置の各々は、
少なくとも慣性センサを備え、当該慣性センサから得られるデータを少なくとも含む操作データを出力し、
前記ゲームシステムは、
それぞれの前記操作装置について、前記操作データに基づいて、当該操作装置が振られている状態を示す振り状態になったこと、および当該操作装置に対する振り入力動作が行われたことを判定する振り入力判定部と、
前記振り入力判定部における判定に基づいてゲーム処理を行うゲーム処理部と、
を備え、
前記振り入力判定部は、前記複数の操作装置のうちの１つの操作装置について、前記振り入力動作が行われたと判定したときに、前記複数の操作装置のうちの他の操作装置が前記振り状態に場合に、当該他の操作装置についても振り入力動作が行われたと判定する、ゲームシステム。
【請求項１７】
ゲーム装置にて実行されることで、前記ゲーム装置を、
慣性センサを少なくとも備える複数の操作装置から、当該慣性センサのデータを少なくとも含む操作データを取得する操作データ取得部、
それぞれの前記操作装置について、前記操作データに基づいて、当該操作装置が振られている状態を示す振り状態になったこと、および当該操作装置に対する振り入力動作が行われたことを判定する振り入力判定部、および
前記振り入力判定部における判定に基づいてゲーム処理を行うゲーム処理部、
として機能させ、
前記振り入力判定部は、前記複数の操作装置のうちの１つの操作装置について、前記振り入力動作が行われたと判定したときに、前記複数の操作装置のうちの他の操作装置が前記振り状態にある場合に、当該他の操作装置についても振り入力動作が行われたと判定する、ゲームプログラム。
【請求項１８】
ゲーム装置にて実行されることで、前記ゲーム装置を、
加速度センサを備えた複数の操作装置の各々から、加速度データを少なくとも含む操作データを取得する操作データ取得部、
それぞれの前記操作装置について、前記加速度データに基づいて振り入力動作が行われたことを判定する振り入力判定部、
前記振り入力判定部における判定に基づいてゲーム処理を行うゲーム処理部、
として機能させ、
前記振り入力判定部は、前記複数の操作装置のうちの１つの操作装置について、前記振り入力動作が行われたと判定した場合において、前記複数の操作装置のうちの他の操作装置の前記加速度の変化が第４の閾値以上となった後に、当該他の操作装置の加速度の大きさが第５の閾値以上となっているときは、当該他の操作装置についても、前記１つの操作装置と同時に振り入力動作が行われたと判定する、ゲームプログラム。
【請求項１９】
前記振り入力判定部は、前記加速度データが示す加速度の変化が第１の閾値以上となった後に、前記加速度の大きさが第２の閾値以上、かつ、前記加速度の変化が０または第３の閾値以下になったときに、前記振り入力動作が行われたと判定する、請求項１８に記載のゲームプログラム。
【請求項２０】
前記複数の操作装置は角速度センサをさらに備え、
前記操作データには角速度データがさらに含まれ、
前記角速度データに基づいて前記操作装置の振り方向を判定する振り方向判定部をさらに備え、
前記ゲーム処理部は、さらに前記振り方向に基づいてゲーム処理を行う、請求項１８または１９に記載のゲームプログラム。
【請求項２１】
慣性センサを少なくとも備える複数の操作装置から、当該慣性センサのデータを少なくとも含む操作データを取得する操作データ取得ステップと、
それぞれの前記操作装置について、前記操作データに基づいて、当該操作装置が振られている状態を示す振り状態になったこと、および当該操作装置に対する振り入力動作が行われたことを判定する振り入力判定ステップと、
を含み、
前記振り入力判定ステップは、前記複数の操作装置のうちの１つの操作装置について、前記振り入力動作が行われたと判定したときに、前記複数の操作装置のうちの他の操作装置が前記振り状態にある場合に、当該他の操作装置についても振り入力動作が行われたと判定する、振り入力判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作装置に対して振り入力が行われたことを判定するゲーム装置、ゲームシステム、ゲームプログラム、および振り入力判定方法に関するものである。
【背景技術】
【０００２】
従来、ゲーム装置と、ユーザの操作を操作データとしてゲーム装置に入力するための、ゲーム装置とは別体の操作装置を含むゲームシステムが知られている。また、操作装置として、例えば加速度センサや角速度センサ等の動きを検出するセンサを備え、ユーザが操作装置自体を動かす操作を操作データとしてゲーム装置に入力する操作装置が知られている。
【０００３】
このようなゲームシステムにおいて、ゲーム装置は、操作データに基づいて、操作装置に対して振り入力動作が行われて、当該操作装置に振り入力が行われたことを判定（以下、「振り入力判定」ともいう。）して、振り入力判定に応じたゲーム処理を行うことができる。また、このような操作装置を複数利用して、それらの複数の操作装置の振り入力の組み合わせに応じてゲーム処理を行うゲームシステムも知られている（例えば、特許文献１参照）。
【０００４】
この特許文献１のゲームシステムでは、左右の手にそれぞれ持って使う２つの操作装置が用意され、両方を同時に振った場合（同時振り）に、その同時振りに対応したゲーム処理（同時振りゲーム処理）を行う。このゲームシステムでは、同時振りの判定において、左右の振りのタイミングが多少ずれていても同時振りと判定するために、一方の操作装置について振り判定がされてから所定時間以内に他方の操作装置についても振り判定がされた場合には、同時振りと判定するようにしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５５２５５６５号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の従来のゲームシステムでは、左右の振りのタイミングが多少ずれていても同時振りと判定するために、一方の操作装置について振り判定をした後、他方の操作装置についても振り判定をして、初めて同時振りと判定して同時振りゲーム処理を行うので、先に振った一方を基準とすると、ユーザの体感的には、同時振りゲーム処理が実際の振り入力から遅延していると感じることになる。
【０００７】
また、ゲーム処理が２つの操作装置の一方のみを振る片手振りにも対応している場合には、上記の従来のゲームシステムでは、一方の操作装置について振り入力判定した時点で片手振りに対応するゲーム処理（片手振りゲーム処理）を開始し、その直後（所定時間内）に他方の振り判定すると、ゲーム処理が片手振りゲーム処理から同時振りゲーム処理に切り替わることにもなり、ゲーム処理が不自然になってしまう。
【０００８】
これを避けるために、一方の操作装置について片手振りを判定してから所定時間が経過するまで待って他方の操作装置が振られていないことを確認して、初めて片手振りゲーム処理をするとすれば、そのような片手振りゲーム処理が実際の振り入力から遅延してしまうことになる。
【０００９】
本発明は、複数の操作装置の振り入力のタイミングにずれが生じた場合にも、ユーザに遅延を感じさせることなく、同時振りゲーム処理を行うことができるゲーム装置等を提供することを目的とする。
【００１０】
本発明の他の目的は、１つの操作装置について振り判定が行われたときに、他の操作装置において振り入力の有無の判定を待つことなく、片手振りと同時振りとを区別できるゲーム装置等を提供することである。
【課題を解決するための手段】
【００１１】
本発明の第１の態様のゲーム装置は、慣性センサを少なくとも備える複数の操作装置から、当該慣性センサのデータを少なくとも含む操作データを取得する操作データ取得部と、それぞれの前記操作装置について、前記操作データに基づいて、当該操作装置が振られている状態を示す振り状態になったこと、および当該操作装置に対する振り入力動作が行われたことを判定する振り入力判定部と、前記振り入力判定部における判定に基づいてゲーム処理を行うゲーム処理部とを備え、前記振り入力判定部は、前記複数の操作装置のうちの１つの操作装置について、前記振り入力動作が行われたと判定したときに、前記複数の操作装置のうちの他の操作装置が前記振り状態にある場合に、当該他の操作装置についても振り入力動作が行われたと判定する。
【００１２】
この構成により、複数の操作装置を同時に振る同時振り入力において、複数の操作装置の振り入力のタイミングにずれが生じた場合にも、振り入力判定部は、先に振られた操作装置の振り入力判定のタイミングで複数の操作装置の同時振りと判定をするので、ユーザが同時振りゲーム処理の遅延を感じることがなくなる。また、振り入力判定部が操作装置について振り状態になったこと、および振り入力動作が行われたことを判定するものであり、かつ、振り入力判定部が１つの操作装置について振り入力判定をした際に、他の操作装置が振り状態にあるときに同時振りと判定するので、他の操作装置について振り入力動作が行われるのを待つことなく、１つの操作装置について振り入力判定をしたタイミングで片手振りと同時振りとを区別することができる。
【００１３】
本発明の第２の態様のゲーム装置は、第１の態様のゲーム装置において、前記振り入力判定部は、前記１つの操作装置について、前記振り入力動作が行われたと判定したときに、前記他の操作装置が前記振り状態にない場合は、前記１つの操作装置のみについて振り入力動作が行われたと判定する。
【００１４】
この構成により、１つの操作装置について振り入力判定をしたタイミングで、それが片手振りであると判定して片手振りゲーム処理を行うことができるので、複数の操作装置の振り入力動作のタイミングが多少ずれていても同時振りと判定するために、片手振りゲーム処理の遅延を生じさせることがない。
【００１５】
本発明の第３の態様のゲーム装置は、第１または第２の態様のゲーム装置において、前記慣性センサには加速度センサが少なくとも含まれ、操作データは加速度データを含む。
【００１６】
この構成により、操作装置に与えられる加速度に基づいて振り入力判定および同時振り判定を行うことができる。
【００１７】
本発明の第４の態様のゲーム装置は、第３の態様のゲーム装置において、前記振り入力判定部は、それぞれの前記操作装置について、少なくとも前記加速度データが示す加速度の変化が第１の閾値以上になったときに、前記振り状態になったと判定する。
【００１８】
この構成により、振り入力動作の兆候があったときに、振り状態になったと判定できる。
【００１９】
本発明の第５の態様のゲーム装置は、第３の態様のゲーム装置において、前記振り入力判定部は、それぞれの前記操作装置について、少なくとも前記加速度データが示す加速度の大きさが第２の閾値以上になったときに、前記振り状態になったと判定する。
【００２０】
この構成により、操作装置に十分な大きさの加速度が与えられたときに、振り状態と判定できる。
【００２１】
本発明の第６の態様のゲーム装置は、第３の態様のゲーム装置において、前記振り入力判定部は、それぞれの前記操作装置について、前記加速度データが示す加速度の変化が第１の閾値以上になった後に、前記加速度の大きさが第２の閾値以上になったときに、前記振り状態になったと判定する。
【００２２】
この構成により、振り入力の兆候があった後に、操作装置に十分な大きさの加速度が与えられたときに、振り状態と判定できる。
【００２３】
本発明の第７の態様のゲーム装置は、第３の態様のゲーム装置において、前記振り入力判定部は、それぞれの前記操作装置について、前記加速度データが示す加速度の変化が０または第３の閾値以下になったときに、前記振り入力動作があったと判定する。
【００２４】
この構成により、振り入力判定部は、操作装置の動きがピーク（例えば、加速度が最大、または、角速度が最大）に達するタイミングまたはその付近のタイミングで振り判定をすることになるが、このタイミングは、ユーザが物を投げる動作において物が手から離れる（リリースされる）タイミングに近い。よって、あたかもユーザが操作装置を振る動作によって物を投げたかのようなタイミングで片手振りゲーム処理や同時振りゲーム処理を行うことができる。
【００２５】
本発明の第８の態様のゲーム装置は、第１または第２の態様のゲーム装置において、前記慣性センサには角速度センサが少なくとも含まれ、前記操作データは、角速度データを含む。
【００２６】
この構成により、操作装置に与えられる角速度に基づいて振り入力判定および同時振り判定を行うことができる。
【００２７】
本発明の第９の態様のゲーム装置は、第１または第２の態様のゲーム装置において、それぞれの前記操作装置について、前記操作データに基づいて、振り方向を判定する振り方向判定部をさらに備え、前記ゲーム処理部は、前記振り方向に基づいてゲーム処理を行う。
【００２８】
この構成により、振り方向に応じたゲーム処理を行うことができる。
【００２９】
本発明の第１０の態様のゲーム装置は、第９の態様のゲーム装置において、前記慣性センサには、加速度センサおよび角速度センサが含まれ、前記操作データは、加速度データおよび角速度データを含み、前記振り入力判定部は、前記加速度データに基づいて、前記振り状態になったことおよび前記振り入力動作が行われたことを判定し、前記振り方向判定部は、前記角速度データに基づいて、振り方向を判定する。
【００３０】
この構成により、加速度データを用いて振り判定を行うことができ、角速度データを用いて振り方向判定を行うことができる。
【００３１】
本発明の第１１の態様のゲーム装置は、第１０の態様のゲーム装置において、少なくとも前記角速度データに基づいて、前記操作装置の姿勢を算出する姿勢算出部をさらに備え、前記振り方向判定部は、前記姿勢に基づいて前記振り方向を判定する。
【００３２】
この構成により、ユーザが操作装置をどの姿勢で所持していても、ユーザを基準として左右方向、上下方向等の振り方向を判定できる。
【００３３】
本発明の第１２の態様のゲーム装置は、第４ないし第７および第１０ないし第１２のいずれかにの態様のゲーム装置において、前記加速度データの移動平均を算出する平滑化処理部をさらに備え、前記振り入力判定部は、前記移動平均に基づいて、前記振り状態および振り入力動作が行われたことを判定する。
【００３４】
この構成により、操作装置の実際の動きが平滑化されて、突発的なノイズが除去されるので、振り入力判定部がユーザの意図しない判定をする可能性を低減できる。
【００３５】
本発明の第１３の態様のゲーム装置は、加速度センサを備えた複数の操作装置の各々から、加速度データを少なくとも含む操作データを取得する操作データ取得部と、それぞれの前記操作装置について、前記加速度データに基づいて振り入力が行われたことを判定する振り入力判定部と、前記振り入力判定部における判定に基づいてゲーム処理を行うゲーム処理部とを備え、前記振り入力判定部は、前記複数の操作装置のうちの１つの操作装置について、前記振り入力が行われたと判定した場合において、前記複数の操作装置のうちの他の操作装置の前記加速度の変化が第４の閾値以上となった後に、当該他の操作装置の加速度の大きさが第５の閾値以上となっているときは、当該他の操作装置についても、前記１つの操作装置と同時に振り入力が行われたと判定する。
【００３６】
この構成によっても、複数の操作装置を同時に振る同時振り入力において、複数の操作装置の振り入力のタイミングにずれが生じた場合にも、振り入力判定部は、先に振られた操作装置の振り入力判定のタイミングで複数の操作装置の同時振りと判定をするので、ユーザが同時振りゲーム処理の遅延を感じることがなくなる。また、振り入力判定部が操作装置について振り状態になったこと、および振り入力動作が行われたことを判定するものであり、かつ、振り入力判定部が１つの操作装置について振り入力判定をした際に、他の操作装置が振り状態にあるときに同時振りと判定するので、他の操作装置について振り入力動作が行われるのを待つことなく、１つの操作装置について振り入力判定をしたタイミングで片手振りと同時振りとを区別することができる。
【００３７】
本発明の第１４の態様のゲーム装置は、第１３の態様のゲーム装置において、前記振り入力判定部は、前記加速度データが示す加速度の変化が第１の閾値以上となった後に、前記加速度の大きさが第２の閾値以上、かつ、前記加速度の変化が０または第３の閾値以下になったときに、前記振り入力動作が行われたと判定する。
【００３８】
この構成により、あたかもユーザが操作装置を振る動作によって物を投げたかのようなタイミングで片手振りゲーム処理や同時振りゲーム処理を行うことができる。
【００３９】
本発明の第１５の態様のゲーム装置は、第１３または第１４の態様のゲーム装置において、前記複数の操作装置は角速度センサをさらに備え、前記操作データには角速度データがさらに含まれ、前記角速度データに基づいて前記操作装置の振り方向を判定する振り方向判定部をさらに備え、前記ゲーム処理部は、さらに前記振り方向に基づいてゲーム処理を行う。
【００４０】
この構成により、振り方向に応じたゲーム処理を行うことができる。
【００４１】
本発明の第１６の態様は、複数の操作装置を少なくとも備えたゲームシステムであって、前記複数の操作装置の各々は、少なくとも慣性センサを備え、当該慣性センサから得られるデータを少なくとも含む操作データを出力し、前記ゲームシステムは、それぞれの前記操作装置について、前記操作データに基づいて、当該操作装置が振られている状態を示す振り状態になったこと、および当該操作装置に対する振り入力動作が行われたことを判定する振り入力判定部と、前記振り入力判定部における判定に基づいてゲーム処理を行うゲーム処理部とを備え、前記振り入力判定部は、前記複数の操作装置のうちの１つの操作装置について、前記振り入力動作が行われたと判定したときに、前記複数の操作装置のうちの他の操作装置が前記振り状態に場合に、当該他の操作装置についても振り入力動作が行われたと判定する。
【００４２】
この構成によっても、複数の操作装置を同時に振る同時振り入力において、複数の操作装置の振り入力のタイミングにずれが生じた場合にも、振り入力判定部は、先に振られた操作装置の振り入力判定のタイミングで複数の操作装置の同時振りと判定をするので、ユーザが同時振りゲーム処理の遅延を感じることがなくなる。また、振り入力判定部が操作装置について振り状態になったこと、および振り入力動作が行われたことを判定するものであり、かつ、振り入力判定部が１つの操作装置について振り入力判定をした際に、他の操作装置が振り状態にあるときに同時振りと判定するので、他の操作装置について振り入力動作が行われるのを待つことなく、１つの操作装置について振り入力判定をしたタイミングで片手振りと同時振りとを区別することができる。
【００４３】
本発明の第１７の態様は、ゲーム装置にて実行されるゲームプログラムであって、このゲームプログラムは、前記ゲーム装置を、慣性センサを少なくとも備える複数の操作装置から、当該慣性センサのデータを少なくとも含む操作データを取得する操作データ取得部、それぞれの前記操作装置について、前記操作データに基づいて、当該操作装置が振られている状態を示す振り状態になったこと、および当該操作装置に対する振り入力動作が行われたことを判定する振り入力判定部、および前記振り入力判定部における判定に基づいてゲーム処理を行うゲーム処理部として機能させ、前記振り入力判定部は、前記複数の操作装置のうちの１つの操作装置について、前記振り入力動作が行われたと判定したときに、前記複数の操作装置のうちの他の操作装置が前記振り状態にある場合に、当該他の操作装置についても振り入力動作が行われたと判定する。
【００４４】
この構成によっても、複数の操作装置を同時に振る同時振り入力において、複数の操作装置の振り入力のタイミングにずれが生じた場合にも、振り入力判定部は、先に振られた操作装置の振り入力判定のタイミングで複数の操作装置の同時振りと判定をするので、ユーザが同時振りゲーム処理の遅延を感じることがなくなる。また、振り入力判定部が操作装置について振り状態になったこと、および振り入力動作が行われたことを判定するものであり、かつ、振り入力判定部が１つの操作装置について振り入力判定をした際に、他の操作装置が振り状態にあるときに同時振りと判定するので、他の操作装置について振り入力動作が行われるのを待つことなく、１つの操作装置について振り入力判定をしたタイミングで片手振りと同時振りとを区別することができる。
【００４５】
本発明の第１８の態様のゲームプログラムは、ゲーム装置にて実行されることで、前記ゲーム装置を、加速度センサを備えた複数の操作装置の各々から、加速度データを少なくとも含む操作データを取得する操作データ取得部、それぞれの前記操作装置について、前記加速度データに基づいて振り入力動作が行われたことを判定する振り入力判定部、前記振り入力判定部における判定に基づいてゲーム処理を行うゲーム処理部として機能させ、前記振り入力判定部は、前記複数の操作装置のうちの１つの操作装置について、前記振り入力動作が行われたと判定した場合において、前記複数の操作装置のうちの他の操作装置の前記加速度の変化が第４の閾値以上となった後に、当該他の操作装置の加速度の大きさが第５の閾値以上となっているときは、当該他の操作装置についても、前記１つの操作装置と同時に振り入力動作が行われたと判定する。
【００４６】
この構成によっても、複数の操作装置を同時に振る同時振り入力において、複数の操作装置の振り入力のタイミングにずれが生じた場合にも、振り入力判定部は、先に振られた操作装置の振り入力判定のタイミングで複数の操作装置の同時振りと判定をするので、ユーザが同時振りゲーム処理の遅延を感じることがなくなる。また、振り入力判定部が操作装置について振り状態になったこと、および振り入力動作が行われたことを判定するものであり、かつ、振り入力判定部が１つの操作装置について振り入力判定をした際に、他の操作装置が振り状態にあるときに同時振りと判定するので、他の操作装置について振り入力動作が行われるのを待つことなく、１つの操作装置について振り入力判定をしたタイミングで片手振りと同時振りとを区別することができる。
【００４７】
本発明の第１９の態様のゲームプログラムは、第１８の態様のゲームプログラムにおいて、前記振り入力判定部は、前記加速度データが示す加速度の変化が第１の閾値以上となった後に、前記加速度の大きさが第２の閾値以上、かつ、前記加速度の変化が０または第３の閾値以下になったときに、前記振り入力動作が行われたと判定する。
【００４８】
この構成により、あたかもユーザが操作装置を振る動作によって物を投げたかのようなタイミングで片手振りゲーム処理や同時振りゲーム処理を行うことができる。
【００４９】
本発明の第２０の態様のゲームプログラムは、第１８または第１９の態様のゲームプログラムにおいて、前記複数の操作装置は角速度センサをさらに備え、前記操作データには角速度データがさらに含まれ、前記角速度データに基づいて前記操作装置の振り方向を判定する振り方向判定部をさらに備え、前記ゲーム処理部は、さらに前記振り方向に基づいてゲーム処理を行う。
【００５０】
この構成により、振り方向に応じたゲーム処理を行うことができる。
【００５１】
本発明の第２１の態様は、振り入力判定方法であって、この振り入力判定方法は、慣性センサを少なくとも備える複数の操作装置から、当該慣性センサのデータを少なくとも含む操作データを取得する操作データ取得ステップと、それぞれの前記操作装置について、前記操作データに基づいて、当該操作装置が振られている状態を示す振り状態になったこと、および当該操作装置に対する振り入力動作が行われたことを判定する振り入力判定ステップとを含み、前記振り入力判定ステップは、前記複数の操作装置のうちの１つの操作装置について、前記振り入力動作が行われたと判定したときに、前記複数の操作装置のうちの他の操作装置が前記振り状態にある場合に、当該他の操作装置についても振り入力動作が行われたと判定する。
【００５２】
この構成により、複数の操作装置を同時に振る同時振り入力において、複数の操作装置の振り入力のタイミングにずれが生じた場合にも、先に振られた操作装置の振り入力判定のタイミングで複数の操作装置の同時振りと判定できる。また、振り入力判定部が操作装置について振り状態になったこと、および振り入力動作が行われたことを判定するものであり、かつ、振り入力判定部が１つの操作装置について振り入力判定をした際に、他の操作装置が振り状態にあるときに同時振りと判定するので、他の操作装置について振り入力動作が行われるのを待つことなく、１つの操作装置について振り入力判定をしたタイミングで片手振りと同時振りとを区別することができる。
【発明の効果】
【００５３】
本発明によれば、複数の操作装置を同時に振る同時振り入力において、複数の操作装置の振り入力のタイミングにずれが生じた場合にも、振り入力判定部は、先に振られた操作装置の振り入力判定のタイミングで複数の操作装置の同時振りと判定をするので、ユーザが同時振りゲーム処理の遅延を感じることがなくなる。また、振り入力判定部が操作装置について振り状態になったこと、および振り入力動作が行われたことを判定するものであり、かつ、振り入力判定部が１つの操作装置について振り入力判定をした際に、他の操作装置が振り状態にあるときに同時振りと判定するので、他の操作装置について振り入力動作が行われるのを待つことなく、１つの操作装置について振り入力判定をしたタイミングで片手振りと同時振りとを区別することができる。
【図面の簡単な説明】
【００５４】
【図１】本発明の実施の形態のゲームシステムの一例の全体構成を示す図
【図２】本発明の実施の形態のゲームシステムの一例の全体構成を示す図
【図３】本発明の実施の形態のゲームシステムの他の例の全体構成を示す図
【図４】本発明の実施の形態の本体装置の一例の構成を示す六面図
【図５】本発明の実施の形態の左コントローラの一例の構成を示す六面図
【図６】本発明の実施の形態の右コントローラの一例の構成を示す六面図
【図７】本発明の実施の形態のクレードルの一例の構成を示す六面図
【図８】本発明の実施の形態の本体装置の一例の内部構成を示すブロック図
【図９】本発明の実施の形態の左コントローラおよび右コントローラの一例の内部構成を示すブロック図
【図１０】本発明の実施の形態のクレードルの一例の内部構成を示すブロック図
【図１１】本発明の実施の形態のゲームシステムの利用態様の一例を示す図
【図１２】本発明の実施の形態のゲームシステムの利用態様の他の例を示す図
【図１３】本発明の実施の形態のゲームシステムの利用態様の他の例を示す図
【図１４】本発明の実施の形態のゲームシステムの利用態様の他の例を示す図
【図１５】本発明の実施の形態の振り入力判定処理の一例を示すフローチャート
【図１６】本発明の実施の形態の加速度データ（生データ）、加速度データ（移動平均）、および加速度変化の一例を示すグラフ
【図１７】本発明の実施の形態の同時振り判定処理の一例を示すフローチャート
【図１８】本発明の実施の形態の加速度データ（移動平均）および加速度変化の一例を示すグラフ
【図１９】本発明の実施の形態のゲーム処理の一例を示す図
【図２０】本発明の実施の形態のゲーム処理の他の例を示す図
【図２１】本発明の実施の形態のゲーム処理の他の例を示す図
【図２２】本発明の実施の形態のゲーム処理の他の例を示す図
【発明を実施するための形態】
【００５５】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下に説明する実施の形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施の形態に応じた具体的構成が適宜採用されてよい。
【００５６】
［ゲームシステムの全体構成］
図１は、本発明の実施の形態のゲームシステム１の一例の全体構成を示す図である。ゲームシステム１は情報処理装置である本体装置（ゲーム装置）２を含んで構成される。本ゲームシステム１は、ゲーム以外の情報処理、例えば、ウェブブラウズ、動画再生、通信等の機能を備えていてよく、本体装置はそのような機能を実行するものであってよい。本実施の形態のゲームシステム１は、ゲーム装置としての本体装置２に加えて、操作装置としての左コントローラ３および右コントローラ４を備えている。
【００５７】
図１の例では、本体装置２に左コントローラ３および右コントローラ４が装着されている。左コントローラ３および右コントローラ４は、それぞれ本体装置２に装着されて一体化されている。本体装置２は、ゲームシステム１における各種の処理を実行する装置である。本体装置２は、ディスプレイ１２を備える。左コントローラ３および右コントローラ４は、ユーザが入力を行うための操作部材を備える操作装置である。
【００５８】
図２は、本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図である。図１および図２に示すように、左コントローラ３および右コントローラ４は、本体装置２に着脱可能である。左コントローラ３は、本体装置２の左側面（図１に示すｘ軸正方向側の側面）に装着することができ、本体装置２の左側面に沿って図１に示すｙ軸方向にスライドさせることによって本体装置２に着脱可能となっている。また、右コントローラ４は、本体装置２の右側面（図１に示すｘ軸負方向側の側面）に装着することができ、本体装置２の右側面に沿って図１に示すｙ軸方向にスライドさせることによって本体装置２に着脱可能となっている。なお、以下において、左コントローラ３および右コントローラ４の総称として「コントローラ」と記載することがある。
【００５９】
図３は、本実施形態におけるゲームシステムの他の例の全体構成を示す図である。図３に示すように、ゲームシステム１は、さらに、クレードル５を含んでいてよい。一例として、クレードル５は、左コントローラ３および右コントローラ４が本体装置２に装着された一体型装置を載置することが可能である。また、さらに他の例として、クレードル５は、左コントローラ３および右コントローラ４を本体装置２から取り外した状態で本体装置２のみを載置することも可能である。
【００６０】
また、クレードル５は、ディスプレイ１２とは別体の外部表示装置の一例である据置型モニタ６（例えば、据置型テレビ）と通信可能である（有線通信であってもよいし、無線通信であってもよい）。詳細は後述するが、上記一体型装置または本体装置２単体をクレードル５に載置した場合、ゲームシステム１は、本体装置２が取得または生成した画像を据置型モニタ６に表示することができる。また、本実施形態においては、クレードル５は、載置された上記一体型装置または本体装置２単体を充電する機能を有する。また、クレードル５は、ハブ装置（具体的には、ＵＳＢハブ）の機能を有する。
【００６１】
図４は、本体装置２の一例を示す六面図である。図４に示すように、本体装置２は、略板状のハウジング７３を備える。本実施形態において、ハウジング１１の主面（換言すれば、表側の面、すなわち、ディスプレイ１２が設けられる面）は、大略的には矩形形状である。本実施形態においては、ハウジング１１は、横長の形状であるものとする。つまり、本実施形態においては、ハウジング１１の主面の長手方向（すなわち、図１に示すｘ軸方向）を横方向（左右方向とも言う）と呼び、当該主面の短手方向（すなわち、図１に示すｙ軸方向）を縦方向（上下方向とも言う）と呼び、主面に垂直な方向（すなわち、図１に示すｚ軸方向）を奥行方向（前後方向とも言う）と呼ぶこととする。本体装置２は、本体装置２が横長となる向きで利用されることが可能である。また、本体装置２が縦長となる向きで利用されることも可能である。その場合には、ハウジング１１を縦長の形状であるものと見なしてもよい。
【００６２】
なお、ハウジング１１の形状および大きさは、任意である。一例として、ハウジング１１は、携帯可能な大きさであってよい。また、本体装置２単体または本体装置２に左コントローラ３および右コントローラ４が装着された一体型装置は、携帯型装置であってもよい。また、本体装置２または一体型装置が手持ち型の装置であってもよい。また、本体装置２または一体型装置が可搬型装置であってもよい。
【００６３】
図４に示すように、本体装置２は、ハウジング１１の主面に設けられるディスプレイ１２を備える。ディスプレイ１２は、本体装置２が取得または生成した画像（静止画であってもよいし、動画であってもよい）を表示する。本実施形態においては、ディスプレイ１２は、液晶表示装置（ＬＣＤ）とする。ただし、ディスプレイ１２は任意の種類の表示装置であってよい。
【００６４】
また、本体装置２は、ディスプレイ１２にはタッチパネル１３が一体化され、タッチディスプレイが構成されている。本実施形態においては、タッチパネル１３は、マルチタッチ入力が可能な方式（例えば、静電容量方式）のものである。ただし、タッチパネル１３は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式（例えば、抵抗膜方式）のものであってもよい。
【００６５】
本体装置２は、ハウジング１１の内部においてスピーカ（すなわち、図８に示すスピーカ８８）を備えている。図４に示すように、ハウジング１１の主面には、スピーカ孔１１ａおよび１１ｂが形成される。そして、スピーカ８８の出力音は、これらのスピーカ孔１１ａおよび１１ｂからそれぞれ出力される。
【００６６】
本体装置２は、ハウジング１１の左側面において左レール部材１５を備える。左レール部材１５は、左コントローラ３を本体装置２に着脱可能に装着するための部材である。左レール部材１５は、ハウジング１１の左側面において、上下方向に沿って延びるように設けられる。左レール部材１５は、左コントローラ３のスライダ（すなわち、図５に示すスライダ３１０）と係合可能な形状を有しており、左レール部材１５とスライダ３１０とによってスライド機構が形成される。このスライド機構によって、左コントローラ３を本体装置２に対してスライド可能かつ着脱可能に装着することができる。左レール部材１５の下端はハウジング１１とともにポケットを構成しており、このポケットの内側に左側端子１７（図８参照）が設けられている。
【００６７】
ハウジング１１の右側面には、左側面に設けられる構成と同様の構成が設けられる。すなわち、本体装置２は、ハウジング１１の右側面において右レール部材１９を備える。右レール部材１９は、ハウジング１１の右側面において、上下方向に沿って延びるように設けられる。右レール部材１９は、右コントローラ４のスライダ（すなわち、図６に示すスライダ３３０）と係合可能な形状を有しており、右レール部材１９とスライダ３３０とによってスライド機構が形成される。このスライド機構によって、右コントローラ４を本体装置２に対してスライド可能かつ着脱可能に装着することができる。右レール部材１９の下端はハウジング１１とともにポケットを構成しており、このポケットの内側に右側端子２１（図８参照）が設けられている。
【００６８】
本体装置２は、第１スロット２３を備える。第１スロット２３は、ハウジング１１の上側面に設けられる。第１スロット２３は、第１の種類の記憶媒体を装着可能な形状を有する。第１の種類の記憶媒体は、例えば、ゲームシステム１およびそれと同種のゲーム装置に専用の記憶媒体（例えば、専用メモリカード）である。第１の種類の記憶媒体は、例えば、本体装置２で利用されるデータ（例えば、アプリケーションのセーブデータ等）、および／または、本体装置２で実行されるプログラム（例えば、アプリケーションのプログラム等）を記憶するために用いられる。また、本体装置２は、電源ボタン２８を備える。図４に示すように、電源ボタン２８は、ハウジング１１の上側面に設けられる。電源ボタン２８は、本体装置２の電源のオン／オフを切り替えるためのボタンである。
【００６９】
本体装置２は、音声入出力端子（具体的には、イヤホンジャック）２５を備える。すなわち、本体装置２は、音声入出力端子２５にマイクやイヤホンを装着することができる。音声入出力端子２５は、ハウジング１１の上側面に設けられる。
【００７０】
本体装置２は、音量ボタン２６ａおよび２６ｂを備える。音量ボタン２６ａおよび２６ｂは、ハウジング１１の上側面に設けられる。音量ボタン２６ａおよび２６ｂは、本体装置２によって出力される音量を調整する指示を行うためのボタンである。すなわち、音量ボタン２６ａは、音量を下げる指示を行うためのボタンであり、音量ボタン２６ｂは、音量を上げる指示を行うためのボタンである。
【００７１】
本体装置２は、下側端子２７を備える。下側端子２７は、本体装置２が、後述するクレードル５と通信を行うための端子である。下側端子２７は、ハウジング１１の下側面に設けられる。本体装置２がクレードル５に装着された場合、下側端子２７は、クレードル５の端子（図７に示す本体端子７３）に接続される。本実施形態において、下側端子２７は、ＵＳＢコネクタ（より具体的には、メス側コネクタ）である。
【００７２】
また、本体装置２は第２スロット２４を備える。本実施形態においては、第２スロット２４は、ハウジング１１の下側面に設けられる。ただし、他の実施形態においては、第２スロット２４は、第１スロット２３と同じ面に設けられてもよい。第２スロット２４は、第１の種類とは異なる第２の種類の記憶媒体を装着可能な形状を有する。第２の種類の記憶媒体は、例えば、汎用の記憶媒体であってもよい。例えば、第２の種類の記憶媒体は、ＳＤカードであってもよい。第２の種類の記憶媒体は、例えば、第１の種類の記憶媒体と同様、本体装置２で利用されるデータ（例えば、アプリケーションのセーブデータ等）、および／または、本体装置２で実行されるプログラム（例えば、アプリケーションのプログラム等）を記憶するために用いられる。
【００７３】
以上に説明した、ハウジング１１に設けられる各構成要素（具体的には、ボタン、スロット、端子等）の形状、数、および設置位置は、任意である。例えば、他の実施形態においては、電源ボタン２８および各スロット２３および２４のうちのいくつかは、ハウジング１１の他の側面あるいは背面に設けられてもよい。また、他の実施形態においては、本体装置２は、上記各構成要素のうちいくつかを備えていない構成であってもよい。
【００７４】
［左コントローラの構成］
図５は、左コントローラ３の一例を示す六面図である。図５に示すように、左コントローラ３は、ハウジング３１を備える。本実施形態において、ハウジング３１は、略板状である。また、ハウジング３１の主面（換言すれば、表側の面、すなわち、図１に示すｚ軸負方向側の面）は、大略的には矩形形状である。また、本実施形態においては、ハウジング３１は、縦長の形状、すなわち、上下方向（すなわち、図１に示すｙ軸方向）に長い形状である。左コントローラ３は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング３１は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。
【００７５】
また、左コントローラ３は、横長となる向きで把持されることも可能である。左コントローラ３が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。なお、ハウジング３１の形状は任意であり、他の実施形態においては、ハウジング３１は略板状でなくてもよい。また、ハウジング３１は、矩形形状でなくてもよく、例えば半円状の形状等であってもよい。また、ハウジング３１は、縦長の形状でなくてもよい。
【００７６】
ハウジング３１の上下方向の長さは、本体装置２のハウジング１１の上下方向の長さとほぼ同じである。また、ハウジング３１の厚さ（すなわち、前後方向の長さ、換言すれば、図１に示すｚ軸方向の長さ）は、本体装置２のハウジング１１の厚さとほぼ同じである。したがって、左コントローラ３が本体装置２に装着された場合（図１参照）には、ユーザは、本体装置２と左コントローラ３とを一体の装置のような感覚で把持することができる。
【００７７】
また、ハウジング３１の主面は、左側の角部分が、右側の角部分よりも丸みを帯びた形状になっている。すなわち、ハウジング３１の上側面と左側面との接続部分、および、ハウジング３１の下側面と左側面との接続部分は、その上側面と右側面との接続部分、および、その下側面と右側面との接続部分に比べて、丸くなっている（換言すれば、面取りにおけるＲが大きい）。したがって、左コントローラ３が本体装置２に装着された場合（図１参照）には、一体型装置となったゲームシステム１の左側が丸みを帯びた形状となるので、ユーザにとって持ちやすい形状となる。
【００７８】
左コントローラ３は、アナログスティック３２を備える。アナログスティック３２は、ハウジング３１の主面に設けられる。アナログスティック３２は、方向を入力することが可能な方向操作部材の一例である。アナログスティック３２は、ハウジング３１の主面に平行な全方向（すなわち、上下左右および斜め方向を含む、３６０°の方向）に傾倒可能なスティック部材を有する。ユーザは、スティック部材を傾倒することによって傾倒方向に応じた方向の入力（および、傾倒した角度に応じた大きさの入力）が可能である。
【００７９】
なお、方向操作部材は、十字キーまたはスライドスティック等であってもよい。また、本実施形態においては、スティック部材を（ハウジング３１に垂直な方向に）押下する入力が可能である。すなわち、アナログスティック３２は、スティック部材の傾倒方向および傾倒量に応じた方向および大きさの入力と、スティック部材に対する押下入力とを行うことが可能な入力部である。
【００８０】
左コントローラ３は、４つの操作ボタン３３〜３６（具体的には、右方向ボタン３３、下方向ボタン３４、上方向ボタン３５、および、左方向ボタン３６）を備える。図５に示すように、これら４つの操作ボタン３３〜３６は、ハウジング３１の主面においてアナログスティック３２の下側に設けられる。
【００８１】
なお、本実施形態においては、左コントローラ３の主面に設けられる操作ボタンを４つとするが、操作ボタンの数は任意である。これらの操作ボタン３３〜３６は、本体装置２で実行される各種プログラム（例えば、ＯＳプログラムやアプリケーションプログラム）に応じた指示を行うために用いられる。なお、本実施形態においては、各操作ボタン３３〜３６は方向入力を行うために用いられてもよいことから、各操作ボタン３３〜３６を、右方向ボタン３３、下方向ボタン３４、上方向ボタン３５、および、左方向ボタン３６と呼んでいる。ただし、各操作ボタン３３〜３６は、方向入力以外の指示を行うために用いられてもよい。
【００８２】
また、左コントローラ３は−（マイナス）ボタン４７を備える。図５に示すように、−ボタン４７は、ハウジング３１の主面に設けられ、より具体的には、主面における右上領域に設けられる。−ボタン４７は、本体装置２で実行される各種プログラム（例えば、ＯＳプログラムやアプリケーションプログラム）に応じた指示を行うために用いられる。
【００８３】
左コントローラ３の主面に設けられる各操作部材（具体的には、アナログスティック３２および上記各ボタン３３〜３６、４７）は、左コントローラ３が本体装置２に装着される場合、一体型装置となったゲームシステム１を把持するユーザの例えば左手の親指によって操作される。また、左コントローラ３が本体装置２から外された状態において両手で横向きに把持されて使用される場合、上記各操作部は、左コントローラ３を把持するユーザの例えば左右の手の親指で操作される。具体的には、この場合、アナログスティック３２はユーザの左手の親指で操作され、各操作ボタン３３〜３６はユーザの右手の親指で操作される。
【００８４】
左コントローラ３は、Ｌボタン３８およびＺＬボタン３９を備える。これらの操作ボタン３８および３９は、上記操作ボタン３３〜３６と同様、本体装置２で実行される各種プログラムに応じた指示を行うために用いられる。図５に示すように、Ｌボタン３８は、ハウジング３１の側面のうちの左上部分に設けられる。また、ＺＬボタン３９は、ハウジング３１の側面から裏面にかけての左上部分（厳密には、ハウジング３１を表側から見たときの左上部分）に設けられる。つまり、ＺＬボタン３９は、Ｌボタン３８の後側（図１に示すｚ軸正方向側）に設けられる。
【００８５】
本実施形態においては、ハウジング３１の左上部分が丸みを帯びた形状であるので、Ｌボタン３８およびＺＬボタン３９は、ハウジング３１の当該左上部分の丸みに応じた丸みを帯びた形状を有する。左コントローラ３が本体装置２に装着される場合、Ｌボタン３８およびＺＬボタン３９は、一体型装置となったゲームシステム１における左上部分に配置されることになる。
【００８６】
左コントローラ３は、スライダ３１０を備えている。スライダ３１０は、ハウジング３１の右側面において、上下方向に延びるように設けられる。スライダ３１０は、本体装置２の左レール部材１５（より具体的には、左レール部材１５の溝）と係合可能な形状を有している。したがって、左レール部材１５に係合したスライダ４０は、スライド方向（換言すれば左レール部材１５が延びる方向）に垂直な向きに関しては固定されて外れないようになっている。
【００８７】
スライダ３１０の下端には、ハウジング３１の右側面から若干離間した係合片３２１が形成されており、この係合片３２１の裏側（図１に示すｘ軸正方向側）に、左コントローラ３が本体装置２と有線通信を行うための端子４２を備える。左コントローラ３が本体装置２に装着される場合には、この係合片３２１が左レール部材１５の下端に形成されたポケットに嵌って、端子４２が本体装置２の左側端子１７と接触する。端子４２および左側端子１７は、左コントローラ３が装置本体２に装着されたときに互いに接触する位置に設けられていればよく、その具体的な位置は任意である。本実施形態においては、上記のような配置により、左コントローラ３を本体装置２から取り外した状態でも、端子４２および左側端子１７が外側に露出しないようにしている。
【００８８】
左コントローラ３の右側面（すなわち、左コントローラ３が本体装置２に装着されるときに本体装置２の右側面と相対する面）には、操作ボタン４３および４４が設けられる。また、通知用ＬＥＤ４５、ペアリングボタン４６が設けられる。操作ボタン４３および４４は、左コントローラ３を両手で持って操作する場合に、ＬボタンおよびＲボタンのようにして利用するボタンである。ペアリングボタン４６は、左コントローラ３を装置本体２から取り外して用いる場合に、本体装置２との無線通信のペアリングの実行を指示するためのボタンである。通知用ＬＥＤ４５は、４つのＬＥＤランプを含み、これらのＬＥＤランプの点灯、消灯の組み合わせによって、各種の情報、特に、左コントローラ３のステータス（状態）を表示する。たとえば、複数のプレイヤが左コントローラ３または右コントローラ４を１つずつ操作するゲームにおいて、当該コントローラが何番目のプレイヤに対応するかを示すことができる。
【００８９】
左コントローラ３の裏面（背面）には、ロック解除ボタン３１１が設けられる。左コントローラ３が本体装置２に装着されている状態で、このロック解除ボタン３１１を押すと、図２に示すように左コントローラ３を上向きにスライドさせることができ、これによって装着状態でロックされている左コントローラ３を本体装置２から離脱することができる。
【００９０】
［右コントローラの構成］
図６は、右コントローラ４の一例を示す六面図である。図６に示すように、右コントローラ４は、ハウジング５１を備える。本実施形態において、ハウジング５１は、略板状である。また、ハウジング５１の主面（換言すれば、表側の面、すなわち、図１に示すｚ軸負方向側の面）は、大略的には矩形形状である。また、本実施形態においては、ハウジング５１は、縦長の形状、すなわち、上下方向に長い形状である。
【００９１】
右コントローラ４は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング５１は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ４は、横長となる向きで把持されることも可能である。右コントローラ４が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００９２】
右コントローラ４のハウジング５１は、左コントローラ３のハウジング３１と同様、その上下方向の長さは、本体装置２のハウジング１１の上下方向の長さとほぼ同じであり、その厚さは、本体装置２のハウジング１１の厚さとほぼ同じである。したがって、右コントローラ４が本体装置２に装着された場合（図１参照）には、ユーザは、本体装置２と右コントローラ４とを一体の装置のような感覚で把持することができる。
【００９３】
また、図６に示すように、ハウジング５１の主面は、右側の角部分が、左側の角部分よりも丸みを帯びた形状になっている。すなわち、ハウジング５１の上側面と右側面との接続部分、および、ハウジング５１の下側面と右側面との接続部分は、その上側面と左側面との接続部分、および、その下側面と左側面との接続部分に比べて、丸くなっている（換言すれば、面取りにおけるＲが大きい）。したがって、右コントローラ４が本体装置２に装着された場合（図１参照）には、一体型装置となったゲームシステム１の右側が丸みを帯びた形状となるので、ユーザにとって持ちやすい形状となる。
【００９４】
右コントローラ４は、左コントローラ３と同様、方向操作部材としてアナログスティック５２を備える。本実施形態においては、アナログスティック５２は、左コントローラ３のアナログスティック３２と同じ構成である。また、右コントローラ４は、左コントローラ３と同様、４つの操作ボタン５３〜５６（具体的には、Ａボタン５３、Ｂボタン５４、Ｘボタン５５、および、Ｙボタン５６）を備える。本実施形態においては、これら４つの操作ボタン５３〜５６は、左コントローラ３の４つの操作ボタン３３〜３６と同じ機構である。図６に示すように、これらアナログスティック５２および各操作ボタン５３〜５６は、ハウジング５１の主面に設けられる。なお、本実施形態においては、右コントローラ４の主面に設けられる操作ボタンを４つとするが、操作ボタンの数は任意である。
【００９５】
ここで、本実施形態においては、右コントローラ４においては、アナログスティック５２は各操作ボタン５３〜５６の上方に配置される。すなわち、右コントローラ４における２種類の操作部材（アナログスティックおよび操作ボタン）の位置関係は、左コントローラ３におけるこれら２種類の操作部の位置関係とは反対になっている。このような配置によって、左コントローラ３および右コントローラ４を本体装置２から外して両手で使用する場合に、アナログスティックが左側、ボタンが右側になり、似たような操作感覚で使用することができる。
【００９６】
また、右コントローラ４は、＋（プラス）ボタン５７を備える。図６に示すように、＋ボタン５７は、ハウジング５１の主面に設けられ、より具体的には、主面の左上領域に設けられる。＋ボタン５７は、他の操作ボタン５３〜５６と同様、本体装置２で実行される各種プログラム（例えば、ＯＳプログラムやアプリケーションプログラム）に応じた指示を行うために用いられる。
【００９７】
右コントローラ４は、ホームボタン５８を備える。図６に示すように、ホームボタン５８は、ハウジング５１の主面に設けられ、より具体的には、主面の左下領域に設けられる。ホームボタン５８は、本体装置２のディスプレイ１２に所定のメニュー画面を表示させるためのボタンである。メニュー画面は、例えば、本体装置２において実行可能な１以上のアプリケーションのうちからユーザが指定したアプリケーションを起動することが可能な画面である。メニュー画面は、例えば、本体装置２の起動時に表示されてもよい。
【００９８】
本実施形態においては、本体装置２においてアプリケーションが実行されている状態（すなわち、当該アプリケーションの画像がディスプレイ１２に表示されている状態）において、ホームボタン５８が押下されると、所定の操作画面がディスプレイ１２に表示されてもよい（このとき、操作画面に代えてメニュー画面が表示されてもよい）。なお、操作画面は、例えば、アプリケーションを終了してメニュー画面をディスプレイ１２に表示させる指示、および、アプリケーションを再開する指示等を行うことが可能な画面である。
【００９９】
右コントローラ４の主面に設けられる各操作部材（具体的には、アナログスティック５２および上記各ボタン５３〜５８）は、右コントローラ４が本体装置２に装着される場合、ゲームシステム１を把持するユーザの例えば右手の親指によって操作される。また、右コントローラ４が本体装置２から外された状態において両手で横向きに把持されて使用される場合、上記各操作部材は、右コントローラ４を把持するユーザの例えば左右の手の親指で操作される。具体的には、この場合、アナログスティック５２はユーザの左手の親指で操作され、各操作ボタン５３〜５６はユーザの右手の親指で操作される。
【０１００】
右コントローラ４は、Ｒボタン６０およびＺＲボタン６１を備える。Ｒボタン６０は、ハウジング５１の側面のうちの右上部分に設けられる。また、ＺＲボタン６１は、ハウジング５１の側面から裏面にかけての右上部分（厳密には、ハウジング５１を表側から見たときの右上部分）に設けられる。つまり、ＺＲボタン６１は、Ｒボタン６０の後側（図１に示すｚ軸正方向側）に設けられる。本実施形態においては、ハウジング５１の右上部分が丸みを帯びた形状であるので、Ｒボタン６０およびＺＲボタン６１は、ハウジング５１の当該右上部分の丸みに応じた丸みを帯びた形状を有する。右コントローラ４が本体装置２に装着される場合、Ｒボタン６０およびＺＲボタン６１は、ゲームシステム１における右上部分に配置されることになる。
【０１０１】
右コントローラ４は、左コントローラ３と同様のスライダ機構を備えている。すなわち、右コントローラ４は、上述のスライダ３３０を備えている。図６に示すように、スライダ３３０は、ハウジング５１の左側面において、上下方向に延びるように設けられる。スライダ３３０は、本体装置２の右レール部材１９（より具体的には、右レール部材１９の溝）と係合可能な形状を有している。したがって、右レール部材１９に係合したスライダ３３０は、スライド方向（換言すれば右レール部材１９が延びる方向）に垂直な向きに関しては固定されて外れないようになっている。
【０１０２】
スライダ３３０の下端は、ハウジング５１の左画面から若干離間した係合片３３１が形成されており、この係合片３３１の裏側（図１に示すｘ軸負方向側）に、右コントローラ４が本体装置２と有線通信を行うための端子６４を備える。右コントローラ４が本体装置２に装着される場合には、この係合３３１片が右レール部材１９の下端に形成されたポケットに嵌って、端子６４が本体装置２の右側端子２１と接触する。端子６４および右側端子２１は、右コントローラ４が本体装置２に装着されたときに互いに接触する位置に設けられていればよく、その具体的な位置は任意である。本実施形態においては、上記のような配置により、右コントローラ４を本体装置２から取り外した状態でも、端子６２および左側端子２１が外側に露出しないようにしている。
【０１０３】
右コントローラ４の左側面（すなわち、右コントローラ４が本体装置２に装着されるときに本体装置２の左側面と相対する面）には、操作ボタン６５および６６が設けられる。また、通知用ＬＥＤ６７、ペアリングボタン６９が設けられる。操作ボタン６５および６６は、右コントローラ４を両手で持って操作する場合に、ＬボタンおよびＲボタンのようにして利用するボタンである。ペアリングボタン６９は、右コントローラ４を本体装置２から取り外して用いる場合に、本体装置２との無線通信のペアリングの実行を指示するためのボタンである。通知用ＬＥＤ６７は、４つのＬＥＤランプを含み、これらのＬＥＤランプの点灯、消灯の組み合わせによって、各種の情報、特に、右コントローラ４のステータス（状態）を表示する。たとえば、複数のプレイヤが左コントローラ３または右コントローラ４を１つずつ操作するゲームにおいて、当該コントローラが何番目のプレイヤに対応するかを示すことができる。
【０１０４】
なお、上記左コントローラ３および右コントローラ４において、ハウジング３１または５１に設けられる各構成要素（具体的には、スライダ、スティック、およびボタン等）の形状、数、および、設置位置は任意である。例えば、他の実施形態においては、左コントローラ３および右コントローラ４は、アナログスティックとは別の種類の方向操作部材を備えていてもよい。また、スライダ３１０または３３０は、本体装置２に設けられるレール部材１５または１９の位置に応じた位置に配置されてよく、例えば、ハウジング３１または５１の主面または裏面に配置されてもよい。また、他の実施形態においては、左コントローラ３および右コントローラ４は、上記各構成要素のうちいくつかを備えていない構成であってもよい。
【０１０５】
右コントローラ４の裏面（背面）には、ロック解除ボタン３３３が設けられる。右コントローラ４が本体装置２に装着されている状態で、このロック解除ボタン３３３を押すと、押している間は図２に示すように右コントローラ４を上向きにスライドさせることができ、これによって装着状態でロックされている右コントローラ４を本体装置２から離脱することができる。
【０１０６】
［クレードルの構成］
図７は、クレードル５の一例の外観構成を示す図である。クレードル５は、本体装置２を着脱可能に載置する（装着するとも言える）ことが可能なハウジングを有する。本実施形態においては、図７に示すように、ハウジングは、溝７１ａが形成される第１支持部７１と、略平面状の第２支持部７２とを有する。
【０１０７】
第１支持部７１に形成される溝７１ａは、上記一体型装置の下側部分の形状に応じた形状を有する。具体的には、溝７１ａは、上記一体型装置の下側部分を挿入可能な形状であり、より具体的には、上記本体装置２の下側部分と略一致する形状である。したがって、上記一体型装置の下側部分を溝７１ａに挿入することによって、上記一体型装置をクレードル５に載置することができる。
【０１０８】
また、第２支持部７２は、その下側部分が溝７１ａに挿入された上記一体型装置の表面（すなわち、ディスプレイ１２が設けられる面）を支持する。この第２支持部７２によって、クレードル５は、上記一体型装置をより安定的に支持することができる。なお、図７に示すハウジングの形状は一例であり、他の実施形態においては、クレードル５のハウジングは、上記本体装置２を載置することが可能な任意の形状であってよい。
【０１０９】
また、クレードル５は、クレードル５が上記一体型装置と通信を行うための本体端子７３を備える。図７に示すように、本体端子７３は、第１支持部７１に形成される溝７１ａの底面に設けられる。より具体的には、本体端子７３は、上記一体型装置がクレードル５に装着される場合に、本体装置２の下側端子２７が接触する位置に設けられる。本実施形態においては、本体端子７３は、ＵＳＢコネクタ（より具体的には、オス側コネクタ）である。
【０１１０】
図７では図示しないが、クレードル５は、ハウジングの背面に端子（本実施形態においては、複数の端子を有する。具体的には、クレードル５は、図１０に示すモニタ用端子１３２、電源端子１３４、および拡張用端子１３７）を有する。これらの端子の詳細については後述する。
【０１１１】
以上に説明した、クレードル５に設けられる各構成要素（具体的には、ハウジング、端子、ボタン等）の形状、数、および、設置位置は任意である。例えば、他の実施形態においては、ハウジングは、左コントローラ３および右コントローラ４が本体装置２に装着された一体型装置や本体装置２単体を支持可能な他の形状を有していてもよい。また、ハウジングに設けられる端子のいくつかは、ハウジングの前側の面に設けられてもよい。また、他の実施形態においては、クレードル５は、上記各構成要素のうちいくつかを備えていない構成であってもよい。
【０１１２】
［本体装置の内部構成］
図８は、本体装置２の内部構成の一例を示すブロック図である。本体装置２は、図３に示す構成の他、図８に示す各構成要素８１〜９８を備える。これらの構成要素８１〜９８のいくつかは、電子部品として電子回路基板上に実装されてハウジング１１内に収納されてもよい。
【０１１３】
本体装置２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）８１を備える。ＣＰＵ８１は、本体装置２において実行される各種の情報処理を実行する情報処理部である。ＣＰＵ８１は、記憶部（具体的には、フラッシュメモリ８４等の内部記憶媒体、あるいは、各スロット２３および２４に装着される外部記憶媒体等）に記憶される情報処理プログラムを実行することによって、各種の情報処理を実行する。
【０１１４】
本体装置２は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ８４およびＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８５を備える。フラッシュメモリ８４およびＤＲＡＭ８５は、ＣＰＵ８１に接続される。フラッシュメモリ８４は、主に、本体装置２に保存される各種のデータ（プログラムであってもよい）を記憶するために用いられるメモリである。ＤＲＡＭ８５は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【０１１５】
本体装置２は、第１スロットインターフェース（以下、「Ｉ／Ｆ」と略記する。）９１を備える。また、本体装置２は、第２スロットＩ／Ｆ９２を備える。第１スロットＩ／Ｆ９１および第２スロットＩ／Ｆ９２は、ＣＰＵ８１に接続される。第１スロットＩ／Ｆ９１は、第１スロット２３に接続され、第１スロット２３に装着された第１の種類の記憶媒体（例えば、ＳＤカード）に対するデータの読み出しおよび書き込みを、ＣＰＵ８１の指示に応じて行う。第２スロットＩ／Ｆ９２は、第２スロット２４に接続され、第２スロット２４に装着された第２の種類の記憶媒体（例えば、専用メモリカード）に対するデータの読み出しおよび書き込みを、ＣＰＵ８１の指示に応じて行う。
【０１１６】
ＣＰＵ８１は、フラッシュメモリ８４およびＤＲＡＭ８５、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【０１１７】
本体装置２は、ネットワーク通信部８２を備える。ネットワーク通信部８２は、ＣＰＵ８１に接続される。ネットワーク通信部８２は、ネットワークを介して外部の装置と通信（具体的には、無線通信）を行う。本実施形態においては、ネットワーク通信部８２は、第１の通信態様としてＷｉ−Ｆｉの規格に準拠した方式により、無線ＬＡＮに接続して外部装置と通信を行う。
【０１１８】
また、ネットワーク通信部８２は、第２の通信態様として所定の通信方式（例えば、独自プロトコルによる通信や、赤外線通信）により、同種の他の本体装置２との間で無線通信を行う。なお、上記第２の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置２との間で無線通信可能であり、複数の本体装置２の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【０１１９】
本体装置２は、コントローラ通信部８３を備える。コントローラ通信部８３は、ＣＰＵ８１に接続される。コントローラ通信部８３は、左コントローラ３および／または右コントローラ４と無線通信を行う。本体装置２と左コントローラ３および右コントローラ４との通信方式は任意であるが、本実施形態においては、コントローラ通信部８３は、左コントローラ３との間および右コントローラ４との間で、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信を行う。
【０１２０】
ＣＰＵ８１は、上述の左側端子１７、右側端子２１、および、下側端子２７に接続される。ＣＰＵ８１は、左コントローラ３と有線通信を行う場合、左側端子１７を介して左コントローラ３へデータを送信するとともに、左側端子１７を介して左コントローラ３から操作データを受信する。また、ＣＰＵ８１は、右コントローラ４と有線通信を行う場合、右側端子２１を介して右コントローラ４へデータを送信するとともに、右側端子２１を介して右コントローラ４から操作データを受信する。本体装置２においてコントローラから操作データを受信するための構成は操作データ取得部に相当する。また、ＣＰＵ８１は、クレードル５と通信を行う場合、下側端子２７を介してクレードル５へデータを送信する。
【０１２１】
このように、本実施形態においては、本体装置２は、左コントローラ３および右コントローラ４との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ３および右コントローラ４が本体装置２に装着された一体型装置がクレードル５に装着された場合、本体装置２は、クレードル５を介してデータ（例えば、画像データや音声データ）を据置型モニタ６に出力することができる。
【０１２２】
ここで、本体装置２は、複数の左コントローラ３と同時に（換言すれば、並行して）通信を行うことができる。また、本体装置２は、複数の右コントローラ４と同時に（換言すれば、並行して）通信を行うことができる。したがって、ユーザは、複数の左コントローラ３および複数の右コントローラ４を用いて本体装置２に対する入力を行うことができる。
【０１２３】
本体装置２は、タッチパネル１３の制御を行う回路であるタッチパネルコントローラ８６を備える。タッチパネルコントローラ８６は、タッチパネル１３とＣＰＵ８１との間に接続される。タッチパネルコントローラ８６は、タッチパネル１３からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、ＣＰＵ８１へ出力する。
【０１２４】
また、ディスプレイ１２は、ＣＰＵ８１に接続される。ＣＰＵ８１は、（例えば、上記の情報処理の実行によって）生成した画像および／または外部から取得した画像をディスプレイ１２に表示する。
【０１２５】
本体装置２は、コーデック回路８７およびスピーカ（具体的には、左スピーカおよび右スピーカ）８８を備える。コーデック回路８７は、スピーカ８８および音声入出力端子２５に接続されるとともに、ＣＰＵ８１に接続される。コーデック回路８７は、スピーカ８８および音声入出力端子２５に対する音声データの入出力を制御する回路である。すなわち、コーデック回路８７は、ＣＰＵ８１から音声データを受け取った場合、当該音声データに対してＤ／Ａ変換を行って得られる音声信号をスピーカ８８または音声入出力端子２５へ出力する。
【０１２６】
これによって、スピーカ８８あるいは音声入出力端子２５に接続された音声出力部（例えば、イヤホン）から音が出力される。また、コーデック回路８７は、音声入出力端子２５から音声信号を受け取った場合、音声信号に対してＡ／Ｄ変換を行い、所定の形式の音声データをＣＰＵ８１へ出力する。また、音量ボタン２６は、ＣＰＵ８１に接続される。ＣＰＵ８１は、音量ボタン２６に対する入力に基づいて、スピーカ８８または上記音声出力部から出力される音量を制御する。
【０１２７】
本体装置２は、加速度センサ８９を備える。加速度センサ８９は、本体装置２の加速度（重力加速度を含む）、すなわち、本体装置２に加わる力（重力を含む）を検出する。加速度センサ８９は、当該加速度センサ８９の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度（直線加速度）の値を検出する。
【０１２８】
本実施形態においては、加速度センサ８９は、所定の３軸（例えば、図１に示すｘｙｚ軸）方向に沿った直線加速度の大きさを検出する。加速度センサ８９として、３軸の加速度センサを用いてもよいし、２軸の加速度センサと１軸の加速度センサを組み合わせて用いてもよいし、３つの１軸の加速度センサを用いてもよい。例えば、２軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。また、加速度センサ８９は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。
【０１２９】
本体装置２は、角速度センサ９０を備える。本実施の形態の角速度センサ９０は、３軸（本実施形態では、図１に示すｘｙｚ軸）周りの角速度を検出し、検出した角速度を示すデータ（角速度データ）をＣＰＵ８１へ出力する。角速度センサ９０は、３軸ジャイロセンサであってもよいし、２軸以下のジャイロセンサの組み合わせで構成してもよい。
【０１３０】
具体的には、角速度センサ９０は、ｘ軸周りの（単位時間あたりの）角速度、ｙ軸周りの（単位時間あたりの）角速度およびｚ軸周りの（単位時間あたりの）角速度を検出する。なお、本明細書では、本体装置２のｚ軸正方向を基準として、ｘｙｚ軸周りの回転方向を、それぞれ、ロール方向、ピッチ方向、ヨー方向と呼ぶ。なお、加速度センサやジャイロセンサは、一般的に、慣性センサとも呼ばれる。
【０１３１】
本体装置２は、電力制御部９７およびバッテリ９８を備える。電力制御部９７は、バッテリ９８およびＣＰＵ８１に接続される。また、図示しないが、電力制御部９７は、本体装置２の各部（具体的には、バッテリ９８の電力の給電を受ける各部、左側端子１７、および右側端子２１）に接続される。電力制御部９７は、ＣＰＵ８１からの指令に基づいて、バッテリ９８から上記各部への電力供給を制御する。また、電力制御部９７は、電源ボタン２８に接続される。
【０１３２】
電力制御部９７は、電源ボタン２８に対する入力に基づいて、上記各部への電力供給を制御する。すなわち、電力制御部９７は、電源ボタン２８に対して電源をオフする操作が行われた場合、上記各部の全部または一部への電力供給を停止し、電源ボタン２８に対して電源をオンする操作が行われた場合、電力制御部９７は、上記各部の全部または一部への電力供給を開始する。また、電力制御部９７は、電源ボタン２８に対する入力を示す情報（具体的には、電源ボタン２８が押下されているか否かを示す情報）をＣＰＵ８１へ出力する。
【０１３３】
また、バッテリ９８は、下側端子２７に接続される。外部の充電装置（例えば、クレードル５）が下側端子２７に接続され、下側端子２７を介して本体装置２に電力が供給される場合、供給された電力がバッテリ９８に充電される。
【０１３４】
［左コントローラおよび右コントローラの内部構成］
図９は、左コントローラ３および右コントローラ４の内部構成の一例を示すブロック図である。なお、図９では、左コントローラ３および右コントローラ４とともにゲームシステム１を構成する本体装置２も示されているが、本体装置２に関する内部構成の詳細については、図８で示しているため図９では一部の構成を省略している。
【０１３５】
左コントローラ３は、本体装置２との間で通信を行う通信制御部１０１を備える。通信制御部１０１は、端子４２を含む各構成要素に接続される。本実施形態においては、通信制御部１０１は、端子４２を介した有線通信と、端子４２を介さない無線通信との両方で本体装置２と通信を行うことが可能である。
【０１３６】
通信制御部１０１は、左コントローラ３が本体装置２に対して行う通信方法を制御する。すなわち、左コントローラ３が本体装置２に装着されている場合、通信制御部１０１は、端子４２を介して本体装置２と通信を行う。また、左コントローラ３が本体装置２から外されている場合、通信制御部１０１は、本体装置２（具体的には、コントローラ通信部８３）との間で無線通信を行う。コントローラ通信部８３と通信制御部１０１との間の無線通信は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）の規格に従って行われる。
【０１３７】
また、左コントローラ３は、例えばフラッシュメモリ等のメモリ１０２を備える。通信制御部１０１は、例えばマイコン（マイクロプロセッサとも言う）で構成され、メモリ１０２に記憶されるファームウェアを実行することによって各種の処理を実行する。
【０１３８】
左コントローラ３は、各ボタン１０３（具体的には、ボタン３３〜３９，４３，および４４）を備える。また、左コントローラ３は、アナログスティック（図９では「スティック」と記載する）３２を備える。各ボタン１０３およびアナログスティック３２は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部１０１へ出力する。
【０１３９】
左コントローラ３は、加速度センサ１０４を備える。加速度センサ１０４は、左コントローラ３の加速度（重力加速度を含む）、すなわち、左コントローラ３に加わる力（重力を含む）を検出する。加速度センサ１０４は、当該加速度センサ１０４の検出部に加わっている加速度のうち、センシング軸方向に沿った直線方向の加速度（直線加速度）の値を検出する。
【０１４０】
本実施形態においては、加速度センサ１０４は、所定の３軸（例えば、図１に示すｘｙｚ軸）方向に沿った直線加速度の大きさを検出する。加速度センサ１０４として、３軸の加速度センサを用いてもよいし、２軸の加速度センサと１軸の加速度センサを組み合わせて用いてもよいし、３つの１軸の加速度センサを用いてもよい。例えば、２軸以上の多軸加速度センサの場合には、加速度センサの検出部に加わっている加速度として、各軸に沿った成分の加速度をそれぞれ検出する。また、加速度センサ１０４は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。
【０１４１】
上述のように、加速度センサ１０４は、各軸に沿った直線方向に関する加速度を検出するものであるため、加速度センサ１０４からの出力は３軸それぞれの直線加速度の値を表すものとなる。すなわち、検出された加速度は、左コントローラ３を基準に設定されるｘｙｚ座標系（コントローラ座標系）における３次元のベクトル（ａｘ，ａｙ，ａｚ）として表される。以下では、加速度センサ１０４によって検出される３軸に関する各加速度値を各成分とするベクトルを加速度ベクトルと呼ぶ。加速度センサ１０４が検出した加速度（加速度ベクトル）を示すデータ（加速度データ）は、通信部制御部１０１へ出力される。
【０１４２】
また、左コントローラ３は、角速度センサ１０５を備える。本実施の形態の角速度センサ１０５は、３軸（本実施形態では、図１に示すｘｙｚ軸）周りの角速度を検出し、検出した角速度を示すデータ（角速度データ）を通信制御部１０１に出力する。角速度センサ１０５は、３軸ジャイロセンサであってもよいし、２軸以下のジャイロセンサの組み合わせで構成してもよい。
【０１４３】
具体的には、角速度センサ１０５は、ｘ軸周りの（単位時間あたりの）角速度、ｙ軸周りの（単位時間あたりの）角速度およびｚ軸周りの（単位時間あたりの）角速度を検出する。なお、本明細書では、左コントローラ３のｚ軸正方向を基準として、ｘｙｚ軸周りの回転方向を、それぞれ、ロール方向、ピッチ方向、ヨー方向と呼ぶ。なお、加速度センサ１０４及び角速度センサ１０５も慣性センサに該当する。
【０１４４】
なお、本実施形態では、後述する姿勢算出処理における計算を容易にする目的で、角速度センサ１０５が角速度を検出する３つの軸は、加速度センサ１０４が加速度を検出する３つの軸（ｘｙｚ軸）と一致するように設定される。ただし、他の実施形態においては、角速度センサ１０５が角速度を検出する３つの軸と、加速度センサ１０４が加速度を検出する３つの軸とは一致しなくてもよい。
【０１４５】
加速度センサ１０４および角速度センサ１０５は、それぞれ通信制御部１０１に接続される。加速度センサ１０４で検出された各軸の加速度を示すデータ（加速度データ）および各角速度センサ１０５で検出された各軸の角速度を示すデータ（角速度データ）は、それぞれ通信制御部１０１に出力される。したがって、通信制御部１０１には、各軸の加速度データおよび各軸の角速度データが入力されることになる。
【０１４６】
通信制御部１０１は、各操作部材（具体的には、各ボタン１０３、アナログスティック３２）から、当該操作部材に対する操作に関する情報を取得し、慣性センサ（具体的には、加速度センサ１０４および角速度センサ１０５）から左コントローラ３自体の動きに関する情報を取得する。通信制御部１０１は、取得した情報（または取得した情報に所定の加工を行った情報）を含む操作データを本体装置２へ送信する。すなわち、通信制御部１０１から本体装置２に送信される操作データには、加速度データおよび角速度データが含まれる。
【０１４７】
操作データは、所定時間に１回の割合で繰り返し送信される。なお、操作データが本体装置２へ送信される間隔は、各操作部材および各慣性センサについて同じであってもよいし、同じでなくてもよいが、ゲームの処理は１／６０秒を単位として（１フレーム時間として）行われることが一般的であるので、この時間以下の周期で送信を行うことが好ましい。
【０１４８】
操作データが本体装置２へ送信されることによって、本体装置２は、左コントローラ３に対して行われた入力（操作部材に対する操作および左コントローラ３自体を動かすことによる操作）を得ることができる。すなわち、本体装置２は、各ボタン１０３およびアナログスティック３２に対する操作を、操作データに基づいて判別することができる。また、本体装置２は、左コントローラ３の動きおよび／または姿勢に関する情報を、加速度データおよび角速度データに基づいて算出することができる。
【０１４９】
左コントローラ３は、通知用ＬＥＤ４５を備える。通知用ＬＥＤ４５は図４に示したように、４つのＬＥＤランプからなる。通知用ＬＥＤ４５は通信制御部１０１に制御され、主に、４つのＬＥＤランプの点灯、消灯の組み合わせによって左コントローラ３のステータスを表現する。
【０１５０】
左コントローラ３は、振動によってユーザに通知を行うための振動子１０７を備える。本実施形態においては、振動子１０７は、本体装置２からの指令によって制御される。すなわち、通信制御部１０１は、本体装置２からの上記指令を受け取ると、当該指令に従って振動子１０７を駆動させる。ここで、左コントローラ３は、増幅器１０６を備える。通信制御部１０１は、上記指令を受け取ると、指令に応じた制御信号を増幅器１０６へ出力する。増幅器１０６は、通信制御部１０１からの制御信号を増幅して、振動子１０７を駆動させるための駆動信号を生成して振動子１０７へ与える。これによって振動子１０７が動作する。
【０１５１】
左コントローラ３は、電力供給部１０８を備える。本実施形態において、電力供給部１０８は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ３の各部（具体的には、バッテリの電力の給電を受ける各部）に接続される。電力制御回路は、バッテリから上記各部への電力供給を制御する。また、バッテリは、端子４２に接続される。本実施形態においては、左コントローラ３が本体装置２に装着される場合、所定の条件下で、バッテリは、端子４２を介して本体装置２からの給電によって充電される。
【０１５２】
図９に示すように、右コントローラ４は、本体装置２との間で通信を行う通信制御部１１１を備える。また、右コントローラ４は、通信制御部１１１に接続されるメモリ１１２を備える。通信制御部１１１は、端子６４を含む各構成要素に接続される。通信制御部１１１およびメモリ１１２は、左コントローラ３の通信制御部１０１およびメモリ１０２と同様の機能を有する。したがって、通信制御部１１１は、端子６４を介した有線通信と、端子６４を介さない無線通信（具体的には、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信）との両方で本体装置２と通信を行うことが可能であり、右コントローラ４が本体装置２に対して行う通信方法を制御する。
【０１５３】
右コントローラ４は、左コントローラ３の各操作部材と同様の各操作部材（具体的には、各ボタン１１３、アナログスティック５２）および、左コントローラ３の各慣性センサと同様の各慣性センサ（具体的には、加速度センサ１１４および角速度センサ１１５）を備える。これらの各操作部材および各慣性センサについては、左コントローラ３の各入力部と同様の機能を有し、同様に動作する。
【０１５４】
また、右コントローラ４は、振動子１１７および増幅器１１６を備える。振動子１１７および増幅器１１６は、左コントローラ３の振動子１０７および増幅器１０６と同様に動作する。すなわち、通信制御部１１１は、本体装置２からの指令に従って、増幅器１１６を用いて振動子１１７を動作させる。
【０１５５】
右コントローラ４は、電力供給部１１８を備える。電力供給部１１８は、左コントローラ３の電力供給部１０８と同様の機能を有し、同様に動作する。すなわち、電力供給部１１８は、バッテリから給電を受ける各部への電力供給を制御する。また、右コントローラ４が本体装置２に装着される場合、所定の条件下で、バッテリは、端子６４を介して本体装置２からの給電によって充電される。
【０１５６】
右コントローラ４は、処理部１２１を備える。処理部１２１は、通信制御部１１１に接続されるとともに、ＮＦＣ通信部１２２に接続される。処理部１２１は、本体装置２からの指令に応じて、ＮＦＣ通信部１２２に対する管理処理を実行する。例えば、処理部１２１は、本体装置２からの指令に応じてＮＦＣ通信部１２２の動作を制御する。また、処理部１２１は、ＮＦＣ通信部１２２の起動を制御したり、通信相手（例えば、ＮＦＣタグ）に対するＮＦＣ通信部１２２の動作（具体的には、読み出しおよび書き込み等）を制御したりする。
【０１５７】
また、処理部１２１は、通信制御部１１１を介して上記通信相手に送信されるべき情報を本体装置２から受信してＮＦＣ通信部１２２へ渡したり、上記通信相手から受信された情報をＮＦＣ通信部１２２から取得して通信制御部１１１を介して本体装置２へ送信したりする。また、処理部１２１は、本体装置２からの指令に応じて、赤外撮像部１２３に対する管理処理を実行する。例えば、処理部１２１は、赤外撮像部１２３に撮像動作を行わせたり、撮像結果に基づく情報（撮像画像の情報、あるいは、当該情報から算出される情報等）を取得して、通信制御部１１１を介して本体装置２へ送信したりする。
【０１５８】
［クレードルの内部構成］
図１０は、クレードル５の内部構成の一例を示すブロック図である。なお、図１０において、本体装置２に関する内部構成の詳細については、図８で示しているので省略している。図１０に示すように、クレードル５は、変換部１３１およびモニタ用端子１３２を備える。変換部１３１は、本体端子７３およびモニタ用端子１３２と接続される。変換部１３１は、本体装置２から受信した画像（映像とも言える）および音声に関する信号の形式を、据置型モニタ６へ出力する形式へと変換する。
【０１５９】
ここで、本実施形態においては、本体装置２は、ディスプレイポート信号（すなわち、ＤｉｓｐｌａｙＰｏｒｔの規格に従った信号）として画像および音声の信号をクレードル５へ出力する。また、本実施形態においては、クレードル５と据置型モニタ６との間の通信は、ＨＤＭＩ（登録商標）の規格に基づく通信が用いられる。すなわち、モニタ用端子１３２は、ＨＤＭＩ端子であり、クレードル５と据置型モニタ６とがＨＤＭＩケーブルによって接続される。そして、変換部１３１は、本体装置２から本体端子７３を介して受信されるディスプレイポート信号（具体的には、映像および音声を表す信号）を、ＨＤＭＩ信号へ変換する。変換されたＨＤＭＩ信号は、モニタ用端子１３２を介して据置型モニタ６へ出力される。
【０１６０】
クレードル５は、電力制御部１３３および電源端子１３４を備える。電源端子１３４は、図示しない充電装置（例えば、ＡＣアダプタ等）を接続するための端子である。本実施形態においては、電源端子１３４にＡＣアダプタが接続されており、クレードル５には商用電源が供給されているものとする。電力制御部１３３は、クレードル５に対して本体装置２が装着された場合、本体端子７３を介して電源端子１３４からの電力を本体装置２へ供給する。これによって、本体装置２のバッテリ９８が充電される。
【０１６１】
また、クレードル５は、接続処理部１３６および拡張用端子１３７を備える。拡張用端子１３７は、他の装置を接続するための端子である。本実施形態においては、クレードル５は、拡張用端子１３７として、複数（より具体的には３つ）のＵＳＢ端子を備える。接続処理部１３６は、本体端子７３および各拡張用端子１３７に接続される。接続処理部１３６は、ＵＳＢハブとしての機能を有し、例えば、拡張用端子１３７に接続された装置と、本体端子７３に接続された本体装置２との間の通信を管理する（すなわち、ある装置からの信号を他の装置へ適宜分配して送信する）。上記のように、本実施形態においては、ゲームシステム１は、クレードル５を介して他の装置との通信を行うことが可能である。なお、接続処理部１３６は、通信速度を変換したり、拡張用端子１３７に接続された装置に対する電力供給を行ったりすることが可能であってもよい。
【０１６２】
［利用態様］
以上に説明したように、本実施形態におけるゲームシステム１については左コントローラ３および右コントローラ４が本体装置２から着脱可能である。また、クレードル５に左コントローラ３および右コントローラ４が本体装置２に装着された一体型装置や本体装置２単体を装着することによって据置型モニタ６に画像（および音声）を出力可能である。したがって、以下に説明するような種々の利用態様でゲームシステム１を利用することができる。
【０１６３】
図１１は、左コントローラ３および右コントローラ４を本体装置２に装着して、ゲームシステム１を一体型装置として利用する様子の一例を示す図である。図１１に示すように、ユーザは、左コントローラ３を左手で把持し、右コントローラ４を右手で把持する。そうすると、左手と右手の間に本体装置２が位置して、ユーザは、ディスプレイ１２を正面に見ることができる。このとき、典型的には、ユーザは、左手の親指で左コントローラ３のアナログスティック３２を操作し、右手の親指で右コントローラ４の４つの操作ボタン５３〜５６を操作する。
【０１６４】
この利用態様では、左コントローラ３のアナログスティック３２等への操作は、操作データとして、端子４２および左側端子１７を介して本体装置２に送信され、右コントローラ４の操作ボタン５３〜５６等への操作は、操作データとして、端子６４および右側端子２１を介して本体装置に送信される。
【０１６５】
また、この利用態様では、本体装置２と左コントローラ３と右コントローラ４とが一体となった一体型装置の加速度および角速度を算出して操作データとしてＣＰＵ８１に入力することができる。この場合に、上述のように、本体装置２、左コントローラ３、および右コントローラ４がいずれも加速度センサおよび角速度センサを備えているので、例えば本体装置２の加速度センサ８９で検出された加速度、および角速度センサ９０で検出された角速度を、この一体型装置の加速度および角速度としてよい。他の実施の形態では、加速度センサ８９および角速度センサ９０に代えて、または加えて、左コントローラ３の加速度センサ１０４および角速度センサ１０５、および／または、右コントローラ４の加速度センサ１１４および角速度センサ１１５を用いて、それらの検出値に基づいて一体型装置の加速度や姿勢を算出してもよい。このように左コントローラ３および右コントローラ４を本体装置２に装着して利用される場合、ゲームシステム１は携帯型ゲーム装置として利用することができる。
【０１６６】
上述のように、本実施形態においては、左コントローラ３および右コントローラ４を本体装置２から外した状態（「離脱状態」と呼ぶ）でゲームシステム１を利用することも可能である。離脱状態でゲームシステム１を利用してアプリケーション（例えば、ゲームアプリケーション）に対する操作を行う場合の態様としては、１人のユーザが左コントローラ３および右コントローラ４の一方または両方を用いる態様が考えられる。また、２人のユーザがコントローラを１つずつ用いる態様が考えられる。
【０１６７】
図１２は、離脱状態において、２人のユーザが１つずつコントローラを把持してゲームシステム１を利用する様子の一例を示す図である。図１２に示すように、離脱状態においては、２人のユーザが操作を行うことが可能であり、具体的には、一方のユーザが左コントローラ３を用いて操作を行うとともに、他方のユーザが右コントローラ４を用いて操作を行うことが可能である。ゲームシステム１は、例えば、左コントローラ３に対する操作に基づいて仮想空間における第１のオブジェクト（例えばプレイヤキャラクタ）の動作を制御し、右コントローラ４に対する操作に基づいて同じ仮想空間における第２のオブジェクトの動作を制御する情報処理を実行する。
【０１６８】
各ユーザは、左コントローラ３および右コントローラ４の一方を、左右の手または片手で把持して操作を行いながら、本体装置２のディスプレイ１２に表示された画像を見ることができる。なお、図１２に示す態様においても図１１に示す態様と同様、第１のユーザおよび第２のユーザは、それぞれコントローラが備える操作部材に対する操作、および／または、コントローラ自体を動かす操作が可能である。これらの操作を示す操作データは、左コントローラ３および右コントローラ４のそれぞれから本体装置２に無線通信を利用して送信される。
【０１６９】
特に、左コントローラ３の加速度センサ１０４および角速度センサ１０５で検出された加速度および角速度を示す加速度データおよび角速度データは、無線通信によって本体装置２に送信され、右コントローラ４の加速度センサ１１４および角速度センサ１１５で検出された加速度および角速度を示す加速度データおよび角速度データは、無線通信によって本体装置２に送信される。左コントローラ３と右コントローラ４とは、本体装置２から離脱しているので、互いに独立して加速度および角速度が与えられるため、左コントローラ３と右コントローラ４の各々の加速度データおよび角速度データは、それぞれ本体装置２に送信される。
【０１７０】
図１３は、離脱状態において、１人のユーザが２つのコントローラを把持してゲームシステム１を利用する様子の一例を示す図である。図１３に示すように、離脱状態において１人のユーザが２つのコントローラを利用する場合は、典型的には、左コントローラ３を左手に把持し、右コントローラ４を右手に把持する。この利用態様では、図１１に示した利用態様と同様に、ユーザは、左手で左コントローラ３のアナログスティック３２を操作し、右手で右コントローラ４の操作ボタン５３〜５６を操作することができる。
【０１７１】
また、この利用態様では、左コントローラ３および右コントローラ４自体をそれぞれ独立して動かすことができるので、図１２に示した利用態様と同様に、左コントローラ３と右コントローラ４の各々の加速度データおよび角速度データは、それぞれ本体装置２に送信される。このように左コントローラ３および右コントローラ４を分離し、かつ本体装置２のディスプレイ１２を利用する場合には、ゲームシステム１は、携帯可能な構成でありながら、（ディスプレイを動かすことなく）コントローラを動かすゲームや、ディスプレイ１２から離れた場所でユーザが操作を行うゲームが可能なゲーム装置を提供することができる。
【０１７２】
図１４は、離脱状態において、１人のユーザが２つのコントローラを把持してゲームシステム１を利用する様子の他の例を示す図である。図１５に示すように、離脱状態においては、本体装置２をクレードル５に載置して、クレードル５を据置型モニタ６に接続して、ユーザが据置型モニタ６の画面を見ながらゲームを行うことができる。このようにして外部表示装置を利用する場合、ゲームシステム１は従来の据置型のゲーム装置と同様に利用することができる。
【０１７３】
右コントローラ４におけるアナログスティック５２と各操作ボタン５３〜５６との位置関係は、図２のように縦長に配置した場合において、左コントローラ３におけるこれら２種類の操作部の位置関係とは反対になっている。したがって、図１２に示すように、２人のユーザが左コントローラ３と右コントローラ４とを横長になる向きで把持した場合、上記２種類の操作部の位置関係は、２つのコントローラで同じになる。つまり、本実施形態においては、ユーザは、上記２種類の操作部に関して、本体装置２から外した左コントローラ３と右コントローラ４とを同じような操作感覚で使用することができる。これによって、コントローラの操作性を向上させることができる。
【０１７４】
また、図１３および図１４に示すように、１人のユーザが左手で左コントローラ３を把持し、右手で右コントローラ４を把持する場合は、右コントローラ４において左コントローラ３のアナログスティック３２が配置されている位置に対応する位置に操作ボタン５３〜５６が配置されている。これらの位置は、左手で左コントローラ３を把持し、右手で右コントローラ４を把持したときに、親指で操作するのに操作し易い位置であり、ユーザは、左手で左コントローラ３のアナログスティック３２を操作し、右手で右コントローラ４の操作ボタン５３〜５６を操作できる。
【０１７５】
また、離脱状態においては、本体装置２と左コントローラ３および右コントローラ４との通信は、無線通信によって行われる。すなわち、本体装置２は、自身との無線通信が確立した（ペアリングが行われた）左コントローラ３および／または右コントローラ４から操作データを受信して、受信された操作データに基づいて（具体的には、操作データを入力として用いて）情報処理を実行する。
【０１７６】
また、本実施形態においては、本体装置２は、複数の左コントローラ３と通信可能である。また、本体装置２は、複数の右コントローラ４と通信可能である。したがって、３つ以上のコントローラを同時に用いることが可能である。
【０１７７】
［情報処理］
次に、本発明の実施形態の一例の情報処理について説明する。本実施の形態のゲームシステム１では、コントローラ（左コントローラ３および右コントローラ４）に入力されたユーザの操作（コントローラ自体を動かす操作も含む）に基づいて、本体装置２に記憶されたプログラムに従ってゲーム処理を含む情報処理が行われ、本体装置２に記憶された各種のデータを用いて情報処理の結果が画像データ、音声データ等として生成されて、ディスプレイ１２やスピーカ８８から出力される。
【０１７８】
以下では、コントローラが離脱状態で利用される場合の情報処理について説明する。コントローラ自体がユーザによって動かされると、コントローラにおいて加速度データや角速度データが生成される。コントローラで生成された加速度データや角速度データは、操作データとして本体装置２に送信される。本体装置２では、コントローラの加速度データおよび角速度データに基づいて、プログラムに従った情報処理（ゲーム処理）を行い、その結果を出力する。
【０１７９】
本実施の形態では、特に、図１３や図１４に示すように、左コントローラ３および右コントローラ４が１人のユーザの左右の手にそれぞれ把持して利用する場合の情報処理について説明する。なお、図１２に示すように、２人のユーザの一方が左コントローラ３を利用し、他方が右コントローラ４を利用する２人プレイの場合にも応用でき、さらに、３人以上のユーザが各々左コントローラ３または右コントローラ４を利用する場合にも応用できる。
【０１８０】
本実施形態においては、コントローラが備える加速度センサおよび／または角速度センサの検出結果に基づいて、コントローラの動きおよび／または姿勢に関する情報を算出可能である。したがって、ゲームシステム１は、コントローラ自体を動かす操作を入力として受け付けることができる。ユーザは、コントローラが備える操作部材に対する操作だけでなく、コントローラ自体を動かす操作を行うことができる。
【０１８１】
本実施の形態では、本体装置２は、左コントローラ３および右コントローラ４の各々から加速度データおよび角速度データを受信して、それらのデータに基づいて、左コントローラ３および右コントローラ４に対してユーザが振り入力動作を行ったことを判定する。本実施の形態では、振り入力動作には、左コントローラ３および右コントローラ４の一方のみを振る片手振りと、左コントローラ３と右コントローラ４を同時に振り同時振りとがあり、本体装置２は片手振りであるか同時振りであるかを判定する。
【０１８２】
また、本体装置２は、左コントローラ３および右コントローラ４の各々について、振り入力動作の方向（振り方向）を判定する。上述のように、左コントローラ３および右コントローラ４には、それぞれ３軸方向に沿った直線加速度の大きさを検出する加速度センサ１０４および１１４、および３軸周りの角速度の大きさ検出する角速度センサ１０５および１１５が備えられるので、本体装置２は、任意の方向の振り入力動作を判定することができる。
【０１８３】
なお、本体装置２が左コントローラ３および右コントローラ４から取得できるのは、各センサに設定された座標系についての３軸方向の加速度および３軸周りの角速度である。コントローラの姿勢を考慮しない場合には、振り方向はセンサから見た方向、すなわちコントローラから見た方向しか判定できず、厳密にはユーザから見た振り方向の判定ではない。例えば、ユーザがコントローラを把持したときのコントローラの姿勢が傾いているような場合には、ユーザ横方向に振る動作をしても本体装置２は縦方向に振ったと判定してしまうこともあり得る。
【０１８４】
本体装置２において、これらの振り入力動作をいずれもユーザを基準とした方向の振り入力として判定するためには、本体装置２において左コントローラ３および右コントローラ４の姿勢を考慮した振り方向の判定をする必要がある。したがって、まず、本体装置２における、姿勢を考慮した振り方向の判定をする処理について説明する。
【０１８５】
（振り方向判定）
以下では、振り方向判定処理を行うＣＰＵ８１を振り方向判定部８１という。また、以下では、左コントローラ３を例に姿勢を考慮した振り方向の判定処理を説明するが、右コントローラ４においても同様の振り方向判定を行うことができる。
【０１８６】
振り方向判定部８１はまず、左コントローラ３の姿勢を算出する。左コントローラ３の姿勢は、基準となる姿勢からの回転として表すことができる。左コントローラ３は、３軸周りの角速度を検出する角速度センサ１０５を備えている。角速度センサ１０５は、角度（姿勢）の変化を検出するものであるので、原理的には、左コントローラ３が既知の姿勢にある時点から現在までの角速度データ（姿勢の変化）を積分（蓄積）することで、左コントローラ３の現在の姿勢を求めることができる。ただし、ジャイロセンサからの出力にはドリフト等による誤差が含まれることが知られており、誤差を含むデータを積分すると、短時間であれば誤差は少ないものの、時間と共に誤差が蓄積し、姿勢の誤差が拡大することになるという問題がある。
【０１８７】
一方、左コントローラ３は３軸方向の加速度を検出する加速度センサ１０４を備えている。加速度センサ１０４は、重力加速度を含む加速度を検出する。したがって、左コントローラ３が静止している場合には、加速度センサ１０４で検出される加速度は重力加速度のみとなり、このときの加速度の方向は加速度センサ１０４から見た重力方向を示すことになる。したがって、加速度センサ１０４の座標系において設定される、基準状態における下方向とこのときの加速度方向の差は、静止している左コントローラ３の重力方向に対する傾きを表している。よって、左コントローラ３の姿勢は、重力方向を軸とした回転以外の成分については、静止時の加速度データから求めることができる。ただし、左コントローラ３が静止している場合または等速直線運動をしている場合以外では、加速度データに重力加速度以外の成分が含まれることになるため、正確な姿勢を算出することはできないという問題がある。
【０１８８】
そこで、本実施の形態では、1回の処理毎（典型的には1フレームの処理内）に、角速度データが示す角速度による回転を加えることで既知の姿勢からの姿勢変化を求めて現在の姿勢を求めつつ、そのようにして求められる姿勢を加速度に基づいて補正する処理を行う。具体的には、角速度データに基づいて算出された姿勢を、加速度に基づいて算出された姿勢に所定の度合で近づける補正処理を行う。そのような補正処理を毎回行うことによって、長期的には基準状態における左コントローラ３の下方向が実際の重力方向に近づいていくことになる。一方、左コントローラ３が動いている期間においては、加速度によって算出される姿勢の信頼度は低いが、１回の処理による補正処理の影響は少なく、一方で前回の姿勢が正しければ、角速度によって短期間内に更新される姿勢の誤差は少なくいため、短期間であれば姿勢全体の誤差は大きくならずに済む。したがって、常に誤差を小さく維持しつつ姿勢を算出し続けることができる。さらに、加速度の大きさが重力加速度の大きさに近い場合の方が静止している可能性が高いため、加速度の大きさが１Ｇの大きさに近いほど当該補正処理によって近づける割合を高くしてもよい。上述のような処理を行うことで、左コントローラ３の姿勢を少ない誤差で算出することができる。
【０１８９】
左コントローラ３の姿勢が算出されると、振り方向判定部８１は、角速度センサ１０５から得られる角速度データが示す３軸周りの角速度を、重力方向を基準とする座標系における角速度に変換して、変換角速度を算出する。つまり、角速度データが示す３軸周りの角速度は、左コントローラ３から見た角速度であり、一方、左コントローラ３の重力方向を基準とする座標系における姿勢を上述のように算出できるので、重力方向を基準とする座標系における角速度を算出することができる。振り入力が判定されたときには左コントローラ３に角速度が加えられているはずであり、振り方向判定部８１はこの変換角速度を用いて振り方向を判定することができる。すなわち、振り方向がユーザから見て左右方向であるか、上下方向であるかを判定できる。このことは、言い換えれば、振り方向判定部８１が、ある時点で求められた重力方向を基準として、その重力方向からの角度変化に基づいて振り方向を判定しているということである。
【０１９０】
（振り入力判定）
次に、ＣＰＵ８１にてコントローラに振り入力が行われたことの判定をするための処理について説明する。以下では、振り入力が行われたことの判定（振り入力判定）をするＣＰＵ８１を振り入力判定部８１という。以下では、左コントローラ３を例に振り入力判定の処理を説明するが、右コントローラ４においても同様の振り入力判定を行うことができる。
【０１９１】
振り入力判定部８１は、左コントローラ３の加速度センサ１０４で得られた加速度データに基づいて、左コントローラ３に対して振り入力が行われたことを判定する。図１５は、振り入力判定部８１による振り入力判定処理のフローチャートである。また、図１６は、左コントローラ３の加速度（生データ）、加速度の移動平均、及び加速度の変化の一例をそれぞれ示すグラフである。なお、図１６では、各グラフの右側が過去の値を示しており、グラフの左端が現在の値を示している。
【０１９２】
振り入力判定部８１は、左コントローラ３から得られた加速度データが示す加速度の大きさ（生データ）について、現在および過去の所定フレーム数の平均をとることにより加速度の大きさの移動平均を計算する。この移動平均を各フレームについて算出することにより、図１６上段のグラフに示す加速度（生データ）における急激な変化が緩和されて、図１６中段のグラフに示すように、滑らかに変化する加速度（移動平均）が得られる。
【０１９３】
また、振り入力判定部８１は、加速度（移動平均）の変化（以下、「加速度変化」という。）をフレームごとに算出する。図１６下段のグラフで示すような加速度変化は、図１６中段のグラフで示すような加速度（移動平均）を微分することで算出してもよいし、単位時間内の差分によって算出してもよい。振り入力判定部８１は、図１６中段のグラフに例示する加速度（移動平均）と図１６下段のグラフに例示する加速度変化を用いて、左コントローラ３の振り入力判定を行う。
【０１９４】
まず、振り入力判定部８１は、加速度変化が第１の閾値以上であるか否かを判断する（ステップＳ１５１）。加速度変化が第１の閾値以上となるまでこの処理を繰り返し（ステップＳ１５１にてＮＯ）、加速度変化が第１の閾値以上になると（図１６（ｃ）の時刻ｔ１）（ステップＳ１５１にてＹＥＳ）、振り入力の兆候がある状態（以下、「振り兆候状態」という。）であると判断して、振り兆候フラグを立てる（「１」にする）（ステップＳ１５２）。
【０１９５】
振り兆候状態（振り兆候フラグが立った状態）では、振り入力判定部８１は、加速度の大きさが第２の閾値以上であるか否かを判断する（ステップＳ１５３）。振り入力判定部８１は、加速度の大きさが第２の閾値未満である場合は（ステップＳ１５３にてＮＯ）、加速度変化が第１の閾値未満に戻っていないかを判断し（ステップＳ１５４）、加速度変化が依然として第１の閾値以上である場合は（ステップＳ１５４にてＹＥＳ）、振り兆候状態を維持してステップＳ１５３に戻って、加速度の大きさが第２の閾値以上であるか否かを判断する。なお、加速度の大きさが第２の閾値以上になる前に加速度変化が第１の閾値未満に戻った場合には（ステップＳ１５４にてＮＯ）、振り兆候状態を解除して（振り兆候フラグを「０」にして）（ステップＳ１５５）、ステップＳ１５１に戻り、再び加速度変化が第１閾値を超えるか否かを判断する。
【０１９６】
振り兆候状態で加速度が第２の閾値以上となった場合は（図１６（ｂ）の時刻ｔ２）（ステップＳ１５３にてＹＥＳ）、振り状態になったと判断して、振り状態フラグを立てる（「１」にする）（ステップＳ１５６）。振り状態になると、振り入力判定部８１は、再び加速度変化に着目し、加速度変化が０になったか否かを判断する（ステップＳ１５７）。振り入力判定部８１は、加速度変化が０になるのを待って（ステップＳ１５６にてＮＯ）、加速度変化が０になったタイミングで（図１６（ｃ）の時刻ｔ３）（ステップＳ１５７にてＹＥＳ）、振り入力動作が行われたと判定する（ステップＳ１５８）。
【０１９７】
なお、振り状態になった後に加速度変化が０になる（ステップＳ１５３にてＹＥＳの後にステップＳ１５７にてＹＥＳ）ということは、図１６（ｂ）および図１６（ｃ）から明らかなように、加速度の大きさが第２の閾値以上となった後にピークに達することを意味する。すなわち、振り入力判定部８１は、加速度の大きさが第２の閾値を超えた後に、最大となったタイミングで振り入力判定を行う。ユーザが、腕の動きとともに手首のスナップの利かせるようにして振り入力動作を行った場合には、スナップの最も強いタイミングで、振り入力判定部８１が振り入力判定を行うことになる。このような判定タイミングは、ユーザにとっては、あたかもそのスナップ動作で物を投げたときに物をリリースする瞬間に振り入力判定が行われることになり、ゲーム処理として、例えば振り入力判定に対応して物を投げる動作をプレイヤキャラクタにさせる場合には、ユーザが実際にその物を投げたような感覚が得られる。
【０１９８】
なお、上記の例では、振り入力判定部８１は、まず左コントローラ３から得た加速度データが示す加速度（生データ）の大きさの移動平均をとって、移動平均の変化が第１の閾値以上であるか（ステップＳ１５１）、移動平均が第２の閾値以上となるか（ステップＳ１５４）、移動平均の変化が０になるか（ステップＳ１５６）等の判断を行ったが、移動平均を算出せずに、左コントローラ３から得た生データをそのまま用いて上記の各判断を行ってもよい。また、上記の例では、加速度変化が０になるタイミングで振り入力判定を行ったが、振り入力判定を行うタイミングはこれに限られず、例えば、加速度変化が０に近い第３の閾値以下となったときに、振り入力判定を行ってよい。たとえば、処理される加速度データは実際にはデジタル値であり、処理を行う間隔も離散的な値であるので、処理の方法によっては加速度変化が０になるタイミングを過ぎてしまう場合もあり、そのような誤差を考慮した判定を行ってもよい。もしくは、そのように０を過ぎたと判定された時点を０になるタイミングとしてもよい。
【０１９９】
なお、振り方向の判定は、ステップＳ１５８にて振り入力判定をした後に行ってよく、振り入力判定と並行しておこなってもよい。振り入力に対応するゲーム処理が特定の振り方向のみに対応しており、振り方向によっては振り入力があっても何ら対応するゲーム処理をしない（そのようなゲーム処理が設定されていない）場合には、上記の振り兆候状態の判断（ステップＳ１５１）、振り状態の判断（ステップＳ１５４）等のタイミングで振り方向を判定して、振り方向が、ゲーム処理に対応する方向でなかった場合に、振り入力判定を終了するようにしてよい。
【０２００】
また、上記の例では、振り入力判定部８１は、振り兆候状態で加速度が第２の閾値以上となることを振り状態と判断するための条件とした。これにより、加速度変化によって振り兆候を判断した上で振り状態の判断をすることで、加速度が緩やかに増大して第２の閾値を超える場合を振り状態と認定しないようにできる。これに代えて、振り入力判定部８１は、単に加速度が第２の閾値以上となることを振り状態と判断するための条件としてもよい。すなわち、振り入力判定部８１は、加速度変化をみることなく、加速度の大きさのみで振り状態にあると判断して、その後加速度の大きさがピークに達したタイミングで振り入力判定を行ってもよい。
【０２０１】
また、上記の例では、振り入力判定部８１は、加速度の大きさが第２の閾値以上となった上で（すなわち、振り状態になってから）加速度の大きさがピーク（最大）になったときに、振り入力判定を行った。これにより、加速度変化が大きくなったが加速度が大きくならなかった場合、例えば、左コントローラ３が物に軽く衝突する等によって衝撃が加わった場合に誤って振り入力が行われたと判定することを回避できる。これに代えて、振り入力判定部８１は、加速度変化が第１の閾値以上になったときに振り状態に入ったと判断して、その後加速度の大きさがピークに達したタイミングで振り入力判定をしてもよい。
【０２０２】
また、上記の例では、振り入力判定部８１は、振り兆候状態になった後に、加速度の大きさが第２の閾値以上になる前に加速度変化が第１の閾値未満に戻った場合（ステップＳＳ１５４にてＮＯ）には、振り兆候状態を解除したが、これに代えて、いったん加速度変化が第１の閾値を超えた後は、その後の加速度変化の大きさにかかわらず、一定時間は振り兆候状態を維持するようにしてもよい。この場合には、振り兆候状態にて所定時間内に加速度の大きさが第２の閾値を超えない場合には、振り兆候状態が解除される。
【０２０３】
（同時振り判定）
次に、左コントローラ３と右コントローラ４との同時振り判定について説明する。図１７は、同時振り判定処理のフローチャートである。振り入力判定部８１は、左コントローラ３および右コントローラ４のうちのいずれか一方について、振り入力判定をしたときに、他方が振り状態にある場合には、左コントローラ３および右コントローラ４について同時振り判定をする。すなわち、振り入力判定部８１は、まず、すべてのコントローラ（本実施の形態では、左コントローラ３および右コントローラ４）について、図１５に示した振り入力判定を行う（ステップＳ１７１）。
【０２０４】
振り入力判定部８１は、いずれかのコントローラについて振り入力判定が行われたか否かを判断し（ステップＳ１７２）、いずれかのコントローラについて振り入力判定が行われるまで（ステップＳ１７２にてＮＯ）、ステップＳ１７１に戻ってすべてのコントローラについての振り入力判定を繰り返す。いずれかのコントローラについて振り入力判定がされたときは（ステップＳ１７２にてＹＥＳ）、振り入力判定部８１は、他のコントローラが振り状態にあるか（振り状態フラグが「１」になっているか）否かを判断する（ステップＳ１７３）。
【０２０５】
他のコントローラが振り状態にある場合には（ステップＳ１７３にてＹＥＳ）、振り入力判定部８１は、当該振り状態にあるコントローラと、ステップＳ１７２にて振り入力が行われたと判断されたコントローラとについて、同時に振り入力が行われたと判断して、同時振り判定を行う（ステップＳ１７４）。一方、いずれかのコントローラについて振り入力判定がされたときに、他のいずれのコントローラも振り状態にない場合（振り状態フラグが「０」になっている場合）には、ステップＳ１７２にて振り入力判定がされたコントローラのみが振られたと判断して、当該コントローラについて片手振り判定を行う（ステップＳ１７５）。
【０２０６】
図１８は、左コントローラ３および右コントローラ４の加速度（移動平均）、及び加速度の変化の一例を示すグラフである。なお、図１８でも、各グラフの右側が過去の値を示しており、グラフの左端が現在の値を示している。
【０２０７】
図１８を用いて同時判定の例を説明する。この例では、ユーザは同時振り入力動作をすべく左コントローラ３と右コントローラ４とを同時に振ろうとしているが、実際には左コントローラ３の振り入力動作のタイミングと右コントローラ４の振り入力動作のタイミングとには若干のずれが生じている。すなわち、左コントローラ３の振り入力動作のタイミングの方が右コントローラ４の振り入力動作のタイミングより若干早くなっている。
【０２０８】
時刻ｔ１に、まず左コントローラ３の加速度変化が第１の閾値に達して、左コントローラ３が振り兆候状態となり、その後時刻ｔ２に左コントローラ３の加速度の大きさが第２の閾値に達して、左コントローラ３が振り状態となる。右コントローラ４は、左コントローラ３に遅れて時刻ｔ３に加速度変化が第１の閾値に達して振り兆候状態となり、その後の時刻ｔ４に加速度の大きさが第２の閾値を超えて、振り状態となる。すなわち、時刻ｔ４には、左コントローラ３と右コントローラ４のいずれもが振り状態となる。
【０２０９】
そして、時刻ｔ５に、先に振り状態になっている左コントローラ３の加速度変化が０になって加速度の大きさが最大になると、振り入力判定部８１は、図１５に示した振り入力判定処理によって左コントローラ３について振り入力動作が行われたと判定する（振り入力判定を行う）。このとき、右コントローラ４が振り状態にあることから、振り入力判定部８１は、この右コントローラ４についても、左コントローラ３と同時に振り入力動作が行われたものとみなし、左コントローラ３について振り入力判定が行われたタイミングで、左コントローラ３と右コントローラ４とが同時に振られたと判定する。
【０２１０】
なお、実際には、右コントローラ４の加速度の大きさは、時刻ｔ６になってピークになるが、振り入力判定部８１は、右コントローラ４の加速度の大きさがピークになる時刻ｔ６より前の、左コントローラ３について振り判定が行われた時刻ｔ５において、右コントローラ４も振り動作が行われたとみなして、左コントローラ３と右コントローラ４について同時振り判定を行う。
【０２１１】
同時振り入力において、先に振り入力動作が行われるコントローラを「第１のコントローラ」といい、第１のコントローラに若干遅れて振り入力動作が行われるコントローラを「第２のコントローラ」というとすると、振り入力判定部８１は、第１のコントローラについて振り入力判定を行ったタイミングで、第２のコントローラが振り状態にある場合には、それらの第１および第２のコントローラについて同時振り判定を行う。換言すれば、第１のコントローラについて振り判定を行ったタイミングで、第２のコントローラの加速度変化が第１の閾値を超えて、かつ、第２のコントローラの加速度が第２の閾値を超えている場合には、第２のコントローラについても、第１のコントローラと同じタイミングで振り入力動作が行われたと判定する。
【０２１２】
また、振り入力判定部８１は、第１のコントローラについて振り入力判定を行ったタイミングで第２のコントローラが振り状態にない場合は、そのタイミングで直ちに第１のコントローラの片手振りである（即ち、同時振りはない）と判定する。
【０２１３】
以上より、本実施の形態の振り入力判定部８１によれば、第１のコントローラに対して振り入力動作が行われた（振り入力判定が行われた）時点で第２のコントローラに対して振り入力動作が行われていなくても（振り入力判定が行われていなくても）、第１のコントローラに対して振り入力動作が行われたタイミングで、第１のコントローラと第２のコントローラの同時振り判定でき、また、同時振り判定をしない場合には、第１のコントローラの片手振りであると判定することができる。
【０２１４】
なお、上記の例では、振り状態になっていることを、各コントローラについて振り入力判定をするための条件とし、第１のコントローラについて振り入力判定を行ったときに第２のコントローラについての同時振り判定をする際にも、第１のコントローラについて振り入力判定をする際に条件として用いた振り状態を条件とした。すなわち、第１のコントローラについて振り入力判定をする際に用いる条件と、第２のコントローラについて同時振り判定をする際に用いる条件とが、いずれも「振り状態になっていること」という同一の条件であった。
【０２１５】
しかし、振り入力判定部８１による同時振り判定はこれに限られず、第１のコントローラについて任意の条件で振り入力判定を行い、第１のコントローラについて振り入力判定が行われた時点で、第１のコントローラについてした振り入力判定の条件とは別の任意の条件で第２のコントローラについて振り状態にあるか否かを判断して、第２のコントローラが振り状態にある場合には、同時振り判定をしてもよい。
【０２１６】
この場合の振り状態とは、ユーザがコントローラを振る動作を行っていると判断してよい状態である。ただし、振り入力判定部８１は、コントローラを振る動作は一定の時間経過を伴う動作であるため、必ずしも振り状態になったタイミングで振り入力動作があったと判定しなくてもよく、振り入力判定をするタイミングは、上述のように、ユーザの体感的に適切なタイミングであればよい。よって、振り入力動作ないし振り入力判定は、コントローラが振り状態にあるときに行われるものである。
【０２１７】
例えば、振り入力判定部８１は、第１のコントローラについては、上記の例と同様にして、加速度変化が第１の閾値以上となったときに振り兆候状態であると判断し、振り兆候状態において加速度の大きさが第２の加速度になったときに振り状態と判断し、振り状態において加速度変化が０になったときに、振り入力判定を行うが、そのときに行う第２のコントローラの同時振り判定においては、第２のコントローラについて、加速度変化が（第１の閾値とは異なる）第４の閾値以上となって振り兆候状態と判断された後に、（第２の閾値とは異なる）第５の閾値以上となっているときに振り状態にあると判断して、同時振り判定を行うようにしてもよい。
【０２１８】
［ゲーム処理］
次に、上記の振り方向判定および振り入力判定に基づいて行うゲーム処理の例を説明する。図１９〜図２２は、ゲーム処理の例を説明する図である。以下では、ゲーム処理をするＣＰＵ８１をゲーム処理部８１という。このゲームでは、プレイヤキャラクタＰＣが仮想空間ＶＳにいて、ユーザは仮想空間ＶＳ内でのプレイヤキャラクタＰＣの移動や挙動を左コントローラ３や右コントローラ４を用いて指示でき、ゲーム処理部８１は、左コントローラ３や右コントローラ４からの操作データ（加速度データや角速度データを含む）に基づいて、仮想空間ＶＳ内のプレイヤキャラクタＰＣを移動させたりアクションを行わせたりする。
【０２１９】
たとえば、ゲーム処理部８１は、振り入力判定部８１が振り入力判定（図１５のステップＳ１５８）をしたときに、それに応じて、プレイヤキャラクタＰＣが投擲オブジェクトＣを投げ、投擲オブジェクトＣが飛ぶというゲーム処理を行う。さらに、飛ばされた投擲オブジェクトＣが仮想空間内の敵オブジェクトに当たったかどうかの判定に応じてゲーム処理を行う。投擲オブジェクトＣはゲーム内容によってどのようなものでもよいが、例としては、ボール、ブーメラン、手裏剣等であってもよい。また、プレイヤキャラクタがかぶっている帽子等であってもよい。また、ゲーム処理部８１は、振り入力判定部８１にて、片手振り判定がされた場合と同時振りが判定された場合とで、プレイヤキャラクタＰＣに異なる動作を行わせ、投擲オブジェクトＣにも異なる飛び方をさせる。さらに、ゲーム処理部８１は、振り方向判定部８１にて判定された振り方向に従って、プレイヤキャラクタＰＣに異なる動作を行わせ、投擲オブジェクトＣにも異なる飛び方をさせる。
【０２２０】
図１９は、左コントローラ３または右コントローラ４において、右方向への片手振りを行った場合の投擲オブジェクトＣの飛行軌跡を示している。なお、図１９〜図２２は、仮想空間ＶＳにおけるプレイヤキャラクタＰＣと投擲オブジェクトＣの飛行軌跡とを説明するための図であり、必ずしもゲーム画面として図１９〜図２２が表示されるわけではない。ゲーム画面は仮想空間に設定される仮想カメラからの画像（映像）として表示され、仮想カメラの視点位置および方向は任意に設定できるものとする。
【０２２１】
図１９に示すように、右方向への片手振りを行った場合は、投擲オブジェクトＣはプレイヤキャラクタＰＣの前方に右回転をしながら飛行して、所定の距離だけ離れたところで折り返してプレイヤキャラクタＰＣに戻ってくる。このとき、プレイヤキャラクタＰＣは、投擲オブジェクトＣを右回転させながら前方に飛行させる動作を行い、投擲オブジェクトＣが戻ってきたときにはそれを受け取る動作をする。このようなプレイヤキャラクタＰＣおよび投擲オブジェクトＣの挙動が、ゲーム処理部８１による右方向への片手振りに応じたゲーム処理（右方向の片手振りゲーム処理）である。なお、投擲オブジェクトの飛行中に、さらに振りが行われた場合に、振り方向に応じて軌道が変化するようにしてもよい。
【０２２２】
図２０は、左コントローラ３または右コントローラ４において、左方向への片手振りを行った場合の投擲オブジェクトＣの飛行軌跡を示している。左方向への片手振りを行った場合は、投擲オブジェクトＣはプレイヤキャラクタＰＣの前方に左回転をしながら飛行して、所定の距離だけ離れたところで折り返してプレイヤキャラクタＰＣに戻ってくる。このとき、プレイヤキャラクタＰＣは、投擲オブジェクトＣを左回転させながら前方に飛行させる動作を行い、投擲オブジェクトＣが戻ってきたときにはそれを受け取る動作をする。このようなプレイヤキャラクタＰＣおよび投擲オブジェクトＣの挙動が、ゲーム処理部８１による左方向への片手振りに応じたゲーム処理（左方向の片手振りゲーム処理）である。なお、投擲オブジェクトの飛行中に、さらに振りが行われた場合に、振り方向に応じて軌道が変化するようにしてもよい。
【０２２３】
図２１は、左コントローラ３および右コントローラ４を、右方向へ同時に振った場合の投擲オブジェクトＣの飛行軌跡を示している。右方向への同時振りを行った場合は、投擲オブジェクトＣはプレイヤキャラクタＰＣの周りを右回りに回転しつつ螺旋状の軌跡を描いてプレイヤキャラクタＰＣから離れていき、所定の距離だけ離れたところで、引き続きプレイヤキャラクタＰＣの周りを右回りに回転しつつ螺旋状の軌跡を描いてプレイヤキャラクタＰＣに戻ってくる。このとき、プレイヤキャラクタＰＣは、自らが右回転をしながら投擲オブジェクトＣを飛行させる動作を行い、投擲オブジェクトＣが戻ってきたときにはそれを受け取る動作をする。このようなプレイヤキャラクタＰＣおよび投擲オブジェクトＣの挙動が、ゲーム処理部８１による右方向への同時振りに応じたゲーム処理（右方向の同時振りゲーム処理）である。
【０２２４】
図２２は、左コントローラ３および右コントローラ４を、左方向へ同時に振った場合の投擲オブジェクトＣの飛行軌跡を示している。左方向への同時振りを行った場合は、投擲オブジェクトＣはプレイヤキャラクタＰＣの周りを左回りに回転しつつ螺旋状の軌跡を描いてプレイヤキャラクタＰＣから離れていき、所定の距離だけ離れたところで、引き続きプレイヤキャラクタＰＣの周りを右回りに回転しつつ螺旋状の軌跡を描いてプレイヤキャラクタＰＣに戻ってくる。このとき、プレイヤキャラクタＰＣは、自らが左回転をしながら投擲オブジェクトＣを飛行させる動作を行い、投擲オブジェクトＣが戻ってきたときにはそれを受け取る動作をする。このようなプレイヤキャラクタＰＣおよび投擲オブジェクトＣの挙動が、ゲーム処理部８１による左方向への同時振りに応じたゲーム処理（左方向の同時振りゲーム処理）である。この動作では、同時振りに応じて広範囲に投擲オブジェクトＣを飛ばすことができ、敵オブジェクトに当て易い等、ゲーム内で効果の高い動作を行うことができる。この他、左コントローラ３および右コントローラ４を、上方向や下方向に同時に振った際に、さらに違う動作をするようにしてもよい。例えば、投擲オブジェクトＣを仮想空間内の上方向に投げる動作や、地面を転がすように投げる動作が行われるようにしてもよい。
【０２２５】
このように、本実施の形態では、ゲーム処理部８１は、片手振りの振り入力動作については、いずれかのコントローラで片手振りが行われれば、それに応じた片手振りゲーム処理を行うが、変形例では、左コントローラ３で行われた片手振りと右コントローラ４で行われた片手振りとで異なるゲーム処理をしてもよい。
【０２２６】
また、本実施の形態では、ゲーム処理部８１は、左コントローラ３と右コントローラ４とが同じ方向に同時に振られた場合についてのみ、同時振りゲーム処理を行ったが、互いに異なる方向への同時振りが行われたときに行うべき同時振りゲーム処理を設定しておいて、互いに異なる方向への同時振りが行われたときにそれを実行してもよい。
【０２２７】
［変形例］
上記の実施の形態では、同時振り判定、ゲーム処理等の説明において、コントローラが２つである場合を例に説明したが、コントローラは３つ以上であってもよく、同時振り判定も３つ以上の同時振りを判定してもよい。３つ以上のコントローラの同時振り判定を行う場合には、振り入力判定部８１は、複数のコントローラのうちの１つのコントローラについて、振り入力動作が行われたと判定したときに、複数のコントローラのうちの振り状態にあるすべての他のコントローラについて、前記１つのコントローラと同時に振り入力動作が行われたとみなして、同時振り判定をしてよい。
【０２２８】
また、上記の実施の形態では、振り兆候状態にて加速度の大きさが第２の閾値を超えることを振り状態と判定する条件（振り状態判定条件）とし、振り状態にて加速度変化が０になることを振り入力動作が行われたと判定する条件（振り入力判定条件）としたが、振り状態判定条件および振り入力判定は、他の任意の条件であってよい。コントローラを振るという動作は一定の時間をかけて行われるものであるから、振り入力判定部８１は、そのような動作が行われている状態を振り状態と判定し、振り状態にて所定の条件を満たしたときに振り入力動作があったと判定すればよく、振り入力判定の条件は上記の実施の形態の条件（加速度変化が０）に限らない。例えば、振り入力判定条件は、振り状態において加速度変化が０に近い第３の閾値以下になったこととしてよく、あるいは、加速度の大きさが第２の閾値より大きい所定の閾値以上になったこととしてもよい。
【０２２９】
上記の実施の形態では、振り入力判定および同時振り判定は加速度センサから得られる加速度データに基づいて行うとともに、振り方向判定は角速度センサから得られる角速度データに基づいて行ったが、振り入力判定および同時振り判定を加速度データに代えて、または加速度データに加えて、角速度データに基づいて行ってよく、振り方向判定を角速度データに代えて、または角速度データに加えて、加速度データに基づいて行ってよい。すなわち、本発明のゲーム装置は、加速度センサおよび角速度センサを含む慣性センサを少なくとも備える複数のコントローラから、当該慣性センサのデータを少なくとも含む操作データを取得して、その操作データに基づいて、コントローラに対する振り入力判定や同時振り判定をするものであればよい。
【０２３０】
また、上記の実施の形態では、ゲームシステム１が本体装置２と左コントローラ３と右コントローラ４とで構成されたが、本体装置２の一部または全部の要素がいずれかのコントローラに備えられていてもよい。この場合には、左コントローラ３および右コントローラ４のいずれか一方、または両方に、ＣＰＵ８１等の要素が備えられることになる。また、この場合には、左コントローラ３および右コントローラ４の各々で図１５に示す振り入力判定処理を行ってその結果を本体装置２に送信し、本体装置２は左コントローラ３および右コントローラ４の振り入力判定処理の結果に基づいて同時振り判定を行ってもよい。
【０２３１】
また、本体装置２のすべての要素が、左コントローラ３および右コントローラ４のいずれか一方、又は両方に備えられる場合には、操作データは、左コントローラ３と右コントローラ４との間で送受信される。
【０２３２】
また、上記の実施の形態では、左コントローラ３および右コントローラ４が本体装置２から取り外された離脱状態にあるときには、左コントローラ３および右コントローラ４から本体装置２に、操作データが無線通信で送信されたが、左コントローラ３および右コントローラ４が離脱状態にある場合にも、左コントローラ３および右コントローラ４がそれぞれ本体装置２と有線接続されて、有線通信によって操作データが本体装置２に送信されてよい。この場合には、本体装置２において有線通信にて左コントローラ３および右コントローラ４から操作データを受信する構成が、操作データ取得部に相当する。
【０２３３】
さらに、左コントローラ３と右コントローラ４とが有線又は無線で接続されていずれか一方のコントローラの操作データが他方のコントローラに送信され、当該一方のコントローラから、当該一方のコントローラの操作データと他方のコントローラの操作データが本体装置２に送信されてもよい。
【符号の説明】
【０２３４】
１  ゲームシステム
２  本体装置（ゲーム装置）
３  左コントローラ
４  右コントローラ
５  クレードル
６  据置型モニタ
１１  ハウジング
１２  ディスプレイ
２７  下側端子
４２、６４  端子
７３  本体端子
８１  ＣＰＵ（振り方向判定部、振り入力判定部、ゲーム処理部）
８２  ネットワーク通信部
８３  コントローラ通信部
８５  ＤＲＡＭ
１０４、１１４  加速度センサ
１０５、１１５  角速度センサ
【図１】
2017217139.tif 000003
【図２】
2017217139.tif 000004
【図３】
2017217139.tif 000005
【図４】
2017217139.tif 000006
【図５】
2017217139.tif 000007
【図６】
2017217139.tif 000008
【図７】
2017217139.tif 000009
【図８】
2017217139.tif 000010
【図９】
2017217139.tif 000011
【図１０】
2017217139.tif 000012
【図１１】
2017217139.tif 000013
【図１２】
2017217139.tif 000014
【図１３】
2017217139.tif 000015
【図１４】
2017217139.tif 000016
【図１５】
2017217139.tif 000017
【図１６】
2017217139.tif 000018
【図１７】
2017217139.tif 000019
【図１８】
2017217139.tif 000020
【図１９】
2017217139.tif 000021
【図２０】
2017217139.tif 000022
【図２１】
2017217139.tif 000023
【図２２】
2017217139.tif 000024