Hi.

I'm trying to rotate my character object without rotating the physic body that is attached to it.

What I mean is that I'm trying to get the mesh itself, to be drawn "looking" forward, left, right or back, depending on user input. But at the same time, keep the body orientation intact, so that the camera can follow the body orientation.

I managed to do this, by getting the direction the user is pointing with the analog stick stored in a vector3.

And then I get the rotation matrix by doing the following:

```
rotation = RotateToFace(Vector3.Zero, direction, Vector3.Up);
///
/// O is the object's position
/// P is the position of the object to face
/// U is the nominal "up" vector (typically Vector3.Y)
/// </summary>
/// <param name="O"></param>
/// <param name="P"></param>
/// <param name="U"></param>
/// <returns></returns>
Matrix RotateToFace(Vector3 O, Vector3 P, Vector3 U)
{
Vector3 D = (O - P);
Vector3 Right = Vector3.Cross(U, D);
Vector3.Normalize(ref Right, out Right);
Vector3 Backwards = Vector3.Cross(Right, U);
Vector3.Normalize(ref Backwards, out Backwards);
Vector3 Up = Vector3.Cross(Backwards, Right);
Matrix rot = new Matrix(Right.X, Right.Y, Right.Z, 0, Up.X, Up.Y, Up.Z, 0, Backwards.X, Backwards.Y,
Backwards.Z, 0, 0, 0, 0, 1);
return rot;
}
```

The mesh is drawn with the correct rotation, if the orientation of the object remains intact.

But as soon as I rotate the body, the mesh is drawn using the same rotation.

For example: if I rotate the body's orientation 180 degrees, when I move the object forward it will look backwards, instead of looking forward.

Can anyone help, please?

Thanks.