特開2016-202486(P2016-202486A)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

▶ 任天堂株式会社の特許一覧
特開2016-202486振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラム
<>
  • 特開2016202486-振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラム 図000003
  • 特開2016202486-振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラム 図000004
  • 特開2016202486-振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラム 図000005
  • 特開2016202486-振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラム 図000006
  • 特開2016202486-振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラム 図000007
  • 特開2016202486-振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラム 図000008
  • 特開2016202486-振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラム 図000009
  • 特開2016202486-振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラム 図000010
  • 特開2016202486-振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラム 図000011
  • 特開2016202486-振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラム 図000012
  • 特開2016202486-振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラム 図000013
  • 特開2016202486-振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラム 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2016-202486(P2016-202486A)
(43)【公開日】2016年12月8日
(54)【発明の名称】振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラム
(51)【国際特許分類】
   A63F 13/285 20140101AFI20161111BHJP
   A63F 13/30 20140101ALI20161111BHJP
   A63F 13/327 20140101ALI20161111BHJP
   A63F 13/50 20140101ALN20161111BHJP
【FI】
   A63F13/285
   A63F13/30
   A63F13/327
   A63F13/50
【審査請求】未請求
【請求項の数】28
【出願形態】OL
【全頁数】30
(21)【出願番号】特願2015-86842(P2015-86842)
(22)【出願日】2015年4月21日
(71)【出願人】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
【住所又は居所】京都府京都市南区上鳥羽鉾立町11番地1
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】山下 圭
【住所又は居所】京都府京都市南区上鳥羽鉾立町11番地1 任天堂株式会社内
(72)【発明者】
【氏名】鱒渕 祥司
【住所又は居所】京都府京都市南区上鳥羽鉾立町11番地1 任天堂株式会社内
【テーマコード(参考)】
2C001
【Fターム(参考)】
2C001CB08
2C001CC09
(57)【要約】
【課題】振動パラメータを変化させることができる振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラムを提供する。
【解決手段】振動装置を振動させるための振動信号を生成する。データ取得手段は、振幅の変化を示す振幅変調情報および/または周波数の変化を示す周波数変調情報が符号化されたデータを取得する。復号手段は、取得したデータを復号する。振動信号生成手段は、復号された振幅変調情報および/または周波数変調情報を用いて振動信号を生成する。
【選択図】図5
【特許請求の範囲】
【請求項1】
振動装置を振動させるための振動信号を生成する装置に含まれるコンピュータで実行される振動信号生成プログラムであって、
前記コンピュータを、
振幅の変化を示す振幅変調情報が符号化された第1データを取得するデータ取得手段と、
取得した前記第1データを復号する復号手段と、
復号された振幅変調情報を用いて振動信号を生成する振動信号生成手段として機能させる、振動信号生成プログラム。
【請求項2】
前記振動信号生成手段は、基準値より大きい値と小さい値とを繰り返す所定の波形を示す波形データと前記振幅変調情報とを用いて、前記振動信号を生成する、請求項1に記載の振動信号生成プログラム。
【請求項3】
前記所定の波形は、正負の値が繰り返される、請求項2に記載の振動信号生成プログラム。
【請求項4】
前記所定の波形は、振幅一定である、請求項3に記載の振動信号生成プログラム。
【請求項5】
前記所定の波形は、振幅一定の正弦波である、請求項4に記載の振動信号生成プログラム。
【請求項6】
前記所定の波形は、振幅一定の矩形波である、請求項4に記載の振動信号生成プログラム。
【請求項7】
前記所定の波形は、前記振動装置が有する共振周波数と実質的に同じ周波数の波形である、請求項2乃至6の何れか1つに記載の振動信号生成プログラム。
【請求項8】
前記振動信号生成手段は、前記復号された振幅変調情報と以前に生成された前記振動信号の振幅とを用いて今回の振動信号を生成する、請求項1乃至7の何れか1つに記載の振動信号生成プログラム。
【請求項9】
前記データ取得手段は、異なる周波数帯域毎の振幅変調情報がそれぞれ符号化されたデータを、それぞれ前記第1データとして取得し、
前記復号手段は、周波数帯域毎に取得した前記第1データをそれぞれ復号し、
前記振動信号生成手段は、周波数帯域毎に復号された振幅変調情報をそれぞれ用いて前記振動信号を生成する、請求項1乃至8の何れか1つに記載の振動信号生成プログラム。
【請求項10】
前記振動信号生成手段は、第1周波数の波形を示す波形データと第1周波数帯域に対して復号された振幅変調情報を用いて第1振動波形を生成し、第2周波数の波形を示す波形データと第2周波数帯域に対して復号された振幅変調情報を用いて第2振動波形を生成して、当該第1振動波形と当該第2振動波形とを合成することによって、前記振動信号を生成する、請求項9に記載の振動信号生成プログラム。
【請求項11】
前記データ取得手段は、人間の皮膚感覚を受容する異なる複数の感覚受容器がそれぞれ応答する周波数の少なくとも1つを含む周波数帯域毎の振幅変調情報がそれぞれ符号化されたデータを、それぞれ前記第1データとして取得する、請求項9または10に記載の振動信号生成プログラム。
【請求項12】
前記データ取得手段は、周波数の変化を示す周波数変調情報が符号化された第2データを、さらに取得し、
前記復号手段は、取得した前記第2データを、さらに復号し、
前記振動信号生成手段は、復号された振幅変調情報および周波数変調情報を用いて前記振動信号を生成する、請求項1乃至11の何れか1つに記載の振動信号生成プログラム。
【請求項13】
前記振動信号生成手段は、前記周波数変調情報を用いて基準値より大きい値と小さい値とを繰り返す所定の波形を示す波形データの周波数を変化させるとともに、前記振幅変調情報を用いて当該所定の波形の振幅を変化させることによって、前記振動信号を生成する、請求項12に記載の振動信号生成プログラム。
【請求項14】
前記所定の波形は、前記振動装置が有する共振周波数と実質的に同じ周波数の波形である、請求項13に記載の振動信号生成プログラム。
【請求項15】
前記振動信号生成手段が生成した振動信号を用いて、前記振動手段を振動させる振動制御手段として、前記コンピュータをさらに機能させる、請求項1乃至14の何れか1つに記載の振動信号生成プログラム。
【請求項16】
前記データ取得手段は、前記振幅変調情報が符号化されたデータを、無線通信を介して他の装置から取得する、請求項1乃至15の何れか1つに記載の振動信号生成プログラム。
【請求項17】
少なくとも第1の装置と第2の装置とを含み、振動装置を振動させるための振動信号を生成する振動信号生成システムであって、
前記第1の装置は、
前記振動装置を振動させるための振動波形において振幅の変化を示す振幅変調情報が符号化された第1データを記憶する記憶手段と、
前記第1データを前記第2の装置に送信する送信手段とを備え、
前記第2の装置は、
前記第1の装置から送信された第1データを受信する受信手段と、
受信した前記第1データを復号する復号手段と、
復号された振幅変調情報を用いて振動信号を生成する振動信号生成手段とを備える、振動信号生成システム。
【請求項18】
振動装置を振動させるための振動信号を生成する振動信号生成装置であって、
振幅の変化を示す振幅変調情報が符号化されたデータを取得するデータ取得手段と、
取得した前記データを復号する復号手段と、
復号された振幅変調情報を用いて振動信号を生成する振動信号生成手段とを備える、振動信号生成装置。
【請求項19】
振動装置を振動させるための振動信号を生成する少なくとも1つの装置により構成されるシステムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行される振動信号生成方法であって、
振幅の変化を示す振幅変調情報が符号化されたデータを取得するデータ取得ステップと、
取得した前記データを復号する復号ステップと、
復号された振幅変調情報を用いて振動信号を生成する振動信号生成ステップとを含む、振動信号生成方法。
【請求項20】
振動装置を振動させるための振動信号を生成する装置に含まれるコンピュータで実行される振動信号生成プログラムであって、
前記コンピュータを、
周波数の変化を示す周波数変調情報が符号化されたデータを取得するデータ取得手段と、
取得した前記データを復号する復号手段と、
復号された周波数変調情報を用いて振動信号を生成する振動信号生成手段として機能させる、振動信号生成プログラム。
【請求項21】
振動装置を振動させるための振動信号の生成が可能なデータを出力する装置に含まれるコンピュータで実行されるデータ出力プログラムであって、
前記コンピュータを、
前記振動装置を振動させるための振動波形において振幅の変化を示す振幅変調情報を設定する振幅変調情報設定手段と、
前記振幅変調情報を符号化した第1データを生成する符号化手段と、
符号化された前記第1データを出力するデータ出力手段として機能させる、データ出力プログラム。
【請求項22】
前記振幅変調情報設定手段は、前記振動波形に対して異なる周波数帯域毎の振幅の変化を示す振幅変調情報を、当該周波数帯域毎に設定し、
前記符号化手段は、前記周波数帯域毎に設定された振幅変調情報をそれぞれ符号化してそれぞれ前記第1データとして生成し、
前記データ出力手段は、前記周波数帯域毎に生成された前記第1データをそれぞれ出力する、請求項21に記載のデータ出力プログラム。
【請求項23】
前記振幅変調情報設定手段は、前記振動波形において振幅の変化を示す振幅変調情報を所定の時間間隔毎に設定し、
前記振幅変調情報設定手段は、前記周波数帯域毎に示される振幅の大きさに基づいて、当該周波数帯域毎に前記時間間隔をそれぞれ設定する、請求項22に記載のデータ出力プログラム。
【請求項24】
前記振幅変調情報設定手段は、人間の皮膚感覚を受容する異なる複数の感覚受容器がそれぞれ応答する周波数の少なくとも1つを含む周波数帯域毎の振幅の変化を示す振幅変調情報を、当該周波数帯域毎に設定する、請求項22または23に記載のデータ出力プログラム。
【請求項25】
前記振動波形において周波数の変化を示す周波数変調情報を設定する周波数変調情報設定手段として、さらに前記コンピュータを機能させ、
前記符号化手段は、前記周波数変調情報を符号化した第2データをさらに生成し、
前記データ出力手段は、符号化された前記第1データおよび前記第2データを出力する、請求項21乃至24の何れか1つに記載のデータ出力プログラム。
【請求項26】
前記周波数変調情報設定手段は、前記振動波形に対して所定の周波数解析を行うことによって、前記周波数変調情報を設定する、請求項25に記載のデータ出力プログラム。
【請求項27】
前記振幅変調情報設定手段は、前記振動波形における所定の値のエンベロープをとった波形を用いて、前記振幅変調情報を設定する、請求項21乃至26の何れか1つに記載のデータ出力プログラム。
【請求項28】
前記振幅変調情報設定手段は、前記振動波形に対して異なる周波数帯域毎の振幅の変化を示す振幅変調情報を、当該周波数帯域毎に設定し、
前記振幅変調情報設定手段は、前記周波数帯域毎に当該周波数帯域の振動波形が通過するバンドパスフィルタ処理を行った後に前記エンベロープをとった波形を用いて、当該周波数帯域毎の前記振幅変調情報を設定する、請求項27に記載のデータ出力プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラムに関し、特に例えば、ユーザに与える振動に関連する振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラムに関する。
【背景技術】
【0002】
周波数、パルス幅、および振幅を変化させることにより振動パターンを可変にできるゲーム装置が開示されている(例えば、特許文献1参照)。例えば、上記特許文献1で開示されたゲーム装置は、敵キャラクタに与えるダメージの大きさに応じてユーザに与える振動の大きさを変化させている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−68210号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記特許文献1で開示されているような従来のゲーム装置では、周波数、パルス幅、または振幅を変化させながら振動を与えるようにはなっておらず、周波数、パルス幅、または振幅を変化させる場合におけるデータの扱い方については開示されていない。
【0005】
それ故に、本発明の目的は、振動パラメータを変化させることができる振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラムを提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明は例えば以下のような構成を採用し得る。なお、特許請求の範囲の記載を解釈する際に、特許請求の範囲の記載によってのみその範囲が解釈されるべきであることが理解され、特許請求の範囲の記載と本欄の記載とが矛盾する場合には、特許請求の範囲の記載が優先する。
【0007】
本発明の振動信号生成プログラムの一構成例は、振動装置を振動させるための振動信号を生成する装置に含まれるコンピュータで実行される。振動信号生成プログラムは、データ取得手段、復号手段、および振動信号生成手段として、コンピュータを機能させる。データ取得手段は、振幅の変化を示す振幅変調情報が符号化された第1データを取得する。復号手段は、取得した第1データを復号する。振動信号生成手段は、復号された振幅変調情報を用いて振動信号を生成する。
【0008】
上記によれば、振幅の変化を示す振幅変調情報が符号化された第1データを用いて振動信号を生成することができるため、振動パラメータが変化させることが可能な振動信号の生成が可能となり、振動パラメータを変化させるデータを取り扱うことができる。
【0009】
また、上記振動信号生成手段は、基準値より大きい値と小さい値とを繰り返す所定の波形を示す波形データと振幅変調情報とを用いて、振動信号を生成してもよい。
【0010】
また、上記所定の波形は、正負の値が繰り返されてもよい。
【0011】
また、上記所定の波形は、振幅一定でもよい。
【0012】
また、上記所定の波形は、振幅一定の正弦波でもよい。
【0013】
また、上記所定の波形は、振幅一定の矩形波でもよい。
【0014】
上記によれば、波形データと振幅変調情報とを用いて、容易に振動パラメータを変化させる振動信号の生成が可能となる。
【0015】
また、上記所定の波形は、振動装置が有する共振周波数と実質的に同じ周波数の波形でもよい。
【0016】
上記によれば、相対的に強い振動をユーザに与えることができる振動信号の生成が可能となる。
【0017】
また、上記振動信号生成手段は、復号された振幅変調情報と以前に生成された振動信号の振幅とを用いて今回の振動信号を生成してもよい。
【0018】
上記によれば、時系列的に取得された振幅変調情報を用いて、効率よく振動信号を生成することができる。
【0019】
また、上記データ取得手段は、異なる周波数帯域毎の振幅変調情報がそれぞれ符号化されたデータを、それぞれ第1データとして取得してもよい。上記復号手段は、周波数帯域毎に取得した第1データをそれぞれ復号してもよい。上記振動信号生成手段は、周波数帯域毎に復号された振幅変調情報をそれぞれ用いて振動信号を生成してもよい。
【0020】
上記によれば、周波数帯域毎に符号化されたデータに基づいた振動信号の生成が可能となるため、複数の周波数帯域に対して振動パラメータを変化させる振動信号の生成が可能となる。
【0021】
また、上記振動信号生成手段は、第1周波数の波形を示す波形データと第1周波数帯域に対して復号された振幅変調情報を用いて第1振動波形を生成し、第2周波数の波形を示す波形データと第2周波数帯域に対して復号された振幅変調情報を用いて第2振動波形を生成して、当該第1振動波形と当該第2振動波形とを合成することによって、振動信号を生成してもよい。
【0022】
上記によれば、周波数帯域毎に波形データと振幅変調情報とを用いて振動波形をそれぞれ生成することによって、容易に振動パラメータを変化させる振動信号の生成が可能となる。
【0023】
また、上記データ取得手段は、人間の皮膚感覚を受容する異なる複数の感覚受容器がそれぞれ応答する周波数の少なくとも1つを含む周波数帯域毎の振幅変調情報がそれぞれ符号化されたデータを、それぞれ第1データとして取得してもよい。
【0024】
上記によれば、効率よくユーザに振動を感じさせることができる振動信号を生成することができる。
【0025】
また、上記データ取得手段は、周波数の変化を示す周波数変調情報が符号化された第2データを、さらに取得してもよい。上記復号手段は、取得した第2データを、さらに復号してもよい。この場合、上記振動信号生成手段は、復号された振幅変調情報および周波数変調情報を用いて振動信号を生成してもよい。
【0026】
上記によれば、周波数および振幅を変化させることが可能な振動信号の生成が可能となる。
【0027】
また、上記振動信号生成手段は、周波数変調情報を用いて基準値より大きい値と小さい値とを繰り返す所定の波形を示す波形データの周波数を変化させるとともに、振幅変調情報を用いて当該所定の波形の振幅を変化させることによって、振動信号を生成してもよい。
【0028】
上記によれば、波形データと周波数変調情報および振幅変調情報とを用いて、容易に振幅および周波数を変化させる振動信号の生成が可能となる。
【0029】
また、上記所定の波形は、振動装置が有する共振周波数と実質的に同じ周波数の波形でもよい。
【0030】
上記によれば、相対的に強い振動をユーザに与えることができる振動信号の生成が可能となる。
【0031】
また、上記振動信号生成プログラムは、振動制御手段として、さらにコンピュータを機能させてもよい。振動制御手段は、振動信号生成手段が生成した振動信号を用いて、振動手段を振動させる。
【0032】
上記によれば、振動手段を振動させている途中で振動パラメータを変化させることが可能な振動信号の生成が可能となる。
【0033】
また、上記データ取得手段は、振幅変調情報が符号化されたデータを、無線通信を介して他の装置から取得してもよい。
【0034】
上記によれば、無線通信を介して、振動信号の送信が可能となる。
【0035】
また、本発明は、上記各手段を備える振動信号生成装置や上記各手段で行われる動作を含む振動信号生成装置の形態で実施されてもよい。
【0036】
本発明の振動信号生成システムの一構成例は、少なくとも第1の装置と第2の装置とを含み、振動装置を振動させるための振動信号を生成する。第1の装置は、記憶手段および送信手段を備える。記憶手段は、振動装置を振動させるための振動波形において振幅の変化を示す振幅変調情報が符号化された第1データを記憶する。送信手段は、第1データを第2の装置に送信する。第2の装置は、受信手段、復号手段、および振動信号生成手段を備える。受信手段は、第1の装置から送信された第1データを受信する。復号手段は、受信した第1データを復号する。振動信号生成手段は、復号された振幅変調情報を用いて振動信号を生成する。
【0037】
上記によれば、振幅の変化を示す振幅変調情報が符号化された第1データを第1の装置が送信し、当該第1データを第2の装置が受信して振動信号を生成することができるため、振動パラメータが変化させることが可能な振動信号の送受信および生成が可能となり、振動パラメータを変化させるデータを取り扱うことができる。
【0038】
本発明の振動信号生成プログラムの他の構成例は、振動装置を振動させるための振動信号を生成する装置に含まれるコンピュータで実行される。振動信号生成プログラムは、データ取得手段、復号手段、および振動信号生成手段として、前記コンピュータを機能させる。データ取得手段は、周波数の変化を示す周波数変調情報が符号化されたデータを取得する。復号手段は、取得した前記データを復号する。振動信号生成手段は、復号された周波数変調情報を用いて振動信号を生成する。
【0039】
上記によれば、周波数の変化を示す周波数変調情報が符号化されたデータを用いて振動信号を生成することができるため、振動パラメータが変化させることが可能な振動信号の生成が可能となり、振動パラメータを変化させるデータを取り扱うことができる。
【0040】
また、本発明のデータ出力プログラムの一構成例は、振動装置を振動させるための振動信号の生成が可能なデータを出力する装置に含まれるコンピュータで実行される。データ出力プログラムは、振幅変調情報設定手段、符号化手段、およびデータ出力手段として、コンピュータを機能させる。振幅変調情報設定手段は、振動装置を振動させるための振動波形において振幅の変化を示す振幅変調情報を設定する。符号化手段は、振幅変調情報を符号化した第1データを生成する。データ出力手段は、符号化された第1データを出力する。
【0041】
上記によれば、振動パラメータが変化させることが可能な振動信号の生成が可能な振幅変調情報を他の装置に出力することができる。
【0042】
また、上記振幅変調情報設定手段は、振動波形に対して異なる周波数帯域毎の振幅の変化を示す振幅変調情報を、当該周波数帯域毎に設定してもよい。この場合、上記符号化手段は、周波数帯域毎に設定された振幅変調情報をそれぞれ符号化してそれぞれ第1データとして生成してもよい。上記データ出力手段は、周波数帯域毎に生成された第1データをそれぞれ出力してもよい。
【0043】
上記によれば、複数の周波数帯域に対して振動パラメータを変化させる振動信号の生成が可能なデータを出力することができる。
【0044】
また、上記振幅変調情報設定手段は、振動波形において振幅の変化を示す振幅変調情報を所定の時間間隔毎に設定してもよい。上記振幅変調情報設定手段は、周波数帯域毎に示される振幅の大きさに基づいて、当該周波数帯域毎に時間間隔をそれぞれ設定してもよい。
【0045】
上記によれば、ユーザに与える感触として影響が大きい振動を優先して正確に生成できる振動信号の生成が可能なデータを出力することができる。
【0046】
また、上記振幅変調情報設定手段は、人間の皮膚感覚を受容する異なる複数の感覚受容器がそれぞれ応答する周波数の少なくとも1つを含む周波数帯域毎の振幅の変化を示す振幅変調情報を、当該周波数帯域毎に設定してもよい。
【0047】
上記によれば、効率よくユーザに振動を感じさせることができる振動信号を生成することができるデータを出力することができる。
【0048】
また、上記データ出力プログラムは、周波数変調情報設定手段として、さらにコンピュータを機能させてもよい。周波数変調情報設定手段は、振動波形において周波数の変化を示す周波数変調情報を設定する。この場合、上記符号化手段は、周波数変調情報を符号化した第2データをさらに生成してもよい。上記データ出力手段は、符号化された第1データおよび第2データを出力してもよい。
【0049】
上記によれば、周波数および振幅を変化させることが可能な振動信号の生成が可能となるデータを出力することができる。
【0050】
また、上記周波数変調情報設定手段は、振動波形に対して所定の周波数解析を行うことによって、周波数変調情報を設定してもよい。
【0051】
上記によれば、正確に周波数を変化させることが可能な振動信号の生成が可能となるデータを出力することができる。
【0052】
また、上記振幅変調情報設定手段は、振動波形における所定の値のエンベロープをとった波形を用いて、振幅変調情報を設定してもよい。
【0053】
上記によれば、振幅を変化させることが可能な振動信号の生成が可能となるデータを容易に生成することができる。
【0054】
また、上記振幅変調情報設定手段は、振動波形に対して異なる周波数帯域毎の振幅の変化を示す振幅変調情報を、当該周波数帯域毎に設定してもよい。上記振幅変調情報設定手段は、周波数帯域毎に当該周波数帯域の振動波形が通過するバンドパスフィルタ処理を行った後にエンベロープをとった波形を用いて、当該周波数帯域毎の振幅変調情報を設定してもよい。
【0055】
上記によれば、周波数帯域毎に振幅を変化させることが可能な振動信号の生成が可能となるデータを容易に生成することができる。
【発明の効果】
【0056】
本発明によれば、振幅の変化を示す振幅変調情報または周波数の変化を示す周波数変調情報が符号化されたデータを用いて振動信号を生成することができるため、振動パラメータが変化させることが可能な振動信号の生成が可能となる。
【図面の簡単な説明】
【0057】
図1】本発明の一実施形態に係る情報処理装置3の外観の一例を示す平面図
図2】情報処理装置3の構成の一例を示すブロック図
図3】振動発生部37の構成の一例を示すブロック図
図4】表示部35の表示画面に表示されている仮想オブジェクトOBJの表示位置に応じて、情報処理装置3本体が振動するとともに音声が出力される一例を示す図
図5】取得した振動データに基づいて振動制御信号を生成する処理の一例を説明するための図
図6】周波数帯域毎に取得した振動データに基づいて振動制御信号を生成する処理の一例を説明するための図
図7】AMFM符号データのデコードに用いられる符号化テーブルの一例を示す図
図8】符号化テーブルで用いられている値kを算出する際に用いられるk算出テーブルの一例を示す図
図9】符号データ送信処理を行う際に、上記転送元装置の記憶部に記憶される主なデータおよびプログラムの一例を示す図
図10】転送元装置において実行される符号データ送信処理の一例を示すフローチャート
図11】符号データ受信処理を行う際に、情報処理装置3の記憶部32に記憶される主なデータおよびプログラムの一例を示す図
図12】情報処理装置3において実行される符号データ受信処理の一例を示すフローチャート
【発明を実施するための形態】
【0058】
図面を参照して、本発明の一実施形態に係る振動信号生成プログラムを実行する振動信号生成装置について説明する。本発明の振動信号生成プログラムは、任意のコンピュータシステムで実行されることによって適用することができるが、振動信号生成装置の一例として携帯型の情報処理装置3(タブレット端末)を用い、情報処理装置3で実行される振動信号生成プログラムを用いて説明する。例えば、情報処理装置3は、交換可能な光ディスクやメモリーカード等の記憶媒体内に記憶された、または、他の装置から受信したプログラムや予めインストールされたプログラム(例えば、ゲームプログラム)を実行可能であり、一例として、仮想空間に設定された仮想カメラから見た仮想空間画像等のコンピュータグラフィックス処理により生成された画像を画面に表示することができる。情報処理装置3は、一般的なパーソナルコンピュータ、据置型ゲーム機、携帯電話機、携帯ゲーム機、PDA(Personal Digital Assistant)等のデバイスであってもかまわない。なお、図1は、情報処理装置3の外観の一例を示す平面図である。
【0059】
図1において、情報処理装置3は、表示部35、音声出力部36、およびアクチュエータ373を備えている。一例として、表示部35は、情報処理装置3本体前面に設けられている。例えば、表示部35は、LCD(Liquid Crystal Display:液晶表示装置)によって構成されるが、例えばELを利用した表示装置などが利用されてもよい。また、表示部35は、立体視可能な画像を表示することが可能な表示装置であってもよい。
【0060】
表示部35の表示画面を覆うように、入力部34の一例であるタッチパネル341が設けられている。タッチパネル341は、所定の入力面(例えば、表示部35の表示画面)に対して入力された位置を検出する。なお、入力部34は、情報処理装置3のユーザが操作入力可能な入力装置であり、どのような入力装置であってもよい。例えば、入力部34として、スライドパッド、アナログスティック、十字キー、および操作ボタン等の操作部が、情報処理装置3本体の側面や背面等に備えられてもよい。また、入力部34は、情報処理装置3本体の姿勢や動きを検出するためのセンサであってもよい。例えば、入力部34は、情報処理装置3本体に生じる加速度を検出する加速度センサや情報処理装置3本体の回転量を検出する角速度センサ(ジャイロセンサ)等であってもよい。
【0061】
音声出力部36は、音声を出力するスピーカを含み、図1に示した一例では、情報処理装置3の上側面や背面に設けられたスピーカ(音声出力部36)を含んでいる。音声出力部36は、後述する制御部31から出力される音声信号(音声制御信号)をD/A変換してアナログ音声信号を生成し、当該アナログ音声信号をスピーカへ出力して音声を出力させる。
【0062】
アクチュエータ373は、情報処理装置3の本体に所定の振動を与える振動アクチュエータ(振動子)であり、後述する振動発生部37に含まれる。図1に示した一例では、アクチュエータ373は、情報処理装置3本体内部の中央付近に設けられたアクチュエータ373を有する。具体的には、図1の破線領域で示すように、ユーザが情報処理装置3の左端部を左手で把持し右端部を右手で把持した場合に、当該左手と右手との間の位置となる表示部35の中央部にアクチュエータ373が設けられる。また、振動発生部37は、後述する制御部31から出力される振動制御信号をD/A変換してアナログ振動信号を生成し、当該アナログ振動信号を増幅した駆動信号をアクチュエータ373へ出力してアクチュエータ373を駆動させる。
【0063】
なお、図1から明らかなように、情報処理装置3に設けられる表示部35の表示画面と音声出力部36とがそれぞれ近接する位置に配置されており、表示部35の表示画面とアクチュエータ373とがそれぞれ近接する位置に配置されている。また、音声出力部36およびアクチュエータ373は、それぞれ互いに近接する位置に配置されているが、別の位置に配設される別のユニットである。これによって、振動出力専用のユニットと音声出力専用のユニットとを備えることができるため、汎用のユニットを共用する場合と比較すると精度の高い振動および音声をそれぞれ出力することができる。なお、振動出力するためのユニットと音声出力するためのユニットとを組み合わせて一体化したモジュールを、情報処理装置3に設けてもよい。
【0064】
次に、図2を参照して、情報処理装置3の内部構成について説明する。なお、図2は、情報処理装置3の構成の一例を示すブロック図である。
【0065】
図2において、上述した入力部34、表示部35、音声出力部36、および振動発生部37の他に、制御部31、記憶部32、プログラム格納部33、および通信部38を備える。なお、情報処理装置3は、制御部31を少なくとも含む情報処理装置と他の装置とを含む1以上の装置によって構成されてもよい。
【0066】
制御部31は、各種の情報処理を実行するための情報処理手段(コンピュータ)であり、例えばCPUである。制御部31は、各種の情報処理として、入力部34に対するユーザの操作に応じた処理等を実行する機能を有する。例えば、CPUが所定のプログラムを実行することによって、制御部31における各機能が実現される。
【0067】
制御部31は、各種の情報処理として、表示部35に表示する画像の表示制御を行う。また、制御部31は、各種の情報処理として、スピーカから出力する音声を制御するための音声制御信号(例えば、デジタル音声信号)を、音声出力部36へ出力する。また、制御部31は、各種の情報処理の一例として、通信部38を介して他の装置から転送された振動データを受信し、当該振動データに基づいてアクチュエータ373が生成する振動を制御するための振動制御信号(例えば、デジタル振動信号)を生成して、当該振動制御信号を振動発生部37へ出力する。
【0068】
記憶部32は、制御部31が上記情報処理を実行する際に用いる各種のデータを記憶する。記憶部32は、例えばCPU(制御部31)がアクセス可能なメモリである。
【0069】
プログラム格納部33は、プログラムを記憶(格納)する。プログラム格納部33は、制御部31がアクセス可能な記憶装置(記憶媒体)であればどのようなものであってもよい。例えば、プログラム格納部33は、制御部31を含む情報処理装置3内に設けられる記憶装置であってもよいし、制御部31を含む情報処理装置3に着脱自在に装着される記憶媒体であってもよい。また、プログラム格納部33は、制御部31とネットワークを介して接続される記憶装置(サーバ等)であってもよい。制御部31(CPU)は、ゲームプログラムや振動信号生成プログラムの一部または全部を適宜のタイミングで記憶部32に読み出し、読み出されたプログラムを実行するようにしてもよい。
【0070】
通信部38は、所定の通信モジュールによって構成され、ネットワークを介して他の機器との間でデータを送受信したり、他の情報処理装置3との間でデータを直接送受信したりする。なお、通信部38は、他の機器との間で無線通信によってデータを送受信してもよいし、他の機器との間で有線通信によってデータを送受信してもよい。
【0071】
次に、図3を参照して、振動発生部37の構成について説明する。なお、図3は、振動発生部37の構成の一例を示すブロック図である。
【0072】
図3において、振動発生部37は、コーデック部371、増幅部372、およびアクチュエータ(振動子)373を備えている。
【0073】
コーデック部371は、制御部31から出力された振動制御信号を取得して所定の復号処理を行ってアナログ振動信号を生成し、増幅部372へ出力する。例えば、アクチュエータ373に振動を発生させる場合、当該振動を制御するための振動制御信号(例えば、振動制御信号CS)が制御部31から出力される。この場合、コーデック部371は、制御部31から出力された振動制御信号を復号して、アクチュエータ373に振動を発生させるためのアナログ振動信号(例えば、アナログ振動信号AS)を生成して、増幅部372へ出力する。
【0074】
増幅部372は、コーデック部371から出力されたアナログ振動信号を増幅してアクチュエータ373を駆動するための駆動信号を生成し、アクチュエータ373へ出力する。例えば、増幅部372は、コーデック部371から出力されたアナログ振動信号(例えば、アナログ振動信号AS)の電流/電圧の振幅変化をそれぞれ増大させて駆動信号(例えば、駆動信号DS)を生成して、アクチュエータ373へ出力する。
【0075】
アクチュエータ373は、増幅部372から出力された駆動信号に応じて駆動することによって、情報処理装置3の本体に当該駆動信号に応じた振動を与える。例えば、アクチュエータ373は、図1に示すように、表示部35の表示画面の中心に設けられている。ここで、アクチュエータ373が情報処理装置3本体に振動を与える方式は、どのようなものでもかまわない。例えば、アクチュエータ373は、偏心モーター(ERM:Eccentric Rotating Mass)によって振動を生じさせる方式や、リニア・バイブレータ(LRA:Linear Resonant Actuator)によって振動を生じさせる方式や、ピエゾ(圧電)素子によって振動を生じさせる方式等を用いた構成であってもよい。アクチュエータ373が振動を生じさせる方式に応じて、増幅部372から出力される駆動信号が生成されれば、どのような方式のアクチュエータであっても様々な振動を情報処理装置3のユーザに与えることができる。
【0076】
なお、上述した説明では、コーデック部371で生成されたアナログ振動信号が増幅されてアクチュエータ373を駆動するための駆動信号が生成される例を用いたが、コーデック部371から増幅部372へ出力される信号は、デジタル信号であってもよい。例えば、パルス幅変調(PWM:Pulse Width Modulation)制御によってアクチュエータ373を駆動する場合、コーデック部371がアクチュエータ373をオン/オフするためのパルス信号を生成すればよい。この場合、コーデック部371から増幅部372へ出力される信号は、パルス波を用いて駆動が制御されるデジタル振動信号となり、増幅部372は、当該デジタル振動信号を増幅することになる。
【0077】
次に、情報処理装置3が行う具体的な処理を説明する前に、図4図6を用いて情報処理装置3において行われる処理の概要について説明する。以下の説明では、表示部35の表示画面内を仮想オブジェクトOBJが移動するゲームを行う際の処理を、情報処理装置3において行われる情報処理の一例として用いる。なお、図4は、表示部35の表示画面に表示されている仮想オブジェクトOBJが移動する際に、情報処理装置3本体が振動するとともに音声が出力される一例を示す図である。図5は、取得した振動データに基づいて振動制御信号を生成する処理の一例を説明するための図である。図6は、周波数帯域毎に取得した振動データに基づいて振動制御信号を生成する処理の一例を説明するための図である。
【0078】
図4に示す例では、仮想空間内を移動する仮想オブジェクトOBJが表示部35の表示画面に表示される。仮想オブジェクトOBJは、ユーザ操作に応じて、または自動的に仮想空間内を移動して表示部35の表示画面に表示される。具体的には、仮想オブジェクトOBJは、仮想空間内に設置された板面上を転がって移動する球体である。
【0079】
仮想オブジェクトOBJが仮想空間内の板面上を転がって移動することに応じて、情報処理装置3から音声が出力されるとともに、情報処理装置3本体が振動する。例えば、情報処理装置3本体に設けられたスピーカ(音声出力部36)は、表示部35の表示画面に表示されて移動する仮想オブジェクトOBJが音源となった音声を出力する。また、情報処理装置3本体に設けられたアクチュエータ373は、仮想オブジェクトOBJが転がって移動する際に生じる振動を生じさせる。本実施例では、当該振動を生じさせるための振動制御信号を生成するための振動データを他の装置から取得する。そして、情報処理装置3は、取得した振動データに基づいて、アクチュエータ373を駆動制御するための振動制御信号を生成する。
【0080】
次に、図5を参照して、振動制御信号を生成する処理の一例を説明する。上述したように、アクチュエータ373が生成する振動を制御するための振動制御信号は、他の装置から転送された振動データに基づいて生成される。本実施例では、他の装置から転送されたAMFM符号データを振動データとして受信し、当該AMFM符号データに基づいて生成されたAMFM波が振動制御信号として用いられる。ここで、AM符号データは振動の振幅変調(Amplitude Modulation)を表すデータを示し、FM符号データは振動の周波数変調(Frequency Modulation)を表すデータを示し、AMFM符号データは振動の振幅変調および周波数変調の両方を表すデータを示している。また、AMFM波は、AMFM符号データに基づいて振幅変調および周波数変調された振動波形を示している。
【0081】
図5に示すように、AMFM符号データは、振動を変調する一定の更新周期毎に他の装置から転送され、振動の振幅および周波数更新コマンドとして機能する。そして、AMFM符号データは、所定の符号化テーブルを用いてデコードされることによって、AM情報およびFM情報が取り出される。ここで、AM情報は、更新前の振動の振幅を基準として更新後の振動の振幅を示す情報である。このようなAM情報を上記更新周期毎に分析することによって、所定の振幅を基準として振動振幅を時系列的に変調させる図5に示すような情報を取得することができる。また、FM情報は、更新前の振動の周波数を基準として更新後の振動の振幅を示す情報である。このようなFM情報を上記更新周期毎に分析することによって、所定の周波数を基準として振動周波数を時系列的に変調させる図5に示すような情報を取得することができる。なお、AMFM符号データのデコード処理やデコードに用いられる符号化テーブルの例については、後述する。
【0082】
次に、FM情報から周波数変調正弦波(FM波)を生成する。ここで、FM波は、上記更新周期毎に取得されるFM情報に応じた周波数で変位する図5に示すような正弦波である。
【0083】
そして、AM情報をFM波に掛け合わせることによって、AMFM波を生成する。ここで、AMFM波は、上記更新周期毎に取得されるFM情報に応じた周波数、かつ、上記更新周期毎に取得されるAM情報に応じた振幅で変位する図5に示すような波形を有する。このように生成されたAMFM波に基づいて、振動制御信号を生成することによって、AMFM波で示される周波数および振幅でアクチュエータ373を振動させることができる。
【0084】
このようなAMFM伝送方式で振動データを送信することによって、以下のような効果を期待することができる。第1の効果として、振動データをそのまま送信する方式、振動データのサンプリングレートを落として送信する方式、振動データを所定の方式で圧縮して送信する方式と比較して、振動データを送信する際のデータ通信量を削減することができる。第2の効果として、送信されたAMFM符号データをデコードする処理負荷が相対的に低いため、リアルタイムにデコード処理してアクチュエータ373の振動制御に繋げることができる。第3の効果として、振動を制御するパラメータが周波数および振幅となるため、振動素材を生成する作業が簡素化することができる。第4の効果として、AMFM伝送方式で制御する振動周波数をアクチュエータ373の共振周波数付近に設定することによって、相対的に強い(電力効率の良い)振動をユーザに与えることができる。
【0085】
また、上述したAMFM伝送方式では、周波数帯域毎にAMFM符号データを送信してもよい。以下、図6を参照して、周波数帯域毎に取得した振動データに基づいて振動制御信号を生成する処理について説明する。
【0086】
図6に示すように、本実施例におけるAMFM符号データは、振動を変調する一定の更新周期で周波数帯域毎に他の装置からそれぞれ転送され、周波数帯域毎の振動の振幅および周波数更新コマンドとして機能する。例えば、図6に示した例では、低周波数帯域である周波数帯域Aを対象としたAMFM符号データと、高周波数帯域である周波数帯域Bを対象としたAMFM符号データとが、同じまたは異なる更新周期毎に他の装置から送信されている。
【0087】
周波数帯域Aを対象としたAMFM符号データは、上述した処理と同様に、所定の符号化テーブルを用いてデコードされることによって、AM情報およびFM情報が取り出され、FM情報からFM波が生成される。そして、周波数帯域Aを対象としたAM情報をFM波に掛け合わせることによって、周波数帯域Aを対象としたAMFM波が生成される。
【0088】
一方、周波数帯域Bを対象としたAMFM符号データも、上述した処理と同様に、所定の符号化テーブルを用いてデコードされることによって、AM情報およびFM情報が取り出され、FM情報からFM波が生成される。そして、周波数帯域Bを対象としたAM情報をFM波に掛け合わせることによって、周波数帯域Bを対象としたAMFM波が生成される。
【0089】
そして、周波数帯域Aを対象としたAMFM波と周波数帯域Bを対象としたAMFM波とを足し合わせることによって、合成波が生成される。上記合成波は、周波数帯域Aを対象としたAMFM情報および周波数帯域Bを対象としたAMFM情報を併せ持っているため、複数の周波数帯域に対する周波数の情報および振幅の情報に基づいて変位する図6に示すような波形を有する。このように生成された合成波に基づいて、振動制御信号を生成することによって、合成波で示される周波数および振幅でアクチュエータ373を振動させることができる。
【0090】
このような複数の周波数帯域毎にAMFM伝送方式で振動データを送信することによって、複数の周波数帯域毎の周波数変化および振幅変化を転送することができるため、他の装置から振動をより正確に伝えることができる。したがって、他の伝送方式と比較してもユーザに与える振動感触を劣化させることなく振動データを伝送することが可能となる。
【0091】
次に、複数の周波数帯域毎にAMFM符号データを転送する際の周波数帯域分割例について説明する。一例として、AMFM符号データを転送する複数の周波数帯域は、振動が与えられる人間の触覚の特性に合わせて設定することが考えられる。人間の皮膚感覚を受容する感覚受容器は、メルケル盤、マイスナー小体、パチニ小体、およびルフィニ終末等で構成されており、それぞれ特有の周波数帯域の振動に応答する。また、人間が振動を感じることができるとされる振動は、0−1000Hzの周波数帯域の振動であるとされている。ここで、人間の感覚受容器のうち、単独で振動感覚を生じるのはマイスナー小体およびパチニ小体の2つであり、マイスナー小体が低周波振動(例えば、10−200Hz)に応答し、パチニ小体が高周波振動(例えば、70−1000Hz)に応答する。したがって、マイスナー小体を対象とした低周波数帯域(10−200Hz)とパチニ小体を対象とした高周波数帯域(70−1000Hz)とに対して、それぞれAMFM符号データをそれぞれ転送することが考えられる。
【0092】
そして、周波数帯域毎に基準とする周波数(以下、中心周波数と記載する)は、例えば、中心周波数の比率が1.5以上となるように設定するとともに、振動デバイス(上記実施例では、アクチュエータ373)の周波数特性(例えば、振動デバイスが有する共振周波数付近)に合うように設定する。このように、振動デバイスが振動しやすい周波数帯を主体として利用することによって、振動を生成する際に消費する電力に対してユーザが感じる振動の感覚量が大きくなるため、より効率よく振動をユーザに感じさせることができる。なお、振動デバイスが理想的な周波数特性(フラットな特性)を有している場合には、上述した人間の感覚受容器の特性だけを考慮すればよいため、中心周波数は例えば低周波数帯域では40Hz付近に設定して高周波数帯域では250Hz付近に設定してもよい。
【0093】
なお、上述した説明では、人間の皮膚感覚を受容する感覚受容器の応答周波数帯域に応じて、AMFM符号データを転送する周波数帯域を分割する例を用いたが、他の特性を基準として当該周波数帯域を分割してもかまわない。例えば、振動させるアクチュエータの特性周波数に応じて、AMFM符号データを転送する周波数帯域を分割してもかまわない。一例として、振動させるアクチュエータが複数の共振周波数を有している場合、当該共振周波数の少なくとも1つを含むように複数の周波数帯域を設定し、当該周波数帯域毎にAMFM符号データを転送してもよい。
【0094】
また、3つ以上の周波数帯域毎にAMFM符号データを転送してもよい。一例として、異なる周波数帯域の振動を極めて短い時間間隔で順に発生させる必要がある場合、AMFM符号データを転送する周波数帯域数が少なければ周波数が遷移する速度に更新周期が追いつかないことが考えられる。具体的には、50Hz、150Hz、450Hzの3つの周波数を有する振動を50ms間隔で順に発生させる場合、3つ以上の周波数帯域毎にAMFM符号データを転送することによって正確な振動を生じさせることができる。なお、上述したように、人間の触覚のみによって振動を感じる場合、周波数帯域数が2つでもよいが、触覚に聴覚刺激を加えて振動を感じさせる場合には周波数帯域数を3つ以上として制御することが有効となり得る。また、振動周波数を変化させずに複数の一定周波数の振動を与える場合、それぞれの周波数(中心周波数)の比率は、単純な整数比になっていることが望ましい。このように、生じさせる周波数を整数比にすることによって、2つの周波数の振動を同時に発生させた場合に「うなり」が発生することを防止することができる。ここで、「うなり」は、振動周波数がわずかに異なる2つの振動波が干渉して、振動振幅がゆっくり周期的に変わる合成波を生ずる現象である。
【0095】
また、単一の周波数帯域に対してAMFM符号データを転送してもよい。第1の例として、複数の周波数帯域成分を含む振動を発生させる用途がない場合、単一の周波数帯域に対してのみAMFM符号データを転送することが考えられる。第2の例として、振動させる振動デバイスの周波数特性がある周波数帯域に極端に偏っており、当該周波数帯域に属する唯一の共振周波数以外ではほとんど振動しない振動デバイスを振動させる場合、当該周波数帯域に対してのみAMFM符号データを転送することが考えられる。第3の例として、AMFM符号データを転送する際のデータ圧縮効率を優先する場合、単一の周波数帯域に対してのみAMFM符号データを転送することが考えられる。
【0096】
次に、図7および図8を参照して、AMFM符号データのデコード処理の一例について説明する。なお、図7は、AMFM符号データのデコードに用いられる符号化テーブルの一例を示す図である。図8は、符号化テーブルで用いられている値kを算出する際に用いられるk算出テーブルの一例を示す図である。
【0097】
図7において、3ビットの符号を用いて振幅更新命令および周波数更新命令を行う3bitAMFM符号化テーブルを示している。AMFM符号データのデコード処理では、このようなAMFM符号化テーブルを用いて更新処理直前において示している振幅値および周波数を基準として次に設定される振幅値および周波数を設定し、所定のサンプリングレート(例えば、8000Hz)で合成波形データを算出する。なお、デコード処理におけるサンプリングレートを上げることによって算出される合成波形の再現精度が上がるがデコード処理負荷が増加することになるため、後述するAMFM符号データの更新頻度と必要な合成波形の再現精度とのバランス等を考慮してサンプリングレートを設定すればよい。以下に説明するAMFM符号データのデコード処理では、振動の振幅の初期値を1/4096、振動の振幅の最小値を1/4096、振動の振幅の最大値を1、振動の振幅が0として判定されるゼロ閾値を1.5/4096とする。また、以下に説明するAMFM符号データのデコード処理では、振動の周波数の初期値を周波数帯域毎に設定されている中心周波数(例えば、振動デバイスの共振周波数である160Hzや320Hz付近)、振動の周波数の最小値を100Hz、振動の周波数の最大値を1000Hzとする。
【0098】
図7に示す振幅更新命令および周波数更新命令は、更新処理直前において示している振幅値および周波数を基準として次に設定される振幅値および周波数をそれぞれ示している。そして、振幅更新命令および周波数更新命令を受信した装置は、次の振幅更新命令および周波数更新命令を受信するまでの期間の振動の振幅値および振動の周波数を、受信した振幅更新命令および周波数更新命令に基づいて更新して設定する。第1の例として、受信した振幅更新命令および周波数更新命令に基づいて設定する振動の振幅値および振動の周波数は、受信直後の値として設定して即時に振動の振幅値および振動の周波数を更新してもよい。第2の例として、受信した振幅更新命令および周波数更新命令に基づいて設定する振動の振幅値および振動の周波数は、次の振幅更新命令および周波数更新命令を受信する直前の値として設定して、上記期間中に当該値に到達するように漸増的および/または漸減的に振動の振幅値および振動の周波数を更新してもよい。第3の例として、受信した振幅更新命令および周波数更新命令に基づいて設定する振動の振幅値および振動の周波数は、次の振幅更新命令および周波数更新命令を受信するまでの期間の途中の値として設定して、当該期間の途中の時点で当該値に到達するように漸増的および/または漸減的に振動の振幅値および振動の周波数を更新してもよい。
【0099】
例えば、AMFM符号データが符号0(000)を示す場合、振動の振幅値が初期値(例えば、1/4096)にリセットされて更新され、振動の周波数が初期値(例えば、160や320)にリセットされて更新される。AMFM符号データが符号1(001)を示す場合、振動の振幅値が20.5倍(約1.414倍)されて更新され、振動の周波数が20.2倍(約1.149倍)されて更新される。AMFM符号データが符号2(010)を示す場合、振動の振幅値が20.5倍(約1.414倍)されて更新され、振動の周波数が2−0.2倍(約0.871倍)されて更新される。AMFM符号データが符号3(011)を示す場合、振動の振幅値が2−0.3倍(約0.812倍)されて更新され、振動の周波数が20.2倍(約1.149倍)されて更新される。AMFM符号データが符号4(100)を示す場合、振動の振幅値が2−0.3倍(約0.812倍)されて更新され、振動の周波数が2−0.2倍(約0.871倍)されて更新される。AMFM符号データが符号5(101)を示す場合、振動の振幅値が2k−2倍されて更新され、振動の周波数は不変とされる。AMFM符号データが符号6(110)を示す場合、振動の振幅値が2倍されて更新され、振動の周波数は不変とされる。AMFM符号データが符号7(111)を示す場合、振動の振幅値が2k+2倍されて更新され、振動の周波数は不変とされる。
【0100】
ここで、値kは、更新処理直前において示している振幅値に応じて設定される。例えば、図8に示すように、更新直前に示している振幅値が最小振幅(例えば、1/4096)以上で最小振幅の20.5倍未満である場合、k=2に設定される。更新直前に示している振幅値が最小振幅の20.5倍以上で最小振幅の21.5倍(約2.828倍)未満である場合、k=1に設定される。更新直前に示している振幅値が最小振幅の21.5倍以上で最大振幅(例えば、1)の2−1.5倍(約0.354倍)以下である場合、k=0に設定される。更新直前に示している振幅値が最大振幅の2−1.5倍より大きく最大振幅の2−0.5倍(約0.707倍)以下である場合、k=−1に設定される。そして、更新直前に示している振幅値が最大振幅の2−0.5倍より大きく最大振幅以下である場合、k=−2に設定される。
【0101】
なお、上述したAMFM符号データのデコード処理では、3ビットの符号を用いて振幅更新命令および周波数更新命令を行う3bitAMFM符号化テーブルを用いる例を用いたが、他の方式によってデコード処理を行ってもよい。例えば、4ビットの符号を用いて振幅更新命令および周波数更新命令を行う4bitAMFM符号化テーブルを用いるデコード処理や、2ビットの符号を用いて振幅更新命令を行う2bitAM符号化テーブルを用いるデコード処理や、3ビットの符号を用いて振幅更新命令を行う3bitAM符号化テーブルを用いるデコード処理等が考えられる。上記4bitAMFM符号化テーブルを用いるデコード処理は、15種の振幅更新命令および周波数更新命令を行うことが可能となるため、3bitAMFM符号化テーブルを用いるデコード処理と比較してAM情報およびFM情報をより詳細に制御することが可能となる。また、上記3bitAM符号化テーブルや上記2bitAM符号化テーブルを用いるデコード処理は、振幅更新命令のみ可能とし、一例として振動周波数が所定の周波数(例えば、中心周波数であり、実質的にアクチュエータの共振周波数となる当該共振周波数付近の周波数)で一定の単純な正弦波の振幅を変調させることによって行われる。ここで、ユーザに与える振動の感触では、一般的に振幅の影響が高く、周波数の影響が低い傾向がある。したがって、上記3bitAM符号化テーブルや上記2bitAM符号化テーブルを用いたデコード処理では、振幅に絞った振動制御をすることによって、振幅更新命令に対して詳細な制御をすることが可能となるとともに、データ通信量を削減することが可能となる。
【0102】
なお、上記3bitAM符号化テーブルや上記2bitAM符号化テーブルを用いるデコード処理において用いられる基本波は、周波数一定の単純な正弦波でなくてもよく、矩形波、三角波、のこぎり波等の正負の値を繰り返す形状の波形や振幅一定の他の形状の波形を有する基本波であってもよい。また、特定の周波数帯域成分を有するノイズが上記基本波であってもよい。例えば、特定の周波数帯域成分を通過させるバンドパスフィルタを通したホワイトノイズ等によって上記基本波が形成されてもよい。さらに、上記3bitAM符号化テーブルや上記2bitAM符号化テーブルを用いるデコード処理において転送されるAMFM符号データに、上記基本波の周波数、形状、ノイズ種別等を示す情報を含ませておき、当該情報に基づいた基本波を用いて当該デコード処理を行ってもよい。
【0103】
また、上記基本波は、正負の値を繰り返さない形状の波形でもよい。例えば、基準値より大きい値と小さい値とを繰り返す波形であればよく、正の極大値および0以上の極小値を交互に繰り返す形状の波形や、0以下の極大値および負の極小値を交互に繰り返す形状の波形でもよい。一例として、基本波の波形は、
(1−cos(2πft))/2
で表される、+1の極大値と0の極小値とを交互に繰り返す波形でもよい。ここで、fは周波数であり、tは時間である。このような基本波を用いてFM波を生成した場合、FM情報によって示される周波数で+1の極大値と0の極小値とを交互に繰り返す波形が形成される。そして、当該FM波に基づいてAMFM波を生成した場合、AM情報によって示される0〜+1の間の振幅値を極大値として、上記FM波によって示される周波数で当該極大値と0の極小値とを交互に繰り返す波形が形成される。
【0104】
このような形状の基本波を用いることによって、以下のような効果を期待することができる。例えば、アクチュエータ373がリニア振動モータで構成される場合、当該リニア振動モータにバネが設けられる。そして、上記リニア振動モータに正の電圧を印加するとバネの力とは反対方向に内部の重りの位置が移動し、当該バネの反力によって当該重りが元の位置に戻る方向に作用している状態になる。したがって、上記重りは、負の電圧を印加しなくても印加電圧を0にするだけで元の位置に戻るため、正の電圧を印加するだけで充分な強さの振動を生成することが可能であり、上記リニア振動モータを駆動する際の電力効率の面での効果を得ることができる。
【0105】
また、複数の周波数帯域毎にAMFM符号データを取得してデコード処理する場合、単一の周波数帯域に対してAMFM符号データを取得してデコード処理する態様と比較して、少ない更新頻度でAMFM符号データを取得して振動データを生成してもよい。例えば、単一の周波数帯域に対してAMFM符号データを取得してデコード処理する態様において他の装置から400Hzの周期でAMFM符号データを取得してデコード処理する場合、2つの周波数帯域毎にそれぞれAMFM符号データを取得してデコード処理する態様において他の装置から200Hzの周期でそれぞれAMFM符号データを取得してデコード処理してもよい。また、複数の周波数帯域毎にAMFM符号データを取得してデコード処理する場合、周波数帯域毎に異なる更新頻度でAMFM符号データを取得してデコード処理してもよい。一例として、低周波数帯域に対する更新頻度に対して、高周波数帯域に対する更新頻度を相対的に少なく設定することが考えられる。他の例として、周波数帯域毎に生じている振動振幅の大きさに応じて、周波数帯域毎に異なる更新頻度でAMFM符号データを転送してデコード処理することが考えられる。例えば、第1の周波数帯域において生じている振動振幅の大きさが第2の周波数帯域において生じている振動振幅の大きさより大きい場合、第1の周波数帯域において他の装置から相対的に多い更新頻度(例えば、400Hzの周期)でAMFM符号データを取得してデコード処理し、第2の周波数帯域において他の装置から相対的に少ない更新頻度(例えば、200Hzの周期)でAMFM符号データを取得してデコード処理することが考えられる。また、第1の周波数帯域において生じている振動振幅の大きさが第2の周波数帯域において生じている振動振幅の大きさと同等で、何れも所定の閾値より大きい場合、第1の周波数帯域および第2の周波数帯域において他の装置から相対的に多い更新頻度(例えば、400Hzの周期)でそれぞれAMFM符号データを取得してデコード処理することが考えられる。また、第1の周波数帯域において生じている振動振幅の大きさが第2の周波数帯域において生じている振動振幅の大きさと同等で、何れも所定の閾値より小さい場合、第1の周波数帯域および第2の周波数帯域において他の装置から相対的に少ない更新頻度(例えば、200Hzの周期)でそれぞれAMFM符号データを取得してデコード処理することが考えられる。
【0106】
次に、AM符号データ(すなわち、振幅更新命令のみが行われる符号データ)の転送元となる装置においてAM符号データをエンコードする処理と、当該AM符号データを受信してデコードする処理の一例について説明する。まず、上記転送元装置において、転送したいオリジナルの振動データ(振動波形)が準備される。そして、上記転送元装置が上記振動データを他の装置に送信するために、複数の周波数帯域毎にAM符号データを転送する場合、当該周波数帯域毎のバンドパスフィルタをそれぞれ通して、各周波数帯域成分の振動データをそれぞれ生成する。一例として、160Hzを中心周波数とする第1の周波数帯域に対応するAM符号データと320Hzを中心周波数とする第2の周波数帯域に対応するAM符号データとを転送する場合、オリジナルの振動データを第1の周波数帯域成分を通過させるバンドパスフィルタを用いて処理することによって第1の周波数帯域成分の振動データを生成し、オリジナルの振動データを第2の周波数帯域成分を通過させるバンドパスフィルタを用いて処理することによって第2の周波数帯域成分の振動データを生成する。そして、第1の周波数帯域成分の振動データを示す振動波形のエンベロープ波形を用いて、所定の符号化テーブルを用いて当該エンベロープの概形を符号化することによって第1の周波数帯域成分のAM符号データを生成する。また、第2の周波数帯域成分の振動データを示す振動波形のエンベロープ波形を用いて、上記符号化テーブルを用いて当該エンベロープの概形を符号化することによって第2の周波数帯域成分のAM符号データを生成する。そして、AM符号データの転送元となる装置は、生成された第1の周波数帯域成分のAM符号データおよび第2の周波数帯域成分のAM符号データを、更新周期毎に他の装置へ送信する。なお、上述したAM符号データをエンコードする処理は、上記転送元装置におけるオフライン処理において予め分析して用意されていてもよい。
【0107】
一方、上記周波数帯域毎のAM符号データを受信した装置では、上記符号化テーブルを用いて第1の周波数帯域成分のAM情報を取り出し、当該第1の周波数帯域成分のAM情報と第1の周波数帯域成分の基本波(例えば、160Hzの正弦波)とを掛け合わせることによって、第1の周波数帯域成分に対応するAM波を生成する。また、上記装置では、上記符号化テーブルを用いて第2の周波数帯域成分のAM情報を取り出し、当該第2の周波数帯域成分のAM情報と第2の周波数帯域成分の基本波(例えば、320Hzの正弦波)とを掛け合わせることによって、第2の周波数帯域成分に対応するAM波を生成する。そして、上記装置では、第1の周波数帯域成分に対応するAM波と第2の周波数帯域成分に対応するAM波とを足し合わせることによって合成波を生成し、当該合成波に基づいてアクチュエータを駆動制御するための振動制御信号を生成する。なお、上述したAM符号データをデコードしてアクチュエータを振動制御する処理は、上記転送元装置からAM符号データを取得することに応じてリアルタイムに行われてもよい。
【0108】
次に、AMFM符号データ(すなわち、振幅更新命令および周波数更新命令が行われる符号データ)の転送元となる装置において行われるデータ出力処理の詳細を説明する。なお、後述する説明では、データ出力処理の一例として、符号データ送信処理を用いる。まず、図9を参照して、上記転送元装置の符号データ送信処理において用いられる主なデータについて説明する。図9は、符号データ送信処理を行う際に、上記転送元装置の記憶部に記憶される主なデータおよびプログラムの一例を示す図である。
【0109】
図9に示すように、上記転送元装置の記憶部のデータ記憶領域には、オリジナル振動データDa、周波数分析処理データDb、エンベロープ処理データDc、符号化処理データDd、およびAMFM符号データDe等が記憶される。なお、上記転送元装置の記憶部には、図9に示すデータの他、実行するアプリケーションで用いるデータ等、処理に必要なデータ等が記憶されてもよい。また、上記転送元装置の記憶部のプログラム記憶領域には、符号データ送信プログラムを構成する各種プログラム群Paが記憶される。
【0110】
オリジナル振動データDaは、上記転送元装置において予め準備されているオリジナルの振動データ(振動波形)であり、AMFM符号データを生成する処理の元になる振動データである。
【0111】
周波数分析処理データDbは、オリジナルの振動データ(振動波形)を周波数分析することによって得られる当該振動データに含まれる周波数を示すデータである。
【0112】
エンベロープ処理データDcは、オリジナルの振動データまたは所定の周波数帯域成分の振動データを示す振動波形のエンベロープ波形を示すデータである。
【0113】
符号化処理データDdは、AM情報(エンベロープ概形)および/またはFM情報を用いて符号化する際に用いられるデータであり、例えば、エンコード処理に用いられる符号化テーブルデータ等を含むデータである。
【0114】
AMFM符号データDeは、AM情報(エンベロープ概形)および/またはFM情報を符号化することによって得られるAMFM符号データを示すデータである。
【0115】
次に、図10を参照して、上記転送元装置において行われるデータ出力処理の一例である符号データ送信処理の詳細を説明する。なお、図10は、上記転送元装置において実行される符号データ送信処理の一例を示すフローチャートである。ここで、図10に示すフローチャートにおいては、上記転送元装置における処理のうち、オリジナルの振動データに基づいてAMFM符号データを生成して送信する処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。また、図10では、上記転送元装置の制御部が実行する各ステップを「S」と略称する。
【0116】
上記転送元装置の制御部のCPUは、上記転送元装置の記憶部のメモリ等を初期化し、上記転送元装置のプログラム格納部から符号データ送信プログラムをメモリに読み込む。そして、CPUによって当該符号データ送信プログラムの実行が開始される。図10に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
【0117】
なお、図10に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび/または代えて別の処理が実行されてもよい。また、本実施例では、上記フローチャートの各ステップの処理を上記転送元装置の制御部(CPU)が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を上記CPUが実行し、その他のステップの処理を上記CPU以外のプロセッサや専用回路が実行するようにしてもよく、上記フローチャートにおける全部のステップの処理を上記CPU以外のプロセッサや専用回路が実行するようにしてもよい。
【0118】
図10において、上記転送元装置の制御部は、送信設定を行い(ステップ61)、次のステップに処理を進める。例えば、上記転送元装置の制御部は、他の装置(例えば、情報処理装置3)へAMFM符号データを送信するための初期設定を行う。一例として、上記転送元装置の制御部は、AMFM符号データを送信する周波数帯域の数、各周波数帯域の範囲、AMFM符号データを送信する周期、符号化に用いる符号化テーブル等を符号化処理データDdに設定して、各パラメータを初期設定する。
【0119】
次に、上記転送元装置の制御部は、AMFM符号データを生成する対象とするオリジナルの振動データを上記転送元装置の記憶部から取得して(ステップ62)、次のステップに処理を進める。例えば、上記転送元装置の制御部は、上記転送元装置の記憶部に予め格納されている複数の振動データからAMFM符号データを生成する対象とする振動データを抽出し、当該抽出した振動データをオリジナル振動データDaとして格納する。
【0120】
次に、上記転送元装置の制御部は、当該処理で用いる一時変数Nを1に初期設定し(ステップ63)、次のステップに処理を進める。
【0121】
次に、上記転送元装置の制御部は、第Nの周波数帯域に応じたバンドパスフィルタ処理を行い(ステップ64)、次のステップに処理を進める。例えば、上記転送元装置の制御部は、第Nの周波数帯域成分を通過させるバンドパスフィルタを設定し、当該バンドパスフィルタを用いてオリジナル振動データDaとして格納されている振動データ(振動波形)を処理することによって第Nの周波数帯域成分以外の周波数帯域成分が除去された振動データを生成する。
【0122】
次に、上記転送元装置の制御部は、上記ステップ64で生成した第Nの周波数帯域成分の振動データを周波数分析して(ステップ65)、次のステップに処理を進める。例えば、上記転送元装置の制御部は、第Nの周波数帯域成分の振動データを周波数分析することによって当該振動データに含まれている振動の周波数変化を分析し、当該分析結果を示すデータを周波数分析処理データDbとして格納する。
【0123】
次に、上記転送元装置の制御部は、第Nの周波数帯域成分に対応する周波数分析処理データDbに基づいて、第Nの周波数帯域成分におけるFM情報を生成し(ステップ66)、次のステップに処理を進める。例えば、上記転送元装置の制御部は、上記ステップ65において得られた周波数分析結果に基づいて、第Nの周波数帯域成分の振動データにおける周波数変化を示すFM情報(例えば、図5図6に示すようなFM情報)を生成する。
【0124】
次に、上記転送元装置の制御部は、上記ステップ64で生成した第Nの周波数帯域成分の振動データのエンベロープ波形を生成して(ステップ67)、次のステップに処理を進める。例えば、上記転送元装置の制御部は、上記ステップ64で生成した第Nの周波数帯域成分の振動データ(振動波形)のエンベロープをとった信号を生成して、当該信号を示すデータをエンベロープ処理データDcとして格納する。なお、上記エンベロープ処理では、第Nの周波数帯域成分の振動データ(例えば、横軸が時間、縦軸が振幅で示された波形データ)の移動最大値(移動する一定区間毎の最大値)のエンベロープを算出してもよいし、上記振動データの一定区間毎の区間最大値のエンベロープを算出してもよいし、上記振動データにおける振幅の極大値を通る曲線を算出してもよい。
【0125】
次に、上記転送元装置の制御部は、上記ステップ67で生成したエンベロープ波形の概形およびFM情報を符号化することによって、AMFM符号データを生成して(ステップ68)、次のステップに処理を進める。例えば、上記転送元装置の制御部は、上記ステップ67で生成したエンベロープ波形の概形に基づいて、AMFM符号データを送信する周期毎の第Nの周波数帯域成分における振幅の変化量を算出する。また、上記転送元装置の制御部は、上記ステップ66において生成したFM情報に基づいて、AMFM符号データを送信する周期毎の第Nの周波数帯域成分における周波数の変化量を算出する。そして、上記転送元装置の制御部は、符号化に用いられる符号化テーブルに基づいて、算出された振幅の変化量および周波数の変化量をエンコードすることによって、AMFM符号データを送信する周期毎の第Nの周波数帯域成分に対応するAMFM符号データを生成し、当該AMFM符号データを第Nの周波数帯域成分に対応するAMFM符号データDeとして格納する。
【0126】
次に、上記転送元装置の制御部は、上記ステップ62で取得したオリジナルの振動データに対して、周波数帯域毎の符号化処理が終了したか否かを判定する(ステップ69)。そして、上記転送元装置の制御部は、符号化処理が終了していない周波数帯域が残っている場合、ステップ70に処理を進める。一方、上記転送元装置の制御部は、符号化処理が終了していない周波数帯域が残っていない場合、ステップ71に処理を進める。
【0127】
ステップ70において、上記転送元装置の制御部は、一時変数Nに1を加算し一時変数Nを更新し、上記ステップ64に処理を進める。
【0128】
一方、ステップ71において、上記転送元装置の制御部は、AMFM符号データを送信する周期毎に当該周期に対応するAMFM符号データを転送先装置(例えば、情報処理装置3)へ送信し、当該フローチャートによる処理を終了する。
【0129】
なお、上述したAMFM符号データをエンコードする処理(すなわち、上記ステップ61〜ステップ69の処理)は、上記転送元装置におけるオフライン処理において予め処理されてAMFM符号データDeとして格納されていてもよいし、転送先の装置からの要請に応じて、リアルタイムに行われてもよい。
【0130】
次に、AMFM符号データの転送先となる情報処理装置3において行われる振動信号生成の詳細を説明する。なお、後述する説明では、振動信号生成処理の一例として、符号データ受信処理を用いる。まず、図11を参照して、情報処理装置3の符号データ受信処理において用いられる主なデータについて説明する。図11は、符号データ受信処理を行う際に、情報処理装置3の記憶部32に記憶される主なデータおよびプログラムの一例を示す図である。
【0131】
図11に示すように、記憶部32のデータ記憶領域には、受信データDm、AM情報データDn、FM情報データDo、FM波データDp、AMFM波データDq、合成波データDr、および振動制御信号データDs等が記憶される。なお、記憶部32には、図11に示すデータの他、実行するアプリケーションで用いるデータ等、処理に必要なデータ等が記憶されてもよい。また、記憶部32のプログラム記憶領域には、符号データ受信プログラムを構成する各種プログラム群Pbが記憶される。例えば、各種プログラム群Pbは、AMFM符号データを受信するための受信プログラム、AMFM符号データをデコードするためのデコードプログラム、振動制御信号を生成するための振動制御信号生成プログラム等が含まれる。
【0132】
受信データDmは、他の装置(例えば、上述した転送元装置)から受信したデータである。
【0133】
AM情報データDnは、他の装置から転送されたAMFM符号データから取り出されたAM情報を示すデータである。FM情報データDoは、他の装置から転送されたAMFM符号データから取り出されたFM情報を示すデータである。
【0134】
FM波データDpは、FM情報から生成された周波数変調正弦波(FM波)を示すデータである。AMFM波データDqは、AM情報をFM波に掛け合わせて生成されたAMFM波を示すデータである。
【0135】
合成波データDrは、周波数帯域毎に生成されたAMFM波を足し合わせて生成された合成波を示すデータである。振動制御信号データDsは、上記合成波に基づいて生成された、アクチュエータ373の駆動制御を行うためのデータである。例えば、振動制御信号データDsは、制御部31から振動発生部37へ出力するための振動制御信号(振動制御信号CS;図3参照)を示すデータである。
【0136】
次に、図12を参照して、情報処理装置3において行われる振動信号生成処理の一例である符号データ受信処理の詳細を説明する。なお、図12は、情報処理装置3において実行される符号データ受信処理の一例を示すフローチャートである。ここで、図12に示すフローチャートにおいては、情報処理装置3における処理のうち、他の装置からAMFM符号データを受信して振動制御信号を生成する処理について主に説明し、これらの処理と直接関連しない他の処理については詳細な説明を省略する。また、図12では、情報処理装置3の制御部31が実行する各ステップを「S」と略称する。
【0137】
情報処理装置3の制御部31のCPUは、記憶部32のメモリ等を初期化し、情報処理装置3のプログラム格納部33から符号データ受信プログラムをメモリに読み込む。そして、CPUによって当該符号データ受信プログラムの実行が開始される。図12に示すフローチャートは、以上の処理が完了した後に行われる処理を示すフローチャートである。
【0138】
なお、図12に示すフローチャートにおける各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよいし、各ステップの処理に加えておよび/または代えて別の処理が実行されてもよい。また、本実施例では、上記フローチャートの各ステップの処理を情報処理装置3の制御部31(CPU)が実行するものとして説明するが、上記フローチャートにおける一部のステップの処理を上記CPUが実行し、その他のステップの処理を上記CPU以外のプロセッサや専用回路が実行するようにしてもよく、上記フローチャートにおける全部のステップの処理を上記CPU以外のプロセッサや専用回路が実行するようにしてもよい。
【0139】
図12において、制御部31は、受信設定を行い(ステップ81)、次のステップに処理を進める。例えば、制御部31は、他の装置(例えば、上記転送元装置)からAMFM符号データを受信するための初期設定を行う。一例として、制御部31は、AMFM符号データを受信する周波数帯域の数、各周波数帯域の範囲、AMFM符号データを受信する周期、デコード処理に用いる符号化テーブル等を設定して、各パラメータを初期設定する。なお、上記受信設定において設定するパラメータについては、他の装置から受信した受信データに記述された情報に基づいて設定してもよい。
【0140】
次に、制御部31は、他の装置から符号データ(例えば、AMFM符号データ)を受信するのを待つ(ステップ82)。そして、制御部31は、他の装置から符号データを受信した場合、当該受信したデータを受信データDmとして格納して、ステップ83に処理を進める。
【0141】
ステップ83において、制御部31は、上記ステップ82で受信したAMFM符号データをデコードしてAM情報を取り出し、次のステップに処理を進める。例えば、制御部31は、処理対象とする周波数帯域を設定して、上記ステップ82で受信したデータから当該周波数帯域に対応するAMFM符号データを抽出し、設定されている符号化テーブルに基づいて当該周波数帯域成分のAM情報を取り出して、AM情報データDnとして格納する。ここで、AM情報の取り出し方については、図5図8を用いて説明した態様と同様である。なお、AM情報として算出された振幅値が予め設定されている振動振幅の最小値(例えば、1/4096)より小さい場合は、AM情報を当該最小値に設定する。また、AM情報として算出された振幅値が予め設定されている振動振幅の最大値(例えば、1)より大きい場合は、AM情報を当該最大値に設定する。
【0142】
次に、制御部31は、上記ステップ82で受信したAMFM符号データをデコードしてFM情報を取り出し(ステップ84)、次のステップに処理を進める。例えば、制御部31は、処理対象として設定されている周波数帯域に対応するAMFM符号データを上記ステップ82で受信したデータから抽出し、設定されている符号化テーブルに基づいて当該周波数帯域成分のFM情報を取り出して、FM情報データDoとして格納する。なお、FM情報の取り出し方については、図5図8を用いて説明した態様と同様である。なお、FM情報として算出された周波数が予め設定されている振動周波数の最小値(例えば、100Hz)より小さい場合は、FM情報を当該最小値に設定する。また、FM情報として算出された周波数が予め設定されている振動周波数の最大値(例えば、1000Hz)より大きい場合は、FM情報を当該最大値に設定する。
【0143】
次に、制御部31は、上記ステップ84において取り出されたFM情報から周波数変調正弦波(FM波)を生成し(ステップ85)、次のステップに処理を進める。例えば、制御部31は、図5および図6を用いて説明したように、FM情報に応じた周波数で変位する正弦波を上記周波数帯域に対応するFM波として生成し、当該FM波を示すデータをFM波データDpとして格納する。
【0144】
次に、制御部31は、上記ステップ83において取り出されたAM情報を上記ステップ85で生成されたFM波に掛け合わせてAMFM波を生成し(ステップ86)、次のステップに処理を進める。例えば、制御部31は、上記ステップ85で生成されたFM波に応じた周波数で上記ステップ83において取り出されたAM情報に応じた振幅で変位する振動波形を上記周波数帯域に対応するAMFM波として生成し、当該AMFM波を示すデータをAMFM波データDqとして格納する。なお、振動を生成するアプリケーションで用いる振動振幅の値に、AMFM波の振幅値を換算する場合、上記ステップ86において当該換算に必要な倍率でAMFM波の振幅値を変更してもよい。例えば、上記アプリケーション内部で振動サンプルが符号付き16ビット整数型(−32768〜+32767)で表現される場合、AMFM波の振幅値を32767倍して換算を行うとともに、AMFM波の振幅値がゼロ閾値(例えば、1.5/4096)より小さい場合はアプリケーションで用いる振動振幅の値を0に換算する。
【0145】
次に、制御部31は、上記ステップ82において、他の周波数帯域の符号データを受信しているか否かを判定する(ステップ87)。そして、制御部31は、他の周波数帯域の符号データを受信している場合、別の周波数帯域を処理対象に設定して、上記ステップ83に処理を進める。一方、制御部31は、他の周波数帯域の符号データを受信していない場合(全ての周波数帯域の符号データに対するデコード処理が終了している場合)、別の周波数帯域を処理対象に設定して、ステップ83に処理を進める。
【0146】
ステップ88において、制御部31は、上記ステップ86において生成された各周波数帯域を対象としたAMFM波を足し合わせることによって合成波を生成し、次のステップに処理を進める。例えば、制御部31は、周波数帯域を対象としたAMFM波を足し合わせることによって生成された合成波を示すデータ合成波データDrとして格納する。
【0147】
次に、制御部31は、上記ステップ88において生成された合成波に基づいて振動制御信号を生成し(ステップ89)、次のステップに処理を進める。例えば、制御部31は、上記ステップ88において生成された合成波をそのまま振動制御信号として生成して、振動制御信号データDsに格納する。
【0148】
次に、制御部31は、振動制御信号を出力し(ステップ90)、次のステップに処理を進める。例えば、制御部31は、振動制御信号データDsが示す振動制御信号CSを振動発生部37へ出力する。これによって、振動発生部37は、振動制御信号CSに応じた振動をアクチュエータ373から発生させる。
【0149】
次に、制御部31は、処理を終了するか否かを判断する(ステップ91)。処理を終了する条件としては、例えば、処理を終了させる条件が満たされたことや、ユーザが処理を終了する操作を行ったこと等がある。制御部31は、処理を終了しない場合に上記ステップ82に戻って処理を繰り返し、処理を終了する場合に当該フローチャートによる処理を終了する。
【0150】
このように、上述した実施例に係る処理では、転送元の装置から転送された符号データを用いて、転送先の装置(例えば、情報処理装置3)において振動データを生成することができる。ここで、転送先の装置では、所定の周期毎に転送された符号データによって、アクチュエータを振動させている途中で振動パラメータ(例えば、振動周波数、振動振幅)が変化させることも可能であり、振動中に振動パラメータを変化させる場合に符号データを効率的に取り扱うことができる。
【0151】
なお、上述した実施例では、装置間で符号データを転送することによって転送先の装置において当該符号データに基づいた振動信号が生成される例を用いたが、他の態様によって振動信号が生成されてもよい。例えば、振動信号を生成する装置(上述の例では、情報処理装置3)の中に、所定の周期毎に生成された符号データを予め格納しておき、当該符号データに基づいた振動信号が必要となったときに自機に格納されている符号データを取得してデコードすることによって振動信号を生成してもよい。これによって、振動信号を生成する装置において、振動信号を生成するために記憶しておくデータ量を少なくすることが可能となる。
【0152】
また、上述した実施例では、情報処理装置3にアクチュエータ373が1つ設けられている例を用いたが、ユーザに振動を与えるアクチュエータが複数設けられてもよい。一例として、情報処理装置3の左右に一対のアクチュエータを設けてもよい。この場合、制御部31は、1つの符号データからそれぞれのアクチュエータを駆動するための振動制御信号をそれぞれ生成してもいいし、それぞれ別の符号データ(例えば、一方のアクチュエータ用の符号データと他方のアクチュエータ用の符号データ)からそれぞれのアクチュエータを駆動するための振動制御信号をそれぞれ生成してもよい。
【0153】
例えば、アクチュエータ373が複数設けられており、それぞれのアクチュエータ373から独立した振動を発生させる場合、アクチュエータ373毎に振動を制御するための振動制御信号が制御部31から出力される。この場合、コーデック部371は、制御部31から出力された振動制御信号をそれぞれ復号して、アクチュエータ373毎に振動を発生させるためのアナログ振動信号を生成して、増幅部372へそれぞれ出力する。そして、増幅部372は、コーデック部371から出力されたアナログ振動信号の電流/電圧の振幅変化をそれぞれ増大させて駆動信号を生成して、複数のアクチュエータ373へそれぞれ出力する。複数のアクチュエータが情報処理装置3に備えられている場合、ユーザの皮膚における異なる2点(一例として、情報処理装置3本体を把持するユーザの左手と右手)に刺激を与えることによって擬似的な1点の刺激を知覚させるファントムセンセーションを利用して、当該アクチュエータは、表示部35に表示している所定画像の位置が振動源であるように擬似的に知覚させる振動を情報処理装置3のユーザに与えることも可能となる。
【0154】
また、上述した実施例では、符号データを転送する転送元の装置から情報処理装置3へ当該符号データを無線で送信する例を用いたが、当該転送元の装置から情報処理装置3へ当該符号データを有線で送信してもよい。無線または有線によって通信する転送速度が遅い場合であっても、符号データを送ることによって振動制御の遅延を防止できる。
【0155】
また、符号データの転送先となる装置は、ユーザが把持して操作する操作装置(いわゆる、コントローラ)であってもよい。この場合、操作装置内に振動を生成するアクチュエータが設けられ、符号データの転送元装置(例えば、ゲーム装置本体)から当該操作装置(例えば、コントローラ)へ振動データを生成するための符号データが無線通信で転送される。そして、上記操作装置内で符号データをデコードし、当該デコードされた振動データに基づいて内蔵されているアクチュエータを駆動制御する。このように、ゲーム装置本体と当該本体に無線接続されたコントローラとから構成されるゲームシステムであっても、当該ゲーム装置本体から符号データをコントローラに送信して当該コントローラ内のアクチュエータの駆動制御することによって、上記と同様の効果を得ることができる。なお、上記ゲーム装置本体と無線接続されるコントローラは、複数(例えば、複数のユーザがそれぞれ把持する複数のコントローラや1人のユーザが両手にそれぞれ把持する一対のコントローラ)であってもよく、ゲーム装置本体とアクチュエータをそれぞれ内蔵した複数のコントローラから構成されるゲームシステムでもよい。この場合、ゲーム装置本体から複数のコントローラへ振動データを生成するための符号データが無線通信でそれぞれ転送されることによって、それぞれのコントローラにおいて当該符号データに応じた振動を生成することができる。なお、上記ゲーム装置本体では振動データを符号化する処理は行わず、当該ゲーム装置本体にインストールされるプログラム等に振動データが予め符号化されたデータが含まれていてもよい。この場合、上記ゲーム装置本体は、予め符号化された符号データを必要に応じてコントローラに出力し、当該コントローラにおいて当該符号データをデコードすることになる。なお、ゲーム装置本体と単一または複数のコントローラとの間の通信は、無線であってもよいし、有線であってもよい。
【0156】
また、上述した説明ではデータ出力処理(例えば、符号データ送信処理)を転送元装置で行い、振動信号生成処理(符号データ受信処理)を情報処理装置3で行う例を用いたが、上記処理における処理ステップの少なくとも一部を他の装置で行ってもかまわない。例えば、上記転送元装置や情報処理装置3がさらに他の装置(例えば、別のサーバ、他のゲーム装置、他の携帯端末)と通信可能に構成されている場合、上記処理における処理ステップは、さらに当該他の装置が協働することによって実行してもよい。このように、上記処理における処理ステップの少なくとも一部を他の装置で行うことによって、上述した処理と同様の処理が可能となる。また、上述した処理は、少なくとも1つの情報処理装置により構成される情報処理システムに含まれる1つのプロセッサまたは複数のプロセッサ間の協働により実行されることが可能である。なお、少なくとも1つの情報処理装置により構成される情報処理システムは、複数の情報処理装置により構成される情報処理システム(いわゆる、複数の装置の複合体で構成されるシステム)と1つの情報処理装置によって構成される情報処理システム(いわゆる、複数のユニットが構成された単独の装置で構成されるシステム)とが考えられる。また、上記実施例においては、転送元装置や情報処理装置3の制御部が所定のプログラムを実行することによって、上述したフローチャートによる処理が行われたが、転送元蔵置や情報処理装置3が備える専用回路によって上記処理の一部または全部が行われてもよい。
【0157】
ここで、上述した変形例によれば、いわゆるクラウドコンピューティングのシステム形態や分散型の広域ネットワークおよびローカルネットワークのシステム形態でも本実施例を実現することが可能となる。例えば、分散型のローカルネットワークのシステム形態では、据置型の情報処理装置(据置型のゲーム装置)と携帯型の情報処理装置(携帯型のゲーム装置)との間で上記処理を協働により実行することも可能となる。なお、これらのシステム形態では、上述した処理の各ステップの処理をどの装置で行うかについては特に限定されず、どのような処理分担をしたとしても本実施例を実現できることは言うまでもない。
【0158】
また、上述した情報処理で用いられる処理順序、設定値、判定に用いられる条件等は、単なる一例に過ぎず他の順序、値、条件であっても、本実施例を実現できることは言うまでもない。また、上述した情報処理装置で用いられる各構成部品の形状、数、配置位置、部品が有する機能等は、単なる一例に過ぎず他の形状、数、配置位置であってもいいし、他の機能を有するものであっても、本実施例を実現できることは言うまでもない。一例として、情報処理装置に振動を与えるアクチュエータや情報処理装置から音声を出力するスピーカは、3つ以上であってもよい。また、情報処理装置は、複数の表示部を有してもよい。また、上述した説明では、携帯型の装置(例えば、タブレット端末)を情報処理装置3の一例として用いたが、情報処理装置3は、携帯型の装置より相対的に大きな手持ち型の装置または可搬型の装置でもよい。ここで、手持ち型の装置とは、ユーザが手に持って操作することができる装置であり、上述した携帯型の装置を含む概念である。また、可搬型の装置とは、当該装置を用いる際に当該装置本体を移動させたり、当該装置を用いる際に当該本体の姿勢を変えたり、当該装置本体を持ち運びしたりできる装置であり、上述した手持ち型の装置や携帯型の装置を含む概念である。
【0159】
また、上記振動信号生成プログラムは、外部メモリ等の外部記憶媒体を通じて情報処理装置3に供給されるだけでなく、有線または無線の通信回線を通じて情報処理装置3に供給されてもよい。また、上記振動信号生成プログラムは、情報処理装置3内部の不揮発性記憶装置に予め記録されていてもよい。なお、上記振動信号生成プログラムを記憶する情報記憶媒体としては、不揮発性メモリの他に、CD−ROM、DVD、あるいはそれらに類する光学式ディスク状記憶媒体、フレキシブルディスク、ハードディスク、光磁気ディスク、磁気テープ、などでもよい。また、上記振動信号生成プログラムを記憶する情報記憶媒体としては、上記振動信号生成プログラムを記憶する揮発性メモリでもよい。このような記憶媒体は、コンピュータ等が読み取り可能な記録媒体ということができる。例えば、コンピュータ等に、これらの記録媒体のゲームプログラムを読み込ませて実行させることにより、上述で説明した各種機能を提供させることができる。
【0160】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。また、当業者は、本発明の具体的な実施例の記載から、本発明の記載および技術常識に基づいて等価な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用される全ての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書(定義を含めて)が優先する。
【産業上の利用可能性】
【0161】
以上のように、本発明は、振動パラメータを変化させること等を目的として、例えば振動信号生成プログラム、振動信号生成システム、振動信号生成装置、振動信号生成方法、およびデータ出力プログラム等として有用である。
【符号の説明】
【0162】
3…情報処理装置
31…制御部
32…記憶部
33…プログラム格納部
34…入力部
341…タッチパネル
35…表示部
36…音声出力部
37…振動発生部
371…コーデック部
372…増幅部
373…アクチュエータ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12