언리얼 엔진5 Advanced - 언리얼 게임플레이 어빌리티 시스템 개요

타입·2025년 4월 11일
0

언리얼 강의

목록 보기
38/47
post-thumbnail

언리얼 게임플레이 어빌리티 시스템 개요

게임플레이 어빌리티 시스템 관련 프로젝트

게임플레이 어빌리티 시스템(GAS) 프레임워크

액터가 소유하고 발동할 수 있는 어빌리티 및 액터 간의 인터랙션 기능을 제공하는 프레임워크

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

  • GAS 프레임워크의 장점
    • 유연성과 확장성: 다양하고 복잡한 게임 제작에 대응할 수 있도록 범용적으로 설계
    • 모듈러 시스템: 각 기능에 대한 의존성이 최소화되도록 설계
    • 네트워크 지원: 네트워크 멀티플레이어 게임에서도 활용 가능하도록 설계
    • 데이터 기반 설계: 데이터를 기반으로 동작하도록 설계
    • 완성도: 포트나이트 게임 서비스를 통해 실효성 검증
  • GAS 프레임워크의 단점
    • 배우는 학습 비용: 구성 요소가 많아서 학습하는 비용이 꽤 큼
    • 오버헤드: 작은 규모의 프로젝트에는 복잡한 구조가 오히려 부담될 수 있음

큰 규모의 RPG 및 네트워크 멀티플레이 게임을 효율적으로 만드는데 적합함

게임플레이 어빌리티 시스템의 핵심 구성 요소

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

흐름의 중심엔 AbilitySystemComponent가 존재
모든 요소를 제어 가능

Gameplay Tag 정보는 프로젝트 단위에서 모든 시스템을 감싸고 있음
로직을 전개할 때 태그를 사용하여 현재 상태를 기록/파악할 수 있음

AbilitySystemComponent을 액터에 생성
액터가 취할 액션인 Ability를 부여하여 Gameplay Ability 발동
Gameplay Effect로 자신이나 다른 대상에 영향을 줌
액터의 데이터인 Attribute Set을 변화

시간이 걸리는 작업은 Ability Task에서 처리
시각/청각적 효과는 Gameplay Cue에서 처리

샘플 프로젝트

https://github.com/ideugu/UnrealGAS1
Part2 베이스

실습 프로젝트 구성의 특징

주 게임 모듈이 아닌 보조 게임 모듈을 사용해 GAS에 관련된 모든 기능을 구현

  • ArenaBattle (주 게임 모듈)
    기본 액터, 캐릭터, PC/NPC 캐릭터
    기본 게임 및 물리 설정
  • ArenaBattleGAS (보조 게임 모듈)
    확장된 GAS 게임 모드 및 PC/NPC 캐릭터
    GAS 관련 기능
    GAS 연동 UI

Part2 및 Part3 프로젝트와 다른 점

기본적인 플레이어와 NPC만 구현되어 있음
무한 맵 관련 기능 제외함
캐릭터 레벨 적용 기능 제외함
NPC 인공지능 제외함
세부 UI 및 게임 마무리 관련 기능 제외함
네트워크 멀티플레이 관련 기능 제외함

실습 프로젝트의 진행

블루프린트가 아닌 C++을 써야하는 이유

GAS의 기본 설정은 C++에서 진행되도록 구성되어 있음
세밀한 제어는 오직 C++에서 가능함
게임플레이 어빌리티, 게임플레이 이펙트 및 장식 이펙트는 블루프린트에서 작업이 용이함
전체적인 GAS 시스템 설정을 C++로 작업하고, 블루프린트를 활용해 게임 콘텐츠를 제작

게임플레이 어빌리티 시스템을 효과적으로 학습하기 위해
C++ 프로그래밍으로 전 과정을 직접 만들어 본 후
블루프린트와 조합해 의존성을 최소화하는 것을 권장

profile
주니어 언리얼 프로그래머

0개의 댓글