(57)【要約】【課題】振動パラメータを変化させることができる振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラムを提供する。【解決手段】振動装置を振動させるための振動信号を生成する。データ取得手段は、振幅の変化を示す振幅変調情報および／または周波数の変化を示す周波数変調情報が符号化されたデータを取得する。復号手段は、取得したデータを復号する。振動信号生成手段は、復号された振幅変調情報および／または周波数変調情報を用いて振動信号を生成する。【選択図】図５
2019063547.tif 000002
【特許請求の範囲】
【請求項１】
振動装置を振動させるための振動信号を生成する装置に含まれるコンピュータで実行される振動信号生成プログラムであって、
前記コンピュータを、
振幅の変化を示す振幅変調情報が符号化された第１データを取得するデータ取得手段と、
取得した前記第１データを復号する復号手段と、
復号された振幅変調情報を用いて振動信号を生成する振動信号生成手段として機能させる、振動信号生成プログラム。
【請求項２】
前記振動信号生成手段は、基準値より大きい値と小さい値とを繰り返す所定の波形を示す波形データと前記振幅変調情報とを用いて、前記振動信号を生成する、請求項１に記載の振動信号生成プログラム。
【請求項３】
前記所定の波形は、正負の値が繰り返される、請求項２に記載の振動信号生成プログラム。
【請求項４】
前記所定の波形は、振幅一定である、請求項３に記載の振動信号生成プログラム。
【請求項５】
前記所定の波形は、振幅一定の正弦波である、請求項４に記載の振動信号生成プログラム。
【請求項６】
前記所定の波形は、振幅一定の矩形波である、請求項４に記載の振動信号生成プログラム。
【請求項７】
前記所定の波形は、前記振動装置が有する共振周波数と実質的に同じ周波数の波形である、請求項２乃至６の何れか１つに記載の振動信号生成プログラム。
【請求項８】
前記振動信号生成手段は、前記復号された振幅変調情報と以前に生成された前記振動信号の振幅とを用いて今回の振動信号を生成する、請求項１乃至７の何れか１つに記載の振動信号生成プログラム。
【請求項９】
前記データ取得手段は、異なる周波数帯域毎の振幅変調情報がそれぞれ符号化されたデータを、それぞれ前記第１データとして取得し、
前記復号手段は、周波数帯域毎に取得した前記第１データをそれぞれ復号し、
前記振動信号生成手段は、周波数帯域毎に復号された振幅変調情報をそれぞれ用いて前記振動信号を生成する、請求項１乃至８の何れか１つに記載の振動信号生成プログラム。
【請求項１０】
前記振動信号生成手段は、第１周波数の波形を示す波形データと第１周波数帯域に対して復号された振幅変調情報を用いて第１振動波形を生成し、第２周波数の波形を示す波形データと第２周波数帯域に対して復号された振幅変調情報を用いて第２振動波形を生成して、当該第１振動波形と当該第２振動波形とを合成することによって、前記振動信号を生成する、請求項９に記載の振動信号生成プログラム。
【請求項１１】
前記データ取得手段は、人間の皮膚感覚を受容する異なる複数の感覚受容器がそれぞれ応答する周波数の少なくとも１つを含む周波数帯域毎の振幅変調情報がそれぞれ符号化されたデータを、それぞれ前記第１データとして取得する、請求項９または１０に記載の振動信号生成プログラム。
【請求項１２】
前記データ取得手段は、周波数の変化を示す周波数変調情報が符号化された第２データを、さらに取得し、
前記復号手段は、取得した前記第２データを、さらに復号し、
前記振動信号生成手段は、復号された振幅変調情報および周波数変調情報を用いて前記振動信号を生成する、請求項１乃至１１の何れか１つに記載の振動信号生成プログラム。
【請求項１３】
前記振動信号生成手段は、前記周波数変調情報を用いて基準値より大きい値と小さい値とを繰り返す所定の波形を示す波形データの周波数を変化させるとともに、前記振幅変調情報を用いて当該所定の波形の振幅を変化させることによって、前記振動信号を生成する、請求項１２に記載の振動信号生成プログラム。
【請求項１４】
前記所定の波形は、前記振動装置が有する共振周波数と実質的に同じ周波数の波形である、請求項１３に記載の振動信号生成プログラム。
【請求項１５】
前記振動信号生成手段が生成した振動信号を用いて、前記振動手段を振動させる振動制御手段として、前記コンピュータをさらに機能させる、請求項１乃至１４の何れか１つに記載の振動信号生成プログラム。
【請求項１６】
前記データ取得手段は、前記振幅変調情報が符号化されたデータを、無線通信を介して他の装置から取得する、請求項１乃至１５の何れか１つに記載の振動信号生成プログラム。
【請求項１７】
少なくとも第１の装置と第２の装置とを含み、振動装置を振動させるための振動信号を生成する振動信号生成システムであって、
前記第１の装置は、
前記振動装置を振動させるための振動波形において振幅の変化を示す振幅変調情報が符号化された第１データを記憶する記憶手段と、
前記第１データを前記第２の装置に送信する送信手段とを備え、
前記第２の装置は、
前記第１の装置から送信された第１データを受信する受信手段と、
受信した前記第１データを復号する復号手段と、
復号された振幅変調情報を用いて振動信号を生成する振動信号生成手段とを備える、振動信号生成システム。
【請求項１８】
振動装置を振動させるための振動信号を生成する振動信号生成装置であって、
振幅の変化を示す振幅変調情報が符号化されたデータを取得するデータ取得手段と、
取得した前記データを復号する復号手段と、
復号された振幅変調情報を用いて振動信号を生成する振動信号生成手段とを備える、振動信号生成装置。
【請求項１９】
振動装置を振動させるための振動信号を生成する少なくとも１つの装置により構成されるシステムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行される振動信号生成方法であって、
振幅の変化を示す振幅変調情報が符号化されたデータを取得するデータ取得ステップと、
取得した前記データを復号する復号ステップと、
復号された振幅変調情報を用いて振動信号を生成する振動信号生成ステップとを含む、振動信号生成方法。
【請求項２０】
振動装置を振動させるための振動信号を生成する装置に含まれるコンピュータで実行される振動信号生成プログラムであって、
前記コンピュータを、
周波数の変化を示す周波数変調情報が符号化されたデータを取得するデータ取得手段と、
取得した前記データを復号する復号手段と、
復号された周波数変調情報を用いて振動信号を生成する振動信号生成手段として機能させる、振動信号生成プログラム。
【請求項２１】
振動装置を振動させるための振動信号の生成が可能なデータを出力する装置に含まれるコンピュータで実行されるデータ出力プログラムであって、
前記コンピュータを、
前記振動装置を振動させるための振動波形において振幅の変化を示す振幅変調情報を設定する振幅変調情報設定手段と、
前記振幅変調情報を符号化した第１データを生成する符号化手段と、
符号化された前記第１データを出力するデータ出力手段として機能させる、データ出力プログラム。
【請求項２２】
前記振幅変調情報設定手段は、前記振動波形に対して異なる周波数帯域毎の振幅の変化を示す振幅変調情報を、当該周波数帯域毎に設定し、
前記符号化手段は、前記周波数帯域毎に設定された振幅変調情報をそれぞれ符号化してそれぞれ前記第１データとして生成し、
前記データ出力手段は、前記周波数帯域毎に生成された前記第１データをそれぞれ出力する、請求項２１に記載のデータ出力プログラム。
【請求項２３】
前記振幅変調情報設定手段は、前記振動波形において振幅の変化を示す振幅変調情報を所定の時間間隔毎に設定し、
前記振幅変調情報設定手段は、前記周波数帯域毎に示される振幅の大きさに基づいて、当該周波数帯域毎に前記時間間隔をそれぞれ設定する、請求項２２に記載のデータ出力プログラム。
【請求項２４】
前記振幅変調情報設定手段は、人間の皮膚感覚を受容する異なる複数の感覚受容器がそれぞれ応答する周波数の少なくとも１つを含む周波数帯域毎の振幅の変化を示す振幅変調情報を、当該周波数帯域毎に設定する、請求項２２または２３に記載のデータ出力プログラム。
【請求項２５】
前記振動波形において周波数の変化を示す周波数変調情報を設定する周波数変調情報設定手段として、さらに前記コンピュータを機能させ、
前記符号化手段は、前記周波数変調情報を符号化した第２データをさらに生成し、
前記データ出力手段は、符号化された前記第１データおよび前記第２データを出力する、請求項２１乃至２４の何れか１つに記載のデータ出力プログラム。
【請求項２６】
前記周波数変調情報設定手段は、前記振動波形に対して所定の周波数解析を行うことによって、前記周波数変調情報を設定する、請求項２５に記載のデータ出力プログラム。
【請求項２７】
前記振幅変調情報設定手段は、前記振動波形における所定の値のエンベロープをとった波形を用いて、前記振幅変調情報を設定する、請求項２１乃至２６の何れか１つに記載のデータ出力プログラム。
【請求項２８】
前記振幅変調情報設定手段は、前記振動波形に対して異なる周波数帯域毎の振幅の変化を示す振幅変調情報を、当該周波数帯域毎に設定し、
前記振幅変調情報設定手段は、前記周波数帯域毎に当該周波数帯域の振動波形が通過するバンドパスフィルタ処理を行った後に前記エンベロープをとった波形を用いて、当該周波数帯域毎の前記振幅変調情報を設定する、請求項２７に記載のデータ出力プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラムに関し、特に例えば、ユーザに与える振動に関連する振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラムに関する。
【背景技術】
【０００２】
周波数、パルス幅、および振幅を変化させることにより振動パターンを可変にできるゲーム装置が開示されている（例えば、特許文献１参照）。例えば、上記特許文献１で開示されたゲーム装置は、敵キャラクタに与えるダメージの大きさに応じてユーザに与える振動の大きさを変化させている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−６８２１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１で開示されているような従来のゲーム装置では、周波数、パルス幅、または振幅を変化させながら振動を与えるようにはなっておらず、周波数、パルス幅、または振幅を変化させる場合におけるデータの扱い方については開示されていない。
【０００５】
それ故に、本発明の目的は、振動パラメータを変化させることができる振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラムを提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【０００７】
本発明の振動信号生成プログラムの一構成例は、振動装置を振動させるための振動信号を生成する装置に含まれるコンピュータで実行される。振動信号生成プログラムは、データ取得手段、復号手段、および振動信号生成手段として、コンピュータを機能させる。データ取得手段は、振幅の変化を示す振幅変調情報が符号化された第１データを取得する。復号手段は、取得した第１データを復号する。振動信号生成手段は、復号された振幅変調情報を用いて振動信号を生成する。
【０００８】
上記によれば、振幅の変化を示す振幅変調情報が符号化された第１データを用いて振動信号を生成することができるため、振動パラメータが変化させることが可能な振動信号の生成が可能となり、振動パラメータを変化させるデータを取り扱うことができる。
【０００９】
また、上記振動信号生成手段は、基準値より大きい値と小さい値とを繰り返す所定の波形を示す波形データと振幅変調情報とを用いて、振動信号を生成してもよい。
【００１０】
また、上記所定の波形は、正負の値が繰り返されてもよい。
【００１１】
また、上記所定の波形は、振幅一定でもよい。
【００１２】
また、上記所定の波形は、振幅一定の正弦波でもよい。
【００１３】
また、上記所定の波形は、振幅一定の矩形波でもよい。
【００１４】
上記によれば、波形データと振幅変調情報とを用いて、容易に振動パラメータを変化させる振動信号の生成が可能となる。
【００１５】
また、上記所定の波形は、振動装置が有する共振周波数と実質的に同じ周波数の波形でもよい。
【００１６】
上記によれば、相対的に強い振動をユーザに与えることができる振動信号の生成が可能となる。
【００１７】
また、上記振動信号生成手段は、復号された振幅変調情報と以前に生成された振動信号の振幅とを用いて今回の振動信号を生成してもよい。
【００１８】
上記によれば、時系列的に取得された振幅変調情報を用いて、効率よく振動信号を生成することができる。
【００１９】
また、上記データ取得手段は、異なる周波数帯域毎の振幅変調情報がそれぞれ符号化されたデータを、それぞれ第１データとして取得してもよい。上記復号手段は、周波数帯域毎に取得した第１データをそれぞれ復号してもよい。上記振動信号生成手段は、周波数帯域毎に復号された振幅変調情報をそれぞれ用いて振動信号を生成してもよい。
【００２０】
上記によれば、周波数帯域毎に符号化されたデータに基づいた振動信号の生成が可能となるため、複数の周波数帯域に対して振動パラメータを変化させる振動信号の生成が可能となる。
【００２１】
また、上記振動信号生成手段は、第１周波数の波形を示す波形データと第１周波数帯域に対して復号された振幅変調情報を用いて第１振動波形を生成し、第２周波数の波形を示す波形データと第２周波数帯域に対して復号された振幅変調情報を用いて第２振動波形を生成して、当該第１振動波形と当該第２振動波形とを合成することによって、振動信号を生成してもよい。
【００２２】
上記によれば、周波数帯域毎に波形データと振幅変調情報とを用いて振動波形をそれぞれ生成することによって、容易に振動パラメータを変化させる振動信号の生成が可能となる。
【００２３】
また、上記データ取得手段は、人間の皮膚感覚を受容する異なる複数の感覚受容器がそれぞれ応答する周波数の少なくとも１つを含む周波数帯域毎の振幅変調情報がそれぞれ符号化されたデータを、それぞれ第１データとして取得してもよい。
【００２４】
上記によれば、効率よくユーザに振動を感じさせることができる振動信号を生成することができる。
【００２５】
また、上記データ取得手段は、周波数の変化を示す周波数変調情報が符号化された第２データを、さらに取得してもよい。上記復号手段は、取得した第２データを、さらに復号してもよい。この場合、上記振動信号生成手段は、復号された振幅変調情報および周波数変調情報を用いて振動信号を生成してもよい。
【００２６】
上記によれば、周波数および振幅を変化させることが可能な振動信号の生成が可能となる。
【００２７】
また、上記振動信号生成手段は、周波数変調情報を用いて基準値より大きい値と小さい値とを繰り返す所定の波形を示す波形データの周波数を変化させるとともに、振幅変調情報を用いて当該所定の波形の振幅を変化させることによって、振動信号を生成してもよい。
【００２８】
上記によれば、波形データと周波数変調情報および振幅変調情報とを用いて、容易に振幅および周波数を変化させる振動信号の生成が可能となる。
【００２９】
また、上記所定の波形は、振動装置が有する共振周波数と実質的に同じ周波数の波形でもよい。
【００３０】
上記によれば、相対的に強い振動をユーザに与えることができる振動信号の生成が可能となる。
【００３１】
また、上記振動信号生成プログラムは、振動制御手段として、さらにコンピュータを機能させてもよい。振動制御手段は、振動信号生成手段が生成した振動信号を用いて、振動手段を振動させる。
【００３２】
上記によれば、振動手段を振動させている途中で振動パラメータを変化させることが可能な振動信号の生成が可能となる。
【００３３】
また、上記データ取得手段は、振幅変調情報が符号化されたデータを、無線通信を介して他の装置から取得してもよい。
【００３４】
上記によれば、無線通信を介して、振動信号の送信が可能となる。
【００３５】
また、本発明は、上記各手段を備える振動信号生成装置や上記各手段で行われる動作を含む振動信号生成装置の形態で実施されてもよい。
【００３６】
本発明の振動信号生成システムの一構成例は、少なくとも第１の装置と第２の装置とを含み、振動装置を振動させるための振動信号を生成する。第１の装置は、記憶手段および送信手段を備える。記憶手段は、振動装置を振動させるための振動波形において振幅の変化を示す振幅変調情報が符号化された第１データを記憶する。送信手段は、第１データを第２の装置に送信する。第２の装置は、受信手段、復号手段、および振動信号生成手段を備える。受信手段は、第１の装置から送信された第１データを受信する。復号手段は、受信した第１データを復号する。振動信号生成手段は、復号された振幅変調情報を用いて振動信号を生成する。
【００３７】
上記によれば、振幅の変化を示す振幅変調情報が符号化された第１データを第１の装置が送信し、当該第１データを第２の装置が受信して振動信号を生成することができるため、振動パラメータが変化させることが可能な振動信号の送受信および生成が可能となり、振動パラメータを変化させるデータを取り扱うことができる。
【００３８】
本発明の振動信号生成プログラムの他の構成例は、振動装置を振動させるための振動信号を生成する装置に含まれるコンピュータで実行される。振動信号生成プログラムは、データ取得手段、復号手段、および振動信号生成手段として、前記コンピュータを機能させる。データ取得手段は、周波数の変化を示す周波数変調情報が符号化されたデータを取得する。復号手段は、取得した前記データを復号する。振動信号生成手段は、復号された周波数変調情報を用いて振動信号を生成する。
【００３９】
上記によれば、周波数の変化を示す周波数変調情報が符号化されたデータを用いて振動信号を生成することができるため、振動パラメータが変化させることが可能な振動信号の生成が可能となり、振動パラメータを変化させるデータを取り扱うことができる。
【００４０】
また、本発明のデータ出力プログラムの一構成例は、振動装置を振動させるための振動信号の生成が可能なデータを出力する装置に含まれるコンピュータで実行される。データ出力プログラムは、振幅変調情報設定手段、符号化手段、およびデータ出力手段として、コンピュータを機能させる。振幅変調情報設定手段は、振動装置を振動させるための振動波形において振幅の変化を示す振幅変調情報を設定する。符号化手段は、振幅変調情報を符号化した第１データを生成する。データ出力手段は、符号化された第１データを出力する。
【００４１】
上記によれば、振動パラメータが変化させることが可能な振動信号の生成が可能な振幅変調情報を他の装置に出力することができる。
【００４２】
また、上記振幅変調情報設定手段は、振動波形に対して異なる周波数帯域毎の振幅の変化を示す振幅変調情報を、当該周波数帯域毎に設定してもよい。この場合、上記符号化手段は、周波数帯域毎に設定された振幅変調情報をそれぞれ符号化してそれぞれ第１データとして生成してもよい。上記データ出力手段は、周波数帯域毎に生成された第１データをそれぞれ出力してもよい。
【００４３】
上記によれば、複数の周波数帯域に対して振動パラメータを変化させる振動信号の生成が可能なデータを出力することができる。
【００４４】
また、上記振幅変調情報設定手段は、振動波形において振幅の変化を示す振幅変調情報を所定の時間間隔毎に設定してもよい。上記振幅変調情報設定手段は、周波数帯域毎に示される振幅の大きさに基づいて、当該周波数帯域毎に時間間隔をそれぞれ設定してもよい。
【００４５】
上記によれば、ユーザに与える感触として影響が大きい振動を優先して正確に生成できる振動信号の生成が可能なデータを出力することができる。
【００４６】
また、上記振幅変調情報設定手段は、人間の皮膚感覚を受容する異なる複数の感覚受容器がそれぞれ応答する周波数の少なくとも１つを含む周波数帯域毎の振幅の変化を示す振幅変調情報を、当該周波数帯域毎に設定してもよい。
【００４７】
上記によれば、効率よくユーザに振動を感じさせることができる振動信号を生成することができるデータを出力することができる。
【００４８】
また、上記データ出力プログラムは、周波数変調情報設定手段として、さらにコンピュータを機能させてもよい。周波数変調情報設定手段は、振動波形において周波数の変化を示す周波数変調情報を設定する。この場合、上記符号化手段は、周波数変調情報を符号化した第２データをさらに生成してもよい。上記データ出力手段は、符号化された第１データおよび第２データを出力してもよい。
【００４９】
上記によれば、周波数および振幅を変化させることが可能な振動信号の生成が可能となるデータを出力することができる。
【００５０】
また、上記周波数変調情報設定手段は、振動波形に対して所定の周波数解析を行うことによって、周波数変調情報を設定してもよい。
【００５１】
上記によれば、正確に周波数を変化させることが可能な振動信号の生成が可能となるデータを出力することができる。
【００５２】
また、上記振幅変調情報設定手段は、振動波形における所定の値のエンベロープをとった波形を用いて、振幅変調情報を設定してもよい。
【００５３】
上記によれば、振幅を変化させることが可能な振動信号の生成が可能となるデータを容易に生成することができる。
【００５４】
また、上記振幅変調情報設定手段は、振動波形に対して異なる周波数帯域毎の振幅の変化を示す振幅変調情報を、当該周波数帯域毎に設定してもよい。上記振幅変調情報設定手段は、周波数帯域毎に当該周波数帯域の振動波形が通過するバンドパスフィルタ処理を行った後にエンベロープをとった波形を用いて、当該周波数帯域毎の振幅変調情報を設定してもよい。
【００５５】
上記によれば、周波数帯域毎に振幅を変化させることが可能な振動信号の生成が可能となるデータを容易に生成することができる。
【発明の効果】
【００５６】
本発明によれば、振幅の変化を示す振幅変調情報または周波数の変化を示す周波数変調情報が符号化されたデータを用いて振動信号を生成することができるため、振動パラメータが変化させることが可能な振動信号の生成が可能となる。
【図面の簡単な説明】
【００５７】
【図１】本発明の一実施形態に係る情報処理装置３の外観の一例を示す平面図
【図２】情報処理装置３の構成の一例を示すブロック図
【図３】振動発生部３７の構成の一例を示すブロック図
【図４】表示部３５の表示画面に表示されている仮想オブジェクトＯＢＪの表示位置に応じて、情報処理装置３本体が振動するとともに音声が出力される一例を示す図
【図５】取得した振動データに基づいて振動制御信号を生成する処理の一例を説明するための図
【図６】周波数帯域毎に取得した振動データに基づいて振動制御信号を生成する処理の一例を説明するための図
【図７】ＡＭＦＭ符号データのデコードに用いられる符号化テーブルの一例を示す図
【図８】符号化テーブルで用いられている値ｋを算出する際に用いられるｋ算出テーブルの一例を示す図
【図９】符号データ送信処理を行う際に、上記転送元装置の記憶部に記憶される主なデータおよびプログラムの一例を示す図
【図１０】転送元装置において実行される符号データ送信処理の一例を示すフローチャート
【図１１】符号データ受信処理を行う際に、情報処理装置３の記憶部３２に記憶される主なデータおよびプログラムの一例を示す図
【図１２】情報処理装置３において実行される符号データ受信処理の一例を示すフローチャート
【発明を実施するための形態】
【００５８】
図面を参照して、本発明の一実施形態に係る振動信号生成プログラムを実行する振動信号生成装置について説明する。本発明の振動信号生成プログラムは、任意のコンピュータシステムで実行されることによって適用することができるが、振動信号生成装置の一例として携帯型の情報処理装置３（タブレット端末）を用い、情報処理装置３で実行される振動信号生成プログラムを用いて説明する。例えば、情報処理装置３は、交換可能な光ディスクやメモリーカード等の記憶媒体内に記憶された、または、他の装置から受信したプログラムや予めインストールされたプログラム（例えば、ゲームプログラム）を実行可能であり、一例として、仮想空間に設定された仮想カメラから見た仮想空間画像等のコンピュータグラフィックス処理により生成された画像を画面に表示することができる。情報処理装置３は、一般的なパーソナルコンピュータ、据置型ゲーム機、携帯電話機、携帯ゲーム機、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）等のデバイスであってもかまわない。なお、図１は、情報処理装置３の外観の一例を示す平面図である。
【００５９】
図１において、情報処理装置３は、表示部３５、音声出力部３６、およびアクチュエータ３７３を備えている。一例として、表示部３５は、情報処理装置３本体前面に設けられている。例えば、表示部３５は、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）によって構成されるが、例えばＥＬを利用した表示装置などが利用されてもよい。また、表示部３５は、立体視可能な画像を表示することが可能な表示装置であってもよい。
【００６０】
表示部３５の表示画面を覆うように、入力部３４の一例であるタッチパネル３４１が設けられている。タッチパネル３４１は、所定の入力面（例えば、表示部３５の表示画面）に対して入力された位置を検出する。なお、入力部３４は、情報処理装置３のユーザが操作入力可能な入力装置であり、どのような入力装置であってもよい。例えば、入力部３４として、スライドパッド、アナログスティック、十字キー、および操作ボタン等の操作部が、情報処理装置３本体の側面や背面等に備えられてもよい。また、入力部３４は、情報処理装置３本体の姿勢や動きを検出するためのセンサであってもよい。例えば、入力部３４は、情報処理装置３本体に生じる加速度を検出する加速度センサや情報処理装置３本体の回転量を検出する角速度センサ（ジャイロセンサ）等であってもよい。
【００６１】
音声出力部３６は、音声を出力するスピーカを含み、図１に示した一例では、情報処理装置３の上側面や背面に設けられたスピーカ（音声出力部３６）を含んでいる。音声出力部３６は、後述する制御部３１から出力される音声信号（音声制御信号）をＤ／Ａ変換してアナログ音声信号を生成し、当該アナログ音声信号をスピーカへ出力して音声を出力させる。
【００６２】
アクチュエータ３７３は、情報処理装置３の本体に所定の振動を与える振動アクチュエータ（振動子）であり、後述する振動発生部３７に含まれる。図１に示した一例では、アクチュエータ３７３は、情報処理装置３本体内部の中央付近に設けられたアクチュエータ３７３を有する。具体的には、図１の破線領域で示すように、ユーザが情報処理装置３の左端部を左手で把持し右端部を右手で把持した場合に、当該左手と右手との間の位置となる表示部３５の中央部にアクチュエータ３７３が設けられる。また、振動発生部３７は、後述する制御部３１から出力される振動制御信号をＤ／Ａ変換してアナログ振動信号を生成し、当該アナログ振動信号を増幅した駆動信号をアクチュエータ３７３へ出力してアクチュエータ３７３を駆動させる。
【００６３】
なお、図１から明らかなように、情報処理装置３に設けられる表示部３５の表示画面と音声出力部３６とがそれぞれ近接する位置に配置されており、表示部３５の表示画面とアクチュエータ３７３とがそれぞれ近接する位置に配置されている。また、音声出力部３６およびアクチュエータ３７３は、それぞれ互いに近接する位置に配置されているが、別の位置に配設される別のユニットである。これによって、振動出力専用のユニットと音声出力専用のユニットとを備えることができるため、汎用のユニットを共用する場合と比較すると精度の高い振動および音声をそれぞれ出力することができる。なお、振動出力するためのユニットと音声出力するためのユニットとを組み合わせて一体化したモジュールを、情報処理装置３に設けてもよい。
【００６４】
次に、図２を参照して、情報処理装置３の内部構成について説明する。なお、図２は、情報処理装置３の構成の一例を示すブロック図である。
【００６５】
図２において、上述した入力部３４、表示部３５、音声出力部３６、および振動発生部３７の他に、制御部３１、記憶部３２、プログラム格納部３３、および通信部３８を備える。なお、情報処理装置３は、制御部３１を少なくとも含む情報処理装置と他の装置とを含む１以上の装置によって構成されてもよい。
【００６６】
制御部３１は、各種の情報処理を実行するための情報処理手段（コンピュータ）であり、例えばＣＰＵである。制御部３１は、各種の情報処理として、入力部３４に対するユーザの操作に応じた処理等を実行する機能を有する。例えば、ＣＰＵが所定のプログラムを実行することによって、制御部３１における各機能が実現される。
【００６７】
制御部３１は、各種の情報処理として、表示部３５に表示する画像の表示制御を行う。また、制御部３１は、各種の情報処理として、スピーカから出力する音声を制御するための音声制御信号（例えば、デジタル音声信号）を、音声出力部３６へ出力する。また、制御部３１は、各種の情報処理の一例として、通信部３８を介して他の装置から転送された振動データを受信し、当該振動データに基づいてアクチュエータ３７３が生成する振動を制御するための振動制御信号（例えば、デジタル振動信号）を生成して、当該振動制御信号を振動発生部３７へ出力する。
【００６８】
記憶部３２は、制御部３１が上記情報処理を実行する際に用いる各種のデータを記憶する。記憶部３２は、例えばＣＰＵ（制御部３１）がアクセス可能なメモリである。
【００６９】
プログラム格納部３３は、プログラムを記憶（格納）する。プログラム格納部３３は、制御部３１がアクセス可能な記憶装置（記憶媒体）であればどのようなものであってもよい。例えば、プログラム格納部３３は、制御部３１を含む情報処理装置３内に設けられる記憶装置であってもよいし、制御部３１を含む情報処理装置３に着脱自在に装着される記憶媒体であってもよい。また、プログラム格納部３３は、制御部３１とネットワークを介して接続される記憶装置（サーバ等）であってもよい。制御部３１（ＣＰＵ）は、ゲームプログラムや振動信号生成プログラムの一部または全部を適宜のタイミングで記憶部３２に読み出し、読み出されたプログラムを実行するようにしてもよい。
【００７０】
通信部３８は、所定の通信モジュールによって構成され、ネットワークを介して他の機器との間でデータを送受信したり、他の情報処理装置３との間でデータを直接送受信したりする。なお、通信部３８は、他の機器との間で無線通信によってデータを送受信してもよいし、他の機器との間で有線通信によってデータを送受信してもよい。
【００７１】
次に、図３を参照して、振動発生部３７の構成について説明する。なお、図３は、振動発生部３７の構成の一例を示すブロック図である。
【００７２】
図３において、振動発生部３７は、コーデック部３７１、増幅部３７２、およびアクチュエータ（振動子）３７３を備えている。
【００７３】
コーデック部３７１は、制御部３１から出力された振動制御信号を取得して所定の復号処理を行ってアナログ振動信号を生成し、増幅部３７２へ出力する。例えば、アクチュエータ３７３に振動を発生させる場合、当該振動を制御するための振動制御信号（例えば、振動制御信号ＣＳ）が制御部３１から出力される。この場合、コーデック部３７１は、制御部３１から出力された振動制御信号を復号して、アクチュエータ３７３に振動を発生させるためのアナログ振動信号（例えば、アナログ振動信号ＡＳ）を生成して、増幅部３７２へ出力する。
【００７４】
増幅部３７２は、コーデック部３７１から出力されたアナログ振動信号を増幅してアクチュエータ３７３を駆動するための駆動信号を生成し、アクチュエータ３７３へ出力する。例えば、増幅部３７２は、コーデック部３７１から出力されたアナログ振動信号（例えば、アナログ振動信号ＡＳ）の電流／電圧の振幅変化をそれぞれ増大させて駆動信号（例えば、駆動信号ＤＳ）を生成して、アクチュエータ３７３へ出力する。
【００７５】
アクチュエータ３７３は、増幅部３７２から出力された駆動信号に応じて駆動することによって、情報処理装置３の本体に当該駆動信号に応じた振動を与える。例えば、アクチュエータ３７３は、図１に示すように、表示部３５の表示画面の中心に設けられている。ここで、アクチュエータ３７３が情報処理装置３本体に振動を与える方式は、どのようなものでもかまわない。例えば、アクチュエータ３７３は、偏心モーター（ＥＲＭ：Ｅｃｃｅｎｔｒｉｃ  Ｒｏｔａｔｉｎｇ  Ｍａｓｓ）によって振動を生じさせる方式や、リニア・バイブレータ（ＬＲＡ：Ｌｉｎｅａｒ  Ｒｅｓｏｎａｎｔ  Ａｃｔｕａｔｏｒ）によって振動を生じさせる方式や、ピエゾ（圧電）素子によって振動を生じさせる方式等を用いた構成であってもよい。アクチュエータ３７３が振動を生じさせる方式に応じて、増幅部３７２から出力される駆動信号が生成されれば、どのような方式のアクチュエータであっても様々な振動を情報処理装置３のユーザに与えることができる。
【００７６】
なお、上述した説明では、コーデック部３７１で生成されたアナログ振動信号が増幅されてアクチュエータ３７３を駆動するための駆動信号が生成される例を用いたが、コーデック部３７１から増幅部３７２へ出力される信号は、デジタル信号であってもよい。例えば、パルス幅変調（ＰＷＭ：Ｐｕｌｓｅ  Ｗｉｄｔｈ  Ｍｏｄｕｌａｔｉｏｎ）制御によってアクチュエータ３７３を駆動する場合、コーデック部３７１がアクチュエータ３７３をオン／オフするためのパルス信号を生成すればよい。この場合、コーデック部３７１から増幅部３７２へ出力される信号は、パルス波を用いて駆動が制御されるデジタル振動信号となり、増幅部３７２は、当該デジタル振動信号を増幅することになる。
【００７７】
次に、情報処理装置３が行う具体的な処理を説明する前に、図４〜図６を用いて情報処理装置３において行われる処理の概要について説明する。以下の説明では、表示部３５の表示画面内を仮想オブジェクトＯＢＪが移動するゲームを行う際の処理を、情報処理装置３において行われる情報処理の一例として用いる。なお、図４は、表示部３５の表示画面に表示されている仮想オブジェクトＯＢＪが移動する際に、情報処理装置３本体が振動するとともに音声が出力される一例を示す図である。図５は、取得した振動データに基づいて振動制御信号を生成する処理の一例を説明するための図である。図６は、周波数帯域毎に取得した振動データに基づいて振動制御信号を生成する処理の一例を説明するための図である。
【００７８】
図４に示す例では、仮想空間内を移動する仮想オブジェクトＯＢＪが表示部３５の表示画面に表示される。仮想オブジェクトＯＢＪは、ユーザ操作に応じて、または自動的に仮想空間内を移動して表示部３５の表示画面に表示される。具体的には、仮想オブジェクトＯＢＪは、仮想空間内に設置された板面上を転がって移動する球体である。
【００７９】
仮想オブジェクトＯＢＪが仮想空間内の板面上を転がって移動することに応じて、情報処理装置３から音声が出力されるとともに、情報処理装置３本体が振動する。例えば、情報処理装置３本体に設けられたスピーカ（音声出力部３６）は、表示部３５の表示画面に表示されて移動する仮想オブジェクトＯＢＪが音源となった音声を出力する。また、情報処理装置３本体に設けられたアクチュエータ３７３は、仮想オブジェクトＯＢＪが転がって移動する際に生じる振動を生じさせる。本実施例では、当該振動を生じさせるための振動制御信号を生成するための振動データを他の装置から取得する。そして、情報処理装置３は、取得した振動データに基づいて、アクチュエータ３７３を駆動制御するための振動制御信号を生成する。
【００８０】
次に、図５を参照して、振動制御信号を生成する処理の一例を説明する。上述したように、アクチュエータ３７３が生成する振動を制御するための振動制御信号は、他の装置から転送された振動データに基づいて生成される。本実施例では、他の装置から転送されたＡＭＦＭ符号データを振動データとして受信し、当該ＡＭＦＭ符号データに基づいて生成されたＡＭＦＭ波が振動制御信号として用いられる。ここで、ＡＭ符号データは振動の振幅変調（Ａｍｐｌｉｔｕｄｅ  Ｍｏｄｕｌａｔｉｏｎ）を表すデータを示し、ＦＭ符号データは振動の周波数変調（Ｆｒｅｑｕｅｎｃｙ  Ｍｏｄｕｌａｔｉｏｎ）を表すデータを示し、ＡＭＦＭ符号データは振動の振幅変調および周波数変調の両方を表すデータを示している。また、ＡＭＦＭ波は、ＡＭＦＭ符号データに基づいて振幅変調および周波数変調された振動波形を示している。
【００８１】
図５に示すように、ＡＭＦＭ符号データは、振動を変調する一定の更新周期毎に他の装置から転送され、振動の振幅および周波数更新コマンドとして機能する。そして、ＡＭＦＭ符号データは、所定の符号化テーブルを用いてデコードされることによって、ＡＭ情報およびＦＭ情報が取り出される。ここで、ＡＭ情報は、更新前の振動の振幅を基準として更新後の振動の振幅を示す情報である。このようなＡＭ情報を上記更新周期毎に分析することによって、所定の振幅を基準として振動振幅を時系列的に変調させる図５に示すような情報を取得することができる。また、ＦＭ情報は、更新前の振動の周波数を基準として更新後の振動の振幅を示す情報である。このようなＦＭ情報を上記更新周期毎に分析することによって、所定の周波数を基準として振動周波数を時系列的に変調させる図５に示すような情報を取得することができる。なお、ＡＭＦＭ符号データのデコード処理やデコードに用いられる符号化テーブルの例については、後述する。
【００８２】
次に、ＦＭ情報から周波数変調正弦波（ＦＭ波）を生成する。ここで、ＦＭ波は、上記更新周期毎に取得されるＦＭ情報に応じた周波数で変位する図５に示すような正弦波である。
【００８３】
そして、ＡＭ情報をＦＭ波に掛け合わせることによって、ＡＭＦＭ波を生成する。ここで、ＡＭＦＭ波は、上記更新周期毎に取得されるＦＭ情報に応じた周波数、かつ、上記更新周期毎に取得されるＡＭ情報に応じた振幅で変位する図５に示すような波形を有する。このように生成されたＡＭＦＭ波に基づいて、振動制御信号を生成することによって、ＡＭＦＭ波で示される周波数および振幅でアクチュエータ３７３を振動させることができる。
【００８４】
このようなＡＭＦＭ伝送方式で振動データを送信することによって、以下のような効果を期待することができる。第１の効果として、振動データをそのまま送信する方式、振動データのサンプリングレートを落として送信する方式、振動データを所定の方式で圧縮して送信する方式と比較して、振動データを送信する際のデータ通信量を削減することができる。第２の効果として、送信されたＡＭＦＭ符号データをデコードする処理負荷が相対的に低いため、リアルタイムにデコード処理してアクチュエータ３７３の振動制御に繋げることができる。第３の効果として、振動を制御するパラメータが周波数および振幅となるため、振動素材を生成する作業が簡素化することができる。第４の効果として、ＡＭＦＭ伝送方式で制御する振動周波数をアクチュエータ３７３の共振周波数付近に設定することによって、相対的に強い（電力効率の良い）振動をユーザに与えることができる。
【００８５】
また、上述したＡＭＦＭ伝送方式では、周波数帯域毎にＡＭＦＭ符号データを送信してもよい。以下、図６を参照して、周波数帯域毎に取得した振動データに基づいて振動制御信号を生成する処理について説明する。
【００８６】
図６に示すように、本実施例におけるＡＭＦＭ符号データは、振動を変調する一定の更新周期で周波数帯域毎に他の装置からそれぞれ転送され、周波数帯域毎の振動の振幅および周波数更新コマンドとして機能する。例えば、図６に示した例では、低周波数帯域である周波数帯域Ａを対象としたＡＭＦＭ符号データと、高周波数帯域である周波数帯域Ｂを対象としたＡＭＦＭ符号データとが、同じまたは異なる更新周期毎に他の装置から送信されている。
【００８７】
周波数帯域Ａを対象としたＡＭＦＭ符号データは、上述した処理と同様に、所定の符号化テーブルを用いてデコードされることによって、ＡＭ情報およびＦＭ情報が取り出され、ＦＭ情報からＦＭ波が生成される。そして、周波数帯域Ａを対象としたＡＭ情報をＦＭ波に掛け合わせることによって、周波数帯域Ａを対象としたＡＭＦＭ波が生成される。
【００８８】
一方、周波数帯域Ｂを対象としたＡＭＦＭ符号データも、上述した処理と同様に、所定の符号化テーブルを用いてデコードされることによって、ＡＭ情報およびＦＭ情報が取り出され、ＦＭ情報からＦＭ波が生成される。そして、周波数帯域Ｂを対象としたＡＭ情報をＦＭ波に掛け合わせることによって、周波数帯域Ｂを対象としたＡＭＦＭ波が生成される。
【００８９】
そして、周波数帯域Ａを対象としたＡＭＦＭ波と周波数帯域Ｂを対象としたＡＭＦＭ波とを足し合わせることによって、合成波が生成される。上記合成波は、周波数帯域Ａを対象としたＡＭＦＭ情報および周波数帯域Ｂを対象としたＡＭＦＭ情報を併せ持っているため、複数の周波数帯域に対する周波数の情報および振幅の情報に基づいて変位する図６に示すような波形を有する。このように生成された合成波に基づいて、振動制御信号を生成することによって、合成波で示される周波数および振幅でアクチュエータ３７３を振動させることができる。
【００９０】
このような複数の周波数帯域毎にＡＭＦＭ伝送方式で振動データを送信することによって、複数の周波数帯域毎の周波数変化および振幅変化を転送することができるため、他の装置から振動をより正確に伝えることができる。したがって、他の伝送方式と比較してもユーザに与える振動感触を劣化させることなく振動データを伝送することが可能となる。
【００９１】
次に、複数の周波数帯域毎にＡＭＦＭ符号データを転送する際の周波数帯域分割例について説明する。一例として、ＡＭＦＭ符号データを転送する複数の周波数帯域は、振動が与えられる人間の触覚の特性に合わせて設定することが考えられる。人間の皮膚感覚を受容する感覚受容器は、メルケル盤、マイスナー小体、パチニ小体、およびルフィニ終末等で構成されており、それぞれ特有の周波数帯域の振動に応答する。また、人間が振動を感じることができるとされる振動は、０−１０００Ｈｚの周波数帯域の振動であるとされている。ここで、人間の感覚受容器のうち、単独で振動感覚を生じるのはマイスナー小体およびパチニ小体の２つであり、マイスナー小体が低周波振動（例えば、１０−２００Ｈｚ）に応答し、パチニ小体が高周波振動（例えば、７０−１０００Ｈｚ）に応答する。したがって、マイスナー小体を対象とした低周波数帯域（１０−２００Ｈｚ）とパチニ小体を対象とした高周波数帯域（７０−１０００Ｈｚ）とに対して、それぞれＡＭＦＭ符号データをそれぞれ転送することが考えられる。
【００９２】
そして、周波数帯域毎に基準とする周波数（以下、中心周波数と記載する）は、例えば、中心周波数の比率が１．５以上となるように設定するとともに、振動デバイス（上記実施例では、アクチュエータ３７３）の周波数特性（例えば、振動デバイスが有する共振周波数付近）に合うように設定する。このように、振動デバイスが振動しやすい周波数帯を主体として利用することによって、振動を生成する際に消費する電力に対してユーザが感じる振動の感覚量が大きくなるため、より効率よく振動をユーザに感じさせることができる。なお、振動デバイスが理想的な周波数特性（フラットな特性）を有している場合には、上述した人間の感覚受容器の特性だけを考慮すればよいため、中心周波数は例えば低周波数帯域では４０Ｈｚ付近に設定して高周波数帯域では２５０Ｈｚ付近に設定してもよい。
【００９３】
なお、上述した説明では、人間の皮膚感覚を受容する感覚受容器の応答周波数帯域に応じて、ＡＭＦＭ符号データを転送する周波数帯域を分割する例を用いたが、他の特性を基準として当該周波数帯域を分割してもかまわない。例えば、振動させるアクチュエータの特性周波数に応じて、ＡＭＦＭ符号データを転送する周波数帯域を分割してもかまわない。一例として、振動させるアクチュエータが複数の共振周波数を有している場合、当該共振周波数の少なくとも１つを含むように複数の周波数帯域を設定し、当該周波数帯域毎にＡＭＦＭ符号データを転送してもよい。
【００９４】
また、３つ以上の周波数帯域毎にＡＭＦＭ符号データを転送してもよい。一例として、異なる周波数帯域の振動を極めて短い時間間隔で順に発生させる必要がある場合、ＡＭＦＭ符号データを転送する周波数帯域数が少なければ周波数が遷移する速度に更新周期が追いつかないことが考えられる。具体的には、５０Ｈｚ、１５０Ｈｚ、４５０Ｈｚの３つの周波数を有する振動を５０ｍｓ間隔で順に発生させる場合、３つ以上の周波数帯域毎にＡＭＦＭ符号データを転送することによって正確な振動を生じさせることができる。なお、上述したように、人間の触覚のみによって振動を感じる場合、周波数帯域数が２つでもよいが、触覚に聴覚刺激を加えて振動を感じさせる場合には周波数帯域数を３つ以上として制御することが有効となり得る。また、振動周波数を変化させずに複数の一定周波数の振動を与える場合、それぞれの周波数（中心周波数）の比率は、単純な整数比になっていることが望ましい。このように、生じさせる周波数を整数比にすることによって、２つの周波数の振動を同時に発生させた場合に「うなり」が発生することを防止することができる。ここで、「うなり」は、振動周波数がわずかに異なる２つの振動波が干渉して、振動振幅がゆっくり周期的に変わる合成波を生ずる現象である。
【００９５】
また、単一の周波数帯域に対してＡＭＦＭ符号データを転送してもよい。第１の例として、複数の周波数帯域成分を含む振動を発生させる用途がない場合、単一の周波数帯域に対してのみＡＭＦＭ符号データを転送することが考えられる。第２の例として、振動させる振動デバイスの周波数特性がある周波数帯域に極端に偏っており、当該周波数帯域に属する唯一の共振周波数以外ではほとんど振動しない振動デバイスを振動させる場合、当該周波数帯域に対してのみＡＭＦＭ符号データを転送することが考えられる。第３の例として、ＡＭＦＭ符号データを転送する際のデータ圧縮効率を優先する場合、単一の周波数帯域に対してのみＡＭＦＭ符号データを転送することが考えられる。
【００９６】
次に、図７および図８を参照して、ＡＭＦＭ符号データのデコード処理の一例について説明する。なお、図７は、ＡＭＦＭ符号データのデコードに用いられる符号化テーブルの一例を示す図である。図８は、符号化テーブルで用いられている値ｋを算出する際に用いられるｋ算出テーブルの一例を示す図である。
【００９７】
図７において、３ビットの符号を用いて振幅更新命令および周波数更新命令を行う３ｂｉｔＡＭＦＭ符号化テーブルを示している。ＡＭＦＭ符号データのデコード処理では、このようなＡＭＦＭ符号化テーブルを用いて更新処理直前において示している振幅値および周波数を基準として次に設定される振幅値および周波数を設定し、所定のサンプリングレート（例えば、８０００Ｈｚ）で合成波形データを算出する。なお、デコード処理におけるサンプリングレートを上げることによって算出される合成波形の再現精度が上がるがデコード処理負荷が増加することになるため、後述するＡＭＦＭ符号データの更新頻度と必要な合成波形の再現精度とのバランス等を考慮してサンプリングレートを設定すればよい。以下に説明するＡＭＦＭ符号データのデコード処理では、振動の振幅の初期値を１／４０９６、振動の振幅の最小値を１／４０９６、振動の振幅の最大値を１、振動の振幅が０として判定されるゼロ閾値を１．５／４０９６とする。また、以下に説明するＡＭＦＭ符号データのデコード処理では、振動の周波数の初期値を周波数帯域毎に設定されている中心周波数（例えば、振動デバイスの共振周波数である１６０Ｈｚや３２０Ｈｚ付近）、振動の周波数の最小値を１００Ｈｚ、振動の周波数の最大値を１０００Ｈｚとする。
【００９８】
図７に示す振幅更新命令および周波数更新命令は、更新処理直前において示している振幅値および周波数を基準として次に設定される振幅値および周波数をそれぞれ示している。そして、振幅更新命令および周波数更新命令を受信した装置は、次の振幅更新命令および周波数更新命令を受信するまでの期間の振動の振幅値および振動の周波数を、受信した振幅更新命令および周波数更新命令に基づいて更新して設定する。第１の例として、受信した振幅更新命令および周波数更新命令に基づいて設定する振動の振幅値および振動の周波数は、受信直後の値として設定して即時に振動の振幅値および振動の周波数を更新してもよい。第２の例として、受信した振幅更新命令および周波数更新命令に基づいて設定する振動の振幅値および振動の周波数は、次の振幅更新命令および周波数更新命令を受信する直前の値として設定して、上記期間中に当該値に到達するように漸増的および／または漸減的に振動の振幅値および振動の周波数を更新してもよい。第３の例として、受信した振幅更新命令および周波数更新命令に基づいて設定する振動の振幅値および振動の周波数は、次の振幅更新命令および周波数更新命令を受信するまでの期間の途中の値として設定して、当該期間の途中の時点で当該値に到達するように漸増的および／または漸減的に振動の振幅値および振動の周波数を更新してもよい。
【００９９】
例えば、ＡＭＦＭ符号データが符号０（０００）を示す場合、振動の振幅値が初期値（例えば、１／４０９６）にリセットされて更新され、振動の周波数が初期値（例えば、１６０や３２０）にリセットされて更新される。ＡＭＦＭ符号データが符号１（００１）を示す場合、振動の振幅値が２０．５倍（約１．４１４倍）されて更新され、振動の周波数が２０．２倍（約１．１４９倍）されて更新される。ＡＭＦＭ符号データが符号２（０１０）を示す場合、振動の振幅値が２０．５倍（約１．４１４倍）されて更新され、振動の周波数が２−０．２倍（約０．８７１倍）されて更新される。ＡＭＦＭ符号データが符号３（０１１）を示す場合、振動の振幅値が２−０．３倍（約０．８１２倍）されて更新され、振動の周波数が２０．２倍（約１．１４９倍）されて更新される。ＡＭＦＭ符号データが符号４（１００）を示す場合、振動の振幅値が２−０．３倍（約０．８１２倍）されて更新され、振動の周波数が２−０．２倍（約０．８７１倍）されて更新される。ＡＭＦＭ符号データが符号５（１０１）を示す場合、振動の振幅値が２ｋ−２倍されて更新され、振動の周波数は不変とされる。ＡＭＦＭ符号データが符号６（１１０）を示す場合、振動の振幅値が２ｋ倍されて更新され、振動の周波数は不変とされる。ＡＭＦＭ符号データが符号７（１１１）を示す場合、振動の振幅値が２ｋ＋２倍されて更新され、振動の周波数は不変とされる。
【０１００】
ここで、値ｋは、更新処理直前において示している振幅値に応じて設定される。例えば、図８に示すように、更新直前に示している振幅値が最小振幅（例えば、１／４０９６）以上で最小振幅の２０．５倍未満である場合、ｋ＝２に設定される。更新直前に示している振幅値が最小振幅の２０．５倍以上で最小振幅の２１．５倍（約２．８２８倍）未満である場合、ｋ＝１に設定される。更新直前に示している振幅値が最小振幅の２１．５倍以上で最大振幅（例えば、１）の２−１．５倍（約０．３５４倍）以下である場合、ｋ＝０に設定される。更新直前に示している振幅値が最大振幅の２−１．５倍より大きく最大振幅の２−０．５倍（約０．７０７倍）以下である場合、ｋ＝−１に設定される。そして、更新直前に示している振幅値が最大振幅の２−０．５倍より大きく最大振幅以下である場合、ｋ＝−２に設定される。
【０１０１】
なお、上述したＡＭＦＭ符号データのデコード処理では、３ビットの符号を用いて振幅更新命令および周波数更新命令を行う３ｂｉｔＡＭＦＭ符号化テーブルを用いる例を用いたが、他の方式によってデコード処理を行ってもよい。例えば、４ビットの符号を用いて振幅更新命令および周波数更新命令を行う４ｂｉｔＡＭＦＭ符号化テーブルを用いるデコード処理や、２ビットの符号を用いて振幅更新命令を行う２ｂｉｔＡＭ符号化テーブルを用いるデコード処理や、３ビットの符号を用いて振幅更新命令を行う３ｂｉｔＡＭ符号化テーブルを用いるデコード処理等が考えられる。上記４ｂｉｔＡＭＦＭ符号化テーブルを用いるデコード処理は、１５種の振幅更新命令および周波数更新命令を行うことが可能となるため、３ｂｉｔＡＭＦＭ符号化テーブルを用いるデコード処理と比較してＡＭ情報およびＦＭ情報をより詳細に制御することが可能となる。また、上記３ｂｉｔＡＭ符号化テーブルや上記２ｂｉｔＡＭ符号化テーブルを用いるデコード処理は、振幅更新命令のみ可能とし、一例として振動周波数が所定の周波数（例えば、中心周波数であり、実質的にアクチュエータの共振周波数となる当該共振周波数付近の周波数）で一定の単純な正弦波の振幅を変調させることによって行われる。ここで、ユーザに与える振動の感触では、一般的に振幅の影響が高く、周波数の影響が低い傾向がある。したがって、上記３ｂｉｔＡＭ符号化テーブルや上記２ｂｉｔＡＭ符号化テーブルを用いたデコード処理では、振幅に絞った振動制御をすることによって、振幅更新命令に対して詳細な制御をすることが可能となるとともに、データ通信量を削減することが可能となる。
【０１０２】
なお、上記３ｂｉｔＡＭ符号化テーブルや上記２ｂｉｔＡＭ符号化テーブルを用いるデコード処理において用いられる基本波は、周波数一定の単純な正弦波でなくてもよく、矩形波、三角波、のこぎり波等の正負の値を繰り返す形状の波形や振幅一定の他の形状の波形を有する基本波であってもよい。また、特定の周波数帯域成分を有するノイズが上記基本波であってもよい。例えば、特定の周波数帯域成分を通過させるバンドパスフィルタを通したホワイトノイズ等によって上記基本波が形成されてもよい。さらに、上記３ｂｉｔＡＭ符号化テーブルや上記２ｂｉｔＡＭ符号化テーブルを用いるデコード処理において転送されるＡＭＦＭ符号データに、上記基本波の周波数、形状、ノイズ種別等を示す情報を含ませておき、当該情報に基づいた基本波を用いて当該デコード処理を行ってもよい。
【０１０３】
また、上記基本波は、正負の値を繰り返さない形状の波形でもよい。例えば、基準値より大きい値と小さい値とを繰り返す波形であればよく、正の極大値および０以上の極小値を交互に繰り返す形状の波形や、０以下の極大値および負の極小値を交互に繰り返す形状の波形でもよい。一例として、基本波の波形は、
（１−ｃｏｓ（２πｆｔ））／２
で表される、＋１の極大値と０の極小値とを交互に繰り返す波形でもよい。ここで、ｆは周波数であり、ｔは時間である。このような基本波を用いてＦＭ波を生成した場合、ＦＭ情報によって示される周波数で＋１の極大値と０の極小値とを交互に繰り返す波形が形成される。そして、当該ＦＭ波に基づいてＡＭＦＭ波を生成した場合、ＡＭ情報によって示される０〜＋１の間の振幅値を極大値として、上記ＦＭ波によって示される周波数で当該極大値と０の極小値とを交互に繰り返す波形が形成される。
【０１０４】
このような形状の基本波を用いることによって、以下のような効果を期待することができる。例えば、アクチュエータ３７３がリニア振動モータで構成される場合、当該リニア振動モータにバネが設けられる。そして、上記リニア振動モータに正の電圧を印加するとバネの力とは反対方向に内部の重りの位置が移動し、当該バネの反力によって当該重りが元の位置に戻る方向に作用している状態になる。したがって、上記重りは、負の電圧を印加しなくても印加電圧を０にするだけで元の位置に戻るため、正の電圧を印加するだけで充分な強さの振動を生成することが可能であり、上記リニア振動モータを駆動する際の電力効率の面での効果を得ることができる。
【０１０５】
また、複数の周波数帯域毎にＡＭＦＭ符号データを取得してデコード処理する場合、単一の周波数帯域に対してＡＭＦＭ符号データを取得してデコード処理する態様と比較して、少ない更新頻度でＡＭＦＭ符号データを取得して振動データを生成してもよい。例えば、単一の周波数帯域に対してＡＭＦＭ符号データを取得してデコード処理する態様において他の装置から４００Ｈｚの周期でＡＭＦＭ符号データを取得してデコード処理する場合、２つの周波数帯域毎にそれぞれＡＭＦＭ符号データを取得してデコード処理する態様において他の装置から２００Ｈｚの周期でそれぞれＡＭＦＭ符号データを取得してデコード処理してもよい。また、複数の周波数帯域毎にＡＭＦＭ符号データを取得してデコード処理する場合、周波数帯域毎に異なる更新頻度でＡＭＦＭ符号データを取得してデコード処理してもよい。一例として、低周波数帯域に対する更新頻度に対して、高周波数帯域に対する更新頻度を相対的に少なく設定することが考えられる。他の例として、周波数帯域毎に生じている振動振幅の大きさに応じて、周波数帯域毎に異なる更新頻度でＡＭＦＭ符号データを転送してデコード処理することが考えられる。例えば、第１の周波数帯域において生じている振動振幅の大きさが第２の周波数帯域において生じている振動振幅の大きさより大きい場合、第１の周波数帯域において他の装置から相対的に多い更新頻度（例えば、４００Ｈｚの周期）でＡＭＦＭ符号データを取得してデコード処理し、第２の周波数帯域において他の装置から相対的に少ない更新頻度（例えば、２００Ｈｚの周期）でＡＭＦＭ符号データを取得してデコード処理することが考えられる。また、第１の周波数帯域において生じている振動振幅の大きさが第２の周波数帯域において生じている振動振幅の大きさと同等で、何れも所定の閾値より大きい場合、第１の周波数帯域および第２の周波数帯域において他の装置から相対的に多い更新頻度（例えば、４００Ｈｚの周期）でそれぞれＡＭＦＭ符号データを取得してデコード処理することが考えられる。また、第１の周波数帯域において生じている振動振幅の大きさが第２の周波数帯域において生じている振動振幅の大きさと同等で、何れも所定の閾値より小さい場合、第１の周波数帯域および第２の周波数帯域において他の装置から相対的に少ない更新頻度（例えば、２００Ｈｚの周期）でそれぞれＡＭＦＭ符号データを取得してデコード処理することが考えられる。
【０１０６】
次に、ＡＭ符号データ（すなわち、振幅更新命令のみが行われる符号データ）の転送元となる装置においてＡＭ符号データをエンコードする処理と、当該ＡＭ符号データを受信してデコードする処理の一例について説明する。まず、上記転送元装置において、転送したいオリジナルの振動データ（振動波形）が準備される。そして、上記転送元装置が上記振動データを他の装置に送信するために、複数の周波数帯域毎にＡＭ符号データを転送する場合、当該周波数帯域毎のバンドパスフィルタをそれぞれ通して、各周波数帯域成分の振動データをそれぞれ生成する。一例として、１６０Ｈｚを中心周波数とする第１の周波数帯域に対応するＡＭ符号データと３２０Ｈｚを中心周波数とする第２の周波数帯域に対応するＡＭ符号データとを転送する場合、オリジナルの振動データを第１の周波数帯域成分を通過させるバンドパスフィルタを用いて処理することによって第１の周波数帯域成分の振動データを生成し、オリジナルの振動データを第２の周波数帯域成分を通過させるバンドパスフィルタを用いて処理することによって第２の周波数帯域成分の振動データを生成する。そして、第１の周波数帯域成分の振動データを示す振動波形のエンベロープ波形を用いて、所定の符号化テーブルを用いて当該エンベロープの概形を符号化することによって第１の周波数帯域成分のＡＭ符号データを生成する。また、第２の周波数帯域成分の振動データを示す振動波形のエンベロープ波形を用いて、上記符号化テーブルを用いて当該エンベロープの概形を符号化することによって第２の周波数帯域成分のＡＭ符号データを生成する。そして、ＡＭ符号データの転送元となる装置は、生成された第１の周波数帯域成分のＡＭ符号データおよび第２の周波数帯域成分のＡＭ符号データを、更新周期毎に他の装置へ送信する。なお、上述したＡＭ符号データをエンコードする処理は、上記転送元装置におけるオフライン処理において予め分析して用意されていてもよい。
【０１０７】
一方、上記周波数帯域毎のＡＭ符号データを受信した装置では、上記符号化テーブルを用いて第１の周波数帯域成分のＡＭ情報を取り出し、当該第１の周波数帯域成分のＡＭ情報と第１の周波数帯域成分の基本波（例えば、１６０Ｈｚの正弦波）とを掛け合わせることによって、第１の周波数帯域成分に対応するＡＭ波を生成する。また、上記装置では、上記符号化テーブルを用いて第２の周波数帯域成分のＡＭ情報を取り出し、当該第２の周波数帯域成分のＡＭ情報と第２の周波数帯域成分の基本波（例えば、３２０Ｈｚの正弦波）とを掛け合わせることによって、第２の周波数帯域成分に対応するＡＭ波を生成する。そして、上記装置では、第１の周波数帯域成分に対応するＡＭ波と第２の周波数帯域成分に対応するＡＭ波とを足し合わせることによって合成波を生成し、当該合成波に基づいてアクチュエータを駆動制御するための振動制御信号を生成する。なお、上述したＡＭ符号データをデコードしてアクチュエータを振動制御する処理は、上記転送元装置からＡＭ符号データを取得することに応じてリアルタイムに行われてもよい。
【０１０８】
次に、ＡＭＦＭ符号データ（すなわち、振幅更新命令および周波数更新命令が行われる符号データ）の転送元となる装置において行われるデータ出力処理の詳細を説明する。なお、後述する説明では、データ出力処理の一例として、符号データ送信処理を用いる。まず、図９を参照して、上記転送元装置の符号データ送信処理において用いられる主なデータについて説明する。図９は、符号データ送信処理を行う際に、上記転送元装置の記憶部に記憶される主なデータおよびプログラムの一例を示す図である。
【０１０９】
図９に示すように、上記転送元装置の記憶部のデータ記憶領域には、オリジナル振動データＤａ、周波数分析処理データＤｂ、エンベロープ処理データＤｃ、符号化処理データＤｄ、およびＡＭＦＭ符号データＤｅ等が記憶される。なお、上記転送元装置の記憶部には、図９に示すデータの他、実行するアプリケーションで用いるデータ等、処理に必要なデータ等が記憶されてもよい。また、上記転送元装置の記憶部のプログラム記憶領域には、符号データ送信プログラムを構成する各種プログラム群Ｐａが記憶される。
【０１１０】
オリジナル振動データＤａは、上記転送元装置において予め準備されているオリジナルの振動データ（振動波形）であり、ＡＭＦＭ符号データを生成する処理の元になる振動データである。
【０１１１】
周波数分析処理データＤｂは、オリジナルの振動データ（振動波形）を周波数分析することによって得られる当該振動データに含まれる周波数を示すデータである。
【０１１２】
エンベロープ処理データＤｃは、オリジナルの振動データまたは所定の周波数帯域成分の振動データを示す振動波形のエンベロープ波形を示すデータである。
【０１１３】
符号化処理データＤｄは、ＡＭ情報（エンベロープ概形）および／またはＦＭ情報を用いて符号化する際に用いられるデータであり、例えば、エンコード処理に用いられる符号化テーブルデータ等を含むデータである。
【０１１４】
ＡＭＦＭ符号データＤｅは、ＡＭ情報（エンベロープ概形）および／またはＦＭ情報を符号化することによって得られるＡＭＦＭ符号データを示すデータである。
【０１１５】
次に、図１０を参照して、上記転送元装置において行われるデータ出力処理の一例である符号データ送信処理の詳細を説明する。なお、図１０は、上記転送元装置において実行される符号データ送信処理の一例を示すフローチャートである。ここで、図１０に示すフローチャートにおいては、上記転送元装置における処理のうち、オリジナルの振動データに基づいてＡＭＦＭ符号データを生成して送信する処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。また、図１０では、上記転送元装置の制御部が実行する各ステップを「Ｓ」と略称する。
【０１１６】
上記転送元装置の制御部のＣＰＵは、上記転送元装置の記憶部のメモリ等を初期化し、上記転送元装置のプログラム格納部から符号データ送信プログラムをメモリに読み込む。そして、ＣＰＵによって当該符号データ送信プログラムの実行が開始される。図１０に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
【０１１７】
なお、図１０に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび／または代えて別の処理が実行されてもよい。また、本実施例では、上記フローチャートの各ステップの処理を上記転送元装置の制御部（ＣＰＵ）が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を上記ＣＰＵが実行し、その他のステップの処理を上記ＣＰＵ以外のプロセッサや専用回路が実行するようにしてもよく、上記フローチャートにおける全部のステップの処理を上記ＣＰＵ以外のプロセッサや専用回路が実行するようにしてもよい。
【０１１８】
図１０において、上記転送元装置の制御部は、送信設定を行い（ステップ６１）、次のステップに処理を進める。例えば、上記転送元装置の制御部は、他の装置（例えば、情報処理装置３）へＡＭＦＭ符号データを送信するための初期設定を行う。一例として、上記転送元装置の制御部は、ＡＭＦＭ符号データを送信する周波数帯域の数、各周波数帯域の範囲、ＡＭＦＭ符号データを送信する周期、符号化に用いる符号化テーブル等を符号化処理データＤｄに設定して、各パラメータを初期設定する。
【０１１９】
次に、上記転送元装置の制御部は、ＡＭＦＭ符号データを生成する対象とするオリジナルの振動データを上記転送元装置の記憶部から取得して（ステップ６２）、次のステップに処理を進める。例えば、上記転送元装置の制御部は、上記転送元装置の記憶部に予め格納されている複数の振動データからＡＭＦＭ符号データを生成する対象とする振動データを抽出し、当該抽出した振動データをオリジナル振動データＤａとして格納する。
【０１２０】
次に、上記転送元装置の制御部は、当該処理で用いる一時変数Ｎを１に初期設定し（ステップ６３）、次のステップに処理を進める。
【０１２１】
次に、上記転送元装置の制御部は、第Ｎの周波数帯域に応じたバンドパスフィルタ処理を行い（ステップ６４）、次のステップに処理を進める。例えば、上記転送元装置の制御部は、第Ｎの周波数帯域成分を通過させるバンドパスフィルタを設定し、当該バンドパスフィルタを用いてオリジナル振動データＤａとして格納されている振動データ（振動波形）を処理することによって第Ｎの周波数帯域成分以外の周波数帯域成分が除去された振動データを生成する。
【０１２２】
次に、上記転送元装置の制御部は、上記ステップ６４で生成した第Ｎの周波数帯域成分の振動データを周波数分析して（ステップ６５）、次のステップに処理を進める。例えば、上記転送元装置の制御部は、第Ｎの周波数帯域成分の振動データを周波数分析することによって当該振動データに含まれている振動の周波数変化を分析し、当該分析結果を示すデータを周波数分析処理データＤｂとして格納する。
【０１２３】
次に、上記転送元装置の制御部は、第Ｎの周波数帯域成分に対応する周波数分析処理データＤｂに基づいて、第Ｎの周波数帯域成分におけるＦＭ情報を生成し（ステップ６６）、次のステップに処理を進める。例えば、上記転送元装置の制御部は、上記ステップ６５において得られた周波数分析結果に基づいて、第Ｎの周波数帯域成分の振動データにおける周波数変化を示すＦＭ情報（例えば、図５や図６に示すようなＦＭ情報）を生成する。
【０１２４】
次に、上記転送元装置の制御部は、上記ステップ６４で生成した第Ｎの周波数帯域成分の振動データのエンベロープ波形を生成して（ステップ６７）、次のステップに処理を進める。例えば、上記転送元装置の制御部は、上記ステップ６４で生成した第Ｎの周波数帯域成分の振動データ（振動波形）のエンベロープをとった信号を生成して、当該信号を示すデータをエンベロープ処理データＤｃとして格納する。なお、上記エンベロープ処理では、第Ｎの周波数帯域成分の振動データ（例えば、横軸が時間、縦軸が振幅で示された波形データ）の移動最大値（移動する一定区間毎の最大値）のエンベロープを算出してもよいし、上記振動データの一定区間毎の区間最大値のエンベロープを算出してもよいし、上記振動データにおける振幅の極大値を通る曲線を算出してもよい。
【０１２５】
次に、上記転送元装置の制御部は、上記ステップ６７で生成したエンベロープ波形の概形およびＦＭ情報を符号化することによって、ＡＭＦＭ符号データを生成して（ステップ６８）、次のステップに処理を進める。例えば、上記転送元装置の制御部は、上記ステップ６７で生成したエンベロープ波形の概形に基づいて、ＡＭＦＭ符号データを送信する周期毎の第Ｎの周波数帯域成分における振幅の変化量を算出する。また、上記転送元装置の制御部は、上記ステップ６６において生成したＦＭ情報に基づいて、ＡＭＦＭ符号データを送信する周期毎の第Ｎの周波数帯域成分における周波数の変化量を算出する。そして、上記転送元装置の制御部は、符号化に用いられる符号化テーブルに基づいて、算出された振幅の変化量および周波数の変化量をエンコードすることによって、ＡＭＦＭ符号データを送信する周期毎の第Ｎの周波数帯域成分に対応するＡＭＦＭ符号データを生成し、当該ＡＭＦＭ符号データを第Ｎの周波数帯域成分に対応するＡＭＦＭ符号データＤｅとして格納する。
【０１２６】
次に、上記転送元装置の制御部は、上記ステップ６２で取得したオリジナルの振動データに対して、周波数帯域毎の符号化処理が終了したか否かを判定する（ステップ６９）。そして、上記転送元装置の制御部は、符号化処理が終了していない周波数帯域が残っている場合、ステップ７０に処理を進める。一方、上記転送元装置の制御部は、符号化処理が終了していない周波数帯域が残っていない場合、ステップ７１に処理を進める。
【０１２７】
ステップ７０において、上記転送元装置の制御部は、一時変数Ｎに１を加算し一時変数Ｎを更新し、上記ステップ６４に処理を進める。
【０１２８】
一方、ステップ７１において、上記転送元装置の制御部は、ＡＭＦＭ符号データを送信する周期毎に当該周期に対応するＡＭＦＭ符号データを転送先装置（例えば、情報処理装置３）へ送信し、当該フローチャートによる処理を終了する。
【０１２９】
なお、上述したＡＭＦＭ符号データをエンコードする処理（すなわち、上記ステップ６１〜ステップ６９の処理）は、上記転送元装置におけるオフライン処理において予め処理されてＡＭＦＭ符号データＤｅとして格納されていてもよいし、転送先の装置からの要請に応じて、リアルタイムに行われてもよい。
【０１３０】
次に、ＡＭＦＭ符号データの転送先となる情報処理装置３において行われる振動信号生成の詳細を説明する。なお、後述する説明では、振動信号生成処理の一例として、符号データ受信処理を用いる。まず、図１１を参照して、情報処理装置３の符号データ受信処理において用いられる主なデータについて説明する。図１１は、符号データ受信処理を行う際に、情報処理装置３の記憶部３２に記憶される主なデータおよびプログラムの一例を示す図である。
【０１３１】
図１１に示すように、記憶部３２のデータ記憶領域には、受信データＤｍ、ＡＭ情報データＤｎ、ＦＭ情報データＤｏ、ＦＭ波データＤｐ、ＡＭＦＭ波データＤｑ、合成波データＤｒ、および振動制御信号データＤｓ等が記憶される。なお、記憶部３２には、図１１に示すデータの他、実行するアプリケーションで用いるデータ等、処理に必要なデータ等が記憶されてもよい。また、記憶部３２のプログラム記憶領域には、符号データ受信プログラムを構成する各種プログラム群Ｐｂが記憶される。例えば、各種プログラム群Ｐｂは、ＡＭＦＭ符号データを受信するための受信プログラム、ＡＭＦＭ符号データをデコードするためのデコードプログラム、振動制御信号を生成するための振動制御信号生成プログラム等が含まれる。
【０１３２】
受信データＤｍは、他の装置（例えば、上述した転送元装置）から受信したデータである。
【０１３３】
ＡＭ情報データＤｎは、他の装置から転送されたＡＭＦＭ符号データから取り出されたＡＭ情報を示すデータである。ＦＭ情報データＤｏは、他の装置から転送されたＡＭＦＭ符号データから取り出されたＦＭ情報を示すデータである。
【０１３４】
ＦＭ波データＤｐは、ＦＭ情報から生成された周波数変調正弦波（ＦＭ波）を示すデータである。ＡＭＦＭ波データＤｑは、ＡＭ情報をＦＭ波に掛け合わせて生成されたＡＭＦＭ波を示すデータである。
【０１３５】
合成波データＤｒは、周波数帯域毎に生成されたＡＭＦＭ波を足し合わせて生成された合成波を示すデータである。振動制御信号データＤｓは、上記合成波に基づいて生成された、アクチュエータ３７３の駆動制御を行うためのデータである。例えば、振動制御信号データＤｓは、制御部３１から振動発生部３７へ出力するための振動制御信号（振動制御信号ＣＳ；図３参照）を示すデータである。
【０１３６】
次に、図１２を参照して、情報処理装置３において行われる振動信号生成処理の一例である符号データ受信処理の詳細を説明する。なお、図１２は、情報処理装置３において実行される符号データ受信処理の一例を示すフローチャートである。ここで、図１２に示すフローチャートにおいては、情報処理装置３における処理のうち、他の装置からＡＭＦＭ符号データを受信して振動制御信号を生成する処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。また、図１２では、情報処理装置３の制御部３１が実行する各ステップを「Ｓ」と略称する。
【０１３７】
情報処理装置３の制御部３１のＣＰＵは、記憶部３２のメモリ等を初期化し、情報処理装置３のプログラム格納部３３から符号データ受信プログラムをメモリに読み込む。そして、ＣＰＵによって当該符号データ受信プログラムの実行が開始される。図１２に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
【０１３８】
なお、図１２に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび／または代えて別の処理が実行されてもよい。また、本実施例では、上記フローチャートの各ステップの処理を情報処理装置３の制御部３１（ＣＰＵ）が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を上記ＣＰＵが実行し、その他のステップの処理を上記ＣＰＵ以外のプロセッサや専用回路が実行するようにしてもよく、上記フローチャートにおける全部のステップの処理を上記ＣＰＵ以外のプロセッサや専用回路が実行するようにしてもよい。
【０１３９】
図１２において、制御部３１は、受信設定を行い（ステップ８１）、次のステップに処理を進める。例えば、制御部３１は、他の装置（例えば、上記転送元装置）からＡＭＦＭ符号データを受信するための初期設定を行う。一例として、制御部３１は、ＡＭＦＭ符号データを受信する周波数帯域の数、各周波数帯域の範囲、ＡＭＦＭ符号データを受信する周期、デコード処理に用いる符号化テーブル等を設定して、各パラメータを初期設定する。なお、上記受信設定において設定するパラメータについては、他の装置から受信した受信データに記述された情報に基づいて設定してもよい。
【０１４０】
次に、制御部３１は、他の装置から符号データ（例えば、ＡＭＦＭ符号データ）を受信するのを待つ（ステップ８２）。そして、制御部３１は、他の装置から符号データを受信した場合、当該受信したデータを受信データＤｍとして格納して、ステップ８３に処理を進める。
【０１４１】
ステップ８３において、制御部３１は、上記ステップ８２で受信したＡＭＦＭ符号データをデコードしてＡＭ情報を取り出し、次のステップに処理を進める。例えば、制御部３１は、処理対象とする周波数帯域を設定して、上記ステップ８２で受信したデータから当該周波数帯域に対応するＡＭＦＭ符号データを抽出し、設定されている符号化テーブルに基づいて当該周波数帯域成分のＡＭ情報を取り出して、ＡＭ情報データＤｎとして格納する。ここで、ＡＭ情報の取り出し方については、図５〜図８を用いて説明した態様と同様である。なお、ＡＭ情報として算出された振幅値が予め設定されている振動振幅の最小値（例えば、１／４０９６）より小さい場合は、ＡＭ情報を当該最小値に設定する。また、ＡＭ情報として算出された振幅値が予め設定されている振動振幅の最大値（例えば、１）より大きい場合は、ＡＭ情報を当該最大値に設定する。
【０１４２】
次に、制御部３１は、上記ステップ８２で受信したＡＭＦＭ符号データをデコードしてＦＭ情報を取り出し（ステップ８４）、次のステップに処理を進める。例えば、制御部３１は、処理対象として設定されている周波数帯域に対応するＡＭＦＭ符号データを上記ステップ８２で受信したデータから抽出し、設定されている符号化テーブルに基づいて当該周波数帯域成分のＦＭ情報を取り出して、ＦＭ情報データＤｏとして格納する。なお、ＦＭ情報の取り出し方については、図５〜図８を用いて説明した態様と同様である。なお、ＦＭ情報として算出された周波数が予め設定されている振動周波数の最小値（例えば、１００Ｈｚ）より小さい場合は、ＦＭ情報を当該最小値に設定する。また、ＦＭ情報として算出された周波数が予め設定されている振動周波数の最大値（例えば、１０００Ｈｚ）より大きい場合は、ＦＭ情報を当該最大値に設定する。
【０１４３】
次に、制御部３１は、上記ステップ８４において取り出されたＦＭ情報から周波数変調正弦波（ＦＭ波）を生成し（ステップ８５）、次のステップに処理を進める。例えば、制御部３１は、図５および図６を用いて説明したように、ＦＭ情報に応じた周波数で変位する正弦波を上記周波数帯域に対応するＦＭ波として生成し、当該ＦＭ波を示すデータをＦＭ波データＤｐとして格納する。
【０１４４】
次に、制御部３１は、上記ステップ８３において取り出されたＡＭ情報を上記ステップ８５で生成されたＦＭ波に掛け合わせてＡＭＦＭ波を生成し（ステップ８６）、次のステップに処理を進める。例えば、制御部３１は、上記ステップ８５で生成されたＦＭ波に応じた周波数で上記ステップ８３において取り出されたＡＭ情報に応じた振幅で変位する振動波形を上記周波数帯域に対応するＡＭＦＭ波として生成し、当該ＡＭＦＭ波を示すデータをＡＭＦＭ波データＤｑとして格納する。なお、振動を生成するアプリケーションで用いる振動振幅の値に、ＡＭＦＭ波の振幅値を換算する場合、上記ステップ８６において当該換算に必要な倍率でＡＭＦＭ波の振幅値を変更してもよい。例えば、上記アプリケーション内部で振動サンプルが符号付き１６ビット整数型（−３２７６８〜＋３２７６７）で表現される場合、ＡＭＦＭ波の振幅値を３２７６７倍して換算を行うとともに、ＡＭＦＭ波の振幅値がゼロ閾値（例えば、１．５／４０９６）より小さい場合はアプリケーションで用いる振動振幅の値を０に換算する。
【０１４５】
次に、制御部３１は、上記ステップ８２において、他の周波数帯域の符号データを受信しているか否かを判定する（ステップ８７）。そして、制御部３１は、他の周波数帯域の符号データを受信している場合、別の周波数帯域を処理対象に設定して、上記ステップ８３に処理を進める。一方、制御部３１は、他の周波数帯域の符号データを受信していない場合（全ての周波数帯域の符号データに対するデコード処理が終了している場合）、別の周波数帯域を処理対象に設定して、ステップ８３に処理を進める。
【０１４６】
ステップ８８において、制御部３１は、上記ステップ８６において生成された各周波数帯域を対象としたＡＭＦＭ波を足し合わせることによって合成波を生成し、次のステップに処理を進める。例えば、制御部３１は、周波数帯域を対象としたＡＭＦＭ波を足し合わせることによって生成された合成波を示すデータ合成波データＤｒとして格納する。
【０１４７】
次に、制御部３１は、上記ステップ８８において生成された合成波に基づいて振動制御信号を生成し（ステップ８９）、次のステップに処理を進める。例えば、制御部３１は、上記ステップ８８において生成された合成波をそのまま振動制御信号として生成して、振動制御信号データＤｓに格納する。
【０１４８】
次に、制御部３１は、振動制御信号を出力し（ステップ９０）、次のステップに処理を進める。例えば、制御部３１は、振動制御信号データＤｓが示す振動制御信号ＣＳを振動発生部３７へ出力する。これによって、振動発生部３７は、振動制御信号ＣＳに応じた振動をアクチュエータ３７３から発生させる。
【０１４９】
次に、制御部３１は、処理を終了するか否かを判断する（ステップ９１）。処理を終了する条件としては、例えば、処理を終了させる条件が満たされたことや、ユーザが処理を終了する操作を行ったこと等がある。制御部３１は、処理を終了しない場合に上記ステップ８２に戻って処理を繰り返し、処理を終了する場合に当該フローチャートによる処理を終了する。
【０１５０】
このように、上述した実施例に係る処理では、転送元の装置から転送された符号データを用いて、転送先の装置（例えば、情報処理装置３）において振動データを生成することができる。ここで、転送先の装置では、所定の周期毎に転送された符号データによって、アクチュエータを振動させている途中で振動パラメータ（例えば、振動周波数、振動振幅）が変化させることも可能であり、振動中に振動パラメータを変化させる場合に符号データを効率的に取り扱うことができる。
【０１５１】
なお、上述した実施例では、装置間で符号データを転送することによって転送先の装置において当該符号データに基づいた振動信号が生成される例を用いたが、他の態様によって振動信号が生成されてもよい。例えば、振動信号を生成する装置（上述の例では、情報処理装置３）の中に、所定の周期毎に生成された符号データを予め格納しておき、当該符号データに基づいた振動信号が必要となったときに自機に格納されている符号データを取得してデコードすることによって振動信号を生成してもよい。これによって、振動信号を生成する装置において、振動信号を生成するために記憶しておくデータ量を少なくすることが可能となる。
【０１５２】
また、上述した実施例では、情報処理装置３にアクチュエータ３７３が１つ設けられている例を用いたが、ユーザに振動を与えるアクチュエータが複数設けられてもよい。一例として、情報処理装置３の左右に一対のアクチュエータを設けてもよい。この場合、制御部３１は、１つの符号データからそれぞれのアクチュエータを駆動するための振動制御信号をそれぞれ生成してもいいし、それぞれ別の符号データ（例えば、一方のアクチュエータ用の符号データと他方のアクチュエータ用の符号データ）からそれぞれのアクチュエータを駆動するための振動制御信号をそれぞれ生成してもよい。
【０１５３】
例えば、アクチュエータ３７３が複数設けられており、それぞれのアクチュエータ３７３から独立した振動を発生させる場合、アクチュエータ３７３毎に振動を制御するための振動制御信号が制御部３１から出力される。この場合、コーデック部３７１は、制御部３１から出力された振動制御信号をそれぞれ復号して、アクチュエータ３７３毎に振動を発生させるためのアナログ振動信号を生成して、増幅部３７２へそれぞれ出力する。そして、増幅部３７２は、コーデック部３７１から出力されたアナログ振動信号の電流／電圧の振幅変化をそれぞれ増大させて駆動信号を生成して、複数のアクチュエータ３７３へそれぞれ出力する。複数のアクチュエータが情報処理装置３に備えられている場合、ユーザの皮膚における異なる２点（一例として、情報処理装置３本体を把持するユーザの左手と右手）に刺激を与えることによって擬似的な１点の刺激を知覚させるファントムセンセーションを利用して、当該アクチュエータは、表示部３５に表示している所定画像の位置が振動源であるように擬似的に知覚させる振動を情報処理装置３のユーザに与えることも可能となる。
【０１５４】
また、上述した実施例では、符号データを転送する転送元の装置から情報処理装置３へ当該符号データを無線で送信する例を用いたが、当該転送元の装置から情報処理装置３へ当該符号データを有線で送信してもよい。無線または有線によって通信する転送速度が遅い場合であっても、符号データを送ることによって振動制御の遅延を防止できる。
【０１５５】
また、符号データの転送先となる装置は、ユーザが把持して操作する操作装置（いわゆる、コントローラ）であってもよい。この場合、操作装置内に振動を生成するアクチュエータが設けられ、符号データの転送元装置（例えば、ゲーム装置本体）から当該操作装置（例えば、コントローラ）へ振動データを生成するための符号データが無線通信で転送される。そして、上記操作装置内で符号データをデコードし、当該デコードされた振動データに基づいて内蔵されているアクチュエータを駆動制御する。このように、ゲーム装置本体と当該本体に無線接続されたコントローラとから構成されるゲームシステムであっても、当該ゲーム装置本体から符号データをコントローラに送信して当該コントローラ内のアクチュエータの駆動制御することによって、上記と同様の効果を得ることができる。なお、上記ゲーム装置本体と無線接続されるコントローラは、複数（例えば、複数のユーザがそれぞれ把持する複数のコントローラや１人のユーザが両手にそれぞれ把持する一対のコントローラ）であってもよく、ゲーム装置本体とアクチュエータをそれぞれ内蔵した複数のコントローラから構成されるゲームシステムでもよい。この場合、ゲーム装置本体から複数のコントローラへ振動データを生成するための符号データが無線通信でそれぞれ転送されることによって、それぞれのコントローラにおいて当該符号データに応じた振動を生成することができる。なお、上記ゲーム装置本体では振動データを符号化する処理は行わず、当該ゲーム装置本体にインストールされるプログラム等に振動データが予め符号化されたデータが含まれていてもよい。この場合、上記ゲーム装置本体は、予め符号化された符号データを必要に応じてコントローラに出力し、当該コントローラにおいて当該符号データをデコードすることになる。なお、ゲーム装置本体と単一または複数のコントローラとの間の通信は、無線であってもよいし、有線であってもよい。
【０１５６】
また、上述した説明ではデータ出力処理（例えば、符号データ送信処理）を転送元装置で行い、振動信号生成処理（符号データ受信処理）を情報処理装置３で行う例を用いたが、上記処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、上記転送元装置や情報処理装置３がさらに他の装置（例えば、別のサーバ、他のゲーム装置、他の携帯端末）と通信可能に構成されている場合、上記処理における処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記処理における処理ステップの少なくとも一部を他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した処理は、少なくとも１つの情報処理装置により構成される情報処理システムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。なお、少なくとも１つの情報処理装置により構成される情報処理システムは、複数の情報処理装置により構成される情報処理システム（いわゆる、複数の装置の複合体で構成されるシステム）と１つの情報処理装置によって構成される情報処理システム（いわゆる、複数のユニットが構成された単独の装置で構成されるシステム）とが考えられる。また、上記実施例においては、転送元装置や情報処理装置３の制御部が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、転送元蔵置や情報処理装置３が備える専用回路によって上記処理の一部または全部が行われてもよい。
【０１５７】
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本実施例を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置（据置型のゲーム装置）と携帯型の情報処理装置（携帯型のゲーム装置）との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理の各ステップの処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本実施例を実現できることは言うまでもない。
【０１５８】
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。また、上述した情報処理装置で用いられる各構成部品の形状、数、配置位置、部品が有する機能等は、単なる一例に過ぎず他の形状、数、配置位置であってもいいし、他の機能を有するものであっても、本実施例を実現できることは言うまでもない。一例として、情報処理装置に振動を与えるアクチュエータや情報処理装置から音声を出力するスピーカは、３つ以上であってもよい。また、情報処理装置は、複数の表示部を有してもよい。また、上述した説明では、携帯型の装置（例えば、タブレット端末）を情報処理装置３の一例として用いたが、情報処理装置３は、携帯型の装置より相対的に大きな手持ち型の装置または可搬型の装置でもよい。ここで、手持ち型の装置とは、ユーザが手に持って操作することができる装置であり、上述した携帯型の装置を含む概念である。また、可搬型の装置とは、当該装置を用いる際に当該装置本体を移動させたり、当該装置を用いる際に当該本体の姿勢を変えたり、当該装置本体を持ち運びしたりできる装置であり、上述した手持ち型の装置や携帯型の装置を含む概念である。
【０１５９】
また、上記振動信号生成プログラムは、外部メモリ等の外部記憶媒体を通じて情報処理装置３に供給されるだけでなく、有線または無線の通信回線を通じて情報処理装置３に供給されてもよい。また、上記振動信号生成プログラムは、情報処理装置３内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記振動信号生成プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記振動信号生成プログラムを記憶する情報記憶媒体としては、上記振動信号生成プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のゲームプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
【０１６０】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施例の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書（定義を含めて）が優先する。
【産業上の利用可能性】
【０１６１】
以上のように、本発明は、振動パラメータを変化させること等を目的として、例えば振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラム等として有用である。
【符号の説明】
【０１６２】
３…情報処理装置
３１…制御部
３２…記憶部
３３…プログラム格納部
３４…入力部
３４１…タッチパネル
３５…表示部
３６…音声出力部
３７…振動発生部
３７１…コーデック部
３７２…増幅部
３７３…アクチュエータ
【図１】
2019063547.tif 000003
【図２】
2019063547.tif 000004
【図３】
2019063547.tif 000005
【図４】
2019063547.tif 000006
【図５】
2019063547.tif 000007
【図６】
2019063547.tif 000008
【図７】
2019063547.tif 000009
【図８】
2019063547.tif 000010
【図９】
2019063547.tif 000011
【図１０】
2019063547.tif 000012
【図１１】
2019063547.tif 000013
【図１２】
2019063547.tif 000014
【手続補正書】
【提出日】平成30年12月25日(2018.12.25)
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、データ出力プログラム、データ出力装置、およびデータ出力方法に関し、特に例えば、ユーザに与える振動に関連するデータ出力プログラム、データ出力装置、およびデータ出力方法に関する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
それ故に、本発明の目的は、振動パラメータを変化させることができるデータ出力プログラム、データ出力装置、およびデータ出力方法を提供することである。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
振動装置を振動させるための振動信号の生成が可能なデータを出力する装置に含まれるコンピュータで実行されるデータ出力プログラムであって、
前記コンピュータを、
前記振動装置を振動させるための振動波形において振幅の変化を示す振幅変調情報を設定する振幅変調情報設定手段と、
前記振動波形に対して所定の周波数解析を行うことによって、当該振動波形において周波数の変化を示す周波数変調情報を設定する周波数変調情報設定手段と、
前記振幅変調情報を符号化した第１データと前記周波数変調情報を符号化した第２データとを生成する符号化手段と、
符号化された前記第１データおよび前記第２データを出力するデータ出力手段として機能させる、データ出力プログラム。
【請求項２】
前記振幅変調情報設定手段は、前記振動波形に対して異なる周波数帯域毎の振幅の変化を示す振幅変調情報を、当該周波数帯域毎に設定し、
前記符号化手段は、前記周波数帯域毎に設定された振幅変調情報をそれぞれ符号化してそれぞれ前記第１データとして生成し、
前記データ出力手段は、前記周波数帯域毎に生成された前記第１データをそれぞれ出力する、請求項１に記載のデータ出力プログラム。
【請求項３】
前記振幅変調情報設定手段は、前記振動波形において振幅の変化を示す振幅変調情報を所定の時間間隔毎に設定し、
前記振幅変調情報設定手段は、前記周波数帯域毎に示される振幅の大きさに基づいて、当該周波数帯域毎に前記時間間隔をそれぞれ設定する、請求項２に記載のデータ出力プログラム。
【請求項４】
前記振幅変調情報設定手段は、人間の皮膚感覚を受容する異なる複数の感覚受容器がそれぞれ応答する周波数の少なくとも１つを含む周波数帯域毎の振幅の変化を示す振幅変調情報を、当該周波数帯域毎に設定する、請求項２または３に記載のデータ出力プログラム。
【請求項５】
前記振幅変調情報設定手段は、前記振動波形における所定の値のエンベロープをとった波形を用いて、前記振幅変調情報を設定する、請求項１乃至４の何れか１つに記載のデータ出力プログラム。
【請求項６】
前記振幅変調情報設定手段は、前記振動波形に対して異なる周波数帯域毎の振幅の変化を示す振幅変調情報を、当該周波数帯域毎に設定し、
前記振幅変調情報設定手段は、前記周波数帯域毎に当該周波数帯域の振動波形が通過するバンドパスフィルタ処理を行った後に前記エンベロープをとった波形を用いて、当該周波数帯域毎の前記振幅変調情報を設定する、請求項５に記載のデータ出力プログラム。
【請求項７】
振動装置を振動させるための振動信号の生成が可能なデータを出力するデータ出力装置であって、
前記振動装置を振動させるための振動波形において振幅の変化を示す振幅変調情報を設定する振幅変調情報設定手段と、
前記振動波形に対して所定の周波数解析を行うことによって、当該振動波形において周波数の変化を示す周波数変調情報を設定する周波数変調情報設定手段と、
前記振幅変調情報を符号化した第１データと前記周波数変調情報を符号化した第２データとを生成する符号化手段と、
符号化された前記第１データおよび前記第２データを出力するデータ出力手段とを備える、データ出力装置。
【請求項８】
振動装置を振動させるための振動信号の生成が可能なデータを出力する少なくとも１つの装置により構成されるシステムに含まれる１つのプロセッサまたは複数のプロセッサ間の協働により実行されるデータ出力方法であって、
前記振動装置を振動させるための振動波形において振幅の変化を示す振幅変調情報を設定する振幅変調情報設定ステップと、
前記振動波形に対して所定の周波数解析を行うことによって、当該振動波形において周波数の変化を示す周波数変調情報を設定する周波数変調情報設定ステップと、
前記振幅変調情報を符号化した第１データと前記周波数変調情報を符号化した第２データとを生成する符号化ステップと、
符号化された前記第１データおよび前記第２データを出力するデータ出力ステップとを含む、データ出力方法。