Animation Blueprint Editor

Texturge provides a complete visual editing environment — the Text Animation Blueprint Editor (FTextAnimationBlueprintEditor), analogous to UMG’s Widget Blueprint Editor, purpose-built for text animation assets.

Editor Architecture

FBlueprintEditor (engine base class)
    └── FTextAnimationBlueprintEditor (Texturge editor)
         ├── TextAnimBPDesignerMode ← Designer mode (opens by default)
         └── TextAnimBPGraphMode    ← Blueprint graph mode (event graph)

The editor inherits FBlueprintEditor, reusing the full blueprint editing framework (event graph, compilation, debugging, menus/toolbars) while adding text-animation-specific features.

Four-Panel Layout

Double-click a UTextAnimationBlueprint asset to open the editor, which defaults to Designer mode:

┌────────────────────────────────────────────────────────────┐
│  Toolbar (compile, playback, zoom, etc.)                    │
├──────────────────────┬──────────────────┬──────────────────┤
│                      │                  │                  │
│   Designer Viewport   │   Timeline       │   Details Panel  │
│   (real-time text     │   (Sequencer     │   (selected track │
│    animation preview) │    keyframe edit) │    property edit)│
│                      │                  │                  │
│   Track List          │                  │                  │
│   (add/remove/sort    │                  │                  │
│    animation tracks)  │                  │                  │
│                      │                  │                  │
├──────────────────────┴──────────────────┴──────────────────┤
│  Status bar (frame count, character count, cursor position)  │
└────────────────────────────────────────────────────────────┘

Designer Viewport

Analogous to UMG SDesignerView, providing a visual layout and preview environment for text animation:

FeatureDescription
Real-time previewText animation rendering at the current playhead position
Zoom & panMouse wheel zoom, right-drag pan
Snapping gridGrid snapping for layout alignment
Resolution previewMulti-resolution / aspect ratio preview
Font metricsBaseline, glyph bounds, line bounds visualization overlay
RulersTop and left ruler bars
Safe zonesCustom safe zone display

The designer surface (STextAnimationDesignSurface) is the preview canvas, with STextAnimationPaintSurface (Effects Layer) overlaying selection outlines, hover outlines, and font metric guides.

The info bar overlay at the bottom of the designer displays current resolution, DPI scale, cursor position, character count, frame count, etc.

Track List

Panel for managing the FTextAnimationTrack array:

  • Add track: Choose from the 10 track types (Opacity, Translation, Scale, etc.)
  • Remove track: Delete the selected track
  • Sort: Adjust StartTime via dragging or property editing to control track execution order
  • Enable/disable: Toggle with the bEnabled switch

Timeline

Embedded UE5 Sequencer editor for keyframe curve editing:

  • FloatChannel curve editing (Opacity, Letter Spacing, Rotation)
  • Vector2DChannel curve editing (Translation, Scale, Shear, etc.)
  • ColorChannel curve editing (Color, Shadow Color)
  • Standard Sequencer operations: add/delete keyframes, adjust time, zoom view, play/pause preview

Multi-animation support: The editor maintains a TextAnimations[] array, with each animation element corresponding to an independent Sequencer editor tab. Switch the currently edited animation via the animation panel (SAnimationList).

Details Panel

Displays the property editor for the selected object:

  • Selected track → shows all FTextAnimationTrack properties (track type, timing, blend mode, keyframe array, etc.)
  • Selected keyframe → shows FKeyFrame properties (time, value, interpolation type)
  • Uses the UTextAnimationTrackProxy proxy object to enable FTextAnimationTrack struct editability in the Details panel

Inter-Panel Data Sync

The editor uses a delegate system for real-time data synchronization between the four panels:

DelegateSourceTargetPurpose
OnPreviewTextChangedDetails panel (PreviewText change)Designer viewportUpdate preview text content
OnTracksChangedTrack list (add/remove tracks)Timeline, Details panelRefresh track data
OnTrackSelectedTrack list (select track)Details panelShow selected track properties
OnTextAnimationsUpdatedAnimation panel (add/remove animations)TimelineRefresh Sequencer tabs
OnSelectedAnimationChangedAnimation panel (switch animation)Designer viewport, TimelineSwitch preview and curves

Compilation

Click the Compile button in the toolbar to trigger the compilation pipeline:

  1. FTextAnimationBlueprintCompilerContext (Kismet compiler context extension) executes blueprint compilation
  2. Generates UTextAnimationBlueprintGeneratedClass
  3. SafeRecreatePreviewAnimInstance() creates a preview AnimInstance from the new GeneratedClass
  4. The designer viewport refreshes rendering with the new preview instance

During compilation, the bPendingRecreate flag queues recreation requests. If compilation is triggered during OnSequencerGlobalTimeChanged execution, it is deferred until after the preview update completes, ensuring ongoing frame data injection is not disrupted.

Editor Commands

FTextDesignerCommands registers the following editor commands:

CommandShortcutDescription
Toggle outlinesShow/hide widget dashed outlines
Zoom to fitScale preview to fit viewport
Swap aspect ratioSwitch between landscape and portrait
Toggle safe zonesFlip safe zone type

Editor commands are bound through FUICommandList, compatible with UMG Designer’s command system.

images/editor-panoramic.png — Texturge Animation Blueprint Editor panoramic screenshot: four-panel layout with "Hello Texturge" preview text in bounce-in animation, Opacity/Translation track curves in Sequencer
images/track-list-panel.png — Track list panel: + button showing 10 track type dropdown, 3 tracks (Opacity/Translation/Color) with enable checkboxes and delete buttons