유니티 버전 - 2022.3.44f1
목차
- 오디오믹서란?
- 오디오믹서의 역할
- Audio Mixer와 AudioManager의 컴포넌트 설정
- 설정
- ChangeVolme을 이용한 오디오믹서 볼륨 제어
- 코드
- 설명
- 완성된 코드 및 실행 결과
- 완성코드
- 실행결과
- 마치며
- 간단 정리
오디오믹서란?
오디오믹서를 간단하게 정의하자면 게임에서 발생하는 모든 소리의 "중앙 제어실"입니다, 각각의 소리를 의도한대로 그룹별로 묶고 볼륨을 조절할 수 있습니다, 오디오 믹서를 이용하여 오디오에 다양한 효과를 넣을 수 도 있고, 게임 중 실시간으로 소리의 크기나 효과를 바꾸어줄 수 있습니다
AudioManager의 컴포넌트 설정
저번 AudioManager에서 이어지는 내용입니다, 아래를 참고해주시길 바랍니다
1. Project -> Create -> AudioMixer를 선택하여 오디오믹서 에셋을 생성해줍니다
2. Add child group을 이용하여 Music과 SFX를 만들어줍니다
3. 각각의 볼륨을 조절하기위해 Master, Music, SFX의 파라미터를 추가해줍니다
4. Exposed Parameters (3)을 클릭하고 우측의 Volume (of XXX)을 참고하여 알맞게 F2를 이용하여 이름을 바꿉니다
5. AudioManager의 자식인 SFX에서 Output을 설정해줍니다, 에셋을 끌어다놔도 가능하고 우측의 버튼을 눌러도 가능합니다, 나머지9개도동일하게 적용시켜줍니다
6. BGM의 OutPut도 설정해줍니다
ChangeVolme을 이용한 오디오믹서 볼륨 제어
위에서 모든 변경사항을 수정완료하였다면 ChangeVolme 스크립트를 만들어줍니다
using 지시문
using UnityEngine;
using UnityEngine.UI; // 슬라이더 이용시 필요
using UnityEngine.Audio; // AudioMixer 이용시 필요
선언부
[SerializeField] AudioMixer myMixer; // 설정한 오디오 믹서를 위한 변수
[SerializeField] Slider masterSlider; // 마스터 볼륨
[SerializeField] Slider musicSlider; // 배경음 볼륨
[SerializeField] Slider sfxSlider; // 효과음 볼륨
슬라이더를 3개 만들어주고 인스펙터에서 매칭시켜줍니다, 오디오 믹서는 에셋 자체를 끌어다가 놓습니다
볼륨변경을 위한 메서드
public void SetMasterVolume() // 마스터
{
float volume = masterSlider.value;
myMixer.SetFloat("Master", Mathf.Log10(volume)*20);
}
public void SetMusicVolume() // 배경음
{
float volume = musicSlider.value;
myMixer.SetFloat("Music", Mathf.Log10(volume) * 20);
}
public void SetSFXVolume() // 효과음
{
float volume = sfxSlider.value;
myMixer.SetFloat("SFX", Mathf.Log10(volume) * 20);
}
마스터 하나만 설명하겠습니다, 나머지도 메서드에서도 적용되는 내용입니다
public void SetMasterVolume()
{
float volume = masterSlider.value;
// 슬라이더의 현재 값을 volume에 저장해줍니다
myMixer.SetFloat("Master", Mathf.Log10(volume) * 20);
// SetFloat 함수는 믹서 내의 파라미터를 조정하는 메서드입니다
// SetFloat("미리 정의된 파라미터의 이름", 값);
// Mathf.Log10(volume)을 이용해 volume을 로그 값으로 변환합니다
// 20을 곱해 값을 데시벨 단위로 변환하여 오디오 시스템에서사용할 수있도록 만듭니다
// 사용법만 알고 있으면 됩니다
}
각 슬라이더로 이동하여 처리해야할 것이 남아있습니다
1. Master슬라이더로 이동하여 맨 아래 On Value Changed (Single)에서 +를 눌러 리스트를 추가해줍니다
2. 스크립트가 붙어있는 부모 오브젝트를 마우스로 끌어 넣어줍니다
3. No Function을 누른 후 아래의 순서에따라 setXXX중 해당 슬라이더에 맞게 매칭시켜줍니다
4. 설정이 완료된 상태입니다, 나머지 슬라이더 두 개도 설정해줍니다
실행결과
슬라이더를 이동시키기전 오디오 믹서의 값은 0, 슬라이더의 Value 값은 0.5임을 확인할 수 있습니다
마스터의 슬라이더를 왼쪽으로 이동시키자 Audio Mixer와 슬라이더의 Value의 값에 변화가 생겼음을 알 수 있습니다
마치며
오디오 믹서와 슬라이더를 이용하여 볼륨을 조절하는법을 알아보았습니다
오디오 믹서는 여러 장점이 있지만 복잡한 구조에 따르는 추가 학습이 필요하기 때문에 프로젝트의
크기를 고려하여 사용이 적합한지 판단해야합니다, 꼭 오디오 믹서의 여러 기능을 이용하지 않더라도
간단한 볼륨 조절과 제어에 있어서는 좋은 방법이라고 생각합니다
다음에 이어서 더 개선시킨 오디오 믹서에 대하여 포스팅하도록 하겠습니다
이상입니다.
'코드 및 공부 > 오디오' 카테고리의 다른 글
오디오 믹서 (2) (0) | 2024.09.19 |
---|---|
오디오 매니저를 이용한 Audio Source 관리 (2) | 2024.09.17 |