(57)【特許請求の範囲】
【請求項１】
ゲーム装置を操作可能なゲームコントローラと通信可能であり、ユーザ入力を検知するセンサと、処理部と、送信部とを備える周辺装置であって、
前記周辺装置は、前記ゲームコントローラとの通信が確立されているときに、第１モードと、第２モードとを含む複数のモードのうちいずれかで動作可能であり、
前記第１モードにおいて、
前記処理部は、前記センサが検知したユーザ入力に応じた周辺装置データに基づいて、前記ゲームコントローラに所定の動作を実行させるコマンドを生成し、
前記送信部は当該コマンドを前記ゲームコントローラへ送信し、
前記第２モードにおいて、
前記送信部は、前記周辺装置データを前記ゲームコントローラへ送信する、周辺装置。
【請求項２】
ゲーム装置を操作可能なゲームコントローラと通信可能であり、処理部と、送信部とを備える周辺装置であって、
前記周辺装置は、前記ゲームコントローラとの通信が確立されているときに、第１モードと、第２モードとを含む複数のモードのうちいずれかで動作可能であり、
前記周辺装置は、前記第１モードと前記第２モードとのうち、前記ゲームコントローラから受信されたモード情報により示されるモードで動作し、
前記第１モードにおいて、
前記送信部は、所定の送信要求信号を前記ゲームコントローラへ送信し、
前記処理部は、前記送信要求信号が前記ゲームコントローラにおいて受信されたことに応じて当該ゲームコントローラから送信された、当該ゲームコントローラに対するユーザ入力に応じたコントローラデータに基づく処理を実行し、
前記第２モードにおいて、
前記送信部は、前記ゲームコントローラからの送信要求信号に応じて、前記周辺装置において取得または生成された周辺装置データを当該ゲームコントローラへ送信する、周辺装置。
【請求項３】
前記第１モードにおいては、前記ゲームコントローラおよび／または前記周辺装置に対するユーザ入力に基づく処理が、前記ゲーム装置によることなく前記周辺装置および前記ゲームコントローラによって実行され、
前記第２モードにおいては、前記周辺装置データに基づくデータが前記ゲームコントローラから前記ゲーム装置へ送信され、送信されてきたデータに基づく処理が当該ゲーム装置によって実行される、請求項１または請求項２に記載の周辺装置。
【請求項４】
前記第１モードにおいて、前記周辺装置は、前記ゲームコントローラに対するユーザ入力に応じたコントローラデータを当該ゲームコントローラから受信する、請求項１から請求項３のいずれか１項に記載の周辺装置。
【請求項５】
前記第１モードにおいて、
前記処理部は、前記コントローラデータに基づいて、前記ゲームコントローラに所定の動作を実行させるコマンドを生成し、
前記送信部は前記コマンドを前記ゲームコントローラへ送信する、請求項４に記載の周辺装置。
【請求項６】
前記周辺装置は、前記ゲームコントローラが備えるボタンのうち、操作可能な全てのボタンに関するコントローラデータを当該ゲームコントローラから受信する、請求項４または請求項５に記載の周辺装置。
【請求項７】
前記送信部は、前記コントローラデータのうちの一部のデータに基づき、かつ、当該コントローラデータのうちの他のデータには基づかない前記コマンドを前記ゲームコントローラへ送信する、請求項４から請求項６のいずれか１項に記載の周辺装置。
【請求項８】
前記ゲームコントローラはスリープ解除ボタンを備え、
前記ゲームコントローラは、少なくとも前記第１モードで動作する状態とは異なる状態において、当該ゲームコントローラと前記周辺装置との通信が確立されていない場合に前記スリープ解除ボタンに対する操作が検出された場合、前記周辺装置からのコマンドに基づかずに、前記ゲーム装置のスリープ状態を解除させる信号を当該ゲーム装置へ送信するように構成され、
前記第１モードにおいて、前記スリープ解除ボタンに対する操作が行われたことに対応するコントローラデータを前記周辺装置が受信した場合、前記処理部は、前記ゲーム装置のスリープ状態を解除させる信号を前記ゲーム装置へ送信することを指示するコマンドを生成し、前記送信部は当該コマンドを前記ゲームコントローラへ送信する、請求項１から請求項７のいずれか１項に記載の周辺装置。
【請求項９】
前記周辺装置は、
前記ゲームコントローラと電気的に接続可能であり、当該周辺装置と電気的に接続した状態の前記ゲームコントローラから供給される電力によって動作するように構成され、
前記ゲームコントローラから供給される電力に基づいて当該周辺装置が起動した場合、前記複数のモードのうちで動作すべきモードを示すモード情報を前記ゲームコントローラから受信することを待機する待機状態となり、
前記待機状態において前記ゲームコントローラから受信された前記モード情報が示すモードで動作する、請求項１から請求項８のいずれか１項に記載の周辺装置。
【請求項１０】
前記周辺装置は、前記ゲームコントローラと当該周辺装置とが電気的に接続されることによって形成される回路の一部を構成し、所定の抵抗値を有する電子部品を備える、請求項９に記載の周辺装置。
【請求項１１】
前記第１モードにおいて、前記ゲームコントローラに対する所定の操作が行われたことに対応するコントローラデータを前記周辺装置が受信した場合、前記送信部は、前記第１モードの終了を示す終了信号を前記ゲームコントローラへ送信する、請求項９または請求項１０に記載の周辺装置。
【請求項１２】
前記第１モードにおいて、前記センサが検知したユーザ入力の回数を記憶する記憶部をさらに備える、請求項１に記載の周辺装置。
【請求項１３】
ゲーム装置を操作可能であり、周辺装置と通信可能であり、操作部および送信部を備えるゲームコントローラであって、
前記ゲームコントローラは、前記周辺装置との通信が確立されているときに、第１モードと、第２モードとを含む複数のモードのうちいずれかで動作可能であり、
前記第１モードにおいて、前記送信部は、前記操作部に対するユーザ入力に応じたコントローラデータを前記周辺装置へ送信し、
前記第２モードにおいて、前記送信部は、前記操作部に対するユーザ入力に応じたコントローラデータを前記ゲーム装置へ送信し、
前記ゲームコントローラはスリープ解除ボタンを備え、
前記ゲームコントローラは、
前記第１モードで動作する状態とは異なる状態において、当該ゲームコントローラと前記周辺装置との通信が確立されていない場合に前記スリープ解除ボタンに対する操作が検出された場合、前記周辺装置からのコマンドに基づかずに、前記ゲーム装置をスリープ状態から復帰させる信号を当該ゲーム装置へ送信し、
前記第１モードにおいて前記スリープ解除ボタンが押下されることによって、前記スリープ解除ボタンが押下されたことに対応するコントローラデータを前記周辺装置へ送信し、当該コントローラデータに応じたコマンドを当該周辺装置から受信したことに応じて、前記ゲーム装置をスリープ状態から復帰させる信号を当該ゲーム装置へ送信する、ゲームコントローラ。
【請求項１４】
ゲーム装置を操作可能であり、周辺装置と通信可能であり、操作部および送信部を備えるゲームコントローラであって、
前記ゲームコントローラは、前記周辺装置との通信が確立されているときに、第１モードと、第２モードとを含む複数のモードのうちいずれかで動作可能であり、
前記第１モードにおいて、前記送信部は、前記操作部に対するユーザ入力に応じたコントローラデータを前記周辺装置へ送信し、
前記第２モードにおいて、前記送信部は、前記操作部に対するユーザ入力に応じたコントローラデータを前記ゲーム装置へ送信し、
前記ゲームコントローラは、
当該ゲームコントローラと前記周辺装置とが電気的に接続されることによって形成される回路の抵抗値が第１の範囲内である場合、前記第１モードで動作可能であるとともに前記第２モードで動作可能であり、
当該ゲームコントローラと前記周辺装置とが電気的に接続されることによって形成される回路の抵抗値が前記第１の範囲とは異なる第２の範囲内である場合、前記第２モードで動作可能であり、前記第１モードでは動作しない、ゲームコントローラ。
【請求項１５】
ゲーム装置を操作可能であり、周辺装置と通信可能であり、操作部および送信部を備えるゲームコントローラであって、
前記ゲームコントローラは、
前記周辺装置との通信が確立されているときに、第１モードと、第２モードとを含む複数のモードのうちいずれかで動作可能であり、
前記第１モードと前記第２モードとのうちで前記ゲームコントローラが動作するモードに応じたモード情報を前記周辺装置へ送信し、
前記第１モードにおいて、前記送信部は、前記操作部に対するユーザ入力に応じたコントローラデータを前記周辺装置へ送信し、
前記第２モードにおいて、前記送信部は、前記操作部に対するユーザ入力に応じたコントローラデータを前記ゲーム装置へ送信する、ゲームコントローラ。
【請求項１６】
前記第１モードにおいては、前記ゲームコントローラおよび／または前記周辺装置に対するユーザ入力に基づく処理が、前記ゲーム装置によることなく前記周辺装置および前記ゲームコントローラによって実行され、
前記第２モードにおいては、前記ゲーム装置へ送信された前記コントローラデータに基づく処理が当該ゲーム装置によって実行される、請求項１３から請求項１５のいずれか１項に記載のゲームコントローラ。
【請求項１７】
前記ゲームコントローラは、
前記第１モードにおいて、前記周辺装置へ送信されたコントローラデータに応じたコマンドを前記周辺装置から受信し、当該コマンドに応じて動作し、
前記第２モードにおいて、前記ゲーム装置へ送信されたコントローラデータに応じたコマンドを前記ゲーム装置から受信し、当該コマンドに応じて動作する、請求項１３から請求項１６のいずれか１項に記載のゲームコントローラ。
【請求項１８】
前記操作部はボタンを含み、
前記送信部は、前記ゲームコントローラが備えるボタンのうち、操作可能な全てのボタンに関するコントローラデータを前記周辺装置へ送信する、請求項１３から請求項１７のいずれか１項に記載のゲームコントローラ。
【請求項１９】
前記ゲームコントローラは、
当該ゲームコントローラと前記周辺装置とが電気的に接続されることによって形成される回路の抵抗値が第１の範囲内である場合、前記第１モードで動作可能であるとともに前記第２モードで動作可能であり、
当該ゲームコントローラと前記周辺装置とが電気的に接続されることによって形成される回路の抵抗値が前記第１の範囲とは異なる第２の範囲内である場合、前記第２モードで動作可能であり、前記第１モードでは動作しない、請求項１３または請求項１５に記載のゲームコントローラ。
【請求項２０】
前記ゲームコントローラは、前記周辺装置と電気的に接続されており、かつ、前記ゲーム装置との無線接続が確立していない状態で、当該ゲームコントローラに対する所定の操作を検出したことに応じて、当該ゲームコントローラと当該周辺装置とが電気的に接続されることによって形成される前記回路の抵抗値が前記第１の範囲内であることを少なくとも条件として、前記第１モードで動作する、請求項１４または請求項１９に記載のゲームコントローラ。
【請求項２１】
前記ゲームコントローラは、当該ゲームコントローラと前記周辺装置とが電気的に接続されることによって形成される回路の抵抗値が前記第１の範囲内であることを少なくとも条件として、当該周辺装置のうち、当該回路を形成する部分とは異なる他の部分に電力を供給する、請求項１９または請求項２０に記載のゲームコントローラ。
【請求項２２】
前記ゲームコントローラが前記第１モードで動作する場合、前記ゲームコントローラは、当該第１モードで動作することを示すモード情報を生成し、前記送信部は当該モード情報を前記周辺装置へ送信する、請求項１３から請求項２１のいずれか１項に記載のゲームコントローラ。
【請求項２３】
ゲーム装置を操作可能なゲームコントローラと、ユーザ入力を検知するセンサ、処理部、および、送信部を備える周辺装置とを備える情報処理システムであって、
前記周辺装置は、前記ゲームコントローラとの通信が確立されているときに、第１モードと、第２モードとを含む複数のモードのうちいずれかで動作可能であり、
前記第１モードにおいて、
前記処理部は、前記センサが検知したユーザ入力に応じた周辺装置データに基づいて、前記ゲームコントローラに所定の動作を実行させるコマンドを生成し、
前記送信部は当該コマンドを前記ゲームコントローラへ送信し、
前記ゲームコントローラは、前記周辺装置から受信した前記コマンドに応じて動作し、
前記第２モードにおいて、
前記送信部は前記周辺装置データを前記ゲームコントローラへ送信し、
前記ゲームコントローラは前記周辺装置からの前記周辺装置データを受信する、情報処理システム。
【請求項２４】
ゲーム装置を操作可能なゲームコントローラと、ユーザ入力を検知するセンサ、処理部、および、送信部を備える周辺装置とを備える情報処理システムにおいて実行される情報処理方法であって、
前記周辺装置は、前記ゲームコントローラとの通信が確立されているときに、第１モードと、第２モードとを含む複数のモードのうちいずれかで動作可能であり、
前記第１モードにおいて、
前記処理部は、前記センサが検知したユーザ入力に応じた周辺装置データに基づいて、前記ゲームコントローラに所定の動作を実行させるコマンドを生成し、
前記送信部は当該コマンドを前記ゲームコントローラへ送信し、
前記ゲームコントローラは、前記周辺装置から受信した前記コマンドに応じて動作し、
前記第２モードにおいて、
前記送信部は前記周辺装置データを前記ゲームコントローラへ送信し、
前記ゲームコントローラは前記周辺装置から前記周辺装置データを受信する、情報処理方法。
【請求項２５】
ゲーム装置を操作可能なゲームコントローラと、処理部および送信部を備える周辺装置とを備える情報処理システムであって、
前記周辺装置は、前記ゲームコントローラとの通信が確立されているときに、第１モードと、第２モードとを含む複数のモードのうちいずれかで動作可能であり、
前記ゲームコントローラは、前記第１モードと前記第２モードとのうちで前記ゲームコントローラが動作するモードに応じたモード情報を前記周辺装置へ送信し、
前記周辺装置は、前記ゲームコントローラから受信された前記モード情報により示されるモードで動作し、
前記第１モードにおいて、
前記送信部は、所定の送信要求信号を前記ゲームコントローラへ送信し、
前記ゲームコントローラは、前記周辺装置から前記送信要求信号を受信したことに応じて、当該ゲームコントローラに対するユーザ入力に応じたコントローラデータを当該周辺装置へ送信し、
前記処理部は、前記ゲームコントローラから受信した前記コントローラデータに基づく処理を実行し、
前記第２モードにおいて、
前記送信部は、前記ゲームコントローラからの送信要求信号に応じて、前記周辺装置において取得または生成された周辺装置データを当該ゲームコントローラへ送信し、
前記ゲームコントローラは前記周辺装置から前記周辺装置データを受信する、情報処理システム。
【請求項２６】
ゲーム装置を操作可能なゲームコントローラと、処理部および送信部を備える周辺装置とを備える情報処理システムにおいて実行される情報処理方法であって、
前記周辺装置は、前記ゲームコントローラとの通信が確立されているときに、第１モードと、第２モードとを含む複数のモードのうちいずれかで動作可能であり、
前記ゲームコントローラは、前記第１モードと前記第２モードとのうちで前記ゲームコントローラが動作するモードに応じたモード情報を前記周辺装置へ送信し、
前記周辺装置は、前記ゲームコントローラから受信された前記モード情報により示されるモードで動作し、
前記第１モードにおいて、
前記送信部は、所定の送信要求信号を前記ゲームコントローラへ送信し、
前記ゲームコントローラは、前記周辺装置から前記送信要求信号を受信したことに応じて、当該ゲームコントローラに対するユーザ入力に応じたコントローラデータを当該周辺装置へ送信し、
前記処理部は、前記ゲームコントローラから受信した前記コントローラデータに基づく処理を実行し、
前記第２モードにおいて、
前記送信部は、前記ゲームコントローラからの送信要求信号に応じて、前記周辺装置において取得または生成された周辺装置データを当該ゲームコントローラへ送信し、
前記ゲームコントローラは前記周辺装置から前記周辺装置データを受信する、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームコントローラ、または、それに接続可能な周辺装置に関する。
【背景技術】
【０００２】
従来、ゲームコントローラに接続可能な周辺装置がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２２７８０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ゲームコントローラに接続可能な周辺装置の種類を増やし、ゲームコントローラに種々の周辺装置を接続することで種々の機能を発揮させることが考えられる。ここで、ゲームコントローラに接続可能な周辺装置の種類を新たに増やす場合、新たな周辺装置に対応させるためにゲームコントローラに対して変更が必要となることがある。このような変更をなるべく少なくし、ゲームコントローラを周辺装置に対応させやすくするという観点において、従来のゲームコントローラおよび周辺機器においては改善の余地がある。
【０００５】
それ故、本発明の目的は、ゲームコントローラを、周辺装置に対応させやすい、汎用性のあるものにすることができる周辺装置、ゲームコントローラ、情報処理システム、および、情報処理方法を提供することである。
【課題を解決するための手段】
【０００６】
上記の課題を解決すべく、本発明は、以下の（１）〜（２１）の構成を採用した。
【０００７】
（１）
本発明の一例は、ゲーム装置を操作可能なゲームコントローラと通信可能であり、ユーザ入力を検知するセンサと、処理部と、送信部とを備える周辺装置である。周辺装置は、ゲームコントローラとの通信が確立されているときに、第１モードと、第２モードとを含む複数のモードのうちいずれかで動作可能である。第１モードにおいて、処理部は、センサが検知したユーザ入力に応じた周辺装置データに基づいて、ゲームコントローラに所定の動作を実行させるコマンドを生成し、送信部は当該コマンドをゲームコントローラへ送信する。第２モードにおいて、送信部は、周辺装置データをゲームコントローラへ送信する。
【０００８】
上記（１）の構成によれば、第１モードにおいて、ゲームコントローラは周辺装置からのコマンドに応じて動作することができるので、第１モードにおけるゲームコントローラの処理は、周辺装置に対して汎用性のあるものとなる。これによって、ゲームコントローラを、周辺装置に対応させやすい、汎用性のあるものとすることができる。
【０００９】
（２）
本発明の他の一例は、ゲーム装置を操作可能なゲームコントローラと通信可能であり、処理部と、送信部とを備える周辺装置である。周辺装置は、ゲームコントローラとの通信が確立されているときに、第１モードと、第２モードとを含む複数のモードのうちいずれかで動作可能である。第１モードにおいて、送信部は、所定の送信要求信号をゲームコントローラへ送信する。また、第１モードにおいて、処理部は、送信要求信号がゲームコントローラにおいて受信されたことに応じて当該ゲームコントローラから送信された、当該ゲームコントローラに対するユーザ入力に応じたコントローラデータに基づく処理を実行する。第２モードにおいて、送信部は、ゲームコントローラからの送信要求信号に応じて、周辺装置において取得または生成された周辺装置データを当該ゲームコントローラへ送信する。
【００１０】
上記（２）の構成によれば、第１モードにおいて、ゲームコントローラに対する入力に基づく処理を、コントローラデータを受信した周辺装置側で実行することができる。これによって、ゲームコントローラを、周辺装置に対応させやすい、汎用性のあるものとすることができる。
【００１１】
（３）
第１モードにおいては、ゲームコントローラおよび／または周辺装置に対するユーザ入力に基づく処理が、ゲーム装置によることなく周辺装置およびゲームコントローラによって実行されてもよい。第２モードにおいては、周辺装置データに基づくデータがゲームコントローラからゲーム装置へ送信され、送信されてきたデータに基づく処理が当該ゲーム装置によって実行されてもよい。
【００１２】
上記（３）の構成によれば、ゲームコントローラおよび周辺装置は、第１モードで動作することによって、ゲーム装置においてアプリケーションが実行されていない期間であっても、処理を実行することができる。したがって、ユーザは、ゲーム装置においてアプリケーションが実行されていない期間であっても、ゲームコントローラおよび周辺装置を利用することができる。
【００１３】
（４）
第１モードにおいて、周辺装置は、ゲームコントローラに対するユーザ入力に応じたコントローラデータを当該ゲームコントローラから受信してもよい。
【００１４】
上記（４）の構成によれば、ゲームコントローラに対するユーザ入力に基づく処理を周辺装置側において実行することができる。
【００１５】
（５）
第１モードにおいて、処理部は、コントローラデータに基づいて、ゲームコントローラに所定の動作を実行させるコマンドを生成してもよく、送信部はコマンドをゲームコントローラへ送信してもよい。
【００１６】
上記（５）の構成によれば、ゲームコントローラに動作を実行させるための処理を周辺装置側において実行することができる。
【００１７】
（６）
周辺装置は、ゲームコントローラが備えるボタンのうち、操作可能な全てのボタンに関するコントローラデータを当該ゲームコントローラから受信してもよい。
【００１８】
（７）
送信部は、コントローラデータのうちの一部のデータに基づき、かつ、当該コントローラデータのうちの他のデータには基づかないコマンドをゲームコントローラへ送信してもよい。
【００１９】
上記（６）または（７）の構成によれば、周辺装置は、ゲームコントローラの操作可能な各ボタンに対する入力に基づく処理を実行することができる。また、仮に、ゲームコントローラに対応する周辺装置が複数種類存在する場合であっても、ゲームコントローラが周辺装置に送信するコントローラデータの内容を各周辺装置について共通にすることができるので、ゲームコントローラにおける処理を汎用性のあるものにすることができる。
【００２０】
（８）
ゲームコントローラはスリープ解除ボタンを備えてもよい。ゲームコントローラは、少なくとも第１モードで動作する状態とは異なる状態において、当該ゲームコントローラと周辺装置との通信が確立されていない場合にスリープ解除ボタンに対する操作が検出された場合、周辺装置からのコマンドに基づかずに、ゲーム装置のスリープ状態を解除させる信号を当該ゲーム装置へ送信するように構成されてもよい。第１モードにおいて、スリープ解除ボタンに対する操作が行われたことに対応するコントローラデータを周辺装置が受信した場合、処理部は、ゲーム装置のスリープ状態を解除させる信号をゲーム装置へ送信することを指示するコマンドを生成してもよく、送信部は当該コマンドをゲームコントローラへ送信してもよい。
【００２１】
上記（８）の構成によれば、ゲームコントローラおよび周辺装置における処理の流れが異なる２つのモードにおいて、スリープ解除ボタンが操作されたことに応じた挙動を同じにすることができる。
【００２２】
（９）
周辺装置は、ゲームコントローラと電気的に接続可能であり、当該周辺装置と電気的に接続した状態のゲームコントローラから供給される電力によって動作するように構成されてもよい。周辺装置は、ゲームコントローラから供給される電力に基づいて当該周辺装置が起動した場合、複数のモードのうちで動作すべきモードを示すモード情報をゲームコントローラから受信することを待機する待機状態となってもよい。周辺装置は、待機状態においてゲームコントローラから受信されたモード情報が示すモードで動作してもよい。
【００２３】
上記（９）の構成によれば、ゲームコントローラからの電力供給が開始された後で、周辺装置を適切なモードで動作させることができる。
【００２４】
（１０）
周辺装置は、所定の抵抗値を有する電子部品を備えてもよい。電子部品は、ゲームコントローラと当該周辺装置とが電気的に接続されることによって形成される回路の一部を構成する。
【００２５】
上記（１０）の構成によれば、ゲームコントローラは、上記回路の抵抗値を検出することによって、周辺装置の情報（例えば、種類）を判別することができる。
【００２６】
（１１）
第１モードにおいて、ゲームコントローラに対する所定の操作が行われたことに対応するコントローラデータを周辺装置が受信した場合、送信部は、第１モードの終了を示す終了信号をゲームコントローラへ送信してもよい。
【００２７】
上記（１１）の構成によれば、周辺装置は、自身における処理が完了した後の適切なタイミングで独立動作モードを終了することができるので、独立動作モードの終了時に周辺装置における処理が途中で中断されてしまう可能性を低減することができる。
【００２８】
（１２）
周辺装置は、第１モードにおいて、センサが検知したユーザ入力の回数を記憶する記憶部をさらに備えてもよい。
【００２９】
上記（１２）の構成によれば、第１モード中に行われたユーザ入力の回数を保存することができる。
【００３０】
（１３）
本発明の他の一例は、ゲーム装置を操作可能であり、周辺装置と通信可能であり、操作部および送信部を備えるゲームコントローラである。ゲームコントローラは、周辺装置との通信が確立されているときに、第１モードと、第２モードとを含む複数のモードのうちいずれかで動作可能である。第１モードにおいて、送信部は、操作部に対するユーザ入力に応じたコントローラデータを周辺装置へ送信する。第２モードにおいて、送信部は、操作部に対するユーザ入力に応じたコントローラデータをゲーム装置へ送信する。
【００３１】
上記（１３）の構成によれば、第１モードにおいて、ゲームコントローラに対するユーザ入力に基づく処理を周辺装置側で実行することができる。これによれば、第１モードにおけるゲームコントローラの処理は、周辺装置に対して汎用性のあるものとなる。これによって、ゲームコントローラを、周辺装置に対応させやすい、汎用性のあるものとすることができる。
【００３２】
（１４）
第１モードにおいては、ゲームコントローラおよび／または周辺装置に対するユーザ入力に基づく処理が、ゲーム装置によることなく周辺装置およびゲームコントローラによって実行されてもよい。第２モードにおいては、ゲーム装置へ送信されたコントローラデータに基づく処理が当該ゲーム装置によって実行されてもよい。
【００３３】
上記（１４）の構成によれば、上記（３）の構成と同様、ゲームコントローラおよび周辺装置は、ゲーム装置においてアプリケーションが実行されていない期間であっても、処理を実行することができる。
【００３４】
（１５）
ゲームコントローラは、第１モードにおいて、周辺装置へ送信されたコントローラデータに応じたコマンドを周辺装置から受信し、当該コマンドに応じて動作してもよい。第２モードにおいて、ゲームコントローラは、ゲーム装置へ送信されたコントローラデータに応じたコマンドをゲーム装置から受信してもよく、当該コマンドに応じて動作してもよい。
【００３５】
上記（１５）の構成によれば、ゲームコントローラは、第１および第２のいずれのモードにおいても他の装置からのコマンドに応じて動作するので、ゲームコントローラにおける処理をシンプルにすることができる。
【００３６】
（１６）
操作部はボタンを含んでもよい。送信部は、ゲームコントローラが備えるボタンのうち、操作可能な全てのボタンに関するコントローラデータを周辺装置へ送信してもよい。
【００３７】
上記（１６）の構成によれば、上記（６）の構成と同様、周辺装置は、ゲームコントローラの操作可能な各ボタンに対する入力に基づく処理を実行することができ、また、ゲームコントローラにおける処理を汎用性のあるものにすることができる。
【００３８】
（１７）
ゲームコントローラはスリープ解除ボタンを備えてもよい。ゲームコントローラは、第１モードで動作する状態とは異なる状態において、当該ゲームコントローラと周辺装置との通信が確立されていない場合にスリープ解除ボタンに対する操作が検出された場合、周辺装置からのコマンドに基づかずに、ゲーム装置をスリープ状態から復帰させる信号を当該ゲーム装置へ送信してもよい。ゲームコントローラは、第１モードにおいてスリープ解除ボタンが押下されることによって、スリープ解除ボタンが押下されたことに対応するコントローラデータを周辺装置へ送信してもよく、当該コントローラデータに応じたコマンドを当該周辺装置から受信したことに応じて、ゲーム装置をスリープ状態から復帰させる信号を当該ゲーム装置へ送信してもよい。
【００３９】
上記（１７）の構成によれば、上記（８）の構成と同様、ゲームコントローラおよび周辺装置における処理の流れが異なる２つのモードにおいて、スリープ解除ボタンが操作されたことに応じた挙動を同じにすることができる。
【００４０】
（１８）
ゲームコントローラは、当該ゲームコントローラと周辺装置とが電気的に接続されることによって形成される回路の抵抗値が第１の範囲内である場合、第１モードで動作可能であるとともに第２モードで動作可能であってもよい。ゲームコントローラは、当該ゲームコントローラと周辺装置とが電気的に接続されることによって形成される回路の抵抗値が第１の範囲とは異なる第２の範囲内である場合、第２モードで動作可能であり、第１モードでは動作しなくてもよい。
【００４１】
上記（１８）の構成によれば、第１モードに対応しない周辺装置とゲームコントローラとが電気的に接続された場合に、ゲームコントローラが第１モードで動作してしまうエラーを防止することができる。
【００４２】
（１９）
ゲームコントローラは、周辺装置と電気的に接続されており、かつ、ゲーム装置との無線接続が確立していない状態で、当該ゲームコントローラに対する所定の操作を検出したことに応じて、当該ゲームコントローラと当該周辺装置とが電気的に接続されることによって形成される回路の抵抗値が第１の範囲内であることを少なくとも条件として、第１モードで動作してもよい。
【００４３】
上記（１９）の構成によれば、ユーザの操作に応じたタイミングでゲームコントローラに第１モードを開始させることができる。
【００４４】
（２０）
ゲームコントローラは、当該ゲームコントローラと周辺装置とが電気的に接続されることによって形成される回路の抵抗値が第１の範囲内であることを少なくとも条件として、当該周辺装置のうち、当該回路を形成する部分とは異なる他の部分に電力を供給してもよい。
【００４５】
上記（２０）の構成によれば、給電の必要が無い周辺装置に対してゲームコントローラが給電を行ってしまうエラーを防止することができる。
【００４６】
（２１）
ゲームコントローラが第１モードで動作する場合、処理部は、当該第１モードで動作することを示すモード情報を生成し、送信部は当該モード情報を周辺装置へ送信してもよい。
【００４７】
上記（２１）の構成によれば、ゲームコントローラは、自身が動作するモードに合わせた適切なモードで周辺装置を動作させることができる。
【００４８】
なお、本発明の別の一例は、上記（１）〜（２１）における周辺装置とゲームコントローラとを備える情報処理システムであってもよい。また、本発明の別の一例は、上記情報処理システムにおいて実行される情報処理方法であってもよい。また、本発明の別の一例は、上記周辺装置または上記ゲームコントローラにおいて実行される情報処理プログラムであってもよい。
【発明の効果】
【００４９】
上記周辺装置、ゲームコントローラ、情報処理システム、および、情報処理方法によれば、ゲームコントローラを、周辺装置に対応させやすい、汎用性のあるものにすることができる。
【図面の簡単な説明】
【００５０】
【図１】ゲームシステムに含まれる各装置の一例を示す図
【図２】本体装置２に左コントローラ３および右コントローラ４を装着した状態の一例を示す図
【図３】本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図
【図４】本体装置２の一例を示す六面図
【図５】右コントローラ４の一例を示す六面図
【図６】本体装置２の内部構成の一例を示すブロック図
【図７】本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図
【図８】リング型拡張装置５の一例を示す図
【図９】リング型拡張装置５の内部構成の一例を示すブロック図
【図１０】リング型拡張装置５をユーザが使用する様子の一例を示す図
【図１１】本体動作モードにおける装置間のデータの基本的な流れの一例を示す図
【図１２】独立動作モードにおける処理およびデータの基本的な流れの一例を示す図
【図１３】右コントローラ４がリング型拡張装置５に装着された場合に実行される処理の流れの一例を示す図
【図１４】右コントローラ４によって実行されるコントローラ処理の一例を示すフローチャート
【図１５】リング型拡張装置５によって実行される周辺装置処理の一例を示すフローチャート
【図１６】図１５に示すステップＳ５３の独立動作モード処理の詳細な流れの一例を示すサブフローチャート
【発明を実施するための形態】
【００５１】
［１．ゲームシステムの構成］
以下、本実施形態の一例に係るゲームシステムについて説明する。図１は、ゲームシステムに含まれる各装置の一例を示す図である。図１に示すように、ゲームシステム１は、本体装置２と、左コントローラ３および右コントローラ４と、リング型拡張装置５とを含む。
【００５２】
本体装置２は、情報処理装置の一例であり、本実施形態ではゲーム機本体として機能する。本体装置２には、左コントローラ３および右コントローラ４がそれぞれ着脱可能である（図１および図３参照）。つまり、ユーザは、左コントローラ３および右コントローラ４をそれぞれ本体装置２に装着して一体化された装置として使用することができる（図２参照）。また、ユーザは、本体装置２と左コントローラ３および右コントローラ４とを別体として使用することもできる（図３参照）。なお、以下においては、本体装置２と各コントローラ３および４とをまとめて、「ゲーム装置」と呼ぶことがある。
【００５３】
リング型拡張装置５は、右コントローラ４に用いられる拡張装置の一例である。リング型拡張装置５は、右コントローラ４をリング型拡張装置５に装着した状態で使用される。このように、本実施形態においては、ユーザは、右コントローラ４をリング型拡張装置５に装着した状態で使用することもできる（図１０参照）。なお、リング型拡張装置５は、右コントローラ４に限らず、左コントローラ３を自身に装着することが可能であってもよい。
【００５４】
［１−１．ゲーム装置の構成］
図２は、本体装置２に左コントローラ３および右コントローラ４を装着した状態の一例を示す図である。図２に示すように、左コントローラ３および右コントローラ４は、それぞれ本体装置２に装着されて一体化されている。本体装置２は、ゲームシステム１における各種の処理（例えば、ゲーム処理）を実行する装置である。本体装置２は、ディスプレイ１２を備える。左コントローラ３および右コントローラ４は、ユーザが入力を行うための操作部を備える装置である。
【００５５】
図３は、本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図である。図２および図３に示すように、左コントローラ３および右コントローラ４は、本体装置２に着脱可能である。なお、以下において、左コントローラ３および右コントローラ４の総称として「コントローラ」と記載することがある。
【００５６】
図４は、本体装置２の一例を示す六面図である。図４に示すように、本体装置２は、略板状のハウジング１１を備える。本実施形態において、ハウジング１１の主面（換言すれば、表側の面、すなわち、ディスプレイ１２が設けられる面）は、大略的には矩形形状である。
【００５７】
図４に示すように、本体装置２は、ハウジング１１の主面に設けられるディスプレイ１２を備える。ディスプレイ１２は、本体装置２が生成した画像を表示する。本実施形態においては、ディスプレイ１２は、液晶表示装置（ＬＣＤ）とする。ただし、ディスプレイ１２は任意の種類の表示装置であってよい。なお、本体装置２は画像を外部モニタに出力することもできる。
【００５８】
本体装置２は、ハウジング１１の内部においてスピーカを備えている。図４に示すように、ハウジング１１の主面には、スピーカ孔１１ａおよび１１ｂが形成される。そして、スピーカの出力音は、これらのスピーカ孔１１ａおよび１１ｂからそれぞれ出力される。
【００５９】
また、本体装置２は、本体装置２が左コントローラ３と有線通信を行うための端子である左側端子１７と、本体装置２が右コントローラ４と有線通信を行うための右側端子２１を備える。
【００６０】
図４に示すように、本体装置２は、スロット２３を備える。スロット２３は、ハウジング１１の上側面に設けられる。スロット２３は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム１およびそれと同種の情報処理装置に専用の記憶媒体（例えば、専用メモリカード）である。所定の種類の記憶媒体は、例えば、本体装置２で利用されるデータ（例えば、アプリケーションのセーブデータ等）、および／または、本体装置２で実行されるプログラム（例えば、アプリケーションのプログラム等）を記憶するために用いられる。また、本体装置２は、電源ボタン２８を備える。
【００６１】
図５は、右コントローラ４の一例を示す六面図である。図５に示すように、右コントローラ４は、ハウジング５１を備える。本実施形態においては、ハウジング５１は、縦長の形状、すなわち、上下方向（すなわち、図５に示すｙ軸方向）に長い形状である。右コントローラ４は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング５１は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ４は、横長となる向きで把持されることも可能である。右コントローラ４が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００６２】
右コントローラ４は、方向入力部としてアナログスティック５２を備える。図５に示すように、アナログスティック５２は、ハウジング５１の主面に設けられる。ユーザは、アナログスティック５２を傾倒することによって傾倒方向に応じた方向の入力（および、傾倒した角度に応じた大きさの入力）が可能である。また、右コントローラ４は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック５２を押下する入力が可能である。
【００６３】
また、右コントローラ４は、各種操作ボタンを備える。右コントローラ４は、ハウジング５１の主面上に４つの操作ボタン５３〜５６（具体的には、Ａボタン５３、Ｂボタン５４、Ｘボタン５５、およびＹボタン５６）を備える。さらに、右コントローラ４は、＋（プラス）ボタン５７およびホームボタン５８を備える。また、右コントローラ４は、ハウジング５１の側面の右上に第１Ｒボタン６０およびＺＲボタン６１を備える。また、右コントローラ４は、ハウジング５１の側面の、本体装置２に装着される際に装着される側の面に第２Ｌボタン６５および第２Ｒボタン６６を備える。これらの操作ボタンは、本体装置２で実行される各種プログラム（例えば、ＯＳプログラムやアプリケーションプログラム）に応じた指示を行うために用いられる。
【００６４】
また、右コントローラ４は、右コントローラ４が本体装置２と有線通信を行うための端子６４を備える。
【００６５】
図５に示すように、右コントローラ４は、通知用ＬＥＤ６７を備える。通知用ＬＥＤ６７は、ユーザに対して所定の情報を通知するための通知部である。通知用ＬＥＤ６７は、上記スライダ６２に設けられ、具体的には、スライダ６２の装着面（すなわち、図５に示すｘ軸正方向側を向く面）に設けられる。本実施形態においては、右コントローラ４は、通知用ＬＥＤ６７として、４つのＬＥＤを備える。上記所定の情報は、例えば、本体装置２によって右コントローラ４に対して付された番号や、右コントローラ４の電池残量に関する情報である。
【００６６】
なお、左コントローラ３は、右コントローラ４と同様、アナログスティックおよび複数の操作ボタンを備える。また、左コントローラ３は、右コントローラ４と同様、本体装置２と有線通信を行うための端子を備える。
【００６７】
図６は、本体装置２の内部構成の一例を示すブロック図である。本体装置２は、図４に示す構成の他、図６に示す各構成要素８１〜９１、９７、および９８を備える。これらの構成要素８１〜９１、９７、および９８のいくつかは、電子部品として電子回路基板上に実装されてハウジング１１内に収納されてもよい。
【００６８】
本体装置２は、プロセッサ８１を備える。プロセッサ８１は、本体装置２において実行される各種の情報処理を実行する情報処理部であって、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のみから構成されてもよいし、ＣＰＵ機能、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）機能等の複数の機能を含むＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）から構成されてもよい。プロセッサ８１は、記憶部（具体的には、フラッシュメモリ８４等の内部記憶媒体、あるいは、スロット２３に装着される外部記憶媒体等）に記憶される情報処理プログラム（例えば、ゲームプログラム）を実行することによって、各種の情報処理を実行する。
【００６９】
本体装置２は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ８４およびＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８５を備える。フラッシュメモリ８４およびＤＲＡＭ８５は、プロセッサ８１に接続される。フラッシュメモリ８４は、主に、本体装置２に保存される各種のデータ（プログラムであってもよい）を記憶するために用いられるメモリである。ＤＲＡＭ８５は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【００７０】
本体装置２は、スロットインターフェース（以下、「Ｉ／Ｆ」と略記する。）９１を備える。スロットＩ／Ｆ９１は、プロセッサ８１に接続される。スロットＩ／Ｆ９１は、スロット２３に接続され、スロット２３に装着された所定の種類の記憶媒体（例えば、専用メモリカード）に対するデータの読み出しおよび書き込みを、プロセッサ８１の指示に応じて行う。
【００７１】
プロセッサ８１は、フラッシュメモリ８４およびＤＲＡＭ８５、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【００７２】
本体装置２は、コントローラ通信部８３を備える。コントローラ通信部８３は、プロセッサ８１に接続される。コントローラ通信部８３は、左コントローラ３および／または右コントローラ４と無線通信を行う。本体装置２と左コントローラ３および右コントローラ４との通信方式は任意であるが、本実施形態においては、コントローラ通信部８３は、左コントローラ３との間および右コントローラ４との間で、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信を行う。
【００７３】
また、ディスプレイ１２は、プロセッサ８１に接続される。プロセッサ８１は、（例えば、上記の情報処理の実行によって）生成した画像および／または外部から取得した画像をディスプレイ１２に表示する。
【００７４】
図７は、本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図である。なお、本体装置２に関する内部構成の詳細については、図６で示しているため図７では省略している。
【００７５】
右コントローラ４は、本体装置２との間で通信を行う通信制御部１１１を備える。図７に示すように、通信制御部１１１は、端子６４を含む各構成要素に接続される。本実施形態においては、通信制御部１１１は、端子６４を介した有線通信と、端子６４を介さない無線通信との両方で本体装置２と通信を行うことが可能である。通信制御部１１１は、右コントローラ４が本体装置２に対して行う通信方法を制御する。すなわち、右コントローラ４が本体装置２に装着されている場合、通信制御部１１１は、端子６４を介して本体装置２と通信を行う。また、右コントローラ４が本体装置２から外されている場合、通信制御部１１１は、本体装置２（具体的には、コントローラ通信部８３）との間で無線通信を行う。コントローラ通信部８３と通信制御部１１１との間の無線通信は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）の規格に従って行われる。
【００７６】
また、右コントローラ４は、例えばフラッシュメモリ等のメモリ１１２を備える。通信制御部１１１は、例えばマイコン（マイクロプロセッサとも言う）で構成され、メモリ１１２に記憶されるファームウェアを実行することによって各種の処理を実行する。
【００７７】
右コントローラ４は、各ボタン１１３（具体的には、ボタン５３〜５８、６０、６１、６５、および６６）を備える。また、右コントローラ４は、アナログスティック（図７では「スティック」と記載する）５２を備える。各ボタン１１３およびアナログスティック５２は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部１１１へ出力する。
【００７８】
右コントローラ４は、慣性センサを備える。具体的には、右コントローラ４は、加速度センサ１１４を備える。また、右コントローラ４は、角速度センサ１１５を備える。本実施形態においては、加速度センサ１１４は、所定の３軸（例えば、図５に示すｘｙｚ軸）方向に沿った加速度の大きさを検出する。なお、加速度センサ１１４は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサ１１５は、所定の３軸（例えば、図５に示すｘｙｚ軸）回りの角速度を検出する。なお、角速度センサ１１５は、１軸回りあるいは２軸回りの角速度を検出するものであってもよい。加速度センサ１１４および角速度センサ１１５は、それぞれ通信制御部１１１に接続される。そして、加速度センサ１１４および角速度センサ１１５の検出結果は、適宜のタイミングで繰り返し通信制御部１１１へ出力される。
【００７９】
通信制御部１１１は、各入力部（具体的には、各ボタン１１３、アナログスティック５２、各センサ１１４および１１５）から、入力に関する情報（具体的には、操作に関する情報、またはセンサによる検出結果）を取得する。通信制御部１１１は、取得した情報（または取得した情報に所定の加工を行った情報）を含む操作データを本体装置２へ送信する。なお、操作データは、所定時間に１回の割合で繰り返し送信される。なお、入力に関する情報が本体装置２へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【００８０】
上記操作データが本体装置２へ送信されることによって、本体装置２は、右コントローラ４に対して行われた入力を得ることができる。すなわち、本体装置２は、各ボタン１１３およびアナログスティック５２に対する操作を、操作データに基づいて判別することができる。また、本体装置２は、右コントローラ４の動きおよび／または姿勢に関する情報を、操作データ（具体的には、加速度センサ１１４および角速度センサ１１５の検出結果）に基づいて算出することができる。
【００８１】
右コントローラ４は、振動によってユーザに通知を行うための振動子１１７を備える。本実施形態においては、振動子１１７は、本体装置２からの指令によって制御される。すなわち、通信制御部１１１は、本体装置２からの上記指令を受け取ると、当該指令に従って振動子１１７を駆動させる。ここで、右コントローラ４は、コーデック部１１６を備える。通信制御部１１１は、上記指令を受け取ると、指令に応じた制御信号をコーデック部１１６へ出力する。コーデック部１１６は、通信制御部１１１からの制御信号から振動子１１７を駆動させるための駆動信号を生成して振動子１１７へ与える。これによって振動子１１７が動作する。なお、本実施形態においては、振動子１１７はボイスコイルモータである。すなわち、振動子１１７は、自身に入力される信号に応じて振動を発生することが可能であるとともに、当該信号に応じて音を発生することが可能である。例えば、可聴域の周波数の信号が振動子１１７に入力される場合、振動部２７１は、振動を発生するとともに音（すなわち、可聴音）を発生する。
【００８２】
右コントローラ４は、電力供給部１１８を備える。本実施形態において、電力供給部１１８は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、右コントローラ４の各部（具体的には、バッテリの電力の給電を受ける各部）に接続される。
【００８３】
なお、図示しないが、左コントローラ３は、図７に示す右コントローラ４の各構成と同様の構成を備える。
【００８４】
［１−２．リング型拡張装置の構成］
図８は、リング型拡張装置の一例を示す図である。なお、図８は、右コントローラ４が装着された状態のリング型拡張装置５を示している。本実施形態においては、リング型拡張装置５は、右コントローラ４を装着可能な拡張装置である。詳細は後述するが、本実施形態においては、ユーザは、リング型拡張装置５に力を加えて変形させるという新規な操作を行う。ユーザは、例えばエクササイズを行う感覚でリング型拡張装置５を用いたフィットネス動作を行うことによって、リング型拡張装置５に対する操作を行うことができる。
【００８５】
図８に示すように、リング型拡張装置５は、環状部２０１と、本体部２０２とを備える。環状部２０１は、環状の形状を有する。なお、本実施形態においては、環状部２０１は、後述する弾性部材および台座部によって環状に形成される。本実施形態においては、環状部２０１は円環状である。なお、他の実施形態においては、環状部２０１の形状は任意であり、例えば楕円環状であってもよい。
【００８６】
本体部２０２は、環状部２０１に設けられる。本体部２０２は、図示しないレール部を有する。レール部は、右コントローラ４を装着可能な装着部の一例である。本実施形態においては、レール部は、右コントローラ４のスライダ６２（図５参照）に対してスライド可能に係合する。スライダ６２がレール部材に対して所定の直線方向（すなわち、スライド方向）に挿入されることで、レール部材に対してスライダ６２が当該直線方向にスライド移動が可能な状態でレール部材がスライダ６２と係合する。なお、レール部は、コントローラのスライダに対してスライド可能に係合することが可能である点で、本体装置２が有するレール部と同様である。そのため、レール部は、本体装置２が有するレール部と同様の構成であってもよい。
【００８７】
本実施形態においては、環状部２０１によって形成される環を正面視する方向（「正面視方向」と呼ぶ）に平行な方向を、リング型拡張装置５の前後方向（すなわち、図８に示すＺ軸方向）とする。「（環の）正面視方向」とは、例えば、環の外縁により表される形状の面積が最も大きく見える方向である。環が円環である場合、「正面視方向」とは、環が円形に見える方向であると言うこともできる。
【００８８】
また、レール部は、環状部２０１を基準として、環状部２０１よりも前後方向における一方側に設けられる。なお、本実施形態では、上記一方側を、リング型拡張装置５の前側（換言すれば、正面手前側）とし、その反対側を、リング型拡張装置５の後側（換言すれば、奥側）とする。
【００８９】
本実施形態においては、右コントローラ４は、係止部６３を有する（図５参照）。係止部６３は、スライダ６２から側方（すなわち、図５に示すｚ軸正方向）に突出して設けられる。係止部６３は、スライダ６２の内部の方向へ移動可能であるとともに、上記側方へ突出した状態となる向きに（例えばバネによって）付勢されている。また、レール部には、切欠きが設けられる。スライダ６２がレール部の奥まで挿入された状態において、係止部６３は切欠きに係止する。レール部にスライダ６２が係合した状態で係止部６３が切欠きに係止することによって、本体部２０２に右コントローラ４が装着される。
【００９０】
なお、右コントローラ４は、押下可能な解除ボタン６９を備える（図５参照）。上記係止部６３は、解除ボタン６９が押下されることに応じて、スライダ６２の内部の方向へ移動し、スライダ６２に対して突出しない（あるいは、ほとんど突出しない）状態となる。したがって、リング型拡張装置５の本体部２０２に右コントローラ４が装着された状態において、解除ボタン６９が押下されると、係止部６３は切欠きに係止しなくなる（あるいは、ほとんど係止しなくなる）。以上より、リング型拡張装置５の本体部２０２に右コントローラ４が装着される状態において、ユーザは、解除ボタン６９を押下することによって右コントローラ４をリング型拡張装置５から容易に取り外すことができる。
【００９１】
図８に示すように、リング型拡張装置５は、グリップカバー２０３および２０４を有する。グリップカバー２０３および２０４は、ユーザが把持するための部品である。本実施形態においては、グリップカバー２０３および２０４を設けることによって、ユーザはリング型拡張装置５を把持しやすくなっている。以下、グリップカバー２０３および２０４の詳細について説明する。
【００９２】
図８に示すように、本実施形態においては、環状部２０１に２つのグリップカバー２０３および２０４が設けられる。ここで、本実施形態においては、グリップカバー２０３および２０４は、環状部２０１に対して取り外し可能である。グリップカバー２０３および２０４は、環状部２０１における把持部分に取り付けられる。ここで、把持部分とは、環状部２０１のうちで、ユーザが把持するための部分である。本実施形態においては、環状部２０１の右端付近の部分と、環状部２０１の左端付近の部分とが、把持部分である。すなわち、環状部２０１の中心に対して本体部２０２が中心角０度の位置にあるとした場合、＋９０度付近の位置と−９０度付近の位置とに把持部分が設けられているとも言える。以下では、環状部２０１の右端付近の把持部分を右把持部分と呼び、環状部２０１の左端付近の把持部分を左把持部分と呼ぶ。図示しないが、把持部分には、グリップカバー２０３または２０４を取り付けるための構成が設けられる。本実施形態のように環状部２０１に対してグリップカバー２０３または２０４が取り外し可能である場合、グリップカバー２０３または２０４を取り付けるための構成が設けられる部分が把持部分であると言うことができる。
【００９３】
なお、把持部分は、環状部２０１における把持部分以外の他の部分と区別して認識可能な任意の構成であってもよい。例えば、環状部２０１の一部（具体的には、環状部２０１の左端付近および右端付近の部分）が、他の部分と異なる色および／または模様である場合、当該一部は、（当該一部を把持して操作することをユーザに認識させる機能を有するので）把持部分と言うことができる。また、環状部２０１の一部（具体的には、環状部２０１の左端付近および右端付近の部分）が、他の部分よりも太く形成される場合、当該一部は、（当該一部を把持して操作することをユーザに認識させる機能を有するので）把持部分と言うことができる。例えば、上記グリップカバーと同様の部材が取り外し不可能に環状部２０１に固定されている場合、当該部材は把持部分と言うことができる。以上のように、リング型拡張装置５は、把持部分によって、適切な場所を把持した状態でユーザに操作を行わせることができる。
【００９４】
図９は、リング型拡張装置５が備える構成要素の電気的な接続関係を示すブロック図である。図９に示すように、リング型拡張装置５は、歪み検出部２１１を備える。歪み検出部２１１は、環状部２０１が変形したことを検出する検出部の一例である。本実施形態においては、歪み検出部２１１は、歪みゲージを含む。歪み検出部２１１は、後述する弾性部材の変形に応じた台座部の歪みを示す信号（換言すれば、弾性部材の変形の大きさおよび変形の向きを示す信号）を出力する。
【００９５】
ここで、本実施形態においては、環状部２０１は、弾性変形可能な弾性部と、台座部とを有する。台座部は、当該台座部と弾性部材とによって環が形成されるように当該弾性部材の両端部を保持する。なお、台座部は、本体部２０２の内部に設けられるので、図８において図示されていない。台座部は、弾性部材よりも剛性が高い材質で構成される。例えば、弾性部材は、樹脂（具体的には、ＦＲＰ（Ｆｉｂｅｒ  Ｒｅｉｎｆｏｒｃｅｄ  Ｐｌａｓｔｉｃｓ））で構成され、台座部は、金属で構成される。上記歪みゲージは、台座部に設けられ、当該台座部の歪みを検出する。環状部２０１が定常状態から変形した場合、変形によって台座部に歪みが生じるので、歪みゲージによって台座部の歪みが検出される。検出された歪みに基づいて、環状部２０１が変形する向き（すなわち、２つのグリップカバー２０３および２０４が近づく向き、または、離れる向き）と、変形量とを算出することができる。
【００９６】
なお、他の実施形態においては、歪み検出部２１１は、歪みゲージに代えて、環状部２０１が定常状態から変形したことを検出可能な任意のセンサを含んでもよい。例えば、検出部２１１は、環状部２０１が変形した場合に加わる圧力を検出する感圧センサを含んでもよいし、環状部２０１が曲げられた量を検出する曲げセンサを含んでもよい。
【００９７】
リング型拡張装置５は、信号変換部２１２を備える。本実施形態においては、信号変換部２１２は、アンプと、ＡＤコンバータとを含む。信号変換部２１２は、歪み検出部２１１に電気的に接続され、歪み検出部２１１の出力信号をアンプによって増幅し、ＡＤコンバータによってＡＤ変換を行う。信号変換部２１２は、歪み検出部２１１によって検出された歪み値を示すデジタル信号を出力する。なお、他の実施形態においては、信号変換部２１２はＡＤコンバータを含まず、後述する制御部２１３がＡＤコンバータを含んでいてもよい。
【００９８】
リング型拡張装置５は、制御部２１３を備える。制御部２１３は、プロセッサとメモリとを備える処理回路であり、例えばＭＣＵ（Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ）である。制御部２１３は、信号変換部２１２に電気的に接続され、信号変換部２１２の出力信号が制御部２１３に入力される。また、リング型拡張装置５は、端子２１４を備える。端子２１４は、制御部２１３に電気的に接続される。リング型拡張装置５に右コントローラ４が装着されている場合、制御部２１３は、信号変換部２１２の出力信号が示す歪み値を示す情報（換言すれば、後述するリング操作データ）を、端子２１４を介して右コントローラ４へ送信する。
【００９９】
リング型拡張装置５は、電力変換部２１５を備える。電力変換部２１５は、上記各部２１１〜２１４に電気的に接続される。電力変換部２１５は、端子２１４を介して外部（すなわち、右コントローラ４）から供給される電力を、上記各部２１１〜２１４に供給する。電力変換部２１５は、供給される電力について電圧等の調整を行って上記各部２１１〜２１４に供給してもよい。
【０１００】
なお、リング型拡張装置５が他の装置へ送信する「歪み検出部の検出結果に関するデータ」は、当該検出結果（本実施形態においては、台座部の歪みを示す、歪み検出部２１１の出力信号）そのものを示すデータであってもよいし、当該検出結果に対して何らかの処理（例えば、データ形式の変換、および／または、歪み値に対する計算処理等）が行われることによって得られるデータであってもよい。例えば、制御部２１３は、上記検出結果である歪み値に基づいて弾性部材の変形量を算出する処理を行ってもよく、このとき、「歪み検出部の検出結果に関するデータ」は、当該変形量を示すデータであってもよい。
【０１０１】
なお、他の実施形態においては、リング型拡張装置５は、電池を備え、当該電池の電力によって動作してもよい。また、リング型拡張装置５が備える電池は、右コントローラ４から供給される電力によって充電可能な充電池であってもよい。
【０１０２】
図１０は、リング型拡張装置５をユーザが使用する様子の一例を示す図である。図１０に示すように、ユーザは、ゲーム装置（すなわち、本体装置２ならびに各コントローラ３および４）に加えて、リング型拡張装置５を用いてゲームを行うことができる。
【０１０３】
例えば図１０に示すように、ユーザは、右コントローラ４が装着されたリング型拡張装置５を両手で把持する。このとき、ユーザは、リング型拡張装置５に対する操作（例えば、リング型拡張装置５を変形させる操作、および、リング型拡張装置５を動かす操作）によって、ゲームを行うことができる。
【０１０４】
なお、図１０においては、ユーザがグリップカバー２０３および２０４を把持してリング型拡張装置５を押し込むことで変形させる動作を行う様子を例示している。この動作によって、ユーザは、両腕を鍛えるフィットネス動作をゲーム操作として行うことができる。なお、ユーザはリング型拡張装置５に対する種々の動作でゲーム操作を行うことができる。例えば、ユーザは、一方のグリップカバーを両手で把持し、他方のグリップカバーを腹部に当てた状態で、リング型拡張装置５を変形させる動作を行うこともできる。この動作によって、ユーザは、腕と腹筋を鍛えるフィットネス動作をゲーム操作として行うことができる。また、ユーザは、両足の内股にグリップカバー２０３および２０４を当ててリング型拡張装置５を足で挟んだ状態で、リング型拡張装置５を変形させる動作を行うこともできる。この動作によって、ユーザは、足の筋肉を鍛えるフィットネス動作をゲーム操作として行うことができる。このように、本実施形態によれば、円環状であるリング型拡張装置５を用いることによって、ユーザは多くの種類のフィットネス動作を行うことができる。
【０１０５】
［２．右コントローラ４およびリング型拡張装置５における動作の概要］
図１１〜図１３を参照して、右コントローラ４と、当該右コントローラ４が装着されたリング型拡張装置５とにおける動作について説明する。本実施形態においては、右コントローラ４およびリング型拡張装置５は、本体動作モードおよび独立動作モードという、２種類のモードで動作を行うことが可能である。本体動作モードは、右コントローラ４およびリング型拡張装置５が本体装置２とともに動作するモードであり、右コントローラ４および／またはリング型拡張装置５に対するユーザの入力に基づく処理（例えば、本体装置２が実行中のアプリケーションにおける処理）を本体装置２が実行するモードである。また、独立動作モードは、右コントローラ４およびリング型拡張装置５が本体装置２とは独立して処理を実行するモードである。独立動作モードにおいては、右コントローラ４および／またはリング型拡張装置５に対するユーザの入力に基づく処理が、本体装置２によることなく、右コントローラ４およびリング型拡張装置５によって実行される。
【０１０６】
［２−１．本体動作モードにおける処理の流れ］
図１１は、本体動作モードにおける装置間のデータの基本的な流れの一例を示す図である。本体動作モードにおいては、右コントローラ４とリング型拡張装置５との関係においては、右コントローラ４が親となり、リング型拡張装置５が子となって通信が行われる。すなわち、本体動作モードにおいては、右コントローラ４がリング型拡張装置５に対してデータの送信を要求し、この要求に応じてリング型拡張装置５がデータを右コントローラ４へ送信する流れで通信が行われる。
【０１０７】
まず、本体装置２は、送信要求信号をリング型拡張装置５へ送信する（ステップＳ１）。送信要求信号は、当該信号の送信先に対してデータの送信を要求する信号である。なお、送信要求信号は、送信先の装置の動作、あるいは、送信すべきデータの内容を含むものであってもよいし、含まないものであってもよい。例えば、送信要求信号は、送信先の装置に対する指示を示すコマンドを表す信号であってもよい。また例えば、送信要求信号を受信したことに応じて所定のデータを送信することが通信プロトコルにおいて定められている場合、送信要求信号は、送信先の装置に対する指示内容を含む必要は無く、当該送信要求信号とは異なる他の信号と識別可能な任意の内容であってよい。なお、本実施形態においては、右コントローラ４への送信要求信号の送信は、所定時間に１回の割合で到来する送信タイミングで行われる。
【０１０８】
また、本体装置２は、送信要求信号を送信する際、必要に応じて、右コントローラ４に所定の動作を実行させるコマンドを右コントローラ４へ送信する。上記コマンドとは、例えば、右コントローラ４に対して音および振動を出力させる指示を示す出力コマンド、および／あるいは、通知用ＬＥＤ６７を発光させる指示を示す発光コマンド等である。
【０１０９】
送信要求信号を受信した右コントローラ４は、まず、リング型拡張装置５からデータを取得する。具体的には、右コントローラ４は、送信要求信号をリング型拡張装置５へ送信する（ステップＳ２）。リング型拡張装置５は、右コントローラ４からの送信要求信号を受信したことに応じて、リング操作データを右コントローラ４へ送信する（ステップＳ３）。これによって、右コントローラ４はリング型拡張装置５からのリング操作データを取得する。なお、リング操作データとは、リング型拡張装置５に対する操作を示すデータである。本実施形態においては、リング操作データは、上記歪み値を示す情報を含む。具体的には、リング型拡張装置５の制御部２１３は、端子２１４を介してリング操作データを右コントローラ４へ送信する。
【０１１０】
なお、右コントローラ４がリング型拡張装置５から取得するデータの内容を本体装置２が指定するようにしてもよい。例えば、本体装置２から右コントローラ４へ送信される送信要求信号は、リング型拡張装置５から取得するデータを指定する情報（例えば、リング操作データを示す情報）を含んでいてもよい。
【０１１１】
次に、右コントローラ４は、リング型拡張装置５から受信したリング操作データと、コントローラデータとを本体装置２へ無線で送信する（ステップＳ４）。コントローラデータとは、右コントローラ４に対する操作を示すデータである。本実施形態においては、コントローラデータは、右コントローラ４に含まれる各入力部（具体的には、各ボタン１１３、アナログスティック５２、各センサ１１４および１１５）から取得された情報を含む。なお、右コントローラ４の通信制御部１１１は、コントローラデータとリング操作データとをまとめて本体装置２へ送信してもよいし、別個に本体装置２へ送信してもよい。また、通信制御部１１１は、リング操作データに基づくデータを本体装置２へ送信すればよい。なお、「リング操作データに基づくデータ」とは、例えば、リング操作データ自体であってもよいし、リング操作データに何らかの加工（例えば、データ形式の変換、および／または、歪み値に対する計算処理等）を行ったデータであってもよい。なお、本体動作モードにおいては、後述する独立動作モードとは異なり、右コントローラ４はコントローラデータを周辺装置へ送信せず、周辺装置はコントローラデータを右コントローラ４から受信しない。
【０１１２】
また、本体装置２から送信要求信号とともにコマンドを受信した場合、右コントローラ４は、当該コマンドに応じた動作を行う（ステップＳ５）。例えば、右コントローラ４は、上記出力コマンドを受信したことに応じて、振動子１１７を振動させる。また、右コントローラ４は、上記発光コマンドを受信したことに応じて、通知用ＬＥＤ６７を発光させる。
【０１１３】
なお、本実施形態においては、右コントローラ４は、本体装置２からの送信要求信号（およびコマンド）の受信に応じてステップＳ２，Ｓ４，Ｓ５の処理を実行する。なお、他の実施形態においては、右コントローラ４は、ステップＳ２の処理については、本体装置２からの送信要求信号（およびコマンド）の受信とは異なるタイミングで実行し、ステップＳ４およびＳ５の処理を当該受信に応じて実行してもよい。また、他の実施形態においては、右コントローラ４は、本体装置２からの送信要求信号に応じたタイミングに代えて、自身において定められるタイミング（例えば、所定時間に１回の割合で到来するタイミング）で本体装置２への送信処理を実行してもよい。
【０１１４】
本体装置２は、右コントローラ４からのデータを受信し、受信したデータに基づく処理を実行する（ステップＳ６）。具体的には、本体装置２は、受信したデータに基づいて、実行中のアプリケーションにおける処理を実行する。この処理の内容は任意である。例えばゲームアプリケーションが実行中である場合、本体装置２は、受信したデータに基づいてゲーム処理（例えば、プレイヤキャラクタの動作を制御したり、ゲーム空間のオブジェクトに影響を与えたりする処理）を実行する。本体動作モードにおいては、上記ステップＳ１〜Ｓ６の一連の処理が繰り返し実行される。
【０１１５】
なお、本実施形態においては、右コントローラ４は、リング型拡張装置５に装着されない単独の状態においても動作することが可能である。このとき、本体装置２および右コントローラ４は、図１１に示すステップＳ１〜Ｓ６の一連の処理のうちで、Ｓ２およびＳ３の処理を除く処理を実行する。本実施形態においては、リング型拡張装置５に装着されない右コントローラ４と本体装置２とによってステップＳ１，Ｓ４−Ｓ６の処理が実行される動作態様も、本体動作モードと呼ぶ。
【０１１６】
［２−２．独立動作モードにおける処理の流れ］
図１２は、独立動作モードにおける処理およびデータの基本的な流れの一例を示す図である。独立動作モードにおいては、本体動作モードとは異なり、リング型拡張装置５が親となり、右コントローラ４が子となって通信が行われる。すなわち、独立動作モードにおいては、リング型拡張装置５が右コントローラ４に対してデータの送信を要求し、この要求に応じて右コントローラ４がデータをリング型拡張装置５へ送信する流れで通信が行われる。
【０１１７】
具体的には、リング型拡張装置５は、送信要求信号を右コントローラ４へ送信する（ステップＳ１１）。本実施形態においては、右コントローラ４への送信要求信号の送信は、所定時間（例えば、１０［ｍｓ］）に１回の割合で到来する送信タイミングで行われる。本実施形態においては、上記送信タイミングが到来する毎に、リング型拡張装置５は、送信要求信号を右コントローラ４へ送信する。
【０１１８】
また、リング型拡張装置５は、上記送信タイミングにおいて、送信要求信号に加えて、必要に応じて、右コントローラ４に所定の動作を実行させるコマンドを右コントローラ４へ送信する。上記コマンドとは、例えば、右コントローラ４に対して音および振動を出力させる指示を示す出力コマンド、および／あるいは、通知用ＬＥＤ６７を発光させる指示を示す発光コマンド等である。なお、上記送信タイミングにおいて、右コントローラ４に対して何らかの動作を実行させる必要が無い場合は、コマンドは送信されず、送信要求信号のみが送信される。
【０１１９】
右コントローラ４は、リング型拡張装置５から送信要求信号を受信したことに応じて、右コントローラ４はコントローラデータを送信する（ステップＳ１２）。ここで、本実施形態においては、右コントローラ４から本体装置２へ送信されるコントローラデータと、右コントローラ４からリング型拡張装置５へ送信されるコントローラデータとは、同じ内容である。ただし、他の実施形態においては、両者は異なる内容であってもよい。ここで、独立動作モードにおいて右コントローラ４が装着される周辺装置（ここでは、リング型拡張装置５）によって実行される処理は、本体動作モードにおいて本体装置２によって実行される処理に比べて簡単な処理であると考えられる。したがって、右コントローラ４は、本体装置２へ送信するコントローラデータのうちの一部のデータを、リング型拡張装置５へ送信するコントローラデータとして用いてもよい。これによって、リング型拡張装置５へ送信するコントローラデータのデータ量を削減することができる。例えば、右コントローラ４がカメラを備えており、カメラによって撮像された画像のデータを右コントローラ４が本体装置２へ送信してもよく、このとき、右コントローラ４は、当該画像のデータについてはリング型拡張装置５へ送信しないようにしてもよい。
【０１２０】
なお、独立動作モードにおいては本体動作モードとは異なり、右コントローラ４は、本体装置２へはコントローラデータを送信しない（図１２参照）。なお、独立動作モードにおいて、本体装置２は、右コントローラ４との通信を行わないが、スリープ状態である必要は無く、スリープ状態から復帰して何らかの処理を実行していてもよい。
【０１２１】
また、リング型拡張装置５からコマンドを受信した場合、右コントローラ４は、当該コマンドに応じた動作を行う（ステップＳ１３）。例えば、右コントローラ４は、上記出力コマンドを受信したことに応じて、振動子１１７を振動させる。また、右コントローラ４は、上記発光コマンドを受信したことに応じて、通知用ＬＥＤ６７を発光させる。
【０１２２】
リング型拡張装置５は、右コントローラ４からのコントローラデータを受信し、受信したコントローラデータに基づいて処理を実行する（ステップＳ１４）。また、リング型拡張装置５は、自身の歪み検出部２１１によって検出された歪み値に基づく処理を実行する。詳細は後述するが、本実施形態においては、リング型拡張装置５は、当該リング型拡張装置５を変形させる操作に応じて、右コントローラ４に音および振動を出力させる処理や、右コントローラ４に対する入力に応じて、音および振動の出力のオン／オフを切り替える処理等を実行する。
【０１２３】
上記ステップＳ１４の処理において、リング型拡張装置５は、右コントローラ４に対するコマンドを必要に応じて生成する。独立動作モードにおいては、上記ステップＳ１１〜Ｓ１４の一連の処理が繰り返し実行される。したがって、ステップＳ１４において生成されたコマンドは、次に実行されるステップＳ１１の処理において右コントローラ４へ送信される。
【０１２４】
以上のように、本実施形態においては、右コントローラ４およびリング型拡張装置５は、本体装置２が処理を実行する本体動作モードだけでなく、本体装置２とは独立して処理を実行する独立動作モードで動作することが可能である。したがって、ユーザは、本体装置２においてアプリケーションが実行されていない期間において、独立動作モードで動作する右コントローラ４およびリング型拡張装置５を用いることができる。例えば、ユーザは、本体装置２においてアプリケーションが実行されていない期間においても、リング型拡張装置５を用いたフィットネス動作を行うことができる。
【０１２５】
また、本実施形態においては、独立動作モード中に行われたフィットネス動作の記録を示すデータが保存され、その後に本体装置２において、リング型拡張装置５を用いるアプリケーションが実行された場合に、本体装置２は当該データに基づいてゲーム処理を実行する。そのため、本実施形態においては、アプリケーションが実行されていない期間にユーザが行ったフィットネス動作の結果をアプリケーションに反映させることができる。
【０１２６】
なお、右コントローラ４およびリング型拡張装置５は、上記の本体動作モードおよび独立動作モードとは異なる他のモードで動作することが可能であってもよい。例えば、右コントローラ４は、本体装置２に装着された状態において、後述する本体装着モードで動作することも可能である。また、右コントローラ４は、これらのモードのいずれかで動作する状態とは別に、スリープ状態となることも可能である。スリープ状態において、右コントローラ４は、他の装置とのデータ通信（ただし、無線通信を開始するための信号のやり取りを除く）を行わず、自身の操作部（すなわち、各ボタン１１３、および、アナログスティック５２）に対する入力を受け付ける。スリープ状態において操作部に対する入力が検出された場合、右コントローラ４はスリープ状態から復帰する。
【０１２７】
また、上記のように、本実施形態においては、周辺装置（ここでは、リング型拡張装置５）は、独立動作モードにおいて、センサ（ここでは、歪み検出部２１１）が検知したユーザ入力に応じた周辺装置データ（ここでは、リング操作データ）に基づいて、右コントローラ４に所定の動作を実行させるコマンドを生成し、コマンドを右コントローラ４へ送信する構成である。上記の構成によれば、独立動作モードにおいては、右コントローラ４は、周辺装置からのコマンドに応じて動作するので、独立動作モードにおける右コントローラ４の処理を汎用性のあるものとすることができ、ゲームコントローラを種類の異なる周辺装置に対応させやすくすることができる。また、右コントローラ４における処理をシンプルにすることができるので、当該処理を実行するためのプログラムおよびデータのデータ量を低減することができ、右コントローラ４におけるデータ量を低減することができる。
【０１２８】
ここで、右コントローラ４が複数種類の周辺装置に装着可能であり、独立動作モードにおいては、右コントローラ４および周辺装置は、当該周辺装置に応じて異なる動作を行う場合を考える。この場合、周辺装置毎に異なる処理（例えば、周辺装置に対するユーザ入力に応じて、周辺装置毎に異なる出力を右コントローラ４から行う処理）を右コントローラ４が実行するとすれば、それぞれの処理のためのプログラムおよびデータを右コントローラ４が記憶することになるので、右コントローラ４におけるデータ量が大きくなってしまい、右コントローラ４の記憶領域を圧迫するおそれがある。これに対して、本実施形態においては、独立動作モードにおける処理が周辺装置毎に異なる場合であっても、右コントローラ４における処理を共通化することができる。例えば、周辺装置に対するユーザ入力に応じて右コントローラ４に出力を行わせる処理については、出力を行わせるコマンドを周辺装置側で生成し、コマンドに従った動作を右コントローラ４に実行させることで、周辺装置の種類によらず、右コントローラ４における処理は共通になる。これによれば、右コントローラ４を汎用的に利用することができ、周辺装置に対応させやすくなる。また、独立動作モードにおける右コントローラ４の処理の汎用性を向上することによって、右コントローラ４における処理のために記憶されるデータの量を低減することができる。
【０１２９】
また、本実施形態においては、周辺装置は、独立動作モードにおいて、右コントローラ４へ送信要求信号を送信し、送信要求信号が右コントローラ４において受信されたことに応じて右コントローラ４から送信されたコントローラデータに基づく処理を実行する構成である。これによれば、例えば、右コントローラ４に対する入力に基づく処理（例えば、右コントローラ４のボタンに対する入力に応じて、右コントローラ４の音および振動の出力のオン／オフを切り替える処理）を、コントローラデータを受信した周辺装置側で実行することができる。これによって、周辺装置毎に異なる処理については周辺装置側で実行し、複数の周辺装置で共通する処理について右コントローラ４側で実行しやすくなるので、この構成によっても、独立動作モードにおける右コントローラ４の処理を汎用性のあるものとすることができると言うことができる。つまり、上記の構成によっても、右コントローラ４を汎用的に利用することができる。また、上記の構成によって、右コントローラ４において実行する処理の増加を抑制することができ、処理のためのプログラムおよびデータを減少させることによって、右コントローラ４におけるデータ量を削減することができる。
【０１３０】
なお、右コントローラ４は、独立動作モードにおいては、周辺装置へ送信されたコントローラデータに応じたコマンドを周辺装置から受信し、当該コマンドに応じて動作する。また、右コントローラ４は、本体動作モードにおいては、本体装置２へ送信されたコントローラデータに応じたコマンドを本体装置２から受信し、当該コマンドに応じて動作する。このように、いずれのモードにおいても他の装置からのコマンドに応じて右コントローラ４が動作するようにすることで、右コントローラ４における処理をシンプルにすることができ、当該処理のためのプログラムおよびデータのデータ量を削減することができる。
【０１３１】
また、本実施形態においては、独立動作モードにおいて、周辺装置は、右コントローラ４に対するユーザ入力に応じたコントローラデータを当該右コントローラ４から受信する。これによって、右コントローラ４に対するユーザ入力に基づく処理を周辺装置側において実行することができる。また、周辺装置は、コントローラデータに基づいて、右コントローラ４に所定の動作を実行させるコマンドを生成し、当該コマンドを右コントローラへ送信する。これによって、右コントローラ４に動作を行わせるための処理を周辺装置側において実行することができる。例えば、右コントローラ４の特定のボタン入力に応じて実行する右コントローラ４の動作（例えば、振動の出力等）を周辺装置毎に異ならせる場合に、複数の周辺装置それぞれについてのボタン入力と動作との対応を右コントローラ４が記憶するとすれば、右コントローラ４において必要とされる記憶容量が大きくなるおそれがある。これに対して、本実施形態のようにすることで、右コントローラ４において必要とされる記憶容量が大きくなることを抑制できる。
【０１３２】
なお、本実施形態においては、周辺装置は、右コントローラ４が備えるボタンのうちで、操作可能な全てのボタン（具体的には、ボタン５３〜５８、６０、および、６１）に関するコントローラデータを右コントローラ４から受信する。なお、第２Ｌボタン６５および第２Ｒボタン６６は、右コントローラ４が周辺装置に装着された状態において操作不可能であるので、右コントローラ４は、これらのボタン６５および６６に関するデータを送信しなくてもよい。上記によれば、周辺装置は、右コントローラ４の操作可能な各ボタンに対する入力に基づく処理を実行することができる。また、右コントローラ４が周辺装置に送信するコントローラデータの内容を各周辺装置について共通にすることができるので、右コントローラ４の処理を汎用性のあるものにすることができる。なお、このとき、周辺装置は、コントローラデータのうちの一部のデータに基づき、当該コントローラデータのうちの他のデータには基づかないコマンドを右コントローラ４へ送信してもよい。具体的には、周辺装置は、コントローラデータのうちの一部のデータに基づき、当該コントローラデータのうちの他のデータには基づかずにコマンドを生成してもよいし、コントローラデータの全部のデータに基づいて複数のコマンドを生成し、複数のコマンドのうちの一部のコマンド（かつ、当該コントローラデータのうちの一部のデータには基づかずに生成されるコマンド）を右コントローラ４へ送信してもよい。このように、周辺装置は、コントローラデータに含まれる、各ボタンに関するデータの全てを用いて処理を実行する必要はない。また、他の実施形態においては、周辺装置は、右コントローラ４が備える全ての操作部（すなわち、各ボタンおよびアナログスティック）に関するコントローラデータを右コントローラ４から受信してもよい。
【０１３３】
［２−３．各モードでの動作が開始されるまでの処理］
次に、上記の各モードが開始されるまでの処理について説明する。本実施形態においては、右コントローラ４は、スリープ状態から復帰した後、モード毎の条件のいずれかが満たされることに応じて、条件が満たされたモードでの動作を開始する。また、詳細は後述するが、右コントローラ４が周辺装置に装着される場合には、動作すべきモードを示す情報（後述するモード情報）が右コントローラ４から当該周辺装置へ送信されることによって、当該周辺装置も右コントローラ４と同じモードで動作する。
【０１３４】
独立動作モードは、右コントローラ４と本体装置２との無線接続が確立していない状態で、かつ、独立動作モードに対応する周辺装置（すなわち、独立動作モードでの動作が可能な周辺装置）に右コントローラ４が装着されている状態において、右コントローラ４に対する所定の開始操作が検出されたことを条件として、開始される。ここで、右コントローラ４と本体装置２との無線接続が確立している状態とは、右コントローラ４と本体装置２との間で無線通信によるデータの送受信が可能な状態である。なお、無線接続が確立していない状態とは、一方の装置から他方の装置への電波が受信不可能な状態のみを意味するわけではない。無線接続が確立していない状態であっても、右コントローラ４および本体装置２は、無線接続を確立するための通信処理を実行することは可能である。なお、スリープ状態にある右コントローラ４は、本体装置２との無線接続が確立していない状態である。
【０１３５】
本実施形態においては、上記開始操作は、アナログスティック５２を押下する操作である。ただし、開始操作は右コントローラ４に対する任意の操作であってよい。また、開始操作は、右コントローラ４がスリープ状態であるときに行われた操作であってもよい。つまり、スリープ状態である右コントローラ４が、独立動作モードに対応する周辺装置に装着された状態で、当該右コントローラ４に対して開始操作が行われた場合、右コントローラ４は、スリープ状態から復帰し、独立動作モードでの動作を開始する。
【０１３６】
一方、本体動作モードは、右コントローラ４がスリープ状態から復帰後、右コントローラ４と本体装置２との無線接続が確立したことを条件として開始される。ここで、右コントローラ４は、本体装置２との無線接続が確立していない状態で自身の操作部に対する入力が検出された場合（ただし、上記の開始操作に応じて独立動作モードが開始される場合、および、独立動作モードで動作中である場合を除く）、自機と本体装置２との間における無線接続を確立するための通信処理を実行する。この通信処理によって両者の間で無線接続が確立した場合、右コントローラ４は本体動作モードで動作する。なお、上記通信処理において、本体装置２がスリープ状態である場合、あるいは、右コントローラ４からの電波が本体装置２において受信されない場合には無線接続は確立しない。この場合、本体動作モードは開始されず、右コントローラ４の動作モードが未決定である状態が維持される。なお、上記通信処理を実行させるために当該右コントローラ４に対して行う操作は、任意であり、右コントローラ４に対する所定の操作（例えば、第１Ｒボタン６０に対する操作、または、第１Ｒボタン６０およびＺＲボタン６１に対する操作）であってもよい。
【０１３７】
また、本体装置２との無線接続が確立していない状態でホームボタン５８に対する入力が検出された場合、右コントローラ４は、本体装置２をスリープ状態から復帰させる復帰信号を本体装置２へ送信してから、上記通信処理を実行する。つまり、ユーザは、スリープ状態である本体装置２と右コントローラ４との無線接続を確立させたい場合には、右コントローラ４のホームボタン５８を押下すればよい。なお、本体装置２がスリープ状態から復帰後の状態において、右コントローラ４のホームボタン５８に対する入力が検出された場合における本体装置２の挙動は任意である。例えば、アプリケーションの実行中においてホームボタン５８に対する入力が検出された場合、本体装置２は、実行中のアプリケーションを一時停止して、本体装置２におけるメニュー画像を表示するようにしてもよい。また、上記メニュー画像の表示中においてホームボタン５８に対する入力が検出された場合、本体装置２はスリープ状態に移行してもよい。
【０１３８】
以上より、ユーザは、例えば次の方法で、右コントローラ４を本体動作モードで動作させることができる。
・右コントローラ４が周辺装置に装着されていない状態で、スリープ状態である右コントローラ４の操作部に対する操作を行う。さらにこのとき、ユーザは、本体動作モードである右コントローラ４を周辺装置（例えば、リング型拡張装置５）に装着させることで、右コントローラ４および周辺装置を本体動作モードで動作させることができる。
・スリープ状態でかつ周辺装置に装着された状態である右コントローラ４を、上記開始操作とは異なる操作によってスリープ状態から復帰させる。
なお、本体装置２において実行されるアプリケーションにおいて右コントローラ４をリング型拡張装置５に装着して用いる場合、ユーザは、当該アプリケーションの実行前または実行後に、右コントローラ４と本体装置２との無線接続を確立させ、右コントローラ４を本体動作モードで動作させる。このとき、ユーザは、右コントローラ４を本体動作モードで動作させてから当該右コントローラ４をリング型拡張装置５に装着させることによって両者を本体動作モードで動作させてもよいし、右コントローラ４をリング型拡張装置５に装着させてから当該右コントローラ４を本体動作モードで動作させることによって両者を本体動作モードで動作させてもよい。
【０１３９】
なお、右コントローラ４が本体装置２に装着された場合、右コントローラ４は、本体装着モードで動作する。ここで、本体装着モードは、右コントローラ４に対するユーザの入力に基づく処理を本体装置２が実行するモードである。本体装着モードにおいては、本体装置２が右コントローラ４に対してデータの送信を要求し、この要求に応じて右コントローラ４がデータを本体装置２へ送信する流れで通信が行われる。本体装着モードにおいて右コントローラ４が行う処理は、右コントローラ４が装着されている装置（ここでは、本体装置２またはリング型拡張装置５）からのコマンドに応じて右コントローラ４が動作するという点で、独立動作モードにおいて右コントローラ４が行う処理と同様である。したがって、本実施形態においては、右コントローラ４は、独立動作モードにおける処理のためのプログラムとして、本体装着モードにおける処理のためのプログラムを用いることができる。これによって、右コントローラ４に記憶するデータの量を低減することができる。
【０１４０】
図１３は、右コントローラ４がリング型拡張装置５に装着された場合に実行される処理の流れの一例を示す図である。図１３に示される処理は、スリープ状態から復帰した後の右コントローラ４がリング型拡張装置５に装着されたことに応じて、あるいは、リング型拡張装置５に装着された右コントローラ４がスリープ状態から復帰したことに応じて、開始される。
【０１４１】
まず、右コントローラ４は、自身が装着されている装置に対する確認処理を実行する（ステップＳ２１）。確認処理は、右コントローラ４が装着されている装置の種類を確認する処理である。ここで、右コントローラ４に装着可能な周辺装置（および、本体装置２）は確認用電子部品を備えており、リング型拡張装置５も確認用電子部品２１６を備えている（図９参照）。確認用電子部品は、周辺装置（および本体装置２）の種類を右コントローラ４が確認するための電子部品であって、右コントローラ４から供給される電力によって動作する電気的構成（例えば、歪み検出部２１１、信号変換部２１２、および、制御部２１３）とは異なる電子部品である。確認用電子部品は、抵抗値を有する任意の電子部品であってよい。図９に示すように、確認用電子部品２１６は、電力変換部２１５に接続されておらず、電力変換部２１５を介した給電が行われなくてもよい。本実施形態においては、確認用電子部品は、周辺装置の種類に応じた抵抗値を有している。図９に示すように、確認用電子部品は、周辺装置の端子に電気的に接続されており、右コントローラ４が周辺装置に装着された場合、右コントローラ４の端子６４が確認用電子部品に電気的に接続される。これによって、右コントローラ４側の電気的構成と周辺装置側の確認用電子部品とによって回路（「確認用回路」と呼ぶ。）が形成される。本実施形態においては、独立動作モードに対応する周辺装置（例えば、リング型拡張装置５）は、所定の抵抗値を有する確認用電子部品を備えているものとする。したがって、右コントローラ４は、自身が周辺装置に装着されることによって形成される上記確認用回路の抵抗値に基づいて当該周辺装置の種類（ここでは、少なくとも、独立動作モードに対応する種類の周辺装置であるか）を判別することができる。
【０１４２】
確認処理において、右コントローラ４は、上記確認用回路の抵抗値を検出する。そして、右コントローラ４は、検出された抵抗値が、上記所定値を含む判定範囲内の値であるか否かを判定する。この判定は、右コントローラ４が装着されている周辺装置が、独立動作モードに対応する周辺装置であるか否かを判定する処理である。なお、本実施形態においては、検出される抵抗値に誤差が生じる可能性を考慮して、上記判定のために上記判定範囲を用いる。この所定範囲の幅は適宜設定されてよい。
【０１４３】
なお、本実施形態においては、本体装置２は、上記判定範囲外の抵抗値であって、周辺装置の確認用電子部品とは異なる抵抗値を有する確認用電子部品を備えているものとする。したがって、本実施形態においては、右コントローラ４は、検出された抵抗値によって、自身が装着されている装置が本体装置２であるか否かを判定することも可能である。上記ステップＳ２１において右コントローラ４が本体装置２に装着されたと判断された場合には、右コントローラ４は、図１３に示す処理を終了し、本体装着モードで動作を開始する。
【０１４４】
一方、自身が装着されている周辺装置が独立動作モードに対応する周辺装置であると判断した場合、右コントローラ４は、当該周辺装置（ここでは、リング型拡張装置５）に対する給電を開始する（ステップＳ２２）。なお、図示しないが、自身が装着されている周辺装置が独立動作モードに対応する周辺装置であると判断されない場合、右コントローラ４は、当該周辺装置に対する給電を開始せず、図１３に示す処理を終了し、スリープ状態となる。
【０１４５】
なお、他の実施形態においては、独立動作モードに対応しないものの、右コントローラ４からの給電を受けることが可能な周辺装置が存在してもよい。このような周辺装置は、独立動作モードに対応する周辺装置の確認用電子部品とは異なり、かつ、右コントローラ４からの給電を受けることが不可能な周辺装置の確認用電子部品とは異なる抵抗値を有する確認用電子部品を備える。このとき、右コントローラ４は、自身が装着されている周辺装置が独立動作モードに対応する周辺装置であるとは判断してはいないが、給電を行ってもよい。なお、この場合、右コントローラ４は、独立動作モードで動作を行わず、例えば、右コントローラ４と本体装置２との無線接続が確立したことを条件に本体動作モードで動作する。
【０１４６】
右コントローラ４からの給電が開始されたことに応じてリング型拡張装置５は起動する。起動後、リング型拡張装置５は、後述するモード情報が右コントローラ４から送信されてくるのを待機する待機状態となる（ステップＳ２３）。なお、この時点では、リング型拡張装置５が動作するモードは未決定である。
【０１４７】
一方、給電を開始した後、本体動作モードまたは独立動作モードを開始する条件が満たされた場合、右コントローラ４は、モード情報をリング型拡張装置５へ送信する（ステップＳ２４）。モード情報は、右コントローラ４およびそれに装着される周辺装置が動作すべきモードを示す。
【０１４８】
なお、本実施形態においては、上述のように、本体動作モードを開始する条件とは、右コントローラ４と本体装置２との無線接続が確立したことである。例えば、スリープ状態である右コントローラ４に対して上記開始操作とは異なる操作が行われたことに応じて右コントローラ４がスリープ状態から復帰したことによって、図１３に示す処理が開始された場合、右コントローラ４は、上記ステップＳ２２の後、本体装置２との無線接続が確立したことに応じて、ステップＳ２４の処理を実行する。本体動作モードを開始する条件が満たされた場合、ステップＳ２４の処理において、右コントローラ４は、本体動作モードを示すモード情報を周辺装置（ここでは、リング型拡張装置５）へ送信する。また、図１３に示す処理が開始された時点で右コントローラ４が本体動作モードで動作している場合（つまり、本体動作モードで動作している右コントローラ４がリング型拡張装置５に装着された場合）には、右コントローラ４は、上記ステップＳ２２に続いて上記ステップＳ２４の処理を実行する。
【０１４９】
また、独立動作モードを開始する条件とは、上述のように、右コントローラ４と本体装置２との無線接続が確立しておらず、かつ、独立動作モードに対応する周辺装置に右コントローラ４が装着されている状態で、上記開始操作が行われたことである。例えば、スリープ状態であって、リング型拡張装置５に装着された状態の右コントローラ４に対して上記開始操作が行われたことに応じて右コントローラ４がスリープ状態から復帰したことによって、図１３に示す処理が開始された場合、右コントローラ４は、上記ステップＳ２２の後、ステップＳ２４の処理を実行する。独立動作モードを開始する条件が満たされた場合、ステップＳ２４の処理において、右コントローラ４は、独立動作モードを示すモード情報を周辺装置（ここでは、リング型拡張装置５）へ送信する。
【０１５０】
右コントローラ４からのモード情報を受信すると、リング型拡張装置５は、モード情報を受信したことの確認のための返信を行う（ステップＳ２５）。そして、リング型拡張装置５は、モード情報により示されるモードでの動作を開始する（ステップＳ２６）。
【０１５１】
一方、右コントローラ４は、リング型拡張装置５からの返信を受信したことに応じて、モード情報により示されるモードでの動作を開始する（ステップＳ２７）。これによって、右コントローラ４およびリング型拡張装置５の両方において同じモードで動作が開始される。
【０１５２】
上記のように、本実施形態においては、周辺装置（ここでは、リング型拡張装置５）は、当該周辺装置と電気的に接続した状態の右コントローラ４から供給される電力によって動作する。右コントローラ４から供給される電力に基づいて周辺装置が起動した場合、周辺装置は、複数のモードのうちで動作すべきモードを示すモード情報を右コントローラ４から受信することを待機する待機状態となる。このとき、右コントローラ４は、上記モード情報を生成し、当該モード情報を周辺装置へ送信する。そして、周辺装置は、待機状態において右コントローラ４から受信されたモード情報により示されるモードで動作する。周辺装置は、起動時点ではどのモードで動作すべきか自身では判断することができないが、上記によれば、周辺装置の起動後において、右コントローラ４に応じた適切なモードで周辺装置を動作させることができる。
【０１５３】
また、本実施形態においては、周辺装置は、右コントローラと当該周辺装置とが電気的に接続されることによって形成される回路の一部を構成し、所定の抵抗値を有する確認用電子部品を備える。これによれば、右コントローラ４は、上記回路の抵抗値を検出することによって、周辺装置の情報（例えば、種類）を判別することができる。
【０１５４】
さらに、本実施形態においては、独立動作モードに対応する周辺装置と右コントローラ４が電気的に接続されることによって形成される確認用回路の抵抗値は、第１の値であり、独立動作モードに対応しない周辺装置と右コントローラ４が電気的に接続されることによって形成される確認用回路の抵抗値は、第１の値とは異なる第２の値である。そして、右コントローラ４は、確認用回路の抵抗値が、上記第１の値を含み、第２の値を含まない所定の範囲（すなわち、上記判定範囲）内であることを条件として、独立動作モードを示すモード情報を当該装置へ送信する。これによれば、独立動作モードに対応しない周辺装置に対して、独立動作モードを示すモード情報が送信されることを防止することができるので、右コントローラ４が装着された場合に右コントローラ４が独立動作モードで動作してしまうエラーを防止することができる。
【０１５５】
また、本実施形態においては、右コントローラ４は、確認用回路の抵抗値が第１の範囲（すなわち、上記判定範囲）内である場合、独立動作モードで動作可能であるとともに本体動作モードで動作可能である。一方、確認用回路の抵抗値が第１の範囲とは異なる第２の範囲内である場合、右コントローラ４は、本体動作モードで動作可能であり、独立動作モードでの動作を禁止する（すなわち、独立動作モードで動作しない）。このような構成によっても、独立動作モードに対応しない周辺装置に右コントローラ４が装着された場合に右コントローラ４が独立動作モードで動作してしまうエラーを防止することができる。
【０１５６】
本実施形態においては、右コントローラ４は、上記抵抗値を検出し、検出した抵抗値が第１範囲内であるか否かを判定した。ここで、上記「抵抗値が第１の範囲内である場合」および、「抵抗値が第１の範囲とは異なる第２の範囲内である場合」を判断する方法は任意である。例えば、右コントローラ４は、抵抗値に代えて、抵抗値と相関のあるパラメータ（換言すれば、抵抗値を算出可能なパラメータ。例えば、電圧や電力）に基づいて、上記の場合であるか否かの判定を行ってもよい。
【０１５７】
また、右コントローラ４は、周辺装置に装着されており、かつ、本体装置２との通信が確立していない状態で、右コントローラ４に対する所定の操作（すなわち、開始操作）を検出したことに応じて、右コントローラ４と当該周辺装置とが電気的に接続されることによって形成される確認用回路の抵抗値が上記判定範囲内であることを少なくとも条件として、独立動作モードで動作する。これによれば、ユーザは、所望のタイミングで右コントローラ４に独立動作モードを開始させることができるとともに、独立動作モードに対応しない周辺装置に右コントローラ４が装着された場合に、右コントローラ４が独立動作モードで動作してしまうエラーを防止することができる。
【０１５８】
また、右コントローラ４は、確認用回路の抵抗値が上記判定範囲内であることを少なくとも条件として（より具体的には、上記判定範囲内である抵抗値が検出されたことに応じて）、当該周辺装置のうち、当該確認用回路を形成する部分とは異なる他の部分（具体的には、歪み検出部２１１、信号変換部２１２、および、制御部２１３）に電力を供給する。なお、右コントローラ４は、上記確認用回路の抵抗値が上記判定範囲内でない場合には、当該周辺装置に電力を供給しない。これによれば、給電の必要が無い周辺装置に対して右コントローラ４が給電を行ってしまうエラーを防止することができる。また、正規でない周辺装置（例えば、リング型拡張装置５と同じ機能を有するものの、上記確認用回路の抵抗値が判定範囲外の値となる装置）に右コントローラ４が装着された場合に、当該周辺装置が動作することを防止することができる。
【０１５９】
［２−４．独立動作モードにおける処理の具体例］
次に、独立動作モードにおけるリング型拡張装置５における処理の具体例について説明する。独立動作モードにおいて、リング型拡張装置５は、ユーザが当該リング型拡張装置５を変形させる操作を検出し、操作が行われた回数をカウントして記憶する。以下、独立動作モードにおいて実行される各処理について説明する。
【０１６０】
リング型拡張装置５は、自機に対する押し込み操作および引っ張り操作を検出する。なお、押し込み操作は、リング型拡張装置５の２つの把持部分が互いに近づく方向（「押し込み方向」と呼ぶ。）に環状部２０１を変形させる操作である。また、引っ張り操作は、２つの把持部分が互いに離れる方向（「引っ張り方向」と呼ぶ。）に環状部２０１を変形させる操作である。なお、リング型拡張装置５の変形量は、歪み検出部２１１から出力される歪み値に基づいて算出することができ、当該変形量に基づいて押し込み操作または引っ張り操作を検出することができる。具体的には、リング型拡張装置５は、押し込み方向の変形量が所定の押し込み閾値よりも大きくなった場合、押し込み操作を検出し、引っ張り方向の変形量が所定の引っ張り閾値よりも大きくなった場合、引っ張り操作を検出する。リング型拡張装置５は、押し込み操作または引っ張り操作が１回検出される毎に、操作回数を１増加させるようにカウントを行う。また、リング型拡張装置５は、カウントした操作回数を制御部２１３が備えるメモリに記憶する。本実施形態においては、上記メモリは、不揮発性のメモリであり、周辺装置に対する電源供給が停止されてもデータを記憶しておく。なお、上記本体動作モードにおいては、リング型拡張装置５は、操作回数のカウントは行わず、操作回数を記憶することも行わない。
【０１６１】
なお、本実施形態においては、リング型拡張装置５は、押し込み操作と引っ張り操作とを区別せずに、両者が行われた合計の操作回数をカウントするが、他の実施形態においては、押し込み操作の操作回数と引っ張り操作の操作回数とを区別してカウントしてもよい。
【０１６２】
上記のように、本実施形態においては、独立動作モードにおいて、周辺装置は、センサ（すなわち、歪み検出部２１１）が検知したユーザ入力の回数を記憶するメモリを備える。具体的には、周辺装置は、センサによって検知された値が所定の閾値よりも大きいか否かを判定し、検知された値が閾値より大きいと判定される場合、上記ユーザ入力の回数をカウントする。これによれば、ゲームシステム１は、独立動作モード中にユーザが行った入力を用いて、独立動作モードの終了後に処理（例えば、本体装置２において実行されるアプリケーションにおける処理）を実行することができる。
【０１６３】
また、リング型拡張装置５は、押し込み操作および引っ張り操作に応じて音および振動を右コントローラ４から出力させる。本実施形態においては、リング型拡張装置５は、押し込み操作が検出されたことに応じたタイミング、および、引っ張り操作が検出されたことに応じたタイミングで、音および振動を右コントローラ４から出力させる。
【０１６４】
なお、リング型拡張装置５は、操作に応じた任意のタイミングで、右コントローラ４から音および振動を出力させるようにしてもよい。例えば、リング型拡張装置５は、変形量が上記押し込み閾値を跨いだタイミング、および、変形量が上記引っ張り閾値を跨いだタイミングで、音および振動を右コントローラ４から出力させてもよい。なお、変形量が閾値を跨いだタイミングとは、変形量が増加して閾値を上回った（すなわち、閾値よりも大きくなった）タイミングと、変形量が減少して閾値を下回った（すなわち、閾値よりも小さくなった）タイミングとの両方を含む意味である。これによれば、ユーザによる押し込み操作または引っ張り操作が検出されたタイミングと、押し込み操作または引っ張り操作の後でリング型拡張装置５が定常状態に戻る途中のタイミングとで、右コントローラ４において音および振動が出力されることとなる。
【０１６５】
また、リング型拡張装置５は、カウントされた操作回数が、所定の区切り回数（例えば、１００の倍数の回数）となったことに応じて、音および振動を右コントローラ４から出力させる。さらに、リング型拡張装置５は、カウントされた操作回数が、リング型拡張装置５の制御部２１３において設定されている上限回数（例えば、５００回）に達したことに応じて、音および振動を右コントローラ４から出力させる。なお、出力される音および振動の態様（例えば、周波数、大きさ、出力される長さ、回数等）は、１回の操作に応じて出力される場合と、操作回数が上記区切り回数に達したことに応じて出力される場合と、操作回数が上限回数に達したことに応じて出力される場合とで、それぞれ異なっていてもよい。
【０１６６】
音および振動を右コントローラ４から出力させる場合、リング型拡張装置５は、音および振動を出力させる指示を示す出力コマンドを生成して右コントローラ４へ送信する。本実施形態においては、右コントローラ４は、音および振動の両方を振動子１１７から出力する。したがって、リング型拡張装置５は、振動子１１７に入力する音および振動の波形を指定するデータを含む出力コマンドを生成する。なお、波形を指定するデータは、波形自体を示すデータであってもよいし、波形を特定する情報（例えば、周波数および振幅の情報）を示すデータであってもよいし、振動子１１７に入力される波形パターンを指定する情報（例えば、波形パターンに付された番号）を示すデータであってもよい。
【０１６７】
独立動作モードにおいて、リング型拡張装置５は、音および振動を右コントローラ４から出力させることに関する設定を、ユーザによる操作に応じて変更する。具体的には、リング型拡張装置５は、ユーザによる音切替操作に応じて音出力のオン／オフを切り替え、ユーザによる振動切替操作に応じて振動出力のオン／オフを切り替える。本実施形態においては、これらの操作は、右コントローラ４に対する操作である。具体的には、リング型拡張装置５は、右コントローラ４のＡボタン５３に対する押下操作に応じて、音出力のオン／オフを切り替え、右コントローラ４のＢボタン５４に対する押下操作に応じて、振動出力のオン／オフを切り替える。
【０１６８】
上記の操作によって音および振動に関する出力の設定が切り替えられた場合、リング型拡張装置５は、切り替え後の設定に従って上記出力コマンドを生成する。例えば、音の出力がオフに設定され、振動の出力がオンに設定されている場合、リング型拡張装置５は、振動としてのみ出力される波形（例えば、人間の可聴帯域外の周波数のみを含み、人間の可聴帯域内の周波数を含まない波形）を指定するデータを含むように、出力コマンドを生成する。また例えば、音の出力がオンに設定され、振動の出力がオフに設定されている場合、リング型拡張装置５は、音としてのみ出力される波形（例えば、人間の可聴帯域内の周波数のみを含み、人間の可聴帯域外の周波数を含まない波形）を指定するデータを含むように、出力コマンドを生成する。また例えば、音の出力および振動の出力が共にオフに設定されている場合、リング型拡張装置５は、出力が０である波形を指定するデータを含むように出力コマンドを生成する。なお、この場合にはリング型拡張装置５は出力コマンドを生成しないようにしてもよい。
【０１６９】
以上のように、本実施形態においては、音切替操作または振動切替操作が行われたことを示すコントローラデータに応じて変更される設定に基づいて出力コマンドを作成する処理が、右コントローラ４からのコントローラデータに基づいてコマンドを作成する処理の具体例である。ここで、他の実施形態においては、リング型拡張装置５は、右コントローラ４からのコントローラデータに基づいてコマンドを作成する処理として、他の処理を実行してもよい。例えば、リング型拡張装置５は、右コントローラ４に対する音切替操作または振動切替操作に応じて音および／または振動が出力されるように上記出力コマンドを生成してもよい。
【０１７０】
独立動作モードにおいて、リング型拡張装置５は、右コントローラ４の通知用ＬＥＤ６７を発光させる。本実施形態においては、リング型拡張装置５は、独立動作モード以外のモードと区別可能な態様で（例えば、４つの通知用ＬＥＤ６７を全て点灯させて）通知用ＬＥＤ６７を発光させる。これによって、右コントローラ４が独立動作モードで動作していることをユーザに通知することができる。具体的には、リング型拡張装置５は、通知用ＬＥＤ６７を発光させる指示を示す発光コマンドを生成して右コントローラ４へ送信する。発光コマンドは、４つの通知用ＬＥＤ６７を発光させる態様を示すデータを含む。なお、本実施形態においては、独立動作モードで動作する期間中、リング型拡張装置５は右コントローラ４の通知用ＬＥＤ６７を上記の態様で発光させる。したがって、リング型拡張装置５は、独立動作モードが開始されたときに、４つの通知用ＬＥＤ６７を上記の態様で発光させる指示を示す発光コマンドを生成して右コントローラ４へ送信する。そして、独立動作モードが終了されるときに、リング型拡張装置５は、４つの通知用ＬＥＤ６７の発光を停止する指示を示す発光コマンドを生成して右コントローラ４へ送信する。
【０１７１】
独立動作モードにおいて、リング型拡張装置５は、後述する終了条件が満たされた場合、独立動作モードを終了する処理（以下、「終了時処理」と呼ぶ。）を実行する。具体的には、独立動作モードを終了する場合、リング型拡張装置５は、まず、独立動作モードの終了を通知する通知音を右コントローラ４に出力させる。すなわち、リング型拡張装置５は、上記通知音を出力させる指示を示す出力コマンドを生成して右コントローラ４へ送信する。次に、リング型拡張装置５は、自身が独立動作モードを終了可能な状態となった後（例えば、メモリに対するデータの書き換え処理等が完了した後で）で、独立動作モードの終了を示す終了信号を右コントローラ４へ送信する。終了信号は、上記送信要求信号と同様、コマンドの形式であってもよいし、他の信号と識別可能な任意の内容であってよい。右コントローラ４は、上記出力コマンドをリング型拡張装置５から受信したことに応じて上記通知音を出力し、さらに、上記終了信号を受信したことに応じて独立動作モードを終了する。一方、上記終了信号を送信したリング型拡張装置５は、独立動作モードを終了する。独立動作モードを終了すると、右コントローラ４はスリープ状態となる。したがって、独立動作モードの終了に応じて、右コントローラ４からリング型拡張装置５への給電は停止される。
【０１７２】
本実施形態においては、上記終了条件は、下記の３つの条件である。
（条件Ａ）所定の終了操作が行われたこと
（条件Ｂ）右コントローラ４のホームボタン５８に対する操作が検出されたこと
（条件Ｃ）リング型拡張装置５に対する操作が所定時間（例えば、１分）の間継続して検出されないこと
上記条件Ａ〜条件Ｃのうちいずれかが満たされた場合、リング型拡張装置５は終了時処理を実行する。
【０１７３】
上記条件Ａに関して、リング型拡張装置５は、所定の終了操作に応じて上記終了時処理を実行する。本実施形態においては、終了操作は、上述の開始操作と同じ、アナログスティック５２を押下する操作である。ただし、他の実施形態においては、終了操作は任意の操作であってよい。なお、上記終了操作が検出された場合、右コントローラ４は、この時点では独立動作モードを終了せずに、リング型拡張装置５からの送信要求信号に応じて、終了操作が行われたことを示すコントローラデータを送信する。そして、終了操作が行われたことを示すコントローラデータを受信したリング型拡張装置５が、独立動作モードを終了する処理を実行することによって、上記終了信号が右コントローラ４から右コントローラ４へ送信される。右コントローラ４は、この終了信号を受信したことに応じて独立動作モードを終了する。
【０１７４】
また、上記条件Ｂに関して、リング型拡張装置５は、右コントローラ４のホームボタン５８に対する操作に応じて上記終了時処理を実行する。ここで、独立動作モードでない状態でホームボタン５８に対する操作が検出された場合には、上述のように、右コントローラ４は、本体装置２をスリープ状態から復帰させる復帰信号を本体装置２へ送信してから、上記通信処理を実行する。これに対して、独立動作モードにおいてホームボタン５８に対する操作が検出された場合には、右コントローラ４は、リング型拡張装置５からの送信要求信号に応じて、ホームボタン５８に対する操作が行われたことを示すコントローラデータを送信する。そして、ホームボタン５８に対する操作が行われたことを示すコントローラデータを受信したリング型拡張装置５は、終了時処理を実行する。このとき、終了時処理において、リング型拡張装置５は、上記終了信号とともに、復帰信号を本体装置２へ送信することを指示する復帰指示コマンドを右コントローラ４へ送信する。上記復帰指示コマンドを受信した右コントローラ４は、終了信号に応じて独立動作モードを終了した後、上記復帰信号を本体装置２へ送信する。これによれば、右コントローラ４は、独立動作モードにおいてスリープ解除ボタンに対する操作が行われた場合も、独立動作モードでない状態においてスリープ解除ボタンに対する操作が行われた場合と同様の動作を行うことができる。
【０１７５】
なお、他の実施形態においては、右コントローラ４は、復帰信号を本体装置２へ送信した後で、独立動作モードを終了してもよい。このとき、独立動作モードにおいて右コントローラ４と本体装置２との無線通信が行われる場面が生じることとなる。なお、右コントローラ４が上記復帰信号を本体装置２へ送信する時点でリング型拡張装置５においては独立動作モードにおける処理がすでに終了しており、独立動作モードにおける動作は実質的に終了していると言えるので、独立動作モードにおいて本体装置２と右コントローラ４との通信が行われても問題はないと考えられる。
【０１７６】
以上のように、本実施形態においては、独立動作モードにおいて、スリープ解除ボタン（すなわち、ホームボタン５８）に対する操作が行われたことに対応するコントローラデータを周辺装置（ここでは、リング型拡張装置５）が受信した場合、周辺装置は、本体装置２をスリープ状態から復帰させる信号を本体装置２へ送信することを指示するコマンドを生成し、当該コマンドを右コントローラ４へ送信する。右コントローラ４は、上記コマンドを周辺装置から受信したことに応じて、本体装置２をスリープ状態から復帰させる信号を本体装置２へ送信する。上記によれば、右コントローラ４は、独立動作モードにおける通常の処理（すなわち、周辺装置からのコマンドに応じた処理を右コントローラ４が行う）とは異なる特別な処理を行うことなく、独立動作モードである状態とそれ以外の状態とで実質的に同じ動作を行うことができる。上記によれば、独立動作モードにおいて右コントローラ４が特別な処理を実行しなくてもよいので、独立動作モードにおける右コントローラ４の処理をシンプルにすることができる。
【０１７７】
また、上記条件Ｃに関して、リング型拡張装置５に対する操作が所定時間（例えば、１分）の間継続して検出されない場合、リング型拡張装置５は終了時処理を実行する。ここで、リング型拡張装置５に対する操作が所定時間の間継続して検出されない場合とは、リング型拡張装置５の変形量が０近傍（なお、厳密に０でなくてよい）で所定時間維持される場合である。このような場合、リング型拡張装置５を用いたフィットネス動作をユーザが行う意思がないと考えられるので、リング型拡張装置５は、独立動作モードを終了する。
【０１７８】
上記のように、本実施形態においては、独立動作モードにおいて、右コントローラ４に対する所定の操作（上記終了操作、または、ホームボタン５８に対する操作）が行われたことに対応するコントローラデータを周辺装置（ここでは、リング型拡張装置５）が受信した場合、周辺装置は、独立動作モードの終了を示す終了信号を右コントローラ４へ送信する。
【０１７９】
ここで、仮に、上記終了信号を右コントローラ４がリング型拡張装置５へ送信するとすれば、周辺装置において何らかの処理が実行中であるタイミングで右コントローラ４から終了信号が送信されることもあり得る。このとき、右コントローラ４は独立動作モードを終了した後で周辺装置への給電を停止するので、周辺装置において何らかの処理が実行中であるタイミングで右コントローラ４からの給電が停止される場合も考えられる。このような場合、周辺装置における処理が正常に終了されないことから、独立動作モードにおける処理に不備が生じるおそれがある。例えば、周辺装置においてメモリに対する書込処理が実行されている途中で、右コントローラ４からの給電が停止されると、メモリに記憶されているデータが消去されてしまうおそれがある。
【０１８０】
これに対して、本実施形態においては、上記終了信号をリング型拡張装置５が右コントローラ４へ送信するので、周辺装置は、自身における処理が完了した後の適切なタイミングで終了信号を送信し、独立動作モードを終了することができる。このとき、上記処理の完了後に右コントローラ４からの給電が停止されることとなる。したがって、本実施形態によれば、独立動作モードの終了時に周辺装置における処理が途中で中断されてしまう可能性を低減することができ、独立動作モードを安全に終了することができる。
【０１８１】
［３．ゲームシステムにおける情報処理の具体例］
次に、右コントローラ４およびリング型拡張装置５において実行される処理の具体例について説明する。図１４は、右コントローラ４によって実行されるコントローラ処理の一例を示すフローチャートである。図１４に示す一連のコントローラ処理は、動作すべきモードを決定するための処理であり、右コントローラ４がスリープ状態から復帰したことに応じて開始される。
【０１８２】
なお、本実施形態では、右コントローラ４の通信制御部１１１のプロセッサが、メモリ１１２に記憶されるファームウェアを実行することによって、図１４に示す各ステップの処理を実行するものとして説明する。ただし、他の実施形態においては、上記各ステップの処理のうちの一部の処理を、通信制御部１１１のプロセッサとは別のプロセッサ（例えば、専用回路等）が実行するようにしてもよい。また、図１４に示す各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて（または代えて）別の処理が実行されてもよい。
【０１８３】
また、通信制御部１１１は、図１４に示す各ステップの処理を、メモリ１１２を用いて実行する。すなわち、通信制御部１１１は、各処理ステップによって得られる情報（換言すれば、データ）をメモリ１１２に記憶し、それ以降の処理ステップにおいて当該情報を用いる場合には、メモリ１１２から当該情報を読み出して利用する。
【０１８４】
コントローラ処理が開始されると、まずステップＳ３０において、プロセッサは、右コントローラ４が他の装置（周辺装置または本体装置２）に装着されているか否かを判定する。ステップＳ３０の判定結果が肯定である場合、ステップＳ３１の処理が実行される。一方、ステップＳ３０の判定結果が否定である場合、後述するステップＳ３８の処理が実行される。
【０１８５】
なお、他の実施形態においては、上記ステップＳ３０の判定処理は、上述の確認処理によって行われてもよい。すなわち、プロセッサは、確認処理を実行した結果、確認用電子部品が検出されない場合、右コントローラ４が他の装置に装着されていないと判定してもよい。なお、上記の変形例においては、後述するステップＳ３２の確認処理は省略されてもよい。
【０１８６】
ステップＳ３１において、プロセッサは、右コントローラ４が他の装置に装着されたことが新たに検出されたか否かを判定する。つまり、ステップＳ３１においては、右コントローラ４が他の装置にすでに装着済みである場合には判定結果が否定となる。ステップＳ３１の判定結果が肯定である場合、ステップＳ３２の処理が実行される。一方、ステップＳ３１の判定結果が否定である場合、後述するステップＳ３５の処理が実行される。
【０１８７】
ステップＳ３２において、プロセッサは、上述の確認処理（図１３に示すステップＳ２１）を実行する。確認処理によって、プロセッサは、右コントローラ４が装着されている装置の種類（具体的には、独立動作モードに対応する周辺装置であるか、それとも、本体装置２であるか）を判別することができる。ステップＳ３２の次に、ステップＳ３３の処理が実行される。なお、他の実施例においては、プロセッサは、右コントローラ４が装着されている装置の種類として、独立動作モードに対応しない周辺装置であることや、あるいは別のモードに対応する周辺装置であることを判別してもよい。
【０１８８】
ステップＳ３３において、プロセッサは、上記確認処理の結果に基づいて、右コントローラ４が本体装置２に装着されているか否かを判定する。ステップＳ３３の判定結果が肯定である場合、ステップＳ３４の処理が実行される。一方、ステップＳ３３の判定結果が否定である場合（つまり、周辺装置に装着されている場合）、後述するステップＳ３５の処理が実行される。
【０１８９】
ステップＳ３４において、プロセッサは、本体装着モードでの動作を開始する。本体装着モード中においては、プロセッサは、本体装置２から端子６４を介して受信される各種信号（具体的には、送信要求信号および終了信号等）またはコマンドに応じた処理を実行する。また、本体装着モードでの動作が終了した場合、プロセッサは、図１４に示すコントローラ処理を終了し、右コントローラ４をスリープ状態とする。例えば、ユーザの指示に応じて本体装置２がスリープ状態となる場合、本体動作モードと同様に、本体装置２は上記終了信号を右コントローラ４へ送信する。上記終了信号を受信した場合、プロセッサは本体装着モードでの動作を終了し、右コントローラ４はスリープ状態となる。
【０１９０】
一方、ステップＳ３５において、プロセッサは、開始操作が行われたか否かを判定する。すなわち、プロセッサは、アナログスティック５２を押下する操作が検出されたか否かを判定する。なお、右コントローラ４がスリープ状態から復帰した直後におけるステップＳ３０の判定結果が肯定となった結果実行されるステップＳ３５の処理においては、プロセッサは、アナログスティック５２を押下する操作が検出されたことに応じて右コントローラ４がスリープ状態から復帰したか否かを判定する。ステップＳ３５の判定結果が肯定である場合、ステップＳ３６の処理が実行される。一方、ステップＳ３５の判定結果が否定である場合、後述するステップＳ３８の処理が実行される。
【０１９１】
ステップＳ３６において、プロセッサは、右コントローラ４が装着されている周辺装置が独立動作モードで動作可能であるか否かを判定する。すなわち、プロセッサは、上記確認処理の結果に基づいて、右コントローラ４が装着されている周辺装置が独立動作モードに対応する周辺装置であるか否かを判定する。そして、独立動作モードに対応する周辺装置である場合、当該周辺装置に対して給電を開始し（図１３に示すステップＳ２２）、独立動作モードを示すモード情報を当該周辺装置へ送信する（図１３に示すステップＳ２４）。さらに、モード情報に応じた返信が周辺装置からあった場合、プロセッサは、右コントローラ４が装着されている周辺装置が独立動作モードで動作可能であると判定する。一方、右コントローラ４が装着されている周辺装置が独立動作モードに対応しない場合、または、上記返信が周辺装置からない場合、プロセッサは、右コントローラ４が装着されている周辺装置が独立動作モードで動作可能でないと判定する。ステップＳ３６の判定結果が肯定である場合、ステップＳ３７の処理が実行される。一方、ステップＳ３６の判定結果が否定である場合、後述するステップＳ３８の処理が実行される。
【０１９２】
ステップＳ３７において、プロセッサは、独立動作モードでの動作を開始する。独立動作モード中においては、プロセッサは、周辺装置（ここでは、リング型拡張装置５）から端子６４を介して受信される各種信号またはコマンドに応じた処理を実行する（図１２参照）。また、独立動作モードでの動作が終了した場合、プロセッサは、図１４に示すコントローラ処理を終了し、スリープ状態となる。なお、独立動作モードが終了する場合、上述のように、リング型拡張装置５から右コントローラへ終了信号が送信される。上記終了信号を受信した場合、プロセッサは独立動作モードでの動作を終了し、右コントローラ４はスリープ状態となる。
【０１９３】
一方、ステップＳ３８において、プロセッサは、本体装置２との無線接続を開始するか否かを判定する。すなわち、プロセッサは、右コントローラ４の操作部（すなわち、各ボタン１１３、および、アナログスティック５２）に対する操作が検出されたか否かを判定する。なお、本実施形態においては、操作部に対する操作に応じて右コントローラ４はスリープ状態から復帰する。したがって、右コントローラ４がスリープ状態から復帰した直後において、上記ステップＳ３０の判定処理が否定となった結果、ステップＳ３８の処理が実行される場合、プロセッサは、上記操作が検出されたと判定する。ステップＳ３８の判定結果が肯定である場合、ステップＳ３９の処理が実行される。一方、ステップＳ３８の判定結果が否定である場合、ステップＳ３０の処理が再度実行される。
【０１９４】
ステップＳ３９において、プロセッサは、右コントローラ４と本体装置２との無線接続を確立するための上記通信処理を実行する。ステップＳ３９の次に、ステップＳ４０の処理が実行される。
【０１９５】
ステップＳ４０において、プロセッサは、右コントローラ４と本体装置２との無線接続が確立したか否かを判定する。ステップＳ４０の判定結果が肯定である場合、ステップＳ４１の処理が実行される。一方、ステップＳ４０の判定結果が否定である場合、ステップＳ３０の処理が再度実行される。なお、この場合、右コントローラ４が他の装置に装着されていない間は、ステップＳ３０，Ｓ３５，Ｓ３８〜Ｓ４０の処理が繰り返し実行され、右コントローラ４と本体装置２との無線接続が確立したことに応じて、ステップＳ４０の判定結果が肯定となり、ステップＳ４１の処理が実行される。
【０１９６】
ステップＳ４１において、プロセッサは、本体動作モードでの動作を開始する。本体動作モード中において、プロセッサは、図１１に示す処理を実行して各種の信号および／またはコマンドを生成し、端子６４を介して周辺装置へ信号および／またはコマンドを送信したり、コントローラデータおよびリング操作データを無線で本体装置２へ送信したりする。なお、図示しないが、ステップＳ４１の処理中に右コントローラ４がリング型拡張装置５に装着された場合（すなわち、本体動作モードで動作している右コントローラ４がリング型拡張装置５に装着された場合）には、ステップＳ４１の処理中において、上記ステップＳ２１，Ｓ２２，Ｓ２４の一連の処理が実行される。また、本体動作モードでの動作が終了した場合、プロセッサは、図１４に示すコントローラ処理を終了し、スリープ状態となる。例えば、ユーザの指示に応じて本体装置２がスリープ状態となる場合、本体装置２は、本体動作モードの動作を右コントローラ４に終了させる終了信号を右コントローラ４へ送信する。上記終了信号を受信した場合、プロセッサは本体動作モードでの動作を終了し、右コントローラ４はスリープ状態となる。
【０１９７】
なお、図１４に示すコントローラ処理の実行中において、右コントローラ４に対して所定時間（例えば、１分）操作が行われない場合、右コントローラ４は、コントローラ処理を終了してスリープ状態となるようにしてもよい。
【０１９８】
図１５および図１６は、リング型拡張装置５によって実行される周辺装置処理の一例を示すフローチャートである。図１５および図１６に示す一連の周辺装置処理は、例えば、右コントローラ４からの給電が開始されたことによってリング型拡張装置５が起動したことに応じて開始される。
【０１９９】
なお、本実施形態では、リング型拡張装置５の制御部２１３のプロセッサが、制御部２１３が備えるメモリに記憶されるプログラムを実行することによって、図１５および図１６に示す各ステップの処理を実行するものとして説明する。ただし、他の実施形態においては、上記各ステップの処理のうちの一部の処理を、制御部２１３のプロセッサとは別のプロセッサ（例えば、専用回路等）が実行するようにしてもよい。また、図１５および図１６に示す各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて（または代えて）別の処理が実行されてもよい。
【０２００】
また、制御部２１３は、図１５および図１６に示す各ステップの処理を、メモリを用いて実行する。すなわち、制御部２１３は、各処理ステップによって得られる情報（換言すれば、データ）をメモリに記憶し、それ以降の処理ステップにおいて当該情報を用いる場合には、メモリから当該情報を読み出して利用する。
【０２０１】
周辺装置処理が開始されると、まずステップＳ５１において、プロセッサは、上述の待機状態となる。この後、右コントローラ４からのモード情報がリング型拡張装置５において受信されたことに応じて、ステップＳ５２の処理が実行される。
【０２０２】
ステップＳ５２において、プロセッサは、独立動作モードで動作するか否かを判定する。すなわち、右コントローラ４から受信されたモード情報が独立動作モードを示すか否かを判定する。ステップＳ５２の判定結果が肯定である場合、ステップＳ５３の処理が実行される。一方、ステップＳ５２の判定結果が否定である場合、後述するステップＳ５４の処理が実行される。
【０２０３】
ステップＳ５３において、プロセッサは、独立動作モード中における処理である独立動作モード処理を実行する。独立動作モード処理については後述する（図１６参照）。独立動作モード処理の終了後、プロセッサは、周辺装置処理を終了する。この後、右コントローラ４からリング型拡張装置５への給電が停止される。
【０２０４】
一方、ステップＳ５４において、プロセッサは、本体動作モードでの動作を開始する。すなわち、プロセッサは、右コントローラ４から端子２１４を介して受信される信号またはコマンドに応じた処理を実行する（図１１参照）。本体動作モード処理の終了後、プロセッサは、周辺装置処理を終了する。この後、右コントローラ４からリング型拡張装置５への給電が停止される。
【０２０５】
図１６は、図１５に示すステップＳ５３の独立動作モード処理の詳細な流れの一例を示すサブフローチャートである。独立動作モード処理においては、まずステップＳ６１において、プロセッサは、歪み検出部２１１によって検出された歪み値を取得する。ステップＳ６１の次に、ステップＳ６２の処理が実行される。
【０２０６】
ステップＳ６２において、プロセッサは、独立動作モードを終了するか否かを判定する。すなわち、プロセッサは、上記“［２−４．独立動作モードにおける処理の具体例］”で述べた終了条件のいずれかが満たされたか否かを判定する。具体的には、後述のステップＳ６８において、終了操作が行われたことを示すコントローラデータが受信された場合、その後に実行されるステップＳ６２において、上記条件Ａが満たされたと判定される。また、後述のステップＳ６８において、ホームボタン５８に対する操作が行われたことを示すコントローラデータが受信された場合、その後に実行されるステップＳ６２において、上記条件Ｂが満たされたと判定される。また、繰り返し実行される上記ステップＳ６１において取得された各歪み値が、リング型拡張装置５に対する操作が所定時間の間継続して検出されないことを表す場合、その後に実行されるステップＳ６２において、上記条件Ｃが満たされたと判定される。ステップＳ６２の判定結果が肯定である場合、ステップＳ６３の処理が実行される。一方、ステップＳ６２の判定結果が否定である場合、後述するステップＳ６４の処理が実行される。
【０２０７】
ステップＳ６３において、プロセッサは、上述の終了時処理を実行する。その後、プロセッサは、独立動作モード処理を終了する。
【０２０８】
一方、ステップＳ６４において、プロセッサは、リング型拡張装置５に関する押し込み操作または引っ張り操作が検出されたか否かを判定する。なお、押し込み操作または引っ張り操作の検出は、ステップＳ６１で取得された歪み値に基づいて、上記“［２−４．独立動作モードにおける処理の具体例］”で述べた方法に従って行われる。ステップＳ６４の判定結果が肯定である場合、ステップＳ６５の処理が実行される。一方、ステップＳ６４の判定結果が否定である場合、ステップＳ６５およびＳ６６の処理がスキップされ、後述するステップＳ６７の処理が実行される。
【０２０９】
ステップＳ６５において、プロセッサは、リング型拡張装置５に対して行われた操作の回数をカウントする。具体的には、プロセッサは、操作回数としてメモリに記憶されている値を、１だけ増加するように更新する。ステップＳ６５の次に、ステップＳ６６の処理が実行される。
【０２１０】
ステップＳ６６において、プロセッサは、音および振動の波形を生成する。すなわち、プロセッサは、右コントローラ４の振動子１１７に入力する音および振動の波形を指定するデータを生成する。なお、上述のように、音出力をオフにするように設定が切り替えられている場合、または、振動出力をオフにするように設定が切り替えられている場合には、プロセッサは、これらの設定に応じて音および／または振動の波形を生成しないようにする。ステップＳ６６の次に、ステップＳ６７の処理が実行される。
【０２１１】
ステップＳ６７において、プロセッサは、信号およびコマンドを右コントローラ４へ送信する。具体的には、プロセッサは、上述の送信要求信号の他、終了信号、出力コマンド、発光コマンド、および、復帰指示コマンドを必要に応じて生成する。そして、プロセッサは、生成された信号およびコマンドを、端子２１４を介して右コントローラ４へ送信する。ステップＳ６７の次に、ステップＳ６８の処理が実行される。
【０２１２】
ステップＳ６８において、プロセッサは、右コントローラ４からのコントローラデータを受信する。上記ステップＳ６７の処理によって送信要求信号が右コントローラ４へ送信されると、送信要求信号の受信に応じて右コントローラ４からコントローラデータが送信されるので、プロセッサは、端子２１４を介して当該コントローラデータを受信する。ステップＳ６８の次に、ステップＳ６９の処理が実行される。
【０２１３】
ステップＳ６９において、プロセッサは、ステップＳ６８で受信したコントローラデータに基づく処理を実行する。具体的には、上記“［２−４．独立動作モードにおける処理の具体例］”で述べたように、音切替操作または振動切替操作が行われたことを示すコントローラデータが受信された場合、音および振動に関する設定を変更する。なお、上記設定を示す情報は、制御部２１３のメモリに記憶される。ステップＳ６９の次に、ステップＳ６１の処理が再度実行される。これ以降、ステップＳ６２において独立動作モードを終了すると判定されるまで、上記ステップＳ６１，Ｓ６２，Ｓ６４〜Ｓ６９の処理ループが繰り返し実行される。
【０２１４】
なお、本実施形態においては、プロセッサは、上記処理ループを、所定時間に１回の割合で繰り返し実行する。つまり、リング型拡張装置５は、送信要求信号を右コントローラ４へ上記割合で定期的に送信する。なお、他の実施形態においては、リング型拡張装置５は、送信要求信号を定期的に送信する必要はない。例えば、リング型拡張装置５は、上記処理ループにおいて、送信要求信号を送信する必要が無い場合には、ステップＳ６７の処理をスキップしてもよい。また例えば、リング型拡張装置５は、右コントローラ４へコマンドを定期的に送信するとともに、右コントローラ４へ指示する内容が無い場合には、何も動作しないことを示すコマンドを右コントローラ４へ送信するようにしてもよい。
【０２１５】
［４．本実施形態の作用効果および変形例］
上記実施形態においては、周辺装置（具体的には、リング型拡張装置５）は、ゲーム装置（具体的には、本体装置２）を操作可能なゲームコントローラ（具体的には、右コントローラ４）と通信可能である。周辺装置は、ユーザ入力を検知するセンサ（具体的には、歪み検出部２１１）と、処理部（例えば、コマンドを生成する処理を実行する制御部２１３）と、送信部（例えば、コマンドを送信する制御部２１３）とを備える。周辺装置は、ゲームコントローラとの通信が確立されているときに、第１モード（具体的には、独立動作モード）と、第２モード（具体的には、本体動作モード）とを含む複数のモードのうちいずれかで動作可能である。第１モードにおいて、処理部は、センサが検知したユーザ入力に応じた周辺装置データ（例えば、歪み値を示すデータ）に基づいて、ゲームコントローラに所定の動作を実行させるコマンド（例えば、出力コマンド）を生成し、送信部は当該コマンドをゲームコントローラへ送信する。第２モードにおいて、送信部は、周辺装置データをゲームコントローラへ送信する。
【０２１６】
上記の構成によれば、第１モードにおいて、ゲームコントローラは、周辺装置からのコマンドに応じて動作することができる。そのため、第１モードにおけるゲームコントローラの処理を汎用性のあるものとすることができ、ゲームコントローラを種類の異なる周辺装置に対応させやすくすることができる。したがって、本実施形態によれば、ゲームコントローラをより多くの種類の周辺装置に対応させやすくなる。また、第１モードにおけるゲームコントローラの処理をシンプルにすることができるので、当該処理を実行するために右コントローラ４に記憶されるプログラムおよびデータのデータ量を低減することができる。
【０２１７】
また、上記実施形態においては、ゲームコントローラは、ゲーム装置を操作可能であり、周辺装置と通信可能である。また、ゲームコントローラは、操作部（具体的には、各ボタン１１３、および、アナログスティック５２）および送信部（具体的には、通信制御部）を備える。ゲームコントローラは、周辺装置との通信が接続されているときに、第１モードと、第２モードとを含む複数のモードのうちいずれかで動作可能である。第１モードにおいて、送信部は、操作部に対するユーザ入力に応じたコントローラデータを周辺装置へ送信する。第２モードにおいて、送信部は、操作部に対するユーザ入力に応じたコントローラデータをゲーム装置へ送信する。
【０２１８】
上記の構成によれば、第１モードにおいて、ゲームコントローラはコントローラデータを周辺装置へ送信する。これによれば、ゲームコントローラに対するユーザ入力に基づく処理を周辺装置側で実行することができるので、上記処理に関してゲームコントローラはコントローラデータを送信すればよいだけになるので、第１モードにおけるゲームコントローラの処理を汎用性のあるものとすることができる。また、第１モードにおけるゲームコントローラの処理をシンプルにすることができる。
【０２１９】
（ゲームコントローラと周辺装置との接続に関する変形例）
上記実施形態においては、ゲームコントローラ（具体的には、右コントローラ４）と周辺装置（具体的には、リング型拡張装置５）は、一方を他方に装着することによって電気的に接続され、両者が通信可能となる構成であった。ここで、他の実施形態においては、ゲームコントローラと周辺装置とは、一方を他方に装着することが可能な構成でなくてもよい。例えば、他の実施形態においては、ゲームコントローラと周辺装置は、ケーブルによって電気的に接続されることによって通信を行う構成であってもよい。また、他の実施形態においては、ゲームコントローラと周辺装置は、無線通信によって通信を行う構成であってもよい。なお、ゲームコントローラと周辺装置との通信が確立されている状態とは、有線通信の場合、両者が電気的に接続されている状態を指し、無線通信の場合、両者の無線接続が確立している状態を指す。
【０２２０】
（周辺装置の構成に関する変形例）
上記実施形態においては、周辺装置の一例であるリング型拡張装置５は、ユーザ入力に応じたデータを出力するセンサ（具体的には、歪み検出部２１１）を備える構成であった。ここで、他の実施形態においては、周辺装置は、ゲームコントローラと通信可能な任意の装置であってよく、上記センサを備えていない構成であってもよい。例えば、周辺装置は、センサを備えず、操作ボタンおよび／またはアナログスティックを備える装置であってもよい。また例えば、周辺装置は、操作部を備えず、独立動作モードにおける処理を実行するための処理部と記憶部とを備える装置であってもよい。
【０２２１】
なお、本体動作モードにおいて、周辺装置は、ゲームコントローラからの要求に応じて、当該周辺装置において取得または生成された周辺装置データを当該ゲームコントローラへ送信してもよい。周辺装置データは、上記実施形態におけるリング操作データのように、周辺装置において取得されるデータ（例えば、周辺装置が備えるセンサまたは操作部から取得されるデータ）であってもよいし、周辺装置において生成されるデータ（例えば、周辺装置において実行される処理によって生成されたデータ）であってもよい。
【０２２２】
なお、上記実施形態においては、右コントローラ４が周辺装置に装着される場合を例として説明したが、左コントローラ３も右コントローラ４と同様のモード（すなわち、本体動作モード、独立動作モード、および、本体装着モード）で動作することが可能である。他の実施形態においては、周辺装置は、左コントローラ３が装着される装置であってもよい。
【産業上の利用可能性】
【０２２３】
上記実施形態は、周辺装置に対応させるためのゲームコントローラに対する変更を少なくすること等を目的として、例えば、ゲームコントローラと通信可能な周辺装置として利用することが可能である。
【符号の説明】
【０２２４】
１  ゲームシステム
２  本体装置
４  右コントローラ
５  リング型拡張装置
１１１  通信制御部
１１２  メモリ
２１１  歪み検出部
２１３  制御部
【要約】
【課題】ゲームコントローラを、周辺装置に対応させやすい、汎用性のあるものにする。
【解決手段】周辺装置は、ゲーム装置を操作可能なゲームコントローラと通信可能である。周辺装置は、ユーザ入力を検知するセンサと、処理部と、送信部とを備える。周辺装置は、ゲームコントローラとの通信が確立されているときに、第１モードと、第２モードとを含む複数のモードのうちいずれかで動作可能である。第１モードにおいて、処理部は、センサが検知したユーザ入力に応じた周辺装置データに基づいて、ゲームコントローラに所定の動作を実行させるコマンドを生成し、送信部は当該コマンドをゲームコントローラへ送信する。第２モードにおいて、送信部は、周辺装置データをゲームコントローラへ送信する。
【選択図】図１５【図１】
0006670030.tif 000002
【図２】
0006670030.tif 000003
【図３】
0006670030.tif 000004
【図４】
0006670030.tif 000005
【図５】
0006670030.tif 000006
【図６】
0006670030.tif 000007
【図７】
0006670030.tif 000008
【図８】
0006670030.tif 000009
【図９】
0006670030.tif 000010
【図１０】
0006670030.tif 000011
【図１１】
0006670030.tif 000012
【図１２】
0006670030.tif 000013
【図１３】
0006670030.tif 000014
【図１４】
0006670030.tif 000015
【図１５】
0006670030.tif 000016
【図１６】
0006670030.tif 000017