(57)【要約】      （修正有）【課題】混合触覚効果の混合触覚トラックを生成する方法、コンピューティングデバイス又はシステムを提供する。【解決手段】システムは、コンピューティングデバイス１０及び触覚対応コントローラー２０を備える。コンピューティングデバイスは、触覚対応コントローラーのコントローラータイプを求め、混合触覚効果がコントローラーの触覚アクチュエーター２１によって生成されると判断する。次に、第１の触覚効果と、コントローラータイプ及びアクチュエーターの組み合わせとに関連付けられた第１の触覚トラックを選択し、第２の触覚効果と、コントローラータイプ及びアクチュエーターの組み合わせとに関連付けられた第２の触覚トラックを選択する。更に、選択した動作パラメーターのパラメーター値に基づいて、第１及び第２の触覚トラックを組み合わせた混合触覚トラックを生成し、触覚アクチュエーターを制御して混合触覚効果を生成する。【選択図】図１Ａ
2019036312.tif 000002
【特許請求の範囲】
【請求項１】
非一時的コンピューター可読媒体であって、１つ以上のプロセッサによって実行されると、
アプリケーションを実行することと、
ユーザー入力を前記アプリケーションに提供している触覚対応コントローラーのコントローラータイプを求めることであって、該コントローラータイプの任意の触覚対応コントローラーは１つ以上の触覚アクチュエーターを有することと、
第１の触覚効果及び第２の触覚効果を組み合わせた混合触覚効果が前記１つ以上の触覚アクチュエーターのうちの触覚アクチュエーターによって生成されると判断することと、
該非一時的コンピューター可読媒体において前記第１の触覚効果に関連付けられた第１の複数の触覚トラックの中から、前記第１の触覚効果に関連付けられ、且つ前記コントローラータイプと前記混合触覚効果を生成する前記触覚アクチュエーターとの組み合わせに関連付けられた第１の触覚トラックを選択することと、
該非一時的コンピューター可読媒体において前記第２の触覚効果に関連付けられた第２の複数の触覚トラックの中から、前記第２の触覚効果に関連付けられ、且つ前記コントローラータイプ及び前記触覚アクチュエーターの前記組み合わせに関連付けられた第２の触覚トラックを選択することと、
触覚アクチュエーター動作を記述した動作パラメーターの複数のパラメーター値の中から、前記コントローラータイプ及び前記触覚アクチュエーターの前記組み合わせに関連付けられたパラメーター値を選択することと、
前記パラメーター値に基づいて、前記第１の触覚トラック及び前記第２の触覚トラックを組み合わせた混合触覚トラックを生成することと、
前記混合触覚トラックを前記触覚対応コントローラーに通信することによって、前記触覚アクチュエーターを制御して前記混合触覚効果を生成することと、
を前記１つ以上のプロセッサに行わせる命令が記憶されている、非一時的コンピューター可読媒体。
【請求項２】
前記アプリケーションはゲームアプリケーションであり、前記触覚対応コントローラーはハンドヘルドゲームコントローラーである、請求項１に記載の非一時的コンピューター可読媒体。
【請求項３】
前記コントローラータイプ及び前記触覚アクチュエーターの前記組み合わせは、前記非一時的コンピューター可読媒体において触覚効果エンドポイントとして表され、該触覚効果エンドポイントは、前記アプリケーションによってサポートされる複数の触覚効果エンドポイントのうちの１つであり、前記触覚効果エンドポイントの各々は、アクチュエータータイプ及び触覚アクチュエーターの異なるそれぞれの組み合わせであり、
前記動作パラメーターの前記複数のパラメーター値は、前記非一時的コンピューター可読媒体において、それぞれ前記複数の触覚効果エンドポイントに関連付けられ、
前記第１の複数の触覚トラックは、前記非一時的コンピューター可読媒体において、それぞれ前記複数の触覚効果エンドポイントに関連付けられ、
前記第２の複数の触覚トラックも、前記非一時的コンピューター可読媒体において、それぞれ前記複数の触覚効果エンドポイントに関連付けられ、
前記命令は、前記複数の触覚効果エンドポイントの各々についての触覚トラックを組み合わせるのに用いられる共通機能を用いることによって、前記混合触覚トラックの前記生成を前記１つ以上のプロセッサに行わせる、請求項２に記載の非一時的コンピューター可読媒体。
【請求項４】
前記命令は、前記非一時的コンピューター可読媒体において前記第１の触覚効果に関連付けられた第１のイベントと、前記非一時的コンピューター可読媒体において前記第２の触覚効果に関連付けられた第２のイベントとの重複した発生に応答して、前記混合触覚効果が生成されると前記１つ以上のプロセッサに判断させる、請求項１に記載の非一時的コンピューター可読媒体。
【請求項５】
前記動作パラメーターは、前記触覚アクチュエーターが１つ以上の触覚トラック値にどのように応答するのかを記述する、請求項１に記載の非一時的コンピューター可読媒体。
【請求項６】
前記動作パラメーターは最大力パラメーターであり、該最大力パラメーターのパラメーター値は、前記触覚アクチュエーターの規定された定格最大力又は規定された定格最大作動のうちの少なくとも一方を前記触覚アクチュエーターに生成させる触覚トラック値である、請求項５に記載の非一時的コンピューター可読媒体。
【請求項７】
前記命令は、前記最大力パラメーターの前記パラメーター値に基づいて前記第１の触覚トラック及び前記第２の触覚トラックの各々をスケーリングして、スケーリングされた第１の触覚トラック及びスケーリングされた第２の触覚トラックを生成することと、前記スケーリングされた第１の触覚トラック及び前記スケーリングされた第２の触覚トラックを前記混合触覚トラックに混合することとによって、前記混合触覚トラックの前記生成を前記１つ以上のプロセッサに行わせる、請求項６に記載の非一時的コンピューター可読媒体。
【請求項８】
前記最大力パラメーターの前記パラメーター値は、前記触覚アクチュエーターの動作入力範囲の最大値であり、該動作入力範囲は、前記触覚アクチュエーターへの有効な入力値である触覚トラック値の範囲であり、
前記第１の触覚トラックは、前記動作入力範囲と異なる第１の規定範囲内にある触覚トラック値を有し、
前記第１の触覚トラックの前記スケーリングは、前記第１の規定範囲の最大値を前記触覚アクチュエーターの前記動作入力範囲の前記最大値にマッピングすることによって行われる、請求項７に記載の非一時的コンピューター可読媒体。
【請求項９】
前記動作パラメーターは、前記混合触覚トラックの前記生成が基づいている複数の動作パラメーターのうちの１つであり、該複数の動作パラメーターは、パッシブ力パラメーターを更に含み、該パッシブ力パラメーターのパラメーター値は、ゼロ力又はゼロ作動のうちの少なくとも一方を前記触覚アクチュエーターに生成させる触覚トラック値であり、
前記第１の触覚トラックの前記スケーリングは、前記第１の規定範囲のゼロ値を前記パッシブ力パラメーターの前記パラメーター値にマッピングすることによって行われる、請求項８に記載の非一時的コンピューター可読媒体。
【請求項１０】
前記パッシブ力パラメーターの前記パラメーター値は、前記最大力パラメーターの前記パラメーター値の２分の１に略等しい、請求項９に記載の非一時的コンピューター可読媒体。
【請求項１１】
前記第１の規定範囲の最小値は０よりも小さく、前記第１の触覚トラックの前記スケーリングは、前記第１の規定範囲の前記最小値を前記触覚アクチュエーターの前記動作入力範囲のゼロ値にマッピングすることによって行われる、請求項１０に記載の非一時的コンピューター可読媒体。
【請求項１２】
前記第１の触覚トラックは、複数のそれぞれのトラック値を有する複数のトラックサンプルを含み、前記第１の触覚トラックの前記スケーリングは、前記複数のそれぞれのトラック値の各々に比を乗算して、複数の乗算された値を生成することと、前記乗算された値の各々に前記パッシブ力パラメーターの前記パラメーター値を加算することとを含み、前記比は、前記最大力パラメーターの前記パラメーター値と前記パッシブ力パラメーターの前記パラメーター値との間の差を前記第１の規定範囲のサイズによって除算したものに等しい、請求項９に記載の非一時的コンピューター可読媒体。
【請求項１３】
アプリケーションを実行することと、
ユーザー入力を前記アプリケーションに提供している触覚対応コントローラーのコントローラータイプを求めることであって、該コントローラータイプの任意の触覚対応コントローラーは１つ以上の触覚アクチュエーターを有することと、
第１の触覚効果及び第２の触覚効果を組み合わせた混合触覚効果が前記１つ以上の触覚アクチュエーターのうちの触覚アクチュエーターによって生成されると判断することと、
非一時的コンピューター可読媒体において前記第１の触覚効果に関連付けられた第１の複数の触覚トラックの中から、前記第１の触覚効果に関連付けられ、且つ前記コントローラータイプと前記混合触覚効果を生成する前記触覚アクチュエーターとの組み合わせに関連付けられた第１の触覚トラックを選択することと、
前記非一時的コンピューター可読媒体において前記第２の触覚効果に関連付けられた第２の複数の触覚トラックの中から、前記第２の触覚効果に関連付けられ、且つ前記コントローラータイプ及び前記触覚アクチュエーターの前記組み合わせに関連付けられた第２の触覚トラックを選択することと、
触覚アクチュエーター動作を記述した動作パラメーターの複数のパラメーター値の中から、前記コントローラータイプ及び前記触覚アクチュエーターの前記組み合わせに関連付けられたパラメーター値を選択することと、
前記パラメーター値に基づいて、前記第１の触覚トラック及び前記第２の触覚トラックを組み合わせた混合触覚トラックを生成することと、
前記混合触覚トラックを前記触覚対応コントローラーに通信することによって、前記触覚アクチュエーターを制御して前記混合触覚効果を生成することと、
を含む、混合触覚効果を生成する１つ以上のプロセッサによって実行される方法。
【請求項１４】
前記アプリケーションはゲームアプリケーションであり、前記触覚対応コントローラーはハンドヘルドゲームコントローラーである、請求項１３に記載の方法。
【請求項１５】
前記コントローラータイプ及び前記触覚アクチュエーターの前記組み合わせは、前記非一時的コンピューター可読媒体において触覚効果エンドポイントとして表され、該触覚効果エンドポイントは、前記アプリケーションによってサポートされる複数の触覚効果エンドポイントのうちの１つであり、前記触覚効果エンドポイントの各々は、アクチュエータータイプ及び触覚アクチュエーターの異なるそれぞれの組み合わせであり、
前記動作パラメーターの前記複数のパラメーター値は、前記非一時的コンピューター可読媒体において、それぞれ前記複数の触覚効果エンドポイントに関連付けられ、
前記第１の複数の触覚トラックは、前記非一時的コンピューター可読媒体において、それぞれ前記複数の触覚効果エンドポイントに関連付けられ、
前記第２の複数の触覚トラックも、前記非一時的コンピューター可読媒体において、それぞれ前記複数の触覚効果エンドポイントに関連付けられ、
前記混合触覚トラックの前記生成は、前記複数の触覚効果エンドポイントの各々についての触覚トラックを組み合わせるのに用いられる共通機能に基づいている、請求項１４に記載の方法。
【請求項１６】
前記命令は、前記非一時的コンピューター可読媒体において前記第１の触覚効果に関連付けられた第１のイベントと、前記非一時的コンピューター可読媒体において前記第２の触覚効果に関連付けられた第２のイベントとの重複した発生に応答して、前記混合触覚効果が生成されると前記１つ以上のプロセッサに判断させる、請求項１３に記載の方法。
【請求項１７】
前記動作パラメーターは最大力パラメーターであり、該最大力パラメーターのパラメーター値は、前記触覚アクチュエーターの規定された定格最大力又は規定された定格最大作動のうちの少なくとも一方を前記触覚アクチュエーターに生成させる触覚トラック値である、請求項１３に記載の方法。
【請求項１８】
前記混合触覚トラックの前記生成は、前記最大力パラメーターの前記パラメーター値に基づいて前記第１の触覚トラック及び前記第２の触覚トラックの各々をスケーリングして、スケーリングされた第１の触覚トラック及びスケーリングされた第２の触覚トラックを生成することと、前記スケーリングされた第１の触覚トラック及び前記スケーリングされた第２の触覚トラックを前記混合触覚トラックに混合することとによって実行される、請求項１７に記載の方法。
【請求項１９】
前記最大力パラメーターの前記パラメーター値は、前記触覚アクチュエーターの動作入力範囲の最大値であり、該動作入力範囲は、前記触覚アクチュエーターへの有効な入力値である触覚トラック値の範囲であり、
前記第１の触覚トラックは、前記動作入力範囲と異なる第１の規定範囲内にある触覚トラック値を有し、
前記第１の触覚トラックの前記スケーリングは、前記第１の規定範囲の最大値を前記触覚アクチュエーターの前記動作入力範囲の前記最大値にマッピングすることによって行われ、前記動作パラメーターは、前記混合触覚トラックの前記生成が基づいている複数の動作パラメーターのうちの１つであり、該複数の動作パラメーターは、パッシブ力パラメーターを更に含み、該パッシブ力パラメーターのパラメーター値は、ゼロ力又はゼロ作動のうちの少なくとも一方を前記触覚アクチュエーターに生成させる触覚トラック値であり、
前記第１の触覚トラックの前記スケーリングは、前記第１の規定範囲のゼロ値を前記パッシブ力パラメーターの前記パラメーター値にマッピングすることによって行われる、請求項１８に記載の方法。
【請求項２０】
混合触覚効果を生成するシステムであって、該システムは、
アプリケーションを実行するように構成された１つ以上のプロセッサを有するコンピューティングデバイスと、
前記コンピューティングデバイスと通信し、ユーザー入力を前記アプリケーションに提供するように構成された触覚対応コントローラーであって、１つ以上の触覚アクチュエーターを更に含む、触覚対応コントローラーと、
を備え、
前記コンピューティングデバイスの前記１つ以上のプロセッサは、
前記触覚対応コントローラーのコントローラータイプを求め、
第１の触覚効果及び第２の触覚効果を組み合わせた混合触覚効果が前記１つ以上の触覚アクチュエーターのうちの触覚アクチュエーターによって生成されると判断し、
非一時的コンピューター可読媒体において前記第１の触覚効果に関連付けられた第１の複数の触覚トラックの中から、前記第１の触覚効果に関連付けられ、且つ前記コントローラータイプと前記混合触覚効果を生成する前記触覚アクチュエーターとの組み合わせに関連付けられた第１の触覚トラックを選択し、
前記非一時的コンピューター可読媒体において前記第２の触覚効果に関連付けられた第２の複数の触覚トラックの中から、前記第２の触覚効果に関連付けられ、且つ前記コントローラータイプ及び前記触覚アクチュエーターの前記組み合わせに関連付けられた第２の触覚トラックを選択し、
触覚アクチュエーター動作を記述した動作パラメーターの複数のパラメーター値の中から、前記コントローラータイプ及び前記触覚アクチュエーターの前記組み合わせに関連付けられたパラメーター値を選択し、
前記パラメーター値に基づいて、前記第１の触覚トラック及び前記第２の触覚トラックを組み合わせた混合触覚トラックを生成し、
前記混合触覚トラックを前記触覚対応コントローラーに通信することによって、前記触覚アクチュエーターを制御して前記混合触覚効果を生成する、
ように更に構成される、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モバイルデバイス、ユーザーインターフェースデバイス、ウェアラブルデバイス、ハンドヘルドコントローラー、又は他のコンシューマー電子機器用に生成される混合触覚効果等の混合触覚効果の混合触覚トラックを生成する方法、コンピューティングデバイス、及びシステムを対象とする。
【背景技術】
【０００２】
電子ユーザーインターフェースシステムは、広く行き渡っているため、人間が、電子ユーザーインターフェースシステムを通してこれらのシステムとインタラクトするインターフェースの品質は、益々重要になっている。触覚フィードバック又はより一般的に触覚効果は、ユーザーにキューを提供すること、特定のイベントの警報を提供すること、又は、現実的なフィードバックを提供することによってインターフェースの品質を改善して、仮想環境内へのより深い感覚没入を生成することができる。触覚効果の例は、運動感覚性触覚効果（作用力及び抵抗力フィードバック等）、振動触知性触覚効果、及び静電摩擦触覚効果を含む。幾つかの場合には、触覚アクチュエーターは、触覚トラックを再生して触覚効果を生成することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
以下の詳細な説明は、本質的に単に例示のものであり、本発明又は本発明の用途及び使用を限定することを意図するものではない。さらに、前出の技術分野、背景技術、発明の概要又は以下の詳細な説明において提示されるいかなる明示された又は暗示された理論によっても限定する意図はない。
【０００４】
本発明の目的のうちの１つは、モバイルデバイス、ユーザーインターフェースデバイス、ウェアラブルデバイス、ハンドヘルドコントローラー、又は他のコンシューマー電子機器用に生成される混合触覚効果の混合触覚トラックを生成する方法、コンピューティングデバイス又はシステムを提供することである。
【課題を解決するための手段】
【０００５】
本発明における実施の形態の１つの態様は、混合触覚効果を生成するコンピューターデバイスの１つ以上のプロセッサによって実行される方法に関し、本方法は、アプリケーションを実行することと、ユーザー入力をアプリケーションに提供している触覚対応コントローラーのコントローラータイプを求めることであって、このコントローラータイプの任意の触覚対応コントローラー（すなわち、このコントローラータイプに属するいずれかの触覚対応コントローラー）は１つ以上の触覚アクチュエーターを有することと、第１の触覚効果及び第２の触覚効果を組み合わせた混合触覚効果が１つ以上の触覚アクチュエーターのうちの触覚アクチュエーターによって生成されると判断することと、非一時的コンピューター可読媒体において第１の触覚効果に関連付けられた第１の複数の触覚トラックの中から、第１の触覚効果に関連付けられ、且つコントローラータイプと混合触覚効果を生成する触覚アクチュエーターとの組み合わせに関連付けられた第１の触覚トラックを選択することと、非一時的コンピューター可読媒体において第２の触覚効果に関連付けられた第２の複数の触覚トラックの中から、第２の触覚効果に関連付けられ、且つコントローラータイプ及び触覚アクチュエーターの組み合わせに関連付けられた第２の触覚トラックを選択することと、触覚アクチュエーター動作を記述した動作パラメーターの複数のパラメーター値の中から、コントローラータイプ及び触覚アクチュエーターの組み合わせに関連付けられたパラメーター値を選択することと、パラメーター値に基づいて、第１の触覚トラック及び第２の触覚トラックを組み合わせた混合触覚トラックを生成することと、混合触覚トラックを触覚対応コントローラーに通信することによって、触覚アクチュエーターを制御して混合触覚効果を生成することとを含む。
【０００６】
本発明における実施の形態の１つの態様は、非一時的コンピューター可読媒体であって、１つ以上のプロセッサによって実行されると、アプリケーションを実行することと、ユーザー入力をアプリケーションに提供している触覚対応コントローラーのコントローラータイプを求めることであって、このコントローラータイプの任意の触覚対応コントローラーは１つ以上の触覚アクチュエーターを有することとを１つ以上のプロセッサに行わせる命令が記憶されている、非一時的コンピューター可読媒体に関する。命令は、第１の触覚効果及び第２の触覚効果を組み合わせた混合触覚効果が１つ以上の触覚アクチュエーターのうちの触覚アクチュエーターによって生成されると判断することと、非一時的コンピューター可読媒体において第１の触覚効果に関連付けられた第１の複数の触覚トラックの中から、第１の触覚効果に関連付けられ、且つコントローラータイプと混合触覚効果を生成する触覚アクチュエーターとの組み合わせに関連付けられた第１の触覚トラックを選択することとをプロセッサに更に行わせることができる。命令は、非一時的コンピューター可読媒体において第２の触覚効果に関連付けられた第２の複数の触覚トラックの中から、第２の触覚効果に関連付けられ、且つコントローラータイプ及び触覚アクチュエーターの組み合わせに関連付けられた第２の触覚トラックを選択することをプロセッサに更に行わせる。命令は、触覚アクチュエーター動作を記述した動作パラメーターの複数のパラメーター値の中から、コントローラータイプ及び触覚アクチュエーターの組み合わせに関連付けられたパラメーター値を選択することと、パラメーター値に基づいて、第１の触覚トラック及び第２の触覚トラックを組み合わせた混合触覚トラックを生成することとをプロセッサに更に行わせる。命令は、混合触覚トラックを触覚対応コントローラーに通信することによって、触覚アクチュエーターを制御して混合触覚効果を生成することをプロセッサに更に行わせる。
【０００７】
本発明の実施形態の特徴、目的、及び利点は、参照が添付図に対して行われる以下の詳細な説明を読むことによって当業者に明らかになる。
【図面の簡単な説明】
【０００８】
【図１Ａ】本発明の一実施形態による、混合触覚トラックを生成するように構成された非一時的コンピューター可読媒体及びプロセッサを有するコンピューティングデバイスのブロック図である。
【図１Ｂ】非一時的コンピューター可読媒体の一実施形態であるメモリを示し、このメモリは、本発明の一実施形態による、混合触覚トラックを生成するように構成された触覚生成構成要素を含む。
【図１Ｃ】本発明の一実施形態による、ゲームコントローラーの少なくとも１つの触覚アクチュエーターに対する混合触覚トラックについて混合触覚トラックを生成するように構成されたゲームコンソールを示す。
【図１Ｄ】本発明の一実施形態による触覚生成構成要素の触覚効果コンテナーを示す。
【図１Ｅ】本発明の一実施形態によるゲーム編集コンピューターを示す。
【図１Ｆ】本発明の一実施形態による共通の混合器アルゴリズムを示す。
【図１Ｇ】本発明の一実施形態による第１の触覚トラック及び第２の触覚トラックを混合した混合触覚トラックを示す。
【図２】本発明の一実施形態による、触覚生成構成要素が触覚トラックを混合することを示すフロー図である。
【図３Ａ】本発明の一実施形態による混合触覚トラックを混合生成する方法のフロー図である。
【図３Ｂ】本発明の一実施形態による混合触覚トラックを混合生成する方法のフロー図である。
【図４Ａ】本発明の一実施形態による２つの触覚トラックを混合するプロセスの概略を示すブロック図である。
【図４Ｂ】本発明の一実施形態による、触覚トラックがスケーリングされることを示す図である。
【図４Ｃ】本発明の一実施形態による、触覚トラックがスケーリングされることを示す図である。
【図４Ｄ】本発明の一実施形態による、触覚トラックがスケーリングされることを示す図である。
【図５】本発明の一実施形態による２つの触覚トラックを混合するプロセスの概略を示すブロック図である。
【図６】本発明の一実施形態による、異なるエンドポイントごとに異なる混合アルゴリズムが定義される一実施形態のブロック図である。
【図７Ａ】本発明の一実施形態による、触覚トラックが設計されるエディター環境と、触覚トラックが混合されるゲーム環境とを示す図である。
【図７Ｂ】本発明の一実施形態による、触覚トラックが混合されるゲーム環境を示す図である。
【発明を実施するための形態】
【０００９】
本発明の上述の特徴及び利点並びに他の特徴及び利点は、添付の図面に示されるような本発明の実施形態の以下の説明から明らかであろう。本明細書に組み込まれるとともに本明細書の一部をなす添付の図面は更に、本発明の原理を説明するとともに、当業者が本発明を実施及び使用することを可能にする役割を果たす。図面は一定縮尺ではない。
【００１０】
以下の詳細な説明は、本質的に単に例示のものであり、本発明又は本発明の用途及び使用を限定することを意図するものではない。さらに、前出の技術分野、背景技術、発明の概要又は以下の詳細な説明において提示されるいかなる明示された又は暗示された理論によっても限定する意図はない。
【００１１】
本発明における実施形態は、触覚トラックを混合して（又は、より一般的には、組み合わせて）混合触覚トラックを生成することと、種々のタイプの触覚対応コントローラー（例えば、種々のタイプのゲームコントローラー）及び／又はそれらのタイプの触覚対応コントローラー内に含まれる種々の触覚アクチュエーターをサポートする混合機能とに関する。したがって、本発明における様々な実施形態の混合機能は、混合触覚トラックがどのようなタイプの触覚対応コントローラー及びどの触覚アクチュエーターについて生成されているのかを考慮することができる。そのような混合機能は、より多種の混合触覚トラックを生成することを可能にすることができ、その結果、混合触覚トラックが対象とする触覚対応コントローラー及び触覚アクチュエーター向けに当該混合触覚トラックを適応させることができる。幾つかの場合には、混合触覚トラックを適応させることによって、種々の触覚対応コントローラー及び種々の触覚アクチュエーターにわたって一様な触覚経験を提供することを容易にすることができる。例えば、同じ触覚トラックは、例えば、種々の触覚アクチュエーター間の質量、剛性、外部環境、共振周波数（存在する場合）、及び／又は動作原理の相違によって、異なる触覚アクチュエーターを異なるように駆動させる場合がある。さらに、同じ触覚トラックは、例えば、種々のタイプの触覚対応コントローラー間の質量若しくは質量分布、グリップ位置（複数の場合もある）、サイズ、形状、及び／又はハウジング構成の相違によって、種々のタイプの触覚対応コントローラー間で異なる作動を引き起こす場合もあるし、異なるユーザー感覚を与える場合もあり、したがって、それらのタイプの触覚対応コントローラーのユーザーに異なる感覚をもたらす場合がある。
【００１２】
一実施形態では、混合機能は、種々のタイプの触覚対応コントローラー及び種々の触覚アクチュエーターに共通の共通混合機能（common mixing function）（共通混合アルゴリズムとも呼ばれる）に依拠することができる。この共通混合機能は、種々のタイプの触覚対応コントローラー及び種々の触覚アクチュエーターをサポートする混合機能の実施を簡略化することができる。一方、この共通混合機能は、１つ以上の混合パラメーターによって制御することができ、この１つ以上の混合パラメーターのうちの幾つか又は全てのパラメーター値は、特定のタイプの触覚対応コントローラーと、そのタイプの触覚対応コントローラー内に含まれる特定の触覚アクチュエーターとに固有のものとすることができる。そのようなパラメーター値の使用によって、用いられている特定のタイプの触覚対応コントローラーと、混合触覚トラックを再生する特定の触覚アクチュエーターとに固有の方法で、共通混合機能を実行することを可能にすることができる。
【００１３】
一実施形態では、アプリケーションは、ゲームアプリケーション（ゲームプログラム又はゲームとも呼ばれる）とすることができ、触覚対応コントローラーは、ハンドヘルドゲームコントローラーとすることができる。例示のタイプのハンドヘルドゲームコントローラーには、Ｏｃｕｌｕｓ（登録商標）Ｔｏｕｃｈゲームコントローラー、ＨＴＣ  Ｖｉｖｅ（登録商標）ゲームコントローラー、Ｓａｍｓｕｎｇ  Ｇｅａｒ（登録商標）ＶＲコントローラー、Ｘｂｏｘ（登録商標）ゲームコントローラー、Ｖａｌｖｅ  Ｋｎｕｃｋｌｅｓ（商標）ゲームコントローラー、又はＩｍｍｅｒｓｉｏｎ（登録商標）ＴｏｕｃｈＳｅｎｓｅ  Ｆｏｒｃｅ（ＴＳＦ）Ｇａｍｅｐａｄが含まれる。別の例では、触覚対応コントローラーは、触覚対応コンピューターマウス又は触覚対応スタイラス等の他の任意のタイプのハンドヘルドコントローラーとすることができる。一実施形態では、触覚対応コントローラーは、触覚対応手袋等のタイプのウェアラブルコントローラーとすることができる。一実施形態では、触覚対応コントローラーの異なるタイプ（コントローラータイプとも呼ばれる）は、異なるそれぞれの質量、質量分布、グリップ位置、形状、ユーザー入力構成要素（例えば、ボタン、トリガー）、触覚アクチュエーター（複数の場合もある）の配置、触覚アクチュエーターの数、及び／又は触覚アクチュエーターのタイプを有することができる。
【００１４】
一実施形態では、混合触覚トラックは、混合触覚効果を生成するのに用いることができる。混合触覚効果は、複数の触覚効果（例えば、第１の触覚効果及び第２の触覚効果）から合成された合成効果とすることができ、単一の触覚アクチュエーター上で再生又は別の方法で生成することができる。したがって、混合触覚効果は、その触覚アクチュエーターの複数の個々の触覚効果を合成したものとすることができる。一実施形態では、混合は、２つの触覚効果を混合触覚効果の形態で同時に再生する必要があるときに促されることができる。そのような状況は、第１の触覚効果のトリガー条件である第１のイベントが、第２の触覚効果のトリガー条件である第２のイベントと重複するときに発生し得る。例えば、第１のイベントは、ゲームアプリケーションにおける爆発とすることができる一方、第２のイベントは、ゲームアプリケーションにおけるユーザーの武器の発射とすることができる。第１のイベントは、第１の触覚効果に関連付けることができる一方、第２のイベントは、第２の触覚効果に関連付けることができる。双方のイベントが同時に発生する（すなわち、時間が重複する）場合、それぞれのイベントに関連付けられた第１の触覚効果及び第２の触覚効果を混合して（又は、より一般的には、組み合わせて）、ユーザーのＯｃｕｌｕｓ（登録商標）Ｔｏｕｃｈゲームコントローラー、ＨＴＣ  Ｖｉｖｅ（登録商標）ゲームコントローラー、又は他のハンドヘルドゲームコントローラーの触覚アクチュエーター上で再生される混合触覚効果を生み出すことができる。この混合触覚効果は、混合触覚トラックを用いて生成することができ、この混合触覚トラックは、第１の触覚効果に関連付けられた第１の触覚トラックと、第２の触覚効果に関連付けられた第２の触覚トラックとから合成される合成トラックとすることができる。この合成は、触覚トラックの乗算（例えば、ドット乗算）、触覚トラックの加算、複数の触覚トラックを含む他の或る演算、又はそれらの任意の組み合わせ等の様々な演算を含むことができる。
【００１５】
上述のように、混合機能は、全てのＯｃｕｌｕｓ（登録商標）Ｔｏｕｃｈゲームコントローラー（及びＯｃｕｌｕｓ（登録商標）Ｔｏｕｃｈゲームコントローラーのみ）を含む第１のコントローラータイプ及び全てのＨＴＣ  Ｖｉｖｅ（登録商標）ゲームコントローラー（及びＨＴＣ  Ｖｉｖｅ（登録商標）ゲームコントローラーのみ）を含む第２のコントローラータイプ等のコントローラータイプとも呼ばれる触覚対応コントローラーの種々のタイプをサポートすることができる。幾つかの場合には、特定のコントローラータイプは、複数の触覚アクチュエーターを有することができる。すなわち、そのコントローラータイプに属する任意の触覚対応コントローラーが複数の触覚アクチュエーターを有することができる。これらの複数の触覚アクチュエーターは、異なるタイプの触覚アクチュエーターであってもよいし、同じタイプの触覚アクチュエーターであってもよい。例えば、触覚アクチュエーターは全て、偏心回転質量（ＥＲＭ）アクチュエーターであってもよい。代替的に、触覚アクチュエーターのうちの１つはＥＲＭアクチュエーターとすることができる一方、触覚アクチュエーターのうちの別の１つは、リニア共振アクチュエーター（ＬＲＡ）とすることができる。触覚アクチュエーターは、異なる外部環境を有することができる。例えば、それらの触覚アクチュエーターは、特定のコントローラータイプの触覚対応コントローラー上又は触覚対応コントローラー内の異なるロケーションに配置することができる。幾つかの場合には、触覚アクチュエーターは、異なるサイズ又は質量を有することができる。幾つかの場合には、触覚アクチュエーターは、同じサイズ又は同じ質量を有することができる。幾つかの場合には、混合触覚効果の混合触覚トラックを、この混合触覚効果に関連付けられた特定のコントローラータイプ及びアクチュエーター識別子に基づく方法で生成することができるように、触覚アクチュエーターは、異なるアクチュエーター識別子（例えば、ａｃｔｕａｔｏｒｌｅｆｔ、ａｃｔｕａｔｏｒｒｉｇｈｔ等）を有することができる。一実施形態では、触覚対応コントローラーが複数の触覚アクチュエーターを有する場合、それらの触覚アクチュエーターの各々は、それ自体のそれぞれの混合触覚効果を生成することができる。例えば、爆発イベント及び武器発射イベントの双方がゲームアプリケーションに存在する場合、ａｃｔｕａｔｏｒｌｅｆｔに関連付けられた触覚アクチュエーターは、これらの２つのイベントに関連付けられた第１の混合触覚効果を生成することができ、ａｃｔｕａｔｏｒｒｉｇｈｔに関連付けられた触覚アクチュエーターは、同様にこれらの２つのイベントに関連付けられた第２の混合触覚効果を生成することができる。これらの２つの混合触覚効果は、異なる混合触覚トラックを含むことができる。例えば、第１の混合触覚効果は、第１の触覚トラックペアを混合する第１の混合触覚トラックから生成することができ、第２の混合触覚効果は、第１のペアと異なる第２の触覚トラックペアを混合する第２の混合触覚トラックから生成することができる。
【００１６】
一実施形態では、アプリケーションは、特定の触覚効果について複数の触覚トラックを記憶することもできるし、より一般的には、これらの複数の触覚トラックにアクセスするように構成することもできる。これらの複数の触覚トラックの各々は、特定のコントローラータイプに固有のものとすることができ、そのコントローラータイプ内に含まれる特定の触覚アクチュエーターに更に固有のものとすることができる（すなわち、そのコントローラータイプに属するいずれかの触覚対応コントローラー内に含まれる特定の触覚アクチュエーターに更に固有のものとすることができる）。アプリケーションは、混合を行うのに用いられる混合パラメーターについての複数のパラメーター値を更に記憶することもできるし、より一般的には、これらの複数のパラメーター値にアクセスするように構成することもできる。混合パラメーターは、動作パラメーター、サンプリングパラメーター、又は他の任意の混合パラメーターを含むことができる。以下でより詳細に説明するように、動作パラメーターは、触覚アクチュエーターの動作を記述する一方、サンプリングパラメーターは、触覚トラック値が混合される量又はレートを示す。混合パラメーターのうちの少なくとも１つについて、そのパラメーターの複数のパラメーター値は、コントローラータイプとそのコントローラータイプの特定の触覚アクチュエーターとのそれぞれの組み合わせに固有のものとすることができる。例えば、動作パラメーターの複数のパラメーター値は、特定のコントローラータイプ及びそのコントローラータイプに属するコントローラー内の特定の触覚アクチュエーターに固有のものとすることができる。
【００１７】
一実施形態では、アプリケーションは、実行されているとき、ユーザー入力をこのアプリケーションに現在提供している触覚対応コントローラーのタイプ（コントローラータイプとも呼ばれる）を特定することができる。この触覚対応コントローラーは、１つの触覚アクチュエーターのみを有する場合もあるし、複数の触覚アクチュエーターを有する場合もある。混合触覚効果が生成されるとき、アプリケーションは、そのコントローラータイプのどの触覚アクチュエーター（複数の場合もある）が混合触覚効果を生成するのかを求めることができる。例えば、アプリケーションは、混合触覚効果を生成するように選択された触覚アクチュエーターのアプリケーション識別子（例えば、アクチュエーターＩＤ）を求めることができる。この選択は、例えば、触覚アクチュエーターの配置及び／又はアクチュエータータイプに基づくことができる。一実施形態では、それぞれの混合触覚効果を各々生成するように複数の触覚アクチュエーターを選択することができ、それぞれの混合触覚トラックが、選択された触覚アクチュエーターの各々について生成されることになる。一実施形態では、選択ステップは省略され、触覚対応コントローラーの全ての触覚アクチュエーターが、混合触覚効果を生成することができ、それぞれの混合触覚トラックが、それらの触覚アクチュエーターの各々について生成されることになる。アプリケーションは、混合される触覚効果に関連付けられた触覚トラックだけでなく、特定されたコントローラータイプ及び触覚アクチュエーターに関連付けられた触覚トラックも取り出すことができる。アプリケーションは、混合パラメーターのパラメーター値を更に取り出すことができ、このパラメーター値は、コントローラータイプ及び触覚アクチュエーターに固有であり、取り出された触覚トラックの混合は、このパラメーター値に基づいて行われる。その結果得られた、生成される混合触覚トラックは、したがって、現在用いられているコントローラータイプに固有であるとともに、混合触覚効果を生成する触覚アクチュエーターに固有である。
【００１８】
一実施形態では、アプリケーションは、メモリ又は他の非一時的コンピューター可読媒体において、コントローラータイプ及び触覚アクチュエーターの各組み合わせを触覚効果エンドポイント（エンドポイントとも呼ばれる）として表すことができる。この触覚効果エンドポイントは、メモリ内のデータ構造体、ソフトウェアオブジェクト、変数、又はコードとすることができる。したがって、アプリケーションは、複数の異なるエンドポイントをサポートし、より具体的には、複数の異なるエンドポイントについての混合触覚効果をサポートする。一実施形態では、エンドポイントは、特定のコントローラータイプに属する触覚対応コントローラーの触覚アクチュエーターの動作を記述する１つ以上のパラメーター値を含むことができる。コントローラータイプが、複数の触覚アクチュエーターを有するコントローラーを含む場合、それらの触覚アクチュエーターの各々は、個別のエンドポイントによって表すことができる。
【００１９】
上述のように、混合パラメーターは、動作パラメーター及びサンプリングパラメーターを含むことができる。動作パラメーターは、触覚アクチュエーターがどのようなタイプの入力又はどのような範囲の入力値について設計されているのか等の触覚アクチュエーターの動作を記述することができる。例えば、動作パラメーターは、触覚アクチュエーターが受け取るように設計されたデータフォーマットを記述することができる。このデータフォーマットは、触覚アクチュエーターによって受け取られる触覚トラック値のフォーマットを指す。幾つかの場合には、動作パラメーターは、触覚アクチュエーターが入力として受け取る（又はそれ以外に動作する際に用いる）ように設計された最小触覚トラック値及び最大触覚トラック値を記述することができる。幾つかの場合には、動作パラメーターは、どの触覚トラック値が触覚アクチュエーターに定格最大力又は定格最大作動を生成させるのか、又は、どの触覚トラック値が触覚アクチュエーターに力も作動も生成させないのかを示すことができる。一実施形態では、サンプリングパラメーターは、幾つの触覚トラックサンプルを混合するのか、又は各触覚トラックサンプルの持続時間を示すことができる。一実施形態では、混合パラメーターは、以下でより詳細に説明するように、混合の実施及び／又は触覚トラックの混合中に用いられるスケーリングの実施を更に指定することができる。
【００２０】
図１Ａは、種々のコントローラータイプをサポートする、又はコントローラータイプとその触覚アクチュエーターとの種々の組み合わせをサポートする混合触覚効果の混合機能を提供するように構成されたコンピューティングデバイス１０を示している。一実施形態では、コンピューティングデバイス１０は、デスクトップコンピューター、ゲームコンソール、又はラップトップコンピューター等のゲーミングプラットフォームとすることができる。一実施形態では、コンピューティングデバイス１０は、Ｓａｍｓｕｎｇ  Ｇｅａｒ（登録商標）ヘッドセット又はＧｏｏｇｌｅ  Ｄａｙｄｒｅａｍ（登録商標）ヘッドセット等のＶＲヘッドセットを用いて仮想現実（ＶＲ）環境を提供するのに用いられるモバイルフォン等のモバイルフォンとすることができる。一実施形態では、コンピューティングデバイス１０は、Ｏｃｕｌｕｓ  Ｇｏ（登録商標）ヘッドセット又はＬｅｎｏｖｏ  Ｍｉｒａｇｅ（登録商標）ヘッドセット等のスタンドアローンＶＲヘッドセットとすることができる。一実施形態では、コンピューティングデバイス１０は、ゲームアプリケーション及び／又はＶＲアプリケーション等のアプリケーションを実行するように構成された１つ以上のプロセッサ１１を備えることができる。１つ以上のプロセッサ１１は、１つ以上のマイクロプロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、又はプログラマブルロジックアレイ（ＰＬＡ）を含むことができる。１つ以上のプロセッサ１１は、コンピューティングデバイス１０における非一時的コンピューター可読媒体１２上に記憶された一組の命令を介してアプリケーションを実行するように構成することができる。非一時的コンピューター可読媒体１２は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、ソリッドステートドライブ（ＳＳＤ）、ハードディスクドライブ（ＨＤＤ）、又は他の任意のコンピューターメモリ等のコンピューターメモリを含むことができる。
【００２１】
一実施形態では、１つ以上のプロセッサ１１は、１つ以上のプロセッサ１１によって実行されているアプリケーションにユーザー入力を提供するのに用いられるハンドヘルドゲームコントローラー等の触覚対応コントローラー２０と通信するように構成することができる。上述のように、触覚対応コントローラー２０の例には、Ｏｃｕｌｕｓ（登録商標）Ｔｏｕｃｈゲームコントローラー、ＨＴＣ  Ｖｉｖｅ（登録商標）ゲームコントローラー、Ｓａｍｓｕｎｇ  Ｇｅａｒ（登録商標）ＶＲコントローラー、Ｘｂｏｘ（登録商標）ゲームコントローラー、Ｉｍｍｅｒｓｉｏｎ（登録商標）ＴｏｕｃｈＳｅｎｓｅ  Ｆｏｒｃｅ（ＴＳＦ）Ｇａｍｅｐａｄ、触覚対応マウス、及び触覚対応スタイラスが含まれる。上記例は、異なるタイプの触覚対応コントローラーを構成することができる。触覚対応コントローラー２０は、ユーザーの動き又はユーザーからの入力ジェスチャーを検知するように構成されたセンサーを備えることができる。幾つかの場合には、触覚対応コントローラー２０は、コンピューティングデバイス１０と無線で通信するように構成された無線通信ユニットを備えることができる。幾つかの場合には、触覚対応コントローラー２０は、コンピューティングデバイス１０への有線接続を有することができ、この有線接続を介してコンピューティングデバイス１０と通信するように構成することができる。この通信は、例えば、触覚対応コントローラー２０がユーザー入力をコンピューティングデバイス１０に通信することと、コンピューティングデバイス１０がコマンドを触覚対応コントローラー２０に提供することとを含むことができる。コマンドは、触覚対応コントローラー２０に対する触覚効果を生成するように当該触覚対応コントローラー２０に命令する触覚コマンドを含むことができる。幾つかの場合には、この触覚コマンドは、触覚対応コントローラー２０によって再生される触覚トラックを含むことができる。幾つかの場合には、コマンドは、触覚効果が生成される触覚対応コントローラー２０の触覚アクチュエーターを特定するアクチュエーター識別子を含むことができる。
【００２２】
一実施形態では、触覚対応コントローラー２０は、１つ以上の触覚アクチュエーター２１を備えることができる。１つ以上の触覚アクチュエーター２１は、偏心回転質量（ＥＲＭ）アクチュエーター、リニア共振アクチュエーター（ＬＲＡ）、ソレノイド共振アクチュエーター（ＳＲＡ）、圧電アクチュエーター、又は他の任意の触覚アクチュエーターを含むことができる。１つ以上の触覚アクチュエーター２１は、触覚対応コントローラー２０の本体に対して振動触知性触覚効果を生成するランブルアクチュエーターとして用いることもできるし、運動感覚性触覚効果を生成する運動感覚アクチュエーターとして用いることもできる。例えば、触覚対応コントローラー２０がトリガーを備える場合、１つ以上の触覚アクチュエーター２１は、トリガーに対する押動と引動とを交互に行ってその構成要素において運動感覚性触覚効果を生み出すように構成されたモーターアクチュエーターを含むことができる。一実施形態では、触覚対応コントローラー２０及びコンピューティングデバイス１０は、個別のデバイスである。
【００２３】
図１Ｂは、非一時的コンピューター可読媒体１２の一実施形態であるメモリ１２ａを示している。より具体的には、メモリ１２ａは、１つ以上のプロセッサ１１が実行することができるゲーミングアプリケーション又はＶＲアプリケーション等のアプリケーション１２ｂの命令及びデータを記憶する。アプリケーション１２ｂは、触覚効果の触覚トラックを生成するためにアプリケーション１２ｂによって用いられるアプリケーション１２ｂの構成要素とすることができる触覚効果生成構成要素１２ｄを含むことができる。アプリケーション１２ｂは、その場合、生成された触覚トラックを（例えば、無線通信ユニットを介して）触覚対応コントローラー２０に通信することができる。一実施形態では、触覚効果生成構成要素１２ｄは、アプリケーション１２ｂ内にインストールされるプラグイン又はバイナリーファイルとすることができる。
【００２４】
一実施形態では、触覚効果生成構成要素１２ｄは、触覚効果についての触覚トラックを記憶することができる。図１Ｂでは、触覚トラックは、第１の触覚効果についての第１の複数の触覚トラック１２ｅと、第２の触覚効果についての第２の複数の触覚トラック１２ｆとを含む。第１の複数の触覚トラック１２ｅ及び第２の複数の触覚トラック１２ｆの各触覚トラックは、特定のコントローラータイプに固有のものとすることもできるし、コントローラータイプとこのコントローラータイプ内に含まれる触覚アクチュエーターとの特定の組み合わせに更に固有のものとすることもできる。触覚アクチュエーターは、このコントローラータイプ内に含まれる複数の触覚アクチュエーターのうちの１つである場合もあるし、又は、代替的にはこのコントローラータイプ内に含まれる唯一の触覚アクチュエーターである場合もある。
【００２５】
一実施形態では、アプリケーション１２ｂが、第１の触覚効果及び第２の触覚効果を組み合わせた混合触覚効果が生成されると判断した場合、アプリケーション１２ｂは、その混合触覚効果についての混合触覚トラックを生成するように関数コールを行うか又は別の方法で触覚効果生成構成要素１２ｄに要求することができる。この要求の一部として、アプリケーション１２ｂは、混合触覚トラックが、特定のコントローラータイプ（例えば、ＨＴＣ  Ｖｉｖｅ（登録商標）ゲームコントローラーを含むタイプ）と、そのコントローラータイプ内に含まれる特定の触覚アクチュエーターとの組み合わせについて生成されていることを示すことができる。触覚効果生成構成要素１２ｄは、第１の複数の触覚トラック１２ｅの中から第１の触覚トラックを選択するとともに、第２の複数の触覚トラック１２ｆの中から第２の触覚トラックを選択するように構成することができる。これらの第１の触覚トラック及び第２の触覚トラックの各々は、コントローラータイプ及び触覚アクチュエーターの組み合わせに関連付けられる。触覚効果生成構成要素１２ｄは、その場合、第１の触覚トラック及び第２の触覚トラックから混合触覚トラックを生成し、この混合触覚トラックをアプリケーション１２ｂに戻すことができ、アプリケーション１２ｂは、この混合触覚トラックを触覚対応コントローラーに通信することができる。
【００２６】
一実施形態では、アプリケーション１２ｂは、少なくとも１つの混合パラメーターについて一組のパラメーター値１２ｃとすることができる。この少なくとも１つの混合パラメーターは、サンプリングパラメーター又は動作パラメーターを含むことができる。以下でより詳細に論述するように、動作パラメーターの例には、最大力パラメーター及びパッシブ力パラメーター（passive force parameter）が含まれる。一組のパラメーター値１２ｃの各パラメーター値は、コントローラータイプ及び触覚アクチュエーターの特定の組み合わせに固有のものとすることができる。幾つかの場合には、アプリケーション１２ｂは、ユーザー入力を現在提供しているコントローラータイプと、混合触覚効果を生成する触覚アクチュエーターとの特定の組み合わせに固有のパラメーター値を選択し、このパラメーター値を触覚効果生成構成要素に提供するように構成することができ、触覚効果生成構成要素は、このパラメーター値に基づいて混合触覚トラックを生成する。
【００２７】
図１Ｃは、コンピューティングデバイス１０の一実施形態とすることができるゲームコンソール２００を示している。ゲームコンソール２００は、コンピューター実行可能命令をメモリ２２０に記憶するように構成された単一のプロセッサ２１０を備えることができる。メモリ２２０は、バイナリーファイル又は他の実行可能ファイルとしてメモリ２２０に記憶することができるＶＲゲームアプリケーション等のゲームアプリケーション１５０を記憶する。ゲームアプリケーション１５０は、触覚効果を混合するように構成された触覚生成構成要素１５２（例えば、触覚生成機能又は触覚生成ライブラリー）を含むことができる。
【００２８】
一実施形態では、ゲームアプリケーション１５０は、種々のコントローラータイプをサポートするように構成することができる。図１Ｃは、コントローラータイプ１〜４をサポートするゲームアプリケーション１５０を示している。より具体的には、コントローラータイプ１はゲームコントローラー３００を含み、コントローラータイプ２はゲームコントローラー４００Ｌを含み、コントローラータイプ３はゲームコントローラー４００Ｒを含み、コントローラータイプ４はゲームコントローラー５００を含む。１つの例では、ゲームコントローラー３００はＯｃｕｌｕｓ（登録商標）Ｔｏｕｃｈコントローラーとすることができ、ゲームコントローラー４００Ｌは左手用ＨＴＣ  Ｖｉｖｅ（登録商標）ゲームコントローラーとすることができ、ゲームコントローラー４００Ｒは右手用ＨＴＣ  Ｖｉｖｅ（登録商標）ゲームコントローラーとすることができ、ゲームコントローラー５００はＩｍｍｅｒｓｉｏｎ（登録商標）ＴＳＦゲームパッドとすることができる。この例では、左手用ゲームコントローラー４００Ｌ及び右手用ゲームコントローラー４００Ｒは、ゲームコントローラーの異なるタイプ（すなわち、それぞれコントローラータイプ２及びコントローラータイプ３）に属するものとみなすことができる。
【００２９】
図１Ｃに示すように、コントローラータイプ１は、第１の触覚アクチュエーター（例えば、触覚アクチュエーター３１０）及び第２の触覚アクチュエーター（例えば、触覚アクチュエーター３２０）を含むことができる。第１の触覚アクチュエーターは、例えば、コントローラータイプ１に属するコントローラーに含まれるトリガー構成要素に対して引動及び押動を行うモーターを有する運動感覚アクチュエーターとすることができる。第２の触覚アクチュエーターは、例えば、ランブル又は他の形態の振動を生成するのに用いられるＥＲＭアクチュエーター等のランブルアクチュエーターとすることができる。さらに、図１Ｃにおいて、コントローラータイプ２は、コントローラータイプ２に属するコントローラーに含まれる唯一の触覚アクチュエーターとすることができる第１の触覚アクチュエーター（例えば、触覚アクチュエーター４１０）を含むことができる。同様に、コントローラータイプ３は、コントローラータイプ３に属するコントローラーに含まれる唯一の触覚アクチュエーターとすることができる第１の触覚アクチュエーター（例えば、触覚アクチュエーター４２０）を含むことができる。一例では、触覚アクチュエーター４１０、４２０の各々は、リニア共振アクチュエーター（ＬＲＡ）とすることができる。さらに、コントローラータイプ４は、第１の触覚アクチュエーター（例えば、触覚アクチュエーター５１０）、第２の触覚アクチュエーター（例えば、触覚アクチュエーター５２０）、第３の触覚アクチュエーター（例えば、触覚アクチュエーター５３０）、及び第４の触覚アクチュエーター（例えば、触覚アクチュエーター５４０）を含むことができる。幾つかの場合には、第１の触覚アクチュエーターは、ゲームコントローラー５００の左側に配置された第１の圧電アクチュエーターとすることができる一方、第２の触覚アクチュエーターは、ゲームコントローラー５００の右側に配置された第２の圧電アクチュエーターとすることができる。第３の触覚アクチュエーターは、例えば、運動感覚性触覚アクチュエーターとすることができる一方、第４の触覚アクチュエーターは、コントローラータイプ４に属するコントローラーの表面上に静的な変形又は低周波数の変形を生成するように構成された電気活性ポリマー（ＥＡＰ）アクチュエーターとすることができる。一実施形態では、これらの触覚アクチュエーターは、異なるアクチュエーター識別子を有することができる。例えば、コントローラータイプ４の第１の触覚アクチュエーターから第４の触覚アクチュエーターには、それぞれ識別子１〜４を割り当てておくことができる。
【００３０】
一実施形態では、ゲームアプリケーション１５０は、様々なゲームコントローラータイプ及びそれらの触覚アクチュエーターをそれぞれのエンドポイントとして表すことができる。例えば、図１Ｃにおけるゲームアプリケーション１５０は、コントローラータイプ１及びその第１の触覚アクチュエーターの組み合わせをエンドポイント１として表すことができる。ゲームアプリケーション１５０は、コントローラータイプ１及びその第２の触覚アクチュエーターの組み合わせをエンドポイント２として更に表すことができる。コントローラータイプ２及びその触覚アクチュエーターの組み合わせは、エンドポイント３として表すことができる一方、コントローラータイプ３及びその触覚アクチュエーターの組み合わせは、エンドポイント４として表すことができる。同様に、エンドポイント５〜８は、コントローラータイプ４と、コントローラータイプ４の第１の触覚アクチュエーターから第４の触覚アクチュエーターのうちの１つとのそれぞれの組み合わせを表すことができる。したがって、アプリケーション１５０は、種々のエンドポイントのサポートを提供することができる。一実施形態では、エンドポイント１〜８の各エンドポイントは、当該エンドポイントに関連付けられたコントローラータイプ及び触覚アクチュエーター（複数の場合もある）についての情報を含むデータ構造体とすることができる。例えば、各エンドポイントは、当該エンドポイントに関連付けられたゲームコントローラーの形状、グリップ位置（複数の場合もある）、又は質量を特定する情報を含むことができ、当該エンドポイントに関連付けられた１つ以上の動作パラメーター又は他の混合パラメーターのパラメーター値を含むことができる。
【００３１】
一実施形態では、触覚生成構成要素１５２は、第１の触覚効果についての第１のコンテナー及び第２の触覚効果についての第２のコンテナー等の複数の触覚効果コンテナーを含むことができる。第１の触覚効果コンテナーは、第１の触覚効果に関連付けられた複数の触覚トラックを格納するデータ構造体とすることができる一方、第２の触覚効果コンテナーは、第２の触覚効果に関連付けられた複数の触覚トラックを格納するデータ構造体とすることができる。
【００３２】
例えば、図１Ｄは、第１の触覚効果についての触覚効果コンテナー１７１を示している。この第１の触覚効果は、例えば、図１Ｃのゲームアプリケーション１５０における地震イベント、又はゲームアプリケーション１５０におけるユーザーの武器の発射の触覚効果とすることができる。図１Ｄは、第２の触覚効果の触覚効果コンテナー１７２を更に示している。この第２の触覚効果は、例えば、ユーザーがゲームアプリケーション１５０において損傷を受けることの触覚効果とすることができる。触覚効果コンテナー１７１は、エンドポイント１〜８についてそれぞれ触覚トラックＡ〜Ｈを格納することができる。触覚効果コンテナー１７２は、エンドポイント１〜８についてそれぞれ触覚トラックＩ〜Ｐを格納することができる。触覚トラックＡ〜Ｐは、触覚設計者が定義することもできるし、サウンドファイルを触覚トラックに変換すること等によって、触覚効果生成構成要素１５２によって事前に生成しておくこともできる。混合触覚効果が、特定のゲームコントローラーの特定の触覚アクチュエーターにおいて生成されるとき、触覚効果生成構成要素１５２は、このゲームコントローラーのコントローラータイプと、混合触覚効果が生成される触覚アクチュエーターとに関連付けられたエンドポイントに関連した触覚トラックのみを選択することができる。例えば、触覚効果生成構成要素１５２が、ゲームコントローラー３００のアクチュエーター３１０（コントローラータイプ１の第１の触覚アクチュエーターである）について第１の触覚効果と第２の触覚効果とを混合している場合、触覚生成構成要素１５２は、触覚トラックＡ及び触覚トラックＩのみがエンドポイント１の混合触覚効果を生成するのに用いられるように、触覚効果コンテナー１７１から触覚トラックＡのみを選択するとともに、触覚効果コンテナー１７２から触覚トラックＩのみを選択するように構成することができる（これらの双方は、コントローラータイプ１の第１の触覚アクチュエーターに対応する）。
【００３３】
一実施形態では、触覚効果生成構成要素１５２は、動作パラメーター等の少なくとも１つの混合パラメーターについての複数のパラメーター値を更に含むことができる。例えば、触覚効果生成構成要素１５２は、最大力パラメーター（以下で説明する）についての８つのパラメーター値を含むことができる。これらの８つのパラメーター値は、それぞれエンドポイント１〜８に対応する。換言すれば、複数のパラメーター値は、コントローラータイプ及び触覚アクチュエーターのそれぞれの組み合わせと対応することができる。
【００３４】
図１Ｅは、触覚生成構成要素１５２を構成するのに用いることができるゲーム編集コンピューター１００を示している。より具体的には、ゲーム編集コンピューター１００は、ゲーム編集環境を提供することができる一方、図１Ｃのゲームコンソール２００は、ゲーム実行（又はランタイム）環境（又は、より一般的には、アプリケーション実行環境）を提供する。一実施形態では、ゲーム編集コンピューター１００は、プロセッサ１１０及びメモリ１２０を有することができる。メモリ１２０は、コンピューター実行可能命令（例えば、コード）及び他の任意のコンピューター可読情報（例えば、コンピューターデータ）を記憶することができる任意の非一時的コンピューター可読媒体（例えば、ハードドライブ又はソリッドステートメモリ）とすることができる。メモリ１２０は、ゲームエディタープログラム１３０（ゲームエディターアプリケーションとも呼ばれる）を構成するコード及びデータを記憶することができる。ゲームエディタープログラム１３０は、ゲームプログラム１５０のソースコード及びデータを生成するのに用いることができる。一実施形態では、ゲームエディタープログラム１３０は、例えば、ゲーム設計者がゲームプレーのアニメーション及び他の態様を設計することを可能にするエディターユーザーインターフェース（ＵＩ）を提供するゲームエンジンとすることができる。ゲームエディタープログラム１３０は、触覚効果設計プラグイン１４０（例えば、ＴｏｕｃｈＳｅｎｓｅ  Ｆｏｒｃｅ（ＴＳＦ）プラグイン）を実行するコードを更に含むことができる。触覚効果設計プラグイン１４０は、ゲーム設計者が触覚効果も設計することを可能にするアプリケーションプログラミングインターフェース（ＡＰＩ）を提供することができる。
【００３５】
一実施形態では、触覚効果設計プラグイン１４０は、ゲーム設計者が特定のゲームコントローラーの特定の触覚アクチュエーター上で再生される触覚トラックを設計することを可能にするユーザーインターフェースを生成するように構成することができる。触覚トラックは、時間の関数である波形として、又はより一般的にはそれぞれのトラック値を有する一組のトラックサンプルとして表すことができる。トラック値は、０〜１の範囲又は−１〜１の範囲等の規定範囲内とすることができる。トラック値は、例えば、最終的には電圧信号又は電流信号に変換される無次元量によるものとすることができる。一実施形態では、トラック値は、ゲーム設計者又は触覚効果設計者が触覚アクチュエーターの所望の出力を経時的に示すために用いることができる。この所望の出力は、例えば、触覚アクチュエーターによって出力される所望の力の量又は所望の動きの量等の所望の触覚効果強度とすることができる。幾つかの場合には、ゲーム設計者は、ユーザーインターフェースを介して波形を描くことによって触覚トラックを定義することができる。この波形は、触覚トラックの様々なトラックサンプルの一組のトラック値を表す。触覚トラックが設計者によって定義された後、プラグイン１４０は、ゲームプログラム１５０の触覚生成構成要素１５２の一部として触覚トラックを記憶することができる。一実施形態では、プラグイン１４０は、触覚効果を生成する様々な他の命令及びデータも記憶することができる。そのような命令及びデータも、ゲームプログラム１５０の触覚生成構成要素１５２の一部として記憶することができる。
【００３６】
一実施形態では、プラグイン１４０（例えば、ＴＳＦプラグイン）は、ソースコード（ゲームアプリケーションとともにコンパイルされる）として全体をリリースすることができるように設計することもできるし、バイナリーとして全体をリリースする（及びこのプラグインをコンパイルするのに用いられる正確なエンジンビルドとのみ互換性を有する）ことができるように設計することもできる。一実施形態では、ＴＳＦプラグインは、ゲームアプリケーションのゲームエンジン内に接続する部分のみがソースコードとして公開されるように部分ソース配布としてリリースすることができる。触覚効果生成をハンドリングする全ての部分をゲームエンジンから結合解除して、別個にコンパイルし、バイナリー形式で配信することができる。一実施形態では、ＴＳＦプラグインは、当該ＴＳＦプラグインのＡＰＩ下にある複数のエンドポイントをサポートすることができる。一実施形態では、ゲームエディタープログラム１３０は、ゲームアプリケーション１５０をコンパイルして、バイナリーファイル又は他の実行可能ファイルを生成することができる。このバイナリーファイル又は実行可能ファイルは、（例えば、ネットワークを経由して又はＣＤ等の物理記憶媒体を介して）エンドユーザーに転送することができ、このエンドユーザーは、このバイナリーファイル又は実行可能ファイルを介してゲームアプリケーション１５０をコンピューティングデバイス（例えば、ゲームコンソール２００）上にインストールすることができる。
【００３７】
図１Ｆは、触覚生成構成要素１５２によって行われる混合の概略を提供している。より具体的には、図１Ｆは、コントローラータイプ１の第１の触覚アクチュエーター（例えば、ゲームコントローラー３００の触覚アクチュエーター３１０）についての第１の触覚効果及び第２の触覚効果の混合の一例を示している。上述のように、コントローラータイプ１及び第１の触覚アクチュエーターの組み合わせは、エンドポイント１によって表すことができる。触覚生成構成要素１５２は、エンドポイント１に関連付けられた触覚トラックを選択することができる。より具体的には、触覚生成構成要素１５２は、触覚効果コンテナー１７１内の複数の触覚トラックの中から触覚トラックＡのみを選択することができ、触覚効果コンテナー１７２内の複数の触覚トラックの中から触覚トラックＩのみを選択することができ、触覚トラックＡ及び触覚トラックＩを有する混合触覚トラックを生成することができる。図１Ｆに更に示すように、触覚効果生成構成要素１５２は、エンドポイント１に関連付けられた１つ以上のパラメーター値を用いることができる。これらの１つ以上のパラメーター値は、１つ以上の動作パラメーター等の１つ以上の混合パラメーター用のものである。１つ以上のパラメーター値は、共通混合アルゴリズムを制御するのに用いることができる。さらに、１つ以上のパラメーター値は、触覚生成構成要素に（例えば、ソフトウェアライブラリーに値として）記憶することもできるし、ゲームアプリケーション１５０を介して触覚生成構成要素１５２に提供することもできる。図１Ｆに示すように、共通混合アルゴリズムは、一実施形態では、スケーリング／オフセット機能（scaling/offset function）及びマージ機能（merging function）を含むことができる。スケーリング／オフセット機能は、触覚トラックをスケーリングするのに用いることができる一方、マージ機能は、２つの触覚トラックを組み合わせるのに用いることができる。
【００３８】
より具体的には、一実施形態では、スケーリング／オフセット機能は、１つ以上のパラメーター値を用いて、スケーリングされた触覚トラックを生成することができる。図１Ｇは、触覚トラックＡ及び触覚トラックＩの一例を示している。触覚トラックの各々は、複数のトラックサンプルによって定義することができ、これらの複数のトラックサンプルの各々は、０〜１（これらの値は無次元値である）の範囲等の第１の規定範囲内にあるトラック値を有することができる。触覚トラックＡ及び触覚トラックＩは、同じ長さ（例えば、同じトラックサンプル数又は同じ持続時間）を有する場合もあるし、異なる長さ（例えば、異なるトラックサンプル数又は異なる持続時間）を有する場合もある。一実施形態では、混合触覚効果を生成することを意図した触覚アクチュエーターは、０〜２５５（無次元値）の範囲内にある触覚トラック値を入力として受信し、その範囲内のトラック値を、０Ｖ〜５Ｖの範囲内の電圧値に変換するように設計することができる。したがって、以下でより詳細に説明するように、触覚トラックＡ及び触覚トラックＩのトラック値を０〜２５５の範囲にスケーリングすることができる。一実施形態では、スケーリング／オフセット機能は、触覚トラックＡ又は触覚トラックＢのトラック値にオフセットを導入することもできる。このオフセットは、触覚トラックが、ゼロ力又はゼロ作動を指定する第１の値（例えば、０）を用いて設計されたが、触覚アクチュエーターが、異なる値をゼロ力又はゼロ作動と解釈するときに導入することができる。
【００３９】
一実施形態では、図１Ｆのマージ機能は、２つのスケーリングされた触覚トラックを組み合わせて混合触覚トラックを生成するのに用いることができる。例えば、マージ機能は、混合触覚トラックの第ｉのサンプルのトラック値が、スケーリングされた触覚トラックの第ｉのサンプルの和から、スケーリングされた触覚トラックの第ｉのサンプルの積を引いたものに等しい混合触覚トラックを生成することができる。マージ機能は、スケーリングされた触覚トラックの平均化等の他の或る機能とすることもできる。図１Ｇは、触覚トラックＡをスケーリングしたものと、触覚トラックＩをスケーリングしたものとを混合することによって生成される混合触覚トラックを示している。一実施形態では、混合触覚トラック、触覚トラックＡ、及び触覚トラックＩは全て、同じ長さ（例えば、同じサンプル数）を有する。一実施形態では、混合触覚トラック、触覚トラックＡ、及び触覚トラックＩは、異なる長さを有する場合がある。
【００４０】
本発明における実施形態の１つの態様は、エンドポイント１〜８の全て等の種々のエンドポイントについて共通混合器アルゴリズムを用いることに関する。すなわち、コントローラータイプ及び触覚アクチュエーターの異なる組み合わせが、同じスケーリング／オフセット機能及び同じマージ機能等の同じ混合器アルゴリズムに依拠することができる。共通混合器アルゴリズムの使用は、より拡張性の高い触覚生成構成要素を提供することができる。コントローラータイプ及び触覚アクチュエーターの新たな組み合わせをサポートする必要があるときも、触覚生成構成要素１５２は、同じ混合器アルゴリズムを用いることができる。したがって、触覚生成構成要素１５２を再プログラミングする必要はない。一方、触覚効果生成構成要素１５２は、１つ以上のパラメーター値を用いるとともに、コントローラータイプ及び触覚アクチュエーターの新たな組み合わせに固有の触覚トラックを用いることによって、新たな組み合わせに固有の方法で触覚効果を引き続き混合可能とすることができる。別の実施形態では、触覚生成構成要素１５２は、少なくとも２つの異なる混合アルゴリズムのコンピューター可読命令を記憶しておくことができる。そのような実施形態では、アプリケーション１５０は、同じく混合パラメーターである混合実施（Mix Implementation）パラメーター及び／又はスケーリング実施（Scale Implementation）パラメーターを用いて、混合触覚トラックを生成するのにどの混合アルゴリズムを用いるのかを指定するように構成することができる。一実施形態では、混合実施パラメーターの値及び／又はスケーリング実施パラメーターの値は、触覚生成構成要素１５２によって用いられているデフォルトアルゴリズムを無効にするのに用いることができる。例えば、混合実施パラメーターは、例えば、２つの触覚トラックを平均化する第１のマージ機能と、２つの触覚トラックを乗算する第２のマージ機能とのどちらかを選択する値を有することができる。
【００４１】
図２は、触覚生成構成要素１５２が触覚トラックを混合するのに用いることができるフロー図を示している。一実施形態では、このフロー図は、触覚生成構成要素１５２、又はより一般的にはゲームアプリケーション１５０がデバイス構成を定義するステップ６０１を含む。一実施形態では、ステップ６０１は、ユーザー入力をアプリケーション１５０に現在提供している触覚対応コントローラーのコントローラータイプを求めることと、このコントローラータイプに属する１つ以上のどの触覚アクチュエーターがそれぞれの混合触覚効果を出力するのかを求めることとを含むことができる。例えば、ユーザーが、現在、ゲームコントローラー５００を用いてゲームアプリケーション１５０をプレーしている場合、ステップ６０１は、コントローラータイプ４の触覚対応コントローラーがユーザー入力をゲームアプリケーション１５０に提供するのに用いられていると判断することを含むことができ、コントローラータイプ４に含まれる第１の触覚アクチュエーター（触覚アクチュエーター５１０に対応する）及び第２の触覚アクチュエーター（触覚アクチュエーター５２０に対応する）がそれぞれの混合触覚効果を同時に各々生成すると判断することを更に含むことができる。これらの第１の触覚アクチュエーター及び第２の触覚アクチュエーターの各々は、第１の触覚効果及び第２の触覚効果を組み合わせた混合触覚効果を生成する。
【００４２】
一実施形態では、混合は、複数の反復を有するループにおいて行うことができる。複数の反復は、クロックによって駆動することができ、各反復は、クロック信号の立ち上がりエッジ又は立ち下がりエッジ等のクロックティック（クロックサイクルとも呼ばれる）によってトリガーされる。クロックティックは、周期性を有することができ、例えば、１００ｍｓｅｃ又は他の或る持続時間の周期を有することができる。したがって、一実施形態では、混合は周期的に（例えば、１００ｍｓｅｃごとに）行うことができる。
【００４３】
図２に示すように、混合は、一実施形態では、アクチュエーター５１０及びアクチュエーター５２０等の複数のアクチュエーターの各々に適用することができる。例えば、ゲームコントローラー５００がユーザー入力をアプリケーション１５０に提供している間、アプリケーション１５０における第１のイベントが第１の触覚効果をトリガーし、第２のイベントが第２の触覚効果を同時にトリガーした場合、触覚アクチュエーター５１０は、第１の触覚効果及び第２の触覚効果を組み合わせた第１の混合触覚効果を生成することができる一方、触覚アクチュエーター５２０は、同じく第１の触覚効果及び第２の触覚効果を組み合わせた第２の混合触覚効果を同時に生成することができる。
【００４４】
一実施形態では、ステップ６０２において、触覚生成構成要素は、特定の触覚アクチュエーターについて混合されている触覚トラックのトラックサンプルを通してループすることができる。例えば、ループの各反復は、触覚トラックＡの２０個のトラックサンプルを取り出すことと、触覚トラックＩの２０個のトラックサンプルを取り出すこととを含むことができる。一実施形態では、ステップ６０２は、混合パラメーターの或るタイプであるサンプリングパラメーターによって制御することができる。例えば、このサンプリングパラメーターは、その値（例えば、２０）が、ループの反復ごとに幾つのトラックサンプルを触覚トラックの各々から取り出して混合するのかを指定する更新別サンプル（Samples Per Update）パラメーターとすることができる。
【００４５】
ステップ６０４において、触覚生成構成要素１５２は、触覚トラックＡのトラックサンプルとトラックＩのトラックサンプルとの混合等の触覚トラックサンプルの混合を行うことができる。例えば、ステップ６０４は、トラック値とスケーリング係数とを乗算すること等によって、触覚トラックＡのトラックサンプルのそれぞれのトラック値をスケーリングすることと、触覚トラックＩのトラックサンプルのそれぞれのトラック値を同様にスケーリングすることとを含むことができる。この例では、触覚生成構成要素１５２は、その後、例えば、触覚トラックＡのスケーリングされたトラック値と、触覚トラックＩの対応するスケーリングされたトラック値との和又は平均を取ることができる。この和又は平均は、例えば、図１Ｆに示す例のように、サンプル単位で行うことができる。
【００４６】
図３Ａ及び図３Ｂは、混合触覚効果を生成する方法７００の別のフロー図を示している。一実施形態では、方法７００は、コンピューティングデバイス１０のプロセッサ１１、又はより具体的にはゲームコンソール２００のプロセッサ２１０によって実行することができる。一実施形態では、本方法はステップ７０２から開始し、このステップにおいて、プロセッサ２１０は、ＶＲ環境を有するゲームアプリケーション等のアプリケーションを実行する。ゲームアプリケーションは、例えば、ファーストパーソンシューター（first-person shooter：一人称シューティング）ゲーム、自動車レース、又は他の任意のゲームアプリケーションとすることができる。幾つかの場合には、ゲームアプリケーションは、拡張現実（ＡＲ）環境を提供することができる。幾つかの場合には、ゲームアプリケーションは、マルチユーザー又はマルチプレーヤーのゲーム環境を提供することができる。
【００４７】
ステップ７０３において、プロセッサ２１０は、ユーザー入力をアプリケーションに提供している触覚対応コントローラーのコントローラータイプを特定するか又は別の方法で求める。このコントローラータイプに属する任意の触覚対応コントローラーは、１つ以上の触覚アクチュエーターを有する。例えば、プロセッサ２１０は、ゲームコントローラー３１０がコンピューター２００と通信接続（例えば、無線ペアリング又はプラグイン）され、その結果、図１Ｃにおけるゲームコントローラー３１０（コントローラータイプ１に属する）がユーザー入力をアプリケーションに提供していると判断することができる。プロセッサ２１０は、次に、コントローラータイプ１の触覚対応コントローラーからユーザー入力を受信していると判断することができる。幾つかの場合には、アプリケーションは、一時に１つのタイプの触覚対応コントローラーのみからユーザー入力を受信するように制限することができる。幾つかの場合には、アプリケーションは、複数のタイプの触覚対応コントローラーからユーザー入力を同時に受信可能とすることができる。
【００４８】
ステップ７０４において、プロセッサ２１０は、第１の触覚効果及び第２の触覚効果を組み合わせた混合触覚効果が１つ以上の触覚アクチュエーターのうちの触覚アクチュエーターによって生成されると判断する。例えば、アプリケーションにおける第１のイベント又は条件は、第１の触覚効果をトリガーすることができる一方、アプリケーションにおける第２のイベント又は条件は、第２の触覚効果を同時にトリガーする。換言すれば、第１の触覚効果及び第２の触覚効果のそれぞれのトリガーイベントとすることができる第１のイベント及び第２のイベントは、時間が重複してもよい。幾つかの場合には、第１のイベント及び第２のイベントは、時間が完全に重複するイベントとすることができる同時のイベントであってもよい。１つの例では、自動車レースゲームアプリケーションにおいて、第１のイベント又は条件は、仮想自動車がでこぼこ道を運転されていることとすることができ、これについて、第１の触覚効果は、でこぼこ道の運転をシミュレーションするように生成することができる。第２のイベント又は条件は、仮想自動車がガードレールに衝突することとすることができ、これについて、第２の触覚効果は、仮想自動車がガードレールに衝突することをシミュレーションするように生成することができる。ゲームアプリケーションの実行中に、仮想自動車がでこぼこ道を走行しており、ガードレールに衝突もする場合、仮想自動車がでこぼこ道の走行及びガードレールへの衝突を同時に行うことを伝達するために、第１の触覚効果及び第２の触覚効果を組み合わせた混合触覚効果を再生することができる。一実施形態では、この混合触覚効果は、コントローラー３１０又はコントローラー４１０Ｌ等の触覚対応コントローラー上に生成される。
【００４９】
幾つかの場合には、ステップ７０４は、どの触覚アクチュエーターが混合触覚効果を生成するのかを選択することを含むことができる。この選択は、上記コントローラータイプに属する触覚アクチュエーターに含まれる触覚アクチュエーターの中から行うことができる。例えば、この選択は、コントローラータイプ１（コントローラー３１０が属する）の第１の触覚アクチュエーター及び第２の触覚アクチュエーターの中から行うことができ、混合触覚効果を生成する触覚アクチュエーターのうちの１つ（例えば、第１の触覚アクチュエーター）のみを選択することができる。この選択は、例えば、触覚アクチュエーターの配置及び／又はアクチュエータータイプに基づくことができる。例えば、第１の触覚効果及び第２の触覚効果がともにランブル触覚効果である場合、この選択は、ランブルアクチュエーターである触覚アクチュエーターのみを選択することができ、コントローラータイプに含まれるあらゆる運動感覚性触覚アクチュエーターを除外することができる。幾つかの場合には、そのような選択を省略することができ、コントローラータイプの全ての触覚アクチュエーター（例えば、第１の触覚アクチュエーター及び第２の触覚アクチュエーター）を、異なるそれぞれの混合触覚効果を生成するのに用いることができる。
【００５０】
ステップ７０８において、プロセッサ２１０は、第１の触覚効果に関連付けられた第１の複数の触覚トラックの中から、第１の触覚効果に関連付けられかつコントローラータイプと混合触覚効果を生成する触覚アクチュエーターとの組み合わせに関連付けられた第１の触覚トラックを選択する。例えば、混合触覚効果が、コントローラータイプ２の第２の触覚アクチュエーターにおいて生成されている場合、プロセッサ２１０は、図１Ｄにおいて触覚トラックＡ〜Ｈの中から触覚トラックＢのみを選択することができる。一実施形態では、選択された触覚トラックは、メモリ（例えば、メモリ２２０）から取り出すことができる。一実施形態では、第１の触覚トラックは、第１の規定範囲（例えば、０〜１の範囲）にわたるそれぞれのトラック値を有する一組のサンプルによって規定される。第１の触覚トラックの１つの例は、次のそれぞれのトラック値、すなわち、０，０．１，０．４，０．５，０．５５，０．６５．．．０．９７，１，１，０．８，０．３，０．２４，．．．を有する一組のサンプルによって表される波形とすることができる。
【００５１】
ステップ７１０において、プロセッサ２１０は、第２の触覚効果に関連付けられた第２の複数の触覚トラックの中から、第２の触覚効果に関連付けられかつコントローラータイプ及び触覚アクチュエーターの組み合わせに関連付けられた第２の触覚トラックを選択する。例えば、コントローラー２１０は、触覚トラックＩ〜Ｐの中から触覚トラックＩのみを選択することができる。幾つかの場合には、第２の触覚トラックは、メモリから更に取り出すことができる。ステップ７０８と同様に、第２の触覚トラックも、それぞれのトラック値を有する複数のトラックサンプルによって規定することができる。第２の触覚トラックのトラック値も、第１の規定範囲（第１の触覚トラックの規定範囲と同じ範囲）内にすることもできるし、第１の規定範囲と異なる第２の規定範囲内にすることもできる。
【００５２】
ステップ７１２において、プロセッサ２１０は、触覚アクチュエーター動作を記述した動作パラメーターについての複数のパラメーター値の中から、コントローラータイプ及び触覚アクチュエーターの組み合わせに関連付けられたパラメーター値を選択する。例えば、プロセッサは、ともにコントローラータイプ及び触覚アクチュエーターの組み合わせに関連付けられた最大力パラメーター値及びパッシブ力パラメーター値のみを選択することができる。
【００５３】
一実施形態では、動作パラメーターは、触覚アクチュエーターが１つ以上の触覚トラック値にどのように応答するのかを記述したパラメーターとすることができる。例えば、動作パラメーターは、最大力パラメーターとすることができる。この最大力パラメーターのパラメーター値は、規定された定格最大力又は規定された定格最大作動のうちの少なくとも一方等の定格最大強度を触覚アクチュエーターに生成させる触覚トラック値とすることができる。幾つかの場合には、最大力パラメーターのパラメーター値は、触覚アクチュエーターが当該触覚アクチュエーターの規定された定格最大電圧に直接変換する触覚トラック値とすることができる。例えば、コントローラータイプ１の特定の触覚アクチュエーターは、０〜２５５の範囲内にあるデジタル入力値を受信するように設計することができ、５Ｖの規定された定格最大電圧を有することができる。この例では、触覚アクチュエーターは、第１の範囲に５Ｖ／２５５の比を乗算する線形関係に基づいて、０〜２５５の範囲内のデジタル値（無次元値である）を０Ｖ〜５Ｖの電圧範囲に変換するように構成することができる。したがって、この例における最大力パラメーターのパラメーター値は、触覚アクチュエーターがその規定された定格最大電圧に変換する触覚トラック値である２５５とすることができる。
【００５４】
幾つかの場合には、動作パラメーターは、パッシブ力パラメーターを含むことができる。このパッシブ力パラメーターのパラメーター値は、ゼロ力（zero force）又はゼロ作動（すなわち、ゼロ力、ゼロ作動、又はゼロ力及びゼロ作動の双方）を触覚アクチュエーターに生成させる触覚トラック値とすることができる。換言すれば、触覚アクチュエーターが、パッシブ力パラメーターのパラメーター値に等しい触覚トラック値を入力として受信した場合、触覚アクチュエーターは、力又は作動を実質的に出力しないようにすることができる。パッシブ力パラメーターは、以下でより詳細に示される。
【００５５】
ステップ７１４において、プロセッサ２１０は、パラメーター値に基づいて、第１の触覚トラック及び第２の触覚トラックを組み合わせた混合触覚トラックを生成する。例えば、プロセッサ２１０が、エンドポイント１（コントローラータイプ１の第１の触覚アクチュエーター）の混合触覚トラックを生成する場合、ステップ７１４における生成は、コントローラータイプ１の第１の触覚アクチュエーターに関連付けられた最大力パラメーター値と、コントローラータイプ１の第１の触覚アクチュエーターに関連付けられたパッシブ力パラメーター値とに基づくことができる。
【００５６】
ステップ７１６において、プロセッサ２１０は、混合触覚トラックを触覚対応コントローラー（例えば、ゲームコントローラー３００）に通信（例えば、送信）することによって、触覚アクチュエーター（例えば、触覚アクチュエーター３１０）を制御して混合触覚効果を生成することができる。幾つかの場合には、この通信は、ゲームコントローラーのどの触覚アクチュエーターが混合触覚効果を生成するのかを示す識別子を含むことができる。
【００５７】
一実施形態では、混合触覚トラックの生成は、第１の触覚トラック及び第２の触覚トラックの各々を最大力パラメーターのパラメーター値に基づいてスケーリングして、スケーリングされた第１の触覚トラック及びスケーリングされた第２の触覚トラックを生成することと、スケーリングされた第１の触覚トラック及びスケーリングされた第２の触覚トラックを組み合わせることとを含むことができる。例えば、図４Ａは、触覚トラックＡがスケーリングされて、スケーリングされた触覚トラックＡが生成されるとともに、触覚トラックＢがスケーリングされて、スケーリングされた触覚トラックＢが生成される混合アルゴリズムの概略を提供している。この例では、触覚トラックＡの全てのトラックサンプル及び触覚トラックＢの全てのトラックサンプルは、０〜１の範囲内にあるそれぞれのトラック値を有することができる。このスケーリングは、例えば、スケーリングされた触覚トラックＡの全てのトラックサンプル及びスケーリングされた触覚トラックＢの全てのトラックサンプルが０〜２５５の範囲内にあるそれぞれのトラック値を有するように、それらのトラック値を増倍することを含むことができる。次に、混合プロセスは、スケーリングされた触覚トラックＡ及びスケーリングされた触覚トラックＢを、マージ機能を介して組み合わせて、混合触覚トラックを生成することができる。例えば、マージ機能は、スケーリングされた触覚トラックＡのトラック値と、スケーリングされた触覚トラックＢの対応するトラック値との平均を計算して、混合触覚トラックを生成することができる。一実施形態では、混合触覚トラックの全てのトラック値も、０〜２５５の範囲内にすることができる。一実施形態では、混合触覚トラックは、触覚アクチュエーターによって受け取られる入力とすることができる。触覚アクチュエーターは、その場合、マッピング機能及び／又はデジタル／アナログ変換器（ＤＡＣ）を用いて、混合触覚トラックのトラック値を電圧駆動信号に変換することができる。例えば、マッピング機能及び／又はＤＡＣは、トラック値の各々に５／２５５Ｖを乗算することができる。
【００５８】
図４Ｂは、触覚トラックＡがスケーリングされて、スケーリングされた触覚トラックＡが生成される一例を示している。図４Ｂにおいて、触覚トラックＡは、全てが０〜１の第１の規定範囲内にあるトラック値を有することができる。スケーリングは、第１の規定範囲を触覚アクチュエーターの動作入力範囲にマッピングすることを含むことができる。一実施形態では、この動作入力範囲は、触覚アクチュエーターへの有効な入力値である触覚トラック値の範囲とすることができる。例えば、触覚アクチュエーターは、０〜２５５の動作入力範囲内にあるデジタル入力値を受け取るように設計することができる。したがって、図４Ｂにおけるスケーリングは、０〜１の第１の範囲から０〜２５５の第２の範囲に触覚トラックＡのトラック値をマッピングすることを含むことができる。
【００５９】
一実施形態では、動作パラメーターの値は、動作入力範囲を少なくとも部分的に特定することができる。例えば、最大力パラメーターは、触覚アクチュエーターの動作入力範囲の最大値に等しい値を有することができる。幾つかの場合には、触覚アクチュエーターは、最大力パラメーター値に等しい触覚トラック値を、触覚アクチュエーターの規定された定格最大電圧に対応するものとして解釈することができる。図４Ｂの実施形態では、触覚トラックＡのトラック値に、最大力パラメーターの値を第１の規定範囲の最大値によって除算したものに等しい比（すなわち、２５５に等しい比）を乗算すること等によって、第１の規定範囲の最大値（すなわち、１）を最大力パラメーターの値にマッピングすることができる。
【００６０】
一実施形態では、図４Ｂに示すように、触覚トラックＡにおけるゼロ値は、スケーリングされた触覚トラックＡにおいても引き続きゼロである。換言すれば、第１の規定範囲におけるゼロ値は、触覚アクチュエーター（例えば、ランブルアクチュエーター）の動作入力範囲におけるゼロ値にマッピングすることができる。図４Ｃは、触覚トラックＡにおけるゼロ値が、１２８の値等の、スケーリングされた触覚トラックＡにおいてゼロ以外の値にマッピングされる一実施形態を示している。より詳細には、触覚トラックＡにおけるゼロ値は、図４Ｃにおいて１２８に等しいパッシブ力パラメーターのパラメーター値にマッピングすることができる。パッシブ力パラメーターは、触覚アクチュエーターにゼロ力又はゼロ作動を出力させる触覚トラック値を特定することができる。幾つかの場合には、パッシブ力パラメーターのパラメーター値は、最大力パラメーターのパラメーター値の略２分の１（例えば、最も近い整数に丸められたもの）とすることができる。
【００６１】
幾つかの場合には、パッシブ力パラメーターのパラメーター値は、運動感覚性触覚アクチュエーターを駆動するのに有用であり得るゼロからのオフセットを提供するために、ゼロよりも大きくすることができる。例えば、運動感覚性触覚アクチュエーターは、第１の方向への移動（例えば、ゲームコントローラーのトリガー構成要素の引動）及び第２の方向への移動（例えば、トリガー構成要素の押動）を行うように制御することができるトリガーアクチュエーターとすることができる。そのような触覚アクチュエーターの場合、パッシブ力パラメーターのパラメーター値よりも小さな触覚トラック値は、触覚アクチュエーターが第１の方向に移動するか又は第１の方向に力を生成することを示すことができ、パッシブ力パラメーターのパラメーター値よりも大きな触覚トラック値は、触覚アクチュエーターが反対の第２の方向に移動するか又は第２の方向に力を生成することを示すことができる。
【００６２】
一実施形態では、図４Ｄは、運動感覚性触覚アクチュエーターを駆動して第１の方向に移動させ、その後、反対の第２の方向に移動させるように構成されたトラック値を有する触覚トラックＡを示している。この例では、触覚トラックＡのトラックサンプルの全ては、−１〜１の範囲内にあるトラック値を有する。第１の範囲の最大値（すなわち、１）は、最大力パラメーターのパラメーター値（例えば、２５５）にマッピングすることができる。さらに、第１の範囲におけるゼロ値は、パッシブ力パラメーターのパラメーター値（例えば、１２８）にマッピングすることができ、第１の範囲の最小値（すなわち、−１）は、触覚アクチュエーターの動作入力範囲のゼロ値にマッピングすることができる。したがって、１２８よりも小さなスケーリングされた触覚トラックＡのトラック値は、第１の方向における作動を触覚アクチュエーターに出力させることができる一方、１２８よりも大きなスケーリングされた触覚トラックＡのトラック値は、反対の第２の方向における作動を触覚アクチュエーターに出力させることができる。
【００６３】
一実施形態では、上記で説明した動作パラメーターは、２つの触覚トラックの混合を行うのに用いられる混合パラメーターのサブセットとすることができる。混合は、ループの１つの反復において幾つのトラックサンプルを混合するのかを示すパラメーター、サンプル持続時間又はサンプル周波数を示すパラメーター、混合実施を示すパラメーター、及びスケーリング実施を示すパラメーター等の他の混合パラメーターを用いることができる。サンプル持続時間は、各トラック値が触覚アクチュエーターに適用される時間（例えば、１０ｍｓｅｃ）を示すことができる。サンプル持続時間は、サンプル周波数（例えば、１００Ｈｚ）の逆数であってもよい。一実施形態では、混合実施は、触覚アクチュエーターが双方向運動感覚性触覚アクチュエーターであるのか又はランブルアクチュエーターであるのかを示すことができる。一実施形態では、混合実施及びスケール実施は、デフォルトの混合アルゴリズム又はスケーリングアルゴリズムが２つのスケーリングされた触覚トラックを混合するのに用いられることを無効にするコードを含むことができる。例えば、それらの実施は、用いられているデフォルト式と異なる式を計算するコードを含むことができる。
【００６４】
一実施形態では、第１の触覚トラック及び第２の触覚トラックをスケーリングして、スケーリングされた第１の触覚トラック及びスケーリングされた第２の触覚トラックを生成することは、第１の規定範囲内のトラック値が較正されるか又は別の方法で触覚アクチュエーターの動作入力範囲にマッピングされるように実行される。一実施形態では、図４Ｂ〜図４Ｄに示すマッピングは、触覚トラックＡの各トラックサンプルのトラック値に、最大力パラメーターのパラメーター値（例えば、２５５）とパッシブ力パラメーターのパラメーター値（例えば、１２８）との間の差を第１の規定範囲のサイズによって除算したものに等しい比を、乗算することとして説明することができる。この第１の規定範囲のサイズは、図４Ｂ〜図４Ｄでは、第１の規定範囲の最大値（すなわち、１）に等しい。上記例では、上記比は、（２５５−１２８）／１＝１２７に等しいものとすることができる。マッピングは、触覚トラックＡのトラックサンプルの各々のトラック値と上記比とを乗算する（例えば、１２７を乗算する）ことと、次に、その結果とパッシブ力パラメーターのパラメーター値とを加算する（例えば、１２８を加算する）こと、又はその結果と、パッシブ力パラメーターのパラメーター値から１を引いたものとを加算する（例えば、１２７を加算する）こととを更に含むことができる。
【００６５】
図５は、触覚トラックＡ及び触覚トラックＩ等の２つの触覚トラックが、事前にスケーリングされることなく、マージ機能によって組み合わされる一実施形態を示している。１つの例では、マージ機能は、触覚トラックＡ及び触覚トラックＩの和から、触覚トラックＡ及び触覚トラックＩの積（例えば、ドット積）を引いたものを出力する一実施態様を有することができる。混合触覚トラックは、例えば、０〜１の第１の規定範囲内にあるトラック値を有することができ、その後、スケーリングされた混合触覚トラックにスケーリングすることができる。このスケーリングされた混合触覚トラックは、触覚アクチュエーターの動作入力範囲（例えば、０〜２５５）内にあるトラック値を有することができる。
【００６６】
上述のように、本発明における幾つかの実施形態は、種々のコントローラータイプ又はそれらの種々の触覚アクチュエーターに共通した共通混合アルゴリズムを用いることができる。別の実施形態では、図６に示すように、触覚生成構成要素（例えば、１５２）は、異なるそれぞれの混合アルゴリズムを実施する種々のエンドポイント混合機能（エンドポイント混合器とも呼ばれる）を用いることができる。例えば、図６は、限られた機能を有する触覚混合器抽象クラス８０１を示している。混合器抽象クラス８０１は、混合器抽象クラス８０１を継承する様々な子クラスの親クラスとして用いることができる。例えば、エンドポイント混合器クラス８０２、８０４、８０６等の付加的なエンドポイント混合器クラスを、アプリケーション１５０によってサポートされた触覚効果エンドポイントごとに作成することができる。各エンドポイント混合器クラスは、そのエンドポイントに固有の混合器アルゴリズム（例えば、スケーリング機能及び／又はマージ機能）を定義することができる。例えば、エンドポイント混合器クラス８０２は、少なくとも２つの触覚トラックの加重和を計算するマージ機能を用いることができる一方、エンドポイント混合器クラス８０４は、少なくとも２つの触覚トラックのトラック値を乗算するマージ機能を用いることができる。
【００６７】
図７Ａは、エディター環境及びゲーム環境も備えるシステムを示している。エディター環境は、曲線評価機能を提供するゲームエディターユーザーインターフェース（ＵＩ）を提供することができる。曲線機能は、ゲーム設計者が、様々な曲線（波形とも呼ばれる）が触覚トラックとしてどのように働くのかを設計及び評価することを可能にする機能の一部を指すことができる。図７Ａに示すように、エディター環境は、ゲーム設計者が、特定の触覚効果及び特定のエンドポイントに固有の触覚トラックを設計することを可能にする。図１Ｄと同様に、図７Ａは、第１の触覚効果コンテナーに格納される第１の触覚効果（効果１）について設計された触覚トラックを示し、第２の触覚効果コンテナーに格納される第２の触覚効果（効果２）について設計された触覚トラックを示している。第１の触覚効果コンテナー及び第２の触覚効果コンテナーの各々は、効果コンテナーファイルとすることができる。より具体的には、効果１についての効果コンテナーファイルは、エンドポイント１の触覚トラック及びエンドポイント２の触覚トラックを含む。同様に、効果２についての効果コンテナーファイルも、エンドポイント１の触覚トラック及びエンドポイント２の触覚トラックを含む。一実施形態では、これらの効果コンテナーファイルは、ゲームの一部であるデータ及びコード／命令の一部とすることができる。
【００６８】
一実施形態では、ゲームエディター環境は、図１Ｅのゲーム編集コンピューター１００上で実行することができる。一実施形態では、ゲームエディター環境は、触覚効果を設計するユーザーインターフェース（ＵＩ）及びＡＰＩを提供することができる触覚効果設計プラグイン１４０とともにインストールすることができる。このＵＩは、例えば、設計者が様々な触覚効果の触覚トラックを設計することを可能にすることができる。ＵＩは、設計者がコード／命令及びデータを触覚生成構成要素内に配置することも可能にすることができる。コード／命令は、例えば、特定のエンドポイントに固有のコード／命令、混合を行うコード／命令、又は他の任意のコード／命令を含むことができる。コード／命令及びデータは、触覚生成構成要素１５２内に配置された後、ゲームプログラム１５０の残りの部分とともにコンパイルすることができる。
【００６９】
一実施形態では、ゲームは、エディター環境を用いて設計された後、実行可能ファイルにコンパイルすることができ、別のコンピューター（例えば、ゲームコンソール）上にインストールすることができる。この実行可能ファイルは、実行されると、ゲーム環境であるランタイム環境を提供することができる。図７Ａは、混合器機能（混合器アルゴリズムとも呼ばれる）を用いて混合触覚効果を生成するゲーム環境を示している。例えば、第１の触覚効果（効果１）及び第２の触覚効果（効果２）の双方がトリガーされると、触覚効果を生成することができる。双方の触覚効果がトリガーされると、ゲーム環境は、どのエンドポイントが、混合触覚効果を出力しようとしている触覚アクチュエーターに関連付けられているのかを判断することができる。より具体的には、この判断は、ユーザー入力をゲームに提供するためにユーザーによって現在用いられているゲームコントローラーのコントローラータイプを求めることと、このコントローラータイプのどの触覚アクチュエーターが触覚効果を生成するのかを判断することとを含むことができる。ゲームコントローラーは、コントローラータイプ及び触覚アクチュエーターをエンドポイントとして表すことができ、触覚効果を制御するコマンド及びデータを通信することによってこのエンドポイントとインタラクトすることができる。このエンドポイントは、触覚アクチュエーターによる触覚効果の生成を制御するためにゲームコントローラーの触覚アクチュエーターと更に通信することができる媒介として働くことができる。ゲームアプリケーションがマルチユーザーゲームアプリケーションである場合、このゲームアプリケーションは、どのユーザー（複数の場合もある）が混合触覚効果を体験するのか、及び、そのユーザーがエンドポイント１に関連付けられたゲームコントローラーを用いているのか、又はそのユーザーがエンドポイント２に関連付けられたゲームコントローラーを用いているのかを判断することもできる。
【００７０】
一実施形態では、ゲームアプリケーションは、どのエンドポイントが、混合触覚効果を出力する触覚アクチュエーターに関連付けられているのかを判断した後、第１の触覚効果についてのそのエンドポイントに関連付けられた触覚トラックと、第２の触覚効果についてのそのエンドポイントに関連付けられた触覚トラックとを取り出すことができる。ゲーム環境は、次に、第１の触覚効果の触覚トラックと第２の触覚効果の触覚トラックとを混合するように、触覚生成ＡＰＩを提供することができる共通触覚プレーバック機能に要求することができる。図６と同様に、図７Ａは、第１の混合器機能を用いて、第１のエンドポイント（エンドポイント１）の触覚トラックを混合することができ、第２の混合器機能を用いて、第２のエンドポイント（エンドポイント２）の触覚トラックを混合することができる一実施形態を示している。混合器機能の各々をエンドポイント固有の混合器機能とすることができるように、第１の混合器機能は第２の混合器機能と異なることができる。
【００７１】
図７Ｂは、共通混合器機能（共通混合器アルゴリズムとも呼ばれる）を用いることができる別の実施形態を示している。より具体的には、図７Ｂは、ゲームコントローラー３００（コントローラータイプ１に属する）によって制御されながらゲームアプリケーション１５０（コンパイルされたバイナリーフォーマット又は他の実行可能フォーマットとすることができる）を実行するゲームコンソール２００を示している。一実施形態では、ゲームアプリケーションは、どの触覚効果（複数の場合もある）が生成されるのかを判断し、その判断を示す表示を、全ての触覚関連機能を管理する機能として働くことができる共通触覚プレーバック機能に提供することができる。１つの例では、ゲームアプリケーション１５０は、触覚効果が、エンドポイント２に対応するコントローラータイプ１の第２の触覚アクチュエーターによって生成されると判断することができる。一実施形態では、ゲームアプリケーション１５０は、どのエンドポイント（例えば、エンドポイント２）が触覚効果を生成する触覚アクチュエーターに関連付けられているのかについての情報を共通触覚プレーバック機能に更に提供することができる。ゲームアプリケーションは、次に、上記で説明したように、そのエンドポイント（例えば、エンドポイント２）の該当する触覚効果に関連付けられた該当する触覚トラックを取り出し、次に、共通混合器機能を用いて、取り出された触覚効果を混合することができる。共通混合器機能は、複数のエンドポイントに共通のものとすることができる。さらに、共通混合器機能は、上記で説明したように、１つ以上の混合パラメーター値を用いて触覚トラックの混合を行うことができる。これらの１つ以上のパラメーター値は、エンドポイント固有のものとすることができ、したがって、混合がエンドポイント固有の方法で行われるように共通混合器機能を制御するのに用いることができる。共通混合器機能が混合触覚トラックを生成した後、ゲームアプリケーション１５０は、この混合触覚トラックを、エンドポイント（例えば、エンドポイント２）に対応する触覚アクチュエーター（例えば、３２０）に通信することができる。
【００７２】
様々な実施形態の追加の論述
本開示の実施形態１は、非一時的コンピューター可読媒体であって、１つ以上のプロセッサによって実行されると、以下のこと、すなわち、アプリケーションを実行することと、ユーザー入力をアプリケーションに提供している触覚対応コントローラーのコントローラータイプを求めることであって、このコントローラータイプの任意の触覚対応コントローラー（すなわち、このコントローラータイプに属するいずれかの触覚対応コントローラー）は１つ以上の触覚アクチュエーターを有することと、第１の触覚効果及び第２の触覚効果を組み合わせた混合触覚効果が１つ以上の触覚アクチュエーターのうちの触覚アクチュエーターによって生成されると判断することと、非一時的コンピューター可読媒体において第１の触覚効果に関連付けられた第１の複数の触覚トラックの中から、第１の触覚効果に関連付けられ、且つコントローラータイプと混合触覚効果を生成する触覚アクチュエーターとの組み合わせに関連付けられた第１の触覚トラックを選択することと、非一時的コンピューター可読媒体において第２の触覚効果に関連付けられた第２の複数の触覚トラックの中から、第２の触覚効果に関連付けられ、且つコントローラータイプ及び触覚アクチュエーターの組み合わせに関連付けられた第２の触覚トラックを選択することと、触覚アクチュエーター動作を記述した動作パラメーターの複数のパラメーター値の中から、コントローラータイプ及び触覚アクチュエーターの組み合わせに関連付けられたパラメーター値を選択することと、パラメーター値に基づいて、第１の触覚トラック及び第２の触覚トラックを組み合わせた混合触覚トラックを生成することと、混合触覚トラックを触覚対応コントローラーに通信することによって、触覚アクチュエーターを制御して混合触覚効果を生成することと、を１つ以上のプロセッサに行わせる命令が記憶されている、非一時的コンピューター可読媒体を含む。
【００７３】
実施形態２は、実施形態１の非一時的コンピューター可読媒体を含む。さらに、アプリケーションはゲームアプリケーションであり、触覚対応コントローラーはハンドヘルドゲームコントローラーである。
【００７４】
実施形態３は、実施形態１又は２の非一時的コンピューター可読媒体を含み、ここで、コントローラータイプ及び触覚アクチュエーターの組み合わせは、非一時的コンピューター可読媒体において触覚効果エンドポイントとして表され、この触覚効果エンドポイントは、アプリケーションによってサポートされる複数の触覚効果エンドポイントのうちの１つであり、触覚効果エンドポイントの各々は、アクチュエータータイプ及び触覚アクチュエーターの異なるそれぞれの組み合わせであり、動作パラメーターの複数のパラメーター値は、非一時的コンピューター可読媒体において、それぞれ複数の触覚効果エンドポイントに関連付けられ、第１の複数の触覚トラックは、非一時的コンピューター可読媒体において、それぞれ複数の触覚効果エンドポイントに関連付けられ、第２の複数の触覚トラックも、非一時的コンピューター可読媒体において、それぞれ複数の触覚効果エンドポイントに関連付けられ、命令は、複数の触覚効果エンドポイントの各々についての触覚トラックを組み合わせるのに用いられる共通機能を用いることによって、混合触覚トラックの生成を１つ以上のプロセッサに行わせる。
【００７５】
実施形態４は、実施形態１〜３のいずれか１つの非一時的コンピューター可読媒体を含み、ここで、命令は、非一時的コンピューター可読媒体において第１の触覚効果に関連付けられた第１のイベントと、非一時的コンピューター可読媒体において第２の触覚効果に関連付けられた第２のイベントとの重複した発生に応答して、混合触覚効果が生成されると１つ以上のプロセッサに判断させる。
【００７６】
実施形態５は、実施形態１〜４のいずれか１つの非一時的コンピューター可読媒体を含み、ここで、動作パラメーターは、触覚アクチュエーターが１つ以上の触覚トラック値にどのように応答するのかを記述する。
【００７７】
実施形態６は、実施形態５の非一時的コンピューター可読媒体を含み、ここで、動作パラメーターは最大力パラメーターであり、最大力パラメーターのパラメーター値は、触覚アクチュエーターの規定された定格最大力又は規定された定格最大作動のうちの少なくとも一方を触覚アクチュエーターに生成させる触覚トラック値である。
【００７８】
実施形態７は、実施形態６の非一時的コンピューター可読媒体を含み、ここで、命令は、最大力パラメーターのパラメーター値に基づいて第１の触覚トラック及び第２の触覚トラックの各々をスケーリングして、スケーリングされた第１の触覚トラック及びスケーリングされた第２の触覚トラックを生成することと、スケーリングされた第１の触覚トラック及びスケーリングされた第２の触覚トラックを混合触覚トラックに混合することとによって、混合触覚トラックの生成を１つ以上のプロセッサに行わせる。
【００７９】
実施形態８は、実施形態６又は７の非一時的コンピューター可読媒体を含み、ここで、最大力パラメーターのパラメーター値は、触覚アクチュエーターの動作入力範囲の最大値であり、この動作入力範囲は、触覚アクチュエーターへの有効な入力値である触覚トラック値の範囲であり、第１の触覚トラックは、動作入力範囲と異なる第１の規定範囲内にある触覚トラック値を有し、第１の触覚トラックのスケーリングは、第１の規定範囲の最大値を触覚アクチュエーターの動作入力範囲の最大値にマッピングすることによって行われる。
【００８０】
実施形態９は、実施形態８の非一時的コンピューター可読媒体を含み、ここで、動作パラメーターは、混合触覚トラックの生成が基づいている複数の動作パラメーターのうちの１つであり、複数の動作パラメーターは、パッシブ力パラメーターを更に含み、パッシブ力パラメーターのパラメーター値は、ゼロ力又はゼロ作動のうちの少なくとも一方を触覚アクチュエーターに生成させる触覚トラック値であり、第１の触覚トラックのスケーリングは、第１の規定範囲のゼロ値をパッシブ力パラメーターのパラメーター値にマッピングすることによって行われる。
【００８１】
実施形態１０は、実施形態９の非一時的コンピューター可読媒体を含み、ここで、パッシブ力パラメーターのパラメーター値は、最大力パラメーターのパラメーター値の２分の１に略等しい。
【００８２】
実施形態１１は、実施形態９又は１０の非一時的コンピューター可読媒体を含み、ここで、第１の規定範囲の最小値は０よりも小さく、第１の触覚トラックのスケーリングは、第１の規定範囲の最小値を触覚アクチュエーターの動作入力範囲のゼロ値にマッピングすることによって行われる。
【００８３】
実施形態１２は、実施形態９〜１１のいずれか１つの非一時的コンピューター可読媒体を含み、ここで、第１の触覚トラックは、複数のそれぞれのトラック値を有する複数のトラックサンプルを含み、第１の触覚トラックのスケーリングは、複数のそれぞれのトラック値の各々に比を乗算して、複数の乗算された値を生成することと、乗算された値の各々にパッシブ力パラメーターのパラメーター値を加算することとを含み、比は、最大力パラメーターのパラメーター値とパッシブ力パラメーターのパラメーター値との間の差を第１の規定範囲のサイズによって除算したものに等しい。
【００８４】
実施形態１３は、上記実施形態のうちのいずれかの機能を実行する方法を含む。
【００８５】
実施形態１４は、上記実施形態のうちのいずれかに記載のコンピューティングデバイス及び触覚対応コントローラーを備えるシステムを含み、ここで、上記コンピューティングデバイスは、上記実施形態のうちのいずれかの機能を実行するように構成された１つ以上のプロセッサを備える。
【００８６】
種々の実施形態を上述してきたが、これらの実施形態は、限定としてではなく本発明の単なる説明及び例として提示されていることを理解すべきである。さらに、本明細書における幾つかの例は、ゲームコントローラー及びゲームアプリケーションの触覚トラックを混合することを詳述し、本発明における実施形態の触覚トラックの混合は、より一般的には、任意のソフトウェアアプリケーション及び任意のタイプのユーザー入力デバイスに適用される。形式及び細部における種々の変更は本発明の趣旨及び範囲から逸脱することなく本発明内で行うことができることは当業者には明らかであろう。したがって、本発明の範囲（breadth and scope）は、上述の例示的な実施形態のいずれかによって限定されるべきではなく、添付の特許請求の範囲及びそれらの均等物によってのみ規定されるべきである。本明細書において論考された各実施形態、及び本明細書において引用された各引用文献の各特徴は、他の任意の実施形態の特徴と組み合わせて用いることができることも理解されるであろう。本明細書において論考された全ての特許及び刊行物は、引用することによりその全体が本明細書の一部をなす。
【００８７】
本出願は、２０１７年８月２０日に出願された米国仮特許出願第６２／５４７，８５６号及び２０１８年７月２８日に出願された米国特許出願第１６／０４８，２４９号の利益を主張し、これらの開示は引用することによりその全体が本明細書の一部をなす。
【図１Ａ】
2019036312.tif 000003
【図１Ｂ】
2019036312.tif 000004
【図１Ｃ】
2019036312.tif 000005
【図１Ｄ】
2019036312.tif 000006
【図１Ｅ】
2019036312.tif 000007
【図１Ｆ】
2019036312.tif 000008
【図１Ｇ】
2019036312.tif 000009
【図２】
2019036312.tif 000010
【図３Ａ】
2019036312.tif 000011
【図３Ｂ】
2019036312.tif 000012
【図４Ａ】
2019036312.tif 000013
【図４Ｂ】
2019036312.tif 000014
【図４Ｃ】
2019036312.tif 000015
【図４Ｄ】
2019036312.tif 000016
【図５】
2019036312.tif 000017
【図６】
2019036312.tif 000018
【図７Ａ】
2019036312.tif 000019
【図７Ｂ】
2019036312.tif 000020
【外国語明細書】
2019036312.tif 000021
2019036312.tif 000022
2019036312.tif 000023
2019036312.tif 000024
2019036312.tif 000025
2019036312.tif 000026
2019036312.tif 000027
2019036312.tif 000028
2019036312.tif 000029
2019036312.tif 000030
2019036312.tif 000031
2019036312.tif 000032
2019036312.tif 000033
2019036312.tif 000034
2019036312.tif 000035
2019036312.tif 000036
2019036312.tif 000037
2019036312.tif 000038
2019036312.tif 000039
2019036312.tif 000040
2019036312.tif 000041
2019036312.tif 000042
2019036312.tif 000043
2019036312.tif 000044
2019036312.tif 000045
2019036312.tif 000046
2019036312.tif 000047
2019036312.tif 000048
2019036312.tif 000049
2019036312.tif 000050
2019036312.tif 000051
2019036312.tif 000052
2019036312.tif 000053
2019036312.tif 000054
2019036312.tif 000055
2019036312.tif 000056
2019036312.tif 000057
2019036312.tif 000058
2019036312.tif 000059
2019036312.tif 000060
2019036312.tif 000061
2019036312.tif 000062
2019036312.tif 000063
2019036312.tif 000064
2019036312.tif 000065
2019036312.tif 000066
2019036312.tif 000067
2019036312.tif 000068
2019036312.tif 000069
2019036312.tif 000070
2019036312.tif 000071
2019036312.tif 000072
2019036312.tif 000073
2019036312.tif 000074
2019036312.tif 000075
2019036312.tif 000076
2019036312.tif 000077