Unity 2D - 动画导致帧率大幅度下降

3
我使用2D动画包和2D Ik包创建了一个2D精灵动画。我的角色是一个精灵表(PBS文件)。在PBS文件中,所有零件(眼睛、嘴巴等)都排列好并连接到骨骼上。然后我在Unity中制作了角色的静止动画。
这个动画非常复杂,总共有1028帧(约17秒)。
场景几乎为空。有一些带有碰撞器和刚体的精灵用于简单平台。还有一个1024像素×1024像素的背景图像。
在播放模式下,FPS降至约30 FPS以下。
我有另一个场景,没有动画,但有大量资源(对于2D场景而言,数百个精灵,并且其中许多精灵不断运动)。此场景保持210 ++ FPS。
为什么这个动画会导致FPS下降?我刚开始为所有角色创建动画。如果我将类似的动画添加到场景中的NPC(敌人),那么这个东西可能根本无法正常工作。
欢迎提出任何建议。

你只有一个动画剪辑吗?动画剪辑应该很小,你可以通过状态或混合树在它们之间切换。 - VisDesign
这是我为游戏制作的第一个。所以,现在只有一个剪辑。 - FatMunkey
好的,试着关闭移动或将您的动画角色放在一个新场景中观察数字,这绝对不是动画的问题。 - VisDesign
只需在新场景中尝试使用空闲剪辑而不添加任何脚本。 - VisDesign
@el6976 - 我自己回答了这个问题。谢谢你的负评...如果那是你的话。我无法想象有人会认为我在问题上做错了什么。我自己做了很多工作,最终自己解决了问题——没有感谢任何一个在Stack Exchange上的人! - FatMunkey
显示剩余16条评论
3个回答

5

如果有人遇到类似问题,请确保您已通过软件包管理器安装了BurstCollections包,这可以极大地提高2D动画的性能。


确实,Burst对于这个特定问题的改进很大,我的FPS从40提升到了100,但是你提到的“Collections”在哪里?在包管理器中找不到它。 - Joe Lu
你应该能够通过软件包管理器找到它 - 只是不要忘记在“高级”按钮下启用“显示预览软件包”选项,因为该软件包仍处于预览阶段。 - tiekto
谢谢@tiekto,我已经启用了预览,但仍然找不到集合或数学函数,我正在使用2020版本。 - Joe Lu
啊,目前我使用的是2019.4版本,但我记得有一个特定的2020版本,在其中包管理器加载某些包时会出现问题。因此,如果还没有这种情况,我建议更新到最新的流版本。如果这样做没有帮助,最好的解决方案是通过编辑器提交错误报告,支持团队非常快速和真正有帮助。另外,请检查您是否已经将这些包作为依赖项与现有包一起使用。 - tiekto
对于那些使用Unity 2020或更高版本并想知道Collection包在哪里的人,只需安装Jobs包即可,Collection已包含在Jobs中 - Matrix Adventurer

1
这周我花了几天时间创建了精灵图动画,以替换我在Unity中制作的骨骼动画。正如我所预料的那样,性能大幅提升。现在我有更多的动画,其中一些长达270帧。然而,我始终看到超过220 FPS的帧率。可惜Unity的2D动画包太慢了。为了实现我想要的动画效果,我最终使用Andreas Esau的COA工具(Cut-Out-Animation Tools)插件在Blender 2.8中进行角色绑定和动画制作。
COA工具是一个很棒的工具,但我希望它能将渲染后的精灵图导出到Unity。最终我将每个帧导出为单独的图像,并使用TexturePacker制作所需的2048px正方形精灵图。一旦我将精灵图导入Unity,我就能够快速设置动画剪辑并进行测试。
正如我所说,精灵图远比直接在Unity中创建的动画好得多。
如果你读完了我原始帖子上的所有评论,我会说有很多脚本在运行,有很多计算在进行。这在分析器中肯定可以看到。但这绝对不是导致帧率下降的主要原因。它绝对是动画。

你确定你正确地使用了骨骼动画吗?用于动画的三角网格有多精细?这是性能的一个重要因素。此外,请记住,通过逐帧导出,您现在已经以巨大的内存需求为代价交换了游戏内表现。 - AlexGeorg

1

从您的分析器截图来看,SpriteSkin.LateUpdate() 占用了大量的帧时间。为了减少 CPU 在变形上花费的时间,您可以限制每个 Sprite Part 中使用的顶点数量 - 您可以使用 Edit Geometry 工具在 Skinning Editor 中进行调整。基本上,顶点数量越少,性能越好

此外,请确保每个 Sprite Skin 组件都启用了 Enable Batching 选项。这将启用 Burst 和 Collections 包以加速计算。有关更多详细信息,请查看 this 2D 动画文档。

最近,Unity 发布了一本免费电子书,详细介绍了最佳实践和如何为 2D 动画准备艺术作品。您可以在 这里 找到它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接