Animate uniform Scaling with Drivers

Sometimes we want to animate a transformation uniformly in Blender but we find it’s divided into different channels. In today’s tip we’ll create a driver to animate multiple channels from one.

First animate the scale of your object as usual, or just add a couple of  keyframes to get some animation data. Decide which channel you want to animate.

It can be any of them, I usually choose X. Now go into the dopesheet editor and delete the other two channels (Y and Z in this case). Now we can add drivers to them. Open the properties bar and ctrl+click on the Y scale to type a value. Type # followed by this:

    bpy.data.objects['My Object'].scale.x

Replace “My Object” with the name of your object but don’t remove the quotes though. You can check it’s name by selecting it and looking at the bottom of the 3D view or in which one gets selected in the outliner. Do the same for the Z value. The hash (#) is the shorthand for quickly adding drivers in Blender, you could also right-click and select “add single driver”. Once a driver is added you don’t need to type the hash anymore.

Now you can drive the scale values (and F-Curve) for Y and Z using X. You can also do more advanced things like using formulas and math functions. For instance if you wanted your object’s height to be half it’s width, your Z scale driver would be:

    bpy.data.objects['My Object'].scale.x / 2

The sky is the limit with drivers, not only for creative or experimental uses but also to workaround issues like this. So Learn some Python and have fun.