I thought I’d look at this since it’s an interesting problem. It seems to have a simple solution in enabling the built in camera lag, but in fact, it kinda does the inverse of what’s required. So I’ve been messing around with this for a few hours and finally got a working solution. So Here’s how I got it working.
First, in your Pawn blueprint -> components, you need to add a dummy object that matches the pivot of the camera, unless your first person arms you’re using already has the pivot matching the camera. The reason for this is to get a matching pivot point because you will rotate the arms separate from the camera and they need to match.
So now what you have is a dummy object parented to the capsule and the camera is also parented to the capsule. Now, parent the arms to the dummy object. So the arms no longer follow the camera, but rather the dummy object.
Now, for the dummy object, change the Rotation type to “World”, so it will be unaffected by the pawn. You see in my screen shot it says Absolute Rotation, that is what you want, changing it to “World” gives you that.
Now with all that stuff set up, you can change your mouse input inside your Character Blueprint to look like the following.
You can see what this does, it basically lags the camera, while forcing the gun or arms, to rotate directly on mouse input.
You see there are two multiply nodes in there, one reads “2.5” and the other “-1.75”. These values are based on the default input multipliers used inside the PlayerController. So if at any point you had modified those defaults, you would need to use those values in here as well.
Of course on the FInterp nodes, the Interp Speed is how heavy the lag is, so you can tweak that to tweak the lag.
Anyway, I hope this helps. You’ll see that it kinda feels a bit weird because you’re lagging input essentially. But see how it works for you.