- 개요
설정을 마친 스킬 관련 어빌리티를 스킬 UI와 연동하는 과정을 마무리하고,
스킬 관련 어빌리티를 사용하기 위한 비용을 설정한다
1) C++ 사이드
1 - 1) AuraAbilitySystemComponent 클래스

OnRep_ActivateAbilities 함수를 오버라이드한다

해당 함수는 ActivatableAbilities가 변경되면 Replicate되면서 호출하는 함수로서
ActivatableAbilities 변수는 부여(Give)되어 발동(Activate)할 수 있는 어빌리티를 저장한다

오버라이드한 로직은 위와 같다
부모 버전의 함수를 먼저 호출하고, bStartupAbilitiesGiven가 False인 경우
bStartupAbilitiesGiven를 True로 설정하고, AbilitiesGivenDelegate를 브로드캐스트한다
2) 블루프린트 사이드
2 - 1) 스킬 어빌리티와 스킬 UI 연동
1) GA_Firebolt 블루프린트

Startup Input Tag를 위와 같이 설정한다
2) WBP_SpellGlobe 위젯 블루프린트

위와 같이 WidgetControllerSet 이벤트에 로직을 추가한다
BPOverlayWidetController 멤버변수의 AbilityInfoDelegate에 ReceiveAbilityInfo 함수를 바인드한다

ReceiveAbilityInfo 함수의 로직은 위와 같다
델리게이트에서 전달받은 AuraAbilityInfo로부터 InputTag를 가져오고
가져온 InputTag와 연결된 스킬의 아이콘 + 스킬의 배경색을 가져와 스킬 UI의 아이콘과 배경을 설정한다
3) WBP_HealthManaSpells 위젯 블루프린트


PreConstruct 이벤트에서 SetSpellGlobeInputTags 함수를 호출하도록 로직을 구성하였다
따라서 UI를 구성하는 각 스킬 슬롯 UI와 연결된 InputTag를 설정한다

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)에서 생성한 블루프린트로 설정한다
- 최종 실행 결과
'언리얼 엔진 - 게임 프로젝트 > GAS 프레임워크 RPG 프로젝트' 카테고리의 다른 글
| 코스트와 쿨타임 - 최종) 쿨타임과 UI 연동 (0) | 2025.10.19 |
|---|---|
| 코스트와 쿨타임 - 4) BlueprintAsyncActionReady 클래스를 사용한 어빌리티 쿨타임 설계 (0) | 2025.10.18 |
| 코스트와 쿨타임 - 2) 어빌리티와 Tag 연동 + 어빌리티와 UI 연동 세팅 (0) | 2025.10.18 |
| 코스트와 쿨타임 - 1) 스킬 UI + 경험치 UI (0) | 2025.10.17 |
| 맵 제작 - 최종) 기본 맵 변경 + 맵 오브젝트 Fade In / Fade Out (0) | 2025.10.16 |