Microsoft DirectX 8.0 (C++)

エンベロープとオフセット

エンベロープ とオフセットを使って、いくつかの基本的マグニチュードを変更することができる。概要については、「フォース フィードバックの基本概念」を参照すること。

エフェクトの作成または変更の際にエンベロープを適用するには、DIENVELOPE 構造体を初期化して、この構造体へのポインタを DIEFFECT 構造体の lpEnvelope メンバに設定する。

どのエフェクトがエンベロープをサポートするかを決定するのはデバイス ドライバである。通常は、コンスタント フォース、傾斜フォースおよび周期的フォースにエンベロープを適用できるが、条件には適用できない。特定のフォースがエンベロープをサポートするかどうかを判定するには、IDirectInputDevice8::GetEffectInfo メソッドを呼び出し、DIEFFECTINFO 構造体の dwStaticParams メンバにある DIEP_ENVELOPE フラグをチェックする。

オフセットを適用するには、DIEFFECT 構造体の lpvTypeSpecificParams メンバが指す DIPERIODIC 構造体または DICONDITION 構造体の lOffset メンバを設定する。周期的エフェクトの場合、オフセットの絶対値とエフェクトのマグニチュードを足した値が DI_FFNOMINALMAX を超えてはならない。

オフセットをコンスタント フォースや傾斜フォースに適用することはできない。コンスタント フォースや傾斜フォースの場合、マグニチュードを変更することによって同じエフェクトを発生させることができる。