(57)【要約】【課題】操作装置を用いて操作可能なシステムにおいて、当該操作装置を用いた操作に応じて適切な振動を与えることができる情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法を提供する。【解決手段】方向入力部に対する操作に応じた第１操作データを用いて第１振動データを生成し、押下ボタンに対する操作に応じた第２操作データを用いて第２振動データを生成する。そして、第１振動データに応じて第１の操作装置の第１の振動子を振動させ、第２振動データに応じて第２の操作装置の第２の振動子を振動させる。【選択図】図１３
2018110650.tif 000002
【特許請求の範囲】
【請求項１】
第１の振動子を有する第１の操作装置と第２の振動子を有する第２の操作装置と当該第１の操作装置および当該第２の操作装置のそれぞれと通信可能な情報処理装置とを含む情報処理システムであって、
前記第１の操作装置は、
当該第１の操作装置のハウジングに設けられた方向入力部と、
前記方向入力部に対する操作に応じた第１操作データを前記情報処理装置に送信する第１送信手段とを含み、
前記第２の操作装置は、
前記第２の操作装置のハウジングに設けられた押下ボタンと、
前記押下ボタンに対する操作に応じた第２操作データを前記情報処理装置に送信する第２送信手段とを含み、
前記情報処理装置は、
前記第１の操作装置と第２の操作装置とを１組として用いる操作方式を設定する設定手段と、
前記第１操作データと前記第２操作データとを取得する操作データ取得手段と、
前記第１操作データを用いて第１振動データを生成し、前記第２操作データを用いて第２振動データを生成する振動データ生成手段と、
前記第１振動データを前記第１の操作装置に送信するとともに、前記設定手段により当該第１の操作装置と同組に設定された前記第２の操作装置に前記第２振動データを送信する第３送信手段とを含み、
前記第１の操作装置は、前記第１振動データに応じて前記第１の振動子を振動させる第１振動制御手段を、さらに含み、
前記第２の操作装置は、前記第２振動データに応じて前記第２の振動子を振動させる第２振動制御手段を、さらに含む、情報処理システム。
【請求項２】
前記振動データ生成手段は、前記第１操作データを用いて前記方向入力部に対して有効となる操作が行われたことを契機として前記第１振動データを生成し、前記第２操作データを用いて前記押下ボタンに対して有効となる操作が行われたことを契機として前記第２振動データを生成する、請求項１に記載の情報処理システム。
【請求項３】
前記方向入力部は、ユーザによって操作されるスティックの傾倒方向および傾倒角度に応じた前記第１操作データを出力するアナログスティックである、請求項１または２に記載の情報処理システム。
【請求項４】
前記第１振動データが示す振動波形は、前記第２振動データが示す振動波形とは異なる、請求項１乃至３の何れか１つに記載の情報処理システム。
【請求項５】
前記第１振動データが示す振動波形は、前記第２振動データが示す振動波形に対して、振幅の大きさ、周波数、振動期間、振動を断続的に付与する時間間隔、および振動開始タイミングの少なくとも１つが異なる、請求項４に記載の情報処理システム。
【請求項６】
前記振動データ生成手段は、前記検出に対して所定時間経過した後に振動を開始するまたは振動の振幅の極大値が到来するように、前記第１振動データおよび／または前記第２振動データを生成する、請求項２に記載の情報処理システム。
【請求項７】
前記情報処理装置は、前記方向入力部に対して有効となる操作が行われたことを契機として第１の効果音を生成して出力し、前記押下ボタンに対して有効となる操作が行われたことを契機として第２の効果音を生成して出力する音声出力手段を、さらに含み、
前記振動データ生成手段は、前記第１の効果音の出力が開始された所定時間経過した後に振動を開始するまたは振動の振幅の極大値が到来するように前記第１振動データを生成する、および／または前記第２の効果音の出力が開始された所定時間経過した後に振動を開始するまたは振動の振幅の極大値が到来するように前記第２振動データを生成する、請求項１乃至６の何れか１つに記載の情報処理システム。
【請求項８】
前記第１操作装置と前記第２操作装置とは、物理的に離間している、請求項１乃至７の何れか１つに記載の情報処理システム。
【請求項９】
前記情報処理装置は、前記第１操作データに応じて複数の項目のうちいずれかを選択し、前記第２操作データに応じて当該選択された項目を決定する情報処理を行う情報処理手段を、さらに含む、請求項１乃至８の何れか１つに記載の情報処理システム。
【請求項１０】
前記振動データ生成手段は、前記選択される項目が変更される毎に前記第１振動データを生成し、前記選択された項目が決定されたことに応じて前記第２振動データを生成する、請求項９に記載の情報処理システム。
【請求項１１】
前記情報処理手段は、
所定のゲーム処理を行うゲーム処理手段と、
前記ゲーム処理されるゲームを開始する前に複数の選択肢を表示装置に表示する選択肢提示手段とを含み、
前記振動データ生成手段は、前記選択される選択肢が変更される毎に前記第１振動データを生成し、前記選択された選択肢が決定されたことに応じて前記第２振動データを生成する、請求項９または１０に記載の情報処理システム。
【請求項１２】
前記情報処理装置は、前記第１操作データに応じて第１の情報処理を行い、前記第２操作データに応じて第２の情報処理を行う情報処理手段を、さらに含み、
前記振動データ生成手段は、前記第１の情報処理の内容に応じて前記第１振動データを生成し、前記第２の情報処理の内容に応じて前記第２振動データを生成する、請求項１乃至８の何れか１つに記載の情報処理システム。
【請求項１３】
第１の振動子および方向入力部を有する第１の操作装置と第２の振動子および押下ボタンを有する第２の操作装置と通信可能な情報処理装置であって、
前記第１の操作装置と第２の操作装置とを１組として用いる操作方式を設定する設定手段と、
前記方向入力部に対する操作に応じた第１操作データを前記第１の操作装置から取得し、前記押下ボタンに対する操作に応じた第２操作データを前記第２の操作装置から取得する操作データ取得手段と、
前記第１操作データを用いて第１振動データを生成し、前記第２操作データを用いて第２振動データを生成する振動データ生成手段と、
前記第１振動データを前記第１の操作装置に送信することによって当該第１振動データに応じて前記第１の振動子を振動させるとともに、前記設定手段により当該第１の操作装置と同組に設定された前記第２の操作装置に前記第２振動データを送信することによって当該第２振動データに応じて前記第２の振動子を振動させる送信手段とを備える、情報処理装置。
【請求項１４】
第１の振動子および方向入力部を有する第１の操作装置と第２の振動子および押下ボタンを有する第２の操作装置と通信可能な情報処理装置に含まれるコンピュータで実行される情報処理プログラムであって、
前記コンピュータを、
前記第１の操作装置と第２の操作装置とを１組として用いる操作方式を設定する設定手段と、
前記方向入力部に対する操作に応じた第１操作データを前記第１の操作装置から取得し、前記押下ボタンに対する操作に応じた第２操作データを前記第２の操作装置から取得する操作データ取得手段と、
前記第１操作データを用いて第１振動データを生成し、前記第２操作データを用いて第２振動データを生成する振動データ生成手段と、
前記第１振動データを前記第１の操作装置に送信することによって当該第１振動データに応じて前記第１の振動子を振動させるとともに、前記設定手段により当該第１の操作装置と同組に設定された前記第２の操作装置に前記第２振動データを送信することによって当該第２振動データに応じて前記第２の振動子を振動させる送信手段として機能させる、情報処理プログラム。
【請求項１５】
第１の振動子および方向入力部を有する第１の操作装置と第２の振動子および押下ボタンを有する第２の操作装置を用いて情報処理を行う情報処理方法であって、
前記第１の操作装置と第２の操作装置とを１組として用いる操作方式を設定する設定ステップと、
前記方向入力部に対する操作に応じた第１操作データを前記第１の操作装置から取得し、前記押下ボタンに対する操作に応じた第２操作データを前記第２の操作装置から取得する操作データ取得ステップと、
前記第１操作データを用いて第１振動データを生成し、前記第２操作データを用いて第２振動データを生成する振動データ生成ステップと、
前記第１振動データを前記第１の操作装置に送信することによって当該第１振動データに応じて前記第１の振動子を振動させるとともに、前記設定手段により当該第１の操作装置と同組に設定された前記第２の操作装置に前記第２振動データを送信することによって当該第２振動データに応じて前記第２の振動子を振動させる送信ステップとを含む、情報処理方法。
【請求項１６】
振動子を有する操作装置と当該操作装置と通信可能な情報処理装置とを含む情報処理システムであって、
前記操作装置は、
当該操作装置のハウジングに設けられた方向入力部と、
前記方向入力部に対する操作に応じて操作データを前記情報処理装置に送信する第１送信手段とを含み、
前記情報処理装置は、
前記操作データを取得する操作データ取得手段と、
前記操作データに応じて所定の情報処理を行う情報処理手段と、
前記所定の情報処理の内容に応じて前記方向入力部に対する操作から振動を遅延させるか否かを決定して当該決定に基づいた振動データを生成する振動データ生成手段と、
前記振動データを前記操作装置に送信する第２送信手段とを含み、
前記操作装置は、前記振動データに応じて前記振動子を振動させる振動制御手段を、さらに含む、情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作装置を用いて操作可能な情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法に関する。
【背景技術】
【０００２】
従来、方向入力部と押下ボタンとが設けられているゲームコントローラを用いて操作可能なゲームシステムがある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１１０６７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１で開示されたゲームシステムでは、ゲームコントローラに設けられている方向入力部や押下ボタンを操作したとしても、当該操作に応じて当該ゲームコントローラを適切に振動させることについては何ら考慮されていない。すなわち、上記特許文献１で開示されたゲームシステムでは、ゲームコントローラの方向入力部や押下ボタンを用いた操作に応じて適切にバイブレータを制御することについては考慮されていない。
【０００５】
それ故、本発明の目的は、操作装置を用いて操作可能なシステムにおいて、当該操作装置を用いた操作に応じて適切な振動を与えることができる情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法を提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【０００７】
本発明の情報処理システムの一構成例は、第１の振動子を有する第１の操作装置と第２の振動子を有する第２の操作装置と当該第１の操作装置および当該第２の操作装置のそれぞれと通信可能な情報処理装置とを含む。第１の操作装置は、方向入力部および第１送信手段を含む。方向入力部は、第１の操作装置のハウジングに設けられる。第１送信手段は、方向入力部に対する操作に応じた第１操作データを情報処理装置に送信する。第２の操作装置は、押下ボタンおよび第２送信手段を含む。押下ボタンは、第２の操作装置のハウジングに設けられる。第２送信手段は、押下ボタンに対する操作に応じた第２操作データを情報処理装置に送信する。情報処理装置は、設定手段、操作データ取得手段、振動データ生成手段、および第３送信手段を含む。設定手段は、第１の操作装置と第２の操作装置とを１組として用いる操作方式を設定する。操作データ取得手段は、第１操作データと第２操作データとを取得する。振動データ生成手段は、第１操作データを用いて第１振動データを生成し、第２操作データを用いて第２振動データを生成する。第３送信手段は、第１振動データを第１の操作装置に送信するとともに、設定手段により当該第１の操作装置と同組に設定された第２の操作装置に第２振動データを送信する。第１の操作装置は、第１振動制御手段を、さらに含む。第１振動制御手段は、第１振動データに応じて第１の振動子を振動させる。第２の操作装置は、第２振動制御手段を、さらに含む。第２振動制御手段は、第２振動データに応じて第２の振動子を振動させる。
【０００８】
上記によれば、第１の操作装置および第２の操作装置の両方を用いて操作する場合に、操作が行われた操作装置が振動するため、操作に応じて適切に操作装置を振動させることが可能となる。
【０００９】
また、上記振動データ生成手段は、第１操作データを用いて方向入力部に対して有効となる操作が行われたことを契機として第１振動データを生成し、第２操作データを用いて押下ボタンに対して有効となる操作が行われたことを契機として第２振動データを生成してもよい。
【００１０】
上記によれば、第１の操作装置および第２の操作装置の両方を用いて操作する場合に、有効な操作が行われた操作装置が当該操作を契機として振動するため、操作に応じて適切に操作装置を振動させることが可能となる。
【００１１】
また、上記方向入力部は、ユーザによって操作されるスティックの傾倒方向および傾倒角度に応じた第１操作データを出力するアナログスティックでもよい。
【００１２】
上記によれば、アナログスティックに対する傾倒操作に応じて第１の操作装置を振動させることができる。
【００１３】
また、上記第１振動データが示す振動波形は、第２振動データが示す振動波形とは異なってもよい。
【００１４】
上記によれば、第１の操作装置および第２の操作装置をそれぞれ異なる振動波形によって振動させることができる。
【００１５】
また、上記第１振動データが示す振動波形は、第２振動データが示す振動波形に対して、振幅の大きさ、周波数、振動期間、振動を断続的に付与する時間間隔、および振動開始タイミングの少なくとも１つが異なってもよい。
【００１６】
上記によれば、多様な振動波形によって第１の操作装置および／または第２の操作装置を振動させることができる。
【００１７】
また、上記振動データ生成手段は、検出に対して所定時間経過した後に振動を開始するまたは振動の振幅の極大値が到来するように、第１振動データおよび／または第２振動データを生成してもよい。
【００１８】
上記によれば、操作が行われた操作装置を把持するユーザは、方向指示部または押下ボタンを操作する際の動きによって操作装置に生じる振動との区別が容易となり、当該操作と同じタイミングで振動が与えられる場合より振動を感じやすくなる。
【００１９】
また、上記情報処理装置は、音声出力手段を、さらに含んでもよい。音声出力手段は、方向入力部に対して有効となる操作が行われたことを契機として第１の効果音を生成して出力し、押下ボタンに対して有効となる操作が行われたことを契機として第２の効果音を生成して出力する。上記振動データ生成手段は、第１の効果音の出力が開始された所定時間経過した後に振動を開始するまたは振動の振幅の極大値が到来するように第１振動データを生成する、および／または第２の効果音の出力が開始された所定時間経過した後に振動を開始するまたは振動の振幅の極大値が到来するように第２振動データを生成してもよい。
【００２０】
上記によれば、操作に応じて出力される効果音に対して所定時間遅延した振動を第１の操作装置および第２の操作装置に与えることができる。
【００２１】
また、上記第１操作装置と第２操作装置とは、物理的に離間していてもよい。
【００２２】
上記によれば、物理的に離間した複数の操作装置に対して、それぞれ振動を与えることができる。
【００２３】
また、上記情報処理装置は、情報処理手段を、さらに含んでもよい。情報処理手段は、第１操作データに応じて複数の項目のうちいずれかを選択し、第２操作データに応じて当該選択された項目を決定する情報処理を行う。
【００２４】
上記によれば、情報処理を行うための操作を契機として、当該操作が行われた操作装置を振動させることができる。
【００２５】
また、上記振動データ生成手段は、選択される項目が変更される毎に第１振動データを生成し、選択された項目が決定されたことに応じて第２振動データを生成してもよい。
【００２６】
上記によれば、複数の選択肢から選択して、当該選択肢を決定するような情報処理を行う際、選択肢を変更する操作と選択した選択肢を決定する操作とに応じて、操作装置を振動させることができる。
【００２７】
また、上記情報処理手段は、ゲーム処理手段および選択肢提示手段を含んでもよい。ゲーム処理手段は、所定のゲーム処理を行う。選択肢提示手段は、ゲーム処理されるゲームを開始する前に複数の選択肢を表示装置に表示する。振動データ生成手段は、選択される選択肢が変更される毎に第１振動データを生成し、選択された選択肢が決定されたことに応じて第２振動データを生成する。
【００２８】
上記によれば、ゲーム開始前に選択肢を選択して決定する操作に応じて、操作装置を振動させることができる。
【００２９】
また、上記情報処理装置は、情報処理手段を、さらに含んでもよい。情報処理手段は、第１操作データに応じて第１の情報処理を行い、第２操作データに応じて第２の情報処理を行う。この場合、上記振動データ生成手段は、第１の情報処理の内容に応じて第１振動データを生成し、第２の情報処理の内容に応じて第２振動データを生成してもよい。
【００３０】
上記によれば、情報処理内容に応じて、第１の操作装置および第２の操作装置をそれぞれ振動させることができる。
【００３１】
また、本発明の情報処理システムの他の構成例は、振動子を有する操作装置と当該操作装置と通信可能な情報処理装置とを含む。操作装置は、方向入力部および第１送信手段を含む。方向入力部は、当該操作装置のハウジングに設けられる。第１送信手段は、方向入力部に対する操作に応じて操作データを情報処理装置に送信する。情報処理装置は、操作データ取得手段、情報処理手段、振動データ生成手段、および第２送信手段を含む。操作データ取得手段は、操作データを取得する。情報処理手段は、操作データに応じて所定の情報処理を行う。振動データ生成手段と、所定の情報処理の内容に応じて方向入力部に対する操作から振動を遅延させるか否かを決定して当該決定に基づいた振動データを生成する。第２送信手段は、振動データを操作装置に送信する。操作装置は、振動制御手段を、さらに含む。振動制御手段は、振動データに応じて振動子を振動させる。
【００３２】
上記によれば、操作装置を用いて操作する場合に、操作に応じた情報処理の内容に応じて操作タイミングから振動を遅延させるか否かが決定されるため、操作に応じて適切に操作装置を振動させることが可能となる。
【００３３】
また、本発明は、情報処理装置、情報処理プログラム、および情報処理方法の形態で実施されてもよい。
【発明の効果】
【００３４】
本発明によれば、操作装置を用いて操作する場合に、操作に応じて適切に操作装置を振動させることが可能となる。
【図面の簡単な説明】
【００３５】
【図１】本実施形態における情報処理システム１の一例において、本体装置２に左コントローラ３および右コントローラ４を装着した状態を示す図
【図２】本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図
【図３】本体装置２の一例を示す六面図
【図４】左コントローラ３の一例を示す六面図
【図５】右コントローラ４の一例を示す六面図
【図６】本実施形態における情報処理システムの他の例の全体構成を示す図
【図７】クレードル５の一例の外観構成を示す図
【図８】本体装置２の内部構成の一例を示すブロック図
【図９】情報処理システム１の内部構成の一例を示すブロック図
【図１０】クレードル５の内部構成の一例を示すブロック図
【図１１】離脱状態において、１人のユーザが左コントローラ３および右コントローラ４の組を把持して情報処理システム１を利用する様子の一例を示す図
【図１２】離脱状態において、１人のユーザが左コントローラ３および右コントローラ４の組を把持して情報処理システム１を利用する様子の一例を示す図
【図１３】離脱状態において、１人のユーザが左コントローラ３および右コントローラ４の組を把持して情報処理システム１を利用する様子の一例を示す図
【図１４】選択されている選択肢を変更する操作に応じたコントローラの振動例を示す図
【図１５】選択肢を決定する操作に応じたコントローラの振動例を示す図
【図１６】本体装置２のＤＲＡＭ８５に設定されるデータ領域の一例を示す図
【図１７】情報処理システム１で実行される情報処理の一例を示すフローチャート
【発明を実施するための形態】
【００３６】
以下、本実施形態の一例に係る情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法について説明する。本実施形態におけるゲームシステムの一例となる情報処理システム１は、本体装置（情報処理装置；本実施形態ではゲーム装置本体として機能する）２と左コントローラ３および右コントローラ４とによって構成される。また、上記情報処理システムの他の態様は、上記構成にクレードル５（図６、図７等参照）を加えて構成されることもある。本実施形態における情報処理システム１は、本体装置２に対して左コントローラ３および右コントローラ４が着脱可能であり、左コントローラ３および右コントローラ４をそれぞれ本体装置２に装着して一体化された装置として利用でき、また、本体装置２と左コントローラ３および右コントローラ４とを別体として利用することもできる（図２参照）。また、情報処理システム１は、本体装置２に画像を表示する態様での利用と、テレビ等の他の表示装置に画像を表示させる態様での利用が可能である。前者の態様において、情報処理システム１は、携帯型装置（例えば、携帯ゲーム機）として利用することができる。また、後者の態様において、情報処理システム１は、据置型装置（例えば、据置型ゲーム機）として利用することができる。
【００３７】
図１は、本実施形態における情報処理システム１の一例において、本体装置２に左コントローラ３および右コントローラ４を装着した状態を示す図である。図１に示すように、情報処理システム１は、本体装置２と、左コントローラ３と、右コントローラ４とを含む。左コントローラ３および右コントローラ４は、それぞれ本体装置２に装着されて一体化されている。本体装置２は、情報処理システム１における各種の処理（例えば、ゲーム処理）を実行する装置である。本体装置２は、ディスプレイ１２を備える。左コントローラ３および右コントローラ４は、ユーザが入力を行うための操作部を備える装置である。なお、本実施形態においては、情報処理システム１は、横長の形状であるものとする。つまり、本実施形態においては、情報処理システム１の主面の長手方向を横方向（左右方向とも言う）と呼び、当該主面の短手方向を縦方向（上下方向とも言う）と呼び、主面に垂直な方向を奥行方向（前後方向とも言う）と呼ぶこととする。また、情報処理システム１における方向をわかりやすくするために、情報処理システム１に対する３軸（ｘｙｚ軸）方向を定義する。具体的には、図１に示すように、情報処理システム１においてディスプレイ１２が設けられている前面から背面に向かうディスプレイ１２の奥行方向をｚ軸正方向とし、当該奥行方向に対して垂直な横方向において右から左に向かう方向（右コントローラ４の装着位置から左コントローラ３の装着位置に向かう方向）をｘ軸正方向とし、当該奥行方向および当該横方向に対して垂直な上下方向において下から上に向かうディスプレイ１２に沿った方向をｙ軸正方向とする。
【００３８】
図２は、本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図である。図１および図２に示すように、左コントローラ３および右コントローラ４は、本体装置２に着脱可能である。なお、以下において、左コントローラ３および右コントローラ４の総称として「コントローラ」と記載することがある。なお、本実施形態において、１人のユーザが操作する「操作装置」は、１つのコントローラ（例えば、左コントローラ３および右コントローラ４の一方）でも複数のコントローラ（例えば、左コントローラ３および右コントローラ４の両方、またはさらに他のコントローラを含んでもよい）でもよく、当該「操作装置」は、１以上のコントローラによって構成可能となる。以下、本体装置２と左コントローラ３および右コントローラ４との具体的な構成の一例について説明する。
【００３９】
図３は、本体装置２の一例を示す六面図である。図３に示すように、本体装置２は、略板状のハウジング１１を備える。本実施形態において、ハウジング１１の主面（換言すれば、表側の面、すなわち、ディスプレイ１２が設けられる面）は、大略的には矩形形状である。本実施形態においては、ハウジング１１は、横長の形状であるものとする。本体装置２は、本体装置２が横長となる向きで利用されることが可能である。また、本体装置２が縦長となる向きで利用されることも可能である。その場合には、ハウジング１１を縦長の形状であるものと見なしてもよい。
【００４０】
なお、ハウジング１１の形状および大きさは、任意である。一例として、ハウジング１１は、携帯可能な大きさであってよい。また、本体装置２単体または本体装置２に左コントローラ３および右コントローラ４が装着された一体型装置は、携帯型装置となってもよい。また、本体装置２または一体型装置が手持ち型の装置となってもよい。また、本体装置２または一体型装置が可搬型装置となってもよい。
【００４１】
図３に示すように、本体装置２は、ハウジング１１の主面に設けられるディスプレイ１２を備える。ディスプレイ１２は、本体装置２が取得または生成した画像（静止画であってもよいし、動画であってもよい）を表示する。本実施形態においては、ディスプレイ１２は、液晶表示装置（ＬＣＤ）とする。ただし、ディスプレイ１２は任意の種類の表示装置であってよい。
【００４２】
また、本体装置２は、ディスプレイ１２の画面上にタッチパネル１３を備える。本実施形態においては、タッチパネル１３は、マルチタッチ入力が可能な方式（例えば、静電容量方式）のものである。ただし、タッチパネル１３は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式（例えば、抵抗膜方式）のものであってもよい。
【００４３】
本体装置２は、ハウジング１１の内部においてスピーカ（すなわち、図８に示すスピーカ８８）を備えている。図３に示すように、ハウジング１１の主面には、スピーカ孔１１ａおよび１１ｂが形成される。そして、スピーカ８８の出力音は、これらのスピーカ孔１１ａおよび１１ｂからそれぞれ出力される。
【００４４】
また、本体装置２は、本体装置２が左コントローラ３と有線通信を行うための左側端子１７と、本体装置２が右コントローラ４と有線通信を行うための右側端子２１とを備える。
【００４５】
図３に示すように、本体装置２は、スロット２３を備える。スロット２３は、ハウジング１１の上側面に設けられる。スロット２３は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、情報処理システム１およびそれと同種の情報処理装置に専用の記憶媒体（例えば、専用メモリカード）である。所定の種類の記憶媒体は、例えば、本体装置２で利用されるデータ（例えば、アプリケーションのセーブデータ等）、および／または、本体装置２で実行されるプログラム（例えば、アプリケーションのプログラム等）を記憶するために用いられる。また、本体装置２は、電源ボタン２８と００４７００４８音量ボタン２６ａおよび２６ｂとを備える。
【００４６】
本体装置２は、下側端子２７を備える。下側端子２７は、本体装置２が、後述するクレードル５と通信を行うための端子である。本実施形態において、下側端子２７は、ＵＳＢコネクタ（より具体的には、メス側コネクタ）である。
【００４７】
図４は、左コントローラ３の一例を示す六面図であり、図示されているｘｙｚ方向は、左コントローラ３の正面図における３軸方向を示している。図４に示すように、左コントローラ３は、ハウジング３１を備える。また、本実施形態においては、ハウジング３１は、縦長の形状、すなわち、上下方向（すなわち、図１に示すｙ軸方向）に長い形状である。左コントローラ３は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング３１は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ３は、横長となる向きで把持されることも可能である。左コントローラ３が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００４８】
左コントローラ３は、アナログスティック３２を備える。図４に示すように、アナログスティック３２が、ハウジング３１の主面に設けられる。アナログスティック３２は、方向を入力することが可能な方向入力部の一例である。ユーザは、アナログスティック３２を傾倒することによって傾倒方向に応じた方向の入力（および、傾倒した角度に応じた大きさの入力）が可能である。なお、左コントローラ３は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック３２を押下する入力が可能である。
【００４９】
左コントローラ３は、各種操作ボタンを備える。まず、左コントローラ３は、ハウジング３１の主面上に４つの操作ボタン３３〜３６（具体的には、右方向ボタン３３、下方向ボタン３４、上方向ボタン３５、および、左方向ボタン３６）を備える。さらに、左コントローラ３は、録画ボタン３７、−（マイナス）ボタン４７を備える。左コントローラ３は、ハウジング３１の側面の左上に第１Ｌボタン３８およびＺＬボタン３９を備える。また、左コントローラ３は、ハウジング３１の側面の、本体装置２に装着される際に装着される側の面に第２Ｌボタン４３および第２Ｒボタン４４を備える。これらの操作ボタンは、本体装置２で実行される各種プログラム（例えば、ＯＳプログラムやアプリケーションプログラム）に応じた指示を行うために用いられる。
【００５０】
また、左コントローラ３は、左コントローラ３が本体装置２と有線通信を行うための端子４２を備える。
【００５１】
図５は、右コントローラ４の一例を示す六面図であり、図示されているｘｙｚ方向は、右コントローラ４の正面図における３軸方向を示している。図５に示すように、右コントローラ４は、ハウジング５１を備える。本実施形態においては、ハウジング５１は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ４は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング５１は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、右コントローラ４は、横長となる向きで把持されることも可能である。右コントローラ４が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００５２】
右コントローラ４は、左コントローラ３と同様、方向入力部としてアナログスティック５２を備える。本実施形態においては、アナログスティック５２は、左コントローラ３のアナログスティック３２と同じ構成である。また、右コントローラ４は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ４は、左コントローラ３と同様、ハウジング５１の主面上に４つの操作ボタン５３〜５６（具体的には、Ａボタン５３、Ｂボタン５４、Ｘボタン５５、および、Ｙボタン５６）を備える。さらに、右コントローラ４は、＋（プラス）ボタン５７およびホームボタン５８を備える。また、右コントローラ４は、ハウジング５１の側面の右上に第１Ｒボタン６０およびＺＲボタン６１を備える。また、左コントローラ３と同様、第２Ｌボタン６５および第２Ｒボタン６６を備える。
【００５３】
また、右コントローラ４は、右コントローラ４が本体装置２と有線通信を行うための端子６４を備える。
【００５４】
図６は、本実施形態における情報処理システムの他の例の全体構成を示す図である。図６に示すように、一例として、クレードル５は、左コントローラ３および右コントローラ４を本体装置２から取り外した状態で本体装置２のみを載置することが可能である。また、さらに他の例として、クレードル５は、左コントローラ３および右コントローラ４が本体装置２に装着された一体型装置を載置することも可能である。また、クレードル５は、ディスプレイ１２とは別体の外部表示装置の一例である据置型モニタ６（例えば、据置型テレビ）と通信可能である（有線通信であってもよいし、無線通信であってもよい）。詳細は後述するが、上記一体型装置または本体装置２単体をクレードル５に載置した場合、情報処理システムは、本体装置２が取得または生成した画像を据置型モニタ６に表示することができる。また、本実施形態においては、クレードル５は、載置された上記一体型装置または本体装置２単体を充電する機能を有する。また、クレードル５は、ハブ装置（具体的には、ＵＳＢハブ）の機能を有する。
【００５５】
図７は、クレードル５の一例の外観構成を示す図である。クレードル５は、上記一体型装置または本体装置２のみを着脱可能に載置する（装着するとも言える）ことが可能なハウジングを有する。本実施形態においては、図７に示すように、ハウジングは、溝７１ａが形成される第１支持部７１と、略平面状の第２支持部７２とを有する。
【００５６】
図７に示すように、第１支持部７１に形成される溝７１ａは、上記一体型装置の下側部分の形状に応じた形状を有する。具体的には、溝７１ａは、上記一体型装置の下側部分を挿入可能な形状であり、より具体的には、上記本体装置２の下側部分と略一致する形状である。したがって、上記一体型装置の下側部分を溝７１ａに挿入することによって、上記一体型装置をクレードル５に載置することができる。また、第２支持部７２は、その下側部分が溝７１ａに挿入された上記一体型装置の表面（すなわち、ディスプレイ１２が設けられる面）を支持する。この第２支持部７２によって、クレードル５は、上記一体型装置をより安定的に支持することができる。なお、図７に示すハウジングの形状は一例であり、他の実施形態においては、クレードル５のハウジングは、上記本体装置２を載置することが可能な任意の形状であってよい。
【００５７】
図７に示すように、クレードル５は、クレードル５が上記一体型装置と通信を行うための本体端子７３を備える。図７に示すように、本体端子７３は、第１支持部７１に形成される溝７１ａの底面に設けられる。より具体的には、本体端子７３は、上記一体型装置がクレードル５に装着される場合に、本体装置２の下側端子２７が接触する位置に設けられる。本実施形態においては、本体端子７３は、ＵＳＢコネクタ（より具体的には、オス側コネクタ）である。
【００５８】
図７では図示しないが、クレードル５は、ハウジングの背面に端子（本実施形態においては、複数の端子を有する。具体的には、クレードル５は、図１０に示すモニタ用端子１３２、電源端子１３４、および拡張用端子１３７）を有する。これらの端子の詳細については後述する。
【００５９】
図８は、本体装置２の内部構成の一例を示すブロック図である。本体装置２は、図３に示す構成の他、図８に示す各構成要素８１〜９８を備える。これらの構成要素８１〜９８のいくつかは、電子部品として電子回路基板上に実装されてハウジング１１内に収納されてもよい。
【００６０】
本体装置２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）８１を備える。ＣＰＵ８１は、本体装置２において実行される各種の情報処理を実行する情報処理部である。ＣＰＵ８１は、記憶部（具体的には、フラッシュメモリ８４等の内部記憶媒体、あるいは、各スロット２３および２４に装着される外部記憶媒体等）に記憶される情報処理プログラム（例えば、ゲームプログラム）を実行することによって、各種の情報処理を実行する。
【００６１】
本体装置２は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ８４およびＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８５を備える。フラッシュメモリ８４およびＤＲＡＭ８５は、ＣＰＵ８１に接続される。フラッシュメモリ８４は、主に、本体装置２に保存される各種のデータ（プログラムであってもよい）を記憶するために用いられるメモリである。ＤＲＡＭ８５は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【００６２】
本体装置２は、スロットインターフェース（以下、「Ｉ／Ｆ」と略記する。）９１を備える。スロットＩ／Ｆ９１は、ＣＰＵ８１に接続される。スロットＩ／Ｆ９１は、スロット２３に接続され、スロット２３に装着された所定の種類の記憶媒体（例えば、専用メモリカード）に対するデータの読み出しおよび書き込みを、ＣＰＵ８１の指示に応じて行う。
【００６３】
ＣＰＵ８１は、フラッシュメモリ８４およびＤＲＡＭ８５、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【００６４】
本体装置２は、ネットワーク通信部８２を備える。ネットワーク通信部８２は、ＣＰＵ８１に接続される。ネットワーク通信部８２は、ネットワークを介して外部の装置と通信（具体的には、無線通信）を行う。本実施形態においては、ネットワーク通信部８２は、第１の通信態様としてＷｉ−Ｆｉの規格に準拠した方式により、無線ＬＡＮに接続して外部装置と通信を行う。また、ネットワーク通信部８２は、第２の通信態様として所定の通信方式（例えば、独自プロトコルによる通信や、赤外線通信）により、同種の他の本体装置２との間で無線通信を行う。なお、上記第２の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置２との間で無線通信可能であり、複数の本体装置２の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【００６５】
本体装置２は、コントローラ通信部８３を備える。コントローラ通信部８３は、ＣＰＵ８１に接続される。コントローラ通信部８３は、左コントローラ３および／または右コントローラ４と無線通信を行う。本体装置２と左コントローラ３および右コントローラ４との通信方式は任意であるが、本実施形態においては、コントローラ通信部８３は、左コントローラ３との間および右コントローラ４との間で、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信を行う。
【００６６】
ＣＰＵ８１は、上述の左側端子１７、右側端子２１、および、下側端子２７に接続される。ＣＰＵ８１は、左コントローラ３と有線通信を行う場合、左側端子１７を介して左コントローラ３へデータを送信するとともに、左側端子１７を介して左コントローラ３から操作データを受信する。また、ＣＰＵ８１は、右コントローラ４と有線通信を行う場合、右側端子２１を介して右コントローラ４へデータを送信するとともに、右側端子２１を介して右コントローラ４から操作データを受信する。また、ＣＰＵ８１は、クレードル５と通信を行う場合、下側端子２７を介してクレードル５へデータを送信する。このように、本実施形態においては、本体装置２は、左コントローラ３および右コントローラ４との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ３および右コントローラ４が本体装置２に装着された一体型装置または本体装置２単体がクレードル５に装着された場合、本体装置２は、クレードル５を介してデータ（例えば、画像データや音声データ）を据置型モニタ６に出力することができる。
【００６７】
ここで、本体装置２は、複数の左コントローラ３と同時に（換言すれば、並行して）通信を行うことができる。また、本体装置２は、複数の右コントローラ４と同時に（換言すれば、並行して）通信を行うことができる。したがって、ユーザは、複数の左コントローラ３および複数の右コントローラ４を用いて本体装置２に対する入力を行うことができる。
【００６８】
本体装置２は、タッチパネル１３の制御を行う回路であるタッチパネルコントローラ８６を備える。タッチパネルコントローラ８６は、タッチパネル１３とＣＰＵ８１との間に接続される。タッチパネルコントローラ８６は、タッチパネル１３からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、ＣＰＵ８１へ出力する。
【００６９】
また、ディスプレイ１２は、ＣＰＵ８１に接続される。ＣＰＵ８１は、（例えば、上記の情報処理の実行によって）生成した画像および／または外部から取得した画像をディスプレイ１２に表示する。
【００７０】
本体装置２は、コーデック回路８７およびスピーカ（具体的には、左スピーカおよび右スピーカ）８８を備える。コーデック回路８７は、スピーカ８８および音声入出力端子２５に接続されるとともに、ＣＰＵ８１に接続される。コーデック回路８７は、スピーカ８８および音声入出力端子２５に対する音声データの入出力を制御する回路である。すなわち、コーデック回路８７は、ＣＰＵ８１から音声データを受け取った場合、当該音声データに対してＤ／Ａ変換を行って得られる音声信号をスピーカ８８または音声入出力端子２５へ出力する。これによって、スピーカ８８あるいは音声入出力端子２５に接続された音声出力部（例えば、イヤホン）から音が出力される。また、コーデック回路８７は、音声入出力端子２５から音声信号を受け取った場合、音声信号に対してＡ／Ｄ変換を行い、所定の形式の音声データをＣＰＵ８１へ出力する。また、音量ボタン２６は、ＣＰＵ８１に接続される。ＣＰＵ８１は、音量ボタン２６に対する入力に基づいて、スピーカ８８または上記音声出力部から出力される音量を制御する。
【００７１】
本体装置２は、電力制御部９７およびバッテリ９８を備える。電力制御部９７は、バッテリ９８およびＣＰＵ８１に接続される。また、図示しないが、電力制御部９７は、本体装置２の各部（具体的には、バッテリ９８の電力の給電を受ける各部、左側端子１７、および右側端子２１）に接続される。電力制御部９７は、ＣＰＵ８１からの指令に基づいて、バッテリ９８から上記各部への電力供給を制御する。
【００７２】
また、バッテリ９８は、下側端子２７に接続される。外部の充電装置（例えば、クレードル５）が下側端子２７に接続され、下側端子２７を介して本体装置２に電力が供給される場合、供給された電力がバッテリ９８に充電される。
【００７３】
図９は、情報処理システム１の内部構成の一例を示すブロック図である。なお、情報処理システム１のうちの本体装置２に関する内部構成の詳細については、図８で示しているため図９では省略している。
【００７４】
左コントローラ３は、本体装置２との間で通信を行う通信制御部１０１を備える。図９に示すように、通信制御部１０１は、端子４２を含む各構成要素に接続される。本実施形態においては、通信制御部１０１は、端子４２を介した有線通信と、端子４２を介さない無線通信との両方で本体装置２と通信を行うことが可能である。通信制御部１０１は、左コントローラ３が本体装置２に対して行う通信方法を制御する。すなわち、左コントローラ３が本体装置２に装着されている場合、通信制御部１０１は、端子４２を介して本体装置２と通信を行う。また、左コントローラ３が本体装置２から外されている場合、通信制御部１０１は、本体装置２（具体的には、コントローラ通信部８３）との間で無線通信を行う。コントローラ通信部８３と通信制御部１０１との間の無線通信は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）の規格に従って行われる。
【００７５】
また、左コントローラ３は、例えばフラッシュメモリ等のメモリ１０２を備える。通信制御部１０１は、例えばマイコン（マイクロプロセッサとも言う）で構成され、メモリ１０２に記憶されるファームウェアを実行することによって各種の処理を実行する。
【００７６】
左コントローラ３は、各ボタン１０３（具体的には、ボタン３３〜３９，４３，および４４）を備える。また、左コントローラ３は、アナログスティック（図９では「スティック」と記載する）３２を備える。各ボタン１０３およびアナログスティック３２は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部１０１へ出力する。
【００７７】
左コントローラ３は、加速度センサ１０４を備える。本実施形態においては、加速度センサ１０４は、所定の３軸（例えば、図４に示すｘｙｚ軸）方向に沿った直線加速度の大きさを検出する。なお、加速度センサ１０４は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。また、左コントローラ３は、角速度センサ１０５を備える。本実施形態においては、角速度センサ１０５は、所定の３軸（例えば、図４に示すｘｙｚ軸）回りの角速度を検出する。なお、角速度センサ１０５は、１軸回りあるいは２軸回りの角速度を検出するものであってもよい。加速度センサ１０４および角速度センサ１０５は、それぞれ通信制御部１０１に接続される。そして、加速度センサ１０４および角速度センサ１０５の検出結果は、適宜のタイミングで繰り返し通信制御部１０１へ出力される。
【００７８】
通信制御部１０１は、各入力部（具体的には、各ボタン１０３、アナログスティック３２、各センサ１０４および１０５）から、入力に関する情報（具体的には、操作に関する情報、または、センサによる検出結果）を取得する。通信制御部１０１は、取得した情報（または取得した情報に所定の加工を行った情報）を含む操作データを本体装置２へ送信する。なお、操作データは、所定時間に１回の割合で繰り返し送信される。なお、入力に関する情報が本体装置２へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【００７９】
上記操作データが本体装置２へ送信されることによって、本体装置２は、左コントローラ３に対して行われた入力を得ることができる。すなわち、本体装置２は、各ボタン１０３およびアナログスティック３２に対する操作を、操作データに基づいて判別することができる。また、本体装置２は、左コントローラ３の動きおよび／または姿勢に関する情報を、操作データ（具体的には、加速度センサ１０４および角速度センサ１０５の検出結果）に基づいて算出することができる。
【００８０】
左コントローラ３は、振動によってユーザに通知を行うための振動子１０７を備える。本実施形態においては、振動子１０７は、本体装置２からの指令によって制御される。すなわち、通信制御部１０１は、本体装置２からの上記指令を受け取ると、当該指令に従って振動子１０７を駆動させる。ここで、左コントローラ３は、コーデック部１０６を備える。通信制御部１０１は、上記指令を受け取ると、指令に応じた制御信号をコーデック部１０６へ出力する。コーデック部１０６は、通信制御部１０１からの制御信号を増幅して、振動子１０７を駆動させるための駆動信号を生成して振動子１０７へ与える。これによって振動子１０７が動作する。
【００８１】
振動子１０７は、より具体的にはリニア振動モータである。リニア振動モータは、回転運動をする通常のモータと異なり、入力される電圧に応じて所定方向に駆動されるため、入力される電圧の波形に応じた振幅、周波数で振動をさせることができる。本実施形態において、本体装置２から左コントローラ３に送信される振動制御信号は、単位時間ごとに周波数と振幅とを表すデジタル信号であってよい。別の実施形態においては、波形そのものを示す情報を送信するようにしてもよいが、振幅と周波数とだけを送信することで通信データ量を削減することができる。また、さらにデータ量を削減するため、そのときの振幅と周波数との数値に替えて、前回の値からの差分だけを送信するようにしてもよい。この場合、コーデック部１０６は、通信制御部１０１から取得される振幅と周波数との値を示すデジタル信号をアナログの電圧の波形に変換し、当該波形に合わせて電圧を入力することで振動子１０７を駆動させる。したがって、本体装置２は、単位時間ごとに送信する振幅および周波数を変えることによって、そのときに振動子１０７を振動させる振幅と周波数とを制御することができる。なお、本体装置２から左コントローラ３に送信される振幅と周波数とは、１つに限らず、２つ以上送信するようにしてもよい。その場合、コーデック部１０６は、受信された複数の振幅および周波数それぞれが示す波形を合成することで、振動子１０７を制御する電圧の波形を生成することができる。
【００８２】
左コントローラ３は、電力供給部１０８を備える。本実施形態において、電力供給部１０８は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ３の各部（具体的には、バッテリの電力の給電を受ける各部）に接続される。
【００８３】
図９に示すように、右コントローラ４は、本体装置２との間で通信を行う通信制御部１１１を備える。また、右コントローラ４は、通信制御部１１１に接続されるメモリ１１２を備える。通信制御部１１１は、端子６４を含む各構成要素に接続される。通信制御部１１１およびメモリ１１２は、左コントローラ３の通信制御部１０１およびメモリ１０２と同様の機能を有する。したがって、通信制御部１１１は、端子６４を介した有線通信と、端子６４を介さない無線通信（具体的には、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信）との両方で本体装置２と通信を行うことが可能であり、右コントローラ４が本体装置２に対して行う通信方法を制御する。
【００８４】
右コントローラ４は、左コントローラ３の各入力部と同様の各入力部（具体的には、各ボタン１１３、アナログスティック５２、加速度センサ１１４、および、角速度センサ１１５）を備える。これらの各入力部については、左コントローラ３の各入力部と同様の機能を有し、同様に動作する。
【００８５】
また、右コントローラ４は、振動子１１７およびコーデック部１１６を備える。振動子１１７およびコーデック部１１６は、左コントローラ３の振動子１０７およびコーデック部１０６と同様に動作する。すなわち、通信制御部１１１は、本体装置２からの指令に従って、コーデック部１１６を用いて振動子１１７を動作させる。
【００８６】
右コントローラ４は、電力供給部１１８を備える。電力供給部１１８は、左コントローラ３の電力供給部１０８と同様の機能を有し、同様に動作する。
【００８７】
図１０は、クレードル５の内部構成の一例を示すブロック図である。なお、図１０において、本体装置２に関する内部構成の詳細については、図８で示しているので省略している。
【００８８】
図１０に示すように、クレードル５は、変換部１３１およびモニタ用端子１３２を備える。変換部１３１は、本体端子７３およびモニタ用端子１３２と接続される。変換部１３１は、本体装置２から受信した画像（映像とも言える）および音声に関する信号の形式を、据置型モニタ６へ出力する形式へと変換する。ここで、本実施形態においては、本体装置２は、ディスプレイポート信号（すなわち、ＤｉｓｐｌａｙＰｏｒｔの規格に従った信号）として画像および音声の信号をクレードル５へ出力する。また、本実施形態においては、クレードル５と据置型モニタ６との間の通信は、ＨＤＭＩ（登録商標）の規格に基づく通信が用いられる。すなわち、モニタ用端子１３２は、ＨＤＭＩ端子であり、クレードル５と据置型モニタ６とがＨＤＭＩケーブルによって接続される。そして、変換部１３１は、本体装置２から本体端子７３を介して受信されるディスプレイポート信号（具体的には、映像および音声を表す信号）を、ＨＤＭＩ信号へ変換する。変換されたＨＤＭＩ信号は、モニタ用端子１３２を介して据置型モニタ６へ出力される。
【００８９】
クレードル５は、電力制御部１３３および電源端子１３４を備える。電源端子１３４は、図示しない充電装置（例えば、ＡＣアダプタ等）を接続するための端子である。本実施形態においては、電源端子１３４にＡＣアダプタが接続されており、クレードル５には商用電源が供給されているものとする。電力制御部１３３は、クレードル５に対して本体装置２が装着された場合、本体端子７３を介して電源端子１３４からの電力を本体装置２へ供給する。これによって、本体装置２のバッテリ９８が充電される。
【００９０】
また、クレードル５は、接続処理部１３６および拡張用端子１３７を備える。拡張用端子１３７は、他の装置を接続するための端子である。本実施形態においては、クレードル５は、拡張用端子１３７として、複数（より具体的には３つ）のＵＳＢ端子を備える。接続処理部１３６は、本体端子７３および各拡張用端子１３７に接続される。接続処理部１３６は、ＵＳＢハブとしての機能を有し、例えば、拡張用端子１３７に接続された装置と、本体端子７３に接続された本体装置２との間の通信を管理する（すなわち、ある装置からの信号を他の装置へ適宜分配して送信する）。上記のように、本実施形態においては、情報処理システム１は、クレードル５を介して他の装置との通信を行うことが可能である。なお、接続処理部１３６は、通信速度を変換したり、拡張用端子１３７に接続された装置に対する電力供給を行ったりすることが可能であってもよい。
【００９１】
以上に説明したように、本実施形態における情報処理システム１については左コントローラ３および右コントローラ４が本体装置２から着脱可能である。また、クレードル５に左コントローラ３および右コントローラ４が本体装置２に装着された一体型装置や本体装置２単体を装着することによって据置型モニタ６に画像（および音声）を出力可能である。以下、左コントローラ３および右コントローラ４を本体装置２から取り外した状態で、クレードル５に本体装置２単体を装着することによって据置型モニタ６に画像（および音声）を出力する利用態様における情報処理システムを用いて説明する。
【００９２】
上述のように、本実施形態においては、左コントローラ３および右コントローラ４を本体装置２から外した状態（「離脱状態」と呼ぶ）で情報処理システム１を利用することも可能である。離脱状態で情報処理システム１を利用してアプリケーション（例えば、ゲームアプリケーション）に対する操作を行う場合の態様としては、１人のユーザが左コントローラ３および右コントローラ４の両方を用いる態様が考えられる。なお、１人のユーザが左コントローラ３および右コントローラ４の両方を用いる場合、左コントローラ３と右コントローラ４とを接合して１つの操作装置として機能させる付属機器（例えば、拡張グリップ）を用いることも可能である。また、離脱状態で情報処理システム１を利用してアプリケーション（例えば、ゲームアプリケーション）に対する操作を行う場合の他の態様としては、１人のユーザが左コントローラ３および右コントローラ４の一方を用いる態様が考えられる。なお、当該利用態様によって複数のユーザが同じアプリケーションを用いて操作する場合は、複数のユーザが左コントローラ３および右コントローラ４の一方をそれぞれ用いる態様や、左コントローラ３および右コントローラ４の組を複数組用意してそれぞれのユーザが当該複数組のうちの１組を用いる態様等が考えられる。
【００９３】
図１１〜図１３は、離脱状態において、１人のユーザが左コントローラ３および右コントローラ４の組を把持して情報処理システム１を利用する様子の一例を示す図である。図１１〜図１３に示すように、離脱状態において、ユーザは、左コントローラ３を左手で把持し、右コントローラ４を右手で把持して操作を行いながら、据置型モニタ６に表示された画像を見ることができる。
【００９４】
例えば、本実施例では、ユーザは、縦長の略板状である左コントローラ３の長手方向の上方向（図１に示すｙ軸正方向）が前方向になるとともに、アナログスティック３２等が設けられている左コントローラ３の主面が上方を向くように左コントローラ３を左手で把持する。つまり、ユーザの左手によって把持されている左コントローラ３は、ｙ軸正方向がユーザの前方を向き、ｚ軸正方向が下を向いた状態となる。また、ユーザは、縦長の略板状である右コントローラ４の長手方向の上方向（図１に示すｙ軸正方向）が前方向になるとともに、アナログスティック５２等が設けられている右コントローラ４の主面が上方を向くように右コントローラ４を右手で把持する。つまり、ユーザの右手によって把持されている右コントローラ４も、ｙ軸正方向がユーザの前方を向き、ｚ軸正方向が下を向いた状態となる。
【００９５】
このように、左手で左コントローラ３を把持し右手で右コントローラ４を把持した状態で、左コントローラ３および右コントローラ４に設けられた各操作ボタンやスティックが用いられて操作される。図１１に示すように、本情報処理例では、ゲーム開始前に複数の選択肢からユーザの選択を促すメニュー画面が据置型モニタ６に表示される。そして、左コントローラ３および右コントローラ４を操作するユーザは、左コントローラ３および／または右コントローラ４の操作ボタンやスティックを操作することによって、上記メニュー画面に表示されたメニューから選択する選択肢を変更する操作や、選択されている選択肢を決定する操作を行うことができる。
【００９６】
例えば、図１１に例示しているメニュー画面では、複数の選択肢のうち、「ひとりでプレイ」が選択されていることを示すカーソルＣが表示されている。このような状態において、左コントローラ３のアナログスティック３２が傾倒操作された場合、当該傾倒操作された方向に応じて選択されている選択肢が変更される。例えば、図１２に示すように左コントローラ３のアナログスティック３２が下方向（図１に示すｙ軸負方向）へ傾倒操作された場合、選択対象が１つ下に表示されている選択肢に変更される。この選択肢を変更する操作によって、図１２に例示しているメニュー画面では、「ひとりでプレイ」が選択されている状態から「ふたりでプレイ」が選択されている状態に変化しており、「ふたりでプレイ」が選択されていることを示す位置にカーソルＣの位置が移動している。
【００９７】
また、右コントローラ４のＡボタン５３が押下操作された場合、選択されている選択肢が決定される。例えば、図１３に示すように、「ふたりでプレイ」が選択されている状態で右コントローラ４のＡボタン５３が押下操作された場合、複数の選択肢から「ふたりでプレイ」が選択されたことが決定され、当該決定に応じた処理に移行する。この選択肢を決定する操作によって、図１３に例示しているメニュー画面では、複数の選択肢から「ふたりでプレイ」が決定されたことを示す決定カーソルＣｄが、カーソルＣとは表示態様を変化させて当該選択肢を囲む位置に表示されている。
【００９８】
また、右コントローラ４のＢボタン５４が押下操作された場合、処理がキャンセルされる。例えば、メニュー画面が表示されている状態で右コントローラ４のＢボタン５４が押下操作された場合、前の画面に戻る処理が行われ、当該メニュー画面が表示される前に表示されていた画像が再表示される。
【００９９】
本実施例では、左コントローラ３および右コントローラ４を把持して情報処理が行われる場合、当該処理内容に応じて、左コントローラ３および／または右コントローラ４に振動が与えられる。上述したように、左コントローラ３は、振動子１０７を有しており、右コントローラ４は、振動子１１７を有している。本体装置２のＣＰＵ８１は、左コントローラ３および／または右コントローラ４に対する操作に応じた処理内容に応じて、振動データを左コントローラ３および／または右コントローラ４に送信することによって、当該振動データに応じた振幅および周波数で振動子１０７および／または振動子１１７を振動させることができる。
【０１００】
一例として、本実施例では、上記メニュー画面が表示された状態で選択されている選択肢を変更する操作が行われた場合、当該操作が行われたコントローラが当該操作に応じて振動する。例えば、左コントローラ３のアナログスティック３２が傾倒操作されることによって選択されている選択肢が変更された場合、当該傾倒操作が有効となったことを契機として選択肢変更に応じた振動データが生成され、当該振動データが本体装置２から左コントローラ３へ送信される。これによって、左コントローラ３は、当該左コントローラ３を用いて選択肢を変更する操作が行われると、本体装置２から受信した振動データに応じて振動することになる。
【０１０１】
また、本実施例では、上記メニュー画面が表示された状態で選択されている選択肢を決定する操作が行われた場合、当該操作が行われたコントローラが当該操作に応じて振動する。例えば、右コントローラ４のＡボタン５３が押下操作されることによって選択肢の選択が決定された場合、当該押下操作が有効となったことを契機として選択肢決定に応じた振動データが生成され、当該振動データが本体装置２から右コントローラ４へ送信される。これによって、右コントローラ４は、当該右コントローラ４を用いて選択肢を決定する操作が行われると、本体装置２から受信した振動データに応じて振動することになる。
【０１０２】
なお、本実施例では、上記メニュー画面が表示された状態でキャンセルする操作が行われた場合、右コントローラ４を振動させなくてもよいし、当該操作に応じて右コントローラ４を振動させてもよい。
【０１０３】
ここで、本実施例では、選択されている選択肢を変更する操作が行われたコントローラや選択肢を決定する操作が行われたコントローラには、当該操作が行われたタイミングから所定時間経過した後に振動を開始するまたは振動の振幅の極大値が到来するような振動が与えられてもよい。また、選択されている選択肢を変更する操作に応じたコントローラの振動と、選択肢を決定する操作に応じたコントローラの振動とは、異なる振動であってもよい。例えば、上記振動は、振幅の大きさ、周波数、振動期間、振動を断続的に付与する時間間隔、および振動開始タイミングの少なくとも１つが異なってもよい。以下、図１４および図１５を参照して、各操作に対応したコントローラの振動について説明する。なお、図１４は、選択されている選択肢を変更する操作に応じたコントローラの振動例を示す図である。図１５は、選択肢を決定する操作に応じたコントローラの振動例を示す図である。
【０１０４】
図１４において、選択されている選択肢を変更する操作がコントローラを用いて行われ、当該操作が有効となったことを示す操作データを本体装置２が受信した時点を０とした場合、当該時点から０．０３秒の間において振幅の大きさが変化して周波数が一定の振動を与える振動データが本体装置２から当該コントローラへ送信される。ここで、操作が有効になった時点とは、選択されている選択肢を変更する操作が有効となった時点である。具体的には、アナログスティック３２の傾倒操作によって選択されている選択肢を変更される場合、アナログスティック３２の傾倒方向が選択肢を変更可能な方向であって変更すると判定する閾値に傾倒角度が到達したことによって、有効な操作が行われたと判定される。つまり、アナログスティック３２の傾倒操作が行われた場合であっても、選択肢が変更できない方向（例えば、図１１の例では、選択肢が表示されていない左や右）に傾倒されている場合や上記閾値に到達していない角度で傾倒されている場合は、有効な操作が行われたと判定されない。
【０１０５】
選択されている選択肢を変更する操作が行われた場合の振動は、当該操作が行われた時点から第１の時間経過（例えば、０．０２２５秒経過）するまでは振幅の大きさが０であり、当該第１の時間経過後に振幅の大きさが０から０．１７まで上昇する。そして、上記操作が行われた時点から第２の時間経過（上記第１の時間より長い時間であり、例えば０．０３秒経過）するまで振幅の大きさが０．１７に維持され、当該第２の時間経過後に振幅の大きさが０となる。一方、選択されている選択肢を変更する操作が行われた場合の振動の周波数は、上記第１の時間から上記第２の時間まで２００Ｈｚ一定に維持される。つまり、コントローラを用いて選択されている選択肢を変更する操作が行われた場合、当該操作を契機として所定時間経過後に振幅および周波数一定の振動が当該コントローラに所定期間与えられる。
【０１０６】
図１５において、選択されている選択肢を決定する操作がコントローラを用いて行われ、当該操作が有効となったことを示す操作データを本体装置２が受信した時点を０とした場合、当該時点から０．０６秒の間において振幅の大きさおよび周波数が変化する振動を与える振動データが本体装置２から当該コントローラへ送信される。ここで、操作が有効になった時点とは、選択されている選択肢を決定する操作が有効となった時点である。具体的には、Ａボタン５３の押下操作によって選択されている選択肢が決定される場合、Ａボタン５３がオフ状態からオン状態に変化するまで押下されることによって、有効な操作が行われたと判定される。つまり、Ａボタン５３が押下されている場合であっても、Ａボタン５３がオフ状態やオン状態を維持している場合やオン状態からオフ状態に変化している場合は、有効な操作が行われたと判定されない。
【０１０７】
選択されている選択肢を決定する操作が行われた場合の振動の振幅は、当該操作が行われた時点から第３の時間経過（例えば、０．０３秒経過）するまでは振幅の大きさが漸増的に０から０．２５まで上昇する。そして、上記第３の時間経過から第４の時間経過（上記第３の時間より長い時間であり、例えば０．０６秒経過）するまで振幅の大きさが漸減的に０．２５から０まで下降する。一方、選択されている選択肢を決定する操作が行われた場合の振動の周波数は、当該操作が行われた時点から上記第３の時間経過するまでは１６０Ｈｚ一定に維持される。そして、上記第３の時間経過から第４の時間経過するまで周波数は、漸増的に１６０Ｈｚから３００Ｈｚまで上昇する。つまり、コントローラを用いて選択されている選択肢を決定する操作が行われた場合、当該操作を契機として振幅および周波数が変化するとともに、当該操作から所定時間経過後に振幅の極大値が到来する振動が当該コントローラに所定期間与えられる。
【０１０８】
このように、２つのコントローラを用いた操作に応じてコントローラを振動させる場合、当該操作が行われたコントローラが振動するため、操作に応じた適切な振動をコントローラに与えることが可能となる。また、コントローラには、操作が行われたタイミングから所定時間経過した後に振動を開始するまたは振動の振幅の極大値が到来するような振動が与えられる。操作が行われたコントローラがこのように振動することによって、操作部の動きによってコントローラに生じる振動との区別が容易となり、当該操作と同じタイミングで振動が与えられる場合よりユーザが振動を感じやすくなり、より適切な振動を当該コントローラに与えることが可能となる。また、操作に応じて行われる情報処理内容に応じて異なる振動がコントローラに与えられることによって、それぞれのコントローラを多様に振動させることが可能となる。
【０１０９】
なお、上述した振動は、単なる一例であって他の振動がコントローラに与えられてもよい。例えば、図１４に例示した選択されている選択肢を変更する際にコントローラに与えられる振動パターンで、選択されている選択肢を決定する操作が行われたコントローラが振動してもよい。また、図１５に例示した選択されている選択肢を決定する際にコントローラに与えられる振動パターンで、選択されている選択肢を変更する操作が行われたコントローラが振動してもよい。
【０１１０】
また、左コントローラ３または右コントローラ４を用いて同じ操作が行われた場合であっても、操作されたコントローラに異なる振動が与えられてもよい。例えば、右コントローラ４のＡボタン５３が押下操作された場合、当該押下操作によって実行される情報処理の内容に応じて、複数の振動パターンから右コントローラ４に与える振動が選択されることが考えられる。具体的には、上述したメニュー画面を用いた情報処理の場合、複数の選択肢から決定可能な選択肢を決定するＡボタン５３の押下操作が行われた場合には、当該押下操作を契機として図１５に例示した振動が右コントローラ４に与えられる。一方、複数の選択肢から決定不可能な選択肢を決定するＡボタン５３の押下操作が行われた場合には、当該決定が不可であることを示す警告音を即時に出力するとともに、当該警告音に応じた振動が即時に右コントローラ４に与えられる。この場合、出力される警告音の音声波形に基づいて振動波形を生成し、当該振動波形によって右コントローラ４を振動させる振動データを右コントローラ４に送信してもよい。他の例として、複数の選択肢から決定不可能な選択肢を決定するＡボタン５３の押下操作が行われた場合には、押下操作に応じた振動が右コントローラ４に与えられずに右コントローラ４が振動しない態様でもよい。
【０１１１】
また、左コントローラ３のアナログスティック３２が傾倒操作された場合、当該傾倒操作によって実行される情報処理の内容に応じて、複数の振動パターンから左コントローラ３に与える振動が選択されることが考えられる。具体的には、上述したメニュー画面を用いた情報処理の場合、アナログスティック３２を用いて他の選択肢に変更可能な方向を指示する傾倒操作が行われた場合には、当該傾倒操作を契機として図１４に例示した振動が左コントローラ３に与えられる。一方、アナログスティック３２を用いて変更可能な選択肢が表示されていない方向や選択できない選択肢が表示されている方向を指示する傾倒操作が行われた場合には、当該変更が不可であることを示す警告音を即時に出力するとともに、当該警告音に応じた振動が即時に左コントローラ３に与えられる。他の例として、アナログスティック３２を用いて他の選択肢に変更可能な方向を指示する傾倒操作が行われた場合には、傾倒操作に応じた振動が左コントローラ３に与えられずに左コントローラ３が振動しない態様でもよい。
【０１１２】
このように、上述した例では、左コントローラ３または右コントローラ４を用いて同じ操作が行われた場合であっても、当該操作に応じて実行される情報処理に基づいて当該操作に応じて振動させるか否か、振動させる場合の当該操作から振動を遅延させるか否か、および振動させる場合の振動パターン等を決定し、当該決定に基づいた振動データが生成される。これによって、上記振動データを受信した左コントローラ３または右コントローラ４は、当該振動データに応じて振動することによって、同じ操作が行われた場合であっても振動しない場合、当該操作から遅延して振動する場合、当該操作から即時に振動する場合、異なる振動パターンによって振動する場合等があり、それぞれのコントローラを情報処理内容に応じて適切に振動させることが可能となる。また、異なる振動パターンで左コントローラ３または右コントローラ４を振動させる場合、振幅の大きさや周波数だけでなく、振動期間、振動を断続的に付与する時間間隔、および振動開始タイミング等が異なってもよい。
【０１１３】
次に、図１６および図１７を参照して、本実施形態において情報処理システム１で実行される具体的な処理の一例について説明する。図１６は、本実施形態において本体装置２のＤＲＡＭ８５に設定されるデータ領域の一例を示す図である。なお、ＤＲＡＭ８５には、図１６に示すデータの他、他の処理で用いられるデータも記憶されるが、詳細な説明を省略する。
【０１１４】
ＤＲＡＭ８５のプログラム記憶領域には、情報処理システム１で実行される各種プログラムＰａが記憶される。本実施形態においては、各種プログラムＰａは、上述した左コントローラ３および右コントローラ４との間で無線通信するための通信プログラムや、左コントローラ３および／または右コントローラ４から取得したデータに基づいた情報処理（例えば、ゲーム処理）を行うためのアプリケーションプログラム、左コントローラ３および／または右コントローラ４を振動させるための振動制御プログラム等が記憶される。なお、各種プログラムＰａは、フラッシュメモリ８４に予め記憶されていてもよいし、情報処理システム１に着脱可能な記憶媒体（例えば、第１スロット２３に装着された第１の種類の記憶媒体、第２スロット２４に装着された第２の種類の記憶媒体）から取得されてＤＲＡＭ８５に記憶されてもよいし、インターネット等のネットワークを介して他の装置から取得されてＤＲＡＭ８５に記憶されてもよい。ＣＰＵ８１は、ＤＲＡＭ８５に記憶された各種プログラムＰａを実行する。
【０１１５】
また、ＤＲＡＭ８５のデータ記憶領域には、情報処理システム１において実行される通信処理や情報処理等の処理において用いられる各種のデータが記憶される。本実施形態においては、ＤＲＡＭ８５には、操作データＤａ、カーソル位置データＤｂ、操作対応振動テーブルデータＤｃ、左コントローラ振動データＤｄ、右コントローラ振動データＤｅ、および画像データＤｆ等が記憶される。
【０１１６】
操作データＤａは、左コントローラ３および／または右コントローラ４からそれぞれ適宜取得した操作データである。上述したように、左コントローラ３および／または右コントローラ４からそれぞれ送信される操作データには、各入力部（具体的には、各ボタン、アナログスティック、各センサ）からの入力に関する情報（具体的には、操作に関する情報、または、センサによる検出結果）が含まれている。本実施形態では、無線通信によって左コントローラ３および／または右コントローラ４からそれぞれ所定周期で操作データが送信されており、当該受信した操作データを用いて操作データＤａが適宜更新される。なお、操作データＤａの更新周期は、後述する情報処理システム１で実行される処理の周期である１フレーム毎に更新されてもよいし、上記無線通信によって操作データが送信される周期毎に更新されてもよい。
【０１１７】
カーソル位置データＤｂは、カーソルＣや決定カーソルＣｄの位置および方向を示すデータである。
【０１１８】
操作対応振動テーブルデータＤｃは、操作および当該操作に対応して行われる情報処理に応じた振動波形（振動パターン）が記述された操作対応振動テーブルを示すデータである。
【０１１９】
左コントローラ振動データＤｄは、左コントローラ３を振動させるための振動を示すデータである。右コントローラ振動データＤｅは、右コントローラ４を振動させるための振動を示すデータである。
【０１２０】
画像データＤｆは、本体装置２のディスプレイ１２や据置型モニタ６の表示画面にメニュー画面（例えば、選択肢画像、カーソル画像、背景画像等）を表示するためのデータである。
【０１２１】
次に、図１７を参照して、本実施形態における情報処理（メニュー選択処理）の詳細な一例を説明する。図１７は、情報処理システム１で実行される情報処理の一例を示すフローチャートである。本実施形態においては、図１７に示す一連の処理は、ＣＰＵ８１が各種プログラムＰａに含まれる通信プログラムや所定のアプリケーションプログラム（情報処理プログラムやゲームプログラム）を実行することによって行われる。また、図１７に示す情報処理が開始されるタイミングは任意である。
【０１２２】
なお、図１７に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えて（または代えて）別の処理が実行されてもよい。また、本実施形態では、上記フローチャートの各ステップの処理をＣＰＵ８１が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を、ＣＰＵ８１以外のプロセッサや専用回路が実行するようにしてもよい。また、本体装置２において実行される処理の一部は、本体装置２と通信可能な他の情報処理装置（例えば、本体装置２とネットワークを介して通信可能なサーバ）によって実行されてもよい。すなわち、図１７に示す各処理は、本体装置２を含む複数の情報処理装置が協働することによって実行されてもよい。
【０１２３】
図１７において、ＣＰＵ８１は、情報処理における初期設定を行い（ステップＳ１４１）、次のステップに処理を進める。例えば、上記初期設定では、ＣＰＵ８１は、以下に説明する処理を行うためのパラメータを初期化する。また、上記初期設定では、ＣＰＵ８１は、ユーザが用いる操作方式と左コントローラ３および右コントローラ４の組とを設定する。一例として、ＣＰＵ８１は、当該メニュー選択処理が開始される前に左コントローラ３と右コントローラ４とが同時に操作されたり、所定のペアリング処理が行われたりすることによって、ユーザが用いるコントローラが確定されている場合、当該左コントローラ３と右コントローラ４とを組として操作する操作方式を初期設定する。他の例として、ＣＰＵ８１は、当該メニュー選択処理が開始される前に本体装置２のディスプレイ１２や据置型モニタ６の表示画面に操作方式の選択を促す選択肢を表示し、いずれかの選択肢を選択する操作が行われている場合、当該選択操作が行われた左コントローラ３と右コントローラ４とを組として選択された操作方式を初期設定する。
【０１２４】
次に、ＣＰＵ８１は、メニュー画面を表示装置（例えば、据置型モニタ６）の表示画面に表示する処理を行い（ステップＳ１４２）、次のステップに処理を進める。例えば、ＣＰＵ８１は、ユーザに選択を促す複数の選択肢を示す画像を生成して、当該画像を表示画面に表示する。また、ＣＰＵ８１は、現時点で選択されている選択肢を示すカーソルＣの画像をデフォルト位置に設定してカーソル位置データＤｂを更新し、当該位置にカーソルＣを配置して表示画面に表示する。
【０１２５】
次に、ＣＰＵ８１は、左コントローラ３および／または右コントローラ４から操作データを取得して操作データＤａを更新し（ステップＳ１４３）、次のステップに処理を進める。
【０１２６】
次に、ＣＰＵ８１は、左コントローラ３または右コントローラ４を用いた操作が行われたか否かを判定する（ステップＳ１４４）。例えば、ＣＰＵ８１は、上記ステップＳ１４３において取得した操作データＤａを参照して、左コントローラ３または右コントローラ４を用いた操作が行われたか否かを判定する。
【０１２７】
次に、ＣＰＵ８１は、ユーザによって選択されている選択肢を変更する有効な操作が行われたか否かを判定する（ステップＳ１４５）。例えば、ＣＰＵ８１は、上記ステップＳ１４３において取得した操作データＤａを参照して、左コントローラ３のアナログスティック３２を用いて選択肢を変更可能な有効な傾倒操作が行われた場合、上記ステップＳ１４５において肯定判定する。そして、ＣＰＵ８１は、選択されている選択肢を変更する有効な操作が行われた場合、ステップＳ１４６に処理を進める。一方、ＣＰＵ８１は、選択されている選択肢を変更する有効な操作が行われていない場合、ステップＳ１４８に処理を進める。
【０１２８】
ステップＳ１４６において、ＣＰＵ８１は、操作に応じて選択されている選択肢を変更し、次のステップに処理を進める。例えば、ＣＰＵ８１は、カーソル位置データＤｂを参照してカーソルＣの位置を取得し、当該カーソルＣの位置からアナログスティック３２が傾倒操作された方向に表示されている最もカーソルＣの位置に近い選択肢を、変更後の選択肢とする。そして、ＣＰＵ８１は、変更後の選択肢を囲む位置にカーソルＣの位置を変更し、変更後のカーソルＣの位置を用いてカーソル位置データＤｂを更新する。
【０１２９】
次に、ＣＰＵ８１は、振動データを生成する処理を行い（ステップＳ１４７）、ステップＳ１５２に処理を進める。例えば、ＣＰＵ８１は、操作対応振動テーブルデータＤｃを参照して、選択されている選択肢を変更する情報処理に対応する振動波形（振動パターン）を抽出し、当該振動波形に基づいて当該変更操作が行われたコントローラ（例えば、左コントローラ３）を振動させるための振動データを生成して、当該コントローラに対応する左コントローラ振動データＤｄまたは右コントローラ振動データＤｅ（例えば、左コントローラ振動データＤｄ）を更新する。一例として、左コントローラ３のアナログスティック３２の操作によって選択肢が変更された場合、図１４に例示したような振動波形（振動パターン）で振動させる振動データが左コントローラ振動データＤｄに設定される。
【０１３０】
一方、上記ステップＳ１４５において選択されている選択肢を変更する有効な操作が行われていないと判定された場合、ステップＳ１４８において、ＣＰＵ８１は、ユーザによって選択されている選択肢を決定する有効な操作が行われたか否かを判定する。例えば、ＣＰＵ８１は、上記ステップＳ１４３において取得した操作データＤａを参照して、右コントローラ４のＡボタン５３を用いて選択肢を決定する有効な押下操作が行われた場合、上記ステップＳ１４８において肯定判定する。そして、ＣＰＵ８１は、選択されている選択肢を決定する有効な操作が行われた場合、ステップＳ１４９に処理を進める。一方、ＣＰＵ８１は、選択されている選択肢を決定する有効な操作が行われていない場合、ステップＳ１５１に処理を進める。
【０１３１】
ステップＳ１４９において、ＣＰＵ８１は、操作に応じて選択されている選択肢を決定し、次のステップに処理を進める。例えば、ＣＰＵ８１は、カーソル位置データＤｂを参照してカーソルＣの位置を取得し、当該カーソルＣによって囲まれている選択肢の選択を決定し、当該決定に基づいた情報処理を行う準備をする。また、ＣＰＵ８１は、カーソルＣの位置に表示されているカーソルＣの表示態様を決定カーソルＣｄに変更する。
【０１３２】
次に、ＣＰＵ８１は、振動データを生成する処理を行い（ステップＳ１５０）、ステップＳ１５２に処理を進める。例えば、ＣＰＵ８１は、操作対応振動テーブルデータＤｃを参照して、選択されている選択肢を決定する情報処理に対応する振動波形（振動パターン）を抽出し、当該振動波形に基づいて当該変更操作が行われたコントローラ（例えば、右コントローラ４）を振動させるための振動データを生成して、当該コントローラに対応する左コントローラ振動データＤｄまたは右コントローラ振動データＤｅ（例えば、右コントローラ振動データＤｅ）を更新する。一例として、右コントローラ４のＡボタン５３の操作によって選択肢が決定された場合、図１５に例示したような振動波形（振動パターン）で振動させる振動データが右コントローラ振動データＤｅに設定される。
【０１３３】
一方、上記ステップＳ１４８において選択されている選択肢を決定する有効な操作が行われていないと判定された場合、ステップＳ１５１において、ＣＰＵ８１は、ユーザによる操作に応じた処理を行い、ステップＳ１５２に処理を進める。一例として、ＣＰＵ８１は、上記ステップＳ１４３において取得した操作データＤａを参照して、ユーザによって決定不可能な選択肢を決定する操作が行われた場合には、当該決定が不可であることを示す警告音を即時に出力する処理を行う。また、ＣＰＵ８１は、操作対応振動テーブルデータＤｃを参照して、決定不可能な選択肢が決定された処理に対応する振動波形（例えば、上記警告音に応じた振動が即時に上記操作が行われたコントローラに与えられる振動波形）を抽出し、当該振動波形に基づいて当該無効な決定操作が行われたコントローラを振動させるための振動データを生成して、当該コントローラに対応する左コントローラ振動データＤｄまたは右コントローラ振動データＤｅを更新する。他の例として、ＣＰＵ８１は、上記ステップＳ１４３において取得した操作データＤａを参照して、ユーザによってキャンセルする操作（例えば、右コントローラ４のＢボタン５４の押下操作）が行われた場合、当該キャンセルに応じた情報処理（例えば、前の画面に戻る処理）の準備を行う。この場合、キャンセル操作を行ったコントローラを振動させないため、左コントローラ振動データＤｄまたは右コントローラ振動データＤｅを更新する処理を行わなくてもよい。
【０１３４】
ステップＳ１５２において、表示制御処理を行い、次のステップに処理を進める。例えば、ＣＰＵ８１は、カーソル位置データＤｂを用いて、表示されている複数の選択肢の何れかを囲むようにカーソルＣまたは決定カーソルＣｄを配置する。そして、ＣＰＵ８１は、カーソルＣまたは決定カーソルＣｄが配置されたメニュー画面を生成し、当該メニュー画面を表示装置（例えば、据置型モニタ６）の表示画面に表示する処理を行う。
【０１３５】
次に、ＣＰＵ８１は、振動データを送信する周期毎に当該周期に対応する振動データを左コントローラ３および右コントローラ４へ送信する処理を行い（ステップＳ１５３）、次のステップに処理を進める。例えば、ＣＰＵ８１は、左コントローラ振動データＤｄを参照して、上記送信周期に対応する振動長さ分の振動データを左コントローラ３へ送信する。また、ＣＰＵ８１は、右コントローラ振動データＤｅを参照して、上記送信周期に対応する振動長さ分の振動データを右コントローラ４へ送信する。このように各コントローラ用の振動データが送信されることによって、当該振動データを受信した左コントローラ３および右コントローラ４は、それぞれの振動データに応じた振動波形で振動する。
【０１３６】
次に、ＣＰＵ８１は、メニュー選択処理を終了するか否かを判定する（ステップＳ１５４）。上記ステップＳ１５４においてメニュー選択を終了する条件としては、例えば、いずれかの選択肢の選択が決定される操作が行われることによって当該決定された選択肢に応じた情報処理に移行することや、キャンセルする操作が行われることによってメニュー選択処理が行われる前に行われていた情報処理に戻ることや、ユーザがメニュー選択を終了する操作を行ったこと等がある。ＣＰＵ８１は、メニュー選択を終了しない場合に上記ステップＳ１４３に戻って処理を繰り返し、メニュー選択を終了する場合に当該フローチャートによる処理を終了する。以降、ステップＳ１４３〜ステップＳ１５４の一連の処理は、ステップＳ１５４でメニュー選択処理を終了すると判定されるまで繰り返し実行される。
【０１３７】
このように、本実施例においては、左コントローラ３および右コントローラ４の両方を用いて操作する場合に、有効な操作が行われたコントローラが当該操作を契機として振動するため、操作に応じた適切な振動をコントローラに与えることが可能となる。また、コントローラには、操作が行われたタイミングから所定時間経過した後に振動を開始するまたは振動の振幅の極大値が到来するような振動を与えることができる。したがって、操作が行われたコントローラを把持するユーザは、操作部の動きによってコントローラに生じる振動との区別が容易となり、当該操作と同じタイミングで振動が与えられる場合より振動を感じやすくなる。また、操作に応じて行われる情報処理内容に応じて異なる振動がコントローラに与えられることによって、それぞれのコントローラを多様に振動させることが可能となる。
【０１３８】
なお、上述した実施例では、操作が行われたタイミングを基準として、振動を開始するタイミングや振動の振幅の極大値が到来するタイミングが遅延する例を説明しているが、振動の遅延は他のタイミングを基準として考えることもできる。例えば、ユーザ操作に応じた操作音（効果音）が出力される場合、一般的に操作が行われたタイミングと操作音の出力が開始されるタイミングとはほぼ同じであると解釈することができる。また、ユーザ操作に応じて表示画面に表示された表示内容が変化する（例えば、表示オブジェクトが移動する、表示態様が変化する等）場合、一般的に操作が行われたタイミングと表示内容の変化が開始されるタイミングとはほぼ同じであると解釈することができる。このような解釈に基づいた場合、本実施例における振動は、操作に応じて出力される操作音（効果音）が出力開始されるタイミングまたは操作に応じて変化する表示画面の表示内容の変化が開始されるタイミングを基準（契機）として、振動を開始するタイミングや振動の振幅の極大値が到来するタイミングを遅延させていることになる。また、１つのコントローラを用いて操作している場合に、操作タイミング、操作音（効果音）、および／または表示内容の変化に対して振動を開始するタイミングや振動の振幅の極大値が到来するタイミングを遅延させてもよい。
【０１３９】
また、上述した実施例では、左コントローラ３および右コントローラ４の両方を用いて操作する場合に、有効な操作が行われたコントローラが当該操作を契機として振動する例を説明しているが、当該操作に応じた他のタイミングを契機として振動してもよい。例えば、有効な操作が行われた左コントローラ３および右コントローラ４の一方を操作している状態から操作していない状態に移行した場合に、当該操作していない状態に移行したことを契機として、当該移行が行われたコントローラが振動してもよい。具体的には、アナログスティックに対して有効な操作が行われた場合、アナログスティックを操作している状態から操作していない状態に移行したことを契機として当該アナログスティックを備えるコントローラを振動させてもよい。また、操作ボタンに対して有効な操作が行われた場合、操作ボタンを押下操作している状態から押下操作していない状態に移行したことを契機として当該操作ボタンを備えるコントローラを振動させてもよい。
【０１４０】
また、上述した実施例では、１人のユーザが左コントローラ３および右コントローラ４の両方を用いる例を用いたが、１人のユーザが左コントローラ３および右コントローラ４の一方を把持して操作する態様であってもよい。また、複数のユーザがそれぞれ左コントローラ３および右コントローラ４の両方または一方を用いて操作してもよい。この場合、それぞれのユーザが用いる左コントローラ３および／または右コントローラ４に対して、それぞれのユーザの操作に応じた振動をそれぞれのユーザが操作するコントローラに与えればよい。
【０１４１】
また、複数のユーザが左コントローラ３および右コントローラ４の両方または一方を用いる場合、それぞれのユーザが操作するコントローラに対して、同じ振動を与えることも考えられる。例えば、複数のユーザがそれぞれ同じメニュー画面を見て１つの選択肢を選択して決定する場合に、いずれかのユーザの操作を契機としてそれぞれのユーザが把持する左コントローラ３および右コントローラ４の両方または一方に同じ振動が与えられることが考えられる。
【０１４２】
また、上述した実施例では、左コントローラ３の振動データと右コントローラ４の振動データとを生成する処理を本体装置２において行っているが、他の装置において当該処理を行ってもよい。例えば、振動データを用いて振動することになるコントローラ側において、当該振動データを生成する処理を行ってもよい。
【０１４３】
また、他の実施形態においては、本体装置２は、据置型モニタ６と直接通信可能であってもよい。例えば、本体装置２と据置型モニタ６とが直接有線通信または直接無線通信を行うことが可能であってもよい。この場合、本体装置２は、本体装置２と据置型モニタ６とが直接通信可能か否かに基づいて画像の表示先を決定してもよい。
【０１４４】
また、情報処理システム１は、どのような装置であってもよく、携帯型のゲーム装置、任意の携帯型電子機器（ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、携帯電話、パーソナルコンピュータ、カメラ、タブレット等）等であってもよい。
【０１４５】
また、上述した説明では情報処理（メニュー選択処理）を情報処理システム１でそれぞれ行う例を用いたが、上記処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、情報処理システム１がさらに他の装置（例えば、別のサーバ、他の画像表示装置、他のゲーム装置、他の携帯端末）と通信可能に構成されている場合、上記処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記処理ステップの少なくとも一部を他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した情報処理は、少なくとも１つの情報処理装置により構成される情報処理システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。また、上記実施例においては、情報処理システム１のＣＰＵ８１が所定のプログラムを実行することによって情報処理を行うことが可能であるが、情報処理システム１が備える専用回路によって上記処理の一部または全部が行われてもよい。
【０１４６】
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本発明を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置（据置型のゲーム装置）と携帯型の情報処理装置（携帯型のゲーム装置）との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本発明を実現できることは言うまでもない。
【０１４７】
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。
【０１４８】
また、上記プログラムは、外部メモリ等の外部記憶媒体を通じて情報処理システム１に供給されるだけでなく、有線または無線の通信回線を通じて当該装置に供給されてもよい。また、上記プログラムは、当該装置内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記プログラムを記憶する情報記憶媒体としては、上記プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
【０１４９】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施例の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書（定義を含めて）が優先する。
【産業上の利用可能性】
【０１５０】
以上のように、本発明は、操作装置を用いて操作可能なシステムにおいて、当該操作装置を用いた操作に応じて適切な振動を与えることが可能な情報処理システム、情報処理装置、情報処理プログラム、および情報処理方法等として利用することができる。
【符号の説明】
【０１５１】
１…情報処理システム
２…本体装置
３…左コントローラ
４…右コントローラ
５…クレードル
６…据置型モニタ
１１…ハウジング
１２…ディスプレイ
２７…下側端子
４２，６４…端子
７３…本体端子
８１…ＣＰＵ
８２…ネットワーク通信部
８３…コントローラ通信部
８５…ＤＲＡＭ
１０７、１１７…振動子
【図１】
2018110650.tif 000003
【図２】
2018110650.tif 000004
【図３】
2018110650.tif 000005
【図４】
2018110650.tif 000006
【図５】
2018110650.tif 000007
【図６】
2018110650.tif 000008
【図７】
2018110650.tif 000009
【図８】
2018110650.tif 000010
【図９】
2018110650.tif 000011
【図１０】
2018110650.tif 000012
【図１１】
2018110650.tif 000013
【図１２】
2018110650.tif 000014
【図１３】
2018110650.tif 000015
【図１４】
2018110650.tif 000016
【図１５】
2018110650.tif 000017
【図１６】
2018110650.tif 000018
【図１７】
2018110650.tif 000019