Mirror influences in Maya rigs

TLDR version: if you’re building animation or rigging tools for Maya, and you’re interested in ways how people setup rigs to map their left and right joints, here’s a summary of various ways spotted in the wild. One thing I wanted to fix for quite a while in ngSkinTools is how left side influences are matched to corresponding right side influences and vice versa. Standard Maya weight mirroring tools simply match by joint position, so I felt pretty good about also giving the option to match by name: if you have L_clavicle and R_clavicle, you just say “I’m using L_, R_ as prefixes”, ngSkinTools drops these prefixes and finds two joints named as “clavicle”. [Read More]

Local DNS on windows - when "nslookup" works but "ping" fails

After upgrading my router I somehow managed to break DNS name resolution on local network, but, obviously, only for Windows machines. After some trial and error, I managed to find relevant DHCP settings on my WRT3200ACM: IP reservation also allows to edit host name for that IP. So, first part is done, DNS works: > nslookup ngst-osx Server: Linksys01640 Address: 192.168.1.1 Name: ngst-osx Address: 192.168.1.138 But next part is disappointing: [Read More]

skinCluster & "The weight total would have exceeded 1.0" warning

When programmatically setting weights on Maya’s skinCluster, you might encounter a warning: # Warning: Some weights could not be set to the specified value. The weight total would have exceeded 1.0. # So, clearly a bug in your code, right? This is what I was assuming, until the obvious hit me: “ok, let’s find out the actual thresholds first”. Behold, a test harness: from maya import cmds def test(testValue, expectationOk): cmds. [Read More]

Maya compiler versions

Working on ngSkinTools.com plugin, one complication I face almost constantly is properly compiling C++ plugin for multiple Maya and operating system combinations. While I often hear from other plugin developers that it does not matter much and using latest compiler works, that’s not the usual case for me. Some examples: File saving/loading on Windows will crash because of MPxData API. Solution: stick to recommended compiler version for each specific Maya release. [Read More]

ngSkinTools build setup rework

For a very long time ngSkinTools was being built with a setup that “just happened”. Apache Ant building C++ binaries, python scripts calling python on another venv.

It’s been the part that I’ve been most afraid to refactor.

[Read More]