Real first person camera without any headbobbing.

Head bobbing is horrible. Period.
I can literally get motion sickness from testing my own game a whole 10 minutes and it gets about as bad as Fallout 4. The world’s worst fallout title…

I’m coming up with a way to lessen or entirely remove this horrible effect while still having a 3rd person body, a camera switch, and all of the parts on the character, including his head, though I’m not opposed to hiding it I’d there are actual benefits in the end.

im wondering if anyone has done this before to an advanced extent of what I’m after which is full removal of any headbob with any animation.

So far my line of thinking is this.

Socket on the character’s nose to attach the camera to.
the camera wont be attached but the actor On Tick event will get the socket world location axis, and store their previous value then update them. This enables to perform delta manipulation of the camera in local space on a per tick basis when the shift in motion is greater then a predetermined amount.

Basically if you go prone, start falling, start running, the camera will keep offsetting at least 1 axis of the socket at all times. Which I think will be enough since it should effectively eliminate all the micro sway that is usually below a range of 3 to 5 units of movement that causes issues.
Lets say maybe a maximum of 15 in running stata so we avoid any and all shakes…

Just putting this out here as an idea first. And maybe I’ll add some images tomorrow as I come up with a working solution.

all that said, curse any developer making fps games without considering those of us that get motion sick (bethesda!) :stuck_out_tongue:

This might help

True First Person Camera

I have seen it before but the animation is not entirely decoupled from the movement’s sway. The marketplace animations hardly take any of the final notes into consideration ever, unfortunately.
The end result is not unlike being on the inside of a small boat…

This is what I came up with so far. It eliminates the sway during Idles almost entirely, which is already a lot towards not getting sick.
The shake tolerance is set to 2 in order to be able to move the camera when crouching.


The next step up is to offset/change only the axis that moves the most.
Ideally getting a steady directional motion without the Z - which is almost always present in run/sprinting cycles.
At the same time, if moving z we probably want to avoid small movements on X and Y.

maybe Finterpto into a custom variable would be a smoother way to go then just moving the spring arm too… I’ll have to do further testing, just wanted to share this prototype and see if anyone comes up with interesting ideas…

Well, this version is much better in terms of not getting sick. It has a few issues with the mesh during my crouch sequences though, it can sometime offset from the nose to the point you see your cheek and what not.
I’ll have to take care of that along with the poking through geometry that happens anyway due to the short spring arm.

Another issue is also any instant movement like foot IK - the camera can tend to get lost on those.