- 개요
광선 계열 스킬 중에서 전기 광선을 발사하는 스킬을 추가한다
해당 어빌리티의 구체적인 로직을 구성하기보다는 FX 효과를 구성하는 방향으로 작업을 진행한다
또, Tag를 추가하여 플레이어의 입력을 제한하는 방식으로 설계한다
- C++ 사이드
1) AuraGameplayTags 클래스


위와 같이 4개의 Tag를 추가하여 각각의 Tag가 활성화된 동안 플레이어의 특정한 입력을 제한한다
- 커서 트레이스
- 키를 누르고 있는 입력
- 키를 누른 입력
- 키를 뗀 입력
2) AuraPlayerController 클래스





이동 함수와 입력을 통해 어빌리티를 발동시키는 함수 그리고 커서 트레이스 함수에 위와 같이 로직을 추가하여
추가한 Tag에 따라 입력이 되어도 로직을 수행하지 못하도록 설정한다
3) ini 파일

MaxRPCPerNetUpdate 설정에 대한 값을 위와 같이 설정하여
GameplayCue에 대한 RPC의 호출 횟수를 10으로 설정하여 안정적으로 구성한다

GameplayCueNotifyPaths를 위와 같이 설정하여 GameplayCueNotify 에셋의 경로를 위와 같이 설정한다

전기광선이 발사될 때 + 전기광선이 발사중일 때 재생할 GameplayCue와 관련된 Tag를 위와 같이 추가한다
4) CombatInterface 클래스

GetWeapon 함수를 오버라이드하여 캐릭터 별로 무기의 SKM을 반환할 수 있도록 설정한다
5) AuraCharacterBase 클래스


GetWeapon 함수를 위와 같이 오버라이드한다
- 블루프린트 사이드
1) GC_ShockBurst 블루프린트

전기광선이 발사될 때 재생할 GC 애셋을 생성한다
해당 GC 애셋에 대한 Gameplay Cue Tag를 위와 같이 설정한다

OnExecute 함수를 위와 같이 설정하여 인자로 받은 MyTarget의 위치로 SFX를 재생한다
2) GC_ShockLoop 블루프린트

전기광선이 발사되는 동안 재생할 GC 애셋을 생성한다
해당 GC 애셋에 대한 Gameplay Cue Tag를 위와 같이 설정한다

OnBecomeRelevant 함수의 로직을 위와 같이 구성한다
해당 함수는 Gameplay Cue Tag가 활성화되어 GC를 처리하기 위해 호출하는 함수이다
로직은 위와 같은데, 마우스 커서의 위치로 NiagaraComponent를 생성하고 SFX를 재생한다

CeaseRelevant 함수의 로직을 위와 같이 구성한다
해당 함수는 활성화된 GC를 제거하면서 호출하는 함수이다
로직은 위와 같이 구성하여 생성된 NiagaraComponent를 제거하고, SFX를 서서히 중단한다
3) GA_Electrocute 블루프린트

Activation Owned Tags 설정을 위와 같이 수정한다
따라서 전기광선 어빌리티를 수행하는 동안 다른 입력을 받지 못하도록 설정한다

ActivateAbility 이벤트의 첫 번째 시퀀스에 위와 같이 로직을 추가한다
전기광선을 발사하는 시간을 설정한 이후에, AvatarActor의 무기로부터 마우스 커서로 클릭한 위치까지
지정한 Tag를 활성화하여 연결된 GC를 AvatarActor에게 생성한다
- 최종 실행 결과
'언리얼 엔진 - 게임 프로젝트 > GAS 프레임워크 RPG 프로젝트' 카테고리의 다른 글
| 전기 광선 스킬 - 5) 문제 수정 (0) | 2025.11.25 |
|---|---|
| 전기 광선 스킬 - 4) 전기 광선의 연쇄 충격 시스템 구현 (0) | 2025.11.23 |
| 전기 광선 스킬 - 2) 광선 계열 스킬 추가 + 그 외의 수정 (0) | 2025.11.21 |
| 전기 광선 스킬 - 1) 화염구 스킬 변경 (0) | 2025.11.20 |
| 전투 시스템 - 최종) 넉백 시스템 추가 (0) | 2025.11.15 |