- 개요
투사체를 발사하는 스킬 어빌리티 외에 광선을 생성하여 발사하는 스킬 어빌리티를 추가한다
그외에 일부 코드를 수정한다
- C++ 사이드
1) AuraProjectile 클래스

Destroyed 함수에 위와 같이 로직을 추가하여 투사체가 파괴되면
날아가는 소리를 재생하는 AudioComponent를 제거하도록 수정한다

OnHit 함수에도 동일한 로직을 추가하여 클라이언트에서도 AudioComponent를 제거한다
2) AuraBeamSpell 클래스

광선을 생성하여 적을 공격하는 어빌리티 클래스인 AuraBeamSpell 클래스를 생성한다
멤버변수의 구성은 위와 같다
- MouseHitLocation : 마우스 커서가 클릭한 위치
- MouseHitActor : 마우스 커서로 클릭한 Actor
- OwnerPlayerController : 해당 클래스의 Owner의 PlayerController
- OwnerCharacter : 해당 클래스의 Owner

StoreMouseDataInfo 함수의 로직은 위와 같다
매개변수로 받은 HitResult가 유효하다면, 클릭한 위치와 클릭한 Actor를 캐싱한다
그렇지 않은 경우 어빌리티를 Cancel한다

StoreOwnerVariables 함수의 로직은 위와 같다
어빌리티에 대한 CurrentActorInfo를 가져와 PlayerController와 AvatarActor를 캐싱한다
3) CombatInterface 클래스

SetInShockLoop 함수를 추가하여 캐릭터의 광선계열 스킬의 사용시간을 설정한다
4) AuraAbilitySystemComponent 클래스

입력된 키의 Tag와 연결된 어빌리티를 실행하는 AbilityInputTagPressed 함수에서
어빌리티를 성공적으로 실행한 후에 예측 키와 함께 InputPressed 이벤트를 서버에 복제하는 로직을
위와 같이 수정하여 AbilityInputTagPressed 함수에서 엔진의 버전에 맞게 예측키를 사용한다

어빌리티와 연결된 Tag를 갖고 있는 키의 입력을 뗀 경우 실행하는 AbilityInputTagPressed 함수에서도
동일하게 로직을 수정하여 엔진의 버전에 맞게 예측키를 사용하도록 한다
5) AuraPlayerController 클래스

AbilityInputTagPressed 함수를 위와 같이 수정하여 PlayerController에서 키를 입력하면
ASC의 AbilityInputTagPressed 함수를 호출하도록 설정한다
- 블루프린트 사이드
1) AM_Cast_Electrocute 애니메이션 몽타주



전기 충격 어빌리티의 애니메이션 몽타주를 추가하고 Tag를 추가하여
해당 애니메이션 몽타주에서 추가한 Tag를 사용하도록 설정한다
2) GA_Electrocute 블루프린트


해당 어빌리티에 대한 Tag를 위와 같이 설정한다

ActivateAbility 이벤트의 로직을 위와 같이 구성한다
우선, 마우스 커서가 가리킨 첫번째 대상을 가져와 StoreMouseDataInfo 함수에 인자로 넘겨주고
이후, StoreOwnerVariables 함수를 호출하여 Owner와 Owner의 Controller를 캐싱한다

이후의 로직은 위와 같다
첫 번째 시퀀스에서는 모션 워핑을 적용하고 AM_Cast_Electrocute 몽타주를 재생한다
재생한 몽타주의 AN을 통해 Tag가 활성화되면 InShockLoop 함수를 호출한다
두 번째 시퀀스에서는 어빌리티를 발동한 키를 떼기를 기다렸다가 어빌리티를 종료한다
- 최종 실행 결과
'언리얼 엔진 - 게임 프로젝트 > GAS 프레임워크 RPG 프로젝트' 카테고리의 다른 글
| 전기 광선 스킬 - 4) 전기 광선의 연쇄 충격 시스템 구현 (0) | 2025.11.23 |
|---|---|
| 전기 광선 스킬 - 3) 전기 광선 스킬 추가 및 FX 효과 구성 + 일부 수정 (0) | 2025.11.22 |
| 전기 광선 스킬 - 1) 화염구 스킬 변경 (0) | 2025.11.20 |
| 전투 시스템 - 최종) 넉백 시스템 추가 (0) | 2025.11.15 |
| 전투 시스템 - 4) 디버프의 실제 적용 (0) | 2025.11.15 |