Members - Reputation: 105
Posted 09 September 2012 - 11:10 PM
Thanks again for any responses, as I said I am new to game programming and had some questions that I could not find answers for.
Crossbones+ - Reputation: 4976
Posted 10 September 2012 - 01:37 AM
There's no such thing as "support the animation of the rig for each model".
All the rigs are the same "numerically speaking", just as all things having 3 distinct points make up a triangle.
I suggest to separate the concept of mesh and animation. Some systems pack the rigs with the mesh (which makes sense) while others allow to pair them independently (I don't think this buys anything).
In general we have this mesh+animation data pair where the animation data evolves... typically with time.
So enter mesh instances. The evolution of the mesh data changes across all the meshes even when they are the same.
1) a mesh M1 (model MDL) with rig R generated at frame F.
2) a mesh M2 (model MDL) with rig R generated at frame F+20.
It is clear that those two meshes have the same base model and the same base rig, yet they are different istances and must be managed correctly.
So in short: you have to bite the bullet and support a different pose for each model instance. This does not mean they also need a different rig: the rig is the same, just in a different state (rig != pose).
I have extreme difficulty in imagining a rig which would animate correctly both a human and a dragon.
There's no requirement for a rig to be unique to each mesh but this implies meshes will have to be similar. A human rig could probably be shared with a alien humanoid or perhaps a chimpanzee. A horse? I don't think so.
You are suggested to split storyline questions in a different topic. In my opinion however hardcoded storyline is hard to write and typically even harder to manage and keep in shape. Most games are scripted, where the most basic form of storyline scripting is the level succession. If level progression is non-linear, this is somewhat more complicated.