Documentation for EditorPaint, a 2D & 3D painting tool available in the Asset Store.
Asset Store : https://www.assetstore.unity3d.com/en/#!/content/107540
Forum : https://forum.unity.com/threads/editorpaint-2d-3d-texturing-tools-released.514910/
EditorPaint is a 2D and 3D painting tool built directly inside of the Unity Editor. It allows advanced painting techniques and Simulations to be done directly on your textures & objects with your scenes lighting/reflections and your projects shaders. This allows for improved quality and increased production speed at a reasonable price.
Below are details about features of the editor to help new users and those looking for additional information.
- Undo : Ctrl + Z
- Redo : Ctrl + Y
- Paint brush : B
- Erase brush : E
- Fill brush : G
- Flow brush : F
- Color picker : C
- Swap colors : X
- Decrease brush size : [
- Increase brush size : ]
- Snap to axis : Hold Shift before starting to paint.
This will keep the brush on the X or Y screen space axis while painting
- Rotate Camera : Alt + Left mouse button and drag
- Pan Camera : Alt + Middle mouse button and drag
or : Right arrow key, Left arrow key
- Dolly/Zoom Camera : Alt + Right mouse button and drag
or : Up arrow key, Down arrow key
or : Mouse Scroll Wheel
- Camera look : Right mouse button and drag
- Pan : Alt + Middle mouse button and drag
(Can only pan if the image is zoomed in so that its larger than the visible work area)
- Zoom : Alt + Right mouse button and drag
or : Mouse Scroll Wheel
EditorPaint currently has two windows you can edit content in. The 2D window and the 3D+2D window. Both can be opened from the Unity Window file menu, or EditorPaint will try to choose the best window depending on what type of asset you want to edit.
To import meshes and textures into the window, drag and drop them from Unity into the EditorPaint window. If you drag a mesh or texture into the 3D section of the window, it will create a new object using what you selected. If you drag a texture into the 2D window, it will import the texture as a new layer onto the active 2D mesh.
Only one 3D+2D window can be open at a time.
You can save your progress by using File>Save Project and File>Open Project to continue working at a later time.
Each window is separated into similar layouts, but in the 3D window the tools menu can be moved left or right and the 2D and 3D sections can be partially minimized.
To import textures into the 2D window, drag and drop them from the Unity window into the EditorPaint window.
Multiple 2D windows can be open at the same time.
You can save your progress by using File>Save Project and File>Open Project to continue working at a later time.
When you create a new project or drag an object into an empty project, EditorPaint will either setup the project based on the Standard shader (if detected in the objects material) or will present you with a New Project Setup dialog.
The Dialog allows you to choose the shader you want the project to be created with and presents Advanced settings for those very familiar with Shaders to customize the project setup to their specific wants.
If you are unfamiliar with shaders and texture setups, we recommend you use the auto detected results unless you have learned of better values from other sources. Using incorrect setup values can cause your images to be imported and painted incorrectly.
If your specific shader has custom keywords, they can be entered in the Advanced settings for use in your project.
Once you are ready, click the Create Project button to begin.
In the tools gui, there is the Objects list at the top which contains all of the imported objects plus each objects unique settings. The 2D window only has one object ever loaded, so instead you will see a list of layer unique settings. You can edit the texture resolution for a layer and the object material settings in this section.
Save textures - If you want to save a texture to disc, find the object in this section and click the save button on the type of texture you want to save to disc. You can currently save textures as png, tga, gif, jpg, bmp, tif, gif formats. If you wish to save your file as a different format than the one you imported it as, you will need to type the file extension type you want while saving. Unfortunately this is a current Unity Editor limitation in not supporting a drop down list of EditorPaint supported formats.
Focus - The '3D' focus button will move the camera to find the mesh in the window. Multiple 3D objects can be painted on at one time. The '2D' focus button will show the active layer type for this mesh in the 2D gui section. Only one object can be active in the 2D gui at a time. The current object will have a slight blue color in the Objects list and the 2D button will be active.
Paint drop icon - Toggles if the mesh can be painted on in the 3D and 2D window.
Cube icon - Toggles if the mesh collision is turned on. This will automatically turn off paint-ability for that mesh. This feature is useful when baking simulations and you want an object not to contribute to the result of other objects. For example with Ambient Occlusion.
Eye icon - Toggle visibility of the mesh, this will also toggle paint-ability but Collision (Cube icon) can still be on. This is useful so you can have an object provide collision to a Simulation Bake for other objects but not paint into its own simulation. For example with Ambient Occlusion.
Gear icon - Material settings for this mesh.
Trash can icon - Deletes the mesh from the project. This will remove this object from this Paint window.
Layer Res - Changes the resolution of the images used for each layer of this specific layer type.
Canvas Res - Changes the preview resolution and layer type and the save to disc resolution of the layer type. This allows you to preview your work at a lower resolution without loosing information, or to quickly save out different resolution images without loosing your source data. Regardless of this ability, it is highly recommended that you always paint at the lowest needed resolution to improve performance, memory and stability while working.
Use the Brush Settings gui to change how your brush paints in 3D and 2D. You can change the color, hardness, size and opacity. For a more custom brush, use the Texture brush setting which can be enabled by clicking the file icon in the middle of the Brush settings gui. This will allow you to choose a texture to use as the brush.
Brush types can be selected on the left of the gui.
Brush blend modes and 3D projection mode can be selected in the bottom left of the gui.
To open advanced brush settings, click the small arrow button at the button of the gui.
* Paint brush allows you to paint your brushes shape and color while using the Blend mode currently assigned.
* Eraser brush can be used to remove pixels from a layer.
* Fill bucket brush will flood the entire layer of an object with the current brush color.
* Flow brush will paint the current UV vector of the brush motion. This is useful for Shaders that use Flow maps/Bent normal maps to create unique powerful visuals.
Brush Colors -
* Primary color is the larger color square and is the color the brush will paint. Click on the color square to access the Color Selection gui.
* Secondary color is the smaller square which is the color available is you press the color swap button or the color swap hotkey (x).
* Color swatches can be clicked on to assign the color swatch to the Primary Color. You can assign the primary color to a color swatch by clicking the arrow icon above the color swatches.
* Color picker button is the 'dropper' icon and can be clicked to access the Color Picker gui.
* Color numbers can be modified to type in the exact 8 bit color you want. They are also useful for seeing what value the color picker has found in your image.
Custom Texture - To use your own texture as the brush shape, click on the file icon to enable custom texture. Select your texture by clicking on the 'find circle' to the right of the field. For the best results make sure your texture is black and white, has solid white around the outside edge for a few pixels, and has sRGB turned off in its import settings. Example textures can be found in the folder EditorPaint>BrushTextures.
Blend - By changing the blend mode of the brush you will change how it paints into the layer. Modes include: Normal, Additive, Multiply, Overlay, Screen.
Project - This will change how the brush projects its shape in 3D onto the mesh. Choices include: Normal (Uses the objects normal as the brush orientation.), Camera (Uses the Camera direction as the brush orientation.). Different modes provide different benefits depending on the type of object you are painting on.
Dynamic UV - Dynamic UV is our tech for painting on meshes without distortion and across UV seams. This feature only works in the 3D Paint gui. When this feature is turned off, a basic 2D painting method will be used instead which may show artifacts which Dynamic UV fixs.
Dynamic UV Bleed Size - When painting with Dynamic UV, EditorPaint will "bleed" your paint brush results outside of UV space by a few pixels. This value controls how far that bleed attempts to draw.
Show Cursor - Turns on/off the EditorPaint cursor visual.
Layers in a project are shared across all of the imported objects which is why we call them "Global Layers". This is done to simplify the interface so that all objects can always be painted on in the same way.
To create a new Layer, use the 'New' menu in the top right. You can create two types of layers, paint-able Layers and Simulation Layers. To create a paint-able Layer, select the Layer type you want from the list, otherwise go into the Simulation sub menu to select a Simulation layer of the type you want.
You can also copy the active layer to a different Layer type or you can Merge two layers together.
The types of Layers which will show up in a project depend upon which Shader the project was setup with. Every 2D texture type in a shader will show up as a Layer Type which you can create.
Each layer that you create will show up in its Layer Type and will be grouped with layers of the same type. Layers can not be moved between groups unless you use the Copy Active Layer feature, but layers can be moved up and down within their own group to change the way they render on objects.
Up/Down arrows - These two buttons are used to move the active layer up or down in the layer stack for their Layer Type. These buttons will only show up in a Layer Type has more than one layer.
'RGB' button - Activates the RGB part of a layer for painting into.
'A' button - Activates the Alpha part of a layer for painting into.
Active Layer - The Radio button on the left of a layer indicates which layer is the Active Layer. You can either select this button, or click on a layer name to make it the Active Layer for painting. The current Active Layer has a light blue color.
Layer Name - Each layer can be given a unique name to help organize your project. To edit the layer name, click on the name twice. To commit the name, press enter.
Opacity - Modify this number value to change the opacity of a layer.
Visibility - Turn off/on the visibility of a layer.
Blend mode - Change how a layer blends with the layers below it. Modes include: Normal, Additive, Multiply, Overlay, Screen.
Delete - Removes this layer on all objects and deletes the layer data. This can not be undone.
Simulation Type - The simulation type is which simulation logic will run on a layer if the 'run' button is pressed. Simulation types currently include: World Space Grid, World Space Noise, Directional Gradient, Positional Gradient, Ambient Occlusion, Mesh Thickness, Voronoi Noise (coming soon).
Settings - Displays the settings available for the selected Simulation Type. In simulations that support the 'GrowUV' check box, it will apply a GrowUV process after the simulation to bleed the pixels at the edge of uvs outwards. This is useful to help prevent visual artifacts when textures are used in realtime.
Run - Runs the active Simulation Type with the current settings values on all paint-able objects.
The 3D Paint section of the gui has specific features available at the top of the window.
Paint drop icon - Shows if Paint Mode is enabled or if a camera movement mode is enabled.
(You can also use the common unity keyboard buttons for moving the camera.)
Translate camera - Translate the camera left/right/up/down.
Rotate camera - Rotate the camera around its current pivot point. You can focus the pivot on a new object by moving the camera or by selecting the '3D' focus button for a mesh in the Objects gui.
Dolly camera - Translate the camera forward and backwards.
Home button - Moves the camera to frame all objects currently in the project. This is helpful if you need to reset the camera to a useful position.
Clock button - Turns on/off Animated Materials. When Animated Materials are on, it can cause increase perf which can affect painting on slower machines.
Cloud button - Turns the skydome visual on/off. When the skydome visual is off, it will show the default color specified in the Settings menu.
Light bulb - Shows the object with the lit material or the unlit material. When lighting is off and the unlit material is used, it will show the active layer as the texture used. This is useful to see your specific texture as you paint without it used by a complex shader.
Dash button - Minimizes the 3D Paint window to allow more space for the 2D Paint window.
The 2D Paint section of the gui has specific features available at the top of the window.
Copy - Copies the Active Layer for the Focused mesh into a temporary buffer so it can be pasted into another layer or mesh.
Copy Preview - A small preview of the current contents of the Copy buffer.
Paste - Pastes the current Copy buffer into the Active Layer for the Focused mesh. If the contents have a different resolution or Layer Type, EditorPaint will do its best to convert the image, but it may paste differently than expected if they are not compatible.
Action - A list of all Action shaders available in EditorPaint. These Actions can be run on the Active Layer of the currently focused mesh to create custom visual results. You can write your own Action shaders and place them in EditorPaint>Effects>Actions folder to use them in EditorPaint. Some special rules need to be followed to make it work correctly, but if you attempt to follow one of the existing shaders, it should be fairly easy.
The list of available Actions (seen in the image) is one of our fastest growing feature lists in EditorPaint. We have created new Actions almost weekly. Because of this, we will do our best to keep this list up to date, but it may be incomplete on any given day.
Edit - A list of Actions you can run which are more traditionally considered 'edits'. This includes things like translate, rotate, tile, flip, etc.
Paint drop icon - Shows if Paint Mode is enabled or if a Canvas movement mode is enabled.
(You can also use hotkeys zoom and move the Canvas. The Hotkeys list can be found at the top of this document.)
Translate canvas- Translate the Canvas left/right/up/down. You can only translate the Canvas if you have zoomed into the canvas.
Zoom canvas- Zooms in/out of the Canvas to allow you to better see and paint on small sections of your layer.
Home - Shows the entire layer and resets the zoom/translate values.
UV - Draws UV lines over your layer to help understand which parts of the image are used by your mesh. These lines are for preview only and will not be saved with your document. To see other meshes UVs, set the mesh as the Focused 2D object in the Objects gui.
Grid - Turns on a preview grid over your layer to help see how pixels align.
Dash button - Minimizes the 2D Paint window to allow more space for the 3D Paint window.
Text above your image - The text above your image is used to help you know which Layer Type is active, if you are painting in RGB or Alpha, and what the current Canvas resolution and Layer resolution are.
User Settings can be accessed from the Edit>Settings menu within the EditorPaint window.
Inside of this window you can change different exposed properties related to the EditorPaint window. We will attempt to continue to expose values to the User Settings as we improve EditorPaint.