ngSkinTools v2
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.
Different Way to Paint Skin Weights
There’s no magic bullet for perfect skin weights. ngSkinTools enables a flexible and artistic workflow, while providing all the necessary tools for precision.
Layers
Layers — a proven technique in image editing software, this time — for painting skin weights. Forget influence locking and weights micro-managing techniques — go wild with layers, start dirty, experiment, refine later — it’s meant to be a creative process!
Smoothing weights
Though just another feature in ngSkinTools, one of the most loved by it’s new users, mainly because it’s so simple, and one of the first to be noticed. No strange artifacts or undo/redo problems, operates on all joints in the layer, it just works. Don’t over-do it:)
Mirroring
Mirror weights in any pose, or just enable mirror effect on a layer and symmetry will be updated automatically as you paint. You also have numerous options to control how vertexes and influences are matched between opposite sides of your rig.
whoa there, pardner!
Your request has been blocked due to a network policy.
Try logging in or creating an account here to get back to browsing.
If you’re running a script or application, please register or sign in with your developer credentials here. Additionally make sure your User-Agent is not empty and is something unique and descriptive and try again. if you’re supplying an alternate User-Agent string, try changing back to default as that can sometimes result in a block.
You can read Reddit’s Terms of Service here.
if you think that we’ve incorrectly blocked you or you would like to discuss easier ways to get the data you want, please file a ticket here.
when contacting us, please include your ip address which is: 95.214.216.211 and reddit account
whoa there, pardner!
Your request has been blocked due to a network policy.
Try logging in or creating an account here to get back to browsing.
If you’re running a script or application, please register or sign in with your developer credentials here. Additionally make sure your User-Agent is not empty and is something unique and descriptive and try again. if you’re supplying an alternate User-Agent string, try changing back to default as that can sometimes result in a block.
You can read Reddit’s Terms of Service here.
if you think that we’ve incorrectly blocked you or you would like to discuss easier ways to get the data you want, please file a ticket here.
when contacting us, please include your ip address which is: 95.214.216.211 and reddit account
benmorgantd / bm_paintTools.py
Save benmorgantd/019ed6000982b11392b529870422f0a3 to your computer and use it in GitHub Desktop.
Skin Weight Painting Tools for Maya
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
import maya . cmds as cmds |
import maya . mel as mel |
# bm_paintTools |
# Intelligent tools for attribute painting |
# optional values of op (operation) are absolute and smooth. Absolute replaces |
def floodSelection ( value = 0 , op = «absolute» ): |
if len ( cmds . ls ( sl = 1 )) == 0 : |
return |
# if we’re not currently in the paint skin weights tool context, get us into it |
if cmds . currentCtx () != «artAttrSkinContext» : |
mel . eval ( «ArtPaintSkinWeightsTool;» ) |
# first get the current settings so that the user doesn’t have to switch back |
currOp = cmds . artAttrSkinPaintCtx ( cmds . currentCtx (), q = 1 , selectedattroper = 1 ) |
currValue = cmds . artAttrSkinPaintCtx ( cmds . currentCtx (), q = 1 , value = 1 ) |
# flood the current selection to zero |
# first set our tool to the selected operation |
cmds . artAttrSkinPaintCtx ( cmds . currentCtx (), e = 1 , selectedattroper = op ) |
# change the tool value to the selected value |
cmds . artAttrSkinPaintCtx ( cmds . currentCtx (), e = 1 , value = value ) |
# flood the tool |
cmds . artAttrSkinPaintCtx ( cmds . currentCtx (), e = 1 , clear = 1 ) |
# set the tools back to the way you found them |
cmds . artAttrSkinPaintCtx ( cmds . currentCtx (), e = 1 , selectedattroper = currOp ) |
cmds . artAttrSkinPaintCtx ( cmds . currentCtx (), e = 1 , value = currValue ) |
def selectionToVerts (): |
# converts the selection to verticies and gets us into the paint skin weights tool |
mel . eval ( «ConvertSelectionToVertices;» ) |
if cmds . currentCtx () != «artAttrSkinContext» : |
mel . eval ( «ArtPaintSkinWeightsTool;» ) |