Freezing Transforms Clarified?

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.

Your description seems mostly correct except I don’t think Freeze transforms “leaves LRAs untouched.”

The LRAs clearly change when you freeze transforms :

The way I think of it:
Reset Transform = zero out channel values and set the object to its original default position , scale & orientation

Freeze Transform = set current position , scale & orientation as new default and zero out channel values

The thread is tagged for Maya but It is worth noting “freeze transforms” does slightly different things in different DCC’s , 3DS Max for example.

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.

I guess what I meant to say is that freezing transforms on joints does not effect their LRAs.

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.

before freeze

after freeze

Interesting. Why is it stored there?

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.

Absolutely, I was trying to explain the trigonometry needs behind what maya is doing, not describing how the joints actually work.

1 Like