Gameplay Effect란?
- Gameplay Effect 는 Unreal Engine의 Gameplay Ability System (GAS)에서 사용되는 객체로, 게임 속 속성(Attribute)과 상태(Gameplay Tag)에 영향을 주는 강력하고 유연한 시스템이다.
- 타입:
UGameplayEffect 클래스 기반.
- 역할:
- Attributes 변경: 예) 체력, 스태미나, 마나.
- Gameplay Tags 추가/제거: 예) "Frozen", "Burning".
- Abilities 부여: 특정 조건에서 능력을 캐릭터에게 제공.
- 특징:
- Data-Only 객체로, 로직이 아닌 데이터로 동작.
- Blueprint 또는 에디터에서 생성된 데이터로 사용.
- 확장성 높은 시스템 설계.
Gameplay Effect의 주요 개념
1. Modifiers
Modifiers는 Attributes를 변경하는 기본적인 구성 요소이다.
Modifier Operation Types
- Attributes 값을 연산 방식에 따라 수정:
- Add:
- 지정된
magnitude 값을 기존 값에 더함.
- 음수 값을 사용하면 감산 효과.
- 예:
Health += 10.
- Multiply:
- 기존 값을
magnitude로 곱함.
- 예:
Health *= 1.5.
- Divide:
- 기존 값을
magnitude로 나눔.
- 예:
Health /= 2.
- Override:
- 기존 값을
magnitude로 대체.
- 예:
Health = 100.
Modifier Magnitude (크기 계산)
Modifier는 Attribute를 변경하기 위해*magnitude(값)를 필요로 하며, 다양한 계산 방식으로 정의됨.
- Scalable Float:
- 고정된 값.
Gameplay Effect Level에 따라 동적으로 조정 가능.
- 예:
10 * Level.
- Attribute-Based:
- 다른 Attribute 값을 기반으로 계산.
- 예: 플레이어
Health += Strength.
- 커스터마이징 가능: 예)
Health += Strength * 2.
- Custom Calculation Class:
- Modifier Magnitude Calculation (MMC) 클래스 사용.
- 여러 값(Attributes, 변수)을 기반으로 복잡한 계산 수행.
- 예:
Health += (Strength + Agility) * 3.
- Set By Caller:
- 코드 실행 시 동적으로 값을 전달.
- 예: 특정 상황에서
magnitude 값을 설정.
- 사용 사례: 무기 데미지 값.
2. Execution (Custom Execution)
Execution은 하나 이상의 Attribute를 동시에 변경하거나, 복잡한 연산을 처리하기 위한 방법입니다.