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

SDL_HapticDirection

エフェクトの方向の構造体

ヘッダ

SDL3/SDL_haptic.h

フィールド

SDL_HapticDirectionTypetype座標系の種類 (詳細を参照すること)
Sint32dir[3]方向 (詳細を参照すること)

詳細

これは力が来る方向であり, 力が向かう方向ではない.

座標系には次のものがある:

ハプティックデバイスの基本方位は, デバイスの位置と相対的である. 北をユーザが向いている方向とすると, 南がユーザのいる方向, 東が右, 西が左である.

基本方位は次の図のようになっている:

                .--.
                |__| .-------.
                |=.| |.-----.|
                |--| ||     ||
                |  | |'-----'|
                |__|‾')_____('
               [ コンピュータ ]


                   北 (0,-1)
                      ^
                      |
                      |
(-1,0) 西 <----[ ハプティック ]----> 東 (1,0)
                      |
                      |
                      v
                   南 (0,1)


                  [ ユーザ ]
                    ¥|||/
                    (o o)
              ---ooO-(_)-Ooo---

typeSDL_HAPTIC_POLARならば, 方向は北から時計回りの度数の100倍で指定する. SDL_HAPTIC_POLARdirの1番目のみ使う. 基本方位は次のようになる.

typeSDL_HAPTIC_CARTESIANならば, 方向は3軸(X軸, Y軸, Z軸)で指定する. SDL_HAPTIC_CARTESIANdirの3番目までを使う. 基本方位は次のようになる.

もし対応していればZ軸はエフェクトの高さを表す. 対応していなければ使われない. 直行座標系では(1, 2)は(2, 4)は同じである. 考慮されるのは方向のみで, 望むならば何倍にしてもよい.

typeSDL_HAPTIC_SPHERICALならば, 方向は2つの角度で指定する. dirの2番目までを使う. dirの値は次の通りである(全ての値は度数の100倍).

力を南からかける場合の全ての表現の例(力を南からかける場合, ユーザは力に対抗してスティックを引くことになる):

SDL_HapticDirection direction;

// 直交座標
direction.type = SDL_HAPTIC_CARTESIAN; // 直交座標を使う
direction.dir[0] = 0; // X軸
direction.dir[1] = 1; // Y軸
// デバイスは2次元なので, 3つ目のパラメータは必要ない

// 極座標
direction.type = SDL_HAPTIC_POLAR; // 極座標を使う
direction.dir[0] = 18000; // 極座標は最初のパラメータのみ使う

// 球面座標
direction.type = SDL_HAPTIC_SPHERICAL; // 球面座標を使う
direction.dir[0] = 9000; // 2次元なのでこれ以上パラメータは必要ない

バージョン

SDL 3.2.0以降

関連項目

SDL Wikiへのリンク

SDL_HapticDirection - SDL Wiki