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

코스트와 쿨타임 - 3) 어빌리티와 UI 연동 마무리 + 어빌리티 비용 설정

monstro 2025. 10. 18. 18:33
728x90
반응형

- 개요

설정을 마친 스킬 관련 어빌리티스킬 UI와 연동하는 과정을 마무리하고,

스킬 관련 어빌리티를 사용하기 위한 비용을 설정한다

 

1) C++ 사이드

1 - 1) AuraAbilitySystemComponent 클래스

 

OnRep_ActivateAbilities 함수를 오버라이드한다

 

AbilitySystemComponent 클래스의 ActivatableAbilities 변수

 

해당 함수는 ActivatableAbilities가 변경되면 Replicate되면서 호출하는 함수로서

ActivatableAbilities 변수는 부여(Give)되어 발동(Activate)할 수 있는 어빌리티를 저장한다

 

 

오버라이드한 로직은 위와 같다

부모 버전의 함수를 먼저 호출하고, bStartupAbilitiesGivenFalse인 경우

bStartupAbilitiesGivenTrue로 설정하고, AbilitiesGivenDelegate를 브로드캐스트한다

 

2) 블루프린트 사이드

2 - 1) 스킬 어빌리티와 스킬 UI 연동

1) GA_Firebolt 블루프린트

 

Startup Input Tag를 위와 같이 설정한다

 

2) WBP_SpellGlobe 위젯 블루프린트

WidgetControllerSet 이벤트 로직 추가

 

위와 같이 WidgetControllerSet 이벤트에 로직을 추가한다

BPOverlayWidetController 멤버변수의 AbilityInfoDelegateReceiveAbilityInfo 함수를 바인드한다

 

ReceiveAbilityInfo 함수의 로직

 

ReceiveAbilityInfo 함수의 로직은 위와 같다

델리게이트에서 전달받은 AuraAbilityInfo로부터 InputTag를 가져오고

가져온 InputTag와 연결된 스킬의 아이콘 + 스킬의 배경색을 가져와 스킬 UI의 아이콘과 배경을 설정한다

 

3) WBP_HealthManaSpells 위젯 블루프린트

PreConstruct 이벤트

 

SetSpellGlobeInputTags 함수

 

PreConstruct 이벤트에서 SetSpellGlobeInputTags 함수를 호출하도록 로직을 구성하였다

따라서 UI를 구성하는 각 스킬 슬롯 UI와 연결된 InputTag를 설정한다

 

WidgetControllerSet 이벤트 로직 수정

 

WidgetControllerSet 이벤트에서 2번째 시퀀스에서 SetGlobeWidgetControllers 함수를 호출하도록 로직을 추가한다

 

2 - 2) 스킬 어빌리티의 비용 설정

1) CT_Cost 커브 테이블

 

발동하는 GASpec의 레벨에 따른 비용을 위와 같이 커브 테이블을 사용하여 선형적으로 구성하였다

 

 2) GE_Cost_Firebolt 블루프린트

 

GameplayAbility에 비용을 적용할 GameplayEffect를 위와 같이 생성한다

어빌리티를 발동할 때마다 Mana 어트리뷰트를 커브 테이블의 커브 값만큼 감소시킨다

 

3) GA_FireBolt 블루프린트

 

Costs 설정에서 Cost Gameplay Effect Class를 2)에서 생성한 블루프린트로 설정한다

 

- 최종 실행 결과

 

728x90
반응형