动画蓝图编辑器
Texturge 提供完整的可视化编辑环境——文本动画蓝图编辑器(FTextAnimationBlueprintEditor),对标 UMG 的 Widget Blueprint Editor,专为文本动画资产设计。
编辑器架构
FBlueprintEditor (引擎基类)
└── FTextAnimationBlueprintEditor (Texturge 编辑器)
├── TextAnimBPDesignerMode ← 设计器模式(默认打开)
└── TextAnimBPGraphMode ← 蓝图图表模式(事件图)
编辑器继承 FBlueprintEditor,复用蓝图编辑框架的全部能力(事件图、编译、调试、菜单/工具栏),同时添加文本动画专属功能。
四面板布局
双击 UTextAnimationBlueprint 资产打开编辑器,默认进入设计器模式:
┌────────────────────────────────────────────────────────────┐
│ 工具栏(编译、播放、缩放等) │
├──────────────────────┬──────────────────┬──────────────────┤
│ │ │ │
│ ① 设计器视口 │ ③ 时间轴 │ ④ 详情面板 │
│ (预览文本动画 │ (Sequencer │ (选中轨道 │
│ 实时渲染效果) │ 关键帧编辑) │ 属性编辑) │
│ │ │ │
│ ② 轨道列表 │ │ │
│ (添加/删除/排序 │ │ │
│ 动画轨道) │ │ │
│ │ │ │
├──────────────────────┴──────────────────┴──────────────────┤
│ 状态栏(帧数、字符数、光标位置等) │
└────────────────────────────────────────────────────────────┘
设计器视口
对标 UMG SDesignerView,为文本动画提供可视化布局和预览环境:
| 功能 | 说明 |
|---|---|
| 实时预览 | 播放头位置对应的文本动画效果 |
| 缩放平移 | 鼠标滚轮缩放、右键拖拽平移 |
| 网格对齐 | Snapping grid 辅助布局对齐 |
| 分辨率预览 | 多屏幕分辨率/宽高比预览 |
| 字体度量 | 基线、字形边界、行边界可视化覆盖 |
| 标尺 | 顶部和左侧标尺栏 |
| 安全区 | 自定义安全区显示 |
设计器表面(STextAnimationDesignSurface)是预览画布,通过 STextAnimationPaintSurface(Effects Layer)叠加选择框、hover 外框和字体度量覆盖线。
信息栏叠加层:设计器底部显示当前分辨率、DPI 缩放、光标位置、字符数、帧数等信息。
轨道列表
管理 FTextAnimationTrack 数组的面板:
- 添加轨道:从 10 种轨道类型中选择(Opacity、Translation、Scale 等)
- 删除轨道:选中后删除
- 排序:通过拖拽或属性调整
StartTime控制轨道执行顺序 - 启用/禁用:通过
bEnabled开关临时禁用轨道
时间轴
内嵌 UE5 Sequencer 编辑器,提供关键帧曲线编辑:
- FloatChannel 曲线编辑(不透明度、字间距、旋转)
- Vector2DChannel 曲线编辑(平移、缩放、修剪等)
- ColorChannel 曲线编辑(染色、阴影染色)
- 标准 Sequencer 操作:添加/删除关键帧、调整时间、缩放视图、播放/暂停预览
多动画支持:编辑器维护 TextAnimations[] 数组,每个动画元素对应一个独立的 Sequencer 编辑器标签页。通过动画面板(SAnimationList)切换当前编辑的动画。
详情面板
显示选中对象的属性编辑器:
- 选中轨道 → 显示
FTextAnimationTrack全部属性(轨道类型、时间、混合模式、关键帧数组等) - 选中关键帧 → 显示
FKeyFrame属性(时间、值、插值类型) - 通过
UTextAnimationTrackProxy代理对象实现FTextAnimationTrack结构体在 Details 面板中的可编辑性
面板间数据互通
编辑器使用委托系统实现四个面板间的实时数据同步:
| 委托 | 触发方 | 接收方 | 说明 |
|---|---|---|---|
OnPreviewTextChanged | 详情面板(PreviewText 变更) | 设计器视口 | 更新预览文本内容 |
OnTracksChanged | 轨道列表(增删轨道) | 时间轴、详情面板 | 刷新轨道数据 |
OnTrackSelected | 轨道列表(选中轨道) | 详情面板 | 显示选中轨道属性 |
OnTextAnimationsUpdated | 动画面板(增删动画) | 时间轴 | 刷新 Sequencer 标签页 |
OnSelectedAnimationChanged | 动画面板(切换动画) | 设计器视口、时间轴 | 切换预览和曲线 |
编译
点击工具栏的 Compile 按钮触发编译流程:
FTextAnimationBlueprintCompilerContext(Kismet 编译器上下文扩展)执行蓝图编译- 生成
UTextAnimationBlueprintGeneratedClass SafeRecreatePreviewAnimInstance()从新 GeneratedClass 创建预览 AnimInstance- 设计器视口使用新的预览实例刷新渲染
编译期间 bPendingRecreate 标志暂存重建请求。若在 OnSequencerGlobalTimeChanged 执行期间触发编译,延迟到预览更新结束后执行,确保不破坏正在进行的帧数据注入。
编辑器命令
FTextDesignerCommands 注册以下编辑器命令:
| 命令 | 快捷键 | 说明 |
|---|---|---|
| 切换轮廓显示 | — | 显示/隐藏控件虚线轮廓 |
| 缩放至适应 | — | 将预览缩放至适应视口 |
| 切换宽高比 | — | 在横向和纵向之间切换 |
| 切换安全区 | — | 翻转安全区类型 |
编辑器命令通过 FUICommandList 绑定,与 UMG Designer 的命令体系兼容。