적의 공격에 강공격과 강공격 이후 연계되는 투사체 발사를 구현해 볼 것이다.
적의 강공격이 포함되어있는 에셋을 구해서 적용하였다.

강공격 범위를 측정하여 맞게 HitBoxStrongAttack 콜리전을 추가한다.

기존의 HitBox과 같은 구성이고 주는 데미지를 기존의 2배인 2로 하였다.

기존의 BT에 강공격을 추가하고 쿨다운을 조정하였다.

적의 강공격인 StrongAttacking 이벤트를 만들고 위와 같이 강공격 애니메이션을 부르는 함수 이후 SpawnActor 함수로 투사체도 소환한다.

투사체 BP를 따로 만들고 PaperFlipBook을 추가하여 이펙트를 넣었다.
히트 박스도 크기에 맞게 맞추어준다.

이벤트 그래프에는 다음과 같이 오버랩과 히트 두가지 경우로 나눈다.
플레이어와 오버랩되면 데미지를 주고 터지는 이펙트를 발생시킨 후 파괴한다.
벽 등에 부딪혔을 때는 바로 터지는 이펙트 발생 후 파괴한다.

만들고 나니 적의 투사체와 플레이어의 투사체가 부딪히면서 히트가 발생하여 없어져버리는 현상이 나타났다.
이를 해결하기 위해서 우선적으로 Projectile 채널을 따로 만들어서 콜리전을 분리해봤지만 여기서는 플레이어의 투사체가 벽과 부딪친 이후 플레이어가 벽에 박힌 검을 탈수 없는 문제가 발생하였다.
이를 해결하기 위해서 결국 플레이어와 적의 투사체 채널을 따로 만드는 것이 낫겠다 싶어서 Projectile과 PlayerProjectile 2가지의 채널을 만들어서 해결하였다.
추가로 적을 타격시 약간의 넉백을 넣었고 대쉬 이후 딜레이를 넣어 연속 대쉬를 막았다.
또한 대쉬의 무적시간을 줄여 대쉬 사용시 적의 공격 또는 적 위로 대쉬를 할 시 데미지를 입게 하여 보다 정확한 대쉬를 사용하도록 만들었다.
마지막으로 보스느낌을 주기 위하여 적의 넉백을 없애고 적 타격시 적이 빛나는 효과만 남겨두었다.
잘 적용된 것을 볼 수 있다.
'언리얼 - 게임 개발' 카테고리의 다른 글
첫 게임 개발(18) _ 적 보스 체력바 구현 (0) | 2024.06.28 |
---|---|
첫 게임 개발(17) _ 플레이어 에너지 시스템, 적 Blocking과 순간이동 구현 (0) | 2024.06.28 |
첫 게임 개발(15) _ EQS 기초 (0) | 2024.06.24 |
첫 게임 개발 (14) _ 능력 구현 (1) | 2024.06.23 |
첫 게임 개발 (13) _ 벽 슬라이딩, 벽 점프, 대쉬 구현 (0) | 2024.06.22 |