Home Technical Talk

Problem area on low-poly shoulder

Hello polycounters,

I'm doing a great deal of learning and creating at the same time... and I'm very close to being happy with the torso of my low-poly game character. I partially used this tutorial image from Ben Mathis to guide me between trying to stay low poly and have somewhat decent muscle loops.
http://www.poopinmymouth.com/process/tips/shoulder_deform.jpg

I think I've done fairly well, but I'm having a minor problem with getting the area where the upper bicep flows in the upper part of the arm/shoulder when the arm is lowered. Basically what I'm looking for are any tips on possibly weighting it a bit better or patching the mesh up a bit. This torso (including full arms and hands) is currently about 300 polys, mostly quads so close to 600 tris (not sure on my limit unfortunately... still experimenting with my Samsung Captivate).

Basic front shot:

rig1.png

With simple rig. Currently I'm trying to hold to only allowing 2 bones of influence on each vert. This could go as high as 4, but I'm trying to keep this as simple as possible so I'd really like to stick with 2.

rig2.png

Problem area when arm and clavicle bones are lowered:

rig3.png

Another angle and with the circled quad split into triangles (this is my concern for what it'll look like in-game):

rig4.png


The model will be smooth shaded ultimately, so it's not quite as noticeable... but I'm still hoping there may be an easy enough fix to get this right. I've brought the upper shoulder/bicep about as far forward as I think I can without making it look too odd and adjusting the weights to not allow the arm to pull the inside vert in as much must makes the arm look too smashed. I'm wondering if just moving the flow of the upper chest completely over the shoulder is the way to go...

Thanks ahead of time to everyone... you guys are great.
-The Toad

Replies

  • Eric Chadwick
    Options
    Offline / Send Message
    Well first of all, the pivot of the humerus bone should be closer to the top of the shoulder. It doesn't need to be anatomically-correct in position, but should be closer than you have.

    The clavicle is also pivoting in a weird place.

    Also it would help to add an extra loop between the armpit/shoulder and the tricep/bicep, as you currently don't have much geometry to deform there.

    Some more help here
    http://wiki.polycount.com/ShoulderTopology
  • die_Kröte
    Options
    Offline / Send Message
    I'll definitely use that reference, looks like Ben's is in there too. Between those images and what you've said, I'm fairly clear on what I need to change in the rig and mesh. It's an interesting balancing act that is played between polycount and deformation...

    Per your advice and the images, I'm going to attempt to change the flow slightly running the upper chest more over the shoulder than into the bicep and get a couple more loops in there (and pull the rig pivot points around slightly). Wish me luck.
  • Mark Dygert
    Options
    Offline / Send Message
    You should not only worry about what will happen when the arm comes down out of a T-Pose but also what happens when it rotates forward, or up above a T-Pose. I agree with Eric the Clavicle is positioned kind of weird. You have to be careful with the clavicles start position offset from the end of the spine, some exporters will draw in another bone between those links if they are not EXACTLY on top of each other, so you could inadvertently be adding more bones to your rig.

    Also the shoulders should have quite a bit of the upper torso weighted to them as demonstrated at the bottom of the page here http://www.hippydrome.com/ShldrUD.html

    I would try something like this for starters, but its just a guess I might of shot too high and outside.
    ShoulderJointPlacementDrKrote.jpg

    I would also add two loops around the shoulder to help with deformation a little.
  • die_Kröte
    Options
    Offline / Send Message
    On the underarm to shoulder flow... it's currently as in red (more of a upper bicep to shoulder) but I'm wondering if it would be much better if modified so it flowed more like the blue path? There seems to be examples of both kinds of flow. I repeat... what a crazy balance of polycount to getting deformation right!?! It's fun learning though...

    rig5.png

    I should add... I'm setting vert weights manually and on top of that, coding everything on this... game engine, even the export python script from blender for the weights, so once I get the weight percentages correct, those exact values (and pivot points which I'll probably just take down manually) will be going directly into Open GL ES with my own import code.
  • Mark Dygert
    Options
    Offline / Send Message
    I would take it under the armpit because it would cut that long edge in half and give you a vert to weight to the arm/spine letting it be a little more flexible.
  • die_Kröte
    Options
    Offline / Send Message
    Here is a progress shot. Took the polycount a bit higher... but I think I'm still okay with where the shoulder is at. Not thrilled with the area just around the neck... will probably revisit it tomorrow.

    rig6.png
  • Mark Dygert
    Options
    Offline / Send Message
    Yea that looks good, but the real test is how it deforms and weights.
  • die_Kröte
    Options
    Offline / Send Message
    Vig wrote: »
    Yea that looks good, but the real test is how it deforms and weights.

    So noted... hopefully will be able to work on that today.
  • die_Kröte
    Options
    Offline / Send Message
    Gotta throw another question out here... hopefully it'll be seen since it's a double post...

    I was trying to save a little bit of memory using only 2 bones per vert on influence, but with this new mesh it's really feeling like I need to go with 3. It's not a ton of memory, but is there any significant performance difference going with 3?

    EDIT - Going to have to stop with the "okay I'll try that" posts because I get the feeling that it's easy to miss any real new progress posts... but in any event...

    I had been assigning vert weights manually... but instead I moved the rig around to more proper locations, and let Blender try it with bone heat. I have 2 bone influence in most areas, but 3 in quite a few especially in the upper pectoral area. I gather this is likely to be the way to go after tweaking the weights a bit here and there. The deformation is actually looking pretty nice now.

    I am, however, getting an unusual "ballooning" effect when the arms are brought upwards... my guess is because I need to do a rotation on the upper arm at a certain point rather than simply treating it as a hinge. Hope to have this hashed out the rest of the way soon.
  • Dim
    Options
    Offline / Send Message
    Dim polycounter lvl 10
    This may help a lot with shoulder topo: http://www.blendercookie.com/2010/03/31/topology-review-shoulder/

    Could you post an image of the ballooning?
  • die_Kröte
    Options
    Offline / Send Message
    Dim wrote: »
    This may help a lot with shoulder topo: http://www.blendercookie.com/2010/03/31/topology-review-shoulder/

    Could you post an image of the ballooning?

    Thanks Dim, since I indeed use blender, I've watched quite a few of Jonathan Williamson's videos, but it has been awhile since I've been to blendercookie. Just the placeholder image for the video alone is helpful.

    I'll come back soon to post another update... the ballooning was 100% just a weighting issue. After letting blender weight by itself from bone heat, I'm just having to tweak them a bit manually afterward. I'm really close, actually, to a result I think I can stick with. I need to get moving on anyway... lots more to do!
  • Eric Chadwick
    Options
    Offline / Send Message
    Oooh, nice one Dim! Added to the wiki, along with a link to the excellent Hippydrome examples.
  • die_Kröte
    Options
    Offline / Send Message
    Well, oddly enough (or not oddly, I don't know...) I actually went back to my original mesh and decided to work on keeping the flow back up the pecs and over the shoulder. I'm pretty darn happy with the result. I've still got a bit more weight work to get the full arm rotation worked out, but it's pretty darn close. Here it is:

    rig7.png


    rig8.png


    rig9.png
  • Eric Chadwick
    Options
    Offline / Send Message
    That's great. Proportionally the chest and trunk are too small compared to the arm, might want to check the model.
    http://wiki.polycount.com/CategoryReferenceAnatomy
  • die_Kröte
    Options
    Offline / Send Message
    Thanks, I appreciate that!

    I may go ahead and switch references to the link you posted, I think it's better than the one I was using off of the blue-print database... (blue-prints.com... I think it was... it's been awhile since I got it).

    The arm is admittedly a bit beefy... that is actually causing some issues when bringing the arm forward. I'm still much closer than when I started and see a pretty close light at the end of the tunnel on this area and I'm hoping that the reference switch will help being it home.

    Still have a ways to go on the rest of the mesh, unfortunately, HA. I'm reaally not looking forward to the hips... I have a feeling I'll be running into the same trouble. I'll definitely be browsing the wiki though for help on that.

    Thanks to everyone's advice... hobbyists with dreams of gaming greatness wouldn't get far without help from the pros.
  • Mark Dygert
    Options
    Offline / Send Message
    I think it looks good, I'd roll with it as long as it rotates forward well, and that's if the character actually does those kinds of motions.

    The only spot I would see an issue is in the armpit, it "could" be helpful to have an edge/vert there for deformation, but it really depends on how it rotates and if the armpit vert clips through the long thin chest poly, possibly, but it might not be an issue at all.
    ShoulderJointPossiblePop.jpg
  • die_Kröte
    Options
    Offline / Send Message
    The original reference was titled "athletic male" and the chest and shoulders themselves were much larger. I loaded up the new reference and I'm finding the differences are more drastic than I thought. I am, however, modeling for a bit more slender character, so the new reference is probably better.

    Thanks Eric and Vig... I've learned a TON in just a few days. When I first started to learn Blender, it was all subsurface stuff for nice renders... so low-poly for games is still pretty new.
  • die_Kröte
    Options
    Offline / Send Message
    Needing to resurrect my old thread here with a new question, though still working on getting a shoulder right. I've had to take a bit of a hiatus, so I've not be at it this whole time, but in any event...

    I may very well be being overly perfectionist (trying to get as wide a range out of a rather low-poly shoulder as possible) but I'm wondering if what I'm attempting might be normal or not.

    I've split my upper arm bone into 2 pieces. One of the places where I can't seem to get the deformation right, is when the upper arm twists. So with two bones, the lower can control most of the twist and the upper most of the rotation.

    Is this a good/common idea? Am I making too much trouble for myself?
  • Neox
    Options
    Offline / Send Message
    Neox godlike master sticky
    you wanna know more about the shoulder? or well rigging in general? here is a great source

    http://www.chrisevans3d.com/
  • die_Kröte
    Options
    Offline / Send Message
    Thanks for that Neox, that may be a bit more out of my league than I need, but I'll definitely give some of those tutorials a review when I have some time.
  • Neox
    Options
    Offline / Send Message
    Neox godlike master sticky
    well of course there is a lot more information than you would need in your special case now, so maybe just go into research and download the xray videos of the human shoulder in movement :)
  • Eric Chadwick
    Options
    Offline / Send Message
    Chris' site is full of great stuff. Go rigporn!

    While it's true that the shoulder is the hardest area to rig (even for the really experienced riggers) you can still get a decent result if you do some research and testing.

    Also this page from hippydrome is informative, just for showing how the shoulder bones move around (not just rotate!) ...
    http://www.hippydrome.com/ArmsShldrRot.html
  • Mark Dygert
    Options
    Offline / Send Message
    die_Kröte wrote: »
    Needing to resurrect my old thread here with a new question, though still working on getting a shoulder right. I've had to take a bit of a hiatus, so I've not be at it this whole time, but in any event...

    I may very well be being overly perfectionist (trying to get as wide a range out of a rather low-poly shoulder as possible) but I'm wondering if what I'm attempting might be normal or not.

    I've split my upper arm bone into 2 pieces. One of the places where I can't seem to get the deformation right, is when the upper arm twists. So with two bones, the lower can control most of the twist and the upper most of the rotation.

    Is this a good/common idea? Am I making too much trouble for myself?
    It really depends on the motion the character is required to make and if you can automate the twisting and if you can make that automation bulletproof. A few rigs have twist bones for the bicep and forearm already included in the rig, you just need to turn them on.

    So you're thinking about doing something like this?
    TwistBones.gif
    Biped, CAT and PuppetShop for 3dsmax are the easiest to use and set up. There are others too. It's possible through simple expressions to do automated twist bones in almost every 3D app its just a matter of how easy the automation is to set up.

    If it can't be automated and must be hand keyed, its probably just more of a headache and one more piece to worry about.

    If its automated and it works well, you might as well use it. That is if you have the bones for it and if the automation is bulletproof.

    Typically I use 3 twists for the wrists, and if I'm going to do bicep twists I normally only use 2.
  • die_Kröte
    Options
    Offline / Send Message
    Here's basically what I have in blender and well... it's the only tool I'm using. Oddly enough it does work out for what I need done, and I've written some export scripts for getting weights out in per bone so everything is actually working pretty well with respects to getting the information to the "game engine." The manual tweaking of the weights per vert is of course the most painful part, but not terrifically horrible.

    upperarm.png


    Basically I did this just to take the stress off of twisting in the shoulder region, and it's working reasonably well. I guess I was primarily just trying to get a feel if this was a common solution or not something used at all.

    It hasn't been mentioned in awhile, but to throw it out there, this will ultimately be for a mobile game (higher end Android devices).
Sign In or Register to comment.