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

PropertyDescription
Base classUBlueprint
CreationContent Browser right-click → Texturge → Text Animation Blueprint
File extension.uasset (standard UE asset)
Analogous toUWidgetBlueprint (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:

PropertyDescription
PreviewTextText used when previewing animation in the editor, defaults to “Hello Texturge”
PreviewWidth / PreviewHeightPreview container size constraints
PreviewColorAndOpacityPreview text color
PreviewFontPreview font asset
PreviewLetterSpacingPreview letter spacing
PreviewFontMaterialPreview font material (custom rendering effects)
PreviewJustificationText alignment
bPreviewAutoWrapTextWhether to auto-wrap text
PreviewLineHeightPercentageLine height percentage

Blueprint Overridable Events

UTextAnimInstance provides the following Blueprint-overridable event:

EventDescription
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:

  1. Extract track data from the Tracks array or TextAnimations’ MovieScene FloatChannels
  2. Sort all tracks by StartTime
  3. Iterate through each track, generating per-frame data via keyframe interpolation
  4. Filter frame data based on character application mode (PerCharacter / Interval / Random)
  5. 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.

images/animation-blueprint-editor.png — Texturge Animation Blueprint Editor main window with four-panel layout: designer preview viewport (showing "Hello Texturge"), track list, Sequencer timeline, and details panel