Turning Off Segment Scale Compensate in Maya: How to make Maya rigs play nice with Unity

Autodesk Support

Dec 12, 2015


Are your characters doing weird scale things in Unity coming from Maya? It's probably the Segment Scale Compensate on joints causing your problems. Segment Scale Compensate is on by default every time you make a new joint. You can learn more about Segment Scale Compensate here, but basically when you scale a parent joint in Maya using scale compensation, it creates an offset for child joint rather than scaling it. Unity hates this and weird things can happen as a result.

This MEL script will fix you up, selecting all joints and turning SSC off for all joints.

{
string $selected[] = `ls -type joint`;
select -r $selected;
}

string $sel[] = `ls -sl`;
string $singleJnt;
for ($singleJnt in $sel)
{
setAttr ($singleJnt + ".segmentScaleCompensate") 0;
}

You want to run this MEL script after you've created your joints. If you add additional joints on your rigs later, run the script again to ensure Segment Scale Compensate is off for all of them.



Was this information helpful?


Need help? Ask the Autodesk Assistant!

The Assistant can help you find answers or contact an agent.


What level of support do you have?

Different subscription plans provide distinct categories of support. Find out the level of support for your plan.

View levels of support