Author
|
Topic: UQM Tools (Read 24047 times)
|
|
dczanik
*Smell* controller
   
Offline
Posts: 306

|
Awesome.
Any chance on some animation tools too? Animating for me has been rather trying. It's hard enough trying to find the X,Y coordinates. I also have to edit .ani file, then go into a game, wait for the loading screen, load a save game, and watch the animation. When you've loaded the game the 50th time, it gets a little monotonous.
Then there's ship animation. After editing any of the 4 .ANI files (big,medium,small,captain), I have to load the game, go to melee, set it to human, select 2 ships, and then test it while asteroids are coming, and gravity is pulling the ship. These are just screaming for tools. I'd love a tool that I can edit the file, and hit a reload button, and see how the changes look instantly. It would save me a lot of time.
|
|
|
Logged
|
|
|
|
Angelfish
Enlightened
    
Offline
Posts: 568

|
Awesome.
Any chance on some animation tools too? Animating for me has been rather trying. It's hard enough trying to find the X,Y coordinates. I also have to edit .ani file, then go into a game, wait for the loading screen, load a save game, and watch the animation. When you've loaded the game the 50th time, it gets a little monotonous.
Then there's ship animation. After editing any of the 4 .ANI files (big,medium,small,captain), I have to load the game, go to melee, set it to human, select 2 ships, and then test it while asteroids are coming, and gravity is pulling the ship. These are just screaming for tools. I'd love a tool that I can edit the file, and hit a reload button, and see how the changes look instantly. It would save me a lot of time.
Animations are partly done in UQM source and partly in ANI file, I think to make a standalone editor for it you'd have to revise how UQM loads and displays these things. That might require a bit more direction, to establish a well thought out animation file spec .
|
|
|
Logged
|
|
|
|
|
Megagun
Enlightened
    
Offline
Gender: 
Posts: 580

Moo
|
Not at all; as long as you link to the page containing all tools, rather than copy the .jar files over to PNF, so that I can update the existing tools and introduce new ones properly.
|
|
|
Logged
|
|
|
|
|
Megagun
Enlightened
    
Offline
Gender: 
Posts: 580

Moo
|
Currently working on a conversation editor thingy which generates C code (no release yet as it contains a lot of debug stuff.. ):
//AUTOGENERATED BY UQMCONVERSATION TOOL
//FUNCTION DECLARATIONS: static void Test1 (RESPONSE_REF R); static void TestFunc (RESPONSE_REF R);
//FUNCTION DEFINITIONS: static void Test1 (RESPONSE_REF R) { //START BODY GENERATE NPCPhrase (HELLO_SAMATRA); Response (where_am_i, TestFunc); Response (why_does_my_head_hurt, TestFunc);
//END BODY GENERATE } static void TestFunc (RESPONSE_REF R) { //START BODY GENERATE NPCPhrase (SENSE_EVIL); DISABLE_PHRASE (where_am_i); DISABLE_PHRASE (why_does_my_head_hurt); //END BODY GENERATE }
It's currently a pretty basic GUI tool that loads a Dialog TXT file (output of UQMDialogTool, or files distributed with UQM) and allows a user to create "functions" (which maps perfectly to a function in C) each of which has a few "statements" which map fairly well to a line of code; statements are one of "Response", "NPC Phrase", "Disable Phrase (response)", "Custom code (user-specified C code)" and "Function call". Saving and loading of this conversation object (which is a combination of Dialogue Entries parsed from Dialog TXT files, plus the entire logic bit) is handled neatly through XStream. All I have to do now to make it work properly-ish is to create some new classes that neatly map my existing functions and statements to something that UQM players should recognize ("ConversationTreeNode" and "Response-NPCPhrase", or something along those lines)....
I'll probably end up releasing a non-production-ready test version of it tomorrow. I've decided to keep development of this new tool seperate from UQMDialogTool (for now), but I will probably end up merging the tools once they've proven to be workable. 
As far as converting existing C code to a format readable by my tool goes: I probably won't do it (too much effort involved)..
|
|
« Last Edit: October 07, 2010, 11:06:19 pm by Megagun »
|
Logged
|
|
|
|
|
|
Quinarbre
Frungy champion
 
Offline
Posts: 60
|
I don't know if that third tool you're talking about is really useful : if you do have to create functions and statements, you might as well do it in C directly. What I'm thinking is that : for 90% of the dialogs, all you really need are the basic structures : - which player phrase triggers which answer from the alien - which alien answer opens which phrases options for the player - when the alien should just answer the question and then give the same options, minus the one just answered (typical of Hayes' statements about races) - which phrases trigger combat or good-bye
That would allow to code the basic structure of most dialogs ; then, for fancy stuff like trade, one can always fiddle with the code your tool produces.
|
|
|
Logged
|
|
|
|
|
Megagun
Enlightened
    
Offline
Gender: 
Posts: 580

Moo
|
I don't know if that third tool you're talking about is really useful : if you do have to create functions and statements, you might as well do it in C directly. What I'm thinking is that : for 90% of the dialogs, all you really need are the basic structures : - which player phrase triggers which answer from the alien - which alien answer opens which phrases options for the player - when the alien should just answer the question and then give the same options, minus the one just answered (typical of Hayes' statements about races) - which phrases trigger combat or good-bye
That would allow to code the basic structure of most dialogs ; then, for fancy stuff like trade, one can always fiddle with the code your tool produces.
What I meant with:
All I have to do now to make it work properly-ish is to create some new classes that neatly map my existing functions and statements to something that UQM players should recognize ("ConversationTreeNode" and "Response-NPCPhrase", or something along those lines).... Is pretty much what you say here. My current version is very rough like that, but in a future version players can create "TreeNodes" (or whatever) which then have a few "PlayerPhrases", which can optionally specify that they shouldn't be able to be used again, etc. In the background, flagging a phrase to be "Do not show again" actually creates a new Function object which contains a DISABLE_PHRASE statement.
The reason why I'm using functions and statements at the moment is that it allows for future additions, and that I can simulate an entire conversation pretty nicely with this. Furthermore, my current system maps pretty much 1-to-1 with the current code, so if I want to at one point move code to my own representation of conversations, it should be somewhat possible.
The real value in a tool like this is mostly ease-of-use though. Dialogs (Strings only) can very easily be edited by hand (text editor to open the .txt files in comm/*) but it's annoying as hell and it's quite easy to make mistakes. The same goes for this conversation tool: if you're doing conversations by hand you have to have a .txt file open (for the phrase identifiers; unless you know what phrase "WHAT_HAPPEN" maps to) AND your IDE/code editor/whatever. Conversation editor tool simplifies this greatly; all in one window.
Furthermore, my tool spits out an XML file that can be transferred by a clueless no-C-knowing user to someone else that can turn the XML into code and integrate it within UQM.
At the very least, it appears to be a much nicer workflow than what p6014 seems to be doing: creating .docx documents containing color-coded text and having diagrams composed in Visio or the like and having a programmer code that into C..
|
|
|
Logged
|
|
|
|
Megagun
Enlightened
    
Offline
Gender: 
Posts: 580

Moo
|
Any chance on some animation tools too? Animating for me has been rather trying. It's hard enough trying to find the X,Y coordinates. I also have to edit .ani file, then go into a game, wait for the loading screen, load a save game, and watch the animation. When you've loaded the game the 50th time, it gets a little monotonous.
Then there's ship animation. After editing any of the 4 .ANI files (big,medium,small,captain), I have to load the game, go to melee, set it to human, select 2 ships, and then test it while asteroids are coming, and gravity is pulling the ship. These are just screaming for tools. I'd love a tool that I can edit the file, and hit a reload button, and see how the changes look instantly. It would save me a lot of time. UQMAnimationTool v0.1 released:
 -Shows .ani file contents... .big/.med/.sml are also supported but not working nicely yet (hotspot issues; probably fixing those later) -No editing (yet?). Just viewing. -Read in-tool notes for more notes. 
(Let me know if anything is wrong or you need more features, but read the notes first as I explain some wrongstuffs there). http://mooses.nl/uqm/tools/
As far as the conversation editor goes: I'm doing some more work on that.
|
|
|
Logged
|
|
|
|
Megagun
Enlightened
    
Offline
Gender: 
Posts: 580

Moo
|
UQMAnimationTool v0.2 released. Changes: -Proper support for .big/.med/.sml (hotspots now work properly). This means you can finally debug your ship graphics and the like. And there was much rejoicing! -Added "Load" button. No more exiting and restarting to load a new file, woo! -Can now drag the rendering around. Click and drag anywhere in the rendering-panel where there's not a rendering image. -A few bugfixes here and there. http://mooses.nl/uqm/tools/
A few things I've found whilst using my tool: http://mooses.nl/temp/aarghspathi.avi (Spathi have a mouth! Supposedly a few people in coredev knew this. Bastards never told any of us! This is significant scientific knowledge!!!) http://mooses.nl/temp/androsynthwobble.avi (I've always thought I've noticed that odd wobble in the 'East' position of the Androsynth, but I guess this proves it!)
|
|
|
Logged
|
|
|
|
|
|