目次 - SDL_mixer - API(機能別) - エフェクト - Mix_SetPosition

Mix_SetPosition

チャネルの位置を設定する

構文

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

引数

channel減衰させるチャネル, またはMIX_CHANNEL_POST
angle度数法の角度. 北が0で時計回り
distance距離. 0が聴者, 255が最大遠

戻り値

エラー(チャネルがない, またはMix_RegisterEffect()が失敗)のとき0, エフェクトが有効になったとき0以外を戻す. エラーメッセージはMix_GetError()で得られる.

詳細

`angle`は0から360の整数で, 音源の聴者からの相対的な位置を表す. `angle`は必要に応じて変換される(540は180°, -100は260°など). 0°は真北で, 値が増加すると時計回りに回転する. 効率化のため, このエフェクトの精度には制限がある(1°から7°, 8°から15°は同じ出力など). `distance`は音源と聴者の間隔を表す0から255の整数である. 値が大きいほど音源から遠くなる. 距離255でもチャネルがミキシングから取り除かれる, または完全に無音になるとは限らない. 効率化のため, このエフェクトの精度には制限がある(距離1から7は同じ, 8から15は同じ, ...の様に). `angle`と`distance`に0を設定するとエフェクトが解除され, 以降のデータは通常通りになる.

より正確な位置エフェクトが必要な場合は, 離散的なSDL_mixerのエフェクトではなくOpenALの使用を検討すべきである. これはシンプルな"3D"ゲームのための基礎的なエフェクトにすぎない.

オーディオデバイスがモノラルの場合, 角度は何も影響を与えないが, 距離によるチャネルの減衰は発生する. このエフェクトはステレオ音声でも使用できるが, モノラル音声の方がミックスしたとき正しい位置に設定される. もし望むならば, ミキサーに渡す前にSDLでモノラルに変換することもできる.

チャネルにMIX_CHANNEL_POSTを設定するとポストエフェクトとなり, 距離はオーディオデバイスに渡される前の最後のミキシングの直前に適用される.

この関数はMix_SetDistance()Mix_SetPanning()のラッパーである.

他のSDLやSDL_mixerの関数とは異なり, この関数は成功ではなくエラーのとき0を戻す.

バージョン

SDL_mixer 2.0.0以降

SDL Wikiへのリンク

SDL2_mixer/Mix_SetPosition