Game Maker Language リファレンス > 組み込み関数 用途別 > サウンド > audio_play_sound_at
指定の位置からサウンドを再生します
audio_play_sound_at(index, x, y, z, falloff_ref, falloff_max, falloff_factor, loop, priority);
この関数を使用すると、オーディオ空間の所定の位置から任意のサウンドリソースを再生することができます。サウンドのインデックス番号を指定して、3D空間でのリスナーの位置(詳細はaudio_listener_position()を参照)を相対的な位置で指定します。デフォルトのリスナーは(0, 0, 0)で移動していません。例えば、音が左からやってくるような効果を表現する場合には、xに負の値を指定します。
また、フォール・オフの距離をfalloff_ref・falloff_maxで設定することができます。リスナー位置からの離れるにつれて、音がフェードアウトします(0は無音となり、デフォルトは100です)。 フェードの割合はfalloff_refの値に依存します(これは元のボリュームを通常は半分にドロップします)そしてfalloff_factor(falloff_refの距離の音にのみ影響を与える)でその影響をコントーロールします。 falloff_factorはデフォルトは「1」で、falloffの値による影響については関数audio_falloff_set_model()を参照してください。
最後の2つの引数はサウンドをループ再生するかどうか、音の優先度を割り当てます。 この優先度は、関数audio_channel_num()で設定された制限を超えているときの処理方法を決定するために使用されています。 優先度の低い音は、優先度の高い音を再生するために停止され、優先順位の値は任意の実数となります。(実数の値は0〜1、または整数値で0〜100で指定が可能です。GameMaker:Studioはそれらに同じ優先順位をつけます)
なお、この関数の戻り値は再生中の番号を返します。これを変数に格納して使用することで、サウンド関数により一時停止をしたり停止をすることができます。これにより同じサウンドの再生インスタンスが複数ある場合には、audio関数を使用して音の1つのみを操作対象とすることができます。
if global.SFX { audio_play_sound_at(snd_Waterfall, x, y, 0, 100, 300, 1, true, 1); }
上記コードはグローバル変数"SFX"をチェックしtrueを返した場合、サウンドリソース変数"snd_Waterfall"で現在インスタンス位置から100のfalloff_ref、300のfalloff距離、falloff_factorを1で、低い優先度でループ再生します