An open API service indexing awesome lists of open source software.

https://github.com/bluepixeldev/textmotion-pro

TextMotionPro is an animated text solution for Unity's TextMeshPro. Animate your text easily with customizable effects and smooth integration.
https://github.com/bluepixeldev/textmotion-pro

animation plugin text text-effects textmeshpro typewriter unity unity3d unity3d-plugin unity6

Last synced: about 14 hours ago
JSON representation

TextMotionPro is an animated text solution for Unity's TextMeshPro. Animate your text easily with customizable effects and smooth integration.

Awesome Lists containing this project

README

          

# textmotion-pro

[![Unity](https://img.shields.io/badge/unity-6%2B-green.svg?style=flat)](https://unity.com/)
[![Last Commit](https://img.shields.io/github/last-commit/bluepixeldev/textmotion-pro?style=flat)](https://github.com/bluepixeldev/textmotion-pro/commits/main)
[![Stars](https://img.shields.io/github/stars/bluepixeldev/textmotion-pro?style=flat)](https://github.com/bluepixeldev/textmotion-pro/stargazers)
[![Issues](https://img.shields.io/github/issues/bluepixeldev/textmotion-pro?style=flat)](https://github.com/bluepixeldev/textmotion-pro/issues)

**textmotion-pro** is a modular and performant animation system for [TextMeshPro](https://docs.unity3d.com/Packages/com.unity.textmeshpro@latest) 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.

## Features

- 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

## Installation

1. Clone or download this repository into your Unity project under `Assets/textmotion-pro`.
2. Ensure **TextMeshPro** is installed in your project via Unity Package Manager.
3. Use Unity 6.0 or later for full compatibility.

## Usage

### 1. Create a Motion Profile

- Right-click in the Project window → **Create → textmotion-pro → MotionProfile**
- Add or configure `TextEffect` assets to this profile.

### 2. Attach `TextMotionPro`

- Add the `TextMotionPro` component to a GameObject with a `TMP_Text` component.
- Assign a `MotionProfile` to the renderer.

### 3. Use Tags in Text

- Use tags like `Text` where `"Wave"` matches the `EffectTag` of a `TextEffect`.

## Extending

To implement a new animation:

1. Create a class inheriting from `TextEffect`.
2. Implement the `ApplyEffect()` method.
3. Define an `EffectTag` and optionally override validation or reset behavior.
4. Add the effect to a MotionProfile.

## Example

```csharp
[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
}
}
````