This page explains how Substance Designer can publish packages as Substance Archives, a special file format, extension "SBSAR", used within the Substance ecosystem, as well as in other applications supporting it. It's usually better to use a Substance Archive instead of bitmaps, as it is a lot more flexible and lightweight.
It's good to keep the following in mind when publishing a Substance Graph:
- You publish a Package, with all it contents, not an individual Graph. A Substance Archive then lets you generate content from all Substance Graphs inside this package.
- Published packages are completely stand-alone: all resources required are embedded into the file. That means they are much easier to share than SBS files.
- The output from Substance Archives can be completely dynamic. Resolution is not set, exposed parameters can be modified. However, editing the Graph is no longer possible.
- Substance Archives can be used outside of Substance Designer, in all Adobe Substance products, Adobe Dimension as well as any other application that has a Substance integration.
- Publishing is different from Exporting, make sure you understand well the difference!
Preparing to Publish
Publishing takes some more preparation than Exporting Bitmaps. That's because your published SBSAR packages are dynamic tools, not just a static snapshot of the current state of your textures. Specifically you want to keep the following in mind:
- Make sure Graph resolutions (Output Size) are set to "Relative To Parent", which means they are dynamic and can be changed on the fly.
- Make sure Graph outputs are set up correctly with names, labels and usage tags.
- Make sure Parameters, if needed are organized and named properly.
- If Graphs are present in the package that should not be available outside of Substance Designer (for example helper or "tool" sub-graphs that only work in a specific context), set them up to be hidden in their properties. See further below.
Once you are ready to publish, there are two ways to access the Publishing Dialog, both are through the Explorer Window.
In the Explorer window, Right-clicking on the Package and choosing Publish .sbsar File..., alternative Hotkey Ctrl + P.
After Publishing with dialog once, you can also use Publish .sbsar file as previous to repeat the publishing process without seeing the dialogs, immediately publishing with the same settings.
In the Explorer window, by clicking the Publish button in the top toolbar.
After Publishing with dialog once, you can also use the Publish as previous buttonto repeat the publishing process without seeing the dialogs, immediately publishing with the same settings.
Before the Publish dialog appears, you will be prompted to save the SBS file if this has not been done, and you will be prompted where to save the SBSAR file. To avoid seeing the file prompts and dialog and getting your file out faster, use Publish as previous methods described above.
The Publish Dialog appears after the file prompts, it presents you with a few options to customize your export.
- Default Filename - Default filename to use for content in the archive. Is used for some naming and labeling scenarios.
- Compression Mode - Compression mode used for embedded bitmap resources.
- Enable Icon - Enable usage of the icons embedded into Graphs.
- Output Size - Set if output size should be exposed. If disabled, resolution becomes static, should nearly always be checked.
- Pixel Size - Set if pixel size should be exposed, allows for non-square pixels. Except for very rare cases, this should be left disabled.
- Random Seed - Set if global random seed should be exposed. Generaly best to leave checked, unless no randomization is wanted.
Publish Dialog Warnings
The Publish dialog sometimes gives warnings in yellow. Common ones are listed below, with an explanation and solution.
- Warning: the following Graph does not have an Output: (graph name)
This warning means you are trying to publish a package with one or more graphs that have no output nodes. Solution is to add Output nodes to the mentioned Graphs.
- Warning: found graph with non relative to parent x1 outputsize parameter
This warning means one or more Graphs have been set to incorrect Output sizes. Usually it's the properties of a graph itself. The warning means you will not have dynamic resolution control over this graph when published. Solution is to go into graph or node properties, and set Output Size to "Relative to Parent".
Excluding Graphs from SBSAR
Some Graphs in your package might not be intended for usage outside. These sub-graphs are usually meant as part of a larger whole, a subroutine of a master material.
To exclude a Graph from becoming visible or useable inside an SBSAR, access that Graph's properties (double click empty area in Graph View or single-click the graph in the Explorer), then open the Attributes rollout. Set Exposed in SBSAR to No to hide it when published.
While SBSAR is the most powerful and most dynamic format in the Substance Ecosystem, there are some small, technical limitations to be aware of.
- Published SBSAR packages are a one-way file format. You can not "decompile" an SBSAR back to SBS. The only way to "edit" an SBSAR, is to edit the original SBS file. You can still use SBSAR package contents as nodes inside new Substance Graphs (open and drag-and-drop), so this is not a huge limitation.
- SBSAR files have versions that infer compatibility. The core Substance Engine is updated from time to time with new features. Packages that use these features need to be read by applications that support these new features. This is not an issue for all Substance Applications, as they are all updated at the same time, but Plugins and integrations might have longer compatibility delays.
Use the Substance Engine Compatibility display options in the Project Preferences to track down any potential issues.
- Icons are not used by applications other than Substance Designer. Even Substance Alchemist and Substance Painter generate their own icons, ignoring embedded ones. In Substance Painter the Icon can be overriden with a custom one if needed.
- Some exposed parameters do not function anymore once published as SBSAR. See Exposing a Parameter for a comprehensive list.