配置参考
Texturge Beta 的配置分为四个层面:插件级设置(UTexturgeSettings)、模块依赖(Build.cs)、资产级配置(UTextAnimationBlueprint、UTextAnimationDataAsset)与实例级参数覆盖(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,蓝图变量即参数)、
UAnimParameterOverrides与FAnimationEntry覆盖映射管理,而非项目设置面板。
模块依赖
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 子类),是纯文本路径的核心配置对象。
| 属性 | 类型 | 说明 |
|---|---|---|
GlyphAnimations | TArray<TObjectPtr<UGlyphAnimation>> | 字形动画资产列表(动画面板管理) |
Tracks | TArray<FTextAnimationTrack> | 旧版轨道数组(@deprecated,兼容保留,新工作流不使用) |
StageTransitionConfig | FStageTransitionConfig | 阶段过渡 CrossFade 配置(Intro→Default / Default→Outro 时长 + 缓动,参与指纹哈希) |
VariableNameToGuidMap | TMap<FName, FGuid> | 蓝图变量稳定 GUID 映射(编译器维护) |
CompileCount | uint32 | 编译计数器(每次编译递增,参与指纹哈希) |
蓝图变量即参数:所有动画参数由设计师在蓝图类默认值(Class Defaults)中自行声明(float / int32 / bool / FVector / FLinearColor / FVector2D),C++ 层无预定义参数(无 ParentClass / BlendMode / Duration / CPS 等属性)。变量在 BuildDefaultAnimation 事件中读取,运行时通过 设置蓝图变量 节点动态修改。
UTextAnimationDataAsset
富文本标签 → 动画蓝图映射数据资产(UDataAsset),供 UAnimatedRichTextBlock 引用。
| 属性 | 类型 | 说明 |
|---|---|---|
Entries | TArray<FAnimationEntry> | 标签 → 动画蓝图映射条目数组 |
FAnimationEntry 字段
| 字段 | 类型 | 说明 |
|---|---|---|
TagName | FName | 富文本标签名(如 <anim id="wave"> 匹配 "wave",忽略大小写) |
Type | TObjectPtr<UTextAnimationBlueprint> | 动画蓝图资产引用 |
ParameterOverrides | TMap<FName, float> | Float 参数覆盖 |
IntParameterOverrides | TMap<FName, int32> | Int 参数覆盖 |
BoolParameterOverrides | TMap<FName, bool> | Bool 参数覆盖 |
VectorParameterOverrides | TMap<FName, FVector> | Vector 参数覆盖 |
ColorParameterOverrides | TMap<FName, FLinearColor> | Color 参数覆盖 |
Vector2DParameterOverrides | TMap<FName, FVector2D> | Vector2D 参数覆盖 |
bHideFirstFrame | bool | 顺序播放时,未执行条目在动画开始前完全透明 |
UAnimParameterOverrides
每个控件实例的参数覆盖存储对象(UObject,Instanced 属性),包含 6 组覆盖映射:
| TMap 成员 | 键类型 | 值类型 |
|---|---|---|
FloatOverrides | FName | float |
IntOverrides | FName | int32 |
BoolOverrides | FName | bool |
VectorOverrides | FName | FVector |
ColorOverrides | FName | FLinearColor |
Vector2DOverrides | FName | FVector2D |
键为动画蓝图中的变量名。多个控件共享同一蓝图时通过各自独立覆盖 Map 隔离,CDO 永不修改。
蓝图变量系统
EAnimParamType 枚举(非 UENUM)标识支持的变量类型:
| 枚举值 | 对应 C++ 类型 |
|---|---|
Float | float |
Int | int32 |
Bool | bool |
Vector | FVector |
Color | FLinearColor |
Vector2D | FVector2D |
TAnimParamTraits 模板映射
TAnimParamTraits<T, Owner> 在编译期将类型映射到覆盖 Map 成员,支撑类型安全的参数覆写:
| 类型 | UAnimParameterOverrides 特化 | FAnimationEntry 特化 |
|---|---|---|
float | FloatOverrides | ParameterOverrides |
int32 | IntOverrides | IntParameterOverrides |
bool | BoolOverrides | BoolParameterOverrides |
FVector | VectorOverrides | VectorParameterOverrides |
FLinearColor | ColorOverrides | ColorParameterOverrides |
FVector2D | Vector2DOverrides | Vector2DParameterOverrides |
配套宏与模板(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)— 遍历全部六种覆盖 MapApplyAnimParamOverridesToInstance<Owner>— 将覆盖写入烘焙临时实例AnimParamNeedsReset/AnimParamReset/AnimParamSync— 重置按钮机制
TIP
新增参数类型只需:1) 添加
TMapUPROPERTY;2) 一行DECLARE_ANIM_PARAM_TRAIT/DECLARE_ENTRY_TRAIT特化。