티스토리 뷰
Gameplay Ability System - Top Down RPG / Section 9-1
Just Move 2026. 7. 2. 00:27* 번역 주의
Gameplay Abilities
1. Gameplay Ability란?
• GamePlay Ability는 게임에서 액터가 수행할 수 있는 행동이나 기술이다.
• GamePlay Ability는 UGameplayAbility를 상속한 클래스이며, 해당 Ability가 무엇을 하는지와 어떤 조건에서 사용할 수 있는지를 정의한다.
2. Gameplay Ability의 특징
비동기적 실행
• Gameplay Ability는 단순한 함수가 아니라 비동기적으로 실행되는 인스턴스 객체이다.
• 특정 시점에 활성화될 수 있다.
• 여러 단계(Multi-stage)의 작업(Task)을 수행할 수 있다.
• 이러한 작업은 일정 시간에 걸쳐 진행될 수도 있고, 그렇지 않을 수도 있다.
수행되는 작업
• 작업은 다른 작업으로 분기할 수 있다.
• 작업은 자체적으로 Gameplay Effect를 적용할 수 있다.
• 이후 배우게 될 Gameplay Cue를 실행할 수도 있다.
조건부 실행
• Gameplay Ability의 동작은 조건부일 수 있다.
• 조건은 다음과 같은 요소를 기반으로 할 수 있다.
플레이어 상호작용
환경과의 상호작용
Replication과 Prediciton 지원
• Gameplay Ability는 Gameplay Effect와 마찬가지로 Peplication과 Prediciton 기능을 기본적으로 지원한다.
3. Cost 와 CoolDown
• Gameaplay Ability에는 기본적으로 Cost와 Cooldown이라는 개념이 포함되어 있다.
Cost
• Ability를 활성화하기 위해서는 필요한 Attribute Resource가 충분히 존재해야 한다.
• 강의에서는 Mana를 Cost 자원으로 사용하여 구현한다.
• 하지만 자원(Resource)가 Mana일 필요는 없으며, 어떤 것이든 사용할 수 있다.
CoolDown
• Cooldown이 적용되면, Cooldown이 끝날 때까지 해당 Ability를 다시 활성화할 수 없다.
4. Ability Task
• Ability Task는 Gameplay Ability가 실행되는 동안 비동기 작업을 수행한다.
Delegate Broadcast
• Ability Task는 Delegate를 Broadcast하여 Ability의 실행 흐름에 영향을 줄 수 있다.
Blurprint에서의 형태
• Ability Task는 C++ 에서 사용할 수 있고, Blueprint에서 여러 개의 출력 실행 핀을 가진 특수한 Blueprint 노드 형태로 나타난다.
• 이 출력 실행 핀들은 개발자가 정의한 이벤트가 발생했을 때 Broadcast된 Delegate에 의해 실행된다.
• 이 구조를 사용하면 Blueprint에서 Ability 제어 흐름을 쉽게 구성할 수 있다.
C++의 장점
• Ability Task가 수행하는 작업은 대부분 C++에서 처리된다.
• 따라서 C++의 최적화된 성능을 그대로 활용할 수 있다.
디자이너의 Ability 설계
• Ability Task를 만들어 대부분의 작업을 C++에서 수행하도록 만들면, Ability Blueprint에서는 Gameplay Ability의 메커니즘을 유연하게 설계할 수 있다.
• 또한 C++ 코드를 다룰 수 없는 디자이너도 성능을 희생하지 않고 Ability를 보다 자유롭게 제어할 수 있다.
4. Ability Task
Ability 부여
• Gameplay Ability를 사용하려면 먼저 Ability System Component에 해당 Ability를 부여해야 한다.
Gameplay Ability Spec
• Ability가 부여되면, Gameplay Ability Spec이 생성된다.
• 이는 해당 Ability와 관련된 세부 정보를 정의한다.
Gameplay Ability
Ability 클래스
Ability 레벨
런타임에 변경 가능한 동적 정보
서버에서 Ability 부여
• Ability는 일반적으로 서버에서 부여된다.
• Ability가 부여되면 Gameplay Ability Spec이 Owning Client로 Replicate된다.
• 그 결과 Owning Client는 자신의 Gameplay Ability를 활성화할 수 있게 된다.
6. Activation
• Gameplay Ability에는 Activation이라는 개념이 존재한다.
활성 상태
• Ability는 한 번 Activate되면 다음 중 하나가 발생하기 전까지 활성 상태로 간주된다.
Ability가 종료되는 경우
Ability가 취소되는 경우
종료와 취소
• Ability는 스스로 종료할 수도 있고, 외부에서 취소될 수도 있다.
7. 강의 요약
Gameplay Ability
• Gameplay Ability는 액터가 수행할 수 있는 특정 스킬, 주문 또는 다양한 능력을 정의하는 클래스이다.
• Ability를 사용하려면 Ability System Component에 먼저 부여해야 한다.
• Ability는 일반적으로 서버에서 부여되며, Ability Spec이 생성되어 Owning Client로 Replicate된다.
• Ability를 사용하려면 먼저 Activate해야 한다.
• Activate된 Ability는 종료되거나 취소될 때까지 Active 상태를 유지한다.
• Ability에는 Cost와 Cooldown 개념이 기본적으로 포함되어 있다.
• Ability는 비동기적으로 실행될 수 있다.
• 여러 개의 Ability가 동시에 Active 상태일 수도 있다.
• Ability는 Ability Task를 실행할 수 있다.
Ability Task
• Ability Task는 비동기 작업을 수행하는 클래스이다.
• 하나의 동작(Behavior)을 하나의 클래스로 캡슐화한다.
• 각각의 Ability Task는 자신만의 특정 작업을 수행한다.
'Study > [Unreal] Udemy 강의' 카테고리의 다른 글
| Gameplay Ability System - Top Down RPG / Section 8-32 (0) | 2026.07.01 |
|---|---|
| Gameplay Ability System - Top Down RPG / Section 8-31 (0) | 2026.06.29 |
| Gameplay Ability System - Top Down RPG / Section 8-30 (0) | 2026.06.28 |
| Gameplay Ability System - Top Down RPG / Section 8-29 (0) | 2026.06.27 |
| Gameplay Ability System - Top Down RPG / Section 8-28 (0) | 2026.06.12 |
