# ngSkinTools 2

Viktoras Makauskas
ngSkinTools is a skinning plugin for Autodesk® Maya®, introducing new concepts to character skinning such as layers, any-pose-mirroring, enhanced paint brushes, true smoothing, and more.
Description General Usage Instructions Screenshots Installation/Uninstallation Known Issues Contact Version History

# Description

### Layers

Skinning layers are a central feature of ngSkinTools. With them, you break your rig down into easier manageable parts and edit them separately, then blend everything together through layer transparency.

They’re not just a simple way to make your work more organized - they also physically isolate groups of influences from the rest of the rig, so paint and edit operations won’t mix-in influences you were not expecting. This also allows you to do things that were impossible before: per-layer mirroring, adjusting influence weight up/down through layer transparency, blend transferred weights with previous weights, to name a few.

### Viewport tools

Just like in the previous version, ngSkinTools brings its own weight painting tools. Improving viewport experience is the main focus of V2, and it's complete revamp over the previous implementation.

- Selecting influences on screen, a #1 requested feature from users, is nowhere. Just hold “S” and drag over the surface to select dominant influence from that part of the mesh, or hover over a joint pivot to select precisely the joints you want;
- In addition to the usual surface projection mode for the brush, the new “screen” brush projection mode is useful when you want to quickly set weights for both sides of the mesh;
- Custom shortcuts while in paint mode allow for quick access to intensity presets;
- Color feedback is now provided through VP2 APIs, greatly improving the performance of displayed meshes.

### Smoothing

Keeping weights in harmony with each other is not easy. ngSkinTools help you smooth weights with the control you need, allowing you to control the intensity, number of iterations and effective radius. For very dense meshes, added “iterations” argument now allows for the quicker spread of smoothness over larger areas of the mesh.

The “relax” tool from V1 is gone. With major performance rework, you’ll notice that simple flood-smoothing is now much faster and should be a near-instant operation even with large meshes.

The opposite “brother” of smooth brush, “sharpen”, is also there - for cases where you want to just bring out the dominant influences

### Mirroring

Mirroring is one of the most frequent automated tasks you might want from your skinning tool. With ngSkinTools, you’ll be able to:

- Mirror rigs in any pose; no need to switch to T-pose;
- Have granular control over left/right/center influences mapping, matching left/right joints by naming convention, joint labels, etc;
- Easily mirror parts of your rig by leveraging layers;
- Automatic mirroring of weights to the opposite side as you paint so that you don’t need to get distracted from painting while working on symmetrical layers.

### Layer effects

With the “mirror as a layer effect” feature, ngSkinTools introduce a new concept to ngSkinTools - layer effects. This differs from automatic mirroring of weights as it’s not directly modifying your layer weights; instead, it’s a post-effect that happens in the background buffer. This has multiple benefits, like a much cleaner seamline of left/right sides, the ability to tweak mirroring settings AFTER weights are painted, etc.

### Compatibility

As it's predecessor, ngSkinTools2 operates on standard Maya skinCluster (also known as “smooth skin”), so no custom nodes will be required to use your rig. The plugin has a couple of custom nodes, but they’re only required while you work on setting up your skin weights and can be deleted after, so your work should stay compatible with most pipelines out there.

### Performance

A lot of speed improvements have been made since V2, like improving the utilization of modern multi-core processors, or eliminating bottlenecks through much heavier use of performance profiling. Having a responsive, snappy tool is always a pleasure to work with.

# General Usage Instructions

The installer from Autodesk App Store loads the application under the Custom shelf.

http://www.ngskintools.com/docs/

# Screenshots

# Commands

# Installation/Uninstallation

The installer that ran when you downloaded this plug-in from Autodesk App Store has already installed the plug-in. Windows only: To uninstall this plug-in, simply rerun the installer downloaded, and select the 'Uninstall' button, or you can uninstall it from 'Control Panel\Programs\Programs and Features', just as you would uninstall any other application from your system. The panel on the Plug-ins tab will not be removed until Maya is restarted.

Linux and OSX: To uninstall this plug-in, simply delete the module directory from your system. The panel on the Plug-ins tab will not be removed until Maya is restarted.

Download .msi and run it on your computer. The installation will place files in `C:\ProgramData\Autodesk\ApplicationPlugins\ngskintools2` (unless your `%ProgramData%` the environment variable is different).

Using an autoloader system, nothing needs to be configured additionally. Maya scans autoloader locations for plugins at startup and configures each discovered plugin automatically. The autoloader will create a “ngSkinTools2” shelf with a button to open UI.

Now, restart Maya and a new tab ngSkinTools2 should appear on your shelf.

### Available on

Windows | Mac OSX | Linux

# Additional Information

# Known Issues

For upcoming features and bugfixes, visit ngSkinTools v2 public roadmap.

# Contact

Company Name: Viktoras Makauskas
Company URL: http://www.ngskintools.com
Support Contact: support@ngskintools.com

# Author/Company Information

Viktoras Makauskas

# Support Information

If you have a problem, a question, a feature request, let me know. Your feedback is what drives the project forward!

Documentation

Features, tutorials & FAQ available at ngSkinTools official website.

Contact in private

Use the online contact form or email to support@ngskintools.com.

# Version History

Version Number | Version Description
--- | ---
2.0.24 | 2.0.23 (2021-Mar-12) * Fixed: stylus pressure is not updated during the stroke; * Fixed: Maya crashes when smoothing an empty layer with "adjust existing influences only"; * Fixed: (regression) UI is not opening on macOS;
2.0.23 | 2.0.23 (2021-Mar-10) * Added: adjustable brush size: don't reset to zero when changing brush size in the viewport. * Added: randomize influence colors in paint/display settings; * Added: layers on/off "eye" button in layers tree UI; * Fixed: ngSkinTools will not modify skinCluster's `normalizeWeights` value anymore; for performance boost, you still can disable skinCluster's normalization by setting `normalizeWeights=None`. In "normalizeWeights:interactive" skinCluster mode, Maya will no longer complain that "The weight total would have exceeded 1.0". ngSkinTools will try extra hard to normalize each vertex to a perfect 1.0; * Fixed: UI is not displayed correctly on high DPI displays when UI scaling is enabled in Maya;
2.0.22 | 2.0.22 (2021-Feb-06) Added: convenience tool for adding influences to existing skin clusters. Select influences, target mesh and select “Tools | Add Influence”; Fixed: weights will now display properly when viewport option “use default material” is turned on; Added: (v1 feature) Limit max influences per vertex before writing to skin cluster; Added: (v1 feature) Prune small weights before writing to skin cluster. 2.0.21 (2021-Jan-11) Added: copy/paste vertex weights between different selections (tab “tools” - “copy component weights/paste average component weights”); Added: tool “fill transparency” - for all empty vertices in a layer, assign weights from closest non-empty vertex; Added: “duplicate layer” operation; Added: “Merge layers” operation: combine selected layers into one. 2.0.20 (2020-Dec-02) Fixed: Linux: crashing on startup 2.0.19 (2020-Nov-28) Added: influences mapping in mirror screen will now allow matching joints by DG connections; if symmetrical joints are linked between themselves with message connections, ngSkinTools will be able to leverage that information when mirroring weights; Added: symmetry mesh: an option to provide an alternative mesh for calculating vertex mapping for mirroring; Fixed: deleting visibility node can crash Maya sometimes, e.g. switching to component mode (F8) while paint tool is active 2.0.18 (2020-Nov-20) Added: “use all joints” option for “weights from closest joint” tool; few internal optimizations to speedup operation; Added: “weights from closest joint” option: create a new layer Fixed: “weights from closest joint”: the tool is only using joints as spots, but not as segments; Fixed: after “weights from closest joint” operation influences list is not refreshed; Fixed: “weights from closest joint”: “assign” button sometimes disabled; 2.0.17 (2020-Nov-19) Fixed: “resume in workspace” error while opening UI 2.0.16 (2020-Nov-15) Added: skin data will be compressed for ngSkinTools data nodes, which should substantially reduce file size for scenes with lots of skinning layers; Added: paint mode intensity sliders are now exponential: “smooth”, “add” and “sharpen” sliders will now be more precise for lower values, and “scale” mode will allow for more precision when setting high values. 2.0.15 (2020-Nov-10) Added: new “Set Weights” tab contains tools to apply weights to vertex/edge/polygon selection instead of painting. Added: a new option for smooth tool - “only adjust existing vertex influences”; when this is turned on, the smooth tool will prevent influences weights spreading across the surface Fixed: layer mirror effects correctly saved/loaded in files; Fixed: mask mirror effect was not correctly used by layer blending engine 2.0.14 (2020-Oct-04) Fixed: occasional crashes when using mirror effect on layers; Additional stability fixes. 2.0.13 (2020-Oct-04) Fixed: minor bug in 2.0.12 blocks UI from opening; 2.0.12 (2020-Oct-03) Added: option to view used influences in influences list; Added: hide “DQ weights” channel in influences list if skin cluster skinning method is not set to “Weight Blended”; 2.0.11 (2020-Oct-01) Fixed: broken Linux builds 2.0.10 (2020-Sep-26) Added: pressing “f” while painting focuses viewport camera to current paint target; for joints and other influences, the current joint pivot is used as camera interest point; when current paint target is a mask, viewport centers around painted values; Fixed: influence mapping UI error if some influences are no joints; 2.0.9 (2020-Sep-11) Fixed: undo paint crashing Maya; Fixed: incorrect brush behavior with multiple viewports open; Fixed: incorrect mesh display / VP2 transparency setting sensitive; Fixed: clearing selection while painting does not update the display of current mesh;