PDA

View Full Version : only rigid vertices?


the_real_remi
04-26-2005, 03:02 PM
Hi,
I'm new to game moding and I'd like to create some character animation that will be used later in various engines. I've heard that all game engines force all vertices of a character to be rigid - that is deformed by only one bone. Is this true?

Vertizor
04-26-2005, 03:46 PM
Where did you hear that? There are so many game engines out there and most do things differently. So you can't say "all game engines do this this and that." In fact, some older engines don't even support bone animation. Quake2 used morph targets, it was until Quake3 that id started using bone animation.

Most engines I read up on support skinned meshes, that means a mesh with vertex weight. Apply a skeleton to it and the verts will move with the bones according to how much influence that bone has on that vert.

the_real_remi
04-26-2005, 04:02 PM
I'll quote a Crytek's 3ds max exporter docs:
"Any deformable links will be converted to rigid right before the export process.
It is possible to get better animations with deformable vertices but, since 3d studio max does not support exporting them (their calculations are too complex to fit in a real-time game), your animation will eventually be converted to rigid."
In 3ds max a rigid vertex is the one assigned to only one bone with 100% weight.

rebo
04-26-2005, 05:08 PM
This is not true for all engines. For instance half life two supports up to 4 weights per vertex.

Dervish
04-26-2005, 06:24 PM
arent animations in games pretty much "fixed", once the couple animations are created the bones move always the same, so theres lets say 50 animation wich are switched inbetween, wouldnt it be possible to just bake the animation per vertex for those? i cant see any need for the bones once the animations are created.

Vertizor
04-26-2005, 07:28 PM
Well if he was ambitious and wanted to dynamically change animations at runtime then the bones are still needed. Think "rag doll" effect.

Second of all the whole point of having a bone system for animation is to store fewer transforms. If you had a model that consists of say 5,000 vertices that means for every frame of animation you'd be "baking" thousands of transforms. But if your model is made up of a mere 40 bones then it's a lot easier to store the animation of that. Let the graphics engine transform the verts at runtime.

Baking animations per vertex might sound like it'd save the trouble of doing it at runtime, but the overhead starts to make it more difficult to manage. But it has been done before, sort of. Earlier I mentioned the Quake2 engine. More specifically the MD2 model format uses morph targets, that means the animator poses the model in various poses and to animate the actual motion, they tween the transformation from one pose to the next.

Skeletal animation works better because you only need one instance copy of your mesh, you can have multiple copies of the skeleton for each set of animation, but it's much more lite weight than the mesh itself. Furthermore, I've heard that it's possible to use vertex programs so that the GPU handles the animation. You pass the vertex data once, the bone data is the variables, and the GPU transforms verts from there, rather than sending the model over and over again to the GPU to render staticly each frame.

CGTalk Moderation
04-26-2005, 07:28 PM
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.