Modifier Magnitude Calculation과 Execution Calculation
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 예시입니다.
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을 정적 구조에 한 번 정의합니다.
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. 핵심 요약
Modifier Magnitude Calculation과 Execution Calculation 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.