Unity 3D๋ฅผ ์ฌ์ฉํ์ฌ ๋ง๋ ๊ฒ์ [EscapeFROM]
๐ฏEscpae FROM ๐ฆ
๊ด์ ๋๋ค์๊ฒ๐งโโ๏ธ ์กํ ์ฃผ์ธ๊ณต.
์ปจํ
์ด๋ ๋ฐ์ค์ ๊ฐํ๊ฒ ๋๋คโ
์ ํ๋ ์๊ฐโฑ ์์ ์์ ํ๊ฒ ํ์ถํ๋ ๊ฒ์ด ๋ชฉํ๐ฃ
์ปจํ
์ด๋ ๋ฐ์ค์์ ํํธ๐๋ฅผ ์ฐพ๊ณ ํ์ถํ์โ๏ธ
1. ์ ์๊ธฐ๊ฐ
- EscapeFROM : 2020.11.05 ~ 2020.12.01
- EscapeFROM_Extended : 2021.01 ~ 2022.04
2. ์ฌ์ฉํ ํด
- Unity3D 2019.4.4f1 (์ฐจํ 2020.3.29f1๋ก ๋ณ๊ฒฝ)
- Visual studio
3. ์ฐธ์ฌ์ธ์
4. ๊ฒ์์ ๋ง๋ค๊ฒ ๋ ๋๊ธฐ
- ๋ํ๊ต ์ปดํจํฐ ๊ทธ๋ํฝ์ค ์์
ํ๋ก์ ํธ๋ก ๋ง๋ค๊ธฐ ์์ํ๋ค.
Unity, Unreal Engine, OpenGL ์ค ํ๋๋ฅผ ์ ํํ์ฌ ๋ฌด์ธ๊ฐ๋ฅผ ๋ง๋๋ ๊ฒ์ด ๊ณผ์ ์๋๋ฐ ๋๋ ๋๊ธฐ๋ Unity๋ฅผ ์ ํํ์ฌ ๊ฒ์์ ๋ง๋ค๊ธฐ๋ก ํ๋ค.
- ํ์์ ๋ฐ์ด์คํ์๋, ๋ผ์คํธ ์ค๋ธ ์ด์ค ๊ฐ์ ์๋ฐ์ด๋ฒ ํธ๋ฌ ๊ฒ์์ ์ข์ํด์ ๊ทธ๋ฐ๋ฅ์ ๊ฒ์์ ๋ง๋ค์ด ๋ณด๊ณ ์ถ๋ค๋ ์๊ฐ์ ํ์๋ค. ์ด๋ฒ ๊ณผ์ ์์ ๊ทธ๋ฐ ๊ฒ์์ ๋ง๋ค์ด๋ณด๋ฉด ์ด๋จ๊นํ์ฌ EscapeFROM์ ์ ์ํ๊ฒ ๋์๋ค.
5. ๊ฒ์์ ๋ง๋ค๋ฉด์ ์ด๋ ค์ ๋ ์
- EscapeFROM์ ์ฒ์์ผ๋ก ์ ์ํด๋ณธ 3D๊ฒ์์ด๊ธฐ๋ ํ์๊ณ , ์ฒ์๋ถํฐ ๋๊น์ง ๊ตฌ์ํ์ฌ ๊ฒ์์ ๋ง๋ค์ด๋ณธ ๊ฒ์ด ์ฒ์์ด๋ผ์ ์ฐ์ฌ๊ณก์ ์ด ๋ง์๋ค.
- ๊ฒ์์ ์ ์ํ๋ฉด์ ์ ๋๋ฉ์ด์
์ชฝ์์ ๊ธฐ์กด 2D์์ ์ผ๋ ๋ฐฉ์์ธ Bool ๋ณ์๋ฅผ ์ด์ฉํ์ฌ ํ๋ผ๋ฏธํฐ๋ฅผ ์กฐ์ ํ์๋๋ฐ, 3D์์๋ trigger๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข ๋ ์์ฐ์ค๋ฝ๊ณ ์ข๋ค๊ณ ์๊ฐํ์ฌ ์ด ๋ถ๋ถ์ด ์์ฌ์ ๋ค. Animation ์ฐ๊ฒฐ์ ์ข ๋ ๊ณต๋ถํ๊ณ ๋์ค์ trigger๋ก ๋ฐ๊พธ๋ ํธ์ด ์ข์์ง ๊ณ ๋ ค์ค์ด๋ค.
6. ๊ฒ์์ ๋ง๋ค๋ฉด์ ์ฆ๊ฑฐ์ ๋ ์
- ํ๋ก๊ทธ๋๋ฐ์ชฝ์์ ์ฆ๊ฑฐ์ ๋ ์ ์ ์ง์ ๊ตฌํํ ์๊ณ ๋ฆฌ์ฆ์ด ์๊ฐํ๋๋ก ๋์ํ ๋๊ฐ ์ ์ผ ์ฆ๊ฑฐ์ ๋ ๊ฒ ๊ฐ๋ค. ์ฐจ์ฉํ ์คํฌ๋ฆฝํธ๋ค์ ์ฐ๋ฆฌ๊ฐ ๊ตฌํํ๊ณ ์ ํ๋ ๋ฐฉํฅ์ผ๋ก ์์ ํ ๋ ์ฐจ์ฉํ ์คํฌ๋ฆฝํธ๋ฅผ ์์ ํ๊ฒ ์ดํดํ๊ณ ๊ทธ ํ์ ๋ง๊ฒ ์์ ํ๋ ๋ถ๋ถ์ด ์ด๋ ต๊ธฐ๋ ํ์ง๋ง ์ด๊ฒ์ ๊ฒ ์๋ํด๋ณด๋ฉด์ ๋ง๊ฒ ๊ตฌํํด๋ผ๋ ์พ๊ฐ์ ๋๋ผ๊ธฐ๋ ํ๋ค.
- ํ๋ก๊ทธ๋๋ฐ์ด ์๋ ๋ถ๋ถ์์ ์ฆ๊ฑฐ์ ๋ ์ ์ ๊ฒ์ ๋ด์์ ๊ด์ ๋์ ์ฐ๋๋จธ๋ฆฌ๊ฐ ์ฐ์ค์ ํ๋ ๋ถ๋ถ์ ํ๊ต ๋๊ธฐ์ ์น๊ตฌ๋ถ์ด ๋
น์ํ๊ณ ๋ชฉ์๋ฆฌ๋ฅผ ๋ณ์กฐํ์ฌ ๋ณด๋ด์ฃผ์
์ ๊ทธ ๋ถ๋ถ์ ๊ฒ์์ ๋ฃ๋ ๊ฒ๋ ์ฌ๋ฐ์๊ณ , ๊ฒ์ ๋ถ์๊ธฐ์ ๋ง๋ ์์
๋ค์ ์ฐพ์๋ณด๊ณ ๋ฐฐ์นํ๋ ๊ฒ๋ ์ฌ๋ฏธ์์๋ค.
7. ๊ฒ์์ ๋ง๋ค๋ฉด์ ์คํจํ ๋ถ๋ถ
-
์ฒ์์ ๋ง๋ค์๋ EscapeFROM์๋ ์ํ
์ ๋ฃ์ง ์๊ณ ๋ฐฉํ์ถ ์ปจ์
ํธ์ ์ข๋น๋ฅผ ๋๋ผ๋ก ์ฃฝ์ด๋ ๋ฑ์ ์ฒ๋ฆฌ๋ฅผ ํ์๋๋ฐ, EscapeFROM_Extended์์๋ ์ข ๋ ์ฌ๋ฏธ๋ฅผ ๊ฐ๋ฏธํด ๋ณด๊ณ ์ ์ํ
์ ์ถ๊ฐํ์๋ค. FPS ์ชฝ์ ์ฒ์ ๋ง๋ค์ด๋ด์ ์ ํ๋ธ๋ ๊ตฌ๊ธ์ ๋ง์ด ๊ฒ์ํด์ ์ฐธ๊ณ ๋ฅผ ํ์ฌ ๋ง๋ค์๋๋ฐ ์๊ฐ๋งํผ ์ ๋ฐํ ์ํ
์ ๋์ค์ง ์์ ๊ฒ ๊ฐ๋ค. ์ ๋๋ฉ์ด์
๋ถ๋ถ์์ ์ด์ ์๋ ์์ธ, ์ฅ์ ํ๋ ์์ธ๊ฐ ๋ง์์ ๋๋ ์์
์ด ์์๋ ๊ฒ๋ ๋ฌธ์ ์๋ค. ๋ง์ฐ์ค๋ฅผ ๊พน ๋๋ฅด๊ฒ ํ๋ฉด ์ด์ด ๊ณ์ ๋๊ฐ์ง ์๋๋ฉด ๋จ๋ฐ๋ก ๋๊ฐ๊ฒ ํ ์ง๋ ๊ณ ๋ฏผ์ด์๋ค. ๊ณ์ ์์ ์ ํด๋ดค์ง๋ง ์์ง ์ด์ ์ฉกํ๊ฒ ์ด์ ์ด์ ๊ทธ ๋ถ๋ถ์ด ์ข ์์ฝ๊ณ ๋ค์ ํ๋ก์ ํธ๋ฅผ ์ํ
๊ฒ์์ผ๋ก ํด์ FPS์ชฝ ๊ฒ์๋ ์ ๋ง๋ค์ด๋ณด๊ณ ์ถ๋ค.
-
์ ์ฒดํ๋ฉด์ ํ๋ฉด ์บ๋ฆญํฐ์ run speed๋ walk speed๊ฐ ๋๋ ค์ง๋ฉด์ ์ฒ์ฒํ ์์ง์ด๊ฒ ๋๋๋ฐ ์ ๋ํฐ ๋ฒ๊ทธ์ธ์ง ์ฐฝ๋ชจ๋๋ฅผ ํ๋ฉด ๊ด์ฐฎ๋ค... ์๊ทธ๋ฐ์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค..
8. ์ฐจ์ฉํ ์๊ณ ๋ฆฌ์ฆ
1) Object Pool
- ๊ฒ์์ ํ์ํ ์ค๋ธ์ ํธ๋ฅผ ๋ฏธ๋ฆฌ ์์ฑํด์ ํ์ํ ๋๋ง๋ค ๊บผ๋ด์ฐ๊ณ ์ฌ์ฉ์ด ๋๋๋ฉด ์ค๋ธ์ ํธ ํ์ ๋๋ ค์ฃผ๋ ๊ฒ
- ๊ฒ์์ ํ์ํ ์ค๋ธ์ ํธ๋ฅผ ๋ฏธ๋ฆฌ ์์ฑํด๋๊ณ , ๋ชจ์๋ผ๋ฉด ์ถ๊ฐ๋ก ์์ฑํ์ฌ ์ฐ๊ณ ๊ฒ์์ด ๋๋๋ฉด ํ๊ดดํ๋ ๋ฐฉ์
- ๋ด๊ฐ ์ฌ์ฉํ object pool์์๋ ์ฐ๊ณ ๋ฐ๋ก destroy ํ์ง ์๊ณ active false ํด์ฃผ์๋ค๊ฐ ๋ค์ ํ์ํ ๋ active๊ฐ false๋ ์ค๋ธ์ ํธ๋ฅผ ์ฐพ๊ณ ๊ทธ ์ค๋ธ์ ํธ๋ฅผ ๋ค์ active true ํด์ฃผ์๋ค.
- ํ์์์ ๋ฐฐ์ ๋ ๊ฐ์ฌ๋์ object pool์ ์ฐจ์ฉํ์ฌ ์์
ํ๋ค.
(https://github.com/akpil/Unity-1908/blob/master/Shooting/Assets/Scripts/Pool/OBJPool.cs)
2) Monster FSM
- ๊ธฐ์กด์ switch ๋ฌธ๊ณผ coroutine์ ์ฌ์ฉํ์ฌ์ ์์
ํ์๋๋ฐ ์ข๋น๊ฐ ๋ ์ข
๋ฅ๊ฐ ๋๋ฉด์ ํตํฉ๋ base enemy ์คํฌ๋ฆฝํธ๊ฐ ํ์ํ๋ค๊ณ ํ๋จ๋์ด FSM์ ๋ณ๊ฒฝํ์๋ค.
- Enemy base, Enemy Melee, Enemy ์์ผ๋ก ์์๋ฐ๋๋ค.
- ์ ํ๋ธ๋ฅผ ์ฐธ์กฐํด์ ์์
ํ๋ค.
(https://www.youtube.com/watch?v=mHYroWpIIP0&t=118s)
=> ์๋
์ธํด ๋ฉด์ ๋ FSM์ ๋จ์ ์ ๋ํด์ ๋ฌผ์ด๋ณด์๊ณ ์ต๊ทผ FSM์ด ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋ฐ๋๊ณ ์๋๊ฑธ ์๋์ง ์ฌ์ญค๋ณด์
จ๋๋ฐ ๋๋ต์ ๋ชปํ์ ใ
ใ
... ๊ทธ๋ ๋ฐ๋๊ณ ์๋๊ฒ ๋ญ์ง ์ฌ์ญค๋ดค์ด์ผํ๋๋ฐ,,, behavior tree์ธ๊ฐ,,
3) Mouse Rotation
4) Inventory & Crafting