오디오 동기화 그룹 함수 설명
개요
audio_play_in_sync_group 함수는 사전에 생성된 동기화 그룹에 사운드를 할당할 수 있게 해주는 기능입니다. 여기서 그룹 인덱스는 audio_create_sync_group() 함수를 사용해 그룹을 생성할 때 반환된 값이며, 사운드 인덱스는 Asset Browser에서 가져온 사운드의 핸들입니다. 이 함수는 사운드를 그룹에 추가하지만, 사운드를 재생하지는 않습니다. 함수의 반환 값은 성공 시 0 이상, 실패 시 -1을 반환하며, 성공 시 사운드가 그룹에 추가된 순서를 나타냅니다(0은 첫 번째, 1은 두 번째 등).
문법
audio_play_in_sync_group(group_index, sound_index);
인수 설명
| 인수 | 타입 | 설명 |
|---|---|---|
| group_index | 오디오 동기화 그룹 ID | 사운드를 할당할 그룹 인덱스입니다. |
| sound_index | 사운드 자산 | 그룹에 할당될 사운드 인덱스입니다. |
반환값
- 실수형: 성공 시 그룹 내 사운드의 순서 인덱스 (0 이상), 실패 시 -1
예제
다음은 audio_play_in_sync_group 함수를 사용한 예제입니다.
// 동기화 그룹 생성
sg = audio_create_sync_group(true);
// 사운드 추가
audio_play_in_sync_group(sg, sound1);
audio_play_in_sync_group(sg, sound2);
audio_play_in_sync_group(sg, sound3);
audio_play_in_sync_group(sg, sound4);
// 동기화 그룹 재생
audio_start_sync_group(sg);
이 코드는 새로운 동기화 그룹을 만들고, 변수 "sg"에 그룹의 인덱스를 할당합니다. 네 개의 사운드를 그룹에 추가한 후, 마지막에 동기화 그룹을 재생합니다.
다양한 활용 및 응용 예제
기본 사용 예
// 동기화 그룹 생성
sync_group = audio_create_sync_group(true);
// 서로 다른 효과음 추가
audio_play_in_sync_group(sync_group, explosion_sound);
audio_play_in_sync_group(sync_group, background_music);
// 그룹 재생
audio_start_sync_group(sync_group);
사운드 볼륨 조절 추가
// 동기화 그룹 생성
sync_group = audio_create_sync_group(true);
// 사운드 추가 및 볼륨 조절
audio_play_in_sync_group(sync_group, sound1); // 기본 볼륨
audio_play_in_sync_group(sync_group, sound2); // 기본 볼륨
audio_play_in_sync_group(sync_group, sound3); // 기본 볼륨
// 그룹 재생
audio_start_sync_group(sync_group);
// 이후 필요 시 볼륨 조절
audio_set_gain(sound1, 0.5); // sound1의 볼륨을 50%로 조절
부드러운 전환 효과 구현
// 동기화 그룹 생성
sync_group = audio_create_sync_group(true);
// 사운드 추가
audio_play_in_sync_group(sync_group, ambient_sound);
audio_play_in_sync_group(sync_group, combat_sound);
// 동기화 그룹 재생
audio_start_sync_group(sync_group);
// 사운드 전환을 부드럽게 처리
if (is_in_combat) {
audio_set_gain(ambient_sound, 0); // 배경음 줄이기
audio_set_gain(combat_sound, 1); // 전투음 높이기
}
위의 예제들은 audio_play_in_sync_group 함수를 활용하여 다양한 오디오 효과를 연출할 수 있는 방법을 보여줍니다. 필요한 기능에 맞게 이 함수를 응용하면 게임 내에서 더욱 풍부한 사운드를 구현할 수 있습니다.