(57)【要約】  いずれかの方向に引っ張る力をユーザーに感じさせる疑似力覚振動の内容を表す疑似力覚振動データを取得し、振動機構を内蔵する振動デバイスの状態に関する状態情報を取得し、疑似力覚振動データの内容を状態情報に応じて補正した内容で、振動デバイスを振動させる振動制御装置である。
2019043787.tif 000002
【特許請求の範囲】
【請求項１】
振動機構を振動させる振動制御装置であって、
いずれかの方向に引っ張る力をユーザーに感じさせる疑似力覚振動の内容を表す疑似力覚振動データを取得する疑似力覚振動データ取得部と、
前記振動機構を内蔵する振動デバイスの状態に関する状態情報を取得する状態情報取得部と、
前記疑似力覚振動データの内容を、前記状態情報に応じて補正した内容で、前記振動機構を振動させる振動制御部と、
を含むことを特徴とする振動制御装置。
【請求項２】
請求項１に記載の振動制御装置において、
前記状態情報取得部は、前記振動デバイスに加わる加速度の情報を前記状態情報として取得し、
前記振動制御部は、前記加速度の大きさに応じて、前記疑似力覚振動の強さを補正する
ことを特徴とする振動制御装置。
【請求項３】
請求項１に記載の振動制御装置において、
前記状態情報取得部は、前記振動デバイスの回転によって生じる角加速度の情報を前記状態情報として取得し、
前記振動制御部は、前記角加速度の大きさに応じて、前記疑似力覚振動の強さを補正する
ことを特徴とする振動制御装置。
【請求項４】
請求項１に記載の振動制御装置において、
前記状態情報取得部は、前記疑似力覚振動の提示中における前記振動デバイスの動きを示す情報を前記状態情報として取得し、
前記振動制御部は、前記状態情報を用いて前記疑似力覚振動にユーザーが反応したか否かを判定し、判定結果に応じて前記疑似力覚振動を強める補正を行う
ことを特徴とする振動制御装置。
【請求項５】
請求項４に記載の振動制御装置において、
前記振動制御部は、前記疑似力覚振動にユーザーが反応したと判定した場合、当該時点における前記疑似力覚振動の強さを示す情報を記録し、当該時点よりも後に疑似力覚振動を提示する場合、記録された情報を用いて前記疑似力覚振動の強さを補正する
ことを特徴とする振動制御装置。
【請求項６】
請求項１に記載の振動制御装置において、
前記状態情報取得部は、前記疑似力覚振動の提示中における前記振動デバイスの動きを示す情報を前記状態情報として取得し、
前記振動制御部は、前記状態情報を用いて前記振動機構の動作状態を特定し、特定後に疑似力覚振動を提示する場合、特定結果に応じて前記疑似力覚振動の内容を補正する
ことを特徴とする振動制御装置。
【請求項７】
請求項１に記載の振動制御装置において、
前記状態情報取得部は、前記振動デバイスに設けられた操作部材に対するユーザーの操作内容を示す情報を前記状態情報として取得し、
前記振動制御部は、前記状態情報に応じて前記疑似力覚振動の内容を補正する
ことを特徴とする振動制御装置。
【請求項８】
請求項１に記載の振動制御装置において、
前記状態情報取得部は、前記振動デバイスをユーザーがどちらの手で把持しているかを示す情報を前記状態情報として取得し、
前記振動制御部は、前記状態情報に応じて前記疑似力覚振動の内容を補正させる
ことを特徴とする振動制御装置。
【請求項９】
振動機構と、
当該振動デバイスの状態に関する状態情報を取得する状態情報取得部と、
いずれかの方向に引っ張る力をユーザーに感じさせる疑似力覚振動であって、前記状態情報に応じて補正した内容の疑似力覚振動の発生を指示する制御命令を取得する命令取得部と、
前記制御命令に応じた振動を前記振動機構に発生させる制御部と、
を含むことを特徴とする振動デバイス。
【請求項１０】
振動機構の制御方法であって、
いずれかの方向に引っ張る力をユーザーに感じさせる疑似力覚振動の内容を表す疑似力覚振動データを取得するステップと、
前記振動機構を内蔵する振動デバイスの状態に関する状態情報を取得するステップと、
前記疑似力覚振動データの内容を、前記状態情報に応じて補正した内容で、前記振動機構を振動させるステップと、
を含むことを特徴とする振動機構の制御方法。
【請求項１１】
振動機構を制御するためのプログラムであって、
いずれかの方向に引っ張る力をユーザーに感じさせる疑似力覚振動の内容を表す疑似力覚振動データを取得する疑似力覚振動データ取得部、
前記振動機構を内蔵する振動デバイスの状態に関する状態情報を取得する状態情報取得部、及び、
前記疑似力覚振動データの内容を、前記状態情報に応じて補正した内容で、前記振動機構を振動させる振動制御部、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザーに擬似力覚を提示するために用いられる振動デバイス、当該振動デバイスを制御する振動制御装置、振動デバイスの制御方法、及び制御プログラムに関する。
【背景技術】
【０００２】
家庭用ゲーム機に接続して使用される操作デバイスなどのように、ユーザーが自身の体に装着したり保持したりして使用するデバイスの中には、そのデバイスの一部又は全部を振動させるための振動機構を備えるものがある。このような振動デバイスは、例えばユーザーが仮想空間内において仮想オブジェクトに接触した際に、実在する物体に接触したかのような感覚（触感）をユーザーに提示するために用いられる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
上記従来例の技術における振動デバイスを特定の振動波形で振動させると、このデバイスに対して特定の方向に引っ張る力（牽引力）が加わっているかのような感覚（以下、疑似力覚という）を、ユーザーに提示することができる。しかしながら、このような手法によりユーザーが受ける擬似力覚は、状況によって変化する。そのため、状況によっては、ユーザーに本来提示しようとしている擬似力覚からずれが生じる場合がある。【０００４】
本発明は上記実情を考慮してなされたものであって、その目的の一つは、動作状況に応じた態様でユーザーに擬似力覚を提示することのできる振動制御装置、振動デバイス、振動デバイスの制御方法、及び制御プログラムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明に係る振動制御装置は、振動機構を振動させる振動制御装置であって、いずれかの方向に引っ張る力をユーザーに感じさせる疑似力覚振動の内容を表す疑似力覚振動データを取得する疑似力覚振動データ取得部と、前記振動機構を内蔵する振動デバイスの状態に関する状態情報を取得する状態情報取得部と、前記疑似力覚振動データの内容を、前記状態情報に応じて補正した内容で、前記振動デバイスを振動させる振動制御部と、を含むことを特徴とする。【０００６】
本発明に係る振動デバイスは、振動機構と、当該振動デバイスの状態に関する状態情報を取得する状態情報取得部と、いずれかの方向に引っ張る力をユーザーに感じさせる疑似力覚振動であって、前記状態情報に応じて補正された内容の疑似力覚振動の発生を指示する制御命令を取得する命令取得部と、前記制御命令に応じた振動を前記振動機構に発生させる制御部と、を含むことを特徴とする。【０００７】
本発明に係る振動機構の制御方法は、いずれかの方向に引っ張る力をユーザーに感じさせる疑似力覚振動の内容を表す疑似力覚振動データを取得するステップと、前記振動機構を内蔵する振動デバイスの状態に関する状態情報を取得するステップと、前記疑似力覚振動データの内容を、前記状態情報に応じて補正した内容で、前記振動デバイスを振動させるステップと、を含むことを特徴とする。【０００８】
本発明に係るプログラムは、振動機構を制御するためのプログラムであって、いずれかの方向に引っ張る力をユーザーに感じさせる疑似力覚振動の内容を表す疑似力覚振動データを取得する疑似力覚振動データ取得部、前記振動機構を内蔵する振動デバイスの状態に関する状態情報を取得する状態情報取得部、及び、前記疑似力覚振動データの内容を、前記状態情報に応じて補正した内容で、前記振動デバイスを振動させる振動制御部、としてコンピュータを機能させるためのプログラムである。このプログラムは、コンピュータ読み取り可能で非一時的な情報記憶媒体に格納されて提供されてよい。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態に係る振動制御装置を含む振動制御システムの構成例を表すブロック図である。
【図２】本発明の実施の形態に係る振動制御装置の機能を表す機能ブロック図である。
【図３】疑似力覚を生じさせる波形の具体例を示す図である。
【図４】回転感覚をユーザーに提示するための振動機構の配置例を示す図である。
【図５】オブジェクトの回転をユーザーに提示するための疑似力覚波形の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について図面を参照しながら説明する。
【００１１】
本発明の実施の形態の一例に係る振動制御システム１は、振動制御装置１０と、振動制御装置１０に接続される振動デバイス２０とを含んで構成されている。
【００１２】
振動デバイス２０は、ユーザーが手で保持したり、ユーザーの身体に装着したりして使用するデバイスである。振動デバイス２０は振動機構２１を内蔵しており、この振動機構２１を動作させることによってユーザーに振動を提示する。振動機構２１は、リニア共振アクチュエータやボイスコイルモーター、偏心モーターなど、各種の振動発生素子であってよい。また、振動デバイス２０は、ユーザーによる操作の対象となる操作ボタンやレバーなど、各種の操作部材を備えてもよい。ここでは具体例として、振動デバイス２０は一軸に沿った振動を発生させる一つの振動機構２１のみを内蔵しており、この振動方向に沿った向きの疑似力覚を提示することができるものとする。
【００１３】
さらに本実施形態において、振動デバイス２０は、１又は複数のセンサー２２を含んでいる。これらのセンサー２２は、振動デバイス２０の動作状況を示す情報を取得し、その結果を振動制御装置１０に送信する。具体的に、センサー２２は、振動デバイス２０の動きを検出する加速度センサーやジャイロスコープ等のモーションセンサーを含むこととする。
【００１４】
振動制御装置１０は、振動デバイス２０と通信接続される情報処理装置であって、例えば家庭用ゲーム機やパーソナルコンピュータ等であってよい。また、本実施形態において振動制御装置１０は、表示装置１４とも通信接続される。この振動制御装置１０は、図１に示すように、制御部１１と、記憶部１２と、通信部１３とを含んで構成されている。
【００１５】
制御部１１は、ＣＰＵ等のプログラム制御デバイスを含み、記憶部１２に格納されたプログラムに従って各種の情報処理を実行する。この制御部１１が実行する処理の具体例については、後に詳しく述べる。
【００１６】
記憶部１２は、メモリデバイス等であり、制御部１１によって実行されるプログラムを保持する。このプログラムは、コンピュータ可読かつ、非一時的な記憶媒体に格納されて提供され、この記憶部１２に複写されたものであってもよい。またこの記憶部１２は、制御部１１のワークメモリとしても動作する。
【００１７】
通信部１３は、ＵＳＢ（Universal Serial Bus）等のシリアルインタフェースあるいは、ブルートゥース（登録商標）等の無線通信インタフェースを含んで構成される。振動制御装置１０は、この通信部１３を介して振動デバイス２０と通信可能に接続される。特に本実施形態において、通信部１３は、制御部１１からの指示に従って、振動機構２１を動作させるための制御信号を振動デバイス２０に送信する。さらに通信部１３は、表示装置１４と有線又は無線で通信するための通信インタフェースを含んでいる。振動制御装置１０は、通信部１３を介して、表示装置１４が表示すべき映像のデータを表示装置１４に対して送信する。
【００１８】
表示装置１４は、振動制御装置１０から送信される映像信号に基づく映像を表示する。例えば表示装置１４は、ヘッドマウントディスプレイ等のユーザーが頭部に装着して使用するタイプのデバイスであってもよい。
【００１９】
以下、振動制御装置１０の制御部１１の動作について説明する。本実施の形態において制御部１１は、機能的には図２に例示するように、アプリケーション実行部３１と、振動データ取得部３２と、状態情報取得部３３と、振動制御部３４と、を含んで構成されている。これらの機能は、制御部１１が記憶部１２に記憶されたプログラムに従って動作することにより実現される。このプログラムは、インターネット等の通信ネットワークを介して振動制御装置１０に提供されてもよいし、光ディスク等のコンピュータ読み取り可能な情報記憶媒体に格納されて提供されてもよい。
【００２０】
アプリケーション実行部３１は、制御部１１がゲーム等のアプリケーションプログラムを実行することにより実現される。アプリケーション実行部３１は、振動デバイス２０に対するユーザーの操作内容等に応じて各種の処理を実行し、その処理結果を表示装置１４の画面に表示させる。例えばアプリケーション実行部３１は、各種の仮想オブジェクトが配置された仮想空間を構築し、その内部の様子を示す画像をユーザーに提示してもよい。
【００２１】
さらにアプリケーション実行部３１は、その処理の内容にしたがって、振動デバイス２０を振動させる指示（振動指示）の内容を含んだ振動指示データを出力する。例えば振動指示データは、振動機構２１が発生させるべき振動の波形を符号化したデータを含んでよい。この場合、波形の振幅及び周波数によって振動機構２１の実際の動作態様が規定される。このような振動指示データは、音声データと類似するフォーマットで記述されてよい。また、この振動指示データには、音声データと同様に、複数の周波数の振動が重なった波形が含まれてもよい。アプリケーション実行部３１が出力する振動指示データは、記憶部１２内に確保されたバッファ領域に格納される。なお、アプリケーション実行部３１は、表示装置１４に表示されるフレーム画像の描画タイミングや、振動デバイス２０との間で周期的に通信を行うタイミングなどの所定タイミングごとに、新たな振動指示データを出力してもよい。また、このようなタイミングとは独立に、振動指示データごとに、ある程度の時間にわたって継続する振動の内容を含んだ振動指示データを出力してもよい。
【００２２】
特に本実施形態では、アプリケーション実行部３１は、特定の方向に引っ張る力をユーザーに感じさせる振動（以下、疑似力覚振動という）を発生させる指示を行う。このような疑似力覚振動の指示の内容を表すデータを、以下では疑似力覚振動データという。具体的に、疑似力覚振動は、正弦波や三角波、鋸波、矩形波などによって構成される特定パターンの波形（以下、基本波形という）を所定周期で繰り返す振動である。図３は、疑似力覚を生じさせる振動波形のいくつかの例を示している。このような振動を発生させることによって、ユーザーにその振動の方向に引っ張られる力を感じさせることができる。疑似力覚振動データは、ここで例示したような基本波形が繰り返される疑似力覚振動の内容を特定するデータを含んでいる。
【００２３】
また、振動デバイス２０内に２個以上の振動機構２１が内蔵されている場合、これらの振動機構２１を用いて、互いに逆方向の疑似力覚を生じさせることによって、振動デバイス２０を回転させる力が加わっているようにユーザーに感じさせることができる。図４は、このような回転感覚をユーザーに提示可能な振動デバイス２０内における振動機構２１の配置例を示している。この図の例では、振動デバイス２０の長手方向（図の左右方向）に沿って２個の振動機構２１ａ及び２１ｂが配置されており、いずれも振動デバイス２０の長手方向と交差する方向（すなわち、２個の振動機構２１を結ぶ方向と交差する方向）に沿った振動を発生させるように配置されている。この例において、図中ブロック矢印で示すように、振動機構２１ａに上向きの疑似力覚を、振動機構２１ｂに下向きの疑似力覚を発生させることによって、振動デバイス２０を時計回りに回転させる力が加わっているようにユーザーに感じさせることができる。また、各振動機構２１に逆向きの疑似力覚を発生させると、振動デバイス２０を反時計回りに回転させる力が加わっているようにユーザーに感じさせることができる。
【００２４】
なお、アプリケーション実行部３１は、以上説明したような疑似力覚振動データに限らず、それ以外の振動を指示する振動データを出力してもよい。例えばアプリケーション実行部３１は、触感振動をユーザーに提示するための振動データを出力してもよい。ここで触感振動は、ユーザーが何らかの物体に接触したり、接触している物体に変化が生じたりすることを示す振動であって、銃の振動や、質感、テクスチャーを表現するためなどに用いられる振動である。
【００２５】
振動データ取得部３２は、アプリケーション実行部３１が出力する疑似力覚振動データを取得する。具体的に振動データ取得部３２は、アプリケーション実行部３１がバッファ領域に格納したそれぞれの振動データを順次読み出すことによって、振動データを取得する。
【００２６】
状態情報取得部３３は、振動デバイス２０の状態に関する情報（以下、状態情報という）を取得する。この状態情報は、例えば振動デバイス２０の位置の変化や振動デバイス２０に生じる加速度の情報であってよい。この場合、状態情報取得部３３は、センサー２２の検出結果を振動デバイス２０から受信することによって、状態情報を取得することができる。
【００２７】
振動制御部３４は、振動データ取得部３２が取得した疑似力覚振動データに対して、状態情報取得部３３が取得した状態情報に応じた補正を行う。そして、補正された疑似力覚振動データの内容に応じた振動を指示する制御命令を、振動デバイス２０に対して出力する。なお、状態情報に応じた補正処理の具体的な内容については、後述する。
【００２８】
振動デバイス２０は、振動制御部３４が出力するこの制御命令に基づいて振動機構２１を動作させることによって、振動指示の内容に応じた強さや周波数の振動を発生させる。これにより、本実施形態に係るアプリケーション実行部３１が実行するゲーム等の状況に応じて振動デバイス２０本体を振動させることによって、ユーザーに疑似力覚を提示することができる。
【００２９】
以下、振動制御部３４が状態情報に応じて実行する補正処理の具体例について、説明する。
【００３０】
まず、振動デバイス２０に加わる加速度に応じた補正処理の具体例について、説明する。ユーザーが手で持って振動デバイス２０を平行移動させるなどして、振動デバイス２０に加速度が生じている場合、ユーザーは、その加速度の方向に向かう疑似力覚を振動デバイス２０の停止時よりも強く感じる。つまり、振動デバイス２０に加速度が生じているか否かによって、ユーザーが感じる疑似力覚の強さに差異が生じてしまうことになる。そこで振動制御部３４は、このような差異を吸収する補正処理を実行してもよい。
【００３１】
具体的にこの例では、状態情報取得部３３は、加速度センサー等によって検出される、振動デバイス２０に加わっている加速度の方向、及び強さを状態情報として取得する。振動制御部３４は、この状態情報を用いて、振動データ取得部３２が取得した疑似力覚振動データに対する補正量を決定する。ここで、状態情報から算出される、振動デバイス２０に生じている加速度の疑似力覚提示方向に沿った大きさをＧｃとする。また、疑似力覚振動データによって要求される加速度（すなわち、ユーザーに提示したい疑似力覚に対応する加速度）をＧｖ、振動機構２１内で実際に振動する可動部の重量をＭｖ、振動デバイス２０全体の重量をＭｃとする。このとき、実際に振動機構２１によって発生させるべき補正後の加速度Ｇｖ’は、以下の数式により表される。
【数１】
2019043787.tif 000003
【００３２】
また、振動機構２１が発生させる振動の加速度は、入力電圧にほぼ比例するので、補正後の電圧Ｖ’は、補正前の電圧Ｖ（すなわち、実際に疑似力覚振動データで指定された電圧の値）に対して、以下の関係が成り立つ。
【数２】
2019043787.tif 000004
【００３３】
以上より、補正後の電圧Ｖ’は、状態情報から算出されるＧｃ、疑似力覚振動データから特定される電圧Ｖ、加速度Ｇｖ、及び既知の定数Ｍｖ、Ｍｃを用いて以下の計算式により算出することができる。
【数３】
2019043787.tif 000005
【００３４】
振動制御部３４は、このようにして算出された補正後の電圧値を用いて、補正された強さの疑似力覚振動を発生させるように振動デバイス２０に指示する。このような補正処理を行うことにより、実際に振動デバイス２０に生じている加速度によらず、振動データ取得部３２が取得した疑似力覚振動データにおいて意図された強さの疑似力覚をユーザーに提示することができる。
【００３５】
なお、ここで示した計算式は、理想的な場合の一例であって、実際にはこの計算式に対してさらなる補正を行ってもよい。具体例として、ユーザーが手で保持することによって、振動デバイス２０全体の見かけの重さは実際の重量Ｍｃよりも重くなる。そこで、上述した計算式における重量Ｍｃに対して、補正係数αを乗じてもよい。この場合の計算式は、以下のようになる。
【数４】
2019043787.tif 000006
また、その他にも、振動デバイス２０の形状や、振動機構２１の配置位置等の影響を考慮した補正係数を、上記の計算式に加えてもよい。また、振動制御部３４は、以上説明したような計算式による計算を都度行うのではなく、予め用意した補正テーブルを用いて補正後の電圧Ｖ’を計算してもよい。
【００３６】
また、以上の説明では振動デバイス２０の平行移動によって加速度が生じている場合を例として説明したが、振動デバイス２０自体が静止している場合であっても、その筐体に対しては、鉛直方向に沿って重力加速度が加わっている。そのため、疑似力覚の提示方向が鉛直方向と平行な成分を含んでいる場合、重力加速度の影響を考慮した補正を行うことが望ましい。このような補正は、これまで説明した平行移動の加速度の場合と同様の計算式により、実現できる。
【００３７】
なお、ユーザーが振動デバイス２０をどのような向きで所持するか予め想定可能な場合、振動デバイス２０に対して重力加速度がどのような向きで加わるか、予め推定することができる。そこで、重力加速度の影響に対する補正については、事前に用意された固定値を用いて実行してもよい。あるいは、振動デバイス２０の現在の姿勢（鉛直方向に対する向き）だけを特定し、その姿勢に応じて重力加速度の影響に対する補正量を算出してもよい。
【００３８】
また、図４で例示したように二つの振動機構２１を用いて回転感覚をユーザーに提示したい場合、二つの振動機構２１に異なる方向の疑似力覚を発生させることになるので、各振動機構２１に対して異なる内容の補正を行う必要がある。さらに、回転感覚を提示する方向と同じ方向に振動デバイス２０が実際に回転している場合、その回転によって生じる角加速度によっても、ユーザーが感じる力に変化が生じる。
【００３９】
具体的に、図４に示すように振動デバイス２０の略中央にセンサー２２としてジャイロスコープが配置されており、このジャイロスコープが検出された角速度ωを用いて、振動デバイス２０に生じている回転の角加速度ω’が算出できる。この角加速度ω’によって、各振動機構２１の可動部に生じる加速度Ｇｃは、
Ｇｃ＝ω’・ｒ
と計算される。ここでｒは、ジャイロスコープが位置している回転中心から各振動機構２１までの距離である。前述の平行移動による加速度の場合と同様にして、この回転の角加速度ω’を考慮した補正後の電圧Ｖ’は、以下の計算式により算出される。
【数５】
2019043787.tif 000007
【００４０】
さらに、振動デバイス２０全体に対する加速度Ｇｃの影響に対する補正を加えると、左右それぞれの振動機構２１に入力すべき補正後の電圧Ｖｌ’及びＶｒ’は、以下の計算式により算出される。
【数６】
2019043787.tif 000008
なお、ここではＧｃは、図４の紙面向かって下側の方向に生じている重力加速度の大きさを示している。図４の例では、右側の振動機構２１は重力加速度の方向と同じ方向に疑似力覚を提示するので、Ｖｒ’はその分小さな値にすることができる。逆に左側の振動機構２１については、重力加速度に逆らって疑似力覚を提示する必要があるため、Ｖｌ’は大きな値に補正される。
【００４１】
また、これまでは加速度に応じて疑似力覚の強さを補正する処理について説明したが、これに限らず、振動制御部３４は疑似力覚の提示方向を加速度に応じて決定してもよい。具体的に、疑似力覚振動データにおいて疑似力覚の提示方向が特定されておらず、いずれかの方向に疑似力覚を提示するよう指示するデータであった場合、振動制御部３４は、振動機構２１によって疑似力覚を提示可能な方向のうち、加速度が生じている方向に近い方向に疑似力覚を提示することとする。こうすれば、ユーザーが感じやすい向きで疑似力覚を提示することができる。
【００４２】
また、振動制御部３４は、触感振動と疑似力覚振動とを同時期に提示する場合に、重力加速度の方向に応じて両者の割合を変化させてもよい。具体的に振動制御部３４は、重力加速度の方向と同じ方向に疑似力覚を提示する場合、触感振動に対する疑似力覚振動の強さの割合を比較的小さくし、重力加速度の方向と逆方向に疑似力覚を提示する場合には、触感振動に対する疑似力覚振動の強さの割合を比較的大きくする。その後、両者を合成して実際に振動機構２１に発生させる振動の内容を決定する。このとき、全体の強さが一定になるように両者の割合を変化させてもよいし、一方の強さを固定しつつ他方の強さを変更することによって割合を変化させてもよい。
【００４３】
一例として、振動制御部３４は、疑似力覚の提示方向が重力加速度の方向と完全に一致する場合には、疑似力覚振動に対して補正を行わずに、疑似力覚の提示方向が重力加速度の方向から外れるにつれて強さを強くする補正を行う。そして、疑似力覚の提示方向が重力加速度の方向と逆方向になる場合には、疑似力覚振動の強さが触感振動の強さの３倍になるように、疑似力覚振動の波形を変化させる。こうすれば、振動デバイス２０の姿勢によらずに、疑似力覚と触感それぞれの感じ方を所望の割合に調整できる。
【００４４】
次に、補正処理の別の例として、ユーザーの操作内容に応じた補正処理の例について説明する。この例では、状態情報取得部３３は、状態情報として、振動デバイス２０の筐体表面に設けられた操作ボタン等の操作部材に対するユーザーの操作内容を示す情報を取得する。そして、振動制御部３４は、その操作内容に応じて提示する疑似力覚の内容を補正する。例えば振動制御部３４は、特定の操作ボタンが操作されているタイミングで疑似力覚を提示する場合、その強さを強める補正を行ってもよい。また、状態情報として特定の操作部材に対するユーザーの操作量を取得可能な場合、振動制御部３４は、その操作量に応じて疑似力覚の補正量を決定してもよい。具体例として、ユーザーによる押し込み量を検出可能なアナログボタンが振動デバイス２０に設けられている場合、このボタンを押し込めば押し込むほど、提示する疑似力覚を強くするよう補正することとする。これにより、ユーザーの操作内容に応じた疑似力覚を提示できる。
【００４５】
次に、ユーザーの反応に応じた補正処理の例について説明する。振動デバイス２０が疑似力覚を提示すると、通常、ユーザーがその疑似力覚に反応して振動デバイス２０を動かすと考えられる。しかしながら、提示される疑似力覚の強さが小さいと、ユーザーが疑似力覚の提示に気づかない場合がある。そこで振動制御部３４は、ユーザーが疑似力覚に気づいていないと判定される場合には、提示中の疑似力覚の強さを強める補正を行ってもよい。
【００４６】
具体的に振動制御部３４は、疑似力覚の提示を開始した後、振動デバイス２０の動きを示す状態情報に基づいて、ユーザーが疑似力覚に反応したか否かを判定する。そして、ユーザーが疑似力覚に反応していない場合には、段階的に疑似力覚の強さを強めていく。ユーザーが疑似力覚に反応したと判定された場合、その時点での疑似力覚の強さをその後も維持することとする。
【００４７】
さらに、振動制御部３４は、ユーザーが疑似力覚に気づいた時点における疑似力覚の強さを示す情報を、反応強度情報として当該ユーザーに関連づけて記録してもよい。この例では、反応強度情報が記録された後に同じユーザーに疑似力覚を提示する場合、振動制御部３４は記録された反応強度情報を参照して、疑似力覚の強さを予め補正して出力する。具体的に、例えば振動制御部３４は、疑似力覚振動データによって指定された疑似力覚の強さが、反応強度情報により示される強さよりも小さい場合、反応強度情報により示される強さで疑似力覚を提示するように補正する。こうすれば、始めからユーザーが気づくことのできる強さで疑似力覚を提示できるようになる。
【００４８】
また、ある程度の強さで疑似力覚を提示してもユーザーが気づかないと判定された場合、振動制御部３４は、疑似力覚の波形形状や周波数などを変化させてもよい。図３に示したように、疑似力覚を実現する基本波形のパターンには複数の種類がある。振動制御部３４は、基本波形の形状や周波数を変化させることで、ユーザーが気づきやすい態様で疑似力覚を提示することができる。さらにこの場合にも、ユーザーが気づいた波形形状や周波数を記録しておき、後に同じユーザーに疑似力覚を提示する際には、記録された情報に基づいて補正を行うこととしてもよい。
【００４９】
次に、振動デバイス２０の持ち手に応じた補正処理の例について、説明する。例えばユーザーから見て右方向に向かう疑似力覚振動を提示したい場合、ユーザーが必ず振動デバイス２０をその振動軸の正方向が向かって右方向になるように把持するのであれば、正方向への疑似力覚振動が発生するように振動機構２１を振動させればよい。しかしながら、振動デバイス２０の形状等によっては、ユーザーが振動デバイス２０を右手で持ったときと左手で持ったときとで振動軸の正方向が反転する場合がある。また、ユーザーが左右どちらの手で把持する際にも振動デバイス２０を同じ向きで把持する場合であっても、ユーザーの身体の外側（又は中心側）に向けた疑似力覚振動を発生させたい場合、疑似力覚振動の向きを反転させる必要がある。
【００５０】
そこで状態情報取得部３３は、ユーザーが振動デバイス２０をどちらの手で把持しているかを示す情報を、状態情報として取得してもよい。例えばセンサー２２として、振動デバイス２０の筐体表面にユーザーの手のひらや指の位置を検出するセンサーが配置されている場合、状態情報取得部３３は、このセンサーの検出結果を用いてユーザーが左右どちらの手で振動デバイス２０を把持しているかを特定できる。あるいは状態情報取得部３３は、ユーザーの身体、及び振動デバイス２０をカメラで撮影して得られる撮像画像を解析して、ユーザーの身体に対する振動デバイス２０の位置を特定してもよい。
【００５１】
振動制御部３４は、状態情報取得部３３によって特定される振動デバイス２０を所持するユーザーの手が、疑似力覚振動が想定する持ち手と異なる場合、疑似力覚振動の波形を反転させる補正処理を実行する。例えばアプリケーション実行部３１が右手用の疑似力覚振動データを出力する場合、振動制御部３４は、ユーザーが振動デバイス２０を右手で把持していればその疑似力覚振動データを補正せずに出力する。一方、ユーザーが振動デバイス２０を左手で把持している場合、疑似力覚振動データに含まれる振動波形を反転して出力する。これにより、ユーザーの持ち手によらず、ユーザーから見て同じ向きに疑似力覚振動を発生させることができる。
【００５２】
なお、振動制御装置１０に二つの振動デバイス２０が接続され、その二つの振動デバイス２０をユーザーが左右の手に一つずつ把持する場合もある。このような場合、振動制御部３４は、同じ疑似力覚振動データを、一方はそのまま、一方は反転して各振動デバイス２０に送信することとする。こうすれば、同じ向きに疑似力覚振動が発生するように二つの振動デバイス２０を同時に動作させることができる。
【００５３】
あるいは振動制御部３４は、同じ疑似力覚振動データを、反転の要否を指定するフラグ情報とともに二つの振動デバイス２０に送信してもよい。この場合、振動制御部３４は、例えばユーザーが右手で把持している振動デバイス２０には反転不要のフラグ情報とともに振動データを送信し、左手で把持している振動デバイス２０には同じ振動データを反転要のフラグ情報とともに送信する。データを受信した各振動デバイス２０は、反転要を示すフラグ情報とともに振動データを受信した場合、受信した振動データの波形を反転してから振動を発生させる。これにより、振動デバイス２０は、疑似力覚振動データが本来意図したのとは逆向きの疑似力覚を提示することができる。
【００５４】
あるいは、振動制御部３４は二つの振動デバイス２０に対して全く同一の振動データを送信することとし、反転の要否は振動デバイス２０側で判定してもよい。この場合、各振動デバイス２０は、ユーザーが左右どちらの手で自分自身を把持しているか、筐体表面に設けられたセンサーの検出結果等を用いて判定する。そして、その判定結果に応じて、受信した疑似力覚振動データを反転するか否か決定する。具体的に、反転対象となる疑似力覚振動データを受信した場合、振動デバイス２０は、ユーザーの右手で把持されていれば受信した振動データをそのまま使用して振動を発生させ、ユーザーの左手で把持されている場合には受信した振動データの波形を反転してから振動を発生させる。このような制御によっても、ユーザーが各振動デバイス２０を左右どちらの手で把持しているかに応じて、疑似力覚振動の向きを反転させることができる。
【００５５】
なお、各振動デバイス２０には、その振動デバイス２０をユーザーが左右どちらの手で把持するかを示す情報が予め登録されていてもよい。この場合、ユーザーが左右それぞれの手でどちらの振動デバイス２０を把持するか、予め決まっているものとする。こうすれば、センサー等を用いて各振動デバイス２０がユーザーの持ち手を判定する必要なく、前述したのと同様に、持ち手に応じた疑似力覚振動の反転処理を実行することができる。
【００５６】
次に、状態情報を用いて振動機構２１の動作状態を特定する例について説明する。この例において振動制御部３４は、振動機構２１に振動を発生させたタイミングにおける加速度センサー等の検出結果を参照することで、振動機構２１が正常に動作しているか否かを判定する。振動機構２１に故障等の異常が生じてその出力が低下している場合、加速度センサー等のセンサー２２で検出される振動の強さが、本来想定される強さより弱くなる。そのため、状態情報として振動機構２１を振動させたタイミングにおけるセンサー２２の検出結果を取得することで、振動制御部３４は振動機構２１の異常を特定することができる。
【００５７】
振動機構２１の異常が検出された場合、振動制御部３４は、その検出内容に応じて提示する疑似力覚の内容を変化させる。例えば複数の振動機構２１に逆方向の疑似力覚を発生させて回転感覚を提示する場合、いずれかの振動機構２１の出力が小さくなると、バランスが崩れ、想定通りに回転感覚を提示できなくなる。そこで振動制御部３４は、出力が低下している振動機構２１に合わせて、正常な方の振動機構２１に発生させる疑似力覚の強さを低下させてもよい。なお、どの振動機構２１に異常が発生しているのかは、各振動機構２１を個別に振動させた際のセンサー２２の検出結果を取得することで、特定することができる。また、振動機構２１の異常によって想定通りに疑似力覚や回転感覚を提示することが難しいと判断される場合、振動制御部３４は、本来発生させるべき疑似力覚振動の代わりに、特定方向に偏らない所与の振動を発生させることとしてもよい。また、振動機構２１の異常が検出された場合、振動制御部３４は、その旨をユーザーに警告するメッセージ等を表示装置１４の画面に表示するなどして、ユーザーに異常を通知してもよい
【００５８】
なお、状態情報取得部３３は、振動機構２１の動作状態に関する情報を、振動制御部３４が振動機構２１を動作させる任意のタイミングで取得してよい。また、動作状態のチェックを行うことをユーザーが指示した場合など、特別なタイミングで取得することしてもよい。
【００５９】
これまでは振動デバイス２０の状態に応じた補正制御について説明したが、ここで、仮想空間内の状態に応じた制御の例について説明する。アプリケーション実行部３１が仮想空間内の様子を描画してユーザーに提示している場合、状態情報取得部３３は、この仮想空間内に配置されたオブジェクト等の情報を状態情報として取得し、振動制御部３４はこの状態情報に応じて疑似力覚振動の提示内容を決定してもよい。例えば振動制御部３４は、仮想空間内に配置された壁などのオブジェクトにユーザーの視点が近づきすぎた場合に、そのオブジェクトから遠ざかる向きの疑似力覚振動を発生させることとする。あるいはその逆に、目標となるオブジェクトに近づく向きの疑似力覚振動を発生させてもよい。
【００６０】
この場合において、ユーザーの視点とオブジェクトとの間の距離に応じて、疑似力覚振動の強さを変化させてもよい。また、このような場合に、疑似力覚振動に加えて触感振動を発生させてもよい。あるいは、疑似力覚振動を提示する際には、触感振動を停止してもよい。
【００６１】
また、アプリケーション実行部３１は、仮想空間内で特定の方向にユーザーオブジェクトを進めさせたい場合に、その方向をガイドするための疑似力覚振動を発生させることとしてもよい。具体的に、ユーザーオブジェクトを前方に進めさせたい場合、ユーザーの正面方向に向かう疑似力覚振動を発生させることとし、ユーザーを右、又は左方向に方向転換させたい場合、その方向への回転感覚を感じさせる疑似力覚振動を発生させることとする。
【００６２】
また、振動制御部３４は、振動デバイス２０の現実空間内における位置に応じて疑似力覚振動の提示内容を決定してもよい。この例では、状態情報取得部３３は、現実空間内の振動デバイス２０の位置を示す位置情報を取得する。例えば状態情報取得部３３は、カメラで振動デバイス２０を撮影して得られる撮像画像の解析結果や、振動デバイス２０に内蔵されたモーションセンサーの検出結果等を用いて、振動デバイス２０の位置を特定してもよい。振動制御部３４は、振動デバイス２０の位置が所定の条件を満たす場合に、アプリケーション実行部３１の指示とは無関係に、新たな疑似力覚振動を発生させることとする。
【００６３】
具体例として、振動制御部３４は、振動デバイス２０が所定の検出可能領域（トラッキングエリア）の外に移動しようとした場合に、検出可能領域の中心方向に向かう疑似力覚振動を提示することとする。このような制御によれば、ユーザーが振動デバイス２０を検出可能領域外に移動させようとした場合に、そのような移動を防止することができる。
【００６４】
あるいは振動制御部３４は、ユーザーが現実空間に存在する物体（壁等）に衝突しようとした場合に、その物体から遠ざかる方向に向かう疑似力覚振動を提示してもよい。この場合、状態情報取得部３３は、カメラの撮像画像などを用いて、振動デバイス２０の位置だけでなく、ユーザーの周囲に存在する物体の位置に関する情報も取得する。このような制御によれば、ユーザーが周囲の障害物などにぶつかってしまわないようにすることができる。これは、特にユーザーが視界を妨げられる頭部装着型のディスプレイを装着している場合などにおいて有効である。
【００６５】
なお、以上の説明では、振動制御部３４がアプリケーション実行部３１の指示と独立に振動デバイス２０の位置に応じた疑似力覚振動を提示することとしたが、ここで説明した処理はアプリケーション実行部３１が実行してもよい。
【００６６】
また、アプリケーション実行部３１は、現実空間内の所定の目標物（例えば現実空間内に設置されている表示装置１４の画面など）に向かう方向の疑似力覚をユーザーに提示してもよい。例えばアプリケーション実行部３１は、表示装置１４の位置、及び振動デバイス２０の位置の情報を取得し、振動デバイス２０が表示装置１４の画面に向かう方向の疑似力覚を提示することとしてもよい。このとき、疑似力覚振動の強さは、振動デバイス２０と目標物との間の距離に応じて決定されてもよい。なお、ユーザーがこのような目標物の方向と全く別の方向を向いている場合、「テレビ画面の方を向いてください」などといったメッセージを出力してもよい。
【００６７】
ここで、ユーザーにオブジェクトの動きを感じさせる疑似力覚の提示方法について、説明する。図４を用いて既に説明したように、二つの振動機構２１に互いに逆向きの疑似力覚を提示させることによって、振動デバイス２０自体が回転しているかのような感覚をユーザーに提示することができる。このときには、二つの振動機構２１に、常に同じ強さの疑似力覚を提示させ続けることとした。これに対して、二つの振動機構２１のそれぞれに対して、疑似力覚の強さが変動するような疑似力覚振動を、そのピークタイミングをずらしながら提示させることによって、何らかのオブジェクトがその振動デバイス２０内で回転しているかのような感覚をユーザーに感じさせることができる。特にユーザーが両手で振動デバイス２０を把持している場合、手の中でオブジェクトが円を描くように運動している感覚をユーザーに感じさせることができる。
【００６８】
図５は、このような感覚をユーザーに提示する疑似力覚波形の一例について、示している。ここでは図４と同様に、振動デバイス２０の左右にそれぞれ上下方向に沿った振動を提示可能な二つの振動機構２１ａ及び２１ｂが配置されていることとする。この例では、図の上段に示すように、オブジェクトが時計回りに回転する様子を示す映像が表示されることとする。このオブジェクトの回転に合わせて、振動機構２１ａ及び２１ｂに疑似力覚振動を発生させることによって、オブジェクトが回転している感覚をユーザーに提示できる。
【００６９】
この図の例では、期間ｔ１においては、ユーザーから見て左側に配置されている振動機構２１ａが上方向の疑似力覚を徐々に強めながら提示するとともに、右側に配置されている振動機構２１ｂが下方向の疑似力覚を徐々に弱めながら提示する。これにより、ユーザーから見て左側の位置でオブジェクトが上方向に移動するような感覚を提示できる。振動機構２１ａが提示する疑似力覚の強さがピークになるタイミングでは、振動機構２１ｂが提示する疑似力覚の強さは０になっている。その後、期間ｔ２においては、振動機構２１ａが提示する疑似力覚が徐々に弱くなるとともに、振動機構２１ｂが提示する疑似力覚が徐々に強くなる。これにより、ユーザーから見て右側の位置でオブジェクトが下方向に移動するような感覚を提示できる。そして、振動機構２１ｂが提示する疑似力覚の強さがピークになるタイミングでは、振動機構２１ａが提示する疑似力覚の強さは０になる。その後は、このような疑似力覚波形を繰り返し発生させることで、あたかもオブジェクトが回転しているかのような感覚をユーザーに提示できる。
【００７０】
なお、ここではオブジェクトが時計回りに回転する感覚を提示することとしたが、疑似力覚の提示方向を反転させることで、オブジェクトが反時計周りに回転する感覚を提示することもできる。
【００７１】
以上説明した本実施形態に係る振動制御システム１によれば、状態情報に応じて疑似力覚振動の内容を補正することで、状況に適した態様で疑似力覚振動を提示することができる。
【００７２】
なお、本発明の実施の形態は、以上説明したものに限られない。例えば以上の説明では、振動デバイス２０はユーザーの操作入力を受け付ける操作デバイスであることとしたが、振動デバイス２０はこのようなものに限られず、もっぱらユーザーへの触感や疑似力覚の提示のみに用いられるものであってもよいし、その他の用途で使用されるデバイスであってもよい。
【００７３】
また、以上の説明では振動デバイス２０とは別体の振動制御装置１０が状態情報に応じて疑似力覚振動の内容を補正することとしたが、これに限らず、振動デバイス２０自身が振動制御装置１０から受信した疑似力覚振動データに対して補正を行うこととしてもよい。この場合、振動デバイス２０自身が本発明の実施の形態に係る振動制御装置として機能することになる。
【００７４】
また、以上の説明では、振動デバイス２０の動きや加わる加速度を特定するために振動デバイス２０自身に内蔵されたセンサー２２の検出結果を使用することとしたが、これに限らず、状態情報取得部３３は外部のデバイスを用いて振動デバイス２０をモニターした結果を状態情報として取得してもよい。例えば状態情報取得部３３は、カメラデバイスを用いて振動デバイス２０を撮像して得られる振動デバイス２０の位置の情報を、状態情報として取得する。このような情報を用いることにより、振動デバイス２０の移動によって生じている加速度の方向や強さ、またユーザーが疑似力覚振動に反応したか否かを特定することができる。
【符号の説明】
【００７５】
１  振動制御システム、１０  振動制御装置、１１  制御部、１２  記憶部、１３  通信部、１４  表示装置、２０  振動デバイス、２１  振動機構、２２  センサー、３１  アプリケーション実行部、３２  振動データ取得部、３３  状態情報取得部、３４  振動制御部。
【図１】
2019043787.tif 000009
【図２】
2019043787.tif 000010
【図３】
2019043787.tif 000011
【図４】
2019043787.tif 000012
【図５】
2019043787.tif 000013
【国際調査報告】
2019043787.tif 000014
2019043787.tif 000015
2019043787.tif 000016
2019043787.tif 000017