Pages: 1 ... 3 4 [5]
|
|
|
Author
|
Topic: UQM Tools (Read 23180 times)
|
|
Megagun
Enlightened
Offline
Gender:
Posts: 580
Moo
|
I just released a new version of UQMAnimationTool. I've decided to put up the source code and .jar builds on the Project 6014 SVN repositories (for quicker updates/bugfixing), so grab it from there if you want to use it. Follow Project 6014 if you want to be notified of future updates to UQMAnimationTool.
I've experimented with SMIL a bit. Barely scratched the surface of SMIL possibilities, but it seems that it might be possible to create something neat with this. Proof of concept Starbase commander animation can be found here. I'll need to do some further testing/study for more interactive animations and a real proper way to integrate the various different kinds of animations into a nice and tidy SMIL file, but I think it might indeed be interesting to look at SMIL for the animation systems.
|
|
|
Logged
|
|
|
|
dczanik
*Smell* controller
Offline
Posts: 306
|
Very Cool! One feature that would be nice, if there's an error in the file, to have a checkbox to 'ignore all other errors'. Example: I wasn't sure if the UQM player played .SMIL files. So I tried to open the file int he player. 120 times I had to click OK
The fact it's in the 6014 SVN is awesome. Now I know I'll the team always have the latest verison
For those interested, I found a .SMIL player: http://www.ambulantplayer.org/
It's open source, offers browser plugins, multiple operating systems (Windows, Linux, and Mac) and other demos of what's possible using SMIL.
|
|
|
Logged
|
|
|
|
Megagun
Enlightened
Offline
Gender:
Posts: 580
Moo
|
One feature that would be nice, if there's an error in the file, to have a checkbox to 'ignore all other errors'. Example: I wasn't sure if the UQM player played .SMIL files. So I tried to open the file int he player. 120 times I had to click OK Whoops. Yeah, that's annoying. Fixed as per r2038 by making all errors appear in one giant textual dialog box, which has the added benefit of being copy-paste-able.
For those interested, I found a .SMIL player: http://www.ambulantplayer.org/It's open source, offers browser plugins, multiple operating systems (Windows, Linux, and Mac) and other demos of what's possible using SMIL. Yep, I've been using that one to test my stuff with. Works quite well. There's also some kind of GUI editor for SMIL presentations called limsee2 (SMIL2.1 and below only; http://limsee2.gforge.inria.fr/), but I wasn't really able to get anything truly spectacular out of that, as it's a slightly odd tool (but probably quite impressive; I should definitively look into that, especially since it's Java-based and Open-source)
Anyways, looking further into SMIL seems to reveal that there isn't any kind of randomize feature, so having animations that depend on UQM's RANDOM animation type may be impossible with SMIL, unless I'm not looking well enough.
|
|
« Last Edit: December 22, 2011, 08:45:27 pm by Megagun »
|
Logged
|
|
|
|
dczanik
*Smell* controller
Offline
Posts: 306
|
I got a chance to play around with this myself. I'm already excited about some of the possibilities this could bring.
Limsee2 has a really weird UI and I wasn't able to do much with it. I just hand coded the text files myself. I'm comfortable with HTML so it's not a problem.
I do wonder about some technical hurdles. 1. Is this project really still active? Most of the stuff on this seems to be last documented in 2008. Has HTML5 replaced the need for this? 2. Fonts. I can put text into this thing pretty easily. However, it seems to go the way of the web, and not allow me to install the fonts I want. 3. Font graphics. I can put in individual graphics instead of the fonts, but that's hand coding every letter of every sentence. 4. Sound. This has sound levels in the SMIL file, but can we still use the set sound levels in the game? 5. Random animation. There is none, but that's not to say we really need it. 6. Translations. Possible, but things would have to change in the engine there too. 7. Lip syncing. Lip syncing is a pain. You're dealing with 1/10ths of a second. I spent about a half hour just trying to get an "Okay" lip synced properly. A timeline view where I can highlight certain parts and test the animation there would be ideal. I'd imagine a timeline view, where I can drag & drop certain mouth movements to fit the piece. A tree menu where everything is taken from the region areas.
This is one of those things that just suck up my time because the idea of using it is so exciting. With all the possible features, there's a lot of stuff I can do with this that we've never thought about because it just isn't possible in the old system. For example, having a slow pan/zoom on the ship in the 6014 options menu. But until this is in the engine, it's just me playing around
|
|
|
Logged
|
|
|
|
|
Megagun
Enlightened
Offline
Gender:
Posts: 580
Moo
|
I've added some basic animation features to the Animation tool, plus an exporter that exports a SMIL file based on the loaded frames and added animations. See http://code.google.com/p/project6014/source/detail?r=2041 for more info
Unfortunately, experimenting with generating various 'complete' .smil animation files revealed a few things:
1) Ambulant reloads image files continuously. This causes animations to slow down quite a bit when playing them in ambulant, especially with a lot of simultaneous animations active. 2) Ambulant 2.2 doesn't seem to respond to SMIL's "prefetch" feature. For some reason, it tries to decode .png images using Ambulant's audio decoding routines, which obviously doesn't work and causes Ambulant to behave erratically. 3) A nightly build of Ambulant does seem to support prefetching (I don't get that audio error!), but it crashes quite quickly. 4) There aren't many other SMIL players around (on Windows); even players that supposedly support SMIL don't appear to at all.
Now, I might've done something wrong somewhere which causes Ambulant to continuouly read files form my harddrive. Not entirely sure.
Either way, we need to decide how we want to proceed. I think we have several options here: 1) Implement SMIL in p6014, either the entire thing or a small subset of it. UQMAnimationTool is dropped in favor of Limsee, but it'll be used to convert most data once to a format understandable by Limsee. 2) Use a SMIL-like file specification to define animations, but don't implement a full SMIL-player. We could use the current rendering/timing code but make it load the configuration from disk rather than having all that embedded in code. UQMAnimationTool is used for most/all animation work. 3) Use our own custom specification to define animation-files. UQMAnimationTool is used for most/all animation work.
I'm guessing someone familiar with the core p6014 code will need to evaluate these three options. Option #1 might be the best-case scenario, but I wonder how long it'll take and what the repercussions are.
|
|
« Last Edit: December 25, 2011, 12:41:58 am by Megagun »
|
Logged
|
|
|
|
|
|
Elestan
*Smell* controller
Offline
Posts: 431
|
That's what I was thinking about when writing bulletpoint #1, but I think it'll still be a nightmare to do. Not only is it probably just a pain in general (the timing stuff needs to be integrated witch each other, as will the graphics/sound/resource stuff), but Ambulant is written in C++ whereas UQM is written in C. I don't know how hard it is to combine C and C++ (my knowledge and experience with both C and C++ is rather limited), but I wouldn't be surprised if it turns out that it's not easy at all.
Heh...funny you should mention that. For the last six months, I've been submitting patches to the core to make it possible to link C++ code to UQM. It's getting pretty close at this point.
Combining C and C++ is actually not that hard; it's kind of like mixing American English and British English. Mostly things are the same; you just have to be careful not to ask to bum a fag.
That still doesn't mean it'll be easy to integrate the two, of course, but when the other option is writing your own SMIL engine (or other animation player) from scratch, I think it may be the easier choice.
|
|
« Last Edit: December 27, 2011, 05:59:11 pm by Elestan »
|
Logged
|
|
|
|
dczanik
*Smell* controller
Offline
Posts: 306
|
Megan: I'm in favor of modifying UQM-Animation Tools to implement a partial SMIL file. The reason why? Because I think the chances of our requests on here have a better chance of getting implemented than on Limsee or Ambulant.
Limsee 3 was last updated 2 years ago. UQM-Animation Tools was last updated yesterday.
I've been trying out the latest version, and most of what's needed is already there. Right now, you've got the basics down to take the existing UQM animations and export them into a SMIL file. The biggest obstacle seems to be just implementing those .SMIL files into the engine. We don't need all the features. I'd rather have a partial implementation just so we can get the original animations up and running. Timing it with audio files, I can at least implement lip syncing into the game. It looks you can use the ambulant core in c++ to play the .smil animations, but is that something we would want with the bugs you talked about? I can find no other libraries that makes it easy to implement .SMIL files.
|
|
|
Logged
|
|
|
|
Pages: 1 ... 3 4 [5]
|
|
|
|
|