전체 페이지뷰

2017년 9월 20일 수요일

Unity Tutorial: Tanks, part 7

Audio Mixing


배경음악을 넣기 위해 GameManeger를 선택하고 Add Component>Audio>Audio Source를 고릅니다. 그리고 Audio Clip에 BackgroundMusic을 선택하고 Loop에 체크합니다.


이제 오디오 소스들의 밸런스를 관장하는 AudioMixer를 추가하려고 합니다. 프로젝트 창에서 Assets에 Create>Folder 하여 AudioMixers라는 폴더를 추가합니다. 그리고 그 폴더 내에 Create>Audio Mixer하여 MainMix라는 이름으로 오디오믹서를 추가합니다.


그리고 상단 메뉴에서 Window>Audio Mixer를 선택하고 생겨난 창을 끌어다 좌하단 게임뷰 또는 씬뷰 옆에 붙여줍니다.



유니티에서는 여러 종류의 오디오 소스를 group이라는 이름으로 묶어 관리합니다.


그림의 +버튼을 누르면 Master 아래에 group을 추가할 수 있습니다. 여기에 Music, SFX, Driving 이라는 세 개의 group을 추가하겠습니다. 세 개 모두 Master의 하위이므로 생성할 때마다 Master를 선택한 상태에서 해야한다는 점 주의하시기 바랍니다.


그런 다음 프로젝트창에서 Assets>Prefabs폴더의 Tank를 선택합니다. 인스펙터 창의 첫번째 Audio Source(엔진음 종류에 해당하는)를 보면 Output 이라는 프로퍼티가 있는데 그것을 MainMix의 Driving으로 바꿉니다.


같은 방식으로 장전음 발사음에 쓰이는 두번째 Audio Source는 MainMix의 SFX로 합니다.

다음은 포탄 차례입니다. 프리팹 폴더의 Shell의 자식인 ShellExplosion을 보면 Audio Source가 있는데 그것은 MainMix의 SFX로 합니다.



Hierarchy 창에서 GameManager를 선택하면 역시 백그라운드 음악용 오디오 소스가 있는데 그것은 같은 방식으로 MainMix의 Music으로 합니다.

이 상태에서 실행을 해 보면 아래 그림처럼 오디오 믹서의 눈금이 움직입니다.


배경음과 엔진 소리가 너무 큰 것 같습니다. Music은 -12로 내리고 Driving은 -25로 내립니다.

한 가지 중요한 일이 더 남았습니다. 포탄이 폭발하거나 하는 SFX 음이 나올때 강조를 위해 백그라운드 뮤직이 좀 더 소리가 작아지게 하려고 합니다. 이것을 ducking이라고 합니다. SFX음이 일정 역치에 도달했을 때 Music에 신호를 보내고 Music이 일시적으로 소리를 줄이는 것입니다.

Music 하단에서 Add>Duck Volume으로 항목을 추가합니다.

그리고 SFX 하단에서 Add>Send를 추가합니다.

SFX를 선택하고 인스펙터 창을 보면 Send라는 항목이 들어가 있습니다. Receive 프로퍼티를 드랍다운 해서 Music\Duck Volume을 연결합니다. 그리고 Send level은 0dB로 바꿉니다.


다시 Music을 선택하고 게임을 실행시켜 봅니다. 그러면 소리 데시벨이 아래 그림처럼 그래프로 표시되는데

Threshold를 변화시켜 어느 정도의 소리에서 ducking을 할 것인지 정합니다. 여기서는 -45dB 정도로 하겠습니다.



이제 다시 실행시켜 보면 포탄이 터질 때에 Music이 살짝 소리가 줄어드는 것을 확인할 수 있습니다. 추가적으로 프로퍼티를 두개 더 조절합니다.

Ratio와 Attack Time을 변경하여 효과가 좀 더 즉각적으로 나타나게 하였습니다.

이것으로 TANKS! 제작이 끝났습니다. 씬을 저장하는 것 잊지 마시기 바랍니다.

댓글 없음:

댓글 쓰기