3ds Max glTF Export: Skinning and Joint Settings
Exporting rigged characters and animated models from Autodesk 3ds Max to the glTF format requires specific scene setup and exporter configurations to avoid collapsed hierarchies, detached meshes, and distorted vertex weights. This guide details the essential adjustments required in 3ds Max—covering joint hierarchy preparation, Skin modifier rules, and the native glTF exporter settings—to ensure functional bone transforms and accurate skinning across real-time viewers and game engines.
Joint Hierarchy Preparation
- Maintain Uniform Scale: Ensure every bone, dummy, or helper in your rig has a uniform scale of [100, 100, 100]. Non-uniform scaling on parent joints creates non-orthogonal transform matrices that will warp or distort meshes upon export.
- Establish a Single Root Joint: Anchor the entire skeletal chain to a single root bone or dummy object. While glTF supports multiple root nodes, a single root node ensures standard compatibility with runtimes such as Three.js, Babylon.js, and Unreal Engine.
- Reset Mesh Transforms: Prior to applying the Skin modifier, apply Reset XForm (Utilities > Reset XForm) to the target mesh, collapse the modifier stack to Editable Poly or Editable Mesh, and verify its pivot matches the world origin [0, 0, 0].
- Avoid Unsupported Rig Types Direct Export: If using 3ds Max Biped or Character Animation Toolkit (CAT), you must enable animation baking during export. Raw procedural controllers and procedural bone twists often fail to translate to glTF's standard joint-matrix format without baking.
Skin Modifier Configuration
- Bone Affect Limit: Under the Advanced
Parameters rollout of the Skin modifier, set the Bone
Affect Limit to
4. The standard glTF 2.0 specification natively accommodates 4 bone influences per vertex (usingJOINTS_0andWEIGHTS_0). While glTF supports 8 weights via additional vertex attributes, maintaining a limit of 4 ensures maximum compatibility across all target platforms. - Remove Zero Weights: In the Skin modifier, open the
Weight Tool and click Clean or use the
Remove Zero Weights command with a threshold of
0.001or0.01. Stray, negligible weights consume influence slots and can disrupt the top four joint weights during file conversion. - Linear Blend Skinning: glTF natively uses linear blend skinning. Avoid using dual-quaternion blending or non-linear deformation controllers within the Skin modifier, as these cannot be represented in the standard glTF format.
3ds Max glTF Exporter Settings
Whether using the native glTF exporter introduced in 3ds Max 2023 or the official BabylonJS 3ds Max plugin, use the following configuration options during export:
- Export Skinning / Skins: Ensure the Skinning (or Export Skins) checkbox is enabled. If this option is unchecked, the mesh will export as a static object detached from the hierarchy.
- Bake Animations: Check Bake Animations. This samples complex bone constraints (such as IK chains, LookAt controllers, and Orientation constraints) down into standard keyframe matrices per frame, preserving exact joint movements. Set the sample rate to match your scene frame rate (typically 30 or 60 FPS).
- Export Non-Deforming Objects: If your rig includes helpers or target markers that are essential to the hierarchy structure, ensure the option to export hidden or non-renderable bones/nodes is checked, or convert critical helpers to standard bones before export.
- Coordinate System Handling: glTF uses a right-handed, Y-up coordinate system, whereas 3ds Max uses a right-handed, Z-up system. Ensure that coordinate conversion is enabled in the exporter settings so that joint axes and node positions are automatically rotated without breaking the local binding poses of the skinned mesh.