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

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

by 타락카얀 2014. 2. 21.
728x90



GAME MAKER 강좌



KAYAN




◈사운드 및 음악재생



이번 강좌에서는 사운드 및 음악재생에 대해 알아보도록 합시다.



(▲ 사운드 재생 액션)


사운드 재생은 위와 같이 main1탭Sounds 의 액션을 사용하여 재생할 수 있습니다.
사운드는 *.wav 파일*.midi 파일을 사용합니다.
파일도 파일이지만 효과음과 같이 한번에 여러번 재생가능한 사운드, 한번에 1번만 재생할 수 있는 배경음악으로

구분됩니다.



(▲ 사운드 설정 - *.wav 파일일 경우)


*.wav 파일은 효과음으로 사용합니다.



(▲ 사운드 설정 - *.midi 파일일 경우)


*.midi 파일은 배경음악으로 사용할 수 있으며, 배경음악 같은 경우 재생 중인 배경음악은 중지시키고

재생시킵니다. 물론 효과음이라도 여러번 재생할 수 있는 것은 아니고, 설치된 사운드 카드에 따라 1번만

재생시킬 수도 있습니다.

사운드 및 음악재생은 아래의 액션을 사용하면 재생시킬 수 있습니다.



(▲ Play Sound 액션)


     sound : 재생할 사운드를 지정
     loop : 여러번 반복시켜 재생할지, 1번만 재생할 지 지정

loop 로 지정하면 재생이 끝난 후 다시 반복으로 재생시킵니다.
사운드를 중지하려면 아래의 액션을 사용하세요.



(▲ Stop Sound 액션)


     sound : 중지할 사운드를 지정

아래의 액션은 재생중인지 아닌지를 체크하는 조건문으로 사용할 수 있습니다.



(▲ Check Sound 액션)


     sound : 체크할 사운드 지정

이 액션은 재생중인지를 체크해 다른 효과음이나 다른 배경음으로 교체할 때 사용하기도 합니다.


재생에 관련된 GML 코드로는 다음과 같은 함수가 있습니다.

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

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

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

액션과 마찬가지로 재생중인지 확인할 수 있는 함수가 있습니다.

     sound_isplaying(index) : 지정한 사운드가 재생중인지 체크함. 1은 재생중, 0은 재생중이 아님.

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









◈게임메이커 스튜디오(GM:S) 에서의 사운드



게임메이커 스튜디오에서는 사운드 설정이 변경되었는데 지원되는 파일은 *.wav*.mp3파일들을
재생할 수 있습니다.
기존의 midi 파일을 재생했던 것을 다양한 플랫폼에서 재생하기 위해 mp3 로 대체한 것이지요.
새로운 사운드 mp3 파일을 재생하기 위해서는 글로벌 게임 설정에서 Use New Audio Engine을 체크해야

합니다.



(▲ Use New Audio Engine을 체크)


글로벌 게임 설정에서 Use New Audio Engine을 체크하면 됩니다.



(▲ 사운드 설정)


게임메이커 8.x와 마찬가지로 *.wav 파일은 효과음으로 사용합니다.
*.wav 도 여러 종류가 있는데, 게임메이커 8.x에서는 어느 파일이더라도 재생 가능했으나

게임메이커 스튜디오에서는 무압축 *.wav 파일만 재생할 수 있습니다.


게임메이커 8.x에서는 *.midi 파일을 배경음악으로 사용할 수 있었지만, 아쉽게도 더 이상 지원되지 않습니다.
게임메이커 스튜디오에서는 mp3 를 배경음악으로 사용합니다.


액션 기능은 게임메이커 8.x과 동일합니다.


게임메이커 스튜디오의 GML 재생 함수는 사운드와 배경음악으로 기능이 나뉩니다.

     audio_play_sound(index, priority, loop) : 지정한 사운드를 재생함. loop가 1이면 반복, 0이면 1회만 재생.

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

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

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

사운드가 재생중인지 아닌지, 조건문으로 다음과 같은 함수를 사용할 수 있습니다.

     audio_is_playing(index) : 지정한 사운드가 재생중인지 체크함.






300x250

댓글