(Rigging) How to use rotation constraints in a inverse kinematics chain?

I am trying to rig and I’m able to put weights, but when I rotate the arm like when a human grabbles on up on a ledge (so, straight up!) the zone of the armpit results too innaturally cave, and the upper zone of the shoulder’s muscle results too net, going too inside. What have I to do?
It’s all a question of weight painting? Or have I to add some independent zones to “fill” the cave zones, making them very less influented by the armature? I think that this would give bad light effects…Isn’t it?

How it’s usually solved? I’ve already seen this same thing in modded characters for videogames!
Thanks!

A blend file might help. Otherwise it’s just guess work for the viewers.

It’s not the easiest of subjects to deal with. You’ve got more options when you work inside a 3d application. Like helper bones or corrective shape keys. But a game engine will place limits on the amount of bones or polycount typically.

Anyway. Is your character clothed or are the muscle groups very visible? I don’t think there’s one method that works for every possible type of animation or mesh. You may have to compromise.

There’s some good examples of topology here. But dig around for more.

Here’s a fairly good example of topology for games. Although it’s not perfect in every pose, it covers most of the animations well. Which is not as easy to do as some might think.

Thanks for the links, I’ve seen them but I’m in a level before. I’m a beginner and the model hasn’t big muscles to show.
Look at this. https://i.imgur.com/r5YfzAA.jpg
I’ve made this with makehuman and I’ve edited a bit the armature and the weight paint after used “automatic weights”.
When I turn the arm by side it’s almost ok, but when I turn it by front it twists like that. I’m not an expert but maybe there are some relations that I’ve to put with the shoulder’s bone? Like:“When this arm turns over a certain angle, you will start to move up and towards the neck”?

It doesn’t look like you’re involving the shoulder itself in the animation. If you’re going for a pose where the character is reaching up to grab something you would have to involve the shoulder in the animation. A human being can’t reach like that without pointing the shoulder upward. It’ll point up and sit beside the neck. After that it’s a matter of weight painting, bone set up and possibly corrective shape keys.

For a game engine you don’t always have the facility to add extra bones to a set up. Especially if you want to use the default animation set. So you generally have to make do with the basic layout that would drive a basic character. You do as much as you can with weight painting, and accept the fact that there will have to be compromises.

This is a character generated by Manuel Bastioni’s lab addon. I did an auto weight and tweaked the results to get something fairly decent with a basic rig. Notice the shoulder is involved in the pose. There’s no sub surf on the mesh so you can see the topology a little better.
https://i.imgbox.com/G0ux6APV.jpg

I’ve tried to add a rotation constraint on the shoulder bone that is the end of the inverse kinematic for the arm.
It works only if I rotate directly the bone, but it doesn’t work if I move it indirectly by moving the hand for example.
How can I apply it?

Thanks!!!

Oh thanks! Yes I wasn’t involving the shoulder’s bone, you’re right. How stupid… I’ve tried myself to move my arm without the shoulder and it is impossible!!! Ahah. Now I’ve added an inverse kinematic (learnt just today) and it results better. :slight_smile:

As far as I’m aware the ik constraint takes precedence. Overriding other constraints, like limit rotation, for example.

You could try a damped track on the shoulder to follow the upper arm, and limit it’s rotation with the limit rotation constraint. But it would have to be removed from the chain for that to work. So a bone length of 2 instead of 3 on the arm ik. If you’re using pole targets it could require keying those at certain points. There’s no guarantee that the tracking will be rock solid though and jitter free. It may give you trouble under certain circumstances.

Having said that, it’s not something I use myself. I usually keep the chain length on arms at 2 and manually key the shoulder. Rather than trying to automate it in some way. For me it just keeps things simpler. Ik isn’t the most robust system. Presumably because it’s got some complex calculations going on. It doesn’t take much to interfere with it. And the more convoluted it becomes, the more likely it is to break down. That can be compounded by not fully understanding the mechanics involved. Which I certainly don’t.

I’m fairly sure that’s the way a lot of people prefer to tackle it too.

With a bit of luck one of the more knowledgeable members will drop by and give you more solid advice on the matter. :slight_smile:

Hmm… this is strange… I thought I posted to this thread, but I couldn’t find it.

I thought I wrote a post about how you have to animate the shoulder bone along with the upper arm. The post was also about how humans can’t rotate their arms above their shoulders and from there on out, it’s the shoulder that rotates.

dinne7, this post of yours:

Makes me think you read my post. Did you?

Anyhow…

I think simple is the best way, just use the IK on the 2 arm bones and manually pose the shoulder bone. This will offer you the most control, with the IK including the shoulder you won’t have as much control. One case I can think of that won’t work with the IK including the shoulder would be a character with it’s hands planted on a surface below the chest high. Say the character is sitting at a desk, hands on the desk surface, the only way to make the character shrug it’s shoulders and keep it’s hands on the desk would be in IK without the IK affecting the shoulder. Now you’d be free to rotate the shoulders and the IK will keep the hands plated on the desk. You can’t pose like that if the IK controls the shoulder bone, since the IK blocks you from rotating that bone.

The IK constraint is always the top dog and overrides limit rotation constraints, and almost all other constraints as well. You can control the behaviour of the IK constraint, somewhat. Selecting a bone that is influenced by the IK constraint in pose mode and looking at the bone’s properties, you’ll find an IK tab. Here you can control some of the behaviour of the IK constraint on a bone by bone basis. I’ve had mixed results with this…

Simple is better here, I think,

Randy

I can’t comment on the damped track constraint as it has been added since I’ve done any serious rigging work, so I don’t know it.

The post about the rotation constraint ( post #5) was originally a separate thread. A moderator obviously merged it into this one. So it’s possible your reply got left out in the process. This one was originally about shoulder rigging in a more general sense. :slight_smile: