Hello everyone!
Mouse Smart Mask is a new plugin for ZBrush that allows you to create intelligent masks directly under the cursor based on PolyGroups. It also supports saving and restoring PolyGroups — a powerful feature for managing group variations or recovering lost groups during sculpting and scan cleanup workflows.
Originally, this was an internal macro that my team has been using since 2022. Over several improved versions, Mouse Smart Mask has become one of the essential tools in our daily pipeline.
While working with my team, I noticed that many artists had to go through a long series of manual steps just to mask a specific area. With some ZScript knowledge I taught myself in 2019, I developed Mouse Smart Mask to reduce all that complexity into a single hotkey press.
Additionally, when working on blendshapes for the Face Neutral mesh in MetaHuman, the PolyGroups you see in the video are part of a standard group system I’ve built over the years.
This system ensures the best edge loop flow for facial production, especially around sensitive areas like the eyelids, lips, and cheeks. Maintaining these PolyGroups makes sculpting, masking, and managing blendshapes much more accurate and stable.
I’ve postponed releasing this plugin many times, but I now truly believe that many artists out there need it.
==============================
Mouse Smart Mask – ZBrush Plugin
==============================
🔹 INTRODUCTION:
Mouse Smart Mask is a plugin that enables intelligent masking in ZBrush using mouse position and custom hotkeys.
The plugin allows you to mask the PolyGroup under the cursor or the area between two adjacent groups quickly—no manual selection required.
🔹 MAIN FEATURES:
• [Smart_Group] Button: Smart masking based on cursor location
– Hover the cursor over the desired area and press the hotkey to mask.
– If the cursor is between two adjacent PolyGroups:
➜ First press will mask the boundary region
➜ Second press expands the mask between the two groups.
– If the cursor is over a single PolyGroup:
➜ Press cycles between inner mask, outer area mask, and expanded mask blending out from the group.
• [Shell_Group] Button:
– Hover the cursor and press the hotkey
– Adds a new mask based on the PolyGroup under the cursor, **without clearing the existing mask.**
– Useful for meshes that contain multiple elements in a single object.
• 24 Group Slots (G1 to G24): Each slot stores PolyGroup data including:
– Custom name
– Subdiv level (optional)
– Preview image
– Camera transform
• [View All PolyGroup Icons]: Quickly display all saved group previews
• [Doc IC] Slider: Adjust document size used for preview capture
• [Save Group At Subdiv] ISwitch: Enable this to save the group at the **current** subdiv level.
➜ If off, groups will always be saved at the **lowest** subdiv.
🔹 QUICK START GUIDE:
• Use Ctrl + Alt + Click + a single key (e.g. 1, 2, 3...) to assign a hotkey.
• Avoid using key combinations like Ctrl+1 or Shift+2 because ZBrush requires releasing **both keys simultaneously** for the second press, which may result in errors.
• Press [SAVE_GROUP] to save the current PolyGroup into the selected slot (G1–G24).
• Press [LOAD_GROUP] to restore the saved group from the selected slot.
==============================
SAVE GROUP / LOAD GROUP – ADVANCED
==============================
🔸 SAVE_GROUP:
- Automatically saves group at the **lowest** subdiv level
➜ If [Save Group At Subdiv] is enabled, saves at **current** subdiv level
- Stored data includes:
• PolyGroup
• Polycount
• Vertex ID
• Subdiv level (optional)
• User-defined name
• Preview image
• Viewport transform (position, scale, rotation)
✅ IMPORTANT NOTES:
🔺 To ensure LOAD_GROUP works properly, your mesh **must retain the same polycount and vertex ID** at the time of loading.
🔺 The system does **not** depend on shape—only Polycount + Vertex ID matching is required to apply the correct group.
🔹 LOAD_GROUP:
- Automatically checks polycount before loading
- If matched, the plugin restores the saved group using morph target logic
- Works across different meshes **with identical vertex structure**
==============================
REAL-WORLD USE CASES
==============================
• Reuse PolyGroups after sculpting or if groups are lost accidentally
• Apply groups for morphs, blendshapes, or scan-based mesh variations
• Perfect for cleanup scan workflows, retargeting, and shape transfers
==============================
PLUGIN UI OVERVIEW
==============================
• Smart_Group ............... ➜ Smart mask using mouse position
• Shell_Group ............... ➜ Add new group mask while keeping the existing one
• G1–G24 .................... ➜ Slots to store PolyGroup data
• SAVE_GROUP ................ ➜ Save current PolyGroup into active slot
• LOAD_GROUP ................ ➜ Load PolyGroup from selected slot
• Save Group At Subdiv ...... ➜ (ISwitch) Enable to save group at current subdiv
• View All PolyGroup Icons .. ➜ Display all saved group preview icons
• Doc IC .................... ➜ Adjust document size for preview generation
I hope you find it useful in your daily work — and thank you for your support!
Zane
Support Zbrush 2022,2023,2024,2025
Tutorial:https://www.youtube.com/watch?v=ZfHXeuDX0BQ