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)
i guess my question is, how do i setup my geometry the best i can for this kind of arm movement?
Replies
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.
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 .
http://www.gamasutra.com/features/visual_arts/19981113/charmod_07.htm
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.
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.