(57)【要約】      （修正有）【課題】１つ以上のダイナミックハプティック効果をコード化するシステムの提供。【解決手段】システムは複数のキーフレームを含むようにダイナミックハプティック効果を定義し、各キーフレームは補間値および対応するハプティック効果を含む。補間値は、対応するハプティック効果について補間が生じる場合を特定する値である。そのシステムはハプティック効果ファイルを生成し、ハプティック効果ファイル内にダイナミックハプティック効果を記憶する。【選択図】図１
2014093091.tif 000002
【特許請求の範囲】
【請求項１】
第１の補間値および第１のハプティック効果を有する第１のキーフレームを受信するステップと、
第２の補間値および第２のハプティック効果を有する第２のキーフレームを受信するステップと、
前記第１のキーフレームおよび前記第２のキーフレームを使用してハプティック効果信号を生成するステップと、
ハプティック効果ファイル内に前記ハプティック効果信号を記憶するステップと
を含む、ハプティック効果信号をコード化する方法。
【請求項２】
前記ハプティック効果ファイルから前記ハプティック効果信号を読み出すステップと、
前記ハプティック効果信号に従ってハプティック出力デバイスに駆動信号を適用するステップと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記ハプティック出力デバイスを使用して前記駆動信号を生成するステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記第１のハプティック効果および前記第２のハプティック効果の各々が振動ハプティック効果であり、各々が複数のパラメータを含む、請求項３に記載の方法。
【請求項５】
前記複数のパラメータが、振幅パラメータ、周波数パラメータ、および持続時間パラメータを含む、請求項４に記載の方法。
【請求項６】
前記第１のキーフレームおよび前記第２のキーフレームが各々、反復ギャップ値を含む、請求項１に記載の方法。
【請求項７】
前記ハプティック効果信号が、前記ハプティック効果信号の終了の指標をさらに含む、請求項１に記載の方法。
【請求項８】
前記ハプティック効果信号が、ハプティック効果記憶ブロックをさらに含み、
前記第１のハプティック効果および前記第２のハプティック効果が前記ハプティック効果記憶ブロック内に記憶される、請求項１に記載の方法。
【請求項９】
前記ハプティック効果ファイルのフォーマットが、バイナリフォーマットまたは拡張マークアップ言語フォーマットのうちの少なくとも１つである、請求項１に記載の方法。
【請求項１０】
ハプティック効果信号をコード化するためのシステムであって、前記システムは、
ハプティックコード化モジュールを記憶するように構成されるメモリと、
前記メモリに記憶された前記ハプティックコード化モジュールを実行するように構成されるプロセッサと
を含み、
前記ハプティックコード化モジュールは、第１の補間値および第１のハプティック効果を有する第１のキーフレームを受信するように構成され、
前記ハプティックコード化モジュールは、第２の補間値および第２のハプティック効果を有する第２のキーフレームを受信するようにさらに構成され、
前記ハプティックコード化モジュールは、前記第１のキーフレームおよび前記第２のキーフレームを使用して前記ハプティック効果信号を生成するようにさらに構成され、
前記ハプティックコード化モジュールは、ハプティック効果ファイル内に前記ハプティック効果信号を記憶するようにさらに構成される、システム。
【請求項１１】
１つ以上のダイナミックハプティック効果を出力するように構成されるハプティック出力デバイスをさらに含み、
前記ハプティックコード化モジュールは、前記ハプティック効果ファイルから前記ハプティック効果信号を読み出すように構成され、
前記ハプティックコード化モジュールは、前記ハプティック効果信号に従って前記ハプティック出力デバイスに駆動信号を適用するように構成される、
請求項１０に記載のシステム。
【請求項１２】
前記第１のキーフレームおよび前記第２のキーフレームが各々、反復ギャップ値を含む、請求項１０に記載のシステム。
【請求項１３】
前記ハプティック効果信号が、前記ハプティック効果信号の終了の指標をさらに含む、請求項１０に記載のシステム。
【請求項１４】
前記ハプティック効果信号が、基礎ハプティック効果記憶ブロックをさらに含み、
前記第１のハプティック効果および前記第２のハプティック効果が前記基礎ハプティック効果記憶ブロック内に記憶される、請求項１０に記載のシステム。
【請求項１５】
プロセッサにより実行される場合、前記プロセッサに請求項１〜９のいずれか一項に記載の方法を実装させる、記憶された命令を有する、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
一実施形態は概して、ハプティック効果、より具体的にはダイナミックハプティック効果のコード化に関する。
【背景技術】
【０００２】
電子デバイスの製造者はユーザにとって豊かなインターフェースを製造することに注力している。従来のデバイスは、ユーザにフィードバックを提供するために、視覚的および聴覚的合図を用いている。一部のインターフェースデバイスにおいて、より一般的には総括して「ハプティックフィードバック（触覚フィードバック）」または「ハプティック効果（触覚的効果）」として知られる、運動感覚フィードバック（作用力および抵抗力フィードバック等）および／またはタクタイル（触知的）フィードバック（振動、触感、および熱等）もまた、ユーザに提供される。ハプティックフィードバックは、ユーザインターフェースを強化および単純化するきっかけを提供し得る。具体的に、振動効果、すなわち振動ハプティック効果は、ユーザに特定のイベントを通知するために、電子デバイスのユーザへの合図を提供するのに有用であり得るか、またはシミュレート環境もしくは仮想環境内でより大きく感覚を集中させるために、現実的なフィードバックを提供し得る。
【０００３】
ハプティックフィードバックはまた、携帯電話、携帯情報端末（「ＰＤＡ」）、スマートフォン、およびポータブルゲーム機器などの「携帯用デバイス」または「ポータブルデバイス」と称される、携帯用電子機器に次第に組み込まれている。例えば、一部のポータブルゲームアプリケーションは、ハプティックフィードバックを提供するように構成される、より大きなスケールのゲームシステムと共に使用されるコントロールデバイス（例えばジョイスティックなど）と同じように振動できる。さらに、携帯電話およびスマートフォンなどのデバイスは、振動により種々のアラートをユーザに提供できる。例えば、携帯電話は、振動により、かかってきた電話の呼び出しをユーザにアラートできる。同様に、スマートフォンは、予定したカレンダーアイテムをユーザにアラートできるか、または「ｔｏ  ｄｏ」リストのアイテムもしくはカレンダーアポイントメントについてのリマインダーをユーザに提供できる。さらに、ハプティック効果は、ビデオゲームにおいて跳ね返るボールの感覚などの「現実世界」のダイナミックイベント（動的事象）をシミュレーションするために使用できる。
【発明の概要】
【課題を解決するための手段】
【０００４】
一実施形態はハプティック信号をコード化するシステムである。そのシステムは１つ以上のキーフレームを受信する。各キーフレームは補間値およびハプティック効果を有する。そのシステムはさらに、１つ以上のキーフレームを使用してハプティック効果信号を生成する。そのシステムはさらに、ハプティック効果ファイル内にハプティック効果信号を記憶する。
【０００５】
別の実施形態はダイナミック（動的）ハプティック効果をコード化するシステムである。そのシステムは、１つ以上のキーフレームを含むようにダイナミックハプティック効果を定義する。各キーフレームは補間値および対応するハプティック効果を含み、その補間値は、対応するハプティック効果について補間が発生する場合を特定する値である。そのシステムはさらに、ハプティック効果ファイルを生成する。そのシステムはさらに、ハプティック効果ファイル内にダイナミックハプティック効果を記憶する。
【０００６】
さらなる実施形態、詳細、利点および修飾は、添付の図面と併せて、好ましい実施形態の以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【０００７】
【図１】図１は、本発明の一実施形態に係るシステムのブロック図を示す。
【図２】図２は、本発明の一実施形態に係る、一例のダイナミックハプティック効果の定義を示す。
【図３】図３は、本発明の一実施形態に係る、一例のキーフレームの定義を示す。
【図４】図４は、本発明の一実施形態に係る、一例の基礎ハプティック効果記憶ブロックを示す。
【図５】図５は、本発明の一実施形態に係る、一例のフレームリストブロックを示す。
【図６】図６は、本発明の一実施形態に係る、ハプティックコード化モジュールの機能性のフローチャートを示す。
【図７】図７は、本発明の別の実施形態に係る、ハプティックコード化モジュールの機能性のフローチャートを示す。
【発明を実施するための形態】
【０００８】
以下に記載するように、「ダイナミックハプティック効果」とは、それが１つ以上の入力パラメータに応答する場合、時間と共に変化するハプティック効果を指す。ダイナミックハプティック効果は所与の入力信号の状態の変化を表すためにハプティックデバイス上に表示されるハプティックまたは振動触覚効果である。入力信号は、位置、加速度、圧力、配向、もしくは近接性などの、ハプティックフィードバックを有するデバイス上でセンサによりキャプチャされる信号、または他のデバイスによりキャプチャされる信号であってもよく、ハプティック効果の生成に影響を与えるようにハプティックデバイスに送信できる。
【０００９】
ダイナミック効果信号は任意の種類の信号であってもよいが、複雑である必要はない。例えば、ダイナミック効果信号は、入力パラメータを効果信号の変化特性にマッピングするマッピングスキーマに従って時間と共に変化するかまたはリアルタイムで応答する位相、周波数、または振幅などの一部の特性を有する簡単な正弦波であってもよい。入力パラメータは、デバイスにより提供できる任意の種類の入力であってもよく、典型的には、デバイスセンサ信号などの任意の種類の信号であってもよい。デバイスセンサ信号は任意の手段により生成されてもよく、典型的には、ユーザジェスチャをデバイスでキャプチャすることにより生成されてもよい。ダイナミック効果はジェスチャインターフェースに非常に有用であり得るが、ダイナミック信号を生成するためにジェスチャまたはセンサの使用は必ずしも必要でなくてもよい。
【００１０】
ジェスチャを直接含まない１つの一般的なシナリオは、動画のウィジェットのダイナミックハプティック挙動を定義することである。例えば、ユーザがリストをスクロールする場合、それは典型的には、最も直感的に感じるジェスチャの触覚経験（ｈａｐｔｉｆｉｃａｔｉｏｎ）ではなくて、ジェスチャに応じたウィジェットの動きである。このスクロールリストの例では、リストをそっとスライドすることで、スクロールの速度に従って変化する動的なハプティックフィードバックを生成し得るが、スクロールバーを荒々しく触ると、ジェスチャが終わった後でもダイナミックハプティックを生成し得る。これはウィジェットが一部の物理的な特性を有する錯視（イリュージョン）を生成し、かつ、ウィジェットの状態について、例えば速度、またはそれが動いている最中かどうかなどの情報をユーザに提供する。
【００１１】
ジェスチャは、意味またはユーザの意図を伝える身体の任意の動きである。単純なジェスチャはより複雑なジェスチャを形成するために結合されてもよいことは認識される。例えば、指をタッチ感応表面に持っていくことを「フィンガーオン」ジェスチャと言う場合があり、他方で、タッチ感応表面から指を離すことを別の「フィンガーオフ」ジェスチャと言う場合がある。「フィンガーオン」ジェスチャと「フィンガーオフ」ジェスチャとの間の時間が相対的に短い場合、結合されたジェスチャは「タッピング」と呼ばれてよく、「フィンガーオン」ジェスチャと「フィンガーオフ」ジェスチャとの間の時間が相対的に長い場合、結合されたジェスチャは「ロングタッピング」と呼ばれてよく、「フィンガーオン」ジェスチャおよび「フィンガーオフ」ジェスチャの二次元（ｘ，ｙ）位置の間の距離が相対的に大きい場合、結合されたジェスチャは「スワイピング（ｓｗｉｐｉｎｇ）」と呼ばれてよく、「フィンガーオン」ジェスチャおよび「フィンガーオフ」ジェスチャの二次元（ｘ，ｙ）位置の間の距離が相対的に小さい場合、結合されたジェスチャは「スミアリング（ｓｍｅａｒｉｎｇ）」、「スマッジング（ｓｍｕｄｇｉｎｇ）」、または「フリッキング（ｆｌｉｃｋｉｎｇ）」と呼ばれてよい。任意の数の二次元または三次元のシンプルまたは複雑なジェスチャは、複数の指の接触、手のひらまたはこぶしの接触、あるいは、デバイスへの近接性を含む（それらに限定されない）任意の数の他のジェスチャを形成するようにして結合されてよい。ジェスチャはまた、加速度計、ジャイロスコープ、または他の運動センサを有するデバイスによって認識され、かつ電気信号に変換される任意の形態の手の動きであってよい。そのような電気信号は、例えばバーチャルなサイコロを振動させるなど動的効果を起動することができ、ここでセンサは動的効果を生成するユーザの意図をキャプチャする。
【００１２】
一実施形態は、ディスク、メモリ、または任意のコンピュータ可読記憶媒体上で１つ以上のダイナミックハプティック効果をコード化できるシステムである。１種類のダイナミックハプティック効果は、第１の補間値と第２の補間値との間の値であるダイナミック値に基づいて第１のハプティック効果および第２のハプティック効果を補間することによって生成され得るハプティック効果である。第１の補間値または第２の補間値のいずれかと等しいダイナミック値は、「第１の補間値と第２の補間値との間」とみなされる。より具体的には、ダイナミックハプティック効果の各パラメータについての値は、補間関数を使用して、第１のハプティック効果のパラメータの値を第２のハプティック効果のパラメータの値に補間することによって計算される。ダイナミックハプティック効果の各パラメータ値の補間は、ダイナミック値が、第１の補間値と第２の補間値との間の範囲内である場合に基づいてもよい。ダイナミックハプティック効果はさらに、「ＧＥＮＥＲＡＴＩＮＧ  ＨＡＰＴＩＣ  ＥＦＦＥＣＴＳ  ＦＯＲ  ＤＹＮＡＭＩＣ  ＥＶＥＮＴＳ」という発明の名称である、２０１２年７月１１日に出願された米国特許出願第１３／５４６，３５１号（その内容は本明細書に参照として組み込まれている）に記載されている。ダイナミックハプティック効果は、ハプティック効果信号がダイナミックハプティック効果を表す場合、ハプティック効果信号を使用してコード化されてもよい。ハプティック効果信号は、ディスク、メモリ、または任意のコンピュータ可読記憶媒体に存続してもよい。
【００１３】
実施形態によれば、システムは、各々のキーフレームがハプティック効果および対応する値を含み得る場合、１つ以上のキーフレームとして各々のダイナミックハプティック効果を定義できる。したがって、システムは１つ以上のダイナミックハプティック効果の定義を生成できる。システムは、ハプティック効果ファイル内に１つ以上のダイナミックハプティック効果の定義を記憶できる。システムはさらに、ハプティック効果ファイルから１つ以上のダイナミックハプティック効果の定義を読み出すことができる。システムはさらに、ダイナミック値を受信でき、受信したダイナミック値に基づいて、１つ以上のダイナミックハプティック効果を生成するために１つ以上のダイナミックハプティック効果の定義を解釈できる。
【００１４】
別の実施形態によれば、システムは、各々のキーフレームがハプティック効果および値を含み得る場合、１つ以上のキーフレームを受信できる。そのシステムは１つ以上のキーフレームを使用してハプティック効果信号を生成できる。そのシステムはさらに、ハプティック効果ファイル内にハプティック効果信号を記憶できる。そのシステムはさらに、ハプティック効果ファイルからハプティック効果信号を読み出すことができる。そのシステムはさらに、ハプティック効果信号に従って駆動信号をハプティック出力デバイスに適用できる。そのシステムはさらに、ハプティック出力デバイスを使用して駆動信号を生成できる。この実施形態において、１つ以上のキーフレームは、ハプティック効果信号により生成されるダイナミックハプティック効果の１つ以上の入力パラメータを含んでもよい。
【００１５】
図１は、本発明の一実施形態に係るシステム１０のブロック図を示す。一実施形態において、システム１０はデバイスの一部であり、システム１０はデバイスのためのハプティックコード化機能を提供する。単一のシステムとして示されるが、システム１０の機能は分散システムとして実装されてもよい。システム１０は、情報を通信するためのバス１２または他の通信機構、および情報を処理するためのバス１２に連結されるプロセッサ２２を含む。プロセッサ２２は汎用または特定目的のプロセッサのいずれの種類であってもよい。システム１０はさらに、情報を記憶するためのメモリ１４およびプロセッサ２２により実行される命令を含む。メモリ１４は、ランダムアクセスメモリ（「ＲＡＭ」）、リードオンリメモリ（「ＲＯＭ」）、磁気ディスクもしくは光ディスクなどの静的記憶デバイス、または任意の他の種類のコンピュータ可読媒体の任意の組み合わせから構成されてもよい。
【００１６】
コンピュータ可読媒体は、プロセッサ２２によりアクセスされ得る任意の利用可能な媒体であってもよく、揮発性媒体および非揮発性媒体の両方、リムーバルおよびノンリムーバル媒体、通信媒体、ならびに記憶媒体を含んでもよい。通信媒体は、搬送波または他の搬送機構などの変調データ信号内にコンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを含んでもよく、当該技術分野において公知の任意の他の形態の情報送信媒体を含んでもよい。記憶媒体は、ＲＡＭ、フラッシュメモリ、ＲＯＭ、消去可能プログラマブルリードオンリメモリ（「ＥＰＲＯＭ」）、電気的消去可能プログラマブルリードオンリメモリ（「ＥＥＰＲＯＭ」）、レジスタ、ハードディスク、リムーバルディスク、コンパクトディスクリードオンリメモリ（「ＣＤ−ＲＯＭ」）、または当該技術分野において公知の任意の他の形態の記憶媒体を含んでもよい。
【００１７】
一実施形態において、メモリ１４は、プロセッサ２２により実行される場合、機能を提供するソフトウェアモジュールを記憶する。モジュールは、システム１０のためのオペレーティングシステム機能を提供するオペレーティングシステム１５、ならびに一実施形態におけるモバイルデバイスの残りを含む。モジュールはさらに、以下により詳細に開示されるようにダイナミックハプティック効果をコントロールするハプティックコード化モジュール１６を含む。特定の実施形態において、ハプティックコード化モジュール１６は複数のモジュールを含んでもよく、各個々のモジュールはダイナミックハプティック効果をコード化するための特定の個々の機能を提供する。システム１０は典型的に、Ｉｍｍｅｒｓｉｏｎ  ＣｏｒｐｏｒａｔｉｏｎによるＩｎｔｅｇｒａｔｏｒ（商標）アプリケーションなどの追加の機能を含むように１つ以上の追加のアプリケーションモジュール１８を含む。
【００１８】
リモートソースからデータを送信および／または受信する実施形態において、システム１０はさらに、赤外線、無線、Ｗｉ−Ｆｉ、またはセルラーネットワーク通信などの移動無線ネットワーク通信を提供するために、ネットワークインターフェースカードなどの通信デバイス２０を含む。他の実施形態において、通信デバイス２０は、イーサネット（登録商標）接続またはモデムなどの有線ネットワーク接続を提供する。
【００１９】
プロセッサ２２はさらに、バス１２を介して、グラフィック描写を表示するための液晶ディスプレイ（「ＬＣＤ」）などのディスプレイ２４またはユーザに対するユーザインターフェースに接続される。ディスプレイ２４は、プロセッサ２２から信号を送信し、受信するように構成される、タッチスクリーンなどのタッチセンサ入力デバイスであってもよく、マルチタッチのタッチスクリーンであってもよい。プロセッサ２２はさらに、マウスまたはタッチペンなどのユーザがシステム１０と相互作用できるキーボードまたはカーソルコントロール２８に接続されてもよい。
【００２０】
一実施形態において、システム１０はさらに、アクチュエータ２６を含む。プロセッサ２２は、生成されたハプティック効果に関連するハプティック信号をアクチュエータ２６に送信してもよく、次いで振動触覚ハプティック効果などのハプティック効果を出力する。アクチュエータ２６はアクチュエータ駆動回路を含む。アクチュエータ２６は、例えば、電気モータ、電磁気アクチュエータ、音声コイル、形状記憶合金、電気活性ポリマー、ソレノイド、偏心回転質量モータ（「ＥＲＭ」）、線形共鳴アクチュエータ（「ＬＲＡ」）、圧電アクチュエータ、高帯域アクチュエータ、電気活性ポリマー（「ＥＡＰ」）アクチュエータ、静電摩擦ディスプレイ、または超音波振動発生器であってもよい。代替の実施形態において、システム１０は、アクチュエータ２６に加えて１つ以上の追加のアクチュエータを含んでもよい（図１に示さず）。他の実施形態において、システム１０とは別個のデバイスが、ハプティック効果を生成するアクチュエータを含み、システム１０は、生成されたハプティック効果信号を、通信デバイス２０を介して、そのデバイスに送信する。アクチュエータ２６はハプティック出力デバイスの一例であり、ハプティック出力デバイスは、駆動信号に応答して振動触覚ハプティック効果などのハプティック効果を出力するように構成されるデバイスである。
【００２１】
システム１０はさらにデータベース３０に作動可能に接続されてもよく、そのデータベース３０は、モジュール１６および１８により使用されるデータを記憶するように構成されてもよい。データベース３０は、操作可能なデータベース、分析的データベース、データウェアハウス、分散データベース、エンドユーザデータベース、外部データベース、ナビゲーションデータベース、インメモリデータベース、ドキュメント指向性データベース、リアルタイムデータベース、リレーショナルデータベース、オブジェクト指向性データベース、または当該技術分野において公知の任意の他のデータベースであってもよい。
【００２２】
図２は、本発明の一実施形態に係る、一例のダイナミックハプティック効果の定義２００を示す。一実施形態によれば、ダイナミックハプティック効果は１つ以上のキーフレームを含むように定義されてもよい。キーフレームは、ダイナミックハプティック効果を定義するように使用され得る基礎ハプティック効果の表示である。また、一実施形態によれば、ハプティック効果信号は１つ以上のキーフレームを使用して生成されてもよく、ハプティック効果信号は１つ以上のキーフレームを記憶できる信号である。１つ以上のキーフレームを使用してハプティック効果信号を生成することによって、１つ以上のキーフレームが生成され、続いてハプティック効果信号内に記憶される。ハプティック効果信号は、ハプティック効果ファイル内に記憶されてもよく、ハプティック効果ファイルから読み出されてもよい。
【００２３】
キーフレームは基礎ハプティック効果の定義を含んでもよい。基礎ハプティック効果は、ハプティック効果の特徴（より具体的には、ハプティック効果により生成される運動感覚フィードバックおよび／または触覚フィードバックの特徴）を定義する１つ以上のパラメータを含み得るハプティック効果であり、ハプティック効果は、例えば振動ハプティック効果であってもよい。１つ以上のパラメータの例としては、振幅パラメータ、周波数パラメータ、および持続時間パラメータが挙げられ得る。基礎ハプティック効果の例としては、「ＭａｇＳｗｅｅｐハプティック効果」、および「周期的ハプティック効果」が挙げられ得る。ＭａｇＳｗｅｅｐハプティック効果は、運動感覚フィードバックおよび／または触覚フィードバック（振動など）を生成するハプティック効果である。周期的ハプティック効果は、反復運動感覚フィードバックおよび／または触覚フィードバック（振動パターンなど）を生成するハプティック効果である。反復パターンの例としては、正弦波、矩形、三角形、鋸歯の上側（ｓａｗｔｏｏｔｈ−ｕｐ）および鋸歯の下側（ｓａｗｔｏｏｔｈ−ｄｏｗｎ）などの特定の形状の反復パルスが挙げられる。
【００２４】
キーフレームは補間値を含み得る。補間値は、現在の補間が発生する場合を特定する値である。一実施形態において、補間値は最小値から最大値までの整数値であってもよい。一例として、補間値は０〜１０，０００であってもよい。しかしながら、これは単なる例であり、補間値は任意の最小値から任意の最大値までの任意の値であってもよい。例えば、他の実施形態において、補間値は固定小数点または浮動小数点の数値であってもよい。補間値は１つ以上のビット内に記憶されてもよい。
【００２５】
キーフレームはまた、必要に応じて、反復ギャップ値を含んでもよい。反復ギャップ値は、基礎ハプティック効果が連続してプレイされた場合、基礎ハプティック効果の２つの連続したインスタンスの間の時間周期を示す値である。一実施形態において、反復ギャップは基礎ハプティック効果の２つの連続したインスタンスの間のミリ秒数を示してもよい。
【００２６】
例示した実施形態において、ダイナミックハプティック効果の定義２００は、４つのキーフレーム、キーフレーム２１０、２２０、２３０、および２４０を含む。しかしながら、これは単なる一例の実施形態であり、代替の実施形態において、ダイナミックハプティック効果の定義は任意の数のキーフレームを含んでもよい。キーフレーム２１０は、「周期１」の基礎ハプティック効果の参照、「０」の補間値、および「１０ｍｓ」の反復ギャップ値を含む。基礎ハプティック効果の参照「周期１」とは基礎ハプティック効果２６０を指し、これはまた、ダイナミックハプティック効果の定義２００内に含まれる。このように、キーフレーム２１０は、「０」の補間値についての基礎ハプティック効果として基礎ハプティック効果２６０を定義する。キーフレーム２１０はさらに、基礎ハプティック効果２６０が連続してプレイされる場合、基礎ハプティック効果２６０の各々の連続したインスタンスの間に１０ｍｓの時間周期が存在することを示す。同様に、キーフレーム２２０は、「周期３」の基礎ハプティック効果の参照、「１０」の補間値、および「１５ｍｓ」の反復ギャップ値を含む。基礎ハプティック効果の参照「周期３」とは、基礎ハプティック効果２７０を指し、これはまた、ダイナミックハプティック効果の定義２００内に含まれる。このように、キーフレーム２２０は、「１０」の補間値についての基礎ハプティック効果として基礎ハプティック効果２７０を定義する。キーフレーム２２０はさらに、基礎ハプティック効果２７０が連続してプレイされる場合、基礎ハプティック効果２７０の各々の連続したインスタンスの間に１５ｍｓの時間周期が存在することを示す。
【００２７】
同様に、キーフレーム２３０は、「周期１」の基礎ハプティック効果の参照、「２０」の補間値、および「５ｍｓ」の反復ギャップ値を含む。以前に記載したように、基礎ハプティック効果の参照「周期１」とは、基礎ハプティック効果２６０を指し、これはまた、ダイナミックハプティック効果の定義２００内に含まれる。このように、キーフレーム２３０は、「２０」の補間値についての基礎ハプティック効果として基礎ハプティック効果２６０を定義する。このことは、基礎ハプティック効果が１つより多い補間値についての基礎ハプティック効果と定義され得ることを示す。キーフレーム２３０はさらに、基礎ハプティック効果２６０が連続してプレイされる場合、基礎ハプティック効果２６０の各々の連続したインスタンスの間に５ｍｓの時間周期が存在することを示す。同様に、キーフレーム２４０は、「周期２」の基礎ハプティック効果の参照、「３０」の補間値、および「２０ｍｓ」の反復ギャップ値を含む。基礎ハプティック効果の参照「周期２」とは、基礎ハプティック効果２８０を指し、これはまた、ダイナミックハプティック効果の定義２００内に含まれる。このように、キーフレーム２４０は、「３０」の補間値についての基礎ハプティック効果として基礎ハプティック効果２８０を定義する。キーフレーム２４０はさらに、基礎ハプティック効果２８０が連続してプレイされた場合、基礎ハプティック効果２８０の各々の連続したインスタンスの間に２０ｍｓの時間周期が存在することを示す。
【００２８】
一実施形態によれば、ダイナミックハプティック効果は、ダイナミックハプティック効果の終了の指標も含むように定義されてもよい。ダイナミックハプティック効果の終了の指標により、ダイナミックハプティック効果が追加のキーフレームを１つも含まないことを示す。以下に非常に詳細に記載するように、ダイナミックハプティック効果の定義を解釈するデバイスは、ダイナミックハプティック効果の定義のコンテンツを連続して解釈するように構成されてもよい。このように、指標はデバイスにダイナミックハプティック効果の定義の終了を示してもよい。一実施形態において、ダイナミックハプティック効果の終了の指標は追加のキーフレームを考慮されてもよい。例示した実施形態において、ダイナミックハプティック効果の定義２００は、ダイナミックハプティック効果の定義２００の終了を示すダイナミックハプティック効果の定義の終了２５０を示す。
【００２９】
図３は、本発明の一実施形態に係る、一例のキーフレームの定義３００を示す。以前に記載したように、ダイナミックハプティック効果の定義は１つ以上のキーフレームを含む。その実施形態によれば、キーフレームの定義は１つ以上の特性を含んでもよい。１つ以上の特性の各特性は値を含んでもよい。
【００３０】
キーフレームの定義はタイプ特性を含んでもよい。一実施形態において、タイプ特性はキーフレームの定義の第１の特性である。タイプ特性は、キーフレームが、ダイナミックハプティック効果の定義についての基礎ハプティック効果を含むキーフレームまたはダイナミックハプティック効果の定義の終了を示すキーフレームであるかどうかを示してもよい。例示した実施形態において、キーフレームの定義３００はキーフレームの定義３００により定義されるキーフレームのタイプを示すタイプ特性３１０を含む。
【００３１】
キーフレームの定義はまた、基礎ハプティック効果の特性も含んでもよい。基礎ハプティック効果の特性はキーフレームについての基礎ハプティックに対する参照を記憶できる。例示した実施形態において、キーフレームの定義３００は、キーフレームの定義３００により定義されるキーフレームについての基礎ハプティック効果に対する参照を含む基礎ハプティック効果特性３２０（「効果ネーム」として図３において識別した）を含む。
【００３２】
キーフレームの定義はまた、補間特性を含んでもよい。補間特性は補間値を記憶でき、その補間値は、現在の補間が発生する場合を特定する。一実施形態において、補間値は最小値から最大値までの整数値であってもよい。一例として、補間値は０〜１０，０００であってもよい。補間値は１つ以上のビット内に記憶できる。例示した実施形態において、キーフレームの定義３００はキーフレームの定義３００により定義されるキーフレームについての補間値を含む補間特性３３０を含む。
【００３３】
キーフレームの定義はまた、任意選択に反復ギャップ特性（図３に例示せず）を含んでもよい。反復ギャップ特性は、基礎ハプティック効果が連続してプレイされる場合、キーフレームについての基礎ハプティック効果の２つの連続したインスタンスの間の時間周期を示す反復ギャップ値を記憶できる。一実施形態において、反復ギャップはキーフレームについての基礎ハプティック効果の２つの連続したインスタンスの間のミリ秒数を示してもよい。
【００３４】
一実施形態において、ハプティック効果ファイルは１つ以上のダイナミックハプティック効果を記憶するように構成されるコンピュータファイルであり、そのハプティック効果ファイルは、ディスク、メモリ、または任意のコンピュータ可読記憶媒体上に存続されてもよい。その実施形態によれば、ハプティック効果ファイルは、基礎ハプティック効果記憶ブロックおよびフレームリストブロックを使用して１つ以上のダイナミックハプティック効果の定義を記憶できる。基礎ハプティック効果記憶ブロックは、ダイナミックハプティック効果が参照できる１つ以上の基礎ハプティック効果を記憶するように使用されてもよい。フレームリストブロックはダイナミックハプティック効果の定義に対応する１つ以上のキーフレームの定義を記憶するように使用されてもよい。基礎ハプティック効果記憶ブロックおよびフレームリストブロックをここで非常に詳細に記載する。
【００３５】
図４は、本発明の一実施形態に係る、一例の基礎ハプティック効果記憶ブロック４００を示す。以前に記載したように、ダイナミックハプティック効果の定義は１つ以上の基礎ハプティック効果を含んでもよく、少なくとも１つの記憶された基礎ハプティック効果は、ダイナミックハプティックの定義の少なくとも１つのキーフレームにより参照される。一実施形態において、１つ以上の基礎ハプティック効果は基礎ハプティック効果記憶ブロック４００などの基礎ハプティック効果記憶ブロック内に記憶されてもよく、基礎ハプティック効果記憶ブロックはダイナミックハプティック効果の定義内に記憶される。
【００３６】
その実施形態によれば、１つ以上の基礎ハプティック効果が基礎ハプティック効果記憶ブロック４００内にメッセージストリームとして記憶されてもよい。一例のメッセージフォーマットは、「コードネームｚ２」プロトコルメッセージフォーマットである。例示した実施形態において、基礎ハプティック効果は、必要に応じてＳｅｔＰｅｒｉｏｄｉｃＭｏｄｉｆｉｅｒメッセージが先行するＳｅｔＰｅｒｉｏｄｉｃメッセージにより定義される。このように、基礎ハプティック効果が関連したエンベロープを有する場合、ＳｅｔＰｅｒｉｏｄｉｃＭｏｄｉｆｉｅｒメッセージが、ブロックにおけるＳｅｔＰｅｒｉｏｄｉｃメッセージ前に現れ得る。そうでなければ、ＳｅｔＰｅｒｉｏｄｉｃメッセージのみがブロックにおいて現れ得る。このように、この実施形態によれば、基礎ハプティック効果記憶ブロック（図４の基礎ハプティック効果記憶ブロック４００など）に記憶される場合、基礎ハプティック効果は、（ａ）単一のＳｅｔＰｅｒｉｏｄｉｃメッセージにおける８バイトのメモリ（デフォルトエンベロープを仮定する）；または（ｂ）第１のＳｅｔＰｅｒｉｏｄｉｃＭｏｄｉｆｉｅｒメッセージにおける１６バイトのメモリ、続いてその後のＳｅｔｐｅｒｉｏｄｉｃメッセージを取ってもよい。
【００３７】
この実施形態によれば、基礎ハプティック効果記憶ブロック（図４の基礎ハプティック効果記憶ブロック４００など）は１つ以上の基礎ハプティック効果の定義を含んでもよく、各々の基礎ハプティック効果の定義は基礎ハプティック効果に対応する。１つ以上の基礎ハプティック効果の定義は基礎ハプティック効果記憶ブロック内で連続的であってもよく、各々、インデックスと関連されてもよい。
【００３８】
示した実施形態において、基礎ハプティック効果記憶ブロック４００は、５つの基礎ハプティック効果：効果０、効果１、効果２、効果３、および効果４を含む。効果０は基礎ハプティック効果記憶ブロック４００内に位置する第１の基礎ハプティック効果であり、効果１は基礎ハプティック効果記憶ブロック４００内に位置する第２の基礎ハプティック効果であり、効果２は基礎ハプティック効果記憶ブロック４００内に位置する第３の基礎ハプティック効果であり、効果３は基礎ハプティック効果記憶ブロック４００内に位置する第４の基礎ハプティック効果であり、効果４は基礎ハプティック効果記憶ブロック４００内に位置する第５の基礎ハプティック効果である。第５の基礎ハプティック効果（すなわち効果０、効果１、効果２、効果３、および効果４）の各々は、単一のＳｅｔＰｅｒｉｏｄｉｃメッセージまたはＳｅｔＰｅｒｉｏｄｉｃＭｏｄｉｆｉｅｒメッセージおよびＳｅｔＰｅｒｉｏｄｉｃメッセージの組み合わせのいずれかを含む基礎ハプティックの定義を含む。
【００３９】
図５は、本発明の一実施形態に係る、一例のフレームリストブロック５００を示す。以前に記載したように、ダイナミックハプティック効果の定義は１つ以上のキーフレームを含んでもよく、各々のキーフレームは基礎ハプティック効果を参照してもよい。一実施形態において、１つ以上のキーフレームはフレームリストブロック５００などのフレームリストブロック内に記憶されてもよく、そのフレームリストブロックはダイナミックハプティック効果の定義内に記憶されてもよい。
【００４０】
この実施形態によれば、フレームリストブロック５００などのフレームリストブロックは第１のキーフレームの定義についてのタイプ特性を含む。タイプ特性に応じて、フレームリストブロックはさらに、基礎ハプティック効果特性、補間特性、反復ギャップ特性、またはそれらの組み合わせなどの第１のキーフレームの定義に関連する１つ以上の特定を含む。フレームリストブロックはさらに、第２のキーフレームの定義についてのタイプ特性を含み、その第２のキーフレームの定義は第１のキーフレームの定義の終了を示す。タイプ特性に応じて、フレームリストブロックはさらに、基礎ハプティック効果特性、補間特性、反復ギャップ特性、またはそれらの組み合わせなどの第２のキーフレームの定義に関連する１つ以上の特性を含む。これは、フレームリストブロックの各々のキーフレームの定義にわたって継続する。フレームリストブロックはさらに、ダイナミックハプティック効果の終了を示すタイプ特性を含む。この実施形態によれば、フレームリストブロックのキーフレームの定義は順次的である。つまり、フレームリストブロックのイベントは、それらがフレームリストブロック内に位置する順序で処理される。
【００４１】
この実施形態によれば、フレームリストブロックの１つ以上の特性が、単一のヘッダーバイト、続いて任意選択のデータバイトを使用してコード化されてもよい。フレームリストブロックの１つ以上の特性の一例のコード化スキームは以下の通りである：
【００４２】
【表１】
2014093091.tif 000003
【００４３】
この実施形態によれば、キーフレームタイプ特性およびダイナミックハプティック効果タイプ特性の終了はキーフレームの定義のタイプ特性に対応し、ＥｆｆｅｃｔＮａｍｅＡｓＯｆｆＳｅｔＵ８特性はキーフレームの定義の基礎ハプティック効果特性に対応し、ＩｎｔｅｒｐｏｌａｎｔＵ１６特性はキーフレームの定義の補間特性に対応し、ＲｅｐｅａｔＧａｐＵ１６特性はキーフレームの定義の反復ギャップ特性に対応する。
【００４４】
示した実施形態において、フレームリストブロック５００はキーフレームの定義５１０、５２０、および５３０を含む。キーフレームの定義５１０および５２０は各々、基礎ハプティック効果キーフレームについての定義である。キーフレームの定義５３０はフレームリストブロック内に記憶されたダイナミックハプティック効果の終了の指標である。フレームリストブロック５００の左の欄は、キーフレームの定義５１０、５２０、および５３０の各々についてメモリ内に見出されるバイトストリームを示す。フレームリストブロックの右の列は、キーフレームの定義５１０、５２０、および５３０の各々についての各々の特性の意味を示す。
【００４５】
示した実施形態によれば、キーフレームの定義５１０は、キーフレームの定義５１０の開始を示すキーフレームのタイプ特性（図５に示した「キーフレームイベント（ＫｅｙＦｒａｍｅ  Ｅｖｅｎｔ）」）を含む。キーフレームの定義５１０はさらに、キーフレームの定義５１０についての基礎ハプティック効果に対する参照を記憶する基礎ハプティック効果特性（図５に示した「ＥｆｆｅｃｔＮａｍｅＡｓＯｆｆｓｅｔＵ８」）を含み、基礎ハプティック効果特性はヘッダーバイトおよびオフセットバイトを含む。キーフレームの定義５１０はさらに、現在の補間が発生する場合を特定する補間値を記憶する補間特性（図５に示した「ＩｎｔｅｒｐｏｌａｎｔＵ１６」）を含み、補間特性は、ヘッダーバイト、最上位ビット（「ＭＳＢ」）および最下位ビット（「ＬＳＢ」）を含む。キーフレームの定義５１０はさらに、キーフレームについての基礎ハプティック効果の２つの連続したインスタンスの間の時間周期を示す反復ギャップ値を記憶する反復ギャップ特性（図５に示した「ＲｅｐｅａｔＧａｐＵ１６」）を含み、反復ギャップ特性はヘッダーバイト、ＭＳＢ、およびＬＳＢを含む。
【００４６】
さらに、キーフレームの定義５２０はまた、キーフレームの定義５２０の開始を示すキーフレームのタイプ特性（図５に示した「キーフレームイベント（ＫｅｙＦｒａｍｅ  Ｅｖｅｎｔ）」）を含む。キーフレームの定義５２０はさらに、キーフレームの定義５２０についての基礎ハプティック効果に対する参照を記憶する基礎ハプティック効果特性（図５に示した「ＥｆｆｅｃｔＮａｍｅＡｓＯｆｆｓｅｔＵ１６」）を含み、基礎ハプティック効果特性はヘッダーバイト、基礎ハプティック効果の定義ＭＳＢ、および基礎ハプティック効果の定義ＬＳＢを含む。キーフレームの定義５２０はさらに、現在の補間が発生する場合を特定する補間値を記憶する補間特性（図５に示した「ＩｎｔｅｒｐｏｌａｎｔＵ１６」）を含み、補間特性はヘッダーバイト、ＭＳＢ、およびＬＳＢを含む。図５に示したように、キーフレームの定義５１０と対照的に、キーフレームの定義５２０は反復ギャップ特性を含まない。最終的に、キーフレームの定義５３０は、ダイナミックハプティック効果の定義の終了を示すダイナミックハプティック効果のタイプ特性（図５に示した「ＥｎｄｏｆＤｙｎａｍｉｃＨａｐｔｉｃＥｆｆｅｃｔ」）の終了を含む。
【００４７】
一実施形態によれば、ダイナミックハプティック効果の定義（図２のダイナミックハプティック効果の定義２００など）はハプティック効果ファイル内に保存されてもよい。以前に記載したように、ハプティック効果ファイルは、１つ以上のダイナミックハプティック効果を保存するように構成されるコンピュータファイルである。ダイナミックハプティック効果の定義はハプティック効果ファイル内に保存されてもよく、ハプティック効果ファイルはディスクまたはメモリなどのコンピュータ可読媒体内に存続されてもよい。ダイナミックハプティック効果の定義は、後でハプティック効果から読み出され、解釈されてもよい。ダイナミックハプティック効果の定義の解釈に基づいて、ダイナミックハプティック効果は、第１の補間値と第２の補間値との間の値であるダイナミック値に基づいて第１のハプティック効果および第２のハプティック効果を補間することによって生成されてもよい。より具体的には、ダイナミックハプティック効果の各パラメータについての値は、補間関数を使用して、第１のハプティック効果のパラメータの値を第２のハプティック効果のパラメータの値に補間することにより計算されてもよい。ダイナミックハプティック効果の各パラメータ値の補間は、ダイナミック値が、第１の補間値と第２の補間値との間の範囲内である場合に基づいてもよい。例えば、第１の補間値が「０」であり、第２の補間値が「１００」である場合、「５０」のダイナミック値により、「０」の第１の補間値に関連する第１のハプティック効果は、「１００」の第２の補間値に関連する第２のハプティック効果と補間でき、ダイナミックハプティック効果を生成する。第１のハプティック効果の各パラメータ値は補間関数に基づいて第２の値のパラメータ値と補間されてもよく、それにより、ダイナミックハプティック効果のパラメータ値は、第１のハプティック効果のパラメータ値および第２のハプティック効果のパラメータ値の両方に基づく。ダイナミックハプティック効果の生成に関する更なる詳細は、「ＧＥＮＥＲＡＴＩＮＧ  ＨＡＰＴＩＣ  ＥＦＦＥＣＴＳ  ＦＯＲ  ＤＹＮＡＭＩＣ  ＥＶＥＮＴＳ」という発明の名称の２０１２年７月１１日に出願された米国特許出願第１３／５４６，３５１号に更に記載されている。
【００４８】
一実施形態によれば、ダイナミックハプティック効果の定義（図２のダイナミックハプティック効果の定義２００など）はハプティック効果信号を生成するために使用されてもよく、そのハプティック効果信号はハプティック効果ファイル内に保存されてもよい。ハプティック効果信号は、後でハプティック効果ファイルから読み出されてもよい。さらに、駆動信号がハプティック効果信号に従ってハプティック出力デバイスに適用されてもよい。駆動信号はさらに、ハプティック出力デバイスを使用して生成されてもよい。
【００４９】
ハプティック効果ファイルは多くの異なるフォーマットのうちの１つを有してもよい。特定の実施形態において、ハプティック効果ファイルは拡張マークアップ言語（「ＸＭＬ」）フォーマットを有してもよい。特定の他の実施形態において、ハプティック効果ファイルはバイナリフォーマットを有してもよい。
【００５０】
ＸＭＬフォーマットを有するハプティック効果ファイルの一例はＩｍｍｅｒｓｉｏｎ  Ｖｉｂｒａｔｉｏｎ  Ｓｏｕｒｃｅ（「ＩＶＳ」）ハプティック効果ファイルである。ダイナミックハプティック効果の定義を含む一例のＩＶＳハプティック効果ファイルを以下に与える：
【数１】
2014093091.tif 000004
【００５１】
上記に与えた例のＩＶＳハプティック効果ファイルにおいて、第１のタグ、＜ｉｎｔｅｒｐｏｌａｔｅｄ−ｅｆｆｅｃｔ  ｎａｍｅ＞は、ＩＶＳハプティック効果ファイル内に保存されるダイナミックハプティック効果のネームを識別する。例のＩＶＳハプティック効果ファイルにおける次の３つのタグは一連のキーフレーム（ｋｅｙ−ｆｒａｍｅ）タグであり、その各々のキーフレームタグはダイナミックハプティック効果のキーフレームを表す。各々のキーフレームタグは、２つのパラメータ、キーフレーム補間パラメータおよび効果パラメータを含んでもよい。キーフレーム補間パラメータはキーフレームについての補間値を表す。効果パラメータはキーフレームについての基礎ハプティック効果のネームを表す。さらに、各々のキーフレームタグは必要に応じて、第３のパラメータ、反復ギャップパラメータを含んでもよい。反復ギャップパラメータはキーフレームについての反復ギャップを表す。キーフレームタグが反復ギャップパラメータを含まない場合、キーフレームは反復ギャップを含まず、このことはキーフレームについての基礎ハプティック効果が反復されないことを意味する。例のＩＶＳハプティック効果ファイルにおいて、第１のキーフレームタグは、「０」の値を有するキーフレーム補間パラメータ、「ｂａｓｉｓ−ｅｆｆｅｃｔ−０−ｎａｍｅ」の値を有する効果パラメータ、および「０」の値を有する反復ギャップパラメータを含む。第２のキーフレームタグは、「０．５」の値を有するキーフレーム補間パラメータ、「ｂａｓｉｓ−ｅｆｆｅｃｔ−１−ｎａｍｅ」の値を有する効果パラメータ、および「１５」の値を有する反復ギャップパラメータを含む。第３のキーフレームタグは、「１」の値を有するキーフレーム補間パラメータ、および「ｂａｓｉｓ−ｅｆｆｅｃｔ−２−ｎａｍｅ」の値を有する効果パラメータを含み、反復ギャップパラメータを含まない。その後のタグ、「＜／ｉｎｔｅｒｐｏｌａｔｅｄ−ｅｆｆｅｃｔ＞」は、ＩＶＳハプティック効果ファイル内に保存されるダイナミックハプティック効果の終了を識別する。
【００５２】
一実施形態によれば、デバイスは、上記に与えた例のＩＶＳハプティック効果ファイルなどのＩＶＳハプティック効果ファイルを読み出すことができ、ＩＶＳハプティック効果ファイル内に保存されるダイナミックハプティック効果の定義を解釈でき、ダイナミックハプティック効果を生成するためにＩＶＳハプティック効果ファイル内に保存される値を使用できる。例えば、デバイスはランタイムにおいて補間値を与えてもよく、デバイスは、ＩＶＳハプティック効果ファイル内に保存されるダイナミックハプティック効果の定義を解釈してもよく、キーフレーム補間値が間に存在することを決定してもよい。次いでデバイスは、ダイナミックハプティック効果を生成するために２つのキーフレームの基礎ハプティック効果の間で補間してもよい。
【００５３】
バイナリフォーマットを有するハプティック効果ファイルの別の例はＩｍｍｅｒｓｉｏｎ  Ｖｉｂｒａｔｉｏｎ  Ｔａｒｇｅｔ（「ＩＶＴ」）ハプティック効果ファイルである。ダイナミックハプティック効果の定義を含む例のＩＶＴハプティック効果ファイルを以下に与える。
【数２】
2014093091.tif 000005
【００５４】
上記に与えた例のＩＶＴハプティック効果ファイルは２つのキーフレームの定義を含み、その各キーフレームの定義は１６進数「０ｘＣ１」により識別される。一実施形態によれば、１６進値、例えば「０ｘＣｙ」（ここで「ｙ」は任意のゼロでない１６進数の１桁である）はＩＶＴハプティック効果ファイル内に保存されるキーフレームの開始を識別できる。さらに、この実施形態によれば、１６進値「０ｘＣｙ」が、ＩＶＴハプティック効果ファイル内の最初のこのような１６進値である場合、１６進値はまた、ＩＶＴハプティック効果ファイル内に保存されるダイナミックハプティック効果の開始を示してもよく、ダイナミックハプティック効果は１つ以上のキーフレームを含む。上記に与えた例のＩＶＴハプティック効果ファイルにおいて、「０ｘＣ１」の第１の例は保存されたダイナミックハプティック効果の開始を示し、また、保存されたダイナミックハプティック効果内の第１のキーフレーム、「ＫｅｙＦｒａｍｅ１」の開始を示す。また、例のＩＶＴハプティック効果ファイルにおいて、「０ｘＣ１」の第２の例は、保存されたダイナミックハプティック効果内の第２のキーフレーム、「ＫｅｙＦｒａｍｅ２」の開始を示す。
【００５５】
各キーフレームに関して、例のＩＶＴハプティック効果ファイルはさらに、キーフレームを定義するデータを含む。例えば、一実施形態によれば、例のＩＶＴハプティック効果ファイルはさらに、１６進値、例えば、キーフレームについての基礎ハプティック効果特性、および基礎ハプティック効果特性についての値を識別する「０ｘＥ０」または「０ｘＥ１」を含む。例のＩＶＴハプティック効果ファイルにおいて、第１のキーフレームについて、「０ｘＥ０」の例は、第１のキーフレームについての基礎ハプティック効果特性を識別し、「０」の値は、第１のキーフレームの基礎ハプティック効果特性についての第１の基礎ハプティック効果を識別する。同様に、第２のキーフレームについて、「０ｘＥ０」の例は、第２のキーフレームについての基礎ハプティック効果特性を識別し、「１」の値は、第２のキーフレームの基礎ハプティック効果特性についての第２の基礎ハプティック効果を識別する。
【００５６】
その実施形態に係る、キーフレームを定義するデータの一部として、例のＩＶＴハプティック効果ファイルはさらに、１６進値、例えば、キーフレームについての補間特性を識別する「０ｘＥ６」、および補間特性についての値を含む。例のＩＶＴハプティック効果ファイルにおいて、第１のキーフレームについて、「０ｘＥ６」の例は、第１のキーフレームについての補間特性を識別し、「０」の値は、第１のキーフレームの補間特性についての補間値を識別する。同様に、第２のキーフレームについて、「０ｘＥ６」の例は、第２のキーフレームについての補間特性を識別し、「１００」の値は第２のキーフレームの補間特性についての補間値を識別する。
【００５７】
その実施形態に係る、キーフレームを定義するデータの一部として、例のＩＶＴハプティック効果ファイルはさらに必要に応じて、１６進値、例えば、キーフレームについての反復ギャップ特性を識別する「０ｘＥ２」、および反復ギャップ特性についての１つ以上の値を含む。例のＩＶＴハプティック効果ファイルにおいて、第１のキーフレームについて、「０ｘＥ２」の例は、第１のキーフレームについての反復ギャップ特性を識別し、「５０」の値は、第１のキーフレームの反復ギャップ特性についての「ＬＳＢ」反復ギャップ値を識別し、「０」の値は、第１のキーフレームの反復ギャップ特性についての「ＭＳＢ」反復ギャップ値を識別する。同様に、第２のキーフレームについて、「０ｘＥ２」の例は、第２のキーフレームについての反復ギャップ特性を識別し、「１５０」の値は、第２のキーフレームの反復ギャップ特性についてのＬＳＢ反復ギャップ値を識別し、「０」の値は、第２のキーフレームの反復ギャップ特性についてのＭＳＢ反復ギャップ値を識別する。
【００５８】
例のＩＶＴハプティック効果ファイルはさらに、１６進値、例えば、ＩＶＴハプティック効果ファイル内に保存されるダイナミックハプティック効果の終了を識別する「０ｘＣＦ」を含む。例のＩＶＴハプティック効果ファイルにおいて、「０ＸＣＦ」の例は保存されたダイナミックハプティック効果の終了を識別する。
【００５９】
一実施形態によれば、デバイスは、上記に与えた例のＩＶＴハプティック効果ファイルなどのＩＶＴハプティック効果ファイルを読み取ることができ、ＩＶＴハプティック効果ファイル内に保存されるダイナミックハプティック効果の定義を解釈でき、ダイナミックハプティック効果を生成するためにＩＶＴハプティック効果ファイル内に保存される値を使用できる。例えば、デバイスはランタイムにおいて補間値を与えてもよく、デバイスは、ＩＶＴハプティック効果ファイル内に保存されるダイナミックハプティック効果の定義を解釈してもよく、キーフレーム補間値が間に存在することを決定してもよい。次いでデバイスはダイナミックハプティック効果を生成するために２つのキーフレームの基礎ハプティック効果の間で補間してもよい。
【００６０】
一実施形態において、ＩＶＴハプティック効果ファイルは、ダイナミックハプティック効果の定義に加えて、基礎ハプティック効果などの他のハプティック効果の定義を含んでもよい。例えば、ＩＶＴハプティック効果ファイルは、ＭａｇＳｗｅｅｐハプティック効果の定義、周期的ハプティック効果の定義、または他の種類の基礎ハプティック効果の定義、例えば「波形ハプティック効果」の定義を含んでもよい。「波形ハプティック効果」は、十分に正確に制御されたフィードバックを生じる特定の信号に基づいてフィードバックを生成するハプティック効果である。その実施形態によれば、１６進値は、基礎ハプティック効果の開始と比較して、ダイナミックハプティック効果の開始を識別してもよい。次いでデバイスがＩＶＴハプティック効果ファイルを読み出す場合、デバイスは基礎ハプティック効果の定義からダイナミックハプティック効果の定義を識別できる。
【００６１】
一例の実施形態において、１６進値、例えば「０ｘＦ１」、「０ｘＦ２」、または「０ｘＦＦ」は、「タイムラインハプティック効果」の開始を識別してもよい。「タイムラインハプティック効果」は、経時的に予定される１つ以上の基礎ハプティック効果を含んでもよい。さらに、１６進値、例えば「０ｘ２０」、「０ｘ３０」、「０ｘ４０」および「０ｘ５０」は、基礎ハプティック効果、例えばＭａｇＳｗｅｅｐハプティック効果、周期ハプティック効果、または波形ハプティック効果の開始を識別してもよい。さらに、以前に記載したように、１６進値、例えば「０ｘＣｙ」（ここで、「ｙ」は任意のゼロでない１６進数の１桁である）は、ダイナミックハプティック効果の開始を識別してもよい。よって、デバイスがＩＶＴハプティック効果ファイルを読み取る場合、デバイスは、ＩＶＴハプティック効果ファイル内に保存された１６進値を読み取ることができ、定義されたハプティック効果がダイナミックハプティック効果であるか、または一部の他のハプティック効果であるかどうかを決定できる。定義されたハプティック効果がダイナミックハプティック効果であるか、または一部の他のハプティック効果であるかどうかを決定するための例の疑似コードを以下に与える。
【数３】
2014093091.tif 000006
【００６２】
しかしながら、この例の疑似コードは、上述の機能性を実装できるコード、および他の形態であってもよい機能性を実装するコードの単なる例示であり、それらは依然として本発明の範囲内である。さらに、ハプティック効果ファイルの２つの例のフォーマット（すなわち、ＩＶＳハプティック効果ファイル、およびＩＶＴハプティック効果ファイル）が記載されているが、ハプティック効果ファイルは異なるフォーマットであってもよく、それらは依然として本発明の範囲内である。
【００６３】
図６は、本発明の一実施形態に係る、ハプティックコード化モジュール（図１のハプティックコード化モジュール１６など）の機能性のフローチャートを示す。一実施形態において、図６の機能性および図７の機能性は、各々、メモリまたは別のコンピュータ可読媒体または有形的表現媒体内に保存され、プロセッサにより実行されるソフトウェアにより実装される。他の実施形態において、各々の機能性は、ハードウェアにより（例えば、特定用途向け集積回路（「ＡＳＩＣ」）、プログラマブルゲートアレイ（「ＰＧＡ」）、フィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）などの使用により）、またはハードウェアとソフトウェアの任意の組み合わせにより実施されてもよい。さらに、代替の実施形態において、各々の機能性は類似要素を使用してハードウェアにより実施されてもよい。
【００６４】
フローは開始し、６１０に進む。６１０において、ダイナミックハプティック効果は、第１のキーフレームおよび第２のキーフレームを含むと定義される。第１のキーフレームは第１の補間値および対応する第１のハプティック効果を含む。第２のキーフレームは第２の補間値および対応する第２のハプティック効果を含む。第１の補間値は、補間が対応する第１のハプティック効果を生じる場合を特定する値であってもよく、第２の補間値は、補間が対応する第２のハプティック効果を生じる場合を特定する値であってもよい。第１のキーフレームおよび第２のキーフレームは各々、反復ギャップ値を含んでもよい。第１のハプティック効果および第２のハプティック効果は各々、振動ハプティック効果であってもよく、各々、複数のパラメータを含んでもよい。複数のパラメータは、振幅パラメータ、周波数パラメータ、および持続時間パラメータを含んでもよい。ダイナミックハプティック効果はさらに、ダイナミックハプティック効果の終了の指標を含むように定義されてもよい。ダイナミックハプティック効果はさらに、ハプティック効果記憶ブロックを含むように定義されてもよく、第１のハプティック効果および第２のハプティック効果はハプティック効果記憶ブロック内に記憶されてもよい。ダイナミックハプティック効果は、さらなるキーフレームを含んでもよい。示した実施形態において、ダイナミックハプティック効果は２つのキーフレームを含むと定義されてもよく、各キーフレームはハプティック効果を含む。しかしながら、これは単に例の実施形態であり、代替の実施形態において、ダイナミックハプティック効果は３つ以上のキーフレームを含むと定義されてもよく、各キーフレームはハプティック効果を含む。フローは６２０に進む。
【００６５】
６２０において、ハプティック効果ファイルが生成される。ハプティック効果ファイルのフォーマットはバイナリフォーマットであってもよい。あるいは、ハプティック効果ファイルのフォーマットはＸＭＬフォーマットであってもよい。フローは６３０に進む。
【００６６】
６３０において、ダイナミックハプティック効果はハプティック効果ファイル内に記憶される。ダイナミックハプティック効果は、ハプティック効果ファイル内に１つ以上の他のハプティック効果と共に記憶されてもよい。他のハプティック効果の少なくとも１つは別のダイナミックハプティック効果であってもよい。フローは６４０に進む。
【００６７】
６４０において、ダイナミックハプティック効果はハプティック効果ファイルから読み出される。デバイスは、ハプティック効果ファイルを読み取ることができ、ダイナミックハプティック効果を読み出すことができる。ハプティック効果ファイルが１つ以上の他のハプティック効果を含む場合、デバイスは、ダイナミックハプティック効果内に含まれる値に基づいてダイナミックハプティック効果を識別してもよい。フローは６５０に進む。
【００６８】
６５０において、ダイナミックハプティック効果が解釈される。デバイスは、ダイナミックハプティック効果内に含まれる第１のキーフレームおよび第２のキーフレームを連続して読み取ることによってダイナミックハプティック効果を解釈できる。ダイナミックハプティック効果がさらなるキーフレームを含む場合、デバイスはさらに、さらなるキーフレームを連続して読み取ることによってダイナミックハプティック効果を解釈してもよい。デバイスはさらに、ダイナミック値を受信し、受信したダイナミック値に基づいてダイナミックハプティック効果内に記憶される２つの基礎ハプティック効果を選択することによってダイナミックハプティック効果を解釈してもよい。デバイスはさらに、２つの補間値が２つの基礎ハプティック効果に対応する場合、受信したダイナミック値が、ダイナミックハプティック効果内に記憶される２つの補間値の範囲内にあるという事実に基づいてダイナミックハプティック効果内に記憶される２つの基礎ハプティック効果を選択してもよい。フローは６６０に進む。
【００６９】
６６０において、ダイナミックハプティック効果が生成される。ダイナミックハプティック効果は２つの選択された基礎ハプティック効果に基づいて生成されてもよい。より具体的には、ダイナミックハプティック効果は、受信したダイナミック値に基づいて２つの選択された基礎ハプティック効果を補間することによって生成されてもよい。特定の実施形態において、ダイナミックハプティック効果の各パラメータについての値は、補間関数を使用して、第１の選択された基礎ハプティック効果のパラメータの値を、第２の選択された基礎ハプティック効果のパラメータの値に補間することによって計算されてもよい。ダイナミックハプティック効果の各パラメータ値の補間は、受信したダイナミック値が、第１の選択された基礎ハプティック効果に対応する第１の補間値と、第２の選択された基礎ハプティック効果に対応する第２の補間値との間の範囲内にある場合に基づいてもよい。示した実施形態において、ダイナミックハプティック効果は２つの基礎ハプティック効果を補間することによって生成されてもよい。このような補間は線形補間であってもよい。しかしながら、これは単に例の実施形態であり、代替の実施形態において、ダイナミックハプティック効果は３つ以上の基礎ハプティック効果を補間することによって生成されてもよい。このような補間はスプライン補間であってもよく、スプライン補間は、補間関数がスプラインと呼ばれる特定の種類の区分的多項式であり、補間関数が２つ以上のキーフレームを使用して補間値をダイナミックハプティック効果にマッピングできる関数である、補間の形態である。ダイナミックハプティック効果はさらに、アクチュエータにより生成されてもよい。次いでフローは終了に進む。
【００７０】
図７は、本発明の別の実施形態に係る、ハプティックコード化モジュールの機能性のフローチャートを示す。フローは開始し、７１０に進む。７１０において、第１のキーフレームが受信され、第１のキーフレームは第１の補間値および第１のハプティック効果を有する。第１の補間値は、補間が第１のハプティック効果を生じる場合を特定する値であってもよい。第１のキーフレームは反復ギャップ値を含んでもよい。第１のハプティック効果は、振動ハプティック効果であってもよく、複数のパラメータを含んでもよい。複数のパラメータは、振幅パラメータ、周波数パラメータ、および持続時間パラメータを含んでもよい。フローは７２０に進む。
【００７１】
７２０において、第２のキーフレームが受信され、第２のキーフレームは第２の補間値および第２のハプティック効果を有する。第２の補間値は、補間が第２のハプティック効果を生じる場合を特定する値であってもよい。第２のキーフレームは反復ギャップ値を含んでもよい。第２のハプティック効果は、振動ハプティック効果であってもよく、複数のパラメータを含んでもよい。複数のパラメータは、振幅パラメータ、周波数パラメータ、および持続時間パラメータを含んでもよい。フローは７３０に進む。
【００７２】
７３０において、第１のキーフレームおよび第２のキーフレームを使用してハプティック効果信号が生成される。ハプティック効果信号はさらに、ハプティック効果信号の終了の指標を含んでもよい。ハプティック効果信号はさらに、ハプティック効果記憶ブロックを含んでもよく、第１のハプティック効果および第２のハプティック効果は、ハプティック効果記憶ブロック内に保存されてもよい。ハプティック効果信号はさらに、さらなるキーフレームを含んでもよい。示した実施形態において、ハプティック効果信号は２つのキーフレームを使用して生成されてもよく、各キーフレームはハプティック効果を含む。しかしながら、これは単なる例の実施形態であり、代替の実施形態において、ハプティック効果は３つ以上のキーフレームを使用して生成されてもよく、各キーフレームはハプティック効果を含む。フローは７４０に進む。
【００７３】
７４０において、ハプティック効果信号はハプティック効果ファイル内に記憶される。ハプティック効果ファイルのフォーマットはバイナリフォーマットであってもよい。あるいは、ハプティック効果ファイルのフォーマットはＸＭＬフォーマットであってもよい。ハプティック効果信号は、ハプティック効果ファイル内の１つ以上の他のハプティック効果信号と共に記憶されてもよい。他のハプティック効果信号の少なくとも１つは２つ以上のキーフレームを含んでもよい。フローは７５０に進む。
【００７４】
７５０において、ハプティック効果信号はハプティック効果ファイルから読み出される。デバイスはハプティック効果ファイルを読み取ることができ、ハプティック効果信号を読み出すことができる。ハプティック効果ファイルが１つ以上の他のハプティック効果信号を含む場合、デバイスは、ハプティック効果信号内に含まれる値に基づいてハプティック効果信号を識別できる。フローは７６０に進む。
【００７５】
７６０において、駆動信号が、ハプティック効果信号に従ってハプティック出力デバイスに適用される。これにより、ハプティック出力デバイスは、ハプティック効果信号と一致したダイナミックハプティック効果を生成できる。フローは７７０に進む。
【００７６】
７７０において、ハプティック出力デバイスを使用して駆動信号が生成される。次いでフローは終了に進む。
【００７７】
このように、一実施形態において、ディスク、メモリ、または任意のコンピュータ可読記憶媒体上に１つ以上のダイナミックハプティック効果を記憶できるシステムが提供されてもよい。そのシステムはさらに、１つ以上のダイナミックハプティック効果を読み出すことができ、１つ以上のダイナミックハプティック効果を出力できる。ダイナミックハプティック効果は複数のハプティック効果に基づいてもよい。従って、そのシステムは少しの数のハプティック効果に関する情報を記憶でき、さらにそのシステムは、少しの数のハプティック効果に基づいて数百または数千のダイナミックハプティック効果を出力できる。これにより、格納スペースを節約でき、ダイナミックハプティック効果を記憶し、読み出すためのより効果的な機構を可能にする。さらに、１つ以上のダイナミックハプティック効果を記憶するハプティック効果ファイルのフォーマットはフレキシブルであってもよく、それにより、ハプティック効果の設計者は少しの数のファイルフォーマットに限定されない。これにより、効果設計者がダイナミックハプティック効果を作成することがよりフレキシブルになり得る。
【００７８】
本明細書全体にわたって記載される本発明の特徴、構造、または特性は、１つ以上の実施形態において任意の適切な方法で組み合わされてもよい。例えば、本明細書全体にわたって「一実施形態」、「一部の実施形態」、「特定の実施形態」、「特定の実施形態（複数）」または他の同様の言語の使用は、実施形態に関連して記載されている特定の特徴、構造、または特性が、本発明の少なくとも１つの実施形態に含まれてもよいという事実を指す。従って、本明細書全体にわたって「一実施形態」、「一部の実施形態」、「特定の実施形態」、「特定の実施形態（複数）」という用語または他の同様の言語の出現は、１つ以上の実施形態において任意の適切な方法で組み合わされ得る、同じグループの実施形態、および記載された特徴、構造または特性を必ずしも指すわけではない。
【００７９】
当業者は、上記に説明した本発明が、異なる順序の段階、および／または開示されるものと異なる構成の要素で実施されてもよいことを容易に理解するであろう。したがって、本発明はこれらの好ましい実施形態に基づいて記載されているが、本発明の精神および範囲内にとどまりながら、特定の修飾、変更および代替の構成が明らかになることは当業者に自明である。したがって、本発明の境界および範囲を決定するために、添付の特許請求の範囲が参照されるべきである。
【図１】
2014093091.tif 000007
【図２】
2014093091.tif 000008
【図３】
2014093091.tif 000009
【図４】
2014093091.tif 000010
【図５】
2014093091.tif 000011
【図６】
2014093091.tif 000012
【図７】
2014093091.tif 000013