Home Technical Talk

Do you use elbow bones?

I use an extra bone between upper arm and forearm for my character, to try and avoid the overlap problem when the arm bends. Is this wise or should I lose the extra (elbow) bone and just try proper bone placement? Does anyone else do this?

Replies

  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    Well it is common practice to use twist joints in the forearms and shoulder. This allows the rotation of the wrist to be spread throughout the forearm, instead of getting the candy wrapper effect.
  • Mark Dygert
    Options
    Offline / Send Message
    That totally depends on the topology and bone counts that are allowed. Like Bardler pointed out twist bones are pretty common, especially down the forearms. The bicep bones seem to becoming a little more action.

    Are you having trouble defining the elbow? Because there is a lot you can do with topology and weighting with just two bones. It's always preferable to use the least moving parts as possible.
  • acitone
    Options
    Offline / Send Message
    Hey Mark. I was hoping you'd answer, I'm not sure how many people here do rigging but you know rigging so thanks for the help. I'm using a few twist bones and although I'm having a difficult time with the weight distribution on those, I was wondering if people normally use an "elbow bone". You know when the character arm bends, sometimes the forearm and upper arm overlap. I was thinking including a short bone for the elbow would help counter this effect, but I found out you can kind of fix this by just moving the pivot forward.
  • monster
    Options
    Offline / Send Message
    monster polycounter
    I don't normally use an elbow bone, but one project I did had a high definition yoga girl. I used twist bones, butt bones, hip bones, as well as joint bones on the elbows, wrists, and knees.

    She was the only character on the screen and you could zoom in pretty close.

    yogabones.png
  • Mark Dygert
    Options
    Offline / Send Message
    That's a good looking rig =)

    I think he was hoping for some kind of functionality like MetaBones in "bones pro"? Where you can insert objects at joints and weight to them? MetaBones are animatable and come with a few parameters that you can adjust to affect how the skin behaves. They are great for collapsing butt syndrome.

    http://youtu.be/eUvjY6dWrgo?t=1m

    BonesPro really is very handy but can't really be used because engines don't support it and probably for good reason I bet it's a resource hog. But for rendering it makes skinning a dream come true and the metabones are quick and light enough to give good results.

    Maybe in a year or two we'll see something like this and muscle sims start to pop up in games.
  • acitone
    Options
    Offline / Send Message
    Hi y'all. I made a little demo of what I was trying to explain here

    arma.gif

    The forearm and bicep sort of collide or overlap, but when an extra/elbow bone is added like in the top one it's fine. But when the bone pivot is moved toward the area that bends it helps, but this moves the hand bone and also makes the elbow area soft instead of pointy like how it should look. That could be fixed with MetaBones in Bones Pro though, but in Skin modifier maybe tricky. I tend to have trouble with the Bulge Angle gizmo things in the Skin Modifier, hard to make them look neat.

    I saw this in Half Life 2 while replaying it a few days ago :

    hl22013050320445649.jpg

    Looks pretty bad. (Hey sorry for the nude mod y'all. Was just testing it out...ahem)

    Nice rig by the way monster. I've found I have trouble too with flexible characters as the leg tends to collide with the torso when it goes up for a vertical kick. We can get into that a bit too if y'all want to talk a bit about it. I've been trying to counter that by making a hip bone and making both he hip bone and butt bone move forward when the leg goes forward, to give a little swing room.

    Mark, so you use Bones Pro? Cool. I like it, except the only problem is it doesn't like changes to geometry at all. The MetaBones are great though.
  • poopipe
    Options
    Offline / Send Message
    poopipe grand marshal polycounter
    for me the bicep overlap is acceptable in most cases provided you've placed your pivot well and the mesh is well constructed and properly weighted . both your animated examples look wrong to me.
    the two bone setup has bad pivot placement (upperarm is too short) leading to poor weighting but holds the elbow form better,
    the three bone version is crushing the forearm, bicep and elbow badly and leaves you with spaghetti arm. it could be weighted around but i can't see how it'd give you better results than 2 bones done well.


    moving the elbow pivot forward as you have isn't a guaranteed fix. its not a bad call in this instance but in my experience shifting joints away from their natural pivot tends to come out looking unnatural.

    re: the hl2 image- there's no way the character could bend their arm that tight in reality because muscles get in the way. if your rig fails in impossible poses id argue the blame lies at the feet of the person posing it ;)
  • acitone
    Options
    Offline / Send Message
    Poopipe, the hl2 image is not an impossible pose. Look closely, she is touching her hair. I think the pivot is just placed too far back and that's why the overlap is that bad.

    If you curl your forearm back as if curling a barbell, it should go back pretty far to the point where you can even use the hand to touch your own shoulder on the same bending arm, unless you are 1970's Arnold. There's really no reason the overlap should be as bad as you see Alyx in that image. If she was holding a phone up to her ear, I imagine it would look the same cause her hand is right by her ear.

    I agree that the bicep on my arm is kinda short, but that has hardly anything to do with overlapping though ; that happens because of character arm girth not length.

    Feel free to post an image of any corrections or examples though man I am open to being corrected and learning the right way, and taking a screen cap of what you consider to be right won't take much of your time.
  • Farfarer
    Options
    Offline / Send Message
    I think, for things clipping into things/overlapping, so long as the visual volume remains accurate, then it's not that big a deal.

    In real life, there'd be mass getting pushed out of the way and being squished, but the general form usually remains fairly accurate to the clipping version you see in games.

    For things like wrists where there is obvious volume loss if the hand his twisted ("candy wrapper" effect) then extra bones are probably a good idea.


    Also, the HL2 naked Alyx mod is probably as well weighted as it is tasteful. I wouldn't use that as a yardstick against anything.
  • acitone
    Options
    Offline / Send Message
    Farfarer wrote: »
    Also, the HL2 naked Alyx mod is probably as well weighted as it is tasteful. I wouldn't use that as a yardstick against anything.

    I agree with everything you said Farfarer. Volume preservation is very important indeed. I've seen that in most of the later games, the arm bends are not nearly as badly overlapped/clipped. The only rigging issue I saw in Tomb Raider for instance was in a scene where Lara is hanging by her feet while having to shoot down enemies, her shoulder goes into a candy wrapper effect, but that's only a very brief scene so it's not that big of a deal and is probably not even picked up by most players.

    With the HL2 Alyx though - I believe the same thing actually happens without the nude mod, as I noticed before applying the nude mod. I can understand defending a great game, I'm just looking for solutions to these small issues so that characters can look and deform better, not to nit pick nor bash any very accomplished riggers (like those who worked on the HL2 games), that's all.
  • Farfarer
    Options
    Offline / Send Message
    If you check out Alyx in the SourceSDK, she's actually got a pretty complex skeleton - lots of little helper bones. Although there's still a lot of clipping, especially in thigh/torso interactions.

    I think the EP1/2 version is more complex than the HL2 version. Worth looking at that?

    For a hero character, especially one that has to be expressive as Alyx does, it's probably worth the extra effort/cost.
  • Mark Dygert
    Options
    Offline / Send Message
    arma.gif
    I try to avoid the deformation on the top and try to get something like on the bottom. Elbows have the "olecranon" which gives the elbow a point, when arms go all bendy straw I view it as a failure to properly define the elbow.

    The lower set up is more in line with what I typically do to keep the elbow from collapsing, well neither pivot is placed correctly but its better before it slides forward.

    As far as the overlap, it really doesn't matter that much. It's better to have some clipping and have a pointy elbow rather than a mushy elbow and no clipping.

    In a perfect world you would be able to use muscles (CAT has good muscle system that works with non CAT rigs), or "joint angle deformers" that allow you to resculpt the trouble areas when the bones bend in certain ways. It's like a morph target for the joint that blends based on the angle of the joints. But none of that is really allowed in games 'right now'. A few games have pulled off some things but they are very specific to certain cases and to those engines.
  • acitone
    Options
    Offline / Send Message
    I thought the joint/bulge angle deformers would work inside game engines. I thought they would just register as regular bone deformations. What about if you bake the animation onto the mesh? You can do that with cloth sims right? And they will play in the game engine? There's a Unity plugin called Mega-Fiers that allows morph target use in that engine.

    Any chance you can post an image of where the pivot should be?

    I've never looked at the Alyx model before and don't know much about the Source SDK but I want to look now, just to see what the skeleton looks like and see if I can't learn something new.
  • Boozebeard
    Options
    Offline / Send Message
    Boozebeard polycounter lvl 11
    acitone wrote: »
    Poopipe, the hl2 image is not an impossible pose. Look closely, she is touching her hair. I think the pivot is just placed too far back and that's why the overlap is that bad.

    I disagree, definitely an impossible pose. Look how close her wrist is to her shoulder
  • Mark Dygert
    Options
    Offline / Send Message
    acitone wrote: »
    I thought the joint/bulge angle deformers would work inside game engines. I thought they would just register as regular bone deformations.
    It is vertex animation like a morph target which can be very expensive and memory intensive. So it doesn't get used that often, at least not in the PS3/360 generation. It really depends on how many verts are in the mesh (not just those that are changing). So if you have a 40k model and are only tweaking 20-30 tris it is storing information for all 40k tris that aren't doing anything.

    There also needs to be a system setup that when the bones move in a certain way the morph is blended to. That system works in max and Maya but I'm not sure if the major engines have bothered to set it up because it is a huge resource hog.

    I could be wrong but for each morph that you create you are duplicating all of the the verts in that object and storing their old/new positions, even if they don't change position. Every new morph you create makes a new duplicate.

    If you're going to have blended morph targets on a skinned mesh it will probably be in the face where you can normally break off the head from the rest of the mesh (lowering that individual objects vert count) and the morph targets can really make a huge impact on facial animation. Where a slight tweak to an elbow on a 40k mesh is pretty much a waste.

    With joint angle morphs/deformers, it can be easy to move the bones in a way that freak out the morph and cause it to blend in an undesirable way. The more morphs you add, the easier it gets for it to screw up. That can happen because of how game animations are put together, a lot of different animations get blended together depending on what the player is doing or holding.

    For example someone might be crouching and looking up while holding a 2 handed gun and then switches to a grenade and then hugs a wall, there isn't one animation for that, but a bunch of animations that are blending together.
    acitone wrote: »
    What about if you bake the animation onto the mesh? You can do that with cloth sims right? And they will play in the game engine? There's a Unity plugin called Mega-Fiers that allows morph target use in that engine.
    You can do that, it can be expensive and you typically keep the vert count very very low, much lower than a character would have. Those meshes also aren't typically weighted to bones and being driven by bone based animations which are typically blending run and walk, jump and land, shoot and crouch ect...
    acitone wrote: »
    Any chance you can post an image of where the pivot should be?
    http://hippydrome.com/LElbow.html
    This is a great resource when it comes to toplogy, weighting and joint placement. The guy who put this site together is a technical director at Pixar.

    Personally I think his elbow modeling is a little weak and his elbow rounds out a bit too much (for film) but this is about as good as you can with what most games allow.
  • Mark Dygert
    Options
    Offline / Send Message
    Missed this... Opps
    acitone wrote: »
    Mark, so you use Bones Pro? Cool. I like it, except the only problem is it doesn't like changes to geometry at all. The MetaBones are great though.
    Skinning in general doesn't react well to changes in geometry (below skin). Above skin it handles it pretty well but then some exporters don't like other modifiers on top of skin so you are risking it working fine in max but not after exporting, so typically you have to redo skin, which isn't as painful as it sounds there are workarounds (more on that in a min)

    Skin doesn't like edits below That is because each vert gets a number and each number gets assigned bones and weights.

    In the skin modifier in max, you click Weight Table to see this chart.
    it looks kind of like this:
    Vert #1 Spine1 .24, Spine2 .25, Spine3 .51
    Vert #2 spine1 .12, spine2 .72, spine3 .16
    ect...

    When you make changes (below skin) to the geometry it changes the vert numbering and what was vert 1 is now vert 59723 and the new vert 1 has the weighting that was assigned to the old vert 1.

    The modifier stack gets evaluated from the bottom up and this is why going back down the stack and making edits can be dangerous and unpredictable if you don't know about the vert numbering being passed up the stack.

    Workaround:
    Typically when you need to make geometry changes to a mesh after its been skinned (you're doing it wrong, you are putting the cart before the horse, but it happens), you duplicate your mesh make your changes, skinwrap it to the old mesh and convert that to skin and delete the old mesh.

    SkinWrap isn't going based on the vert numbers when it copies the vert weights, but their positions in world space. It looks for a vertex on the source mesh that is in roughly the same position as the target, if it finds a vert it copies its weighting, if it doesn't it takes a guess based on other verts in the area. This is a VERY slow process and eats up a lot of resources, but you can then convert this to skin and speed it back up.
  • acitone
    Options
    Offline / Send Message
    you duplicate your mesh make your changes, skinwrap it to the old mesh and convert that to skin and delete the old mesh.

    SkinWrap isn't going based on the vert numbers when it copies the vert weights, but their positions in world space. It looks for a vertex on the source mesh that is in roughly the same position as the target, if it finds a vert it copies its weighting, if it doesn't it takes a guess based on other verts in the area. This is a VERY slow process and eats up a lot of resources, but you can then convert this to skin and speed it back up.


    I haven't learned the Skin Wrap modifier yet so I don't really know about it, which kind of makes it hard to understand this part, especially the converting to skin part. I guess it's time I open up the manual on Skin Wrap modifier, it sounds useful.
  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter
    Interesting discussion - I am also wondering why such an extra bone is not being used more.

    I actually think that it has a lot to do with people assuming that "it makes sense" to only use one joint because, well, an elbow is just an hinge right ? ... while in reality it isn't.

    The extra elbow joint is used a lot in high quality action figures - I don't see why it shouldn't be used in CG !
  • acitone
    Options
    Offline / Send Message
    Excellent point Pior. I actually noticed that too just recently while looking at a Chun Li action figure online.

    That extra joint for the elbows is apparently there to help the arm bend at a more acute angle. If it's not there then you get only a partial bend, or in our case with animation, an overlap.

    The only noticeable downside to the extra joint system as mentioned is the elbow not being pointy anymore because of that extra joint. If doing something besides games that can be fixed with MetaBones in BonesPro or the Joint/Bulge Angle Deformers in the Skin Modifier, and I'm sure Maya and the others have similar or better muscle stuff.

    I've also done morph targets - I'll create a morph target of my arm mesh with a more pointy elbow, then I'll drive the value of that morph target with my arm control gizmo. So that every time I take the arm gizmo to bend the arm, I can also drive the value of that morph target to make the elbow pointy. I dunno how many do this but it's sort of a cheap workaround, if you will.

    I've done that with those tendons on the neck that are really pronounced when you turn your head too by making 2 morph targets, one for left head turn and one for right head turn, and driving it automatically with the head control gizmo in the rig.
  • Farfarer
    Options
    Offline / Send Message
    In the action figures, isn't it only there because it's solid plastic and so can't clip itself (or deform/push itself out of the way)?
  • Mark Dygert
    Options
    Offline / Send Message
    I think extra elbow joints don't typically get used because there are other bigger problem areas that need more attention and you get good really good results with just two bones.

    The elbow only bends on one axis, like the knees and fingers. Those joints don't really show up on the radar of problem areas like the wrists, shoulders, hips and ankles do. They rotate in many directions and typically have all kinds of problems that demand attention.

    Don't forget that the number of bones that can influence a vertex is currently locked at 3-4 by most games. If you add twist bones for the wrists and bicep (to help out with more important areas) and then add an elbow bone you could end up bumping into a pretty messy situation.

    acitone,
    That's all the joint angle deformers are doing. It just automates the hook up of the joint angle and the morph while also giving you a simple interface within the skin modifier to manage them. In Maya you have to hook it up exactly the way you described, its a much more manual process but the end result is the same. There might be some scripts floating around that help.
  • acitone
    Options
    Offline / Send Message
    ^ Oh I see. I never knew that you were essentially creating a morph target by using the bulge/joint angle deformers. That makes a lot of sense.

    I wonder why people often don't talk about Physique. I'm happy with the Skin modifier but doesn't Physique have muscle and tendon sims built in? I wonder is it possible to use Physique with Bones or just Biped.

    You're right though Mark there are much bigger problem areas that do require more attention than places that only bend on one axis like the elbow. I agree with the lot that claim the shoulder area to be the biggest problem area. Once that's done, it's a good accomplishment.

    Then you got the place where the thigh bends which can also be a problem. Placement of the bone pivot by the hip is crucial. I would really like to see how people like those at Capcom rig flexible characters like Chun Li around the hip and leg area.

    I do use knee bones, but I guess their importance is based on the size of the character's legs since muscular legged characters may overlap more when the knee bends same as the elbow.

    That meme cracked me up btw - "Maya has the best animation tools", "yeah but you have to write them", "hmm"..lolz
  • jfeez
    Options
    Offline / Send Message
    jfeez polycounter lvl 8
    I had to rig a pretty buff guy not too long ago with massive forearms and because of bone constraints i couldn't use the extra elbow joint =( But when i tested it the difference in deformation was noticeable (at least to me xD)so i think it does have its place. Ive seen the double joint setup used on fingers as well, tho that really seemed like a waste imo. I would love to see how capcom set up their flexible character rigs, hips can be a pain (time to do some experimenting)

    Having switched to maya recently for a job interview i can definitely relate to that meme
  • acitone
    Options
    Offline / Send Message
    ^ I agree jfeez that the fingers don't need the double joint setup. One mistake I tend to make with fingers sometimes is making each finger link too long. If you pay attention, when you bend your index or any finger, there's no gaps between the finger links. If there are gaps it probably means the fingers are too long, like if your character hand has any space through the hand when a tight fist is made.

    What I usually do then is place an edit poly on top of the skin modifier and push polys around until there isn't so much space between the fingers, then move the edit poly below the skin modifier and collapse it. I do that with shoulders too, which are a pain of course.

    About the Capcom, one dude actually extracted all the Street Fighter IV characters from the game and exported them as obj's but I don't remember if the rigs are included. It would be a real learning experience to see how they rig their flexible characters indeed, especially Chun Li who does the splits often.

    I've tried making Reactions for hip/butt bones to move and rotate forward/back/sideways depending on which way the leg is bending to give more pivot room and help with the deformation. If you look at the way cheerleaders do the high kick too, their torso tends to cave back a bit when the leg goes up, so simulating that for the animation also kind of helps with the leg-colliding-into-torso problem a little.
  • poopipe
    Options
    Offline / Send Message
    poopipe grand marshal polycounter
    acitone wrote: »
    Poopipe, the hl2 image is not an impossible pose. Look closely, she is touching her hair. I think the pivot is just placed too far back and that's why the overlap is that bad.

    If you curl your forearm back as if curling a barbell, it should go back pretty far to the point where you can even use the hand to touch your own shoulder on the same bending arm, unless you are 1970's Arnold. There's really no reason the overlap should be as bad as you see Alyx in that image. If she was holding a phone up to her ear, I imagine it would look the same cause her hand is right by her ear.

    I agree that the bicep on my arm is kinda short, but that has hardly anything to do with overlapping though ; that happens because of character arm girth not length.

    Feel free to post an image of any corrections or examples though man I am open to being corrected and learning the right way, and taking a screen cap of what you consider to be right won't take much of your time.

    screengrabs are a bit awkward on a phone ;)

    its not the proportions of your arm mesh but the position of the pivot relative to the mesh thats off. shifting it towards the hand slightly would give better results.

    when you put your hand up there your elbow will naturally point forwards and your clavicle will raise. also your bicep will ball up and leave a gap at the elbow for your forearm to move into. you can't do that without a muscle sim or expensive morph animation.

    the main thing to concentrate on is maintaining volume in and around the joint. that's what you see in silhouette and thus is what your brain interprets as right or wrong.
Sign In or Register to comment.