728x90
ํํฐํด ์์คํ (Particle System)
- ํํฐํด(Particle, ์ ์)์ ํ์ฉํ์ฌ ๋ถ๊ฝ, ์ฐ๊ธฐ, ์ก์ฒด ๋ฑ๊ณผ ๊ฐ์ ๋์ ์ค๋ธ์ ํธ๋ฅผ ๊ตฌํํ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋จ
- ํํฐํด ์์คํ ์ ํํฐํด์ด๋ผ ๋ถ๋ฅด๋ ๋งค์ฐ ์์ ์ด๋ฏธ์ง๋ ๋ฉ์๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๊ณ ๋ ๋๋งํ์ฌ ์๊ฐ ํจ๊ณผ๋ฅผ ์์ฑํจ
- ์ด๋, ํํฐํด๋ค์ ๊ฐ๋ณ์ ์ผ๋ก ํ๋ ํ๋ ์๋ฎฌ๋ ์ด์ ํ๋ ๊ฒ์ด ์๋๋ผ, ๋ชจ๋ ํํฐํด๋ค์ ์ข ํฉ์ ์ผ๋ก ์๋ฎฌ๋ ์ด์ ํ์ฌ ์์ฑ๋ ํจ๊ณผ๋ฅผ ๊ตฌํํจ
- Unity์์๋ ๊ตฌํํ ํจ๊ณผ์ ๋ํด ๋ ํจ๊ณผ์ ์ธ ๊ฒ์ ์ ์ฐํ๊ฒ ์ ํํ ์ ์๋๋ก, ๋นํธ์ธ ํํฐํด ์์คํ
(Built-in Particle System), ๋น์ฃผ์ผ ์ดํํธ ๊ทธ๋ํ(Visual Effect Graph), ์ด๋ ๊ฒ 2๊ฐ์ง๋ฅผ ์ ๊ณตํจ
- ํ๋ก์ ํธ๊ฐ ์ปดํจํธ ์ ฐ์ด๋(Compute Shader)๋ฅผ ์ง์ํ๋ ํ๋ซํผ์ ๋ชฉํ๋ก ํ๋ ๊ฒฝ์ฐ์๋ ๋ ๊ฐ์ง ๋ชจ๋ ์ฌ์ฉํ ์ ์๋ค.
๋นํธ์ธ ํํฐํด ์์คํ (Built-in Particle System)
- CPU์์ ํํฐํด ๋์์ ์๋ฎฌ๋ ์ด์ ํจ
- C# ์คํฌ๋ฆฝํธ๋ฅผ ํตํด ํํฐํด ์์คํ ๊ณผ ํด๋น ์์คํ ๋ด์ ๊ฐ๋ณ ํํฐํด๋ค๊ณผ ์ํธ ์์ฉ์ด ๊ฐ๋ฅ
- ํํฐํด ์์คํ
API๋ฅผ ์ฌ์ฉํ์ฌ, ํํฐํด ์์คํ
์ ๋ํ ์ปค์คํ
๋์(์ฌ์ฉ์ ์ค์ )์ ๊ตฌํํ ์ ์์
- ์ฌ์ ์ปจํธ๋กค์ด ๊ฐ๋ฅํ API ์ ๊ณต → ์คํฌ๋ฆฝํธ๋ฅผ ํตํด ํจ๊ณผ๋ฅผ ์ฌ์ํ๊ฑฐ๋ ์ผ์ ์ค์ง, ์ฌ์ฉ์๊ฐ ์ค์ ํ ์ ์ ๊ฐ ๊ฑฐ๋ฆฌ๋ก ํจ๊ณผ๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๋ ๊ฒ๋ ๊ฐ๋ฅ. ์์คํ ์ ๊ฐ ํํฐํด ์์คํ ์ ์ฝ๊ฑฐ๋ ์ฐ๊ณ , ์ถฉ๋ ์ด๋ฒคํธ์ ์๋ต ๋ํ ๊ฐ๋ฅ
- ๊ฐ๋ฅํ ํํฐํด ์๋ ์ฒ ๊ฐ ์ ๋์ด๋ค.
- ๋นํธ์ธ ๋ ๋ ํ์ดํ๋ผ์ธ, ์ ๋๋ฒ์ค ๋ ๋ ํ์ดํ๋ผ์ธ, ๊ณ ํด์๋ ๋ ๋ ํ์ดํ๋ผ์ธ๊ณผ ํธํ์ด ๊ฐ๋ฅ
- ์ธ์คํํฐ์์ Particle System ์ปดํฌ๋ํธ๋ฅผ ์ถ๊ฐํ์ฌ ์ฌ์ฉํ๋ ๊ฐ๋จํ ์ฌ์ฉ๋ฒ. ๊ฒ์ ์คํ ์ , ์ฌ์ ์ ์ ์ํด๋์ ๋๋ก ๋์์ ์งํํ๋ค.
- Unity์ ๊ธฐ๋ณธ ๋ฌผ๋ฆฌ ์์คํ ๊ณผ ์ํธ์์ฉ์ด ๊ฐ๋ฅ → ์ฝ๋ผ์ด๋์ ์ํธ ์์ฉ ๊ฐ๋ฅ
- ํ๋ ์ ๋ฒํผ๋ ์ง์ํ์ง ์๋๋ค.
๋น์ฃผ์ผ ์ดํํธ ๊ทธ๋ํ (Visual Effect Graph)
- GPU์์ ์๋ฐฑ๋ง ๊ฐ์ ํํฐํด๋ค์ ์๋ฎฌ๋ ์ด์ ํ๊ณ , ๋๊ท๋ชจ์ ์๊ฐ ํจ๊ณผ ๊ตฌํ ๊ฐ๋ฅ
- ๋์ฑ ๋ ๋์ ๋ ๋ฒจ์ ์ปค์คํฐ๋ง์ด์ฆ๊น์ง ๊ฐ๋ฅํ์ฌ, ์๊ฐ ํจ๊ณผ๋ฅผ ์ฝ๊ฒ ๋ง๋ค ์ ์๋๋ก ๋น์ฃผ์ผ ๊ทธ๋ํ ์๋ํฐ๋ ์ ๊ณต
- ์ ๋๋ฒ์ค ๋ ๋ ํ์ดํ๋ผ์ธ, ๊ณ ํด์๋ ๋ ๋ ํ์ดํ๋ผ์ธ๊ณผ ํธํ ๊ฐ๋ฅ
- ๊ฐ๋ฅํ ํํฐํด ์๋ ๋ฐฑ ๋ง๊ฐ ์ ๋์ด๋ค.
- ๊ทธ๋ํ ๋ทฐ๋ฅผ ์ฌ์ฉํ๋ High-Level์ ์ปค์คํฐ๋ง์ด์ฆ๊ฐ ๊ฐ๋ฅํ ํ๋ก์ธ์ค
- ๋ฌผ๋ฆฌ ํจ๊ณผ ์ธก๋ฉด์์, ๋น์ฃผ์ผ ์ดํํธ ๊ทธ๋ํ์ ์ ์๋ ํน์ ์์์ ์ํธ ์์ฉ์ด ๊ฐ๋ฅ
- C# ์คํฌ๋ฆฝํธ์์ ๊ทธ๋ํ ํ๋กํผํฐ๋ฅผ ํ์ํ๊ณ ์ ๊ทผํ์ฌ, ๊ทธ ํจ๊ณผ๋ฅผ ํํํ๋ ๊ฐ์ฒด๋ฅผ ์ปค์คํฐ๋ง์ด์ฆ ๊ฐ๋ฅ
- ์ด๋ฒคํธ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ทธ๋ํ๊ฐ ์ฒ๋ฆฌํ ์ ์๋ ๋ฐ์ดํฐ๊ฐ ์ฒจ๋ถ๋ ์ปค์คํ ์ด๋ฒคํธ ์ ์ก์ด ๊ฐ๋ฅ
- Visual Effect ์ปดํฌ๋ํธ ๋ํ ์ฌ์ ์ปจํธ๋กค์ด ๊ฐ๋ฅํ API ๊ธฐ๋ฅ ์ ๊ณต (ํจ๊ณผ ์ฌ์, ์ผ์ ์ค์ง ๋ฑ)
- ๊ณ ํด์๋ ๋ ๋ ํ์ดํ๋ผ์ธ์ ๋ํด์๋ ์ปฌ๋ฌ ๋ฐ ๋์ค ๋ฒํผ์ ๋ํ ์ ๊ทผ์ ์ ๊ณตํ๋ค๊ณ ํจ
์ผ๋จ ์ด ๊ธ์์๋ ๋นํธ์ธ ํํฐํด ์์คํ ์ ๋ํด์ ๊ณต๋ถํ ๋ด์ฉ๋ค๋ง ๋ค๋ค๋ณด๋ ค๊ณ ํ๋ค.
๋นํธ์ธ ํํฐํด ์์คํ ์ดํด๋ณด๊ธฐ
ํํฐํด ์์คํ ์ถ๊ฐํ๊ธฐ
- Hierarchy์์ ์ฐํด๋ฆญ → Effects → Particle System
ํํฐํด ํจ๊ณผ ํจ๋
- ์์ฑํ ํํฐํด ์์คํ ์ค๋ธ์ ํธ๋ฅผ ํด๋ฆญํ๋ฉด, ์ฌ ๋ทฐ ๋ด๋ถ์ ๋ค์๊ณผ ๊ฐ์ ํจ๋์ด ๋ธ
ํํฐํด ์์คํ ์ปดํฌ๋ํธ ํ๋กํผํฐ
- Transform์ Position, Rotation, Scale ๊ฐ์ ์์ ํ์ฌ ํํฐํด ๊ฐ๋ณ์ ์์น, ํ์ ๊ฐ, ํฌ๊ธฐ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅ
์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ํ๋กํผํฐ์ ๋ค์ํ
- ํํฐํด ์์คํ
์ปดํฌ๋ํธ์์ ์๊ฐ ๊ฒฝ๊ณผ์ ๋ฐ๋ฅธ ์
์์ ๋ชจ์ ๋ณํ๋ฅผ ์ค์ ํ๊ธฐ ์ํ ํ๋กํผํฐ ์ต์
์ด ์กด์ฌํจ
- ex) Start Delay, Start Lifetime, Start Speed ๋ฑ
- Constant : ์ ์๊ฐ ์๋ช ์๊ฐ๋์ ๊ณ ์ ๋ ํ๋กํผํฐ ๊ฐ์ ๊ฐ์ง
- Curve : ํด๋น ํ๋กํผํฐ ๊ฐ์ ์ปค๋ธ/๊ทธ๋ํ๋ก ๊ท์ ๋จ
- Random Between Two Constants : ํด๋น ํ๋กํผํฐ ๊ฐ์ ์ํ์ ๊ฐ๊ณผ ํํ์ ๊ฐ์ ์ง์ ํ๊ณ , ์ด ์ฌ์ด์ ๊ฐ ์ค ๋๋ค์ผ๋ก ์ ์ฉ๋จ
- Random Between Two Curves : ๋ ๊ณก์ ์ ์ ์ํ๊ณ , ์ด ๊ฐ์ ์ํ๊ฐ๊ณผ ํํ๊ฐ ์ฌ์ด์์ ๋๋คํ๊ฒ ์ ์ฉ๋จ
ํ๋กํผํฐ๋ฅผ Curve๋ Random Between Two Curves๋ก ์ค์ ํ๋ฉด ์ธ์คํํฐ ํ๋จ์ ํํฐํด ์์คํ ์ปค๋ธ ์๋ํฐ๊ฐ ํ์๋๋ค.
- Optimize : 4๊ฐ ์ดํ์ ํค์ ์ปค๋ธ๋ฅผ ๋ง์ถ์ด ๋น ๋ฅด๊ฒ ์ฝ์ ์ ์๋ ๋คํญ์์ผ๋ก ๋น๋. ์ต์ ํ๋์ง ์๋ ์ปค๋ธ๋ฅผ ์ฝ๋ ๊ฒ๋ณด๋ค ํจ์จ์
- Remove : ์ ํํ ์ปค๋ธ ์ญ์
๋ํ, ํํฐํด ์์คํ ์ด ์ปค๋ธ๋ฅผ ์ฌ์ํ๋ ๋ฐฉ์์ ํธ์งํ ์๋ ์๋ค.
ํฑ๋๋ฐํด ์์ด์ฝ์ ํด๋ฆญํ๋ฉด, ๋ค์ ์ ์ค ํ๋๋ก ์ ํํ ์ ์๋ค.
- Loop : ์
์์ ์๋ช
์๊ฐ๋์ ์ปค๋ธ๋ฅผ ์ง์ ๋ ํ์๋งํผ ์ฌ์ํจ
- ์๋ฅผ ๋ค์ด, ์ ์์ ํฌ๊ธฐ๋ฅผ ํ๋ํ๊ฑฐ๋ ์ถ์ํ๋ ์ปค๋ธ๋ฅผ ๋ง๋ ํ, ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณตํ๋๋ก ๋ช ๋ นํ์ฌ ์ ์์ ์๋ช ์ด ๋คํ ๋๊น์ง ํด๋น ์ ๋๋ฉ์ด์ ์ด ์ฌ๋ฌ ๋ฒ ๋ฐ์ํ๊ฒ ํ ์๋ ์์
- Ping Pong : Loop์ ์ ์ฌํ๋, ์ปค๋ธ๋ฅผ ์๋ค๋ก ์ฌ์ํ๋ ์ฐจ์ด์ ์ด ์์
- Clamp : ์ปค๋ธ์ ๊ฐ์ ๋ฒ์ด๋๋ ๊ฐ๋ค์ ํด๋น ์์ญ ์์ ๊ฐ๋ง ๊ฐ์ง๋๋ก ์ ํ
์ปฌ๋ฌ(Color)์ ๋ํ ํ๋กํผํฐ ์ต์ ๋ค
- Color : ํํฐํด ์์คํ ์ ์๋ช ์ฃผ๊ธฐ์ ๊ฑธ์ณ, ๋ชจ๋ ์ ์๊ฐ ์ด ์ปฌ๋ฌ๋ก ์์. ์ ์๋ ์ฌ์ ํ ์๋ช ์ฃผ๊ธฐ๋์ ์ปฌ๋ฌ๋ฅผ ๋ฐ๊ฟ ์ ์์
- Gradient : ์์ ์ปฌ๋ฌ์ ์ข ๋ฃ ์ปฌ๋ฌ๋ฅผ ๊ฐ์ง ์ ์ ์ค์ . ๋ถ๊ฝ ๊ฐ์ ํจ๊ณผ์ ์ ํฉํ ๋ฏํจ
- Random Between Two Colors : ๋ ๊ฐ์ ํน์ ์ปฌ๋ฌ ์ฌ์ด์์ ์ ํ ๋ณด๊ฐ๋ฒ์ผ๋ก ์์ ์ ์ ์ปฌ๋ฌ๋ฅผ ์์ ์ ํ
- Random Between Two Gradients : ์ ํ๋ ๋ ๊ฐ์ ์ปฌ๋ฌ ์ฌ์ด์์ ์ ํ๋ณด๊ฐ๋ฒ์ผ๋ก ์์ ์ปฌ๋ฌ๊ฐ ์์๋ก ์ ํ๋๊ณ , ํํฐํด ์์คํ ์ด ํ์ฌ ๋์ด์ ํด๋นํ๋ ์์ ์ ๊ฐ ๊ทธ๋๋์ธํธ์์ ์ปฌ๋ฌ๋ฅผ ์ ํ
- Random Color : ๊ทธ๋ฅ ๋๋ค์ผ๋ก ๋ฌด์์ ์ํ ์ฑ์ทจ
- Mode : ์ ์์ ์ปฌ๋ฌ ํผํฉ ์ฌ๋ถ ์ค์
- Color : ํ์ฌ ์ ํํ ํค์ ์ปฌ๋ฌ ํ์
- Location : ํ์ฌ ์ ํํ ํค๊ฐ ์ผ๋ง๋ ๋จผ ์ง์ ์ ์๋์ง ๋ํ๋
- Presets : ํ์ฌ ๊ฐ์ ํ๋ฆฌ์ ์ผ๋ก ์ค์ ํ์ฌ ์ ์ฅ ๊ฐ๋ฅ
- ์ฐธ๊ณ , <Unity Documentation>
728x90
๋ฐ์ํ