Sequencer
自动关联目录:Sequencer
覆盖说明:官方文档把 Sequencer 归在 Animating Characters and Objects 大类下(该大类已核实的 4 个子分类之一)。本篇覆盖它在游戏项目中的实际用途与代价,不覆盖影视/广播向的完整用法(那属于
Motion Design,按覆盖规则明确不纳入)。
1. 定位
Sequencer 是 UE 的多轨编辑器:可创建与编辑游戏过场动画或影视内容,并能配合 Control Rig 同时动画化角色、对象、摄像机与特效。
一句话定位:Sequencer 是"时间轴编排器"——把角色动画、相机、特效、音频、关卡可见性放在同一条时间轴上统一控制。
它和 AnimBP 的分工:
| AnimBP | Sequencer | |
|---|---|---|
| 驱动方式 | 运行时状态驱动 | 时间轴驱动 |
| 内容 | 循环/响应式的动画逻辑 | 一段编排好的、可回放的演出 |
| 典型 | 走路、跑步、待机 | 过场动画、QTE、剧情演出 |
2. 结构
Sequence(资产)
├── Master Track(时间轴)
├── Actor Binding(绑定到场景/动态生成的 Actor)
│ ├── Animation Track(播放 AnimSequence / Montage)
│ ├── Transform Track
│ └── Control Rig Track
├── Camera Cut Track(镜头切换)
├── 事件 Track(触发蓝图事件)
├── 音频 Track
└── 特效 / 可见性 / 材质参数 Track| 概念 | 说明 |
|---|---|
| Binding | 把轨道绑到某个 Actor;可通过 Sequence Actor 或标签绑定 |
| Camera Cut | 镜头切换轨道,控制用哪台相机 |
| Section | 可循环/分段 |
| Shot | 大序列里嵌套子序列 |
| 事件 Track | 在指定帧触发蓝图/关卡事件 |
3. 游戏内的典型用法
| 用途 | 做法 |
|---|---|
| 过场动画 | 播放 Sequence,期间锁输入、隐藏 HUD |
| QTE / 处决演出 | 播放 Sequence + 事件 Track 触发判定 |
| 开场/结算演出 | 相机运镜 + 角色站位 |
| 剧情对话 | 配合音频与字幕 Track |
// 播放
ALevelSequenceActor* OutActor;
FMovieSceneSequencePlaybackSettings Settings;
ULevelSequencePlayer* Player = ULevelSequencePlayer::CreateLevelSequencePlayer(
GetWorld(), Sequence, Settings, OutActor);
Player->Play();| 要点 | 说明 |
|---|---|
| 播完回调 | Player->OnFinished |
| 暂停/继续 | Player->Pause() / Play() |
| 跳到某帧 | Player->SetPlaybackPosition() |
| 是否锁输入 | 过场期间要自己处理 |
4. 与 Control Rig 的关系
官方明确:Sequencer 可配合 Control Rig 同时动画化角色、对象、摄像机和特效,Control Rig 的动画可以输出到 Sequencer 播放或烘焙成独立资源。
| 组合 | 用途 |
|---|---|
| Sequencer + Control Rig Track | 影视级的角色姿态控制 |
| 烘焙成 AnimSequence | 把 Control Rig 的动画变成运行时可播的普通动画 |
| 空间切换(Space Switching) | 在过场里切换控制的参考空间 |
实战建议:过场里用 Control Rig 做精细调整没问题,但最终交付应尽量烘焙成 AnimSequence——运行时跑 Control Rig 的成本远高于播一段动画。
5. 代价与权衡
| 设计 | 收益 | 代价 | 什么时候不该用 |
|---|---|---|---|
| Sequencer 做过场 | 可视化编排,美术可直接调 | 序列资产与场景强耦合 | 简单的"播个动画"用 Montage 就够 |
| 嵌套 Shot | 长过场可拆分 | 结构复杂 | 短过场不必拆 |
| Control Rig Track | 精细控制 | 运行时解算成本高 | 应烘焙成 AnimSequence |
| 事件 Track 触发判定 | 时间点与演出严格对齐 | 判定逻辑分散在序列里 | 关键判定仍应走服务端 |
| 动态 Binding | 可对运行时生成的角色播 | 绑定逻辑易碎 | 固定演员用直接绑定 |
6. 踩坑与排查
| 坑 | 现象 | 怎么验证 |
|---|---|---|
| 过场里玩家还能操作 | 没锁输入 | 播 Sequence 期间自己禁用输入 |
| HUD 没隐藏 | 过场穿帮 | 播/停时切换 UI 显隐 |
| 序列在打包后不播 | 引用的 Actor 是编辑器对象 | 用动态 Binding 或保证 Actor 存在 |
| Camera Cut 不生效 | 没设 Camera Cut Track 或被组件覆盖 | 检查相机优先级 |
| 播完没回到游戏 | 没接 OnFinished | 播完的收尾逻辑要写 |
| 运行时跑 Control Rig 卡 | 解算成本 | 烘焙成 AnimSequence |
| 判定写在事件 Track 里 | 客户端可改时序 | 权威判定仍走服务端(见 Security) |
| 序列与关卡强耦合 | 复用困难 | 抽象成可复用的 Shot |
| 跳过过场逻辑缺失 | 玩家想跳过却不能 | 应提供 Skip 并正确收尾 |
7. 排查顺序
1. 不播?→ 序列资产是否正确、Actor Binding 是否存在
2. 播了但没镜头?→ Camera Cut Track 与相机优先级
3. 播完没恢复?→ OnFinished 是否处理
4. 卡?→ 是否运行时跑 Control Rig(应烘焙)
5. 打包后异常?→ 是否依赖编辑器对象参考
- IK 与重定向(Control Rig) · Montage 与 AnimNotify
- AnimInstance 与动画蓝图
- 官方
Animating Characters and Objects大类(含 Sequencer / Control Rig / Skeletal Mesh Animation / Paper 2D)
许可协议:CC BY
作者:Davids
本文链接:https://hustjjd.github.io/4d445053.html
更新于:2026年10月10日