Platform SDK: DirectX |
DIEFFECT 構造体は、IDirectInputDevice7::CreateEffect メソッドが、新しい IDirectInputEffect オブジェクトを初期化するために使用する。IDirectInputEffect::SetParameters および IDirectInputEffect::GetParameters メソッドによっても使用される。
typedef struct DIEFFECT { DWORD dwSize; DWORD dwFlags; DWORD dwDuration; DWORD dwSamplePeriod; DWORD dwGain; DWORD dwTriggerButton; DWORD dwTriggerRepeatInterval; DWORD cAxes; LPDWORD rgdwAxes; LPLONG rglDirection; LPDIENVELOPE lpEnvelope; DWORD cbTypeSpecificParams; LPVOID lpvTypeSpecificParams; DWORD dwStartDelay; } DIEFFECT, *LPDIEFFECT; typedef const DIEFFECT *LPCDIEFFECT;
デバイスが指定の速度でエフェクトを再生できなければ、指定された値に最も近い速度を選択する。
カスタム dwSamplePeriod の設定は、特殊効果に使用できる。たとえば、サイン波を意図的に大きなサンプリングレートで再生すると、ざらざらした質感をもたらす。
DIEFFECTINFO 構造体の dwStaticParams メンバに DIEP_TRIGGERREPEATINTERVAL フラグが設定されている場合は、1 つのエフェクトのトリガによる繰り返しが可能である。
エフェクトの軸数は、一度設定されると変更できない。
エフェクトに関連付けられた軸のリストは、一度設定されると変更できない。
単一のエフェクトに関連付けられる軸の数は、32 までである。
デカルト座標では、rglDirection の各値は、rgdwAxes の対応する軸に関連付けられる。
極座標では、角度は、(0, -1) 方向から (1, 0) の方向に回転する実角度の 100 倍で測定される。これが意味するのは、北はユーザーの正面の方向であり、東はユーザーの右側であるということである。最後の要素は使用されない。
球面座標では、第 1 の角度は、(1,0) の方向から (0,1) の方向へ回転した実角度の 100 倍で計測される。第 2 の角度は (軸の数が 3 以上であるとき)、(0,0,1) へ向かう実角度の 100 倍で計測される。第 3 の角度は (軸の数が 4 以上であるとき)、(0,0,0,1) へ向かう実角度の 100 倍で計測される。以下も同様に解釈する。最後の要素は使用されない。
注 : rglDirection 配列は、極座標または球面座標が指定されている場合でも cAxes エントリを含まなければならない。極座標または球面座標の場合、rglDirection 配列の最後の要素は、将来の用途のために予約されているので、ゼロでなければならない。
エフェクトが DIEFT_CONDITION 型であれば、このメンバは、条件のパラメータを定義する DICONDITION 構造体からなる配列へのポインタを持つ。1 つの構造体を使用してもよい。この場合、条件は配列 rglDirection で指定された方向に適用される。そうでない場合は、配列 rgdwAxes の軸と同じ順序で、それぞれの軸に対して 1 つの構造体が必要となる。それぞれの軸に 1 つの構造体を用意すると、エフェクトは回転しない。配列 rglDirection では次の値を使用しなければならない。
エフェクトが DIEFT_CUSTOMFORCE 型であれば、このメンバは、カスタム フォースのパラメータを定義する DICUSTOMFORCE 構造体へのポインタを持つ。
エフェクトが DIEFT_PERIODIC 型であれば、このメンバは、エフェクトのパラメータを定義する DIPERIODIC 構造体へのポインタを持つ。
エフェクトが DIEFT_CONSTANTFORCE 型であれば、このメンバは、コンスタント フォースのパラメータを定義する DICONSTANTFORCE 構造体へのポインタを持つ。
エフェクトが DIEFT_RAMPFORCE 型であれば、このメンバは、傾斜フォースのパラメータを定義する DIRAMPFORCE 構造体へのポインタを持つ。
Windows NT/2000 :Windows 2000 が必要。
Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
ヘッダー : dinput.h で宣言。