✅ 오늘 한 일 (Done)
- Motion Warping 적용: 공격 시 몬스터와의 거리를 좁히거나, 회피 시 정확한 위치로 이동하도록 애니메이션 보정 기능 구현.
- Root Motion 설정: 워핑의 기준이 되는 이동 데이터를 확보하기 위해 원본 애니메이션 시퀀스의
Enable Root Motion 활성화.
- Warp Target 동적 업데이트: 공격 직전 타겟의 위치를
Add or Update Warp Target 노드로 갱신하여 빗나가지 않는 공격 구현.
💣 트러블 슈팅 (Issue & Fix)
- 문제: 워핑 로직은 정상인데, 캐릭터가 타겟에게 가다가 중간에 뚝 멈추거나 제자리걸음을 하는 현상 발생.
- 원인: 몽타주 타임라인에 배치한
Motion Warping Notify State의 구간이 너무 짧아서, 캐릭터가 해당 거리만큼 이동할 물리적 시간(프레임)이 부족했음.
- 해결: 노티파이의 길이를 애니메이션의 실제 이동 구간에 맞춰 충분히 길게 늘려주어 부드러운 이동을 확보함.
💡 핵심 코드 (Key Logic)
- 필수 전제 조건:
- Root Motion: 원본 시퀀스에서 루트 모션이 꺼져 있으면 엔진이 이동 거리를 계산할 수 없어 워핑이 작동하지 않음.
- Naming Convention (실수 주의):
MotionWarpingComp->AddOrUpdateWarpTargetFromLocation(
FName("AttackTarget"),
TargetLocation
);