Utterer Languages - Localization Framework
Utterer Languages is a scriptable object asset which stores language information and guides the components connected to it. Localize Text, Image, and Audio Source components as well as the Utterer Dialogue System and Utterer Captions System.
Utterer Languages comes with a Language Chooser script for syncing dropdown components with the Languages In Use list.
Language Chooser allows the user to choose a language at runtime. The Utterer Languages asset will save any changes made, guiding its related components to reflect those changes.
Control which languages are used in your project
Provides RTL support
Compatible with the following components:
Utterer Texts - Text Tool which can be added to Text/TextMeshPro components
Utterer Audio - Audio Tool which can be added to Audio Source components
Utterer Images - Image Tool which can be added to Image components
Utterer Dialogue System
Utterer Captions System
SCRIPTING REFERENCES
Utterer.UttererLanguages | ScriptableObject
_LanguageData - a list of type Utterer.UttererLanguages.LanguageData that contains all languages used with this asset
instance - static instance of this UttererLanguages
selectLanguage - a list of all the English names of available languages
codes - a list of all the ISO codes of available languages
displayNames - a list of all the Native names of available languages
languages - list of strings containing all english names of the Languages In Use list
RTL - list of the int indices of all right-to-left languages in the Languages in Use list
current - int index of the current language in use
currentLanguage - string of the English name of the current language in use
Utterer.UttererLanguages.LanguageData
languages - a list of class Utterer.UttererLanguages.LanguageList which contains all languages used with this asset
Utterer.UttererLanguages.LanguagesList
language - string for the English name of this language
inUse - bool determining whether or not this language is the current language in use
Dialogue System - Linear & Dynamic
Easily create a linear or dynamic dialogue sequence and customize the appearance of the system and its elements. Each individual part in the sequence has its own controls and settings.
Settings:
Content Fade - If true, causes any enabled content (icon, speaker, dialogue, button) to fade in and out at the beginning and end of each dialogue in the sequence
Style Fade - If true, causes any enabled style (background, outline, scrollbar) to fade in and out at the beginning and end of each dialogue in the sequence
Paint On - If true, causes the system to add one letter or word at a time, depending on the type setting. Creates a bool to control word vs letter, and a float field for you to control the rate at which the letter/word appears
Freeze Scene - If true, changes the time scale to zero at the beginning of the dialogue sequence and then resets time scale to its original value at the end of the sequence
Positions - allows for the positioning of each dialogue part in the sequence (TMP Object only)
Options:
Outline - If true, shows the outline of the system and creates style fields for its image and color
Outline Full - If true, the outline expands to contains all responses
Background - If true, shows the background of the system and creates style fields for the its image and color
Speaker - If true, shows the system's speaker and creates style fields for its font and color
Icon - If true, shows the icon if one is available in the dialogue sequence
Scrollbar - If true, shows a scrollbar for the dialogue and creates style fields for its back and handle images and colors
Button - If true, shows the system's advance button and creates style fields for its image and color
Response Back - If true, shows the backdrop for the responses
Fill Center - If true, fills the center of the response backdrop's Image. If false, only shows the "outline" of the response backdrop
Styles:
Background Style - refers to the background, outline, scrollbar, and advance button. Choose the color and texture (sprite/image) for each enabled element
Speaker Style - contains font, font size, font style, font color, font outline, and outline color settings for the speaker font, as well as a spacing setting to control the space between the speaker text and the dialogue text.
Dialogue Style - contains font, font size, font style, font color, font outline, and outline color settings for the dialogue font
Response Style - contains font, font size, font style, font color, font outline, and outline color settings for the response font. It also includes a Target Image bool to determine which graphic the button should target, a color field for the button background, and a color field for button's highlight color
Dialogue Tool :
All Dialogue and Response windows will be displayed in this workspace
Dialogue and response windows are draggable
You can scroll the workspace with the mouse or keyboard arrows
You can drag the workspace area by clicking the center mouse button
You can choose the background color, and choose between light mode and dark mode
Add and remove dialogue
Quick-position the windows in rows, columns, or diagonally
Controls which inputs can interact with the system
Import/export strings from txt/csv files
Dialogue Tool - Dialogue Window
Each window contains the following controls:
Response Input - A Dialogue window's Response Input is used to receive input from responses within the sequence and determine which part of the dialogue to display next.
Speaker - The speaker text area is where you'll input the text for the name of the speaker.
This field is hidden if the Speaker option is not enabled.
Dialogue - The dialogue text area is where you'll input the text for this piece of dialogue in the sequence.
Icon - Adding a sprite to the icon field will display an icon on the left of the dialogue system for this piece of dialogue.
Sound - Adding an audio clip to this field will play that clip during this piece of the dialogue.
This audio clip will be played by the dialogue system's audio source.
Interact - When set to true, the dialogue system will proceed based on user input.
You can control which inputs are used by opening the Inputs window.
Time - The amount of time you would like this part of the dialogue to display itself.
This field and the delay field are hidden if this Dialogue is set to have Responses
Delay - The amount of time you want to wait to display the next dialogue into the delay field.
Utterer will display nothing during this break
Responses - Turning this toggle on allows you to add up to four responses to this dialogue.
Positions - If the Positions setting is true, two Vector 3 fields will appear. One for position and one for rotation. (TMP 3D objects only)
Dialogue Tool - Response Windows
Each Response window has the following controls:
Response - The response text area is where you'll input the text for this response to the Dialogue.
Behaviour - Adding a game object to this field creates a list of available Monobehaviours to choose from.
Function Name - This string should be the name of a function in the chosen Monobehaviour. The string will be used in an Invoke method if this response is chosen.
Response Output - If this toggle is active and connected to another Dialogue's Response Input field, then that Dialogue will display next if this response is chosen.
SCRIPTING REFERENCES
Utterer.UttererDialogueSystem
UTTERER LANGUAGES
language - the reference for the UttererLanguages asset used by this system (if applicable)
DIALOGUES
dialogues - A list of type Utterer.UttererDialogueSystem.Dialogues which contains each dialogue part in the sequence
BACKDROP
icon - Image component used for icons in the dialogue
nextButton - GameObject that contains the button that advances the dialog on click
nextButt - Image for the advancement button
back - Image for the backdrop
outline - Image for the outline of the backdrop
scrollb - Scrollbar for the dialogue
scroller - ScrollRect that uses the ScrollBar
style - the first child of the system (Backdrop gameobject)
content - the second child of the system (Content gameobject)
respond - the third child of the system (Responses gameobject)
canvasrend - the Canvas Renderer of respond
TMPobj - bool to tell the system whether or not the system is UI or 3D object
SPEAKER
speaker - Text (Legacy) component for the speaker
outs - Outline for the speaker text
speakerTMP - TextMeshProUGUI component for the speaker
speakFontSizeTMP - float font size for the speaker text
speakerFontTMP - font for the TextMeshPro/UGUI speaker text
speakerObj - TextMeshPro 3D Object for the speaker
speakPos - RectTransform of the speaker
speakWidth - float for the sizeDelta.x of the speaker text (used for Spacing)
DIALOGUE
dialogue - Text (Legacy) component for the dialogue
outd - Outline component for the dialogue text
dialPos - RectTransform of the dialogue text
dialogueTMP - TextMeshProUGUI component for the dialogue
dialogueObj - TextMeshPro component for the dialogue
dialFontSizeTMP - font size for the TextMeshPro/UGUI dialogue text
dialogueFontTMP - font for the TextMeshPro/UGUI dialogue text
RESPONSES
responds - list of Text (Legacy) components for responses
respondsTMP - list of TextMeshProUGUI components for responses
respFontTMP - font for the TextMeshProUGUI responses text
respFontSizeTMP - font size for TextMeshProUGUI responses text
outr - list of Outlines for Text (Legacy) responses texts
resrect - RectTransform for the Responses object
contentRect - RectTransform for the Content object
bottom - float to gauge the bottom position of the content rect
SETTINGS
delayResp - amount of time to delay the responses from showing after each dialogue is displayed
systemFade - fade the Backdrop elements
contentFade - fade the Content elements
fadetime - the amount of time it takes to fade the system/content in/out
typingAnimation - Paint On Effect
typeSpeed- the rate at which words/letter are displayed when using the Paint On Effect
word - bool to configure whether Paint On adds a word or a letter at a time
positions - bool for TextMeshPro 3D systems that allows for a unique position and rotation for each dialogue part
pauseScene - sets time scale to zero at the beginning of the dialogue sequence, and resets it to its previous value at the end of the sequence
autoLayout - maintain spacing and positioning of system's components
INPUTS
anyKey - bool that is set by adding anyKey to the Inputs list. Allows the dialogue to progress by pressing any key
Inputs - list of Key names that you can add to the system that determine which inputs progress the dialogue
(Unity List of Keys - https://docs.unity3d.com/Manual/class-InputManager.html)
NEW INPUT SYSTEM reference
moveToNext - bool that tells the system to move to the next dialogue part in the sequence
Reference moveToNext to apply your own inputs:
Set moveToNext to true to perform the input, and set moveToNext false after you perform the input
OPTIONS
showIcons - bool to determine whether or not to show the Icon
showBackground - bool to determine whether or not to show the Backdrop
showOutline - bool to determine whether or not to show the Backdrop's Outline
showSpeaker - bool to determine whether or not to show the Speaker
showNextButton - bool to determine whether or not to show the advancement Button
showScrollbar - bool to determine whether or not to show the Scrollbar
outlineContainsResponses - bool that determines whether or not the Backdrop's outline contains the responses at runtime
fillCenter - true - Fills the center of the Responses Image
showRespBack - bool to determine whether or not to display the Responses background Image
BACKDROP STYLES
backgroundColor - the Color of the backdrop Image (UI systems only)
backgroundImage - the Sprite component of the backImage (UI systems only)
outlineColor - the Color of the outline Image
outlineImage - the Sprite for the backdrop's outline Image
nextButtonColor - Color for the advancement Button's Image
nextButtonImage - Sprite for the advancement Button's Image
buttHighlight - Color for the advancement Button's highlight color
nbo - bool for showing an Outline for the Next Button's Image
nextOutColor - Color for the advancement Button's Outline
scrollbackColor - Color for the Scrollbar's background Image
scrollbackImage - Sprite for the Scrollbar's background Image
handleColor - Color for the Scrollbar's handle
handleImage - Sprite for the Scrollbar's handle Image
responseBackground - the Sprite of the Responses Image component
responseBackColor - Color for the Responses background Image
SPEAKER STYLE
speakerColor - Color for the speaker text
speakerFont - font for the speaker text
speakFontSize - speaker font size
Spacing - the distance between the speaker text and the dialogue text (UI systems only)
DIALOGUE STYLE
dialogueColor - Color for the dialogue text
dialogueFont - font for the dialogue text
dialFontSize - dialogue font size
RESPONSE STYLE
respFontSize - responses font size
respFont - font for the responses texts
respButtonColor - the Color of the Buttons on the responses objects
targetImage - bool to determine whether each Response Button should target the response image or the response text
respColor - Color for the responses texts
respHighlight - Color for the Responses Button's highlight color
CONTROLLER VARIABLES
source - the system's Audio Source component
viewport - the viewport for the Scroll Rect that contains the dialogue
sideSwitcher - bool that when true switches the system from left to right to right to left and vice versa
Utterer.UttererDialogueSystem.Dialogues
icon - sprite used for the icon during this part of the sequence
speaker - string for the speaker text displayed during this part of the sequence
dialogue - string for the dialogue text displayed during this part of the sequence
sound - the audioclip to be played during this part of the sequence
choice - a bool that controls whether or not the system uses responses for this part of the sequence
choices - a list of type Utterer.UttererDialogueSystem.Response, which contains all the responses available in this part of the sequence
duration - the amount of time to display this part of the sequence
breakBetween - the amount of time to wait before displaying the next part of the sequence
position - the position of the system during this part of the sequence (TMP 3D object only)
rotation - the rotation of the system during this part of the sequence(TMP 3D object only)
If using UttererLanguages
speaks - list of strings, one for each language in the Languages asset, which controls what the speaker text displays during this dialogue
dials - list of strings, one for each language in the Languages asset which controls what the dialogue text displays during this dialogue
sounds - a list of type AudioClip, one for each language in the Languages asset which controls what audioclip plays during this dialogue
Utterer.UttererDialogueSystem.Response
response - a string the controls this response's text
behave - a gameobject that contains a script with a function to call if this response is chosen
script - of type Behaviour is the script from the behave object that contains the function to call
funct - the string name of the function to call in script
nextDialogue - int for the serialized index of the next dialogue in the sequence (set in the Dialogue Tool)
If using UttererLanguages
responses - a list of strings for each language in the Languages asset, which controls what this response text displays
Captions
The Captions System lets you create and control a timed sequence of captions that will format itself based on your input. Like the Dialogue System, you can easily customize the system and its elements.
Settings
Content Fade
Content Fade is a bool which when set to true causes any enabled content (caption text) to fade in and out at the beginning and end of each caption in the sequence
Style Fade
Style Fade is a bool which when set to true causes any enabled style (background, outline) to fade in and out at the beginning and end of each caption in the sequence
Paint On
Paint On is a bool which when set to true causes the system to add one letter or word at a time, depending on the type setting. Creates a bool to control word vs letter, and a float field for you to control the rate at which the letter/word appears
Positions
If using a TextMeshPro Object, this setting allows for the positioning of each caption in the sequence
Options
Background Style
Background style refers to the background & outline. Choose the color and texture (sprite/image) for the enabled
Captions Style
Contains settings for the captions font
The Captions Tool
All windows will be displayed in this workspace.
Windows are draggable.
You can scroll the workspace with the mouse or keyboard arrows.
Add & Remove captions
Import or export text from documents in your project
Captions Tool - Caption Windows
Caption : Text Area
The caption text area is where you'll input the text for this caption in the sequence.
Time : Float Field
The amount of time you would like this caption to display itself.
This time includes start fade in and end fadeout, if applicable
Delay : Float Field
The amount of time you want to wait before displaying the next caption.
Utterer Captions System will display no text during this break
SCRIPTING REFERENCES
Utterer.UttererCaptionsSystem
captions - a list of type Utterer.UttererCaptionsSystem.Captions which contains all controls for each caption in the sequence
currentCap - the index of the currently displayed caption in the sequence
UTTERER LANGUAGES
language - the Utterer Languages asset that is attached to this system (if applicable)
CAPTIONS
captionObjectTMP - TextMeshPro component for the caption
captionTMP - TextMeshProUGUI component for the caption
capFontSizeTMP - TextMeshPro/UGUI font size for the caption text
captionFontTMP - TextMeshPro/UGUI font asset for the caption text
caption - Text Legacy component for the caption
outc - Outline component for the Text Legacy caption text
SETTINGS
scaleToText - scales the backdrop to fit the text if true
systemFade - fade the Backdrop elements
contentFade - fade the Content elements
fadeTime - the amount of time it takes to fade the system/content in/out
typingAnimation - Paint On Effect
typeSpeed- the rate at which words/letter are displayed when using the Paint On Effect
paintOn - bool to configure whether Paint On adds a word or a letter at a time
Positions - bool for TextMeshPro 3D systems that allows for a unique position and rotation for each dialogue part
OPTIONS
noBackground - bool whether or not to show the background
noOutline - bool whether or not to show the background's outline
BACKDROP STYLE
back - Image for the background
outline - Image for the background's outline
backgroundColor - Color for the back's Image
backgroundImage - Sprite for the back's Image
outlineColor - Color for the outline's Image
outlineImage - Sprite for the outline's Image
CAPTION STYLE
captionColor - Color for the caption text
capFontSize - font size for the Text Legacy caption text
captionFont - font for the TextLegacy caption text
Utterer.UttererCaptionsSystem.Captions
caption - the string that the caption text will display during this part of the sequence
duration - the amount of time to display this part of the sequence
breakBetween - the amount of time to wait before displaying the next part of the sequence
position - the position of the system during this part of the sequence (TMP 3D object only)
rotation - the rotation of the system during this part of the sequence(TMP 3D object only)
positionGiver - Transform to set an initial position for this part of the sequence
If using Utterer Languages
caps - list of strings, one for each language in the Languages asset for the caption
Dynamics - String Interpolation
Utterer Dynamics uses a scriptable object asset to store your list of dynamic calls in order to interpolate or color-code certain strings.
Interpolation is handled by the system's Dynamics Assistant, which finds all calls in an open scene and switches them with their ID's at runtime.
Utterer Dynamics replaces any "call" (a string or part of a string surrounded by < and > - Ex.
If a call's ID is "color", a color field will appear and you can choose a color and the system will change the string inside the call to your chosen color (ex. Call:
Calls are interpolated with their IDs/colors/values once when they are enabled in the scene.
SCRIPTING REFERENCES
Utterer.DynamicsManager | ScriptableObject
_DynamicsList- a list of class Utterer.DynamicsManager.DynamicsList that contains all the dynamics in the list
Utterer.DynamicsManager.DynamicsList
dynamics - a list of class Utterer.DynamicsManager.Dynamics that contains all the controls for each dynamic in the list
Utterer.DynamicsManager.Dynamics
call - string that is to be replaced by the ID at runtime, always surrounded by < > (ex.
ID - string that replaces the call at runtime
col - Color for the call if ID is "color"
Utterer.UttererDynamics
manager - reference of type DynamicsManager for the Dynamics Asset attached to this
public void DynamicsInput(TMP_InputField obj)
public void DynamicsInput(InputField obj)