GAME MAKER 강좌
KAYAN
◈ 3D 사운드 재생
이번 강좌에서는 3D 사운드를 재생하는 방법에 대해 알아보도록 합시다.
게임메이커 스튜디오에서 3D 사운드의 재생은 아래 화면과 같이, 먼저 사운드를 재생 할 때, 위치를
지정해주어 사운드를 재생합니다. 그리고 듣는 위치(플레이어의 위치)를 조절해 주면 됩니다.
그러면 플레이어의 위치에 따라 사운드의 위치를 체크하여, 사운드 볼륨을 자동으로 변경해, 마치
3D 사운드를 듣는 것 처럼 사운드를 재생하는 것이지요.
(▲ 사운드를 듣는 위치에 따라 볼륨을 조절)
먼저 사운드를 특정 위치에 재생할 수 있는 함수는 아래와 같습니다.
◎ audio_play_sound_at(index, x, y, z, falloff_ref, falloff_max, falloff_factor, loop, priority) |
index 에 재생할 사운드를 지정해주고, x,y,z 에 재생 위치를 지정해주어 재생하면 됩니다.
falloff_ref 는 사운드를 최대 볼륨(기본 값)으로 유지 시킬 거리를 지정해주고, falloff_max 는
사운드를 들을 수 있는 최대 거리(사운드가 작아지는 거리 포함)를 지정합니다.
falloff_factor 는 볼륨이 변화가 있는 거리 값(기본값=1)을 지정합니다.
예를 들어, 1 값을 지정하면, falloff_ref 거리 이후 1만큼 멀어질 수록 볼륨에 변화를 줍니다.
loop 는 사운드를 반복 재생(반복재생=1, 1회 재생=0)할 지를 지정합니다.
그리고 priority 는 우선 순위로 0 또는 1, 또는 0~100 사이의 값을 지정합니다.
다음은 거리에 따른 사운드 볼륨의 변화 형태를 설정해야 합니다.
거리에 따른 사운드 볼륨의 변화 형태를 설정 할 수 있는 함수가 있습니다.
◎ audio_falloff_set_model(model) |
이 함수의 model 값은 audio_falloff_exponent, audio_falloff_inverse, audio_falloff_linear, 3 종류를
지정할 수 있습니다.
1) audio_falloff_exponent
//audio_falloff_set_model 의 model 값 ◎ audio_falloff_exponent_distance ◎ audio_falloff_exponent_distance_clamped |
(▲ audio_falloff_exponent_distance - 거리에 따른 사운드 볼륨 크기의 변화)
2) audio_falloff_inverse
//audio_falloff_set_model 의 model 값 ◎ audio_falloff_inverse_distance ◎ audio_falloff_inverse_distance_clamped |
(▲ audio_falloff_inverse_distance - 거리에 따른 사운드 볼륨 크기의 변화)
3) audio_falloff_linear
//audio_falloff_set_model 의 model 값 ◎ audio_falloff_linear_distance ◎ audio_falloff_linear_distance_clamped |
(▲ audio_falloff_linear_distance - 거리에 따른 사운드 볼륨 크기의 변화)
마지막으로 사운드의 듣는 위치를 설정하면 됩니다.
사운드의 듣는 위치는 아래의 함수를 사용하여 조절 할 수 있습니다.
◎ audio_listener_position(x, y, z) |
위치는 보통 플레이어의 위치를 지정합니다.
일반적으로 (x,y,z) 는 3D 좌표이지만, 2D 일 경우 z값을 0으로 한 채, (x,y,0)으로 지정하면 됩니다.
예를 들어,
예) 사운드 재생 거리 100 까지는 기본 볼륨으로, 100~300 사이의 거리에 따라 볼륨이 조절되로록 할 경우. ◎ 사운드 재생 위치 설정 audio_falloff_set_model(audio_falloff_linear_distance);//사운드 볼륨 형태 설정 snd=audio_play_sound_at(sound1,x,y,0,100,300,1,1,1);//사운드를 특정 위치에 재생 ◎ 사운드 듣는 위치 설정(플레이어의 위치) audio_listener_position(x,y,0);//듣는 위치 |
이와 같이 한다면, 사운드가 재생되는 곳에서 거리 100 까지는 기본 볼륨으로, 100 이후 부터는
볼륨이 점점 작아지고, 300 이후로는 사운드가 들리지 않게 합니다.
이것은 audio_listener_position 함수를 통해 듣는 위치에 따라 볼륨을 자동으로 조절 하는 것입니다.
'GameMaker강좌[GMS2] > GMS2기초강좌' 카테고리의 다른 글
[게임메이커 강좌-기초][GMS2] 충돌 체크와 충돌 이벤트 (0) | 2023.02.13 |
---|---|
[게임메이커강좌-기초][GMS2] 텍스트 파일 작성 (0) | 2023.02.13 |
[게임메이커 강좌-기초][GMS2] 사운드 재생 (0) | 2023.01.29 |
[게임메이커 강좌-기초][GMS2]뷰 서피스 (0) | 2023.01.21 |
[게임메이커 강좌-기초][GMS2]마우스 좌표 (0) | 2023.01.18 |
댓글