적군이 공격을 받았을 때 이루어지는 효과에 대해 적어보려고 한다.
준비물
- 좀비 피격효과 몽타주
- 좀비 사망 몽타주 생성해두기



총알을 만든 블루프린트에 적군에게 피해를 줄 어택 데미지를 설정하기 위하여 AttackDamage라는 변수를 float형으로 생성하였다. 그 뒤 총알의 콜리전에 OnComponentBeginOverlap 이라는 이벤트를 추가하였다. 해당 콜리전에 설정해둔 무언가가 닿았을 경우 생기는 일에 대한 이벤트를 만들어주는 곳이며, 이 이벤트를 통해 테미지를 줄 예정이다.

OnComponentBeginOverlap의 +버튼을 누르게 되면 다음과 같은 Sphere(콜리전) 이벤트가 호출이 되는데, 태그를 걸어둔 무언가(TAG_ENEMY 라고 칭했음) 닿았을 경우에 ApplyPointDamage라는 함수를 호출시켜주는 구조이다.
ApplyPointDamage에 아까 생성해둔 float형 AttackDamage의 숫자를 따로설정해준뒤 (50으로 설정함) BaseDamage에 연결해주면 된다. 그 뒤, 생성 되는 총알을 맵에서 제거해주기 위해 성공적으로 적에게 맞추었을 경우 해당 총알을 DestroyActor을 이용하여 제거하여주고, 만약 맞추는것을 실패하였더라도 Delay를 주어 3초뒤에 해당 총알이 사라지게 설정해 두었다.


태그를 준 부분이다. 해당 블루프린트는 Enemy 블루프린트이며, 선택되어진 CapsuleComponent의 tag를 따로 추가하였다. (TAG_ENEMY) 이렇게 되면 적은 데미지를 받게 된다.
데미지를 받게 되었다면 데미지를 받았을 경우 일어나는 일에 대해 설정해 두어야 한다.



적이 받는 데미지 및 HP를 설정해 두었다.
HP는 100으로 설정하였고 받는 데미지 또한 총알과 같게 50으로 설정 하였다.
AnyDamage 이벤트를 설정하여 HP가 100인상태에서 데미지를 받을 때 마다 50씩 줄게하여
Hp가 0이 되었을때(Branch가 true)일때 만들어 둔 죽는 모션을 몽타주로 실행시켜 준 뒤 스테이트 상태를 Die로 바꾸어 주어 적을 사망상태로 두게한다. 적의 HP가 0이 되어서 사망하였어도 사망모션을 하는동안 피격을 받을 시에 계속해서 죽는 모션이 발생하는 경우가 있어 해당 몽타주를 Do Once를 이용하여 한번만 실행되게 하고, 애니메이션 재생 시간에 맞춰(2.7초라 설정하였다.) 해당 적군을 DestroyActor를 이용하여 없애주었다.
만약 HP가 0이 아닌경우(Branch가 false)일때는 만들어 준 피격 모션을 몽타주로 실행시켜주고 스테이트 상태를 Impact로 바꾸어주어 피격효과가 생기게 한다. 그 뒤 계속 데미지를 받게 되면 사망하게 되는 구조이다.
다음은 플레이어의 피격효과에 대해 알아보려한다.
'Unreal 20' 카테고리의 다른 글
| 10. 플레이어 피격 (0) | 2020.07.08 |
|---|---|
| 08. 플레이어 공격 (0) | 2020.07.06 |
| 07. 적 공격 (0) | 2020.07.06 |
| 06. 적 이동 (0) | 2020.07.04 |
| 05. 캐릭터 이동 (2) | 2020.06.29 |