본문으로 건너뛰기
GAME DEVELOPMENT · UNREAL ENGINE 5 GAS47강 학습 가능

Unreal Engine GAS(Gameplay Ability System) 심화

스킬 클래스 사용법을 나열하지 않고 ASC의 소유권, 서버 권한 Attribute 변경, 데이터 중심 Ability·Effect, 태그 기반 상태 제어와 클라이언트 예측을 하나의 재사용 가능한 전투 시스템으로 연결합니다.

강의 수47강
난이도심화
최종 결과물서버 권한과 예측을 갖춘 2인 GAS 전투 데모
진행률을 불러오는 중...
학습 시작

과정에서 해결하는 문제​

액션 게임의 공격·스킬이 늘어나면 체력, 마나, 비용, 쿨다운, 버프, 상태 이상, 입력 차단과 시각 효과가 서로 직접 참조하기 시작합니다. 멀티플레이에서는 여기에 서버 판정, 소유 클라이언트 예측, 다른 클라이언트 표현까지 더해집니다. 이 과정은 AbilitySystemComponent를 중심으로 각 책임을 분리하고, 클라이언트가 즉각 반응하면서도 데미지·비용·쿨다운·아이템 지급의 최종 권한은 서버가 갖는 구조를 만듭니다.

GAS는 모든 작은 게임에 자동으로 필요한 기능이 아닙니다. 능력 수가 적고 상태 상호작용과 네트워크 예측이 단순하다면 일반 Component와 명시적 상태 머신이 더 작고 읽기 쉽습니다. 스킬·수치·태그·효과의 조합과 네트워크 동기화가 반복될 때 GAS의 데이터 계약과 실행 흐름이 비용을 상쇄합니다.

선수 지식​

  • Unreal Engine C++ 기초집 또는 동등한 C++ 프로젝트 경험
  • Actor, Component, UObject, Subsystem의 수명과 책임
  • Delegate와 DataAsset 기초
  • GameplayTag의 계층적 이름과 Container 개념
  • Unreal Engine 멀티플레이의 서버 권한, Ownership, Replication, RPC 기초

특히 PlayerState 기반 ASC와 Local Predicted Ability를 이해하려면 멀티플레이 과정의 Ownership, Server RPC, 이동 복제을 먼저 복습하는 것이 좋습니다.

권장 학습 환경​

  • Unreal Engine 5 계열 C++ 프로젝트와 해당 버전의 Engine Header
  • Visual Studio 2022 또는 Unreal C++를 지원하는 Rider
  • GameplayAbilities, GameplayTags, GameplayTasks Plugin을 활성화한 프로젝트
  • PIE Listen Server + Client 두 창과 서버·클라이언트 로그를 구분할 수 있는 환경
  • Git으로 변경과 검증 결과를 기록하는 별도 실습 Branch

예제는 UE 5.8 공식 문서의 개념과 API를 기준으로 작성했습니다. Gameplay Effect Component, Tag 관계 설정, Editor 메뉴와 일부 API 서명은 UE5 마이너 버전에 따라 달라질 수 있으므로 실제 프로젝트의 Engine Header와 API Reference를 최종 근거로 사용합니다.

최종 결과물​

1. Attribute와 전투 자원​

UGASAttributeSet이 Health, MaxHealth, Mana, MaxMana, AttackPower, Defense를 관리합니다. Damage는 Meta Attribute로 받아 Execution Calculation에서 계산하고, 서버가 실제 Health와 사망 상태를 확정합니다. HUD는 Attribute Delegate와 Tag Event를 구독하며 Tick Polling을 사용하지 않습니다.

2. 네 가지 핵심 Ability​

UGA_BasicAttack, UGA_Dash, UGA_FireProjectile, UGA_Heal이 공통 C++ 기반 클래스를 사용합니다. DataAsset과 Blueprint는 수치·Montage·Projectile·Cue를 조립하지만 활성화 조건, Commit, 서버 판정과 종료 책임은 C++ 경로에 남습니다.

3. Effect·Tag·Cue 기반 상태 시스템​

GE_Damage, GE_Cooldown, GE_Slow, GE_Stun과 버프·회복 Effect를 Instant, Duration, Infinite 정책에 맞게 구성합니다. State.Stunned, State.Silenced, State.Invulnerable 같은 중앙 태그가 입력과 Ability를 제어하고 Gameplay Cue는 피격·버프·스킬 표현만 담당합니다.

4. 2인 멀티플레이 전투 데모​

Ability 지급 → 입력 태그 → 예측 활성화 → 서버 타깃 검증 → Effect·Attribute 변경 → Cue 표현 → HUD 갱신을 Listen Server와 Client에서 확인합니다. 지연과 패킷 손실을 적용해 예측 실패, 보정, 중복 표현과 종료 정리를 검증합니다.

주의할 점​

  • 클라이언트 Trace·TargetData는 입력 후보이며 데미지·점수의 최종 증거가 아닙니다.
  • Attribute를 일반 멤버처럼 여기저기서 직접 수정하지 않고 서버 권한 Gameplay Effect 흐름을 사용합니다.
  • Multicast RPC와 Gameplay Cue를 체력·버프·쿨다운의 유일한 저장소로 사용하지 않습니다.
  • CommitAbility 호출 위치는 비용·쿨다운을 실제로 소비할 시점과 취소 가능 구간을 기준으로 정합니다.
  • Infinite Effect와 Delegate Handle은 적용·해제 경로를 쌍으로 관리해 Respawn과 Pawn 교체에서 누수를 막습니다.
  • GameplayTag 문자열을 호출부마다 만들지 않고 Native Tag 또는 중앙 Tag Dictionary로 관리합니다.

47강 커리큘럼​

강의주제누적 결과물
1GAS 도입 기준전투 복잡도·도입 결정표
2ASC·Ability·Attribute·Effect·Tag·Cue전체 데이터 흐름 지도
3프로젝트 구조 배치GASCombat 모듈 구조
4ASC와 InterfaceGAS Actor 기본 계약
5Character와 PlayerStateASC 소유 위치 결정
6Possession·Respawn 초기화Owner·Avatar 재연결
7AttributeSetAttribute 기본 계약
8전투 Attribute체력·마나·공격·방어
9Attribute HookClamp·Meta 처리
10사망·회복 서버 권한생존 상태 전이
11복제와 UI Delegate이벤트 기반 HUD
12전투 GameplayTag중앙 태그 사전
13계층·Query·충돌상태 관계 규칙
14Ability 생명주기활성화·종료 흐름
15Instancing PolicyAbility 상태 소유
16부여·제거·레벨서버 Ability Spec 관리
17Ability Set DataAsset초기 능력 데이터
18Enhanced Input·Input Tag입력과 Ability 연결
19Activate·Commit·End실행 책임 기준
20Cost·Cooldown자원과 재사용 시간
21Effect 수명Instant·Duration·Infinite·Periodic
22Modifier·Stack·Immunity중첩·면역 정책
23버프·디버프·상태 이상확장 가능한 상태 구조
24SetByCaller데이터 기반 Skill Spec
25MMC·Execution계산 책임 분리
26데미지 파이프라인방어력·치명타 확장
27기본 공격서버 근접 판정
28투사체·TargetData서버 명중 검증
29대시와 CharacterMovement예측 이동 연결
30Ability Task비동기 수명 관리
31타깃 Confirm·Cancel조준 상태 머신
32Gameplay Cue표현 계층 분리
33Cue 오용 방지영구 상태와 표현 구분
34복제와 Prediction Key예측 거래 추적
35Net Execution Policy기능별 실행 위치
36예측 실패·서버 보정중복 표현 디버깅
37Effect·Ability 복제 성능Replication Mode 점검
38RPC·Multicast·RepNotifyGAS와 일반 네트워크 경계
39기절·침묵·무적태그 기반 제어
40사망·부활·팀 전환Effect·Ability 정리
41GAS 디버깅 도구로그·콘솔·Debugger
42흔한 GAS 오류증상별 진단표
43실습 1Attribute·피격 시스템 완성
44실습 2네 가지 Ability 완성
45실습 3상태 이상 시스템 완성
46최종 실습2인 전투 데모
47유지보수·다음 학습도입·배포 체크리스트

전체 커리큘럼 전용 페이지 보기

공식 문서 기준​

COURSE ORIENTATION

과정 선택 안내​

학습 대상
Unreal C++와 멀티플레이 기초를 Attribute·Ability·Effect·Tag·Cue 기반 전투 시스템으로 확장하려는 학습자
선수지식
Unreal Engine C++ 입문과 서버 권한·Replication·RPC 기초
최종 결과물
서버 권한과 클라이언트 예측을 갖춘 2인 GAS 전투 데모