
Trail 용 Custom AnimNotify State 제작
각 무기마다 Trail 이 실행될 Socket 생성 후 지정 필요하여 무기 생성 시마다 작업이 반복됐습니다.
초기 Weapon 블루프린트에서 Trace를 위해 설정하는 SceneComponent(Start, End)를 재사용했습니다. Combat Interface 의 활용으로 다른 헤더파일 참조 없이 필요한 부분만 접근하도록 설계하였습니다. Notify 가 Charater/Weapon을 몰라도 필요한 정보 모두 획득 가능하다는 이점이 있습니다.
Socket 없이 Trail 위치, 길이 자동 계산
어떤 무기를 넣더라도 Data에 저장되어 있는 Socket 정보를 바탕으로 맞게 호환 가능합니다.
Cascade / Niagara 모두 호환 가능
판정 구간과 Trail 구간 독립적으로 조절 가능
코드

Niagara 에서 Socket 을 사용한 대신 현재 위치부터 (현재 위치+검의 길이)만큼 더한 위치까지 이펙트가 출력되도록 설계하였습니다.
Start Scene ComponentStart Scene Component 위치 - End Scene Component 위치하지만 Trail용 Custom Anim Notify State에서 검 궤적보다 한참 뒷자리에 생성되는 문제가 발생했습니다.
TrailComp 자체 생성 실패
UE_LOG 를 통해 TailComp 존재 여부 체크했습니다.
정상적으로 출력되는 것을 보아 TrailComp 생성 문제는 아니었습니다.
Start Position, WeaponLength 전달 실패 혹은 잘못된 값 계산
시도
UE_LOG 를 통해 값 출력
→ 값 계산 정확한지 확인용
Niagara 에서 Start Position 및 Weapon Length를 Draw Debug 로 찍어봄
→ Niagara 변수로 잘 넘어오고 있는지 확인용
결과
잘못된 축 계산
Weapon Length 만큼 더한 값을 x 혹은 y 축으로 이동시킴



Sword Mesh 자체의 Component 위치 문제
다운로드 받은 리소스 그대로 사용하여 검이 Y축 기준 -90도 만큼 돌아가 있음
→ SpawnSystemAttached() 당시 Sword Mesh 에 붙어 계산되도록 설정해놨기 때문에
UpVector 가 Y축으로 바뀌면서 WeaponLength 만큼 오른쪽에서 이펙트가 실행됨
TrailComp = UNiagaraFunctionLibrary::SpawnSystemAttached(
TrailSystem,
**CombatInterface->GetTraceStart(),**
NAME_None,
FVector::ZeroVector,
FRotator::ZeroRotator,
EAttachLocation::SnapToTarget,
true
);
Unreal Engine 의 Modeling 모드를 이용하여 Sword Mesh 의 Up Vector 가 Z 축이 되도록 Bake Transform

이후 Socket, Trace Start, Trace End 위치 조정
검 궤적을 따라 제대로 Trail 형성
