Jump to content

Camera script rotation


photo

Recommended Posts

Hello

 

 

We are using the camera script like in the tropics demo.

 

To create the file I wrote a simply script which saves the pos.xyz, rot.xyzw and fov to a text file while the designer clicks on a button within unigine.

It takes the needed information from a PlayerSpectator instance.

 

While loading the camera file and play it, the camera rotation is very strange in all directions.

The position is of the camera is right.

 

What could be wrong with the rotation? At the end I read world coordinates from the PlayerSpecator and set it later for the camera in the same world, that should work?

 

 

Thanks a lot

Link to comment

then, what you are trying to do have already provided in unigine, check scripts in data\core\scripts\camera.h

 

This is exactly what I use, my problem is that the following code to create a camera.txt is not working. (The rotation is not right)

 

 

		    // Get player pos
	    vec3 pos = player.getPosition();

	    // Get player rot
	    quat rot = player.getRotation();

	    // Get player fov
	    float fov = player.getFov();

	    // Save the values
	    file.puts (string(pos.x) + " " + string(pos.y) + " " + string(pos.z) + " " + string(rot.x) + " " + string(rot.y) + " " + string(rot.z) + " " + string(rot.w) + " " + string(fov) + "\n");

	    // Flush the file
	    file.flush();

 

In camera.h they read the values this way:

 

	pos[i].x = float(file.readToken()) * scale + offset.x;
			pos[i].y = float(file.readToken()) * scale + offset.y;
			pos[i].z = float(file.readToken()) * scale + offset.z;
			rot[i].x = float(file.readToken());
			rot[i].y = float(file.readToken());
			rot[i].z = float(file.readToken());
			rot[i].w = float(file.readToken());
			fov[i] = float(file.readToken());

 

 

My code must do something wrong while saving the rotation.

Link to comment

ha , that's simple , you should use inverse quatenion to save the data :)

 

 

Take a look inside plugins/Max/UnigineExport/UnigineMenu.ms

 

Thanks, inverse did the trick!

Link to comment
×
×
  • Create New...