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 - 거리에 따른 사운드 볼륨 크기의 변화)
2) audio_falloff_inverse
//audio_falloff_set_model 의 model 값 audio_falloff_inverse_distance |
(▲ audio_falloff_inverse_distance - 거리에 따른 사운드 볼륨 크기의 변화)
3) audio_falloff_linear
//audio_falloff_set_model 의 model 값 audio_falloff_linear_distance |
(▲ audio_falloff_linear_distance - 거리에 따른 사운드 볼륨 크기의 변화)
마지막으로 사운드의 듣는 위치를 설정하면 됩니다.
사운드의 듣는 위치는 아래의 함수를 사용하여 조절 할 수 있습니다.
audio_listener_position(x, y, z) |
위치는 보통 플레이어의 위치를 지정합니다.
일반적으로 (x,y,z) 는 3D 좌표이지만, 2D 일 경우 z값을 0으로 한 채, (x,y,0)으로 지정하면 됩니다.
예를 들어,
예) 사운드 재생 거리 100 까지는 기본 볼륨으로, 100~300 사이의 거리에 따라 볼륨이 조절되로록 할 경우.
|
이와 같이 한다면, 사운드가 재생되는 곳에서 거리 100 까지는 기본 볼륨으로, 100 이후 부터는
볼륨이 점점 작아지고, 300 이후로는 사운드가 들리지 않게 합니다.
이것은 audio_listener_position 함수를 통해 듣는 위치에 따라 볼륨을 자동으로 조절 하는 것입니다.
'GameMaker강좌[GM8] > 기초강좌' 카테고리의 다른 글
[게임메이커강좌-기초] 좌표를 통한 이동 (5) | 2017.01.06 |
---|---|
[게임메이커강좌-기초] 로컬 하이 스코어 표시 (4) | 2017.01.06 |
[게임메이커강좌-기초] 사운드 재생 (2) | 2017.01.02 |
[게임메이커강좌-기초] 이미지를 부분적으로 잘라서 표시하기 (0) | 2017.01.01 |
[게임메이커강좌-기초] 충돌 체크 함수 2 (1) | 2016.12.15 |
댓글