Copy link to clipboard
Copied
I am producing a large volume of assets in Photoshop but want to essentially simulate a scenario where I am limited to 2 different types of brush, one 2B pencil and a particular eraser (all with their own specific colors!). This is to keep the handdrawn illustration consistent and my workflow more efficient. I am sorry if this sounds like a completely banal and newbie question but I wanted to see if there is something quicker than combining brush presets and the swatch panel. I know how to create a new brush but want to create a series of brushes where all the properties (opacity, color, size etc) are preset and locked.
I also wanted a breakout Brush UI Panel to make this easier to play with too. Almost like a virtual pencil case (but in a GUI kind of way) I look forward to your responses! And please don't laugh at me but I am certain this exists - I just can't work it out.
BTW: I am working with a Wacom Bamboo and a Windows 10 Laptop.
There are Brush Presets (as represented in the Brush Presets Panel) but there are also Tool Presets.
See »Create a tool preset« here:
That way you can include Flow and Opacity in a preset.
Copy link to clipboard
Copied
There are Brush Presets (as represented in the Brush Presets Panel) but there are also Tool Presets.
See »Create a tool preset« here:
That way you can include Flow and Opacity in a preset.
Copy link to clipboard
Copied
Thanks so much for your reply but does this also allow embedding colour and point size? Because I don't just want the sandwich, I want the whole damn buffet!
Copy link to clipboard
Copied
does this also allow embedding colour and point size?
It does (though I guess its pixel size rather than point size).
But I think you should simply test it yourself.
Copy link to clipboard
Copied
Brush Tools Presets can do that. Do not confuse Brush tool Presets with Brush Presets they are not the same thing. Brush TOOL presets can have all brush Attributes stored in them including Color. I feel most users do not include storing the color in most Brush TOOL presets. So when they select a Brush TOOL Presets the current color they are working with is not switch one the the can continue working on what the were. You might always want a to have a red pencil handy so you may have a have a brush tool red pencil preset. However you you always want to paint with the same red color. The Sets of Brush TOOL Preset I have downloaded from DeviantArt most Brush TOOL Presets do not have a color stored in. I have also written a Photoshop script the enable you to cycle through a set of TOOL presets with a shortcut.
/* =================================================================================
Cycling Forward and Backward through Sets of Tool Presets
=====================================================================================
2017 John J. McAssey (JJMack)
=====================================================================================
Naming Your Script so that it identify the tool and Presets Set will be helpful.
Copy this script to a new Name for each set of presets you want to cycle through.
Run that script via shortcut keys. Set two Shortcuts keys
F(n) Forward Modifier+F(n) Backward
There are three required parameters for the cycling function:
1.) Correct Photoshop Tools Name
2.) Presets Set file name the * part of the *.tpl file
The *.tpl file must reside in the scripts folder
3.) Array of preset names in your desired cycling order
=====================================================================================
Note: This script only deals with Tool Preset files .tpl for tools preset are easily
reset back to Adobe's defaults using the Preset manager. Tool presets may require
other Photoshop add-ons like brush .abr, patterns .pat, swatch .aco, etc files to
also be loaded this script will not load them this script will only load .tpl
files if there is a need too. You must add what your presets require to Photoshop
================================================================================== */
//@show include
//@include "cycleTool.jsx"
#target photoshop;
app.bringToFront();
// Required three parameters tool,Set,list
var tool = 'paintbrushTool'; // Photoshop Tool name your Presets set is for. Only one tool's presets
// This sample script presets were downloaded from DeviantArt brushes "The Sketch Arsenal" "the_sketch_arsenal_by_thatld.tpl""
// http://thatld.deviantart.com/art/The-Sketch-Arsenal-161678023 Download link on Top Right of the Page not the one on the bottom
var presetSet = 'the_sketch_arsenal_by_thatld'; // Presets set name *.tpl file need to be same folder as this Photoshop script.
var presetNames = [ // Preset names list start. Presets you want to cycle through. Set can have more.
'Color Brush - Flat',
'Color Brush - Magic Edge',
'Color Pencil - Hard',
'Color Pencil - Soft',
'Drawing Pencil - B Lead',
'Drawing Pencil - Blue Line',
'Drawing Pencil - H Lead',
'Linework Pen - Fine',
'Marker - Lower the Flow to Dry',
'Shading Brush - Pressure Hold',
'Shading Brush - Soft Texture',
'Shading Pencil - General',
'Shading Pencil - Hard',
'Shading Pencil - Soft',
'Sketch Pencil - H Lead',
'Sketch Pencil - The Ultimate!',
'Watercolor Brush - General'
]; // Presets names list end. Order the way you want to cycle through them
// End Required Parameters
cycleTool(tool,presetSet,presetNames); // Cycle Forward and Backward through tool presets set names
// End of Script
//=============================================================================================================================================//
/* =================================================================================
Cycling Forward and Backward through Sets of Tool Presets
=====================================================================================
2017 John J. McAssey (JJMack)
=====================================================================================
Naming Your Script so that it identify the tool and Presets Set will be helpful.
Copy this script to a new Name for each set of presets you want to cycle through.
Run that script via shortcut keys. Set two Shortcuts keys
F(n) Forward Modifier+F(n) Backward
There are three required parameters for the cycling function:
1.) Correct Photoshop Tools Name
2.) Presets Set file name the * part of the *.tpl file
The *.tpl file must reside in the scripts folder
3.) Array of preset names in your desired cycling order
=====================================================================================
Note: This script only deals with Tool Preset files .tpl for tools preset are easily
reset back to Adobe's defaults using the Preset manager. Tool presets may require
other Photoshop add-ons like brush .abr, patterns .pat, swatch .aco, etc files to
also be loaded this script will not load them this script will only load .tpl
files if there is a need too. You must add what your presets require to Photoshop
================================================================================== */
// =================================================== Main function ======================================================== //
function cycleTool(toolName,toolPresetSet,toolPresetNames){ // alert("CycleTool");
if (currentToolName()!=toolName) { // if user is switching tools try to else switch tool preset
try {selectTool(toolName);} // Insure the tool is select so preset can be selected
catch(e) {alert("Unable to Select the Tool "+toolName); return;} // Tool name wrong or unavailable
if (app.toolSupportsBrushes(app.currentTool)) app.runMenuItem(charIDToTypeID(('TglB'))); //Toggle Brush Palette
return; // Just switch to the tools current setting
}
var desc = new ActionDescriptor(); // Set up Photoshop to remember variables
try {var desc = app.getCustomOptions('Cycle'+toolPresetSet);} // Try to get CustomOption for cycling this tool presets set
catch(e){ // Each Photoshop session this should fail first time reset
try {selectToolPreset(toolPresetNames[0]);} // Insure Tool Presets Set has been loaded
catch(e) { // Will fail if tools presets set is not loaded
if (loadToolPresetSet(toolPresetSet)) { // Load Tool presets set
try {selectToolPreset(toolPresetNames[0]);} // Load sets first preset
catch(e) {alert("Was unable to Select the Tools Preset "+toolPresetNames[0]); return;} // Failed to select preset
}
else {alert("Was unable to load Tools Presets Set "+toolPresetSet); return;} // Failed to load tools presets set
}
desc.putInteger(0,0); // This line save the variable while Photoshop is open,
app.putCustomOptions('Cycle'+toolPresetSet,desc,false ); // Initialize presets set CustomOption for cycling
desc = app.getCustomOptions('Cycle'+toolPresetSet); // Get CustomOption Cycle starting point
}
var presetNumber = desc.getInteger(0); // Get the preset index
if (ScriptUI.environment.keyboardState.ctrlKey||ScriptUI.environment.keyboardState.altKey||
ScriptUI.environment.keyboardState.shiftKey) { // Previous preset if Ctrl or Alt or Shift key is down
presetNumber = presetNumber-2; // Back up two preset for it will be bumped one
if (presetNumber<0){presetNumber=toolPresetNames.length-1;} // Set preset index to the end of the list
}
if (presetNumber<toolPresetNames.length){desc.putInteger(0,presetNumber+1);} // Update preset index number
else {presetNumber=0; desc.putInteger(0,1);} // Reset preset index pointer to the begging of the list
app.putCustomOptions('Cycle'+toolPresetSet,desc,false); // Put Update the Custom option
try {selectToolPreset(toolPresetNames[presetNumber]);} // Set tool with preset
catch(e) {
if (loadToolPresetSet(toolPresetSet)) { // Load Tool presets set Tool presets may have reset
try {selectToolPreset(toolPresetNames[presetNumber]);} // Set tool with preset
catch(e) {alert("Was unable to Select the Tools Preset "+toolPresetNames[presetNumber]); return;} // Failed to select
}
else {alert("Was unable to load Tools Presets Set "+toolPresetSet); return;} // Failed to load tools presets set
}
};
// =================================================== Helper functions ===================================================== //
function selectTool(tool) {
var desc9 = new ActionDescriptor();
var ref7 = new ActionReference();
ref7.putClass( app.stringIDToTypeID(tool) );
desc9.putReference( app.charIDToTypeID('null'), ref7 );
executeAction( app.charIDToTypeID('slct'), desc9, DialogModes.NO );
};
function selectToolPreset(PresetName) {
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putName( stringIDToTypeID( "toolPreset" ), PresetName );
desc.putReference( charIDToTypeID( "null" ), ref );
executeAction( charIDToTypeID( "slct" ), desc, DialogModes.NO );
}
function loadToolPresetSet(SetName) {
returncode = true;
var scriptLocation = String(findScript());
var path = scriptLocation.substr(0, scriptLocation.lastIndexOf("/") + 1 ) ;
var SetFile = new File(path + SetName + ".tpl"); // Requited to be in the script's folder
if (!SetFile.exists) { returncode = false; }
else {
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putProperty( charIDToTypeID( "Prpr" ), stringIDToTypeID( "toolPreset" ));
ref.putEnumerated( charIDToTypeID( "capp" ), charIDToTypeID( "Ordn" ), charIDToTypeID( "Trgt" ) );
desc.putReference( charIDToTypeID( "null" ), ref );
desc.putPath( charIDToTypeID( "T " ), new File( SetFile ) );
desc.putBoolean( charIDToTypeID( "Appe" ), true );
try {executeAction( charIDToTypeID( "setd" ), desc, DialogModes.NO );}
catch(e) { returncode = false; }
}
return returncode ;
}
function findScript() {// Find the location where this script resides
var where = "";
try { FORCEERROR = FORCERRROR;}
catch(err) { where = File(err.fileName);}
return where ;
}
function currentToolName() {
var ref = new ActionReference();
ref.putProperty(stringIDToTypeID("property"), stringIDToTypeID("tool"));
ref.putEnumerated( charIDToTypeID("capp"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") );
var applicationDesc = executeActionGet(ref);
//alert(typeIDToStringID(applicationDesc.getEnumerationType(stringIDToTypeID("tool"))));
return(typeIDToStringID(applicationDesc.getEnumerationType(stringIDToTypeID("tool"))));
}
/* Photoshop tool names
'moveTool' 'cloneStampTool' 'typeCreateOrEditTool' 'artboardTool'
'marqueeRectTool' 'patternStampTool' 'typeVerticalCreateOrEditTool' 'perspectiveCropTool'
'marqueeEllipTool' 'historyBrushTool' 'typeCreateMaskTool' 'eyedropperTool'
'marqueeSingleRowTool' 'artBrushTool' 'typeVerticalCreateMaskTool' '3DMaterialSelectTool'
'marqueeSingleColumnTool' 'eraserTool' 'pathComponentSelectTool'
'lassoTool' 'backgroundEraserTool' 'directSelectTool'
'polySelTool' 'magicEraserTool' 'rectangleTool'
'magneticLassoTool' 'gradientTool' 'roundedRectangleTool'
'quickSelectTool' 'bucketTool' 'ellipseTool'
'magicWandTool' 'blurTool' 'polygonTool'
'cropTool' 'sharpenTool' 'lineTool'
'sliceTool' 'smudgeTool' 'customShapeTool'
'sliceSelectTool' 'dodgeTool' 'textAnnotTool'
'spotHealingBrushTool' 'burnInTool' 'soundAnnotTool'
'magicStampTool' 'saturationTool' 'eyedropperTool'
'patchSelection' 'penTool' 'colorSamplerTool'
'redEyeTool' 'freeformPenTool' 'rulerTool'
'paintbrushTool' 'addKnotTool' 'handTool'
'pencilTool' 'deleteKnotTool' 'zoomTool'
'colorReplacementBrushTool' 'convertKnotTool' 'wetBrushTool'
*/
Copy link to clipboard
Copied
Thank you JJMack​ and c.pfaffenbichler​ this is perfect and that script will come in mighty handy.