Microsoft DirectX 8.0 (Visual Basic) |
コンスタント フォースは、一定のマグニチュードと継続時間を持つフォースのことである。
エンベロープをコンスタント フォースに適用して、フォースに形を与えることができる。たとえば、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 |
コンスタント フォースにオフセットを適用することはできない。
コンスタント フォースを生成するには、GUID_ConstantForce を DirectInputDevice8.CreateEffect メソッドに渡す。DirectInputEnumEffects.GetType により返された値の下位バイトが DIEFT_CONSTANTFORCE に等しい場合は、DirectInputEnumEffects.GetEffectGuid メソッドにより取得されたほかの任意の GUID を渡すこともできる。この方法を使えば、騒乱をシミュレーションする "コンスタント" フォース (名前は "コンスタント (定常)" だが実際にはマグニチュードがランダムに変化する) など、業者が設計したハードウェア特有のフォースを使用することができる。
コンスタント フォースのマグニチュードは、DIEFFECT の constantForce メンバ内の DICONSTANTFORCE 型に格納される。負のマグニチュードには、フォースの方向を反転するエフェクトがある。