
GAS와 GameplayTags를 사용한 Unreal Engine 5 스킬 시스템 아키텍처
요약
Unreal Engine 5의 GAS와 GameplayTags를 활용하여 확장 가능하고 재사용 가능한 스킬 및 상태 효과 시스템 아키텍처를 설계하는 방법을 다룹니다. C++ 기반의 핵심 로직과 블루프린트를 통한 연출 제어를 분리하여 효율적인 개발 구조를 제안합니다.
핵심 포인트
- GAS를 활용한 전투 시스템 및 AttributeSet 기반 데미지 관리
- SkillBase 클래스를 통한 공통 스킬 실행 흐름 표준화
- GameplayTag 기반의 독립적인 상태 효과(Status Effect) 시스템 구축
- C++ 핵심 로직과 블루프린트 연출 기능의 역할 분리
1. 개요 (Overview)
- 게임을 개발할 때 제가 가장 중요하게 고려한 점은 확장 가능하고 재사용 가능한 구조를 구현하는 것이었습니다.
- 따라서 이번 프로젝트에서는 Unreal Engine 5의 GAS (Gameplay Ability System)를 기반으로 한 공통 SkillBase 구조 + GameplayTag 기반 상태 효과 (Status Effect) 시스템을 설계했습니다.
- 모든 스킬은 공통
SkillBase를 기반으로 작동하며, 각 스킬은 SkillData와 GameplayTag를 통해 데이터를 전달받습니다. - 상태 효과 (Status Effect) 또한 GameplayTag를 기반으로 처리되며, 각 효과는 독립적인 효과 객체 (Effect Object)로 관리됩니다.
2. 핵심 아키텍처 (Core Architecture)
전투 시스템 아키텍처 (Combat System Architecture)
- Unreal Engine의 Gameplay Ability System (GAS)을 사용하여 전투 시스템을 설계했습니다. TurnManager가 턴 흐름을 제어하고, GameplayAbilities가 스킬 실행을 담당합니다.
- AbilitySystemComponent와 AttributeSet이 데미지 계산 및 게임플레이 상태를 관리합니다.
SkillBase 스킬 아키텍처 (SkillBase Skill Architecture)
- 모든 런타임 스킬 실행 데이터를 FCBSkillContext로 통합하였으며, 공통 스킬 실행 흐름을 처리하기 위해 UCBGA_SkillBase를 설계했습니다.
- 블루프린트 (Blueprint)는 몽타주 (Montage), 카메라, 콤보 흐름 제어를 담당하며, 핵심 기능은 C++로 구현되었습니다.
스킬 실행 흐름 (Skill Execution Flow)
SkillDataAsset → GameplayEvent → SkillContextBuilder → FCBSkillContext → UCBGA_SkillBase → ApplyTagToTarget
GameplayTag 기반 상태 효과 시스템 (GameplayTag-Based Status Effect System)
- GameplayTags와 GameplayEffects를 사용하여 데이터 주도형 (Data-driven) 상태 효과 시스템을 설계했습니다.
- SkillTagContainer가 활성화된 효과들을 관리하며, 각 효과는 UCBTagEffectBase를 상속받습니다.
상태 효과 흐름 (Status Effect Flow)
OnApplied() → OnTurnTick() → OnRemoved()
3. 결과 (Result)
- Unreal Engine의 GAS를 사용하여 턴제 스킬 전투를 구현했습니다.
- SkillBase, SkillContext, 그리고 TagEffect 시스템 간의 책임을 분리함으로써 객체 지향 아키텍처 (Object-oriented architecture)의 중요성을 배웠습니다.
- GameplayTag 기반의 상태 효과 프레임워크를 설계하고 데이터 주도형 아키텍처의 장점을 이해했습니다.
- Blueprint 중심의 시스템을 C++로 리팩토링 (Refactoring)하여 유지보수성과 협업 효율성을 향상시켰습니다.
- UML 다이어그램을 사용하여 게임플레이 아키텍처를 시각화하고 팀원들과 공유했습니다.
- 브랜치 전략 및 Unreal 에셋 충돌 해결을 포함하여 Git Fork를 활용한 협업 워크플로우 경험을 쌓았습니다.
스킬 플레이 YouTube 재생목록
Github 저장소
Github - CHronoBreak
- 규정에 따라 소스 코드는 공개할 수 없습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기

