Platform SDK: DirectX

DIEFFECT

DIEFFECT 型は、フォース フィードバック エフェクトを表す。この型は、エフェクトのパラメータを設定するために DirectInputDevice.CreateEffect メソッドや DirectInputEffect.SetParameters メソッドに渡される。この型に含まれる既存のパラメータは、DirectInputEffect.GetParameters メソッドで取得される。

Type DIEFFECT
  bUseEnvelope As Long
  conditionFlags As CONST_DICONDITIONFLAGS
  conditionX As DICONDITION
  conditionY As DICONDITION
  constantForce As DICONSTANTFORCE
  envelope As DIENVELOPE
  lDuration As Long
  lFlags As Long
  lGain As Long
  lSamplePeriod As Long
  lStartDelay As Long
  lTriggerButton As Long
  lTriggerRepeatInterval As Long
  periodicForce As DIPERIODICFORCE
  rampForce As DIRAMPFORCE
  x As Long
  y As Long
End Type

メンバ

bUseEnvelope
envelope メンバに記述されるエンベロープがエフェクトに適用される場合は TRUE。
conditionFlags
CONST_DICONDITIONFLAGS 列挙のフラグ。DirectX for Visual Basic の現在のバージョンでは、この値はゼロである。
conditionX
x 軸の条件のパラメータを表す DICONDITION 型。別の型のエフェクトでは無視される。
conditionY
y 軸の条件のパラメータを表す DICONDITION 型。別の型のエフェクトでは無視される。
constantForce
コンスタント フォースのパラメータを表す DICONSTANTFORCE 型。別の型のエフェクトでは無視される。
envelope
エフェクトに適用されるエンベロープのパラメータを表す DIENVELOPE 型。bUseEnvelope メンバが TRUE の場合にのみ有効。
lDuration
マイクロ秒単位のエフェクトの継続時間。-1 という値は、無限の継続時間を表す。無限の継続時間を持つエフェクトにエンベロープが適用されていれば、アタックも適用され、無限の維持期間も適用されることになる。
lFlags
ゼロ、またはほかのメンバの解釈方法を指定する CONST_DIEFFFLAGS 列挙のメンバ。
lGain
エフェクトに適用されるゲイン。0 〜 10,000 の範囲にある。ゲインとは、エフェクトの全マグニチュードとそのエンベロープに適用されるスケーリング係数である。
lSamplePeriod
デバイスがエフェクトをサンプリングする期間 (マイクロ秒単位)。つまり、フォースにおける変化の細分度。この値がゼロであれば、デフォルトの再生サンプリング速度を使用することを意味する。

デバイスが指定の速度でエフェクトをサンプリングできなければ、指定された値に最も近い速度を選択する。

カスタム サンプリング期間の設定は、特殊効果に使用できる。たとえば、サイン波を意図的に大きなサンプリングレートで再生すると、ざらざらした質感をもたらす。

lStartDelay
DirectInputEffect.Start を呼び出してからエフェクトを再生する前に、デバイスが待機する時間 (マイクロ秒単位)。この値がゼロであれば、エフェクトの再生は直ちに開始される。
lTriggerButton
エフェクトをトリガするボタンのオフセット値。CONST_DIJOYSTICKOFS 列挙のメンバのいずれか 1 つの値を取る。エフェクトがトリガ ボタンを持たないことを示すには、-1 にする。
lTriggerRepeatInterval
ボタンの押下および押し続けによってエフェクトがトリガされたときの、1 回の再生の終了と開始の間隔を表す、マイクロ秒単位の時間。繰り返しを抑制するには、この値を -1 に設定する。

トリガの繰り返しをサポートしないデバイスもある。

periodicForce
周期的エフェクトのパラメータを表す DIPERIODICFORCE 型。別の型のエフェクトでは無視される。
rampForce
傾斜フォースのパラメータを表す DIRAMPFORCE 型。別の型のエフェクトでは無視される。
x
エフェクトの方向。多くの場合、方向は北 (通常、y 軸の負側) からの回転量として 1/100 度単位で表される。したがって、ゼロという値は、ユーザーの正面からくるフォースを示し、9000 という値は、ユーザーの右側からくるフォースを示す。以下同様に解釈する。この場合、y はゼロである。

lFlags に DIEFF_CARTESIAN が含まれている場合、これは x 軸上の相対フォース量を表すデカルト座標の値である。たとえば、x = -1 かつ y = 1 である場合、フォースは、南東方向からくる。詳細については、「エフェクトの方向」を参照すること。

y
lFlags に DIEFF_CARTESIAN が含まれている場合、これは y 軸上の相対フォース量を表すデカルト座標の値である。それ以外の場合、ゼロでなければならない。