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

# SDL_HapticEffect

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

## フィールド

Uint16 | type | 効果の種類
SDL_HapticConstant | constand | 一定効果
SDL_HapticPeriodic | periodic | 周期効果
SDL_HapticCondition | condition | 条件効果
SDL_HapticRamp | ramp | 増減効果
SDL_HapticLeftRight | leftright | 左右効果
SDL_HapticCustom | custom | カスタム効果

## 詳細

この共用体に含まれる全ての構造体には次の項目がある.

再生 (この要目は全ての効果にある)
Uint32 | length | 継続時間(ミリ秒)
Uint16 | delay | 効果が始まるまでの待ち時間
トリガ (この要目は全ての効果にある)
Uint16 | button | 効果を引き起こすボタン
Uint16 | interval | 効果を再び引き起こす時間
エンベロープ (この要目はconditionを除く全ての効果にある)
Uint16 | attack_length | 立ち上がりの継続時間
Uint16 | attack_level | 立ち上がりの強さ
Uint16 | fade_length | 立ち下げの継続時間
Uint16 | fade_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