>>105758149for model rotation use this if you're doing a top down 2.5D movement:
player.rotation.y = lerp_angle(player.rotation.y, atan2(direction.x, direction.y)
This would give you a proper 8 directional rotation based on input.
For tank motion, dunno, never done it.
As for the camera, use look_at to make something rotate towards another object.
And use look_at_from_position.
You will save yourself a lot of trouble if you use look_at_from_position and look at, and lerp_angle and slerp.