Texturge Modules in Detail
The Texturge plugin consists of two modules: Texturge (Runtime) and TexturgeEditor (Editor). There is no separate Baker, Renderer, or GPU pipeline module.
Texturge Module (Runtime)
Module Overview
Module Class : FTexturgeModule, implements IModuleInterface
Loading Phase : Default (loaded at game startup)
Log Category : LogTexturge
Animation Blueprint System
Class Description UTextAnimationBlueprintUBlueprint subclass. Properties: GlyphAnimations (TArray<UGlyphAnimation*>), Tracks (@deprecated compatibility), StageTransitionConfig, VariableNameToGuidMap, CompileCount. Methods: CreateAnimInstance(), GetTotalDuration(), GetTrackById()UTextAnimInstanceCompiled Blueprint CDO + bake cache holder. BlueprintNativeEvent : BuildDefaultAnimation(int32 GlyphCount, const FString& Text). 4 Blueprint variable setters (float / FVector / FLinearColor / FVector2D), static BuildScheduleInfos(), GetAnimationByName(), GetCharacterCount(), EvaluateBaked(float) UTextAnimationBlueprintGeneratedClassUBlueprintGeneratedClass subclass holding compilation output (CompiledTracks / CompiledFrameRate / CompiledTotalDuration / CompiledCharacterInterval)
Baked Data Layer
Class Description FAnimationCompilerPure-function compiler (static methods). Entry point: BakeAllStages(UTextAnimationBlueprint*, const FString&, const FAnimInstanceCustomizer& = nullptr) → FBakedAnimation. Others: BuildScheduleInfos(), ExtractCurves() / ExtractCurvesRef() (zero copy), ConvertFloatChannelToRichCurve(), BakeStage(), BakeStageWithCurves(), ComputeTextFingerprint(), ComputeBlueprintFingerprint(), MinFramesBetweenRebakes = 3 FBakedAnimationNot a USTRUCT. TUniquePtr<FBakedStage> Intro/Default/Outro stages + dual fingerprints. Methods: GetStage() / HasStage() / GetFirstValidStage() / GetNextStageAfter() / GetTotalDuration() FBakedStageUSTRUCT. StageType / GlyphCount / TotalDuration / Glyphs. Methods: IsValid() / GetStartedGlyphCount() FBakedGlyphUSTRUCT. OriginalIndex / StartTime / Duration / bIsStatic / DefaultState / bHideFirstFrame / LayerCurves / FactoryOverride. Core method: Evaluate(StageTime, OutState) FPerLayerCurvesUSTRUCT. 21 TArray<FRichCurveKey> + BlendMode + PlayDirection + NumberOfLoops + PlaySpeedMultiplier + LayerDuration. Methods: Evaluate() / IsEmpty() / GetEffectiveDuration() FGlyphCurveSetNot a USTRUCT (21 FRichCurves), internal C++ temporary computation only FGlyphCurveOverrideUSTRUCT. Ordered tweak steps for 10 properties (FGlyphFloatOverrideStep / FGlyphVec2OverrideStep / FGlyphColorOverrideStep) FGlyphScheduleBuilderPure static scheduling utility (AddPerGlyphDelay / SkipWhitespace / SetDelayAt / SkipAt)
Layers & Factory
Class Description UGlyphAnimationLayerLayer wrapper (73 Blueprint functions): deep-copied curve copy + scheduling + glyph tweaks + animation clipping. Chainable API returning itself UGlyphAnimationFactoryMulti-layer merge baker (69 Blueprint functions): layer management + global scheduling + tweaks + Bake() three-step pipeline UGlyphAnimationUMovieSceneSequence subclass. GetDuration() / GetTrackTypes() / HasTrackType()
Runtime Controllers
Class Description UTextAnimationStageControllerStage playback engine. Playback: Play() / Pause() / Resume() / Stop() / RevealAll() / SetPlayDirection() / SetLoop() / TickAnimation() / EvaluateAllGlyphs(). Queries: IsPlaying() / IsComplete() / GetCurrentStage() / GetStageTime() / GetRevealedGlyphCount() / GetTotalGlyphCount(). Injection: Initialize() / PublishBakedAnimation(). Delegates: OnGlyphRevealed / OnStageChanged / OnAnimationComplete UTextAnimatorRich text typewriter engine (plain C++ methods only, zero Blueprint functions). SetPlainText() / SetRichText() / SetAnimationData() / SetAnimationBlueprint() / SetPlaybackMode() / SetCPS() / SetPlayMode() / SetPlaySpeedMultiplier() / SetSequentialPlayback() / SetMaxLoopCount() / StartAnimating() / TickAnimation() / Pause() / Resume() / Stop() / SkipToEnd() / GetCurrentFrameDataArray() etc.
Class Description UAnimatedTextBlockUTextBlock subclass. 12 Blueprint functions (6 playback + 6 Blueprint variables) + 2 Blueprint delegates. Properties: TextAnimationBlueprint / ParameterOverrides / bAutoPlay / bLoopPlaybackUAnimatedRichTextBlockURichTextBlock subclass. 6 playback Blueprint functions + 2 Blueprint delegates. Properties: AnimationData / bAutoPlay / bLoopPlayback / bSequentialPlaybackUEventSoundComponentUActorComponent subclass. Character sound mapping + punctuation delay + animator binding
Rich Text System
Class Description UTextAnimationDataAssetUDataAsset. Entries (TArray<FAnimationEntry>)FAnimationEntryUSTRUCT. TagName (FName) + Type (TObjectPtr<UTextAnimationBlueprint>) + 6 override maps + bHideFirstFrame FTagParserParser. Parse(const FString&, FString& OutPlainText) → TSharedPtr<FTagNode> FRenderTreeBuilderBuilder. Build(ParseRoot, PlainText, DataAsset) → FRenderNode, SerializeToDisplayText(), SerializeSubstring() FRichTextMarshallerPrivate Marshaller, per-glyph rich text rendering (per-line independent ModelString since UE5.8, line terminator prefix computation)
Localization & Unicode
Class Description ULocalizationSubsystemUGameInstanceSubsystem. SetLanguage() (broadcasts OnLanguageChanged), static RelocateAnchors() (exact match + LCS approximation + confidence dedup, MaxTextLength = 10000)FSemanticAnchorUSTRUCT. AnchorId / ContextualSnippet / SourceOffset FCharBreakIteratorIBreakIterator implementation, precomputes break point arrays (CJK / Surrogate Pair / Emoji cluster safe)Texturge::UnicodeNamespace utilities: IsCJK() / IsCJKPunctuation() / IsHiragana() / IsKatakana() / IsHangulSyllables() / surrogate pair composition Texturge::GlyphRenderNamespace utilities: ApplyTint() (PBM physical pigment mixing), SRGBToLinearChannel() / LinearToSRGBChannel(), BuildGlyphTransform(), IsSdfFont() etc.
Settings
Class Description UTexturgeSettingsUDeveloperSettings, category "Plugins/Texturge", currently no configuration items, static Get() access only
Build.cs Dependencies
// PublicDependencyModuleNames
"Core" , "CoreUObject" , "Engine" ,
"Slate" , "SlateCore" , "UMG" ,
"MovieScene" , "MovieSceneTracks" ,
"DeveloperSettings"
TexturgeEditor Module (Editor)
Module Overview
Module Class : FTexturgeEditorModule, implements IModuleInterface
Loading Phase : Default (editor environments only)
Responsibilities : registers Sequencer track editors, Details panel customization, editor commands (FTexturgeEditorCommands)
Log Category : LogTexturgeEditor
Blueprint Editor
Class Description FTextAnimationBlueprintEditorFBlueprintEditor subclass. Designer / Graph dual modes + 7 tabs. Methods: InitTextAnimationEditor() / Compile() / GetSequencer() / ChangeViewedAnimation() / SetActivePreviewSource() / GetPreviewSourceMediator() / GetPreviewSceneConfig() / AddTrack() / RemoveTrack() etc.FTextAnimBPDesignerMode / FTextAnimBPGraphModeFBlueprintEditorApplicationMode subclasses, register tab factoriesFTextAnimationBlueprintCompilerContextFKismetCompilerContext subclass (Private/Compiler). ValidateTrackData() / FixupVariableGUIDs() / CopyAssetDataToClass()UTextAnimationBlueprintFactoryUFactory, creates assets from the Content BrowserUAssetDefinition_TextAnimationBlueprintAsset definition (display name / color / category / open behavior)
Design Viewport & Preview
Class Description STextAnimationDesignerViewMain design viewport (STextAnimationDesignSurface + FGCObject + IUMGDesigner). SetPreviewFrameDataOverride() / preview size / font metrics FPreviewSourceMediatorPreview source arbitration (None / StagePreview / GlyphAnimation). RequestSource() / RegisterObserver() / TickPreview() / InvalidateBakeCache() / SetActiveOverrides() (4 groups) FTexturgePreviewBakeCachePreview bake cache (dual keys: TextFingerprint + BlueprintFingerprint) UTexturgePreviewSceneConfigPreview scene configuration (27 fields, persisted in EditorPerProjectUserSettings) STextAnimationPreviewWidget / STextAnimationPreviewList / STextAnimationList / STextAnimationGraphPreviewPreview and list Slate widgets (Private/Designer)
Sequencer Integration
Class Description UMovieSceneGlyphAnimationTrackMain Sequencer track (UMovieSceneNameableTrack, multi-line support) UMovieSceneGlyphAnimationSectionSub-track section (FTextAnimationSubTrackData) FGlyphAnimationTrackEditorSequencer track editor UI (FMovieSceneTrackEditor subclass, Private/TrackEditors), registered by FTexturgeEditorModule
Details Panel Customization
Class Description FAnimatedTextBlockDetailsUAnimatedTextBlock details (IDetailCustomization, parameter rows + Reset)FTextAnimationInstanceDetailsUTextAnimInstance details (IDetailCustomization, category sorting only)FAnimationEntryDetailsFAnimationEntry details (IPropertyTypeCustomization)UTextAnimationTrackProxyTrack property editing proxy AnimParamTraitsHelpers.hAnimParamNeedsReset / AnimParamReset / AnimParamSync templates
Build.cs Dependencies
// PublicDependencyModuleNames
"Texturge" ,
"Slate" , "SlateCore" ,
"UMGEditor" ,
"KismetCompiler" ,
"Sequencer" , "SequencerCore" ,
"BlueprintGraph" ,
"PropertyEditor"
images/module-dependencies.png — Module dependency diagram: TexturgeEditor (left) depends on Texturge runtime module (right), engine module dependencies (Slate/UMG/MovieScene/KismetCompiler/Sequencer etc.) listed at the bottom of each, editor dependencies marked editor-only