Advanced Unreal Engine 5 Multiplayer Gameplay Programming
Ability System Component는 Actor Component를 부모로 가지며, 다음과 같은 구성 요소를 갖는다.
- Gameplay Ability
- Gameplay Tasks
- Gameplay Tags
- Gameplay Attributes
- Gameplay Effects
- Gameplay Cues
- Gameplay Events
- ...
능력은 UAbilitySystemComponent::GiveAbility() 함수를 통해 부여할 수 있다.
- 서버에서만 능력을 부여할 수 있으며, 클라이언트에서 호출되면 무시된다.
Gameplay Ability
액터가 사용할 수 있는 능력이다.
로컬 후 서버, 로컬만, 서버 후 로컬, 서버만 등의 실행 정책이 있다.
게임플레이 태그, 클래스 등으로 필터링 해 실행할 수 있다.
Gameplay Tasks
능력에서 로직을 수행할 수 있도록 하는 오브젝트이다.
실행 도중 OnCompleted, OnBlendOut, OnIterrupted, OnCancelled 등의 델리게이트를 발동할 수 있다.
비동기적으로 수행될 수 있으며, TickTask(Deltatime) 함수를 제공한다.
Gameplay Tags
액터의 프로퍼티인 TArray<FName> Tags와는 다른 것이다.
액터에 Gameplay Tag를 부여해, 해당 태그를 가진 액터만 필터링 해 능력을 부여할 수 있다.
태그가 추가되거나 제거될 때 델리게이트가 발동된다.
Gameplay Attributes
체력, 스태미나 등 부여할 수 있는 속성이다.
수정될 때 델리게이트가 발동된다.
Gameplay Effects
Gameplay Attribute, Tag, Cue 등을 변경하는데 사용된다.
로직을 수행하지 않으며, 이펙트의 효과들을 지정할 뿐이다.
예) HP 50 감소, 3초간 MP 200 증가, ...
C++로도 만들 수 있지만 보통 블루프린트로 제작하며, 대부분의 경우 태그와 함께 사용된다.
Gameplay Cues
Gameplay Effect가 적용되는 동안 파티클 효과를 재생하는 곳 등에 사용된다.
이펙트가 실행될 때 함께 적용되며, 이펙트가 종료되면 같이 종료된다.
네트워크를 통해 알아서 복제된다.
정적 큐는 메모리에 1개만 존재하고 값을 수정할 수 없다.
액터 기반 큐는 인스턴스화 되어 생성되며, 값을 수정할 수 있다.
Gameplay Events
GAS와 의사소통할 수 있는 수단이다.
'Unreal Engine > Advanced UE5 Multiplayer Programming' 카테고리의 다른 글
이동 속도, 스태미나 속성 추가 (0) | 2023.05.04 |
---|---|
데이터 에셋을 통한 속성 기본값 초기화 (0) | 2023.05.03 |
속성 기본값 설정 (0) | 2023.05.02 |
GAS 초기 구성 (0) | 2023.05.01 |
GAS (Gameplay Ability System) (0) | 2023.04.29 |