`audio_play_sound_at` 함수 설명
audio_play_sound_at 함수는 주어진 3D 공간 내에서 특정 위치에서 사운드 자산을 재생할 수 있도록 해주며, 사운드 인덱스를 제공하고 3D 공간 내의 위치를 할당합니다. 기본 리스너 위치는 (0, 0, 0)이며, 리스너가 이동하지 않은 상태에서 왼쪽에서 사운드를 재생하고 싶다면 x 위치를 음수로 설정해야 합니다.
사운드의 감소 거리(fall-off distance)를 설정할 수 있으며, 0으로 설정하면 사운드는 무음이 됩니다. 기본값은 100입니다. 사운드의 감소는 리스너의 위치에서 얼마나 멀어지는지에 따라 변하며, 이와 관련된 파라미터도 설정할 수 있습니다. 다음과 같은 값들이 있습니다:
- falloff reference: 사운드의 볼륨이 절반으로 감소하는 기준 거리
- fall off factor: 기준 거리 이후의 사운드 감소 효과
이 외에도 사운드를 반복 재생할지 여부와 우선순위를 할당할 수 있으며, 이 우선순위는 동시에 재생되는 사운드 수가 제한을 초과할 때 어떻게 처리될지를 결정합니다.
함수 문법
audio_play_sound_at(index, x, y, z, falloff_ref, falloff_max, falloff_factor, loop, priority, [gain], [offset], [pitch], [listener_mask]);
인자 설명
| 인자 | 타입 | 설명 |
|---|---|---|
| index | Sound Asset or Audio Queue ID | 재생할 사운드의 인덱스 |
| x | Real | x 위치 |
| y | Real | y 위치 |
| z | Real | z 위치 |
| falloff_ref | Real | 리스너에 대한 감소 참조 값 (clamp) |
| falloff_max | Real | 리스너에 대한 최대 감소 거리 |
| falloff_factor | Real | 감소 계수 (기본값은 1) |
| loop | Boolean | 사운드의 반복 여부 |
| priority | Real | 사운드의 채널 우선 순위 |
| gain | Real | 사운드 인스턴스의 이득 (기본값 1) |
| offset | Real | 재생 시작 시간 (초 단위) |
| pitch | Real | 피치 |
| listener_mask | Real | 사운드에 설정할 비트마스크 데이터 |
반환값
- 사운드 인스턴스 ID
사용 예제
예제 1
if (global.SFX) {
audio_play_sound_at(snd_Waterfall, x, y, 0, 100, 300, 1, true, 1);
}
위 코드는 전역 변수 "SFX"를 확인하고 true일 경우, "snd_Waterfall" 사운드 인덱스가 방 안의 위치에서 반복 재생되며, 감소 기준 거리는 100, 최대 감소 거리는 300, 감소 계수는 1, 그리고 낮은 우선순위로 설정됩니다.
예제 2
if (global.SFX) {
audio_play_sound_at(snd_Waterfall, x, y, 0, 100, 300, 1, true, 1, 1, 2);
}
위 코드는 "SFX"가 true일 경우, "snd_Waterfall" 사운드 인덱스가 방 안의 위치에서 주어진 감소 설정을 사용하여 반복 재생됩니다. 사운드는 2초에서 즉시 재생됩니다.
추가 활용 예제
예제 3: 사운드 우선순위 설정
if (global.SFX) {
audio_play_sound_at(snd_Explosion, x, y, 0, 50, 200, 1, true, 100);
}
위 코드는 폭발 사운드를 우선 순위 100으로 설정하여 동시에 재생되고 있는 다른 사운드보다 높은 우선 순위를 가집니다.
예제 4: 사운드의 피치 변경
if (global.SFX) {
audio_play_sound_at(snd_Music, x, y, 0, 100, 300, 1, true, 50, 1, 0, 1.5);
}
이 코드는 음악 사운드를 피치 1.5로 설정해 더 높은 음으로 재생하게 합니다.
참고
- audio_listener_position(): 리스너 위치 설정에 대한 더 많은 정보
- audio_falloff_set_model(): 다양한 감소 모델 가이드
© Copyright YoYo Games Ltd. 2024 All Rights Reserved