Home Technical Talk

Getting good shoulder deformations?

motives
polycounter lvl 18
Offline / Send Message
motives polycounter lvl 18
I have just started to learn the tricks of rigging and skinning/weighting and its alot harder than i thought!
feels like the first time i was tryin to unwrap a model hehe

my biggest problem is the shoulder and how to assure a good deformation there. For example, i now got pretty good deformation when rotating the arm from default position (pic 1) to the side of the arm (pic 2). However if i then would rotate the arm forward, into something like a firing position i get really bad deformations due to the twisting of the shoulder geometry (pic 3). (pic 4 is default position)

deformations.jpg

i guess my question is, how do i setup my geometry the best i can for this kind of arm movement?

Replies

  • Eric Chadwick
    Options
    Offline / Send Message
    You're right, the shoulder is one of the most difficult areas to rig.

    One way to do this is to use more bones, if your game allows it, and do some custom controller work where the new shoulder bone only inherits a fraction of the angles of the humerus/clavicle/scapula bones, and the verts on the top of the shoulder are weighted partially to this new bone (or bones). Can get tricky.

    Here's a reference guide for shoulder deformations...
    http://staff.ci.qut.edu.au/~barkerc/Final%20PAN%20website/shouldersetup.htm

    Another way, use separate game models for different motion types... weighting each one to work well for the limited motions it has to do. Depends on the game though, and increases memory/storage use.

    There's lots more, maybe someone else can chime in.
  • Thermidor
    Options
    Offline / Send Message
    Thermidor polycounter lvl 18
    Its inportant to make the rig follow the human body as close as posible , i used a clavicle/scapular control bone to aid my deformations , and i got it almost perfect , im gona write a tut on it soon ....

    anyway , when limiting joints , move your own arm about and see what extents you can get it to without moving your clavicl or scapular. you will find the arm rotations are really quite small , and its a combination that makes it all work .
  • EmAr
    Options
    Offline / Send Message
    EmAr polycounter lvl 18
    Although the already posted article covers the shoulder in great detail, here's a tiny one which helped me a lot.
    http://www.gamasutra.com/features/visual_arts/19981113/charmod_07.htm
  • Lore
    Options
    Offline / Send Message
    Lore polycounter lvl 18
    So the solution is to add more bones and weighting the mesh to those and setting up helpers. But here comes a perplexing questions. What if you're limited for a game to the amount of bones you can use like say Max's Character Studio’s biped?
  • thomasp
    Options
    Offline / Send Message
    thomasp hero character
    you're not limited by biped in terms of bone amount - it let's you attach dummies, or entire bone hierachies to any of it's joints.
    the bad thing is that you cannot do parameter wiring to e.g. read biped body part rotation and accordingly position a deformation helper bone. biped doesn't seem to expose that kind of information and you'd therefore would have to animate that manually.
    also, animation of custom bones is not saved within bip-files and possibly not available for pose copying nor animation blending.

    of course if you're using a complex rig to aid deformations here and there and automate stuff, chances are that your game exporter will either not eat your setup or you'll be exporting lots and lots of unneccessary bones.

    for these cases i'd use a complex rig with the full bells 'n whistles for animating and a low res setup for skinning the actual geometry to. i'd then drive the low res skeleton through the high res one by constraining certain parts and baking keyframes prior to export.
    lot's of work to set up but pretty rewarding in the end.

    i'm currently playing around with baking dynamics animation down to regular bone chains for getting cloth/hair animations into a game.

    eric: that tip about using different rigs/skinning setups on the same character is interesting. do you swap out these models ingame from one frame to the next - does the mesh itself have to be swapped out or is only the skinning information replaced?
    as long as artists are not allowed to use corrective morphs, this seems to be a viable replacement for the time being as long as the differences are not too dramatic.

    edit: my comments regarding biped are related to experience with max 4, 5 versions. i haven't checked out max 7 biped. maybe they opened it up a little more.
  • Eric Chadwick
    Options
    Offline / Send Message
    that tip about using different rigs/skinning setups on the same character is interesting. do you swap out these models ingame from one frame to the next - does the mesh itself have to be swapped out or is only the skinning information replaced?
    as long as artists are not allowed to use corrective morphs, this seems to be a viable replacement for the time being as long as the differences are not too dramatic.


    Like nearly everything technical, it depends on the game engine.

    Not to toot our horn or anything, but our engine is the only one I have a lot of experience with as far as bone blending goes, so... we can blend between different characters using different skeletons/weights, as long as the # of bones is the same, and the hierarchy is the same. But the bone lengths, animations, verts weights, etc. can be different. The character never needs to be swapped out, it just transitions into the new bones/vert weights.

    So that's one way. We can do corrective morphs too. Kind of laborious at present, as we have only pre-alpha rudimentary tools. But the compression scheme we use makes it inconsequential filesize-wise if we want to blend multiple rigs.

    Older engines like QuakeIII just used morphing, so you could just swap out the model if you want.
Sign In or Register to comment.