본문 바로가기
Unreal 게임 개발/Unreal 강의 개인 정리

Unreal GAS (Gameplay Ablility System)

by daisy0461 2024. 4. 26.

GAS

GAS: 액터가 소유하고 발동할 수 있는 어빌리티(이동, 점프, 스킬 등) 및 액터 간의 인터랙션 기능을 제공하는 프레임워크

RPG, 액션 어드벤처, MOBA 장르의 제작을 쉽게하는 도구이며 대부분의 게임 제작에 활용 가능

 

GAS 장점

  1. 유연성과 확장성 : 다양하고 복잡한 게임 제작에 대응할 수 있도록 설계
  2. 모듈러 시스템 : 각 기능에 대해 의존성이 최소화되도록 설계
  3. 네트워크 지원 : 네트워크 멀티플레이 게임에도 활용 가능
  4. 데이터 기반 설계 : 데이터를 기반으로 동작하도록 설계
  5. 완성도 : 포트나이트 게임 서비스를 통해 실효성 검증

 

GAS 단점

  1. 배우는 학습 비용 : 구성 요소가 많아서 학습하는 비용이 크다.
  2. 오버헤드 : 작은 규모의 프로젝트에는 오히려 복잡한 구조가 부담될 수 있다.

Unreal GAS 핵심요소

  1. 어빌리티 시스템 컴포넌트 (ASC)
    GAS를 관리하고 처리하는 액터의 중앙 처리장치이다.
  2. 게임플레이 태그 (Tag)
    현재 프로젝트 레벨에서 액터들의 상태나 행동 관리에 사용된다.
  3. 게임플레이 어빌리티 (GA)
    모든 Skill, Action이 발동해서 시작된다.
  4. 게임플레이 이펙트 (GE)
    이펙트는 특수효과가 아닌 영향이라는 의미로 사용되며 GA가 발동되면 행동에 대한 결과를 시스템에 알려준다.
    주로 캐릭터 스탯이나 데이터에 영향을 미치게 된다.
  5. 어트리뷰트 (Attribute)
    GAS에선 캐릭터 스탯 같은 데이터를 어트리뷰트라고 한다.

GAS 기본 흐름

모든 흐름의 중심에는 ASC가 있다. ASC는 점선으로 이어진 것을 확인하면 알겠지만 모든 시스템을 제어할 수 있다.

Gameplay Tag는 프로젝트 단위에서 모든 시스템을 감싸고 로직을 전개할 때 Tag를 사용해서 기록하고 파악 가능하다.

위 흐름 중에서 일부만 따로 정리해보자면

굵은 붉은 선부터 설명하면 

순서대로 정리하자면

  1. ASC를 액터에 생성해준다. 이 ASC에 액터가 취할 Ability를 부여하면 된다.
  2. 캐릭터의 Ability가 발동이 되면서 GA가 동작한다.
  3. 이 Ability 액션에 따라서 주위 또는 액터에게 영향을 미치는 작업이 동작한다. 즉, GE가 동작한다.
  4. GE가 발동하면 캐릭터의 데이터(ex. 스탯)를 관리하는 어트리뷰트에 영향을 미치게 된다.

우리가 Ability 액션을 발동시킬 때 애니매이션과 결합을 한다면 일정 시간이 필요하게 되는데

이 시간이 걸리는 작업은 Task라는 개념으로 단위화시켜 Ability Task에서 원하는 액션을 제작 가능하다.

GE에서 영향이 발생하면 오로라나 청각효과를 보여주는 것을 GAS에선 Cue라고 한다.

일반적으로 Effect라고 부르는 효과를 GAS에서 Cue라고 부른다고 이해하면 된다.

'Unreal 게임 개발 > Unreal 강의 개인 정리' 카테고리의 다른 글

Unreal Build System  (1) 2024.04.14
Unreal Package & Asset  (0) 2024.01.12
Unreal 직렬화  (0) 2024.01.08
Unreal 메모리 관리 (GC)  (0) 2024.01.03
Unreal Struct & Map  (0) 2024.01.03