ngSkinTools

News

Release - 1.4.1

Couple of bugfixes, thanks for reports. Could not get the fix out yesterday because of this global DNS outage.

  • Bugfix: Maya sometimes would think that ngSkinTools layer data node is unnecessary and would automatically delete it. I hope I convinced it to no longer do this (more info on issue tracker)
  • Bugfix: undo should now work properly along with interactive mirror feature.

Read more

Release - 1.3.0

Couple of minor fixes, and sneaking in some experiments.

  • Experimental feature: interactive mirror while painting, in any pose. Enable in Paint, Brush Settings (commercial licenses only);
  • Some reorganization in license activation wizard;
  • Fixed: weird python error in license activation wizard;

Read more

Release - 1.2.2

Some bug hunting done over the weekend.

  • Critical fix: invalid skinCluster weights handling, introduced with 1.2.0 version;
  • OSX: fixed crashes when saving Maya 2017, 2016.5 scenes;
  • If skin was bound with “Colorize skeleton”, mesh will use joint colors in paint mode;

Read more

Issues with release 1.2.0

There’s been various different reports about ngSkinTools behaving weird with the last release (vertices collapsing, wrong joints updated, etc). I think most of them come from same root cause - can you see if the below installations fix your issue?

Currently just for Windows, wanted to get this out asap:

OSX/Linux builds to follow in ~12 hours (no access to my build setup).

Release - 1.2.0

A little bit late for Maya 2017 release, I thought I’ll end up rewriting the whole UI. Please note that in Maya 2017 you can utilize the Workspaces layout - after opening up ngSkinTools UI, just dock it somewhere and save along your prefered workspace for skinning.

Summary of changes:

  • Upgrade to Maya 2017. A lot of rework for UI to support breaking changes in Maya API;
  • UI fixes for Maya 2016.5;
  • Version check should now work better with minor Maya upgrades;
  • Removing some joint colors for paint mode, to make wireframes a bit more visible;
  • Some internal data restructure, slight performance increase should be observed on larger meshes;
  • Bugfix: fixes to child layers order after import.

Read more

Release - 1.1.0

  • Bugfix: import/export and skin transfer should now properly handle layer hierarchy;
  • “Display options” in Paint tab now allows switching between “colorized” view (previous default display mode for influence weights) and simple white-black gradient for just the current influence;
  • increased contrast for influence colors;
  • Added support for Maya 2016 symmetry selection;
  • Added some self-healing for invalid weight values: if for any reason (additive calculation error, wrong initial values in skin cluster) there are influence weights below 0.0 or above 1.0, they are capped back into 0..1 range during skinCluster weight calculation (which is happening most of the time interactively).

Read more

Release - 1.0.971

Minor update to previous release.

  • Bugfix: if RLM_LICENSE environment variable was in form of “port@host”, it was impossible to proceed with license activation dialog. Changed it so that RLM_LICENSE environment variable is used only if it contains at least one valid local directory in it (RLM_LICENSE can have multiple entries, see http://www.reprisesoftware.com/RLM_Enduser.html).
  • Bugfix: “Plugin is up to date” message should not show up with each ngSkinTols restart anymore;

Read more

Release - 1.0.969

An update to licensing implementation, and a few bug-fixes. As always, thanks for your feedback and help hunting the bugs.

Not all bug fixes made it into this update - see tracker for progress on the remaining ones

  • Updates to license key handling: license activation now uses license key file. The file can be obtained automatically or requested via email - follow the activation wizzard for details. Current owners of license key will have to re-enter the key after the upgrade.
  • Bugfix: importing or duplicating layers used to create huge undo queue, consuming a lot of memory;
  • Bugfix: some ngSkinTools operations could crash Maya after being repeatedly called with invalid parameters;
  • Bugfix: ngSkinTools would crash when skinCluster has invalid weights values (vertex IDs that do not exist, invalid influence indexes)
  • Internal rework: simplified check-for-upgrade implementation.

Read more

ngSkinTools for Maya 2016.5 released

Ok, so this took longer than expected. Probably related to the fact that I decided to revamp the whole website, repackage ngSkinTools in Autodesk appstore compatible format,, and re-setup my whole build environment for four latest Mayas version on all three operating systems. There were a lot of Maya’s launched and relaunched.

Expect slight disruption with the website and the tool while everything settles down.

Read more

Availability of ngSkinTools for Maya 2016.5, license changes

Recently I’ve been flooded with messages asking when I’ll update ngSkinTools for latest Maya release. The answer is “soon”. First, there’s one bigger feature I want to get finished and documented, and then release an update for all supported Mayas, including 2016.5. Then, I’m doing some preparation for Autodesk App Store, which means some changes to how plugin is packaged for distribution, which means more changes and more testing. Another thing I’m considering lately is introduction of paid plugin version.

Read more

OSX builds

Very early OSX builds for Maya 2015 and Maya 2016 are ready. Only (briefly) tested on El Capitan, so let me know if there are any problems. You can also try installing using “install.py” script now. Open console, change folder to where you extracted downloaded archive, and run “python install.py”. If it finishes without errors, just restart Maya and you should be good to go. I’ll see if I can further simplify the installation, like a self-executable installer we have for Windows.

Read more

OSX is funded!

So, ngSkinTools now has OSX hardware to be built on! Big thanks to all that contributed - including those that did before the campaign was announced. I’m proceeding to setting up the build - give me another couple of days. For now the plan is to ship Maya 2015 and 2016 binaries first, as quick probe showed it could be a non-trivial challenge to build a 2014 binary on El Capitan.

Read more

OSX - take 2

So ngSkinTools never had good support for OSX, for obvious reason that I don’t own the hardware to build it on. I’ve made an attempt in the past to crowd-source a Mac of some sort, that didn’t get a lot of attention. I’ve tried to use a virtual machine of shady origins, but the experience was so painful I could not force myself to spend time on this, not to mention the viewport never worked, so testing was severely handicapped as well.

Read more

Release - 1.0.960

Thanks all for feedback - here’s your fixes and additions. Fixed: weights transfer fails to import influences where source logical index is not available in destination; Fixed: “assign weights by closest joint” works incorrectly with meshes that were bound not at zero position; Feature: UV based mirroring. Enable this by changing “vertex mapping mode” when initializing mirror. Mirror axis is fixed U=0.5 (imagine vertical line dividing UV quadrant in half), so you might need UV layout created specifically for mirroring; Feature: Copy/paste behavior changed when vertex selection is made: all weights for selected influence/mask still copied to memory; “Cut” now zeroes-out selected area only “Paste” only affects selected area (can be different than on copy/cut) Soft selection is supported Minor UI rearrangement in “Transfer Weights” dialog; Changed how initialization of first layer (reading weights from skinCluster) happens in some corner cases, and this might have degraded performance of this operation slightly;

Release - 1.0beta.954

Fixed: importing weights should be much faster now Slight restructure of import/export menu items (no more submenu for a single option JSON) Slight changes and fixes to “help” menu - link to issue tracker works again, added contact, donate links. Let’s not call it “beta” anymore. It still might have bugs, though:)

Release - 1.0beta.949

Another bug hunted down, thanks to Parzival Roethlein. Fixed: crash under certain circumstances during file save using ASCII file type + DQ blend weights present; shift/ctrl paint modifiers should now work in non-Windows OSes as well, where PySide is available in Maya (included by default since 2015).

Release - 1.0beta.947

Mainly a fix release, but sneaking in a few improvements. Layer drag/drop won’t work on 2011 Maya; did not want to add another hack. This will probably be the last ngSkinTools to be released for Maya 2011. Fixed: mirror should be more precise now in matching left-right vertices; Fixed: undo should now be fast when painting once again; Fixed: multi-influence selection sometimes could fail to work properly; Middle-mouse drag of layers list allows re-arranging them; layer order is preserved in multi-layer drag/drop as well; Paint brush intensities can now be set above 1.

Read more

Release - 1.0beta.936

It’s been a while I moved primary target platform of ngSkinTools to Maya 2015, and now few recent updates broke compatibility on older Mayas. Really reminds me I need to set up a test suite running across all Maya versions:) Fixed few incompatibility issues on Maya 2011, 2012, 2013.

Release - 1.0beta.932

Another embarrassing bugfix release. Hopefully this one is the last of those nasty file format problems we’ve been having in last few days. Fixed: recent file storage changes broke ASCII (.ma) files; Fixed: mirror/transfer could cause some spikes when copying skin weights;

Release - 1.0beta.935

Continuing on fixing loose ends, thanks to all providing feedback! If there is not going to be any more urgent fixes to be done, I’ll spend some time stabilizing the project now. There’s code to be cleaned up and there’s documentation to be written. Fixed: When initializing skinning layers on the DQ-weight-blended skin cluster, DQ weights will now be correctly loaded into initial layer. Fixed: another update for closest point matching in mirror or transfer, some glitches were still occurring since the introduction of UV transfer mode; Fixed: mirror direction ended up being inverse when using “seam width = 0”

Release - 1.0beta.930

A few serious issues with previous build 925 fixed. Critical fix: major bug in previous build(925) corrupting Maya files in certain circumstances; Fixed: UV based transfer should now produce much smoother results; Fixed: “closest vertex on surface” transfer should again operate normally, introducing UV transfer broke it’s closest point algorithm; Fixed: skinCluster is now correctly updated after weights transfer; Fixed: DQ weights channel now correctly respects layer on/off flag and layer opacity value.

Read more

Release - 1.0beta.925

Added a few more features based on your feedback. As always, feel free to contact me and shift development priorities to your advantage! Dual Quaternion blend weights painting was way too involving, and a lot of old code needed touching/rework - if you notice anything broken, please report asap. Added Dual Quaternion weights painting when skin cluster “Skinning Method” is set to “Weight Blended”. The new feature should be available across all tools, including painting, mirroring, transfer, import/export, layer duplicate, weights copy/paste; Vertex match mode can now be specified when transferring weights; Closest point on surface (previous default implementation) UV space By vertex ID (old implementation where vertexes were matched by their IDs) UV space will only work when transferring mesh to mesh (will default to “closest point” when importing weights from file) Some stability improvements.

Read more

Maya 2016 builds

Windows/Linux builds for Maya 2016 are online. Apologies to OSX guys, you’ll have to wait another day - still sorting out build environment.

Release - 1.0beta.920

Another little bug fix update. Fixed: Issue smoothing imported layers (#89588120) Fixed: Importing/transfering weights does not work correctly on the mesh which does not have it’s translate reset to (0,0,0) before skin binding.

Release - 1.0beta.918

Fixing a severe bug, and some experiments with export format. Fixed: Maya crash when merging layers; Json export: output file is now formatted into multiple lines (was a single-line compact format before); will help those people that are poking their noses inside exported files - e.g. for version-control purposes. I’ve done some dirty magic to make it more compact than plain json.dumps with indent=2, so that all numeric arrays (e.

Read more

OSX test build

With a big red warning that it’s a first time ever I’m building Maya plugin for OSX, let’s see if it at least works. For now only Maya 2015 version is available, working on setting up 2014 build as well. Ignore any installation guides on the website and just do this for now: Download archive from downloads section; extract somewhere in permanent location; From extracted files, copy ngSkinTools-module.txt to /Users/<user name>/Library/Preferences/Autodesk/maya/2015-x64/modules; “modules” folder might not exist - just create it.

Read more

Release - 1.0beta.915

Valentine’s day update! Hopefully you’re not working today and will happily check this out on Monday. New feature: “Prune Small Weights” now also available as a post-processing filter in the “Settings” tab. This does not modify layer weights; instead, when enabled, ngSkinTools will not write small weights into skin cluster. E.g. weights joint1:0.99, joint2:0.01 will become joint1:1.0. Fixed: Maya crash when MllInterface.getCurrentInfluence() is called without anything selected.

Read more

Release - 1.0beta.912

A small discussion happened on Twitter, adding a small feature as a result. Renamed “Assign Weights” tab to “Edit Weights”; Added “Prune Small Weights” to “Edit Weights” tab. Works pretty much like standard Maya “Prune Small Weights”: set all weights lower than X to zero. Operates on selected layers only, and allows pruning in layer mask as well.

Release - 1.0beta.910

As it’s been pretty quiet regarding bug reports (except for those nasty occasional shelf issues), another small feature update I did the other day. Feature: “Merge Layer Down” action. Select a layer other than the lowest, and it will be merged with the layer below it. Will help reduce the amount of those small helper layers you might be creating.

Release - 1.0beta.902

So… A slightly bigger release this time. Been spending my nights since early December on all of this, hopefully it was worth it. As there were quite a few changes here, I would generally expect some minor inconveniences around features that were touched. Fixed: Maya 2015 crashes when scene with ngSkinTools data is being saved into .ma file; A lot of changes around mirror, import, and transfer weights; Added a long outstanding and highly requested feature to transfer skin layers from one mesh to another; Possible to review and adjust influence mapping before transfer is done; Different source and destination mesh topologies are supported; Import on a changed mesh is now also possible; Revamped “Init Mirror” window, should make working with manual influence matching a bit easier; A big rework on influence matching algorithm, new matching engine is now used for import, transfer and mirror; Better prediction of left/right influences when matching by name or position; “Ignore suffix” support for left/right influences - previously only prefix was supported; An option to ignore namespaces when transfering/importing weights; XML export option removed from UI for now, thinking to dump the feature in the long run; XML only made sense for older Mayas that did not have JSON support; JSON is just an overall more compact format for the type of data to be stored (especially numeric arrays);

Maya 2015 builds, and a brain dump

I’ve decided to close public ngSkinTools source repository. Seems like releasing source code did more harm than good - an interest for support from a credible company was shown, but the open source was a huge negative factor in negotiations. Of course, the fact that this open-source initiative failed is primarily my fault, it’s not like you can just post the code online and expect for features to pour in, right?

Read more