728x90
반응형
- 개요
몬스터의 근접 공격의 애니메이션 몽타주에 포함된 AnimNotify를 호출하여 플레이어가 피격되었는지 판단한다
1) DefaultGameplayTags.ini

에디터 또는 DefaultGameplayTags.ini 파일에 위의 태그를 추가한다
해당 태그를 통해 근접 공격의 애니메이션 몽타주에서 AnimNotify를 호출한다
2) CombatInterface 클래스

전투와 관련한 동작을 수행하는 CombatInterface 클래스에 2개의 함수를 추가한다
- IsDead 함수 : 공격한 대상이 쓰러졌는지 판단
- GetAvatar 함수 : 공격받은 대상의 클래스를 반환
3) AuraAbilitySystemLibrary 클래스

GetLivePlayersWithinRadius 함수를 추가한다
해당 함수를 호출하여 Sphere Trace를 수행하여 오버랩된 플레이어가 존재하는지 판단한다

함수의 로직은 다음과 같다
- 인자로 받은 ActorsToIgnore에 대해서는 Trace를 하지 않도록 설정
- World로부터 SphereTrace를 수행
- 수행한 결과를 순회하면서 CombatInterface를 상속받았으면서 + IsDead의 반환값이 false라면
- GetAvatar 함수를 호출하여 반환된 대상을 인자로 받은 OutOverlappingActors에 단일값으로 추가
4) AuraCharacterBase 클래스


위와 같이 CombatInterface의 함수를 오버라이드하고, bDead 멤버변수를 추가한다
5) 언리얼 에디터
5 - 1) AM_Attack_GoblinSpear 애니메이션 몽타주


위와 같이 AnimNotify의 트랙을 추가하고 적합한 키 프레임에 AnimNotify를 설정한다
해당 AnimNotify의 이벤트 태그를 위와 같이 설정한다
5 - 2) BP_Goblin_Spear 블루프린트

Sphere Trace를 수행할 Socket의 이름을 위와 같이 설정한다

해당 Socket은 고블린 창병의 창 메쉬의 끝부분을 의미한다
5 - 3) GA_MeleeAttack 블루프린트

애니메이션 몽타주 재생 이후의 로직을 위와 같이 추가한다
다음과 같이 축약할 수 있다
- AnimNotify에서 설정한 이벤트가 발동
- 창 메쉬의 끝부분을 기준으로 Sphere Trace 수행
- 수행결과를 for each문으로 순회하면서 Debug Sphere 생성
- 최종 실행 결과
728x90
반응형
'언리얼 엔진 - 게임 프로젝트 > GAS 프레임워크 RPG 프로젝트' 카테고리의 다른 글
| 몬스터 근접 공격 - 최종) 애니메이션 몽타주와 소켓 연결 및 개선 (0) | 2025.09.28 |
|---|---|
| 몬스터 근접 공격 - 4) 애니메이션 몽타주와 AnimNotify 태그 연동 + 공격당한 플레이어에게 데미지 적용 (0) | 2025.09.27 |
| 몬스터 근접 공격 - 2) 모션 워핑의 사용 (0) | 2025.09.26 |
| 몬스터 근접 공격 - 1) 근접 공격 GameplayAbility 생성 (0) | 2025.09.26 |
| 몬스터 AI - 최종) EQS를 사용한 원거리 몬스터 AI 설정 (0) | 2025.09.21 |