蓝图节点参考

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

InitializePublishBakedAnimation 为 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);

使用模式

  1. 在事件图表中放置 AnimatedTextBlock 引用
  2. 拖出引脚 → 搜索 设置蓝图变量
  3. 选择与蓝图变量类型匹配的重载(Float / Int / Bool / Vector / Color / Vector2D)
  4. 输入 Variable Name(须与动画蓝图类默认值(Class Defaults)中声明的变量名一致)
  5. 连接后续调用 播放

典型蓝图图表片段

[事件 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 类型函数模式
不透明度floatMultiplyOpacityAt / DivideOpacityAt / AddOpacityAt / SubtractOpacityAt / ClearOpacityStepsAt
字间距floatMultiplyLetterSpacingAt / … / ClearLetterSpacingStepsAt
旋转floatMultiplyRotationAt / … / ClearRotationStepsAt
平移FVector2DMultiplyTranslationAt / … / ClearTranslationStepsAt
缩放FVector2DMultiplyScaleAt / … / ClearScaleStepsAt
修剪FVector2DMultiplyShearAt / … / ClearShearStepsAt
枢纽FVector2DMultiplyPivotAt / … / ClearPivotStepsAt
阴影偏移FVector2DMultiplyShadowOffsetAt / … / ClearShadowOffsetStepsAt
染色FLinearColorMultiplyColorAt / … / ClearColorStepsAt
阴影染色FLinearColorMultiplyShadowColorAt / … / 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)工厂自身层管理(后添加的层级更高)

字形动画与调度节点

蓝图节点目标类返回说明
获取持续时间UGlyphAnimationfloat动画总时长(秒)
获取轨道类型UGlyphAnimationTArray<ETextAnimationTrackType>动画包含的轨道类型
是否有轨道类型UGlyphAnimationbool检查轨道类型
构建调度信息UTextAnimInstance(静态)TArray<FGlyphScheduleInfo>由文本生成调度数组(预填分类)
按名称获取动画UTextAnimInstanceUGlyphAnimation*按名称查找资产
获取字符数UTextAnimInstanceint32当前编译文本字符数

事件音效组件节点

UEventSoundComponent 暴露(Category Texturge|事件音效):

蓝图节点说明
设置字形音效 / 获取角色音效 / 移除字形音效 / 清空所有音效字符 → 音效映射管理(按字符值 int32)
设置标点延迟 / 获取标点延迟 / 重置标点延迟 / 清空标点延迟标点停顿延迟管理
绑定动画器 / 取消绑定动画器与同 Actor 的 UTextAnimator 绑定/解绑

查询节点汇总

蓝图节点返回类型目标类
是否正在播放bool两个控件
是否完成 / 获取当前阶段 / 获取阶段时间 / 获取已揭示字数 / 获取总字数见说明UTextAnimationStageController
是否有效boolUGlyphAnimationLayer
images/blueprint-nodes.png — 蓝图节点总览:左侧为 BuildDefaultAnimation 事件图中的链式编排(创建字形动画层 → 设置字形延迟 → 乘算字形缩放 → 创建工厂 → 添加层 → 烘焙),右侧为 AnimatedTextBlock 的播放控制与设置蓝图变量节点 — Blueprint node overview: left shows chained orchestration in BuildDefaultAnimation event graph (CreateLayer → SetDelayAt → MultiplyScaleAt → CreateFactory → AddLayer → Bake), right shows UAnimatedTextBlock play controls and SetBlueprintVariable nodes