⚠️ 문제
- PlayMontage 태스크가 몽타주 애니메이션이 끝나지 않았는데도 Succeeded를 반환하여
- Behavior Tree의 루트 노드부터 다시 실행되는 문제가 발생함
- 그 결과, Service 태스크가 불필요하게 반복 호출되고, 애니메이션도 중간에 끊겨 비정상 동작이 나타남

- PlayMontage 태스크 실행 직후 return EBTNodeResult::Succeeded; 로 종료되도록 작성되어 있었음.
- Behavior Tree의 구조상 태스크가 Succeeded를 반환하면 곧바로 다음 플로우로 넘어가기 때문에
- 몽타주 애니메이션이 끝나기 전에 루트 노드가 재실행됨.
🚧 조치

- Task 상태를 InProgress로 유지
- PlayMontage 태스크 실행 시 바로 Succeeded 반환 대신 EBTNodeResult::InProgress 반환
- 콜백 함수(OnFinishedCallback) 등록
- 몽타주 애니메이션이 끝났을 때 호출되도록 콜백 함수 연결.
- 콜백 내부에서 FinishLatentTask(OwnerComp, EBTNodeResult::Succeeded); 호출 → 정상 종료 처리
➡️ 태스크는 애니메이션이 끝날 때까지 InProgress 상태로 두고, 애니메이션 종료 시에만 Succeeded 반환
💡 결과
- Behavior Tree가 몽타주 애니메이션이 끝날 때까지 대기하다가, 애니메이션이 완료된 시점에만 Succeeded를 반환하여 태스크가 정상적으로 종료됨
- 불필요한 Root 재실행 문제와 애니메이션 끊김 현상이 모두 해결됨
즉시 Succeeded 반환 → 루프 재실행 문제 발생 → InProgress + 콜백 종료 방식으로 해결 → 정상 동작 보장
'트러블 슈팅' 카테고리의 다른 글
| PickUp 기능 (0) | 2025.11.10 |
|---|---|
| 최종 팀 프로젝트 Pickup 기능 구현 (0) | 2025.11.06 |
| 멀티플레이 (데디서버) Hit 이펙트 첫 스폰 깨지는 문제 (0) | 2025.10.03 |
| 멀티플레이 (데디서버) 캐릭터 수영 로직 적용 안되는 문제 (0) | 2025.10.03 |
| 멀티플레이 (데디서버) 캐릭터 슬라이딩 동작 중복 입력되는 문제 (0) | 2025.10.03 |