Home Technical Talk

FJTools - ZBrush plugin

2
greentooth
Offline / Send Message
Pinned
floon greentooth


Hey fellow Polycounters!
FJTools is a Plugin for ZBrush, that will help you to organise your Subtools and speed up your workflow in general. It does so by automating repetitive tasks, or solving them intuitively.
You can find the plugin on ArtStation, Gumroad and Cubebrush.

Disclaimer:

The plugin is designed for ZBrush 2019/2020/2021/2022/2023 and was thoroughly tested on a Windows machine. Mac support was verified as well, but as I do not own a Mac, I could not test it myself.
Previous versions of ZBrush are NOT supported.





Feature breakdown:

All features are explained in a mini video series, which can be found on the plugins’ ArtStation page or YouTube!


Installation:

To install FJTools simply copy the "FJTools_1_5.zsc" file, along with the "FJTools_1_5_Data"-folder into the Zplugs64-folder of your ZBrush 2019/2020/2021/2022/2023 installation. The path should look similar to this:

...\Pixologic\ZBrush 2019[2020][2021][2022]\ZStartup\ZPlugs64

...\Maxon ZBrush 2023\ZStartup\ZPlugs64

Done!


Upgrade:
Should you be upgrading from a previous version, make sure to delete the old .zsc file AND the corresponding data folder first. After that just follow the installation above.
Also be sure to check out thehttps://youtu.be/0ZDVoJCECyY FJTools 1.5 — Feature Highlight video, to see what has changed!



 Special thanks for helping to find a nasty bug:


Replies

  • floon
    Options
    Offline / Send Message
    floon greentooth
    Version 1.5 is live now!

    I recorded a short video featuring some of the highlights:

    https://www.youtube.com/watch?v=0ZDVoJCECyY
    Be sure to check out ArtStation, Gumroad or Cubebrush, if you are interessted.
  • commonormal
    Options
    Offline / Send Message
    Hello all   works fine and nice/ But i have a big trouble when use  it with another ZAdjustor (2.1 ver)  plugin.  After any button  FjTools Zbrush (2020.1.4) don't see any input from keyboard or mouse or do it but in ugly way - when  press "A" they read as "alt+S" and all in this way.  And cursor is hidden. Debug after this attached.
  • floon
    Options
    Offline / Send Message
    floon greentooth
    I am very sorry to hear about your issues. I installed the plugin as well and could reproduce the behavior you were describing.
    From what I can tell, this is an issue with ZAdjustor though. I ran into the exact same issue when using Ctrl+v as the ZAdjustor Hotkey without running any other plugin.
    I know this doesn't really help you, so I fear you might have to decide which plugin is more important for your workflow. Sorry that I don't have better news for you :/.
    Have you tried to get in touch with the creator of ZAdjustor yet?
  • SZS
    Options
    Offline / Send Message
    SZS polycounter lvl 3
    Hi there... Love the plugin! Osom job.

    I found that the QMask does no work... wonder why. Using 2021.1.2 Zbrush.
  • floon
    Options
    Offline / Send Message
    floon greentooth
    @SZS happy to hear that you like the plugin :). I'll get in touch with you via PM about your issue
  • torba
    Options
    Offline / Send Message
    torba polycounter lvl 5
    I'm just popping in to thank you for the QMerge functionality @floon
    It's an awesome time-saver, thanks!
  • floon
    Options
    Offline / Send Message
    floon greentooth
    @torba Happy to hear that you can still put it to good use :)

    I also got a report about an issue with coloring in 2021, so I'll release an hotfix soon
  • floon
    Options
    Offline / Send Message
    floon greentooth
    I just released a small hotfix for FJTools!


    Changelog:
    • Fixed an issue that occurred in ZBrush 2021 when colorizing meshes that had layers in rec mode. Shout out to Sean Forsyth (https://www.artstation.com/sforsyth), who made me aware of this!
    • Added a possibility to adjust the ZRemesher settings, which are used in EasyExtract/EasyRebuild. Thanks to James K (https://www.artstation.com/jamesk1) who suggested this!
    • Fixed a bug that caused issues when using EasyExtract/EasyRebuild on meshes with layers
    • Improved the EasyExtract function to be more precise when used with thin masks
  • jekanev
    Options
    Offline / Send Message
    jekanev polycounter lvl 2
    Hello all   works fine and nice/ But i have a big trouble when use  it with another ZAdjustor (2.1 ver)  plugin.  After any button  FjTools Zbrush (2020.1.4) don't see any input from keyboard or mouse or do it but in ugly way - when  press "A" they read as "alt+S" and all in this way.  And cursor is hidden. Debug after this attached.

    Hi i have same issue. i fix this issue with running any macro after using fjtools then i can resize brush with ZAdjustor and have no issues. its bit tricky don't forgot click any simple macro after fjtools  but work for me al last.   
  • floon
    Options
    Offline / Send Message
    floon greentooth
    I just pushed a mini patch to 1.5.2, that fixed an issue that occurred in ZBrush 2021.5+ where the color features caused issues when used on Subtools with active layers!
  • floon
    Options
    Offline / Send Message
    floon greentooth
    Time for another small patch!

    1.5.3 Changelog:
    • Fixed an issue that occurred in ZBrush 2021.7+ where the color features caused issues when used on Subtools with active layers.
    • Added Hide/Show All buttons to the visibility section
    • Added a Clear Mask function to the managing section

    Unfortunately did not manage to solve the issue with the ZAdjustor plugin.
  • Elithenia
    Options
    Offline / Send Message
    Elithenia polycounter
  • floon
    Options
    Offline / Send Message
    floon greentooth
    Just a small patch to make everything work again in 2022 :)

    1.5.4 Changelog:
    • Fixed an issue that occurred in ZBrush 2022 where the color features caused issues when used on Subtools with active layers.
  • torba
    Options
    Offline / Send Message
    torba polycounter lvl 5
    Thank you Flo!
    On my end the updater still thinks there's a newer version after installing 1.5.4 . It's not an issue for me at all, just thought you might want to know about it.
    Thanks again for your awesome plugin;
    cheers
  • floon
    Options
    Offline / Send Message
    floon greentooth

    Ahh right, thanks for letting me know @torba!

  • tsukumo
    Options
    Offline / Send Message


    Nice to meet you.

    Thank you very much for developing this wonderful plugin.

    Thanks to this plugin, I am able to work much more efficiently.

    I have one problem: I am using a 3D mouse called spacemouse, which is sold by a manufacturer called 3dconnexion.

    When I use ZBrush with FJtools installed and try to move the camera of the spacemouse together with the viewpoint movement of a normal mouse, a bug like the one shown in the video (https://drive.google.com/drive/folders/1DtJfNwCNPEZq3RkDw50zBL3kqWRCwolp?usp=share_link) occurs.

    I get a bug like the one shown in the video (https://drive.google.com/drive/folders/1DtJfNwCNPEZq3RkDw50zBL3kqWRCwolp?usp=share_link).

    It does not happen every time, but it happens when using certain functions of FJtools. For example, the Quickselect function and the Modeling function.

    As a first aid, I use Clean tool master to delete the undo history and the bug disappears, but it comes back when I use the specific function again.

    This bug happened a long time ago when 3Dmouse was first officially available in ZBrush, regardless of FJtools, and was fixed in a subsequent ZBrush update.

    I think the problem is on the ZBrush or 3Dmouse side, but if you have any suggestions on how to deal with it, I would appreciate it.

    I deeply appreciate your development.

  • floon
    Options
    Offline / Send Message
    floon greentooth

    Hey  Tsukumo!

    Thanks a lot for reaching out and your kind words! I'm currently out of town, but will take a look at your issue once I'm back.

    It's also great that you recorded a video and I hope I'll be able to fix your issue quickly :)!

  • floon
    Options
    Offline / Send Message
    floon greentooth

    Hey folks!

    I just released a patch of FJTools to version 1.5.5. The update includes:

    • ZBrush 2023 support
    • A fix that should improve competability with 3D Mouses, as well as other Plugins
    • Improved Startup time in rare cases
    • Fixed some typos

    Hope you can still put the plugin to good use :)! If you find any new issues, or have ideas for new features, please let me know!

  • floon
    Options
    Offline / Send Message
    floon greentooth
    Hi y'all!
    I just released version 1.5.6 of FJTools!
    This is what changed:
    • Patched the plugin to be compatible with ZBrush 2023.2
    • added new Bake Layers feature, that allows to batch bake layers of present Subtools
    • Fixed bug in the log file creation
    • Updated to new ZFileUtils.dll
  • Pain
    Options
    Offline / Send Message
    Pain polycounter lvl 9
    @floon: Just wanna say thank you so much for your amazing plugin, I wish I could have known this plugin earlier, it saves my time a lot. You are so amazing, dude! 
  • floon
    Options
    Offline / Send Message
    floon greentooth
    Thanks man! I'm really happy to hear, that you can put the plugin to good use :)
  • shockobonss
    Options
    Offline / Send Message
    @floonHey, I just wanted to say that the plugin is great, I love it and thanks for it. But unfortunately I have one problem. In the modeling when tab when I want use Insert custom mesh for imm brushes + mesh per island it's not working. No matter what imm brush I use it always gives me the same result: gear. In fact there is as many gears as mask islands but it is always the same gear, nothing else :/
  • floon
    Options
    Offline / Send Message
    floon greentooth
    Hey @shockobonss!
    I'm sorry you are experiencing issues with the plugin :/
    I did a quick test, but was not able to reproduce the problem you described.
    - Which version of ZBrush and which version of the plugin are you using? (You can find the version of FJtools by hovering over the Title Icon)
    - Did I do anything different in my setup then you did?




  • shockobonss
    Options
    Offline / Send Message
    Hey. @floon
    I have got the newest possible version of FJTools, 1.5.6 and 2022.0.8 (latest for 2022 year). I tried every other combination.. with brush size turned on, diffrent imm brushes, etc but nothing helps... I noticed that gear name is FJIMM_1. And with every next try it gets FJIMM_2...3 and etc. I dont know if it is a clue. Setup is the same.

  • shockobonss
    Options
    Offline / Send Message
    ok, I found the solution. This may sound ridiculous because I don't know what connection it could have. On the "2" key I had a shortcut
    assigned to the clay buildup brush. When I removed it, the problem disappeared and all imm brushes work. Do you know how to get around this problem? I want to leave this shortcut because it is very convenient for sculpting
    Edit: I tried assign there any other brush and this problem still appears so it must be a problem just in this key "2". I can't have there any shortcut.
  • floon
    Options
    Offline / Send Message
    floon greentooth
    Ah!
    That was super helpful. Thanks for investigating!
    I was able to reproduce the issue and found the code that's responsible. I'll try to find a solution and hope to get back to you next week!
  • floon
    Options
    Offline / Send Message
    floon greentooth
    I actually might have found a workaround. Could you overwrite the "FJTools_1_5.zsc" in your ZPlugs64 folder with the attached file in the .zip and let me know if this works for you?

  • shockobonss
    Options
    Offline / Send Message
    Wow, it really works! Thanks for your all effort and that fast help. Wish you all the best <3
  • floon
    Options
    Offline / Send Message
    floon greentooth
    Awesome! Really happy to hear. Unfortunatly this is just a bandaid and you might actually experience triggers for hotkeys "1" & "2" quite regularly when working with my plugin. In other cases this should not cause too much issues with your setup.
    But I'd advise not to bind "Delete All" to either "1" or "2" :P
  • lcq784848515
    Options
    Offline / Send Message

    Hello, your FJTools plugin is really great!

    But when we were using batch naming, we thought it would be nice if we could specify a color for batch naming, so what you see is what you get.

    Example:

    I have 50 subtools,

    If I need 5 create folders to batch name it means I need to drag and drop 50 times into these 5 folders.

    And if I match these 5 folders to the colors, then I just need to set

    1.red=(name1)

    2.blue=(name2)

    3.green=(name3)

    4.black=(name4)

    5.whtie=(name5)

    Then by clicking on 50 subtools to give them these 5 colors, you can complete the batch naming.

    red=(name1) 1,2,3,4,5,6,7,8

    blue=(name2) 1,2,3,4,5,6,7,8

    ...

    Isn't that easier?!

  • floon
    Options
    Offline / Send Message
    floon greentooth
    Hi!
    Thanks a lot for reaching out and the great proposal :)! I'm a big fan of visual guidance, so I think it's a great idea.
    While it might actually be possible from a technical perspective, the script would be fairly slow and the association between name and color would be very challenging from an UX perspective.

    Therefore I want to propose an alternative method, that you can already try with everything the plugin (and default ZBrush features) have to offer:



    ZBrush allows you to quickly setup folders by utilizing the multiselect feature. It's part of the transform gizmo and you can see it in action here:
    https://www.youtube.com/watch?v=o7Y7vwkDXzY

    While having multiple Subtools selected this way, you can then quickly create a new Folder by pressing Ctrl+F!
    Once you are done you can then use FJTools to rename all your Subtools and while you are at it you can then give them a color to quickly identify the groups.

    Would that work for you? Or did I miss your point?
  • lcq784848515
    Options
    Offline / Send Message
    floon said:
    Hi!
    Thanks a lot for reaching out and the great proposal :)! I'm a big fan of visual guidance, so I think it's a great idea.
    While it might actually be possible from a technical perspective, the script would be fairly slow and the association between name and color would be very challenging from an UX perspective.

    Therefore I want to propose an alternative method, that you can already try with everything the plugin (and default ZBrush features) have to offer:



    ZBrush allows you to quickly setup folders by utilizing the multiselect feature. It's part of the transform gizmo and you can see it in action here:
    https://www.youtube.com/watch?v=o7Y7vwkDXzY

    While having multiple Subtools selected this way, you can then quickly create a new Folder by pressing Ctrl+F!
    Once you are done you can then use FJTools to rename all your Subtools and while you are at it you can then give them a color to quickly identify the groups.

    Would that work for you? Or did I miss your point?
    Thank you very much for your reply!! I am so excited!!



    I tried this, but you create folders by selecting multiple subtools after you have already colored them.



    I have tried your plugin, it seems that it does not support color giving when multiple subtools are Selected, because after I have selected several subtools, clicking color: Selected in your plugin still only works for a single selected object.



    Therefore, I selected 5 subtools to give a red color to facilitate my observation. I could not use FJtools to give color when I selected 5 subtools.

    Because I can only select these subtools by pressing ctrl+F to create a folder, and then giving them a red color based on the overall folder.



    The downside of this is that if I want to choose 5 subtools and I choose 6 subtools, I won't find out until after I've created the folder and colored them all in red. I have to move the wrong subtool out of this folder and give it another color to avoid confusing it with the correct five reds.



    Therefore, I hope that the color step can be selected to give the color of the whole folder before creating the folder, so that I can correct the error in time! Instead of creating a folder and then modifying it!

  • floon
    Options
    Offline / Send Message
    floon greentooth
    You are absolutely correct!
    Renaming/Coloring does unfortunately not work with the multi select feature, as you already noticed.
    What you can use the ZBrush feature for though is to quickly create folders, which you then can use for the different FJTools features. This way you can "save" a selection in a folder and I would advise this workflow if you want to repeat actions of the same set of Subtools!


    If you only want to do an action a single time, there is another feature of the plugin I want to
     highlight :). It's called QPick and also is a "Quickselect" feature. Therefore you need to bind a hotkey to the big QuickSelect button and can use all associated features by hovering over the meshes and pressing the assigned hotkey.

    (I talk a bit more about the feature in this video: https://youtu.be/4PpNq5CMEI8?si=jRKlMsECHoUtyG6p&amp;t=70)


    Below you can see, how you can use QPick alternativly to Create Folders/tint, or rename your Subtools:

    Is this more what you are looking for?


  • lcq784848515
    Options
    Offline / Send Message
    Thank you very much for your explanation, I will try this feature.



    In addition, I also want to write the Zbrush plugin by myself. I have python foundation, but I don't know how to write the Zbrush plugin. Do you have any learning materials?



    I also wanted to create incredible tool plug-ins like FJtools.
  • floon
    Options
    Offline / Send Message
    floon greentooth
    Way to go :D!
    I'm sure if you have general understanding of Python, you should have no issues creating your own plugin! I learned everything I know, from:


    Other then that, I would recommand to use Visual Studio Code (https://code.visualstudio.com/), because there you can add ZScript language support
    (https://marketplace.visualstudio.com/items?itemName=ouelletjonathan.zscript&ssr=false#review-details) which helps A LOT.


    Below I also attached a super basic setup which you can use as a starter to play around. 
    Just drop it in your ...ZBrush 2022\ZStartup\ZPlugs64 folder and load it from within ZBrush via Zscript>Load. 
    Then the a "MyFirstPlugin" category will appear in your ZPlugin tray :)
    You can then edit the txt file and reload the script via Zscript>Reload to see if your changes work.


    You can of course PM me here or on Artstation if you hit a Roadblock!
  • lcq784848515
    Options
    Offline / Send Message
    Thank you so much!

    I will study hard, if I do not understand will contact you immediately!

    Thank you for your selflessness and generosity!
  • shockobonss
    Hey, I have a problem with this 3 buttons. None of them working for me, is this a bug ?
  • floon
    Options
    Offline / Send Message
    floon greentooth
    Thanks for reporting the issue @shockobonss! Will be fixed with the next update :)
  • floon
    Options
    Offline / Send Message
    floon greentooth
    I just released the version 1.5.7!
    • Patched the plugin to be compatible with ZBrush 2024.0.1
    • Fixed an issues that caused errors on IOS
    • Fixed Hide All/Show All/ Invert Visibility in the Quick Menu

  • torba
    Options
    Offline / Send Message
    torba polycounter lvl 5
    Hi Jonas,
    I have a set of features I would like to request =)  by which I mean I would love to ask you if you'd consider adding these to your already excellent plugin.

    The first two seem more simple to achieve from my layman point of view. The third seems more complicated but would get me closer to automating a tedious part of my workflow.

    A. New button in the color section (maybe)
    for the chosen targets - "Paste Polygroup AND use the PG color to colorize subtool"
    -This would require a "copy Polygroup" button
    -an interesting option would be storing multiple Polygroups, each under a button and being able to switch between them

    B. New option for quick action:  "Paste Polygroup and colorize to PG color"
    (it's basically the same as #1 just for the quick action functionality)


    C. Assign random Polygroups to chosen* subtools:
    -*chosen as in qpick, visible, folder, etc.
    -limit number of Polygroups to choose from to X (like max 6 different Polygroups)
    This could be related to the stored Polygroups but could also be separate, random Polygroups, just limited to a set number of them.
    -If the choice of which subtool is colorized with which one of the Polygroups had some kind of randomness to it, it should be possible to repeatedly use this function and get a different result each time.


    Option C is the closest to what I'd imagine.

    A little explainer.
    What I need it for:
    An obj in which all elements have a  more or less random material ID assigned (ie Polygroup)

    There are three caveats:
    -There should be ~ 7-8 Polygroups in total across the entire obj, 2 of which I'd assign manually every time anyway. This leaves 5-6 Polygroups left that could be applied randomly.
    - second is that sometimes the Polygroups should stretch over multiple geometry shells - if I make a sword out of multiple elements, I'd tend to make the entire sword a single Polygroup. This is why I use entire subtools for assigning PGs.
    - Last caveat is that the Polygroups should not form too many clusters. When I manually assign them I make sure they're spread out more or less evenly over the sculpt.


    How I do it currently:
    1. I keep the sculpt spread over small subtools, not merged
    2. I choose a color
    3. I use qpick to select some subtools "here and there" trying not to choose subtools that overlap.
    It is not critical that they don't intersect or are not in contact at all, but it's better if they're spread out.
    4. I use Colorize by qselect
    5 - repeat 2 to 4
    6 - once the entire thing is colorized I can qpick all elements of one color
    7 - Create a folder out of qpicked elements and hide it
    8 - repeat 6 to 7 as many time as there are colors
    9 - Merge each of the folders
    10 - apply polygroup to each of the merged subtools
    11 - merge all polygrouped subtools into a single subtool that contains all parts and is more less evenly devided into 7-8 PGs
    phew

    I'm trying to think of a way to simplify this with macros but I'm coming up short.

    If you could integrate #1 or #2 into FJTools it would already speed things up for me.
    The problem with Polygroups is they're not visible most of the time, so to make sure the spread is even I first colorize the subtools.


    I realize this is a big ask and I don't feel entitled to any of this. If you feel you could add any of these functions I'd gladly help test it of course!
    cheers
  • floon
    Options
    Offline / Send Message
    floon greentooth
    Hey Torba!
    Thanks a lot for reaching out, I’m always interested to hear about new ideas for the plugin and I’ll absolutely investigate if there is something that can be done about the features you asked for!

    The biggest issue I see is that there is no feature of ZBrush (I know of) that I could make use of to copy/paste/limit how Polygroups are generated. For all features within FJTools I use either
    Polygroups>Group Visible or Polygroups>Auto Group.
    Therefore I can't tell ZBrush to generate a “red, a blue and a green one”, neither can I ask for “only use 5 groups max”. At least not out of the box, but I will investigate!

    A small recommendation for your existing workflow. Instead of using QPick to color your Subtools you could also make use of the combination of “QColor, UserColor mode, and sampling colors with the default C hotkey”
    (like I showcase here: https://youtu.be/0ZDVoJCECyY?si=5oV8N8uXqJKQBM28&amp;t=60)

    Would you mind explaining to me what you will use these 7-8 Polygroups for eventually? iirc you are working on miniatures, so I assume this is for your 3D printing pipeline?
    I’m just asking if you e.g. would use them in Substance/Adobe Painter to bake ID maps, there might be other options as well!


  • torba
    Options
    Offline / Send Message
    torba polycounter lvl 5
    Hi Florian,
    Thanks for your reply.
    Instead of using QPick to color your Subtools you could also make use of the combination of “QColor, UserColor mode, and sampling colors with the default C hotkey”
    I do, on occasion, I just thought my post was already too long to mention it.

    The biggest issue I see is that there is no feature of ZBrush (I know of) that I could make use of to copy/paste/limit how Polygroups are generated.

    Oh, that's a pity. I was hoping ZModeler's pick and use PG would be useful :(
    Anyway even without storing particular polygroups, just being able to "spread" a set number of PGs over all subtools would be great.
    I thought it would happen by merging a number of subtools, Polygrouping and colorizing them, and then splitting back.
    The splitting back would be the most problematic, right?
    Transpose master somehow manages it, but it doesn't keep PGs: if you change them in the combined version, they're not transferred to the original subtools.

    So if I'm aiming too high:
    -merging chosen subtools into a set number of subtools, Polygrouping them and colorizing them in one go... would that be possible?
    -and if that's not possible: colorizing chosen subtools to a set number of colors more or less randomly.

    I realize I'm asking for incredibly specific functionality that probably few people would use (well, one for sure 😁 )

    Would you mind explaining to me what you will use these 7-8 Polygroups for eventually?
    The polygroups or rather material IDs in the obj file are a requirement of the client. Since their printers go through a ton of files they ask for this so that they can quickly and easily isolate parts of the sculpt in their software.
    As to why 7-8... they ask for a few, not too many - I imagine they get a list of material IDs and too many would make a long list. I do 7-8 because it seems to fit most sculpts without too much overlapping.

    cheers
  • floon
    Options
    Offline / Send Message
    floon greentooth
    Ah the ZModeler angle is actually an interessting one! I will have to experiment a bit with that, but that's a great lead actually.
    I'm not 100% convinced this would be a great fit for the plugin, but worst case I can do a small custom thing for you :)!

    Limiting on the number of colors the randomized function on the other hand could would make sense for a larger audience though. I'll have to think about that one as well.

    Also thanks for clearing up the purpose! If that's just a requirement by the pipeline, there is nothing we can do :D
  • torba
    Options
    Offline / Send Message
    torba polycounter lvl 5
    Hi Florian,
    I'm not 100% convinced this would be a great fit for the plugin, but worst case I can do a small custom thing for you :) !
    No way! That would be awesome! 🤩

    Thanks so much for looking into this.
    I would hope other users would benefit from at least a part of this.

    cheers
2
Sign In or Register to comment.