1
$\begingroup$

I have a problem in blender that I've been trying to figure out for the past hour, I have here an arm of a cartoon character (so basically a cylinder):

It's simple.

However, I've already linked two bones to the arm. They work perfectly and I have no problems with the rig. The problem here is when I bend the arm, the lower part of the arm sort of squeezes inwards. This gives it an unnatural look and it does not keep it's "tube" shape:

You see?

You can see how it bends like a straw in real life would. I want it to not do that. I want it to keep the round shape. So what would I need to do to bend a cylinder while keeping its shape? (I used vertex groups to assign the bones. I'm wondering if the vertices are what is causing it to do that.)

Thanks! :)

$\endgroup$
  • $\begingroup$ Maybe you can add a curve modifier $\endgroup$ – atek Jul 31 '17 at 6:39
3
$\begingroup$

It seems like your mesh has far too few vertices. Try to add some subdivisions, especially at the elbow. Blender needs enough vertices at the position of bending to create organic looking bends. After that, reconnect the mesh with automatic weights. The next you could check is "preserve volume" in the armature modifier of your mesh, and last, position your armature modifier before any subdivision surface modifier.

Additionally, it seems you are using two armature modifiers. It's probably better to create one rig with connected bones, and apply them to your mesh with automatic weights. This way, each bone has a different weight, a different strong influence on a single vertex. There are many tutorials on this theme available, and its to much to explain in short here.

$\endgroup$
  • 1
    $\begingroup$ Although helpful, maybe add an explanation why / how adding more vertices improves the deformation. We don't want to randomly add more geometry. $\endgroup$ – Leander Jul 31 '17 at 10:10
  • $\begingroup$ So I added more vertices. It does help bend it in different ways, not quite how I want it to. But it sorta works. Though, the arm is no longer smooth like it is in the picture. I didn't use the subsurf. modifier as that does not work with the cylinder. I simply pressed W to subdivide it. It didn't bend the way I wanted but it did sure help with the bending. I also used preserve volume but all that did for me was make the mesh larger. I will accept your answer as it does fix the bending problem, but messes up the smoothness of the mesh. I will try using a curve to make the arm instead. $\endgroup$ – SneakyTW Jul 31 '17 at 20:06
  • $\begingroup$ To better help you with your problem please upload your blend file somewhere. And just don't simply subdivide your mesh, better use loop cut and slide to divide your mesh where neccessary. $\endgroup$ – Grimm Jul 31 '17 at 20:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.