1일1알

GAS (Gameplay Ability System) 개요 본문

언리얼/Gameplay Ability System

GAS (Gameplay Ability System) 개요

영춘권의달인 2024. 6. 16. 14:37

GAS에 대해 학습한 내용을 기록한 내용이고, 정확하지 않을 수 있습니다.

1. GAS란?

GAS는 액터가 소유하고 발동할 수 있는 능력을 어빌리티라는 개념으로 정의하고 다른 어빌리티 및 액터간의 인터랙션 기능을 제공하는 프레임워크이다.

GAS를 이용하여 게임에서 사용되는 스킬이나 스탯과 같은 복잡한 시스템을 범용적으로 설계할 수 있다.

GAS 플러그인은 에픽게임즈에서 개발했고 언리얼 엔진과 함께 제공된다. 파라곤, 포트나이트 등 대규모 멀티플레이게임에서도 유용하게 사용되고 있다.

언리얼 엔진5의 대표 학습용 프로젝트인 Lyra 프로젝트에서도 GAS를 활용한다.

 

2. GAS의 핵심 구성 요소

  •  Ability System Component(ASC)
    • GAS의 핵심이 되는 컴포넌트이고, GAS 시스템과 상호작용을 처리하는 액터 컴포넌트이다. GA를 사용하거나 Attribute를 가지고 있거나 GE를 받으려는 액터에는 반드시 ASC가 하나씩 붙어 있어야 한다.
  • Gameplay Tag(Tag)
    • 게임플레이 태그는 계층적으로 설계할 수 있는 Enum같은 것이고, 오브젝트의 상태를 분류하는데 유용하다. 예를들어 캐릭터가 기절했다는 상태를 설계하고 싶다면 State.Debuff.Stun 태그를 만들 수 있다. 게임플레이 태그는 GAS뿐만 아니라 다른 곳에서도 유용하게 사용될 수 있다.
  • Attribute
    •  어트리뷰트는 구조체 FGameplayAttributeData 에 정의된 float값이다. 오브젝트의 체력, 공격력 등 수치에 관련된 값들을 나타낼 수 있고, 일반적으로 GE로 수정한다. Attribute Set(어트리뷰트 셋)은 어트리뷰트들에 대한 정보들을 정의하고 관리한다.
  • Gameplay Effect(GE)
    • GE는 어빌리티가 발생될때 끼치는 영향으로, 자신 혹은 자신의 어빌리티와 연관이 있는 ASC의 액터의 속성과 태그를 변경시킬 수 있다. 피해와 치유같은 즉각적인 어트리뷰트 변화를 일으키거나 버프효과같은 상태를 적용할 수 있다.
  • Gameplay Ability(GA)
    • GA는 액터가 게임에서 할 수 있는 모든 행동, 스킬이다. 점프나 공격 등을 GA로 정의하고 각각의 GA마다 Tag를 부여하여 Tag를 사용해 활성화시킬 수 있고, 특정 Tag가 활성화되어있다면 발동을 막을 수도 있다.
  • Ability Task(AT)
    • GA는 한 프레임에서만 실행되기 때문에 한계가 있다. 시간이 지남에 따라 발생하거나 특정 시점에 실행된 델리게이트에 응답해야 할 때에는 Ability Task를 사용한다. 예를들어 점프라는 GA가 발동되었을때 Ability Task를 생성하여 착지 시점에 호출되는 델리게이트를 등록하여 착지 시점에 맞춰서 GA를 종료시킬 수 있다.
  • Gameplay Cue(GC)
    • GC는 사운드, 파티클 등 게임플레이와 관련이 없는 효과들을 실행해준다. GC에 맞는 태그를 지정해주고, GA가 발동되거나 GE가 발동되거나 할때 GC를 발생시켜서 효과를 줄 수 있다.

'언리얼 > Gameplay Ability System' 카테고리의 다른 글

Attribute  (0) 2024.07.02
Ability Task (AT)  (0) 2024.06.17
Gameplay Tags  (0) 2024.06.16
Gameplay Abilities (GA)  (0) 2024.06.16
Ability System Component (ASC)  (0) 2024.06.16