Substance Designer has a powerful system to configure the application for pipeline usage. Through an advanced system of hierarchical "Project" files the application can be instantly configured to Studio or Project standards, with all configurations and Library content being under version control. The main goal of the system is to centralize all pipeline-relevant settings, yet still allow multiple configurations to override and expand each other.
Configuration File Hierarchy
Designer has 3 tiers or Configuration files, each with a different purpose. For Windows all files are located in ~User\AppData\Local\Allegorithmic\Substance Designer.
The image illustrates the relation between the different files in Designer's default setup, after a fresh install.
- User_Preferences.XML contains general program settings, of which all but one are not relevant to project pipelines. This file is unique and can not be swapped out, Designer is hardcoded to utilize this exact file.
It contains one single reference to a Configuration file.
- Default_Configuration.SBSCFG can be swapped out for other SBSCFG files with different names, but only one SBSCFG file can be used at the same time.
It contains multiple references to Project files. Note that for the default configuration these files are not explicitly defined, but are hard-coded!
- Project.SBSPRJ files contain project/pipeline relevant settings. Multiple Projects can be defined in a hierarchy, overriding or expanding on the previously defined project.
Designer Pipeline setup
Every type of file is explained with more detail on child pages of this page, but the short overview of how to ideally define a custom setup for Designer is as follows:
- Identify and group what settings to add into your Project files. This is different for every studio and requires a certain amount of planning!
In almost every case at least 2 Projects should be defined: one for global, studio-wide defaults (like standard templates, shader files, baking settings), and one with more specific content such as Library content. If you have different projects running simultaneously you might want to create multiple project configurations for each (so 3 or more total).
- Create the relevant SBSPRJ files and place them and their content under version control. It is strongly recommended to separate Designer pipeline and library content from your actual project content and resources (3D models, textures, code) by creating a separate repository for it.
- Create an SBSCFG configuration file listing all project files, place it under version control. If you have multiple projects, you can create a Config for every project.
- Set up every user's User_Preferences.xml to reference their relevant configuration file.
You can have every user do this manually, or you can script this by injecting lines into their XML file. More info on the relevant page.