๊ฒฝํฌ๋ํ๊ต ์ธ๊ณต์ง๋ฅ ์์ Chapter 5: Movement ๊ฐ์ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ์ ์ํ ์ธํฐ๋ํฐ๋ธ ์๊ฐํ ๋๊ตฌ์ ๋๋ค.
๊ต์ฌ: AI for Games (3rd Edition), Ian Millington
https://movement-algorithms.205.kr/
๋๋ index.html์ ๋ธ๋ผ์ฐ์ ์์ ์ง์ ์ด์ด๋ ๋ฉ๋๋ค. (๋ณ๋ ์ค์น ๋ถํ์, ๋จ์ผ HTML ํ์ผ)
| ๋ฐ๋ชจ | ์ค๋ช |
|---|---|
| Seek & Flee | ํ๊ฒ ๋ฐฉํฅ์ผ๋ก maxSpeed ์ด๋ / ๋ฐ๋ ๋ฐฉํฅ ๋์ฃผ. Overshoot ๋ฌธ์ ํ์ธ ๊ฐ๋ฅ |
| Arrive | ๋ง์กฑ ๋ฐ๊ฒฝ(satisfaction radius) ๋ด ์ ์ง. ๊ฑฐ๋ฆฌ ๋น๋ก ๊ฐ์ |
| Wander | randomBinomial()์ ์ด์ฉํ ๋๋ค ๋ฐฐํ |
| ๋ฐ๋ชจ | ์ค๋ช |
|---|---|
| Seek (Orbiting) | ๊ฐ์๋ ์ถ๋ ฅ. Drag ON/OFF ํ ๊ธ๋ก ๊ถค๋ ์ ํ(Orbiting) ๋ฌธ์ ์๊ฐํ |
| Arrive (Two Radii) | targetRadius(์ ์ง) + slowRadius(๊ฐ์) ๋ ๋ฐ๊ฒฝ ์๊ฐํ |
| Align | mapToRange๋ก ์ต๋จ ํ์ ๊ฒฝ๋ก ๊ฒฐ์ . Arrive์ ํ์ ๋ฒ์ |
| Velocity Matching | ํ๊ฒ์ ์๋๋ฅผ ๋งค์นญ. Flocking์ Alignment์์ ์ฌ์ฉ |
| ๋ฐ๋ชจ | ์ค๋ช |
|---|---|
| Pursue & Evade | ๋ฏธ๋ ์์น ์์ธก โ Seek/Flee ์์. Evade ํ ๊ธ ์ง์ |
| Face & LookWhereYoureGoing | ์ข์ฐ ๋ถํ ๋น๊ต. Face=์์น ๊ธฐ๋ฐ, LWYG=์๋ ๋ฐฉํฅ ๊ธฐ๋ฐ ํ์ |
| Wander (Circle) | ์ ๋ฐฉ ์ ์์ ๋๋ค ์ โ Seek ์์. ์ ํฌ๊ธฐ ์กฐ์ ๊ฐ๋ฅ |
| Path Following | Chase the Rabbit / Predictive ๋ชจ๋ ์ ํ |
| Collision Avoidance | ์ด๋ ์บ๋ฆญํฐ ๊ฐ closest approach time ๊ณ์ฐ, ์๋ฟ ํ์ง |
| Obstacle Avoidance | Ray Casting + ๋ฒ์ (normal) ๋ฐฉํฅ ํํผ. Whisker ๋ ์ด ๊ตฌ์ฑ |
| ๋ฐ๋ชจ | ์ค๋ช |
|---|---|
| Flocking | Separation + Cohesion + Alignment ๊ฐ์คํฉ. ํ ๋ฒกํฐ ์๊ฐํ |
| Blending Problems | ์์ ๊ท ํ์ (Stable Equilibria) / Blending vs Arbitration ๋น๊ต |
- ์ผ์ชฝ ์ฌ์ด๋๋ฐ: ์๊ณ ๋ฆฌ์ฆ ์ ํ
- ์บ๋ฒ์ค ํด๋ฆญ: ํ๊ฒ ์์น ์ค์ (๋ฐ๋ชจ๋ณ ์์ด)
- ํ๋จ ๋ฒํผ: ๋ชจ๋ ์ ํ, ํ๋ผ๋ฏธํฐ ์กฐ์
- ์ค๋ฅธ์ชฝ ํจ๋: ์์ฌ์ฝ๋, ํต์ฌ ๊ณต์, ์ํ ํฌ์ธํธ ๋ฑ ์์ธ ์ค๋ช
- Vanilla JavaScript + HTML5 Canvas
- ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ (zero dependencies)
- ๋จ์ผ HTML ํ์ผ๋ก ๋์ โ
index.html์ ๋ธ๋ผ์ฐ์ ์์ ์ด๊ธฐ๋ง ํ๋ฉด ๋จ