1. 원거리 몬스터의 비정상적 공격 속도와 발사체 튕김
- 본래 작은 총알을 사용할 때는 설정한 값에 따라 주기적으로 천천히 발사했었음
- 큰 총알을 사용하기 시작하니 갑자기 거리가 가까워지면 공격이 너무 빨라짐
- 현재 비헤이비어 트리에서 타겟을 라인 트레이스를 통해 인식할 수 있으면 abort가 발생해 공격
ㅡ> 큰 총알이 시야를 가리게 되면서 abort가 빠르게 여러번 발생해 점점 빨라지는 것으로 추정
- 우측 화면의 콜리전 관련 설정 2개 분량을 모두 Visibility를 Ignore하도록 설정
ㅡ> 라인 트레이스도 이를 무시할테니 abort가 너무 자주 발생하지 않을 것 - 공격 속도는 정상화가 되었지만, 화염구가 캐릭터의 앞에서 멈춰버리는 현상 발생
- 이번에는 캐릭터의 몸과 콜리전끼리 부딪혀 밀어내지 않도록 PhsicsBody를 ignore로 설정
- 이전에는 캐릭터와 몬스터 사이에서 사라지지 않고 제거 시간이 되기를 기다리는 중이었음
- 현재는 캐릭터의 몸에 닿아 Hit Event가 발생하면 데미지를 주고 곧바로 사라짐
ㅡ> 이전에는 PhysicsBody를 Block하도록 되어있어 콜리전끼리 부딪혀 서로를 Block하면서 Hit 이벤트를 정상적으로 발생시키지 못했던 것으로 보임
2. 원거리 몬스터의 회피 움직임 최적화 (EQS)
- 현재 원거리 몬스터는 너무 먼 거리를 옮겨다님
- 더불어 와중에 공격을 당하면 다시 적절한 위치를 찾으러 다님
ㅡ> 이건 abort가 발생했을 때, 회피가 공격보다 빨리 실행되는 순서이기 때문으로 보임 - 회피와 공격의 순서를 바꾸는 것은 회피만 하는게 아니라 공격만할 가능성이 생김
- EQS를 조절해 적당히 이동하고 공격을 할 수 있도록 설정하면 될 것으로 추정
- 본래는 최소값 이상으로 여러 조건들과 맞물려 이동 지점을 찾던 EQS를 범위로 적절히 수정
ㅡ> Min: 300
ㅡ> Range: 200~400
- 원하는 대로 회피 기동을 위해 사이드로 살짝 움직인 후 곧바로 공격을 하도록 바뀜
3. 프로젝트 마무리
- 프로젝트를 진행하면서 Monster와 관련된 클래스, AI, Perception, BehaviorTree, BlackBoard를 다루면서 다음에 한번 더 만들게 된다면 확실히 더 나은 퀄리티의 몹들을 만들 수 있겠다는 자신감이 생김
- 더불어 이번 프로젝트에서는 모든게 처음 겪는 것들이라 생각지도 못한 곳에서 시행착오를 겪는 경우가 많아 다양하고 재밌는 몬스터들을 만들어내지 못한 것이 아쉬움
ex) 원거리 적의 비정상적 공격속도, 근접 몬스터의 공격 한방에 데미지가 여러번 중첩 등 - 다음 프로젝트에서는 이번에 겪은 시행착오들을 밑바탕으로 더 나은 게임을 만들 수 있을 것 같다
* 추신
- 그 어느때보다 배우는 것이 빨랐고 많았던 프로젝트였다.
게임을 만들겠다는 일념으로 이것저것 시행착오를 겪는 과정에서 그 원인을 치열하게 고민하고 해결하는 과정에서 문제의 원인을 찾는 과정이 꽤나 재밌어졌다. 앞으로 어떤 것들을 배우게 될지가 기대된다.
참고자료
'언리얼엔진(UE)' 카테고리의 다른 글
[UE] 게임 서버 (Listen, Dedicated) (0) | 2025.03.12 |
---|---|
[UE] 몬스터 AI 구현 #9 (피격 반응 애니메이션 및 상태 로직) (0) | 2025.03.06 |
[UE] 몬스터 AI 구현 #8 (원거리 공격 투사체 발사 및 공격 이펙트) (0) | 2025.03.05 |
[UE] 몬스터 AI 구현 #7 (Damage 중복 적용 오류 해결) (0) | 2025.03.04 |
[UE] 몬스터 AI 구현 #6 (Perception에 따른 상태 변화) (0) | 2025.02.28 |