烘焙参数配置
烘焙管线的可配置参数分布在三个层级:逐字形的 FGlyphScheduleInfo、逐图层的 UGlyphAnimationLayer、聚合工厂 UGlyphAnimationFactory。全局设置通过 UTexturgeSettings 暴露。
NOTE
Texturge 不存在
FTexturgeBakeConfig结构体或UTexturgeConfig数据资产。所有配置均通过上述类与方法实现。
字形调度信息
FGlyphScheduleInfo 控制每个字形在动画中的时间与行为(系统预填 6 字段 + 设计师设置 2 字段):
| 参数 | 类型 | 读写 | 说明 |
|---|---|---|---|
GlyphIndex / GlyphString | int32 / FString | 只读 | 字形索引与字符串(系统预填) |
bIsWhitespace / bIsPunctuation / bIsCJK / bIsDecorator | bool | 只读 | 字形分类(系统预填) |
StartDelay | float | 读写 | 动画起始延迟(秒) |
bSkipAnimation | bool | 读写 | 跳过此字形动画 |
通过 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 是多图层烘焙的执行容器:
- 创建工厂 — 必须传入基础层与调度:
UGlyphAnimationFactory* Factory = UGlyphAnimationFactory::CreateFactory(BaseLayer, Schedule);
// 或从文本创建
UGlyphAnimationFactory* FactoryFromText = UGlyphAnimationFactory::CreateFactoryFromText(BaseLayer, Text);
- 添加图层 — 后添加的层级更高:
Factory->AddLayer(Layer1);
Factory->AddLayer(Layer2);
// 或批量设置
Factory->SetLayers({ Layer1, Layer2, Layer3 });
- 工厂级微调 — 与 Layer 同构的 51 个函数,烘焙进
FBakedGlyph::FactoryOverride,求值时对混合后的最终状态整体应用一次(非逐层叠加):
Factory->MultiplyTranslationAt(-1, FVector2D(2.0f, 1.0f));
Factory->SetAnimationClipAt(0.0f, 0.5f); // 工厂级整体剪切
- 执行烘焙 —
Factory->Bake()返回FBakedStage(三步管线:逐层烘焙 → 层微调 → 逐字形拷贝 → 工厂后处理)
插件全局设置
UTexturgeSettings 是 UDeveloperSettings 子类,分类 "Plugins/Texturge":
UTexturgeSettings* Settings = UTexturgeSettings::Get();
当前无配置项——除 Get() 外无任何字段。所有烘焙参数通过上述类的方法在编译时确定。
典型配置流程
- 创建
UGlyphAnimationLayer:指定动画资产、混合模式(基础层Override)与调度数组 - 调用
SetStartDelayAt/SetDelayAt配置逐字形错峰,SkipAt+ 分类查询跳过空白 - 通过 51 个微调函数调整各属性曲线(乘/除/加/减有序步骤)
- 创建
UGlyphAnimationFactory(基础层 + 调度),AddLayer添加叠加层,工厂级微调整体修饰 - 调用
Bake()生成FBakedStage - 在
BuildDefaultAnimation蓝图事件中组合上述逻辑——默认_Implementation已封装第 1~5 步