Is it possible to create new shape from Mix of multiple shapekeys?

Hi. Lets say i have Basis shape key and one shape key - which is for example simple cube and the value from 0 to 1 shrinking or squeezing this cube. And i have a second shape key which is has value from 0 to 1 that unsqueezing that cube back a little bit. Now i want to create a mix from those three shapekeys. So the final shape key should look like the value from 0 to 1 squeezing and unsqueezing this cube back, so maybe on 0.5 it starts to unsqueeze him.

Is it possible? I know that for that i could just use one shapekey and animate it that way. But in my case thats not a good idea, so i would like to somehow just create mix from three shapekeys, i know its possible to create mix from two shapekeys but with three shapekeys it doesnt work when i try.

‘New Shape from Mix’ option

1 Like

I’m sure if that is possible, but it is possible to control shapekeys with Scripted Expression Drivers. So you could have an Empty for example that moves in one axis and this provides the variable for a Driver on the shapekey. Once you have this set up, you move the Empty and the shapekey is activated. The same Empty can control two or more shapekeys.

You can add Modifiers to the Drivers themselves, like a “Limit” for example. You can also have separate Empties for each Driver - then control these with a third Empty that moves the others using Transformation Constraints. For Example Empty-master moves from 0 to 2 in Z axis - as it moves from 0 to 1 it moves Empty-shapekey1 from 0 to 0.5 in Z (this controls the the first shapekey) - then as it moves from 1 to 2 it moves Empty-shapekey2 from 0 to 0.2 (this controls the second shapekey). If you want a shapekey to change from 1 to 0.8, you would set the driver expression to be 1 - var where var is the movement of the controlling empty (0.2 in this case). You must check “Autorun Python Scripts” in User Prefs => File Tab for scripted expression drivers to work. Repeat as required for multiple shapekeys. All you do in your animation is keyframe some movements of the Empty-master to animate the whole set of shapekeys.

I use this technique to control undercarriage movements so I get a sequence organised as the Empty-master moves along its axis. For example the empty first opens the u/c inner and outer doors, then lowers the u/c, then closes the inner doors. In place of the Empties, you could also use an Armature with several bones that control the shapekeys.

Cheers, Clock.

Wow, way to complicated. I would rather then animate one shapekey. Thanks anyways

That was the best I could think of just now, I will think a little more while I do some welding…

Cheers, Clock.

Just set the desired values of the shape keys in the stack, then press the black arrow button next to the Shape Keys stack and choose
‘New Shape From Mix’.
Works with as many shape keys as you like…

Nope, its just works with only two shapekeys unfortunately

It works with more than two. But another thing you can do is duplicate the mesh, set up the shapekeys, then shift click the original mesh and do Join as Shapes.

Cyaoeu motimo

Guys thanks but here is the quick video where i showing you that it works but not consecutively so id doesnt keep the consecutiveness of the shape keys so its looks as if it works only with the last shapekeys and its ignores the shape key before it

Change your relative key to the key you want it to change from before you change your shape the second time. Click the edit on the shape key to make it hold its shape in edit the same. You have it on basis. So you tell Blemder to blend the shape from basis. You want to change the second one. Or use absolute if it is always the same (uncheck relative).


Sorry but i dont understand you the way you explain things. Could you name things please and not to use the word “it”. And also what is " relative shape key" and what does it mean “change relative key to the key you want it to change from before you change your shape the second time”

Better to explain step by step. Like this: "Create Basis, then create Key1, then go to the Edit mode and stretch shape on Y axis, then go to object mode and create Key2…

Could you explain me this way. I will be very grateful. Thanks

I think you could use absolute shape keys to do this.

Add shape key
Use absolute shape keys by unselecting Relative
Add Basis shape key
Add first shape key and change the mesh in edit mode
Go back to object mode and change evaluation time to 10
Go to edit mode and change the shape to your final shape
Go to object mode and click on the little green arrow to reset the timing for the keys.
If you change the Evaluation time your object will go from basis to Key 1 mesh shape and the to Key 2 mesh shape.

You animate the change of shape by key framing Evaluation Time not by key framing the value of the Shape Keys.

Abs shape keys.blend (644 KB)

Howtomakeashapekey.blend (456 KB)

Here you go. Hope it is what you need.

Thanks Alan K, that’s exactly what I wanted, it’s a bit laggy but it’s works.

And thanks Stilltrying, but sorry that’s not what I wanted

If it’s laggy you can do the same thing with relative shapekeys using drivers, set up the first driver to drive the first shapekey, then set up the second driver to start when the second shapekey is at value 1.

Not sure what you mean by a bit laggy. You can modify the F-curves to get it as snappy as you want.

Abs shape keys1.blend (543 KB)


Laggy because it goes not exactly straight at first.So if I want let’s say to stretch the nose in first key on Y axis and then on -Z axis, it goes a little bit on +Z axis at first and only then it goes straight line on Y axis, and then on - Z axis. So it’s a little bit deviation happens