게임개발/unreal

[UE5] 게임플레이 어빌리티(GA) 주요 함수 및 용어 소개

차차냥 2024. 7. 15. 01:07

게임플레이 어빌리티(Gameplay Ability)는 줄여서 GA로 불립니다.

 

게임 어빌리티 시스템을 관리하는 핵심 컴포넌트인 Ability System Component(ASC) 에 등록하고 발동시킬 수 있는 액션 명령을 '어빌리티'라고 지칭하는 것입니다.

이 ASC는 액터 당 단 하나만 부착될 수 있고, 이 ASC를 부착한 액터들 사이에서는 GAS(GameAbilitySystem) 의 상호작용이 가능해집니다.

예를 들면 공격, 마법, 특수 공격등의 명령을 지정할 수 있습니다. 또 상황에 따른 복잡한 액션을 수행할 수 있습니다. (누군가가 발을 거는 스킬을 썼을 때, 캐릭터가 반드시 앞구르기 착지를 한다던가.. )

 

하나 이상의 GA 가 한 번에 활성화된다면 동시 액션이 가능합니다.

예를 들면, 뛰면서(Sprint) 스킬(Skill) 사용이 가능합니다.

 

GA 의 발동 과정은 아래와 같습니다.

출처 : 중국 UE5 관련 블로그

1. ASC에 어빌리티를 등록
 ASC의 GiveAbility()발동할 GA의 타입을 전달합니다.
발동할 GA 타입 정보를 게임플레이 어빌리티 스펙(GameplayAbilitySpec) 이라고 합니다.
통 줄여서 어빌리티 스펙 또는 스펙이라고 합니다.

 

2. ASC에게 어빌리티를 발동하라고 명령
ASC의 TryActivateAbility() 에 발동할 GA의 타입을 전달합니다.

ASC에 등록된 타입이면 GA의 인스턴스가 생성됩니다.
3. 발동된 GA 에는 발동한 액터와 아래의 실행 정보 기록됨
SpecHandle : 발동된 어빌리티에 대한 핸들
ActorInfo : 어빌리티의 소유자와 아바타 정보

ActivationInfo : 발동 방식에 대한 정보

 

위의 과정에서 주로 사용하는 함수들 외에도 주요 함수를 소개합니다.

CanActivateAbility : 어빌리티가 발동될 수 있는 상황인지 파악합니다.
ActivateAbility : 어빌리티가 발동될 때 호출됩니다.
CancelAbility : 어빌리티가 취소될 때 호출됩니다.
EndAbility : 스스로 어빌리티를 마무리할 때 호출됩니다.