몬스터 AI : Behavior Tree로 변경
원거리 버섯, 레이저 돌을 FSM형식에서 BT형식으로 변경하자
원거리 버섯
행동 정의
1. 감지 반경 안에 적이 없다면
땅 위를 돌아다님 (Random 시간 동안 Idle과 Move 반복)
2. 감지 반경 안에 적이 있다면
ㄱ. 공격 범위 안에 적이 있다면
적 방향으로 에너지볼 발사
ㄴ. 공격 범위 밖에 적이 있다면
적 방향으로 이동
1. 감지 반경 적 체크
Physics2D.OverlapCircle로 체크한다
2. 공격 반경 적 체크
동일하게 Physics2D.OverlapCircle로 체크한다
Physics2D.OverlapCircle로 체크한다
레이저 돌
적들의 색상을 현재는 몬스터의 가장 상위 오브젝트에서 한번에 해주고 있는데
하위 오브젝트들의 스크립트가 스스로 색상을 할당하는 구조로 나중엔 바꿔야지 싶다
Behavior Designer에 대해
Behavior Desinger에 존재하는 기능에 대해 알아보자
Conditional Aborts (조건부 중단)
Default 상태
Conditional task는 재평가되지 않으며 중단되지도 않는다
Self 상태
스스로 중단시킬 수 있는 타입
Conditional task는 자신과 같은 부모 태스크를 지닌 Action task만 중단 시킬 수 있다
현재 분기 안에 있는 태스크가 활성화되면 재평가한다
Lower Priority 상태
더 중요한 Conditional task가 상태를 변경하면 실행중인 낮은 우선순위의 작업을 중단시킬 수 있다
현재 분기의 오른쪽에 있는 작업이 활성화되면 재평가한다
Both 상태
Self와 Lower Priority를 합쳤다
오른쪽 또는 현재 분기 내의 작업이 활성화되면 재평가한다
결론
몬스터들의 BT화는 끝났지만 아직 Behavior Designer에 대해 완벽히 숙지하지 못해서
시간이 오래걸렸던 것 같다
하지만 체계를 세우고 설계를 통해서 앞으로의 몬스터 AI는 빨리 작업할 수 있게 될 것 같다
'프로젝트 > Color Lim 개발일지' 카테고리의 다른 글
2021-06-29~02 개발일지 (0) | 2021.06.30 |
---|---|
2021-06-21 개발일지 (0) | 2021.06.22 |
2021-06-16~17 개발일지 (0) | 2021.06.17 |
2021-06-13 개발일지 (0) | 2021.06.14 |
2021-06-12 개발일지 (0) | 2021.06.13 |