蓝图节点参考
Texturge 通过 BlueprintCallable / BlueprintPure / BlueprintNativeEvent 将运行时功能暴露为蓝图节点。节点按 Category 分组显示在蓝图面板中,主要分组为 Texturge|动画、Texturge|层、Texturge|工厂、Texturge|阶段控制器、Texturge|调度 与 Texturge|事件音效。
播放控制节点
从 UAnimatedTextBlock / UAnimatedRichTextBlock 暴露:
| 蓝图节点 | 目标类 | 说明 |
|---|---|---|
播放 | 两个控件 | 开始播放动画 |
暂停 | 两个控件 | 暂停当前动画 |
恢复 | 两个控件 | 从暂停恢复 |
停止 | 两个控件 | 停止播放并重置 |
跳转到结尾 | 两个控件 | 跳过动画直接显示全部文本 |
是否正在播放 | 两个控件 | BlueprintPure,是否正在播放 |
阶段控制器节点
从 UTextAnimationStageController 暴露(Category Texturge|阶段控制器):
| 蓝图节点 | 说明 |
|---|---|
播放 / 暂停 / 恢复 / 停止 | 播放生命周期控制 |
揭示所有 | 立即揭示所有字形 |
设置播放方向 | EStagePlayDirection:Forward / Reverse / PingPong |
设置循环 | 启用循环播放 |
Tick 动画 | 每帧推进动画时钟 |
评估所有字形 | 批量求值,输出 TArray<FGlyphAnimationState> |
是否正在播放 / 是否完成 | BlueprintPure 状态查询 |
获取当前阶段 | 返回 EAnimationStage |
获取阶段时间 | 返回当前阶段已用时间 |
获取已揭示字数 / 获取总字数 | 揭示进度查询 |
NOTE
Initialize与PublishBakedAnimation为 C++ 注入接口(非 BlueprintCallable)。控件路径由UAnimatedTextBlock内部自动完成,手动路径仅在 C++ 中使用。
蓝图变量设置节点
从 UAnimatedTextBlock 调用(6 重载)
UFUNCTION(BlueprintCallable, Category = "Animation",
meta = (DisplayName = "设置蓝图变量"))
void SetBlueprintVariable(FName VarName, float Value);
UFUNCTION(BlueprintCallable, Category = "Animation",
meta = (DisplayName = "设置蓝图变量 (Int)"))
void SetBlueprintVariable_Int(FName VarName, int32 Value);
UFUNCTION(BlueprintCallable, Category = "Animation",
meta = (DisplayName = "设置蓝图变量 (Bool)"))
void SetBlueprintVariable_Bool(FName VarName, bool Value);
UFUNCTION(BlueprintCallable, Category = "Animation",
meta = (DisplayName = "设置蓝图变量 (Vector)"))
void SetBlueprintVectorVariable(FName VarName, const FVector& Value);
UFUNCTION(BlueprintCallable, Category = "Animation",
meta = (DisplayName = "设置蓝图变量 (Color)"))
void SetBlueprintColorVariable(FName VarName, const FLinearColor& Value);
UFUNCTION(BlueprintCallable, Category = "Animation",
meta = (DisplayName = "设置蓝图变量 (Vector2D)"))
void SetBlueprintVector2DVariable(FName VarName, const FVector2D& Value);
从 UTextAnimInstance 调用(4 重载)
UFUNCTION(BlueprintCallable, Category = "Texturge|动画",
meta = (DisplayName = "设置蓝图变量"))
void SetBlueprintVariable(FName VarName, float Value);
UFUNCTION(BlueprintCallable, Category = "Texturge|动画",
meta = (DisplayName = "设置蓝图变量 (Vector)"))
void SetBlueprintVectorVariable(FName VarName, const FVector& Value);
UFUNCTION(BlueprintCallable, Category = "Texturge|动画",
meta = (DisplayName = "设置蓝图变量 (Color)"))
void SetBlueprintColorVariable(FName VarName, const FLinearColor& Value);
UFUNCTION(BlueprintCallable, Category = "Texturge|动画",
meta = (DisplayName = "设置蓝图变量 (Vector2D)"))
void SetBlueprintVector2DVariable(FName VarName, const FVector2D& Value);
使用模式
- 在事件图表中放置
AnimatedTextBlock引用 - 拖出引脚 → 搜索
设置蓝图变量 - 选择与蓝图变量类型匹配的重载(Float / Int / Bool / Vector / Color / Vector2D)
- 输入
Variable Name(须与动画蓝图类默认值(Class Defaults)中声明的变量名一致) - 连接后续调用
播放
典型蓝图图表片段:
[事件 BeginPlay]
→ [设置蓝图变量] ( "Speed", 2.0 )
→ [播放]
字形动画层与工厂节点
UGlyphAnimationLayer(73 个蓝图函数)与 UGlyphAnimationFactory(69 个蓝图函数)是蓝图编排的核心,全部返回自身以支持链式调用。
创建节点
| 蓝图节点 | 返回 | 说明 |
|---|---|---|
创建字形动画层 | UGlyphAnimationLayer* | 传入字形动画资产 + 混合模式 + 调度数组 + 播放参数 |
创建字形动画层(文本) | UGlyphAnimationLayer* | 由文本自动生成调度 |
创建工厂 | UGlyphAnimationFactory* | 传入基础层 + 全局调度数组 |
创建工厂(文本) | UGlyphAnimationFactory* | 由文本自动生成全局调度 |
调度节点(层与工厂同构)
| 蓝图节点 | 说明 |
|---|---|
设置字形延迟(SetDelayAt) | 设置索引字形的延迟(Index = -1 作用于全部) |
跳过字形(SkipAt) | 跳过索引字形(Index = -1 作用于全部) |
获取/设置起始延迟值(SetStartDelayAt) | 绝对设置起始延迟(秒) |
获取/设置跳过动画(SetSkipAnimationAt) | 逐字形跳过开关 |
设置动画剪切(SetAnimationClipAt) | 前端/末端裁剪(秒,播放轴口径) |
是空白字形 / 是标点符号 / 是中日韩文字 / 是装饰器字形 | 字形分类查询 |
TIP
延迟 API 调用顺序:先
SetStartDelayAt(-1, X)再SetDelayAt(-1, Y)→ 第 i 个字形延迟 = X + i × Y(错峰)。反序调用时SetStartDelayAt为绝对覆盖语义,会覆盖错峰结果。
字形微调节点(层 / 工厂各 51 个)
10 个属性 × 5 种操作(乘算 / 除算 / 加算 / 减算 / 清除步骤)+ 清除全部:
| 属性 | Value 类型 | 函数模式 |
|---|---|---|
| 不透明度 | float | MultiplyOpacityAt / DivideOpacityAt / AddOpacityAt / SubtractOpacityAt / ClearOpacityStepsAt |
| 字间距 | float | MultiplyLetterSpacingAt / … / ClearLetterSpacingStepsAt |
| 旋转 | float | MultiplyRotationAt / … / ClearRotationStepsAt |
| 平移 | FVector2D | MultiplyTranslationAt / … / ClearTranslationStepsAt |
| 缩放 | FVector2D | MultiplyScaleAt / … / ClearScaleStepsAt |
| 修剪 | FVector2D | MultiplyShearAt / … / ClearShearStepsAt |
| 枢纽 | FVector2D | MultiplyPivotAt / … / ClearPivotStepsAt |
| 阴影偏移 | FVector2D | MultiplyShadowOffsetAt / … / ClearShadowOffsetStepsAt |
| 染色 | FLinearColor | MultiplyColorAt / … / ClearColorStepsAt |
| 阴影染色 | FLinearColor | MultiplyShadowColorAt / … / ClearShadowColorStepsAt |
每个函数签名统一为 (Index, Value) → 自身:
UFUNCTION(BlueprintCallable, BlueprintCosmetic, Category = "Texturge|层|字形微调|不透明度",
meta = (DisplayName = "乘算字形不透明度", ReturnDisplayName = "Layer"))
UGlyphAnimationLayer* MultiplyOpacityAt(UPARAM(DisplayName = "Index") int32 Index,
UPARAM(DisplayName = "Value") float Value);
另有 清除字形全部微调(ClearGlyphOverridesAt)清空指定字形的全部步骤。
烘焙节点
| 蓝图节点 | 返回 | 说明 |
|---|---|---|
烘焙(Factory) | FBakedStage | 执行三步烘焙管线(逐层烘焙 → 层微调 → 工厂后处理) |
添加层 / 设置层(Factory) | 工厂自身 | 层管理(后添加的层级更高) |
字形动画与调度节点
| 蓝图节点 | 目标类 | 返回 | 说明 |
|---|---|---|---|
获取持续时间 | UGlyphAnimation | float | 动画总时长(秒) |
获取轨道类型 | UGlyphAnimation | TArray<ETextAnimationTrackType> | 动画包含的轨道类型 |
是否有轨道类型 | UGlyphAnimation | bool | 检查轨道类型 |
构建调度信息 | UTextAnimInstance(静态) | TArray<FGlyphScheduleInfo> | 由文本生成调度数组(预填分类) |
按名称获取动画 | UTextAnimInstance | UGlyphAnimation* | 按名称查找资产 |
获取字符数 | UTextAnimInstance | int32 | 当前编译文本字符数 |
事件音效组件节点
从 UEventSoundComponent 暴露(Category Texturge|事件音效):
| 蓝图节点 | 说明 |
|---|---|
设置字形音效 / 获取角色音效 / 移除字形音效 / 清空所有音效 | 字符 → 音效映射管理(按字符值 int32) |
设置标点延迟 / 获取标点延迟 / 重置标点延迟 / 清空标点延迟 | 标点停顿延迟管理 |
绑定动画器 / 取消绑定动画器 | 与同 Actor 的 UTextAnimator 绑定/解绑 |
查询节点汇总
| 蓝图节点 | 返回类型 | 目标类 |
|---|---|---|
是否正在播放 | bool | 两个控件 |
是否完成 / 获取当前阶段 / 获取阶段时间 / 获取已揭示字数 / 获取总字数 | 见说明 | UTextAnimationStageController |
是否有效 | bool | UGlyphAnimationLayer |