Microsoft DirectX 8.0 (Visual Basic) |
エフェクトの再生を開始する主な方法は 2 つある。DirectInputEffect.Start メソッドを呼び出して手動で開始する方法と、ボタン押下への応答で自動的に開始する方法である。DIEP_START フラグを指定して DirectInputEffect.SetParameters メソッドを呼び出すことでエフェクトを変更するときにも、再生が開始する。
Start メソッドの iterations パラメータに -1 を渡すと、エンベロープを適用しながらエフェクトの再生を反復させることができる。エンベロープを反復することなくエフェクトを反復したいとき (たとえば、最初に強いキックをした後、動悸を静めるというような場合) は、iterations に 1 を設定し、次に DIEFFECT 型の lDuration メンバに -1 を設定すればよい (これは DirectInputDevice8.CreateEffect メソッドに渡される型である)。
注 : デバイスによっては、エフェクトの複数回の補間が不可能で、Start メソッドへのパラメータ iterations に値 1 しか認めないものもある。
エフェクトをボタンに割り付けるには、DIEFFECT 型の lTriggerButton メンバを設定する。ボタンが押下されているときの再生間に遅延を加えたいならば、その遅延値を lTriggerRepeatInterval メンバに設定する。この遅延は、1 つの再生の終了から次の再生の開始までの間隔のことで、マイクロ秒単位で表される。
注 : デバイスによっては、複数回のエフェクトを同じボタンで発生させることができないものもある。2 つ以上のエフェクトを 1 つのボタンに割り付けると、最後にダウンロードされたエフェクトが、発生するエフェクトとなる。また、トリガの反復間隔はサポートされていない。
エフェクトのトリガ ボタンへの割り付けを解除するには、DirectInputEffect.Unload メソッドを呼び出すか、または、-1 に設定されている lTriggerButton にエフェクトのパラメータを設定するか、どちらかの操作を行わなければならない。
割り付けたエフェクトは、ほかのすべてのエフェクトと同様に、アプリケーションがデバイスへのアクセス権を失うと失われる。再びこれらのエフェクトを有効にするには、アプリケーションがデバイスを再取得すると同時にこれらのエフェクトをダウンロードする。この処理はトリガに割り付けていないエフェクトでは不必要である。なぜなら、この種のエフェクトは、Start メソッドが呼び出されるときはいつも、必要に応じて自動的にダウンロードされるからである。
エフェクトの継続時間が有限で、エフェクトが Start メソッドへの呼び出しによって開始する場合、継続時間が過ぎるとエフェクトの再生は終了する。エフェクトが継続的に再生するように指定されている場合、再生が終了するのは DirectInputEffect.Stop メソッドが呼び出されたときに限られる。トリガボタンに割り付けたエフェクトはそのボタンを押すと開始し、そのボタンを離すか、継続時間が過ぎるか、どちらか早い方の時点で終了する。