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. ) with its associated "ID" (Ex. "Madsir").

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: , ID :"color")

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)