# GPU烘焙动画

在处理一些简单且大量的动画时(如小怪、场景物件),为了最大程度的节省 CPU 资源,小游戏框架的动画系统提供了 GPU 烘焙动画的支持。

# 使用已有动画预制体进行烘焙

在 Project 面板中选中角色动画的Prefab(来自于 fbx 提取或从第三方引擎导入),右键->烘焙预制动画体到GPU

填上烘焙资源存放的路径,案例里在同级目录下创建Baked子目录。点击确定,即可在 Baked 目录中看到生成的prefab,以及每个动画片段生成一个dataimage,存放对应的烘焙动画数据

# 添加烘焙好的动画到场景中

将生成的 prefab 加入到场景中,可以看到含有一个SkinnedAnimationRenderer组件,初始默认的动作为TPose。 将初始动作改为目标动作,预览即可看到效果。

# GPU烘焙动画的限制

GPU烘焙虽能有效的降低动画的 CPU 负载,以腾出更多的时间片给到业务逻辑,但使用上有一些限制。所以建议结合具体业务场景选择性使用。

以下是使用 GPU 烘焙动画的注意事项:

  • 动画混合功能无法使用
  • GPU顶点着色器的负载会增加,具体体现在采样负载加重
  • 动画片段无法复用,即使两个模型用了同一个动画片段,也会生成两份烘焙数据。所以某些情况可能会造成资源量变大