We’ll watch the time lapse with Andrew’s commentary as he skins the Zanzi character in skeleton builder and theres a couple of points specific to the skeleton builder workflow too. But mostly we’ll focus on basic skin workflows and we’ll be using Skin Wrangler as our primary skinning tool.
Watch how Andrew handles the skinning of many parts of the character in methods not commonly advertised in the usual Maya skin demos. See how important the range of motion is among techniques for accurately skinning appendages and all the extra little controls.
This method give us full control over the skinning workflow to get the exact results we’re after without guess work by using auto skinning tools.
We’ve found this method of skinning to be far more accurate and useful to the beginner than the more common vanilla Maya skin methods. Enjoy!
Running Time: 25 mins
Software: Maya 2016
Instructor: Andrew Silke
I have quite a few questions, hopefully that’s ok:
1) After finishing skinning the spines you’re adding influences of the arms, more than once in fact and I was wondering what the point was, Weirdly enough you seem to be adding the influences to the skincluster several times, basically I just don’t get what you’re doing.
2) You seem to have had quite a few skin problems with the viewport 2.0, switching to legacy viewport fixed those problems, is that problem still present in Maya 2017?
3) Is it possible to lock weights on vertex and not joints? This is because with the smooth brush I sometimes add influences of bones on vertices I don’t want to affect, maybe I’m just clumsy ^^.
But I actually saw you’re using several skinClusters rather one, is that so everything is neater and you can’t accidentally skin to unwanted bones? And I guess you’re saving with names also for that reason, this way if somehow you mess up your skin clusters while working on something else you can import those skin weights on that specific item again?
4) You have a good model with very good loops, but sometimes I must do with models with pretty bad loops or with a bit more complex geometry, do you know of a way to save selection of loops?
5) What makes you decide between a full 1,00 weight or 0,5/0,5 on the joint itself. For example, in the antennas, the brows and the hair where they are not roll joints, you still did full 1.00 weighting on the loops where the joints were, and for the spine bones you did half/half on the loops on the joints (like they’re not roll joints). I’m just wondering if I don’t understand something or if it’s just trial and error.
I’m referring back to what you said in Skinning Fund where one should not weight the skin fully on the joint but rather skin fully in between that joint and the next, and when it’s roll joints it’s the opposite.
6) Wasn’t there some kind of technique to not have to skin the lower hand once you had finished doing the upper one? Their topology seem so similar.
7) Now that I’m seeing that you’re using several skin clusters I’m wondering what you would do if you were given a mesh that’s not separated into several objects, would you divide it up to have several skinClusters or you would just go with one skinCluster?
Great workflow, impressive stuff!
Hi Jeremy all good questions.
1. I’m not sure exactly what you’re referring to there regarding adding influences. I’d have to watch the full 20 mins again myself. Possibly adding influences might have been because I’d forgotten to include those in the initial bind which would have been a mistake. I don’t often add influences after unless I’ve forgotten or suddenly create a new joint.
Might also be because I’m weighting several different meshes here and you’re seeing that instead.
2. Yes this video is over 1 year old, there were viewport issues, I haven’t had those since the service pack updates in 2016. It’s pretty good now.
3. As far as I know you can only lock joints not verts for skinning. But the easy workaround with smoothing is to use the braverabbit smooth skin tool.
With the function smooth selected verts you can make a vert selection set and it won’t affect unselected vertices. That’s what I’d use.
Yes I’ll use several skin clusters, but only one per mesh, so really it’s several meshes. I divide this up for management/ease of use in the skinning process, I’ll talk about this in the upcoming tutorials.
4. Regarding more complex meshes where you don’t have good loops. I’ll often create a lores mesh and transfer to the hires mesh. I do this all the time and it’s missing from the tutorials but will add soon. I think it’s in the bundles class which is depreciated, under advanced skinning. You can find that button in Zoo Tools under the Rigging > Skin Weights Tool. It’s the bottom button in that UI and it’s also on the skin marking menu (shift y) in 2017.
You can save loop selections with selection sets, though I think the lores to hires workflows is what you’re looking for. btw it doesn’t have to be a lores and hires mesh, any mesh will do. I often build a skin mesh that’s easier to weight and then transfer even when the goal mesh is light. And in circumstances where the final mesh isn’t ideal, usually clothes with lots of fiddle mesh parts.
5. Yes well spotted. I do still use both methods depending on the task. For example the antennae’s base are rooted to the head and can’t move with the mesh. So it’s probably why I changed for that one, but I should think it through and come up with some clearer rules regarding that one.
6. Yes actually that is relatively difficult to copy the verts from the top hand to the lower. I realised that while trying to do it. You could do it with a tool. Save out the skin weights and then rename the joints in the saved weights file then import. So yes you’d need a tool and the meshes would have to have the same vert counts which they do in this case. In short you’d need a tool since the tool would need to know the joint names to figure the conversion. There’s no inbuilt method for this that I know of.
7. I’d always use one skin cluster per mesh. I’d divide up the mesh. If you needed to output one mesh as say an alembic cache you could put a poly combine at the end and export that way. If you need one mesh in a games engine I’d do the skinning on one mesh and one skin cluster. I’ve never used multiple skin clusters on a mesh, I’ve heard of people doing it but it gets messy.
ta! First comment, people have been shy! More skinning stuff coming soon to clarify these questions.
Glad to start the comment movement 😉
Thanks Andrew, that was very clear! I don’t know about alembic caches yet but it seems interesting.
Feel free not to answer the questions below if they will be answered in the skinning tutorials by the way, I won’t mind.
1) Just wondering why if you did an asset for a game engine you’d not split it up into several skinClusters since you could use poly combine again no?
http://i.imgur.com/hPQu3pD.jpg (it’s an equipment on top of a body mesh that has connections to the back)
2) How would you go about skinning this?
I saw you said you didn’t like Wrap as an animator because of lack of control and it did not give me the best deformation in extreme movements anyway. The only other way I know about doing this is with SkinWrangler (paste weights to buttons) in the tutorial video you mentioned
(https://youtu.be/b__ABAKjDRI?t=8m20s – surely you know what I mean, no need to watch the video then)
but that requires a vertex line underneath the connections. Then there’s the follicle thing I heard you talk about in one of your tutorials, I’ve yet to investigate that, surely that’s the way to go actually, animatable + follows the mesh if not animated I think you said, sounds perfect.
3) By the way if that’s the case for the follicles, there would be no point of using anything else for any kind of accessories, right?
Alright I’ll stop asking you questions for (a little 😉 ) while now, else I’ll feel like I’m exploiting you.
I’ve been using ngSkinTools and SkinWrangler together but it’s as I thought they can’t really be used together because of the plugin node you mentioned, it overrides the normal weights from Maya, and so using them at the same time isn’t the proper way to go (conflicts and weird bugs), that being said deleting the node through the tools of ngSkinTools can allow to switch from one to the other.
I liked the idea of using both at the same time but since that’s not really possible, I’m just using ngSkinTools’s “Assign weights from closest joints” along with its “Relax” as a first pass then I switch to SkinWrangler/TFSmoothSkin like you seem to do most of the time.
The only issue with ngSkinTools is that I wish I could limit the relaxing it does on certain parts, I’ll try using TFSmoothSkin with vertex selection like you said instead next time, this way it’s a bit more automatic than with the brush and can sometimes be enough for what I need. And also having several skinClusters might make the ngSkinTools’ “Relax” more area focussed as opposed to with only one skinCluster.
You might wanna try ngSkinTools’s “Assign weights from closest joints” if you haven’t already, I find it very useful as a starting point. Tho maybe with your experience it wouldn’t be that useful.
By the way, if the website could send mails when someone answers one’s questions/comments I think that’d be useful if that’s easy to implement.
No probs Jeremy these are all good questions.
1. As for splitting the mesh up it’s really more a question of what the game engine is wanting, if the game engine can easily handle multiple meshes on the rig and there’s no performance slow down then for sure break up the meshes. But yeah I don’t use multiple clusters on one mesh. If you’ve a link to anyone who suggests that let me know. I’ve heard of it but never seen anyone do it.
Also is your game engine importing a mesh cache (that’s what alembic is) or joints and skinning. Those types of things can affect how you import into the engine. Skinning workflows won’t work with the combine method.
2. Yes that’s a job for a transfer skin workflow. It’s one button now in Zoo Tools Pro
Zoo Tools Pro > Rigging > Skin Weights Tool > Transfer From Source To Target
It’s also in the Skin MM (shift Y) but I noticed it’s broken in the new prefs v2_01, that will be fixed in v2_02 simple bug.
An old video is here, but you can just use that button instead now.
I’d duplicate your mesh, delete everything except the body geo, skin it, then transfer to the mesh with all the armour. Clean it up with skin wrangler probably as per his video.
3. Follicles is totally a cool way to go, it just requires more joints which is potentially heavy in games. Also requires more setup time. I use them all the time. One downside of follicles in 2017 I’ve just realised is it pretty much halves playback in Maya, but since most of my rigs play at 80fps on my machine that doesn’t worry me. 40fps is ok for the added benefits of follicles. Also for quick and nasty stuff without a game engine, I’ll often fix deformation issues with blendshape shot sculpting. It’s very easy that way if you’ve few shots that need to be done fast.
4. Yes regarding NG that makes sense, I haven’t used NG for a long time, but yes that would be my solution too, delete the plugin that’s pretty easy to do. So you can switch. I didn’t realise it completely took over the node.
Yeah you’re right it’s got a handy assign weights to closest joint feature. I’ve seen that looks great. The last job I did I would re-parented the zoo tools joints so they’re in a single hierarchy (can script it into a button) and used Maya’s heat mapping to skin arms hands and fingers with one click. I didn’t have to edit the weights at all for rough posing, works really nice. But there’s a few things to know about that workflow which requires a tute and is more advanced.
So I’ve usually found default Maya ok for that too. But again it’s not in these tutes quite yet. But that’s next!
NG also is fab for mirror without being at the bind pose. I wish Maya had that. It’s advanced features are decent too.
Regarding relax yes use the braverabbit skin smooth tools not the tfskin smooth now, just checking. tf doesn’t have the selection stuff.
I believe the NG closest feature is very handy though too as you say. For proper animation high end auto corrective driven rigs I don’t trust auto skinning and will do it all myself by hand. But for smashing it out those tools are rocking.
I’ve planned to do some NG tutes at some stage, it’s on my list ta for the reminder but it might be some time. That sounds like a good way to go too that workflow and certainly very valid, it’s similar to how Miquel teaches it over at MGear.
Yes on the emails, I’m still figuring this comment system, will look into it, good suggestion. Will see if that’s easy.
I’ve added a notify by email checkbox you can click while posting. Let me know if you have problems or can’t see it.
Yes, it seems to work when submitting a comment! ;D
What do you mean by skinning workflows won’t work with the combine method, there’s the “combine skinning” option, no? I thought that’s what you always did once finished, because several skinClusters supposedly creates lag in Maya (I think Dave Sparra mentioned that in the FB group, maybe I misunderstood).
Someone experienced on a forum also mentioned that when he was dealing with complex characters he split the mesh up, then polyUniteCombined.
Here’s what he said specifically:
“I found myself doing a lot on a job last year where the characters had some pretty elaborate costumes was to duplicate the meshes and split off the costume parts and skin them separately, usually I’d start with the biggest simplest parts first and often copy skinning from the ‘underneath’ parts to the outer parts as a starting point. —> I didn’t understand what he meant there at the time
Then I’d polyUniteSkinned the different pieces once the skinning was done and copy the skinning from this new combined mesh back to the original mesh. A bit more work splitting up meshes initially but made the skinning very simple generally so it worked for me.
(the thread: http://forums.cgsociety.org/showthread.php?f=7&t=1434365)
Lagging in the viewport is one of those things that can be quite annoying too, we’ve had to do quite a lot of back and forth between me and my modeller as we’re both starting with not so much experience, he’d give me high poly count meshes (made in Zbrush) that’d make me lag when I animate it was around 30k poly’s and with the RapidRigM and skinning it was just too much for my computer (and it’s not really a bad one). It was a real struggle to establish clear solutions of what is a good poly count and what I was able to skin and what I wasn’t, at the time I thought that everything had to be a single mesh and also that the vertices all had to be welded (I’m a madman!), so he had a lots of extra work.
I’m still worried even now because it can always potentially lag and when it takes a week of full time work to create a character, we can’t allow for stupid mistakes like that. If it has too many polys, he has to retopo (now he uses zRemesher with guides so that’s not so time consuming) and then redo UV’s, texturing.
What do you think about that?
Come to think of it, he would not necessarily have to redo UV’s and texturing with the skinning transfer method, surely I could animate on a low res mesh, do the animations and then skin transfer on the high res mesh, transfer the animations too. The downside would be the rendering time then I guess which is not a real issue. We’re rendering the animations in Maya rather than importing the models in the game, I feel that’s an easier workflow for us 3d noobies wanting to make a game (for optimization sake, it gives some leeway in terms of poly count etc… And also we could use some sick effects in the animations, which I know nothing about yet ;D -without perf loss-).
I’ll try and learn about blendShapes but I’m trying to focus on the basics first as most people say blendShapes don’t work that well on top of poor skinning. I’ll get to it soon, I’m starting to feel a little competetent.
I’m curious about the time it takes for you to create characters like Croc, Nat and Zanzi. From modelling up to the point where you’ve done the rigging?
Let’s say you had to do 20 characters that are in between Zanzi and Croc in terms of details, how much time do you think it would take you and let’s say you had to do 10 game animations for each (walk cycles, attack etc…)? Can you specify what time each section (modelling/ texturing/ rigging/ animation) it would take up.
I realize that’s an odd question but it would help me plan ahead, and see if we’re not going straight into a wall! 😉
Seeing that transfer skin weights is THAT good (on your tough guy!) I wonder why people don’t use it more often. In fact, why bother with loops at all on the target meshes? Maybe because of UV’s?
If not, then wouldn’t it optimize the number of verts that could be on the final mesh (the one that would be in the game engine, “triangulization” (surely that’s not the right name xd) retains the form much more than quads it’s really plain to see when using zBrush, it seems like a legit way to go if UVing is not an issue, or if using non UV’d characters with simple shaders on it.
So to summarize would it be correct to say that for additional equipment on top of geometry the way to go is: 1) if not animatable -> mesh skin weight transfer and 2) if animatable -> follicles (viewport lags bit, but less than wrap)?
Thanks for taking time to answer my questions, it really helps me out man, much appreciated!!!!
PS : I think we’re misunderstanding each other a bit, when I say multiple skinClusters I always meant several meshes have one skinCluster. And also for TFskinsmooth, I said that just so that it’s not confused with the normal smooth brush.
Fab “combine with skinning”! Yes I never realised that skinning checkbox was there. That’s why my reply might have been confusing. I’ve been looking for that feature for a while and makes sense that it’s difficult to find by a search since it’s actually a modelling tool option. Not in the skinning menu! Typical Maya.
So I was just talking about a regular combine. I wonder when that checkbox appeared? Either way yes that solves your issue of skinning on separate meshes and then transferring the weights to one mesh. I tested it with “delete non deformer history” on a simple example and it seems to work, so I would also recommend that step. Or you can transfer the weights to a new mesh too.
That cgnetworks thread is good one, using transfer in combination with these workflows is really the way to do most things in skinning. Skin a simple mesh or multiple meshes then transfer to the complex geo.
As they mention in that thread many of maya’s auto skinning tools such as heatmap break in various scenarios. That “combine with skinning” option is a last piece of the puzzle for me, ta! It’s never been a huge problem since I’m not needing to combine meshes much but it does pop up and is annoying. So fab!
Yes using the word multiple skin clusters in Maya would most likely refer to multiple skin clusters on one mesh. So best to use the wording, “multiple skinned meshes”, just a little confusing in Maya speak. And yeah I figured that with your TF comment too, no worries.
As to why it’s not often talked about I’ve foudn skinning to be a niche part of Maya, there’s just not a lot of people who do it a lot or realise these modern workflows exist. It’s just not common knowledge.
Yes you could transfer to very ugly meshes, such as my tough guy mesh. But I found with tough guy I had a lot of problems once I started getting into sculpt correctives. Quaded grid meshes sculpt much better and are predictable with skin smooth and sculpt smoothing. So I’ve switched to denser quad grid meshes for examples like tough guy. In games yes transfer to ugly tri meshes is fine.
The question about length of time to rig characters is a good one. Just to rig a character like you’re talking about in games would be about a day. And that’s no facial and no fancy stuff. To model and rig 10 characters is quite difficult. I know I’m pretty fast, a lot of people take a good amount of time to do that. Even pros could take up to 2 weeks to get a character like that out at quality just modelling and rigging. 2 days would be quick and a fast pro modeller rigger. It’s really hard to give time estimates. Pro TV series rigs can take a long time, even for me. Ie full correctives etc and facial. In the weeks.
Ok thanks for all the tips! Glad I could share some knowledge too 😉
Yes, I had a hard time figuring out the proper skinning techniques, not many info’s out there.
There are still questions I wonder about:
1) What would you do if it lagged when you animated? (because of a mesh that’s too dense in poly count).
– Would you have to quad draw a new mesh on top of the too dense one and transfer skinning, or is there an easier/faster way out of that? (and then transfer animation from the low res to high res).
2) I got into a big mess skinning my character, probably because I modified the vertices’ position while having a skin modifier on. I thought I could get away with that, because I didn’t add or remove any vertices thus not modifying the id’s of the vertices. However, now I get crashes while trying to modify the vertex weight. But I’m not entirely sure it’s because of that that it’s crashing, do you ever do that too or is that not a good practice?
– If it’s not, what would you do to modify the vertex position (if you only wanted to move vertices around and that you wanted to keep your skin info)
– and what would you do if you wanted to modify the topology by adding loops, maybe removing loops and so on but that you also wanted to keep the skinning?
Everything’s becoming much clearer, I’m starting to feel like I got a lot of options and it’s a good feeling 😉 tatatata! haha, thanks again.
PS: It didn’t notify me of new posts by mail btw. Pretty sure I did all the steps right.
Yeah I couldn’t reply to your last post too deep this thread. I may see if I can reverse the thread order too, this one’s getting quite long.
1) Yeah I rarely get into that problem. Generally my meshes are pretty lean though I’d a mesh 120k and was running fine on my machine 50fps with the Zoo biped. But the machine is new and can handle a lot. Could be anything that’s causing the slowdown hard to say.
2) Yes don’t move the verts after skinning, though technically it can be right. The offsets are stored on the tweak node, if you delete that you may be in trouble. I haven’t looked into it too far. Generally you can use SHAPES and build a blendshape, SHAPES has a button for setting the current state of the blends as the original mesh so maybe look that up. Otherwise you just have to kill the history on the mesh and re skin it by import export skin weights. Yes keeping meshes clean is important.
Modifying topology is transfer skin weights to a the new mesh (Zoo Transfer). SHAPES also can transfer the blendshapes too, though I haven’t tested the transfer of blendshapes a lot. Ingo (braverabbit) put that in for me.
Ok, I’ll try the SHAPES’ blendshape next time.
I also figured out why I was lagging, and it’s due to RapidRigModular, it’s not a light setup at all, with just joints I had 70 fps, with RRM 10fps (on that 50k mesh).
I’m all out of questions 😉 Time to put all that into practice, I’ll put a picture on the FB group if the end result is not too awful.
I still didn’t receive a mail btw, maybe I messed up somehow.
Yeah strange you should be getting emails on this reply. I may have to do some testing. No worries, yep RRM is heavy and depends on the machine. Glad you pin pointed the slowdown.
I can’t download BraveRabbits smoothSkinClusterWeight tool,
I put it into the plug-ins folder, and ticked load and auto-load in plug-in manager.
When I click the sSel button it just tells me to go download it again.
Is this a known problem?
Yes so long as it’s loaded in the plugin manager it should work, I’ll check this, something could have changed on his side. Are you in 2018? PC or OSX? It’s fine for me, I’ve tested now in 2017, though I haven’t downloaded it recently so Ingo could have changed the code on his side.
The workaround would be to install it with the braverabbit instructions and ignore the C3dC shelf. If that doesn’t work then it’s a braverabbit bug. All we’re doing is trying to run his code, if it fails then our popup install window appears.
Ingo from braverabbit is good on feedback if there’s a legit issue.
Using Maya 2017 Student Edition Windows!
I’ve sent him a message so hopefully we can sort it out.
Your videos are great and you’re super quick at responding, thanks so much!
Hi Andrew, I use the Skeleton Builder to build up the joint and rigging, after skinning, when I use Arnold to Render my character, maya is crash! How can I fix that? I try to use skeleton builder in a new scenes, when I click render button with Arnold , maya crash again! Please help~I spend a lot of time to skinning my character!
Hi Seed, yes indeed Arnold has a known bug that will crash all our rigs I have reported this Autodesk and they’ve acknowledged the bug but haven’t fixed it! It’s super frustrating for us.
The fix is to Alembic cache as they do in the movies and render the cache. This is quite simple except that it loses all shader information, so you have to manually export and reassign the shader information, I’ve half written a tool that can export all of this in one click. I’ll make sure it’s a priority for us moving forward as this Arnold bug is extremely annoying.
For now here is the annoying fix
1. export and import an alembic cache as seen here…
2. Once you’ve reassigned the shaders export selected the alembic to a new scene, then open the exported file. Without the rig information, the mesh will render fine.
Here is my video to Autodesk showing them the issue that causes the crash.
So, alembic is the only way to solve this problem?I see your video , you click reload arnold to slove this problem, but my aRootPart haven’t any extra information like yours,
Yes all zoo rigs have this hidden set that Arnold corrupts, don’t worry about my video or the Arnold load.
Alembic caching fixes it, be sure there is no rig information when you render. It’s the safest and best way. All large studios render alembics and without rig info, it’s the cleanest way to light.
Though I need to make that button to support one-click shader support. Without it then the shader setup is annoying. It can be automated in code.