언리얼 엔진 - 게임 프로젝트/GAS 프레임워크 RPG 프로젝트

비전 파편 스킬 - 1) 파편을 소환하는 원 설계

monstro 2025. 12. 6. 18:19
728x90
반응형

- 개요

비전 파편소환진 위에서 솟아나는 형식으로 적을 공격한다

위와 같은 동작을 구현하기 위해 비전 파편을 소환하는 원우선 설계한다

 

- C++ 사이드

1) DefaultEngine.ini 파일

 

엔진의 렌더러 설정에 위의 2개의 옵션을 추가한다

  • 모션 블러 기능 비활성화
  • 계단 현상을 줄여주는 Anti-Aliasing3단계 방식으로 적용

 

2) AuraGameplayTags 클래스

비전 파편 스킬 어빌리티의 Tag 추가

 

추가한 Tag를 생성

 

비전 파편 스킬 어빌리티의 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 이벤트 로직

 

ActivateAbility 이벤트의 로직을 위와 같이 설정한다

  • 첫 번째 시퀀스 : 소환진을 보여줌
  • 두 번째 시퀀스 : 다시 입력할때까지 대기 -> 입력했다면 소환진을 숨기고 0.2초후에 어빌리티 종료

 

3) WBP_Overlay 위젯 블루프린트

AttributeMenuClosed 함수 + SpellMenuClosed 함수

 

2개의 함수위의 로직을 추가하여 스킬창 UI능력치창 UI가 열려있는 동안 플레이어의 입력을 막도록 설정한다

 

4) BP_MagicCircle 블루프린트

 

Tick 함수를 위와 같이 오버라이드하여 로컬 축을 기준으로 소환진이 회전하도록 설정한다

 

- 최종 실행 결과

 

728x90
반응형