Archived

This topic is now archived and is closed to further replies.

DD20

Skeletal Animation And Armor

Recommended Posts

Hello all I was thinking have the functionality in my current project to be able to dyncamically change the armor represented on a 3D character. The problem I thought of though was that one way of doing it would require a different model for every char and armor variation. I was wondering if it was possible with skeletal animation to create one set of bones for the character with the base mesh and then whenever using armor map the armor model to the characters bones so they move the same. Hope this makes sense. Just want to know if its possible coz haven''t used skeletal animation yet. Thanks

Share this post


Link to post
Share on other sites
Yeah, instead of just moving the vertices of one mesh according to the skeleton, you could just have a base mesh and then an armour mesh, and just apply the skinning to both. There could be a problem with your base mesh coming through the armour mesh when the skeleton is in certain positions, but in theory it should work. The best way really is just to try it and see if it looks ok.

---------------------------------------

Let''s struggle for our dream of Game!

http://andrewporritt.4t.com

Share this post


Link to post
Share on other sites
In theory, this really should work, but in practice it doesn't.

We think of things like plate mail armour as rigid, and it is, but it is attached to a human using a collection of straps, leather backings, and clasps. If you think of scale mail or chain mail it gets more confusing - it's a more like clothing then rigid plates.

That's not to say that what you want to do is impossible.

The process of creating art for this kind of system goes something like this:

1. Define a skeleton in max/maya. This is just the bone heirarchy with the bones placed correctly for the mesh you are going to rig to it.

2. Build the character mesh in max/maya wearing nothing but, say, a loin cloth. Weight that character to your skeleton.

3. Create the armour mesh in max/maya but create it as if it is the same character wearing the armour. Weight that to the skeleton.

4. Break the character mesh and the armour mesh into seperate geometries that represent the replaceable parts. Arms, legs, chest, head, hands, again in max.

5. When you go to draw the object, after you have posed your skeleton and created your animation matrices, draw your character using a combination of the base mesh and replace whichever parts with armour. So if you have one arm that has armour on it, when you go to draw the characters arm, draw the characters arm wearing armour instead. You might be able to do a system where you draw both of them if you have, say, a bracelet.

You want to make sure that all the geometry is weighted to your skeleton, and although you'll have the cost of having to render all your geometry as skinned mesh geometry, it is the only way to guarantee that it works with the animations provided, always.

This is what Star Wars Galaxies does as well as other games. We implemented this system for a sports title to let different hockey players have different kinds of helmets, skates and gloves based on who they were sponsored by.

Best of luck.

[edited by - Sphet on November 15, 2003 2:11:25 PM]

Share this post


Link to post
Share on other sites
Hey guys I thought of one thing I needed to know. With what sphet wrote does this mean I only animate the bones and then when load it into the engine, I can map the armor and mesh to the bones to get the desired animation?

Share this post


Link to post
Share on other sites
quote:
Original post by DD20
With what sphet wrote does this mean I only animate the bones and then when load it into the engine, I can map the armor and mesh to the bones to get the desired animation?


*confused* wasnt that the whole point of skinning? the question is: wouldnt it be easier to instead of praying that the armour and mesh will fit just have a mesh of a body part in armour? a full plate mail will hide the torso, so why bother drawing a torso? and if it wouldnt cover the whole body part just add that part of the body to the armor mesh.

Share this post


Link to post
Share on other sites
I think what I meant to ask was basically what the armor mesh consists of on creation. I think I gather from what you have said is that I need to create a mesh for all possible variations of the person. Eg

1) Person wearing loincloth
2) Same person mesh with armor on top
3) Person again with different armor , and so on

Then load up diff parts of mesh when need them. So if have helmet replace the loincloth head with armor head. Is this right?



Share this post


Link to post
Share on other sites
i was about to suggest using the same number and layout of vertices, which would allow to just replace the vertices of the character in the right position of the array. but i guess your artists would hate you for such a limitation, just to avoid gaps in extreme poses. and there would still be the problem of textures, if you cant fit the textures for all armor and parts into one single big texture.

Share this post


Link to post
Share on other sites
Also, if you want to find out about armor, head to www.arador.com

take a look around, then go to their forums and make a post in the everything else forum asking for help designing armor for a game. Likely you''ll get a much better look to your armors, and armor that could acutally WORK. Just a little tip if you do head there,... forget ANY word that is joined with mail or maille,... (Chainmail, scalemail, platemail. None of them are real armor, all are bad jokes/mistakes from Victorian age history books, and they would really like it if you could STOP using such horrible terms in games so some people could have a better chance of understanding history better)

And now, you plate armor WILL be fairly stiff, so if you have it flex much in the game, you should take anohter look at your models. Most plate twists around body parts, more than it bends/flexs in anyway. Also, for the torso armor, if you have solid plates going too far below the bottom of the ribs, then you have a problem. *Your guy wouldn''t be able to bend over which can be a problem at times*

To get the right look of things like Scale armor, and Maille, you really should ask at ardor for help if you want it to look right. If you get lucky, I think there are a few game designers there, that are also armourers who can help you model the cool effects of flexable armors, which I must say, I have yet to see in a game.

Share this post


Link to post
Share on other sites