역량강화 분반 - 챌린지 - GAS
GAS
Gameplay Ability System은
👉 능력(스킬), 속성(체력, 마나 등), 효과(버프/디버프) 를 데이터 기반 + 네트워크 친화적으로 관리하는 언리얼 공식 프레임워크
첫번째로 언리얼 엔진 GameplayTags를 알아보겠습니다.
게임을 제작할 때 캐릭터의 상태를 관리해야합니다.
bool bIsJumping; 와 같이 상태를 bool을 통해 관리하게 되면 🤯🤯
이 때 사용하는 것이
GameplayTags!
GameplayTags = 계층적 태그 시스템
▷ 점(.)으로 구분된 계층적 문자열 태그 시스템
📌특징
- FName 기반 (경량, 빠름)
- 에디터에서 관리 가능
- 네트워크 복제 자동
Tag 구조
GameplayTagContainer는 Tag들의 집합
// C++ 예시 (참고용)
FGameplayTagContainer CharacterTags;
// Tag 추가
CharacterTags.AddTag(FGameplayTag::RequestGameplayTag("Character.State.Jumping"));
// Tag 제거
CharacterTags.RemoveTag(FGameplayTag::RequestGameplayTag("Character.State.Jumping"));
// Tag 확인
bool bIsJumping = CharacterTags.HasTag(FGameplayTag::RequestGameplayTag("Character.State.Jumping"));
Blueprint에서는?

Tag Query
복잡한 조건도 가능
Query: "Character.State.Attacking이 있으면서, Character.Status.Stunned가 없으면"

계층 구조
"Character.State.Attacking"
- 전체 이름: Character.State.Attacking
- 부모: Character.State
- 최상위 부모: Character
▷ 부모 Tag로 그룹 검색이 가능하다!
GameplayTags 플러그인 활성화
- Edit → Plugins
- 검색창에 Gameplay Tags 입력 → GameplayTagsEditor 플러그인 확인

Tag 생성
방법 1: Project Settings에서 생성
- Project Settings → GameplayTags 섹션
- Gameplay Tags → + 버튼 클릭
- Add New Tag 선택
- Tag Name: Character.State.Jumping 입력
- Comment: 캐릭터가 점프 중 (선택)
- Add Tag
- Save
방법 2: INI 파일 직접 수정
파일 위치: Config/DefaultGameplayTags.ini
[/Script/GameplayTags.GameplayTagsSettings]
+GameplayTagList=(Tag="Character.State.Jumping",DevComment="점프 중 상태")
Tag 명명 규칙
❗Epic 권장 명명 규칙카테고리.서브카테고리.구체적이름
좋은 예
- Character.State.Jumping
- Combat.Window.Combo
- Ability.Input.LightAttack
나쁜 예
- Jumping (너무 짧음, 카테고리 없음)
- Character_State_Jumping (언더스코어 대신 점 사용)
- character.state.jumping (소문자, 대문자 섞어 쓰기)
💡Tip
일관성이 중요! 프로젝트 전체에서 같은 규칙 사용
응용
1. 공격 상태 관리
"Character.State.Attacking" Tag 추가
↓
공격 중엔 점프 불가
2. 무적 상태
"Character.Status.Invincible" Tag 추가
↓
데미지 계산 시 Tag 체크
↓
무적이면 데미지 무시
3. 콤보 윈도우
"Combat.Window.Combo" Tag 추가
↓
윈도우 열려있을 때만 다음 공격 가능
4. AI 상태 관리
"AI.State.Chasing" Tag
↓
StateTree 조건으로 사용
'내배캠Unreal_TIL > UE' 카테고리의 다른 글
| [TIL] 2026-01-23 | 캐릭터 에셋 끄적거리기, 리깅이 안되어 있을 때 (4) | 2026.01.23 |
|---|---|
| [TIL] 2026-01-22 | Automata, State Machine (0) | 2026.01.22 |
| [TIL] 2026-01-21 | UE 게임 기초 시스템 구현 (0) | 2026.01.21 |
| [TIL] 2026-01-20 | 과제 6에 타이머로 자동문 추가 (2) | 2026.01.20 |
| [TIL] 2026-01-19 | UE 아이템 시스템 구현하기 (2), Timer, SpawnActor (0) | 2026.01.19 |