5 Replies Latest reply on Mar 1, 2017 8:55 AM by ari.kuchar

    Creating brush presets that include opacity, color and size

    ari.kuchar Level 1

      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.

        • 1. Re: Creating brush presets that include opacity, color and size
          c.pfaffenbichler Level 9

          There are Brush Presets (as represented in the Brush Presets Panel) but there are also Tool Presets.

          See »Create a tool preset« here:

          Use Photoshop tools

          That way you can include Flow and Opacity in a preset.

          • 2. Re: Creating brush presets that include opacity, color and size
            ari.kuchar Level 1

            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!

            • 3. Re: Creating brush presets that include opacity, color and size
              c.pfaffenbichler Level 9
              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.

              • 4. Re: Creating brush presets that include opacity, color and size
                JJMack Most Valuable Participant

                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' 
                */
                
                1 person found this helpful
                • 5. Re: Creating brush presets that include opacity, color and size
                  ari.kuchar Level 1

                  Thank you JJMack and c.pfaffenbichler this is perfect and that script will come in mighty handy.