How can I prevent animations rescaling pieces that aren't a part of the animation? [Blender]

I’m encountering this issue where bones that aren’t even keyframed in certain animations from Blender are still being set to their default scales at the start of the animations they don’t participate in.

For example, the bone called “SacBone” is keyframed in other animations as scaling up or scaling down, but has no keyframes in the Idle animation. Despite this, once the Idle animation starts (or any other animation really), the SacBone reverts to the default scale from Blender.

I found in the Animation tab that the bone has keyframes inserted anyway at frame 1. Is this because it’s a child of other things being animated? Is there a way around this?

I’ve seen other people saying to uncheck “Write Defaults” from transitions, but that didn’t fix the issue.

128952-capture.png

Unchecking Write Defaults is a good start, but, as you already found out, it only works if the bone does not have a keyframe. As far as I know, there is no way to prevent Unity from setting that keyframe upon import, that’s just how it interprets animations… but you can delete it manually.

The clip from the fbx file is read-only, but if you simply duplicate that clip in your Project window (select only the clip under your fbx and hit Ctrl-D), you get a normal animation you can edit just like any other Unity anim. The only downside is that if you want to re-import your animation later, you need to do this again.

Depending on what your end goal is, you could also put the scaling animation of the SacBone on an override layer, so it is independent from your other animations.