본문 바로가기
GameMaker강좌[GM8]/기초강좌

[게임메이커강좌-기초] 사운드 재생

by 타락카얀 2017. 1. 2.
728x90



GAME MAKER 강좌



KAYAN









◈ 사운드 재생



게임메이커 스튜디오에서 사운드 재생에 지원되는 파일은 *.wav*.mp3파일들을 재생할 수 있습니다.
다만 사운드 mp3 파일을 재생하기 위해서는 글로벌 게임 설정(Global Game Settings)에서

Use New Audio Engine을 체크해야 합니다.

물론 기본적으로 체크되어있기 때문에 사운드 문제가 있는 경우가 아니면 굳이 신경쓰지 않아도 됩니다.


(▲ Use New Audio Engine을 체크)


게임메이커 스튜디오에서 *.wav 파일은 주로 효과음으로 사용합니다.
*.wav 파일이더라도 여러가지 포맷이 있는데, 게임메이커 스튜디오에서는 무압축 *.wav 파일만

재생할 수 있어요.

그렇기 때문에 사운드가 재생되지 않는다면, 사운드 파일을 다시 인코딩하는 것이 좋습니다.

게임메이커 스튜디오에서 사운드 재생 함수는 아래와 같습니다.



audio_play_sound(index, priority, loop)



이것은 재생할 사운드를 index 에 지정해주고, loop가 1이면 반복, 0이면 1회만 재생합니다.

priority는 사운드 채널의 우선 순위를 지정하는 것입니다. 값은 0, 1 또는 0~100 사이의 값을 지정할 수 있는데,
정수로 아무 값이나 지정하면 됩니다.


 

예) snd_bgm 사운드를 반복 재생


audio_play_sound(snd_bgm,1,1)



재생중인 사운드를 중지할 때는 다음과 같은 함수를 사용합니다.


 

audio_stop_sound(index) : 재생중인 사운드를 중지함.
audio_stop_all( ) : 모든 사운드를 중지함.



게임메이커 스튜디오에서는 재생중인 사운드를 일시정지 시킬 수 있는데, 일시정지하고자 할 때는
아래와 같은 함수를 사용합니다.


 

audio_pause_sound(index) : 재생중인 사운드를 일시정지함.
audio_pause_all( ) : 재생중인 모든 사운드를 일시정지함.



일시정지중인 사운드는 아래 함수를 사용하면 다시 재생시킬 수 있습니다.


 

audio_resume_sound(index) : 정지중인 사운드를 재생함.
audio_resume_all( ) : 정지중인 모든 사운드를 재생함.



그리고 재생중인지 확인할 수 있는 함수가 있습니다.


 

audio_is_playing(index)



이것은 index 에 지정한 사운드가 재생중인지 체크하는 것으로, 재생중일 때는 1(true)을 반환하고,

재생중이 아닐 때는 0(false)을 반환합니다.

주로 조건문으로 재생중인지 체크해 특정 사운드를 중지 시키거나 다른 사운드를 재생할 때 사용합니다.


 

예) bgm_battle 이라는 사운드가 재생중일 때, 모든 사운드를 중지.


if audio_is_playing(bgm_battle){audio_stop_all();}



사운드의 전체 볼륨은 아래의 함수로 조절 할 수 있습니다.


 

audio_master_gain(gain)



gain 값은 0~1 사이의 소수점으로 지정하면 됩니다. 0은 무음, 1은 최대 볼륨값입니다.

재생중인 사운드의 볼륨은 아래 함수로 조절할 수 있습니다.


 

audio_sound_gain(index, volume, time)



volume 값은 0~1 사이의 소수점으로 지정하면 됩니다. 0은 무음, 1은 최대 볼륨값입니다.

time (밀리초 단위, 1초=1000 밀리초)은 사운드의 어느 구간부터 볼륨을 조절할 지를 지정하면 됩니다.

예를 들어,


 

예)


snd=audio_play_sound(snd_bgm);
audio_sound_gain(snd,0,0);//0초는 무음.
audio_sound_gain(snd,1,5000);//0~5초간 볼륨이 점점 커져 최대 볼륨으로 재생



이와 같이 한다면, 먼저 snd_bgm 을 재생하고 그 index 를 snd 에 저장하여 볼륨을 제어하도록 합니다.

0초는 무음으로 시작해 5000 밀리초(1초=1000 밀리초, 5000 밀리초 = 5초)까지 볼륨이 점점 커지고,

그 후엔 최대 볼륨(무음=0, 최대볼륨=1)으로 재생되는 것입니다.








◈ 게임메이커 8.x



게임메이커 8.x 에서 사운드는 *.wav 파일과 *.mid 파일 두 종류를 지원합니다
재생에 관련된 GML코드로는 다음과 같은 함수가 있습니다.


 

sound_play(index) : 지정한 index 사운드 재생함.
sound_loop(index) : 지정한 index 사운드를 계속 반복시켜 재생함.



지정한 사운드를 중지 시킬 때는 다음과 같은 함수를 사용해요.


 

sound_stop(index) : 재생중인 index 사운드를 정지함.
sound_stop_all( ) : 모든 사운드를 중지함.



그리고 재생중인지 확인할 수 있는 함수가 있습니다.


 

sound_isplaying(index)



이것은 index 에 지정한 사운드가 재생중인지 체크하는 것으로 재생중일 때는 1(true)을 반환하고,

재생중이 아닐 때는 0(false)을 반환합니다.

주로 조건문으로 재생중인지 체크해 특정 사운드를 중지 시키거나 다른 사운드를 재생할 때 사용합니다.


 

예)


if sound_isplaying(bgm_battle){sound_stop_all( );}




300x250

댓글