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 콜백 함수를 사용하여 수동으로 조작할 수 있다)