Configuration Reference

Texturge Beta’s configuration spans four levels: plugin-level settings (UTexturgeSettings), module dependencies (Build.cs), asset-level configuration (UTextAnimationBlueprint, UTextAnimationDataAsset), and instance-level parameter overrides (UAnimParameterOverrides).

Plugin Settings (UTexturgeSettings)

UTexturgeSettings is a configuration class inheriting UDeveloperSettings, defined in Source/Texturge/Public/Settings/TexturgeSettings.h.

UCLASS(config = Game, defaultconfig, meta = (DisplayName = "文本动画 插件设置"))
class TEXTURGE_API UTexturgeSettings : public UDeveloperSettings
{
public:
    static UTexturgeSettings* Get() { return GetMutableDefault<UTexturgeSettings>(); }
};

Access

UTexturgeSettings* Settings = UTexturgeSettings::Get();

Access the CDO singleton through the static Get(); since it inherits UDeveloperSettings, the configuration instance is managed automatically by the engine.

Project Settings Panel

Editor path: Edit → Project Settings → Plugins → Texturge.

Current Status

UTexturgeSettings currently has no configuration items — no UPROPERTY fields beyond Get(). All configuration is managed through animation assets and Blueprint variables.

NOTE

All runtime configuration is currently managed through animation Blueprint Class Defaults (Blueprint variables as parameters), UAnimParameterOverrides, and FAnimationEntry override maps — not through the Project Settings panel.

images/project-settings-texturge.png — Project Settings screenshot: Texturge category highlighted under Plugins group in the left tree, right side showing the empty plugin settings page (title and description only, no configuration items)

Module Dependencies

Texturge (Runtime)

// Plugins/Texturge/Source/Texturge/Texturge.Build.cs
PublicDependencyModuleNames.AddRange(new string[] {
    "Core", "CoreUObject", "Engine",
    "Slate", "SlateCore", "UMG",
    "MovieScene", "MovieSceneTracks",
    "DeveloperSettings",
});

TexturgeEditor (Editor)

// Plugins/Texturge/Source/TexturgeEditor/TexturgeEditor.Build.cs
PublicDependencyModuleNames.AddRange(new string[] {
    "Texturge",
    "Slate", "SlateCore",         // Public layer (2026-07 refactor adjustment)
    "UMGEditor",
    "KismetCompiler",
    "Sequencer", "SequencerCore",
    "BlueprintGraph",
    "PropertyEditor",
});

NOTE

The runtime module is named "Texturge" (not "TexturgeRuntime"). Editor tools live in the TexturgeEditor module, available only in editor builds and not packaged into runtime. The runtime module has no additional dependencies.

UTextAnimationBlueprint

The animation Blueprint asset (UBlueprint subclass) is the core configuration object for the plain text path.

PropertyTypeDescription
GlyphAnimationsTArray<TObjectPtr<UGlyphAnimation>>glyph animation asset list (managed in the animation panel)
TracksTArray<FTextAnimationTrack>legacy track array (@deprecated, kept for compatibility; not used by the new workflow)
StageTransitionConfigFStageTransitionConfigstage transition CrossFade config (Intro→Default / Default→Outro durations + easing, participates in fingerprint hashing)
VariableNameToGuidMapTMap<FName, FGuid>stable GUID mapping for Blueprint variables (maintained by the compiler)
CompileCountuint32compile counter (increments on every compile, participates in fingerprint hashing)

Blueprint variables as parameters: designers declare all animation parameters themselves in the Blueprint Class Defaults (float / int32 / bool / FVector / FLinearColor / FVector2D); there are no predefined parameters at the C++ layer (no ParentClass / BlendMode / Duration / CPS properties). Variables are read in the BuildDefaultAnimation event and modified at runtime through the Set Blueprint Variable nodes.

UTextAnimationDataAsset

The rich text tag → animation Blueprint mapping data asset (UDataAsset), referenced by UAnimatedRichTextBlock.

PropertyTypeDescription
EntriesTArray<FAnimationEntry>tag → animation Blueprint mapping entry array

FAnimationEntry Fields

FieldTypeDescription
TagNameFNamerich text tag name (e.g. <anim id="wave"> matches "wave", case-insensitive)
TypeTObjectPtr<UTextAnimationBlueprint>animation Blueprint asset reference
ParameterOverridesTMap<FName, float>Float parameter overrides
IntParameterOverridesTMap<FName, int32>Int parameter overrides
BoolParameterOverridesTMap<FName, bool>Bool parameter overrides
VectorParameterOverridesTMap<FName, FVector>Vector parameter overrides
ColorParameterOverridesTMap<FName, FLinearColor>Color parameter overrides
Vector2DParameterOverridesTMap<FName, FVector2D>Vector2D parameter overrides
bHideFirstFrameboolduring sequential playback, entries not yet executed are fully transparent before the animation starts

UAnimParameterOverrides

The per-widget-instance parameter override storage object (UObject, Instanced property) with 6 override maps:

TMap memberKey typeValue type
FloatOverridesFNamefloat
IntOverridesFNameint32
BoolOverridesFNamebool
VectorOverridesFNameFVector
ColorOverridesFNameFLinearColor
Vector2DOverridesFNameFVector2D

Keys are variable names in the animation Blueprint. When multiple widgets share one Blueprint, each isolates through its own override map; the CDO is never modified.

Blueprint Variable System

The EAnimParamType enum (not a UENUM) identifies the supported variable types:

Enum valueCorresponding C++ type
Floatfloat
Intint32
Boolbool
VectorFVector
ColorFLinearColor
Vector2DFVector2D

TAnimParamTraits Template Mapping

TAnimParamTraits<T, Owner> maps types to override map members at compile time, powering type-safe parameter overrides:

TypeUAnimParameterOverrides specializationFAnimationEntry specialization
floatFloatOverridesParameterOverrides
int32IntOverridesIntParameterOverrides
boolBoolOverridesBoolParameterOverrides
FVectorVectorOverridesVectorParameterOverrides
FLinearColorColorOverridesColorParameterOverrides
FVector2DVector2DOverridesVector2DParameterOverrides

Companion macros and templates (AnimParamOverrideUtils.h / AnimParamTraitsHelpers.h):

  • DECLARE_ANIM_PARAM_TRAIT(CppType, OwnerType, MapMember, VerifyExpr, ApplyExpr) — generates UAnimParameterOverrides specializations
  • DECLARE_ENTRY_TRAIT(CppType, MapMember, VerifyExpr) — generates FAnimationEntry specializations
  • FOR_EACH_ANIM_PARAM_MAP(O, Func) — iterates all six override maps
  • ApplyAnimParamOverridesToInstance<Owner> — writes overrides into the bake temporary instance
  • AnimParamNeedsReset / AnimParamReset / AnimParamSync — reset button mechanism

TIP

Adding a parameter type only requires: 1) adding a TMap UPROPERTY; 2) one line of DECLARE_ANIM_PARAM_TRAIT / DECLARE_ENTRY_TRAIT specialization.