Spring Arm: Constrain Camera Lag to Axis

Hi friends at Epic Games,

I’ve been trying to imitate the camera controls from a 3rd-person console game which features both rotation lag and z-axis lag on the camera (trailing behind the player slightly when they jump, amplifying the jump visually). This works great in the Spring Arm settings enabling both Camera Lag and Camera Rotation Lag. I’ve also been able to smoothly ramp the lag “on/off” using FInterp To on the Camera Lag Max Distance based on whether the player is jumping or not. However, when the lag is on, it affects all axes, so if the player steers Left/Right or Front/Back while jumping, the camera will also lag behind in those directions. It would be so great to be able match the console game and have editable fields for Camera Lag Speed in the X, Y, and Z axes as shown in the image below. Thanks so much for your consideration on this, and for your excellent work in the development of UE4!

Sincerely,
Adam Janz

NewCameraLagSettings.PNG

Interesting idea.

If this is ever implemented, I’d like to see a checkbox or drop-down to select whether to use a float or three channels. Wouldn’t be very intuitive for most games to have to adjust three floats rather than one.

Thanks TheJamsh. I was able to adjust my present setup so the X/Y lag while jumping feels acceptable. However, I can still see this being a huge benefit so the lag can be truly isolated. Perhaps a single float for X/Y and one for Z would be more practical, since X and Y would be somewhat relative in a 3rd person game where the camera can orbit 360 degrees around the player.

Hi AJ. I’ve been trying to achieve something similar in a Third Person game, but with a camera which lags behind the character only when they are moving forward. My character is constantly strafing in all directions so without isolating the lag the camera looks bad when moving left or right. What would be great is the ability to isolate lag so that the camera hangs behind a bit only when the character is sprinting, or moving forward whilst attacking.

The only way I can currently achieve this is by interpolating the spring arm target length scaled to movement but it’s a bit hacky and requires a fairly heavy tick event…

1 Like

I did something like that a while back: Feature Request: Axis-specific camera lag / max distance - #5 by darthviper107 - Feedback for Unreal Engine team - Unreal Engine Forums

Thanks, Ross; yes, isolating lag would be a really great feature, especially if it could be isolated to the character’s relative axes (which are constantly changing) rather than world axes. Thanks darthviper107 for that great link. I will have to check that out. Downloaded the screenshot so I don’t lose that BP setup. :smiley:

@**AJ_Graphix: **Another way to do it:

https://forums.unrealengine.com/development-discussion/blueprint-visual-scripting/1497649-how-do-i-set-up-the-player-camera-manager?p=1497699#post1497699

I appreciate you sharing that, Everynone! That also looks like a great setup. Thanks for the help!

For those who may be interested to see darthviper107’s original setup, I actually found the screenshot still saved on my hard drive (it seems some old and useful screenshots unfortunately got purged in Epic’s transition to the forums from Answerhub):

1 Like

I finally found a great solution! Axis-specific camera lag is very simple to implement using the method described here.