기본 공격은 입력이 아니라 권한 있는 Effect 적용으로 끝난다

Ability는 타이밍을 조율하고, Effect는 값을 바꾸며, AttributeSet은 상태를 보관합니다. 서버 확정 경계를 흐리지 않아야 예측과 복제가 맞습니다.

ASCOwner / AvatarActor Info 초기화
GAGA_MeleeAttack실행·취소·Task
DATAAttributeSet + GEHealth 저장·변경
1 · SERVER

Give Ability

권한에서 Ability Spec을 ASC에 부여

2 · CLIENT

Activate request

입력 태그로 활성화 요청·예측

3 · ABILITY

Commit + Task

비용·쿨다운 확인 후 몽타주 시작

4 · HIT WINDOW

Target data

게임플레이 이벤트에서 대상 전달

5 · SERVER

Apply GE Spec

GE_Damage로 대상 Health 변경·복제

Attribute 정의UAttributeSet과 FGameplayAttributeData는 네이티브 코드 기준
Give Ability비권한 호출은 무시되므로 서버에서 부여
Effect 런타임에셋을 바꾸지 말고 GameplayEffectSpec에 값 전달
종료 대칭완료·취소·실패 모든 경로에서 End Ability