(57)【特許請求の範囲】
【請求項１】
ハプティック出力装置に対応付けられたユーザ入力要素においてハプティック効果をレンダリングするための方法であって、
前記ハプティック出力装置に対応付けられた前記ユーザ入力要素のために位置の一次および二次範囲を規定するステップと、
前記ハプティック出力装置に対応付けられた前記ユーザ入力要素のために位置の境界範囲を規定するステップであって、前記境界範囲は前記一次および二次範囲の各々に部分的に重なる、ステップと、
前記ユーザ入力要素の位置を監視するステップと、
前記ユーザ入力要素が前記境界範囲内の位置に入ると、その応答として前記ハプティック効果をレンダリングするステップと、
を含む方法。
【請求項２】
前記ユーザ入力要素はトリガ要素である、請求項１に記載の方法。
【請求項３】
前記ハプティック効果は前記トリガ要素の動きの範囲を前記二次範囲または前記境界範囲のうちの少なくとも１つに拡張する、請求項２に記載の方法。
【請求項４】
前記ユーザ入力要素の前記位置は、アナログ‐デジタル変換データを含む１つ以上のバイトとしてホスト装置に送信される、請求項１に記載の方法。
【請求項５】
前記ハプティック出力装置は、コントローラまたはゲームパッドを備えた周辺装置に配設される、請求項１に記載の方法。
【請求項６】
前記ユーザ入力要素の正規化位置を算出するステップを更に含む、請求項１に記載の方法。
【請求項７】
前記位置の一次、二次、および境界範囲をスケーリングするステップを更に含む、請求項１に記載の方法。
【請求項８】
プロセッサと、
前記プロセッサによって実行されるプログラムを格納するメモリと、
を備えた装置であって、前記プログラムは、
ハプティック出力装置に対応付けられたユーザ入力要素のための位置の一次および二次範囲を規定することと、
前記ハプティック出力装置に対応付けられた前記ユーザ入力要素のための位置の境界範囲を規定することであって、前記境界範囲は前記一次および二次範囲の各々に部分的に重なる、ことと、
前記ユーザ入力要素の位置を監視することと、
前記ユーザ入力要素が前記境界範囲内の位置に入ると、その応答としてハプティック効果をレンダリングすることと、
のための命令を含む、装置。
【請求項９】
前記ユーザ入力要素はトリガ要素である、請求項８に記載の装置。
【請求項１０】
前記ハプティック効果は前記トリガ要素の動きの範囲を前記二次範囲または前記境界範囲のうちの少なくとも１つに拡張する、請求項９に記載の装置。
【請求項１１】
前記ユーザ入力要素の前記位置は、アナログ‐デジタル変換データを含む１つ以上のバイトとしてホスト装置に送信される、請求項８に記載の装置。
【請求項１２】
前記ハプティック出力装置は、コントローラまたはゲームパッドを備えた周辺装置に配設される、請求項８に記載の装置。
【請求項１３】
前記ユーザ入力要素の正規化位置を算出するための命令を更に含む、請求項８に記載の装置。
【請求項１４】
前記位置の一次、二次、および境界範囲をスケーリングするための命令を更に含む、請求項８に記載の装置。
【請求項１５】
プロセッサによって実行されるように構成されたプログラムを格納する非一時的コンピュータ可読記憶媒体であって、前記プログラムは、
ハプティック出力装置に対応付けられたユーザ入力要素のための位置の一次および二次範囲を規定するステップと、
前記ハプティック出力装置に対応付けられた前記ユーザ入力要素のための位置の境界範囲を規定するステップであって、前記境界範囲は前記一次および二次範囲の各々に部分的に重なる、ステップと、
前記ユーザ入力要素の位置を監視するステップと、
前記ユーザ入力要素が前記境界範囲内の位置に入ると、その応答としてハプティック効果をレンダリングするステップと、
のための命令を含む、コンピュータ可読記憶媒体。
【請求項１６】
前記ユーザ入力要素はトリガ要素である、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１７】
前記ハプティック効果はトリガ要素の動きの範囲を前記二次範囲または前記境界範囲のうちの少なくとも１つに拡張する、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１８】
前記ユーザ入力要素の位置は、アナログ‐デジタル変換データを含む１つ以上のバイトとしてホスト装置に送信される、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記ハプティック出力装置は、コントローラまたはゲームパッドを備えた周辺装置に配設される、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記ユーザ入力要素の正規化位置を算出するための命令を更に含む、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項２１】
前記位置の一次、二次、および境界範囲をスケーリングするための命令を更に含む、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項２２】
ハプティック出力装置に対応付けられたユーザ入力要素を制御するための方法であって、
前記ハプティック出力装置に対応付けられた前記ユーザ入力要素のための、位置の一次範囲、位置の二次範囲、および位置の境界範囲を含む位置および範囲情報を規定するステップであって、位置の前記境界範囲は、位置の前記一次範囲および位置の前記二次範囲の各々に部分的に重なる、ステップと、
前記ユーザ入力要素が位置の前記境界範囲内の１つまたは複数の位置に入ると、その応答としてハプティック効果をレンダリングするステップと、
を含む方法。
【請求項２３】
位置の前記一次範囲、位置の前記二次範囲、および位置の前記境界範囲のうちの１つは、最大外方位置から接地位置までの前記ユーザ入力要素の移動に基づき、算出される、請求項２２に記載の方法。
【請求項２４】
前記ユーザ入力要素のためのプロファイルは、前記ユーザ入力要素の各位置をアナログ−デジタル変換値にマッピングすることによって算出される、請求項２２に記載の方法。
【請求項２５】
前記ユーザ入力要素のための前記プロファイルは、増加プロファイルまたは減少プロファイルである、請求項２４に記載の方法。
【請求項２６】
前記ユーザ入力要素のための正規化プロファイルは、位置の前記二次範囲または位置の前記境界範囲のうちの少なくとも１つをマッピングされたアナログ−デジタル変換値から除去することによって算出される、請求項２２に記載の方法。
【請求項２７】
前記ユーザ入力要素の位置を監視するステップを更に含む、請求項２２に記載の方法。
【請求項２８】
前記ユーザ入力要素の休止位置への変化に関して調整するために前記ユーザ入力要素のプロファイルおよび正規化プロファイルを調整するステップを更に含む、請求項２２に記載の方法。
【請求項２９】
プロセッサによって実行されるように構成されたプログラムを格納する非一時的コンピュータ可読記憶媒体であって、前記プログラムは、
ハプティック出力装置に対応付けられたユーザ入力要素のための、位置の一次範囲、位置の二次範囲、および位置の境界範囲を含む位置および範囲情報を規定するステップであって、位置の前記境界範囲は、位置の前記一次範囲および位置の前記二次範囲の各々に部分的に重なる、ステップと、
前記ユーザ入力要素が位置の前記境界範囲内の１つまたは複数の位置に入ると、その応答としてハプティック効果をレンダリングするステップと、
のための命令を含む、コンピュータ可読記憶媒体。
【請求項３０】
位置の前記一次範囲、位置の前記二次範囲、および位置の前記境界範囲のうちの１つは、最大外方位置から接地位置までの前記ユーザ入力要素の移動に基づき、算出される、請求項２９に記載のコンピュータ可読記憶媒体。
【請求項３１】
前記ユーザ入力要素のためのプロファイルは、前記ユーザ入力要素の各位置をアナログ−デジタル変換値にマッピングすることによって算出される、請求項２９に記載のコンピュータ可読記憶媒体。
【請求項３２】
前記ユーザ入力要素のための前記プロファイルは、増加プロファイルまたは減少プロファイルである、請求項３１に記載のコンピュータ可読記憶媒体。
【請求項３３】
前記ユーザ入力要素のための正規化プロファイルは、位置の前記二次範囲または位置の前記境界範囲のうちの少なくとも１つをマッピングされたアナログ−デジタル変換値から除去することによって算出される、請求項２９に記載のコンピュータ可読記憶媒体。
【請求項３４】
前記ユーザ入力要素の位置を監視するステップのための命令を更に含む、請求項２９に記載のコンピュータ可読記憶媒体。
【請求項３５】
前記ユーザ入力要素の休止位置への変化に関して調整するために前記ユーザ入力要素のプロファイルおよび正規化プロファイルを調整するステップのための命令を更に含む、請求項３４に記載のコンピュータ可読記憶媒体。
【請求項３６】
プロセッサと、
前記プロセッサによって実行されるプログラムを格納するメモリと、
を備えた装置であって、前記プログラムは、
ハプティック出力装置に対応付けられたユーザ入力要素のための、位置の一次範囲、位置の二次範囲、および位置の境界範囲を含む位置および範囲情報を規定することであって、位置の前記境界範囲は、位置の前記一次範囲および位置の前記二次範囲の各々に部分的に重なる、ことと、
前記ユーザ入力要素が位置の前記境界範囲内の１つまたは複数の位置に入ると、その応答としてハプティック効果をレンダリングすることと、
のための命令を含む、装置。
【請求項３７】
位置の前記一次範囲、位置の前記二次範囲、および位置の前記境界範囲のうちの１つは、最大外方位置から接地位置までの前記ユーザ入力要素の移動に基づき、算出される、請求項３６に記載の装置。
【請求項３８】
前記ユーザ入力要素のためのプロファイルは、前記ユーザ入力要素の各位置をアナログ−デジタル変換値にマッピングすることによって算出される、請求項３６に記載の装置。
【請求項３９】
前記ユーザ入力要素のための正規化プロファイルは、位置の前記二次範囲または位置の前記境界範囲のうちの少なくとも１つをマッピングされたアナログ−デジタル変換値から除去することによって算出される、請求項３６に記載の装置。
【請求項４０】
前記ユーザ入力要素の位置を監視することのための命令を更に含む、請求項３６に記載の装置。
【請求項４１】
前記ユーザ入力要素の休止位置への変化に関して調整するために前記ユーザ入力要素のプロファイルおよび正規化プロファイルを調整することのための命令を更に含む、請求項４０に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、参照によりその全体を本願明細書に取り込むものとする、２０１４年１２月２３日に提出した米国仮特許出願第６２／０９６，２５１号の特典を請求するものである。
【０００２】
各実施形態は、全般的には電子装置に関し、より具体的にはハプティック効果を生じさせる電子装置に関する。
【背景技術】
【０００３】
ビデオゲームおよびビデオゲームシステムが極めて一般的になってきた。ビデオゲーム装置またはコントローラは、フィードバックをユーザに提供するために、一般に視覚および聴覚合図を使用する。一部のインタフェース装置においては、運動感覚フィードバック（例えば、能動および抵抗力フィードバック）および／または触覚フィードバック（例えば、振動、質感、温度変化、等々）がユーザに提供され得る。一般に、このようなフィードバックは「ハプティックフィードバック」または「ハプティック効果」と総称される。ハプティックフィードバックは、ユーザとビデオゲームコントローラまたは他の電子装置との対話を増進および簡略化する合図を提供する。例えば、ハプティック効果は、ビデオゲームコントローラまたは他の電子装置のユーザに特定の事象に対する注意を喚起するために、これらユーザに合図を与え得る、または模擬または仮想環境内へのより大きな没入感覚を生じさせるために、現実的なフィードバックを提供し得る。
【０００４】
アクションを引き起こすためにユーザがユーザ入力要素と対話する他の装置もハプティックフィードバックまたはハプティック効果の恩恵を受け得る。例えば、そのような装置として、医療用装置、自動車制御、遠隔制御、および他の同様の装置が挙げられ得る。
【発明の概要】
【０００５】
本発明の複数の実施形態は、従来技術を大幅に改良するハプティック効果を生じさせるべく構成された電子装置に関する。
【０００６】
各実施形態の特徴および利点は、以下の説明に記載されているか、説明から明らかになるか、または本発明の実施によって習得され得る。
【０００７】
１つの例においては、ハプティック出力装置に対応付けられたユーザ入力要素においてハプティック効果をレンダリングするための機能が提供される。ハプティック出力装置に対応付けられたユーザ入力要素のために位置の一次および二次範囲が規定される。また、ハプティック出力装置に対応付けられたユーザ入力要素のために位置の境界範囲が規定される。境界範囲は、一次および二次範囲の各々に部分的に重なる。ユーザ入力要素の位置が監視され、ユーザ入力要素が境界範囲内の位置に入ると、その応答としてハプティック効果が与えられる。
【０００８】
前述の全般的説明および以下の詳細説明はいずれも例示的かつ説明的なものであり、本発明を記載例に限定するためではないことを理解されたい。
【０００９】
更なる実施形態、詳細、利点、および変更は、添付の図面と併せて考慮されるべき好適な実施形態の以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】本発明の一例示的実施形態によるシステムのブロック図を示す。
【図２】本発明の一例示的実施形態によるユーザ入力要素の可動範囲を示す簡略図である。
【図３】本発明の一例示的実施形態によるハプティック効果ソフトウェアスタックのブロック図を示す。
【図４】本発明の一例示的実施形態によるハプティック出力装置に対応付けられたユーザ入力要素を制御するための機能の流れ図を示す。
【図５】本発明の別の例示的実施形態によるハプティック出力装置に対応付けられたユーザ入力要素を制御するための機能の流れ図を示す。
【図６】本発明の一例示的実施形態による、トリガが移動する開放拡張移動範囲を作る外側ばねを含み、トリガがこの開放拡張移動範囲の外側の最大開位置にあるときのコントローラを示す。
【図７】本発明の一例示的実施形態による、閉鎖拡張移動範囲を作る拡張フレームを含み、トリガがこの閉鎖拡張移動範囲の外側の最大閉位置にあるときにトリガをこの閉鎖拡張移動範囲内で移動させるコントローラを示す。
【図８】本発明の各実施形態での使用に適したコントローラの機能ブロック図を示す。
【図９Ａ】本発明の各実施形態での使用に適したコントローラの図を示す。
【図９Ｂ】本発明の各実施形態での使用に適したコントローラの別の図を示す。
【発明を実施するための形態】
【００１１】
複数の例示的実施形態は、ハプティック出力装置に対応付けられたユーザ入力要素の境界範囲を制御するためのシステムおよび方法に関する。例えば、ユーザ入力要素が境界範囲内に位置付けられているときに、ハプティック効果がレンダリングされ得る。位置の境界範囲は、位置の一次および二次範囲の各々に部分的に重なるように、ユーザ入力要素のために規定される。ユーザ入力要素の位置は監視されているので、ユーザ入力要素が境界範囲内の位置に入ると、その応答としてハプティック効果がレンダリングされ得る。
【００１２】
さまざまな実施形態において、装置を使用するための種々のユーザインタフェースおよび方法を説明する。一部の実施形態において、装置は携帯電子装置（例えば、ゲームコントローラ、コンソール、携帯電話、スマートフォン、タブレット、等々）である。ただし、これらユーザインタフェースおよび対応付けられた方法は、キーボード、マウス、トラックボール等々など他の物理的ユーザインタフェース装置を１つ以上含み得る他の多くの装置、例えば、パーソナルコンピュータ、医療用装置、ラップトップ、等々にも適用され得ることを理解されたい。
【００１３】
図１は、本発明の一例示的実施形態によるシステム１００のブロック図を示す。
【００１４】
システム１００は、データを遠隔ソースに送信するべく、および／またはデータを遠隔ソースから受信するべく、構成された通信装置１１０を含み得る。通信装置１１０は、プロセッサ１２０からネットワーク（図示せず）を介して別の装置に送られるデータを符号化することによって、および別のシステムからネットワークを介して受信されたデータをプロセッサ１２０のために復号することによって、プロセッサ１２０と他の装置との間の接続を可能にし得る。
【００１５】
例えば、通信装置１１０は、無線ネットワーク通信を提供するように構成されたネットワークインタフェースカードを含み得る。赤外線、無線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ、および／またはセルラー通信を含む種々の無線通信手法が使用され得る。あるいは、通信装置１１０は、イーサネット（登録商標）接続などの有線ネットワーク接続（単数または複数）を提供するように構成され得る。
【００１６】
プロセッサ１２０は、システム１００の計算および制御機能を実施するために、汎用または専用プロセッサを１つ以上備え得る。プロセッサ１２０は、マイクロプロセッサ装置などの単一の集積回路を含み得る、またはプロセッサ１２０の機能を実現するために連係する複数の集積回路装置および／または回路板を含み得る。また、プロセッサ１２０は、メモリ１４０に格納されているコンピュータプログラム、例えば、オペレーティングシステム１４１、境界範囲モジュール１４２、および他のアプリケーション１４３など、を実行し得る。
【００１７】
システム１００は、プロセッサ１２０によって実行される命令および情報を格納するためのメモリ１４０を含み得る。メモリ１４０は、データを検索、提示、変更、および格納するためのさまざまな構成要素を含み得る。例えば、メモリ１４０は、プロセッサ１２０によって実行されたときに機能を提供するソフトウェアモジュールを複数格納し得る。これらモジュールは、システム１００のためのオペレーティングシステム機能を提供するオペレーティングシステム１４１を含み得る。これらモジュールは、コントローラ１５０のユーザ入力要素の境界範囲を制御する境界範囲モジュール１４２を更に含み得る。例えば、境界範囲モジュール１４２はユーザ入力要素の位置を監視し、ユーザ入力要素がそれぞれの境界範囲内の位置に入ると、その応答としてハプティック効果を提供し得る。システム１００は、更に、コントローラ１５０（例えば、ゲームパッド、ウェアラブル装置、等々）などの周辺装置のための制御機能を提供するように構成された周辺機器ファームウェアなどの追加機能を含む追加アプリケーションモジュール１４３を１つ以上含み得る。
【００１８】
非一時的メモリ１４０は、プロセッサ１２０によってアクセスされ得る種々のコンピュータ可読媒体を含み得る。さまざまな実施形態において、メモリ１４０は、揮発性および不揮発性媒体、取り外し可能および取り外し不能媒体を含み得る。例えば、メモリ１４０は、ランダムアクセスメモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ダイナミックＲＡＭ（ＤＲＡＭ：ｄｙｎａｍｉｃ  ＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ：ｓｔａｔｉｃ  ＲＡＭ）、読み出し専用メモリ（ＲＯＭ：ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）、フラッシュメモリ、キャッシュメモリ、および／またはいずれか他の種類の非一時的コンピュータ可読媒体の如何なる組み合わせでも含み得る。代わりに、または加えて、メモリ１４０は、ネットワークまたはクラウドからアクセス可能な記憶媒体を１つ以上含み得る。
【００１９】
単一のシステムとして示されているが、システム１００の機能は分散システムとしても実装され得る。例えば、メモリ１４０およびプロセッサ１２０は、集合的にシステム１００を構成する複数の異なるコンピュータにわたって分散され得る。１つの実施形態において、システム１００は装置（例えば、パーソナルコンピュータ、コンソール、ビデオゲームコンソール、等々）の一部であり得る。この場合、システム１００は当該装置のためのハプティック効果機能を提供する。別の実施形態においては、システム１００を装置から分離させ得る。この場合、システム１００は当該装置のための上記機能を遠隔から提供し得る。
【００２０】
システム１００は、コントローラ１５０に作動可能に接続され得る。コントローラ１５０は、システム１００への入力を提供するように構成された周辺装置でもよい。コントローラ１５０は、無線接続または有線接続のどちらかを用いてシステム１００に作動可能に接続され得る。コントローラ１５０は、更に、無線接続または有線接続のどちらかを用いてシステム１００と通信するべく構成されたローカルプロセッサを含み得る。あるいは、コントローラ１５０は、ローカルプロセッサを含めずに構成され得る。この場合、コントローラ１５０に対応付けられた全ての入力信号および／または出力信号は、システム１００の各構成要素によって処理され得る。コントローラ１５０がローカルプロセッサを有する複数の実施形態においては、制御機能を提供するべく構成された境界範囲モジュールおよび周辺機器ファームウェアなどの追加機能は、コントローラ１５０内に常駐し得る。
【００２１】
コントローラ１５０は、１つ以上のデジタルボタン、１つ以上のアナログボタン、１つ以上のバンパ、１つ以上の指向性パッド、１つ以上のアナログまたはデジタルスティック、１つ以上のハンドル、および／または、ユーザとの対話が可能な、およびシステム１００への入力を可能にする、１つ以上のユーザ入力要素を更に含み得る。コントローラ１５０は、ユーザとの対話が更に可能な、およびシステム１００への入力を更に可能にする、１つ以上のアナログまたはデジタルトリガボタン（または「トリガ」）を含み得る。以下により詳細に説明するように、コントローラ１５０は、双方向押引力をコントローラ１５０の少なくとも１つのトリガに加えるべく構成されたモータまたは別の種類のアクチュエータまたはハプティック出力装置を更に含むことができる。
【００２２】
コントローラ１５０は、更に、アクチュエータまたは他の種類のハプティック出力装置を１つ以上含むことができる。コントローラ１５０のローカルプロセッサは、またはコントローラ１５０がローカルプロセッサを含まない実施形態におけるプロセッサ１２０は、ハプティック効果に対応付けられたハプティック信号をコントローラ１５０の少なくとも１つのアクチュエータに送信し得る。これにより、このアクチュエータは、このハプティック信号への応答として、振動触覚ハプティック効果、運動感覚ハプティック効果、または変形ハプティック効果などのハプティック効果を出力する。これらハプティック効果は、コントローラ１５０のユーザ入力要素（例えば、デジタルボタン、アナログボタン、バンパ、指向性パッド、アナログまたはデジタルスティック、ハンドル、またはトリガ）において知覚可能である。あるいは、これらハプティック効果は、コントローラ１５０の外面において知覚可能である。
【００２３】
アクチュエータは、ハプティック出力装置の一例である。ここで、ハプティック出力装置は、駆動信号への応答として、振動触覚ハプティック効果、静電摩擦ハプティック効果、温度変化、および／または変形ハプティック効果などのハプティック効果を出力するべく構成された装置である。代替実施形態において、コントローラ１５０内の１つ以上のアクチュエータは、何らか他の種類のハプティック出力装置に交換可能である。このハプティック出力装置は、例えば、電気モータ、電磁アクチュエータ、ボイスコイル、形状記憶合金、電気活性高分子、ソレノイド、偏心回転質量モータ（ＥＲＭ：ｅｃｃｅｎｔｒｉｃ  ｒｏｔａｔｉｎｇ  ｍａｓｓ  ｍｏｔｏｒ）、ハーモニックＥＲＭモータ（ＨＥＲＭ：ｈａｒｍｏｎｉｃ  ＥＲＭ  ｍｏｔｏｒ）、線形共振アクチュエータ（ＬＲＡ：ｌｉｎｅａｒ  ｒｅｓｏｎａｎｔ  ａｃｔｕａｔｏｒ）、圧電アクチュエータ、高帯域幅アクチュエータ、電気活性高分子（ＥＡＰ：ｅｌｅｃｔｒｏａｃｔｉｖｅ  ｐｏｌｙｍｅｒ）アクチュエータ、静電摩擦ディスプレイ、または超音波振動発生装置でもよい。場合によっては、ハプティック出力装置は、ハプティック出力駆動回路を含み得る。一部の実施形態において、ハプティック出力装置は、単方向式でも双方向式でもよい。
【００２４】
コントローラ１５０は、１つ以上のスピーカを更に含み得る。コントローラ１５０のローカルプロセッサは、またはコントローラ１５０がローカルプロセッサを含まない実施形態におけるプロセッサ１２０は、オーディオ信号をコントローラ１５０の少なくとも１つのスピーカに送信し得る。これにより、この少なくとも１つのスピーカはオーディオ効果を出力する。このスピーカは、例えば、ダイナミックラウドスピーカ、電磁型ラウドスピーカ、圧電型ラウドスピーカ、磁気歪型ラウドスピーカ、静電型ラウドスピーカ、リボン型および平面型マグネチックラウドスピーカ、屈曲波ラウドスピーカ、フラットパネルラウドスピーカ、ハイルエアモーショントランスデューサ、プラズマアークスピーカ、およびデジタルラウドスピーカでもよい。
【００２５】
コントローラ１５０は、１つ以上のセンサを更に含むことができる。センサは、エネルギーの形態、または他の物理的特性、例えば、音、動き、加速度、生体信号、距離、流量、力／圧力／歪み／屈曲、湿度、直線位置、向き／傾斜、無線周波数、回転位置、回転速度、スイッチの操作、温度、振動、または可視光強度などの、ただしこれだけに限定されない、物理的特性を検出するべく構成され得る。センサは、検出されたエネルギーまたは他の物理的特性を電気信号に、または仮想センサ情報を表すいずれかの信号に、変換するべく更に構成され得る。この場合、コントローラ１５０は、変換された信号をコントローラ１５０のローカルプロセッサに、またはコントローラ１５０がローカルプロセッサを含まない実施形態においてはプロセッサ１２０に、送信できる。
【００２６】
図２は、本発明の一例示的実施形態によるユーザ入力要素の可動範囲２００を示す簡略図である。可動範囲２００はトリガ入力要素に関しているが、本発明の各実施形態はさまざまなユーザ入力要素種別に容易に適用され得る。
【００２７】
図２に示されているように、可動範囲２００は、一次範囲２１０および二次範囲２２０Ａ、２２０Ｂを含み得る。また、境界範囲２３０Ａ、２３０Ｂは、一次範囲２１０および二次範囲２２０Ａ、２２０Ｂに部分的に重なるように規定され得る。場合によっては、一次範囲２１０は、ハプティック効果を二次範囲２２０Ａ、２２０Ｂ内および／または境界範囲２３０Ａ、２３０Ｂ内にレンダリングすべく拡張され得る。例えば、ハプティック出力装置がハプティック効果をレンダリングしているときに、ユーザ入力要素は更に引き込まれ得る、および／または更に押し出され得る。
【００２８】
一部の実施形態において、一次範囲２１０および二次範囲２２０Ａ、２２０Ｂは、固定でも可変でもよい。例えば、二次範囲２２０Ａは、最大外方位置から基準位置まで７度の可動範囲を有し得る。一次範囲２１０は、基準位置から指の接地位置（グラウンディング位置）まで２９度の可動範囲を有し得る。二次範囲２２０Ｂは、指の接地位置からトリガの接地位置まで３度の可動範囲を有し得る。この例において、可動範囲２００は合計３９度（７＋２９＋３）になり得る。
【００２９】
ハプティック効果が何も加えられていないとき、ユーザ入力要素の動きは一次範囲２１０に限定され得る。ただし、ハプティック効果が加えられているとき、ユーザ入力要素の動きは二次範囲２２０Ａ、２２０Ｂおよび／または境界範囲２３０Ａ、２３０Ｂに拡張され得る。どちらの場合も、ユーザ入力要素の位置は、０と２５５の間の値範囲を有する８ビットＡＤＣデータなどのアナログ‐デジタル変換（ＡＤＣ：ａｎａｌｏｇ  ｔｏ  ｄｉｇｉｔａｌ  ｃｏｎｖｅｒｓｉｏｎ）データとして表され得る。８ビット位置データが一例として提供されているが、各実施形態はそのように限定されるものではない。１６ビット位置データなど、より高い分解能の位置データも使用され得る。
【００３０】
図３は、本発明の一例示的実施形態によるハプティック効果ソフトウェアスタック３００のブロック図を示す。図３に示されているように、ソフトウェアスタック３００は、装置モジュール３１０、周辺機器ファームウェアモジュール３２０、コントローラモジュール３３０、駆動モジュール３４０、および鳴動駆動モジュール３５０をそれぞれ複数含む。ハプティック効果ソフトウェアスタック３００は、図１のシステム１００などのシステム上に実装される。
【００３１】
装置モジュール３１０は、入力管理コード３１１、周辺機器入力アプリケーションプログラミングインタフェース（ＡＰＩ：ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅ）３１２、鳴動ＡＰＩ３１３、ハプティック効果ＡＰＩ３１４、直接再生／クロスオーバ３１５、トリガエンジン３１６、空間化エンジン３１７、およびエンコーダ３１８などの種々のモジュールを含み得る。
【００３２】
入力管理コード３１１は、装置内で実行されるゲームアプリケーション、または他の種類のアプリケーションとの関連において、コントローラ３３０によって提供される入力を管理する一組のコンピュータ可読命令を含み得る。
【００３３】
周辺機器入力ＡＰＩ３１２は、コントローラ３３０によって提供された入力を受信および管理するために、ゲーム入力管理コード３１１と周辺機器ファームウェア３２０との対話を可能にする一組のコンピュータ可読関数またはルーチンを含み得る。
【００３４】
鳴動ＡＰＩ３１３は、鳴動命令をコントローラ３３０の１つ以上の鳴動モータまたは鳴動アクチュエータ（例えば、図３の鳴動モータＬおよびＲ）に送信するために、入力管理コード３１１が周辺機器ファームウェア３２０と対話できるようにする一組のコンピュータ可読関数またはルーチンを含み得る。また、鳴動命令は、コントローラ３３０の鳴動モータまたは鳴動アクチュエータによって汎用または鳴動ハプティック効果を発生させ得る。
【００３５】
ハプティック効果ＡＰＩ３１４（図３に「ＡＰＩ」として識別）は、ハプティック命令をコントローラ３３０に送信するために、入力管理コード３１１からアクセス可能な、入力管理コード３１１が周辺機器ファームウェア３２０と対話できるようにする一組のコンピュータ可読関数またはルーチンを含み得る。また、ハプティック命令は、コントローラ３３０の１つ以上の対象モータまたは対象アクチュエータによってコントローラ３３０の１つ以上のユーザ入力要素においてハプティック効果を発生させ得る。
【００３６】
ハプティック効果ＡＰＩ３１４は、ハプティック効果の定義を１つ以上格納し得る。ハプティック効果の定義は、ハプティック信号などのハプティックデータを含むデータ構造である。ハプティック効果の定義は事前に定義され、ハプティックファイルまたはハプティックストリームなどの記憶装置内に格納可能であり、ハプティック効果をコントローラ３３０の構成要素またはユーザ入力要素において発生させるために、１つ以上の鳴動モータ、鳴動アクチュエータ、対象モータ、または対象アクチュエータに送信可能である。ハプティックデータは、対応するハプティック効果の属性を１つ以上含むことができる。これら属性はパラメータとして格納可能である。ハプティック効果の定義の例示的パラメータは、振幅パラメータ、周波数パラメータ、波形パラメータ、エンベロープパラメータ、大きさ（または強度）パラメータ、および持続時間パラメータを含み得る。
【００３７】
ハプティック効果ＡＰＩ３１４は、ゲーム入力管理コード３１１と直接再生／クロスオーバ３１５、トリガエンジン３１６、および空間化エンジン３１７との対話を可能にし得る。ハプティック効果ＡＰＩ３１４は、更に、ゲーム入力管理コード３１１によって引き起こされた要求に従って、直接再生／クロスオーバ３１５、トリガエンジン３１６、および空間化エンジン３１７を管理し得る。更に、ハプティック効果ＡＰＩ３１４は、周辺機器ファームウェア３２０との通信のために使用される、および１つ以上のハプティック効果を発生させるために使用される、データを格納し得る。
【００３８】
直接再生／クロスオーバ３１５は、ハプティックデータを入力として受信し、ハプティックデータを出力として生成し、ハプティックデータをコントローラ３３０の１つ以上の対象モータまたは対象アクチュエータ（例えば、図３のモータＬおよびＲ）に送信し得る。一部の実施形態において、直接再生／クロスオーバ３１５は、入力されたハプティックデータのフォーマットを変更せずに、入力されたハプティックデータを直接出力し得る。これにより、入力されたハプティックデータが「そのまま」再生される。他の複数の実施形態において、直接再生／クロスオーバ３１５は、入力されたハプティックデータを第１のフォーマットから第２のフォーマットに変換し得る。更に、直接再生／クロスオーバ３１５は、変換されたハプティックデータを出力できる。再生の種類によっては、直接再生／クロスオーバ３１５は、ハプティックデータを変換するために、プログラム可能なクロスオーバを必要に応じて使用し得る。ハプティックデータを変換することによって、装置モジュールはハプティック効果を分解し、ハプティック効果を複数のアクチュエータにおいて再生し得る。
【００３９】
ハプティックデータのフォーマットは、ハプティックエレメンタリストリーム（ＨＥＳ：ｈａｐｔｉｃ  ｅｌｅｍｅｎｔａｒｙ  ｓｔｒｅａｍ）フォーマットでもよい。ＨＥＳフォーマットは、装置にストリーミングされ得るハプティックデータを表すためのファイルまたはデータのフォーマットである。ハプティックデータはＨＥＳフォーマット内で暗号化可能であるが、ハプティックデータは非圧縮音の表現方法と同一または同様であるようにも表現可能である。
【００４０】
トリガエンジン３１６は、ハプティック効果の定義などのハプティックデータを受信し得る、更に、トリガデータ３２３などのユーザ入力データに基づき、ハプティックデータを変更し得る。トリガデータは、コントローラの１つ以上のトリガ（例えば、図３のトリガＬおよびＲ）の位置および／または範囲を示すパラメータを１つ以上含むデータである。トリガエンジン３１６は、更に、ハプティック命令をコントローラ３３０に送信し得る。例えば、トリガエンジン３１６は、ハプティック命令をコントローラ３３０の種々のユーザ入力要素に送信し得る。上述のように、ハプティック命令は、コントローラ３３０の１つ以上の対象モータまたは対象アクチュエータによってハプティック効果をコントローラ３３０の１つ以上のユーザ入力要素において発生させ得る。
【００４１】
空間化エンジン３１７は、ハプティックデータを受信し得る、更に、空間化データに基づき、このハプティックデータを変更し得る。空間化データは、それぞれのユーザ入力要素に対するハプティック効果の順番付けなど、ハプティック効果の所望の方向および／または流れを示すデータを含み得る。いくつかの実施形態において、空間化エンジン３１７は、入力された管理コード３１１から方向および／または流れを含む空間化データを受信し得る。
【００４２】
空間化エンジン３１７は、トリガハプティック効果などのハプティック効果がコントローラ３３０の１つ以上の鳴動モータまたは鳴動アクチュエータ（例えば、図３の鳴動モータＬおよびＲ）のために変倍されるように、およびこのハプティック効果がコントローラ３３０の１つ以上の対象モータまたは対象アクチュエータ（例えば、図３に示されているようにモータＬおよびＲ）のためにも変倍されるように、ハプティックデータを変更し得る。換言すると、ハプティック効果全体の流れおよび方向感覚を伝達するために、空間化エンジン３１７は、各モータまたはアクチュエータに送られるハプティックデータを変更し、故に、各モータまたはアクチュエータにおいて知覚されるハプティック効果を変更し得る。例えば、モータまたはアクチュエータにおいて知覚されるハプティック効果を強調するために、空間化エンジン３１７はハプティック効果の１つ以上の部分を変倍し得る。例えば、空間化エンジン３１７は、ハプティック効果を知覚させるモータまたはアクチュエータに送信されるハプティックデータを変倍して、ハプティック効果をより目立たせ得る（例えば、規模、持続時間、等々の増大）。更に、空間化エンジン３１７は、他のモータまたはアクチュエータに送信されるハプティックデータを変倍して、これらモータまたはアクチュエータにおいて知覚される他のハプティック効果をより目立たなくさせ得る（例えば、規模、持続時間、等々の縮小）。一部の実施形態において、空間化エンジン３１７はハプティックデータをリアルタイムで、またはほぼリアルタイムで、変更し得る。更に、一部の実施形態において、ハプティック効果全体を誇張するために、空間化エンジン３１７は、入力とモータ、またはアクチュエータ、出力との間に非線形関係を有し得る。
【００４３】
エンコーダ３１８は、直接再生／クロスオーバ３１５、トリガエンジン３１６、および／または空間化エンジン３１７から受信されたハプティックデータを或るフォーマットに符号化する。１つの実施形態において、このフォーマットはＨＥＳフォーマットでもよい。エンコーダ３１８は、符号化されたハプティックデータを周辺機器ファームウェア３２０に送信し得る。
【００４４】
周辺機器ファームウェア３２０は、１つ以上の周辺装置（例えば、コントローラ）用のファームウェアである。周辺機器ファームウェア３２０は、デコーダおよびクロスオーバ３２１、トリガ制御３２２、トリガデータ３２３、他の機能３２４、および鳴動制御３２５などの種々のモジュールを含み得る。
【００４５】
デコーダおよびクロスオーバ３２１は、符号化されたハプティックデータをエンコーダ３１８から受信し、符号化されたハプティックデータを復号し得る。一部の実施形態において、デコーダおよびクロスオーバ３２１は、符号化されたハプティックデータを復号化するために、プログラム可能なクロスオーバを計算する。デコーダおよびクロスオーバ３２１は、プログラム可能なクロスオーバをリアルタイムで計算し得る。
【００４６】
トリガ制御３２２は、コントローラ３３０の１つ以上の対象モータまたは対象アクチュエータ（例えば、図３のモータＬおよびＲ）のための低レベルの制御ＡＰＩである。トリガ制御３２２は、トリガ命令を受信し、このトリガ命令をコントローラ３３０の指定された対象モータまたは対象アクチュエータ用の低レベルのトリガ命令に変換し、この低レベルのトリガ命令をコントローラ３３０の指定された対象モータまたは対象アクチュエータに送信し得る。この低レベルのトリガ命令は、指定された対象モータまたは対象アクチュエータによってトリガハプティック効果をコントローラ３３０の指定されたトリガにおいて発生させ得る。
【００４７】
トリガデータ３２３は、上述のように、コントローラ３３０の１つ以上のトリガ（例えば、図３のトリガＬおよびＲ）の位置および／または範囲を示すパラメータを１つ以上含むデータである。トリガデータ３２３は、周辺機器ファームウェア３２０によってコントローラ３３０から受信され得る。周辺機器ファームウェア３２０は、更にトリガデータ３２３を格納し、このトリガデータ３２３を更に装置モジュール３１０に送信し得る。
【００４８】
他のゲームパッド機能３２４は、周辺機器ファームウェア３２０によって管理されるコントローラ３３０の機能でもよい。このような機能は、有線／無線通信、入力報告、プロトコルの実施、電力管理、等々の機能を含み得る。
【００４９】
鳴動制御３２５は、コントローラ３３０の１つ以上の鳴動モータまたは鳴動アクチュエータ（例えば、図３の鳴動モータＬおよびＲ）のための低レベルの制御ＡＰＩである。鳴動制御３２５は、鳴動命令を受信し、この鳴動命令をコントローラ３３０の指定された鳴動モータまたは鳴動アクチュエータ用の低レベルの鳴動命令に変換し、この低レベルのトリガ命令をコントローラ３３０の指定された鳴動モータまたは鳴動アクチュエータに送信し得る。
【００５０】
トリガ再変倍モジュール３２６は、各ユーザ入力要素の位置とコントローラ３３０内のそれぞれ対応するハプティック出力装置の状態とを監視するモジュラーファームウェアモジュールである。例えば、トリガ再変倍モジュール３２６は、ユーザ入力をホスト装置が期待する範囲に再変倍する。場合によっては、トリガ再変倍モジュール３２６は、ユーザ入力を範囲［０，１２７］に再変倍し得る。他の場合、トリガ再変倍モジュール３２６は、ユーザ入力を範囲［０，２５５］に再変倍し得る。さまざまな構成において、トリガ再変倍モジュール３２６は、いずれのアナログ入力にも適用され得る。場合によっては、ハードウェアに依存しないファームウェアの部分はハードウェアに依存する部分から分離され得る。ここで、ハードウェアに依存しないファームウェアは、関数ポインタを使用することによって、ハードウェアに依存するファームウェアと対話し得る。
【００５１】
コントローラ３３０は、トリガＬおよびＲを含み得る。コントローラ３３０は、ギアボックスＬおよびＲとモータＬおよびＲとを更に含み得る。モータＬおよびギアボックスＬは、コントローラ３３０内でトリガＬに作動的に結合される。同様に、モータＲおよびギアボックスＲは、コントローラ３３０内でトリガＲに作動的に結合される。モータＬがトリガ命令を受信すると、モータＬおよびギアボックスＬは共同でトリガハプティック効果をトリガＬにおいて知覚させ得る。同様に、モータＲがトリガ命令を受信すると、モータＲおよびギアボックスＲは共同でトリガハプティック効果をトリガＲにおいて知覚させ得る。周辺機器ファームウェア３２０は、駆動用電子回路３４０を用いて、トリガ命令をコントローラ３３０のモータＬおよびＲに送信し得る。
【００５２】
コントローラ３３０は、ポテンショメータＬおよびＲを更に含み得る。ポテンショメータＬは、トリガＬの位置および／または範囲を検出し、更にトリガＬの検出された位置および／または範囲をトリガデータとして周辺機器ファームウェア３２０に送信し得る。同様に、ポテンショメータＲは、トリガＲの位置および／または範囲を検出し、更にトリガＲの検出された位置および／または範囲をトリガデータとして周辺機器ファームウェア３２０に送信し得る。
【００５３】
コントローラ３３０は鳴動モータＬおよびＲを更に含み得る。鳴動モータＬが鳴動命令を受信すると、鳴動モータＬはハプティック効果をコントローラ３３０の左側構成要素に沿って知覚させる。同様に、鳴動モータＲが鳴動命令を受信すると、鳴動モータＲはハプティック効果をコントローラ３３０の右側構成要素に沿って知覚させる。周辺機器ファームウェア３２０は、鳴動駆動用電子回路３５０を用いて、鳴動命令を鳴動モータＬおよびＲに送信し得る。
【００５４】
図４は、本発明の一例示的実施形態によるハプティック出力装置に対応付けられたユーザ入力要素を制御するための機能４００の流れ図を示す。場合によっては、図４（および以下の図５）の流れ図の機能は、メモリまたは他のコンピュータ可読または有形媒体に格納されたソフトウェアによって実現され、プロセッサによって実行され得る。他の複数の実施形態において、この機能は、ハードウェア（例えば、特定用途向け集積回路（ＡＳＩＣ：ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）を用いて）、プログラマブルゲートアレイ（ＰＧＡ：ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ：ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、等々）、またはハードウェアおよびソフトウェアのいずれかの組み合わせによって実施され得る。
【００５５】
初めに、４１０において、機能４００は、ハプティック出力装置に対応付けられたユーザ入力要素のための位置の一次および二次範囲を規定し得る。次に、４２０において、機能４００は、ハプティック出力装置に対応付けられたユーザ入力要素のための位置の境界範囲を規定し得る。この境界範囲は、一次および二次範囲の各々に部分的に重なる。これら種々の範囲の規定後、４３０において、機能４００はユーザ入力要素の位置を監視する。最後に、４４０において、ユーザ入力要素が境界範囲内の位置に入ると、ハプティック効果（単数または複数）がレンダリングされ得る。ここで、ハプティック効果（単数または複数）は、ユーザ入力要素の位置を一方の二次範囲内まで拡張し得る。また、ハプティック効果（単数または複数）をレンダリングするためのハプティック命令は、ゲームアプリケーションなどのソフトウェアアプリケーションによって生成され得る。機能４００を用いることによって、ユーザ入力要素の範囲および機能が拡張され、より広範囲のハプティック効果をエンドユーザに知覚させることができる。
【００５６】
図５は、本発明の別の例示的実施形態によるハプティック出力装置に対応付けられたユーザ入力要素を制御するための機能５００の流れ図を示す。
【００５７】
最初に、５１０において、コントローラのユーザ入力要素が初期化され得る。ここで、機能５００は、ユーザ入力要素のための位置および範囲情報を最初に設定し得る。例えば、一次範囲、二次範囲（単数または複数）、および境界範囲（単数または複数）が最初に設定され得る。場合によっては、これらの値は、最大外方位置から接地位置までのユーザ入力装置の移動に基づき、算出され得る。
【００５８】
次に、５２０において、機能５００は、ユーザ入力要素のためのプロファイルを算出する。算出されたプロファイルは、ユーザ入力装置の各位置をＡＤＣ値にマッピングし得る。例えば、５２０の算出されたプロファイルは、ユーザ入力装置の各位置を０と２５５の間のＡＤＣ値にマッピングし得る。
【００５９】
算出されるプロファイルは、増加または減少プロファイルのどちらかを利用し得る。例えば、ユーザ入力値の位置が８ビットＡＤＣデータから読み出されると、増加プロファイルは値［０，２５５］を生成する。同様に、８ビットＡＤＣデータから読み出されると、減少プロファイルは値［２５５，０］を生成する。
【００６０】
その後、５３０において、機能５００は、正規化（標準化）プロファイルを算出する。この正規化プロファイルは、二次および／または境界範囲をＡＤＣデータから除去することによって算出され得る。例えば、５３０の算出された正規化プロファイルは、ユーザ入力装置の、二次および／または境界位置以外の、各位置を０と２５５の間のＡＤＣ値にマッピングし得る。
【００６１】
場合によっては、ユーザ入力要素の休止位置はさまざまな時点において変化し得る。例えば、さまざまなユーザ入力装置の使用後、ユーザ対話が除かれたときに、これらユーザ入力装置のうちのいくつかは同じ休止位置に戻らないこともある。そのような場合、機能５００は、５４０において、このようなユーザ入力要素のために算出されたプロファイルおよび算出された正規化プロファイルを調整し得る。したがって、ユーザ入力要素の位置を監視しているときは、変化した休止位置（単数または複数）が考慮され得る。
【００６２】
図６は、本発明の一例示的実施形態による、トリガ６１０が移動する開放拡張移動範囲６２０を作る外側ばね６００を含み、トリガ６１０がこの開放拡張移動範囲６２０の外側の最大開位置にあるときのコントローラを示す。より具体的には、図６は、トリガ６１０を開放拡張移動範囲６２０の外側の最大開位置に保持する外側ばね６００を含むコントローラを示す。力がトリガ６１０に加わると、外側ばね６００はトリガ６１０を開放拡張移動範囲６２０まで回転または別の動きをさせることができる。図６は、図６０１および図６０２を含む。図６０１においては、図６の図平面に垂直な軸線に沿ってトリガ６１０を引くことも押すこともできるので、トリガ６１０は開放拡張移動範囲６２０の外側の最大開位置にある。図６０２において、トリガ６１０は、開放拡張移動範囲６２０の内側の最大開位置にある。ここで、トリガ６１０を引き戻すことはできるが、図６の図平面に垂直な軸線に沿って更に押し出すことはできないので、トリガ６１０は開放拡張移動範囲６２０内で更に拡張される。図示の実施形態において、外側ばね６００はハプティック減少防止用構成要素の一例であり、トリガ６１０と外側回転ハードストップ、またはコントローラのハウジングの外側部分、との間に位置付けられる。ユーザは、空間化ハプティック効果を受けているときに自分の指をコントローラのトリガ上に軽く載せておくことができるので、拡張移動範囲の外側の最大開位置は空間化のために重要であり得る。トリガ（トリガ６１０など）が開放拡張移動範囲（開放拡張移動範囲６２０など）の外側の最大開位置にあるときにトリガハプティック効果の大きさを増大するために、トリガを外側ばね（外側ばね６００など）によって偏移させることができるので、開放拡張移動範囲の外側の最大開位置にあるときに、トリガに加えられた力に対する応答として、トリガは拡張移動範囲内で移動可能である。
【００６３】
図６０１は、トリガ６１０が開放拡張移動範囲６２０の外側の最大開位置にあるときに、トリガ６１０が外側回転ハードストップに、またはコントローラのハウジングの外側部分に、静止またはその他の接触をしないように、外側ばね６００がトリガ６１０を或る位置に保持しているコントローラの図である。換言すると、外側ばね６００は、開放拡張移動範囲６２０を作る。ここで、開放拡張移動範囲６２０は、対象モータまたはアクチュエータが発生させた力がトリガ６１０に加えられたことへの応答として、トリガ６１０がその内部で回転、またはその他の動きをすることができる、範囲である。開放拡張移動範囲６２０を作ることによって、トリガ６１０に加えられた力への応答として、トリガ６１０が回転、またはその他の動きをすると、外側ばね６００は、トリガ６１０が外側回転ハードストップに、またはハウジングの外側部分に、乗り上げることを防止できる。これにより、トリガ６１０において知覚されるトリガハプティック効果（例えば、運動感覚ハプティック効果）の規模を増大できる。図示の実施形態において、外側ばね６００は、レバーアーム６０５を含む片持ちばねである。トリガ６１０を上記位置に保持するために、レバーアーム６０５はトリガ６１０に押し当たる、または別様に接触する。一代替実施形態において、外側ばね６００は、トリガ６１０に押し当たる、または別様に接触する、圧縮ばね、付勢ばね、または何らか他の種類のばね、にすることができる。さまざまな種類のばねが使用され得るが、各実施形態はそのように限定されるものではなく、他の変形機構も使用され得る。
【００６４】
図６０２は、対象モータまたはアクチュエータが力をトリガ６１０に加え、この力への応答として、トリガ６１０が回転、またはその他の動きをする、コントローラの図である。図６の図６０２に示されているように、トリガ６１０は開放拡張移動範囲６２０内まで回転、またはその他の動きをし、開放拡張移動範囲６２０の少なくとも一部を占める。図示の実施形態において、トリガ６１０はレバーアーム６０５に押し当たる、または別様に接触する。これにより、レバーアーム６０５が動かされるので、トリガ６１０は拡張移動範囲６２０内まで回転またはその他の動きをすることができる。外側ばね６００が圧縮ばね、偏倚ばね、または別種のばねである一代替実施形態において、トリガ６１０は外側ばね６００に押し当たる、または別様に接触できる。これにより、外側ばね６００を動かすことができるので、トリガ６１０は開放拡張移動範囲６２０内まで回転またはその他の動きをすることができる。
【００６５】
一代替実施形態においては、外側ばね６００を内側ばねに交換できる。内側ばねは、トリガ６１０と内側回転ハードストップ、またはコントローラのハウジングの内側部分、との間に位置付け可能である。更に、トリガ６１０が外側回転ハードストップ、またはコントローラのハウジングの外側部分に静止またはその他の接触をしないように（すなわち、拡張移動範囲６２０が作られるように）、内側ばねはトリガ６１０を引っ張ることができる。この代替実施形態において、トリガ６１０が内側の回転ハードストップに、またはコントローラのハウジングの内側部分に、静止しているように、またはそこにその他の接触をしているように、トリガ６１０を引っ張ることを回避するために、内側ばねの剛性を算出できる。
【００６６】
図７は、本発明の一例示的実施形態による、閉鎖拡張移動範囲７３０を作る拡張フレーム７００を含み、トリガ７１０がこの閉鎖拡張移動範囲７３０の外側の最大閉位置にあるときにトリガ７１０をこの閉鎖拡張移動範囲７３０内で移動させるコントローラを示す。図示の実施形態において、拡張フレーム７００はハプティック減少防止用構成要素の一例であり、更にはコントローラのハウジングの外側部分の拡張部分である。上述のように、標準的なトリガ設計においては、トリガ（トリガ７１０など）が最大閉位置にあるとき（例えば、ユーザがトリガを完全に押し込んでトリガがハウジングの内側部分に乗り上げているとき）、トリガハプティック効果は大幅に減少され得る。トリガが閉鎖拡張移動範囲の外側の最大閉位置にあるときにトリガハプティック効果を増大するために、拡張フレーム（拡張フレーム７００など）は、トリガを動かす物体（物体７２０など）のための接地位置として使用可能である。この状況においては、トリガが閉鎖拡張移動範囲の外側の最大閉位置まで完全に動いたときでさえ、トリガは依然として物体に逆らって動くことができ、かなりのハプティックフィードバック感覚をトリガにおいて発生させることができる。
【００６７】
図７は、図７０１および図７０２を含む。図７０１は、物体７２０（例えば、ユーザの指）がトリガ７１０を押した、引いた、または別様に動かしたときのコントローラの図であり、物体７２０は拡張フレーム７００に乗り上げている（すなわち、底止している）。物体７２０が拡張フレーム７００に乗り上げているので、トリガ７１０が閉鎖拡張移動範囲７３０の外側の最大閉位置にあるとき、トリガ７１０は内側回転ハードストップに、またはコントローラのハウジングの内側部分に静止またはその他の接触をしていない。換言すると、拡張フレーム７００は閉鎖拡張移動範囲７３０を作る。この閉鎖拡張移動範囲７３０は、対象モータまたはアクチュエータが発生させてトリガ７１０に加えた力への応答として、トリガ７１０がその中で回転またはその他の動きをすることができる、範囲である。閉鎖拡張移動範囲７３０を作ることによって、拡張フレーム７００は、トリガ７１０に加えられた力への応答として、トリガ７１０が回転またはその他の動きをするときに、トリガ７１０が内側回転ハードストップに、またはハウジングの内側部分に、乗り上げることを防止できる。これにより、トリガ７１０において知覚されるトリガハプティック効果（例えば、運動感覚ハプティック効果）の大きさを増大できる。
【００６８】
図７０２は、対象モータまたはアクチュエータが力をトリガ７１０に加え、この力への応答として、トリガ７１０が回転、またはその他の動きをする、コントローラの図である。図７の図７０２に示されているように、トリガ７１０は、閉鎖拡張移動範囲７３０内まで回転、またはその他の動きをし、閉鎖拡張移動範囲７３０の少なくとも一部を占める。
【００６９】
一代替実施形態において、拡張フレーム７００は内側ばねに交換可能である。内側ばねは、トリガ７１０と内側回転ハードストップ、またはコントローラのハウジングの内側部分、との間に位置付け可能である。更に、トリガ７１０が内側回転ハードストップに、またはコントローラのハウジングの内側部分に静止またはその他の接触をしないように（すなわち、閉鎖拡張移動範囲７３０が作られるように）、物体７２０がトリガ７１０を押した、引いた、または別様に動かしたときに、内側ばねはトリガ７１０を押すことができる。この代替実施形態において、トリガ７１０が内側回転ハードストップに、またはコントローラのハウジングの内側部分に静止またはその他の接触をすることを防止するために十分な抵抗を提供するために、内側ばねの剛性を算出できる。
【００７０】
図８は、本発明の各実施形態での使用に適したコントローラ８００の機能ブロック図を示す。
【００７１】
図８に示されているように、コントローラ８００は、種々のユーザ入力要素を１つ以上含み得る。ユーザ入力要素は、ホストコンピュータ８０４との対話のためにユーザによって操作されるいずれかのインタフェース装置を指し得る。例示的ユーザ入力要素として、アナログまたはデジタルジョイスティック８１０、ボタン８１４、トリガ８１８、等々が挙げられる。当業者によって理解されるように、１つ以上のユーザ入力要素の各々はコントローラ８００上に含まれ得る。例えば、トリガ８１８についての本説明は、コントローラ８００を単一のトリガに限定するものではない。同様に、当業者は、複数のアナログまたはデジタルスティック、ボタン、および他のユーザ入力要素が使用され得ることを理解されるであろう。
【００７２】
コントローラ８００は、ローカルプロセッサ８０８を含み得る。ローカルプロセッサ８０８は、接続８０５を介して、ホストコンピュータ８０４とコマンドおよびデータをやり取りし得る。接続８０５は、当業者には公知の１つ以上の通信プロトコルを用いた有線または無線接続にし得る。場合によっては、コントローラ８００は代替的に、ローカルプロセッサ８０８を含まないように構成され得る。ここで、コントローラ８００からの入力／出力信号は、ホストコンピュータ８０４によって直接操作および処理され得る。ホストコンピュータ８０４はゲーム装置コンソールでもよく、ディスプレイ装置８０６はゲーム装置コンソールに作動的に結合されたスクリーンでもよい。場合によっては、ホストコンピュータ８０４とディスプレイ装置８０６とは単一の装置に組み合わされ得る。
【００７３】
コントローラ８００は、ユーザの手が通常置かれるハウジング８０２の場所に作動的に結合された１つ以上の汎用または鳴動アクチュエータ８２２、８２４と同様に、そのユーザ入力要素の各々を直接駆動するための対象アクチュエータ８１２、８１６、８２０（例えば、モータ）を含み得る。より具体的には、アナログまたはデジタルスティック８１０は、そこに作動的に結合された対象アクチュエータまたはモータ８１２を含み、ボタン８１４は、そこに作動的に結合された対象アクチュエータまたはモータ８１６を含み、トリガ８１８は、そこに作動的に結合された対象アクチュエータまたはモータ８２０を含む。複数の対象アクチュエータに加え、コントローラ８００は、そのユーザ入力要素の各々に作動的に結合された位置センサを含む。より具体的には、アナログまたはデジタルスティック８１０は、そこに作動的に結合された位置センサ８１１を含み、ボタン８１４は、そこに作動的に結合された位置センサ８１５を含み、トリガ８１８は、そこに作動的に結合された位置センサ８１９を含む。ローカルプロセッサ８０８は、アナログまたはデジタルスティック８１０、ボタン８１４、およびトリガ８１８のそれぞれの位置センサ８１１、８１５、８１９と同様に対象アクチュエータ８１２、８１６および８２０に作動的に結合される。位置センサ８１１、８１５、８１９から受信された信号への応答として、ローカルプロセッサ８０８は、方向付けられた、または的を絞った、運動感覚効果をアナログまたはデジタルスティック８１０、ボタン８１４、およびトリガ８１８にそれぞれ直接提供するべく対象アクチュエータ８１２、８１６、８２０に命令する。このような的を絞った運動感覚効果は、汎用アクチュエータ８２２、８２４がコントローラの本体全体に沿って発生させる汎用または鳴動ハプティック効果から識別可能または区別可能である。集合的ハプティック効果は、複数の様式が同時に関与するので（例えば、ビデオ、オーディオ、およびハプティック）より大きな没入感覚をユーザに提供する。
【００７４】
図９Ａおよび図９Ｂは、本発明の各実施形態での使用に適したコントローラ９００の異なる図を示す。図９Ａおよび図９Ｂに示されているように、コントローラ９００は、ハウジング９０２、アナログまたはデジタルジョイスティック９１０、ボタン（単数または複数）９１４、トリガ９１８、および鳴動アクチュエータ９２２および９２４など、さまざまな構成要素を含み得る。
【００７５】
ハウジング９０２は、ユーザによるコントローラ９００の把持を容易に受け止めるべく形作られる。コントローラ９００は、コントローラの一例示的実施形態であり、本発明の各実施形態は他のコントローラ形状にも容易に適用され得る。
【００７６】
したがって、本発明の各実施形態はユーザ入力要素の範囲および機能を拡張する。また、ユーザ入力要素の複数の規定可能な位置においてハプティック効果をレンダリングすることによって、より広範囲のハプティック効果を実現させることができる。
【００７７】
本発明は、前述のように、複数のステップを異なる順番で、および／または複数の要素を開示されているものとは異なる構成で、実施され得ることを当業者は容易に理解するであろう。したがって、これら好適な実施形態に基づき本発明を説明してきたが、本発明の趣旨および範囲内に留まりながら、特定の変更例、変形例、および代替構造が明らかであろうことは当業者には明らかであろう。したがって、本発明の範囲を判定するには、添付の特許請求の範囲を参照されるべきである。
【図１】
0006735747.tif 000002
【図２】
0006735747.tif 000003
【図３】
0006735747.tif 000004
【図４】
0006735747.tif 000005
【図５】
0006735747.tif 000006
【図６】
0006735747.tif 000007
【図７】
0006735747.tif 000008
【図８】
0006735747.tif 000009
【図９Ａ】
0006735747.tif 000010
【図９Ｂ】
0006735747.tif 000011