Limitations when importing from other applications
Exporting from other applications

Importing skinned Meshes

Unity supports importing skinned Meshes from any tool that supports the FBX format.

Bone influence

For performance reasons, Unity supports linear blend skinningThe process of binding bone joints to the vertices of a character’s mesh or ‘skin’. Performed with an external tool, such as Blender or Autodesk Maya. More info
See in Glossary
with a default of four influences per vertex maximum. If your character uses more than four, follow these instructions when you import the Model into Unity:

  1. From the Rig tab of the Import Settings window, select Custom from the Skin Weights drop-down menu. Two new properties appear under the Skin Weights drop-down menu.
  2. Set the maximum number of bones you want to use as influence in the Max Bones/Vertex property.
  3. You can also adjust the Min Bone Weight property as an optimization. This is the threshold that Unity uses to determine whether it should include a bone’s position when calculating influence. If a bone barely contributes to the influence, you can save some resources by not including it in the calculations.

Note: If you choose to keep the default maximum and you have a 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
with more than four influences, the animation may appear choppy or distorted. Or if you are using deformation other than clusters, the animation may be completely absent. To resolve this, bake the deformation jointsA physics component allowing a dynamic connection between rigidbodies, usually allowing some degree of movement such as a hinge. More info
See in Glossary
before exporting the Model from your 3D modeling software.

Normals and tangents

On mobile devices, Unity handles skinning on the CPU with hand-coded NEON/VFP assembly. However, normals and tangents are not normalized, so if you are writing your own 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
, you should handle the normalization yourself. However, if you are using Surface ShadersUnity’s code generation approach that makes it much easier to write lit shaders than using low level vertex/pixel shader programs. More info
See in Glossary
, Unity automatically handles the normalization.

Sorting and optimized Meshes

Optimized Meshes sort bones differently from non-optimized Meshes, and this results in potentially significant animation problems. This is because non-optimized Meshes rely on bone order to animate, while optimized Meshes use the bone names and do not rely on bone order.

If you import the FBX file and use it, Unity takes care of the order of the transforms.

If you are using the Scripting API and you want to change SkinnedMeshRenderer.sharedMesh:

  • In “non-optimized” mode, you need to match the SkinnedMeshRenderer.bones to SkinnedMeshRenderer.sharedMesh in a strict way. The referenced Transforms should be there in the correct order.
  • In optimized mode, the 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
    works as long as the avatarAn interface for retargeting animation from one rig to another. More info
    See in Glossary
    has the referenced bones. In this case, SkinnedMeshRenderer.bones is always empty.

Did you find this page useful? Please give it a rating:

Limitations when importing from other applications
Exporting from other applications