728x90
반응형
- 개요
GameplayEffect의 Stacking 옵션을 사용하면 GE를 중첩하여 적용하고 중복 실행되는 GE를 통제할 수 있다
이때 Stacking 옵션은 Duration이나 Infinite한 GE에서만 사용가능하다
- Stacking 설정의 구성
1) Stacking Type

Stacking Type의 구성은 위와 같다
각각의 구성요소는 다음과 같이 정리할 수 있다
- 1) None : Stacking 옵션을 사용하지 않음, 따라서 동일한 GE가 서로에 상관없이 각각 실행되어 동작
- 2) Aggregate By Source
- GameplayEffect가 적용될 수 있는 상한선인 Stack Limit Count를 Source에서 관리
- 따라서 Source에서 Target에게 GE를 적용할 때마다 Stack Limit Count가 1씩 증가
- Stack Limit Count를 넘어서는 경우 그 이후의 GE는 적용하지 않음
- Source의 인스턴스 별로 다르게 적용됨
- 3) Aggregate By Target
- GameplayEffect가 적용될 수 있는 상한선인 Stack Limit Count를 Target에서 관리
- 따라서 Target에게 GE가 적용될 때마다 Stack Limit Count가 1씩 증가
- Stack Limit Count를 넘어서는 경우 그 이후의 GE는 적용되지 않음
- Source의 인스턴스 모두에게 적용됨

프로젝트에서 GE를 적용하는 Source는 대상(Target)의 ASC이므로 Source와 Target 모두 동일하게 적용된다
2) Stack Duration Refresh Policy

Stack Duration Refresh Policy를 통해 Stack되는 동안 GE의 Duration의 초기화 정책을 설정할 수 있다
구성요소를 정리하면 각각 다음과 같다
- 1) Refresh on Successful Application : 새로운 GE가 성공적으로 Stack되면 Duration이 초기화
- 2) Never Refresh : 초기화되지 않는다
3) Stack Period Reset Policy

Stack Period Reset Policy를 통해 Stack되는 동안 GE의 Period의 초기화 정책을 설정할 수 있다
구성요소를 정리하면 각각 다음과 같다
- 1) Refresh on Successful Application : 새로운 GE가 성공적으로 Stack되면 다음 Tick은 진행하지 않음
- 2) Never reset : 초기화되지 않는다
4) Stack Expiration Policy

Stack Expiration Policy를 통해 GE가 만료될 때의 정책을 설정할 수 있다
구성 요소를 정리하면 각각 다음과 같다
- 1) Clear Entire Stack : GE가 만료될때 모든 Stack을 0으로 초기화
- 2) Remove Single Stack and Refresh Duration : GE의 Stack Count를 1 줄이고 Duration을 초기화
- 단, GE를 재적용하진 않음
- 3) Refresh Duration : 완료된 GE의 Duration을 초기화하여 계속 적용
- 따라서 Stack Count를 OnStackCountChange 등의 콜백함수를 호출하여 직접 감소시켜줘야 함
- 이전의 GameplayEffect 수정

이전의 크리스탈과 관련한 GameplayEffect의 Stacking 옵션을 위와 같이 설정하였다
또한 최대체력과 최대마나를 수정하지 않고 1초 동안 0.1의 주기로 1씩 체력과 마나를 회복한다
- 최종 실행 결과
728x90
반응형
'언리얼 엔진 - 게임 프로젝트 > GAS 프레임워크 RPG 프로젝트' 카테고리의 다른 글
| GameplayEffect - 최종) AttributeSet의 변경 이전과 이후 핸들링 + 커브 테이블의 사용 (0) | 2025.07.18 |
|---|---|
| GameplayEffect - 3) Infinite GameplayEffect와 GE 적용 / 제거 (0) | 2025.07.18 |
| GameplayEffect - 2) Instant / Duration / Period GameplayEffect (0) | 2025.07.13 |
| GameplayEffect - 1) GameplayEffect란? (0) | 2025.07.13 |
| RPG 게임 UI - 최종) GetGameplayAttributeValueChangeDelegate의 사용 (0) | 2025.07.12 |