【解決手段】力覚エフェクトをオーサリングおよび符号化するためのシステムおよび方法を、360度ビデオ、3次元ビデオ、または仮想または拡張現実コンテンツなどといった、空間依存コンテンツのために提供している。システムおよび方法は、コンテンツのための力覚エフェクトを符号化または修正するための1つまたは複数の力覚レイヤを生成することを可能としている。
前記力覚ピクセルを含む力覚テクスチャマップおよび前記力覚ピクセルに関連付けられた前記力覚データ修飾子を生成するステップをさらに含む、請求項1に記載の方法。
前記力覚データ修飾子は、前記力覚トラック内の前記力覚データによって定義された力覚エフェクトの大きさを調整するための減衰データを含む、請求項1に記載の方法。
前記力覚データ修飾子は、前記力覚トラック内の前記力覚データによって定義された力覚エフェクトの周波数、波形、シャープネス、およびアクチュエータ選択のうちの少なくとも1つを調整するための減衰データを含む、請求項1に記載の方法。
前記ビデオは、360度ビデオ、バーチャルリアリティ環境、3次元ビデオ、3次元ビデオゲーム、3次元モデリング環境、およびその組合せからなるグループから選択される、請求項1に記載の方法。
前記ビデオは、複数のフレームを含み、前記力覚トラックおよび前記ビデオテクスチャマップを受信するステップと、前記力覚データ修飾子を生成するステップとは、前記ビデオ内の複数のフレームの少なくとも一部のために繰り返される、請求項1に記載の方法。
前記力覚データ修飾子は、前記力覚トラック内の前記力覚データによって定義された力覚エフェクトの大きさを調整するための減衰データを含む、請求項17に記載の装置。
前記力覚データ修飾子は、前記力覚トラック内の前記力覚データによって定義された力覚エフェクトの周波数、波形、シャープネス、およびアクチュエータ選択のうちの少なくとも1つを調整するための減衰データを含む、請求項17に記載の装置。
前記ビデオは、360度ビデオ、バーチャルリアリティ環境、3次元ビデオ、3次元ビデオゲーム、3次元モデリング環境、およびその組合せからなるグループから選択される、請求項17に記載の装置。
前記ビデオは、複数のフレームを含み、前記力覚トラックおよび前記ビデオテクスチャマップを受信することと、前記力覚データ修飾子を生成することとは、前記ビデオ内の複数のフレームの少なくとも一部のために繰り返される、請求項17に記載の装置。
前記力覚トラックは、前記力覚ピクセルが前記力覚データおよび前記力覚データ修飾子を含むように、前記力覚ピクセルにおいて符号化される、請求項31に記載の方法。
前記力覚トラックは、前記力覚ピクセルが前記力覚データおよび前記力覚データ修飾子を含むように、前記力覚ピクセルにおいて符号化される、請求項40に記載の装置。
前記処理デバイスに接続される、表示デバイスであって、前記処理デバイスは、前記ビデオを表示するようにさらに構成される、表示デバイスをさらに備える、請求項40に記載の装置。
【発明を実施するための形態】
【0011】
様々な実施形態を図面を参照して詳細に説明する、ここで、類似の参照番号はいくつかの図面にわたる類似の部分およびアセンブリを表す。様々な実施形態への参照は、本明細書に添付の特許請求の範囲の範囲を限定するものではない。加えて、本明細書に記載の任意の例は、限定を意図したものではなく、添付の特許請求の範囲に関する多くの可能な実施形態の一部を単に記載しているに過ぎない。
【0012】
適切であるならば、単数形において使用される用語はまた複数形を含み得るし、逆もまた同様である。本明細書における「a」の使用は、特に断りがない限り、または、「1つまたは複数」の使用が明確に不適切ではない限り、「1つまたは複数」を意味する。「または」の使用は、特に断りがない限り「および/または」を意味する。「含む」、「含み」、「含んでいる」、「備える」、「備え」、「備えている」、「など」、「有する」、および「有している」などの用語は、互いに代替可能であり、限定することを意図していない。例えば、「含んでいる」という用語は、「含んでいるが、それに限定されるわけではない」を意味し得る。
【0013】
一般に、本開示は、ビデオなどのコンテンツのための力覚エフェクトをオーサリングおよび符号化するためのシステムおよび方法に関する。本開示のシステムおよび方法は、360度ビデオ、3次元ビデオ、または仮想または拡張現実コンテンツなどといった、空間依存(または、配向もしくは方向依存)コンテンツのオーサリングおよび符号化を可能にしている。本開示は、そのようなコンテンツ内の1つまたは複数の特定のロケーションまたはオブジェクトに対する力覚エフェクトを局在させることを可能にしている。
【0014】
力覚エフェクトまたは力覚フィードバックは、人間に伝えられる任意のタイプの触覚感覚であり得る。いくつかの実施形態においては、力覚エフェクトは、キュー、通知、力覚対応物品とのユーザのインタラクションのフィードバックもしくは確認、またはより複雑なメッセージまたは他の情報などの情報を具現化する。別の実施形態においては、力覚エフェクトは、摩擦、フロー、およびデテントなどの物理プロパティまたはエフェクトをシミュレーションすることによって、デバイスとのユーザのインタラクションを強化するために使用され得る。
【0015】
システムおよび本開示の方法は、力覚テクスチャマップなどの1つまたは複数の力覚レイヤを生成し得る。力覚レイヤは、力覚エフェクトを符号化または編集する情報を含む複数の力覚ピクセルを有する。力覚ピクセルは、ビデオコンテンツなどのコンテンツに関連付けられた力覚エフェクトを決定または調整するための情報を含む。1つの可能な実施形態においては、各力覚ピクセルは、力覚ピクセルを1つまたは複数の対応するビデオフレームまたはビデオテクスチャマップに関連付けるための座標を含み得る。
【0016】
各力覚レイヤは、ビデオを生成するためにストリーミングされる少なくとも1つのビデオフレームに基づいて作成され得る。ある例においては、力覚レイヤは、ビデオフレームと同一のフレームレートで作成および使用され得る。他の例においては、力覚レイヤは、単一の力覚レイヤが複数のビデオフレームのための力覚エフェクトを符号化するように、ビデオフレームとは異なるフレームレートで使用され得る。
【0017】
ある例においては、各力覚レイヤは、力覚ピクセルを有し、力覚ピクセルの各々は、対応するビデオフレーム内の少なくとも1つのピクセルまたは対応する1つまたは複数のビデオフレーム内のビデオテクスチャマップに関連付けられている。特定の力覚レイヤ内の各力覚ピクセルは、少なくとも1つのビデオフレーム内の1つまたは複数のピクセル、または、その力覚レイヤに対応するビデオテクスチャマップに関連付けられた力覚エフェクトを符号化または編集することができる。そのため、力覚レイヤ内の力覚ピクセルは、異なる情報、パラメータ、および/または値を有し得るため、力覚エフェクトを、力覚レイヤに対応する1つまたは複数のビデオフレームにおいて望ましいように局在させることができる。
【0018】
1つまたは複数の力覚トラックは、力覚エフェクトを生成するための力覚データを提供するために使用され、力覚レイヤは、力覚データを修正して力覚エフェクトを調整するための情報を含む。例えば、力覚トラックは、振幅信号を生成するための力覚データを含み、力覚レイヤ内の各力覚ピクセルは、力覚データを変更するための力覚データ修飾子を有し、それによって、振幅信号を調整している。異なる力覚データ修飾子を力覚レイヤ内の力覚ピクセルに提供することによって、異なる力覚エフェクト(例えば、力覚エフェクトの異なる振幅)を力覚レイヤに関連付けられた1つまたは複数のビデオフレーム内の異なるロケーションに提供することを可能にしている。本開示のシステムは、ユーザが力覚データ修飾子をカスタマイズすることを可能にするためのユーザインターフェースを提供し得る。
【0019】
ある実施形態においては、そのような力覚トラックは、力覚レイヤ内の力覚ピクセルが力覚エフェクトを生成するために使用される力覚データを含むように、力覚レイヤに符号化され得る。このような構成においては、ビデオコンテンツの再生中に、力覚エフェクトは、別個の力覚トラックを必要とすることなく力覚レイヤを使用して生成され得る。
【0020】
ビデオコンテンツの再生中に、ビデオコンテンツ内の関心地点は、特定の時間において決定されるとともに、関心地点に関連付けられた適切な力覚エフェクトをインデックス化するために使用され得る。ある実施形態においては、関心地点は、ビューアの方向ベクトルである。関心地点は、そのときの力覚レイヤ内の力覚ピクセルとして表され得る、または関連付けられ得る。関心地点に関連付けられた力覚エフェクトは、ビデオ再生(すなわち、そのときのビデオフレーム)と同期させてレンダリングされる。
【0021】
本開示において説明した多くの例が360度ビデオに関連しているが、本開示の内容はまた、力覚エフェクトをユーザが周囲を見渡すことができる仮想または拡張現実体験などの他のコンテンツの再生に適用することができる、他の活用を含み得ることを理解されたい。
【0022】
図1は、本開示の例示的な実施形態による、力覚エフェクトをオーサリングおよびレンダリングするためのシステムのブロック図である。システムは、概して、参照番号100で指定されており、力覚エフェクトオーサリングデバイス102および力覚対応装置104を含む。少なくともいくつかの実施形態においては、力覚対応装置104は、力覚エフェクトレンダリングデバイス106およびコンテンツ提示デバイス108を含む。
【0023】
力覚エフェクトオーサリングデバイス102は、力覚エフェクトを生成するための力覚データを修正するように動作する。ある実施形態においては、力覚データは、1つまたは複数の力覚トラック112に含まれ、1つまたは複数の力覚アクチュエータの動作を定義し得る。少なくともいくつかの実施形態においては、力覚エフェクトオーサリングデバイス102は、振幅、周波数、波形、シャープネス、および他の可能な力覚エフェクトの属性などといった力覚エフェクトの特性を定義または編集する、1つまたは複数のパラメータの入力を受信し、パラメータに基づいて力覚データを修正する。力覚エフェクトオーサリングデバイス102の例を、
図3〜10を参照してここでより詳細に説明する。
【0024】
少なくともいくつかの実施形態においては、力覚エフェクトオーサリングデバイス102は、力覚ピクセル110のセットを生成する。ある実施形態においては、力覚エフェクトオーサリングデバイス102は、1つまたは複数の力覚トラック112およびコンテンツデータ114を受信および使用して、力覚ピクセル110を生成し得る。
【0025】
力覚ピクセル110は、コンテンツデータ114に関連付けられた力覚エフェクトを定義または編集するデータを含む。例えば、コンテンツデータ114は、(本明細書に記載のビデオテクスチャマップなどといった)1つまたは複数のコンテンツデータテクスチャマップ内のデータピクセルとして表され、力覚ピクセル110の各々は、コンテンツデータテクスチャマップ内の少なくとも1つのデータピクセルに関連付けられた力覚エフェクトを定義するデータを含む。本明細書に記載しているように、力覚ピクセル110は、
図7に関連付けられた説明を含みつつ、ここでより詳細に説明しているように、力覚テクスチャマップとして表され得る。
【0026】
力覚対応装置104は、コンテンツを再生中にコンテンツデータ114に基づいて力覚エフェクトを生成するように動作する。ある実施形態においては、力覚対応装置104は、力覚ピクセル110および力覚トラック112を受信して、力覚エフェクトをレンダリングする。力覚対応装置104の例を、
図11を参照してここでより詳細にさらに説明する。
【0027】
力覚対応装置104内の力覚エフェクトレンダリングデバイス106は、コンテンツ提示デバイス108を使用して提示されるコンテンツに関連付けられた力覚エフェクトをレンダリングするように構成される。ある例においては、力覚エフェクトレンダリングデバイス106は、コンテンツ提示デバイス108がコンテンツを提示している間に、コンテンツデータ114に基づいて力覚エフェクトを生成する。コンテンツデータ114は、ビデオコンテンツであり、コンテンツ提示デバイス108は、コンテンツデータ114に基づいてビデオコンテンツを表示し、力覚エフェクトレンダリングデバイス106は、ビデオコンテンツに対応する力覚エフェクトをレンダリングする。
【0028】
コンテンツ提示デバイス108は、コンテンツデータ114に基づいてコンテンツを提示するように動作する。コンテンツ提示デバイス108には、コンテンツデータ114のタイプに応じた様々なタイプが存在し得る。例えば、コンテンツデータ114は、ビデオコンテンツデータを含み、コンテンツ提示デバイス108は、ビデオコンテンツを表示するための(
図11に図示したような)表示デバイスを含み。他の例においては、コンテンツデータ114は、オーディオコンテンツデータを含み、コンテンツ提示デバイス108は、オーディオ再生デバイスを含む。
【0029】
図12および13を参照してここでさらに記載しているように、力覚エフェクトレンダリングデバイス106は、レンダリング中にコンテンツデータ内の関心地点を特定するための、方向センサなどといった、1つまたは複数のセンサをさらに含む。関心地点は、ビデオフレーム内の1つまたは複数の様々な点であり得る。いくつかの実施形態においては、関心地点は、ユーザまたはビューアがビデオフレームを眺望している点である。他の実施形態においては、関心地点は、ユーザまたはビューアがビデオフレームを提示している表示デバイス上でポインタまたはカーソルを置いた点である。そのような点を、本明細書では、ユーザパースペクティブベクトルまたはルックベクトルと称し得る。
【0030】
いくつかの可能な実施形態においては、力覚エフェクトレンダリングデバイス106およびコンテンツ提示デバイス108は、単一のデバイスに一体化される。そのような構成においては、ルックベクトルなどの関心地点は、力覚エフェクトレンダリングデバイス106とコンテンツ提示デバイス108とにおいて同一であり得る。他の可能な実施形態においては、力覚エフェクトレンダリングデバイス106は、コンテンツ提示デバイス108とは異なり得る。例えば、力覚エフェクトレンダリングデバイス106がハンドヘルドコントローラとして実装され得る一方で、コンテンツ提示デバイス108はヘッドセットとして構成される。このような構成においては、例えば、ハンドヘルドコントローラを使用して選択され得る関心地点は、例えば、ヘッドセットを使用したユーザのパースペクティブを表すルックベクトルとは異なり得る。
【0031】
力覚対応装置104を、力覚エフェクトレンダリングデバイス106およびコンテンツ提示デバイス108を含むような図示した実施形態において説明しているが、力覚エフェクトレンダリングデバイス106およびコンテンツ提示デバイス108のいずれかまたは両方を力覚対応装置104から独立して構成することができることを理解されたい。
【0032】
図1をさらに参照すれば、力覚トラック112は、力覚エフェクトに関連付けられた力覚データを含む。力覚データは、1つまたは複数の力覚アクチュエータを駆動するための力覚ドライブ信号を生成するためのパラメータを定義する。例示的な実施形態においては、そのようなパラメータは、振幅、周波数、位相、反転、期間、波形、アタックタイム、立ち上がり時間、あるイベントに対するラグまたはリードタイム、およびフェードタイムなどといった、力覚ドライブ信号の特性に関連する、または関連付けられている。力覚ドライブ信号は、1つまたは複数の力覚アクチュエータに適用され1つまたは複数の力覚エフェクトを引き起こす。
【0033】
コンテンツデータ114は、コンテンツ提示デバイス108を介してユーザに配信され得るコンテンツを生成するために使用されるデータである。本明細書においては、コンテンツデータ114を、360度ビデオなどのビデオコンテンツのためのデータとして主に説明する。他の実施形態においては、しかしながら、本開示の内容を、3次元ビデオ、仮想または拡張現実コンテンツ、およびオーディオコンテンツなどといった、他のタイプのコンテンツに同様に適用することができる。
【0034】
図示した実施形態においては、力覚エフェクトオーサリングデバイス102は、コンテンツデータ114および力覚トラック112に基づいて力覚ピクセル110を生成する。このような構成においては、力覚対応装置104は、力覚トラック112および力覚ピクセル110の両方を受信して、コンテンツデータ114に関連付けられた力覚エフェクトを生成し得る。他の実施形態においては、力覚エフェクトオーサリングデバイス102は、力覚トラック112を必要とすることなく、コンテンツデータ114に基づいて力覚ピクセル110を生成し得る。そのような実施形態においては、さもなければ、力覚トラックに含まれ得る力覚データは、力覚ピクセル110に符号化され、力覚対応装置104は、力覚ピクセル110を使用して力覚エフェクトをレンダリングし得る。
【0035】
図2は、
図1のシステム100を動作するための例示的な方法130を図示するフローチャートである。ある実施形態においては、システム100は、ユーザに提示されるコンテンツに関連付けられた力覚エフェクトを提供する2つのステップを行うように一般的に動作する。まず、システム100は、コンテンツに関する力覚エフェクトをオーサリングすることを有効にするように構成および使用され(動作132)、コンテンツが提示されると力覚エフェクトをレンダリングする(動作134)。いくつかの実施形態においては、動作132は、システム100内の力覚エフェクトオーサリングデバイス102および他の関連デバイスを使用して行われ得るし、動作134は、システム内の力覚エフェクトレンダリングデバイス106および他の関連デバイスを使用して行われ得る。動作132の例を
図3〜10を参照して図示および説明しており、動作134の例を
図11〜15を参照して図示および説明をしている。
【0036】
図3は、
図1に図示したような力覚エフェクトオーサリングデバイス102の可能な実施形態のブロック図である。本実施形態においては、力覚エフェクトオーサリングデバイス102は、バス140、プロセッサ142、入力/出力(I/O)コントローラ144、メモリ146、ネットワークインターフェースコントローラ(NIC)148、およびユーザインターフェース150を備える。バス140は、プロセッサ142、I/Oコントローラ144、メモリ146、およびNIC148を備えるデバイス102内のコンポーネント間で、データを伝達する経路を提供するための導体または伝送ラインを含む。バス140は、制御バス、アドレスバス、およびデータバスを通常は含む。しかしながら、バス140は、デバイス102内のコンポーネント間でデータを伝達するのに適した、任意のバスまたはバスの組合せであり得る。
【0037】
プロセッサ142は、情報を処理するように構成される、任意の回路であり得るし、任意の適切なアナログまたはデジタル回路を含み得る。プロセッサ142はまた、命令を実行するプログラマブル回路を含み得る。プログラマブル回路の例としては、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路(ASIC)、プログラマブルゲートアレイ(PLA)、フィールドプログラマブルゲートアレイ(FPGA)、または命令を実行するのに適した任意の他のプロセッサもしくはハードウェアを含む。様々な実施形態において、プロセッサ142は、単一のユニットまたは2つ以上のユニットの組合せであり得る。プロセッサ142が2つ以上のユニットを含む場合には、ユニットは、単一のコントローラにまたは別個のデバイスに物理的に位置し得る。
【0038】
I/Oコントローラ144は、デバイス102およびユーザインターフェース150などの周辺機器または外部デバイスの動作をモニタする回路である。I/Oコントローラ144はまた、デバイス102と周辺機器デバイスとの間のデータフローを管理し、周辺機器デバイスのモニタおよび制御に関連する些細なことからプロセッサ142を開放する。I/Oコントローラ144がインターフェースで接続している他の周辺機器または外部デバイスの例は、外部ストレージデバイス、モニタ、キーボードおよびポインティングデバイスなどの入力デバイス、外部コンピュータデバイス、アンテナ、人間が身につける他の物品、および任意の他のリモートデバイスを含む。
【0039】
メモリ146は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気的に消去可能プログラマブルリードオンリーメモリ(EEPROM)、フラッシュメモリ、磁気メモリ、光学メモリ、または任意の他の適切なメモリ技術などといった、揮発性メモリを含み得る。メモリ146はまた、揮発性の組合せおよび不揮発性メモリを含み得る。
【0040】
メモリ146は、ユーザ入力獲得モジュール152、データ獲得モジュール154、力覚オーサリングモジュール156、および通信モジュール158を含む、プロセッサ142による実行のための多数のプログラムモジュールを記憶し得る。各モジュールは、データ、ルーチン、オブジェクト、コール、および1つまたは複数の特定のタスクを行う他の命令の集合である。モジュールを本明細書に開示しているが、本明細書に記載の様々な命令およびタスクは、本明細書に開示したもの以外の単一のモジュール、異なるモジュール、モジュールの組合せ、またはデバイス102と無線または有線のいずれかにより通信するリモートデバイスによって実行されるモジュールによって行われ得る。
【0041】
ユーザ入力獲得モジュール152は、プロセッサ142によって実行されると、力覚エフェクトに関連付けられた1つまたは複数のパラメータのユーザ入力または力覚エフェクト修飾子をプロセッサ142に受信させる命令である。ユーザ入力獲得モジュール152は、ユーザインターフェース150の入力デバイス162と通信し、ユーザが入力デバイス162を介してそのようなパラメータを入力することが可能となるようにし得る。例として、ユーザ入力獲得モジュール152は、ユーザが力覚エフェクトのための1つまたは複数のパラメータを入力または選択することを可能にする、表示スクリーン(すなわち、入力デバイス162)上にグラフィックユーザインターフェースを提供する。ユーザ入力獲得モジュール152を動作する例示的方法を
図9および10を参照してより詳細に説明している。
【0042】
データ獲得モジュール154は、プロセッサ142によって実行されると、力覚エフェクトをオーサリングするために使用されるデータをプロセッサ142に受信させる命令である。そのようなデータは、力覚オーサリングモジュール156によって使用され得る。本明細書に記載の特定の実施形態においては、受信したデータは、力覚トラック112に関する情報およびコンテンツデータ114を含む。
【0043】
力覚オーサリングモジュール156は、プロセッサ142によって実行されると、力覚ピクセル110をプロセッサ142に生成させる命令である。少なくともいくつかの実施形態においては、力覚オーサリングモジュール156は、ユーザ入力を受信するためにユーザ入力獲得モジュール152と通信し、力覚トラック112およびコンテンツデータ114などの力覚エフェクトをオーサリングするのに利用可能なデータを受信するためにデータ獲得モジュール154と通信する。
【0044】
通信モジュール158は、デバイス102とリモートデバイスとの間の通信を支援する。リモートデバイスの例としては、コンピュータデバイス、センサ、アクチュエータ、ルータおよびホットスポットなどのネットワーク機器、車両、運動器具、およびスマート家電を含む。コンピュータデバイスの例としては、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレット、スマートフォン、ホームオートメーションコンピュータおよびコントローラ、およびプログラム可能な任意の他のデバイスを含む。通信は、無線または有線信号またはデータ経路を介した通信を含むデータ通信に適した任意の形式と取り得る。様々な実施形態において、通信モジュールは、システム100の集中コントローラまたは他のリモートデバイスとして、他のコンピュータデバイスまたは他のリモートデバイスと通信するピアとして、または、コントローラがいくつかの状況では集中コントローラとして動作し他の状況ではピアとして動作し得る集中コントローラおよびピアのハイブリッドとして、デバイス102を構成し得る。
【0045】
プログラムモジュールの別の実施形態が可能である。例えば、いくつかの別の実施形態は、ユーザ入力獲得モジュール152、データ獲得モジュール154、力覚オーサリングモジュール156、および通信モジュール158より、より多くのまたはより少ないプログラムモジュールを有し得る。いくつかの可能な実施形態においては、1つまたは複数のプログラムモジュールは、リモートコンピュータデバイスまたは他のウェアラブル物品などのリモートデバイス内にある。
【0046】
図3をさらに参照すれば、ネットワークインターフェースコントローラ(NIC)148は、ネットワーク168と電気通信して、デバイス102とリモートデバイスとの間における通信(無線または有線のいずれか)を提供する。通信は、Bluetooth(登録商標)、セルラ標準規格(例えば、CDMA、GPRS、GSM(登録商標)、2.5G、3G、3.5G、4G)、WiGig、IEEE802.11a/b/g/n/ac、IEEE802.16(例えば、WiMax)などといった標準規格を含む、任意の無線伝送技法に準拠し得る。NIC148はまた、データを伝達するための任意の適切なポートおよびコネクタを使用する有線接続を介し、RS232、USB、FireWire、Ethernet、MIDI、eSATA、またはthunderboltなどといった任意の適切な標準規格に準拠した、デバイス102とリモートデバイスとの間の有線通信を提供し得る。
【0047】
ユーザインターフェース150は、入力デバイス162および出力デバイス164を含み得る。入力デバイス162は、それを介してユーザがパラメータ、コマンド、および他の情報を力覚エフェクトオーサリングデバイス102に入力することを可能にする、任意のデバイスまたは機構を含む。その上、入力デバイス162はまた、編集のために、ビデオトラックなどの力覚トラックおよびコンテンツデータを受信し得る。入力デバイス162の例としては、タッチスクリーンを含み、タッチセンサ型表面、カメラ、ボタンおよびスイッチなどの機械式入力、および他のタイプの入力コンポーネント。入力デバイス162はまたフラッシュメモリ、磁気メモリ、光学メモリ、または任意の他の適切なメモリ技術などといった、ポータブルメモリのためのリムーバブルメモリ読取器を含み得る。出力デバイス164は、視覚および可聴フォーマットなどの様々なフォーマットでユーザに情報を提示する任意のデバイスおよび機構を含む。出力デバイス164の例としては、表示スクリーン、スピーカ、ライト、および他のタイプの出力コンポーネントを含む。出力デバイス164はまた、リムーバブルメモリリーダを含み得る。ある実施形態においては、入力デバイス162および出力デバイス164は、タッチセンサ型表示スクリーンなどのように、一体化して形成される。
【0048】
図4は、力覚エフェクトオーサリングデバイス102の例示的動作を図示するブロック図である。少なくともいくつかの実施形態においては、力覚エフェクトオーサリングデバイス102は、力覚トラック112およびコンテンツデータ114を受信し、力覚トラック112およびコンテンツデータ114を使用して力覚ピクセル110のセットを生成する。
【0049】
上述したように、力覚トラック112は、力覚エフェクトに関連付けられるとともに1つまたは複数の力覚アクチュエータの動作を定義する力覚データを含む。コンテンツデータ114は、コンテンツ提示デバイス108などのコンテンツ再生デバイスを使用して配信されるコンテンツを生成するための情報を含む。
【0050】
図示した実施形態においては、ビデオコンテンツを、所望の力覚エフェクトとともにレンダリングする。例えば、ビデオコンテンツは、球面ビデオまたは360度ビデオを含む。360度ビデオは、あらゆる方向のビューをカメラの集合および全方位カメラなどの撮影技術を使用して同時に記録するビデオレコーディングである。その結果得られる撮影画面を、その後、繋ぎ合わせて、球面上に射影され得る単一の矩形のビデオを形成する。再生中に、ビューは、視野の方向を制御することを可能にし、このことは、パノラマと類似している。いくつかの可能な実施形態においては、360度ビデオは、特異面上の平面画像として表示される平面視である。他の可能な実施形態においては、360度ビデオは、各眼に個別に向けられた2つの画像として表示される立体視ビデオである。
【0051】
360度ビデオは、様々なデバイス上で再生され得る。例えば、360度ビデオがパーソナルコンピュータ上に表示される場合には、マウスまたは他のポインティングデバイス(例えば、トラックボール、ジョイスティック、ポインティングスティック、WillMote、指トラッキングデバイス、ペン、またはスタイラス)が、クリックおよびドラッグをすることによってビデオの周囲をパンするために使用される。モバイルコンピュータデバイス(例えば、スマートフォンまたはタブレット)では、ジャイロスコープなどの内部センサが、デバイスの方向に基づいてビデオをパンするために使用され得る。他の例においては、ビデオを、バーチャルリアリティヘッドセット、コントローラ、および他のデバイスを含む、バーチャルリアリティデバイスを操作するユーザに表示することができる。ユーザの視点および/または移動が、ビデオの周囲をパンするために使用され得る。
【0052】
コンテンツデータ114がビデオコンテンツに関する図示した実施形態においては、1つまたは複数のビデオフレームを表す1つまたは複数のビデオテクスチャマップを提供し得る。ビデオテクスチャマップ212をビデオフレームとして私用して表示デバイス上にビデオコンテンツをレンダリングし得る。ビデオテクスチャマップの例を、
図5および6を参照してここでさらに説明する。
【0053】
上述したように、力覚ピクセル110は、コンテンツデータ114に関連付けられた力覚エフェクトを決定または調整するための情報を含む。本明細書に記載しているように、1つの可能な実施形態においては、力覚ピクセル110は、力覚ピクセル110を1つまたは複数の対応するビデオフレームまたはビデオテクスチャマップに関連付けるための座標を含み得る。力覚ピクセル110の例示的データ構造を、
図8を参照してここで説明する。力覚ピクセル110は、1つまたは複数の力覚テクスチャマップとして表され得る。少なくともいくつかの実施形態においては、力覚ピクセル110またはその力覚テクスチャマップが視覚的にレンダリングされることはない。他の実施形態においては、
図9を参照して図示したように、力覚テクスチャマップを視覚的にレンダリングすることができる。
【0054】
図5〜8は、力覚エフェクトオーサリングデバイス102を動作する可能な例示的な方法200を図示している。図示した実施形態においては、方法200は、動作202、204、および206を含む。他の実施形態においては、方法200は、これらの動作のうちの少なくとも1つとともに追加の動作を含み得る。
【0055】
動作202において、力覚エフェクトオーサリングデバイス102は、力覚トラック112およびコンテンツデータ114を受信する。動作204において、力覚エフェクトオーサリングデバイス102は、ビデオテクスチャマップ212のビデオピクセル216(
図7)に関連付けられた力覚ピクセル110を生成する。動作206において、力覚エフェクトオーサリングデバイス102は、力覚ピクセル110に関連付けられた力覚エフェクト修飾子232(
図8)を生成する。力覚ピクセル110は、力覚ピクセル110に対応する。
【0056】
本実施形態においては、コンテンツデータ114は、複数のビデオテクスチャマップ212を含む。各ビデオテクスチャマップは、ビデオ214の少なくとも1つのフレーム218を表し得る。ビデオ214は、
図1に図示したような力覚対応装置104のコンテンツ提示デバイス108などの表示スクリーンを有するビデオプレーヤ上に再生される。コンテンツデータ114は、コンテンツ提示デバイス108がビデオを再生するために使用することができる情報を含む。
【0057】
図6に図示したように、いくつかの実施形態において、ビデオ214は、複数のフレーム218を表示することによって再生される。複数のフレーム218が、決定されたフレームレートまたは時間分解能で順次表示され得る。時間分解能のいくつかの例としては、10フレーム/秒(FPS)から500FPSの範囲にある。他の時間分解能も他の実施形態において可能であり得る。
【0058】
図6をさらに参照すれば、コンテンツデータ114に含まれるビデオテクスチャマップ212の各々が、ビデオ214の少なくとも1つのフレーム218を表し得る。360度ビデオのような例においては、ビデオテクスチャマップ212は、単一のビデオテクスチャマップ212がビデオ214の単一のフレーム218として使用されるように、通常はフレーム218をそれぞれ表している。このような構成においては、ビデオテクスチャマップ212は、ビデオフレーム218と同一であり、そのため、ビデオフレーム218とも称され得る。他の例においては、少なくとも1つのビデオテクスチャマップ212は、ビデオ216の2つ以上のフレーム218を表すように構成される。例えば、ここで、ビデオ圧縮が行われ、ビデオテクスチャマップ212の各々は、フレーム218が第1のフレームレートでストリーミングされる際にビデオテクスチャマップ212が第1のフレームレートより低い第2のフレームレートで使用されるように、複数の(2つ、3つ、4つなどの)フレーム218に関連付けられている。例として、各ビデオテクスチャマップ212は、フレーム218を90FPSでストリーミングするとビデオテクスチャマップ212が30FPSで使用されるように、3つの連続したフレーム218を表すように構成される。さらに他の例においては、ビデオテクスチャマップ212の少なくとも一部は、異なる数のフレーム218に関連付けられている。例えば、第1のビデオテクスチャマップ212は、2つのフレーム218に対応する一方で、第2のビデオテクスチャマップ212は、2つのフレーム218とは異なる単一のフレーム218のみを表す。
【0059】
ビデオテクスチャマップ212は、ビデオ214の1つまたは複数のフレーム218として使用され得る2次元画像である。本明細書に記載しているように、ビデオテクスチャマップ212は、いくつかの例においてはビデオフレーム218と同一であり得る。少なくともいくつかの可能な実施形態においては、様々なマッピング技法が、各ビデオテクスチャマップ212をビデオ214の少なくとも1つのフレーム218に射影するために使用され得る。例示的マッピングプロセスは、2次元画像を3次元モデルのサーフェスに射影するUVマッピングを含む。UVマッピングプロセスは、3次元オブジェクトを構成するポリゴンを使用し、ビデオテクスチャマップ212などの2次元画像からのカラーなどのサーフェス属性を有し得る。UVマッピングプロセスは、ビデオテクスチャマップ212内のビデオピクセル216(
図7)をポリゴン上のサーフェスマッピング割り当てることを含む。他の例においては、他のマッピング方法を、ビデオテクスチャマップ212をビデオ214のフレーム218に関連付けるために使用し得る。
【0060】
図5に戻って参照すれば、動作204において、力覚エフェクトオーサリングデバイス102は、ビデオテクスチャマップ212のビデオピクセル216に関連付けられた力覚ピクセル110を生成する。いくつかの実施形態においては、力覚ピクセル110は、1つまたは複数の力覚アクチュエータの動作を定義するためにその後使用されることになる力覚トラック112内の力覚データを修正するために使用される。他の実施形態においては、力覚トラック112は、力覚ピクセル110に符号化され、力覚ピクセル110は、1つまたは複数の力覚アクチュエータを制御するために使用される力覚データを定義し得る。
【0061】
図7に図示したように、力覚ピクセル110は、力覚テクスチャマップ222として表され得る。力覚テクスチャマップ222は、少なくとも1つのビデオテクスチャマップ212に関連付けられている。1つの可能な実施形態においては、力覚テクスチャマップ222は、力覚テクスチャマップ222とビデオテクスチャマップ212との時間分解能が同一となるように、ビデオテクスチャマップ212にそれぞれ対応する。他の可能な実施形態においては、少なくとも1つの力覚テクスチャマップ222は、少なくとも1つのビデオテクスチャマップ212とは異なる時間分解能を有する。例えば、少なくとも1つの力覚テクスチャマップ222は、力覚テクスチャマップ222がビデオテクスチャマップより低い時間分解能を有するように、2つ以上のビデオテクスチャマップ212に関連付けられている。他の例においては、少なくとも1つのビデオテクスチャマップ212は、力覚テクスチャマップ222がビデオテクスチャマップより高い時間分解能を有するように、2つ以上の力覚テクスチャマップ222に関連付けられている。異なる時間分解能の例示的活用は、なんらかの画像または表現が複数のビデオフレーム上で伝えている一方でなんらかの画像または表現が複数のビデオフレーム上で同一の力覚エフェクトを有する場合である。
【0062】
いくつかの実施形態においては、力覚テクスチャマップ222は、ビデオテクスチャマップ212と同一の空間分解能を有する。例えば、力覚テクスチャマップ222内の力覚ピクセル110の数は、ビデオテクスチャマップ212内のビデオピクセル216の数と同一である。他の実施形態においては、力覚テクスチャマップ222は、ビデオテクスチャマップ212とは異なる空間分解能を有する。例えば、力覚テクスチャマップ222内の少なくとも1つの力覚ピクセル110を、ビデオテクスチャマップ212内の2つ以上のビデオピクセル216に関連付けることができる。図示した実施形態においては、力覚テクスチャマップ222は、ビデオピクセル216のすべてのペアが単一の力覚ピクセル110にマッピングされ得るように、ビデオテクスチャマップ212の半分の空間分解能を有する。
図7に図示したように、2次元座標(x1,y1)および(x2,y2)として特定された2つのビデオピクセル216は、2次元座標(u1,v1)として特定される単一の力覚ピクセル110に関連付けられており、ビデオピクセル216の他のペアは、同一の方式で他の力覚ピクセル110にマッピングされている。他の構成も他の実施形態において可能である。
【0063】
いくつかの実施形態においては、力覚テクスチャマップ222は、キーフレームに対応する一連の画像であり得る。例えば、力覚テクスチャマップ222は、2つの隣接ビデオテクスチャマップ間にまたは2つの隣接ビデオフレーム間に配置され得る。このような構成においては、力覚テクスチャマップ内の力覚ピクセル(力覚データ修飾子を含む)を、2つの隣接ビデオテクスチャマップ間のまたは力覚テクスチャマップのためのタイムスタンプを囲むビデオフレーム間の補間値に基づいて決定することができる。
【0064】
少なくともいくつかの実施形態においては、力覚テクスチャマップは、単色画像であり、単色画像の各ピクセルは、そのピクセルに関連付けられた力覚データ修飾子を表す値を有する。例えば、力覚テクスチャマップは、グレーマップであり得る。一例においては、各ピクセルは、0から255の範囲にある8ビットデータの値を有し得る。16ビット、32ビットなどといった他のデータタイプも可能であり得るピクセルは、異なる力覚データ修飾子を表す異なる値を有し得る。他の実施形態においては、力覚テクスチャマップは、各ピクセルのための複数の力覚データ修飾子を表すための複数のカラーの画像である。
【0065】
図8を参照すれば、1つの可能な実施形態においては、力覚ピクセル110は、ピクセル識別子230および1つまたは複数の力覚エフェクト修飾子232を含み得る。ピクセル識別子230は、各力覚ピクセルを特定するために使用され得る。少なくともいくつかの実施形態においては、ピクセル識別子は、他の力覚ピクセル110のうちの(または、力覚テクスチャマップ222内の)関連力覚ピクセル110の位置を特定する座標を含む。力覚ピクセル110の座標は、ビデオテクスチャマップ212内のビデオピクセル216と対応する力覚テクスチャマップ222内の力覚ピクセル110との間のマップために使用され得る。例えば、
図7に図示したように、力覚ピクセル110は、ビデオピクセル216の1つまたは複数の2次元座標(x,y)に関連付けられ得る2次元座標(u,v)を有する。
【0066】
力覚エフェクト修飾子232は、力覚トラック112を修正するために使用される情報を含む。少なくともいくつかの実施形態においては、各力覚ピクセル110は、力覚トラック112内の力覚データの少なくとも一部(例えば、力覚エフェクトを生成するために使用される1つまたは複数のパラメータ)を編集することを可能にする、1つまたは複数の力覚エフェクト修飾子232を含む、または関連付けられる、それによって、力覚アクチュエータの動作を修正している。図示した実施形態においては、各力覚ピクセル110は、2つの力覚エフェクト修飾子232(すなわち、第1の力覚エフェクト修飾子232Aおよび第2の力覚エフェクト修飾子232B)に関連付けられている。各力覚ピクセル110内の複数の力覚エフェクト修飾子232は、力覚トラック112内の力覚データ内の異なるパラメータを修正するために使用される。
【0067】
1つの可能な実施形態においては、力覚エフェクト修飾子232は、力覚エフェクトの大きさ(振幅)を調整するための減衰データを含む。他の可能な実施形態においては、力覚エフェクト修飾子232は、周波数、波形、シャープネス、および力覚エフェクトの他の可能な属性、ならびに力覚エフェクトを生成するための1つまたは複数のアクチュエータの選択を含む他のパラメータを調整するためのデータを含む。
【0068】
力覚テクスチャマップに関する非単色符号化については、力覚データ修飾子の各々が画像プロパティにマッピングされている必要がある。例えば、各力覚ピクセルが2つのパラメータを定義するための2つの力覚データ修飾子を含み、第1の力覚データ修飾子が赤ピクセル値を有し第2の力覚データ修飾子が緑ピクセル値を有するように、RGBカラー値内の2つのカラーを使用して2つの力覚データ修飾子を定義することができる。カラーの他の組合せ(例えば、赤と青、または緑と青)も可能である。各力覚ピクセルが3つのパラメータを定義するための3つの力覚データ修飾子を含み、第1の力覚データ修飾子が赤ピクセル値を有し第2の力覚データ修飾子が緑ピクセル値を有し第3の力覚データ修飾子が青ピクセル値を有するように、RGBカラー値を使用して3つの力覚データ修飾子を定義することができる。上記の例においては、RGBカラーシステムが3つの力覚データ修飾子をサポートしているだけであるため、カラー値を使用するマッピングは、既存の符号化の範囲によって限定され得る。符号化フォーマットがレイヤをサポートすることが可能な他の実施形態においては、複数の力覚データ修飾子の各々は、別個のレイヤ内の単色画像であり得る。この場合、各力覚ピクセルのための力覚データ修飾子の数が無制限となることが可能になり得る。
【0069】
いくつかの可能な実施形態においては、力覚エフェクト修飾子232は、数値として表され得る。例として、各力覚エフェクト修飾子232は、0から255の範囲にある値などの8ビットの値を有する。他の可能な実施形態においては、力覚エフェクト修飾子232は、異なる方法で表され得る。
【0070】
図9は、力覚データ修飾子232を生成するための例示的な方法240を図示するフローチャートである。図示した実施形態においては、動作242において、力覚エフェクトオーサリングデバイス102は、力覚エフェクトオーサリングデバイス102の、ユーザインターフェース150(例えば、出力デバイス164)などといった、表示デバイス上に力覚テクスチャマップ222を表示し得る。その後、動作244において、力覚エフェクトオーサリングデバイス102は、力覚エフェクトオーサリングデバイス102の、入力デバイス162などといった、入力デバイスを介して1つまたは複数の力覚データ修飾子の値を受信する。動作246において、力覚エフェクトオーサリングデバイス102は、その後、力覚データ修飾子の値の入力を表すために更新された修正後の力覚テクスチャマップ222を表示し得る。
【0071】
図10を参照すれば、力覚データ修飾子の値のユーザ入力を受信するためのユーザインターフェース250の1つの可能な実施形態を図示している。ユーザインターフェース250は、力覚エフェクトオーサリングデバイス102のユーザインターフェース150を使用して実装され得る。本例実施形態においては、ユーザインターフェース250は、マップディスプレイセグメント252、エリア選択セグメント254、および1つまたは複数のパラメータ選択セグメント256(256Aおよび256Bを含む)を含む。
【0072】
ユーザインターフェース250は
図10に図示したようなものに限定されないことは理解されよう。ユーザインターフェース250は、既存の画像およびビデオ編集ソフトウェアまたはツールの任意のユーザインターフェースであり得る。いくつかの実施形態においては、本開示の力覚エフェクトオーサリングデバイス102は、1つまたは複数の既存の画像およびビデオ編集ツールに組み込まれ得る、または使用して実装され得る、したがって、ユーザインターフェース250は、そのような既存の画像およびビデオ編集ツールのユーザインターフェースによって実装されてもよい。
【0073】
マップディスプレイセグメント252は、力覚テクスチャマップ222を表示するために使用される。少なくともいくつかの実施形態においては、マップディスプレイセグメント252に表示される力覚テクスチャマップ222は、異なる力覚データ修飾子の値が入力されると少なくとも部分的に変更され得る。
【0074】
エリア選択セグメント254は、ユーザが選択することが可能な力覚テクスチャマップ222内のエリアを選択および/または表示するために使用される。エリアが力覚テクスチャマップ222上で選択されると、ユーザは、1つまたは複数の力覚データ修飾子の値を入力して、選択されたエリア内の力覚ピクセルに関連付けられた力覚エフェクトを調整することができる。エリアは、個々の力覚ピクセルまたは力覚ピクセルのグループであり得る。ユーザが力覚テクスチャマップ222内のエリアを選択することが可能となるように様々な方法が使用され得る。例えば、ユーザは、1つまたは複数の力覚ピクセルを個々に選択または複数の力覚ピクセルを選択するために力覚テクスチャマップ222上に領域(例えば、矩形または円形)を描画するなどといった、エリアを定義するために、周辺機器入力デバイス(例えば、マウス)を使用し得る。
【0075】
パラメータ選択セグメント256は、ユーザが力覚データ修飾子の値を調整することを可能にするためのコントロール要素258(258Aおよび258Bを含む)を提示し得る。ボタン、スライダ、リストボックス、スピナー、およびドロップダウンリストなどといった、様々なタイプのコントロール要素258が使用され得る。図示した実施形態においては、第1のパラメータ選択セグメント256Aおよび第2のパラメータ選択セグメント256Bは、ユーザがバーに沿ってハンドルの位置を変更して力覚データ修飾子の値(例えば、第1のパラメータ選択セグメント256A内のパラメータ1および第2のパラメータ選択セグメント256B内のパラメータ2)を選択することができるように、第1のスライダ258Aおよび第2のスライダ258Bを含む。他の実施形態においては、ユーザインターフェース250は、本明細書において図示したものとは異なる構成、配置、およびレイアウトを有する。
【0076】
ここで
図11〜15を参照すれば、コンテンツデータ114に基づいて再生されるコンテンツのための力覚エフェクトをレンダリングするための1つの可能な例示的な方法を図示している。本方法は、
図2に記載したような動作134を実施し得る。
【0077】
図11は、
図1に示したような力覚対応装置104の1つの多くの可能な実施形態のブロック図を図示している。力覚対応装置104は、様々な構成があり得る。力覚対応装置104は、セルラ電話、スマートフォン、携帯情報端末(PDA)、ポータブル音楽プレーヤ、ポータブルビデオプレーヤ、ゲームシステム、バーチャルリアリティ(VR)システム、バーチャルリアリティヘッドセット、360度ビデオヘッドセット、車両システム、ナビゲーションシステム、デスクトップ、ラップトップコンピュータ、電子電化製品(例えば、テレビ、オーブン、洗濯機、ドライヤ、冷蔵庫、または照明システム)、座席、ヘッドセット、または力覚アクチュエータを有する他のデバイスが付いたIMAX(登録商標)シアターなどの映画館、および処理情報を処理するだけでなく力覚フィードバックを提供もすることが可能な任意の他の電子デバイスまたはコンピュータデバイスなどといった、力覚エフェクトを伝えるために使用され得る任意のタイプのデバイスであり得る。
【0078】
力覚対応装置104は、入力デバイス302、プロセッサ304、メモリ306、アクチュエータドライブ回路308、およびアクチュエータ310を含む。いくつかの実施形態においては、
図11に図示したように、入力デバイス302、プロセッサ304、メモリ306、アクチュエータドライブ回路308、およびアクチュエータ310は、ユーザが身に着けたり運んだりすることができる単一のデバイスに組み込まれる。他の実施形態においては、少なくとも1つの入力デバイス302、プロセッサ304、メモリ306、アクチュエータドライブ回路308、およびアクチュエータ310は、他のものとは別に配置され、無線または有線のいずれかで互いに接続される。
【0079】
入力デバイス302は、力覚対応装置104または力覚対応装置104のユーザに関連付けられた1つまたは複数のイベントを、または、力覚フィードバックでユーザに通知することができる、ユーザによって行われた、1つまたは複数のイベントを、モニタまたは検出するように構成される。入力デバイス302は、信号をプロセッサ304に入力する任意のデバイスである。
【0080】
入力デバイス302の例としては、タッチセンサ型サーフェス、または、マウス、タッチパッド、ミニジョイスティック、スクロールホイール、トラックボール、ゲームパッド、もしくはゲームコントローラなどといったデバイス104の筐体に設けられた他のタイプのユーザインターフェースがある。入力デバイス302の別の例としては、キー、ボタン、スイッチまたは他のタイプのユーザインターフェースなどの制御デバイスがある。入力デバイス302のさらに別の例としては、信号をプロセッサ304に入力するトランスデューサがある。入力デバイス302として使用され得るトランスデューサの例は、1つまたは複数のアンテナおよびセンサを含む。
【0081】
センサは、刺激を受信したことに応じて信号を出力する任意の機器または他のデバイスであり得る。センサは、プロセッサに配線接続され得る、または、プロセッサに無線で接続され得る。センサは、様々な異なる状況、イベント、環境状況、デバイス104の動作もしくは状況、他の人々もしくはオブジェクトの存在、またはセンサを刺激し得る任意の他の状況もしくはモノを検出またはセンシングするために使用され得る。
【0082】
センサの例は、マイクロフォンなどの音響またはサウンドセンサと、振動センサと、呼気分析器、一酸化炭素および二酸化炭素センサ、ならびにガイガーカウンタなどといった化学および粒子センサと、電圧検出器またはホール効果センサなどの電気および磁気センサと、フローセンサと、GPS受信機、高度計、ジャイロスコープ、磁力計、または加速度計などといったナビゲーションセンサまたは機器と、圧電材料、レンジファインダ、オドメータ、速度計、衝撃検出器などといった位置、近接、および動き関連センサと、電荷結合素子(CCD)、CMOSセンサ、赤外線センサ、および光検出器などといったイメージングおよび他の光学センサと、気圧計、圧度計、および触覚センサなどといった圧力センサと、圧電センサおよび歪みゲージなどの力センサと、温度計、熱量計、サーミスタ、熱電対、および高温計などといった温度および熱センサと、モーション検出器、三角測量センサ、レーダ、フォトセル、ソナー、およびホール効果センサなどといった近接および存在センサと、バイオチップと、血圧センサ、脈拍センサ、血糖センサ、および心臓モニタなどといった生体センサとを含む。加えて、センサは、いくつかの実施形態においてセンサおよびアクチュエータの両方として機能する圧電ポリマーなどのスマート材料で形成され得る。
【0083】
様々な実施形態が単一の入力デバイスまたは2つ以上の入力デバイスを含み得る。加えて、様々な実施形態が異なるタイプの入力デバイスを含み得る。例えば、少なくともいくつかの可能な実施形態は、スイッチおよびアンテナまたはセンサなどのトランスデューサを含む。入力デバイス302が刺激され信号をプロセッサ304に入力すると、プロセッサ304は、デバイス104を持っている、身に着けている、またはやりとりしている人間に力覚エフェクトを提供するようにアクチュエータ310を動作する。
【0084】
プロセッサ304は、情報を処理するように構成される、任意のデバイス、要素、または回路であり得るし、任意の適切なアナログまたはデジタル回路を含み得る。プロセッサ118はまた、命令を実行するプログラマブル回路を含み得る。プログラマブル回路の例としては、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路(ASIC)、プログラマブルゲートアレイ(PLA)、フィールドプログラマブルゲートアレイ(FPGA)、または命令を実行するのに適した任意の他のプロセッサもしくはハードウェアを含む。様々な実施形態において、プロセッサ118は、単一のユニットまたは2つ以上のユニットの組合せであり得る。プロセッサ118が2つ以上のユニットを含む場合には、ユニットは、単一のコントローラにまたは別個のデバイスに物理的に位置し得る。プロセッサ304は、デバイス104のすべてを動作する同一のプロセッサであり得る、または、別個のプロセッサであり得る。プロセッサ304は、どの力覚エフェクトを再生するかをおよびエフェクトが高レベルパラメータに基づいて再生される順序を決定し得る。一般に、特定の力覚エフェクトを定義する高レベルパラメータは、大きさ、周波数、および期間を含む。ストリーミングモータコマンドなどの低レベルパラメータも、特定の力覚エフェクトを決定するために使用され得る。
【0085】
プロセッサ304は、入力デバイス302から信号またはデータを受信し、制御信号を出力してアクチュエータドライブ回路308を駆動する。プロセッサ304によって受信されたデータは、任意のタイプのパラメータ、命令、フラグ、またはプロセッサ、プログラムモジュール、および本明細書に開示の他のハードウェアによって処理される他の情報であり得る。
【0086】
メモリデバイス306は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気的に消去可能プログラマブルリードオンリーメモリ(EEPROM)、フラッシュメモリ、磁気メモリ、光学メモリ、または任意の他の適切なメモリ技術などといった任意のタイプのストレージデバイスまたはコンピュータ可読媒体であり得る。メモリ306はまた、揮発性の組合せおよび不揮発性メモリを含み得る。メモリ306は、プロセッサ304によって実行される命令を記憶している。メモリ306はまた、プロセッサ304の内部に位置し得る、または内部および外部メモリの任意の組合せであり得る。
【0087】
命令について、メモリ306は、プロセッサ304によって実行されると、アクチュエータドライブ回路308のための制御信号を生成する命令であるアクチュエータドライブモジュール314を含む。アクチュエータドライブモジュール314はまた、アクチュエータ310からのフィードバックを決定し、それに応じて制御信号を調整し得る。
【0088】
アクチュエータドライブ回路308は、アクチュエータドライブモジュール314から力覚信号(本明細書では、制御信号とも称する)を受信する回路である。力覚信号は、力覚エフェクトに関連付けられた力覚データを具現化し、力覚データは、アクチュエータドライブ回路308がアクチュエータドライブ信号を生成するために使用するパラメータを定義する。例示的な実施形態においては、そのようなパラメータは、電気特性に関連する、または関連付けられている。力覚データによって定義され得る電気特性の例としては、周波数、振幅、位相、反転、期間、波形、アタックタイム、立ち上がり時間、フェードタイム、あるイベントに対するラグまたはリードタイムを含む。アクチュエータドライブ信号は、アクチュエータ310に適用され1つまたは複数の力覚エフェクトを引き起こす。
【0089】
本明細書では、力覚出力デバイスとも称する、アクチュエータ310は、力覚エフェクトを生成するように動作する。アクチュエータ310は、力覚信号をアクチュエータドライブ回路308に送信するアクチュエータドライブモジュール314を実行するプロセッサ304によって制御される。アクチュエータドライブ回路308は、その後、アクチュエータドライブ信号を生成およびアクチュエータ310に適用してアクチュエータ310を駆動する。アクチュエータ310に適用されると、アクチュエータドライブ信号は、アクチュエータ310を駆動および制動することによって力覚エフェクトをアクチュエータ310に生成させる。
【0090】
アクチュエータ310には様々なタイプがあり得る。図示した実施形態においては、アクチュエータは、バネに取り付けられた重量体が前後に駆動されるリニア共振アクチュエータ(LRA)などの共振アクチュエータである。他の実施形態においては、アクチュエータは、ソレノイド共振アクチュエータ(SRA)である。
【0091】
他のタイプの電磁気アクチュエータはまた、偏心重量体がモータによって動かされる偏心モータ(ERM)、または、圧電物質、電気活性ポリマー、または形状記憶合金などといった「スマート材料」などを使用する。アクチュエータ310はまた、広義には、静電摩擦(ESF)、超音波表面摩擦(USF)を使用する、または超音波力覚トランスデューサを用いて音響放射圧を誘導する、または力覚回路基板およびフレキシブルもしくは可変サーフェスを使用する、またはエアジェットを使用した空気の吹き付けなどの放射力覚出力を提供するなどといった、非機械式または非振動式デバイスを含む。
【0092】
装置104は2つ以上のアクチュエータ310を含み得るし、各アクチュエータは別個のアクチュエータドライブ回路308を含み得るし、すべてはプロセッサ304に接続されている。2つ以上のアクチュエータを用いる実施形態においては、各アクチュエータは、デバイス上に広範囲の力覚エフェクトを作成するために異なる出力性能を有し得る。
【0093】
図1にも図示したように、力覚対応装置104は、コンテンツデータ114に基づいてコンテンツを提示するように構成される、コンテンツ提示デバイス108を備える。図示した例においては、コンテンツ提示デバイス106は、ビデオコンテンツを提示するための表示デバイス316を備える。表示デバイス316は、表示スクリーンまたはウェアラブル表示デバイス(例えば、ヘッドマウントディスプレイ)などといった、様々な構成であり得る。
【0094】
図示した実施形態においては、
図1に図示したような力覚エフェクトレンダリングデバイス106は、力覚対応装置104内に少なくとも1つのデバイスおよび要素を含み得る。例えば、力覚エフェクトレンダリングデバイス106は、プロセッサ304、アクチュエータドライブモジュール314を含むメモリ306、およびアクチュエータドライブ回路308を備え得る。他の例においては、力覚エフェクトレンダリングデバイス106は、
図11に図示したものより多くのまたは少ないデバイスおよび要素を備え得る。
【0095】
図12〜16は、力覚エフェクトを生成するための例示的な方法350を図示している。
図12では、いくつかの実施形態において、方法350は、力覚対応装置104によって行われる。他の実施形態においては、方法350は、力覚対応装置104に関連付けられたまたは力覚対応装置104から独立した、他のコンピュータデバイスを使用して行われ得る。
【0096】
動作352において、力覚対応装置104は、力覚トラック112および複数の力覚ピクセル110を受信する。本明細書に記載しているように、力覚トラック112は、力覚アクチュエータ310の動作を定義する力覚データを含む。力覚ピクセル110は、力覚データ修飾子232を含む。力覚ピクセル110は、ビデオ214の少なくとも1つのフレーム218を表すビデオテクスチャマップ212内のビデオピクセル216に関連付けられている。
【0097】
動作354において、装置104は、ビデオを再生すると力覚トラック112をビデオ214と同期させるように動作する。少なくともいくつかの可能な実施形態においては、装置104は、ビデオ214のタイムスタンプおよび力覚トラック112を取得し、タイムスタンプに基づいて力覚トラック112をビデオのフレームと同期させる。力覚トラック112をビデオ214と同期させるための他の方法も他の実施形態において可能である。
【0098】
動作356において、装置104は、ビデオ214のフレーム218内の関心地点320を特定するように動作する。関心地点320は、ビデオフレーム218内の1つまたは複数の様々な点であり得る。いくつかの実施形態においては、関心地点320は、ユーザまたはビューアがビデオフレーム218を眺望している点である。他の実施形態においては、関心地点320は、ユーザまたはビューアがビデオフレーム218を提示している表示デバイス上でポインタまたはカーソルを置いた点である。ビデオ214は、360度ビデオまたは3次元ビデオであり、関心地点320を、
図13に図示したようなユーザパースペクティブベクトル322(本明細書では、ルックベクトルとも称する)などの3次元ベクトルとして表すことができる。
【0099】
関心地点320は、ビデオフレーム218に対応するビデオテクスチャマップ212内の1つのビデオピクセル216を含み得る。関心地点320を表すビデオピクセル216は、ターゲットビデオピクセル324として特定され得る。可能な他の実施形態においては、関心地点320は、ビデオテクスチャマップ212内の複数のビデオピクセル216を含む。関心地点320を特定する例示的方法を、
図14を参照してさらに説明する。
【0100】
動作358において、装置104は、関心地点320に基づいてターゲット力覚ピクセル330(
図15)を決定するように動作する。ターゲット力覚ピクセル330は、ターゲットテクスチャマップ212に対応する力覚テクスチャマップ222内の1つの力覚ピクセル110として特定される。少なくともいくつかの実施形態においては、ターゲット力覚ピクセル330は、対応するターゲットテクスチャマップ212内のターゲットビデオピクセル324に対応する。例えば、ターゲット力覚ピクセル330は、ビデオテクスチャマップ212内のターゲットビデオピクセル324を力覚テクスチャマップ222内の対応する力覚ピクセルにマッピングすることによって決定される。他の可能な実施形態においては、ターゲット力覚ピクセル330は、ターゲットビデオピクセルまたはピクセル324に対応する2つ以上の力覚ピクセル110として特定される。
【0101】
動作360において、装置104は、ターゲット力覚ピクセル330に関連付けられたターゲット力覚データ修飾子334を取得する。
図16に図示したように、ターゲット力覚データ修飾子334は、ターゲット力覚ピクセル330の座標230を特定して座標230内の力覚データ修飾子232を読み出すことによって決定され得る。力覚ピクセル110は、複数の力覚データ修飾子232を有しており、それゆえ複数のターゲット力覚データ修飾子334が得られる。
【0102】
動作362において、装置104は、ターゲット力覚データ修飾子334に基づいて力覚トラック112内の力覚データを修正するように動作する。
図16に図示したように、いくつかの実施形態において、修正後の力覚トラック340は、修正後の力覚データを有するように生成され得る。
【0103】
力覚データ内の1つまたは複数のパラメータは、ターゲット力覚データ修飾子334がどのパラメータに関連しているかに基づいて調整され得る。本明細書に記載しているように、ターゲット力覚データ修飾子334は、例えば、力覚エフェクトの大きさ(振幅)、周波数、波形、シャープネス、および他の可能な属性を修正することが可能である。
【0104】
動作364において、装置104は、修正後の力覚データを含む修正後の力覚トラック340に基づいて力覚アクチュエータ310の動作を制御するように動作する。他の可能な実施形態においては、複数の力覚アクチュエータ310は、1つまたは複数の修正後の力覚トラック340に基づいて同時にまたは個別に制御され得る。
【0105】
図14を参照すれば、関心地点320を特定する例示的方法370を記載している。いくつかの実施形態においては、方法370は、力覚対応装置104によって行われ得る。他の実施形態においては、方法370は、力覚対応装置104に関連付けられたまたは力覚対応装置104から独立した、他のコンピュータデバイスを使用して行われ得る。
【0106】
動作372において、力覚対応装置104は、ユーザパースペクティブベクトル322を決定する。少なくともいくつかの実施形態においては、ユーザパースペクティブベクトル322は、3次元ベクトルであり、3次元空間の原点380または多面体382におけるカメラまたは目として修正される。図示した実施形態においては、ユーザパースペクティブベクトル322は、ベクトルV(d
x,d
y,d
z)で表され得る。
【0107】
可能な実施形態においては、ビデオテクスチャマップ212は、原点380の周囲の3次元空間382に射影され得る。いくつかの実施形態においては、ビデオテクスチャマップ212は、
図13に図示したような球面に射影される。他の実施形態においては、ビデオテクスチャマップ212は、非球状多面体に投影され得る。
【0108】
動作374において、装置104は、3次元空間382上のユーザパースペクティブベクトル322とビデオテクスチャマップ212の射影との間の交点384を決定する。
【0109】
動作376において、装置104は、ビデオテクスチャマップ212内のターゲットビデオピクセル324として交点384を特定する。例として、ここで、3次元空間382は球面であり、ターゲットビデオピクセル324(または、交点384)の座標(u,v)は以下により算出される。
【0110】
動作378において、装置104は、ターゲットビデオピクセル324に基づいてターゲット力覚ピクセル330を決定するように動作する。上述したように、ターゲット力覚ピクセル330は、ビデオテクスチャマップ212内のターゲットビデオピクセル324を力覚テクスチャマップ222内の対応する力覚ピクセルにマッピングすることによって決定される。
図16に示したように、ターゲット力覚ピクセル330は、1つまたは複数のターゲット力覚データ修飾子334を提供する。
【0111】
図15を参照すれば、力覚エフェクトともにビデオコンテンツをレンダリングする例示的なプロセスを記載している。
図6に図示したように、360度ビデオなどのビデオが、決定されたフレームレートで一連のビデオフレーム218を表示することによって再生され得る。ビデオフレーム218は、複数のビデオテクスチャマップ212によって提示され得る。通常は、各ビデオフレーム218は、単一のビデオテクスチャマップ212によって提示される。しかしながら、いくつかの実施形態においては、単一のビデオテクスチャマップ212は、2つ以上のビデオフレーム218を実施し得る。したがって、ビデオフレーム218の時間分解能は、ビデオテクスチャマップ212の時間分解能と同一または異なり得る。ビデオフレーム218が表示されると、1つまたは複数の力覚トラック112が力覚エフェクトを提供するために実行される。図示した実施形態においては、2つの力覚トラック112Aおよび112Bが実行される。本明細書に記載しているように、1つまたは複数の力覚テクスチャマップ222は、力覚トラック内の力覚データを修正するために使用される。例えば、力覚テクスチャマップ222は、各力覚ピクセルのための1つまたは複数の力覚データ修飾子を含む。力覚データ修飾子は、力覚トラック内の力覚データを修正するために使用される。各力覚テクスチャマップ内の複数の力覚ピクセルが力覚データ修飾子の異なるセットを有し得るため、力覚エフェクトを、ビューアのパースペクティブなどの関心地点が位置する特定のオブジェクトに局在させることができる。本明細書に記載しているように、空間および/または時間分解能は、力覚テクスチャマップとビデオテクスチャマップとの間で同一または異なり得る。
【0112】
ここで
図17〜18を参照すれば、力覚エフェクトを生成するための別の例示的な方法を記載している。
【0113】
図17は、力覚ピクセル110の別の例示的なセットのデータ構造を図示している。本実施形態においては、力覚ピクセル110は、1つまたは複数の力覚アクチュエータ310を制御するための力覚データを含む。このような構成においては、力覚エフェクトは、力覚トラック112を必要としない力覚ピクセル110を使用してレンダリングされ得る。実際には、力覚トラック112は、力覚ピクセル110に符号化される。
【0114】
図示した実施形態においては、各力覚ピクセル110は、ピクセル識別子230および1つまたは複数の力覚パラメータ402を含む。
図8中の力覚ピクセル110と同様に、ピクセル識別子230は、各力覚ピクセルを特定するために使用される。少なくともいくつかの実施形態においては、ピクセル識別子は、他の力覚ピクセル110のうちの(または、力覚テクスチャマップ222内の)関連力覚ピクセル110の位置を特定する座標を含む。
【0115】
力覚パラメータ402は、1つまたは複数の力覚アクチュエータを駆動して力覚エフェクトを作成するための信号を生成するために使用される。パラメータの例としては、力覚エフェクトの振幅、周波数、波形、シャープネス、および他の可能な属性、ならびに力覚エフェクトを生成するための1つまたは複数のアクチュエータの選択を含む。
【0116】
図18は、
図17の力覚ピクセル110を使用して力覚エフェクトを生成するための可能な例示的な方法450である。いくつかの実施形態においては、方法450は、力覚対応装置104によって行われる。他の実施形態においては、方法450は、力覚対応装置104に関連付けられたまたは力覚対応装置104から独立した、他のコンピュータデバイスを使用して行われ得る。方法450は、力覚ピクセル110を除いて
図12の方法300と同様である。したがって、方法450における動作の詳細については可能な限り簡潔のために繰り返さない。
【0117】
動作452において、力覚対応装置104は、
図17に記載したような複数の力覚ピクセル110を受信する。各力覚ピクセルは、少なくとも1つのビデオピクセル216に関連付けられており、力覚データを含む。力覚データは、1つまたは複数の力覚アクチュエータの動作を定義する。ビデオピクセル216は、ビデオ214の少なくとも1つのフレーム218を表すビデオテクスチャマップ212に含まれる。
【0118】
動作454において、力覚対応装置104は、ビデオのフレーム218内の関心地点320を特定する。関心地点320は、ビデオのフレーム内のターゲットビデオピクセル234を含む。
【0119】
動作456において、力覚対応装置104は、力覚ピクセル110のうちのターゲット力覚ピクセル330を決定する。ターゲット力覚ピクセル330は、ビデオのフレーム内のターゲットビデオピクセル234に対応する。
【0120】
動作458において、力覚対応装置104は、ターゲット力覚ピクセル330に含まれるターゲット力覚データ470を取得する。ターゲット力覚データ470は、ターゲット力覚ピクセル330に含まれるデータであり、
図17に記載したような力覚パラメータ402を含む。本実施形態においては、力覚信号は、別個の力覚トラックなどの既存の信号を調節する代わりに、力覚ピクセル内のデータから直接合成され得る。
【0121】
動作460において、力覚対応装置104は、ターゲット力覚データ470に基づいて1つまたは複数の力覚アクチュエータの動作を制御するように動作する。
【0122】
このように、本開示は、既存のビデオツールチェーンおよび符号化を利用して力覚エフェクトをオーサリングおよび符号化するための簡潔な方法を提供し、少なくとも空間化のためにビデオ-力覚変換を可能にしている。本開示に従って、力覚エフェクトは、ビデオ編集ツールを使用して特定のオブジェクトに関するソースビデオをフィルタリングすることによってビデオシーンまたはフレーム内の特定のオブジェクトに局在させることができる。そのような局在化は、その後、そのオブジェクトのために計画された既存の力覚時系列を使用して適宜調整され得る。
【0123】
上述した様々な例および示唆は、例としてのみ提供したものであり、本開示の範囲を限定することを意図したものと解釈すべきではない。当業者は、本明細書に図示および記載の例および用途に倣うものではないが本開示の真の精神および範囲から逸脱することがないようになされ得る様々な修正および変更を容易に理解するであろう。