0. 개요
이전 포스트에서 메타 속성을 이용하여 데미지 계산식을 변경했다.
이제 게임플레이 이펙트의 Magnitude의 Set by Caller 설정을 사용하여 2차 속성들의 관계에 의한 데미지를 반영하도록 한다.
1. 호출자에 의한 크기 계산 - Set by Caller Magnitude
기본적으로 호출자는 게임플레이 어빌리티이며, 게임플레이 이펙트 스펙을 생성한 C++ 코드 또는 블루프린트에 의해 값이 정해진다.
태그를 이용하여 데미지를 전달하는 방법을 사용한다.
(1) 게임플레이 태그 생성 - AuraGameplayTags
// 데미지
FGameplayTag Damage;
// 데미지
GameplayTags.Damage = UGameplayTagsManager::Get().AddNativeGameplayTag(
FName("Damage"),
FString("Damage")
);
(2) 게임플레이 어빌리티 - AuraProjectileSpell
변경하고자 하는 데미지는 파이어볼트의 데미지이므로 해당 어빌리티에 코드를 작성한다.
// 데미지 Set by Caller, 싱글톤, 태그-데미지 쌍
FAuraGameplayTags GameplayTags = FAuraGameplayTags::Get();
UAbilitySystemBlueprintLibrary::AssignTagSetByCallerMagnitude(SpecHandle, GameplayTags.Damage, 50.f);
Projectile->DamageEffectSpecHandle = SpecHandle;
Projectile->FinishSpawning(SpawnTransform);
}
}
태그의 싱글톤 객체를 가져와 게임플레이 스펙 핸들에 태그와 데미지 쌍을 부여한다.
(3) 게임플레이 이펙트 수정 - GE_Damage
Magnitude를 Set by Caller로 지정하고 데이터 태그를 데미지로 지정한다.
'UE 5 스터디 > Gameplay Ability System(GAS)' 카테고리의 다른 글
11-4. 몬스터 - (1) 피격에 대한 반응 - 게임플레이 어빌리티 생성 (0) | 2024.12.18 |
---|---|
11-3. 게임플레이 어빌리티 - (4) 어빌리티 레벨에 따른 데미지 적용 (0) | 2024.12.18 |
11-1. 메타 속성(Meta Attributes) - 데미지 계산 (0) | 2024.12.18 |
10-4. 기본 속성 값 적용하기 (0) | 2024.12.17 |
10-3. 게임플레이 이펙트 - (6) 커브 테이블(Curve Table)에 따른 수정자 값 적용, CSV 및 JSON 적용 (0) | 2024.12.17 |