# Why does mesh shrink when using shape keys?

This is the first time I've used shape keys, but from what I understand they should be pretty straightforward.

I have the Basis key and I've added an Arms_up shape key, see mesh examples below:

Basis shape key

Arms_up shape key

The problem I have, is that half way through the interpolation of the Basis and the Arms_up keys, the arms are shrunk. What could cause this? Are there considerations should I take into account when using shape keys?

Here are my shape key settings.

Where am I going wrong? I should also note that I have two unapplied modifiers in the stack, a mirror modifier on the X axis and a subsurface modifier.

• Note: 2.70 has a laplacian deform modifier which looks like its doing something closer to what you would want: wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.70/… – ideasman42 Feb 19 '14 at 22:18
• @ideasman42 - indeed this looks promising, isn't this already in 2.6? Or is it being improved? – Neil Feb 19 '14 at 22:37
• Its new in 2.70 - see release logs, you'll need a testing build. – ideasman42 Feb 20 '14 at 0:35
• The value is 0.5 so it's half way up! – user30458 Sep 13 '16 at 13:06

Shape keys work by smoothly, but blindly, moving each vertex from one location to another. It's likely that as each vertex is blindly trying to get to its destination, the intermediate result is this shrunk version of your mesh.

Shape keys are "dumb." They do absolutely nothing to maintain volume, do any kind of skinning, or anything "smart" like that. It's a SUPER simple transform.

I wish I could upload images from where I am, but imagine a plane with 4 vertices. You have a Basis key that looks like the plane, and then you have a Flipped key that moves the vertices in an X pattern. The top-left vertex goes to the bottom-right, the top-right to the bottom-left, etc. So that the end result is also a plane, but it's upside-down and backward. Each vertex is going to go straight to its designated destination without any concern for any other vertices, so you can imagine that exactly half-way through the process, they're all going to be basically a really tiny point in the middle of what used to be a plane. Something similar is what's happening to your arms, there.

This is what rigs are for ;-) Rigs can preserve the relative position of the vertices so that they don't do weird things like this.

EDIT: For some reason, my image isn't supported on this site, but you can find it here.

In this animation, I add two blendshapes, basis (which you always have) and key1, to the default cube. Then, I select all the verts in edit mode and rotate them around the x-axis (this will be hard to follow, if you can't see the gif). This is now my key1 blendshape. The point of all this is that it doesn't matter that I rotated the verts. If I were using keyframes, the rotation would matter, but not with blendshapes. When I adjust the strength of key1, each vertex will move along the shortest path between its two positions, regardless of where any of the other verts are. This means that all the verts pass very closely to each other about half-way through the transition, which makes a really skinny prism.

This is basically what's happening to the arm. Each vertex is blindly moving to its designated destination, and the intermediate result can sometimes be undesirable.

The solution might be adding intermediate shapes, but this is not the way blendshapes are usually used.

I hope that helps!

• Great explanation, would be nice to see an example image to support this. I chose shape keys over rigs because I want to use morph targets in three.js, based on your answer I am now thinking this could be achieved by providing further intermediary keys to lessen the effects? – Neil Feb 19 '14 at 21:28
• Yes, intermediate keys would certainly help. You'll have to figure out how many keys you can afford to add before it costs more than it's worth ;-) – Matt Feb 19 '14 at 21:32
• ...I'll try to add images at some point. – Matt Feb 19 '14 at 21:32
• any news on your images? This is a good answer and I think they would help others. – Neil Feb 24 '14 at 11:08
• I'm sorry, I totally forgot. I'll get them added sometime today. – Matt Feb 24 '14 at 15:45