This script is a "render to texture" like graphic interface that uses the Substance Batch Tools to bake the maps defining the topology of a mesh in just a few clicks.
Updated! Version 1.x uses Batch Tools 6 and can output maps with different values for width and height!
I often need to import objects in Substance Designer to create specific materials and I find the use of the Bake panel not so convenient when many maps have to be generated or regenerated many times. Beside I also noticed I was spending a lot of time droping and connecting these maps one by one in the material graphs. I then came with this concept of topo-maps graph where all the maps defining an object are encapsulated in a Substance graph with predictable outputs, compatible of course with the standard nodes because respecting the naming conventions of Substance Designer. This kind of graph has been introduced in many of my materials as an expected input - greatly facilitating the connection of the object maps without preventing the use of bitmap nodes if needed.
The script WkSubstanceTopoMapsBaker is a mean to make all this process of topo-maps graph creation faster. In 3dsMax, in just a few clicks, it quickly render all the specified maps and the graph of a given object.
Important notes for V1.0:
- This version supports Batch Tools V6.x and their new features.
If you need to use Batch Tools V5.x use this version: WkSubstanceTopoMapsBakerV0.95.zip
- The script is based on the Substance Batch Tools. You need a valid licence of a Substance product to use them.
Substance Batch Tools (V6.x):
- Only a few of the "bakers", ie all the map types available in the Batch Tools package, are currently supported by the script, and their parameters are currently not exposed. It would be wonderful to have all of them, I miss some time at the moment for that. Maybe in a future release.
The generated TopoMaps graph, in the .SBS file, then currently look like these: Substance Topo-Maps Graph
- The script was developped for the version 6 of the Batch Tools (which correspond to the version 6 of Substance). If you want to import the generated .sbsar file into 3ds Max you need to install a recent version of the Substance plugin. Currently this plugin is quite limited but hopefully Allegorithmic should release a new one in a near future.
- As usual, feedback is very welcome :)
Install and use
- Download the package and unzip it in a temporary folder.
- Open 3ds Max and drop the .mzp file directly into one of the 3D viewports. The script will be automatically installed.
- Create a button on the toolbar to easily launch the script. This step has to be done manually by following the instructions on the web page that will open at that point (you can also find them here: How to create a launch button for a macroscript)
- Click on the macro button to launch the script. The following dialog window will appear:
Using the script is pretty simple:
- Pick the object from which you want to generate the topo-maps from.
- Check the maps to generate
- Click on the Bake button
How it works
The script is doing this, in this order:
- The specified object is exported to a .FBX file in the specified export directory
- A command line file is generated according to the GUI settings and the Substance Batch Tools are called.
- Specified topo-maps are then created in the export directory.
- If the checkbox labeled "Generate SBS TopoMaps" is checked then the template .SBS file is copied to the export directory. This file is modified by WkSBSLib, a XML library designed especialy to manipulate Substance package files (currently encrypted because not yet ready for sharing) and the topo-maps are integrated as references into it. With this method the .SBS itself doesn't reference any other Substance graph whereas a .SBS generated with the Batch Tool Mutator would.
- If the checkbox labeled "Generate SBSAR TopoMaps" is checked then the .SBS file is converted to a standalone Substance published package.
This script is a first step and obviously it could be far more powerful.
Here are sereval features I would like to introduce at some point. I cannot say when though.
- Support of every baker types
- Exposition of the baker parameters
- Storage and restoration of the generated maps information per object
- Optional launch of the Substance Player to check the topo-maps graph result
Discussion and support
You can provide feedback and requests for support here:
- V1.01 (06/04/2017):
- fixed a crash that occured under some very specific conditions
- V1.0 (05/04/2017):
- now uses Batch Tools 6
- maps now support different width and height
- V0.95 (22/01/2017):
- this is the last version supporting Batch Tools V5.x: WkSubstanceTopoMapsBakerV0.95.zip
- added a parameter to set a suffix to the name of .sbs and .sbsar
- V0.94 (05/01/2017):
- fixed 1 major bug: The size and output format of the output maps were in 8bpc instead of 16bpc!
- V0.93 (03/01/2017):
- fixed 1 bug: AutoUnwrap now appears correctly
- V0.92 (22/12/2016):
- rewamped the advanced export options
- added an Explorer button for the export folder
- added Thickness mesh data map
- changed Ambient Occlusion Identifier from "ambientOcclusion" to "ambient_occlusion" to match Painter conventions
- updated WkTopoMapsContainer.sbs to match Substance naming conventions
- fixed 2 bugs in WkSBSLib
- fixed a timing bug related to the generation of the .sbsar file
- V0.9 (12/10/2016):
- First stable version
- Removed the use of the Batch Tool Mutator and replaced it by a XML library dedicated to Substance .sbs files
- WkSBSLib, the XML SBS library, is currently encrypted because the code is not robust enough at the moment for sharing
- The topomaps graph in the generated .sbs file now respects the Plug naming conventions in Substance Designer
- V0.85 Beta (20/09/2016):
- First beta release. Instable version - for test only