-
[Unreal Engine] GamePlay Ability System #1 Setup GAS2024년 05월 07일
- 유니얼
-
작성자
-
2024.05.07.:15
728x90개요
Unreal Engine의 Gameplay Ability System은 RPG나 MOBA 같은 게임에서 볼 수 있는 다양한 능력과 속성을 구축하기 위한 유연한 프레임워크입니다. 이 시스템을 사용하여 캐릭터가 사용할 수 있는 다양한 액티브 능력과 패시브 능력, 상태 효과를 구현할 수 있으며, "쿨다운" 타이머나 리소스 비용을 통해 능력의 사용을 조절할 수 있습니다. 또한, 능력의 레벨을 변경하거나 파티클, 사운드 효과 등을 활성화할 수 있습니다. 이 글에서는 Unreal Engine의 Gameplay Ability System을 사용하여 게임 내 능력을 설계하고 구현하는 방법을 소개합니다.
Unreal Engine 공식 설명문서 링크
https://docs.unrealengine.com/4.27/en-US/InteractiveExperiences/GameplayAbilitySystem/
Gameplay Abilities, Tasks, Attributes, and Effects
Gameplay Ability System의 핵심 구성 요소는 다음과 같습니다:
Gameplay Abilities
UGameplayAbility 클래스의 자식으로 구현되며, C++ 코드나 Blueprint 스크립트를 통해 능력이 수행하는 작업을 정의합니다. 이 클래스는 능력의 복제 및 네트워킹 방식을 설정하는 데 사용됩니다.
Ability Tasks
능력의 로직 중 비동기적인 작업을 처리하는 UAbilityTask 클래스에서 파생된 작업입니다. 예를 들어, 목표를 요구하는 능력은 목표를 확인하거나 능력을 취소하는 델리게이트를 호출할 수 있습니다.
Gameplay Attributes
FGameplayAttribute 구조체에 저장된 부동 소수점 값으로, 캐릭터의 건강, 힘, 점프 높이, 공격 속도 등과 같은 게임 내 속성에 영향을 미칩니다.
Gameplay Effects
Gameplay Attributes를 즉시 또는 시간이 지남에 따라 변경하는 방법을 제공합니다. 예를 들어, 주문 시 마나를 소모하거나, "달리기" 능력 활성화 시 이동 속도를 증가시키거나, 치유약의 효과로 점진적으로 건강을 회복시킵니다.
System Setup
Gameplay Ability System은 플러그인으로 제공되므로 사용하기 위해서는 활성화가 필요합니다. 설정 방법은 다음과 같습니다:
1, 플러그인 활성화:
Edit -> Plugins 창에서 Gameplay Ability System 플러그인을 활성화합니다.
1, 모듈 추가:
프로젝트의 "(ProjectName).Build.cs" 파일에 "GameplayAbilities", "GameplayTags", "GameplayTasks"를 PublicDependencyModuleNames에 추가합니다.
3, 프로젝트 파일 새로 고침/재생성
4, TargetData 초기화
언리얼 엔진 4.24와 5.2 사이에서는 UAbilitySystemGlobals::Get().InitGlobalData()를 호출하여 TargetData를 초기화해야 합니다. 그렇지 않으면 관련 오류가 발생하고 클라이언트가 서버와의 연결이 끊길 수 있습니다. 이 함수는 프로젝트에서 한 번만 호출하면 됩니다. 이 블로그 글에서는 UDemoAssetManager::StartInitialLoading()에 추가했습니다. 5.3부터는 이 작업이 자동으로 수행됩니다.
만약 "Hello World" 가 출력이 안되면 Project Settings > Engine - General Settings > Default Classes > Asset Manager Class > DemoAssetManager으로 설정합니다.
The Ability System Component
능력 시스템 컴포넌트는 캐릭터가 Gameplay Ability System을 사용하는 주요 인터페이스입니다. 이 컴포넌트는 Gameplay Attributes를 관리하고, Gameplay Events를 실행하며, Gameplay Abilities를 저장하고, 플레이어 입력을 능력 활성화, 확인 및 취소 명령에 바인딩하는 기능을 합니다.
결론
Gameplay Ability System은 Unreal Engine을 사용하여 복잡한 능력과 게임 플레이 메커니즘을 구현할 때 강력한 도구를 제공합니다. 이 시스템을 통해 개발자는 게임의 다양한 요소를 효과적으로 네트워킹하고 관리할 수 있으며, 플레이어에게 독창적이고 매력적인 게임 경험을 제공할 수 있습니다. 이 프레임워크의 유연성과 확장성은 개발자가 모든 현대 RPG 또는 MOBA 타이틀에서 볼 수 있는 복잡한 능력을 구현할 수 있게 해줍니다.
반응형다음글이전글이전 글이 없습니다.댓글