Platform SDK: DirectX

DICONDITION

DICONDITION 型は、DIEFFECT 型に含まれるフォース フィードバック条件のパラメータを表す。

Type DICONDITION
  lDeadBand As Long
  lNegativeCoefficient As Long
  lNegativeSaturation As Long
  lOffset As Long
  lPositiveCoefficient As Long
  lPositiveSaturation As Long
End Type

メンバ

lDeadBand
0 〜 10,000 の範囲にある、条件がアクティブでない lOffset 周辺の領域。つまり、lOffset - lDeadBandlOffset + lDeadBand の間では、条件はアクティブではない。
lNegativeCoefficient
-10,000 〜 +10.000 の範囲にある、オフセットの負側の係数定数。

デバイスが正と負に分かれた係数をサポートしていない場合、lNegativeCoefficient 値は無視され、lPositiveCoefficient 値が正負両方の係数として使用される。

lNegativeSaturation
0 〜 10,000 の範囲にある、オフセットの負側の最大フォース出力。

デバイスがフォースの飽和値をサポートしない場合、このメンバ値は無視される。

デバイスが正と負に分かれた飽和値をサポートしていない場合、lNegativeSaturation 値は無視され、lPositiveSaturation 値が正負両方の飽和値として使用される。

lOffset
-10,000 〜 +10.000 の範囲にある、条件のオフセット。
lPositiveCoefficient
-10,000 〜 +10.000 の範囲にある、オフセットの正側の係数定数。
lPositiveSaturation
0 〜 10,000 の範囲にある、オフセットの正側の最大フォース出力。

デバイスがフォースの飽和をサポートしない場合、このメンバ値は無視される。

注意

条件のタイプが異なれば、パラメータの意味も異なるが、基本的な考え方は、条件に起因するフォースは、A(q - q0) に等しくなるということである。ここで、A は、スケーリング係数、q はある距離であり、q0 は、その距離に対する中立値である。

上記の単純な式は、デッドバンドにゼロ以外の値が指定された場合は調整しなければならない。距離が lOffset - lDeadBand より小さければ、生成されるフォースは、次の式で示される。

force = lNegativeCoefficient * (q - (lOffset - lDeadBand))

同様に、距離が lOffset + lDeadBand より大きければ、生成されるフォースは、次の式で示される。

force = lPositiveCoefficient * (q - (lOffset + lDeadBand))

スプリング条件は、軸の位置を距離として使用する。

ダンパ条件は、軸の速度を距離として使用する。

慣性条件は、軸の加速度を距離として使用する。