Version: 2018.4
Creating Assets outside of Unity
Preparing Humanoid Assets for export

Modeling characters for optimal performance

To design character Models for optimal renderingThe process of drawing graphics to the screen (or to a render texture). By default, the main camera in Unity renders its view to the screen. More info
See in Glossary
and animation speed:

Using these techniques might help increase the animation and rendering speed of your characters, but be aware that they might also reduce the visual fidelity and realistic effects you are trying to achieve. There is no single answer for every situation that can produce a perfect balance between better performance and visual realism. You have to find the perfect balance according to the complexity of your characters and your sceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info
See in Glossary
, vs. the overall appearance and realism that you require.

Use a single skinned Mesh Renderer

Use only a single skinned Mesh Renderer for each character. Unity optimizes animation using visibility culling and bounding volumeA closed shape representing the edges and faces of a collider or trigger. More info
See in Glossary
updates, and only activates these optimizations if you use one Animation component and one skinned Mesh RendererA mesh component that takes the geometry from the Mesh Filter and renders it at the position defined by the object’s Transform component. More info
See in Glossary
in conjunction. Using two skinned Meshes in place of a single MeshThe main graphics primitive of Unity. Meshes make up a large part of your 3D worlds. Unity supports triangulated or Quadrangulated polygon meshes. Nurbs, Nurms, Subdiv surfaces must be converted to polygons. More info
See in Glossary
could roughly double rendering time for a Model, and there is seldom any practical advantage in using multiple Meshes.

Use as few Materials as possible

Keep the number of MaterialsAn asset that defines how a surface should be rendered, by including references to the Textures it uses, tiling information, Color tints and more. The available options for a Material depend on which Shader the Material is using. More info
See in Glossary
on each Mesh as low as possible. Only have more than one Material on a character when you need to use different ShadersA small script that contains the mathematical calculations and algorithms for calculating the Color of each pixel rendered, based on the lighting input and the Material configuration. More info
See in Glossary
for different parts, such as a special Shader for the eyes. However, two or three Materials per character should be sufficient in almost all cases.

Use as few bones as possible

In general, the fewer bones you use, the better the performance is. However, sometimes you need to create characters with a large number of bones: for example, when you want a lot of customizable attachments. These extra bones increase the size of the build, and may have a relative processing cost for each additional bone. For example, 15 additional bones on a rig that already has 30 bones takes Unity 50% more operations to solve in Generic mode, which might impact the time it takes to solve.

Note that you can have additional bones for Generic and Humanoid types. When you have no animations playing using the additional bones, the processing cost should be negligible. This cost is even lower if their attachments are non-existent or hidden.

Minimize the polygon count

The number of polygons you should use depends on the visual quality you require and the platform you are targeting. These two competing facts are equally true:

  • The fewer the polygons you use in your Meshes, the faster your application runs. This is because every vertex, edge, or face requires computing resources.
  • The more polygons you use in your Meshes, the more detailed and organic your GameObjectsThe fundamental object in Unity scenes, which can represent characters, props, scenery, cameras, waypoints, and more. A GameObject’s functionality is defined by the Components attached to it. More info
    See in Glossary
    look, because smaller polygons give you more control over the shape.

Also consider what else is competing for rendering resources. If you have a lot of GameObjects or TerrainThe landscape in your scene. A Terrain GameObject adds a large flat plane to your scene and you can use the Terrain’s Inspector window to create a detailed landscape. More info
See in Glossary
objects on screen at the same time, consider reducing the polygon count per Mesh.

Desktop platforms can generally handle more complexity than mobile platforms, but performance on mobile platforms can vary enormously depending on the quality and capacity of the device itself.

Keep forward and inverse kinematics separate

When Unity imports animations, it bakes a Model’s inverse kinematic (IK) nodes into forward kinematicsA method of posing a skeleton for animation by rotating the joint angles to predetermined values. The position of a child joint changes according to the rotation of its parent and so the end point of a chain of joints can be determined from the angles and relative positions of the individual joints it contains.
See in Glossary
(FK), and so Unity doesn’t need the IK nodes at all. However, if they are left in the Model, then Unity still includes them in calculations, even though they don’t affect the animation. You can either delete the redundant IK nodes in Unity or in your 3D modeling application. To facilitate removing the IK nodes, keep separate IK and FK hierarchies while modeling.

Creating Assets outside of Unity
Preparing Humanoid Assets for export
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961