Platform SDK: DirectX |
傾斜フォースは、定義済みの初期マグニチュードと終期マグニチュードおよび有限の継続時間を持つフォースのことである。傾斜フォースは、1 方向だけに延びる場合も、あるいは 1 方向に向かって強い勢いで始まり、弱まって、停止し、反対方向に強く進むという場合もある。
次の図は、マグニチュード -5,000 で始まり、マグニチュード 5,000 で終わる傾斜フォースを表している。
エンベロープを傾斜フォースに適用して、傾斜フォースを引き伸ばすことができる。次の図は、前の図の傾斜フォースにエンベロープ (緑で表してある) を適用するエフェクトを表している。
エンベロープの維持期間部分では、エフェクトのマグニチュードはエンベロープの適用前と同じ直線を描く。アタックとフェードの継続時間については、傾斜フォースの傾斜はアタック レベルとフェード レベルで変更される。
傾斜フォースにはオフセットを適用できない。
傾斜フォースを生成するには、GUID_RampForce を IDirectInputDevice7::CreateEffect メソッドに渡す。DIEFFECTINFO 構造体のメンバ dwEffType (DIEFT_GETTYPE(dwEfftype)) の下位バイトが DIEFT_RAMPFORCE と等しい場合は、IDirectInputDevice7::EnumEffects メソッドで取得したほかの任意の GUID を渡すこともできる。この方法を使えば、業者が設計したハードウェア特有の傾斜フォースを使用することができる。
傾斜フォースは DIRAMPFORCE 構造体を利用して、フォースの初期マグニチュードと終期マグニチュードを定義することができる。一方、その継続時間は DIEFFECT 構造体によって定義される。継続時間を決して INFINITE に設定してはいけない。
傾斜フォースを生成するには、GUID_RampForce を DirectInputDevice.CreateEffect メソッドに渡す。DirectInputEnumEffects.GetType により返された値の下位バイトが DIEFT_RAMPFORCE と等しい場合は、DirectInputEnumEffects.GetEffectGuid メソッドで取得されたほかの任意の GUID を渡すこともできる。この方法を使えば、業者が設計したハードウェア特有の傾斜フォースを使用することができる。
フォースの初期マグニチュードと終期マグニチュードは、DIEFFECT の rampForce メンバに含まれる DIRAMPFORCE 型で定義される。継続時間を無限にすることはできないので、DIEFFECT.lDuration は正の値でなければならない。