오디오 속성 개요
이 문서는 GameMaker에서 지원하는 오디오 속성과 이러한 속성을 설정하거나 변경할 수 있는 다양한 "레벨"에 대한 자세한 개요를 제공합니다. 아래 표는 기본 오디오 속성에 적용 가능한 모든 레벨과 각 레벨에서 각 속성을 설정하고 가져오는 데 사용할 수 있는 함수를 나열합니다.
오디오 속성 레벨
| 레벨 | Gain 설정 함수 | Gain 가져오기 함수 | Pitch 설정 함수 | Pitch 가져오기 함수 | 트랙 위치 설정 함수 | 트랙 위치 가져오기 함수 |
|---|---|---|---|---|---|---|
| Asset | audio_sound_gain |
audio_sound_get_gain |
audio_sound_pitch |
audio_sound_get_pitch |
audio_sound_set_track_position |
audio_sound_get_track_position |
| Group | audio_group_set_gain |
audio_group_get_gain |
N/A | N/A | N/A | N/A |
| Emitter | audio_emitter_gain |
audio_emitter_get_gain |
audio_emitter_pitch |
audio_emitter_get_pitch |
audio_emitter_set_listener_mask |
audio_emitter_get_listener_mask |
| Instance/Voice | audio_sound_gain |
audio_sound_get_gain |
audio_sound_pitch |
audio_sound_get_pitch |
audio_sound_set_track_position |
audio_sound_get_track_position |
| Global/Listener | audio_master_gain |
audio_set_master_gain |
N/A | N/A | N/A | N/A |
주요 속성 설명
Gain (이득)
이득은 게임 중에 다음과 같이 설정하여 변경할 수 있습니다:
audio_sound_gain(snd_Explode, 0, 0); // 사운드 자산의 이득을 0으로 설정 (이 사운드의 새 및 기존 인스턴스가 음소거됨)
Pitch (피치)
결과적으로 음원의 피치는 모든 사운드에 대해 최저 한계가 1/256(-8 옥타브)입니다. 피치의 최대 한계는 사운드의 압축 유형에 따라 다릅니다. 비압축 사운드는 최대 한계가 256(+8 옥타브)이지만, 압축된 사운드는 최대 한계가 4(+2 옥타브)입니다.
피치가 클리핑되는 경우 경고 메시지가 콘솔에 출력됩니다. 압축 사운드의 경우 최대 한계에서 클리핑되면 알림 메시지가 콘솔에 출력되어 비압축 사운드보다 낮은 최대 한계를 가지는 점을 알려줍니다.
HTML5에서 비압축 사운드와 압축 사운드는 1/256부터 256까지 동일한 범위를 가집니다. 따라서 압축된 사운드의 최대 한계에서 클리핑에 대한 특정 경고가 없습니다.
활용 및 응용 예제
여기에서는 오디오 속성을 활용하는 몇 가지 예제를 제공합니다.
예제 1: 사운드 이득 조절하기
특정 이벤트가 발생했을 때 사운드 이득을 조절하는 기능:
if (event_type == ev_mousebuttonup) {
audio_sound_gain(snd_Click, 1, 0); // 클릭 사운드의 이득을 1로 설정
}
예제 2: 배경 음악의 피치 변경하기
게임의 특정 레벨에서 배경 음악의 피치를 변경하는 예:
if (level == 2) {
audio_sound_pitch(snd_BackgroundMusic, 2); // 피치를 2로 설정
}
예제 3: 미리 정해진 그룹의 이득 조절하기
여러 사운드를 그룹으로 묶어 그룹의 이득을 조절할 수 있습니다:
audio_group_set_gain(group_Music, 0.5); // 음악 그룹의 이득을 0.5로 설정
예제 4: 현재 음악 트랙 위치 가져오기
현재 재생 중인 음악의 트랙 위치를 확인하는 기능:
var position = audio_sound_get_track_position(snd_BackgroundMusic);
show_message("현재 트랙 위치: " + string(position));
위 예제들은 오디오 속성을 다양한 상황에서 효율적으로 사용하는 방법을 보여줍니다. 각 함수를 적절히 활용하여 게임의 오디오 경험을 더욱 풍부하게 만들어 보세요.