Lattice + shape key + bones = mess


I was testing animation.

I tried to make food characters go twitch, stretch, walk, run, jump.

I used lattice and shape key for stretching and twitching, used bones for walking and running.

They kinda…all jumbled up…like… their actions are mixed into something whole different I didn’t intend.

Bones are working well, but lattice animation goes crazy when there are other actions combined.

Can I be better if I keep practicing, or is it not wise mixing all this animation methods?


I think it is a very good combination. I do not like to animate my characters faces with shape keys on the mesh, because it means I would not be able to modify the topology of the mesh after (or it will be a real mess!).
So like you, I create shape keys on the lattices, to deform the mesh, and I use drivers on the bones of the characters to control the shape keys of the lattices. It works pretty well and it is very fast.
The order of the modifiers in the modifier stack and the parenting are very important to make it work properly. Personally, I parent the lattices to the armature object, and I put the lattices modifiers first in the modifier stack, before the armature modifier.

Ugh, this hierarchy thing is confusing, I attached lattice as child to the bones, then when the bones move that lattice went crazy. I should practice more until I figure out how they work.

I tried to use hooks too, but they are not good with highly subdivided meshes.

Hi mignon,

mixing different deformation method is completely normal and common! What you need to understand be careful with is the order of deformation.

I think because of the way blender is design, your shapeKey would always be the first deformation… which might not always be the best, but I think that ShapeKey should not be used for big deformation but very settle ones and so, done with that way, it works.

Then you can add your lattice… and then at the bottom your armature…
This way, you don’t have to move your lattice with your character, it can stay at his origin position, it just needs to deform the way you want.

I hope that helps!