Animation Issues

Blitz3D Forums/Blitz3D Programming/Animation Issues

Jeremy Alessi(Posted 2003) [#1]
I'm begining a new project which will need to have a large number of keyframed entities animating simultaneously. Currently, I've got about 15,000 polys, 100 animated entities which have quite a few frames of animation (100), but they aren't vertex animated or boned. They are transform animations. Anyway, while using CaptureWorld() the FPS is about 10 - 15 less. This isn't the bothersome part. As the animation runs to the end the FPS drop further and further from about 33 with CaptureWorld() or 43 without, all the way to 1 - 2 FPS. Then when the animation begins again the FPS jump back up and it begins to slow down again. It's funny but it really drastically slows down right before the animation loops back.

I'm guessing it's just that the code has to search 100 entities and search through 100 frames for each one which is just killing it. What's strange though is that I've used copy entity. Is there some way to play the animation for the original and just have the others follow. I guess I'll have to experiment. Any clues to how animation works and also any optimizations would be nice. Up till now I've mainly used dynamic animations for my games (True-Vol and Aerial Antics, AA used a little standard animation).

Anyway, I'm going to need a little over 100, maybe 110 animated entities in this game and I'll need many speed tricks.


Jeremy Alessi(Posted 2003) [#2]
Note:

When only animating the original, the copies don't follow and in addition the FPS don't drop noticebly at all.


jfk EO-11110(Posted 2003) [#3]
Sounds like the Animation Module has to parse the Keyframe List, and the higher the Keyframe Count, the longer it takes. Of course this isn't very useful. A binary Access to the current Keyframe would be required. What did you say was the File Format? B3D? 3DS?

Maybe you could "equalize" the Keyframe Searchtime using ExtractAnim. Sounds like this isn't a simple Problem...

BTW Ban - I just realised that I accidently used a Picture of True-Vol in my last Demo Release, I put your Biohazard Sign onto some VX Oildrums. Unfortunately I forgot to replace this, although a have several other Biohazard Signs here.

Hope you don't mind, feel free to use Texures from my Demo release (not the Darkmatter ones unless you own the Darkmatter CD), or tell me if you wish this to be removed.
It was used here:
http://www.melog.ch/dropper/v20/v20_3.jpg?


Jeremy Alessi(Posted 2003) [#4]
Oh lol, don't worry about the texture it's cool.

About the animation, yes it's in .b3d format. I'll hopefully be using less frames for what I really need, but it was unsettling considering that I plan on using may animated entities. Hopefully a solution will present itself. Even with fewer keyframes it's still strange to have it slowdown near the end and suddenly get faster.


jfk EO-11110(Posted 2003) [#5]
THX! Yes, it really shouldn't slowdown. Personally I have never noticed this, but I only use an average 30 Frames with about 15 Models at the same time. And of course, I use Updateworld(Delta-T), so the Animation will not slow down, only the Framerate, if it is remarkable at all.

I have no Idea, maybe you really need to ask Mark directly if this is up to the way Animations are handled or if there is a possible Solution. Strange behaviour, mabye one for the Bug-Report.


Jeremy Alessi(Posted 2003) [#6]
I'll go ahead and post one then.


Jeremy Alessi(Posted 2003) [#7]
Seems to work now, with 100 animated characters with only 30 frames of animation all running, and with my new motion blur on it :)