PDA

View Full Version : Riging Help: Bone placement


MarkInTx
06-28-2008, 05:16 PM
I'm trying to place a simple rig in a base texture, and can't seem to get the shoulder joint right.

I have a simple mesh that was given away on the zBrush site. It is about 2400 polys, and pretty clean (I think.) There were a few tris, but I fixed that, so this is all quad now.

I am taking the BVH file: Thief, and using that skeleton as a starting point. I am just trying to see how well this mesh deforms, so this was supposed to be a quick test... but the shoulder just isn't right, and I usually seem to have trouble with where to place the clavicle... so I thought I would ask here.

You can see from the screenshots where I placed it, and the result. I moved it up and down, in and out, and it made a difference, but never a good one. So, is this just bad placement? Or do I need to do a lot of work either with weighting or other support bones to make this mesh deform properly? (I know the forearm and hand aren't right, but I am only worried about the shoulder joint at this point... the rest I can usually fix OK... but the shoulder always looks bad for me...)

Any suggestions? (And if anyone wants the scene file to play with or for illustration, PM me. Everything in the scene is public doman...)

http://digitalartistguild.com/Tests/Messiah/FrontRig.jpg


http://digitalartistguild.com/Tests/Messiah/TopRig.jpg

http://digitalartistguild.com/Tests/Messiah/Result.jpg

a_joke
06-28-2008, 06:16 PM
i'm gonna take a stab at it. if the first bone is the clavicle it should start at the middle of the body just below the neck and end at the very beginning of the shoulder or a little past. then from there reposition the bicep and so on. sometimes the clavicle can end in the middle of the shoulder blade area. it takes a little finagling (sp.). any anatomy reference ,bone structure or better yet yourself can be useful when you bone your characters. i hope i helped and goodluck.

catizone
06-28-2008, 11:55 PM
Look at a basic anatomy book. You can adjust from there. I wasn't sure if the first bone was to be a clavicle, or it was a shoulder bone. If shoulder bone, you would not move the upper arm bone at all.

The clavicle starts at the middle (slightly offset to the side) of the torso, at the top area above the pecs...and goes to the approximate pivot point of the shoulder bone. Animators and riggers adapt this principle to fit their desires..but within pretty strict limits. Some drop the clavicle further down into the body for deformation reasons, but the upper arm must be set at the proper pivot point.

Best,
Rick

MarkInTx
06-29-2008, 01:34 AM
Look at a basic anatomy book. You can adjust from there. I wasn't sure if the first bone was to be a clavicle, or it was a shoulder bone. If shoulder bone, you would not move the upper arm bone at all.


Well, the bone comes in from the BVH file as a clavicle. That's what it is called. It is a mo-cap file, so I don't control the fact that it is moved... clearly it is. That's part of my problem. It looks OK at rest, but messes up when the animation starts. It actually moves pretty extreme, really (for a clavicle).

I'm not sure what to do with it... maybe bury it deep into the mesh and then add another bone to ride on top of it?

Do you generally use supplemtary bones to fix these things, or go to weighting?

catizone
06-29-2008, 03:05 AM
Yes, I use supplementery bones at times, but this problem is the setup and pivot points.

You could create a Null and place it where the clavicle should start, and re-parent the bone to the Null, and get the shoulder(upper arm bone) positioned properly. Create a child bone of the upper arm, and make it long enough to reach the proper point that the elbow should pivot at, then reparent the lower arm to that bone.

This is just a workaround from where you are. I think I would reset the bones at their proper
place, and then reload the motion file. Because of your placement, the arm is bending below the shoulder area. Again, for human or animal rigs, it is essential to know anatomy.

Best,
Rick

MarkInTx
06-29-2008, 04:43 AM
Well, I can't do the bones and reload the motion, since the BVH file creates the skeleton...

But I will play around with some of your suggestions and see if I can get the shoulder right. I don't know why the shoulder is always the area that eats my lunch... but it is.

Thx.



Yes, I use supplementery bones at times, but this problem is the setup and pivot points.

You could create a Null and place it where the clavicle should start, and re-parent the bone to the Null, and get the shoulder(upper arm bone) positioned properly. Create a child bone of the upper arm, and make it long enough to reach the proper point that the elbow should pivot at, then reparent the lower arm to that bone.

This is just a workaround from where you are. I think I would reset the bones at their proper
place, and then reload the motion file. Because of your placement, the arm is bending below the shoulder area. Again, for human or animal rigs, it is essential to know anatomy.

Best,
Rick

isobarxx
06-29-2008, 09:49 AM
So, is this just bad placement?

Yes. Getting naked in front of a mirror helps a lot. That muscle that's coming over the top of the shoulder in the pose is attached to your arm, so it moves with it. You'll probably want to cheat the bones up, to help preserve the mass of the shoulder (just like you do with fingers), and move the shoulder joint back into the body about a polygon and a half or so. Then you put a bone in the rib cage, to keep that solid.

If you really want to, you can add muscle bones parented and targeted to nulls to get more stretch in the polygons. I usually do that in the back, to approximate a shoulder blade.

What's the weird spinny thing that's happening with the upper arm bone? That's in the motion file?

MarkInTx
06-29-2008, 01:14 PM
So, is this just bad placement?

Yes. Getting naked in front of a mirror helps a lot.


Hehehe... not at my age. That only serves to depress me ;-)

Thanks for the advice on placement, though, I will play with it some more. I honestly tried several different things before I put this one up here for advice. I moved the collar-bone all over and grew it and shrunk it... nothing seemed to work.

Maybe I'll load up a bunch of screen shots on my web page and link to them here to show everything I tried. I hate to flood a post with ugly screen shots, but I can't think of any other way of showing the full problem...



What's the weird spinny thing that's happening with the upper arm bone? That's in the motion file?


Yes, which may be my problem. The pose I show isn't one I created, it comes from the motion file.

The Thief.bvh (which ships with Messiah) comes in with the set-up key having the arms rotated down 90 degrees and banked 90 degrees. In order to pose it to my figure (which is in the da Vinci pose) I have to change the set-up keyframe to 0 degrees rotate.

Running it without the mesh attached, it looks OK. If I attach dummy.lwo, it seems OK, but that is a very low mesh, and who cares if its shoulder looks right... so its hard to tell.

It's when I put a "real" human on it, that things don't "look right."

I tried a lot of things to fix it.

After I had tried several different placements to get around the pinching problem in the shoulder, I went back to the beginning and also zero'd out the bank at the set-up. That might be causing this spin now. I guess I'll go back to the start and try again. Maybe I'll use Silo or zBrush to put him arms down so I don't have to touch the BVH file, and make sure I'm not doing something which is making my task impossible...

catizone
06-30-2008, 02:04 AM
Given that's the setup, try using a null (as in my previous post) to reposition the clavicle, and then another null to reposition the shoulder, but also to counter the rotation (bank I presume) that's twisting the area into a pinched point.

I would think that would do it. Or, save the first 100 frames as messiah project file and post it, and I'll take a whack at it.

Best,
Rick

MarkInTx
06-30-2008, 02:56 AM
Wow... Rick, thanks for the offer.

Let me see how far I can take it employing the suggestions before I waste your time though.

Hey... question... why add a null? I can separate the arm bone from the collar bone without adding a null. I was just curious... what does the null give me? Just a way to reorient the bank?


Given that's the setup, try using a null (as in my previous post) to reposition the clavicle, and then another null to reposition the shoulder, but also to counter the rotation (bank I presume) that's twisting the area into a pinched point.

I would think that would do it. Or, save the first 100 frames as messiah project file and post it, and I'll take a whack at it.

Best,
Rick

Suricate
06-30-2008, 07:42 AM
It might be that the problem is indeed in the BVH file. messiah's BVH import is a bit borked and sometimes rotations are imported in the wrong way. This bug has already been reported to Fori.

Regerding rigging the shoulder, I usually use Joe Cosman's setup: Attach a muscle bone at the tip of the shoulder/base of the bicep bone and target it at the middle of the spine. That way you keep the volume when raising the arm.

To cure the pinching of the shoulder when the bicep rotates along bank, you can split up the bicep into two or three bones and distribute the bank rotation between these bones (similar to the way you would split up the forearm bone to help with the hand wrist rotation).

catizone
06-30-2008, 12:50 PM
Mark,

My thought was that the nulls would allow you to reposition, without changing any info on the motion file. Motion files have a keyframe every frame as I recall. Isolating them via nulls would also allow you to rotate that shoulder bone without touching the motion file. You would probably have to add one at the elbow as well, to counter (by counter rotating it) what you had to do to fix the shoulder, so the forearm is set properly again.

CGTalk Moderation
06-30-2008, 12:50 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.