New Maya skin weight export/import tool: Skinner

683 views
Skip to first unread message

AK Eric

unread,
Dec 1, 2021, 10:21:34 PM12/1/21
to Python Programming for Autodesk Maya

After two years of working on it in my spare time, I'm releasing my custom skin weight import/export tool free to the public. Happy Holidays.

https://github.com/AKEric/skinner

Having built holistic art -> engine pipelines for multiple studios (Visceral/EA, Sledgehammer Games/Activision, 31st Union/2K), part of which include fully procedural rigging solutions, one of the biggest areas that is missing in that pipeline-subset is a solid/repeatable skin weight export/import process in Maya.

The tools that Maya provides lack features (and can be slow), and there isn't anything I could find (free or $paid$) that had the feature-set I wanted/needed.

This tool aims to alleviate any issues for the techart team regardless of industry. It is in-use and proven in AAA game production.

I welcome any thoughts/feedback/improvements you have via the github.

I should call out this requires Python 3 + numpy & scipi : the docs explain how to easily install these dependencies on Maya 2022+

Marcus Ottosson

unread,
Dec 2, 2021, 3:03:46 AM12/2/21
to python_in...@googlegroups.com
Congrats on making it to a public release, that stuff is hard!

I was typing up a few questions, especially on comparisons with ngSkinTools, but as I did I came across the answers in your README already. :D My one suggestion would be to include a gif near the top of your README, using your tool in the way it was intended on some example asset. That can help communicate the idea more quickly and helps it stand out amongst the vast ocean of plain-text READMEs on GitHub already. Even taking one of those screenshots in the middle and putting it front and center would help.

Best,
Marcus

--
You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_m...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/d6a29d0a-647e-4c3a-8ea1-de1f78de766an%40googlegroups.com.

AK Eric

unread,
Dec 7, 2021, 5:27:50 PM12/7/21
to Python Programming for Autodesk Maya
Thanks for the feedback Marcus, and totally agree.  It's 'on the list' in my 'copious spare time' ;)  Hopefully I can eventually get some video tutorials etc.  But hey, it's free, and you get what you pay for :P 

But to your point above, it's not the same thing as ngSkinTools:  That (as you're aware, but for anyone else) helps you paint weights, but it's save/load functionality is extremely limited (last I checked, I did reach out to the author).  This tool fills in that save/load import/export part of your skin weight pipeline.

Arthur Na

unread,
Jun 15, 2022, 1:10:51 AM6/15/22
to python_in...@googlegroups.com
Thank you so much for sharing this, This could be quite useful for us.

Is there a way I can load weights in UV space?

Thank you,




Eric Pavey

unread,
Jun 15, 2022, 8:30:58 PM6/15/22
to python_in...@googlegroups.com
Not as is : I've always found UV space to be possibly buggy, since it's easy to encounter bad models that have overlapping UV's, which would invalidate the queried weight data.

Not that it couldn't be a future improvement: I'll put it on the todo.

You received this message because you are subscribed to a topic in the Google Groups "Python Programming for Autodesk Maya" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/python_inside_maya/K_ATtyvFrCg/unsubscribe.
To unsubscribe from this group and all its topics, send an email to python_inside_m...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/CAF_Qs64Q3DgECwsvx9zu0T4z%3D0nmmO7ku7VQs%3DfTcrV%3DwTVj1Q%40mail.gmail.com.

Dag Isaksson

unread,
Jan 21, 2023, 5:00:00 AM1/21/23
to Python Programming for Autodesk Maya
Hi. I just found this. Looks great. A big thanks for releasing it to the public.
unfortunately I can't get it to start. Not sure where I'm doing wrong.
I put the skinner folder in my python path, I installed numpy and scipy, but they were installed to where I have Python 3.9 Standalone as can be seen.

skinner.JPG

Eric Pavey

unread,
Jan 21, 2023, 6:03:15 PM1/21/23
to python_in...@googlegroups.com
The 'Marshal loads failed' is the key : This is a bug that some people get, but others (including myself) don't.  I know this tool is in use across multiple studios in their pipelines, so I have yet to track down why for some people it fails.

I think it has to do with how the code is obfuscated by pyarmor, since I don't use the marshal module in any of my code, but pyarmor does.   I've tested it on Windows 10, Maya 2022, 2023, 2024.

Can you let me know what version of Maya you're on, and what version of Windows?

Eric Pavey

unread,
Jan 21, 2023, 6:21:29 PM1/21/23
to python_in...@googlegroups.com
I've reobfuscated the modules and made a new release:

See if that fixes the bug?  I have my doubts, but since I can't repro it, it's hard to test/fix.

Alexander Samouridis

unread,
Jan 22, 2023, 6:29:14 PM1/22/23
to Python Programming for Autodesk Maya
Hmm, getting the same error! Maya Version is 2022.4 on Windows 11:

// Error: line 1: RuntimeError: file <C:/Users/alex/Documents/maya/scripts\skinner\__init__.py> line 3: Marshal loads failed //

Anything I could try out?

-Alex

Kenneth Chiu

unread,
Jan 23, 2023, 10:06:43 AM1/23/23
to Python Programming for Autodesk Maya

David Shaw

unread,
Jan 23, 2023, 9:53:51 PM1/23/23
to python_in...@googlegroups.com
Erix, this version fixed it for me in Maya 2023.3 on windows.

Previous versions gave me the pyarmor marshal loads issue

Thanks for the update
Dave

Marcus Ottosson

unread,
Jan 24, 2023, 3:37:48 AM1/24/23
to python_in...@googlegroups.com
This would be my guess as well; there likely needs to be a version of Skinner for each version of Maya, possibly per platform.

Dag Isaksson

unread,
Jan 24, 2023, 9:18:48 AM1/24/23
to Python Programming for Autodesk Maya
Thank you!
Yes, that fixes the problem. 

Dag Isaksson

unread,
Jan 24, 2023, 9:20:09 AM1/24/23
to Python Programming for Autodesk Maya
Oh, and I'm using Windows 10 and Maya 2023

Eric Pavey

unread,
Jan 25, 2023, 7:13:33 PM1/25/23
to python_in...@googlegroups.com
Per
"This would be my guess as well; there likely needs to be a version of Skinner for each version of Maya, possibly per platform."

That's the sinking suspicion I am having. Which makes PyArmor basically useless as a distribution tool.  I don't have a linux/Mac box, nor do I want to maintain x# versions of Maya at the same time + have to reobfuscate this bleh.

I'm waiting to hear back from the devs on this.

The recent version I obfuscated is on the current beta, which is technically... 2024(?) 

"why so hard", lol

AK Eric

unread,
Feb 5, 2023, 6:37:27 PM2/5/23
to Python Programming for Autodesk Maya

PyArmor is becoming to difficult to work with, and their support is... not good.

I'd rather people use this tool successfully : I've just pushed the whole open source codebase with the latest package.

But I'd still appreciate tips for it's usage.  For those interested, please see here : https://github.com/AKEric/skinner#donate-for-usage

David Shaw

unread,
Feb 6, 2023, 12:29:15 AM2/6/23
to python_in...@googlegroups.com

Dag Isaksson

unread,
Feb 6, 2023, 9:30:22 PM2/6/23
to Python Programming for Autodesk Maya
Very nice of you to make it open source though I'm sure it feels sad given how much time you spent on it.
I tried it out, but I can't seem to transfer skin weights. I have this model I found. One version has the skinning , but the joints are oriented the wrong way. The other has no skinning, but the joints are oriented the correct way. The joints match each other 100%, both the names and amount of joints.
Then the models are both scaled differently, but I scaled them to match exactly. So I saved out the weights and tried to paste them to the other character, but without luck.
In the past I've always used the script of Michael.B. Comet, but it's quite slow on large meshes. I had it go for like 2 hours on another character...
I tried saving it out on a mesh, unbinding and loading them back and that worked flawlessly and FAST!
Great job!

Eric Pavey

unread,
Feb 6, 2023, 10:03:00 PM2/6/23
to python_in...@googlegroups.com
Most of the work I do is based on assets that are 'ready for skinning'.  No scale, no.. shenanigans in general lol
Sounds like what you're trying to do is based on (bear with me here) bad authoring practices.

I'm a little unsure of your reply though, I'm not sure if you sorted it out or not ;) 

BTW back in the day, I learned a lot from "Comet", great to hear you reference him. 

That said, I like to address stuff like this.  If you can provide me with the data you're working with, I can see if I can sort it all out. 

Dag Isaksson

unread,
Feb 9, 2023, 11:27:06 AM2/9/23
to Python Programming for Autodesk Maya
Hey. Yeah no for sure. I come across models that come with weird joint rotations, scaling. Stuff like that.
No authoring process being done on the assets. It's just for learning purposes and references in these cases. Free assets.
I mean I did sort it out, but had to use the Comet script that is MEL and is slow on big meshes. :-)
That's why I would love for this tool to be able to being used in the same way.
And yeah, I still use a few of his scripts :-)
I will go back and find the two models I was working on for this and I'll get back to you!

All the best!

Eric Pavey

unread,
Feb 9, 2023, 12:44:40 PM2/9/23
to python_in...@googlegroups.com
I've been working with teams, and teaching them how to author 'good data for robust pipelines' for so long now, it's safe to say I authored that tool in this environment:  If someone gave me an asset the way you'd describe it, I'd send it back ASAP ;)   It's easy to do things wrong, and that can break any number of downstream pipelines.  A little education into solid asset authoring practices goes a long way ;)

But anyway, and per above, yah, get me some assets this tool fails on and I'm happy to improve it 👍

you can email me direct at warpcat at gmail dot com

Reply all
Reply to author
Forward
0 new messages