Attention | Topic was automatically imported from the old Question2Answer platform. | |
Asked By | Dragon20C |
I am making an 3D fps game, I have a player when it shoots the recoil moves the camera up, but it seems unnatural, I want it to be smooth and less rigid,I thought of trying to use lerp but im not sure on how to do this with camera movement I also thought of using linear interpolate but thats beyond me, as I dont exactly know what it does or how to use it!
Line of code where recoil happens:
if Input.is_action_pressed(“fire”) and current_ammo != 0 and current_health != 0 and can_fire == true:
#Recoil
vertical.rotation_degrees.x += recoil
Also, Please suggest ways on improving this recoil, at the moment it only goes up so if you guys could suggest a way to make it similar to call of duty, or just improve it in general, I would appreciate it, thanks!
maybe instead of doing it through code, you could make an animation and trigger it. It all depends on the person though, for some this will be harder, some, easier.
Millard | 2020-11-09 19:48
Thanks for the option but unfortunately I would like to control the recoil with numbers having an animation would limit me, thanks for commenting anyways.
Dragon20C | 2020-11-09 20:03
Try this and see if it works.
if Input.is_action_pressed("fire") etc.
vertical.rotation_degrees.x = lerp(vertical.rotation_degrees, vertical.rotation_degrees + recoil, .1)
not exactly sure if it will work.
Millard | 2020-11-10 00:19
Tried this, it produces the same results not smooth and jumpy
Dragon20C | 2020-11-10 07:39
what is the difference between vertical.rotation_degrees.x
and rotation_degrees.x
?
Millard | 2020-11-10 21:22
Oof might of made a mistake there I gotta check if I fixed it, it’s supposed to be the Same vertical is an extra 3D node so I can turn the players head up without rotating the body
Dragon20C | 2020-11-10 21:37
it is the same, I just thought vertical must be something I didn’t know about.
Millard | 2020-11-11 00:41