Post

언리얼 GAS 사용법 2

GAS 사용 범주

언리얼 GAS 사용법 2

GAS 사용 범주


ASC

GAS 기능 하나라도 쓰는 액터

사용:

  • 플레이어, 적, 보스: 항상
  • 플랫폼, 트랩: GE를 주고받을 때

불필요:

  • 플랫폼, 트랩: GE를 주기만 할 때
  • 순수 환경 오브젝트

AttributeSet

수치로 관리되는 상태가 있을 때

사용:

  • HP, 데미지, 스테미너

불필요:

  • 쿨타임, 지속시간 상태 플래그: 태그로 처리
  • 플랫폼, 발사체

GameplayEffect

상태 변경이 필요할 때

사용:

  • 힐/데미지 적용
  • 버프/디버프
  • 스턴
  • 쿨타임

주의:

  • 즉각적인 로직 처리는 함수로 호출하는 게 나을 수 있음

GameplayAbility

플레이어/AI가 발동시키는 행동

사용:

  • 공격, 스킬, 점프, 대시 (입력에 바인딩)
  • 마나(비용) 관리

불필요:

  • 일방적으로 가해지는 효과: GE에서 직접 Apply
  • 단순 환경 트리거: 함수 호출하는 게 나을 수 있음

GAS 용례


체력 (HP)

GAS로 구현하는 게 표준.

구성역할
UAttributeSetHP, MaxHP 수치 보관
UGameplayEffect데미지/힐 적용
ASC어트리뷰트/이펙트 관리

무기 장착 / 방어구 장착

장착 자체(소켓에 메시 붙이기, 인벤토리 슬롯 관리)는 일반 Actor/Component 로직.

GAS 개입 시점:

시점GAS 역할
장착 완료 후무기/방어구가 주는 패시브 스탯 → GE로 어트리뷰트 수치 변경
장착 완료 후무기 고유 스킬 해금 → GA 부여 (GiveAbility)
해제 시해당 GE 제거, GA 회수

무기 스왑

스왑 자체는 일반 로직. 단, 아래 조건 중 하나라도 해당하면 GA로 묶는 게 맞다.

GA로 묶어야 하는 경우:

  • 스왑 중 다른 행동 차단 필요 (태그로 Ability.Swap 중 공격/대시 블록)
  • 스왑 쿨타임 관리
  • 스왑 중 피격 시 캔슬 조건
  • 스왑 애니메이션 완료 후 장착 확정 (AbilityTask: PlayMontageAndWait)
  • 네트워크 예측 필요

단순 인벤토리 슬롯 교체만이면 GA 불필요.


공격

공격에 엮이는 것들 때문에 GAS가 필요하다.

단순 히트박스 판정만 있으면 GAS 필요 없음.

실제 공격에 붙는 것들:

  • 공격 중 다른 스킬 차단 (태그)
  • 쿨타임 관리
  • 히트 시 데미지 → 어트리뷰트 수치 변경 (GE)
  • 버프/디버프 적용 (스턴, 슬로우 등)
  • 콤보/상태 조건 (HP 50% 이하일 때만 발동 등)
  • 네트워크 예측 (Prediction Key)

GAS = “조건 있는 행동 + 그 결과로 수치/상태 변경”을 다루는 시스템 → 공격이 그 정의에 딱 맞는다.


크래프팅

오버엔지니어링. GAS가 풀려는 문제와 결이 다르다.

크래프팅의 본질: 재료 소모 → 아이템 생성 = 인벤토리 데이터 조작. GAS는 인벤토리 개념 자체가 없음.

GAS 개입이 정당한 케이스:

  • 크래프팅 행동에 채널링 시간, 피격 중단, 캔슬 조건이 있을 때 → GA로 묶는 것만

크래프팅 시스템 본체는 별도 시스템으로 구현.

This post is licensed under CC BY 4.0 by the author.