관리 메뉴

기억을 위한 기록들

UE - GAS(Game Ability System)에 관하여 본문

UnrealEngine/UnrealEngine C++ 관련

UE - GAS(Game Ability System)에 관하여

에드윈H 2023. 3. 1. 21:39

언리얼엔진 Game Ability System이란?

게임 내에서 캐릭터나 오브젝트의 능력을 정의하고 관리하는 시스템입니다. 이 시스템은 게임의 캐릭터나 아이템 등의 능력을 모델링하고 관리하며, 이들 능력을 조작하고 적용하는 방법을 제공합니다.

 

Game Ability System은 일반적으로 세 가지 구성 요소로 구성됩니다.

첫째, 능력은 능력 구성 요소와 실행 구성 요소로 구성됩니다. 능력 구성 요소는 능력의 속성, 발동 조건, 지속 시간 등을 정의하고, 실행 구성 요소는 능력이 실행될 때 수행할 작업을 정의합니다.

둘째, 능력 시스템은 능력을 트리거하는 행위자와 대상을 식별하는 능력 시스템 트리거 구성 요소를 포함합니다.

마지막으로 능력 시스템은 능력이 적용될 때 발생하는 이벤트를 처리하는 능력 시스템 리스너 구성 요소를 제공합니다.

 

Game Ability System은 다양한 게임 장르에서 적용될 수 있으며, RPG, 액션, 슈팅 게임 등에서 특히 유용합니다. 이 시스템은 게임 디자이너와 프로그래머가 능력 시스템을 쉽게 구현하고 유지보수할 수 있도록 해주며, 게임 내 능력 시스템이 완전히 분리되어 있기 때문에 게임 엔진과 상호작용하는 다른 시스템들과 쉽게 통합될 수 있습니다.

 

Ability SystemComponent(ASC) :

- 액터 컴포넌트를 사용하여 액터가 더 넓은 GAS 프레임워크와 통신할 수 있습니다.

- GAS와 상호 작용하기를 원하는 모든 액터는 ASC를 가지거나, 다른 액터가 가진 ASC에 접근해야 한다.

- ex) 캐릭터, 파괴가능 오브젝트, 심지어 문(Door)같은 것도

 

Attributes + Attribute Sets :

- 스마트 부동 소수점 값- 현재 그리고 기본 값

 

Gameplay Ability (GA) :

- 특정 어빌리티에 대한 독립적 로직

- 게임 플레이 메카닉을 위한 모두 충족하는 논리.

- 전형적인 게임플레이 어빌리티가 아니여도 된다 (움직이거나, 열거나, 달리거나, 쫓거나등 패시브같은 반응적인 행동)

 

 

Lyra 프로젝트 참고

 

 

 GamePlay Effect(GE) :

- GA의 이펙트, attribute 들 및 태그들 수정.

- 무한,순간 혹은 지속가능한

- 데이터 오브젝트

 

 

Lyra 프로젝트 참고

 

 

GamePlay Tags

- 액터 태그(논의의 여지 없이 더 낫다!)처럼.
- 사용자의 실수를 방지하고 빠르게 선택할 수 있도록 재사용 가능합니다. 프로젝트 설정에 저장됨

- 계층적인 구조

- 좋은 "매칭" 시스템

- 매우 강력하다

- GAS 플러그인 외부에 존재해서 GAS 플러그인 없어도 사용가능함.

 

Lyra 프로젝트 참고

 

 

GamePlay Cue (GC)

- 기본적으로 FX의 래퍼(wrapper)입니다.

- 2가지 기본 모델이 제공됩니다. Burst, Actor

- 일반적으로 데디케이티드에서 생성하고 싶지 않은 모든 "클라이언트 전용" 오디오 및 비주얼 요소

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

참고:

https://github.com/tranek/GASDocumentation#concepts-as

 

https://www.youtube.com/watch?v=vknzNVYJjr4&ab_channel=UnrealEngineKR 

 

https://www.unrealengine.com/ko/tech-blog/unreal-s-gameplay-ability-system-is-at-the-heart-of-atomic-heart