(57)【特許請求の範囲】
【請求項１】
振動デバイスを振動させる振動制御装置であって、
前記振動デバイスの動作状況に関する情報を取得する取得部と、
振動指示を受け付ける振動指示受付部と、
前記受け付けた振動指示の内容を、前記動作状況に関する情報に応じて補正した内容で、前記振動デバイスを振動させる振動制御部と、
を含み、
前記動作状況に関する情報は、前記振動デバイスに加わる重力の方向を示す情報を含み、
前記振動制御部は、前記重力の方向と、前記振動指示に応じて前記振動デバイスが内蔵する錘が運動する方向と、の関係に応じて、前記振動の強さを補正する
ことを特徴とする振動制御装置。
【請求項２】
振動デバイスを振動させる振動制御装置であって、
前記振動デバイスの動作状況に関する情報を取得する取得部と、
振動指示を受け付ける振動指示受付部と、
前記受け付けた振動指示の内容を、前記動作状況に関する情報に応じて補正した内容で、前記振動デバイスを振動させる振動制御部と、
を含み、
前記動作状況に関する情報は、基準時点から現時点までの前記振動デバイスの使用期間の長さを示す情報を含み、
前記振動制御部は、予め記憶されている前記振動デバイスの振動特性の経時変化に関する期間特性情報と、前記使用期間の長さと、に応じて決まる補正量で、前記振動デバイスの振動特性の変化を補正する
ことを特徴とする振動制御装置。
【請求項３】
請求項２に記載の振動制御装置であって、
前記取得部は、複数の周波数のそれぞれで前記振動デバイスを振動させた際に発生する振動の強さの計測結果を取得し、
前記振動制御部は、前記計測結果に基づいて、使用期間による前記振動デバイスの振動特性の変化を示す振動特性情報を特定し、当該特定された振動特性情報に基づいて前記補正を行う
ことを特徴とする振動制御装置。
【請求項４】
振動デバイスを振動させる振動制御装置であって、
前記振動デバイスの動作状況に関する情報を取得する取得部と、
振動指示を受け付ける振動指示受付部と、
前記受け付けた振動指示の内容を、前記動作状況に関する情報に応じて補正した内容で、前記振動デバイスを振動させる振動制御部と、
を含み、
前記動作状況に関する情報は、基準時点から現時点までの前記振動デバイスの使用期間を示す情報を含み、
前記取得部は、複数の周波数のそれぞれで前記振動デバイスを振動させた際に発生する振動の強さの計測結果を取得し、
前記振動制御部は、前記複数の周波数のうちの一つで前記振動デバイスを振動させた際の計測結果に基づいて、ユーザーによる前記振動デバイスの保持状態を特定し、前記複数の周波数のうちの他の一つで前記振動デバイスを振動させた際の計測結果と、前記特定された保持状態と、に基づいて、使用期間による前記振動デバイスの振動特性の変化を示す振動特性情報を特定し、当該特定された振動特性情報に基づいて前記補正を行う
ことを特徴とする振動制御装置。
【請求項５】
振動デバイスを振動させる振動制御装置であって、
前記振動デバイスの動作状況に関する情報を取得する取得部と、
振動指示を受け付ける振動指示受付部と、
前記受け付けた振動指示の内容を、前記動作状況に関する情報に応じて補正した内容で、前記振動デバイスを振動させる振動制御部と、
を含み、
前記動作状況に関する情報は、ユーザーが前記振動デバイスを握る強さに関する情報を含み、
前記振動制御部は、前記ユーザーが前記振動デバイスを握る強さが所定の基準より弱い場合に、前記受け付けた振動指示に含まれる振動波形の所定の高周波数成分を弱める補正を行う
ことを特徴とする振動制御装置。
【請求項６】
振動デバイスを振動させる振動制御装置であって、
前記振動デバイスの動作状況に関する情報を取得する取得部と、
振動指示を受け付ける振動指示受付部と、
前記受け付けた振動指示の内容を、前記動作状況に関する情報に応じて補正した内容で、前記振動デバイスを振動させる振動制御部と、
を含み、
前記取得部は、前記動作状況に関する情報として、ユーザーによる前記振動デバイスの保持状態に関する情報を取得して、取得した前記保持状態に関する情報を記録し、
前記振動制御部は、過去に記録された前記保持状態に関する情報から特定される前記ユーザーの保持状態の傾向に応じた補正を行う
ことを特徴とする振動制御装置。
【請求項７】
請求項１から６のいずれか一項に記載の振動制御装置であって、
前記動作状況に関する情報は、前記振動デバイス内部の温度に関する情報を含み、
前記振動制御部は、温度の変化によって生じると推定される前記振動デバイスの振動特性の変化を補正する
ことを特徴とする振動制御装置。
【請求項８】
請求項１から７のいずれか一項に記載の振動制御装置であって、
前記振動デバイスは、マイクロホンを備え、
前記動作状況に関する情報は、前記マイクロホンに入力される音声信号に人の声が含まれているか否かを判定した結果を示す情報を含み、
前記振動制御部は、前記マイクロホンに入力される音声信号に人の声が含まれていると判定された場合に前記振動指示の内容を補正する
ことを特徴とする振動制御装置。
【請求項９】
請求項１から８のいずれか一項に記載の振動制御装置であって、
前記動作状況に関する情報は、前記振動デバイスの電力消費量に関する情報を含み、
前記振動制御部は、前記振動デバイスの電力消費量に応じて、前記振動デバイスの電力消費を抑制するように、前記振動指示に含まれる一部又は全部の周波数帯の振動を弱める補正を行う
ことを特徴とする振動制御装置。
【請求項１０】
振動デバイスの制御方法であって、
前記振動デバイスの動作状況に関する情報を取得する取得ステップと、
振動指示を受け付けるステップと、
前記受け付けた振動指示の内容を、前記動作状況に関する情報に応じて補正した内容で、前記振動デバイスを振動させる振動制御ステップと、
を含み、
前記動作状況に関する情報は、前記振動デバイスに加わる重力の方向を示す情報を含み、
前記振動制御ステップでは、前記重力の方向と、前記振動指示に応じて前記振動デバイスが内蔵する錘が運動する方向と、の関係に応じて、前記振動の強さを補正する、
又は、
前記動作状況に関する情報は、基準時点から現時点までの前記振動デバイスの使用期間の長さを示す情報を含み、
前記振動制御ステップでは、予め記憶されている前記振動デバイスの振動特性の経時変化に関する期間特性情報と、前記使用期間の長さと、に応じて決まる補正量で、前記振動デバイスの振動特性の変化を補正する、
又は、
前記動作状況に関する情報は、基準時点から現時点までの前記振動デバイスの使用期間を示す情報を含み、
前記取得ステップでは、複数の周波数のそれぞれで前記振動デバイスを振動させた際に発生する振動の強さの計測結果を取得し、
前記振動制御ステップでは、前記複数の周波数のうちの一つで前記振動デバイスを振動させた際の計測結果に基づいて、ユーザーによる前記振動デバイスの保持状態を特定し、前記複数の周波数のうちの他の一つで前記振動デバイスを振動させた際の計測結果と、前記特定された保持状態と、に基づいて、使用期間による前記振動デバイスの振動特性の変化を示す振動特性情報を特定し、当該特定された振動特性情報に基づいて前記補正を行う、
又は、
前記動作状況に関する情報は、ユーザーが前記振動デバイスを握る強さに関する情報を含み、
前記振動制御ステップでは、前記ユーザーが前記振動デバイスを握る強さが所定の基準より弱い場合に、前記受け付けた振動指示に含まれる振動波形の所定の高周波数成分を弱める補正を行う、
又は、
前記取得ステップでは、前記動作状況に関する情報として、ユーザーによる前記振動デバイスの保持状態に関する情報を取得して、取得した前記保持状態に関する情報を記録し、
前記振動制御ステップでは、過去に記録された前記保持状態に関する情報から特定される前記ユーザーの保持状態の傾向に応じた補正を行う、
ことを特徴とする振動デバイスの制御方法。
【請求項１１】
振動デバイスを制御するためのプログラムであって、
前記振動デバイスの動作状況に関する情報を取得する取得部、
振動指示を受け付ける振動指示受付部、及び、
前記受け付けた振動指示の内容を、前記動作状況に関する情報に応じて補正した内容で、前記振動デバイスを振動させる振動制御部、
としてコンピュータを機能させるためのプログラムであり、
前記動作状況に関する情報は、前記振動デバイスに加わる重力の方向を示す情報を含み、
前記振動制御部は、前記重力の方向と、前記振動指示に応じて前記振動デバイスが内蔵する錘が運動する方向と、の関係に応じて、前記振動の強さを補正する、
又は、
前記動作状況に関する情報は、基準時点から現時点までの前記振動デバイスの使用期間の長さを示す情報を含み、
前記振動制御部は、予め記憶されている前記振動デバイスの振動特性の経時変化に関する期間特性情報と、前記使用期間の長さと、に応じて決まる補正量で、前記振動デバイスの振動特性の変化を補正する、
又は、
前記動作状況に関する情報は、基準時点から現時点までの前記振動デバイスの使用期間を示す情報を含み、
前記取得部は、複数の周波数のそれぞれで前記振動デバイスを振動させた際に発生する振動の強さの計測結果を取得し、
前記振動制御部は、前記複数の周波数のうちの一つで前記振動デバイスを振動させた際の計測結果に基づいて、ユーザーによる前記振動デバイスの保持状態を特定し、前記複数の周波数のうちの他の一つで前記振動デバイスを振動させた際の計測結果と、前記特定された保持状態と、に基づいて、使用期間による前記振動デバイスの振動特性の変化を示す振動特性情報を特定し、当該特定された振動特性情報に基づいて前記補正を行う
又は、
前記動作状況に関する情報は、ユーザーが前記振動デバイスを握る強さに関する情報を含み、
前記振動制御部は、前記ユーザーが前記振動デバイスを握る強さが所定の基準より弱い場合に、前記受け付けた振動指示に含まれる振動波形の所定の高周波数成分を弱める補正を行う、
又は、
前記取得部は、前記動作状況に関する情報として、ユーザーによる前記振動デバイスの保持状態に関する情報を取得して、取得した前記保持状態に関する情報を記録し、
前記振動制御部は、過去に記録された前記保持状態に関する情報から特定される前記ユーザーの保持状態の傾向に応じた補正を行う、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザーに振動を提示する振動デバイスを制御する振動制御装置、振動デバイスの制御方法、及び制御プログラムに関する。
【背景技術】
【０００２】
家庭用ゲーム機に接続して使用される操作デバイスなどのように、ユーザーが自身の体に装着したり保持したりして使用するデバイスの中には、そのデバイスの一部又は全部を振動させるための振動機構を備えるものがある。このような振動機構を備えた振動デバイスは、任意のタイミングで振動機構を動作させることで、ユーザーに振動を提示することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
上記従来例の技術における振動デバイスは、一般的に、動作状況によってその振動特性が変化する。そのため、同じ制御信号を入力したとしても、状況によってユーザーが感じる振動にばらつきが生じてしまう。【０００４】
本発明は上記実情を考慮してなされたものであって、その目的の一つは、振動デバイスの動作状況による振動特性のばらつきを抑えることのできる振動制御装置、振動デバイスの制御方法、及び制御プログラムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明に係る振動制御装置は、振動デバイスを振動させる振動制御装置であって、前記振動デバイスの動作状況に関する情報を取得する取得部と、振動指示を受け付ける振動指示受付部と、前記受け付けた振動指示の内容を、前記動作状況に関する情報に応じて補正した内容で、前記振動デバイスを振動させる振動制御部と、を含むことを特徴とする。【０００６】
本発明に係る振動デバイスの制御方法は、前記振動デバイスの動作状況に関する情報を取得するステップと、振動指示を受け付けるステップと、前記受け付けた振動指示の内容を、前記動作状況に関する情報に応じて補正した内容で、前記振動デバイスを振動させるステップと、を含むことを特徴とする。【０００７】
本発明に係るプログラムは、振動デバイスを制御するためのプログラムであって、前記振動デバイスの動作状況に関する情報を取得する取得部、振動指示を受け付ける振動指示受付部、及び、前記受け付けた振動指示の内容を、前記動作状況に関する情報に応じて補正した内容で、前記振動デバイスを振動させる振動制御部、としてコンピュータを機能させるためのプログラムである。このプログラムは、コンピュータ読み取り可能で非一時的な情報記憶媒体に格納されて提供されてよい。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態に係る振動制御装置を含む振動制御システムの構成例を表すブロック図である。
【図２】本発明の実施の形態に係る振動制御装置の機能を表す機能ブロック図である。
【図３】温度特性情報の内容の一例を示す図である。
【図４】保持状態特性情報の内容の一例を示す図である。
【図５】加速度に応じた振動波形の補正内容の一例を示す図である。
【図６】キャリブレーション処理の流れの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態について図面を参照しながら説明する。
【００１０】
本発明の実施の形態の一例に係る振動制御システム１は、振動制御装置１０と、振動制御装置１０に接続される振動デバイス２０とを含んで構成されている。
【００１１】
振動デバイス２０は、ユーザーが手で保持したり、ユーザーの身体に装着したりして使用するデバイスである。振動デバイス２０は振動機構２１を内蔵しており、この振動機構２１を動作させることによってユーザーに振動を提示する。振動機構２１は、リニア共振アクチュエータやボイスコイルモーター、偏心モーターなど、各種の振動発生素子であってよい。また、振動デバイス２０は、ユーザーによる操作の対象となる操作ボタンやレバーなど、各種の操作部材を備えてもよい。
【００１２】
さらに本実施形態において、振動デバイス２０は、１又は複数のセンサー２２を含んでいる。これらのセンサー２２は、その振動デバイス２０の動作状況を示す情報を取得し、その結果を振動制御装置１０に送信する。具体的に、センサー２２は、振動デバイス２０の動きを検出する加速度センサー等のモーションセンサーを含むこととする。また、センサー２２には、周囲の音声を集音するマイクロホンが含まれてもよい。さらに、振動デバイス２０筐体内部の温度を測定する温度センサーが含まれてもよい。
【００１３】
振動制御装置１０は、振動デバイス２０と通信接続される情報処理装置であって、例えば家庭用ゲーム機やパーソナルコンピュータ等であってよい。また、本実施形態において振動制御装置１０は、表示装置１４とも通信接続される。この振動制御装置１０は、図１に示すように、制御部１１と、記憶部１２と、通信部１３とを含んで構成されている。
【００１４】
制御部１１は、ＣＰＵ等のプログラム制御デバイスを含み、記憶部１２に格納されたプログラムに従って各種の情報処理を実行する。この制御部１１の具体的な処理の内容については、後に詳しく述べる。
【００１５】
記憶部１２は、メモリデバイス等であり、制御部１１によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読かつ、非一時的な記憶媒体に格納されて提供され、この記憶部１２に複写されたものであってもよい。またこの記憶部１２は、制御部１１のワークメモリとしても動作する。
【００１６】
通信部１３は、ＵＳＢ（Universal Serial Bus）等のシリアルインタフェースあるいは、ブルートゥース（登録商標）等の無線通信インタフェースを含んで構成される。振動制御装置１０は、この通信部１３を介して振動デバイス２０と通信可能に接続される。特に本実施形態において、通信部１３は、制御部１１からの指示に従って、振動機構２１を動作させるための制御信号を送信する。さらに通信部１３は、表示装置１４と有線又は無線で通信するための通信インタフェースを含んでいる。振動制御装置１０は、通信部１３を介して、表示装置１４が表示すべき映像のデータを表示装置１４に対して送信する。
【００１７】
表示装置１４は、振動制御装置１０から送信される映像信号に基づく映像を表示する。例えば表示装置１４は、ヘッドマウントディスプレイ等のユーザーが頭部に装着して使用するタイプのデバイスであってもよい。
【００１８】
以下、振動制御装置１０の制御部１１の動作について説明する。本実施の形態において制御部１１は、機能的には図２に例示するように、アプリケーション実行部３１と、振動指示受付部３２と、状況情報取得部３３と、振動制御部３４と、を含んで構成されている。これらの機能は、制御部１１が記憶部１２に記憶されたプログラムに従って動作することにより実現される。このプログラムは、インターネット等の通信ネットワークを介して振動制御装置１０に提供されてもよいし、光ディスク等のコンピュータ読み取り可能な情報記憶媒体に格納されて提供されてもよい。
【００１９】
アプリケーション実行部３１は、制御部１１がゲーム等のアプリケーションプログラムを実行することにより実現される。アプリケーション実行部３１は、振動デバイス２０に対するユーザーの操作内容等に応じて各種の処理を実行し、その処理結果を表示装置１４の画面に表示させる。例えばアプリケーション実行部３１は、各種の仮想オブジェクトが配置された仮想空間を構築し、その内部の様子を示す画像をユーザーに提示してもよい。
【００２０】
さらにアプリケーション実行部３１は、その処理の内容にしたがって、振動デバイス２０を振動させるための振動指示データを出力する。この振動指示データには、振動デバイス２０の振動機構２１をどのように振動させるかを指示するデータが含まれている。例えば振動指示データは、振動機構２１が発生させるべき振動の波形を符号化したデータを含んでよい。この場合、波形の振幅及び周波数によって振動機構２１の実際の動作態様が規定される。このような振動指示データは、音声データと類似するフォーマットで記述されてよい。また、この振動指示データには、音声データと同様に、複数の周波数の振動が重なった波形が含まれるものとする。アプリケーション実行部３１が出力する振動指示データは、記憶部１２内に確保されたバッファ領域に格納される。
【００２１】
振動指示受付部３２は、アプリケーション実行部３１から振動デバイス２０を振動させる振動指示を受け付ける。具体的に振動指示受付部３２は、アプリケーション実行部３１がバッファ領域に格納した振動指示データを順次読み出すことによって、振動指示を受け付ける。
【００２２】
状況情報取得部３３は、振動デバイス２０の動作状況に関する情報（以下、状況情報という）を取得する。この状況情報は、振動指示受付部３２が振動指示を受け付けた時点における振動デバイス２０の動作状況を示す情報であって、後述する振動制御部３４によって振動指示の内容を補正するために用いられる。例えば状況情報取得部３３は、一定時間おきに振動デバイス２０のセンサー２２で検出された情報を状況情報として取得してもよい。状況情報の内容の具体例については、後述する。
【００２３】
振動制御部３４は、振動指示受付部３２が受け付けた振動指示の内容に基づいて、振動機構２１を動作させる制御命令を振動デバイス２０に対して出力する。振動デバイス２０は、この制御命令に基づいて振動機構２１を動作させることによって、振動指示の内容に応じた強さや周波数の振動を発生させる。これにより、本実施形態に係るアプリケーション実行部３１が実行するゲーム等の状況に応じて振動デバイス２０本体を振動させ、その振動をユーザーに提示することができる。
【００２４】
さらに本実施形態では、振動制御部３４は、状況情報取得部３３が取得した状況情報に基づいて振動指示の内容を補正し、補正された内容で振動機構２１を動作させる制御命令を振動デバイス２０に対して出力する。このような補正処理は、振動デバイス２０の動作状況によって生じる振動特性の変化を吸収するなどの目的で行われる。以下、状況情報、及びその内容に応じた補正処理の具体例について、説明する。
【００２５】
まず第１の例として、振動デバイス２０の温度変化に対応する補正処理について、説明する。振動デバイス２０の使用中には、その内部の温度が上昇する。温度が上昇すると、内部にあるダンパーの弾性が変化するなどして、振動機構２１の振動特性が変化する場合がある。図３は、温度による振動特性の変化の一例を示すグラフである。このグラフにおいて、横軸は振動の周波数を、縦軸は所与の基準入力電圧に対して振動デバイス２０が発生させる振動の強さ（振動レベル）を示している。ここで振動の強さは、例えば単一周波数、基準入力電圧で振動させる制御命令を振動機構２１に入力した場合に、振動デバイス２０が発生させる振動の加速度等によって定義される。また、図中の破線は振動デバイス２０内の温度が２０℃のときの振動特性を、実線は４０℃のときの振動特性を示している。この図に示されるように、温度が変化すると、振動デバイス２０の振動特性が変化する。
【００２６】
この例において振動制御装置１０は、振動デバイス２０の振動特性が温度によってどのように変化するかを示す情報を、予め記憶部１２内に記憶しておくこととする。以下、振動制御装置１０が記憶している振動特性の温度変化に関する情報を、温度特性情報という。この温度特性情報は、振動デバイス２０の製造元が、複数の温度環境下において、振動デバイス２０の振動特性を実際に測定して得られる情報であってよい。例えば温度特性情報は、基準温度（例えば２０℃）、及びその基準温度から所定温度（例えば１０℃）ずつ変化した温度で、標本となる振動デバイス２０の振動特性を測定した結果得られる情報であるものとする。ここで基準温度は、標準的な使用環境での振動デバイス２０内部の温度である。温度特性情報は、図３に示すような各温度における振動の強さの周波数依存特性を示す情報であってよい。
【００２７】
この例において、状況情報取得部３３は、状況情報として、振動デバイス２０の現在の温度に関する情報（温度情報）を取得する。この温度情報は、現に振動デバイス２０内部の温度を温度センサーによって測定して得られる数値であってよい。この場合、振動制御部３４は、状況情報取得部３３が取得した温度情報と、温度特性情報とを用いて、現時点の振動デバイス２０の振動特性を推定する。そして、その振動特性を基準温度における振動特性に近づけるように、振動指示の内容を補正する。図３の例に示される温度特性情報を持つ振動デバイス２０の場合、その内部が４０℃になっていると、基準温度のときと比較して、周波数帯ｆｘで振動の強さが強くなると想定される。そこで振動制御部３４は、振動指示データに含まれる振動波形のうち、周波数帯ｆｘの振動を弱める補正を行う。このとき、振動の強さに対する補正量は、温度特性情報に示される現在の温度における振動の強さと基準温度のときの振動の強さとの差に応じて決定される。これにより、振動デバイス２０による振動の強さを、基準温度のときのものに近づけることができる。
【００２８】
なお、以上の例における温度特性情報は、２０℃、３０℃、４０℃といった複数の温度のそれぞれにおける振動特性を示す情報であることとしている。振動デバイス２０の温度がこれらの温度に一致しない状態においては、振動制御部３４は、最も近い温度の振動特性を用いて補正内容を決定してもよい。あるいは、補間処理によって現在の温度の振動特性を推定し、その推定結果に基づいて補正内容を決定してもよい。例えば振動デバイス２０の温度が３５℃であるという温度情報が得られた場合、３０℃の振動特性と４０℃の振動特性の中間の状態にあると推定して、補正処理を実行すればよい。
【００２９】
また、以上の説明ではセンサー２２に温度センサーが含まれることとし、状況情報取得部３３は温度センサーの測定値そのものを温度情報として取得することとした。しかしながらこれに限らず、状況情報取得部３３は直接的な測定によらずに振動デバイス２０の温度を推定することとしてもよい。
【００３０】
具体的に、例えば状況情報取得部３３は、温度センサーの検出結果の代わりに、振動機構２１の稼働時間を状況情報として取得してもよい。一般に、振動デバイス２０の温度は、長時間にわたって振動機構２１を動作させた場合に徐々に上昇していくと想定される。そのため状況情報取得部３３は、振動デバイス２０の使用開始時から、振動指示によって振動機構２１を稼働させた時間を計測し、その稼働時間から現在の温度を推定する。振動制御部３４は、温度センサーの検出結果の代わりに、この稼働時間から推定された温度の情報を用いて、補正処理を実行する。このような方法によれば、振動デバイス２０が温度センサーを備えておらずとも、温度変化に対応した補正処理を実行できる。
【００３１】
また、状況情報取得部３３は、振動機構２１の稼働時間の代わりに、振動デバイス２０の使用開始時から、振動指示によって振動機構２１に入力された電力を計測し、その入力電力の合計値から現在の温度を推定してもよい。稼働時間の場合と同様に、振動制御部３４は、入力電力から推定された温度の情報を用いて補正処理を実行する。より大きな電力が入力された場合、振動機構２１はより発熱することが想定される。そのため、入力電力を利用することで、より精度よく温度を推定できる。
【００３２】
次に、補正処理の第２の例として、振動デバイス２０の経時変化に応じた補正処理について説明する。前述の第１の例では、振動デバイス２０の１回の使用の間の温度変化に応じて補正処理を行うこととした。このような１回の使用中の変化とは別に、振動機構２１の振動特性は、出荷時から長い日数が経過すると徐々に変化していくと想定される。そこで、このような経時変化による振動特性への影響を考慮した補正処理を実行することで、経時変化が生じた後も、出荷時に近い振動特性で振動デバイス２０を振動させることができる。
【００３３】
この第２の例では、状況情報取得部３３は、基準時点から起算した振動デバイス２０の使用期間に関する情報（期間情報）を取得する。ここで基準時点は、期間情報の起算点となる時点であって、例えば振動デバイス２０の出荷時点であってよい。具体的に、例えば状況情報取得部３３は、振動機構２１を稼働させるたびにその稼働時間を計測し、その累積値を記録してもよい。あるいは、振動機構２１に入力された電力を計測し、その累積値を記録してもよい。このようして得られる出荷時からの累計の稼働時間、又は入力電力が、期間情報として利用される。
【００３４】
振動制御部３４は、状況情報取得部３３が取得した期間情報を使用して、振動指示の内容を補正する。具体的には、第１の例と同様に、振動デバイス２０を長期間使用した場合における振動特性の変化を示す情報（以下、期間特性情報という）が、予め記憶部１２内に記憶されているものとする。期間特性情報は、使用期間に応じてどの程度振動特性が変化するのかを示す情報であって、予め振動デバイス２０の製造元がエイジングテストなどを行って得られる情報であってよい。振動制御部３４は、状況情報取得部３３が取得した期間情報と、期間特性情報とを用いて、振動指示データに含まれる振動の強さを補正する。これにより、出荷時に近い振動特性で振動デバイス２０を振動させることができる。
【００３５】
ただし、このような事前のテストによって得られた期間特性情報は、標準的な使用環境下で標準的な振動デバイス２０を使用し続けた場合の振動特性の変化を予測するものである。そのため、個々の振動デバイス２０を実際に長期間使用した場合、その振動特性の変化は期間特性情報が示すものとずれる場合もある。そのため、振動制御装置１０は、所定のタイミングでキャリブレーション処理を実行し、その結果得られる情報を新たな期間特性情報として使用してもよい。例えば振動制御装置１０は、振動機構２１の稼働時間や入力電力が所定値に到達したタイミングなどで、キャリブレーション処理を実行するようユーザーに促す。
【００３６】
このキャリブレーション処理は、振動デバイス２０を専用の台や机などの上に置いた状態で、実際に振動機構２１を動作させ、発生する振動の強さを計測する処理である。本実施形態では、振動デバイス２０は加速度センサーを内蔵することとしている。この加速度センサーの検出結果を用いることによって、実際に発生している振動の強さを計測できる。具体的にキャリブレーションを実行する際には、振動制御部３４は、周波数を連続的に（あるいは所定の刻み幅で段階的に）変化させながら、基準入力電圧で正弦波の振動を発生させる制御命令を振動デバイス２０に対して入力する。このときに複数の周波数のそれぞれに対応して発生する振動の強さを計測することで、図３に示したものと同じような周波数と振動の強さとの関係を示す振動特性情報を得ることができる。振動制御部３４は、このようにして得られる振動特性情報を、その時点における期間情報（累計の稼働時間又は入力電力）と対応づけて記憶部１２に記憶しておく。そして、その後に期間情報を用いた補正処理を行う場合には、このキャリブレーション処理によって記憶された振動特性情報を期間特性情報として使用する。これにより、その振動デバイス２０の実際の経時変化を反映した補正処理を実現することができる。
【００３７】
なお、振動制御部３４は、ユーザーが振動デバイス２０を保持した状態でキャリブレーション処理を実行してもよい。ただし、この場合にはユーザーが振動デバイス２０を握る強さなどによって振動の強さが変化する。そのため、その影響を考慮してキャリブレーション処理を実行する必要がある。この場合のキャリブレーション処理の具体例については、後述する。
【００３８】
次に、補正処理の第３の例として、振動デバイス２０の保持状態に応じた補正処理について、説明する。ユーザーが振動デバイス２０を手で握って保持する場合、人によって、また場面によって、強く握ったり軽く握ったりする。すなわち、ユーザーによる振動デバイス２０の保持の仕方は一定ではない。この保持の仕方の違いによって、振動デバイス２０の振動特性や、ユーザーにとって振動の感じ方が変化する。そこで振動制御部３４は、現在の振動デバイス２０の保持状態（すなわち、ユーザーが振動デバイス２０をどのように保持しているか）に応じた補正を行うこととする。これにより、どのような態様でユーザーが振動デバイス２０を保持していたとしても、ユーザーが同じような振動を感じることができるようになる。
【００３９】
具体的に、振動制御装置１０は、予めユーザーが複数種類の握り方で振動デバイス２０を握った状態で、振動デバイス２０の振動特性を計測しておく。この計測は、前述したキャリブレーション処理と同様にして実行されてよい。まず振動制御装置１０は、振動デバイス２０を軽く握るようユーザーに促し、それに応じてユーザーが軽く握った状態で振動機構２１を動作させ、発生する振動の強さを計測する。次に、振動デバイス２０を強く握るようユーザーに促し、それに応じてユーザーが強く握った状態で振動機構２１を動作させ、発生する振動の強さを計測する。これにより、２種類の握り方のそれぞれについて、周波数と振動の強さとの関係を示す振動特性情報を得ることができる。図４は、このような２種類の振動特性情報の具体例を示している。この図においては、実線（符号Ａ）が軽く握った場合の振動特性を、破線（符号Ｂ）が強く握った場合の振動特性を、それぞれ示している。同図に示されるように、ユーザーが振動デバイス２０を強く握っていると、弱く握っている場合と比較して、発生する振動の強さはどの周波数でも弱くなる。振動制御装置１０は、このようにして得られる複数種類の振動特性情報（以下、保持状態特性情報という）を記憶部１２に記憶しておく。なお、ここでは２種類の保持状態についての振動特性情報を記憶することとしたが、３種類以上の保持状態について振動特性を測定し、その結果を保持状態特性情報として記憶してもよい。
【００４０】
実際に振動を提示する際には、状況情報取得部３３は、その時点のユーザーによる振動デバイス２０の保持状態に関する情報（保持状態情報）を状況情報として取得する。具体的に、例えば状況情報取得部３３は、振動デバイス２０の表面に設けられたセンサーの検出結果を用いてユーザーの保持状態を特定する。この場合、振動デバイス２０の表面には、例えばユーザーの手指の位置までの距離を検出する距離センサーや、把持部の表面に加わる圧力を検知する感圧センサーなどのセンサーが設けられているものとする。これらのセンサーの検出結果を用いることで、状況情報取得部３３はユーザーの保持状態を特定できる。
【００４１】
また、状況情報取得部３３は、実際に振動機構２１を動作させた際の振動の強さを加速度センサーによって計測し、その計測結果を用いて保持状態を特定してもよい。この場合、振動制御部３４は、最初に振動指示が受け付けられたタイミングでは保持状態に関する補正は行わずにそのまま振動機構２１を振動させる。状況情報取得部３３は、その振動指示に応じて振動デバイス２０が発生させた振動の強さを加速度センサーにより計測する。そして、計測した振動の強さを保持状態情報と対比することで、現在の保持状態を推定する。例えば計測された振動の強さが、図４に例示した二つの振動特性のうち、強く握った場合の振動の強さに近ければ、ユーザーは振動デバイス２０を強く握っていると推定できる。この推定結果が、保持状態情報として次に振動指示を行う際の補正処理に利用される。なお、状況情報取得部３３は、単に強く握っているか、弱く握っているかの二値の情報ではなく、どの程度の強さで振動デバイス２０を握っているかを推定し、推定結果を保持状態情報として取得してもよい。
【００４２】
振動制御部３４は、前述した第１及び第２の例などと同様に、保持状態情報と、保持状態特性情報とを用いて、補正内容を決定する。例えば保持状態情報としてユーザーが振動デバイス２０を強く握っていることを示す情報が得られた場合、振動デバイス２０の振動特性は図４において破線で示されるようなものになると想定される。振動制御部３４は、この振動特性を目標の振動特性に近づけるように、補正処理の内容を決定する。ここで目標の振動特性は、標準的な振動特性として予め定められたものであってもよいし、特定の保持状態（例えばユーザーが振動デバイス２０を軽く握った状態や、ユーザーが振動デバイス２０を保持していない状態）における振動特性であってもよい。
【００４３】
さらに振動制御部３４は、保持状態に応じて目標の振動特性そのものも変化させてもよい。同じ強さの振動が発生していても、ユーザーが振動デバイス２０を握る強さによって、ユーザーにとってのその振動の感じ方は異なる。そのため振動制御部３４は、例えばユーザーが振動デバイス２０を弱く握っている場合には、強く握っている場合と比較して、目標とする振動の強さ自体を強くするなどしてもよい。
【００４４】
また、振動制御部３４は、ユーザーがどの程度の強さで振動デバイス２０を握っているかを示す保持状態情報に応じて、全体の振動の強さを変化させるだけでなく、周波数ごとの振動の強さを変化させてもよい。具体的に、ユーザーが振動デバイス２０を握る強さによっては、高周波数の振動をくすぐったいと感じることがある。特に、ユーザーが振動デバイス２０を強く握っている場合には、このような問題は生じにくいが、振動デバイス２０を比較的軽い強さで握っている場合、高周波数の振動によりくすぐったさを感じる度合いが高くなる。
【００４５】
そこで振動制御部３４は、保持状態情報を参照してユーザーが振動デバイス２０を弱く握っていると判断される場合、発生させる振動の高周波数成分を弱くするような補正を行う。具体的に振動制御部３４は、所定の閾値周波数より大きな周波数帯域において、目標の振動特性の値を小さな値に設定してもよい。あるいは、所定の閾値周波数よりも大きな周波数帯域の振動の強さを、所定の割合で小さくする補正を行ってもよい。このような補正により、高周波数成分によりくすぐったさが生じるのを抑えることができる。
【００４６】
なお、状況情報取得部３３が振動デバイス２０をどの程度の強さで握っているかを示す保持状態情報を取得可能な場合、振動制御部３４は、その把持の強さに応じて補正内容を変化させてもよい。具体的には、把持の強さが小さいほど、高周波数の振動を弱くするように、段階的に補正内容を変化させることとする。
【００４７】
状況情報取得部３３によってユーザーが振動デバイス２０を保持していない状態にあると特定された場合、振動制御部３４は振動の発生そのものを中止させてもよい。ユーザーが振動デバイス２０を保持していなければ、ユーザーに振動を伝達することができないためである。また、状況情報取得部３３が取得した加速度センサーの計測結果が、振動機構２１の動作によって発生すると想定される加速度の範囲から外れている場合、振動機構２１が故障するなど、何らかの異常が発生していると考えられる。このような場合、振動制御装置１０は異常の発生をユーザーに通知したり振動制御を中止したりしてもよい。また、状況情報取得部３３による保持状態の推定結果は、振動制御部３４による振動指示の補正処理だけでなく、アプリケーション実行部３１が実行する処理に利用されてもよい。
【００４８】
また、複数のユーザーが振動デバイス２０を利用する場合、状況情報取得部３３は、ユーザーごとに特定された保持状態情報の履歴を記録してもよい。この履歴情報を用いることにより、各ユーザーが振動デバイス２０をどのように握っているかの傾向を示す情報を取得できる。振動制御部３４は、このような傾向情報を参照することで、振動機構２１を動作させるたびに状況情報取得部３３が実際の保持状態を特定せずとも、そのユーザーが普段と同じ強さで振動デバイス２０を保持しているという想定に基づいて、補正処理を実行することができる。
【００４９】
次に、補正処理の第４の例として、マイクロホンに入力される音声信号に応じた補正処理について、説明する。この例では、振動デバイス２０がセンサー２２の一つとしてマイクロホンを備えているものとする。このマイクロホンは、ユーザーが他のユーザーとの間でボイスチャットを行うなどの際にユーザーの音声を集音するために使用される。ここで、ユーザーが音声を入力中に振動機構２１を動作させると、音声の集音を妨害してしまったり、音声認識の精度に悪影響を及ぼしてしまったりする可能性がある。そこで、このような場合に振動指示の内容を補正することで、このような問題を回避することができる。
【００５０】
具体的に、状況情報取得部３３は、マイクロホンに入力される音声信号に人の声が含まれるか否かを判定し、判定結果を状況情報として取得する。振動制御部３４は、マイクロホンに人の声が入力中であると判定された場合、振動指示の内容を補正する。具体的に振動制御部３４は、振動の強さを全体的に弱める補正を行ってもよいし、人の音声の周波数帯と重複する周波数帯の振動の強さを弱める補正を行ってもよい。
【００５１】
次に、補正処理の第５の例として、加速度に応じた補正処理について、説明する。この例では、状況情報取得部３３は、振動デバイス２０に加わる加速度の向きに関する情報を取得する。特に、振動デバイス２０をユーザーがどのような向きで保持しているかによって、振動デバイス２０に加わる重力加速度の向きが変化する。状況情報取得部３３は、振動デバイス２０に内蔵されている加速度センサー等のセンサー２２による検出結果を用いて、振動デバイス２０に加わっている重力加速度の向きを特定する。
【００５２】
振動制御部３４は、この重力加速度の向きに応じて、振動波形の振幅を補正する。具体的に、振動機構２１が内蔵する錘を重力方向と同じ向きに運動させる際には、その振幅を小さくする補正を行う。これは、振動機構２１に内蔵される錘が重力の影響を受け、重力方向への振動が強められるからである。さらに振動制御部３４は、錘を重力方向と逆向きに運動させる際には、振幅を大きくしてもよい。図５は、このような重力加速度に応じた補正の一例を示す図である。図中の実線は補正前の振動波形を、破線は補正後の振動波形を、それぞれ示している。また、ここでは紙面下方向が重力方向と一致していると仮定している。
【００５３】
なお、振動制御部３４は、振動方向に沿った加速度の大きさに応じて、補正量を変化させてもよい。振動方向が重力方向と完全に一致しない場合にも、振動機構２１内の錘はその向きに応じて重力による影響を受けることになる。そのため、状況情報取得部３３は、重力加速度の振動方向に沿った大きさを算出し、振動制御部３４はその大きさに応じて決まる補正量で振動波形の補正を行ってもよい。具体的に振動制御部３４は、振動方向が重力方向に近いほど補正量を大きくし、振動方向と重力方向とのなす角度が大きくなるほど補正量を小さくする。これにより、重力の影響を軽減することができる。
【００５４】
次に、補正処理の第６の例として、消費電力を考慮した補正処理について、説明する。この例では、これまでの例と異なり、振動制御部３４は、消費電力を抑制するための補正処理を実行する。振動機構２１を動作させる頻度が高いと、振動デバイス２０の消費電力が大きくなり、振動デバイス２０の内蔵バッテリーの残量が、本来想定される標準の使用時間よりも早くなくなってしまうことがある。このような状態を避けるため、振動制御部３４は、電力の消費ペースが速い場合に電力消費量を抑える補正処理を実行することとする。
【００５５】
具体的に、状況情報取得部３３は、状況情報として、振動デバイス２０使用開始時からの経過時間を示す情報と、それまでの電力消費量に関する情報と、を取得する。電力消費量に関する情報の例としては、バッテリーの残量そのものを示す情報であってもよいし、第１の例と同様に使用開始時からの振動機構２１の稼働時間や入力電力を示す情報であってもよい。これらの情報から、それまでにどの程度振動デバイス２０が電力を消費しているかを推定することができる。
【００５６】
振動制御部３４は、状況情報取得部３３によって得られた経過時間と消費電力量とを対比して、電力の消費ペースが標準よりも速いと判定した場合、振動指示データに対して消費電力を抑制するための補正処理を行う。具体的にこの補正処理は、振動の強さを弱める補正であってよい。なお、振動制御部３４は振動波形全体のレベルを低下させる補正を行ってもよいし、特定の周波数帯（例えば共振周波数近傍の周波数帯を除いた周波数帯）の振動のみを弱める補正を行ってもよい。また、この補正処理における補正量は、それまでの電力消費量の大きさに応じて変化させてもよい。すなわち、想定より電力消費量が大きければ大きいほど、補正量を大きくする。このような補正処理を行うことにより、振動デバイス２０の電力消費ペースを抑えて、目標とする経過時間まで振動デバイス２０を継続使用できるようにすることができる。
【００５７】
なお、振動制御部３４は、以上説明したような複数種類の補正処理を、組み合わせて実施してもよい。この場合、状況情報取得部３３は複数種類の状況情報を取得し、振動制御部３４はそれらの状況情報のそれぞれに応じた補正処理を一つの補正指示データに対して実行する。
【００５８】
ここで、ユーザーが振動デバイス２０を保持した状態でキャリブレーション処理を実行する場合の処理手順について、説明する。前述したように、振動機構２１が発生させる振動の強さは、ユーザーの保持状態によって影響を受ける。そのため、ユーザーが振動デバイス２０を保持した状態では、経時変化によって生じる振動特性の変化のみを直接計測することは困難である。そこで振動制御部３４は、図６に示すような手順でキャリブレーション処理を実行してもよい。
【００５９】
まず振動制御部３４は、第１の周波数ｆ１で振動デバイス２０を振動させる（ステップＳ１）。そして、その振動の強さを表す加速度センサーの計測結果を取得する（ステップＳ２)。ここで第１の周波数ｆ１は、予め定められた周波数であって、振動デバイス２０の共振周波数（振動の強さが最も強くなる周波数）からは離れた周波数である。
【００６０】
次に振動制御部３４は、第２の周波数ｆ２で振動デバイス２０を振動させる（ステップＳ３）。そして、その振動の強さを表す加速度センサーの計測結果を取得する（ステップＳ４）。第２の周波数ｆ２は、共振周波数そのもの、またはそれに近い周波数であってよい。
【００６１】
経時変化による振動特性の変化は、図３に示した温度変化の例と同様に、共振周波数の近傍で強く現れると想定される。これに対して、共振周波数から離れた周波数では、温度変化や経時変化の影響は小さいと想定される。一方、保持状態が変化すると、その影響は図４に示したようにどの周波数でも現れると想定される。そのため、共振周波数から離れた第１の周波数ｆ１で振動させた際の計測結果には、もっぱら保持状態による影響が反映されており、第２の周波数ｆ２で振動させた際の計測結果には、保持状態、及び経時変化双方の影響が反映されていると考えられる。
【００６２】
そこで振動制御部３４は、ステップＳ２の計測結果から、キャリブレーション実行時の保持状態を推定する（ステップＳ５）。この推定は、前述した補正処理の第３の例と同様に、計測結果を保持状態特性情報と比較することで実現できる。続いて振動制御部３４は、ステップＳ４の計測結果と、ステップＳ５の推定結果とを用いて、経時変化による振動特性の変化を特定する（ステップＳ６）。具体的に振動制御部３４は、ステップＳ５の推定結果と保持状態特性情報を用いて、保持状態に起因して第２の周波数ｆ２でどの程度振動の強さが変化しているかを推定する。ステップＳ４の計測結果からこの保持状態に起因する変化量を取り除くことで、経時変化による振動特性の変化量を算出できる。
【００６３】
なお、以上の説明では第１の周波数ｆ１及び第２の周波数ｆ２はそれぞれ単一の周波数であることとしたが、それぞれ複数の周波数で振動させた際の計測結果を利用してもよい。これにより、より推定の精度を向上させることができる。
【００６４】
また、ここではキャリブレーション時の処理について説明したが、振動デバイス２０の通常の使用中にも、同様にして保持状態による振動特性の変化を特定してもよい。特に共振周波数から離れた特定の周波数で振動を発生させる指示を行う場合、その周波数に対して予測される振動と実際に発生した振動の計測結果とのずれを特定することで、その時点での保持状態を推定することができる。そのため、この保持状態の推定結果を用いることで、振動制御部３４は前述した第３の例と同様の保持状態に応じた補正処理を実行できる。さらに、共振周波数近傍の周波数で振動を発生させた場合の、予測される振動と実際に発生した振動の計測結果とのずれを特定することで、保持状態、経時変化、及び温度変化が複合して発生している振動特性の変化を特定できる。この特定結果から保持状態の起因する変化量を除外することで、振動制御部３４は、経時変化、及び温度変化に起因した振動変化を特定し、その内容に応じた補正処理を実行することができる。
【００６５】
以上説明した本実施形態に係る振動制御システム１によれば、振動デバイス２０の動作状況に応じた内容の補正処理を振動指示データに対して実行することで、状況によらずにユーザーが同じような振動を感じられるようにすることができる。
【００６６】
なお、本発明の実施の形態は、以上説明したものに限られない。例えば以上の説明では、振動デバイス２０はユーザーの操作入力を受け付ける操作デバイスであることとしたが、振動デバイス２０はこのようなものに限られず、もっぱらユーザーへの振動の提示のみに用いられるものであってもよいし、その他の用途で使用されるデバイスであってもよい。
【００６７】
また、以上の説明において振動制御部３４が実行することとした補正処理の少なくとも一部は、アプリケーションプログラム側で実現されてもよい。この場合、アプリケーション実行部３１が、状況情報取得部３３が取得した状況情報に基づいて、予め用意されている振動の波形を補正する。そして、補正された内容で振動デバイス２０を振動させる振動指示データを出力する。振動制御部３４は、この振動指示データに基づいて振動デバイス２０を振動させる。このような処理によっても、接続された振動デバイス２０の振動特性に応じて補正された振動を発生させることができる。
【００６８】
また、温度変化や保持状態、経時変化などによって生じる振動特性の変化に対応した複数種類の振動波形が、アプリケーションプログラム内に予め用意されてもよい。この場合、アプリケーション実行部３１は、状況情報取得部３３が取得した状況情報を参照して、予め用意された複数種類の振動波形の中から状況に応じた一の振動波形を選択し、選択した振動波形で振動させる振動指示データを出力する。このような処理によれば、リアルタイムで動作状況に応じた補正処理を行うことなく、振動デバイス２０を動作状況に応じた内容で振動させることができる。
【００６９】
また、以上の説明では振動デバイス２０とは別個独立のコンピュータが補正処理を実行することとしたが、振動デバイス２０の動作状況に応じた補正処理を、振動デバイス２０側で実行してもよい。この場合、振動デバイス２０は、内蔵するメモリ内に、温度特性情報や期間特性情報を予め記憶しておくものとする。そして、振動デバイス２０は、振動指示データを受け付けた場合に、これらの特性情報とセンサー２２の計測結果とを用いて振動指示データの内容に対する補正処理を実行する。これにより、振動デバイスと接続されるコンピュータは、接続される振動デバイス２０の動作状況を考慮せずに振動指示データを送信することができる。
【符号の説明】
【００７０】
１  振動制御システム、１０  振動制御装置、１１  制御部、１２  記憶部、１３  通信部、１４  表示装置、２０  振動デバイス、２１  振動機構、２２  センサー、３１  アプリケーション実行部、３２  振動指示受付部、３３  状況情報取得部、３４  振動制御部。
【図１】
0006771659.tif 000002
【図２】
0006771659.tif 000003
【図３】
0006771659.tif 000004
【図４】
0006771659.tif 000005
【図５】
0006771659.tif 000006
【図６】
0006771659.tif 000007