• RuntimesUnreal
  • UE Spine 生成较多Actor FPS会明显下降

生成多个拥有Spine渲染组件和动画组件的Actor,FPS会明显下很多,这是啥原因,有朋友知道咋处理么

Related Discussions
...

在UE4中,生成多个拥有Spine渲染组件和动画组件的Actor导致FPS明显下降的原因可能与多个因素有关。首先,每个Spine Actor都会进行一系列的计算和渲染操作,包括骨骼变换、顶点计算、纹理绑定等,这些操作都会消耗CPU和GPU资源。当场景中存在大量Spine Actor时,这些资源的消耗会累积,导致性能下降。

为了优化性能,可以考虑以下几个方向:

  1. 减少每帧更新的Spine Actor数量:如果场景中有很多Spine Actor,但不是所有的Actor都需要在每一帧中更新,可以考虑只更新视野中或者重要的Actor,其他的可以减少更新频率或者暂时不更新。
  2. 优化Spine动画资源:检查Spine动画的复杂度,包括骨骼数量、顶点数量等,尽量简化动画资源。使用Spine提供的工具,如Prune功能,减少不必要的顶点和骨骼。
  3. 使用Spine提供的性能优化功能:Spine提供了一些性能优化的选项和工具,比如SkeletonRendererOptimize Game Objects功能,可以减少不必要的GameObject的数量,从而提高性能。

具体到UE4中,还可以考虑使用Update world transform节点直接更新Spine Actor的世界变换,避免不必要的计算。同时,确保正确地管理材质和纹理,避免频繁地更换材质和纹理导致的性能问题。

Spine UE 使用的是Procedural Mesh,每帧都会重新算顶点,这个是Spine Actor生成多了就会大幅降低FPS的主要原因,啥时候优化下这个,或者Spine UE能够烘焙动画到静态网格体和骨骼网格体上。

We don't provide a way to do that, sorry. When using Spine you almost always have your skeleton animating, often dynamically. Calculating vertex positions each frame is not normally a problem. Is it possible that your skeletons have an enormous amount of vertex transforms? Using "prune" and other features can help:
https://zh.esotericsoftware.com/spine-weights#%E4%BF%AE%E5%89%AA
https://zh.esotericsoftware.com/spine-metrics#%E6%80%A7%E8%83%BD

5 meses depois

希望增加一个烘焙为顶点动画的工具,这样可以同时生成不少单位,且不会掉太多fps