์๋
ํ์ธ์.
์ด์ ์์
์ค ํ๋๋ฅผ ๋ง์น ๊น์, ์ ๊น ์งฌ์ ๋ด์ ๊ฐ๋ฐ ์ผ์ง๋ฅผ ์์ฑํฉ๋๋ค.
* ๊ธ์ฌ์ฃผ๊ฐ ์์ด์ ์ผ๋จ ์์ฑํ ๊ธ์ gptํํ ๊ฐ๋ฌด๋ฆฌ ๋ถํํ์ต๋๋ค.
๊ฒ์์์์ ์ผ์ ์ ์ง
๋๋ถ๋ถ์ PC ๊ฒ์์๋ "์ผ์ ์ ์ง(Pause)" ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
์ ์๋ ค์ง ๊ธฐ๋ฅ์ด์ง๋ง, ๊ฐ๋จํ ๋งํ๋ฉด ๊ฒ์์ ๋ชจ๋ ์งํ์ ๋ฉ์ถ๊ณ ํ์ฌ ์ํ๋ฅผ ๊ทธ๋๋ก ์ ์งํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
Unity + FMOD ํ๊ฒฝ์์ ๋ฐ์ํ ์ผ์ ์ ์ง ๋ฌธ์
ํ์ฌ ๋ฆฌ๋ฌ ๊ฒ์์ ๊ฐ๋ฐ ์ค์ด๋ฉฐ, ์ค๋์ค ์ฌ์ ์์คํ
์ผ๋ก Unity ๋ด์ฅ ์ค๋์ค ๋์ FMOD๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
FMOD๋ฅผ ์ฌ์ฉํ๋ ์ฃผ๋ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
-
Unity ์ค๋์ค ์์คํ ์ ๋นํด ์ง์ฐ ์๊ฐ์ด ํจ์ฌ ์งง๋ค.
-
Unity ๊ธฐ๋ณธ ์ค๋์ค๋ ์ฌ์ ์ค ๋๊น ํ์์ด ๋ฐ์ํ๊ธฐ ์ฌ์, ์ ๋ฐํ ํ์ด๋ฐ์ด ์ค์ํ ๋ฆฌ๋ฌ ๊ฒ์์์๋ ๋ถ์ ํฉํ๋ค.
-
FMOD๋ ์ธ๋ ๊ฐ๋ฐ์์ ๊ฒฝ์ฐ ์ผ์ ์์ต ์ดํ์ผ ๋ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์๋ค๋ ์ฅ์ ๋ ์๋ค.
ํ์ง๋ง FMOD๋ Unity ์ธ๋ถ์ ๋ฏธ๋ค์จ์ด์ด๊ธฐ ๋๋ฌธ์, Unity์ ์์ ํ ๋์ผํ ํ์ด๋ฐ์ผ๋ก ๋์ํ์ง๋ ์์ต๋๋ค.
๊ทธ๋ก ์ธํด โ์ผ์ ์ ์ง โ ํด์ โ ์์ ์ ์ค๋์ค ์ฌ์ ์ํ์ ์บ๋ฆญํฐ ์์ง์ ์ฌ์ด์ ๋ฏธ์ธํ ์ฑํฌ ์ค์ฐจ๊ฐ ๋ฐ์ํ๋ ๋ฌธ์ ๊ฐ ์๊ฒผ์ต๋๋ค.
๋ฌธ์ ์ ๊ตฌ์ฒด์ ์ธ ์์ธ ๋ถ์
FMOD์ ์ด๋ฒคํธ ์ธ์คํด์ค์์๋ GetTimelinePosition()์ ํตํด ํ์ฌ ์์์ ์ฌ์ ์๊ฐ์ ์ ์ ์์ต๋๋ค.
์ด ์ด๋ฒคํธ๋ FMOD Studio์์ ์ฌ์ ์ ์ํ ๊ฐ์ฒด๋ก, ํ๋์ ์ด๋ฒคํธ์๋ ์ฌ๋ฌ ์์์ด ํฌํจ๋ ์ ์์ผ๋ฉฐ, ์ดํํฐ๋ ๋ณด์ ๋ ํฌํจ๋ฉ๋๋ค.
(์ฐธ๊ณ ๋ก, ์์ ํ์ผ ์์ ์ด ๊ธ์ง๋ ๋ผ์ด์ ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ์ด๋ฒคํธ ๋ด์์ ์ฌ์ ํ์ด๋ฐ ์กฐ์ ๋ง์ผ๋ก ํจ๊ณผ๋ฅผ ์ค ์ ์์ด ์ ์ฉํฉ๋๋ค.)
์ผ์ ์ ์ง๊ฐ ๋ฐ์ํ๋ฉด, Unity์์๋ Pause ํ๋๊ทธ๋ฅผ true๋ก ์ค์ ํ๊ณ , ๊ฒ์ ๋ก์ง์ ๋๋ถ๋ถ์ด ๋ฉ์ถ๋๋ก ์ฒ๋ฆฌํฉ๋๋ค.
์ด์ ๋์์ FMOD ์ด๋ฒคํธ ์ธ์คํด์ค์๋ pause(true)๋ฅผ ํธ์ถํ์ฌ ์ฌ์์ ๋ฉ์ถฅ๋๋ค.
ํ์ง๋ง ์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ์๊น๋๋ค.
Unity์ ์บ๋ฆญํฐ ์์ง์์ ๋ณดํต Update()๋ LateUpdate()์์ Time.deltaTime์ ๊ธฐ์ค์ผ๋ก ์ฒ๋ฆฌ๋๋ฉฐ, ์ด๋ ํ๋ ์ ๊ธฐ๋ฐ์ผ๋ก ๋์ํฉ๋๋ค.
๋ฐ๋ฉด FMOD๋ ์ค๋์ค ์ ์ฉ ์ฐ๋ ๋์์ ์ค๋์ค๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์, pause() ํธ์ถ ์์ ์ด Unity์ ํ๋ ์ ํ์ด๋ฐ๊ณผ ๋ฏธ์ธํ๊ฒ ์ด๊ธ๋ ์ ์์ต๋๋ค.
์ฆ, ์ผ์ ์ ์ง๋ฅผ ๋๋ฅธ ๊ทธ ์๊ฐ, Unity์ FMOD ๊ฐ์ ์๋ก ๋ค๋ฅธ ์์ ์์ ์ ์งํ๊ฒ ๋์ด, ํด์ ์ ์ฑํฌ ์ค์ฐจ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ฑํฌ ๋ณด์ ์ ํ๊ณ
โ๊ทธ๋ฅ ์ผ์ ์ ์ง ํด์ ์ ๋ณด์ ํ๋ฉด ๋๋ ๊ฒ ์๋๊ฐ์?โ๋ผ๋ ์๋ฌธ์ด ๋ค ์ ์์ต๋๋ค.
ํ์ง๋ง ์ด ๊ฒ์์ ์์์ ์ฌ์ ์๊ฐ์ ๋ง์ถฐ ์บ๋ฆญํฐ๊ฐ ์ ํํ ์์ง์ด๋ ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์, ๋จ์ ๋ณด์ ์ ๋ฌธ์ ๊ฐ ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด playTime ๋ณ์๋ฅผ FMOD์ ์ฌ์ ์๊ฐ์ ๋ง์ถฐ ๋ณด์ ํ๋ค๋ฉด, ์ด ๊ฐ์ ๋ฐ๋ผ ์ด๋ํ๋ ์บ๋ฆญํฐ๋ ๊ฐ์๊ธฐ ์๊ฐ์ด๋ํ๊ฒ ๋ฉ๋๋ค.
๋ฐ๋๋ก ์บ๋ฆญํฐ ์์น๋ฅผ ์ ์งํ ์ฑ FMOD ์ฌ์ ์๊ฐ์ ์ต์ง๋ก ๋ง์ถ๋ฉด, ์์ ์ธ๊ธํ ์ค์ฐจ ๋ฌธ์ ๋ก ์ค๋์ค ์ฑํฌ๊ฐ ์ด๊ธ๋๊ฒ ๋ฉ๋๋ค.
(์ฐธ๊ณ ๋ก FMOD ์ด๋ฒคํธ์ setTimelinePosition()์ ํธ์ถํ๋๋ผ๋, ์ผ์ ์ ์ง ์ํ์์๋ ์ ์ฉ์ด ์ง์ฐ๋๊ฑฐ๋ ๋ฌด์๋๋ ๊ฒฝ์ฐ๊ฐ ์์ด, ํ์ด๋ฐ ๋ณด์ ์ด ์ด๋ ต์ต๋๋ค.)
ํด๊ฒฐ ๋ฐฉ๋ฒ: ์ ๋ ์๊ฐ ๊ธฐ๋ฐ์ ํ์ด๋จธ ์ฌ์ฉ
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ Unity์ FMOD ์์ชฝ ๋ชจ๋์์ ์ฌ์ฉํ ์ ์๋ ์ ํํ ์ ๋ ์๊ฐ ๊ธฐ์ค์ด ํ์ํฉ๋๋ค.
๋ํ ์ด ์๊ฐ ๊ฐ์ ํ๋ ์ ๋จ์ ์ค์ฐจ ์์ด ์
๋ฐ์ดํธ๋์ด์ผ ํ๋ฉฐ, ์ผ์ ์ ์ง ์ค์๋ ์ ์ง ์ํ๋ฅผ ์ ์งํด์ผ ํฉ๋๋ค.
์ด๋ฅผ ์ํด ์๋์ ๊ฐ์ ํด๋์ค๋ฅผ ์์ฑํ์ต๋๋ค.
์ฒ์์๋ Unity์ AudioSettings.dspTime์ ์ฌ์ฉํ ์๊ฐ์ด์์ง๋ง, FMOD๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด Unity ์ค๋์ค ์์คํ
์ ๋นํ์ฑํํ๊ธฐ ๋๋ฌธ์ ๋์ Time.realtimeSinceStartupAsDouble์ ์ฌ์ฉํ์ต๋๋ค.
(๋ณ์๋ช
์ dsp๊ฐ ๋จ์์์ง๋ง, ์ค์ ๋ก๋ DSP ์๊ฐ๊ณผ๋ ๋ฌด๊ดํฉ๋๋ค.)
๊ตฌํํ ์ ๋ฐ ํ์ด๋จธ ํด๋์ค
์ด ํ์ด๋จธ ํด๋์ค๋ฅผ ๋์
ํ์ฌ ๊ธฐ์กด์ Time.deltaTime์ ์ฌ์ฉํ๋ ๊ฒ์ ํ์ด๋ฐ ์์คํ
์ ๋์ฒดํ์ต๋๋ค.
ํ์ด๋จธ๋ ์ฌ์ ํ ๋งค ํ๋ ์ ์
๋ฐ์ดํธ๋์ง๋ง, ๋ด๋ถ ์๊ฐ ๊ณ์ฐ์ ํ๋ ์ ๋ ์ดํธ์ ๋ฌด๊ดํ๊ฒ ๋์ํฉ๋๋ค.
์ด๋ฅผ ํตํด ๋ค์๊ณผ ๊ฐ์ ๊ฐ์ ํจ๊ณผ๋ฅผ ์ป์์ต๋๋ค:
-
Unity์ FMOD ๊ฐ์ ์ผ์ ์ ์ง ๋ฐ ํด์ ํ์ด๋ฐ ์ฐจ์ด๋ฅผ ์ค์ผ ์ ์์
-
DeltaTime ๊ธฐ๋ฐ์ ์๊ฐ ๊ณ์ฐ ๋ถ์์ ์ฑ์ ํด์
-
ํ์ด๋จธ๋ฅผ ํด๋์ค๋ก ๋ถ๋ฆฌํ๊ธฐ ๋๋ฌธ์, ํ์ ์ ๋ค์ค ์ธ์คํด์ค ์์ฑ ๊ฐ๋ฅ
๊ฒฐ๊ณผ์ ์ผ๋ก, ์ผ์ ์ ์ง ํ์๋ ์ค๋์ค์ ์บ๋ฆญํฐ์ ์์ง์ ๊ฐ์ ์ฑํฌ๊ฐ ์์ฐ์ค๋ฝ๊ฒ ์ ์ง๋๋ฉฐ, ๋ฆฌ๋ฌ ๊ฒ์์์ ์ค์ํ ์ ๋ฐ ํ์ด๋ฐ์ด ์ ์ง๋ฉ๋๋ค.
์ด์ ์ผ์์ ์ง๋ฅผ ํด์ ํด๋ ์ฑํฌ๊ฐ ์ด๊ธ๋์ง ์์ต๋๋ค. (๋งค์ฐ ๋ฏธ์ธํ ์์ค์ ์ค์ฐจ๊ฐ ์์ ์๋ ์์ง๋ง ํ์ฉ ๋ฒ์!)
์ผ์์ ์ง ํ ๊ฒ -> ํ๋ ์ด์ด : ๋ ์ค๋น ๋ (0.01ms) ์ค๋์ค : ๋๋ ์ค๋น ๋ (0.03ms) ใ ใ ์ผ์์ ์ง ํ๋ค (0.0326ms, 2ํ๋ ์) ์ด๋ฌ๋ฉด ๋์ง ์๋จ??
์ ํํ ์์ธ์ ํ์ ๋ชปํ๋๋ฐ ๊ทธ ๋ฐฉ์์ผ๋ก ํด๋ดค๋๋ฐ๋ ์ค์ฐจ๊ฐ ๋ฐ์ํ์ใ ,ใ ์ง์ง ๋ชจ๋ฅด๊ฒ ์ด์ ๋ฌด์ํ ๋ฐฉ๋ฒ๋ ์ฌ๋ฌ๊ฐ์ง ์จ๋ดค๋๋ฐ deltaTime ์ฐ๋ ๋์์๋ ๊ฒฐ๊ตญ ์บ๋ฆญํฐ๊ฐ ํ์ด๋๊ฐ๋ ๋ฌธ์ ๋ ๊ณ์ ๋ฐ์ํ์ ๊ธฐ์กด์ ์บ๋ฆญํฐ ์์ง์ผ ๋๋ deltaTime์ผ์ผ๋๊น ๊ฒ์ ์ค๊ฐ์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ค์ฐจ ๋ณด์ ํ๋๋ก ํด์คฌ๋๋ฐ, ์ผ์์ ์ง๋ ๋ฉ์ท๋ค ์์ง์ด๋ ๊ฑฐ๋ผ์ ๋ ๋์ ์ ๋์์
@211214 ๋ด ์ถ์ธก์ผ๋ก๋, ๊ฒฐ๊ตญ ํ๋ ์ด์ด ์บ๋ฆญํฐ์ ๋ชจ๋ ธ๋นํค๋น์ด๊ฐ ์์ง์ด๊ธฐ ์์ํ๋ ๊ฑด ๋ค์ ํ๋ ์๋ถํฐ ์์๋๊ณ (+deltaTime์ด ๋ค์ ํ๋ ์๋ถํฐ ๊ณ์ฐ๋จ) ์ค๋์ค ์ฌ์ ์ฌ๊ฐ๋ pause(false) ํธ์ถ ์ฆ์ fmod ๋ณ๋ ์ค๋ ๋์์ ์์ํ๋๊ฑฐ๋ผ ํ๋ ์์ ๊ธฐ๋ค๋ฆฌ์ง ์์ผ๋๊น ์ค์ฐจ๊ฐ ์๊ธฐ๋๊ฒ ์๋๊น? ์ถ๊ธฐ๋ ํ๊ณ ..
์์ฆ ํค๋ณด๋ ๋ค 8000hz์ฉ ํ๋ ๊ณ ํ๋ง๋ ์ดํธ ์ง์ํ๋๋ฐ ๊ทธ๊ฑฐ ๊ตฌํ ํ์ จ๋์? ํ์ จ๋ค๋ฉด ์ด๋ป๊ฒ ๊ตฌํํ์ จ๋์ง ์ฌ์ช๋ด๋ ๋๋์? ์ ๋ ์ฐพ์๋ด๋ ์ ๋ชจ๋ฅด๊ฒ ์ด์์ - dc App
์์ง ์ํด์ ์ ๋ชฐ๋ฃจ... ๊ทธ๋ฅ ๊ณํ์ ๋ก์ฐ ์ธํ์ด๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ์ผ๋ก ๋ณ๊ฒฝํ ๊น ์๊ฐ์ค. ํ์ฌ๋ ๊ทธ๋ฅ ํ๋ฒํ๊ฒ ์ ๋ํฐ ์ธํ ์์คํ ์ฐ๊ณ ์์ต๋๋ค.