mesh Based controls
Tools & Techart Topics
there was a request on the ask a rigger discord on how the setup presented by oscar medina would be done through simple maya nodes.
based on the video i concluded that the objects on the setup where using the controller tag node, this because the controller tag has the option to show and hide based on the proximity of the mouse to the object
the added bonus of the control tag is that it uses the message plug to connect the to controller object, this is a plug that does not push/pull data and will not cause dirty propagation, its an efficient way for maya to use callbacks on the connected object without making the scene more heavy outside manipulation. the control tag also provides information to maya that the object should be calculated in parallel evaluation during manipulation time making the rig faster while posing.
the next element is to make sure that the control is always visible, since we are dealing with a mesh based control that should display the edges it can prove a bit more difficult to work with, in the current example file the mesh is quite easy to build as i removed the parts manually but in script this could be done through getting the skinning information (similar to how a proxy mesh could be created automatically)
for the mesh to always display the wireframe, the objects display needs to be overridden to not display the surface, this will make sure that maya draws only the edges the color of the wireframe can be altered here as well. in order to get thicker edges for display and easier selection the faces can be split in the the uv editor and border edges could be chosen for display. if better selection is necessary the surface attribute can be left on and a transparent shader could be used for the control
once these objects drive the joints they will behave as if they are static and the setup is half way done, the only thing that now needs to be done is deforming the controllers based on the mesh.
with some deformers this might result into double transforms or even cycles, but using the proximity wrap only focusses on the shape of the control and not on the transform. keeping the setup out of a cycle using the deformed mesh as a base and the control as the driven object the proximity wrap deformer can be used to give the desired deformation
using the default settings, where the skinned mesh is the driver, the control mesh the driven object based on surface proximity gave me nice results in the first test and resulted in the scene that can be downloaded below
the file can be found here: Maya 2022 file