Text Animation Blueprint
The Text Animation Blueprint (UTextAnimationBlueprint) is Texturge’s core asset type, analogous to UMG’s UWidgetBlueprint. It is used to configure text animation tracks, keyframes, and global parameters in Blueprint. Once compiled, it generates a UTextAnimationBlueprintGeneratedClass, which is instantiated and evaluated at runtime via UTextAnimInstance.
Asset Overview
| Property | Description |
|---|---|
| Base class | UBlueprint |
| Creation | Content Browser right-click → Texturge → Text Animation Blueprint |
| File extension | .uasset (standard UE asset) |
| Analogous to | UWidgetBlueprint (UMG widget blueprint) |
Blueprint Structure
Track List
The core data of an animation blueprint is a set of FTextAnimationTrack tracks. Each track controls one property component of FAnimationFrameData (e.g., opacity, translation X). Multiple tracks combine to form a complete per-character animation effect.
See Animation Tracks & Keyframes for detailed track documentation.
Text Animation List
UTextAnimationBlueprint
├── Tracks[] ← Track configuration (manual / Sequencer)
├── TextAnimations[] ← UTextAnimation sequence assets (Sequencer editing)
├── VariableNameToGuidMap ← Variable name → GUID mapping (analogous to UMG)
└── GeneratedClass ← Build output: UTextAnimBlueprintGeneratedClass
The TextAnimations array stores UTextAnimation assets — subclasses of UMovieSceneSequence containing MovieScene timeline data. After editing keyframe curves in the Sequencer, the data is stored in these sequence assets.
VariableNameToGuidMap is analogous to UMG’s WidgetVariableNameToGuidMap, maintaining stable GUID identifiers for each TextAnimation, persistent across compiler runs.
Preview Text
Preview parameters are configurable in UTextAnimInstance’s Class Defaults:
| Property | Description |
|---|---|
PreviewText | Text used when previewing animation in the editor, defaults to “Hello Texturge” |
PreviewWidth / PreviewHeight | Preview container size constraints |
PreviewColorAndOpacity | Preview text color |
PreviewFont | Preview font asset |
PreviewLetterSpacing | Preview letter spacing |
PreviewFontMaterial | Preview font material (custom rendering effects) |
PreviewJustification | Text alignment |
bPreviewAutoWrapText | Whether to auto-wrap text |
PreviewLineHeightPercentage | Line height percentage |
Blueprint Overridable Events
UTextAnimInstance provides the following Blueprint-overridable event:
| Event | Description |
|---|---|
OnSelectDefaultAnimation() | Override to select the default animation to export. Falls back to TextAnimations[0] when returning None |
Compilation Pipeline
// Compile animation blueprint → generate UTextAnimInstance
UTextAnimationBlueprint* Blueprint = ...;
UTextAnimInstance* Instance = Blueprint->CreateAnimInstance();
// Compile animation data from blueprint asset
Instance->CompileFromAsset(Blueprint, CharacterCount);
Compilation process:
- Extract track data from the Tracks array or TextAnimations’ MovieScene FloatChannels
- Sort all tracks by StartTime
- Iterate through each track, generating per-frame data via keyframe interpolation
- Filter frame data based on character application mode (PerCharacter / Interval / Random)
- Store compiled results in
CompiledTrackData(per-track per-frame data arrays)
Compilation Output
UTextAnimInstance
├── CompiledTrackData[] ← One FCompiledTrackFrames per track
├── TrackFrameCounts[] ← Frame count per track
├── CompiledTrackIndices[] ← Track indices sorted by StartTime
├── EffectiveFrameRate ← Effective frame rate (default 30fps)
├── TotalDuration ← Total duration (seconds)
└── CachedInputFingerprint ← Input fingerprint (detects recompilation need)
FCompiledTrackFrames is the compilation result for a single track, containing a flat FAnimationFrameData[] array: [frame0-char0, frame0-char1, ..., frame1-char0, ...].
Total Duration Calculation
GetTotalDuration() computes the maximum (StartTime + Duration) across all tracks. In PerCharacterDuration timing mode, the per-character Duration is fixed, and the total duration scales linearly with character count.