烘焙参数配置

烘焙管线的可配置参数分布在三个层级:逐字形的 FGlyphScheduleInfo、逐图层的 UGlyphAnimationLayer、聚合工厂 UGlyphAnimationFactory。全局设置通过 UTexturgeSettings 暴露。

NOTE

Texturge 不存在 FTexturgeBakeConfig 结构体或 UTexturgeConfig 数据资产。所有配置均通过上述类与方法实现。

字形调度信息

FGlyphScheduleInfo 控制每个字形在动画中的时间与行为(系统预填 6 字段 + 设计师设置 2 字段):

参数类型读写说明
GlyphIndex / GlyphStringint32 / FString只读字形索引与字符串(系统预填)
bIsWhitespace / bIsPunctuation / bIsCJK / bIsDecoratorbool只读字形分类(系统预填)
StartDelayfloat读写动画起始延迟(秒)
bSkipAnimationbool读写跳过此字形动画

通过 UGlyphAnimationLayer 调度 API 批量配置(Index = -1 作用于全部):

Layer->SetStartDelayAt(-1, 0.0f);   // 起始延迟基准
Layer->SetDelayAt(-1, 0.05f);       // 逐字形错峰(第 i 个字形 = 0 + i × 0.05)
Layer->SkipAt(-1);                  // 批量跳过
Layer->SetSkipAnimationAt(3, false);// 恢复第 3 个字形

TIP

SetStartDelayAt(-1, X)SetDelayAt(-1, Y) → 第 i 个字形 = X + i × Y。反序时 SetStartDelayAt 为绝对覆盖语义,会覆盖错峰结果。

图层配置

UGlyphAnimationLayer 提供四类配置:

播放参数

// 创建时指定(PlayDirection / PlaySpeed / NumberOfLoops)
UGlyphAnimationLayer* Layer = UGlyphAnimationLayer::CreateLayer(
    AnimAsset, ETextAnimationBlendMode::Override, Schedule,
    EPlayMode::Forward, 1.0f, 1);

// 或创建后通过 SetPlayMode 修改
Layer->SetPlayMode(EPlayMode::PingPong, 2.0f, 0);  // 乒乓 + 2 倍速 + 无限循环

调度查询(8 个)

GetGlyphCount() / GetGlyphStringAt(Index) / GetStartDelayAt(Index) / GetSkipAnimationAt(Index) / IsWhitespaceAt(Index) / IsPunctuationAt(Index) / IsCJKAt(Index) / IsDecoratorAt(Index) — 全部 BlueprintPure。

字形微调(51 个)

10 属性 × 5 操作(Multiply / Divide / Add / Subtract / Clear*Steps)+ ClearGlyphOverridesAt

Layer->MultiplyScaleAt(0, FVector2D(1.2f, 1.2f));   // 缩放 ×1.2
Layer->AddRotationAt(-1, 15.0f);                    // 旋转 +15°
Layer->DivideOpacityAt(2, 0.5f);                    // 不透明度 ÷0.5
Layer->ClearGlyphOverridesAt(0);                    // 清空第 0 字形全部步骤

动画剪切

Layer->SetAnimationClipAt(0.1f, 0.2f);  // 前端裁剪 0.1s、末端裁剪 0.2s(播放轴口径)

工厂配置

UGlyphAnimationFactory 是多图层烘焙的执行容器:

  1. 创建工厂 — 必须传入基础层与调度:
UGlyphAnimationFactory* Factory = UGlyphAnimationFactory::CreateFactory(BaseLayer, Schedule);
// 或从文本创建
UGlyphAnimationFactory* FactoryFromText = UGlyphAnimationFactory::CreateFactoryFromText(BaseLayer, Text);
  1. 添加图层 — 后添加的层级更高:
Factory->AddLayer(Layer1);
Factory->AddLayer(Layer2);
// 或批量设置
Factory->SetLayers({ Layer1, Layer2, Layer3 });
  1. 工厂级微调 — 与 Layer 同构的 51 个函数,烘焙进 FBakedGlyph::FactoryOverride,求值时对混合后的最终状态整体应用一次(非逐层叠加):
Factory->MultiplyTranslationAt(-1, FVector2D(2.0f, 1.0f));
Factory->SetAnimationClipAt(0.0f, 0.5f);   // 工厂级整体剪切
  1. 执行烘焙Factory->Bake() 返回 FBakedStage(三步管线:逐层烘焙 → 层微调 → 逐字形拷贝 → 工厂后处理)

插件全局设置

UTexturgeSettingsUDeveloperSettings 子类,分类 "Plugins/Texturge"

UTexturgeSettings* Settings = UTexturgeSettings::Get();

当前无配置项——除 Get() 外无任何字段。所有烘焙参数通过上述类的方法在编译时确定。

典型配置流程

  1. 创建 UGlyphAnimationLayer:指定动画资产、混合模式(基础层 Override)与调度数组
  2. 调用 SetStartDelayAt / SetDelayAt 配置逐字形错峰,SkipAt + 分类查询跳过空白
  3. 通过 51 个微调函数调整各属性曲线(乘/除/加/减有序步骤)
  4. 创建 UGlyphAnimationFactory(基础层 + 调度),AddLayer 添加叠加层,工厂级微调整体修饰
  5. 调用 Bake() 生成 FBakedStage
  6. BuildDefaultAnimation 蓝图事件中组合上述逻辑——默认 _Implementation 已封装第 1~5 步
images/bake-config-panel.png — 烘焙配置面板示意:蓝图 Graph 中 BuildDefaultAnimation 事件编排链(构建调度信息 → 创建字形动画层 → 设置起始延迟值 → 设置字形延迟 → 跳过字形 → 创建工厂 → 添加层 → 烘焙),右侧类默认值面板显示设计师声明的蓝图变量(Speed/Delay/Color 等) — 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.)