언리얼 엔진 - 게임 프로젝트/GAS 프레임워크 RPG 프로젝트

화염 폭풍 스킬 - 최종) 화염구의 폭발 피해 추가 + 로컬에서의 GC 실행

monstro 2025. 12. 13. 16:09
728x90
반응형

- 개요

생성되어 돌아오는 화염구들플레이어의 주의에서 폭발하여 주의의 적들에게 피해를 주도록 설정한다

이때 폭발하면서 실행하는 GameplayCue는 Replicate하지 않고 로컬에서 실행하도록 설계한다

 

- C++ 사이드

1) AuraGameplayTags 클래스

폭발의 GameplayCue의 Tag 추가

 

추가한 Tag 생성

 

위와 같이 폭발하면서 실행하는 GameplayCueGameplayTag를 추가 + 생성한다

 

2) AuraProjectile 클래스

 

LoopingSoundComponent 멤버변수를 private에서 protected로 접근제어수준을 변경한다

 

3) AuraAbilitySystemLibrary 클래스

 

위와 같이 4개의 함수를 추가한다

 

 

SetIsRadialDamageEffectParam 함수의 로직은 위와 같다

원형 범위의 피해를 적용하는 GameplayEffect에 대한 요소의 설정을 진행한다

 

 

SetKnockbackDirection 함수의 로직에서는 넉백되어 밀려나가는 방향힘의 크기를 설정한다

 

 

SetDeathImpulseDirection 함수에서는 쓰러지면서 나가떨어질 방향힘의 크기를 설정한다

 

 

SetTargetEffectParamsASC 함수에서는 데미지를 적용할 DamageEffectParamsTarget의 ASC를 설정한다

 

4) AuraFireBall 클래스

 

ExplosionDamageParams 멤버변수를 추가하여 화염구가 폭발하면서 적용할 피해를 설정한다

 

 

 

OnHit 함수를 위와 같이 오버라이드하여 다음의 로직을 진행한다

  • Replicate없이 로컬에서 "GameplayCue_FireBlast"의 태그를 지닌 GameplayCue를 실행
  • LoopingSounComponent 설정한 SFX를 중지 + 제거한후에 bHitTrue로 설정

 

5) AuraFireBlast 클래스

 

SpawnFireBalls 함수를 위와 같이 수정한다

  • 화염구와 충돌한 적에게 적용할 DamageEffectParamsOwner 설정
  • 화염구가 폭발하면서 적용할 DamageEffectParamsOwner 설정

 

- 블루프린트 사이드

1) BP_FireBall 블루프린트

StartOutgoingTimeline 이벤트 로직 - OnHit 이후의 로직 구현 (1)

 

StartOutgoingSpec 이벤트에서 OnHit 이후의 로직을 위와 같이 수정한다

  • 화염구의 폭발은 원형 범위의 피해를 주므로 ExplosionDamageParams 설정
  • RadicalDamageOuterRadius를 기준으로 원형 범위안의 오버랩된 대상 탐색

 

StartOutgoingTimeline 이벤트 로직 - OnHit 이후의 로직 구현 (2)

 

오버랩된 대상을 순회하면서 이후의 로직을 진행한다

  • 오버랩된 대상의 ASC폭발 피해DamageEffectParams에 설정
  • 이후 넉백되는 방향 + 쓰러지면서 나가 떨어지는 방향DamageEffectParams에 설정하고 적용
  • 순회가 끝난 후 DestroyActor 함수를 호출

 

2) GC_FireBlast 블루프린트

 

재생할 SFX와 VFX를 위와 같이 설정한다

 

 

Gameplay Cue Tag를 위와 같이 설정한다

 

- 최종 실행 결과

 

728x90
반응형