- 개요
GameplayEffect의 동작주기를 설정하는 Duration Policy의 옵션 중에서 Instant와 Duration을 다뤄본다
또 추가적으로 Duration과 Infinite에서만 설정할 수 있는 Period 설정도 다뤄본다
AttributeSet에 포함된 각각의 Attribute는 GameplayAttributeData 형태로 사용하는데,
이런 Attribute에는 BaseValue와 CurrentValue의 형태로 값을 정의한다
- BaseValue : Attribute가 초기화될 때 사용하는 기본값
- CurrentValue : Attribute가 변경될 때 사용하는 변화값
이때 Duration Policy에 따라 GameplayEffect가 변경하는 값이 다르게 설정된다
- Instant / Policy : BaseValue의 값을 변경, 따라서 GE가 제거되도 변경된 값은 영구히 유지
- Duration / Infinite : CurrentValue의 값을 변경, 따라서 GE가 제거되면 변경된 값도 삭제
따라서 위의 정보를 바탕으로 프로젝트에 Instant / Duration / Policy의 GE를 생성하고 사용해본다
1) AuraEffectActor 클래스

이전에 추가한 Instant 방식의 GameplayEffect 외에도 Duration 방식의 GameplayEffect를 추가한다
2) 언리얼 에디터
2 - 1) Instant로 동작하는 GameplayEffect

Duration Policy를 Instant로 설정한다

Modifier를 위와 같이 설정하여 Attribute 중에서 Health의 값을 30만큼 증가시키도록 설정한다
2 - 2) Duration으로 동작하는 GameplayEffect

Duration Policy를 Has Duration으로 설정한다
또 Period를 0으로 설정하여 Period 방식으로 동작하지 않도록 설정한다
따라서 해당 GE는 2초 동안 동작한다

Modifier를 위와 같이 설정하여 Attribute 중에서 MaxHealth의 값을 100만큼 증가시키도록 설정한다
따라서 2초 동안 MaxHealth는 100만큼 증가한다
2 - 3) Period 방식으로 동작하는 GameplayEffect

Duration Policy를 Has Duration으로 설정한다
2 - 2)와는 다르게 Period를 1로 설정하여 1초 간격으로 GE를 적용한다
다음으로 Execute Periodic Effect on Application 옵션을 True로 설정하여 GE가 발동되면 즉시 적용한다
(해당 옵션을 False로 설정하면 GE가 발동된 후에 설정한 시간이 지나야 적용한다)

Modifier를 설정하여 Attribute 중에서 MaxMana의 값을 2초 동안 1초 간격으로 100만큼 증가시키도록 설정한다
따라서 MaxMana는 발동 즉시 + 2초 동안 1초 간격으로 100만큼 증가한다
- 최종 실행 결과
'언리얼 엔진 - 게임 프로젝트 > GAS 프레임워크 RPG 프로젝트' 카테고리의 다른 글
| GameplayEffect - 3) Infinite GameplayEffect와 GE 적용 / 제거 (0) | 2025.07.18 |
|---|---|
| GameplayEffect - 2) Stacking을 통한 중첩 Effect (0) | 2025.07.18 |
| GameplayEffect - 1) GameplayEffect란? (0) | 2025.07.13 |
| RPG 게임 UI - 최종) GetGameplayAttributeValueChangeDelegate의 사용 (0) | 2025.07.12 |
| RPG 게임 UI - 2) OverlayWidgetController 생성 및 설정 (0) | 2025.07.12 |