본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 05. 25. 18:36

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 재생목록

YouTubePlaylist

Github 저장소

Github - CHronoBreak
- 규정에 따라 소스 코드는 공개할 수 없습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0