Notifies that are placed on animations referenced by montages aren't triggered when using the UAnimSingleNodeInstance to play back the montage. This is because - unlike on UAnimComposite - there is no implementation of GetAnimNotifiesFromDeltaPositions for UAnimMontage. And UAnimSingleNodeInstance::SetPositionWithPreviousTime relies solely on GetAnimNotifiesFromDeltaPositions to sample notifies on the assets that are being played back. We don't hit this issue with regular playback of montages because FAnimMontageInstance::HandleEvents manually samples both the montage track, and the animation tracks of the montage (similar to UAnimComposite::GetAnimNotifiesFromDeltaPositions).
We should do one of the following:
- Change UAnimSingleNodeInstance::SetPositionWithPreviousTime to sample both the montage notify track and the animation notify tracks
- Implement UAnimMontage::GetAnimNotifiesFromDeltaPositions. This would mean changing FAnimMontageInstance::HandleEvents to account for the change.
- Change UAnimSingleNodeInstance::SetPositionWithPreviousTime to call FAnimMontageInstance::Advance rather than UAnimSequenceBase::SetPosition when dealing with montage assets. This would go down the regular montage codepath and handle the notifies via FAnimMontageInstance::HandleEvents