(57)【特許請求の範囲】
【請求項１】
プロセッサによって実行されたときに、周辺機器において経験されるハプティック効果を前記プロセッサに制御させる命令を記憶する非一時的コンピュータ可読媒体であって、制御するステップは、
ハプティックデータを有するハプティック効果定義を受信するステップと、
前記ハプティック効果の位置、前記ハプティック効果の距離、前記ハプティック効果の速度、前記ハプティック効果の方向、または前記ハプティック効果の流れのうちの少なくとも１つを有する空間化データを受信するステップと、
受信した前記空間化データに基づいて、前記ハプティック効果定義を変更するステップであって、前記ハプティック効果定義を変更するステップは、前記ハプティック効果定義を１つ以上のハプティック効果定義コンポーネントに分割するステップを有する、ステップと、
ハプティック命令および変更された前記ハプティック効果定義を前記周辺機器に送信するステップであって、前記ハプティック命令および変更された前記ハプティック効果定義を送信するステップは、前記１つ以上のハプティック効果定義コンポーネントを前記周辺機器に送信するステップを有する、ステップと、
前記ハプティック命令に応じて、前記周辺機器において変更された前記ハプティック効果定義に基づいて１つ以上のハプティック効果を１つ以上のハプティック出力装置に生成させるステップであって、変更された前記ハプティック効果定義に基づいて１つ以上のハプティック効果を１つ以上のハプティック出力装置に生成させるステップは、前記１つ以上のハプティック効果定義コンポーネントに基づいて前記１つ以上のハプティック効果を前記１つ以上のハプティック出力装置に生成させるステップを有する、ステップと、
前記空間化データに基づいて、少なくとも１つのハプティック効果定義コンポーネントの前記ハプティックデータのマグニチュード、少なくとも１つのハプティック効果定義コンポーネントの前記ハプティックデータの周波数、または少なくとも１つのハプティック効果定義コンポーネントの前記ハプティックデータの持続時間のうちの少なくとも１つを減衰するステップと、
を有する、非一時的コンピュータ可読媒体。
【請求項２】
前記空間化データに基づいて、少なくとも１つのハプティック効果定義コンポーネントの前記ハプティックデータのマグニチュード、少なくとも１つのハプティック効果定義コンポーネントの前記ハプティックデータの周波数、または少なくとも１つのハプティック効果定義コンポーネントの前記ハプティックデータの持続時間のうちの少なくとも１つをスケーリングするステップをさらに有する、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項３】
前記空間化データに基づいて、少なくとも１つのハプティック効果の再生を少なくとも１つのハプティック出力装置に遅延させるステップをさらに有する、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項４】
前記１つ以上のハプティック効果定義コンポーネントは異なる、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項５】
前記１つ以上のハプティック効果定義コンポーネントは同一である、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項６】
前記周辺機器は、コントローラまたはゲームパッドを備える、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項７】
前記１つ以上のハプティック効果を前記１つ以上のハプティック出力装置に生成させるステップは、前記周辺機器の１つ以上のユーザ入力エレメントにおける前記１つ以上のハプティック効果を前記１つ以上のハプティック出力装置に生成させるステップを有する、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項８】
少なくとも１つのユーザ入力エレメントは、デジタルボタン、アナログボタン、バンパ、方向パッド、アナログまたはデジタルスティック、ハンドル、あるいはトリガのうちの１つを備える、請求項７に記載の非一時的コンピュータ可読媒体。
【請求項９】
少なくとも１つのハプティック出力装置はアクチュエータを備える、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項１０】
変更された前記ハプティック効果定義に基づいて前記１つ以上のハプティック効果を前記１つ以上のハプティック出力装置に生成させるステップは、変更された前記ハプティック効果定義に基づいて複数の異なる減衰において複数のアクチュエータにおける前記１つ以上のハプティック効果を出力するステップを有する、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項１１】
変更された前記ハプティック効果定義に基づいて前記１つ以上のハプティック効果を前記１つ以上のハプティック出力装置に生成させるステップは、変更された前記ハプティック効果定義に基づいて逆勾配減衰によって複数のアクチュエータにおける前記１つ以上のハプティック効果を出力するステップを有する、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項１２】
変更された前記ハプティック効果定義に基づいて前記１つ以上のハプティック効果を前記１つ以上のハプティック出力装置に生成させるステップは、変更された前記ハプティック効果定義に基づいて、鳴動アクチュエータからターゲットアクチュエータへ、逆勾配減衰によって複数の前記鳴動アクチュエータおよび複数の前記ターゲットアクチュエータにおける前記１つ以上のハプティック効果を出力するステップを有する、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項１３】
変更された前記ハプティック効果定義に基づいて前記１つ以上のハプティック効果を前記１つ以上のハプティック出力装置に生成させるステップは、変更された前記ハプティック効果定義に基づいて、ターゲットアクチュエータから鳴動アクチュエータへ、逆勾配減衰によって複数の前記鳴動アクチュエータおよび複数の前記ターゲットアクチュエータにおける前記１つ以上のハプティック効果を出力するステップを有する、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項１４】
変更された前記ハプティック効果定義に基づいて前記１つ以上のハプティック効果を前記１つ以上のハプティック出力装置に生成させるステップは、変更された前記ハプティック効果定義に基づいて、遅延を伴って複数のアクチュエータにおいて１つ以上のハプティック効果を出力するステップを有する、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項１５】
変更された前記ハプティック効果定義に基づいて前記１つ以上のハプティック効果を前記１つ以上のハプティック出力装置に生成させるステップは、変更された前記ハプティック効果定義に基づいて、鳴動アクチュエータからターゲットアクチュエータへ、遅延を伴って複数の前記鳴動アクチュエータおよび複数の前記ターゲットアクチュエータにおいて前記１つ以上のハプティック効果を出力するステップを有する、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項１６】
変更された前記ハプティック効果定義に基づいて前記１つ以上のハプティック効果を前記１つ以上のハプティック出力装置に生成させるステップは、変更された前記ハプティック効果定義に基づいて、ターゲットアクチュエータから鳴動アクチュエータへ、遅延を伴って複数の前記鳴動アクチュエータおよび複数の前記ターゲットアクチュエータにおいて前記１つ以上のハプティック効果を出力するステップを有する、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項１７】
変更された前記ハプティック効果定義に基づいて１つ以上のハプティック効果を１つ以上のハプティック出力装置に生成させるステップは、変更された前記ハプティック効果定義に基づいて、時計回りまたは反時計回りに、遅延を伴って複数のアクチュエータにおいて前記１つ以上のハプティック効果を出力するステップを有する、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項１８】
前記ハプティック効果定義を変更するステップは、周辺機器のモーション、位置の変化、または配向の変化を検出するステップと、検出されたモーション、検出された位置の変化、または検出された配向の変化に基づいて空間化データを変更するステップと、変更された前記空間化データに基づいて変更された前記ハプティック効果定義を引き続き変更するステップと、を有し、
前記ハプティック命令および前記変更されたハプティック効果定義を送信するステップは、引き続き変更された前記ハプティック効果定義を前記周辺機器に送信するステップを有し、
変更された前記ハプティック効果定義に基づいて１つ以上のハプティック効果を１つ以上のハプティック出力装置に生成させるステップは、引き続き変更された前記ハプティック効果定義に基づいて、１つ以上の変更されたハプティック効果を前記１つ以上のハプティック出力装置に生成させるステップを有する、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項１９】
前記減衰するステップは、ゲーミングアプリケーション内の前記１つ以上のハプティック効果の位置、および前記ゲーミングアプリケーション内のユーザの位置に基づく、請求項１に記載の非一時的コンピュータ可読媒体。
【請求項２０】
周辺機器のユーザ入力エレメントにおいて経験されるハプティック効果を制御するためのコンピュータ実施方法であって、
ハプティックデータを有するハプティック効果定義を受信するステップと、
前記ハプティック効果の位置、前記ハプティック効果の距離、前記ハプティック効果の速度、前記ハプティック効果の方向、または前記ハプティック効果の流れのうちの少なくとも１つを有する空間化データを受信するステップと、
受信した前記空間化データに基づいて、前記ハプティック効果定義を変更するステップであって、前記ハプティック効果定義を変更するステップは、前記ハプティック効果定義を１つ以上のハプティック効果定義コンポーネントに分割するステップを有する、ステップと、
ハプティック命令および変更された前記ハプティック効果定義を前記周辺機器に送信するステップであって、前記ハプティック命令および変更された前記ハプティック効果定義を送信するステップは、前記１つ以上のハプティック効果定義コンポーネントを前記周辺機器に送信するステップを有する、ステップと、
前記ハプティック命令に応じて、前記周辺機器において変更された前記ハプティック効果定義に基づいて１つ以上のハプティック効果を１つ以上のハプティック出力装置に生成させるステップであって、変更された前記ハプティック効果定義に基づいて前記１つ以上のハプティック効果を前記１つ以上のハプティック出力装置に生成させるステップは、前記１つ以上のハプティック効果定義コンポーネントに基づいて前記１つ以上のハプティック効果を前記１つ以上のハプティック出力装置に生成させるステップを有する、ステップと、
前記空間化データに基づいて、少なくとも１つのハプティック効果定義コンポーネントの前記ハプティックデータのマグニチュード、少なくとも１つのハプティック効果定義コンポーネントの前記ハプティックデータの周波数、または少なくとも１つのハプティック効果定義コンポーネントの前記ハプティックデータの持続時間のうちの少なくとも１つを減衰するステップと、
を有する、コンピュータ実施方法。
【請求項２１】
前記空間化データに基づいて、少なくとも１つのハプティック効果定義コンポーネントの前記ハプティックデータのマグニチュード、少なくとも１つのハプティック効果定義コンポーネントの前記ハプティックデータの周波数、または少なくとも１つのハプティック効果定義コンポーネントの前記ハプティックデータの持続時間のうちの少なくとも１つをスケーリングするステップをさらに有する、請求項２０に記載のコンピュータ実施方法。
【請求項２２】
前記空間化データに基づいて、少なくとも１つのハプティック効果の再生を少なくとも１つのハプティック出力装置に遅延させるステップをさらに有する、請求項２０に記載のコンピュータ実施方法。
【請求項２３】
前記減衰するステップは、ゲーミングアプリケーション内の前記１つ以上のハプティック効果の位置、および前記ゲーミングアプリケーション内のユーザの位置に基づく、請求項２０に記載のコンピュータ実施方法。
【請求項２４】
周辺機器において経験されるハプティック効果を制御するためのシステムであって、
ハプティック空間化モジュールを記憶するように構成されたメモリと、
前記メモリに記憶された前記ハプティック空間化モジュールを実行するように構成されたプロセッサと、を備え、
前記プロセッサは、前記ハプティック空間化モジュールを実行するとき、ハプティックデータを有するハプティック効果定義を受信するように構成されており、
前記プロセッサは、さらに、前記ハプティック空間化モジュールを実行するとき、前記ハプティック効果の位置、前記ハプティック効果の距離、前記ハプティック効果の速度、前記ハプティック効果の方向、または前記ハプティック効果の流れのうちの少なくとも１つを有する空間化データを受信するように構成されており、
前記プロセッサは、さらに、前記ハプティック空間化モジュールを実行するとき、受信した前記空間化データに基づいて前記ハプティック効果定義を変更するように構成されており、
前記プロセッサは、さらに、前記ハプティック空間化モジュールを実行するとき、前記ハプティック効果定義を１つ以上のハプティック効果定義コンポーネントに分割するように構成されており、
前記プロセッサは、さらに、前記ハプティック空間化モジュールを実行するとき、ハプティック命令および変更された前記ハプティック効果定義を前記周辺機器に送信するように構成されており、
前記プロセッサは、さらに、前記ハプティック空間化モジュールを実行するとき、前記１つ以上のハプティック効果定義コンポーネントを前記周辺機器に送信するように構成されており、
前記プロセッサは、さらに、前記ハプティック空間化モジュールを実行するとき、前記ハプティック命令に応じて、前記周辺機器において変更された前記ハプティック効果定義に基づいて１つ以上のハプティック効果を１つ以上のハプティック出力装置に生成させるように構成されており、
前記プロセッサは、さらに、前記ハプティック空間化モジュールを実行するとき、前記１つ以上のハプティック効果定義コンポーネントに基づいて、前記１つ以上のハプティック効果を前記１つ以上のハプティック出力装置に生成させるように構成されており、
前記プロセッサは、さらに、前記ハプティック空間化モジュールを実行するとき、前記空間化データに基づいて、少なくとも１つのハプティック効果定義コンポーネントの前記ハプティックデータのマグニチュード、少なくとも１つのハプティック効果定義コンポーネントの前記ハプティックデータの周波数、または少なくとも１つのハプティック効果定義コンポーネントの前記ハプティックデータの持続時間のうちの少なくとも１つを減衰するように構成されている、
システム。
【請求項２５】
前記プロセッサは、さらに、前記ハプティック空間化モジュールを実行するとき、前記空間化データに基づいて、少なくとも１つのハプティック効果定義コンポーネントのマグニチュード、少なくとも１つのハプティック効果コンポーネントの前記ハプティックデータの周波数、または少なくとも１つのハプティック効果コンポーネントの前記ハプティックデータの持続時間のうちの少なくとも１つをスケーリングするように構成されている、請求項２４に記載のシステム。
【請求項２６】
前記プロセッサは、さらに、前記ハプティック空間化モジュールを実行するとき、前記空間化データに基づいて、少なくとも１つのハプティック効果の再生を少なくとも１つのハプティック出力装置に遅延させるように構成されている、請求項２４に記載のシステム。
【請求項２７】
前記減衰は、ゲーミングアプリケーション内の前記１つ以上のハプティック効果の位置、および前記ゲーミングアプリケーション内のユーザの位置に基づく、請求項２４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、その開示が参照により本明細書に組み込まれる、２０１３年１１月１４日出願の米国特許仮出願第６１／９０４，３４２号の優先権を主張する。
【０００２】
一実施形態は一般的に装置を対象とし、より具体的にはハプティック効果を生成する装置を対象とする。
【背景技術】
【０００３】
ビデオゲームおよびビデオ・ゲーム・システムは、非常に人気がある。ビデオゲーム装置またはコントローラは典型的には、ユーザにフィードバックを提供するために、視覚および聴覚による合図を使用する。いくつかのインターフェース装置において、より一般的にはまとめて「ハプティックフィードバック」または「ハプティック効果」として知られる、運動感覚フィードバック（作用および抵抗力フィードバックなど）および／または触知フィードバック（振動、触感、および熱など）もまたユーザに提供される。ハプティックフィードバックは、ビデオ・ゲーム・コントローラまたはその他の電子機器とのユーザの相互作用を強化および簡素化する合図を提供できる。具体的には、振動効果または振動触知ハプティック効果は、ユーザに特定のイベントを警告するため、あるいはシミュレートまたは仮想環境の中でより大きい没入感を作り出すための現実的なフィードバックを提供するために、ビデオ・ゲーム・コントローラまたはその他の電子機器のユーザへの合図の提供において、有用である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
医療機器、自動車制御、遠隔制御、および動作を引き起こすためにユーザ入力エレメントと相互作用するその他類似の装置など、その他の装置もまた、ハプティックフィードバックまたはハプティック効果の恩恵を受けている。例えば、および非限定的に、医療機器のユーザ入力エレメントは、医療機器の遠位末端において患者の身体内で動作を引き起こすために、医療機器の近位部分において患者の身体の外側でユーザによって動作されてもよい。ハプティックフィードバックまたはハプティック効果は、ユーザに特定のイベントを警告するため、あるいは医療機器の遠位末端において患者との相互作用に関してユーザに現実的なフィードバックを提供するために、採用されてもよい。
【課題を解決するための手段】
【０００５】
一実施形態は、周辺機器において経験されるハプティック効果を制御するシステムである。システムは、ハプティックデータを含むハプティック効果定義を受信する。システムはさらに、ハプティック効果の距離、ハプティック効果の方向、またはハプティック効果の流れを含む、空間化データを受信する。システムはさらに、受信した空間化データに基づいてハプティック効果定義を変更することを含む。システムはさらに、ハプティック命令および変更されたハプティック効果定義を周辺機器に送信することを含む。システムはさらに、１つ以上のハプティック出力装置に、ハプティック命令に応じて、周辺機器において変更されたハプティック効果定義に基づいて１つ以上のハプティック効果を生成させることを含む。
【図面の簡単な説明】
【０００６】
さらなる実施形態、詳細、利点、および変更は、添付図面と併せて取り入れられる、以下の好適な実施形態の詳細な説明より明らかになるだろう。
【図１】本発明の一実施形態に係るシステムのブロック図である。
【図２】本発明の実施形態に係る、コントローラを示す図である。
【図３】本発明の実施形態に係る、図２のコントローラの別の図である。
【図４】本発明の実施形態に係る、ホストコンピュータおよびディスプレイと併せたコントローラのブロック図である。
【図５】本発明の実施形態に係る、システムのための空間化ハプティック効果ソフトウェアスタックのブロック図である。
【図６】本発明の実施形態に係る、空間化ハプティック効果を設計するための例示的なユーザインターフェースを示す図である。
【図７】本発明の実施形態に係る、空間化ハプティック効果を設計するために使用されるコンポーネントのブロック図である。
【図８】本発明の実施形態に係る、直接再生のための空間化ハプティック効果を作成するために使用されるコンポーネントのブロック図、および空間化ハプティック効果を保存するために使用されるコンポーネントのブロック図である。
【図９】本発明の実施形態に係る、クロスオーバー再生のための空間化ハプティック効果を作成するために使用されるコンポーネントのブロック図、および空間化ハプティック効果を保存するために使用されるコンポーネントのブロック図である。
【図１０】本発明の実施形態に係る、空間化ハプティック効果を直接再生するために使用されるコンポーネントのブロック図である。
【図１１】本発明の実施形態に係る、プログラマブルクロスオーバーを使用して空間化ハプティック効果を再生するために使用されるコンポーネントのブロック図である。
【図１２】本発明の実施形態に係る、空間化ハプティック効果の例示的な４チャネル直接再生を示す図である。
【図１３】本発明の実施形態に係る、空間化ハプティック効果の例示的なクロスオーバー再生を示す図である。
【図１４】本発明の実施形態に係る、空間化エンジンの例示的なユーザインターフェースを示す図である。
【図１５】本発明の実施形態に係る、ハプティック効果アプリケーション・プログラミング・インターフェースのアーキテクチャ図である。
【図１６】本発明の実施形態に係る、空間化ハプティック効果を生成するファームウェアのアーキテクチャ図である。
【図１７】本発明の実施形態に係る、コントローラのための例示的な指向性モデルを示す図である。
【図１８】本発明の実施形態に係る、空間化ハプティック効果ファームウェアスタックのブロック図である。
【図１９】本発明の実施形態に係る、コントローラのトリガにおいて経験される空間化ハプティック効果を提供するシステムのアーキテクチャ図である。
【図２０】本発明の実施形態に係る、空間化ハプティック効果をプレビューおよび変更するための例示的なユーザインターフェースを示す図である。
【図２１】本発明の実施形態に係る、オーディオ信号を空間化ハプティック効果に変換するための例示的なユーザインターフェースを示す図である。
【図２２】本発明の実施形態に係る、空間化ハプティック効果をプレビューするシステムのアーキテクチャ図である。
【図２３】本発明の実施形態に係る、空間化ハプティック効果を生成するシステムのアーキテクチャ図である。
【図２４】本発明の実施形態に係る、空間化ハプティック効果を生成するファームウェアのアーキテクチャ図である。
【図２５】本発明の実施形態に係る、例示的なオーディオアーキテクチャを示す図である。
【図２６】本発明の実施形態に係る、オーディオ効果を空間化ハプティック効果に変換する例示的なオーディオドライバを示す図である。
【図２７】本発明の実施形態に係る、ＡＰＩまたはライブラリ中に存在する例示的な空間化エンジンを示す図である。
【図２８】本発明の実施形態に係る、コントローラ中に存在する例示的な空間化エンジンを示す図である。
【図２９】本発明の実施形態に係る、例示的な空間化ハプティック効果を示す図である。
【図３０】本発明の別の実施形態に係る、例示的な空間化ハプティック効果を示す図である。
【図３１】本発明の実施形態に係る、例示的な空間化ハプティック効果を示す図である。
【図３２】本発明の別の実施形態に係る、例示的な空間化ハプティック効果を示す図である。
【図３３】本発明の別の実施形態に係る、例示的な空間化ハプティック効果を示す図である。
【図３４】本発明の別の実施形態に係る、例示的な空間化ハプティック効果を示す図である。
【図３５】本発明の別の実施形態に係る、例示的な空間化ハプティック効果を示す図である。
【図３６】本発明の別の実施形態に係る、例示的な空間化ハプティック効果を示す図である。
【図３７】本発明の別の実施形態に係る、例示的な空間化ハプティック効果を示す図である。
【図３８】本発明の別の実施形態に係る、例示的な空間化ハプティック効果を示す図である。
【図３９】本発明の別の実施形態に係る、例示的な空間化ハプティック効果を示す図である。
【図４０】本発明の別の実施形態に係る、例示的な空間化ハプティック効果を示す図である。
【図４１】本発明の別の実施形態に係る、例示的な空間化ハプティック効果を示す図である。
【図４２】本発明の実施形態に係る、ハプティック効果の方向に基づくアクチュエータ間のハプティック効果の分配の一例を示す図である。
【図４３】本発明の実施形態に係る、ハプティック空間化モジュールの機能のフローチャートである。
【発明を実施するための形態】
【０００７】
一実施形態は、ゲームコントローラまたはゲームパッドなど、周辺機器において経験されるハプティックフィードバックを提供するシステムである。一実施形態において、空間化エンジンは、ハプティック効果定義などのハプティックデータを受信でき、空間化データに基づいてハプティックデータを変更でき、ここで空間化データは１つ以上のパラメータを含むことができる。このため、空間化エンジンは、ハプティック効果を局所化または空間化できる。より具体的には、空間化エンジンは、ハプティック効果の位置、距離、速度、流れ、および／または方向に基づいてアクチュエータまたはモータ上のハプティック効果をスケーリングまたは減衰することによって、ハプティック効果の位置、距離、速度、流れ、および／または方向を伝達するハプティック効果を生成できる。当業者が理解するように、ハプティック効果を「減衰」することによって、空間化エンジンはハプティック効果の意図される位置、距離、速度、流れ、および／または方向に基づいてハプティック効果のマグニチュード（ｍａｇｎｉｔｕｄｅ）、周波数、および／または持続時間を減少させることができる。空間化エンジンはさらに、異なるアクチュエータまたはモータ上で、ハプティック効果の再生を遅延させることによって、またはハプティック効果をスケーリングすることによって、コントローラ、ゲームパッド、またはその他の周辺機器上の運動を伝達するハプティック効果を生成できる。空間化エンジンは、ＡＰＩまたはライブラリのコンポーネントであってもよく、あるいはコントローラ、ゲームパッド、またはその他の周辺機器のためにファームウェア内に実装されることもできる。
【０００８】
一実施形態において、空間化エンジンはハプティック効果定義を受信できる。空間化エンジンは、１つ以上の空間化パラメータに基づいてハプティック効果定義を変更でき、変更されたハプティック効果定義は、空間化ハプティック効果定義として認識されることができる。一実施形態において、空間化ハプティック効果定義は、複数の空間化ハプティック効果定義コンポーネントに分割されることができ、各空間化ハプティック効果定義コンポーネントは、周辺機器の個別のアクチュエータまたはモータに送信されることができ、各アクチュエータまたはモータは、全体的な空間化ハプティック効果のコンポーネントが周辺機器のユーザ入力エレメントにおいて、または別途周辺機器内で、経験されるようにできる。空間化エンジンは、１つ以上の空間化パラメータなどの空間化データに基づいて、空間化ハプティック効果コンポーネントのうちの１つ以上をスケーリングまたは遅延させることができる。別の実施形態において、空間化ハプティック効果定義は周辺機器の各アクチュエータまたはモータに送信されることができ、各アクチュエータまたはモータは、空間化ハプティック効果が周辺機器のユーザ入力エレメントにおいて、または別途周辺機器内で、経験されるようにできる。空間化エンジンはさらに、１つ以上の空間化パラメータなどの空間化データに基づいて、空間化ハプティック効果のうちの１つ以上をスケーリングまたは遅延させることができる。このような空間化パラメータは、ハプティック効果の位置、距離、速度、流れ、および／または方向を定義する、１つ以上のパラメータを含むことができる。一実施形態において、空間化データ（例えば１つ以上の空間化パラメータ）は、周辺機器の検出されたモーションおよび／または位置に基づいて変更されることができる。例えば、周辺機器が回転または振動させられるとき、あるいは周辺機器が異なる場所に移動させられるときに、空間化データ（例えば１つ以上の空間化パラメータ）が変更される。変更された空間化データに基づいて、ユーザが変更された空間化ハプティック効果を経験するように、空間化データはさらにハプティック効果定義を変更できる。変更された空間化ハプティック効果の例は、変更された減衰、スケーリング、または遅延を備える空間化ハプティック効果を含むことができる。
【０００９】
一実施形態において、ハプティック効果定義は、複数のハプティック効果定義コンポーネントを含むように作成されることができる。空間化エンジンはハプティック効果定義を変更でき、ハプティック効果定義は、作成された複数のハプティック効果定義コンポーネントに分割されることができ、各作成されたハプティック効果定義コンポーネントは、周辺機器の個別のアクチュエータまたはモータに送信されることができ、各アクチュエータまたはモータは、全体的なハプティック効果のコンポーネントが周辺機器のユーザ入力エレメントにおいて、または別途周辺機器内で、経験されるようにできる。このようにして、ハプティック効果は、空間化の感覚を伝達できる。代替実施形態において、空間化ハプティック効果定義（または複数の空間化ハプティック効果定義コンポーネント）を周辺機器の複数のアクチュエータまたはモータに送信する代わりに、空間化エンジンは、空間化ハプティック効果定義（または複数の空間化ハプティック効果定義コンポーネント）を複数の周辺機器に送信できる。代替実施形態において、周辺機器は、コントローラまたはゲームパッドではなくむしろウェアラブルハプティック装置であってもよく、ウェアラブルハプティック装置は、ユーザが身体に着用してもよい、あるいはリストバンド、ヘッドバンド、眼鏡、リング、足輪、着衣に組み込まれるアレイなど、ユーザによって保持されることができる、そしてハプティック効果を生成する機構を含む、装置である。
【００１０】
図１は、本発明の一実施形態に係るシステム１０のブロック図を示す。一実施形態において、システム１０は、装置（例えばパーソナルコンピュータ、またはビデオ・ゲーム・コンソールなどのコンソール）の一部であり、システム１０は装置のハプティックトリガ制御機能性を提供する。別の実施形態において、システム１０は、装置（例えばパーソナルコンピュータまたはコンソール）から分離しており、装置の上記機能を遠隔的に提供する。単一のシステムとして示されているものの、システム１０の機能は分散システムとして実装されてもよい。システム１０は、情報を通信するためのバス１２またはその他の通信機構、および情報を処理するためにバス１２と動作可能に結合されたプロセッサ２２を含む。プロセッサ２２は、いずれのタイプの専用または汎用プロセッサであってもよい。システム１０は、プロセッサ２２によって実行される情報および命令を記憶するためのメモリ１４を、さらに含む。メモリ１４は、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、磁気または光ディスクなどのスタティックストレージデバイス、あるいはその他いずれかのタイプのコンピュータ可読媒体の、いずれかの組み合わせからなってもよい。
【００１１】
コンピュータ可読媒体は、プロセッサ２２によってアクセス可能ないずれの利用可能な媒体であってもよく、揮発性および不揮発性媒体、リムーバブルおよびノンリムーバブル媒体、通信媒体、ならびに記憶媒体の、いずれも含んでもよい。通信媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、あるいは搬送波またはその他の搬送機構などの変調データ信号中のその他のデータを含んでもよく、当該技術分野において周知のその他いずれの形態の情報配信媒体を含んでもよい。記憶媒体は、ＲＡＭ、フラッシュメモリ、ＲＯＭ、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、または当該技術分野において周知のその他いずれの形態の記憶媒体を含んでもよい。
【００１２】
一実施形態において、メモリ１４は、プロセッサ２２によって実行されたときに機能を提供するソフトウェアを記憶する。モジュールは、一実施形態における全体的な装置の残りの部分と同様に、システム１０のためのオペレーティングシステム機能を提供するオペレーティングシステム１５を含む。モジュールはさらに、周辺機器において経験される空間化ハプティック効果を生成する、ハプティック空間化モジュール１６を含む。特定の実施形態において、ハプティック空間化モジュール１６は複数のモジュールを含むことができ、各モジュールは、周辺機器において経験される空間化ハプティック効果を生成するための特殊な個別の機能を提供する。システム１０は典型的には、コントローラ３０などの周辺機器に制御機能を提供できる周辺ファームウェアなど、追加機能を含むために１つ以上の追加アプリケーションモジュール１８を含むことになる。
【００１３】
システム１０は、リモートソースからデータを送受信する実施形態において、赤外線、無線、Ｗｉ−Ｆｉ、またはセルラーネットワーク通信など、移動無線ネットワーク通信を提供するために、ネットワーク・インターフェース・カードなどの通信装置２０をさらに含む。別の実施形態において、通信装置２０は、イーサネット（登録商標）接続またはモデムなど、有線ネットワーク接続を提供する。
【００１４】
システム１０は、コントローラ３０に動作可能に接続されている。コントローラ３０は、システム１０への入力を提供するために使用される、周辺機器である。コントローラ３０は、無線接続または有線接続のいずれかを用いて、システム１０に動作可能に接続されることができる。コントローラ３０は、無線接続または有線接続のいずれかを用いてシステム１０と通信できるローカルプロセッサをさらに含むことができる。あるいは、コントローラ３０はローカルプロセッサを含まないように構成されてもよく、コントローラ３０に関連付けられた全ての入力信号および／または出力信号は、システム１０のプロセッサ２２によって直接取り扱いおよび処理されることができる。
【００１５】
コントローラ３０は、１つ以上のデジタルボタン、１つ以上のアナログボタン、１つ以上のバンパ、１つ以上の方向パッド、１つ以上のアナログまたはデジタルスティック、１つ以上のハンドル、および／またはユーザによって相互作用されることができ、システム１０への入力を提供できる１つ以上のユーザ入力エレメントを、さらに含むことができる。コントローラ３０はまた、ユーザによって相互作用されることができ、システム１０への入力を提供できる、１つ以上のアナログまたはデジタル・トリガ・ボタン（もしくは「トリガ」）も含むことができる。以下により詳細に記載されるように、コントローラ３０は、コントローラ３０の少なくとも１つのトリガ上に双方向性の押引力を印加するように構成された、モータ、またはその他のタイプのアクチュエータまたはハプティック出力装置を、さらに含むことができる。
【００１６】
コントローラ３０はまた、１つ以上のアクチュエータ、またはその他のタイプのハプティック出力装置も含むことができる。コントローラ３０のローカルプロセッサ、またはコントローラ３０がローカルプロセッサを含まない実施形態において、プロセッサ２２は、ハプティック効果に関連付けられたハプティック信号を、コントローラ３０の少なくとも１つのアクチュエータに送信してもよい。翻ってアクチュエータは、ハプティック信号に応じて、振動触知ハプティック効果、運動感覚ハプティック効果、または変形ハプティック効果などのハプティック効果を出力する。ハプティック効果は、コントローラ３０のユーザ入力エレメント（例えばデジタルボタン、アナログボタン、バンパ、方向パッド、アナログまたはデジタルスティック、ハンドル、あるいはトリガ）において経験されることができる。あるいは、ハプティック効果は、コントローラ３０の外表面において経験されることができる。アクチュエータは、アクチュエータ駆動回路を含む。アクチュエータは、例えば電気モータ、電磁アクチュエータ、ボイスコイル、形状記憶合金、電気活性ポリマー、ソレノイド、偏心回転質量モータ（ＥＲＭ）、リニア共振アクチュエータ（ＬＲＡ）、圧電アクチュエータ、高帯域アクチュエータ、電気活性ポリマー（ＥＡＰ）アクチュエータ、静電摩擦ディスプレイ、または超音波振動アクチュエータであってもよい。アクチュエータはハプティック出力装置の一例であって、ハプティック出力装置は、駆動信号に応じて振動触知ハプティック効果、静電摩擦ハプティック効果、運動感覚ハプティック効果、または変形ハプティック効果などのハプティック効果を出力するように構成された装置である。代替実施形態において、コントローラ３０内の１つ以上のアクチュエータは、その他何らかのタイプのハプティック出力装置に置き換えられることができる。
【００１７】
コントローラ３０は、１つ以上のスピーカをさらに含むことができる。コントローラ３０のローカルプロセッサ、またはコントローラ３０がローカルプロセッサを含まない実施形態におけるプロセッサ２２は、コントローラ３０の少なくとも１つのスピーカにオーディオ信号を送信してもよく、これは翻ってオーディオ効果を出力する。スピーカは、例えば、ダイナミックラウドスピーカ、動電型ラウドスピーカ、圧電ラウドスピーカ、磁歪ラウドスピーカ、静電ラウドスピーカ、リボンまたは平面磁気ラウドスピーカ、屈曲波ラウドスピーカ、フラッド・パネル・ラウドスピーカ、ハイルエアモーショントランスデューサ、プラズマ・アーク・スピーカ、およびデジタルラウドスピーカであってもよい。
【００１８】
コントローラ３０は、１つ以上のセンサをさらに含むことができる。センサは、例えば音、運動、加速度、生体信号、距離、流れ、力／圧力／歪み／屈曲、湿度、線形位置、配向／傾斜、無線周波数、回転位置、回転速度、スイッチの操作、温度、振動、または可視光強度などの、ただしこれらに限定されない、エネルギー形態またはその他の物理的特性を検出するように構成されることができる。センサはさらに、検出されたエネルギーまたはその他の物理的特性を、電気信号、または仮想センサ情報を表すいずれかの信号に変換するように構成されることができ、コントローラ３０は、変換された信号を、コントローラ３０のローカルプロセッサに、またはコントローラ３０がローカルプロセッサを含まない実施形態においてはプロセッサ２２に、送信できる。センサは、加速度計、心電図、脳波図、筋電計、電気眼球図、電子口蓋図、電気皮膚反応センサ、容量センサ、ホール効果センサ、赤外線センサ、超音波センサ、圧力センサ、光ファイバセンサ、屈曲センサ（または曲がりセンサ）、力感抵抗器、ロードセル、ＬｕＳｅｎｓｅＣＰＳ２１５５、小型圧力トランスデューサ、圧電センサ、歪みゲージ湿度計、線形位置タッチセンサ、線形ポテンショメータ（またはスライダ）、線形可変差動変圧器、コンパス、傾斜計、磁性タグ（または部線周波数識別タグ）、回転エンコーダ、回転ポテンショメータ、ジャイロスコープ、オン・オフスイッチ、温度センサ（温度計、熱電対、抵抗温度検出器、サーミスタ、または温度変換集積回路など）、マイクロフォン、光度計、高度計、生物モニタ、カメラ、または光依存性抵抗器などの、ただしこれらに限定されない、いずれの装置であってもよい。
【００１９】
図２は、本発明の実施形態に係る、コントローラ１００を示す。一実施形態において、コントローラ１００は図１のコントローラ３０と同一である。さらに、図３はコントローラ１００の別の図を示す。コントローラ１００は一般的に、コンピュータ、携帯電話、テレビ、またはその他の類似装置に接続されてもよい、ゲームシステムとともに使用される。図２および図３に示されるコントローラ１００のコンポーネント（すなわち、筐体１０２、アナログまたはデジタルスティック１１０、ボタン１１４、トリガ１１８、および鳴動（ランブル（ｒｕｍｂｌｅ））アクチュエータ１２２および１２４）はさらに、図４と併せて以下により詳細に記載される。
【００２０】
図４は、ホストコンピュータ１０４およびディスプレイ１０６をさらに含むゲームシステム１０１内で使用されるコントローラ１００のブロック図を示す。図４のブロック図に示されるように、コントローラ１００は、接続１０５を介してホストコンピュータ１０４と通信するローカルプロセッサ１０８を含む。接続１０５は、有線接続、無線接続、または当該技術分野において周知の別のタイプの接続であってもよい。コントローラ１００はあるいはローカルプロセッサ１０８を含まないように構成されてもよく、これによってコントローラ１００からの全ての入出力信号は、ホストコンピュータ１０４によって直接取り扱いおよび処理される。ホストコンピュータ１０４は、ディスプレイ画面１０６に動作可能に結合されている。一実施形態において、ホストコンピュータ１０４はゲーム装置コンソールであって、ディスプレイ画面１０６は、当該技術分野において周知のように、ゲーム装置コンソールに動作可能に結合されたモニタである。別の実施形態において、当業者にとって周知のように、ホストコンピュータ１０４およびディスプレイ画面１０６は、単一の装置に組み込まれてもよい。
【００２１】
コントローラ１００の筐体１０２は、左利きユーザまたは右利きユーザのいずれかによって、装置を握持する両手に容易に適合するような形状になっている。コントローラ１００は、例えばＭｉｃｒｏｓｏｆｔ（登録商標）Ｘｂｏｘ  Ｏｎｅ（商標）コントローラ、またはＰｌａｙＳｔａｔｉｏｎ（登録商標）ＤｕａｌＳｈｏｃｋ（商標）コントローラなどのビデオ・ゲーム・コンソール向けに現在利用可能な多くの「ゲームパッド」と類似の形状およびサイズのコントローラの例示的な一実施形態に過ぎないこと、ならびにＷｉｉ（商標）リモコンまたはＷｉｉ（商標）Ｕコントローラ、Ｓｏｎｙ（登録商標）ＳｉｘＡｘｉｓ（商標）コントローラまたはソニー（登録商標）Ｗａｎｄコントローラを含むがこれらに限定されないその他の構成のユーザ入力エレメント、形状、およびサイズを備えるコントローラ、ならびに実在の物体（テニスラケット、ゴルフクラブ、野球のバットなど）のような形状またはその他の形状のコントローラ、あるいはディスプレイまたは頭部装着型ディスプレイを備えるコントローラが使用されてもよいことを、当業者は認識するだろう。
【００２２】
コントローラ１００は、アナログまたはデジタルスティック１１０、ボタン１１４、およびトリガ１１８を含む、いくつかのユーザ入力エレメントを含む。本明細書において使用される際に、ユーザ入力エレメントは、ホストコンピュータ１０４と相互作用するためにユーザによって操作される、トリガボタン、アナログまたはデジタルスティックなどの、インターフェース装置を指す。図２および図３に見られるように、そして当業者にとって周知のように、各ユーザ入力エレメントおよび追加ユーザ入力エレメントのうちの２つ以上がコントローラ１００上に含まれてもよい。したがって、例えばトリガ１１８の本説明は、コントローラ１００を単一のトリガに限定するものではない。さらに、図４のブロック図は、アナログまたはデジタルスティック１１０、ボタン１１４、およびトリガ１１８の各々のうちの１つしか示していない。しかしながら、当業者は、先に記載されたように、複数のアナログまたはデジタルスティック、ボタン、およびトリガ、ならびにその他のユーザ入力エレメントが使用されてもよいことを理解するだろう。
【００２３】
図４のブロック図に見られるように、コントローラ１００は、ユーザの手が通常位置している場所で筐体１０２に動作可能に結合された１つ以上の一般または鳴動アクチュエータ１２２および１２４と同じくそのユーザ入力エレメントの各々を直接駆動するために、ターゲットアクチュエータまたはモータを含む。より具体的には、アナログまたはデジタルスティック１１０は、アナログまたはデジタルスティック１１０に動作可能に結合されたターゲットアクチュエータまたはモータ１１２を含み、ボタン１１４はそこに動作可能に結合されたターゲットアクチュエータまたはモータ１１６を含み、トリガ１１８はそこに動作可能に結合されたターゲットアクチュエータまたはモータ１２０を含む。複数のターゲットアクチュエータに加えて、コントローラ１００は、コントローラ１００のユーザ入力エレメントの各々に動作可能に結合された、位置センサを含む。より具体的には、アナログまたはデジタルスティック１１０は、アナログまたはデジタルスティック１１０に動作可能に結合された位置センサ１１１を含み、ボタン１１４は、ボタン１１４に動作可能に結合された位置センサ１１５を含み、トリガ１１８は、トリガ１１８に動作可能に結合された位置センサ１１９を含む。ローカルプロセッサ１０８は、それぞれアナログまたはデジタルスティック１１０、ボタン１１４、およびトリガ１１８の位置センサ１１１、１１５、１１９と同様に、ターゲットアクチュエータ１１２、１１６、１２０に動作可能に結合されている。位置センサ１１１、１１５、１１９から受信した信号に応じて、ローカルプロセッサ１０８はターゲットアクチュエータ１１２、１１６、１２０に、指向性またはターゲット運動感覚効果をアナログまたはデジタルスティック１１０、ボタン１１４、およびトリガ１１８にそれぞれ直接提供するように命令する。このようなターゲット運動感覚効果は、コントローラの全体に沿って一般アクチュエータ１２２、１２４によって生成される一般または鳴動ハプティック効果から、識別可能または区別可能である。総合的なハプティック効果は、例えばビデオ、オーディオ、およびハプティックなどの複数の方式が同時に関与しているので、ゲームに対するさらなる没入感をユーザに提供する。ハプティックを生成するように構成されたコントローラのさらなる詳細は、参照により本明細書に組み込まれる、「ＧＡＭＩＮＧ  ＤＥＶＩＣＥ  ＨＡＶＩＮＧ  Ａ  ＨＡＰＴＩＣ−ＥＮＡＢＬＥＤ  ＴＲＩＧＧＥＲ」と題される２０１４年４月２２日出願の特許出願第１４／２５８，６４４号明細書に、より詳細に記載されている。
【００２４】
図５は、本発明の実施形態に係る、システムのための空間化ハプティック効果ソフトウェアスタックのブロック図である。トリガハプティック効果ソフトウェアスタックは、図１のシステム１０など、システム上で実施される。図示される実施形態において、システムは以下のコンポーネントを含む：装置５００、周辺ファームウェア５１０、およびコントローラ５２０。装置５００は、パーソナルコンピュータ、タブレット、スマートフォン、またはコンソール（例えばビデオ・ゲーム・コンソール）など、いずれのタイプのコンピュータ装置であってもよい。周辺ファームウェア５１０は、装置５００に動作可能に接続されることができる、１つ以上の周辺機器（例えばコントローラ）のためのファームウェアである。コントローラ５２０は、装置５００に動作可能に接続された周辺機器の一例である。コントローラ５２０は、ビデオ・ゲーム・コントローラであってもよい。一実施形態において、コントローラ５２０は、図１のコントローラ３０、ならびに図２、図３、および図４のコントローラ１００と同一であってもよい。
【００２５】
装置５００はゲーム入力管理コード５０１を含む。ゲーム入力管理コード５０１は、装置５００内で実行される、ゲームアプリケーションまたはその他のタイプのアプリケーションに従って、コントローラ５２０によって提供された入力を管理する、コンピュータ可読命令のセットを含む。装置５００は、周辺入力アプリケーション・プログラミング・インターフェース（ＡＰＩ）５０２を、さらに含む。周辺入力ＡＰＩ５０２は、コントローラ５２０によって提供された入力を受信および管理するために、ゲーム入力管理コード５０１が周辺ファームウェア５１０と相互作用できるようにする、コンピュータ可読機能またはルーチンのセットを含む。装置５００は鳴動ＡＰＩ５０３をさらに含む。鳴動ＡＰＩは、コントローラ５２０の１つ以上の鳴動モータまたは鳴動アクチュエータ（例えば、図５に示される鳴動モータＬおよびＲ）に鳴動命令を送信するために、ゲーム入力管理コード５０１が周辺ファームウェア５１０と相互作用できるようにする、コンピュータ可読機能またはルーチンのセットを含む。鳴動命令は、コントローラ５２０の鳴動モータまたは鳴動アクチュエータに、一般または鳴動ハプティック効果を生成させることができる。
【００２６】
装置５００は、トリガハプティック効果ＡＰＩ５０４（図５において「ＡＰＩ」とされる）をさらに含む。ハプティック効果ＡＰＩ５０４は、ゲーム入力管理コード５０１に曝されて、コントローラ５２０の１つ以上のトリガ（例えば図５に示されるようなトリガＬおよびＲ）へのトリガ命令など、ハプティック命令をコントローラ５２０に送信するために、ゲーム入力管理コード５０１に周辺ファームウェア５１０と相互作用させる、コンピュータ可読機能またはルーチンのセットを含む。ハプティック命令は、コントローラ５２０の１つ以上のターゲットモータまたはターゲットアクチュエータに、コントローラ５２０の１つ以上のユーザ入力エレメントにおけるハプティック効果を生成させることができる。トリガ命令は、コントローラ５２０の１つ以上のターゲットモータまたはターゲットアクチュエータ（例えば図５に示されるようなモータＬおよびＲ）に、コントローラ５２０の１つ以上のトリガ（例えば図５に示されるようなトリガＬおよびＲ）におけるトリガハプティック効果を生成させることができる、特定のタイプのハプティック命令である。トリガハプティック効果は、コントローラ５２０などのコントローラのトリガにおいて経験される、特定のタイプのハプティック効果である。ハプティック効果ＡＰＩ５０４は、１つ以上のトリガハプティック効果定義を記憶できる。ハプティック効果定義は、コントローラ５２０のコンポーネント、またはユーザ入力エレメントにおいてハプティック効果を生成するために、事前定義され、記憶装置の中に記憶されることができるハプティック信号、ハプティックファイル、またはハプティックストリームなどのハプティックデータを含み、１つ以上の鳴動モータ、鳴動アクチュエータ、ターゲットモータ、またはターゲットアクチュエータに送信されることができる、データ構造である。ハプティックデータは対応するハプティック効果の１つ以上の性質を含むことができ、ここで性質はパラメータとして記憶されることができる。ハプティック効果定義の例示的なパラメータは、振幅パラメータ、周波数パラメータ、波形パラメータ、エンベロープパラメータ、マグニチュード（または強度）パラメータ、および持続時間パラメータを含む。トリガハプティック効果定義は、コントローラ５２０の１つ以上のトリガ（例えば図５に示されるようなトリガＬおよびＲ）におけるトリガハプティック効果を生成するために、コントローラ５２０の１つ以上のモータまたはアクチュエータ（例えば図５に示されるようなモータＬおよびＲ）に送信されることができる、特定のタイプのハプティック効果定義である。
【００２７】
実施形態によれば、ハプティック効果ＡＰＩ５０４は、ゲーム入力管理コード５０１に、直接再生／クロスオーバー５０５、トリガエンジン５０６、および空間化エンジン５０７と相互作用させることができ、ゲーム入力管理コード５０１によって呼び出されたリクエストにしたがって直接再生／クロスオーバー５０５、トリガエンジン５０６、および空間化エンジン５０７をさらに管理できる。さらに、ハプティック効果ＡＰＩ５０４は、周辺ファームウェア５１０との相互作用のために必要とされ、１つ以上のトリガハプティック効果の生成のために必要とされるデータを記憶できる。代替実施形態において、ハプティック効果ＡＰＩ５０４は、装置５００ではなく周辺ファームウェア５１０の中に存在してもよい。ハプティック効果ＡＰＩ５０４はさらに、図１５と併せて以下により詳細に記載される。
【００２８】
装置５００は、直接再生／クロスオーバー５０５をさらに含む。直接再生／クロスオーバー５０５は、ハプティックデータを入力として受信し、ハプティックデータを出力として生成し、コントローラ５２０の１つ以上のターゲットモータまたはターゲットアクチュエータ（例えば図５に示されるようなモータＬおよびＲ）にハプティックデータを送信する。特定の実施形態において、直接再生／クロスオーバー５０５は、入力ハプティックデータのフォーマットを変更することなく、入力ハプティックデータを直接出力できる。この結果、入力ハプティックデータの「そのままの」再生を生成する。別の実施形態において、直接再生／クロスオーバー５０５は、入力されたハプティックデータを第１フォーマットから第２フォーマットに変換でき、変換されたハプティックデータをさらに出力できる。再生のタイプに応じて、直接再生／クロスオーバー５０５はハプティックデータを変換するために任意にプログラマブルクロスオーバーを使用できる。ハプティックデータを変換することによって、装置５００はハプティック効果を「分解」して、複数のアクチュエータにおいてハプティック効果を忠実に再生できる。一実施形態において、ハプティックデータのフォーマットは、ハプティックエレメンタリストリーム（ＨＥＳ）フォーマットであってもよい。ＨＥＳフォーマットは、装置にストリーム配信されることができるハプティックデータを表すファイルまたはデータフォーマットである。ハプティックデータはＨＥＳフォーマットで暗号化されることができるものの、ハプティックデータは、非圧縮オーディオが表されるのと同一または類似の方法で表されることもできる。このためハプティックデータは、ハプティックファイルまたはハプティックストリーム中に記憶されることができ、ここでハプティックファイルまたはハプティックストリームのフォーマットはＨＥＳフォーマットである。言い換えると、ＨＥＳフォーマットは、ハプティックフォーマットでハプティックデータを表すために、ハプティックファイルまたはハプティックストリームによって使用されることができる。代替実施形態において、直接再生／クロスオーバー５０５は、装置５００ではなく周辺ファームウェア５１０の中に存在してもよい。直接再生／クロスオーバー５０５はさらに、図７、図８、図９、図１０、図１１、図１２、および図１３と併せて、以下により詳細に記載される。
【００２９】
装置５００は、トリガエンジン５０６をさらに含む。トリガエンジン５０６は、トリガハプティック効果定義などのハプティックデータを受信でき、コントローラ５２０から受信したトリガデータ（例えば図５に示されるようなトリガデータ５１３）などのデータに基づいて、ハプティックデータを変更できる。トリガデータは、コントローラ５２０の１つ以上のトリガ（例えば図５に示されるようなトリガＬおよびＲ）の位置および／または範囲を示す１つ以上のパラメータを含むデータである。トリガエンジン５０６はさらに、コントローラ５２０にハプティック命令を送信することができる。例えば、トリガエンジン５０６は、コントローラ５２０の１つ以上のトリガ（例えば図５に示されるようなトリガＬおよびＲ）にトリガ命令を送信することができる。先に記載されたように、トリガ命令は、コントローラ５２０の１つ以上のターゲットモータまたはターゲットアクチュエータ（例えば図５に示されるようなモータＬおよびＲ）に、コントローラ５２０の１つ以上のトリガ（例えば図５に示されるようなトリガＬおよびＲ）におけるトリガハプティック効果を生成させることができる。このため一実施形態において、トリガハプティック効果定義のハプティックデータを変更することによって、トリガエンジン５０６は、トリガの位置および／または範囲に基づいて特定のトリガハプティック効果がトリガにおいて経験されるようにできる。別の実施形態において、トリガハプティック効果定義のハプティックデータを変更することによって、トリガエンジン５０６は、トリガの位置および／または範囲に基づいて、コントローラ５２０の１つ以上のターゲットモータまたはターゲットアクチュエータ（例えば図５に示されるようなモータＬおよびＲ）のためのトリガハプティック効果をスケーリングできる。トリガエンジン５０６はさらに、トリガハプティック効果定義などの１つ以上のハプティック効果定義を記憶できる。代替実施形態において、トリガエンジン５０６は、装置５００ではなく周辺ファームウェア５１０の中に存在してもよい。トリガエンジン５０６はさらに、図１４と併せて、以下により詳細に記載される。
【００３０】
装置５００は、空間化エンジン５０７（図５において「空間化エンジン」とされる）をさらに含む。空間化エンジン５０７は、トリガハプティック効果定義などのハプティックデータを受信でき、空間化データに基づいてハプティックデータを変更できる。空間化データは、トリガハプティック効果などのハプティックデータの所望の方向および／または流れを示すデータを含むことができる。特定の実施形態において、空間化エンジン５０７は、ゲーム入力管理コード５０１から、方向および／または流れを含む空間化データを受信できる。さらに、空間化データはまた、コントローラ５２０上に位置するユーザの１つ以上の手の１つ以上の位置を含むことができる。特定の実施形態において、空間化エンジン５０７は、コントローラ５２０から、１つ以上の手の位置を含む空間化データを受信できる。さらに、特定の実施形態において、空間化エンジン５０７は、ゲーム入力管理コード５０１によって通信された通りのゲームアプリケーション内のユーザのキャラクタの位置を含む空間データを受信できる。
【００３１】
実施形態によれば、空間化エンジン５０７は、トリガハプティック効果などのハプティック効果がコントローラ５２０の１つ以上の鳴動モータまたは鳴動アクチュエータ（例えば図５に示されるような鳴動モータＬおよびＲ）のためにスケーリングされるように、およびハプティック効果がコントローラ５２０の１つ以上のターゲットモータまたはターゲットアクチュエータ（例えば図５に示されるようなモータＬおよびＲ）のためにもスケーリングされるように、ハプティックデータを変更できる。言い換えると、全体的なハプティック効果の方向および流れの感覚を伝達するために、空間化エンジン５０７は、各モータまたはアクチュエータに送信されるハプティックデータを変更でき、こうして各モータまたはアクチュエータにおいて経験されるハプティック効果を変更できる。例えば、モータまたはアクチュエータにおいて経験されるハプティック効果を強調するために、空間化エンジン５０７は、ハプティック効果の１つ以上の部分をスケーリングしてもよい。例えば、空間化エンジン５０７は、ハプティック効果が経験されるようにするモータまたはアクチュエータに送信されるハプティックデータをスケーリングして、ハプティック効果をより明確にしてもよい（例えば、マグニチュード、持続時間の増加など）。加えて、空間化エンジン５０７は、別のモータまたはアクチュエータに送信されるハプティックデータをスケーリングして、これらのモータまたはアクチュエータにおいて経験される別のハプティック効果を目立たなくさせてもよい（例えば、マグニチュード、持続時間の減少など）。特定の実施形態において、空間化エンジン５０７は、リアルタイムでハプティックデータを変更できる。さらに、特定の実施形態において、空間化エンジン５０７は、全体的なトリガハプティック効果を誇張するために、入力とモータまたはアクチュエータの出力との間に非線形関係を有することができる。代替実施形態において、空間化エンジン５０７は、装置５００ではなく周辺ファームウェア５１０の中に存在してもよい。空間化エンジン５０７はさらに、図１４、図２９、および図３０と併せて、以下により詳細に記載される。
【００３２】
装置５００はエンコーダ５０８をさらに含む。エンコーダ５０８は、直接再生／クロスオーバー５０５、トリガエンジン５０６、および／または空間化エンジン５０７から受信したハプティックデータを、あるフォーマットにエンコードする。一実施形態において、フォーマットはＨＥＳフォーマットであってもよい。エンコーダ５０８はさらに、エンコードされたハプティックデータを周辺ファームウェア５１０に送信する。
【００３３】
周辺ファームウェア５１０は、デコーダおよびクロスオーバー５１１を含む。デコーダおよびクロスオーバー５１１は、エンコーダ５０８からエンコードされたハプティックデータを受信して、エンコードされたハプティックデータをデコードする。特定の実施形態において、デコーダおよびクロスオーバー５１１は、エンコードされたハプティックデータをデコードするために、プログラマブルクロスオーバーを計算する。これらの実施形態のうちのいくつかにおいて、デコーダおよびクロスオーバー５１１は、プログラマブルクロスオーバーをリアルタイムで計算する。周辺ファームウェア５１０は、トリガ制御５１２をさらに含む。トリガ制御５１２は、コントローラ５２０の１つ以上のターゲットモータまたはターゲットアクチュエータ（例えば図５に示されるようなモータＬおよびＲ）のための、低レベル制御ＡＰＩである。トリガ制御５１２は、装置５００からトリガ命令を受信でき、トリガ命令をコントローラ５２０の指定されたターゲットモータまたはターゲットアクチュエータのための低レベルトリガ命令に変換でき、低レベルトリガ命令をコントローラ５２０の指定されたターゲットモータまたはターゲットアクチュエータに送ることができる。低レベルトリガ命令は、指定されたターゲットモータまたはターゲットアクチュエータに、コントローラ５２０の指定されたトリガにおけるトリガハプティック効果を生成させる。
【００３４】
周辺ファームウェア５１０は、トリガデータ５１３をさらに含む。トリガデータ５１３は、先に記載されたように、コントローラ５２０の１つ以上のトリガ（例えば図５に示されるようなトリガＬおよびＲ）の位置および／または範囲を示す１つ以上のパラメータなど、１つ以上のパラメータを含むデータである。トリガデータ５１３は、周辺ファームウェア５１０によってコントローラ５２０から受信されることができる。周辺ファームウェア５１０は、トリガデータ５１３をさらに記憶でき、さらにトリガデータ５１３を装置５００に送信することができる。周辺ファームウェア５１０はその他のゲームパッド機能５１４をさらに含み、これらは周辺ファームウェア５１０によって管理されることができるコントローラ５２０の機能である。このような機能は、有線／無線通信、入力レポート、プロトコル実施、電力管理などを含むことができる。周辺ファームウェア５１０は、鳴動制御５１５をさらに含む。鳴動制御５１５は、コントローラ５２０の１つ以上の鳴動モータまたは鳴動アクチュエータ（例えば図５に示されるような鳴動モータＬおよびＲ）のための、低レベル制御ＡＰＩである。鳴動制御５１５は、装置５００から鳴動命令を受信でき、鳴動命令をコントローラ５２０の指定された鳴動モータまたは鳴動アクチュエータのための低レベル鳴動命令に変換でき、低レベルトリガ命令をコントローラ５２０の指定された鳴動モータまたは鳴動アクチュエータに送信することができる。
【００３５】
コントローラ５２０は、トリガＬおよびＲを含む。コントローラ５２０は、ギアボックスＬおよびＲならびにモータＬおよびＲをさらに含む。モータＬおよびギアボックスＬは、コントローラ５２０内のトリガＬに動作可能に結合されている。同様に、モータＲおよびギアボックスＲは、コントローラ５２０内のトリガＲに動作可能に結合されている。モータＬがトリガ命令を受信すると、モータＬおよびギアボックスＬは一緒になってトリガハプティック効果がトリガＬにおいて経験されるようにする。同様に、モータＲがトリガ命令を受信すると、モータＲおよびギアボックスＲは一緒になってトリガハプティック効果がトリガＲにおいて経験されるようにする。実施形態によれば、周辺ファームウェア５１０は、駆動エレクトロニクス５３０を用いてコントローラ５２０のモータＬおよびＲにトリガ命令を送信する。コントローラ５２０は、ポテンショメータＬおよびＲをさらに含む。ポテンショメータＬは、トリガＬの位置および／または範囲を検出でき、さらにトリガＬの検出された位置および／または範囲をトリガデータとして周辺ファームウェア５１０に送信できる。同様に、ポテンショメータＲは、トリガＲの位置および／または範囲を検出でき、さらにトリガＲの検出された位置および／または範囲をトリガデータとして周辺ファームウェア５１０に送信できる。一実施形態において、ポテンショメータＬおよびＲは各々、ホール効果センサなど、別のタイプの位置センサに置き換えられることができる。コントローラ５２０は、鳴動モータＬおよびＲをさらに含む。鳴動モータＬが鳴動命令を受信すると、鳴動モータＬはハプティック効果がコントローラ５２０の左側に沿って経験されるようにする。同様に、鳴動モータＲが鳴動命令を受信すると、鳴動モータＲはハプティック効果がコントローラ５２０の右側に沿って経験されるようにする。実施形態によれば、周辺ファームウェア５１０は、鳴動駆動エレクトロニクス５３０を用いてコントローラ５２０の鳴動モータＬおよびＲに鳴動命令を送信する。
【００３６】
代替実施形態において、１つ以上のターゲットモータ、またはターゲットアクチュエータは、コントローラ５２０の１つ以上のユーザ入力エレメント（１つ以上のデジタルボタン、１つ以上のアナログボタン、１つ以上のバンパ、１つ以上の方向パッド、１つ以上のアナログまたはデジタルスティック、１つ以上のハンドルなど）に、動作可能に結合されることができる。代替実施形態によれば、周辺ファームウェア５１０は１つ以上のターゲットモータまたはターゲットアクチュエータに命令を送信して、１つ以上のターゲットモータまたはターゲットアクチュエータに、コントローラ５２０の１つ以上のユーザ入力エレメントにおいて経験されるハプティック効果を生成させることができる。
【００３７】
図６は、本発明の実施形態に係る、空間化ハプティック効果を設計するための例示的なユーザインターフェース６００を示す。システム（図１のシステム１０など）は、空間化ハプティック効果を設計するための専用ツールとして、ユーザインターフェース６００をユーザに提供できる。この実施形態において、ユーザは、既存のハプティック効果定義を変更する選択肢を伴って、既存のハプティック効果定義に基づいて空間化ハプティック効果を設計できる。実施形態によれば、ユーザインターフェース６００は効果プリセット６１０を含む。効果プリセット６１０は、１つ以上のハプティック効果プリセットを表示できる。ハプティック効果プリセットは、所定のハプティック効果を生成する任意の形状および／または形態の所定のハプティック効果定義である。ハプティック効果プリセットは、ハプティックファイルまたはハプティックストリーム内に記憶されることができる。一実施形態において、ハプティックファイルまたはハプティックストリームのフォーマットはＨＥＳフォーマットであってもよい。ユーザインターフェース６００はさらに編集領域６２０を含む。実施形態によれば、ユーザは効果プリセット６１０内に表示されたハプティック効果プリセットを選択でき、編集領域６２０は、選択されたハプティック効果プリセットによって表されるハプティック効果定義の図形描写を表示できる。さらに、ユーザは、編集領域６２０内の１つ以上の表示要素（ボタンなど）と相互作用することによって、選択されたハプティック効果定義の１つ以上のパラメータを変更できる。ハプティック効果定義の１つ以上のパラメータを変更することによって、対応するハプティック効果の１つ以上の対応する性質を変更できる。変更可能なハプティック効果定義の例示的なパラメータは、振幅パラメータ、周波数パラメータ、波形パラメータ、エンベロープパラメータ、マグニチュード（または強度）パラメータ、および持続時間パラメータを含む。
【００３８】
ユーザインターフェース６００はさらに効果定義６３０を含む。実施形態によれば、ユーザは変更されたハプティック効果定義を新しいハプティック効果定義として保存でき、新しいハプティック効果定義は効果定義６３０の中に表示される。新しいハプティック効果定義は、ハプティックファイルまたはハプティックストリーム内に記憶されることができる。一実施形態において、ハプティックファイルまたはハプティックストリームのフォーマットはＨＥＳフォーマットであってもよい。新しいハプティック効果定義はさらに、外部ハプティックファイルまたは外部ハプティックストリームにエクスポートされることができる。ユーザインターフェース６００はさらに、プレイボタン６４０を含む。プレイボタン６４０との相互作用は、ユーザインターフェース６００に動作可能に制御されることができるコントローラにおけるハプティック効果を、システムに出力させることができる。ハプティック効果は、選択された所定のハプティック効果定義、または選択された新しいハプティック効果定義であってもよい。
【００３９】
ユーザインターフェース６００はさらに、トリガエンジン領域６５０を含む。トリガエンジン領域６５０は、トリガエンジン（図５のトリガエンジン５０６など）によって生成されたトリガハプティック効果を視覚化することができる、編集可能視覚領域である。先に記載されたように、トリガエンジンはトリガハプティック効果を受信でき、コントローラのトリガの位置および／または範囲に基づいてトリガハプティック効果定義を変更できる。このためトリガエンジン領域６５０は、トリガの実際の位置を含む、トリガの視覚化映像を表示できる。さらに、トリガエンジン領域６５０は、トリガハプティック効果定義のために定義されたトリガの位置および／または範囲を表示でき、ここで位置および／または範囲は、トリガエンジンにトリガハプティック効果定義を変更させることができる。ユーザは、トリガハプティック効果定義のために定義されたトリガの位置および／または範囲を編集できる。ユーザインターフェース６００はさらに、空間化エンジン領域６６０を含む。空間化エンジン領域６６０は、元々はトリガエンジンによって生成されることができ、空間化エンジン（図５の空間化エンジン５０７など）によってさらに変更されることができるハプティック効果を視覚化可能な、編集可能視覚領域である。先に記載されたように、空間化エンジンは、ハプティック効果がコントローラの１つ以上のターゲットモータ、ターゲットアクチュエータ、鳴動モータ、または鳴動アクチュエータのためにスケーリングされるように、ハプティック効果定義を変更できる。このため空間化エンジン領域６６０は、コントローラの視覚化映像を表示できる。空間化エンジン領域６６０はさらに、コントローラの各ターゲットモータ、ターゲットアクチュエータ、鳴動モータ、または鳴動アクチュエータにおいて経験されたハプティック効果の視覚化映像を表示できる。ユーザは、コントローラの各ターゲットモータ、ターゲットアクチュエータ、鳴動モータ、または鳴動アクチュエータにおいて経験されたハプティック効果のスケーリングを編集できる。
【００４０】
図７は、本発明に係る、空間化ハプティック効果を設計するために使用されるコンポーネントのブロック図を示す。この実施形態において、システム（図１のシステム１０など）は：（１）ハプティック効果の作成（すなわち、ハプティック効果定義を作成することによる）；または（２）オーディオ効果としてのハプティック効果の作成（すなわち、オーディオ効果定義を作成することによる）のいずれかの専用ツールとして、オーサリングコンポーネント７００を提供できる。一実施形態において、オーサリングコンポーネント７００は、Ａｖｉｄ  Ｔｅｃｈｎｏｌｏｇｙ，Ｉｎｃ．による「Ｐｒｏ  Ｔｏｏｌｓ（登録商標）」製品であってもよい。システムはさらに、ハプティック効果定義またはオーディオ効果定義をストリーム配信するために、単一ポートクロスオーバーオーディオストリーム入出力（ＡＳＩＯ）ドライバ７１０または４ポートＡＳＩＯドライバ７２０のいずれかを、使用できる。単一ポート・クロスオーバー・ドライバ７１０は、単一チャネルのハプティックデータまたはオーディオデータとして、ハプティック効果定義またはオーディオ効果定義をストリーム配信できる。対照的に、４ポートＡＳＩＯドライバ７２０は、４チャネルのハプティックデータまたはオーディオデータとしてハプティック効果定義またはオーディオ効果定義をストリーム配信できる。代替実施形態において、４ポートＡＳＩＯドライバ７２０は、６または８チャネルのハプティックデータまたはオーディオデータなど、いずれかの複数のチャネルのハプティックデータまたはオーディオデータとしてハプティック効果定義またはオーディオ効果定義をストリーム配信する、別のドライバに置き換えられることができる。ユーザがオーディオ効果定義を作成する実施形態において、単一ポートクロスオーバーＡＳＩＯドライバ７１０または４ポートＡＳＩＯドライバ７２０のいずれかはまた、オーディオ効果定義をハプティック効果定義に変換することもできる。システムはさらに、オーディオ効果定義またはハプティック効果定義をＨＥＳフォーマットなどの外部フォーマットにエンコードするために、ＨＥＳエンコーダ７３０を使用できる。システムが単一ポート・クロスオーバー・ドライバ７１０を用いて単一チャネルのハプティックデータまたはオーディオデータとしてオーディオ効果定義またはハプティック効果定義をストリーム配信する場合、ＨＥＳエンコーダ７３０は、ハプティックデータまたはオーディオデータを３つの異なる出力（例えば（１）低周波鳴動モータまたは鳴動アクチュエータ；（２）中周波鳴動モータまたは鳴動アクチュエータ；あるいは（３）高周波ターゲットモータまたはターゲットアクチュエータ）にマッピングされることができる３つの異なる帯域に分離させるために、クロスオーバー入力ワープアルゴリズムを適用できる。
【００４１】
クロスオーバー入力ワープアルゴリズムは、装置自体の中に存在するか、または通信リンクの反対側に存在して、装置とは異なるプロセッサ上で実行できる。クロスオーバー入力ワープアルゴリズムはまた、入力データ（ハプティックまたはオーディオ）を２つの帯域に分離してもよく、ここで低周波は分離されて、その後１つ以上のアクチュエータ出力に適用される前に任意に変換され高周波は分離されて、その後低周波分離データに使用されるのとは異なる多数のアクチュエータに適用される前に、任意に変換される。このタイプのデータ分離は、任意の数の周波数帯域およびアクチュエータ出力において発生する可能性がある。代替実施形態において、入力データ（オーディオまたはハプティック）は複数の重複する周波数領域に分離されることができ、これらはその後各々任意に変換されて、多数の出力アクチュエータに適用される。別のセットの実施形態は、多数の信号強度帯域を作り出すことができ、ここで入力データ（オーディオまたはハプティック）は（ピーク検出、ＲＭＳ計算などを通じて）出力パワーまたは強度にしたがって分離され、これら分離データストリームは、１つ以上の異なるアクチュエータのセットに各々適用される。代替実施形態において、入力データ（オーディオまたはハプティック）は、（ピーク検出、ＲＭＳ計算などを通じて）出力パワーまたは強度にしたがって、完全に異なるストリームではなく、異なるが重複するデータストリームに分離されることができ、ここで強度フィルタリングアルゴリズムは重複する強度の領域を捕捉し、任意に変換を適用し、出力の各々を多数の出力アクチュエータに適用する。
【００４２】
システムはさらに、エンコードされたオーディオ効果定義またはエンコードされたハプティック効果定義を、コントローラ７５０上に存在するヒューマンインターフェース装置（ＨＩＤ）インタープリタ７４０に送信できる。ＨＩＤインタープリタ７４０は、コントローラ７５０のトリガにおけるハプティック効果を提供するために、エンコードされたオーディオ効果定義またはエンコードされたハプティック効果定義を受信および解釈する。一実施形態において、システムはさらに、システムが、エンコードされたオーディオ効果定義またはエンコードされたハプティック効果定義をコントローラ７５０のＨＩＤインタープリタ７４０に送信する前に、トリガエンジン（図５のトリガエンジン５０６など）および／または空間化エンジン（図５の空間化エンジン５０７など）を用いて、エンコードされたオーディオ効果定義またはエンコードされたハプティック効果定義を変更できる。
【００４３】
図８は、本発明の実施形態に係る、直接再生のための空間化ハプティック効果を作成するために使用されるコンポーネントのブロック図、および空間化ハプティック効果を保存するために使用されるコンポーネントのブロック図を示す。この実施形態において、システム（図１のシステム１０など）は、オーディオ効果として空間化ハプティック効果を作成するための（すなわち、オーディオ効果定義を作成することによる）専用ツールとして、オーディオオーサリングコンポーネント８００を提供できる。一実施形態において、オーディオオーサリングコンポーネント８００は、Ａｖｉｄ  Ｔｅｃｈｎｏｌｏｇｙ，Ｉｎｃ．による「Ｐｒｏ  Ｔｏｏｌｓ（登録商標）」製品であってもよい。
【００４４】
一旦システムのユーザがオーディオオーサリングコンポーネント８００を用いて空間化ハプティック効果を作成すると、ユーザは空間化ハプティック効果をプレビューできる。プレビュー機能は、空間化ハプティック効果のさらなるカスタマイズを可能にする。空間化ハプティック効果をプレビューすると、システムは作成されたオーディオ効果定義を４チャネル出力ドライバ８０１に送信でき、４チャネル出力ドライバ８０１はオーディオ効果定義を４チャネルのオーディオデータとしてストリーム配信できる。一実施形態において、４チャネル出力ドライバ８０１は、４チャネルＡＳＩＯ出力ドライバであってもよい。代替実施形態において、４チャネル出力ドライバ８０１は、６または８チャネルのオーディオデータなど、いずれかの複数のチャネルのオーディオデータとしてオーディオ効果定義をストリーム配信する、別のドライバに置き換えられることができる。
【００４５】
さらに、システムは、オーディオストリームをオーディオハプティック変換器８０２に送信でき、オーディオハプティック変換器８０２は、ハプティック変換アルゴリズムを用いてオーディオストリームのオーディオ効果定義をハプティック効果定義に変換できる。一実施形態において、あるモータまたはアクチュエータに対応するオーディオ効果定義の各個別チャネルは、ハプティック効果定義のあるチャネルに変換されることができる。例示的なハプティック変換アルゴリズムは、（その全てが全体として参照により本明細書に組み込まれる）以下の特許または特許出願に記載される：米国特許第７，９７９，１４６号明細書；米国特許第８，０００，８２５号明細書；米国特許第８，３７８，９６４号明細書；米国特許公開第２０１１／０２０２１５５号明細書；米国特許公開第２０１１／０２１５９１３号明細書；米国特許公開第２０１２／０２０６２４６号明細書；米国特許公開第２０１２／０２０６２４７号明細書；米国特許公開第２０１３／０２６５２８６号明細書；米国特許公開第２０１３／０１３１８５１；号明細書；米国特許公開第２０１３／０２０７９１７号明細書；米国特許公開第２０１３／０３３５２０９号明細書；米国特許公開第２０１４／００６４５１６号明細書；米国特許出願第１３／６６１，１４０号明細書；米国特許出願第１３／７８５，１６６号明細書；米国特許出願第１３／７８８，４８７号明細書；米国特許出願第１４／０７８，４３８号明細書；米国特許出願第１４／０７８，４４２号明細書；米国特許出願第１４／０７８，４４５号明細書；米国特許出願第１４／０５１，９３３号明細書；米国特許出願第１４／０２０，４６１号明細書；米国特許出願第１４／０２０，５０２号明細書；米国特許出願第１４／２７７，８７０号明細書；および米国特許出願第１４／４６７，１８４号明細書。
【００４６】
システムはさらに、変換されたハプティック効果定義をＨＥＳ多チャネルエンコーダ８０３に送信でき、多チャネルエンコーダ８０３は、変換されたハプティック効果定義をＨＥＳフォーマットなどの外部フォーマットにエンコードできる。システムはさらに、エンコードおよび変換されたハプティック効果定義を、コントローラ８０５上に存在するトリガ・コントローラ・インターフェース（Ｉ／Ｆ）８０４に送信できる。トリガコントローラＩ／Ｆ８０４は、コントローラ８０５のトリガにおける作成されたトリガハプティック効果をプレビューするために、エンコードおよび変換されたハプティック効果定義を受信および解釈できる。
【００４７】
この実施形態において、システムはオーディオオーサリングコンポーネント８１０を提供でき、ここでオーディオオーサリングコンポーネント８１０はオーディオオーサリングコンポーネント８００と同一である。一旦システムのユーザがオーディオオーサリングコンポーネント８１０を用いて空間化ハプティック効果を作成すると、ユーザは空間化ハプティック効果を保存できる。空間化ハプティック効果を保存すると、システムは、オーディオ効果定義を個別のオーディオファイル８１１としてエクスポートできる。オーディオ効果定義が４つのチャネルを含む一実施形態において、オーディオファイル８１１は４つのオーディオファイルを含むことができる。オーディオ効果定義が別の数のチャネルを含む代替実施形態において、オーディオファイル８１１は、その数の個別のオーディオファイルを含むことができる。特定の実施形態において、オーディオファイル８１１は、Ｗａｖｅｆｏｒｍ  Ａｕｄｉｏ  Ｆｉｌｅ（ＷＡＶ）フォーマットであってもよい。システムはさらに、オーディオファイル８１１をＨＥＳエンコーダ・グラフィカル・ユーザ・インターフェース（ＧＵＩ）８１２に送信でき、ここでＨＥＳエンコーダＧＵＩ８１２は、オーディオファイル８１１を単一のオーディオファイルにエンコードできる。一実施形態において、オーディオファイルはＨＥＳフォーマットであってもよい。さらに、システムはオーディオファイルをオーディオハプティック変換器８１２に送信でき、オーディオハプティック変換器８１３は、ハプティック変換アルゴリズムを用いてオーディオファイルのオーディオ効果定義をハプティック効果定義に変換できる。一実施形態において、あるモータまたはアクチュエータに対応するオーディオ効果定義の各個別チャネルは、ハプティック効果定義のあるチャネルに変換されることができる。システムはさらに、変換されたハプティック効果定義をＨＥＳ多チャネルエンコーダ８１４に送信でき、多チャネルエンコーダ８１４は、変換されたハプティック効果定義をＨＥＳフォーマットなどの外部フォーマットにエンコードできる。システムはさらに、エンコードおよび変換されたハプティック効果定義をハプティックファイル８１５内に記憶できる。一実施形態において、ハプティックファイル８１５はＨＥＳファイルであってもよい。
【００４８】
図９は、本発明の実施形態に係る、クロスオーバー再生のための空間化ハプティック効果を作成するために使用されるコンポーネントのブロック図、および空間化ハプティック効果を保存するために使用されるコンポーネントのブロック図を示す。この実施形態において、システム（図１のシステム１０など）は、オーディオ効果として空間化ハプティック効果を作成するための（すなわち、オーディオ効果定義を作成することによる）専用ツールとして、オーディオオーサリングコンポーネント９００を提供できる。
【００４９】
一旦システムのユーザがオーディオオーサリングコンポーネント９００を用いて空間化ハプティック効果を作成すると、ユーザは空間化ハプティック効果をプレビューできる。空間化ハプティック効果をプレビューすると、システムは、作成されたオーディオ効果定義を単一チャネル出力ドライバ９０１に送信でき、単一チャネル出力ドライバ９０１はオーディオ効果定義を単一チャネルのオーディオデータとしてストリーム配信できる。一実施形態において、単一チャネル出力ドライバ９０１は、単一チャネルＡＳＩＯ出力ドライバであってもよい。さらに、システムはオーディオストリームをオーディオハプティック変換器９０２に送信でき、オーディオハプティック変換器９０２は、ハプティック変換アルゴリズムを用いてオーディオストリームのオーディオ効果定義をハプティック効果定義に変換できる。一実施形態において、あるモータまたはアクチュエータに対応するオーディオ効果定義の各個別チャネルは、ハプティック効果定義のあるチャネルに変換されることができる。さらにまた、システムは変換されたハプティック効果定義をクロスオーバーＧＵＩ９０５に送信でき、クロスオーバーＧＵＩ９０５は、ハプティック効果定義を３つの異なる出力（例えば（１）低周波鳴動モータまたは鳴動アクチュエータ；（２）中周波鳴動モータまたは鳴動アクチュエータ；あるいは（３）高周波ターゲットモータまたはターゲットアクチュエータ）にマッピングされることができる３つの異なるチャネルに分離するために、クロスオーバー入力ワープアルゴリズムを適用できる。
【００５０】
システムはさらに、変換されたハプティック効果定義をＨＥＳ多チャネルエンコーダ９０３に送信でき、多チャネルエンコーダ９０３は、変換されたハプティック効果定義をＨＥＳフォーマットなどの外部フォーマットにエンコードできる。システムはさらに、エンコードおよび変換されたハプティック効果定義を、コントローラ９０６上に存在するトリガコントローラＩ／Ｆ９０４に送信できる。トリガコントローラＩ／Ｆ９０４は、コントローラ９０６のトリガにおける作成されたトリガハプティック効果をプレビューするために、エンコードおよび変換されたハプティック効果定義を受信および解釈できる。
【００５１】
この実施形態において、システムはオーディオオーサリングコンポーネント９１０を提供することができ、ここでオーディオオーサリングコンポーネント９１０はオーディオオーサリングコンポーネント９００と同一である。一旦システムのユーザがオーディオオーサリングコンポーネント９１０を用いて空間化ハプティック効果を作成すると、ユーザは空間化ハプティック効果を保存できる。空間化ハプティック効果を保存すると、システムは、オーディオ効果定義を単一のオーディオファイル９１１としてエクスポートできる。特定の実施形態において、オーディオファイル９１１はＷＡＶフォーマットであってもよい。システムはさらに、クロスオーバー設定９１２をエクスポートできる。システムはさらに、オーディオファイル９１１をＨＥＳエンコーダＧＵＩ９１３に送信でき、ここでＨＥＳエンコーダＧＵＩ９１３は、オーディオファイル９１１およびクロスオーバー設定９１２を単一のオーディオファイルにエンコードできる。一実施形態において、オーディオファイルはＨＥＳフォーマットであってもよい。システムはさらに、オーディオファイルをＨＥＳ単一チャネルおよびクロスオーバーエンコーダ９１４に送信でき、単一チャネルおよびクロスオーバーエンコーダ９１４は、オーディオファイルをＨＥＳフォーマットなどの外部フォーマットにエンコードできる。システムはさらに、エンコードされたオーディオファイルをハプティックファイル９１５内に記憶できる。一実施形態において、ハプティックファイル９１５はＨＥＳファイルであってもよい。
【００５２】
図１０は、本発明の実施形態に係る、空間化ハプティック効果を直接再生するために使用されるコンポーネントのブロック図を示す。一実施形態によれば、システム（図１のシステム１０など）は、ハプティック効果定義を含むハプティックファイル１０００をロードできる。一実施形態において、ハプティックファイル１０００はＨＥＳファイルであってもよい。実施形態によれば、ハプティックファイル１０００内に含まれるハプティック効果定義は４つのチャネルを含み、各チャネルは、ハプティック効果定義内に含まれるハプティックデータの一部を含む。代替実施形態において、ハプティックファイル１０００内に含まれるハプティック効果定義は、いずれかの複数のチャネルを含むことができる。各チャネルのハプティック効果定義は、ターゲットモータ、ターゲットアクチュエータ、鳴動（ランブル（ｒｕｍｂｌｅ））モータ、または鳴動アクチュエータに関連付けられることができる。図示される実施形態において、第１チャネル（すなわち「チャネルＬＲ」）は低鳴動モータに関連付けられ、第２チャネル（すなわち「チャネルＭＲ」）は中鳴動モータに関連付けられ、第３チャネル（すなわち「チャネルＬＴ」）は左トリガに動作可能に結合されたモータに関連付けられ、第４チャネル（すなわち「チャネルＲＴ」）は右トリガに動作可能に結合されたモータに関連付けられている。一実施形態において、ハプティックファイル１０００内に含まれるハプティック効果定義は、再生速度および再生率制御を定義できる。
【００５３】
実施形態によれば、システムは、ハプティックファイル１０００内に含まれる４つのチャネルのハプティック効果定義を強度制御１０１０に送信でき、強度制御１０１０は、各チャネルのハプティック効果定義内に含まれるハプティックデータの強度、またはマグニチュードを変更できる。システムはその後、４つのチャネルのハプティック効果定義を前後（Ｆ／Ｂ）空間化１０２０に送信でき、Ｆ／Ｂ空間化１０２０は、空間化データに基づいて各チャネルのハプティック効果定義内に含まれるハプティックデータを変更できる。空間化データは、ハプティック効果の方向および／または流れを含むことができる。一実施形態において、ハプティック効果の方向および／または流れは、前向きまたは後ろ向き方向であってもよい。さらに、空間化データは、１つ以上の手の位置を含むことができる。実施形態によれば、Ｆ／Ｂ空間化１０２０は、ハプティック効果が各モータまたはアクチュエータのためにスケーリングされるように、各チャネル内に含まれるハプティックデータを変更できる。システムはその後、チャネルＬＲを低鳴動モータ１０３０（図１０において「低鳴動モータ」とされる）に送信でき、チャネルＭＲを中鳴動モータ１０４０（図１０において「中鳴動モータ」とされる）にさらに送信できる。チャネルＬＲ内に包含されるハプティックデータは、低鳴動モータ１０３０に一般または鳴動ハプティック効果を生成させることができ、チャネルＭＲ内に包含されるハプティックデータは、中鳴動モータ１０４０に一般または鳴動ハプティック効果を生成させることができる。
【００５４】
システムはさらに、チャネルＬＴおよびＲＴを左右（Ｌ／Ｒ）空間化１０５０に送信でき、Ｌ／Ｒ空間化１０５０は、空間化データに基づいてチャネルＬＴおよびＲＴ内に含まれるハプティックデータを変更できる。空間化データは、ハプティック効果の方向および／または流れを含むことができる。一実施形態において、ハプティック効果の方向および／または流れは、左または右方向であってもよい。さらに、空間化データは１つ以上の手の位置を含むことができる。実施形態によれば、Ｌ／Ｒ空間化１０５０は、ハプティック効果が各モータまたはアクチュエータのためにスケーリングされるように、各チャネル内に含まれるハプティックデータを変更できる。システムはその後、チャネルＬＴを左トリガターゲットモータ１０６０（図１０において「ＬＴモータ」とされる）に送信でき、チャネルＲＴを右トリガターゲットモータ１０７０（図１０において「ＲＴモータ」とされる）にさらに送信できる。チャネルＬＴ内に包含されるハプティックデータは、左トリガターゲットモータ１０６０に左トリガにおけるトリガハプティック効果を生成させることができ、チャネルＲＴ内に包含されるハプティックデータは、右トリガターゲットモータ１０７０に、右トリガにおけるトリガハプティック効果を生成させることができる。
【００５５】
図１１は、本発明の実施形態に係る、プログラマブルクロスオーバーを使用して空間化ハプティック効果を再生するために使用されるコンポーネントのブロック図を示す。実施形態によれば、システム（図１のシステム１０など）は、ハプティック効果定義を含むハプティックファイル１１００をロードできる。一実施形態において、ハプティックファイル１１００はＨＥＳファイルであってもよい。実施形態によれば、ハプティックファイル１１００内に含まれるハプティック効果定義は単一チャネルを含み、チャネルはハプティック効果定義内に含まれるハプティックデータを含む。やはり実施形態によれば、ハプティックファイル１１００内に含まれるハプティック効果定義は１つ以上のクロスオーバーパラメータを含み、１つ以上のクロスオーバーパラメータはクロスオーバー入力ワープアルゴリズムのためのパラメータであってもよい。一実施形態において、ハプティックファイル１１００内に含まれるハプティック効果定義は、再生速度および再生率制御を定義できる。
【００５６】
実施形態によれば、システムは、ハプティックファイル１１００内に含まれるハプティック効果定義のチャネル、ならびにやはりハプティックファイル１１００内に含まれる１つ以上のクロスオーバーパラメータを、プログラマブルクロスオーバー１１１０に送信できる。プログラマブルクロスオーバー１１１０は、チャネルを３つの異なるチャネル：すなわち低周波チャネル；中周波チャネル；および高周波チャネルに分離するために、１つ以上のクロスオーバーパラメータを用いてクロスオーバー入力ワープアルゴリズムを適用できる。低周波チャネルは、１つ以上の低周波を含むハプティック効果定義内に含まれるハプティックデータの一部を含む。中周波チャネルは、１つ以上の中周波を含むハプティック効果定義内に含まれるハプティックデータの一部を含む。高周波チャネルは、１つ以上の高周波を含むハプティック効果定義内に含まれるハプティックデータの一部を含む。
【００５７】
システムはその後、３つのチャネルのハプティック効果定義をＦ／Ｂ空間化１１２０に送信でき、Ｆ／Ｂ空間化１１２０は、空間化データに基づいて各チャネルのハプティック効果定義内に含まれるハプティックデータを変更できる。空間化データは、ハプティック効果の方向および／または流れを含むことができる。一実施形態において、ハプティック効果の方向および／または流れは、前向きまたは後ろ向き方向であってもよい。さらに、空間化データは、１つ以上の手の位置を含むことができる。実施形態によれば、Ｆ／Ｂ空間化１１２０は、ハプティック効果が各モータまたはアクチュエータのためにスケーリングされるように、各チャネル内に含まれるハプティックデータを変更できる。システムはその後、低周波チャネルを低鳴動モータ１１３０（図１１において「低鳴動モータ」とされる）に送信でき、中周波チャネルを中鳴動モータ１１４０（図１１において「中鳴動モータ」とされる）にさらに送信できる。低周波チャネル内に包含されるハプティックデータは、低鳴動モータ１１３０に一般または鳴動ハプティック効果を生成させることができ、中周波チャネル内に包含されるハプティックデータは、中鳴動モータ１１４０に一般または鳴動ハプティック効果を生成させることができる。
【００５８】
システムはさらに、高周波チャネルをＬ／Ｒ空間化１１５０に送信でき、Ｌ／Ｒ空間化１１５０は、空間化データに基づいて高周波チャネル内に含まれるハプティックデータを変更できる。一実施形態において、ハプティック効果の方向および／または流れは、左または右方向であってもよい。さらに、空間化データは１つ以上の手の位置を含むことができる。実施形態によれば、Ｌ／Ｒ空間化１１５０は、ハプティック効果が各モータまたはアクチュエータのためにスケーリングされるように、チャネル内に含まれるハプティックデータを変更できる。システムはその後、高周波チャネルを左トリガターゲットモータ１１６０（図１１において「ＬＴモータ」とされる）に送信でき、また高周波チャネルを右トリガターゲットモータ１１７０（図１１において「ＲＴモータ」とされる）に送信することもできる。高周波チャネル内に包含されるハプティックデータは、左トリガターゲットモータ１１６０に左トリガにおけるトリガハプティック効果を生成させることができ、高周波チャネル内に包含されるハプティックデータは、右トリガターゲットモータ１１７０に右トリガにおけるトリガハプティック効果を生成させることができる。
【００５９】
図１２は、本発明の実施形態に係る、空間化ハプティック効果の例示的な４チャネル直接再生を示す。実施形態によれば、システム（図１のシステム１０など）は、オーディオ効果定義を含むオーディオファイル１２００をロードできる。一実施形態において、オーディオファイル１２００はＨＥＳファイルであってもよい。実施形態によれば、オーディオファイル１２００内に含まれるオーディオ効果定義は４つのチャネルを含み、各チャネルはオーディオ効果定義内に含まれるオーディオデータの一部を含む。代替実施形態において、オーディオファイル１２００内に含まれるオーディオ効果定義は、いずれかの複数のチャネルを含むことができる。ハプティック効果定義の各チャネルは、ターゲットモータ、ターゲットアクチュエータ、鳴動モータ、または鳴動アクチュエータに関連付けられることができる。図示される実施形態において、第１チャネル（すなわち「チャネルＬＲ」）は低鳴動モータに関連付けられ、第２チャネル（すなわち「チャネルＭＲ」）は中鳴動モータに関連付けられ、第３チャネル（すなわち「チャネルＬＴ」）は左トリガに動作可能に結合されたターゲットモータに関連付けられ、第４チャネル（すなわち「チャネルＲＴ」）は右トリガに動作可能に結合されたターゲットモータに関連付けられている。
【００６０】
実施形態によれば、システムは、オーディオファイル１２００内に含まれる４つのチャネルのオーディオ効果定義をオーディオハプティック変換器１２１０に送信でき、オーディオハプティック変換器１２１０は、ハプティック変換アルゴリズムを用いてオーディオ効果定義をハプティック効果定義に変換できる。一実施形態において、オーディオ効果定義の各個別チャネルはハプティック効果定義のあるチャネルに変換されることができる。図示される実施形態において、チャネルＬＲは６０ヘルツ（Ｈｚ）未満の範囲を有するピーク／デシメーションフィルタを用いて変換されることができ、チャネルＭＲは６０Ｈｚの値を有するピーク／デシメーションフィルタを用いて変換されることができ、チャネルＬＴおよびＲＴは、２００Ｈｚから２ｋＨｚの範囲を有するピーク／デシメーションフィルタを用いて各々変換されることができる。
【００６１】
システムはさらに、４つのチャネルの変換されたハプティック効果定義をエンコーダ／デコーダ１２２０に送信でき、エンコーダ／デコーダ１２２０は各チャネルの変換されたハプティック効果定義をＨＥＳフォーマットなどの外部フォーマットにエンコードできる。システムはその後、４つのエンコードされたチャネルの変換されたハプティック効果定義をＦ／Ｂ空間化１２３０に送信でき、Ｆ／Ｂ空間化１２３０は、空間化データに基づいて各エンコードされたチャネルの変換されたハプティック効果定義内に含まれる変換されたハプティックデータを変更できる。空間化データは、ハプティック効果の方向および／または流れを含むことができる。一実施形態において、ハプティック効果の方向および／または流れは、前向きまたは後ろ向き方向であってもよい。さらに空間化データは、１つ以上の手の位置を含むことができる。実施形態によれば、Ｆ／Ｂ空間化１２３０は、ハプティック効果が各モータまたはアクチュエータのためにスケーリングされるように、各エンコードされたチャネル内に含まれる変換されたハプティックデータを変更できる。システムはその後、エンコードされたチャネルＬＲを低鳴動モータ１２４０（図１２において「低鳴動モータ」とされる）に送信でき、エンコードされたチャネルＭＲを中鳴動モータ１２５０（図１２において「中鳴動モータ」とされる）にさらに送信できる。チャネルＬＲに包含される変換されたハプティックデータは、低鳴動モータ１２４０に一般または鳴動ハプティック効果を生成させることができ、チャネルＭＲ内に包含される変換されたハプティックデータは、中鳴動モータ１２５０に一般または鳴動ハプティック効果を生成させることができる。
【００６２】
システムはさらに、エンコードされたチャネルＬＴおよびＲＴをＬ／Ｒ空間化１２６０に送信でき、Ｌ／Ｒ空間化１２６０は、空間化データに基づいてエンコードされたチャネルＬＴおよびＲＴに含まれる変換されたハプティックデータを変更できる。空間化データは、ハプティック効果の方向および／または流れを含むことができる。一実施形態において、ハプティック効果の方向および／または流れは、左または右方向であってもよい。さらに、空間化データは１つ以上の手の位置を含むことができる。実施形態によれば、Ｌ／Ｒ空間化１２６０は、ハプティック効果が各モータまたはアクチュエータのためにスケーリングされるように、各チャネル内に含まれるハプティックデータを変更できる。システムはその後、チャネルＬＴを左トリガターゲットモータ１２７０（図１２において「ＬＴモータ」とされる）に送信でき、チャネルＲＴを右トリガターゲットモータ１２８０（図１２において「ＲＴモータ」とされる）にさらに送信できる。チャネルＬＴ内に包含されるハプティックデータは、左トリガターゲットモータ１２７０に左トリガにおけるトリガハプティック効果を生成させることができ、チャネルＲＴ内に包含されるハプティックデータは、右トリガターゲットモータ１２８０に右トリガにおけるトリガハプティック効果を生成させることができる。
【００６３】
図１３は、本発明の実施形態に係る、空間化ハプティック効果の例示的なクロスオーバー再生を示す。実施形態によれば、システム（図１のシステム１０など）は、オーディオ効果定義を含むオーディオファイル１３００をロードできる。一実施形態において、オーディオファイル１３００はＨＥＳファイルであってもよい。実施形態によれば、オーディオファイル１３００内に含まれるオーディオ効果定義は単一チャネルを含み、チャネルはオーディオ効果定義内に含まれるオーディオデータを含む。一実施形態において、オーディオファイル１３００内に含まれるオーディオ効果定義は、１つ以上のクロスオーバーパラメータを含むことができ、１つ以上のクロスオーバーパラメータは、クロスオーバー入力ワープアルゴリズムのためのパラメータであってもよい。
【００６４】
実施形態によれば、システムは、オーディオファイル１３００内に含まれるオーディオ効果定義のチャネル、ならびに一実施形態において、やはりオーディオファイル１３００内に含まれる１つ以上のクロスオーバーパラメータを、プログラマブルクロスオーバー１３１０に送信できる。プログラマブルクロスオーバー１３１０は、チャネルを３つの異なるチャネル：すなわち低周波チャネル；中周波チャネル；および高周波チャネルに分離するために、クロスオーバー入力ワープアルゴリズムを（一実施形態において、１つ以上のクロスオーバーパラメータを用いて）適用できる。プログラマブルクロスオーバー１３１０はさらに、ハプティック変換アルゴリズムを用いてオーディオ効果定義をハプティック効果定義に変換できる。一実施形態において、オーディオ効果定義の各個別チャネルはハプティック効果定義のあるチャネルに変換されることができる。図示される実施形態において、低周波チャネルは６０ヘルツ（Ｈｚ）未満の範囲を有するピーク／デシメーションフィルタを用いて変換されることができ、中周波チャネルは６０Ｈｚの値を有するピーク／デシメーションフィルタを用いて変換されることができ、高周波チャネルは２００Ｈｚから２ｋＨｚの範囲を有するピーク／デシメーションフィルタを用いて各々変換されることができる。
【００６５】
システムはさらに、３つのチャネルの変換されたハプティック効果定義をエンコーダ／デコーダ１３２０に送信でき、エンコーダ／デコーダ１３２０は各チャネルの変換されたハプティック効果定義をＨＥＳフォーマットなどの外部フォーマットに変換できる。システムはその後、３つのチャネルのハプティック効果定義をＦ／Ｂ空間化１３３０に送信でき、Ｆ／Ｂ空間化１３３０は、空間化データに基づいて各チャネルのハプティック効果定義内に含まれるハプティックデータを変更できる。空間化データは、ハプティック効果の方向および／または流れを含むことができる。一実施形態において、ハプティック効果の方向および／または流れは、前向きまたは後ろ向き方向であってもよい。さらに空間化データは、１つ以上の手の位置を含むことができる。実施形態によれば、Ｆ／Ｂ空間化１３３０は、ハプティック効果が各モータまたはアクチュエータのためにスケーリングされるように、各チャネル内に含まれるハプティックデータを変更できる。システムはその後、低周波チャネルを低鳴動モータ１３４０（図１３において「低鳴動モータ」とされる）に送信でき、中周波チャネルを中鳴動モータ１３５０（図１３において「中鳴動モータ」とされる）にさらに送信できる。低周波チャネル内に包含されるハプティックデータは、低鳴動モータ１３４０に一般または鳴動ハプティック効果を生成させることができ、中周波チャネル内に包含されるハプティックデータは、中鳴動モータ１３５０に一般または鳴動ハプティック効果を生成させることができる。
【００６６】
システムはさらに、高周波チャネルをＬ／Ｒ空間化１３６０に送信でき、Ｌ／Ｒ空間化１３６０は、空間化データに基づいて高周波チャネル内に含まれるハプティックデータを変更できる。一実施形態において、ハプティック効果の方向および／または流れは、左または右方向であってもよい。さらに、空間化データは１つ以上の手の位置を含むことができる。実施形態によれば、Ｌ／Ｒ空間化１３６０は、ハプティック効果が各モータまたはアクチュエータのためにスケーリングされるように、チャネル内に含まれるハプティックデータを変更できる。システムはその後、高周波チャネルを左トリガターゲットモータ１３７０（図１３において「ＬＴモータ」とされる）に送信でき、高周波チャネルを右トリガターゲットモータ１３８０（図１３において「ＲＴモータ」とされる）に送信することもまたできる。高周波チャネル内に包含されるハプティックデータは、左トリガターゲットモータ１３７０に左トリガにおけるトリガハプティック効果を生成させることができ、高周波チャネル内に包含されるハプティックデータは、右トリガターゲットモータ１３８０に右トリガにおけるトリガハプティック効果を生成させることができる。
【００６７】
図１４は、本発明の実施形態に係る、空間化エンジンの例示的なユーザインターフェース１４００を示す。ユーザインターフェース１４００は、空間化エンジン（図５の空間化エンジン５０７など）によって元々生成されてさらに変更されたハプティック効果を視覚化することができる、編集可能視覚領域である。一実施形態において、ハプティック効果は、元々トリガエンジン（図５のトリガエンジン５０６など）によって生成されたトリガハプティック効果であってもよい。ユーザインターフェース１４００はさらに、ユーザが空間化エンジンによるハプティック効果の１つ以上の変更をプログラムで管理できるようにすることもできる。このような変更はさらに、将来の動的再生のために記録されることができる。先に記載されたように、空間化エンジンは、ハプティック効果がコントローラの１つ以上のターゲットモータ、ターゲットアクチュエータ、鳴動モータ、または鳴動アクチュエータのためにスケーリングされるように、元々生成されたハプティック効果定義を変更できる。より具体的には、空間化エンジンは、コントローラのユーザによって経験された通りのハプティック効果の方向感覚を伝達するために、各ターゲットモータ、ターゲットアクチュエータ、鳴動モータ、または鳴動アクチュエータに適用された通りにハプティック効果定義を変更できる。ハプティック効果定義に対する各変更は、特殊化エンジンによって定義された通りのハプティック効果の意図される方向および／または流れに基づいてもよい。さらに、各変更はまた、コントローラによって受信された入力に基づいてもよく、入力は、コントローラ上のユーザの手の位置を示す。このように、空間化エンジンは、元々生成されたハプティック効果定義を受信でき、ハプティック効果の「空間化」局面（例えば、ハプティック効果の位置および／または流れ）に基づいてハプティック効果定義を変更できる。
【００６８】
ユーザインターフェース１４００は、流れ１４１０を含む。流れ１４１０は、ユーザがハプティック効果の流れをプログラムで管理できるようにする。流れは、コントローラの個々のターゲットモータ、ターゲットアクチュエータ、鳴動モータ、または鳴動アクチュエータ上での再生を遅延させるための、一時的再生開始オフセット変更である。あるいは流れは、コントローラのターゲットモータ、ターゲットアクチュエータ、鳴動モータ、または鳴動アクチュエータにおいて経験されるハプティック効果の持続時間を変更するための、持続時間変更であってもよい。例えば流れは、ハプティック再生がまず左ターゲットモータまたはターゲットアクチュエータ上で開始し、その後続いて中鳴動モータまたは鳴動アクチュエータ上で開始し、その後さらに右ターゲットモータまたはターゲットアクチュエータ上で開始するように、定義されることができる。この例において、コントローラのユーザは、まずコントローラの左、その後コントローラの中央、その後コントローラの右における全体的なハプティック効果のハプティック再生を経験するので、全体的なハプティック効果の流れは左から右である。流れは左から右またはその逆、前から後またはその逆、あるいはこれら２つの組み合わせであってもよい。このように、流れはハプティック再生ベクトルを定義できる。流れ１４１０は、ユーザインターフェース１４００の中で水平に、垂直に、または斜めに配置されることができる矢印として、ユーザインターフェース１４００内で視覚化されることができる。このように、流れ１４１０と相互作用することにより、ユーザはハプティック再生をずらすために、コントローラの様々なモータまたはアクチュエータに適用される１つ以上の遅延を変更できる。
【００６９】
ユーザインターフェース１４００はさらに、方向１４２０を含む。方向１４２０は、ユーザがハプティック効果の方向をプログラムで変更できるようにする。方向は、コントローラの様々なモータまたはアクチュエータの間の前後および／または左右バイアス（またはバランス）を強調するための、マグニチュード（または強度）変更である。あるいは、方向は周波数変更であってもよい。例えば、方向は、ハプティック効果のハプティック再生がコントローラの右において最も強くなるように、定義されることができる。方向１４２０は、２つの軸によって定義された二次元グリッドまたは空間内の点として、ユーザインターフェース１４００内で視覚化されることができる。このように、方向１４２０と相互作用することにより、ユーザは左右および／または前後バイアス（またはバランス）を強調するために、様々なモータまたはアクチュエータに適用されるマグニチュード（または強度）を変更できる。
【００７０】
ユーザインターフェース１４００はさらに、強度１４３０を含む。強度１４３０は、再生の前または最中に、ユーザが全体的なハプティック効果のマグニチュード（または強度）をプログラムで変更できるようにする。強度１４３０は、スライダとしてユーザインターフェース１４００内で視覚化されることができる。このように、強度１４３０と相互作用することにより、ユーザはハプティック効果の全体的なマグニチュード（または強度）を変更できる。ユーザインターフェース１４００はさらに、再生速度１４４０を含む。再生速度１４４０は、ハプティック効果を再生するためにシステム（図１のシステム１０など）がハプティック効果のハプティック効果定義を処理する再生速度または率を、ユーザがプログラムで変更できるようにする。再生速度１４４０は、スライダとしてユーザインターフェース１４００内で視覚化されることができる。このように、再生速度１４４０と相互作用することにより、ユーザはハプティック効果の再生速度または率を変更できる。ユーザインターフェース１４００はさらにループ１４５０を含む。ループ１４５０は、ハプティック効果の再生がループになっているか否かをユーザがプログラムで変更できるようにする。ループ１４５０は、ボタンとしてユーザインターフェース１４００内で視覚化されることができる。このように、ループ１４５０と相互作用することにより、ユーザはハプティック効果のループ化を制御できる。空間化エンジンのさらなる詳細はさらに、図２９および図３０と併せて、以下により詳細に記載される。
【００７１】
図１５は、本発明の実施形態に係る、ハプティック効果ＡＰＩ１５００のアーキテクチャ図を示す。ハプティック効果ＡＰＩ１５００は、トリガなどのコントローラのユーザ入力エレメントにおいて、トリガハプティック効果などのハプティック効果を開発者が再生できるようにする、コンピュータ可読機能またはルーチンのセットを含む。ハプティック効果ＡＰＩは、運転／レース、武器／戦争、およびスポーツ（例えばサッカー、フットボール、野球、ゴルフ、またはホッケー）など、多くの異なるゲームジャンルのための所定のハプティック効果定義を包含する広範なハプティック効果ライブラリを含むことができる。一実施形態において、ハプティック効果ＡＰＩはＣ＋＋クラスのセットを含むことができ、クライアントアプリケーションにおいて停止される可能性のある、例外および実行時型情報などの拡張機能を使用する必要はない。代替実施形態において、ハプティック効果ＡＰＩは、Ｃ、Ｊａｖａ（登録商標）、またはＣ＃など、その他の言語結合を使用できる。さらに、ハプティック効果ＡＰＩは、Ｕｎｉｔｙ３Ｄ（商標）およびＭａｒｍａｌａｄｅ（商標）など、特定のゲームジャンルのためのプラグインを提供できる。
【００７２】
実施形態によれば、ハプティック効果ＡＰＩ１５００はアプリケーション１５１０によってアクセス可能であり、これはシステム（図１のシステム１０など）上で実行されることができる、ゲームアプリケーションなどのソフトウェアアプリケーションである。さらに、ハプティック効果ＡＰＩ１５００は効果ライブラリ１５２０にアクセスでき、効果ライブラリ１５２０は、ハプティック効果定義１５２１（図１５において「効果１５２１」とされる）など、１つ以上のハプティック効果定義を含むことができる。先に記載されたように、ハプティック効果定義の一例はトリガハプティック効果定義である。さらに、ハプティック効果ＡＰＩ１５００は、装置定義１５０１（図１５において「装置１５０１」とされる）など、１つ以上の装置定義を含む。装置定義は、コントローラ、ゲームパッド、またはその他の周辺機器などのハードウェア装置を定義する装置データを含み、ここでハプティック効果が再生されることになる。ハプティック効果ＡＰＩ１５００はさらに、タイマー定義１５０２（図１５において「タイマー１５０２」とされる）など、１つ以上のタイマー定義を含む。タイマー定義は、特定のハードウェア装置に登録された全てのハプティック効果定義が更新されるのにかかる時間を定義する、タイマーデータを含む。ハプティック効果ＡＰＩ１５００はさらに、トリガ定義１５０３（図１５において「トリガ１５０３」とされる）を含む。トリガ定義は、特定のハードウェア装置のトリガを定義する、トリガデータを含む。ハプティック効果ＡＰＩ１５００はさらに、プロトコル定義１５０４（図１５において「プロトコル１５０４」とされる）を含む。プロトコル定義は、特定のハードウェア装置と通信するためにトリガハプティック効果ＡＰＩ１５００によって使用される通信インターフェースのプロトコルを記述する。プロトコル定義１５０４を使用して、ハプティック効果ＡＰＩ１５００は装置ファームウェア１５３０（図１５において「ＦＷ１５３０」とされる）と通信でき、装置ファームウェア１５３０は特定のハードウェア装置のためのファームウェアである。装置ファームウェア１５３０を使用して、ハプティック効果ＡＰＩ１５００はさらにハードウェア装置１５４０（図１５において「ＨＷ１５４０」とされる）と通信でき、ハードウェア装置１５４０は特定のハードウェア装置である。
【００７３】
一実施形態において、アプリケーション１５１０は、ハプティック効果が再生されることになるターゲットハードウェア装置（すなわち、ＨＷ１５４０）を取得するために、装置定義１５０１にアクセスできる。装置定義１５０１にアクセスすることにより、アプリケーション１５１０はさらに、タイマー定義１５０２、トリガ定義１５０３、およびプロトコル定義１５０４にアクセスできる。アプリケーション１５１０はさらに、ハプティック効果をインスタンス作成するために、効果ライブラリ１５２０からのハプティック効果定義１５２１にアクセスできる。アプリケーション１５１０はさらに、ハプティック効果ＡＰＩ１５００およびＦＷ１５３０を介してターゲットハードウェア装置（すなわちＨＷ１５４０）に命令を送信することによって、ターゲットハードウェア装置（すなわちＨＷ１５４０）においてハプティック効果を再生させることができる。
【００７４】
図１６は、本発明の実施形態に係る、ハプティック効果を生成するファームウェアのアーキテクチャ図を示す。アーキテクチャは通信インターフェース１６００を含む。通信インターフェース１６００は、ハプティック効果ＡＰＩ（図１５のハプティック効果ＡＰＩ１５００など）と、コントローラまたはゲームパッドなどの周辺機器のためのファームウェアとの間の通信を提供する。アーキテクチャはさらに、効果スロット１６１０を含む。効果スロットはハプティック効果のタイプを定義し、以下のパラメータを含むことができる：マグニチュード（または強度）；周波数（または周期）；エンベロープ（例えば攻撃レベル、攻撃時間、フェードレベル、およびフェード時間）；アクチュエータ（例えば、「鳴動」または「指向性」など、特定のアクチュエータまたは仮想アクチュエータ）；方向（例えば１つまたは２つの角度、あるいは二次元ベクトル）；距離（例えば、ハプティック効果全体をモジュール化するために使用可能）；開始／終了ハプティック効果定義（例えば挿入されたハプティック効果を作り出すために挿入されることができる、開始ハプティック効果定義および終了ハプティック効果定義）。特定のタイプの効果スロット１６１０は、トリガ効果スロット１６２０である。トリガ効果スロットは、トリガハプティック効果のタイプを定義し、効果スロットの上記パラメータに加えて、以下の追加パラメータを含むことができる：トリガボタン（例えばなし、左、または右）；トリガ開始／停止点、および方向（例えば、特定方向へ移動中にトリガボタンが特定位置に到達したときにトリガハプティック効果を開始／停止する）；ならびにトリガ終了点（例えば、トリガハプティック効果の再生中に開始トリガハプティック効果定義と終了トリガハプティック定義との間に挿入する）。
【００７５】
アーキテクチャはさらに、トリガエンジン１６３０を含む。先に記載されたように、トリガエンジン１６３０はトリガハプティック効果定義を受信でき、コントローラのトリガの位置および／または範囲など、トリガデータに基づいてトリガハプティック効果定義を変更できる。アーキテクチャはさらに、トリガ・ハードウェア・インターフェース１６４０（図１６において「トリガＨＷインターフェース１６４０」とされる）を含む。トリガ・ハードウェア・インターフェース１６４０は、トリガエンジン１６３０がコントローラまたはゲームパッドなどの周辺機器からトリガデータを受信できるようにする、通信インターフェースである。アーキテクチャはさらに、空間化エンジン１６５０を含む。先に記載されたように、空間化エンジン１６５０は、トリガハプティック効果などのハプティック効果がコントローラの１つ以上のターゲットモータ、ターゲットアクチュエータ、鳴動モータ、または鳴動アクチュエータのためにスケーリングされるように、トリガハプティック効果などのハプティック効果定義を変更できる。アーキテクチャはさらに、基本効果レンダリングエンジン１６６０を含む。基本効果レンダリングエンジン１６６０は、トリガハプティック効果定義などのハプティック効果定義に基づいて、モータまたはアクチュエータのためにトリガハプティック効果などのハプティック効果を表現する。アーキテクチャはさらに、アクチュエータ・ハードウェア・インターフェース１６７０（図１６において「アクチュエータＨＷインターフェース１６７０」とされる）を含む。アクチュエータ・ハードウェア・インターフェース１６７０は、モータまたはアクチュエータにハプティック効果を再生させるために、表現されたハプティック効果内に含まれるハプティックデータを基本効果レンダリングエンジン１６６０にモータまたはアクチュエータまで送信させる、通信インターフェースである。
【００７６】
図１７は、本発明の実施形態に係る、コントローラのための例示的な指向性モデルを示す。実施形態によれば、コントローラは鳴動モータ１７１０および１７２０、ならびにターゲットモータ１７３０および１７４０を含み、ターゲットモータ１７３０および１７４０は、コントローラのトリガに各々動作可能に結合されている。鳴動モータ１７１０および１７２０は、補完的な振動範囲を有することができる。さらに、ターゲットモータ１７３０および１７４０は、より空間的に隔離された高周波振動を生成できる。左右空間化ハプティック効果のために鳴動モータ１７１０および１７２０を使用することで非対称振動経験（すなわち、ほとんどのユーザにとってあまり空間的に分離されていない異なる周波数成分）を提供することは理解され得る。このためハプティック効果定義は、左前、右前、および無指向性チャネルを含むことができる。さらに、前後指向性は、鳴動モータ１７１０および１７２０からターゲットモータ１７３０および１７４０まで振動を推移させることによって強化されることができる。このため鳴動モータ１７１０および１７２０は、無指向性低周波ハプティック効果のために使用されることができる。鳴動モータ１７１０および１７２０はまた、前後指向性のために任意に使用されることもできる。さらに、ターゲットモータ１７３０および１７４０は、左右指向性のために使用されることもできる。
【００７７】
図１８は、本発明の実施形態に係る、ハプティック効果ファームウェアスタックのブロック図を示す。ハプティック効果ファームウェアスタックは、図５の周辺ファームウェア５１０などの、周辺機器のためのファームウェア用であってもよい。トリガハプティック効果ファームウェアスタックは、コントローラハプティックＡＰＩ１８００（図１８において「トリガコントローラハプティックＡＰＩ１８００」とされる）を含むことができる。コントローラハプティックＡＰＩ１８００は、トリガなどのコントローラのユーザ入力エレメントにおけるトリガハプティック効果などのハプティック効果をファームウェアが再生できるようにする、コンピュータ可読機能またはルーチンのセットを含む。コントローラハプティックＡＰＩ１８００は、基本的な効果定義１８０１を含むことができる。効果定義１８０１は、トリガハプティック効果などの１つ以上のハプティック効果定義を含む。コントローラハプティックＡＰＩ１８００はさらに、効果ライブラリコード１８０２を含むことができる。効果ライブラリコード１８０２は、効果定義１８０１内に記憶されたハプティック効果定義に基づいてハプティック効果をインスタンス作成することができる、コンピュータ可読命令のセットを含む。効果ライブラリコード１８０２は、ハプティック効果定義に基づくハプティック効果のインスタンス作成の一部として、１つ以上の効果専用パラメータを提供できる。コントローラハプティックＡＰＩ１８００はさらに、指向性エンジン１８０３を含むことができる。指向性エンジン１８０３は、トリガハプティック効果などのハプティック効果がコントローラの１つ以上のターゲットモータ、ターゲットアクチュエータ、鳴動モータ、または鳴動アクチュエータのためにスケーリングされるように、トリガハプティック効果定義などのハプティック効果定義を変更できる。コントローラハプティックＡＰＩ１８００はさらに、エミュレータ１８０４を含む。エミュレータ１８０４は、トリガハプティック効果定義などのハプティック効果定義に基づいて、コントローラの１つ以上のモータまたはアクチュエータ（例えば４つのモータ）のために、トリガハプティック効果などのハプティック効果を表現する。コントローラハプティックＡＰＩ１８００はさらに、コントローラＡＰＩ１８１０を使用して、表現されたハプティック効果をコントローラ１８２０（またはその他何らかの周辺機器）に送信する。
【００７８】
図１９は、本発明の実施形態に係る、コントローラにおいて経験されるハプティック効果を提供するシステム（図１のシステム１０など）のアーキテクチャ図を示す。システムは、アプリケーション１９００（図１９において「ａｐｐ１９００」とされる）を示す。アプリケーション１９００は、システム上で実行されることができる、ゲームアプリケーションなどのソフトウェアアプリケーションである。システムはさらに、ハプティック効果ＡＰＩ１９１０（図１９において「ＡＰＩ１９１０」とされる）を含む。一実施形態において、ハプティック効果ＡＰＩ１９１０は、図１８のコントローラハプティックＡＰＩ１８００と同一である。実施形態によれば、ハプティック効果ＡＰＩ１９１０は、全てのコントローラ、ゲームパッド、またはその他の周辺機器のための単一のＡＰＩであってもよい。このためハプティック効果ＡＰＩ１９１０は、コントローラ、ゲームパッド、およびその他の周辺機器の間の差を抽出できる。さらに、ハプティック効果ＡＰＩ１９１０は、１つ以上の内蔵ハプティック効果定義を含む内蔵効果ライブラリを含むことができる。内蔵ハプティック効果定義は、対応するハプティック効果の１つ以上の性質を封じ込めたデータ構造である。
【００７９】
あるタイプの内蔵ハプティック効果定義は、静的ハプティック効果定義１９１１（図１９において「静的１９１１」とされる）である。静的ハプティック効果定義１９１１は、経時的に変化しない静的ハプティック効果を生成する、１つ以上の周期的またはマグニチュード掃引効果定義のセットである。例としては、自動車事故、ロケット発射装置、およびユーザインターフェース確認を含む。静的ハプティック効果定義１９１１は、ゲーム内のイベントに基づいて、アプリケーション１９００によって直接呼び出されることができる。静的ハプティック効果定義１９１１によって生成する静的ハプティック効果は、トリガハプティック効果として使用されることができる。
【００８０】
別のタイプの内蔵ハプティック効果定義は、動的ハプティック効果定義１９１２（図１９において「動的１９１２」とされる）である。動的ハプティック効果定義１９１２は、１つ以上のパラメータ１９１４を入力として受け付け、連続的に変化するハプティック効果（すなわち、動的ハプティック効果）を生成する、アルゴリズムである。例としては、エンジンの毎分回転数（ＲＰＭ）、スノーボード、および爆発を含む。静的ハプティック効果定義は、ベクトル（すなわち、距離および方向）、および１つ以上のボタンまたは軸の入力位置／状態）を含むことによって、動的ハプティック効果定義に変えられることができる。動的ハプティック効果は、アプリケーション１９００から渡されることができるゲーム変数に基づいてもよい。動的ハプティック効果はまた、トリガ入力などのコントローラ入力に基づいてもよい。
【００８１】
別のタイプの内蔵ハプティック効果定義は、直接制御ハプティック効果定義１９１３（図１９において「直接制御１９１３」とされる）である。直接制御シナリオでは、直接制御ハプティック効果定義１９１３は、コア効果ライブラリ１９２０内を移動する際に直接制御ハプティック効果定義１９１３にほとんど処理を行わずに、出力装置への直接表現を可能にするような方法で、定義されることができる。このシナリオにおいて、直接制御ハプティック効果定義１９１３は、出力装置上の多数の出力アクチュエータに対応し、これらを正確にマッピングする、多数の異なるデータチャネルを含むことができる。あるいは、直接制御ハプティック効果定義１９１３は、出力装置上で利用可能な出力アクチュエータの数を超える多数の異なるデータチャネルを包含でき、コア効果ライブラリ１９２０は多数のチャネルを選択することができ、各チャネルは出力装置内の特定のアクチュエータを最もよくマッピングするように選択され、コア効果ライブラリ１９２０はその後、選択されたチャネルのデータをマッピングされたアクチュエータに送信できる。
【００８２】
システムはさらに、コア効果ライブラリ１９２０（図１９において「コア１９」とされる）を含む。コア効果ライブラリ１９２０は、１つ以上のハプティック効果定義１９２１（図１９において「ＦＸ１９２１」とされる）を含む。ハプティック効果定義１９２１は、トリガハプティック効果定義１９２２（図１９において「トリガ効果１９２２」とされる）を含むことができる。ハプティック効果定義の例は、爆発ハプティック効果定義、ＲＰＭハプティック効果定義、スノーボードハプティック効果定義、およびその他のハプティック効果定義を含むことができる。コア効果ライブラリはさらに、ミキサ１９２３（図１９においてミキサ／優先順位付け１９２３」とされる）を含む。ミキサ１９２３は、１つ以上のハプティック効果定義を混ぜるかまたは優先順位を付けることができる。
【００８３】
システムはさらに、低レベルＡＰＩ１９３０を含む。低レベルＡＰＩ１９３０は、ハプティック効果定義に基づいてハプティック効果を再生するための命令を受信でき、命令を、コントローラ１９４０によって解釈されることができる低レベル命令に変換できる。低レベルＡＰＩ１９３０の一例はＭｉｃｒｏｓｏｆｔ社によるＸｂｏｘ（登録商標）ＡＰＩ２０３１であり、コントローラ１９４０の一例はＭｉｃｒｏｓｏｆｔ社によるＸｂｏｘ（登録商標）コントローラ２０４１である。
【００８４】
図２０は、本発明の実施形態に係る、空間化ハプティック効果をプレビューおよび変更するための例示的なユーザインターフェース２０００を示す。システム（図１のシステム１０など）は、空間化ハプティック効果プレビューおよび変更ツールとして、ユーザインターフェース２０００を提供できる。実施形態によれば、ユーザインターフェース２０００はオープン効果２０１０を含む。オープン効果２０１０は、選択可能なトリガハプティック効果プリセットなどの１つ以上のハプティック効果プリセットを表示できる。ユーザインターフェース２０００はさらに、効果ライブラリ２０２０を含む。効果ライブラリ２０２０は、ハプティック効果ライブラリ内に含まれる、トリガハプティック効果プリセットなどの１つ以上のハプティック効果プリセットを表示できる。効果ライブラリ２０２０は、カテゴリごとに１つ以上のハプティック効果プリセットを表示できる。
【００８５】
ユーザインターフェース２１００はさらに、タイムライン２０３０を含む。実施形態によれば、ユーザはオープン効果２０１０内に表示されたハプティック効果プリセットを選択でき、タイムライン２０３０は、選択されたハプティック効果プリセットによって表されるハプティック効果定義の図形描写を表示できる。図示される実施形態において、ハプティック効果定義は４つのチャネルを含み、各チャネルは特定の出力（例えば、（１）右トリガ用のターゲットモータまたはアクチュエータ；（２）左トリガ用のターゲットモータまたはアクチュエータ；（３）右鳴動モータまたはアクチュエータ；および（４）左鳴動モータまたはアクチュエータ）のためにマッピングされるハプティックデータを含み、各チャネルはタイムラインに沿って表示される。しかしながら、別の実施形態において、ハプティック効果定義はいくつのチャネルでも含むことができる。さらに、ユーザは、タイムライン２０３０内の１つ以上の表示要素と相互作用することによって、１つ以上のチャネルの選択されたハプティック効果定義を変更できる。１つ以上のチャネルのハプティック効果定義を変更することによって、対応するハプティック効果の１つ以上の性質を変更できる。
【００８６】
ユーザインターフェース２０００はさらに、効果特性２０４０を含む。効果特性２０４０は、トリガエンジン（図５のトリガエンジン５０６など）によって生成されるトリガハプティック効果を視覚化することができる、編集可能視覚領域である。先に記載されたように、トリガエンジンはトリガハプティック効果定義を受信でき、コントローラのトリガの位置および／または範囲に基づいてトリガハプティック効果定義を変更できる。このように効果特性２０４０は、トリガの実際の位置を含む、トリガの視覚化映像を表示できる。さらに、効果特性２０４０は、トリガハプティック効果定義のために定義されたトリガの位置および／または範囲を表示でき、位置および／または範囲はトリガエンジンにトリガハプティック効果定義を変更させることができる。ユーザは、トリガハプティック効果定義のために定義されたトリガの位置および／または範囲を編集できる。さらに、効果特性２０４０はコントローラのためのトリガのリストを表示できるので、ユーザはトリガハプティック効果定義のために定義されたトリガを編集できる。さらにまた、効果特性２０４０はトリガハプティック効果定義のマグニチュード（または強度）を表示でき、ユーザはマグニチュード（または強度）を変更できる。
【００８７】
ユーザインターフェース２０００はさらに、空間化２０５０を含む。空間化２０５０は、空間化エンジン（図５の空間化エンジン５０７など）によって元々生成されてさらに変更されたハプティック効果を視覚化することができる、編集可能視覚領域である。先に記載されたように、空間化エンジンは、ハプティック効果がコントローラの１つ以上のターゲットモータ、ターゲットアクチュエータ、鳴動モータ、または鳴動アクチュエータのためにスケーリングされるように、ハプティック効果定義を変更できる。このため、空間化２０５０は、コントローラの視覚化映像を表示できる。空間化２０５０はさらに、コントローラの各ターゲットモータ、ターゲットアクチュエータ、鳴動モータ、または鳴動アクチュエータにおいて経験されるトリガハプティック効果の視覚化映像を表示できる。ユーザは、コントローラの各ターゲットモータ、ターゲットアクチュエータ、鳴動モータ、または鳴動アクチュエータにおいて経験されるハプティック効果のスケーリングを編集でき、ハプティック効果の発生源のスケーリングを編集することもできる。
【００８８】
図２１は、本発明の実施形態に係る、オーディオ信号をトリガハプティック効果に変換するための例示的なユーザインターフェース２１００を示す。実施形態によれば、ハプティック効果設計は、ユーザインターフェース２１００に組み込まれるオーディオ設計プロセスの一部になることができる。より具体的には、ユーザインターフェース２１００内に表示されるオーディオ効果定義３〜８はハプティック効果定義に変換されることができ、ハプティック効果定義はエクスポートされることができる。
【００８９】
図２２は、本発明の実施形態に係る、空間化ハプティック効果をプレビューするシステム（図１のシステム１０など）のアーキテクチャ図を示す。システムはユーザインターフェース２２００を含む。一実施形態において、ユーザインターフェース２２００はＱｔユーザインターフェースであり、Ｑｔは、クロスプラットフォームアプリケーションおよびユーザ・インターフェース・フレームワークである。システムはさらにアダプタ層２２１０を含む。システムはさらにトリガＡＰＩ層２２２０を含む。システムはさらにトリガファームウェア層２２３０を含む。
【００９０】
ユーザインターフェース２２００はプロッタ２２０１を含む。プロッタ２２０１はユーザによって指定されたハプティック効果定義を入力として受け取り、アダプタ層２２１０を通じてトリガＡＰＩ層２２２０に、ハプティック効果定義内に含まれるハプティックデータを送信する。トリガＡＰＩ層２２２０は、プロッタ２２０１がユーザインターフェース２２００内に表示するここのチャネルデータを送り返す。レンダー２２０２はコントローラＧＵＩ２２０３からの入力を受け取り、ハプティックプレーヤ・レンダー・ループを開始する。入力はアダプタ層２２１０を通され、これはトリガＡＰＩ層２２２０とのコールバック設定、およびコントローラ２２１４から送信されるリレーコントローラ入力２２１３（ボタンおよびトリガ入力など）を有する。アダプタ層２２１０はまた、レンダーループがユーザインターフェース２２００を更新するために起動している間に、プロッタ２２０１と通信することもできる。コントローラＧＵＩ２２０３はまた、コントローラセレクタ２２１２を用いてコントローラ２２１４を選択することも可能であり、何が接続されているかを示すことができる。コントローラＧＵＩ２２０３はまた、トリガ起動点を設定することもできる。さらに、インポータ／エクスポータ２２０４は、入力オーディオファイルを受け取って、これらをハプティックファイルに変換できる。一実施形態において、オーディオファイルはＷＡＶファイルである。さらに、アダプタ層２２１０は、ユーザインターフェース２２００内に埋め込まれることができるか、または個別のライブラリであってもよい。アダプタ層２２１０が個別のライブラリであるとき、アダプタ層２２１０は個別のＣ＋＋ライブラリであってもよい。
【００９１】
図２３は、本発明の実施形態に係る、空間化ハプティック効果を生成するシステム（図１のシステム１０など）のアーキテクチャ図を示す。システムは、ゲームアプリケーション２３００（図２３において「ゲーム２３００」とされる）を含む。ゲームアプリケーション２３００は、ソフトウェアゲーム、またはその他のタイプのソフトウェアアプリケーションに従って、コントローラ、ゲームパッド、またはその他の周辺機器によって提供された入力を管理する、コンピュータ可読命令のセットを含む。一実施形態において、ゲームアプリケーション２３００はハプティック効果ライブラリ２３０１を含み、ハプティック効果ライブラリ２３０１は１つ以上のハプティック効果定義を含む。
【００９２】
システムはさらに、ハプティックエンジン２３１０を含む。ハプティックエンジン２３１０は、ハプティック効果の再生を実行するため、およびゲームアプリケーション２３００にハプティック効果を加えるために、低レベルＡＰＩを利用することができる、高レベルＡＰＩである。ハプティックエンジン２３１０は、ハプティック効果をロード、開始、停止、および表現することができる。ハプティックエンジン２３１０は、ハプティック効果を解析／その情報を取得するために、ハプティック効果パーサ２３２０とインターフェース接続できる。ハプティックエンジン２３１０はさらに、効果を開始または停止してミキサバッファを変更するために、ハプティックミキサ２３３０とインターフェース接続できる。ハプティックエンジン２３１０はさらに、コントローラ、ゲームパッド、またはその他の周辺機器の装置ハンドルを取得し、これらにおけるハプティック効果を表現するために、ハプティック装置ハンドラ２３５０とインターフェース接続できる。
【００９３】
システムはさらに、ハプティック効果パーサ２３２０を含む。ハプティック効果パーサ２３２０は、メモリにハプティック効果をロードし、該ハプティック効果のフォーマットを検証し、サイズ、持続時間、およびハプティックデータなどのハプティック効果に関する情報を取得することができる、ＡＰＩを含む。システムはさらに、ハプティックミキサ２３３０を含む。ハプティックミキサ２３３０は、複数のハプティック効果の再生を同時に支援する。システムはさらに、ハプティック装置ハンドラ２３４０を含む。ハプティック装置ハンドラ２３４０は、コントローラ、ゲームパッド、またはその他の周辺機器との通信を開始および管理できる。ハプティック装置ハンドラ２３４０は、ユニバーサル・シリアル・バス（ＵＳＢ）通信層とインターフェース接続して、コントローラ、ゲームパッド、またはその他の周辺機器の装置ハンドルを取得できる。ハプティック装置ハンドラ２３４０はさらに、ハプティック効果再生のために不可欠ないくつかの状態機械構造を初期化できる。
【００９４】
システムはさらに、トリガハプティックレポートハンドラ２３５０を含む。トリガハプティックレポートハンドラ２３５０は、トリガ通信プロトコルにしたがって、ハプティックデータをＵＳＢ・ＨＩＤパケット内にパッケージできる。システムはさらに、プラットフォーム補完ＵＳＢ・ＨＩＤライブラリ２３６０を含む。プラットフォーム補完ＵＳＢ・ＨＩＤライブラリ２３６０は、ＵＳＢ・ＨＩＤおよびＢｌｕｅｔｏｏｔｈ（登録商標）ＨＩＤクラスのコントローラ、ゲームパッド、またはその他の周辺機器とインターフェース接続するために、１つ以上のコンピュータ可読ルーチンを含む。システムはさらに、周辺ファームウェア２３７０（図２３において「ゲームパッドファームウェア２３７０」とされる）を含む。周辺ファームウェア２３７０は、コントローラ、ゲームパッド、またはその他の周辺機器のためのファームウェアである。システムはさらに、周辺入力リーダ２３８０（図２３において「ゲームパッド入力リーダ２３８０」とされる）を含む。周辺入力リーダ２３８０は、コントローラ、ゲームパッド、またはその他の周辺機器によって送信された周辺入力を受信する。周辺入力リーダ２３８０はさらに、周辺入力を解釈して、ゲームアプリケーション２３００に周辺入力を送信する。
【００９５】
図２４は、本発明の実施形態に係る、空間化ハプティック効果を生成するファームウェアのアーキテクチャ図を示す。ファームウェアアーキテクチャは、ファームウェアをモジュール式にでき、ハードウェア独立コンポーネントをハードウェア依存コンポーネントから分離でき、あるマイクロコンピュータユニットから別のものへの移植を容易にできる。ハードウェア独立層は、機能ポインタによってハードウェア依存層と通信できる。ハードウェア依存層は、実装テンプレートに基づいて、別のマイクロコントローラユニットに移植されることができる。全てのハードウェア依存ルーチンは、異なるポート／ボタン定義を有するハードウェアの内部観察を提供することができる基板構成ファイルと、インターフェース接続できる。
【００９６】
図２４は、ホストソフトウェア２４００（図２４において「ホストＳＷ２４００」とされる）を含む。ホストソフトウェア２４００は、ソフトウェアゲーム、またはその他のタイプのソフトウェアアプリケーションに従って、コントローラ、ゲームパッド、またはその他の周辺機器によって提供される入力を管理する、コンピュータ可読命令のセットを含む。ホストソフトウェア２４００は、ソフトウェア空間内にあってもよい。図２４はさらに、ＵＳＢ・ＨＩＤハンドラ２４０５を含む。ＵＳＢ・ＨＩＤハンドラ２４０５は、コントローラ、ゲームパッド、またはその他の周辺機器とホストソフトウェア２４００との間の全ての通信のための、主要入力点であってもよい。ＵＳＢ・ＨＩＤハンドラ２４０５は、トリガ通信プロトコルにしたがって、ハプティックデータなどのデータをエンコード／デコードするための、１つ以上のコンピュータ可読機能またはルーチンを含むことができる。ＵＳＢ・ＨＩＤハンドラ２４０５はまた、ＵＳＢ通信を取り扱うための、全てのＵＳＢ記述子およびルーチンを記憶することもできる。ＵＳＢ・ＨＩＤハンドラ２４０５は、ファームウェア空間内にあってもよい。
【００９７】
図２４はさらに、通信インターフェース２４１０を含む。通信インターフェース２４１０は、入ってくるパケットを解析し、適切な動作を行うためにコマンドハンドラ２４１５を呼び出す。図２４はさらに、コマンドハンドラ２４１５を含む。コマンドハンドラ２４１５は、アクチュエータ上でのハプティック再生を支援するトリガプロトコルによって支援されるコマンドを取り扱うために、１つ以上のコンピュータ可読機能またはルーチンを含むことができる。図２４はさらに、ハプティック駆動ハンドラ２４２０を含む。ハプティック駆動ハンドラ２４２０は、ハプティック再生エンジンの状態を更新でき、アクチュエータの駆動値を更新し、アクチュエータを制御する。ハプティック駆動ハンドラ２４２０は、機能ポインタ機構によって、ハードウェア依存性のタイマーハンドラ２４３５およびアクチュエータ制御２４２５とインターフェース接続できる。通信インターフェース２４１０、コマンドハンドラ２４１５、およびハプティック駆動ハンドラ２４２０は、全てファームウェア空間内にあってもよい。
【００９８】
図２４はさらに、アクチュエータ制御２４２５（図２４において「アクチュエータ駆動制御２４２５」とされる）を含む。アクチュエータ制御２４２５は、アクチュエータを制御して駆動値を設定できる。アクチュエータ制御２４２５は、パルス幅変調生成ユニットとインターフェース接続するための、およびアクチュエータ・ドライバ・チップとインターフェース接続するための、１つ以上のコンピュータ可読機能またはルーチンを含むことができる。図２４はさらに、コントローラ入力リーダ２４３０（図２４において「ゲームパッド入力リーダ２４３０」とされる）を含む。コントローラ入力リーダ２４３０は、コントローラ、ゲームパッド、またはその他の周辺機器の異なる入力の状態を取得するため、入力をパッケージするため、およびホストソフトウェア２４００にさらに送信されるために入力を通信インターフェース２４１０に送信するため、プラットフォーム依存性の入力リーダ２４４０とインターフェース接続できる。図２４はさらに、タイマーハンドラ２４３５を含む。タイマーハンドラ２４３５は、アクチュエータの駆動値を更新するルーチンを呼び出すために周期割り込みを生成する役割を担うタイマーを制御することができる、ハードウェア依存層である。図２４はさらに、入力リーダ２４４０を含む。入力リーダ２４４０は、全てのポテンショメータの状態、およびコントローラ、ゲームパッド、またはその他の周辺機器のデジタル入力を取得することができる、ハードウェア依存層である。図２４はさらに、周辺およびインターフェースドライバ２４５０を含む。周辺およびインターフェースドライバ２４５０は、通信インターフェースおよびハードウェア周辺機器を制御するための、１つ以上のコンピュータ可読機能またはルーチンを含むことができる。アクチュエータ制御２４２５、コントローラ入力リーダ２４３０、タイマーハンドラ２４３５、入力リーダ２４４０、および周辺およびインターフェースドライバ２４５０は、全てファームウェア空間内にあってもよい。
【００９９】
図２４はさらに、マイクロコントローラユニット２４６０を含み、これはコンピュータ処理ユニット２４６１、ＵＳＢ２４６２、割り込みコントローラ２４６３、タイマー周辺機器２４６４、およびその他の周辺機器２４６５などのコンポーネントを含むことができる。これらのコンポーネントの機能は、当業者にとって周知である。図２６はさらに、コントローラハードウェア２４７０（図２４において「ゲームパッドハードウェア２４７０」とされる）を含む。コントローラハードウェア２４７０の機能もまた、当業者にとって周知である。マイクロコントローラユニット２４６０、およびコントローラハードウェア２４７０は、全てファームウェア空間内にあってもよい。さらに、通信インターフェース２４１０、コマンドハンドラ２４１５、ハプティック駆動ハンドラ２４２５、およびコントローラ入力リーダ２４３０は全てハードウェア独立コンポーネントであってもよく、その一方でＵＳＢ・ＨＩＤハンドラ２４０５、アクチュエータ制御２４２５、タイマーハンドラ２４３５、入力リーダ２４４０、周辺およびインターフェースドライバ２４５０、マイクロコントローラユニット２４６０、およびコントローラハードウェア２４７０は全てハードウェア依存コンポーネントであってもよい。
【０１００】
一実施形態において、コントローラ、ゲームパッド、またはその他の周辺機器は、ハプティックデータを伝達するため、および個々のモータまたはアクチュエータを駆動するための、カスタマイズされたプロトコルを有することができる。したがって、オーディオオーサリングコンポーネントからオーディオ効果定義として作成されたハプティック効果を含むオーディオファイルを受信し、オーディオファイル内に含まれるオーディオデータをコントローラ、ゲームパッド、またはその他の周辺機器に送信する、オーディオドライバが提供されてもよい。一実施形態において、オーディオオーサリングコンポーネントは、Ａｖｉｄ  Ｔｅｃｈｎｏｌｏｇｙ，Ｉｎｃ．による「Ｐｒｏ  Ｔｏｏｌｓ（登録商標）」製品であってもよい。オーディオドライバは、起動プロセスの間にロードされることができる。オーディオドライバは、起動プロセスの間にロードされることができる。オーディオドライバは、コントローラ、ゲームパッド、またはその他の周辺機器内の全てのモータまたはアクチュエータの使用のためのハプティック効果定義を可能にするため、必要な数のオーディオチャネルを曝すことができる。オーディオドライバはさらにユーザ空間内で作業でき、全てのユーザ空間オーディオ編集／再生アプリケーションにアクセス可能であってもよい。オーディオドライバはさらに、オーディオオーサリングコンポーネントがコントローラ、ゲームパッド、またはその他の周辺機器に送信したオーディオデータを読み取ることができる。オーディオドライバはさらに、提示されているオーディオデータに対して必要な処理を実行でき、オーディオデータをアクチュエータ駆動値などのハプティックデータに変換できる。オーディオドライバはさらに、通信インターフェースを通じて、ハプティックデータをコントローラ、ゲームパッド、またはその他の周辺機器に通信できる。
【０１０１】
実施形態によれば、コントローラ、ゲームパッド、またはその他の周辺機器は、４つのアクチュエータを含むことができる。２つのアクチュエータは、トリガ上のハプティックフィードバックに影響を及ぼすトリガアクチュエータとして使用されることができる。トリガアクチュエータは双方向性であってもよい。プッシュおよびプルの２種類の方向イベントが、トリガアクチュエータによって起こり得る。プッシュおよびプル方向は、トリガ上のユーザの指に対するものであってもよい。他の２つのアクチュエータは、コントローラ、ゲームパッド、またはその他の周辺機器の中の一般ハプティックフィードバックまたは鳴動フィードバックに影響を及ぼす鳴動アクチュエータとして、使用されることができる。鳴動アクチュエータは、一方向性であってもよい。より具体的には、鳴動アクチュエータは、時計回り方向または反時計回り方向のいずれかに回転できるが、しかし両方向には回転できない。モーションの方向は、コントローラ、および／またはコントローラの駆動エレクトロニクスに依存できる。
【０１０２】
この実施形態において、オーディオドライバのために以下のチャネルレイアウトが選択されることができる。
【０１０３】
【表１】
0005986171.tif 000002
【０１０４】
一実施形態において、１６ビットＰＣＭのために選択されたオーディオフォーマットは、４４．１ＫＨｚであってもよい。オーディオドライバは、オーディオオーサリングコンポーネントからオーディオデータを受信し、オーディオデータをハプティックデータ（例えば駆動値）に変換し、ハプティックデータをコントローラに相応に通信できる。
【０１０５】
図２５は、本発明の実施形態に係る、例示的なオーディオアーキテクチャを示す。オーディオアーキテクチャはアプリケーションレベルサービス２５００を含む。アプリケーションレベルサービス２５００は：オーディオキューサービス；オーディオユニット；システムオーディオ；オーディオファイル・ストリーム・サービス；オーディオファイル、変換器、およびコーデックサービス；ＯｐｅｎＡＬ；音楽シーケンスサービス；またはコア・オーディオ・クロックなどのサービスを含むことができる。アプリケーションレベルサービス２５００は、ハードウェア抽出層（ＨＡＬ）２５１０と通信する。ＨＡＬ２５１０の一例は、コア楽器デジタルインターフェース（ＭＩＤＩ）２５１１である。同様に、ＨＡＬ２５１０は入出力（Ｉ／Ｏ）キット２５２０、ドライバ２５３０、およびハードウェア２５４０と通信する。Ｉ／Ｏキット２５２０、ドライバ２５３０、およびハードウェア２５４０は、カーネル空間内に存在する。アプリケーションレベルサービスがハードウェア２５４０に送信しようとするオーディオデータを受信するために、オーディオドライバはＨＡＬ２５１０へのプラグインを必要とする可能性があり、ここでプラグインはオーディオデータを受信してハードウェア２５４０にアクセスできる。オーディオドライバのプラグインは、アプリケーションレベルサービス２５００からオーディオデータをリアルタイムで、またはほぼリアルタイムで受信でき、ハプティックデータ（例えば駆動値）にオーディオデータを変換してオーディオデータの５ミリ秒（ｍｓ）部分に対してデシメーションを実行できる。例示的なオーディオドライバはさらに、図２６と併せて以下により詳細に記載される。
【０１０６】
図２６は、本発明の実施形態に係る、オーディオ効果をハプティック効果に変換する例示的なオーディオドライバ２６００（図２６において「ハプティックトリガドライバ２６００」とされる）を示す。オーディオドライバ２６００は、１つ以上のアプリケーションからオーディオデータ２６０５を受信する。オーディオデータは、４チャネルオーディオストリームまたは６チャネルオーディオストリームなどのインターリーブ多チャネルオーディオストリームであってもよい。その後、スプリッタ２６１５は、様々なチャネルのオーディオデータをそれぞれのチャネルバッファに分離する。さらに、オーディオハプティックデータ変換器２６２５は、各チャネルバッファのオーディオデータをハプティックデータに変換する。より具体的には、一実施形態において、オーディオハプティックデータ変換器２６２５は、オーディオデータの一部（例えば、５ｍｓのオーディオデータ）上のチャネルバッファでピーク検出アルゴリズムを実行し、各チャネルの間引き値アレイ内に値を追加する。オーディオハプティックデータ変換器２６２５はその後、以下の式に基づいて、個々のアクチュエータの駆動値を計算する：
トリガの駆動値：（プッシュチャネル間引き値−プルチャネル間引き値）→これを［０，２５５］にスケーリングする
鳴動の駆動値：（間引き値）→これを［１２８，２５５］にスケーリングする
【０１０７】
続いて、トリガ・プロトコル・パケット・マネージャ２６３５は、全てのアクチュエータ（例えば４つ全てのアクチュエータ）の駆動値を取得し、トリガ通信プロトコルにしたがって、ＵＳＢ・ＨＩＤパケットなどのデータパケットとして駆動値をパッケージする。さらに、ＸＰＣハンドラ２６４５は、トリガ・プロトコル・パケット・マネージャ２６３５からデータパケットを受信し、データパケットをＸＰＣサービス２６１０に送信するが、これはバックグラウンドサービスである。２６５５において、ＸＰＣサービス２６１０はデータパケットを受信し、２６６５においてＵＳＢインターフェースを通じてデータパケットを２６６５にコントローラ２６２０（図２６において「ハプティックトリガゲームパッド２６２０」とされる）に送信する。
【０１０８】
図２７は、本発明の実施形態に係る、ＡＰＩまたはライブラリ中に存在する例示的な空間化エンジンを示す。空間化エンジンは、図１のシステム１０などのシステム上に実装される。図示される実施形態において、システムは以下のコンポーネントを含む：装置２７００（図２７において「ゲームコンソール、スマートフォン、タブレット、またはコンピュータ（例えば）２７００」とされる）、およびコントローラ２７１０（図２７において「ゲームパッド２７１０」とされる）。装置２７００は、パーソナルコンピュータ、タブレット、スマートフォン、またはコンソール（例えば、ビデオ・ゲーム・コンソール）など、いずれのタイプのコンピュータ装置であってもよい。コントローラ２７１０は、装置２７００に動作可能に接続された周辺機器の一例である。コントローラ２７１０はビデオ・ゲーム・コントローラであってもよい。一実施形態において、コントローラ２７１０は図１のコントローラ３０、図２、図３、および図４のコントローラ１００、ならびに図５のコントローラ５２０と同一であってもよい。
【０１０９】
装置２７００は効果ライブラリ２７０１を含み、効果ライブラリ２７０１は１つ以上のハプティック効果定義を含むことができる。実施形態において、これらのハプティック効果定義は、空間化エンジンによって変更されていないハプティック効果定義なので、非空間化ハプティック効果定義として認識されることができる。装置２７００はさらにゲーム２７０２を含み、ゲーム２７０２はシステム上で実行されることができる、ゲームアプリケーションなどのソフトウェアアプリケーションである。実施形態によれば、ゲーム２７０２は１つ以上の空間化パラメータを生成でき、１つ以上の空間化パラメータは、効果ライブラリ２７０１内に記憶されたハプティック効果定義によって定義されたハプティック効果の位置、速度、方向および／または流れを定義できる。
【０１１０】
装置２７００はさらに空間化エンジン２７０３（図２７において「ハプティック空間化エンジン２７０３」とされる）を含み、ここで効果ライブラリ２７０１は１つ以上の非空間化ハプティック効果定義を空間化エンジン２７０３に送信でき、ゲーム２７０２は１つ以上の空間化パラメータを空間化エンジン２７０３に送信できる。空間化エンジン２７０３は、１つ以上の非空間化ハプティック効果定義を受信でき、１つ以上の空間化パラメータに基づいて１つ以上の非空間化ハプティック効果定義を変更できる。実施形態によれば、空間化エンジン２７０３は、１つ以上のハプティック効果がコントローラ２７１０の１つ以上のアクチュエータ２７１１のためにスケーリングまたは減衰されるように、１つ以上の非空間化ハプティック効果定義を変更でき、１つ以上の変更されたハプティック効果定義は、空間化ハプティック効果定義として認識されることができる。言い換えると、空間化エンジン２７０３は、アクチュエータ２７１１の各アクチュエータに送信されるハプティック効果定義を変更でき、このためハプティック効果の位置、速度、方向および／または流れの感覚を伝達するために、アクチュエータ２７１１の各アクチュエータにおいて経験されるハプティック効果を変更できる。空間化エンジン２７０３は引き続き１つ以上の空間化ハプティック効果定義をコントローラ２７１０に送信できる。コントローラ２７１０はその後、各空間化ハプティック効果定義をアクチュエータ２７１１の各アクチュエータに送信でき、ここで各アクチュエータは空間化ハプティック効果を生成できる。
【０１１１】
図２８は、本発明の実施形態に係る、コントローラ中に存在する例示的な空間化エンジンを示す。空間化エンジンは、図１のシステム１０などのシステム上に実装される。図示される実施形態において、システムは以下のコンポーネントを含む：装置２８００（図２８において「ゲームコンソール、スマートフォン、タブレット、またはコンピュータ（例えば）２８００」とされる）、およびコントローラ２８１０（図２８において「ゲームパッド２８１０」とされる）。装置２８００は、パーソナルコンピュータ、タブレット、スマートフォン、またはコンソール（例えば、ビデオ・ゲーム・コンソール）など、いずれのタイプのコンピュータ装置であってもよい。コントローラ２８１０は、装置２８００に動作可能に接続された周辺機器の一例である。コントローラ２８１０はビデオ・ゲーム・コントローラであってもよい。一実施形態において、コントローラ２８１０は図１のコントローラ３０、図２、図３、および図４のコントローラ１００、ならびに図５のコントローラ５２０と同一であってもよい。
【０１１２】
装置２８００は、効果ライブラリ２８０１を含み、効果ライブラリ２８０１は、非空間化ハプティック効果定義として認識される１つ以上のハプティック効果定義を含むことができる。装置２８００は、ゲーム２８０２をさらに含み、ゲーム２８０２は、システム上で実行されることができる、ゲームアプリケーションなどのソフトウェアアプリケーションである。実施形態によれば、ゲーム２８０２は１つ以上の空間化パラメータを生成でき、１つ以上の空間化パラメータは、効果ライブラリ２８０１内に記憶されたハプティック効果定義によって定義されたハプティック効果の位置、速度、方向および／または流れを定義できる。
【０１１３】
コントローラ２８１０は空間化エンジン２８１１（図２８において「ハプティック空間化エンジン２８１１」とされる）を含み、ここで効果ライブラリ２８０１は１つ以上の非空間化ハプティック効果定義を空間化エンジン２８１１に送信でき、ゲーム２８０２は１つ以上の空間化パラメータを空間化エンジン２８１１に送信できる。空間化エンジン２８１１は、１つ以上の非空間化ハプティック効果定義を受信でき、１つ以上の空間化パラメータに基づいて１つ以上の非空間化ハプティック効果定義を変更することができ、１つ以上の変更されたハプティック効果定義は、空間化ハプティック効果定義として認識される。空間化エンジン２８１１は引き続き各空間化ハプティック効果定義をアクチュエータ２８１２の各アクチュエータに送信でき、ここで各アクチュエータは空間化ハプティック効果を生成できる。
【０１１４】
図２９は、本発明の実施形態に係る、例示的な空間化ハプティック効果２９００を示す。空間化ハプティック効果２９００は、空間化ハプティック効果定義に基づいて、異なるが一定の複数の減衰において周辺機器の複数の鳴動アクチュエータにおけるハプティック効果を出力することを伴う。空間化ハプティック効果２９００はハプティック効果の場所を周辺機器のユーザに伝達するのに必ずしも有効とは限らないものの、空間化ハプティック効果２９００はハプティック効果の周波数を効果的に伝達できる。先に記載されたように、鳴動アクチュエータは、周辺機器の筐体または別の部分に動作可能に結合されたアクチュエータである。
【０１１５】
図３０は、本発明の別の実施形態に係る、例示的な空間化ハプティック効果３０００を示す。空間化ハプティック効果３０００は、空間化ハプティック効果定義に基づいて、異なるが一定の複数の減衰において周辺機器の複数の鳴動アクチュエータにおけるハプティック効果を出力することを伴う。空間化ハプティック効果３０００は、ハプティック効果の場所を効果的に伝達できるが、しかし左のみのトリガの場合、または右のみのトリガの場合など、単一トリガの場合にのみ、ハプティック効果の場所を効果的に伝達するだろう。先に記載されたように、トリガアクチュエータは、周辺機器のトリガに動作可能に結合されたアクチュエータである。特定の実施形態において、トリガアクチュエータは、ユーザ入力エレメントに動作可能に結合されたターゲットアクチュエータに置き換えられることができる。
【０１１６】
図３１は、本発明の実施形態に係る、例示的な空間化ハプティック効果３１００を示す。空間化ハプティック効果３１００は、空間化ハプティック効果定義に基づいて、逆勾配減衰（ｉｎｖｅｒｓｅｌｙ  ｒａｍｐｉｎｇ  ａｔｔｅｎｕａｔｉｏｎ）によって周辺機器の複数の鳴動アクチュエータにおけるハプティック効果を出力することを伴う。空間化ハプティック効果３１００は、左−右動作（ｌｅｆｔ−ｔｏ−ｒｉｇｈｔ  ｍｏｖｅｍｅｎｔ）または右−左動作（ｒｉｇｈｔ−ｔｏ−ｌｅｆｔ  ｍｏｖｅｍｅｎｔ）などの動作を、効果的に伝達できる。
【０１１７】
図３２は、本発明の別の実施形態に係る、例示的な空間化ハプティック効果３２００を示す。空間化ハプティック効果３２００は、空間化ハプティック効果定義に基づいて、逆勾配減衰によって周辺機器の複数のトリガアクチュエータにおけるハプティック効果を出力することを伴う。空間化ハプティック効果３２００は、左−右動作または右−左動作などの動作を効果的に伝達できる。特定の実施形態において、トリガアクチュエータは、ユーザ入力エレメントに動作可能に結合されたアクチュエータに置き換えられることができる。
【０１１８】
図３３は、本発明の別の実施形態に係る、例示的な空間化ハプティック効果３３００を示す。空間化ハプティック効果３３００は、空間化ハプティック効果定義に基づいて、鳴動アクチュエータからトリガアクチュエータへ、逆勾配減衰によって周辺機器の複数の鳴動およびトリガアクチュエータにおけるハプティック効果を出力することを伴う。空間化ハプティック効果３３００は、後−前動作（ｂａｃｋ−ｔｏ−ｆｒｏｎｔ  ｍｏｖｅｍｅｎｔ）などの動作を効果的に伝達できる。特定の実施形態において、トリガアクチュエータは、ユーザ入力エレメントに動作可能に結合されたターゲットアクチュエータに置き換えられることができる。
【０１１９】
図３４は、本発明の別の実施形態に係る、例示的な空間化ハプティック効果３４００を示す。空間化ハプティック効果３４００は、空間化ハプティック効果定義に基づいてトリガアクチュエータから鳴動アクチュエータへ、逆勾配減衰によって周辺機器の複数のトリガおよび鳴動アクチュエータにおけるハプティック効果を出力することを伴う。空間化ハプティック効果３４００は、前−後動作（ｆｒｏｎｔ−ｔｏ−ｂａｃｋ  ｍｏｖｅｍｅｎｔ）などの動作を効果的に伝達できる。特定の実施形態において、トリガアクチュエータは、ユーザ入力エレメントに動作可能に結合されたターゲットアクチュエータに置き換えられることができる。
【０１２０】
図３５は、本発明の別の実施形態に係る、例示的な空間化ハプティック効果３５００を示す。空間化ハプティック効果３５００は、空間化ハプティック効果定義に基づいて、時計回りまたは反時計回りに、逆勾配減衰によって周辺機器の複数の鳴動および／またはトリガアクチュエータにおけるハプティック効果を出力することを伴う。空間化ハプティック効果３５００は、回転動作などの動作を効果的に伝達できる。特定の実施形態において、トリガアクチュエータは、ユーザ入力エレメントに動作可能に結合されたターゲットアクチュエータに置き換えられることができる。
【０１２１】
図３６は、本発明の別の実施形態に係る、例示的な空間化ハプティック効果３６００を示す。空間化ハプティック効果３６００は、空間化ハプティック効果定義に基づいて、わずかな遅延（例えば、およそ５０〜１００ｍｓ）を伴って周辺機器の複数の鳴動アクチュエータにおけるハプティック効果を出力することを伴う。空間化ハプティック効果３６００は、左−右動作または右−左動作などの短期効果動作を効果的に伝達できる。
【０１２２】
図３７は、本発明の別の実施形態に係る、例示的な空間化ハプティック効果３７００を示す。空間化ハプティック効果３７００は、空間化ハプティック効果定義に基づいて、わずかな遅延（例えば、およそ５０〜１００ｍｓ）を伴って周辺機器の複数のトリガアクチュエータにおけるハプティック効果を出力することを伴う。空間化ハプティック効果３７００は、左−右動作または右−左動作などの短期効果動作を効果的に伝達できる。特定の実施形態において、トリガアクチュエータは、ユーザ入力エレメントに動作可能に結合されたターゲットアクチュエータに置き換えられることができる。
【０１２３】
図３８は、本発明の別の実施形態に係る、例示的な空間化ハプティック効果３８００を示す。空間化ハプティック効果３８００は、空間化ハプティック効果定義に基づいて、鳴動アクチュエータからトリガアクチュエータへ、わずかな遅延（例えば、およそ５０〜１００ｍｓ）を伴って周辺機器の複数の鳴動およびトリガアクチュエータにおけるハプティック効果を出力することを伴う。空間化ハプティック効果３８００は、後−前動作などの短期効果動作を効果的に伝達できる。特定の実施形態において、トリガアクチュエータは、ユーザ入力エレメントに動作可能に結合されたターゲットアクチュエータに置き換えられることができる。
【０１２４】
図３９は、本発明の別の実施形態に係る、例示的な空間化ハプティック効果３９００を示す。空間化ハプティック効果３９００は、空間化ハプティック効果定義に基づいて、トリガアクチュエータから鳴動アクチュエータへ、わずかな遅延（例えば、およそ５０〜１００ｍｓ）を伴って周辺機器の複数のトリガおよび鳴動アクチュエータにおけるハプティック効果を出力することを伴う。空間化ハプティック効果３８００は、前−後動作などの短期効果動作を効果的に伝達できる。特定の実施形態において、トリガアクチュエータは、ユーザ入力エレメントに動作可能に結合されたターゲットアクチュエータに置き換えられることができる。
【０１２５】
図４０は、本発明の別の実施形態に係る、例示的な空間化ハプティック効果４０００を示す。空間化ハプティック効果４０００は、空間化ハプティック効果定義に基づいて、時計回りまたは反時計回りに、わずかな遅延（例えば、およそ５０〜１００ｍｓ）を伴って周辺機器の複数の鳴動およびトリガアクチュエータにおけるハプティック効果を出力することを伴う。空間化ハプティック効果４００は、回転動作などの動作を効果的に伝達できる。特定の実施形態において、トリガアクチュエータは、ユーザ入力エレメントに動作可能に結合されたターゲットアクチュエータに置き換えられることができる。
【０１２６】
このため、一実施形態において、ハプティック効果の場所は、空間化ハプティック効果定義に基づいて、左トリガのみ、または右トリガのみのハプティック効果を再生することによって、伝達されることができる。さらに、別の実施形態において、短期効果（例えばおよそ５０〜２００ｍｓ）動作は、空間化ハプティック効果定義に基づいて、わずかな遅延（例えば、およそ５０〜１００ｍｓ）を伴って異なるアクチュエータ上のハプティック効果を再生することによって、伝達されることができる。さらにまた、別の実施形態において、長期効果（例えば、およそ２００ｍｓ超）動作は、空間化ハプティック効果定義に基づいて、異なるアクチュエータ上でのハプティック効果を逆に傾斜させることによって、伝達されることができる。さらに、上記実施形態において、同一のハプティック効果が、空間化ハプティック効果定義に基づいて異なるアクチュエータにおいて再生される。しかしながら、代替実施形態において、異なるハプティック効果が、空間化ハプティック効果定義に基づいて異なるアクチュエータにおいて実現されることもできる。
【０１２７】
一実施形態において、空間化ハプティック効果の距離は：（１）減衰；（２）「拡散」または「散乱」；および／または（３）タイミングを用いて、空間化エンジンによって伝達されることができる。減衰に関して、空間化ハプティック効果定義は、ハプティック効果が伝わる次元数（例えば一次元、二次元、または三次元）に応じて、異なるハプティック減衰特性を定義できる。例えば、レールまたはロッド内を伝わるハプティック効果は、一次元を伝わることができる。別の例としては、床またはテーブルを伝わるハプティック効果は、二次元を伝わることができる。別の例として、地中を伝わるハプティック効果は、三次元を伝わることができる。さらに、異なる周波数のハプティック効果は異なる減衰の仕方ができる。例えば、高い周波数の方がより迅速に減衰できる。「拡散」または「散乱」については、ハプティック効果は、複数の次元にわたって消散するハプティック効果のマグニチュード、または強度のため、距離とともに低下する可能性があり、マグニチュードの減少は周波数依存性であってもよい。空間化エンジンは、ハプティック効果を低下させるために、先の力価のウィンドウを混ぜることができる。ウィンドウサイズは、ハプティック効果の距離に依存してもよい。タイミングについては、固形媒体（例えば地面）の中を伝わる振動触知ハプティック効果であるハプティック効果は、空気中の音よりも速く伝わることができる。例えば、ゲーム内の遠くの爆発は、爆発音が聞かれる前に、周辺機器内の振動として感じられてもよい。
【０１２８】
空間化ハプティック効果の減衰は、ここでより詳細に記載される。実施形態によればハプティック効果は、ゲームアプリケーションまたは別のタイプのソフトウェアアプリケーションの中の位置を有することができる。ハプティック効果の位置は絶対位置であってもよく、周辺機器のユーザもまた、ゲームアプリケーションまたは別のタイプのソフトウェアアプリケーションの中の位置を有することができる。あるいは、ハプティック効果の位置は相対位置であってもよく、ハプティック効果の位置はゲームアプリケーションまたは別のタイプのソフトウェアアプリケーションの中の周辺機器のユーザの位置に対するものである。さらに、ハプティック効果はゲームアプリケーションまたは別のタイプのソフトウェアアプリケーションの中の別の物体または表面によって「吸収」されることができるので、ハプティック効果はある距離にわたってマグニチュードまたは強度を失う可能性がある。さらに、ハプティック効果もまた、「拡散」または「散乱」のため減衰できる。このようなハプティック効果の例は：爆発；足音；群衆の殺到；遠くを走る重量車両（例えば列車、バス、トラック、戦車）；遠くの交通；間接的衝突；または一般的な間接的影響を含むことができる。
【０１２９】
一実施形態において、ハプティック効果の減衰は一次元であってもよい。ハプティック効果の一次元減衰には、「拡散」または「散乱」はない。ハプティック効果は、以下の式に基づいて、吸収のため単位距離ごとに特定量のマグニチュード、または強度を失う可能性がある。
【数１】
0005986171.tif 000003
ここで「ｙ」はハプティック効果の減衰したマグニチュード、または強度であり；「ｘ」はハプティック効果の元々の（すなわち減衰していない）マグニチュード、または強度であり；「Ｆ」は基準吸収距離にわたる吸収係数であり（すなわち、ハプティック効果は基準吸収距離にわたって１／Ｆだけ減衰する）；「ｒ」はハプティック効果が伝わる距離であり；「Ｄ」は基準吸収距離である。
【０１３０】
ハプティック効果の一次元減衰の例は：大きく広い地下源からの振動触知ハプティック効果；あるいはレールまたはロッドを通じて伝わるハプティック効果を含むことができる。
【０１３１】
別の実施形態において、ハプティック効果の減衰は二次元であってもよい。ハプティック効果の二次元減衰には、二次元内のハプティック効果「拡散」または「散乱」のマグニチュード、または強度のため、一次元減衰と比較して、付加的な減衰がある。ハプティック効果は、以下の式に基づいて、吸収および拡散のため単位距離ごとに特定量のマグニチュード、または強度を失う可能性がある。
【数２】
0005986171.tif 000004
ここで「ｙ」はハプティック効果の減衰したマグニチュード、または強度であり；「ｘ」はハプティック効果の元々の（すなわち減衰していない）マグニチュード、または強度であり；「Ｆ」は基準吸収距離にわたる吸収係数であり（すなわち、ハプティック効果は基準吸収距離にわたって１／Ｆだけ減衰する）；「ｒ」はハプティック効果が伝わる距離であり；「Ｄ」は基準吸収距離である。
【０１３２】
ハプティック効果の二次元減衰の例は：床またはテーブルを伝わるハプティック効果；ハイウェイ交通、通過列車、運搬、群衆の殺到、またはその他何らかの長い地表源に起因する、振動触知ハプティック効果；または長く狭い地下源からの振動触知ハプティック効果を含むことができる。
【０１３３】
別の実施形態において、ハプティック効果の減衰は三次元であってもよい。ハプティック効果の三次元減衰には、三次元内のハプティック効果「拡散」または「散乱」のマグニチュード、または強度のため、二次元減衰と比較して、付加的な減衰がある。ハプティック効果は、以下の式に基づいて、吸収および拡散のため単位距離ごとに特定量のマグニチュード、または強度を失う可能性がある。
【数３】
0005986171.tif 000005
ここで「ｙ」はハプティック効果の減衰したマグニチュード、または強度であり；「ｘ」はハプティック効果の元々の（すなわち減衰していない）マグニチュード、または強度であり；「Ｆ」は基準吸収距離にわたる吸収係数であり（すなわち、ハプティック効果は基準吸収距離にわたって１／Ｆだけ減衰する）；「ｒ」はハプティック効果が伝わる距離であり；「Ｄ」は基準吸収距離であり；「Ｒ」はハプティック効果の半径である。
【０１３４】
ハプティック効果の三次元減衰の一例は、小さいソース（例えば、点）から地面を伝わるハプティック効果を含む。
【０１３５】
実施形態によれば、全体的な減衰は、以下の式を用いて表されることができる。
【数４】
0005986171.tif 000006
ここで「ｙ」はハプティック効果の減衰したマグニチュード、または強度であり；「ｘ」はハプティック効果の元々の（すなわち減衰していない）マグニチュード、または強度であり；「Ｆ」は基準吸収距離にわたる吸収係数であり（すなわち、ハプティック効果は基準吸収距離にわたって１／Ｆだけ減衰する）；「ｒ」はハプティック効果が伝わる距離であり；「Ｄ」は基準吸収距離であり；「Ｒ」はハプティック効果の半径であり；「Ｐ」は拡散指数である（例えば、一次元拡散では０、二次元拡散では１、三次元拡散では２など）。
【０１３６】
ここで空間化ハプティック効果の流れがより詳細に記載される。実施形態によれば、空間化ハプティック効果は速度（すなわち、速さおよび方向）を有することができる。空間化ハプティック効果の速度は、「流れ」として認識されることができる。一実施形態において、全体的なハプティック効果が生成されることができ、ハプティック効果は複数のハプティック効果コンポーネントを含み、各ハプティック効果コンポーネントは、周辺機器のための複数のアクチュエータのうちの１つのアクチュエータに対応する。各ハプティック効果コンポーネントは、全体的なハプティック効果を生成するために各アクチュエータによって再生されることができ、全体的なハプティック効果は「流れ」を伝達する。空間化ハプティック効果の一例は「風を切って飛ぶ」ハプティック効果であり、これは１セットのアクチュエータから別のセットへと移動するハプティック効果である。風を切って飛ぶハプティック効果の例は、近くを通過する車両、風を切って近くを飛ぶ弾丸、近くを通過する一般的な物体を含むことができる。空間化ハプティック効果のもう１つの例は、「跳ね返る」ハプティック効果であり、これは２セットのアクチュエータの間を繰り返し跳ね返るハプティック効果である。跳ね返るハプティック効果の例は、呪文の蓄積、またはエネルギーの蓄積を含むことができる。空間化ハプティック効果のさらに別の例は、「回転」ハプティック効果であり、これはコントローラ、ゲームパッド、またはその他の周辺機器の中で、またはゲーム内でユーザの周りを、時計回りまたは反時計回りに回転するハプティック効果である。回転ハプティック効果の例は、呪文の蓄積、エネルギーの蓄積、「ｓｐｉｎ−ｏ−ｒａｍａ」、または渦を含むことができる。
【０１３７】
図４１は、本発明の別の実施形態に係る、例示的な空間化ハプティック効果４１００を示す。空間化ハプティック効果４１００は、空間化ハプティック効果定義に基づいて、周辺機器の複数のアクチュエータにおける異なるハプティック効果コンポーネントに対応する異なるハプティック効果を出力することを伴い、ここであるアクチュエータにおけるハプティック効果コンポーネントに対応するハプティック効果の再生は遅延されることができる。さらに、重複するハプティック効果コンポーネントに対応するハプティック効果の部分は、それぞれのアクチュエータにおいて傾斜していてもよい。速度は、以下の式に基づいて遅延を決定できる。
【数５】
0005986171.tif 000007
【０１３８】
実施形態によれば、空間化ハプティック効果は方向であってもよい。方向は、空間化ハプティック効果を生成するためにどのアクチュエータを使用するかを決定できる。
【０１３９】
図４２は、本発明の実施形態に係る、ハプティック効果４２００の方向に基づくアクチュエータ間のハプティック効果４２００の分配の一例を示す。実施形態によれば、ハプティック効果４２００は、空間化ハプティック効果定義に基づいて複数のアクチュエータ（例えば、左トリガアクチュエータ；右トリガアクチュエータ；左（大）鳴動アクチュエータ；および右（小）アクチュエータ）にわたって分配されることができ、ここで空間化ハプティック効果定義は、ハプティック効果４２００の方向を定義できる。例えば、空間化ハプティック効果定義が右方向、つまり「東」方向を定義する場合、ハプティック効果４２００は右（小）鳴動アクチュエータおよび右トリガアクチュエータにおいて再生されることができる。空間化ハプティック効果定義が右上方向、つまり「北東」方向を定義する場合、ハプティック効果４２００は右トリガアクチュエータのみにおいて再生されることができる。空間化ハプティック効果定義が上方向、つまり「北」方向を定義する場合、ハプティック効果４２００は左トリガアクチュエータおよび右トリガアクチュエータにおいて再生されることができる。空間化ハプティック効果定義が左上方向、つまり「北西」方向を定義する場合、ハプティック効果４２００は左トリガアクチュエータのみにおいて再生されることができる。空間化ハプティック効果定義が左方向、つまり「西」方向を定義する場合、ハプティック効果４２００は左（大）鳴動アクチュエータおよび左トリガアクチュエータにおいて再生されることができる。空間化ハプティック効果定義が左下方向、つまり「南西」方向を定義する場合、ハプティック効果４２００は左（大）鳴動アクチュエータのみにおいて再生されることができる。空間化ハプティック効果定義が下方向、つまり「南」方向を定義する場合、ハプティック効果４２００は左（大）鳴動アクチュエータおよび右（小）鳴動アクチュエータにおいて再生されることができる。空間化ハプティック効果定義が右下方向、つまり「南東」方向を定義する場合、ハプティック効果４２００は右（小）鳴動アクチュエータのみにおいて再生されることができる。さらに、空間化ハプティック効果定義が上記８つの方向のうちの１つの間の方向を定義する場合、ハプティック効果４２００は２つのアクチュエータにおいて再生されることができるが、しかしハプティック効果４２００のマグニチュードはアクチュエータのうちの１つにおいて低下する。たとえは、空間化ハプティック効果定義が上方向と左上方向との間の方向、すなわち「北北西方向」を定義する場合、ハプティック効果４２００は左トリガアクチュエータおよび右トリガアクチュエータにおいて再生されることができ、ハプティック効果４２００のマグニチュードは右トリガアクチュエータにおいて低下する。
【０１４０】
さらに、一実施形態において、空間化エンジンは、実行時間に左トリガアクチュエータまたは右トリガアクチュエータにおける空間化ハプティック効果をターゲットとできる。このような空間化ハプティック効果の例は、レースゲームにおいて左または右鳴動ストリップを経験すること；またはボクシングゲームにおいて左パンチまたは右パンチを経験することを含む。
【０１４１】
図４３は、本発明の実施形態に係る、ハプティック空間化モジュール（図１のハプティック空間化モジュール１６など）の機能性のフロー図を示す。一実施形態において、図４３の機能は、メモリまたはその他のコンピュータ可読または有形媒体に記憶されたソフトウェアによって実装され、プロセッサによって実行される。別の実施形態において、機能性は、ハードウェアによって（例えば、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル・ゲート・アレイ（ＰＧＡ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）などの使用を通じて）、またはハードウェアとソフトウェアとのいずれかの組み合わせによって、実行されてもよい。特定の実施形態において、機能性のうちのいくつかは省略されることができる。
【０１４２】
フローが開始して４３１０に進む。４３１０において、ハプティック効果定義が受信される。ハプティック効果定義はハプティックデータを含む。フローはその後４３２０に進む。
【０１４３】
４３２０において、空間化データが受信される。空間化データは、１つ以上の空間化パラメータを含むことができる。１つ以上の空間化パラメータは、ハプティック効果の位置、ハプティック効果の距離、ハプティック効果の速度、ハプティック効果の方向、またはハプティック効果の流れのうちの少なくとも１つを含むことができる。フローはその後４３３０に進む。
【０１４４】
４３３０において、ハプティック効果定義は、受信した空間化データに基づいて変更される。特定の実施形態において、ハプティック効果定義は、１つ以上のハプティック効果定義コンポーネントに分割されることができる。これらの実施形態のうちのいくつかにおいて、以下のうちの少なくとも１つが、空間化データに基づいてスケーリングまたは減衰されることができる：少なくとも１つのハプティック効果定義コンポーネントのハプティックデータのマグニチュード、少なくとも１つのハプティック効果定義コンポーネントのハプティックデータの周波数、または少なくとも１つのハプティック効果定義コンポーネントのハプティック効果データの持続時間。別の実施形態において、少なくとも１つのハプティック出力装置は、空間化データに基づいて少なくとも１つのハプティック効果の再生を遅延させられることができる。特定の実施形態において、１つ以上のハプティック効果定義コンポーネントは異なっていてもよい。別の実施形態において、１つ以上のハプティック効果定義コンポーネントは同一であってもよい。特定の実施形態において、周辺機器のモーション、位置の変化、または配向の変化が検出可能であり、空間化データは検出されたモーションに基づいて変更可能であり、変更されたハプティック効果定義は変更された空間化データに基づいて引き続き変更できる。フローはその後４３４０に進む。
【０１４５】
４３４０において、ハプティック命令および変更されたハプティック効果定義は周辺機器に送信される。特定の実施形態において、１つ以上のハプティック効果定義コンポーネントもまた周辺機器に送信されることができる。特定の実施形態において、周辺機器はコントローラまたはゲームパッドであってもよい。変更されたハプティック効果定義が引き続き変更される実施形態において、引き続き変更されたハプティック効果定義は、周辺機器に送信されることができる。フローはその後４３５０に進む。
【０１４６】
４３５０において、ハプティック命令は１つ以上のハプティック出力装置に、周辺機器において、変更されたハプティック効果定義に基づいて１つ以上のハプティック効果を生成させる。特定の実施形態において、ハプティック命令は１つ以上のハプティック出力装置に、１つ以上のハプティック効果定義コンポーネントに基づいて１つ以上のハプティック効果を生成させることができる。さらに、特定の実施形態において、ハプティック命令は１つ以上のハプティック出力装置に、周辺機器の１つ以上のユーザ入力エレメントにおける１つ以上のハプティック効果を生成させることができる。特定の実施形態において、少なくとも１つのユーザ入力エレメントは、デジタルボタン、アナログボタン、緩衝器、方向パッド、アナログまたはデジタルスティック、ハンドル、あるいはトリガのうちの１つであってもよい。さらに、特定の実施形態において、少なくとも１つのハプティック出力装置はアクチュエータであってもよい。変更されたハプティック効果定義が引き続き変更される実施形態において、ハプティック命令は１つ以上のハプティック出力装置に、周辺機器において引き続き変更されたハプティック効果定義に基づいて１つ以上の変更されたハプティック効果を生成させる。
【０１４７】
特定の実施形態において、ハプティック命令は複数のアクチュエータに、変更されたハプティック効果定義に基づいて、複数の異なる減衰における１つ以上のハプティック効果を出力させることができる。別の実施形態において、ハプティック命令は複数のアクチュエータに、変更されたハプティック効果定義に基づいて逆勾配減衰によって１つ以上のハプティック効果を出力させることができる。別の実施形態において、ハプティック命令は複数の鳴動アクチュエータおよびターゲットアクチュエータに、変更されたハプティック効果定義に基づいて、鳴動アクチュエータからターゲットアクチュエータへ、逆勾配減衰によって１つ以上のハプティック効果を出力させることができる。別の実施形態において、ハプティック命令は複数の鳴動アクチュエータおよびターゲットアクチュエータに、変更されたハプティック効果定義に基づいて、ターゲットアクチュエータから鳴動アクチュエータへ、逆勾配減衰によって１つ以上のハプティック効果を出力させることができる。別の実施形態において、ハプティック命令は複数のアクチュエータに、変更されたハプティック効果定義に基づいて、遅延を伴って１つ以上のハプティック効果を出力させることができる。別の実施形態において、ハプティック命令は、複数の鳴動アクチュエータおよびトリガアクチュエータに、変更されたハプティック効果定義に基づいて、鳴動アクチュエータからターゲットアクチュエータへ、遅延を伴って１つ以上のハプティック効果を出力させることができる。別の実施形態において、ハプティック命令は複数の鳴動アクチュエータおよびトリガアクチュエータに、変更されたハプティック効果定義に基づいて、ターゲットアクチュエータから鳴動アクチュエータへ、遅延を伴って１つ以上のハプティック効果を出力させることができる。別の実施形態において、ハプティック命令は複数のアクチュエータに、変更されたハプティック効果定義に基づいて、時計回りまたは反時計回りに、遅延を伴って１つ以上のハプティック効果を出力させることができる。フローはここで終了する。
【０１４８】
このように、一実施形態において、システムは、コントローラまたはゲームパッドなど、周辺機器において経験されるハプティック効果を生成することができる空間化ハプティック効果を提供できる。空間化ハプティック効果を生成することによって、システムは、空間化ハプティック効果が距離、指向性、および／または流れの感覚を含むように、周辺機器の各モータまたはアクチュエータにおいてスケーリングまたは遅延されることができるハプティック効果を生成できる。周辺機器において経験された空間化ハプティックフィードバック、特にトリガなどの周辺機器のユーザ入力エレメントにおいて経験された空間化ハプティックフィードバックを、システムによって実行されるゲームアプリケーションに組み込むことによって、より現実的で没入感のあるゲーム経験が提供され得る。
【０１４９】
本明細書全体に記載された本発明の特徴、構造、および特性は、いずれか適切な方法で１つ以上の実施形態に組み込まれてもよい。例えば、「一実施形態」、「いくつかの実施形態」、「特定の実施形態」、またはその他類似の語彙の使用は、本明細書全体にわたって、実施形態に関連して記載された特定の特徴、構造、または特性が、本発明の少なくとも１つの実施形態に含まれてもよいという事実を指す。このためフレーズ「一実施形態」、「いくつかの実施形態」、「特定の実施形態」、またはその他類似の語彙の出現は、本明細書全体にわたって全て同じ群の実施形態を指すとは限らず、記載された特徴、構造、または特性はいずれか適切な方法で１つ以上の実施形態に組み込まれてもよい。
【０１５０】
上記で論じられたような本発明は、異なる順序のステップで、および／または開示されたものとは異なる構成の要素を用いて実践されてもよいことを、当業者は容易に理解するだろう。したがって、本発明はこれらの好適な実施形態に基づいて記載されてきたものの、本発明の精神および範囲内にありながら、特定の変更、変形、および代替構造が明らかであることは、当業者にとって自明であろう。したがって、本発明の境界を決定するために、添付の請求項が参照されるべきである。
【図１】
0005986171.tif 000008
【図２】
0005986171.tif 000009
【図３】
0005986171.tif 000010
【図４】
0005986171.tif 000011
【図６】
0005986171.tif 000012
【図２２】
0005986171.tif 000013
【図２６】
0005986171.tif 000014
【図２９】
0005986171.tif 000015
【図３０】
0005986171.tif 000016
【図３１】
0005986171.tif 000017
【図３２】
0005986171.tif 000018
【図３３】
0005986171.tif 000019
【図３４】
0005986171.tif 000020
【図３５】
0005986171.tif 000021
【図３６】
0005986171.tif 000022
【図３７】
0005986171.tif 000023
【図３８】
0005986171.tif 000024
【図３９】
0005986171.tif 000025
【図４０】
0005986171.tif 000026
【図４１】
0005986171.tif 000027
【図４２】
0005986171.tif 000028
【図４３】
0005986171.tif 000029
【図５】
0005986171.tif 000030
【図７】
0005986171.tif 000031
【図８】
0005986171.tif 000032
【図９】
0005986171.tif 000033
【図１０】
0005986171.tif 000034
【図１１】
0005986171.tif 000035
【図１２】
0005986171.tif 000036
【図１３】
0005986171.tif 000037
【図１４】
0005986171.tif 000038
【図１５】
0005986171.tif 000039
【図１６】
0005986171.tif 000040
【図１７】
0005986171.tif 000041
【図１８】
0005986171.tif 000042
【図１９】
0005986171.tif 000043
【図２０】
0005986171.tif 000044
【図２１】
0005986171.tif 000045
【図２３】
0005986171.tif 000046
【図２４】
0005986171.tif 000047
【図２５】
0005986171.tif 000048
【図２７】
0005986171.tif 000049
【図２８】
0005986171.tif 000050