private static Quaternion ConvertKinectQ(K4AdotNet.Quaternion q) { // Kinect coordinate system for rotations seems to be // left-handed Y+ up, Z+ towards camera // So apply 180 rotation around Y to align with Unity coords (Z away from camera) return(Quaternion.AngleAxis(180, Vector3.up) * new Quaternion(q.X, q.Y, q.Z, q.W)); }
private static Quaternion ConvertKinectQ(K4AdotNet.Quaternion q) { // Convert to Unity coordinates (right-handed Y down to left-handed Y up) // https://docs.microsoft.com/en-us/azure/Kinect-dk/coordinate-systems // https://gamedev.stackexchange.com/questions/157946/converting-a-quaternion-in-a-right-to-left-handed-coordinate-system return(new Quaternion(-q.X, q.Y, -q.Z, q.W)); }