How to switch smoothly between 2 cameras of 1 character

Hi guys !

I’m a 2 weeks beginner on UE my problem is probably not a big deal but I’m stuck ! I want my camera to smoothly slide backward when my character (“Grenat_characterBP”) get outside of a Trigger volume. I duplicated the default camera of my character and pushed it backward, so I have to cameras : cameraClose (default one) and cameraFar I tried 2 ways that actually work, but I can’t find a way to smooth the transition…

I tried a Level BP Version :

And a Character BP version :

So 2 questions :

Which one is “better” (or maybe none of them is T.T) ?

How can I smooth the movement between the two cameras ? "I tried with Set view target with blend but I can’t plug my character cameras in the target socket and I don’t know why !!! I cried a lot on that…

Thank you mighty UE community :slight_smile:

Guillaume

HI GGUERILLOT,

Instead of using two cameras, you could use one and lerp between the two relative locations. This would allow you to smooth the movement as necessary and control the camera location without needing additional cameras.

Thanks for the advice ! I’m gonna try this way, I suppose I will need a “Timeline” node and “set location and rotation” as well.

Is it better to do it in character BP or level BP (or whatever) ?

Both can work, though the level BP would be a better option for cameras placed in the level as opposed to cameras that will follow the player.

Hi !
I tried to move my camera with the “move component to” node, still triggered by an overlay event as so :

But it is not working… The overlap event nicely trigger the sound but it is not working with the character’s camera movement :-/ I’m wondering why…

You could also try using a single camera and moving it between the two positions. I do this for aim-down-sights by controlling the length of the boom (SpringArmComponent). It’s simple and it works really well.
Note that “Position” in the Timeline is a single float track going from 1 to 0 over 0.25s. For a more complex motion, you could use a vector track instead of the float track. It’s more complicated but still the simplest solution IMO. Also, CameraTrackLength is determined by subtracting AimingViewArmLength from the default boom length.

Also, CameraTrackLength is determined by subtracting AimingViewArmLength from the boom length at the default camera distance.