본문으로 건너뛰기
Unreal Engine GAS(Gameplay Ability System) 심화LESSON 25

Modifier Magnitude Calculation과 Execution Calculation

난이도심화
예상 시간170분
선수지식24강의 Effect Spec 런타임 수치

25강. Modifier Magnitude Calculation과 Execution Calculation

1. 이번 강의에서 해결할 문제​

방어력·치명타·팀 보정까지 Modifier 식 하나에 넣으면 여러 Attribute 출력과 부가 결과를 다루기 어렵습니다. 반대로 간단한 Mana Cost까지 Execution Calculation으로 만들면 데이터 흐름이 과도해집니다.

2. 학습 목표​

3. 핵심 개념​

MMC는 한 Modifier Magnitude를 계산하는 데 적합하고 Duration 중 재평가 정책과 Capture를 활용합니다. Execution은 Effect 실행 시 여러 Attribute를 읽고 여러 Output Modifier와 게임별 계산을 만들 수 있습니다. 공식 Prediction 안내처럼 Execution은 일반 Attribute Modifier와 같은 방식으로 모두 예측되지 않으므로 서버 결과를 기준으로 설계합니다.

4. 구현​

Mana Cost MMC 예시입니다.

MMC_AbilityManaCost.cpp
float UMMC_AbilityManaCost::CalculateBaseMagnitude_Implementation(
const FGameplayEffectSpec& Spec) const
{
const float Level = Spec.GetLevel();
return -FMath::Max(5.0f, 8.0f + Level * 2.0f);
}

Damage Execution은 Capture Definition을 정적 구조에 한 번 정의합니다.

ExecCalc_Damage.cpp 골격
struct FDamageCaptures
{
DECLARE_ATTRIBUTE_CAPTUREDEF(AttackPower)
DECLARE_ATTRIBUTE_CAPTUREDEF(Defense)

FDamageCaptures()
{
DEFINE_ATTRIBUTE_CAPTUREDEF(
UGASAttributeSet, AttackPower, Source, true);
DEFINE_ATTRIBUTE_CAPTUREDEF(
UGASAttributeSet, Defense, Target, false);
}
};

static const FDamageCaptures& DamageCaptures()
{
static FDamageCaptures Captures;
return Captures;
}

Snapshot true는 Spec 생성 시 Source 값을 고정하고, false는 실행 시 Target 값을 읽습니다. 어떤 시점의 Buff를 반영할지 설계 근거를 문서화합니다.

5. 코드가 동작하는 이유​

Capture Definition이 Attribute와 Source·Target, Snapshot 시점을 명시합니다. MMC는 한 Magnitude로 Effect 데이터에 재사용되고 Execution은 서버가 복합 전투 식과 여러 출력을 한 번에 확정할 수 있습니다.

6. 실패 사례와 해결​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

Modifier Magnitude Calculation과 Execution Calculation 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“Modifier Magnitude Calculation과 Execution Calculation” 실습 결과를 확인할 때 적용해야 할 설명은 무엇인가요?
  2. 문제 2“Modifier Magnitude Calculation과 Execution Calculation”의 작업 기준으로 ‘Execution 결과를 Client가 최종 확정’을 진단하거나 바로잡은 선택은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

25강. Modifier Magnitude Calculation과 Execution Calculation 미완료 상태