Joints and Muscles - Actions?

I’ve got an armature that works great on a Make Human model with the exception of 2 areas, the shoulders and the hips/buttocks. I’ve tried many variations of vertex weights in different combinations but nothing is resolving the problem.

For example, with a human shoulder the deltoid muscle deforms differently based on the direction of movement. In reality parts of the muscle only move vertically in some positions and then change more to horizontal when the arm is raised higher. I haven’t found a way to do this with rotating or tracking armature elements, and changing vertex/group weights doesn’t solve the problem because the vertexes shouldn’t be consistently rotational.

I’ve searched every tute I can find about this, but the best solutions I’ve found are for non-Blender apps where methods similar to RVKs are applied to the vertexes to “correct” problem deformations. If there wasn’t the 32 maximum RVK limitation I would consider a similar method as an option.

Does anyone have any suggestions?

The best way I know of of dealing with shoulders, is to have the limbs of the armature as seperate from the rest, make sure you have a shoulder bone to take car of rotation problems, then when you deform the arm, you can move it up and down, or forward and back as necessary. I find this is sufficient to deal with most deformations.

welcome to the hunters of the “shrinking ass”

there is no perfect solution in blender yet.

well this is the point where i quit regarding bones as “bones” and introduced some helper “bones” representing the mayor muscles ( legs front and belly have similar problems when crouching )

i found out RVKs can not be controlled by armatures, so i fell back to bones.
AFAIK there are approaches extending constraints ( theeth ? )
so may be we ’ ll get muscle like “bones” , pinned to other bones at both ends, variing lenght but keeping volume … in future ?


Yeah. That whack on the head you just felt? That’s the ceiling of Blender’s character anim capabilities.

If Blender is going to play with the big kids, it NEEEEEDS contraint driven mesh keys, as well as a lift on the 32 RVK limit, and a clearer interface for setting RVKs.

Yep, that’s in the plans too. Add to that Ton’s puffer idea, and it could make a really nice system already.


Okay, you dirty filthy insider… what’s puffer?

It’s an allusion to a trick used by pupet masters. In essence, puffers are small air cushions link with a tube to a pump which you can press or depress to control how the cushion “puffs”. They are mainly used for muscles simulation.


Hmmm… When I think about how to handle “muscle bulges,” it reminds me of how the hydraulic-tubes were handled in the Rigging Mechanics tutorial, here:

A muscle, it seems to me, is basically a closed surface enclosing a constant volume. A centerline curve runs through it. Grouped around it, positioned more-or-less in a circular cross-section down the length of the muscle, might be envisioned a collection of other curves.

As the muscle’s centerline moves, i.e. in response to an armature, a deformation occurs in the “muscle fiber” curves. This, then, is transmitted to the surface of the muscle (subject to relative-constraints, vertex groups and so-forth which describe how this muscle is anchored or enclosed within the body). And finally, thence to the skin surface in which it is enclosed.

Since a muscle encloses a constant volume, as the endpoints move closer to each other the muscle-fiber tubes expand, moving away from the centerline curve.

Now see there … :wink: … nuttin’ to it. :smiley:

I really wish that I knew how to construct that, but I expect it would be some kind of constraint, a new object-type or some amalgam of both. Anyhow, to get substantially better simulation of musculatures, I think we’re going to have to have a substantially better simulation of a muscle.

Umm… and one more thing. We’ll need to have some line-of-force concept… which forces are applying to the armature (e.g. he’s pulling vs. pushing) so that the appropriate muscles (triceps vs. biceps) would bulge more. (A ‘fake bone’ or somesuch could do that, describing the direction of force, and by its length, the amount.)

I can visualize the idea, murkily, but I don’t know how to begin to implement it.

Yeah, I thought of that and tried several different variations. I could never get anything decent out of it months ago…

… but I’m finally getting something NOW. I’ve got additions to the armature with “deltoid” and “trapezius” bones. The deltoid is IKd to the lower arm (elbow) and the trapezius is an IKd child of the deltoid and tracks the neck.

Now I’m having the fun of rigging the vertex groups correctly. I hope this works, but so far I don’t see much reason why it won’t since the armature’s new bones move nicely with how I want the shoulder to work.

Even though this is an improvement, it’s still obvious that the mesh only wants to deform smoothly with the armature but so much before it needs corrections. If there wasn’t that dang 32 RVK limit I would happily use those with the armature…

After this it’s the buttocks, but I don’t see why a similar rig isn’t going to work there.

It wouldn’t hurt to have a new type of spheroid object that when scaled along one (or two) of its axes scales appropriately along its others to maintain a relatively constant volume. Make these able to deform a mesh, and you have muscles!

There’s some interesting reading also at Kiernan Holland’s web site with regards to this:

Will the implementation in Blender be similiar to or follow the approach described there?

Well… I spoke too soon, the “musculature” bones solution didn’t end up working. The armature works wonderfully, but the new bone constraints (tracking other bones, etc.) started doing wacky things to the mesh. Unless someone has another solution, I’m considering that one a dead end…

The concepts are similar to solutions used by other 3D software. There’s a nice tute on how the concepts are applied in Maya:

But until the 32 RVK limitation is solved armature controlled RVKs won’t help much. Even if only applied to major muscle groups, the current limits would be rapidly exceeded.

I’m rigging muscle movements to new bones in the armature using actions and constraints, but I have an important question:

When this is animated how do you prevent an action from affecting everything and only being used for the bone constraints?


For example, the “bicep” bone moves with the lower arm to change the shape of the mesh using a constraint. Let’s say that it is frames 1-10. How do you keep that action from affecting the entire animation during frames 1-10? Maybe the leg is moving in those frames, and the bicep action should not be moving at the same time…

Now that I’ve got more of the hang of things, I’d like to find info about actions tutes and similar. Maybe there is more I could learn but don’t know now.

Does anyone know of any good armature-actions info?