GS Toolbox for Autodesk Maya Documentation

For Maya 2018-2024

Introduction

Right floating image

GS Toolbox is a powerful hard-surface and general purpose modeling plug-in for Maya that adds a lot of useful new features, as well as expands and simplifies already existing Maya functions.

This plug-in uses an intuitive and interactive menu that changes depending on the currently used function. For example, going into edge selection mode (angle button) highlights “Select Edge”, “Crease+” and “Bevel+” button to indicate that you can finish the selection with one of those functions.

The main power of GS Toolbox is the speed of its functions and the ability to quickly apply any function from one menu without opening windows and changing options.

One of the main focuses of GS Toolbox is hard-surface modeling and creasing workflow. Using creases as an addition to control loops allows for very powerful and non-destructive workflow for high-poly modeling. Creases can then be easily converted to bevels to decrease the number of subdivision required for the smooth and perfect surface.

Another powerful feature is quick Mirroring and Instancing with Mirror. Maya does not have procedural modifiers, so instancing is heavily used for this purpose. GS Toolbox have thee modes of mirroring that can be used on multiple objects and activated using only one button - mirror, flip and instance. Instance will mirror-instantiate the object..

Procedural Mirroring and Instances with Boolean Support - using new Instance+ option you can now apply procedural Mirroring and use Booleans with Mirroring.

Filling the opening in geometry with quads is another fast and useful feature. Sometimes it is very hard and time-consuming to bridge the opening in the geometry and cut it in even quads. With “Fill” function you can select only one vert from the border and click one button for instant even-quadded fill. Works on flat, curved and other irregular surfaces.

Main Features of GS Toolbox

  • Powerful and interactive menu with high-DPI support.

  • Quick access to Transform and Selection constraints.

  • Dot Select Quads, Edges and Verts to quickly select patterns.

  • 20 powerful and easy to use selection sets.

  • Quickly Select Edges by Angle between faces.

  • Interactively Crease and Bevel the geometry based on the Angle between faces.

  • Crease individual edges and faces selection with one click.

  • Powerful mirroring menu with support for multiple objects, interactive options and six axis buttons for quick mirror:

    • Normal mirroring (World, Object and Bounding Box)
    • Flip Geometry (World, Object and Bounding Box)
    • Instance and Mirror (World, Object and Bounding Box)
    • Delete by Axis. Cuts the geometry and deletes based on the selected axis.
  • Quick Instance with duplication to add multiple instances with one click

  • New Instance+ function with support for booleans, procedural mirror modifier and solidify modifier (extrude).

  • Solidify is a better version of Extrude that is compatible with Instance+

  • Create quick snapshots of the geometry with history to save them it you wish to modify them later and delete the history of the current object.

  • Snap to Poly to move and orient an object to one or multiple selected faces. Instance and Snap will also instantiate the object and snap those instances on the selected faces.

  • Randomize Transforms (under the Instance button) to interactively randomize Transformation, Rotation and Scale of multiple selected objects.

  • Straighten will straighten any edge selection to a straight line. Shift + Straighten will also equalize vertices along this line.

  • Interpolate will smoothly interpolate selected edges based on the first, middle and last vert in the selected edges.

  • Smooth will smooth the selected edges based on the smoothing multiplier.

  • Fill will fill any selected hole quads. Selecting two verts instead of one will result in a different pattern of quads, depending on the combination of selected verts.

  • Combine and Separate is a clean way to combine and separate geometry without any additional groups in the outliner. The naming of the original object will also be respected.

  • Duplicate and Extract will duplicate or extract selected faces in a clean way, without unnecessary groups in the outliner. It also keeps the history of the original object intact.

  • Powerful procedural Booleans with the ability to edit already applied booleans, delete boolean component objects and quickly apply booleans.

  • Live Plane will place a Live Plane on the selected face. You can switch to the custom camera that follows this Live Plane and also align any object to that plane, using Align. Res. slider will change the subdivision of this live plane.

  • 12 Quick Material Slots are powerful and easy to use material management tool that can store and load presets and apply Global Materials.

Supported Platforms

Maya 2018-2024 for Windows -> Fully Tested and Supported.

Maya 2018-2024 for Mac -> In Beta.

Linux -> Not Tested and Not Supported.

Maya LT -> Not Tested and Not Supported.

Maya 2017 -> No longer supported since v1.1.6

Changelog

Version 1.1.7

New Features:

  • Maya 2024 Support

Improvements:

  • Added new StandardSurface material in Maya 2024 as default

Bug Fixes:

  • Fixed Array having the wrong arrangement on some Maya versions
  • Fixed hotkeys for Selection Constraint and Transform Constraint
  • Fixed “Save Preset” swatch generation bug in Quick Materials

Version 1.1.6

New Features:

  • Maya 2023 Support
  • Selection Sets Boolean Logic. Middle Mouse Drag or Click with Modifiers:
    • Shift + Ctrl to add selection to the layer or (combine layers if dragged)
    • Shift + Alt to get a difference between the layer and the selection (or the difference between dragged and target layer)
    • Ctrl + Alt to get an intersection between the selection and the layer (or the intersection between the dragged and target layer)

Improvements:

  • Major improvement for Duplicate and Extract functions. They will now separate only selected faces and other detached shells will stay combined with the original object.
  • Added Hotkeys:
    • Create Crease Sets
    • Creases to Bevels
    • Bake Crease Sets

Bug Fixes:

  • Fixed a bug with “Repeat Last” hotkey not working for some functions.

Deprecation:

  • Maya 2017 Support is Dropped. It might still work just fine but there will be no bug fixes for this version.

Version 1.1.5

Improvements:

  • Duplicate Faces and Extract functions will now respect Isolate Select when used.
  • Added a warning to the Array functions when it detects that the scene units are different from “cm”. This is due to limitation of MASH system. MASH does not support anything other than centimeters and (since Array functionality heavily relies on MASH) neither Array function in Toolbox.

Bug Fixes:

  • Fixed a critical bug with Fill function that caused incorrect positioning of the vertecies when scene units were different from “cm”. Every scene unit is now supported by the Fill function.

Version 1.1.4

New Features:

  • Added a Shift modifier for “Apply Boolean” button to keep the boolean group hidden after “Apply” button is pressed
    • Holding Shift will now result in an old behavior - deletion of the boolean group
    • Normal click will now result in a boolean group hidden, but not deleted
  • Added an option in the options menu to store applied boolean groups in a separate group called “GS_AppliedBooleans”

Improvements:

  • Added additional hotkeys for some Shift modified commands
  • Modifier and Marking menu icons visuals were improved

Bug Fixes:

  • Fixed position resetting of the main window after Maya is reloaded
  • Bevel Plus will now work correctly on instanced objects
  • Shift can now be used when setting custom hotkeys
  • Some minor typos and code fixes

Version 1.1.3

Bug Fixes:

  • For Maya 2020.4 Only: Deformed arrays will now be created properly
  • Fixed font issue for all versions
  • Fixed some of the hotkeys

Version 1.1.2

New Features:

  • Full Maya 2022 and Python 3 Support! New supported versions are 2017-2022. Maya 2022 is supported in both Python 2 compatibility mode and the default Python 3 mode.
  • Added Select Hard Edges command in Select Edges button marking menu (Hold RMB)

Improvements:

  • Added new hotkeys:

    • Flip X,Y,Z
    • Instance X,Y,Z
    • Flatten Local X,Y,Z
    • Flatten World X,Y,Z

Bug Fixes:

  • Arrays will no longer throw an error if the default MASH settings were changed by the user.

Version 1.1.1

Fixed Bugs:

  • Fixed an issue with “presets” folder not being created automatically when deleted
  • Fixed an issue where not initialized Maya plug-ins caused errors
  • (Maya 2017) Initialization issue was fixed
  • (Maya 2017) Some Array bugs fixed

Known Issues:

  • (Maya 2017) Fill function will fail if vert selection is near another open border. Fix is to add edge loops to separate this vert from secondary open borders.

Version 1.1

New Features:

  • Reworked User Interface. It will now stretch with the window, expand text to fill the buttons and more.

  • Arraying System with two types of arrays, each one of them with two different modes. Select axis, add or remove objects to/from the array. Change parameters. Control with a curve. All procedural. All editable:

    • Select initial Axis.
    • Multiple objects in one array. Create procedural pipes, jewelry, laces and other repeating patterns.
    • Add or Remove objects to/from the array. Create Patterns.
    • Deformable and Non-Deformable Linear arrays.
    • Deform with a curve. Linear arrays will follow the controller curve.
    • Deformable and Non-Deformable (Uniform) Radial arrays.
    • Radial Mirroring (Radial Arrays)
    • Procedural Parameters. Change them on the fly.
    • Array randomization.
    • Quickly apply arrays to continue modeling.
  • New Smooth Edge function. Smooth Edges and Edge Groups. Change multiplier to increase or decrease the effect.

  • New Fill Hole with Quads function. Select one vert to fill the hole. Select two verts for custom patterns of quads. Works on curved and complex surfaces.

  • New and Reworked Instance+ function. Now it allows to switch between two modes (Mesh and Inst) and apply modifiers to the mesh itself or to the Instance+ if needed. New button highlights.

  • New Align functions for Live Plane. Align any object to live plane in one click.

  • New Online Documentation is now available. It will be expanded an updated as the development continues.

  • Mac OS is now supported (Beta). It should work just fine but may have some bugs. Please Report.

Improvements:

  • Every function is fully rewritten and reworked.
  • New UI will now stretch with the window and the text will expand based on the with of the buttons.
  • Interactive Sliders are now much faster.
  • PDF documentation is now replaced with online documentation (can still download as PDF).
  • Delete Node function modifier is now inverted. Normal Click will now delete last node and Shift + Click with the node selected will delete the selected node.
  • Straighten and Interpolate functions are now much faster when selecting multiple edge groups.
  • Snap to Poly now has Pre-Duplication option. When enabled it will always leave behind instanced version of the snapped object(s) to allow for additional editing.
  • Create Maya Material window will now open a custom window with available materials and clicking on any material will create it and automatically add it to the appropriate material slot.
  • Save Preset material preview creation is now more reliable.
  • Numerous small improvements of the code for reliability and stability.

Fixed Bugs:

  • Fixed boolean transforms issue when using in conjunction with Instance+.
  • Matching names should no longer cause an error on some functions.
  • Numerous small bugs were fixed during a full rewrite from MEL to Python.

Version 1.0.3

Fixed Bugs:

  • Switching scenes and workspaces will no longer cause the menu to be closed
  • Switching scenes will now update material swatches correctly

Other:

  • Changed version number format for consistency with my other plug-in(s)

Version 1.02 + 1.021

Improvements:

  • Back to one folder for all versions of Maya
  • Minor optimizations

Fixed Bugs:

  • No more random “Stack Trace” errors on Maya startup
  • Angle Highlight will now respect custom polygon display options

Version 1.015

Improvements:

  • Added full Maya 2020 Support

Fixed Bugs:

  • Fixed some minor bugs for all Maya versions

Version 1.005

Improvements:

  • Supported Maya versions now have separate plugins for better compatibility. Report bugs with Maya version attached.

Fixed Bugs:

  • Fixed huge Shelf icons some users of Maya 2018 and 2017 have experienced
  • Fixed a few minor bugs in Maya 2017 version

Version 1.004

Fixed Bugs:

  • GS Toolbox was unable to initialize (“invalid flag -t” error)

Version 1.0

  • Initial Release

Video Tutorials

Version 1.1 Full Tutorial

Version 1.0 Features Overview



Installation, Shelf, Hotkeys and Updates

Installation Steps

Warning

Only Windows version is fully supported. Mac version is currently in beta test and may have some bugs. Linux was not tested and currently not supported. Maya LT was not tested and currently not supported.

  1. Unpack and copy gs_toolbox folder to:

    • Windows: Documents/Maya/{Maya_Version}/scripts/
    • Mac: {Your_Mac_Name}/⁨Users⁩/{User_Name}/⁨Library/⁨Preferences⁩/⁨Autodesk⁩/⁨maya/{Maya_Version}/scripts/⁩
    Windows Folder Structure Example

    Windows Folder Structure Example

    Mac Folder Structure Example

    Mac Folder Structure Example

  2. Run Maya

  3. Copy and Paste this code to Python Command Field at the bottom (switch from MEL by clicking on it) or to the script editor:

    import gs_toolbox.init as tb_init;from imp import reload;reload(tb_init);tb_init.Init();
    
  4. Run the code (Press Enter for the Command Field or press on triangle for script editor). Installation is complete.

Script Editor Example

Hotkeys

After you Initialize the plug-in you can find all the hotkeys in:

Hotkey Editor -> Custom Scripts -> GS -> GS_Toolbox

Updating the Plug-in

To update the plug-in to a new version just delete the old gs_toolbox folder and repeat the Installation Steps.

Troubleshooting

Installation issues on Windows:

Most of the problems with the installation happen when the user copies the gs_toolbox folder to the wrong folder.

Use only the version specific scripts folder, and NOT the shared scripts folder.

For example - correct folder for me:

C:\Users\George\Documents\maya\2022\scripts

Incorrect folder:

C:\Users\George\Documents\maya\scripts

P.S. If you are using OneDrive, your documents folder might be in the OneDrive folder.

First Steps

Intro

The main function of GS Toolbox is to speed up the hard surface workflows in Maya. Main functions that you are going to use are:

  • Select, Crease and Bevel by Angle
  • Mirroring and Instancing
  • Booleans
  • Utility functions such as Fill, Straighten, Combine etc.

In this chapter we are going to briefly discuss all of those functions. For more in-depth and advanced explanations please refer to the appropriate chapter in table of contents on the left.

Quick Intro to Creasing Workflow

_images/creasing_subd_levels_example.gif

Creasing is a powerful and non-destructive workflow in Maya. Creasing an edge applies a crease parameter to that edge and whenever you smooth the mesh, this edge will remain sharp based on that parameter. For example, crease level of 2 will remain sharp on subdivisions 1 and 2, but when you go to subdivision 3 you will notice that creased edges is now smoothed uniformly.

However, the native way of applying and managing creases is very slow and cumbersome. You can’t apply creases based on the angle, you can’t apply fixed values of creases easily and native creasing tool is slow.

GS Toolbox provides with convenient functions to Select, Crease+ or even Bevel+ edges based on the angle between faces. This allows for some very quick creasing, especially since a lot of hard surface models have very sharp corners.

You can also crease individual edges by a fixed amount just by clicking on the Crease button.

Interactive Edge Selection and Crease

_images/angle_highlight_example.gif

To start interactive selection, select an object(s), click on the small “Angle” button near the slider that controls the angle parameter and start dragging the slider. You will notice how the highlighted edges change based on the angle you select.


_images/angle_selection_highlighted_buttons.png

Notice how three buttons are now highlighted - Select Edges, Crease+ and Bevel+. This indicates that you can now finish your angle selection by either simply selecting the edges that were highlighted or by applying Crease or Bevel to those edges.



_images/angle_and_crease_sliders.png

Crease+ function will be applied based on the parameters of SubD and Crs sliders, where SubD is the subdivision level of the mesh and Crs is the crease level on the creased edges.


Note

You don’t have to use interactive selection every time and even without it pressing any of the aforementioned buttons will result in the same selection or creasing.

Quick Mirroring and Instancing

Mirroring is an essential part of any hard surface model. Even if the final model is not completely symmetrical, mirroring is still used to quickly add geometry on the other side of the model and edit it accordingly.

_images/mirror_radio_buttons.gif

In GS Toolbox you will find all the mirroring tools you might need in one convenient menu. This menu is interactive and changes based on the selected mirror, flip, instance or delete parameters.

X, Y, Z and their negative counterparts represent the axis of mirroring.

Parameters control the type of operation - Normal mirror, Flip, Instance or Deletion.

World, Object and B.Box control the coordinates system, with World being the world coordinates, object is pivot based and B.Box is bounding box based.

Merge, Bridge and Nothing control the boundary options for the Normal Mirror. They determine what happens with the open border of the mesh when the mirror operation is performed.

If the Cut Geo parameter is selected it will cut the geometry based on the mirror plane.

Delete Geo will delete one side of the geometry based on the mirror plane.

Quick Booleans

Booleans is a powerful concepting and modeling tool that is severely underrepresented in Maya. You can’t edit already applied booleans, edit original geometry and even simply moving the cutter can be annoying.

With Quick Booleans GS Toolbox aims to fix those problems.

_images/booleans_menu.png

With Quick Booleans you can:

  • Addition, Subtraction and Intersection operations
  • Edit the original geometry on the fly
  • Toggle cutter visibility
  • Quickly select cutters
  • Delete any selected cutter without loosing other procedural booleans.
  • Apply booleans with one button
_images/booleans_example.gif
_images/boolean_cutter_editing.gif

Utility Functions

There are a bunch of utility functions available.

Straighten will straighten any selected edges and edge groups (not connected edges):

_images/straighten_edges_example.gif

Interpolate will interpolate selected edge groups between first, middle and last vert:

_images/interpolate_edges_example.gif

Smooth will smooth the selected edges based on the smoothing multiplier:

_images/smooth_edges_example.gif

Combine, Separate, Duplicate and Extract are all similar to Maya native functions but they will not clutter the outliner with an unnecessary groups and will not rename objects.

Note

This is just a small introduction to the main functions of this plug-in. For more info, please refer to the Table of Contents.

Constraints, Selection and Visibility

_images/constraints_and_visibility_section.png

Wireframe and Reference Toggle

Wireframe Toggle button is used to quickly change the shading on the selected mesh. This is extremely useful when you need to have only one transparent mesh in the scene. This button is interactive and will change color if it detects that the wireframe mode is enabled.

Reference Toggle is a quick way to disable viewport selectability of the selected mesh. Sometimes you don’t want to constantly select some meshes in the viewport and they are in the way. Or for example you want to quickly disable selectability of an image plane for your reference images. This button is interactive and will change color if it detects that the wireframe mode is enabled.

Transform Constraint

_images/transform_constraint_marking_menu.png

Transform Constraint button will toggle the constraints applied when moving geometry components.

This button has a marking menu (hold Right Mouse Button) where you can find two type of constraint available - Edge Constraint and Surface Constraint.




Selection Constraint

_images/selection_constraint_marking_menu.png

This constraint will toggle the selection constraint based on the angle, based on the camera angle or both.

Select by Angle option is very useful if you want to select a flat plane that has many polygons. With clicking on that constraint you can quickly select the entire flat plane of polygons. You can also change the angle tolerance for this selection (Default: 1 degree)

Selection based on camera angle (Auto-Camera Based Selection) will disable the selection of components that the current camera can’t see. This is very useful if you want to quickly select some components using marquee tool, but don’t want to accidenatlly select the other side of your model.

Angle + Auto Camera-Based selection will simply enable both of aforementioned options at the same time.

This button will change its color if constraint is currently active.

Dot Select

_images/dot_select_example.gif

Dot Select button will select the next component in a pattern that you select

Shift + Dot Select will select the entire loop based on the selection.

The pattern is based on the last two selected components.

It works on vertices, edges and faces.

Select Edges

This button selects edges on the selected meshes based on the Angle slider value.

Multiple objects can be selected for this function.

It also have a marking menu (Hold RMB on this button):

_images/select_edges_marking_menu.png
  • Select Border Edges will select the open border edges for the selected objects
  • Select N-Gons will select all the N-gon faces on the selected meshes.
  • Select Hard Edges will select only hard edges on the mesh, ignoring Border Edges.

Selection Groups

Intro

_images/selection_groups.png

Selection groups menu is a powerful and easy to use tool that allows for a quick storing of the user selection, hiding objects and components and disabling selectability of objects in the viewport.

_images/selection_groups_marking_menu.png

Each of the 20 selection groups have its own marking menu (Hold RMB on one of the selection groups) that allows for various functions.

Adding and Selecting

_images/empty_selection_groups_addition.gif

In order to add objects or components to the selection set, all you need to do is to select those objects or components and click on an empty selection set. The set will then change its color to indicate that it has something in it.

_images/selection_groups_selection_and_shift_click.gif

Clicking with LMB on a filled selection set will now select the objects or components that were added to that set.

Shift + LMB on multiple filled selection groups will additively select everything in those selection groups.


Quick Actions and Boolean Logic (Drag and Drop)

_images/selection_set_mod_drag_drop.gif

You can use modifier key combinations to add, subtract or intersect either two selection sets or selection set and a viewport selection.

Simply select something in a viewport and hold these keys (or drag and drop one selection set onto another):

  • Shift + Ctrl - will add selection to the target non-empty selection set or it will merge two selection sets if dragging and dropping one onto another using Middle Mouse Button.
  • Shift + Alt - will subtract selection from the target non-empty selection set or it will subtract two selection sets if dragging and dropping one onto another using Middle Mouse Button.
  • Ctrl + Alt - will intersect selection with the target non-empty selection set or it will intersect two selection sets if dragging and dropping one onto another using Middle Mouse Button.

Color coordination

_images/selection_groups.png

Based on the color of the group you can quickly determine the state of the group.

  • Transparent - empty group
  • Orange - group is filled with something
  • Green - group is currently in Reference Mode and not selectable in the viewport
  • Light Gray - group is currently hidden in the viewport

Selection Groups Marking Menu

_images/selection_groups_marking_menu.png

To access the marking menu simply Hold RMB on the selection set button. Now you can move the selection line to any of the buttons and release the to apply the function.

Available functions:

  • Clear Group will clear the selected group without deleting any objects or components.
  • Add and Remove Selection to/from the Group will add/remove selected objects from the Group.
  • Toggle Group Visibility will toggle viewport visibility of the grouped objects or components.
  • Toggle Group Reference will toggle the selectability of the grouped objects. Not compatible with components.
  • Merge To This Group will add the selection to this group and remove the selection from any other groups.

Options

_images/selection_groups_options.png

In the options menu you can quickly update selection Groups (if they are not updated for some reason), clear all selection Groups and set Groups Hidden in Outliner (Default: Enabled)

Creasing and Beveling

_images/creasing_and_beveling_menu.png

Intro

Creasing and Beveling is a powerful and non-destructive way to create SubD geometry. It works by applying a creasing value (creasing parameter) to the edges and this parameter controls at which subdivision this edge will start to smooth.


_images/creasing_subd_levels_example.gif

For example: If you apply a creasing value of 2 to the edge, then this edge will not be smoothed until you reach a subdivision level of 3 or more. See how the edge is sharp up until the level 3?

By default, Maya has a very convoluted and non-intuitive creasing workflow. You can’t crease by angle and there is a separate hidden menu for the creasing controls. Applying creases is a pain as well, as you need to select the creasing tool first and then drag middle mouse button. There is no way easily set a desired creasing value, you can’t crease faces etc.

GS Toolbox aims to fix all of those issues.

In the Creasing Menu you have six buttons, three sliders and three additional toggles for interactive edge highlight, SubD change and Creasing.

You can crease individual edges, crease by angle, bevel by angle and un-crease selected or all edges.

Creasing Individual Edges

In order to crease individual edges all you need to do is to select the edges and click on “Crease” button. Crease button will look at the Crs slider and set the crease level that is selected there.

Crease button also supports face selection. In face selection there are two modes. Normal click will by default crease only the perimeter of the selected faces. Shift + Crease will crease all the edges in the selected faces. This functionality can be adjusted in the Options menu.

Un-Crease button will remove creases on the selected edges. Face selection follows the same pattern as the Crease button.

Interactive Edge Creasing

_images/interactive_crease_slider.gif

You can enable interactive creasing mode by clicking on Crs button near the Crs slider.

After you enabled this mode, selecting edge or faces and dragging the slider will result in an interactive creasing of the said edges or faces.

The slider will change its value based on the selected edge.

Face selection follows the same rules as the Crease button.

Clicking on SubD button will change the slider to an interactive SubD slider. Dragging this slider will apply different SubD levels to the mesh.

Interactive Edge Highlight

_images/angle_highlight_example.gif

Interactive edge highlight will highlight the edges based on the Angle slider angle tolerance.

To activate this mode select the object (or multiple objects) and click on a small “Angle” button on the left from the Angle Slider.

In this mode, dragging the slider will interactively filter the edges based on the selected Angle tolerance.

Note

Angle between faces has a range from 0 to 180, where 0 is basically all edges highlighted and 180 is no edges being selected. The sharper the angle between faces the more angle tolerance is needed to deselect this edge. Border edges will always be highlighted due to limitation of the Angle Selection system of Maya.

_images/angle_tolerance_slider_example.gif

Note how some of the edges are now different color (this color can be changed in the Options menu). Those colored edges are the edges that will be affected by the next command you choose.

Note how 3 buttons are now highlighted - Select Edges, Crease+ and Bevel+. This means that you can finish the selection process by selecting one of those functions.

Selecting “Select Edges” will finish the interactive mode and select the edges you have highlighted.

Note

You don’t have to enter the Interactive Angle Highlight mode to use Select Edges, Crease+ and Bevel+. Simply dialing the Angle, SubD and Crs values and clicking on any of those buttons will result in the same selection.

Creasing and Beveling by Angle

_images/applying_crease_plus.gif

Creasing and Beveling by Angle can be performed in the same way you’ve Selected Edges in the Interactive Edge Highlight mode. Select objects, click on Angle button, drag the slider and finish the selection with Crease+ or Bevel+.

Crease+ will look at the SubD and Crs slider values and apply them to the mesh and edges based on the Angle Tolerance you’ve selected.

In the Marking Menu for Crease+ button you can also find several crease presets that you can use. They will change the SubD and Crs slider values.

Bevel+ will look at the SubD and Angle Tolerance only, and apply bevel to those edges that are highlighted or fall within the Angle Tolerance numbers.

Un-Crease+ button will remove all the creases on the selected mesh.

Convert Creases to Bevels

_images/crease_plus_marking_menu.png

You can easily convert already creased edges to bevels by using Convert Creases to Bevels command under the Crease+ marking menu (Hold RMB on Crease+ button).

Selecting Convert Creases to Bevels will look at all the creased edges on the object and change them to bevels. Crease value on the edge will have no effect on the final bevel as Maya does not support variable bevels on one Bevel node.

Create Crease Sets and Bake them

You can always edit and select already creased edges by simply creating a selection set from them.

_images/crease_sets_in_the_outliner.png

This can be done by accessing Crease+ marking menu (Hold RMB on Crease+ button) and selecting “Create Crease Sets from Mesh”. This will create a selection set based on the creases. Different crease values will result in a different selection set, so you can easily distinguish between them.

Crease sets will have format “Mesh Name + _creaseSet#”

To select edges from any of the sets, just right click on the set and click “Select Set Members”. You can now edit selected edges with Crease button and different Crs value.

Bevel+ Marking Menu Options

You can access Bevel+ marking menu by Holding RMB on Bevel+ button. Here you will find Chamfer toggle and Default Segments selection.

Chamfer toggle will enable and disable rounding of the edges you are beveling.

Default Segments will change the amount of segments that your initial bevel will have (can be always changed during the beveling process).

SubD Button

SubD Level button shows you the current Subdivision level of the selected mesh and clicking on this button will apply the SubD level set on the SubD slider.

Mirroring and Instancing

_images/mirror_panel.png

Intro

Mirroring is a very important tool in any 3D package.

Although Maya has its own mirror algorithm and window, the workflow for it requires way to many clicks for simple mirror. You have to open mirroring window, change parameters, choose axis and if you chose incorrectly and closed the window and undo, you have to repeat the whole process.

GS Toolbox reduces all this work to one button for each axis and some simple switches for all the parameters you need. All in the same window as other tools. All interactive, simple and intuitive.

Mirror and Instance

Mirror, Flip and Instance menu has 6 main buttons - one for each axis.

Simply selecting the object (or multiple objects) and clicking on one of those buttons will perform a mirror, flip or instance operation based on the parameters selected below.

Some parameters will add a small triangle to the top-left corner of the button. That means that this button now has modifier support (Shift) for alternative algorithm and functionality. This will be covered in the mirror parameters section later on this page.

Normal Mirror

_images/mirror_panel.png

Normal mirror operation mimics the regular Maya mirror operation, but it is streamlined into one click of an axis button.

When using normal mirror you can choose between three mirror axis positions, World, Object and Bounding Box (B.Box), by clicking on the appropriate switch button.

  • World will position the mirror plane on the 0,0,0 world coordinates.
  • Object will look at the pivot of an object and position the mirror plane there.
  • Bounding Box (B.Box) will calculate the bounding box of the object and mirror according to it.

When performing a normal mirror you have four options for how to treat the geometry intersection with the mirror plane.

  • Cut Geo will toggle the cutting of the geometry if it is intersecting with the mirror plane. Disabling this option will result in a geometry being mirrored but not cut by the mirror plane.
  • Merge will merge the cut geometry based on the merge tolerance. You can select merge tolerance in the marking menu (Hold RMB) or you can choose Auto merge distance that will estimate merge tolerance based on your mesh.
  • Bridge will attempt to bridge open borders of your mesh after the mirror operation.
  • Nothing will do nothing after the mirror operation. It will not merge or bridge, and if you have Cut Geo selected, the resulting mesh will be cut on the mirror plane but vertices will not be merged.

Flip

_images/flip_mirror_option.png

Flip option will simply flip the geometry to the other side of the mirror plane. If the mirror plane happens to be in the middle of the object, it will just flip the left side of the object to the right and vice-versa.

With Flip you can only select the position of the flip axis. It’s the same as for the normal mirror - World, Object and Bounding Box.

You might notice a small triangle on the top-right corner of the mirror buttons. This indicates that there are actually two algorithms available for the flip.

_images/flip_shift_algorithm.gif
  • Normal Click Flip - when just clicking the mirror button, the flip algorithm will ignore the orientation of the pivot in Object mode and perorm a flip in a world space coordinates but centered on the pivot point.
  • Shift + Flip - will perorm a flip in the object mode coordinates, similar to Maya own flip algorithm.

Same algorithm is also available for the Bounding Box mode.

Instance

_images/instance_gif.gif

Instancing with mirroring can be an extremely powerful tool to mimic the procedural mirror modifiers in other 3D packages. Since Maya does not have procedural mirror (however, GS Toolbox have this covered, look for Instance+), using instance with mirror can help speed up the process of modeling.

It is multi selection compatible, respects other instances and works in one click.

With Instance you can only select the position of the instance axis. It’s the same as for the normal mirror - World, Object and Bounding Box.

A small triangle that appears in the top-right corner of the axis buttons indicate that there are two algorithms available for this function, similar to the Flip command (read Flip). Just hold Shift to switch to the other algorithm.

Delete Geo

_images/delete_geo_cut.gif

By activating Delete Geo you will switch to a cutting mode. This mode will cut the geometry based on the mirror axis options and delete the other side.

Same options are available for the position of the axis as for Instance and Flip commands.

Linear and Radial Arrays

Intro

_images/linear_and_radial_array_menus.gif

Arraying is a vital part of any 3D package. It allows for a quick and non-destructive creation of repeating parts and details.

In Maya, arraying is only available through a built-in plug-in package - MASH. Although it is very powerful Motion Graphics tool, MASH is not very friendly to the user when it comes to modeling workflows.

In GS Toolbox there are two types of Arrays with 2 modes each. They utilize MASH in the background, but simplify and streamline the workflow focusing on a modeling side of arraying.

Two types of arrays are:

  • Linear Array that has 2 modes:

    • Uniform Linear array that provides with uniform and non deformable way of copying geometry
    • Deformed Linear array that provides with an array that can be deformed using provided controls
  • Radial Array that has 2 modes:

    • Uniform Radial Array that creates a radial pattern without deforming the original geometry
    • Deformed Radial Array that creates a radial pattern and deforms the original geometry.

Note

Linear arrays can also be applied to already existing curves and will follow their path. It is done by selecting the object(s) and the curve before clicking on any axis button.

Note

Due to the way MASH and Python interact in Maya, if you wish to undo an array you have to press Ctrl+Z not once, but a few times until you return back you your original object (it should be highlighted)

Linear-Uniform Array

_images/linear_array_basic_creation.gif

Linear array creates repeating copies of the selected object in line based on the selected axis (X,Y,Z).





_images/changing_linear_array_copies.gif

The created array object is fully procedural and you can quickly change the number of the copies by selecting the arrayed mesh and dragging the “Copies” slider or selecting the arrayed mesh and going to the Channel Box for advanced options.





_images/modifying_simple_array.gif

Original object that you’ve arrayed is still there, can be edited using Maya tools and the changes you make will reflect on the arrayed objects.








_images/linear_array_control_curve.gif

Every linear array you create has a control curve that can be modified and the array will follow that path curve.

You can easily control the array using this curve and even change the shape of that curve to change the path of the array accordingly.

Enabling or disabling the Rotation toggle will change the alignment of the mesh to that path curve. Disabled Rotation toggle will ignore the curve orientation and keep the original orientation of the mesh intact.

Linear-Uniform Array Attributes

_images/uniform_linear_array_attributes.png

The basic attributes you have for the array are:

  • Copies controls the number of copies in the selected array.
  • Rotation (Calculate Rotation) enables or disables rotation calculation for the array to follow the control curve.
  • Original (Show Original) shows or hides the original geometry of the selected array.

The advanced attributes found in the Channel Box:

  • Stretch Along Curve will determine how much the array should stretch along the length of the curve, where:

    • 0 (zero) is when all the arrayed objects are in the same location at the beginning of the curve.
    • 1 (one) is when all of the arrayed objects are uniformly stretched along the curve with equal spacing.
  • Offset Along Curve will offset the geometry along the path curve based on the amount

Linear-Deformed Array

_images/linear_deformed_array.gif

This type of array is very similar to Uniform Linear Array, however it will not try to keep the shape of the original object and will conform to a path curve instead.







_images/linear_deformed_array_editing.gif

As with the linear array, original object can easily be edited and the change will propagate forward to the arrayed objects.

You can easily imagine how this can be used to create a massive selection of different objects - pipes, hoses, cables etc.

And everything is procedural!

Linear-Deformed Array Attributes

_images/linear_deformed_array_attributes.png

The basic attributes are the same as the uniform ones - Copies and Original. Rotation is disabled for the deformed array, since it is by default conforming to the curve.

The advanced attributes are:

  • Stretch Along Curve will enable or disable uniform stretching of the array along the path curve.
  • Offset Along Curve will offset the arrayed geometry along the path curve.
  • Orientation allows to rotate the arrayed geometry around the curve.
  • Length Scale will change the stretching of the arrayed geometry along the curve.
  • Width Scale will change the width of the geometry on the curve.
  • Merge Verts will automatically merge verts on the arrayed objects if enabled.
  • Merge Distance controls the distance of Merge Verts attribute.
  • Uniform Distribution will ignore the overall shape of the object and try to distribute the objects uniformly along the curve
  • Sampling Accuracy determines the processing power allocated for the creation of the Deformed Linear Array. If you experience any inconsistencies with the array, or lags, try lowering or raising this number (Default: 1)

Radial-Uniform Array

_images/radial_uniform_array.png

This type of array will create a radial pattern of equally spaced arrayed objects without deformation of their shape.

You can change the initial orientation of the array by selecting appropriate axis plane (XY, YZ, ZX).

After that you can still edit the original object and translate, scale and rotate the arrayed object freely.

You can change the number of copies by selecting the arrayed object and dragging the Copies slider.

Radial-Uniform Array Attributes

_images/radial_uniform_array_attributes.png
  • Show Original and Calculate Rotation are similar to the Uniform Linear Array and will simply show/hide original object and enable/disable orientation calculation of the copied array objects.
  • Axis can be used to change the axis orientation of the arrayed object.
  • Radius changes the radius of the arrayed object.
  • ZOffset allows for creation of offset array geometry. The offset will work in a spiral pattern.
  • Angle will change the curvature amount of the arrayed object (with 360 being the default and full rotation around the curve)

Radial-Deformed Array

_images/radial_deformed_array.png

Deformed Radial Array is a special type of array that will create the radial geometry similar to the Uniform one, but the copies of the original object will now conform and deform to a circle.








_images/radial_deformed_array_editing.gif

The original object can then be modified and the arrayed object will inherit all of those modifications

This mode can be used as a replacement for a radial mirror that is not currently present in Maya.

The resulting geometry can then be freely transformed, rotated or scaled by the user.



Radial-Deformed Array Attributes

_images/radial_deformed_array_attributes.png
  • Show Original is similar to the Uniform Linear Array and will simply show/hide original object.
  • Copies will change the amount of copies you have in your array
  • Curvature changes the curvature of the radial array shape where 0 is straight line and negative numbers will flip the shape to the other side (Default: 180)
  • Low and High bound controls the curvature of one side of the shape and will “unravel” the shape if both are set to zero.
  • Uniform distribution ensures there are no gaps in between array shapes.
  • Radius changes the radius of the circular shape.
  • Merge and Merge Distance controls the merging of the vertices of the copied array objects.

Arraying Multiple Objects (Multi-Array)

_images/multi_array_example.gif

Linear-Uniform and Radial-Uniform arrays support multi-arraying - arraying different objects in a repeating pattern.

In order to perform a multi-array operation, simply select multiple objects and click on the array axis button (X,Y,Z).

Multi-Array will create a repeating pattern of selected objects that can be controlled using the same methods as other array types.

_images/multi_array_attributes.png

Multi-Array has some additional attributes available:

  • Pattern will change the pattern of the array. By default this number is equal to the number of unique objects in the multi-array. Raising this number will result in a different pattern.
  • Randomize Pattern will randomize the pattern of the multi-array.
_images/multi_array_add_subtract.gif

You can Add and Subtract objects from the Multi-Array using + and - buttons available in the array menu.

To add any object to the multi-array, first select the array then select the object you want to add and click on “+” button.

To remove an object from an array simply select the original object (not arrayed copies) and click on the “-” button.

Randomize Arrays

_images/array_randomization_parameters.png

You can randomize transforms of an array by using Array Randomization parameters available for array objects.

  • TX, TY, TZ - Transform X,Y,Z randomization
  • RX, RY, RZ - Rotation X,Y,Z randomization
  • SX, SY, SZ - Scale X,Y,Z randomization
  • Rand Magnitude will change the overall magnitude of randomization.
  • Uniform Scale will ensure that the scale is uniform when randomizing SX, SY and SZ scale parameters.

Apply Array

In order to apply the selected array, simply select the array in question and click on Apply Array button.

Warning

Due to some issues with MASH in Maya 2017-2020+ applying large arrays rarely causes Maya crash to occur. Please save the project before applying large arrays.

Instance and Instance+

Intro

_images/instance_and_instance_plus.png

Instancing is a process of duplicating the geometry and keeping the reference to the original shape.

Editing any instanced object will result in the same edit across all other instances.

This can be a powerful way to populate a scene with repeating geometry without the need to duplicate them every time you need to make a change.

Note

Do not confuse Instance and Instance+ with Mirroring and Instancing.

In Maya instancing is quite prominent tool since there are almost no procedural modifiers available for the user.

GS Toolbox provide with a fast and easy way to use classic instancing (Instance button) and also there is a brand new instance mode available - Instance+.

Instance

Instance button and associated to it input field will create the amount of instances dictated by said input filed.

Simply clicking on Instance button will create the instances in the X+ direction with the center based on the current position of the original object.

_images/instance_marking_menu.png

There are multiple options available for the Instance. You can access them via Marking Menu (Hold RMB):

  • X,Y,Z,-X,-Y,-Z buttons will create the instances aligned to one of those axes.
  • Instance, Copy and Copy with History options:
    • Instance will create default instances.
    • Copy will copy the selected object without Construction History.
    • Copy with History will copy the selected object with Construction History.
  • No Offset, Offset, Offset + Gap options:
    • No Offset will simply instantiate (or copy) selected objects and will not move them.
    • Offset will apply an offset to the object equal to the object’s bounding box. You can manually increase/decrease this offset by using offset menu and value (square button on the right of Offset options)
    • Offset + Gap will offset the object the same way regular offset does but it will also add a small gap between each object. This can be helpful when selecting multiple objects after instantiation.
  • Randomize Transforms will open a window where you can find various controls for Transformation, Rotation and Scale randomization of the selected objects.

Randomize Transform Window

_images/randomize_transforms_window.png

You can fine Randomize Transform Window in the Instance Marking Menu (Hold RMB).

This window allows for quick randomization of the selected objects with preview.

Start by selecting the objects you wish to randomize.

Enable the randomization modules you wish to use and relevant axes.

Start dragging the sliders to see the randomization preview in the viewport.

When you are happy with the randomization simply click on Randomize button to apply the randomization parameters to the objects.

Instance+

Maya is a powerful 3D editing software, however, it misses one very important tool - procedural modifiers like Mirror. Also, Mayas instancing does not support booleans and breaks every time you try to use them.

GS Toolbox managed to partially solve some of these issues with Instance+.

Instance+ will create an instance of an object, similar to regular instance, but you can actually apply various modifier to it - Mirror, Solidify and Booleans.

_images/instance_plus_initialization.gif

Selecting an object and clicking on the Instance+ will initialize Instance+.

Notice how the button changes from Instance+ to Apply Inst+ with two options “Mesh and Inst”.

If you then try to switch from Mesh to Inst option, some of the buttons in GS Toolbox will light up.

Clicking on Apply Inst+ will then apply instance+ and you will have a normal, editable object in the scene.

So lets dive deeper into instance+ capabilities.

First of all let’s talk about Mirror and Solidify.

Mirror and Solidify Modifiers for Instance+

You can apply procedural mirror modifier to Instance+.

Editing the geometry will then mirror the edit to the other side procedurally, without then need to reapply the mirror command each time.

In order to apply the mirrors to Instance+, simply select the object, switch to Inst mode in instance+ button and click on one or multiple highlighted axes of the mirror section.

_images/instance_plus_multi_mirror.gif

Mirroring supports multiple axes of mirroring at the same time, so you can apply multiple mirrors to one Instance+.

For example, editing one corner of the cube will be mirrored to all the corners of said cube.

You can also add procedural Extrude (Solidify) modifier to Instance+. Using this modifier is similar to normal Extrude, but it will insure the compatibility with Instance+ mesh.

Simply apply Instance+, switch to Inst mode and click on the highlighted Solidify Modifier.

_images/instance_plus_and_solidify.gif

For example, using Instance+ with Solidify modifier on a plane will create a procedural plane with thickness that can be extruded using only one edge for ease of editing.



Booleans and Instance+

_images/instance_plus_and_booleans.gif

You can use GS Toolbox Booleans with Instance+ (for more info about Boolean system, visit Booleans section).

This is not possible with regular instanced geometry in Maya.

This method is especially powerful in conjunction with Mirror modifier applied to Instance+ beforehand.

Warning

Very large instance+ meshes and a lot of booleans on them can cause Maya to slow down and in rare cases even crash. This is not related to the plug-in and is a problem with Boolean Node and Maya itself.

Note

Please note that Instance+ with Booleans is not a native Maya way of handling mesh data and can sometimes cause unexpected behavior. Please always backup your scenes before using Instance+ with booleans.

Store Edits and Delete Node

Intro

_images/store_edits_and_delete_node.png

The main concept of editing geometry in Maya is by using so called Construction History and Nodes it represents.

Construction history is nothing more than a bunch of nodes connected together in a (mostly) linear fashion.

_images/construction_history_channel_box.png

When you, for example, apply a polySplit command (using Multi-Cut tool) you can notice that in the Channel Box there is a new entry in the INPUTS section - polyCut.

This means that Maya simply added this polyCut node at the top of the node chain of the object.

Almost all of the functions add a new node to the construction history of an object.

Since this node chain is linear, it can be reversed to return the object to its previous state.

Unfortunately it is very inconvenient to do natively in Maya.

GS Toolbox adds Store Edits and Delete Node button exactly for this purpose - storing and reversing edits on the objects in one click.

Store Edits

Store Edits button stores vertex transforms of the mesh.

Not all of the changes the user make to the mesh are stored in the nodes by default. Some of them (vertex transformations) are stored in the shape node and can cause unexpected behavior if user then tries to reverse the history of an object without those edits applied as a node.

Store Edits button ensures that the mesh is always initialized to the state that is compatible with the “Delete Node” and it also serves another purpose - staging the vertex edits of the geometry.

Uninitialized Edits

_images/store_edits_uninitialized.png

Whenever used sees the white outline around Store Edits button, it means that the selected mesh is not properly initialized for the vert edits to be stored. It is very easy to fix, simply click on the Store Edits button whenever you see uninitialized objects and it will automatically fix everything.

Staging Vert Edits

_images/store_edits_available.png

If you have your mesh initialized, you can then perform any vert edit (move vertices, edges and faces) and then stage those edits by clicking on a Store Edits button. Orange color on the button but without white outline indicates that there are some edits that can be staged/stored on the selected mesh. Simply clicking on the button will store those edits in a node and the button will then return back to neutral state.

Staging your vert edits (poly edits) is very useful if you are experimenting with different shapes of the mesh and you wish to return back to the previous iteration. Simply click on the Store Edits after each significant change and those changes can then be reversed using Delete Node button.

Delete Node

_images/delete_node_example.gif

Delete Node button is a simple way to reverse the construction history of an object (given that this history was not deleted).

To start reversing the history, simply click on the Delete Node and it will step-by-step reverse the Construction History nodes back to the original shape.

Note

It is not necessary to use “Store Edits” button every time if the mesh is already initialized (no white outline on the button). Simply clicking on the Delete Node will automatically apply latest vert edit and reverse it.

Note

Note that sometimes edits of the geometry are not visible and multiple clicks on the Delete Node are required to reverse the edit.

Selecting a Node in the Channel Box, holding Shift and clicking on the Delete Node will result in the deletion of that exact node.

Warning

Deleting selected history nodes out of order can result in an unexpected behavior.

Snapshots

Intro

_images/construction_history_example.png

In Maya each edit of the geometry is stored within a node that is added to so called Construction History that you see as a column of entries in the Channel Box or as tabs in Attribute Editor. You can even edit some of the settings on those nodes procedurally, with caution.

The downside of this procedural behavior is that each additional node added to the Construction History will gradually slow down the responsiveness of Maya. Some nodes do this more than others. For example, polyBevel is very “heavy”.

The usual workaround for this is to select an object with Construction History and apply Edit -> Delete by Type -> History. This will remove all the history nodes from the object and apply them to it.

Although this works, sometimes you want to store the previous state of the object to be able to return to it later.

This is where “Snapshot” comes into play.

Snapshot

_images/snapshot_buttons.png

Snapshot button will store a duplicate of an object with the exact state of Construction History it has into a separate group with the name “(object_name)_sn”. You can store multiple snapshots this way, with different history for each snapshot.

Storing a snapshot will not alter the original object by default. Its history will remain intact.

However, you can quickly remove the history after the snapshot was created by simply holding Shift button before you click on the “Snapshot” button.

The snapshot group and the objects in it will follow the original object when you transform, scale or rotate it.

Note

Be aware that by scaling the original object non-uniformly, you will also scale all the snapshots it has.

Extract Snapshot

Extract Snapshot button will extract any selected snapshot from the snapshot group and clean it up for further use.

Extract Snapshot will not remove the snapshot from the group by default, it will just duplicate and unparent it.

You can hold Shift when clicking on Snapshot to actually delete the snapshot from the snapshot group. The snapshot group itself will be deleted if the last object in it was deleted.

Snap to Poly

Intro

Sometimes it is necessary to quickly populate some surface with details and it is very tiresome to use something like “Snap Together” tool from native Maya. Bolts, surface details for booleans, pipe details and much more.

Snap to Poly function was created for this exact purpose and in conjunction with Randomize Transforms (from Instance) it can be a powerful detailing and modeling tool.

You can change the behaviour of Snap to Poly by accessing its marking menu (Hold RMB on the button)

Snap to Poly - Simple Snap

_images/snap_to_poly_demonstration.gif

Snap to Poly function by default will simply snap any number of objects to any number of selected faces on one object.

This function will snap and orient the objects based on their pivot and the normal component of the polygon selected.

You can select any combination of faces and objects and if, for example, number of faces do not match the number of faces, Snap to Poly will simply snap as many objects as it can.

To ease the selection process select the faces first, and then the objects in question. After that just click on Snap to Poly.

Snap to Poly - Instance and Snap

_images/snap_to_poly_instance_and_snap.gif

Instance and Snap is option in the marking menu (Hold RMB on the button) is useful when you need to instantiate a single object over a large number of faces (bolts, nuts or other surface details).

Just select the faces that you need and with this option enabled select only one object. After that you can simply click on Snap to Poly.

This will create procedural instances of the object so you can edit the original and see all the edits propagate to the instances.

Snap to Poly - Pre-Duplication

Pre-Duplication option (Hold RMB on the button) if enabled will always leave one unique object behind for the edit purposes.

Straighten, Interpolate and Smooth

Intro

When going deep into the poly modeling and adding hard surface details, it is sometimes important to redirect the flow of vertecies and edges.

Im Maya, the only “automatic” way to do so is to use “Edit Edge Flow” feature. Although powerful in its own way, it is not that useful when you have hard surface object and you just want a straight line between two verts, or smooth rounded transition between 3 vertecies.

This is where Straighten, Interpolate and Smooth functions come in.

Straighten

_images/straighten_edges_demo.gif

Straightening an edge is a very simple concept, however even this simple function is not available in Maya natively.

Straighten button will straighten the edge selection (or multiple edge groups) between their first and last vertex.



Note

Edge groups are just unconnected edges.

Selection order does not matter for Straighten function. You can select one edge group or multiple edge groups and use Straighten function only once to straighten all of them.

Notice how in the example gif, first straighten click only projects the vertecies on a straight line between the first and the last vert in an edge group. This is the default behavior of Straighten without any modifiers.

If you hold Shift + Straighten, it will equalize the positions of the vertices along this straight line. This is showed in the second click on the GIF.

Straighten - Marking Menu

_images/straighten_marking_menu.png

You can access the Straighten Marking Menu by holding RMB on the Straighten button.

In this menu you will find Local and World axis buttons.

Those buttons represent the axis to which the selected edge group should be flatten to.

Local will work as if you are trying to zero the scale (using scale gizmo) in the component mode.

World will work as if you are trying to zero the scale (using scale gizmo) in the world space mode.

Interpolate

_images/interpolate_demo.gif

Interpolate will smoothly interpolate the selected edge groups based on three points - first, middle, and last vert.

If there is no middle vert (odd number of edges selected) Interpolate will average between two nearest “middle” edges.

Interpolate will create a natural curve based on the vertices of the selected edges.

If you wish to change the shape of that curve, simply move first, middle or last vert of the edge selection.

Note

Unline Straighten, Interpolate will not project verts and just equalize them instead.

Smooth

_images/smooth_demo.gif

Smoothing is as simple way to smooth edges in the selected edge groups.

Smooth will average vertices in the selected edge group based on the smoothing multiplier (number on the left of the Smooth button).

Multiplier has a range from 1 to 99 where 1 is the smallest amount of smoothing and 99 is maximum smoothing.

If you repeat smooth command enough times, the edge selection will eventually turn into a straight line.

Fill Function

Intro

_images/fill_hole_tasks.png

Filling an open border (hole) in the mesh during modeling is one of the most annoying and time consuming tasks out there. If you wish to have a regularly spaced quads for further modeling, this task can take up to several minutes to complete. Filling a hole, cutting it with cut tool or even just bridging - it takes time.

Fill (Fill Hole) function in GS Toolbox tries to solve this issue with one click.

It works on rounded, curved and other complex surfaces.

The only limitation - you need to have an even amount of verts around the border for this to work.

The patch that is being created is welded to the object and is a part of it.

Warning

Due to complexity of the operation, the history on the object you are trying to fill will be deleted.

One Vertex Fill (Automatic)

_images/cylinder_fill.gif

The most basic task that can take too much of your time is creating a quadded cap on the open end of the cylinder. Some modelers even create special cylinders with quadded caps and then just import them when they are needed.

GS Toolbox Fill will solve this task in one click.

Simply select one vert on an open edge of a cylinder and click “Fill”.

The vert you select will determine the corner quad of the cap. By selecting different verts, you can rotate this cap to the orientation you want.

When you are filling irregular patches with quads, you can also select only one vert and Fill algorithm will try to fill the hole with even quads.

Two Vertex Fill (Custom Corners)

You can also select two verts on an open border and this way the algorithm will know where to put the first two corners of the quad patch.

Selecting two verts can result in a more predictable quad pattern and usually recommended.

Example 01 - Curved Polygon Strip

_images/example_curved_polygon_strip.gif

Here is a more complex example - curved surface with an opening.

In this case we want very specific pattern of quads to complete this shape.

We select two bottom corners of the shape, to show the algorithm where the first two corners should be.

You can select other corners this way as well, just remember that those corners should be next to each other.

Example 02 - Cube with Holes

_images/example_cube_with_holes.gif

In this example we have a cube that has two holes in it. One of those holes curves around the corner of the cube.

Just like in the previous example, we want to show the algorithm where to put the first two corners and then click Fill.

This will complete the shape and you will have equally spaced quads to continue modeling.

Example 03 - Curved Detail Surface

_images/example_curved_detail_surface.gif

In this example we have simple curved detail that has an opening that we want to fill.

It’s a perfect example where we need to select two corner verts for the algorithm to recognize and fill the pattern correctly.



Custom Patterns Fill

Custom patterns is a very powerful feature that allows to have different patterns of quads on the mesh based on the two vert selection.

There are always more than one way to fill an open border. Some of them work, some of them will result in a warning message and some of them will simply not fill the way you like. Experiment.

Example 04 - Cut Cylinder

_images/custom_pattern_01.gif

In this example we are selecting two different patterns of verts.

The first pattern will complete the cylinder shape.

The second pattern will create an interesting detail based on the cut part of the cylinder.

There are more patterns you can use in this case.

Example 05 - Sphere with Hole

_images/sphere_normal_fill.gif

In this example we have a sphere that is incomplete.

We can either fill it with quads in a pattern that will try to mimic the curved surface of the sphere (although, not perfectly) or we can have a more creative approach.

If you select the corners in a normal way you will simply complete the shape and thats it.


_images/custom_sphere_fill.gif

If you try other vert combinations, you can discover some very interesting patterns that can be a surface detail on their own.

Combine, Separate, Duplicate and Extract

Intro

_images/native_vs_toolbox_outliner_extract.png

Some functions in Maya are used extremely often and they tend to mess with the outliner grouping and organization.

Mayas Combine, Separate for objects and Extract and Duplicate for Faces leave behind a lot of unnecessary groups in the outliner and also they rename the objects you are using them on.

This can lead to confusion and give user a hard time looking for an object in the outliner.

GS Toolbox added those four functions that mimic Mayas own native ones, but they do not create groups and they try to keep the names of the objects intact.

In the example screenshot, you can see the same amount of Extract Face operations and the resulting outliner.

Combine

_images/combine_demo.gif

Combine operation will simply combine two or more selected objects together into one mesh.

It will not create any unnecessary groups and the name of the resulting object will be based on the name of the first selected object.

Separate

_images/separate_demo.gif

Separate will separate the mesh into its shells (unconnected geometry).

It will not create any unnecessary groups and the name of the resulting object will be based on the name of the original object.


Duplicate

_images/duplicate_faces_demo.gif

Duplicate will simply duplicate the selected faces leaving the original object intact.

The name of the new object(s) is based on the original object.

Duplicate will always separate objects.

Extract

_images/extract_demo.gif

Extract will extract the selected faces from the object.

By default it will only extract the faces, but it will not separate objects.

To automatically separate objects, Hold Shift before clicking on Separate button.

The name of the new object(s) is based on the original object.

Booleans

Intro

_images/booleans_demo.gif

Booleans are an extremely powerful concepting and modeling tool that allows user to quickly iterate through different shapes and make quick cuts, combine objects etc.

In Maya, booleans are extremely limited. After applying boolean operation user can’t change the original shape of the cutter or bypass it or even delete it.

GS Toolbox adds a special boolean menu that allows for editing, bypassing, changing the type of booleans and even deleting the cutters without loosing the original shape.

Boolean Menu

_images/boolean_menu.png

In the boolean section of GS Toolbox you will find three boolean operations, Toggle Group, Show Cutters and Select Cutters as well as Delete Bool Cutter and Apply Booleans functions.

Note the small triangle on the boolean buttons. This means that there is an additional mode available for this button when pressing Shift modifier.

Boolean Operations

When selecting objects for boolean operations it is important to remember the order of selection.

Ths First object is always the Boolean Base object. Base object is the object that you will add to or cut from using booleans.

All the objects selected after the first one will act as boolean “cutters”. They are the objects that will be merged to the base object or that will cut from the base object.

Note

First Selection -> Base Object

Everything Else after that -> Boolean Cutters (Operands)

_images/boolean_operations_demo.gif

Operations

  • Bool+ - This operation will combine (add) two (or more) objects to the original shape.
  • Bool- - This operation will subtract (cut) all the cutters from the base object.
  • Bool= - This operation will create a new object that is based from an intersection between Base Object and Cutter objects.

Holding Shift when applying boolean operation will automatically hide the wireframe of the boolean cutter object after the boolean operation.

Boolean Attributes

_images/boolean_attributes.png

Every boolean cutter has its own attributes (in the Channel Box):

  • Boolean - changing this attribute will activate or bypass the selected boolean cutter.

  • Boolean Operation - changing this attribute will change the boolean operation on the selected boolean cutter.

  • Boolean Classification - changing this attribute will change the boolean operation algorithm for one sided meshes.

    • Edge will treat the one sided meshes as if they have thickness. This way you can cut the object with one sided plane and no geometry will pass through this plane.
    • Normal will treat the one sided mesh as if it is infinitely thin sheet of paper, slicing the base geometry.

Show/Hide Boolean Objects

_images/show_hide_boolean_cutters.gif

You can easily show/hide all the boolean objects that are attached to the selected base object.

Toggle Group will show/hide the entire boolean group, leaving only the base object visible.

Show Cutters will show all the cutter object if you happen to hide them manually (or by using Shift modifier during boolean operation)

Clicking on Select Cutters will simply select all the cutters attached to the selected base object.

Delete Boolean Cutter

_images/delete_bool_cutter.gif

It is possible to delete the selected cutter without any side effects.

Simply select the cutter object (wireframe) and click on Delete Bool Cutter button.

Applying Booleans

If you are satisfied with the boolean object you have created, you can simply click on Apply button and it will duplicate the final object and hide the boolean objects. You can then always return to them.

If you don’t want anything left behind, simply select the boolean base object, hold Shift and click on Apply Booleans button. This will clean up the scene and leave you with a new geometry you have created.

Additional options

In the options menu you can choose an option to group together applied booleans. This will result in the same behavior as normal Apply, but it will create a single group in the outliner and store the objects there.

Boolean Algorithms

_images/boolean_options.png

When selecting multiple cutters for the boolean operation, it is important to know that there are actually three distinct algorithms available for “multi-boolean” command.

You can find those algorithms in the Options menu, alongside with some other boolean options.

Three boolean algorithms:

  • Merged - the fastest and “cheapest” algorithm. It will merge all the cutters together into one object before the boolean operation, resulting in faster boolean and sacrificing individual attributes for each object.
  • Optimized (Default) - this algorithm will leave the objects separate, but it will use only one boolean operation on all of them. This results in relatively light boolean operation with the ability to edit/move individual objects, but sacrificing the individual bypass and operation change capabilities of the cutters
  • Advanced - this algorithm is the slowest and will apply separate boolean operation for each of the selected boolean cutters. You get the full control and loose some performance this way.

Other options:

Boolean Wireframe Output will determine whether the output base object should be in wireframe or shaded mode. This is useful when using booleans with Instance+. This option will be automatically applied if Instance+ is detected.

Automatic Boolean Instance Conversion will automatically convert all the instanced objects to regular geometry if they are detected. Disabling this option will result in a pop-up each time the instanced object is detected.

Live Plane and Align

Live Plane

_images/live_plane_demo.gif

Live Plane function allows to add a live construction plane that is aligned to the selected polygon.

This is extremely useful if you need to align on or multiple objects (for boolean purposes, for example) to the selected object.


Switch to Cam

Each time you create a Live Plane you also create a new camera that follows that plane and aligned to it.

Switch to Cam will switch to that camera.

Align

_images/live_plane_align.gif

Creating geometry on a live plane can cause this geometry to have a wrong rotation and orientation.

Align button will align this new geometry to a Live Plane.

Quick Materials

Intro

Maya has a powerful node editor for editing materials and shaders - Hypershade.

Although it is extremely flexible and customizable, it is rather slow to use if you only need a few simple materials in your scene.

GS Toolbox adds 12 quick material swatches that you can use to quickly create, apply and store materials.

Materials can be stored as presets that can then be accessed from any other scene.

Materials Menu

_images/materials_menu.png

The visible part of the Quick Materials system is the Materials Menu.

Here you have 12 swatches that can be filled with custom materials.

Clicking with LMB on a filled material slot will apply this material to any selected object(s)

Holding RMB on the material slot will opent its Marking Menu

Materials Marking Menu

_images/materials_marking_menu.png

Each of the 12 material slots have its own unique set of functions, hidden in the marking menu (Hold RMB on any slot).

Those function are:

  • Create Maya Material - this function opens a window of supported Maya materials and clicking on any of those materials will create a new material and place it in the corresponding material slot.
  • Create MatCap Material - this function opens an “Open File” window where you need to navigate and open a MatCap material image. This new MatCap material will then be placed in the corresponding slot. You can find plenty of MatCap images on the internet.
_images/select_material_window.png
  • Select From Scene Materials - will open a window that lists all of the supported materials currently available in the scene. Selecting a material and clicking Ok will put the selected material in the corresponding material slot. Update List will update the list of materials in the scene. Unlock Delete + Delete will delete the selected material from the scene.
  • Clear Slot will simply remove the material from this slot. The material itself will not be deleted.
  • Save Preset will open a “Name Your Preset” dialog where you can enter the name of the preset and save it for later use.
_images/preset_editor.png
  • Manage Presets will open a preset manager window where you can Import, Rename and Delete Presets. Import will import the saved material and put it into the corresponding slot.

Options

Options Menu

_images/options_menu.png

Options menu holds all the options available for the functions of GS Toolbox plug-in. You can find it on the top of the menu window.

  • Update Quick Selection Groups - will update the state of all 20 selection set groups if they happen to not update for some reason. Mostly for debug purposes.
  • Clear Selection Groups - will remove all the selection groups currently active.
  • Groups Hidden in Outliner - determines whether the groups from GS Toolbox should be visible in the outliner or not.
  • Clear Custom Materials - clears all the materials from the Quick Materials menu. It will not delete the materials from the scene.
  • Edge Highlight Color - selects a highlight color for the Select by Angle function.
  • Multi-Boolean Algorithm - see Boolean Algorithms.
  • Boolean Wireframe Output - see Boolean Algorithms -> Other Options.
  • Automatic Boolean Instances Conversion - see Boolean Algorithms -> Other Options.
  • Store Applied Booleans in a Separate Group - will store the applied booleans in a separate group in an outliner
  • Enable Additive Creasing - when checked Crease Plus will not creases on the entire mesh and instead only replace those crease that math the angle tolerance. Disabling will remove all creases from the mesh that does not match the selected angle tolerance.
  • Crease/UnCrease Only Face Perimeter - this option will determine whether the Crease function should crease all the edges in the selected face or only the perimeter. This behavior is inverted when holding Shift button.
  • Too Many Instances and Too Many Edges - whether to show the warning dialogs when either too many instances are being created or too many edges are being selected for some functions.
  • Reset Plug-in to Defaults - will reset all the settings and the plug-in to the default state.

Useful tips

Automatic startup of the plug-in

In order to automatically start the plug-in during Maya startup you need to modify (or add) userSetup.py file in your scripts folder.

Instructions:

_images/userSetupFile.png
  • You need to create userSetup.py file in your Maya scripts folder.
  • Use the correct folder for your version of Maya.
  • For example, for Maya 2019 this file should be in (\Documents\maya\2019\scripts)
  • Just create an empty text file called userSetup.txt, paste the code there and rename the file to userSetup.py.
_images/userSetupFileStructure.png
  • If you already have this file in the folder, open it with any text editor and paste the code at the bottom of the file.


Code to paste to userSetup.py file:

import maya.cmds as mc

def startupCommands():
    import gs_toolbox.main as tb_main
    from imp import reload
    reload(tb_main)
    tb_main.main()
mc.evalDeferred(startupCommands,lp=1)

You can also download the userSetup.py file here: userSetup.py