- 개요
고블린 주술사는 마법 공격을 수행한 것 말고도 임프를 소환하여 공격한다
소환하는 임프는 근거리 공격을 수행하는 임프 + 근거리 공격을 수행하는 임프의 2가지 버전이 존재한다
주술사의 동작을 수정하기 이전에 소환되는 임프를 설정하도록 한다
1) C++ 사이드
1 - 1) AuraGameplayTags 클래스


임프는 꼬리를 사용하여 근거리 공격을 수행한다
따라서 꼬리에서 SphereTrace를 수행하기 위해 꼬리의 Socket에 대한 Tag를 추가한다
1 - 2) AuraCharacterBase 클래스


꼬리의 Socket 이름을 의미하는 멤버변수를 추가하고
GetCombatSocketLocation 함수에서 해당 멤버변수의 이름을 가진 Socket의 위치를 가져온다
1 - 3) AuraProjectileSpell 클래스

SpawnProjectile 함수에서 Vector 말고도 GameplayTag를 인자로 받도록 수정한다

SpawnProjectile 함수의 로직을 수정하여 인자로 받은 Tag를 사용하여 Socket의 위치를 가져오도록한다
2) 블루프린트 사이드
2 - 1) GA_RangedAttack 블루프린트

몬스터의 원거리 공격을 수행하는 GA_RangedAttack 블루프린트를 위와 같이 수정하였다
UpdateFacingTarget 함수를 호출하고 AttackMontages - 랜덤한 TaggedMontage를 가져오는 로직을 수행한다

위의 로직에서 가져온 TaggedMontage를 분해하여 다음과 같이 사용한다
- Montage : PlayMontageAndWait 노드에서 사용
- MontageTag : WaitGameplayEvent 노드 + GetCombatSocketLocation 노드에서 사용
- SocketTag : SpawnProjectile 노드에서 사용
2 - 2) GA_Firebolt 블루프린트

플레이어의 화염구를 생성하는 GA_Firebolt 블루프린트를 위와 같이 생성한다
화염구는 무기의 끝에서 생성하므로 해당하는 CombatSocket을 지정하여 SpawnProjectile 노드에 넘겨준다
2 - 3) 근거리 임프 + 원거리 임프 블루프린트 설정




- 최종 실행 결과
'언리얼 엔진 - 게임 프로젝트 > GAS 프레임워크 RPG 프로젝트' 카테고리의 다른 글
| 몬스터 마무리 - 최종) 고블린 주술사 AI 구성 + 코드 개선 (0) | 2025.10.12 |
|---|---|
| 몬스터 마무리 - 4) 임프 소환 GameplayAbility 구현 (0) | 2025.10.11 |
| 몬스터 마무리 - 2) 쓰러지는 몬스터의 SFX 효과 추가 (0) | 2025.10.09 |
| 몬스터 마무리 - 1) GameplayCue를 통한 피격 효과 재생 (0) | 2025.10.09 |
| 몬스터 스킬 공격 - 최종) 몬스터 스킬 공격 마무리 + 몬스터 AI 개선 (0) | 2025.10.04 |