Strafe in Third Person Controller

I’m trying to reproduce a typical horror camera (like in Dead Space or The Last of Us): the player can rotate the camera around the character when he is not moving and, as soon as the player starts moving the character, he aligns with the camera direction and moves forward/backward.

I was able to achieve this by setting Use Controller Desired Rotation (from CharacterMovement component) to true based on the axis value from MoveForward event (see image).

When this property is set to true, the pawn strafes right and left correctly. But (and I suppose this is what it should happen when you set Use Controller Desired Rotation to true) if I rotate the camera first then try to move right or left, the pawn doesn’t align with the camera forward and then strafes. It just walks in the direction it’s set internally as right.

My question is: is there an easy way (like setting a couple of variables on CharacterMovement) to obtain this (having the pawn align with the camera everytime and then move forward/backward or strafe right/left)? I have no problem in working out a-not-so-easy way if that’s the only way to do it, but I need some suggestion on how to do this.