(57)【要約】【課題】様々な操作装置を利用可能な情報処理システムにおいてユーザにとって使い勝手のよい情報処理システムを提供する。【解決手段】情報処理システムは、本体装置と、携帯機コントローラと、無線コントローラとを含む。携帯機コントローラは本体装置と一体となって構成される。無線コントローラは、本体装置と無線により接続される。本体装置は、携帯機コントローラおよび無線コントローラのうち、所定のボタンが押されたコントローラをアクティブにし、アクティブなコントローラからの操作データに基づいてゲーム処理を行う。【選択図】図１２
2018064649.tif 000002
【特許請求の範囲】
【請求項１】
表示部を備える情報処理装置と、
前記情報処理装置と無線により接続され、第１の操作部を有する第１の操作装置と、
前記情報処理装置と一体となって設けられる第２の操作部と、を備え、
前記情報処理装置は、前記第１の操作部および前記第２の操作部のうち、ユーザによって最後に操作された操作部に対する操作に基づく情報処理を行う情報処理部を含む、情報処理システム。
【請求項２】
前記情報処理部は、前記第１の操作部および前記第２の操作部から操作データを取得し、取得された操作データのうち、前記ユーザによって最後に操作された操作部の操作データに基づいて前記情報処理を行う、請求項１に記載の情報処理システム。
【請求項３】
前記第１の操作部および前記第２の操作部は、ユーザの操作によって可動する可動操作部を有し、
前記情報処理システムは、
前記第１の操作装置の状態を示すデータを出力する第１のセンサと、
前記情報処理装置の状態を示すデータを出力する第２のセンサとをさらに備え、
前記情報処理部は、
前記第１の操作部の前記可動操作部に対する操作と前記第２の操作部の前記可動操作部に対する操作のうち、いずれが最後に行われたかを判定し、
前記第１の操作部の前記可動操作部に対する操作が最後に行われた場合、前記第１の操作部に対する操作と前記第１のセンサの出力とに基づいて前記情報処理を行い、
前記第２の操作部の前記可動操作部に対する操作が最後に行われた場合、前記第２の操作部に対する操作と前記第２のセンサの出力とに基づいて前記情報処理を行う、請求項１又は２に記載の情報処理システム。
【請求項４】
前記第１の操作部および前記第２の操作部は、前記可動操作部として、ユーザが押すことが可能なボタンと、ユーザが所定方向に傾ける又はスライドさせる操作を行うことが可能な方向操作部とを含み、
前記情報処理部は、
前記第１の操作部の前記ボタンに対する操作と前記第２の操作部の前記ボタンに対する操作のうち、いずれが最後に行われたかを判定し、
前記第１の操作部の前記ボタンに対する操作が最後に行われた場合、前記第１の操作部に対する操作と前記第１のセンサの出力とに基づいて前記情報処理を行い、
前記第２の操作部の前記ボタンに対する操作が最後に行われた場合、前記第２の操作部に対する操作と前記第２のセンサの出力とに基づいて前記情報処理を行う、請求項３に記載の情報処理システム。
【請求項５】
前記第１のセンサおよび前記第２のセンサは、慣性センサを含み、
前記第１の操作部および前記第２の操作部は、ユーザが押すことが可能なボタン、ユーザが所定方向に傾ける又はスライドさせる操作を行うことが可能な方向操作部、タッチパネルのうち少なくともいずれかを含む、請求項３又は４に記載の情報処理システム。
【請求項６】
前記第２の操作部は、前記情報処理装置に着脱可能な第２の操作装置に設けられ、
前記第２の操作装置が前記情報処理装置に装着された場合に、前記情報処理装置と前記第２の操作装置とが一体となる、請求項１から５のいずれかに記載の情報処理システム。
【請求項７】
前記第１の操作装置および前記第２の操作装置は、いずれも前記情報処理装置に着脱可能であり、前記情報処理装置に装着されていないときに、前記情報処理装置と無線通信を行う、請求項６に記載の情報処理システム。
【請求項８】
前記第１の操作装置および前記第２の操作装置は、それぞれ、前記情報処理装置の右側に着脱可能かつ無線通信可能な右ユニットおよび前記情報処理装置の左側に着脱可能かつ無線通信可能な左ユニットにより構成される一対の操作ユニットを含む、請求項７に記載の情報処理システム。
【請求項９】
前記第１のセンサは前記第１の操作装置に設けられ、
前記第２のセンサは前記情報処理装置に設けられる、請求項３から８のいずれかに記載の情報処理システム。
【請求項１０】
前記情報処理装置、前記第１の操作装置、および、前記第２の操作装置には、いずれも慣性センサが設けられ、
前記第１のセンサは、前記第１の操作装置に設けられる慣性センサであり、
前記第２のセンサは、前記情報処理装置に設けられる慣性センサである、請求項６から８の何れかに記載の情報処理システム。
【請求項１１】
前記情報処理装置と無線で接続される第３の操作装置をさらに含み、
前記情報処理部は、前記第１の操作装置と前記第３の操作装置とが無線で接続されているときに、前記第１の操作装置、前記第２の操作装置、前記第３の操作装置のいずれの操作装置を使うかユーザに選択させる選択処理を行い、当該選択処理において選択された操作装置に対する操作に基づく情報処理を行う、請求項６から８、１０のいずれかに記載の情報処理システム。
【請求項１２】
前記情報処理部は、前記第１の操作装置および前記第３の操作装置のうち、前記選択処理において選択されなかった操作装置との無線接続を切断する切断処理を行う、請求項１１に記載の情報処理システム。
【請求項１３】
表示部を備える情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、
前記情報処理装置は、第１の操作部を有する第１の操作装置と無線により接続され、かつ、当該情報処理装置と一体となって設けられる第２の操作部と接続され、
前記コンピュータに、
前記第１の操作部および前記第２の操作部のうち、ユーザによって最後に操作された操作部に対する操作に基づく情報処理を行う情報処理ステップを実行させる、情報処理プログラム。
【請求項１４】
前記情報処理ステップでは、前記第１の操作部および前記第２の操作部から操作データを取得し、取得された操作データのうち、前記ユーザによって最後に操作された操作部の操作データに基づいて前記情報処理を行う、請求項１３に記載の情報処理プログラム。
【請求項１５】
前記第１の操作部および前記第２の操作部は、ユーザの操作によって可動する可動操作部を有し、
前記コンピュータに、
前記第１の操作装置の状態を示すデータを出力する第１のセンサからのデータと、前記情報処理装置の状態を示すデータを出力する第２のセンサからのデータとを取得する取得ステップをさらに実行させ、
前記情報処理ステップでは、
前記第１の操作部の前記可動操作部に対する操作と前記第２の操作部の前記可動操作部に対する操作のうち、いずれが最後に行われたかを判定し、
前記第１の操作部の前記可動操作部に対する操作が最後に行われた場合、前記第１の操作部に対する操作と前記第１のセンサの出力とに基づいて前記情報処理を行い、
前記第２の操作部の前記可動操作部に対する操作が最後に行われた場合、前記第２の操作部に対する操作と前記第２のセンサの出力とに基づいて前記情報処理を行う、請求項１３又は１４に記載の情報処理プログラム。
【請求項１６】
前記情報処理装置は、第３の操作装置とも無線により接続され、
前記情報処理ステップでは、前記第１の操作装置と前記第３の操作装置とが無線で接続されているときに、前記第１の操作装置、前記第２の操作装置、前記第３の操作装置のいずれの操作装置を使うかユーザに選択させる選択処理を行い、当該選択処理において選択された操作装置に対する操作に基づく情報処理を行う、請求項１３から１５のいずれかに記載の情報処理プログラム。
【請求項１７】
前記情報処理ステップでは、前記第１の操作装置および前記第３の操作装置のうち、前記選択処理において選択されなかった操作装置との無線接続を切断する切断処理を行う、請求項１６に記載の情報処理プログラム。
【請求項１８】
表示部を備える情報処理装置であって、
前記情報処理装置は、第１の操作部を有する第１の操作装置と無線により接続され、かつ、当該情報処理装置と一体となって設けられる第２の操作部と接続され、
前記第１の操作部および前記第２の操作部のうち、ユーザによって最後に操作された操作部に対する操作に基づく情報処理を行う情報処理部を備える、情報処理装置。
【請求項１９】
前記情報処理部は、前記第１の操作部および前記第２の操作部から操作データを取得し、取得された操作データのうち、前記ユーザによって最後に操作された操作部の操作データに基づいて前記情報処理を行う、請求項１８に記載の情報処理装置。
【請求項２０】
前記第１の操作部および前記第２の操作部は、ユーザの操作によって可動する可動操作部を有し、
前記情報処理装置は、
前記第１の操作装置の状態を示すデータを出力する第１のセンサからのデータと、前記情報処理装置の状態を示すデータを出力する第２のセンサからのデータとを取得する取得部をさらに備え、
前記情報処理部は、
前記第１の操作部の前記可動操作部に対する操作と前記第２の操作部の前記可動操作部に対する操作のうち、いずれが最後に行われたかを判定し、
前記第１の操作部の前記可動操作部に対する操作が最後に行われた場合、前記第１の操作部に対する操作と前記第１のセンサの出力とに基づいて前記情報処理を行い、
前記第２の操作部の前記可動操作部に対する操作が最後に行われた場合、前記第２の操作部に対する操作と前記第２のセンサの出力とに基づいて前記情報処理を行う、請求項１８又は１９に記載の情報処理装置。
【請求項２１】
前記情報処理装置は、第３の操作装置とも無線で接続され、
前記情報処理部は、前記第１の操作装置と前記第３の操作装置とが無線で接続されているときに、前記第１の操作装置、前記第２の操作装置、前記第３の操作装置のいずれの操作装置を使うかユーザに選択させる選択処理を行い、当該選択処理において選択された操作装置に対する操作に基づく情報処理を行う、請求項１８から２０のいずれかに記載の情報処理装置。
【請求項２２】
前記情報処理部は、前記第１の操作装置および前記第３の操作装置のうち、前記選択処理において選択されなかった操作装置との無線接続を切断する切断処理を行う、請求項２１に記載の情報処理装置。
【請求項２３】
表示部を備える情報処理装置を含む情報処理システムにおいて行われる情報処理方法であって、
前記情報処理システムは、
前記情報処理装置と無線により接続され、第１の操作部を有する第１の操作装置と、
前記情報処理装置と一体となって設けられる第２の操作部と、を含み、
前記情報処理方法は、
前記第１の操作部および前記第２の操作部のうち、ユーザによって最後に操作された操作部に対する操作に基づく情報処理を行う情報処理ステップを含む、情報処理方法。
【請求項２４】
前記情報処理ステップでは、前記第１の操作部および前記第２の操作部から操作データを取得し、取得された操作データのうち、前記ユーザによって最後に操作された操作部の操作データに基づいて前記情報処理を行う、請求項２３に記載の情報処理方法。
【請求項２５】
前記第１の操作部および前記第２の操作部は、ユーザの操作によって可動する可動操作部を有し、
前記情報処理システムは、
前記第１の操作装置の状態を示すデータを出力する第１のセンサと、
前記情報処理装置の状態を示すデータを出力する第２のセンサとをさらに備え、
前記情報処理ステップでは、
前記第１の操作部の前記可動操作部に対する操作と前記第２の操作部の前記可動操作部に対する操作のうち、いずれが最後に行われたかを判定し、
前記第１の操作部の前記可動操作部に対する操作が最後に行われた場合、前記第１の操作部に対する操作と前記第１のセンサの出力とに基づいて前記情報処理を行い、
前記第２の操作部の前記可動操作部に対する操作が最後に行われた場合、前記第２の操作部に対する操作と前記第２のセンサの出力とに基づいて前記情報処理を行う、請求項２３又は２４に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法に関する。
【背景技術】
【０００２】
従来、様々な操作装置を用いて操作を行うことが可能な情報処理システムがある（例えば、特許文献１参照）。例えば、複数の操作装置を複数のユーザがそれぞれ操作装置を用いてゲームを行うものがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２３９７６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、様々な操作装置を利用可能な情報処理システムにおいてユーザの使い勝手を向上させるには改善の余地があった。
【０００５】
それ故、本発明の目的は、様々な操作装置を利用可能な情報処理システムにおいてユーザにとって使い勝手のよい情報処理システムを提供することである。
【課題を解決するための手段】
【０００６】
上記の課題を解決すべく、本発明は、以下の構成を採用した。
【０００７】
本発明の一例に係る情報処理システムは、表示部を備える情報処理装置と、前記情報処理装置と無線により接続され、第１の操作部を有する第１の操作装置と、前記情報処理装置と一体となって設けられる第２の操作部とを備える。前記情報処理装置は、前記第１の操作部および前記第２の操作部のうち、ユーザによって最後に操作された操作部に対する操作に基づく情報処理を行う情報処理部を含む。
【０００８】
上記によれば、第１の操作部および第２の操作部のうち最後に操作した操作部に対する操作を情報処理に反映することができ、操作部をシームレスに切り替えることができる。
【０００９】
また、前記情報処理部は、前記第１の操作部および前記第２の操作部から操作データを取得し、取得された操作データのうち、前記ユーザによって最後に操作された操作部の操作データに基づいて前記情報処理を行ってもよい。
【００１０】
上記によれば、両方の操作部から操作データを取得し、取得された操作データのうちユーザによって最後に操作された操作部からの操作データを情報処理に反映させることができる。
【００１１】
また、前記第１の操作部および前記第２の操作部は、ユーザの操作によって可動する可動操作部を有してもよい。前記情報処理システムは、前記第１の操作装置の状態を示すデータを出力する第１のセンサと、前記情報処理装置の状態を示すデータを出力する第２のセンサとをさらに備えてもよい。前記情報処理部は、前記第１の操作部の前記可動操作部に対する操作と前記第２の操作部の前記可動操作部に対する操作のうち、いずれが最後に行われたかを判定し、前記第１の操作部の前記可動操作部に対する操作が最後に行われた場合、前記第１の操作部に対する操作と前記第１のセンサの出力とに基づいて前記情報処理を行い、前記第２の操作部の前記可動操作部に対する操作が最後に行われた場合、前記第２の操作部に対する操作と前記第２のセンサの出力とに基づいて前記情報処理を行ってもよい。
【００１２】
上記によれば、可動操作部に対する操作によって第１の操作部と第２の操作部とを切り替え、切り替えられた方の操作部に対する操作と、その操作部の状態を示すデータを出力するセンサとに基づいて、情報処理を行うことができる。例えば、装置の状態を出力するセンサは常にその装置の状態を示すデータを出力するため、そのセンサからのデータではユーザがその装置を実際に使っているかどうか判別し難い場合があるが、可動操作部に対する操作については、その操作の有無によってユーザが実際にどの装置を使っているかを容易に判別することができる。このため、ユーザが実際に使っている装置の操作部に対する操作と、その装置の状態を示すデータを出力するセンサからの出力とに基づいて、情報処理を行うことができる。
【００１３】
また、前記第１の操作部および前記第２の操作部は、前記可動操作部として、ユーザが押すことが可能なボタンと、ユーザが所定方向に傾ける又はスライドさせる操作を行うことが可能な方向操作部とを含んでもよい。前記情報処理部は、前記第１の操作部の前記ボタンに対する操作と前記第２の操作部の前記ボタンに対する操作のうち、いずれが最後に行われたかを判定し、前記第１の操作部の前記ボタンに対する操作が最後に行われた場合、前記第１の操作部に対する操作と前記第１のセンサの出力とに基づいて前記情報処理を行い、前記第２の操作部の前記ボタンに対する操作が最後に行われた場合、前記第２の操作部に対する操作と前記第２のセンサの出力とに基づいて前記情報処理を行ってもよい。
【００１４】
上記によれば、ユーザが押すことが可能なボタンと、ユーザが所定方向に傾ける又はスライドさせる操作を行うことが可能な方向操作部とを含む第１の操作部および第２の操作部において、ボタンに対する操作によって第１の操作部と第２の操作部とを切り替えることができる。
【００１５】
また、前記第１のセンサおよび前記第２のセンサは、慣性センサを含んでもよい。前記第１の操作部および前記第２の操作部は、ユーザが押すことが可能なボタン、ユーザが所定方向に傾ける又はスライドさせる操作を行うことが可能な方向操作部、タッチパネルのうち少なくともいずれかを含んでもよい。
【００１６】
上記によれば、慣性センサからのデータと様々な操作部に対する操作とに基づいて情報処理を行うことができる。
【００１７】
また、前記第２の操作部は、前記情報処理装置に着脱可能な第２の操作装置に設けられてもよい。前記第２の操作装置が前記情報処理装置に装着された場合に、前記情報処理装置と前記第２の操作装置とが一体となる。
【００１８】
上記によれば、第２の操作装置を情報処理装置に装着したり情報処理装置から外したりすることができる。
【００１９】
また、前記第１の操作装置および前記第２の操作装置は、いずれも前記情報処理装置に着脱可能であり、前記情報処理装置に装着されていないときに、前記情報処理装置と無線通信を行ってもよい。
【００２０】
上記によれば、情報処理装置に着脱可能な第１の操作装置および第２の操作装置を用いて操作を行うことができる。
【００２１】
また、前記第１の操作装置および前記第２の操作装置は、それぞれ、前記情報処理装置の右側に着脱可能かつ無線通信可能な右ユニットおよび前記情報処理装置の左側に着脱可能かつ無線通信可能な左ユニットにより構成される一対の操作ユニットを含んでもよい。
【００２２】
上記によれば、第１の操作装置および第２の操作装置を、それぞれ左右のユニットにより構成することができる。
【００２３】
また、前記第１のセンサは前記第１の操作装置に設けられ、前記第２のセンサは前記情報処理装置に設けられてもよい。
【００２４】
上記によれば、第１の操作装置に設けられた第１のセンサにより第１の操作装置の状態を検出し、情報処理装置に設けられた第２のセンサにより情報処理装置の状態を検出することができる。
【００２５】
また、前記情報処理装置、前記第１の操作装置、および、前記第２の操作装置には、いずれも慣性センサが設けられてもよい。前記第１のセンサは、前記第１の操作装置に設けられる慣性センサであり、前記第２のセンサは、前記情報処理装置に設けられる慣性センサであってもよい。
【００２６】
上記によれば、慣性センサにより装置の状態を検出することができる。
【００２７】
また、前記情報処理装置と無線で接続される第３の操作装置をさらに含んでもよい。前記情報処理部は、前記第１の操作装置と前記第３の操作装置とが無線で接続されているときに、前記第１の操作装置、前記第２の操作装置、前記第３の操作装置のいずれの操作装置を使うかユーザに選択させる選択処理を行い、当該選択処理において選択された操作装置に対する操作に基づく情報処理を行ってもよい。
【００２８】
上記によれば、ユーザに操作装置を選択させることができる。
【００２９】
また、前記情報処理部は、前記第１の操作装置および前記第３の操作装置のうち、前記選択処理において選択されなかった操作装置との無線接続を切断する切断処理を行ってもよい。
【００３０】
上記によれば、ユーザによって選択されなかった操作装置との無線接続を切断することができ、電力消費を抑えることができる。
【００３１】
また、本発明の別の一例は、上記情報処理システムに含まれる情報処理装置であってもよい。また、情報処理装置において実行される情報処理プログラムであってもよい。また、上記情報処理システムにおいて行われる情報処理方法であってもよい。
【発明の効果】
【００３２】
本発明によれば、第１の操作部と第２の操作部とを切り替えることができ、ユーザにとって使い勝手のよい情報処理システムを提供することができる。
【図面の簡単な説明】
【００３３】
【図１】本体装置２に左コントローラ３および右コントローラ４を装着した状態を示す図
【図２】本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図
【図３】本体装置２の一例を示す六面図
【図４】左コントローラ３の一例を示す六面図
【図５】右コントローラ４の一例を示す六面図
【図６】本体装置２の内部構成の一例を示すブロック図
【図７】本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図
【図８】左コントローラ３および右コントローラ４を装着可能な付属機器の一例を示す図
【図９】付属機器に対して左コントローラ３および右コントローラ４が装着された状態の一例を示す図
【図１０】左コントローラ３および右コントローラ４を本体装置２に装着した状態でゲームを行う様子の一例を示す図
【図１１】左コントローラ３および右コントローラ４を本体装置２から外した状態でゲームを行う様子の一例を示す図
【図１２】本体装置２が携帯機コントローラ１００と接続されると同時に無線コントローラ３００と接続されたときの情報処理システム１の一例を示す図
【図１３】左コントローラ３および右コントローラ４により構成される無線コントローラ３００の代わりに、別の無線コントローラ５００が本体装置２に接続される様子を示す図
【図１４】無線コントローラ５００の一例を示す図
【図１５】左コントローラ３から出力される操作データの一例を示す図
【図１６】右コントローラ４から出力される操作データの一例を示す図
【図１７】本体装置２が検出するユーザの操作に応じた操作データＤ２００の一例を示す図
【図１８】本体装置２によって行われる処理の一例を示すフローチャート
【図１９】図１８のステップＳ７における操作データに基づくゲーム処理の一例を示すフローチャート
【図２０】２つの無線コントローラが本体装置２に接続される場合にゲームに使用するコントローラを選択するための選択処理の一例を示す図
【発明を実施するための形態】
【００３４】
以下、本実施形態の一例に係る情報処理システムについて説明する。本実施形態における情報処理システム１の一例は、本体装置（情報処理装置；本実施例ではゲーム装置本体として機能する）２と左コントローラ３および右コントローラ４とを含む。本体装置２は、左コントローラ３および右コントローラ４がそれぞれ着脱可能である。つまり、左コントローラ３および右コントローラ４をそれぞれ本体装置２に装着して一体化された装置として利用できる。また、本体装置２と左コントローラ３および右コントローラ４とを別体として利用することもできる（図２参照）。また、情報処理システム１は、本体装置２に画像を表示する態様での利用と、テレビ等の他の表示装置（例えば、据置型モニタ）に画像を表示させる態様での利用が可能である。前者の態様において、情報処理システム１は、携帯型装置（例えば、携帯ゲーム機）として利用することができる。また、後者の態様において、情報処理システム１は、据置型装置（例えば、据置型ゲーム機）として利用することができる。なお、本実施形態の情報処理システム１は、本体装置２に装着されない無線コントローラをも含むことができる（図１２参照）。
【００３５】
（本体装置、左コントローラ、右コントローラの説明）
図１は、本体装置２に左コントローラ３および右コントローラ４を装着した状態を示す図である。図１に示すように、左コントローラ３および右コントローラ４は、それぞれ本体装置２に装着されて一体化されている。本体装置２は、情報処理システム１における各種の処理（例えば、ゲーム処理）を実行する装置である。本体装置２は、ディスプレイ１２を備える。左コントローラ３および右コントローラ４は、ユーザが入力を行うための操作部を備える装置である。
【００３６】
図２は、本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図である。図１および図２に示すように、左コントローラ３および右コントローラ４は、本体装置２に着脱可能である。左コントローラ３は、本体装置２の左側面（図１に示すｘ軸正方向側の側面）に装着することができ、本体装置２の左側面に沿って図１に示すｙ軸方向にスライドさせることによって本体装置２に着脱可能となっている。また、右コントローラ４は、本体装置２の右側面（図１に示すｘ軸負方向側の側面）に装着することができ、本体装置２の右側面に沿って図１に示すｙ軸方向にスライドさせることによって本体装置２に着脱可能となっている。なお、以下において、左コントローラ３および右コントローラ４の総称として「コントローラ」と記載することがある。
【００３７】
図３は、本体装置２の一例を示す六面図である。図３に示すように、本体装置２は、略板状のハウジング１１を備える。本実施例において、ハウジング１１の主面（換言すれば、表側の面、すなわち、ディスプレイ１２が設けられる面）は、大略的には矩形形状である。
【００３８】
なお、ハウジング１１の形状および大きさは、任意である。一例として、ハウジング１１は、携帯可能な大きさであってよい。また、本体装置２単体または本体装置２に左コントローラ３および右コントローラ４が装着された一体型装置は、携帯型装置となってもよい。また、本体装置２または一体型装置が手持ち型の装置となってもよい。また、本体装置２または一体型装置が可搬型装置となってもよい。
【００３９】
図３に示すように、本体装置２は、ハウジング１１の主面に設けられるディスプレイ１２を備える。ディスプレイ１２は、本体装置２が生成した画像を表示する。本実施例においては、ディスプレイ１２は、液晶表示装置（ＬＣＤ）とする。ただし、ディスプレイ１２は任意の種類の表示装置であってよい。
【００４０】
また、本体装置２は、ディスプレイ１２の画面上にタッチパネル１３を備える。本実施例においては、タッチパネル１３は、マルチタッチ入力が可能な方式（例えば、静電容量方式）のものである。ただし、タッチパネル１３は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式（例えば、抵抗膜方式）のものであってもよい。
【００４１】
本体装置２は、ハウジング１１の内部においてスピーカ（すなわち、図６に示すスピーカ８８）を備えている。図３に示すように、ハウジング１１の主面には、スピーカ孔１１ａおよび１１ｂが形成される。そして、スピーカ８８の出力音は、これらのスピーカ孔１１ａおよび１１ｂからそれぞれ出力される。
【００４２】
図３に示すように、本体装置２は、ハウジング１１の左側面において左レール部材１５を備える。左レール部材１５は、左コントローラ３を本体装置２に着脱可能に装着するための部材である。左レール部材１５は、ハウジング１１の左側面において、上下方向に沿って延びるように設けられる。左レール部材１５は、左コントローラ３のスライダ（すなわち、図４に示すスライダ４０）と係合可能な形状を有しており、左レール部材１５とスライダ４０とによってスライド機構が形成される。このスライド機構によって、左コントローラ３を本体装置２に対してスライド可能かつ着脱可能に装着することができる。また、ハウジング１１の右側面には、左側面に設けられる構成と同様の構成として、右レール部材１９が備えられる。
【００４３】
また、本体装置２は、左側端子１７を備える。左側端子１７は、本体装置２が左コントローラ３と有線通信を行うための端子である。左側端子１７は、左コントローラ３が本体装置２に装着された場合に、左コントローラ３の端子（図４に示す端子４２）と接触する位置に設けられる。また、本体装置２は右側端子２１を備える。右側端子２１は、本体装置２が右コントローラ４と有線通信を行うための端子である。右側端子２１は、右コントローラ４が本体装置２に装着された場合に、右コントローラ４の端子（図５に示す端子６４）と接触する位置に設けられる。
【００４４】
図３に示すように、本体装置２は、第１スロット２３を備える。第１スロット２３は、ハウジング１１の上側面に設けられる。第１スロット２３は、第１の種類の記憶媒体を装着可能な形状を有する。第１の種類の記憶媒体は、例えば、情報処理システム１およびそれと同種の情報処理装置に専用の記憶媒体（例えば、専用メモリカード）である。第１の種類の記憶媒体は、例えば、本体装置２で利用されるデータ（例えば、アプリケーションのセーブデータ等）、および／または、本体装置２で実行されるプログラム（例えば、アプリケーションのプログラム等）を記憶するために用いられる。また、本体装置２は、電源ボタン２８を備える。図３に示すように、電源ボタン２８は、ハウジング１１の上側面に設けられる。電源ボタン２８は、本体装置２の電源のオン／オフを切り替えるためのボタンである。
【００４５】
本体装置２は、音声入出力端子（具体的には、イヤホンジャック）２５を備える。すなわち、本体装置２は、音声入出力端子２５にマイクやイヤホンを装着することができる。図３に示すように、音声入出力端子２５は、ハウジング１１の上側面に設けられる。
【００４６】
本体装置２は、下側端子２７を備える。下側端子２７は、本体装置２がクレードルと通信を行うための端子である。図３に示すように、下側端子２７は、ハウジング１１の下側面に設けられる。本体装置２がクレードルに装着された場合、下側端子２７は、クレードルの端子に接続される。本実施例において、下側端子２７は、ＵＳＢコネクタ（より具体的には、メス側コネクタ）である。クレードルは、左コントローラ３および右コントローラ４を本体装置２から取り外した状態で本体装置２のみを載置することが可能である。また、さらに他の例として、クレードルは、左コントローラ３および右コントローラ４が本体装置２に装着された一体型装置を載置することも可能である。そして、クレードルは、本体装置２とは別体の外部表示装置の一例である据置型モニタ（例えば、据置型テレビ）と通信可能である（有線通信であってもよいし、無線通信であってもよい）。上記一体型装置または本体装置２単体をクレードルに載置した場合、情報処理システム１は、本体装置２が生成して出力する画像を据置型モニタに表示することができる。また、本実施例においては、クレードルは、載置された上記一体型装置または本体装置２単体を充電する機能を有する。また、クレードルは、ハブ装置（具体的には、ＵＳＢハブ）の機能を有する。
【００４７】
以上に説明した、ハウジング１１に設けられる各構成要素（具体的には、ボタン、スロット、端子等）の形状、数、および設置位置は、任意である。例えば、他の実施例においては、電源ボタン２８およびスロット２３のうちのいくつかは、ハウジング１１の他の側面あるいは背面に設けられてもよい。また、他の実施例においては、本体装置２は、上記各構成要素のうちいくつかを備えていない構成であってもよい。
【００４８】
図４は、左コントローラ３の一例を示す六面図である。図４に示すように、左コントローラ３は、ハウジング３１を備える。本実施例において、ハウジング３１は、略板状である。また、ハウジング３１の主面（換言すれば、表側の面、すなわち、図１に示すｚ軸負方向側の面）は、大略的には矩形形状である。また、本実施例においては、ハウジング３１は、縦長の形状、すなわち、上下方向（すなわち、図１に示すｙ軸方向）に長い形状である。左コントローラ３は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング３１は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ３は、横長となる向きで把持されることも可能である。左コントローラ３が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。なお、ハウジング３１の形状は任意であり、他の実施例においては、ハウジング３１は略板状でなくてもよい。また、ハウジング３１は、矩形形状でなくてもよく、例えば半円状の形状等であってもよい。また、ハウジング３１は、縦長の形状でなくてもよい。
【００４９】
ハウジング３１の上下方向の長さは、本体装置２のハウジング１１の上下方向の長さとほぼ同じである。また、ハウジング３１の厚さ（すなわち、前後方向の長さ、換言すれば、図１に示すｚ軸方向の長さ）は、本体装置２のハウジング１１の厚さとほぼ同じである。したがって、左コントローラ３が本体装置２に装着された場合（図１参照）には、ユーザは、本体装置２と左コントローラ３とを一体の装置のような感覚で把持することができる。
【００５０】
左コントローラ３は、アナログスティック３２を備える。図４に示すように、アナログスティック３２が、ハウジング３１の主面に設けられる。アナログスティック３２は、方向を入力することが可能な方向入力部として用いることができる。アナログスティック３２は、ハウジング３１の主面に平行な全方向（すなわち、上下左右および斜め方向を含む、３６０°の方向）に傾倒可能なスティック部材を有する。ユーザは、スティック部材を傾倒することによって傾倒方向に応じた方向の入力（および、傾倒した角度に応じた大きさの入力）が可能である。なお、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施例においては、スティック部材を（ハウジング３１に垂直な方向に）押下する入力が可能である。すなわち、アナログスティック３２は、スティック部材の傾倒方向および傾倒量に応じた方向および大きさの入力と、スティック部材に対する押下入力とを行うことが可能な入力部である。
【００５１】
左コントローラ３は、４つの操作ボタン３３〜３６（具体的には、右方向ボタン３３、下方向ボタン３４、上方向ボタン３５、および、左方向ボタン３６）を備える。図４に示すように、これら４つの操作ボタン３３〜３６は、ハウジング３１の主面においてアナログスティック３２の下側に設けられる。これらの操作ボタン３３〜３６は、本体装置２で実行される各種プログラム（例えば、ＯＳプログラムやアプリケーションプログラム）に応じた指示を行うために用いられる。また、左コントローラ３は録画ボタン３７を備える。また、左コントローラ３は−（マイナス）ボタン４７を備える。
【００５２】
左コントローラ３の主面に設けられる各操作部（具体的には、アナログスティック３２および上記各ボタン３３〜３７、４７）は、左コントローラ３が本体装置２に装着される場合、一体型装置を把持するユーザの例えば左手の親指によって操作される。また、左コントローラ３が本体装置２から外された状態において両手で横向きに把持されて使用される場合、上記各操作部は、左コントローラ３を把持するユーザの例えば左右の手の親指で操作される。具体的には、この場合、アナログスティック３２はユーザの左手の親指で操作され、各操作ボタン３３〜３６はユーザの右手の親指で操作される。
【００５３】
左コントローラ３は、第１Ｌボタン３８を備える。また、左コントローラ３は、ＺＬボタン３９を備える。これらの操作ボタン３８および３９は、上記操作ボタン３３〜３６と同様、本体装置２で実行される各種プログラムに応じた指示を行うために用いられる。図４に示すように、第１Ｌボタン３８は、ハウジング３１の側面のうちの左上部分に設けられる。また、ＺＬボタン３９は、ハウジング３１の側面から裏面にかけての左上部分（厳密には、ハウジング３１を表側から見たときの左上部分）に設けられる。つまり、ＺＬボタン３９は、第１Ｌボタン３８の後側（図１に示すｚ軸正方向側）に設けられる。左コントローラ３が本体装置２に装着される場合、第１Ｌボタン３８およびＺＬボタン３９は、一体型装置における左上部分に配置されることになる。
【００５４】
左コントローラ３は、上述のスライダ４０を備えている。図４に示すように、スライダ４０は、ハウジング３１の右側面において、上下方向に延びるように設けられる。スライダ４０は、本体装置２の左レール部材１５（より具体的には、左レール部材１５の溝）と係合可能な形状を有している。
【００５５】
また、左コントローラ３は、左コントローラ３が本体装置２と有線通信を行うための端子４２を備える。端子４２は、左コントローラ３が本体装置２に装着された場合に、本体装置２の左側端子１７（図３）と接触する位置に設けられる。
【００５６】
また、左コントローラ３は、第２Ｌボタン４３および第２Ｒボタン４４を備える。これらのボタン４３および４４は、他の操作ボタン３３〜３６と同様、本体装置２で実行される各種プログラムに応じた指示を行うために用いられる。図４に示すように、第２Ｌボタン４３および第２Ｒボタン４４は、スライダ４０の装着面に設けられる。
【００５７】
左コントローラ３は、通知用ＬＥＤ４５を備える。通知用ＬＥＤ４５は、ユーザに対して所定の情報を通知するための通知部である。通知用ＬＥＤ４５によって通知される情報は任意である。
【００５８】
左コントローラ３は、ペアリングボタン４６を備える。本実施例において、ペアリングボタン４６は、左コントローラ３と本体装置２との無線通信に関する設定（ペアリングとも言う）処理を指示するため、および、左コントローラ３のリセット処理を指示するために用いられる。
【００５９】
図５は、右コントローラ４の一例を示す六面図である。図５に示すように、右コントローラ４は、ハウジング５１を備える。本実施例において、ハウジング５１は、略板状である。また、ハウジング５１の主面（換言すれば、表側の面、すなわち、図１に示すｚ軸負方向側の面）は、大略的には矩形形状である。また、本実施例においては、ハウジング５１は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ４は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング５１は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ４は、横長となる向きで把持されることも可能である。右コントローラ４が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００６０】
右コントローラ４のハウジング５１は、左コントローラ３のハウジング３１と同様、その上下方向の長さは、本体装置２のハウジング１１の上下方向の長さとほぼ同じであり、その厚さは、本体装置２のハウジング１１の厚さとほぼ同じである。したがって、右コントローラ４が本体装置２に装着された場合（図１参照）には、ユーザは、本体装置２と右コントローラ４とを一体の装置のような感覚で把持することができる。
【００６１】
右コントローラ４は、左コントローラ３と同様、方向入力部としてアナログスティック５２を備える。本実施例においては、アナログスティック５２は、左コントローラ３のアナログスティック３２と同じ構成である。また、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ４は、左コントローラ３と同様、４つの操作ボタン５３〜５６（具体的には、Ａボタン５３、Ｂボタン５４、Ｘボタン５５、および、Ｙボタン５６）を備える。また、右コントローラ４は、＋（プラス）ボタン５７を備える。また、右コントローラ４は、ホームボタン５８を備える。
【００６２】
右コントローラ４の主面に設けられる各操作部（具体的には、アナログスティック５２および上記各ボタン５３〜５８）は、右コントローラ４が本体装置２に装着される場合、一体型装置を把持するユーザの例えば右手の親指によって操作される。また、右コントローラ４が本体装置２から外された状態において両手で横向きに把持されて使用される場合、上記各操作部は、右コントローラ４を把持するユーザの例えば左右の手の親指で操作される。具体的には、この場合、アナログスティック５２はユーザの左手の親指で操作され、各操作ボタン５３〜５６はユーザの右手の親指で操作される。
【００６３】
右コントローラ４は、第１Ｒボタン６０を備える。また、右コントローラ４は、ＺＲボタン６１を備える。図５に示すように、第１Ｒボタン６０は、ハウジング５１の側面のうちの右上部分に設けられる。また、ＺＲボタン６１は、ハウジング５１の側面から裏面にかけての右上部分（厳密には、ハウジング５１を表側から見たときの右上部分）に設けられる。つまり、ＺＲボタン６１は、第１Ｒボタン６０の後側（図１に示すｚ軸正方向側）に設けられる。
【００６４】
右コントローラ４は、左コントローラ３と同様のスライダ機構を備えている。すなわち、右コントローラ４は、上述のスライダ６２を備えている。
【００６５】
また、右コントローラ４は、右コントローラ４が本体装置２と有線通信を行うための端子６４を備える。端子６４は、右コントローラ４が本体装置２に装着された場合に、本体装置２の右側端子２１（図３）と接触する位置に設けられる。
【００６６】
また、右コントローラ４は、左コントローラ３と同様、第２Ｌボタン６５および第２Ｒボタン６６を備える。これらのボタン６５および６６は、他の操作ボタン５３〜５６と同様、本体装置２で実行される各種プログラムに応じた指示を行うために用いられる。
【００６７】
右コントローラ４は、通知用ＬＥＤ６７を備える。通知用ＬＥＤ６７は、左コントローラ３の通知用ＬＥＤ４５と同様、ユーザに対して所定の情報を通知するための通知部である。
【００６８】
右コントローラ４は、ペアリングボタン６９を備える。ペアリングボタン６９は、左コントローラ３のペアリングボタン４６と同様、右コントローラ４と本体装置２との無線通信に関する設定（ペアリングとも言う）処理を指示するため、および、右コントローラ４のリセット処理を指示するために用いられる。
【００６９】
なお、上記左コントローラ３および右コントローラ４において、ハウジング３１または５１に設けられる各構成要素（具体的には、スライダ、スティック、およびボタン等）の形状、数、および、設置位置は任意である。例えば、他の実施例においては、左コントローラ３および右コントローラ４は、アナログスティックとは別の種類の方向入力部を備えていてもよい。また、スライダ４０または６２は、本体装置２に設けられるレール部材１５または１９の位置に応じた位置に配置されてよく、例えば、ハウジング３１または５１の主面または裏面に配置されてもよい。また、他の実施例においては、左コントローラ３および右コントローラ４は、上記各構成要素のうちいくつかを備えていない構成であってもよい。
【００７０】
図６は、本体装置２の内部構成の一例を示すブロック図である。本体装置２は、図３に示す構成の他、図６に示す各構成要素８１〜９８を備える。これらの構成要素８１〜９８のいくつかは、電子部品として電子回路基板上に実装されてハウジング１１内に収納されてもよい。
【００７１】
本体装置２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）８１を備える。ＣＰＵ８１は、本体装置２において実行される各種の情報処理を実行する情報処理部であって、厳密にはＣＰＵ機能、ＧＰＵ機能等の複数の機能を含むＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）である。ＣＰＵ８１は、記憶部（具体的には、フラッシュメモリ８４等の内部記憶媒体、あるいは、各スロット２３および２４に装着される外部記憶媒体等）に記憶される情報処理プログラム（例えば、ゲームプログラム）を実行することによって、各種の情報処理を実行する。
【００７２】
本体装置２は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ８４およびＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８５を備える。フラッシュメモリ８４およびＤＲＡＭ８５は、ＣＰＵ８１に接続される。フラッシュメモリ８４は、主に、本体装置２に保存される各種のデータ（プログラムであってもよい）を記憶するために用いられるメモリである。ＤＲＡＭ８５は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【００７３】
本体装置２は、第１スロットインターフェース（以下、「Ｉ／Ｆ」と略記する。）９１を備える。第１スロットＩ／Ｆ９１は、ＣＰＵ８１に接続される。第１スロットＩ／Ｆ９１は、第１スロット２３に接続され、第１スロット２３に装着された第１の種類の記憶媒体（例えば、ＳＤカード）に対するデータの読み出しおよび書き込みを、ＣＰＵ８１の指示に応じて行う。
【００７４】
ＣＰＵ８１は、フラッシュメモリ８４およびＤＲＡＭ８５、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【００７５】
本体装置２は、ネットワーク通信部８２を備える。ネットワーク通信部８２は、ＣＰＵ８１に接続される。ネットワーク通信部８２は、ネットワークを介して外部の装置と通信（具体的には、無線通信）を行う。本実施例においては、ネットワーク通信部８２は、第１の通信態様としてＷｉ−Ｆｉの規格に準拠した方式により、無線ＬＡＮに接続して外部装置と通信を行う。また、ネットワーク通信部８２は、第２の通信態様として所定の通信方式（例えば、独自プロトコルによる通信や、赤外線通信）により、同種の他の本体装置２との間で無線通信を行う。なお、上記第２の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置２との間で無線通信可能であり、複数の本体装置２の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【００７６】
本体装置２は、コントローラ通信部８３を備える。コントローラ通信部８３は、ＣＰＵ８１に接続される。コントローラ通信部８３は、左コントローラ３および／または右コントローラ４と無線通信を行う。本体装置２と左コントローラ３および右コントローラ４との通信方式は任意であるが、本実施例においては、コントローラ通信部８３は、左コントローラ３との間および右コントローラ４との間で、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信を行う。
【００７７】
ＣＰＵ８１は、上述の左側端子１７、右側端子２１、および、下側端子２７に接続される。ＣＰＵ８１は、左コントローラ３と有線通信を行う場合、左側端子１７を介して左コントローラ３へデータを送信するとともに、左側端子１７を介して左コントローラ３から操作データを受信する。また、ＣＰＵ８１は、右コントローラ４と有線通信を行う場合、右側端子２１を介して右コントローラ４へデータを送信するとともに、右側端子２１を介して右コントローラ４から操作データを受信する。また、ＣＰＵ８１は、クレードルと通信を行う場合、下側端子２７を介してクレードルへデータを送信する。このように、本実施例においては、本体装置２は、左コントローラ３および右コントローラ４との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ３および右コントローラ４が本体装置２に装着された一体型装置または本体装置２単体がクレードルに装着された場合、本体装置２は、クレードルを介してデータ（例えば、画像データや音声データ）を据置型モニタ等に出力することができる。
【００７８】
ここで、本体装置２は、複数の左コントローラ３と同時に（換言すれば、並行して）通信を行うことができる。また、本体装置２は、複数の右コントローラ４と同時に（換言すれば、並行して）通信を行うことができる。したがって、ユーザは、複数の左コントローラ３および複数の右コントローラ４を用いて本体装置２に対する入力を行うことができる。
【００７９】
本体装置２は、タッチパネル１３の制御を行う回路であるタッチパネルコントローラ８６を備える。タッチパネルコントローラ８６は、タッチパネル１３とＣＰＵ８１との間に接続される。タッチパネルコントローラ８６は、タッチパネル１３からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、ＣＰＵ８１へ出力する。
【００８０】
また、ディスプレイ１２は、ＣＰＵ８１に接続される。ＣＰＵ８１は、（例えば、上記の情報処理の実行によって）生成した画像および／または外部から取得した画像をディスプレイ１２に表示する。
【００８１】
本体装置２は、コーデック回路８７およびスピーカ（具体的には、左スピーカおよび右スピーカ）８８を備える。コーデック回路８７は、スピーカ８８および音声入出力端子２５に接続されるとともに、ＣＰＵ８１に接続される。コーデック回路８７は、スピーカ８８および音声入出力端子２５に対する音声データの入出力を制御する回路である。
【００８２】
また、本体装置２は、加速度センサ８９を備える。本実施形態においては、加速度センサ８９は、所定の３軸（例えば、図１に示すｘｙｚ軸）方向に沿った加速度の大きさを検出する。なお、加速度センサ８９は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。
【００８３】
また、本体装置２は、角速度センサ９０を備える。本実施形態においては、角速度センサ９０は、所定の３軸（例えば、図１に示すｘｙｚ軸）回りの角速度を検出する。なお、角速度センサ９０は、１軸回りあるいは２軸回りの角速度を検出するものであってもよい。
【００８４】
上記の加速度センサ８９および角速度センサ９０は、ＣＰＵ８１に接続され、加速度センサ８９および角速度センサ９０の検出結果は、ＣＰＵ８１へ出力される。ＣＰＵ８１は、上記の加速度センサ８９および角速度センサ９０の検出結果に基づいて、本体装置２の動きおよび／または姿勢に関する情報を算出することが可能である。なお、本実施形態においては、本体装置２の動き、姿勢、および／または位置を算出するための慣性センサとして、加速度センサおよび角速度センサを用いているが、他の実施形態では他の種類のセンサが用いられてもよい。
【００８５】
本体装置２は、電力制御部９７およびバッテリ９８を備える。電力制御部９７は、バッテリ９８およびＣＰＵ８１に接続される。また、図示しないが、電力制御部９７は、本体装置２の各部（具体的には、バッテリ９８の電力の給電を受ける各部、左側端子１７、および右側端子２１）に接続される。電力制御部９７は、ＣＰＵ８１からの指令に基づいて、バッテリ９８から上記各部への電力供給を制御する。また、電力制御部９７は、電源ボタン２８に接続される。電力制御部９７は、電源ボタン２８に対する入力に基づいて、上記各部への電力供給を制御する。すなわち、電力制御部９７は、電源ボタン２８に対して電源をオフする操作が行われた場合、上記各部の全部または一部への電力供給を停止し、電源ボタン２８に対して電源をオンする操作が行われた場合、電力制御部９７は、上記各部の全部または一部への電力供給を開始する。また、電力制御部９７は、電源ボタン２８に対する入力を示す情報（具体的には、電源ボタン２８が押下されているか否かを示す情報）をＣＰＵ８１へ出力する。
【００８６】
また、バッテリ９８は、下側端子２７に接続される。外部の充電装置（例えば、クレードル）が下側端子２７に接続され、下側端子２７を介して本体装置２に電力が供給される場合、供給された電力がバッテリ９８に充電される。
【００８７】
図７は、本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図である。なお、本体装置２に関する内部構成の詳細については、図６で示しているため図７では省略している。
【００８８】
左コントローラ３は、本体装置２との間で通信を行う通信制御部１０１を備える。図７に示すように、通信制御部１０１は、端子４２を含む各構成要素に接続される。本実施例においては、通信制御部１０１は、端子４２を介した有線通信と、端子４２を介さない無線通信との両方で本体装置２と通信を行うことが可能である。通信制御部１０１は、左コントローラ３が本体装置２に対して行う通信方法を制御する。すなわち、左コントローラ３が本体装置２に装着されている場合、通信制御部１０１は、端子４２を介して本体装置２と通信を行う。また、左コントローラ３が本体装置２から外されている場合、通信制御部１０１は、本体装置２（具体的には、コントローラ通信部８３）との間で無線通信を行う。コントローラ通信部８３と通信制御部１０１との間の無線通信は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）の規格に従って行われる。
【００８９】
また、左コントローラ３は、例えばフラッシュメモリ等のメモリ１０２を備える。通信制御部１０１は、例えばマイコン（マイクロプロセッサとも言う）で構成され、メモリ１０２に記憶されるファームウェアを実行することによって各種の処理を実行する。
【００９０】
左コントローラ３は、各ボタン１０３（具体的には、ボタン３３〜３９、４３、４４、４６、４７）を備える。また、左コントローラ３は、アナログスティック（図７では「スティック」と記載する）３２を備える。各ボタン１０３およびアナログスティック３２は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部１０１へ出力する。
【００９１】
左コントローラ３は、慣性センサを備える。具体的には、加速度センサ１０４を備える。また、角速度センサ１０５を備える。本実施例においては、加速度センサ１０４は、所定の３軸（例えば、図４に示すｘｙｚ軸）方向に沿った加速度の大きさを検出する。なお、加速度センサ１０４は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。本実施例においては、角速度センサ１０５は、所定の３軸（例えば、図４に示すｘｙｚ軸）回りの角速度を検出する。なお、角速度センサ１０５は、１軸回りあるいは２軸回りの角速度を検出するものであってもよい。加速度センサ１０４および角速度センサ１０５は、それぞれ通信制御部１０１に接続される。そして、加速度センサ１０４および角速度センサ１０５の検出結果は、適宜のタイミングで繰り返し通信制御部１０１へ出力される。
【００９２】
通信制御部１０１は、各入力部（具体的には、各ボタン１０３、アナログスティック３２、各センサ１０４および１０５）から、入力に関する情報（具体的には、操作に関する情報、または、センサによる検出結果）を取得する。通信制御部１０１は、取得した情報（または取得した情報に所定の加工を行った情報）を含む操作データを本体装置２へ送信する。なお、操作データは、所定時間に１回の割合で繰り返し送信される。なお、入力に関する情報が本体装置２へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【００９３】
上記操作データが本体装置２へ送信されることによって、本体装置２は、左コントローラ３に対して行われた入力を得ることができる。すなわち、本体装置２は、各ボタン１０３およびアナログスティック３２に対する操作を、操作データに基づいて判別することができる。また、本体装置２は、左コントローラ３の動きおよび／または姿勢に関する情報を、操作データ（具体的には、加速度センサ１０４および角速度センサ１０５の検出結果）に基づいて算出することができる。
【００９４】
また、通知用ＬＥＤ４５は、通信制御部１０１に接続される。本実施形態においては、通知用ＬＥＤ４５は、本体装置２からの指令によって制御される。すなわち、通信制御部１０１は、本体装置２からの上記指令を受け取ると、当該指令に従って通知用ＬＥＤ４５の点灯を制御する制御信号を通知用ＬＥＤ４５へ出力する。
【００９５】
左コントローラ３は、振動によってユーザに通知を行うための振動子１０７を備える。本実施例においては、振動子１０７は、本体装置２からの指令によって制御される。すなわち、通信制御部１０１は、本体装置２からの上記指令を受け取ると、当該指令に従って振動子１０７を駆動させる。ここで、左コントローラ３は、増幅器１０６を備える。通信制御部１０１は、上記指令を受け取ると、指令に応じた制御信号を増幅器１０６へ出力する。増幅器１０６は、通信制御部１０１からの制御信号を増幅して、振動子１０７を駆動させるための駆動信号を生成して振動子１０７へ与える。これによって振動子１０７が動作する。
【００９６】
左コントローラ３は、電力供給部１０８を備える。本実施例において、電力供給部１０８は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ３の各部（具体的には、バッテリの電力の給電を受ける各部）に接続される。電力制御回路は、バッテリから上記各部への電力供給を制御する。また、バッテリは、端子４２に接続される。本実施例においては、左コントローラ３が本体装置２に装着される場合、所定の条件下で、バッテリは、端子４２を介して本体装置２からの給電によって充電される。
【００９７】
図７に示すように、右コントローラ４は、本体装置２との間で通信を行う通信制御部１１１を備える。また、右コントローラ４は、通信制御部１１１に接続されるメモリ１１２を備える。通信制御部１１１は、端子６４を含む各構成要素に接続される。通信制御部１１１およびメモリ１１２は、左コントローラ３の通信制御部１０１およびメモリ１０２と同様の機能を有する。したがって、通信制御部１１１は、端子６４を介した有線通信と、端子６４を介さない無線通信（具体的には、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信）との両方で本体装置２と通信を行うことが可能であり、右コントローラ４が本体装置２に対して行う通信方法を制御する。
【００９８】
右コントローラ４は、左コントローラ３の各入力部と同様の各入力部を備える。具体的には、各ボタン１１３、アナログスティック５２、慣性センサ（加速度センサ１１４および角速度センサ１１５）を備える。これらの各入力部については、左コントローラ３の各入力部と同様の機能を有し、同様に動作する。
【００９９】
右コントローラ４の通知用ＬＥＤ６７は、左コントローラ３の通知用ＬＥＤ４５と同様に動作する。すなわち、通信制御部１１１は、本体装置２からの指令を受け取ると、当該指令に従って通知用ＬＥＤ６７の点灯を制御する制御信号を通知用ＬＥＤ６７へ出力する。
【０１００】
また、右コントローラ４は、振動子１１７および増幅器１１６を備える。振動子１１７および増幅器１１６は、左コントローラ３の振動子１０７および増幅器１０６と同様に動作する。すなわち、通信制御部１１１は、本体装置２からの指令に従って、増幅器１１６を用いて振動子１１７を動作させる。
【０１０１】
右コントローラ４は、電力供給部１１８を備える。電力供給部１１８は、左コントローラ３の電力供給部１０８と同様の機能を有し、同様に動作する。すなわち、電力供給部１１８は、バッテリから給電を受ける各部への電力供給を制御する。また、右コントローラ４が本体装置２に装着される場合、所定の条件下で、バッテリは、端子６４を介して本体装置２からの給電によって充電される。
【０１０２】
なお、本体装置２から外されたコントローラ３および４は付属機器に装着されてもよい。図８は、左コントローラ３および右コントローラ４を装着可能な付属機器の一例を示す図である。図９は、付属機器に対して左コントローラ３および右コントローラ４が装着された状態の一例を示す図である。
【０１０３】
図８に示されるように、付属機器は、支持部３５２と、ユーザが左手で把持するための左グリップ部３５３と、ユーザが右手で把持するための右グリップ部３５４とを有する。また、図８に示されるように、支持部３５２の左側面には、左コントローラ３の右側面に設けられたスライド部とスライド可能に係合する左レール部材３５６が設けられる。同様に、支持部３５２の右側面には、右コントローラ４の左側面に設けられたスライド部とスライド可能に係合する右レール部材３５６が設けられる。左レール部材３５６によって左コントローラ３が図８のｙ軸負方向にスライドされ、支持部３５２の左側に固定される（図９参照）。また、右レール部材３５６によって右コントローラ４が図８のｙ軸負方向にスライドされ、支持部３５２の右側に固定される（図９参照）。このように、コントローラ３および４を付属機器に装着して使用することで、両手持ちのコントローラのような感覚で操作をすることが可能になる。
【０１０４】
（各コントローラを用いたゲーム制御）
本実施形態では、ユーザは、情報処理システム１を用いて所定のゲームを行う。例えば、ユーザは、本体装置２のディスプレイ１２に表示されたプレイヤキャラクタＰをゲーム空間内で移動させ、所定の敵キャラクタと対戦するゲームを行う。なお、本実施形態では、ユーザは、１人でゲームを行うこともできるし、複数人でゲームを行うこともできる。ユーザが１人でゲームを行う場合、ユーザは、自身のプレイヤキャラクタＰをゲーム空間内で移動させ、本体装置２によって制御される敵キャラクタ（ノンプレイヤキャラクタ）と対戦する。複数人でゲームを行う場合、複数の本体装置２が互いに通信（例えば無線通信、ＬＡＮを介した通信、又は、インターネットを介した通信）を行い、各ユーザが自身のプレイヤキャラクタを操作して対戦する。
【０１０５】
本実施形態では、ユーザは、本体装置２に装着した左コントローラ３および右コントローラ４を用いてゲーム操作（例えば、プレイヤキャラクタＰの移動や敵キャラクタとの対戦のための操作等）を行うことができる。また、ユーザは、本体装置２から外した左コントローラ３および右コントローラ４を用いてゲーム操作を行うことができる。
【０１０６】
図１０は、左コントローラ３および右コントローラ４を本体装置２に装着した状態（「装着状態」と呼ぶ）でゲームを行う様子の一例を示す図である。図１０に示すように、各コントローラ３および４を本体装置２に装着する場合には、情報処理システム１を携帯機器（例えば、携帯型ゲーム機）として利用することができる。
【０１０７】
装着状態においては、本体装置２と各コントローラ３および４との通信は、有線通信（すなわち、互いに接続される各装置の端子を介した通信）によって行われる。すなわち、本体装置２は、自機に装着された各コントローラ３および４から操作データを受信して、受信された操作データに基づいてゲーム処理を行う。
【０１０８】
なお、他の実施形態においては、装着状態において、本体装置２とコントローラとの間で無線通信が行われてもよい。すなわち、左コントローラ３および右コントローラ４が本体装置２に装着された状態において、本体装置２と左コントローラ３とが端子１７，４２を介さずに無線により通信し、本体装置２と右コントローラ４とが端子２１，６４を介さずに無線により通信してもよい。
【０１０９】
本実施形態では、図１０に示すように本体装置２に装着した状態の左コントローラ３および右コントローラ４の組を「携帯機コントローラ１００」と呼ぶことにする。すなわち、本体装置２と一体となった左コントローラ３および右コントローラ４を「携帯機コントローラ１００」と呼ぶ。本実施形態では、ユーザは、本体装置２に装着された左コントローラ３および右コントローラ４を１つの携帯機コントローラ１００として用い、ゲーム操作を行うことができる。
【０１１０】
図１１は、左コントローラ３および右コントローラ４を本体装置２から外した状態（「離脱状態」と呼ぶ）でゲームを行う様子の一例を示す図である。
【０１１１】
離脱状態においては、本体装置２と左コントローラ３および右コントローラ４との通信は、無線通信によって行われる。すなわち、本体装置２は、自機との無線接続が確立した（ペアリングが行われた）左コントローラ３および右コントローラ４から操作データを受信して、受信された操作データに基づいてゲーム処理を行う。
【０１１２】
なお、図１１においては、左コントローラ３および右コントローラ４が上述した付属装置に装着された状態で使用される様子が示されているが、左コントローラ３および右コントローラ４は、それぞれ付属装置に装着されずに使用されてもよい。すなわち、左コントローラ３がユーザの左手に把持され、右コントローラ４がユーザの右手に把持されて使用されてもよい。
【０１１３】
本体装置２に装着されずに本体装置２と無線通信により接続されるときの左コントローラ３および右コントローラ４（図１１に示すように付属機器に装着された左コントローラ３および右コントローラ４、又は、付属機器に装着されずに本体装置２と分離された左コントローラ３および右コントローラ４）の組を「無線コントローラ３００」と呼ぶことにする。本実施形態では、ユーザは、本体装置２から離脱された左コントローラ３および右コントローラ４を１つの無線コントローラ３００として用い、ゲーム操作を行うことができる。
【０１１４】
ここで、本体装置２は、携帯機コントローラ１００と接続されると同時に、無線コントローラ３００と接続されることができる。図１２は、本体装置２が携帯機コントローラ１００と接続されると同時に無線コントローラ３００と接続されたときの情報処理システム１の一例を示す図である。
【０１１５】
図１２に示すように、本体装置２に携帯機コントローラ１００（左コントローラ３ａおよび右コントローラ４ａ）が接続されているときに、無線コントローラ３００（左コントローラ３ｂおよび右コントローラ４ｂ）が本体装置２に無線で接続されることができる。なお、携帯機コントローラ１００および無線コントローラ３００のうち何れが先に本体装置２に接続されてもよいし、同じタイミングで携帯機コントローラ１００および無線コントローラ３００が本体装置２に接続されてもよい。
【０１１６】
図１２に示されるように、携帯機コントローラ１００および無線コントローラ３００が本体装置２に接続されている場合、ユーザは、これら２つの携帯機コントローラ１００および無線コントローラ３００のいずれを使うかを切り替えることができる。
【０１１７】
具体的には、携帯機コントローラ１００および無線コントローラ３００のうちの何れかがアクティブな状態とし、当該アクティブな状態のコントローラ（１００又は３００）からの操作データがゲーム処理に反映されるようにする。この場合、アクティブでないコントローラの操作データは、本体装置２で取得した上でゲーム処理に反映しないようにしてもよいし、アクティブでない方のコントローラの操作データの少なくとも一部をアクティブになるまで本体装置２で取得しないように制限してもよい。以降、操作データがゲーム処理に反映されるコントローラをアクティブなコントローラと呼ぶ。また、当該アクティブなコントローラが、ユーザがゲームプレイに使うコントローラとみなされる。本実施形態においては、本体装置２が携帯機コントローラ１００および無線コントローラ３００と接続されている場合、最後にユーザによって所定のボタンが操作されたコントローラをアクティブな状態とし、アクティブな状態のコントローラに対して行われた操作がゲームに反映される。
【０１１８】
より具体的には、ユーザによって所定のボタンが押下された場合、その所定のボタンが押下されたコントローラがアクティブになる。例えば、携帯機コントローラ１００のうち、アナログスティック３２，５２，録画ボタン３７，およびホームボタン５８を除くボタン（具体的には操作ボタン３３〜３６，第１Ｌボタン３８，ＺＬボタン３９，−ボタン４７，操作ボタン５３〜５６，＋ボタン５７，第１Ｒボタン６０，ＺＲボタン６１）が押下された場合、携帯機コントローラ１００がアクティブになる。同様に、例えば、無線コントローラ３００のうち、アナログスティック３２，５２，録画ボタン３７，およびホームボタン５８を除くボタン（具体的には操作ボタン３３〜３６，第１Ｌボタン３８，ＺＬボタン３９，−ボタン４７，操作ボタン５３〜５６，＋ボタン５７，第１Ｒボタン６０，ＺＲボタン６１）が押下された場合、無線コントローラ３００がアクティブになる。
【０１１９】
なお、録画ボタン３７又はホームボタン５８が押された場合にも、そのボタンが押されたコントローラをアクティブに設定してもよい。
【０１２０】
このように、ユーザは、コントローラ１００又は３００に設けられた所定のボタン（３３〜３６，３８，３９，５３〜５６，５７，６０，６１）を押下するだけで、携帯機コントローラ１００および無線コントローラ３００のうち何れのコントローラを使用するかを選択することができ、ゲームの実行中に、２つのコントローラ１００および３００のいずれを使うかをシームレスに切り替えることができる。
【０１２１】
なお、本実施形態では、左コントローラ３および右コントローラ４により構成される無線コントローラ３００の代わりに、別の無線コントローラを本体装置２に接続することができる。
【０１２２】
図１３は、左コントローラ３および右コントローラ４により構成される無線コントローラ３００の代わりに、単独の無線コントローラ５００が本体装置２に接続される様子を示す図である。図１４は、無線コントローラ５００の一例を示す図である。
【０１２３】
図１４に示すように、無線コントローラ５００の正面には、Ａボタン５０１ａ、Ｂボタン５０１ｂ、Ｘボタン５０１ｘ、Ｙボタン５０１ｙ、−ボタン５０２ａ、＋ボタン５０２ｂ、録画ボタン５０２ｃ、ホームボタン５０２ｄ、アナログスティック５０３ａ、アナログスティック５０３ｂ、十字キー５０４が設けられる。また、無線コントローラ５００の上面には、Ｌボタン５０５ａ、ＺＬボタン５０６ａ、Ｒボタン５０５ｂ、ＺＲボタン５０６ｂが設けられる。
【０１２４】
十字キー５０４は右方向キー、下方向キー、上方向キー、左方向キーを含む。十字キー５０４の右方向キー、下方向キー、上方向キー、左方向キーは、左コントローラ３の右方向ボタン３３、下方向ボタン３４、上方向ボタン３５、左方向ボタン３６にそれぞれ対応する。また、−ボタン５０２ａ、録画ボタン５０２ｃ、Ｌボタン５０５ａ、ＺＬボタン５０６ａは、左コントローラ３の−ボタン４７、録画ボタン３７、第１Ｌボタン３８、ＺＬボタン３９にそれぞれ対応する。また、アナログスティック５０３ａは、左コントローラ３のアナログスティック３２に対応する。
【０１２５】
また、Ａボタン５０１ａ、Ｂボタン５０１ｂ、Ｘボタン５０１ｘ、Ｙボタン５０１ｙは、右コントローラ４のＡボタン５３、Ｂボタン５４、Ｘボタン５５、Ｙボタン５６にそれぞれ対応する。また、＋ボタン５０２ｂ、ホームボタン５０２ｄ、Ｒボタン５０５ｂ、ＺＲボタン５０６ｂは、右コントローラ４の＋ボタン５７、ホームボタン５８、第１Ｒボタン６０、ＺＲボタン６１にそれぞれ対応する。また、アナログスティック５０３ｂは、右コントローラ４のアナログスティック５２に対応する。アナログスティック５０３ａおよび５０３ｂは、アナログスティック３２および５２と同様に、スティック部材の傾倒方向および傾倒量に応じた方向および大きさの入力と、スティック部材に対する押下入力とを行うことが可能な入力部である。
【０１２６】
また、図示は省略するが、無線コントローラ５００の内部には、加速度センサと、角速度センサとが設けられる。また、ユーザの左手によって把持される左グリップ部５０７ａの内部には振動子が設けられ、ユーザの右手によって把持される右グリップ部５０７ｂの内部にも振動子が設けられてもよい。また、無線コントローラ５００の内部には、本体装置２と無線通信を行うための無線通信モジュールが設けられる。また、無線コントローラ５００の内部には、バッテリが設けられる。
【０１２７】
このように、無線コントローラ５００は、上述した無線コントローラ３００（左コントローラ３および右コントローラ４）と同等の機能を有している。すなわち、無線コントローラ５００は、無線コントローラ３００の各ボタンに対応するボタン、無線コントローラ３００のアナログスティックに対応するアナログスティックを有しており、さらに、無線コントローラ３００と同様に、慣性センサ（加速度センサおよび角速度センサ）を有している。このため、ユーザは、無線コントローラ５００を用いて、無線コントローラ３００と同様（携帯機コントローラ１００も同様）のゲーム操作を行うことができる。ただし、左コントローラ３および右コントローラ４はそれぞれが慣性センサを備え、それぞれのハウジングを動かす操作ができるのに対し、無線コントローラ５００は１台のコントローラであり、ハウジングを左右別々に動かすことはできないため、１台分の慣性センサを備えている。
【０１２８】
本実施形態においては、図１３に示されるように、携帯機コントローラ１００と無線コントローラ５００とが本体装置２に接続される場合においても、ユーザは、これら２つの携帯機コントローラ１００および無線コントローラ５００のいずれを使うかを切り替えることができる。
【０１２９】
（各コントローラから出力される操作データ）
次に、各コントローラから出力される操作データについて説明する。これらのコントローラから出力される操作データは、本体装置２によって取得され、例えばＤＲＡＭ８５等のメモリに格納される。図１５は、左コントローラ３から出力される操作データの一例を示す図である。図１６は、右コントローラ４から出力される操作データの一例を示す図である。
【０１３０】
図１５に示されるように、左コントローラ３から出力される操作データＤ３００には、加速度データＤ３０１と、角速度データＤ３０２と、左スティックデータＤ３０３と、各ボタンデータＤ３０４とが含まれる。図１５に示される操作データＤ３００は、所定の時間間隔（例えば、１／２００秒間隔）で左コントローラ３から本体装置２に出力される。なお、左コントローラ３が携帯機コントローラ１００として構成される場合も、無線コントローラ３００として構成される場合も、図１５に示される操作データＤ３００が本体装置２に出力される。
【０１３１】
加速度データＤ３０１は、加速度センサ１０４によって検出された加速度の値を示すデータである。角速度データＤ３０２は、角速度センサ１０５によって検出された角速度の値を示すデータである。
【０１３２】
左スティックデータＤ３０３は、アナログスティック３２に対する操作に応じたデータであり、スティック部材の傾倒方向に応じた方向を示すデータと、スティック部材の傾倒量を示すデータとを含む。また、上述のように、アナログスティック３２は、スティック部材に対する押下入力も行うことができる入力部である。左スティックデータＤ３０３には、アナログスティック３２に対して押下入力が行われたか否かを示すデータも含まれる。
【０１３３】
各ボタンデータＤ３０４には、左コントローラ３の各ボタンに対する操作が行われたか否かを示すデータ（ＯＮ又はＯＦＦを示すデータ）が含まれる。例えば、各ボタンデータ３０４には、操作ボタン３３〜３６が押下されたか否かを示すデータ、録画ボタン３７が押下されたか否かを示すデータ、第１Ｌボタン３８が押下されたか否かを示すデータ、ＺＬボタン３９が押下されたか否かを示すデータ、及び、−ボタン４７が押下されたか否かを示すデータが含まれる。
【０１３４】
また、図１６に示されるように、右コントローラ４から出力される操作データＤ４００には、加速度データＤ４０１と、角速度データＤ４０２と、右スティックデータＤ４０３と、各ボタンデータＤ４０４とが含まれる。図１６に示される操作データＤ４００は、所定の時間間隔（例えば、１／２００秒間隔）で右コントローラ４から本体装置２に出力される。なお、右コントローラ４が、携帯機コントローラ１００として構成される場合も、無線コントローラ３００として構成される場合も、図１６に示される操作データＤ４００が本体装置２に出力される。
【０１３５】
加速度データＤ４０１は、加速度センサ１１４によって検出された加速度の値を示すデータである。角速度データＤ４０２は、角速度センサ１１５によって検出された角速度の値を示すデータである。
【０１３６】
右スティックデータＤ４０３は、アナログスティック５２に対する操作に応じたデータであり、スティック部材の傾倒方向に応じた方向を示すデータと、スティック部材の傾倒量を示すデータとを含む。また、上述のように、アナログスティック５２は、スティック部材に対する押下入力も行うことができる入力部である。右スティックデータＤ４０３には、アナログスティック５２に対して押下入力が行われたか否かを示すデータも含まれる。
【０１３７】
各ボタンデータＤ４０４には、右コントローラ４の各ボタンに対する操作が行われたか否かを示すデータ（ＯＮ又はＯＦＦを示すデータ）が含まれる。例えば、各ボタンデータＤ４０４には、操作ボタン５３〜５６が押下されたか否かを示すデータ、ホームボタン５８が押下されたか否かを示すデータ、第１Ｒボタン６０が押下されたか否かを示すデータ、ＺＲボタン６１が押下されたか否かを示すデータ、及び、＋ボタン５７が押下されたか否かを示すデータが含まれる。
【０１３８】
（無線コントローラ５００からの操作データ）
なお、図示は省略するが、無線コントローラ５００が本体装置２と接続される場合、当該無線コントローラ５００から上述した左コントローラ３および右コントローラ４からの操作データと同様の操作データが出力される。具体的には、無線コントローラ５００からの操作データには、無線コントローラ５００の加速度センサによって検出された加速度を示す加速度データと、無線コントローラ５００の角速度センサによって検出された角速度を示す角速度データと、アナログスティック５０３ａに対する操作に応じた左スティックデータと、アナログスティック５０３ｂに対する操作に応じた右スティックデータと、各ボタンデータとが含まれる。
【０１３９】
（本体装置が検出する操作に応じた操作データ）
次に、本体装置２が検出するユーザの操作に応じた操作データについて説明する。図１７は、本体装置２が検出するユーザの操作に応じた操作データＤ２００の一例を示す図である。図１７に示されるように、操作データＤ２００には、加速度データＤ２０１と、角速度データＤ２０２とが含まれる。なお、本体装置２が検出するユーザの操作に応じた操作データＤ２００としては、図１７に示すものに限らず、他のデータ（例えば、タッチパネル１３が検出したタッチ位置を示すタッチデータ等）が含まれてもよい。
【０１４０】
加速度データＤ２０１は、加速度センサ８９によって検出された加速度の値を示すデータである。角速度データＤ２０２は、角速度センサ９０によって検出された角速度の値を示すデータである。
【０１４１】
（本体装置における処理の詳細）
次に、本体装置２において行われる処理の詳細について説明する。図１８は、本体装置２によって行われる処理の一例を示すフローチャートである。図１８に示される処理は、本体装置２のＣＰＵ８１が所定のプログラム（例えば、ゲームプログラム）を実行することにより行われる。
【０１４２】
図１８に示されるように、ＣＰＵ８１は、まず、コントローラ接続処理を実行する（ステップＳ１）。ここでは、ＣＰＵ８１は、本体装置２と携帯機コントローラ１００との接続処理、および、本体装置２と無線コントローラ３００（又は無線コントローラ５００）との接続処理を行う。
【０１４３】
なお、以下では、左コントローラ３ａおよび右コントローラ４ａによって構成される携帯機コントローラ１００と本体装置２とが接続され、左コントローラ３ｂおよび右コントローラ４ｂによって構成される無線コントローラ３００と本体装置２とが接続される場合について説明する。
【０１４４】
具体的には、ステップＳ１において、ＣＰＵ８１は、本体装置２に左コントローラ３ａおよび右コントローラ４ａが有線で接続されているか否か（すなわち、本体装置２の左側端子１７に左コントローラ３ａの端子４２が接続され、かつ、本体装置２の右側端子２１に右コントローラ４ａの端子６４が接続されているか否か）を判定する。ＣＰＵ８１は、本体装置２に左コントローラ３ａおよび右コントローラ４ａの両方が有線で接続されていると判定した場合は、左コントローラ３ａおよび右コントローラ４ａを携帯機コントローラ１００として認識し、当該携帯機コントローラ１００との接続処理を完了する。また、ＣＰＵ８１は、ステップＳ１において、無線コントローラ３００と本体装置２との無線接続を確認する処理を行う。具体的には、ＣＰＵ８１は、本体装置２とペアリングが行われた左コントローラ３ｂとの間で無線接続が確立しているか否かを判定する。また、ＣＰＵ８１は、本体装置２とペアリングが行われた右コントローラ４ｂとの間で無線接続が確立しているか否かを判定する。ＣＰＵ８１は、本体装置２と左コントローラ３ｂとの無線接続が確立し、かつ、本体装置２と右コントローラ４ｂとの無線接続が確立していると判定した場合、左コントローラ３ｂおよび右コントローラ４ｂを無線コントローラ３００として認識し、当該無線コントローラ３００との接続確認処理を完了する。なお、他の無線コントローラが本体装置２と接続されていない場合において、左コントローラ３ｂと右コントローラ４ｂとを１組として１つの無線コントローラ３００として認識される場合、左コントローラ３ｂの通知用ＬＥＤ４５の４つのＬＥＤのうちの１番目が点灯するとともに、右コントローラ４ｂの通知用ＬＥＤ６７の４つのＬＥＤのうちの１番目が点灯する。また、ＣＰＵ８１は、左コントローラ３ｂおよび右コントローラ４ｂが付属機器により固定されている場合でも、付属機器により固定されていない場合でも、左コントローラ３ｂおよび右コントローラ４ｂを１組として１つの無線コントローラ３００として認識する。
【０１４５】
なお、ここで「無線接続が確立している」とは、２つの機器との間で無線接続のための処理が完了している（例えば認証処理や互いの機器を識別するための情報の交換が行われている）ことを意味し、１対１での通信が可能な状態を意味する。例えば、本体装置２と左コントローラ３との無線接続が確立している場合、本体装置２と左コントローラ３との間で１対１での通信が可能になる。
【０１４６】
ステップＳ１に続いて、ＣＰＵ８１は、接続された２つのコントローラ１００および３００のうちの一方をアクティブに設定する（ステップＳ２）。例えば、ＣＰＵ８１は、本体装置２が携帯機コントローラ１００および無線コントローラ３００の両方と接続されている場合、携帯機コントローラ１００をアクティブに設定してもよい。あるいは、ＣＰＵ８１は、本体装置２が携帯機コントローラ１００および無線コントローラ３００の両方と接続されている場合、後に（又は先に）接続されたコントローラをアクティブに設定してもよい。また、ＣＰＵ８１は、ユーザによって選択された方をアクティブに設定してもよい。なお、携帯機コントローラ１００および無線コントローラ３００のいずれか一方だけが接続されている場合には、接続されているコントローラがアクティブとなるが、以下では携帯機コントローラ１００および無線コントローラ３００の両方が接続されている場合について説明をする。いずれか一方だけが接続されている場合に、途中でもう一方が接続された場合も、以降同様の処理が行われる。
【０１４７】
ステップＳ２に続いて、ＣＰＵ８１は、操作データを取得する（ステップＳ３）。具体的には、ＣＰＵ８１は、携帯機コントローラ１００から出力された操作データと、無線コントローラ３００から出力された操作データとを取得する。なお、ＣＰＵ８１は、ステップＳ３以降の処理を所定の時間間隔（例えば、１／６０秒間隔）で繰り返し実行する。
【０１４８】
ステップＳ３に続いて、ＣＰＵ８１は、２つのコントローラ１００および３００からの操作データに基づいて、携帯機コントローラ１００又は無線コントローラ３００の所定のボタンが操作されたか否かを判定する（ステップＳ４）。具体的には、ＣＰＵ８１は、携帯機コントローラ１００からの操作データに基づいて、携帯機コントローラ１００における所定のボタン（例えば、ボタン３３〜３６、第１Ｌボタン３８、ＺＬボタン３９、−ボタン４７、ボタン５３〜５６、第１Ｒボタン６０、ＺＲボタン６１、＋ボタン５７のうちの何れか）が押下されたか否かを判定する。また、ＣＰＵ８１は、無線コントローラ３００からの操作データに基づいて、無線コントローラ３００における所定のボタン（例えば、ボタン３３〜３６、第１Ｌボタン３８、ＺＬボタン３９、−ボタン４７、ボタン５３〜５６、第１Ｒボタン６０、ＺＲボタン６１、＋ボタン５７のうちの何れか）が押下されたか否かを判定する。なお、ＣＰＵ８１は、アナログスティック３２又は５２のスティック部材が傾倒された場合には、所定のボタンが操作されたと判定しない一方で、アナログスティック３２又は５２のスティック部材に対する押下入力が行われた場合に、所定のボタンが操作されたと判定してもよい。また、ＣＰＵ８１は、アナログスティック３２又は５２に対する押下入力が行われた場合でも、所定のボタンが操作されたと判定しなくてもよい。
【０１４９】
携帯機コントローラ１００又は無線コントローラ３００の所定のボタンが操作されたと判定した場合（ステップＳ４：ＹＥＳ）、ＣＰＵ８１は、所定のボタンが操作されたコントローラが現在アクティブな状態か否かを判定する（ステップＳ５）。
【０１５０】
ステップＳ５でＮＯと判定した場合、ＣＰＵ８１は、所定のボタンが操作されたコントローラをアクティブに設定する（ステップＳ６）。すなわち、ＣＰＵ８１は、取得された最新の操作データに基づいて、携帯機コントローラ１００および無線コントローラ３００のうち、所定のボタンが操作されたコントローラをアクティブに設定する。
【０１５１】
なお、ＣＰＵ８１は、携帯機コントローラ１００および無線コントローラ３００の両方について所定のボタンが操作されたことを検出する場合もあり得る。この場合、ＣＰＵ８１は、現在アクティブに設定されているコントローラをアクティブのままとしてもよい。また、この場合、ＣＰＵ８１は、現在アクティブでない方をアクティブに設定してもよい。また、ＣＰＵ８１は、この場合、操作されたボタンの数や回数が多い方をアクティブに設定してもよい。また、この場合、いずれか一方のコントローラを優先してアクティブにするようにしてもよい。
【０１５２】
ステップＳ５でＹＥＳと判定した場合、ステップＳ６を実行した場合、又は、ステップＳ４でＮＯと判定した場合、ＣＰＵ８１は、操作データに基づくゲーム処理を行う（ステップＳ７）。このステップＳ７の処理の詳細については後述する。
【０１５３】
ステップＳ７に続いて、ＣＰＵ８１は、ゲーム処理に基づく画像を生成してディスプレイに表示する（ステップＳ８）。具体的には、ＣＰＵ８１は、ゲーム空間に配置された仮想カメラから見た画像を生成し、ディスプレイ１２に表示する。ＣＰＵ８１は、ステップＳ８の後、処理をステップＳ３に戻す。
【０１５４】
上記ステップＳ３〜ステップＳ８の処理が所定の時間間隔（例えば、１／６０秒間隔）で繰り返し行われることにより、携帯機コントローラ１００又は無線コントローラ３００に対する操作に応じたゲーム処理が行われ、ゲーム処理の結果としての画像がディスプレイに表示される。ゲーム処理の実行中にステップＳ４〜ステップＳ６が行われることにより、携帯機コントローラ１００と無線コントローラ３００とでユーザが操作するコントローラをシームレスに切り替えることができる。なお、ゲームが終了した場合（例えば、ユーザによってゲーム終了の指示がされた場合や所定の制限時間が経過した場合等）、ＣＰＵ８１は、ステップＳ３〜ステップＳ８の処理を終了し、図１８に示す処理を終了する。
【０１５５】
（操作データに基づくゲーム処理）
次に、図１９を参照して、図１８のステップＳ７における操作データに基づくゲーム処理の詳細について説明する。図１９は、図１８のステップＳ７における操作データに基づくゲーム処理の一例を示すフローチャートである。
【０１５６】
図１９に示されるように、ＣＰＵ８１は、現在無線コントローラ３００がアクティブか否かを判定する（ステップＳ１１）。
【０１５７】
無線コントローラ３００がアクティブであると判定した場合（ステップＳ１１：ＹＥＳ）、ＣＰＵ８１は、無線コントローラ３００から出力された操作データのうち、加速度データおよび角速度データを取得する（ステップＳ１２）。具体的には、ＣＰＵ８１は、無線コントローラ３００を構成する右コントローラ４ｂから出力され、メモリに格納された加速度データＤ４０１および角速度データＤ４０２を読み出す。
【０１５８】
ステップＳ１２に続いて、ＣＰＵ８１は、無線コントローラ３００からの操作データのうち、左スティックデータＤ３０３、各ボタンデータＤ３０４、右スティックデータＤ４０３、および、各ボタンデータＤ４０４を取得する（ステップＳ１３）。
【０１５９】
一方、無線コントローラ３００がアクティブでない場合（ステップＳ１１：ＮＯ）、ＣＰＵ８１は、携帯機コントローラ１００がアクティブか否かを判定する（ステップＳ１４）。
【０１６０】
携帯機コントローラ１００がアクティブと判定した場合（ステップＳ１４：ＹＥＳ）、ＣＰＵ８１は、本体装置２の加速度データＤ２０１および角速度データＤ２０２を取得する（ステップＳ１５）。
【０１６１】
ステップＳ１５に続いて、ＣＰＵ８１は、携帯機コントローラ１００からの操作データのうち、左スティックデータＤ３０３、各ボタンデータＤ３０４、右スティックデータＤ４０３、および、各ボタンデータＤ４０４を取得する（ステップＳ１６）。
【０１６２】
ステップＳ１３の処理の後、又は、ステップＳ１６の処理の後、ＣＰＵ８１は、取得した加速度データ、角速度データ、スティックデータ、および各ボタンデータに基づいて、ゲーム処理を行う（ステップＳ１７）。すなわち、ＣＰＵ８１は、ステップＳ１３に続いてステップＳ１７を実行する場合、ステップＳ１２において取得したデータと、ステップＳ１３において取得したデータとに基づいて、ゲーム処理を行う。一方、ＣＰＵ８１は、ステップＳ１６に続いてステップＳ１７を実行する場合、ステップＳ１５において取得したデータと、ステップＳ１６において取得したデータとに基づいて、ゲーム処理を行う。
【０１６３】
例えば、ＣＰＵ８１は、ステップＳ１７において、左スティックデータに基づいて、プレイヤキャラクタＰをゲーム空間内で移動させる。また、ＣＰＵ８１は、右スティックデータに基づいて、ゲーム空間内の仮想カメラの向きを変化させる。また、ＣＰＵ８１は、各ボタンデータに基づいて、例えばプレイヤキャラクタＰに敵キャラクタへの攻撃動作を行わせる。例えば、携帯機コントローラ１００又は無線コントローラ３００のＺＲボタン６１が押下された場合、プレイヤキャラクタＰが銃で敵キャラクタを撃つ動作が行われてもよい。また、例えば、Ａボタン５３が押された場合には、プレイヤキャラクタＰが剣で敵キャラクタを攻撃する動作が行われてもよい。
【０１６４】
また、ステップＳ１７において、ＣＰＵ８１は、取得した加速度データ及び／又は角速度データに基づいて、無線コントローラ３００、又は、携帯機コントローラ１００と一体となった本体装置２の姿勢を算出し、当該算出した姿勢に基づいて、仮想カメラの向きを制御する。具体的には、無線コントローラ３００がアクティブの場合には、ＣＰＵ８１は、無線コントローラ３００における右コントローラ４ｂの角速度センサからのデータに基づいて、無線コントローラ３００が図９のｘ軸、ｙ軸、ｚ軸回りにどの程度回転したかを算出することにより、無線コントローラ３００の姿勢を算出する。この場合、ＣＰＵ８１は、右コントローラ４ｂの加速度センサからのデータに基づいて算出した姿勢を補正してもよい。そして、算出した姿勢に応じてゲーム空間における仮想カメラの向きを設定する。例えば、ＣＰＵ８１は、無線コントローラ３００の背面が向く方向と一致する方向に仮想カメラの向きを設定する。また、携帯機コントローラ１００がアクティブの場合には、ＣＰＵ８１は、本体装置２に設けられた加速度センサおよび角速度センサからのデータに基づいて、携帯機コントローラ１００と一体となった本体装置２の姿勢を算出し、算出した姿勢に応じて仮想カメラの向きを設定する。なお、無線コントローラ５００がアクティブの場合も同様である。すなわち、無線コントローラ５００がアクティブの場合には、ＣＰＵ８１は、無線コントローラ５００に設けられた加速度センサおよび角速度センサからのデータに基づいて、無線コントローラ５００の姿勢を算出し、算出した姿勢に応じて仮想カメラの向きを設定する。
【０１６５】
上記から明らかなように、現在アクティブなコントローラからの操作データ（スティックデータ、各ボタンデータ、加速度データ、角速度データ）に基づいて、ゲーム処理が行われる。無線コントローラ３００がアクティブの場合には、当該無線コントローラ３００からの各ボタンデータ、スティックデータ、当該無線コントローラ３００を構成する右コントローラ４ｂの加速度センサおよび角速度センサから出力されたデータを用いて、ゲーム処理が行われる。一方、携帯機コントローラ１００がアクティブの場合には、携帯機コントローラ１００からの各ボタンデータ、スティックデータ、本体装置２の加速度センサおよび角速度センサから出力されたデータを用いてゲーム処理が行われる。すなわち、携帯機コントローラ１００がアクティブの場合には、携帯機コントローラ１００（左コントローラ３ａおよび右コントローラ４ａ）の加速度センサおよび角速度センサから出力されたデータはゲーム処理に反映されない。ただし、アクティブでない方のコントローラの姿勢も内部的に算出しつつ、表示されるゲーム内容に反映させないようにして、アクティブなコントローラが切り替わったときにそのときの姿勢が即座に反映できるようにしてもよい。
【０１６６】
なお、無線コントローラ３００がアクティブの場合に、左コントローラ３ｂの加速度センサおよび角速度センサから出力されたデータを用いてゲーム処理が行われてもよいし、両方のコントローラ３ｂ、４ｂの加速度センサおよび角速度センサから出力されたデータを用いてゲーム処理が行われてもよい。また、携帯機コントローラ１００がアクティブの場合に、携帯機コントローラ１００を構成する左コントローラ３ａおよび右コントローラ４ａのうちの何れか一方の加速度センサおよび角速度センサから出力されたデータを用いて、ゲーム処理が行われてもよいし、左コントローラ３ａおよび右コントローラ４ａのうちの両方の加速度センサおよび角速度センサから出力されたデータを用いて、ゲーム処理が行われてもよい。
【０１６７】
ステップＳ１７の処理を実行した場合、ＣＰＵ８１は、図１９に示す処理を終了して、図１８に処理を戻す。
【０１６８】
なお、ステップＳ１４においてＮＯと判定した場合、すなわち、無線コントローラ３００および携帯機コントローラ１００の両方がアクティブでないと判定した場合、図１９に示す処理を終了する。
【０１６９】
なお、上記処理は単なる例示であり、例えば各ステップの順番を入れ替えたり、他のステップが加えられたり、上記ステップの一部が省略されたりしてもよい。
【０１７０】
例えば、図１８では、ステップＳ６の後にステップＳ７の処理を実行したが、ステップＳ６の後にステップＳ８の処理を実行してもよい。すなわち、図１８では、ステップＳ６においてコントローラの切り替えが行われた場合に、その直後にステップＳ７の処理が実行される。このため、コントローラの切り替えが行われた場合に、その切り替えのための操作もゲーム処理に反映される。すなわち、アクティブでないコントローラの所定のボタンが押された場合には、その所定のボタンが押されたコントローラをアクティブに切り替えるとともに、その所定のボタンが押されたことに応じたゲーム処理が行われる。
【０１７１】
一方、図１８におけるステップＳ６の後に、ステップＳ８の処理が行われる場合には、今回の処理ループではコントローラの切り替えのみが行われ、コントローラの切り替えのための操作はゲーム処理には反映されない。すなわち、ユーザによる１回目のボタン操作によりコントローラの切り替えが行われ、２回目以降の操作によりゲーム処理が行われることになる。
【０１７２】
このように、本実施形態では、携帯機コントローラ１００および無線コントローラ３００のうち、最後にユーザが操作したコントローラがアクティブになり、アクティブなコントローラから出力された操作データを反映したゲーム処理が行われる。
【０１７３】
例えば、２つのコントローラ１００および３００が本体装置２に接続される場合、ＣＰＵ８１が、両方のコントローラからの操作データに基づいてゲーム処理を行うと、想定し得ない操作入力が行われてしまうことがあり、それにより予期せぬ動作が発生する可能性がある。例えば、１人のユーザが携帯機コントローラ１００および無線コントローラ３００のうちの何れか一方を用いてゲームを行うことを想定した場合に、１人のユーザには実行不可能な操作があり、ゲームプログラム側ではそのような実行不可能な操作が想定されていない場合がある。例えば、１つのスティックに対して２つの方向を同時に入力することはできないし、慣性センサの値を同時に２つ入力することはできない。しかしながら、１人のユーザが携帯機コントローラ１００および無線コントローラ３００のうちの何れか一方を用いてゲームを行うことを想定したゲームにおいて、例えば２人のユーザが携帯機コントローラ１００および無線コントローラ３００をそれぞれ操作した場合には、１人のユーザが実行不可能な操作が入力可能となり、ゲームプログラム側で予期していない動作が発生する可能性がある。
【０１７４】
しかしながら、本実施形態では、携帯機コントローラ１００および無線コントローラ３００のうちの何れか一方のみがアクティブになり、アクティブな状態のコントローラに対する操作がゲーム処理に用いられるため、上述した実行不可能な操作を想定しなくてもよい。
【０１７５】
また、ボタン入力はＯＮ／ＯＦＦの区別ができるが、スティックの入力や、センサからの出力は、常に何らかの値を示すため、ユーザが意図的に入力をしたものかどうか判定が難しいという問題もあるが、本実施形態では、アクティブな方のコントローラの操作データを反映するため、ユーザが使っている方のコントローラのデータのみを反映させることができる。
【０１７６】
例えば、右コントローラ４の加速度センサ１１４および角速度センサ１１５は、常に物理量（加速度値、角速度値）を検出するため、その検出時点における加速度値および角速度値が、右コントローラ４から本体装置２に出力される。したがって、例えば、右コントローラ４がユーザによって動かされていない場合でもこれらの物理量が出力される。例えば、右コントローラ４が静止状態の場合でも、これらの物理量が検出され（静止状態では加速度としては重力が出力される）、検出された物理量が右コントローラ４から本体装置２に出力される。また、右コントローラ４がユーザによって動かされていない場合でも、例えば右コントローラ４に何らかの力が加わっている場合（例えば、コントローラが置かれている環境が動いている場合等）には、これらの物理量が検出され、本体装置２に出力される。すなわち、ユーザがコントローラを操作していない場合でも加速度センサ、角速度センサからは加速度値、角速度値が検出されるため、加速度センサや角速度センサからの出力では、本体装置２は、ユーザが意図的にコントローラに対して操作を行っているかどうか（ユーザが実際にそのコントローラを使っているかどうか）を判定し難い。しかしながら、本実施形態では、ボタン入力の有無によって判定するため、ユーザが使っているコントローラを容易に判別することができる。そして、ユーザが使っているコントローラの加速度センサおよび角速度センサからの出力のみをゲーム処理に反映させることができる。
【０１７７】
（コントローラの選択処理）
なお、上記では、本体装置２に携帯機コントローラ１００および無線コントローラ３００が接続された場合の処理について説明した。本実施形態の本体装置２は、複数の無線コントローラと接続されることができる。例えば、本体装置２は、左コントローラ３ｂおよび右コントローラ４ｂによって構成される無線コントローラ３００に加えて、無線コントローラ５００が接続されることがある。また、本体装置２は、左コントローラ３ｂおよび右コントローラ４ｂによって構成される無線コントローラ３００に加えて、左コントローラ３ｃおよび右コントローラ４ｃによって構成される無線コントローラ３０１が接続されることがある。
【０１７８】
具体的には、本体装置２は、図１８および図１９に示した処理の他に、無線コントローラと無線接続を確立するための処理を繰り返し行う。例えば、本体装置２に携帯機コントローラ１００および無線コントローラ３００が接続されている状態において、図１３に示す無線コントローラ５００から無線接続の試みが行われた場合、本体装置２は、その試みに応じて無線コントローラ５００との間の無線接続を確立することができる。例えば、ユーザが本体装置２に携帯機コントローラ１００および無線コントローラ３００を接続してゲームを行っているときに、無線コントローラ３００の電池残量が少なくなった場合、ユーザは、無線コントローラ３００に代えて、無線コントローラ５００を使用することを望む場合がある。このとき、ユーザが無線コントローラ５００のボタンを押下すると、無線コントローラ５００は本体装置２への無線接続を試みる。本体装置２は、無線コントローラ５００からの無線接続の試みに応じて、無線コントローラ５００との無線接続を確立する。本体装置２と無線コントローラ５００との間の無線接続が確立されると、本体装置２には、携帯機コントローラ１００に加えて、２つの無線コントローラ３００および５００が接続された状態となる。
【０１７９】
以下では、複数の無線コントローラが本体装置２に接続された状態になったときの本体装置２の処理について説明する。
【０１８０】
図２０は、２つの無線コントローラが本体装置２に無線接続される場合にゲームに使用するコントローラを選択するための選択処理の一例を示す図である。ＣＰＵ８１は、所定のプログラムを実行することにより図２０に示す処理を行う。なお、ＣＰＵ８１は、図２０に示す処理を所定の時間間隔（例えば、１／６０秒間隔）で繰り返し実行する。
【０１８１】
図２０に示されるように、ＣＰＵ８１は、まず、２つの無線コントローラが無線接続された状態か否かを判定する（ステップＳ３１）。２つの無線コントローラが接続されていなければ（ステップＳ３１：ＮＯ）、ＣＰＵ８１は、図２０の処理を終了する。
【０１８２】
一方、２つの無線コントローラが無線接続された状態であると判定した場合（ステップＳ３１：ＹＥＳ）、ＣＰＵ８１は、コントローラ選択処理を実行する（ステップＳ３２）。ここでは、本体装置２に、携帯機コントローラ１００と、無線コントローラ３００と、無線コントローラ５００とが接続されている場合を想定して、ステップＳ３２におけるコントローラ選択処理について説明する。
【０１８３】
具体的には、ＣＰＵ８１は、ステップＳ３２において、現在接続されているコントローラの情報（携帯機コントローラ１００、無線コントローラ３００、および無線コントローラ５００）を示す画像とともに、ユーザにコントローラを選択させるための画像が含まれる画像を生成し、ディスプレイ１２に出力する。例えば、ＣＰＵ８１は、ユーザに自身が使用するコントローラを把持してＬボタンおよびＲボタンを押下するように促す画像を生成する。ユーザは、この選択画面が表示されると、自身が使用するコントローラのＬボタンおよびＲボタンを押下することにより、複数のコントローラ（携帯機コントローラ１００、無線コントローラ３００、および無線コントローラ５００）のうちの何れかを選択する。
【０１８４】
ステップＳ３２のコントローラ選択処理において無線コントローラが選択された場合（ステップＳ３３：ＹＥＳ）、ＣＰＵ８１は、選択されなかった無線コントローラとの無線接続を切断する（ステップＳ３４）。例えば、本体装置２に、無線コントローラとして無線コントローラ３００および無線コントローラ５００が接続されているときに、ステップＳ３２において無線コントローラ３００がユーザによって選択された場合、ＣＰＵ８１は、ユーザによって選択されなかった無線コントローラ５００との無線接続を切断する。そして、ＣＰＵ８１は、ユーザによって選択された無線コントローラ３００をアクティブに設定し（ステップＳ３５）、図２０の処理を終了する。
【０１８５】
一方、ステップＳ３２のコントローラ選択処理において携帯機コントローラ１００が選択された場合（ステップＳ３３でＮＯ、かつ、ステップＳ３６でＹＥＳ）、ＣＰＵ８１は、接続されている全ての無線コントローラ（３００および５００）との無線接続を切断する（ステップＳ３７）。そして、ＣＰＵ８１は、ユーザによって選択された携帯機コントローラ１００をアクティブに設定し（ステップＳ３８）、図２０の処理を終了する。
【０１８６】
ステップＳ３２のコントローラ選択処理において何れのコントローラも選択されなかった場合（ステップＳ３６でＮＯ）、ＣＰＵ８１は、２番目に接続が確立された無線コントローラとの無線接続を切断する（ステップＳ３９）。例えば、ステップＳ３２のコントローラ選択処理においてユーザによってコントローラ選択処理のキャンセルが指示された場合、ＣＰＵ８１は、ステップＳ３９の処理を実行する。ステップＳ３９の処理を実行すると、ＣＰＵ８１は、図２０の処理を終了する。また、ユーザによって何れのコントローラも選択されずに所定時間が経過した場合もＣＰＵ８１は、ステップＳ３９の処理を実行する。この場合、所定時間が経過していない場合は、ステップＳ３２に戻ることになる。
【０１８７】
なお、本体装置２に２つの無線コントローラ３００が無線接続された場合も、図２０に示す処理にしたがってコントローラの選択処理が行われる。また、本体装置２に２つの無線コントローラ５００が無線接続された場合も同様である。
【０１８８】
なお、上記処理は単なる例示であり、例えば各ステップの順番を入れ替えたり、他のステップが加えられたり、各ステップの一部が省略されてもよい。
【０１８９】
このように、ユーザによって選択されなかった無線コントローラについては、無線接続が切断される。これにより、電力消費を抑えることができる。なお、無線接続が切断された無線コントローラをユーザが再び操作した場合は、無線コントローラは本体装置２への接続を試み、再び無線コントローラと本体装置２との間で無線接続が確立される。
【０１９０】
以上のように、本実施形態の情報処理システムは、本体装置２と、本体装置２に装着された状態の携帯機コントローラ１００と、本体装置２と無線接続された無線コントローラ（３００又は５００）とを備える。携帯機コントローラ１００および無線コントローラ（３００又は５００）のうち、ユーザによって最後に所定のボタンが操作されたコントローラがアクティブになり、アクティブなコントローラに対する操作に応じた操作データに基づいて、ゲーム処理が行われる。
【０１９１】
すなわち、本体装置２と無線接続された（言い換えると、本体装置２と分離された）無線コントローラ（３００又は５００）および本体装置２と一体となった携帯機コントローラ１００のうち、最後にユーザによって操作されたコントローラに対する操作に基づいてゲーム処理が行われる。本体装置２は、最後に操作されたコントローラから受信した操作データに基づいてゲーム処理を行う一方で、最後に操作されたコントローラとは異なるコントローラから操作データを受信しても当該受信した操作データに基づいてはゲーム処理を行わない。
【０１９２】
これにより、２つのコントローラ（１００および３００）をシームレスに切り替えることができる。例えば、ユーザは、無線コントローラ３００を用いてゲームを行っている間に、携帯機コントローラ１００の所定のボタンを押下することにより、無線コントローラ３００から携帯機コントローラ１００に切り替えることができる。
【０１９３】
また、本実施形態では、本体装置２に接続された携帯機コントローラ１００および無線コントローラ（３００又は５００）のうち、一方からの操作データに基づいてゲーム処理が行われ、他方からの操作データに基づいてゲーム処理が行われない。このため、ユーザが操作していないコントローラから操作データが出力された場合でも、当該コントローラからの操作データをゲーム処理に反映せず、ユーザが操作しているコントローラからの操作データのみをゲーム処理に反映させることができる。例えば、本体装置２および当該本体装置２と一体となった携帯機コントローラ１００が回転又は移動する環境に存在する場合（例えば、車内や本体装置２が置かれたテーブルが移動された場合）、ユーザが操作しなくても、本体装置２および携帯機コントローラ１００の姿勢が変化する。このような状況において、例えば、ユーザが無線コントローラ３００を把持してゲーム操作を行っているときに、本体装置２の姿勢が変化してその姿勢の変化がゲーム処理に反映されると、ユーザが無線コントローラ３００を動かしていなくても、例えば、ゲーム空間における仮想カメラの方向が変化してしまう。しかしながら、本実施形態では、携帯機コントローラ１００および無線コントローラ（３００又は５００）のうち、ユーザによって明確な操作（所定のボタンを押下するという操作）が行われた方をアクティブに設定し、アクティブなコントローラからの操作データのみがゲーム処理に反映されるため、ユーザの操作に起因しない加速度や角速度の発生をゲーム処理に反映させないようにすることができる。
【０１９４】
ここで、「本体装置と一体となった」とは、上記実施形態のように本体装置２から分離可能な左右のコントローラ３，４を本体装置２に装着した状態、および、本体装置２と分離不可能に構成され本体装置に固定された状態を含む。すなわち、「本体装置と一体となったコントローラ（あるいは操作部）」とは、本体装置に固定されたコントローラ（あるいは操作部）であって、本体装置が動いたときにそれと連動するコントローラ（あるいは操作部）を意味し、分離可能なコントローラを本体装置に装着したときのコントローラ、および、本体装置に固定された操作部（本体装置のハウジングに設けられた操作ボタン等）を含む。なお、分離可能なコントローラを本体装置に装着して接続する場合、本体装置とコントローラとの通信は、有線により行われてもよいし無線により行われてもよい。
【０１９５】
（変形例）
以上、本実施形態の情報処理システムについて説明したが、他の実施形態では、情報処理システムは以下のように構成されてもよい。
【０１９６】
例えば、本実施形態では、無線コントローラ（３００又は５００）がアクティブの場合には、当該無線コントローラに設けられた加速度センサおよび角速度センサ（慣性センサ）からのデータに基づいて無線コントローラの姿勢を算出し、算出した姿勢に基づいて仮想カメラの設定が行われた。また、携帯機コントローラがアクティブの場合には、本体装置に設けられた加速度センサおよび角速度センサ（慣性センサ）からのデータに基づいて携帯機コントローラ（本体装置）の姿勢を算出し、算出した姿勢に基づいて仮想カメラの設定が行われた。
【０１９７】
他の実施形態では、例えば、カメラを用いてコントローラの姿勢を検出してもよい。例えば、無線コントローラがアクティブの場合には、無線コントローラに設けられたカメラを用いて周囲を撮像し、撮像した画像を解析することにより、無線コントローラの姿勢を検出してもよい。また、周囲に設けられたカメラを用いて無線コントローラを撮像し、撮像した画像を解析することにより、無線コントローラの姿勢を検出してもよい。携帯機コントローラがアクティブの場合も同様である。例えば、携帯機コントローラがアクティブの場合には、携帯機コントローラに設けられたカメラ、本体装置に設けられたカメラ、又は、周囲に設けられたカメラを用いて画像を撮像し、撮像した画像を解析することにより、携帯機コントローラ（本体装置）の姿勢を検出してもよい。
【０１９８】
また、コントローラの姿勢に限らず、コントローラの状態を検出し、検出した状態に基づいてゲーム処理が行われてもよい。また、コントローラの状態に基づいて、仮想カメラの設定に限らずその他の任意のゲーム処理が行われてもよい。コントローラの状態は、コントローラの位置（例えば、ＧＰＳを用いて検出される位置）、動き、向き、温度、電池残量、通信状態等であってもよい。すなわち、情報処理システムに携帯機コントローラの状態を検出するセンサ、および、無線コントローラの状態を検出するセンサが設けられ、携帯機コントローラがアクティブの場合には、携帯機コントローラの状態を検出するセンサからのデータと、携帯機コントローラの各ボタンおよびアナログスティックに対して行われた操作とに基づいて、ゲーム処理が行われてもよい。また、携帯機コントローラがアクティブの場合には、携帯機コントローラの状態を検出するセンサからのデータと、携帯機コントローラの各ボタンおよびアナログスティックに対して行われた操作とに基づいて、ゲーム処理が行われてもよい。
【０１９９】
また、本実施形態では、コントローラに対して行われた操作に基づいてゲーム処理が行われることとしたが、他の実施形態では、ゲーム処理に限らず、他の任意の情報処理が行われてもよい。
【０２００】
また、本実施形態では、携帯機コントローラおよび無線コントローラには、ユーザの操作によって可動する可動操作部（各ボタンおよびアナログスティック）が設けられた。他の実施形態では、他の操作部が設けられてもよい。例えば、携帯機コントローラおよび無線コントローラには、各ボタン、アナログスティック、ユーザが所定方向にスライドさせることにより操作するスライドスティック（スライドパッドともいう）、タッチパネルのうちの少なくともいずれか１つが設けられてもよい。
【０２０１】
また、本実施形態では、携帯機コントローラおよび無線コントローラにおける所定のボタンが押された場合に、コントローラを切り替え、携帯機コントローラおよび無線コントローラにおけるアナログスティックを傾倒する操作が行われた場合には、コントローラを切り替えないようにした。これは、アナログスティックのスティック部材は、力が加わらないときには初期位置（垂直に立つ状態）に戻るように構成されているが、スティック部材に力が加わっていないときに完全に初期位置に戻らないことも想定されるからである。
【０２０２】
他の実施形態では、アナログスティックを傾倒する操作が行われた場合にもコントローラを切り替えてもよい。例えば、アナログスティックの傾倒量が所定以上の場合には、当該所定以上に傾けられたアナログスティックを有するコントローラをアクティブに設定してもよい。また、スティック部材を傾倒するアナログスティックに代えて、スティック部材をスライドさせるスライドスティックが用いられる場合には、スライド量が所定以上の場合に、コントローラを切り替えてもよい。
【０２０３】
また、アナログスティックが傾倒された場合にはコントローラを切り替えない一方で、アナログスティックに対して押下入力が行われた場合には、コントローラを切り替えてもよい。
【０２０４】
また、携帯機コントローラおよび無線コントローラにおける所定のボタンやアナログスティックに対する操作に限らず、コントローラに対する他の操作が行われた場合に、その操作が行われたコントローラをアクティブにしてもよい。例えば、ユーザはジェスチャ操作によりコントローラに対する入力操作を行ってもよい。例えば、コントローラに設けられたカメラ（例えば上記赤外線カメラや可視光カメラ）を用いてユーザの手や顔等を撮像し、撮像した画像に基づいてユーザのジェスチャ操作を検出した場合、その画像を撮像したコントローラをアクティブに設定してもよい。
【０２０５】
また、本実施形態では、２つのコントローラ（携帯機コントローラおよび無線コントローラ）が本体装置２に接続されている場合に、これら２つのコントローラについて最後に操作が行われたコントローラをアクティブに設定した。他の実施形態では、３つ以上のコントローラ（例えば、携帯機コントローラ１００、１又は複数の無線コントローラ３００、１又は複数の無線コントローラ５００）が本体装置２に接続され、これら３つ以上のコントローラについて最後に操作が行われたコントローラをアクティブにしてもよい。
【０２０６】
また、他の実施形態では、複数の無線コントローラが本体装置２に接続されている場合に、無線コントローラ間で上述した切り替えが行われてもよい。例えば、無線コントローラ３００と無線コントローラ５００とが本体装置２に接続され、無線コントローラ３００がアクティブに設定されている場合において、無線コントローラ５００の所定のボタンが押された場合に、無線コントローラ５００をアクティブに設定してもよい。
【０２０７】
また、本実施形態では、携帯機コントローラ１００が本体装置２に接続され、かつ、無線コントローラが本体装置２に接続されていることを前提としたが、他の実施形態では、無線コントローラと本体装置２との無線接続が確立されていない場合でも、携帯機コントローラ１００と無線コントローラとの間で切り替えが行われてもよい。具体的には、本体装置２に携帯機コントローラ１００が接続されており、かつ、本体装置２に無線コントローラが接続されていない状態で、無線コントローラの所定のボタンが押されると、無線コントローラと本体装置２との接続処理が行われ、無線コントローラと本体装置２との間の無線接続が確立される。そして、さらに無線コントローラの所定のボタンが押された場合、無線コントローラがアクティブになり、無線コントローラに対する操作に基づく情報処理（例えば、ゲーム処理）が行われる。さらにその後、携帯機コントローラ１００の所定のボタンが押されると、携帯機コントローラ１００がアクティブになり、携帯機コントローラ１００に対する操作に基づく情報処理が行われる。
【０２０８】
また、本実施形態では、本体装置２の左右に装着される左コントローラ３および右コントローラ４によって携帯機コントローラ１００が構成された。他の実施形態では、携帯機コントローラは、左右の２つのコントローラによって構成される場合に限らず、１つのコントローラによって構成されてもよいし、３つ以上のコントローラによって構成されてもよい。例えば、本体装置２の左側に装着された左コントローラ３を携帯機コントローラとして構成し、本体装置２から分離された右コントローラ４を無線コントローラとして構成してもよい。そして、このように構成された携帯機コントローラおよび無線コントローラを上述した方法により切り替えてもよい。
【０２０９】
以上、本発明について説明したが、上記説明は本発明の例示に過ぎず、種々の改良や変形が加えられてもよい。
【符号の説明】
【０２１０】
１  情報処理装置
２  本体装置
３  左コントローラ
４  右コントローラ
１１  ハウジング
１２  ディスプレイ
１７  左側端子
２１  右側端子
４２，６４  端子
８１  ＣＰＵ
８３  コントローラ通信部
８９  加速度センサ
９０  角速度センサ
１００  携帯機コントローラ
１０４、１１４  加速度センサ
１０５、１１５  角速度センサ
３００  無線コントローラ
５００  無線コントローラ
【図１】
2018064649.tif 000003
【図２】
2018064649.tif 000004
【図３】
2018064649.tif 000005
【図４】
2018064649.tif 000006
【図５】
2018064649.tif 000007
【図６】
2018064649.tif 000008
【図７】
2018064649.tif 000009
【図８】
2018064649.tif 000010
【図９】
2018064649.tif 000011
【図１０】
2018064649.tif 000012
【図１１】
2018064649.tif 000013
【図１２】
2018064649.tif 000014
【図１３】
2018064649.tif 000015
【図１４】
2018064649.tif 000016
【図１５】
2018064649.tif 000017
【図１６】
2018064649.tif 000018
【図１７】
2018064649.tif 000019
【図１８】
2018064649.tif 000020
【図１９】
2018064649.tif 000021
【図２０】
2018064649.tif 000022