Because after effects 3D rotations are 3 different expressions: X, Y, and Z, while orientation calculations are matrix-based mathematics.

https://en.wikipedia.org/wiki/Rotation_matrix
After Effects expressions calculate independently one at a time; so an X-rotation is the first thing solved, then Y, then Z, etc, and the only thing that is shared is the final value.

Matrix calculations need to be preformed all at once and are interdependent, so if you solve for one and apply it, it will affect the others. They have to all be done at once. 2D rotation is a single rotation, so it's much easier to solve for.

In the past I've built a 3D-based null that can steal the properties of other layers before, and the only way to solve for 3D rotation is to lock the rotation properties and instead use orientation, which is again going to be based on shortest path orientations and will (probably) give some incorrect results since orientation is not world-based, but object based.

There might be a way to calculate the orientation back to the worldspace through a toWorldVec calculation, but that's a bit beyond me off the top of my head.

Alex Printz

Mograph Designer