Version: 2020.3
做好导出模型文件的准备
创建动画模型

创建最佳性能模型

以下是一些创建最佳性能模型的技巧。这些技巧有些适用于所有模型,有些仅适用于动画模型:

使用这些方法可能有助于提高模型的动画和渲染速度,但请注意,这些方法也可能会降低您要竭力实现的视觉逼真度和逼真效果。对于每种情况,并没有一个唯一的答案可以在更好的性能和视觉真实感之间取得完美平衡。必须根据角色和场景的复杂性以及所需的整体外观和逼真度来找到最佳的平衡。

尽量减少多边形数量

您应该使用的多边形数量取决于您需要达到的视觉质量,以及您的目标平台。然而,以下两个相互冲突的事实都正确:

  • 在网格中使用的多边形越少,应用程序运行的速度就越快。这是因为每个顶点、边或面都需要计算资源。
  • 在网格中使用的多边形越多,游戏对象的外观就越细致和自然,因为较小的多边形使您可以在更大程度上控制形状。

此外,还需要考虑其他元素也会争夺渲染资源。如果同时在屏幕上有很多游戏对象或地形对象,请考虑减少每个网格的多边形数量。

Note that the actual number of vertices that graphics hardware has to process is usually not the same as the number reported by a modelling application. Modeling applications usually display the number of distinct corner points that make up a model (known as the geometric vertex count). For a graphics card, however, some geometric vertices need to be split into two or more logical vertices for rendering purposes: for example, a vertex must be split if it has multiple normals, UV coordinates or vertex colors. Consequently, the vertex count in Unity is usually higher than the count given by the 3D application.

使用尽可能少的材质

尽可能减少每个模型上的材质数量。只有在需要为角色的不同的部分使用不同着色器(例如,您可能为角色的眼睛使用特殊着色器)时,您才应该考虑使用多种材质。

使用单个带蒙皮的网格

For animated character models that use a Skinned Mesh Renderer, you should use only one of these components per character. Unity’s animation system optimizes animation using visibility culling and bounding volume updates. It only activates these optimizations if you use one Animation component and one Skinned Mesh Renderer on a model.

如果使用两个带蒙皮的网格代替单个网格,模型的渲染时间大概会是单个网格的两倍,并且这样做很少能带来实际的意义。

使用尽可能少的骨骼

一般来说,骨骼的数量越少,性能就越好。但有些时候,您需要创建具有大量骨骼的角色模型:例如,在需要大量可自定义的附件时。这些额外骨骼会增加构建大小,并且每个额外的骨骼都可能带来相对处理成本。例如,在通用模式下,已拥有 30 个骨骼的绑定上增加 15 个骨骼会让 Unity 再花费 50% 的时间来解析,这可能会影响解析所花费的时间。

请注意,对于通用人形类型,您可以额外添加骨骼。如果未播放使用额外骨骼的动画,则处理成本应该可以忽略不计。如果连接不存在或为隐藏状态,此成本甚至会更低。

正向和反向动力学保持分离

在导入动画时,Unity 会将模型的反向动力学 (IK) 节点将烘焙为正向动力学 (FK),因此 Unity 根本不需要 IK 节点。但是,如果这些节点留在了模型中,那么即使不影响动画,Unity 也会计算它们。可以在 Unity 或 3D 建模应用程序中删除冗余的 IK 节点。为了方便删除 IK 节点,应在建模时保留单独的 IK 和 FK 层级视图。

做好导出模型文件的准备
创建动画模型