As of now i came up with an temp-workaround after looking through some community questions.
I found this and build upon it: https://godotengine.org/qa/68649/how-to-make-the-sway-effect-on-weapons-of-fps-3d-games
var mouse_moved = false
var max_rotation = 25
var interpolation_time = 4
var interpolation_vector_default : Vector2 = Vector2(0, 0)
var last_mouse_move_relative : Vector2
var interpolate_torwards_vector : Vector2
var current_interpolating_vector : Vector2
if event is InputEventMouseMotion:
mouse_moved = true
last_mouse_move_relative = Vector2(clamp(event.relative.y, -max_rotation, max_rotation),
clamp(event.relative.x, -max_rotation, max_rotation)) * -1
mouse_moved = false
interpolate_torwards_vector = last_mouse_move_relative
interpolate_torwards_vector = interpolation_vector_default
current_interpolating_vector = current_interpolating_vector.linear_interpolate(interpolate_torwards_vector,
interpolation_time * delta)
rotation_degrees.x = current_interpolating_vector.x
rotation_degrees.y = current_interpolating_vector.y
Everytime the mouse moved ill keep that in mind and change the vector to which i should interpolate. If on the the next frame the mouse is still moving, keep on interpolating torwads the current mouse vector otherwise return to the default vector (0, 0).
It sure can get jittery if the interpolation_time is higher than 0.02 without multiplying it with delta. If there is other ways to prevent it, great!
Edit: Fix for jittery by "*delta" in _process