Bake Parameter Configuration

Configurable bake pipeline parameters are distributed across three levels: per-glyph FGlyphScheduleInfo, per-layer UGlyphAnimationLayer, and the aggregating factory UGlyphAnimationFactory. Global settings are exposed through UTexturgeSettings.

NOTE

Texturge has no FTexturgeBakeConfig struct or UTexturgeConfig data asset. All configuration is implemented through the classes and methods above.

Glyph Schedule Info

FGlyphScheduleInfo controls each glyph’s timing and behavior in the animation (6 fields system-prefilled + 2 fields set by the designer):

ParameterTypeAccessDescription
GlyphIndex / GlyphStringint32 / FStringread-onlyglyph index and string (system-prefilled)
bIsWhitespace / bIsPunctuation / bIsCJK / bIsDecoratorboolread-onlyglyph classification (system-prefilled)
StartDelayfloatread/writeanimation start delay (seconds)
bSkipAnimationboolread/writeskip this glyph’s animation

Batch configuration through the UGlyphAnimationLayer scheduling API (Index = -1 applies to all):

Layer->SetStartDelayAt(-1, 0.0f);   // base start delay
Layer->SetDelayAt(-1, 0.05f);       // per-glyph stagger (glyph i = 0 + i × 0.05)
Layer->SkipAt(-1);                  // batch skip
Layer->SetSkipAnimationAt(3, false);// restore glyph 3

TIP

SetStartDelayAt(-1, X) first, then SetDelayAt(-1, Y) → glyph i = X + i × Y. In reverse order, SetStartDelayAt uses absolute-set semantics and overwrites the stagger result.

Layer Configuration

UGlyphAnimationLayer offers four categories of configuration:

Playback Parameters

// Specify at creation (PlayDirection / PlaySpeed / NumberOfLoops)
UGlyphAnimationLayer* Layer = UGlyphAnimationLayer::CreateLayer(
    AnimAsset, ETextAnimationBlendMode::Override, Schedule,
    EPlayMode::Forward, 1.0f, 1);

// Or modify after creation via SetPlayMode
Layer->SetPlayMode(EPlayMode::PingPong, 2.0f, 0);  // pingpong + 2× speed + infinite loop

Scheduling Queries (8)

GetGlyphCount() / GetGlyphStringAt(Index) / GetStartDelayAt(Index) / GetSkipAnimationAt(Index) / IsWhitespaceAt(Index) / IsPunctuationAt(Index) / IsCJKAt(Index) / IsDecoratorAt(Index) — all BlueprintPure.

Glyph Tweaks (51)

10 properties × 5 operations (Multiply / Divide / Add / Subtract / Clear*Steps) + ClearGlyphOverridesAt:

Layer->MultiplyScaleAt(0, FVector2D(1.2f, 1.2f));   // scale ×1.2
Layer->AddRotationAt(-1, 15.0f);                    // rotation +15°
Layer->DivideOpacityAt(2, 0.5f);                    // opacity ÷0.5
Layer->ClearGlyphOverridesAt(0);                    // clear all steps of glyph 0

Animation Clipping

Layer->SetAnimationClipAt(0.1f, 0.2f);  // front trim 0.1s, back trim 0.2s (playback axis)

Factory Configuration

UGlyphAnimationFactory is the execution container for multi-layer baking:

  1. Create a factory — the base layer and schedule are required:
UGlyphAnimationFactory* Factory = UGlyphAnimationFactory::CreateFactory(BaseLayer, Schedule);
// or create from text
UGlyphAnimationFactory* FactoryFromText = UGlyphAnimationFactory::CreateFactoryFromText(BaseLayer, Text);
  1. Add layers — later layers have higher priority:
Factory->AddLayer(Layer1);
Factory->AddLayer(Layer2);
// or batch set
Factory->SetLayers({ Layer1, Layer2, Layer3 });
  1. Factory-level tweaks — 51 functions isomorphic to Layer, baked into FBakedGlyph::FactoryOverride and applied once to the final blended state during evaluation (not per-layer stacking):
Factory->MultiplyTranslationAt(-1, FVector2D(2.0f, 1.0f));
Factory->SetAnimationClipAt(0.0f, 0.5f);   // factory-level global clipping
  1. Run the bakeFactory->Bake() returns FBakedStage (three-step pipeline: per-layer bake → layer tweaks → per-glyph copy → factory post-processing)

Plugin Global Settings

UTexturgeSettings is a UDeveloperSettings subclass, category "Plugins/Texturge":

UTexturgeSettings* Settings = UTexturgeSettings::Get();

Currently no configuration items — no fields beyond Get(). All bake parameters are determined at compile time through the class methods above.

Typical Configuration Flow

  1. Create a UGlyphAnimationLayer: specify the animation asset, blend mode (base layer Override), and the schedule array
  2. Call SetStartDelayAt / SetDelayAt for per-glyph staggering; use SkipAt + classification queries to skip whitespace
  3. Adjust per-property curves with the 51 tweak functions (ordered multiply/divide/add/subtract steps)
  4. Create a UGlyphAnimationFactory (base layer + schedule), AddLayer the overlay layers, and apply factory-level tweaks as final polish
  5. Call Bake() to produce FBakedStage
  6. Combine the above logic in the BuildDefaultAnimation Blueprint event — the default _Implementation already encapsulates steps 1–5
images/bake-config-panel.png — Bake configuration panel diagram: BuildDefaultAnimation event graph orchestration chain (BuildScheduleInfos → CreateLayer → SetStartDelayAt → SetDelayAt → SkipAt → CreateFactory → AddLayer → Bake), with blueprint Class Defaults panel on the right showing designer-declared variables (Speed/Delay/Color etc.)