0. 개요
이전에 생성한 마나를 점차적으로 회복하는 BP_ManaCrystal을 여러 개 배치하자.
캐릭터가 크리스탈 들을 한 번에 접촉하면 Mana 속성 수치가 제 각기의 유효 기간(Period)에 따라 회복되는 것을 볼 수 있다.
이 처럼 기본적으로 각 이펙트들은 각자의 유효 기간과 Magnitude만 신경쓴다고 할 수 있다.
이번에는 이펙트가 스택처럼 작용할 수 있도록 하는 옵션을 알아본다.
1. 스택(Stacking)
스택은 동일한 유형의 이펙트를 다수 습득하면 마치 단일 효과의 유효 기간(Period)가 습득한 만큼의 개수만큼 증가하는 것처럼 작동한다.
- 스택 유형
(1) 소스별 합산(Aggregate by Source)
소스에게 스택이 적용된다.
각 소스별로 스택을 합산한다. 스택 한계를 넘을 수 없다.
(2) 타겟별 합산(Aggregate by Target)
타겟에게 스택이 적용된다.
타겟이 가질 수 있는 스택 한계를 넘을 수 없다.
2. 스택 정책(Stacking Policy)
(1) 스택 지속 시간 새로고침 정책(Stack Duration Refresh Policy)
새로운 스택을 획득하면 지속 시간을 초기화할지 선택한다.
예를 들어, 이 이펙트가 체력을 1초동안 0.1씩 회복되는 스택형 이펙트라고 한다.
- Refresh on Successful Application : 이펙트를 획득한 뒤에 같은 이펙트를 획득하면 마지막으로 이펙트를 획득한 시간에서 다시 1초 동안 이펙트를 발동한다.
- Never Refresh : 이펙트를 획득한 뒤에 같은 이펙트를 획득해도 처음 이펙트를 획득한 시간이 지나면 이펙트가 끝난다.
(2) 스택 주기 초기화 정책(Stack Period Reset Policy)
새로운 스택을 획득하면 각 스택의 주기를 어떻게 할지 선택한다.
예를 들어, 이 이펙트가 화염 틱 데미지를 3초 동안 매 1초 마다 1씩 부여하는 스택형 이펙트라고 한다.
- Reset on Successful Application : 이펙트를 획득한 뒤에 같은 이펙트를 획득하면 모든 이펙트가 3초 뒤에 발동한다.
(3초 동안 매 1초마다 2의 데미지)
- Never Reset : 이펙트를 획득한 뒤에 1초 후, 같은 이펙트를 획득해도 모든 이펙트가 각자의 주기로 발동한다.
(2초 후 첫번째 이펙트 발동, 3초 후 두번째 이펙트 발동 - 각각 1 데미지씩 발동)
(3) 스택 초기화 정책(Stack Expiration Policy)
스택의 지속 시간이 종료되면 어떻게 처리할지 결정한다.
- Clear Entire Stack : 모든 스택을 제거한다.
- Remove Single Stack and Refresh Duration : 스택을 하나만 제거하고 지속 시간을 새로고침한다.
- Refresh Duration : 지속 시간을 새로고침한다.
(OnStackCountChange 콜백 함수를 사용하여 수동으로 조작할 수 있다)
'UE 5 스터디 > Gameplay Ability System(GAS)' 카테고리의 다른 글
4-7. 게임플레이 이펙트 클래스 - (5) 이펙트 수명 관리 (0) | 2024.08.23 |
---|---|
4-6. 게임플레이 이펙트 클래스 - (4) 무한 지속(Infinte) (0) | 2024.08.23 |
4-4. 게임플레이 이펙트 클래스 - (2) 이펙트 지속 적용(Duration) (0) | 2024.08.23 |
4-3. 게임플레이 이펙트 클래스 - (1) 즉시 적용(Instant) (0) | 2024.08.23 |
4-2. 게임플레이 이펙트 적용 - 물약(AuraEffectActor) 개선 (0) | 2024.08.23 |