Gyro Stabilized Camera Effect

I need an effect of gyro stabilized camera similar to this video:

Please note that there is no use of an actual device gyroscope here. My main camera is attached to an object on a boat, as the boat moves/rotates the camera is stabilized, when that is enabled.

The user will be able to rotate the camera around x and y axes, with or without stabilization.

I tried a few methods, like adjusting the forward vector of the game object, to which the camera is attached, back to its previous value. But that causes very high flicker.

The best method making the camera LookAt() a distant a point, selecting that point every time stabilization is enabled. But how does user rotate during stabilization, I can’t figure out.

Any help will be appreciated.

Sounds easy enough. Look-at-point is a fine approach; user input rotates an object whose pivot is the camera origin, and whose child is the look-at-point. The distance of the point from the origin doesn’t matter.

You could inject some margin of failure / wobble in the fake gyroscopics by having the look-at-point wobble and shift around slightly from its “home” position, or by introducing some minor random rotation to its otherwise-input-driven parent.

Not sure about having the camera rig as a child of the vehicle; that might cause issues depending upon the order of operations. But to feel “right” to the user, the rig probably should rotate with the vehicle, so maybe it being a child is okay. Depends on the behavior you want. Enforce some rotation extents to mimic the range of motion of a human neck + torso, and there you go.