Camera rotation draws twoards Z (Animation script built from mathformula in Excel)

18 Views Asked by At

I have constructed a script in FME which calculates the position and rotation of the camera along a track "railroad track". I use math when I write my script so no standard functions. The software does automated interpolation between the cameras with the input (x,y,z) and Q(w,x,y,z).

But i get a strange result when i apply the script and the camera draws hard twoards Z when going into a curve. Anyone got the same result when working with camera animations? Video of my problem: Video of problem

The variables I have are Cameras (x,y,z) from the track, and the starting Quternion (w,x,y,z). The camera path simplyfied in a simple picture

My metod is:

1) Normalized V (Vx,Vy,Vz) is Camera 1 (x,y,z) to Camera 2 (x,y,z) Normalized P (Px,Py,Pz) is Camera 3 (x,y,z) to Camera 4 (x,y,z)

2) Cos Theta = V.P/|V|*|P|

3) Sin(Theta/2)

4) Normalize VxP

And then just apply it to standard form. Easy enough... The result is confirmed in Quternion calculation software for unit vectors.

// RotationAngle is in radians

x = RotationAxis.x * sin(RotationAngle / 2)

y = RotationAxis.y * sin(RotationAngle / 2)

z = RotationAxis.z * sin(RotationAngle / 2)

w = cos(RotationAngle / 2)

Then I just Multiply q2 * q1 == Qnew to cumulate the two rotations.

The new camera will be Camera 2(x,y,z) and Qnew(w,x,y,z). Any tips?