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