UE5/GAS

GAS 어빌리티 시스템 컴포넌트-ASC

뽀또치즈맛 2025. 5. 9. 17:29

 
 
 
 

ASC가 GAS의 핵심

 
ASC가 GAS의 핵심이다.
시스템과의 모든 상호작용을 처리하는 UActorComponent(UAbilitySystemComponent)이다.
GameplayAbility를 사용하거나 Attribute를 가지거나,
GameplayEffect를 받으려는 액터에는 반드시 ASC가 하나씩 붙어 있어야 한다.
이러한 오브젝트는 모두 asc안에 존재하며, (AttributeSet에 의해 리플리케이드되는 ATTRIBUTE를 제외하고,)
ASC에 의해 관리 및 리플리케이트된다. 이를 서브클래싱할 것을 권장하지만 필수는 아니다.
 
ASC가 붙은 액터를 ASC의 OwnerActor라고 한다.
그리고 ASC의 물리적 표현 액터를 AvatarActor라고 한다.
 
MOBA 게임에서 단순한 AI미니언의 경우 처럼 OwnerActor와 AvatarActor가 동일할 수 있고,
혹은 플레이어가 조종하는 영웅과 같이 OwnerActor가 PlayerState이고
AvatarActor가 영웅의 Character 클래스인 경우도 있을 수도 있다. 대부분의 액터는 자체적으로 ASC를 갖는다.
 
MOBA 게임의 영웅처럼 액터가 리스폰되고 스폰 사이에 Attribute 또는 GameplayEffect의 지속성이 필요한 경우,
PlayerState 클래스가 ASC의 이상적인 위치이다.
 
 
+++++ 💡 Note +++++
 

ASC가 PlayerState에 있는 경우, PlayerState의 NetUpdateFrequency를 늘려야한다.
기본적으로 PlayerState에서 매우 낮은 값으로 설정되어 있어
클라이언트에서 Attribute 그리고 GameplayTag 등의 변경이 일어나기 전에 지연이 발생하거나 감지될 수 있다.
Adaptive Network Update Frequency를 활성화하자.
포트나이트 또한 이를 사용하고있다.

 
 
++++++++++++++
 
 
OwnerActor와 AvatarActor가 다른 액터인 경우 둘 다 IAbilitySystemInterface를 구현해야 한다.
 
 

 
 
참고 사이트
https://kkadalg.tistory.com/29

Unreal GAS(GameplayAbilitySystem) Documentation 번역글 1부

해당 글은 언리얼 공식 문서가 아닌 개인이 작성해놓은 문서를 DeepL과 필자가 멋대로 번역, 의역한 글입니다. 따라서 잘못된 정보와 해석이 다분히 있을 수 있습니다. GitHub - tranek/GASDocumentation: M

kkadalg.tistory.com