We have recently introduced a new tool to simplify the installation of the plugin for both Max and Maya.
First, you can download the latest version of the installer from our Github Releases. Once on the releases page, you can find all our packages in the assets section of each releases:
From there, you can download the Installer.zip file. Chrome is currently warning of potential threat as the installer.exe has currently not been downloaded enough to pass the Chromium checks. In this case, you might see a message like this:
You can nervertheless continue to download by pressing the little arrow and chosing to "Keep" the file:
Once downloaded, you can extract the content of the zip in your favorite loaction.
Launch the executable file contained in the previous zip. On the first launch Windows like Chrome previously will emit a Smart Screen warning as the application has currently not being launched enough to be trusted.
As before, you can chose to continue by pressing more info and then Run anyway:
No worries, you are almost there. A second warning is raised by Windows as the installer needs to write files in the program files and therefore run in elevated mode. You can access the User Account Control and finally start using the application.
From this point, it gets simpler:
Once launched the application should auto detect all the installation folders from your Autodesk applications. In case it fails to do so, you could still manually location the targetted software.
You can now easily install or update any of your 3d authoring tools to the latest prerelease available on Github.
Would you want to upgrade to the latest available pre-release of the exporter plugins, you can easily launch back the installer and follow the same exact procedure to update the installed plugins to their latest versions.
Please not that both the software you are trying to install the plugin for should be closed during the installation.
The plugin is designed for 3DS Max 2015 or later. To download it, go to the Github project Releases.
In the assets section of the release you can find one zip file per supported tool (like max_2019.zip) containing the plugin files.
Click on the zip file, to start Downloading.
By default, Windows blocks all .dll files coming from the web, so we have to unblock them first. Select the zip file, and with a right click select Properties, select Unblock, and then OK.
Then, extract the content of the zip file on your computer, and open the directory corresponding to your 3DS Max version. Finally, make sure 3ds Max is not running, and move all .dll files into the installation directory of 3DS Max (in
C:/Programs/Autodesk/3ds Max 2015/bin/assemblies). The next time you will start 3ds Max, the plugin will be automatically launched, and a new tab should appear:
Congratulations! You did it!
Visual Studio is required to build the Max2Babylon project from source.
The .NET Framework Redistributable needs to be installed in order to run the Max2Babylon plugin properly.
Hierarchies are exported
(*): Through custom UI
If you right-click on your scene, you will have a menu Babylon -> Babylon Properties: All the available blend modes are listed below:
The scene properties allow you to do these things:
rotationparameter. Instead, you will have to use the
With a right click on a mesh, select the menu Babylon -> Babylon Properties to open the window Object Properties:
With this window, you can set the following properties:
If you create a standard light and right click on it, select the menu Babylon -> Babylon Properties to display this window:
The options Do not export, Tag and animations are exactly the same as the Object properties window.
In this window, you can choose the kind of camera you want to create in Babylon.js. You can also:
When your scene is ready to be exported, click on the Babylon tab on the top menu, and click on Babylon File Exporter to display the exporter window.
This window is composed of 3 panels:
The Scale factor can be used to rescale the whole world. If you set a scale factor equal to 100, the resulting scene will be 100 times smaller (1%). By default the scale factor is equal to 1, meaning no rescale.
The Texture quality sets the convertion quality of bitmap to JPEG. At 100 (the maximum value), it gives the highest image quality but no file size reduction. On the contrary at 0 (the minimum value), it gives the lowest image quality but the greatest file size reduction. By default the Texture quality is set to 100.
The Merge AO map option enables the merging of the Ambient Occlusion shadow map (stored on Diffuse Roughness slot) with the Metalness and Roughness map.
The write textures option enables writing the textures to the output directory. Note that this is force enabled when exporting glb files.
The overwrite textures option enables overwriting existing textures in the output directory.
The Use Draco comression option is only available for gltf and glb output format. More detail here.
The Export button should be used to create the Babylon file representing your scene. The Export & Run button will also create the Babylon file, but will also launch your default browser and run the newly made Babylon file. This button is very useful if you just want to test the render of your scene in Babylon.js.
As babylon.js script is retrieved directly from the official website directly, you should have internet access in order to correctly use Export & Run.
The log panel indicates in real time which mesh has been exported, which material, and if there are any problems with these objects.
You can also export the scene using MaxScript. A sample script file is available here.
You will need to update the path to your babylon dll and the output path.
All parameters are editable. Default values are the same as in the exporter window except for autoSave3dsMaxFile which is false.
Logs are limited to errors, warnings and core messages to avoid excessive amount of prints.
If you want to test your scene right away by using the button Export & Run, your scene should have a camera created. Otherwise, the log panel will display the warning “No camera defined” and a default one would be created at runtime but won't be exported in .babylon file.
If you have more than one camera, the first one will be set as activeCamera in Babylon.
If you don’t have any lights in your scene, the exporter will add a hemispheric light by default. The log panel will display the warning “No light defined – A default hemispheric light was added for your convenience”.
The object position will be defined with your object pivot position. In the image below, the pivot position is not at the center of the box: updating the object position in Babylon.js will update this pivot position, and not the box position.
Using a negative scale will reverse the normal of your objects. These objects will appear correctly in 3DSMax, but incorrectly in a Babylon.js application.
Using mirror tool affecting Transform will make mirrored object appear correctly in 3DSMax, but incorrectly in a Babylon.js application. Consider using mirror tool affecting Geometry instead.
If mirror by Transform is what you need (or what you got), you can fix this issue doing the following after mirroring:
Be aware animations for this object will likely be incorrect after that.
Cameras, lights and meshes have custom properties (Right-click and select "Babylon properties" menu) to automatically launch animations at startup.
Animations are exported by sampling keyframes which can generate a lot of data. To reduce file size, you can opt to use linear interpolation instead of bezier or TCB.
Also, if animations are not exported correctly, you may want to disable animation optimization by using the Babylon properties menu on the scene (Right-click on the scene and select "Babylon properties" menu).
To ensure that bones are correctly exported, you have to use the Skin modifier. Skin should be positioned at origin. More info here
Babylon engine fully supports the following image formats: jpg, bmp, png, gif, tga. You are adviced to use those formats for your textures when exporting to Babylon.
Note that the exporter also supports textures with tif and dds formats. But, those textures will be automatically converted to png by the exporter to ensure compatibility with the Babylon engine.
About dds format, Babylon engine partially supports this format depending on compression. To avoid any issue with this format, the exporter automatically converts it to png as stated previously. As an exception, the dds format is allowed for the environmnent texture and will not be automatically converted.
Specular color and specular level are split into two attributes in 3ds Max while merged in Babylon.
For the global value, the specular color and level are multiplied to obtain the resulting specular color in Babylon.
For the texture, the Babylon specular color map is either:
Even though a specular level map should be a grayscale, its 3 components (RGB) are multiplied individually to the specular color.
Multi-Materials are supported, but inputting a Multi-Material into another Multi-Material is not supported.
The handling of physical materials is mimic from glTF format. Detailed explanations here
The handling of arnold materials is mimic from glTF format. Detailed explanations here
As well as the default supported GLTF parameters, in Babylon format, we support the coating parameters of the material. You can see below the supported parameters:
Please note that if a map is used for the weight or the roughness parameter, they will be combined in the same way the ORM texture is created in the Detailed explanations. In 3DS MAX, metalness and roughness maps are black and white images (R=G=B). The 2 maps must have same sizes to be merged successfully.
In Babylon format, weight is stored in red channel, roughness in green.
The roughness of the coating can be inverted to mean Glossiness - this is controlled by the same parameter than the roughness map.
The handling of the shell material is mimic from glTF format. Detailed explanations here
The handling of the directX shader material is mimic from glTF format. Detailed explanations here
Babylon supports PNG, DDS and TGA formats for texture transparency. You can choose to include the transparency directly in your diffuse texture, or create an opacity map. Here are the options to check if you want to have transparency on your diffuse texture:
Important: if you are relying on a physically based material, you can chose the transparency mode through a dedicated material attribute. You can refer to the following documentation to learn more about this feature.
A material can be exported as Unlit, meaning independent of lighting. This implies that light-relative attributes or textures are not exported: ambient, specular, emissive, bump mapping and reflection texture.
3DS MAX does not provide a simple way to tag a material as Unlit. To do so, you need to add a custom attribute to the material :
To add the desired custom attribute, you are recommended to use the BabylonMaterialAttributes MAXScript which adds the Unlit attribute to all materials used in the scene. The default value is not Unlit. Run the script again whenever creating/assigning a new material.
Alternatively, you can add the custom attribute manually following 3DS MAX guidelines. Note that the exporter is looking for an attribute named babylonUnlit. The visual text (Unlit) could be whatever you want.
Now that you know all about the exporter features, it’s time to use it!
First, create the model you will be using in the Key class. I choose to create a simple key (you might recognize a little inspiration from the Zelda games). As you can see, the key has 3 key frames creating a floating animation. Its material has no diffuse color (set to black), but a self-illumination color (corresponding to the emissive color in Babylon.js).
The only thing left to do is to export this key as a Babylon file, and we’re done with 3DS Max. As the animation is going from frame 0 to frame 80, the Babylon properties for this object have to be updated. And we’re done!