728x90
반응형
- 개요
기존의 화염구 스킬을 개선하여 클릭한 적의 방향으로 곡선 형태로 날아가도록 수정한다
또 레벨업하여 스킬을 강화할수록 날아가는 화염구의 개수를 증가시키도록 설정한다
- C++ 사이드
1) AuraPlayerController 클래스


AbilityInputTagReleased 함수에 위와 같이 로직을 추가하여 키를 눌렀다가 떼면 나이아가라 VFX를 재생한다
2) AuraProjectile 클래스

투사체에 SceneComponent 멤버변수를 추가하여 클릭하여 타겟팅한 적을 캐싱한다
3) AuraAbilitySystemLibrary 클래스


EvenlySpacedRotators 함수를 추가하여 공간에 고르게 분포된 Rotator가 저장된 TArray를 반환한다
로직은 다음과 같다
- Rotator가 생성될 부채꼴의 가장 왼쪽 시작 방향을 계산
- 인자로 받은 고르게 분포할 개수만큼 Rotator를 생성하여 컨테이너에 담아 반환
- 인자로 받은 값이 1개 이하라면 1개의 Rotator를 생성하여 컨테이너에 담아 반환
4) AuraFireBolt 클래스

위와 같이 5개의 멤버변수를 추가한다
- ProjectileSpread : 화염구 투사체를 생성할 부채꼴의 각도
- MaxNumProjectiles : 최대로 생성할 화염구 투사체의 개수
- HomingAccelerationMin : 타겟팅된 적을 향해 날라갈 화염구 투사체의 최소 가속도
- HomingAccelerationMax : 타겟팅된 적을 향해 날라갈 화염구 투사체의 최대 가속도
- bLaunchHomingProjectiles : 화염구 투사체를 날렸는지 여부


SpawnProjectiles 함수를 오버라이드하여 위와 같이 구성한다
로직은 다음과 같다
- 해당 함수는 서버에서만 수행할 수 있도록 설정
- 투사체를 발사할 Location과 Rotation을 계산하고 설정
- 현재 AuraFireBolt 어빌리티의 레벨만큼 생성되어 고르게 분포된 Rotator가 저장된 TArray를 생성
- 생성된 TArray를 순회
- SpawnActorDeferred 함수를 호출하고 스폰된 투사체에 대한 구성요소 설정
- 타겟팅된 적이 캐싱되어 있다면 캐싱된 값을 HomingTargetComponent으로 설정
- 캐싱되지 않았다면 새로운 SceneComponent를 생성하고 HomingTargetComponent으로 설정
- 투사체의 추적을 활성화하고 FinishSpawning 함수를 호출하여 스폰 종료
- 블루프린트 사이드
1) BP_AuraPlayerController 블루프린트

클릭후에 재생할 NiagaraComponent 멤버변수를 설정한다
2) GA_FireBolt 블루프린트

생성할 화염구 투사체에 대한 멤버변수를 설정한다


ActivateAbility 이벤트를 위와 같이 수정한다
우선, 마우스 커서에 타겟팅된 TargetActor를 MouseHitActor 멤버변수에 캐싱한다
화염구 어빌리티에 대한 Tag가 활성화되어 Event가 실행되면 SpawnProjectiles 함수를 호출한다
이후 해당 함수에 화염구가 날라갈 위치 + 화염구를 생성할 소켓 + MouseHitActor를 매개변수로 넘겨준다
- 최종 실행 결과
728x90
반응형
'언리얼 엔진 - 게임 프로젝트 > GAS 프레임워크 RPG 프로젝트' 카테고리의 다른 글
| 전기 광선 스킬 - 3) 전기 광선 스킬 추가 및 FX 효과 구성 + 일부 수정 (0) | 2025.11.22 |
|---|---|
| 전기 광선 스킬 - 2) 광선 계열 스킬 추가 + 그 외의 수정 (0) | 2025.11.21 |
| 전투 시스템 - 최종) 넉백 시스템 추가 (0) | 2025.11.15 |
| 전투 시스템 - 4) 디버프의 실제 적용 (0) | 2025.11.15 |
| 전투 시스템 - 3) GE와 AttributeSet에 DamageEffectParams 구조체 적용 (0) | 2025.11.14 |