Looking for help with movement system

I am having trouble figuring out the best way to implement the below movement system, and would like some help.

Translation: Movement with WASD relative to the camera, similar to third person without “orient to movement” ticked but instead of a constant movement speed for all directions, there is one vector for each direction(front, Back, Left Right), and the final speed is the average of the vectors (e.g.: forward speed is the forward vector´s intensity, Speed in a diagonal to the front and left would be the average of the Left and Front vector´s intensities). I can do this with root motion fairly easily but it would complicate implementation of some other features.

Rotation: Controller and Camera(with spring arm) rotates as usual based on mouse movement, but the character rotates based on a turn rate, so it is possible to turn the camera, but the character would take some time to align itself. I manged to find examples of clamping rotation speed based on turn rate, but those tend to clamp the camera rotation as well.

Thank you for your time