The Ur-Quan Masters Home Page Welcome, Guest. Please login or register.
Did you miss your activation email?
November 06, 2024, 09:42:47 pm
Home Help Search Login Register
News: Celebrating 30 years of Star Control 2 - The Ur-Quan Masters

+  The Ur-Quan Masters Discussion Forum
|-+  The Ur-Quan Masters Re-Release
| |-+  General UQM Discussion (Moderator: Death 999)
| | |-+  UQM Tools
« previous next »
Pages: 1 ... 3 4 [5] Print
Author Topic: UQM Tools  (Read 23308 times)
Quinarbre
Frungy champion
**
Offline Offline

Posts: 60



View Profile
Re: UQM Tools
« Reply #60 on: December 11, 2011, 06:40:14 pm »

The game doesn't do anything with Z-index of frames. Every comm image is just wiped out by the previous image.

More precisely, the animation frames are displayed in a fixed order, which is (last time I checked) the reverse of the one you define them in the LOCDATA structure.
Every animation has a "neutral" frame (i.e. a copy of a portion of the base comm picture) which is displayed when the animation is inactive.
Logged
Megagun
Enlightened
*****
Offline Offline

Gender: Male
Posts: 580


Moo


View Profile
Re: UQM Tools
« Reply #61 on: December 22, 2011, 07:58:39 pm »

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 Offline

Posts: 306



View Profile WWW
Re: UQM Tools
« Reply #62 on: December 22, 2011, 08:17:30 pm »

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.  Undecided
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 Smiley

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

- Damon
Ur-Quan Masters HD Project leader/artist. Project 6014 Artist.  Like my art? Please check out some of my other artwork
Megagun
Enlightened
*****
Offline Offline

Gender: Male
Posts: 580


Moo


View Profile
Re: UQM Tools
« Reply #63 on: December 22, 2011, 08:41:31 pm »

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.  Undecided
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. Smiley


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 Offline

Posts: 306



View Profile WWW
Re: UQM Tools
« Reply #64 on: December 23, 2011, 08:11:14 pm »

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 Smiley
Logged

- Damon
Ur-Quan Masters HD Project leader/artist. Project 6014 Artist.  Like my art? Please check out some of my other artwork
Elestan
*Smell* controller
****
Offline Offline

Posts: 431



View Profile
Re: UQM Tools
« Reply #65 on: December 23, 2011, 08:47:01 pm »

I got a chance to play around with this myself. I'm already excited about some of the possibilities this could bring.

I'm glad to hear it.  My hope is that UQM will evolve over time to leverage whatever free standards and open-source libraries are available and useful to it.  SMIL Animations, TTML subtitles, XML data/save files, WOFF fonts, XLIFF localization files, etc.  IMHO, all of these pieces of generic infrastructure shouldn't really be part of UQM's core, and it's better to outsource them.

Quote
Has HTML5 replaced the need for this?

From what I understand, HTML5 has no timing component.  When what you want is to have a combined stream of audio+video+subtitles, SMIL seems to be the primary applicable standard.

Quote
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.

The Limsee3 project (http://limsee3.gforge.inria.fr) might be of interest.
Logged
Megagun
Enlightened
*****
Offline Offline

Gender: Male
Posts: 580


Moo


View Profile
Re: UQM Tools
« Reply #66 on: December 25, 2011, 12:39:55 am »

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 Offline

Posts: 431



View Profile
Re: UQM Tools
« Reply #67 on: December 25, 2011, 06:50:45 am »

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.

There's another option:  Ambulant is LGPL licensed, so we could take the relevant library components of it, link them into p6014, and use them to do the animations, fixing bugs where necessary.  That'll still be a chunk of work, but it might be less than the other options.
Logged
Megagun
Enlightened
*****
Offline Offline

Gender: Male
Posts: 580


Moo


View Profile
Re: UQM Tools
« Reply #68 on: December 27, 2011, 03:28:35 pm »


There's another option:  Ambulant is LGPL licensed, so we could take the relevant library components of it, link them into p6014, and use them to do the animations, fixing bugs where necessary.  That'll still be a chunk of work, but it might be less than the other options.
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.
Logged
Elestan
*Smell* controller
****
Offline Offline

Posts: 431



View Profile
Re: UQM Tools
« Reply #69 on: December 27, 2011, 05:56:12 pm »

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 Offline

Posts: 306



View Profile WWW
Re: UQM Tools
« Reply #70 on: December 29, 2011, 12:39:12 am »

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 agoUndecided
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

- Damon
Ur-Quan Masters HD Project leader/artist. Project 6014 Artist.  Like my art? Please check out some of my other artwork
Pages: 1 ... 3 4 [5] Print 
« previous next »
Jump to:  


Login with username, password and session length

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!