Turbo Sequence 概述
Turbo Sequence 旨在支持现代渲染骨骼网格的方式。 它使用 GPU 实例化和 Niagara 来有效管理绘制调用,这通常是传统渲染系统的瓶颈。 Turbo Sequence 使用骨骼来驱动网格动画,这允许每个骨骼的反向运动学和层蒙版混合。
什么是 Turbo Sequence
Turbo Sequence 是一个适用于虚幻引擎 5 的开源插件,使用 MIT 许可证。 相比于 VATs,使用 Turbo Sequence 的优势在于它使用骨骼关节弯曲,而不是预先计算好的动画,这允许运行时的骨骼关节弯曲,如反向运动学或插槽。 Turbo Sequence 试图有效利用每种骨架(archetype)的绘制调用,而不是每个实例,这与传统的骨骼网格相比有优势。
传统渲染:
CPU GPU
|
v
实例 1 (网格数据 1) -> 绘制调用
| |
v v
实例 2 (网格数据 2) -> 绘制调用
| |
v v
实例 N (网格数据 N) -> 绘制调用
GPU 实例化
CPU GPU
|
v
基础网格数据 -> 绘制调用
| (所有实例合并)
v
渲染实例
TS 针对10k - 50k的人群进行了优化,如果需要更多单位,请使用 VATs,Turbo Sequence 旨在结合动画质量和现代渲染,这意味着它的速度与骨骼关节弯曲的质量成正比。
Nanite
虚幻引擎 5.5 版本引入了 Nanite 骨骼网格,在使用 Turbo Sequence 之前,UE 的骨骼网格系统可能是使用 Nanite 进行人群渲染的一个不错选择。
功能
- 播放动画
- 停止动画
- 获取反向运动学变换
- 设置反向运动学变换
- 调节动画(速度、权重、开始/结束过渡)
- 支持大部分骨架配置而无 Bug
- 混合空间
- 切换材质
- 切换网格
- 编辑器 UI
- Windows 支持
- Linux 支持
- 动态分块异步动画加载
- 获取插槽变换
- 获取动画曲线
- 根运动
- 每个骨骼的动画层蒙版
- 优化:材质上的智能顶点迭代
- 优化:更新组
- 平滑、平面法线
- 详细程度
- 多网格角色动画
- 蓝图支持
- 在 UE 系统和 TS 系统之间切换动画模式
- 添加实例
- 移除实例
- 每个实例自定义数据
局限性
- 不支持仅使用蓝图的项目。
- 提供了蓝图 API,但强烈建议使用 C++ API,因为它更快。
- 仅支持 Windows 和 Linux,不支持 IOS、Android 或 Mac。
快速入门指南
- 下载 Turbo Sequence
- 将 Turbo Sequence 安装到你的 UE 项目的插件文件夹
- 打开功能演示地图并按下播放
- 浏览 Wiki 开始使用 API
下载 Turbo Sequence:
访问 Releases 并下载适用于你的虚幻引擎版本的源代码。
安装 Turbo Sequence:
- 将 TS 发行版解压到你的电脑上
- 将解压后的根文件夹复制到你的 Games UE 项目的插件文件夹(不是引擎)
- 编译项目并在虚幻引擎中打开
演示
在虚幻引擎中,导航到 ..\Plugins\TurboSequence\Content\Demo
并体验演示,无需其他设置。
文档
官方文档和 API 可以在这里找到:
支持和责任
Turbo Sequence 是一个业余项目,没有商业背景,贡献者不负责为 Turbo Sequence 的用户解决 Bug,功能可能会也可能不会添加;如果你真的需要一个特定的功能,请 Fork 该仓库并在此基础上构建你自己的系统,并可选地创建一个 Pull Request,如果你认为它应该是原始 Turbo Sequence 仓库的一部分。
如果你遇到 Bug,请创建一个 Issue,当我有时间的时候我会尽力去回应它。
贡献
欢迎贡献;如果你想贡献,请 Fork 该仓库,创建一个实验分支,然后从实验分支创建一个 Pull Request。 Pull Request 需要审核以维持该仓库在运行时性能和 UE 编码标准方面的质量标准。