Jibble

Author Topic: EDITOR PLUGIN: Speech Center - Version 2.1.2 - updated to support AGS 3.4 & 3.5  (Read 51413 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: 17 Feb 2020, 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!

Blackthorne

  • Infamous Quests
    • Blackthorne worked on one or more games that won an AGS Award!
    •  
    • Blackthorne worked on one or more games that was nominated for an AGS Award!
I keep getting a strange error when I load AGS - and I can't get Speech Center to work. Has anyone else had this issue?

-----------------------------------
"Enjoy Every Sandwich" - Warren Zevon

http://www.infamous-quests.com

Privateer Puddin'

  • Mittens Viscount
  • bob
    • Privateer Puddin' worked on one or more games that won an AGS Award!
    •  
    • Privateer Puddin' worked on one or more games that was nominated for an AGS Award!
Do you have the latest version? I thought it was fixed.. anyway, Dave posted a fix:

Sorry! I thought I replied here. I figured out the solution. I right-clicked on the speech center DLL, went to properties, and selected "unblock."

Blackthorne

  • Infamous Quests
    • Blackthorne worked on one or more games that won an AGS Award!
    •  
    • Blackthorne worked on one or more games that was nominated for an AGS Award!
Yeah, I have the latest version! I missed this though, I'm going to try. My guess is it will work, and my brain fog has flustered me once again! Thanks, man.
-----------------------------------
"Enjoy Every Sandwich" - Warren Zevon

http://www.infamous-quests.com

eri0o

I also added a mention in the manual and a page (originally written by MorganW) there: https://adventuregamestudio.github.io/ags-manual/TroubleshootingWindowsZoneID.html

Curious, which AGS are you using? I think in the latest one it should detect and offer a pop up to unlock.

There is no easy for for this on the plugin (probably creation of an installer would work, but then need to think about multiple AGS destinations and it becomes complicated).
This is a security feature and starting from .net 4, it won't load DLLs that came from another computer (hence the need to unblock the dll). One other option is to add the following to the AGS runtime configuration file:
Code: XML
  1. <configuration>
  2.    <runtime>
  3.       <!-- Treat assemblies from network locations as fully trusted. -->
  4.       <loadFromRemoteSources enabled="true" />
  5.    </runtime>
  6. </configuration>
  7.  

HanaIndiana

  • Rottwheelers
  • I like the games... the games that go click!
    • I can help with play testing
    • I can help with scripting
    • I can help with voice acting
    • HanaIndiana worked on one or more games that won an AGS Award!
    •  
    • HanaIndiana worked on one or more games that was nominated for an AGS Award!
Thank you for the 3.5 update! ;-D This module has saved me sooo much time and effort.