How would I bend a cylinder while keeping it's shape? 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):



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 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! :)
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.