Author Topic: EDITOR PLUGIN: Speech Center - Version 2.0.4 - now with inline editing  (Read 30077 times)

Latest version: 2.0.4

Download

Hello all,

Version 2.0.0 includes many enhancements, but most notably is support for in-place editing.
Version 2.0.4 fixes a script parsing problem in specific scenarios.

About Speech Center
The Speech Center plugin enables management of the game text and speech within the AGS Editor. It provides a view of your game text and play the speech files, fully integrated within the editor.

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 sort, filter and search through the lines using the interface, edit the text and also jump to the script itself to make more complex changes.

Additionally you can export the text as voice acting scripts. The result HTML files, one for each character, can be sent to your voice actors to record their lines.

When a line is selected you can immediately view it in the script itself. Inline editing is available allowing you to review and change text in multiple scripts from a single screen. double-clicking on a line will open the AGS script editor and focus on that line, this is convenient if you would like to view and edit the script using the standard AGS script editor.

Another nice feature is the ability to view and edit game translation. When you choose a translation you get the same view and set of features. This means not just find, filter and sort, but also export a VA script in your translated language. You can also easily view the original text in the script since it is shown when you select a text line in the grid.

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 as 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. Special attention was given to performance and the plugin should have the capacity to handle thousands of lines. This should cover even the extremely text-intensive games.

Here are a couple of screenshots to show you how the plugin looks like in action:




Sample output for VA scripts:


You can email me regarding any bugs or problems you find, I'll try to be as responsive as possible.

I hope this will assist you to continuing create awesome games!
« Last Edit: 27 Apr 2014, 20:53 by SpeechCenter »

monkey0506

  • AGS Project Tracker Admins
  • SEND PIZZA.
Re: EDITOR PLUGIN: Speech Center
« Reply #1 on: 22 Mar 2012, 15:23 »
I'm at work, but what does this plugin do? I'm guessing it has something to do with managing speech files from within the editor? If so, that's great.

I've actually been putting some thought into it though, and the entire speech system within AGS could really do with a major overhaul. I'm thinking that speech files could be imported as AudioClips that could then be linked to characters directly...then with some indexing and a simple "find ID" function...the speech system could be made much more generic, which would be very nice for any games using extender methods (or even just the player keyword in a multi-player game).

Anyway, that's a completely separate discussion. Thanks for the plugin...I'll have to check it out later.

Snarky

  • Global Moderator
  • Mittens Earl
  • Private Insultant
    • I can help with proof reading
    •  
    • I can help with translating
    •  
Re: EDITOR PLUGIN: Speech Center
« Reply #2 on: 22 Mar 2012, 15:37 »
I'm at work, but what does this plugin do?

I'm watching a presentation, but http://www.adventuregamestudio.co.uk/yabb/index.php?topic=45603.0:P

Re: EDITOR PLUGIN: Speech Center
« Reply #3 on: 25 Mar 2012, 23:04 »
Hey all,

Have you had the chance to try this? Please let me know if this was helpful. I'm very curious to know how game developers here see this plugin.

Thanks.

Re: EDITOR PLUGIN: Speech Center
« Reply #4 on: 26 Mar 2012, 07:26 »
I would try it, but the download link doesn't seem to like me, any chance you could put it on mediafire ?

- Alan

Re: EDITOR PLUGIN: Speech Center
« Reply #5 on: 26 Mar 2012, 07:44 »
Yes, the link broke.
Try this for now,

https://skydrive.live.com/redir.aspx?cid=a031d4a2c1add700&resid=A031D4A2C1ADD700!111&parid=A031D4A2C1ADD700!110&authkey=!AJ9otK4Z8fEy_9I


I'll check about uploading it to another host later today.

Re: EDITOR PLUGIN: Speech Center
« Reply #6 on: 26 Mar 2012, 12:46 »
I tried it, too bad it won't work with my custom say functions :(


- Alan

Scavenger

  • Cavefish
  • In Four Glorious Colours!
    • I can help with animation
    •  
    • I can help with backgrounds
    •  
    • I can help with characters
    •  
    • I can help with scripting
    •  
    • Scavenger worked on a game that was nominated for an AGS Award!
      Scavenger worked on a game that won an AGS Award!
Re: EDITOR PLUGIN: Speech Center
« Reply #7 on: 26 Mar 2012, 13:50 »
I tried it, too bad it won't work with my custom say functions :(


- Alan

Would it be possible to have the plugin have a setting to include custom say functions? If it can detect Say, then how much of a stretch would it be to have it include other functions of the user's choice, other than Say and Display?

Calin Leafshade

  • AGS Project Tracker Admins
  • Long live King Cat!
    • I can help with making music
    •  
    • I can help with voice acting
    •  
    • Calin Leafshade worked on a game that was nominated for an AGS Award!
      Calin Leafshade worked on a game that won an AGS Award!
Re: EDITOR PLUGIN: Speech Center
« Reply #8 on: 26 Mar 2012, 16:34 »
+1 for custom say functions.

Just let the user define it with wild cards and then regex it.

Re: EDITOR PLUGIN: Speech Center
« Reply #9 on: 26 Mar 2012, 18:25 »
It's not such a major stretch.
The easiest way to do it is to give the user a choice of the function name and which function parameter is the text (this is in fact the way I search for the function).

Now, my main question is, how do you usually define your custom functions today? Some options I could think of:
* Send character ID as parameter
* Extender functions
* A function that always displays a predefined character (e.g., NarratorTalk, cEgoTalk, etc.)

I'll try to support all, but I would like to know if there is a common way people define them. Also, I would like to verify if I missed something you usually do.
If you could send me your custom functions (here or by email) I can make sure I test it with them.

Do most people display text with custom functions, or did you manage to also check the use of the standard functions?

« Last Edit: 26 Mar 2012, 18:28 by SpeechCenter »

Calin Leafshade

  • AGS Project Tracker Admins
  • Long live King Cat!
    • I can help with making music
    •  
    • I can help with voice acting
    •  
    • Calin Leafshade worked on a game that was nominated for an AGS Award!
      Calin Leafshade worked on a game that won an AGS Award!
Re: EDITOR PLUGIN: Speech Center
« Reply #10 on: 26 Mar 2012, 18:37 »
I almost always mirror the normal function.

usually:

void iSay(this Character*, String what);

Re: EDITOR PLUGIN: Speech Center
« Reply #11 on: 26 Mar 2012, 20:07 »
same here, I use extenders to mimic the original function

function SayBox(this Character*, String text, (optional)int color);
function ThinkBox(this Character*, String text);

- Alan

Calin Leafshade

  • AGS Project Tracker Admins
  • Long live King Cat!
    • I can help with making music
    •  
    • I can help with voice acting
    •  
    • Calin Leafshade worked on a game that was nominated for an AGS Award!
      Calin Leafshade worked on a game that won an AGS Award!
Re: EDITOR PLUGIN: Speech Center
« Reply #12 on: 26 Mar 2012, 20:17 »
A function to generate voice acting scripts and number lines for custom say commands would also be invaluable.

Re: EDITOR PLUGIN: Speech Center
« Reply #13 on: 26 Mar 2012, 21:13 »
A function to generate voice acting scripts and number lines for custom say commands would also be invaluable.
Regarding voice acting script, the easiest way for me to do this is to add an export function, but there are 2 things to consider:
1. There may be some extra information needed (Snarky mentioned that there should be a comments field for that purpose)
2. Snarky also a mentioned a tool that already handles voice acting scripts. I prefer not to recreate features already done by others, especially if the tool is built for that purpose. However, the author of that tool hasn't responded to this subject so I have no idea whether the tool is defunct, the author doesn't read this, or simply ignores it all.

As for renumbering, it was a conscious decision to refrain from script manipulation features for first release to make sure the plugin does its job without the chance of introducing bugs into the game itself. That's the reason I'm looking for feedback on what is already provided, to verify it works before opening a new type of feature.

But, if I don't hear anything about whether the plugin works with Say or Display, I'll have to assume it does and start earlier with manipulation features. It's best if people could verify this with standard functions, if possible, so I'll know I'm not dealing with basic functionality bugs. Makes debugging later releases MUCH easier.
« Last Edit: 26 Mar 2012, 21:22 by SpeechCenter »

Re: EDITOR PLUGIN: Speech Center
« Reply #14 on: 26 Mar 2012, 21:20 »
void iSay(this Character*, String what);
function SayBox(this Character*, String text, (optional)int color);
function ThinkBox(this Character*, String text);
Thanks, in that case I'll pay extra attention to extender functions

Snarky

  • Global Moderator
  • Mittens Earl
  • Private Insultant
    • I can help with proof reading
    •  
    • I can help with translating
    •  
Re: EDITOR PLUGIN: Speech Center
« Reply #15 on: 26 Mar 2012, 22:45 »
2. Snarky also a mentioned a tool that already handles voice acting scripts. I prefer not to recreate features already done by others, especially if the tool is built for that purpose. However, the author of that tool hasn't responded to this subject so I have no idea whether the tool is defunct, the author doesn't read this, or simply ignores it all.

I may in fact have been thinking of AJA's DialogDesigner, which now that I look at it more closely does something a bit different. Though I do think there have been other attempts to improve the AGS sound/voice system through plugins or standalone programs over the years; I would think those have been made redundant or incompatible by the new AGS sound system, though, if they ever were released in the first place. Sorry, I haven't actually tried any of them, they've just kind of been on the periphery of my awareness.

As for custom say functions, I use extender functions and in some cases functions with defined speakers (like narratorSay, say).

TheMagician

    • I can help with proof reading
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
Re: EDITOR PLUGIN: Speech Center
« Reply #16 on: 30 Mar 2012, 01:08 »
May I foolishly ask why so many people use self-written 'say' functions like

Code: Adventure Game Studio
  1. void iSay(this Character*, String what);

Dualnames

  • Local Moderator
  • Rottwheelers
  • Pretty Badass
    • Dualnames worked on a game that was nominated for an AGS Award!
      Dualnames worked on a game that won an AGS Award!
Re: EDITOR PLUGIN: Speech Center
« Reply #17 on: 30 Mar 2012, 14:18 »
May I foolishly ask why so many people use self-written 'say' functions like

Code: Adventure Game Studio
  1. void iSay(this Character*, String what);

Cause we're elitist cunts. Also because usually the standard Say function doesn't work as intented and instead of putting a line before it and after it on a every single occasion, we do it like ninjas.

Also nemo is hot.
No more military army stuff. I'm alive and back.

TheMagician

    • I can help with proof reading
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
Re: EDITOR PLUGIN: Speech Center
« Reply #18 on: 30 Mar 2012, 17:57 »
usually the standard Say function doesn't work as intented

Could you elaborate on that please? I've used character.Say("...") for a complete game and didn't come across any obvious problems.

Calin Leafshade

  • AGS Project Tracker Admins
  • Long live King Cat!
    • I can help with making music
    •  
    • I can help with voice acting
    •  
    • Calin Leafshade worked on a game that was nominated for an AGS Award!
      Calin Leafshade worked on a game that won an AGS Award!
Re: EDITOR PLUGIN: Speech Center
« Reply #19 on: 30 Mar 2012, 18:31 »
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.

Re: EDITOR PLUGIN: Speech Center
« Reply #20 on: 30 Mar 2012, 18:36 »
Calin beat me to it...

Look at this:
.

- Alan

Re: EDITOR PLUGIN: Speech Center
« Reply #21 on: 30 Mar 2012, 21:44 »
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.
« Last Edit: 30 Mar 2012, 21:47 by SpeechCenter »

TheMagician

    • I can help with proof reading
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
Re: EDITOR PLUGIN: Speech Center
« Reply #22 on: 30 Mar 2012, 22:12 »
@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).

Re: EDITOR PLUGIN: Speech Center
« Reply #23 on: 30 Mar 2012, 22:32 »
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

    • I can help with proof reading
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
Re: EDITOR PLUGIN: Speech Center
« Reply #24 on: 30 Mar 2012, 22:49 »
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?
« Last Edit: 30 Mar 2012, 23:00 by TheMagician »

Re: EDITOR PLUGIN: Speech Center
« Reply #25 on: 30 Mar 2012, 23:22 »
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
« Last Edit: 31 Mar 2012, 00:12 by SpeechCenter »

TheMagician

    • I can help with proof reading
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
Re: EDITOR PLUGIN: Speech Center
« Reply #26 on: 31 Mar 2012, 00:44 »
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.

Re: EDITOR PLUGIN: Speech Center
« Reply #27 on: 31 Mar 2012, 01:08 »
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.
« Last Edit: 31 Mar 2012, 01:10 by SpeechCenter »

TheMagician

    • I can help with proof reading
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
Re: EDITOR PLUGIN: Speech Center
« Reply #28 on: 31 Mar 2012, 11:59 »
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?

Re: EDITOR PLUGIN: Speech Center
« Reply #29 on: 31 Mar 2012, 15:15 »
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

  • Local Moderator
  • Rottwheelers
  • Pretty Badass
    • Dualnames worked on a game that was nominated for an AGS Award!
      Dualnames worked on a game that won an AGS Award!
Re: EDITOR PLUGIN: Speech Center
« Reply #30 on: 01 Apr 2012, 06: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
No more military army stuff. I'm alive and back.

Dave Gilbert

  • Mittens Vassal
  • AGS Baker
  • Hi. Our names are FRIGGING ADORABLE.
    • Lifetime Achievement Award Winner
    •  
    • Dave Gilbert worked on a game that was nominated for an AGS Award!
      Dave Gilbert worked on a game that won an AGS Award!
Re: EDITOR PLUGIN: Speech Center
« Reply #31 on: 14 Apr 2012, 14:32 »
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
« Last Edit: 14 Apr 2012, 14:40 by Dave Gilbert »

Re: EDITOR PLUGIN: Speech Center
« Reply #32 on: 14 Apr 2012, 18:00 »
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

  • Storm Behind The Badge
Re: EDITOR PLUGIN: Speech Center
« Reply #33 on: 14 Apr 2012, 18:24 »
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

  • Guest
Re: EDITOR PLUGIN: Speech Center
« Reply #34 on: 17 Apr 2012, 15:38 »
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.
« Last Edit: 17 Apr 2012, 16:31 by m0ds »

Re: EDITOR PLUGIN: Speech Center
« Reply #35 on: 17 Apr 2012, 20:19 »
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.

Re: EDITOR PLUGIN: Speech Center
« Reply #36 on: 17 Apr 2012, 20:28 »
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.

« Last Edit: 17 Apr 2012, 20:30 by SpeechCenter »

straydogstrut

  • Barking up the wrong tree
    • I can help with play testing
    •  
    • I can help with proof reading
    •  
Re: EDITOR PLUGIN: Speech Center
« Reply #37 on: 18 Apr 2012, 00:09 »
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 :)

Re: EDITOR PLUGIN: Speech Center
« Reply #38 on: 18 Apr 2012, 18:51 »
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.

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.

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

  • Some things, you just can't unsee.
    • I can help with animation
    •  
    • I can help with backgrounds
    •  
    • I can help with characters
    •  
    • I can help with making music
    •  
    • I can help with play testing
    •  
    • I can help with proof reading
    •  
    • I can help with story design
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
Re: EDITOR PLUGIN: Speech Center
« Reply #39 on: 26 Apr 2012, 00:54 »
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.

Re: EDITOR PLUGIN: Speech Center
« Reply #40 on: 04 May 2012, 13:05 »
I have just downloaded the plugin and I love it! This is very very useful for me. I recently wanted to change the "in-game" name of a certain character and this is perfect for finding all instances where I used it.

The only annoying thing is that it has problems with all sorts of header files. For example, it doesn't accept the gui scripts in my game (LucasArts 9-verb gui template).
ca. 50% completed

Re: EDITOR PLUGIN: Speech Center
« Reply #41 on: 04 May 2012, 15:26 »
I have just downloaded the plugin and I love it! This is very very useful for me. I recently wanted to change the "in-game" name of a certain character and this is perfect for finding all instances where I used it.

The only annoying thing is that it has problems with all sorts of header files. For example, it doesn't accept the gui scripts in my game (LucasArts 9-verb gui template).
Thanks. I found a typo in my code which causes the error in the 9-verb module. I'll have it fixed in the next version, which I plan to release in the coming days.
If you need it sooner, I can send you a pre-release, PM me your email if that's the case.

Re: EDITOR PLUGIN: Speech Center
« Reply #42 on: 05 May 2012, 14:47 »
Thanks, but no need to hurry. I'll wait. :smiley:
ca. 50% completed

Re: EDITOR PLUGIN: Speech Center
« Reply #43 on: 05 May 2012, 22:47 »
A new version of the plugin has been released. Main changes are the ability to specify the speech line number in a parameter and fix for the parsing of 9-verb module.
Thank you all for using the plugin and for the feedback. I now feel confident enough to call this version 1.0. You can download it here.
« Last Edit: 05 May 2012, 22:49 by SpeechCenter »

Speech Center - Version 1.1.0 - Voice Acting Scripts
« Reply #44 on: 01 Jun 2012, 15:45 »
New version available with a new feature - export voice acting scripts
Here's a sample output.


It also includes settings to control the output format. As always, please let me know if you run into any trouble.

The output format is similar to the one used by the sqvsb guys, I found it very readable and useful.
« Last Edit: 01 Jun 2012, 16:05 by SpeechCenter »

Dave Gilbert

  • Mittens Vassal
  • AGS Baker
  • Hi. Our names are FRIGGING ADORABLE.
    • Lifetime Achievement Award Winner
    •  
    • Dave Gilbert worked on a game that was nominated for an AGS Award!
      Dave Gilbert worked on a game that won an AGS Award!
Re: EDITOR PLUGIN: Speech Center - Version 1.1.0
« Reply #45 on: 01 Jun 2012, 15:59 »
That's pretty rad. Thanks SC!

Dualnames

  • Local Moderator
  • Rottwheelers
  • Pretty Badass
    • Dualnames worked on a game that was nominated for an AGS Award!
      Dualnames worked on a game that won an AGS Award!
+1 on the usefulness of this.
No more military army stuff. I'm alive and back.

Dave Gilbert

  • Mittens Vassal
  • AGS Baker
  • Hi. Our names are FRIGGING ADORABLE.
    • Lifetime Achievement Award Winner
    •  
    • Dave Gilbert worked on a game that was nominated for an AGS Award!
      Dave Gilbert worked on a game that won an AGS Award!
Hey! We started using this in a major way on our most recent project, and it's the best thing ever! I do have one more request, if you'll indulge me.

Being able to generate voice acting scripts is a HUGE boon, but right now it generates every line for every character at one time. Would it be possible to generate specific reports, based on what is on screen? For example, right now we have a character that is mostly voiced. I want to generate a voice acting script based on whichever lines are still missing. I can get that up on screen easily enough, but it would be nice to generate the nicely formatted voice acting script as well. Would that be possible?

edit: And while I'm asking for stuff, what about being able to filter your search based on custom say functions? Often I don't realize that I need to include a custom say function until later, but it gets lumped in with every other line. It would be nice to single out the lines that use that custom function.
« Last Edit: 13 Jul 2012, 17:22 by Dave Gilbert »

Hey! We started using this in a major way on our most recent project, and it's the best thing ever! I do have one more request, if you'll indulge me.

Being able to generate voice acting scripts is a HUGE boon, but right now it generates every line for every character at one time. Would it be possible to generate specific reports, based on what is on screen? For example, right now we have a character that is mostly voiced. I want to generate a voice acting script based on whichever lines are still missing. I can get that up on screen easily enough, but it would be nice to generate the nicely formatted voice acting script as well. Would that be possible?

I have the exact same request.  This feature would be an amazing addition!

Hey! We started using this in a major way on our most recent project, and it's the best thing ever! I do have one more request, if you'll indulge me.

Being able to generate voice acting scripts is a HUGE boon, but right now it generates every line for every character at one time. Would it be possible to generate specific reports, based on what is on screen? For example, right now we have a character that is mostly voiced. I want to generate a voice acting script based on whichever lines are still missing. I can get that up on screen easily enough, but it would be nice to generate the nicely formatted voice acting script as well. Would that be possible?

I have the exact same request.  This feature would be an amazing addition!
I'm finishing testing the plugin translation support. Once I release it this feature is the next things I plan to add.

One other addition that would be useful to me (and perhaps others) is to have the plugin automatically number lines that are not numbered.  The auto script generator that is built into AGS will redo all numbered lines when it is run.  This can destroy work that was done previously.  It would be a great help if we could have lines that lack numbers get numbered by Speech Center while leaving all other previously numbered lines unchanged.

One other addition that would be useful to me (and perhaps others) is to have the plugin automatically number lines that are not numbered.  The auto script generator that is built into AGS will redo all numbered lines when it is run.  This can destroy work that was done previously.  It would be a great help if we could have lines that lack numbers get numbered by Speech Center while leaving all other previously numbered lines unchanged.

Yes, this was requested before. I'll try to get to it once I add full editing support.

I'm very happy to announce a new version with the ability to view translations per speech line.

Download here

In order to view existing translations, make sure to refresh the data and you should have all your translations listed. All features available for original text apply to translations, with the addition that once you select a line, you will see the original text at the bottom.

There's also an option to edit translation files with the same interface. To do this you must explicitly enable this from the preferences. I've used AGS functions to store the files, so it should be quite safe, but still, to be on the safer side it's best to backup your translation files before trying this.

Additional changes:
  • Added last refresh time to make it clearer whether the information is up to date
  • Added speech function column, so you can now know if Display, Say or a custom function was used (note that refresh is required to populate info)

Edit: Combined double-post (difference between posts was 18 minutes, so there was no need for a bump-post)
« Last Edit: 20 Jul 2012, 22:41 by Dualnames »

Re: EDITOR PLUGIN: Speech Center - Version 1.2.0
« Reply #52 on: 30 Jul 2012, 02:41 »
Hi all.
Any progress on adding an 'export to text file' function?
Or is this a feature already?

Re: EDITOR PLUGIN: Speech Center - Version 1.2.0
« Reply #53 on: 30 Jul 2012, 05:32 »
Hi all.
Any progress on adding an 'export to text file' function?
Or is this a feature already?
Do you mean VA scripts or something else?

There's a feature to export VA scripts to HTML files (one per character). I'm going to improve it a bit to cover Dave Gilbert's request and a few other improvements I have in the backlog.

Also, AGS already supports exporting VA scripts in text format.
« Last Edit: 30 Jul 2012, 05:34 by SpeechCenter »

Re: EDITOR PLUGIN: Speech Center - Version 1.2.0
« Reply #54 on: 22 Aug 2012, 10:29 »
I basically meant a function to dump all found dialog into a txt -file, for easier grammar/spell check or printing or whatever.
VA scripts is a bit above my level of expertise.

Sorry for the late reply.

Re: EDITOR PLUGIN: Speech Center - Version 1.2.0
« Reply #55 on: 22 Aug 2012, 17:57 »
I basically meant a function to dump all found dialog into a txt -file, for easier grammar/spell check or printing or whatever.
VA scripts is a bit above my level of expertise.
It's not complex to add export functionality in a different format, but I would like to understand what one would get from this on top of existing capability (The VA scripts are meant to be human readable). Perhaps an example output could make this clearer.

Furthermore, is grammar/spell checking your main use case or is it just a theoretical example?

Re: EDITOR PLUGIN: Speech Center - Version 1.2.0
« Reply #56 on: 23 Aug 2012, 20:35 »
I have not really tested the plugin yet and I'm not quite sure what VA scripts are all about. Sorry.
Since people were asking for an export function earlier in the thread, I simply figured there was none.

Grammar check or exporting for proof-reading was the first example I could think of, but also something I would find useful.
My current project is filled with speech lines in the scripts, which makes proof-reading nearly impossible. Especially if I need someone else to have a look at it.

I will take a look at speech center before asking any more stupid questions.

Re: EDITOR PLUGIN: Speech Center - New Version Coming Soon
« Reply #57 on: 07 Sep 2012, 19:27 »
Hello everyone,

I've been busy with changes to the plugin and while I'm still testing these changes, I wanted to share with you a screenshot of what's coming up. Most of the feature requests that came up here are going to be implemented. Of course, comments and questions are more than welcomed.

Dave Gilbert

  • Mittens Vassal
  • AGS Baker
  • Hi. Our names are FRIGGING ADORABLE.
    • Lifetime Achievement Award Winner
    •  
    • Dave Gilbert worked on a game that was nominated for an AGS Award!
      Dave Gilbert worked on a game that won an AGS Award!
Re: EDITOR PLUGIN: Speech Center - Version 1.2.0
« Reply #58 on: 08 Sep 2012, 10:09 »
This looks AWESOME. Thanks, SC.

Khris

    • Lifetime Achievement Award Winner
    •  
    • I can help with play testing
    •  
    • I can help with scripting
    •  
    • I can help with translating
    •  
    • Khris worked on a game that was nominated for an AGS Award!
Re: EDITOR PLUGIN: Speech Center - Version 1.2.0
« Reply #59 on: 08 Sep 2012, 17:07 »
Very nice, great work!

Dave Gilbert

  • Mittens Vassal
  • AGS Baker
  • Hi. Our names are FRIGGING ADORABLE.
    • Lifetime Achievement Award Winner
    •  
    • Dave Gilbert worked on a game that was nominated for an AGS Award!
      Dave Gilbert worked on a game that won an AGS Award!
Re: EDITOR PLUGIN: Speech Center - Version 1.2.0
« Reply #60 on: 13 Sep 2012, 09:39 »
No pressure or anything, but this will come very useful in about two weeks when I get back from vacation to finish the rest of the VO acting on my game. :)

Re: EDITOR PLUGIN: Speech Center - Version 1.2.0
« Reply #61 on: 13 Sep 2012, 17:53 »
No pressure or anything, but this will come very useful in about two weeks when I get back from vacation to finish the rest of the VO acting on my game. :)
I think it will be sooner than that, but worst case drop me a note and I'll find a solution.

I'm very happy to announce a new version of the Speech Center plugin. This release includes major changes:
  • Edit mode, now there's support for in-place text editing
  • Ability to add missing speech line numbers for the displayed lines
  • Display the script and highlight the line within the script of the current selected speech line
  • VA Scripts
    • Export only displayed lines
    • Option to group VA script lines by code block rather than by function
    • index.html is now created together with the voice scripts
  • Significantly improved refresh performance
  • Line info is displayed in the AGS properties window when selecting the line in the grid
  • New icons

It took a lot of effort to test this and to provide the best experience possible. Please let me know if you encounter any trouble. I also took many precautions in the edit feature and tested it with any source I could find. I still recommend you backup your game before editing, especially when using the feature for the first time.

The plugin is available here

As usual, please provide any feedback you'd like. Many of the features here are the direct result of the posts in this forum.

Enjoy!

Greetings,

I uploaded a minor update with a few fixes. Download link remains the same.

Feel free to comment or suggest additional improvements.

Version 2.0.2 released. Includes a bug fix that prevented exporting VA scripts in some cases.

Thank you man.

m0ds

  • Guest
Hello! I have copied the DLL into my AGS root folder but every time I load AGS I get this error pop up and I can't use Speech Center.



Any idea what may be causing this please?

Could it be that the game files were saved with an AGS that had no speech center installed?

Mind you, I think one of the games I'm trying to load definitely did have Speech Center installed and was used before I got given the game files, yet the error still pops up.

Perhaps I'm missing some essential system file?

Any help appreciated! Thank you

PS. Win XP Pro SP 3
« Last Edit: 05 Oct 2013, 08:12 by Mods »

monkey0506

  • AGS Project Tracker Admins
  • SEND PIZZA.
The error message indicates that it failed to load the "System.Core.dll" which is part of the .NET Framework 3.5+. Do you have .NET 3.5 or higher installed? The AGS editor itself requires .NET 2.0, but it looks like the plugin requires a higher version of the framework.

m0ds

  • Guest
Aha, thanks - that's very likely. I'm pretty sure I only have framework 2 or 3, not .5

I'll give it a shot, thanks!

EDIT- Solved! You were right. It doesn't like .NET 4 but it likes .NET 3.5

Thanks sir!
« Last Edit: 05 Oct 2013, 09:45 by Mods »

m0ds

  • Guest
Ok, so next question... You have a complete game, with no voice acting attached yet. There are many, many lines spread over different rooms, dialogs and global script etc.

None of them have line numbers, &1, &2. I was under the impression Speech Center would be able to work through and number them all for me, but I guess this isn't the case?

Will I still have to go through every line of script and number them, &1, &2 etc? Is there a quick method of doing this? I was thinking maybe in the "number" box you could just add a number but it seems you have to double click to enter the script etc.

If this is the case, I guess sorting by character and working through it that way would be quickest? If anyone has any decent methods for working on it from a game that has no VA currently, it'd be a lot of help :) Sorry, I'm new to this, and need to find the quickest and simplest method.

Many thanks!
« Last Edit: 05 Oct 2013, 09:59 by Mods »

The plugin does support automatic numbering of the game, you have to switch to edit mode and then in the edit dropdown you have an option to number all non-numbered lines. After that once you save the project it would apply the changes to your scripts/dialogs. The way it works is that it only numbers the lines currently displayed and not the ones you may have filtered out. It also only touches lines that don't have a number. The number is the lower available for the character. It also detects if a character has two different lines with the same text and if so it reuses the same number.

I had to add a specific edit mode due to the fact that the plugin interface doesn't have a way of notifying other components that an edit is in progress and no way of knowing if a script/dialog has pending changes. For this reason there's a dialog when entering edit mode and also upon save it closes all other windows and exits edit mode. However, you have full control over this behavior in the preferences because I didn't want these features to become nagging or annoying.

For the .net part, yes you guys are correct, I compiled it with 3.5 which is the highest .net version I can use while the editor is compiled with 2.0. Sticking to 2.0 for the plugin would have made some parts of the code overly complicated. My hope is that the editor would move to at least 4.0 at some point and then I'll make the same transition.

Currently aside from automatic numbering there's inline editing of the text itself. I didn't add an option to manually edit the number from the plugin. It's not impossible, but there are some details to take care of so it may take time to add it. Anyway, let me know if that feature has real use.

Please update if you managed to use the auto-number feature or whether something else needs to be worked out.
« Last Edit: 05 Oct 2013, 12:18 by SpeechCenter »

m0ds

  • Guest
Thanks. I tried it, but...

The game's default language is Italian. It has an English translation. Being English, it's only viable for me to work with the English texts and voice scripts.

I can only auto number the lines to the default language (Italian).

Although it also numbers the lines of the English translation, it no longer displays any English, whether I select to view default or English translation, and so exporting the voice scripts always occurs in Italian.

From that point, attempting to switch to English nothing happens, it just remains all in Italian, as if it's overwritten the English or something.

So I'm back at square one :(

I don't want to set the translation (English) as the game default because that will overwrite and destroy the Italian text.

If there is no way around it, I guess that's the only option, turn it into an English only game.
« Last Edit: 05 Oct 2013, 19:51 by Mods »

m0ds

  • Guest
Ah, I just thought of a workaround.

Have two copies of the game.

With copy 1, set the English translation as default, auto number it and compile the scripts, record the lines, the filenames always will be the same, ie ego1.ogg etc

When complete, copy all the voice files into Copy 2 speech folder. Then run speech center to number all the lines in Italian, and in theory, it will then work okay.

Does that seem like a fair assumption? There could be some errors that way though..
« Last Edit: 05 Oct 2013, 20:27 by Mods »

I believe the source of the problem is that once you have a game with translation, the code doesn't update the existing translation key with the new string (the &number is considered part of the key when translating).
So if you go to the translation you see Italian because the key for each line changed and there's no English translation for the new one.

The workaround you suggest will most likely work since the same lines will appear and will have the same order for both languages. However, I believe it will not work if you would like the compiled game to use the compiled translation file with this method.
 
I'll try to see if there's a quick fix for this.

m0ds

  • Guest
Thank you. I'm sure in time other commercial developers who deal with multiple languages may to need it to work like this too. Let me know if you come up with something. I don't really want to use the workaround, but deadlines...so will probably have to for now :) Other than that it certainly is a nifty thing!

Dhelayan

  • Oh Loretta!
I just noticed a bug (is it?) when using 2.0.2 with AGS 3.3.0 Beta..

When i edit some random line in edit mode, then press enter, save the game and hit refresh, the line is back to normal (i.e. without the edits)
« Last Edit: 10 Oct 2013, 00:43 by Dhelayan »

I just noticed a bug (is it?) when using 2.0.2 with AGS 3.3.0 Beta..

When i edit some random line in edit mode, then press enter, save the game and hit refresh, the line is back to normal (i.e. without the edits)
It's more than just this edit. The bug is in the AGS editor beta code. AGS.Types.Scripts doesn't return the correct count. If I have 10 scripts (5 header and 5 code) it returns 5 as the count (multiplying by 2 is not a good solution since some scripts may not have both file types).
This problem was introduced on July 24 or July 27 in the AGS Git code repository.

I changed my code to work around it and not rely on count, but this should be fixed in AGS.


Version 2.0.3 is now released here.
This version fixes the automatic numbering with translation problem and a workaround for the script count problem in AGS 3.3.0 beta.

Snarky

  • Global Moderator
  • Mittens Earl
  • Private Insultant
    • I can help with proof reading
    •  
    • I can help with translating
    •  
AGS.Types.Scripts doesn't return the correct count. If I have 10 scripts (5 header and 5 code) it returns 5 as the count (multiplying by 2 is not a good solution since some scripts may not have both file types).

Out of curiosity, how? Doesn't the editor always create and remove headers and script files together?

Crimson Wizard

  • AGS Project Tracker Admins
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    •  
    • Lifetime Achievement Award Winner
    •  
    • Crimson Wizard worked on a game that was nominated for an AGS Award!
      Crimson Wizard worked on a game that won an AGS Award!
Out of curiosity, how? Doesn't the editor always create and remove headers and script files together?
Dialog and room scripts do not have headers.
Also, there is at least one header created internally (where all the system symbols are defined).

PS. To clarify: this "Scripts" class is used not only to keep user scripts, it may be used for some internal purposes too.
« Last Edit: 10 Oct 2013, 08:19 by Crimson Wizard »

m0ds

  • Guest
Quote
This version fixes the automatic numbering with translation problem

Ooh. Is that a fix on the issue I was having with it or someone elses?

monkey0506

  • AGS Project Tracker Admins
  • SEND PIZZA.
PS. To clarify: this "Scripts" class is used not only to keep user scripts, it may be used for some internal purposes too.

Are you sure about that? Because I'm terribly worried you're just making this all up as you go. (roll) AGS.Editor.AGSEditor.GetInternalScriptM odules: These are never added to CurrentGame.Scripts. Nor are any of the Dialog.Script objects. Nor are the UnloadedRoom.Script objects. The Scripts class is used for collections of scripts, but the exposed Scripts object never contains anything except the scripts shown in the ScriptsComponent. To clarify. :P

Crimson Wizard

  • AGS Project Tracker Admins
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    •  
    • Lifetime Achievement Award Winner
    •  
    • Crimson Wizard worked on a game that was nominated for an AGS Award!
      Crimson Wizard worked on a game that won an AGS Award!
PS. To clarify: this "Scripts" class is used not only to keep user scripts, it may be used for some internal purposes too.

Are you sure about that? Because I'm terribly worried you're just making this all up as you go. (roll) AGS.Editor.AGSEditor.GetInternalScriptM odules: These are never added to CurrentGame.Scripts. Nor are any of the Dialog.Script objects. Nor are the UnloadedRoom.Script objects. The Scripts class is used for collections of scripts, but the exposed Scripts object never contains anything except the scripts shown in the ScriptsComponent. To clarify. :P

Find Game.ScriptsToCompile. It is of "AGS.Types.Scripts" type.
Before game is compiled this collection is filled by all other scripts:
Code: C#
  1. foreach (Script script in GetInternalScriptModules())
  2. {
  3.     CompileScript(script, headers, errors, false);
  4.     _game.ScriptsToCompile.Add(script);
  5. }
  6.  
  7. foreach (ScriptAndHeader scripts in _game.RootScriptFolder.AllItemsFlat)
  8. {
  9.     headers.Add(scripts.Header);
  10.     CompileScript(scripts.Script, headers, errors, false);
  11.     _game.ScriptsToCompile.Add(scripts.Script);                                
  12. }
  13.  
  14. CompileScript(dialogScripts, headers, errors, false);
  15. _game.ScriptsToCompile.Add(dialogScripts);
  16.  

Well, maybe except room scripts, frankly I could be mistaken in regards to them. E: right, I am wrong, because rooms are compiled separately from anything else.
« Last Edit: 10 Oct 2013, 09:22 by Crimson Wizard »

monkey0506

  • AGS Project Tracker Admins
  • SEND PIZZA.
I wasn't contending that the Scripts type is never used for non-public scripts. I was asserting that the CurrentGame.Scripts object (which is of the Scripts type) is never populated with non-public data, or anything other than what shows up under the "Scripts" pane in the editor.

Edit: As to modifying the Scripts type to operate as a collection of ScriptAndHeader objects, there's absolutely no reason that ScriptAndHeader.Header couldn't be null. The relevant functions should then be updated to handle such a case. Currently the Scripts collection is actually quite messy in that you can't "Add" a header without an associated script, but you can add a script with no header. Then Scripts.Count returns the number of ScriptAndHeader objects, but the indexer accesses items based on the underlying Script objects. This is bad design.
« Last Edit: 10 Oct 2013, 09:34 by monkey_05_06 »

Crimson Wizard

  • AGS Project Tracker Admins
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    •  
    • Lifetime Achievement Award Winner
    •  
    • Crimson Wizard worked on a game that was nominated for an AGS Award!
      Crimson Wizard worked on a game that won an AGS Award!
I wasn't contending that the Scripts type is never used for non-public scripts. I was asserting that the CurrentGame.Scripts object (which is of the Scripts type) is never populated with non-public data, or anything other than what shows up under the "Scripts" pane in the editor.
Err, well, I never said that CurrentGame.Scripts contains other stuff; in reply to Snarky's question I said that
Quote
"Scripts" class is used not only to keep user scripts

monkey0506

  • AGS Project Tracker Admins
  • SEND PIZZA.
Fair enough. :P But Snarky's question really seemed to be referring to the Scripts component rather than internal scripts... but anyway.

P.S. I edited my last post a couple times, just in case you missed any of it.



Edit: I pushed a fix for the reported issue, by updating the interface of the Scripts collection. It now operates directly on ScriptAndHeader objects exclusively. For scripts without an associated header, the Header property returns null. This may break some of the functionality you were using, because I've removed/replaced some of the exposed functions.
« Last Edit: 10 Oct 2013, 10:50 by monkey_05_06 »

Quote
This version fixes the automatic numbering with translation problem

Ooh. Is that a fix on the issue I was having with it or someone elses?
Should fix the issue you reported. Let me know if it worked out :)

Edit: I pushed a fix for the reported issue, by updating the interface of the Scripts collection. It now operates directly on ScriptAndHeader objects exclusively. For scripts without an associated header, the Header property returns null. This may break some of the functionality you were using, because I've removed/replaced some of the exposed functions.
I just looked at the class and it would certainly break any plugin that runs on the beta but compiled with the release version, including mine.
So I don't think it's a good fix because everything in AGS.Types is exposed to the plugin. How am I supposed to support those who decide to use the beta? And if I change it, then those would use AGS 3.2.1 will not be able to use the plugin.
I also believe you can still have a backwards compatible enumerators and items accessor for the Scripts class even if the internal implementation changed to ScriptAndHeader. Then at least you don't break those that access the class. It's not extremely complex, but it will require some attention to some details.

So please don't leave this change as-is, it's going to be hell to maintain plugins if the interface breaks like that.

m0ds

  • Guest
Great! This time it worked, it's showing me it in English (the translation) and allowing me to export it like that. No need to use the workaround now it seems. Thanks a lot!! :D

m0ds

  • Guest
Hello again SpeechCenter :) I think I've run into an issue, or I'm doing something incorrectly.

The games default language is Italian and it has an English.trs (translation). Auto numbering works fine and it displays both the default language and the English translation all numbered fine, scripts generated okay. Now I compile the game and play it, and it's always showing Italian. Even with winsetup set to English.trs. Though it only appears to be dialog that's affected, as GUI elements are still translated, and the trs file is intact (with the English translation).

So I'm puzzled why this is happening. Any ideas? :)

Hey Mods,

AFAIK, AGS uses the full text with the &number as the key in order to determine the translation. If the original file does not contain the number in the original (Italian) line then it won't find the correct English line. So what needs to be done is to update the translation file (from AGS, not the plugin). I make sure to copy the translation with the new number into the translation data structure so when you update the translation it should be in there with the correct values. After that it should work.

You will actually see after updating that the translation file that it contains two sets, the original ones and the numbered ones (probably the original in the beginning and the numbered in the second half). This is an AGS behavior, it would be the same if you were to go to the script manually and change the line numbers on your own. It's not something major, it just means your translation file is bigger and has irrelevant lines. I think the right place to add cleanup is in the translation component since it's the one generating the file. It's probably possible to think of a script that removes the unnecessary lines in your specific case.

Still, it should work after you update the translation file, so it's best to start by verifying that.

m0ds

  • Guest
Thanks for the quick reply. I understand what you mean and have tried it.

What happens then is section two, the newly created & numbered lines in the trs file, only have the Italian version (default), and blank lines for where all the English lines would be, as usually happens when you "Update" the translation. How do I preserve the English lines and have the line numbers added to them in the trs file? Hopefully there's some way, because having to manually move all the translated lines from the first section into the second section would take me days if not weeks... Is there some method I can use or am I missing a step in AGS (or maybe speech center? though I think it's AGS like you say). Thank you :)

Edit. I've totally confused myself over this. If you can give me a step by step guide it would be useful, and now speech center won't display any of the English translation so I've either overwritten something...like I say, totally confused!!
« Last Edit: 15 Oct 2013, 20:43 by Mods »

The steps are:
1. open the project without the numbering and translation
2. Open Speech Center plugin
3. optionally filter out lines you don't want to number
4. Go to edit mode
5. Choose to number lines without numbering
6. Save game
7. Update translation file

Thinking about it a bit, if you have done all steps till 6 and closed the project then it's possible that when opening it again this new translation information was not saved because the file was not updated. Will have to check that.
If there's another reason it doesn't display the translation anymore need to understand what was done, it worked in my tests.

m0ds

  • Guest
Thank you for explaining :) Everything worked out this time and all is in working order.

m0ds

  • Guest
Hi again SpeechCenter. The script generation is very useful, however I've found that the index.html that gets created shows the number of ALL lines, including repeated ones. I'm wondering if there's any possibility of it being made to display actual number of lines (that need recording) and perhaps then total number of lines after that?

For example, 4 lines that all say "I don't need to do that." and get recorded once (ie all using EGO3.wav), get listed as 4 lines. Although this doesn't happen much with NPC's it's certainly a key factor in player lines, who often repeat what they say. The feature itself (of showing number of lines in the index.html) is very useful, I just don't think it's showing the most useful information. Does that make sense?

Yes, makes sense.
Currently the actual file per character does display the duplicate lines differently, but the index is just the total of all the lines.
It shouldn't be difficult to add to the index that since the information is already generated.

As a workaround you can filter duplicate lines in the plugin and export only the displayed line. It should generate the index file with the correct number of lines.
If you want to have the full scripts with the index file just copy the file to the same directory as the other scripts. The two options should generate the VO scripts in different folders so you don't need to rename things between the two actions.

Please see if the workaround gives you what you need.

m0ds

  • Guest
Thanks, so do not show duplicate lines via plugin and then export only displayed, created "Voice_Scripts_Partial" and THAT seems to be showing the actual number of lines that need recording in index.html. Thanks!

General note:
If you are using the AGS 3.3.0 beta and the plugin, please make sure to use beta 12 (build 3.3.0.1152) or above.
This release should fix any compatibility issues associated with editor plugins that existed in some earlier beta versions.
If you do find any problems with the plugin while testing the beta release then let me know.

If you are using the current release version (AGS 3.2.1), no action is required at this time.

Version 2.0.4 is out and available here.
Fixes a parsing error in some specific scenarios.

Nixxon

  • -
Can I just say that this is bloody amazing. Not sure where I would go from here without this plugin.

Top work.

Dave Gilbert

  • Mittens Vassal
  • AGS Baker
  • Hi. Our names are FRIGGING ADORABLE.
    • Lifetime Achievement Award Winner
    •  
    • Dave Gilbert worked on a game that was nominated for an AGS Award!
      Dave Gilbert worked on a game that won an AGS Award!
So I have been using this plugin for four years now and had no problems. I would seriously be lost without it. Today, sadly, I have hit a snag.

My game has a lot of background conversations (e.g., non-blocking). It got very complex very quickly, so I created a system that generates them fairly quickly. I've created an array of structs called bgConv, with each struct in the array containing the character, the line to be spoken, and the audiofile name (currently "null" until I get the VO in). I created a command, attached to the struct, called "convSetup" which is used like this:

Code: Adventure Game Studio
  1.     BGconv VillageEye2;
  2.  
  3.     function BGsetup()
  4.     {
  5.         VillageEye2.convSetup(cEli, "Do these drawings on the wall mean anything to you, Mandana?",null);
  6.         VillageEye2.convSetup(cMandana, "I can not decipher their meaning, but I do get a sense of... reverence?",null);
  7.         VillageEye2.convSetup(cEli, "Reverence. Like worship?",null);
  8.         VillageEye2.convSetup(cMandana, "It is only a feeling.",null);
  9.     }  
  10.  

The plugin can pick up dialog that is called by global functions, but that doesn't seem to apply to functions that are subcommands of other objects (like structs).  Is there a way to enable Speech Center to pick up these conversations? Or should I cut my losses and just redo how the function works? In hindsight, I probably should have tested this out long before now.
« Last Edit: 23 Jun 2016, 16:08 by Dave Gilbert »

Can I just say that this is bloody amazing. Not sure where I would go from here without this plugin.

Top work.
Cool, glad you liked it and found it useful.

So I have been using this plugin for four years now and had no problems. I would seriously be lost without it. Today, sadly, I have hit a snag.

My game has a lot of background conversations (e.g., non-blocking). It got very complex very quickly, so I created a system that generates them fairly quickly. I've created an array of structs called bgConv, with each struct in the array containing the character, the line to be spoken, and the audiofile name (currently "null" until I get the VO in). I created a command, attached to the struct, called "convSetup" which is used like this:

Code: Adventure Game Studio
  1.     BGconv VillageEye2;
  2.  
  3.     function BGsetup()
  4.     {
  5.         VillageEye2.convSetup(cEli, "Do these drawings on the wall mean anything to you, Mandana?",null);
  6.         VillageEye2.convSetup(cMandana, "I can not decipher their meaning, but I do get a sense of... reverence?",null);
  7.         VillageEye2.convSetup(cEli, "Reverence. Like worship?",null);
  8.         VillageEye2.convSetup(cMandana, "It is only a feeling.",null);
  9.     }  
  10.  

The plugin can pick up dialog that is called by global functions, but that doesn't seem to apply to functions that are subcommands of other objects (like structs).  Is there a way to enable Speech Center to pick up these conversations? Or should I cut my losses and just redo how the function works? In hindsight, I probably should have tested this out long before now.
Hi Dave, long time :)
I checked and indeed this option is not covered. I'll try to find some time to update this, but I cannot really say at the moment when I'll be able to do that. Is it possible for you to use a global function for now?

Dave Gilbert

  • Mittens Vassal
  • AGS Baker
  • Hi. Our names are FRIGGING ADORABLE.
    • Lifetime Achievement Award Winner
    •  
    • Dave Gilbert worked on a game that was nominated for an AGS Award!
      Dave Gilbert worked on a game that won an AGS Award!
Well, it will be a looong time before this game is ready for voice acting. At least a year. So if you think it will be addressed sometime before then I will keep going as is. Thank you!

Vincent

  • "That is not a good reason"
    • I can help with play testing
    •  
    • I can help with scripting
    •  
    • I can help with translating
    •  
Good evening to all AGSer.

This is much interesting to know.
I didn't knew (since a couple of minute ago) that the file.tra doesn't translate any String inside an array. (roll)
In other hand, I should revisit all of my scripts and to do something like this.

Code: Adventure Game Studio
  1. if (Game.TranslationFilename != "English") {MessageToSay[0] = "Ciao, come stai ?";}
  2. else {MessageToSay[0] = "Hello, how are you ?";}

I wish I could ask you for confirmation on this issue before changing further the source code.
Thanks in advance.

Crimson Wizard

  • AGS Project Tracker Admins
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    •  
    • Lifetime Achievement Award Winner
    •  
    • Crimson Wizard worked on a game that was nominated for an AGS Award!
      Crimson Wizard worked on a game that won an AGS Award!
Vincent, you may use GetTranslation instead:

Code: Adventure Game Studio
  1. MessageToSay[0] = GetTranslation("Ciao, come stai ?");
  2.  

Alternatively, you may store non-translated string in array, but translate it later when you do something, like display it onscreen:
Code: Adventure Game Studio
  1. MessageToSay[0] = "Ciao, come stai ?";
  2. <...>
  3. Display(GetTranslation(MessageToSay[0]));
  4.  

Choose the way which is more convenient for your case.
« Last Edit: 06 Nov 2016, 18:38 by Crimson Wizard »

Vincent

  • "That is not a good reason"
    • I can help with play testing
    •  
    • I can help with scripting
    •  
    • I can help with translating
    •  
Thank you CW for the quickly answer.
I must need to try this further now, then I will be right back here again and let you know. :)

Vincent

  • "That is not a good reason"
    • I can help with play testing
    •  
    • I can help with scripting
    •  
    • I can help with translating
    •  
Okay CW, it's all working like a charm !!! :D
I really much appreciate for your help, really. :)

Now the file.tra can translate String inside an array as well.
I only had to change :
Code: Adventure Game Studio
  1. LabelMsg1.Say(String.Format("%s", MessageToSay[0]));

to this : (by always keeping the translation in the file text)
Code: Adventure Game Studio
  1. String translated_message = GetTranslation(MessageToSay[0]);
  2. LabelMsg1.Say(String.Format("%s", translated_message));

Both of the way I run the game (English or not) the String get read just properly fine.

Anyhow, I still have to revisit all of scipts in this way.
But I don't care because I am really much HAPPY that I got it to work, finally. :)
With this approach it will save me a lot of time for sure.

Many thanks again CW :)

Snarky

  • Global Moderator
  • Mittens Earl
  • Private Insultant
    • I can help with proof reading
    •  
    • I can help with translating
    •  
I just tried to use SpeechCenter in AGS 3.4.0, but it seems like the parser hasn't been updated to support all the new language features, so when I hit "Refresh" it's throwing errors all over the place, and fails to find all the speech lines in affected files (Edit: it turns out that failing to find the speech lines was at least partly because it doesn't understand optional parameters, so I had to configure it for all the different ways my custom functions can be called). Here's a partial breakdown of things it doesn't like:

Code: Adventure Game Studio
  1. #region RegionName
  2.  
  3. void StaticExtenderFunction(static StructName)
  4. {
  5.   for(int i=0; i<10; i++)
  6.   {
  7.     switch(i)
  8.     {
  9.       case 0:
  10.         break;
  11.     }
  12.   }
  13. }
  14.  
  15. #endregion
« Last Edit: 13 Jan 2018, 12:12 by Snarky »

Dave Gilbert

  • Mittens Vassal
  • AGS Baker
  • Hi. Our names are FRIGGING ADORABLE.
    • Lifetime Achievement Award Winner
    •  
    • Dave Gilbert worked on a game that was nominated for an AGS Award!
      Dave Gilbert worked on a game that won an AGS Award!
So I have been using this plugin for four years now and had no problems. I would seriously be lost without it. Today, sadly, I have hit a snag.

My game has a lot of background conversations (e.g., non-blocking). It got very complex very quickly, so I created a system that generates them fairly quickly. I've created an array of structs called bgConv, with each struct in the array containing the character, the line to be spoken, and the audiofile name (currently "null" until I get the VO in). I created a command, attached to the struct, called "convSetup" which is used like this:

Code: Adventure Game Studio
  1.     BGconv VillageEye2;
  2.  
  3.     function BGsetup()
  4.     {
  5.         VillageEye2.convSetup(cEli, "Do these drawings on the wall mean anything to you, Mandana?",null);
  6.         VillageEye2.convSetup(cMandana, "I can not decipher their meaning, but I do get a sense of... reverence?",null);
  7.         VillageEye2.convSetup(cEli, "Reverence. Like worship?",null);
  8.         VillageEye2.convSetup(cMandana, "It is only a feeling.",null);
  9.     }  
  10.  

The plugin can pick up dialog that is called by global functions, but that doesn't seem to apply to functions that are subcommands of other objects (like structs).  Is there a way to enable Speech Center to pick up these conversations? Or should I cut my losses and just redo how the function works? In hindsight, I probably should have tested this out long before now.
Hi Dave, long time :)
I checked and indeed this option is not covered. I'll try to find some time to update this, but I cannot really say at the moment when I'll be able to do that. Is it possible for you to use a global function for now?

Well, it will be a looong time before this game is ready for voice acting. At least a year. So if you think it will be addressed sometime before then I will keep going as is. Thank you!

Hello! So it's been a year and a half and I'm gearing up to start recording in a month or two. Any chance of this being addressed? Thanks again and apologies for the issue. :)

Dave Gilbert

  • Mittens Vassal
  • AGS Baker
  • Hi. Our names are FRIGGING ADORABLE.
    • Lifetime Achievement Award Winner
    •  
    • Dave Gilbert worked on a game that was nominated for an AGS Award!
      Dave Gilbert worked on a game that won an AGS Award!
Also there's one odd discrepancy I noticed when exporting my VO lines. (sorry for the double-post)

Here's a sample from a script (exported into Word):



As you can see, only SOME of the lines have the "Player:" line before the dialog, while others do not. I did some digging and discovered why.



The player's lines that got exported to the script are the lines that are checkmarked as "show" in the editor. I would like ALL of the player's lines to be exported. Is there a way to do that? The player characters isn't voiced, which is why I didn't write include their lines in the dialog itself.

Any help appreciated! Thanks again. This module is absolutely indispensable!

Dave Gilbert

  • Mittens Vassal
  • AGS Baker
  • Hi. Our names are FRIGGING ADORABLE.
    • Lifetime Achievement Award Winner
    •  
    • Dave Gilbert worked on a game that was nominated for an AGS Award!
      Dave Gilbert worked on a game that won an AGS Award!
Triple posting! Sorry to keep posting in this thread, but I discovered a bug and a workaround that folks might be interested in hearing.

So I noticed that one specific room script wasn't being picked up by the module. I was tearing my hair out trying to figure out why. I noticed that when I commented out the majority of the lines in the script, it got picked up. Naturally the room in question was one with LOTS of lines, so after about an hour of commenting and uncommenting later, I discovered the cause!

The culprit was this line:
Code: Adventure Game Studio
  1. cVicki.GSay("So what do we do about her?");");
  2.  

I mistakenly added an extra "); at the end of the command. This is something that the compiler ignored, but the Speech Center plugin did not. I removed the offending code and it now works perfectly!

Edit: I've tried contacting Gilad by PM and email, and have had no reply. So I guess it's safe to say he is no longer actively working on the plugin? Does the source for this exist anywhere?
« Last Edit: 02 Feb 2018, 11:46 by Dave Gilbert »

Dave Gilbert

  • Mittens Vassal
  • AGS Baker
  • Hi. Our names are FRIGGING ADORABLE.
    • Lifetime Achievement Award Winner
    •  
    • Dave Gilbert worked on a game that was nominated for an AGS Award!
      Dave Gilbert worked on a game that won an AGS Award!
I found another bug in the plugin. Sorry to keep multi-posting. The developer of this plug-in doesn't seem to be working on it anymore, so i figured I'd post it here so others are aware.

If Speech Center is in edit mode and you compile the game, AGS freezes. So be sure to SAVE the game (to get out of edit mode) before compiling.

Huge apologies for the long time being away... too many things happened in real life and only now I have seen all the messages so I wasn't aware this was going on. These issues certainly need to be addressed as well as the requests which are overdue, the goal of the plugin is to improve the productivity and I'd like to ensure this is maintained.
I'm going to see what I can do, will take me a bit to figure all this out. If I see I don't have the capacity to handle then I'll look for other options to address.

Again, sorry for the delay in my response.

Snarky

  • Global Moderator
  • Mittens Earl
  • Private Insultant
    • I can help with proof reading
    •  
    • I can help with translating
    •  
Woohoo! Great to have you back.

Whatever you decide you can do about these feature requests, I really do urge you to open-source the code. It's so vital to a lot of game projects that a risk of it not working or nobody being able to maintain it in the future could mean AGS isn't a viable option any more, just because of that.

It's your choice, of course. But even if nobody actually does edit the code, just knowing that in the worst case, as a fallback option, someone else could make some desperately needed fix or addition would be a huge relief. It doesn't have to be a big effort: Just picking a license and dropping the source code on Github or Bitbucket (or just zipping it up and sharing a link) is pretty quick.
« Last Edit: 16 May 2018, 15:47 by Snarky »

Dave Gilbert

  • Mittens Vassal
  • AGS Baker
  • Hi. Our names are FRIGGING ADORABLE.
    • Lifetime Achievement Award Winner
    •  
    • Dave Gilbert worked on a game that was nominated for an AGS Award!
      Dave Gilbert worked on a game that won an AGS Award!
He returns! Good to have you back. :)

Narehop

  • Solodev on @Outline_team
it works on 3.4.1? :-RE

I've been playing around with Speech Centre and it's such a time saver!

However, I've run into a snag. We use custom hotspot properties for base responses that don't need specific code, whenever the character responds with just a line of dialogue.

If defaultInteract or defaultLook is set to True, it uses the lines provided below.



Looks like Speech Centre doesn't pickup on these lines (those speech file numbers were added manually), I guess this isn't how most people handle default responses but it seemed like a nice tidy way of doing it when we started.

Anyway, we have 80+ rooms setup like this...

I guess my question is: Is this something SC might be able to support in the future? I really don't fancy going through and adding all of these to room script :~(

I've been playing around with Speech Centre and it's such a time saver!

However, I've run into a snag. We use custom hotspot properties for base responses that don't need specific code, whenever the character responds with just a line of dialogue.

If defaultInteract or defaultLook is set to True, it uses the lines provided below.



Looks like Speech Centre doesn't pickup on these lines (those speech file numbers were added manually), I guess this isn't how most people handle default responses but it seemed like a nice tidy way of doing it when we started.

Anyway, we have 80+ rooms setup like this...

I guess my question is: Is this something SC might be able to support in the future? I really don't fancy going through and adding all of these to room script :~(
It's a very interesting way to implement, I'll have to look at whether there is an easy way to access the hotspot properties. It does sound like a very specific way to implement this (interesting to know if others are using this or something similar), so I'll likely try to first look at options that allow extracting data from other sources a bit more generically.
Since I first want to ensure to get the plugin back to working condition, this use case will go to the backlog for now.

Thanks for taking a look, honestly it might not be worth your trouble (unless there are other people working like this). I spent a couple of days going through and converting everything over to room script, so it all plays nice with SC now. It's good to hear you're revisiting the project, it's an amazing plug-in!