`audio_set_master_gain` 함수 설명 및 활용 예제
audio_set_master_gain 함수는 특정 청취자를 위한 모든 소리와 음악의 전역 볼륨을 설정할 수 있는 기능을 제공합니다. 기본 청취자 인덱스는 0이며, 다른 청취자 인덱스를 얻으려면 audio_get_listener_info 함수를 사용할 수 있습니다. 볼륨 값은 0(무음)에서 1(최대 볼륨)까지의 선형 비율로 제공되며, 해당 청취자를 통해 재생되는 모든 소리와 음악의 상대적 볼륨에 영향을 미칩니다.
문법
audio_set_master_gain(listenerIndex, gain);
인자 설명
| 인자 | 타입 | 설명 |
|---|---|---|
listenerIndex |
Real / Audio Listener ID | 설정할 청취자의 인덱스 |
gain |
Real | 전역 볼륨 값 (0부터 1까지) |
반환값
- 해당 없음 (N/A)
예제 코드
아래 코드는 사용 가능한 청취자들을 반복하며, 각 청취자의 마스터 게인을 0.75로 설정하는 예제입니다.
var num = audio_get_listener_count(); // 청취자 수 확인
for (var i = 0; i < num; i++) {
var info = audio_get_listener_info(i); // 청취자 정보 가져오기
audio_set_master_gain(info[? "index"], 0.75); // 마스터 게인 설정
ds_map_destroy(info); // 메모리 해제
}
활용 및 응용 예제
1. 전체 볼륨 조정하기
게임에서 플레이어가 전체 볼륨을 조정할 수 있는 옵션을 제공할 수 있습니다.
var playerPreferredVolume = 0.6; // 플레이어가 설정한 볼륨 (예: 설정 메뉴에서 가져온 값)
audio_set_master_gain(0, playerPreferredVolume); // 기본 청취자 (0)의 볼륨 설정
2. 볼륨 조정 슬라이더 만들기
UI에 슬라이더를 추가하여 실시간으로 볼륨을 조정하게 할 수 있습니다.
if (slider_value_changed) { // 슬라이더 값이 변경되었을 때
var newGain = slider_value; // 슬라이더에서 얻은 값 (0에서 1사이)
audio_set_master_gain(0, newGain); // 볼륨 조정
}
3. 특정 이벤트에 따른 볼륨 조정
게임 내 특정 이벤트(예: 전투 시작)에서 볼륨을 조정할 수 있습니다.
if (event == "battle_start") {
audio_set_master_gain(0, 0.9); // 전투 중에 볼륨을 증가
} else if (event == "battle_end") {
audio_set_master_gain(0, 0.5); // 전투 끝나면 볼륨을 감소
}
결론
audio_set_master_gain 함수를 사용하면 게임 내 모든 오디오의 전역 볼륨을 쉽게 조정할 수 있습니다. 이 기능을 통해 플레이어에게 더욱 매력적인 오디오 경험을 제공할 수 있습니다.