Go to 'Edit > Preferences'
- Substance 3D home
- User guide
- Glossary
- Getting started
- Interface
- Interface
- Customizing your workspace
- Home screen
- Main toolbar
- Preferences
- Explorer
- Graph view
- Library
- Properties
- 2D view
- 3D view
- Dependency manager
- Resources
- Resources
- Importing, linking and new resources
- Bitmap resource
- Vector graphics (SVG) resource
- 3D scene resource
- AxF (Appearance eXchange Format)
- Font resource
- Warnings from dependencies
- Substance graphs
- Substance graphs
- Substance graph key concepts
- Creating a Substance graph
- Exposing a parameter
- Graph parameters
- Inheritance in Substance graphs
- Output size
- Values in Substance graphs
- Publishing Substance 3D asset files (SBSAR)
- Exporting bitmaps
- Exporting PSD files
- Sample Substance graphs
- Warnings in Substance graphs
- Nodes reference for Substance graphs
- Nodes reference for Substance graphs
- Atomic nodes
- Node library
- Node library
- Texture generators
- Texture generators
- Noises
- Noises
- 3D Perlin noise
- 3D Perlin noise fractal
- 3D Ridged noise fractal
- 3D Simplex noise
- 3D Voronoi
- 3D Voronoi fractal
- 3D Worley noise
- Anisotropic noise
- Blue noise fast
- BnW spots 1
- BnW spots 2
- BnW spots 3
- Cells 1
- Cells 2
- Cells 3
- Cells 4
- Clouds 1
- Clouds 2
- Clouds 3
- Creased
- Crystal 1
- Crystal 2
- Directional noise 1
- Directional noise 2
- Directional noise 3
- Directional noise 4
- Directional scratches
- Dirt 1
- Dirt 2
- Dirt 3
- Dirt 4
- Dirt 5
- Dirt gradient
- Fluid
- Fractal sum 1
- Fractal sum 2
- Fractal sum 3
- Fractal sum 4
- Fractal sum base
- Fur 1
- Fur 2
- Fur 3
- Gaussian noise
- Gaussian spots 1
- Gaussian spots 2
- Grunge concrete
- Grunge Damas
- Grunge galvanic large
- Grunge galvanic small
- Grunge leaks
- Grunge leaky paint
- Grunge map 001
- Grunge map 002
- Grunge map 003
- Grunge map 004
- Grunge map 005
- Grunge map 006
- Grunge map 007
- Grunge map 008
- Grunge map 009
- Grunge map 010
- Grunge map 011
- Grunge map 012
- Grunge map 013
- Grunge map 014
- Grunge map 015
- Grunge rough dirty
- Grunge rust fine
- Grunge scratches dirty
- Grunge scratches fine
- Grunge scratches rough
- Grunge shavings
- Grunge splashes dusty
- Grunge spots
- Grunge spots dirty
- Liquid
- Messy fibers 1
- Messy fibers 2
- Messy fibers 3
- Microscope view
- Moisture noise
- Perlin noise
- Plasma
- Caustics
- Voronoi
- Voronoi fractal
- Waveform 1
- White noise
- White noise fast
- Patterns
- Patterns
- 3D linear gradient
- 3D volume mask
- Alveolus
- Arc pavement
- Brick 1
- Brick 2
- Brick generator
- Checker 1
- Cube 3D
- Cube 3D GBuffers
- Fibers 1
- Fibers 2
- Gaussian 1
- Gaussian 2
- Gradient axial
- Gradient axial reflected
- Gradient circular
- Gradient linear 1
- Gradient linear 2
- Gradient linear 3
- Gradient radial
- Height extrude
- Mesh 1
- Mesh 2
- Panorama shape
- Polygon 1
- Polygon 2
- Scratches generator
- Shape
- Shape extrude
- Shape mapper
- Shape splatter
- Shape splatter blend
- Shape splatter data extract
- Shape splatter to mask
- Splatter
- Splatter circular
- Star
- Starburst
- Stripes
- Tile generator
- Tile random
- Tile random 2
- Tile sampler
- Triangle grid
- Weave 1
- Weave 2
- Weave generator
- Filters
- Filters
- Adjustments
- Adjustments
- Apply color palette
- Auto levels
- Channel mixer
- Chrominance extract
- Clamp
- Color match
- Color to mask
- Contrast/Luminosity
- Convert to linear
- Convert to sRGB
- Create color palette (16)
- Grayscale conversion advanced
- Hald CLUT
- HDR range viewer
- Height map frequencies mapper
- Highpass
- Histogram compute
- Histogram equalize
- Histogram range
- Histogram render
- Histogram scan
- Non-uniform histogram scan
- Histogram select
- Histogram shift
- ID to mask grayscale
- Invert
- Lighting cancel high frequencies
- Lighting cancel low frequencies
- Luminance highpass
- Min max
- Modify color palette
- Pow
- Quantize color (Simple)
- Quantize color
- Quantize grayscale
- Replace color
- Replace color range
- Threshold
- View color palette
- Blending
- Blurs
- Channels
- Effects
- Effects
- 3D texture position
- 3D texture SDF
- 3D texture surface render
- 3D texture volume render
- Ambient occlusion (HBAO)
- Ambient occlusion (RTAO)
- Anisotropic Kuwahara color
- Anisotropic Kuwahara grayscale
- Bevel
- Bevel smooth
- Cross section
- Curvature
- Curvature smooth
- Curvature sobel
- Diffusion color
- Diffusion grayscale
- Diffusion UV
- Directional distance
- Edge detect
- Emboss with gloss
- Extend shape
- Flood fill
- Flood fill mapper
- Flood fill to Bbox size
- Flood Fill to gradient
- Flood Fill to grayscale/color
- Flood Fill to index
- Flood Fill to position
- Flood Fill to random color
- Flood Fill to random grayscale
- FXAA
- Glow
- Mosaic
- Multi directional warp
- Non-uniform directional warp
- Reaction diffusion fast
- RT irradiance
- RT shadow
- Shadows
- Shape drop shadow
- Shape glow
- Shape stroke
- Summed area table
- Swirl
- Uber emboss
- Vector morph
- Vector warp
- Normal map
- Tiling
- Transforms
- Material filters
- Material filters
- 1-click
- Effects (Material)
- Transforms (Material)
- Blending (Material)
- PBR utilities
- Scan processing
- Mesh-based generators
- Mesh-based generators
- Mask generators
- Weathering
- Utilities (Mesh-based generators)
- Spline & Path tools
- Spline & Path tools
- Working with Path & Spline tools
- Path tools
- Spline tools
- Spline tools
- Paths to Spline
- Point list
- Scatter on Spline color
- Scatter on Spline grayscale
- Spline 2D transform
- Spline (Cubic)
- Spline (Poly quadratic)
- Spline append
- Spline bridge (2 Splines)
- Spline bridge (List)
- Spline bridge mapper color
- Spline bridge mapper grayscale
- Spline circle
- Spline fill
- Spline flow mapper
- Spline mapper color
- Spline mapper grayscale
- Spline merge list
- Spline render
- Spline sample height
- Spline sample thickness
- Spline select
- Spline warp
- UV mapper color
- UV mapper grayscale
- 3D view (Library)
- 3D view (Library)
- HDRI tools
- Node library
- Substance function graphs
- Substance function graphs
- What is a Substance function graph?
- Create and edit a Substance function graph
- The Substance function graph
- Variables
- FX-maps
- FX-Maps
- How it works
- The Iterate node
- The Quadrant node
- Using Substance function graphs in FX-Maps
- Warnings in Substance function graphs
- Sample Substance function graphs
- Nodes reference for Substance function graphs
- MDL graphs
- Bakers
- Best practices
- Pipeline and project configuration
- Color management
- Package metadata
- Scripting
- Scripting
- Plugin basics
- Plugin search paths
- Plugins packages
- Plugin manager
- Python editor
- Accessing graphs and selections
- Nodes and properties
- Undo and redo
- Application callbacks
- Creating user interface elements
- Adding actions to the Explorer toolbar
- Using color management
- Using spot colors
- Logging
- Using threads
- Debugging plugins using Visual Studio Code
- Porting previous plugins
- Packaging plugins
- Scripting API reference
- Technical issues
- Release notes
Substance 3D Designer version 14.0.0 upgrades the Perforce support to Python 3.
Make sure your other scripts and version control environment are adjusted accordingly.
In this page
Preparing P4
In P4V, make a note of the workspace name and path, as shown below:
In any text editor or IDE, open this script located in Designer's installation: 'tools/version_control/perforce.py'.
On line 19, edit the path to the location of the 'p4' executable on your system.
In the example below, this path is 'c:/Program Files/Perforce/p4.exe'.
# Editable variables cPerforceP4AbsPath = os.path.abspath("c:/Program Files/Perforce/p4.exe") cVerbose = False
Version control is configured in the Project settings, which are available in Designer's Preferences.
-
-
Go to 'Projects', select the target project file and go to the 'Version Control' tab
-
Check 'Version Control Enabled'
-
Fill this information in the 'Workspace' section:
- Name: Enter the 'Workspace Name' you previously retrieved from P4V
- Path: enter the 'Workspace Path' you previously retrieved from P4V
- Name: Enter the 'Workspace Name' you previously retrieved from P4V
Setting up actions
The actions will be available in the contextual menu of a package in the Explorer. There are predefined actions that match most Version Control tool concepts:
All action labels can be changed as needed.
All actions need a script in order to be valid.
You may use:
- one script per action
- one script for all actions
A starter script for all actions is available in Designer's installation: 'tools/version_control/perforce.py'.
To be available, the package needs to be saved under the 'Workspace path' (E.g., under 'f:/Dev/perforce')
-
In the Actions group, click on the '...' button of the Add action
-
Select the following script in Designer's installation: 'tools/version_control/perforce.py'
-
The script should automatically be set up for all other actions.
Setting up custom actions
As all version control tools are different and include many features, we allow the user to add custom actions.
-
Click 'Add item'
-
Fill in the label of the new action, and set its script path
Setting up the script interpreter
-
In the 'Interpreters' section, click 'Add item'
-
Set a script file extension or suffix, and the path to the interpreter executable
-
Edit the perforce.py script to update the location of the 'p4' binary
-
Create a new package
-
Save the package under the 'Workspace path' directory
-
Click RMB on the package: you now have access to the 'Version control' submenu
-
Several actions are available, depending on the status of the package file in the workspace:
- Add: Mark the files as 'ToAdd'
- Submit: Submit the selected packages. This action displays a dialog for specifying a change message (see below)
- Revert: Revert the modifications. This action displays a dialog for selecting the files to revert (see below)
- Checkout: Check the file out from the depot
- Get last version: Retrieve the latest version from the depot
- Refresh status: Refresh the package file status
- Add: Mark the files as 'ToAdd'
All actions support multi-selection
For P4 and other version control tools that use read-only file permission to restrict modifications, the user will first have to check out the package before modifying it.
Read-only package files can't be modified in SD.
The package will have the following icons, depending on its status:
Up to date
Checked out
Marked for add
Not in depot
Note that an package which is not up to date is marked with a warning sign.
The command executed by each action is built thusly:
my_script WorkspaceName WorkspacePath ActionName[ActionArgs]
WorkspaceName: the name of the workspace
WorkspacePath: the path of the root directory of the workspace
ActionName: the name of the action:
- add: for the "Add" action
- checkout: for the "Checkout" action
- submit: for the "Submit" action
- revert: for the "Revert" action
- get_last_version: for the "Get Last Version" action
- get_status: for the "Get Status" action
The label is set up in the project settings, with ' ' character replaced by '_' — E.g.: "My Action" => "My_Action".
ActionArgs: arguments of the action:
- -desc: A description string used by 'Submit' action
- -files: A list of files
- -files_list: A text file that contains a list of files per line
get_status: Returns a value depending of the status of the specified file:
- 0: Undefined status
- 1: not in the depot
- 2: previous version (not up to date)
- 3: latest version (up to date)
- 4: checked out
- 5: marked for addition
- other actions:
- 0: success
- other: error