In the production pipeline, how to handle the problem that skinCluster deformations at large distances from origin?
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/SkinClust...), attributed to losing numerical precision.
There are many discussions on this problem on the websites, such as:
http://discourse.techart.online/t/maya-deformer-evaluation-inaccuracy/5456
http://ollarin.blogspot.jp/2015/09/splitting-your-rig-into-local.html
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
Solved! Go to Solution.
Solved by mspeer. Go to Solution.
Hi!
In "real" (most) productions in Maya default units although labeled as "cm" are used as "meter", so this problem will rarely come up (if ever).
If you really get this problem, there are solutions as you posted above.
Loosing precision with distance happens with all 3D engines.
@mspeer wrote:Hi!
In "real" (most) productions in Maya default units although labeled as "cm" are used as "meter", so this problem will rarely come up (if ever).
Thank you for your reply!
But I'm afraid that I didn't understand your words. Do you mean that changing maya units to 'meter' will reduce the chance of this problem?
I tried changing the units in maya, but the problem remained. Here are my steps:
1. Set maya units to 'cm'. Create a box and a rig. Then bind them by "BindSkin".
2. Then, translate the root node of the rig to 9999 along x-axis. Then the mesh is good when I deform the rig.
3. Then, translate the root node of the rig to 999999 along x-axis. Then the box is BAD when I deform the rig due to losing numerical precision.
4. Save the scene as cm_asset.ma
5. Open a new scene, and set maya units to 'm'.
6. reference cm_asset.ma. Now the rig and box appears at 9999.99 along x-axis. I thought the box would be good as it was in step 2. In fact, the box is BAD as it was in step 3.
So, is there any thing wrong in my above test steps? or, do I misunderstand anything in your words?
Cheers
Yao
Hi!
Leave Maya at default units (don't change it), just treat "cm" as meter.
Or better said ignore unit label, just use default units as meter.
Thank you for your reply.
Could I paraphrase your words if you don't mind with an example to make sure that I don't misunderstand you?
For example,
- In the planning stage, I design a model in my mind that the model is 100 centimeters high, and it is located 100 centimeters away from the origin.
- In the modeling stage, I create the model in Maya as 1 unit high, and locate it 1 unit away from the origin.
Cheers
Yao