본문으로 건너뛰기
Unreal Engine GAS(Gameplay Ability System) 심화LESSON 45

최종 실습 3: 버프와 상태 이상 완성

난이도심화
예상 시간250분
선수지식44강의 전투 Ability 네 종

45강. 최종 실습 3: 버프와 상태 이상 완성

1. 이번 강의에서 해결할 문제​

상태 효과 하나는 쉽게 만들 수 있지만 여러 출처의 중첩, 면역, 사망 제거, UI 남은 시간, Cue 종료까지 합치면 책임이 흔들립니다. 최종 프로젝트에서는 효과별 데이터 계약과 공통 상태 표시 모델을 완성합니다.

2. 학습 목표​

3. 핵심 개념​

GE_Buff_Attack은 공격 Attribute를 수정하고 출처별 또는 대상별 중첩 정책을 가집니다. GE_Debuff_Slow는 MoveSpeed를 낮추되 최소값을 지키며, GE_Debuff_Stun은 State.CrowdControl.Stun을 부여합니다. GE_State_Invulnerable은 Tag와 면역/Execution 조건을 함께 사용합니다.

4. 구현​

상태 UI 모델
USTRUCT(BlueprintType)
struct FStatusEffectViewData
{
GENERATED_BODY()

UPROPERTY(BlueprintReadOnly) FGameplayTag StatusTag;
UPROPERTY(BlueprintReadOnly) float RemainingSeconds = 0.0f;
UPROPERTY(BlueprintReadOnly) int32 StackCount = 0;
UPROPERTY(BlueprintReadOnly) FText DisplayName;
};

UI Presenter는 GetActiveEffects 질의를 매 프레임 호출하지 않습니다. Effect 추가·제거와 Stack/시간 표시 갱신 시점에 모델을 갱신하고, 남은 시간 표시는 서버 기준 시간과 로컬 표시 계산을 조합합니다. Gameplay Cue는 Buff aura, Slow trail, Stun stars, Invulnerable shield를 표현하지만 판정에는 사용하지 않습니다.

데이터원본표현
공격력 증가Attribute Modifier버프 아이콘·Cue
이동 감속MoveSpeed Attribute이동 UI·Slow Cue
스턴Gameplay Tag count입력 차단 문구·Cue
무적Tag + 서버 Effect 조건방패 UI·Cue

5. 코드가 동작하는 이유​

각 상태의 원본과 표현을 표로 고정해 Cue 중복이나 UI 재생성이 게임 규칙에 영향을 주지 않습니다. Stack과 Duration은 Active Effect가 관리하고, Attribute Clamp와 면역은 서버의 단일 경로에서 적용됩니다.

6. 실패 사례와 해결​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

최종 실습 3: 버프와 상태 이상 완성 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“최종 실습 3: 버프와 상태 이상 완성”에서 다음 단계로 넘어가기 전에 확인할 핵심은 무엇인가요?
  2. 문제 2‘Slow 중첩으로 MoveSpeed가 음수’ 상태에 관한 “최종 실습 3: 버프와 상태 이상 완성” 본문의 설명으로 가장 알맞은 것은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

45강. 최종 실습 3: 버프와 상태 이상 완성 미완료 상태