Recently I came up with a good idea on how to smooth out the animation creation and .gla merging process.
It occurred to me that animators could create individual animation.cfgs for their .gla files and then we could create a utility that would merge both the .cfgs and the .glas together. That way the animator would only have to create one animations.cfg and everyone else would just have to use the merger to merge everything together.
I've talked to some of the members of the community and it sounds like we want to give this a shot. I started this thread so that additional parts of the community could help by either assisting with the programming or by providing design suggestions.
I'll try to whip up a interface mockup when I have time.
Interface:
Listbox with all animation sets. As you import the sets are then added to the main listbox. (or possibly a holding listbox so that you can be choosy in which you want to import).
But the actually gla loading/merging/etc etc should be behind the scenes. With possibly an option to see "Debug Text".
That would be cool. But do people want to merge .glas per animation using the animation.cfg's frames?
Well if they didn't properly define the frames in the first place then it's a good chance that they don't intend on using the anim. ;)
True enough. I could do the animation.cfg part of things. However, I don't know how to do the .gla part of things. We'll have to see what Wudan's able/willing to do.
I'm up to it, time permitting. I'm still baking up fresh Blender scripts, but once that works I'm up for working on this.
http://ojp.jediknight.net/images/Animation%20Merging%20Utility%20Mockup.jpg)
Here's an initial mock up of what I'm thinking. I'm not including the per-animation merging because that might be too time consuming to do. Maybe Wudan would have a better idea on how that would work.
Well, ideally, you could merge MANY files at the same time. So I was thinking of three columns, the one on the left is a list of files, the one in the middle is a list of animations in the file (if there is a selected file on the left) and checkboxes so that you don't have to import specific animations, and perhaps even change the frames or something. Last of all, on the right, is where you can change the output file name and maybe some behaviors (like optimizing the output or not).
That would be ideal, but I can think of 3 problems:
1. What determines the order of the merging? Remember that the "original" _humanoid.gla would have to be first. I suppose we could make it part of the interface to determine the merge order.
2. There'd be an overload of animations in the animations checkbox, especially if you included the basejka animations in the box. Maybe only have the menu display the animations for the currently selected animation package?
3. The biggie is the matter of time and effort. While ideal operations are great, the complexicity of the program would go up a LOT if we try to do multiple file mergers or per-animation. Personally, I'd like to see us have this done sometime this year vs. being stuck working on this into next year.
Well, you're right about ideal operations, I'm sure we can get something working for sure, but good thinking at this stage saves hours of re-writes, if we decide to push the implementation further.
My original idea for Dragon was to have text files interpretted and compiled in to new animations - it worked, but it was really clear that text files wouldn't cut it, and countless hours were spent taking the project to the next level - with a clear design and objective to begin with, the process would have most likely went much smoother.
But hey, I know loads more now than I did then, such is the nature of hands on experience. Even still, Dragon isn't perfect, I much prefer my newer implementations of the format in Python and in my Quake3 engine project.
Ok, I now have a working prototype. Woot!
There's a picture of the program window. (
http://ojp.jediknight.net/files/screenshots/GLA%20animation.cfg%20Merger%206-12-2006.jpg)
Any suggestions? The only thing I can think of at the moment is that it might be a good idea to add an override for the "last frame".
Right now the "last frame" is determined automatically by reading the primary animation.cfg file. However, there might be situations where the actual .gla file has extra frames that aren't listed in the animation.cfg animations list.
Could you also make it so rather than just being able to add entries to animations.cfg could you also make it so it could replace entries in the animations.cfg for replacing animations rather than just adding?
I don't understand what you mean. Please explain.
He means will the tool enable him and others to replace animations already declared in the existing animation.cfg file. That's a pretty common task for animators.
Exactly. Another good feature which would be hard to program but that would helpful and save space would be to be able to replace animations in the _humanoid.gla so rather than merging your gla the the big gla and growing the file size it would replace the original animation (maybe make it so you have to define which frames to replace in the gla).