Camera Tracking 360 Degrees On X, Y, Z Axis I have tried searching for an answer to my question, but I haven't found any helpful information yet.

I would like to create a camera that follows a rollercoaster path 360 degrees around my scene along the X-axis, Y-axis and Z-axis. So the camera will pass above my scene, below my scene and all around, but the camera focus will mostly move in the centre of my scene. Except sometimes I want the camera to ignore the focus and be locked looking forward along the path, other times I want to pan to the sides/up/down and other times to barrel roll around the camera's local negative Z-axis.

I have created a Bezier curve path for my camera to follow and an empty for the camera to track. However I have parented the camera to another empty and set the camera's parent empty to "Follow Path" along the camera path and also Track To my focus empty. The focus empty also has a second Bezier curve path that it follows.

I parented the camera to an empty so I could still pan and barrel roll the camera as the empty moves along the camera path. I am also key framing the offset of the camera's parent empty in order to create rapid/gradual acceleration/deceleration to match a rollercoaster's various speeds.

First I tried setting the camera empty parent to Track To my focus empty, but of course the camera flips 180 degrees when it passes above or below my focus empty.

So I deleted the Track To constraint on the camera parent empty and replaced it with a Locked Track constraint, but even the Locked Track constraint still has one axis the camera will flip 180 degrees.

My question is what are some camera rigs to circle 360 degrees around a focus empty along the X-axis, Y-axis and Z-axis simultaneously without the 180 degree camera flip, and still be able to rotate and pan the camera as it moves? Thank you very much.
I solved the 180 camera flip problem by duplicating my camera and switching the active camera. Here is how it works for anyone new to 3D camera animation like myself.

I created four separate empty cubes named CameraFocus, CameraTrack, CameraTarget_Y, CameraTarget_-Y, and then three cameras named Camera_Y, Camera_-Y and StationaryCamera.

I parented Camera_Y to CameraTarget_Y and then parented Camera_-Y to CameraTarget_-Y.

Then I parented CameraTarget_Y, CameraTarget_-Y and StationaryCamera to CameraTrack by selecting them all, selecting CameraTrack last, and pressing Ctrl-P. Then I added two Locked Track constraints to each CameraTarget_Y and -Y, like this:

CameraTarget_Y:
Locked Track: 1
Target: CameraFocus
To: Y
Lock: X
Locked Track: 2
Target: CameraFocus
To: Y
Lock: Z
CameraTarget_-Y:
Locked Track: 1
Target: CameraFocus
To: -Y
Lock: X
Locked Track: 2
Target: CameraFocus
To: -Y
Lock: Z

I had to set the Camera_Y x-axis to rotate 90 degrees to point it at my CameraFocus. Then I set the z-axis of Camera_-Y to 180 degrees and added a Copy Rotation constraint to copy Camera_Y's x, y and z inverted rotation in local space and checked the offset. So now I have two cameras that point to the CameraFocus but they are mirrored on the x-axis.

Now I can use the Follow Path constraint to make the CameraTrack follow a path while tracking my CameraFocus. I can also keyframe the CameraFocus to move or set it to follow it's own path.

The 180 camera flip happens when the CameraTrack is parallel to the zero x-axis and crosses the y-axis because the Locked Track direction and 'up' values cannot be parallel. When To: is Y or -Y and Lock: is also Y the Locked Track doesn't know where to point so you end up with the 180 camera flip.
But we now have two cameras that are mirrored on the y-axis, so when they flip just switch cameras by setting a marker in the timeline with M and then Ctrl-B to set the active camera.

If the camera flip is instantaneous you can simply switch from Camera_Y to Camera_-Y or vise versa. If it's not instantaneous, key frame the StationaryCamera to match the rotation to the active camera and set the StationaryCamera as the active camera. Move the timeline to when the cameras have completed their flip and key frame the StationaryCamera to match the rotation of the opposite camera of the previously active camera and set that camera to the active camera.

And viola, a professional Hollywood camera dolly system that can rotate around the x, y and z-axis simultaneously with no 180 camera flips. I can move the CameraFocus by key framing it or constrain it to follow it's own path to create smooth curving camera pans. And since the CameraTarget_Y and -Y handle the camera tracking, the cameras themselves are free to pan and roll independently if needed. Just remember when you switch Camera_-Y to the active camera and you want to pan or roll Camera_-Y, you will actually need to rotate Camera_Y to keep them in sync. Hope this helps someone else out there.