Author Topic: EDITOR PLUGIN: Speech Center - Version 2.1.2 - updated to support AGS 3.4 & 3.5  (Read 45321 times)

Right now i'm only need to renumber no-numbered characters lines speech, is it safe with 3.5?

The issue is only with playback, the rest of the functionality should work with 3.5. I believe I'll have a solution within a few weeks, I'll do my best to speed things up.

Grundislav

  • AGS Baker
  • Mittens Prince
  • Brogan
    • Lifetime Achievement Award Winner
    • Grundislav worked on one or more games that won an AGS Award!
    •  
    • Grundislav worked on one or more games that was nominated for an AGS Award!
The issue is only with playback, the rest of the functionality should work with 3.5. I believe I'll have a solution within a few weeks, I'll do my best to speed things up.

Great, thanks!

Is this an AGS issue or SpeechCenter's, that it writes its data into Game.agf even if not used in the particular game project?

Is this an AGS issue or SpeechCenter's, that it writes its data into Game.agf even if not used in the particular game project?
What's the expected behavior if AGS loaded the plugin? It's possible it writes an empty node, but not sure what's the issue.

Is this an AGS issue or SpeechCenter's, that it writes its data into Game.agf even if not used in the particular game project?
What's the expected behavior if AGS loaded the plugin? It's possible it writes an empty node, but not sure what's the issue.

I never knew how editor plugins are expected to work in this regard. When you work with engine plugins, these may be turned on and off for the individual projects, but not editor plugins, it seems.
SpeechCenter writes a node into Game.agf whenever I save a game, even if I don't really use it in this project. This does not seem right, because Game.agf is a part of project source, and it's not supposed to have data that does not belong to the game.
This is not a critical issue, but may be an annoyance, because if I share project code with someone else, and they don't have SpeechCenter installed, they will keep getting warnings upon opening a project. Also, data will get lost and recreated, and these recurring changes become part of version control commits.

For the reference, here is what it adds:
Spoiler: ShowHide
Code: XML
  1.   <Component Name="SpeechCenter">
  2.     <SpeechCenter Version="2.1.0.0">
  3.       <Document Version="2.0.0.0">
  4.         <Settings>
  5.           <CustomFunctions />
  6.           <VoiceActorScripts NewParagraph="PER_FUNCTION">
  7.             <Format>
  8.               <Styles>
  9.                 <CSSStyle CSSName="body" FontFamily="Cambria" Color="" FontStyle="inherit" FontWeight="inherit" />
  10.                 <CSSStyle CSSName=".currentCharacter" FontFamily="" Color="" FontStyle="inherit" FontWeight="inherit" />
  11.                 <CSSStyle CSSName=".otherCharacter" FontFamily="" Color="LightGray" FontStyle="inherit" FontWeight="inherit" />
  12.                 <CSSStyle CSSName=".lineNumber" FontFamily="" Color="Firebrick" FontStyle="inherit" FontWeight="inherit" />
  13.                 <CSSStyle CSSName=".duplicate" FontFamily="" Color="Thistle" FontStyle="inherit" FontWeight="inherit" />
  14.                 <CSSStyle CSSName=".speechCorrect" FontFamily="" Color="MediumBlue" FontStyle="inherit" FontWeight="inherit" />
  15.                 <CSSStyle CSSName=".speechIncorrect" FontFamily="" Color="Red" FontStyle="inherit" FontWeight="inherit" />
  16.                 <CSSStyle CSSName=".filtered" FontFamily="" Color="LightSlateGray" FontStyle="italic" FontWeight="inherit" />
  17.               </Styles>
  18.             </Format>
  19.           </VoiceActorScripts>
  20.           <Translations EnableEditing="false" />
  21.           <Edit ShowWarning="true" ExitEditModeAfterSave="true" RefreshProjectAfterSave="Any" />
  22.           <DialogParsing ShowAllOoptionText="false" />
  23.         </Settings>
  24.         <SpeechLines />
  25.         <Translations />
  26.       </Document>
  27.     </SpeechCenter>
  28.   </Component>
  29.  



What kind of data is this, as in, is this supposed to be a persistent data used in game, or "workspace data" used for plugin's work? I don't remember if AGS editor API provides good alternatives though. I know there's also *.agf.user file where optional workspace settings could be saved, but have no idea if it is suitable for SpeechCenter's needs.
« Last Edit: 26 Jan 2020, 14:26 by Crimson Wizard »

This data is in game.agf since my thought process was that this behavior should be consistent between different collaborators. Specifically, anything that affects the way the voice script is generated and the custom functions that were chosen, as well the checkboxes that were selected/unselected should also be stored and synced between users. Usually a .user file is per specific user preferences and this would mean different users of the same game project would not see the same outcome of the plugin.

Is there a different place to store project-level data (and not per user preferences)?

Plugin updated to address the playback issue with AGS 3.5.0. Please update me if you run into any additional issues.
Another minor feature is that if you use the new AGS 'custom say function in dialogs' capability, then the plugin will detect these functions, therefore there is no need to add these particular functions in the SpeechCenter plugin custom functions configuration.

AGS 3.4 is still supported for now to give people enough time to update to the newer editor version. I'll likely update the minimum version to AGS 3.5 later in the future.
« Last Edit: Yesterday at 11:19 by SpeechCenter »

Dave Gilbert

  • Mittens Vassal
  • AGS Baker
  • Eye see you.
    • Lifetime Achievement Award Winner
    • Dave Gilbert worked on one or more games that won an AGS Award!
    •  
    • Dave Gilbert worked on one or more games that was nominated for an AGS Award!
Excellent news! Thank you!

This data is in game.agf since my thought process was that this behavior should be consistent between different collaborators. Specifically, anything that affects the way the voice script is generated and the custom functions that were chosen, as well the checkboxes that were selected/unselected should also be stored and synced between users. Usually a .user file is per specific user preferences and this would mean different users of the same game project would not see the same outcome of the plugin.

Is there a different place to store project-level data (and not per user preferences)?

I apologize for forgetting to reply.
Yes, it looks like that Editor does not currently provide an appropriate config for shared "workspace" data. It's hard to tell whether the *user file does work as you expect though, because nothing prevents from copying it between collaborators as well. But it contains more "volatile" data, such as last build configuration (debug/release).

Yes, it looks like that Editor does not currently provide an appropriate config for shared "workspace" data. It's hard to tell whether the *user file does work as you expect though, because nothing prevents from copying it between collaborators as well. But it contains more "volatile" data, such as last build configuration (debug/release).
I think most of what's stored in there is data related to the plugin and not per user data. I think I've seen an AGS editor feature request to separate each section to its own XML file, so if that's implemented, and each plugin can store its data in its XML and it's all part of source control integration, then I think it will address the need to store the data and not create a huge project file. Another option is that each section specifies the files, this is more generic, but requires more work/changes. At the moment if I do this without an underlying feature from the editor, then there is no way to tell it that there are additional files that should be part of the project.

Assuming this makes sense then it might be best to see how to do this automatically without breaking the plugin's code, but this is a detail, if not possible we can find ways to have the plugin work with both options.

Grundislav

  • AGS Baker
  • Mittens Prince
  • Brogan
    • Lifetime Achievement Award Winner
    • Grundislav worked on one or more games that won an AGS Award!
    •  
    • Grundislav worked on one or more games that was nominated for an AGS Award!
Thanks for the update!