- 개요
공격당한 적이 확률적으로 뒤로 밀려나는 넉백 시스템을 추가한다
또, 체력을 전부 소모하여 쓰러진 적이 나가 떨어지는 시스템을 추가한다
- C++ 사이드
1) DebuffNiagaraComponent 클래스

DebuffTagChanged 함수를 위와 같이 수정한다
나이아가라 컴포넌트의 Owner가 유효하면서 쓰러져있지 않은 경우도 고려하여 나이아가라를 재생한다
2) AuraGameplayEffectContext 클래스
2 - 1) DamageEffectParams 구조체

멤버변수들에 BlueprintReadWrite 속성을 부여하여 블루프린트에서 수정할 수 있도록 설정한다

위의 멤버변수들을 추가하여 쓰러지면서 나가 떨어질 수 있도록 설정하고
또, 공격당하면 확률적으로 넉백될 수 있도록 설정한다
2 - 2) AuraGameplayEffectContext 클래스

넉백 요소와 나가떨어지는 요소에 관련된 Getter 함수와 Setter 함수를 추가한다

넉백되는 방향과 나가떨어지는 방향의 멤버변수를 추가한다


NetSerialize 함수를 위와 같이 수정하여 넉백되는 방향과 나가떨어지는 방향을
비트에 기록하고 Archive에 기록할 수 있도록 설정한다
3) AuraAbilitySystemLibrary 클래스

기존의 SetDamageType 함수에 UFUNCTION 속성과 어트리뷰트를 추가하고,
넉백되는 방향과 나가떨어지는 방향에 대한 Getter 함수와 Setter 함수를 추가한다

추가한 Getter 함수와 Setter 함수의 로직은 위와 같이 AuraGameplayEffectContext에 접근하여
관련된 Getter 함수와 Setter 함수를 호출하도록 구성하였다
4) AuraDamageGameplayAbility 클래스

MakeDamageEffectParamsFromClassDefaults 함수에 BlueprintPure 속성을 추가하여 실행핀을 제거한다

쓰러진 적을 나가 떨어뜨리기 위한 힘의 크기의 멤버변수와
공격당한 적을 넉백시키기 위한 힘의 크기와 넉백 확률의 멤버변수를 추가한다

MakeDamageEffectParamsFromClassDefaults 함수에 위와 같이 로직을 추가하여
공격당한 적에게 가할 넉백의 요소와 쓰러진 적을 나가 떨어뜨리기 위한 요소를 설정한다
5) AuraProjectile 클래스

OnSphereOverlap 함수에 위와 같이 로직을 추가한다
쓰러진 적을 나가떨어뜨리기 위한 요소를 설정하고, 적을 넉백시킬 수 있다면 넉백 요소도 설정한다
6) AuraAttributeSet 클래스

HandleIncomingDamage 함수에 위와 같이 로직을 추가한다
데미지를 받아 쓰러졌다면, 나가 떨어지도록 설정한다
또, 넉백받는 힘이 실질적으로 존재한다면 LaunchCharacter 함수를 호출하여 해당 힘의 방향으로 넉백시킨다
7) CombatInterface 클래스

Die 함수에서 Vector의 인자를 받도록 수정한다
8) AuraCharacterBase 클래스

Die 함수와 MulticastHandleDeath 함수에서 Vector의 인자를 받도록 수정한다

Die 함수의 로직을 위와 같이 수정한다

MulticastHandleDeath 함수를 위와 같이 수정하여
쓰러진 대상의 무기 메쉬와 캐릭터 메쉬가 같이 밀려나도록 설정한다
9) AuraEnemy 클래스


동일하게 Die 함수를 수정한다
- 블루프린트 사이드
1) GA_HitReact 블루프린트

Activation Blocked Tags를 위와 같이 설정하여 불타는 동안은 피격 어빌리티를 발동하지 않도록 설정한다
2) GA_FireBolt 블루프린트

공격당한 적에 대한 넉백 관련 요소와 쓰러진 적을 나가 떨어뜨리기 위한 요소를 위와 같이 설정한다
3) GA_RangedAttack 블루프린트 & GA_MeleeAttack 블루프린트


동일하게 공격당한 적에 대한 넉백 관련 요소와 쓰러진 적을 나가 떨어뜨리기 위한 요소를 위와 같이 설정한다
- 최종 실행 결과
'언리얼 엔진 - 게임 프로젝트 > GAS 프레임워크 RPG 프로젝트' 카테고리의 다른 글
| 전기 광선 스킬 - 2) 광선 계열 스킬 추가 + 그 외의 수정 (0) | 2025.11.21 |
|---|---|
| 전기 광선 스킬 - 1) 화염구 스킬 변경 (0) | 2025.11.20 |
| 전투 시스템 - 4) 디버프의 실제 적용 (0) | 2025.11.15 |
| 전투 시스템 - 3) GE와 AttributeSet에 DamageEffectParams 구조체 적용 (0) | 2025.11.14 |
| 전투 시스템 - 2) DamageEffectParams 구조체의 추가 & 사용 (0) | 2025.11.14 |