- 개요
비전 파편은 소환진 위에서 솟아나는 형식으로 적을 공격한다
위와 같은 동작을 구현하기 위해 비전 파편을 소환하는 원을 우선 설계한다
- C++ 사이드
1) DefaultEngine.ini 파일

엔진의 렌더러 설정에 위의 2개의 옵션을 추가한다
- 모션 블러 기능 비활성화
- 계단 현상을 줄여주는 Anti-Aliasing을 3단계 방식으로 적용
2) AuraGameplayTags 클래스


비전 파편 스킬 어빌리티의 GameplayTag를 추가하고 생성한다
3) MagicCircle 클래스

비전 파편을 소환하는 소환진 역할을 수행하는 MagicCircle 클래스를 추가한다
DecalComponent 멤버변수를 사용하여 소환진의 VFX를 연출한다

생성자에서는 DecalComponent 멤버변수를 생성한다

BeginPlay 함수와 Tick 함수에서는 부모 버전의 함수를 호출한다
4) AuraPlayerController 클래스

소환진을 보여주고 숨겨주는 ShowMagicCircle 함수와 HideMagicCircle 함수를 추가한다

소환진의 인스턴스를 생성하기 위한 TSubclssOf 포인터 멤버변수를 추가하고,
생성한 인스턴스로 사용할 TObjectPtr 포인터 멤버변수를 추가한다
UpdateMagicCircleLocation 함수를 호출하여 매 프레임마다 소환진의 위치를 커서의 위치로 갱신한다

PlayerTick 함수에서 UpdateMagicCircleLocation 함수를 호출하는 로직을 추가한다

ShowMagicCircle 함수의 로직은 위와 같다
소환진의 인스턴스를 생성하고 VFX 효과를 설정한다

HideMagicCircle 함수에서는 생성한 소환진의 인스턴스를 제거한다

UpdateMagicCircleLocation 함수에서는 소환진의 위치를 커서의 위치로 변경한다
5) PlayerInterface 클래스

2개의 함수를 추가하여 캐릭터에서 소환진을 보여주고, 숨길 수 있도록 설정한다
6) AuraCharacter 클래스

IPlayerInterface에 추가한 2개의 함수를 오버라이드한다

오버라이드한 로직은 각각 위와 같다
- ShowMagicCircle 함수 : 소환진을 보여줌 + 마우스 커서 숨김
- HideMagicCircle 함수 : 소환진을 숨김 + 마우스 커서 보여줌
- 블루프린트 사이드
1) DA_AbilityInfo 데이터애셋

비전 파편 스킬과 관련된 정보를 추가한다
2) GA_ArcaneShard 블루프린트

비전 파편 스킬 어빌리티에 관한 세부사항을 위와 같이 설정한다

ActivateAbility 이벤트의 로직을 위와 같이 설정한다
- 첫 번째 시퀀스 : 소환진을 보여줌
- 두 번째 시퀀스 : 다시 입력할때까지 대기 -> 입력했다면 소환진을 숨기고 0.2초후에 어빌리티 종료
3) WBP_Overlay 위젯 블루프린트

2개의 함수에 위의 로직을 추가하여 스킬창 UI와 능력치창 UI가 열려있는 동안 플레이어의 입력을 막도록 설정한다
4) BP_MagicCircle 블루프린트

Tick 함수를 위와 같이 오버라이드하여 로컬 축을 기준으로 소환진이 회전하도록 설정한다
- 최종 실행 결과
'언리얼 엔진 - 게임 프로젝트 > GAS 프레임워크 RPG 프로젝트' 카테고리의 다른 글
| 비전 파편 스킬 - 3) 몽타주와 GC를 사용한 연출 (0) | 2025.12.07 |
|---|---|
| 비전 파편 스킬 - 2) 파편을 소환하는 위치 계산 (0) | 2025.12.06 |
| 패시브 스킬 - 최종) 패시브 스킬의 발동 + FX 연출 (0) | 2025.12.06 |
| 패시브 스킬 - 1) 패시브 스킬의 Tag 추가 + UI와 연동 (0) | 2025.12.05 |
| 전기 광선 스킬 - 최종) 감전 + 기절 상태 부여 (2) (0) | 2025.11.29 |