Lattice + Armature causing unexpected translation

Hey everyone!
So I’m am wanting to rig an arm using a lattice - a bit odd perhaps, but for this particular situation it’s what I need. However I want to be able to control a tweak bone in the mid-forearm area.

I setup the armature modifier first with a vertex group controlling the affected (tweak) area, then the lattice modifier under that using the inverse of that same vertex group (so as not to get double motion happening…).

However when I rotate the upper arm I get some weird twisting happening in the mid-arm vertices…any thoughts as to why this is happening?

Here is a video showing in detail what’s going on:

And here is a google drive link of the .blend file:
https://drive.google.com/file/d/1erKY3nmasafwgQZhm_mb2fW-dqJmww8N/view?usp=sharing

Any help is greatly appreciated!
Thanks guys!

Hi,

you should use mesh deform modifier instead, this is the intended use for it.

Hadrien

Hi @Hadriscus !

Thanks for the reply! I tried doing it with mesh deformer and was getting the same sort of issues! I feel like it’s something simple I’m just missing…

Here’s a link to the file using mesh def:
https://drive.google.com/file/d/1Dvb37tqg_5NJE09clG-xhqwCca7Qgdkf/view?usp=sharing

The ultimate end goal is to use this setup on a grease pencil rig, which is why I am forced to use lattice instead of mesh def. I was getting the same strange deformations in the grease pencil rig tests and decided to test it on an actual mesh rig since I’m not as familiar with grease pencil yet…but I’m getting the same results! :man_shrugging:

I’m sorry @grady1017 I won’t have time to help you in the short term, I had to let you know (I’m moving out, so lots to do). I regret not being able to look at this more closely, a grease pencil rig sounds super interesting (haven’t done that before).

Hadrien

@grady1017

I can’t help with grease pencil, because I don’t know anything about that. And the file doesn’t make it very clear what the end goal is; it’s a little too abstract for me.

But maybe I can explain what’s happening.

You’re using a soft-bordered vertex group to mix between the armature deformed verts and the lattice deformed verts. The problem is, this doesn’t mix between armature-only and lattice-only. If a vert is weighted 0.5 to no_lattice, then it gets armature deformed (at half strength) and then, that armature deformed position gets fed into the lattice (at half-strength). It’s not really an even mix. At strengths that aren’t 1 or 0, the lattice and the armature deformation interact:

This is basically the same problem that “multi-modifier” on the armature modifier was designed to solve. Unfortunately, there’s no generic multi-modifier option that you can use with the lattice.

What you could do, with a mesh, is instead make a copy of the mesh, armature deform the original everywhere, lattice deform the original everywhere, and then use a surface deform modifier on the original to interpolate between the two different positions:

That pic shows the modifiers. What’s less clear is that the bones are in the same positions as in the pic above. Because now, we don’t get that wonkiness at the border of the no_lattice vertex group.

Do you see how interpolating between the lattice deformed (only) position and the armature deformed (only) position is different than running an armature, then a lattice, at inverse strengths?

Like I said, I don’t know what you can do with grease pencil. However, a lot of the time, you can get any particular deformation (combination of modifiers) you want onto a lattice by mesh deforming the lattice.

(sorry for replying to wrong person hadriscus)

Try switching your modifiers position on your mesh. Lattice first then armature.

Hey guys! I’m so sorry for the late reply!

@Hadriscus no problem, bud! Thank you for your help, and I hope your moving goes well!

@stilltrying didn’t work out unfortunately, but I think, thanks to @bandages , I now know why!

@bandages Thank you so much for the info! Even though it doesn’t directly solve my grease pencil problem, now I at least understand why it’s doing what it’s doing, which makes it less frustrating (and helpful when working with meshes in the future!)

I wound up dropping the lattice entirely on the grease pencil arm. Just using bendy bones wound up giving me a desirable enough result to move forward (especially since I was in a hurry!).
I had originally wanted the arm to be rigged with the lattice like this arm:

But I was getting some unwanted creasing/folding on the inside elbow joint when bending a good bit. That’s why I wanted a separate tweak bone to adjust that area.
But like I said, just going with bendy bones (no lattice) turned out just fine for what I needed!
Here’s what it wound up looking like (not perfect, but workable!):

Thank you all for your help! (And I apologize again for the late reply!)

And this is the reason why we need world space blendshapes

if someday there’s a blendshape modifier, I’ll be a happy man

1 Like

@bourdul I’m hoping grease pencil will work with shapekeys one day! Dream come true! :laughing:

Hell yeah…