본문으로 바로가기

3. 몬스터 AI


요마전에는 다양한 몬스터가 존재합니다. 근거리 몬스터와 원거리 몬스터가 각 2종씩 존재합니다.

하지만 각 몬스터가 가진 기본 매커니즘은 같습니다.


몬스터의 동작

 - 시야에 플레이어가 감지되면 플레이어를 추적

 - 플레이어가 공격범위안에 있으면 공격모션

 - 플레이어가 시야에서 벗어나면 원래 위치로 돌아감



- 구현방법

 ① 플레이어와 몬스터의 거리를 계산해서 일정 거리가 되면 해당 동작을 취하는 방식으로 구현

    ☞ 이 방식으로 구현하면 몬스터가 매 프레임마다 플레이어와의 거리를 계산해야하기 때문에 매우 부하가 크므로 사용하지 않았습니다.

 ② 몬스터에게 투명한 Collider 를 갖게 하여 플레이어가 충돌 시 해당 동작을 취하는 방식으로 구현

    ☞ 1번에 비해 부하는 적은 방식이지만 몬스터 수에 비례해서 부하가 커지는 단점이 존재합니다.



- 실제적용

실제로 구현방법② 를 적용하고 테스트를 했을 때 PC에서는 문제가 없었지만, 모바일디바이스의 경우 프레임저하가 눈에 띄게 심해지는 현상이 발생하였습니다. 유니티에서 충돌연산을 줄이는 옵션을 사용해도 문제는 개선되지 않았기 때문에 몬스터 AI를 단순화 시킬 수 밖에 없었습니다.





몬스터의 시야는 삭제되었고, 공격범위만 가진체 특정 이벤트 동작을 통해서 해당 위치로 이동시켜 자연스러운 전투연출을 구현하는 방향으로 적용되었습니다.