In the production pipeline, how to handle the problem that skinCluster deformations at large distances from origin?

411 views
Skip to first unread message

yaoys

unread,
Mar 26, 2018, 2:56:21 AM3/26/18
to Python Programming for Autodesk Maya
Hi all,
The problem that skinCluster deformations at large distances from origin seems to be a common problem. It had been reported officially (https://knowledge.autodesk.com/support/maya/troubleshooting/caas/sfdcarticles/sfdcarticles/SkinCluster-deformations-at-large-distances-from-origin.html), attributed to losing numerical precision.  

There are many discussions on this problem on the websites, such as:

It seems that those discussions and solutions, if I didn't miss any others, can be classified into two categories: 
1)by using blendshape and 
2)by connecting joint.worldInverseMatrix to multMatrix.matrixIn. 


My questions are:
1. 
Are these two methods robust enough to be used in the production pipeline? Do they have good performance?
For example, for the first method, a new skeleton will be cloned from the original one. Will this method ruin the performance of Maya in the production? For the second method, one multMatrix node is created for each joint. Will these multMatrix nodes ruin the performance of Maya in the production?


2. 
If the above two methods are not good enough to be applied to the production, how do you handle this problem in your production pipeline?


Cheers
Yao

Marcus Ottosson

unread,
Mar 26, 2018, 4:15:35 PM3/26/18
to python_in...@googlegroups.com
Hi Yao,

In my experience, you mostly just try to avoid this happening. You may not have noticed, but this happens when things are too small as well!

I'll assume by "production pipeline" you're referring to film, and in film you typically work shot-by-shot. Before you even get to a shot in something like Maya, you typically know what's going to happen and what's going to be in it. With that information, it's typically trivial to figure out an appropriate scale for things. At a higher level, the assets you create for a film is typically created globally and span across many or all shots. In that case, the same thing applies. You typically know up front, long before getting to Maya, what a film consists of and what the average size of things are.

For example, if you're working on Bugs Life 2, then working in millimeters is probably fine, even if there's the occasional human in some shots. But if you're working on Pacific Rim 2, then millimeters can work against you. Furthermore, if you know that in your film there's going to be lots of locations but that all locations reside within the same "logical location" - such as a single city - then you could try and replicate this single city as one giant asset, and simply position the camera in various parts of it. But see now you're in trouble, because you might run into the issue you've been seeing. One solution is to either use this giant asset and move it, such that the camera location is at the center of Maya. Another (and perhaps more practical) is to chop the city up into individual parts, and use the relevant part for the corresponding shot.

Hope that helps. :)

Cedric Bazillou

unread,
Mar 27, 2018, 10:04:30 PM3/27/18
to Python Programming for Autodesk Maya
personally my shot at it was more into evaluating the rig "In Place" at the origin and just parenting the deforming mesh to a root control. writing a batchMatrixNode is fun as well if you are concerned about performance( we even  have nowadays MPxSkinCluster class exposed to the API).
but this can be solve cheaply as well by your shot department if your scene is constrained to a the virtual room which slide to in order to  stuck the action to the origin. ( ala jamiroquai virtual insanity video clip).

Neil Roche

unread,
Apr 3, 2018, 10:28:04 AM4/3/18
to Python Programming for Autodesk Maya
If you normalise your skin weights at the bind pose this shouldn't happen.


Marcus Ottosson

unread,
Apr 3, 2018, 11:39:36 AM4/3/18
to python_in...@googlegroups.com

If you normalise your skin weights at the bind pose this shouldn’t happen.

What shouldn’t happen, exactly?


On 3 April 2018 at 15:28, Neil Roche <ne...@milk-vfx.com> wrote:
If you normalise your skin weights at the bind pose this shouldn't happen.


--
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_maya+unsub...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/2f916216-8703-482a-b863-8114a03ceb4f%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Neil Roche

unread,
Apr 3, 2018, 11:47:18 AM4/3/18
to Python Programming for Autodesk Maya
You shouldn't get the spiky skin errors when the rig gets transformed too far away from the origin.
Reply all
Reply to author
Forward
0 new messages