Skin Magic

Skin Magic is a Maya script that mainly focus on process mesh skin weight

Mean Feature:

Assign vertex skin weight with multiple selection mode

Transfer skin weight between vertex and meshes

Re-Skin: re-organize skin weight base on pick bones

Skin Warp: copy weights from closest vertexs

What’s New in SkinMagic 3.1:

Latest Version: 3.7

Download SkinMagic 3.7

Version History:
# 3.7
# – improve LoDs performance and bug fix
# – add “Delete Bone” option in LoDs
# – add bone name filter in “+ Bone” window

# 3.6
# – fix bug: copy vertex weight sometimes get error

# 3.5
# – add Hold Bone for reSkin
# – add Hold Vtxs for Warp
# – improve warp speed
# – keep bone weight lock state as it was

# 3.4
# – remove color display weight
# – add switch of sync bone selection
# – create selection set for over influences verts

#3.3
# – Select joint in viewport which picked in weight bone list

# 3.2
# – Fix UI issue with Maya 2017 and 2018
# – Fix bug on vertex selection priority

# 3.1
# – improve weight tool UI
# – add relax for weight tool
# – add reskin for weight tool
# – vertex selection has highest priority when tool actived
# – seperate skinTools to spring magic and skin magic

47 thoughts on “Skin Magic”

  1. Hi,
    The window box for your script is too small to see all the buttons.
    Any chance you can make the window box resizable?
    Thanks so much for sharing your script. I’m looking forward to using it.

  2. skin magic # 错误: UnicodeEncodeError: file E:\Program Files\Autodesk\Maya2019\Python\lib\site-packages\pymel\core\system.py line 745: ascii # 在MAYA2019里面有时候运行是正常的 有时候会报这个错,插件打不开

  3. # 错误: IOError: file H:\maya2019\Maya2019\bin\python27.zip\logging\__init__.py line 935: 13

    请问白老师为何会会这样 我之前用得好好的 昨天下午突然这样了

  4. Hello,

    i installed Skintools on Maya 2017 service pack 4, windows 10

    file D:\mengpi\skinMagic.py line 1087: list index out of range

    What is wrong?

    Thank you!

    1. Same for me, i try to install version 3.2 and version 3.5 , i use maya 2018. Skinmagic works the first time i open it, but after when i reopen, the windows is here but nothing work, and at the end of the error message they are list index out of range.

      I hope you will fix it, your script is really useful

  5. 老哥..这个蒙皮插件非常非常好用.但是每次加减权重的时候都是0.05.这个过度有一些大..能否加一个0-1的滑条呢.或是每次添加权重值缩小一点..这样更方便操作.对细节控制会更方便一些.

    1. 0.05 是复刻 max 蒙皮工具 weight tool 的设定,方便从 max 过来的用户习惯
      而且我认为 0.05 已经足够细致了,所以不打算调整
      如果你需要更精细的数值,可以用 set weight 按钮来实现

  6. 白老师你好,我已经找到问题了,是版本不兼容的问题,我使用朋友的2018版本是正常的,我的是2013旧版本。再次感谢老师的帮忙,希望看到老师更多的教程。我请老师喝咖啡!

    1. 嗯,有可能是版本问题造成的,因为我是在2014开发的这个工具,那个出错的命令也许是2013不支持导致的,有时间我会回头看看2013有没有变通的方法。
      感谢你报告的问题和咖啡:)
      欢迎多提意见。

      1. 经过测试,平滑权重的功能在我本地的 Maya 2012 上工作正常
        具体版本号为:Maya 2012 x64 Service Pack 2

        如果 2012 和 2014 都能用的话,没有理由 2013 不能用,你可以试试打上 2013 的 SP 补丁包,也许能解决

  7. 白老师你好,我是一个MAYA爱好者,第一次接触你的skin magic ,感觉非常神奇,但有个问题我一直不能解决,希望白老师请教一下,非常感谢。
    当我使用平滑命令的时候,MAYA提示出错,并显示:
    # Error: RuntimeError: file D:\Users\maya\2013-x64\skin\SkinMagic\skinMagic.py line 2886: Error occurred during execution of MEL script
    line 1: line 1: Cannot find procedure “artSkinInflListChanging”.
    这个错误。请问是什么造成的呢?需要如何解决呢?再次感谢白老师的工具!

    1. Max 本身有点权重的功能,我的 Skin Magic 也是参照 Max 的权重工具做的。
      如果你指的是 Skin Magic 的一些其他小功能的话,Max 应该有其他插件可以实现类似功能,但你得自己找找。

  8. 昨天给博主送了两三杯咖啡钱^-^,skin magic解决了一直以来我对maya里面二次解算的要求,下个版本有啥计划吗?如果有提供骨骼生成便利的脚本就好了,比方说根据一个边条或者管道装的模型自动在中心生成骨骼链的功能,在平时工作中经常会用上,遇到比较长的条状模型 用吸附手动加骨骼还是挺讨厌的。

    1. 把你的评论移到 skin magic 板块了
      目前没有什么新功能的计划,因为现有的功能已经满足我日常需求了,也没有用户跟我提比较有价值的新需求
      另外你提到的在模型中心创建骨骼,其实 MAYA 早就有这样的功能了,打开 Skeleton 菜单里的 Joint Tool 选项面板,就是边上那个小方块按钮,然后再选项里勾选上 Projected Centering,这样创建的骨骼就会自动对其到相应的模型中心了,你试试吧。
      还有吸附边缘的功能,在创建骨骼时候按住键盘的 c 键,就会吸附在模型的边上,同样的 v 键是吸附在点上, x 键是吸附在网格上,这些都属于 MAYA 的基本操作

      最后,感谢咖啡 ^^

  9. # Warning: Cannot match-up bone, nothing loaded, please check again!在使用Skin Magic的权重数据导入的时候会出现这样的报错,重新蒙皮后也没有效果,不知道这个问题怎么解决。。求大佬看看。

    1. 这是由于导出权重文件时的骨骼和导入时的骨骼不匹配造成的
      导权重功能不支持在不同骨骼之间互导

      即使是同一套骨骼,如果编辑过了,也有可能失败

  10. 遇到了一个新的问题 :插件 提示// Warning: line 1: Specified weight could not be set due to locked influences.
    原因是我选择得骨骼可能有锁定得但是 我把插件观赏确实没有用 ,虽然 maya 默认得面板我都解锁了,但是插件还是认为我现在得骨骼都是锁死了 ,不着怎样解锁呢

      1. 我都已经解锁了 但是用了插件,只要我打开绘制权重编辑器 ,他里面都是锁定得 ,即使我都解锁了 ,也不行 ,我用2016 所以我在想是不是版本问题

        1. 明白你意思了,是这样的,skin magic 会根据需要自行操作解锁和锁定功能,但是这样一来就会跟刷权重的界面冲突,所以不要同时使用 skin magic 和 Maya 自身的刷权重工具

  11. 一个点在受到三个骨骼影响得时候 能不能在骨骼面板 做一个锁定呢 要不然 一个设定好了 在改第二个 第一个又了,现在只能所有强制给到1 然后在添加骨骼从新分配 感觉效率不高 不自由 必须按照老师得规则走 所以我希望能够改进

    1. 首先,这种从原有权重骨骼上取数值分配到新骨骼的方式,是 Maya 的默认行为,仍然沿袭这一点可以减少大多数用户的上手成本。
      其次,如果像 Maya 刷权重面板那样,根据需要选择性开启或关闭权重锁定功能,则会增加操作繁琐程度,这也是我开发这个工具的初衷之一,即很讨厌频繁的点击锁定和解锁按钮。
      从我个人看来,先给L=1.0然后R=0.5 最后C=0.5,以获得 L=0.25 R=0.25 C=0.5的结果,非常简洁直观,因为每一步权重操作都是基于同样的数学逻辑。

  12. 尊敬的白先生,很荣幸能有机会请您喝杯茶。我有一个关于skin Tools的小建议,当我们启用工具,在工具栏中点选骨骼进行权重分配时,希望视窗中的骨骼也随之进入高亮显示,这样,我们就能清楚工具栏的骨骼是对应视窗中的哪一根骨骼了,尤其在骨髓命名比较乱的情况下,这点尤为重要。

      1. 非常感谢白先生的完善改进,经过测试,3.3版本中新加的同步显示很方便,不过出现了一个bug,就是3.3版本新加了这个功能后就无法启用点复制权重功能了。

        1. 呃…好像二次权重、包裹都无法使用了,原因好像是因为选部分点后,系统会默认加选了骨骼,所以执行不了命令。可否将高亮同步显示做一个勾选或者有其它更好的办法。

          1. 我更新了一下,修正了复制权重和蒙皮包裹的问题,二次蒙皮我没有发现问题
            版本号没改,但麻烦你重新下载后再测试一下,看看哪里还有问题我再修
            谢谢

    1. 你尝试一下用其他版本 Maya 对同样文件做同样操作是否也会崩溃
      如果是,则可能是工具的bug,需要发给我源文件我来查找原因
      如果否,则是 Maya 自身bug,需尽量避免使用该版本的 Maya

  13. “批量复制最近点权重”,在3.2版本的Skin Magic杂项中没有找到
    请问这个功能是去除掉了吗?
    另外无论是Skin Magic还是Spring Magic都无法按Esc暂停,暂停后续算。如果工作遇到服务器更新,需要立即暂停的情况,就只能等插件算完。。。不知能否添加一个暂停/继续按钮

    1. “批量复制最近点权重” 已经改名为 “蒙皮包裹” 功能,在点权重页面右侧的列表里可以找到,也可以参考 Skin Magic 3.1 功能介绍视频里的讲解。
      至于暂停的功能,其实在脚本计算时,MAYA界面基本呈现假死状态,即使有这样一个暂停按钮,用户也无法按下

  14. 你好,首先感谢你开发的这几款软件,真的是非常棒!虽然我只是一个喜欢做游戏mod的业余爱好者,但是这个工具也给了我很大的帮助,再次感谢!另外,我有一个小建议,每次选择了点后程序都会自动开始计算,如果选择的点很多就会等待很久,但是也许选择点只是为了干其他事情,能否在百分比滚动条上方加一个勾选框,勾选的时候自动计算,也可以取消自动计算呢?

    1. 最早版本是有那个选项的,但是使用中发现经常切换开关也很麻烦,后来就去掉了
      其实最简单的办法就是在做其他操作的时候关掉脚本,需要用的时候再打开即可

  15. Hello,

    i installed Skintools on Maya 2017 service pack 4, windows 10

    but when i execute

    execfile(r’the folder path\skinTools.py’)
    example:
    execfile(r’C:\Users\Chris\Scripts\skinTools.py’)

    I get this error –

    # Error: unexpected indent #

    What is wrong?

    Thank you!

Leave a Reply

Your email address will not be published. Required fields are marked *