Develop document : Sound System - Tiny-Metro/Poly-Metro GitHub Wiki
TinyMetro ํ๋ก์ ํธ์ ์๋ฆฌ (๋ฐฐ๊ฒฝ, ํจ๊ณผ์)์ SoundManager ํด๋์ค์ ์ํด ๊ด๋ฆฌ๋ฉ๋๋ค. ํด๋น ๋ฌธ์๋ SoundManager ๋ฐ ๊ทธ์ ๊ด๋ จ๋ ๊ฐ์ ๋ํ ์ค๋ช ์ ๋๋ค.
ํ๋ก์ ํธ์์ ์ฌ์ฉ ํ ํจ๊ณผ์์ ์ฉ์ด์ ๋ํ ์ ๋ฆฌ์ ๋๋ค.
| ๋ฌธ์ ๋ฐ ํ๊ธ ์ฉ์ด | -> | ํ๋ก์ ํธ ๋ณ์๋ช |
|---|---|---|
| ๋ฐฐ๊ฒฝ ์์ | BGM | |
| ์ญ ์์ฑ ์๋ฆผ | StationSpawn | |
| ๊ธฐ์ฐจ ๋ฐฐ์น | SpawnTrain | |
| ๊ฐ์ฐจ ๋ฐฐ์น | SpawnSubtrain | |
| ๊ธฐ์ฐจ ์ ๊ทธ๋ ์ด๋ | TrainUpgrade | |
| ์ญ ์ ๊ทธ๋ ์ด๋ | StationUpgrade | |
| ์ด๋ฒคํธ ๋ฐ์ | OccurEvent | |
| ๋ฉ๋ด ๋ฒํผ / ์์ ๋ฑ ๋ฒํผ ํด๋ฆญ | ButtonClick | |
| ์์ <-> ์ํ <-> ์ ์ฑ ๋ฑ ํญ๊ฐ ์ด๋ | TabMove | |
| ์ ์ง | Pause | |
| ์ฌ์ | Unpause |
ํด๋น ๋ณ์๋ช ์ TinyMetroEffectSound enum class์ ์ ์๋์ด ์์ต๋๋ค.
๊ฐ๊ฐ์ ํจ๊ณผ์์ ๋ค์ ์์น์ ์ ์๋์ด ์์ต๋๋ค.
| ํจ๊ณผ์ ์ข ๋ฅ | -> | ํธ์ถ ์์น |
|---|---|---|
| ์ญ ์์ฑ ์๋ฆผ | StationManager::SpawnStation | |
| ๊ธฐ์ฐจ ๋ฐฐ์น | Train::ServiceStart | |
| ๊ฐ์ฐจ ๋ฐฐ์น | Subtrain::ServiceStart | |
| ๊ธฐ์ฐจ ์ ๊ทธ๋ ์ด๋ | TrainTemplate::Upgrade | |
| ์ญ ์ ๊ทธ๋ ์ด๋ | Station::Upgrade | |
| ์ด๋ฒคํธ ๋ฐ์ | TinyMetroEventManager::OccurEvent | |
| ๋ฉ๋ด ๋ฒํผ / ์์ ๋ฑ ๋ฒํผ ํด๋ฆญ | [] | |
| ์์ <-> ์ํ <-> ์ ์ฑ ๋ฑ ํญ๊ฐ ์ด๋ | [] | |
| ์ ์ง | [] | |
| ์ฌ์ | [] |
SoundManager๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋ ๋ฒจ์ ๋ฐฐ์นํ ์, ๋ค์ ์ฌํญ์ด ๊ณ ๋ ค๋์ด์ผ ํฉ๋๋ค.
ํ์ดํ ๋ฑ์ Game Level์ด ์๋ ๊ฒฝ์ฐ, ๋ ๋ฒจ์ ์ง์ SoundManager๋ฐ SaveManager๊ฐ ๋ฐฐ์น๋์ด์ผ ํฉ๋๋ค.
Game Level์ผ ๊ฒฝ์ฐ, GameMode์์ SoundManager๋ฅผ ์๋์ผ๋ก ์คํฐํฉ๋๋ค.
์ด ๊ฒฝ์ฐ, ๋ ๋ฒจ์ SoundManager๋ฅผ ๋ฐฐ์นํ ํ์๊ฐ ์์ต๋๋ค.
SoundManager๋ ๋ค์๊ณผ ๊ฐ์ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
ํ์ดํ ๋ฑ์ Game Level์ด ์๋ ๊ฒฝ์ฐ, UGameplayStatics::GetActorOfClassํจ์๋ฅผ ์ด์ฉํฉ๋๋ค.
Game Level์ผ ๊ฒฝ์ฐ, SoundManager๋ GameMode์ ์ํด ์คํฐ๋ฉ๋๋ค.
๋ฐ๋ผ์, GameMode์ GetSoundManagerํจ์๋ฅผ ์ด์ฉํฉ๋๋ค.
SoundManager๋ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ํํฉ๋๋ค.
ํ์ฌ ๋ ๋ฒจ์ด ํ์ดํ ๋ ๋ฒจ์ผ ๊ฒฝ์ฐ, ์๋์ผ๋ก ํ์ดํ BGM์ ์ฌ์ํฉ๋๋ค.
ํ์ฌ ๋ ๋ฒจ์ด ๊ฒ์ ๋ ๋ฒจ์ผ ๊ฒฝ์ฐ, ์๋์ผ๋ก ๊ฒ์ BGM์ ์ฌ์ํฉ๋๋ค.
BGM์ ๋๋ค์ผ๋ก ์ ํ๋์ด ๋ฐ๋ณต์ ์ผ๋ก ์ฌ์๋ฉ๋๋ค.
๊ฒ์ ํจ๊ณผ์์ ํน์ ์ํฉ์ ๋ง๊ฒ ๋ค์ ํจ์๋ฅผ ํธ์ถํ์ฌ ์ฌ์ํ ์ ์์ต๋๋ค.
void SoundManager::PlaySound(TinyMetroEffectSound)
์ ๋ ฅ enum์ ํด๋นํ๋ ์ฌ์ด๋๋ฅผ ์ฌ์ํฉ๋๋ค.
๋ฐฐ๊ฒฝ์ ๋ฐ ํจ๊ณผ์์ ํฌ๊ธฐ๋ ๋ค์๊ณผ ๊ฐ์ด ์กฐ์ ํ ์ ์์ต๋๋ค.
void SoundManager::SetMasterVolume(float)
void SoundManager::SetBackgroundVolume(float)
void SoundManager::SetEffectVolume(float)
๋ํ, ๋ค์ ํจ์๋ฅผ ํตํด ํ์ฌ ๋ฐฐ๊ฒฝ์ ๋ฐ ํจ๊ณผ์์ ๊ฐ์ ๋ฐ์์ฌ ์ ์์ต๋๋ค.
float SoundManager::GetMasterVolume()
float SoundManager::GetBackgroundVolume()
float SoundManager::GetEffectVolume()
Master volume์ ๊ฒฝ์ฐ, Background ๋ฐ Effect๋ชจ๋์ ์ํฅ์ ๋ฏธ์น๋ ๊ฐ์
๋๋ค.
์ต์ข
์ ์ธ Background ๋ฐ Effect๊ฐ์ ๊ฐ๊ฐ์ ๊ฐ์ Master volume์ ๊ฐ์ด ๊ณฑํด์ ธ์ ์ ์ฉ๋ฉ๋๋ค.