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

Gameplay Cue를 상태 복제로 사용하면 안 되는 이유

난이도심화
예상 시간165분
선수지식32강의 Gameplay Cue

33강. Gameplay Cue를 상태 복제로 사용하면 안 되는 이유

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

Cue가 모든 클라이언트에 보인다는 이유로 스턴·무적·체력 상태를 Cue 실행 여부로 판단하면 늦게 들어온 플레이어, 패킷 유실, Cue 재생 실패에서 게임 규칙이 달라집니다. 표현 이벤트와 지속 상태에는 서로 다른 전달 보장이 필요합니다.

2. 학습 목표​

3. 핵심 개념​

체력과 점수는 Attribute 또는 복제 변수, 스턴·무적은 활성 Effect와 Gameplay Tag가 원본입니다. Cue는 이 상태를 관찰해 표현할 뿐입니다. 일회성 Cue나 Multicast는 지속 상태의 현재값을 새 클라이언트에 재구성해 주지 못합니다.

4. 구현​

잘못된 판정
void AMyCharacter::OnStunCueStarted()
{
bCanMove = false; // Cue 수신 여부가 게임 규칙을 결정하면 안 됩니다.
}
상태 기반 판정과 표현
bool UCombatStateComponent::CanIssueMove() const
{
return ASC && !ASC->HasMatchingGameplayTag(TAG_State_Stunned);
}

void UCombatStateComponent::BindStatePresentation()
{
ASC->RegisterGameplayTagEvent(TAG_State_Stunned)
.AddUObject(this, &ThisClass::HandleStunTagChanged);
}

void UCombatStateComponent::HandleStunTagChanged(
const FGameplayTag, int32 NewCount)
{
OnStunPresentationChanged.Broadcast(NewCount > 0);
}

UI와 애니메이션은 Tag count 또는 Attribute change delegate에서 현재 상태를 다시 그릴 수 있어야 합니다. Cue는 같은 예측 표현과 서버 확정 표현이 겹쳐도 폭발하지 않도록 중복 안전하게 구성합니다.

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

ASC가 복제한 Effect·Tag·Attribute는 새 관찰자가 현재 상태를 받을 수 있습니다. 프레젠테이션은 원본 상태를 다시 읽으므로 Cue 한 번을 놓쳐도 다음 상태 갱신에서 회복됩니다. 서버는 Cue 재생 여부와 상관없이 동일한 판정을 유지합니다.

6. 실패 사례와 해결​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

Gameplay Cue를 상태 복제로 사용하면 안 되는 이유 미니 퀴즈

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

0 / 2
  1. 문제 1“Gameplay Cue를 상태 복제로 사용하면 안 되는 이유” 실습 결과를 해석하는 올바른 기준은 무엇인가요?
  2. 문제 2‘Multicast 한 번으로 버프 유지’ 실수를 판단할 때 “Gameplay Cue를 상태 복제로 사용하면 안 되는 이유” 강의가 제시한 기준은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

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

33강. Gameplay Cue를 상태 복제로 사용하면 안 되는 이유 미완료 상태