PDA

View Full Version : Question about muscle dynamic rigs


Kh4rn
03-15-2007, 01:09 PM
Hey all.

I have been trying to research on how to make dynamic muscles for characters in max. It seems like there is barely any information online about this topic, so I have decided to post this and see what ways people create muscles and add them to their characters.

In my research I found that muscles are actually modeled geometry that is skinned to a stretchy bone or a set of them. I found that the muscle can have kinds of Xforms, and flex modifiers to get a realistic muscle dynamic. Iím not sure buy I think adding a spring controller to these might also be ideal.

This is where I'm lost. How do I skin the characters mesh to a rig that has muscles and bones? I donít think itís just a simple skin modifier, perhaps even adding skin wrap.



I haven't tried any of the concepts mentioned above, these are just ideas I got from watching other people's rigs. Please correct me if I'm wrong. If you guys know better methods to go about this please explain. All your help is greatly appreciated.

peepshow
03-18-2007, 07:35 PM
HI, im in a similar predicament....im trying to rig an anatomical arm with full muscle setup. At the moment, as you stated, i am looking into stretchy bones as muscles, these are good and it then allows you to apply a variety of different modifiers to create better deformation of specific areas. Skin morph for example as a good tool for this and it allows you to pinpoint the areas where you want maximum bulge for example by moving the relevant vertices.
If your character has a mesh skin on it, i have found that there is no real need to create mesh muscles aswell. The stretchy bones, which create the basic movement of the muscle can be converted to editable polys and modified to have the same form as the muscle shape you want, again it depends how realistic and accurate you want the muscle deformation to look.
Have you checked out tutorials by Paul Neale..he uses mesh muscles to good effect!

eek
03-19-2007, 12:40 AM
Essentially with the pseudo fake muscle bone is you skinning to a bone that stretches, and by controlling this bone in accurate ways your aproximating volume preservation. In no way is this a true muscle simulation, no skin sliding/creases is happening. Unless you add musle morphs in addition and some sort of skin simulation. Or the plugin my good friend Kees wrote over at www.lumonix.com (http://www.lumonix.com).

Whats difficult with skin simulation and muscle systems is what your actually driving, skin sliding, skin stickyness, creasing, push and pull etc. Its a lot of complex systems put together.

Kh4rn
03-19-2007, 01:49 AM
That looks like a great plug in, cant afford it though.


But Iím basically just trying to figure out.

Didnít think it was so complex though. Hey Eek I have always heard the term skin sliding, when talking about muscle deformation. What does that exactly mean? And how do you achieve skin sliding in max??

eek
03-19-2007, 02:36 AM
That looks like a great plug in, cant afford it though.


But Iím basically just trying to figure out.

Didnít think it was so complex though. Hey Eek I have always heard the term skin sliding, when talking about muscle deformation. What does that exactly mean? And how do you achieve skin sliding in max??

Well skin naturally slides, based on what its attached underneath - its... all about flexors, incertion and end point of muscles. I.e where the muscle attaches and finishes, and the gaps in the middle a perfect example of this is the gap between the thumb and index finger, its kinda hangs and creases. Theres still muscles around it, so its kinda of a tension map of where the skin slides and where it doesnt, like your skin slides over your knuckles but doesnt much at the ends of your fingers.

Well the best way to make your own is either script it in c++ -its gunna be pretty slow otherwise on every vert, or do some sort of ray casting aproximation, lots of spaces to deal with there, but that might do it. Or use a cloth simulation or even morphs, some how. You could well of the the top of my head find where joints crease? and kinda drive the verts around them to slide? or something? Best thing is what i do - just imagine how the thing would work then make a test.

hmm.. so lets try this idea. Right start simple, two bones - ok so we can get the angle between the two using a dot product or some vector arthimetric. So 1 we got an angle at the base pose, and one now at the crease position.

Ok hmm.. 2 lets think.. well we want the skin to crease... so hmm maye we do a check for vert or face intersection? Also we need to find a vector in there... hmm... ok So we get all the verts that are intersecting.. and find the center of them.

Then we push the verts out from this center.. hmm.. ok thats a start. I dunno im just thinking of ideas here.

Maybe we have two volumes in each arm.. a do a check for when they intersect then have a few points that move out based on the interesection. I'll have a think..

Its complicated :)

timothyc
03-19-2007, 04:46 AM
That term "muscle bone" is a bit deceptive since it most often refers to max bones that have their stretch property turned on and set to "scale". When the skin modifier encounters this it causes the skin mesh to scale with the bone, instead of only inheriting the bones' rotations. Most of the time, when those bones are remodelled and textured to look like realistic muscles (the "stretched onion" shape and reddish with white ends) it's done for cosmetic reasons (i.e. to make the screenshot look good).

Skin sliding is tricky. You could use a 3rd party plugin but there are two "max-only" techniques I commonly use. For things like shoulder blades you can use a displacement space warp set to "plane" and given a suitable displacement texture map. That creates a very good effect of bone sliding around underneath skin. The other way is not to slide the skin at all but to slide the texture around instead. So humps and bumps in the skin surface are done via the usual means, morphs and so on, but then you morph the UVs containing the texture map, so you get the appearance of skin sliding across the surface. The texture can even be a displacement map if you want to get really fancy.

TC

twedzel
03-19-2007, 04:23 PM
skin sliding... take a pen and mark a point on your bicep. Now do a body builderesque bicep flex. Watch carefully to what that mark on your skin does. The muscle compresses and moves up towrds the shoulder, while the skin moves much less, but bulges out like it is riding ontop of the bicep muscle. On a 3d model, this becomes reflected by what the textures on the skin are doing while the rig is doing its thing.

You'll find that the skin has different thicknesses and different connection strengths to the structures below. For example, the skin on your back tends to be very thick and slides alot more than the skin on your face, which is thinner and connected more tightly to the facial structures.

Aritz
03-19-2007, 06:01 PM
And what about using cloth for skin sliding? You can conbine a skin mod+bones and cloth mod+muscles in the modifier stack.

eek
03-20-2007, 05:49 AM
Max's cloth sim is explicit i think, which isnt as stable as an implicit method like maya's for skin.

CGTalk Moderation
03-20-2007, 05:49 AM
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.