目次 - API(機能別) - 力覚フィードバック - SDL_HapticEffect

SDL_HapticEffect

ハプティック効果の全テンプレート共用体

フィールド

Uint16type効果の種類
SDL_HapticConstantconstand一定効果
SDL_HapticPeriodicperiodic周期効果
SDL_HapticConditioncondition条件効果
SDL_HapticRampramp増減効果
SDL_HapticLeftRightleftright左右効果
SDL_HapticCustomcustomカスタム効果

詳細

この共用体に含まれる全ての構造体には次の項目がある.
再生 (この要目は左右効果を除く全ての効果にある)
Uint32length継続時間(ミリ秒)
Uint16delay効果が始まるまでの待ち時間
トリガ (この要目は左右効果を除く全ての効果にある)
Uint16button効果を引き起こすボタン
Uint16interval効果を再び引き起こす時間
エンベロープ (この要目は条件効果と左右効果を除く全ての効果にある)
Uint16attack_length立ち上がりの継続時間
Uint16attack_level立ち上がりの強さ
Uint16fade_length立ち下げの継続時間
Uint16fade_level立ち下げの強さ

全ての項目の最大値は32767(0x7FFF)で, 符号ありの型の場合は負の数も可能である. 時間の項目は, 特別な場合を除き, ミリ秒単位である.

lengthには0〜32767の代わりにSDL_HAPTIC_INFINITYを渡すことができる. delay, interval, attack_length, fade_lengthはSDL_HAPTIC_INFINITYに対応していない. SDL_HAPTIC_RAMPの継続時間はSDL_HAPTIC_INFINITYに対応していない. 立ち下がりの値は効果が終わるまで使われない.

ボタントリガは全てのデバイスには対応していない. 可能ならば使わない方がよい. ボタン番号はジョイスティックとは異なり1から始まる.

attack_lengthとfade_levelの両方が0ならば, エンベロープは使われない. どちらかが0を超えていれば使われる.

一定効果のエンベロープの時間は次のようである.

強さ
^
|
|    effect level -->  _________________
|                     /                 \
|                    /                   \
|                   /                     \
|                  /                       \ 
| attack_level --> |                        \
|                  |                        |  <---  fade_level
|
+--------------------------------------------------> 時間

                   [--]                 [---]
               attack_length          fade_length

[------------------][-----------------------]
       delay                 length
attack_levelとfade_levelは, effect levelより上であることに注意すること.

関連項目(構造体)

SDL_HapticCondition
SDL_HapticConstant
SDL_HapticCustom
SDL_HapticDirection
SDL_HapticLeftRight
SDL_HapticPeriodic
SDL_HapticRamp

関連項目(関数)

SDL_HapticEffectSupported
SDL_HapticNewEffect
SDL_HapticUpdateEffect

SDL Wikiへのリンク

SDL_HapticEffect - SDL Wiki