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

GameplayAbility - 2) Gameplay Ability 적용

monstro 2025. 8. 8. 16:25
728x90
반응형

- 개요

프로젝트에서 사용할 GameplayAbility의 조상 클래스를 생성하고 플레이어 캐릭터에 적용한다

 

1) 조상 GA 클래스 - AuraGameplayAbility 클래스 

 

위와 같이 UGameplayAbility를 상속받아 프로젝트에서 사용할 조상 어빌리티 클래스를 생성하였다

프로젝트에서는 해당 클래스를 상속받아 오버라이드하여 어빌리티 클래스를 사용한다

 

2) 조상 캐릭터 클래스 - AuraCharacterBase 클래스

 

게임의 초창기캐릭터에게 부여할 어빌리티를 저장하는 TArray 프로퍼티를 추가한다

추가한 TArray 프로퍼티AddCharacterAbilities 함수를 이용하여 ASC에 부여된다

 

 

AddCharacterAbilities 함수의 로직은 위와 같다

AuraASC를 가져오고 Authority를 확인하여 서버인지 검증하고

ASC로부터 AddCharacterAbilities 함수를 호출하여 TArray에 저장된 어빌리티ASC에 부여한다

 

3) ASC 클래스 - AuraAbilitySystemComponent 클래스

 

캐릭터로부터 받은 어빌리티ASC에 부여하기 위한 AddCharacterAbilities 함수를 추가한다

 

 

AddCharacterAbilities 함수의 로직은 위와 같다

인자로 받은 GA가 저장된 TArray를 순회하면서 해당 GA를 사용하기 위한 GASpec을 생성한다

이후 생성한 GASpec의 GA 프로젝트의 GA로 캐스트하여 ASC에 부여한 후 실행한다

*** Gameplay Ability 부여된 후 Activate하지 않으면 동작하지 않는다 ***

 

4) 플레이어 캐릭터 클래스 - AuraCharacter 클래스

 

PossessBy 함수에서 AddCharacterAbilities 함수를 호출하여 어빌리티를 부여한 후 동작시킨다

 

5) 언리얼 에디터

ActivateAbility 함수

 

EndAbility 함수

 

위와 같은 로직으로 구성한 테스트용 Gameplay Ability 블루 프린트를 생성한다

따라서 최종적으로 어빌리티가 적용된 후 5초 후에 어빌리티가 종료된다

 

 

생성한 어빌리티를 위와 같이 적용하였다

 

- 최종 실행 결과

 

728x90
반응형