- 개요
이전까지 C++ 클래스로만 설계한 전기 광선 스킬을 실제 블루프린트로 구성하여 구현한다
1) GE_Cooldown_Electrocute 블루프린트

전기 광선 스킬의 쿨타임을 처리하는 GE 블루프린트를 추가한다
해당 GE가 적용되는 동안 위와 같이 Tag를 Target에게 적용한다

Has Duration 옵션을 설정하여 1초 동안 쿨타임을 적용한다
2) GE_Cost_Electrocute 블루프린트

전기 광선 스킬이 소모하는 Attribute를 위와 같이 설정한다
Mana 어트리뷰트를 1씩 소모한다
3) GA_Electrocute 블루프린트
3 - 1) ApplyDamageSingleTarget 함수

해당 함수의 로직은 위와 같다
전기 광선에 피해를 받은 대상이 유효한지 판단하고, 또 AvatarActor의 ASC를 가져와 유효한지 판단한다

이후의 로직은 위와 같다
전기 광선 스킬의 레벨에 맞춰 GESpec을 생성하고 스킬 레벨에 맞춰 주는 피해를 설정한다
이후 Target에게 해당 어빌리티의 GESpec을 적용한다
3 - 2) ApplyDamage 함수

ApplyDamage 함수의 로직은 위와 같다
전기 광선에 첫번째로 피격된 대상에게 피해를 주고 이후 연쇄적으로 타격된 적들에게도 피해를 준다
3 - 3) ClearTimerAndEndAbility 함수

ClearTimerAndEndAbility 함수의 로직은 위와 같다
전기 광선의 쿨타임을 래핑하는 TimerHandle을 초기화하고 적들에게 적용된 GC를 제거한다
이후 전기 광선의 쿨타임을 적용하고 피격당한 적들의 OnDeathDelegate를 초기화한다

이후 피격당한 적들과 관련한 변수 + 전기광선 키를 누르고 있는 시간을 전부 초기화하고
End Ability Locally 함수를 호출하여 어빌리티를 수행한 로컬 환경에서 어빌리티를 종료한다
클라이언트의 Preditction을 수행하여 동작하므로 로컬 환경에서 어빌리티를 종료하도록 구성하였다
3 - 4) EventGraph - ActivateAbility 함수

애니메이션 몽타주가 Blend되면서 마우스 커서를 숨기고 Owner에게 GC를 적용하도록 수정한다
또, 몽타주가 중간에 방해되거나 취소되면 Wait Net Sync 함수를 호출하여 레플리케이션을 기다린 후에
ClearTimerAndEndAbility 함수를 호출하여 어빌리티를 종료하도록 수정하였다

전기 광선의 FX 효과를 생성한 후에 스킬의 비용을 적용한다
이때 적용에 성공했으면 Target에게 데미지를 주고
실패했다면 Wait Net Sync 함수를 호출하여 레플리케이션을 대기하고 어빌리티를 종료한다

두 번째 Sequence를 위와 같이 수정한다
플레이어가 키를 누르고 있던 시간을 기록하여 최소 발동 시간과 비교한다
- 키를 누르고 있는 시간 > 최소 발동 시간인 경우
- Wait Delay 함수를 호출하여 대기 Task를 생성
- 키를 누르고 있는 시간 - 최소 발동 시간의 값을 넘겨 해당 값만큼 대기한 후에 어빌리티를 종료
- 키를 누르고 있는 시간 < 최소 발동 시간인 경우
- 대기하지 않고 어빌리티를 종료
3 - 5) EventGraph - Primary Target Died 이벤트

전기 광선의 첫번째 Target이 쓰러지면 해당 Target에게 적용된 GC를 제거하고,
레플리케이션을 대기한 후에 어빌리티를 종료한다
3 - 6) EventGraph - Additional Target Died 이벤트

전기 광선에 연쇄적으로 피격된 Target이 쓰러지면 해당 Target에게 적용된 GC를 제거하고
해당 Target을 캐싱해놓은 연쇄 피격된 Target들에게서 제거한다
- 최종 실행 결과
'언리얼 엔진 - 게임 프로젝트 > GAS 프레임워크 RPG 프로젝트' 카테고리의 다른 글
| 전기 광선 스킬 - 최종) 감전 + 기절 상태 부여 (2) (0) | 2025.11.29 |
|---|---|
| 전기 광선 스킬 - 8) 감전 + 기절 상태 부여 (1) (0) | 2025.11.29 |
| 전기 광선 스킬 - 6) 전기 광선 스킬의 구현 (1) (0) | 2025.11.25 |
| 전기 광선 스킬 - 5) 문제 수정 (0) | 2025.11.25 |
| 전기 광선 스킬 - 4) 전기 광선의 연쇄 충격 시스템 구현 (0) | 2025.11.23 |