【解決手段】システム10は、複数のキーフレームを含むようにダイナミックハプティック効果を定義する。各キーフレームは、補間値および対応するハプティック効果を含む。補間値は、補間が生じる場合を特定する値である。システム10はハプティック効果ファイルを生成し、ハプティック効果ファイル内にダイナミックハプティック効果を記憶する。
前記ハプティック効果ファイルのフォーマットが、バイナリフォーマットまたは拡張マークアップ言語フォーマットのうちの少なくとも1つである、請求項1に記載の方法。
【発明を実施するための形態】
【0008】
以下に記載するように、「ダイナミックハプティック効果」とは、それが1つ以上の入力パラメータに応答する場合、時間と共に変化するハプティック効果を指す。ダイナミックハプティック効果は所与の入力信号の状態の変化を表すためにハプティックデバイス上に表示されるハプティックまたは振動触覚効果である。入力信号は、位置、加速度、圧力、配向、もしくは近接性などの、ハプティックフィードバックを有するデバイス上でセンサによりキャプチャされる信号、または他のデバイスによりキャプチャされる信号であってもよく、ハプティック効果の生成に影響を与えるようにハプティックデバイスに送信できる。
【0009】
ダイナミック効果信号は任意の種類の信号であってもよいが、複雑である必要はない。例えば、ダイナミック効果信号は、入力パラメータを効果信号の変化特性にマッピングするマッピングスキーマに従って時間と共に変化するかまたはリアルタイムで応答する位相、周波数、または振幅などの一部の特性を有する簡単な正弦波であってもよい。入力パラメータは、デバイスにより提供できる任意の種類の入力であってもよく、典型的には、デバイスセンサ信号などの任意の種類の信号であってもよい。デバイスセンサ信号は任意の手段により生成されてもよく、典型的には、ユーザジェスチャをデバイスでキャプチャすることにより生成されてもよい。ダイナミック効果はジェスチャインターフェースに非常に有用であり得るが、ダイナミック信号を生成するためにジェスチャまたはセンサの使用は必ずしも必要でなくてもよい。
【0010】
ジェスチャを直接含まない1つの一般的なシナリオは、動画のウィジェットのダイナミックハプティック挙動を定義することである。例えば、ユーザがリストをスクロールする場合、それは典型的には、最も直感的に感じるジェスチャの触覚経験(haptification)ではなくて、ジェスチャに応じたウィジェットの動きである。このスクロールリストの例では、リストをそっとスライドすることで、スクロールの速度に従って変化する動的なハプティックフィードバックを生成し得るが、スクロールバーを荒々しく触ると、ジェスチャが終わった後でもダイナミックハプティックを生成し得る。これはウィジェットが一部の物理的な特性を有する錯視(イリュージョン)を生成し、かつ、ウィジェットの状態について、例えば速度、またはそれが動いている最中かどうかなどの情報をユーザに提供する。
【0011】
ジェスチャは、意味またはユーザの意図を伝える身体の任意の動きである。単純なジェスチャはより複雑なジェスチャを形成するために結合されてもよいことは認識される。例えば、指をタッチ感応表面に持っていくことを「フィンガーオン」ジェスチャと言う場合があり、他方で、タッチ感応表面から指を離すことを別の「フィンガーオフ」ジェスチャと言う場合がある。「フィンガーオン」ジェスチャと「フィンガーオフ」ジェスチャとの間の時間が相対的に短い場合、結合されたジェスチャは「タッピング」と呼ばれてよく、「フィンガーオン」ジェスチャと「フィンガーオフ」ジェスチャとの間の時間が相対的に長い場合、結合されたジェスチャは「ロングタッピング」と呼ばれてよく、「フィンガーオン」ジェスチャおよび「フィンガーオフ」ジェスチャの二次元(x,y)位置の間の距離が相対的に大きい場合、結合されたジェスチャは「スワイピング(swiping)」と呼ばれてよく、「フィンガーオン」ジェスチャおよび「フィンガーオフ」ジェスチャの二次元(x,y)位置の間の距離が相対的に小さい場合、結合されたジェスチャは「スミアリング(smearing)」、「スマッジング(smudging)」、または「フリッキング(flicking)」と呼ばれてよい。任意の数の二次元または三次元のシンプルまたは複雑なジェスチャは、複数の指の接触、手のひらまたはこぶしの接触、あるいは、デバイスへの近接性を含む(それらに限定されない)任意の数の他のジェスチャを形成するようにして結合されてよい。ジェスチャはまた、加速度計、ジャイロスコープ、または他の運動センサを有するデバイスによって認識され、かつ電気信号に変換される任意の形態の手の動きであってよい。そのような電気信号は、例えばバーチャルなサイコロを振動させるなど動的効果を起動することができ、ここでセンサは動的効果を生成するユーザの意図をキャプチャする。
【0012】
一実施形態は、ディスク、メモリ、または任意のコンピュータ可読記憶媒体上で1つ以上のダイナミックハプティック効果をコード化できるシステムである。1種類のダイナミックハプティック効果は、第1の補間値と第2の補間値との間の値であるダイナミック値に基づいて第1のハプティック効果および第2のハプティック効果を補間することによって生成され得るハプティック効果である。第1の補間値または第2の補間値のいずれかと等しいダイナミック値は、「第1の補間値と第2の補間値との間」とみなされる。より具体的には、ダイナミックハプティック効果の各パラメータについての値は、補間関数を使用して、第1のハプティック効果のパラメータの値を第2のハプティック効果のパラメータの値に補間することによって計算される。ダイナミックハプティック効果の各パラメータ値の補間は、ダイナミック値が、第1の補間値と第2の補間値との間の範囲内である場合に基づいてもよい。ダイナミックハプティック効果はさらに、「GENERATING HAPTIC EFFECTS FOR DYNAMIC EVENTS」という発明の名称である、2012年7月11日に出願された米国特許出願第13/546,351号(その内容は本明細書に参照として組み込まれている)に記載されている。ダイナミックハプティック効果は、ハプティック効果信号がダイナミックハプティック効果を表す場合、ハプティック効果信号を使用してコード化されてもよい。ハプティック効果信号は、ディスク、メモリ、または任意のコンピュータ可読記憶媒体に存続してもよい。
【0013】
実施形態によれば、システムは、各々のキーフレームがハプティック効果および対応する値を含み得る場合、1つ以上のキーフレームとして各々のダイナミックハプティック効果を定義できる。したがって、システムは1つ以上のダイナミックハプティック効果の定義を生成できる。システムは、ハプティック効果ファイル内に1つ以上のダイナミックハプティック効果の定義を記憶できる。システムはさらに、ハプティック効果ファイルから1つ以上のダイナミックハプティック効果の定義を読み出すことができる。システムはさらに、ダイナミック値を受信でき、受信したダイナミック値に基づいて、1つ以上のダイナミックハプティック効果を生成するために1つ以上のダイナミックハプティック効果の定義を解釈できる。
【0014】
別の実施形態によれば、システムは、各々のキーフレームがハプティック効果および値を含み得る場合、1つ以上のキーフレームを受信できる。そのシステムは1つ以上のキーフレームを使用してハプティック効果信号を生成できる。そのシステムはさらに、ハプティック効果ファイル内にハプティック効果信号を記憶できる。そのシステムはさらに、ハプティック効果ファイルからハプティック効果信号を読み出すことができる。そのシステムはさらに、ハプティック効果信号に従って駆動信号をハプティック出力デバイスに適用できる。そのシステムはさらに、ハプティック出力デバイスを使用して駆動信号を生成できる。この実施形態において、1つ以上のキーフレームは、ハプティック効果信号により生成されるダイナミックハプティック効果の1つ以上の入力パラメータを含んでもよい。
【0015】
図1は、本発明の一実施形態に係るシステム10のブロック図を示す。一実施形態において、システム10はデバイスの一部であり、システム10はデバイスのためのハプティックコード化機能を提供する。単一のシステムとして示されるが、システム10の機能は分散システムとして実装されてもよい。システム10は、情報を通信するためのバス12または他の通信機構、および情報を処理するためのバス12に連結されるプロセッサ22を含む。プロセッサ22は汎用または特定目的のプロセッサのいずれの種類であってもよい。システム10はさらに、情報を記憶するためのメモリ14およびプロセッサ22により実行される命令を含む。メモリ14は、ランダムアクセスメモリ(「RAM」)、リードオンリメモリ(「ROM」)、磁気ディスクもしくは光ディスクなどの静的記憶デバイス、または任意の他の種類のコンピュータ可読媒体の任意の組み合わせから構成されてもよい。
【0016】
コンピュータ可読媒体は、プロセッサ22によりアクセスされ得る任意の利用可能な媒体であってもよく、揮発性媒体および非揮発性媒体の両方、リムーバルおよびノンリムーバル媒体、通信媒体、ならびに記憶媒体を含んでもよい。通信媒体は、搬送波または他の搬送機構などの変調データ信号内にコンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを含んでもよく、当該技術分野において公知の任意の他の形態の情報送信媒体を含んでもよい。記憶媒体は、RAM、フラッシュメモリ、ROM、消去可能プログラマブルリードオンリメモリ(「EPROM」)、電気的消去可能プログラマブルリードオンリメモリ(「EEPROM」)、レジスタ、ハードディスク、リムーバルディスク、コンパクトディスクリードオンリメモリ(「CD−ROM」)、または当該技術分野において公知の任意の他の形態の記憶媒体を含んでもよい。
【0017】
一実施形態において、メモリ14は、プロセッサ22により実行される場合、機能を提供するソフトウェアモジュールを記憶する。モジュールは、システム10のためのオペレーティングシステム機能を提供するオペレーティングシステム15、ならびに一実施形態におけるモバイルデバイスの残りを含む。モジュールはさらに、以下により詳細に開示されるようにダイナミックハプティック効果をコントロールするハプティックコード化モジュール16を含む。特定の実施形態において、ハプティックコード化モジュール16は複数のモジュールを含んでもよく、各個々のモジュールはダイナミックハプティック効果をコード化するための特定の個々の機能を提供する。システム10は典型的に、Immersion CorporationによるIntegrator(商標)アプリケーションなどの追加の機能を含むように1つ以上の追加のアプリケーションモジュール18を含む。
【0018】
リモートソースからデータを送信および/または受信する実施形態において、システム10はさらに、赤外線、無線、Wi−Fi、またはセルラーネットワーク通信などの移動無線ネットワーク通信を提供するために、ネットワークインターフェースカードなどの通信デバイス20を含む。他の実施形態において、通信デバイス20は、イーサネット(登録商標)接続またはモデムなどの有線ネットワーク接続を提供する。
【0019】
プロセッサ22はさらに、バス12を介して、グラフィック描写を表示するための液晶ディスプレイ(「LCD」)などのディスプレイ24またはユーザに対するユーザインターフェースに接続される。ディスプレイ24は、プロセッサ22から信号を送信し、受信するように構成される、タッチスクリーンなどのタッチセンサ入力デバイスであってもよく、マルチタッチのタッチスクリーンであってもよい。プロセッサ22はさらに、マウスまたはタッチペンなどのユーザがシステム10と相互作用できるキーボードまたはカーソルコントロール28に接続されてもよい。
【0020】
一実施形態において、システム10はさらに、アクチュエータ26を含む。プロセッサ22は、生成されたハプティック効果に関連するハプティック信号をアクチュエータ26に送信してもよく、次いで振動触覚ハプティック効果などのハプティック効果を出力する。アクチュエータ26はアクチュエータ駆動回路を含む。アクチュエータ26は、例えば、電気モータ、電磁気アクチュエータ、音声コイル、形状記憶合金、電気活性ポリマー、ソレノイド、偏心回転質量モータ(「ERM」)、線形共鳴アクチュエータ(「LRA」)、圧電アクチュエータ、高帯域アクチュエータ、電気活性ポリマー(「EAP」)アクチュエータ、静電摩擦ディスプレイ、または超音波振動発生器であってもよい。代替の実施形態において、システム10は、アクチュエータ26に加えて1つ以上の追加のアクチュエータを含んでもよい(
図1に示さず)。他の実施形態において、システム10とは別個のデバイスが、ハプティック効果を生成するアクチュエータを含み、システム10は、生成されたハプティック効果信号を、通信デバイス20を介して、そのデバイスに送信する。アクチュエータ26はハプティック出力デバイスの一例であり、ハプティック出力デバイスは、駆動信号に応答して振動触覚ハプティック効果などのハプティック効果を出力するように構成されるデバイスである。
【0021】
システム10はさらにデータベース30に作動可能に接続されてもよく、そのデータベース30は、モジュール16および18により使用されるデータを記憶するように構成されてもよい。データベース30は、操作可能なデータベース、分析的データベース、データウェアハウス、分散データベース、エンドユーザデータベース、外部データベース、ナビゲーションデータベース、インメモリデータベース、ドキュメント指向性データベース、リアルタイムデータベース、リレーショナルデータベース、オブジェクト指向性データベース、または当該技術分野において公知の任意の他のデータベースであってもよい。
【0022】
図2は、本発明の一実施形態に係る、一例のダイナミックハプティック効果の定義200を示す。一実施形態によれば、ダイナミックハプティック効果は1つ以上のキーフレームを含むように定義されてもよい。キーフレームは、ダイナミックハプティック効果を定義するように使用され得る基礎ハプティック効果の表示である。また、一実施形態によれば、ハプティック効果信号は1つ以上のキーフレームを使用して生成されてもよく、ハプティック効果信号は1つ以上のキーフレームを記憶できる信号である。1つ以上のキーフレームを使用してハプティック効果信号を生成することによって、1つ以上のキーフレームが生成され、続いてハプティック効果信号内に記憶される。ハプティック効果信号は、ハプティック効果ファイル内に記憶されてもよく、ハプティック効果ファイルから読み出されてもよい。
【0023】
キーフレームは基礎ハプティック効果の定義を含んでもよい。基礎ハプティック効果は、ハプティック効果の特徴(より具体的には、ハプティック効果により生成される運動感覚フィードバックおよび/または触覚フィードバックの特徴)を定義する1つ以上のパラメータを含み得るハプティック効果であり、ハプティック効果は、例えば振動ハプティック効果であってもよい。1つ以上のパラメータの例としては、振幅パラメータ、周波数パラメータ、および持続時間パラメータが挙げられ得る。基礎ハプティック効果の例としては、「MagSweepハプティック効果」、および「周期的ハプティック効果」が挙げられ得る。MagSweepハプティック効果は、運動感覚フィードバックおよび/または触覚フィードバック(振動など)を生成するハプティック効果である。周期的ハプティック効果は、反復運動感覚フィードバックおよび/または触覚フィードバック(振動パターンなど)を生成するハプティック効果である。反復パターンの例としては、正弦波、矩形、三角形、鋸歯の上側(sawtooth−up)および鋸歯の下側(sawtooth−down)などの特定の形状の反復パルスが挙げられる。
【0024】
キーフレームは補間値を含み得る。補間値は、現在の補間が発生する場合を特定する値である。一実施形態において、補間値は最小値から最大値までの整数値であってもよい。一例として、補間値は0〜10,000であってもよい。しかしながら、これは単なる例であり、補間値は任意の最小値から任意の最大値までの任意の値であってもよい。例えば、他の実施形態において、補間値は固定小数点または浮動小数点の数値であってもよい。補間値は1つ以上のビット内に記憶されてもよい。
【0025】
キーフレームはまた、必要に応じて、反復ギャップ値を含んでもよい。反復ギャップ値は、基礎ハプティック効果が連続してプレイされた場合、基礎ハプティック効果の2つの連続したインスタンスの間の時間周期を示す値である。一実施形態において、反復ギャップは基礎ハプティック効果の2つの連続したインスタンスの間のミリ秒数を示してもよい。
【0026】
例示した実施形態において、ダイナミックハプティック効果の定義200は、4つのキーフレーム、キーフレーム210、220、230、および240を含む。しかしながら、これは単なる一例の実施形態であり、代替の実施形態において、ダイナミックハプティック効果の定義は任意の数のキーフレームを含んでもよい。キーフレーム210は、「周期1」の基礎ハプティック効果の参照、「0」の補間値、および「10ms」の反復ギャップ値を含む。基礎ハプティック効果の参照「周期1」とは基礎ハプティック効果260を指し、これはまた、ダイナミックハプティック効果の定義200内に含まれる。このように、キーフレーム210は、「0」の補間値についての基礎ハプティック効果として基礎ハプティック効果260を定義する。キーフレーム210はさらに、基礎ハプティック効果260が連続してプレイされる場合、基礎ハプティック効果260の各々の連続したインスタンスの間に10msの時間周期が存在することを示す。同様に、キーフレーム220は、「周期3」の基礎ハプティック効果の参照、「10」の補間値、および「15ms」の反復ギャップ値を含む。基礎ハプティック効果の参照「周期3」とは、基礎ハプティック効果270を指し、これはまた、ダイナミックハプティック効果の定義200内に含まれる。このように、キーフレーム220は、「10」の補間値についての基礎ハプティック効果として基礎ハプティック効果270を定義する。キーフレーム220はさらに、基礎ハプティック効果270が連続してプレイされる場合、基礎ハプティック効果270の各々の連続したインスタンスの間に15msの時間周期が存在することを示す。
【0027】
同様に、キーフレーム230は、「周期1」の基礎ハプティック効果の参照、「20」の補間値、および「5ms」の反復ギャップ値を含む。以前に記載したように、基礎ハプティック効果の参照「周期1」とは、基礎ハプティック効果260を指し、これはまた、ダイナミックハプティック効果の定義200内に含まれる。このように、キーフレーム230は、「20」の補間値についての基礎ハプティック効果として基礎ハプティック効果260を定義する。このことは、基礎ハプティック効果が1つより多い補間値についての基礎ハプティック効果と定義され得ることを示す。キーフレーム230はさらに、基礎ハプティック効果260が連続してプレイされる場合、基礎ハプティック効果260の各々の連続したインスタンスの間に5msの時間周期が存在することを示す。同様に、キーフレーム240は、「周期2」の基礎ハプティック効果の参照、「30」の補間値、および「20ms」の反復ギャップ値を含む。基礎ハプティック効果の参照「周期2」とは、基礎ハプティック効果280を指し、これはまた、ダイナミックハプティック効果の定義200内に含まれる。このように、キーフレーム240は、「30」の補間値についての基礎ハプティック効果として基礎ハプティック効果280を定義する。キーフレーム240はさらに、基礎ハプティック効果280が連続してプレイされた場合、基礎ハプティック効果280の各々の連続したインスタンスの間に20msの時間周期が存在することを示す。
【0028】
一実施形態によれば、ダイナミックハプティック効果は、ダイナミックハプティック効果の終了の指標も含むように定義されてもよい。ダイナミックハプティック効果の終了の指標により、ダイナミックハプティック効果が追加のキーフレームを1つも含まないことを示す。以下に非常に詳細に記載するように、ダイナミックハプティック効果の定義を解釈するデバイスは、ダイナミックハプティック効果の定義のコンテンツを連続して解釈するように構成されてもよい。このように、指標はデバイスにダイナミックハプティック効果の定義の終了を示してもよい。一実施形態において、ダイナミックハプティック効果の終了の指標は追加のキーフレームを考慮されてもよい。例示した実施形態において、ダイナミックハプティック効果の定義200は、ダイナミックハプティック効果の定義200の終了を示すダイナミックハプティック効果の定義の終了250を示す。
【0029】
図3は、本発明の一実施形態に係る、一例のキーフレームの定義300を示す。以前に記載したように、ダイナミックハプティック効果の定義は1つ以上のキーフレームを含む。その実施形態によれば、キーフレームの定義は1つ以上の特性を含んでもよい。1つ以上の特性の各特性は値を含んでもよい。
【0030】
キーフレームの定義はタイプ特性を含んでもよい。一実施形態において、タイプ特性はキーフレームの定義の第1の特性である。タイプ特性は、キーフレームが、ダイナミックハプティック効果の定義についての基礎ハプティック効果を含むキーフレームまたはダイナミックハプティック効果の定義の終了を示すキーフレームであるかどうかを示してもよい。例示した実施形態において、キーフレームの定義300はキーフレームの定義300により定義されるキーフレームのタイプを示すタイプ特性310を含む。
【0031】
キーフレームの定義はまた、基礎ハプティック効果の特性も含んでもよい。基礎ハプティック効果の特性はキーフレームについての基礎ハプティックに対する参照を記憶できる。例示した実施形態において、キーフレームの定義300は、キーフレームの定義300により定義されるキーフレームについての基礎ハプティック効果に対する参照を含む基礎ハプティック効果特性320(「効果ネーム」として
図3において識別した)を含む。
【0032】
キーフレームの定義はまた、補間特性を含んでもよい。補間特性は補間値を記憶でき、その補間値は、現在の補間が発生する場合を特定する。一実施形態において、補間値は最小値から最大値までの整数値であってもよい。一例として、補間値は0〜10,000であってもよい。補間値は1つ以上のビット内に記憶できる。例示した実施形態において、キーフレームの定義300はキーフレームの定義300により定義されるキーフレームについての補間値を含む補間特性330を含む。
【0033】
キーフレームの定義はまた、任意選択に反復ギャップ特性(
図3に例示せず)を含んでもよい。反復ギャップ特性は、基礎ハプティック効果が連続してプレイされる場合、キーフレームについての基礎ハプティック効果の2つの連続したインスタンスの間の時間周期を示す反復ギャップ値を記憶できる。一実施形態において、反復ギャップはキーフレームについての基礎ハプティック効果の2つの連続したインスタンスの間のミリ秒数を示してもよい。
【0034】
一実施形態において、ハプティック効果ファイルは1つ以上のダイナミックハプティック効果を記憶するように構成されるコンピュータファイルであり、そのハプティック効果ファイルは、ディスク、メモリ、または任意のコンピュータ可読記憶媒体上に存続されてもよい。その実施形態によれば、ハプティック効果ファイルは、基礎ハプティック効果記憶ブロックおよびフレームリストブロックを使用して1つ以上のダイナミックハプティック効果の定義を記憶できる。基礎ハプティック効果記憶ブロックは、ダイナミックハプティック効果が参照できる1つ以上の基礎ハプティック効果を記憶するように使用されてもよい。フレームリストブロックはダイナミックハプティック効果の定義に対応する1つ以上のキーフレームの定義を記憶するように使用されてもよい。基礎ハプティック効果記憶ブロックおよびフレームリストブロックをここで非常に詳細に記載する。
【0035】
図4は、本発明の一実施形態に係る、一例の基礎ハプティック効果記憶ブロック400を示す。以前に記載したように、ダイナミックハプティック効果の定義は1つ以上の基礎ハプティック効果を含んでもよく、少なくとも1つの記憶された基礎ハプティック効果は、ダイナミックハプティックの定義の少なくとも1つのキーフレームにより参照される。一実施形態において、1つ以上の基礎ハプティック効果は基礎ハプティック効果記憶ブロック400などの基礎ハプティック効果記憶ブロック内に記憶されてもよく、基礎ハプティック効果記憶ブロックはダイナミックハプティック効果の定義内に記憶される。
【0036】
その実施形態によれば、1つ以上の基礎ハプティック効果が基礎ハプティック効果記憶ブロック400内にメッセージストリームとして記憶されてもよい。一例のメッセージフォーマットは、「コードネームz2」プロトコルメッセージフォーマットである。例示した実施形態において、基礎ハプティック効果は、必要に応じてSetPeriodicModifierメッセージが先行するSetPeriodicメッセージにより定義される。このように、基礎ハプティック効果が関連したエンベロープを有する場合、SetPeriodicModifierメッセージが、ブロックにおけるSetPeriodicメッセージ前に現れ得る。そうでなければ、SetPeriodicメッセージのみがブロックにおいて現れ得る。このように、この実施形態によれば、基礎ハプティック効果記憶ブロック(
図4の基礎ハプティック効果記憶ブロック400など)に記憶される場合、基礎ハプティック効果は、(a)単一のSetPeriodicメッセージにおける8バイトのメモリ(デフォルトエンベロープを仮定する);または(b)第1のSetPeriodicModifierメッセージにおける16バイトのメモリ、続いてその後のSetperiodicメッセージを取ってもよい。
【0037】
この実施形態によれば、基礎ハプティック効果記憶ブロック(
図4の基礎ハプティック効果記憶ブロック400など)は1つ以上の基礎ハプティック効果の定義を含んでもよく、各々の基礎ハプティック効果の定義は基礎ハプティック効果に対応する。1つ以上の基礎ハプティック効果の定義は基礎ハプティック効果記憶ブロック内で連続的であってもよく、各々、インデックスと関連されてもよい。
【0038】
示した実施形態において、基礎ハプティック効果記憶ブロック400は、5つの基礎ハプティック効果:効果0、効果1、効果2、効果3、および効果4を含む。効果0は基礎ハプティック効果記憶ブロック400内に位置する第1の基礎ハプティック効果であり、効果1は基礎ハプティック効果記憶ブロック400内に位置する第2の基礎ハプティック効果であり、効果2は基礎ハプティック効果記憶ブロック400内に位置する第3の基礎ハプティック効果であり、効果3は基礎ハプティック効果記憶ブロック400内に位置する第4の基礎ハプティック効果であり、効果4は基礎ハプティック効果記憶ブロック400内に位置する第5の基礎ハプティック効果である。第5の基礎ハプティック効果(すなわち効果0、効果1、効果2、効果3、および効果4)の各々は、単一のSetPeriodicメッセージまたはSetPeriodicModifierメッセージおよびSetPeriodicメッセージの組み合わせのいずれかを含む基礎ハプティックの定義を含む。
【0039】
図5は、本発明の一実施形態に係る、一例のフレームリストブロック500を示す。以前に記載したように、ダイナミックハプティック効果の定義は1つ以上のキーフレームを含んでもよく、各々のキーフレームは基礎ハプティック効果を参照してもよい。一実施形態において、1つ以上のキーフレームはフレームリストブロック500などのフレームリストブロック内に記憶されてもよく、そのフレームリストブロックはダイナミックハプティック効果の定義内に記憶されてもよい。
【0040】
この実施形態によれば、フレームリストブロック500などのフレームリストブロックは第1のキーフレームの定義についてのタイプ特性を含む。タイプ特性に応じて、フレームリストブロックはさらに、基礎ハプティック効果特性、補間特性、反復ギャップ特性、またはそれらの組み合わせなどの第1のキーフレームの定義に関連する1つ以上の特定を含む。フレームリストブロックはさらに、第2のキーフレームの定義についてのタイプ特性を含み、その第2のキーフレームの定義は第1のキーフレームの定義の終了を示す。タイプ特性に応じて、フレームリストブロックはさらに、基礎ハプティック効果特性、補間特性、反復ギャップ特性、またはそれらの組み合わせなどの第2のキーフレームの定義に関連する1つ以上の特性を含む。これは、フレームリストブロックの各々のキーフレームの定義にわたって継続する。フレームリストブロックはさらに、ダイナミックハプティック効果の終了を示すタイプ特性を含む。この実施形態によれば、フレームリストブロックのキーフレームの定義は順次的である。つまり、フレームリストブロックのイベントは、それらがフレームリストブロック内に位置する順序で処理される。
【0041】
この実施形態によれば、フレームリストブロックの1つ以上の特性が、単一のヘッダーバイト、続いて任意選択のデータバイトを使用してコード化されてもよい。フレームリストブロックの1つ以上の特性の一例のコード化スキームは以下の通りである:
【0043】
この実施形態によれば、キーフレームタイプ特性およびダイナミックハプティック効果タイプ特性の終了はキーフレームの定義のタイプ特性に対応し、EffectNameAsOffSetU8特性はキーフレームの定義の基礎ハプティック効果特性に対応し、InterpolantU16特性はキーフレームの定義の補間特性に対応し、RepeatGapU16特性はキーフレームの定義の反復ギャップ特性に対応する。
【0044】
示した実施形態において、フレームリストブロック500はキーフレームの定義510、520、および530を含む。キーフレームの定義510および520は各々、基礎ハプティック効果キーフレームについての定義である。キーフレームの定義530はフレームリストブロック内に記憶されたダイナミックハプティック効果の終了の指標である。フレームリストブロック500の左の欄は、キーフレームの定義510、520、および530の各々についてメモリ内に見出されるバイトストリームを示す。フレームリストブロックの右の列は、キーフレームの定義510、520、および530の各々についての各々の特性の意味を示す。
【0045】
示した実施形態によれば、キーフレームの定義510は、キーフレームの定義510の開始を示すキーフレームのタイプ特性(
図5に示した「キーフレームイベント(KeyFrame Event)」)を含む。キーフレームの定義510はさらに、キーフレームの定義510についての基礎ハプティック効果に対する参照を記憶する基礎ハプティック効果特性(
図5に示した「EffectNameAsOffsetU8」)を含み、基礎ハプティック効果特性はヘッダーバイトおよびオフセットバイトを含む。キーフレームの定義510はさらに、現在の補間が発生する場合を特定する補間値を記憶する補間特性(
図5に示した「InterpolantU16」)を含み、補間特性は、ヘッダーバイト、最上位ビット(「MSB」)および最下位ビット(「LSB」)を含む。キーフレームの定義510はさらに、キーフレームについての基礎ハプティック効果の2つの連続したインスタンスの間の時間周期を示す反復ギャップ値を記憶する反復ギャップ特性(
図5に示した「RepeatGapU16」)を含み、反復ギャップ特性はヘッダーバイト、MSB、およびLSBを含む。
【0046】
さらに、キーフレームの定義520はまた、キーフレームの定義520の開始を示すキーフレームのタイプ特性(
図5に示した「キーフレームイベント(KeyFrame Event)」)を含む。キーフレームの定義520はさらに、キーフレームの定義520についての基礎ハプティック効果に対する参照を記憶する基礎ハプティック効果特性(
図5に示した「EffectNameAsOffsetU16」)を含み、基礎ハプティック効果特性はヘッダーバイト、基礎ハプティック効果の定義MSB、および基礎ハプティック効果の定義LSBを含む。キーフレームの定義520はさらに、現在の補間が発生する場合を特定する補間値を記憶する補間特性(
図5に示した「InterpolantU16」)を含み、補間特性はヘッダーバイト、MSB、およびLSBを含む。
図5に示したように、キーフレームの定義510と対照的に、キーフレームの定義520は反復ギャップ特性を含まない。最終的に、キーフレームの定義530は、ダイナミックハプティック効果の定義の終了を示すダイナミックハプティック効果のタイプ特性(
図5に示した「EndofDynamicHapticEffect」)の終了を含む。
【0047】
一実施形態によれば、ダイナミックハプティック効果の定義(
図2のダイナミックハプティック効果の定義200など)はハプティック効果ファイル内に保存されてもよい。以前に記載したように、ハプティック効果ファイルは、1つ以上のダイナミックハプティック効果を保存するように構成されるコンピュータファイルである。ダイナミックハプティック効果の定義はハプティック効果ファイル内に保存されてもよく、ハプティック効果ファイルはディスクまたはメモリなどのコンピュータ可読媒体内に存続されてもよい。ダイナミックハプティック効果の定義は、後でハプティック効果から読み出され、解釈されてもよい。ダイナミックハプティック効果の定義の解釈に基づいて、ダイナミックハプティック効果は、第1の補間値と第2の補間値との間の値であるダイナミック値に基づいて第1のハプティック効果および第2のハプティック効果を補間することによって生成されてもよい。より具体的には、ダイナミックハプティック効果の各パラメータについての値は、補間関数を使用して、第1のハプティック効果のパラメータの値を第2のハプティック効果のパラメータの値に補間することにより計算されてもよい。ダイナミックハプティック効果の各パラメータ値の補間は、ダイナミック値が、第1の補間値と第2の補間値との間の範囲内である場合に基づいてもよい。例えば、第1の補間値が「0」であり、第2の補間値が「100」である場合、「50」のダイナミック値により、「0」の第1の補間値に関連する第1のハプティック効果は、「100」の第2の補間値に関連する第2のハプティック効果と補間でき、ダイナミックハプティック効果を生成する。第1のハプティック効果の各パラメータ値は補間関数に基づいて第2の値のパラメータ値と補間されてもよく、それにより、ダイナミックハプティック効果のパラメータ値は、第1のハプティック効果のパラメータ値および第2のハプティック効果のパラメータ値の両方に基づく。ダイナミックハプティック効果の生成に関する更なる詳細は、「GENERATING HAPTIC EFFECTS FOR DYNAMIC EVENTS」という発明の名称の2012年7月11日に出願された米国特許出願第13/546,351号に更に記載されている。
【0048】
一実施形態によれば、ダイナミックハプティック効果の定義(
図2のダイナミックハプティック効果の定義200など)はハプティック効果信号を生成するために使用されてもよく、そのハプティック効果信号はハプティック効果ファイル内に保存されてもよい。ハプティック効果信号は、後でハプティック効果ファイルから読み出されてもよい。さらに、駆動信号がハプティック効果信号に従ってハプティック出力デバイスに適用されてもよい。駆動信号はさらに、ハプティック出力デバイスを使用して生成されてもよい。
【0049】
ハプティック効果ファイルは多くの異なるフォーマットのうちの1つを有してもよい。特定の実施形態において、ハプティック効果ファイルは拡張マークアップ言語(「XML」)フォーマットを有してもよい。特定の他の実施形態において、ハプティック効果ファイルはバイナリフォーマットを有してもよい。
【0050】
XMLフォーマットを有するハプティック効果ファイルの一例はImmersion Vibration Source(「IVS」)ハプティック効果ファイルである。ダイナミックハプティック効果の定義を含む一例のIVSハプティック効果ファイルを以下に与える:
【数1】
【0051】
上記に与えた例のIVSハプティック効果ファイルにおいて、第1のタグ、<interpolated−effect name>は、IVSハプティック効果ファイル内に保存されるダイナミックハプティック効果のネームを識別する。例のIVSハプティック効果ファイルにおける次の3つのタグは一連のキーフレーム(key−frame)タグであり、その各々のキーフレームタグはダイナミックハプティック効果のキーフレームを表す。各々のキーフレームタグは、2つのパラメータ、キーフレーム補間パラメータおよび効果パラメータを含んでもよい。キーフレーム補間パラメータはキーフレームについての補間値を表す。効果パラメータはキーフレームについての基礎ハプティック効果のネームを表す。さらに、各々のキーフレームタグは必要に応じて、第3のパラメータ、反復ギャップパラメータを含んでもよい。反復ギャップパラメータはキーフレームについての反復ギャップを表す。キーフレームタグが反復ギャップパラメータを含まない場合、キーフレームは反復ギャップを含まず、このことはキーフレームについての基礎ハプティック効果が反復されないことを意味する。例のIVSハプティック効果ファイルにおいて、第1のキーフレームタグは、「0」の値を有するキーフレーム補間パラメータ、「basis−effect−0−name」の値を有する効果パラメータ、および「0」の値を有する反復ギャップパラメータを含む。第2のキーフレームタグは、「0.5」の値を有するキーフレーム補間パラメータ、「basis−effect−1−name」の値を有する効果パラメータ、および「15」の値を有する反復ギャップパラメータを含む。第3のキーフレームタグは、「1」の値を有するキーフレーム補間パラメータ、および「basis−effect−2−name」の値を有する効果パラメータを含み、反復ギャップパラメータを含まない。その後のタグ、「</interpolated−effect>」は、IVSハプティック効果ファイル内に保存されるダイナミックハプティック効果の終了を識別する。
【0052】
一実施形態によれば、デバイスは、上記に与えた例のIVSハプティック効果ファイルなどのIVSハプティック効果ファイルを読み出すことができ、IVSハプティック効果ファイル内に保存されるダイナミックハプティック効果の定義を解釈でき、ダイナミックハプティック効果を生成するためにIVSハプティック効果ファイル内に保存される値を使用できる。例えば、デバイスはランタイムにおいて補間値を与えてもよく、デバイスは、IVSハプティック効果ファイル内に保存されるダイナミックハプティック効果の定義を解釈してもよく、キーフレーム補間値が間に存在することを決定してもよい。次いでデバイスは、ダイナミックハプティック効果を生成するために2つのキーフレームの基礎ハプティック効果の間で補間してもよい。
【0053】
バイナリフォーマットを有するハプティック効果ファイルの別の例はImmersion Vibration Target(「IVT」)ハプティック効果ファイルである。ダイナミックハプティック効果の定義を含む例のIVTハプティック効果ファイルを以下に与える。
【数2】
【0054】
上記に与えた例のIVTハプティック効果ファイルは2つのキーフレームの定義を含み、その各キーフレームの定義は16進数「0xC1」により識別される。一実施形態によれば、16進値、例えば「0xCy」(ここで「y」は任意のゼロでない16進数の1桁である)はIVTハプティック効果ファイル内に保存されるキーフレームの開始を識別できる。さらに、この実施形態によれば、16進値「0xCy」が、IVTハプティック効果ファイル内の最初のこのような16進値である場合、16進値はまた、IVTハプティック効果ファイル内に保存されるダイナミックハプティック効果の開始を示してもよく、ダイナミックハプティック効果は1つ以上のキーフレームを含む。上記に与えた例のIVTハプティック効果ファイルにおいて、「0xC1」の第1の例は保存されたダイナミックハプティック効果の開始を示し、また、保存されたダイナミックハプティック効果内の第1のキーフレーム、「KeyFrame1」の開始を示す。また、例のIVTハプティック効果ファイルにおいて、「0xC1」の第2の例は、保存されたダイナミックハプティック効果内の第2のキーフレーム、「KeyFrame2」の開始を示す。
【0055】
各キーフレームに関して、例のIVTハプティック効果ファイルはさらに、キーフレームを定義するデータを含む。例えば、一実施形態によれば、例のIVTハプティック効果ファイルはさらに、16進値、例えば、キーフレームについての基礎ハプティック効果特性、および基礎ハプティック効果特性についての値を識別する「0xE0」または「0xE1」を含む。例のIVTハプティック効果ファイルにおいて、第1のキーフレームについて、「0xE0」の例は、第1のキーフレームについての基礎ハプティック効果特性を識別し、「0」の値は、第1のキーフレームの基礎ハプティック効果特性についての第1の基礎ハプティック効果を識別する。同様に、第2のキーフレームについて、「0xE0」の例は、第2のキーフレームについての基礎ハプティック効果特性を識別し、「1」の値は、第2のキーフレームの基礎ハプティック効果特性についての第2の基礎ハプティック効果を識別する。
【0056】
その実施形態に係る、キーフレームを定義するデータの一部として、例のIVTハプティック効果ファイルはさらに、16進値、例えば、キーフレームについての補間特性を識別する「0xE6」、および補間特性についての値を含む。例のIVTハプティック効果ファイルにおいて、第1のキーフレームについて、「0xE6」の例は、第1のキーフレームについての補間特性を識別し、「0」の値は、第1のキーフレームの補間特性についての補間値を識別する。同様に、第2のキーフレームについて、「0xE6」の例は、第2のキーフレームについての補間特性を識別し、「100」の値は第2のキーフレームの補間特性についての補間値を識別する。
【0057】
その実施形態に係る、キーフレームを定義するデータの一部として、例のIVTハプティック効果ファイルはさらに必要に応じて、16進値、例えば、キーフレームについての反復ギャップ特性を識別する「0xE2」、および反復ギャップ特性についての1つ以上の値を含む。例のIVTハプティック効果ファイルにおいて、第1のキーフレームについて、「0xE2」の例は、第1のキーフレームについての反復ギャップ特性を識別し、「50」の値は、第1のキーフレームの反復ギャップ特性についての「LSB」反復ギャップ値を識別し、「0」の値は、第1のキーフレームの反復ギャップ特性についての「MSB」反復ギャップ値を識別する。同様に、第2のキーフレームについて、「0xE2」の例は、第2のキーフレームについての反復ギャップ特性を識別し、「150」の値は、第2のキーフレームの反復ギャップ特性についてのLSB反復ギャップ値を識別し、「0」の値は、第2のキーフレームの反復ギャップ特性についてのMSB反復ギャップ値を識別する。
【0058】
例のIVTハプティック効果ファイルはさらに、16進値、例えば、IVTハプティック効果ファイル内に保存されるダイナミックハプティック効果の終了を識別する「0xCF」を含む。例のIVTハプティック効果ファイルにおいて、「0XCF」の例は保存されたダイナミックハプティック効果の終了を識別する。
【0059】
一実施形態によれば、デバイスは、上記に与えた例のIVTハプティック効果ファイルなどのIVTハプティック効果ファイルを読み取ることができ、IVTハプティック効果ファイル内に保存されるダイナミックハプティック効果の定義を解釈でき、ダイナミックハプティック効果を生成するためにIVTハプティック効果ファイル内に保存される値を使用できる。例えば、デバイスはランタイムにおいて補間値を与えてもよく、デバイスは、IVTハプティック効果ファイル内に保存されるダイナミックハプティック効果の定義を解釈してもよく、キーフレーム補間値が間に存在することを決定してもよい。次いでデバイスはダイナミックハプティック効果を生成するために2つのキーフレームの基礎ハプティック効果の間で補間してもよい。
【0060】
一実施形態において、IVTハプティック効果ファイルは、ダイナミックハプティック効果の定義に加えて、基礎ハプティック効果などの他のハプティック効果の定義を含んでもよい。例えば、IVTハプティック効果ファイルは、MagSweepハプティック効果の定義、周期的ハプティック効果の定義、または他の種類の基礎ハプティック効果の定義、例えば「波形ハプティック効果」の定義を含んでもよい。「波形ハプティック効果」は、十分に正確に制御されたフィードバックを生じる特定の信号に基づいてフィードバックを生成するハプティック効果である。その実施形態によれば、16進値は、基礎ハプティック効果の開始と比較して、ダイナミックハプティック効果の開始を識別してもよい。次いでデバイスがIVTハプティック効果ファイルを読み出す場合、デバイスは基礎ハプティック効果の定義からダイナミックハプティック効果の定義を識別できる。
【0061】
一例の実施形態において、16進値、例えば「0xF1」、「0xF2」、または「0xFF」は、「タイムラインハプティック効果」の開始を識別してもよい。「タイムラインハプティック効果」は、経時的に予定される1つ以上の基礎ハプティック効果を含んでもよい。さらに、16進値、例えば「0x20」、「0x30」、「0x40」および「0x50」は、基礎ハプティック効果、例えばMagSweepハプティック効果、周期ハプティック効果、または波形ハプティック効果の開始を識別してもよい。さらに、以前に記載したように、16進値、例えば「0xCy」(ここで、「y」は任意のゼロでない16進数の1桁である)は、ダイナミックハプティック効果の開始を識別してもよい。よって、デバイスがIVTハプティック効果ファイルを読み取る場合、デバイスは、IVTハプティック効果ファイル内に保存された16進値を読み取ることができ、定義されたハプティック効果がダイナミックハプティック効果であるか、または一部の他のハプティック効果であるかどうかを決定できる。定義されたハプティック効果がダイナミックハプティック効果であるか、または一部の他のハプティック効果であるかどうかを決定するための例の疑似コードを以下に与える。
【数3】
【0062】
しかしながら、この例の疑似コードは、上述の機能性を実装できるコード、および他の形態であってもよい機能性を実装するコードの単なる例示であり、それらは依然として本発明の範囲内である。さらに、ハプティック効果ファイルの2つの例のフォーマット(すなわち、IVSハプティック効果ファイル、およびIVTハプティック効果ファイル)が記載されているが、ハプティック効果ファイルは異なるフォーマットであってもよく、それらは依然として本発明の範囲内である。
【0063】
図6は、本発明の一実施形態に係る、ハプティックコード化モジュール(
図1のハプティックコード化モジュール16など)の機能性のフローチャートを示す。一実施形態において、
図6の機能性および
図7の機能性は、各々、メモリまたは別のコンピュータ可読媒体または有形的表現媒体内に保存され、プロセッサにより実行されるソフトウェアにより実装される。他の実施形態において、各々の機能性は、ハードウェアにより(例えば、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)などの使用により)、またはハードウェアとソフトウェアの任意の組み合わせにより実施されてもよい。さらに、代替の実施形態において、各々の機能性は類似要素を使用してハードウェアにより実施されてもよい。
【0064】
フローは開始し、610に進む。610において、ダイナミックハプティック効果は、第1のキーフレームおよび第2のキーフレームを含むと定義される。第1のキーフレームは第1の補間値および対応する第1のハプティック効果を含む。第2のキーフレームは第2の補間値および対応する第2のハプティック効果を含む。第1の補間値は、補間が対応する第1のハプティック効果を生じる場合を特定する値であってもよく、第2の補間値は、補間が対応する第2のハプティック効果を生じる場合を特定する値であってもよい。第1のキーフレームおよび第2のキーフレームは各々、反復ギャップ値を含んでもよい。第1のハプティック効果および第2のハプティック効果は各々、振動ハプティック効果であってもよく、各々、複数のパラメータを含んでもよい。複数のパラメータは、振幅パラメータ、周波数パラメータ、および持続時間パラメータを含んでもよい。ダイナミックハプティック効果はさらに、ダイナミックハプティック効果の終了の指標を含むように定義されてもよい。ダイナミックハプティック効果はさらに、ハプティック効果記憶ブロックを含むように定義されてもよく、第1のハプティック効果および第2のハプティック効果はハプティック効果記憶ブロック内に記憶されてもよい。ダイナミックハプティック効果は、さらなるキーフレームを含んでもよい。示した実施形態において、ダイナミックハプティック効果は2つのキーフレームを含むと定義されてもよく、各キーフレームはハプティック効果を含む。しかしながら、これは単に例の実施形態であり、代替の実施形態において、ダイナミックハプティック効果は3つ以上のキーフレームを含むと定義されてもよく、各キーフレームはハプティック効果を含む。フローは620に進む。
【0065】
620において、ハプティック効果ファイルが生成される。ハプティック効果ファイルのフォーマットはバイナリフォーマットであってもよい。あるいは、ハプティック効果ファイルのフォーマットはXMLフォーマットであってもよい。フローは630に進む。
【0066】
630において、ダイナミックハプティック効果はハプティック効果ファイル内に記憶される。ダイナミックハプティック効果は、ハプティック効果ファイル内に1つ以上の他のハプティック効果と共に記憶されてもよい。他のハプティック効果の少なくとも1つは別のダイナミックハプティック効果であってもよい。フローは640に進む。
【0067】
640において、ダイナミックハプティック効果はハプティック効果ファイルから読み出される。デバイスは、ハプティック効果ファイルを読み取ることができ、ダイナミックハプティック効果を読み出すことができる。ハプティック効果ファイルが1つ以上の他のハプティック効果を含む場合、デバイスは、ダイナミックハプティック効果内に含まれる値に基づいてダイナミックハプティック効果を識別してもよい。フローは650に進む。
【0068】
650において、ダイナミックハプティック効果が解釈される。デバイスは、ダイナミックハプティック効果内に含まれる第1のキーフレームおよび第2のキーフレームを連続して読み取ることによってダイナミックハプティック効果を解釈できる。ダイナミックハプティック効果がさらなるキーフレームを含む場合、デバイスはさらに、さらなるキーフレームを連続して読み取ることによってダイナミックハプティック効果を解釈してもよい。デバイスはさらに、ダイナミック値を受信し、受信したダイナミック値に基づいてダイナミックハプティック効果内に記憶される2つの基礎ハプティック効果を選択することによってダイナミックハプティック効果を解釈してもよい。デバイスはさらに、2つの補間値が2つの基礎ハプティック効果に対応する場合、受信したダイナミック値が、ダイナミックハプティック効果内に記憶される2つの補間値の範囲内にあるという事実に基づいてダイナミックハプティック効果内に記憶される2つの基礎ハプティック効果を選択してもよい。フローは660に進む。
【0069】
660において、ダイナミックハプティック効果が生成される。ダイナミックハプティック効果は2つの選択された基礎ハプティック効果に基づいて生成されてもよい。より具体的には、ダイナミックハプティック効果は、受信したダイナミック値に基づいて2つの選択された基礎ハプティック効果を補間することによって生成されてもよい。特定の実施形態において、ダイナミックハプティック効果の各パラメータについての値は、補間関数を使用して、第1の選択された基礎ハプティック効果のパラメータの値を、第2の選択された基礎ハプティック効果のパラメータの値に補間することによって計算されてもよい。ダイナミックハプティック効果の各パラメータ値の補間は、受信したダイナミック値が、第1の選択された基礎ハプティック効果に対応する第1の補間値と、第2の選択された基礎ハプティック効果に対応する第2の補間値との間の範囲内にある場合に基づいてもよい。示した実施形態において、ダイナミックハプティック効果は2つの基礎ハプティック効果を補間することによって生成されてもよい。このような補間は線形補間であってもよい。しかしながら、これは単に例の実施形態であり、代替の実施形態において、ダイナミックハプティック効果は3つ以上の基礎ハプティック効果を補間することによって生成されてもよい。このような補間はスプライン補間であってもよく、スプライン補間は、補間関数がスプラインと呼ばれる特定の種類の区分的多項式であり、補間関数が2つ以上のキーフレームを使用して補間値をダイナミックハプティック効果にマッピングできる関数である、補間の形態である。ダイナミックハプティック効果はさらに、アクチュエータにより生成されてもよい。次いでフローは終了に進む。
【0070】
図7は、本発明の別の実施形態に係る、ハプティックコード化モジュールの機能性のフローチャートを示す。フローは開始し、710に進む。710において、第1のキーフレームが受信され、第1のキーフレームは第1の補間値および第1のハプティック効果を有する。第1の補間値は、補間が第1のハプティック効果を生じる場合を特定する値であってもよい。第1のキーフレームは反復ギャップ値を含んでもよい。第1のハプティック効果は、振動ハプティック効果であってもよく、複数のパラメータを含んでもよい。複数のパラメータは、振幅パラメータ、周波数パラメータ、および持続時間パラメータを含んでもよい。フローは720に進む。
【0071】
720において、第2のキーフレームが受信され、第2のキーフレームは第2の補間値および第2のハプティック効果を有する。第2の補間値は、補間が第2のハプティック効果を生じる場合を特定する値であってもよい。第2のキーフレームは反復ギャップ値を含んでもよい。第2のハプティック効果は、振動ハプティック効果であってもよく、複数のパラメータを含んでもよい。複数のパラメータは、振幅パラメータ、周波数パラメータ、および持続時間パラメータを含んでもよい。フローは730に進む。
【0072】
730において、第1のキーフレームおよび第2のキーフレームを使用してハプティック効果信号が生成される。ハプティック効果信号はさらに、ハプティック効果信号の終了の指標を含んでもよい。ハプティック効果信号はさらに、ハプティック効果記憶ブロックを含んでもよく、第1のハプティック効果および第2のハプティック効果は、ハプティック効果記憶ブロック内に保存されてもよい。ハプティック効果信号はさらに、さらなるキーフレームを含んでもよい。示した実施形態において、ハプティック効果信号は2つのキーフレームを使用して生成されてもよく、各キーフレームはハプティック効果を含む。しかしながら、これは単なる例の実施形態であり、代替の実施形態において、ハプティック効果は3つ以上のキーフレームを使用して生成されてもよく、各キーフレームはハプティック効果を含む。フローは740に進む。
【0073】
740において、ハプティック効果信号はハプティック効果ファイル内に記憶される。ハプティック効果ファイルのフォーマットはバイナリフォーマットであってもよい。あるいは、ハプティック効果ファイルのフォーマットはXMLフォーマットであってもよい。ハプティック効果信号は、ハプティック効果ファイル内の1つ以上の他のハプティック効果信号と共に記憶されてもよい。他のハプティック効果信号の少なくとも1つは2つ以上のキーフレームを含んでもよい。フローは750に進む。
【0074】
750において、ハプティック効果信号はハプティック効果ファイルから読み出される。デバイスはハプティック効果ファイルを読み取ることができ、ハプティック効果信号を読み出すことができる。ハプティック効果ファイルが1つ以上の他のハプティック効果信号を含む場合、デバイスは、ハプティック効果信号内に含まれる値に基づいてハプティック効果信号を識別できる。フローは760に進む。
【0075】
760において、駆動信号が、ハプティック効果信号に従ってハプティック出力デバイスに適用される。これにより、ハプティック出力デバイスは、ハプティック効果信号と一致したダイナミックハプティック効果を生成できる。フローは770に進む。
【0076】
770において、ハプティック出力デバイスを使用して駆動信号が生成される。次いでフローは終了に進む。
【0077】
このように、一実施形態において、ディスク、メモリ、または任意のコンピュータ可読記憶媒体上に1つ以上のダイナミックハプティック効果を記憶できるシステムが提供されてもよい。そのシステムはさらに、1つ以上のダイナミックハプティック効果を読み出すことができ、1つ以上のダイナミックハプティック効果を出力できる。ダイナミックハプティック効果は複数のハプティック効果に基づいてもよい。従って、そのシステムは少しの数のハプティック効果に関する情報を記憶でき、さらにそのシステムは、少しの数のハプティック効果に基づいて数百または数千のダイナミックハプティック効果を出力できる。これにより、格納スペースを節約でき、ダイナミックハプティック効果を記憶し、読み出すためのより効果的な機構を可能にする。さらに、1つ以上のダイナミックハプティック効果を記憶するハプティック効果ファイルのフォーマットはフレキシブルであってもよく、それにより、ハプティック効果の設計者は少しの数のファイルフォーマットに限定されない。これにより、効果設計者がダイナミックハプティック効果を作成することがよりフレキシブルになり得る。
【0078】
本明細書全体にわたって記載される本発明の特徴、構造、または特性は、1つ以上の実施形態において任意の適切な方法で組み合わされてもよい。例えば、本明細書全体にわたって「一実施形態」、「一部の実施形態」、「特定の実施形態」、「特定の実施形態(複数)」または他の同様の言語の使用は、実施形態に関連して記載されている特定の特徴、構造、または特性が、本発明の少なくとも1つの実施形態に含まれてもよいという事実を指す。従って、本明細書全体にわたって「一実施形態」、「一部の実施形態」、「特定の実施形態」、「特定の実施形態(複数)」という用語または他の同様の言語の出現は、1つ以上の実施形態において任意の適切な方法で組み合わされ得る、同じグループの実施形態、および記載された特徴、構造または特性を必ずしも指すわけではない。
【0079】
当業者は、上記に説明した本発明が、異なる順序の段階、および/または開示されるものと異なる構成の要素で実施されてもよいことを容易に理解するであろう。したがって、本発明はこれらの好ましい実施形態に基づいて記載されているが、本発明の精神および範囲内にとどまりながら、特定の修飾、変更および代替の構成が明らかになることは当業者に自明である。したがって、本発明の境界および範囲を決定するために、添付の特許請求の範囲が参照されるべきである。
前記ハプティック効果ファイルから前記ダイナミックハプティック効果を読み出すステップは、前記ハプティック効果ファイルからハプティック効果信号を読み出すステップをさらに含み、
前記ハプティック効果信号は、前記ダイナミックハプティック効果を含み、
前記ダイナミックハプティック効果を生成するステップは、前記ハプティック効果信号に従ってハプティック出力デバイスに駆動信号を適用するステップをさらに含む、請求項1に記載の方法。
プロセッサによって実行されると、前記プロセッサに請求項1〜10のいずれか一項に記載のハプティック効果を生成させる、記憶された命令を有するコンピュータ可読媒体。
ハプティック効果信号をコード化するためのシステムであって、ハプティック出力デバイスと、メモリと、請求項1〜10のいずれか一項に記載のハプティック効果を生成するように構成されたプロセッサとを備えるシステム。
前記第1のハプティック効果および前記第2のハプティック効果を補間することによって、ダイナミックハプティック効果を生成するステップをさらに含む、請求項13に記載の方法。
プロセッサによって実行されると、前記プロセッサに、請求項13〜18のいずれか一項に記載のハプティック効果を生成させる、記憶された命令を有するコンピュータ可読媒体。
ハプティック効果信号をコード化するシステムであって、ハプティック出力デバイスと、メモリと、請求項13〜18のいずれか一項に記載のハプティック効果を生成するように構成されたプロセッサとを備えるシステム。