The good samaritan in the comments has helped me figure out shape keys, but I’m still stuck with a problem. I have simple mesh that gets deformed (or rather folded onto itself) by an armature, but I’m looking to correct the stretching happening to the faces at the joints (where each bone meets the next). So I made a shape key for when my mesh is in folded state (bone rotation at almost 90 degrees), and slid the edges of the faces so that they look identical to when my mesh is flat (bone rotation 0). But instead of gradually adjusting, my faces stretch to an extreme as soon as my armature starts deforming, then reach their desired size moments before hitting the intended keyframe (I’m using linear interpolation). What am I doing wrong?
Holy shit. I figured it out. I followed this tutorial: https://www.youtube.com/watch?v=2s3uToONDHg
By checking preserve volume in the armature modifier, redoing my shape key by moving my faces towards the joint instead of sliding their edges, and using the scripted expression “degrees(rotation_euler)/90”, everything works perfectly.
Turn out bone rotations can be tricky to use to drive a shape key correctly. This took me 3 days but at least I learned something lmao.
When the bone is at its rest postion, the shapekey value should be 0, when the bone is rotated 90 degrees, the shapekey value should be 1. So in the driver editor, you need an f-curve with a control point at x=0, y=0. That is your starting point - 0 rotation = 0 shapekey. The next control point wants to be at x = 1.5078 and y = 1. Here’s how this works…
The x-axis of the driver editor is the input value for your driver, the y-axis is the output of the driver. When dealing with rotations in the driver editor, the input values are in radians, not degrees. 90 degrees of rotation = 1.5078 radians. That is how I know the 2nd control point on the curve wants to be at x = 1.5078 and at y = 1 because we want the shapekey to be at 1.
People who think rotation drivers are tricky to set up probably don’t understand the input values are in radians. Once you understand that part, they are easy to set up.