I’m implementing multiple camera shake animations that trigger based on different movement states (Idle, Walk, Sprint). Each animation is set to start from position 0,0,0, but this creates a noticeable snap/pop when transitioning between animations since the previous animation might end at a different position.
The main issue is that when switching between animations (e.g., from Walk to Sprint), the camera snaps back to 0,0,0 before starting the new animation, creating a jarring effect instead of a smooth transition.
You can just use the relative or local transforms instead of world.
My suggestion above goes for the Add Relative Transform node, but when you’re using the Add Local Transform node, you shouldn’t plug in the target world location / rotation into the input pins. (Also the target location / rotation is also not the world location / rotation in the other method as well, we just transition from the current transform to a target transform that is relative to the parent) For example, if you want your camera to move to where it’s facing, you should trigger the Add Local Transform inside a loop (or open a gate after Event Tick) until the target world location is reached / calculated distance is traveled, and plug in a normalized vector into the New Transform Location pin that gives the direction of where it should be moving to. If you want to increase the speed of the movement, you can simply multiply the normalized vector. However, this would cause issues if the character is able to move independently from the camera. To fix that, you could add some extra calculations or just use the relative transform the way I explained in my previous post.