오디오 이미터의 세기 가져오기
audio_emitter_get_gain 함수는 주어진 오디오 이미터에 설정된 현재 세기(볼륨)를 반환합니다. 세기는 일반적으로 0에서 1 사이의 값으로, 0은 무음(silent)이고 1은 최대 볼륨(full volume)을 의미합니다. 일부 플랫폼에서는 1 이상의 세기도 가능하지만, 1은 "최대 볼륨"으로 간주되며, 그 이상의 값은 오디오 클리핑(audio clipping)을 유발할 수 있습니다.
문법
audio_emitter_get_gain(emitter);
인자 설명
| 인자 | 타입 | 설명 |
|---|---|---|
| emitter | Audio Emitter ID | 사용할 이미터의 인덱스 |
반환 값
- Real: 현재 세기 값 (0과 1 사이의 실수)
예제 코드
아래 코드는 특정 이미터의 현재 세기를 확인하고, 세기가 1보다 작다면 1로 설정하는 예제입니다.
if (audio_emitter_get_gain(emitter_player) < 1) {
audio_emitter_gain(emitter_player, 1);
}
활용 및 응용 예제
- 오디오 이미터의 볼륨 조절
- 게임에서 특정 상황에 따라 오디오의 세기를 조절할 수 있습니다. 예를 들어, 플레이어 캐릭터가 가까이 갈수록 볼륨을 증가시키는 경우입니다.
gml if (player_nearby) { audio_emitter_gain(emitter_player, 1); } else { audio_emitter_gain(emitter_player, 0.5); }
- 게임 이벤트에 반응하는 오디오
- 어떤 이벤트가 발생했는지에 따라 볼륨을 다르게 설정할 수도 있습니다.
gml if (event_occurred) { audio_emitter_gain(emitter_game_over, 1); // 게임 오버 시 최대 볼륨 } else { audio_emitter_gain(emitter_game_over, 0.3); // 기본 볼륨 }
- 부드러운 볼륨 전환
- 볼륨을 부드럽게 변화시키기 위해 반복문을 사용하여 세기를 점진적으로 변경할 수 있습니다.
gml var target_gain = 1; var current_gain = audio_emitter_get_gain(emitter_player); while (current_gain < target_gain) { current_gain += 0.1; // 세기 증가 audio_emitter_gain(emitter_player, current_gain); sleep(50); // 약간의 대기 }
결론
audio_emitter_get_gain 함수는 게임 내에서 오디오 이미터의 볼륨을 모니터링하고 조절할 수 있는 유용한 도구입니다. 이를 활용하여 다양한 오디오 효과와 상황에 맞는 볼륨 조절을 구현할 수 있습니다.