HOWTO-ImportObjectsFrom3DApps
Humanoid Asset preparation

Optimizing FBX files

Unity supports FBX files which you can export from many 3D modeling applications. Use these guidelines to help ensure the best results:

  1. Select what you want to export inside your 3D modeling application.
  2. Prepare what you need to include inside your 3D modeling application.
  3. Check the FBX settings before exporting.
  4. Verify and import the FBX file into Unity.

Note: In addition to these generation guidelines about exporting from 3d modeling applications, some 3d modeling applications have more specific information under these sections:

Selecting what to export

Think about what you want to export: some scene objects are essential but others may be unnecessary. Applications often let you export selected objects or a whole scene. You can optimize the data in Unity by keeping only the essential objects.

If you choose to export only specific objects in your scene, you can:

  • Export only the selected objects if your application supports it.
  • Remove unwanted data from your scene and export the whole scene.
  • Make a preset or a custom scene exporter to automate or simplify the selection export process.

Preparing what you need to include

Prepare your Assets for export, using the following considerations:

Object: Preparations:
Meshes All NURBS, NURMS, splines, patches, and subdiv surfaces must be converted to polygons (triangulation or quadrangulation)
Animation Select the correct rig. Check the frame rate. Check the animation length.
Blend Shapes or Morphing Make sure your BlendShapes (Maya) or Morph targets (Max) are assigned. Set up the export mesh appropriately.
Textures Make sure your textures are either sourced from your Unity Project or copy them into a folder called textures inside your Unity Project.

Note: We don’t recommend embedding textures in the FBX file using the Embed Media option. You must extract textures before using them, so embedding them just bloats your project unnecessarily and slows the import process.
Smoothing Verify any smoothing groups and smooth mesh settings.

Important: Importing blendshape normals requires having smoothing groups in the FBX file.

Setting the FBX export options

Check your FBX export settings:

  • Check each setting in the export dialogue of your 3D modeling application so that you know what to match up the FBX import settings in Unity.
  • Select whether to export Animation, Deformations, Skins, Morphs according to your needs.
  • Nodes, markers and their transforms can be exported to Unity.
  • Select any Cameras, Lights, and Visibility settings you want to import into Unity.
  • Use the Latest Version of FBX where possible. Autodesk regularly updates their FBX installer.
  • Make sure you use the same FBX version to import files into Unity as you used to export them from your 3D modeling application. Using different versions of the software can provide unexpected results.

Verifying and importing into Unity

Before importing your FBX file into Unity:

  1. Verify the size of your exported file. Perform a sanity check on the file size (e.g. >10kb?).

  2. Re-import your FBX file into a new scene back into the 3D modeling software you used to generate it. Check to make sure it is what you expected.

To import your file into Unity, follow the instructions for Importing, keeping in mind how you set the export options in your 3D modeling software.

Export settings in specific 3D modeling applications

Maya

You can use the FBX Export options to pick what to export in your FBX file.

Exporting BlendShapes (morphing)

When exporting BlendShapes (Morphing) from Maya, follow these guidelines:

  • Apply the blend shape to the export mesh with its targets in order.
  • If you require Maya animation keyframes, you can animate keyframes on the blend shape node.
  • Enable the Animation > Deformed Models > Blend Shapes FBX Export option in Maya before exporting the mesh.
  • If you also want to export skin deformation, enable the Animation > Deformed Models > Skins FBX Export option in Maya before exporting the mesh.

When you’ve imported the file into Unity, select it in the Project view and enable Bake Animations in the Animations tab of the Model Importer.

Cinema 4D

Animated characters using IK

If you are using IK to animate your characters in Cinema 4D, you have to bake the IK before exporting using the Plugins > Mocca > Cappucino menu in Cinema 4D. If you don’t bake your IK prior to importing into Unity, you only get animated locators and no animated bones.

Maximizing import speed

You can speed up file import into Unity by turning off the Embed Textures preference in Cinema 4D before you export. Check the Cinema 4D documentation for instructions.

3ds Max

Autodesk provides a Game Exporter Utility that targets the assets typically exported as game assets. You can also use the standard FBX Export utility to pick what to export in your FBX file.

For example, the default FBX exporter options (that basically exports everything) includes embedding Textures as image maps in the file. While this makes the file very portable, it also increases the file size.

In addition, when exporting from Maya, there are some extra considerations when dealing with the following:

  • Exporting quads
  • Bone-based Animations
  • Morph targets (Blendshapes)
  • UV sets for Lightmapping

Exporting quads

3dsMax’s editable Mesh always exports triangles. The editable poly retains quads and N-gons on import. So if you want to import quads into Unity, you have to use editable poly in 3ds Max.

Bone-based Animations

Follow these guidelines when you want to export bone-based animations in 3ds Max:

  • After setting up the bone structure and the animations (using FK or IK), select all bones and/or IK solvers.
  • Select Motion > Trajectories > Collapse. Unity makes a key filter, so the amount of keys you export is irrelevant.
  • Click the Export button on the Game Exporter window or the OK button on the FBX Exporter window.
  • Copy the FBX file into the Assets folder.
  • Open Unity and reassign the Texture to the Material in the root bone.

When exporting a bone hierarchy with mesh and animations from 3ds Max to Unity, the GameObject hierarchy produced corresponds to the hierarchy you can see in the 3ds Max Schematic View. However, Unity uses a GameObject as the new root, containing the animations, and places the mesh and material information in the root bone.

If you prefer to keep animation and mesh information in the same Unity GameObject, parent the mesh node to a bone in the bone hierarchy in 3ds Max before exporting.

Morph targets (Blendshapes)

Follow these guidelines when you want to export Morph targets in 3ds Max:

  • Apply the Morpher Modifier to the export mesh with appropriate morph targets set up in the Channel List.
  • If you require 3ds Max animation keyframes, you can animate keyframes on the mesh/modifier.
  • Enable the Animation > Deformed Models > Blend Shapes FBX Export option in 3ds Max before exporting the mesh.
  • If you also want to export skin deformation, enable the Animation > Deformed Models > Skins FBX Export option in 3ds Max before exporting the mesh.

UV sets for Lightmapping

Unity has a built-in lightmapper, but you can also create lightmaps using texture baking (Render To Texture on the Rendering menu) feature and automatic unwrapping functionality in 3ds Max.

Usually one UV set is used for main texture and/or normal maps, and another UV set is used for the lightmap texture. For both UV sets to come through properly, the material in 3ds Max has to be Standard and both Diffuse (for main texture) and Self-Illumination (for lightmap) map slots have to be set up:

セルフイルミネーションマップを使用した 3ds Max での Lightmapping に設定されたマテリアル
セルフイルミネーションマップを使用した 3ds Max での Lightmapping に設定されたマテリアル

Note: If the object uses a Shell type of Material, Autodesk’s FBX exporter does not export UVs correctly.

Alternatively, you can use Multi/Sub Object material type and setup two sub-materials, using the main texture and the lightmap in their diffuse map slots, as shown below. However, if the faces in your Model use different sub-material IDs, this results in multiple materials being imported, which is not optimal for performance.

Multi/Sub Object オブジェクトを使用した 3ds Max での Lightmapping に設定された別のマテリアル
Multi/Sub Object オブジェクトを使用した 3ds Max での Lightmapping に設定された別のマテリアル

LightWave

You can access the FBX export settings window inside LightWave by selecting Save > Export > Export FBX from the File toolbar in LightWave Layout:

Accessing FBX Export options in LightWave Layout
Accessing FBX Export options in LightWave Layout

The Export FBX window appears.

LightWave FBX Export Settings
LightWave FBX Export Settings
プロパティー 説明
FBX Filename Set the name and location of the FBX file. Use a location under the Unity Assets folder.
Anim Layer Name of the animation layer to use.
Type Use Binary to reduce filesize or ASCII for a text-editable FBX file.
FBX Version Select the most recent FBX version from the list, making sure that it matches the version that Unity is using.
Export
Models Export all models in the scene
Morphs (Blend Shapes) Export all BlendShapes in the scene
Mesh type
Cage (Subdivision Off) Export the object without any subdivision applied to it
Subdivision Subdivide the mesh when it is exported
Re-parent bone hierarchy Create a null to act as the new parent of the bone hierarchy.

When exporting a rig from Layout with the bone hierarchy parented to the mesh, the actual movement of the deformed mesh is twice what it should be. Enabling this new parent keeps the mesh in place.
Materials Convert LightWave’s standard Surface channels and image maps. This does not include procedural textures and nodes.
Embedded Textures Save embedded Textures as image maps included directly in the FBX file instead of in a separate image directory. This creates much larger, but self-contained, FBX files.
Smoothing Groups Convert LightWave’s normals into smoothing groups.
Collapse Materials Collapse surfaces with identical Material names, exporting the Materials separately. However, if both Material names and all surface parameters match, the two Materials are always merged, regardless of this setting.
Merge UVs Collapse multiple UV maps into a single map per object.
Unity 3D Mode Correct rotation errors caused by converting between coordinate systems across LightWave, FBX, and Unity.

Both LightWave and Unity use left-handed coordinate systems but FBX is right-handed. When LightWave exports to FBX, it converts to right-handed coordinates along the Z axis. When Unity imports the FBX file, it converts back to left-handed coordinates along the X axis, which results in an apparent 180 degree rotation of the scene. Using the setting means that when you go into Unity and look down the Z axis, the imported FBX looks exactly the same as it does inside LightWave.
Cameras Export all cameras in the scene.
Lights Export all lights in the scene.
Animations Export simple animations based on movement, rotation or scaling without baking. Character animation or other animation using IK or dynamics should still be baked, using Bake Motion Envelopes.
Bake Motion Envelopes Set an arbitrary start and end point for baking, in case there are setup frames you do not wish to capture. Only available if Animations is checked.
Start Frame and End Frame Export data only inside this timeframe.
Scale Scene Set a scale for your scene to match the Unity File Scale value.
HOWTO-ImportObjectsFrom3DApps
Humanoid Asset preparation