ゲイン
異なるデバイスが発生させるフォースに応じて、エフェクトのフォースの大きさを変更したい場合があります。たとえば、特定の軸に対して n ニュートンの最大フォースを生み出すデバイスで、あるアプリケーションのエフェクトがちょうど良いと感じられる場合には、より大きなフォースを生み出すデバイス用にゲインの調整が必要になる場合があります(ゲインを使用して軸の最大フォースを増加させることはできないため、エフェクトの基本的なマグニチュードは生み出すフォースが小さいデバイスに適した値に設定する必要があります)。
また、ゲインは、ハードウェア定義のエフェクトのマグニチュードを減少させるためにも使用できます。
軸やボタンなどのデバイス オブジェクトによって生成される実際のフォースは、オブジェクトの列挙時に、DIDEVICEOBJECTINSTANCE 構造体の dwFFMaxForce メンバーに返されます(「デバイス オブジェクトの列挙」を参照してください)。
デバイス全体のゲインは、IDirectInputDevice8::SetProperty メソッドを使用して設定できます。
個々のエフェクトのゲインは、エフェクトの作成時に、DIEFFECT 構造体の dwGain メンバーに値を入れて設定する必要があります(dwGain が 0 の場合、エフェクトは感じられません)。この値は、dwFlags パラメーターに DIEP_GAIN を渡して IDirectInputEffect::SetParameters を使用することにより、後から変更できます。
デバイス ゲインを設定する目的は、アプリケーションがすべてのエフェクトの強さをまとめて制御できるようにすることです。たとえば、サウンド ミキサーのマスター ボリューム コントロールのように、アプリケーションにスライダー コントロールを追加して、ユーザーがフォース フィードバック エフェクトの強さを指定できるようにする場合があります。デバイス ゲインを設定すると、アプリケーションはユーザーの設定に合わせるために個別に各エフェクトのゲインを調整する必要がなくなります。
ゲインの値の範囲は 0 ~ 10,000 で、10,000 はマグニチュードが変更されないことを示し、7,500 はフォースが名目マグニチュードの 75 % に変更されることを示します。