How do I prevent the camera from jumping when the spring arm intersects a corner?
Hi all. I absolutely love using the spring arm and can get some nice smooth camera movement with the right lag values. But when the spring arm intersects a corner or any kind of abrupt geometry between the camera and the character, the camera jumps jarringly to the intersect position. Not cool.
I thought I was being clever when I detached the camera from the end of the spring arm, put a dummy SceneComponent in its place, then had the camera chase the SceneComponent ("Camera Position Target") using VInterpTo and RInterpTo:
When I played the level and intersected the spring arm on a corner, the camera glided nicely to its target position, but then I noticed it had an annoying twitch every time my character changed direction. When I turned on "Use Controller Rotation Yaw" in the Pawn defaults, the twitch went away, though now my character looks like he's spinning on a lazy susan every time I move my mouse.
Anyone else annoyed by this? Got any ideas on how to remedy it (short of programming a custom camera movement from scratch)? What I'd love is for the spring arm to have this smoothness built in. Maybe put in a feature request? Any insights would be much appreciated.
asked Sep 20 '14 at 06:10 AM in Blueprint Scripting
All you have to do is to check if the length of the spring arm has decreased abruptly (if it has encountered a corner). You can achieve this by creating a float variable named sth like "ArmLengthPrev" and taking the difference between this and the current spring arm length. If this is greater than a certain threshold (possibly 0 or 0.1), your branch would return TRUE and FALSE otherwise. If TRUE then you apply the interpolation; if FALSE you make the camera immediately jump to the scene component position.
answered Sep 20 '14 at 08:11 PM
Follow this question
Once you sign in you will be able to subscribe for any updates here