์ง๊ธ ์คํ๊ฒํฐ์์ค ๋ค ๋๋ ค์น์ฐ๊ณ fsm์ผ๋ก ๋ฐฐ์ฐ๋ฉด์ ๋ค์ ์์ฑํ๋ ๋ด๋น์ธ๋ฐ
์ํ๊ฐ ์์ฒญ๋ง์. ์ ํ ์ด๋ ๊ณต๊ฒฉ ๋๊ธฐ ๊ธฐ์ด๋ค๋๊ธฐ ๋ฒฝ์๋ถ๊ธฐ ๋ฒฝ์ ํ...๋ฑ
๊ทผ๋ฐ ๊ณต๊ฒฉ์ ์ด๋ค์ํ์์๋ ๊ณต๊ฒฉ์ ํ๋ฉด ๊ณต๊ฒฉ๋ชจ์ ์ด ๋๊ฐ์ผํ๋๋ก ๋ง๋ค๊ฒ๋๋ค.
fsm ์ง๊ธ ์ํ ํ๋ํ๋ ํด๋์ค๋ก ๋ง๋ค์ด๋๊ณ enter, execute, exit๋ก ๋ง๋ค์๋๋ฐ
๋ชจ๋ ํด๋์ค(์ํ)์ execute์ while๋ฌธ์์ ๊ณต๊ฒฉํ๋์ง ์ฒดํฌ๋ฅผ ํด์ค์ผํ๋์?
๊ณต๊ฒฉ์ ๋ฌด์กฐ๊ฑด ์ฐ์ ๊ถ์ด ์๋๋ฐ ํ๋๋ก ํตํฉํด์ ๋ง๋ค์ ์์๊ฑฐ๊ฐ์์ ๋ฌผ์ด๋ด ๋๋ค
---์์ ---
์ง๊ธ๊น์ง ์๊ฐํด๋๊ฒ ์ฌ๊ธฐ๊น์ง์ธ๋ฐ,
๊ณต๊ฒฉ์ด ์ด๋ค์ํ์์๋ ์คํ๋๊ณ ์ด๋ค๊ฑฐ๋ก๋ ์ ์ด๋ ์ ์๋๋ฐ, attack์์ ์ ์ด๋๋ ๋ค๋ฅธ๊ฑฐ๋ ๋ชจ๋ ๊ฒฝ์ฐ๋ก ๊ฐ๋ฅํ๋ค๊ณ ๋ด์ ํ์ดํ ์๊ทธ์ด๋์ต๋๋ค.
๊ณต๊ฒฉ์ํ๋ ์ด๋ค ๊ฒฝ์ฐ์๋ xํค๋ฅผ ๋๋ฅด๋ฉด ๊ณต๊ฒฉ์ด ๋๊ฐ๋๋ฐ
ํ์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ์ด๋ ๊ฒ ์์ฑํ์ต๋๋ค.
์๋ก์ด ์ํ ๋ง๋ค๋๋ง๋ค ๊ณต๊ฒฉํ๋๊ฑฐ ์ฒดํฌํ๋๋ถ๋ถ์ ๋ค ๋ง๋ค์ด์ค์ผํ๋ค๋ ์ด์ผ๊ธฐ๋๊น ์ข ๊ฑฐ์๊ธฐํ๊ฒ๊ฐ์
๊ณต๊ฒฉ์์์ ์ด๋ฒคํธ๊ฐ์๊ฑฐ ๋ ๋ ค์ ํ์ฌ์ํ๋ฅผ ์คํฑํ๊ณ ๊ณต๊ฒฉ์ด ๋๋๋ฉด ๊ธฐ์กด์ํ๋ฅผ ์ด์ด์ ์คํํ๋๊ฐ ํ๋๊ฒ ์ข์ง์์๊นํจ
๊ทผ๋ฐ ๊ฒฐ๊ตญ ๋ค๋ฅธ ์ํ ์ ํํ๋๊ฑฐ๋ ๊ณต๊ฒฉํ๋๊ฑฐ๋ ๋๊ฐ์๊ฑฐ์๋?
๋จธ๋ฆฌ์ํ๋๊น ํ๋ฉ๋ ๋ณผํธ๋ก ๊ตฌํํ์ ์ง์งํธํจ
์ดํด๋ฅผ ๋ชปํด๊ฐ์ง๊ณ ๊ธ ์์ ํด๋ณด๊ฒ์๋ค ์ ๋ง์
์ํ๋ง๋ค ๊ณต๊ฒฉ๋ชจ์ ์ด๋ค๋ฅด๋ค๋ฉด ๊ทธ๋ฅ ๊ณต๊ฒฉํ ๋ ์ํ์ฒดํฌํด์ ๋ชจ์ ๋ณด์ฌ์ฃผ๋ฉด ๋ ๊ฒ๊ฐ์๋ฐ
๊ณต๊ฒฉ๋ชจ์ ์ ๋๊ฐ์ต๋๋ค
hsfm ๊ฒ์ํด๋ณด์
์ ๋ฌด์จ ๋ ์๋ก์ด๊ฒ ์๋ค๋
๋๋ ์ฐ์ ์กฐ๊ฑด ์ ๋ฆฌ๋ ์ด๊ธฐํ ์์๋ก ํ์, ๋ ๊ฒฝ์ฐ์๋ Stun, Attack, ๊ทธ์ธ ๋๋จธ์ง๋ก ํ๋ฉด ๋ ๋ป?
๊ฐ์ฌํจ๋ค ํณ
Idle์์ Attack์ผ๋ก ์ํ์ ์ด(Transition) ์กฐ๊ฑด์ฒดํฌ๋ฅผ ํ๋ค๊ณ ํ๋ฉด, ๊ทธ๊ฑด Idle์ Enter๋ Execute์์ ์ฒดํฌํด์ค์ผ ํ์ง. Move์์๋ Attack์ผ๋ก ์ ์ด๊ฐ ๋๋ค๋ฉด Move Execute์์ ์ฒดํฌํด์ค์ผ ํ๋๊ฑฐ๊ณ . A์์ B๋ก ์ ์ด๋ฅผ ํ๋ค๋ฉด, ์ ์ด์กฐ๊ฑด์ฒดํฌ๋ A์์ ํจ. AnyState์์๋ Idle์ด๋ Move๋ ๊ฐ์ ์ฒดํฌ๋ฅผ ๋ชจ๋ ์ํ์์ ํ๊ฒ ๋ค๋๊ฑฐ๊ณ . ๊ทธ ๋ง์, Attack->Attack๋ ๊ฐ๋ฅํ๋ค๋๊ฑฐ์. FSM์๋ ํ๊ณ๊ฐ ์์. ์๋ฅผ๋ค์ด ์ ์ ์คํฌ์ ๊ฐฏ์๊ฐ ๋์ด๋ ์๋ ์๋ค๊ณ ํ๋ฉด, ๊ทธ ๊ฐฏ์๋งํผ ์ํ๋ฅผ ๋ง๋ ๋ค๋๊ฒ๋ ์ข ์ด์ํ๊ณ , ์ถ์ํ๋ UseSkill์ํ๋ผ๋๊ฑธ ๋ง๋ค์ด์ ์ฒ๋ฆฌํด์ผํ ๊ฑฐ์ฌ.
๋ณต์ก๋๊ฐ ๋ง์ด ์ฌ๋ผ๊ฐ๋ค์ถ์ผ๋ฉด ์์๋ง์ฒ๋ผ HFSM์ ๋ณด๋ ๊ฐ, ์๋๋ฉด BehaviourTree๋ฅผ ๋ณด์ผ
๊ฐ์ฌํฉ๋๋ค ์ด๋ป๊ฒ ์๋ด์ผํ ์ง ์ดํดํด์ ๊ณต๋ถ์ค์๋ค ํํณ