I was wondering if anyone knows how to set up a hose-like, cartoon-type limb like in this picture?

enter image description here

My current setup for my model's limbs uses Inverse Kinematics and actually works quite well for the moving whole arm around, although I do get some really nasty-looking deformations I get when I try to bend the limb, but this isn't my primary concern right now.

enter image description here

My main concern is that while I can manipulate the arm as a whole without trouble, trying to get the arm to bend like in the first picture is an extremely frustrating and finicky affair. Basically, I need some method of being able to improve control over how the arm bends in order make more manageable for posing the model.

enter image description here

My first solution was to try and add a second IK controller to the arm that could be used as a bend point to create a curvature in the arm. Unfortunately, trying to manipulate this second controller doesn't seem to do anything at all, and I'm not too sure whether or not I screwed something up in setting up the IK controller or if you simply cannot attach another IK controller to another IK chain (I assume the answer is the latter, although me screwing up in setting up something is also quite plausible).

Another potential solution I saw on various tutorial videos was using a Bezier Curve to control the overall curvature, but I'm not too sure whether or not I can attach a Bezier Curve to only part of a model rather the whole thing.

I tried looking for a solution by searching YouTube for a tutorial on how to rig cartoony hose limbs, but instead I was surprised by the dearth of materials on the subject, especially since its been a staple of animation since pretty much the very beginning of the medium. I mean, I get that the standard skeleton armature is a lot easier to setup than the classic hose-style limb, but it is simply not the look that I want for this particular model.

One final thing to keep in mind is that I've been making this model for a game project that I've been working on, and thus any potential solutions for this problem must be compatible with game engines like Unreal Engine or Unity.

I hope that what I'm not asking for too much, and that I would greatly appreciate it if anyone could offer any potential help with this endeavor.


Sorry for not responding earlier, but thanks a lot for going to the effort of responding to my question, although it would appear that it wasn't needed to begin with. After going back and playing with the armature some more, it turns out that Inverse Kinematic chains that I set up for the arms actually do work for posing, I guess I just didn't have a very good grasp of how to properly control them.

It's probably for the best that I use Inverse Kinematics anyway because I am trying to make a model that can be imported into Unreal Engine 4 and my understanding is that game engines like Unreal and Unity are incompatible with Bendy Bones. At least that's what I have read in the past, I'm not sure if that has changed recently, but my recent attempts at trying to look into the matter has mostly come up with older information, so I have to assume that nothing has changed so far.

However, despite the fact that I won't be using your solution, I still think it was worth posting anyways because while I might not use it, there's always the possibility that it might help someone else out. There is after all, a distinct lack of info out there on how to do cartoon-style hose limbs and having this information out there means that others can now find it and use it to help themselves out. Its because of this I decided to go back and add some additional tags to my original post to make it easier for others to find this info.

Regardless of everything, thanks again for the help!

  • 1
    Maybe bendy bones could help? – Legoman Aug 15 at 19:36

I think you could test at least 2 solutions, a classic rigging with bendy bones playing with Easing In and Out, and the Stretch To constraint (which I guess is close to the Spline IK, perhaps not as good though, but simpler for sure).

1) CLASSIC RIGGING

  • Create a chain of bones: upper arm, lower arm, hand, etc. Flex the elbow a bit so that Blender will know how it will have to bend.
  • Create a controller bone at the wrist position, deparent it and unclick the Deform option in the Properties > Bone panel.
  • Parent the hand to this controller with ctrl P > Make Parent > Keep Offset.
  • Create a Pole Target bone from the elbow, deparent it and move it a bit backward, unclick the Deform option in the Properties > Bone panel.
  • In the Properties > Data > Display panel, choose B-Bone instead of Octahedral. Give your upper and lower arms several Segments (for example 6). You'll see later that the Easing options will allow you to bend the arm in a rounder way. Maybe you'll have to correct the rotation of some bones with ctrl R so that they all follow the same axis.
  • In Pose mode, give your lower arm bone an IK Constraint, choose the controller as the Target, choose the Pole Target, and choose 2 for Chain. You can also give it a Copy Rotation constraint with the hand as the target, so that when you rotate the hand, the lower arm will follow.
  • Parent your mesh to the armature.
  • Don't forget to put the Armature modifier of your mesh above the Subdivision Surface modifier otherwise your mesh could be weirdly deformed (maybe it's the problem in your screenshot). Also, click Preserve Volume in the Armature modifier.
  • Now you can control the arm with the controller.
  • Sometimes it will go crazy because the Pole Target is not enough to show how to rotate, in that case select your arm, go in Pose mode, then in Properties > Bone > Inverse Kinematics, limit the rotation on the axis you want.

enter image description here

2) STRETCH TO CONSTRAINT

If you want your arm to be more free and elastic you could also try the Stretch To constraint:

  • Create a chain of bones with shoulder / upper arm / elbow / lower arm / hand / hand controller.
  • In the Properties > Data > Display panel, choose B-Bone instead of Octahedral. Give your upper and lower arms several Segments (for example 6). You'll see later that the Easing options will allow you to bend the arm in a rounder way. Maybe you'll have to correct the rotation of some bones with ctrl R so that they all follow the same axis.
  • The hand controller needs to be deparented, the hand is parented to the controller, the elbow must be deparented, the shoulder is parented to the torso of course. For the controller, unclick the Deform option in the Properties > Bone panel.
  • In Pose mode, give the upper arm and lower arm a Stretch To constraint.
  • In the lower arm constraint, select the hand as the Target. In the Properties > Bone > Bendy Bones panel, click the Use Custom Handle References and choose In > elbow and Out > hand.
  • In the upper arm constraint, select the elbow as the Target. In the Properties > Bone > Bendy Bones panel, click the Use Custom Handle References and choose In > shoulder and Out > elbow.
  • To test the arm, move the hand controller and the elbow, there are independent.
  • Parent you mesh to your armature.
  • Don't forget to put the Armature modifier of your mesh above the Subdivision Surface modifier otherwise your mesh could be weirdly deformed (maybe it's the problem in your screenshot). Also, click Preserve Volume in the Armature modifier.

enter image description here

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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