(58)【調査した分野】(Int.Cl.,DB名)
プロセッサによって実行されたときに、請求項10から13のいずれかの方法を実行することによって、前記プロセッサに、ユーザ入力エレメントにおいて経験されるハプティック効果を修正させる、記録された指示を有する非一時的コンピュータ可読媒体。
【発明を実施するための形態】
【0007】
一実施形態では、周辺機器のトリガまたは他のユーザ入力エレメントでトリガハプティック効果等のハプティックフィードバックを生み出す、コントローラまたはゲームパッド等の周辺機器を提供することができる。周辺機器には、ハウジングと、トリガと、モータまたはアクチュエータ等のハプティック出力デバイスと、スプリングまたはフレーム等の一つ以上のハプティック減少防止コンポーネントとを含むことができる。周辺機器は、プロセッサからハプティック信号等のハプティックデータを受信することができる。ハプティック出力デバイスは、受信したハプティックデータに応じて、トリガへの力を出力することができる。ハプティック減少防止コンポーネントは、トリガがレンジ外の最大開位置(maximum open position)またはレンジ外の最大閉位置(maximum closed position)にあるときにトリガがハプティック出力デバイスにより出力された力に応じて移動するためのレンジがハウジング内に設けられるように、配置することができる。このレンジは、トリガが開延長トラベルレンジ(open extended travel range)外の最大開位置にあるときの開延長トラベルレンジであってよい。このレンジは、トリガが閉延長トラベルレンジ(closed extended travel range)外の最大閉位置にあるときの閉延長トラベルレンジであってもよい。ハプティック減少防止コンポーネントは、このレンジを設けることにより、トリガがレンジ外の最大開位置またはレンジ外の最大閉位置にあるときのハプティックフィードバック(例えば、トリガハプティック効果)のマグニチュード(magnitude)を増加させることができる。換言すれば、ハプティック増幅コンポーネントによって、トリガがレンジ外の最大開位置またはレンジ外の最大閉位置にあるときにハプティックフィードバックのマグニチュードが減少するのを防ぐことができる。ハプティック減少防止コンポーネントは、ハプティック増幅コンポーネントとしても識別できる。
【0008】
例えば、ハプティック減少防止コンポーネントがスプリングである場合、トリガがハウジングの外側部分に対してぶつかるのを防止するようにスプリングを配置することができる。これにより、トリガとハウジングの外側部分との間に開延長トラベルレンジが設けられる。したがって、トリガが開延長トラベルレンジ外の最大開位置にあるときにトリガに力が加えられると、トリガは、設けられた開延長トラベルレンジ内を移動することができる。別の例として、ハプティック減少防止コンポーネントがフレームである場合、オブジェクトがハウジングの外側部分ではなくフレームに対してぶつかるようにすることにより、オブジェクトがトリガを押したときまたは引いたときにトリガがハウジングの内側部分に対してぶつかるのを防止するようにフレームを配置することができる。これにより、トリガとハウジングの内側部分との間に閉延長トラベルレンジが設けられる。したがって、トリガが閉延長トラベルレンジ外の最大閉位置にあるときにトリガに力が加えられると、トリガは、設けられた閉延長トラベルレンジ内を移動することができる。
【0009】
別の実施形態では、周辺機器には、ハウジングと、ユーザ入力エレメント(例えば、アナログまたはデジタルスティック、ボタンなど)と、モータまたはアクチュエータ等のハプティック出力デバイスと、スプリングまたはフレーム等の一つ以上のハプティック減少防止コンポーネントとを含むことができる。周辺機器は、プロセッサからハプティック信号等のハプティックデータを受信することができる。ハプティック出力デバイスは、受信したハプティックデータに応じて、ユーザ入力エレメントへの力を出力することができる。ユーザ入力エレメントがレンジ外の最大開位置またはレンジ外の最大閉位置にあるときにユーザ入力エレメントがハプティック出力デバイスにより出力された力に応じて移動するためのレンジがハウジング内に設けられるように、ハプティック減少防止コンポーネントを配置することができる。ハプティック減少防止コンポーネントは、このレンジを設けることにより、ユーザ入力エレメントがレンジ外の最大開位置またはレンジ外の最大閉位置にあるときのハプティックフィードバック(例えば、ハプティック効果)のマグニチュードを増加させることができる。換言すれば、ハプティック減少防止コンポーネントは、ユーザ入力エレメントがレンジ外の最大開位置またはレンジ外の最大閉位置にあるときにハプティックフィードバックのマグニチュードが減少するのを防止することができる。
【0010】
図1は、本発明の一実施形態に係るシステム10のブロック図である。一実施形態では、システム10は、デバイス(例えば、パーソナルコンピュータ、またはビデオゲームコンソール等のコンソール)の一部であり、システム10は、デバイスにトリガハプティック効果修正機能を提供する。別の実施形態では、システム10は、デバイス(例えば、パーソナルコンピュータまたはコンソール)とは別々であり、デバイスに上述の機能を遠隔で提供する。単一のシステムとして図示されているが、システム10の機能は、分散システムとして実装されてもよい。システム10は、バス12または他の情報通信用の通信機構と、情報処理のためにバス12に動作可能に結合されたプロセッサ22とを含む。プロセッサ22は、任意のタイプの汎用または特殊目的プロセッサであればよい。システム10は、プロセッサ22により実行される情報および命令を記憶するためのメモリ14をさらに含む。メモリ14は、ランダムアクセスメモリ(「RAM:random access memory」)、リードオンリメモリ(「ROM:read only memory」)、磁気もしくは光ディスク等のスタティックストレージデバイス、または他の任意のタイプのコンピュータ可読媒体の任意の組み合わせで構成することができる。
【0011】
コンピュータ可読媒体は、プロセッサ22がアクセスできる任意の利用可能な媒体であればよく、揮発性および不揮発性媒体、取外し可能および取り外し不能媒体、通信媒体、ならびに記憶媒体を含みうる。通信媒体は、搬送波または他の転送機構等の変調データ信号にコンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを含むことができ、公知技術の他の任意の形の情報送達媒体を含みうる。記憶媒体は、RAM、フラッシュメモリ、ROM、消去可能プログラム可能リードオンリメモリ(「EPROM:erasable programmable read−only memory」)、電気的消去可能プログラム可能リードオンリメモリ(「EEPROM:electrically erasable programmable read−only memory」)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスクリードオンリメモリ(「CD‐ROM:compact disk read−only memory」)、または公知技術の他の任意の形の記憶媒体を含みうる。
【0012】
一実施形態では、メモリ14は、プロセッサ22により実行されたときに機能を提供するソフトウェアモジュールを記憶する。モジュールは、一実施形態では、システム10ならびにデバイス全体の残りの部分にオペレーティングシステム機能を提供するオペレーティングシステム15を含む。モジュールは、トリガで経験されるハプティック効果を修正するハプティックトリガ修正モジュール16をさらに含む。ある実施形態では、ハプティックトリガ修正モジュール16は、複数のモジュールを含み、各モジュールが、トリガで経験されるハプティック効果を修正するための特定の個々の機能を提供してもよい。システム10は、コントローラ30等の周辺機器に制御機能を提供しうる周辺ファームウェア等、追加の機能を含むための一つ以上の追加のアプリケーションモジュール18を典型的に含む。
【0013】
システム10は、リモートソースからデータを送信および/または受信する実施形態では、赤外線、無線、Wi‐Fiまたはセルラネットワーク通信等の移動無線ネットワーク通信を提供するための、ネットワークインタフェースカード等の通信デバイス20をさらに含む。他の実施形態では、通信デバイス20は、イーサネット(登録商標)接続またはモデム等の有線ネットワーク接続を提供する。
【0014】
システム10は、コントローラ30に動作可能に接続される。コントローラ30は、システム10に入力を提供するために用いられる周辺機器である。コントローラ30は、無線接続または有線接続を用いてシステム10に動作可能に接続することができる。コントローラ30は、無線接続または有線接続を用いてシステム10と通信しうるローカルプロセッサをさらに含むことができる。あるいは、コントローラ30は、ローカルプロセッサを含まないように構成されてもよく、コントローラ30に関連する全ての入力信号および/または出力信号が、システム10のプロセッサ22により直接対処および処理されてもよい。
【0015】
コントローラ30は、ユーザが相互作用することができ、システム10に入力を提供することができる、一つ以上のデジタルボタン、一つ以上のアナログボタン、一つ以上のバンパ、一つ以上の方向パッド、一つ以上のアナログもしくはデジタルスティック、一つ以上のハンドル、および/または一つ以上のユーザ入力エレメントをさらに含むことができる。コントローラ30は、ユーザがさらに相互作用することができ、システム10にさらに入力を提供することができる、一つ以上のアナログまたはデジタルトリガボタン(または「トリガ」)も含むことができる。より詳細に後述するように、コントローラ30には、コントローラ30の少なくとも一つのトリガに対して双方向押/引力を及ぼすように構成された、モータまたは別のタイプのアクチュエータもしくはハプティック出力デバイスをさらに含むことができる。
【0016】
コントローラ30は、一つ以上のアクチュエータまたは他のタイプのハプティック出力デバイスも含むこともできる。コントローラ30のローカルプロセッサ、またはコントローラ30がローカルプロセッサを含まない実施形態におけるプロセッサ22は、コントローラ30の少なくとも一つのアクチュエータに、ハプティック効果に関連したハプティック信号を送信すればよい。次に、アクチュエータが、ハプティック信号に応じて振動触知ハプティック効果、運動感覚ハプティック効果、または変形ハプティック効果等のハプティック効果を出力する。ハプティック効果は、コントローラ30のユーザ入力エレメント(例えば、デジタルボタン、アナログボタン、バンパ、方向パッド、アナログもしくはデジタルスティック、ハンドル、またはトリガ)で経験されることができる。あるいは、コントローラ30の外側表面でハプティック効果が経験されてもよい。アクチュエータは、アクチュエータ駆動回路を含む。アクチュエータは、例えば、電動モータ、電磁アクチュエータ、ボイスコイル、形状記憶合金、電気活性ポリマ、ソレノイド、偏心モータ(「ERM:electric rotating mass motor」)、線形共振アクチュエータ(「LRA:linear resonant actuator」)、圧電アクチュエータ、高帯域アクチュエータ、電気活性ポリマ(「EAP:electroactive polymer」)アクチュエータ、静電摩擦ディスプレイ、または超音波振動ジェネレータでありうる。アクチュエータはハプティック出力デバイスの一例であり、ここで、ハプティック出力デバイスは、駆動信号に応じて振動触知ハプティック効果、静電摩擦ハプティック効果、または変形ハプティック効果等のハプティック効果を出力するように構成されたデバイスである。代替的実施形態では、コントローラ30内の一つ以上のアクチュエータは、何らかの他のタイプのハプティック出力デバイスで置き換えられてもよい。
【0017】
コントローラ30は、一つ以上のスピーカをさらに含むことができる。コントローラ30のローカルプロセッサ、またはコントローラ30がローカルプロセッサを含まない実施形態におけるプロセッサ22は、コントローラ30の少なくとも一つのスピーカに音声信号を送信すればよく、次いでスピーカが音声効果を出力する。スピーカは、例えば、ダイナミックラウドスピーカ、エレクトロダイナミックラウドスピーカ、圧電ラウドスピーカ、磁気歪ラウドスピーカ、静電ラウドスピーカ、リボンプラナー磁気ラウドスピーカ、屈曲波ラウドスピーカ、フラットパネルラウドスピーカ、ヘイルエアモーショントランスデューサ、プラズマアークスピーカ、およびデジタルラウドスピーカであればよい。
【0018】
コントローラ30は、一つ以上のセンサをさらに含むことができる。センサは、音、動作、加速度、生体信号、距離、流量、力/圧力/歪み/屈曲、湿度、線形位置、方位/傾斜、無線周波数、回転位置、回転速度、スイッチの操作、温度、振動、または可視光強度等であるがこれに限定されない、エネルギーの一形態または他の物理的性質を検出するように構成できる。センサは、検出エネルギーまたは他の物理的特性を、電気信号または仮想センサ情報を表す任意の信号に変換するようにさらに構成でき、コントローラ30は、変換された信号を、コントローラ30のローカルプロセッサに、またはコントローラ30がローカルプロセッサを含まない実施形態におけるプロセッサ22に送信することができる。センサは、加速度計、心電図、脳波図、筋電計、眼電図、電気的パラトグラフ、電気皮膚反応センサ、容量センサ、ホール効果センサ、赤外センサ、超音波センサ、圧力センサ、光ファイバセンサ、曲りセンサ(または屈曲センサ)、力感知レジスタ、ロードセル、LuSense CPS
2 155、小型圧力トランスデューサ、圧電センサ、ストレインゲージ、湿度計、線形位置タッチセンサ、線形ポテンショメータ(またはスライダ)、線形可変差動変圧器、コンパス、傾斜計、磁性タグ(または無線周波数識別タグ)、回転エンコーダ、回転ポテンショメータ、ジャイロスコープ、オンオフスイッチ、温度センサ(温度計、熱電対、抵抗温度検知器、サーミスタ、または温度変換集積回路等)、マイクロホン、光度計、高度計、生体モニタ、カメラ、または光依存レジスタ等であるがこれに限定されない任意のデバイスであってよい。
【0019】
図2は、本発明の一実施形態に係るコントローラ100の図である。一実施形態では、コントローラ100は、
図1のコントローラ30と同一である。さらに、
図3は、コントローラ100の別の図である。コントローラ100は一般に、コンピュータ、携帯電話、テレビ、または他の類似のデバイスに接続できるゲームシステムに用いることができる。
図2および
図3のコントローラ100のコンポーネント(すなわち、ハウジング102、アナログまたはデジタルスティック110、ボタン114、トリガ118、ならびに鳴動(ランブル)アクチュエータ(rumble actuators)122および124)を、以下で
図4とともにさらに詳述する。
【0020】
図4は、ホストコンピュータ104およびディスプレイ106をさらに含むゲームシステム101で使用されるコントローラ100のブロック図である。
図4のブロック図に示すように、コントローラ100は、接続105を介してホストコンピュータ104と通信する局所プロセッサ108を含む。接続105は、有線接続、無線接続、または当業者に公知の他のタイプの接続であればよい。あるいは、コントローラ100は、局所プロセッサ108を含まないように構成され、コントローラ100からの全ての入力/出力信号が、ホストコンピュータ104により直接対処および処理されてもよい。ホストコンピュータ104は、ディスプレイスクリーン106に動作可能に結合される。一実施形態では、当技術分野で周知のように、ホストコンピュータ104は、ゲームデバイスコンソールであり、ディスプレイスクリーン106は、ゲームデバイスコンソールに動作可能に結合されたモニタである。別の実施形態では、当業者に周知のように、ホストコンピュータ104およびディスプレイスクリーン106は、単一のデバイスに組み合わされてもよい。
【0021】
コントローラ100のハウジング102は、左利きユーザまたは右利きユーザのデバイスを握る両手に合い易いように成形される。当業者には当然のことながら、コントローラ100は、Microsoft(登録商標)Xbox One(商標)コントローラまたはPlayStation(登録商標)DualShock(商標)コントローラ等のビデオゲームコンソールシステム用に現在市販される多数の「ゲームパッド」と類似の形状およびサイズのコントローラの一実施形態例にすぎず、Wii(商標)リモートまたはWii(商標)Uコントローラ、Sony(登録商標)SixAxis(商標)コントローラまたはSony(登録商標)Wandコントローラ、ならびに、実在の物(テニスラケット、ゴルフクラブ、野球のバット等)の形および他の形のコントローラ、またはディスプレイもしくはヘッドマウントディスプレイを有するコントローラ等のコントローラを含むがこれに限定されない、ユーザ入力エレメントの他の構成、形状、サイズのコントローラが使用されてもよい。
【0022】
コントローラ100は、アナログまたはデジタルスティック110、ボタン114、およびトリガ118を含む、いくつかのユーザ入力エレメントを含む。本明細書において用いられるところのユーザ入力エレメントは、トリガ、ボタン、アナログまたはデジタルスティックなどのインタフェースデバイスであって、ホストコンピュータ104と相互作用するためにユーザにより操作されるものを指す。
図2および
図3で分かるように、当業者にも公知のように、複数の各ユーザ入力エレメントおよび追加のユーザ入力エレメントがコントローラ100に含まれうる。したがって、例えばトリガ118の本明細書の記述は、コントローラ100を単一のトリガに限定しない。さらに、
図4のブロック図は、アナログまたはデジタルスティック110、ボタン114、およびトリガ118をそれぞれ一つ(1)だけ示している。しかし、当業者には当然のことながら、上述のように複数のアナログまたはデジタルスティック、ボタンおよびトリガ、ならびに他のユーザ入力エレメントが使用されてもよい。
【0023】
図4のブロック図で分かるように、コントローラ100は、そのユーザ入力エレメントの各々を直接駆動するためのターゲットアクチュエータまたはモータ、ならびにユーザの手が大抵置かれる場所でハウジング102に動作可能に結合された一つ以上の一般的アクチュエータまたは鳴動アクチュエータ122、124を含む。より具体的には、アナログまたはデジタルスティック110は、アナログまたはデジタルスティック110に動作可能に結合されたターゲットアクチュエータまたはモータ112を含み、ボタン114は、ボタン114に動作可能に結合されたターゲットアクチュエータまたはモータ116を含み、トリガ118は、トリガ118に動作可能に結合されたターゲットアクチュエータまたはモータ120を含む。複数のターゲットアクチュエータに加えて、コントローラ100は、そのユーザ入力エレメントの各々に動作可能に結合された位置センサを含む。より具体的には、アナログまたはデジタルスティック110は、アナログまたはデジタルスティック110に動作可能に結合された位置センサ111を含み、ボタン114は、ボタン114に動作可能に結合された位置センサ115を含み、トリガ118は、トリガ118に動作可能に結合された位置センサ119を含む。ローカルプロセッサ108は、ターゲットアクチュエータ112、116、120、ならびにアナログまたはデジタルスティック110、ボタン114およびトリガ118のそれぞれの位置センサ111、115、119に、動作可能に結合される。ローカルプロセッサ108は、位置センサ111、115、119から受信した信号に応じて、方向付けられた運動感覚効果またはターゲット運動感覚効果を、アナログまたはデジタルスティック110、ボタン114、およびトリガ118にそれぞれ直接提供するようにターゲットアクチュエータ112、116、120に命令する。このようなターゲット運動感覚効果は、コントローラ本体全体に沿って一般的アクチュエータ122、124により生み出される一般的ハプティック効果または鳴動ハプティック効果とは識別もしくは区別可能である。集合的ハプティック効果により、例えば映像、音声、および触覚といった複数のモダリティを同時に駆使することで、ユーザがゲームへのより高い没入感を得られる。ハプティクスを生み出すように構成されるコントローラのさらなる詳細は、参照により全体として本明細書に組み込まれる「ハプティック対応トリガを備えたゲームデバイス(GAMING DEVICE HAVING A HAPTIC‐ENABLED TRIGGER)」と題する2014年4月22日に出願の出願番号第14/258,644号に、より詳しく記載されている。
【0024】
図5は、本発明の一実施形態に係るシステムのトリガハプティック効果ソフトウェアスタックのブロック図である。トリガハプティック効果ソフトウェアスタックは、
図1のシステム10等のシステムに実装される。図の実施形態では、システムには、デバイス500、周辺ファームウェア510、およびコントローラ520のコンポーネントが含まれる。デバイス500は、パーソナルコンピュータ、タブレット、スマートフォン、またはコンソール(例えば、ビデオゲームコンソール)等の任意のタイプのコンピュータデバイスであればよい。周辺ファームウェア510は、デバイス500に動作可能に接続されうる一つ以上の周辺機器(例えば、コントローラ)のためのファームウェアである。コントローラ520は、デバイス500に動作可能に接続される周辺機器の一例である。コントローラ520は、ビデオゲームコントローラであってもよい。一実施形態では、コントローラ520は、
図1のコントローラ30、ならびに
図2、
図3および
図4のコントローラ100と同一であってもよい。
【0025】
デバイス500は、ゲーム入力管理コード501を含む。ゲーム入力管理コード501は、デバイス500内で実行されるゲームアプリケーションまたは他のタイプのアプリケーションの文脈でコントローラ520により提供される入力を管理するコンピュータ可読命令のセットを含む。デバイス500は、周辺入力アプリケーションプログラミングインタフェース(「API:application programming interface」)502をさらに含む。周辺入力API502は、コントローラ520により提供される入力を受信および管理するためにゲーム入力管理コード501が周辺ファームウェア510と相互作用することを可能にする、コンピュータ可読関数またはルーチンのセットを含む。デバイス500は、鳴動API503をさらに含む。鳴動APIは、コントローラ520の一つ以上の鳴動モータまたは鳴動アクチュエータ(例えば、
図5に示した鳴動モータLおよびR)に鳴動命令を送信するためにゲーム入力管理コード501が周辺ファームウェア510と相互作用することを可能にするコンピュータ可読関数またはルーチンのセットを含む。鳴動命令は、コントローラ520の鳴動モータまたは鳴動アクチュエータに一般的ハプティック効果または鳴動ハプティック効果を生み出させることができる。
【0026】
デバイス500は、(
図5に「API」として識別される)トリガハプティック効果API504をさらに含む。トリガハプティック効果API504は、ゲーム入力管理コード501に露出され、コントローラ520の一つ以上のトリガ(例えば、
図5に示したトリガLおよびR)へのトリガ命令等、コントローラ520へのハプティック命令を送信するためにゲーム入力管理コード501が周辺ファームウェア510と相互作用することを可能にする、コンピュータ可読関数またはルーチンのセットを含む。ハプティック命令は、コントローラ520の一つ以上のターゲットモータまたはターゲットアクチュエータに、コントローラ520の一つ以上のユーザ入力エレメントでハプティック効果を生み出させることができる。トリガ命令は、コントローラ520の一つ以上のターゲットモータまたはターゲットアクチュエータ(例えば、
図5に示したモータLおよびR)に、コントローラ520の一つ以上のトリガ(例えば、
図5に示したトリガLおよびR)でトリガハプティック効果を生み出させることができる特定のタイプのハプティック命令である。トリガハプティック効果は、コントローラ520等のコントローラのトリガで経験される、特定のタイプのハプティック効果である。トリガハプティック効果API504は、一つ以上のトリガハプティック効果定義を記憶することができる。ハプティック効果定義は、ハプティックファイルまたはハプティックストリーム等、予め定義され、記憶装置内に記憶されることができ、一つ以上の鳴動モータ、鳴動アクチュエータ、ターゲットモータ、またはターゲットアクチュエータに送信されて、コントローラ520のコンポーネントまたはユーザ入力エレメントでハプティック効果を生み出すことができる、ハプティック信号等のハプティックデータを含むデータ構造である。ハプティックデータは、対応するハプティック効果の一つ以上の属性を含むことができ、属性は、パラメータとして記憶されることができる。ハプティック効果定義のパラメータの例には、振幅パラメータ、周波数パラメータ、波形パラメータ、エンベロープパラメータ、マグニチュード(magnitude)(または強度)パラメータ、および持続時間パラメータが含まれる。トリガハプティック効果定義は、コントローラ520の一つ以上のモータまたはアクチュエータ(例えば、
図5に示したモータLおよびR)に送信されて、コントローラ520の一つ以上のトリガ(例えば、
図5に示したトリガLおよびR)でトリガハプティック効果を生み出すことができる、特定のタイプのハプティック効果定義である。
【0027】
本実施形態によれば、トリガハプティック効果API504は、ゲーム入力管理コード501が直接プレイバック/クロスオーバ部505、トリガエンジン506、および空間化エンジン507と相互作用することを可能にでき、さらに、ゲーム入力管理コード501により呼び出されたリクエストにしたがって直接プレイバック/クロスオーバ部505、トリガエンジン506、および空間化エンジン507を管理することができる。さらに、トリガハプティック効果API504は、周辺ファームウェア510との通信に必要であり、一つ以上のトリガハプティック効果の生成に必要なデータを記憶することができる。代替的実施形態では、トリガハプティック効果API504は、デバイス500ではなく周辺ファームウェア510内にあってもよい。
【0028】
デバイス500は、直接プレイバック/クロスオーバ部505をさらに含む。直接プレイバック/クロスオーバ部505は、ハプティックデータを入力として受信し、ハプティックデータを出力として生み出し、ハプティックデータをコントローラ520の一つ以上のターゲットモータ、またはターゲットアクチュエータ(例えば、
図5に示したモータLおよびR)に送信する。ある実施形態では、直接プレイバック/クロスオーバ部505は、入力されたハプティックデータのフォーマットを修正せずに、入力されたハプティックデータを直接出力すればよい。その結果、入力されたハプティックデータが「そのまま」再生される。他の実施形態では、直接プレイバック/クロスオーバ部505は、入力されたハプティックデータを第一フォーマットから第二フォーマットへ変換し、さらに変換されたハプティックデータを出力すればよい。再生のタイプに応じて、直接プレイバック/クロスオーバ部505は、ハプティックデータを変換するためにプログラマブルクロスオーバを任意に使用することができる。ハプティックデータを変換することにより、デバイス500は、ハプティック効果を「分解」し、複数のアクチュエータでハプティック効果を忠実に再生することができる。一実施形態では、ハプティックデータのフォーマットは、ハプティックエレメンタリストリーム(「HES:Haptic Elementary Stream」)フォーマットであればよい。HESフォーマットは、デバイスにストリーミングされうるハプティックデータを表すためのファイルまたはデータフォーマットである。ハプティックデータは、圧縮されていない音が表されるのと同一または類似の様式で表されうるが、ハプティックデータは、HESフォーマットにおいて暗号化されうる。代替的実施形態では、直接プレイバック/クロスオーバ部505は、デバイス500ではなく周辺ファームウェア510内にあってもよい。
【0029】
デバイス500は、トリガエンジン506をさらに含む。トリガエンジン506は、トリガハプティック効果定義等のハプティックデータを受信し、コントローラ520から受信したトリガデータ(例えば、
図5に示したトリガデータ513)等のデータに基づいてハプティックデータを修正することができる。トリガデータは、コントローラ520の一つ以上のトリガ(例えば、
図5に示したトリガLおよびR)の位置および/またはレンジを指示する一つ以上のパラメータを含むデータである。トリガエンジン506は、コントローラ520にハプティック命令をさらに送信することができる。例えば、トリガエンジン506は、コントローラ520の一つ以上のトリガ(例えば、
図5に示したトリガLおよびR)に、トリガ命令を送信することができる。前述したように、トリガ命令は、コントローラ520の一つ以上のターゲットモータまたはターゲットアクチュエータ(例えば、
図5に示したモータLおよびR)に、コントローラ520の一つ以上のトリガ(例えば、
図5に示したトリガLおよびR)でトリガハプティック効果を生み出させることができる。したがって、一実施形態では、トリガエンジン506は、トリガハプティック効果定義のハプティックデータを修正することにより、トリガの位置および/またはレンジに基づいてトリガで特定のトリガハプティック効果を経験させることができる。別の実施形態では、トリガエンジン506は、トリガハプティック効果定義のハプティックデータを修正することにより、トリガの位置および/またはレンジに基づいてコントローラ520の一つ以上のターゲットモータまたはターゲットアクチュエータ(例えば、
図5に示したモータLおよびR)に関するトリガハプティック効果をスケーリングすることができる。トリガエンジン506は、トリガハプティック効果定義等の一つ以上のハプティック効果定義をさらに記憶することができる。代替的実施形態では、トリガエンジン506は、デバイス500ではなく周辺ファームウェア510内にあってもよい。
【0030】
デバイス500は、(
図5に「空間化エンジン」として識別される)空間化エンジン507をさらに含む。空間化エンジン507は、トリガハプティック効果定義等のハプティックデータを受信し、空間化データに基づいてハプティックデータを修正することができる。空間化データには、トリガハプティック効果等のハプティック効果の所望の方向および/または流れを指示するデータを含むことができる。ある実施形態では、空間化エンジン507は、方向および/または流れを含む空間化データをゲーム入力管理コード501から受信すればよい。さらに、空間化データには、コントローラ520上に位置するユーザの一つ以上の手の一つ以上の位置も含むことができる。ある実施形態では、空間化エンジン507は、一つ以上の手の位置を含む空間化データをコントローラ520から受信すればよい。さらに、ある実施形態では、空間化エンジン507は、ゲーム入力管理コード501により通信される、ゲームアプリケーション内のユーザのキャラクタの位置を含む空間化データを受信すればよい。
【0031】
本実施形態によれば、空間化エンジン507は、コントローラ520の一つ以上の鳴動モータまたは鳴動アクチュエータ(例えば、
図5に示した鳴動モータLおよびR)に関してトリガハプティック効果等のハプティック効果がスケーリングされ、コントローラ520の一つ以上のターゲットモータまたはターゲットアクチュエータ(例えば、
図5に示したモータLおよびR)に関してもハプティック効果がスケーリングされるように、ハプティックデータを修正することができる。換言すれば、空間化エンジン507は、全体的ハプティック効果の方向および流れの感覚を伝えるために、各モータまたはアクチュエータに送信されるハプティックデータを修正し、これにより各モータまたはアクチュエータで経験されるハプティック効果を修正することができる。例えば、空間化エンジン507は、あるモータまたはアクチュエータで経験されるハプティック効果を強調するために、ハプティック効果の一つ以上の部分をスケーリングすることができる。例えば、空間化エンジン507は、ハプティック効果を経験させるモータまたはアクチュエータに送信されるハプティックデータをスケーリングして、ハプティック効果をより目立たせることができる(例えば、マグニチュード、持続時間を増加させるなど)。加えて、空間化エンジン507は、他のモータまたはアクチュエータに送信されるハプティックデータをスケーリングして、それらのモータまたはアクチュエータで経験される他のハプティック効果を目立たないようにすることができる(例えば、マグニチュード、持続時間を減少させるなど)。ある実施形態では、空間化エンジン507は、ハプティックデータをリアルタイムで修正することができる。さらに、ある実施形態では、空間化エンジン507は、全体的トリガハプティック効果を誇張するために、入力とモータまたはアクチュエータの出力との間に非線形関係を有していてもよい。代替的実施形態では、空間化エンジン507は、デバイス500ではなく周辺ファームウェア510内にあってもよい。
【0032】
デバイス500は、エンコーダ508をさらに含む。エンコーダ508は、直接プレイバック/クロスオーバ部505、トリガエンジン506、および/または空間化エンジン507から受信したハプティックデータを一つのフォーマットにエンコードする。一実施形態では、このフォーマットはHESフォーマットであってもよい。エンコーダ508は、エンコードされたハプティックデータを周辺ファームウェア510にさらに送信する。
【0033】
周辺ファームウェア510は、デコーダおよびクロスオーバ部511を含む。デコーダおよびクロスオーバ部511は、エンコーダ508からエンコードされたハプティックデータを受信し、エンコードされたハプティックデータをデコードする。ある実施形態では、デコーダおよびクロスオーバ部511は、符号化されたハプティックデータをデコードするために、プログラマブルクロスオーバを計算する。これらの実施形態の一部では、デコーダおよびクロスオーバ部511は、プログラマブルクロスオーバをリアルタイムで計算する。周辺ファームウェア510は、トリガ制御部512をさらに含む。トリガ制御部512は、コントローラ520(例えば、
図5に示したモータLおよびR)の一つ以上のターゲットモータまたはターゲットアクチュエータのための低レベル制御APIである。トリガ制御部512は、デバイス500からトリガ命令を受信し、トリガ命令を、コントローラ520の指定のターゲットモータまたはターゲットアクチュエータへの低レベルトリガ命令に変換し、低レベルトリガ命令を、コントローラ520の指定のターゲットモータまたはターゲットアクチュエータに送信することができる。低レベルトリガ命令は、指定のターゲットモータまたはターゲットアクチュエータに、コントローラ520の指定のトリガでトリガハプティック効果を生み出させることができる。
【0034】
周辺ファームウェア510は、トリガデータ513をさらに含む。前述のように、トリガデータ513は、コントローラ520の一つ以上のトリガ(例えば、
図5に示したトリガLおよびR)の位置および/またはレンジを指示する一つ以上のパラメータを含むデータである。周辺ファームウェア510は、コントローラ520からトリガデータ513を受信することができる。周辺ファームウェア510は、トリガデータ513をさらに記憶することができ、トリガデータ513をデバイス500にさらに送信することができる。周辺ファームウェア510は、他のゲームパッド機能514をさらに含むが、これは、周辺ファームウェア510によって管理されうるコントローラ520の機能である。このような機能には、有線/無線通信、入力報告、プロトコル実装、電力管理などの機能を含むことができる。周辺ファームウェア510は、鳴動制御部515をさらに含む。鳴動制御部515は、コントローラ520の一つ以上の鳴動モータまたは鳴動アクチュエータ(例えば、
図5に示した鳴動モータLおよびR)のための低レベル制御APIである。鳴動制御部515は、デバイス500から鳴動命令を受信し、鳴動命令を、コントローラ520の指定の鳴動モータまたは鳴動アクチュエータのための低レベル鳴動命令に変換し、低レベル鳴動命令を、コントローラ520の指定の鳴動モータまたは鳴動アクチュエータに送信することができる。
【0035】
コントローラ520は、トリガLおよびRを含む。コントローラ520は、ギヤボックスLおよびR、ならびにモータLおよびRをさらに含む。モータLおよびギヤボックスLは、コントローラ520内のトリガLに動作可能に結合される。同様に、モータRおよびギヤボックスRは、コントローラ520内のトリガRに動作可能に結合される。モータLがトリガ命令を受信すると、モータLおよびギヤボックスLが集合的にトリガLでトリガハプティック効果を経験させる。同様に、モータRがトリガ命令を受信すると、モータRおよびギヤボックスRが集合的にトリガRでトリガハプティック効果を経験させる。本実施形態によれば、周辺ファームウェア510は、駆動エレクトロニクス530を用いてコントローラ520のモータLおよびRにトリガ命令を送信する。コントローラ520は、ポテンショメータLおよびRをさらに含む。ポテンショメータLは、トリガLの位置および/またはレンジを検出することができ、検出されたトリガLの位置および/またはレンジをトリガデータとして周辺ファームウェア510にさらに送信することができる。同様に、ポテンショメータRは、トリガRの位置および/またはレンジを検出することができ、検出されたトリガRの位置および/またはレンジをトリガデータとして周辺ファームウェア510にさらに送信することができる。一実施形態では、ポテンショメータLおよびRは、ホール効果センサ等の別のタイプの位置センサでそれぞれ置き換えられてもよい。コントローラ520は、鳴動モータLおよびRをさらに含む。鳴動モータLが鳴動命令を受信すると、鳴動モータLは、コントローラ520の左本体に沿ってハプティック効果を経験させる。同様に、鳴動モータRが鳴動命令を受信すると、鳴動モータRは、コントローラ520の右本体に沿ってハプティック効果を経験させる。本実施形態によれば、周辺ファームウェア510は、鳴動駆動エレクトロニクス530を用いてコントローラ520の鳴動モータLおよびRに鳴動命令を送信する。
【0036】
代替的実施形態では、一つ以上のターゲットモータまたはターゲットアクチュエータが、コントローラ520の一つ以上のユーザ入力エレメント(一つ以上のデジタルボタン、一つ以上のアナログボタン、一つ以上のバンパ、一つ以上の方向パッド、一つ以上のアナログまたはデジタルスティック、一つ以上のハンドル等)に、動作可能に結合されてもよい。この代替的実施形態によれば、周辺ファームウェア510は、一つ以上のターゲットモータまたはターゲットアクチュエータに命令を送信して、一つ以上のターゲットモータまたはターゲットアクチュエータに、コントローラ520の一つ以上のユーザ入力エレメントで経験されるハプティック効果を生み出させることができる。
【0037】
前述したように、コントローラ、ゲームパッド、または他の周辺機器は、一つ以上の一般的もしくは鳴動モータまたはアクチュエータ、および一つ以上のターゲットモータまたはアクチュエータを含むことができる。このようなコントローラは、コントローラ上でローカライズされたハプティックフィードバックを経験させうるハプティック効果である、空間化ハプティック効果を生み出すことができる。例えば、ユーザは、コントローラの一つ以上のトリガで再生されるローカライズされたハプティック効果を、その一つ以上のトリガに指を載せながら知覚することができる。これらのローカライズされたハプティック効果は、コントローラのハウジング内で再生できる、コントローラを保持しているユーザの手がより一般的に知覚できる、より一般的なハプティック効果とは異なりうる。一例では、ゲームアプリケーション内において、ユーザのゲーム内のキャラクタが、「魔術師の魔法」にかけられうる。ゲームアプリケーション内に表示される魔法の視覚的表現とあわせて、ユーザはまず、トリガでローカライズされたハプティック効果を経験し、その後コントローラでより一般的なハプティック効果を経験することができる。
【0038】
トリガは、コントローラまたは他のタイプの周辺機器のハウジング内に収容されればよい。トリガは、外側回転ハードストップまたはハウジングの他の何らかの外側部分と接触するように、場合によってはハウジング外に延在しうる。より具体的には、トリガは、場合によってはスプリングにより延在し、外側回転ハードストップまたはハウジングの他の何らかの外側部分と接触しうる。オブジェクト(例えば、ユーザの指)がトリガを動かす(例えば、引くまたは押す)と、トリガは、オブジェクトと接触したまま、内側回転ハードストップまたはハウジングの他の何らかの内側部分と接触するまで、ハウジング内へと回転または別途移動することができる。ターゲットモータもしくはアクチュエータ、または他の何らかのタイプのハプティック出力デバイスがトリガに力を加えると、トリガは回転または別途移動することができる。この回転またはその他のタイプの移動は、外側回転ハードストップに向かうもの、または外側回転ハードストップから遠ざかるものであることができる。
【0039】
しかし、コントローラに標準のトリガ設計を用いると、トリガが最大開位置または最大閉位置にあるときにハプティックフィードバック感が減少することがある。トリガの最大開位置とは、トリガに力がほとんどまたは全く加えられず、トリガがハウジング内に回転または別途移動し始めていないときのトリガの位置である。最大開位置は、「レスト位置(resting position)」としても識別することができる。最大開位置では、トリガは、コントローラのハウジングの外側回転ハードストップまたは他の何らかの外側部分に対してぶつかっている可能性がある。このときには、ターゲットモータまたはアクチュエータにより生み出されてトリガに加えられる力に応じてトリガが回転または別途移動するスペースは、ほとんどまたは全く提供されない。
【0040】
トリガの最大閉位置とは、トリガに力が加えられ、トリガがハウジング内への最大距離を回転または別途移動しているときのトリガの位置である。最大開位置と同様に、最大閉位置では、トリガは、コントローラのハウジングの内側回転ハードストップまたは他の何らかの内側部分に対してぶつかっている可能性がある。このときにも、ターゲットモータまたはアクチュエータにより生み出されてトリガに加えられる力に応じてトリガが回転または別途移動するスペースは、ほとんどまたは全く提供されない。こうした最大開位置または最大閉位置での移動可能性の欠如により、トリガで経験されるハプティックフィードバック感のマグニチュードが低下し、あるいは弱まることがある。
【0041】
したがって、一実施形態では、周辺機器は、一つ以上のスプリング、一つ以上のフレーム、または二つの組み合わせ等の、一つ以上のハプティック減少防止コンポーネントも含めばよい。ハプティック減少防止コンポーネントは、トリガが、ハプティック減少防止コンポーネントにより設けられる開延長トラベルレンジ外の最大開位置にあるときにトリガで経験されるトリガハプティック効果のマグニチュードを増加させることができる。これは、
図6とともにさらに詳細に後述する。さらに、ハプティック減少防止コンポーネントは、トリガが、ハプティック減少防止コンポーネントにより設けられる閉延長トラベルレンジ外の最大閉位置にあるときにトリガで経験されるトリガハプティック効果のマグニチュードを増加させることができる。これは、
図7とともにさらに詳細に後述する。したがって、一実施形態によれば、最大開位置および最大閉位置に加えて、開延長トラベルレンジ外の最大開位置および閉延長トラベルレンジ外の最大閉位置という二つの新たな位置がさらに定義される。開延長トラベルレンジ外の最大開位置は開延長トラベルレンジ内に配置されないようにハプティック減少防止コンポーネントにより配置されることを除き、開延長トラベルレンジ外の最大開位置は最大開位置と同一である。閉延長トラベルレンジ外の最大閉位置は閉延長トラベルレンジ内に配置されないようにハプティック減少防止コンポーネントにより配置されることを除き、閉延長トラベルレンジ外の最大閉位置は最大閉位置と同一である。開延長トラベルレンジ外の最大開位置および閉延長トラベルレンジ外の最大閉位置は、
図9とともに以下でさらに詳述する。代替的実施形態では、トリガを、別のタイプのユーザ入力エレメント(例えば、ボタン、バンパ、方向パッド、アナログまたはデジタルスティック、動輪)で置き換えることができ、トリガハプティック効果を、より一般的なハプティック効果で置き換えることができる。この代替的実施形態では、ハプティック減少防止コンポーネントは、ユーザ入力エレメントで経験されるハプティック効果のマグニチュードを増加させることができる。
【0042】
図6は、本発明の一実施形態に係る、トリガ610が開延長トラベルレンジ620外の最大開位置にあるときにトリガ610が移動するための開延長トラベルレンジ620を設ける外側スプリング600を含むコントローラの図である。より具体的には、
図6は、開延長トラベルレンジ620外の最大開位置でトリガ610を保持する外側スプリング600を含むコントローラを示す。トリガ610に力が加えられると、外側スプリング600は、トリガ610が開延長トラベルレンジ620へと回転または別途移動することを可能にすることができる。
図6には、矢視
図601および矢視
図602が含まれる。矢視
図601では、トリガ610が開延長トラベルレンジ620外の最大開位置にあり、
図6に示された平面に対して垂直の軸に沿ってトリガ610が引かれ、または押されることができる。矢視
図602では、トリガ610が開延長トラベルレンジ620内の最大開位置にあり、ここでは、トリガ610は、開延長トラベルレンジ620内にさらに延ばされており、
図6に示された平面に対して垂直の軸に沿ってトリガ610が再び引き入れられることはできるが、さらに押し出されることはできない。図の実施形態では、外側スプリング600は、ハプティック減少防止コンポーネントの一例であり、トリガ610と外側回転ハードストップまたはコントローラのハウジングの外側部分との間に配置される。ユーザが空間化ハプティック効果を受信する際にコントローラのトリガ上に指を軽く載せていることもあるため、延長トラベルレンジ外の最大開位置は空間化に重要でありうる。トリガ(トリガ610等)が開延長トラベルレンジ(開延長トラベルレンジ620等)外の最大開位置にあるときのトリガハプティック効果のマグニチュードを増加させるために、トリガが開延長トラベルレンジ外の最大開位置にあるときにトリガに加えられた力に応じて延長トラベルレンジ内を移動できるように、トリガを外側スプリング(外側スプリング600等)によりオフセットすることができる。
【0043】
ビュー601は、トリガ610が開延長トラベルレンジ620外の最大開位置にあるときに、トリガ610が外側回転ハードストップまたはコントローラのハウジングの外側部分に載らないような位置または別途接触しないような位置に、外側スプリング600がトリガ610を保持する、コントローラの図である。換言すれば、外側スプリング600は、開延長トラベルレンジ620を設け、この開延長トラベルレンジ620は、ターゲットモータまたはアクチュエータにより生み出されてトリガ610に加えられる力に応じてトリガ610が回転または別途移動できるレンジである。開延長トラベルレンジ620を設けることにより、外側スプリング600は、トリガ610に加えられた力に応じてトリガ610が回転または別途移動したときに、トリガ610が外側回転ハードストップまたはハウジングの外側部分にぶつかるのを防止することができる。これにより、トリガ610で経験されるトリガハプティック効果(例えば、運動感覚ハプティック効果)のマグニチュードを増加させることができる。図の実施形態では、外側スプリング600は、レバーアーム605を含む片持スプリングであり、レバーアーム605は、トリガ610に対して押しまたは別途接触して、トリガ610を上述の位置に保持する。代替的実施形態では、外側スプリング600は、トリガ610に対して押すまたは別途接触する、圧縮スプリング、バイアススプリング、または他の何らかのタイプのスプリングであってもよい。
【0044】
ビュー602は、ターゲットモータまたはアクチュエータがトリガ610に力を加え、力に応じてトリガ610が回転または別途移動する、コントローラの図である。
図6の矢視
図602に示したように、トリガ610は、開延長トラベルレンジ620内へと回転または別途移動し、開延長トラベルレンジ620の少なくとも一部分を占める。図の実施形態では、トリガ610は、レバーアーム605に対して押すまたは別途接触する。これにより、トリガ610が延長トラベルレンジ620内へと回転または別途移動できるようにレバーアーム605が移動する。外側スプリング600が圧縮スプリング、バイアススプリング、または別のタイプのスプリングである代替的実施形態では、トリガ610は、外側スプリング600に対して押しまたは別途接触し、これにより、トリガ610が開延長トラベルレンジ620内へと回転または別途移動できるように外側スプリング600が移動しうる。
【0045】
代替的実施形態では、外側スプリング600を内側スプリングに置き換えることができる。内側スプリングは、トリガ610と内側回転ハードストップまたはコントローラのハウジングの内側部分との間に配置することができる。さらに、内側スプリングは、トリガ610が外側回転ハードストップまたはコントローラのハウジングの外側部分に載らないようにまたは別途接触しないように(すなわち、延長トラベルレンジ620が設けられるように)、トリガ610を引くことができる。この代替的実施形態では、内側スプリングの剛性は、トリガ610が内側回転ハードストップまたはコントローラのハウジングの内側部分に載るようにまたは別途接触するようにトリガ610を引くことを回避するように計算されればよい。
【0046】
図7は、本発明の一実施形態に係る、トリガ710が閉延長トラベルレンジ730外の最大閉位置にあるときにトリガ710が移動するための閉延長トラベルレンジ730を設ける延長フレーム700を含むコントローラの図である。図の実施形態では、延長フレーム700は、ハプティック減少防止コンポーネントの一例であり、コントローラのハウジングの外側部分の延長部である。前述のように、標準のトリガ設計では、トリガ(トリガ710等)が最大閉位置にあるときに(例えば、トリガがハウジングの内側部分にぶつかるようにユーザがトリガを一杯まで押圧したときに)トリガハプティック効果が大きく減少することがある。トリガが閉延長トラベルレンジ外の最大閉位置にあるときのトリガハプティック効果のマグニチュードを増加させるために、トリガを移動させるオブジェクト(オブジェクト720等)のグラウンド部として、延長フレーム(延長フレーム700等)を使用することができる。この場合、トリガが閉延長トラベルレンジ外の最大閉位置一杯まで移動しているときでも、トリガはなおオブジェクトに対して移動でき、トリガで大きなハプティックフィードバック感を生成することができる。
【0047】
図7は、ビュー701および702を含む。ビュー701は、オブジェクト720(例えば、ユーザの指)がトリガ710を押し、引き、または別途移動させており、オブジェクト720が延長フレーム700上にぶつかっている(すなわち、当たって止まっている)、コントローラの図である。トリガ710が閉延長トラベルレンジ730外の最大閉位置にあるときには、オブジェクト720が延長フレーム700上にぶつかっているため、トリガ710は内側回転ハードストップまたはコントローラのハウジングの内側部分に載っておらずまたは別途接触していない。換言すれば、延長フレーム700により閉延長トラベルレンジ730が設けられ、この閉延長トラベルレンジ730は、ターゲットモータまたはアクチュエータにより生み出されてトリガ710に加えられる力に応じてトリガ710が回転または別途移動できるレンジである。閉延長トラベルレンジ730を設けることにより、延長フレーム700は、トリガ710に加えられた力に応じてトリガ710が回転または別途移動したときに、トリガ710が内側回転ハードストップまたはハウジングの内側部分にぶつかるのを防止することができる。これにより、トリガ710で経験されるトリガハプティック効果(例えば、運動感覚ハプティック効果)のマグニチュードを増加させることができる。
【0048】
ビュー702は、ターゲットモータまたはアクチュエータがトリガ710に力を加え、力に応じてトリガ710が回転または別途移動する、コントローラのビューである。
図7のビュー702で示したように、トリガ710は、閉延長トラベルレンジ730内へと回転または別途移動し、閉延長トラベルレンジ730の少なくとも一部分を占める。
【0049】
代替的実施形態では、延長フレーム700を内側スプリングに置き換えることができる。内側スプリングは、トリガ710と内側回転ハードストップまたはコントローラのハウジングの内側部分との間に配置することができる。さらに、内側スプリングは、オブジェクト720がトリガ710を押す、引く、または別途移動させている場合にトリガ710が内側回転ハードストップまたはコントローラのハウジングの内側部分に載らないようにまたは別途接触しないように(すなわち、閉延長トラベルレンジ730が設けられるように)、トリガ710を押すことができる。この代替的実施形態では、内側スプリングの剛性は、トリガ710が内側回転ハードストップまたはコントローラのハウジングの内側部分に載ることまたは別途接触することを防ぐのに十分な抵抗を提供するように計算されればよい。
【0050】
図8は、本発明の一実施形態に係るハプティックトリガ修正モジュール(
図1のハプティックトリガ修正モジュール16等)の機能のフローチャートである。一実施形態では、
図8の機能は、メモリもしくは他のコンピュータ可読または有形の媒体に記憶されたソフトウェアにより実装され、プロセッサにより実行される。他の実施形態では、機能は、ハードウェア(例えば、特定用途向け集積回路(「ASIC:application specific integrated circuit」)、プログラム可能ゲートアレイ(「PGA:programmable gate away」)、フィールドプログラム可能ゲートアレイ(「FPGA:field programmable gate away」)などを用いて)、またはハードウェアおよびソフトウェアの任意の組み合わせにより実施されてもよい。ある実施形態では、機能の一部が省略されてもよい。
【0051】
フローが開始し、810へ進む。810では、周辺機器のユーザ入力エレメントの位置が受信される。周辺機器は、コントローラまたはゲームパッドであってもよい。周辺機器は、ハウジングと、ユーザ入力エレメントと、ユーザ入力エレメントに結合された位置センサと、ハウジング内に設置され、かつユーザ入力エレメントに結合されたハプティック出力デバイスと、ハプティック減少防止コンポーネントとをさらに含むことができる。ハプティック出力デバイスは、アクチュエータであってもよい。ハプティック出力デバイスがアクチュエータである実施形態では、アクチュエータは、双方向押/引力を及ぼすように構成されたモータであってもよい。ハプティック減少防止コンポーネントは、スプリングであってもよい。ハプティック減少防止コンポーネントがスプリングである実施形態では、スプリングは、片持スプリングであってもよい。ハプティック減少防止コンポーネントがスプリングである別の実施形態では、スプリングは、圧縮スプリングであってもよい。代替的実施形態では、ハプティック減少防止コンポーネントは、フレームであってもよい。ハプティック減少防止コンポーネントがフレームである実施形態では、フレームは、ハウジングの外側部分の延長部である延長フレームであってもよい。一実施形態では、ユーザ入力エレメントは、トリガであってもよい。その後、フローは820へ進む。
【0052】
820では、受信されたユーザ入力エレメントの位置に応じて、周辺機器のハプティック出力デバイスにハプティック効果定義が送信される。ハプティック効果定義は、周辺機器のユーザ入力エレメントでハプティック効果を生み出すためのハプティックデータを含むことができる。一実施形態では、ハプティック効果定義は、周辺機器のトリガでトリガハプティック効果を生み出すためのハプティックデータを含むトリガハプティック効果定義であればよい。一実施形態では、プロセッサがハプティック効果定義をハプティック出力デバイスに送信させる。さらに、一実施形態では、周辺機器のユーザ入力エレメントの位置に応じて、プロセッサによりハプティック効果定義が生成される。一実施形態では、プロセッサは、周辺機器のハウジング内に設置される。代替的実施形態では、プロセッサは、周辺機器のハウジングから離れた位置に設置される。その後、フローは830へ進む。
【0053】
830では、ハプティック効果定義に応じて、周辺機器のユーザ入力エレメントへの力が出力される。一実施形態では、周辺機器のハプティック出力デバイスが力を出力し、プロセッサがハプティック出力デバイスに力を出力させることができる。さらに、一実施形態では、ハプティック出力デバイスからユーザ入力エレメントへ、運動感覚ハプティック効果として力が伝達される。その後、フローは840へ進む。
【0054】
840では、ユーザ入力エレメントがレンジ外の最大開位置またはレンジ外の最大閉位置のうちの少なくとも一方にあるときに出力された力に応じてユーザ入力エレメントが移動できるレンジが設けられる。一実施形態では、周辺機器のハプティック減少防止コンポーネントによって、このレンジを設けることができる。一実施形態では、ユーザ入力エレメントの最大開位置は、ユーザ入力エレメントがハウジング内へと移動していないユーザ入力エレメントの位置であり、ユーザ入力エレメントの最大閉位置は、ユーザ入力エレメントがハウジング内へと最大距離を移動しているユーザ入力エレメントの位置とすることができる。一実施形態では、ユーザ入力エレメントがレンジ外の最大開位置にあるときに、ハプティック減少防止コンポーネントはスプリングである。この実施形態では、スプリングによって、ユーザ入力エレメントとハウジングの外側部分との間に開延長トラベルレンジがあるような位置にユーザ入力エレメントを維持することができる。この開延長トラベルレンジは、出力された力に応じてユーザ入力エレメントが移動できるレンジとすることができる。別の実施形態では、ユーザ入力エレメントがレンジ外の最大閉位置にあるときに、ハプティック減少防止コンポーネントはフレームである。この実施形態では、オブジェクトがユーザ入力エレメントをレンジ外の最大閉位置へと移動させたときにオブジェクトがフレームにぶつかり、ユーザ入力エレメントの位置は、ユーザ入力エレメントとハウジングの内側部分との間に閉延長トラベルレンジがあるような位置である。この閉延長トラベルレンジは、出力された力に応じてユーザ入力エレメントが移動できるレンジとすることができる。別の実施形態では、ユーザ入力エレメントがレンジ外の最大閉位置にあるときに、ハプティック減少防止コンポーネントはスプリングである。この実施形態では、スプリングによって、オブジェクトがユーザ入力エレメントをレンジ外の最大閉位置へと移動させたときにユーザ入力エレメントとハウジングの内側部分との間に閉延長トラベルレンジがあるような位置にユーザ入力エレメントを維持することができる。その後、フローは終了する。
【0055】
図9は、本発明の一実施形態に係る、トリガの開延長トラベルレンジ外の最大開位置、およびトリガの閉延長トラベルレンジ外の最大閉位置の図である。前述のように、コントローラまたはゲームパッド等の周辺機器は、トリガ(または他の何らかのユーザ入力エレメント)と、ハウジングと、一つ以上のハプティック減少防止コンポーネントとを含むことができる。トリガは、トラベルレンジ905を有していればよい。第一ハプティック減少防止コンポーネントは、開延長トラベルレンジ915を設けることができる。したがって、トリガに力がほとんどまたは全く加えられず、トリガがハウジング内へと回転または別途移動し始めていないときには、第一ハプティック減少防止コンポーネントは、トリガを開延長トラベルレンジ915外の最大開位置(すなわち、開延長トラベルレンジ外の最大開位置910または位置910)に置くことができる。アクチュエータにより生成された力がトリガに加えられると、力がトリガを位置910から位置910と最大開位置920との間の位置または最大開位置920に移動させうる。同様に、第二ハプティック減少防止コンポーネントは、閉延長トラベルレンジ925を設けることができる。したがって、トリガに力が加えられて、トリガがハウジング内へと最大距離を回転または別途移動しているときには、第二ハプティック減少防止コンポーネントは、トリガを閉延長トラベルレンジ925外の最大閉位置(すなわち、閉延長トラベルレンジ外の最大閉位置930または位置930)に置くことができる。アクチュエータにより二次的な力が生成され、トリガに加えられたときには、二次的な力がトリガを位置930から位置930と最大閉位置940との間の位置または最大閉位置940に移動させうる。
【0056】
したがって、一実施形態では、周辺機器は、トリガがレンジ外の最大開位置またはレンジ外の最大閉位置にあるときにトリガで経験されるトリガハプティック効果のマグニチュードを増加させるように構成された、スプリングまたはフレーム等の一つ以上のハプティック減少防止コンポーネントを含むことができる。これらの主要な場所でのハプティックフィードバック感のマグニチュードを増加させることで、より電力消費の少ないより豊かなトリガハプティック効果を可能にできる。より豊かなトリガハプティック効果を提供することで、よりリアルで没入感のあるゲーム体験を提供することができる。
【0057】
本明細書を通して記載された本発明の特徴、構造、または特性は、一つ以上の実施形態において任意の適切な様式で組み合わされてもよい。例えば、本明細書を通じて、「一実施形態」、「一部の実施形態」、「ある実施形態」、「ある実施形態(複数)」、または他の類似の言葉の使用は、実施形態に関連して記載された特定の特徴、構造、または特性が、本発明の少なくとも一つの実施形態に含まれうるという事実を意味する。したがって、本明細書を通じて、「一実施形態」、「一部の実施形態」、「ある実施形態」、「ある実施形態(複数)」の語句または他の類似の言葉の記載は、必ずしも全てが同じ実施形態の群をさすのではなく、記載された特徴、構造、または特性は、一つ以上の実施形態において任意の適切な様式で組み合わされてもよい。
【0058】
通常の技術を有する当業者には当然のことながら、上述の本発明は、異なる順序のステップを用いて、および/または、開示された構成とは異なる構成の要素を用いて実施されてもよい。したがって、これらの好ましい実施形態に基づいて本発明を記載しているが、当業者には当然のことながら、本発明の趣旨および範囲内を逸脱しない、ある修正、変更、および代替的構成が明らかであろう。したがって、本発明の境界および範囲を決定するためには、添付の特許請求の範囲を参照しなければならない。