Detachable body parts

Started by
4 comments, last by yanuart 21 years, 5 months ago
I use skinned mesh with bones system for my character. How do you make your character detach his body part, do you make your own part of his body into a single mesh ? And then render the part when the player detach it (for example when someone slice his hand) instead of the skinned mesh ?? Can somebody give me a good idea where to start ?
Ride the thrill of your life
Play Motorama
Advertisement
Usually, you can make places where you can cut your model, like at the wrist, elbow, etc. Model both a whole limb and a stump(after the limb get chopped). Only draw the limb until it gets chopped off, then load the hand as a seprate model, and display the stump and not the hand....

That way you cover not only your model, but also the bloody stump thats left after the arm is cut off...

I think this is how rune does it, but I''m not sure...you cannot quote me on it :-D


~~~~~Screaming Statue Software. | OpenGL FontLibWhy does Data talk to the computer? Surely he's Wi-Fi enabled... - phaseburn
Good trick for single mesh characters with bones systems:

Make a separate mesh for the body part to be "detached". At the time, create this part mesh at the position and give it whatever physics you want. To make the original mesh go away, set the scale of that root bone to 0,0,0 and that will shrink that part and all the children down to nothing.
quote:Original post by JeffLander
Good trick for single mesh characters with bones systems:

Make a separate mesh for the body part to be "detached". At the time, create this part mesh at the position and give it whatever physics you want. To make the original mesh go away, set the scale of that root bone to 0,0,0 and that will shrink that part and all the children down to nothing.


That's pretty neat, I never thought of that. It could actually be used for more than just detachable parts. However, if you use that trick too often, you'll end up with lots of hidden faces that will still be processed by the renderer, even if not visible (though quickly rejected). Perhaps include some form of geometry culling, for early rejection based on the bone's matrix ?


[edited by - Yann L on November 12, 2002 8:24:16 AM]
In my own designs I was thinking about just putting a flag on the joint that tells the renderer whether or not to continue rendering down that joint.

Another value would tell the renderer which joint to START rendering, possibly with a configurable offset for the first joint drawn.

That way, it would cover losing a limb, and the limb falling away (a second mesh told to start rendering at the shoulder)would be represented with an accurate center of rotation.

This wouldn''t cover the implementation of a bloody stump, however.
It's not what you're taught, it's what you learn.
quote:Original post by Waverider
In my own designs I was thinking about just putting a flag on the joint that tells the renderer whether or not to continue rendering down that joint.

This won''t work on an optimized hardware accelerated implementation. You don''t walk down the hierarchy anymore (well, yes you do, but only concatenating matrices). The whole mesh is rendered independently of the hierarchy, so you can''t simply stop at a specific joint. Typically, the mesh is clustered into subobjects according to the required vertex program state changes (max. number of influencing weights), to optimize rendering performance. If you want to flag parts of your body, then you''d need to include that as additional separation. That''s no major problem, but it might decrease performance, if you have lots of detachable parts on your body.

This topic is closed to new replies.

Advertisement