Behavior of Montage Notify vs Skeleton Notify


I had this animation where the weapon is attached to the right hand and at some point in the montage it gets attached to the left hand and later back again to the right hand, you can think of a reload animation where you need to momentarily attach the weapon to the left hand so the right hand can chamber the weapon or something like that, then you attach the weapon back to the right hand.

The issue here is that I was using skeleton notify in the animation asset itself, I have 2 skeleton notifies for when the weapon should be swapped to the other hand.
Using skeleton notifies I noticed that the weapon would snap at the final attaching, as if there’s some sort of desync when the first attaching to the left hand happened. The weird behavior is using a montage notify instead, the issue completely disappears and I made sure through my tests that in both cases the notifies are placed in exactly the same timing.

Note that when attaching to the left hand I simply keep the world location and rotation and attach to hand_l, this works fine if the animation hands are in perfect synch which in this case they are.

The only conclusion I could think of after my tests is that montage notifies have some extra behavior which makes it so attaching something to the mesh while it’s moving is more consistent than using a skeleton notify, especially when attaching something and keeping world location and rotation.

Pure speculation, but maybe the “snapping” behavior has to do with interpolation?
A montage might know when it needs to zero out the “endpoints” and not tween for interpolation, but a skeleton notify might not?

It’s possible, I’ll try a more simple test and see if the result is different, maybe a notify at the end oft he montage and attach at that point.