DIEFFECTATTRIBUTES 構造体 (dinputd.h)
DIEFFECTATTRIBUTES 構造体は、強制フィードバック デバイスでサポートされている各効果のレジストリ キーの "属性" 値に含まれる情報を記述します。
構文
typedef struct DIEFFECTATTRIBUTES {
DWORD dwEffectId;
DWORD dwEffType;
DWORD dwStaticParams;
DWORD dwDynamicParams;
DWORD dwCoords;
} DIEFFECTATTRIBUTES, *LPDIEFFECTATTRIBUTES;
メンバー
dwEffectId
効果を識別するためにドライバーに渡される任意の 32 ビット値を指定します。 ドライバーは、この値を dwEffectID パラメーターとして IDirectInputEffectDriver::D ownloadEffect メソッドに受け取ります。
dwEffType
効果のカテゴリと機能について説明します。 このメンバーは、次のいずれかの値で構成されている必要があります。
DIEFT_CONSTANTFORCE
効果は、一定の力効果を表します。 定数フォース効果を作成または変更する場合、DIEFFECT 構造体の lpvTypeSpecificParams メンバーは DICONSTANTFORCE 構造体を指し、DIEFFECT 構造体の cbTypeSpecificParams メンバーは sizeof(DICONSTANTFORCE) に設定されます。
DIEFT_RAMPFORCE
効果はランプフォース効果を表します。 ランプフォース効果を作成または変更する場合、DIEFFECT 構造体の lpvTypeSpecificParams メンバーは DIRAMPFORCE 構造体を指し、DIEFFECT 構造体の cbTypeSpecificParams メンバーは sizeof(DIRAMPFORCE) に設定されます。
DIEFT_PERIODIC
効果は、定期的な効果を表します。 定期的な効果を作成または変更する場合、DIEFFECT 構造体の lpvTypeSpecificParams メンバーは DIPERIODIC 構造体を指し、DIEFFECT 構造体の cbTypeSpecificParams メンバーは sizeof(DIPERIODIC) に設定されます。
DIEFT_CONDITION
効果は条件を表します。 条件を作成または変更する場合、DIEFFECT 構造体の lpvTypeSpecificParams メンバーは DICONDITION 構造体の配列 (軸ごとに 1 つの DICONDITION 構造体または 1 つの DICONDITION 構造体のいずれか) を指し、DIEFFECT 構造体の cbTypeSpecificParams メンバーはそれぞれ sizeof(DICONDITION) または cAxis * sizeof(DICONDITION) に設定されます。 cbTypeSpecificParams が sizeof(DICONDITION) に設定されている場合、効果は回転可能な単一軸条件を表します。 cbTypeSpecificParams が cAxis * sizeof(DICONDITION) に設定されている場合、効果は複数軸の条件を表し、各 DICONDITION 構造体は rgdwAxes リストのそれぞれの軸に適用されます。
DIEFT_CUSTOMFORCE
効果は、ユーザー設定の強制効果を表します。 カスタムフォース効果を作成または変更する場合、DIEFFECT 構造体の lpvTypeSpecificParams メンバーは DICUSTOMFORCE 構造体を指し、DIEFFECT 構造体の cbTypeSpecificParams メンバーは sizeof(DICUSTOMFORCE) に設定されます。
DIEFT_HARDWARE
効果は、ハードウェア固有の効果を表します。 ハードウェア ベンダーは、効果の使用方法に関する追加のドキュメントをアプリケーション ライターに提供する必要があります。 dwEffTtype メンバーには、カテゴリ コードに加えて、効果の機能を記述する次のフラグを 0 個、1 つ以上含めることもできます。
DIEFT_FFATTACK
この効果の効果ジェネレーターは、攻撃エンベロープ パラメーターをサポートしています。 効果ジェネレーターが攻撃をサポートしていない場合、DIENVELOPE 構造体の攻撃レベルと攻撃時間パラメーターは、効果によって無視されます。
DIEFT_FFFADE
このエフェクトのエフェクト ジェネレータは、フェード パラメータをサポートしています。 エフェクトジェネレータがフェードをサポートしていない場合、DIENVELOPE構造体のフェードレベルおよびフェード時間パラメータはエフェクトによって無視されます。 DIEFT_FFATTACKまたはDIEFT_FFFADEが設定されていない場合、効果は封筒をサポートせず、指定された封筒は無視されます。
DIEFT_SATURATION
この効果の効果ジェネレーターは、条件効果の飽和をサポートしています。 エフェクトジェネレータが飽和をサポートしていない場合、条件によって生成される力は、デバイスが生成できる最大の力によってのみ制限されます。
DIEFT_POSNEGCOEFFICIENTS
この効果の効果ジェネレーターは、条件に対して 2 つの係数値をサポートしています。1 つは軸の正の変位用、1 つは軸の負の変位です。 デバイスが両方の係数をサポートしていない場合、DICONDITION 構造体の負の係数は無視され、正の係数が両方向に使用されます。
DIEFT_POSNEGSATURATION
効果の効果ジェネレーターは、正と負の両方の力出力の最大飽和をサポートします。 デバイスが両方の飽和値をサポートしていない場合、DICONDITION 構造体の負の彩度は無視され、正の彩度が両方向で使用されます。
dwStaticParams
効果でサポートされるパラメーターについて説明します。 たとえば、DIEP_ENVELOPEが設定されている場合、効果は封筒をサポートします。 すべての効果は、少なくともDIEP_DURATION、DIEP_AXES、およびDIEP_TYPESPECIFICPARAMSをサポートする必要があります。 アプリケーションが、デバイスでサポートされていない効果パラメーターの使用を試行してもエラーではありません。 サポートされていないパラメーターは無視されるだけです。 この値には、次のフラグの 0、1、または複数を指定できます。
DIEP_DURATION
エフェクトが再生されていない場合に、ドライバーがエフェクトの dwDuration (DIEFFECT 構造体を参照) の変更をサポートしていることを示します。
DIEP_SAMPLEPERIOD
エフェクトが再生されていない場合に、ドライバーがエフェクトの dwSamplePeriod (DIEFFECT 構造体を参照) の変更をサポートしていることを示します。
DIEP_GAIN
エフェクトが再生されていない場合に、ドライバーがエフェクトの dwGain (DIEFFECT 構造体を参照) の変更をサポートしていることを示します。
DIEP_TRIGGERBUTTON
エフェクトが再生されていない場合に、ドライバーがエフェクトの dwTriggerButton (DIEFFECT 構造体を参照) の変更をサポートしていることを示します。
DIEP_TRIGGERREPEATINTERVAL
効果が再生されていない場合に、ドライバーが効果の dwTriggerRepeatInterval (DIEFFECT 構造体を参照) の変更をサポートしていることを示します。
DIEP_AXES
効果が再生されていない場合に、ドライバーが効果の cAxes と rgdwAxes の変更をサポートしていることを示します (DIEFFECT 構造体を参照)。
DIEP_DIRECTION
効果が再生されていない場合に、ドライバーが効果の cAxes と rglDirection (DIEFFECT 構造体を参照) の変更をサポートしていることを示します。 (DIEFFECT 構造体の dwFlags メンバーは、DIEFF_CARTESIANまたはDIEFF_POLARによって、値を解釈する座標系を指定します)。
DIEP_ENVELOPE
エフェクトが再生されていない場合に、ドライバーがエフェクトの lpEnvelope (DIEFFECT 構造体を参照) の変更をサポートしていることを示します。
DIEP_TYPESPECIFICPARAMS
効果が再生されていない場合に、ドライバーが効果の cbTypeSpecificParams と lpTypeSpecificParams (DIEFFECT 構造体を参照) の変更をサポートしていることを示します。 DIEFFECT 構造体の lpTypeSpecificParams メンバーが指すバッファーは、効果の有効期間 (または型固有のパラメーターが新しい値に設定されるまで) 有効なままである必要があることに注意してください。 DirectInput はバッファーのプライベート コピーを作成しません。
dwDynamicParams
効果の再生中に変更できる効果のパラメーターについて説明します。 エフェクトの再生中にアプリケーションがパラメーターを変更しようとして、ドライバーがその効果を動的に変更できない場合、ドライバーはDIERR_EFFECTPLAYINGを返します。 このメンバーは dwStaticParams メンバーと同じフラグを使用します。ただし、フラグは、ドライバーが効果の再生中ではなく、効果の再生中に効果のパラメーターを変更できるかどうかを示すものとして解釈されます。
dwCoords
効果でサポートされている座標系を示す 1 つ以上の座標系フラグ (DIEFF_CARTESIAN、DIEFF_POLAR、DIEFF_SPHERICAL)。 少なくとも 1 つの座標系がサポートされている必要があります。 アプリケーションがサポートされていない座標系の方向を設定しようとすると、DirectInput によって自動的にデバイスがサポートする座標系に変換されます。
注釈
DIEFFECT、DICONSTANTFORCE、DIRAMPFORCE、DIPERIODIC、DICONDITION、DICUSTOMFORCE、DIENVELOPE 構造体の詳細については、DirectX SDK の DirectInput セクションを参照してください。
要件
要件 | 値 |
---|---|
Header | dinputd.h |