Skip to main content
Summary

Gameplay Tags 가이드

Unreal Engine 5 빠른 참조 가이드


1. 게임플레이 태그란?

Gameplay Tags는 언리얼 엔진에서 계층 구조로 관리되는 문자열 식별자 시스템입니다.
단순한 bool 플래그나 enum 대신 유연하고 확장 가능한 방식으로 게임 상태, 능력, 속성 등을 분류할 수 있습니다.

핵심 특징

  • 점(.) 구분자로 계층 구조 표현: Character.State.Jumping

  • Blueprint와 C++ 모두에서 사용 가능

  • 런타임 비교 비용이 낮음 (FName 기반)

  • 프로젝트 설정 또는 .ini 파일로 중앙 관리


2. 태그 추가 방법

방법 A — 프로젝트 설정 (권장)

  1. 편집 → 프로젝트 설정 → GameplayTags

  2. + 버튼으로 태그 추가

방법 B — 태그 매니저

  1. 도구(Tools) → 게임플레이 태그 매니저(Gameplay Tag Manager)

  2. 새 태그 추가 클릭

방법 C — .ini 직접 편집

Config/DefaultGameplayTags.ini 파일에 직접 작성:

[/Script/GameplayTags.GameplayTagsSettings]
+GameplayTagList=(Tag="Character.State.Jumping",DevComment="점프 상태")
+GameplayTagList=(Tag="Character.State.Running",DevComment="달리기 상태")
+GameplayTagList=(Tag="Ability.Attack.Melee",DevComment="근접 공격")

팀 프로젝트에서는 .ini 방식이 Git 버전 관리에 유리합니다.


3. 태그 네이밍 규칙

계층 구조를 활용해 일관성 있게 관리하세요.

카테고리예시 태그설명
캐릭터 상태Character.State.Idle / Jumping / Dead캐릭터의 현재 행동 상태
능력Ability.Attack.Melee / Ability.Skill.Dash게임플레이 어빌리티 분류
버프/디버프Effect.Buff.Haste / Effect.Debuff.Slow상태 효과 식별
UIUI.Menu.Main / UI.HUD.MinimapUI 상태 및 화면 분류
팀/진영Team.Player / Team.Enemy팀 식별 태그

가능한 한 3단계 이하 계층으로 유지하면 관리가 쉽습니다.


4. Blueprint에서 사용하기

노드설명
Has Tag컨테이너에 특정 태그가 있는지 확인
Has Any Tags지정 태그 중 하나라도 있으면 true
Has All Tags지정 태그가 모두 있어야 true
Add Tag런타임에 태그 컨테이너에 태그 추가
Remove Tag런타임에 태그 컨테이너에서 태그 제거

5. C++에서 사용하기

헤더 포함

#include "GameplayTagContainer.h"

변수 선언

// 단일 태그
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FGameplayTag MyTag;

// 복수 태그 컨테이너
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FGameplayTagContainer MyTagContainer;

태그 요청 및 비교

// 태그 요청
FGameplayTag Tag = FGameplayTag::RequestGameplayTag(FName("Character.State.Jumping"));

// 단일 태그 확인
if (TagContainer.HasTag(Tag))
{
    // 태그 보유 중
}

// 태그 추가 / 제거
TagContainer.AddTag(Tag);
TagContainer.RemoveTag(Tag);

6. GAS (Gameplay Ability System)와의 연계

GAS 태그 속성역할
Ability Tags어빌리티 자체를 식별하는 태그
Cancel Abilities with Tag이 태그를 가진 어빌리티를 자동 취소
Block Abilities with Tag이 태그를 가진 어빌리티 실행 차단
Activation Required Tags어빌리티 발동에 필요한 태그 조건
Activation Blocked Tags존재 시 어빌리티 발동을 막는 태그

7. 실무 팁

오타 방지 — Native Gameplay Tag 사용

태그 이름에 오타가 있어도 컴파일 에러가 나지 않습니다.
C++ 전역 변수 방식을 사용하면 오타를 방지할 수 있습니다.

// 헤더에 선언
UE_DECLARE_GAMEPLAY_TAG_EXTERN(TAG_Character_State_Jumping)

// .cpp에 정의
UE_DEFINE_GAMEPLAY_TAG(TAG_Character_State_Jumping, "Character.State.Jumping")

// 사용
TagContainer.HasTag(TAG_Character_State_Jumping);

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기