9{
10
11#if WITH_EDITOR
12
13 if (!Montage)
14 {
15 return;
16 }
17 bool bIsModified = false;
18
19 for (FAnimNotifyEvent& NotifyEvent : Montage->Notifies)
20 {
21 if (UAnimNotify_PlayNiagaraEffect* NiagaraNotify = Cast<UAnimNotify_PlayNiagaraEffect>(NotifyEvent.Notify))
22 {
23 if (NiagaraNotify->Template == nullptr)
24 {
25 FString AnimName = Montage->GetName();
26 FString BaseName = AnimName.Replace(TEXT("AM_"), TEXT(""));
27 FString VFXName = FString::Printf(TEXT("NS_%s"), *BaseName);
28
29 FString AssetPath = FString::Printf(TEXT("/Game/CK_UE/Graphic/VFX/%s/%s.%s"), *BaseName, *VFXName, *VFXName);
30
31 UNiagaraSystem* LoadedVFX = Cast<UNiagaraSystem>(StaticLoadObject(UNiagaraSystem::StaticClass(), nullptr, *AssetPath));
32 if (LoadedVFX)
33 {
34 NiagaraNotify->Template = LoadedVFX;
35 bIsModified = true;
36 LOG_WARNING(LogCK,
"OO [%s] 빈칸에 %s 자동 할당 완료!", *AnimName, *VFXName);
37 }
38 else
39 {
40 LOG_WARNING(LogCK,
"XX [%s] 이펙트가 누락되었습니다. 경로(%s)에 에셋이 있는지 확인하세요.", *AnimName, *AssetPath);
41 }
42 }
43 }
44 }
45
46
47 if (bIsModified)
48 {
49 Montage->MarkPackageDirty();
50 }
51#endif
52}
#define LOG_WARNING(Category, Format,...)
Definition CK_UE.h:31