(57)【要約】【課題】ユーザ入力エレメントで経験されるハプティック効果を修正するシステムを提供する。【解決手段】システムは、周辺機器にハプティック命令およびハプティック効果定義を送信する。システムはさらに、ユーザ入力エレメントの位置またはユーザ入力エレメントに加えられた力を含むユーザ入力データを受信する。システムはさらに、受信したユーザ入力データに基づいてハプティック効果定義を修正する。システムはさらに、周辺機器に新たなハプティック命令および修正されたハプティック効果定義を送信する。システムはさらに、ハプティック出力デバイスに、新たなハプティック命令に応じて周辺機器のユーザ入力エレメントで、修正されたハプティック効果定義に基づいてハプティック効果を修正させる。【選択図】図１
2019053776.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサにより実行されると前記プロセッサにトリガで経験されるハプティック効果を修正させる命令が記憶された、非一時的コンピュータ可読媒体であって、修正するステップは、
周辺機器からトリガデータを受信するステップであって、前記トリガデータは、前記トリガの位置、前記トリガの閉じる割合、または前記トリガに加えられた力のうちの少なくとも一つを含む、ステップと、
受信された前記トリガデータに基づいてハプティック効果定義を修正するステップと、
前記周辺機器にトリガ命令および修正された前記ハプティック効果定義を送信するステップと、
ターゲットハプティック出力デバイスに、前記トリガ命令に応じて前記周辺機器の前記トリガで、修正された前記ハプティック効果定義に基づいてハプティック効果を修正させるステップと
を含む、非一時的コンピュータ可読媒体。
【請求項２】
前記ハプティック効果定義は、ハプティックデータを含み、
前記ハプティック効果定義を修正するステップは、前記ハプティック効果定義の前記ハプティックデータを修正するステップを含む、
請求項１記載の非一時的コンピュータ可読媒体。
【請求項３】
前記ハプティック効果定義の前記ハプティックデータを修正するステップは、マグニチュードパラメータ、周波数パラメータ、指向性パラメータ、アタックパラメータ、減衰パラメータ、または持続時間パラメータのうちの少なくとも一つを修正するステップを含む、
請求項２記載の非一時的コンピュータ可読媒体。
【請求項４】
前記修正するステップは、
モーションデータを受信するステップと、
受信された前記モーションデータに基づいて前記ハプティック効果定義を修正するステップと
をさらに含む、
請求項１記載の非一時的コンピュータ可読媒体。
【請求項５】
モーションデータは、第一軸から第二軸への前記周辺機器のユーザ入力エレメントのモーション、または第一方向から第二方向への前記ユーザ入力エレメントのモーションのうちの少なくとも一つを含む、請求項１記載の非一時的コンピュータ可読媒体。
【請求項６】
前記周辺機器は、コントローラまたはゲームパッドを含む、請求項１記載の非一時的コンピュータ可読媒体。
【請求項７】
前記ハプティック効果定義は、トリガハプティック効果定義を含む、請求項１記載の非一時的コンピュータ可読媒体。
【請求項８】
前記ハプティック効果定義を修正するステップは、
新たなハプティック効果定義を作成するステップと、
前記周辺機器にハプティック命令および前記新たなハプティック効果定義を送信するステップと、
一般的ハプティック出力デバイスに、前記ハプティック命令に応じて前記周辺機器で、前記新たなハプティック効果定義に基づくハプティック効果を生成させるステップと
を含む、請求項１記載の非一時的コンピュータ可読媒体。
【請求項９】
前記ターゲットハプティック出力デバイスは、ターゲットアクチュエータを含む、請求項１記載の非一時的コンピュータ可読媒体。
【請求項１０】
前記ターゲットアクチュエータは、ターゲットモータを含む、請求項９記載の非一時的コンピュータ可読媒体。
【請求項１１】
前記トリガで経験される前記ハプティック効果を修正するステップは、前記トリガデータが受信される前および前記ハプティック効果定義が修正される前に、前記周辺機器に元のトリガ命令および前記ハプティック効果定義を送信するステップをさらに含む、請求項１記載の非一時的コンピュータ可読媒体。
【請求項１２】
トリガで経験されるハプティック効果を修正するためのコンピュータ実施方法であって、
周辺機器からトリガデータを受信するステップであって、前記トリガデータは、前記トリガの位置、前記トリガの閉じる割合、または前記トリガに加えられた力のうちの少なくとも一つを含む、ステップと、
受信された前記トリガデータに基づいてハプティック効果定義を修正するステップと、
前記周辺機器にトリガ命令および修正された前記ハプティック効果定義を送信するステップと、
ターゲットハプティック出力デバイスに、前記トリガ命令に応じて前記周辺機器の前記トリガで、修正された前記ハプティック効果定義に基づいてハプティック効果を修正させるステップと
を含む、コンピュータ実施方法。
【請求項１３】
前記ハプティック効果定義は、ハプティックデータを含み、
前記ハプティック効果定義を修正するステップは、前記ハプティック効果定義の前記ハプティックデータを修正するステップを含む、
請求項１２記載のコンピュータ実施方法。
【請求項１４】
前記ハプティック効果定義の前記ハプティックデータを修正するステップは、マグニチュードパラメータ、周波数パラメータ、指向性パラメータ、アタックパラメータ、減衰パラメータ、または持続時間パラメータのうちの少なくとも一つを修正するステップを含む、
請求項１３記載のコンピュータ実施方法。
【請求項１５】
モーションデータを受信するステップと、
受信された前記モーションデータに基づいて前記ハプティック効果定義を修正するステップと
をさらに含む、
請求項１２記載のコンピュータ実施方法。
【請求項１６】
前記モーションデータは、第一軸から第二軸への前記周辺機器のユーザ入力エレメントのモーション、または第一方向から第二方向への前記ユーザ入力エレメントのモーションのうちの少なくとも一つを含む、請求項１５記載のコンピュータ実施方法。
【請求項１７】
トリガで経験されるハプティック効果を修正するためのシステムであって、
ハプティックトリガ修正モジュールを記憶するように構成されたメモリと、
前記メモリに記憶された前記ハプティックトリガ修正モジュールを実行するように構成されたプロセッサと、
を含み、
前記プロセッサは、前記ハプティックトリガ修正モジュールを実行したときに、周辺機器からトリガデータを受信するようにさらに構成され、前記周辺機器は、前記トリガの位置、前記トリガの閉じる割合、または前記トリガに加えられた力のうちの少なくとも一つを含み、
前記プロセッサは、前記ハプティックトリガ修正モジュールを実行したときに、受信された前記トリガデータに基づいてハプティック効果定義を修正するようにさらに構成され、
前記プロセッサは、前記ハプティックトリガ修正モジュールを実行したときに、前記周辺機器にトリガ命令および修正された前記ハプティック効果定義を送信するようにさらに構成され、
前記プロセッサは、前記ハプティックトリガ修正モジュールを実行したときに、ターゲットハプティック出力デバイスに、前記トリガ命令に応じて前記周辺機器の前記トリガで、修正された前記ハプティック効果定義に基づいてハプティック効果を修正させるようにさらに構成される、
システム。
【請求項１８】
前記ハプティック効果定義は、ハプティックデータを含み、
前記ハプティック効果定義を修正するステップは、前記ハプティック効果定義の前記ハプティックデータを修正するステップを含む、
請求項１７記載のシステム。
【請求項１９】
前記プロセッサは、前記ハプティックトリガ修正モジュールを実行する際に、マグニチュードパラメータ、周波数パラメータ、指向性パラメータ、アタックパラメータ、減衰パラメータ、または持続時間パラメータのうちの少なくとも一つを修正するようにさらに構成される、
請求項１８記載のシステム。
【請求項２０】
前記プロセッサは、前記ハプティックトリガ修正モジュールを実行したときに、モーションデータを受信するようにさらに構成され、
前記プロセッサは、前記ハプティックトリガ修正モジュールを実行したときに、受信された前記モーションデータに基づいて前記ハプティック効果定義を修正するようにさらに構成される、
請求項１７記載のシステム。
【請求項２１】
前記モーションデータは、第一軸から第二軸への前記周辺機器のユーザ入力エレメントのモーション、または第一方向から第二方向への前記ユーザ入力エレメントのモーションのうちの少なくとも一つを含む、請求項２０記載のシステム。
【請求項２２】
プロセッサにより実行されると前記プロセッサにユーザ入力エレメントで経験されるハプティック効果を修正させる命令が記憶された、非一時的コンピュータ可読媒体であって、修正するステップは、
周辺機器からユーザ入力データを受信するステップであって、前記ユーザ入力データは、前記ユーザ入力エレメントの位置、または前記ユーザ入力エレメントに加えられた力のうちの少なくとも一つを含む、ステップと、
受信された前記ユーザ入力データに基づいてハプティック効果定義を修正するステップと、
前記周辺機器にハプティック命令および修正された前記ハプティック効果定義を送信するステップと、
ハプティック出力デバイスに、前記ハプティック命令に応じて前記周辺機器の前記ユーザ入力エレメントで、修正された前記ハプティック効果定義に基づいてハプティック効果を修正させるステップと
を含む、非一時的コンピュータ可読媒体。
【請求項２３】
前記ハプティック効果定義は、ハプティックデータを含み、
前記ハプティック効果定義を修正するステップは、前記ハプティック効果定義の前記ハプティックデータを修正するステップを含む、
請求項２２記載の非一時的コンピュータ可読媒体。
【請求項２４】
前記ハプティック効果定義の前記ハプティックデータを修正するステップは、マグニチュードパラメータ、周波数パラメータ、指向性パラメータ、アタックパラメータ、減衰パラメータ、または持続時間パラメータのうちの少なくとも一つを修正するステップを含む、
請求項２３記載の非一時的コンピュータ可読媒体。
【請求項２５】
前記修正するステップは、
モーションデータを受信するステップと、
受信された前記モーションデータに基づいて前記ハプティック効果定義を修正するステップと
をさらに含む、
請求項２２記載の非一時的コンピュータ可読媒体。
【請求項２６】
前記モーションデータは、第一軸から第二軸への前記ユーザ入力エレメントのモーション、または第一方向から第二方向への前記ユーザ入力エレメントのモーションのうちの少なくとも一つを含む、請求項２５記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
一実施形態は、一般にデバイスを目的とし、特にハプティック効果を生み出すデバイスを目的とする。
【背景技術】
【０００２】
ビデオゲームおよびビデオゲームシステムが非常に人気となっている。ビデオゲームデバイスまたはコントローラは通常、ユーザにフィードバックを提供するために、視覚および聴覚キューを用いる。いくつかのインタフェースデバイスでは、運動感覚フィードバック（能動および抵抗力フィードバック等）、および／または触知フィードバック（振動、触感および熱等）もユーザに提供され、より一般的に「ハプティックフィードバック」または「ハプティック効果」の総称で知られている。ハプティックフィードバックは、ユーザのビデオゲームコントローラまたは他の電子デバイスとの相互作用を強化および簡素化するキューを提供することができる。具体的には、ユーザに特定のイベントを警告するため、または、模擬環境もしくは仮想環境内でのより高い没入感を生むリアルなフィードバックを提供するために、ビデオゲームコントローラまたは他の電子デバイスのユーザにキューを提供する際に、振動効果または振動触知ハプティック効果が有用となりうる。
【０００３】
医療デバイス、自動車制御、遠隔制御やその他、ユーザがユーザ入力エレメントと相互作用して動作を引き起こす類似のデバイス等の他のデバイスも、ハプティックフィードバックまたはハプティック効果の利益を受ける。限定としてではなく例として、ユーザが、医療デバイスのユーザ入力エレメントを患者の体外の医療デバイスの近位部分で操作して、患者の体内の医療デバイスの遠位端で動作を引き起こすことができる。ユーザに特定のイベントを警告するため、または、医療デバイスの遠位端での医療デバイスと患者の相互作用に関してユーザにリアルなフィードバックを提供するために、ハプティックフィードバックまたはハプティック効果を採用することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、ハプティック効果を修正するためのシステム、方法、および命令が記憶された非一時的コンピュータ可読媒体を提供することを目的とする。
【課題を解決するための手段】
【０００５】
一実施形態は、ユーザ入力エレメントで経験されるハプティック効果を修正するシステムである。システムは、周辺機器にハプティック命令およびハプティック効果定義を送信する。システムはさらに、ユーザ入力エレメントの位置またはユーザ入力エレメントに加えられた力を含むユーザ入力データを受信する。システムはさらに、受信したユーザ入力データに基づいてハプティック効果定義を修正する。システムはさらに、周辺機器に新たなハプティック命令および修正されたハプティック効果定義を送信する。システムはさらに、ハプティック出力デバイスに、新たなハプティック命令に応じて周辺機器のユーザ入力エレメントで、修正されたハプティック効果定義に基づいてハプティック効果を修正させる。
【図面の簡単な説明】
【０００６】
添付の図面とあわせて理解されるべき以下の好ましい実施形態の詳細な説明から、さらなる実施形態、詳細、利点、および修正が明らかとなる。
【図１】本発明の一実施形態に係るシステムのブロック図である。
【図２】本発明の一実施形態に係るコントローラの図である。
【図３】本発明の一実施形態に係る図２のコントローラの別の図である。
【図４】本発明の一実施形態に係るホストコンピュータおよびディスプレイと連結されたコントローラのブロック図である。
【図５】本発明の一実施形態に係るシステムのトリガハプティック効果ソフトウェアスタックのブロック図である。
【図６】本発明の一実施形態に係る、トリガが押圧されていないときにコントローラのトリガで経験されることができる元のトリガハプティック効果を生み出すことができる元のトリガハプティック効果定義の図である。
【図７】本発明の一実施形態に係る、トリガが一杯まで押圧されているときにコントローラのトリガで経験されることができる修正されたトリガハプティック効果を生み出すことができる修正されたトリガハプティック効果定義の図である。
【図８】本発明の一実施形態に係るハプティックトリガ修正モジュールの機能のフローチャートである。
【図９】本発明の別の実施形態に係るハプティックトリガ修正モジュールの機能のフローダイアグラムである。
【発明を実施するための形態】
【０００７】
一実施形態は、ゲームコントローラまたはゲームパッド等の周辺機器で経験されるハプティックフィードバックを、周辺機器から受信されるユーザ入力データに基づいて修正するシステムである。例えば、システムは、コントローラまたは他の何らかの周辺機器のトリガで経験されるトリガハプティック効果を、周辺機器から受信されるトリガデータに基づいて修正することができる。トリガデータの例には、トリガの位置、トリガの閉鎖率、またはトリガに加えられた力が挙げられる。トリガハプティック効果の修正の例には、トリガハプティック効果のマグニチュード（ｍａｇｎｉｔｕｄｅ）（すなわち強度）、周波数、立ち上がり、減衰、または持続時間のプログラム的修正が挙げられる。システムは、トリガハプティック効果を修正することにより、トリガで「理想」のトリガハプティック効果が経験されるようにトリガ位置、トリガ閉鎖率、またはトリガに加えられた力を補償することができる。別の例として、システムは、コントローラ、ゲームパッド、または他の周辺機器のユーザ入力エレメントで経験される一般的ハプティック効果を、ユーザ入力データに基づいて修正することができる。修正されたハプティックフィードバック感は、ユーザのユーザ入力エレメントとの相互作用を補償することができる。
【０００８】
システムはまず、ハプティック効果定義を受信することができる。システムはさらに、トリガの位置、トリガの閉じる割合、またはトリガに加えられた力等のトリガデータを受信することができる。このようなトリガデータの例には、トリガを特定の位置に置くこと、トリガを特定の位置に引くこと、またはトリガを絞ることが挙げられる。システムは、例えばハプティック効果定義のマグニチュードパラメータ、周波数パラメータ、指向性パラメータ、アタックパラメータ、減衰（ｄｅｃａｙ）パラメータ、および／または持続時間パラメータをプログラム的に修正するなど、受信したトリガデータに基づいてハプティック効果定義をプログラム的に修正することができる。それからシステムは、コントローラ、ゲームパッド、または他の周辺機器の一つ以上のモータまたはアクチュエータに、修正されたハプティック効果定義に基づくハプティックフィードバックを再生または別途出力させることができ、これにより、修正されたハプティックフィードバックを経験させる。換言すれば、システムは、コントローラ、ゲームパッド、または他の周辺機器に、修正されたハプティック効果定義に基づくハプティック効果を再生させることができ、この修正されたハプティック効果定義に基づくハプティックフィードバックは、元のハプティック効果定義に基づくハプティックフィードバックとは異なるものとすることができる。通常の技術を有する当業者には当然のことながら、「再生」は、データ（例えば、オーディオデータ、ビデオデータ、またはハプティックデータ）を再現する行為または場合である。このように、一例においては、システムは、ユーザのトリガとの相互作用に基づいて、コントローラのトリガで経験されることとなるトリガハプティック効果全体を修正することができる。
【０００９】
一実施形態例では、ゲームアプリケーション内の武器が、コントローラのトリガで「ビビり」トリガハプティック効果を生じるリロード効果を有し、あたかもトリガ自体の中にアクチュエータがあるかのようなハプティック感が生じうる。この性質のトリガハプティック効果には、非常に小さな力だけがトリガに加えられることが必要でありうる。しかし、ゲームの戦闘の最中には、ユーザが指でトリガを連続的に引き、それによってトリガハプティック効果を効かなくしてしまうことがある。本実施形態によれば、システムは、トリガの位置（もしくはトリガの閉じる割合、またはトリガに加えられた力）を判断し、トリガハプティック効果をなお経験できるようにトリガハプティック効果を修正することができる。
【００１０】
図１は、本発明の一実施形態に係るシステム１０のブロック図である。一実施形態では、システム１０は、デバイス（例えば、パーソナルコンピュータ、またはビデオゲームコンソール等のコンソール）の一部であり、システム１０は、デバイスにトリガハプティック効果修正機能を提供する。別の実施形態では、システム１０は、デバイス（例えば、パーソナルコンピュータまたはコンソール）とは別々であり、デバイスに上述の機能を遠隔で提供する。単一のシステムとして図示されているが、システム１０の機能は、分散システムとして実装されてもよい。システム１０は、バス１２または他の情報通信用の通信機構と、情報処理のためにバス１２に動作可能に結合されたプロセッサ２２とを含む。プロセッサ２２は、任意のタイプの汎用または特殊目的プロセッサであればよい。システム１０は、プロセッサ２２により実行される情報および命令を記憶するためのメモリ１４をさらに含む。メモリ１４は、ランダムアクセスメモリ（「ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ」）、リードオンリメモリ（「ＲＯＭ：ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ」）、磁気もしくは光ディスク等のスタティックストレージデバイス、または他の任意のタイプのコンピュータ可読媒体の任意の組み合わせで構成することができる。
【００１１】
コンピュータ可読媒体は、プロセッサ２２がアクセスできる任意の利用可能な媒体であればよく、揮発性および不揮発性媒体、取外し可能および取り外し不能媒体、通信媒体、ならびに記憶媒体を含みうる。通信媒体は、搬送波または他の転送機構等の変調データ信号にコンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを含むことができ、公知技術の他の任意の形の情報送達媒体を含みうる。記憶媒体は、ＲＡＭ、フラッシュメモリ、ＲＯＭ、消去可能プログラム可能リードオンリメモリ（「ＥＰＲＯＭ：ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ」）、電気的消去可能プログラム可能リードオンリメモリ（「ＥＥＰＲＯＭ：ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒy」）、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスクリードオンリメモリ（「ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｋ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ」）、または公知技術の他の任意の形の記憶媒体を含みうる。
【００１２】
一実施形態では、メモリ１４は、プロセッサ２２により実行されたときに機能を提供するソフトウェアモジュールを記憶する。モジュールは、一実施形態では、システム１０ならびにデバイス全体の残りの部分にオペレーティングシステム機能を提供するオペレーティングシステム１５を含む。モジュールは、トリガで経験されるハプティック効果を修正するハプティックトリガ修正モジュール１６をさらに含む。ある実施形態では、ハプティックトリガ修正モジュール１６は、複数のモジュールを含み、各モジュールが、トリガで経験されるハプティック効果を修正するための特定の個々の機能を提供してもよい。システム１０は、コントローラ３０等の周辺機器に制御機能を提供しうる周辺ファームウェア等、追加の機能を含むための一つ以上の追加のアプリケーションモジュール１８を典型的に含む。
【００１３】
システム１０は、リモートソースからデータを送信および／または受信する実施形態では、赤外線、無線、Ｗｉ−Ｆｉまたはセルラネットワーク通信等の移動無線ネットワーク通信を提供するための、ネットワークインタフェースカード等の通信デバイス２０をさらに含む。他の実施形態では、通信デバイス２０は、イーサネット（登録商標）接続またはモデム等の有線ネットワーク接続を提供する。
【００１４】
システム１０は、コントローラ３０に動作可能に接続される。コントローラ３０は、システム１０に入力を提供するために用いられる周辺機器である。コントローラ３０は、無線接続または有線接続を用いてシステム１０に動作可能に接続することができる。コントローラ３０は、無線接続または有線接続を用いてシステム１０と通信しうるローカルプロセッサをさらに含むことができる。あるいは、コントローラ３０は、ローカルプロセッサを含まないように構成されてもよく、コントローラ３０に関連する全ての入力信号および／または出力信号が、システム１０のプロセッサ２２により直接対処および処理されてもよい。
【００１５】
コントローラ３０は、ユーザが相互作用することができ、システム１０に入力を提供することができる、一つ以上のデジタルボタン、一つ以上のアナログボタン、一つ以上のバンパ、一つ以上の方向パッド、一つ以上のアナログもしくはデジタルスティック、一つ以上のハンドル、および／または一つ以上のユーザ入力エレメントをさらに含むことができる。コントローラ３０は、ユーザがさらに相互作用することができ、システム１０にさらに入力を提供することができる、一つ以上のアナログまたはデジタルトリガボタン（または「トリガ」）も含むことができる。より詳細に後述するように、コントローラ３０には、コントローラ３０の少なくとも一つのトリガに対して双方向押／引力を及ぼすように構成された、モータまたは別のタイプのアクチュエータもしくはハプティック出力デバイスをさらに含むことができる。
【００１６】
コントローラ３０は、一つ以上のアクチュエータまたは他のタイプのハプティック出力デバイスも含むこともできる。コントローラ３０のローカルプロセッサ、またはコントローラ３０がローカルプロセッサを含まない実施形態におけるプロセッサ２２は、コントローラ３０の少なくとも一つのアクチュエータに、ハプティック効果に関連したハプティック信号を送信すればよい。次に、アクチュエータが、ハプティック信号に応じて振動触知ハプティック効果、運動感覚ハプティック効果、または変形ハプティック効果等のハプティック効果を出力する。ハプティック効果は、コントローラ３０のユーザ入力エレメント（例えば、デジタルボタン、アナログボタン、バンパ、方向パッド、アナログもしくはデジタルスティック、ハンドル、スライダ、またはトリガ）で経験されることができる。あるいは、コントローラ３０の外側表面でハプティック効果が経験されてもよい。アクチュエータは、アクチュエータ駆動回路を含む。アクチュエータは、例えば、電動モータ、電磁アクチュエータ、ボイスコイル、形状記憶合金、電気活性ポリマ、ソレノイド、偏心モータ（「ＥＲＭ：ｅｃｃｅｎｔｒｉｃ  ｒｏｔａｔｉｎｇ  ｍａｓｓ  ｍｏｔｏｒ」）、線形共振アクチュエータ（「ＬＲＡ：ｌｉｎｅａｒ  ｒｅｓｏｎａｎｔ  ａｃｔｕａｔｏｒ」）、圧電アクチュエータ、高帯域アクチュエータ、電気活性ポリマ（「ＥＡＰ：ｅｌｅｃｔｒｏａｃｔｉｖｅ  ｐｏｌｙｍｅｒ」）アクチュエータ、静電摩擦ディスプレイ、または超音波振動ジェネレータでありうる。アクチュエータはハプティック出力デバイスの一例であり、ここで、ハプティック出力デバイスは、駆動信号に応じて振動触知ハプティック効果、静電摩擦ハプティック効果、または変形ハプティック効果等のハプティック効果を出力するように構成されたデバイスである。代替的実施形態では、コントローラ３０内の一つ以上のアクチュエータは、何らかの他のタイプのハプティック出力デバイスで置き換えられてもよい。
【００１７】
コントローラ３０は、一つ以上のスピーカをさらに含むことができる。コントローラ３０のローカルプロセッサ、またはコントローラ３０がローカルプロセッサを含まない実施形態におけるプロセッサ２２は、コントローラ３０の少なくとも一つのスピーカにオーディオ信号を送信すればよく、次いでスピーカがオーディオ効果を出力する。スピーカは、例えば、ダイナミックラウドスピーカ、エレクトロダイナミックラウドスピーカ、圧電ラウドスピーカ、磁気歪ラウドスピーカ、静電ラウドスピーカ、リボンプラナー磁気ラウドスピーカ、屈曲波ラウドスピーカ、フラットパネルラウドスピーカ、ヘイルエアモーショントランスデューサ、プラズマアークスピーカ、およびデジタルラウドスピーカであればよい。
【００１８】
コントローラ３０は、一つ以上のセンサをさらに含むことができる。センサは、音、動作、加速度、生体信号、距離、流量、力／圧力／歪み／屈曲、湿度、線形位置、方位／傾斜、無線周波数、回転位置、回転速度、スイッチの操作、温度、振動、または可視光強度等であるがこれに限定されない、エネルギーの一形態または他の物理的性質を検出するように構成できる。センサは、検出エネルギーまたは他の物理的特性を、電気信号または仮想センサ情報を表す任意の信号に変換するようにさらに構成でき、コントローラ３０は、変換された信号を、コントローラ３０のローカルプロセッサに、またはコントローラ３０がローカルプロセッサを含まない実施形態におけるプロセッサ２２に送信することができる。センサは、加速度計、心電図、脳波図、筋電計、眼電図、電気的パラトグラフ、電気皮膚反応センサ、容量センサ、ホール効果センサ、赤外センサ、超音波センサ、圧力センサ、光ファイバセンサ、曲りセンサ（または屈曲センサ）、力感知レジスタ、ロードセル、ＬｕＳｅｎｓｅ  ＣＰＳ２  １５５、小型圧力トランスデューサ、圧電センサ、ストレインゲージ、湿度計、線形位置タッチセンサ、線形ポテンショメータ（またはスライダ）、線形可変差動変圧器、コンパス、傾斜計、磁性タグ（または無線周波数識別タグ）、回転エンコーダ、回転ポテンショメータ、ジャイロスコープ、オンオフスイッチ、温度センサ（温度計、熱電対、抵抗温度検知器、サーミスタ、または温度変換集積回路等）、マイクロホン、光度計、高度計、生体モニタ、カメラ、または光依存レジスタ等であるがこれに限定されない任意のデバイスであってよい。
【００１９】
図２は、本発明の一実施形態に係るコントローラ１００の図である。一実施形態では、コントローラ１００は、図１のコントローラ３０と同一である。さらに、図３は、コントローラ１００の別の図である。コントローラ１００は一般に、コンピュータ、携帯電話、テレビ、または他の類似のデバイスに接続できるゲームシステムに用いることができる。図２および図３のコントローラ１００のコンポーネント（すなわち、ハウジング１０２、アナログまたはデジタルスティック１１０、ボタン１１４、トリガ１１８、ならびに鳴動（ランブル）（ｒｕｍｂｌｅ）アクチュエータ１２２および１２４）を、以下で図４とともにさらに詳述する。
【００２０】
図４は、ホストコンピュータ１０４およびディスプレイ１０６をさらに含むゲームシステム１０１で使用されるコントローラ１００のブロック図である。図４のブロック図に示すように、コントローラ１００は、接続１０５を介してホストコンピュータ１０４と通信するローカルプロセッサ１０８を含む。接続１０５は、有線接続、無線接続、または当業者に公知の他のタイプの接続であればよい。あるいは、コントローラ１００は、ローカルプロセッサ１０８を含まないように構成され、コントローラ１００からの全ての入力／出力信号が、ホストコンピュータ１０４により直接対処および処理されてもよい。ホストコンピュータ１０４は、ディスプレイスクリーン１０６に動作可能に結合される。一実施形態では、当技術分野で周知のように、ホストコンピュータ１０４は、ゲームデバイスコンソールであり、ディスプレイスクリーン１０６は、ゲームデバイスコンソールに動作可能に結合されたモニタである。別の実施形態では、当業者に周知のように、ホストコンピュータ１０４およびディスプレイスクリーン１０６は、単一のデバイスに組み合わされてもよい。
【００２１】
コントローラ１００のハウジング１０２は、左利きユーザまたは右利きユーザのデバイスを握る両手に合い易いように成形される。当業者には当然のことながら、コントローラ１００は、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｘｂｏｘ  Ｏｎｅ（商標）コントローラまたはＰｌａｙＳｔａｔｉｏｎ（登録商標）ＤｕａｌＳｈｏｃｋ（商標）コントローラ等のビデオゲームコンソールシステム用に現在市販される多数の「ゲームパッド」と類似の形状およびサイズのコントローラの一実施形態例にすぎず、Ｗｉｉ（商標）リモートまたはＷｉｉ（商標）Ｕコントローラ、Ｓｏｎｙ（登録商標）ＳｉｘＡｘｉｓ（商標）コントローラまたはＳｏｎｙ（登録商標）Ｗａｎｄコントローラ、ならびに、実在の物（テニスラケット、ゴルフクラブ、野球のバット等）の形および他の形のコントローラ、またはディスプレイもしくはヘッドマウントディスプレイを有するコントローラ等のコントローラを含むがこれに限定されない、ユーザ入力エレメントの他の構成、形状、サイズのコントローラが使用されてもよい。
【００２２】
コントローラ１００は、アナログまたはデジタルスティック１１０、ボタン１１４、およびトリガ１１８を含む、いくつかのユーザ入力エレメントを含む。本明細書において用いられるところのユーザ入力エレメントは、トリガ、ボタン、アナログまたはデジタルスティックなどのインタフェースデバイスであって、ホストコンピュータ１０４と相互作用するためにユーザにより操作されるものを指す。図２および図３で分かるように、当業者にも公知のように、複数の各ユーザ入力エレメントおよび追加のユーザ入力エレメントがコントローラ１００に含まれうる。したがって、例えばトリガ１１８の本明細書の記述は、コントローラ１００を単一のトリガに限定しない。さらに、図４のブロック図は、アナログまたはデジタルスティック１１０、ボタン１１４、およびトリガ１１８をそれぞれ一つ（１）だけ示している。しかし、当業者には当然のことながら、上述のように複数のアナログまたはデジタルスティック、ボタンおよびトリガ、ならびに他のユーザ入力エレメントが使用されてもよい。
【００２３】
図４のブロック図で分かるように、コントローラ１００は、そのユーザ入力エレメントの各々を直接駆動するためのターゲットアクチュエータまたはモータ、ならびにユーザの手が大抵置かれる場所でハウジング１０２に動作可能に結合された一つ以上の一般的アクチュエータまたは鳴動アクチュエータ１２２、１２４を含む。より具体的には、アナログまたはデジタルスティック１１０は、アナログまたはデジタルスティック１１０に動作可能に結合されたターゲットアクチュエータまたはモータ１１２を含み、ボタン１１４は、ボタン１１４に動作可能に結合されたターゲットアクチュエータまたはモータ１１６を含み、トリガ１１８は、トリガ１１８に動作可能に結合されたターゲットアクチュエータまたはモータ１２０を含む。複数のターゲットアクチュエータに加えて、コントローラ１００は、そのユーザ入力エレメントの各々に動作可能に結合された位置センサを含む。より具体的には、アナログまたはデジタルスティック１１０は、アナログまたはデジタルスティック１１０に動作可能に結合された位置センサ１１１を含み、ボタン１１４は、ボタン１１４に動作可能に結合された位置センサ１１５を含み、トリガ１１８は、トリガ１１８に動作可能に結合された位置センサ１１９を含む。ローカルプロセッサ１０８は、ターゲットアクチュエータ１１２、１１６、１２０、ならびにアナログまたはデジタルスティック１１０、ボタン１１４およびトリガ１１８のそれぞれの位置センサ１１１、１１５、１１９に、動作可能に結合される。ローカルプロセッサ１０８は、位置センサ１１１、１１５、１１９から受信した信号に応じて、方向付けられた運動感覚効果またはターゲット運動感覚効果を、アナログまたはデジタルスティック１１０、ボタン１１４、およびトリガ１１８にそれぞれ直接提供するようにターゲットアクチュエータ１１２、１１６、１２０に命令する。このようなターゲット運動感覚効果は、コントローラ本体全体に沿って一般的アクチュエータ１２２、１２４により生み出される一般的ハプティック効果または鳴動ハプティック効果とは識別もしくは区別可能である。集合的ハプティック効果により、例えば映像、音声、および触覚といった複数のモダリティを同時に駆使することで、ユーザがゲームへのより高い没入感を得られる。ハプティクスを生み出すように構成されるコントローラのさらなる詳細は、参照により全体として本明細書に組み込まれる「ハプティック対応トリガを備えたゲームデバイス（ＧＡＭＩＮＧ  ＤＥＶＩＣＥ  ＨＡＶＩＮＧ  Ａ  ＨＡＰＴＩＣ−ＥＮＡＢＬＥＤ  ＴＲＩＧＧＥＲ）」と題する２０１４年４月２２日に出願の出願番号第１４／２５８，６４４号に、より詳しく記載されている。
【００２４】
図５は、本発明の一実施形態に係るシステムのトリガハプティック効果ソフトウェアスタックのブロック図である。トリガハプティック効果ソフトウェアスタックは、図１のシステム１０等のシステムに実装される。図の実施形態では、システムには、デバイス５００、周辺ファームウェア５１０、およびコントローラ５２０のコンポーネントが含まれる。デバイス５００は、パーソナルコンピュータ、タブレット、スマートフォン、またはコンソール（例えば、ビデオゲームコンソール）等の任意のタイプのコンピュータデバイスであればよい。周辺ファームウェア５１０は、デバイス５００に動作可能に接続されうる一つ以上の周辺機器（例えば、コントローラ）のためのファームウェアである。コントローラ５２０は、デバイス５００に動作可能に接続される周辺機器の一例である。コントローラ５２０は、ビデオゲームコントローラであってもよい。一実施形態では、コントローラ５２０は、図１のコントローラ３０、ならびに図２、図３および図４のコントローラ１００と同一であってもよい。
【００２５】
デバイス５００は、ゲーム入力管理コード５０１を含む。ゲーム入力管理コード５０１は、デバイス５００内で実行されるゲームアプリケーションまたは他のタイプのアプリケーションの文脈でコントローラ５２０により提供される入力を管理するコンピュータ可読命令のセットを含む。デバイス５００は、周辺入力アプリケーションプログラミングインタフェース（「ＡＰＩ：ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍａｂｌｅ  ｉｎｔｅｒｆａｃｅ」）５０２をさらに含む。周辺入力ＡＰＩ５０２は、コントローラ５２０により提供される入力を受信および管理するためにゲーム入力管理コード５０１が周辺ファームウェア５１０と相互作用することを可能にする、コンピュータ可読関数またはルーチンのセットを含む。デバイス５００は、鳴動ＡＰＩ５０３をさらに含む。鳴動ＡＰＩは、コントローラ５２０の一つ以上の鳴動モータまたは鳴動アクチュエータ（例えば、図５に示した鳴動モータＬおよびＲ）に鳴動命令を送信するためにゲーム入力管理コード５０１が周辺ファームウェア５１０と相互作用することを可能にするコンピュータ可読関数またはルーチンのセットを含む。鳴動命令は、コントローラ５２０の鳴動モータまたは鳴動アクチュエータに一般的ハプティック効果または鳴動ハプティック効果を生み出させることができる。
【００２６】
デバイス５００は、（図５に「ＡＰＩ」として識別される）トリガハプティック効果ＡＰＩ５０４をさらに含む。トリガハプティック効果ＡＰＩ５０４は、ゲーム入力管理コード５０１に露出され、コントローラ５２０の一つ以上のトリガ（例えば、図５に示したトリガＬおよびＲ）へのトリガ命令等、コントローラ５２０へのハプティック命令を送信するためにゲーム入力管理コード５０１が周辺ファームウェア５１０と相互作用することを可能にする、コンピュータ可読関数またはルーチンのセットを含む。ハプティック命令は、コントローラ５２０の一つ以上のターゲットモータまたはターゲットアクチュエータに、コントローラ５２０の一つ以上のユーザ入力エレメントでハプティック効果を生み出させることができる。トリガ命令は、コントローラ５２０の一つ以上のターゲットモータまたはターゲットアクチュエータ（例えば、図５に示したモータＬおよびＲ）に、コントローラ５２０の一つ以上のトリガ（例えば、図５に示したトリガＬおよびＲ）でトリガハプティック効果を生み出させることができる特定のタイプのハプティック命令である。トリガハプティック効果は、コントローラ５２０等のコントローラのトリガで経験される、特定のタイプのハプティック効果である。トリガハプティック効果ＡＰＩ５０４は、一つ以上のトリガハプティック効果定義を記憶することができる。ハプティック効果定義は、ハプティックファイルまたはハプティックストリーム等、予め定義され、記憶装置内に記憶されることができ、一つ以上の鳴動モータ、鳴動アクチュエータ、ターゲットモータ、またはターゲットアクチュエータに送信されて、コントローラ５２０のコンポーネントまたはユーザ入力エレメントでハプティック効果を生み出すことができる、ハプティック信号等のハプティックデータを含むデータ構造である。ハプティックデータは、対応するハプティック効果の一つ以上の属性を含むことができ、属性は、パラメータとして記憶されることができる。ハプティック効果定義のパラメータの例には、振幅パラメータ、周波数パラメータ、波形パラメータ、エンベロープパラメータ、マグニチュード（または強度）パラメータ、および持続時間パラメータが含まれる。トリガハプティック効果定義は、コントローラ５２０の一つ以上のモータまたはアクチュエータ（例えば、図５に示したモータＬおよびＲ）に送信されて、コントローラ５２０の一つ以上のトリガ（例えば、図５に示したトリガＬおよびＲ）でトリガハプティック効果を生み出すことができる、特定のタイプのハプティック効果定義である。
【００２７】
本実施形態によれば、トリガハプティック効果ＡＰＩ５０４は、ゲーム入力管理コード５０１が直接プレイバック／クロスオーバ部５０５、トリガエンジン５０６、および空間化エンジン５０７と相互作用することを可能にでき、さらに、ゲーム入力管理コード５０１により呼び出されたリクエストにしたがって直接プレイバック／クロスオーバ部５０５、トリガエンジン５０６、および空間化エンジン５０７を管理することができる。さらに、トリガハプティック効果ＡＰＩ５０４は、周辺ファームウェア５１０との通信に必要であり、一つ以上のトリガハプティック効果の生成に必要なデータを記憶することができる。代替的実施形態では、トリガハプティック効果ＡＰＩ５０４は、デバイス５００ではなく周辺ファームウェア５１０内にあってもよい。
【００２８】
デバイス５００は、直接プレイバック／クロスオーバ部５０５をさらに含む。直接プレイバック／クロスオーバ部５０５は、ハプティックデータを入力として受信し、ハプティックデータを出力として生み出し、ハプティックデータをコントローラ５２０の一つ以上のターゲットモータ、またはターゲットアクチュエータ（例えば、図５に示したモータＬおよびＲ）に送信する。ある実施形態では、直接プレイバック／クロスオーバ部５０５は、入力されたハプティックデータのフォーマットを修正せずに、入力されたハプティックデータを直接出力すればよい。その結果、入力されたハプティックデータが「そのまま」再生される。他の実施形態では、直接プレイバック／クロスオーバ部５０５は、入力されたハプティックデータを第一フォーマットから第二フォーマットへ変換し、さらに変換されたハプティックデータを出力すればよい。再生のタイプに応じて、直接プレイバック／クロスオーバ部５０５は、ハプティックデータを変換するためにプログラマブルクロスオーバを任意に使用することができる。ハプティックデータを変換することにより、デバイス５００は、ハプティック効果を「分解」し、複数のアクチュエータでハプティック効果を忠実に再生することができる。一実施形態では、ハプティックデータのフォーマットは、ハプティックエレメンタリストリーム（「ＨＥＳ：Ｈａｐｔｉｃ  Ｅｌｅｍｅｎｔａｒｙ  Ｓｔｒｅａｍ」）フォーマットであればよい。ＨＥＳフォーマットは、デバイスにストリーミングされうるハプティックデータを表すためのファイルまたはデータフォーマットである。ハプティックデータは、圧縮されていない音が表されるのと同一または類似の様式で表されうるが、ハプティックデータは、ＨＥＳフォーマットにおいて暗号化されうる。代替的実施形態では、直接プレイバック／クロスオーバ部５０５は、デバイス５００ではなく周辺ファームウェア５１０内にあってもよい。
【００２９】
デバイス５００は、トリガエンジン５０６をさらに含む。トリガエンジン５０６は、トリガハプティック効果定義等のハプティックデータを受信し、コントローラ５２０から受信したトリガデータ（例えば、図５に示したトリガデータ５１３）等のデータに基づいてハプティックデータを修正することができる。トリガデータは、コントローラ５２０の一つ以上のトリガ（例えば、図５に示したトリガＬおよびＲ）の位置および／またはレンジを指示する一つ以上のパラメータを含むデータである。トリガエンジン５０６は、コントローラ５２０にハプティック命令をさらに送信することができる。例えば、トリガエンジン５０６は、コントローラ５２０の一つ以上のトリガ（例えば、図５に示したトリガＬおよびＲ）に、トリガ命令を送信することができる。前述したように、トリガ命令は、コントローラ５２０の一つ以上のターゲットモータまたはターゲットアクチュエータ（例えば、図５に示したモータＬおよびＲ）に、コントローラ５２０の一つ以上のトリガ（例えば、図５に示したトリガＬおよびＲ）でトリガハプティック効果を生み出させることができる。したがって、一実施形態では、トリガエンジン５０６は、トリガハプティック効果定義のハプティックデータを修正することにより、トリガの位置および／またはレンジに基づいてトリガで特定のトリガハプティック効果を経験させることができる。別の実施形態では、トリガエンジン５０６は、トリガハプティック効果定義のハプティックデータを修正することにより、トリガの位置および／またはレンジに基づいてコントローラ５２０の一つ以上のターゲットモータまたはターゲットアクチュエータ（例えば、図５に示したモータＬおよびＲ）に関するトリガハプティック効果をスケーリングすることができる。トリガエンジン５０６は、トリガハプティック効果定義等の一つ以上のハプティック効果定義をさらに記憶することができる。代替的実施形態では、トリガエンジン５０６は、デバイス５００ではなく周辺ファームウェア５１０内にあってもよい。
【００３０】
デバイス５００は、（図５に「空間化エンジン」として識別される）空間化エンジン５０７をさらに含む。空間化エンジン５０７は、トリガハプティック効果定義等のハプティックデータを受信し、空間化データに基づいてハプティックデータを修正することができる。空間化データには、トリガハプティック効果等のハプティック効果の所望の方向および／または流れを指示するデータを含むことができる。ある実施形態では、空間化エンジン５０７は、方向および／または流れを含む空間化データをゲーム入力管理コード５０１から受信すればよい。さらに、空間化データには、コントローラ５２０上に位置するユーザの一つ以上の手の一つ以上の位置も含むことができる。ある実施形態では、空間化エンジン５０７は、一つ以上の手の位置を含む空間化データをコントローラ５２０から受信すればよい。さらに、ある実施形態では、空間化エンジン５０７は、ゲーム入力管理コード５０１により通信される、ゲームアプリケーション内のユーザのキャラクタの位置を含む空間化データを受信すればよい。
【００３１】
本実施形態によれば、空間化エンジン５０７は、コントローラ５２０の一つ以上の鳴動モータまたは鳴動アクチュエータ（例えば、図５に示した鳴動モータＬおよびＲ）に関してトリガハプティック効果等のハプティック効果がスケーリングされ、コントローラ５２０の一つ以上のターゲットモータまたはターゲットアクチュエータ（例えば、図５に示したモータＬおよびＲ）に関してもハプティック効果がスケーリングされるように、ハプティックデータを修正することができる。換言すれば、空間化エンジン５０７は、全体的ハプティック効果の方向および流れの感覚を伝えるために、各モータまたはアクチュエータに送信されるハプティックデータを修正し、これにより各モータまたはアクチュエータで経験されるハプティック効果を修正することができる。例えば、空間化エンジン５０７は、あるモータまたはアクチュエータで経験されるハプティック効果を強調するために、ハプティック効果の一つ以上の部分をスケーリングすることができる。例えば、空間化エンジン５０７は、ハプティック効果を経験させるモータまたはアクチュエータに送信されるハプティックデータをスケーリングして、ハプティック効果をより目立たせることができる（例えば、マグニチュード、持続時間を増加させるなど）。加えて、空間化エンジン５０７は、他のモータまたはアクチュエータに送信されるハプティックデータをスケーリングして、それらのモータまたはアクチュエータで経験される他のハプティック効果を目立たないようにすることができる（例えば、マグニチュード、持続時間を減少させるなど）。ある実施形態では、空間化エンジン５０７は、ハプティックデータをリアルタイムで修正することができる。さらに、ある実施形態では、空間化エンジン５０７は、全体的トリガハプティック効果を誇張するために、入力とモータまたはアクチュエータの出力との間に非線形関係を有していてもよい。代替的実施形態では、空間化エンジン５０７は、デバイス５００ではなく周辺ファームウェア５１０内にあってもよい。
【００３２】
デバイス５００は、エンコーダ５０８をさらに含む。エンコーダ５０８は、直接プレイバック／クロスオーバ部５０５、トリガエンジン５０６、および／または空間化エンジン５０７から受信したハプティックデータを一つのフォーマットにエンコードする。一実施形態では、このフォーマットはＨＥＳフォーマットであってもよい。エンコーダ５０８は、エンコードされたハプティックデータを周辺ファームウェア５１０にさらに送信する。
【００３３】
周辺ファームウェア５１０は、デコーダおよびクロスオーバ部５１１を含む。デコーダおよびクロスオーバ部５１１は、エンコーダ５０８からエンコードされたハプティックデータを受信し、エンコードされたハプティックデータをデコードする。ある実施形態では、デコーダおよびクロスオーバ部５１１は、エンコードされたハプティックデータをデコードするために、プログラマブルクロスオーバを計算する。これらの実施形態の一部では、デコーダおよびクロスオーバ部５１１は、プログラマブルクロスオーバをリアルタイムで計算する。周辺ファームウェア５１０は、トリガ制御部５１２をさらに含む。トリガ制御部５１２は、コントローラ５２０（例えば、図５に示したモータＬおよびＲ）の一つ以上のターゲットモータまたはターゲットアクチュエータのための低レベル制御ＡＰＩである。トリガ制御部５１２は、デバイス５００からトリガ命令を受信し、トリガ命令を、コントローラ５２０の指定のターゲットモータまたはターゲットアクチュエータへの低レベルトリガ命令に変換し、低レベルトリガ命令を、コントローラ５２０の指定のターゲットモータまたはターゲットアクチュエータに送信することができる。低レベルトリガ命令は、指定のターゲットモータまたはターゲットアクチュエータに、コントローラ５２０の指定のトリガでトリガハプティック効果を生み出させることができる。
【００３４】
周辺ファームウェア５１０は、トリガデータ５１３をさらに含む。前述のように、トリガデータ５１３は、コントローラ５２０の一つ以上のトリガ（例えば、図５に示したトリガＬおよびＲ）の位置および／またはレンジを指示する一つ以上のパラメータなど、一つ以上のパラメータを含むデータである。周辺ファームウェア５１０は、コントローラ５２０からトリガデータ５１３を受信することができる。周辺ファームウェア５１０は、トリガデータ５１３をさらに記憶することができ、トリガデータ５１３をデバイス５００にさらに送信することができる。周辺ファームウェア５１０は、他のゲームパッド機能５１４をさらに含むが、これは、周辺ファームウェア５１０によって管理されうるコントローラ５２０の機能である。このような機能には、有線／無線通信、入力報告、プロトコル実装、電力管理などの機能を含むことができる。周辺ファームウェア５１０は、鳴動制御部５１５をさらに含む。鳴動制御部５１５は、コントローラ５２０の一つ以上の鳴動モータまたは鳴動アクチュエータ（例えば、図５に示した鳴動モータＬおよびＲ）のための低レベル制御ＡＰＩである。鳴動制御部５１５は、デバイス５００から鳴動命令を受信し、鳴動命令を、コントローラ５２０の指定の鳴動モータまたは鳴動アクチュエータのための低レベル鳴動命令に変換し、低レベル鳴動命令を、コントローラ５２０の指定の鳴動モータまたは鳴動アクチュエータに送信することができる。
【００３５】
コントローラ５２０は、トリガＬおよびＲを含む。コントローラ５２０は、ギヤボックスＬおよびＲ、ならびにモータＬおよびＲをさらに含む。モータＬおよびギヤボックスＬは、コントローラ５２０内のトリガＬに動作可能に結合される。同様に、モータＲおよびギヤボックスＲは、コントローラ５２０内のトリガＲに動作可能に結合される。モータＬがトリガ命令を受信すると、モータＬおよびギヤボックスＬが集合的にトリガＬでトリガハプティック効果を経験させる。同様に、モータＲがトリガ命令を受信すると、モータＲおよびギヤボックスＲが集合的にトリガＲでトリガハプティック効果を経験させる。本実施形態によれば、周辺ファームウェア５１０は、駆動エレクトロニクス５３０を用いてコントローラ５２０のモータＬおよびＲにトリガ命令を送信する。コントローラ５２０は、ポテンショメータＬおよびＲをさらに含む。ポテンショメータＬは、トリガＬの位置および／またはレンジを検出することができ、検出されたトリガＬの位置および／またはレンジをトリガデータとして周辺ファームウェア５１０にさらに送信することができる。同様に、ポテンショメータＲは、トリガＲの位置および／またはレンジを検出することができ、検出されたトリガＲの位置および／またはレンジをトリガデータとして周辺ファームウェア５１０にさらに送信することができる。一実施形態では、ポテンショメータＬおよびＲは、ホール効果センサ等の別のタイプの位置センサでそれぞれ置き換えられてもよい。コントローラ５２０は、鳴動モータＬおよびＲをさらに含む。鳴動モータＬが鳴動命令を受信すると、鳴動モータＬは、コントローラ５２０の左本体に沿ってハプティック効果を経験させる。同様に、鳴動モータＲが鳴動命令を受信すると、鳴動モータＲは、コントローラ５２０の右本体に沿ってハプティック効果を経験させる。本実施形態によれば、周辺ファームウェア５１０は、鳴動駆動エレクトロニクス５３０を用いてコントローラ５２０の鳴動モータＬおよびＲに鳴動命令を送信する。
【００３６】
代替的実施形態では、一つ以上のターゲットモータまたはターゲットアクチュエータが、コントローラ５２０の一つ以上のユーザ入力エレメント（一つ以上のデジタルボタン、一つ以上のアナログボタン、一つ以上のバンパ、一つ以上の方向パッド、一つ以上のアナログまたはデジタルスティック、一つ以上のハンドル、一つ以上のスライダ等）に、動作可能に結合されてもよい。この代替的実施形態によれば、周辺ファームウェア５１０は、一つ以上のターゲットモータまたはターゲットアクチュエータに命令を送信して、一つ以上のターゲットモータまたはターゲットアクチュエータに、コントローラ５２０の一つ以上のユーザ入力エレメントで経験されるハプティック効果を生み出させることができる。
【００３７】
一実施形態では、前述したように、システム（図１のシステム１０等）は、元のハプティック効果定義に基づくハプティック効果が周辺機器のユーザ入力エレメントで再生され、または周辺機器で別途再生されている間に、コントローラまたはゲームパッド等の周辺機器のユーザ入力エレメントに関するユーザ入力データを受信することができる。具体例として、システムは、周辺機器のトリガでトリガハプティック効果が再生されている間に、コントローラのトリガに関するトリガデータを受信することができる。システムは、受信したユーザ入力データに基づいてハプティック効果定義が編集されたときには、ハプティック効果が元々企図されたようには経験されないものと判断することができる。例えば、低周波数（例えば２００ヘルツ（「Ｈｚ」））の振動触知ハプティック効果は、トリガに加えられると通常はトリガ上に小さな振動を生み出す。しかし、ユーザがトリガを完全に引き入れた場合、および／またはユーザがトリガをきつく握っている場合には、マグニチュードおよび周波数を増加させるように振動触知ハプティック効果が修正されない限り、ユーザが振動触知ハプティック効果を感じない可能性が最も高い。別の例として、トリガ上のユーザの指に対する押力を生み出す運動感覚ハプティック効果は、ユーザがトリガを引いている場合には、マグニチュード（すなわち強度）または周波数を増加させるように運動感覚ハプティック効果が修正されない限り、ユーザが感じない可能性が高い。
【００３８】
システムはさらに、受信したユーザ入力データを考慮しても、修正されたハプティック効果が元々企図されたハプティック効果と類似または同一であるように、ハプティック効果定義をプログラム的に修正することができる。換言すれば、システムは、受信したユーザ入力データにより表されるユーザのユーザ入力エレメントとの相互作用により生じる元のハプティック効果の減少を補償するように、ハプティック効果定義をプログラム的に修正することができる。システムは、ハプティック効果定義をプログラム的に修正することにより、ハプティック効果定義内に含まれるハプティックデータの一つ以上のパラメータをプログラム的に修正することができる。このようなパラメータには、マグニチュード（または強度）パラメータ；周波数パラメータ；指向性パラメータ；アタックパラメータ；減衰パラメータ；または持続時間パラメータを含むことができる。別法として、システムは、ハプティック効果定義をプログラム的に修正することにより、元のハプティック効果の生成と同時に、元のハプティック効果を補償する別個のハプティック効果を生成するために、別個のハプティック効果定義を生成し、別個のハプティック効果定義を別個のモータまたはアクチュエータに送信してもよい。ハプティック効果定義のプログラム的修正は、システムの修正アルゴリズムにしたがって達成されることができる。システムはさらに、ハプティック命令および修正されたハプティック効果定義を周辺機器内のアクチュエータまたはモータに送信することができる。アクチュエータまたはモータはさらに、修正されたハプティック効果定義に基づく修正されたハプティック効果を出力することができる。
【００３９】
一実施形態では、ハプティック命令はトリガ命令であり、修正されたハプティック効果定義は、修正されたトリガハプティック効果定義であってもよい。さらに、トリガ命令および修正されたトリガハプティック効果定義は、トリガに動作可能に結合されたターゲットアクチュエータまたはモータに送信されることができる。例えば、トリガハプティック効果定義は、トリガに動作可能に結合されたターゲットアクチュエータまたはモータによりトリガに加えられる、指定のマグニチュード（または強度）を有する双方向押／引力を定義することができる。さらに、ポテンショメータ、ホールセンサ、または他のタイプのセンサが、ユーザがトリガを引いているか押しているかを判断することができる。システムは、ユーザがトリガを弾いているときに、トリガに動作可能に結合されたターゲットアクチュエータまたはモータがユーザによるトリガの引きを補償するためにトリガにどのくらいの押力を加える必要があるかを、プログラム的に判断することができる。システムは、ターゲットアクチュエータまたはモータがユーザによるトリガの引きを補償するのに十分な押力を加えるように、トリガハプティック効果定義をプログラム的に修正することができる。システムは、トリガハプティック効果定義の以下のパラメータ：マグニチュード（すなわち強度）パラメータ；周波数パラメータ；持続時間パラメータ；指向性パラメータ；アタックパラメータ；または減衰パラメータのうちの少なくとも一つを修正することにより、トリガハプティック効果定義をプログラム的に修正することができる。代替的実施形態では、システムは、周辺機器内にあるがトリガに動作可能に結合されていない一つ以上の一般的アクチュエータまたはモータが、トリガに動作可能に結合されたターゲットアクチュエータまたはモータにより加えられる双方向押／引力を補償する定義されたハプティック効果を生成できるようにハプティック効果を定義するハプティック効果定義を生成してもよい。さらに別の代替的実施形態では、一つ以上の一般的アクチュエータまたはモータにより生成されるハプティック効果が、トリガに動作可能に結合されたターゲットアクチュエータまたはモータにより加えられる双方向押／引力に置き換わってもよい。
【００４０】
前述したように、ユーザ入力エレメントは、例えば、デジタルボタン、アナログボタン、バンパ、方向パッド、アナログもしくはデジタルスティック、ハンドル、スライダ、またはトリガであればよい。さらに、ユーザ入力データは、例えば、ユーザ入力エレメントの位置、ユーザ入力エレメントの閉じる割合、またはユーザ入力エレメントに加えられた力であればよい。一実施形態では、ユーザ入力データは、ユーザ入力エレメントの位置、ユーザ入力エレメントの閉じる割合、またはユーザ入力エレメントに加えられた力から導出されたデータをさらに含むことができる。ユーザ入力エレメントがトリガであるとき、ユーザ入力データはトリガデータであればよく、トリガデータは、例えば、トリガの位置、トリガの閉じる割合、またはトリガに加えられた力であればよい。トリガデータ等のユーザ入力データは、トリガ等のユーザ入力エレメントに動作可能に結合された、ポテンショメータ、ホールセンサ、または他のタイプのセンサにより生成することができる。
【００４１】
一実施形態では、周辺機器は、ユーザ入力エレメントのモーション等のモーションを検出でき、このモーションは、多軸モーション（すなわち、周辺機器の二軸以上にわたるモーション）である。この実施形態では、モーションデータが生成され、システムに送信され、システムがモーションデータを受信すればよい。システムはさらに、受信したモーションデータを考慮してハプティック効果定義をプログラム的に修正することができる。例えば、システムは、多軸モーションの間にハプティック効果を中断するようにハプティック効果定義を修正することができる。別の例として、システムは、上昇モーションが下降モーションに移行したときにハプティック効果の周波数を減少させるようにハプティック効果定義を修正することができる。
【００４２】
図６は、本発明の一実施形態に係る、トリガ６１０が押圧されていないときにコントローラのトリガ６１０で経験されることができる元のトリガハプティック効果を生み出すことができる元のトリガハプティック効果定義６００の図である。この実施形態によれば、元のトリガハプティック効果定義６００は、一つ以上のパラメータにより生成される波形を含む。一実施形態において、一つ以上のパラメータには、マグニチュード（強度）パラメータ；周波数パラメータ；持続時間パラメータ；指向性パラメータ；アタックパラメータ；および減衰パラメータを含むことができる。システムは、トリガ６１０の位置を含むトリガデータを受信することができ、トリガ６１０の位置は、トリガ６１０が押圧されていないことを示す。システムは、元のトリガハプティック効果定義６００に対する修正が必要ないものと判断することができる。システムはさらに、元のトリガハプティック効果定義６００をコントローラに送信することができ、ターゲットモータまたはアクチュエータが、元のトリガハプティック効果定義６００に基づいて力をトリガ６１０に加えて、トリガ６１０でトリガハプティック効果を生み出すことができる。
【００４３】
図７は、本発明の一実施形態に係る、トリガが一杯まで押圧されているときにコントローラのトリガ７１０で経験されることができる修正されたトリガハプティック効果を生み出すことができる修正されたトリガハプティック効果定義７００の図である。この実施形態によれば、修正されたトリガハプティック効果定義７００は、一つ以上のパラメータにより生成される波形を含む。一実施形態では、一つ以上のパラメータには、マグニチュード（強度）パラメータ；周波数パラメータ；持続時間パラメータ；指向性パラメータ；アタックパラメータ；および減衰パラメータを含むことができる。図７に示したように、修正されたトリガハプティック効果定義７００の波形は、元のトリガハプティック効果定義６００の波形とは大きく異なる。より具体的には、修正されたトリガハプティック効果定義７００と元のトリガハプティック効果定義６００との波形の差には、マグニチュードおよび周波数の変化が含まれる。元のトリガハプティック効果定義６００の波形は、約１００Ｈｚのハプティック効果波形であるが、修正されたトリガハプティック効果定義７００では、より周波数が低く減衰が大きい、より短いハプティック効果波形に変化する。システムは、トリガ７１０の位置を含むトリガデータを受信することができ、トリガ７１０の位置は、トリガ７１０が一杯まで押圧されていることを示す。システムは、トリガ７１０が一杯まで押圧されていることを考慮すると、元のトリガハプティック効果定義６００はトリガ７１０で「理想的な」トリガハプティック効果を生み出さないであろうと判断することができる。より具体的には、トリガ７１０で大きな力が加えられたときには、元のトリガハプティック効果定義６００によって生み出されるトリガハプティック効果の属性が大きく失われる可能性がある。システムはさらに、元のトリガハプティック効果定義６００を修正されたハプティック効果定義７００に変換することにより、元のトリガハプティック効果定義６００を修正することができる。システムは、元のトリガハプティック効果定義６００の一つ以上のパラメータをプログラム的に修正することにより、この修正をプログラム的に行うことができる。システムはさらに、修正されたトリガハプティック効果定義７００をコントローラに送信でき、ターゲットモータまたはアクチュエータが、修正されたトリガハプティック効果定義７００に基づいてトリガ７１０に力を加えて、トリガ７１０で修正されたトリガハプティック効果を生み出すことができる。修正されたトリガハプティック効果は、トリガ７１０で大きな力が加えられていることを考慮した上で「より理想的な」ハプティック効果体験を生み出すことができる。
【００４４】
図８は、本発明の一実施形態に係るハプティックトリガ修正モジュール（図１のハプティックトリガ修正モジュール１６等）の機能のフローチャートである。一実施形態では、図８の機能は、後述の図９の機能と同様に、メモリまたは他のコンピュータ可読もしくは有形の媒体に記憶されたソフトウェアにより実装され、プロセッサにより実行される。他の実施形態では、各機能は、ハードウェア（例えば、特定用途向け集積回路（「ＡＳＩＣ：ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ」）、プログラマブルゲートアレイ（「ＰＧＡ：ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ」）、フィールドプログラマブルゲートアレイ（「ＦＰＧＡ：ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ」）などを用いることにより）またはハードウェアおよびソフトウェアの任意の組み合わせにより行われてもよい。ある実施形態では、機能の一部が省略されてもよい。
【００４５】
フローが開始し、８１０に進む。８１０では、周辺機器に元のハプティック命令およびハプティック効果定義が送信される。元のハプティック命令は、ハプティック出力デバイスに、周辺機器のユーザ入力エレメントで、または周辺機器内で、ハプティック効果定義に基づくハプティック効果を生成させることができる。ハプティック効果定義は、ハプティックデータを含むことができる。ある実施形態では、ハプティックデータは、一つ以上のパラメータを含むことができる。パラメータは、マグニチュードパラメータ；周波数パラメータ；持続時間パラメータ；指向性パラメータ；アタックパラメータ；または減衰パラメータのうちの少なくとも一つを含むことができる。ある実施形態では、元のハプティック命令は、元のトリガ命令であってもよく、ハプティック効果定義は、トリガハプティック効果定義であってもよい。これらの実施形態では、元のトリガ命令は、ターゲット出力デバイスに、周辺機器のトリガでトリガハプティック効果定義に基づくトリガハプティック効果を生成させることができる。ある実施形態では、周辺機器は、コントローラまたはゲームパッドであってもよい。ある実施形態では、８１０は省略されてもよい。フローは、８２０へ進む。
【００４６】
８２０では、周辺機器からユーザ入力データが受信される。ユーザデータは、周辺機器のユーザ入力エレメントの位置；または周辺機器のユーザ入力エレメントに加えられた力のうちの少なくとも一つを含むことができる。ユーザ入力エレメントがトリガである実施形態では、ユーザ入力データは、トリガデータであればよい。トリガデータは、トリガの位置；トリガの閉じる割合；またはトリガに加えられた力のうちの少なくとも一つを含むことができる。その後、フローは８３０へ進む。
【００４７】
８３０では、受信したユーザ入力データに基づいてハプティック効果定義が修正される。受信したユーザ入力データがトリガデータである実施形態では、ハプティック効果定義は、受信したトリガデータに基づいて修正される。ある実施形態では、ハプティック効果定義は、ハプティック効果定義のハプティックデータを修正することにより修正することができる。これらの実施形態の一部では、ハプティック効果定義は、ハプティックデータの一つ以上のパラメータを修正することにより修正することができる。ハプティックデータの一つ以上のパラメータを修正することには、マグニチュードパラメータ；周波数パラメータ；指向性パラメータ；アタックパラメータ；減衰パラメータ；または持続時間パラメータのうちの少なくとも一つを修正することを含むことができる。他の実施形態では、ハプティック効果定義は、新たなハプティック効果定義を作成すること；周辺機器にハプティック命令および新たなハプティック効果定義を送信すること；および、一般的ハプティック出力デバイスに、ハプティック命令に応じて周辺機器で、新たなハプティック効果定義に基づくハプティック効果を生成させることにより修正することができる。いくつかの実施形態では、ハプティック効果定義をプログラム的に修正することができる。その後、フローは８４０へ進む。
【００４８】
８４０では、周辺機器に新たなハプティック命令および修正されたハプティック効果定義が送信される。ある実施形態では、新たなハプティック命令は、新たなトリガ命令であってもよい。その後、フローは８５０へ進む。
【００４９】
８５０では、新たなハプティック命令が、ハプティック出力デバイスに、周辺機器のユーザ入力エレメントで、修正されたハプティック効果定義に基づいてハプティック効果を修正させる。ある実施形態では、ハプティック出力デバイスは、修正されたハプティック効果定義に基づく修正されたハプティック効果を生成することにより、ハプティック効果を修正することができ、修正されたハプティック効果が、元のハプティック効果に置き換わる。他の実施形態では、ハプティック出力デバイスは、修正されたハプティック効果定義に基づく新たなハプティック効果を生成することにより、ハプティック効果を修正することができ、新たなハプティック効果が、元のハプティック効果と同時に生成されることができる。ある実施形態では、ハプティック出力デバイスは、ターゲットハプティック出力デバイスであることができ、ターゲットハプティック出力デバイスが、周辺機器のトリガでのハプティック効果を修正することができる。ある実施形態では、ターゲットハプティック出力デバイスは、ターゲットアクチュエータであってもよい。それらの実施形態の一部では、ターゲットアクチュエータは、ターゲットモータであってもよい。その後、フローは終了する。
【００５０】
図９は、本発明の別の実施形態に係るハプティックトリガ修正モジュールの機能のフローチャートである。フローが開始し、９１０に進む。９１０では、周辺機器に元のハプティック命令およびハプティック効果定義が送信される。元のハプティック命令は、ハプティック出力デバイスに、周辺機器のユーザ入力エレメントで、または周辺機器内で、ハプティック効果定義に基づくハプティック効果を生成させることができる。ハプティック効果定義は、ハプティックデータを含むことができる。ある実施形態では、ハプティックデータは、一つ以上のパラメータを含むことができる。パラメータは、マグニチュードパラメータ；周波数パラメータ；持続時間パラメータ；指向性パラメータ；アタックパラメータ；または減衰パラメータのうちの少なくとも一つを含むことができる。ある実施形態では、元のハプティック命令は元のトリガ命令であってもよく、ハプティック効果定義は、トリガハプティック効果定義であってもよい。これらの実施形態では、元のトリガ命令は、ターゲット出力デバイスに、周辺機器のトリガでトリガハプティック効果定義に基づくトリガハプティック効果を生成させることができる。ある実施形態では、周辺機器は、コントローラまたはゲームパッドであってもよい。ある実施形態では、９１０は省略されてもよい。フローは、９２０へ進む。
【００５１】
９２０では、周辺機器からモーションデータが受信される。モーションデータは、周辺機器の第一軸から周辺機器の第二軸へのユーザ入力エレメントのモーション、または周辺機器内の第一方向から周辺機器内の第二方向へのユーザ入力エレメントのモーションのうちの少なくとも一つを含むことができる。フローは、９３０へ進む。
【００５２】
９３０では、周辺機器からユーザ入力データが受信される。ユーザデータは、周辺機器のユーザ入力エレメントの位置；または周辺機器のユーザ入力エレメントに加えられた力のうちの少なくとも一つを含むことができる。ユーザ入力エレメントがトリガである実施形態では、ユーザ入力データはトリガデータであればよい。トリガデータは、トリガの位置；トリガの閉じる割合；またはトリガに加えられる力のうちの少なくとも一つを含むことができる。その後、フローは９４０へ進む。
【００５３】
９４０では、受信したモーションデータに基づいてハプティック効果定義が修正される。ある実施形態では、ハプティック効果定義は、ハプティック効果定義のハプティックデータを修正することにより修正することができる。これらの実施形態の一部では、ハプティック効果定義は、ハプティックデータの一つ以上のパラメータを修正することにより修正することができる。ハプティックデータの一つ以上のパラメータを修正することには、マグニチュードパラメータ；周波数パラメータ；指向性パラメータ；アタックパラメータ；減衰パラメータ；または持続時間パラメータのうちの少なくとも一つを修正することを含むことができる。他の実施形態では、ハプティック効果定義は、新たなハプティック効果定義を作成すること；周辺機器にハプティック命令および新たなハプティック効果定義を送信すること；および、一般的ハプティック出力デバイスに、ハプティック命令に応じて周辺機器で、新たなハプティック効果定義に基づくハプティック効果を生成させることにより修正することができる。いくつかの実施形態では、ハプティック効果定義は、プログラム的に修正することができる。その後、フローは９５０へ進む。
【００５４】
９５０では、受信したユーザ入力データに基づいてハプティック効果定義が修正される。受信されるユーザ入力データがトリガデータである実施形態では、受信したトリガデータに基づいてハプティック効果定義が修正される。ある実施形態では、ハプティック効果定義は、ハプティック効果定義のハプティックデータを修正することにより修正することができる。これらの実施形態の一部では、ハプティック効果定義は、ハプティックデータの一つ以上のパラメータを修正することにより修正することができる。ハプティックデータの一つ以上のパラメータを修正することには、マグニチュードパラメータ；周波数パラメータ；指向性パラメータ；アタックパラメータ；減衰パラメータ；または持続時間パラメータのうちの少なくとも一つを修正することを含むことができる。他の実施形態では、ハプティック効果定義は、新たなハプティック効果定義を作成すること；周辺機器にハプティック命令および新たなハプティック効果定義を送信すること；および、一般的ハプティック出力デバイスに、ハプティック命令に応じて周辺機器で、新たなハプティック効果定義に基づくハプティック効果を生成させることにより修正することができる。いくつかの実施形態では、ハプティック効果定義は、プログラム的に修正することができる。その後、フローは９６０へ進む。
【００５５】
９６０では、周辺機器に新たなハプティック命令および修正されたハプティック効果定義が送信される。ある実施形態では、新たなハプティック命令は、新たなトリガ命令であってもよい。その後、フローは９７０へ進む。
【００５６】
９７０では、新たなハプティック命令が、ハプティック出力デバイスに、周辺機器のユーザ入力エレメントで、修正されたハプティック効果定義に基づいてハプティック効果を修正させる。ある実施形態では、ハプティック出力デバイスは、修正されたハプティック効果定義に基づく修正されたハプティック効果を生成することにより、ハプティック効果を修正することができ、修正されたハプティック効果が、元のハプティック効果に置き換わる。他の実施形態では、ハプティック出力デバイスは、修正されたハプティック効果定義に基づく新たなハプティック効果を生成することにより、ハプティック効果を修正することができ、新たなハプティック効果が、元のハプティック効果と同時に生成されることができる。ある実施形態では、ハプティック出力デバイスはターゲットハプティック出力デバイスであることができ、ターゲットハプティック出力デバイスが、周辺機器のトリガでのハプティック効果を修正することができる。ある実施形態では、ターゲットハプティック出力デバイスは、ターゲットアクチュエータであってもよい。それらの実施形態の一部では、ターゲットアクチュエータは、ターゲットモータであってもよい。その後、フローは終了する。
【００５７】
したがって、一実施形態では、システムが、コントローラまたはゲームパッド等の周辺機器で経験されるハプティック効果を修正することができる。ハプティック効果は、周辺機器のトリガで経験されるトリガハプティック効果であってもよい。ハプティック効果は、システムが受信するユーザ入力データに基づいて修正することができ、ユーザ入力データには、ユーザ入力エレメントの位置および／またはユーザ入力エレメントに加えられた力を含むことができる。周辺機器で経験されるハプティックフィードバック、特に周辺機器のトリガで経験されるハプティックフィードバックを、ユーザの周辺機器との相互作用に基づいて修正することで、よりリアルで没入感のあるゲーム体験を提供することができる。
【００５８】
本明細書を通して記載された本発明の特徴、構造、または特性は、一つ以上の実施形態において任意の適切な様式で組み合わされてもよい。例えば、本明細書を通じて、「一実施形態」、「一部の実施形態」、「ある実施形態」、「ある実施形態（複数）」、または他の類似の言葉の使用は、実施形態に関連して記載された特定の特徴、構造、または特性が、本発明の少なくとも一つの実施形態に含まれうるという事実を意味する。したがって、本明細書を通じて、「一実施形態」、「一部の実施形態」、「ある実施形態」、「ある実施形態（複数）」の語句または他の類似の言葉の記載は、必ずしも全てが同じ実施形態の群をさすのではなく、記載された特徴、構造、または特性は、一つ以上の実施形態において任意の適切な様式で組み合わされてもよい。
【００５９】
通常の技術を有する当業者には当然のことながら、上述の本発明は、異なる順序のステップを用いて、および／または、開示された構成とは異なる構成の要素を用いて実施されてもよい。したがって、これらの好ましい実施形態に基づいて本発明を記載しているが、当業者には当然のことながら、本発明の趣旨および範囲内を逸脱しない、ある修正、変更、および代替的構成が明らかであろう。したがって、本発明の境界および範囲を決定するためには、添付の特許請求の範囲を参照しなければならない。
【図１】
2019053776.tif 000003
【図２】
2019053776.tif 000004
【図３】
2019053776.tif 000005
【図４】
2019053776.tif 000006
【図５】
2019053776.tif 000007
【図６】
2019053776.tif 000008
【図７】
2019053776.tif 000009
【図８】
2019053776.tif 000010
【図９】
2019053776.tif 000011
【手続補正書】
【提出日】平成31年1月16日(2019.1.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ユーザ入力エレメントにおいて経験されるハプティック効果を修正するためのコンピュータ実施方法であって、
周辺機器からデータを受信するステップであって、前記データは、少なくとも前記ユーザ入力エレメントの位置を含む、ステップと、
修正されたハプティック効果定義を生成するための前記データに基づいてハプティック効果定義を修正するステップと、
前記周辺機器に命令および修正された前記ハプティック効果定義を送信するステップと、
ハプティック出力デバイスに、前記命令に応じて前記周辺機器の前記ユーザ入力エレメントにおいて、修正された前記ハプティック効果定義に基づいてハプティック効果を修正させるステップと
を含む、コンピュータ実施方法。
【請求項２】
前記ハプティック効果定義は、ハプティックデータを含み、
前記ハプティック効果定義を修正するステップは、前記ハプティック効果定義の前記ハプティックデータを修正するステップを含む、
請求項１記載のコンピュータ実施方法。
【請求項３】
前記ハプティック効果定義の前記ハプティックデータを修正するステップは、マグニチュードパラメータ、周波数パラメータ、指向性パラメータ、アタックパラメータ、減衰パラメータ、または持続時間パラメータのうちの少なくとも一つを修正するステップを含む、
請求項２記載のコンピュータ実施方法。
【請求項４】
モーションデータを受信するステップと、
前記モーションデータに基づいて前記ハプティック効果定義を修正するステップと
をさらに含む、
請求項１記載のコンピュータ実施方法。
【請求項５】
前記モーションデータは、第一軸から第二軸への前記周辺機器のユーザ入力エレメントのモーション、または第一方向から第二方向への前記ユーザ入力エレメントのモーションのうちの少なくとも一つを含む、請求項４記載のコンピュータ実施方法。
【請求項６】
前記データは、前記ユーザ入力エレメントの閉じる割合、または前記ユーザ入力エレメントに加えられる力のうちの一つを含む請求項４に記載のコンピュータ実施方法。
【請求項７】
前記位置は、前記ユーザ入力エレメントに結合されたセンサによって検出され、
前記ユーザ入力エレメントは、デジタルボタン、アナログボタン、バンパ、方向パッド、アナログスティック、デジタルスティック、ハンドル、スライダ、またはトリガの一つである請求項１に記載のコンピュータ実施方法。
【請求項８】
ユーザ入力エレメントにおいて経験されるハプティック効果を修正するためのシステムであって、
プロセッサと、
前記プロセッサによって実行するための一または複数のプログラムを記憶するメモリと、を含み、
前記一または複数のプログラムは、
周辺機器からデータを受信するステップであって、前記データは、前記ユーザ入力エレメントの位置のうちの少なくとも一つを含む、ステップと、
修正されたハプティック効果定義を生成するために、データに基づいてハプティック効果定義を修正するステップと、
前記周辺機器に命令および修正された前記ハプティック効果定義を送信するステップと、
ハプティック出力デバイスに、前記命令に応じて前記周辺機器の前記ユーザ入力エレメントにおいて、修正された前記ハプティック効果定義に基づいてハプティック効果を修正させるステップと
に関する命令を含むシステム。
【請求項９】
前記ハプティック効果定義は、ハプティックデータを含み、
前記ハプティック効果定義を修正するステップは、前記ハプティック効果定義の前記ハプティックデータを修正するステップを含む、
請求項８記載のシステム。
【請求項１０】
前記ハプティック効果定義の前記ハプティックデータを修正するステップは、マグニチュードパラメータ、周波数パラメータ、指向性パラメータ、アタックパラメータ、減衰パラメータ、または持続時間パラメータのうちの少なくとも一つを修正するステップを含む、
請求項９記載のシステム。
【請求項１１】
モーションデータを受信するステップと、
受信された前記モーションデータに基づいて前記ハプティック効果定義を修正するステップと
に関する命令をさらに含む、
請求項８記載のシステム。
【請求項１２】
モーションデータは、第一軸から第二軸への前記周辺機器のユーザ入力エレメントのモーション、または第一方向から第二方向への前記ユーザ入力エレメントのモーションのうちの少なくとも一つを含む、請求項１１記載のシステム。
【請求項１３】
前記データは、前記ユーザ入力エレメントの閉じる割合、または前記ユーザ入力エレメントに加えられる力のうちの一つを含む請求項１１に記載のシステム。
【請求項１４】
前記位置は、前記ユーザ入力エレメントに結合されたセンサによって検出され、
前記ユーザ入力エレメントは、デジタルボタン、アナログボタン、バンパ、方向パッド、アナログスティック、デジタルスティック、ハンドル、スライダ、またはトリガの一つである請求項８に記載のシステム。
【請求項１５】
プロセッサにより実行されると前記プロセッサにユーザ入力エレメントで経験されるハプティック効果を修正させる命令が記憶された、非一時的コンピュータ可読媒体であって、前記命令は、
周辺機器からデータを受信するステップであって、前記データは、少なくとも前記ユーザ入力エレメントの位置を含む、ステップと、
修正されたハプティック効果定義を生成するために、前記データに基づいてハプティック効果定義を修正するステップと、
前記周辺機器に命令および修正された前記ハプティック効果定義を送信するステップと、
ハプティック出力デバイスに、前記命令に応じて前記周辺機器の前記ユーザ入力エレメントにおいて、修正された前記ハプティック効果定義に基づいてハプティック効果を修正させるステップと
を含む、非一時的コンピュータ可読媒体。
【外国語明細書】
2019053776000001.pdf