So when you think about a 3D position, it’s easy to picture a vector3 representing that position in space, right? That same way of thinking translates well to the familiar
rotation Property, but while useful when picturing rotation mentally, this way of representing rotation suffers from a few problems, mainly that adding rotations is less than straightforward, and another problem known as gimbal lock.
rotationQuaternion Is a different way of representing a rotation that doesn’t have those problems. Instead of a single vector3 representing a radial value for each axis, you have a vector3 and a scalar number parameter. The vector represents the axis of rotation, while the scalar represents the angle of rotation.
Without getting into the maths involved too much, (You said you wanted layman’s explanation!) this structure can be quickly, efficiently, and easily added together with any other needed transformations to compute e.g., a bone’s orientation in relation to its parent and to world space by plopping it into a Matrix.
Here’s a technical definition from my fave resource Essemtial Mathematics for Games and Interactive Applications:
In a unit quaternion, w can be thought of as representing the angle of rotation θ. More specifically, w = cos (θ/2). The vector v represents the axis of rotation, but normalized and scaled by sin (θ/2). So, v = sin (θ/2)rˆ.