次の方法で共有


フォース フィードバックの基本概念

フォース フィードバックの特定のインスタンスはエフェクトと呼ばれ、押す力や抵抗はフォースと呼ばれます。ほとんどのエフェクトは、次のいずれかのカテゴリに分類されます。

  • コンスタント フォース。1 方向の一定のフォースです。
  • ランプ フォース。一定の割合で大きさが増加または減少するフォースです。
  • 周期的エフェクト。定義済みの波形パターンに従って変動するフォースです。
  • 条件。軸に沿った動きまたは位置への反応です。たとえば、ジョイスティックの移動に対して抵抗を生成する摩擦エフェクトや、ジョイスティックが一定の位置から動かされた後、その場所にスティックを押し戻すスプリング エフェクトなどがあります。

フォースの強さは、マグニチュードと呼ばれます。マグニチュードは、0 (フォースなし) ~ 10,000 (デバイスの最大フォースで、C/C++ および Microsoft Visual Basic では DI_FFNOMINALMAX として定義される) の単位で測定されます。負の値は反対方向のフォースを示します。マグニチュードは比例的です。10,000 のフォースは 5,000 のフォースの 2 倍の大きさです。

ランプ フォースには開始と終了のマグニチュードがあります。周期的エフェクトでは、基本マグニチュードは波形のピーク時のフォースです。

フォースの方向は、そのフォースが来る方向です。特定の軸上の正のフォースは、正から負の方向へ押す力です。

また、エフェクトにはマイクロ秒単位で測定される継続時間があります。周期的エフェクトには、期間、つまり 1 サイクルの継続時間があり、これもマイクロ秒単位で測定されます。周期的エフェクトのフェーズとは、波形上で再生が開始されるポイントです。

次の図は、マグニチュードが 5,000 (デバイスの最大フォースの半分) の鋸歯の周期的エフェクトを表しています。水平軸はエフェクトの継続時間を表し、垂直軸はマグニチュードを表します。中心線より上のポイントはエフェクトに定義された方向に対する正のフォースを表し、中心線より下のポイントは負のフォース、つまり反対方向のフォースを表します。

Graph of sawtooth force feedback

フォースには、エンベロープによってさらに形状をつけることができます。エンベロープは、アタック値とフェード値を定義します。これらはエフェクトの開始マグニチュードと終了マグニチュードを変更します。また、アタックとフェードには継続時間があります。継続時間は、マグニチュードが持続値 (エフェクトの中間部にあたるマグニチュード) に達するまたは持続値から外れるまでにかかる時間を定義します。

次の図に、エンベロープを示します。アタック レベルは 8,000、フェード レベルは 1,000 に設定されています。持続レベルはエンベロープを適用するフォースの基本マグニチュードによって決まり、この例では 5,000 になっています。この例では、アタック レベルが持続レベルより大きいため、エフェクトの初期に強いキックが与えられます。アタック レベルとフェード レベルの両方を、持続レベルより大きくまたは小さくすることができます。

Graph of envelope force feedback

次の図は、最初の図の周期的エフェクトにエンベロープを適用した結果を示しています。マグニチュードの負の側では、エンベロープは反転します。アタック値 8,000 は、フォースの初期マグニチュードがどちらの側でも最大フォースの 80 パーセントであることを意味します。

Graph of sawtooth and envelope force feedback

周期的エフェクトと条件は、オフセットを追加することによっても変更できます。オフセットは、波形を基本レベルから上下にシフトする量を定義します。鋸歯の例に正のオフセットを適用すると、実際には正のフォースが強まり、負のフォースが弱まります。つまり、一方のフォースのピークが反対のフォースのピークより強くなります。

最後に、エフェクトの全体のマグニチュードは、ゲインによって増減可能です。ゲインはオーディオのボリューム コントロールのようなものです。単一のゲイン値を 1 つのデバイスのすべてのエフェクトに適用できます。このような処理は、異なるハードウェアでフォースの強弱を補正したり、ユーザー設定に対応する目的で必要になる場合があります。