Platform SDK: DirectX

コンスタント フォース

コンスタント フォースは、一定のマグニチュードと継続時間を持つフォースのことである。

エンベロープをコンスタント フォースに適用して、フォースに形を与えることができる。たとえば、2,000 の名目マグニチュードと 2 秒の継続時間を持つエフェクトがあると仮定しよう。この場合、次の値を持つエンベロープを適用する。

アタック時間 0.5 秒
初期アタック レベル 5,000
フェード時間 1 秒
フェード レベル 0

エフェクトを再生すると、次の値が得られる。

経過時間 マグニチュード
0.0 5,000
0.1 4,400
0.2 3,800
0.3 3,200
0.4 2,600
0.5 2,000
(保持の継続時間) 2,000
1.0: 2,000
1.1 1,800
1.2 1,600
1.3 1,400
1.4 1,200
1.5 1,000
1.6 800
1.7 600
1.8 400
1.9 200
2.0 0

コンスタント フォースにオフセットを適用することはできない。

[C++]

コンスタント フォースを生成するには、GUID_ConstantForce を IDirectInputDevice7::CreateEffect メソッドに渡す。DIEFFECTINFO 構造体のメンバ dwEffType (DIEFT_GETTYPE(dwEfftype)) の下位バイトが DIEFT_CONSTANTFORCE と等しいときは、IDirectInputDevice7::EnumEffects メソッドで取得したほかの任意の GUID を渡すことができる。この方法を使えば、騒乱をシミュレーションする "コンスタント" フォース (名前は "コンスタント (定常)" だが実際にはマグニチュードがランダムに変化する) など、業者が設計したハードウェア特有のフォースを使用することができる。

コンスタント フォースは、DICONSTANTFORCE 構造体を使ってマグニチュードを定義する。負のマグニチュードには、フォースの方向を反転するエフェクトがある。

[Visual Basic]

コンスタント フォースを生成するには、GUID_ConstantForce を DirectInputDevice.CreateEffect メソッドに渡す。DirectInputEnumEffects.GetType により返された値の下位バイトが DIEFT_CONSTANTFORCE に等しい場合は、DirectInputEnumEffects.GetEffectGuid メソッドにより取得されたほかの任意の GUID を渡すこともできる。この方法を使えば、騒乱をシミュレーションする "コンスタント" フォース (名前は "コンスタント (定常)" だが実際にはマグニチュードがランダムに変化する) など、業者が設計したハードウェア特有のフォースを使用することができる。

コンスタント フォースのマグニチュードは、DIEFFECTconstantForce メンバ内の DICONSTANTFORCE 型に格納される。負のマグニチュードには、フォースの方向を反転するエフェクトがある。