audio_get_master_gain 함수 설명
`audio_get_master_gain` 함수는 특정 리스너에 대한 모든 사운드와 음악의 전역 볼륨의 절대 값을 가져오는 데 사용됩니다. 기본 리스너 인덱스는 0이지만, `audio_get_listener_info` 함수를 사용하여 대상 플랫폼에서 사용할 수 있는 다른 인덱스를 확인할 수 있습니다. 반환되는 게인 값은 0(무음)에서 1(최대 볼륨)까지의 선형 스케일을 기반으로 합니다. 일부 플랫폼에서는 1보다 큰 게인을 가질 수 있지만, 값이 1인 경우를 "최대 볼륨"으로 간주하며, 이보다 큰 값은 오디오 클리핑을 유발할 수 있습니다.
## 문법
```gml
audio_get_master_gain(listenerIndex);
인수
| 인수 이름 | 자료형 | 설명 |
|---|---|---|
| listenerIndex | Real 또는 Audio Listener ID | 게인을 가져올 리스너의 인덱스 |
반환값
- Real: 요청된 리스너의 마스터 게인 값.
사용 예제
다음은 여러 리스너를 반복하면서 각각의 게인이 1인지 확인하고, 1이 아닐 경우 1로 설정하는 코드입니다.
var num = audio_get_listener_count();
for(var i = 0; i < num; ++i;)
{
var info = audio_get_listener_info(i);
var ind = info[? "index"];
if(audio_get_master_gain(ind) != 1)
{
audio_set_master_gain(info[? "index"], 1);
}
ds_map_destroy(info);
}
위 코드는 사용 가능한 리스너를 순회하며, 각 리스너의 마스터 게인이 1인지 확인하고, 1이 아닐 경우 1로 설정합니다.
활용 및 응용 예제
- 게임 내 볼륨 조정 기능
- 사용자가 설정 메뉴에서 전체 볼륨을 조정할 수 있도록 기능을 구현합니다. 전체 볼륨 값을 저장하고, 게임이 시작될 때마다 이 값을 사용하여 모든 리스너의 볼륨을 설정합니다.
gml var masterVolume = 0.8; // 80% 볼륨 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"], masterVolume); ds_map_destroy(info); } - 오디오 상태 모니터링
- 게임 내 오디오 상태를 모니터링하여 신호를 받을 수 있는 기능을 구현합니다. 특정 상황에서 게인이 낮을 경우 경고나 알림 메시지를 표시할 수 있습니다.
gml var num = audio_get_listener_count(); for(var i = 0; i < num; ++i) { var gain = audio_get_master_gain(i); if(gain < 0.5) { show_message("경고: 오디오 볼륨이 낮습니다."); } } - 음악에 따라 자동 조정
- 게임 내 특정 상황에서 배경 음악이 시작될 때 자동으로 게인을 조정하는 기능을 추가할 수 있습니다. 예를 들어, 전투 상황이 발생하면 배경 음악의 볼륨을 증가시키는 기능입니다.
gml if(inBattle) { var num = audio_get_listener_count(); for(var i = 0; i < num; ++i) { audio_set_master_gain(i, 1); // 전투 중에는 최대 볼륨으로 설정 } }
이 문서에서는 audio_get_master_gain 함수의 사용법과 예제, 활용 방안을 소개했습니다. ```