이전 시간에 Boss의 근접공격을 구성했다. 좀 더 다채로운 게임을 위해 보스 주변에 폭발물을 생성하고 플레이어를 밀어내는 기술을 구현해보자
melee 부분을 구현하다보니 boss ai가 공격시 움직이게 되는데 이때, 플레이어가 boss 바로앞에 위치하게 되면 collision이 겹치게 되어 플레이어가 튕겨져나가는 오류가 발생하게 된다. 이를 어떻게 해결할지 고민을 했고 그냥 플레이어가 가까히 다가왔을때 날려버리는 기능의 스킬을 넣기로 했다.
근데 사실이렇게 해결하지말고 보스 애니메이션 루트 모션의 움직임이 적은 모션으로 구성하는 방식으로 고치는게 더 좋다. 나도 이 방식과 칼의 콜리전을 더 빨리 활성화하여 공격이 움직임보다 빠르게 실행되어 플레이어가 뒤로 밀려나게하여 문제를 고쳤다.
스킬시 주변의 적을 탐지하여 해당 적을 뒤로 밀려나게함
뒤로 밀려나가게 할 때 지형에 따라 바로 XY좌표만 고려해서 미는 방법보다 Z축의 양의 방향으로 조금 민 뒤에 XY축으로 밀어주는걸 추천함
적이 밀려나갈 땐, 밀려나가는 애니메이션을 출력
Controller
를 비활성화 하여 stun상태로 만듦boss가 공격시 target
과의 거리가 240
이하일 때 해당 스킬 사용
행동이 다양하긴 하지만 모두 근접에서 이루어지는 기능들이라 일반 적과 비슷한 느낌이난다. 보스라는 느낌이 더 강하도록 보스와 플레이어의 거리가 멀때, 주변에 폭발물이 터지도록 해주자
Weapon
클래스를 상속받은 BossExplosionSkill
이라는 클래스를 만듦
Boss
클래스에서 BossExplosionSkill
액터를 생성하는 함수를 작성
해당 함수를 BT에서 실행시키기 위한 Task 작성
BT에서 Target
과의 거리가 600
보다 멀다면 strafe를 멈추고 스킬을 사용하도록 구성
공격 위치를 선택하기 위해 EQS를 사용
무한 공격을 방지하기 위해 5초마다 공격하도록 구성(Cooldown
사용)
잘 읽었습니다. 좋은 정보 감사드립니다.