Lag with clusters
Hello everyone! I'm new to this forum but I hope I will stay for very long!
I'm rigging this character at the moment and it gives me some weird trouble when binding curves to the mesh. I want to control the eyebrows (for example) with curves so I build a CV curve, add clusters to the curve to move different points. When I add influence of the curve to the, already skinned, mesh I get lags. If I try to move anything it lags even though it worked fine before. I made sure to check on "use components" under skin cluster but it's not helping. I already used that setup on my rigs before and never had a problem with it until now, so I believe it has something to do with the mesh?
I'm thankful for any ideas you guys might have :)
UPDATE:
So I took my starting scene (Mesh only!). Created a joint, bound the mesh to it. Then I tried again to do my curve setup with joints driving the curve. Added influences to the skin: Still lag. So I guess it has to do something with the base file/mesh?
Edit: It works if I open a blank scene and create the setup on a sphere. Trying to update Maya 2017 (haven't done that yet) so maybe that will help me with my problem. Not really sure what else I can do except start over with a different mesh...
Looking at your other comments it seems that maybe it's just down to the pure resolution of the geometry. As
elsonkms92
said, it might be worth sharing the file, so we can have a look at what might be going wrong.Here's the file blank file with only the mesh and my attempt on the eyebrows:
https://drive.google.com/open?id=1ESGA91AeLtueelT4UKS1Ns1JO0-AgcrG
Nice, thanks for sharing that.
I just opened it up and had a look. I definitely couldn't find anything wrong with the setup, so I would assume the reason for the slowdown is down to the way
skinCluster
s processnurbsCurve
s as influences.I myself never use curves directly as I remember doing some performance tests, comparing them to using joints attached with
pointOnCurveInfo
nodes and even with those extra nodes it was still faster. So, if you are keen on using the curve in askinCluster
i'd suggest going this way.Alternatively, and that I think is the better solution, just use a
wire
deformer.Hope that helps!
Hey vshotarov!
I "fixed" the problem now, but I'm not sure you will be happy about how I did it. My professor opened the file as well and he said he couldn't find anything wrong and it worked fine on his computer. So I deleted Maya 2017 and downloaded Maya 2018. Now it seems to work just fine?!
(Did it lag on your computer as well?)
I've rarely used the wire deformer before. Do you have any links or videos of how I could set up eyebrows and sticky lips without using curves at all?
Oh, wow, the I find the fact that 2018 works fine very interesting. Maybe they did some changes to the
skinCluster
. I will have to have a look at the change log at some point.In any case, I am glad you got it sorted.
Unfortunately, I don't know of any tutorials looking at that, but I have been using a
wire
for the eyebrows, when working with cartoony characters and joints for the sticky lips, where I just blend the position of the lower and upper ones, so they meet in the middle.I'll have more time tomorrow to test it further, but so far everything seemed to be working just fine. Roughly skinned it and no lag at all.
Hi and welcome!
It sounds to me like the issue is not coming from the clusters, but from driving a skinned mesh with the curve. Even though, it does seem like a cool concept, I've always tried to stay away with that as it doesn't work with painting weights in post.
Since you've already been using this setup and it has been working, maybe it is the case that there is some deformer history left somewhere along the deformation chain, so can you try rebuilding the setup from scratch? I mean, obviously save your weights and things, but rebuild the actual deformers and make sure there's no other history.
If that still doesn't work, then it could be the case of a too high res geometry.
A good way to debug it would be to create some random animation on those clusters driving the geometry and then run the Profiler to obtain some information of where the computation is taking the longest.
Try isolating a single frame in the profiler and have a look at which nodes take the longest. If something unnecessary is taking long, you will be able to easily spot it. On the other hand if it's just the
skinCluster
itself then there's probably not much you can do.That being said, maybe using a
wire
deformer or creating some joints on the curve usingpointOnCurveInfo
nodes and then using those in theskinCluster
could work.Hey! So I tried to unbind the skin and bind it anew but the problems remain. I don't know anything about Profiler so I'm not sure it's a good idea to get into that right now... I tried to delete my blendshapes as well, but still nothing.
The mesh got roughly 1 million tris, so maybe that's where the problem lies? I'm now going to try to do the eyebrows and lips joint based even though I have never done that before, but I'm way too frustrated to continue with the curves/clusters. Even thought of starting the whole thing from scratch (could use the practice anyway).
Edit: Found this video so I might try this for the curve and see what I'll do for the sticky lips. https://vimeo.com/71620108 Edit2: Okay it's still lagging when I try to drive the curve with joints.
Thanks for your help! I will try those different approaches once I have the time!
I prefer using joints for my eyebrows and using follicles to make them follow the head. Not sure whats happening in ur scene but perhaps you can provide a scene for us to debug? We cant confirm anything without the scene haha.
Hey! If you want to take a look at the scene I could send you the file somehow? I'm a bit clueless about how to fix this.
Thanks for your advice! I might come back to that once I'm done troubleshooting.