Is the statement below correct ? If not please explain.
There is a difference between freezing transforms and manually zeroing out rotations. Zeroing out rotations actually rotates the object, where as freezing transformations zero’s out the rotations without moving the object. It also changes the rotation and translate axis to world but leaves LRAs untouched.
Freezing a transform, is taking the objects position rotation and scale, then applying it directly to that objects Geometry before setting it all to 0. That is how the object visually keeps its position and rotation while its transform values all report 0.
Yes, you are correct, Freezing transforms does change the LRAs…
…matches them to world orient. Thanks for pointing that out.
and thanks for comparison between reset and freeze tarnsforms.
Yes joints are a special case, hey have an extra place to store the LRA offset.
With polys rotation gets “baked” into new vertex positions
But If you freeze transform on a joint, the rotation gets moved to the joint orient attribute.
To put it simply, a joint is like an edge with two vertex.
When you freeze transform a model of an edge, maya doesn’t know the original position P of the vertex anymore: their new P is the sum of their original P and the transformation which has been freezed.
From two points positions, you can calculate an edge angle.
Reverse that: from the edge angle, joint start position (“first vertex” position) and joint length, you can calculate the joint end position (“second vertex” position)
So if you know where is the base of the joint, it’s lenght and it’s direction, you can recreate it.
You can’t “bake the vertices” on a joint to establish a new orientation. The rotation is moved to the joint orient attribute to allow for a 0,0,0 rotation channel value that produces the desired default orientation.
Incidentally this is how “Freeze Transforms” works in 3DSMax for all node types. It adds a transform controller to the modifier stack to hold the offset and allow zero values in the result.