textmotion-pro is a modular and performant animation system for TextMeshPro components in Unity 6 and above. It allows you to author complex, character-based text animations using reusable ScriptableObject
assets in a profile-driven setup inspired by Unity's Volume system.
- Modular text effects defined as
ScriptableObject
s - Lightweight and performant — ideal for UI and in-game text
- Works with Unity 6.0 and above
- Tag-based animation control similar to HTML or BBCode
- Compatible with TextMeshPro components
- Runtime and editor-time updates supported
- Clone or download this repository into your Unity project under
Assets/textmotion-pro
. - Ensure TextMeshPro is installed in your project via Unity Package Manager.
- Use Unity 6.0 or later for full compatibility.
- Right-click in the Project window → Create → textmotion-pro → MotionProfile
- Add or configure
TextEffect
assets to this profile.
- Add the
TextMotionPro
component to a GameObject with aTMP_Text
component. - Assign a
MotionProfile
to the renderer.
- Use tags like
<Wave>Text</Wave>
where"Wave"
matches theEffectTag
of aTextEffect
.
To implement a new animation:
- Create a class inheriting from
TextEffect
. - Implement the
ApplyEffect()
method. - Define an
EffectTag
and optionally override validation or reset behavior. - Add the effect to a MotionProfile.
[TextEffect("Wave", "Wavy motion effect for characters")]
public class WaveEffect : TextEffect
{
public override string EffectTag => "Wave";
public override void ApplyEffect(MotionRenderContext context)
{
// Animation logic here
}
}