EDITOR PLUGIN: Speech Center - Version 2.2.0

Started by SpeechCenter, Thu 22/03/2012 14:50:32

Previous topic - Next topic

Alan v.Drake

Calin beat me to it...

Look at this:
.

- Alan

SpeechCenter

#21
I started working on this, it's on my spare time (which was very nonexistent this week) so I cannot state exactly when it'll be ready, but hopefully not too long since this is not complex.
TheMagician: if your game source loads with AGS 3.2.1 it would be great if you let me know whether the current version works for you. There aren't that many open source games out there for me to test it on my own.

TheMagician

@Calin & Alan: thanks for the clarification  :)

@SpeechCenter: right now I have no idea what the plugin is supposed to be doing (I haven't downloaded it and it doesn't become clear from reading this thread).

SpeechCenter

Quote from: TheMagician on Fri 30/03/2012 22:12:42
right now I have no idea what the plugin is supposed to be doing (I haven't downloaded it and it doesn't become clear from reading this thread).
The plugin is aimed towards assisting with validation of the game text and speech. It's only an editor plugin, not a game plugin.
It has the ability to scan the scripts (dialogs, global scripts and room scripts), and display all the speech line it finds in those scripts (such as the text used in the character Say function). You can double click the line to go directly to the corresponding script line.
You can sort, filter and search through the lines using the interface.

If the lines are numbered then it offers additional functionality:
The Speech directory is scanned for each line and provides info on the file status. You can playback the speech from the editor itself. You can also mark whether those lines are correct (there are 2 checkboxes for each line, one for the voice file and the other text).

To make sure the plugin is non-intrusive as possible, it only loads the data if you click on the refresh button, thus it should not affect something you do, unless you are actually doing something at the plugin screen. It should also have the capacity to handle thousands of lines, which should cover even text-heavy games.

Here are 2 screenshots I provided in a previous thread, which would hopefully make my explanation clearer, and if there are additional questions I'll be happy to answer them.





TheMagician

#24
That's the information I was looking for. This looks great. I will test it as soon as possible. However, right now the new game I'm working on isn't that big and the old finished game that I have will certainly throw up errors when trying to import to AGS 3.2.1

EDIT: I've just installed the plugin and it seems very helpful! Definitely something that I'm going to keep using :)
However, when updating the speech center I get an error which refers to the file timer.asc, which is part of a module by monkey_05_06 which can be downloaded HERE.
I can choose to ignore the error and the rest of the scripts is processed correctly.

By the way, what's the icon of speech center depicting? A tree?

SpeechCenter

#25
Thanks for the info, I see the problem with the module and will fix it. You can ignore this error (as you did) since this specific module doesn't include any text lines anyway.

You can get a better view of the icon at the about dialog (right click on the tree). It's just a public domain icon I used, I'm a programmer, not much of an artist to draw my own icons :)
(well, I did the filter icon, but it was actually created using code)

EDIT: fixed it and uploaded a new version, in case the error annoys you

TheMagician

Thanks for the quick fix.

Do you plan on including support for translation files? Right now, translations are very difficult to manage because the exported file can be mixed up and it's not clear where the different lines belong to.
I could imagine speech center to have an option to show the according translated lines to the lines from the script so that you can check whether everything is where it needs to be.

SpeechCenter

#27
Sounds interesting. I took a quick look at AGS' plugin interface and it should be possible to add this.
So the basic idea is to display the text per line and add another column for the selected translation, correct?
One question - is the speech file relevant in that mode? I did not see support in AGS for multiple languages for voice recording, but maybe I missed it.

TheMagician

As far as I can tell AGS doesn't offer built-in support for speech files in different languages.
The manual mentions that all speech files have to be collected in the 'speech' subfolder of the game. The game's author would then have to replace those files with the translated ones and create a new speech.vox file. Then the players can download different speech.vox files and use the one they like.

For your plugin, perhaps you could just have a second subfolder called 'speech_german' in the game's folder and place identically named speech files in there. Then in your plugin you can specify the subfolder that goes with each translated version.

What I like about your plugin right now is that you can see almost the complete line of text at once. If you added a second column for the translated lines then the readability would suffer a bit.
Perhaps there's a way to show the translated lines below each original line in a different color?

SpeechCenter

Adding another row might not be that easy, I'll check. I'm thinking perhaps the text should appear when the row is selected. Something similar to auto-play, or perhaps even the same window, by changing the text that appears in the playback to the translated one.
Playback today is enabled even if there is no actual speech, it displays the text, the character talk view and if you playback more than a single line, it progresses based on the length of the sentence. Thus adding the translation there would be very consistent with the existing gui as well as in-line with AGS' implementation of translation (where the script has one language and translations are matched with the original text).

I'll have to check if any of this makes sense when I get to the actual development, sometimes it's easier to know if these things work out after actually trying them.

Dualnames

Quote from: Calin Leafshade on Fri 30/03/2012 18:31:34
It's a good policy to behave as if Dualnames' posts don't exist. You often come out worse than before you started reading them.

We use custom say functions in order to display text in new or different ways that are not supported by the default Say command. For example to display the text at the bottom of the screen.

For an example of this see Alan V Drake's Wretcher of my Ever-Beginning Tale.

AHAHAHAHAHAHAHAHAHAHAHAHHA
Worked on Strangeland, Primordia, Hob's Barrow, The Cat Lady, Mage's Initiation, Until I Have You, Downfall, Hunie Pop, and every game in the Wadjet Eye Games catalogue (porting)

Dave Gilbert

#31
Hey! This is awesome. I love that you can include custom "say" functions, but is it possible to also provide an option to put the speechfile number in another parameter?  Your custom say function editor only allows you to choose the character name and the text string. Normally you'd include the speech file number within the text string so this method would be fine, but we don't do it that way.  For example, our custom say function looks like this:

speech(cJack, "Hello, my name is Jack", 475);

Where 475 is the speechfile number. Since we can only specify the character and the text string, the filenumber doesn't get picked up.

Is it possible to make that change? I was *really* excited to see this plugin as we've got thousands of lines of dialog to deal with, but we can't use it. :(

Also, I saw in your readme that we'll need a special license to use it for commercial games. PM me with the details, if you could.

-Dave

Ryan Timothy B

Quote from: Dave Gilbert on Sat 14/04/2012 14:32:57
speech(cJack, "Hello, my name is Jack", 475);
Why aren't you using an extender function?

I'd much prefer:
cJack.speech("Hello, my name is Jack", 475);

Knox

Id also rather:
cJack.speech("Hello, my name is Jack", 475);

Cool plugin so far!
--All that is necessary for evil to triumph is for good men to do nothing.

m0ds

#34
Great! Out of interest can this be used to export all the lines of dialog to a text file or something? I'm not fully competent with speech in AGS games so perhaps there is another way to do that. But for what it is this looks very useful.

Edit: I ask about the export because the data the plugin provides looks like it'd be useful if it could be exported.

SpeechCenter

Thanks for the info and feedback.
Yes, I can add the additional parameter. Once I add it, it will be for all function types, so it would cover both use cases.

I would need some time though, it's not complex, but other unrelated things are stacking up. I'll certainly give it priority the moment I manage to sneak in some time.

SpeechCenter

#36
Quote from: m0ds on Tue 17/04/2012 15:38:05
Great! Out of interest can this be used to export all the lines of dialog to a text file or something? I'm not fully competent with speech in AGS games so perhaps there is another way to do that. But for what it is this looks very useful.

Edit: I ask about the export because the data the plugin provides looks like it'd be useful if it could be exported.
Thanks and I already plan to add it in the future, but the feedback certainly helps me knowing this is needed.

I'm focusing at the moment on addressing missing functionality that prevents usage and of course if anyone finds critical bugs. There are already several developers able to use it for their games, but I'd like to see more work with it out-of the-box. Once I see developers are able to work with existing features I'll start implementing additional features.


straydogstrut

Been playing with this tonight to do some proof reading and I have to say it's fantastic :)

Suggestion: it would be good if the columns could be rearranged

Unexpected behaviour: when resizing columns, the table automatically scrolls to the top.

Looking forward to seeing this evolve :)

SpeechCenter

Quote from: straydogstrut on Wed 18/04/2012 00:09:43
Been playing with this tonight to do some proof reading and I have to say it's fantastic :)
Thanks! It's always great to know it helps.

Quote from: straydogstrut on Wed 18/04/2012 00:09:43
Suggestion: it would be good if the columns could be rearranged
I'll look into it, I used an external component for the grid, I'll see if it has support for this.

Quote from: straydogstrut on Wed 18/04/2012 00:09:43
Unexpected behaviour: when resizing columns, the table automatically scrolls to the top.
I'll check that, probably also related to the grid, but the grid is open source so worst case I can fix it there. I tried to minimize the need to resize by making sure the text column does word wrapping. 2 questions:
1. What column did you try to resize?
2. Was any line other than the first line selected when you resized the column?

subspark

About working with scripts, does anyone remember The Conversation Engine from The Forgotten Element?

They had something fairly comprehensive going on there for a while.

SMF spam blocked by CleanTalk