Featured image of post 언리얼 GAS 개요

언리얼 GAS 개요

이득우 님의 강의다른 개발자가 정리해놓은 문서를 보고 정리한 내용입니다.

자세하고 정확한 내용은 위 링크를 참조하세요

시리즈

GAS 기초

GAS 캐릭터 제작 기초

어트리뷰트와 게임플레이 이펙트

  • 언리얼 GAS 캐릭터 어트리뷰트
  • 언리얼 GAS 게임플레이 이펙트
  • 언리얼 GAS 어트리뷰트와 UI 연동

GAS의 활용

  • 언리얼 GAS 아이템 상자 구현
  • 언리얼 GAS 광역 스킬 구현

게임플레이 어빌리티 시스템

  • 액터의 어빌리티 및 어빌리티를 통한 액터 간 상호작용 기능을 제공하는 프레임워크
  • 장점
    • 유연성, 확장성 : 다양하고 복잡한 게임 제작에 쉽게 활용할 수 있다.
    • 모듈러 시스템 : 각 기능에 대한 의존성 최소화
    • 네트워크 지원
    • 데이터 기반 설계
    • 완성도 : 포트나이트 등의 게임이 이미 이를 활용하고 있음
  • 단점
    • 학습 비용
    • 소규모 프로젝트에서의 오버헤드

큰 규모의 RPG 및 멀티플레이 게임을 만들기에 적합함

구성 요소

gas1.png

  • 게임플레이 어빌리티 : 비용 및 쿨타임(optional) 기반의 캐릭터 어빌리티 구현
  • 어트리뷰트 : 액터의 특성 조작
  • 게임플레이 이펙트 : 어빌리티 발동에 따른 액터의 상태 변경
  • 게임플레이 태그 : 액터에 대한 태그 지정
  • 게임플레이 큐 : 시청각효과
  • 위 모든 것들에 대한 레플리케이션

gas1.png

멀티플레이 게임에서의 GAS

GAS 플러그인은 다음과 같은 client-side-prediction(서버의 허가 없이 어빌리티 발동 및 이펙트를 적용하는 것)을 지원한다.

  • 어빌리티 발동
  • 애니메이션 몽타주 재생
  • 어트리뷰트 변경
  • 게임플레이 태그 지정
  • 게임플레이 큐 실행
  • CharacterMovementComponent와 연결된 RootMotionSource functions를 통한 움직임 조작

블루프린트 vs C++

GAS는 cpp을 사용하여 구현되어야 하지만, GameplayAbilities와 GameplayEffects에 한하여 블루프린트로 구현이 가능하다.