Zero Gravity First Person view (crysis like)

Hello Everyone,

I am trying to achieve this kind of zero gravity first person controls:

What would be the proper way to do it?
Any help would be really appreciated :slight_smile:

Hey, take a look at this article.

Also, I believe the Epic’s Flying Template is a good start (Launch Unreal Editor and go to new project).

Thank you for this article. I had a look at it but I am not sure this will help me as I am trying to do it using the First person template.
After some experimentation I got this result:

I really like the controls of the camera. There is a roll and it feels exactly like in the crysis video.
However, there is an issue when going out of the zero gravity zone. I can’t find how to fix this.
This is probably due to the fact that I am setting/unsetting the “Use pawn control rotation” in my gravity change event:

I then have another test where I simply removed completly the controller axis and pawn control rotation. Instead I have a look at object and I
calculate a look at rotation using this object. I don’t really like this one because it doesn’t feel like in the crysis video.
There is no “roll effect” on the camera. Vector up is always the world vector up.

I can’t seem to find a proper way to do it with the first person controller from the template…
It would really have made my life easier by using the template controller.

Hoping that someone has a magic formula to get this right. But if I have to do it, I will make everything from scratch…

You mean this abrupt rotation when the transition from Zero Gravity to Normal gravity happens?

I believe you should turn your character smoothly.

I suggest you to use a boolean “bIsTurning” and check every tick if it’s true. Set it to true only when called EventGravityChange and “ZeroGravity” is false.
Then, use RInterpTo to interpolate from your current rotation to the rotation you desire (X(Roll) = 0) in a smooth InterpSpeed value you want. After turning the rotation, compare if your current rotation is near to zero and then, finally follow your logic shown above from the False execute node.

Hey, thank you really much for the answer.

I will try to do as you mentioned with the RInterp and then execute all the thing in the false condition.
That might work! Didn’t think about it :slight_smile:
Will let you know if it worked ^^

Thank really much!
I got it to work as I wanted!

I followed your idea of having a RInterp when leaving the zero gravity zone using a boolean in the tick event.
I also had to use some tricks.
For example, when in zero gravity, I change the pitch and the yaw of the capsule collider. However when I am not in zero gravity, I change the yaw of the capsule collider, but the pitch of the camera!

If someone needs some help with the blueprint behind it, you can contact me and I will try to send you screenshots of the blueprint

Looks pretty neat, congratulations!! : )