Effects are divided in three categories, based on their functionality/application. They consist of:
Behavior Effects animate letters continuously during time, after the letter has been shown.
Appearance Effects animate letters only when they’re appearing on screen. For this reason, they’re mosty used in combination with the typewriter, which shows letters one after another.
Disappearance Effects make letters dynamically disappear, and under the hood they’re simply Appearance effects in reverse.
A list of all built-in effects is available here: Built-in Effects list
You can set different effects to your text in two main ways:
You can set which effect(s) will be applied to all letters by default in the TextAnimator component, without having to write effects tags for every text.
Example:
👍🏻 If you don’t want any effect applied by default, simply set the effects’ count to zero.
You can also apply effects to specific parts of your text by using rich text tags, overriding the default ones (if any).
The effects tag will look like this:
<tag>
to open, </tag>
to close{tag}
to open, {/tag}
to close{#tag}
to open, {/#tag}
to close#
before it, to simply remind you that disappearances are appearances in reverse).Once you close an effect tag, the letters will be affected again by the default effect (if any is set).
Example: “I’m cold” can be written as “I’m <shake>cold</shake>“ (in the text component) in order to apply a shaking behavior effect on the specific word “cold”.
Let's say that we have one default effect ("size"), but we want to apply a specific part of the text with the "fade" effect.
We can achieve that result by writing: "default default `{fade}` fade fade fade `{/fade}` default default"
As you can see, the letters that are outside the "fade" tags will have the default effect(s) applied, while the part inside "{fade}" and "{/fade}" will only have "fade".
Modifiers let you change the characteristics of your effects individually, and can be used in all effects categories.
Example: You could have an effect that is stronger than the previous one, but still in the same dialogue line, like “I was <wiggle>
strong</wiggle>
… but now I’m<wiggle a=3>
three times stronger</wiggle>
!!!”
“Modifiers” multiply the relative value; this way you can easily know how much stronger/weaker a modified effect will result compared to the base one (for this reason, a modifier of “1” will return the same result of a base value).
All Modifiers are structured like this: <effectID modifierID=modifierValue>
and you can also use multiple of them (eg. <wiggle a=2 f=4>
).
You can read a list of all the available modifiers for each effect: Built-in Effects list
{fade d=3}
.{#fade d=2}
.Some extra notes:
By using TextAnimator for Unity:
<shake><size>
”)./
’ character, like: </>
” for Behavior Effects{/}
” for Appearance Effects{/#}
” for Disappearance Effects.More than default effects, you can also create your own.
You can tweak built-in effects’ values in the TextAnimator component.
You can also use the same built-in effect values for multiple TextAnimator components.
👍🏻 Any TextAnimator that contains the same built-in scriptable object reference will share its same effect values.
You can setup uniform effects’ behavior on different screen resolutions.
Reference Font Size
: represents the size where objects behave as expected. As a reference, you can pick the font size in your unity editor.For example, open the "Example 1A - Effects" scene, so you'll automatically have all the default effects showed in the text.
→ The behavior of your effects in your screen resolution will now be uniform in other screen resolutions.
You can safely tweak the effects values as you prefer, and thanks to this configuration and TextAnimator will maintain the desired and original effect intensities in case the font size changes (do not change the "Reference Font Size", or the scaling will be different).
⚠️ Some effects act differently based on different fonts and sizes. You can read which effect is affected here: Built-in Effects list
👍🏻 In order to “fix” this, you can use the variable effectIntensityMultiplier
to scale all the affected effect’s amplitudes in the TextAnimator component.
Simple explanation: an effect’s strength of 2 could result weak in UI units (pixels), but really strong in world units. Then there is the font asset size etc.
This value will multiply only the affected variables, leaving unchanged the ones that are independent from different fonts and sizes.
You can change the effects TimeScale
mode in the “TextAnimator” component.
If you have the typewriter enabled, its timescale will match the relative TextAnimator’s timescale (which means that you can also show letters when the game is paused by setting the timescale to “unscaled”).
⚠️ If the game timescale is negative TextAnimator will act like it’s paused, but it will automatically resume once it’s greater than zero.