(57)【要約】【課題】より実感を伴う振動をユーザに感じさせることが可能な情報処理システムを提供する。【解決手段】判定部は、姿勢算出部によって算出されたコントローラの姿勢に基づいてオブジェクトの当たり判定を行う。第１波形生成部は、判定部によってオブジェクトが当たったと判定された場合、第１振動波形を生成する。音声振動波形生成部は、音声信号に応じた音声振動波形を生成する。出力部は、判定部によってオブジェクトが当たったと判定された場合、音声信号を出力するとともに、第１振動波形と当該音声信号に応じた音声振動波形とを合成した合成波形を示す信号を出力する。【選択図】図１０
2018106599.tif 000002
【特許請求の範囲】
【請求項１】
操作部と、
入力された振動波形を示す信号に応じた振動をする振動部と、
前記操作部からの入力に基づいて情報処理を行う情報処理部と、
所定の音声信号を生成する音声生成部と、
第１の振動波形を示す信号を生成する波形生成部と、
前記情報処理に基づいて、前記音声信号を出力するとともに、前記第１の振動波形と前記音声信号の波形に基づいた音声振動波形とを合成した合成波形を示す信号を前記振動部に出力する出力部とを備える、情報処理システム。
【請求項２】
前記出力部は、前記音声信号の出力を開始するタイミングで、前記合成波形を示す信号を前記振動部に出力する、請求項１に記載の情報処理システム。
【請求項３】
前記情報処理部は、前記情報処理として、所定の条件が満たされたか否かを判定し、
前記情報処理において前記所定の条件が満たされたと判定された場合に、
前記波形生成部は、前記第１の振動波形を生成し、
前記音声生成部は、前記所定の音声信号を生成し、
前記出力部は、前記音声信号を出力するとともに、前記合成波形を示す信号を出力し、
前記情報処理において前記所定の条件が満たされていないと判定された場合に、
前記波形生成部は、前記第１の振動波形と同じ第２の振動波形を生成し、
前記出力部は、前記第２の振動波形を示す信号を出力する、請求項１又は２に記載の情報処理システム。
【請求項４】
前記情報処理部は、前記情報処理として、所定の条件が満たされたか否かを判定し、
前記情報処理において前記所定の条件が満たされたと判定された場合に、
前記波形生成部は、前記第１の振動波形を生成し、
前記音声生成部は、前記所定の音声信号を生成し、
前記出力部は、前記音声信号を出力するとともに、前記合成波形を示す信号を出力し、
前記情報処理において前記所定の条件が満たされていないと判定された場合に、
前記波形生成部は、前記第１の振動波形と異なる第２の振動波形を生成し、
前記出力部は、前記第２の振動波形を示す信号を出力する、請求項１又は２に記載の情報処理システム。
【請求項５】
前記第１の振動波形は、前記第２の振動波形の周波数及び／又は振幅を変化させた波形である、請求項４に記載の情報処理システム。
【請求項６】
前記操作部は、慣性センサを含み、前記操作部からの入力には当該慣性センサから取得されるデータが含まれ、
前記情報処理部は、前記慣性センサから取得されるデータに基づいて、前記所定の判定として、第１の仮想オブジェクトが第２の仮想オブジェクトに当たったか否かを判定し、
前記出力部は、前記第１の仮想オブジェクトが前記第２の仮想オブジェクトに当たったと判定された場合、前記音声信号を出力するとともに、前記合成波形を示す信号を前記振動部に出力する、請求項１から５の何れかに記載の情報処理システム。
【請求項７】
前記第２の仮想オブジェクトは複数あり、
前記出力部は、前記第１の仮想オブジェクトが複数の前記第２の仮想オブジェクトに当たったと判定された場合、前記第１の振動波形と複数の前記音声振動波形とを合成した合成波形を示す信号を出力する、請求項６に記載の情報処理システム。
【請求項８】
前記波形生成部は、所定の周波数および振幅を設定することで前記第１の振動波形を示す信号を生成し、
前記振動部は、設定された前記所定の周波数および振幅で振動する、請求項１から７の何れかに記載の情報処理システム。
【請求項９】
前記波形生成部は、前記所定の周波数として、前記振動部が有する共振周波数を設定する、請求項８に記載の情報処理システム。
【請求項１０】
前記出力部は、前記所定の条件が満たされたと判定される前は前記第２の振動波形を示す信号を出力し、前記所定の条件が満たされたと判定されたことに応じて前記第２の振動波形の振幅を小さくし、所定時間経過後に、前記合成波形を示す信号を出力する、請求項３から５の何れかに記載の情報処理システム。
【請求項１１】
操作部と、
入力された振動波形を示す信号に応じた振動をする振動部と、
前記操作部からの入力に基づいて情報処理を行う情報処理部と、
所定の周波数を設定した第１の振動波形を示す信号を生成する波形生成部と、
前記情報処理に基づいて、前記第１の振動波形と音声信号の波形に基づいた音声振動波形とを合成した合成波形を示す信号を前記振動部に出力する出力部とを備える、情報処理システム。
【請求項１２】
前記所定の周波数は、前記振動部が有する共振周波数である、請求項１１に記載の情報処理システム。
【請求項１３】
操作部と、
入力された振動波形を示す信号に応じた振動をする振動部と、
前記操作部からの入力に基づいて所定の条件が満たされたか否かを判定する判定部と、
第１の振動波形を示す信号を生成する第１波形生成部と、
第２の振動波形を示す信号を生成する第２波形生成部と、
前記所定の条件が満たされる前は前記第２の振動波形を示す信号を前記振動部に出力し、前記所定の条件が満たされたと判定されたことに応じて前記第２の振動波形の振幅を小さくし、所定時間経過後に、前記第１の振動波形を示す信号を前記振動部に出力する出力部とを備える、情報処理システム。
【請求項１４】
前記第１の振動波形の振幅は、前記第２の振動波形の振幅よりも大きい、請求項１３に記載の情報処理システム。
【請求項１５】
入力された振動波形を示す信号に応じた振動をする振動部を振動させる情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、前記コンピュータに、
操作部からの入力に基づいて情報処理を行う情報処理ステップと、
所定の音声信号を生成する音声生成ステップと、
第１の振動波形を示す信号を生成する波形生成ステップと、
前記情報処理に基づいて、前記音声信号を出力するとともに、前記第１の振動波形と前記音声信号の波形に基づいた音声振動波形とを合成した合成波形を示す信号を前記振動部に出力する出力ステップと、を実行させる、情報処理プログラム。
【請求項１６】
前記出力ステップは、前記音声信号の出力を開始するタイミングで、前記合成波形を示す信号を前記振動部に出力する、請求項１５に記載の情報処理プログラム。
【請求項１７】
前記情報処理ステップは、前記情報処理として、所定の条件が満たされたか否かを判定し、
前記情報処理において前記所定の条件が満たされたと判定された場合に、
前記波形生成ステップは、前記第１の振動波形を生成し、
前記音声生成ステップは、前記所定の音声信号を生成し、
前記出力ステップは、前記音声信号を出力するとともに、前記合成波形を示す信号を出力し、
前記情報処理において前記所定の条件が満たされていないと判定された場合に、
前記波形生成ステップは、前記第１の振動波形と同じ第２の振動波形を生成し、
前記出力ステップは、前記第２の振動波形を示す信号を出力する、請求項１５又は１６に記載の情報処理プログラム。
【請求項１８】
前記情報処理ステップは、前記情報処理として、所定の条件が満たされたか否かを判定し、
前記情報処理において前記所定の条件が満たされたと判定された場合に、
前記波形生成ステップは、前記第１の振動波形を生成し、
前記音声生成ステップは、前記所定の音声信号を生成し、
前記出力ステップは、前記音声信号を出力するとともに、前記合成波形を示す信号を出力し、
前記情報処理において前記所定の条件が満たされていないと判定された場合に、
前記波形生成ステップは、前記第１の振動波形と異なる第２の振動波形を生成し、
前記出力ステップは、前記第２の振動波形を示す信号を出力する、請求項１５又は１６に記載の情報処理プログラム。
【請求項１９】
前記第１の振動波形は、前記第２の振動波形の周波数及び／又は振幅を変化させた波形である、請求項１８に記載の情報処理プログラム。
【請求項２０】
前記操作部は、慣性センサを含み、前記操作部からの入力には当該慣性センサから取得されるデータが含まれ、
前記情報処理ステップは、前記慣性センサから取得されるデータに基づいて、前記所定の判定として、第１の仮想オブジェクトが第２の仮想オブジェクトに当たったか否かを判定し、
前記出力ステップは、前記第１の仮想オブジェクトが前記第２の仮想オブジェクトに当たったと判定された場合、前記音声信号を出力するとともに、前記合成波形を示す信号を前記振動部に出力する、請求項１５から１９の何れかに記載の情報処理プログラム。
【請求項２１】
入力された振動波形を示す信号に応じた振動をする振動部を振動させる情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、前記コンピュータに、
操作部からの入力に基づいて情報処理を行う情報処理ステップと、
所定の周波数を設定した第１の振動波形を示す信号を生成する波形生成ステップと、
前記情報処理に基づいて、前記第１の振動波形と音声信号の波形に基づいた音声振動波形とを合成した合成波形を示す信号を前記振動部に出力する出力ステップと、を実行させる、情報処理プログラム。
【請求項２２】
入力された振動波形を示す信号に応じた振動をする振動部を振動させる情報処理装置のコンピュータにおいて実行される情報処理プログラムであって、前記コンピュータに、
操作部からの入力に基づいて所定の条件が満たされたか否かを判定する判定ステップと、
第１の振動波形を示す信号を生成する第１波形生成ステップと、
第２の振動波形を示す信号を生成する第２波形生成ステップと、
前記所定の条件が満たされる前は前記第２の振動波形を示す信号を前記振動部に出力し、前記所定の条件が満たされたと判定されたことに応じて前記第２の振動波形の振幅を小さくし、所定時間経過後に、前記第１の振動波形を示す信号を前記振動部に出力する出力ステップと、を実行させる、情報処理プログラム。
【請求項２３】
入力された振動波形を示す信号に応じた振動をする振動部を振動させる情報処理装置であって、
操作部からの入力に基づいて情報処理を行う情報処理部と、
所定の音声信号を生成する音声生成部と、
第１の振動波形を示す信号を生成する波形生成部と、
前記情報処理に基づいて、前記音声信号を出力するとともに、前記第１の振動波形と前記音声信号の波形に基づいた音声振動波形とを合成した合成波形を示す信号を前記振動部に出力する出力部と、を備える、情報処理装置。
【請求項２４】
入力された振動波形を示す信号に応じた振動をする振動部を振動させる情報処理方法であって、
操作部からの入力に基づいて情報処理を行う情報処理ステップと、
所定の音声信号を生成する音声生成ステップと、
第１の振動波形を示す信号を生成する波形生成ステップと、
前記情報処理に基づいて、前記音声信号を出力するとともに、前記第１の振動波形と前記音声信号の波形に基づいた音声振動波形とを合成した合成波形を示す信号を前記振動部に出力する出力ステップと、を含む、情報処理方法。
【請求項２５】
入力された振動波形を示す信号に応じた振動をする振動部を振動させる情報処理装置であって、
操作部からの入力に基づいて情報処理を行う情報処理部と、
所定の周波数を設定した第１の振動波形を示す信号を生成する波形生成部と、
前記情報処理に基づいて、前記第１の振動波形と音声信号の波形に基づいた音声振動波形とを合成した合成波形を示す信号を前記振動部に出力する出力部と、を備える、情報処理装置。
【請求項２６】
入力された振動波形を示す信号に応じた振動をする振動部を振動させる情報処理方法であって、
操作部からの入力に基づいて情報処理を行う情報処理ステップと、
所定の周波数を設定した第１の振動波形を示す信号を生成する波形生成ステップと、
前記情報処理に基づいて、前記第１の振動波形と音声信号の波形に基づいた音声振動波形とを合成した合成波形を示す信号を前記振動部に出力する出力ステップと、を含む、情報処理方法。
【請求項２７】
入力された振動波形を示す信号に応じた振動をする振動部を振動させる情報処理装置であって、
操作部からの入力に基づいて所定の条件が満たされたか否かを判定する判定部と、
第１の振動波形を示す信号を生成する第１波形生成部と、
第２の振動波形を示す信号を生成する第２波形生成部と、
前記所定の条件が満たされる前は前記第２の振動波形を示す信号を前記振動部に出力し、前記所定の条件が満たされたと判定されたことに応じて前記第２の振動波形の振幅を小さくし、所定時間経過後に、前記第１の振動波形を示す信号を前記振動部に出力する出力部と、を実行させる、情報処理装置。
【請求項２８】
入力された振動波形を示す信号に応じた振動をする振動部を振動させる情報処理方法であって、
操作部からの入力に基づいて所定の条件が満たされたか否かを判定する判定ステップと、
第１の振動波形を示す信号を生成する第１波形生成ステップと、
第２の振動波形を示す信号を生成する第２波形生成ステップと、
前記所定の条件が満たされる前は前記第２の振動波形を示す信号を前記振動部に出力し、前記所定の条件が満たされたと判定されたことに応じて前記第２の振動波形の振幅を小さくし、所定時間経過後に、前記第１の振動波形を示す信号を前記振動部に出力する出力ステップと、を含む、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理プログラム、情報処理装置、および、情報処理方法に関する。
【背景技術】
【０００２】
従来より、入力装置を用いて画面上の位置を指示し、所定の場所が指示された場合に入力装置を振動させるものがある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−３４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来技術では指示された位置によって振動するか振動しないかを制御するだけであり、実感に乏しい振動フィードバックであった。
【０００５】
それ故、本発明の目的は、より実感を伴う振動をユーザに感じさせることが可能な情報処理システムを提供することである。
【課題を解決するための手段】
【０００６】
上記の課題を解決すべく、本発明は、以下の構成を採用した。
【０００７】
本発明の一例に係る情報処理システムは、操作部と、振動部と、情報処理部と、音声生成部と、出力部とを備える。振動部は、入力された振動波形を示す信号に応じた振動をする。情報処理部は、前記操作部からの入力に基づいて情報処理を行う。音声生成部は、所定の音声信号を生成する。波形生成部は、第１の振動波形を示す信号を生成する。出力部は、前記情報処理に基づいて、前記音声信号を出力するとともに、前記第１の振動波形と前記音声信号の波形に基づいた音声振動波形とを合成した合成波形を示す信号を前記振動部に出力する。
【０００８】
ここで、「振動波形を示す信号」は、例えば、振動波形の振幅及び周波数であってもよい。また、「振動波形を示す信号」は、振動波形自体であってもよいし、振動波形を示す振動パターンデータを指定する信号であってもよい。
【０００９】
また、「第１の振動波形と音声振動波形とを合成する」とは、例えば、２つの振動波形の振幅を合計すること、２つの振動波形の周波数の平均（重み付きの平均であってもよいし重み無しの平均であってもよい）をとることであってもよい。また、「第１の振動波形と音声振動波形とを合成する」とは、例えば波の重ね合わせの原理にしたがって２つの振動波形を重ね合わせることであってもよい。
【００１０】
上記によれば、音声の出力とともに、第１の振動波形に音声信号に基づいた音声振動波形を合成した合成波形を出力することができ、ユーザに、音声とその音声に合った振動を感じさせることができ、よりリアルな振動体験をさせることができる。
【００１１】
また、前記出力部は、前記音声信号の出力を開始するタイミングで、前記合成波形を示す信号を前記振動部に出力してもよい。
【００１２】
上記によれば、音声の出力タイミングで当該音声に応じた振動をさせることができる。
【００１３】
また、前記情報処理部は、前記情報処理として、所定の条件が満たされたか否かを判定してもよい。前記情報処理において前記所定の条件が満たされたと判定された場合に、前記波形生成部は、前記第１の振動波形を生成し、前記音声生成部は、前記所定の音声信号を生成し、前記出力部は、前記音声信号を出力するとともに、前記合成波形を示す信号を出力してもよい。また、前記情報処理において前記所定の条件が満たされていないと判定された場合に、前記波形生成部は、前記第１の振動波形と同じ第２の振動波形を生成し、前記出力部は、前記第２の振動波形を示す信号を出力してもよい。
【００１４】
上記によれば、所定の条件が満たされる前と所定の条件が満たされたときとで同じ振動をさせるとともに、条件が満たされた場合に、音声信号とともに合成波形を出力することができる。
【００１５】
また、前記情報処理部は、前記情報処理として、所定の条件が満たされたか否かを判定してもよい。前記情報処理において前記所定の条件が満たされたと判定された場合に、前記波形生成部は、前記第１の振動波形を生成し、前記音声生成部は、前記所定の音声信号を生成し、前記出力部は、前記音声信号を出力するとともに、前記合成波形を示す信号を出力してもよい。また、前記情報処理において前記所定の条件が満たされていないと判定された場合に、前記波形生成部は、前記第１の振動波形と異なる第２の振動波形を生成し、前記出力部は、前記第２の振動波形を示す信号を出力してもよい。
【００１６】
上記によれば、所定の条件が満たされる前と所定の条件が満たされたときとで異なる振動をさせるとともに、条件が満たされた場合に、音声信号とともに合成波形を出力することができる。
【００１７】
また、前記第１の振動波形は、前記第２の振動波形の周波数及び／又は振幅を変化させた波形であってもよい。
【００１８】
上記によれば、所定の条件が満たされる前は第２の振動波形に基づく振動を行い、所定の条件が満たされた場合は第２の振動波形を変化させた第１の振動波形に基づく振動を行うことができる。例えば、予め第２の振動波形を示すデータを記憶しておき、所定の条件が満たされた場合には、同じデータを用いて第１の振動波形を生成することができるため、予め記憶するデータの数を減らすことができる。
【００１９】
また、前記操作部は、慣性センサを含み、前記操作部からの入力には当該慣性センサから取得されるデータが含まれてもよい。前記情報処理部は、前記慣性センサから取得されるデータに基づいて、前記所定の判定として、第１の仮想オブジェクトが第２の仮想オブジェクトに当たったか否かを判定してもよい。前記出力部は、前記第１の仮想オブジェクトが前記第２の仮想オブジェクトに当たったと判定された場合、前記音声信号を出力するとともに、前記合成波形を示す信号を前記振動部に出力してもよい。
【００２０】
上記によれば、慣性センサからのデータに基づいて第２の仮想オブジェクトの当たり判定を行い、当たり判定の結果に応じて、音声信号を出力するとともに合成波形に基づく振動を行わせることができる。
【００２１】
また、前記第２の仮想オブジェクトは複数あってもよい。前記出力部は、前記第１の仮想オブジェクトが複数の前記第２の仮想オブジェクトに当たったと判定された場合、前記第１の振動波形と複数の前記音声振動波形とを合成した合成波形を示す信号を出力してもよい。
【００２２】
上記によれば、第１の仮想オブジェクトが複数の第２の仮想オブジェクトに当たった場合、複数の音声振動波形を合成することができ、より大きく振動させることができる。
【００２３】
また、前記波形生成部は、所定の周波数および振幅を設定することで前記第１の振動波形を示す信号を生成してもよい。前記振動部は、設定された前記所定の周波数および振幅で振動してもよい。
【００２４】
上記によれば、周波数および振幅を指定して振動部を振動させることができ、例えば、振動部が振動し易い周波数を指定して振動部を振動させることができる。
【００２５】
また、前記波形生成部は、前記所定の周波数として、前記振動部が有する共振周波数を設定してもよい。
【００２６】
上記によれば、共振周波数を狙って振動部を振動させることができ、振動部をより振動させ易くすることができる。
【００２７】
また、前記出力部は、前記所定の条件が満たされたと判定される前は前記第２の振動波形を示す信号を出力し、前記所定の条件が満たされたと判定されたことに応じて前記第２の振動波形の振幅を小さくし、所定時間経過後に、前記合成波形を示す信号を出力してもよい。
【００２８】
上記によれば、所定の条件が満たされる前は第２の振動波形に基づく振動を行わせ、所定の条件が満たされた場合に、第２の振動波形に基づく振動を抑制した後、合成波形に基づく振動を行わせることができる。例えば、所定の条件が満たされたことに応じて振動部の振動を小さくしたり停止したりすることができ、所定の条件が満たされたときに発生する合成波形に基づく振動をユーザにより感じ易くすることができる。
【００２９】
他の構成に係る情報処理システムは、操作部と、振動部と、情報処理部と、波形生成部と、出力部とを備える。振動部は、入力された振動波形を示す信号に応じた振動をする。情報処理部は、前記操作部からの入力に基づいて情報処理を行う。波形生成部は、所定の周波数を設定した第１の振動波形を示す信号を生成する。出力部は、前記情報処理に基づいて、前記第１の振動波形と音声信号の波形に基づいた音声振動波形とを合成した合成波形を示す信号を前記振動部に出力する。
【００３０】
上記によれば、所定の周波数を設定した第１の振動波形と、音声信号に応じた音声振動波形とを合成した合成波形に基づいて振動部を振動させることができ、例えば、振動部が振動し易い周波数を指定して振動部を振動させることができる。
【００３１】
また、前記所定の周波数は、前記振動部が有する共振周波数であってもよい。
【００３２】
上記によれば、共振周波数を指定して振動部を振動させることができ、振動部をより大きく振動させることができる。
【００３３】
他の構成に係る情報処理システムは、操作部と、振動部と、判定部と、第１波形生成部と、第２波形生成部と、出力部とを備える。振動部は、入力された振動波形を示す信号に応じた振動をする。判定部は、前記操作部からの入力に基づいて所定の条件が満たされたか否かを判定する。第１波形生成部は、第１の振動波形を示す信号を生成する。第２波形生成部は、第２の振動波形を示す信号を生成する。出力部は、前記所定の条件が満たされる前は前記第２の振動波形を示す信号を前記振動部に出力し、前記所定の条件が満たされたと判定されたことに応じて前記第２の振動波形の振幅を小さくし、所定時間経過後に、前記第１の振動波形を示す信号を前記振動部に出力する。
【００３４】
上記によれば、所定の条件が満たされる前は第２の振動波形に基づく振動を行わせ、所定の条件が満たされた場合に、第２の振動波形に基づく振動を抑制した後、第１の振動波形に基づく振動を行わせることができる。例えば、所定の条件が満たされたことに応じて振動部の振動を小さくしたり停止したりすることができ、所定の条件が満たされたときに発生する第１の振動波形に基づく振動をユーザにより感じ易くすることができる。
【００３５】
また、前記第１の振動波形の振幅は、前記第２の振動波形の振幅よりも大きくてもよい。
【００３６】
上記によれば、所定の条件が満たされたことに応じて第２の振動波形に基づく振動を抑制し、所定時間経過後に、第１の振動波形に基づく大きな振動を行わせることができる。
【００３７】
また、他の形態は、入力された振動波形を示す信号に応じた振動をする振動部を振動させる情報処理装置のコンピュータにおいて実行される情報処理プログラムであってもよい。情報処理プログラムは、前記コンピュータに、前記操作部からの入力に基づいて情報処理を行う情報処理ステップと、所定の音声信号を生成する音声生成ステップと、第１の振動波形を示す信号を生成する波形生成ステップと、前記情報処理に基づいて、前記音声信号を出力するとともに、前記第１の振動波形と前記音声信号の波形に基づいた音声振動波形とを合成した合成波形を示す信号を前記振動部に出力する出力ステップと、を実行させる。
【００３８】
また、他の形態は、上記情報処理プログラムを実行する情報処理装置であってもよい。また、他の形態は、上記情報処理装置や情報処理システムにおいて行われる情報処理方法であってもよい。
【発明の効果】
【００３９】
本発明によれば、ユーザに、よりリアルな振動体験をさせることができる。
【図面の簡単な説明】
【００４０】
【図１】本体装置２に左コントローラ３および右コントローラ４を装着した状態を示す図
【図２】本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図
【図３】本体装置２の一例を示す六面図
【図４】左コントローラ３の一例を示す六面図
【図５】右コントローラ４の一例を示す六面図
【図６】本体装置２の内部構成の一例を示すブロック図
【図７】本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図
【図８】第１のゲームの概要を示す図
【図９】本体装置２の記憶装置に予め記憶される第１のゲームに用いられるデータの一例を示す図
【図１０】第１のゲームにおける振動制御の機能ブロック図の一例
【図１１】シェーバーオブジェクト７２が動いてシェーバーオブジェクト７２が髭オブジェクト７１に当たる様子を示す図
【図１２】シェーバーオブジェクト７２が髭オブジェクト７１に当たる前の振動波形とシェーバーオブジェクト７２が髭オブジェクト７１に当たったときの振動波形とを示す図
【図１３】本体装置２の記憶装置に予め記憶される第２のゲームに用いられるデータの一例を示す図
【図１４】第２のゲームにおける振動制御の機能ブロック図の一例
【図１５】所定の条件が満たされる前後の振動波形を示す図
【図１６】コントローラから出力されるデータの一例を示す図
【図１７】コントローラに入力されるデータの一例を示す図
【図１８】第１のゲームが行われる場合の本体装置２において行われる処理の詳細を示すフローチャート
【図１９】図１８のステップＳ１０の出力処理の詳細を示すフローチャート
【図２０】第２のゲームが行われる場合の本体装置２において行われる処理の詳細を示すフローチャート
【発明を実施するための形態】
【００４１】
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム１の一例は、本体装置（情報処理装置；本実施形態ではゲーム装置本体として機能する）２と左コントローラ３および右コントローラ４とを含む。本体装置２は、左コントローラ３および右コントローラ４がそれぞれ着脱可能である。つまり、左コントローラ３および右コントローラ４をそれぞれ本体装置２に装着して一体化された装置として利用できる。また、本体装置２と左コントローラ３および右コントローラ４とを別体として利用することもできる（図２参照）。以下では、まず本実施形態のゲームシステムのハードウェア構成について説明し、その後に本実施形態のゲームシステムの制御について説明する。
【００４２】
（本体装置、左コントローラ、右コントローラの説明）
図１は、本体装置２に左コントローラ３および右コントローラ４を装着した状態を示す図である。図１に示すように、左コントローラ３および右コントローラ４は、それぞれ本体装置２に装着されて一体化されている。本体装置２は、ゲームシステム１における各種の処理（例えば、ゲーム処理）を実行する装置である。本体装置２は、ディスプレイ１２を備える。左コントローラ３および右コントローラ４は、ユーザが入力を行うための操作部を備える装置である。
【００４３】
図２は、本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図である。図１および図２に示すように、左コントローラ３および右コントローラ４は、本体装置２に着脱可能である。なお、以下において、左コントローラ３および右コントローラ４の総称として「コントローラ」と記載することがある。
【００４４】
図３は、本体装置２の一例を示す六面図である。図３に示すように、本体装置２は、略板状のハウジング１１を備える。本実施形態において、ハウジング１１の主面（換言すれば、表側の面、すなわち、ディスプレイ１２が設けられる面）は、大略的には矩形形状である。
【００４５】
なお、ハウジング１１の形状および大きさは、任意である。一例として、ハウジング１１は、携帯可能な大きさであってよい。また、本体装置２単体または本体装置２に左コントローラ３および右コントローラ４が装着された一体型装置は、携帯型装置となってもよい。また、本体装置２または一体型装置が手持ち型の装置となってもよい。また、本体装置２または一体型装置が可搬型装置となってもよい。
【００４６】
図３に示すように、本体装置２は、ハウジング１１の主面に設けられるディスプレイ１２を備える。ディスプレイ１２は、本体装置２が生成した画像を表示する。本実施形態においては、ディスプレイ１２は、液晶表示装置（ＬＣＤ）とする。ただし、ディスプレイ１２は任意の種類の表示装置であってよい。
【００４７】
また、本体装置２は、ディスプレイ１２の画面上にタッチパネル１３を備える。本実施形態においては、タッチパネル１３は、マルチタッチ入力が可能な方式（例えば、静電容量方式）のものである。ただし、タッチパネル１３は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式（例えば、抵抗膜方式）のものであってもよい。
【００４８】
本体装置２は、ハウジング１１の内部においてスピーカ（すなわち、図６に示すスピーカ８８）を備えている。図３に示すように、ハウジング１１の主面には、スピーカ孔１１ａおよび１１ｂが形成される。そして、スピーカ８８の出力音は、これらのスピーカ孔１１ａおよび１１ｂからそれぞれ出力される。
【００４９】
また、本体装置２は、本体装置２が左コントローラ３と有線通信を行うための端子である左側端子１７と、本体装置２が右コントローラ４と有線通信を行うための右側端子２１を備える。
【００５０】
図３に示すように、本体装置２は、第１スロット２３を備える。第１スロット２３は、ハウジング１１の上側面に設けられる。第１スロット２３は、第１の種類の記憶媒体を装着可能な形状を有する。第１の種類の記憶媒体は、例えば、ゲームシステム１およびそれと同種の情報処理装置に専用の記憶媒体（例えば、専用メモリカード）である。第１の種類の記憶媒体は、例えば、本体装置２で利用されるデータ（例えば、アプリケーションのセーブデータ等）、および／または、本体装置２で実行されるプログラム（例えば、アプリケーションのプログラム等）を記憶するために用いられる。また、本体装置２は、電源ボタン２８を備える。
【００５１】
本体装置２は、下側端子２７を備える。下側端子２７は、本体装置２がクレードルと通信を行うための端子である。本実施形態において、下側端子２７は、ＵＳＢコネクタ（より具体的には、メス側コネクタ）である。上記一体型装置または本体装置２単体をクレードルに載置した場合、ゲームシステム１は、本体装置２が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置２単体を充電する機能を有する。また、クレードルは、ハブ装置（具体的には、ＵＳＢハブ）の機能を有する。
【００５２】
図４は、左コントローラ３の一例を示す六面図である。図４に示すように、左コントローラ３は、ハウジング３１を備える。本実施形態においては、ハウジング３１は、縦長の形状、すなわち、上下方向（すなわち、図１に示すｙ軸方向）に長い形状である。左コントローラ３は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング３１は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ３は、横長となる向きで把持されることも可能である。左コントローラ３が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００５３】
左コントローラ３は、アナログスティック３２を備える。図４に示すように、アナログスティック３２が、ハウジング３１の主面に設けられる。アナログスティック３２は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック３２を傾倒することによって傾倒方向に応じた方向の入力（および、傾倒した角度に応じた大きさの入力）が可能である。なお、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック押下する入力が可能である。
【００５４】
左コントローラ３は、各種操作ボタンを備える。まず、左コントローラ３は、ハウジング３１の主面上に４つの操作ボタン３３〜３６（具体的には、右方向ボタン３３、下方向ボタン３４、上方向ボタン３５、および、左方向ボタン３６）を備える。さらに、録画ボタン３７、−（マイナス）ボタン４７を備える。左コントローラ３は、ハウジング３１の側面の左上に第１Ｌボタン３８およびＺＬボタン３９を備える。また、左コントローラ３は、ハウジング３１の側面の、本体装置２に装着される際に装着される側の面に第２Ｌボタン４３および第２Ｒボタン４４を備える。これらの操作ボタンは、本体装置２で実行される各種プログラム（例えば、ＯＳプログラムやアプリケーションプログラム）に応じた指示を行うために用いられる。
【００５５】
また、左コントローラ３は、左コントローラ３が本体装置２と有線通信を行うための端子４２を備える。
【００５６】
図５は、右コントローラ４の一例を示す六面図である。図５に示すように、右コントローラ４は、ハウジング５１を備える。本実施形態においては、ハウジング５１は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ４は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング５１は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ４は、横長となる向きで把持されることも可能である。右コントローラ４が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００５７】
右コントローラ４は、左コントローラ３と同様、方向入力部としてアナログスティック５２を備える。本実施形態においては、アナログスティック５２は、左コントローラ３のアナログスティック３２と同じ構成である。また、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ４は、左コントローラ３と同様、ハウジング５１の主面上に４つの操作ボタン５３〜５６（具体的には、Ａボタン５３、Ｂボタン５４、Ｘボタン５５、および、Ｙボタン５６）を備える。さらに、＋（プラス）ボタン５７、ホームボタン５８を備える。また、右コントローラ４は、右コントローラ４は、ハウジング５１の側面の右上に第１Ｒボタン６０およびＺＲボタン６１を備える。また、左コントローラ３と同様、第２Ｌボタン６５および第２Ｒボタン６６を備える。
【００５８】
また、右コントローラ４は、右コントローラ４が本体装置２と有線通信を行うための端子６４を備える。
【００５９】
図６は、本体装置２の内部構成の一例を示すブロック図である。本体装置２は、図３に示す構成の他、図６に示す各構成要素８１〜９８を備える。これらの構成要素８１〜９８のいくつかは、電子部品として電子回路基板上に実装されてハウジング１１内に収納されてもよい。
【００６０】
本体装置２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）８１を備える。ＣＰＵ８１は、本体装置２において実行される各種の情報処理を実行する情報処理部であって、厳密にはＣＰＵ機能、ＧＰＵ機能等の複数の機能を含むＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）である。ＣＰＵ８１は、記憶部（具体的には、フラッシュメモリ８４等の内部記憶媒体、あるいは、各スロット２３および２４に装着される外部記憶媒体等）に記憶される情報処理プログラム（例えば、ゲームプログラム）を実行することによって、各種の情報処理を実行する。
【００６１】
本体装置２は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ８４およびＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８５を備える。フラッシュメモリ８４およびＤＲＡＭ８５は、ＣＰＵ８１に接続される。フラッシュメモリ８４は、主に、本体装置２に保存される各種のデータ（プログラムであってもよい）を記憶するために用いられるメモリである。ＤＲＡＭ８５は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【００６２】
本体装置２は、スロットインターフェース（以下、「Ｉ／Ｆ」と略記する。）９１を備える。スロットＩ／Ｆ９１は、ＣＰＵ８１に接続される。スロットＩ／Ｆ９１は、第１スロット２３に接続され、第１スロット２３に装着された第１の種類の記憶媒体（例えば、専用メモリカード）に対するデータの読み出しおよび書き込みを、ＣＰＵ８１の指示に応じて行う。
【００６３】
ＣＰＵ８１は、フラッシュメモリ８４およびＤＲＡＭ８５、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【００６４】
本体装置２は、ネットワーク通信部８２を備える。ネットワーク通信部８２は、ＣＰＵ８１に接続される。ネットワーク通信部８２は、ネットワークを介して外部の装置と通信（具体的には、無線通信）を行う。本実施形態においては、ネットワーク通信部８２は、第１の通信態様としてＷｉ−Ｆｉの規格に準拠した方式により、無線ＬＡＮに接続して外部装置と通信を行う。また、ネットワーク通信部８２は、第２の通信態様として所定の通信方式（例えば、独自プロトコルによる通信や、赤外線通信）により、同種の他の本体装置２との間で無線通信を行う。なお、上記第２の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置２との間で無線通信可能であり、複数の本体装置２の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【００６５】
本体装置２は、コントローラ通信部８３を備える。コントローラ通信部８３は、ＣＰＵ８１に接続される。コントローラ通信部８３は、左コントローラ３および／または右コントローラ４と無線通信を行う。本体装置２と左コントローラ３および右コントローラ４との通信方式は任意であるが、本実施形態においては、コントローラ通信部８３は、左コントローラ３との間および右コントローラ４との間で、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信を行う。
【００６６】
ＣＰＵ８１は、上述の左側端子１７、右側端子２１、および、下側端子２７に接続される。ＣＰＵ８１は、左コントローラ３と有線通信を行う場合、左側端子１７を介して左コントローラ３へデータを送信するとともに、左側端子１７を介して左コントローラ３から操作データを受信する。また、ＣＰＵ８１は、右コントローラ４と有線通信を行う場合、右側端子２１を介して右コントローラ４へデータを送信するとともに、右側端子２１を介して右コントローラ４から操作データを受信する。また、ＣＰＵ８１は、クレードルと通信を行う場合、下側端子２７を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置２は、左コントローラ３および右コントローラ４との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ３および右コントローラ４が本体装置２に装着された一体型装置または本体装置２単体がクレードルに装着された場合、本体装置２は、クレードルを介してデータ（例えば、画像データや音声データ）を据置型モニタ等に出力することができる。
【００６７】
ここで、本体装置２は、複数の左コントローラ３と同時に（換言すれば、並行して）通信を行うことができる。また、本体装置２は、複数の右コントローラ４と同時に（換言すれば、並行して）通信を行うことができる。したがって、ユーザは、複数の左コントローラ３および複数の右コントローラ４を用いて本体装置２に対する入力を行うことができる。
【００６８】
本体装置２は、タッチパネル１３の制御を行う回路であるタッチパネルコントローラ８６を備える。タッチパネルコントローラ８６は、タッチパネル１３とＣＰＵ８１との間に接続される。タッチパネルコントローラ８６は、タッチパネル１３からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、ＣＰＵ８１へ出力する。
【００６９】
また、ディスプレイ１２は、ＣＰＵ８１に接続される。ＣＰＵ８１は、（例えば、上記の情報処理の実行によって）生成した画像および／または外部から取得した画像をディスプレイ１２に表示する。
【００７０】
本体装置２は、コーデック回路８７およびスピーカ（具体的には、左スピーカおよび右スピーカ）８８を備える。コーデック回路８７は、スピーカ８８および音声入出力端子２５に接続されるとともに、ＣＰＵ８１に接続される。コーデック回路８７は、スピーカ８８および音声入出力端子２５に対する音声データの入出力を制御する回路である。
【００７１】
また、本体装置２は、加速度センサ８９を備える。本実施形態においては、加速度センサ８９は、所定の３軸（例えば、図１に示すｘｙｚ軸）方向に沿った加速度の大きさを検出する。なお、加速度センサ８９は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。
【００７２】
また、本体装置２は、角速度センサ９０を備える。本実施形態においては、角速度センサ９０は、所定の３軸（例えば、図１に示すｘｙｚ軸）回りの角速度を検出する。なお、角速度センサ９０は、１軸回りあるいは２軸回りの角速度を検出するものであってもよい。
【００７３】
上記の加速度センサ８９および角速度センサ９０は、ＣＰＵ８１に接続され、加速度センサ８９および角速度センサ９０の検出結果は、ＣＰＵ８１へ出力される。ＣＰＵ８１は、上記の加速度センサ８９および角速度センサ９０の検出結果に基づいて、本体装置２の動きおよび／または姿勢に関する情報を算出することが可能である。
【００７４】
本体装置２は、電力制御部９７およびバッテリ９８を備える。電力制御部９７は、バッテリ９８およびＣＰＵ８１に接続される。また、図示しないが、電力制御部９７は、本体装置２の各部（具体的には、バッテリ９８の電力の給電を受ける各部、左側端子１７、および右側端子２１）に接続される。電力制御部９７は、ＣＰＵ８１からの指令に基づいて、バッテリ９８から上記各部への電力供給を制御する。
【００７５】
また、バッテリ９８は、下側端子２７に接続される。外部の充電装置（例えば、クレードル）が下側端子２７に接続され、下側端子２７を介して本体装置２に電力が供給される場合、供給された電力がバッテリ９８に充電される。
【００７６】
図７は、本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図である。なお、本体装置２に関する内部構成の詳細については、図６で示しているため図７では省略している。
【００７７】
左コントローラ３は、本体装置２との間で通信を行う通信制御部１０１を備える。図７に示すように、通信制御部１０１は、端子４２を含む各構成要素に接続される。本実施形態においては、通信制御部１０１は、端子４２を介した有線通信と、端子４２を介さない無線通信との両方で本体装置２と通信を行うことが可能である。通信制御部１０１は、左コントローラ３が本体装置２に対して行う通信方法を制御する。すなわち、左コントローラ３が本体装置２に装着されている場合、通信制御部１０１は、端子４２を介して本体装置２と通信を行う。また、左コントローラ３が本体装置２から外されている場合、通信制御部１０１は、本体装置２（具体的には、コントローラ通信部８３）との間で無線通信を行う。コントローラ通信部８３と通信制御部１０１との間の無線通信は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）の規格に従って行われる。
【００７８】
また、左コントローラ３は、例えばフラッシュメモリ等のメモリ１０２を備える。通信制御部１０１は、例えばマイコン（マイクロプロセッサとも言う）で構成され、メモリ１０２に記憶されるファームウェアを実行することによって各種の処理を実行する。
【００７９】
左コントローラ３は、各ボタン１０３（具体的には、ボタン３３〜３９、４３、４４、４６、４７）を備える。また、左コントローラ３は、アナログスティック（図７では「スティック」と記載する）３２を備える。各ボタン１０３およびアナログスティック３２は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部１０１へ出力する。
【００８０】
左コントローラ３は、慣性センサを備える。具体的には、加速度センサ１０４を備える。また、角速度センサ１０５を備える。本実施形態においては、加速度センサ１０４は、所定の３軸（例えば、図４に示すｘｙｚ軸）方向に沿った加速度の大きさを検出する。なお、加速度センサ１０４は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサ１０５は、所定の３軸（例えば、図４に示すｘｙｚ軸）回りの角速度を検出する。なお、角速度センサ１０５は、１軸回りあるいは２軸回りの角速度を検出するものであってもよい。加速度センサ１０４および角速度センサ１０５は、それぞれ通信制御部１０１に接続される。そして、加速度センサ１０４および角速度センサ１０５の検出結果は、適宜のタイミングで繰り返し通信制御部１０１へ出力される。
【００８１】
通信制御部１０１は、各入力部（具体的には、各ボタン１０３、アナログスティック３２、各センサ１０４および１０５）から、入力に関する情報（具体的には、操作に関する情報、または、センサによる検出結果）を取得する。通信制御部１０１は、取得した情報（または取得した情報に所定の加工を行った情報）を含む操作データを本体装置２へ送信する。なお、操作データは、所定時間に１回の割合で繰り返し送信される。なお、入力に関する情報が本体装置２へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【００８２】
上記操作データが本体装置２へ送信されることによって、本体装置２は、左コントローラ３に対して行われた入力を得ることができる。すなわち、本体装置２は、各ボタン１０３およびアナログスティック３２に対する操作を、操作データに基づいて判別することができる。また、本体装置２は、左コントローラ３の動きおよび／または姿勢に関する情報を、操作データ（具体的には、加速度センサ１０４および角速度センサ１０５の検出結果）に基づいて算出することができる。
【００８３】
左コントローラ３は、振動によってユーザに通知を行うための振動子１０７を備える。本実施形態においては、振動子１０７は、本体装置２からの指令によって制御される。すなわち、通信制御部１０１は、本体装置２からの上記指令を受け取ると、当該指令に従って振動子１０７を駆動させる。ここで、左コントローラ３は、コーデック部１０６を備える。通信制御部１０１は、上記指令を受け取ると、指令に応じた制御信号をコーデック部１０６へ出力する。コーデック部１０６は、通信制御部１０１からの制御信号から振動子１０７を駆動させるための駆動信号を生成して振動子１０７へ与える。これによって振動子１０７が動作する。
【００８４】
振動子１０７は、より具体的にはリニア振動モータである。リニア振動モータは、回転運動をする通常のモータと異なり、入力される電圧に応じて所定方向に駆動されるため、入力される電圧の波形に応じた振幅、周波数で振動をさせることができる。本実施形態において、本体装置２から左コントローラ３に送信される振動制御信号は、単位時間ごとに周波数と振幅とを表すデジタル信号であってよい。別の実施形態においては、波形そのものを示す情報を送信するようにしてもよいが、振幅と周波数だけを送信することで通信データ量を削減することができる。また、さらにデータ量を削減するため、そのときの振幅と周波数の数値に替えて、前回の値からの差分だけを送信するようにしてもよい。この場合、コーデック部１０６は、通信制御部１０１から取得される振幅と周波数の値を示すデジタル信号をアナログの電圧の波形に変換し、当該波形に合わせて電圧を入力することで振動子１０７を駆動させる。したがって、本体装置２は、単位時間ごとに送信する振幅および周波数を変えることによって、そのときに振動子１０７を振動させる振幅と周波数を制御することができる。なお、本体装置２から左コントローラ３に送信される振幅と周波数は、１つに限らず、２つ以上送信するようにしてもよい。その場合、コーデック部１０６は、受信された複数の振幅と周波数それぞれが示す波形を合成することで、振動子１０７を制御する電圧の波形を生成することができる。
【００８５】
左コントローラ３は、電力供給部１０８を備える。本実施形態において、電力供給部１０８は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ３の各部（具体的には、バッテリの電力の給電を受ける各部）に接続される。
【００８６】
図７に示すように、右コントローラ４は、本体装置２との間で通信を行う通信制御部１１１を備える。また、右コントローラ４は、通信制御部１１１に接続されるメモリ１１２を備える。通信制御部１１１は、端子６４を含む各構成要素に接続される。通信制御部１１１およびメモリ１１２は、左コントローラ３の通信制御部１０１およびメモリ１０２と同様の機能を有する。したがって、通信制御部１１１は、端子６４を介した有線通信と、端子６４を介さない無線通信（具体的には、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信）との両方で本体装置２と通信を行うことが可能であり、右コントローラ４が本体装置２に対して行う通信方法を制御する。
【００８７】
右コントローラ４は、左コントローラ３の各入力部と同様の各入力部を備える。具体的には、各ボタン１１３、アナログスティック５２、慣性センサ（加速度センサ１１４および角速度センサ１１５）を備える。これらの各入力部については、左コントローラ３の各入力部と同様の機能を有し、同様に動作する。
【００８８】
また、右コントローラ４は、振動子１１７およびコーデック部１１６を備える。振動子１１７およびコーデック部１１６は、左コントローラ３の振動子１０７およびコーデック部１０６と同様に動作する。すなわち、通信制御部１１１は、本体装置２からの指令に従って、コーデック部１１６を用いて振動子１１７を動作させる。
【００８９】
右コントローラ４は、電力供給部１１８を備える。電力供給部１１８は、左コントローラ３の電力供給部１０８と同様の機能を有し、同様に動作する。
【００９０】
（本実施形態のゲームにおける振動制御の概要）
次に、上述した本体装置２およびコントローラを用いて行われるゲームについて説明する。本実施形態では、ゲームの実行中に、左右のコントローラ３，４に設けられた振動子１０７，１１７が振動する。以下、本実施形態のゲームおよび振動子の振動制御について説明する。
【００９１】
（第１のゲーム）
図８は、第１のゲームの概要を示す図である。第１のゲームは、プレイヤがコントローラをシェーバーと見立てて、仮想的に髭をそるゲームである。図８に示されるように、仮想空間には各コントローラに対応する顔オブジェクト７０とシェーバーオブジェクト７２とが配置されている。顔オブジェクト７０の表面には複数の髭オブジェクト７１が配置される。シェーバーオブジェクト７２の姿勢は、コントローラの現実空間における姿勢と連動する。プレイヤがコントローラの姿勢を変化させると、シェーバーオブジェクト７２の姿勢が変化し、シェーバーオブジェクト７２の先端が、顔オブジェクト７０の表面に沿うように動く。シェーバーオブジェクト７２の先端が髭オブジェクト７１に当たると、髭オブジェクト７１が剃られる。各プレイヤはそれぞれコントローラ３，４を用いて、顔オブジェクト７０の表面に配置された髭オブジェクト７１をそり、所定時間内により多くの髭オブジェクト７１を剃ったプレイヤが勝利となる。別の例においては、１人で髭をそるゲームであってもよい。
【００９２】
第１のゲームが行われている間、音声が出力されるとともにコントローラが振動する。本体装置２の記憶装置（例えば、スロット２３に装着された外部記憶媒体またはフラッシュメモリ８４）には、第１のゲームに用いられる音声を出力するための音声データと、コントローラの振動子を振動させるための振動パターンデータとが予め記憶されている。本体装置２のＣＰＵ８１は、ゲームプログラムを実行するときに、記憶装置に記憶された振動パターンデータを読み出してメモリ（ＤＲＡＭ８５）に一時的に記憶しておき、後述するゲーム処理に応じてメモリから振動パターンデータを読み取って振動子を振動させるための信号をコントローラに送信する。
【００９３】
図９は、本体装置２の記憶装置に予め記憶される第１のゲームに用いられるデータの一例を示す図である。
【００９４】
図９に示されるように、本体装置２には、音声信号を生成するための音声データＤ２０１と、コントローラの振動子を振動させるための振動パターンデータＤ２０２とが記憶される。音声データＤ２０１は、第１音声データと、第２音声データとを含む。第１音声データは、音声信号を生成するための音声データである。第１音声データが再生されると、現実のシェーバーが動作しているときに発生するような第１音声（シェーバーのモータが回転または往復運動するときに発生するような音声）がスピーカ８８から出力される。第２音声データは、髭が剃られたときに発生するような音声で、たとえば現実のシェーバーによって髭が剃られたときに発生する音声を録音して得られた音声データである。第２音声データが再生されると、現実のシェーバーによって髭が剃られたときに発生する第２音声がスピーカ８８から出力される。
【００９５】
振動パターンデータＤ２０２は、振動パターンデータＰ１と振動パターンデータＰ２とを含む。振動パターンデータＰ１は、振動波形を生成するための振動パターンデータであり、現実のシェーバーが動作しているときに発生するような振動（シェーバーのモータが回転または往復運動しているときに発生するような振動）を振動子に行わせるためのデータである。なお、本実施形態の振動子は、所定の共振周波数を有しており、共振周波数を含む所定の周波数帯で振動することができる。振動子は、入力された周波数および振幅で振動するように構成されており、所定の共振周波数が入力された場合に、最も大きく振動し易い。振動パターンデータＰ１は、所定の周波数および振幅を設定するためのデータである。振動パターンデータＰ１は、共振周波数（又はその近辺の周波数）で振動子を振動させる振動パターンデータであってもよい。
【００９６】
また、振動パターンデータＰ２は、現実の髭が剃られたときに発生するような振動を振動子に行わせるためのデータである。振動パターンデータＰ２は、上記第２音声をもとにして生成される振動パターンデータである。具体的には、振動パターンデータＰ２は、次の２つのステップによって得られる。第１のステップでは、現実のシェーバーによって髭が剃られたときの音声（上記第２音声）を録音する。次の第２のステップでは、録音した第２音声の波形を所定のコンバータを用いて変換して振動波形を生成する。例えば、所定のコンバータを用いて、第２音声における特定の周波数成分（例えば、第１の周波数以下の成分および第２の周波数以上の成分）がカットされ、所定の周波数帯の振動波形が生成される。ここで、「所定の周波数帯」は、振動子が振動可能な周波数帯である。このように、振動パターンデータＰ２は、現実のシェーバーによって髭が剃られたときに発生する第２音声をもとに生成された振動パターンデータである。
【００９７】
ここでは、このような音声波形をもとに生成された振動波形を「音声振動波形」ということにする。音声振動波形は、その元となった音声の波形と一致または類似する波形を有する。
【００９８】
なお、本実施形態では、振動パターンデータＰ１は、振動パターンデータＰ２とは異なり、音声波形をもとに生成された振動パターンデータではないものとするが、振動パターンデータＰ１も音声波形をもとに生成されたデータであってもよい。
【００９９】
図１０は、第１のゲームにおける振動制御の機能ブロック図の一例である。
【０１００】
図１０に示されるように、本体装置２は、姿勢算出部１２１と、判定部１２２と、第１波形生成部１２３と、音声振動波形生成部１２４と、出力部１２５と、音声生成部１２６とを備える。これら各部１２１〜１２６は、本体装置２のＣＰＵ８１が所定のゲームプログラム（例えばスロット２３に装着された記憶媒体又はフラッシュメモリ８４に記憶されたゲームプログラム）を実行することによって実現される。また、上述のように、左コントローラ３は慣性センサ（具体的には、加速度センサ１０４および角速度センサ１０５）を備え、右コントローラ４は慣性センサ（具体的には、加速度センサ１１４および角速度センサ１１５）を備える。
【０１０１】
姿勢算出部１２１は、コントローラ（３，４）の慣性センサからのデータに基づいて、コントローラの姿勢を算出する。具体的には、姿勢算出部１２１は、左コントローラ３の角速度センサ１０５からのデータに基づいて左コントローラ３の姿勢（傾き）を算出する。また、姿勢算出部１２１は、左コントローラ３の加速度センサ１０４からのデータに基づいて左コントローラ３の姿勢を算出してもよい。同様に、姿勢算出部１２１は、右コントローラ４の姿勢（傾き）を算出する。
【０１０２】
判定部１２２は、各コントローラの先端の位置と、顔オブジェクト７０の表面に配置された髭オブジェクト７１の位置とに基づいて、各コントローラの先端が髭オブジェクト７１に当たったか否かを判定する。具体的には、判定部１２２は、姿勢算出部１２１によって算出された左コントローラ３の姿勢に基づいて、左コントローラ３の先端の位置を算出する。判定部１２２は、算出した左コントローラ３の先端の位置が、左コントローラ３に対応する顔オブジェクト７０の表面に配置された髭オブジェクト７１の位置と一致するか否かを判定することにより、左コントローラ３の先端が髭オブジェクト７１に当たったか否かを判定する。同様に、判定部１２２は、姿勢算出部１２１によって算出された右コントローラ４の姿勢に基づいて、右コントローラ４の先端が右コントローラ４に対応する顔オブジェクト７０の表面に配置された髭オブジェクト７１に当たったか否かを判定する。
【０１０３】
第１波形生成部１２３は、判定部１２２の判定結果に基づいて、第１振動波形を示す信号を生成する。また、第１波形生成部１２３は、第２振動波形を示す信号を生成する。具体的には、第１波形生成部１２３は、上記振動パターンデータＰ１に基づいて第２振動波形を示す信号を生成する。この信号がコントローラの振動子に入力されると、振動子は、現実のシェーバーが動作しているときに発生するような振動をする。第２振動波形を示す信号は、コントローラの先端が髭オブジェクト７１に当たっていないときに生成される信号であり、第１のゲームが開始されてから生成される。第１波形生成部１２３によって生成された信号は、出力部１２５に出力される。
【０１０４】
また、第１波形生成部１２３は、判定部１２２によってコントローラの先端が髭オブジェクト７１に当たったと判定された場合、振動パターンデータＰ１に基づいて第１振動波形を示す信号を生成する。具体的には、波形生成部１２２は、判定部１２２によってコントローラの先端が髭オブジェクト７１に当たったと判定された場合、振動パターンデータＰ１に基づく第２振動波形の振幅を増大させるとともに、振動パターンデータＰ１に基づく第２振動波形の周波数を変化させた第１振動波形を示す信号を生成する。すなわち、第１振動波形は、第２振動波形とほぼ同じ波形であり、周波数および振幅が変化された波形である。そして、波形生成部１２２は、生成した第１振動波形を示す信号を出力部１２５に出力する。
【０１０５】
音声振動波形生成部１２４は、所定の音声信号の波形に基づいた音声振動波形を示す信号を生成する。具体的には、音声振動波形生成部１２４は、振動パターンデータＰ２に基づいて、音声信号波形を示す信号を生成する。上述のように振動パターンデータＰ２は、実際にシェーバーを用いて髭を剃った瞬間に発生する第２音声をもとに生成された振動波形を示すデータである。この音声振動波形を示す信号が振動子に入力されると、振動子は、現実のシェーバーを用いて髭を剃ったときに発生する第２音声の波形に一致または類似した振動をする。音声振動波形生成部１２４は、生成した音声信号波形を示す信号を出力部１２５に出力する。
【０１０６】
出力部１２５は、第１波形生成部１２３によって生成された第１振動波形を示す信号と、音声振動波形生成部１２４によって生成された音声振動波形を示す信号とを合成した合成波形を示す信号をコントローラの振動子に出力する。また、出力部１２５は、音声生成部１２６が生成した音声信号をスピーカ８８に出力する。
【０１０７】
具体的には、出力部１２５は、判定部１２２によってコントローラの先端が髭オブジェクト７１に当たったと判定されていないときには、第１波形生成部１２３によって生成された第２振動波形を示す信号を振動子に出力する。また、出力部１２５は、音声生成部１２６から出力される第１音声信号をスピーカ８８に出力する。
【０１０８】
一方、判定部１２２によってコントローラの先端が髭オブジェクト７１に当たったと判定された場合、音声振動波形生成部１２４によって音声振動波形を示す信号が生成される。また、判定部１２２によってコントローラの先端が髭オブジェクト７１に当たったと判定された場合、音声生成部１２６によって第２音声を示す第２音声信号が生成される。このため、出力部１２５は、判定部１２２によってコントローラの先端が髭オブジェクト７１に当たったと判定された場合、第２音声信号をスピーカ８８に出力するとともに、第１波形生成部１２３によって生成された第１振動波形と音声振動波形生成部１２４によって生成された音声振動波形とを合成し、当該合成した合成波形を示す信号を振動子に出力する。このように、第２音声が出力されるタイミングで、第１振動波形と音声振動波形とを合成した合成波形を示す信号が振動子に出力される。これにより、第２音声が出力されるタイミングで、コントローラが、第２音声に合った振動をする。
【０１０９】
出力部１２５から１の振動波形を示す信号、又は、複数の振動波形を合成した合成波形を示す信号が出力されると、その信号に基づいてコントローラの振動子が振動する。コントローラの振動子は、周波数および振幅を指定することにより、指定された周波数および振幅で振動するように構成されている。出力部１２５は、振動の周波数と振幅とを含む信号を所定の時間間隔（例えば、５ｍ秒毎）で振動子に出力する。コントローラの振動子は、当該信号に含まれる周波数および振幅で振動する。所定の時間間隔で出力部１２５から上記信号が出力されることにより、振動子は、１つの振動波形に合う振動、又は、複数の振動波形を合成した合成波形に合う振動をする。
【０１１０】
音声生成部１２６は、音声データに基づいて音声信号を生成する。具体的には、音声生成部１２６は、第１のゲームが開始されると、第１音声データに基づいて現実のシェーバーが動作しているときに発生するような第１音声信号を生成する。この第１音声は、判定部１２２によってコントローラの先端が髭オブジェクト７１に当たったと判定されていない場合も、コントローラの先端が髭オブジェクト７１に当たったと判定された場合も生成される。音声生成部１２６によって生成された第１音声信号は、出力部１２５を介してスピーカ８８に出力される。これにより、第１音声がスピーカ８８から出力される。
【０１１１】
また、音声生成部１２６は、判定部１２２によってコントローラの先端が髭オブジェクト７１に当たったと判定された場合、第２音声データに基づいて第２音声信号を生成する。音声生成部１２６によって生成された第２音声信号は、出力部１２５を介してスピーカ８８に出力される。これにより、現実のシェーバーによって髭が剃られた瞬間に発生するような第２音声がスピーカ８８から出力される。
【０１１２】
なお、図１０に示される姿勢算出部１２１、判定部１２２、第１波形生成部１２３、音声振動波形生成部１２４、出力部１２５、音声生成部１２６、慣性センサ、および振動子は、本体装置２およびコントローラの何れに配置されてもよい。例えば、第１波形生成部１２３、音声振動波形生成部１２４および出力部１２５が、コントローラに設けられてもよい。この場合、振動波形を示す振動パターンデータは、コントローラに予め記憶されてもよい。そして、本体装置２は、振動波形を示す信号（振動パターンデータを指定する信号）を出力し、コントローラは、受信した信号に対応する振動パターンデータを読み取って振動子を振動させてもよい。また、姿勢算出部１２１、判定部１２２、第１波形生成部１２３、音声振動波形生成部１２４、出力部１２５、音声生成部１２６、慣性センサ、および振動子の全てが、本体装置２に設けられてもよいし、コントローラに設けられてもよい。
【０１１３】
次に、シェーバーオブジェクト７２の動きとシェーバーオブジェクト７２が髭オブジェクト７１に当たる前後の振動について説明する。
【０１１４】
図１１は、シェーバーオブジェクト７２が動いてシェーバーオブジェクト７２が髭オブジェクト７１に当たる様子を示す図である。図１２は、シェーバーオブジェクト７２が髭オブジェクト７１に当たる前の振動波形とシェーバーオブジェクト７２が髭オブジェクト７１に当たったときの振動波形とを示す図である。なお、以下では、左コントローラ３を用いて第１のゲームが行われる場合について説明するが、右コントローラ４が用いられる場合も同様である。
【０１１５】
図１１に示されるように、第１のゲームが開始された時点ｔ０では、シェーバーオブジェクト７２の先端は顔オブジェクト７０の表面上の所定位置にある。プレイヤによって左コントローラ３の姿勢が変化されると、その左コントローラ３の姿勢に応じてシェーバーオブジェクト７２の姿勢が変化し、シェーバーオブジェクト７２の先端が顔オブジェクト７０の表面に沿って移動する。時点ｔ１において、シェーバーオブジェクト７２の先端が顔オブジェクト７０の表面に配置された髭オブジェクト７１ａに当たる。
【０１１６】
図１２に示されるように、ゲームの開始時点ｔ０からシェーバーオブジェクト７２が髭オブジェクト７１ａに当たる時点ｔ１までは、第１波形生成部１２３は、振動パターンデータＰ１に基づいて第２振動波形を示す信号を生成する。第２振動波形を示す信号は、出力部１２５に出力される。時点ｔ０〜ｔ１の間、音声振動波形生成部１２４によって音声振動波形は生成されない。出力部１２５は、第１波形生成部１２３からの第２振動波形を示す信号を左コントローラ３に出力し、この信号に応じて左コントローラ３の振動子１０７が振動する。出力部１２５は、例えば５ｍ秒毎に振動波形を示す信号（周波数および振幅）をコントローラに出力する。振動子１０７は、出力部１２５からの信号に応じた周波数および振幅で振動する。これにより、振動子１０７は、出力部１２５から出力される振動波形に合う振動をする。
【０１１７】
また、出力部１２５は、時点ｔ０からｔ１の間、第１音声データに基づいて生成された第１音声信号をスピーカ８８に出力する。これにより、現実のシェーバーが動作しているときに発生するような第１音声がスピーカ８８から出力される。
【０１１８】
図１２に示されるように、シェーバーオブジェクト７２が髭オブジェクト７１ａに当たった時点ｔ１において、音声振動波形生成部１２４は、振動パターンデータＰ２に基づいて音声振動波形を示す信号を生成する。振動パターンデータＰ２に基づく音声振動波形を示す信号は、例えば時点ｔ１からｔ２の間、生成される。
【０１１９】
また、シェーバーオブジェクト７２が髭オブジェクト７１ａに当たった時点ｔ１において、第１波形生成部１２３は、振動パターンデータＰ１に基づいて第１振動波形を示す信号を生成する。第１振動波形は、第２振動波形とほぼ同じ波形であり、第２振動波形の周波数および振幅を変化させた波形である。第１振動波形を示す信号は、例えば時点ｔ１からｔ２の間、生成される。
【０１２０】
図１２に示されるように、音声振動波形は、第１振動波形とは異なる波形であり、第１振動波形（および第２振動波形）よりも振幅の大きな波形である。
【０１２１】
なお、第１振動波形を示す信号が生成される期間は、音声振動波形を示す信号が生成される期間よりも短くてもよいし、長くてもよい。また、第１振動波形は、第２振動波形と全く同じ波形（周波数および振幅が同じ）であってもよい。また、第１振動波形は、第２振動波形と全く異なる波形であってもよい。すなわち、第１振動波形は、振動パターンデータＰ１とは異なる振動パターンデータに基づいて生成される波形であってもよい。また、第１振動波形は、第２振動波形の周波数および振幅のうちの何れか一方を変化させた波形であってもよい。
【０１２２】
出力部１２５は、時点ｔ１からｔ２の間、第１波形生成部１２３によって生成された第１振動波形と、音声振動波形生成部１２４によって生成された音声振動波形とを合成し、当該合成波形を示す信号を生成する。そして、出力部１２５は、合成波形を示す信号を左コントローラ３の振動子１０７に出力する。これにより、時点ｔ１からｔ２の間は、第１振動波形と音声振動波形とを合成した合成波形に基づく振動が行われる。
【０１２３】
また、時点ｔ１からｔ２の間、音声生成部１２６は、第２音声データに基づいて第２音声信号を生成する。出力部１２５は、生成された第２音声信号をスピーカ８８に出力する。これにより、時点ｔ１において、現実のシェーバーによって髭が剃られたときに発生する第２音声がスピーカ８８から出力される。なお、時点ｔ１からｔ２の間も、時点ｔ０からｔ１の間と同様に、第１音声データに基づいて、現実のシェーバーが動作しているときに発生するような第１音声が継続して出力される。なお、時点ｔ１からｔ２の間、時点ｔ０からｔ１の間に出力される第１音声を変化させた音声が出力されてもよい。
【０１２４】
図１１に示されるように、シェーバーオブジェクト７２が髭オブジェクト７１ａに当たった後、シェーバーオブジェクト７２が更に移動し、時点ｔ３においてシェーバーオブジェクト７２が髭オブジェクト７１ｂに当たる。
【０１２５】
図１２に示されるように、時点ｔ２からｔ３の間、第１波形生成部１２３は、振動パターンデータＰ１に基づいて第２振動波形を示す信号を生成する。また、時点ｔ２からｔ３の間も、第１音声が継続して出力される。
【０１２６】
シェーバーオブジェクト７２が髭オブジェクト７１ｂに当たった時点ｔ３において、音声振動波形生成部１２４は、上記と同様に、振動パターンデータＰ２に基づいて音声振動波形を示す信号を生成する。振動パターンデータＰ２に基づく音声振動波形を示す信号は、例えば時点ｔ３からｔ４の間、生成される。
【０１２７】
また、シェーバーオブジェクト７２が髭オブジェクト７１ｂに当たった時点ｔ３において、第１波形生成部１２３は、振動パターンデータＰ１に基づいて第１振動波形を示す信号を生成する。第１振動波形を示す信号も、時点ｔ３からｔ４の間、生成される。
【０１２８】
出力部１２５は、上記と同様に、時点ｔ３からｔ４の間、第１波形生成部１２３によって生成された第１振動波形と、音声振動波形生成部１２４によって生成された音声振動波形とを合成し、当該合成波形を示す信号を出力する。
【０１２９】
また、時点ｔ３において、上記と同様に、現実のシェーバーによって髭が剃られたときに発生する第２音声がスピーカ８８から出力される。なお、時点ｔ３からｔ４の間も、第１音声データに基づいて、現実のシェーバーが動作しているときに発生するような第１音声が継続して出力される。
【０１３０】
図１２から明らかなように、振動子は、時点ｔ０からｔ１までの間は、比較的小さく振動し、シェーバーオブジェクト７２が髭オブジェクト７１ａに当たった時点ｔ１において、大きく振動する。また、シェーバーオブジェクト７２が髭オブジェクト７１ａに当たった時点ｔ１で第２音声の出力が開始される。また、振動子は、時点ｔ２からｔ３までの間は、比較的小さく振動し、シェーバーオブジェクト７２が髭オブジェクト７１ｂに当たった時点ｔ３において、大きく振動する。この時点ｔ３で第２音声が出力される。
【０１３１】
これによりプレイヤは、シェーバーオブジェクト７２が髭オブジェクト７１に当たったことを音声により認識するとともに、振動により感じることができる。具体的には、シェーバーオブジェクト７２が髭オブジェクト７１に当たったときには、現実のシェーバーが髭に当たったときに発生する第２音声が再生されるとともに、当該第２音声をもとにして生成された音声振動波形が再生される。このため、髭を剃ったときの感覚をプレイヤに感じさせることができる。
【０１３２】
シェーバーオブジェクト７２が同時に複数の髭オブジェクト７１に当たる場合もある。また、シェーバーオブジェクト７２がある髭オブジェクト７１に当たってから、当該ある髭オブジェクト７１に当たったことによって発生する音声振動波形の出力が終了するまでに、シェーバーオブジェクト７２が別の髭オブジェクト７１に当たる場合もある。このように、シェーバーオブジェクト７２が複数の髭オブジェクト７１に当たることによって同時に複数の音声振動波形を示す信号が生成される場合、出力部１２５は、それぞれの音声振動波形を合成する。また、出力部１２５は、シェーバーオブジェクト７２が各髭オブジェクト７１に当たったことに応じて、第２音声信号をスピーカに出力する。例えば、シェーバーオブジェクト７２が同時に２つの髭オブジェクト７１に当たる場合、各音声振動波形が合成され、合成波形の振幅が大きくなる。これにより、プレイヤはより強い振動を感じる。なお、出力部１２５が合成する振動波形の数には上限があってもよい。
【０１３３】
以上のように、第１のゲームでは、振動パターンデータＰ１に基づいて第２振動波形が生成され、シェーバーが動作するときの振動が常に行われる。第２振動波形による振動が行われているときにシェーバーオブジェクト７２が髭オブジェクト７１に当たると、第２音声が出力されるタイミングで、第２振動波形の周波数および振幅を変化させた第１振動波形と、第２音声に応じた音声振動波形とが合成された合成波形が生成される。
【０１３４】
このように、第２音声が出力されるタイミングで、第２音声とその第２音声に応じた音声振動波形と第１振動波形とを合成した合成波形が出力されることにより、音声と、その音声に合った振動をプレイヤに感じさせることができ、よりリアルな体験をさせることができる。
【０１３５】
（第２のゲーム）
次に、第２のゲームについて説明する。第２のゲームは、例えばスパークリングワインが入った瓶を振り、瓶内の圧力が高まって瓶の栓が抜けるようなことを再現したゲームである。例えば、複数のプレイヤが１つのコントローラを順に振り、所定の条件が満たされた場合に、コントローラが、瓶の栓が抜けて内部のスパークリングワインが噴き出すときに感じるような振動をする。
【０１３６】
図１３は、本体装置２の記憶装置に予め記憶される第２のゲームに用いられるデータの一例を示す図である。
【０１３７】
図１３に示されるように、本体装置２には、音声信号を生成するための音声データＤ２０３と、コントローラの振動子を振動させるための振動パターンデータＤ２０４とが記憶される。音声データＤ２０３は、第３音声データと、第４音声データとを含む。第３音声データは、瓶の栓が抜けたときの音声を生成するための音声データである。第３音声データが再生されると、瓶内の圧力が高まって瓶の栓が抜けたときに発生するような大きな音声（第３音声）がスピーカ８８から出力される。第４音声データは、瓶内のスパークリングワインが噴き出すときに発生する音声を生成するための音声データである。第４音声データが再生されると、瓶の栓が抜けて内部のスパークリングワインが噴き出すときに発生する第４音声がスピーカ８８から出力される。第４音声は、スパークリングワインが噴き出すときに発生する音声を録音して得られた音声データである。
【０１３８】
また、振動パターンデータＤ２０４は、振動パターンデータＰ３と、振動パターンデータＰ４と、振動パターンデータＰ５とを含む。
【０１３９】
振動パターンデータＰ３は、振動波形を生成するための振動パターンデータであり、瓶の栓が抜けたときに発生する大きな振動を振動子に行わせるためのデータである。具体的には、振動パターンデータＰ３は、振動子を大きく振動させるために、振動子が有する所定の共振周波数（又はその近辺の周波数）で振動子を振動させるためのデータである。
【０１４０】
また、振動パターンデータＰ４は、スパークリングワインが噴き出すときに発生するような振動を振動子に行わせるためのデータである。具体的には、振動パターンデータＰ４は、スパークリングワインが噴き出すときに発生する第４音声を録音し、当該録音した第４音声の波形を所定のコンバータを用いて変換することによって得られたデータである。すなわち、振動パターンデータＰ４は、瓶の栓が抜けて内部のスパークリングワインが噴き出すときに発生する第４音声をもとに生成された振動パターンデータであり、音声振動波形を生成するためのデータである。
【０１４１】
また、振動パターンデータＰ５は、振動波形を生成するための振動パターンデータであり、上記振動パターンデータＰ３およびＰ４とは異なるデータである。
【０１４２】
図１４は、第２のゲームにおける振動制御の機能ブロック図の一例である。以下では、左コントローラ３を用いて第２のゲームが行われるものとする。
【０１４３】
図１４に示されるように、本体装置２は、動き算出部１３１と、判定部１２２と、第１波形生成部１２３と、音声振動波形生成部１２４と、出力部１２５と、音声生成部１２６とを備える。図１４に示す第２のゲームにおける構成も、図１０で示した第１のゲームにおける構成と基本的には同じである。以下では、第１のゲームにおける構成と異なる部分について主に説明する。
【０１４４】
動き算出部１３１は、左コントローラ３の慣性センサからのデータに基づいて、コントローラの動きを算出する。具体的には、動き算出部１３１は、コントローラの加速度センサ１０４からのデータに基づいて、コントローラが振られているか否か、振られているときの振り強さを算出する。例えば、動き算出部１３１は、加速度センサ１０４からのデータに基づいて、コントローラが振られたことによって検出された加速度値（重力を除く加速度値）を算出する。動き算出部１３１は、算出した加速度値を判定部１２２および第１波形生成部１２３に出力する。
【０１４５】
判定部１２２は、動き算出部１３１によって算出されたコントローラの動きに基づいて、所定の条件が満たされたか否かを判定する。例えば、判定部１２２は、動き算出部１３１から出力された加速度値を累積し、その累積値が所定の閾値を超えたか否かを判定する。
【０１４６】
第１波形生成部１２３は、判定部１２２によって所定の条件が満たされていないと判定された場合、動き算出部１３１から出力された加速度値に基づいて、第２振動波形を示す信号を生成する。また、第１波形生成部１２３は、判定部１２２によって所定の条件が満たされたと判定された場合、第１振動波形を示す信号を生成する。
【０１４７】
具体的には、第１波形生成部１２３は、判定部１２２によって所定の条件が満たされていないと判定された場合、上記振動パターンデータＰ５に基づいて、第２振動波形を示す信号を生成する。また、第１波形生成部１２３は、判定部１２２によって所定の条件が満たされたと判定された場合、上記振動パターンデータＰ３に基づいて、第１振動波形を示す信号を生成する。第１振動波形は、第２振動波形とは異なる波形であり、第２振動波形よりも大きな振幅を有する波形である。上述のように、振動パターンデータＰ３は、瓶の栓が抜けたときに発生するような大きな振動を振動子にさせるための振動パターンデータである。
【０１４８】
また、音声振動波形生成部１２４は、振動パターンデータＰ４に基づいて、音声信号波形を示す信号を生成する。上述のように振動パターンデータＰ４は、スパークリングワインが噴き出すときに発生するような振動を振動子に行わせるためのデータである。この音声信号波形を示す信号が振動子に入力されると、振動子は、スパークリングワインが噴き出すときに発生する第４音声の波形に一致または類似した振動をする。
【０１４９】
出力部１２５は、判定部１２２によって所定の条件が満たされていないと判定された場合は、振動パターンデータＰ５に基づく第２振動波形を示す信号をコントローラの振動子に出力する。また、出力部１２５は、判定部１２２によって所定の条件が満たされたと判定された場合は、第１波形生成部１２３によって生成された第１振動波形を示す信号と、音声振動波形生成部１２４によって生成された音声振動波形を示す信号とを合成した合成波形を示す信号をコントローラの振動子に出力する。また、出力部１２５は、判定部１２２によって所定の条件が満たされたと判定された場合、音声生成部１２６によって生成された第３音声信号および第４音声信号をスピーカ８８に出力する。
【０１５０】
音声生成部１２６は、判定部１２２によって所定の条件が満たされたと判定された場合、第３音声データに基づいて第３音声信号を生成するとともに、第４音声データに基づいて第４音声信号を生成する。これにより、判定部１２２によって所定の条件が満たされたと判定された場合、瓶の栓が抜けたときに発生する大きな第３音声がスピーカ８８から出力されるとともに、スパークリングワインが噴き出すときに発生する第４音声がスピーカから出力される。
【０１５１】
次に、第２のゲームが行われる場合の振動波形について説明する。図１５は、所定の条件が満たされる前後の振動波形を示す図である。
【０１５２】
図１５に示されるように、第１波形生成部１２３は、コントローラが振り始められた時点ｔ０から、振動パターンデータＰ５に基づいて第２振動波形を示す信号を生成する。この信号は出力部１２５に出力され、出力部１２５からコントローラに出力される。コントローラが継続して振られる場合、加速度センサ１０４が検出した加速度値が判定部１２２によって累積される。この加速度の累積値に応じて、第２振動波形の振幅が徐々に増加する。第２振動波形の振幅を徐々に増加させることにより、プレイヤに瓶内の圧力が徐々に高まっていくような感覚を覚えさせる。なお、プレイヤがコントローラを振ってからコントローラを振ることを止めた場合、加速度の累積値は増加しないため、第２振動波形の振幅は一定の値のままである。プレイヤがコントローラを振ることを再開した場合、加速度の累積値が増加し、第２振動波形の振幅も再び増加する。
【０１５３】
出力部１２５は、時点ｔ０からｔ１までの間、第１波形生成部１２３が生成した信号を所定の時間間隔（例えば５ｍ秒）でコントローラの振動子に出力する。これにより、振動子は、第２振動波形に合う振動をする。
【０１５４】
ここで、時点ｔ１において判定部１２２によって所定の条件が満たされたと判定された場合（加速度の累積値が所定の閾値を超えた場合）、第１波形生成部１２３は、振動パターンデータＰ５に基づく第２振動波形の生成を終了する。
【０１５５】
時点ｔ１から所定時間が経過した時点ｔ２において、第１波形生成部１２３は、振動パターンデータＰ３に基づいて第１振動波形を示す信号を生成する。図１５に示されるように、振動パターンデータＰ３に基づく第１振動波形の振幅は、振動パターンデータＰ５に基づく第２振動波形の振幅よりも大きい。第１波形生成部１２３は、第１振動波形を示す信号を時点ｔ２からｔ３までの間生成する。
【０１５６】
また、時点ｔ２において、音声振動波形生成部１２４は、振動パターンデータＰ４に基づいて、音声振動波形を示す信号を生成する。
【０１５７】
また、時点ｔ２において、音声生成部１２６によって、第３音声信号が生成されるとともに、第４音声信号が生成される。
【０１５８】
出力部１２５は、時点ｔ２からｔ３までの間、第１振動波形と音声振動波形とを合成し、合成波形を示す信号を生成する。出力部１２５は、この合成波形を示す信号を所定の時間間隔（例えば５ｍ秒）でコントローラの振動子に出力する。これにより、振動子は、合成波形に合う振動をする。２つの振動波形が合成されることによって、振動子はより大きく振動する。
【０１５９】
時点ｔ３以降も、音声振動波形生成部１２４によって音声振動波形を示す信号が継続して生成され、当該信号は、出力部１２５によってコントローラに出力される。音声振動波形の振幅は時間経過に応じて徐々に小さくなる。
【０１６０】
また、時点ｔ２において、出力部１２５は、音声生成部１２６によって生成された第３音声信号をスピーカ８８に出力するとともに、第４音声信号をスピーカ８８に出力する。これにより、判定部１２２によって所定の条件が満たされたと判定された場合、瓶の栓が抜けたときに発生するような大きな第３音声が出力されるとともに、瓶からスパークリングワインが噴き出すときに発生する第４音声が出力される。
【０１６１】
このように、第２のゲームでは、プレイヤがコントローラを振り、その振りによって検出された加速度の累積値が所定の閾値を超えた場合（時点ｔ１）、それまでに発生していた振動が一旦停止し（振動の振幅を下げ）、所定時間経過後の時点ｔ２において、大きな振動が発生するとともに、第３音声（栓が抜けたときの大きな音声）が発生する。同時に、第４音声（スパークリングワインが噴き出すときの音声）が発生するとともに、第４音声に応じた音声振動（第４音声の波形をもとに生成された振動波形）が発生する。この時点ｔ２において発生する２つの振動波形が合成されて振動子に出力される。
【０１６２】
第４音声が出力されるタイミングで、第４音声に応じた音声振動波形と第１振動波形とを合成した合成波形が出力されることにより、音声と、その音声に合った振動をプレイヤに感じさせることができ、よりリアルな体験をさせることができる。
【０１６３】
また、時点ｔ２において発生する第１振動波形による振動は、振動子がより振動し易い共振周波数を指定した振動である。振動子は、指定された周波数と振幅で振動するように構成されており、共振周波数で最も大きく（強く）振動し易い。時点ｔ２において、振動子が有する共振周波数で振動子を振動させることにより、より大きく振動子を振動させることができ、プレイヤを驚かせることができる。
【０１６４】
ここで、第１振動波形も、上記第４音声に応じた音声振動波形と同様に、瓶の栓が抜けたときに発生する音声の波形をもとにして生成した振動波形を用いることが考えられる。すなわち、実際に瓶の栓が抜けたときに発生する大きな音声を録音し、当該録音した音声の波形から音声振動波形を生成して振動パターンデータとして記憶しておき、当該振動パターンデータに基づいて第１振動波形を生成することも考えられる。しかしながら、音声を元にして生成された音声振動波形では、振動子をより大きく（強く）振動させることができない場合がある。これは、振動子が共振周波数を有し、その共振周波数において最も大きく振動し易く、音声を元にして生成された音声振動波形の周波数が振動子の共振周波数と一致しない場合は、振動子は振幅を最大限に指定したとしても、大きく振動し難いからである。
【０１６５】
しかしながら、第２のゲームでは、共振周波数を指定して振動子を振動させることにより、振動子をより大きく振動させることができる。
【０１６６】
また、第２のゲームでは、所定の条件が成立する前に第２振動波形による振動が行われ、所定の条件が成立した時点ｔ１で、当該第２振動波形による振動が停止し、所定時間経過後の時点ｔ２において第１振動波形による大きな振動が行われる。第１振動波形による大きな振動が発生する前に、一瞬振動を停止させることにより、プレイヤに大きな振動を感じさせ易くすることができる。
【０１６７】
なお、第１振動波形による大きな振動が発生する前に、振動を完全に停止させずに振幅を小さくしてもよい。
【０１６８】
（振動制御の詳細）
次に、上述した振動制御を行うための本体装置２において行われる処理の詳細について説明する。まず、コントローラから出力されるデータおよびコントローラに入力されるデータについて説明する。
【０１６９】
図１６は、コントローラから出力されるデータの一例を示す図である。図１７は、コントローラに入力されるデータの一例を示す図である。上述したゲームが行われている間、図１６に示すデータが、所定の時間間隔（例えば、５ｍ秒毎）で左コントローラ３および／または右コントローラ４から本体装置２に出力される。また、上述したゲームが行われている間、図１７に示すデータが、所定の時間間隔（例えば、５ｍ秒毎）で本体装置２から左コントローラ３および／または右コントローラ４に入力される。
【０１７０】
図１６に示されるように、コントローラから出力されるデータには、加速度データＤ３０１と角速度データＤ３０２とが含まれる。加速度データＤ３０１は、コントローラの加速度センサ（１０４、１１４）が検出した各軸方向の加速度を示すデータである。また、角速度データＤ３０２は、コントローラの角速度センサ（１０５、１１５）が検出した各軸回りの角速度を示すデータである。
【０１７１】
また、図１７に示されるように、コントローラに入力されるデータには、周波数データＤ４０１と、振幅データＤ４０２とが含まれる。周波数データＤ４０１は、コントローラの振動子（１０７、１１７）を振動させるときの周波数を指定するためのデータである。振幅データＤ４０２は、コントローラの振動子を振動させるときの振幅を指定するためのデータである。
【０１７２】
（本体装置の処理の詳細）
次に、本体装置２において行われる処理の詳細について説明する。図１８は、第１のゲームが行われる場合の本体装置２において行われる処理の詳細を示すフローチャートである。図１８に示す処理は、本体装置２のＣＰＵ８１が、記憶装置に記憶された所定のゲームプログラムを実行することにより行われる。なお、本体装置２は、図１８に示す処理を所定の時間間隔（例えば、５ｍ秒毎）で実行する。
【０１７３】
図１８に示されるように、本体装置２は、各コントローラから図１６に示すデータを取得する（ステップＳ１）。次に、本体装置２は、ステップＳ１で各コントローラから取得したデータに基づいて、各コントローラの姿勢を算出する（ステップＳ２）。具体的には、本体装置２は、加速度データＤ３０１及び／又は角速度データＤ３０２に基づいて、各コントローラの姿勢を算出する。
【０１７４】
次に、本体装置２は、ステップＳ２で算出した各コントローラの姿勢に基づいて、シェーバーオブジェクト７２が髭オブジェクト７１に当たったか否かを判定する（ステップＳ３）。具体的には、本体装置２は、ステップＳ２で算出した各コントローラの姿勢に基づいて、各コントローラに対応するシェーバーオブジェクト７２の先端の位置を算出し、算出した位置が、髭オブジェクト７１の位置と一致するか否かを判定する。
【０１７５】
シェーバーオブジェクト７２が髭オブジェクト７１に当たっていないと判定した場合（ステップＳ３：ＮＯ）、本体装置２は、第２振動波形を示す信号を生成する（ステップＳ４）。具体的には、本体装置２は、ステップＳ３の処理を所定の時間間隔（５ｍ秒）で実行し、予め記憶された振動パターンデータＰ１を時間経過に応じて順次読み取り、振動パターンデータＰ１に基づく振動を順次再生する。なお、本体装置２は、振動パターンデータＰ１に基づく振動の再生が終了した場合、再び、振動パターンデータＰ１に基づく振動を再生する。
【０１７６】
より具体的には、本体装置２は、振動パターンデータＰ１に基づいて、第２振動波形を示す信号を生成する。この信号は、振動の周波数と振幅を含む。この信号が例えば５ｍ秒毎にコントローラに出力されて振動子に入力される。コントローラの振動子は、本体装置２からの信号を受信して、その信号において指定された周波数および振幅で振動する。すなわち、５ｍ秒毎に振動子の振動の周波数および振幅が変化する。これにより、コントローラの振動子は、振動パターンデータによって示される振動波形に合うように振動する。
【０１７７】
ステップＳ４に続いて、本体装置２は、第１音声データに基づいて第１音声信号を生成する（ステップＳ５）。
【０１７８】
一方、シェーバーオブジェクト７２が髭オブジェクト７１に当たったと判定した場合（ステップＳ３：ＹＥＳ）、本体装置２は、振動パターンデータＰ１に基づいて、第１振動波形を示す信号を生成する（ステップＳ６）。例えば、本体装置２は、振動パターンデータＰ１に基づく第２振動波形の振幅に所定の係数（１より大きな係数）をかけることにより、第２振動波形よりも振幅の大きな第１振動波形を生成する。また、本体装置２は、振動パターンデータＰ１に基づく第２振動波形の周波数を変化させる。そして、本体装置２は、第１振動波形を示す信号（周波数および振幅）を生成する。
【０１７９】
ステップＳ６に続いて、本体装置２は、第１音声データに基づいて第１音声信号を生成する（ステップＳ７）。このステップＳ７において生成される第１音声信号は、ステップＳ５において生成される第１音声と同じ音声である。なお、ステップＳ７において生成される第１音声信号は、ステップＳ５において生成される第１音声信号とは異なる音声信号であってもよい。
【０１８０】
ステップＳ７に続いて、本体装置２は、第２音声データに基づいて第２音声信号を生成する（ステップＳ８）。第２音声データは、実際にシェーバーが髭に当たったときに発生する音声を録音したものである。
【０１８１】
ステップＳ８に続いて、本体装置２は、振動パターンデータＰ２に基づいて、音声振動波形を示す信号を生成する（ステップＳ９）。振動パターンデータＰ２に基づく音声振動波形は、第２音声に応じた振動波形であり、第２音声の波形をもとにして生成された振動波形である。この音声振動波形を示す信号には、周波数および振幅が含まれる。
【０１８２】
ステップＳ５を実行した場合、又は、ステップＳ９を実行した場合、本体装置２は、出力処理を行う（ステップＳ１０）。以下、出力処理の詳細について説明する。
【０１８３】
図１９は、図１８のステップＳ１０の出力処理の詳細を示すフローチャートである。
【０１８４】
本体装置２は、２つ以上の振動波形を示す信号を同時に出力するか否かを判定する（ステップＳ１１）。シェーバーオブジェクト７２が髭オブジェクト７１に当たった場合、第１振動波形と音声振動波形の２つの振動波形が同時に生成される。また、シェーバーオブジェクト７２が複数の髭オブジェクト７１に当たった場合、２以上の振動波形が同時に生成される。
【０１８５】
２つ以上の振動波形を示す信号を同時に出力すると判定した場合（ステップＳ１１：ＹＥＳ）、本体装置２は、複数の振動波形を合成する（ステップＳ１２）。具体的には、本体装置２は、今回の処理ループにおいて生成した各振動波形を示す信号（周波数および振幅）について、次のような計算を行う。まず、本体装置２は、各振動波形の振幅の合計を、合成波形の振幅Ｗａとして算出する。次に、本体装置２は、各振動波形の周波数と振幅をかけた値を合計する。そして、その合計を合成波形の振幅Ｗａで除した値を、合成波形の周波数Ｗｆとして算出する。
【０１８６】
例えば、第１振動波形（周波数＝Ｗｆ１、振幅＝Ｗａ１）と音声振動波形（周波数＝Ｗｆ２、振幅Ｗａ２）とを合成する場合、本体装置２は以下の計算を行う。
合成波形の振幅Ｗａ＝Ｗａ１＋Ｗａ２
合成波形の周波数Ｗｆ＝（Ｗｆ１・Ｗａ１＋Ｗｆ２・Ｗａ２）／Ｗａ
【０１８７】
このように、本体装置２は、複数の振動波形の振幅の和を合成波形の振幅Ｗａとして算出する。また、本体装置２は、複数の振動波形の周波数について重みを付けた平均を算出することにより、合成波形の周波数Ｗｆを算出する。
【０１８８】
次に、本体装置２は、ステップＳ１２において算出した合成波形を示す信号をコントローラに出力する（ステップＳ１３）。具体的には、本体装置２は、合成波形の周波数Ｗｆを図１７に示す周波数データＤ４０１とし、合成波形の振幅Ｗａを振幅データＤ４０２として、これらのデータをコントローラに出力する。
【０１８９】
一方、２つ以上の振動波形を示す信号を同時に出力しないと判定した場合（ステップＳ１１：ＮＯ）、本体装置２は、１つの振動波形を示す信号を出力するか否かを判定する（ステップＳ１４）。１つの振動波形を示す信号を出力すると判定した場合（ステップＳ１４：ＹＥＳ）、本体装置２は、１つの振動波形を示す信号をコントローラに出力する（ステップＳ１５）。具体的には、本体装置２は、ステップＳ４において生成された第２振動波形の周波数を周波数データＤ４０１とし、当該振動波形の振幅を振幅データＤ４０２として、コントローラに出力する。
【０１９０】
ステップＳ１３の処理を行った場合、ステップＳ１５の処理を行った場合、又は、ステップＳ１４でＮＯと判定した場合、本体装置２は、上述したステップで生成した音声信号をスピーカに出力する（ステップＳ１６）。例えば、本体装置２は、シェーバーオブジェクト７２が髭オブジェクト７１に当たったと判定していない場合、第１音声を出力する。また、本体装置２は、シェーバーオブジェクト７２が髭オブジェクト７１に当たったと判定した場合、第１音声および第２音声を出力する。
【０１９１】
ステップＳ１６の処理の後、本体装置２は、図１９に示す処理を終了する。
【０１９２】
（第２のゲームの処理の詳細）
次に、第２のゲームが行われる場合の本体装置２において行われる処理の詳細について説明する。図２０は、第２のゲームが行われる場合の本体装置２において行われる処理の詳細を示すフローチャートである。図２０において、図１８と同様の処理については同様のステップ番号を付して説明を省略する。なお、本体装置２は、図２０に示す処理を所定の時間間隔（例えば、５ｍ秒毎）で実行する。
【０１９３】
本体装置２は、ステップＳ１でコントローラから取得したデータに基づいて、コントローラの姿勢を算出する（ステップＳ２）。具体的には、本体装置２は、コントローラから出力された３軸方向の加速度値によって示される加速度ベクトルの大きさを算出する。
【０１９４】
次に、本体装置２は、コントローラの動きが所定の条件を満たしたか否かを判定する（ステップＳ２１）。例えば、本体装置２は、メモリに加速度の累積値を記憶しておき、当該累積値に、直前のステップＳ２において算出された加速度値を加算して、メモリに記憶した累積値を更新する。そして、本体装置２は、更新した累積値が所定の閾値以上か否かを判定することにより、所定の条件を満たしたか否かを判定する。
【０１９５】
所定の条件を満たしていないと判定した場合（ステップＳ２１：ＮＯ）、本体装置２は、第２振動波形を示す信号を生成する（ステップＳ２２）。具体的には、本体装置２は、振動パターンデータＰ５に基づいて、第２振動波形を示す信号（周波数および振幅）を生成する。
【０１９６】
一方、所定の条件を満たしたと判定した場合（ステップＳ２１：ＹＥＳ）、本体装置２は、第２振動波形に基づく振動を停止する（ステップＳ２３）。これにより、所定の条件が満たされたと判定された時点で、第２振動波形に基づく振動が停止する。そして、本体装置２は、時間の計測を開始する（ステップＳ２４）。なお、本体装置２は、第２のゲームが開始されてからステップＳ２１においてＹＥＳと判定した場合、以降の処理ループではステップＳ２１においてＹＥＳと判定する。また、ステップＳ２３およびステップＳ２４の処理は、第２のゲームが開始されてからステップＳ２１においてＹＥＳと判定されたときに、最初の１回だけ実行される。すなわち、ステップＳ２３およびステップＳ２４の処理は、次以降の処理ループでステップＳ２１においてＹＥＳと判定された場合でも、実行されない。
【０１９７】
ステップＳ２４に続いて、本体装置２は、ステップＳ２４で計測を開始してから所定時間が経過したか否かを判定する（ステップＳ２５）。
【０１９８】
ステップＳ２５においてＹＥＳと判定した場合、本体装置２は、振動パターンデータＰ３に基づいて、第１振動波形を示す信号を生成する（ステップＳ２６）。第１振動波形を示す信号は周波数と振幅とを含む。ステップＳ２６で設定される周波数は、振動子が有する共振周波数と一致または共振周波数に近い値である。また、ステップＳ２６で設定される振幅は、振動子に指定可能な最大の振幅であってもよい。
【０１９９】
ステップＳ２６に続いて、本体装置２は、第３音声データに基づいて第３音声信号を生成する（ステップＳ２７）。第３音声データは、瓶の栓が抜けるときに発生するような大きな第３音声を示すデータである。
【０２００】
ステップＳ２７に続いて、本体装置２は、第４音声データに基づいて第４音声信号を生成する（ステップＳ２８）。第４音声データは、スパークリングワインが瓶から噴き出すときに発生する第４音声を録音したデータである。
【０２０１】
ステップＳ２８に続いて、本体装置２は、振動パターンデータＰ４に基づいて、音声振動波形を示す信号を生成する（ステップＳ２９）。振動パターンデータＰ４に基づく音声振動波形は、第４音声に応じた振動波形であり、第４音声の波形をもとにして生成された振動波形である。この音声振動波形を示す信号には、周波数および振幅が含まれる。
【０２０２】
ステップＳ２２を実行した場合、ステップＳ２９を実行した場合、又は、ステップＳ２５でＮＯと判定した場合、本体装置２は、出力処理を行う（ステップＳ１０）。出力処理は、図１９と同様の処理であるため詳細な説明を省略する。
【０２０３】
なお、上記処理は単なる例示であり、例えば各ステップの順番を入れ替えたり、他のステップが加えられたり、上記ステップの一部が省略されたりしてもよい。
【０２０４】
また、上述した実施形態に以下に示す種々の変形が行われてもよい。
【０２０５】
例えば、上記実施形態では、音声信号の波形に基づいた音声振動波形を示す振動パターンデータ（振動パターンデータＰ２および振動パターンデータＰ４）が予め本体装置２の記憶装置に記憶された。すなわち、所定の音声の波形を所定のコンバータを用いて変換することによって得られた振動パターンデータが予め記憶装置に記憶された。他の実施形態では、所定の音声を出力する際に、当該所定の音声を所定のコンバータを用いて変換することによって、当該音声信号に応じた音声振動波形を示す振動パターンデータが生成されてもよい。すなわち、音声振動波形を示す振動パターンデータは、音声を再生する際に当該音声信号に基づいてリアルタイムで生成されてもよい。
【０２０６】
また、上記実施形態では、所定の音声を所定のコンバータを用いて変換することによって音声振動波形を示す振動パターンデータが生成された。すなわち、所定の音声について特定の周波数をカットするなどして音声の波形を変換して音声振動波形を生成した。他の実施形態では、所定のコンバータを用いて音声の波形を変換せずに、音声の波形と完全に一致する音声振動波形が生成されてもよい。
【０２０７】
また、第２のゲームでは、所定の条件が満たされたと判定された場合、所定の周波数（具体的には、振動子の共振周波数）および所定の振幅を設定した第１振動波形が生成された。すなわち、第２のゲームでは、振動子が最も大きく振動しやすくするために、共振周波数を狙って振動子を振動させた。第１のゲームにおいても、シェーバーオブジェクト７２が髭オブジェクト７１に当たった場合に、所定の周波数（具体的には、振動子の共振周波数）および所定の振幅を設定して第１振動波形を生成してもよい。
【０２０８】
また、上記実施形態では、合成波の周波数については各波形の周波数に重みを付けて平均をとり、合成波の振幅については各波形の振幅を足し合わせることにより複数の波形を合成したが、複数の波形を重ね合わせることにより複数の波形を合成してもよい。すなわち、波の重ね合わせの原理にしたがって複数の波形が合成されてもよい。この場合、複数の波形は互いに干渉（強めあったり、打ち消しあったり）する。
【０２０９】
また、上記実施形態では、振動波形を示す信号として周波数および振幅が本体装置２から各コントローラに出力されるものとした。振動波形を示す信号は、例えば、高周波帯の信号（周波数および振幅）と、低周波帯の信号（周波数および振幅）とに分けて出力されてもよい。例えば、各コントローラの振動子１０７，１１７は、第１の方向に第１の共振周波数（例えば、３２０Ｈｚ）で振動し、第２の方向に第２の共振周波数（例えば、１６０Ｈｚ）で振動するリニア振動モータ（リニア振動アクチュエータとも言う）であってもよい。このような振動子は、第１の共振周波数を含む第１の周波数帯（高周波帯）で振動することが可能であるとともに、第２の共振周波数を含む第２の周波数帯（低周波帯）で振動することが可能である。振動子は、第１の共振周波数で第１の方向に大きく振動しやすく、かつ、第２の共振周波数で第２の方向に大きく振動しやすい。また、振動子は、高周波帯の振動と低周波帯の振動とを合成した合成波により第１の方向と第２の方向の間の方向に振動することができ、低周波帯から高周波帯までの周波数にて振動するこができる。このような振動子がコントローラに設けられる場合において、本体装置２は、高周波帯の信号と、低周波帯の信号とコントローラに出力してもよい。例えば、本体装置２は、高周波帯の信号と低周波帯の信号とを含む１つのパケットをコントローラに送信してもよいし、これらの信号を別のパケットに含めてコントローラに送信してもよい。振動子は、受信した高周波帯の信号と、低周波帯の信号とに基づいて、振動する。また、コントローラは、２つのリニア振動モータ（第１の共振周波数を有する第１の振動モータ、および、第２の共振周波数を有する第２の振動モータ）を備え、本体装置２は、高周波帯の信号と、低周波帯の信号とを当該コントローラに出力してもよい。この場合、コントローラは、受信した高周波帯の信号に基づいて第１の振動モータを振動させ、受信した低周波帯の信号に基づいて第２の振動モータを振動させる。
【０２１０】
また、上記実施形態では、所定の時間間隔（例えば５ｍ秒毎）で振動波形を示す信号として周波数および振幅が本体装置２から各コントローラに出力されるものとしたが、他の実施形態では、所定の時間間隔で周波数の差分および振幅の差分がコントローラに出力されてもよい。すなわち、前回の処理ループにおいて出力された周波数の差分が今回の処理ループにおいてコントローラに出力され、前回の処理ループにおいて出力された振幅の差分が今回の処理ループにおいてコントローラに出力されてもよい。
【０２１１】
また、上記実施形態では、所定の時間間隔（例えば５ｍ秒毎）で振動波形を示す信号として周波数および振幅が本体装置２から各コントローラに出力されるものとしたが、他の実施形態では、振動波形を示す信号として振動波形自体がコントローラに出力されてもよい。例えば、本体装置２に振動波形を示す振動パターンデータが記憶され、この振動パターンデータ自体が本体装置２からコントローラに出力されてもよい。また、他の実施形態では、コントローラに複数の振動パターンデータが記憶され、振動波形を示す信号として、どの振動パターンデータに基づく振動を行うかの情報が本体装置２からコントローラに出力されてもよい。各コントローラは、この信号を本体装置２から受信すると、信号に応じた振動パターンデータを選択し、当該振動パターンデータに基づいて振動子を振動させてもよい。
【０２１２】
すなわち、本実施形態では、振動波形を示す信号は、上記周波数および振動であってもよいし、周波数の差分および振動の差分であってもよいし、振動波形自体（すなわち、振動波形を示す振動パターンデータ）であってもよい。また、振動波形を示す信号は、振動パターンデータ（言い換えると振動パターンを記憶したファイル）を指定する信号であってもよい。
【０２１３】
また、上述したゲームは単なる一例であり、他のゲームが行われてもよい。例えば、上述したオブジェクトに限らず、他の任意の仮想オブジェクトを用いたゲームが行われてもよい。
【０２１４】
また、上記では２人または１人で行うゲームを想定したが、３人以上で上記ゲームまたは他の任意のゲームが行われてもよい。
【０２１５】
また、上記では左右のコントローラ３，４を本体装置２から外してゲームを行うものとしたが、他の実施形態では、左右のコントローラ３，４を本体装置２に装着した状態で上記ゲーム（又は他のゲーム）が行われてもよい。
【０２１６】
また、上記では慣性センサからのデータに基づいてコントローラの姿勢を検出するものとしたが、他の方法によりコントローラの姿勢を検出してもよい。例えば、カメラを用いてコントローラを撮像し、撮像画像に基づいてコントローラの姿勢を検出してもよい。
【０２１７】
また、上述した処理におけるステップＳ３やステップＳ２１の判定は単なる一例であり、他の判定が行われてもよい。
【０２１８】
また、上記ではコントローラの姿勢を変化させたり、コントローラを振ったりすることによりゲームが行われた。他の実施形態では、例えば、コントローラのボタンや方向入力部に対する操作に基づいて所定の判定が行われてもよい。また、タッチパネルに対する操作に基づいて判定が行われてもよい。すなわち、操作部に対する操作（操作部自体を傾けたり振ったりする操作、ボタンや方向入力部、タッチパネル等に対する操作）に基づいて、上述した判定が行われてもよい。
【０２１９】
また、上記実施形態では、ゲーム処理が行われるものとしたが、ゲーム処理に限らず他の任意の情報処理が行われてもよい。
【０２２０】
上記ハードウェア構成は単なる一例であり、例えば、コントローラと本体装置２とが一体となった装置であってもよい。
【０２２１】
以上、本発明について説明したが、上記説明は本発明の例示に過ぎず、種々の改良や変形が加えられてもよい。
【符号の説明】
【０２２２】
１  情報処理システム
２  本体装置
３  左コントローラ
４  右コントローラ
７０  顔オブジェクト
７１  髭オブジェクト
７２  シェーバーオブジェクト
８１  ＣＰＵ
１０４、１１４  加速度センサ
１０５、１１５  角速度センサ
１０７、１１７  振動子
１２１  姿勢算出部
１２２  判定部
１２３  第１波形生成部
１２４  音声振動波形生成部
１２５  出力部
１２６  音声生成部
１３１  動き算出部
【図１】
2018106599.tif 000003
【図２】
2018106599.tif 000004
【図３】
2018106599.tif 000005
【図４】
2018106599.tif 000006
【図５】
2018106599.tif 000007
【図６】
2018106599.tif 000008
【図７】
2018106599.tif 000009
【図８】
2018106599.tif 000010
【図９】
2018106599.tif 000011
【図１０】
2018106599.tif 000012
【図１１】
2018106599.tif 000013
【図１２】
2018106599.tif 000014
【図１３】
2018106599.tif 000015
【図１４】
2018106599.tif 000016
【図１５】
2018106599.tif 000017
【図１６】
2018106599.tif 000018
【図１７】
2018106599.tif 000019
【図１８】
2018106599.tif 000020
【図１９】
2018106599.tif 000021
【図２０】
2018106599.tif 000022