====== Zbrush Pro tips ====== * assign hotkey to a brush * press ctrl+alt and click the brush, then release ctrl+alt, then set the "key combo" for it * once done, press the "key-combo" to activate the brush * standard brush, move brush, clay brush are good easy brushes * dynamesh is good at sub-div level 4 ====== ZScript and ZBrush Plugins ====== * ZScript is a script language for ZBrush automation, mainly on interface setting get and set, and button/slider based interface interaction. It is line by line action command based script, the function is limited to what ZBrush can do, like Javascript for Photoshop Actions. * Zscript is a text file ends with ".txt", by running it in ZScript menu > Load, it will compile a ".zsc" file, and you can put the ".zsc" file in ZBrush App/ZStartup/ZPlugs64 folder to let it load the script by default. * zscript cmd code reference: * http://docs.pixologic.com/user-guide/customizing-zbrush/zscripting/command-reference/ * video tutorial: * MadPonyInteractive: https://www.youtube.com/channel/UC_dWlm9jz7xc4wJQp05Nrag/videos * my ZScript for render current viewport and export jpg with name of current sub tool name. // 2019.11.14 - Ying - ZBrush Make subtool jpg at same folder. and pass file to bat file to handle publish process // note: it create a UI button in bottom of Tool menu [ISubpalette, "Tool:zAI Plugins"] [IButton,"Tool:zAI Plugins:Ying_ZB_DailyBPR2","Press to play this ZScript. ZScript can be aborted at anytime by pressing the esc key.", [ISet,Render:BPR Shadow:FStrength,1] [ISet,Render:BPR Shadow:GStrength,0.75] [ISet,Render:BPR Shadow:Rays,12] [ISet,Render:BPR Shadow:Rays,100] [ISet,Render:BPR Shadow:Angle,60] [ISet,Render:BPR Shadow:Res,8240] [ISet,Render:BPR Shadow:Blur,1] [ISet,Render:BPR Shadow:VDepth,1] [ISet,Render:BPR Shadow:LDepth,-5] [ISet,Render:BPR Shadow:Max Dist,10] [ISet,Render:BPR Shadow:DistFalloff,0.1] [IPress,Material:MatCap White Cavity] [VarDef,fileName,""] [VarSet,fileName,[StrMerge,[GetActiveToolPath],".jpg"]] [FileNameSetNext,fileName] [ISet,Render:BPR RenderPass:SPix,5] [IPress,Render:BPR RenderPass:Render Best Preview] // [IPress,Render:Render] [IPress,Document:Export] [Note,"Ying.AI Has Exported the Image for you.",, 3 ] [NoteBar, fileName] [VarSet,toolFolderPath,"R:\Pipeline\PyZBrush\SubToolJPGDaily"] [VarSet,folderExists,[FileExecute,"R:\Pipeline\PyZBrush\SubToolJPGDaily\ZFileUtils64.dll","FolderExists",#toolFolderPath]] [If,folderExists, [Note,"Daily Tool Folder exists.",,3] [ShellExecute, [StrMerge,"R:\Pipeline\PyZBrush\SubToolJPGDaily\zAImakeSubToolJPGDaily_exe.bat ",fileName]] , [Note,"Daily Tool Folder does not exist.",,3] ] ]/*End of ZScript*/ ** other common useful zscript code ** * get subtool name [VarDef,subtoolName,""] [VarSet,subtoolName,[IGetTitle,Tool:ItemInfo]] [VarSet,subtoolName,[StrExtract,subtoolName,0,[StrLength,subtoolName]-2]] * get last file browsing file name [VarDef,lastName,""] [VarSet,lastName,[FileNameGetLastUsed]] * message dialog // add code above [MessageOK, lastName, "Last Path"] // sub tool path [MessageOK, [GetActiveToolPath], "Active Tool Path"] * define a path holder [VarDef,filePath,""] [VarSet,filePath,"D:\z_sys\xTool\resZBrush\"] // set full path [VarSet,fileName,[StrMerge,filePath,subtoolName,".jpg"]] // set only name path, then it will use zscript path as parent path [VarSet,fileName,[StrMerge,subtoolName,".jpg"]]