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