Ash,
I've been planning to do something similar for my MMORPG, but, I can see the technique being used for many genres. I have been considering many different ways to achieve this. I pondering over 3 methods: 1) one base model + attachments + modifiers upon load, 2) segmented meshes attached to a skeleton, animation applied to skeleton, 3) multiple character meshes, animation set applied to all.
In either case, LoadAnimSeq will do the trick assuming the models use the same bone hiearchy (entitynames).
LoadAnimSeq specifically appends an animation sequence from a file to an entity, returns the animation sequence number added.
If you have more then one animation sequence per file you will have to use the ExtractAnimSeq commands and apply them to the model by first frame and last frame. I assume you have one animation per file.
As mentioned earlier, LoadAnimSeq will return a sequence number. If animations are appended to the models in a different sequence order, you will need some sort of tracking. From an game engine perspective, the "run" animation should always be sequence 1, "jump" sequence 2, etc, although the sequence number for a specific model differs.
This could be easily managed with one array to store the Engine Animation Sequence File List and an array per model to match the models sequence to the engine's animation sequence.
;Engine Animation Sequence List (example)
Dim EngineAnimSeqFile$(MAX_ANIMATIONS%)
EngineAnimSeqFile$(1)="RunNormal.b3d"
EngineAnimSeqFile$(2)="Still.b3d"
EngineAnimSeqFile$(3)="StillFire.b3d"
EngineAnimSeqFile$(4)="TakeHit.b3d"
EngineAnimSeqFile$(5)="RunFire.b3d"
EngineAnimSeqFile$(6)="Dying1.b3d"
EngineAnimSeqFile$(7)="Dying2.b3d"
EngineAnimSeqFile$(8)="Idle.b3d"
Model Animation Sequence List
Dim ModelAnimSeq(MAX_MODEL_ID%,MAX_ANIMATIONS%)
To use:
ModelAnimSeq(new_model_id%,ENGINE_ANIM_SEQ%)=LoadAnimSeq(new_model_handle%,EngineAnimSeqFile$(ENGINE_ANIM_SEQ%))
Keep in mind, this is theory, but, either way I'm quite sure this can be achieve in Blitz3D.