Audio Sync Group 생성 및 활용
이 문서는 audio_create_sync_group 함수에 대한 설명과 여러 활용 예제를 포함하고 있습니다. 이 함수는 오디오 트랙 그룹을 생성하고, 이를 식별하기 위한 고유 ID 값을 반환합니다. 이 ID 값은 이후 모든 오디오 관련 함수 호출에 사용됩니다.
기본 개념
- Sync Group: 여러 오디오 트랙을 동시에 관리하고 동기화하는 그룹입니다.
- Looping: 그룹의 트랙이 반복 재생될 것인지의 여부를 설정합니다.
함수 구문
audio_create_sync_group(loop);
인수 설명
| 인수 | 타입 | 설명 |
|---|---|---|
| loop | Boolean | 그룹의 트랙이 반복될지 여부 (true: 반복, false: 비반복) |
반환값
- Audio Sync Group ID: 새로 생성된 동기화 그룹의 고유 ID 값입니다.
예제
아래의 예제는 새로운 동기화 그룹을 생성하고 다양한 오디오 트랙을 추가하는 과정을 보여줍니다.
// 동기화 그룹 생성. 반복 재생 설정
sg = audio_create_sync_group(true);
// 동기화 그룹에 소리 추가
audio_play_in_sync_group(sg, sound1);
audio_play_in_sync_group(sg, sound2);
audio_sound_gain(sound2, 0, 0); // sound2 볼륨 조정 (0으로 설정하여 무음)
audio_play_in_sync_group(sg, sound3);
audio_sound_gain(sound3, 0, 0); // sound3 볼륨 조정 (무음)
audio_play_in_sync_group(sg, sound4);
audio_sound_gain(sound4, 0, 0); // sound4 볼륨 조정 (무음)
// 동기화 그룹 시작
audio_start_sync_group(sg);
위의 예제에서는 새로운 동기화 그룹을 생성하고, 4개의 사운드를 추가한 후 그룹을 재생합니다. 일부 사운드는 볼륨을 0으로 설정하여 무음으로 만들었습니다.
사용 시 주의사항
- 반복 설정(
true)을 할 경우, 나중에 추가하는 모든 트랙의 길이가 같아야 합니다. - 더 이상 사용하지 않는 경우에는
audio_destroy_sync_group()함수를 호출하여 메모리와 사운드를 해제해야 합니다. 이 작업은Room End나Destroy이벤트에서 수행하는 것이 좋습니다.
활용 및 응용 예제
1. 게임 내 배경 음악
게임의 배경 음악을 설정할 때, 여러 트랙을 동기화하여 연속적인 사운드를 만드는 데 유용합니다.
bgm_sync_group = audio_create_sync_group(true);
audio_play_in_sync_group(bgm_sync_group, bgm_track1);
audio_play_in_sync_group(bgm_sync_group, bgm_track2);
audio_start_sync_group(bgm_sync_group);
2. 특정 이벤트에 연동된 오디오
특정 게임 이벤트에서 여러 사운드를 동시에 재생할 때도 유용합니다.
event_sync_group = audio_create_sync_group(false);
audio_play_in_sync_group(event_sync_group, event_sound1);
audio_play_in_sync_group(event_sync_group, event_sound2);
audio_start_sync_group(event_sync_group);
3. 퀘스트 완료 시 음악 재생
퀘스트 완료 시 특별한 음악을 재생하는 경우, 그룹을 만들어 효과적으로 관리할 수 있습니다.
quest_complete_sync_group = audio_create_sync_group(false);
audio_play_in_sync_group(quest_complete_sync_group, quest_completed_sound);
audio_start_sync_group(quest_complete_sync_group);
이처럼 동기화 그룹을 활용하면 오디오 관리가 훨씬 수월해집니다. 다양한 상황에 맞춰 유용하게 활용해 보세요!