目次 - 4.関数 - 4.6エフェクト - Mix_SetPosition

Mix_SetPosition

int Mix_SetPosition(int channel, Sint16 angle, Uint8 distance)

channel
エフェクトを登録するチャネル番号. MIX_CHANNEL_POSTとするとミキシングの後の処理
angle
0〜360度の前方からの相対角度. それよりも大きな角度は 角度 % 360 となる.
0 = 前方
90 = 右
180 = 背面
270 = 左
前方から始まり時計回りと考えるとよい. 結果としてMix_SetPanningと似たエフェクトになる
distance
聞き手との距離. 0(近い/大きい)〜255(遠い/小さい)

このエフェクトは3D音声をシミュレートする. あまりリアリティはないが, リアリティを増す手助けにはなりうる. カメラの視点からのangleとdistanceは, パンと減衰のエフェクトになる. よりよい位置オーディオを探しているならば, OpenALを使うことを勧める.

メモ: angleとdistanceの両方を0にするとchannelからこのエフェクトを削除する. チャネルに対してMix_UnregisterAllEffectsを使うことを除けば, この方法以外で削除することはできない.

戻り値: チャネルが不正, Mix_RegisterEffectに失敗などのとき0(偽)

サンプルコード

// チャネル2を右後方の100単位距離にする
if(!Mix_SetPosition(2, 135, 100)) {
    printf("Mix_SetPosition: %s\n", Mix_GetError());
    // 位置エフェクトがない?
}

参照

Mix_SetPanning, Mix_SetDistance, Mix_UnregisterAllEffects

原文へのリンク

4.6.7 Mix_SetPosition