Well, I have taken your advice to some degree. I have decided that just textures will be enough definition for the characters face. I did some testing last night and I couldn't figure out AttachToBone (or even find a function like it) in GLScene.
I have made the decision to use the SMD model format. It is from VALVE's Source Engine used by half-life and compiled to an MDL file. The basic concept that I have for this format is that you can store the Skeleton(Joints included) and Mesh information in one file, and then have an animation file separate. This allows me to make multiple models that have the same rig and not have to animate them.
Currently I have tested the following and it seems to work without any real impact on the FrameRate.
I have the mesh & skeleton files
zombie1.smd
zombie2.smd
And I have the animation sequence in
zombieAni.smd
When I load in the mesh I do the following
Actor1.LoadFromFile('media\characters\zombie1.smd' );
Actor1.AddDataFromFile('media\characters\zombieAni .smd');
I then Create the animation segments for the Actor1 object. This allows me to call a simple
Actor1.SwitchToAnimation('AnimationName');
Also this method allows for animation blending. GLScene can convert the absolute position of the vertices to a relative position. This make is possible to blend RifleFireAttack and Kneel animations without making a special KneelRifleFireAttack animation of its own. (This does affect the FrameRate, not sure how it will affect it with 20 zombies being blended)
This method seems to have the most potential for what I am trying to do. However I still feel that there could be a more efficient or even better way to achieve similar results.
My plan is to develop my own binary format based on the SMD files. So I will be able to develop all of my models and export them to my own format to be loaded. This should also make the files smaller as SMD files are fairly large.
Any comments or suggestions are appreciated.
Bookmarks