配置参考

Texturge Beta 的配置分为四个层面:插件级设置(UTexturgeSettings)、模块依赖(Build.cs)、资产级配置(UTextAnimationBlueprintUTextAnimationDataAsset)与实例级参数覆盖(UAnimParameterOverrides)。

插件设置(UTexturgeSettings)

UTexturgeSettings 是继承 UDeveloperSettings 的配置类,定义于 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>(); }
};

访问方式

UTexturgeSettings* Settings = UTexturgeSettings::Get();

通过静态 Get() 获取 CDO 单例;由于继承 UDeveloperSettings,配置实例由引擎自动管理。

项目设置面板

编辑器路径:编辑 → 项目设置 → 插件 → Texturge

当前状态

UTexturgeSettings 当前无配置项——除 Get() 外没有任何 UPROPERTY 字段。所有配置通过动画资产与蓝图变量管理。

NOTE

当前所有运行时配置通过动画蓝图类默认值(Class Defaults,蓝图变量即参数)、UAnimParameterOverridesFAnimationEntry 覆盖映射管理,而非项目设置面板。

images/project-settings-texturge.png — 项目设置面板截图:左侧分类树中 Plugins 分组下的 Texturge 分类高亮,右侧显示空白的插件设置页面(仅标题与描述,无配置项) — 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)

模块依赖

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 层(2026-07 重构调整)
    "UMGEditor",
    "KismetCompiler",
    "Sequencer", "SequencerCore",
    "BlueprintGraph",
    "PropertyEditor",
});

NOTE

运行时模块名称为 "Texturge"(非 "TexturgeRuntime")。编辑器工具位于 TexturgeEditor 模块,仅在编辑器构建中可用,不被打包到运行时。运行时模块无额外依赖。

UTextAnimationBlueprint

动画蓝图资产(UBlueprint 子类),是纯文本路径的核心配置对象。

属性类型说明
GlyphAnimationsTArray<TObjectPtr<UGlyphAnimation>>字形动画资产列表(动画面板管理)
TracksTArray<FTextAnimationTrack>旧版轨道数组(@deprecated,兼容保留,新工作流不使用)
StageTransitionConfigFStageTransitionConfig阶段过渡 CrossFade 配置(Intro→Default / Default→Outro 时长 + 缓动,参与指纹哈希)
VariableNameToGuidMapTMap<FName, FGuid>蓝图变量稳定 GUID 映射(编译器维护)
CompileCountuint32编译计数器(每次编译递增,参与指纹哈希)

蓝图变量即参数:所有动画参数由设计师在蓝图类默认值(Class Defaults)中自行声明(float / int32 / bool / FVector / FLinearColor / FVector2D),C++ 层无预定义参数(无 ParentClass / BlendMode / Duration / CPS 等属性)。变量在 BuildDefaultAnimation 事件中读取,运行时通过 设置蓝图变量 节点动态修改。

UTextAnimationDataAsset

富文本标签 → 动画蓝图映射数据资产(UDataAsset),供 UAnimatedRichTextBlock 引用。

属性类型说明
EntriesTArray<FAnimationEntry>标签 → 动画蓝图映射条目数组

FAnimationEntry 字段

字段类型说明
TagNameFName富文本标签名(如 <anim id="wave"> 匹配 "wave",忽略大小写)
TypeTObjectPtr<UTextAnimationBlueprint>动画蓝图资产引用
ParameterOverridesTMap<FName, float>Float 参数覆盖
IntParameterOverridesTMap<FName, int32>Int 参数覆盖
BoolParameterOverridesTMap<FName, bool>Bool 参数覆盖
VectorParameterOverridesTMap<FName, FVector>Vector 参数覆盖
ColorParameterOverridesTMap<FName, FLinearColor>Color 参数覆盖
Vector2DParameterOverridesTMap<FName, FVector2D>Vector2D 参数覆盖
bHideFirstFramebool顺序播放时,未执行条目在动画开始前完全透明

UAnimParameterOverrides

每个控件实例的参数覆盖存储对象(UObject,Instanced 属性),包含 6 组覆盖映射:

TMap 成员键类型值类型
FloatOverridesFNamefloat
IntOverridesFNameint32
BoolOverridesFNamebool
VectorOverridesFNameFVector
ColorOverridesFNameFLinearColor
Vector2DOverridesFNameFVector2D

键为动画蓝图中的变量名。多个控件共享同一蓝图时通过各自独立覆盖 Map 隔离,CDO 永不修改。

蓝图变量系统

EAnimParamType 枚举(非 UENUM)标识支持的变量类型:

枚举值对应 C++ 类型
Floatfloat
Intint32
Boolbool
VectorFVector
ColorFLinearColor
Vector2DFVector2D

TAnimParamTraits 模板映射

TAnimParamTraits<T, Owner> 在编译期将类型映射到覆盖 Map 成员,支撑类型安全的参数覆写:

类型UAnimParameterOverrides 特化FAnimationEntry 特化
floatFloatOverridesParameterOverrides
int32IntOverridesIntParameterOverrides
boolBoolOverridesBoolParameterOverrides
FVectorVectorOverridesVectorParameterOverrides
FLinearColorColorOverridesColorParameterOverrides
FVector2DVector2DOverridesVector2DParameterOverrides

配套宏与模板(AnimParamOverrideUtils.h / AnimParamTraitsHelpers.h):

  • DECLARE_ANIM_PARAM_TRAIT(CppType, OwnerType, MapMember, VerifyExpr, ApplyExpr) — 生成 UAnimParameterOverrides 特化
  • DECLARE_ENTRY_TRAIT(CppType, MapMember, VerifyExpr) — 生成 FAnimationEntry 特化
  • FOR_EACH_ANIM_PARAM_MAP(O, Func) — 遍历全部六种覆盖 Map
  • ApplyAnimParamOverridesToInstance<Owner> — 将覆盖写入烘焙临时实例
  • AnimParamNeedsReset / AnimParamReset / AnimParamSync — 重置按钮机制

TIP

新增参数类型只需:1) 添加 TMap UPROPERTY;2) 一行 DECLARE_ANIM_PARAM_TRAIT / DECLARE_ENTRY_TRAIT 特化。