(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-11
(45)【発行日】2023-05-19
(54)【発明の名称】ハプティックエフェクトの符号化およびレンダリングシステム
(51)【国際特許分類】
G06F 3/01 20060101AFI20230512BHJP
【FI】
G06F3/01 560
【外国語出願】
(21)【出願番号】P 2018136552
(22)【出願日】2018-07-20
【審査請求日】2021-05-21
(32)【優先日】2017-08-03
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】500390995
【氏名又は名称】イマージョン コーポレーション
【氏名又は名称原語表記】IMMERSION CORPORATION
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】シャディ・アスフォー
(72)【発明者】
【氏名】エリック・ジャーヴェィス
(72)【発明者】
【氏名】ユーグ-アントワーヌ・オリヴァー
(72)【発明者】
【氏名】エリック・ラジュネス
【審査官】円子 英紀
(56)【参考文献】
【文献】特開2015-053046(JP,A)
【文献】特開2003-244654(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
(57)【特許請求の範囲】
【請求項1】
ハプティックエフェクトを生成するための方法であって、前記方法は、
メディアオブジェクトを取り込むステップと、
前記ハプティックエフェクトを記憶するためのハプティックストリームを生成するステップであって、前記ハプティックストリームは前記メディアオブジェクトに対応する、ステップと、
ハプティックエフェクトパターンとして
前記ハプティックストリームの前記ハプティックエフェクトを符号化するステップと
、
前記ハプティックエフェクトパターンに従って、プロセッサを前記ハプティックストリームの前記ハプティックエフェクトをレンダリングすることに従事させるステップと、
前記ハプティックエフェクトの各々に対する経過時間を決定するステップであって、前記経過時間は、前記ハプティックエフェクトの1つに対応するレンダリングの開始から経過した時間を表す、ステップと、
一時停止機能を選択的に開始するステップであって、前記一時停止機能は、前記メディアオブジェクトのレンダリング時間に対応するように、前記ハプティックエフェクトの各々に対する前記経過時間を更新する、ステップと
レジューム機能を選択的に開始するステップであって、前記レジューム機能は、前記対応する経過時間によって実行時間をオフセットすることによって、前記ハプティックエフェクトの各々の前記実行時間を更新する、ステップと、
シーク機能を選択的に開始するステップであって、前記シーク機能は、前記ハプティックストリームの前記ハプティックエフェクトの前記レンダリングを停止し、選択されたターゲット時間を受信し、前記ハプティックエフェクトパターンに従って、前記ハプティックストリームの前記ハプティックエフェクトの各々の前記経過時間をリセットする、ステップと、
前記ハプティックエフェクトパターンに従って、前記プロセッサを、前記ハプティックエフェクトを処理することから開放するステップと、
を含む、方法。
【請求項2】
前記ハプティックエフェクトパターン
は、前記ハプティックエフェクト
の各々の開始時間および期間を特定する、請求項1に記載の方法。
【請求項3】
前記メディアオブジェクトは、オーディオオブジェクトまたはビデオオブジェクトを含む、請求項1に記載の方法。
【請求項4】
前記ハプティックエフェクトパターンが、ハプティック有効時間期間に関連するデータを含むだけである、請求項1に記載の方法。
【請求項5】
前記ハプティックエフェクトパターンが、アクチュエータOFFとアクチュエータONとの時間期間を交互に行うことを示す複数の期間時間を含む、請求項1に記載の方法。
【請求項6】
前記メディアオブジェクトと前記ハプティックエフェクトパターンとが同期化される、請求項1に記載の方法。
【請求項7】
前記ハプティックエフェクトパターンは、前記ハプティックエフェクトの各々に対する1つまたは複数のパラメータを含み、前記パラメータは、ハプティックエフェクトの大きさ、周波数、およびタイプからなるグループから選択される、請求項1に記載の方法。
【請求項8】
デバイスであって、
プロセッサと、
前記プロセッサによる実行のための1つまたは複数のプログラムを記憶する、メモリとを含み、前記1つまたは複数のプログラムは、
メディアオブジェクトを取り込むことと、
ハプティックエフェクトを記憶するためのハプティックストリームを生成することであって、前記ハプティックストリームは前記メディアオブジェクトに対応することと、
ハプティックエフェクトパターンとして
前記ハプティックストリームの前記ハプティックエフェクトを符号化すること
と、
前記ハプティックエフェクトパターンに従って、プロセッサを前記ハプティックストリームの前記ハプティックエフェクトをレンダリングすることに従事させることと、
前記ハプティックエフェクトの各々に対する経過時間を決定することであって、前記経過時間は、前記ハプティックエフェクトの1つに対応するレンダリングの開始から経過した時間を表す、ことと、
一時停止機能を選択的に開始することであって、前記一時停止機能は、前記メディアオブジェクトのレンダリング時間に対応するように、前記ハプティックエフェクトの各々に対する前記経過時間を更新する、ことと
レジューム機能を選択的に開始することであって、前記レジューム機能は、前記対応する経過時間によって実行時間をオフセットすることによって、前記ハプティックエフェクトの各々の前記実行時間を更新する、ことと、
シーク機能を選択的に開始することであって、前記シーク機能は、前記ハプティックストリームの前記ハプティックエフェクトの前記レンダリングを停止し、選択されたターゲット時間を受信し、前記ハプティックエフェクトパターンに従って、前記ハプティックストリームの前記ハプティックエフェクトの各々の前記経過時間をリセットする、ことと、
前記ハプティックエフェクトパターンに従って、前記プロセッサを、前記ハプティックエフェクトを処理することから開放することのための命令を含む、デバイス。
【請求項9】
前記1つまたは複数のプログラムは、
前記ハプティックエフェクトパターン
は、前記ハプティックエフェクト
の各々の開始時間および期間を特定するための命令をさらに含む、請求項8に記載のデバイス。
【請求項10】
前記メディアオブジェクトは、オーディオオブジェクトまたはビデオオブジェクトを含む、請求項8に記載のデバイス。
【請求項11】
前記ハプティックエフェクトパターンが、ハプティック有効時間期間に関連するデータを含むだけである、請求項8に記載のデバイス。
【請求項12】
前記ハプティックエフェクトパターンが、アクチュエータOFFとアクチュエータONとの時間期間を交互に行うことを示す複数の期間時間を含む、請求項8に記載のデバイス。
【請求項13】
前記メディアオブジェクトと前記ハプティックエフェクトパターンとが同期化される、請求項8に記載のデバイス。
【請求項14】
前記ハプティックエフェクトパターンは、前記ハプティックエフェクトの各々に対する1つまたは複数のパラメータを含み、前記パラメータは、ハプティックエフェクトの大きさ、周波数、およびタイプからなるグループから選択される、請求項8に記載のデバイス。
【請求項15】
プロセッサによって実行されるように構成される1つまたは複数のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記1つまたは複数のプログラムは、
メディアオブジェクトを取り込むことと、
ハプティックエフェクトを記憶するためのハプティックストリームを生成することであって、前記ハプティックストリームは前記メディアオブジェクトに対応することと、
ハプティックエフェクトパターンとして
前記ハプティックストリームの前記ハプティックエフェクトを符号化することと、
前記ハプティックエフェクトパターンに従って、プロセッサを前記ハプティックストリームの前記ハプティックエフェクトをレンダリングすることに従事させることと、
前記ハプティックエフェクトの各々に対する経過時間を決定することであって、前記経過時間は、前記ハプティックエフェクトの1つに対応するレンダリングの開始から経過した時間を表す、ことと、
一時停止機能を選択的に開始することであって、前記一時停止機能は、前記メディアオブジェクトのレンダリング時間に対応するように、前記ハプティックエフェクトの各々に対する前記経過時間を更新する、ことと
レジューム機能を選択的に開始することであって、前記レジューム機能は、前記対応する経過時間によって実行時間をオフセットすることによって、前記ハプティックエフェクトの各々の前記実行時間を更新する、ことと、
シーク機能を選択的に開始することであって、前記シーク機能は、前記ハプティックストリームの前記ハプティックエフェクトの前記レンダリングを停止し、選択されたターゲット時間を受信し、前記ハプティックエフェクトパターンに従って、前記ハプティックストリームの前記ハプティックエフェクトの各々の前記経過時間をリセットする、ことと、
前記ハプティックエフェクトパターンに従って、前記プロセッサを、前記ハプティックエフェクトを処理することから開放することのための命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項16】
前記ハプティックエフェクトパターンは、前記ハプティックエフェクト
の各々の開始時間および期間を特定する、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項17】
前記メディアオブジェクトは、オーディオオブジェクトまたはビデオオブジェクトを含む、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項18】
前記ハプティックエフェクトパターンが、ハプティック有効時間期間に関連するデータを含むだけである、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項19】
前記ハプティックエフェクトパターンが、アクチュエータOFFとアクチュエータONとの時間期間を交互に行うことを示す複数の期間時間を含む、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
前記メディアオブジェクトと前記ハプティックエフェクトパターンとが同期化される、請求項15に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、一般的に、電子デバイスを目的としており、より詳細には、ハプティックエフェクトを符号化およびレンダリングする電子デバイスを目的としている。
【背景技術】
【0002】
電子デバイス製造業者は、ユーザのためのリッチなインターフェースを製作しようと努めている。従来のデバイスは、視覚および聴覚キューを使用してフィードバックをユーザに提供している。いくつかのインターフェースデバイスにおいては、運動フィードバック(例えば、アクティブおよび抵抗力フィードバック)および/または触覚フィードバック(例えば、振動、テクスチャ、温度変形など)がユーザに提供される。一般に、そのようなフィードバックは、「ハプティックフィードバック」または「ハプティックエフェクト」と総称される。ハプティックフィードバックは、電子デバイスとのユーザのインタラクションを直感的に向上させるとともに簡略化するキューを提供する。例えば、ハプティックエフェクトは、キューを電子デバイスのユーザに提供してユーザに特定のイベントをアラートし得る、または、現実的フィードバックを提供してシミュレート環境または仮想環境内でより優れた感覚没入を生成し得る。
【0003】
ハプティックフィードバックはまた、セルラ電話、スマートフォン、タブレット、ポータブルゲーミングデバイス、および様々な他のポータブル電子デバイスなどの様々なポータブル電子デバイスにおいて次第に組み込まれてきている。加えて、いくつかの既知のデバイスは、リアルタイムにまたはオーディオファイルに基づいてハプティックエフェクトを修正または生成する。
【発明の概要】
【課題を解決するための手段】
【0004】
本発明の実施形態は、従来技術を大幅に改善するハプティックエフェクトを生成するように構成される電子デバイスを目的としている。
【0005】
実施形態の特徴および利点は、以下の説明に記載されており、また、その説明から明らかとなるであろう、また、発明の実施によって理解されよう。
【0006】
ある例においては、ハプティックエフェクトを符号化および生成するための方法、非一時的媒体、およびシステムは、メディアオブジェクトを取り込むことと、ハプティックエフェクトをレンダリングするための1つまたは複数の時間期間を決定するためにメディアオブジェクトを分析することと、時間期間中にレンダリングするためのハプティックエフェクトを決定することと、ハプティックエフェクトの各々の開始時間および期間を特定するハプティックエフェクトパターンとしてハプティックエフェクトを符号化することと、ハプティックパターンに従ってハプティックエフェクトをレンダリングすることとを含む。
【0007】
前述の概要説明および以下の詳細説明の両方とも、一例および例示であり、発明を説明した例に限定することを意図していないことは理解されよう。
【0008】
さらなる実施形態、詳細、利点、および変形が、添付の図面を併用して行われる、望ましい実施形態の以下の詳細な説明から明らかとなるであろう。
【図面の簡単な説明】
【0009】
【
図1】本発明の例示的な実施形態による、ハプティック対応システム/デバイスの簡易ブロック図である。
【
図2】本発明の例示的な実施形態による、ハプティックパターンを生成するためのシステムを図示する簡易ブロック図である。
【
図3】本発明の例示的な実施形態による、ハプティックエフェクトパターンに基づいてハプティックエフェクトを符号化およびレンダリングするための機能性のフロー図を示す図である。
【
図4A】本発明の例示的な実施形態による、ハプティックエフェクトパターンおよびハプティックエフェクトタイムラインを示す図である。
【
図4B】本発明の例示的な実施形態による、ハプティックエフェクトパターンおよびハプティックエフェクトタイムラインを示す図である。
【
図4C】本発明の例示的な実施形態による、ハプティックエフェクトパターンおよびハプティックエフェクトタイムラインを示す図である。
【
図5】本発明の例示的な実施形態による、ハプティックフィードバックを生成およびレンダリングするためのシステム環境を示す図である。
【
図6】本発明の例示的な実施形態による、ハプティックエフェクトパターンに従ってレンダリングされるハプティックエフェクトのハプティックエフェクトタイムラインを示す図である。
【
図7】本発明の別の例示的な実施形態による、ハプティックエフェクトパターンに従ってレンダリングされるハプティックエフェクトのタイムラインを示す図である。
【
図8】本発明のさらに別の例示的な実施形態による、ハプティックエフェクトパターンに従ってレンダリングされるハプティックエフェクトのタイムラインを示す図である。
【発明を実施するための形態】
【0010】
ここで、添付の図面に図示されている実施形態、例を詳細に参照することにする。以下の詳細な説明においては、多くの特定の詳細を、本発明の理解を徹底して提供するために記載している。しかしながら、本発明をこれらの特定の詳細にかかわらず実施し得ることは当業者にとっては明らかであろう。他の例では、周知の方法、プロシージャ、コンポーネント、および回路は、実施形態の態様を不必要に曖昧にしないように、詳細に記載していない。可能な限り、類似の参照番号は、類似の要素に対して使用することにしている。
【0011】
本発明の実施形態は、ハプティックエフェクトをレンダリングするための新規の方法、非一時的媒体、およびシステムを可能にしている。様々な実施形態に従って、ハプティックエフェクトパターンは、様々なハプティックパラメータに従って1つまたは複数のハプティックエフェクトを特定するために使用される。詳細には、ハプティックエフェクトパターンは、ハプティックフリー期間を無視する。結果として、デバイスリソースのより効率的な使用を提供している。例えば、実施形態は、プロセッサの演算および電力の消費を低減している。
【0012】
図1は、本発明の例示的な実施形態による、ハプティック対応システム/デバイス10の簡易ブロック図である。
【0013】
システム10は、タッチスクリーンなどのタッチセンサ型サーフィス11、または筐体15内に搭載された他のタイプのユーザインターフェースを含むとともに、メカニカルキー/ボタン13およびスピーカ28を含み得る。システム10の内部には、システム10にハプティックエフェクトを生成しプロセッサ12を含むハプティックフィードバックシステムが存在する。メモリ20と、アクチュエータ18または他のハプティック出力デバイスに接続されているハプティック駆動回路16とが、プロセッサ12に接続されている。
【0014】
プロセッサ12は、どのハプティックエフェクトをレンダリングするかと、ハプティックエフェクトが符号化ハプティックエフェクトパターンに基づいてレンダリングされる順序とを決定し得る。一般に、ハプティックエフェクトパターンは、各ハプティックエフェクトに対する1つまたは複数のハプティックレンダリング時間期間を定義する。詳細には、ハプティックエフェクトパターンは、開始時間および各ハプティックエフェクトのための期間をトラック分けおよび記憶する。ハプティックエフェクトの大きさ、周波数、およびタイプなどの追加の高レベルパラメータがまた指定され得る。ハプティックエフェクトは、ハプティックエフェクトがレンダリングされる際のこれらのパラメータのいくつかの変動、または、ユーザのインタラクションに基づいたこれらのパラメータの変動を含む場合には、「動的」とみなし得る。そのような動的効果の例は、ランプアップ、ランプダウン、空間、および他のハプティックエフェクトを含む。ハプティックフィードバックシステムは、ある実施形態においては、システム10において振動30、31または他のタイプのハプティックエフェクトを生成する。
【0015】
プロセッサ12は、アクチュエータ18に必要とされる電流および電圧(すなわち、「モータ信号」)を提供して所望のハプティックエフェクトをレンダリングするために使用される電子コンポーネントおよび回路を含むハプティック駆動回路16に制御信号を出力する。システム10は、2つ以上のアクチュエータ18または他のハプティック出力デバイスを含み得るし、すべて共通のプロセッサ12に接続されている各アクチュエータは、別個の駆動回路16を含み得る。
【0016】
ハプティック駆動回路16は、アクチュエータ18を駆動するように構成される。例えば、ハプティック駆動回路16は、アクチュエータ18の共振周波数(例えば、+/-20Hz、30Hz、40Hzなど)にておよび前後でハプティック駆動信号を減衰し得る。ある実施形態においては、ハプティック駆動回路16は、様々な信号処理ステージを含み得るし、各ステージは、ハプティック駆動信号を修正するために適用される信号処理ステージのサブセットを定義している。
【0017】
プロセッサ12は、任意のタイプの汎用プロセッサであり得る、または、特定用途向け集積回路(「ASIC」)などといった、ハプティックエフェクトを提供するように特に設計されたプロセッサであり得る。プロセッサ12は、システム10全体をオペレートする同一のプロセッサであり得る、または、別個のプロセッサであり得る。
【0018】
メモリ20は、プロセッサ12によってアクセスされ得る様々なコンピュータ可読媒体を含み得る。前記様々な実施形態においては、本明細書に記載のメモリ20および他のメモリデバイスは、揮発性および不揮発性メディア、リムーバブルおよび非リムーバブルメディアを含み得る。例えば、メモリ20は、ランダムアクセスメモリの任意の組合せ(「RAM」)、動的RAM(「DRAM」)、静的RAM(「SRAM」)、リードオンリーメモリ(「ROM」)、フラッシュメモリ、キャッシュメモリ、および/または任意の他のタイプの非一時的コンピュータ可読媒体を含み得る。メモリ20は、プロセッサ12によって実行される命令を記憶する。その命令のうち、メモリ20は、プロセッサ12によって実行されると、タッチセンサ型サーフィス11および/またはスピーカ28と共同してアクチュエータ18を使用して、および以下で説明しているようなハプティックエフェクトを符号化することによって、ハプティックエフェクトを生成する命令である、メディアハプティックシミュレーションモジュール22を含む。メモリ20はまた、プロセッサ12の内部に位置し得る、または、内部および外部メモリの任意の組合せであり得る。
【0019】
アクチュエータ18は、ハプティックエフェクトを生成し得る任意のタイプのアクチュエータまたはハプティック出力デバイスであり得る。一般に、アクチュエータは、ハプティック出力デバイスの一例である、ここで、ハプティック出力デバイスは、駆動信号に応じて、振動触覚ハプティックエフェクト、静電摩擦ハプティックエフェクト、温度変形、および/または変形ハプティックエフェクトなどのハプティックエフェクトを出力するように構成されるデバイスである。アクチュエータという用語を詳細な説明全体を通して使用しているが、発明の実施形態を様々なハプティック出力デバイスに容易に適用してもよい。アクチュエータ18は、例えば、電気モータ、電磁気アクチュエータ、音声コイル、形状記憶合金、電気活性ポリマー、ソレノイド、偏心回転質量モータ(「ERM」)、高調波ERMモータ(「HERM」)、線形共鳴アクチュエータ(「LRA」)、ソレノイド共鳴アクチュエータ(「SRA」)、圧電アクチュエータ、マクロファイバコンポジット(「MFC」)アクチュエータ、高帯域幅アクチュエータ、電気活性ポリマー(「EAP」)アクチュエータ、静電摩擦ディスプレイ、超音波振動ジェネレータなどであり得る。いくつかの例では、アクチュエータそのものは、ハプティック駆動回路を含み得る。
【0020】
アクチュエータ18に加えてまたは変えて、システム10は、静電摩擦(「ESF」)、超音波表面摩擦(「USF」)を使用するデバイス、超音波ハプティックトランスデューサを用いて音響放射圧を引き起こすデバイス、デバイスを変形するハプティック回路基板および可撓性のあるまたは変形可能なサーフィスまたは形状を使用するとともにユーザの身体に取り付けられ得るデバイス、エアジェットを使用した一陣のエアなどの投影ハプティック出力を提供するデバイスなどの非メカニカルまたは非振動デバイスであり得る他のタイプのハプティック出力デバイス(図示せず)を含み得る。
【0021】
一般に、アクチュエータは、単一の周波数で振動ハプティックエフェクトを生成する標準精細度(「SD」)アクチュエータと特徴付けられ得る。SDアクチュエータの例としては、ERMおよびLRAを含む。SDアクチュエータと比較して、圧電アクチュエータまたはEAPアクチュエータなどの高精細度(「HD」)アクチュエータまたは高忠実度アクチュエータは、複数の周波数で高い帯域幅/鮮明度のハプティックエフェクトを生成することを可能とする。HDアクチュエータは、可変振幅を有するとともに過渡駆動信号に高速応答する広帯域幅の触覚効果を生成する能力を特徴とする。
【0022】
システム10は、セルラ電話、携帯情報端末(「PDA」)、スマートフォン、コンピュータタブレット、ゲーミングコンソール、リモートコントロール、または1つまたは複数のアクチュエータを含むハプティックエフェクトシステムを含む任意の他のタイプのデバイスなどの任意のタイプのポータブル電子デバイスであり得る。複数のアクチュエータの構成では、それぞれのハプティックエフェクトパターンがアクチュエータの各々とリンクされ得る。システム10は、リストバンド、ヘッドバンド、眼鏡、リング、レッグバンド、衣類に組み込まれたアレイなどのウェアラブルデバイス、または、ユーザが身体に身に着け得るまたは家具もしくは車両のハンドルを含むユーザが保持することができるハプティック対応の任意の他のタイプのデバイスであり得る。さらに、システム10の要素または機能性の一部が、リモートに位置していてもよいし、またはシステム10の残りの要素との通信している別のデバイスによって実施されてもよい。
【0023】
図2は、本発明の例示的な実施形態による、ハプティックパターンを生成するためのシステム200を図示する簡易ブロック図である。
【0024】
図2に示しているように、プロセッサ212は、アプリケーション210などの様々なプログラムを実行し得る。その機能性の一部として、アプリケーション210は、メディアストリーム211などのオーディオおよび/またはビデオストリームを含むメディアオブジェクトを生成する。メディアストリーム211は、ハプティックストリーム218などのハプティックストリームを生成するためにサンプラー215によってまたあるいはプロセッサ212によって、サンプリングされ得る。例えば、40秒のメディアストリーム211は、200サンプル/秒などの所定のレートでサンプリングされ得る。結果として、例示した40秒のメディアストリーム211は、8000個のサンプル値で表される。従来のシステムでは、ハプティック値が、メディアストリーム211の8000個のサンプル値の各々に割り当てられる。そして、ヌル値を含む、8000個の割り当てられたハプティック値の各々が、そのような従来のシステムによって処理される。多種多様なハプティックエフェクトがオーディオから生成され得るが、必要以上の量の処理電力が要求される。必要以上のプロセッサの使用は、ポータブル電子デバイスのバッテリ寿命を著しく低減させることになり得る。
【0025】
一方、本発明の実施形態においては、プロセッサ212は、メディアストリーム211のサンプル値または波形を分析することによってハプティックストリーム218をハプティックエフェクトパターン219に変換または符号化する。詳細には、ハプティックエフェクトパターン219は、各ハプティックエフェクトの開始時間および期間を特定するために使用される。各ハプティックエフェクトの開始時間を特定することによって、プロセッサ212は、ハプティック有効時間期間中にハプティックエフェクトを処理するだけでよくなる。結果として、プロセッサ212は、ハプティックエフェクトがレンダリングするようにスケジューリングされていない場合には、ハプティックエフェクトを処理することから開放され得る。例えば、ハプティックエフェクトパターン219が10秒の期間を有するメディアストリーム211に対応しており、9秒の時間に1秒の期間で開始するハプティックエフェクトを含む場合には、その後、プロセッサ212は、ハプティックエフェクトの開始時間(9秒)にハプティックエフェクト期間(1秒)の間、ハプティックエフェクトを処理およびレンダリングすることを開始し得る。
【0026】
プロセッサ212の負荷の低減に加えて、ハプティックエフェクトパターン219はハプティックストリーム218の代わりにメモリ220に記憶されてもよい。結果として、メモリ220内のメモリ使用量を低減している。ハプティックエフェクトパターン219はまた、ハプティックエフェクトタイプ、大きさ、周波数などの他のハプティックパラメータを指定し得る。いくつかの例では、プロセッサ212はまた、同期または非同期ハプティックエフェクトのいずれかを提供するために開始時間およびハプティックエフェクトの期間を調整し得る。
【0027】
代替の実施形態においては、ハプティックストリーム218などのハプティックデータは、メディアストリーム211内に直接組み込まれ得る。そのような構成は、メディアオブジェクトにおいてバーチャルリアリティオブジェクトとハプティックオブジェクトの連結を可能にする。例えば、ハプティック強度または大きさは、バーチャルリアリティオブジェクトからのユーザの距離に応じて変化し得る。そのようなバーチャルリアリティコンテキストにおいては、360度ビューを、ユーザのビュー内には無いものはミュートしつつ同時にレンダリングされる複数のハプティックトラックに分割してもよい。ユーザのロケーションまたはビューに応じて、ハプティックトラックを、ハプティック表現をより正確に与えるために混合してもよい。別の代替の実施形態においては、ハプティックエフェクトパターンは、事前に定義され、電子デバイスに送信され得る。
【0028】
図3は、本発明の例示的な実施形態による、ハプティックエフェクトパターンに基づいてハプティックエフェクトを符号化およびレンダリングするための機能性300のフロー図を図示している。いくつかの例では、
図3のフロー図の機能性は、メモリに記憶されているソフトウェアまたは他のコンピュータ可読または有形メディアによって実装され、プロセッサによって実行される。他の例では、機能性は、ハードウェア(例えば、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)などの使用により)、またはハードウェアの任意の組合せおよびソフトウェアによって行われ得る。
【0029】
310において、機能性300は、入力として1つまたは複数のメディアオブジェクトを受信する。メディアオブジェクトは、1つまたは複数のオーディオ、ビデオ、他のメディアファイル(例えば、アニメーションオブジェクト)、または任意のその組合せを含み得る。メディアオブジェクトは、所定のメディアオブジェクトまたは(例えば、ゲーミングアプリケーション内の)ユーザのアクションに基づいて「オンザフライ」でレンダリングされるメディアオブジェクトを含み得る。
【0030】
次に、320において、機能性300は、ハプティックストリームなどのハプティックオブジェクトを生成するためにメディアオブジェクトをサンプリングする。通常は、メディアオブジェクトは、200サンプル/秒などの所定のレートでサンプリングされる。例えば、40秒のメディアオブジェクトが、200サンプル/秒でサンプリングされ得る。この例においては、40秒のメディアオブジェクトは、8000個のサンプル値で表され得る。従来のシステムで見られるように、ハプティック値は、メディアオブジェクトの8000個のサンプル値の各々に割り当てられる。
【0031】
330において、機能性300は、メディアオブジェクトのすべてにわたって繰り返してハプティックエフェクトをレンダリングするのに適した時間期間を特定する。ここで、メディアオブジェクトのサンプル値または波形が、1つまたは複数のハプティック関連イベントを特定するために分析される。例えば、メディアオブジェクトのテンポは、弱いまたは強いハプティックエフェクトがレンダリングされるべきである(例えば、遅い場合にはより弱いハプティックエフェクト、速い場合にはより強いハプティックエフェクト)ことを示し得る。あるいは、または加えて、ハプティックエフェクトは、メディアオブジェクト内で検出された他のイベント(例えば、クラッシュ、爆発など)に応じて選択され得る。
【0032】
その後、340において、1つまたは複数のハプティック命令が、ハプティックエフェクトをレンダリングするために生成される。メディアオブジェクトの分析に基づいて、330において、1つまたは複数のハプティック命令が、ハプティックエフェクトが1つまたは複数のハプティック出力デバイス(例えば、
図1のアクチュエータ18)によってレンダリングされるようにさせるために生成される。例えば、ハプティック命令は、ハプティックエフェクトがハプティックライブラリから取り込まれるようにさせ得る。
【0033】
350において、機能性300は、ハプティックパターンとしてハプティックオブジェクトを符号化する。詳細には、本発明の実施形態は、ハプティックパターン内に、ハプティックエフェクト開始時間、期間、およびエフェクトデータを記憶する。例えば、ハプティックパターンが、10秒の期間を有するメディアオブジェクトに対応しており、9秒の時間に1秒の期間で開始するハプティックエフェクトを含む場合には、その後、ハプティックパターンのデータセグメントは、ハプティックエフェクトの開始時間(9秒)、ハプティックエフェクト期間(1秒)、そしてエフェクトデータ(1秒のハプティックパターンデータ)を指定する。
【0034】
.haptファイル(Immersion Corp.によるハプティックファイルタイプ)が本発明の実施形態と連動して使用されてもよく、.haptファイルのファイルサイズは大幅に低減される。ここには、ハプティック有効時間期間のみが、記憶されており、ハプティックエフェクトが存在しない時間期間は、記憶されていないまたさもなければ処理されない。周波数、大きさ、およびハプティックエフェクトタイプなどの他のパラメータも、ハプティックエフェクトパターン内に記憶されている場合がある。
【0035】
最後に、360において、機能性300は、ハプティックエフェクトパターンに従ってハプティックエフェクトをレンダリングする。ハプティックエフェクトパターンがhaptファイルに符号化されると、ハプティックエフェクトをレンダリングするために使用され得る。ハプティックパターンを使用して、ハプティックエフェクトは、割り当てられたハプティックエフェクトの開始時間にて行うようにイベントをスケジューリングすることによってレンダリングされる。ハプティックエフェクトがトリガされると、ハプティックエフェクトパターンは、ハプティックエフェクトをレンダリングするために使用される。前の例に戻れば、ハプティック出力は、ハプティックファイルをレンダリングした後の9秒にて行われるようにスケジューリングされる。すなわち、9秒の後に、プロセッサは、ハプティック命令をフェッチして、対応するハプティックエフェクトをレンダリングする。
【0036】
図4A~4Cは、本発明の例示的な実施形態による、ハプティックエフェクトパターン410、430、およびハプティックエフェクトタイムライン420を図示している。
【0037】
図4Aに示しているように、例示的なハプティックエフェクトパターン410は、ハプティックエフェクト411A~Dのリスト、ならびに時間フィールド412、期間フィールド413、およびパターンフィールド414を含む各ハプティックエフェクトに関する複数の対応フィールドを含む。ハプティックエフェクト411A~Dは、時間フィールド412内に示したように、開始時間(例えば、開始時間0、340、610、および9100)に記憶されているリストに記憶され得る。オプションの期間フィールド413は、対応するパターンフィールド414内に記憶されているパターンの全期間を示す。期間フィールド413は、ランプアップ、ランプダウン、および空間ハプティックエフェクトなどのより高度なまたは動的なハプティックエフェクトをより容易に提供するために使用され得る。パターンフィールド414は、アクチュエータOFFとアクチュエータONとの時間期間を交互に行うための期間時間を含む。
【0038】
各ハプティックエフェクト411A~Dがトリガされる(すなわち、それぞれのハプティックエフェクト411A~Dの開始時間に達する)と、対応するパターンフィールド414が、ターゲットハプティック出力デバイス(例えば、
図1のアクチュエータ18)にレンダリングされる。この例においては、時間0秒に開始する、ハプティックエフェクト411Aのためのパターンは、0秒間のOFF、20秒間のON、20秒間のOFF、40秒間のON、および30秒間のOFFである。時間340秒に開始する、ハプティックエフェクト411Bのためのパターンは、0秒間のOFF、20秒間のON、40秒間のOFF、50秒間のON、50秒間のOFF、30秒間のON、および30秒間のOFFである。時間610秒に開始する、ハプティックエフェクト411Cのためのパターンは、0秒間のOFF、30秒間のON、30秒間のOFF、30秒間のON、および30秒間のOFFである。時間9100秒に開始する、ハプティックエフェクト411Dのためのパターンは、0秒間のOFF、20秒間のON、20秒間のOFF、20秒間のON、および20秒間のOFFである。
【0039】
図4Bは、ハプティックエフェクトパターン410に従ってレンダリングされるハプティックエフェクトのハプティックエフェクトタイムライン420を図示している。すなわち、ハプティックエフェクトタイムライン420は、
図4Aに示したハプティックエフェクトパターン410を視覚的に表している。
【0040】
ON/OFFパターンを上記で説明しているが、代替の設定も可能である。例えば、期間/強度パターンも使用し得る。
図4Cに示しているように、例示的なハプティックエフェクトパターン430は、ハプティックエフェクト431、ならびに時間フィールド432、期間フィールド433、およびパターンフィールド434を含む各ハプティックエフェクトに関する複数の対応フィールドを含む。パターンフィールド434は、アクチュエータのための対応する期間時間および強度を含む。この例においては、時間0秒に開始する、ハプティックエフェクト431のためのパターンは、20秒間の0.5の強度(例えば、ハーフ強度)、20秒間の0の強度(すなわち、OFF)、20秒間の1.0の強度(例えば、フル強度)、40秒間の0.5の強度、および30秒間の1.0の強度である。
【0041】
ここで
図5を参照すれば、ハプティックフィードバックを生成およびレンダリングするためのシステム環境のための実施形態を提供している。
図5に示しているように、システム500は、1つまたは複数のメディアサーバ504上に記憶されているメディアオブジェクト502と、1つまたは複数のハプティックメディアサーバ510上に記憶されているハプティックライブラリなどのハプティック命令508とを含む。システム500に示したように、メディアサーバ504およびハプティックメディアサーバ510の各々は、例えば、プロセッサ、メモリ、データストレージ、ネットワーク接続、およびサーバ上に記憶されているデータを記憶およびアクセスするように構成されるソフトウェアなどといった従来技術において既知の標準コンポーネントを有する1つまたは複数のサーバを含み得る。メディアサーバ504およびハプティックメディアサーバ510の双方は、クラウドまたはインターネット接続506(a)または506(b)のうちの1つに接続されている。別個のサーバとして示しているが、メディアサーバ504およびハプティックメディアサーバ510を、単一のサーバの一部として構成してもよい。接続506(a)または506(b)は、従来技術において既知となっているような有線および/または無線インターネット接続を含む。
【0042】
システム500に示したように、メディアオブジェクト502は、ハプティック命令508とは独立して送信され得る。上述したように、ハプティック命令508は、1つまたは複数のハプティックエフェクトが特定および/またさもなければメディアオブジェクト502に割り当てられた後に、ハプティックライブラリから取り込まれ得る。パブリッシャアプリケーション512(例えば、ハプティック対応Androidアプリケーションまたはハプティックメディアソフトウェア開発キット(「SDK」))などのアプリケーションは、メディアおよびハプティックオブジェクトを同期および/またさもなければレンダリングするためにアクセスされ得る。
【0043】
実施形態は、電子デバイスにハプティックエフェクトを実装するために様々なSDKおよび他の製品と連動して使用されるように構成され得る。そのようなSDKおよび他の製品の例としては、ImmersionのTouchSense Force SDK、Immersion Video SDK(「IVSDK」)、Asynchronous Haptic Media SDK(「AHMSDK」)、Aurora SDK、Unified Haptic Library(「UHL」)、およびJavaScript(登録商標) Playerが含まれる。
【0044】
上述したように、ハプティックエフェクトパターンは、対応するメディアオブジェクトのレンダリングと連動してレンダリングするためのハプティックエフェクトのリストを含み得る。メディアオブジェクトの実行時に、ハプティックエフェクトオブジェクトは、ハプティックエフェクトパターンにリスト化された各ハプティックエフェクトに対して生成される。すなわち、複数のハプティックエフェクトオブジェクトは、連結リスト内に記憶またさもなければレンダリングされ得る。例えば、ハプティックエフェクトパターンは、530msにてハプティックエフェクトオブジェクトを参照し、800msにて別のハプティックエフェクトオブジェクトを参照し得る。ハプティックエフェクトオブジェクトは、シーケンシャルに実行され、続けて連結リストのすべてにわたって繰り返される。その後、実施形態は、連結リスト内の次のエフェクトに移動する。その後、第2のエフェクト振動パターンが実行され、以下同様に実行される。連結リストを例示的な実施形態として説明したが、ソフトウェアアレイ、キュー、ダブル連結リストなどを含む他の設定も容易に実現可能である。
【0045】
メディアオブジェクトのレンダリングが要求されると、本発明の実施形態は、1つまたは複数の実行可能なモジュールを呼び出してハプティックエフェクトパターンを生成および実行する。ここで、実施形態は、メディアオブジェクトのレンダリングが要求された参照時間と、メディアオブジェクトの経過時間とをトラッキングすることを開始する。参照時間は、現在の時間(通常は、ミリ秒で記載される)であるが、経過時間は、ハプティックエフェクトの開始から経過した時間である。参照時間は、アクション(例えば、再生または一時停止)がハプティックエフェクトに適用される際にはいつでも更新される。例えば、一時停止機能が選択されると、経過時間は、経過時間 = 現在の時間 - 参照時間として算出される。経過時間はまた、更新およびシーク機能に関連して使用される。
【0046】
経過時間および参照時間などの本明細書に記載の変数を使用して、ハプティックエフェクトのタイミングがより正確にレンダリングされ得る。これは、同期および非同期ハプティック再生の両方が可能である。ハプティックエフェクトパターン、および時間変数を使用して、非同期再生は実現される。同期再生については、経過時間および参照時間とともに、再生が要求、レジューム、または更新された実際の時間が使用される。
【0047】
ハプティックエフェクトパターン内に含まれるハプティックエフェクトはまた、参照時間のトラッキングを示している以下の擬似コードに従ってスケジューリングおよびレンダリングされ得る。
//後続の時間とはエフェクトがその開始に関連して開始する時間である
void startRenderer(){
Node current = hapticEffect.getHeadNode()
while (current) {
mHandler.postDelayed(mRunnable, current.getPattern().getPostTime());
current = current.getNext();
}
mEffect.setReferenceTime(getCurrentTimeInMS());
mIsRunning = true;
}
【0048】
図6は、本発明の例示的な実施形態による、ハプティックエフェクトパターンに従ってレンダリングされるハプティックエフェクトのタイムラインを図示している。詳細には、
図6は、メディアオブジェクトおよびそれらの対応するハプティックオブジェクトの一時停止処理およびレジューム処理に関連する一時停止タイムライン610およびレジュームタイムライン620を示している。メディアオブジェクトが一時停止されると、各実行可能なモジュール、メディア、およびハプティックは、処理キューから除去され得る。
図6に示した例では、メディアオブジェクトおよび対応するハプティックオブジェクトは、一時停止され、さらに、時間500msにて処理キューから除去される。
【0049】
一時停止機能の実行に基づいて、経過時間変数は、メディアオブジェクトのレンダリング時間に更新される。加えて、メディアオブジェクトが一時停止されると、動作変数がFALSEに設定される。その後、レジューム機能が選択されると、ハプティックオブジェクトの実行時間は、経過時間だけオフセットされる。動作変数もTRUEに設定される。例えば、一時停止機能が、時間620msにて実行されるようにスケジューリングされたハプティックオブジェクトより前に位置する、時間500msにて選択されると、その後、ハプティックオブジェクトの実行時間は、500msの経過時間だけオフセットされる。それゆえ、レジューム機能が選択されると、ハプティックオブジェクトは時間120ms(620ms-500ms)にて実行される。
【0050】
一時停止およびレジューム機能性は、以下の擬似コードに従って実施され得る。
void pauseRenderer(){
mHandler.remove(mRunnable); //すべてのスケジューリングされた動作可能なものを除去する
mEffect.setElapsedTime(mEffect.getElapsedTime() + (getCurrentTimeInMS() - mEffect.getReferenceTime()));
mIsRunning = false;
}
void resumeRenderer(){
Node current = mNode;
while (current) {
mHandler.postDelayed(mRunnable, current.getPattern().getPostTime() -
current.getPattern().getElapsedTime());
current = current.getNext();
}
mEffect.setReferenceTime(getCurrentTimeInMS());
mIsRunning = true;
}
【0051】
図7は、本発明の別の例示的な実施形態による、ハプティックエフェクトパターンに従ってレンダリングされるハプティックエフェクトのタイムラインを図示している。詳細には、
図7は、ユーザがメディアオブジェクトおよびそれらの対応するハプティックオブジェクトのタイムライン全体をスクロールすることを可能にするシーク機能に関連する起点からのシークのタイムライン710および対象へのシークのタイムライン720を示している。シーク機能性が実行されると、図示したように、ユーザは、選択して、メディアオブジェクトの第1の時点(500msとする)からメディアオブジェクト中の第2の時点(800msとする)へとシークする。
【0052】
シーク機能性を実現するために、各実行可能なモジュールは、処理キューから除去され得る。
図7に示した例では、シーク機能が500msにて呼び出されると、ハプティックオブジェクトをレンダリングするとともに対応する任意の後続のメディアオブジェクトは、一時停止され、さらに、時間500msにて処理キューから除去される。その後、ユーザがターゲット時間(
図7に示した例における800ms)を選択すると、その後、シーク機能性は、選択されたターゲット時間に基づいて経過時間をリセットし、さらに、どのハプティックオブジェクトを実行するために残すかを決定する。
【0053】
シーク機能性は、以下の擬似コードに従って実施され得る。
void seekRenderer(long positionMS) {
mEffect.setElapsedTime(positionMS); //update expected position
if (mIsRunning) {
mHandler.remove(mRunnable);
}
Node current = mHead;
while (!correspondsToSeekedPosition(current)) {
current = current.getNext();
}
mNode = current;
mEffect.setElapsedTime(positionMS);
}
【0054】
図8は、本発明のさらに別の例示的な実施形態による、ハプティックエフェクトパターンに従ってレンダリングされるハプティックエフェクトのタイムラインを図示している。メディアおよびハプティックオブジェクトのレンダリング中に、メディアとハプティックエフェクトとの間にズレが生じることがある。例えば、低速のネットワーク接続、ロスとしたメディアフレーム、および他のイベントがそのようなズレを引き起こし得る。
【0055】
図8に示しているように、ハプティックオブジェクトは、対応するメディアオブジェクトに再調整され得る。例示的な実施形態においては、実施形態は、アプリケーションプログラミングインターフェース(「API」)を周期的に呼び出して現在の時間を更新してもよい。そのような更新は、例えば、1.5秒を超えると行われ得る。そして、実施形態は、メディアオブジェクトと参照時間との間の時間差分を算出し、時間差分を所定の閾値と比較し得る。時間差分が所定の閾値を超過している場合には、その後、ユーザは、ハプティックエフェクトがメディアオブジェクトとの同期から外れていることを感知し得る。加えて、同期機能性が実行される。
図8に示した例では、APIが呼び出され、参照時間が1秒であるがメディアオブジェクトはまだ850msにあると決定される。この例においては、150ms(1s-850ms)の時間差分は、100msであり得る所定の閾値より大きい。そして、ハプティックオブジェクトの経過時間は、時間差分だけオフセットされる。
【0056】
同期機能性は、以下の擬似コードに従って実施され得る。
void updateRenderer(long positionMS) {
mEffect.setElapsedTime(mEffect.getElapsedTime() + (getCurrentTimeInMS() - mEffect.getReferenceTime()));
long delta = mEffect.getElapsedTime() - positionMS;
if (delta > THRESHOLD || delta < -THRESHOLD) {
mHandler.remove(mRunnable);
mEffect.setElapsedTime(positionMS);
Node current = mNode;
while (current) {
mHandler.postDelayed(mRunnable, current.getPattern().getPostTime() - mEffect.getElapsedTime());
current = current.getNext();
}
}
mEffect.setReferenceTime(getCurrentTimeInMS());
}
【0057】
このように、本明細書に記載の例示的な実施形態は、ハプティックエフェクトを符号化、レンダリング、および操作するためのより効率的な技法を提供している。様々な実施形態に従って、ハプティックエフェクトパターンは、様々なハプティックパラメータに従って1つまたは複数のハプティックエフェクトを特定するために使用される。加えて、ハプティックエフェクトパターンは、ハプティックフリー期間(すなわち、無音期間)を無視する。結果として、実施形態は、プロセッサ計算および電力消費を低減することになる。
【0058】
いくつかの実施形態を具体的に図示および/または説明してきた。しかしながら、開示した実施形態の修正および変形が、上記の説明によってカバーされており、発明の精神および意図した範囲から逸脱しない限り添付の特許請求の範囲内にあることは明らかであろう。本明細書に記載の実施形態は、多くの可能な実施形態の一部に過ぎない。さらに、実施形態は、様々なアクチュエータタイプおよび他のハプティック出力デバイスに容易に適用され得る。
【符号の説明】
【0059】
10 ハプティック対応システム/デバイス
11 タッチセンサ型サーフィス
12 プロセッサ
13 メカニカルキー/ボタン
15 筐体
16 ハプティック駆動回路
16 駆動回路
18 アクチュエータ
20 メモリ
22 メディアハプティックシミュレーションモジュール
28 スピーカ
30 振動
200 システム
210 アプリケーション
211 メディアストリーム
212 プロセッサ
215 サンプラー
218 ハプティックストリーム
219 ハプティックエフェクトパターン
220 メモリ
300 機能性
410 ハプティックエフェクトパターン
411 ハプティックエフェクト
412 時間フィールド
413 期間フィールド
414 パターンフィールド
420 ハプティックエフェクトタイムライン
430 ハプティックエフェクトパターン
431 ハプティックエフェクト
432 時間フィールド
433 期間フィールド
434 パターンフィールド
500 システム
502 メディアオブジェクト
504 メディアサーバ
506 インターネット接続
508 ハプティック命令
510 ハプティックメディアサーバ
512 パブリッシャアプリケーション
610 一時停止タイムライン
620 レジュームタイムライン
710 タイムライン
720 タイムライン