Say you don't key rotation for a bone in a lower track, then play an animation that keys rotation for the bone on a higher track using additive. Every frame the bone will rotate based on its rotation from the previous frame: the bone will likely spin wildly. The same will happen for other bone transform properties: translation, scale, and shear.
To fix this you need to set the bone transform properties that you key in the additive animation before applying that animation. Eg, you could do this by getting the bone and setting the rotation (and translation, etc if needed) before applying any animations, every frame.
One way to do that is to use Skeleton setBonesToSetupPose
, though that sets every bone to the setup pose which may be more than you need.
Another way to do it is to play an animation on a lower track that sets the properties. This is a little better since you know to only key the properties that the additive animation will modify.
If you plan to play other animations, you'd likely want to layer them like this:
additive animations
idle/walk/aim/etc
reset animation (this is the lowest track, applied first)
This way you are sure to set the properties that will be modified additively first, then you apply whatever character animations (using any number of tracks), then you apply the additive animations on top of all that. If your character animations key all the properties that the additive animations key, then you don't need a reset animation at all. If they all key some but not all of those properties, then your reset animation could omit the properties the character animations are sure to key, though this may be error prone since if you add a character animation and it turns out that it doesn't key those properties.
Getting around to your question, if you want to reset the bones via code, you'd do it right before applying animations. For spine-unity I'm not sure where exactty the best place is, but Harald will likely be along soon to help out!